Проектирование процессора

Разработка структурной схемы вычислительного устройства, выбор системы команд и определение форматов. Разработка алгоритма командного цикла, выполнения арифметических и логических операций. Проектирование операционного автомата, устройств управления.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 15.05.2014
Размер файла 2,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Введение

В настоящее время существуют две тенденции в проектировании средств вычислительной техники: во-первых, разработка устройств специализированных ЭВМ на основе микропроцессорных средств, во-вторых, реализация ЭВМ с использованием СБИС программируемых логических матриц, матриц программируемых логических элементов, программируемых логических интегральных схем (ПЛИС) и базовых матричных кристаллов. Построение ЭВМ на СБИС связано не только с комплексированием микропроцессорных средств в систему, что отражает первую тенденцию проектирования, но и с применением современных методов логического синтеза арифметико-логических и управляющих устройств, размещаемых на СБИС, а также методов оценки результатов проектирования. В связи с этим подготовка инженеров - системотехников по специальности ЭВМ включает вопросы изучения методики системотехнического и логического проектирования ЭВМ и самостоятельную разработку устройств машины в рамках дисциплины «Организация ЭВМ, комплексов и систем».

1. Цель курсового проектирования

Целью курсового проектирования является освоение методики проектирования и разработки операционных и управляющих устройств ЭВМ, а также подготовки технической документации на эти устройства.

2. Задание на курсовое проектирование

вычислительный алгоритм логический операционный

Таблица 1 - Задание на курсовое проектирование

Характеристика команд

АЛУ

ЗУ

УУ

Характеристика данных

Адресность

Формат

Способ адресации

Разрядность

Разрядность

Емкость

Тип УА

Разрядность

2

AR, AS

П К О

32

16

16

ПЛИС

8

Список операций, выполняемых устройством, должен быть следующим:
арифметические операции:
сложение;
вычитание;
умножение;
деление;
логические операции:
дизъюнкция;
конъюнкция;
сложение по модулю два;
условный переход по значению >0;
условный переход по значению <0;
условный переход по значению =0;
условный переход по переполнению;
безусловный переход;
вызов подпрограммы;
возврат из подпрограммы;
операции с запоминающим устройством:
запись в запоминающее устройство;
чтение из запоминающего устройства;
операции со стеком:
запись;
чтение;
сложение со стеком;
вычитание из стека;
операции с внешними устройствами:
запись во внешнее устройство;
чтение из внешнего устройства;
системные операции:
останов;
разрешение прерывания;
запрещение прерывания;
возврат из прерывания;
загрузка регистра базы;
загрузка указателя стека.

3. Разработка структурной схемы вычислительного устройства

В курсовом проекте необходимо разработать процессор и организацию его взаимодействия с запоминающими и внешними устройствами. Структурная схема вычислительного устройства представлена на рисунке 1.

Рисунок 1 - Структурная схема вычислительного устройства

ОЗУ - оперативно запоминающее устройство;

Pг - блок регистров и логических схем;

АЛУ - арифметико-логическое устройство;

УУ - устройство управления;

БС - блок согласования разрядности шин;

ША - шина адреса;

ШД - шина данных;

ШУ - шина управления;

ШС - шина состояния;

ВУ - внешнее устройство.

4. Выбор системы команд и определение форматов команд вычислительного устройства

Определим разрядности основных шин и блоков, регистров, а так же разрядности команд и данных и количество регистров, обеспечивающих выполнение заданного набора операций.

Разрядность шины данных (ШД) определяется из варианта задания. В нашем случае разрядность ШД равна 8, т.е. ШД (7-0). Для определения разрядности шины адреса (ША) используем заданные в таблице 1 параметры запоминающего устройства: разрядность слова и емкость. Определим количество ячеек памяти: , для того, чтоб адресовать все ячейки ОЗУ необходима разрядность ША равная 10, т.к. 210 =1024. Получаем ША (9-0).

Чтобы найти разрядность шины управления (ШУ) надо определить формат команд. Для кодирования операций нам понадобится поле кода операций (КОП). Так как количество операций, которые необходимо реализовать в разрабатываемом устройстве 28, нам понадобиться 5 двоичных разрядов для двоичного кодирования.

После выбора количества разрядов КОП необходимо закодировать все операции системы команд представленные в таблице 2.

Таблица 2 - Кодирование команд

№ п/п

Код операции

Тип операции

Мнемоника операции

1

00000

Сложение

add

2

00001

Вычитание

sub

3

00010

Умножение

mul

4

00011

Деление

div

5

00100

ИЛИ

or

6

00101

И

and

7

00110

ИСКЛЮЧАЮЩЕЕ ИЛИ

xor

8

00111

Условный переход, если >0

jns

9

01000

Условный переход, если <0

js

10

01001

Условный переход, если =0

jz

11

01010

Условный переход по переполнению

jo

12

01011

Безусловный переход

jmp

13

01100

Переход к подпрограмме

call

14

01101

Выход из подпрограммы

ret

