Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

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


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

Для условных переходов нам требуется другая запись. Помните, что JAMN и JAMZ используют биты N и Z соответственно. Например, иногда нужно проверить, не равно ли нулю значение регистра. Для этого можно было бы пропустить это значение через АЛУ, сохранив его после этого в том же регистре. Тогда мы бы написали

TOS = TOS

Запись выглядит забавно, но выполняет необходимые действия (устанавливает триггер Z и записывает значение в регистре TOS). В целях удобочитаемости микропрограммы мы расширили язык MAL, добавив два новых воображаемых регистра, N и Z, которым можно присваивать значения. Например:

Z = TOS

Эта строка пропускает значение регистра TOS через АЛУ, устанавливая триггер Z (и N), но при этом не сохраняет значение ни в одном из регистров. Использование регистра Z или N в качестве целевого показывает микроассемблеру, что нужно установить в 0 все биты поля С (см. рис. 4.4). Тракт данных проходит обычный цикл, выполняются все обычные допустимые операции, но ни один из регистров не записывается. Не важно, какой регистр является целевым, N или Z. Микрокоманды, которые при этом порождает микроассемблер, одинаковы. (Программисты, выбравшие не тот регистр, в наказание будут неделю работать на самом первом компьютере IBM PC с частотой 4,77 МГц.)

Чтобы микроассемблер установил бит J AMZ, нужно написать следующее:

if(Z) goto LI; else goto L2

Поскольку аппаратное обеспечение требует, чтобы 8 младших битов этих адресов совпадали, микроассемблер должен присвоить им такие адреса. С другой стороны, метка L2 может находиться в любом из младших 256 слов управляющей памяти, поэтому микроассемблер без труда найдет подходящую пару.

Часто эти два утверждения сочетаются. Например:

Z = TOS; irCZ) goto LI; else goto L2

В результате такой записи MAL породит микрокоманду, в которой значение регистра TOS пропускается через АЛУ, но при этом нигде не сохраняется, так что это значение устанавливает бит Z. Сразу после загрузки из АЛУ бит Z соединяется со старшим битом регистра MPC через схему ИЛИ, вследствие чего

адрес следующей микрокоманды будет вызван либо по L2, либо по L1. Значение регистра MPC стабилизируется, и он сможет использовать его для вызова следующей микрокоманды.

Наконец, нам нужна специальная запись, чтобы задействовать бит JMPC:

goto (MBR OR value)

Эта запись сообщает микроассемблеру, что нужно использовать значение value для поля NEXT_ADDRESS и установить бит JMPC, так чтобы регистр MBR соединялся через схему ИЛИ с регистром MPC вместе со значением NEXT_ADDRESS. Если значение value равно 0, достаточно написать

goto (MBR)

Отметим, что только 8 младших битов регистра MBR соединяются с регистром MPC (см. рис. 4.5), поэтому вопрос о знаковом расширении тут не возникает. Также отметим, что используется то значение MBR, которое доступно в конце текущего цикла. В момент вызова в текущей микрокоманде выбирать следующую микрокоманду уже поздно.

Реализация IJVM с использованием микроархитектуры Mic-1

Сейчас мы уже дошли до того момента, когда можно соединить все части вместе. В табл. 4.3 приводится микропрограмма, которая работает на микроархитектуре Mic-1 и интерпретирует IJVM. Программа очень короткая — всего 112 микрокоманд. Таблица состоит из трех столбцов. В первом столбце дано символическое обозначение микрокоманды, во втором — сама микрокоманда, в третьем — комментарий. Как мы уже отмечали, последовательность микрокоманд не обязательно соответствует последовательности адресов в управляющей памяти.


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

.