Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

[irt.od.ua]КонспектАПСПК / КонспектАПСПК

.pdf
Скачиваний:
7
Добавлен:
10.02.2016
Размер:
1.65 Mб
Скачать

Все БИС на системной плате, кроме процессора и сопроцессора, подключены к X-шине, в которой имеется адресная часть (XA-шина), линия данных (XD-шина) и управляющие сигналы (XCTRL-шина). Они отделены от процессора двумя буферами: между L- и S-шинами и между S- и X-шинами. Ширина шин данных LD и SD в XT равна 8 бит, а в AT равна 16 бит.

Кроме L-, S-, X-шин в компьютере имеется M-шина для отделения системной шины от оперативной памяти. Ширина MD-шины составляет 16 линий для компьютера AT и 8 линий для XT. Ширина адресной шины MА-шины равна 10 линиям, поскольку переход адреса на нее происходит через мультиплексоры: сначала выставляются младшие 10 разрядов адреса, а затем 10 старших разрядов.

7.2. Способы подключения внешнего устройства к компьютеру

Из рассмотренной шинной организации следует, что внешнее устройство (стандартный адаптер или специализированное цифровое устройство) могут быть включены в компьютерную систему либо через последовательный порт, либо через параллельный порт, либо путем подключения непосредственно к системной шине S.

По отношению к внешнему устройству CPU может находится в активном, пассивном состоянии или в режиме прерываний. В соответствии с этим используются 3 варианта подключения внешнего устройства к ЭВМ.

Включение через последовательный порт

 

BS

 

 

┌────────┬────┐ RS-232 ┌────┐

┌─────┐

┌─────┐

│ Device │ SP ╞═══ ═ ═══╡ SP ╞════╬════╡ CPU ╞═════╡ Mem │

└────────┴────┘

└──┬─┘

└──╥──┘

└─────┘

 

 

┌─────┐

 

 

└─ ─ ─ ─ ──>┤ PIC │

 

 

 

 

└─────┘

 

Рис. 7.3. Включение через последовательный порт

Особенность такого варианта состоит в возможности использования длинной линии связи устройство-ЭВМ с малым (4-6) числом проводов. Однако быстродействие этой линии невысоко (не более 19 кБод, т.е. доли или единицы килобайт в секунду). Указанным способом в режиме прерываний подключаются, например, манипулятор "мышь" или модем.

Включение через параллельный порт

В этом включении за счет побайтовой передачи данных обеспечивается быстродействие канала связи порядка 100 кБайт/сек. Примером такого устройства является принтер с параллельным интерфейсом.

31

BS ┌────────┬────┐Centronics┌────┐ ║ ┌─────┐ ┌─────┐ │ Device │ PP ╞═══ ═ ═ ══╡ PP ╞════╬════╡ CPU ╞═════╡ Mem │

└────────┴────┘

└──┬─┘

└──╥──┘

└─────┘

 

┌──╨──┐

 

 

└──────────>┤ PIC │

 

 

 

 

└─────┘

 

Рис. 7.4. Включение через параллельный порт

Включение в системную шину

CPU находится в пассивном состоянии в момент передачи/приема данных. Обмен осуществляет контроллер ПДП. Необходимость открывать системный блок (платформу) компьютера и устанавливать плату внешнего устройства непосредственно в слоты расширения на системной плате может вызвать некоторые неудобства, которые, однако, с лихвой компенсируются максимальной пропускной способностью канала связи устройство-ЭВМ, достигающим более одного мегабайта в секунду. Данный способ включения применяется наиболее часто (адаптеры дисков, видеоадаптеры, факс-модемы и т.д.).

 

 

BS

 

┌─────┐

 

 

┌────────┬─────┐

┌─>┤ PIC ├───>──────────────┐

│Port1│

└─────┘

┌─────┐

┌─┴───┐

│ Device │ ... ╞════╬════│═════════════╡ Mem │

│ CPU │

│PortN├─────────┤

┌─────┐

└──┬──┘

└─┬───┘

└────────┴─────┘

 

└─>┤ DMA ├───>───┴──────────┘

 

 

 

 