15

01110

Запись в ЗУ

stm

16

01111

Чтение из ЗУ

ldm

17

10000

Запись в стек

push

18

10001

Чтение из стека

pop

19

10010

Сложение со стеком

sadd

20

10011

Вычитание из стека

ssub

21

10100

Запись в ВУ

out

22

10101

Чтение из ВУ

in

23

10110

Останов

stop

25

10111

Разрешение прерывания

sif

26

11000

Запрещение прерывания

rif

27

11001

Возврат из прерывания

iret

28

11010

Загрузка регистра базы

ldb

29

11011

Загрузка указателя стека

ldsp

В задании дано два формата команды, чтоб их закодировать достаточно одного бита: ФК AR = 0, ФК AS = 1.

Для того чтобы закодировать содержимое поля тип адресации (ТА), необходимо два разряда, так как задано три типа адресации. Для прямой адресации (П) код ТА = 00, для косвенной (К) - ТА = 01 и для относительной (О) - ТА = 10.

Для того, чтобы определить формат AR необходимо выбрать разрядность поля R. Для выбора разрядности поля R сначала необходимо выбрать число регистров общего назначения (РОН). Пусть число РОН будет 8, тогда для кодирования номеров регистров достаточно 3 бит.

Получаем следующий формат команды для AR:

Рисунок 3 - формат команды AR

Для удобства организации выборки команды из памяти, анализа команды и определения разрядности шины управления (ШУ) дополним разрядность команды этого формата так же до 32 разрядов.

Для команды формата AS получаем:

Рисунок 2 - формат команды AS

Первым операндом данной команды является аккумулятор, так как его местоположение определяется однозначно, в команде он явно не указывается. Вторым операндом для этой команды является поле адреса ячейки оперативной памяти S разрядности 10, равную разрядности ША. Так как разрядность команды должна быть кратна степени двойки, дополним ее до 32 разрядов. Получаем разрядность формата команды (31-0).

Разрядность ШУ равна разрядности формата команды, т.е. получаем ШУ (31-0)

Составим содержательную таблицу 3 кодирования всех вариантов форматов команд

Таблица 3 - Кодирование форматов команд

Код операции

Формат команды

Тип адресации (ТА)

Код ТА

Содержание операции

Арифметические

add

00000

АR

П

00

A:=А+РОН[R]

К

01

А:=А+OP [РОН[R]]

О

10

А=А+OP [B+РОН[R]]

AS

П

00

A:= A +OP[S]

К

01

A:= A +OP [OP[S]]

О

10

A:= A +OP [B+S]

sub

00001

АR

П

00

А:=А - РОН[R]

К

01

А:=А - OP [РОН[R]]

О

10

А:=А-OP [B+РОН[R]]

AS

П

00

A:= A - OP[S]

К

01

A:= A - OP [OP[S]]

О

10

A:= A - OP [B+S]

mul

00010

AR

П

00

A:=A*РОН[R]

К

01

A:=A*OP [РОН[R]]

О

10

A:=A*OP [B+РОН[R]]

AS

П

00

A:= A *OP[S]

К

01

A:= A *OP [OP[S]]

О

10

A:= A *OP [B+S]

div

00011

AR

П

00

A:=A/РОН[R]

К

01

A:=A/OP [РОН[R]]

О

10

A:=A/OP [B+РОН[R]]

AS

П

00

A:= A /OP[S]

К

01

A:= A /OP [OP[S]]

О

10

A:= A /OP [B+S]

5. Разработка алгоритма командного цикла вычислительного устройства

Действия, требуемые для выборки или извлечения из основной памяти и выполнения команды, называются циклом команды. В общем случае цикл команды включает в себя несколько этапов:

- выборку команды;

- формирование адреса следующей команды;

- декодирование команды;

- вычисление адресов операндов;

- выборку операндов;

- исполнение операции;

- запись результата.

На основе содержательной таблицы 3 команд проектируем блок - схему обобщенного алгоритма командного цикла представленную на рисунке 4.

Рисунок 4 - Блок-схема обобщенного алгоритма командного цикла

5.1 Алгоритм выборки команды

Алгоритм выборки команды, показанный на рисунке приложения 1.1 функционирует следующим образом. Вначале происходит обнуление регистра i. В данной операции он будет выполнять роль счётчика 8-битовых групп для регистра команды RgI и изменяться от 0 до 4. После этого на шину адреса (ША) выставляется значение программного счётчика (PC). Затем на шину данных выбираются очередные 8 бит команды (находящейся в ОЗУ), адресуемые содержимым шины адреса. Эти 8 бит копируются с шины данных в регистр RgI, начиная с младших разрядов. Далее производится переход к следующей 8-битовой группе и увеличивается на единицу содержимое программного счётчика. Выборка команды заканчивается, когда все четыре 8-битовые группы пройдены, т.е. i=4.

5.2 Алгоритм перехода к подпрограмме прерывания

Команда перехода к подпрограмме прерывания выполняется в следующем порядке (рисунок приложения 2.1). Команда выполняется, если установлен флаг IF и в регистре прерываний RgZ присутствует номер прерывания. Первоначально необходимо сохранить в стеке содержимое программного счётчика. Для этого следует уменьшить на 1 содержимое SP, выставить его на шину адреса, значения с ША копировать в РгA, выставить на шину данных содержимое SP, копировать данные с ШД в РгД. Записать значение в стек. Так как разрядность ШД 8 бит, а SP 10, копирование SP в регистр данных происходит в 2 этапа, сначала младшие 8 бит, затем старшие 2.

После этого необходимо передать управление по адресу обработчика требуемого прерывания. Для этого на шину адреса следует выставить номер прерывания из RgZ, сохраняем значение в РгА. В РгД выбрать адрес обработчика, лежащий в ячейке ОЗУ, определяемой номером прерывания, копировать данные в стек и перейти к обработчику прерывания.

После этого следует сохранить в стеке содержимое регистра флагов RgF. Это действие производится аналогично сохранению в стеке содержимого программного счётчика, только вместо него на шину данных выставляется содержимое RgF.В конце алгоритма необходимо сбросить флаг прерывания IF.

5.3 Алгоритм формирования операндов для арифметико-логического устройства

Формирование операндов в данном алгоритме происходит следующим образом (рисунок приложения 3.1). Так как у нас в обоих типах команд первый операнд хранится в аккумуляторе, то сначала перепишем его значение в регистр PA. Затем определяем тип формата команды. Если тип «аккумулятор - ячейка оперативной памяти», то одним операндом всегда будет поле ячейки памяти S. Далее определяем тип адресации этого операнда. Если адресация прямая адрес ячейки ОЗУ берётся из кода команды и выставляется на шину адреса. При косвенной адресации из кода команды на шину адреса выставляется адрес, по которому из ОЗУ выбирается ячейка и начинается считывание из нее нужного адреса. Этот адрес передаем на регистр данных(РгД) и потом в RgBuf. И передаем их в регистр адреса (РгА). Из регистра адреса адрес передается на шину адреса. При относительной адресации на шину адреса выставляется сумма значений адресов из кода команды и регистра базы B. Затем производится выборка 16-ти бит из ОЗУ.

Данные, выбранные из ОЗУ, будут являться вторым операндом. Их копируем в регистр РВ.

Для типа команды «аккумулятор - регистр» сначала из кода команды выбираем номер регистра, в котором хранится адрес операнда. Этот номер выставляем на ША, далее на ШД записываем адрес, хранящийся в этом регистре. Оттуда отправляем его в РгД, затем в RgBuff и, наконец, в регистр адреса. Определяем тип адресации. При косвенной адресации из ОЗУ по адресу хранимому на ША считываем адрес ячейки памяти, в которой хранится операнд. Адрес с регистра данных передаем через буферный регистр в регистр адреса. При относительной адресации в регистр адреса выставляется сумма значений адресов из регистра адреса и регистра базы B. Затем производится выборка 16-ти бит из ОЗУ. Эти данные будут являться вторым операндом. Их копируем в регистр РВ.

В результате, у нас в регистрах РА и РВ находятся нужные нам операнды. Так как по заданию адресность равна 2, данные на обработку из этих регистров в АЛУ поступают одновременно. Далее выполняем над ними в АЛУ требуемую операцию, и результат записываем в аккумулятор А.

5.4 Алгоритм выполнения команд передачи управления

Алгоритмы операций перехода выполняются в зависимости от состояния соответствующих флагов (рисунки приложения 4.1 - 4.5) Управление на новый адрес передается путем загрузки программного счетчика значением из регистра аккумулятора А.

5.5 Алгоритм вызова подпрограммы

Алгоритм вызова подпрограммы, представленный на рисунке приложения 5.1 реализуется так. Сначала необходимо сохранить в стеке содержимое программного счётчика. После этого управление передается на новый адрес, который берется из регистра аккумулятора А.

5.6 Алгоритм возврата из подпрограммы

Для возврата из подпрограммы (рисунок приложения 6.1) необходимо извлечь из стека сохраненное значение программного счетчика РС. Сначала устанавливаем на шину адреса значение указателя стека SP, по полученному адресу считываем 10 бит из ОЗУ в РгД. Копируем в РС эти биты, увеличиваем значение SP еще на 1. Таким образом устанавливаем сохраненное значение программного счетчика.

5.7 Алгоритмы операций со стеком

При выполнении команды записи в стек (рисунок приложения 7.1) сначала сдвигается указатель стека на 1 в сторону младших адресов, освободив место под 16 бита данных.

Для формата AR выставляется на шину данных значение из регистра, адрес которого хранится в регистре команды. Для формата AS на шину адреса выставляется значение поля S из регистра команд RgI. По этому адресу происходит выборка из памяти 16 ти битов через шину данных в РгД. Начиная с адреса, определяемого SP, записываем данные с РгД в память.

При выполнении операции чтения из стека (рисунок приложения 7.2) вначале следует прочитать 16 битов через шину данных в РгД из ОЗУ, начиная с адреса, определяемого SP. Для формата AR данные с ШД заносятся в регистр, адрес которого указан в команде. Для формата АS на шину адреса выставляется значение поля S из регистра команд RgI. По этому адресу значение с РгД заносится в память. Затем сдвигается указатель стека на 1 в сторону старших адресов для освобождения мест, занимаемых ранее, прочитанными 16-ю битами данных.

При выполнении команд сложения и вычитания со стеком (рисунок приложения 7.3) для формата AR на шину данных копируется содержимое регистра, номер которого записан в регистре команды. Для формата AS на шину адреса выставляется значение поля S из регистра команд RgI. По этому адресу происходит выборка из памяти 16х битов через шину данных в РгД. Затем данные с РгД заносятся в регистр РВ. После этого необходимо прочитать 16 битов на шину данных из ОЗУ, начиная с адреса, определяемого SP. Полученные данные с ШД заносятся в регистр РА. После этого, в зависимости от кода операции, производится сложение либо вычитание операндов в АЛУ; результат операции выгружается на шину данных из аккумулятора А, затем записывается с шины данных в ОЗУ, начиная с адреса, определяемого SP.

5.8 Алгоритмы выполнения операций с ВУ

Команда записи в ВУ (рисунок приложения 8.1) выполняется следующим образом. Для формата АR выставляется на шину данных содержимое регистра, номер которого указан в команде. Для формата AS на шину адреса выставляется значение поля S из регистра команд RgI. По этому адресу происходит выборка из памяти 16 ти битов на шину данных. Содержимое шины данных записывается в регистр внешнего устройства RgED.

При чтении из ВУ (рисунок приложения 8.2) выполняются следующие действия. С регистра внешнего устройства RgED данные выставляются на ШД. Для формата АR с шины данных информация записывается в регистр, номер которого указан в команде, для формата АS на шину адреса выставляется значение поля S из регистра команд RgI, начиная с этого адреса данные с ШД записываются в ОЗУ.

5.9 Алгоритмы системных операций

По командам запрещения и разрешения прерываний выполняется сброс или установка флага IF соответственно (рисунок приложения 9.1, 9.2).

По команде останова сбрасывается флаг WF регистра флагов RgF (рисунок приложения 9.3).

По команде выхода из прерывания (рисунок приложения 9.4) сначала необходимо извлечь из стека по адресу в SP сохраненное значение регистра флагов RgF. Затем увеличить значение SP на 1 и извлечь из стека сохраненное значение программного счетчика РС, которое храниться в двух соседних ячейках памяти. Далее, устанавливаем требуемое значение флага IF в РС копируем сформированный на ШД адрес.

Команда загрузка регистра базы (рисунок приложения 9.5) происходит в таком порядке. Для формата AR выставляется на шину данных содержимое регистра, номер которого указан в команде. Считать в регистр базы B значение 10 бит, начиная с младших с ШД. Для формата АS на шину адреса выставляется значение поля S из регистра команд RgI. Из ячейки памяти с этим адресов выставляем данные на ШД.

Команда загрузка регистра указателя стека происходит аналогично загрузки регистра базы. (рисунок приложения 9.6). Для формата AR выставляется на шину данных содержимое регистра, номер которого указан в команде. Считать в SP значение 10 бит, начиная с младших с ШД. Для формата АS на шину адреса выставляется значение поля S из регистра команд RgI. Из ячейки памяти с этим адресов выставляем данные на ШД. полученные биты мы заносим в регистр SP.

5.10 Алгоритм выполнения операции записи в ОЗУ

Выполнение записи в ЗУ происходит по алгоритму, показанному на рисунке приложения 10.1. Вначале определяем тип формата команды, если AS, то одним операндом будет поле ячейки памяти S, далее определим тип адресации этого операнда. Если адресация прямая адрес ячейки ОЗУ берётся из кода команды и выставляется на шину адреса. При косвенной адресации из кода команды на шину адреса выставляется адрес, по которому из ОЗУ выбирается ячейка памяти, и данные из этой ячейки считываются на ШД. Далее аналогичным образом копируем их в буферный регистр RgBuf. И от туда пересылаем в РгА. При относительной адресации на шину адреса выставляется сумма значений адресов из кода команды и регистра базы RB.

Для формата команды AR сначала из кода команды номер регистра, в котором хранится адрес операнда. Этот номер выставляем на ША, далее на ШД записываем адрес, хранящийся в этом регистре. Оттуда отправляем его в РгД, затем в RgBuff и, наконец, в регистр адреса. Определяем тип адресации. При косвенной адресации из ОЗУ по адресу хранимому на ША считываем адрес ячейки памяти, в которой хранится операнд. Адрес с шины даных передаем через буферный регистр в регистр адреса в два этапа. При относительной адресации в регистр адреса выставляется сумма значений адресов из регистра адреса и регистра базы B.

Далее мы выставляем на шину данных значение аккумулятора А. Начиная с адреса, выставленного на ША, копируем данные с ШД в память.

5.11 Алгоритм выполнения операции чтения из ОЗУ

Выполнение операции чтения из ЗУ происходит по алгоритму, показанному на рисунке приложения 10.2. Вначале определяем тип формата команды, если AS, то одним операндом будет поле ячейки памяти S, далее определим тип адресации этого операнда. Если адресация прямая адрес ячейки ОЗУ берётся из кода команды и выставляется на шину адреса. При косвенной адресации из кода команды на шину адреса выставляется адрес, по которому из ОЗУ выбирается ячейка памяти, и данные из этой ячейки считываются на ШД. Далее копируем их в буферный регистр RgBuf. И от туда пересылаем в РгА. При относительной адресации на шину адреса выставляется сумма значений адресов из кода команды и регистра базы RB.

Для формата команды AR сначала из кода команды номер регистра, в котором хранится адрес операнда. Этот номер выставляем на ША, далее на ШД записываем адрес, хранящийся в этом регистре. Оттуда отправляем его в РгД, затем в RgBuff и, наконец, в регистр адреса. Определяем тип адресации. При косвенной адресации из ОЗУ по адресу хранимому на ША считываем адрес ячейки памяти, в которой хранится операнд. Адрес с шины даных передаем через буферный регистр в регистр адреса. При относительной адресации в регистр адреса выставляется сумма значений адресов из регистра адреса и регистра базы B.

Далее, считываем на ШД данные из ОЗУ, начиная с выставленного на ША адреса. С шины данных информацию сохраняем в аккумуляторе А.

6. Разработка алгоритмов выполнения арифметических и логических операций

Арифметико-логическое устройство должно реализовать выполнение алгоритмов следующих операций:

· сложение;

· вычитание;

· умножение;

· деление;

· конъюнкция;

· дизъюнкция;

· сложение по модулю 2.

Входные операнды в АЛУ размещаются в 32-разрядных регистров PA, PB, РD, РE. Результат операции помещается в аккумулятор А.

В АЛУ формируются флаги, соответствующие переполнению разрядной сетки (флаг OF), признаку знакового результата (SF), признаку нулевого результата (ZF). Числа представляются в прямом коде. Отрицательные числа представляются в дополнительном коде.

Заданная в варианте адресность 2 означает, что мы должны в АЛУ передавать два операнда одновременно, это упрощает процесс и организацию передачи операндов в АЛУ, т.е. позволяет считывать данные сразу с двух регистров.

6.1 Алгоритм выполнения операций сложения и вычитания

Операции сложения и вычитания в алгоритме (рисунок приложения 11.1) выполняются одинаково. Отличие состоит в том, что при вычитании операнд, хранящийся в регистре РВ, преобразуется в дополнительный код. Затем происходит сложение содержимого регистров РА и РВ с помещением результата в A.

Если после выполнения операции получился отрицательный результат, нужно преобразовать его, проинвертировав и прибавив единицу. Флаг переполнения равен сумме по модулю 2 знакового и предшествующего ему разрядов результата. Флаг знака - знаковый разряд результата. Флаг нуля - признак равенства результата нулю.

6.2 Алгоритм выполнения логических операций

Операции конъюнкции, дизъюнкции и «исключающее или» (рисунок приложения 12.1) над операндами РА и РВ выполняются соответствующими комбинационными схемами АЛУ.

6.3 Алгоритм выполнения операции умножения

Операция умножения реализуется путем умножения старшими разрядами множителя со сдвигом суммы частичных произведений влево. Множимое находится в регистрах РА, множитель - в РВ

При умножении (рисунок приложения 13.1) проход по разрядам множителя будет осуществляться, начиная со старшего разряда его модуля, т.е. с 6-го разряда регистра.

Если i-й разряд множителя равен единице, то к сумме частичных произведений, хранящихся в А, прибавляется модуль множимого, хранящегося в РА. Содержимое A суммируется с разрядами множимого без знакового разряда.

После суммирования производится сдвиг суммы частичных произведений влево. Если все разряды В пройдены, то это значит, что сумма частичных произведений полностью сформирована. Её знак определяется как сумма по модулю 2 знаковых разрядов множимого и множителя. Установка флагов производится как в алгоритме сложения / вычитания, но с учётом расположения результата.

6.4 Алгоритм выполнения операции деления

Деление производится с восстановлением остатка. Делимое находится в регистрах РА, делитель - в РВ, модуль делителя со знаком «-» - в PD. В процессе выполнения деления остаток находится в PE, а результат формируется в A.

При выполнении операции деления (рисунок приложения 14.1) вначале нужно поместить модуль делителя со знаком «-» в РD. Для этого необходимо скопировать делитель, инвертировать знак и перевести в дополнительный код. Теперь необходимо сформировать остаток (РE) как разность модулей делимого и делителя. Если остаток оказался положительным, то деление невозможно, т.к. делимое больше делителя. В этом случае алгоритм будет завершён с установкой флага OF.

