Главная ЭВМ и системы » Файлы » Методички » ЭВМ и системы [ Добавить материал ]

Пример синтеза процессора с минимальным набором команд + Задание на семестровую работу

[Скачать с сервера (72.0 Kb) - бесплатно] 12.11.2009, 15:10
Приведён пример разработки структурной схемы процессора, блока АЛУ, блока регистров и устройства управления. Тут же найдёте задания на семестровую  работу по курсу «Организация ЭВМ и систем» по вариантам.





Содержание:


1. Постановка задачи.

2. Определение форматов команд и их кодировка.

3. Разработка структурной схемы процессора.

4. Разработка блока АЛУ.

5. Разработка блока регистров (БР).

6. Разработка устройства управления (УУ).

7. Прочие схемы. Синхронизация процессора.

8. Пример выполнения программы.

9. Оценка производительности и сложности процессора.





Фрагменты из материалов данных методичек:


Постановка задачи:

Синтезировать структуру простого магистрального процессора с одним АЛУ, выполняющего 6 заданных команд (меньше, наверное, просто нельзя :) ). Разработать формат команд, кодировку команд. Разработать структурную схему процессора, функциональные схемы всех блоков процессора, функциональную схему процессора в целом с указанием всех шин и управляющих сигналов. Разработать формат микрокоманд, организацию управления всеми устройствами процессора, микрокод для каждой из заданных команд. Привести примеры выполнения каждой команды с указанием значений всех основных сигналов и содержимого основных регистров на каждом такте. Привести 2 примера небольших программ с указанием значения основных сигналов и содержимого основных регистров на каждом такте.

Определить максимальную тактовую частоту процессора. Определить производительность процессора в операциях в секунду (IPS), а также выраженную в числе выполняемых тестовых программ в секунду. Указать способы повышения производительности процессора.

Характеристика процессора:

простой процессор магистрального типа с одноблочным универсальным АЛУ.
Разрядность регистров РОН и АЛУ процессора – 8 бит.
Число РОН – 4.
Адресуемая память - 256 слов (байт).
Устройство управления – микропрограммное с ПЗУ микропрограмм.
Способ выполнения команд – последовательное выполнение.
Адресация памяти – прямая.
Выполняемые команды : LD – загрузка из памяти;
ST – сохранение в память;
ADD – сложение;
SHR – сдвиг вправо логический (на 1 разряд);
NAND – И-НЕ;
JZ – переход по нулю.
Для простоты предусмотрим только регистровую и прямую адресацию (без косвенной, непосредственной и пр.) и двухадресный формат.
АЛУ реализует 3 операции – SHR (логический сдвиг вправо), ADD, NAND.


4. Разработка блока АЛУ:

Блок арифметико-логического устройства (АЛУ) включает собственно само это устройство. Кроме АЛУ в данном блоке могут присутствовать внутренние программно недоступные регистры операндов и результата, связанные с блоком регистров шинами A, B, C. Для упрощения схемы не будем включать эти регистры в состав процессора. Тогда АЛУ будет только комбинационным.

АЛУ должно включать дешифратор кода операции (КОП АЛУ), устройства для выполнения арифметических и логических операций и быстродействующий сдвигатель. Устройства для выполнения арифметических и логических операций в простейшем случае – это параллельный сумматор и набор элементов И-НЕ, а сдвигатель – просто схема монтажного сдвига. Важно отметить, что часть операций процессора должны влиять на флаг, а часть – нет. Для определения нуля ставим специальную схему ИЛИ-НЕ, а запись в регистр (триггер) флага Z будем производить по cигналу WF, который также будет формироваться в устройстве управления в каждой микрокоманде.

Закодируем операции АЛУ следующим образом :
00 – ADD
01 – NAND
10 – SHR


5. Разработка блока регистров

