close

Вход

Забыли?

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

?

Феклин (2)

код для вставкиСкачать
Введение
Целью курсового проектирования является углубление и закрепление теоретических знаний
студентов, приобретение навыков разработки узлов ЭВМ на структурном, функциональном
и алгоритмическом уровнях.
Курсовой проект посвящен разработке структурной схемы гипотетической ЭВМ, принципиальной схемы и алгоритма работы конкретного блока, входящего в состав этой ЭВМ.
Курсовой проект состоит из двух частей.
Первая часть посвящена разработке структурной схемы гипотетической ЭВМ, описанию ее
функционирования. В состав ЭВМ входят как общие для всех вариантов блоки, так и
определяемые индивидуальным заданием.
Вторая часть проекта посвящена разработке принципиальной схемы и алгоритмов работы
конкретного блока, входящего в состав ЭВМ, и их детальному описанию.
1. Исходные данные
1.1. Общие исходные данные
Типовое задание на выполнение курсового проекта включает в себя общие для всех
вариантов и индивидуальные для каждого варианта исходные данные. Общие исходные
данные определяют минимальный состав проектируемой ЭВМ и ее основные параметры. В
состав ЭВМ входят следующие блоки:
 центральное обрабатывающее устройство (ЦОУ);
 микропрограммное устройство управления (УУ);
 оперативная память (ОП);
 блок синхронизации (БС);
 система прерывания программ (СПП);
 таймер;
 система ввода-вывода (СВВ);
 монитор, клавиатура, мышь;
 НГМД;
 «Винчестер».
В качестве дополнительных устройств в состав могут входить ЦАП и АЦП.
Основные параметры ЭВМ:
 адресность ЭВМ - двухадресная;
 длина команды - переменная.
Разрядность ЭВМ и минимальный объем оперативной памяти выбираются самостоятельно,
но должны удовлетворять следующим ограничениям:
 разрядность - не менее 16;
 емкость ОП - не менее 16 Mбайт.
1.2. Индивидуальные исходные данные






Архитектура ЭВМ – трехшинная с арифметическим сопроцессором;
Система прерываний – радиальная структура с обработкой на макроуровне;
КЭШ – команд и данных;
Организация ОП - обычная;
Ввод/вывод – прямой доступ к памяти (ПДП).
Разработке подлежат:
3
o Структурная схема ЭВМ с подробным описанием назначения состава,
выполняемых функций каждого узла и блока;
o Принципиальная схема контроллера ПДП. Схема должна быть ориентирована
на конкретный типономинал БИС.
o Детально рассмотреть запуск контроллера ПДП.
2. Разработка структурной схемы гипотетической ЭВМ
2.1. Выбор параметров системы
Разрабатываемая ЭВМ имеет магистральную трехшинную архитектуру. В состав общей
магистрали входят:
 шина адреса (Address Bus) – для задания физического адреса памяти: ОЗУ, ПЗУ,
буфера видеопамяти, буфера клавиатуры. Разрядность шины адреса - 32;
 шина данных (Data Bus) – обеспечивает обмен данными между блоками ЭВМ.
Разрядность шины данных - 32;
 шина управления (Control Bus) – осуществляет передачу управляющих сигналов для
