Организация подсистемы ввода-вывода. Лекция 4

Содержание

Слайд 2

Работа процессора
В счетчик команд заносится адрес ячейки памяти, содержащий первую команду программы.

Работа процессора В счетчик команд заносится адрес ячейки памяти, содержащий первую команду программы.

Слайд 3

Работа процессора
Адрес команды через регистр адреса поступает на шину адреса памяти. По

Работа процессора Адрес команды через регистр адреса поступает на шину адреса памяти.
сигналу управления процессор считывает команду, находящуюся по этому адресу на шину данных и записывает в регистр данных процессора.

Слайд 4

Работа процессора
Из регистра данных текущая команда поступает в регистр команды. Там команда

Работа процессора Из регистра данных текущая команда поступает в регистр команды. Там
дешифруется и анализируется устройством управления.
В зависимости от кода операции Устройство управления вырабатывает управляющие сигналы (микрокоманды) для управления внутренними элементами процессора.

Слайд 5

Работа процессора
Если машинная команда использует данные из памяти, процессор определяет их адреса

Работа процессора Если машинная команда использует данные из памяти, процессор определяет их
и считывает данные во внутренние регистры.

Слайд 6

Работа процессора
Содержимое счетчика команд увеличивается на длину команды и в нем уже

Работа процессора Содержимое счетчика команд увеличивается на длину команды и в нем
содержится адрес следующей команды.

Слайд 7

Работа процессора
АЛУ выполняет операцию над данными, находящимися в регистрах сохраняет результат в

Работа процессора АЛУ выполняет операцию над данными, находящимися в регистрах сохраняет результат в аккумулятое.
аккумулятое.

Слайд 8

Работа процессора
В регистре слова состояния программы устанавливаются признаки выполнения команды

Работа процессора В регистре слова состояния программы устанавливаются признаки выполнения команды

Слайд 9

Работа процессора
Считывается следующая команда и цикл повторяется.

Работа процессора Считывается следующая команда и цикл повторяется.

Слайд 10

Архитектура компьютера (Фон-Неймана)

Процессор
Память
Устройства ввода – вывода (периферийные устройства)
Контроллеры интерфейсов устройств

Архитектура компьютера (Фон-Неймана) Процессор Память Устройства ввода – вывода (периферийные устройства) Контроллеры
ввода вывода (контроллеры ввода-вывода)
Шина ввода-вывода
Периферийное устройство преобразует информацию, понятную человеку в информацию, понятную компьютеру.

Слайд 11

Шина или аппаратный интерфейс

Набор аппаратных средства и правила обмена (протоколов), обеспечивающих взаимосвязь

Шина или аппаратный интерфейс Набор аппаратных средства и правила обмена (протоколов), обеспечивающих
устройств между собой
Линия интерфейса – это электрический проводник (провод, линия печатного монтажа), по которому распространяется электрический сигнал.
Одна шина может состоять из нескольких подшин, каждая из которых соответствует своему функциональному назначению (шина адреса, шина данных, шина управления и.т.д.)

Слайд 12

Классификация интерфейсов

