-
Адресный сопроцессор
Адресный сопроцессор служит для вычисления адреса. Его использование позволяет сократить количество тактов, необходимых для выполнения команды. В отличие от основного процессора, адресный работает только с целочисленными данными (адресами).
Адресный процессор работает параллельно основному, т.е. основной процессор выбирает и выполняет свои команды, адресный – свои. Такая работа возможна, если адресный процессор содержит свое МУУ и ОБ.
В принципе, МУУ основного процессора может содержать и команды для адресного сопроцессора, тогда структура основного процессора будет несколько другой: общее МУУ, ОБ основного процессора, ОБ адресного процессора. Однако в этом случае объем ММП должен быть больше.
Работой адресного сопроцессора управляет МУУ основного процессора. Это необходимо, например, в случаях команд условного перехода, когда адресный сопроцессор вынужден ждать появления истинных флагов.
Основные режимы работы адресного сопроцессора это вычисление адреса следующей команды и генерация адресов при пакетном чтении (записи), например, при обновлении кэша. Если нужно вычислить адрес следующей команды, то сопроцессор прибавляет к содержимому счетчика команд длину текущей команды, если имеет место быть безусловный переход, то адрес перехода заносится в счетчик команд, если нужно вычислить адрес операнда, то работает микропрограмма вычисления в зависимости от способа адресации и т.д.
Код операции с регистра команд основного процессора попадает на преобразователь начального адреса (ПНА). Адрес микропрограммы поступает на секвенсер микрокоманд и далее на микропрограммную память (ММП). Микрокоманда содержит инструкцию для микропроцессорной секции (МПС), инструкцию для секвенсера микрокоманд, адрес перехода, код условия. МПС занимается вычислением адреса.
Мультиплексор кода условия выбирает источник основной/сопроцессор условия и управляется из микрокоманды.
Рис 8 Структурная схема адресного сопроцессора.
4.Сопроцессор ввода/вывода в селекторном режиме[1],[2],[4].
По мере развития систем ввода/вывода их функции усложнялись. Главной целью такого усложнения – максимальное высвобождение ЦП от управления процессами ввода/вывода. Сопроцессор ввода/вывода ориентирован на архитектуру с разделяемой
ОП. Основное отличие сопроцессора в/в от контроллера ПДП (Прямого Доступа к Памяти) в том, что он сам может читать команды из ОП без участия ЦП. Все функции ЦП сводятся к запуску и остановке операций в СПВВ, а также проверке состояния канала и подключенных к нему ПУ.
СПВВ, работающий в селекторном режиме, может управлять несколькими ПУ, но вести обмен данными только с одним из них до окончания процесса ввода/вывода. СПВВ в селекторном режиме предназначен для работы с высокоскоростными ПУ.
. Рис. 9. Селекторный канал.
Селекторный канал предназначается для монопольного обслуживания одного ПУ. При работе с селекторным каналом ПУ после пуска операции остается связанным с каналом до окончания цепи операций. Запросы на обслуживание от других ПУ, так же как и новые команды пуска операций ввода-вывода от процессора, в это время не воспринимаются каналом: до завершения цепи операций селекторный канал по отношению к процессору представляется занятым устройством.
Канал для обеспечения доступа к памяти имеет следующие функции:
-
Задание размера массива данных и области памяти, участвующих в обмене информацией.
-
Формирование адресов последовательных ячеек ОП, используемых в передаче.
-
Подсчет числа единиц данных (слов, байт и т.д.), прошедших через канал.
-
Определение момента завершения передачи массива данных.
-
Обеспечение буферизации и преобразование форматов передаваемых данных для согласования работы ОП и ПУ.
Каждая операция или совокупность операций ввода-вывода производится под управлением соответствующей программы канала.
Рис. 10. Структурная схема СПВВ в селекторном режиме.
В операциях ввода/вывода участвуют:
-
процессор (первый уровень управления),
-
канал ввода/вывода (второй уровень),
-
ПУ (третий уровень).
Каждому типу устройств соответствует определенный вид управляющей информации:
-
процессору – команды ввода/вывода;
-
каналу – управляющие слова канала (УСК);
-
ПУ – приказы.
Кроме того, в управлении вводом/выводом используются коды состояния канала (слово состояния канала - ССК) и ПУ (байт состояния и байт уточненного состояния).
Команды и формат команд.
Система команд ЭВМ содержит небольшое число универсальных по отношению к разным типам ПУ команд ввода/вывода:
-
Начать ввод-вывод. Признак результата, формируемый при выполнении данной команды, указывает, нормально ли прошел пуск операции ввода/вывода.
-
Остановить ввод-вывод. По этой команде операция ввода-вывода может быть принудительно прекращена процессором до ее завершения в адресуемых командой канале и ПУ.
-
Проверить канал. По данной команде в фиксированной ячейке ОП формирует ССК(слово состояния канала) и устанавливает в ССП признак результата, определяющий состояние канала: канал доступен, канал хранит условие прерывания, канал работает, канал выключен.
-
Проверить ввод-вывод. При выполнении этой команды из ПУ в канал выдаётся байт его состояния, а из канала в процессор поступает признак результата, указывающий следующие возможные ситуации: адресуемое ПУ доступно, ССК записано, канал занят, адресуемое ПУ выключено.
Код операции |
Номер ПУ |
Рис. 11. Формат команды ввода-вывода.
Ключ программы |
0000 |
Адрес АУСК |
Рис. 12. Формат адресного слова канала.
В команде «Начать ввод/вывод» нужно указать адрес первого УСК (Управляющего Слова Канала) в программе канала; этот адрес содержится в АСК (Адресном Слове Канала), хранимом в определенной ячейке ОП. Во всех остальных командах достаточно указывать лишь КОП, номер канала и ПУ.
Формат управляющего слова канала.
При выполнении канальной программы ее управляющие слова выбираются последовательно из памяти, если только не предусмотрено программой канала нарушение естественного порядка выборки УСК.
Приказ (КОП) |
Указатели |
Адрес данных (АД) |
Счетчик данных (СД) |
||||
ЦД |
ЦО |
УБ |
ПИ |
ПР |
Рис. 13. Формат УСК.
ЦД – указатель цепочки данных (при ЦД=0 операция после использования данного УСК оканчивается, при ЦД=1 она продолжается с новым массивом данных, указанным в следующем УСК).
ЦО – указатель цепочки операций (при ЦО=0 программа канала для заданного ПУ заканчивается на текущем УСК; при ЦД=0 и ЦО=1 после выполнения действий по текущему УСК, выбирается следующее по порядку УСК и выполняется новая операция ввода/вывода с тем же ПУ).
УБ – указатель блокировки (сигнал неправильной длины, формируется при несоответствии числа фактически переданных байт длине физической записи).
ПИ – указатель пропуска информации (при ПИ=1 передача информации между каналом и ОП подавляется, идет подсчет слов, проходящих между каналом и ПУ).
ПР – указатель прерывания (при ПР=1 канал посылает в процессор запрос прерывания).
Счетчик данных - размер передаваемого блока данных.
Адрес данных - адрес данных или точки перехода.
Приказ - для канала и ПУ тип операции.
Адрес последнего УСК |
Байт состояния ПУ |
Байт состояния канала |
Счетчик данных |
Рис. 14. Формат слова состояния канала ССК.
Приказы.
Приказ – часть УСК, которая задает операцию, выполняемую каналом и ПУ.
Виды приказов:
«Записать» (Вывод информации из ОП в ПУ);
«Прочитать» (Ввод информации из ПУ в ОП)
«Переместить головки» и т.д.
Описание блоков (модулей) сопроцессора В/В.
-
RG НПУ - принимает номер ПУ.
-
RG КВВ - принимает команду В/В.
-
Интерфейс с ОП - обеспечивает взаимодействие с ОП.
-
RG ПУСК - хранит предварительное УСК.
-
Блок СчД - хранит и модифицирует значение оставшихся для передачи байт, формирует сигнал Z - пуст.
-
Блок ТАД - хранит и модифицирует значение текущего адреса данных.
-
RG КОУ - хранит код операции (приказ ПУ) и флаги.
-
Блок АУСК - хранит и модифицирует адрес управляющего слова канала (загрузка или увеличение).
-
RG Данных - буферный регистр для промежуточного хранения данных.
-
Сч Байт - управляет СИ (указывает номер последнего обработанного байта в текущем слове данных), формирует сигнал OV – переполнение.
-
RG СИ - регистр связи с интерфейсом ПУ.
-
УУ - устройство управления каналом.
Комментарии к функциональной схеме сопроцессора в/в.
На схеме рис.10. все регистры, имеющие вход S, при S=0 находятся в режиме параллельной загрузки, при S=1 в режиме хранения(RG НПУ, RG КВВ, RG ПУСК и т.д.)
СТ в СчТД имеет три состояния в зависимости от сигналов на входах S1S0: 00,01 – вычитающий счётчик,10 – параллельная загрузка, 11 – удержание. СТ в блоке ТАД, имеет аналогичные режимы работы, но вместо операции сложении он выполняет операцию сложения. Для загрузки данных в RG КВВ, RG НПУ и RG АУСК используется адресный селектор. Процессор выставляет адрес на шину адреса, который может являться адресом RG КВВ, RG АУСК или RG состояния. Селектор определяет, принадлежит ли выставленный адрес какому-либо из этих регистров и, если принадлежит, разрешает в следующем такте либо загрузиться с шины данных (RG КВВ, RG НПУ и RG АУСК), либо отправить данные на неё (RG состояния). Адреса регистров после преобразования выглядят следующим образом: RG КВВ – 110, RG состояния – 101, RG АУСК – 011.
Когда канал читает из памяти первое УСК, устройство управления подаёт низкий уровень на буфер, разрешая ему пропустить данные в RG КОУ, RG ТАД, СчТД, а сами эти устройства переводит в режим параллельной загрузки. Для управления этим предусмотрено 2 бита из УУ, так как загрузка данных в блок КОУ и СчТД происходит в одном такте, а в блок ТАД – в другом, потому что УСК имеет длину 2 слова.
Схема управления предварительной выборкой следит за состоянием счётчика текущих данных, и, когда содержимое СчТД станет меньше восьми, СПВВ производит обращение к памяти по адресу из RG АУСК. Новое управляющее слово посылается в RG ПУСК, в то время как канал продолжает обработку предыдущего УСК. После того, как содержимое СчТД станет равным 0, содержимое RG ПУСК замещает старое содержимое RG ТАД, СчТД и указателей в регистре КОУ.
По шине через регистр СИ между ВУ и сопроцессором передаются различные
данные. Для определения, какие именно данные существует линия признака.
Признаки канала:
-
Адрес – сигнал, который используется для установления связи с определенным контроллером;
-
Управление – сигнал, который задает операцию подключенному контроллеру.
-
Информация – сигнал для передачи данных в ПУ.
Признаки ПУ:
-
Адрес – сигнал, с помощью которого отвечающий контроллер подтверждает, что он выбран;
-
Управление – сигнал, посредством которого контроллер выдает информацию о текущем состоянии или о состоянии, полученном в результате предыдущих действий;
-
Информация – сигнал, с помощью которого контроллер передает в сопроцессор данные;
-
Линии управления опросом. В состав линий опроса входят две входные и две выходные линии сопроцессора. Эти линии используются как для установления начальной связи, так и для связи во время выполнения команды.
-
Линии взаимной блокировки. Сигналы “работа” сопроцессора и “работа” контроллера. Для указания, что сопроцессор и контроллер работают в паре –блокирует работу других контроллеров.
-
Специальные линии. Для обеспечения взаимной синхронизации, измерения времени.
Запуск сопроцессора ввода/вывода.
Выполнение операции ВВ в канале можно рассматривать как совокупность нескольких видов процедур, из которых наиболее важными являются начальная выборка и обслуживание ПУ. Начальная выборка производится по инициативе процессора при пуске новой операции ВВ. Процессор передаёт в канал код операции ВВ, номер ПУ и адрес первого слова УСК. Эти параметры заносятся каналом в регистры RG КВВ, RG НПУ, RG АУСК. После этого, используя содержимое RG АУСК как адрес, канал выбирает из ОП первое УСК, размещая его поля в RG КОУ, RG ТАД, СчТД. К содержимому RG АУСК прибавляется число, равное длине управляющего слова, после чего RG АУСК указывает адрес следующего УСК в цепочке. Канал, устанавливая признак результата ПР=0, запускает в работу требуемое ПУ. Если устройство свободно и во время начальной выборки не обнаружены программные или аппаратные ошибки, считается, что пуск произошёл нормально. Канал, устанавливая признак результата ПР=0, сообщает об этом процессору, который переходит к выполнению следующей команды своей программы.
Выводы.
В процессе разработки ЭВМ заданной конфигурации были закреплены и углублены знания, полученные в прошлом семестре по предмету «Организация ЭВМ». Была разработана укрупненная структурная схема селекторного сопроцессора ввода-вывода. В результате проектирования приобретены навыки разработки узлов ЭВМ на структурном, функциональном и алгоритмическом уровнях.
Список литературы.
-
Каган Б. М. «Электронные вычислительные машины и системы».-М.:Энергоатомиздат, 1985.-552с.
-
Цилькер Б.Я., Орлов С.А. «Организация ЭВМ и систем».-СПб.:Питер,2004.-668с.
-
Мик Дж., Брик Дж. Проектирование микропроцессорных устройств с разрядно – модульной организацией. В 2-х книгах: пер. с англ. – М.: Мир 1984. – 478 с.
-
Лекции по курсу «Организация ЭВМ».