└─────┘

 

 

Рис. 7.5. Включение через системную шину

Подключение через современные интерфейсы

Современные внешние интерфейсы: LAN, FireWire, USB являются скоростными интерфейсами последовательного типа с простой аппаратной реализацией, однако требуют высокой квалификации программиста в среде Windows для написания драйверов.

7.3. Центральный процессор 8088

Адресное пространство памяти и ввода/вывода

Физический адрес ячейки памяти представляет 20-битовое число в диапазоне 0..FFFFF (1 Мбайт)

Логический адрес памяти состоит из двух 16-битовых без знаковых значений: Seg:Ofs. Вычисление физического адреса осуществляется путем сдвига влево Seg на 4 бита (один 16-ричный разряд) и сложения со смещением Ofs:

Addr = 16*Seg + Ofs.

Команды выбираются по логическому адресу CS:IP, стековые команды - по адресу SS:SP, а операнды и данные - по адресу DS:EA, где в зависимости от способа адресации EA может быть IP,SP,SI,DI.

Ввод/вывод данных может осуществляться двумя способами: отображением на память или путем связи с портом.

В первом случае используется команда MOV.

32

Во втором случае применяются команды IN и OUT с прямой или косвенной адресацией. При прямой адресации обеспечивается прием-передача в 256 портов, а при косвенной, когда адрес располагается в регистре DX, - до 64K (16 разрядов) 8-битовых портов. Однако в базовом стандарте IBM используется 10-разрядный адрес порта, т.е. 1К портов.

Структура микропроцессора 8088

Структурная схема CPU 8088 приведена на рис. 7.6.

Операционное устройство CPU содержит группу общих регистров AX

- DX, указательные регистры SP, BP, индексные регистры SI, DI, арифме- тико-логическое устройство (АЛУ), регистр флагов F и блок управления. Регистры SP и BP хранят смещение адреса в пределах текущего и стекового сегмента памяти, а индексные регистры SI, DI хранят смещение адреса соответственно в текущем сегменте данных и в текущем дополнительном сегменте.

АЛУ содержит 16-битовый комбинационный сумматор для выполнения арифметических операций, схемы операций сдвигов и десятичной коррекции, а также регистры временного хранения операндов и результатов.

Устройство управления дешифрирует команды, воспринимает и вырабатывает необходимые управляющие сигналы. В его состав входит блок микропрограммного управления, где реализовано программирование CPU на микропрограммном уровне.

┌────────────────┐ Устройство шинного интерфейса

15 │ 0

 

┌───┴───┐

┌────┴────┐

┌─────────┐

CS │ │ Сумматор├───────>┤ Буфер │ А19-А8

 

├───────┤

┌──>┤ адресов ├────┐

│ адреса/ ├───────────>

 

SS

└────┬────┘

 

│состояния│

 

 

├───────┤

 

^

 

 

├─────────┤

 

 

DS

 

 

 

└──>┤ Буфер

АD7-АD0

 

├───────┤

┌────┴────┐

 

 

│ адреса/ ├<──────────>

 

ES

IP

 

╔═══╡ данных

 

 

└───┬───┘

└────┬────┘

 

└─────────┘

 

 

 

 

 

 

 

 

 

 

 

════╪═══════╧════════╪═════════╝──────┐

 

 

┌ ─ ─ ─ │ ─ ─ ─ ─ ─ ─ ─ ─│─ ─ ─ ┐

 

 

 

 

15

8│7

0

 

 

 

 

7

0

 

┌───┼───┐

 

┌────┴────┐ │

┌─────┴─────┐

 

 

AX│ AH│ AL│

┌───┤

АЛУ

 

1

 

│ CX│ CH│ CL│

└────┬────┘ │

├───────────┤

 

 

DX│ DH│ DL│

 

 

 

Очередь

 

│ BX│ BH│ BL│

15

0

│ команд IQ │

 

 

├───┴───┤

┌────┴────┐

 

├───────────┤

 

│ │

SP │

│ │

F

│ │ │

4

 

 

BP

└─────────┘

 

└─────┬─────┘

 

SI

 

 

 

 

 

 

 