По способу передачи данных.
Параллельные
Одновременная передача всех разрядов (байта,

Классификация интерфейсов По способу передачи данных. Параллельные Одновременная передача всех разрядов (байта,
слова и др.)
Имеет столько линий сколько одновременно передается разрядов.
Последовательные
Последовательная передача бит данных.
Данные передаются пакетами
Для передачи данных требуется минимум две физические линии.
Последовательно - параллельные
Параллельная передача пакетов по нескольким последовательным шинам.

Слайд 13

По направлению обмена:
Симплексные – только передача или прием в одну сторону.
Полудуплексные

По направлению обмена: Симплексные – только передача или прием в одну сторону.
– передача или прием в обе стороны, но в разные моменты времени, по одной и той же линии.
Дуплексные – передача и прием в обе стороны одновременно. Требуются две отдельные линии для передачи и приема в каждую сторону.
По способу обмена данными:
Синхронные (данные передаются со специальными синхронизирующими сигналами )
Асинхронные (данные передаются без синхросигналов)

Классификация интерфейсов

Слайд 14

Классификация интерфейсов

По способу реализации:
Внутренние - для связи электронных модулей внутри материнской

Классификация интерфейсов По способу реализации: Внутренние - для связи электронных модулей внутри
платы:
Системная шина - для связи процессора и памяти
Шина ввода –вывода - для связи процессора с контроллерами интерфейсов устройств ввода вывода (ISA, PCI, PCI-Express).
Внешние – для подключения внешних устройств к контроллерам интерфейсов устройств ввода вывода

Слайд 15

Контроллер интерфейса ввода вывода

Промежуточное устройство, которое служит для связи интерфейса периферийного устройства

Контроллер интерфейса ввода вывода Промежуточное устройство, которое служит для связи интерфейса периферийного
с шиной ввода-вывода процессора

Слайд 16

Контроллер ввода-вывода

Содержит, как правило, группу регистров, называемых портами ввода-вывода:
Регистр состояния – хранит

Контроллер ввода-вывода Содержит, как правило, группу регистров, называемых портами ввода-вывода: Регистр состояния
текущее состояние контроллера В/В (готов/не готов);
Регистр команд –хранит команды управления контроллером В/В
Регистр данных – для передачи или приема данных;
Регистр адреса – хранит базовый адрес заданный контроллеру
Каждый регистр имеет уникальный адрес на шине ввода вывода процессора, по которому процессор может к нему обращаться.
Адрес регистра состоит из суммы базового адреса назначенного контроллеру ввода вывода + смещение, которое определяет номер регистра в контроллере (30h, 31h, 32h);
Буфер памяти
Временно хранит данные, принимаемые(передаваемые) периферийному устройству.
Служит для выравнивания скоростей работы процессора и ПУ

Слайд 17

Адреса портов отображаются на адресное пространство памяти MMIO – Memory Mapped

Адреса портов отображаются на адресное пространство памяти MMIO – Memory Mapped IO
IO

Каждому порту выделен уникальный адрес в общем поле памяти, который физически располагается в контроллере ввода-вывода.
Общие инструкции для обращения по адресам порта и памяти
(используются команды пересылки ассемблера (MOV, LODSB,..).
Адреса формируются ММU процессора
Более производительный и безопасный доступ к портам В/В

Адресация портов контроллеров на шине ввода - вывода

Слайд 18

Инструкции записи и чтения для портов и ячеек памяти разные.
Специальные инструкции для

Инструкции записи и чтения для портов и ячеек памяти разные. Специальные инструкции
обращения к портам :
in ACCUM, PORT;
out PORT, ACCUM;
Менее безопасный метод

Адресация портов контроллеров на шине ввода - вывода

Для адресации портов используется отдельное адресное пространство.
Для х86 составляет 64 Кбайта (16 бит)
PMIO – Port Mapped IO

Слайд 19

Используется в х86;
Внутренняя память (буфер) контроллера (если имеется) , находится в адресном

Используется в х86; Внутренняя память (буфер) контроллера (если имеется) , находится в
пространстве памяти, а адресам портов ввода вывода отводится отдельное адресное пространство.

Гибридный вариант

Адресация портов контроллеров на шине ввода - вывода

Слайд 20

Memory Mapped IO

Memory Mapped IO

Слайд 21

ОРГАНИЗАЦИЯ ВВОДА - ВЫВОДА В АРХИТЕКТУРЕ Х8086

ОРГАНИЗАЦИЯ ВВОДА - ВЫВОДА В АРХИТЕКТУРЕ Х8086

Слайд 22

Intel 8008

Intel 8008 (апрель 1972 )
первый 8-битный процессор, для продвинутых калькуляторов, терминалов ввода-вывода;
Тактовая

Intel 8008 Intel 8008 (апрель 1972 ) первый 8-битный процессор, для продвинутых
частота процессора – 500 – 800 Кгц

Слайд 23

Intel 8080

Intel 8080 (апрель 1974 года ) — 8-битный микропроцессор
Количество регистров: 7
Разрядность регистров:

Intel 8080 Intel 8080 (апрель 1974 года ) — 8-битный микропроцессор Количество
8 бит
Разрядность шины данных: 8 бит
Разрядность шины адреса: 16 бит
Объём адресуемой памяти: 64 Кбайт
Количество инструкций: 80
Количество транзисторов 4758
Тактовая частота 2 – 4Мгц
Altair-8800.
Отечественный аналог – микропроцессорный комплект серии 580ВМ80

Слайд 24

Микропроцессорный комплект

К процессору i8080 компанией Intel был выпущен микропроцессорный комплект поддержки в

Микропроцессорный комплект К процессору i8080 компанией Intel был выпущен микропроцессорный комплект поддержки
составе:
8259 — контроллер прерываний;
8257 — контроллер прямого доступа в память;
8253 — 3-канальный таймер/счётчик;
8251 — микросхема последовательного интерфейса;
8255 — микросхема трёхканального параллельного интерфейса;
8271 — контроллер накопителя на гибких магнитных дисках;
8275 — контроллер монитора;
8355 — микросхема интерфейса с периферией (с 16 Кбайт ПЗУ).
8216/8226 — шинные формирователи с большой нагрузочной способностью;
8224 — тактовый генератор;
8232 — процессор чисел с плавающей запятой (позднее был заменен на сопроцессор Intel 8087);

Слайд 25

Intel 8086

Intel 8086 (июнь 1978)
Количество регистров: 14
Разрядность регистров: 16 бит
Разрядность шины данных:

Intel 8086 Intel 8086 (июнь 1978) Количество регистров: 14 Разрядность регистров: 16
16 бит
Разрядность шины адреса: 20 бит
Объём адресуемой памяти: 1 Мбайт
Адресное пространство I/O: 64 Кбайт
Количество инструкций: 98
Кэш-буфер команд: 6 байт
Количество транзисторов: 29 000

Слайд 27

Intel 8088

Intel 8088 (июль 1979)
Количество регистров: 14
Разрядность регистров: 16 бит
Разрядность шины данных:

Intel 8088 Intel 8088 (июль 1979) Количество регистров: 14 Разрядность регистров: 16
8 бит
Разрядность шины адреса: 20 бит
Объём адресуемой памяти: 1 Мбайт
Адресное пространство I/O: 64 Кбайт
Количество инструкций: 98
Тактовая частота 5 -10 Мгц.

Слайд 28

Структурная схема i8086

Структурная схема i8086

Слайд 29

Формирование физического адреса команд и данных (реальный режим)
Физический адрес = сдвинутое на

Формирование физического адреса команд и данных (реальный режим) Физический адрес = сдвинутое
4 разряда значение сегментного регистра + смещение;
Внутренняя шина и регистры - 16 бит
Внешняя шина адреса памяти - 20 бит

Слайд 30

Назначение выводов х8086

Назначение выводов х8086

Слайд 31

Машинный цикл процессора (чтение/запись )
Машинный цикл чтения / записи занимает четыре такта

Машинный цикл процессора (чтение/запись ) Машинный цикл чтения / записи занимает четыре
генератора
Частота тактового генератора 2-6 МГЦ

Слайд 33

Структурная схема IBM PC XT

Сигнал CS =0 переводит выходы соответствующего контроллера из

Структурная схема IBM PC XT Сигнал CS =0 переводит выходы соответствующего контроллера
третьего
состояния (выводит его из состояния «спячки»)

Слайд 34

Схема включения процессора

RGA – регистр адреса
Служит для хранения адреса памяти или порта

Схема включения процессора RGA – регистр адреса Служит для хранения адреса памяти
В/В на ША в течение времени обращения процессора по данному адресу.
Усилитель
служит для выбора направления передачи данных от процессора или к процессору и усиления сигналов данных на ШД
DS1
дешифрирует разряды А5-А9 адреса для выбора контроллера В/В (базовый адрес). Выходы дешифратора в виде сигналов CS (Chip Select ) подаются на аналогичные входы контроллеров ввода-вывода.
Смещение относительно базового адреса задается разрядами А0-А4 адреса, поступающими на адресные входы выбранных контроллеров.
DS2
дешифрирует сигналы R, W, М/IO процессора в сигналы на ШУ MR, MW, RIO, WIO для записи/чтения ячейки памяти или выбранного сигналом CS регистра контроллера ввода-вывода
КПДП – контроллер прямого доступа к памяти

Слайд 35

Обобщенная схема

Обобщенная схема

Слайд 36

Контроллер прямого доступа к памяти КПДП запись в регистры

Контроллер прямого доступа к памяти КПДП запись в регистры

Слайд 37

Контроллер прерываний и трехканальный таймер

Контроллер прерываний и трехканальный таймер

Слайд 38

Программируемы параллельный интерфейс ROM, RAM

Программируемы параллельный интерфейс ROM, RAM

Слайд 39

Слоты расширения

Слоты расширения

Слайд 40

Контроллер прямого доступа

Контроллер прямого доступа к памяти (DMA - Direct Memory Access)

Контроллер прямого доступа Контроллер прямого доступа к памяти (DMA - Direct Memory
обеспечивает высокоскоростной обмен данными между контроллером ввода-вывода и ОЗУ без участия центрального процессора.
Позволяет освободить процессор для выполнения вычислений параллельно с обменом.
Функции контроллера ПДП выполняла микросхема i8237А

Слайд 41

Контроллер ПДП
Регистры RGP1 и RGP2 служат для расширения адреса до 20 бит.

Контроллер ПДП Регистры RGP1 и RGP2 служат для расширения адреса до 20 бит.

Слайд 42

Основные сигналы

DRQ – запрос от устройства к КПДП на ПДП
HOLD – запрос

Основные сигналы DRQ – запрос от устройства к КПДП на ПДП HOLD
от КПДП к процессору на захват шины
HLDA – ответ процессора КПДП и отключение от шины
DACK – захват шины КПДП и разрешение устройству ПДП
А0-А7, А9-А15 - адрес выставляемый КПДП
IOR,IOW,MR,MW – запись чтение устройства и памяти.
D0-D7 – данные
DMA CS – сигнал CS от выбор

Слайд 43

Диаграмма работы

Контроллер может работать в режиме передачи блока данных
и в режиме

Диаграмма работы Контроллер может работать в режиме передачи блока данных и в
одиночной передачи.

Контроллер ПДП может быть выполнен в виде отдельного устройства (системный КПДП) или в виде внутреннего устройства соответствуюещего контроллера ввода вывода (контроллера HDD, USB и др,. т.е. может быть несколько )

Слайд 44

Внутренние регистры

Адреса регистров в диапазоне 00h – 0Fh

Внутренние регистры Адреса регистров в диапазоне 00h – 0Fh

Слайд 45

Последовательность передачи при ПДП на примере контроллера HDD

Последовательность передачи при ПДП на примере контроллера HDD

Слайд 46

Инициализация контроллера DMA

Процессор «знает» с какой областью памяти работает внешнее устройство (начальный

Инициализация контроллера DMA Процессор «знает» с какой областью памяти работает внешнее устройство
адрес области памяти и количество передаваемых байт)
При инициализации КПДП задается :
начальный адрес оперативной памяти для обмена;
число передаваемых байт;
направление обмена, а также устанавливаются требуемые режимы работы (одиночная или блочная передача и т. д.).

Слайд 47

Последовательность операций при ПДП

1. Инициализация контроллера
2. Принять Запрос (DRЕQ) на ПДП

Последовательность операций при ПДП 1. Инициализация контроллера 2. Принять Запрос (DRЕQ) на
от контроллера HDD к контроллеру ПДП
3. Выставить запрос (HRQ) от контроллера ПДП к процессору на захват шины
4. Ответ процессора (HLDA) контроллеру ПДП (процессор переводит свои выводы в третье состояние и отключается от ША, ШД, ШУ)
5. Контроллер ПДП берет на себя управление шинами и выставляет адрес памяти на шину адреса и передает сигнал ответа DACK N в контроллер HDD
6. Контроллер ПДП последовательно вырабатывает сигналы IOR и MEMW при записи в память и IOW и MEMR при чтении памяти. Байт данных переписывается напрямую из буфера КВВ HDD в ОП.
7. Пункты 5-6 повторяются пока не будут переданы все данные, количество которых задано в КПДП.
8. Контролер ПДП вырабатывает запрос на прерывание по окончании передачи

Слайд 48

Внутренняя структура

Внутренняя структура

Слайд 49

Каскадирование контроллеров ПДП

Каскадирование контроллеров ПДП

Слайд 50

Каналы ПДП для РС ХТ

В РС ХТ на нулевой канал КПДП

Каналы ПДП для РС ХТ В РС ХТ на нулевой канал КПДП
каждые 15 мкс подается сигнал от первого канала таймера, по которому КПДП совершает «перебор» ячеек ОП для регенерации их содержимого.

Слайд 51

Контроллер прерываний i8259

IRQ0-IRQ7 входы запросов на прерывание
INTCS – выбор чипа контроллера

Контроллер прерываний i8259 IRQ0-IRQ7 входы запросов на прерывание INTCS – выбор чипа
прерываний от дешифратора базового адреса
INT – запрос на прерывание к процессору
INTА – ответ процессора
А0 – выбор внутренних регистров, RD/WR – запись/чтение
D0-D7 шина данных,

Слайд 52

Контроллер прерываний i8259

Контроллер прерываний i8259

Слайд 53

Внутренние регистры

Регистр запросов IRR ( Interrupt request register ) – запоминает все

Внутренние регистры Регистр запросов IRR ( Interrupt request register ) – запоминает
запросы на входе IRQ.
Регистр состояния ISR ( Interrupt Status Register ) – задает приоритет обработки прерываний
Регистр маскирования IMR ( Interrupt Mask Register ) – запрещает отдельные прерывания
Адреса регистров
ISR: 20H IMR:21H
Обращение к IRR с помощью специальных управляющих слов

Слайд 54

Временная диаграмма

Временная диаграмма

Слайд 55

Порядок операций при прерывании

1. Инициализация контроллера
2. Контроллер устройства В/В вырабатывает сигнал запроса

Порядок операций при прерывании 1. Инициализация контроллера 2. Контроллер устройства В/В вырабатывает
на прерывание, который поступает на входы IRQ0-IRQ7 КПР
3. КПР вырабатывает сигнал запроса на прерывание INTR процессору, который поступает на соответствующий вход процессора
4. Процессор в ответ вырабатывает два раз сигнал подтверждения прерывания INT A контроллеру В/В.
Первый раз биты запроса на прерывание фиксируется в регистре запросов IRR.
Второй раз номер прерывания (вектора) по шине данных считывается в процессор, разрешая запись новых запросов прерываний IRR.
5. В процессоре номер вектора умножается на 4 (сдвигается влево на два бита) и получается адрес в таблице векторов прерываний, по которому хранится адрес начала обработчика прерываний.

Слайд 56

Приоритеты прерываний

IRQ# Номер вектора Устройство 0 08h Системный таймер 1 09h Клавиатура 2 0Ah Зарезервировано(2-ой

Приоритеты прерываний IRQ# Номер вектора Устройство 0 08h Системный таймер 1 09h
8259) 3 0Bh Последовательный порт(COM1) 4 0Ch Последовательный порт(COM2) 5 0Dh Жесткий диск 6 0Eh Дисковод 7 0Fh Принтер(LPT1)
В реальном режиме для обработки прерываний IRQ0-IRQ7 используются номера прерываний от 08h до 0Fh.
Немаскируемые прерывания (HMI)
1) От сопроцессора
2) Ошибки паритета памяти
3) От контролеров внешних устройств, размещенных в слотах расширения

