- •Глава 1. Основные понятия 9
- •Глава 8. Организация виртуальной памяти 227
- •Глава 9. Организация кэш-памяти 246
- •Глава1. Основные понятия
- •1.1. Система программно-аппаратных средств обработки информации
- •1.2.Традиционная классификация эвм
- •1.3. Структуры эвм
- •1.4. Многомашинные комплексы и многопроцессорные системы
- •1.5. Эволюция режимов работы эвм
- •1.5. Особенности построения и эксплуатации современных многопроцессорные и многомашинных комплексов.
- •Глава 2. Программная модель процессора
- •2.1. Общие понятия
- •2.2. Виды используемых структур памяти по принципам размещения и поиска информации
- •2.3. Организация оперативной памяти
- •2.3.1. Оперативная память и адресные пространства процессора
- •2.3.2. Адресация многобайтовых объектов в оперативной памяти
- •2.3.3. Структура и типы команд
- •2.4. Режимы адресации
- •2.5. Типы машинных арифметик
- •2.6. Управление потоком команд.
- •2.7. Контекст программы
- •2.8. Команды cisc- и risc-архитектуры
- •Глава 3. Программная модель мп Intel
- •3.1. Режимы работы
- •3.2. Программная модель 16-ти битового микропроцессора мп ia-16
- •3.2.1. Модель памяти
- •3.2.2. Порты ввода/вывода
- •2.2.3. Регистровый файл
- •3.2.4. Структура команд
- •3.3. Программная модель 32-битового микропроцессора
- •3.3.1. Основные особенности организации
- •3.3.2. Модель памяти
- •3.3.3. Регистровый файл
- •3.3.4. Структура команд и режимы адресации
- •3.3.5. Структура данных
- •Глава 4. Программные модели мп корпорации dec
- •4.1. Программная модель процессоров семейства pdp-11
- •4.2. Программная модель процессоров эвм vax-11 (см 1700)
- •Глава 5. Система прерывания
- •5.1.Функции системы прерывания и общие решения по реализации
- •5.2. Система прерывания в мп intel
- •5.2.1. Система прерывания в мп ia-16
- •5.2.2. Особенности системы прерывания в мп ia-32
- •5.2.3. Организация системы прерывания в pdp 11
- •Глава 6. Организация ввода-вывода
- •6.1. Система ввод/вывода
- •6.2.Теоретические основы операций ввода/вывода
- •6.3. Синхронизация передачи данных при вводе/выводе
- •6.3.1. Ввод/вывод с проверкой готовности
- •6.3.2. Ввод/вывод с использованием системы прерывания
- •6.3.3. Ввод/вывод с использованием устройств прямого доступа к памяти
- •Глава 7. Шинные интерфейсы
- •7.1. Общие положения
- •7.2. Асинхронный системный интерфейс "Общая шина"
- •7.3. Системные интерфейсы мп ia
- •7.4. Локальный интерфейс микропроцессора i80386
- •7.4.1. Особенности локального интерфейса i80386
- •7.4.2. Диаграммы работы локального интерфейса мп i80386
- •7.4.3. Модель функционирования локального интерфейса мп i80386. (интерфейс с конвейерной передачей данных)
- •7.4.4. Специальные циклы
- •7.5. Локальный интерфейс микропроцессора i486 (интерфейс с пакетной передачей данных)
- •7.5.1. Особенности локального интерфейса i486
- •7.5.2. Диаграммы работы локального интерфейса мп i486
- •7.5.3. Модель функционирования локального интерфейса мп i486
- •7.6. Локальный интерфейс мп Pentium (интерфейс с пакетной передачей данных и конвейеризацией передачи адреса)
- •7.7. Интерфейсы с расщепленными транзакциями
- •Глава 8. Организация виртуальной памяти
- •8.2. Основные задачи виртуальной памяти
- •8.3. Страничная организации виртуальной памяти
- •8.3.1. Страничная организация памяти
- •8.3.2. Виртуальная память на основе таблицы математических страниц
- •8.3.3. Упрощенная схема виртуальной памяти на основе таблицы физических страниц
- •8.3.4. Схема виртуальной памяти на основе таблицы физических страниц.
- •Глава 9. Организация кэш-памяти
- •9.1. Назначение и общая схема подключения кэш-памяти
- •9.2. Системы адресации кэш-памяти
- •9.3. Режимы работы кэш-памяти
- •9.4. Иерархическая структура кэш-памяти и средства управления кэш-памятью
- •9.5. Организация когерентности системы кэш-памяти в многопроцессорных системах с общей оперативной памятью.
- •Основные переходы. При запросах на чтение (r):
- •Чтение (sr2):e в s. При запросах на запись (w):
- •Глава 10. Организация системы памяти на жестких дисках
- •10.1.Дисковые массивы и уровни raid
- •125Стр. Из 292
6.3. Синхронизация передачи данных при вводе/выводе
Специфика периферийных устройств заключается в том, что их схемы работают несинхронно с тактом работы процессора и, как правило, являются намного менее быстродействующими по сравнению с ПР и ОП.
RDконтроллера по отношению к ПР является быстродействующим регистром, который способен производить прием/передачу данных наравне с внутренними регистрами ПР. С другой стороны, RD осуществляет прием/передачу данных от связанного с ним ПУ с той скоростью и в том порядке, которые обусловлены характеристиками данного ПУ.
Поэтому, моменты появления данных на RD контроллера ПУ при вводе, или готовность ПУ принять новые данные при выводе – непредсказуемы. Определение моментов готовности ПУ принять или передать новые данные и передача данных при условии наступления ожидаемых моментов составляют суть условных программных способов ввода/вывода.
В настоящее время известны два условных способа программного ввода/вывода:
с проверкой готовности,
с использованием системы прерывания.
Вобоих способах синхронизация передачи данных осуществляется при помощи битаRDY ("флага готовности") в специальном программно доступном регистре управления (RU) контроллера ПУ.
Работа RD с использованием бита RDY в процессе ввода или вывода характеризуется чередованием двух фаз:
1. передача данных между RD и ПУ (доступ ПР к RD при этом запрещен);
2. передача данных между RD и ПР (доступ ПУ к RD при этом запрещен).
Закончив свои операции по загрузке RD при вводе или чтению содержимого RD при выводе, ПУ устанавливает бит RDY в состояние 1 - "поднимает флаг готовности". Поднятие флага означает окончание фазы ПУ в работе RD и начало фазы ПР : поднятый флаг разрешает доступ к RD со стороны ПР и запрещает доступ со стороны ПУ.
ПР по окончании своего этапа обмена информацией с RD сбрасывает флаг в нулевое состояние. Сброс флага символизирует окончание фазы ПР и начало фазы ПУ.
Использование системы прерывания при организации ввода/вывода освобождает процессор от непрерывного опроса состояния флага готовности, дает возможность использования процессора в фоновой работе. В этом варианте готовность данных используется для формирования сигнала прерывания фоновой работы и передачи управления программе ввода/вывода с последующим возвратом к фоновой работе.
Рассмотренная процедура передачи данных через буфер (регистр РД) и синхронизации с помощью обоюдно управляемого и тестируемого флага составляет техническую основу всякой передачи данных между устройствами.
Вопросы для самопроверки:
1. Ввод/вывод с проверкой готовности.
2. Ввод/вывод с использованием системы прерывания.
6.3.1. Ввод/вывод с проверкой готовности
Схема организации операции ввода/вывода с проверкой готовности представлена на рис. 6.1. Основными блоками схемы являются процессор, оперативная память и периферийное устройство. Для простоты рассматривается только операция ввода – передача данных от периферийного устройства (например, датчика температуры) в оперативную память. В схеме периферийного устройства выделены два регистра: данных (RD) и управления (RU).
Регистр RD используется в качестве почтового ящика для промежуточной фиксации текущего значения температуры.
Регистр RU используется в качестве регистра управления. В этом регистре используется только 3 разряда для фиксации сигналов управления:
«Ошибка» Ош – 15-й разряд ,
«Готовность» Гот – 7-й разряд ,
«Пуск» П – 0-й разряд .
Стратегия метода передачи данных с проверкой готовности заключается в следующем.
Устройство может иметь два состояния: включенное и выключенное, в зависимости от значения бита "Пуск" регистра управления.
Включение и выключение устройства производится командой программы (драйвера) процессора занесением в младший разряд регистра RD единицы или нуля.
Сигнал «Готовность» является сигналом (светофором) разделения доступности регистра данных RD со стороны процессора и периферийного устройства.
Эта стратегия разделения доступности (метод стробирования и квитирования) в ЭВМ является одним из основных методов согласования работы как программ, так и аппаратуры в разных сочетаниях.
Сигнал "Ошибка" используется для передачи процессору информации об "особых" ситуациях в устройстве, требующих вмешательства программ операционной системы. Это может быть сигналом о переполнении выходного буфера данных, средств измерения или фиксации результатов.
Входными параметрами программы ввода/вывода являются:
Код операции (прочитать/записать) Для рассматриваемого случая (датчик температуры) корректной является операция чтения.
Начальный адрес массива чтения. Для передачи данных с единственного датчика этот адрес не используется.
Начальный адрес области ввода в оперативной памяти.
Количество передаваемых данных, например, в байтах.
Блок схема программы представлена на рис. 6.4.
В общем случае, в программе ввода/вывода, кроме основной функции (синхронизации вода/вывода) предусматривается ряд дополнительных, например, выявления и обработки ряда особых или внештатных ситуаций.
В данном примере рассматриваются три таких функции:
обработки непредусмотренного кода, например команд записи устройству чтения,
обработки сообщений о сбоях от периферийного устройства, например, при выявлении бита "Ошибка" в регистре управления (15-й бит в регистре RU).
обработки ошибки тайм-аута.
Ошибка тайм-аута – это превышение максимального периода ожидания установки периферийным устройством бита готовности (7-й бит регистра управления RU).
В качестве средства программирования выберем ассемблер семейства PDP-11 (См. 4.1. Программная модель процессоров семейства PDP-11).
Для передачи входных параметров определим четыре РОНа:
R1 – код операции W/R,
R2 – начальный адрес (Аm) массива данных в ОП,
R3 – количество слов в массиве,
R4 – значение тайм-аута.
В качестве средства программирования выберем ассемблер семейства PDP-11 (См. 4.1. Программная модель процессоров семейства PDP-11).
Содержание программы:
START
СМP R1, #read ;проверка корректности кода операции
JNQ M4 ;В случае несовпадения кодов – переход на ;программу сообщения об ошибке и выход из программы
МО: MOV R4, R1 ;копирование значения тайм-аута в освободившийся РОН
MOV #1, @#RU ;включение устройства в работу занесением единицы в ;младший разряд RU
M1: TSTB @#RU ;проверка бита готовности в регистре RU
JPL M2 ; данные не готовы, переход на продвижение счетчика (М2).
TST @#RU ; проверка бита сбоя (7 "знаковый" бит в регистре RU)
JPL M7 ; бит сбоя определен, переход на блок сообщения об ;ошибке (М7)
M2: DEC R1 ;модификация регистра тайм-аута (R1=R1-1)
JNE M1 ; пока счетчик тайм-аута не нулевой, передача на повтор ;проверки готовности
JMP M6 ;переход на обработку ошибки тайм-аута
М3: MOV @#RD, (R2)+ ;пересылка данных из RD в ОП по адресу, заданному
;содержимым регистра R1, модификация адреса.
MOV #1, @#RU ;сброс бита готовности в регистре RU
DEC R3, ;продвижение счетчика слов (R3)
JNQ M0 ;пока содержимое не равно нулю – повтор цикла передачи
CLR @#RU ;выключение устройства
END START
Это самый простой по конструкции контроллера и самый старый способ организации ввода вывода. Для реализации этой схемы ввода/вывода не обязательно наличие системы прерывания. Но это не значит, что он несовместим со сложными операционными системами и многопрограммными режимами работы. В многопрограммных режимах программа ввода/вывода может прерываться, как и остальные программы. Основным его недостатком является недостаточно эффективное использование процессора. Но его можно эффективно использовать в микроконтроллерных системах управления.
Вопросы для самопроверки:
1. Назначение регистров RD и RU.
2. Назначение и источник бита "Ошибка" в регистре RU.
3. Назначение и источник бита "Готовность" в регистре RU.
4. Входные параметры программы ввода/вывода с проверкой готовности.
5. Стратегия разделения доступности (метод стробирования и квитирования).
6. Ситуация ошибки тайм-аута.