Оригиналът е на Кен Шириф (Ken Shirriff), известен хардуерен специалист.
Революционният Intel 386 (1985 г.) е първият 32-битов процесор от линията x86. Той има много вътрешни регистри: регистри с общо предназначение, индексни регистри, сегментни селектори и по-специализирани регистри. В тази публикация ще разгледаме силициевия кристал на 386 и ще обясним как някои от тези регистри са реализирани на ниво транзистор. Регистрите, които изучавах, са реализирани като статична оперативна памет, където всеки бит се съхранява в стандартна осемтранзисторна схема, наречена „8T“. Разглеждането на тази схема демонстрира интересните техники за разполагане, използвани от Intel за „компресиране“ на двете клетки, за да се сведе до минимум пространството, което те изискват.
Схемата по-долу показва вътрешната структура на 386. Маркирал съм съответните регистри с три червени правоъгълника. Двата набора от регистри са в кеша за дескриптори на сегментите и вероятно съхраняват елементи на кеша, а единият набор се намира по-надолу от шината за данни. Някои от регистрите в долната част са с ширина 32 бита, а други са наполовина по-малко и съдържат 16 бита. Има и други регистри с различни схеми, но няма да ги разглеждам в тази статия.

Клетките 6Р и 8Т на статичната RAM
Първо ще обясня как статичните клетки 6T и 8T съхраняват битовете. Основната идея на статичната RAM клетка е да се свържат два инвертора в една верига. Тази верига ще бъде стабилна, когато единият инвертор е включен, а другият – изключен, и всеки инвертор подкрепя другия. В зависимост от това кой инвертор е включен, веригата съхранява 0 или 1.

За да се запише нова стойност във веригата, към нея се подават два сигнала, които принуждават инверторите да приемат желаните нови стойности. Единият инвертор получава новата стойност на битовете, а другият инвертор – противоположната стойност на битовете. Това е подобно на начина за актуализиране на бит с „груба сила“, но работи. Уловката е, че инверторите в клетката са малки и слаби, а входните сигнали са с по-голям ток и могат да претоварят инверторите.
Шините за запис на данни са свързани с инверторите чрез проходни транзистори. Когато проходните транзистори са включени, сигналите от шините за запис могат да преминат към инверторите. Но когато пропускателните транзистори са изключени, инверторите са изолирани от шините за запис.
По този начин управляващият сигнал за запис позволява да се записват нови стойности в инверторите. (Този сигнал се нарича шина за думите (wordline bus), защото контролира достъпа до думата за данни в паметта). Тъй като всеки инвертор се състои от два транзистора, схемата, показана по-долу, се състои от шест транзистора, образуващи клетката за съхранение 6Т.

6T клетката използва едни и същи битови шини за четене и запис. С добавянето на два транзистора получаваме схемата 8T, чието предимство е, че може едновременно да записва в единия регистър и да чете от другия. (Тоест регистровият файл е с два порта.) В показаната по-долу клетка 8T двата допълнителни транзистора (G и H) се използват за четене. Транзисторът G буферира стойността на клетката; той се включва, когато изходът на инвертора е висок, като издърпва надолу извода на шината за четене. Транзисторът H е пропускателен транзистор, който блокира сигнала, докато не се извърши четене в този регистър; той се управлява от шината на думата.

За да се формират регистрите (или паметта), от тези клетки се създава мрежа. Всеки ред съответства на регистър, а всяка колона – на позиция на бит. Хоризонталните линии са шини за думи, които избират коя дума да бъде достъпна, а вертикалните линии са битови шини, които прехвърлят битове към и от регистрите. За запис вертикалните битови шини осигуряват 32 бита (заедно с техния обратен код). При четене вертикалните битови шини получават 32 бита от регистъра. Шината за думи се активира, за да се чете или записва избраният регистър.

