Intel iAPX 432 - Intel iAPX 432

Intel iAPX 432
Intel logosu (1968).svg
Intel Corporation logosu, 1968–2006
Genel bilgi
başlatıldı 1981 sonu
Durdurulan yaklaşık 1985
Ortak üretici(ler)
Verim
Maks. CPU saat hızı 5 MHz ila 8 MHz

İAPX 432 ( Intel Gelişmiş Performans Mimarisi ) durdurulan bir bilgisayar mimarisi O 1981 yılında tanıtılan Intel ilk 32 bit işlemci tasarımı. Mimarinin ana işlemcisi olan genel veri işlemcisi , o zamanki teknik sınırlamalar nedeniyle iki ayrı entegre devre seti olarak uygulanmaktadır. Bazı erken 8086, 80186 ve 80286 tabanlı sistemler ve kılavuzlar da pazarlama nedenleriyle iAPX önekini kullansa da , iAPX 432 ve 8086 işlemci hatları, tamamen farklı talimat setleriyle tamamen ayrı tasarımlardır.

Proje olarak 1975 yılında başlatılan 8800 (sonra 8008 ve 8080 ) ve 1980 için Intel'in önemli tasarım olarak tasarlanmıştı. Aksine 8086 8080 devamı olarak ertesi yıl tasarlandı, iAPX 432 radikal farklı bir pazar niş içindir Intel'in önceki tasarımlardan kalkış ve 8080 veya tamamen ilgisiz x86 ürün hatları.

iAPX 432 projesi Intel için ticari bir başarısızlık olarak kabul edildi ve 1986'da durduruldu.

Açıklama

iAPX 432, tamamen üst düzey dillerde programlanmak üzere tasarlanmış bir "mikro ana çerçeve" olarak adlandırıldı. Komut kümesi mimarisi de tamamen yeni ve Intel'in önceki bir çikis 8008 ve 8080 işlemcileri iAPX 432 programlama modeli olarak bir olan yığın makinesi görünür hiçbir ile genel amaçlı kayıtları . Bu destekler nesne yönelimli programlama , çöp toplama ve çoklu görev yanı sıra daha geleneksel bellek yönetimini doğrudan donanım ve içinde mikrokodunun . Çeşitli veri yapıları için doğrudan destek, modern işletim sistemlerinin sıradan işlemcilerden çok daha az program kodu kullanarak uygulanmasına izin vermeyi amaçlamaktadır . Intel iMAX 432 , 432 için tamamen Ada'da yazılmış, durdurulan bir işletim sistemidir ve Ada ayrıca uygulama programlaması için amaçlanan birincil dildi . Bazı açılardan, üst düzey bir dil bilgisayar mimarisi olarak görülebilir .

