thread_41.sh

Pentium'un mikrokod devresine ilişkin notlar

0 replies 1 views {"en": "Reverse Engineering", "tr": "Tersine Mühendislik", "ru": "Реверс-инжиниринг"}
righto.com
righto.com
OP
user
2025-03-31 17:14:00

Çoğu kişi makine talimatlarını bilgisayarın gerçekleştirdiği temel adımlar olarak düşünür. Ancak çoğu işlemcinin altında başka bir yazılım katmanı bulunur: mikro kod. Mikrokod ile işlemcinin kontrol devresini karmaşık mantık kapılarından oluşturmak yerine kontrol mantığı Mikrokod ROM'unda saklanan, mikrokod olarak bilinen kodla uygulanır. Bir makine talimatını yürütmek için bilgisayar, mikro kodla belirtilen daha basit birkaç mikro talimatı dahili olarak yürütür. Bu yazıda, orijinal Pentium'daki mikrokod ROM'u düşük seviyeli devrelere bakarak inceliyorum.

Aşağıdaki fotoğraf Pentium'un küçük resim boyutundaki silikon kalıbını mikroskop altında göstermektedir. Ana işlevsel blokları etiketledim. Mikrokod ROM sağda vurgulanmıştır. Yakından bakarsanız mikro kod ROM'un üst üste iki dikdörtgen bankadan oluştuğunu görebilirsiniz.

This die photo of the Pentium shows the location of the microcode ROM. Click this image (or any other) for a larger version.

Pentium'un bu kalıp fotoğrafı mikrokod ROM'un yerini göstermektedir. Daha büyük bir versiyon için bu görsele (veya başka bir görsele) tıklayın.

Aşağıdaki resimde iki mikro kod ROM bankasının yakından görünümü gösterilmektedir. Her banka 45 bitlik çıktı sağlar; birlikte 90 bit uzunluğunda bir mikro talimat uygularlar. Her banka, 288 sıra ve 720 sütun halinde düzenlenmiş bir transistör ızgarasından oluşur. Mikrokod ROM'da 4608 mikro talimat bulunur. Toplamda 414.720 bit. Bu büyütmede ROM özelliksiz görünür ancak her biri yalnızca 1,5 µm olan yatay kablolarla kaplıdır. kalın.

The 90 output lines from the ROM, with a closeup of six lines exiting the ROM.

ROM'dan çıkan 90 çıkış hattı ve ROM'dan çıkan altı satırın yakından görünümü.

ROM'un 90 çıkış hattı yukarıda gösterildiği gibi bankalar arasında bir kablo demetinde toplanmıştır. Detay, bitlerden altısının kümelerden nasıl çıktığını ve pakete nasıl katıldığını gösteriyor. Bu paket ROM'dan sola doğru çıkar, çipin çeşitli kısımlarına gider ve çipin devresini kontrol eder. Çıkış hatları çipin üst metal katmanında (M3) bulunur: Pentium'da M1 altta, M2 ortada ve M3 üstte olmak üzere üç katman metal kablo bulunur.

Pentium'un mikro talimatında çok sayıda bit vardır; mikro talimatındaki 21 bit ile karşılaştırıldığında 90 bit.8086. Muhtemelen Pentium, mikro kod bitlerinin düşük seviyeli kontrol sinyallerine karşılık geldiği "yatay" bir mikro kod mimarisine sahiptir. bitlerin daha yoğun mikro talimatlar halinde kodlandığı "dikey" mikro kodun aksine. Pentium'un mikrokod kodlaması hakkında hiçbir bilgim yok; 8086'nın aksine Pentium'un patentleri herhangi bir ipucu sunmuyor. 8086'nın mikro kod ROM'u, Pentium'un 4608 mikro talimatlarından çok daha az olan 512 mikro talimat içerir. Çipteki kayan nokta birimi de dahil olmak üzere Pentium'un talimat setinin çok daha karmaşık olduğu göz önüne alındığında bu mantıklıdır.

Aşağıdaki resimde Pentium'un mikrokod ROM'unun yakından görünümü gösterilmektedir. Bu görüntü için üç metal katmanını ve polisilikon katmanını kaldırdım Çipin altındaki silikonu ortaya çıkarmak için. Transistörleri ve dolayısıyla ROM'da depolanan verileri gösteren silikon katkılama modeli görülebilir. Yeterli zamanınız varsa, silikonu inceleyerek ve transistörlerin nerede bulunduğunu görerek ROM'daki bitleri çıkarabilirsiniz.

A closeup of the ROM showing how bits are encoded in the layout of transistors.

Transistörlerin düzeninde bitlerin nasıl kodlandığını gösteren ROM'un yakından görünümü.

ROM devresini açıklamadan önce NMOS transistörünün nasıl oluşturulduğunu gözden geçireceğim. Bir transistör, kapı tarafından kontrol edilen, kaynak ve drenaj arasında bir anahtar olarak düşünülebilir. Kaynak ve boşaltma bölgeleri (yeşil), yarı iletken özelliklerini değiştirmek ve N+ silikon oluşturmak için safsızlıklarla katkılanmış silikondan oluşur. (Bu bölgeler yukarıdaki fotoğrafta görülmektedir.) Kapı, silikondan çok ince bir yalıtkan oksit tabakasıyla ayrılmış bir polisilikon (kırmızı) tabakasından oluşur. Polisilikon aktif silikonu geçtiğinde bir transistör oluşur.

Diagram showing the structure of an NMOS transistor.

Bir NMOS transistörünün yapısını gösteren diyagram.

Bitler, ızgaradaki transistörlerin düzeni aracılığıyla ROM'da depolanır. Bir transistörün varlığı veya yokluğu 0 veya 1 biti saklar.1Aşağıdaki yakın plan mikrokod ROM'un sekiz bitini göstermektedir. Dört transistör mevcut ve transistörlerin yerleştirildiği dört boşluk var kayıp. Böylece, ROM'un bu kısmı dört adet 0 bit ve dört adet 1 bit içerir. Aşağıdaki diyagramda, alttaki silikonu göstermek için üç metal katmanı ve polisilikonu çıkardım. Katkılı (aktif) silikon bölgelerini yeşile boyadım ve yatay polisilikon çizgilerini kırmızıyla çizdim. Yukarıda açıklandığı gibi, polisilikon katkılı silikonu geçerse bir transistör oluşturulur. Böylece ROM'un içeriği, transistörleri oluşturan silikon bölgelerin modeliyle tanımlanır.

Eight bits of the microcode ROM, with four transistors present.

Mikrokod ROM'un sekiz biti, dört transistör mevcut.

Yatay silikon hatlar transistörlere toprak sağlamak için kablolama olarak kullanılırken, yatay polisilikon hatlar aşağıdakilerden birini seçer: ROM'daki satırlar. Bu sıradaki transistörler açılacak ve ilgili çıkış hatlarını aşağıya çekecektir. Yani arka arkaya transistörün varlığı çıkışın düşük çekilmesine neden olurken, transistörün yokluğu çıkışın düşmesine neden olur. Çıkış hattının yüksek kalması.

A schematic corresponding to the eight bits above.

Yukarıdaki sekiz bit'e karşılık gelen bir şema.

Aşağıdaki diyagram silikon, polisilikon ve alt metal (M1) katmanlarını göstermektedir. Alttaki silikon ve polisilikonu ortaya çıkarmak için soldaki metali çıkardım ancak dikey metal çizgilerin deseni orada da devam ediyor. Daha önce gösterildiği gibi silikon desen transistörleri oluşturur. Her yatay metal hattın bir bağlantısı vardır metal bir hat üzerinden topraklamak (gösterilmemiştir). Yatay polisilikon çizgiler bir sıra seçer. Polisilikon hatları katkılı silikonu çaprazladığında, bir transistörün kapısı oluşur. Soldaki transistör çiftinde olduğu gibi iki transistör drenajı paylaşabilir.

Diagram showing the silicon, polysilicon, and M1 layers.

Silikon, polisilikon ve M1 katmanlarını gösteren diyagram.

Dikey metal teller çıkışları oluşturur. Daireler metal tel ile bir transistörün silikonu arasındaki temas noktalarıdır.2 Kısa metal köprüler polisilikon hatlarını daha sonra açıklanacak olan yukarıdaki metal katmana bağlar.

Aşağıdaki resim ROM'un sol üst köşesini göstermektedir. Sarımsı metal çizgiler üstteki metal katmandır (M3), kırmızımsı metal çizgiler ortadaki metal katmandır (M2). Kalın sarımsı M3 çizgileri zemini ROM'a dağıtır. Yatay M3 çizgisinin altında ayrıca yatay bir M2 çizgisi de vardır. toprağı dağıtır. Siyah noktalardan oluşan ızgaralar, M3 hattı ile M2 hattı arasında düşük dirençli bir bağlantı sağlayan çok sayıda temas noktasıdır. M2 hattı da alttaki dikey M1 zemin hatlarına bağlanıyor; bu geniş dikey çizgiler belli belirsiz görülebiliyor. Bu M1 hatları, daha önce gösterildiği gibi silikona bağlanarak her transistöre toprak sağlar. Bu, Pentium'daki güç dağıtımının karmaşıklığını göstermektedir: kalın üst metal (M3), gücün birincil dağıtımıdır. +5 volt ve çip üzerinden topraklama, ancak transistörlere ulaşmak için gücün M2 ve M1'den geçirilmesi gerekir.

The upper left corner of the ROM.

ROM'un sol üst köşesi.

Yukarıdaki diğer önemli özellik ise sıra seçme sinyallerinin dağıtılmasına yardımcı olan yatay metal çizgilerdir. Daha önce gösterildiği gibi, yatay polisilikon çizgiler transistörlere sıra seçme sinyallerini sağlar. Ancak polisilikon metal kadar iyi bir iletken değildir, dolayısıyla uzun polisilikon hatları çok fazla dirence sahiptir. Çözüm, metal hatları paralel olarak, altta yatan polisilikon hatlara periyodik olarak bağlamak ve genel direnci azaltır. Dikey metal çıkış çizgileri M1 katmanında olduğundan yatay satır seçme çizgileri M2 katmanında ilerler ve böylece çarpışmazlar. M1 katmanındaki kısa "atlama telleri" M2 hatlarını polisilikon hatlara bağlar.

