Алгоритм решения задач

Содержание

Введение

1 Алгоритм решения функциональной задачи

2 Выбор системы команд специализированной ЭВМ

3 Форматы команд и операндов

4 Содержательные графы микропрограмм операций АЛУ

5 Разработка объединенной микропрограммы работы АЛУ

6 Закодированные алгоритмы микропрограмм

7 Проектирование управляющего автомата

Введение

Целью курсового проектирования является закрепление знаний по курсу: «Организация ЭВМ и систем» , полученных в результате изучения лекционного курса и выполнения лабораторного практикума.

Объектом курсового проектирования является процессор специализированной ЭВМ.

В процессоре выделяют устройство, в котором выполняются все основные (арифметические и логические) операции. Это устройство называют арифметико-логическим устройством (АЛУ). Если все основные операции выполняются за один такт (это имеет место в большинстве современных микропроцессоров), АЛУ является частью операционного автомата процессора; если же некоторые или все основные операции выполняются алгоритмически за много тактов, АЛУ имеет собственное устройство управления.

Разработка процессора специализированной ЭВМ включает в себя следующие этапы:

  • Разработка алгоритма решения функциональной задачи.

  • Выбор системы команд специализированной ЭВМ.

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

  • Разработка алгоритмов микропрограмм выполнения минимально необходимого набора операций АЛУ.

  • Разработка объединенной микропрограммы работы АЛУ.

  • Разработка структурной схемы операционного автомата АЛУ.

  • Разработка управляющего автомата АЛУ.

1 Алгоритм решения функциональной задачи

Укрупненный алгоритм решения поставленной задачи представлен на рисунке 1.1. Алгоритм вычисления функций F приведен соответственно на рисунке 1.2.

Рис.1.1 Укрупненный алгоритм

Для вычисления функции F можно воспользоваться степенным рядом:

Ф

1

ункция Arth(x) разлагается [3] в степенной ряд:

Этот ряд сходится при |x|<1, .

Рис.1.3

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


2 Выбор системы команд специализированной ЭВМ

Для двухадресной системы команд без признака засылки основные операции над двумя операндами будут выглядеть так:

,

где

А>1 >– первый адрес в команде;

А>2> – второй адрес в команде;

* - обозначение операции.

Введем обозначение:

N . Наименование операции . X . Y

X – первый операнд и результат операции.

Y – второй операнд (если он не участвует, то ставится -).

Для двухадресной системы команд без признака засылки программа будет выглядеть так:

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

3 Форматы команд и операндов

Будем считать, что оперативная память (ОП) состоит из 256 ячеек длиной в один байт каждая.

Двухадресная система команд без признака засылки содержит 13 различных наименований команд, для кодирования которых поле КО должно иметь 4 разряда.

Поскольку в данном случае имеются одноадресные команды и двухадресные команды, для их различия введено одноразрядное поле кода длины команды (КДК) и принято считать: КДК=1 - для одноадресных и КДК=0 - для двухадресных команд.

Разряды 5-7 первого байта всех команд здесь не используются. Формат команд приведен на рисунке 3.1.

В качестве операнда будет использоваться 16-разрядное слово, запятая считается фиксированной перед старшим разрядом, а ОП оперирует с однобайтовыми словами. Формат операнда в ОП представлен на рисунке 3.2:

Такой операнд загружается за два обращения к ОП, здесь старшие разряды операнды и знак содержатся в первом байте, а младшие разряды – во втором.

4 Содержательные графы микропрограмм операций АЛУ

Числа представляются в 16-разрядном формате, старший (нулевой) разряд используется для представления знака числа, для операции сложения используется модифицированный дополнительный код, поэтому регистр RG имеет 17 разрядов (0:16) (поле RG(1:16) – для хранения первого слагаемого), регистр RG1 имеет 16 разрядов RG1(0:15) – для второго слагаемого, одноразрядному полю признака переполнения изначально присвоено нулевое значение, при операции сложения слагаемые помещаются по младшим разрядам, результат (сумма) помещается в поле RG(1:16), прибавление константы означает прибавление 1 к младшему разряду слова.

