Автор |
Сообщение |
19 мар 2014, 17:53 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Теперь процесс пошел быстрее. Добавил еще один ряд входных триггеров (32 штуки). С некоторых из них идут выходы на другие логически ячейки, видимо для какого-то контроля за результатом. Назначение непонятно. Самое странное что они отличаются у двух разных значений матрицы, хотя должны бы зеркально повторять друг друга. Работаем дальше.
Вложения:
STMU_IN_3.jpg [ 216.71 КБ | Просмотров: 15367 ]
part4_3.jpg [ 387.93 КБ | Просмотров: 15367 ]
|
|
21 мар 2014, 18:01 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Закончил ряд выходов с юнита 04. Теперь мне кажется что это все-таки не Scale Table Matrix. Слишком уж непохожа работа с данными. Данные на все эти юниты как я и предполагал идут с юнита 03. Видимо юнит 03 является каким-то буфером (например буфером параметров) или дма буфером. С которого данные расходятся во всем всем местам. А какие данные использовать (то есть какому юниту отреагировать и записать в себя данные приходящие к нему на входы) определяет рандомная логика контролирующая процесс. Выходы с юнита 04 идут сразу не несколько наборов муксов, андов/норов и на триггера с инверторами. данные по всей видимости 8 бит. По крайней мере по 8 бит они приходят на муксы. на триггера приходят 10 бит, на инверторы 6. На норы идут первые 9 бит, на анды последующие 6 бит. Есть у кого-нибуть идеи что это может быть? =) Ячейки в этот раз сосредоточены в основном в пятом блоке.
Вложения:
STMU_IN_4.jpg [ 519.16 КБ | Просмотров: 15338 ]
part5_1.jpg [ 341.97 КБ | Просмотров: 15338 ]
|
|
22 мар 2014, 22:53 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Цитата: На норы идут первые 9 бит, на анды последующие 6 бит. А все они объединяются нандом, что дает нам детектор 16-битового значения 0хFE00. Так что видимо это RLE.
Вложения:
FE00_detection.jpg [ 37.93 КБ | Просмотров: 15678 ]
|
|
26 мар 2014, 16:51 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Закончил переупорядочивание схем. Разнес все по этапам. Теперь вход данных (юнит 03) и RLE (юнит 04 и 05) разделены. А RLE наоборот объединены в одну схему. Над RLE продолжаются работы. Сделал еще пару проходов по рядам данных (добавились ряды выходов). И развел выходы юнита 05. Данные сверху картинки идут напрямую в IDCT. Теперь осталось заполнить все пространство посередине =) Все ячейки расположены по прежнему в пятом куске нулевой четверти чипа.
Вложения:
part5_2.jpg [ 344.95 КБ | Просмотров: 15647 ]
02_RLE_01.jpg [ 203.88 КБ | Просмотров: 15647 ]
|
|
28 мар 2014, 16:49 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Низ соединился с верхом. Теперь точно видно что выходы юнита 04 идут на входы юнита 05, который в свою очередь идет на IDCT умножение. Внизу данные проходят через линию задержки в виде 2 буферов и двух триггеров. Видимо чтобы остальные чести RLE успели рассчитать что же с данными делать.
Вложения:
02_RLE_02.jpg [ 268.8 КБ | Просмотров: 15616 ]
part5_3.jpg [ 353.35 КБ | Просмотров: 15616 ]
|
|
31 мар 2014, 18:43 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Закончил прямое восхождение линий данных и приступил к различным вычислениям которые делаются в RLE. Они представляют из себя большое количество логических элементов переплетающихся друг с другом.
Вложения:
part05_2014-03-31.jpg [ 361.44 КБ | Просмотров: 15576 ]
02_RLE_2014-03-31.jpg [ 416.51 КБ | Просмотров: 15576 ]
|
|
04 апр 2014, 01:57 |
|
Зарегистрирован: 08 июн 2013, 22:12 Сообщения: 12
|
А открывать код утилиты Regate не планируете?
|
|
04 апр 2014, 15:37 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
да там и нет почти ничего, всё что сделано лежит на SVN) https://code.google.com/p/psxdev/
|
|
05 апр 2014, 16:12 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Целую неделю промучался над вычислениями которые идут в RLE. Этот участок попросту суммирует 2 числа плюс один бит. Но делает это странно. В некоторых случаях сумма не работает. Я перепроверил раз на 100, но все по прежнему: при переносе с 4 на 5 бит и с 8 на 9 бит перенос при бита делается только либо если переносятся непосредственно сами разряды (4 + 4 или 8 + или если все младшие биты заполнены. Во всех остальных случаях перенос не работает. очень странное поведение. Выглядит ошибкой. Впрочем если эта сумма используется только в каких-то специальнх ситуациях эта ошибка может ин е всплыть. Так что двигаюсь дальше.
|
|
09 апр 2014, 13:20 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Загадка предыдущей схемы сложения была решена! Это обычный сымматор двух чисел плюс бит переноса как и предполагалось, но он работает в инверсной логике. То есть нули это единички и наоборот. Поэтому создателям чипа и пришлось городить всю эту рассыпуху а не использовать обычные аддеры. Как бы то ни было я двинулся дальше и дальше раскопалось немного схем управления. Они тесно переплетаются с данными. Работа явно организована в несколько циклов, внизу и вверху можно видеть связки триггеров которые последовательно передают данные друг другу каждый свой такт. Осталось замкнуть все эти схемы и можно будет попытатся что-то засимулировать. надеюсь за пару ближайших недель мне это удастся. Пока все достаточно просто и нового витка сложной логики вроде инвертированного сумматора не предвидится =)
Вложения:
part05_2014-04-09.jpg [ 375.3 КБ | Просмотров: 15458 ]
02_RLE_2014-04-09.jpg [ 582.44 КБ | Просмотров: 15458 ]
|
|
10 апр 2014, 14:23 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
сумматор напоминает 8-bit Kogge-Stone Adder (KSA), только для 11 разрядов. ну или это очередное ноу-хау разработчиков) http://venividiwiki.ee.virginia.edu/med ... urable_PPA
|
|
19 апр 2014, 09:41 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
10 дней и 200 ячеек спустя я таки закончил новый большой вычислительный блок. Он в 3 раза больше предыдущего. Этот блок тоже работает с инверсными значениями. Что он вычисляет пока остается загадкой, скорее всего тоже какую-то сумму. но пока я нашел лишь 2 набора входов: с предыдущего вычисления и с собственного результата. Еще предстоит закончить схему окончательно разобрав все входы и просимулировать ее. Схемар асположена в левой части картинки. Синие квадратики символизируют ячейки в которые разобраны еще не все входы и выходы. Схема настолько большая что залезла ячейками аш в восьмой кусок чипа. Скоро все RLE закончится
|
|
19 апр 2014, 21:50 |
|
Зарегистрирован: 04 янв 2011, 22:07 Сообщения: 29
|
а в чем плюсы использования инверсной логики? ну кроме того, что инверсные сигналы сброса и разрешения более помехоустойчивы?
|
|
20 апр 2014, 12:51 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
Ну уменьшение propagation delay например. В carry chain обычно кросс-инверсная логика через каждый разряд, чтобы уменьшить задержку. Зачем тут - хз. Я бы например решил использовать инверсную логику, если бы во входных значениях преобладали единицы. Тогда если входные шины находятся в precharged состоянии с помощью специальных элементов - bus keeper-ов, то установить новые значения получается быстрее, если шина при этом разряжается на землю (меняет значение с 1 на 0).
|
|
23 апр 2014, 17:30 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Новая схема засимулирована и разгадана. Это вновь инверсная сумма, но в этот раз для 16 разрядов. на вход инверсной суммы приходит новое значение и предыдущая сумма << 2. Как это используется будет понятно позднее, когда я доберусь до управляющей логики.
Вложения:
02_RLE_sum2.jpg [ 256.74 КБ | Просмотров: 19684 ]
|
|
28 апр 2014, 17:46 |
|
Зарегистрирован: 28 ноя 2012, 17:56 Сообщения: 63
|
Закончил основной datapath в RLE. Теперь все данные идут от начала (юнит 04) до конца (юнит 05) Осталось управление и разные контрольные счетчики. Последняя схема делает клемпинг от -0x7FF до +0x7FF (результат 12 битовое знаковое число) и еще одну странную операцию. Низ схемы отвечает собственно за клемпинг, а верхняя делает округление до минимального четного по модулю, кроме -1 - она так и остается -1. 4 = 4 3 = 2 2 = 2 1 = 0 0 = 0 -1 = -1 -2 = -2 -3 = -2 -4 = -4 -5 = -4 Если схема работает в инверсной логике то клемпинг так и остается, а округление делается до ближайшего нечетного по модулю, кроме 0 - он так и остается нулем ) 4 = 3 3 = 3 2 = 1 1 = 1 0 = 0 -1 = -1 -2 = -1 -3 = -3 -4 = -3 -5 = -5 Что это - неясно. У Мартина такого в коде нет. Реверсируемый контроль же начал лезть обратно в 4ый блок. А пятый сейчас выглядит так.
|
|
30 апр 2014, 14:12 |
|
Зарегистрирован: 22 июл 2007, 02:12 Сообщения: 235 Откуда: Беларусь, Гомель
|
Маленькая просьба. Можно прятать картинки под спойлер? Тема интересная, но браузер у меня начинает захлёбываться от кучи одновременно открытых картинок X000xX000.
_________________ Каждому чайнику чайником по чайнику.
|
|
01 май 2014, 11:59 |
|
Зарегистрирован: 24 июл 2007, 06:54 Сообщения: 492 Откуда: Embedded
|
Колючий писал(а): Маленькая просьба. Можно прятать картинки под спойлер? Тема интересная, но браузер у меня начинает захлёбываться от кучи одновременно открытых картинок X000xX000. Сменить браузер не пробовали? У меня на FF все пучком.
_________________ Tried so hard and got so far, but in the end, it doesn't even matter...
|
|
01 май 2014, 16:51 |
|
Зарегистрирован: 22 июл 2007, 22:03 Сообщения: 480
|
Тут дело не в браузере, скорее, а в конфиге ПК.
_________________ Challenge the Legend / Мой сайт - http://www.u-sm.ru 8700K, 16GB, RTX 3070 Ti
|
|
03 май 2014, 02:54 |
|
Зарегистрирован: 04 янв 2011, 22:07 Сообщения: 29
|
на опере мини в телефоне - эта тема просто не грузится)) раньше их сервера для сжатия трафика - ее пропускали, а теперь нет.
|
|
|