thread_29.sh

Intel 386'nın standart hücre mantığındaki olağandışı devreler

0 replies 2 views {"en": "Reverse Engineering", "tr": "Tersine Mühendislik", "ru": "Реверс-инжиниринг"}
righto.com
righto.com
OP
user
2025-11-22 16:15:00

Son zamanlarda Intel 386 işlemcideki standart hücre devreleri üzerinde çalışıyorum. 1985 yılında tanıtılan 386, 285.000 transistör içeren Intel'in o zamanki en karmaşık işlemcisiydi. Intel'in mevcut tasarım teknikleri bu karmaşıklığın üstesinden gelemedi ve çip programın gerisinde kalmaya başladı. Plana uymak için 386 ekibi standart hücre mantığı adı verilen bir teknik kullanmaya başladı. Her transistörün manuel olarak yerleştirilmesi yerine, yerleştirme işlemi bilgisayar tarafından gerçekleştirildi.

Standart hücre mantığının arkasındaki fikir, her tür mantık elemanı için standartlaştırılmış devreler (standart hücreler) oluşturmaktır; invertör, NAND geçidi veya mandal olarak. Devre açıklamanızı gerekli hücreleri seçen yazılıma beslersiniz, bu hücreleri sütunlar halinde konumlandırır ve ardından kabloları hücreler arasında yönlendirir. Bu "otomatik yerleştirme ve yönlendirme" işlemi, çip yerleşimini manuel yerleşimden çok daha hızlı oluşturur. Ancak standart hücrelere geçmek riskli bir karardı çünkü yazılım bir hücre oluşturamazsa Yeterince yoğun düzen nedeniyle çip üretilemedi. Ancak sonuçta 386, neredeyse hiç duyulmamış bir başarı olarak planlanandan önce bitirdi.1

386'nın standart hücre devresi beklemediğim birkaç devre içeriyor. Bu blog yazısında bu devrelerden bazılarına hızlıca göz atacağım: şaşırtıcı derecede büyük çoğullayıcılar, standart hücre düzenine uymayan bir transistör, ve invertör olmadığı ortaya çıkan invertörler. (386'daki standart hücreler hakkında daha fazla bilgi edinmek istiyorsanız önceki gönderime bakın, "Intel 386 işlemcide tersine mühendislik standardı hücre mantığı".)

Aşağıdaki fotoğraf, otomatik yerleştirme ve yönlendirme bölgeleri vurgulanmış olarak 386 kalıbını gösteriyor; odaklanıyorum sağ alttaki kırmızı bölgede. Bu mantık blokları sıralar halinde düzenlenmiş hücrelere sahiptir ve bu onlara karakteristik çizgili bir görünüm kazandırır. Koyu şeritler mantık kapılarını oluşturan transistörlerdir, şeritler arasındaki açık renkli bölgeler ise mantık kapılarını oluşturur. Hücreleri birbirine bağlayan kabloları tutan "yönlendirme kanalları". Karşılaştırıldığında, fonksiyonel bloklar soldaki veri yolu gibi ve sağ alttaki mikro kod ROM'u yoğunluğu ve performansı optimize etmek için manuel olarak tasarlandı ve onlara daha sağlam bir görünüm kazandırıldı.

The 386 die with the standard-cell regions highlighted.

Standart hücre bölgelerinin vurgulandığı 386 kalıbı.

Çipteki diğer özelliklere gelince, sınırın etrafındaki siyah daireler, çipin dış pinlerine giden bağ teli bağlantılarıdır. Çipin iki metal katmanı var; modern cihazlara göre bu sayı az standartlar, ancak 286 gibi önceki işlemcilerin tek metal katmanından bir sıçrama. (İki metal katmanının sağlanması otomatik yönlendirmeyi pratik hale getirdi: bir katman yatay kabloları tutabilirken diğer katman dikey kabloları tutabilir.) Metal geniş alanlarda beyaz görünür ancak Altındaki devrenin yüzeyini pürüzlendirdiği yer morumsu. Alttaki silikon ve polisilikon kablolar metal katmanlar tarafından gizlenmiştir.

