Страница 3 из 20 3. Общее описание шины ISA В данной главе рассматриваются характеристики шины, не зависящие от типа устройства, захватившего шину. 3.1. Адресное пространство при обращении к памяти Максимальное адресное пространство при обращении к памяти, поддерживаемое шиной ISA, 16 Мб (24 линии адреса), но не все слоты поддерживают полностью это адресное пространство. Когда задатчик на шине осуществляет доступ к памяти на материнской плате или к памяти, установленной в слот, он должен разрешать сигналы -MEMR или -MEMW; аппаратно на материнской плате дополнительно разрешаются сигналы -SMEMR и -SMEMW, если требуемый адрес находится в пределах первого мегабайта адресного пространства. К 8-разрядным слотам подведены только линии -SMEMR и -SMEMR, SD<7...0> и SA<19...0>; поэтому внешние платы, установленные в 8-разрядные слоты, могут быть либо только 8-разрядными устройствами ввода/вывода, либо 8-ми разрядной памятью в первом мегабайте адресного пространства. Внешние платы, устанавливаемые в 8/16-разрядные слоты, принимают все командные сигналы, адреса и данные; они могут быть как 8-, так и 16-разрядными и адресное пространство памяти на них может быть любым в пределах 16 Мб. Цикл доступа к таким внешним платам завершается как 16-разрядный, если плата разрешает сигнал -I/O CS16 или -MEM CS16. ПРИМЕЧАНИЕ: Память на материнской плате или внешней плате считается 16- разрядным ресурсом только в том случае, если разрешается сигнал -MEM CS16. Этот сигнал вырабатывается из сигналов адреса LA<23...17>; поэтому 16-разрядная память может быть выбрана только блоками по 128 Кб; внутри такого блока память не может быть частично 8-разрядной, а частично 16-разрядной, так как невозможно по обращению к меньшему блоку однозначно выработать сигнал -MEM CS16. Разрядность внутри такого блока должна быть одинаковой при обращении по любому адресу внутри 128 Кб. ВНИМАНИЕ! Микросхемы динамической памяти требуют циклов регенерации через каждые 15 мкс. Если циклы регенерации выполняются реже, чем через 15 мкс, то данные в памяти могут быть потеряны. ОСОБЕННОСТИ ДЛЯ ВНЕШНИХ ПЛАТ Динамическая память на материнской плате может иметь два вида своей организации - 16- или 32-разрядная. Но разрядность памяти на материнской плате принимается во внимание только центральным процессором, для внешних плат динамическая память на материнской плате всегда только 16-разрядная. ПЗУ на материнской плате, содержащее BIOS (Base Input/Output System - Базовая Система Ввода/Вывода), также всегда 16-разрядное. 3.2. Адресное пространство для устройств ввода/вывода Максимально адресное пространство для устройств ввода/вывода, поддерживаемое шиной ISA составляет 64 Кб (16 адресных линий). Все слоты поддерживают 16 адресных линий. Первые 256 адресов зарезервированы для устройств, расположенных, как правило, на материнской плате - регистры контроллера ПДП, контроллера прерываний, часов реального времени, таймера-счетчика и других устройств, требующихся для AT совместимости различных компьютеров. ОСОБЕННОСТИ ДЛЯ ВНЕШНИХ ПЛАТ Несмотря на то, что для выбора адреса УВВ доступны все 16 сигналов адреса, традиционно для адресов УВВ в компьютерах серии IBM PC/XT/AT использовались только первые 10 разрядов адреса. Это означает, что адреса из следующих килобайтных блоков будут декодироваться также как адреса в первом килобайте адресов УВВ. Поэтому для вновь разрабатываемых внешних плат следует использовать "окна" в существующем сейчас распределении адресов стандартных УВВ для компьютеров IBM PC/AT. Для увеличения количества используемых адресов УВВ (при необходимости) можно использовать адресное пространство выбранного окна со сдвигом на 1 Кб или кратное ему значение. Очевидно, что внешняя плата в этом случае должна декодировать более чем 10 линий адреса. 3.3. Структура прерываний Линии запроса на прерывания непосредственно заведены на контроллеры прерываний типа Intel 8259A. Контроллер прерываний будет реагировать на запрос по такой линии в случае, если сигнал на ней перейдет из низкого уровня в высокий. Шина ISA не имеет линий, подтверждающих прием запроса на прерывание, поэтому запрашивающее прерывание устройство должно само определять по реакции ЦП подтверждение приема своего запроса. ОСОБЕННОСТИ ДЛЯ ВНЕШНИХ ПЛАТ Линии запроса на прерывания заведены на все слоты и обрабатываются контроллером прерывания по нарастающему фронту сигнала. До установки новой внешней платы, если она использует в своей работе контроллер прерываний, следует определить, есть ли свободная линия запроса на прерывание и именно ее использовать для новой внешней платы. При не соблюдении этого условия возможно возникновение конфликтных ситуаций на шине. 3.4. Перестановщик байтов Центральный процессор или внешняя плата могут выполнить как 8- так и 16-разрядные циклы доступа, причем все циклы всегда начинаются как 16-разрядные, а завершаются как 8- или 16-разрядные. Цикл доступа будет завершен как 8-разрядный, если устройство, к которому осуществляется доступ, запретит сигнал -I/O CS16 или -MEM CS16. Перестановщик байтов всегда находится на материнской плате. Его задача - точно согласовать размер данных, которыми обмениваются устройства. На рис. 3.1 показано место перестановщика байтов при пересылке данных между задатчиком и ресурсом, к которому осуществляется доступ. В табл. 3.1 суммируется вся информация по перестановке байтов во время циклов доступа. Перестановка байтов осуществляется с шины SD<15...0> (HIGH BYTE - старший байт) на SD<7...0> (LOW BYTE - младший байт) или наоборот. В таблице перенос байта с шины SD<15...0> на SD<7...0> обозначается как H > L, наоборот - L < H. LL означает, что байт по младшей половине шины данных не переставляется, HH - что байт по старшей половине шины не переставляется. HH/LL - и старший и младший байт передаются каждый по своей половине шины данных и не переставляются. Таблица 3.1. Задатчик на шине | Ресурс, к которому осуществляется доступ | Завершение цикла | Размер данных | -SBHE | SA0 | Размер данных | CS16 | Размер данных | Маршрут чтение запись | | 8 | 1 | 0 | 8 | 1 | 8 | LL | LL | | 0 | 1 | 8 | 1 | 8 | H | H>L | | 1 | 0 | 16 | 0 | 8 | LL | LL | | 0 | 1 | 16 | 0 | 8 | HH | HH | 16 | 0 | 0 | 8 | 1 | 8 | LL | LL | | 0 | 0 | 16 | 0 | 16 | HH/LL | HH/LL | На рис. 3.2 показано место перестановщика байтов для циклов пересылки данных в режиме ПДП. В табл. 3.2 суммируется вся информация по перестановке байтов во время циклов ПДП. Перестановка байтов осуществляется с шины SD<15...0> (HIGH BYTE) на SD<7...0> (LOW BYTE) или наоборот. В таблице перенос байта с шины SD<15...0> на SD<7...0> обозначается как H > L, наоборот - L < H. LL означает, что байт по младшей половине шины данных не переставляется, HH - что байт по старшей половине шины не переставляется. HH/LL - и старший и младший байт передаются каждый по своей половине шины данных и не переставляются.
Таблица 3.2. Устройство ввода/вывода | Контроллер ПДП | Память | Завершение цикла | Размер данных | -SBHE | SA0 - | Размер данных | -MEM CS16 | Размер данных | Маршрут чтение запись | 8 | 1 | 0 | 8 | 1 | 8 | LL | LL | | 1 | 0 | 16 | 0 | 8 | LL | LL | | Х | 1 | 8 | 1 | 8 | LL | LL | | Х | 1 | 16 | 0 | 8 | H>L | H | 16 | 0 | 0 | 8 | 1 | 8 | Запрещено | | 0 | 0 | 16 | 0 | 16 | HH/LL | HH/LL | |