64 квадратных миллиметров счастья
Автор |
Сообщение |
27 май 2013, 09:31 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 569
|
Спасибо за фотки! Правильность расположения фотографии я не гарантирую )) Когда разламывал свой процессор - запутался где верх, а где низ, так что моя фотка на самом деле может быть вверх ногами или "на боку" ) Но это не страшно. Главное - разобраться как тут формируются транзисторы. Как я понимаю слоев металла - 2. И не понятно как они соединяются с полисиликоном. Например такое впечатление, что тоненькие провода в логике просто "намазаны" сверху без всяких контактов. -- 27 май 2013, 10:49 -- Михаил прислал пример фото на 20x, я немного покопал там. Чип сделан по принципу CBIC (cell-based IC). То есть в некой среде (подозреваю что в SPICE) на базе "стандартных клеток" (standard cells) организованы ряды логических элементов с межсоединениями. То есть задача разбора значительно упрощается тем, что достаточно разобрать стандартные блоки и узнать где у них хвост, где грива. Естественно блоки памяти сделаны кастомно, вот тут написано как делается это на пальцах: http://pdfsb.com/readonline/5a565241656 ... 68566b593d
Вложения:
1.jpg [ 273.04 КБ | Просмотров: 12714 ]
|
 |
27 май 2013, 15:56 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 569
|
Сделал первичную разводку питания + обозначил контакты. В первом приближении чип даже проще, чем 6502. Потому что разработка велась не руками, а в CAD. Соответственно и обратная разработка должна быть проще в плане восстановления блоков.  (Картинка по ссылке 15 метров) Территориально чип разделен на 4 большие части. По середине снизу-вверх идёт какой-то неидентифицированный толстый провод, похоже на RESET.
|
 |
27 май 2013, 17:49 |
|
Зарегистрирован: 18 янв 2009, 14:20 Сообщения: 805
|
Круто! org, а пользу-то какую-нибудь получится извлечь?
|
 |
27 май 2013, 18:08 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 569
|
Если получиться аккуратно снять по очереди два слоя металла, при этом не повредив полисиликон и добраться до слоя диффузии, то узнаем как работает проц. Верхний слой металла уже можно трассировать без проблем. Ждём фотки в 20x. Меня интересует как работает GTE, остальное смотреть пока не планирую, ещё есть незаконченные дела с NES.
|
 |
27 май 2013, 18:47 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
edgbla писал(а): Круто! org, а пользу-то какую-нибудь получится извлечь? Я, как главный затеватель декапа чипов PS1 хочу восстановить всю логическую схему, понять как он работает и, возможно, написать самый медленный эмулятор PSX из всех возможных =D Главная цель - восстановить логическую схему.
|
 |
27 май 2013, 19:14 |
|
Зарегистрирован: 18 янв 2009, 14:20 Сообщения: 805
|
Отлично, частично нам значит по пути. 
|
 |
28 май 2013, 12:24 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
edgbla писал(а): Отлично, частично нам значит по пути.  А есть какой-нибуть список того что сейчас осталось спорного и непонятного в устройстве PS1? Чтобы в эту сторону копать в первую очередь?
|
 |
28 май 2013, 17:36 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 569
|
Практически всё. Особенно неизвестно назначение регистров тайминга и прочих регистров конфигруации, которые инициализируются при загрузке BIOS (так называемые "delay"-регистры). Неизвестно назначение непонятного регистра 0xFFFE0130 (или как-то так), есть предположения что он управляет работой кеша. Точные алгоритмы декодирования MDEC тоже неизвестны (таблица квантизации в частности). Есть вопросы по root counters (хотя edgbla провёл исследование, всё равно интересно как они на самом деле работают). Много пробелов в системном сопроцессоре (CP0). Ну и естественно GTE. Поле для деятельности необъятное.
|
 |
03 июн 2013, 18:48 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Склейка процессора идет полным ходом. С моей стороны на данный момент склеено 106 картинок из 831 (примерно 1/8 чипа). Размер получается около 30000 пикселей на сторону.  Орг разбил весь чип на 19 кусков и сейчас занят трассировкой куска 2-4. Ну думаю он сам лучше отпишется, когда будет что показать. 
Вложения:
7B10F9943EADC4671603A6BCC0D3CE34.jpg [ 178.54 КБ | Просмотров: 12847 ]
psxcpu.jpg [ 48.46 КБ | Просмотров: 12847 ]
|
 |