Bu özellikler ve özellikler, çağın çoğu işlemcisinden, özellikle mikroişlemcilerden daha karmaşık bir donanım ve mikro kod tasarımıyla sonuçlandı. Bununla birlikte, dahili ve harici veri yolları (çoğunlukla) 16-bit'ten daha geniş değildir ve tıpkı çağın diğer 32-bit mikroişlemcilerinde olduğu gibi ( 68000 veya 32016 gibi ), 32-bit aritmetik komutlar bir 16-bit tarafından uygulanır. -bit ALU, rastgele mantık ve mikro kod veya diğer sıralı mantık türleri aracılığıyla . 8080 üzerinde iAPX 432 büyütülmüş adres alanı da gerçeğiyle sınırlıydı adresleme doğrusal verilerin hala sadece biraz Intel'in ilk benzeyen, 16 bit uzaklıklar kullanabilirsiniz 8086 çağdaş dahil tabanlı tasarımlar 80.286 (yeni 32 bit segmente 80386 mimarisinin ofsetleri 1984'te kamuoyuna ayrıntılı olarak açıklanmıştır).

Zamanının yarı iletken teknolojisini kullanan Intel mühendisleri, tasarımı çok verimli bir ilk uygulamaya çeviremediler. Erken bir Ada derleyicisindeki optimizasyon eksikliği ile birlikte , bu , aynı saat frekansında (1982'nin başlarında) yeni 80286 yongasının kabaca 1/4 hızında tipik kıyaslama gerçekleştirerek oldukça yavaş ama pahalı bilgisayar sistemlerine katkıda bulundu . Oldukça düşük profilli ve düşük fiyatlı 8086 serisine olan bu ilk performans farkı , muhtemelen Intel'in ikincisini (daha sonra x86 olarak bilinir ) iAPX 432 ile değiştirme planının başarısız olmasının ana nedeniydi. Mühendisler yeni nesil bir tasarımı geliştirmenin yollarını görmüş olsalar da, iAPX 432 yetenek mimarisi artık olması amaçlanan basitleştirici destekten ziyade bir uygulama yükü olarak görülmeye başlandı.

Orijinal olarak 10 MHz'e kadar saat frekansları için tasarlanmış, satılan gerçek cihazlar maksimum 4 MHz, 5 MHz, 7 MHz ve 8 MHz saat hızları için ve 8 MHz'de saniyede 2 milyon talimatlık en yüksek performans için belirtildi.

Tarih

geliştirme

Intel'in 432 projesi 1976'da, 8-bit Intel 8080'in tamamlanmasından bir yıl sonra ve 16-bit 8086 projelerinin başlamasından bir yıl önce başladı. 432 projesi başlangıçta mevcut Intel 8008 ve 8080 mikroişlemcilerinin ötesinde bir sonraki adım olarak 8800 olarak adlandırıldı . Bu çok büyük bir adım oldu. Bu 8 bitlik işlemcilerin komut setleri, tipik Algol benzeri derlenmiş diller için pek uygun değildi . Ancak asıl sorun, küçük yerel adresleme aralıklarıydı; 8008 için yalnızca 16K ve 8080 için 64K, bir tür banka değiştirme , bellek bölümleme veya benzer mekanizma (8086'da yerleşik olan) kullanmadan birçok karmaşık yazılım sistemi için çok küçük. , birkaç yıl sonra). Intel şimdi birkaç LSI yongasında, işlevsel olarak en iyi 32-bit mini bilgisayarlara ve eski yongaların tüm kabinlerini gerektiren ana bilgisayarlara eşit veya onlardan daha iyi olan sofistike bir eksiksiz sistem kurmayı hedefliyordu. Bu sistem, çoklu işlemcileri, modüler genişlemeyi, hata toleransını, gelişmiş işletim sistemlerini, gelişmiş programlama dillerini, çok büyük uygulamaları, ultra güvenilirliği ve ultra güvenliği destekleyecektir. Mimarisi, on yıl boyunca Intel müşterilerinin ihtiyaçlarını karşılayacaktır.

iAPX 432 geliştirme ekibi, baş mühendis olarak Justin Rattner ile Bill Lattin tarafından yönetildi (bir kaynak Fred Pollack'in baş mühendis olduğunu belirtmesine rağmen ). (Rattner daha sonra Intel'in CTO'su olacaktı.) Başlangıçta ekip Santa Clara'da çalıştı, ancak Mart 1977'de Lattin ve 17 mühendisten oluşan ekibi Intel'in Portland'daki yeni sitesine taşındı. Pollack daha sonra süperskalarite konusunda uzmanlaştı ve i686 yongası Intel Pentium Pro'nun baş mimarı oldu .

Kısa süre sonra, tüm bunları tasarlamanın birkaç yıl ve birçok mühendis alacağı anlaşıldı. Benzer şekilde , gelişmiş çip imalatının tüm bunları birkaç yoğun çipe sığdırabilmesi için Moore Yasasında birkaç yıl daha ilerleme kaydedilmesi gerekecektir . Bu arada Intel, Motorola , Zilog ve National Semiconductor'ın ani rekabetini karşılamak için acilen daha basit bir ara ürüne ihtiyaç duyuyordu . Böylece Intel, ayrı bir tasarım ekibi kullanarak 8086'yı 8080'den düşük riskli aşamalı bir evrim olarak tasarlamak için acele bir projeye başladı. Kitlesel pazar 8086, 1978'de sevk edildi.

8086, 8080 montaj dilinin özel bir montajcı kullanılarak 8086 mimarisine eşlenebileceği anlamında 8080 ile geriye dönük uyumlu olacak şekilde tasarlanmıştır . Mevcut 8080 derleme kaynak kodu ( yürütülebilir kod olmasa da ) böylece yeni 8086 ile bir dereceye kadar yukarı doğru uyumlu hale getirildi . Buna karşılık, 432'nin yazılım uyumluluğu veya geçiş gereksinimleri yoktu. Mimarlar, büyük ölçekli sistemler ve yazılımlar için en iyi olacağını tahmin ettikleri teknikleri kullanarak sıfırdan yeni bir tasarım yapma özgürlüğüne sahipti. Üniversitelerden, özellikle yetenek makineleri , nesne yönelimli programlama, üst düzey CISC makineleri, Ada ve yoğun kodlanmış talimatlar olmak üzere modaya uygun bilgisayar bilimi kavramlarını uyguladılar . Yeni özelliklerin bu iddialı karışımı, çipi daha büyük ve daha karmaşık hale getirdi. Çipin karmaşıklığı saat hızını sınırladı ve tasarım programını uzattı.

Tasarımın çekirdeği - ana işlemci - Genel Veri İşlemcisi ( GDP ) olarak adlandırıldı ve iki entegre devre olarak inşa edildi : biri (43201) talimatları almak ve kodunu çözmek için, diğeri ise bunları yürütmek için (43202). Çoğu sistem, G/Ç için bir kanal denetleyicisi olarak çalışan 43203 Arayüz İşlemcisini ( IP ) ve "G/Ç alt sisteminde işlem gücü" sağlayan geleneksel bir Intel 8086 olan Ekli İşlemciyi ( AP ) içerir.

Bunlar dönemin en büyük tasarımlarından bazılarıydı. İki çipli GSYİH'nin toplam sayısı yaklaşık 97.000  transistöre sahipken, tek çipli IP'nin yaklaşık 49.000'i vardı. Karşılaştırıldığında, Motorola 68000 (1979'da tanıtıldı) yaklaşık 40.000 transistöre sahipti.

