Intel 8086: Revizyonlar arasındaki fark

[kontrol edilmiş revizyon][kontrol edilmiş revizyon]
İçerik silindi İçerik eklendi
düzeltme, yazış şekli: tamsayı → tam sayı AWB ile
düzeltme AWB ile
25. satır:
'''8086''' makina dili 8008, 8080 ya da 8085 ile kod uyumluydu, yani bu cihazlar için yazılmış makina dili kodları çok az ya da hiç elle düzeltme gerektirmeksizin otomatik olarak optimize edilmemiş 8086 koduna dönüştürülebiliyordu. Bunu olanaklı kılabilmek için programlama modeli ve komut seti kaba olarak 8080 tabanlıydı. Ancak 8080 ve 8085'in aksine 8086 tasarımı sadece bazı temel 16-bit kabiliyetleri değil tüm 16-bit işlem desteği sunmaktaydı.
 
İşaretli tam sayılar için tam işlem desteği, adres tabanı + ofset adresleme, kendi-kendini tekrarlayan işlemler için eklenen yeni tip komutlar [[:en:Zilog Z80|Z80]] tasarımı ile benzeşmekteydi<ref>[http://www.pcworld.com/article/146957/birth_of_a_standard_the_intel_8086_microprocessor.html Birth of a Standard: The Intel 8086 Microprocessor. Thirty years ago, Intel released the 8086 processor, introducing the x86 architecture that underlies every PC-Windows, Mac, or Linux-produced today], PC World, June 17, 2008</ref>, ancak 8086 için hafifçe genelleştirilmişti. [[Pascal (programlama dili)|Pascal]] ve [[:en:PL/M|PL/M]] gibi [[:en:nested function|içiçeiç içe fonksiyonlar]] içeren [[ALGOL]] ailesi programlama dillerini doğrudan destekleyen komutlar da eklenmişti. Baş mimar ''Stephen P. Morse'''a göre bu, önceki Intel işlemci tasarımlarına göre daha yazılım merkezli bir tasarım yaklaşımının sonucu idi (tasarım ekibinin farklı derleyici uygulamaları ile çalışma tecrübesi vardı). Diğer iyileştirmeler arasında mikrokod bazında çarpma ve bölme komutları ve ileriki kuşak ([[:en:Intel 8087|8087]] ve[[:en:Intel 8089|8089]] gibi) işlemciler için daha uyumlu bir veriyolu yapısı gösterilebilir.
 
Komut seti ve üst seviye mimari tasarım neredeyse hiç [[CAD]] desteği kullanılmadan, eşzamanlı olarak çip üzerinde çalışan dört mühendis ve 12 tasarımcı tarafından yaklaşık 3 ay içinde tamamlandı. 8086, MC68000 ve diğer rakiplerine oranla daha az mikrokod kullanan sıralı yapıdaydı. ''Rasgele mantık'' kapıları ve mikrokod karışımı kullanmaktaydı ve ''depletion load nMOS'' teknolojisi kullanılarak geliştirilmişti. İçerisinde yaklaşık 20,000 aktif [[transistör]] (tüm [[ROM]] ve [[:en:Programmable logic array|PLA]] blokları da sayılırsa 29,000) bulunmaktaydı. Kısa süre içinde Intel'in asıl olarak [[SRAM]] ürünleri için geliştirdiği yeni ve daha rafine bir üretim prosesi olan [[:en:HMOS|HMOS]] (Yüksek performanslı MOS) teknolojisi ile üretilmeye başlandı. Bipolar [[RAM]] hızındaki [[MOSFET|MOS]] teknolojili SRAM'ler bu dönemde Intel'in önemli ürün kategorilerindendi. Daha sonra üretim prosesi HMOS-II, HMOS-III ve en sonunda pille beslenen tasarımlar için tamamen statik [[CMOS]] teknolojine dönüştürüldü ve Intel'in [[CMOS|CHMOS]] teknolojisi ile üretilmeye başlandı. Çipin boyutu 33&nbsp;mm² ve minimum eleman boyutu 3.2 μm idi.
49. satır:
 
=== Flags ===
8086 has a 16 [[bit]] [[flag register]]. Out of these, 9 are active, and indicate the current state of the processor. These are — [[Carry flag]], [[Parity flag]], [[Auxiliary flag]], [[Zero flag]], [[Sign flag]], [[Trap flag]] , [[Interrupt flag]] , [[Direction flag]] andve [[Overflow flag]].
 
=== Segmentation ===
73. satır:
 
=== Performance ===
Although partly shadowed by other design choices in this particular chip, the multiplexed bus limited performance slightly; transfers of 16-bit or 8-bit quantities were done in a four-clock memory access cycle (which was faster on 16-bit, although slower on 8-bit quantities, compared to typical contemporary "8-bit" CPUs). As instructions varied from 1 to 6 bytes, fetch and execution were made [[Concurrency (computer science)|concurrent]] (as it remains in today's x86 processors): The ''bus interface unit'' fed the instruction stream to the ''execution unit'' through a 6 byte prefetch queue (a form of loosely coupled [[pipelining]]), speeding up operations on [[processor register|registers]] andve [[operand|immediates]], while memory operations unfortunately became slower (4 years later, this performance problem was fixed with the [[80186]] andve [[80286]]). However, the full (instead of partial) [[16-bit]] architecture with a full width [[Arithmetic logic unit|ALU]] meant that 16-bit arithmetic instructions could now be performed with a single ALU cycle (instead of two, via carry), speeding up such instructions considerably. Combined with [[orthogonalization]]s of operations versus [[operand]]-types and [[addressing mode]]s, as well as other enhancements, this made the performance gain over the 8080 or 8085 fairly significant, despite cases where the older chips may be faster (see below).
 
Execution times for typical instructions, in clock cycles (see 8086 [[manual]]s or [[MASM|MASM 5.0]] manuals, for instance):
91. satır:
[[Dosya:Intel 8086 block scheme.svg|thumb|405px|''Simplified block diagram over Intel 8088 (a variant of 8086); 1=main registers; 2=segment registers and IP; 3=address adder; 4=internal address bus; 5=instruction queue; 6=control unit (very simplified!); 7=bus interface; 8=internal databus; 9=ALU; 10/11/12=external address/data/control bus.'']]
 
As can be seen from these tables, operations on registers and immediates were fast (between 2 and 4 cycles), while memory-operand instructions and jumps were quite slow; jumps took more cycles than on the simple [[Intel 8080|8080]] andve [[Intel 8085|8085]], and the 8088 (used in the IBM PC) was additionally hampered by its narrower bus. The reasons why most memory related instructions were slow were threefold:
* Loosely coupled fetch and execution units are efficient for instruction prefetch, but not for jumps and random data access (without special measures).
* No dedicated address calculation adder was afforded; the microcode routines had to use the main ALU for this (although there was a dedicated ''segment'' + ''offset'' adder).
* The address and data buses were [[multiplexing|multiplexed]], forcing a slightly longer (33~50%) bus cycle than in typical contemporary 8-bit processors.
 
However, memory access performance was drastically enhanced with Intel's next generation chips. The [[Intel 80186|80186]] andve [[Intel 80286|80286]] both had dedicated address calculation hardware, saving many cycles, and the [[Intel 80286|80286]] also had separate (non-multiplexed) address and data buses.
 
=== Floating point ===
"https://tr.wikipedia.org/wiki/Intel_8086" sayfasından alınmıştır