Блок регистров должен включать набор РОН (в данном случае – 4 регистра R0..R3), служебные регистры (PC, IR), временные регистры (предположим, два – temp0 и temp1), а также – два мультиплексора и один дешифратор. Входы мультиплексоров подключаются ко всем 8 регистрам, а выходы – к соответствующей шине (А или B). Дешифратор используется для выработки сигналов записи в одном из регистров для записи данных с шины С, которая подключается параллельно ко входам всех регистров. Таким образом в нашем случае все коммутаторы являются 8-канальными 8-разрядными. Адресные входы коммутаторов являются управляющими входами БР, они в дальнейшем подсоединяются к соответствующим полям регистров команд (IR), а также к соответствующим полям регистра микрокоманд (MIR) через дополнительные мультиплексоры (их в отличие от прроцессора ARC поместим в устройство управления.

Регистры в БР являются простыми регистрами хранения (наборами триггеров с общими цепями управления и синхронизации). Сдвиг осуществляется с помощью операций АЛУ.


6. Разработка устройства управления УУ
6.1 Описание функционирования УУ

Устройство управления процессора, как уже сказано ранее, является микропрограммным на базе памяти микропрограмм (ПМП), которая может быть организована как ПЗУ. Основной функцией устройства управления процессора является реализация алгоритмов выполнения всех команд процессора. В целом выполнение всех команд проектируемого процессора включает следующие этапы :

- извлечение команды из памяти;
- декодирование команды;
- исполнение команды;
- переход к выполнению следующей команды.

Три из четырех перечисленных этапов (извлечение, декодирование и переход к следующей команде) являются в общем однотипными для всех реализуемых команд (за исключением команды передачи управления JZ – у нее отличается заключительный этап). Различается только содержание этапа исполнения, в ходе которого и реализуется полезная функциональность команды. Для команд LD и ST на этапе исполнения выполняется загрузка еще одного байта (с адресом) во временный регистр.

Необходимо отметить, что каждый из этапов реализуется одной (или несколькими) микрокомандами микропрограммы. Каждая микрокоманда управляет всеми необходимыми устройствами процессора, включая АЛУ, БР, шинный(е) мультиплексор(ы), схему формирования адреса следующей микрокоманды, регистр (триггер) флагов и, кроме того, формирует сигналы для шины управления процессора (в данном случае – это сигналы обращения к памяти MEMR, MEMW).

В целом устройство управления можно охарактеризовать как управляющий автомат с программируемой логикой с естественной адресацией.

Выполнение каждой команды начинается с нулевого адреса ПМП. Микрокоманда по этому адресу выполняет считывание из ОЗУ кода команды по адресу, указанному в PC. Для этого выполняется обращение к памяти, адрес выдается на шину адреса процессора из PC, старший (или единственный) байт команды считывается и поступает в IR (РК), запись в который также управляется этой микрокомандой. Адрес следующей микрокоманды – на единицу больше, чем текущей, то есть она располагается по адресу 00..0001 ПМП. Следующая микрокоманда находится по очередному адресу ПМП 00...0010. Это – микрокоманда декодирования команды процессора. По ней происходит выбор следующего адреса в ПМП как результата перекодировки кода команды в блоке формирования адреса микрокоманды CSAddr.

При этом никакие другие действия в процессоре не происходят, и в следующем такте выполняется переход по адресу ПМП, по которому размещен дальнейший код – это либо одна, либо несколько микрокоманд, реализующих собственно этап выполнения текущей команды. Для одних команд процессора (ADD, NAND, SHR) будет достаточно единственной микрокоманды, которая, выполнит соответствующую операцию в АЛУ и запишет результат в регистр РОН, как указано в команде. Для команды условного перехода происходит условная перезапись PC в зависимости от значения единственного флага процессора значением адреса из самой команды, а для команд обращения к памяти – обращение к памяти по адресу, указанному в следуюшем байте команды. Большинство команд (кроме JZ) завершаются микрокомандой инкремента PC и перехода к обработке следующей команды (на микрокоманду по адресу ПМП 0). Эта заключительная микрокоманда может располагаться в последнем слове ПМП (по адресу 111...111).

Общая структура устройства управления показана на рис. 4.
... ... ...


6.2. Разработка форматов микрокоманд и блока памяти микропрограмм

Рассмотрим формат микрокоманд для проектируемого процессора. Согласно изложенному выше принципу работы устройства управления, микрокоманда должна включать: указание на способ формирования следующего адреса микрокоманды, сигналы управления памятью, сигналы управления АЛУ, сигнал записи регистра флагов, а также – сигналы для управления мультиплексором шины C, номера регистров A, B, C для БР, ну и адрес перехода внутри ПМП.

Вариантов получения следующего адреса микрокоманды в микропрограмме для нашего микропроцессора несколько:

– адрес следующей микрокоманды = адресу текущей + 1 (Next)
– адрес следующей микрокоманды получается в результате декодирования кода команды из РК (только в микрокоманде декодирования Decode).
– передача управления по указанному адресу микропрограммы (JMP).
Последний вариант включает в себя как условную, так и безусловную передачу управления (при JZ и Z или при JMP в микропрограмме).

Эти три варианта соответствуют 3-м устройствам на входе мультиплексора выбора адреса:

– счетчик адреса микрокоманды;
– схема преобразования кода команды в адрес ПМП при декодировании;
– поле адреса переходов в регистре микрокоманды.

Для кода варианта формирования адреса следующей микрокоманды (ACode) в микрокоманде можно использовать т.о. 2 бита :

00 – адрес следующей микрокоманды = адресу текущей + 1 (Next)
01 – адрес следующей микрокоманды получается в результате декодирования кода команды из РК (только в микрокоманде декодирования Decode).
10 – условная передача управления – JZ,
11 – безусловная передача управления – JMP.

В данном случае уловная передача управления по сути необходима только при реализации одной команды – JZ. Безусловная – выполняется при переходе к последней микрокоманде или к 0-му адресу в ПМП.

Для кода операций АЛУ используется 2 бита, которые задают операцию АЛУ в соответствии с п. 4.
Регистры процессора можно закодировать следующим образом (не забываем, что мы поместили их все в один блок регистров, как в процессоре ARC) – все РОН будут иметь внутренний номер, начинающийся с 0, а служебные регистры – номер, начинающийся с 1, при этом для кодировки служебных регистров, как и в кодах команд достаточно использовать 2 бита, например:

00 – temp0,
01 – temp1,
10 – PC,
11 – IR.

Дополнительно для каждой шины A, B, C, как в процессоре ARC, будем указывать один бит, выбирающий источник номера регистров – 0 – из РК, 1 – из РМК.

Длина микрокоманды таким образом – 16 + n бит, где n – разрядность адреса микрокоманды (зависит от общей длины всех микропрограмм для команд процессора).

Код микрокоманды загружается в регистр микрокоманды (РМК – MIR), в результате чего мы получаем необходимые нам сигналы управления АЛУ, БР, мультиплексора C_MEM_MUX, памяти, а также – код для формирования адреса следующей микрокоманды, поступающий в блок формирования адреса ПМП (см. далее)

Что касается самой ПМП, то она организуется как ПЗУ адресного типа с организацией 2D, 2,5D или 3D. В данном случае в силу небольшого объема она может быть организована как память типа 2D. При реализации ПМП в САПР MaxPlus II / Quartus можно воспользоваться библиотечным устройством памяти ПЗУ (ROM).
... ... ...


6.3 Разработка блока формирования адреса следующей микрокоманды

Блок формирования адреса следующей микрокоманды (CSAddr) предназначен в процессоре для формирования адреса в ПМП в соответствии с кодом поля в РМК (MIR) одним из 3 способов : как следующего по порядку адреса, как адреса, получающегося в результате декодирования кода команды из РК (IR) и – как результат выбора следующего по порядку адреса или адреса, указанного в микрокоманде, в зависимости от значения флага Zero процессора. При необходимости получения других условных микрокоманд и использовании адреса перехода ПМП можно предусмотреть модификацию этого способа по аналогии с процессором ARC.

По аналогии с процессором ARC для хранения текущего адреса микрокоманды можно использовать счетчик адреса микрокоманд. Тогда собственно схема формирования адреса будет включать в себя счетчик адреса, схему декодирования кода команды, мультиплексор на 3 канала и схему управления мультиплексором, анализирующую код варианта выбора адреса из РМК и значение флага процессора. Таким образом, у мультиплексора будет 3 канала, например, с такими кодами (ASel):

00 – следующий адрес;
01 – декодирование;
11 – переход по указанному в РМК адресу.

... ... ...

Так как кодировки всех вариантов ACode и ASel выбраны нами произвольно, мы можем их изменить, чтобы упростить полученные логические функции!

Рассмотрим теперь перекодировку из кода команды в адрес ПМП при декодировании команд. Мы уже рассмотрели ранее принцип организации микропрограммы – первые 3 микрокоманды и последняя микрокоманда – стандартные. Половина команд реализуется собственно одной специфичной микрокомандой. По этой причине нам достаточно, чтобы на команды ADD/NAND/SHR приходилось по одной микрокоманде. Команда условной передачи управления – самая длинная, команды обращения к памяти – средние по длине. Таким образом, желательно, чтобы у команды JZ был бы самый большой двоичный код. Кроме того, нужно, чтобы специфичные микрокоманды начинались с адреса 00..011 (3) или с более старшего...


Задание на семестровую работу по курсу «Организация ЭВМ и систем» (2006 г.):

Синтезировать по варианту структуру простого магистрального процессора с одним или двумя АЛУ (возможно наличие отдельного адресного АЛУ), выполняющего от 8-и заданных команд. Разработать форматы команд, кодировку команд. Разработать структурную схему процессора, функциональные схемы всех блоков процессора, функциональную схему процессора в целом с указанием всех шин и управляющих сигналов. Разработать формат микрокоманд, организацию управления всеми устройствами процессора, микрокод для каждой из заданных команд. Привести примеры выполнения каждой команды с указанием значения всех основных сигналов и содержимого основных регистров на каждом такте. Привести 2 примера небольших программ с указанием значения основных сигналов и содержимого основных регистров на каждом такте.

Определить максимальную тактовую частоту процессора. Определить производительность процессора в операциях в секунду (IPS), а также выраженную в числе выполняемых тестовых программ в секунду. Указать способы повышения производительности процессора.

Похожие материалы:

Добавил: COBA (12.11.2009) | Категория: ЭВМ и системы
Просмотров: 9192 | Загрузок: 1460 | Рейтинг: 3.7/3 |
Теги: Задание, семестровая, ЭВМ и системы, процессор
Комментарии (1)
0   Спам
1. COBA   24.11.2009   22:34 [Материал]
Как определять вариант никто не пояснит точно?^^ на примере...

Имя *:
Email *:
Код *: