Шины PCI, PCI Express и ISA

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

Достигается это за счет возможности установить в компьютер ту или иную карту (плату) расширения. Например, если вы профессионально работаете со звуком, то просто устанавливаете звуковую карту соответствующего уровня; если вам требуется организовать подключение к беспроводной точке доступа, вы инсталлируете сетевую карту Wi-Fi и т.п.

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

Пока что большинство карт расширения для связи с остальными компонентами компьютера используют шину PCI. Физически это означает, что карта устанавливается в специальный разъем — слот — шины PCI на материнской плате.

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

Зато появилась новая последовательная шина PCI Express («обычная» PCI и ISA — параллельные шины). Современные технологии позволили добиться высокой производительности при использовании минимального числа сигнальных линий (и, как следствие, числа контактов в разъеме). К тому же PCI Express весьма гибка — если для какой-то карты расширения не хватает быстродействия одной линии, можно объединить несколько линий PCI Express в одном разъеме. В остальном это такая же шина для подключения карт расширения. Более того, на программном уровне она совместима с «обычной» PCI.

Рассмотрим, как происходит взаимодействие карт расширения с остальными компонентами компьютера. Основную роль здесь играют прерывания (IRQ — Interrupt ReQuest). Если какой-либо карте необходимо передать или получить данные, она выставляет выделенное ей прерывание в активное значение, «сообщая» таким образом процессору о своих «потребностях». Процессор, обнаружив активное прерывание, прерывает работу с текущими данными и выполняет обработку запроса карты расширения, после чего «возвращается» к прерванной задаче.

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

При работе в 32-х разрядном режиме адресное пространство современных карт расширения обычно находится в диапазоне между 3-м и 4-м Гбайтом. Естественно, даже если у вас установлено 4 Гбайта оперативной памяти, вы не сможете использовать зарезервированные для карт адреса для хранения произвольных данных. Именно в этом лежит проблема многих 32-х разрядных операционных систем, «видящих», максимум, 3.5 Гбайта оперативной памяти. В 64-х разрядном режиме адресное пространство карт расширения в любом случае лежит выше границ имеющейся оперативной памяти, снимая данную проблему.

В «классическом» варианте имеется 16 прерываний. Часть из них жестко назначена определенным устройствам, остальные же могут использовать карты расширения.

Номер прерыванияИспользование картамиНазначение
0Системный таймер
1Используется контроллером клавиатуры
2Дублирует прерывание 9
3+Обычно используется для порта COM2
4+Обычно используется для порта COM1
5+Свободно, часто используется звуковыми картами для совместимости с Sound Blaster Pro, может использоваться контроллером USB
6Используется контроллером флоппи-дисковода
7+Обычно используется для порта LPT
8Часы реального времени
9+Используется системой расширенного конфигурирования и управления питанием (каскадировано с прерыванием 2), также может использоваться контроллером USB или видеокартой
10+Свободно
11+Обычно используется видеокартой
12+Используется мышью, подключаемой к порту PS/2, при ее отсутствии может использоваться другими устройствами
13Используется сопроцессором
14+Обычно используется для первичного канала IDE-контроллера
15+Обычно используется для вторичного канала IDE-контроллера

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

При использовании расширенного контроллера прерываний, атрибута любого современного компьютера, количество прерываний увеличивается до 24, что существенно упрощает наращивание возможностей компьютера за счет карт расширения и интегрированных контроллеров. К тому же современные карты расширения для шин PCI и PCI Express, как, впрочем, и многие аппаратные компоненты компьютера, способны разделять одну линию прерывания с другими устройствами, поэтому часто на одном прерывании «сидит» несколько устройств.

