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

Блок выборки команд имеет собственный регистр адреса ячейки памяти, называемый IMAR и используемый для обращения к памяти, когда нужно вызвать новое слово. У этого регистра есть специальная схема инкремента, поэтому основному АЛУ не требуется прибавлять 1 к значению PC для вызова следующего слова. Блок выборки команд должен контролировать шину С, чтобы каждый раз при загрузке регистра PC новое значение PC также копировалось в IMAR. Поскольку новое значение в регистре PC может быть не на границе слова, блок выборки команд должен вызвать нужное слово и скорректировать значение сдвигового регистра соответствующим образом.

Основной операционный блок записывает значение в PC только в том случае, если необходимо изменить характер последовательности байтов. Это происходит в команде перехода, а также в командах INVOKEVIRTUAL и IRETURN.

Поскольку микропрограмма больше не увеличивает PC явным образом при вызове кода операции, блок выборки команд должен обновлять PC сам. Как это происходит? Блок IFU способен распознать, что байт из потока команд получен, то есть что значения регистров MBR1 и MBR2 (или их вариантов без знака) уже считаны. С регистром PC связана отдельная схема инкремента, которая увели чивает значение на 1 или на 2 в зависимости от того, сколько байтов получено. Таким образом, регистр PC всегда содержит адрес первого еще не полученного байта. В начале каждой команды в регистре MBR находится адрес кода операции этой команды.

Отметим, что существует две разные схемы инкремента, которые выполняют разные функции. Регистр PC считывает байты и увеличивает значение на 1 или на 2. Регистр IMAR считывает слова и увеличивает значение только на 1 (для четырех новых байтов). Как и MAR, регистр IMAR соединен с адресной шиной, при этом бит 0 регистра IMAR связан с адресной линией 2 и т. д. (перекос шины), чтобы осуществлять переход от адреса слова к адресу байта.

Мы скоро увидим, что, если нет необходимости увеличивать значение PC в основном цикле, это дает большой выигрыш, поскольку обычно в микрокоманде, в которой происходит увеличение PC, помимо этого больше ничего не происходит. Если эту команду устранить, длина пути сократится. Однако для увеличения скорости работы машины требуется больше аппаратного обеспечения. Таким образом, мы пришли к третьей возможности сокращения длины пути:

Команды из памяти должны вызываться специализированным функциональным блоком.

Упреждающая выборка команд из памяти — микроархитектура Mic-2

Блок выборки команд может значительно сократить длину пути для средней команды. Во-первых, он полностью устраняет основной цикл, поскольку в конце каждой команды сразу осуществляется переход к следующей. Во-вторых, АЛУ не нужно увеличивать значение PC. В-третьих, блок IFU сокращает длину пути всякий раз, когда вычисляется 16-разрядный индекс или смещение, поскольку объединяет 16-разрядное значение и сразу передает его в АЛУ в виде 32-разрядного значения без необходимости производить объединение в регистре Н. На рис. 4.20 показана микроархитектура Mic-2, представляющая собой усовершенствованную версию Mic-1, к которой добавлен блок выборки команд, изображенный на рис. 4.18. Микропрограмма для усовершенствованной машины приведена в табл. 4.8.


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