Pull to refresh

Мгновенное переключение-прыжок на цепи к обозначенным последовательным звеньям

Level of difficultyEasy
Reading time3 min
Views930

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

Далее пропускайте то что в скобках с большим текстом, если вам интересна только текущая публикация и её суть и не более, в противном случае уровень сложности публикации увеличивается.

Запуск и работа схемы осуществляется по следующей инструкции:

В триггеры Bridg записывается единица, если диодом в звене надо мигнуть , затем сигналом, на схеме с кнопки, записываются единицы в триггеры Start, далее (у меня в пошаговом моделировании, программа Logisim) в триггер Run, выдающий проходящий по цепи сигнал активации, записывается единица, в момент когда нам нужно мигнуть следующим диодом в триггере Tact должна присутствовать единица, обязательно переведённая в ноль до момента, когда разрешающий элемент Key снимет блокировку сигнала идущего (не о поступающего, поступающий сигнал, согласно правилам языка и описываемым им понятиям, должен поступать с предыдущего по схеме элемента) от триггера Run. Плюс тут могут быть момент ещё мной не изученные (занимаюсь после работы, времени на изучение всего у меня в день - не много).

Основная идея тут заключается в том, что есть элемент исключающее ИЛИ (метка Key - ключ) заранее находится в разрешающем состоянии для пропускания сигнала последующим элементом И (метка Gate), если в звеньях (каждое звено связано с ячейкой кэша команд, тут светодиод ) хранимое значение в триггерах мостов равно нулю (в случае если команда в кэше команд должна пропуститься - мой процессор предполагаемо сможет работать с модифицируемым кодом - за счёт исключения выполнения игнорируемых команд, пока так модификация планируется быть реализованной) и само звено ещё не обрабатывалось по цепи, А ( "А" выделено намеренно, но к схемотехнике не относится) если единица, то триггер с меткой Start обнулится и ключ из запрещающего состояния вернётся в разрешающее, кроме того, не дожидаясь сигнала для следующего чтения c триггера Tact, звено приведётся в состояние готовности если на него приходит сигнал с триггера Run в левом нижнем углу схемы. И так-же схему постарался сделать так, чтобы любая возможная внутренняя работа каждого звена осуществлялась заранее.

Схема

Изменил схему звена - убрал из звена третий элемент И из группы, он лишний.

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

Манипуляции и процедуры над адресным пространством - дополнение.

от 19.03.2024.

Очевидно, что так или иначе - кэш мостов (надстройка над кэшем команд) даёт некий инструмент, который позволяет работать с ячейками в обход счётчика. Но декодеры-дешифраторы будут. Те-же что и с адресного пространства кэша команд, но вот работать они будут не только для обращения к памяти, но и для операций с кэшем мостов. И да - установил ПО производителя FPGA, но прожде чем работать с ним решил доделать схему ячейки кэша мостов для расширения её функционала. В функционал пожалуй стоит встроить аппаратную инверсию ячеек Bridge. Зачем - для того чтобы аппаратно, в течении выполнения одной команды - асинхронно, не перезаписывать блоки ячеек на каждый случай. Правда это даёт всего два варианта ветвления выполнения алгоритмов - но вообще учитывая что всё работает в этом режиме (без счётчика команд) без дешифрации адресов - можно смело сослаться и на то, что реализуя мгновенную инверсию можно реализовать более сложные ветвления, так-же как и кодирование информации в двоичной логике. Конечно без более медленной процедуры и тяжёлой процедуры принудительной перезаписи состояния мостов (триггеров Bridge) это будет терять смысл, но и ту можно сделать максимально быстрой. Пока что следующим шагом верятно нужно сделать инверсию состояния триггеров Bridge. С одной стороны может показаться что это лишнее, но с другой  - это спорный вопрос. Кэш мостов првращает адресное пространство в набор отрезков, и мгновенное нарашивание таковых или сокращение - не плохо можно применять. Это можно назвать - манипуляцией над адресным пространством в ракурсе кэша мостов. Быть точнее - инвертировать состояние исключающего ИЛИ Gate. А вот перезапись точек начала и окончания отрезков, которыми можно так манипулировать - процедурой. Процедуру, аппаратно, пастараюсь реализовать тоже мгновенной.

Tags:
Hubs:
Total votes 9: ↑5 and ↓4+3
Comments7

Articles