Özetlemek gerekirse, her ROM bankası, ROM'un bitlerini tanımlamak için bir transistör ızgarası ve boş transistör yerleri içerir. ROM, farklı katmanların (silikon, polisilikon, M1 ve M2) verimliliği en üst düzeye çıkarmak için birlikte çalışacak şekilde dikkatlice tasarlanmıştır. ROM'un performansı ve yoğunluğu.

Mikrokod Adres Kaydı

Pentium bir talimatı yürütürken, her mikro talimatın adresini mikro kod ROM'a sağlar. Pentium bu adresi (mikro adres) Mikro Kod Adres Kaydı'nda (MAR) tutar. MAR, mikro kod ROM'un üzerinde bulunan 13 bitlik bir kayıttır.

Aşağıdaki şemada üst ROM kümesinin üzerindeki Mikrokod Adres Kaydı gösterilmektedir. 13 bitten oluşur; her bit, değeri ve itilen alt program mikro adreslerini tutmak için birden fazla mandala sahiptir. 7. ve 8. bitler arasında bazı tampon devreleri, her bitin devresine giden kontrol sinyallerini güçlendirir. Sağda, sürücüler MAR'dan gelen çıkışları yükselterek sinyalleri satır sürücülerine ve sütun seçme devrelerine gönderiyor. Aşağıda tartışacağım. MAR'ın solunda, işlevini belirlememiş olmama rağmen, görünüşe göre mikro kod ROM ile ilgisi olmayan 32 bitlik bir kayıt bulunmaktadır.

The Microcode Address Register is located above the upper ROM bank.

Mikrokod Adres Kaydı üst ROM kümesinin üzerinde bulunur.

Mikrokod Adres Kaydının çıktıları, açıklayacağım gibi, mikrokod ROM'daki satırları ve sütunları seçer. aşağıda. MAR'ın 12'den 7'ye kadar olan bitleri 8 satırlık bir bloğu seçerken, 6'dan 4'e kadar olan bitler bu bloktaki bir satırı seçer. 3'ten 0'a kadar olan bitler, bir çıkış biti seçmek için her 16 sütunluk gruptan bir sütunu seçer. Böylece mikro kod adresi, ROM tarafından hangi kelimenin sağlandığını kontrol eder.

Mikrokod Adres Kaydı üzerinde birkaç farklı işlem gerçekleştirilebilir. Bir makine talimatını yürütürken MAR, karşılık gelen komutun adresiyle yüklenmelidir. mikro kod rutini. (Bu adresin nasıl oluşturulduğunu belirlemedim.) Mikro kod yürütülürken, MAR genellikle bir sonraki mikro talimata geçmek için artırılır. Ancak MAR gerektiğinde yeni bir mikro adrese dallanabilir. MAR ayrıca mikrokod altprogram çağrılarını da destekler; mevcut mikro adresi itecek ve yeni mikro adrese atlayacaktır. Mikro altprogramın sonunda mikro adres açılır ve böylece yürütme önceki konuma döner. MAR, itilen mikro adres yığınını tutacak üç kayıt içerdiğinden, üç düzeyde alt program çağrısını destekler.

MAR, kontrol sinyallerini ve adreslerinistandart hücre mantığındanalır MAR'ın üzerinde yer alır. Garip bir şekilde, Intel'in Pentium için yayınladığıkat planlarındabu standart hücre mantığı şu şekildedir: onun üzerinde bulunan dallanma tahmin mantığının bir parçası olarak etiketlenmiştir. Bununla birlikte, standart hücre mantığından gelen sinyallerin dikkatlice izlenmesi, bunun Mikrokod Adres Kaydına değil, Mikrokod Adres Kaydına bağlı olduğunu gösterir. dal tahmincisi.

Sıra seçimli sürücüler

Yukarıda açıklandığı gibi, her ROM kümesinde 288 sıra transistör bulunur ve sıralardan birini seçmek için polisilikon çizgiler bulunur. ROM'un sağında, mikro adrese dayalı olarak bu satır seçme hatlarından birini etkinleştiren devre bulunur. Her satır farklı bir 9 bitlik adresle eşleşir. Basit bir uygulama, her biri için 9 girişli bir AND geçidi kullanır. 9 adres biti veya bunların tamamlayıcılarından oluşan belirli bir modelle eşleşen satır.

Ancak bu uygulama 576 adet çok büyük AND kapısı gerektireceğinden pratik değildir. Bunun yerine Pentium optimize edilmiş bir uygulama kullanıyor...




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

🔗 Kaynak Baglantisi: http://www.righto.com/2025/03/pentium-microcde-rom-circuitry.html

Thread Statistics

Views 1
Replies 0
Author righto.com
Created 2025-03-31
Status
Open