Разработка микро-ЭВМ, выполняющей программу вычисления 2-х матриц размерностью 4*4
Проектирование микро-ЭВМ. Программа вычисления матрицы. Кодирование программ и регистров, формат команды. Микропрограммное устройство управления. Граф-схемы выполнения операций. Прошивка ПЗУ микрокоманд, точек входа. Разработка принципиальной схемы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 01.03.2013 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ВОСТОЧНО-СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ ТЕХНОЛОГИЙ И УПРАВЛЕНИЯ
ЭЛЕКТРОТЕХНИЧЕСКИЙ ФАКУЛЬТЕТ
Кафедра "Электронно-вычислительные системы"
КУРСОВОЙ ПРОЕКТ
по дисциплине "Теория проектирования ЭВМ”
Тема: " Разработка микроЭВМ, выполняющую программу вычисления 2-х матриц размерностью 4*4"
Выполнил: ст. ДОУ, 2010 г.н. Родионова А.А.
Руководитель: Базарова С.Б.
г. Улан-Удэ 2012г.
ВОСТОЧНО-СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
ЭЛЕКТРОТЕХНИЧЕСКИЙ ФАКУЛЬТЕТ
Кафедра "Электронно-вычислительные машины"
ЗАДАНИЕ
на курсовой проект
Дисциплина: Теория проектирования ЭВМ
Исполнитель: Родионова А.А.
Руководитель: Базарова С.Б.
Срок выполнения проекта по графику: 20% к ___ нед., 40% к__нед., 60% к___нед., 100% к___нед.
1. Тема проекта: Разработка микроЭВМ, выполняющую программу вычисления 2-х матриц размерностью 4*4.
2. Техническое задание: Вариант 11. Требуется разработать микро-ЭВМ для вычисления матрицы , где и - известные матрицы разрядностью 4*4, элементы матрицы
числа в формате с плавающей запятой.
Графическая часть:
Лист 1: Структурная схема
Лист 2: Принципиальная схема
Лист 3: Временные диаграммы
Содержание расчетно-пояснительной записки (объем не менее 20 страниц, список литературы не менее 10 источников).
Исполнитель: ________ Родионова А.А.
Руководитель проекта: ________ Базарова С.Б.
Дата выдачи: "____" __________ _____ г.
Cодержание
- Введение
- 1. Программа вычисления матрицы
- 1.1 Система команд микро-ЭВМ
- 1.2 Кодирование команд
- 1.3 Кодирование регистров
- 1.4 Кодирование способов адресации
- 1.5 Формат команды
- 1.6. Текст программы
- 1.7 Размещение программы в ПЗУ
- 2. Структура микро-ЭВМ
- 3. Устройство управления
- 3.1 Микропрограммное устройство управления (МПУУ)
- 3.2 Формат и адресация микрокоманд
- 3.3 Список микроопераций
- 3.4 Разбиение микроопераций на группы (микрокоманды)
- 3.5 Формат микрокоманд
- 4. Граф-схемы выполнения операций
- 4.1 Граф-схема подготовительных операций - операций выборки команд из ОЗУ
- 4.2 Граф-схема алгоритма команды MOV
- 4.3 Граф-схема алгоритмов команд MUL,ADD
- 4.4 Граф-схема алгоритма команды INC
- 4.5 Граф-схема алгоритма команды JNE
- 4.6 Граф-схема алгоритма команды CMP
- 5. Прошивка ПЗУ микрокоманд
- 5.1 Прошивка ПЗУ микрокоманд
- 5.2 Прошивка ПЗУ точек входа
- 6. Разработка принципиальной схемы
- Заключение
- Список использованной литературы
Введение
В конце 60-х годов начался серийный выпуск сравнительно небольших и дешевых мини-ЭВМ. Их предназначали для предприятий и организаций, где установка высокопроизводительных ЭВМ была экономически невыгодной. В их задачу первоначально входила автоматизация профессиональной работы в различных организациях, работа на предприятиях в качестве проблемно ориентированных ЭВМ. В 1977-78 году был начат выпуск семейства малых ЭВМ (СМ ЭВМ). Их часто называли управляющими вычислительными комплексами, так как они чаще всего использовались в системах управления различного рода. Однако, СМ 3-ей очереди, разработанные в последние годы относятся уже к ЭВМ четвертого поколения и имеют большую производительность, поэтому круг их применения резко расширился, и их активно используют в качестве автоматизированных рабочих мест, объединяют в вычислительные системы, и поручают им расчет экономических и статистических задач. С появлением больших интегральных схем связано развитие другого класса машин - микро-ЭВМ, и, как достижение этого направления - появление мощных профессиональных ПЭВМ, которые используются на рабочих местах для автоматизации труда, несложных расчетов и различного рода проектирования.
Проектирование микро-ЭВМ включает в себя разработку устройства управления и операционного устройства. Устройство управления содержит два блока (центральное и местное устройства управления). Центральное устройство управление в курсовом проекте реализуется на жесткой логике. Местное устройство управление является микропрограммным устройством. Центральное устройство управления предназначено для выборки команд, их декодирования и подготовки операндов, а также поддержания работы местного устройства управления. Местное устройство управления управляет работой АЛУ, формирует сигналы управления передачей данных между отдельными элементами проектируемой микро-ЭВМ. Последовательность формирования управляющих сигналов для МУУ определяется микропрограммой, хранящейся в ПЗУ микрокоманд устройства.
Проектирование микро-ЭВМ включает в себя разработку устройства управления и операционного устройства. Устройство управления содержит два блока (центральное и местное устройства управления). Центральное устройство управления в курсовом проекте реализуется на жесткой логике. Местное устройство управления является микропрограммным устройством. Центральное устройство управления предназначено для выборки команд, их декодирования и формирует сигналы управления передачей данных между отдельными элементами проектируемой микро-ЭВМ. Местное устройство управления управляет работой АЛУ. Последовательность формирования управляющих сигналов для МУУ определяется микропрограммой, хранящейся в ПЗУ микрокоманд устройства.
Программа вычисления матрицы
хранится в оперативной памяти.
1. Программа вычисления матрицы
1.1 Система команд микро-ЭВМ
Разработанная ЭВМ оперирует с 32-разрядными данными, представленными в формате с плавающей запятой. Формат данных показан на рис. 1.
Рис. 1. Формат данных
Система команд разбивается на группы: пересылка данных, арифметические операции, команды передачи управления, команды условных переходов.
В проектируемой микро-ЭВМ реализована следующая система команд: MOV - команда пересылки данных; MUL - команда умножения; ADD - команда сложения; INC - команда инкремента; CMP - команда сравнения; JNE - команда условного перехода; END - команда окончания программы.
1.2 Кодирование команд
Все команды кодируются тремя битами в поле "КОП" команды.
Общее количество типов различных команд - 7. Исходя и этого закодируем все встречающиеся типы команд. Кодировка команд представлена в таблице 1.
Таблица 1. Кодировка команд
Команда |
Код команды |
|
MOV |
000 |
|
MUL |
001 |
|
ADD |
010 |
|
INC |
011 |
|
CMP |
100 |
|
JNE |
101 |
|
END |
110 |
1.3 Кодирование регистров
Одним из необходимых программно-доступных элементов являются регистры общего назначения. Они предназначены для промежуточного хранения данных, а также для хранения операндов АЛУ. Для вычисления заданной функции нам понадобилось восемь 32-битовых регистров, которые участвуют во многих командах. В этих случаях регистры общего назначения кодируются трехбитовым кодом, который размещается в соответствующем поле (или полях) формата команд. Регистры общего назначения кодируются тремя битами в полях Рг (приемник) и SS (источник). Кодировка регистров представлена в таблице 2.
Таблица 2. Кодировка регистров
Регистр |
Код регистра |
|
AX |
000 |
|
BX |
001 |
|
CX |
010 |
|
DX |
011 |
|
EX |
100 |
|
FX |
101 |
|
SI |
110 |
|
DI |
111 |
1.4 Кодирование способов адресации
Команды реализуют различные способы адресации, что упрощает организацию и использование сложных структур данных, а также расширяет возможности отдельных команд и повышает гибкость их применения.
Регистровая адресация. Операнд находится в одном из общих регистров.
матрица программа кодирование регистр
Непосредственная адресация. Непосредственными операндами являются константы длиной 22 бита (рис.2), которые размещаются с 9 по 30 бит команды.
Рис. 2. Формат числа с плавающей запятой в поле "константа" команды
Индексная адресация. Значение исполнительного адреса вычисляется как сумма смещения, находящегося в команде в поле адреса, и содержимого индексного регистра Si (регистра-модификатора). Данный способ обычно применяется для обращения к различным элементам одномерного массива, когда смещение определяет известный при ассемблировании начальный адрес массива, а индексный регистр, содержимое которого может модифицироваться при выполнении программы, определяет элемент массива.
Прямая адресация реализуется только по отношению к указателю IP. Прямая адресация не используется в командах, оперирующих данными, а применяется только в командах условных и безусловных переходов. В команде перехода указывается метка команды (значение IP), которой передается управление.
В разрабатываемой микро-ЭВМ команды должны выполнять пересылку данных:
непосредственно из поля регистра команд SS в регистр общего назначения (РОН) CC или SI;
из одного РОН в другой;
из ячеек ОЗУ (по приращению индекса) в РОН;
из РОН в ячейку ОЗУ (по приращению индекса).
А также в командах должна быть реализована возможность прямо в самой команде указывать адрес следующей команды при переходе по условию.
Отсюда выбираем следующие способы адресации, которые кодируются двумя битами в поле "СпА" (таблица 3).
Таблица 3. Кодировка способов адресации
Способ адресации |
Код |
|
Регистр - непосредственный операнд |
000 |
|
Регистр - регистр |
001 |
|
Регистр - ОЗУ (приращение индекса) |
010 |
|
ОЗУ (приращение индекса) - Регистр |
011 |
|
Прямая |
100 |
1.5 Формат команды
Последовательность команд программы в ПЗУ. Массивы данных хранятся в ОЗУ. Для разработки системы команд необходимо определить формат команды. С учётом количества реализуемых в нашей микро-ЭВМ команд, количества способов адресации, разрядности шины адреса ОЗУ (для непосредственной адресации) и количества регистров общего назначения примем, что команда будет состоять из 24 разрядов. Такая разрядность ещё эффективна тем, что команда может целиком за 1 такт пересылаться из ОЗУ в регистр команд, поскольку шина данных между ПЗУ и регистром команд имеет 24-битную разрядность для работы с операндами.
Таким образом, в курсовом проекте для реализации команд микро-ЭВМ был использован формат команд, представленный на рис.3:
Рис. 3. Формат команды
КОП - код операции;
СпА - способ адресации;
Рг - регистр;
Адрес - адрес смещения;
Константа - числовое значение в формате с плавающей запятой.
1.6. Текст программы
Для вычисления матрицы
необходимо перемножить матрицы известным способом, результат перемножения будет выглядеть следующим образом:
Программа на языке ASSEMBLER показана в таблице 4.
Специальных средств для описания двумерных массивов в ассемблере нет. Двумерный массив нужно моделировать. На описании самих данных это почти никак не отражается - память под массив выделяется с помощью директив резервирования и инициализации памяти. Непосредственно моделирование обработки массива производится в сегменте кода, где программист, описывая алгоритм обработки ассемблеру, определяет, что некоторую область памяти необходимо трактовать как двумерный массив. При этом расположение элементов двумерного массива в памяти выбирается программистом: по строкам или по столбцам. Если последовательность однотипных элементов в памяти трактуется как двумерный массив, расположенный по строкам, то адрес элемента (I, j) вычисляется по формуле:
(база + количество_элементов_в_строке * размер_элемента * i+j)
Здесь i = 0…n-1 указывает номер строки, а j = 0…m-1 указывает номер столбца.
Учитывая описанные правила вычисления адреса элемента двумерного масива, расположенного в памяти по строкам, определим формулу нахождения эффективного адреса элементов наших массивов. Количество элементов в строке - 4.
Найдем, для примера, адрес элемента а (2,3). Массив a находится в оперативной памяти по адресу 40 в десятичной системе счисления.
Эффективный адрес а (2,3) = a + 4*1*2 + 3 = а + 35 = 40 + 11 = 51 или a (i, j) = a + 4*1*i + j = a + 4*i + j.
Для удобства восприятия представим алгоритм решения задачи на языке высокого уровня (Pascal):
for k: = 0 to 3 do {столбцы массива b}
for k: = 0 to 3 do {столбцы массива a}
for k: = 0 to 3 do {столбцы массива a}
c [i,k]: = c [i,k] + a [i,j] * b [j,k]
Таблица 4. Программа на языке ASSEMBLER
№ п/п |
Метка |
Операция |
Операнды |
Комментарий |
||
0 |
MOV |
CX |
0 |
Обнуляем параметр k |
||
1 |
MOV |
DX |
0 |
Обнуляем параметр i |
||
2 |
MOV |
EX |
0 |
Обнуляем параметр j |
||
3 |
@1: |
MOV |
DI |
EX |
j->DI |
|
4 |
MOV |
AX |
4 |
|||
5 |
MOV |
BX |
DX |
i->BX |
||
6 |
MUL |
AX |
BX |
4*i |
||
7 |
MOV |
SI |
AX |
4*i - >SI |
||
8 |
MOV |
AX |
a [SI] [DI] |
|||
9 |
MOV |
DI |
CX |
k->DI |
||
10 |
MOV |
AX |
4 |
|||
11 |
MOV |
BX |
EX |
j->BX |
||
12 |
MUL |
AX |
BX |
4*j |
||
13 |
MOV |
SI |
AX |
4*j - >SI |
||
14 |
MOV |
BX |
b [SI] [DI] |
|||
15 |
MUL |
AX |
BX |
a [i,j] * b [j,k] |
||
16 |
MOV |
FX |
AX |
a [i,j] * b [j,k] - >FX |
||
17 |
MOV |
AX |
4 |
|||
18 |
MOV |
BX |
DX |
i->BX |
||
19 |
MUL |
AX |
BX |
4*i |
||
20 |
MOV |
SI |
AX |
4*i - >SI |
||
21 |
MOV |
BX |
c [SI] [DI] |
|||
22 |
MOV |
AX |
FX |
a [i,j] * b [j,k] - >AX |
||
23 |
ADD |
AX |
BX |
c [i,k] + a [i,j] * b [j,k] |
||
24 |
MOV |
c [SI] [DI] |
AX |
c [i,k] + a [i,j] * b [j,k] - >c [i,k] |
||
25 |
INC |
EX |
j+1 |
|||
26 |
CMP |
EX |
3 |
Проверка на равенство 3-м |
||
27 |
JNE |
@1 |
Переход на метку |
|||
28 |
INC |
DX |
i+1 |
|||
29 |
MOV |
EX |
0 |
Обнуляем j |
||
30 |
CMP |
DX |
3 |
Проверка на равенство 3-м |
||
31 |
JNE |
@1 |
Переход на метку |
|||
32 |
INC |
CX |
k+1 |
|||
33 |
MOV |
DX |
0 |
Обнуляем i |
||
34 |
CMP |
CX |
3 |
Проверка на равенство 3-м |
||
35 |
JNE |
@1 |
Переход на метку |
|||
36 |
END |
выход из программы |
1.7 Размещение программы в ПЗУ
Адресация ПЗУ производится с помощью СчК или См (сумматор исполнительного адреса). Разрядность адреса ПЗУ - 6 разрядов.
Таблица 5. Программа в ПЗУ
№ п/п |
Описание |
КОП |
СпА |
Рг |
Рг |
Адрес в ПЗУ |
||
Адрес |
||||||||
Константа |
||||||||
0 2 |
3 5 |
6 8 |
9 11 13 23 |
|||||
0 |
MOV CX, 0 |
000 |
000 |
010 |
000000000000000 |
000000 |
||
1 |
MOV DX, 0 |
000 |
000 |
011 |
000000000000000 |
000001 |
||
2 |
MOV EX, 0 |
000 |
000 |
100 |
000000000000000 |
000010 |
||
3 |
@1: MOV DI, EX |
000 |
001 |
111 |
100хххххххххххх |
000011 |
||
4 |
MOV AX, 4 |
000 |
000 |
000 |
010000111000000 |
000100 |
||
5 |
MOV BX, DX |
000 |
001 |
001 |
011хххххххххххх |
000101 |
||
6 |
MUL AX, BX |
001 |
001 |
000 |
001хххххххххххх |
000110 |
||
7 |
MOV SI, AX |
000 |
001 |
110 |
000хххххххххххх |
000111 |
||
8 |
MOV AX, a [SI] [DI] |
000 |
010 |
000 |
000000ххххххххx |
001000 |
||
9 |
MOV DI, CX |
000 |
001 |
111 |
010хххххххххххх |
001001 |
||
10 |
MOV AX, 4 |
000 |
000 |
000 |
010000111000000 |
001010 |
||
11 |
MOV BX, EX |
000 |
001 |
001 |
100хххххххххххх |
001011 |
||
12 |
MUL AX, BX |
001 |
001 |
000 |
001хххххххххххх |
001100 |
||
13 |
MOV SI, AX |
000 |
001 |
110 |
000хххххххххххх |
001101 |
||
14 |
MOV BX, b [SI] [DI] |
000 |
010 |
001 |
010000ххххххххx |
001110 |
||
15 |
MUL AX, BX |
001 |
001 |
000 |
001хххххххххххх |
001111 |
||
16 |
MOV FX, AX |
000 |
001 |
101 |
000хххххххххххх |
010000 |
||
17 |
MOV AX, 4 |
000 |
000 |
000 |
010000111000000 |
010001 |
||
18 |
MOV BX, DX |
000 |
001 |
001 |
011хххххххххххх |
010010 |
||
19 |
MUL AX, BX |
001 |
001 |
000 |
001хххххххххххх |
010011 |
||
20 |
MOV SI, AX |
000 |
001 |
110 |
000хххххххххххх |
010100 |
||
21 |
MOV BX, c [SI] [DI] |
000 |
010 |
001 |
100000ххххххххx |
010101 |
||
22 |
MOV AX, FX |
000 |
001 |
000 |
101хххххххххххх |
010110 |
||
23 |
ADD AX, BX |
010 |
001 |
000 |
001хххххххххххх |
010111 |
||
24 |
MOV c [SI] [DI], AX |
000 |
011 |
000 |
100000ххххххххx |
011000 |
||
25 |
INC EX |
011 |
001 |
ххх |
100хххххххххххх |
011001 |
||
26 |
CMP EX, 3 |
100 |
000 |
100 |
010000101100000 |
011010 |
||
27 |
JNE @1 |
101 |
110 |
ххх |
0000011хххххххх |
011011 |
||
28 |
INC DX |
011 |
001 |
ххх |
011хххххххххххх |
011100 |
||
29 |
MOV EX, 0 |
000 |
000 |
100 |
000000000000000 |
011101 |
||
30 |
CMP DX, 3 |
100 |
000 |
011 |
010000101100000 |
011110 |
||
31 |
JNE @1 |
101 |
100 |
ххх |
0000011хххххххх |
011111 |
||
32 |
INC CX |
011 |
001 |
ххх |
010хххххххххххх |
100000 |
||
33 |
MOV DX, 0 |
000 |
000 |
011 |
000000000000000 |
100001 |
||
34 |
CMP CX, 3 |
100 |
000 |
010 |
010000101100000 |
100010 |
||
35 |
JNE @1 |
101 |
100 |
ххх |
0000011хххххххх |
100011 |
||
36 |
END |
110 |
xхх |
ххх |
xхххххххххххххх |
100100 |
Данные располагаются в оперативной памяти и занимают 32 разряда.
Разрядность адреса ОЗУ - 6 разрядов.
000000 - начало двумерного массива данных А (0);
010000 - начало двумерного массива данных В (16);
100000 - начало двумерного массива данных С (результата) (32);
Объем ПЗУ, занимаемый программой равен 36*3 байта=108 байт.
Объем оперативной памяти, занимаемый данными равен 48*4 байта=192 байт.
2. Структура микро-ЭВМ
Рис.4. Упрощенная структурная схема микро-ЭВМ
ЦУУ - центральное устройство управление реализованное на жесткой логике.
ОЗУ - оперативное запоминающее устройство, в котором находится программа и данные.
БР - блок регистров, включающий в себя регистры общего назначения
ОБ - операционный блок содержит арифметико-логическое устройство, реализованное по схеме многофункционального АЛУ.
Микро - ЭВМ содержит, в своей структуре ОЗУ данных и ПЗУ команд программы. Также содержит устройство управления: ЦУУ. К ЦУУ относится дешифратор ЦУУ, регистр команд (РгК), счетчик команд (СчК), сумматор исполнительного адреса (См), дешифратор способа адресации (ДшСпА, дешифратор регистра (ДшРг), счетчик адреса микрокоманд (СчАМК), регистр микрокоманд (РгМК), дешифратор микроопераций, дешифратор логических условий,
ШД - 32-разрядная информационная шина данных. Все регистры в составе этой ЭВМ соединены посредством общей шины. Их выходные линии находятся в третьем состоянии, пока не придет управляющий сигнал из схемы формирования управляющих сигналов, разрешающий выдачу слова на шину. Прием информации с шины также производится по управляющему сигналу.
ША - 6-разрядная шина адреса оперативной памяти и 6-разрядная шина адреса ПЗУкоманд.
Принцип работы микроЭВМ состоит в следующем. Функционирование ЭВМ синхронизируется тактовыми импульсами. Время выполнения каждой команды неодинаково и занимает несколько тактов. Команды делятся на две группы: арифметические и неарифметические. Выполнение всех команд начинается с загрузки в РгК из ОЗУ по адресу в СчК. Содержимое поля КОП РгК дешифрируется и затем производится выполнение команды. Если команда не предназначена для перехода, то после ее выполнения специальным управляющим сигналом содержимое счетчика команд инкрементируется. Если команда - переход, то в процессе ее выполнения в СчК из РгК передается адрес перехода.
Первоначально при запуске микро-ЭВМ обнуляется счетчик команд, по этому адресу из ОЗУ команд считывается первая команда, которая записывается в регистр команд. Затем дешифрируются код операции, способы адресации. Если в регистре команд арифметическая команда, то передается управление на блок МПУУ, с помощью комбинационных схем в СчАМК загружается начальный адрес микропрограммы в ПЗУМК. На выходе дешифратора микроопераций вырабатываются управляющие сигналы. После окончания выполнения команды в ЦУУ поступает сигнал конца операции. После чего СчК увеличивается на единицу.
3. Устройство управления
Центральное устройство управления в проектируемой микро-ЭВМ реализуется на микропрограммном управлении.
3.1 Микропрограммное устройство управления (МПУУ)
Блок микрокоманд (БМК или МПУУ) подготавливает операнды, управляет работой АЛУ, формирует сигналы управления передачей данных между отдельными элементами проектируемой микро-ЭВМ. Последовательность формирования управляющих сигналов определяется микропрограммами, хранящимися в ПЗУ микрокоманд.
3.2 Формат и адресация микрокоманд
Существует несколько методов микропрограммирования. При горизонтальном микропрограммировании каждому разряду операционной части микрокоманды ставится в соответствие определенный управляющий функциональный сигнал, то есть определенная микрооперация. При таком микропрограммировании операционная часть содержит m разрядов (m - общее число микроопераций).
При вертикальном микропрограммировании микрооперация определяется не состоянием одного из разрядов микрокоманды, а двоичным кодом, содержащимся в операционной части микрокоманды. Количество разрядов операционной части:
m0=int (log2m).
В настоящее время наибольшее распространение получило смешанное программирование, в котором сочетаются методы горизонтального и вертикального микропрограммирования. При смешанном микропрограммировании множество микроопераций V разбивается на k - подмножеств (полей), каждое содержит определенное количество функциональных сигналов. В общем случае:
V=?Vj
Микрооперации внутри каждого из подмножеств кодируются либо горизонтальным, либо вертикальным методом. Можно выделить два способа: горизонтально-вертикальный и вертикально-горизонтальный.
При горизонтально-вертикальном микропрограммировании подмножества микроопераций кодируются горизонтально, а микрооперации внутри группы кодируются вертикально.
При вертикально-горизонтальном микропрограммировании подмножества микроопераций кодируются вертикально, а микрооперации внутри группы кодируются горизонтально.
При естественной адресации используются микрокоманды двух типов: операционная и управляющая. В структуре операционной микрокоманды нет адресного поля, указаны только микрооперации. По умолчанию адрес следующей микрокоманды образуется инкрементированием адреса текущей микрокоманды. Управляющая микрокоманда изменяет линейный порядок следования микрокоманд. В управляющей микрокоманде содержится код проверяемого
осведомительного сигнала (код логического условия) и адрес следующей микрокоманды при выполнении условия. При невыполнении условия адрес следующей микрокоманды образуется инкрементированием текущей микрокоманды.
При принудительной адресации в каждой микрокоманде содержится операционная и адресная части. Если микрокоманда не изменяет линейного порядка микрокоманд, то в операционной части указаны микрооперации, а в адресной части микрокоманды поле логических условий пусто и указан только один адрес следующей микрокоманды. Если микрокоманда изменяет линейный порядок микрокоманд, то наряду с микрооперациями в поле логических условий содержится проверяемое значение осведомительного сигнала и указываются два адреса.
3.3 Список микроопераций
Обозн. |
Микрооперация |
Управляющие сигналы |
|
1 |
СчК: = 0 |
||
2 |
СчК: = СчК + 1 |
СчКом: "+1"="1" |
|
3 |
ШД_32: = ОЗУ (чтение) |
ОЗУ: Read="1" |
|
4 |
RgКом: = ШД_32 |
RgКОП, RgDD, RgSS: С="1" |
|
5 |
ПЗУ точек входа: = RgDD |
||
6 |
Предустановка Сч_МО |
Сч_МО: ПУ="1" |
|
7 |
Выдача данных из RgDD |
RgDD: Z="1" |
|
8 |
Выдача данных из RgSS |
RgSS: Z="1" |
|
9 |
Дешифрация ДшЗапРОН |
ДшЗапРОН: С="1" |
|
10 |
Дешифрация ДшЧтРОН |
ДшЧтРОН: С="1" |
|
11 |
ШД/ША_16: = RgSI |
RgSI: Z="1" |
|
12 |
Rg1_СМ: = ШД/ША_16 |
Rg1_СМ: С="1" |
|
13 |
Rg2_СМ: = ШД/ША_16 |
Rg2_СМ: С="1" |
|
14 |
Синхронизация СМ |
СМ: С="1" |
|
15 |
ШД/ША_16: = BF_СМ |
BF_СМ: С="1" |
|
16 |
ШД/ША_16: = RgDI |
RgDI: Z="1" |
|
17 |
ОЗУ: = ШД_32 (запись) |
ОЗУ: Write="1" |
|
18 |
Rg1_АЛУ: = ШД_32 |
Rg1_АЛУ: С="1" |
|
19 |
Rg2_АЛУ: = ШД_32 |
Rg2_АЛУ: С="1" |
|
20 |
Синхрон. АЛУ |
АЛУ: С="1" |
|
21 |
Предустановка СчКом |
СчКом: ПУ="1" |
|
22 |
FL: =РгСОЛО |
РгСОЛО: С="1" |
|
23 |
ШД_32: = BF_АЛУ |
BF_АЛУ: С="1" |
3.4 Разбиение микроопераций на группы (микрокоманды)
Все выше перечисленные микрооперации можно разбить на группы, называемые микрокомандами. Микрокоманды позволяют выполнять за 1 такт несколько независимых друг от друга микроопераций. Исходя из схемы проектируемой микро-ЭВМ видно, что максимальное число микроопераций, которые могут выполняться независимо друг от друга - 4. Следовательно, разбиваем множество микроопераций на 4 группы:
Код |
1 группа |
2 группа |
3 группа |
4 группа |
|
001 |
RgКом: = ШД_32 |
ШД/ША_16: = RgSI |
Rg1_СМ: = ШД/ША_16 |
||
010 |
ПЗУ точек входа: = RgDD |
Предустановка Сч_МО |
Синхронизация СМ; |
ШД/ША_16: = BF_СМ; |
|
011 |
Выдача данных из RgDD |
Выдача данных из RgSS |
Дешифрация ДшЗапРОН |
Дешифрация ДшЧтРОН |
|
100 |
ОЗУ: = ШД_32 (запись) |
Синхрон. АЛУ |
СчК: = СчК + 1 |
ШД/ША_16: = RgDI; |
|
101 |
FL: =РгСОЛО |
Rg1_АЛУ: = ШД_32 |
Предустановка СчКом |
ШД_32: = BF_АЛУ |
|
110 |
Rg2_АЛУ: = ШД_32 |
СчК: = 0 |
Rg2_СМ: = ШД/ША_16; |
ШД_32: = ОЗУ (чтение) |
В каждой группе формируется своя нумерация микроопераций, которая будет использоваться при прошивке ПЗУ.
Код |
Условие |
|
000 |
СА = 00 |
|
001 |
СА = 01 |
|
010 |
СА = 10 |
|
011 |
ZF=0 SF=1 |
|
100 |
ZF=1 SF=0 |
|
101 |
Безусловный переход |
3.5 Формат микрокоманд
В курсовом проекте использовалось три типа микрокоманд: команды условного и безусловного переходов и операционные команды. Прошивка микрокоманд в ПЗУ осуществлена горизонтально-вертикальным способом кодирования с естественной адресацией.
Общий формат микрокоманды:
Признак микрокоманды |
КОП1 |
КОП2 |
КОП3 |
КОП4 |
Бит выбора 1 |
Бит выбора 2 |
|
1 бит |
3 бита |
3 бита |
3 бита |
3 бита |
1 бит |
1 бит |
Длина микрокоманды составляет 13 бит. При использовании операционных команд признак микрокоманды устанавливается равным "0".
При использовании команд условного и безусловного переходов надо отметить, что:
- признак микрокоманды устанавливается равным "1";
- КОП1 содержит код проверяемого условия;
- КОП2 и КОП3 "объединяются" и содержат адрес перехода на метку в случае
выполнения условия (или без условия);
КОП4 не используется.
Если условие не выполняется, то соответственно переход на метку не происходит.
4. Граф-схемы выполнения операций
4.1 Граф-схема подготовительных операций - операций выборки команд из ОЗУ
4.2 Граф-схема алгоритма команды MOV
4.3 Граф-схема алгоритмов команд MUL,ADD
4.4 Граф-схема алгоритма команды INC
4.5 Граф-схема алгоритма команды JNE
4.6 Граф-схема алгоритма команды CMP
Команда END не имеет граф-схемы, поскольку она реализуется аппаратно - при обнаружении кода END останавливается ГТИ.
5. Прошивка ПЗУ микрокоманд
5.1 Прошивка ПЗУ микрокоманд
# |
Адрес |
Код |
Примечание |
|
0 |
000000 |
1'101'000'011'000'0'0 |
Безусловный переход |
|
1 |
000001 |
0'000'110'000'000'0'0 |
СчК=0 |
|
2 |
000010 |
0'000'000'100'000'0'0 |
СМ"0" - true |
|
3 |
000011 |
0'001'001'000'000'0'0 |
||
4 |
000100 |
0'010'010'000'000'0'0 |
||
5 |
000101 |
1'000'011'010'000'0'0 |
Точка входа MOV, if - СА=000 |
|
6 |
000110 |
1'001'011'000'000'0'0 |
if - СА=001 |
|
7 |
000111 |
1'010'010'000'000'0'0 |
if - СА=010 |
|
8 |
001000 |
0'000'000'001'001'0'0 |
СА=011 - false |
|
9 |
001001 |
0'011'000'110'000'0'0 |
||
10 |
001010 |
0'000'000'010'010'0'0 |
||
11 |
001011 |
0'000'000'000'001'0'0 |
||
12 |
001100 |
0'000'000'110'100'0'0 |
||
13 |
001101 |
0'000'000'010'010'0'0 |
||
14 |
001110 |
0'100'011'011'000'0'0 |
||
15 |
001111 |
1'101'000'010'000'0'0 |
Возврат к 000010 |
|
16 |
010000 |
0'000'000'001'001'0'0 |
СА=010 - true |
|
17 |
010001 |
0'000'011'110'000'0'0 |
||
18 |
010010 |
0'000'000'010'010'0'0 |
||
19 |
010011 |
0'000'000'000'001'0'0 |
||
20 |
010100 |
0'000'000'110'100'0'0 |
||
21 |
010101 |
0'000'000'010'010'0'0 |
||
22 |
010110 |
0'011'000'011'110'0'0 |
||
23 |
010111 |
1'101'000'010'000'0'0 |
Возврат к 000010 |
|
24 |
011000 |
0'011'011'011'011'0'0 |
СА=001 - true |
|
25 |
011001 |
1'101'000'010'000'0'0 |
Возврат к 000010 |
|
26 |
011010 |
0'011'011'011'000'0'0 |
СА=000 - true |
|
27 |
011011 |
1'101'000'010'000'0'0 |
Возврат к 000010 |
|
28 |
011100 |
0'011'101'000'011'0'0 |
Точка входа MUL |
|
29 |
011101 |
0'110'011'000'011'0'0 |
||
30 |
011110 |
0'011'100'011'101'1'0 |
||
31 |
011111 |
1'101'000'010'000'0'0 |
Возврат к 000010 |
|
32 |
100000 |
0'011'101'000'011'0'0 |
Точка входа ADD |
|
33 |
100001 |
0'110'011'000'011'0'0 |
||
34 |
100010 |
0'011'100'011'101'0'1 |
||
35 |
100011 |
1'101'000'010'000'0'0 |
Возврат к 000010 |
|
36 |
100100 |
0'011'000'000'011'0'0 |
Точка входа INC |
|
37 |
100101 |
0'000'000'110'000'0'0 |
||
38 |
100110 |
0'011'000'011'010'0'0 |
||
39 |
100111 |
1'101'000'010'000'0'0 |
Возврат к 000010 |
|
40 |
101000 |
1'011'101'011'000'0'0 |
Точка входа JNE, if - FL=10 |
|
41 |
101001 |
1'100'101'011'000'0'0 |
if - FL=10 |
|
42 |
101010 |
1'101'000'010'000'0'0 |
if - FL=10 - false, Возврат к 000010 |
|
43 |
101011 |
0'000'011'101'000'0'0 |
||
44 |
101100 |
1'101'000'011'000'0'0 |
Возврат к 000011 |
|
45 |
101101 |
0'010'101'000'011'0'0 |
Точка входа CMP |
|
46 |
101110 |
0'110'011'000'011'0'0 |
||
47 |
101111 |
0'101'100'000'101'0'0 |
||
48 |
110000 |
1'101'000'010'000'0'0 |
Возврат к 000010 |
5.2 Прошивка ПЗУ точек входа
Команда |
Код |
Адрес точки входа |
|
MOV |
000 |
000101 |
|
MUL |
001 |
011100 |
|
ADD |
010 |
100000 |
|
INC |
011 |
100100 |
|
CMP |
100 |
101101 |
|
JNE |
101 |
101000 |
6. Разработка принципиальной схемы
При разработке принципиальной схемы были выбраны микросхемы серий К555 и КМ555 на основе ТТЛШ технологии. Серии К555 и КМ555 обладают достаточно широкой элементной базой, исходя из которой, можно реализовать практически все узлы разрабатываемой микро-ЭВМ.
Задержки распространения сигнала всех используемых микросхем в наносекундах представлены в таблице 6.
Длительность машинного такта равняется одному периоду синхроимпульсов. За один машинный такт может выполняться одновременно несколько микроопераций (т.е. одна микрокоманда). Поэтому для того, чтобы определить минимальную длительность синхросигнала, необходимо определить максимальное время одновременного выполнения микроопераций (или одной микрокоманды) за один машинный такт, которое определяется задержками распространения сигнала на микросхемах, участвующих при выполнении этих микроопераций.
Таблица 6. Временные задержки на микросхемах
Тип |
t, нс |
Примечание |
|
К555ИР23 |
40 |
Регистр |
|
К555РЕ4 |
85 |
ПЗУ (ROM) |
|
К555МРУ9А |
35 |
ОЗУ (RAM) |
|
К555ИМ6 |
24 |
Сумматор (SM) |
|
К555ИД10 |
50 |
Дешифратор (DC) |
|
К555ИР38 |
45 |
BF |
|
К555ИЕ13 |
50 |
Счетчик (CT2) |
|
К555КП16 |
27 |
Мультиплексор (MX) |
|
К555ЛЕ3 |
15 |
2 - 4 ИЛИ - НЕ |
|
К555ЛЕ 4 |
12 |
3 - 3 - ИЛИ |
|
К555ЛИ 3 |
15 |
3 - 3И |
|
К555ЛН 2 |
17 |
6 - НЕ |
|
К555ТР 2 |
18 |
4 R-S триггера |
|
К555ИП3 |
62 |
АЛУ |
Таким образом, подсчитав время выполнения самой длинной микрокоманды, а в нашем случае это выполнение микрокоманды при выполнении арифметической команды MUL. Эта микрокоманда состоит из 4-х микроопераций: синхронизация АЛУ, чтение буфера АЛУ, выдача данных из регистра команд и дешифрация ДшЗапРОН.
Таким образом общее время выполнения микрокоманды будет следующим: 62+45+40+50 = 197 нс.
Подсчитав максимальное время задержки в схеме tmax = 197 нс можно определить максимальную частоту генератора тактовых импульсов (ГТИ):
= 1/197нс = 5 МГц
Требуемый объём ПЗУ микрокоманд: E = 48 * 13 = 624 бит.
Заключение
В данном курсовом проекте при разработке блока микропрограммного управления использовался автомат на микропрограммном управлении. Использование раздельной шины адреса и шины данных привело к увеличению быстродействия микро-ЭВМ.
К выполненному проекту прилагается программа моделирования работы микро-ЭВМ.
Список использованной литературы
Майоров С.А., Кириллов В.В., Приблуда А.А., "Введение в микроЭВМ", Л.: Машиностроение, 1988.
Шульгин О.А. и др., "Справочник по цифровым логическим микросхемам", часть 1 и 2, М.: ИДДК, 1998.
Нефедов А.В., "Интегральные микросхемы и их зарубежные аналоги", справочник, М.: КубК-а, 1996.
Мячев и др. "Персональные ЭВМ и микро-ЭВМ", М.: Высшая школа, 1989.
Пильщиков В.Н., "Программирование на языке Ассемблера IBM PC", М.: "Диалог-МИФИ", 1998.
Приложения
Поз. обозначение |
Наименование |
Кол. |
Примечание |
|
Конденсаторы |
||||
С1, С3, С5 |
К50-6-1000мкФ*16B |
3 |
||
С2, С4, С6 |
К10-17-10нФ*25В |
3 |
||
Микросхемы |
||||
DD1-DD20, DD41-DD43, DD54, DD55, |
К555ИР23 |
30 |
Регистр |
|
DD58, DD83-DD94 |
||||
DD48-DD51, DD67, DD68 |
К555РЕ4 |
6 |
ПЗУ (ROM) |
|
DD59-DD62 |
К555МРУ9А |
4 |
ОЗУ (RAM) |
|
DD56, DD57 |
К555ИМ6 |
2 |
Сумматор (SM) |
|
DD13, DD14, DD72-DD75 |
К555ИД10 |
6 |
Дешифратор (DC) |
|
DD25-DD32, DD63-DD66 |
К555И38 |
12 |
Буфер (BF) |
|
DD52, DD53, DD70, DD71 |
К555ИЕ13 |
7 |
Счетчик (CT2) |
|
DD69 |
К555КП16 |
1 |
Мультиплексор (MX) |
|
DD78 |
К555ЛЕ3 |
1 |
2 - 4 ИЛИ - НЕ |
|
DD79 |
К555ЛЕ4 |
1 |
3 - 3 - ИЛИ |
|
DD80, DD82 |
К555ЛИ3 |
1 |
3 - 3И |
|
DD81 |
К555ЛН2 |
2 |
6 - НЕ |
|
DD47 |
К555ТР2 |
1 |
4 R-S триггера |
|
К555ИП3 |
8 |
АЛУ |
Принципиальная схема
Структурная схема
Размещено на Allbest.ru
Подобные документы
Распределение шин интерфейса, их связь с внешней системой, выбор алгоритмов арифметических и логических операций. Построение структурной схемы микро-ЭВМ, определение формата микрокоманд, составление таблиц соответствия двоичного и символьного кодирований.
курсовая работа [1,6 M], добавлен 05.06.2013Разработка различных программ для вычисления X и Y по формуле, для вычисления интеграла, для вычисления таблицы значений функции и для вычисления элементов вектора. Составление блок-схемы программы. Ввод значений, описание переменных и условия расчета.
контрольная работа [148,1 K], добавлен 08.11.2013Анализ двоичной, восьмеричной и шестнадцатеричной систем счисления и перевода десятичных чисел. Форматы хранения чисел с плавающей точкой. Программа для преобразования массива констант в формат числа с плавающей точкой на эмуляторе микро-ЭВМ СМ-1800.
курсовая работа [266,9 K], добавлен 24.12.2013Понятие определителя матрицы, математические и алгоритмические основы его расчета, функциональные модели, блок-схемы и программная реализация. Сущность метода Гаусса для решения систем линейных алгебраических уравнений и вычисления определителя матрицы.
контрольная работа [455,2 K], добавлен 18.01.2010Разработка линейной программы на языке С++. Разработка программ с разветвленной структурой. Составление по заданному варианту схемы алгоритма и программы вычисления тригонометрической функции с абсолютной погрешностью с использованием разложения в ряд.
лабораторная работа [1,2 M], добавлен 12.01.2011Разработка структурной схемы устройства управления учебным роботом. Выбор двигателя, микроконтроллера, микросхемы, интерфейса связи и стабилизатора. Расчет схемы электрической принципиальной. Разработка сборочного чертежа устройства и алгоритма программы.
курсовая работа [577,8 K], добавлен 24.06.2013Характеристика основных способов вычисления определителя матрицы с помощью языка программирования СИ. Выбор инструментальных и аппаратных средств, его обоснование. Общая структура и принцип действия программного модуля, описание блок-схем алгоритмов.
курсовая работа [262,4 K], добавлен 08.06.2010Принципы разработки математических моделей, алгоритмов и программ. Составление программы вычисления функции с использованием нестандартных функций. Нахождение значения корней нелинейного уравнения по методу касательных. Программа для вычисления интеграла.
курсовая работа [568,3 K], добавлен 07.03.2015Разработка программы для нахождения минимального и максимального элемента массива, вычисления среднего арифметического строк и столбцов транспортирования матриц. Характеристика основных программных средств. Описание программы, руководство пользователя.
курсовая работа [2,4 M], добавлен 26.04.2015Функциональный состав микро-ЭВМ, разработка системы команд. Описание взаимодействия всех блоков электронно-вычислительной машины при выполнении команд программы. Арифметико-логическое устройство, кэш-память процессора, функциональное моделирование.
курсовая работа [981,4 K], добавлен 27.05.2013