Автор работы: Пользователь скрыл имя, 18 Мая 2015 в 13:29, курсовая работа
Проектированиекомпьютеров специального назначения является одной из важнейших задач, стоящих перед разработчиками цифровой аппаратуры. Основное назначение спецкомпьютеров – это отработка определенного класса алгоритмов в некоторой заданной проблемно-ориентированной области. В частности, большой класс вычислительных систем используется в блоках управления механическими подвижными платформами в целях коррекции их траектории движения. Эффективность решения нетривиальных задач при этом во многом зависит от качества бортовых компьютеров и их программного обеспечения, входящих в состав управляемых объектов.
ВВЕДЕНИЕ3
1. РАЗРАБОТКА АРХИТЕКТУРЫ СПЕЦИАЛИЗИРОВАННОГО
КОМПЬЮТЕРА6
1.1. Анализ известных реализаций спецкомпьютеров, формирование
требований к разрабатываемому компьютеру6
1.2. Исследование арифметической функции, решаемой
специализированным компьютером8
1.3. Проектирование системы команд12
1.4. Проектирование ЗУ микрокомпьютера 19
1.5. Разработка обобщенной структуры микроЭВМ на основе системы команд 23
2. ПРОЕКТИРОВАНИЕ ОСНОВНЫХ СТРУКТУРНЫХ КОМПОНЕНТОВ
СХЕМЫКОМПЬЮТЕРА28
2.1. Разработка схемы блока обработки данных28
2.2. Разработка устройства управления32
2.3. Разработка системы ввода-вывода данных35
3. ПРОЕКТИРОВАНИЕ ВНУТРЕННЕГО ИНТЕРФЕЙСА КОМПЬЮТЕРА39
3.1. Включение системы прерываний в схему устройства управления
спецкомпьютера39
3.2. Проектирование системы прямого доступа к памяти40
4. РАЗРАБОТКА МИКРОПРОГРАММНОГО ОБЕСПЕЧЕНИЯ42
4.1. Формат микрокоманды. Микропрограммная интерпретация команд
компьютера42
4.2. Разработка микропрограмм арифметических операций51
4.3. Разработка служебного микропрограммного обеспечения53
ЗАКЛЮЧЕНИЕ59
ЛИТЕРАТУРА60
Для расчета погрешности выполним суммирование членов ряда в табл. 1.2 в соответствии с ростом номеров i в табл. 1.3.
Таблица 1.3.
x\i |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
0,5 |
0,625 |
0,6667 |
0,6823 |
0,6885 |
0,6911 |
0,6923 |
0,6928 |
0,693 |
3 |
0,6667 |
0,8889 |
0,9877 |
1,037 |
1,0634 |
1,078 |
1,0864 |
1,0912 |
1,0941 |
4 |
0,75 |
1,0313 |
1,1719 |
1,251 |
1,2984 |
1,3281 |
1,3472 |
1,3597 |
1,368 |
5 |
0,8 |
1,12 |
1,2907 |
1,3931 |
1,4586 |
1,5023 |
1,5323 |
1,5532 |
1,5681 |
6 |
0,8333 |
1,1806 |
1,3735 |
1,494 |
1,5744 |
1,6302 |
1,6701 |
1,6992 |
1,7207 |
7 |
0,8571 |
1,2245 |
1,4344 |
1,5693 |
1,6619 |
1,728 |
1,7765 |
1,813 |
1,8407 |
8 |
0,875 |
1,2578 |
1,4811 |
1,6277 |
1,7302 |
1,805 |
1,8611 |
1,9041 |
1,9375 |
9 |
0,8889 |
1,284 |
1,5181 |
1,6741 |
1,7851 |
1,8673 |
1,93 |
1,9787 |
2,0172 |
10 |
0,9 |
1,305 |
1,548 |
1,712 |
1,8301 |
1,9187 |
1,987 |
2,0408 |
2,0839 |
Из формата компьютерного слова следует, что максимальное значение функции с учетом разрядности мантиссы М=18 и порядка Р=15 определится формулой:
218-1= 262 143
xmax=0, 262143·215= 8589,901824 (1.3)
Данному значению функции соответствует максимальное численное значение аргумента ymax=20,396 (по условиям задачи оставляем xmax=10).
Минимальное значение будет определяться единичным битом в младшем разряде мантиссы с учетом порядка:
xmin=-1·2-18·2-15=-1·2-23.
Расчеты по формуле (1.1) показывают, что значению функции (1.3), соответствует максимальное значение i=27.
Следует, однако, заметить, что процесс расчета 27-х членов ряда задача длительная и не всегда обоснованная. В связи с этим предположим, что допустимая погрешность вычислений равна . Тогда для аргумента x можно записать соотношение:
(1.5)
На основании ряда (1.1) при x=2 имеем:
0,5+0,125+0,0417+0,0156+…
Таким образом, ввод данных в спецкомпьютер должен сопровождаться обращением к служебной таблице 1.3 с определением числа вычислительных циклов, необходимых для расчета функции ln(x) для конкретного x. В простейшем случае число членов ряда выбирается равным 27.
Тогда по формуле (1.5) найдем ряд погрешностей для значений i лежащих в интервале [0;10] и занесём значения в таблицу1.4.
Таблица 1.4.
x\sum |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
0,1 |
-0,9000 |
-1,3050 |
-1,5480 |
-1,7120 |
-1,8301 |
-1,9187 |
-1,9870 |
-2,0408 |
0,2 |
-0,8000 |
-1,1200 |
-1,2907 |
-1,3931 |
-1,4586 |
-1,5023 |
-1,5323 |
-1,5532 |
0,3 |
-0,7000 |
-0,9450 |
-1,0593 |
-1,1194 |
-1,1530 |
-1,1726 |
-1,1843 |
-1,1916 |
0,4 |
-0,6000 |
-0,7800 |
-0,8520 |
-0,8844 |
-0,9000 |
-0,9077 |
-0,9117 |
-0,9138 |
0,5 |
-0,5000 |
-0,6250 |
-0,6667 |
-0,6823 |
-0,6885 |
-0,6911 |
-0,6923 |
-0,6928 |
0,6 |
-0,4000 |
-0,4800 |
-0,5013 |
-0,5077 |
-0,5098 |
-0,5105 |
-0,5107 |
-0,5108 |
0,7 |
-0,3000 |
-0,3450 |
-0,3540 |
-0,3560 |
-0,3565 |
-0,3566 |
-0,3567 |
-0,3567 |
0,8 |
-0,2000 |
-0,2200 |
-0,2227 |
-0,2231 |
-0,2231 |
-0,2231 |
-0,2231 |
-0,2231 |
0,9 |
-0,1000 |
-0,1050 |
-0,1053 |
-0,1054 |
-0,1054 |
-0,1054 |
-0,1054 |
-0,1054 |
1,0 |
0,0000 |
0,0000 |
0,0000 |
0,0000 |
0,0000 |
0,0000 |
0,0000 |
0,0000 |
1,1 |
0,1000 |
0,0950 |
0,0953 |
0,0953 |
0,0953 |
0,0953 |
0,0953 |
0,0953 |
1,2 |
0,2000 |
0,1800 |
0,1827 |
0,1823 |
0,1823 |
0,1823 |
0,1823 |
0,1823 |
1,3 |
0,3000 |
0,2550 |
0,2640 |
0,2620 |
0,2625 |
0,2623 |
0,2624 |
0,2624 |
1,4 |
0,4000 |
0,3200 |
0,3413 |
0,3349 |
0,3370 |
0,3363 |
0,3365 |
0,3365 |
1,5 |
0,5000 |
0,3750 |
0,4167 |
0,4010 |
0,4073 |
0,4047 |
0,4058 |
0,4053 |
1,6 |
0,6000 |
0,4200 |
0,4920 |
0,4596 |
0,4752 |
0,4674 |
0,4714 |
0,4693 |
1,7 |
0,7000 |
0,4550 |
0,5693 |
0,5093 |
0,5429 |
0,5233 |
0,5351 |
0,5279 |
1,8 |
0,8000 |
0,4800 |
0,6507 |
0,5483 |
0,6138 |
0,5701 |
0,6001 |
0,5791 |
1,9 |
0,9000 |
0,4950 |
0,7380 |
0,5740 |
0,6921 |
0,6035 |
0,6718 |
0,6180 |
2,0 |
1,0000 |
0,5000 |
0,8333 |
0,5833 |
0,7833 |
0,6167 |
0,7595 |
0,6345 |
Итак, исходя из данных таблицы 1.4 следует, что заданный уровень погрешности вычислений при x=2 не превышается, если расчет функции осуществляется на основании 6 членов ряда.
Погрешность, вносимая ограниченностью разрядной сетки (с учетом бесконечной длины значения функции), будет определяться разностью между эталонным значением ln(x), в нашем случае равным ln(10), и значением, размещаемым в 24-разрядной сетке компьютера:
Из (1.7) следует, что, то есть может не учитываться как погрешность для данного класса функций.
В целом, для решения каждой конкретной задачи может быть использовано несколько схем расчета. При этом для каждого алгоритма определяется точность представления результатов и максимальное время вычисления наиболее неблагоприятного параметра. Предпочтение конкретному способу решения задачи отдается в зависимости от поставленной цели управления.
№ |
Команда |
Операнды |
1 |
MOV |
Ri, M |
2 |
MUL |
Ri, Rj |
3 |
DIV |
Ri, Rj |
4 |
SUM |
Ri, Rj |
5 |
SUB |
Ri, Rj |
6 |
INC |
Ri |
7 |
JNZ |
метка |
8 |
JMP |
метка |
Способ адресации |
Команда Move | |||||
прямая |
память – регистр Ri | |||||
относительная |
память (через регистр базы и смещение) – регистр Ri | |||||
непосредственная |
константа – регистр Ri | |||||
регистровая |
регистр Ri – регистр Rj |
Способ адресации |
Команда Div | |||||
прямая |
Дм в регистре Ri – Дт в памяти | |||||
относительная |
Дм в регистре Ri – Дт в памяти (через регистр базы и смещение) | |||||
непосредственная |
Дм в регистре Ri – Дт задаётся явно | |||||
автоинкремент |
Дм в регистре Ri – Дт в памяти (автоинкр. через Rj) | |||||
регистровая |
Дм в регистре Ri – Дт в регистре Rj |
Способ адресации |
Команда Inc | |||
регистровая |
Инкрементируется содержимое регистра Ri |
Способ адресации |
Команды Jz (Jg, Jl) метка Jz – переход, если результат операции равен нулю, Jg– результат больше нуля, Jl – меньше нуля | ||||
прямая |
Условный переход по адресу, хранящемуся в памяти | ||||
относительная |
Условный переход по адресу, хранящемуся в памяти (через регистр базы и смещение) | ||||
непосредственная |
Условный переход по адресу, задаваемому явно |