1983'te Intel, iAPX 432 Ara Bağlantı Mimarisi için iki ek entegre devre yayınladı: 43204 Bus Interface Unit ( BIU ) ve 43205 Memory Control Unit ( MCU ). Bu çipler, 63 düğüme kadar neredeyse tutkalsız çok işlemcili sistemlere izin verdi.

Projenin başarısızlıkları

iAPX 432'nin yenilikçi özelliklerinden bazıları iyi performans için zararlıydı. Çoğu durumda, iAPX 432, National Semiconductor 32016 , Motorola 68010 ve Intel 80286 gibi dönemin geleneksel mikroişlemcilerinden önemli ölçüde daha yavaş bir talimat çıktısına sahipti . Bir sorun, GDP'nin iki çipli uygulamasının, onu anakartın elektrik kablolarının hızıyla sınırlandırmasıydı. Daha büyük bir sorun, yetenek mimarisinin verimli bir şekilde çalışması için büyük ilişkilendirilebilir önbelleklere ihtiyaç duymasıydı, ancak çiplerde buna yer kalmamıştı. Komut seti ayrıca, bilgisayar tasarımlarının çoğunda kullanılan olağan yarı sabit bayt veya kelime hizalı formatlar yerine bit hizalı değişken uzunluklu talimatlar kullandı. Bu nedenle talimat kod çözme, diğer tasarımlardan daha karmaşıktı. Bu, performansı kendi başına engellemese de, önbellekler, daha geniş veri yolları ve diğer performans odaklı özellikler için zaten alan ve transistörleri olmayan bir tasarımda ek transistörler (esas olarak büyük bir varil kaydırıcı için ) kullandı. Ek olarak, BIU hataya dayanıklı sistemleri desteklemek üzere tasarlandı ve bunu yaparken veri yolu süresinin %40'a kadarı bekleme durumlarında kaldı .

Diğer bir önemli sorun, olgunlaşmamış ve ayarlanmamış Ada derleyicisiydi . Bunu yapmanın mantıklı olacağı daha hızlı skaler talimatlar yerine, her durumda yüksek maliyetli nesne yönelimli talimatlar kullandı. Örneğin, iAPX 432 , çok daha hızlı dal ve bağlantı talimatlarının varlığına rağmen, derleyicinin tüm çağrılar için kullandığı çok pahalı bir modüller arası prosedür çağrı talimatı içeriyordu. Diğer bir çok yavaş çağrı, bellek korumasını ayarlayan enter_environment idi. Derleyici, değişkenler mevcut bir ortamda kullanıldığında ve kontrol edilmesi gerekmediğinde bile, sistemdeki her bir değişken için bunu çalıştırdı. Daha da kötüsü, prosedürlere ve prosedürlerden iletilen veriler , referans yerine her zaman değer dönüşüyle iletildi . Dhrystone karşılaştırmasını çalıştırırken , parametre geçişi diğer tüm hesaplamaların toplamından on kat daha uzun sürdü.

Göre New York Times , "i432 5 ila 10 kat daha yavaş onun rakibi Motorola 68000 ran".

