Как стать автором
Обновить

Сложные цепи из последовательных звеньев и параллельных шин — согласование цифрового сигнала внутри таких схем

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2K
Всего голосов 5: ↑5 и ↓0+5
Комментарии14

Комментарии 14

Прошу прощения за то, что правлю публикацию уже когда её читают - выходной день такой короткий...самая нижняя часть описания действий в симуляторе правлена. Ну хоть так - сказал где правил. И подпись добавил к изображению превью, сгенерированному в Шедеврум.

А можно как-то изложить суть решаемой проблемы другими словами ? Половина Вашей статьи это дисклеймер, вторая половина - цитата из книги. Под суть отведена всего пара строчек, но мне лично ничего не понятно. Я предполагаю о чем Вы вещаете, но в сомнениях.

Что такое "кэш мостов" ?

Это простой коммутатор шин. (Commutation matrix)

Затраты по энергии - вплоть до 2 транзисторов на линию (экономично).

Применяется много где.

А проблема давно известна - с 80-х из FPGA ушла поддержка tristate (High, Low, High-impendace), и отлаживать подобные коммутаторы стало тяжелее.

Все трансляторы verilog собирают полное логическое уравнение (если коммутируем 3 сигнала, то это A_en&A_val | B_en&B_val | C_en&C_val.

Из-за этого самого высокого сопротивления такие коммутации шин выходили медленными.

Лет 20 назад рассказывал мне участник событий, как у них пустил дым один "шаттл", за ним - и другой и третий... Разбор выявил, что некая внутренняя шина могла переводиться в Z-состояние и не имела фиксаторов уровня. Потенциалы массово достигали половины питания, мощность от сквозных токов превышала все мыслимые пределы и выходил волшебный дым.

Чаще бывает что в шину пишут и 1, и 0. И идет дым ).

кэш мостов, как было сказано в описании - механизм позволяющий процессору обращаться к кэшу команд процессора минуя счётчик команд и дешифратор адресов. Дешифратор адресов потребляет много энергоресурсов, в сравнении с данным решением, и так-же много машинного времени. О чём было не сказано в публикации - о том, что механизм управления кэшем мостов позволит модифицировать код (мне очень хотелось сделать механихм управления кэшем мостов таким, чтобы код можно было модифицировать в рантайме, не прерывая цикла а делая только паузу чтения кэша команд, отмечая выполняемые строки или исключая их их выполнения, таким он мной и был сделан и отлажен), с помощью команд процессора, прямо в рантайме - в любое время можно будет добавить в выполнение или исключить из выполнения команды содержащиеся в кэше команд процессора (разумеется что при этом сами команды так и остаются при этом в кэше команд...в данном режиме без счётчика команд последовательно выполнится только то, что отмечено для выполнения в триггере Bridg). Предполагаемый будущий процессор будет иметь возможность управляемой программно смены режима, в ходе своей работы. Но смена режима - смотря какой процессор делать (а их можно много разных наделать). В общем я описал для чего это - для режима работы без счётчика команд и дешифратора адресов. Разумеется что процессоров таких не было пока, потому что и механизма для обеспечения такого режима работы не было (насколько мне известно)...теперь есть. В приницпе его можно использовать в любом процессоре, но у меня есть интерес продолжить работу над своим.

Спасибо за внимание, и положительные отзывы, надесь не разочаровать читателей и в будущем.

Вы придете к тому, что 10 компиляторов делают свои, скажем циклы, в 3-х вариантах.

1 из этих вариантов не поместится в блок, определяющий циклы. Два других можно будет как-то детектировать.

Итого 20 различных вариаций работы цикла (вложенности 1).

Есть еще как минимум 2 распространенных варианта вложенности (60 вариантов).

Это по циклам. Любые другие цепочки команд, обрабатываемые быстрее в StateMachine - то же самое.

Это без учета прерываний и прочих зависимостей данных.

И все это можно сделать более эффективно (в плане качества и энергопотребления) (трансляция готовых бинарников на свои расширения на тот же RISC).

Не отрицаю. Вообще архитектура с циклами - не цель, как я уже говорил. Достижение - кэш мостов. Кстати - процессор на циклах мной и не планировался как CPU, а только в качестве GPU, ещё на том этапе он был назван мной физическим препроцессором.

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

И если насчёт кэша мостов - можно придумать и множество других способов, сделать это энергоэффективнее чем представлено на настоящий момент,у меня нет времени зацикливаться над этим сейчас.

Гены не сжимаются - единственный вариант всех crc - это параметрическая идентификация белков и сборка таких же из унифицированных элементов (последовательности которых можно верифицировать и исправлять)

Сжимаются типа архивируются,а когда надо распаковываются. Ну или хромосомы, точно не помню. А... ДНК, https://scientificrussia.ru/articles/kletki-upakovyvayut-dnk-v-yadro-dvumya-raznymi-sposobami .

После открытия нуклеиновых кислот в качестве носителя наследственной информации определение гена изменилось, и ген стали определять как участок ДНК 

https://ru.m.wikipedia.org/wiki/Ген

Не знаю какие способы там описаны,я смотрел фильм этому посвященный. Там степень сжатия на уровне фантастики. Очень интересный, но ссылку не найду сейчас - это точно.

По плану качества энергопотребления ,если это касается кэша моста, то ничего не мешает мне разбить его на энергопотребляющие сегменты, экономить транзисторы тоже надо, а так можно сделать и каждое звено таким сегментом, где все пройденные звенья будут отключаться от питания. Просто сегменты экономичнее по транзисторам. И тогда дешифратор адресов, да и счётчик команд тоже, сведут объект вашей защиты к отрицательно эффективному, в сравнении конечно.

Погорячился я сказав что это всё. Надо расширить функционал, используя то что уже есть сделать запуск следования по цепи и остановку в нужном месте с помощью механизма управления кэшем, ну чуть добавив, а так используя имеющееся уже.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации