Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
labs_vsasoiu / Методичка по макету 1804 / АрхЭВМ_Лаб.Раб 2007_Часть1.doc
Скачиваний:
15
Добавлен:
10.02.2015
Размер:
1.43 Mб
Скачать

Выбор регистра общего назначения

Таблица 7

Управляющие сигналы

Адрес РОН [Т]

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

y7

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

y8

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

y9

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

y10

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

Примечание. Формирование адреса следующей команды происходит вне микропрограммы операции;

е) «Переход безусловный» (ПБК) – команда реализует безусловный переход по косвенному адресу, т.е. по адресу, который хранится в ячейке возврата в оперативной памяти. В качестве ячейки возврата можно использовать любое слова страницы F(адреса отF0 доFF). Номер слова в страницеFуказывают в полеRкоманды ПБК (рис. 5е).

ж) «Вывод» (Выв) - по этой команде байт информации из па­мяти выдается на экран дисплея в шестнадцатеричной системе. Ад­рес выдаваемого байта указывается в поле S1 (рис. 5ж);

з) «Останов» (Стоп) - по этой команде происходит выключе­ние центрального устройства управления. Эта команда должна быть последней исполняемой в программе пользователя. Она выдает на пульт управления специальный сигнал о завершении работы процес­сора, а само ЦУУ переходит в состояние ожидания (исходное состо­яние) (рис. 5з).

6. Разработать обобщенную микропрограмму, описывающую работу ЦУУ:

а) в исходном положении ЦУУ находится в состоянии ожидания. Включение ЦУУ производится сигналом "Пуск", подаваемым с пульта управления. После этого в программный счетчик (РОН[1]) и регистр адреса РА заносится начальный адрес машинной программы - нуль. (В качестве начального адреса программы можно использовать любой адрес оперативной памяти, однако в большинстве процессоров он равен нулю. Это объясняется удобствами схемной реализации - во всех регистрах имеются специальные входы обнуления.);

б) произвести выборку команды из оперативной памяти в регистр команд. В каждом варианте задания длина всех команд одинакова: 2, 3 или 4 байта. В соответствии с этим использовать микрооперацию, записывающую в старшие разряды регистра команд слово длиной 2, 3 или 4 байта и на соответствующее число единиц увеличивать содержимое программного счетчика, чтобы сформировать адрес сле­дующей команды. Длина трехадресных команд 4 байта, поэтому счет­чик увеличить на 4 с помощью микрооперации

РОН [Т]: = РОН [Т] *А. Выбор номера регистра и типа операции задать по табл. 7 и 8 с помощью управляющих сигналов. Для получения микрооперации РОН[1]: = РОН[1] + 4 необходимы управляющие сигналы: y7, y11, y13,y14;

в) проанализировать код операции машинной команды и перей­ти к выполнению соответствующей операции. Микропрограммы всех необходимых в задании операций приведены на рис. 5. Код операции всегда размешается в четырех старших разрядах регистра команд (31:28). Коды операций используемых команд приведены в табл. 6. С помощью четырех разрядов в КОП можно закодировать до 16 различ­ных машинных команд. В нашей задаче используются только восемь команд с кодами 0000-OIII. При появлении несуществующего кода операции в микропрограмме формируется сигнал ошибки "Ошибка в КОП" и выполнение микропрограммы завершается;

г) после завершения выполнения микропрограмм всех операций, кроме операции "Стоп", в регистр адреса ЦУУ необходимо занести адрес следующей машинной команды. После выполнения команды "Стоп" в регистре адреса хранится адрес последней выполненной команды.

Управление работой схемы инкремента-декремента

Таблица 8

Управляющий сигнал

Выполняемая микрооперация

У6 =1

Декремент (-1)

У6 = 0

Инкремент (+1)

  1. Построить обобщенную микропрограмму (рис. 6).

  2. По обобщенной микропрограмме построить закодированный граф микропрограммы (рис. 7) и по нему - управляющий автомат Мура или Мили. В общем случае автомат Мили имеет меньше состояний и для него необходим регистр состояний меньшей разрядности. В ла­бораторной работе использован восьмиразрядный регистр состояний. Его разрядности достаточно для построения автомата любого типа во всех вариантах. В качестве примера можно построить автомат Мура. В табл. 9 приведены списки переходов автомата. Разметка автомата указана на рис. 7.