Dev çoğullayıcılar

İncelediğim standart hücre devresi (yukarıdaki kırmızı kutu), kayıtları seçen kontrol mantığının bir parçasıdır Bir talimatı yürütürken. Bir talimatta hangi kayıtların yer alacağını seçmenin kolay olduğunu düşünebilirsiniz, ancak x86 mimarisinin karmaşıklığından dolayı daha zordur. Sorunlardan biri, EAX gibi 32 bitlik bir yazmacın aynı zamanda 16 bitlik yazmaç AX olarak değerlendirilebilmesidir. veya iki adet 8 bitlik kayıt AH ve AL. İkinci sorun ise bazı talimatların kaynağı değiştiren bir "yön" biti içermesidir. Hedef kayıtları. Ayrıca, bazen kayıt, talimattaki bitlerle belirtilir, ancak diğer durumlarda, kayıt mikrokod tarafından belirtilir. Bu faktörlerden dolayı, bir işlem için kayıtların seçilmesi, birçok işlem içeren karmaşık bir süreçtir. durumlarda, talimattaki, mikrokoddaki ve diğer kaynaklardan gelen kontrol bitlerini kullanır.

Bir işlem için üç kaydın (iki kaynak kaydı ve bir hedef kaydı) seçilmesi gerekir ve orada Ele alınması gereken yaklaşık 17 vaka var. Kayıtlar, 30 kayıttan birini seçen ve kontrol eden 7 bitlik kontrol sinyalleriyle belirtilir. kaydın hangi bölümüne erişildiği. Her biri 7 bit genişliğinde ve her biri için yaklaşık 17 durum içeren üç kontrol sinyaliyle şunu görebilirsiniz: kayıt kontrol mantığı büyük ve karmaşıktır. (386'nın kayıtları hakkında daha fazla yazdımhere.)

Hala kayıt kontrol mantığı üzerinde tersine mühendislik yapıyorum, bu yüzden ayrıntılara girmeyeceğim. Bunun yerine, yazmaç kontrol devresinin standart hücrelerle uygulanan çoklayıcıları nasıl kullandığını tartışacağım. Çoklayıcı, birden fazla şeyi birleştiren bir devredir Girişlerden birini seçerek giriş sinyallerini tek bir çıkışa dönüştürün.2Bir çoklayıcı, örneğin her girişi VE ile mantık kapılarıyla uygulanabilir. karşılık gelen kontrol çizgisi ve ardından sonuçların birlikte VEYAlanması. Ancak 386, büyük bir VE/VEYA geçidinden kaçınan farklı bir yaklaşım (CMOS anahtarları) kullanır.

Schematic of a CMOS switch.

Bir CMOS anahtarının şeması.

Yukarıdaki şema, bir CMOS anahtarının iki MOS transistöründen nasıl oluşturulduğunu gösterir. İki transistör açık olduğunda çıkış girişe bağlanır, ancak iki transistör açık olduğunda kapalı, çıkış izole edilmiştir. NMOS transistörü girişi yüksek olduğunda açılır, ancak PMOS transistörü girişi yüksek olduğunda açılır. giriş:low. Böylece anahtar, biri ters çevrilmiş iki kontrol girişi kullanır. İki transistör kullanmanın nedeni, NMOS transistörünün çıkışı çekmede daha iyi olmasıdır. düşük, PMOS transistörü ise çıkışı yükseğe çekmede daha iyidir, bu nedenle bunları birleştirmek en iyi performansı sağlar.3Mantık kapısından farklı olarak CMOS anahtarının amplifikasyonu yoktur, dolayısıyla anahtardan geçen sinyal zayıflar. Aşağıda görüleceği gibi, sinyali yükseltmek için invertörler kullanılabilir.

Aşağıdaki resim CMOS anahtarlarının mikroskop altında nasıl göründüğünü göstermektedir. Bu görüntünün yorumlanması çok zordur çünkü 386'nın üzerindeki iki metal katman yoğun bir şekilde bir araya toplanmıştır, ancak siz bazı kabloların yatay, bazılarının ise dikey uzandığını görebilirsiniz. Metalin alt katmanı (M1 olarak adlandırılır) yönlendirme alanında dikey olarak uzanır ve aynı zamanda dahili bir koruma sağlar. bir hücre için kablolama. Üst metal katmanı (M2) yatay olarak uzanır; M1'in aksine M2 kabloları bir hücreyi geçebilir. Büyük daireler M1 ve M2 katmanlarını birbirine bağlayan yollardır, küçük daireler ise bağlantılarıdır M1 ile polisilikon veya M1 ile silikon arasındadır. Görüntünün ortadaki üçte birlik kısmı, yeşille çevrelenmiş iki CMOS anahtarına sahip standart hücrelerden oluşan bir sütundur. Hücreler dikey yer rayı ile sınırlanmıştır ve Hücrelere güç veren +5V ray. Yönlendirme alanları hücrelerin her iki yanında yer alır ve hücreleri birbirine bağlayan kabloları tutar.

Two CMOS switches, highlighted in green. The lower switch is flipped vertically compared to the upper switch.

Yeşil renkle vurgulanmış iki CMOS anahtarı. Alt anahtar üst anahtara göre dikey olarak çevrilir.

Metal katmanların çıkarılması, altta bulunan silikonu ve üstte bir polisilikon kablo tabakasını ortaya çıkarır. Katkılı silikon bölgeleri koyu çizgiler halinde görünüyor. Polisilikonu yeşille çizdim; katkılı silikonu geçtiğinde bir transistör (daha parlak yeşil) oluşturur. Metal topraklama ve güç hatları sırasıyla mavi ve kırmızı renkte, diğer metal kablolar ise mor renkte gösterilmiştir. Siyah noktalar katmanlar arasındaki geçişlerdir. Sinyalleri yönlendirmek için metal kabloların (mor) ve polisilikon kabloların (yeşil) nasıl birleştirildiğine dikkat edin. hücre. Bu standart hücre her ne kadar karmaşık olsa da önemli olan sadece bir kez tasarlanmasının yeterli olmasıdır. Farklı işlevlere yönelik standart hücrelerin tümü aynı genişliğe sahip olacak şekilde tasarlanmıştır, böylece hücreler farklı şekillerde düzenlenebilir. Lego tuğlaları gibi birbirine kenetlenmiş sütunlar.

A diagram showing the silicon for a standard-cell switch. The polysilicon is shown in green. The bottom metal is shown in blue, red, and purple.

Standart hücreli bir anahtar için silikonu gösteren bir diyagram. Polisilikon yeşil renkte gösterilmiştir. Alttaki metal mavi, kırmızı ve mor renkte gösterilmiştir.

Özetlemek gerekirse, bu anahtar devresi, seçim sinyali tarafından kontrol edilerek girişin çıkışa bağlanmasına veya bağlantısının kesilmesine olanak tanır. Bu anahtar önceki şematikten daha karmaşıktır çünkü amplifikasyonu artırmak için iki invertör içerir. sinyal. Veri girişi ve iki seçim hattı polisilikon'a (yeşil) bağlanır; hücre öyle tasarlandı bu bağlantılar her iki tarafta da yapılabilir. Üst kısımda giriş standart iki transistörlü bir invertörden geçiyor. Sol altta, bir invertörün NMOS yarısını anahtarın NMOS yarısıyla birleştiren iki transistör vardır. Sağdaki benzer bir devre, invertörün PMOS kısmını ve anahtarı birleştirir. Ancak PMOS transistörleri daha zayıf olduğundan devrenin bu kısmı kopyalanır.

Bir çoklayıcı, her giriş için bir tane olmak üzere birden fazla anahtarın birleştirilmesiyle oluşturulur. Bir anahtarın açılması ilgili girişi seçecektir. Örneğin, dörde bir çoklayıcının dört anahtarı vardır, dolayısıyla dört girişten birini seçebilir.

A four-way multiplexer constructed from CMOS switches and individual transistors.

CMOS anahtarlardan ve ayrı transistörlerden oluşturulmuş dört yollu bir çoklayıcı.

Yukarıdaki şema, dört girişli varsayımsal bir çoklayıcıyı göstermektedir. Bir optimizasyon, eğer bir giriş her zaman 0 ise PMOS transistörünün çıkartılabilmesidir. Aynı şekilde, bir giriş her zaman 1 ise, NMOS transistörü ihmal edilebilir. İlgili girişi seçmek için aynı anda bir dizi seçme satırı etkinleştirilir. Pembe devre 1'i seçer, yeşil A girişini, sarı B girişini ve mavi 0'ı seçer. 386'daki çoklayıcılar benzerdir ancak daha fazla girişi vardır.

Aşağıdaki şema, bu standart hücre bloğunda çoklayıcılara ne kadar devrenin ayrıldığını göstermektedir. Yeşil, mor ve kırmızı hücreler, üç kayıt kontrolünü çalıştıran çoklayıcılara karşılık gelir çıktılar. Sarı hücreler, CMOS anahtarları için ters çevrilmiş kontrol sinyallerini üreten invertörlerdir. Bu şema aynı zamanda hücrelerin otomatik düzeninin nasıl rastgele görünen bir düzene yol açtığını da gösterir.

A block of standard-cell logic with multiplexers highlighted. The metal and polysilicon layers were removed for this photo, revealing the silicon transistors.

Çoklayıcıların vurgulandığı standart hücre mantığı bloğu. Bu fotoğrafta metal ve polisilikon katmanlar kaldırılarak silikon transistörler ortaya çıkarıldı.

Yanlış yerleştirilmiş transistör

Standart hücre mantığının fikri, standartlaştırılmış hücrelerin sütunlar halinde düzenlenmesidir. Hücreler arasındaki boşluk, hücreleri birbirine bağlayan kabloları tutan "yönlendirme kanalıdır". 386 devresi, iki sütun arasında yer alan tek bir transistör dışında bu düzeni takip ediyor hücrelerin.

The "misplaced" transistor, indicated by the arrow. The irregular green regions are oxide that was incompletely removed.

Okla gösterilen "yanlış yerleştirilmiş" transistör. Düzensiz yeşil bölgeler tamamen giderilmemiş oksitlerdir.

Standart hücreleri analiz etmeme yardımcı olacak bazı yazılım araçları yazdım. Maalesef araçlarım tüm hücrelerin sütunlar halinde olduğunu varsayıyordum, bu yüzden bu tek yönlü transistör bana ciddi rahatsızlık verdi.

Transistörün bir PMOS transistörü olduğu ve çoklayıcının bir parçası olarak sinyali yukarı çektiği ortaya çıktı. Peki bu transistör neden yerinde değil? Benim hipotezim, transistörün bir hata düzeltmesi olduğu yönünde. Hücre düzenini yeniden oluşturmak çok maliyetliydi ve IBM ana bilgisayar bilgisayarında saatler sürüyordu. Muhtemelen birisi gerekli transistörü bilgisayardaki kullanılmayan bir noktaya yapıştırabileceğini buldu. Kanalı yönlendirin, gerekli kabloları manuel olarak ekleyin ve tüm hücrelerin yenilenmesindeki gecikmeyi önleyin.

Sahte invertör

En basit CMOS kapısı, çıkışı düşük seviyeye çeken bir NMOS transistöre sahip olan invertördür. Çıkışı yükseğe çekmek için PMOS transistörü. İncelediğim standart hücre devresinde yüzün üzerinde çeşitli tiplerde invertörler bulunmaktadır. boyutlar. (Çok küçük olmayan ancak aynı zamanda çok da küçük olmayan invertörler kullanılarak performans artırıldı. belirli bir devre için gerekenden daha büyük. Bu nedenle standart hücre kütüphanesi birden fazla boyutta invertör içerir.)




⚠️ Bu konu righto.com botu tarafindan otomatik olarak ice aktarilmistir.

🔗 Kaynak Baglantisi: http://www.righto.com/2025/11/unusual-386-standard-cell-circuits.html

Thread Statistics

Views 2
Replies 0
Author righto.com
Created 2025-11-22
Status
Open