Если же остаток отрицательный, то к нему прибавляется модуль делителя. Затем происходит сдвиг остатка на один разряд влево. Из остатка вновь вычитается модуль делителя. Далее проверяется, пройдены ли все разряды результата.

Затем следует установка i-го бита результата инвертированным знаком остатка. Если остаток отрицательный, то производится переход к суммированию с модулем делителя, иначе - к сдвигу влево.

После определения всех разрядов результата производится установка знакового разряда как суммы по модулю 2 знаковых разрядов делимого и делителя.

7. Проектирование операционного автомата устройства выполнения команд

Совокупность недетализованных основных блоков процессора, детально проработанных регистров и счетчиков, а также коммуникаций между ними является операционным автоматом процессора (иногда называемым устройством или автоматом выполнения команд). Входными сигналами операционного автомата процессора являются выходные (управляющие) сигналы У = {у1, у2, …, у3} ведущего УУ процессора (УУ верхнего уровня), а выходными сигналами - входные сигналы (логические условия) Х = {х1, х2, …, х3} ведущего УУ процессора. Операционный автомат может быть разработан на основании алгоритма командного цикла.

Построим обобщенный алгоритм командного цикла (схема схеме КП 230101.010.017.081.004 ТЧ). Осуществим разметку этого алгоритма. Список микроопераций и логических условий для алгоритма выполнения команд УУ верхнего уровня представлен в приложении 15.

На основании множества присваиваний алгоритма командного цикла и его разметки можно разработать функциональную схему операционного автомата процессора (представлена в приложении 16).

8. Проектирование операционного автомата арифметико-логического устройства

После проектирования отдельных алгоритмов арифметических и логических операций составим обобщенный алгоритма АЛУ (схема схеме КП 230101.010.017.081.004 ТЧ). Он составляется путем объединения частных алгоритмов выполнения отдельных арифметических и логических операций. На основании обобщенного алгоритма АЛУ составим список микроопераций МПА устройства управления нижнего уровня. Обозначим множество его входных сигналов (логических условий) через Х = {х1, х2, …, х3}, а множество его выходных (управляющих) сигналов - через У = {у1, у2, …, у3}. Список микроопераций и логических условий УУ нижнего уровня представлен в приложении 17.

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

9. Проектирование устройств управления процессора и АЛУ двухступенчатой организации процесса управления

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

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

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

Рисунок 5 - Двухступенчатая структура процесса управления

9.1 Проектирование управляющего автомата устройства управления процессора

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

Для разработки автомата будем использовать список микрокоманд и логических условий из таблицы приложения 15. Закодируем все логические условия и микрооперации двоичным кодом. Для этого разобьем множество микроопераций на 7 непересекающихся подмножеств. Получим:

Y1 = {y0, y7, y14, y21, y28, y35, y42, y49, y56, y63, y70}

Y2 = {y1, y8, y15, y22, y29, y36, y43, y50, y57, y64, y71}

Y3 = {y2, y9, y16, y23, y30, y37, y44, y51, y58, y65, y72}

Y4 = {y3, y10, y17, y24, y31, y38, y45, y52, y59, y66, y73}

Y5 = {y4, y11, y18, y25, y32, y39, y46, y53, y60, y67, y74}

Y6 = {y5, y12, y19, y26, y33, y40, y47, y54, y61, y68}

Y7 = {y6, y13, y20, y27, y34, y41, y48, y55, y62, y69}

Множество логических условий содержит 32 элементов

X = {x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32}

Для кодирования микроопераций в каждом из подмножеств необходимо использовать по четыре бита. Соответствующие таблицы кодирования микроопераций и логических условий приведены в таблицах 4 и 5

Таблица 4 - Кодирование микроопераций

Код микрооперации

Подмножества микроопераций

Y1

Y2

Y3

Y4

Y5

Y6

Y7

0000

-

-

-

-

-

-

-

0001

y0

y1

y2

y3

y4

y5

y6

0010

y7

y8

y9

y10

y11

y12

y13

0011

y14

y15

y16

y17

y18

y19

y20

0100

y21

y22

y23

y24

y25

y26

y27

0101

y28

y29

y30

y31

y32

y33

y34

0110

y35

y36

y37

y38

y39

y40

y41

0111

y42

y43

y44

y45

y46

y47

y48

1000

y49

y50

y51

y52

y53

y54

y55

1001

y56

y57

y58

y59

y60

y61

y62

1010

y63

y64

y65

y66

y67

y68

y69

1011

y70

y71

y72

y73

y74

-

-

Таблица 5 - Кодирование логических условий

Коды условий

X

Коды условий

X

Коды условий

X

000000

x0

000001

x1

000010

x2

000011

x3

000100

x4

000101

x5

000110

x6

000111

x7

001000

x8

001001

x9

001010

x10

001011

x11

001100

x12

001101

x13

001110

x14

001111

x15

010000

x16

010001

