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

Блок декодирования передает индекс в ПЗУ микроопераций, который он находит в своей таблице, следующему компоненту, блоку формирования очереди. Этот блок содержит логические схемы и две внутренние таблицы одну для ПЗУ и вторую для ОЗУ. В ПЗУ находится микропрограмма, причем каждая IJVM-ko-манда состоит из микроопераций. Эти микрооперации должны располагаться в строгом порядке, и, например, переход из wide_iload2 в iload2, который допустим в микроархитектуре Mic-2, не разрешается. Каждая последовательность микроопераций должна выполняться полностью, в некоторых случаях последовательности дублируются.

Структура микрооперации сходна со структурой микрокоманды (см. рис. 4.4), только в данном случае поля NEXT_ADDRESS и JAM отсутствуют и требуется новое поле для определения входа на шину А. Имеется также два новых бита: бит завершения и бит перехода. Бит завершения устанавливается на последней микрооперации каждой последовательности (чтобы обозначить эту операцию). Бит перехода нужен для указания на микрооперации, которые являются условными микропереходами. По формату они отличаются от обычных микроопераций. Они состоят из битов JAM и индекса в ПЗУ микроопераций. Микрокоманды, которые раньше осуществляли какие-либо действия с трактом данных, а также выполняли условные микропереходы (например, iflt4), теперь нужно разбивать на две микрооперации.

Блок формирования очереди работает следующим образом. Он получает от блока декодирования индекс микрооперации в ПЗУ микроопераций. Затем он отыскивает микрооперацию и копирует ее во внутреннюю очередь. После этого он копирует очередную микрооперацию в ту же очередь, а также микрооперацию, следующую за этой микрооперацией. Так продолжается до тех пор, пока не появится микрооперация с битом завершения. Тогда блок копирует эту последнюю микрооперацию и останавливается. Если блоку не встретилась микрооперация с битом перехода и у него осталось достаточно свободного пространства, он посылает сигнал подтверждения приема блоку декодирования. Когда блок декодирования принимает сигнал подтверждения, он посылает блоку формирования очереди следующую IJVM-команду.

Таким образом, последовательность IJVM-команд в памяти в конечном итоге превращается в последовательность микроопераций в очереди. Эти микрооперации

передаются в регистры MIR, которые посылают сигналы тракту данных. Но есть еще один фактор, который нам нужно учесть: поля каждой микрооперации не действуют одновременно. Поля А и В активны во время первого цикла, поле АЛУ активно во время второго цикла, поле С активно во время третьего цикла, а все операции с памятью происходят в четвертом цикле.

Чтобы все эти операции выполнялись правильно, мы ввели 4 независимых регистра MIR в схему на рис. 4.23. В начале каждого цикла (на рис. 4.2 это время Aw) значение MIR3 копируется в регистр MIR4, значение MIR2 — в регистр MIR3, значение MIR1 — в регистр MIR2, а в MIR1 загружается новая микрооперация из очереди. Затем каждый регистр MIR выдает сигналы управления, но используются только некоторые из них. Поля А и В из регистра MIR1 применяются для выбора регистров, которые запускают защелки А и В, а поле АЛУ в регистре MIR1 не используется и не связано ни с чем на тракте данных.


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