Darbe ve benzeri tasarımlar

iAPX 432, Kayan Nokta Aritmetiği için yeni IEEE-754 Standardını uygulayan ilk sistemlerden biriydi .

432'nin başarısızlığının bir sonucu, mikroişlemci tasarımcılarının çipteki nesne desteğinin her zaman yavaş çalışacak karmaşık bir tasarıma yol açtığı sonucuna varmalarıydı ve 432, RISC tasarımlarının savunucuları tarafından genellikle bir karşı örnek olarak gösterildi . Ancak bazıları, OO desteğinin 432'deki birincil sorun olmadığını ve yukarıda bahsedilen uygulama eksikliklerinin (özellikle derleyicide) herhangi bir CPU tasarımını yavaşlatacağını düşünüyor. iAPX 432'den bu yana benzer bir tasarım için yalnızca bir başka girişim daha yapıldı, Rekursiv işlemci, ancak INMOS Transputer'ın süreç desteği benzer ve çok hızlıydı.

Intel, 432'ye hatırı sayılır bir zaman, para ve zihin paylaşımı harcamıştı, buna kendini adamış yetenekli bir ekibe sahipti ve pazardaki başarısızlığından sonra onu tamamen terk etmeye isteksizdi. Yeni bir mimar - Glenford Myers - ortak bir Intel / Siemens projesinde (daha sonra BiiN ) oluşturulacak olan çekirdek işlemci için tamamen yeni bir mimari ve uygulama üretmek üzere getirildi ve i960 serisi işlemcilerle sonuçlandı . i960 RISC alt kümesi, yerleşik işlemci pazarında bir süre popüler oldu, ancak üst düzey 960MC ve etiketli bellek 960MX yalnızca askeri uygulamalar için pazarlandı.

Göre New York Times , üzerinde HP ile Intel'in işbirliği (sonradan Itanium olarak da bilinir) Merced işlemci çok yüksek uç pazarı için şirketin dönüş girişimiydi.

Mimari

iAPX 432 komutları, 6 ile 321 bit arasında değişen değişken uzunluğa sahiptir. Alışılmadık bir şekilde, bayt hizalı değildirler, yani tek sayıda bit içerebilirler ve bayt sınırlarına bakılmaksızın doğrudan birbirlerini takip edebilirler.

Nesneye yönelik bellek ve yetenekler

iAPX 432, nesne yönelimli programlama ve yetenek tabanlı adresleme için donanım ve mikro kod desteğine sahiptir . Sistem, her biri 64 KB'ye kadar olan 2 24'e kadar bölüm  içeren bölümlere ayrılmış bellek kullanır ve toplam 2 40 baytlık sanal adres alanı sağlar . Fiziksel adres alanı 2 24 bayttır (16  MB ).

