- •Системные ресурсы эвм
- •Программно-аппаратные ресурсы пк
- •Внутренние ресурсы системы
- •Распределение памяти
- •Стандартная память — Conventional Memory (640 к)
- •Верхняя память — uma
- •Пространство ввода-вывода
- •Взаимодействие программ с периферийными устройствами
- •4.1. Методы передачи данных
- •4.2. Синхронизация программ и устройств
- •4.3. Буферизация данных в устройствах
- •4.4. Распределение системных ресурсов
Стандартная память — Conventional Memory (640 к)
00000h-003FFh — Interrupt Vectors — векторы прерываний (256 двойных слов);
00400h-004FFh - BIOS Data Area — область переменных BIOS;
00500h-00xxxh - DOS Area - область DOS;
00xxxh-9FFFFh — User RAM — память, предоставляемая пользователю (до 638 Кбайт); при использовании PS/2 Mouse область 9FC00h-9FFFFh используется как расширение BIOS Data Area, и размер User RAM уменьшается.
Верхняя память — uma
Верхняя память имеет области различного назначения, которые могут быть заполнены буферной памятью адаптеров, постоянной памятью или оставаться незаполненными. Эти области доступны DOS для размещения резидентных программ и драйверов через драйвер EMM386, который отображает в них доступную дополнительную память.
Стандартное распределение верхней памяти выглядит следующим образом (рис. 3.3).
A0000h-BFFFFh — Video RAM, 128 Кбайт — видеопамять (обычно используется не полностью).
C0000h-DFFFFh – Adapter ROM, Adapter RAM, 128 Кбайт - резерв для адаптеров, использующих собственные модули ROM BIOS или (и) специальное ОЗУ, разделяемое с системной шиной.
E0000h-EFFFFh — свободная область, 64 Кбайт, иногда занятая под System BIOS.
F0000h-FFFFFh – System BIOS, 64 Кбайт - системная BIOS.
FD000h-FDFFFh – ESCD (Extended System Configuration Data) - область энергонезависимой памяти, используемая для конфигурирования устройств Plug and Play. Эта область имеется только при наличии PnP BIOS, ее положение и размер жестко не заданы.
Рис. 3.3. Распределение верхней памяти (UMA)
Пространство ввода-вывода
Процессоры семейства x86 имеютраздельную адресацию памяти и портов ввода-вывода.Пространство ввода-выводаиспользует толькомладшие 16 бит адреса, что позволяет адресовать до 65 384 однобайтных регистров. Способовадресации ввода-вывода существует только два.К портам ввода-вывода обращаются только по реальным адресам.И, наконец, самое существенное различие пространств памяти и портов ввода-вывода: процессор может считывать инструкции для исполнения только из пространства памяти.
Для обращения программы к пространству ввода-вывода предназначены всего четыре инструкции процессорам IN(ввод из порта в регистр процессора),OUT(вывод в порт из регистра процессора),INS(ввод из порта в элемент строки памяти) иOUTS(вывод элемента из строки памяти в порт). Обмен данными с портами, при котором применяют строковые инструкции ввода-вывода, получил названиеРIO (Programmed Input/Output — программированный ввод-вывод). Скорость такого обмена превышает скорость стандартного канала прямого доступа (DMA), правда,DMAв отличие отPIOпочти не занимает процессорного времени. Разрядность слова, передаваемого за одну инструкцию ввода-вывода, может составлять 8, 16 или 32 бита. В зависимости от выровненности адреса по границе слова и разрядности данных используемой шины это слово может передаваться за один или несколько циклов шины с указанием соответствующего нарастающего адреса в каждом цикле обращения к памяти. Инструкции ввода-вывода порождают шинные циклы обмена, в которых вырабатываются сигналы чтения порта/записи в порт. На шинеISAэто сигналыIQRD# иIOWR# соответственно, они и отличают пространство ввода-вывода от пространства памяти, где соответствующие операции чтения и записи вырабатывают сигналыMEMRD# иMEMWR. На шинеPCIразделение памяти и пространства ввода-вывода происходит иначе — здесь тип операции кодируется четырехбитной, командой в зависимости от типа инструкции, выполняемой процессором.
Для дешифрации адресов портов в оригинальном PCиз 16 бит использовались только младшие 10 (А0-А9), что обеспечивает обращение к портам в диапазоне адресов 0-3FFh. Старшие биты адреса, хотя и поступают на шину, устройствами игнорируются. В результате обращения по адресам, к примеру 378h, 778h,B78hиF78h, будут восприниматься устройствами одинаково. Это упрощение, нацеленное на снижение стоимости как системной платы, так и схем плат адаптеров, для шиныISAникто не отменял. Традиционные адаптеры для шиныISA, называемыеLegacy Card («наследие тяжелого прошлого»), для старших бит адреса не имеют даже печатных ламелей на своем краевом разъеме. В адаптерах для шин МСА иPCIиспользуются все 16 бит адреса, полная дешифрация адреса используется и в современных системных платах. Карта распределения адресов ввода-вывода стандартных устройствPCприведена в табл. 3.1. Эта карта подразумевает 10-битную дешифрацию адреса.
Таблица 3.1. |
Стандартная карта портов ввода-вывода |
| ||
AT и PS/2 |
PC/XT |
Назначение |
| |
000-00F |
000-00F |
Контроллер DMA #1 8237 |
| |
010-01F |
|
PS/2 - расширение DMA #1 |
| |
020-021 |
020-021 |
Контроллер прерываний #1 — 8259А |
| |
040-05F |
040-043 |
Таймер (PC/XT: 8253, AT: 8254) |
| |
060 |
060 |
Диагностический регистр POST (только запись) |
| |
060, 064 |
|
Контроллер клавиатуры AT 8042 |
| |
061 |
|
Источники NMI и управление звуком |
| |
070-07F |
|
Память CMOS и маска NMI |
| |
080 |
|
Диагностический регистр |
| |
080-08F |
080-083 |
Регистры страниц DMA |
| |
090-097 |
|
PS/2 микроканал, арбитр... |
| |
0A0-0BF |
|
Контроллер прерываний #2 — 8259А |
| |
0C0-0DF |
|
Контроллер DMA #2 8237А-5 |
| |
0F0-0FE |
|
Сопроцессор 80287 | ||
100-1EF |
|
PS/2 управление микроканалом | ||
170-177 |
|
Контроллер НЖМД #2 (IDЕ#2) | ||
1F0-1F7 |
|
Контроллер НЖМД #1 (IDЕ#1) | ||
200-207 |
200-20F |
Игровой адаптер | ||
238-23F |
|
COM4 | ||
278-27F |
278-27F |
Параллельный порт LPT2 (LPT3 при наличии MDA) | ||
2E0-2E7 |
|
COM4 | ||
2E8-2EF |
|
COM4 | ||
2F8-2FF |
2F8-2FF |
COM2 | ||
338-33F |
|
COM3 | ||
370-377 |
|
Контроллер НГМД #2 | ||
376-377 |
|
Порты команд IDE#2 | ||
378-37F |
378-37F |
Параллельный порт LPT1 (LPT2 при наличии MDA) | ||
3BC-3BF |
3BC-3BF |
Параллельный порт LPT1 платы MDA | ||
3C0-3DF |
3C0-3DF |
VGA | ||
3E0-3E7 |
|
COM3 | ||
3E8-3EF |
|
COM3 | ||
3F0-3F7 |
3F0-3F7 |
Контроллер НГМД #1 | ||
3F6-3F7 |
|
Порты команд IDE#1 | ||
3F8-3FF |
3F8-3FF |
СОМ1 |
Выбор базовых адресов стандартных устройств (3F8h, 3F0h, 378h и т. п.) объясняется стремлением к экономии. Эти адреса выбирались так, чтобы в ихдешифрации участвовало максимальное количество единиц и минимальное — нулей (логические схемы «И-НЕ» применяются чаще, чем схемы «ИЛИ», а применение более сложных схем для дешифрации было нежелательно).
Каждой шине назначается своя область адресов ввода, и дешифратор адресов, расположенный на системной плате, при чтении открывает соответствующие буферы данных, так что реально считываться будут данные только с одной шины. При записи в порты данные (и сигнал записи) обычно распространяются по всем шинам компьютера.В стандартном распределении адреса 0h-0FFhотведены для устройств системной платы. При наличии (и разрешении работы) периферийных устройств на системной плате чтение по этим адресам не распространяется на шины расширения. Для современных плат со встроенной периферией и несколькими шинами (ISA,PCI) распределением адресовуправляет BIOS через регистры конфигурирования чипсета.
В реальном режиме процессора программе доступно все пространство адресов ввода-вывода.