05 июн 2013, 15:41 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 569
|
Рапортую о первых результатах трассировки подопечного кусочка 2-4, в левом-нижнем углу:  Высокое разрешение : http://breaknes.com/files/PSX/24_trans.jpgТрассировка ведется непринужденно, практически все провода - прямые. Небольшие проблемы вносят искажения после склейки, особенно коряво получились места помеченные белой волнистой линией - там беда. Качество фотографии позволяет даже трассировать полисиликоновые межсоединения. Прикол в том, что металл и полисиликон соединяются исключительно под прямым углом, поэтому разобраться куда ведет шланг не составляет труда. 4 больших квадратных блока - идентичные по структуре. Структурно каждый из этих 4 блоков поделен на 4 части : входная, контроль, логика и выходная. На входную логику поступает 16 x 4 входов, на выходе - 16 разрядов результата. На контроль поступает ещё 4 шланга, при этом на одних блоках эти шланги отсоединены, а на одном - 2 шланга подведены на VCC. _Очень_ похоже что это full adders x 4, если принять 4 контрольных входа за входные разряды переноса (carry) Также я пометил ячейки с логикой, всего я насчитал порядка 230 штук. После того, как я пометил границы ячеек, стало понятней что с чем соединяется. Ячейки на самом деле не совсем "стандартные", а являются миксом CMOS-топологии, оптимизированной в ручную. То есть наверняка используются стандартные приемы, но в целом эти ячейки состоят из нескольких вентилей, объединенных в один блок. По крайней мере 2-х одинаковых ячеек я не нашёл. Теперь стало совершенно понятно, что у процессора нет четких границ между функциональными блоками и схема равномерно "размазана" между ячейками, которые соединены между собой металл/полисиликоновыми межсоединениями. Кстати, если примерно масштабировать количество ячеек на весь процессор, то получается около 10000 ячеек. Если примерно прикинуть, что на каждую ячейку приходится по 5-6 логических вентилей, а в каждом вентиле - по 4-5 транзисторов, то получается что вся логика процессора составляет примерно 250к транзисторов (сравнить с 3500 транзисторами MOS 6502).
|
 |
05 июн 2013, 15:45 |
|
Зарегистрирован: 26 май 2013, 23:44 Сообщения: 5
|
Для того, чтобы было меньше искажений на стыке кадров, и нужно было запрещать поворот картинок при оптимизации в Hugin-е. -- 05 Jun 2013, 15:47 -- org писал(а): 4 больших квадратных блока - идентичные по структуре. Структурно каждый из этих 4 блоков поделен на 4 части : входная, контроль, логика и выходная. На входную логику поступает 16 x 4 входов, на выходе - 16 разрядов результата. На контроль поступает ещё 4 шланга, при этом на одних блоках эти шланги отсоединены, а на одном - 2 шланга подведены на VCC. _Очень_ похоже что это full adders x 4, если принять 4 контрольных входа за входные разряды переноса (carry) Я бы скорее сказал, что это регистровые файлы какие-то или многопортовая память. Full-adder-ы гораздо меньше по площади должны быть.
_________________ Microchip internals: http://zeptobars.ru/
|
 |
05 июн 2013, 16:09 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 569
|
Было подозрение что это 16 x 4 регистра GTE, но тогда зачем столько входов ? У регистра обычно один вход, один выход и 2 управляющих провода (Get/Set). К тому же я имею ввиду что это не обычные full addres Z = A + B + carry , а full addres x 4 : Z = A + B + C + D + carry1 + carry2 + carry3 + carry4. Дело в том, что у GTE частенько используется умножение матрицы на вектор : MAC1=A1[TRX + R11*VX0 + R12*VY0 + R13*VZ0] Хотя тогда должны быть Carry out выходы ещё. Цитата: Для того, чтобы было меньше искажений на стыке кадров, и нужно было запрещать поворот картинок при оптимизации в Hugin-е. Без поворота ещё хуже получалось 
|
 |
