- •I. Методические указания к курсовому проекту по дисциплине “Программно-аппаратные средства вт”
- •1. Цель и задачи курсового проекта.
- •Задание на курсовой проект
- •2.1. Техническое задание на разработку специализированного процессора ввода/вывода
- •2.2. Пояснение технического задания
- •Содержание и объём курсового проекта
- •Порядок выполнения курсового проекта.
- •II. Методические указания к выполнению этапов курсового проекта
- •2.1. Разработка алгоритма решения функциональной задачи
- •2.2. Выбор системы команд
- •2.2.1 Определение минимального набора операций в алу
- •2.2.2. Выбор способа адресации команд
- •3. Разработка структуры спвв
- •4. Оценка эффективности спвв
- •Заключение
- •Алу. Процессор.
- •Аккумуляторная и регистр – регистровая архитектура.
2.2. Выбор системы команд
Выбор системы команд состоит из определения минимального набора операций в АЛУ и выбора формата команды. Для этого необходимо детализировать разработанную блок схему алгоритма до элементарных операций. Определить количество команд, необходимых для реализации технического задания, исходя из этого определить минимальную разрядность поля кода операции. Для определения разрядности адресной части необходимо определить систему адресации. Число адресов в команде задано в техническом задании. В случае одноадресной команды, необходимо выделить регистр-аккумулятор для хранения одного операнда или одного операнда и результата. В случае двухадресной команды определить место нахождения результата по адресу первого или второго операнда. Выбор места хранения результата определяется способом адесации.
2.2.1 Определение минимального набора операций в алу
Из приведенной блок-схемы видно, что в данном частном случае минимальный набор операций в АЛУ должен быть следующим: арифметические операции - сложение, вычитание, умножение, деление, операции специальной арифметики - изменение знака числа, выделение абсолютной величины числа. Некоторые операции с целью сокращения времени их выполнения можно выделить и отнести к списку специальной арифметики. К ним для данного примера относится - умножение на (-1), которое сводится к инвертированию знакового разряда числа или сравнение числа без учета знака с машинным нулем, которое сводится к проверке всех разрядов числа, кроме знакового с 0.
Далее составляется полный список операций, с учетом дополнительных, связанных с ограничениями на кол-во операндов и место нахождения результата.
№ |
операция |
Операнд 1 |
Операнд 2 |
Результат |
Примечание |
1 |
Загрузка из памяти значений X1 |
x |
Адрес в ОЗУ |
x |
|
2 |
Сложение с Х2 |
х |
Адрес в ОЗУ |
х |
|
3 |
Вычитание |
х |
1 |
х |
|
4 |
Загрузка 1 |
I |
1 |
I |
|
5 |
Пересылка |
t |
x |
t |
|
6 |
Изменение знака числа |
t |
- |
t |
|
7 |
Пересылка |
с |
x |
с |
|
8 |
Сложение |
I |
1 |
I |
|
9 |
Умножение |
с |
x |
с |
|
10 |
Пересылка |
ck |
с |
ck |
|
11 |
Деление |
ck |
I |
ck |
|
12 |
Деление |
ck |
I |
ck |
|
13 |
Переход по условию равенства 0 |
ck=0 |
адрес команды |
переход |
При сравнении с 0 знаковый разряд значения не имеет |
14 |
Изменение знака числа |
ck |
|
ck |
|
15 |
Сложение |
t |
ck |
t |
|
16 |
Запись в память |
t |
Адрес в ОЗУ |
|
|
Цветом выделены неповторяющиеся операции, в данном частном случае их получилось 9. В случае одноадресной команды добавляются предварительные пересылки операнда 1 в аккумулятор и при необходимости копирование результата (пересылка из аккумулятора) в другой регистр, но общее количество неповторяющихся операций останется прежним. Таким образом, под код операции необходимо выделить log29=4 бита. И оставшиеся 4 бита можно использовать для адресации к 4 регистрам общего назначения (по 2 бита на определение регистра для каждого операнда), которое могут быть введены в СПВВ. Тогда 4 из используемых переменных (ck, t, I, c, Х) можно хранить в регистрах, а одну в памяти. Из анализа таблицы видно, что реже внутри цикла используется переменная X и t. В данном случае целесообразнее выбрать Х, так как для нее используется только одна выгрузка из памяти (в случае t необходима еще операция по записи значения в память).
На данном этапе необходимо еще раз проанализировать блок-схему алгоритма с целью минимизации аппаратных затрат (регистры, количество элементарных операций в АЛУ). Если сократить кол-во операций в АЛУ невозможно необходимо проанализировать возможность сокращения битов, выделяемых под код операции (то есть использовать коды других операций с редко встречаемыми комбинациями регистров). Например, специальная операция - изменения знака числа использует только 1 операнд, тогда в ней поля адреса второго операнда остаются неиспользованными, таким образом можно использовать либо эти комбинации для других операций, либо саму операцию разместить в кодах другой. Например, операцию вычитания, когда код в адресном поле операнда 1 равен коду в адресном поле операнда 2. Это позволит сократить количество битов определяемых в слове команды под код операции на 1, что позволит использовать высвободившийся бит для увеличения возможных способов адресации.
Далее для каждой команды необходимо выбрать способ адресации указать способ его кодирования.