блоков ЭВМ. К таким сигналам относятся: синхросигнал, сигнал сброса, сигнал
обращения к памяти, сигнал чтение/запись памяти.
Все внешние устройства (клавиатура, монитор, винчестер и т.д.) подключаются к системной
шине через контроллеры. Это обеспечивает сопряжение ВУ с шиной и приведение их к
единому протоколу обмена информацией. Каждый контроллер имеет собственную линию
запроса прерывания (радиальная структура). Приоритеты прерываний того или иного
устройства распределены статически и определяются структурой контроллера прерываний, а
именно – приоритеты соответствуют порядку подключения устройств к контроллеру.
Периферийные устройства (ПУ), оперирующие большими блоками данных (НDD, порт сети
и т.п.) могут быть подключены через контроллер ПДП, который освобождает процессор от
работы по пересылке данных между ПУ и ОП.
Для работы с интерфейсными регистрами устройств, входящих в состав ЭВМ, используется
отображение в адресное пространство ЦП. Для реализации такого подхода в состав
контроллеров устройств включаются блоки анализа адреса, которые осуществляют
непосредственное управление регистрами.
Также для увеличения скорости работы с ОП и уменьшения затрат на высокоскоростные
микросхемы памяти в системе предусмотрен КЭШ данных и команд.
Структурная схема разработанной ЭВМ представлена в приложении 1.
На рисунке 1 приведен формат команд, используемых в системе.
Рис.1 Формат команды
Команда может состоять из одного или двух 32-разрядных слов, в которых:
КОП – код операции;
ТА – тип адресации;
RGB,RGA – адреса РОН ЦПЭ-та;
DATA – непосредственно данные (необязательная часть).
10 младших разрядов первого командного слова остаются неиспользованными (в резерве).
4
Разрешены следующие типы адресации:
Табл.1 Кодировка типов адресации
Перемещение Источники
TA данных
адресов
0
RG - RG
RGA, RGB
1
RAM - RG
[RGA], RGB
2
RAM - RG
[RGA+DATA],
RGB
3
RG - DATA
DATA, RGB
4
RG - RAM
[RGA], RGB
5
RAM - RAM
[RGA], [RGB]
6
RAM - DATA [RGA], DATA
[RGA],
RAM - RAM [DATA]
7
Описание
Источник1 – RGA
Источник2/Приемник - RGB
Источник1 – находится в RAM по адресу в RGA
Источник2/Приемник - RGB
Источник1 – находится в RAM по адресу DATA со
смещением в RGA
Источник2/Приемник – RGB
Источник1 – непосредственно операнд
Источник2/Приемник - RGB
Источник1/Приемник – находится в RAM по адресу
в RGA
Источник2 – RGB
Источник1 – находится в RAM по адресу в RGA
Источник2/Приемник – находится по адресу в RGB
Источник1/Приемник – RAM по адресу в RGA
Источник2 – непосредственно операнд
Источник1 – RAM по адресу в RGA
Источник2/Приемник – RAM по адресу DATA
Данные в системе хранятся и передаются 32-разрядными словами.
2.2. Центральный процессор
В функции центрального процессора (ЦП) входят: выполнение команд, хранящихся в
основной памяти (ОП), и координирование работы всех узлов ЭВМ. Работа ЦП основана на
принципе микропрограммного управления.
В состав ЦП входят: операционный блок (ОБ) и микропрограммное устройство управления
(МУУ).
Функциями ОБ является выполнение различных операций над данными (логические,
арифметические, сдвиговые), а также формирование адресов. Для выполнения
арифметических операций умножения и деления предусмотрен арифметический
сопроцессор. Принято решение организовать структуру, в которой главный и
арифметический процессоры работают по очереди, выполняя каждый команды из своего
набора под управлением одного МУУ. Таким образом, адресный сопроцессор уже не
является отдельной структурной единицей, а входит в состав ОБ.
В функции МУУ входит выработка последовательности микрокоманд, в результате
выполнения которых осуществляется микропрограммный принцип функционирования ЭВМ.
Также МУУ отвечает за обработку системных прерываний.
Для реализации ЦП были использованы СБИС служащие для построения высоко
производительных систем на основе принципа микропрограммирования.
Центральный процессорный элемент: на основе двух 16-разрядных процессорных секций
IDT49C402B;
Арифметический сопроцессор: на основе 32-разрядного параллельного умножителя
Am29C323;
Секвенсор микрокоманд: Am29331.
Разработанная структурная схема ЦП приведена в приложении 2.
5
2.2.1. Операционный блок
В состав ОБ входят: центральный процессорный элемент (ЦПЭ), блок логики сдвигов (БЛС),
блок статусного регистра (БСР), селекторы адресов РОН (MUX_A, MUX_B) для ЦПЭ,
селектор источника выходных данных (MUX_Вых), селектор источника входных данных
ЦПЭ-та (MUX_D), селектор источника данных для ПУ (MUX_ПУ) и интерфейсные
регистры входных данных (РГД_Вх), выходных данных (РГД_Вых), адреса (РГД_Вых).
Для построения 32-разрядного ЦПЭ используется две 16-ти разрядные микропроцессорных
секции IDT49C402В. Секция IDT49C402В содержит внутренний регистровый файл с
организацией 64*16 бит.
Выбор источника адресов РОН, между регистром команд и регистром микрокоманд
осуществляют селекторы MUX_A и MUX_B.
Загрузка данных в ЦПЭ осуществляется через вход D либо из входного регистра шины
данных (РГД_Вх) либо с выхода ПУ, выбор осуществляет селектор источника входных
данных ЦПЭ-та (MUX_D) под управлением соответствующего бита микрокоманды (МК).
Результат операций ЦПЭ-та выводится на выход Y и подается на выходной регистр шины
адреса (РГА_Вых), селектор источника выходных данных (MUX_Вых) и селектор источника
операнда ПУ (MUX_ПУ).
Операнд для ПУ может загружаться либо с выхода ЦПЭ-та, либо со своего собственного.
Выбор осуществляет селектор MUX_ПУ, под управлением соответствующего бита MK.
Данные с выхода селектора подаются на оба входа ПУ, поэтому загрузка операндов
осуществляется за два такта: в первом загружается регистры входа X, а во втором регистры
входа Y (кроме случая, когда необходимо вычислить квадрат операнда – загрузка сразу с
обоих входов).
Результат вычислений ПУ подается на селектор источника выходных данных (MUX_Вых) и
селектор источника входных данных ЦПЭ-та (MUX_D).
ЦПЭ способен выполнять две операции сдвига: логический сдвиг вправо или лево
(направления задается битом инструкций I7). Для реализации более сложных сдвиговых
операций предусмотрен БЛС, который представляет собой комбинационную схему для
формирования сигналов на двунаправленных входах/выходах ЦПЭ-та (P0, Q0, P31, Q31), под
управлением четырех битов МК (определяют тип сдвига), одного бита инструкций ЦПЭ-та
(I7 -задает направление сдвига) и трех битов состояния (N, OVR, C). Помимо этого БЛС
формирует сигнал L, соответствующий выдвигаемому биту.
БСР служит для сохранения признаков, порождаемых ЦПЭ (N, Z, OVR, C или L),
подаваемых на входы состояния секвенсора, в течении следующего такта.
2.2.2. Микропрограммное устройство управления
Основной функцией микропрограммного устройства управления (МУУ) является
формирование последовательности микрокоманд, содержащих инструкции для всех узлов
ЭВМ, на основе макрокоманд. Для этих целей в состав МУУ входят: Регистр команд (РГ_К),
преобразователь начального адреса (ПНА), секвенсор микрокоманд, микропрограммная
память (МПП) и регистр микрокоманд (РГ_МК).
Секвенсор работает по следующему принципу:
В МПП хранятся все возможные микрокоманды (максимум ограничен разрядностью
секвенсора, для Am29331- это 16 разрядов, которые позволяют адресовать 64К
микрокоманд). В ПНА хранятся адреса МПП, по которым расположены первые
микрокоманды из последовательности того или иного алгоритма. Функцией ПНА является
формирование начального адреса в МПП по полю КОП регистра команд, задающего
конкретную макро-операцию. В каждой микрокоманде задана вся необходимая информация
для работы ЭВМ на текущем такте, а также информация, на основе которой можно
вычислить адрес следующей микрокоманды (нелинейные алгоритмы) либо непосредственно
6
адрес следующей микрокоманды (линейные алгоритмы). В функции секвенсора входит
формирование адреса следующей микрокоманды на основе информации содержащейся в
текущей микрокоманде и сигналов на входе тестирования внешних условий.
Разделяют два режим работы секвенсора: когда адрес следующей микрокоманды строго
задан и не зависит от результатов работы ОБ на текущем шаге, и когда адрес следующей
микрокоманды зависит от результата работы ОБ на текущем шаге. В первом случае процесс
выработки адреса следующей микрокоманды совмещается с выполнением текущей. Во
втором же случае начать выработку можно лишь после появления флагов из ОБ, то есть
после завершения текущего такта. Из этого следует, что в работе МУУ будут присутствовать
холостые такты.
Последовательность работы МУУ следующая:
При запуске или сбросе секвенсор вырабатывает нулевой адрес МПП, по которому
расположен алгоритм загрузки системы из ОП.
Конец выполнения каждой макрокоманды связано с чтением следующей из ОП.
Прочитанная макрокоманда загружается в регистр команд. ПНА формирует начальный
адрес алгоритма по полю КОП и передает его секвенсору. Секвенсор передает его на МПП, а
которой происходит выборка первой микрокоманды алгоритма. В следующем такте
микрокоманда с выходов МПП будет загружена в регистр микрокоманд. ОБ станет
выполнять инструкции, содержащиеся в микрокоманде, а секвенсор вырабатывать адрес
следующей и т.д.
Однако ЭВМ должна уметь обрабатывать события, возникновение которых равновероятно
для любого момента времени и не может быть предсказано заранее. Реакцией на такое
событие является прерывание выполнения текущей программы, и запуск программы
обработчика события, вызвавшего это прерывание.
Разрабатываемая ЭВМ поддерживает прерывания на макро уровне, при которых переход к
программе обработчику осуществляется только после завершение текущей макрокоманды
прерываемой программы. Такой подход сокращает аппаратные средства, так как сохранению
подлежит только адрес возврата из прерывания.
Секвенсор Am29331 имеет стек для хранения адресов возврата глубиной 33, что позволяет
обрабатывать вложенные прерывания. Если стек оказался заполнен, все последующие
прерывания будут игнорироваться.
Для организации обработки прерываний на макро-уровне необходимо:
Секвенсор имеет три вывода, связанных с обработкой прерываний:
INTR – вход запроса на прерывание (активный высокий уровень - 1);
INTА – двунаправленный тристабильный вывод подтверждения прерывания (активный
низкий уровень - 0);
INTEN – вход разрешения прерывания (активный высокий уровень - 1).
Пока на входе INTEN=0 все прерывания запрещены. Для управления этим входом
предусмотрен бит микрокоманды, который принимает разрешающее значение (1), только в
микро-командах завершающих алгоритм текущей макрокоманды. Только после загрузки
последней микрокоманды, выполняемой команды в РГ_МК секвенсор получает разрешение
на прерывание. Если к этому моменту времени контроллер прерываний сформировал запрос,
подав высокий уровень на вход INTR, то секвенсор выдаст низкий уровень на выход INTA.
Этот сигнал является положительным ответом на запрос и разрешает вывод адреса ОП, по
которому расположена программа обработчик прерывания, на шину данных. По завершению
текущего такта (по фронту синхросигнала), секвенсор загрузит адрес возврата из прерывания
в стек. После этого, независимо от типа прерывания, ЦП производит чтение адреса с шины
данных с последующей загрузкой команды, расположенной в ОП по прочитанному адресу.
Таким образом, происходит переход к программе обработчику прерывания. По завершению
этой программы секвенсор загрузит адрес возврата из стека и продолжит выполнение
прерванной программы.
7
2.3. Основная память
Основная память (ОП) служит для хранения информации (данных, программ,
промежуточных и конечных результатов обработки). В состав ОП входит оперативная (ОЗУ)
и постоянная (ПЗУ) память. ОЗУ используется для хранения временных данных, а ПЗУ для
хранения неизменяемых и энергонезависимых данных (как минимум базовой системы вводавывода, содержащую программную поддержку ресурсов ЭВМ и обеспечивает
конфигурирование аппаратных средств и их диагностику при запуске).
ЦП оперирует 32-разрядными адресами, что позволяет адресовать 4Гслова. Разрядность
слова – 32, следовательно, максимальный объем ОП составляет 4Гбайта.
ПЗУ целесообразно реализовать на Flash-памяти, которая является наиболее практичной
(позволяет вносить изменения в хранимые данные без извлечения из ЭВМ) и благодаря
упрощению внутренней структуры стоит дешевле, чем EEPROM.
Емкость ПЗУ – 8Мб.
ОЗУ должно обладать достаточным быстродействием, для поддержания темпа работы ЦП. В
противном случае неизбежны простои процессора, снижающие быстродействие всей
системы в целом. Реализовать такое ОЗУ возможно как на микросхемах DRAM, так и на
SRAM. Выбор основывается на следующих размышлениях:
SRAM – обладает большим быстродействием чем DRAM, но и большей стоимостью.
Данные, хранимые в DRAM, нуждаются в постоянной регенерации.
Вероятность сбоя DRAM , больше чем в SRAM, а так как использования схем контроля в
системе не предполагается, то возникшие ошибки не будут обнаружены.
Относительно малое быстродействие DRAM может быть компенсировано наличием КЭШ-а
команд и данных.
Следует учесть, что возможность адресации 4Гбайт памяти, не предполагает обязательное
наличие ОП такой емкости. Также установка SRAM не обязывает использовать микросхемы
последних разработок с действительно высоким быстродействием и ценой. Использование
дорогой памяти не заставит работать быстрей ЦП, с тактовой частотой ограниченной
десятками МГц.
Учитывая все вышесказанное, принято решение использовать дешевые микросхемы SRAM
малого быстродействия, но отличающиеся от DRAM большей надежностью. Проблема
быстродействия решается использованием КЭШ-а команд и данных.
Емкость ОЗУ – 8Мб.
Таким образом, суммарная емкость ОП составляет – 16Мб, для адресации которой
потребуется 22 разряда. Учитывая требования к возможности увеличения емкости ОЗУ
организация адресного пространства следующая (рис.2).
FFFFFFFF
Резерв
00400000
003FFFFF
SRAM
00200000
001FFFFF
FLASH
00000000
Рис.2 Карта расположения памяти в адресном пространстве
8
Из этого следует, что 21-ой бит служит для разделения адресного пространства ПЗУ и ОЗУ.
Если он принимает значение 0, то происходит обращение к ПЗУ, если 1, то к ОЗУ.
При этом только те адреса, старшие 10 разрядов (с 22 по 31) которых равны 0, принадлежат
адресному пространству ОП.
Помимо ПЗУ и ОЗУ в состав ОП входит контроллер, управляющий ее работой. Он
выполняет следующие функции:
 Определение принадлежности текущего адреса на шине ADRES_BUS к пространству
