Таненбаум Э.- Архитектура компьютера. стр.196

Отметим, что если все биты JAM равны 0, то адрес следующей команды — это просто 9-разрядный номер в поле NEXTADDRESS. Если бит JAMN или JAMZ равен 1, то существует два потенциально возможных адреса следующей микрокоманды (символы Ох говорят о том, что следующее за ними число дается в ше-стнадцатеричной системе счисления): адрес NEXT_ADDRESS и адрес NEXT_ ADDRESS, соединенный операцией ИЛИ со значением 0x100 (предполагается, что NEXT_ADDRESS < OxFF). Это иллюстрирует рис. 4.6. Текущая микрокоманда с адресом 0x75 содержит поле NEXT_ADDRESS = 0x92, причем бит JAMZ установлен в 1. Следовательно, следующий адрес микрокоманды зависит от значения бита Z, сохраненного при предыдущей операции АЛУ. Если бит Z равен 0, то следующая микрокоманда имеет адрес 0x92. Если бит Z равен 1, то следующая микрокоманда имеет адрес 0x192.

Таненбаум Э.- Архитектура компьютера.

Рис. 4.6. Микрокоманда с битом JAMZ, равным 1, указывает на две потенциальные

последующие микрокоманды

Третий бит в поле JAM — JMPC. Если он установлен, то 8 бит регистра MBR поразрядно связываются операцией ИЛИ с 8 младшими битами поля NEXT_ ADDRESS текущей микрокоманды. Результат отправляется в регистр MPC. На рис. 4.5 меткой «О» обозначена схема, которая выполняет операцию ИЛИ над MBR и NEXT_ADDRESS, если бит JMPC равен 1, и просто отправляет NEXT_ADDRESS в регистр MPC, если бит JMPC равен 0. Если бит JMPC ра вен 1, то младшие 8 бит поля NEXT_ADDRESS равны 0. Старший бит может быть 0 или 1, поэтому значение поля NEXT_ADDRESS обычно 0x000 или 0x100. Почему иногда используется значение 0x000, а иногда — 0x100, мы обсудим позже.

Возможность выполнять операцию ИЛИ над MBR и NEXT_ADDRESS и сохранять результат в регистре MPC позволяет реализовывать межуровневые переходы. Отметим, что биты, находящиеся в регистре MBR, позволяют задать любой адрес из 256 возможных. Регистр MBR содержит код операции, поэтому использование бита JMPC приведет к единственно возможному выбору следующей микрокоманды. Этот метод позволяет осуществлять быстрый переход к функции, соответствующей вызванному коду операции.

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

Во время подцикла 1, который инициируется спадом сигнала, адрес, находящийся в регистре MPC, загружается в регистр MIR. Во время подцикла 2 регистр MIR устанавливает сигналы, и на шину В загружается выбранный регистр. Во время подцикла 3 работают АЛУ и схема сдвига. Во время подцикла 4 стабилизируются значения шины С, шин памяти и АЛУ. На фронте сигнала загружаются регистры из шины С, загружаются триггеры N и Z, а регистры MBR и MDR получают результаты из памяти, начавшей функционировать в конце предыдущего цикла (если эти результаты вообще имеются). Как только регистр MBR получает свое значение, загружается регистр MPC. Это происходит где-то в середине отрезка между фронтом и спадом, но уже после загрузки регистров MBR и MDR. Регистр MPC может загружаться либо уровнем (но не фронтом) сигнала, либо через фиксированный отрезок времени после фронта. Все это означает, что регистр MPC не получает своего значения до тех пор, пока не будут готовы регистры MBR, N и Z, от которых он зависит. На спаде сигнала, когда начинается новый цикл, регистр MPC может обращаться к памяти.


⇐ Предыдущая страница| |Следующая страница ⇒