Слайд 57

Инициализация контроллера

Программирование i8259 осуществляется двумя типами управляющих слов:
Командные слова инициализации ICW (Initialization

Инициализация контроллера Программирование i8259 осуществляется двумя типами управляющих слов: Командные слова инициализации
Command Word) ICW1-ICW3 загружаются перед началом работы и устанавливают режим работы контроллера:
Количество каскадно-соединенных контроллеров
Тип процессора
Начальный вектор блока векторов прерываний (для диапазона 08h – 0Fh загружается 08h )
И др.
Командные слова операций OCW (Operation Command Word). Для оперативного управления работой контроллера.
Управление приоритетом прерываний
Управление логикой контроллера (например, чтение и сброс битов регистра IRR )

Слайд 58

Каскадирование контроллеров

Каскадирование контроллеров

Слайд 59

Трехканальный таймер

040h - нулевой канал
041h – первый канал
042h - второй канал
043h

Трехканальный таймер 040h - нулевой канал 041h – первый канал 042h -
– для задания режимов работы каналов таймера.

Слайд 60

Таймер i8253

Каждый канал представляет собой независимый счетчик с программно-управляемым коэффициентом пересчета, который

Таймер i8253 Каждый канал представляет собой независимый счетчик с программно-управляемым коэффициентом пересчета,
может работать в шести режимах