ОП, а затем к ПЗУ или ОЗУ уже внутри ОП.
 Формирование сигналов управления микросхемами памяти на основе системных
сигналов R/~W (чтение/запись) и ~MEM (разрешение вывода данных на шину
DATA_BUS).
 Буферизация данных с шины DATA_BUS – данные, предназначенные для сохранения
в ОП, считываются в буфер контроллера, а затем переписываются непосредственно в
память. Это позволяет быстрей освобождать шишу данных и увеличивает общее
быстродействие системы.
 Формирование диаграмм записи и чтения (освобождает систему от необходимости
соблюдать режимные параметры, которые к тому же разные для ПЗУ и ОЗУ).
В соответствии с представленным описанием структурная схема ОП выглядит следующим
образом (рис.3).
Рис.3 Структурная схема ОП
Из структурной схемы, представленной на рисунке 3 видно, что помимо управляющих
сигналов ~MEM и R/~W в блок контроллера подается синхросигнал СLK. Он необходим для
тактирования входного буфера. Адрес ОП и данные, предназначенные для сохранения по
этому адресу, появляются на системной шине синхронно (загрузка выходных регистров ЦП
происходит по фронту CLK). Загрузка входного буфера контроллера ОП происходит спустя
задержку Tбуф относительно фронта CLK. Задержка Tбуф вносится внутренними средствами
синхронизации контроллера и необходима для анализа выставленных ЦП адреса и
управляющих сигналов, на основе которого формируется сигнал разрешения или запрета
загрузки буфера ОП. Помимо этого контроллер формирует сигнал Mem_Ready, для
оповещения системы о готовности ОП к следующей операции.
9
2.4. КЭШ команд и данных
В предыдущем пункте было принято решение о построении ОЗУ на микросхемах SRAM
которые позволяют снизить вероятность появления ошибок. Также было решено не
использовать быстрых и дорогих микросхем, а ограничиться более медленными и дешевыми
образцами. Это решение было принято исходя из возможности построения двухуровневой
системы памяти, когда между процессором и ОП устанавливается небольшая по объему, но
быстродействующая буферная память, в которую копируются участки ОП, к которым
производится обращение со стороны процессора. Такая память называется кэш-памятью.
Принцип работы кэш-памяти следующий: в случае если ЦП хочет прочесть слово из
основной памяти, сначала осуществляется поиск копии этого слова в КЭШе. Если это слово
уже в нем (попадание в КЭШ), то обращение к ОП не происходит, а в ЦП передается слово
из КЭШа. В случае если такого слова в КЭШе не обнаружено (промах), то слово передается
в процессор из ОП с одновременной записью его в КЭШ (а вместе с ним и еще несколько
близлежащих слов – оперирует блоками). Постепенно КЭШ заполняется и при очередной
вставке необходимо определить, в соответствии с действующим алгоритмом замещения,
вероятность обращения к какому блоку меньше всего и следовательно удаление которого в
меньшей степени скажется на дальнейший процент попадания.
Функции заполнения КЭШа, замещения блоков данных и поиска данных по осуществляет
контроллер кэш памяти.
Принято решение об организации объединенного КЭШа команд и данных. В таком КЭШе
данные и команды хранятся вместе. Преимущество такой организации в том, что при
заданной емкости КЭШа ему свойственна более высокая вероятность попаданий по
сравнению с раздельным типом, т.к. оптимальный баланс между командами и данными
устанавливается автоматически. Например, если в выполняемой фрагменте программы
обращение к памяти связано в основном с выборкой команд, а не данных, кэш-память будет
иметь тенденцию насыщаться командами, и наоборот. А так как команды и данные
передаются по одной шине и хранятся в одной ОП, то одновременная их выборка все равно
физически невозможна.
Способ отображения кэш-памяти выбран множественно-ассоциативный, т.к. является
компромиссным между прямым отображением («+» - простая реализация, «-» - относительно
низкий уровень попаданий), и полностью ассоциативным («+» - гибкая выборка при выборе
строки для обновления, «-» - высокая стоимость).
Алгоритм замещения – LRU (Last Recently Used), который предполагает подсчет обращений
к тому или иному блоку (выполняется контроллером).
Также контроллер КЭШ памяти должен обновлять свои данные при изменении
соответствующего блока в ОП и наоборот (сквозная запись), однако такой подход приводит
к существенному снижению быстродействия. Компромиссным решением является
использование бита достоверности. При начале работы все биты достоверности
устанавливаются в 0. Когда блок КЭШа первый раз загружается из ОП, его бит
достоверности устанавливается в 1. Если блок ОП обновляется из другого источника, минуя
кэш (при прямой передаче данных из ПУ в ОП), контроллер проверяет находится ли,
загружаемый блок в КЭШе. Если да, его бит достоверности устанавливается в 0, чтобы в
КЭШе не оказалось устаревших данных. При обратной пересылке данных из ОП в ПУ
методом ПДП данные находящиеся в ОП могут не отображать изменений внесенных в
кэшируемую копию. Поэтому перед их копированием необходимо переписать все изменения
из КЭШа в ОП (т.к. прямая пересылка данных между ОП и ПУ осуществляется редко, то это
не скажется на быстродействии системы). Таким образом КЭШ всегда согласован с ОП.
Для проектируемой ЭВМ принята следующая организация КЭШа:
 Кэшированию подвергается только ОЗУ, а не вся ОП – ПЗУ используется крайне
редко, поэтому использование КЭШа не приведет к повышению
производительности.
10

Вся ОЗУ представлена 131072-мя блоками по 16-ть 32-разрядных слов в каждом.

КЭШ состоит из 1024-ти множеств, по 4 блока в каждом.
Отображение адреса ОП на структуру КЭШа представлено на рисунке 4.
Рис.4 Отображение адреса ОП на КЭШ
Выборка из КЭШа происходит следующим образом:
Для каждого блока ОП поле «Множество» строго определяет множество, в которое может
быть записан блок. В нутрии множества блок может занять любое свободное место (всего в
множество может быть записано 4 блока). Если свободных мест нет, то новый блок
вытесняет один из старых, в соответствии с дисциплиной LRU.
При поиске слова в КЭШе сначала определяется множество, в котором может быть найден
блок, содержащий искомую запись. Затем внутри этого множества осуществляется
ассоциативный поиск по «Тэгу». Если блок найден, то положение искомого слова внутри
него определяет поле «Слово». Если поиск не дал результата, то искомого блока в КЭШе нет
и следует загрузить его из ОП.
К каждому блоку прикреплена следующая служебная информация:
 Тэг (7бит)
 Бит достоверности (1бит)
 Счетчик частоты обращения ()
Емкость КЭШа (без учета служебной информации) составляет 256Кб. Организация
4Кx512бит (4К = 1024множества*4блока; 512 = 16слов*32разряда, так как обмен между
контроллером и КЭШем происходит по-блочно).
На рисунке 5 представлена структурная схема организации КЭШ-памяти.
Рис.5 Структурная схема организация КЭШ-памяти
11
2.5. Система прерывания программ
Система прерывания программ (СПП) предназначена для обработки событий, возникновение
которых равновероятно для любого момента времени и не может быть предсказано заранее.
Такие события могут быть связаны с работай устройств ввода/вывода или внешних
устройств. В любом случае, если возникновение таких ситуаций допустимо и учтено
разработчиками ЭВМ, реакцией на него является прерывание текущей программы и вызов
программы обработчика прерывания. Прерванная программа может быть начата заново
(наименьшие аппаратные затраты) либо продолжена с места прерывания (большие
аппаратные затраты, но и большее быстродействие).
В функции СПП входит:
 Формирования сигнала запроса на разрешенные прерывания в соответствии с
