Организация процессоров
Все команды можно разделить на следующие группы:
1. Команды работы с памятью : ld (load - загрузка) и st (store – сохранение).
2. Логические команды : and, or, nor, srl (сдвиг),
sethi rd, imm22 (установка старших 22 бит регистра в заданные значения).
3. Арифметическая команда : add (сложение).
4. Команды управления: ветвления be, bneg, bcs, bvs, ba (безусловный переход), все ветвления в формате be imm22 (относительное смещение),
команда call imm30 – вызов подпрограммы, jmpl (ret) – возврат из подпрограммы.
Регистры процессора: 32 РОН, IR (instruction register - регистр команды), PC (program counter – программный счетчик), PSR (Program Status Register – слово состояния программы - 4 флага). Все регистры – 32- разрядные.
В процессоре поддерживаются следующие режимы адресации: непосредственная, регистровая, косвенная регистровая, косвенная регистровая по базе (индексная).
Адресная арифметика в процессоре реализуется на том же АЛУ, что и основные операции. АЛУ построено на таблицах истинности, а также включает программируемый нетактируемый сдвигатель на базе мультиплексора. АЛУ выполняет до 16 простых коротких арифметических или логических операций, приведенных в таблице … . Форматы команд приведены в таблице … .
Микроархитектура процессора представлена на рис. 3.8. На рисунке использованы следующие обозначения: Data Section – операционное устройство (ОУ); Control Section – устройство управления (УУ); Main Memory – основная память (ОП); Scratchpad-сверхоперативное ОЗУ (32 РОН %r0..%r31, 4 временных регистра %temp0..%temp3, регистры управления ir, pc); C BUS MUX – шинный мультиплексор C для выбора источника данных для регистра-приемника из памяти или с выхода АЛУ; в регистре команд ir: rd – адрес регистра-приемника, rs1, rs2 – адреса регистров источников, i - флаг непосредственной адресации, ops – код операции; MIR – регистр микрокоманды (РМК); мультиплексоры A, B, C – выбирают адрес соответствующего регистра либо из ir, либо – из соответствующего поля РМК в зависимости от флагов MUXA, MUXB, MUXC; Control Store (CS) – память микропрограмм (ПМП); CSAI – счетчик адреса микропрограммы; CS Address MUX – мультиплексор адреса микропрограммы (3 канала – Next – следующий адрес из CSAI, Jump - переход по адресу, указанному в РМК, Decode – переход к микро-подпрограмме реализации команды); CBL – логика управления ветвлением; %psr – регистр состояния программы, хранит 4 флага результата последней операции: n-netgative (отрицательное число), z-zero (ноль), v-overflow (переполнение), с-carry (перенос); ACK – подтверждение о готовности памяти для инкремента адреса микрокоманды; в РМК также отметим поля: RD/WR – чтение/запись памяти, ALU – код операции АЛУ, JUMP ADDR – адрес перехода в микропрограмме.
|