Слайд 61

Трехканальный таймер i8253 для РС ХТ

Нулевой канал
Используется для ведения системного времени, вызывая

Трехканальный таймер i8253 для РС ХТ Нулевой канал Используется для ведения системного
каждую 1/18 секунды прерывание процессора и запуская программу, увеличивающую содержимое четырех байт памяти (начиная с адреса 046Сh) на 1.
Первый канал
Каждые 15мкс обращается к каналу контроллера ПДП и запускает процедуру регенерации ОЗУ.
Второй канал
Генерирует частоту, выдаваемую на звуковую головку для генерации звуковых сигналов. (например, при ошибках памяти )

Слайд 62

PPI (Programmable Parallel Interface) i8255A.

Код нажатой клавиши запоминается в специальном регистре и

PPI (Programmable Parallel Interface) i8255A. Код нажатой клавиши запоминается в специальном регистре
по нему вырабатывается
запрос на прерывание, который поступает на вход IRQ1, контроллера прерываний

Слайд 63

Структурная схема i8255

Структурная схема i8255

Слайд 64

Программируемый параллельный интерфейс

PPI (Programmable Parallel Interface) i8255A.
Включает три двунаправленных байтовых порта

Программируемый параллельный интерфейс PPI (Programmable Parallel Interface) i8255A. Включает три двунаправленных байтовых
(А, В и С).
Порт А (адрес 60h)
Для чтения поступающего с клавиатуры сканкода нажатой клавиши (после нажатия клавиши, возникает прерывание IRQ1 по которому обработчик считывает с порта А код нажатой клавиши)
Порт В (адрес 61h)
Для вывода управляющих сигналов различного назначения (например для разрешения или запрещения звуковых сигналов).
Порт С (адрес 62h)
используется BIOS и ОС для чтения свитчей конфигурации оборудования системы. Позже эта функция перенесена в CMOS – память BIOS

