Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx53 / ПЗ (2).docx
Скачиваний:
52
Добавлен:
01.08.2013
Размер:
293.08 Кб
Скачать

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

Вариант задания №2

Исходные данные для проектирования описаны в таблице 1

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

АЛУ

ЗУ

УУ

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

Адрес-ность

Формат

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

Разрядность

Разря-дность

Емкость

Тип УА

Разрядность

2

AS, RR

П К О

32

8

16

ППЛ

16

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

Список операций, выполняемых устройством, должен быть следующим:

арифметические операции:

сложение;

вычитание;

умножение;

деление;

логические операции:

дизъюнкция;

конъюнкция;

сложение по модулю два;

условный переход по значению >0;

условный переход по значению <0;

условный переход по значению =0;

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

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

вызов подпрограммы;

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

операции с запоминающим устройством:

запись в запоминающее устройство;

чтение из запоминающего устройства;

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

запись;

чтение;

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

вычитание из стека;

операции с внешними устройствами:

запись во внешнее устройство;

чтение из внешнего устройства;

системные операции:

останов;

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

запрещение прерывания;

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

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

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

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

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

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

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

Pr – блок регистров и логических схем;

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

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

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

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

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

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

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

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

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

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

Разрядность шины данных (ШД) определяется из варианта задания. В нашем случае разрядность ШД равна 16, т.е. ШД (15-0). Для определения разрядности шины адреса (ША) используем заданные в таблице 2.1 параметры запоминающего устройства: разрядность слова и емкость. Определим количество ячеек памяти: , для того, чтоб адресовать все ячейки ОЗУ необходима разрядность ША равная 11, т.к. 211 = 2048. Получаем ША(10-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

Продолжение таблицы 2

№ п/п

Код операции

Тип операции

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

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

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

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

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

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

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

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

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

Рисунок 3– формат команды RR

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

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

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

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

Код операции

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

Тип адресации

(ТА)

Код ТА

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

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

add

00000

RR

П

00

РОН[R]:=РОН[R1]+РОН[R2]

К

01

РОН[R]:=OP[РОН[R1]]+OP[РОН[R2]]

О

10

РОН[R]:=OP[B+РОН[R1]]+OP[B+РОН[R2]]

AS

П

00

A:= A +OP[S]

К

01

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

О

10

A:= A +OP[B+S]

sub

00001

RR

П

00

РОН[R]:=РОН[R1]-РОН[R2]

К

01

РОН[R]:=OP[РОН[R1]]-OP[РОН[R2]]

О

10

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

AS

П

00

A:= A -OP[S]

К

01

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

О

10

A:= A -OP[B+S]

mul

00010

RR

П

00

РОН[R]:=РОН[R1]*РОН[R2]

К

01

РОН[R]:=OP[РОН[R1]]*OP[РОН[R2]]

О

10

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

AS

П

00

A:= A *OP[S]

К

01

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

О

10

A:= A *OP[B+S]

div

00011

RR

П

00

РОН[R]:=РОН[R1]/РОН[R2]

К

01

РОН[R]:=OP[РОН[R1]]/OP[РОН[R2]]

О

10

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

AS

П

00

A:= A /OP[S]

К

01

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

О

10

A:= A /OP[B+S]

Продолжение таблицы 3

Код операции

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

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

Код ТА

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

Логические

or

00100

RR

П

00

РОН[R]:=РОН[R1]РОН[R2]

К

01

РОН[R]:=OP[РОН[R1]] OP[РОН[R2]]

О

10

РОН[R]:=OP[B+РОН[R1]]OP[B+РОН[R2]]

AS

П

00

A:= A OP[S]

К

01

A:= A OP[OP[S]]

О

10

A:= A OP[B+S]

and

00101

RR

П

00

РОН[R]:=РОН[R1]РОН[R2]

К

01

РОН[R]:=OP[РОН[R1]] OP[РОН[R2]]

О

10

РОН[R]:=OP[B+РОН[R1]]OP[B+РОН[R2]]

AS

П

00

A:= A OP[S]

К

01

A:= A OP[OP[S]]

О

10

A:= A OP[B+S]

xor

00110

RR

П

00

РОН[R]:=РОН[R1]РОН[R2]

К

01

РОН[R]:=OP[РОН[R1]]OP[РОН[R2]]

О

10

РОН[R]:=OP[B+РОН[R1]]OP[B+РОН[R2]]

xor

00110

AS

П

00

A:= A OP[S]

К

01

A:= A OP[OP[S]]

О

10

A:= A OP[B+S]

Команды передачи управления

jns

00111

RR

П

00

if (SF = 0) and (ZF=0) then PC:=РОН[R]

К

01

О

10

AS

П

00

if (SF = 0) and (ZF=0) then PC:= A

К

01

О

10

js

01000

RR

П

00

if (SF = 1) then PC:=РОН[R]

К

01

О

10

AS

П

00

if (SF = 1) then PC:= A

К

01

О

10

jz

01001

RR

П

00

if (ZF = 1) then PC:=РОН[R]

К

01

О

10

AS

П

00

if (ZF = 1) then PC:= A

К

01

О

10

Продолжение таблицы 3

Код операции

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

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

Код ТА

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

jo

01010

RR

П

00

if (OF = 1) then PC:=РОН[R]

К

01

О

10

AS

П

00

if (OF = 1) then PC:= A

К

01

О

10

jmp

01011

RR

П

00

PC:=РОН[R]

К

01

О

10

AS

П

00

PC:= A

К

01

О

10

call

01100

RR

П

00

SP:= SP-2,

OP[SP]:=PC+1

PC:=РОН[R]

К

01

О

10

AS

П

00

SP:= SP-2,

OP[SP]:=PC+1

PC:= A

К

01

О

10

ret

01101

П

00

PC:=OP[SP]

SP:=SP+2

К

01

О

10

Операции с ЗУ

stm

01110

RR

П

00

POН[R1]:= РОН[R2]

К

01

OP[РОН[R1]]:= РОН[R2]

О

10

OP[B+ РОН[R1]]:= РОН[R2]

AS

П

00

OP[S]:= A

К

01

OP[OP[S]]:= A

О

10

OP[B+S]:= A

ldm

01111

RR

П

00

РОН[R]:= РОН[R1]

К

01

РОН[R] := OP[РОН[R1]]

О

10

РОН[R]:= OP[B+РОН[R1]]

AS

П

00

A:= OP[S]

К

01

A:= OP[OP[S]]

О

10

A:= OP[B+S]

Продолжение таблицы 3

Код операции

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

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

Код ТА

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

Операции со стеком

push

10000

RR

П

00

SP:=SP-1, OP[SP]:=РОН[R]

К

01

О

10

AS

П

00

SP:=SP-1, OP[SP]:=OP[S]

К

01

О

10

pop

10001

RR

П

00

РОН[R]:= OP[SP], SP:=SP+1

К

01

О

10

AS

П

00

OP[S]:= OP[SP], SP:=SP+1

К

01

О

10

sadd

10010

RR

П

00

OP[SP]:= OP[SP]+POH[R]

К

01

О

10

AS

П

00

OP[SP]:= OP[SP]+A

К

01

О

10

ssub

10011

RR

П

00

OP[SP]:= OP[SP]-POH[R]

К

01

О

10

AS

П

00

OP[SP]:= OP[SP]-A

К

01

О

10

Операции с ВУ

out

10100

RR

П

00

RgED:=РОН[R]

К

01

О

10

AS

П

00

RgED:=OP[S]

К

01

О

10

in

10101

RR

П

00

РОН[R]:= RgED

К

01

О

10

AS

П

00

OP[S]:= RgED

К

01

О

10

Продолжение таблицы 3

Код операции

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

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

Код ТА

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

Системные операции

stop

10110

RR

П

00

WF:=0

К

01

О

10

AS

П

00

К

01

О

10

sif

10111

RR

П

00

IF:=1

К

01

О

10

AS

П

00

К

01

О

10

rif

11000

RR

П

00

IF:=0

К

01

О

10

AS

П

00

К

01

О

10

iret

11001

П

00

PC:=OP[SP], SP:=SP+1

RgF:=OP[SP], SP:=SP+1

К

01

О

10

ldb

RR

П

00

B:=РОН[R]

К

01

О

10

AS

П

00

B:=OP[S]

К

01

О

10

ldsp

RR

П

00

SP:=РОН[R]

К

01

О

10

AS

П

00

SP:=OP[S]

К

01

О

10

Примечание. В данной таблице приняты следующие сокращения наименований и условные обозначения содержимого полей, ячеек ОП и регистров: R1, R2,S – значения полей из кода инструкции; OP – операнд из памяти; А – аккумулятор; SP – регистр – указатель стека; PC – регистр – программный счетчик; AS – адресация «аккумулятор – ячейка оперативной памяти»; RR – адресация «регистр–регистр»; RgED – регистр внешнего устройства; RgF – регистр флагов; WF – флаг пуска-останова процессора; SF – флаг знака; OF – флаг переполнения; ZF – флаг нуля; [address] – операнд из ячейки с адресом address; RB – регистр базы; IF – флаг прерывания.

Соседние файлы в папке docx53