DI

Операционное

 

┌──────┴──────┐

Сигналы

└───┬───┘ │ устройство │ │ Устройство ╞<══════════>

└───────┘

│ управления │ управления

└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘

└─────────────┘

Рис. 7.6. Структура CPU 8088

33

Устройство шинного интерфейса содержит блок сегментных регистров, указатель команд, сумматор адресов, очередь команд и буферы связи с шиной.

Сегментные регистры хранят начальные адреса сегментов памяти: CS - программы; SS - стека; DS - данных; ES - дополнительного сегмента данных.

Указатель команд IP хранит смещение следующей команды.

Сумматор адресов осуществляет вычисление 20-битового физического адреса.

Очередь команд - набор регистров, в которых хранятся коды команд. Длина очереди составляет 4 байта, что соответствует максимальному формату команды. Шинный интерфейс работает параллельно операционному устройству, чем обеспечивается повышение быстродействия МП.

Функционирование микропроцессора 8088

В работе CPU наиболее важным моментом является процесс передачиприема данных и команд в память или из памяти. На рис.7.7. представлена соответствующая временная диаграмма цикла шины для 8088.

Цикл шины длится 4 такта CLK. В первом такте выставляется младший байт адреса, строб ALE и сигнал направления передачи DT/R#. Во втором такте в режиме записи устанавливаются байт данных и сигналы DEN# и MEMW#, а в режиме чтения - сигнал MEMR#. В третьем такте происходит считывание данных, а в четвертом - CPU возвращается в исходное состояние. Таким образом, чтение/запись данных осуществляется примерно за 2 такта CLK.

├─────T1────┼─────T2────┼─────T3────┼─────T4────┤

 

──┐

┌─────┐

┌─────┐

┌─────┐

┌─────┐

CLK

 

└─────┘

└─────┘

└─────┘

└─────┘

└──

 

┌───────────┐ ┌─────────────────────────────┐

 

АD7-АD0 ──┤

адрес

├─┤

 

данные (запись)

├───┬─

 

└───────────┘ └─────────────────────────────┘

 

┌───────────────────────────────────────────┐ запись

А15А8 ──┤

адрес

 

 

 

 

 

├───┼─

 

└───────────────────────────────────────────┘

 

┌───────────┐

 

 

┌───────────┐

 

чтение

АD7-АD0 ──┤

адрес

├─────────────┤данные (чт)├─────────┴─

 

└───────────┘

 

 

└───────────┘

 

 

Рис.7.7. Цикл шины PC/XT

Контрольные вопросы

1.Какие шины используются в ПЭВМ и как они взаимодействуют?

2.Укажите преимущества и недостатки различных способов подключения внешних устройств в ПЭВМ.

3.Опишите взаимодействие элементов структуры CPU.

4.Сегментация в адресации. Ее преимущества и недостатки.

5.Почему процессор CPU 8086/88 считают революционным?

5. Дайте описание работы системной шины CPU 8088.

34

Лекция 8. Порты ввода/вывода, реальный режим и базовая система ввода/вывода

8.1. Карта портов ввода/вывода

Для взаимодействия различных устройств ПЭВМ используется система портов ввода/вывода (В/В). В стандарте предусмотрено 1К портов В/В с нумерацией 0..3FF. Дешифрация адреса порта производится по младшим десяти (А0..А9) разрядам. Пространство портов можно разделить на три части: первые 255 портов предназначены для системных нужд, следующие 240 почти непрерывно следующих портов свободны и могут использоваться нестандартными устройствами; наконец, вторая половина портов зарезервирована для стандартных периферийных адаптеров и устройств. Карта портов ввода/вывода проведена в таблице 8.1.

 

 

Таблица 8.1.

 

 

 

 

Номера портов

Предназначены для устройств

Пользователь

 

000..01F

Контроллер DMA

Системные устройства

 

020..03F

Контроллер PIC 1

ввода/вывода

 

040..05F

Таймер

 

 

060..06F

Системные сигналы и клавиатура (PPI)

 

 

070..07F

Часы реального времени, NMI (АT)

 

 

080..09F

Страничные регистры DMA

 

 