Список переходов

Таблица 9

№ пп.

Исходное

состояние

Код

Следующее состояние

Код

Входные сигналы

Сигналы возбуждения

Выходные сигналы

1

2

3

4

5

6

7

8

1

а0

000000

а1

000001

B

D1

---

2

а1

000001

а2

000010

---

D2

y7, y13, y14 ,y15 ,y43 ,y58

3

а2

000010

а3

000011

D1,D2

y7, y11, y13 ,y14 ,y58 ,y64

4

a7

000111

D1,D2,D3

5

a11

001011

D1,D2,D3

6

a16

010000

D5

7

a27

011011

D5,D4,D2,D1

8

a28

011100

D5,D4,D3

9

a30

011110

D5,D4,D3,D2

10

a31

011111

D5,D4,D3,D2,D1

11

a34

100010

D6,D2

12

а3

000011

a4

000100

---

D3

y21

13

а4

000100

a5

000101

---

D3,D1

y11, y12, y13 ,y14 ,y15 ,y42

14

а5

000101

a6

000110

---

D3,D2

y30

15

а6

000110

a26

011010

---

D5,D4,D2

y48

16

а7

000111

a8

001000

---

D4

y21

17

а8

001000

a9

001001

---

D4,D1

y11, y12, y13 ,y14 ,y15 ,y42

18

a9

001001

a­

001010

---

D4,D2

y30

19

a10

001010

a26

011010

---

D5,D4,D2

y67

20

a11

001011

a12

001100

---

D4,D3

y11, y29, y38

21

a12

001100

a13

001101

---

D4,D3,D1

y11, y13, y15 ,y42

22

a13

001101

a14

001110

---

D4,D3,D2

y60

23

a14

001110

a15

001111

---

D4,D3,D2, 1

y21

24

a15

001111

a26

011010

---

D5,D4,D2

y7, y11, y13,y15 ,y58

25

a16

010000

a17

010001

---

D5,D1

y6, y21, y47

26

a17

010001

a18

010010

---

D5,D2

y35

27

a18

010010

a19

010011

---

D5,D2,D1

y11, y14, y42

28

a19

010011

a20

010100

---

D5,D3

y30

29

a20

010100

a21

010101

---

D5,D3,D1

y8, y11, y13 ,y15 ,y22 ,y58

30

a21

010101

a22

010110

---

D5,D3,D2

y11, y14, y42

31

a22

010110

a23

010111

---

D5,D3,D2,D1

y30

32

a23

010111

a24

011000

---

D5,D4

y8, y11, y14, y23 ,y58

33

a24

011000

a25

011001

---

D5,D4,D1

y8, y11, y14, y29 ,y42

34

a25

011001

a26

011010

---

D5,D4,D2

y60

35

a26

011010

a2

000010

---

D2

y7, y41

36

a27

011011

a0

000000

---

---

y69

37

a28

011100

a29

011101

---

D5,D4,D3

y23

38

a29

011101

a25

011001

---

D5,D4,D1

y11, y12, y13 ,y14 ,y15 ,y42 ,y56

39

a30

011110

a0

000000

---

---

y70

40

a31

011111

a32

100000

---

D6

y38

41

a32

100000

a33

100001

---

D6,D1

y11, y13, y15 ,y42

42

a33

100001

a15

001111

---

D4,D3,D2,D1

y30

43

a­34

100010

a35

100011

---

D6,D2,D1

y35

44

a14

001110

D4,D3,D2

y11, y13, y15 ,y37

45

a35

100011

a26

011010

Z

D5,D4,D2

9. Синтезировать управляющий автомат на основе регистра

состояний Р и программируемых логических матриц:

а) необходимую разрядность регистра состояний определить по формуле К= log2N , где N - число состояний автомата;

б) в работе использовать ПЛМ типа 16x8x68 (16 - входов, 8 – выходов, 68 - конъюнкций). Необходимое число Q ПЛМ определить по формуле

Q= ](K+m)/8[

где m- число управлявших сигналов, формируемых в автомате.

В нашем примере

Q= ](6+28)/8[ = 5

в) распределить управляющие сигналы и сигналы возбуждения

между всеми ПЛМ (сигналы возбуждения D1-D6, подавать на вхо­ды регистра состояний), Каждый из этих сигналов может быть зак­реплен только за одной ПЛМ;