Силициевите вериги в 386
Преди да покажа структурата на веригата в чипа, трябва да разкажа малко за технологията, използвана за производството на 386. Процесорът 386 е изграден по CMOS технология, базирана на NMOS и PMOS транзистори, които работят заедно; това е напредък в сравнение с предишните x86 чипове, изградени на базата само на NMOS транзистори. Intel нарече тази CMOS технология с 1,5-микрометров процес CHMOS-III (complementary high-performance metal-oxide-silicon). Предишните чипове на Intel имаха един метален слой, а CHMOS-III позволяваше два метални слоя, което значително опростяваше трасирането.
Тъй като CMOS използва както NMOS, така и PMOS, производството е по-сложно.
В MOS интегралната схема транзисторът се формира там, където полисилициевият проводник се среща с активния силиций, създавайки гейта на транзистора. PMOS транзисторът се произвежда директно върху силициевата подложка (n-тип). За разлика от тях обаче NMOS транзисторът изисква подложка от p-тип. Той е създаден чрез образуване на р-тип джоб – област от р-тип силиций, съдържаща NMOS транзистори. Всеки джоб от р-тип трябва да бъде свързан със земята; това се осъществява чрез свързване на земята към специално легирани области на джоба от р-тип, наречени well taps.
На схемата по-долу е показано напречното сечение на два транзистора, като са показани слоевете на чипа. Има четири важни слоя: силиций (някои области от него са легирани, за да образуват активен силиций), полисилиций за проводниците и транзисторите и два слоя метал. В долната част се намира силиций от p-тип или n-тип; обърнете внимание на джоба от p-тип вляво за NMOS транзистора. Следва слой от полисилиций. Отгоре има два слоя метал, обозначени като M1 и M2. Концептуално чипът е направен от плоски слоеве, но слоевете имат триизмерна структура, която се влияе от лежащите под тях слоеве. Слоевете са разделени от силициев диоксид (окси) и силициев оксинитрид.

Изображението по-долу показва как изглежда схемата върху кристала; премахнах металните слоеве, за да покажа силиция и полисилиция, които образуват транзисторите. (Както е посочено по-долу, това изображение показва две статични клетки, съхраняващи два бита.) Розовите и тъмните области са активен силиций, легиран, за да участва във веригата, а „фоновият“ силиций може да бъде пренебрегнат. Зелените линии са полисилициеви линии върху силиция. Най-важният елемент тук са транзисторите: гейтът на транзистора се образува, когато полисилицият срещне силиция, образувайки сорс и дрейн от двете страни. В горната част на изображението се намират PMOS транзисторите, а в долната част има p-тип джоб, съдържащ NMOS транзистори. (Самият джоб не се вижда.) На изображението се виждат общо четири PMOS транзистора и дванадесет NMOS транзистора. В долната си част, елементи на отводите свързват джоба със земята. Въпреки че металните слоеве са отстранени, контактите между долния метален слой (M1) и силиция или полисилиция се виждат като едва забележими кръгчета.

Структурата на регистъра в процесора 386
След това ще разгледам структурата на тези клетки в 386. За да се увеличи плътността на веригата, двете клетки са разположени една до друга с огледално разположение. Това гарантира, че на всеки ред има по два редуващи се регистъра. Диаграмата по-долу показва разположението на сдвоените клетки, съответстващо на снимката на кристала, показана по-горе. Транзисторите A и B образуват първия инвертор, а транзисторите C и D – втория инвертор. Проходните транзистори E и F позволяват на шините да извършват запис в клетката. За четене транзисторът G усилва сигнала, а транзисторът H свързва избрания бит към извода.

Лявата и дясната страна са почти огледални, като всяка половина има свои собствени шини за управление на четенето и записа. Тъй като контролните шини за лявата и дясната страна се намират на различни места, страните имат някои разлики в структурата; по-конкретно открояващата се линия от дясната страна. Огледалното разполагане на клетките увеличава плътността, тъй като клетките могат да споделят общи битови шини.
На схемата по-долу са показани различните компоненти на кристала, съответстващи на схемата по-горе. Начертах в синьо връзките на долния метален слой М1, но не съм отбелязал връзките на М2 (хоризонталните контролни шини, захранването и заземяването). Read crossover показва връзката на извода за четене вляво към битовата линия вдясно. Черните кръгове показват преходните отвори между M1 и M2, зелените кръгове показват контактите между силиция и M1, а червеникавите кръгове са контактите между полисилиция и M1.

