5.3. Контроль ОП по Хэммингу Для коррекции одиночных и обнаружения двойных ошибок в 32-разрядном слове данных необходим 7-разрядный код Хэмминга, получаемый с помощью специального формирователя при записи входного слова данных в ОЗУ.
При считывании данных схема проверки и коррекции кода исправляет одиночную ошибку путем инвертирования ошибочного бита при использовании одного из выходных элементов исключающее ИЛИ (Mod 2).
При обнаружении двойной ошибки схема проверки и коррекции считанного кода формирует сигнал «Некорректируемая ошибка», который может, например, вызывать прерывание работы центрального процессора. Этот же сигнал вырабатывается и при обнаружении некоторых (но не всех) ошибок тройной или большей кратности.
ОП
Формирователь кода Хэмминга
Схема проверки и коррекции считанного кода
Mod 2
Некорректируемая ошибка
Входные данные
Выходные данные Рис. 13. ОП с коррекцией информации по Хэммингу.
Причем формирователь и схема проверки и коррекции кода должны быть объединены в одну. И в зависимости от типа операции (чтение или запись) включалась то одна, то другая.
6. Ввод/вывод 6.1. Структура модуля ввода/вывода Структура МВВ в значительной мере зависит от числа и сложности внешних устройств, которыми он управляет, однако в самом общем виде такой модуль можно представить в форме, показанной на рис 14.
Связь модуля ввода/вывода с ядром ВМ осуществляется посредством системной шины. С этой стороны в МВВ реализуется так называемый «большой» интерфейс. Большие различия в архитектуре систем команд и шин ВМ являются причиной того, что со стороны «большого» интерфейса модули ввода/вывода достаточно трудно унифицировать, и часто МВВ, созданные для одних ВМ, не могут быть использованы в других.
Данные, передаваемые в модуль и из него, буферизируются в регистре данных. Буферизация позволяет компенсировать различие в быстродействии ядра ВМ и внешних устройств. Разрядность регистра, как правило, совпадает с шириной шины данных со стороны «большого» интерфейса. В свою очередь, большинство ВУ ориентировано на побайтовый обмен информацией. Побайтовая пересылка информации по «широкой» системной шине — крайне неэффективное решение, поэтому со стороны «малого» интерфейса регистр данных часто дополняют узлом упаковки/распаковки (на схеме не показан). Этот узел при вводе обеспечивает последовательное побайтовое заполнение регистра данных (упаковку) а при выводе — последовательную побайтовую выдачу содержимого регистра на ВУ (распаковку). В результате при обмене данными через «большой» интерфейс занята вся ширина шины данных. В МВВ, рассчитанных на работу с большим числом ВУ, могут входить несколько регистров данных, что позволяет независимо хранить текущие данные каждого из внешних устройств.
Помимо регистра данных в составе МВВ имеются также регистр управления и регистр состояния (либо совмещенный регистр управления/состояния).
В регистре управления (РУ) фиксируются поступившие из ЦП команды управления модулем или подключенными к нему внешними устройствами. Отдельные разряды регистра могут представлять такие команды, как очистка регистров ММВ, сброс ВУ, начало чтения, начало записи и т. п. В сложных МВВ присутствует неесколько регистров управления, например регистр управляющих сигналов для модуля в целом и отдельные РУ для каждого из ВУ.
Регистр состояния (PC) служит для хранения битов состояния МВВ и подключенных к нему ВУ. Содержимое определенного разряда регистра может характеризовать, например, готовность устройства ввода к приему очередной порции данных, занятость устройства вывода или нахождение ВУ в автономном режиме. Процедура ввода/вывода предполагает возможность работы с каждым регистром МВВ или внешним устройством по отдельности. Такая возможность обеспечивается системой адресации. Каждому модулю в адресном пространстве ввода/вывода (совмещенном или раздельном) выделяется уникальный набор адресов, количество адресов в котором зависит от числа адресуемых элементов. Поступивший из ЦП адрес с помощью селектора адреса проверяется на принадлежность диапазону, выделенному данному МВВ. В случае подтверждения дешифратор DC выполняет раскодирование адреса, разрешая работу с соответствующим регистром модуля или ВУ.
Узел управления вводом/выводом, по сути, играет роль местного устройства управления МВВ. На него возлагаются две задачи: обеспечение взаимодействия с ЦП и координация работы всех составляющих МВБ. Связь с ЦП реализуется посредством линий управления, по которым из ЦП в модуль поступают сигналы, служащие для синхронизации операций ввода и вывода. В обратном направлении передаются сигналы, информирующие о происходящих в модуле событиях, например сигналы прерывания. Часть линий управления может задействоваться модулем для арбитража. Вторая функция узла управления реализуется с помощью внутренних сигналов управления.
Со стороны «малого» интерфейса МВБ обеспечивает подключение внешних устройств и взаимодействие с ними. Эта часть МВВ более унифицирована, поскольку внешние устройства всегда подгоняются под один из стандартных протоколов.
При управлении широким спектром ВУ модуль должен по возможности освобождать ЦП от знания деталей конкретных ВУ, так чтобы ЦП мог управлять любым устройством с помощью простых команд чтения и записи. МВВ при этом берет на себя задачи синхронизации, согласования форматов данных и т. п.
Рис. 14. Структура модуля ввода/вывода.
|