г) выполнить программирование ПЛМ. Для этого для каждой ПЛМ построить таблицу соединений. В каждой таблице указать вхо­ды, выходы и строки.

На входы ( f1-fk) всех ПЛМ подключить выходы регистра сос­тояний Р (старшие разряды слева, младшие - справа). На осталь­ные входы ПЛМ подключить осведомительные сигналы, используемые в данной ПЛМ. Неиспользуемые входы ПЛМ не указывать. Число вхо­дов не должно превышать 16.

С выходов (1-k) первой ПЛМ снимать сигналы возбужде­нияD1= Dk(в нашей задачеD1=D6, так как К= 6). С ос­тальных выходов этой ПЛM и со всех выходов ПЛМ снимать управляющие сигналы. Число выходов в каждой ПЛM не должно превы­шать восьми.

В каждой строке входов прямое значение переменной кодиро­вать единицей, инверсное - нулем, а безразличное - звездочкой. На выходах единицей обозначать необходимость использовать данную конъюнкцию (строку) в булевской функции, описывавшей соответст­вующую выходную переменную (управляющий сигнал или сигнал возбуж­дения). Число строк в каждой матрице не должно превышать 68.

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

ши­ны (табл. 10).

Состав цепей шины

Таблица 10

Номер

цепи

1

80

84

85

86

87

88

89

90

Сигнал

Y1

Y80

B

X4

X3

X2

X1

Z

N

Номер

цепи

91

92

-

101-108

111-118

120

121

122

123

-

Сигнал

C

P

-

F1-F8

D1-D8

«0»

«1»

R

-

Здесь:

В - сигнал "Пуск", поступающий с пульта управления;

ТИ - тактовый импульс, поступающий с генератора тактовых импуль­сов;

"I" и "0" - сигналы логической единицы и логического нуля;

R - сигнал системного сброса, поступающий с пульта управления при включении системы;

Z, N , С, Р - осведомительные сигна­лы, формируемые в АЛУ, соответственно нулевой и отрицательный результаты, перенос и переполнение;

Х4= PK(3I), X3 =РК(30), Х2 = РК(29), X1= РК(28) - осведомительные сигналы, характе­ризующие код операции.

11. В соответствии с разработанной системой машинных команд составить программу решения задачи:

1) провести распределение оперативной памяти (составить карту памяти). Оперативная память состоит из 16 страниц с номера­ми 0-F . В каждой странице размещается по 16 слов с номерами 0-F . Все слова однобайтовые. Адресуется каждый байт. Полный адрес байта состоит из адреса страницы и адреса слова в странице. При этом карта памяти имеет вид:

а) страницы 0 и I - основная программа;

б) страница 2 - массив А;

в) страница 3 - массив В;

г) страница 4 - массив С;

д) страница 5 - адрес возврата - FO , параметр n–F1.

е) страница 6 - подпрограмма;

2) провести кодировку машинной программы в шестнадцатеричной системе счисления (табл. 11). Основная программа должна на­чинаться с адреса 00;

Машинная программа

Таблица 11

пп.

Адрес

ОП

Код команды

Примечание

Байт 1

Байт 2

Байт 3

Байт 4

Основная программа

1

00

70

00

00

F1

Ввод n

2

04

20

60

00

00

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

3

08

00

F1

00

00

Вывод n

4

00

40

00

00

Вывод С1

5

10

60

00

00

00

Останов

Подпрограмма

6

60

10

F1

00

00

Установка индекса

7

64

30

20

30

40

Сложение

8

68

40

64

00

00

Переход условный по ненулевому индексу

9

6

50

00

00

00

Возврат из подпрограммы по косвенному адресу

3) подготовить фотографию оперативной памяти (табл. 12). На фотографии необходимо указать основную программу, подпрограм­му, исходные данные и результаты. Исходные данные взять из табл. 13. На этом домашнюю подготовку закончить;

4) проверить правильность работы программы, задавая различ­ные значения параметра n. Сравнить содержимое памяти после выполнения программы с фотографией памяти, полученной при домаш­ней проработке.

Общие замечания по выполнении работы

1. Любую задачу можно решить с помощью различных наборов машинных команд.

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

