close

Вход

Забыли?

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

?

Романец

код для вставкиСкачать
Министерство образования и науки РФ
Новосибирский государственный технический университет
Кафедра вычислительной техники
Курсовой проект по дисциплине
«Организация ЭВМ»
«Разработка гипотетической ЭВМ. Разработка памяти подканалов»
Выполнил:
Студент: Романец М.И
Группа: Ам-215
Проверил: Гребенников В.Ф.
Новосибирск, 2005
1. Цели выполнения и исходные данные
Цели выполнения
Целью курсового проектирования является углубление и закрепление теоретических
знаний студентов, приобретение навыков разработки узлов ЭВМ на структурном,
функциональном и алгоритмическом уровнях.
Курсовой проект посвящен разработке структурной схемы гипотетической ЭВМ,
принципиальной схемы и алгоритма(ов) работы конкретного блока, входящего в состав
этой ЭВМ.
Исходные данные
Типовое задание на выполнение курсового проекта включает в себя общие для всех
вариантов и индивидуальные для каждого варианта исходные данные. Общие исходные
данные определяют минимальный состав проектируемой ЭВМ и ее основные параметры.
В индивидуальных исходных данных указывается архитектура ЭВМ; наличие и тип
сопроцессора; организация оперативной памяти (ОП); наличие КЭШ-памяти и ее
функциональное назначение; структура и тип системы прерывания программ (СПП);
наличие арбитра шины, системы контроля, организация системы ввода-вывода (СВВ).
Кроме этого в индивидуальном задании указывается тип разрабатываемого до уровня
принципиальной схемы блока и наименование алгоритма.
Общие исходные данные
В состав ЭВМ входят следующие блоки:
1. центральное обрабатывающее устройство (ЦОУ);
2. микропрограммное устройство управления (УУ);
3. оперативная память (ОП);
4. блок синхронизации (БС);
5. система прерывания программ (СПП);
6. таймер;
7. система ввода-вывода (СВВ);
8. монитор, клавиатура, мышь;
9. «Винчестер».
10. В качестве дополнительных устройств в состав могут входить ЦАП и АЦП.
Основные параметры ЭВМ:
 адресность ЭВМ - двухадресная;
 длина команды - переменная.
Разрядность ЭВМ и минимальный объем оперативной памяти выбираются
самостоятельно, но должны удовлетворять следующим ограничениям:
 разрядность - не менее 16;
 емкость ОП - не менее 16 Mбайт.
Индивидуальные исходные данные:







архитектура ЭВМ – трех шинная
сопроцессор – адресный
система прерываний – цепочечная на уровне микрокоманд
кеш – буфер TLB
организация ОП – страничная
Ввод/Вывод – сопроцессор в мультиплексном режиме
разрабатываемый блок – память подканалов
2. Структурная схема гипотетической ЭВМ
Структурная схема ЭВМ показывает состав ЭВМ на уровне отдельных устройств. На ней
не отображается состав каждого блока отдельно, отдельные блоки разрабатываются на
структурном или же функциональном уровне ниже.
2.1. Центральный процессор
В состав центрального процессора (ЦП) входят: операционный блок (ОБ), в котором
происходит обработка данных и микропрограммное устройство управления (МУУ),
которое управляет прерываниями, порядком обработки команд в ОБ и осуществляет
управление всеми узлами ЭВМ.
Взаимодействие между устройствами ЦП основывается на понимании принципа
микропрограммного управления [4], заключающегося в хранении управляющих слов,
выполняющих элементарные действия в течении цикла, и выборки их с помощью
секвенсора микрокоманд (SEQ МК). Следовательно, микропрограммное устройство
управления (МУУ) хранит и выбирает управляющие слова (микрокоманды) из
микропрограммной памяти (МПП), передает их в ОБ и на шину управления CB (для
управления всеми устройствами системы). ОБ выполняет инструкции, предписанные
МУУ. ОБ также может влиять на формирование следующего адреса в МУУ посредством
передачи в него признака ветвления.
2.1.1. Операционный блок
ОБ предназначен для выполнения логических, арифметических и сдвиговых
операций над поступающими на его вход данными.
В состав ОБ входят (рис.1): центральный процессорный элемент (ЦПЭ), блок логики
сдвигов (БЛС), блок статусного регистра (БСР), селектор адресов РОН (СА) для ЦПЭ,
мультиплексор данных для БСР (MUX1); мультиплексор признака перехода (MUXC) для
SEQ МК; мультиплексор входного переноса С0 ЦПЭ (MUX2) и интерфейсные регистры
входных данных (RGin), выходных данных (RGout) и регистр адреса (RGA).
Разрабатываемая ЭВМ 32-разрядная, что удовлетворяет заданию (п.1.), и для чего
используется две 16-ти разрядные микропроцессорных секции IDT49C402. Секция
IDT49C402 содержит внутренний регистровый файл с организацией 64*16 бит [1].
Взаимодействие ОБ с системными шинами АВ и DB осуществляется через
интерфейсные элементы - регистры с динамическим управлением (RGin – регистр
входных данных, RGout – регистр выходных данных, RGA – регистр адреса). Данные
регистры имеют входы разрешения записи и чтения, что требует внесения в МК
дополнительных битов. Также данные регистры должны иметь входы разрешения вывода
OEY#, для исключения конфликтов на шинах из-за устройств, совместно использующих
одну шину. Загрузка данных в ОБ может производиться с разных источников (RGin,
RGМК и БСР), поэтому в МК необходимо отразить биты управления разрешения вывода
этих источников.
Возможность наращивания разрядности не позволяет интегрировать на кристалле
IDT49C402 БЛС и БСР, поэтому они являются внешними относительно ЦПЭ [1].
Сдвиговые операции осуществляются с помощью БЛС. Для этого используются
двунаправленные входы\выходы ЦПЭ P0, Q0, P31, Q31 и однонаправленные выходы ЦПЭ
OVR и F31. Логика сдвигов представляет собой комбинационную схему, структура
которой зависит от количества и типов необходимых сдвигов. Управление логикой
сдвигов осуществляется 3-мя битами МК: 2 – для задания типа сдвига, 1- для задания
направления сдвига.
БСР необходим для сохранения признаков, порождаемых АЛУ при выполнении
операций (N, Z, V, C). Однако, в данной реализации в БСР могут дополнительно
сохраняться 4 пользовательские бита. Загрузка данных в БСР может производиться с
выходов признаков ЦПЭ, а также с Y-шины ЦПЭ. Для выбора источника данных для БСР
используется мультиплексор (MUX1), управление которым производиться с помощью
одного бита МК. Причем, при загрузке признаков с выходов ЦПЭ, старшие 4 разряда,
загружаемые в БСР нулевые; с Y-шины загружаются 8 младших разрядов. Также в данной
реализации БСР, предполагается, что вывод данных из БСР на локальную шину данных
(LDB) управляется одним битом МК, в силу совместного использования LDB
несколькими устройствами; вывод признаков на MUXC разрешен постоянно. В такой
реализации БСР позволяет сделать признаки (флаги) доступными пользователю, что
необходимо для их модификации и формирования (посредством логических операций)
комбинаторных флагов (например, для создания сложных условий перехода).
СА необходим для выбора источников адресов РОН ЦПЭ – из регистра команд
(RGK) или регистра микрокоманд (RGMK). Управление выбором источников
производиться с помощью одного бита МК.
MUX2 используется для выбора источника входного переноса ЦПЭ ( логические “0”,
“1” или С из БСР). Управление выбором источника осуществляется с помощью 2 бит МК.
MUXC позволяет, посредством 3-х бит МК, выбирать признак перехода, который
подается на вход CC секвенсора МК (что необходимо для реализации условных и
безусловных переходов). Таким образом, ОБ влияет на генерацию следующего адреса
микрокоманды.
Так как источником данных для Y-шины ЦПЭ является только он сам, то вывод
данных из него разрешен всегда.
Для одновременного функционирования устройств, входящий в ОБ, необходим
системный синхросигнал (CLK).
На структурной схеме ОБ (рис.1) подразумевается, что на все свободные входы всех
элементов подаются необходимые биты МК из RGMK.
Перейдем к рассмотрению микропрограммного устройства управления.
2.1.2. Микропрограммное устройство управления
Проектируемое МУУ (рис.2) строится на двухуровневой конвейерной структуре,
признаком чего является наличие конвейерного регистра микрокоманд. Конвейеризация
позволяет существенно увеличить быстродействие системы за счет разделения процесса
обработки информации на несколько этапов и совмещения данных этапов во времени, при
условии, что каждый этап должен обрабатываться отдельным устройством.
Основными элементами МУУ являются:
 Регистр команд (RGK);
 преобразователь начального адреса (ПНА);
 секвенсор микрокоманд (SEQ MK);
 микропрограммная память (МПП);
 регистр микрокоманд (RGМК).
