?

Log in

No account? Create an account
 

Октябрь, 3, 2018 - No Xians Here

About Октябрь, 3, 2018

ответ на загадку 01:49
Так никто и не разгадал, что за дивайс будет на этой плате, несмотря даже на мои подсказки про отсутствие триггеров и то, что аналогичный блок является одним из самых больших (но не самым; так же ясно, что это не АЛУ) по площади в кристалле ARM1.

Так выглядит barrel shifter. Русскоязычное название - "устройство быстрого сдвига", хотя мне больше нравится "револьверный" или "барабанный сдвигатель" (в том смысле, что его содержимое крутится как патроны в барабане револьвера - сразу всё целиком). Несмотря на некую схожесть с регистром, это всё-таки комбинаторная логика. Реализовать её можно разными способами, я выбрал самый простой (как мне кааца) - решение "в лоб", на куче шинных буферов, включённых как эдакий огромный многоканальный мультиплексор.

Такой блок позволяет одной машинной инструкцией реализовать операции типа (X<<b) или (X>>b) над знаковыми и беззнаковыми 32-битными числами, что весьма полезно и очень часто используется в современных процессорах.

В каждой колонке - четыре восьмиразрядных буфера 74AC541, итого 32-битная шина. Они объединены в пять групп по три колонки в каждой - первая колонка в группе сдвигает вверх, вторая просто пропускает данные без изменений, третья сдвигает вниз. Мелкая логика под массивом буферов отвечает за перенос или обнуление знака (т.е. за арифметический либо логический сдвиг).

В первой группе сдвиг на 1 бит, во второй на 2 бита, в третьей на 4 бита, затем 8 и 16 бит соответственно. Итого, вся эта фиготень получает 32-битное значение, 5-битный индекс, два контрольных бита ("арифметический/логический сдвиг" и "вверх/вниз") и строб переключения выхода последней группы в Z-состояние. Время задержки распространения ожидается чуть больше, чем пятикратная задержка на одном буфере (для чипов серии 74AC будет порядка 25..30 нс, для 74HC всё гораздо печальнее).
Tags:

08:16
FreeRTOS теперь принадлежит Amazon
Top of Page Разработано LiveJournal.com