x17

010010

x18

010011

x19

010100

x20

010101

x21

010110

x22

010111

x23

011000

x24

011001

x25

011010

x26

011011

x27

011100

x28

011101

x29

011110

x30

011111

x31

100000

x32

На основании кодированного списка условий и микроопераций проектируем форматы микрокоманд (рисунок 6, 7)

Рисунок 6 - Формат операторных микрокоманд

Рисунок 7 - Формат микрокоманд переходов

В ПЗУ хранится два типа микрокоманд: операторные микрокоманды (рисунок 6) и микрокоманды перехода (рисунок 7). Обе микрокоманды дополнены до значения 31, как для ближайшей степени числа 2. Микрокоманды перехода предназначены для передачи управления по адресу «Адрес перехода 1», если условие X истинно, или по адресу «Адрес перехода 2» в том случае, если данное условие ложно.

В соответствии с выбранными форматами микрокоманд составляется функциональная схема МПА (схема приложения 19) на основе программируемой логики

9.2 Проектирование управляющего автомата устройства управления АЛУ

Для разработки автомата будем использовать список микрокоманд и логических условий из таблицы приложения 17. Закодируем все логические условия и микрооперации двоичным кодом. Для этого разобьем множество микроопераций на 7 непересекающихся подмножеств. Получим:

Y1 = {y74, y81, y88, y95, y102, y109, y116}

Y2 = {y75, y82, y89, y96, y103, y110, y117}

Y3 = {y76, y83, y90, y97, y104, y111}

Y4 = {y77, y84, y91, y98, y105, y112}

Y5 = {y78, y85, y92, y99, y106, y113}

Y6 = {y79, y86, y93, y100, y107, y114}

Y7 = {y80, y87, y94, y101, y108, y115}

Множество логических условий

X = {x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45}

Для кодирования микроопераций операторных микрокоманд в каждом из подмножеств необходимо использовать по три бита. Соответствующие таблицы кодирования микроопераций и логических условий приведены в таблицах 6 и 7

Таблица 6 - Кодирование микроопераций

Код микрооперации

Подмножества микроопераций

Y1

Y2

Y3

Y4

Y5

Y6

Y7

000

-

-

-

-

-

-

-

001

y74

y75

y76

y77

y78

y79

y80

010

y81

y82

y83

y84

y85

y86

y87

011

y88

y89

y90

y91

y92

y93

y94

100

y95

y96

y97

y98

y99

y100

y101

101

y102

y103

y104

y105

y106

y107

y108

110

y109

y110

y111

y112

y113

y114

y115

111

y116

y117

-

-

-

-

-

Таблица 7 - Кодирование логических условий

Коды условий

X

Коды условий

X

Коды условий

X

0000

x33

0001

x34

0010

x35

0011

x36

0100

x37

0101

x38

0110

x39

0111

x40

1000

x41

1001

x42

1010

x43

1011

x44

1100

x45

1101

-

1110

-

На основании кодированного списка условий и микроопераций проектируем форматы микрокоманд (рисунок 8, 9)

Рисунок 8 - Формат операторных микрокоманд

Рисунок 9 - Формат микрокоманд переходов

В соответствии с выбранными форматами микрокоманд составляется функциональная схема МПА (схема приложения 20) на основе программируемой логики

10. Пример кодирования ПЗУ МК МПА АЛУ для реализации микропрограммы операций сложения и вычитания

Приведем пример кодирования ПЗУ МК для реализации микропрограммы операций сложения и вычитания. Естественной адресацией МК будем считать выполнение МП по истинной ветви алгоритма, т.е. там, где значение логического условия равно 1. Ниже приведена блок-схема алгоритма операции сложения / вычитания при естественной адресации микрокоманд с тремя дополнительными операторами безусловного перехода, обозначенными кодом «1» (рисунок приложения 21). В таблице 8 приведен фрагмент кода ПЗУ МК для хранения операции сложения / вычитания

Таблица 8 - Пример программы ПЗУ при естественной адресации микрокоманд.

Адрес памяти

используемые биты

неиспользуемые биты

00100001

1 0101 00100010 00101001

00000000000

00100010

0 000 001 000 000 000 000 000

0000000000

00100011

0 000 000 001 000 000 000 000

0000000000

00100100

1 0010 00100101 00101000

00000000000

00100101

0 000 000 000 000 001 000 000

0000000000

00100110

0 000 000 000 000 000 001 000

0000000000

00100111

0 000 000 000 000 000 000 001

0000000000

00100000

0 000 000 000 000 000 000 000

0000000000

00101000

0 000 000 000 000 000 001 000

0000000000

00101001

1 1111 00100011 00100011

00000000000

00101010

1 1111 00100101 00100101

00000000000

Примечание. Код безусловного перехода 1111

11. Разработка функциональной схемы процессора

