Постановка в очередь выполняется через механизм сообщений, при этом очередной процесс можно поставить в очередь «по-честному», а можно «пропихнуть» вне очереди: процесс, поставленный в очередь с сообщением Head Of Queue Tag , будет выполняться сразу после завершения текущего активного процесса. Процессы, поставленные в очередь с сообщением Simple Queue Tag , исполняются ЦУ в порядке, который оно сочтет оптимальным. Процесс, поставленный в очередь с сообщением Ordered Queue Tag , будет исполняться последним. ИУ может удалить процесс из очереди, сославшись на него по тегу. Изменение порядка выполнения команд ЦУ не касается порядка в цепочке команд, поскольку цепочка принадлежит одному процессу, а в очередь ставятся именно процессы.
Здесь мы не рассматриваем различные ситуации, приводящие к отклонениям от нормальной последовательности событий интерфейса. К ним относятся некорректные соединения со стороны ИУ, выбор несуществующего ЛУ, неожиданные выборки ИУ, округление параметров, реакция на асинхронные события и т. п.
Глава 6
Шины и карты расширения
Шины расширения (Expansion Bus) являются средствами подключения системного уровня: они позволяют адаптерам и контроллерам непосредственно использовать системные ресурсы PC — пространства памяти и ввода-вывода, прерывания, каналы прямого доступа к памяти. Устройства, подключенные к шинам расширения, могут и сами управлять этими шинами, получая доступ к остальным ресурсам компьютера (обычно к ячейкам памяти). Такое прямое управление (bus mastering) позволяет разгружать центральный процессор и добиваться высоких скоростей обмена данными. Шины расширения механически реализуются в виде слотов (щелевых разъемов) или штырьковых разъемов; для них характерна малая длина проводников, что позволяет достигать высоких частот работы. Эти шины могут и не выводиться на разъемы, но использоваться для подключения устройств в интегрированных системных платах.
В современных компьютерах основной шиной расширения является PCI; ее дополняет порт AGP. Шина ISA из настольных компьютеров уходит, но она сохраняет свои позиции в промышленных и встраиваемых компьютерах, как в традиционном слотовом варианте, так и в «бутербродном» варианте PC/104. В блокнотных компьютерах широко применяются слоты PCMCIA с шинами PC Card и Card Bus. Шина LPC является современным дешевым средством подключения нересурсоемких устройств на системной плате. Все эти шины подробно рассматриваются в данной главе. Информацию по отжившим шинам MCA, EISA, VLB можно найти в литературе [1, 2, 5].
Изготовителям карт расширения приходится точно следовать протоколам шины, включая жесткие частотные и нагрузочные параметры, а также временные диаграммы. Отклонения приводят к несовместимости с некоторыми системными платами. Если при подключении к внешним интерфейсам это ведет к неработоспособности только самого устройства, то некорректное подключение к системной шине может блокировать работу всего компьютера. Следует также учитывать ограниченность ресурсов PC. Самые дефицитные из них — линии запросов прерываний; проблема прерываний, известная по шине ISA, так и не была радикально решена с переходом на PCI. Другой дефицит — каналы прямого доступа шины ISA, используемые и для прямого управления шиной, — в шине PCI преодолен. Доступное адресное пространство памяти и портов ввода-вывода, в котором было тесновато абонентам шины ISA, в PCI существенно расширено. Проблемы распределения ресурсов на шинах решаются по-разному, но чаще всего применяется технология PnP.
В табл. 6.1 дана характеристика стандартных шин расширения PC.
Таблица 6.1. Характеристики шин расширения
Шина |
Пропускная способность, Мбайт/с¹ |
Каналы DMA |
Bus-Master |
ACFG² |
Разрядность данных |
Разрядность адреса |
Частота, МГЦ |
ISA-8 |
4 |
3 |
- |
- |
8 |
20 |
8 |
ISA-16 |
8 |
7 |
+ |
- |
16 |
24 |
8 |
LPC |
6,7 |
7 |
+ |
- |
8/16/32 |
32 |
33 |
EISA |
33,3 |
7 |
+ |
+ |
32 |
32 |
8,33 |
MCA-16 |
16 |
- |
+ |
+ |
16 |
24 |
10 |
MCA-32 |
20 |
- |
+ |
+ |
32 |
32 |
10 |
VLB |
132 |
- |
(+) |
- |
32/64 |
32 |
33-50(66) |
PCI |
132/264 |
- |
+ |
+ |
32/64 |
32 |
33/66 |
PCI–X |
532/1064 |
- |
+ |
+ |
32/64 |
32/64 |
33/66 |
AGP 1x/2x/4x |
266/532/1064 |
- |
+ |
+ |
32 |
32/64 |
66 |
PCMCIA |
10/20 |
+ |
- |
+ |
8/16 |
26 |
10 |
Card Bus |
132 |
- |
+ |
+ |
32 |
32 |
33 |
¹ Указана максимальная пропускная способность. Реальная примерно в 2 раза ниже за счет прерываний, регенерации и протокольных процедур.
Читать дальше