приоритетами устройств (блокировка запрещенных прерываний осуществляется
методом маскирования).
 Сохранение текущих параметров системы, необходимых для возобновления
выполнения прерванной программы, после завершения программы обработчика
прерывания.
 Восстановление сохраненных параметров и возобновление прерванной программы.
Перечисленные функции делят между собой контроллер прерываний (КП) и
микропрограммное устройство управления (МУУ).
Заданная архитектура ЭВМ поддерживает радиальные прерывания на макро-уровне:
Как было сказано в пункте 2.2.2 прерывания макро-уровня предполагают переход к
программе обработчику только по завершению выполнения текущей команды. Такой подход
проще реализуем и требует меньших аппаратных затрат (для сохранения текущего состояния
достаточно запомнить адрес возврата из прерывания). С другой стороны, простота
реализации сказывается на времени реакции с момента поступления прерывания до начала
выполнения программы обработчика. Данный параметр СПП относится к МУУ.
Что касается КП, то его структура определяет способ обнаружения прерывания и выделения
устройства, чей запрос будет выполнен в первую очередь (распределение приоритетов).
Радиальная структура предполагает наличие отдельных линий запроса для каждого
устройства. При этом приоритет устройства строго определен последовательностью его
подключения к КП и не может быть изменен в процессе работы. Такая структура проста в
реализации и обладает хорошим быстродействием, что компенсирует задержки ответа МУУ.
При этом подходе, устройству, нуждающемуся в прерывании, требуется лишь выставить
сигнал запроса на выделенную линию.
На рисунке 6 приведена структурная схема КП, его связь с ПУ и МУУ.
Рис.6 Структурная схема обработки прерываний в ЭВМ
12
Все устройства системы, генерирующие прерывания (максимум 8) связаны с КП своей
выделенной линией запроса. Линии подключены ко входам приоритетного шифратора, при
этом как уже было сказано порядок подключения задает приоритет в обслуживании. При
подключении устройств необходимо учитывать, что приоритет интерфейсов ввода/вывода
должен быть меньше чем у внешних устройств (первыми следует подключить контроллеры
клавиатуры, мыши, адаптер монитора, а затем контроллер ПДП).
Независимо от того, сколько запросов поступило одновременно на вход приоритетного
шифратора (ПШ) на выходе будет выдан вектор, соответствующий линии с наивысшим
приоритетом. Вектор подается в блок формирования запроса, внутри которого происходит
маскирование, в результате чего, только разрешенные прерывания будут обработаны. Маска
формируется ЦП и хранится в регистре маски (РГ_Маски), управление загрузкой которого
осуществляет блок анализа адреса (БАА) (используется метод отображения регистра в
адресное пространство ЦП). ЦП знает адрес, за которым закреплен данный регистр и
загружает в него маску для запрета определенных прерываний.
Дешифратор векторного адреса (ДВА) получает вектор прерывания уже после маскирования
и преобразует его в адрес программы обработчика. Одновременно с этим выставляется
запрос на прерывания ЦП по линии INTR. Завершив текущую команду, МУУ сформирует
сиг-нал подтверждения INTA=0. Этот сигнал разрешает подключение КП к системной шине
для вывода адреса ОП, по которому расположена программа обработчик прерывания. ЦП
читает этот адрес и загружает соответствующую команду из ОП. Одновременно с этим
должен быть снят сигнал INTR=1, так как обработка прерывания уже началась. Следующее
переключения сигнала INTR в состояние логической единицы может быть связано только с
двумя событиями:
 По завершению обработки текущего прерывания, устройство, запросившее его,
снимает запрос со своей линии, тем самым, разрешая прерывания устройств с
меньшим приоритетом. Теперь на выходе ПШ будет сформирован новый вектор,
и формирователь запроса должен выставить новый запрос к ЦП.
 Во время обработки текущего прерывания на вход ПШ поступил новый запрос
по линии с большим приоритетом, чем у текущего. На выходе ПШ будет
сформирован новый вектор, а формирователь запроса выставит запрос к ЦП,
требующий прервать выполнения текущего прерывания на время обработки
запроса с большим приоритетом.
В работе контроллера прерываний возможна ситуация, когда смена вектора прерывания на
выходе приоритетного шифратора произошла еще до запуска программы обработчика
текущего прерывания. Такое событие связано с поступлением запроса на более
приоритетный вход шифратора. В этом случае новый вектор будет дежурить на входе
формирователя запроса, до тех пор, пока ЦП не начнет обработку текущего. Только после
этого начнется формирование нового запроса, который прервет выполнение текущего.
Следит за соблюдением данного режима работы схема формирователя запроса, которая в
отличие от приоритетного шифратора работает синхронно.
Алгоритм работы МУУ по обработке прерываний описана в пункте 2.2.2, а на рисунке 7
приведена блок схема алгоритма обработки прерываний микропрограммным устройством
управления на макро-уровне.
13
Разрыв
Начало
Форм. адреса и выборка МК
Нет
INTEN=1
&
INTR=1
Да
Загрузка Рмк
INTA=0
Нет
Последняя
МК?
Загрузка команды выполняющейся программы из ОП в
регистр команд.
Адрес возврата из прерывания
сохраняется в стэк
Да
INTEN=1
Загрузка команды обработчика прерывания из ОП.
Нет
Программа
завершена
Разрыв
Да
Конец
Рис.7 Блок-схема алгоритма обработки прерываний на макро-уровне
2.6. Система ввода-вывода
Система ввода вывода (СВВ) осуществляет связь между внешними источниками данных и
ОП ЭВМ. При этом обмен данными происходит под управлением ЦП. Альтернативным
решением является организация СВВ с прямым доступом к памяти (ПДП). Такая
архитектура предполагает наличие контроллера ПДП (КПДП), под управлением которого и
осуществляется обмен данными без непосредственного участия процессора. Роль последнего
ограничивается выполнением программы прерывания, результатом которой является запуск
работы КПДП. При этом использование КПДП позволяет увеличить темп обмена за счет
сокращения операций передачи ровно вдвое:
В обычном режиме пересылка данных между ОП и ВУ требует вначале приема данных в
процессор, а затем выдачи их приемнику. КПДП осуществляет непосредственный обмен
между ВУ и ОП.
Принято разделять две противоположные реализации прямого доступа к памяти:

С квантованием цикла памяти
Режим, при котором каждый цикл памяти делится на два временных интервала, один
из которых отводится ЦП, а второй контроллеру ПДП. Запустив работу контроллера,
ЦП может продолжить свою работу. Однако применение такого подхода требует
использования быстродействующих микросхем памяти, что не всегда приемлемо.

С блочными передачами (с блокировкой ЦП)
При таком режиме работа процессора останавливается на все время передачи блока
данных. Темп обмена при этом ограничен лишь физическими возможностями ОП и
ВУ. Данный режим приемлем, так как простой процессора в ожидании завершении
работы контроллера ПДП в два раза меньше времени, которое он бы потратит на
передачу данных между ОП и ВУ самостоятельно.
14
Хотя контроллер ПДП работает без участия процессора, он управляется выполняемой
процессором программой. В частности, чтобы инициализировать пересылку блока слов,
процессор пересылает контроллеру начальный адрес этого блока, сведения о количестве
составляющих его слов и направление пересылки. Получив такую информацию, контроллер
приступает к выполнению операции. По окончании пересылки он информирует об этом
процессор с помощью сигнала прерывания. Пока контроллер ПДП производит пересылку
данных, запросившая ее программа не может продолжать свою работу, и процессор часто
используется для выполнения другой программы. По окончанию пересылки процессор
может вернуться к исходной программе.
В состав простейшего контроллера ПДП должны входить следующие интерфейсные
регистры, используемые ЦП для инициализации операций пересылки данных: регистр
начального адреса, регистр счетчика слов и регистр состояния и управления. Регистр
состояния и управления содержит следующие поля:




