close

Вход

Забыли?

вход по аккаунту

?

Веретенников (2)

код для вставкиСкачать
Министерство образования и науки РФ
Новосибирский государственный технический университет
Кафедра вычислительной техники
Курсовой проект
по дисциплине «Организация ЭВМ»
Разработка гипотетической ЭВМ. Разработка сопроцессора
ввода-вывода
Факультет: АВТ
Группа: АМ-215
Выполнил: Веретенников В. А.
Проверил: Гребенников В. Ф.
Новосибирск, 2005 г.
Оглавление:
1. Цель курсового проекта.......................................................................................................................... 3
2. Задание на курсовой проект ................................................................................................................... 3
2.1. Общие исходные данные................................................................................................................. 3
2.2. Индивидуальные исходные данные ............................................................................................... 3
3. Разработка структурной схемы ЭВМ .................................................................................................... 4
3.1. Центральный процессор .................................................................................................................. 4
3.2. Кэш команд ....................................................................................................................................... 5
3.3. Адресный сопроцессор .................................................................................................................... 5
3.4. Основная память .............................................................................................................................. 5
3.5. Система прерывания программ ...................................................................................................... 6
3.6. Система приоритетного арбитража системной шины .................................................................. 7
3.7. Таймер ............................................................................................................................................... 7
3.8. Система ввода-вывода ..................................................................................................................... 7
3.9. Клавиатура ........................................................................................................................................ 7
3.10. Мышь .............................................................................................................................................. 8
3.11. Блок синхронизации и сброса ....................................................................................................... 8
4. Разработка сопроцессора ввода-вывода ............................................................................................... 9
4.1. Структурная схема сопроцессора ввода-вывода........................................................................... 9
4.2. Управляющая информация для операций ввода-вывода ............................................................. 9
4.3. Разработка блока чтения команд и управления .......................................................................... 10
Заключение ................................................................................................................................................ 16
Список литературы ................................................................................................................................... 17
Приложение 1. Структурная схема ЭВМ ............................................................................................... 18
Приложение 2. Структурная схема центрального процессора ............................................................. 19
Приложение 3. Структурная схема сопроцессора ввода-вывода ......................................................... 20
Приложение 4. Функциональная схема блока чтения команд и управления ..................................... 21
2
1. Цель курсового проекта
Целью курсового проектирования является углубление и закрепление теоретических знаний
студентов, приобретение навыков разработки узлов ЭВМ на структурном, функциональном и алгоритмическом уровнях.
2. Задание на курсовой проект
2.1. Общие исходные данные
Разработать структурную схему гипотетической ЭВМ, функциональную схему и алгоритм
работы конкретного блока, входящего в состав этой ЭВМ. Курсовой проект состоит из двух частей: первая часть посвящена разработке структурной схемы гипотетической ЭВМ, описанию ее
функционирования. В состав ЭВМ входят как общие для всех вариантов блоки, так и дополнительные, определяемые индивидуальным заданием. Вторая часть проекта посвящена разработке
функциональной схемы и алгоритмов работы конкретного блока, входящего в состав ЭВМ, и его
детальному описанию.
В состав ЭВМ входят следующие блоки:
– центральное обрабатывающее устройство (ЦОУ);
– микропрограммное устройство управления (УУ);
– оперативная память (ОП);
– блок синхронизации (БС);
– система прерывания программ (СПП);
– таймер;
– система ввода-вывода (СВВ);
– монитор, клавиатура, мышь;
– НГМД;
– «Винчестер».
Основные параметры ЭВМ:
– адресность ЭВМ - двухадресная;
– длина команды - переменная.
Разрядность ЭВМ и минимальный объем оперативной памяти выбираются самостоятельно,
но должны удовлетворять следующим ограничениям:
– разрядность - не менее 16;
– емкость ОП - не менее 16 Мбайт.
2.2. Индивидуальные исходные данные
–
–
–
–
–
–
–
–
Структура двухшинная;
есть адресный сопроцессор;
прерывания с индивидуальными линиями на уровне команд;
кэш команд;
ОП обычная;
ввод-вывод: сопроцессор в селекторном режиме;
контроля нет;
разрабатываемый блок – сопроцессор ввода-вывода, детально разрабатывается (до
уровня принципиальной схемы) та часть, которая читает команды.
3
3. Разработка структурной схемы ЭВМ
Структурная схема ЭВМ представлена в приложении 1. Она отображает состав ЭВМ и основные связи между устройствами.
Структура разрабатываемой ЭВМ – двухшинная. Имеются две шины: 32-разрядная шина адреса/данных AD и шина управления CB. Адрес и данные по шине AD передаются поочерёдно в
двух тактах. Признаком адреса является сигнал ALE#, выставляемый ведущим устройством.
Далее рассмотрены отдельные устройства ЭВМ.
3.1. Центральный процессор
32-разрядный центральный процессор (ЦП) предназначен для выполнения команд, располагающихся в основной памяти, координирования работы всех узлов ЭВМ, обработки прерываний.
Структурная схема ЦП представлена в приложении 2.
Работа ЦП основана на принципе микропрограммного управления.
Структурно ЦП состоит из двух блоков:
– операционный блок (ОБ);
– микропрограммное устройство управления.
Состав ОБ:
– Микропроцессорный модуль, состоящий из 2-х микропроцессорных секций
IDT49C402. Модуль имеет встроенный набор регистров. Сдвиговые операции
осуществляются с помощью блока логики сдвигов.
– Блок логики сдвигов. Предназначен для поддержки сдвиговых операций.
– Блок статусного регистра. Имеется возможность считывать и изменять содержимое
статусного регистра.
– Входной и выходной регистры данных RG_AD_IN32 и RG_AD_OUT32. Адреса
вычисляет арифметический сопроцессор.
– Параллельный умножитель Am29C323. Предназначенный для аппаратной поддержки операций умножения одинарной и многократной точности.
Состав МУУ:
– Регистр команд RG_COM32. Предназначен для приёма и хранения машинной команды.
– Преобразователь начального адреса ПНА. Предназначен для формирования
начального адреса микроалгоритма, соответствующего коду операции.
– Секвенсер микрокоманд Am29C331-2. Предназначен для управления последовательностью микрокоманд.
– Микропрограммная память МПП. МПП хранит все микроалгоритмы, необходимые
для управления работой ЦП.
– Регистр микрокоманд RGMK. Предназначен для хранения микрокоманды в течение микроцикла.
МУУ выполнено по схеме двухступенчатого конвейера. Выборка следующей микрокоманды
и выполнение операции в ОБ выполняются параллельно.
В состав ЦП входит кэш команд COM_CACHE для увеличения производительности. Кэш
команд рассмотрен в п. 3.2.
В состав ЦП входит арбитр системной шины BUSARB. Арбитр шины совместно с арбитрами
других ведущих устройств и схемой приоритетного арбитража осуществляет синхронизацию доступа к системной шине. Назначение выводов арбитра системной шины представлено в табл. 3.1.1.
4
Обозначение
REQ#
LOCK#
BPRN#
BUSY#
CBRQ#
BREQ#
AEN#
Табл. 3.1.1. Выводы арбитра системной шины
Тип вывода Функциональное назначение
Вход
Запрос шины устройством
Вход
Запрет освобождения системной шины
Вход
Приоритетное
разрешение
доступа к шине
Вход/выход Занятость шины
Вход/выход Общий запрос шины
Выход
Сигнал запроса шины
Выход
Разрешение доступа к системной шине для устройства
3.2. Кэш команд
Кэш команд входит в состав центрального процессора (см. приложение 2). Кэш увеличивает
быстродействие ЦП за счёт уменьшения количества обращений к ОП. При чтении команды из ОП
одновременно производится поиск команды в кэш-памяти. В случае наличия в кэш-памяти нужных данных контроллер кэш-памяти выдает сигнал HIT, и чтение из ОП прекращается. Команда
выбирается с выхода кэш-памяти. Если попадания нет, команда, считанная из ОП, записывается в
кэш.
Вид кэша в разрабатываемой ЭВМ – множественно-ассоциативный. В таком кэше блоки
объединяются в множества, и каждый из блоков основной памяти может располагаться в любом из
блоков определенного множества. Вероятность конфликтов в таком кэше значительно ниже, чем в
кэше прямого отображения и он дешевле полностью ассоциативного кэша. Используемый алгоритм замещения – удаление наиболее давно используемых элементов (Last Recently Used - LRU).
3.3. Адресный сопроцессор
Адресный сопроцессор (АП) служит для вычисления адресов памяти.
При использовании адресного сопроцессора основной процессор освобождается от необходимости формирования адресов.
Центральный процессор и адресный сопроцессор выполняют одни и те же команды синхронно. ЦП занимается основными вычислениями, а АП вычисляет адреса памяти. Если выполняется команда условного перехода, сопроцессор ожидает результата выполнения операции в ЦП и
появления признаков результата.
В микрокоманде ЦП выделены дополнительные разряды для управления АП.
В состав АП как и в состав ЦП входят кэш команд и арбитр шины.
3.4. Основная память
Основная память (ОП) служит для хранения информации (данных, программ, промежуточных и конечных результатов вычислений). В состав ОП входит оперативная (ОЗУ) и постоянная
(ПЗУ) память.
ОП и программно-управляемые периферийные устройства занимают параллельные адресные
пространства, т. к. для обращения к ОП используется сигнал шины управления MEMR#, а для обращения к программно-управляемым ПУ используется сигнал системной шины PIO#.
В качестве ПЗУ используется Flash-память ёмкостью 4 МБ с блоком начальной загрузки как
наиболее подходящая для хранения программ начальной инициализации системы.
В качестве ОЗУ используется асинхронная динамическая память DRAM ёмкостью 32 МБ.
Адресация в ОП побайтовая. Ведущее устройство выставляет признак BYTE/WORD# для записи байта или 32-разрядного слова. Чтение всегда производится 32-разрядными словами.
Распределение адресного пространства представлено на рис. 3.4.1.
5
FFFFFFFFh
РЕЗЕРВ
02400000h
023FFFFFh
ОЗУ 32МБ
00400000h
003FFFFFh
ПЗУ 4МБ
00000000h
Рис. 3.4.1. Распределение адресного пространства
Контроллер ОП управляет доступом к ОП и осуществляет регенерацию данных в DRAM.
3.5. Система прерывания программ
Структурная схема системы прерывания программ представлена на рис. 3.5.1.
Запросы IRQ#
.
.
.
Контроллер
INT#
прерываний
INTA#
Маска Вектор
Центральный
процессор
Вектор
Маска
32
AD
Рис. 3.5.1. Структурная схема системы прерывания программ
В разрабатываемой ЭВМ используется радиальная структура системы прерываний. Запросы
прерываний обрабатываются на уровне команд.
Для обработки запросов служит программируемый контроллер прерываний. Вектор прерывания получается путём приоритетной шифрации запросов прерываний от устройств. Имеется
возможность задать маску прерываний.
При поступлении одного или нескольких прерываний от устройств контроллер прерываний
вырабатывает сигнал запроса прерывания INT#, который поступает в ЦП. Внутри ЦП запрос INT#
поступает на вход тестирования внешних условий секвенсера микрокоманд. После завершения
обработки очередной команды проверяется вход внешнего условия на наличие запроса прерывания. При отсутствии запроса происходит чтение новой команды из ОП. При наличии запроса вызывается микроподпрограмма обработки прерываний. Эта микроподпрограмма обеспечивает сохранение в стеке (находящемся в ОЗУ) адреса возврата из прерывания, сохранение в стеке регистра состояния, выдачу сигнала подтверждения прерывания INTA# и чтение вектора прерывания.
В ОП располагается таблица адресов обработчиков прерываний. Вектор прерывания является адресом в этой таблице. Из таблицы адресов обработчиков прерываний по вектору прерывания извлекается адрес обработчика прерывания, начинается выполнение команд обработчика прерываний. Обработчик прерывания должен сохранить в стеке значения регистров, которые будут использоваться в этом обработчике.
ЦП может маскировать прерывания, то есть записать слово в регистр маски контроллера
прерываний. Биты этого регистра определяют, какие прерывания разрешены, какие запрещены.
6
Некоторые прерывания могут быть немаскируемыми. Существуют специальные машинные команды маскирования прерываний. Содержимое регистра маски можно считать из контроллера
прерываний в ЦП.
3.6. Система приоритетного арбитража системной шины
В разрабатываемой ЭВМ используется схема параллельного разрешения приоритета доступа
к системной шине. Структурная схема приоритетного арбитража системной шины представлена
на рис. 3.6.1.
BREQ#
Арбитр шины 1
BPRN#
BREQ#
Арбитр шины 2
BPRN#
Схема приоритетного арбитража
системной шины
Приоритетное
кодиру ющее
у стройств о
Декодиру ющее
у стройств о
BREQ#
Арбитр шины 3
BPRN#
BUSY #
CBRQ#
Рис. 3.6.1. Структурная схема приоритетного арбитража системной шины
3.7. Таймер
Таймер – устройство, выполняющее операции, связанные со временами, частотами и интервалами. В проектируемой ЭВМ используется трехканальный программируемый интервальный
таймер. Каждый канал можно запрограммировать для выполнения определенных функций. Изначально один из каналов запрограммирован для генерации запроса на прерывание через определенные промежутки времени.
3.8. Система ввода-вывода
В разрабатываемой ЭВМ ввод-вывод может осуществляться как программно, так и с использованием сопроцессора ввода-вывода. Программно-управляемый ввод-вывод используется для
устройств, не совершающих обмен с ОП большими объёмами данных. Устройства, осуществляющие интенсивный обмен данными с ОП, должны быть подключены к сопроцессору ввода-вывода.
В разрабатываемой ЭВМ устройствами с программно-управляемым вводом-выводом являются мышь и клавиатура. К шине сопроцессора ввода-вывода подключены контроллеры жёсткого
диска, НГМД и монитора.
Программно-управляемый ввод-вывод инициируется установкой активного уровня сигнала
IO#.
Сопроцессор ввода-вывода подробно обсуждается в п. 4.
3.9. Клавиатура
Клавиатура используется для ввода команд и данных пользователем ЭВМ.
Для клавиатуры используется программно-управляемый ввод-вывод. Клавиатура соединяется с системными шинами через специальный контроллер, в буфер которого поступают коды нажатых клавиш. По команде ЦП эти коды можно читать, а также задавать управляющую информацию
для клавиатуры (например, изменить состояние светодиодов). Контроллер клавиатуры выставляет
запрос на прерывание в случае нажатия клавиши.
7
3.10. Мышь
Мышь используется для управления ЭВМ со стороны пользователя.
Для мыши используется программно-управляемый ввод-вывод. Мышь, как и клавиатура, соединяется с системными шинами через контроллер, который выставляет запрос на прерывание в
случае нажатия кнопки мыши или ее перемещения.
3.11. Блок синхронизации и сброса
Блок синхронизации и сброса предназначен для обеспечения синхронной работы всех узлов
ЭВМ. В его задачи входит генерация синхросигналов и сигнала сброса для всех устройств, входящих в состав ЭВМ. Сигнал сброса формируется при включении или возобновлении питания. Кроме того генерацию сигнала сброса может инициировать ЦП.
8
4. Разработка сопроцессора ввода-вывода
В работе рассматривается сопроцессор ввода-вывода (СПВВ) в селекторном режиме.
Здесь и далее понятия сопроцессор ввода-вывода и канал ввода-вывода эквивалентны.
Сопроцессор разработан до уровня структурной схемы. Отдельно разработан блок, обеспечивающий чтение команд ввода-вывода (КВВ) и управляющих слов канала (УСК) и осуществляющий управление работой сопроцессора, до уровня функциональной схемы.
4.1. Структурная схема сопроцессора ввода-вывода
Структурная схема СПВВ представлена в приложении 3.
В состав разработанного СПВВ входят следующие блоки:
– CONTROL – блок, осуществляющий чтение команд ввода-вывода и УСК и осуществляющий управление работой сопроцессора. Подробнее этот блок будет рассмотрен в п. 4.3.
– BUSARB – арбитр системной шины. Совместно с арбитрами других ведущих
устройств и схемой приоритетного арбитража осуществляет синхронизацию доступа к системной шине. Назначение выводов арбитра системной шины представлено в табл. 4.1.1.
Табл. 4.1.1. Выводы арбитра системной шины
Обозначение
Тип вывода Функциональное назначение
REQ#
Вход
Запрос шины устройством
LOCK#
Вход
Запрет освобождения системной шины
BPRN#
Вход
Приоритетное
разрешение
доступа к шине
BUSY#
Вход/выход Занятость шины
CBRQ#
Вход/выход Общий запрос шины
BREQ#
Выход
Сигнал запроса шины
AEN#
Выход
Разрешение доступа к системной шине для устройства
– DATA_CTRL – блок, обеспечивающий сборку данных для выдачи на системную
шину и выдачу этих данных. К таким данным относится слово состояния канала
(ССК).
– INTERFACE – интерфейс связи с ПУ. В работе этот интерфейс не рассматривается,
приведены только некоторые сигналы (см. п. 4.3).
– РгСИ – регистр связи с интерфейсом, в который поступает информация, получаемая из ПУ при вводе и из которого в ПУ выдаётся выводимая информация. В РгСИ
при вводе производится компоновка 32-разрядного слова из поступающих в канал
байт, а при выводе – развёртка 32-разрядного слова в последовательность выдаваемых в ПУ байт.
– СчБ – счётчик байт. Используется для определения конца компоновки или развёртки слова и указывает номер последнего обработанного байта в текущем слове
данных.
– РгД – буферный регистр данных. Обеспечивает возможность совмещения во времени обмена информацией канала с ПУ и ОП.
Обмен данными с ОП производится пословно.
Управление работой канала осуществляет блок CONTROL. Управление основано на принципе микропрограммного управления.
4.2. Управляющая информация для операций ввода-вывода
В управлении вводом-выводом используется следующая управляющая информация:
– команды ввода-вывода;
– адресное слово канала (АСК);
– управляющие слова канала;
9
– слово состояния канала;
– байт состояния и байт уточнённого состояния ПУ.
Формат команды ввода-вывода приведён на рис. 4.2.1.
Номер
ПУ
31
16 15
Номер
КОП
канала
8 7
4 3
0
Рис. 4.2.1. Формат команды ввода-вывода
Такая КВВ позволяет задавать до 16 видов команд. В разработанном СПВВ используются 4
команды:
– «Начать ввод-вывод» (0x0) – инициирует одну или несколько операций вводавывода с указанным в команде каналом и ПУ. О завершении отдельного её этапа,
или цепочки операций, канал сообщает процессору путём прерываний.
– «Остановить ввод-вывод» (0x1) – принудительно прекращает операцию вводавывода до её завершения.
– «Проверить ввод-вывод» (0x2) – получение состояния ПУ.
– «Проверить канал» (0x3) – канал в фиксированной ячейке ОП формирует ССК.
В системе может быть использовано несколько каналов ввода-вывода, при этом каждому
может быть присвоен один из 16 адресов.
К каждому каналу может быть подключено несколько ПУ, между которыми распределяется
256 адресов.
Для выполнения команды «Начать ввод-вывод» необходим адрес первого УСК. Адрес первого УСК содержится в адресном слове канала, расположенном в фиксированной ячейке ОП. Этот
адрес должен быть предварительно сформирован процессором до выдачи команды «Начать вводвывод». Формат АСК приведён на рис. 4.2.2.
Адрес УСК
31
0
Рис. 4.2.2. Формат адресного слова канала
Канальная программа представляет собой последовательность УСК, обеспечивающую выполнение определённой операции ввода-вывода. Формат УСК приведён на рис. 4.2.3.
Адрес данных
63
Счётчик данных
32 31
000
Указатели
16 151312
Приказ
8 7
0
Рис. 4.2.3. Формат управляющего слова канала
Всего используется 5 указателей:
– ЦД – указатель цепочки данных;
– ЦО – указатель цепочки операций;
– УБ – указатель блокировки;
– ПИ – указатель пропуска информации;
– ПР – указатель прерывания.
Формат ССК приведён на рис. 4.2.4.
Счётчик данных
63
Байт
Байт
состояния
состояния
канала
ПУ
48 47
40 39
32 31
Адрес последнего УСК
0
Рис. 4.2.4. Формат слова состояния канала
4.3. Разработка блока чтения команд и управления
Функциональная схема блока CONTROL приведена в приложении 4.
Блок строится по принципу микропрограммного управления и состоит из следующих блоков
и узлов:
10
– Секвенсер микрокоманд Am29C331-2. Секвенсер осуществляет управление последовательностью выборки микрокоманд.
– Регистр команд RGK. Этот регистр предназначен для приёма команд ввода-вывода.
Данные в RGK загружаются с шины AD при наличии сигнала записи команды
NEWCOM#, выставляемого процессором.
– Регистр номера периферийного устройства РгНПУ предназначен для записи в него
номера ПУ, указанного в текущей команде. Запись в РгНПУ разрешается битом
микрокоманды.
– Микросхема PLD ATF22V10B-10 предназначена для управления процессом приёма новых команд ввода-вывода;
– ППЗУ констант CONSTMEM предназначено для хранения констант канала вводавывода, таких как адреса фиксированных ячеек ОП (адрес, по которому читается
АСК, и адрес, по которому записывается ССК).
– Регистр RGAD предназначен для выдачи на шину AD констант из CONSTMEM (в
частности, адресов фиксированных ячеек ОП).
– Преобразователь начального адреса команды ПНАК предназначен для формирования начального адреса микроалгоритма, соответствующего определённой команде
ввода-вывода.
– Преобразователь начального адреса ПНА предназначен для формирования начального адреса микроалгоритма, соответствующего приказу в УСК.
– Микропрограммная память МПП.
– Регистр микрокоманд RGMK предназначен для фиксации микрокоманды.
– Блок регистров REG_BLK содержит следующие узлы:
o Регистр предварительной выборки УСК РгПУСК. Этот регистр предназначен
для поддержания постоянного темпа обмена данными с ПУ. Новое УСК принимается в РгПУСК при уменьшении значения СчТД до 32.
o Регистр кода операции и указателей РгКОУ предназначен для хранения приказа и указателей текущего УСК.
o Счётчик текущих данных СчТД. Этот счётчик инициализируется значением из
УСК. При выполнении обмена значение счётчика уменьшается, при достижении установленного порога (32) СчТД выдаёт сигнал о необходимости предварительной выборки УСК. Обмен заканчивается при достижении СчТД нулевого значения.
o Регистр текущего адреса данных РгТАД. Предназначен для выдачи на шину
AD текущего адреса данных. Этот регистр инициализируется значением из
УСК. При выполнении обмена значение этого регистра увеличивается.
o Регистр адреса УСК РгАУСК предназначен для приёма, хранения и выдачи на
шину AD адреса УСК.
o Инкрементор адреса ADDL предназначен для обеспечения последовательной
адресации в памяти УСК и данных. Увеличивает значение входа на число байт
в слове (4).
Для управления процессом приёма новых команд ввода-вывода используется микросхема
PLD ATF22V10B-10. Для этой микросхемы разработана VHDL-модель, которая может быть скомпилирована в файл конфигурации для ATF22V10B-10. Разработанная VHDL-модель представлена
на рис. 4.3.1.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- D-триггер с асинхронными предустановкой и сбросом
entity D_FLOP_UNI is
port (
D : in std_logic;
C : in std_logic;
S : in std_logic;
11
R : in std_logic;
Q : out std_logic;
NQ : out std_logic
);
end D_FLOP_UNI;
architecture behavioral of D_FLOP_UNI is
begin
process (C, S, R)
begin
if S='0' then -- asynchronous preset active Low
Q <= '1';
NQ <= '0';
elsif R='0' then -- asynchronous reset active Low
Q <= '0';
NQ <= '1';
elsif (C'event and C='1') then -- C rising edge
Q <= D;
NQ <= not D;
end if;
end process;
end behavioral;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- блок управления процессом приёма новой команды
entity comctrl is
Port (
CLK : in std_logic; -- синхросигнал
IN0 : in std_logic; -- поступает NEWCOM#
IN1 : in std_logic; -- поступает ENALL#
IN2 : in std_logic; -- поступает INTA#
IN3 : in std_logic; -- поступает KVV[3]
IN4 : in std_logic; -- поступает KVV[2]
IN5 : in std_logic; -- поступает KVV[1]
IN6 : in std_logic; -- поступает KVV[0]
IN7 : in std_logic; -- поступает KVV[7]
IN8 : in std_logic; -- поступает KVV[6]
IN9 : in std_logic; -- поступает KVV[5]
IN10 : in std_logic; -- поступает KVV[4]
IO0 : in std_logic; -- поступает RESET#
IO1 : out std_logic; -- выход запроса прерывания по новой команде
IO2 : out std_logic -- выход ошибочной команды
);
end comctrl;
architecture behavioral of comctrl is
constant THISCHANNEL: std_logic_vector(3 downto 0) := x"0"; -- номер этого канала
signal RESET : std_logic; -- сброс
signal NEWCOM : std_logic; -- признак поступления новой команды
signal ENALL : std_logic; -- разрешение всех команд
signal INTA : std_logic; -- ответ на запрос
signal INTCOM : std_logic; -- запрос прерывания по новой команде
signal ERRORCOM : std_logic; -- признак ошибочной команды
12
signal COP : std_logic_vector(3 downto 0); -- код операции
signal NCHANNEL : std_logic_vector(3 downto 0); -- номер канала в команде
signal NEWCOMCAPT : std_logic;
signal INTREQ : std_logic;
signal INTREQCAPT : std_logic;
component D_FLOP_UNI
port (
D : in std_logic;
C : in std_logic;
S : in std_logic;
R : in std_logic;
Q : out std_logic;
NQ : out std_logic
);
end component ;
begin
RESET <= IO0;
NEWCOM <= IN0;
ENALL <= IN1;
INTA <= IN2;
COP <= IN3 & IN4 & IN5 & IN6;
NCHANNEL <= IN7 & IN8 & IN9 & IN10;
DD1: D_FLOP_UNI
port map (
D => NEWCOM,
C => CLK,
S => RESET,
R => INTA,
Q => NEWCOMCAPT
);
process (NCHANNEL, NEWCOMCAPT)
begin
if (NCHANNEL = THISCHANNEL) and (NEWCOMCAPT = '0') then
INTREQ <= '1';
else
INTREQ <= '0';
end if;
end process;
process (COP)
begin
if (COP > x"3") or (ENALL = '1' and COP = x"0") then
ERRORCOM <= '0';
else
ERRORCOM <= '1';
end if;
end process;
-- фиксация запроса на прерывание по команде
13
DD2: D_FLOP_UNI
port map (
D => '1',
C => INTREQ,
S => RESET,
R => INTA,
NQ => INTREQCAPT
);
DD3: D_FLOP_UNI
port map (
D => INTREQCAPT,
C => CLK,
S => RESET,
R => INTA,
Q => INTCOM
);
IO1 <= not INTCOM;
IO2 <= ERRORCOM;
end Behavioral;
Рис. 4.3.1. VHDL-модель для ATF22V10B-10
В модели указывается номер канала, в котором будет устанавливаться микросхема. Таким
образом, номер канала программируется в разработанной VHDL-модели. Также в модели указываются максимальный номер команды ввода-вывода и выделяются команды, которые не могут
прервать выполнение микроалгоритма при запрете этих команд сигналом ENALL#, установленным в значение высокого уровня.
В процессе разработки блока чтения команд и управления разработан формат микрокоманды. Микрокоманда является 72-разрядной, назначение отдельных битов микрокоманды приведено
в табл. 4.3.1.
Табл. 4.3.1. Формат микрокоманды
Обозначение
MKA
Число
разрядов
14
S
I
LDRGA#
OERGA#
ENALL#
LDRGNPU#
INT#
MEMR#
R/W#
ALE#
INTEN
LDPUSK0#
LDPUSK1#
OESAUSK0#
4
6
1
1
1
1
1
1
1
1
1
1
1
1
OESAUSK1#
1
Назначение
Адрес перехода в микропрограмме или адрес слова в CONSTMEM (младшие 10 разрядов)
Выбор тестируемого условия
Инструкция секвенсера
Разрешение загрузки RGAD (акт. L)
Разрешение вывода RGAD (акт. L)
Разрешение всех команд ввода-вывода (акт. L)
Разрешение загрузки РгНПУ (акт. L)
Запрос прерывания (акт. L)
Обращение к памяти (акт. L)
Режим работы памяти (H – чтение, L - запись)
Признак выдачи адреса (акт. L)
Разрешение прерываний на микроуровне
Загрузка младших 32 разрядов РгПУСК (акт. L)
Загрузка старших 32 разрядов РгПУСК (акт. L)
Выбор источника для загрузки в РгАУСК – шина
AD (акт. L)
Выбор источника для загрузки в РгАУСК – выход
14
OESAUSK2#
1
LDUSK#
1
LDAUSK#
OEAUSK#
1
1
TADSRC
1
LDTAD#
OT
1
29
инкрементора адреса ADDL (акт. L)
Выбор источника для загрузки в РгАУСК – из
РгПУСК (поле УСК) (акт. L)
Разрешение загрузки УСК (РгКОУ и СчТД) (акт.
L)
Разрешение загрузки РгАУСК (акт. L)
Разрешение вывода данных с РгАУСК на шину
AD (акт. L)
Выбор источника для загрузки в РгТАД (H – из
поля УСК, L – с выхода инкрементора адреса
ADDL)
Разрешение загрузки РгТАД (акт. L)
Другие сигналы управления
Для сигналов управления интерфейсом, блоком сборки данных и др. в микрокоманде выделено 29-разрядное поле OT.
Алгоритм чтения команд и УСК
Для выдачи новой команды на СПВВ процессор выставляет на шину AD команду вводавывода, а сигнал управления NEWCOM# переводит в низкий уровень. По фронту синхросигнала
новая команда захватывается в RGK. В микросхеме PLD проверяется номер канала, указанный в
команде, и если он совпадает с номером данного канала, по следующему фронту синхросигнала
зафиксируется запрос на прерывание, поступающий на соответствующий вход запроса на обслуживание прерывания секвенсера. Выход ERRORCOM# сигнала ошибки в команде активизируется
в случае, если указан недопустимый номер команды. Кроме того, запрещено при выполнении ввода-вывода начинать новый ввод-вывод (в микрокоманде есть бит блокировки ENALL#). При пассивном уровне ENALL# при поступлении команды, запрещённой в данный момент, активизируется сигнал ошибки в команде. Вход разрешения прерывания управляется битом микрокоманды, в
микроалгоритме могут быть участки, где прерывания микропрограммы необходимо запретить.
При обработке прерывания по новой команде адрес обработчика в МПП выбирается из ПНАК по
следующему принципу: если не выставлен сигнал ошибки в команде, адрес в ПНАК определяется
по коду операции, иначе на вход ПНАК подаётся специальный код (0xF), и из ПНАК выбирается
адрес обработчика ошибочной команды. СПВВ извещает процессор об ошибочной команде прерыванием.
Если пришла команда «Начать ввод-вывод», начинает работать соответствующий алгоритм,
обеспечивающий чтение из памяти АСК. Адрес АСК хранится в одной из ячеек ППЗУ CONSTMEM. В разрядах микрокоманды указывается адрес в CONSTMEM адреса АСК, адрес АСК загружается в RGAD, откуда поступает на шину AD. АСК принимается в РгАУСК. По адресу, поступившему в РгАУСК, из памяти считывается первое УСК программы канала в РгПУСК. В следующем такте УСК из РгПУСК загружается в РгКОУ, СчТД и РгТАД. Если не задано УСК перехода в канале, значение адреса в РгАУСК увеличивается на 4 (длина слова в байтах) для последовательной адресации УСК. Если УСК является командой перехода в канале, адрес следующего
УСК загружается из старшего 32-разрядного слова РгПУСК. В процессе ввода-вывода при достижении СчТД заданного значения (32), осуществляется предварительная выборка УСК в РгПУСК.
После выполнения очередной команды может быть сформировано прерывание (при установленном указателе ПР=1). Ввод-вывод заканчивается выполнением текущего УСК, если указатели
ЦД=0 и ЦО=0. После завершения выполнения последнего УСК СПВВ посылает в процессор запрос прерывания.
15
Заключение
В ходе работы были углублены знания по дисциплине «Организация ЭВМ».
Разработана структурная схема гипотетической ЭВМ. Разработана структурная схема сопроцессора ввода-вывода в селекторном режиме. Детально разработан блок СПВВ, отвечающий за
чтение команд и УСК и осуществляющий управление работой СПВВ до уровня функциональной
схемы.
16
Список литературы
1. Каган Б. М. Электронные вычислительные машины и системы: Учеб. пособие для вузов.- 3-е изд., перераб.и доп.- М.: Энергоатомиздат, 1991.- 592 с.
2. Мик Дж., Брик. Дж. Проектирование микропроцессорных устройств с разрядномодульной организацией: В 2-х книгах. Пер.с англ.-М.: Мир, 1984.- Кн. 2. 233 с.
3. Схемотехника. Руководство к курсовой работе. – Новосибирск: НГТУ, 1997. – 61 с.
17
Приложение 1. Структурная схема ЭВМ
ОЗУ
Запросы IRQ#
.
.
.
Контроллер
INT#
прерываний
INTA#
Центральный
Адресный
процессор
сопроцессор
Схема
приоритетного
арбитража
системной
шины
ПЗУ
Контроллер
ОП
32
AD
CB
IRQ#
Блок
синхронизации
и сброса
IRQ#
Таймер
IRQ#
СПВВ
Контроллер
HDD
Контроллер
НГМД
Видеоадаптер
HDD
НГМД
Монитор
Структурная схема ЭВМ
18
IRQ#
Контроллер
клавиатуры
Контроллер
мыши
Клавиатура
Мышь
19
HB4
LO
HB1
Y
SEQ
D
DQ
ПНА
A
CLK
HB3
K[31..22]
RG_COM32
Q
INT#
Y
Y
BF
Y
BPRN#
LOCK#
REQ#
CLK
MK[]
MK[]
6
CBRQ#
AEN#
BREQ#
BUSARB
BUSY #
HB5
8
32
6
LO
S1 (MK[])
S2 (MK[])
I7 (MK[])
AD[31..0]
MPM
R31
Q31
Y
Z
C32
F31
OVR
CB
MK[]
2 x IDT49C402
R0
Q0
A
B
D
CP
C0
I
OEY
HS1
PLD
I0
I/O4
I1
I/O5
I2
I3
I/O0
I/O2
I/O1
I/O3
DD9
32
Структурная схема центрального процессора
Buf f er32
OE
A
HS9
MUX6x(2to1)
B
A/B
HS13
A MUX
MUX6x(2to1)
B
A/B
HS12
A MUX
REG_AD_IN32
МК у прав ления АП
MK[]
32
MK[]
MEMREADY #
MK[]
MK[]
K[21..17], 0
MK[]
MK[]
K[16..12], 0
MK[]
MK[]
D
INTA# MK[]
10
RGMK
DQ
МПП
A
Am29C331-2
HB2
T
5
MK[]
MK[]
RG
D
Q
CLK
CLKEN
OE
CLK
HS14
K[31..0]
32
RG
D
Q
CLK
CLKEN
OE
HIT
HS8
CP
CIN
FC
HOLD
INTR
INTEN
M
OED
SLAVE
I
S
A
RST
DD10
32
COM_CACHE
CLK RESET# MEMR# R/W# PIO#
LO
LO
LO
LO
LO
LO
LO
LO
CLK
NEWCOM#
CLK
MK[]
MK[]
MK[]
CLK
MK[]
MK[]
32
RL
QL
CLK
MK[]
MK[]
32
LO
HI
LO
LO
HI
HI
HI
CLK
HI
HI
Y
Register8
RG
D
Q
CLK
CLKEN
CLR
OE
DD3
MUX8x(2to1)
B
A/B
HS12
A MUX
FLAGS[]
Am29C323
MPL
X[31..0]
Y [31..0]
XSEL
Y SEL
TCX
TCY
ACC0
ACC1
RND
FTP
FTX
FTY
FTI
P[31..0]
CLK
ENXA
ENXB
ENY A
ENY B
ENI
ENP
ENT
FA
TSEL
PSEL0
PSEL1
OE
SLAVE
DD5
MK[]
8
HI
LO
CLK
MK[]
6
REG_AD_OUT32
RG
D
Q
CLK
CLKEN
OE
HS15
MK[]
BF
Y
8
Buf f er8
OE
A
HS9
Приложение 2. Структурная схема центрального процессора
Приложение 3. Структурная схема сопроцессора ввода-вывода
AD[31-0]
CB
HB2
BUSY # CBRQ#
HB1
BUSARB
AD[31-0]
CB
CONTROL
ENDATACNT#
REQB#
REQ#
LOCKB#
LOCK#
DCOMPL#
BPRN#
BREQ#
AEN#
MK
INTPU#
SDATA[31-0]
NPU[3-0]
BFREE#
HB6
HB3
РгД
DATA_CTRL
HB4
HB5
РгСИ
СчБ
HB7
INTERFACE
К ПУ
Структурная схема сопроцессора ввода-вывода
20
21
RESET#
CLK
RESET#
CLK
CLK
NEWCOM#
RESET#
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
DD4
KVV[15-8]
I/O1
I/O2
NPU[3-0]
DQ[31-0]
INT#
CLK
RESET#
OE
HB4
Y15-0
MEMR#
R/W#
RGMK
Q[71-0]
DQ[13-0]
D[71-0]
DQ[71-0]
ПНАК
HB3
HB2
Am29C331-2
T11-0
ALE#
5
PRE#
ENDATACNT#
REG_BLK
KOU[12-8]
AD
EQUAL
A-FULL
ERR
INTA
D15-0
SEQ
МПП
A[3-0]
ПНА
A[7-0]
8
DQ[13-0]
CP
CIN
FC
HOLD
INTR
INTEN
M
OED
SLAVE
I 5-0
S3-0
A15-0
RST
DD11
HB1
A[13-0]
RESET#
I[5-0]
S[3-0]
MKA[13-0]
INTEN
CLK
MK
RESET#
KOU[7-0]
CLK
CY 74FCT157CT
3-0
DD9
A MUX
MKA[9-0]
RESET#
CLK
HB6
B3-0 Y3-0
A/B
A[9-0]
CONSTMEM
HB5
CY 74FCT162823CT
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
DD13
32
Функциональная схема блока чтения команд и управления
CY 74FCT823CT
RG
D8-0 Q8-0
CLK
CLKEN
CLR
OE
VCC
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
DD12
CY 74FCT162823CT
OERGA#
LDRGA#
ATF22V10B-10
CLK
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
IN9
IN10
I/O0
DD10
PLD
RESET#
CLK
SDATA[31-0]
РгНПУ DD8
KVV[3-0]
KVV[3]
KVV[2]
KVV[1]
KVV[0]
KVV[7]
KVV[6]
KVV[5]
KVV[4]
RESET#
CLK
KVV[15-0]
ENALL# LDRGNPU#
CY 74FCT162823CT
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
DD5
CY 74FCT162823CT
AD[31-16]
AD[15-0]
RGK
RESET#
CLK
RGAD
AD[31-0]
Z#
MK[71-0]
MEMREADY #
BFREE#
CB
DCOMPL#
ENDATACNT#
Приложение 4. Функциональная схема блока чтения команд и
управления
A[7-0]
DQ[13-0]
VCC
DD1
PROM 1Kx8
A
DQ
CS0
CS1
CS2
CS3
DQ[7..0]
CY 7C281A-25
VCC
DD2
PROM 1Kx8
A
DQ
CS0
CS1
CS2
CS3
DQ[13..8]
CY 7C281A-25
Функциональная схема блока чтения команд и управления (продолжение).
Функциональная схема ПНА
DQ[71-0]
DD17
PROM 16Kx16
A[13-0]
LO
LO
LO
LO
A
DQ
CS0
CS1
CS2
OE
DQ[15-0]
CY 7C276-25
DD18
PROM 16Kx16
LO
LO
LO
LO
A
DQ
CS0
CS1
CS2
OE
DQ[31-16]
CY 7C276-25
DD19
PROM 16Kx16
LO
LO
LO
LO
A
DQ
CS0
CS1
CS2
OE
DQ[47-32]
CY 7C276-25
DD21
PROM 16Kx16
LO
LO
LO
LO
A
DQ
CS0
CS1
CS2
OE
DQ[63-48]
CY 7C276-25
DD22
PROM 16Kx16
LO
LO
LO
LO
A
DQ
CS0
CS1
CS2
OE
DQ[71-64]
CY 7C276-25
Функциональная схема блока чтения команд и управления (продолжение).
Функциональная схема МПП
22
D[71-0]
Q[71-0]
DD12
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
D[17-0]
CLK
LO
HI
LO
Q[17-0]
CY 74FCT162823CT
DD13
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
D[35-18]
CLK
LO
HI
LO
Q[35-18]
CY 74FCT162823CT
DD14
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
D[53-36]
CLK
LO
HI
LO
Q[53-36]
CY 74FCT162823CT
DD15
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
D[71-54]
CLK
LO
HI
LO
Q[71-54]
CY 74FCT162823CT
Функциональная схема блока чтения команд и управления (продолжение).
Функциональная схема RGMK
A[3-0]
DQ[13-0]
VCC
DD1
PROM 1Kx8
A
DQ
CS0
CS1
CS2
CS3
OE#
DQ[7..0]
CY 7C281A-25
VCC
DD2
PROM 1Kx8
A
DQ
CS0
CS1
CS2
CS3
DQ[13..8]
CY 7C281A-25
Функциональная схема блока чтения команд и управления (продолжение).
Функциональная схема ПНАК
23
A[9-0]
DQ[31-0]
VCC
DD1
PROM 1Kx8
A
DQ
CS0
CS1
CS2
CS3
DQ[7..0]
CY 7C281A-25
VCC
DD2
PROM 1Kx8
A
DQ
CS0
CS1
CS2
CS3
DQ[15..8]
CY 7C281A-25
VCC
DD2
PROM 1Kx8
A
DQ
CS0
CS1
CS2
CS3
DQ[23..16]
CY 7C281A-25
VCC
DD2
PROM 1Kx8
A
DQ
CS0
CS1
CS2
CS3
DQ[31..24]
CY 7C281A-25
Функциональная схема блока чтения команд и управления (продолжение).
Функциональная схема CONSTMEM
24
25
RESET#
CLK
RESET#
CLK
RESET#
CLK
RESET#
CLK
OESAUSK2#
LDPUSK0#
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
LDPUSK1#
CY 74FCT162823CT
AD[31-16]
DD4
CY 74FCT162823CT
AD[15-0]
DD3
CY 74FCT162823CT
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
DD2
OETAD#
LDSRC
OE#
LOAD#
D
HB2
LOAD#
LDTAD#
32
РгТАД
Q
Z#
PRE#
KOU[15-0]
Z#
PRE#
A 15-0 Y15-0
BF
OESAUSK1# OESAUSK0#
MK
BF
OE
A 15-0 Y15-0
DD8
D
32
CLK
Y
32
OE
32
CY 74FCT162244CT
CY 74FCT162823CT
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
DD7
OE
BF
A 15-0 Y15-0
DD8
CY 74FCT162244CT
DD9
BF
A 15-0 Y15-0
CY 74FCT162823CT
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
DD6
РгАУСК
32
LDAUSK# OEAUSK#
ADDL
CY 74FCT162244CT
OE
CY 74FCT162244CT
DD9
BF
A 15-0 Y15-0
HB3
RESET#
CY 74FCT162244CT CLK
OE
OE
RESET#
CY 74FCT162244CT
DD9
BF
AD[31-16]
A 15-0 Y15-0
AD[15-0]
DD8
Функциональная схема блока чтения команд и управления (продолжение).
Функциональная схема REG_BLK
LDUSK#
СчТД
ENDATACNT#
D
HB1
CY 74FCT162823CT
TADSRC
ENDATACNT#
RESET#
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
KOU[15-0]
CLK
DD5
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
РгКОУ
DD1
CY 74FCT162823CT
AD[31-16]
AD[15-0]
РгПУСК
32
AD[31-0]
32
32
HB1
DD9
ADDL
BF
A 15-0 Y15-0
LDSRC
D
OE
CY 74FCT162244CT
DD10
BF
A 15-0 Y15-0
Y
32
32
32
32
CLK
OE
RESET#
CY 74FCT162244CT
D[31-0]
DD6
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
CY 74FCT162823CT
DD9
DD7
BF
A 15-0 Y15-0
DD11
1
CLK
OE
RESET#
CY 74FCT162244CT
SN74AHCT1G04
DD10
BF
A 15-0 Y15-0
RG
D17-0 Q17-0
CLK
CLKEN
CLR
OE
CY 74FCT162823CT
OE
CY 74FCT162244CT
LOAD#
DD9
Q[31-0]
BF
A 15-0 Y15-0
OE#
OE
CY 74FCT162244CT
DD10
BF
A 15-0 Y15-0
OE
CY 74FCT162244CT
Функциональная схема блока чтения команд и управления (продолжение).
Функциональная схема РгТАД
26
D[31-0]
DD1
D[3-0]
VCC
LENGTH[3-0]
LENGTH[3]
LENGTH[2]
LENGTH[1]
LENGTH[0]
DD5
SM
A3-0 S3-0
B3-0
CIN COUT
Y [3-0]
D[19-16]
CD74ACT283
DD6
SM
A3-0 S3-0
B3-0
CIN COUT
Y [7-4]
D[23-20]
CD74ACT283
Y [23-20]
DD7
SM
A3-0 S3-0
B3-0
CIN COUT
Y [11-8]
D[27-24]
CD74ACT283
SM
A3-0 S3-0
B3-0
CIN COUT
Y [27-24]
CD74ACT283
DD4
D[15-12]
SM
A3-0 S3-0
B3-0
CIN COUT
CD74ACT283
DD3
D[11-8]
Y [19-16]
CD74ACT283
DD2
D[7-4]
SM
A3-0 S3-0
B3-0
CIN COUT
DD8
SM
A3-0 S3-0
B3-0
CIN COUT
Y [15-12]
CD74ACT283
D[31-28]
SM
A3-0 S3-0
B3-0
CIN COUT
Y [31-28]
CD74ACT283
Y [31-0]
Функциональная схема блока чтения команд и управления (продолжение).
Функциональная схема ADDL
27
Документ
Категория
Компьютеры и периферийные устройства
Просмотров
11
Размер файла
316 Кб
Теги
веретенников
1/--страниц
Пожаловаться на содержимое документа