05 июн 2013, 16:17 |
|
Зарегистрирован: 26 май 2013, 23:44 Сообщения: 5
|
Цитата: Без поворота ещё хуже получалось  В таком случае возникнут серьёзные проблемы с совмещением последующих слоев - там ведь тоже будут нестыковки, но уже другие...
_________________ Microchip internals: http://zeptobars.ru/
|
 |
05 июн 2013, 17:37 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 569
|
Если делать по кусочкам, то все будет хорошо. Практической пользы в полноразмерной фотке всего кристалла нет. Ибо при рисовании транзисторных схем всё равно приходится дробить картинку на более мелкие части. Так же и с нижним слоем - ищем подходящий кусок под верхний, склеиваем, вставляем в фотошоп и трансформированием примерно подгоняем нижний слой под верхний.
PS. Не забывайте что логика идёт стройными рядами, это дополнительная подсказка, чтобы найти нужную ячейку.
Топология это только верхушка айсберга.
|
 |
05 июн 2013, 18:39 |
|
Зарегистрирован: 23 июл 2007, 19:37 Сообщения: 401 Откуда: Мытищи
|
org, а не отправить ли на декап дендевские 6527P и 6538? HardWareMan думаю без проблем сможет их выслать к zeptobars, если получит согласие. У меня на текущий момент нет свободных 6538, а те что есть - битые
_________________ Nestopia 1.37/1.40 Fixed
|
 |
05 июн 2013, 19:13 |
|
Зарегистрирован: 24 июл 2007, 06:54 Сообщения: 492 Откуда: Embedded
|
Меня интересует весь дендик (именно дендик, т.е 6527 и 6538), но ППУ (6538) меня интересует вперед.
_________________ Tried so hard and got so far, but in the end, it doesn't even matter...
|
 |
06 июн 2013, 00:31 |
|
|
задача в принципе понятна и осуществима. org писал(а): Главное - разобраться как тут формируются транзисторы. Как я понимаю слоев металла - 2. И не понятно как они соединяются с полисиликоном. Например такое впечатление, что тоненькие провода в логике просто "намазаны" сверху без всяких контактов.
нужна бОльшая детализация для распознавания транзисторов, их размеров, связей и т.д. если будут фотографии, готов помочь с участками логики. Комментарий к этой фотке download/file.php?id=782&mode=view1. В техпроцессах нумерация металлов происходим снизу вверх: самый нижний - металл 1 - М1 выше - металл 2 - М2 и т.д. В данной фотке: M1 - положили горизонтально, М2 - вертикально. 2. Твои розовые полоски - это тоже металл, М1. Потому что расположены параллельно с линиями VCC, GND. И соединяются сразу с верхним металлом М2. 3. Надо различать контакты между "M1 и poly" и "M1 и M2". Пока-что у тебя все черными "виасами" соединяется.
|
 |
06 июн 2013, 10:27 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 569
|
Цитата: 2. Твои розовые полоски - это тоже металл, М1. Потому что расположены параллельно с линиями VCC, GND. И соединяются сразу с верхним металлом М2. Было подозрение что это металл 1, но уверенности не было. Исправить в фотошопе можно быстро. Тогда и виасы черного цвета будут только между M1 и M2. Обозначение M1/M2 не принципиально для наших целей) Но будем тогда придерживаться общепринятому обществом стандарту.
|
 |
06 июн 2013, 12:34 |
|
Зарегистрирован: 06 июн 2013, 12:25 Сообщения: 1
|
Добрый день! Я попал на этот форум с хабра, точнее после прочтения этой новости: http://habrahabr.ru/post/182286/Там написано что Вам нужны лишние руки. Цитата: Тем не менее — работы ожидается очень много — и дополнительные руки очень не помешают. Если вам этот проект интересен, вы усидчивы, и у вашего компьютера больше 2Гб памяти — вы также можете поучаствовать. По критериям подхожу =) Проект мне интересен, хочу помочь.
|
 |
06 июн 2013, 13:51 |
|
|
Здравствуйте, я тоже хабра, хочу помочь.
PS: Кстати у меня на руках должна быть уже нерабочая PS1 96-го года выпуска (надо порыться в шкафу). Если это как-то поможет, могу её отдать на растерзание.
|
 |
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|