R/~W – направление пересылки (из ОП в ВУ или наоборот, при этом операции чтения
и записи определяются относительно ОП).
DONE – выполнив пересылку блока данных контроллер устанавливает этот бит в 1,
показывая свою готовность к следующей операции.
IE – флаг разрешения прерывания. Если этот флаг установлен в 1, то по окончании
пересылки блока данных контроллер должен запросить прерывание.
IRQ – флаг запроса прерывания (если IRQ=1 контроллер требует прерывания).
В состав контроллера может быть включен буфер, для хранения данных. В таком случае
контроллер ПДП считывает блок данных из ОП и сохраняет его в своем входном буфере.
Пересылка данных при этом осуществляется в монопольном режиме с максимально
допустимой для системной шины и ОП скоростью. После этого данные пересылаются из
буфера в ВУ с требуемой скоростью.
Так как при работе системы возможны ситуации, когда сразу несколько устройств пытаются
одновременно использовать системную шину (ЦП и КПДП, возможно в системе будет
работать сразу несколько КПДП), необходимо предусмотреть механизм арбитража,
разрешающий подобные конфликты.
Работа системы ввода-вывода организованна следующим образом:
Для того, чтобы начать пересылку блока данных из ОП на одно из ВУ (или наоборот),
программа записывает адрес и значение счетчика слов в регистры соответствующего
контроллера ПДП. После этого контроллер уже независимо от процессора выполняет
указанную операцию.
Подробное описание структуры и работы разработанного контроллера ПДП приведено в
пункте 3.
2.7. Система синхронизации
Система синхронизации предназначена для обеспечения синхронной работы всех узлов
ЭВМ. В ее состав входит блок синхронизации (БС), местные схемы тактирования и блок
начальной установки (БНУ).
В задачи БС входит генерация опорной синхропоследовательности заданной формы и
частоты. Частота тактового сигнала задает темп работы системы и определяется ее
быстродействием. Форма тактирующего сигнала зависит от структуры управляемого узла, и
поэтому не может быть одинаковой для всех устройств системы. Для формирования
синхроимпульсов заданной фазности и скважности внутри каждого узла могут
использоваться местные схемы тактирования. Но и в этом случае используемые
15
синхросигналы вырабатываются на основе общего опорного сигнала и всегда будут кратны
ему.
В состав БС входит задающий генератор (ЗГ), формирователь опорных сигналов (ФОС) и
размножитель сигналов (РС). Основной функцией ЗГ является генерации прямоугольного
меандра определенной частоты (T-период вырабатываемого сигнала). На основе
полученного меандра ФОС формирует сигнал заданной формы и частоты, при этом
длительности импульса и промежутка всегда будут кратными T. Далее полученный опорный
сигнал подается в РС, на выходах которого формируется заданное число копий исходного
сигнала. Использование РС обусловлено невозможностью использования мощного
генератора с разводкой от него сигналов по всем элементам памяти. Так как такое решение
приводит к возникновению помех, вызываемых сильноточными цепями синхронизации.
Размноженный опорный сигнал, поступая в узел ЭВМ, может быть подвергнут
дополнительным преобразованием местной системы тактирования. Современные
БИС/СБИС зачастую снабжаются схемами коррекции (PLL и DLL), в задачи которых входят
коррекция расфазирования синхросигналов и, при необходимости, умножение их частоты.
Работа всех устройств системы в одном темпе, которую обеспечивает БС, еще не означает их
взаимной синхронности. Перед началом работы все системные устройства должны быть
переведены в определенное исходное состояние под действием сигнала сброса, выработкой
которого занимается блок начальной установки.
Как правило, БЛС формирует два сигнала сброса:
 AREST – цифровой сигнал асинхронного сброса. Формируется микросхемой
начальной установки, которая управляет его длительностью в зависимости от
характера нарастания аналогового сигнала на ее тестовом входе. Таким образом,
разработчику предоставляется возможность задать длительность сигнала,
достаточную для надежного сброса.
 RESET – цифровой сигнал синхронного сброса. Получается из AREST путем
