Специализированный компьютер
Министерство образования Республики Беларусь
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра: электронных вычислительных машин
Факультет: компьютерных систем и сетей
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту по дисциплине
«Структурная и функциональная организация ЭВМ»
на тему:
«Специализированный компьютер»
Выполнил: Студент гр. 000502 Гладких А.А. |
Руководитель проекта: Кобяк И.П. |
Минск, 2014
СОДЕРЖАНИЕ
ВВЕДЕНИЕ3
1. РАЗРАБОТКА АРХИТЕКТУРЫ СПЕЦИАЛИЗИРОВАННОГО
КОМПЬЮТЕРА6
1.1. Анализ известных реализаций спецкомпьютеров, формирование
требований к
1.2. Исследование арифметической функции, решаемой
специализированным
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.1.
Рис. 1.1. Модель компьютера с шинной организацией
Рассмотрим назначение каждого из блоков в данной модели.
Устройство управления (УУ) предназначено для управления всеми блоками компьютера путем посылки сигналов, предписывающих те или иные действия. УУ используется для автоматической работы компьютера и указывает на:
- функцию, выполняемую АЛУ
- источники информации для АЛУ
- приемники результатов, полученных в ходе вычислений
Арифметико-логическое устройство (АЛУ) предназначено для выполнения арифметических операций, представленных в формате с плавающей запятой или фиксированной запятой. Кроме данных, АЛУ может обрабатывать адресную информацию (формирование исполнительного адреса), команды (преобразование форматов), признаки (перенос, нулевой результат, переполнение, знаковый разряд и т.д.).
Оперативное запоминающее устройство (ОЗУ) предназначено для хранения программ, результатов промежуточных расчетов и другой информации. ОЗУ состоит из ячеек, в каждой из которых хранится машинное слова. Основными характеристиками ОЗУ являются емкость и время обращения.
Устройства ввода-вывода (УВВ) предназначены для связи компьютера с внешними (периферийными) устройствами. Устройство ввода обеспечивает считывание информации с внешних носителей и представление ее в форме, понятной компьютеру. Устройство вывода преобразует информацию, хранящуюся в компьютере, в форму для взаимодействия с внешней средой или человеком.
Кроме перечисленных блоков в состав компьютера может входить система прямого доступа к памяти (ПДП) и система прерываний.
Система ПДП позволяет осуществить обмен данными между памятью и периферийным устройством без участия центрального процессора, что позволяет увеличить производительность компьютера.
Система прерываний предназначена для получения специальных сигналов от внешних устройств или внутренних блоков, которые временно прерывают выполнение текущей пользовательской программы и обрабатываются специальным образом. Например, при использовании системы ПДП процессор должен узнать, когда завершится передача данных. Тогда срабатывает соответствующий сигнал и запускается подпрограмма, обрабатывающая это событие.
В рамках данного курсового проекта при разработке специализированного компьютера предполагается реализация рассмотренной модели (рис. 1.1). В качестве базовых микросхем используются микросхемы серии К1804. Проектируемый компьютер должен иметь разрядность 24 бит, данные представляются в форме с плавающей запятой в обратном коде. Также необходимо реализовать подсистемы памяти, ввода-вывода, прерываний и прямого доступа к памяти. Полный список требований к разрабатываемому компьютеру приведен в таблице 1.1.
Таблица 1.1.
Параметр |
Значение |
Разрядность |
24 |
Представления данных |
Обратный код |
Способы адресации |
Прямая Непосредственная Автоинкрементная Относительная |
Емкость ОЗУ |
960 Кбайт |
Тип ОЗУ |
565РУ7 |
БИС блока обработки данных |
1804ВС1 |
БИС ПЗУ микрокоманд |
556РТ14 |
БИС блока микропрограммного управления |
1804ВУ1 |
Порты ввода-вывода |
1804ИР3 8\8 |
Система прерываний (уровень/источник) |
2\8-11 |
Ширина канала ПДП |
512 слов |
Арифметическая операция |
ln(x), xi=sum ai |
Тест ОЗУ |
Обращение по прямому и дополняющему адресам |
- Исследование арифметической функции, решаемой специализированным компьютером
Требуется разработать алгоритм и программу для определения значений функции . Для решения поставленной задачи на первом этапе построим график соответствующий заданному соотношению, рисунок 1.2., и определим максимальное и минимальное значения функции, а также диапазон изменения аргумента.
Теоретически диапазон изменения аргумента лежит в пределах, при этом граничные значения функции будут равны:.
Для расчетов конкретных значенийиспользуем разложение в ряд Тейлора вида:
(1.1.)
Анализ соотношения (1.1.) показывает, что одному значению функции соответствует бесконечное число членов ряда. Выбор же числа членов для расчета при заданном определяется с учетом двух практических ограничений:
1) с учетом точности
2) допустимой длительностью
Рис. 1.2. График функции
Для простоты будем считать, что общая ошибка вычислений в системе управления обуславливается двумя погрешностями: первая из них следует из ограничений на число членов в разложении в ряд Тейлора, вторая определяется ограничениями разрядной сетки.
Определим теперь разрядность сетки спецкомпьютера равной 24 разрядам, и будем считать, что числа в памяти представлены в обратном коде с плавающей запятой. Тогда формат машинного слова будет иметь вид, показанный на рисунке 1.3.
23 22
± |
М-мантисса |
± |
Р-порядок |
Зн. 18 разрядов Зн. 4 разряда
Рис. 1.3. Формат машинного слова
При расчете разрядности порядка из общей длины 24 разрядного слова вычитается один разряд на знак мантиссы и один разряд на знак порядка. После этого рассчитывается функция:
log222 = 4 (1.2)
Исследуем далее закон изменения общего члена ряда (1.1.) при различных значениях аргумента. Поставленной задаче будут соответствовать следующие табличные величины таблицы 1.2.
Таблица 1.2.
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,125 |
0,0417 |
0,0156 |
0,0063 |
0,0026 |
0,0011 |
0,0005 |
0,0002 |
3 |
0,6667 |
0,2222 |
0,0988 |
0,0494 |
0,0263 |
0,0146 |
0,0084 |
0,0049 |
0,0029 |
4 |
0,75 |
0,2813 |
0,1406 |
0,0791 |
0,0475 |
0,0297 |
0,0191 |
0,0125 |
0,0083 |
5 |
0,8 |
0,32 |
0,1707 |
0,1024 |
0,0655 |
0,0437 |
0,03 |
0,021 |
0,0149 |
6 |
0,8333 |
0,3472 |
0,1929 |
0,1206 |
0,0804 |
0,0558 |
0,0399 |
0,0291 |
0,0215 |
7 |
0,8571 |
0,3673 |
0,2099 |
0,1349 |
0,0925 |
0,0661 |
0,0486 |
0,0364 |
0,0277 |
8 |
0,875 |
0,3828 |
0,2233 |
0,1465 |
0,1026 |
0,0748 |
0,0561 |
0,043 |
0,0334 |
9 |
0,8889 |
0,3951 |
0,2341 |
0,1561 |
0,111 |
0,0822 |
0,0626 |
0,0487 |
0,0385 |
10 |
0,9 |
0,405 |
0,243 |
0,164 |
0,1181 |
0,0886 |
0,0683 |
0,0538 |
0,043 |
Для расчета погрешности выполним суммирование членов ряда в табл. 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) следует, что, то есть может не учитываться как погрешность для данного класса функций.
В целом, для решения каждой конкретной задачи может быть использовано несколько схем расчета. При этом для каждого алгоритма определяется точность представления результатов и максимальное время вычисления наиболее неблагоприятного параметра. Предпочтение конкретному способу решения задачи отдается в зависимости от поставленной цели управления.
- Проектирование системы команд
Анализ параметров алгоритмов, как правило, выполняется с использование языковых и программных средств. С этой целью каждой вершине ГСА решаемой задачи ставится в соответствие команда машины. После этого выполняется расширение набора команд с использованием заданных методов адресации и варьирования поля КОП. Полученная система дополняется командами управления работой компьютера, командами ввода-вывода и другими управляющими словами, позволяющими получить требуемые режимы работы компьютера.
Рассмотрим блок-схему алгоритма расчета функции ln(x) в соответствии с формулой (1.1) рис. 1.4. и исследуем методику решения поставленной задачи.
Основной недостаток алгоритма состоит в длительном формировании результата с учетом повторных вычислений операции возведения в степень xy. Выполним модернизацию алгоритма и избавимся от операции возведения в степень xy. Система команд устанавливается путем расстановки возле каждой вершины ГСА мнемонического обозначения команды. Модифицированная ГСА представлена на рисунке 1.5.
В полученной выше граф-схеме удалось избежать долговременных повторных вычислений в команде возведения в степень и заменить её на умножение с накоплением. Общая таблица команд для вычисления ln(x) при этом принимает вид таблицы 1.5.
Рис. 1.4. Блок-схема алгоритма расчета функции ln(x)
№ |
Команда |
Операнды |
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 |
метка |
Рис. 1.5. Блок-схема модернизированного алгоритма расчёта функции ln(x)
Для контроля функционирования ОЗУ требуется реализовать служебное программное обеспечение – тест ОЗУ. Заданный в данном курсовом проекте алгоритм теста ОЗУ «Обращение по прямому и дополняющему адресам»является линейным и используется, как правило, для предварительной оценки ОЗУ на отсутствие катастрофических неисправностей.
Полная блок-схема алгоритма теста ОЗУ «Обращение по прямому и дополняющему адресам» выглядит следующим образом (рис. 1.6.).
Итак, базовая система команд без учета команд служебного и специального ПО будет содержать 8 управляющих слов.
Рис. 1.6. Блок-схема алгоритма теста ОЗУ «Обращение по прямому и дополняющему адресам»
Расширим систему команд за счет некоторых команд условного перехода (Jg, Jl), а также способов адресации операндов:
прямая адресация,
непосредственная адресация,
автоинкрементная адресация,
относительная адресация.
Таблица 1.6.
Способ адресации |
Команда Move | |||||
прямая |
память – регистр Ri | |||||
относительная |
память (через регистр базы и смещение) – регистр Ri | |||||
непосредственная |
константа – регистр Ri | |||||
регистровая |
регистр Ri – регистр Rj |
Таблица 1.7.
Способ адресации |
Команда Div | |||||
прямая |
Дм в регистре Ri – Дт в памяти | |||||
относительная |
Дм в регистре Ri – Дт в памяти (через регистр базы и смещение) | |||||
непосредственная |
Дм в регистре Ri – Дт задаётся явно | |||||
автоинкремент |
Дм в регистре Ri – Дт в памяти (автоинкр. через Rj) | |||||
регистровая |
Дм в регистре Ri – Дт в регистре Rj |
Форматы команд Mul, Sum, Sub аналогичны Div.
В приведенных форматах команд имеет место следующая интерпретация полей: КОП – поле кода операции базовой команды; mod – модификатор команды, определяющий способ использования регистров общего назначения при адресации ОЗУ; Ri– регистр источник и приемник пересылаемого операнда; Rj – регистр косвенной адресации.
Таблица 1.8.
Способ адресации |
Команда Inc | |||
регистровая |
Инкрементируется содержимое регистра Ri |
Таблица 1.9.
Способ адресации |
Команды Jz (Jg, Jl) метка Jz – переход, если результат операции равен нулю, Jg– результат больше нуля, Jl – меньше нуля | ||||
прямая |
Условный переход по адресу, хранящемуся в памяти | ||||
относительная |
Условный переход по адресу, хранящемуся в памяти (через регистр базы и смещение) | ||||
непосредственная |
Условный переход по адресу, задаваемому явно |