0А0..0BF

Контроллер PIC 2(AT), NMI (XT)

 

 

0C0..0DF

Контроллер DMA 2(AT)

 

 

0F0..0FF

Математический сопроцессор (AT)

 

 

100..1EF

Свободны для устройств пользователя

Любой

 

179..1EF

 

 

 

170..178

Фиксированный диск #2

Стандартные устройства

 

1F0..1F8

Фиксированный диск #1

ввода/вывода

 

200..207

Игровой порт

 

 

278..27F

Параллельный порт LPT2

 

 

2F8..2FF

Последовательный порт COM2

 

 

300..31F

Резерв

 

 

360..36F

Резерв

 

 

378..37F

Параллельный порт LPT1

 

 

380..3АF

Бисинхронная связь

 

 

3B0..3DF

Монохр. и цветной видеоадаптер

 

 

3F0..3F7

Флоппи-диски

 

 

3F8..3FF

Последовательный порт COM1

 

 

8.2. Карта памяти в реальном режиме

Реальный режим – это режим обращения к памяти, с которым стартует любой процессор стандарта PC. Старт осуществляется по адресу FFFF:0000 = 1Мeg - 16 и максимальный объем адресуемого пространства - 1Meg (20 разрядов).

Это пространство разделено на участки согласно рис. 8.1.

35

00000

<10000

AFFFF

B0000

F0000 FFFF0 FFFFF

BIOS-DOS

Пользователь

Видео

ROM-BIOS

0

xxx

 

640k

936k

1Meg

Рис. 8.1. Распределение памяти в реальном режиме.

Первая область памяти, занимающая несколько десятков килобайт, содержит системные параметры BIOS и DOS: Таблица векторов прерываний, область данных BIOS (часы реального времени, буфер клавиатуры и др.), обработчик прерываний DOS, данные DOS и резидентная порция COMMAND.COM.

Далее следует область прикладный программ: вначале – резидентные, которые остаются в памяти компьютера, а затем – основная программа. Область заканчивается границей 640 кбайт.

Выше области программ расположена аппаратная память. Это память видеоадаптера (до 64 кбайт), специальные окна для передачи данных в память выше 1 Мбайт, BIOS видео-памяти и других устройств.

Последние 64k перед границей 1Meg зарезервированы за базовой системой ввода-вывода (BIOS), осуществляющей начальную загрузку компьютера. По адресу FFFF:0000 расположена команда Jump, указывающая на вершину (начало) программы POST BIOS. В последних 16 байтах памяти расположена информация о типе компьютера, изготовителе и дате создания BIOS.

8.3. Назначение и структура ROM-BIOS в PC

Базовая система ввода-вывода (BIOS) – это комплекс программ и данных, записанных в специальную ПЗУ (Flash ROM), для обеспечения независимости системы от конкретной аппаратной реализации. Другими словами, функционирование системы переводится на более высокий абстрактный уровень. Это достигается системой программ прерываний, написанных с учетом конкретной аппаратной реализацией. Программы пользователя осуществляют действия с аппаратурой через прерывания. Поэтому программы, написанные для PC/XT, с успехом выполняются на Pentium.

BIOS содержит следующие разделы:

Загрузочные данные BIOS. Используются как дополнение в процедуре POSP.

POST – программа начальной загрузки.

Программы прерывания BIOS. Используются при работе PC.

Программы Plug and Play. Используются при включении нового оборудования в современных PC.

Программа начальной загрузки POST (Power On Self Test) стартует после подачи сигнала RESET на центральный процессор (ЦП). При этом выполняются следующие действия:

- тестирование регистров ЦП;

36

-проверка состояния переключателей PC/XT или CMOS-памяти и установка соответствующих флагов оборудования;

-тест и инициализация компонентов системы;

-установка и распределение векторов прерывания BIOS;

-распределяет каналы прямого доступа в память (DMA)

-назначает участки памяти для подключенных устройств;

-проверяется объем и качество памяти;

-передается управление загрузчику DOS.

Контрольные вопросы

1.Что такое порты ввода/вывода?

2.Дайте классификацию портов ввода/вывода.

