|
|
|
|
Шина, как известно, представляет из себя, собственно, набор проводов (линий), соединяющий различные компоненты компьютера для подвода к ним питания и обмена данными. В "минимальной комплектации" шина имеет три типа линий:
Устройства, подключенные к шине, делятся на две основных категории - bus masters и bus slaves. Bus masters - это устройства, способные управлять работой шины, т.е инициировать запись/чтение и т.д. Bus slaves - соответственно, устройства, которые могут только отвечать на запросы. Правда, есть еще "интеллектуальные слуги" (intelligent slaves), но мы их пока для ясности замнем. Ну вот, собственно, и все, что нужно знать про шины для того, чтобы понять, о чем пойдет речь дальше.
Компания IBM в 1981 представила новую шину для использования в компьютерах серии PC/XT. Шина была крайне проста по дизайну, содержала 53 сигнальных линии и 8 линий питания и представляла собой синхронную 8-битную шину с контролем четности и двухуровневыми прерываниями (trigger-edge interrupts), при использовании которых устройства запрашивают прерывания, изменяя состояние линии соответствующего IRQ с 0 на 1 или обратно. Такая организация запросов прерываний позволяет использовать каждое прерывание только одному устройству. Кроме того, шина не поддерживала дополнительных bus masters, и единственными устройствами, управляющими шиной, были процессор и контроллер DMA на материнской плате.
62-контактный слот включал 8 линий данных, 20 линий адреса (А0-А19), 6 линий запроса прерываний (IRQ2-IRQ7). Таким образом, объем адресуемой памяти составлял 1 Мбайт, и при частоте шины 4.77 МГц пропускная способность достигала 1.2 Мбайта/сек.
Недостатки шины, вытекающие из простоты конструкции, очевидны. Поэтому для использования в компьютерах IBM-AT ('Advanced Technology') в 1984 году была представлена новая версия шины, впоследствии названной ISA. Сохраняя совместимость со старыми 8-битными платами расширения, новая версия шины обладала рядом существенных преимуществ, как то:
Реализация bus mastering не была особенно удачной, поскольку, например, запрос на освобождение шины ('Bus hang-off') к текущему bus master обрабатывался несколько тактов, к тому же каждый master должен был периодически освобождать шину, чтобы дать возможность провести обновление памяти (memory refresh), или сам проводить обновление. Для обеспечения обратной совместимости с 8-битными платами большинстиво новых возможностей было реализовано путем добавления новых линий . Так как АТ был построен на основе процессора Intel 80286, который был существенно быстрее, чем 8088, пришлось добавить генератор состояний ожидания (wait-state generator). Для обхода этого генератора используется свободная линия (контакт В8 NOWS-'No Wait State') исходной 8-битной шины. При установке этой линии в 0 такты ожидания пропускаются. Использование в качестве NOWS линии исходной шины позволяло разработчикам делать как 16-битные, так и 8-битные "быстрые" платы.
Новый слот содержал 4 новых адресных линии (LA20-LA23) и копии трех младших адресных линий (LA17-LA19). Необходимость в таком дублировании возникла из-за того, что адресные линии ХТ были линиями с задержкой (latched lines), и эти задержки приводили к снижению быстродействия периферийных устройств. Использование дублирующего набора адресных линий позволяло 16-битной карте в начале цикла определить, что к ней обращаются, и послать сигнал о том, что она может осуществлять 16-битный обмен. На самом деле, это ключевой момент в обеспечении обратной совместимости. Если процессор пытается осуществить 16-битный доступ к плате, он сможет это сделать только в том случае, если получит от нее соответствующий отклик IO16. В противном случае чипсет инициирует вместо одного 16-битного цикла два 8-битных. И все бы было хорошо, но адресных линий без задержки всего 7, поэтому платы, использующие диапазон адресов меньший, чем 128Кбайт, не могли определить, находится ли переданный адрес в их диапазоне адресов, и, соответственно, послать отклик IO16. Таким образом, многие платы, в том числе платы EMS, не могли использовать 16-битный обмен.
Несмотря на отсутствие официального стандарта и технических "изюминок" шина ISA превосходила потребности среднего пользователя образца 1984 года, а "засилье" IBM AT на рынке массовых компьютеров привело к тому, что производители плат расширения и клонов AT приняли ISA за стандарт. Такая популярность шины привела к тому, что слоты ISA до сих пор присутствуют на всех системных платах, и платы ISA до сих производятся. Правда, Microsoft в спецификации PC99 предусматривает отказ от ISA, но, как говорится, до этого нужно еще дожить.
`