Допълнително усложнение е, че редуващите се регистри (т.е. редовете) са огледални по вертикала, както е показано по-долу. Това позволява на хоризонталната захранваща шина да захранва два реда, като същото се отнася и за хоризонталната заземителна шина. Това намалява наполовина броя на необходимите захранващи/заземяващи шини, което прави структурата по-ефективна.

Наличието на два метални слоя значително усложнява обратното инженерство на веригите. На снимката по-долу (вляво) е показана една от статичните RAM клетки, видяна под микроскоп. Въпреки че снимката показва структурата на металните слоеве, има много неясноти. Трудно е да се разграничат двата метални слоя. Освен това металът напълно скрива полисилициевия слой, да не говорим за силиция под него. Големите черни кръгове са проходните отвори между двата метални слоя. Слабо видимите по-малки кръгове са контактите между металния слой и силициевия или полисилициевия слой под него.

С известни усилия подредих металните слоеве, които показах вдясно: M2 (горе) и M1 (долу). Сравнявайки лявото и дясното изображение, можете частично да видите структурата на металните слоеве. С черни кръгчета отбелязах преходните отвори между слоевете, със зелени кръгчета отбелязах контактите между М1 и силиций, а с розови кръгчета отбелязах контактите между М1 и полисилиция. Заслужава да се отбележи, че двата метални слоя са опаковани възможно най-плътно. Структурата на тази схема е силно оптимизирана, за да се сведе до минимум площта. Интересно е да се отбележи, че намаляването на размера на транзисторите не би помогнало за намаляване на размера на веригата, тъй като той е ограничен от плътността на метала. Това показва, че в производствения процес трябва да се намери баланса между размерите на металните, полисилициевите и силициевите елементи, тъй като прекомерното оптимизиране на една част няма да помогне за увеличаване на общата плътност на чипа.
Снимката по-долу показва долната част на регистровия файл. Прорезът (Notch) намалява наполовина ширината на регистрите най-отдолу: четири реда с половин широчина съответстват на осем 16-битови регистъра. Тъй като 386 има шест 16-битови сегментни регистъра, подозирам, че това са сегментните регистри и два неизвестни тайнствени регистъра.

Не успях да определя кои регистри в 386 съответстват на останалите регистри в чипа. Има два реда регистрови клетки в сегментната дескрипторна схема с още десет реда под тях, съответстващи на двадесет и четири 32-битови регистъра. Предполага се, че това са сегментните дескриптори. В долната част на трасето за данни има десет 32-битови регистъра със схема Т8. Регистрите, видими за програмиста на 386, се състоят от осем 32-битови регистъра с общо предназначение (EAX и т.н.). 386 има най-различни малко известни регистри за управление, тестване и сегментиране. 8086 има няколко регистъра за вътрешна употреба, които са невидими за програмиста, което означава, че навярно 386 има още повече невидими регистри. Все още не мога дори приблизително да определя тяхната функционалност.
Изводи
Интересно е да се проучи как се реализират регистрите в един реален процесор. Съществуват много описания на схеми с 8T статични клетки, но се оказва, че физическата реализация е по-сложна от теоретичното описание. Intel е вложила много усилия в оптимизирането на тази схема, постигайки гъст пакет от блокове. Чрез огледално разполагане на клетките по хоризонтала и вертикала плътността може да бъде допълнително подобрена.
Обратното инженерство на малка верига на процесора 386 се оказа изненадващо сложен процес, така че не планирам да правя пълно обратно инженерство. Основната трудност е, че е трудно да се осмислят двата слоя метал. Освен това при премахването на метала загубих по-голямата част от поликристала.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!