March 2nd, 2021

QuatCore

Весеннее обострение - 2

Что ж, обмозговали немного, как нам ускорить АЛУ, пора выполнять! Сначала самое простое и приятное - добавить новые выводы и проводки:


Если сравнивать с прошлой схемой, обнаружим:
- добавились входы SrcStall и SrcDiscard. То, что они отсутствовали на старой схеме, мне сейчас показалось было криминалом, но я так и не смог придумать сценария, когда это привело бы к проблеме, будь то ошибочное срабатывание байпаса или ошибочная задержка на один такт. Всё-таки, когда АЛУ всех останавливает, особенно интересных ситуаций не возникает :) А вот новой схеме, у меня такое чувство, без этих входов не обойтись!
- ушёл модуль EnableBypass, точнее, переехал внутрь ALUoutput, а в ALUcontrol перестала поступать шина SrcAddr - мы как бы разделили "зоны ответственности".
- добавились выходы DestStallReq, Busy и SBusy. Первый будет останавливать процессор, если нам нужен результат работы АЛУ, а оно ещё вкалывает. Два других будут вести в QuatCorePC, для корректной работы условных переходов, завязанных на АЛУ. Busy будет управлять работой JO / JNO, а SBusy (sign busy) - работой JL / JGE. Этот SBusy можно просто соединить с Busy, а можно ещё пожадничать - и выдавать на него единичку лишь на тех командах АЛУ, которые воздействуют на флаг знака.

Модуль ALUoutput мы уже переделали, из QuatCoreALUoutput в QuatCorePipelineALUoutput:

Collapse )

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

А ещё я страшный человек, абсолютно ненадёжный - куда-то посеял справку по 3-й форме, которую мне выдали в 2018 году, а теперь вдруг спохватились - ВЕРНИ ЕЁ НАЗАД! С тех пор я дважды переехал на работе, а ещё уеззжал на самоизоляцию и возвращался из неё, но справку вынь да положь.