Позже микросхема i8255 использовалась в качестве параллельного порта (LPT интерфейса) для подключения различных устройств (например, принтера)

Слайд 65

Универсальный последовательный синхронно-асинхронный приемо-передатчик i8251 (COM порт) USART – Universal Synchronous/Asynchronous Resiver/Тransmitter
Реализует

Универсальный последовательный синхронно-асинхронный приемо-передатчик i8251 (COM порт) USART – Universal Synchronous/Asynchronous Resiver/Тransmitter
синхронно-асинхронными канал последовательной связи для подключения различных устройств (например, модемов).
В некоторых моделях использовался для подключения мышки и других портов.
В настоящее время в архитектуре ПК заменен USB.
Широко используется во встроенных системах в силу своей простоты.

Слайд 66

Структурная схема

В состав входят передатчик, приемник, буфер шины
данных и схемы управления передатчиком,

Структурная схема В состав входят передатчик, приемник, буфер шины данных и схемы управления передатчиком, приемником
приемником

Слайд 67

Cтруктура шина ISA

Проц.

ОЗУ

Сист. К

Кон. Пр.

К П Д П

Кон.В-В

Кон.В-В

ISA

ШД

ШУ

ША

Industry Standart Architecture

Cтруктура шина ISA Проц. ОЗУ Сист. К Кон. Пр. К П Д