На основе спроектированных операционных автоматов, устройств управления процессора и арифметико-логического устройства разрабатываем функциональную схему процессора (приведена на КП 230101.010.017.081.004 Э2) Функциональная схема процессора является объединением названных операционных автоматов процессора и АЛУ, их устройств управления, схем ОЗУ, блоков согласования разрядности шин, устройств прерывания и портов внешних устройств.

Заключение

В ходе выполнения курсового проекта по дисциплине «Организация ЭВМ, комплексов, систем и сетей» было построено вычислительное устройство в соответствии с вариантом задания. Была разработана структура вычислительного устройства, алгоритм командного цикла, операционное устройство АЛУ, центральное устройство управления. Курсовой проект помог закрепить знания по соответствующей дисциплине, а также получить необходимые навыки при проектировании вычислительных устройств.

Список используемой литературы

1. Борзов Д.Б., Типикин А.П. Проектирование процессора ЭВМ: учебное пособие; Курск. гос. техн. ун-т. Курск, 2006. 167 с.

2. Цилькер, Б.Я. Организация ЭВМ и систем [Текст]: учебник для вузов / Б.Я. Цилькер, С.А. Орлов. СПб.: Питер, 2004. 668 с.

3. Танэнбаум, Э. Архитектура компьютера [Текст] / Э. Таненбаум. 4-е изд. СПб.: Питер, 2003. 704 с.

Приложения

Приложение 1

Алгоритм выборки команды из памяти

Приложение 2

Алгоритм перехода к подпрограмме прерывания

Приложение 3

Алгоритм формирования операндов для АЛУ

Приложение 4

Алгоритмы операций перехода

Безусловный переход

Приложение 5

Алгоритм вызова подпрограммы

Приложение 6

Алгоритм возврата из подпрограммы

Приложение 7

Алгоритмы операции со стеком

Чтение из стека

Рисунок 3 - Сложение со стеком и вычитание из стека

Сложение со стеком и вычитание из стека

Приложение 8

Алгоритмы выполнения операций с ВУ

Чтение из ВУ

Приложение 9

Запрещение прерывания Разрешение прерывания

Остановка

Выход из прерывания

Загрузка регистра базы Рисунок.6 - Загрузка указателя стека

Приложение 10

Алгоритм записи в ОЗУ

Алгоритм чтение из 0ЗУ

Чтение из 0ЗУ

Размещено на Allbest.ru


Подобные документы

  • Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.

    учебное пособие [1,1 M], добавлен 09.04.2013

  • Разработка устройства, реализующего набор команд из числа операций с плавающей точкой семейства процессора i486. Структура сопроцессора FPU. Принцип выполнения операций, разработка блок-схемы, построение структурной схемы основных блоков процессора.

    курсовая работа [734,9 K], добавлен 27.10.2010

  • Функциональная и структурная организация ЭВМ. Разработка функциональных микропрограмм заданных команд. Их объединение и привязка к структуре операционного автомата процессора. Разработка управляющего автомата процессора с программируемой логикой.

    дипломная работа [4,0 M], добавлен 25.03.2012

  • Теоретическое изучение системы проведения арифметических операций над двоичными числами. Создание описания операций умножения и блок-схемы алгоритма её выполнения. Определение набора управляющих сигналов и синтез схемы арифметико-логического устройства.

    курсовая работа [169,3 K], добавлен 25.12.2012

  • Описание структурной схемы операционного устройства. Построение обратной структурной таблицы автомата. Проектирование функций выходов и управление элементами памяти. Изображение пользовательского интерфейса и инструкции по инсталляции и запуску программы.

    курсовая работа [642,6 K], добавлен 19.05.2014

  • Функциональная организация процессора. Сложение с нормализацией, синтез операций, выборка команды. Описание структурной схемы процессора. Синтез управляющего автомата, разметка граф схемы. Разбиение микроопераций по полям и кодирование логических условий.

    курсовая работа [91,8 K], добавлен 24.09.2010

  • Разработка структурной схемы устройства управления учебным роботом. Выбор двигателя, микроконтроллера, микросхемы, интерфейса связи и стабилизатора. Расчет схемы электрической принципиальной. Разработка сборочного чертежа устройства и алгоритма программы.

    курсовая работа [577,8 K], добавлен 24.06.2013

  • Изучение принципа работы цифрового автомата для сложения двоичных чисел, представленных в форме с фиксированной запятой, на базисе алгебры Буля. Правила построения операционных и функциональных схем отдельных устройств, логических систем и функций.

    курсовая работа [1,2 M], добавлен 24.01.2014

  • Разработка функциональной схемы операционного автомата микросхемы специализированного процессора, выполняющего заданную арифметическую операцию. Закодированная граф-схема машинного алгоритма. Таблица входов мультиплексора выбора осведомительного сигнала.

    курсовая работа [669,9 K], добавлен 25.07.2013

  • Разработка устройства управления процессора для выполнения команд сложения, вычитания и поразрядного логического "или", с использованием способов адресации операндов: регистр-регистр, регистр - непосредственно операнд, регистр - прямая адресация памяти.

    курсовая работа [72,8 K], добавлен 21.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.