пропускания через триггер, тактируемый опорным синхросигналом. Предназначен
для сброса МУУ и подается на соответствующий вход секвенсора микрокоманд.
Сигнал AREST подается в БС и на его основе вырабатывается сигнал HOLD для ЦП.
Запуск системы происходит следующим образом:
При включении или возобновлении питания БНУ формирует сигнал ARESET. Пока
ARESET=0 сигнал HOLD принимает значение 1, запрещающее тактирование системы.
Сигнал RESET равный 0, подается на вход сброса секвенсора микрокоманд. Тот в свою
очередь формирует нулевой адрес МПП, по которому находится начальная микрокоманда
алгоритма инициализации системы. Спустя задержку выборки, на выходе МПП появляется
требуемая МК. Длительность асинхронного сигнала ARESET должна быть не меньше суммы
задержек на формирования нулевого адреса секвенсором и выборки по нему микрокоманды
из МПП. После того как сигнал ARESET примет значение 1, будет снят запрет на
тактирование и по первому фронту, во-первых, произойдет загрузка микрокоманды,
дежурящей на входе РГмк, а во-вторых, RESET примет значение равное 1, разрешая
дальнейшую работу секвенсора.
Структурная схема системы синхронизации приведена на рисунке 8.
16
Рис.8 Структурная схема блока синхронизации и
блока начальной установки
2.8. Таймер
Операционная система (ОС), отвечающая за координацию всех действий ЭВМ, выполняет
операции ввода-вывода, взаимодействует с пользовательскими программами и управляет
ими, интенсивно используя прерывания. Механизм прерываний позволяет ОС переключаться от одной пользовательской программы к другой. Если ЭВМ поддерживает два режима
работы, супервизора и пользовательский, получив запрос прерывания, он всегда переклюючается в режим супервизора. Завершив работу по обработке прерывания, процессор переклюючается обратно в пользовательский режим. В случае, когда процессор работает в
многозадачном режиме (выполняет сразу несколько пользовательских программ
одновременно) применяется стандартная технология, называемая квантованием времени.
Суть ее заключается в том, что каждая прикладная программа выполняется в течении
короткого промежутка времени T, называемого квантом времени, после чего другая программма выполняется в течении своего кванта времени и т.д. Величина T определяется по
непрерывно работающим аппаратным часам. Основываясь на показаниях этих часов, таймер
генерирует системные прерывания каждые T секунд. Режим работы таймера задается ОС,
которая имеет возможность изменять величину кванта T, выделяемого для работы над Пользовательской программой, и кванта времени работы супервизора или вовсе запрещать счет.
2.9. Периферийные устройства
Под термином периферия подразумевают любые подключенные к компьютеру внешние
устройства. Все периферийные устройства можно разделить на две категории в соответствии
с их назначением. Устройства первой категории выполняют операции ввода-вывода. Это
клавиатура, мышь, принтер, монитор, звуковая карта, сетевая карта и т.д. Ко второй
категории относятся устройства, предназначенные главным образом для хранения данных,
то есть внешние запоминающие устройства.
17
2.9.1. Клавиатура
Клавиатура является одним из основных устройств ввода, обеспечивающих интерактивное
общение пользователя с ЭВМ. В состав клавиатуры входит массив ключей, генерирующих
сигналы нажатия клавиш, и микропроцессор, который воспринимает эти сигналы, формируя
двухбайтовый пакет, состоящий из скан-кода нажатой клавиши и статусного байта. Скан-код
– это однобайтовое число, младшие 7 бит которого представляют идентификационный код,
присвоенный каждой клавише, а старший 8-ой бит кода говорит о том, была ли нажата клавиша (бит = 1, код нажатия) или освобождена (бит = 0, код освобождения). Таким образом,
каждое нажатие клавиши дважды регистрируется в контроллере клавиатуры. Статусная
часть слова содержит флаги спец-клавиш (Insert, CapsLock, NumLock и т.д), нажатие
которых связано с включением/выключением определенного режима работы клавиатуры.
Сформированный пакет передается в компьютер через последовательное соединение.
Контроллер, получив пакет, выставляет запрос на прерывание, а при получении
подтверждения выдает его на системную шину. Процессор выполняет процедуру, анализа
слова, которое может содержать управляющий код, например: "Ctrl-Break".
Так как за время реакции системы на выставленное прерывание в контроллер клавиатуры
могут продолжать поступать новые коды нажатых клавиш, значения которых не должны
быть потеряны, в состав контроллера входит буфер, организованный в виде очереди FIFO. В
случае если время реакции системы будет слишком большим, очередь FIFO неизбежно
переполнится и значения, введенные первыми, будут утеряны. Контроллер будет продолжать генерировать сигнал запроса прерывания пока очередь FIFO не опустеет.
2.9.2. Мышь
Мышь является устройством ввода. В наше время, когда большинство ОС, имеют
графические оболочки, мышь занимает главную роль в процессе общения пользователя с
ЭВМ на равнее с клавиатурой. Появляется все больше пользовательских приложений, работа
в которых без мыши просто невозможна.
Классическая мышь представляет из себя устройство, перемещение которого по плоской
поверхности сопровождается формированием информации о расстоянии, пройденном в
направлении осей X и Y. Для фиксации перемещений используются механические или
оптические средства. Кроме того, мышь снабжается двумя или более кнопками. Информация
от кнопок и счетчиков попадает на микроконтроллер, кодируется в трехбайтовый пакет и
передается в компьютер через последовательное соединение.
Последовательный код принимается контроллером мыши. В его задачи входит
формирование запроса прерывания, связанного с перемещением мыши или нажатия ее
клавиш, а по получению подтверждения выдача поступившего кода на системную шину.
При этом конструкцией контроллера не предусмотрен какой либо буфер, для хранения
последовательности поступивших кодов. Вместо этого происходит суммирование
перемещений за интервал времени между двумя прерываниями процессора. Таким образом,
независимо от того, на какое расстояние была перемещена мышь, система всегда получит
достоверную информацию, сформированную на момент вызова обработчика прерывания.
18
2.9.3. Монитор
Выходные данные компьютера могут быть представлены в самой разной форме – в виде
текста, графики, звука и т.д. Наиболее распространенным и удобным устройством вывода
является дисплей (монитор), служащий для визуального представления выходных данных
компьютера. Монитор является пассивным и в большинстве случаев аналоговым
устройством. Коммутация с системой происходит по средствам видеоадаптера (видеокарты).
На ранних стадиях развития ЭВМ всю работу по подготовке изображения, выводимого на
монитор, выполнял ЦП, что существенно снижала коэффициент полезной работы. Со
временем требование к качеству изображения, и частоте его обновления необратимо росло, в
результате чего ЦП уже не мог справляться с поставленной задачей в одиночку. На помощь
ему пришел видео-акселератор, взявший на себя часть работы ЦП (в основном обработку
3D-графики). Следующим шагом стало полное освобождение ЦП от функций формирования
изображения, за счет использования видеокарт.
В наше время видеокарта выполняет две основные функции – формирования битовых полей
(изображений выводимых на монитор), построение которого происходит по специальным
алгоритмам, и преобразование цифрового сигнала в аналоговый, для отображения на
мониторе. Видеокарта исполняется в виде отдельной БИС, в состав которой входит
видеопроцессор, формирующий битовые поля, быстродействующая оперативная память для
вычислений и хранения сформированных изображений и ЦАП, преобразующий цифровое
представление в аналоговый сигнал. Помимо аналогового выхода современные видеокарты
имеют и цифровой для подключения TFT или плазменных мониторов.
Связь видеокарты с ЦП осуществляется по средствам системной шины. Центральный
процессор лишь передает видеокарте базовую информацию, на основе которой она
самостоятельно строит готовые изображения и выводит их на монитор.
2.9.4. Внешние запоминающие устройства
К внешним запоминающим устройствам относятся дисководы гибких магнитных дисков
(FDD), жесткий диск (HDD) и привод оптических дисков (CD-ROM). Данные устройства не
участвуют в вычислительном процессе, а предназначены лишь для длительного хранения
больших объемов информации. Доступ к таким устройствам отличается низкой скоростью,
но применение обусловлено малой стоимостью хранения единицы данных и возможностью
транспортировки с одной ЭВМ на другую.
Внешние ЗУ являются устройствами с произвольным обращением, а их физическая
организация скрыта от системы. Адресация таких ЗУ не требует каких либо дополнительных
вычислений от ЦП. За функционирование таких устройств отвечает контроллер,
поставляемый вместе ВУ комплекте. Контроллер обеспечивает интерфейс между внешним
устройством и шиной, соединяющей его с остальной системой. Он содержит множество
регистров, содержимое которых доступно ОС для чтения и записи. Таким образом, ОС
управляет работой ВЗУ одними и теми же командами независимо от его физической
архитектуры.
Большинство обращений к ВЗУ связано с передачей больших блоков данных (загрузка
программы в ОП, организация виртуальной памяти и т.д.), в этом случае целесообразно
использовать прямой доступ к памяти. Для этих целей предусмотрен контроллер ПДП,
который и будет осуществлять непосредственную связь ВЗУ с системной шиной, и
управлять их работой.
При этом из наличия КПДП, в функции которого входит лишь организация прямого доступа
к памяти внешних устройств, не следует отсутствия собственного контроллера у каждого
ВУ.
19
3. Разработка контроллера прямого доступа к памяти
Первым шагом в разработке контроллера ПДП является выбор алгоритма разделения
совместно используемых ресурсов между ЦП и КПДП. В данном случае таковыми являются
ОП и системная шина. Противоположными подходами решения этой задачи являются
алгоритм блокировки ЦП и алгоритм квантования цикла ОП. Первый предусматривает
полную блокировку работы ЦП на время прямой передачи данных. Реализация подхода
достаточна проста и дешева, имеет наивысший темп передачи данных, но проигрывает по
показателю производительности системы в целом. Второй подход требует использования
быстродействующих микросхем ОП, способных отработать два такта за один системный
(доступ к ОП последовательно предоставляется ЦП и КПДП в одном системном такте).
Компромиссом является алгоритм захвата цикла, в котором ЦП и КПДП используют
разделяемый ресурс по очереди. Выставив запрос на доступ к ОП и системной шине, ЦП и
КПДП ждут ответа от арбитра, и только с его разрешения начинают работу. При этом
больший приоритет имеет контроллер ПДП. В результате в работе ЦП будут присутствовать
циклы простоя, но это предпочтительнее полной блокировки.
Используемый в проекте подход схож с алгоритмом захвата цикла, но имеет свои
преимущества. Принято решение разработать структуру, позволяющую реализовать
одновременную работу ЦП и КПДП, без использования высокоскоростных микросхем ОП и
без холостых тактов ЦП.
Функции арбитра, будет выполнять ЦП. Исходя из того, что в алгоритме любой
макрокоманды присутствуют чисто вычислительные такты, не требующие выполнения
каких либо действий вне ЦП, существует возможность во время таких тактов предоставлять
системную шину и ОП для прямой передачи данных.
Реализация описанного подхода требует наличия сигнала ACCESS, высокий уровень,
которого разрешает контроллеру ПДП доступ к системной шине и ОП. Сигнал ACCESS
принимает значение равное 1, в такте, предшествующем передаваемому КПДП, и поступая
на вход тестирования внешних условий секвенсора, входящего в состав КПДП, разрешает
выбор микрокоманды непосредственной пересылки. По следующему фронту системного
синхросигнала эта микрокоманда будет загружена в регистр микрокоманд контроллера и
откроет его выходные буферы. На системную шину поступят заранее подготовленные
сигналы управления и адреса, для прямой передачи данных между ВУ и ОП. При этом
микрокоманда, загрузившаяся на этом такте в регистр микрокоманд ЦП должна отключить
его от системной шины, переведя выходные буферы в высокоимпедансное состояние.
Для оптимизации работы, описанного механизма в структуре КПДП предусмотрен
внутренний буфер, позволяющий осуществлять операции пересылки, не дожидаясь
готовности ВУ. Буфер может быть использован при пересылках в обоих направлениях. При
записи в ОП буферизация позволяет не пропускать системные такты, в которых пересылка
разрешена, но не может быть выполнена из-за неготовности ВУ. При чтении из ОП
буферизация позволяет выполнить пересылку с максимально возможным темпом, а затем
выдавать данные ВУ с приемлемой для него скоростью.
Еще одной существенной деталью в реализации ПДП является механизм смены режима
работы ЦП. Исходя из того, что пересылки между ОП и ВУ осуществляются крайне редко, а
постоянные отключения ЦП от системной шины не увеличивают его быстродействия, то
такой режим должен применяться только во время прямых пересылок данных, а в остальное
время возвращаться к обычному (монопольное владение системной шиной и ОП).
Переключение между этими режимами будет осуществляться с помощью прерываний: ЦП,
получив запрос на прерывание от КПДП, проверяет биты режима Mode его интерфейсного
регистра: если они приняли значение равное 01 – контроллер готов к пересылке данных,
следует переключится в режим разделения системной шины. Если же Mode=10 – контроллер
запросил прерывание для оповещения ЦП о успешном завершении пересылки и
возможности возврата в режим монопольного доступа к системной шине.
20
И наконец, для начала проектирования структурной схемы необходимо определится с
способом подключения ПУ к контроллеру ПДП. В качестве такового выбрано подключение,
при котором управлением ПДП нескольких ПУ осуществляется одним контроллером –
централизованный доступ. И самой простой реализацией является использование одного
разделяемого канала. Схема подключения нескольких ПУ к КПДП приведена на рисунке 9.
Рис.9 Схема подключения ПУ к контроллеру ПДП.
Из представленной структуры видно, что все ПУ используют общие линии, в состав которых
входят:
 INTR – линия запроса на предоставления ПДП одному из ПУ. Выходы с открытым
коллектором позволяют подключить все ПУ на одну линию.
 INTA – линия подтверждения запроса. Предназначена для оповещения ПУ
