64 квадратных миллиметров счастья
Автор |
Сообщение |
26 дек 2013, 02:58 |
|
|
Отличная работа, org. Но иногда складывается ощущение, что ты не человек и вместо половины лица у тебя металл Пройдя курс электроники в универе ооочень отдаленно понимаю, как ты все это делаешь. И масштабы действия удивляют
|
|
28 дек 2013, 19:21 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Новейшие находки: Мы уже почти со 100% уверенностью можем сказать что мой кусок это часть MDEC декодера. 1) Scale Table Matrix хранится в нулевом Юните. Она хранится в виде 32 записей по 26 бит. После выхода данные попарно поступают на мультиплексоры где выбирается какие 13 бит использовать. (внизу картинки). 2) Результат всех этих вычислений 17битный. Он снова подается на эту же схему вычислений справа. Паралельно 13 бит этог8о результата сохраняются в первый юнит. Это единственный результат вычислений который покидает пределы схемы. 3) Помимо Scale Table Matrix и результат вычислений есть еще 6 входных бит. Но откуда они берутся пока неясно. 4) Выходы нулевого юнита помимо этой схемы идут куда-то еще. Пока непонятно куда Full version are here http://wiki.psxdev.ru/images/4/4f/Circuit002_logic.jpg
|
|
03 янв 2014, 05:15 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
Контакт шины данных DD.
|
|
03 янв 2014, 20:38 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
Сбацал небольшой мануал, который поможет понять суть происходящего. http://wiki.psxdev.ru/index.php/%D0%9F% ... 1%80%D1%8B
|
|
05 янв 2014, 01:48 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
В раздел Скачать ( http://psxdev.ru/download) выложены склееные фотографии активного слоя PSX CPU. Исходные 9 ГБ ужались до 220 МБ Теперь работать со стандартными ячейками стало гораздо удобнее. Следующей задачей является идентификация всех ячеек, параллельно ведется подсчёт их количества. В результате всего массив данных ужмется ещё сильнее и составит каких-то 100 КБ текста (тип ячейки + координаты) из которого можно будет сгенерировать любой участок процессора. Пример идентификации ячеек можно посмотреть тут : http://psxdev.ru/files/IC103/psxcpu_active_03_06.svg (загружается не сразу!). Видно, что не все области хорошо просматриваются за пятнами грязи, эти участки мы восстановим потом, на базе фотографий М1 (которые тоже ещё предстоит сшить). PS. По стандартным ячейкам прогресс можно смотреть тут : http://wiki.psxdev.ru/index.php/CPU_CELLS
|
|
10 янв 2014, 01:32 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
Разобрана схема очередного блока памяти - Unit-00.
Этот блок содержит таблицу IDCT Scale Table в виде 64 спаренных 13-разрядных слов.
Схема не просто получена, но ещё и просимулирована в симуляторе Logisim.
-- 10 янв 2014, 00:33 --
-- 10 янв 2014, 00:33 --
-- 10 янв 2014, 00:35 --
|
|
10 янв 2014, 10:09 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
Кажется я нашёл алгоритм, по которому производился роутинг М1/M2 : http://en.wikipedia.org/wiki/Channel_routerИ даже исходники роутера нашёл. Возможно что даже не придётся трассировать роутинг, а просто хакнуть алгоритм трассировки и можно будет пересобрать все ячейки)
Вложения:
yacr2.zip [31.39 КБ]
Скачиваний: 352
|
|
10 янв 2014, 23:02 |
|
Зарегистрирован: 19 июн 2013, 10:59 Сообщения: 30
|
Обратный процесс трассировки невозможен, как невозможно по сумме узнать слагаемые. Перед трассировкой у трассировщика уже есть заданная сеть связей. На нее он опирается раскладывая дорожки, без нее он просто не разложит ничего, плюсп путей из А в Б много возможных.
|
|
11 янв 2014, 01:04 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
А мы и не будем обратно, прямым перебором можно попробовать) Заданная сеть связей - это контакты ячеек.
|
|
11 янв 2014, 18:03 |
|
Зарегистрирован: 19 июн 2013, 10:59 Сообщения: 30
|
Допустим есть ячейки для простого сдвигового регистра на 8 бит, как ретрассировщик вообще поймет что это такое и в какйю сторону оно двигает? Нее, путь однозначно тупиковый.
|
|
12 янв 2014, 22:50 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
В общих чертах разобрались как работает IDCT преобразование в MDEC. Матричное умножение еще предстоит симулировать чтобы понять его досконально. но кое какие результаты уже есть. Преобразование осуществляется за 2 прохода: 1) На первом проходе осуществляется умножение результата RLE декомпрессии и Scale Table Matrix хранящейся в UNIT 00. Она хранится в виде 32 записей по 26 бит. После выхода данные попарно поступают на мультиплексоры где выбирается какие 13 бит использовать. Входы: - RLE вход: 12 бит - Scale Table Matrix вход: 13 бит - Сумма предыдущего этапа вычисления: 17 бит Схема сразу умножает 2 входа и суммирует умножение с результатом предыдущего шага вычисления. 17 бит результата вновь подается на схему. В конце вычисления старшие 13 бит результата сохраняются в UNIT 01, который, по всей видимости, представляет из себя двухпортовую память. то есть на вход и выход которой могут подаватся разные значения. 2) На втором проходе перемножается уже 13 бит результата первого прохода и 12 верхних бит Scale Table Matrix. Входы: - Результат первого прохода: 13 бит - Scale Table Matrix вход: верхние 12 бит - Сумма предыдущего этапа вычисления: 17 бит Схема вновь умножает 2 входа и суммирует умножение с результатом предыдущего шага вычисления. 17 бит результата вновь подается на схему. В конце вычисления старшие 10 бит результата передаются на схему знакового деления на 2 с клампингом -128, 127. На выходе мы получаем 8 бит со знаком.
|
|
14 янв 2014, 12:45 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
Очередной блок, на этот раз Unit-01. Мы догадывались как работает этот блок памяти, но разобрать его всё таки было нужно, для полноты картины. Это обычная память, организованная в виде 16 13-разрядных слов, но с одной особенностью: ячейки имеют разделенный ввод/вывод. То есть для входа может быть выбрана одна ячейка, а для выхода - другая. Это нужно для того чтобы организовать распределенное умножение IDCT в 2 прохода. Пока один проход использует один промежуточный результат (8 значений), второй проход использует другой (другие 8 значений). Поэтому используется 2 декодера 4-в-16: один для выходного значения, другой для входного.
|
|
02 фев 2014, 11:04 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Прошло уже 2 месяца с тех пор как я начал разбирать ячейки в MDEC угле чипа. Исследованная область сейчас примерно такая: На данный момент происходит разбор схемы управления IDCT преобразованием:
|
|
11 фев 2014, 01:11 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
Доступ к информации по стандартным ячейкам в обновленном формате: http://psxdev.ru/cellsМы выбрали удобную схему для идентификации ячеек по их cell features, также дополнительно все ячейки будут обновлены каркасными картинками М1. Информация будет потихоньку перетаскиваться из разных мест (вики, SVN итп.) на эту страничку.
Вложения:
cells_module.jpg [ 117.84 КБ | Просмотров: 13442 ]
|
|
14 фев 2014, 13:44 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Набросал куда идут разные сигналы на моем куске
|
|
03 мар 2014, 19:13 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Прошло уже 3 месяца с тех пор как я начал разбор своего куска 00, на котором расположен MDEC. Пришла пора показать насколько далеко я продвинулся. На данный момент весь фронт работ занимает 5 отдельных кусков жопегов, по которым я расставляю исследуемые оргом ячейки. Практически полностью удалось завершить IDCT преобразование и сейчас я направился вниз, к юниту 03 и 04, к участкам, которые видимо выполняют RLE. Итак, отчет оп датам: 1) За декабрь удалось сделать первый проход IDCT. Кроме IDCT по схеме еще ползут линии для пинов данных. 2) Весь январь ушел на второй проход IDCT и на начало разбора контроля этим преобразованием. Была сделана попытка просимулировать оба прохода умножения, но пока не особо удачная. Логическая схема IDCT представляет из себя что-то вроде этого 3) Февраль был проведен за попыткой симуляции контроля и дальнейшим его разбиранием. Очень много линий контроля уходят куда-то вдаль и пока их назначение остается неизвестным. Сейчас я решил двинутся вниз и разобрать ячейки возле юнита 03, который пока не связан напрямую с MDEC, но я полагаю что он является частью RLE и скоро мы увидим как из него данные пойдут в IDCT.
|
|
08 мар 2014, 07:58 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Закончил очередной ряд выходных элементов с юнита 03. На этот раз это были тристейты. Выходы с этих тристейтов идут сразу в 2 направления. На триггера чуть вверху и куда-то шибко влево, в еще неизведанные области чипа.
Вложения:
UNIT_03.jpg [ 68.55 КБ | Просмотров: 13197 ]
|
|
08 мар 2014, 19:04 |
|
Зарегистрирован: 19 июн 2013, 10:59 Сообщения: 30
|
А сайт почините?
|
|
10 мар 2014, 15:22 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Gloval писал(а): А сайт почините? Все заработало.
|
|
18 мар 2014, 15:36 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Закончил переход на новый принцип работы с картинками и закончил трассировать входы на юниты 00 и 04 с матрицей скейла. Все в основном сосредоточено в 04 куске, который расположен справа от юнита 03, назначение которого пока неизвестно. В ячейках матрицы 00, которая используется непоследственно в умножении всего 13 бит на число, в то время как в ячейках матрицы в 04 - 16 бит на число. Видимо в 04 юните происходит финальное вычисление матрицы, которая потом передается в юнит 00.
Вложения:
part4_2.jpg [ 380.96 КБ | Просмотров: 13088 ]
STMU_IN_2.jpg [ 254.68 КБ | Просмотров: 13088 ]
|
|
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|