Железо Процессоры
Типы процессоров:
1. с регистрами общего назначения (РОН);
2. аккумуляторные;
3. стековые.
Процессоры с РОН
Любой регистр как операнд может участвовать в любой команде. Работа с операндами осуществляется только через регистры. Среди всех регистров выделяются два:
SP - указатель стека
PC - счетчик команд
Нет команд push и pop, всегда используется mov:
mov (SP)+,R0 вместо pop R0
mov R0,-(SP) вместо push R0
Вместо непосредственной загрузки константы в регистр (mov #5,R0) используется:
mov (PC)+,R0
db 5
PC может использоваться как универсальный регистр во всем множестве команд ЦП. PC используется и при выборке команды и при ее исполнении.
Конвейеризация сильно затруднена.
Недостаток: большой размер команд, т.к. много операндов, много типов адресации.
Можно уменьшить оперативность инструкций и упростить внутреннюю топологию ЦП.
Процессоры аккумуляторного типа
При любой операции один из операндов всегда находится в аккумуляторе и результат всегда помещается в аккумулятор. Непосредственно обратиться к PC и SP уже нельзя, но этого и не требуется.
Процессоры стекового типа
У них стек регистров. Система команд не позволяет непосредственно адресовать регистры. При выполнении операции из вершины стека снимаются операнды и кладется результат.
Имеется стандартный набор команд:
- ADD
- SUB
- MUL
- DIV
- и т.д.
и еще дополнительные (только они работают с операндами в памяти):
- LOAD – помещение данных из памяти в верх стека
- STORE – перемещение данных с верха стека в память
Параметры ЦП
Разрядность ЦП – разрядность его регистров.
Во время выполнения инструкции состояние процессора не определено, оно становится строго определенным после завершения выполнения текущей инструкции.
В качестве операндов кроме данных в АЛУ поступают и адреса, следовательно, разрядность ЦП прямо определяет размер адресного пространства.
Архитектуры ЦП
Скалярная.
ЦП делится на две секции, каждая из которых независимо тактируется одним тактовым генератором.
Идея: АЛУ не должно простаивать, пока идет выборка команды из памяти.
Выборка инструкции происходит параллельно с работой АЛУ. Для этого используется конвейер.
Суперскалярная.
Несколько АЛУ и каждое занимается своим делом. Добавляется АЛУ для вычисления адресов. Несколько команд могут выполняться одновременно. Возникает проблема, когда команда, стоящая в памяти дальше, выполняется быстрее. Выход – механизм замещения регистров: используются копии регистров для хранения результатов.
Принцип параллельности команд – независимость операндов, т.е. если у команд есть общий операнд – они не параллельны. Если в инструкциях операнды в памяти, то трудно проверить, пересекаются ли они – процессор считает такие команды не параллельными. ............