Intel 80286

8086/8088 işlemcilerinin 1 MB bellek ile sınırlı adres alanı, 1980'lerin ortalarına doğru birçok uygulama için ciddi bir problem olmaya başlamıştı. Bu yüzden Intel, x86 çekirdeğinin bir üst uyumlu sürümü olan 80286 işlemcisini üretti. Bu işlemci, 16 MB'lık adres alanı ile beraber temel 8086/8088 komut kümesine sahipti. 80286, IBM PC/AT ve orta model PS/2 bilgisayarlarında kullanıldı ve daha önceki 8088 gibi büyük bir başarı kazandı.

Birincisi gerçek (real) mod ile korumalı (protected) moda sahip olmasıdır. Donanım bellek yönetim sistemi sayesinde, bellekte birden çok programın güvenli bir şekilde çalışması mümkün hale gelmiştir.

İkincisi, 8086 gibi 8088'den farklı olarak 16-bit veriyoluna sahip olmasıdır. Bu da bellek-mikroişlemci arasındaki veri akış bant genişliğini iki katına çıkartır.

Üçüncüsü, daha hızlıdır ve daha yüksek saat hızında çalışabilir. Bu faktörler 80286 tabanlı bir sistemi 8088 tabanlı bir sisteme göre, 5-10 kat daha hızlı yapmaktadır.

Ayrıca, 80286 mikroişlemcisi yeni adresleme ve bellek koruma özelliklerini desteklemek için yeni ek komutlara sahiptir. Bu işlemci IBM PC/AT ve bazı PS/2 bilgisayarlarının ana mikroişlemcisi olmuştur.

80286 bu yüksek performansı, basitleştirilmiş hali şekil 2.2'de görülen, içinde bulunan birbirinden bağımsız 4 fonksiyonel birim sayesinde sağlar. Veriyolu birimi CPU için gerektikçe, işlem kodu ve veri okuma/saklama gibi bütün veriyolu işlemlerini yerine getirir. CPU eğer yapacak başka bir işlemi yoksa, 6 byte'a kadar komutları önceden okur ve bunları komut birimine gönderir.

Komut birimi veriyolu birimi tarafından okunmuş ham verileri alır ve sonraki yürütme için kodunu çözer. Üç taneye kadar tam kodu çözülmüş komut, bu birimde bir anda bulunabilir. Kodu çözülmüş komutların CPU içinde hazır olarak bulunması CPU yürütme hızını artırır.

Adres birimi bütün adresleme ve görüntü bellek işlemlerini yerine getirir. (Görüntü bellek, bir programın fiziksel olarak sahip olduğu bellekten daha fazla bellek kullanabilmesini sağlayan bir tekniktir. Program parçalarının yürütme sırasında, gerektikçe, bellek ile disk arasında değiştirme prensibine dayanır). Adres biriminin çıkışı, okuma ve yazma adreslemesi için veriyolu birimine iletilir.

80287'nin mikroişlemci arabirimi 8087'dekinden tümüyle farklıdır. Bir bellek yönetim birimi yardımıyla bellek koruması uygulayan 80286 tüm koruma birimini 80287'nin de üzerine koymak çok pahalı olacağı için farklı bir çözüm uygulanmıştır. Bu sistemlerde, CPU için bütün komutları ve verileri getirip götürme işini mikroişlemci yapar. Tüm bilgi F8h-FFh adresleri arasındaki I/O bölgesi üzerinden akar. Bu adreslere program aracılığıyla erişim mümkün olduğu için yanlış bir yazma işlemi yapılmamalıdır.

Yoksa CPU'nun tuttuğu bilgiler bozulabilir ve yanlış sonuçlarla karşılaşabilirsiniz. 80287 üzerinde işlemleri asıl gerçekleştiren birim 8087'deki ile aynı olduğu için bütün komutlar aynı sayıda saat çevrimi içerisinde işlenir. Ama 80286/80287 sisteminde I/O işlemleri çok fazla olduğu için aynı hızda çalışan bir 8086/8087 sisteminde daha yavaş çalışabilir.

Eski 80286 anakartlarının çoğu CPU işlemci hızını 2/3'ü hızda çalıştıracak şekilde düzenlenmişti. Böylece mikroişlemciye daha yavaş ve daha ucuz bir CPU bağlanabiliyordu. 80286 her zaman beslendiği frekansı ikiye bölüp kullanırken 80287, CKM bacağı yukarıda (1) olduğu zaman CLK bacağında gözüken frekansı olduğu gibi kullanıyor, aşağıda (0) olduğunda ise bu frekansı 3'e bölerek kullanıyor. Bazı üreticiler bu özellikten yararlanarak 80286'nın daha hızlı CPU'larla da çalışabilmesini sağlayan arayuvalar geliştirdiler. CPU ve CPU yuvasının arasına yerleştirilen bu küçük arayuvaya CKM bacağını yukarıda tutup besleme frekansının bölünmemesini sağlıyor, CLK bacağına da daha hızlı bir frekans üreteci tarafından yeni CPU'nun çalışacağı frekans veriliyor. Böylece mikroişlemci 8 MHz'de çalışırken CPU'nuz 20 MHz gibi bir hızda çalışabiliyor. Ama bu çözüm sisteminizin performansını artırsa da tüm I/O'dan hala yavaş çalışan mikroişlemci üzerinden geçmesinden doğan darboğazı aşamıyor.

Bir 8086-8087 ilişkisini tarafların eşit haklara sahip olduğu bir ilişki olarak görebiliriz. Buna karşılık, bir 80286-80287 ilişkisi daha çok efendi-köle ilişkisini andırır. Bu eşgüdümlülüğü daha da kolaylaştırıyor çünkü CPU'nun bütün veri akışı mikroişlemci üzerinden geçiyor. Pek çok CPU komutunu CPU'ya iletmeden önce mikroişlemci otomatik olarak CPU'nun işlem yapıp yapmadığını denetler. Bu yüzden derleyici ya da çeviricilerin CPU komutlarından önce otomatik WAIT komutu üretmesine gerek yoktur. Ancak üretilmişse de bir zararı olmaz. Bununla beraber WAIT komutunun ikinci kullanım nedeni (CPU belleğe bir değer yazarken mikroişlemcinin beklemesi gerekliliği) hala geçerlidir.