Содержательный алгоритм сложения представлен на рисунке 4.1:

Рисунок 4.1 – Алгоритм операции сложения

Описание слов, использованных в микропрограмме сложения, представлены в таблице 4.1:

Таблица 4.1

Тип

Слово

Пояснение

ILO

RG(0:16)

Слагаемое (Сумма)

IL

RG1(0:16)

Слагаемое

ILO

ПП

Признак переполнения

Содержательный алгоритм вычитания представлен на рисунке 4.2:

Рисунок 4.2 – Алгоритм вычитания

Описание слов, использованных в микропрограмме вычитания представлены в таблице 4.2:

Таблица 4.2

Тип

Слово

Пояснение

ILO

RG(0:16)

Уменьшаемое (разность)

IL

RG1(0:16)

Вычитаемое

ILO

ПП

Признак переполнения

Содержательный алгоритмы умножения и деления представлены на рисунках 4.3 и 4.4:

Описания слов, использованных в микропрограммах представлены в таблицах 4.3 и 4.4:

Таблица 4.3

Тип

Слово

Пояснение

ILO

RG(0:16)

Множитель, произведение

IL

RG1(0:16)

Множимое

L

RG2(0:16)

Множитель, произведение

L

СТ(1:4)

Счетчик циклов

Таблица 4.4

Тип

Слово

Пояснение

ILO

RG(0:16)

Делимое, остаток, частное

IL

RG1(0:16)

Делитель

L

RG2(0:16)

Частное

L

СТ(1:4)

Счетчик

ILO

ПП

Признак переполнения

Содержательные алгоритмы умножения на 2 и нахождения абсолютной величины числа представлены на рисунке 4.5 и 4.6, а описания слов, использованных в микропрограммах – в таблице 4.5 и 4.6:

Рисунок 4.5 – Алгоритм операции «умножение на 2»

Рисунок 4.6 – Алгоритм приведения абсолютной величины числа

Таблица 4.5

Тип

Слово

Пояснение

ILO

RG(2:16)

Операнд

ILO

ПП

Признак переполнения

Таблица 4.6

Тип

Слово

Пояснение

ILO

RG(0:1)

Операнд

Содержательный алгоритм микропрограммы специальной функции Arth(x) представлен на рисунке 4.7, здесь до начала выполнения программы регистру RG4 присваивается значение X. Описания слов, использованных в микропрограмме – в таблице 4.7:

Таблица 4.7

Тип

Слово

Пояснение

ILO

RG(0:16)

Переменная x,n,b,a,F множитель, произведение, делимое,

остаток, частное, слагаемое, сумма,

уменьшаемое, разность

IL

RG1(0:15)

Переменная F,b,a

константа,

Множимое, делитель, слагаемое, вычитаемое

L

RG2(0:16)

Множитель, произведение, частное

L

RG3(0:15)

Переменная F

L

RG4(0:15)

Переменная x,a,b

L

RG5(0:15)

Переменная n

L

CT(1:4)

Счетчик

ILO

ПП

Признак переполнения

Теперь необходимо составить схему укрупненного алгоритма, используя уже полученную микропрограмму вычисления функции Arth(x). Предполагается, что переменные x1, x2 и x3 перед началом выполнения программы уже будут загружены соответственно в регистры RG4, RG3 и RG5. Данная схема алгоритма представлена на рисунке 4.8:

Рисунок 4.8 – Схема алгоритма

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

Таблица 4.8

Тип

Слово

Пояснение

ILO

RG(0:16)

Переменная x1, x2,X делимое,

остаток, частное,

уменьшаемое, разность

абсолютная величина числа

IL

RG1(0:15)

Переменная x2, x3

константа, делитель, вычитаемое

L

RG3(0:15)

Переменная x2

L

RG4(0:15)

Переменная x1, X