запросившего доступ, о готовности его предоставить. Соединение всех ПУ по
цепочке, одновременно решает проблему разделения общего контроллера и
распределения приоритетов (первое устройство в цепочке, требующее доступ,
прерывает дальнейшее распространение сигнала подтверждения).
 Ready – линия оповещения контроллера о готовности ПУ к передаче.
 Start – линия оповещения ПУ о необходимости начать пересылку.
 Data – внутренняя шина данных.
Применение такого подхода позволяет подключить к одному контроллеру ПДП
неограниченное число ПУ.
В приложении 3 приведена структурная схема разрабатываемого контроллера ПДП.
3.1. Структурная схема контроллера прямого доступа к памяти
Из приведенной в приложении 3 схемы видно, что архитектура контроллера построена на
основе принципа микропрограммирования. В структуре контроллера можно выделить три
основных элемента:
 Микропрограммное устройство управления (МУУ)
 Генератор адреса.
 Буфер.
Архитектура и принцип функционирования МУУ аналогичны, описанным в пункте 2.2.2.
Наличие МУУ позволяет управлять работай контроллера на основе команд ЦП,
поступающих по шине данных в регистр команд (РГ_К). Бит регистра команд,
определяющий направление пересылки и одновременно являющийся управляющим для
памяти (~W/R), передается на системную шину управления через интерфейсный буфер. Все
21
выходы контроллера на системную шину также подключены через интерфейсные буферы с
высокоимпедансными выходами. Такое подключение позволяет контролеру выдавать свои
управляющие сигналы, сигналы адреса и данные на системную шину только в определенных
тактах, а в остальное время отключаться. Сигнал управления, являющийся общим для всех
выходных буферов контроллера, задается соответствующим битом микрокоманды.
Секвенсор микрокоманд имеет 12 входов тестирования внешних условий. Работа
контроллера связана с тестированием следующих 5 условий:





INTR – линия запроса ПУ на предоставление ПДП. Этот вход опрашивается только
когда контроллер «свободен», то есть находится в режиме активного ожидания
запроса (INTR=1 – ПУ требует ПДП).
Ready – сигнал готовности ПУ выполнить пересылку. Опрашивается для определения
готовности ПУ выполнить пересылку в следующем такте (Ready=1 – ПУ готово).
Done – сигнал формируется генератором адреса и оповещает МУУ о завершении
пересылки блока данных. (Done=1 – передача блока данных завершена).
Access – сигнал формируется ЦП только в режиме разделения системной шины и
передается по выделенной линии управления непосредственно в контроллер. Служит
для арбитража системной шины между ЦП и КПДП. (Access=1 – ЦП разрешает
контроллеру подключится к системной шине на следующем такте).
Mem_Ready – сигнал готовности ОП. Опрашивается для определения готовности ОП
выполнить пересылку в следующем такте.
Имея на своих входах перечисленные сигналы, контроллер всегда «осведомлен» о состоянии
системы настолько, насколько это необходимо для его корректной работы.
Помимо регистра команд и регистра микрокоманд, входящих в состав МУУ, контроллер
имеет еще три интерфейсных регистра:



РГ_НА – регистр начального адреса. Загружается с системной шины данных при
инициализации ПДП. Содержит начальный адрес блока данных ОП.
РГ_СС – регистр счетчика слов. Загружается с системной шины данных при
инициализации ПДП. Содержит количество слов в блоке, который необходимо
предать.
РГ_Статуса – регистр статуса контроллера ПДП (не является регистром, как
таковым, а представляет из себя буфер, отделяющий соответствующие биты регистра
микрокоманд от шины данных). Выводится на системную шину данных по запросу
ЦП для выяснения текущего состояния контроллера. Содержит два бита
составляющих поле Mode:
o Mode=00 – контроллер получил запрос от ПУ и ждет инициализации;
o Mode= 01 – контроллер требует перевести ЦП в режим разделения;
o Mode=10 – контроллер успешно завершил пересылку.
o Mode=11 – пересылка была прервана.
Регистры РГ_К, РГ_НА, РГ_СС загружаются под управлением ЦП а не контроллера ПДП.
Только ЦП знает, когда выдаст данные на шину, которые требуется загрузить в тот или иной
регистр. Аналогично выполняется управление регистром статуса (РГ_Статуса), подключение
которого к шине данных разрешает ЦП, так как только он знает, когда освободит шину для
опроса контроллера.
Управление этими регистрами осуществляется путем их отображения в адресное
пространство ЦП. Тогда для загрузки данных в тот или иной регистр ЦП выставляет на
адресную шину адрес, соответствующий этому регистру, а на шину данных непосредственно
загружаемые данные. Блок анализа адреса (БАА), входящий в состав контроллера,
обнаружив на системной шине адрес, соответствующий одному из интерфейсных регистров,
формирует сигнал разрешения тактирования и по следующему фронту синхросигнала
22
адресуемый ЦП регистр загрузит предназначающиеся ему данные. Обращение к РГ_Статуса
разрешает ему подключится к системной шине и передать соответствующие биты регистра
микрокоманд.
Еще одним интерфейсным элементом является двунаправленный трансивер (TRANS),
который позволяет коммутировать внутреннюю шину данных, связывающую контроллер с
ПУ, с системной шиной данных в двух направлениях либо отключаться от нее.
Вторым по функциональной нагрузке элементом контроллера ПДП является генератор
адресов. Его основной обязанностью является адресация ОП в процессе ПДП. Перед
началом работы под управлением МУУ происходит загрузка начальных параметров из
регистра начального адреса и регистра счетчика слов во внутренние регистры генератора,
имеющие аналогичное назначение. Загрузка происходит последовательно. Выбор источника
выполняет по средствам селектора (MUX) под управлением МУУ. Использование внешних
дублирующих регистров позволяет производить повторную инициализацию, внутренними
средствами контроллера и организовать отображение регистров в адресное пространство
ЦП. Выход данных генератора двунаправленный и позволяет вывести текущие данные на
системную шину данных (Например, при неудачном завершении передачи блока данных ЦП
может запросить текущее значение счетчика слов, и определить какая часть данных была
передана, а какая нет. На основе этого ЦП примет решение о повторном запуске пересылки
всего блока либо только не переданной части). Из приведенного примера следует, что
помимо формирования адресов, генератор ведет подсчет переданных слов, декрементируя
счетчик одновременно с выработкой очередного адреса. По завершению блока (счетчик
принял значение 0) на адресном выходе генератора сформирован адрес последнего слова
блока, а сигнал на выходе Done примет значение 1. Формирование нового адреса и
декремент счетчика слов выполняется по поступлению тактового импульса. Так как
передача слов в процессе ПДП происходит не на каждом такте, то использование системного
синхросигнала для синхронизации генератора невозможно. Вместо этого синхросигнал
пропускают через блок, на выходе которого импульсы появятся только, если разрешающий
сигнал EN примет значение 1 (EN=1 в тактах непосредственной пересылки).
Формируемый генератором адрес в первую очередь предназначен для адресации ОП в
процессе ПДП. Помимо этого, текущий адрес подается на один из входов сумматора,
который вычитает из него начальный адрес, подаваемый на второй вход из регистра РГ_НА.
Таким образом, на выходе сумматора формируется адрес, по которому текущее слово,
подлежащие записи в буфер, будет сохранено (за счет этого начальный адрес, хранимый в
РГ_НА, всегда будет соответствовать нулевому адресу буфера).
Буфер предназначен для промежуточного сохранения передаваемого блока на пути между
ПУ и ОП и способен принимать данные, как с системной, так и с внутренней шины данных
контроллера.
3.2. Принципиальная схема контроллера прямого доступа к памяти
В приложении 4 приведена принципиальная схема разработанного контроллера ПДП.
Для построения схемы были выбраны следующие типонаминалы:
Am29331 – 16-разрядный секвенсор микрокоманд;
Am2940 – 8-разрядный генератор адреса;
IDT54/74FCT16374AT – 16-разрядный регистр с выходами на три состояния;
IDT54/74ACT16244 – 16-разрядный буфер с выходами на три состояния;
IDTQS3257/74FCT257 – 4-разрядный мультиплексор 2:1 с выходами на три состояния;
ST/74AC16245 – 16-разрядный двунаправленный трансивер с выходами на три состояния;
CYPRESS CY7C244-20c – PROM с организацией 4K x 8;
CYPRESS CY7C271A – PROM с организацией 32K x 8;
CYPRESS CY7C1020 – SRAM с организацией 32K x 16;
ATMEL AT40K05 – FPGA.
23
Регистр команд выполнен на одном 16-разрядном регистре, так как для управления
контроллером большей разрядности не требуется.
Регистры начального адреса и счетчика слов имеют разрядность 32 и построены на двух 16разрядных регистрах. Тактирование этих трех регистров производится не системным
синхросигналом CLK, а специальными синхросигналами, вырабатываемыми блоком анализа
адреса (БАА). На схеме приведен фрагмент БАА (формирование CLK_1), так как
формирование сигналов CLK_2 и CLK_3 производится аналогично на основании сигналов
ADRES_BUS[31,1] и ADRES_BUS[31,2] соответственно.
Генератор адреса строится на четырех 8-разрядных схем Am2940, что позволяет получить
требуемую разрядность. Выходы Done четырех секций объединены по правилу объединения
выходов с открытым коллектором.
Сигнал ~W/R хранится в регистре команд. В тактах пересылки он выводится на шину
управления (управляет ОП). Также сигнал ~W/R управляет направлением передачи
выходного трансивера.
Для выполнения функции 32-разрядного вычетателя была использована FPGA,
запрограммированная соответствующим образом. Характеристики используемой FPGA
позволяют, выполнить на ней большую часть контроллера, однако такое ее использование,
противоречит целям курсового проекта.
Микросхемы памяти (PROM и SRAM) имеют разрядность 8. Для получения требуемой
разрядности было объединено требуемое количество микросхем. При этом сигналы адреса и
управления одни для всех микросхем, а количество выводов данных соответствует
требуемой разрядности.
Отключение буферов, выводящих сигналы адреса, данных и управления в тактах пересылки,
управляется одним сигналом, так как подключение/отключение одного из этих буферов по
отдельности не имеет смысла.
22 бит регистра микрокоманд используются как для задания Mode[0], так и для задания
сигнала INTA для ПУ (в разных тактах). Сигнал Start, разрешающий активному ПУ
подключение к внутренней шине данных (INT_DATA_BUS), содержится в 21 бите
микрокоманды (что не отображено на схеме).
INT_DATA_BUS – внутренняя шина данных, связывающая контроллер с ПУ, и
коммутируемая с системной шиной данных по средствам двунаправленного трансивера.
Входы прерывания секвенсора не используются, вместо этого запросы подаются на входы
тестирования внешних условий, а сигнал подтверждения прерывания берется из регистра
микрокоманд.
3.3. Алгоритм запуска контроллера прямого доступа к памяти
Алгоритм запуска алгоритма ПДП:
 ЦП получает команду ввода-вывода.
 ЦП сообщает участвующему в обмене ПУ о параметрах предстоящей операции.
 ПУ, получив параметры ввода-вывода, выставляет запрос к контроллеру на