Поясним функционирование МУУ. С DB в RGK поступает очередная команда. Адреса
операндов передаются в ОБ на СА, а поле кода операции (КОП) поступает на адресный
вход ПНА. ПНА преобразует поступивший КОП в адрес, по которому хранится
микропрограмма обработки команды в МПП. Полученный адрес передается на шину
адреса ветвления (ШАВ). Источником адреса следующей микрокоманды на ШАВ может
быть и RGMK. SEQ МК предназначен для адресации МПП, генерации адреса
микрокоманды и управления выводами ПНА и RGMK. SEQ МК генерирует адрес
следующей микрокоманды, исходя из состояния своих управляющих входов и адреса,
полученного с ШАВ. Сгенерированный адрес из SEQ МК поступает на адресные входы
МПП, которая хранит микрокоманды (управляющие слова). Выбранная из МПП по
поступившему адресу МК записывается в RGMK, откуда будет извлечена в следующем
такте. Микрокоманда из RGMK содержит поля управления следующим адресом (УСА)
SEQ МК и поле инструкций. Сигналы поля УСА поступают на SEQ МК и ШАВ (адрес
перехода), а сигналы поля инструкций поступают в ОБ и на шину управления CB для
осуществления управления всей системой.
Устройства МУУ (RGК, SEQ МК и RGМК) тактируются системным
синхросигналом CLK из блока синхронизации.
При включении и восстановлении (после сбоя) питания на SEQ МК и RGMK
подается сигнал синхронного сброса (RST). По этому сигналу МПП устанавливается в
нулевой адрес, по которому хранится микрокоманда инициализации системы. Однако,
МПП имеет некоторую задержку, поэтому необходим сигнал RST непосредственно на
RGMK, для исключения конфликтных ситуаций устройств, работающих на одну шину
(иначе возможен выход из строя этих устройств).
2.2 Основная память
Основная память (ОП) служит для хранения информации (данных, программ,
промежуточных и конечных результатов обработки). Поскольку шина адреса 32разрядная, то максимальная ёмкость ОП 4 Гслов[9].
ОП ЭВМ должна иметь в своём составе как оперативную (ОЗУ), так и постоянную
(ПЗУ) память. ОЗУ используется для хранения временных данных, а ПЗУ используется
для хранения неизменяемых и энергонезависимых данных (базовой системы вводавывода, содержащую
программную поддержку ресурсов ЭВМ и обеспечивает
конфигурирование аппаратных средств и их диагностику).
ПЗУ реализуется на микросхемах Flash-памяти, емкостью 256Кб. Требования,
предъявляемые к ОЗУ (высокое быстродействие, большой объем и надежное хранения
информации), предполагают использования микросхем DRAM-памяти. Такая память
более дешевая и более медленная, чем SRAM-память. Однако, применения в качестве ОП
микросхем SRAM приведет к существенным затратам. Емкостью ОЗУ 32Мб.
Взаимодействие ОП с системой осуществляется посредством шин AB, DB и CB.
Для снижения нагрузки на устройства, также работающих на этих шинах необходимо
подключать ОП к AB и DB через буферы. Взаимодействие с AB будет осуществляться
через однонаправленные буферы адреса, а с DB – двунаправленные буферы данных (так
как в памяти может производиться чтение и запись).
Так как используется 2 вида памяти, то в состав ОП включен контроллер ОП,
выполняющий выбор типа памяти, управляющий чтением/записью из/в память и выводом
считанных из памяти данных на системную шину данных DB. Соответственно,
необходимо в МК определить соответствующие биты. Бит МК[R/W#] - чтение/запись;
МК[MEM#] – разрешение/запрет работы памяти. Также бит МК[MEM#] должен
использоваться для разрешения/запрета вывода информации из ОП. Следует учесть, что в
ОП содержит 2 типа памяти: ОЗУ, к которой может быть организован доступ как по
чтению, так и по записи; ПЗУ, к которой может быть доступ только по чтению.
По заданию организация ОП страничная.
Страничная организация памяти используется для реализации механизма
виртуальной памяти, позволяющей реализовать механизм динамического распределения
памяти и адресовать более 4Гб ОП [6]. Страничный механизм это один из способов
преобразования виртуального адреса (ВА) в физический адрес (ФА).
Страницы имеют фиксированный размер. Двенадцать младших разрядов
начального адреса любой обычной (размером 4К) страницы всегда равны нулю. Поэтому
любой объект в памяти, имеющий подобный начальный адрес, называется выровненным
по границе страницы.
Схема страничного преобразования приведена на рис.3.
В системах со страничной организацией основная и внешняя память делятся на
страницы фиксированной длины. Каждой программе (пользователю) предоставляется
некоторая часть адресного пространства, которая может превышать основную память
компьютера, и которая ограничена только возможностями адресации, заложенными в
системе команд. Эта часть адресного пространства называется виртуальной памятью
пользователя и выражается в целом количестве страниц. В ОП содержит таблица страниц
для текущей программы. Табличная страница содержит дескрипторы (элементы PTE)
каждой страницы программы. В дескрипторе содержится физический адрес страницы и
информация, определяющая права доступа (защита) и состояние страницы.
Виртуальный адрес
31
12 11
0
PAGE
OFFSET
Страничная
таблицы n-й
программы
….
БР
Дескриптор страницы
31
12 11
0
ФА страницы
Сост. и защита
стр.
Физический адрес
31
12 11
ФА страницы
OFFSET
0
Рис.3. Схема преобразования ВА в ФА при страничной организации памяти
Каждое слово в виртуальной памяти пользователя определяется виртуальным
адресом, состоящим из двух частей:
 старшие 20-ть разрядов адреса (PAGE) рассматриваются как номер страницы,
представляющей собой смещение относительно базового регистра (БР) страничной
таблицы программы;
 младшие 12-ть являются номером слова (OFFSET) (или байта) внутри страницы.
Преобразование ВА в ФА происходит следующим образом: по номеру страницы из
ВА относительно БР считывается ее дескриптор из страничной таблицы, из которого
берется физический адрес страницы. К физическому адресу (20 бит) дескриптора
добавляется номер слова из ВА (OFFSET – 12 бит). Полученный адрес является ФА.
Так как страничная таблица хранится в ОП, то страничный механизм требует
одного дополнительного обращения к ОП, для преобразования адреса.
Стоит отметить, что для поддержания страничного механизма требуются
дополнительные программно-аппаратные средства. В современных процессорах имеется
внутренняя поддержка этого механизма. Однако в нашем случае необходимо внешнее
устройство управления памятью (УУП), которое включено в состав контроллера ОП.
Так как страничный механизм требует дополнительного обращения к памяти при
преобразовании адресов, то в состав ОП вводится адресный КЭШ (буфер TLB), хранящий
32 физических адреса интенсивно использующихся ЦП страниц. Более подробно буфер
TLB рассматривается в п.2.3.
Заданием предусматривается наличие сопроцессора ввода/вывода, поэтому
контроллер ОП также должен обрабатывать его команды: MEMR#-доступ по чтению и
MEMW# - доступ по записи.
Таким образом, можно привести следующую структурную схему ОП (рис.4.)
На рис.4. ИЭ1- однонаправленный буфер с разрешением выводом; ИЭ2 –
двунаправленный буфер с разрешения вывода.
2.3 Буфер TLB
Страничный механизм (рассмотренный в п.2.2) требует значительных временных
затрат. Поэтому в МП вводится дополнительная внутренняя кэш-память страниц, в
которой хранятся начальные адреса (вернее 20-ть старших разрядов адреса, поскольку 12ть младших разрядов начального адреса страницы равны 0) страниц, с которыми МП
работал в последнюю очередь. Процент кэш-попаданий в буфер TLB составляет порядка
95 - 98%. И только при кэш-промахе включается страничный механизм.
Кэш-память страниц состоит из трех блоков: блок данных, блок тэгов и блок
LRU/достоверности (см. рис.5). Блок данных разбивается на строки. Всего этих строк 4×8
= 32. Каждая строка имеет формат 20 бит. В строке содержится начальный адрес
страницы (вернее 20 старших разрядов этого адреса). Каждой строке ставится в
соответствие свой тэг в блоке тэгов. Тэг имеет формат 17 бит.
Всю кэш-память страниц можно условно разбить на 8-мь горизонталей. На каждой
горизонтали располагаются четыре строки, соответствующие этим строкам четыре тэга и
один 7-ми битовый элемент LRU/достоверности.
32
31
15 14
Индекс
Тэг
Ал
12 11
0
Аф
OFFSET
12
17
3
блок
тэгов
17 бит
тэг
20 бит
блок
данных
20
блок LRU
7 бит
строка
*
*
гр.0
гр.1
гр.2
гр.7
=
=
=
=
или
кэщ-попадание кэш-промах
Рис.5. Графическое представление функционирования буфера TLB
Рассмотрим работу кэш-памяти страниц [7]:
1. Вариант, когда МП ищет в буфере начальный адрес нужной ему страницы и там его
не находит (кэш-промах).
МП выработал линейный адрес (Ал). Поскольку включен страничный механизм,
этот адрес еще не является физическим (Аф). Пусть при поиске (соответствующего этому
Ал) начального адреса страницы в буфере TLB произошел кэш-промах. При этом
начинает работать рассмотренный ранее громоздкий страничный механизм. Когда МП в
соответствующей таблице страниц найдет нужный элемент PTE, он извлечет из этого
элемента 20-ть старших разрядов начального адреса страницы, пристыкует к ним 12-ти
разрядное смещение OFFSET (из Ал) и сформирует тем самым искомый Аф.
Одновременно МП возьмет найденные им в PTE 20-ть старших разрядов начального
адреса страницы и загрузит их в одну из строк блока данных буфера TLB. При этом
важным является то, что данный начальный адрес не может попасть в любую
произвольную строку блока данных, он может попасть только в одну из четырех строк на
конкретной горизонтали! Номер горизонтали определяют при этом разряды 14 - 12
линейного адреса Ал.
Когда МП при кэш-промахе загружает в какую-либо строку буфера новый
начальный адрес страницы он одновременно копирует в соответствующий этой строке тэг
17-ть старших разрядов Ал (разряды 31 - 15). Открытым пока остается вопрос, а в какую
из четырех строк на известной горизонтали попадет (при кэш-промахе) наш начальный
адрес. Определение номера строки на известной горизонтали, в которую попадет
начальный адрес страницы, осуществляется на основании информации, записанной в
элементе LRU/достоверности данной горизонтали.
Вернемся к началу процесса. МП выработал Ал. МП берет разряды 14 -12 этого
адреса и определяет горизонталь в буфере TLB. Затем МП берет старшие 17-ть разрядов
Ал и сравнивает их со всеми четырьмя тэгами, расположенными на выбранной
горизонтали. При этом возможны два варианта: произошло сравнение с одним из тэгов
или сравнений не произошло совсем. Несколько сравнений сразу произойти здесь не
может, так как алгоритм заполнения кэш-памяти таков, что на одной горизонтали не
может оказаться одинаковых тэгов.
Если сравнений не произошло, значит произошел кэш-промах.
2. Вариант, когда МП ищет в буфере начальный адрес нужной ему страницы и там его
находит (кэш-попадание).
Если сравнение с одним из тэгов произошло - это кэш-попадание. МП достает из
соответствующей этому тэгу строки 20-ть старших разрядов начального адреса страницы,
пристыковывает к ним 12-ть младших разрядов Ал (OFFSET) и тем самым формирует
искомый Аф.
Любой элемент LRU/достоверности имеет формат, приведенный на рис.6.
b0 b1 b2 a0 a1 a2 a3
Рис. 6. Формат элемента LRU/Достоверности
Где a0 - a3 -биты достоверности. Каждый бит достоверности соответствует одной из
четырех расположенных на данной горизонтали строк. Когда МП после кэш-промаха
загружает «на горизонталь» новый начальный адрес страницы, он, прежде всего,
последовательно проверяет биты достоверности, расположенные на данной горизонтали.
Если при этом МП встречает строку, объявленную недостоверной, именно в нее и будет
загружен новый адрес.
Однако, вполне возможно, что все строки на данной горизонтали окажутся
достоверными. Тогда информацию из какой-то строки придется удалить, а на ее место
загрузить новый начальный адрес. МП при этом стремиться удалить начальный адрес той
страницы, к которой он обращался наиболее давно. В этом ему «помогают» биты LRU
(last recently used - «наиболее давно использовал») b0–b2.
2.4. Система прерывания программ
Во время работы ЭВМ внутри нее самой или во внешней среде могут возникнуть
события, требующие немедленных ответных действий.
Прерывание программы – это способность ЭВМ при возникновении определенных
ситуаций, требующих немедленной реакции ЭВМ, прекратить выполнение текущей
программы и передать управление программе, реализующей реакцию ЭВМ на возникшую
ситуацию.
Реакция ЭВМ состоит в том, что процессор формирует управляющий сигнал,
требуемый прекращения выполнения текущей программы, а затем формирует
управляющий сигнал перехода к обработке другой программы, соответствующей
происходящему событию. По завершении этой программы ЭВМ возвращается к
выполнению текущей программы.
Основные функции системы прерывания:
 запоминание состояния прерываемой программы и переход к прерывающей
программе;
 организация приоритетного выбора между запросами, поступающими
одновременно;
 восстановление состояния прерванной программы и возврат к ней.
Рис 7.Структурная схема системы прерываний.
Заданная исходными данными (см п.1) цепочечная структура прерываний
характеризуется наличием единой линией запроса на прерывание, и линией
подтверждения (INTA), проходящей через все источники прерываний и определяющей
приоритеты прерываний в соответствии с порядком подключения устройств. Получив
запрос, процессор выдает подтверждение по линии INTA, которое проходит от одного
устройства к другому, пока не достигнет инициатора прерывания, тем самым, разрешая
этому устройству выставить на шине данных свой идентификационный номер (косвенный
адрес обработчика прерывания). Данная структура характерна более низкими затратами
как аппаратных, так и программных средств на реализацию, но недостаток состоит в том,
что приоритет устройства фиксирован и определяется порядком подключения, а также
сигнал Interrupt Acknowledge (INTA) распространяется с некоторой временной задержкой.
Заданием устанавливается СПП на уровне микрокоманды. Иногда требуется, чтобы
прерывания обрабатывались с максимально возможной скоростью для этого и существует
обработка прерываний на микропрограммном уровне (на уровне микрокоманд). Для
реализации этого решения был использован БМПУ АМ2910, а также несколько
микросхем. Введение дополнительных логических схем не сказывается на нормальном
времени цикла прохождения информации.
Адрес невыполненной микрокоманды, когда выходы устройства АМ2910 переведены
блоком синхронизации и управления в состояние высокого сопротивления и вместо
выработанного им адреса подается замещающий адрес от генератора вектора прерываний,
сохраняется без изменений путем подачи сигнала запрета увеличения на 1 на вход
переноса. Таким образом, адрес, сформированный устройством АМ2910, поступает в
неизменном виде в счетчик микрокоманд. Если микропрерывание продолжается дольше
одного цикла, содержимое счетчика микрокоманд должно быть загружено в стек, чтобы
сохранить адрес возврата. В противном случае можно осуществить возврат из
микропрограммы обработки прерывания в ближайшем следующем цикле.
Запрос на прерывание поступает на блок управления прерываниями и сигнал
прерывания из блока управления прерываниями поступает на блок синхронизации и
управления, который путем подачи сигналов на вход OE АМ2910 и CI (перенос)
переводит его выход в третье состояние и запрещает инкрементирование адреса. И адрес
стандартной микропрограммы обработки прерывания (одной для всех устройств)
поступает из блока управления прерываниями и генерирования вектора на МПП. Эта
микропрограмма сохраняет все нужные для дальнейшей работы регистры и ССП, выдает
INTA, ПУ выдавшее запрос отвечает вектором прерываний, а процессор управляемый
стандартной микропрограммой обработки прерывания принимает вектор прерываний с
шины данных, и вызывает уже специальную программу обработки прерывания для
данного устройства адрес, которой указан в векторе. После окончания обработки
прерывания адрес на котором была остановлена прерванная микропрограмма
выталкивается из стека.[3]
2.5. Адресный сопроцессор
Адресный сопроцессор служит для вычисления адреса. Главный процессор
работает с данными, а адресный сопроцессор с адресами.
Способы адресации могут быть различными:
 Регистровая прямая – указывается регистр, в котором хранятся требуемые данные;
 Регистровая косвенная - указывается регистр, в котором хранится адрес памяти;
 Непосредственная адресация – данные содержатся в следующем командном слове.
 Абсолютная адресация – указывается абсолютный адрес основной памяти.
 Относительная адресация – имеется базовый регистр, а в команде указывается
смещение.
Данные для адресного сопроцессора поступают из регистра команд. В адресном
сопроцессоре есть СК(счетчик команд) и базовый регистр. Когда сопроцессор вычисляет
адрес следующей команды, он к СК прибавляет длину текущей команды. Если существует
переход, то сопроцессор передает адрес перехода из команды перехода в СК. Если же
переход условный, то сопроцессор ждет результата выполнения условия. Когда нужно
вычислить адрес операнда, который адресован в команде методом относительной
адресации, он берет смещение из команды и прибавляет его к содержимому БА (базового
адреса) и т. д.
2.6. Таймер
Таймер предназначен для деления машинного времени на временные интервалы,
чтобы эффективно использовать процессор при работе с периферийными устройствами.
Он обеспечивает совместную работу ЦП и ПУ в реальном масштабе времени,
осуществляя разбиения машинного времени на равные интервалы времени.
Назначение таймера:



генерация прерываний от системных часов;
генерация запросов на регенерацию памяти;
генерация звуковых сигналов (PC Speaker).
В состав таймера входят схемы, необходимые для:


запроса и получения канала;
формирования вектора прерывания.
В качестве таймера в ЭВМ используется аналог микросхемы 580ВИ53 трехканальное программируемое устройство, предназначенное для организации работы
микропроцессорных систем в режиме реального времени. Таймер формирует сигналы с
различными временными параметрами.
Программируемый таймер реализован в виде трех независимых 16-разрядных
каналов с общей схемой управления. Каждый канал может работать в шести режимах.
Программирование режимов работы каналов осуществляется индивидуально и в
произвольном порядке путем ввода управляющих слов в регистры режимов каналов, а в
счетчики - запрограммированного числа байтов. С помощью таймера можно задавать
определённые промежутки времени, по истечении которых происходит прерывание.
Управляющими сигналами для таймера являются, сигналы каналов, разрешающие
или запрещающие счет, сигналы выбора каналов, а также входы write/read и вход выбора
микросхемы. Максимальное значение счета: в двоичном коде 216; в двоично-десятичном
коде 104, а частота синхронизации каналов 0-2,5 МГц. Схема подключения таймера
показана на рис.3.7.1.
СВ
DB
Таймер
Запрос на прерывание
Рис.3.7.1. Схема поключения таймера
2.7. Монитор, клавиатура
Для получения итоговых данных, для постоянного наблюдения за различными
действиями вычислительной машины используется устройство отображения информации
- монитор. Монитор способен выводить текстовую и графическую информацию ЭВМ для
пользователя, отображать текущие данные и всевозможные изменения в системе.
Монитор, как и всякое другое, периферийное устройство подключается через
контроллер (видеоадаптер) к системной шине.
Следует отметить, что монитор является пассивным устройством, которое просто
отображает динамически изменяющуюся информацию, которая хранится по
определенным адресам в ОП. Обычно в памяти хранится несколько "экранов" (страниц),
вывод же производится с текущей. Это предусматривает применение графического
ускорения, т.е. массивное изменение информации на текущей странице вызовет мерцание
на экране и долгую перерисовку особенно графических объектов. Этого можно
избежать, заранее подготовив дополнительную страницу видеоизображения и присвоить
ей номер текущей видеостраницы. Вывод текущей видеостраницы производится каждые
17мс (60 Hz) при этом информация считывается в ЗУ видеоадаптера определённой
ёмкости (объём ЗУ видеоконтроллера определяет разрешение изображения). Отображение
информации ЗУ видеоадаптера происходит независимо от процессора. Схема
подключения монитора к системе показана на рис.3.8.1.
AB
DB
Адаптер
монитора
Монитор
Рис.3.8.1. Схема поключения монитора
Клавиатура является одним из основных устройств ввода, обеспечивающих
интерактивное общение пользователя с ЭВМ. Она содержит микропроцессор (контроллер
клавиатуры), который воспринимает каждое нажатие на клавишу и выдает
последовательный скан-код. Скан-код - это однобайтовое число, младшие 7 бит которого
представляют идентификационный номер, присвоенный каждой клавише, а старший 8-ой
бит кода говорит о том, была ли нажата клавиша (бит = 1, код нажатия) или освобождена
(бит = 0, код освобождения). Таким образом, каждое нажатие клавиатуры дважды
регистрируется в
контроллере клавиатуры, подключенного к системной шине ЭВМ,
которые также преобразует последовательный скан-код в параллельный.
При поступлении скан-кода из порта вызывается прерывание. Процессор
моментально прекращает свою работу и выполняет процедуру, анализирующую скан-код,
который может содержать управляющий код, например: "Ctrl-Break".
Для того, чтобы ЦП успевал обрабатывать все нажатия клавиш, контроллер
клавиатуры должен иметь буфер FIFO. Обычно он занимает непрерывную, постоянную
область адресов памяти. И два указателя хранят позиции головы и хвоста строки
символов, находящихся в буфере в текущий момент. Новые нажатия клавиш сохраняются
в позициях, следующих за хвостом, и соответственно обновляют указатель хвоста буфера.
Считывание же происходит по указателю головы строки символов. Такая конструкция
позволяет легко очищать буфер, для этого надо установить значение указателя головы
равным значению указателя хвоста. Схема подключения клавиатуры к системе показана
на рис.3.8.2.
2.8. Внешние запоминающие устройства
К внешним запоминающим устройствам относятся в нашем случае НГМД (FDD) и
“винчестер” (HDD). Данные устройства не участвуют в вычислительном процессе, они
лишь хранят информацию. Внешние ЗУ являются устройствами с произвольным
обращением, допускающим многократное считывание информации и запись информации
на место ранее записанной [4].
ВЗУ должны подключаться к системе через сопроцессор ввода-вывода. Схема
подключения FDD и HDD к системе приведена на рис.3.9.1.
2.9. Блок синхронизации и начальная установка
Блок синхронизации включает в себя: схему сброса и устройство синхронизации
(рис.3.4.1).
Схема сброса необходима при включении питания и восстановлении после сбоя.
Задача схемы сброса выработать сигнал синхронного сброса RST#, который поступит на
входы R# SEQ МК и RGMK. Этим достигается установка секвенсора МК на нулевой адрес
МПП, где должна храниться МК инициализации системы. МК инициализации должна в
первую очередь запустить в работу генератор синхроимпульсов (посредством подачи
сигнала асинхронного сброса на вход SR#), перевести все выходы устройств в Z –
состояние и разрешить работу ПНА. Таким образом, исключаются конфликты устройств,
работающих на общей шине и производиться инициализация и запуск системы. Для
реализации схемы начальной установки можно использовать микросхему MC34064
фирмы Motorola, которая является специализированным контроллером предустановки для
микропроцессорных систем и вырабатывает сигнал асинхронного сброса. Для
синхронизации необходимо использовать системный синхросигнал, вырабатываемый
устройством синхронизации.
"Сброс"
Блок синхронизации
Схема сброса
Устройство
синхронизации
CLK
в МУУ
К устройствам
системы
CLK
SR#
RST#
CB
Рис.3.4.1. Схема блока синхронизации
Устройство синхронизации предназначается для выработки импульсных
последовательностей, согласующих по времени работу узлов и устройств в системе.
Устройство синхронизации состоит из генератора импульсов, формирователя опорных
сигналов и схем размножения (рис.3.4.2.).
CLK1
CLK
Генератор
импульсов
Формирователь
опорных
сигналов
.
.
.
CLK1
Схемы
размножения
.
.
.
CLKN
CLKN
Рис.3.4.2. Структурная схема устройства синхронизации
Генератор формирует последовательность прямоугольных импульсов с
определённой частотой. Формирователь опорных сигналов (обычно используются
делители частоты) преобразовывает эту последовательность в системные синхросигналы.
Схема размножения увеличивает мощность синхросигналов. Нельзя допустить
расфазировки синхросигналов, что вызовет сбои в аппаратуре. Для этого необходимо
использовать ИМС размножения с очень малой расфазировкой CLK.[9]
В качестве генератора, выдающего синхросигнал CLK, взята микросхема К1804ГГ1.
К1804ГГ1 – системный тактовый генератор, предназначенный для применения в составе
блоков синхронизации центральных процессоров микро-ЭВМ и других вычислительных
устройств в качестве задающего тактового генератора. Данный генератор содержит
внутренний генератор опорной синхропоследовательности: опорная частота (до 30 МГц)
задается внешним кварцевым резонатором. Генератор позволяет формировать
синхросигнал с различной длительностью сигнала высокого и низкого уровней [8], чем
достигается повышение производительности системы в общем.
3. Разрабатываемый блок
3
Сопроцессор ввода/вывода.
В ЭВМ система ввода/вывода строится путем централизации аппаратуры управления
вводом/выводом на основе применения программно-управляемых сопроцессоров
ввода/вывода (каналов ввода/вывода). Обмен информацией между периферийными
устройствами (ПУ) и ОП осуществляется через каналы ввода/вывода.
Благодаря наличию в составе ЭВМ каналов ввода/вывода,
способных реализовывать достаточно сложные процедуры,
появляется возможность полностью разгрузить процессор от
управления операциями ввода/вывода.
Для сопроцессора существует программа в/в (канальная программа) и он инициирует
запрос ЦП (прерывание) только после завершения выполнения этой программы; СПВВ
повышает эффективность использования ЦП, реализуя распараллеливание работы во
времени.
4.1 Структурная схема сопроцессора ввода/вывода.
AB
DB
RG КВВ
RG ПУСК
OE[0-3]
+
Регистр АУСК
Блок
АУСК
OE
RG НПУ
OE
OE
Блок
СчД
Регистр ССПУ
Z
Регистр КОУ
R
CB
УУ
+/-
IntA
Блок
ТАД
R/#W
OV
RG
Флаго
в
OE
RG КОУ
RG
Данных
R/#W
OE
IntR
в PSW
Регистр СчД
Сч Байт
RG СИ
Req
Признак
R/#W
Ready
Req
R
AB
DB
A
D
Интерфейс ОП
Ready
К ПУ
4.2 Управляющая информация для операций ввода/вывода.
В операциях ввода/вывода участвуют: процессор (первый уровень
управления), канал ввода/вывода (второй уровень), ПУ (третий
уровень). Каждому типу устройств соответствует определенный вид
управляющей информации: процессору – команды ввода/вывода;
каналу – управляющие слова канала (УСК); ПУ – приказы. Кроме
того, в управлении вводом/выводом используются коды состояния
канала (Слово Состояния Канала - ССК) и ПУ (байт состояния и
байт уточненного состояния).
4.3 Форматы основных видов управляющей информации.
4.3.1
Команды.
Система команд ЭВМ содержит небольшое число универсальных по
отношению к разным типам ПУ команд ввода/вывода:
- Начать ввод/вывод (признак результата, формируемый при
выполнении данной команды, указывает, нормально ли прошел
пуск операции ввода/вывода).
- Остановить ввод/вывод (по данной команде операция
ввода/вывода может быть принудительно прекращена
процессором до ее завершения в адресуемых командой канале
и ПУ).
- Проверить ввод/вывод (данная команда позволяет процессору
определить состояние канала: по команде канал в
фиксированной ячейке ОП формирует ССК и устанавливает в
ССП признак результата, определяющий состояние канала доступен; хранит условия прерывания; работает; выключен).
- Проверить канал (данная команда позволяет процессору
определить состояние ПУ: по команде из ПУ в канал
выдается байт его состояния, а из канала в процессор
поступает признак результата, указывающий следующие
возможные ситуации – ПУ доступно, ССК записано, канал
занят, ПУ выключено).
4.3.2
Формат команды.
КОП
КОП
ввод/вывод);
Номер канала
Номер ПУ
Номер канала
Номер ПУ
- код операции (начать/остановить
- номер канала ввода/вывода (сопроцессора);
- номер ПУ, подключенного к данному каналу;
В команде «Начать ввод/вывод» нужно указать адрес первого
УСК (Управляющего Слова Канала) в программе канала; этот адрес
содержится в АСК (Адресном Слове Канала), хранимом в
определенной ячейке ОП. Во всех остальных командах достаточно
указывать лишь КОП, номер канала и ПУ.
4.3.3
Управляющие слова канала.
При выполнении канальной программы ее управляющие слова
выбираются последовательно из памяти, если только не
предусмотрено программой канала нарушение естественного порядка
выборки УСК.
4.3.4
Приказ
(КОП)
Формат управляющего слова канала.
ЦД
Указатели
ЦО УБ ПИ
ПР
Адрес данных
(АД)
Счетчик данных
(СД)
ЦД – указатель цепочки данных (при ЦД=0 операция после
использования данного УСК оканчивается, при ЦД=1 она
продолжается с новым массивом данных, указанным в следующем
УСК).
ЦО – указатель цепочки операций (при ЦО=0 программа канала для
заданного ПУ заканчивается на текущем УСК; при ЦД=0 и ЦО=1
после выполнения действий по текущему УСК, выбирается
следующее по порядку УСК и выполняется новая операция
ввода/вывода с тем же ПУ).
УБ – указатель блокировки (сигнал неправильной длины,
формируется при несоответствии числа фактически переданных
байт длине физической записи).
ПИ – указатель пропуска информации (при ПИ=1 передача информации
между каналом и ОП подавляется, идет подсчет слов, проходящих
между каналом и ПУ).
ПР – указатель прерывания (при ПР=1 канал посылает в процессор
запрос прерывания).
Счетчик данных - размер передаваемого блока данных.
Адрес данных - адрес данных или точки перехода.
Приказ - для канала и ПУ тип операции.
4.3.5
Формат слова состояния канала ССК.
Адрес последнего
УСК
4.3.6
Байт состояния
ПУ
Байт состояния
канала
Счетчик
данных
Приказы.
Приказ – часть УСК, которая задает операцию, выполняемую
каналом и ПУ.
Виды приказов:
«Записать» (Вывод информации из ОП в ПУ);
«Прочитать» (Ввод информации из ПУ в ОП) и т.д.
Режимы работы сопроцессора - селекторный. (СПВВ работает с одним выбранным
периферийным устройством до окончания выполнения программы СПВВ, хотя
подключено к нему ПУ может быть несколько).
Описание блоков (модулей) сопроцессора В/В:
 RG НПУ - принимает номер ПУ.
 RG КВВ
- принимает команду В/В.
 Интерфейс с ОП - обеспечивает взаимодействие с ОП.
 RG ПУСК - хранит предварительное УСК.
 Блок СчД - хранит и модифицирует значение оставшихся для передачи байт,
формирует сигнал Z - пуст.
 Блок ТАД - хранит и модифицирует значение текущего адреса данных.
 RG КОУ
- хранит код операции (приказ ПУ) и флаги.

Блок АУСК - хранит и модифицирует адрес управляющего слова канала (загрузка
или увеличение).
 RG Данных - буферный регистр для промежуточного хранения данных.
 Сч Байт
- управляет СИ (указывает номер последнего обработанного байта в
текущем слове данных), формирует сигнал OV – переполнение.
 RG СИ
- регистр связи с интерфейсом ПУ.
 УУ
- устройство управления каналом.
4.3.7 Комментарии к функциональной схеме сопроцессора в/в.
По шине через регистр СИ между ВУ и сопроцессором передаются различные
данные. Для определения, какие именно данные существует линия признака.
Признаки канала:
 Адрес – сигнал, который используется для установления связи с определенным
контроллером;
 Управление – сигнал, который задает операцию подключенному контроллеру.
 Информация – сигнал для передачи данных в ВУ.
Признаки ВУ:
 Адрес – сигнал, с помощью которого отвечающий контроллер подтверждает, что
он выбран;
 Управление – сигнал, посредством которого контроллер выдает информацию о
текущем состоянии или о состоянии, полученном в результате предыдущих
действий;
 Информация – сигнал, с помощью которого контроллер передает в сопроцессор
данные;
 Линии управления опросом. В состав линий опроса входят две входные и две
выходные линии сопроцессора. Эти линии используются как для установления
начальной связи, так и для связи во время выполнения команды.
 Линии взаимной блокировки. Сигналы “работа” сопроцессора и “работа”
контроллера. Для указания, что сопроцессор и контроллер работают в паре –
блокирует работу других контроллеров.
 Специальные линии. Для обеспечения взаимной синхронизации, измерения
времени.
3. Описание разрабатываемого блока (Сопроцессор вводавывода).
В ЭВМ система ввода/вывода строится путем централизации
аппаратуры управления вводом/выводом на основе применения
программно-управляемых сопроцессоров ввода/вывода (иначе
называемых каналами ввода/вывода). Обмен информацией между
периферийными устройствами (ПУ) и ОП осуществляется через канал
ввода/вывода.
Благодаря наличию в составе ЭВМ каналов ввода/вывода,
способных реализовывать достаточно сложные процедуры,
появляется возможность полностью разгрузить процессор от
управления операциями ввода/вывода.
Основное отличие сопроцессора в/в от контроллера ПДП
(Прямого Доступа к Памяти) в том, что он сам может читать
команды из ОП без участия ЦП.
Для сопроцессора существует программа в/в (канальная программа) и он инициирует
запрос ЦП (прерывание) только после завершения выполнения этой программы; СВВ
повышает эффективность использования ЦП, реализуя распараллеливание работы во
времени.
Управляющая информация для операций ввода/вывода
В операциях ввода/вывода участвуют три типа устройств: роцессор
(первый уровень управления), канал ввода/вывода (второй
уровень), ПУ (третий уровень). Каждому типу устройств
соответствует определенный вид управляющей информации:
процессору – команды ввода/вывода; каналу – управляющие слова
канала (УСК); ПУ – приказы. Кроме того, в управлении
вводом/выводом используются коды состояния канала (Слово
Состояния Канала - ССК) и ПУ (байт состояния и байт уточненного
состояния).
Форматы основных видов управляющей информации
Команды
Система команд ЭВМ содержит небольшое число универсальных по
отношению к разным типам ПУ команд ввода/вывода:
- Начать ввод/вывод (признак результата, формируемый при
выполнении
данной команды, указывает, нормально ли прошел пуск
операции
ввода/вывода );
- Остановить ввод/вывод (по данной команде операция
ввода/вывода
может быть принудительно прекращена процессором до
ее завершения в
адресуемых командой канале и ПУ);
- Проверить ввод/вывод (данная команда позволяет процессору
определить
состояние канала: по команде канал в фиксированной
ячейке ОП
формирует ССК и устанавливает в ССП признак
результата,
определяющий состояние канала – доступен; хранит
условия
прерывания; работает; выключен);
- Проверить канал (данная команда позволяет процессору
определить
состояние ПУ: по команде из ПУ в канал выдается
байт его состояния, а
из канала в процессор поступает признак результата,
указывающий
следующие возможные ситуации – ПУ доступно, ССК
записано, канал
занят, ПУ выключено);
Формат команды
КОП
Номер канала
Номер ПУ
КОП
Номер канала
Номер ПУ
- код операции;
- номер канала ввода/вывода;
- номер ПУ, подключенного к
данному каналу;
В команде «Начать ввод/вывод» нужно указать адрес первого УСК
(Управляющего Слова Канала) в программе канала; этот адрес
содержится в АСК (Адресном Слове Канала), хранимом в
определенной ячейке ОП. Во всех остальных командах достаточно
указывать лишь КОП, номер канала и ПУ
Управляющие слова канала (УСК)
При выполнении канальной программы ее управляющие слова
выбираются последовательно из памяти, если только не
предусмотрено программой канала нарушение естественного порядка
выборки УСК.
Формат управляющего слова канала (УСК)
ЦД – указатель цепочки данных (при ЦД=0 операция после
использования данного
УСК оканчивается, при ЦД=1 она продолжается с новым
массивом данных,
указанным в следующем УСК);
ЦО – указатель цепочки операций (при ЦО=0 программа канала для
заданного ПУ
заканчивается на текущем УСК; при ЦД=0 и ЦО=1 после
выполнения
действий по текущему УСК, выбирается следующее по
порядку УСК и
выполняется новая операция ввода/вывода с тем же ПУ);
УБ – указатель блокировки (сигнал неправильной длины,
формируется при
несоответствии числа фактически переданных байт длине
физической
записи);
ПИ – указатель пропуска информации (при ПИ=1 передача информации
между
каналом и ОП подавляется, идет подсчет слов,
проходящих между каналом и
ПУ);
ПР – указатель прерывания (при ПР=1 канал посылает в процессор
запрос
прерывания);
Счетчик данных - (размер передаваемого блока данных);
Адрес данных - (адрес данных или точки перехода);
Приказ - (для канала и ПУ тип операции);
Формат слова состояния канала ССК.
Адрес последнего
УСК
Байт состояния
ПУ
Байт состояния
канала
Сопроцессор в/в работает с физическими
виртуальными).
Приказы
Приказ – часть УСК, которая задает
каналом и ПУ.
Виды приказов:
«Записать» (Вывод информации из ОП
«Прочитать» (Ввод информации из ПУ
Счетчик
данных
адресами ОП (не с
операцию, выполняемую
в ПУ);
в ОП) и т.д.
Мультиплексный режим
Мультиплексный режим – канал одновременно обслуживает
несколько параллельно работающих ПУ, попеременно организуя с
ними сеансы связи для передачи между ОП и ПУ небольших порций
информации (несколько байт). Если несколько ПУ подготовились к
очередному сеансу связи и запрашивают обслуживание со стороны
мультиплексного канала, то канал выбирает ПУ с наивысшим
приоритетом. Мультиплексный канал предназначен главным образом
для работы со сравнительно медленными устройствами, способными
ждать обслуживания без потери информации.
Средства канала, выделенные для обслуживания отдельных
устройств, принято называть подканалом. Число подканалов
определяет максимальное число одновременно работающих с данным
каналом ПУ. Физически подканал реализуется в виде участка
памяти, в котором хранятся параметры операции ввода/вывода,
выполняемой данным устройством: значение счетчика и адреса
данных, код и указатели операции ввода/вывода, адрес следующего
УСК и т.д.
Когда сопроцессор заканчивает сеанс связи с ПУ, то он
записывает в подканал для данного устройства все регистры
необходимые для дальнейшей работы с ним. Потом по номеру
активного подканала (полученного из ПУ) сопроцессор находит
подканал для следующего, в очереди на обслуживание ПУ и
загружает в регистры информацию.
Структура мультиплексного канала (рис 3.):
Рг. НАП
Рг. КВВ
Блок Сч.Д
байт,
Блок ТАД
- принимает номер активного подканала;
- хранит код операции команды ввода/вывода;
- хранит и модифицирует значение непереданных
- хранит и модифицирует значение текущего адреса
данных в ОП;
Рг. КОУ
- хранит код операции ( приказ ПУ ) и флаги;
Рг. ССК
- хранит слово состояния канала;
Блок АУСК - хранит и модифицирует адрес следующего
управляющего слова канала;
Сч.Б
- управляет СИ (указывает номер последнего
обработанного байта в
текущем слове данных), формирует
сигнал переполнения;
БР
- буферный регистр для промежуточного
хранения данных;
Рг. СИ
- регистр связи с интерфейсом ПУ;
УУ
- устройство управления каналом выполняет
функции
синхронизации, а также записи и
считывания информации
для всех регистров, которые
адресуются в канале;
Интерфейс памяти
- обеспечивает взаимодействие с ОП;
Память подканалов - участок памяти, в котором хранятся
параметры
операции ввода/вывода,
выполняемой данным устройством:
текущие значения адреса и
счетчика данных, код и флаги,
адрес следующего УСК,
регистр СИ, счетчик байт;
4. Алгоритм завершения работы (распознавание последней
команды) Сопроцессора ввода/вывода.
У сопроцессора ввода/вывода нет прямой команды завершения
работы. Конечно можно было бы предусмотреть этот случай в
системе команд, но можно остановиться на подручных средствах.
В структуре УСК присутствуют указатель цепочки данных (ЦД) и
указатель цепочки операций (ЦО). При ЦД=0 операция после
использования данного
УСК оканчивается, при ЦД=1 она продолжается с новым массивом
данных,
указанным в следующем УСК. При ЦО=0 программа
канала для заданного ПУ
заканчивается на текущем УСК; при ЦД=0 и ЦО=1 после выполнения
действий по текущему УСК, выбирается следующее по порядку УСК и
выполняется новая операция ввода/вывода с тем же ПУ. В случае
же, когда в УСК ЦД=0 и ЦО=0, УСК после выполнения последних
действий заканчивает работу канала.
Пример: В ОП должны быть приняты из некоторых 500 байт с
носителя, первые 10 и последние 20.
Надо выполнить следующую последовательность УСК:
Адрес
УСК
N
N+8
N+16
Приказ
Прочита
ть
Прочита
ть
Прочита
ть
Указатель
ц
ц
у
пи
д
о
б
1
0
0
0
1
0
0
1
0
0
1
0
п
р
0
1
0
Адрес
данных
А
0
А+10
Счетчик
данных
10
470
20
Первое УСК выполняет ввод первых 10 байт в ячейки с адресом то А
до А+9. Второе УСК обеспечивает пропуск следующих 470 байт.
Третье УСК выполняет ввод в ОП оставшихся 20 байт и заканчивает
программу канала (ЦД=0 ЦО=0). Автоматически (по окончании
цепочки) каналом формируется прерывание, сигнализирующее
процессору, что затребованная операция ввода/вывода выполнена
полностью.
3. Описание разрабатываемого блока (Сопроцессор ввода-вывода).
(см. приложение 3)
Сопроцессор ввода/вывода ориентирован на архитектуру с разделяемой
ОП (между ЦП и другими устройствами). Основное отличие сопроцессора
в/в от контроллера ПДП (Прямого Доступа к Памяти) в том, что он сам
может читать команды из ОП без участия ЦП.
Для СПВВ - есть программа в/в (канальная программа) и он инициирует запрос ЦП
(прерывание) только после завершения выполнения этой программы, в то время как
КПДП инициирует запрос на прерывание после выполнения каждой команды
(инструкции). СПВВ повышает эффективность использования ЦП.
Команды от ЦП к СПВВ:
- Начать в/в;
- Остановить в/в;
- Проверить канал;
- Проверить ввод/вывод;
Формат команды ЦП для ВВ.
КОП Номер канала Номер ПУ
КОП
- код операции (начать/остановить в/в);
Номер канала - номер канала ввода/выводы ( сопроцессора );
Номер ПУ
- номер переферийного уст-ва, подключеного к данному каналу;
В команде “Начать в/в”, кроме того, нужно указать адрес первого УСК(Управляющее
слово канала), но этот адрес не указывается непосредственно в команде, а хранится в
АСК(адресное слово канала), которое в свою очередь находится в определенной ячейке
ОП.
Формат управляющего слова канала УСК.
Приказ Адрес данных Сч.данных Флаги
Флаги - ( в мин. составе ЦД, ЦО, УБ, ПИ, ПР)
ЦД – указатель цепочки данных;
ЦО - указатель цепочки операций;
УБ – указатель блокировки;
ПИ – указатель пропуска информиации;
ПР – указатель прерывания;
Счетчик данных - ( размер передаваемого блока данных );
Адрес данных - ( адрес данных или точки перехода );
Приказ - ( приказ пер-му уст-ву или команда канала);
Формат адресного слова канала АСК.
( находится в зарезервированной области ОП):
Ключ программы
Адрес УСК
Формат слова состояния канала ССК.
Адрес последнего УСК Байт сост. ПУ Байт сост. Канала Сч.данных
Сопроцессор в/в работает с физическими адресами ОП (не с виртуальными). Физический
уровень управления сопроцессором в/в пользователю не доступен.
Мультиплексный режим – несколько ПУ разделяют во времени канал в/в, каждое из
параллельно работающих с данным каналом ПУ связываются с каналом на короткие
промежутки времени(сеансы связи). Во время сеанса связи одного из устройств с каналом
другие устройства могут выполнять работу, не требующую использования средств канала
(например, печатать очередной символ, или считывать символ с носителя информации).
Если несколько ПУ подготовились к очередному сеансу связи и запрашивают
обслуживание со стороны мультиплексного канала, то канал выбирает ПУ с наивысшим
приоритетом. Мультиплексный канал предназначен главным образом для работы со
сравнительно медлеными устройсвами, способными ждать обслуживания без потери
информации.
Средства канала, выделенные для обслуживания отдельных устройств, принято называть
подканалом. Число подканалов определяет максимальное число одновременно
работающих с данным каналом ПУ. Физически подканал реализуется в виде участка
памяти, в котором хранятся параметры операции в/в, выполняемой данным устройством.
Когда сопроцессор заканчивает сеанс связи с ПУ, то он записывает в подканал для
данного устройства все регистры необходимые для дальнейшей работы с ним. Потом по
номеру активного подканала (полученного из ПУ) сопроцессор находит подканал для
следующего, в очереди на обслуживание ПУ и загружает в регистры информацию.
Описание блоков (модулей) сопроцессора В/В:
Рг. НАП
- принимает номер активного подканала;
от процессора или от ПУ через регистр СИ;
Рг. КВВ
- принимает команду В/В;
Блок Сч.Д - хранит и модифицирует значение непереданных байт,
формирует сигналы Z – пуст и < C - меньше размера слова;
Блок ТАД - хранит и модифицирует значение текущего адреса
данных в ОП;
Рг. КОУ
- хранит код операции ( приказ ПУ ) и флаги;
Рг. ССК
- хранит слово состояния канала;
Блок АУСК - хранит и модифицирует адрес следующего
управляющего слова канала;
Сч.Б
- управляет СИ (определяет место куда считывать байт),
формирует сигнал OV - переполнение;
БР
- буферный регистр для промежуточного хранения данных;
Рг. СИ
- регистр связи с интерфейсом ПУ;
УУ
- устройство управления каналом выполняет функции
синхронизации, а также записи и считывания информации
для всех регистров, которые адресуются в канале;
Интерфейс памяти - обеспечивает взаимодействие с ОП;
Память подканалов - участок памяти, в котором хранятся параметры
операции ввода/вывода, выполняемой данным устройством:
текущие значения адреса и счетчика данных, код и флаги,
адрес следующего УСК, регистр СИ,счетчик Байт;
Комментарии к функциональной схеме сопроцессора в/в.
По шине через регистр СИ между ВУ и сопроцессором передаются различные
Данные. Для определения, какие именно данные существует линия признака.
Признаки канала:
 Адрес – сигнал, который используется для установления связи с определенным


контроллером;
Управление – сигнал, который задает операцию подключенному контроллеру.
Информация – сигнал для передачи данных в ВУ.
Признаки ВУ:
 Адрес – сигнал, с помощью которого отвечающий контроллер подтверждает, что он
выбран;
 Управление – сигнал, посредством которого контроллер выдает информацию о
текущем состоянии или о состоянии, полученном в результате предыдущих действий;
 Информация – сигнал, с помощью которого контроллер передает в сопроцессор
данные;
Линии управления опросом. В состав линий опроса входят две входные и две выходные
линии Сопрцессора. Эти линии используются как для установления начальной связи, так и
для связи во время выполнения команды.
Линии взаимной блокировки. Сигналы “работа” сопроцессора и “работа” контроллера.
Для указания, что сопроцессор работает нормально, и контроллер работает и блокирует
работу других контроллеров.
Специальные линии. Для обеспечения взаимной синхронизации, измерения времени и.т.д.
4. Алгоритм реакции на ошибки в памяти Сопроцессора ввода/вывода.
1. Когда сопрцессору нужно записать или прочитать данные из памяти, он запрашивает
цикл обращения к памяти.
2. Если память свободна, то сопроцессор начинает с ней работу.
3. Допустим сопроцессор запросил 100 байт, а получил 95 байт, и нет никакого способа
получить недостоющие 5 байт.
4. Cопроцессор формирует флажок неправильной длины в ССК.
5. Записывает Слово Состояния Канала в память, чтобы оно было доступно СУВВ
(Супервизор ввода/вывода).
6. Формирует сигнал запроса на прерывание и записывает в Регистр Кода Условия (часть
ССП), что СУВВ нужно просмотреть ССК для получения более подробной
информации.
7. По данному прерыванию в действие вступает Супервизор Ввода/Вывода, анализирует
ССК с целью определения вида ошибки.
8. Если произошла ошибка, допускающая восстановление работоспособности, то
запускается требуемая подпрограмма обработки ошибок.
9. Если ошибка не была исправлена, то она сообщает это СУВВ и передает ему
управление. В этом случае СУВВ действует точно так же, как если бы ошибка не
допускала восстановления работоспособности.
10. Если ошибка не допускает восстановления работоспособности, обращение к какойлибо подпрограмме не имеет смысла.
11. Система или пользователь должны выбрать одно из четырех:
 Вызвать завершение программы;
 Воспринять плохие данные;
 Повторить процедуру, которая вызвала ошибку;
 Пропустить эти данные и перейти к следующим;
12. Если ошибка была устранена, то сопрцессору необходимо повторить выполняемую им
операцию, которая привела к ошибке.
Список литературы
1. Схемотехника.
Руководство
к
курсовой
работе/
В.И.
Соболев.-
№1522.-
Новосибирск, 1997. – 62 с.
2. Схемотехника
ЭВМ.
Элементная
база
секционных
микропроцессоров.
Методические указания к лабораторному практикуму/В.И. Соболев. - №681. –
Новосибирск, 1987. – 46 с.
3. Мик Дж., Брик Дж. Проектирование микропроцессорных устройств с разрядномодульной организацией: В 2 кн. / Пер. с англ. – М.: Мир, 1984. – Кн. 2. 233 с.
4. Каган Б.М. Электронные вычислительные машины и системы: Учеб. пособие для
вузов. – 3-е изд., перераб. и доп. – М.: Энергоатомиздат, 1991. – 592 с.: ил.
5. Угрюмов Е.П. «Цифровая схемотехника». – Спб.: БХВ-Петербург, 2001. – 528 стр.
6. Курс лекций по дисциплине “Организация ЭВМ и систем” за 2005г.
7. Гузик В.Ф., Каляев В.А., Костюк А.И. Организация ЭВМ и систем: Учебное
пособие. Таганрог. ТРТУ, 1999.
8. Микропроцессоры и микропроцессорные комплекты интегральных микросхем:
Справочник: в 2 т./ Н.Н. Аверьянов, А.И. Березенко, Ю.И. Борщенко и др.; Под ред.
В.А. Шахнова.- М.: Радио и связь, 1988. – т. 2. – 368 стр
9. Курс лекций по дисциплине “Схемотехника” за 2004г.
Документ
Категория
Компьютеры и периферийные устройства
Просмотров
7
Размер файла
510 Кб
Теги
романе
1/--страниц
Пожаловаться на содержимое документа