L

RG5(0:15)

Переменная x3

5 Разработка объединенной микропрограммы работы АЛУ

Процессор состоит из АЛУ и УЦУ.

В объединенном списке микроопераций, используемых в микропрограммах минимального набора операций АЛУ, для унификации формы записи различных операций и форматов одноименных слов следует по сравнению с рисунком 4.3 изменить три микрооперации:

  • для вершины 2 вместо микрооперации RG2 := RG нужно использовать микрооперацию RG2 := RG(1:16).0;

  • для вершины 6 вместо микрооперации RG2(1:15):=R1(RG (15).RG2(1:15)) – использовать микрооперацию RG2(1:15):=R1(RG(16).RG2(1:16);

  • вместо микрооперации RG(0):=1 в вершине 11 – использовать микрооперацию RG(0:1):=11.

Благодаря этим изменениям значение числовой части результата каждой операции присваивается полю RG(2:16) слова RG, а нулевой и первый разряды этого слова используются для представления знака числа. Появляется возможность считать, что перед началом каждой операции над двумя операндами в АЛУ значение первого операнда присваивается полю RG(1:16) слова RG, а значение второго операнда – слову RG1. При выполнении этого условия перед началом сложения и вычитания необходимо произвести присваивание RG(0) := RG(1), перед началом умножения нужно осуществить передачу RG2 := RG(1:16).0, а перед делением – микрооперации RG2(0):= RG(1) и RG(0:1):= 00.

В таблице 5.1 приведен список логических условий, используемых в микропрограммах:

Таблица 5.1

Обозначение

Лог. Условие

Тип операции

X1

RG(0)

Сложение и

Вычитание

X2

RG1(0)

X3

RG(1)

X4

RG2(15)

Умножение

X5

CT=0

X6

RG2(1)

X7

RG1(0)RG2(0)

Деление

X8

RG2(16)

Умножение на «2»

X9

RG(2)

Вычисление функции Arth(x)

X10

RG(0:16)

В таблице 5.2 приведен список микроопераций, используемых в микропрограммах:

Таблица 5.2

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

Тип операции

Y1

RG(0):=RG(1)

Сложение

Y2

RG(2:16):= RG(2:16) +

Y3

RG:=RG+RG1(1:15)

Y4

RG:=RG+11. RG1(1:15)+

Y5

ПП:=1

Y6

RG1(0):=  RG1(0)

Вычитание

Y7

RG2:=RG(1:16).0

Умножение

Y8

RG:=0

Y9

CT:=1510

Y10

RG2(1:16):=R1(RG(16).RG2(1:16))

Y11

RG(1:16):=R1(0.RG(1:16))

Y12

CT:=CT-1

Y13

RG:=RG+

Y14

RG(0:1):=11

Y15

RG2(0):=RG(1)

Деление

Y16

RG(2:16):=L1( RG(2:16).0)

Y17

CT:=0

Y18

RG2(1:16):=0

Y19

RG2(1:16):=L1(RG2(1:16). RG(0))

Y20

RG:=RG2(1:15)

Y21

RG(0:1):=00

Выделение абсолютной величины числа

Y22

RG3:=RG4

Вычисление функции Arth(x)

Y23

RG5:=

Y24

RG:=RG4

Y25

RG1:=RG

Y26

RG4:=RG

Y27

RG:=RG5

Y28

RG4:=RG1

Y29

RG1:=

Y30

RG5:=RG5+

Y31

RG:=RG3


В приложениях 1, 2 и 3 приведена соответственно схема объединенной микропрограммы работы АЛУ, закодированная схема объединенной микропрограммы работы АЛУ и структурная схема операционного автомата.

6 Закодированные алгоритмы микропрограмм

Закодированные алгоритмы сложения, вычитания, умножения, деления, умножения на «2» и выделения абсолютной величины числа представлены соответственно на рисунках 6.1, 6.2, 6.3, 6.4, 6.5 и 6.6:

7 Проектирование управляющего автомата

Формат микрокоманды при вертикальном кодировании имеет формат, представленный на рисунке 7.1:

Формат команды с принудительной адресацией представлен на рисунке 7.2:

Алгорим формирования исполнительного адреса обращения к микропрограммной памяти (МПП) представлен на рисунке 7.3:

Рисунок 7.3 – Алгоритм формирования адреса

В таблице 7.1 приведены все микрооперации, расположенные в микропрограммной памяти, где адрес A0 - переход по «истина»:

Таблица 7.1

Логичеcкий адрес МК в МПП

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

Операционная зона

Адресная зона

Y

X(1..l)

A0

A1

0

Y0

1

1

Y31

2

2

Y33

3

3

Y15

4

4

Y21

5

5

Y4

6

6

X1

23

7

7

Y16

8

Y9

9

9

Y18

10

10

X1

12

11

11

Y4

13

12

Y3

13

13

Y19

14

14

Y16

15

15

Y12

16

16

X5

17

10

17

Y20

18

18

X8

19

20

19

Y13

20

X7

22

21

21

Y21

24

22

Y14

24

23

Y5

24

24

Y25

25

25

Y24

26

26

Y6

27

27

Y1

28

28

X1

29

30

29

Y2

30

30

X2

32

31

31

Y3

33

32

Y4

33

33

X1

35

34

34

X2

36

38

35

X2

37

36

36

Y5

38

37

Y2

38

38

Y26

39

39

Y21

40

40

Y34

41

41

Y6

42

42

Y1

43

43

X1

44

45

44

Y2

45

45

X2

47

46

46

Y3

48

47

Y4

48

48

X1

50

49

49

X2

51

53

50

X2

52

51

51

Y5

53

52

Y2

53

53

X1

0

54

54

Y22

55

55

Y23

56

56

Y24

57

57

Y25

58

58

Y7

59

59

Y8

60

60

Y9

61

61

X4

62

63

62

Y3

63

63

Y10

64

64

Y11

65

65

Y12

66

66

X5

67

61

67

X6

68

69

68

Y13

69

69

X7

70

71

70

Y14

71

71

Y26

72

72

Y27

73

73

X9

75

74

74

Y16

76

75

Y5

76

76

Y6

77

77

Y1

78

78

X1

79

80

79

Y2

80

80

X2

82

81

81

Y3

83

82

Y4

83

83

X1

85

84

84

X2

86

88

85

X2

87

86

86

Y5

88

87

Y2

88

88

Y25

89

89

Y24

90

90

Y28

91

91

Y7

92

92

Y8

93

93

Y9

94

94

X4

95

96

95

Y3

96

96

Y10

97

97

Y11

98

98

Y12

99

99

X5

100

94

100

X6

101

102

101

Y13

102

102

X7

103

104

103

Y14

104

104

Y25

105

105

Y24

106

106

Y28

107

107

Y29

108

108

Y1

109

109

X1

110

111

110

Y2

111

111

X2

113

112

112

Y3

114

113

Y4

114

114

X1

116

115

115

X2

117

38

116

X2

118

117

117

Y5

119

118

Y2

119

119

Y25

120

120

Y24

121

121

X10

122

158

122

Y15

123

123

Y21

124

124

Y4

125

125

X1

142

126

126

Y16

127

127

Y9

128

128

Y18

129

129

X1

131

130

130

Y4

132

131

Y3

132

132

Y19

133

133

Y16

134

134

Y12

135

135

X5

136

129

136

Y20

137

137

X8

138

139

138

Y13

139

139

X7

141

140

140

Y21

143

141

Y14

143

142

Y5

143

143

Y30

144

144

Y31

145

145

Y32

146

146

Y1

147

147

X1

148

149

148

Y2

149

149

X2

150

151

150

Y3

152

151

Y4

152

152

X1

154

153

153

X2

155

157

154

X2

156

155

155

Y5

157

156

Y2

157

157

71

158

Y0