Главная страница
Навигация по странице:

  • Таблица 8.1. Назначение контактов разъема магистрали ISA (продолжение в Табл. 8.2). Контакт

  • Таблица 8.2. Назначение контактов разъема магистрали ISA (начало в Табл. 8.1). Контакт

  • Рис. 8.3.

  • Таблица 8.3. Распределение адресов памяти (адреса даны в шестнадцатеричном коде). Адреса памяти

  • Таблица 8.4. Распределение адресов устройств ввода/вывода. Адреса

  • Таблица 8.5. Распределение каналов аппаратных прерываний. Номер прерывания IRQ

  • Таблица 8.6. Стандартное распределение каналов прямого доступа к памяти. Номер канала ПДП

  • Философия микропроцессорной техники. Философия микропроцессорной техники


    Скачать 2.23 Mb.
    НазваниеФилософия микропроцессорной техники
    АнкорФилософия микропроцессорной техники.doc
    Дата13.11.2019
    Размер2.23 Mb.
    Формат файлаdoc
    Имя файлаФилософия микропроцессорной техники.doc
    ТипГлава
    #94952
    страница33 из 34
    1   ...   26   27   28   29   30   31   32   33   34




    8.Интерфейсы персонального компьютера: лекция #15: Системная магистраль ISA: версия для печати
    В этой лекции рассказывается о характеристиках системной магистрали ISA, о назначении сигналов и протоколах обмена информацией на магистрали, а также о принципах распределения ресурсов ПК.







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

    В настоящее время компьютеры могут иметь множество внешних интерфейсов. Наиболее распространены следующие:

    • системная шина (магистраль) ISA;

    • шина PCI;

    • шина AGP;

    • шина PC Cards (старое название PCMCIA) — обычно только в ноутбуках;

    • параллельный порт (принтерный, LPT-порт) Centronics;

    • последовательный порт (COM-порт) RS-232C;

    • последовательный порт USB (Universal Serial Bus);

    • последовательный инфракрасный порт IrDA.

    Кроме того, компьютеры могут иметь разъемы для подключения внешнего монитора, клавиатуры, мыши. Некоторые компьютеры имеют встроенные модемы и сетевые адаптеры, тогда они располагают, соответственно, телефонным и сетевым внешними интерфейсами.

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

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

    Чаще всего для подключения нестандартных внешних устройств используются системная магистраль ISA, параллельный интерфейс Centronics (LPT) и последовательный интерфейс RS-232C (COM).

    8.1. Системная магистраль ISA


    Системная шина (магистраль) ISA была разработана специально для персональных компьютеров типа IBM PC AT и является фактическим стандартом. В то же время, отсутствие официального международного статуса магистрали ISA (она не утверждена в качестве стандарта ни одним международным комитетом по стандартизации) приводит к тому, что многие производители допускают некоторые отклонения от фирменного стандарта.

    ISA явилась расширением магистрали компьютеров IBM PC и IBM PC XT. В ней было увеличено количество разрядов адреса и данных, увеличено число линий аппаратных прерываний и каналов ПДП, а также повышена тактовая частота. К 62-контактному разъему прежней магистрали был добавлен 36-контактный новый разъем. Тем не менее, совместимость была сохранена, и платы, предназначенные для IBM PC XT, годятся и для IBM PC AT. Характерное отличие ISA состоит в том, что ее тактовый сигнал не совпадает с тактовым сигналом процессора, как это было в IBM PC XT, поэтому скорость обмена по ней не пропорциональна тактовой частоте процессора.

    Магистраль ISA относится к немультиплексированным (то есть имеющим раздельные шины адреса и данных) 16-разрядным системным магистралям среднего быстродействия. Обмен осуществляется 8-ми или 16-ти разрядными данными. На магистрали реализован раздельный доступ к памяти компьютера и к устройствам ввода/вывода (для этого имеются специальные сигналы). Максимальный объем адресуемой памяти составляет 16 Мбайт (24 адресные линии). Максимальное адресное пространство для устройств ввода/вывода — 64 Кбайт (16 адресных линий), хотя практически все выпускаемые платы расширения используют только 10 младших адресных линий (1 Кбайт). Магистраль поддерживает регенерацию динамической памяти, радиальные прерывания и прямой доступ к памяти. Допускается также захват магистрали.

    Разъем магистрали ISA разделен на две части, что позволяет уменьшать размеры 8-разрядных плат расширения, а также использовать платы, разработанные для компьютеров IBM PC XT. Внешний вид плат расширения показан на рис. 8.1. Назначение контактов разъемов представлено в табл. 8.1 и 8.2. На магистрали присутствуют четыре напряжения питания: +5 В, –5 В, +12 В и –12 В, которые могут использоваться платами расширения.


    Рис. 8.1.  Нумерация контактов разъема ISA (для IBM PC XT — только А1 ... А31 и В1 ... В31).

    В роли задатчика (Master) магистрали могут выступать процессор, контроллер ПДП, контроллер регенерации или другое устройство. Исполнителями (Slave) могут быть системные устройства компьютера, подключенные к ISA, или платы (карты) расширения.

    Наиболее распространенное конструктивное исполнение магистрали — разъемы (слоты), все одноименные контакты которых параллельно соединены между собой, то есть все разъемы абсолютно равноправны. В слоты устанавливаются платы расширения, которые оснащены интерфейсными разъемами магистрали, выполненными печатными проводниками на краю платы. Количество установочных мест для плат расширения зависит от типа корпуса компьютера и составляет обычно от 2 до 8 и даже более.

    В таблицах 8.1 и 8.2 знак минус перед названием сигнала говорит о том, что активному (рабочему) уровню сигнала соответствует низкий уровень напряжения на соответствующей линии магистрали. На линиях адреса и данных логическому нулю соответствует низкий уровень напряжения, а единице — высокий (то есть логика положительная).

    Таблица 8.1. Назначение контактов разъема магистрали ISA (продолжение в Табл. 8.2).

    Контакт

    Цепь

    Контакт

    Цепь

    A1

    –I/O CH CK

    B1

    GND

    A2

    SD7

    B2

    RESET DRV

    A3

    SD6

    B3

    +5 В

    A4

    SD5

    B4

    IRQ9 (IRQ2)

    A5

    SD4

    B5

    –5 В

    A6

    SD3

    B6

    DRQ2

    A7

    SD2

    B7

    –12 B

    A8

    SD1

    B8

    0WS

    A9

    SD0

    B9

    +12 B

    A10

    I/O CH RDY

    B10

    GND

    A11

    AEN

    B11

    –SMEMW

    A12

    SA19

    B12

    –SMEMR

    A13

    SA18

    B13

    –IOW

    A14

    SA17

    B14

    –IOR

    A15

    SA16

    B15

    –DACK3

    A16

    SA15

    B16

    DRQ3

    A17

    SA14

    B17

    –DACK1

    A18

    SA13

    B18

    DRQ1

    A19

    SA12

    B19

    –REFRESH

    A20

    SA11

    B20

    SYSCLK

    A21

    SA10

    B21

    IRQ7

    A22

    SA9

    B22

    IRQ6

    A23

    SA8

    B23

    IRQ5

    A24

    SA7

    B24

    IRQ4

    A25

    SA6

    B25

    IRQ3

    A26

    SA5

    B26

    –DACK2

    A27

    SA4

    B27

    T/C

    A28

    SA3

    B28

    BALE

    A29

    SA2

    B29

    +5 B

    A30

    SA1

    B30

    OSC

    A31

    SA0

    B31

    GND




    Таблица 8.2. Назначение контактов разъема магистрали ISA (начало в Табл. 8.1).

    Контакт

    Цепь

    Контакт

    Цепь

    C1

    -SBHE

    D1

    –MEM CS16

    C2

    LA23

    D2

    –I/O CS16

    C3

    LA22

    D3

    IRQ10

    C4

    LA21

    D4

    IRQ11

    C5

    LA20

    D5

    IRQ12

    C6

    LA19

    D6

    IRQ15

    C7

    LA18

    D7

    IRQ14

    C8

    LA17

    D8

    –DACK0

    C9

    –MEMR

    D9

    DRQ0

    C10

    –MEMW

    D10

    –DACK5

    C11

    SD8

    D11

    DRQ5

    C12

    SD9

    D12

    –DACK6

    C13

    SD10

    D13

    DRQ6

    C14

    SD11

    D14

    –DACK7

    C15

    SD12

    D15

    DRQ7

    C16

    SD13

    D16

    +5 B

    C17

    SD14

    D17

    –MASTER

    C18

    SD15

    D18

    GND

    8.1.1. Назначение сигналов ISA


    Вкратце о сигналах ISA уже говорилось в разделе 2.2. Рассмотрим назначение основных, наиболее часто используемых сигналов магистрали ISA подробнее.

    • SA0...SA19 — фиксируемые адресные разряды (они действительны в течение всего цикла обмена). 16-разрядным словам соответствуют четные адреса (SA0=0).

    • LA17...LA23 — нефиксируемые адресные разряды. Используются для адресации памяти. Действительны только в начале цикла обмена (в адресной фазе).

    • BALE — сигнал стробирования адресных разрядов (действительности адреса соответствует отрицательный фронт сигнала). Основное назначение — фиксация нефиксированных адресных разрядов в регистре-защелке.

    • -SBHE — сигнал типа цикла передачи данных (8-ми или 16-разрядный цикл). Активен при передаче старшего байта.

    • SD0...SD15 — разряды данных. По линиям SD0...SD7 передается младший байт, по линиям SD8...SD15 — старший байт.

    • -SMEMR, -MEMR — стробы чтения данных из памяти. Сигнал -SMEMR вырабатывается только при обращении к адресам, не превышающим FFFFF (находящимся в пределах младшего 1 Мбайта), а сигнал -MEMR — при обращении ко всем адресам памяти.

    • -SMEMW, -MEMW — стробы записи данных в память. Сигнал -SMEMW вырабатывается только при обращении к адресам, не превышающим FFFFF (находящимся в пределах младшего 1 Мбайта), сигнал -MEMW — при обращении ко всем адресам памяти.

    • -IOR — строб чтения данных из устройств ввода/вывода. При активном сигнале адресуемое устройство ввода/вывода должно выдать свои данные на шину данных.

    • -IOW — строб записи данных в устройства ввода/вывода. По этому сигналу адресуемое устройство ввода/вывода должно принять данные с шины данных.

    • -MEM CS16 — сигнал выставляется памятью для сообщения задатчику о том, что она имеет 16-разрядную организацию. Вырабатывается в ответ на распознавание адреса памяти.

    • -I/O CS16 — сигнал выставляется устройством ввода/вывода для сообщения задатчику о том, что оно имеет 16-разрядную организацию, и необходим 16-разрядный цикл обмена. Вырабатывается в ответ на распознавание своего адреса.

    • I/O CH RDY — сигнал снимается (делается низким) исполнителем (устройством ввода/вывода или памятью) по переднему фронту сигналов -IOR и -IOW в случае, если он не успевает выполнить нужную операцию в темпе задатчика. То есть этот сигнал используется для асинхронного обмена по магистрали.

    • -I/O CH CK — сигнал вырабатывается любым исполнителем (устройством ввода/вывода или памятью) для информирования задатчика о фатальной ошибке, например, об ошибке четности при доступе к памяти.

    • -0WS — сигнал выставляется исполнителем для информирования задатчика о необходимости проведения цикла обмена без вставки такта ожидания.

    • -REFRESH — сигнал регенерации, выставляется контроллером регенерации для информирования всех устройств на магистрали о выполнении циклов регенерации динамической памяти компьютера.

    • RESET DRV — сигнал сброса в начальное состояние всех устройств на магистрали. Вырабатывается центральным процессором при включении или сбое питания, а также при нажатии на кнопку сброса RESET компьютера.

    • SYSCLK — сигнал системного тактового генератора, тактовый сигнал магистрали. В большинстве компьютеров его частота равна 8 МГц независимо от тактовой частоты процессора.

    • OSC — не синхронизированный с SYSCLK сигнал кварцевого генератора с частотой 14,31818 МГц.

    • IRQ — сигналы запроса радиальных прерываний. Запросом является положительный переход на соответствующей линии IRQ.

    • DRQ — сигналы запроса ПДП.

    • -DACK — сигналы предоставления ПДП.

    • AEN — сигнал выбора устройства, запросившего ПДП. Отключает все остальные устройства, не участвующие в данном цикле ПДП.

    8.1.2. Циклы обмена по ISA


    О циклах обмена по магистрали ISA уже упоминалось в разделе 2.2. Здесь мы рассмотрим их несколько подробнее, на уровне, достаточном для практического использования.

    В режиме программного обмена информацией на магистрали ISA выполняется четыре типа циклов:

    • цикл записи в память;

    • цикл чтения из памяти;

    • цикл записи в устройство ввода/вывода;

    • цикл чтения из устройства ввода/вывода.

    Циклы обмена с памятью и с устройствами ввода/вывода различаются между собой используемыми стробами записи и чтения, а также временными задержками между сигналами.

    Цикл обмена с устройствами ввода/вывода начинается с выставления задатчиком кода адреса на линиях SA0...SA15 и сигнала -SBHE, определяющего разрядность информации. Чаще всего используются только 10 младших линий SA0...SA9, так как большинство разработанных ранее плат расширения задействуют только их. В ответ на получение адреса исполнитель, распознавший свой адрес, должен сформировать сигнал -I/O CS16 в случае, если обмен должен быть 16-разрядным. Далее следует собственно команда чтения или записи.

    При цикле чтения задатчик выставляет сигнал -IOR, в ответ на который исполнитель должен выдать данные на шину данных. Эти данные должны быть сняты исполнителем после окончания сигнала -IOR.

    В цикле записи задатчик выставляет записываемые данные и сопровождает их стробом записи -IOW. Исполнитель должен принять эти данные (для гарантии — по заднему фронту сигнала -IOW).

    На рис. 8.2 приведены временные диаграммы циклов обмена с устройствами ввода/вывода. Для простоты на одном рисунке показаны как цикл записи, так и цикл чтения, хотя производятся они, конечно, в разное время.


    Рис. 8.2.  Временные диаграммы циклов программного обмена с устройствами ввода/вывода (все интервалы в наносекундах).

    Если исполнитель не успевает выполнить команду в темпе магистрали, он может приостановить на целое число периодов Т сигнала SYSCLK завершение цикла чтения или записи за счет снятия (перевода в низкий уровень) сигнала I/O CH RDY (так называемый удлиненный цикл). Это производится в ответ на получение переднего фронта сигнала -IOR или -IOW. Сигнал I/O CH RDY может удерживаться низким не более 15,6 мкс, в противном случае процессор переходит в режим обработки немаскируемого прерывания NMI.

    Разработчику ISA-устройств необходимо, прежде всего, обращать внимание на те временные интервалы, которые связаны с быстродействием аппаратуры этих устройств. Например, на обработку адреса селектору адреса отводится не более 91 нс, а буфер данных в цикле чтения должен выдавать данные на магистраль не более чем за 110 нс.

    При циклах программного обмена с памятью используются те же самые сигналы, только вместо строба чтения -IOR применяются стробы чтения -MEMR и -SMEMR, а вместо строба записи -IOW — стробы записи -MEMW и -SMEMW. Для определения байтового или словного формата данных применяется сигнал -MEM CS16. Для асинхронного режима обмена (удлиненного цикла) здесь также используется сигнал I/O CH RDY. Отметим, что память должна обрабатывать все адресные разряды магистрали, включая и LA17...LA23.

    На рис. 8.3 показана временная диаграмма обмена с памятью, причем здесь указаны только временные интервалы, отличающиеся от аналогичных интервалов на рис. 8.2. Для простоты на одном рисунке показаны как цикл записи в память, так и цикл чтения из памяти.


    Рис. 8.3.  Временные диаграммы циклов программного обмена с памятью (все интервалы в наносекундах).

    В случае циклов прямого доступа к памяти (ПДП) используется другой протокол обмена. Так как магистраль ISA имеет раздельные стробы чтения и записи для устройств ввода/вывода и для памяти, пересылка данных в режиме ПДП производится за один машинный цикл. То есть если данные надо переслать из устройства ввода/вывода в память, то одновременно производится чтение данных из устройства ввода/вывода (по сигналу -IOR) и их запись в память (по сигналу -MEMW). Аналогично осуществляется пересылка данных из памяти в устройство ввода/вывода (по сигналам -MEMR и -IOW).

    Цикл ПДП (рис. 8.4) начинается с запроса ПДП от исполнителя, желающего произвести обмен, с помощью одного из сигналов DRQ. После освобождения магистрали текущим задатчиком (например, процессором) контроллер ПДП через время t формирует соответствующий сигнал -DACK, говорящий о предоставлении ПДП запросившему его.


    Рис. 8.4.  Временная диаграмма циклов прямого доступа к памяти (все интервалы в наносекундах).

    Затем контроллер ПДП вырабатывает адрес ячейки памяти, с которой будет производиться обмен в текущем цикле, и сигнал AEN, который говорит устройству ввода/вывода о том, что к нему идет обращение в режиме ПДП. После этого выставляется строб чтения (-IOR или -MEMR), в ответ на который источник передаваемых данных выставляет свою информацию на шину данных, и строб записи (-MEMW или -IOW), по которому данные записываются в приемник данных. Здесь так же, как и в обычном цикле, возможен асинхронный обмен (удлиненный цикл) с использованием сигнала I/O CH RDY. Для простоты на одном рисунке показано два цикла: передачи из памяти в устройство ввода/вывода и передачи из устройства ввода/вывода в память. Временные интервалы этих двух циклов несколько различаются.

    При аппаратных прерываниях протокол обмена совсем простой, так как прерывания используются радиальные. Исполнитель, желающий инициировать прерывание, выставляет свой запрос (положительный переход на одной из линий IRQ) на магистраль. Контроллер прерываний, получив этот запрос, преобразует его в запрос прерываний процессора. Процессор, закончив выполнение текущей команды, переходит на адрес начала программы обработки данного прерывания, который однозначно определяется по номеру используемого сигнала IRQ. После обработки прерывания процессор возвращается к основной программе.

    Для проведения регенерации динамической памяти компьютера используются специальные циклы регенерации (рис. 8.5).


    Рис. 8.5.  Временные диаграммы циклов регенерации на ISA (все интервалы указаны в наносекундах).

    Такие циклы выполняет контроллер регенерации, который должен для этого получать управление магистралью каждые 15 микросекунд. Во время цикла регенерации производится чтение одной из 256 ячеек памяти (для адресации при этом используются только восемь младших разрядов адреса SA0...SA7). Читаемая информация нигде не применяется, то есть это цикл псевдочтения. Проведение 256 циклов регенерации, то есть псевдочтение из 256 последовательных адресов памяти, обеспечивает полное обновление информации в памяти и ее непрерывное сохранение. Если по каким-то причинам цикл регенерации памяти не производится вовремя, возможна потеря информации.

    Цикл регенерации включает в себя выставление сигнала -REFRESH, сигналов кода адреса SA0...SA7 и строба чтения из памяти -MEMR. В случае необходимости может использоваться сигнал I/O CH RDY, обеспечивающий асинхронный обмен.

    При включении питания, а также при нажатии кнопки RESET на передней панели компьютера на магистрали вырабатывается сигнал RESET DRV, который используется всеми устройствами, подключенными к магистрали для сброса в исходное состояние и отключения от магистрали.

    Захват магистрали сторонним задатчиком, в принципе, предусмотренная стандартом, используется на практике довольно редко, так как требует от устройства, захватившего магистраль, полного управления ею, включая и поддержку периодической регенерации памяти.

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

    Стандарт определяет, что выходной ток любого источника магистральных сигналов не должен быть меньше 24 мА, а входной ток любого приемника магистральных сигналов не должен превышать 0,8 мА. Кроме того, нарушения в работе компьютера может вызвать несоблюдение временных ограничений, накладываемых используемыми протоколами обмена во всех рассмотренных циклах.

    8.1.3. Распределение ресурсов компьютера


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

    Под распределением ресурсов в данном случае понимается:

    • распределение адресного пространства системной памяти, отведение отдельных областей памяти под особые цели;

    • распределение адресного пространства устройств ввода/вывода, в том числе для системных средств компьютера;

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

    • распределение каналов запроса прямого доступа к памяти.

    Понятно, что если программист захочет использовать те адреса памяти, которые отведены для системных нужд (например, для памяти дисплея или системных таблиц), то работоспособность компьютера нарушится. Если выполняемая программа попытается записать какую-либо информацию по тем адресам системной памяти, которые стандартом отведены под постоянную память (ROM), то записываемая информация будет просто потеряна, и программа работать не будет. Если писать информацию по тем адресам памяти, которые отведены под видеопамять, то будет искажаться изображение на экране видеомонитора.

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

    Если разработчик платы расширения с устройством ввода/вывода или пользователь, подключающий новую плату расширения, установят адрес своего устройства так, что он будет совпадать с адресом системного устройства или адресом другой платы расширения, то возможны конфликты при обращении к данному устройству. При этом в цикле записи информация будет записываться не в одно, а в два или более устройств, а в цикле чтения на шину данных будут одновременно выставлять свои данные не одно, а несколько устройств. То есть в цикле записи возможно нарушение установленных режимов работы системных устройств (например, контроллера прерываний или контроллера ПДП) или неправильная работа новой платы расширения, а в цикле чтения — даже выход из строя одного из устройств, выставляющих свои данные на магистраль одновременно.

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

    Точно так же при неправильном выборе номера канала запроса прямого доступа к памяти может перестать обслуживаться запрос ПДП системного устройства, а может выйти из строя системное устройство или новая плата расширения. То есть соблюдение правил стандартного распределения ресурсов компьютера — это не чья-то прихоть, а жизненная необходимость.

    Правда, в последнее время получила распространение снимающая данные проблемы технология автоматического распределения ресурсов Plug-and-Play (PnP, P&P), что можно перевести как «Вставляй и работай». При этом пользователю достаточно просто подключить свою плату к компьютеру, а все операции по распределению ресурсов компьютер выполнит самостоятельно, и любые конфликты будут автоматически устранены.

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

    А теперь рассмотрим принятое в персональных компьютерах стандартное распределение ресурсов.

    О стандартном распределении памяти уже говорилось в предыдущей главе. Чуть подробнее распределение адресов памяти описано в табл. 8.3.

    Из таблицы видно, что для памяти, входящей в состав устройств ввода/вывода, отводится зона всего лишь в 92 Кбайта (адреса С8000…DFFFF). В этом пространстве может располагаться как оперативная память, так и постоянная память устройств ввода/вывода. Иногда память устройств ввода/вывода захватывает также и зону адресов С0000…С7FFF.

    Таблица 8.3. Распределение адресов памяти (адреса даны в шестнадцатеричном коде).

    Адреса памяти

    Назначение

    000000...0003FF

    Таблица векторов прерываний

    000000...09FFFF

    Память DOS и пользовательских программ

    0А0000...0АFFFF

    Память дисплея EGA или VGA

    0B0000...0B7FFF

    Память монохромного дисплея MDA

    0B8000...0BFFFF

    Память дисплея CGA

    0C0000...0C3FFF

    ПЗУ BIOS для EGA/VGA

    0C8000...0DFFFF

    Память устройств ввода/вывода

    0E0000...0EFFFF

    Резерв ПЗУ ВIOS на материнской плате

    0F0000...0FFFFF

    ПЗУ BIOS на материнской плате

    Важно помнить, что помимо этого распределения, общего для любых программных и аппаратных средств, существуют еще и распределения памяти, специфические для каждой операционной системы. Их также необходимо учитывать во избежание отказа при выполнении системных программ. Отметим, что в современных компьютерах, конечно же, не используются давно устаревшие дисплеи стандартов CGA или MDA. Однако в том случае, если требуется универсальность программного обеспечения, надо учитывать и то, что его могут попытаться запустить на компьютерах с подобными дисплеями.

    Стандартное распределение адресов в адресном пространстве устройств ввода/вывода персонального компьютера приведено в табл. 8.4.

    Как уже отмечалось, стандарт допускает адресацию 64К устройств ввода/вывода (то есть можно использовать 16 разрядов адреса). Однако подавляющее большинство плат расширения для упрощения аппаратуры использует только 10 младших разрядов, что соответствует всего 1К (или 1024) адресов (от 000 до 3FF в шестнадцатеричном коде). При этом 16-разрядные порты ввода/вывода имеют четные адреса, то есть их может быть всего 512.

    Таблица 8.4. Распределение адресов устройств ввода/вывода.

    Адреса

    Назначение

    000...01F

    Контроллер ПДП 1

    020...03F

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

    040...05F

    Программируемый таймер

    060...06F

    Контроллер клавиатуры

    070...07F

    Часы реального времени

    080...09F

    Регистр страницы ПДП

    0A0...0BF

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

    0С0...0DF

    Контроллер ПДП 2

    0F0...0FF

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

    170...177

    Накопитель на жестком диске (второй)

    1F0...1F7

    Накопитель на жестком диске (первый)

    200...207

    Игровой порт (джойстик)

    278...27F

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

    2С0...2DF

    Адаптер EGA 2

    2F8...2FF

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

    300...31F

    Прототипные платы

    320...32F

    Накопитель на жестком диске XT

    360...36F

    Резервные адреса

    370...377

    Накопитель на гибком диске (второй)

    378...37F

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

    380...38F

    Контроллер бисинхронного обмена SDLC2

    3A0...3AF

    Контроллер бисинхронного обмена SDLC1

    3B0...3DF

    Адаптер VGA

    3B0...3BF

    Адаптер дисплея MDA и принтера

    3C0...3CF

    Адаптер EGA 1

    3D0...3DF

    Адаптер СGA

    3F0...3F7

    Накопитель на гибком диске (первый)

    3F8...3FF

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

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

    В табл. 8.5 представлено стандартное распределение номеров аппаратных прерываний и соответствующих им номеров в таблице векторов прерываний (INT).

    Как видно из таблицы, большинство входов IRQ заняты системными ресурсами компьютера. Свободны (зарезервированы) только четыре канала: 10, 11, 12, 15, причем они находятся на 16-разрядной части разъема магистрали ISA. Правда, иногда в компьютерах применяется только один параллельный порт или (гораздо реже) только один последовательный порт, и тогда свободными оказываются еще IRQ3 и IRQ5. Сигналы IRQ0...IRQ2, IRQ8 и IRQ13 задействованы на системной плате и недоступны платам расширения.

    Таблица 8.5. Распределение каналов аппаратных прерываний.

    Номер прерывания IRQ

    INT

    Назначение

    0

    08

    Программируемый таймер

    1

    09

    Контроллер клавиатуры

    2

    0A

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

    8

    70

    Часы реального времени (только АТ)

    9

    71

    Программно переадресовано на IRQ2

    10

    72

    Резерв

    11

    73

    Резерв

    12

    74

    Резерв

    13

    75

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

    14

    76

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

    15

    77

    Резерв

    3

    0B

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

    4

    0C

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

    5

    0D

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

    6

    0E

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

    7

    0F

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

    В компьютере используются два 8-разрядных контроллера прерываний. Сигналы IRQ0...IRQ7 относятся к первому из них, а IRQ8...IRQ15 — ко второму. Для каскадирования второго контроллера прерываний задействован вход IRQ2 (рис. 8.6). В связи с этим запросы прерывания имеют следующие приоритеты обслуживания в порядке возрастания: IRQ7, IRQ6, IRQ5, IRQ4, IRQ3, IRQ15, IRQ14, IRQ12, IRQ11, IRQ10, IRQ9. Такая схема включения сложилась исторически, так как в компьютере IBM PC XT использовался только один 8-канальный контроллер прерываний, а при переходе на IBM PC AT к нему был добавлен второй контроллер для удвоения количества каналов запросов прерываний. В современных компьютерах оба контроллера прерываний вместе с другими контроллерами могут входить в состав одной и той же микросхемы, но совместимость распределения прерываний по-прежнему обеспечивается.


    Рис. 8.6.  Включение двух контроллеров прерываний.

    Стандартное распределение каналов запроса прямого доступа к памяти представлено в табл. 8.6.

    Как и в случае с контроллерами прерываний, здесь применяется два контроллера, причем один из них каскадируется через другой. На каждой линии DRQ должен быть один выход ISA-устройства. Каналы, соответствующие первому контроллеру ПДП (сигналы DRQ0...DRQ3), предназначены только для 8-битного обмена, а соответствующие второму контроллеру (DRQ5...DRQ7) — для 16-битного. Канал DRQ4 используется для каскадирования двух контроллеров ПДП и поэтому недоступен пользователям. Сигнал запроса DRQ0 имеет самый высокий приоритет, сигнал DRQ7 — самый низкий. В IBM PC XT канал DRQ0 использовался для регенерации динамической памяти. Каждый канал ПДП может передавать данные в пределах 16-мегабайтного адресного пространства блоками длиной до 64 Кбайт (каналы 0, 1, 2, 3) или до 128 Кбайт (каналы 5, 6, 7).

    Таблица 8.6. Стандартное распределение каналов прямого доступа к памяти.

    Номер канала ПДП

    Назначение

    0

    Резервный

    1

    Контроллер бисинхронного обмена SDLC

    2

    Накопитель на гибком диске

    3

    Резервный

    4

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

    5

    Резервный

    6

    Резервный

    7

    Резервный

    Естественно, обычному пользователю запомнить всю эту информацию о распределении ресурсов довольно сложно, к тому же при малейшей ошибке возможны неприятности. Именно из этих соображений фирмами Compaq Computer, Intel, Microsoft и Phoenix Technologies в 1993 году была предложена технология Plug-and-Play (PnP), возлагающая все заботы о конфигурации компьютера на сам компьютер. Пользователь при этом может даже ничего не знать об адресном пространстве, прерываниях и каналах прямого доступа, он просто подключает плату, и она сразу же начинает работать правильно. Правда, при этом все компоненты компьютера (базовая система ввода/вывода BIOS, операционная система, прикладное программное обеспечение, подключаемые устройства) должны поддерживать режим PnP. В конце концов, технология PnP должна работать на всех используемых интерфейсах компьютера: ISA, PCI, VLB, IDE, RS-232C и т.д. Наиболее же приспособлена для этого системная шина PCI, имеющая специально предусмотренные средства, что еще более увеличивает ее шансы стать единственным стандартом системной шины.

    При включении компьютера с PnP его программа начального запуска BIOS определяет устройства, которые необходимы в процессе загрузки. Затем BIOS запрашивает у каждого из этих устройств его уникальный номер (идентификатор), хранящийся в памяти PnP-устройства. После этого BIOS разрешает все конфликты между устройствами. При этом устройства, которые не нужны для загрузки компьютера, не обслуживаются.

    После загрузки операционной системы вступает в действие специальный программный драйвер — менеджер конфигурации (configuration manager), который с помощью драйверов-нумераторов шин (bus enumerators) пропределяет устройства, требующие системных ресурсов. Если подключенное устройство не поддерживает PnP и не может выдать информацию о себе, то такая информация должна быть заложена в формируемую вручную базу данных. Вся собранная информация о текущей конфигурации сохраняется в оперативной памяти, в области hardware tree. Эту информацию в дальнейшем использует программа-арбитр ресурсов (resource arbitrator) при распределении системных ресурсов между устройствами. После этого менеджер конфигурации через нумераторы шин сообщает PnP-устройствам о том, какие ресурсы компьютера им присвоены, и данная информация в дальнейшем хранится в программно доступных регистрах (или flash-EPROM) этих устройств. На этом работа PnP по распределению ресурсов заканчивается, и далее компьютер функционирует как обычно, обращаясь ко всем устройствам стандартным образом.

    Отметим также, что в некоторых компьютерах предусмотрена возможность так называемого «горячего подключения» внешних устройств (то есть без выключения питания компьютера). Режим PnP должен поддерживать и эту возможность, распределяя ресурсы не только при начальной загрузке, но и по мере подключения новых устройств.


    1   ...   26   27   28   29   30   31   32   33   34


    написать администратору сайта