3.Каким образом распределяется адресное пространство памяти?

4.Зачем используется ROM BIOS?

5.Какова структура базовой системы ввода/вывода?

37

Лекция 9. Система прерываний

9.1.Назначение и распределение прерываний

Впроцессе работы ЭВМ очень часто возникает необходимость временно остановить выполнение основной программы для отработки некоторых специальных инструкций (нажатие клавиши, ход системных часов, готовность внешний устройств передать или принять данные и т.д.). С этой целью в CPU 8088/86 встроена эффективная система прерываний. Каждому прерыванию поставлен в соответствие номер (тип) 0..255. Прерывания могут быть внешними (аппаратными), командными и внутренними, что отражено на рис. 9.1.

Немаскируемое прерывание

 

 

 

 

────────────────────────────────┐ NMI (Тип 2)

 

INTR (Тип n)

┌ ─ ─ ─ ─ ─ ─ ─ ─ │ ─ ─ ─ ─ ─ ─ ─ ─ ┐

 

┌────────────────┐

 

 

МП

 

┌────^─────┐

┌───v─────────v─────────────┐

│Контроллер│

 

Схемы прерываний

 

│прерываний│

└─┬─────┬─────┬─────┬─────┬─┘

└┬─┬─────┬─┘

 

 

^

^

^

^

^

 

^ ^

^

│ ┌───┴───┐

┌───┴───┐ │ ┌───┴───┐ │

│ │

 

│Команда│

│ Ошибка│ │ │Пошагов│

 

IRQ0...IRQ7

│ │ INT n │

│деления│ │ │ режим │ │

Запросы от

 

│(Тип n)│

│(Тип 0)│ │ │(Тип 1)│

 

внешних

│ └───────┘ │ └───────┘ │ └───────┘ │

устройств

 

┌───────┴────┐ ┌────┴───────┐

 

 

 

│Переполнение│ │Контр. точка│

 

 

 

INTO

│ │

INT3

 

 

 

(Тип

4) │ │

(Тип 3)

└────────────┘ └────────────┘ └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘

Рис. 9.1. Типы прерываний

Запрос на прерывание вынуждает CPU после выполнения 1-2 текущих команд перейти к выполнению программы прерывания. Для этого в стеке запоминается адрес возврата на основную программу CS:IP и регистр флагов F (автоматически), а также содержимое регистров, которые потребуются для выполнения программы прерывания (программным путем). После выполнения прерывания восстанавливается состояние регистров CPU и продолжается выполнение основной программы.

Прерывания с меньшим номером имеют более высокий приоритет. Прерывания бывают внутренними и внешними. Внутренние прерывания вырабатываются процессором и имеют либо предопределенный тип, либо содержатся в коде команды. Предопределенные прерывания, кроме пошагового выполнения, не могут быть запрещены. Прерывание типа 0 отрабатывается всегда после выполнения команды деления, когда делитель равен нулю.

Прерывание типа 1 (пошаговое выполнение) вырабатывается автоматически, если бит флага TF=1.

Прерывание, определяемое пользователем, осуществляется по двухбайтовой команде INT n. Вместе с тем прерывание по переполнению вырабатывает-

38

ся по специальной однобайтовой команде INTO, если установлен флаг OF=1. Программное прерывание во многом аналогично выполнению подпрограммы.

Внешние прерывания поступают на вход CPU по двум входам: NMI и INTR, а сами прерывания делятся на немаскируемые и маскируемые. Запросы на немаскируемые прерывание поступают при "катастрофических" ситуациях: ошибки четности в ОЗУ, ошибки в сопроцессоре, а также когда внешнее устройство устанавливает 0 по линии -I/O CHCK системной шины. Запросы на маскируемое прерывание INTR поступают с программируемого контроллера прерываний 8259А (K1810ВН59А). Если прерывания запрещены (IF=0), то CPU игнорирует запрос и переходит к следующей команде.

Таблица указателей векторов прерываний для PC/XT/AT имеет следующий

вид

 

 

 

 

Таблица 9.1.

Тип

Назначение прерывания

 

Тип

Назначение прерывания

 

 