3. Допускается использовать сложные комбинированные команды, которые фактически состоят из ряда простых. Например, в рассмотренном примере используют команду "Сложение с модификацией" (Сл), практически состоящую из двух команд: собственно сложения с модификацией адресов операндов и команды декремента индекса. Однако использовать такие команды следует осторожно, так как они ограничивают возможности системы команд так, рассмотренная в примере система команд не позволяет выводить на дисплей элементы массивов в цикле.

4. При разработке системы команд можно широко использовать ре­гистры общего назначения или ячейки оперативной памяти для хра­нения промежуточных результатов или признаков (Z, N, С, Р ) - так называемые

рабочие ячейки или рабочие регистры.

Содержимое оперативной памяти

Таблица 12

Адрес страницы

Адрес слова в странице

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

70

00

00

F1

20

60

00

00

00

F1

00

00

00

40

00

00

1

60

00

00

00

2

00

05

01

03

0A

02

0F

0C

01

00

09

01

03

05

00

06

3

04

06

00

0B

01

04

00

02

03

0A

00

02

01

0A

02

00

4

01

03

02

01

07

00

08

01

04

0B

0A

0A

00

00

01

01

5

6

10

F1

00

00

30

20

30

40

40

64

00

00

50

00

00

00

7

8

9

A

B

C

D

E

F

(08)

(n)

Примечание. Вертикальными жирными линиями команды отделяются друг от друга.

Таблица 13

Исходные данные

Массив

Значения элементов массива

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

А

0

5

1

3

А

2

F

С

1

0

9

1

3

5

0

6

В

4

6

0

В

1

4

0

2

3

А

0

2

1

А

2

0

С

1

3

2

1

7

0

8

1

4

В

А

А

0

0

1

1

5. Особое место в работе ЦУУ занимает страница F оперативной памяти. К любому слову этой страницы можно обращаться в любой микропрограмме с помощью микрооперации А:=F.R, где F - номер страницы F; R - номер слова в странице F, который должен быть записан в поле R машинной команды.

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

7. Во всех заданиях необходимо использовать команды ввода и вывода (можно использовать комбинированные команды ввода-вывода, в которых признак направления передачи информации помещают в одном из неиспользуемых полей команды ввода-вывода, например в поле R).

8. Допускается использовать следующие форматы данных: целые без

знака, целые со знаком. В первом случае число занимает все восемь разрядов (при этом признак перевыполнения Р не имеет смысла). Во втором случае в старшем разряде числа записывается знак (плюс -0, минус - I), а в остальных разрядах - целое семиразрядное число.

9. Все арифметические операции в АЛУ выполняются над операндами в дополнительном коде. Результат также получается в дополнительном коде.

10. Признак переноса С формируется при переносе из старшего (седьмого) разряда слова, а признак переполнения Р - при возникновении единицы переноса в шестом разряде слова, т.е. при переносе в знаковый разряд. Разряды слова нумеруются справа налево от нуля до семи, старшие разряды помешаются слева.

Структура таблицы переходов

Таблица переходов ( таблица 9 «Списки переходов») содержит информацию, необходимую для управления моделированием. Таблица переходов состоит из нескольких десятков строк (в разных вариантах количество строк может быть различным). В каждой строке должно быть указано:

  1. Номер строки.

  2. Исходное состояние (например, а31)

  3. Код исходного состояния (это номер состояния в двоичной системе счисления)

  4. Следующее состояние.

  5. Код следующего состояния.

  6. Входные (осведомительные) сигналы – определяют условия перехода в новое (следующее) состояние.

  7. Сигналы возбуждения – используются для переключения памяти управляющего автомата (регистр Рна рис.3) в новое состояние. Сигналы возбуждения (столбец 7) формируются из кода следующего состояния (столбец 5). В столбце 7 указываются номера входов регистраР, на которые подаются единичные сигналы (не нулевые). Нумерация входов регистраPпроизводится справа налево, начиная с единицы. Например, для кода следующего состояния000011 надо указать сигналы возбужденияD1, D2.

  8. Выходные сигналы (y):

    1. выполняют настройку схемы инкремента – декремента (y6, табл.8, стр.24),

    2. выбирают требуемый РОН (y7-y10, табл.7, стр.23),

    3. настраивают АЛУ (y11-y15, табл.1, стр.7),

    4. инициализируют микрооперации (y20-y70, табл.2, стр.12).