Номер прерыванияИспользование картамиНазначение
0Системный таймер
1Используется контроллером клавиатуры
2Дублирует прерывание 9
3+Обычно используется для порта COM2
4+Обычно используется для порта COM1
5+Свободно
6Используется контроллером флоппи-дисковода
7+Обычно используется для порта LPT
8Часы реального времени
9Используется системой расширенного конфигурирования и управления питанием (каскадировано с прерыванием 2)
10+Свободно
11+Обычно используется видеокартой
12+Используется мышью, подключаемой к порту PS/2, при ее отсутствии может использоваться другими устройствами
13Используется сопроцессором
14+Обычно используется для первичного канала IDE-контроллера
15+Обычно используется для вторичного канала IDE-контроллера
16+Как правило используется контроллером USB
17+Обычно используется интегрированной звуковой подсистемой (AC'97 или HDA)
18+Как правило используется контроллером USB
19+Как правило используется контроллером USB
20+Обычно используется интегрированной сетевой картой
21+Свободно
22+Свободно
23+Обычно используется контроллером USB 2.0

Физически контроллер прерывания «общается» с картой расширения посредством 4-х («классический» вариант) или 8-и (современные решения) сигнальных линий. Для начала рассмотрим «классический» вариант реализации контроллера.

Карта расширения для шины PCI может генерировать до 4-х запросов на прерывания (INT A#—INT D#). Основным является INT A# (если он занят или карте требуется более одного прерывания, используется INT B#, за ним INT C# и, в последнюю очередь, INT D#). Сигнальные линии по возможности разводятся так, чтобы каждой карте расширения досталась свой основной запрос на прерывание (INT A#). Но, учитывая, что на полноразмерных материнских платах слотов расширения для шины PCI обычно больше четырех, плюс, имеется слот AGP для графической карты, на плате могут быть реализованы интегрированные устройства, некоторые слоты оказываются совмещенными по линиям контроллера прерываний. Приведем пример практической реализации соответствия сигнальных линий контроллера прерываний и запросов.

СлотыСигнальные линии
PIRQ 0PIRQ 1PIRQ 2PIRQ 3
AGPINT A#INT B#  
PCI 1INT A#INT B#INT C#INT D#
PCI 2INT D#INT A#INT B#INT C#
PCI 3INT C#INT D#INT A#INT B#
PCI 4INT B#INT C#INT D#INT A#
PCI 5INT B#INT C#INT D#INT A#

На разных материнских платах совмещенными оказываются разные слоты. Это могут быть 4-й и 5-й слоты, как в приведенном примере, 1-й и 5-й, 2-й и 5-й и т.п., все зависит от производителя. Поэтому таблицу соответствия сигнальных линий контроллера прерываний и запросов лучше всегда уточнять в руководстве к материнской плате.

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

УстройстваСигнальные линии
PIRQ 1PIRQ 2PIRQ 3PIRQ 4PIRQ 5PIRQ 6PIRQ 7PIRQ 8
Слот AGPINT A#INT B#      
Контроллер USB 1INT A#       
Подсистема ACPI INT B#      
Контроллер USB 2   INT B#    
Подсистема AC’97 INT B#      
Контроллер LAN    INT A#   
Контроллер USB 3  INT C#     
EHCI-контроллер       INT D#
Слот PCI 1    INT D#INT A#INT B#INT C#
Слот PCI 2    INT C#INT B#INT A#INT D#
Слот PCI 3INT D#INT C#INT A#INT B#    
Слот PCI 4  INT B#INT A# INT C#INT D# 
Слот PCI 5INT C#INT A#  INT D#  INT B#
Слот PCI 6  INT A# INT B#INT D#INT C# 

Кстати, в некоторых руководствах к материнским платам в таблице соответствия сигнальных линий контроллера прерываний и запросов указываются не все четыре запроса на прерывания (INT A#—INT D#), а только основной INT A#.

УстройстваСигнальные линии
PIRQ 1PIRQ 2PIRQ 3PIRQ 4PIRQ 5PIRQ 6PIRQ 7PIRQ 8
Слот 1 шины PCI    shared   
Слот 2 шины PCI     shared  
Слот 3 шины PCI      shared 
Слот PCI Express 16xshared       
Слот 1 шины PCI Express 1xshared       
Слот 2 шины PCI Express 1x shared      
Слот 3 шины PCI Express 1x  shared     
Интегрированная сетевая карта   shared    
Контроллер SATA в режиме RAID/AHCIshared       
Контроллер IDEshared       
Контроллер IEEE1394     shared  
Интегрированный звук HDA      shared 
1-й USB 2.0 EHCI-контроллер       shared
2-й USB 2.0 EHCI-контроллер  shared     
1-й USB-контроллер       shared
2-й USB-контроллер      shared 
3-й USB-контроллер  shared     
4-й USB-контроллерshared       
5-й USB-контроллер shared      
Контроллер SATA   shared    

Еще один механизм, который может применяться картой расширения, называется прямым доступом к памяти (DMA — Direct Memory Access). Он позволяет карте обмениваться данными с оперативной памятью напрямую, минуя процессор. Всего имеется 8 каналов, так же, как и в случае с прерываниями, один канал может использоваться несколькими устройствами.

Номер каналаИспользование картамиНазначение
0+Свободно
1+Свободно, часто используется звуковыми картами для совместимости с Sound Blaster Pro
2Используется контроллером флоппи-дисковода
3+Обычно используется для порта LPT, функционирующего в режиме ECP или ECP/EPP
4Используется самим контроллером прямого доступа к памяти
5+Свободно
6+Свободно
7+Свободно

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

Опубликовано 04.12.2008.

Добавить в:

Служебная информация:

время выполнения: 0.0181 с;

количество запросов: 3.