Изменение, удаление или добавление чего-либо в архитектуру ALU mic-1

Привет, я борюсь с задачей. Кто-нибудь здесь, чтобы помочь мне решить этот вопрос?

Рассмотрим внешний вид Mic-1 и обсудим следующие изменения. Перейти Например, спросите, работает ли микроархитектура в основном и какие изменения происходят на линиях, и какое влияние на микропрограммы или которые возникнут в MIR.

(a) Мы хотим добавить еще один флаг, например флаг переноса.

(b) Мы хотели бы добавить еще один регистр (чтение и запись).

(c) Удаляем регистр TOS.

(d) Мы удаляем регистр MDR.

1 ответ

а) Если вы добавите еще один флаг переноса, у вас будет еще один бит переноса.

В базовой конструкции нет бита/флажка переноса, так что это не добавление еще одного бита переноса, а просто добавление еще одного флага/бита.

Но да, если вы добавите такой флаг, существующий микрокод для существующей микромашины по-прежнему будет функционировать.

Обсуждение

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

В этой архитектуре используется горизонтальный микрокод, поэтому для добавления операции проверки флага переноса необходимо расширить набор микрокоманд с 36 до 37 бит.  JAMNа также JAMZ— это существующие биты для проверки N и Z, и вы должны добавить новый бит для проверки флага переноса таким же образом.

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

Кроме того, вы захотите добавить инструкцию IJVM, которая использует новый JAMCфункция микромашины, чтобы предоставить обычному машинному коду/ассемблерной программе доступ к новой функциональности флага переноса. Такая новая инструкция может либо просто проверять флаг переноса и переход, либо она может предоставлять ADD с переносом для многословной арифметики (или предлагать и то, и другое), и некоторые из них могут также указывать на дальнейшие изменения в микромашине (например, новая операция ALU для ADD с Carry).


б) Это не будет проблемой, потому что результат АЛУ может быть записан и прочитан в несколько регистров одновременно.

Да, простое добавление еще одного регистра не сломает машину.

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

Кроме того, потребуются дополнительные биты в горизонтальном микрокоде (аналогично биту TOS в микроархитектуре, которая позволяет захватывать значение шины C в TOS) — согласно приведенному выше обсуждению, увеличение размера микроинструкции изменит существующую микропрограмму, хотя и с простое исправление (расширить существующую микропрограмму с помощью 0 для этих новых битов).


c) Если вы удалите TOS, вы больше не сможете читать или записывать операции Alu с вершины стека.

Да, предложение микроархитектуры будет нарушено в нескольких местах, и существующая микропрограмма IJVM наверняка сломается.


г) MDR является важным регистром и действует вместе с MAR как быстрый буфер.

Да, без MDR данные не могут быть записаны, прочитаны или записаны между основной памятью и микропрограммой.

Другие вопросы по тегам