Реклама:

Основным компонентом любого компьютера является тракт данных. Он содержит несколько регистров, одну, две или три шины, а также один или несколько функциональных блоков, например АЛУ и схему сдвига. В основном цикле вызываются несколько операндов из регистров и передаются по шинам к АЛУ и другому функциональному блоку на выполнение. После завершения операции результаты вновь сохраняются в регистрах.

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

IJVM - это машина со стековой организацией и с однобайтными кодами операций, которые помещают слова в стек, выталкивают слова из стека и выполняют различные операции над словами из стека (например, складывают их). В данной главе описывается микропрограмма для микроархитектуры Mic-1. Если добавить блок выборки команд для загрузки команд из потока байтов, то можно устранить большое количество обращений к счетчику команд, и тогда скорость работы машины значительно возрастет.

Существует множество подходов к организации уровня микроархитектуры, в том числе 2- или 3-шинная структура, кодированные или декодированные поля микрокоманд, наличие или отсутствие вызова с упреждением, конвейер с большим или небольшим количеством ступеней, и т. д. Mic-1 - это простая машина с программным управлением, последовательным выполнением команд и полным отсутствием параллелизма. Mic-4, напротив, является микроархитектурой с высокой степенью параллелизма и 7-ступенчатым конвейером.

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

Наши три процессора, Pentium 4, UltraSPARC III и 8051, рассматриваемые в качестве примеров, похожи в том плане, что их микроархитектуры неочевидны для программистов, пишущих на языке ассемблера архитектурного уровня. Pentium 4 реализует сложную схему преобразования ISA-команд в микрооперации, их кэширования, передачи суперскалярному RISC-ядру для выполнения вне исходной последовательности, подмены регистров и применения всех остальных описанных в этой книге трюков, позволяющих разогнать оборудование до максимально возможной скорости. Что же касается процессора UltraSPARC III Си, то, если не считать многоступенчатого конвейера, его микроархитектура достаточно проста: запуск и выполнение команд, а также получение их результатов осуществляются без изменения последовательности команд. Процессор 8051 прост до крайности - к одной основной шине подключено несколько регистров и одно АЛУ.

Сравнение процессоров Pentium, UltraSPARC и 8051 || Оглавление || Вопросы и задания4