- •«Санкт-Петербургский государственный электротехнический университет
- •Вариант задания: 2 (Традиционная архитектура)
- •1. Уточнение структуры системы
- •4. Формат команд.
- •5. Методы адресации:
- •6. Модель памяти и организация виртуальной памяти.
- •7. Реализация механизма прерываний.
- •8. Регистровая модель процессора и сопроцессора.
- •9. Команды процессора и сопроцессора
- •10. Временные диаграммы выполнения основных операций на шине.
- •11. Обобщенные алгоритмы функционирования процессора и сопроцессора.
- •Приложение 1. Руководство пользователя
- •Приложение 2. Текст программы
4. Формат команд.
Длина всех команд – 32 бита. Такой подход (команды одинаковой длины) является особенностью RISC-архитектуры и призван упростить аппаратную реализацию процессора. Существует также понятие максимальной адресности команды. В случае это значение равно двум. Это значит, что в команде можно ссылаться не более чем на два регистра, с которыми можно производить те или иные действия. Если для исполнения команды требуется большее их число, то приходится либо вводить дополнительные специализированные регистры, либо использовать регистры с номером, следующим за указанным. Получается следующий формат команды:
Используемые части по битам:
а) ОС (10 разрядов) – код операции, определяет по сути перечень выполняемых процессором действий на очередном этапе работы;
б) F-1 (3 разряда) – номер регистра-приемника, в регистр с этим номером записывается результат выполнения операции, иногда он же является и регистром-источником, если в операции нужны два операнда или происходит запись в память;
в) F-2 (3 разряда) – номер регистра-источника, а также базового регистра при обращении к памяти (даже при записи, когда приемником будет память);
г) CONST (16 разрядов) – поле используется для хранения констант, которые могут понадобится в команде.
Поле OCвсегда должно быть заполнено. А остальные – только если они учитываются в данной команде, в противном случае их значение может быть произвольным. Если в команде нужны два или три регистра, то соответствующие поля будет заполнены, а вот при наличии только одного регистра все зависит от его назначения, если команда его модифицирует, он записывается в первом поле, иначе – во втором. Если происходит обращение к памяти, то используется второе поле и константа. Константы используются по необходимости и в других ситуациях. В любом случае, точную информацию можно будет найти для каждой конкретной команды в списке команд.
5. Методы адресации:
Адресация нужна для того, чтобы указать процессору, где находятся данные, подлежащие обработке. Существует несколько методов адресации, у разных производителей они могут называться по-разному. Но можно выделить следующие четыре способа адресации: непосредственная (Н), относительная (О), прямая (П) и косвенная (К). Реализация механизмов непосредственной адресации для данного варианта, в котором это не предусмотрено заданием, необходима в том случае, когда нужно обеспечить функциональную полноту системы команд. Понятно, что прежде чем использовать регистры при выполнении разных операций, нужно туда что-либо занести. И даже при косвенной адресации (когда содержимое регистра рассматривается как адрес нужного операнда) регистр с адресом должен был предварительно им заполнен. Поэтому непосредственная адресация используется, но только при загрузке регистров. Далее об относительной адресации. Она выполняется относительно счетчика команд PCR(название регистра, смотри ниже), и используется в общем, только в командах условных и безусловных переходов. Для этого нужно как-то задать смещение, для чего применяется поле констант в команде. Прямая адресация в данной работе используется только как регистровая, так как адрес в памяти нельзя "втиснуть" в 32-х разрядную команду, то есть используется как бы адрес регистра – его номер. Косвенная адресация вполне традиционна – содержимое регистра используется как адрес операнда в памяти.
Поскольку адресность команд равна двум, то один регистр будет приемником, другой – источником. Останется поле констант. Его можно прибавлять к регистру – источнику адреса.
Поскольку разрядность регистров равна 64, а шины адреса – 32, то при косвенной (по базе со сдвигом) адресации используется только младшая половина регистра, а старшая никакого влияния на результат оказывать не будет