Programlar, adrese göre verilere veya talimatlara başvuramaz; bunun yerine segment içinde bir segment ve bir ofset belirtmeleri gerekir. Segmentlere , sistem nesne tablosuna bir dizin ve bu segmente erişimleri yöneten bir dizi hak ( yetenek ) sağlayan erişim tanımlayıcıları (AD'ler) tarafından başvurulur . Segmentler, yalnızca Erişim Tanımlayıcıları içerebilen "erişim segmentleri" veya AD içeremeyen "veri segmentleri" olabilir. Donanım ve mikro kod, veri ve erişim segmentleri arasındaki ayrımı katı bir şekilde zorlar ve yazılımın verileri erişim tanımlayıcıları olarak veya tam tersi olarak ele almasına izin vermez.

Sistem tanımlı nesneler, tek bir erişim bölümünden veya bir erişim bölümünden ve bir veri bölümünden oluşur. Sistem tanımlı segmentler, belirlenmiş uzaklıklarda sistem tanımlı veriler için veri veya erişim tanımlayıcıları içerir, ancak işletim sistemi veya kullanıcı yazılımı bunları ek verilerle genişletebilir. Her sistem nesnesinin, bir Taşıyıcı Nesnenin gerekli olduğu yerde bir Port Nesnesinin kullanılamayacağı şekilde mikro kod tarafından kontrol edilen bir tür alanı vardır. Kullanıcı programları, tip kontrol nesnelerinin (TCO'lar) kullanımı yoluyla donanım tipi kontrolünden tam olarak yararlanacak yeni nesne tiplerini tanımlayabilir .

iAPX 432 mimarisinin 1. Sürümünde, sistem tanımlı bir nesne tipik olarak bir erişim segmentinden ve isteğe bağlı olarak (nesne tipine bağlı olarak) erişim segmenti içinde sabit bir ofsette bir erişim tanımlayıcısı tarafından belirtilen bir veri segmentinden oluşuyordu.

Mimarinin 3. Sürümü ile, performansı artırmak için, erişim segmentleri ve veri segmentleri, 128 kB'a kadar tek segmentler halinde birleştirildi, bir erişim parçasına ve her biri 0-64 KB'lik bir veri parçasına bölündü. Bu, nesne tablosu aramalarının sayısını önemli ölçüde azalttı ve maksimum sanal adres alanını iki katına çıkardı.

iAPX432, on dört tür önceden tanımlanmış sistem nesnesini tanır :

  • talimat nesnesi yürütülebilir talimatlar içerir
  • etki alanı nesnesi bir program modülünü temsil eder ve alt programlara ve verilere referanslar içerir
  • bağlam nesnesi , yürütülmekte olan bir işlemin bağlamını temsil eder
  • tür tanımlama nesnesi , yazılım tanımlı bir nesne türünü temsil eder
  • tip kontrol nesnesi , tipe özgü ayrıcalığı temsil eder
  • nesne tablosu , sistemin etkin nesne tanımlayıcıları koleksiyonunu tanımlar
  • depolama kaynağı nesnesi , ücretsiz bir depolama havuzunu temsil eder
  • fiziksel depolama nesnesi , bellekteki boş depolama bloklarını tanımlar
  • depolama talebi nesnesi , ilişkili tüm depolama kaynağı nesneleri tarafından tahsis edilebilecek depolamayı sınırlar
  • süreç nesnesi çalışan bir süreci tanımlar
  • port nesnesi , süreçler arası iletişim için bir portu ve mesaj kuyruğunu temsil eder
  • taşıyıcı Taşıyıcılar, mesajları limanlara ve limanlardan taşır
  • işlemci , sistemdeki bir işlemci için durum bilgilerini içerir
  • işlemci iletişim nesnesi , işlemciler arası iletişim için kullanılır

Çöp toplama

432'de çalışan yazılımın, artık ihtiyaç duyulmayan nesneleri açıkça serbest bırakması gerekmez. Bunun yerine, mikro kod, Edsger Dijkstra'nın anında paralel çöp toplama algoritmasının (bir işaretle ve süpür tarzı toplayıcı) işaretleme bölümünün bir kısmını uygular . Sistem nesnesi tablosundaki girişler, toplayıcının ihtiyaç duyduğu şekilde her bir nesneyi beyaz, siyah veya gri olarak işaretlemek için kullanılan bitleri içerir. IMAX 432 işletim sistemi çöp toplayıcı yazılım kısmı içerir.

talimat formatı

Yürütülebilir talimatlar, bir sistem "talimat nesnesi" içinde bulunur. Talimatlar bit hizalı olduğundan, talimat nesnesine 16 bitlik bir yer değiştirme, nesnenin 8192 bayta kadar talimat (65,536 bit) içermesine izin verir.

Talimatlar , bir sınıf ve bir işlem kodundan oluşan bir operatörden ve sıfırdan üçe işlenen referanslarından oluşur . "Alanlar, kod çözme için gerekli olan sırayla işlemciye bilgi sunmak üzere düzenlenmiştir". Daha sık kullanılan operatörler daha az bit kullanılarak kodlanır. Talimat, talimatın sırası olarak adlandırılan işlenenlerin sayısını ve her işlenenin uzunluğunu gösteren 4 veya 6 bitlik sınıf alanıyla başlar . Bunu isteğe bağlı olarak , işlenenleri tanımlayan 0 ila 4 bitlik bir biçim alanı izler (işlenen yoksa biçim mevcut değildir). Ardından, formatta açıklandığı gibi sıfırdan üç işlenene gelin. Komut varsa, 0 ila 5 bitlik işlem kodu ile sonlandırılır (bazı sınıflar yalnızca bir komut içerir ve bu nedenle işlem kodu yoktur). "Biçim alanı, GDP'nin programcıya sıfır, bir, iki veya üç adresli bir mimari olarak görünmesine izin verir." Biçim alanı, bir işlenenin bir veri referansı veya işlenen yığınının en üstteki veya en üstteki öğesi olduğunu belirtir.

Ayrıca bakınız

  • iAPX , iAPX adı için

Notlar

Referanslar

Dış bağlantılar