Системные прерывания

 

D

Жесткий диск XT

IRQ5

0

Ошибка деления на ноль

 

E

Гибкий диск

 

 

 

 

 

IRQ6

 

1

Пошаговый режим

 

F

LPT1 (параллельный порт)

 

 

 

 

 

IRQ7

 

2

Немаскируемые прерывания

 

Прерывания BIOS, DOS и пользоватетей

3

Контрольная точка

 

10h

Видеосервис

 

4

Переполнение

 

 

 

5

Печать экрана (Print Screen)

 

Аппаратные прерывания IRQ8…IRQ15

6, 7

Резерв

 

70h

Будильник

IRQ8

Аппаратные прерывания IRQ0…IRQ7

71h

Программное переключение

 

 

 

 

 

IRQ9

 

8

Системные часы -

IRQ0

72h-

Резерв

 

9

Клавиатура –

IRQ1

74h

 

 

A

Канал ввода/вывода

IRQ2

75h

Математич. сопроцессор AT

IRQ13

B

COM1 (последовательн. порт) IRQ3

76h

Жесткий диск AT

IRQ14

C

COM2

IRQ4

77h

Резерв

IRQ15

9.2. Организация системы прерываний

Функциональная схема системы прерываний приведена на рис. 9.2. Система основана на взаимодействии CPU 8088 с контроллером прерыва-

ний PIC 8259А.

Начало прерывания состоит из подачи сигнала запроса на прерывание IRQ внешним устройством, требующим обслуживание, на один из восьми входов PIC. Последний делает запрос на CPU сигналом INT. Кроме этого, прерывание может быть инициировано соответствующей командой. Центральный процессор выдает два сигнала подтверждения INTA. В ответ на сигнал подтверждения -INTА1 8259А не выдает данных и остается в Z-состоянии. В это время CPU завершает выполнение текущей команды, копирует регистры F,

39

CS, IP в стек, сбрасывает флаг IF и готовится к приему байта из 8259. По сигналу -INTА2 8259 посылает в CPU номер прерывания. Для определения адреса начала программы CPU использует таблицу указателей векторов прерываний, которая всегда размещается в начале памяти по адресам 0..3FF (1кБ).

Address

CPU Mem

 

 

 

 

 

Data

 

 

 

 

INT

INTA#

 

 

 

 

 

 

 

 

IRQ0

 

 

 

 

 

 

 

 

 

 

PIC

 

 

 

 

 

 

 

 

 

A0

 

 

I/OR#

. . .

 

 

 

I/O

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IRQ7

 

 

 

DE#

 

 

I/OW#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RD#

WR#

 

 

 

Рис. 9.2. Организация прерываний

Таблица содержит 256 элементов по 4 байта в каждом. В младших двух байтах содержится смещение адреса, а в старших двух байтах - базовый адрес сегмента. CPU вычисляет адрес смещения как номер прерывания умноженный на 4 и считывает его в регистр IP. Следующие два байта считываются в регистр CS и начинается выполнение программы по адресу CS:IP

Вконце программы прерывания стоит команда посылки байта из CPU в 8259, информирующего о завершении прерывания. CPU восстанавливает состояние регистров, которое было до начала прерывания, а 8259 готов к обслуживанию следующих запросов IRQ от внешних устройств.

Всистеме AT и старше используются два контроллера прерываний, включенных каскадно.

9.3.Контроллер прерываний 8259

Структурная схема контроллера представлена на рис. 9.3.

Врегистрах запросов (РЗПР) и обслуженных запросов (РОЗПР) побитно хранятся запросы от ожидающих и обслуженных периферийный устройств. После снятия запроса и окончания прерывания бит обнуляется.

Программирование 8259 сводится к записи в него слов (байт) командной инициализации (СКИ) и слов команд операций (СКО). СКИ вводятся в начале работы котроллера (в BIOS) и задают режим его работы.

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

спомощью команд СКО1...СКО3:

СКО1 заносится в порт 21h и обеспечивает побитовое маскирование входов IRQ0…IRQ7. Единица в i-м разряде запрещает прерывание по входу IRQi.

40