предоставление ПДП по линии INTR.
 Контроллер, находясь в состоянии ожидания, постоянно опрашивает вход запроса.
 Обнаружив запрос от ПУ, контроллер устанавливает биты режима статусного
регистра (РГ_Сстатуса) Mode=00, и запрос на прерывание ЦП.
 Обработчик прерывания опрашивает статусный регистр контроллера. Mode=00 –
свидетельствует о готовности контроллера к начальной инициализации.
 Обнаружив на системной шине адрес своего интерфейсного регистра, контроллер
загружает его с шины данных:
o Загружает регистр начального адреса РГ_НА.
24





o Загружает регистр счетчика слов РГ_СС
o Загружает регистр команд.
Дальнейшая работа контроллера задается командой, загруженной в регистр команд.
Эта команда полностью определяет характер предстоящей операции пересылки
(направления пересылки, использование буферизации, необходимость повторной
пересылки по окончанию первой и т.д.)
Независимо от типа пересылки происходит загрузка параметров пересылки из
регистров РГ_НА и РГ_СС в генератор адреса (при этом, значения, сохраненные в
регистрах, не стираются и могут быть повторно использованы).
Загрузив параметры пересылки в генератор адреса, контроллер выставляет сигнал
подтверждения на линию INTA.
ПУ, получив подтверждение, начинает подготовку к приему или передаче данных.
В зависимости от параметров пересылки возможны следующие варианты развития:
Пересылка без буферизации:
 Контроллер опрашивает линию Ready, ожидая сигнала готовности ПУ.
 Получив подтверждение готовности, контроллер устанавливает режим Mode=01
(переход в режим разделения среды) и выставляет запрос на прерывание ЦП, для
перевода его в режим разделения системной шины.
 Обработчик прерывания, опросив статусный регистр контроллера, переводит ЦП в
режим разделения системной шины. Дальнейшая работа ЦП связана с отключением
от системной шины в вычислительных тактах и подачей сигнала Access в такте,
предшествующем вычислительному.
 Разрешающий сигнал Access поступает на вход тестирования внешних условий
секвенсора на такте, предшествующем такту пересылки. Если при этом ОП тоже
готова, происходит выборка микрокоманды непосредственной пересылки
слова(готовность ОП определяется опросом линии Mem_Ready, подключенной ко
входу тестирования внешних условий секвенсора).
 По следующему фронту синхросигнала микрокоманда будет загружена в регистр.
Соответствующие биты этой микрокоманды сообщают ПУ о начале пересылки
слова по линии Start и подключают контроллер к системной шине (переводят
интерфейсные буферы в активное состояние). Также микрокоманда содержит бит
разрешающий тактирование генератора адресов.
 На шину управления подается сигнал ~W/R. На шину адреса выдается адрес ОП, по
которому будет записано/прочитано первое слово (адрес передается с
соответствующего выхода генератора адресов). Происходит коммутация
внутренней шины данных с системной шиной данных в заданном направлении
(используется двунаправленный трансивер).
 Таким образом, на текущем такте происходит пересылка одного слова между ПУ и
ОП.
 При поступлении следующего фронта синхросигнала генератор адреса сформирует
следующий адрес ОП и декрементирует счетчик слов. В регистр микрокоманд
будет загружена следующая микрокоманда, которая отключит контроллер от
системной шины, и запретит тактирование генератора адресов.
 Контроллер активно ждет следующего такта пересылки, постоянно опрашивая
входы Access, Ready и Mem_Ready.
 Так будет продолжаться, пока не возникнет одно из двух событий:
o После очередного такта пересылки генератор адреса выдал сигнал Done=1,
свидетельствующий о завершении пересылки всего блока данных (счетчик
слов достиг 0). Удачное завершение: Mode=10. Сигнал Done передается ПУ
и завершает его работу.
25
o Время отсутствия сигнала Ready=1 на линии подтверждения готовности ПУ
превысило заданный таймаут. Неудачное завершение: Mode=11, Done=0.


Контроллер выставляет запрос на прерывание ЦП.
Обработчик прерывания опрашивает статусный регистр контроллера:
o Mode=10 – Пересылка выполнена. Процессор переводится в обычный режим
работы. Контроллер, получив подтверждение прерывания, переходит в
режим ожидания (свободен).
o Mode=11 – Пересылка была прервана. Процессор остается в режиме
разделения системной шины. Происходит повторный запуск пересылки. При
этом могут использоваться параметры, хранимые в РГ_НА и РГ_СС.
Пересылка с использованием внутреннего буфера контроллера ПДП происходит по схожему
алгоритму за исключением следующих особенностей:
 Пересылка разделяется на два этапа. В одном происходит пересылка блока данных
между Буфером и ОП, а во втором между Буфером и ПУ. Последовательность
этапов определяется направлением передачи данных.
 Буфер имеет емкость, достаточную для приема максимального разрешенного блока
данных, пересылаемого за один ПДП.
 Перед началом обоих этапов генератор адресов загружает начальные параметры из
регистров РГ_НА и РГ_СС.
 Текущий адрес Буфера вычисляется как разность адреса, выработанного
генератором, и адреса, хранящегося в РГ_НА.
 На этапе обмена данных между Буфером и ОП пересылки будут выполнены на всех
тактах, когда ЦП предоставляет системную шину контроллеру и ОП будет готова к
обмену. Контроллер ориентируется на сигналы на линиях Access и Mem_Ready.
 На этапе обмена данных между Буфером и ОП предельный темп обмена ограничен
лишь скоростными возможностями ПУ. Контроллер ориентируется на сигнал на
линии Ready.
 Перевод ЦП в режим разделения происходит перед началом этапа пересылки между
Буфером и ОП, а возврат в обычный режим по его завершению.
 Передача между Буфером и ПУ полностью скрыта от системы и не требует каких
либо дополнительных аппаратных затрат.
 Прерывание успешного завершения вызывается по завершению обоих этапов.
26
Документ
Категория
Компьютеры и периферийные устройства
Просмотров
21
Размер файла
445 Кб
Теги
феклин
1/--страниц
Пожаловаться на содержимое документа