ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6728
Скачиваний: 8
208 Глава 3. Цифровой логический уровень
ний, в том числе игр, для которых потребовалось полноэкранное видеоизображе-
ние, и ситуация коренным образом изменилась.
Давайте произведем небольшое вычисление. Рассмотрим монитор 1024x768 для
цветного движущегося изображения (3 байта/пиксел). Одно экранное изображе-
ние содержит 2,25 Мбайт данных. Для показа плавных движений требуется 30 кадров
в секунду, и следовательно, скорость передачи данных должна быть 67,5 Мбайт/с.
В действительности дело обстоит гораздо хуже, поскольку чтобы передать изоб-
ражение, данные должны перейти с жесткого диска, компакт-диска или DVD-
диска через шину в память. Затем данные должны поступить в графический адап-
тер (тоже через шину). Таким образом, пропускная способность шины должна быть
135 Мбайт/с, и это только для передачи видеоизображения. Но в компьютере есть
еще центральный процессор и другие устройства, которые тоже должны пользо-
ваться шиной, поэтому пропускная способность должна быть еще выше.
Максимальная частота передачи данных шины ISA — 8,33 МГц. Она способна
передавать два байта за цикл, поэтому ее максимальная пропускная способность
составляет 16,7 Мбайт/с. Шина EISA может передавать 4 байта за цикл. Ее про-
пускная способность достигает 33,3 Мбайт/с. Ясно, что ни одна из них совершен-
но не соответствует тому, что требуется для полноэкранного видео.
В 1990 году компания Intel разработала новую шину с гораздо более высокой
пропускной способностью, чем у шины EISA. Эту шину назвали
PCI (Peripheral
Component Interconnect— взаимодействие периферийных компонентов).
Ком-
пания Intel запатентовала шину PCI и сделала все патенты всеобщим достоянием,
так что любая компания могла производить периферические устройства для этой
шины без каких-либо выплат за право пользования патентом. Компания Intel также
сформировала промышленный консорциум Special Interest Group, который дол-
жен был заниматься дальнейшими усовершенствованиями шины PCI. Все эти дей-
ствия привели к тому, что шина PCI стала чрезвычайно популярной. Фактически
в каждом компьютере Intel (начиная с Pentium), а также во многих других компью-
терах содержится шина PCI. Даже компания Sun выпустила версию UltraSPARC,
в которой используется шина PCI (это компьютер UltraSPARC Ш). Подробно шина
PCI описывается в книгах [128,136].
Первая шина PCI передавала 32 бита за цикл и работала с частотой 33 МГц
(время цикла 30 не), общая пропускная способность составляла 133 Мбайт/с.
В 1993 году появилась шина PCI 2.0, а в 1995 году - PCI 2.1. Шина PCI 2.2 подхо-
дит и для портативных компьютеров (где требуется экономия заряда батареи).
Шина PCI работает с частотой 66 МГц, способна передавать 64 бита за цикл, а ее
общая пропускная способность составляет 528 Мбайт/с. При такой производитель-
ности полноэкранное видеоизображение вполне достижимо (предполагается, что
диск и другие устройства системы справляются со своей работой). Во всяком
случае, шина PCI не будет ограничивать производительность системы.
Хотя 528 Мбайт/с — достаточно высокая скорость передачи данных, все же здесь
есть некоторые проблемы. Во-первых, этого не достаточно для шины памяти. Во-
вторых, эта шина не совместима со всеми старыми картами ISA. По этой причине
компания Intel решила разрабатывать компьютеры с тремя и более шинами, как
показано на рис. 3.47. Здесь мы видим, что центральный процессор может обмени-
ваться информацией с основной памятью через специальную шину памяти и что
Примеры шин
209
шину ISA можно связать с шиной PCI. Такая архитектура используется фактически
во всех компьютерах Pentium II, поскольку она удовлетворяет всем требованиям.
Ключевыми компонентами данной архитектуры являются мосты между шина-
ми (эти микросхемы
выпускает
компания
Intel — отсюда такой
интерес к проек-
ту). Мост PCI связывает центральный процессор, память и шину PCI. Мост ISA
связывает шину PCI с шиной ISA, а также поддерживает один или два диска IDE.
Практически все системы Pentium II выпускаются с одним или несколькими сво-
бодными слотами PCI для подключения дополнительных высокоскоростных пе-
риферийных устройств и с одним или несколькими слотами ISA для подключе-
ния низкоскоростных периферийных устройств.
Преимущество системы, изображенной на рис. 3.47, состоит в том, что шина между
центральным процессором и памятью имеет высокую пропускную способность, шина
PCI также обладает высокой пропускной способностью и хорошо подходит для свя-
зи с быстрыми периферийными устройствами (SCSI-дисками, графическими адап-
терами и т. п.), и при этом еще могут использоваться старые платы ISA. На рисун-
ке также изображена шина USB, которую мы будем обсуждать ниже в этой главе.
Мы проиллюстрировали систему с одной шиной PCI и одной шиной ISA. На
практике может использоваться и по несколько шин каждого типа. Существуют
специальные мосты, которые связывают две шины PCI, поэтому в больших систе-
мах может содержаться несколько отдельных шин PCI (2 и более). В системе так-
же может быть несколько мостов (2 и более), которые связывают шину PCI и шину
ISA, что дает возможность использовать несколько шин ISA.
Кэш-
память
второго
уровня
Процессор
Шина памяти
Основная
память
Шина PCI
п
USB
Мышь
•
Клавиатура
Графический
адаптер
Свободное
гнездо PCI
Монитор
Шина ISA
ппп
1
Модем
I
Звуковая
карта
1
LJULJ
Принтер
Свободное
гнездо ISA
Рис. 3.47. Архитектура типичной системы Pentium И. Чем толще стрелка, обозначающая шину,
тем выше пропускная способность этой шины
2 1 0 Глава 3. Цифровой логический уровень
Было бы неплохо, если бы существовал только один тип плат PCI. К сожале-
нию, это не так. Платы различаются по потребляемой мощности, разрядности и син-
хронизации. Старые компьютеры обычно используют напряжение 5 В, а новые —
3,3 В, поэтому шина PCI поддерживает и то и другое напряжение. Коннекторы
одни и те же (они отличаются только двумя кусочками пластмассы, которые пред-
назначены для того, чтобы невозможно было вставить плату на 5 В в шину PCI на
3,3 В и наоборот). К счастью, существуют и универсальные платы, которые под-
держивают оба напряжения и которые можно вставить в любой слот. Платы разли-
чаются не только по мощности, но и по разрядности. Существует два типа плат:
32-битные и 64-битные. 32-битные платы содержат 120 выводов; 64-битные платы
содержат те же 120 выводов плюс 64 дополнительных вывода (аналогично тому,
как шина IBM PC была расширена до 16 битов, см. рис. 3.46). Шина PCI, под-
держивающая 64-битные платы, может поддерживать и 32-битные, но обратное не
верно. Наконец, шины PCI и соответствующие платы могут работать с частотой
или 33 МГц, или 66 МГц. В обоих случаях контакты идентичны. Различие со-
стоит в том, что один из выводов связывается либо с источником питания, либо
с «землей».
Шины PCI являются синхронными, как и все шины PC, восходящие к первой
модели IBM PC. Все транзакции в шине PCI осуществляются между задающим и
подчиненным устройствами. Чтобы не увеличивать число выводов на плате, ад-
ресные и информационные линии объединяются. При этом достаточно 64 выво-
дов для всей совокупности адресных и информационных сигналов, даже если PCI
работает с 64-битными адресами и 64-битными данными.
Объединенные адресные и информационные выводы функционируют следу-
ющим образом. При операции считывания во время цикла 1 задающее устрой-
ство передает адрес на шину. Во время цикла 2 задающее устройство удаляет
адрес и шина реверсируется таким образом, чтобы подчиненное устройство могло
ее использовать. Во время цикла 3 подчиненное устройство выдает запрашивае-
мые данные. При операциях записи шине не нужно переключаться, поскольку
задающее устройство помещает на нее и адрес, и данные. Тем не менее минималь-
ная транзакция занимает три цикла. Если подчиненное устройство не может дать
ответ в течение трех циклов, то вводится режим ожидания. Допускаются пересылки
блоков неограниченного размера, а также некоторые другие типы циклов шины.
Арбитраж шины PCI
Чтобы передать по шине PCI какой-нибудь сигнал, устройство сначала должно
получить к ней доступ. Шина PCI управляется централизованным арбитром, как
показано на рис. 3.48. В большинстве случаев арбитр шины встраивается в один из
мостов между шинами. От каждого устройства PCI к арбитру тянутся две специ-
альные линии. Одна из них (REQ#) используется для запроса шины, а вторая
(GNT#) — для получения разрешения на доступ к шине.
Чтобы сделать запрос на доступ к шине, устройство PCI (в том числе и цент-
ральный процессор) устанавливает сигнал REQ# и ждет, пока арбитр не выдаст
сигнал GNT#. Если арбитр выдал сигнал GNT#, то устройство может использо-
Примеры шин
211
вать шину в следующем цикле. Алгоритм, которым руководствуется арбитр, не
зависит от технических характеристик шины PCI. Допустим арбитраж по кругу,
по приоритету и другие схемы арбитража. Хороший арбитр должен быть справед-
лив, чтобы не заставлять некоторые устройства ждать целую вечность.
1
1
1
Арбитр шины PCI
1 1
ш Z
к
о
Устройство
PCI
1
ш Z
QL
О
Устройство
PCI
1
8
£
Ш Z
СИ
О
Устройство
PCI
S
£
ш Z
К
О
Устройство
PCI
Рис. 3.48. В шине PCI используется централизованный арбитр
Шина предоставляется для одной транзакции, хотя продолжительность этой
транзакции теоретически произвольна. Если устройству нужно совершить вторую
транзакцию и ни одно другое устройство не запрашивает шину, оно может занять
шину снова, хотя обычно между транзакциями нужно вставлять пустой цикл. Од-
нако при особых обстоятельствах (при отсутствии конкуренции на доступ к шине)
устройство может совершать последовательные транзакции без пустых циклов
между ними. Если задающее устройство осуществляет очень длительную пере-
дачу, а какое-нибудь другое устройство выдало запрос на доступ к шине, арбитр
может сбросить линию GNT#. Предполагается, что задающее устройство следит
за линией GNT#. Если линия сбрасывается, устройство должно освободить шину
в следующем цикле. Такая система позволяет осуществлять очень длинные пере-
дачи (что весьма рационально) при отсутствии конкуренции на доступ к шине,
однако при этом она быстро реагирует на запросы шины, поступающие от других
устройств.
Сигналы шины PCI
Шина PCI содержит ряд обязательных сигналов (табл. 3.5) и ряд факультатив-
ных сигналов (табл. 3.6). Оставшиеся выводы используются для питания, «земли»
и разнообразных связанных сигналов. В столбцах «Задающее устройство» и «Под-
чиненное устройство» указывается, какое из устройств устанавливает сигнал при
обычной транзакции. Если сигнал выдается другим устройством (например, CLK),
оба столбца остаются пустыми.
Теперь давайте рассмотрим каждый сигнал шины PCI отдельно. Начнем с обя-
зательных (32-битных) сигналов, а затем перейдем к факультативным (64-битным).
Сигнал CLK запускает шину. Большинство сигналов совпадают с ним во времени.
В отличие от шины ISA, в шине PCI транзакция начинается на заднем фронте сиг-
нала CLK, то есть не в начале цикла, а в середине.
212
Глава 3. Цифровой логический уровень
Таблица 3.5.
Обязательные сигналы шины PCI
CLK
AD
PAR
С/ВЕ#
FRAME*
IRDY#
IDS EL
DEVSEL#
TRDY#
1
32
1
4
1
1
1
1
1
X
X
X
X
X
X
Сигнал Количество Задающее Подчиненное Комментарий
линий устройство устройство
Тактовый генератор (33 МГц
или 66 МГц)
х Объединенные адресные
и информационные линии
Бит четности для адреса или данных
1} команда шине
2) битовый массив, который
показывает, какие байты из слова
нужно считать (или записать)
Указывает, что установлены сигналы
AD И С/ВЕ
При чтении: задающее устройство
готово принять данные; при записи:
данные находятся в шине
Считывание пространства
конфигураций
х Подчиненное устройство распознало
свой адрес и ждет сигнала
х При чтении: данные находятся
на линиях AD; при записи:
подчиненное устройство готово
принять данные
х Подчиненное устройство требует
немедленно прервать текущую
транзакцию
Обнаружена ошибка четности данных
Обнаружена ошибка четности адреса
или системная ошибка
Арбитраж шины: запрос на доступ
к шине
Арбитраж шины: предоставление шины
Перезагрузка системы и всех устройств
Сигналы AD (их 32) нужны для адресов и данных (для передач по 32 бита).
Обычно адрес устанавливается во время первого цикла, а данные — во время третье-
го. Сигнал PAR — это бит четности для сигнала AD. Сигнал С/ВЕ# выполняет две
функции. Во время первого цикла он содержит команду (считать одно слово, счи-
тать блок и т. п.). Во время второго цикла он содержит массив из 4 битов, кото-
рый показывает, какие байты 32-битного слова действительны. Используя сигнал
С/ВЕ#, можно считывать 1, 2 или 3 байта из слова, а также все слово целиком.
Сигнал FRAME# устанавливается задающим устройством, чтобы начать транз-
акцию. Этот сигнал сообщает подчиненному устройству, что адрес и команды в
данный момент действительны. При чтении одновременно с сигналом FRAME#
устанавливается сигнал IRDY#. Он сообщает, что задающее устройство готово
принять данные. При записи сигнал IRDY# устанавливается позже, когда данные
уже находятся в шине.
STOP# 1
PERR# 1
SERR# 1
REQ#
1
GNT# 1
RST# 1