Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архитектура компьютера - Таненбаум Э

..pdf
Скачиваний:
485
Добавлен:
24.05.2014
Размер:
5.67 Mб
Скачать

Примеры центральных процессоров

203

Если требуемой строки нет в кэш-памяти второго уровня, ее нужно вызвать из основной памяти через интерфейс UPA. UPA в системе UltraSPARC II управляется централизованным контроллером. Туда поступают адресные сигналы и сигналы управления от центрального процессора (или процессоров, если их больше чем один). Чтобы получить доступ к памяти, центральный процессор должен сначала получить разрешение воспользоваться шиной. Когда шина предоставляется процессору, он получает сигнал с адресных выводов, определяет тип запроса и передает сигнал по нужному адресному выводу. (Эти выводы двунаправлены, поскольку другим процессорам в системе UltraSPARC II нужен доступ к отдаленным блокам кэш-памяти.) Адрес и тип цикла шины передаются на адресные выводы за два цикла, причем в первом цикле выдается строка, а во втором — столбец, как мы видели на рис. 3.30.

В ожидании результатов центральный процессор вполне может заниматься другой работой. Например, отсутствие нужной команды в кэш-памяти вовсе не мешает выполнению одной или нескольких команд, которые уже вызваны, и каждая из которых может обращаться к данным не из кэш-памяти. Таким образом, сразу несколько транзакций к UPA могут ожидать выполнения. Система UPA может справляться с двумя независимыми потоками транзакций (обычно это чтение и запись), каждый поток проходит с несколькими задержками. Задача централизованного контроллера — следить за всем этим и производить обращения к памяти в наиболее рациональном порядке.

Данные из памяти могут поступать блоками по 8 байтов. Они содержат 16-бит- ный код с исправлением ошибок для большей надежности. Можно запрашивать весь блок кэш-памяти, 8 байтов или даже меньше. Все входные данные поступают в буфер UDB и хранятся там. Буфер UDB нужен для того, чтобы дать возможность центральному процессору и памятиработать асинхронно. Например, если центральному процессору необходимо записать слово или строку кэш-памяти в основную память, он может не ждать доступа к UPA, а сразу записать данные в буфер UDB, который доставит их в память позднее. UDB также генерирует код с исправлением ошибок. Отметим, что описание процессоров UltraSPARC II и Pentium II в этой книге сильно упрощено. Тем не менее мы изложили основную суть их работы.

PicoJava II

Pentium II и UltraSPARC II — процессоры с высокой производительностью, которые были разработаны для построения быстрых персональных компьютеров и рабочих станций. Существуют и другие компьютеры: так называемые встроенные системы. Именно их мы и рассмотрим кратко в этом разделе.

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

204

Глава 3. Цифровой логический уровень

Традиционно встроенные процессоры программировались на языке ассемблер, но так как с течением времени приборы усложнялись и последствия сбоев программного обеспечения становились более серьезными, появились другие подходы. Особенно удобно использовать в качестве языка программирования для встроенных систем язык Java, поскольку он относительно прост и программы занимают мало места. К достоинствам также можно отнести независимость базовых программных средств. Однако у этого языка есть и недостатки. Во-первых, чтобы использовать язык Java во встроенных системах, требуется большой интерпретатор для выполнения кодаJVM. (Программу на языкеJava в кодJVM преобразует специальный компилятор.) Во-вторых, процесс интерпретации занимает много времени.

Чтобы разрешить эту проблему, Sun и другие компании разработали процессоры со встроенным набором командJVM. При таком подходе сочетаются и простота использования языкаJava, и мобильность, и небольшой размер бинарного кода JVM, порождаемого компилятором, и высокая скорость выполнения операций, которая достигается благодаря особенностям аппаратного обеспечения. В этом разделе мы рассмотрим один из процессоров, который был разработан специально для встроенных систем.

Речь идет о процессоре picojava II, который составляет основу микросхемы microjava 701. Микросхема была разработана компанией Sun, но другие компании также имеют право использовать эту разработку. Это однокристальный процессор с двумя интерфейсами шины: один из них предназначен для шины памяти шириной в 64 бита, а другой — для шины PCI, как показано на рис. 3.45. Как Pentium II и UltraSPARC II, данный процессор может содержать кэш-память первого уровня (до 16 Кбайт для команд и до 16 Кбайт для данных). Но, в отличие от этих двух процессоров, он не имеет кэш-памяти второго уровня, поскольку низкая стоимость является ключевым параметром при разработке встроенных систем. Ниже мы рассмотрим микросхему microjava II 701. Она небольшого размера: содержит всего 2 млн транзисторов плюс еще 1,5 млн для кэш-памяти.

 

 

Процессор

 

 

 

 

16

Microjava 701

 

 

 

Программируемые „

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

линии ввода-вывода

 

Кэш-

,—

 

 

 

 

 

 

 

 

 

 

память

I

Команды

Основная

 

 

п е р в о г о

I

Данные

память

 

 

 

Шина PCI

 

уровня

I—-

 

 

 

Шина памяти

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¥

Рис. 3.45. Система microjava H 701

На рис. 3.45 видны три особенности микросхемы. Во-первых, в микросхеме microjava 701 используется шина PCI (на частоте 33 МГц или 66 МГц). Эта шина была разработана компанией Intel для использования в системах Pentium, но она подходит и для других процессоров. Преимущество шины PCI состоит в том, что она является стандартной, и поэтому не нужно каждый раз разрабатывать новую

Примеры шин

205

шину. Кроме того, существует огромное количество сменных плат для этой шины. Хотя платы PCI и не играют большой роли при создании сотовых телефонов, они могут пригодиться для различных устройств большого размера (например, web-TV).

Во-вторых, система microjava II701 обычно содержит флэш-память. Дело в том, что в прибор должна быть встроена если не вся программа, то по крайней мере ее большая часть. Флэш-память хорошо подходит для хранения программы, поэтому полезно иметь соответствующий интерфейс. Другая микросхема (на рисунке она не показана), которую можно добавить к системе, содержит последовательные и параллельные интерфейсы ввода-вывода.

В-третьих, microjava 701 содержит 16 программируемых линий ввода-вывода, которые можно связать с кнопками, переключателями и лампочками прибора. Например, у микроволновой печи обычно есть клавишная панель с цифрами и несколько дополнительных кнопок, которые можно было бы соединить непосредственно с процессором. Наличие программируемых линий ввода-вывода на процессоре исключает необходимость использования программируемых контроллеров ввода-вывода, что делает прибор проще и дешевле. В микросхему microjava 701 встроено также три программируемых тактовых генератора, которые могут быть полезны, приборы часто работают в реальном времени.

Микросхема microjava 701 выпускается в стандартном корпусе BGA (Ball Grid Array — корпус с выводами в виде сетки крошечных шариков). Он содержит 316 выводов. Из них 59 выводов связаны с шиной PCI. Ниже в этой главе мы рассмотрим шину PCI подробно. Еще 123 вывода предназначеныдля шины памяти, среди них есть 64 двунаправленных вывода для передачи данных, а также отдельные адресные выводы. Остальные выводы используются для управления (7), синхронизирующих импульсов (3), прерываний (11), проверки (10), ввода-вывода(16). Некоторые из оставшихся выводов используются для питания и «земли», а остальные вообще не используются. Другие производители процессора picojava II вправе выбирать иную шину, компоновку и т. д.

У данной микросхемы есть много других особенностей. Она, например, может переходить в режим ожидания (чтобы экономить заряд батарейки), она содержит встроенный контроллер прерывания, она также имеет полную поддержку для стандарта тестирования IEEE 1149.1 JTAG.

Примеры шин

Шины соединяют компьютерную систему в одно целое. В этом разделе мы рассмотрим несколько примеров шин: шину ISA, шину PCI и Universal Serial Bus (универсальную последовательную шину). Шина ISA представляет собой небольшое расширениепервоначальной шины IBM PC. По соображениям совместимости она все еще используется во всех персональных компьютерах Intel'. Однако такие компьютеры всегда содержат еще одну шину, которая работает быстрее, чем шина ISA.

Шина ISA не используется в современных компьютерах. Уже несколько лет компания Intel настоятельно рекомендует разработчикам компьютеров не использовать эту шину. — Примеч. научи, ред.

2 06 Глава 3. Цифровой логический уровень

Это шина PCI. Она шире, чем ISA, и функционирует с более высокой тактовой частотой. Шина USB обычно используется в качестве шины ввода-вывода для периферийных устройств малого быстродействия (например, мыши и клавиатуры). В следующих разделах мы рассмотрим каждую из этих шин по очереди.

Шина ISA

Шина IBM PC была неофициальным стандартом систем с процессором 8088, поскольку практически все производители клонов скопировали ее, чтобы иметь возможность использовать в своих системах платы ввода-вывода от различных поставщиков. Шина содержала 62 сигнальные линии, из них 20 для адреса ячейки памяти, 8 для данных и по одной для сигналов считывания информации из памяти, записи информации в память, считывания с устройства ввода-вывода и записи на устройство ввода-вывода. Имелись и сигналы для запроса прерываний и их разрешения, а также для прямого доступа к памяти. Шина была очень примитивной.

Шина IBM PC встраивалась в материнскую плату персонального компьютера. На плате было несколько разъемов, расположенных на расстоянии 2 см друг от друга. В разъемы вставлялись различные платы. На платах имелись позолоченные выводы (по 31 с каждой стороны), которые физически подходили под разъемы. Через них осуществлялся электрический контакт с разъемом.

Когда компания IBM разрабатывала компьютер PC/AT с процессором 80286, она столкнулась с некоторыми трудностями. Если бы компания разработала совершенно новую 16-битную шину, многие потенциальные покупатели не стали бы приобретать этот компьютер, поскольку ни одна из сменных плат, выпускаемых другими компаниями, не подошла бы к новой машине. С другой стороны, если оставить старую шину, то новый процессор не сможет реализовать все свои возможности (например, возможность обращаться к 16 Мбайт памяти и передавать 16-битные слова).

В результате было принято решение расширить старую шину. Сменные платы персональных компьютеров содержали краевой разъем (62 контакта), но этот краевой разъем проходил не по всей длине платы. Поэтому на плате поместили еще один краевой разъем, смежный с главным. Кроме того, схемы PC/AT были разработаны таким образом, чтобы можно было подсоединять платы обоих типов. На рис. 3.46 изображена шина PC/AT.

Второй краевой разъем шины PC/AT содержит 36 линий. Из них 31 предназначена для дополнительных адресных линий, информационных линий, линий прерывания, каналов ПДП (прямогодоступа к памяти), атакжедля питания и «земли». Остальные связаны с различиями между 8-битными и 16-битными передачами.

Когда компания IBM выпустила серию компьютеров PS/2, пришло время начать разработку шины заново. С одной стороны, это решение было обусловлено чисто техническими причинами (шина PC к тому времени уже устарела). Но с другой стороны, оно было вызвано желанием воспрепятствовать компаниям, выпускавшим клоны, которые в то время заполонили компьютерный рынок. Поэтому компьютеры PS/2 с высокой и средней производительностью были оснащены абсолютно новой шиной MCA (MicroChannel Architecture), которая была защищена патентами.

 

 

Примеры шин

207

Материнская плата

Разъем

Встроенная

ШИНЫ PC

Контакт

плата

 

 

 

 

 

О*

 

а

 

 

 

D

 

 

 

а

 

 

 

D

 

 

 

D D

 

 

 

D П D

 

1

О

 

 

Процессор

 

п

и другие

 

 

п

микросхемы

 

 

D

 

 

Z1

 

 

 

 

Новый разъем для PC/AT

КраевойЛразъем

Рис. 3.46. Шина PC/AT состоит из двух компонентов' старой и новой шины

Компьютерная промышленность отреагировала на такой шаг введением своего собственного стандарта, шины ISA (Industry Standard Architecture — стандартная промышленная архитектура), которая, по существу, представляет собой шину PC/AT, работающую при частоте 8,33 МГц. Преимущество такого подхода состоит в том, что при этом сохраняется совместимость с существующими машинами и платами. Отметим, что в основе этого стандарта лежит шина, разработанная компанией IBM. IBM когда-то необдуманно предоставила правана производство этой шины многим компаниям, чтобы как можно больше производителей имели возможность выпускать платы для компьютеров IBM. Однако впоследствии компании IBM пришлось об этом сильно пожалеть. Эта шина до сих пор используется во всех персональных компьютерах с процессором Intel, хотя обычно кроме нее там есть еще одна или несколько других шин. Исчерпывающее описание шины ISA можно найти в книге [127].

Позднее шина ISA была расширена до 32 разрядов. У нее появились некоторые новые особенности (например, возможность параллельной обработки). Такая шина называлась EISA (Extended Industry Standard Architecture — расширенная архитектура промышленного стандарта). Для нее было разработано несколько плат.

Шина PCI

В первых компьютерах IBM PC большинство приложений имели дело с текстами. Постепенно с появлением Windows вошли в употребление графические интерфейсы пользователя. Ни одно из этих приложений не давало большой нагрузки на шину ISA. Однако с течением времени появилось множество различных приложе-

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 1 1 1 1

 

ш

Z

ш

Z

8 £

S £

 

Ш

Z

ш

Z

 

к

о

QL

О

Арбитр шины PCI

СИ

О

К

О

 

 

 

Устройство

Устройство

Устройство

Устройство

 

 

PCI

PCI

PCI

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

1

 

 

Тактовый генератор (33 МГц

 

 

 

 

или 66 МГц)

AD

32

X

х

Объединенные адресные

 

 

 

 

и информационные линии

PAR

1

X

 

Бит четности для адреса или данных

С/ВЕ#

4

X

 

1} команда шине

 

 

 

 

2) битовый массив, который

 

 

 

 

показывает, какие байты из слова

 

 

 

 

нужно считать (или записать)

FRAME*

1

X

 

Указывает, что установлены сигналы

 

 

 

 

AD И С/ВЕ

IRDY#

1

X

 

При чтении: задающее устройство

 

 

 

 

готово принять данные; при записи:

 

 

 

 

данные находятся в шине

IDSEL

1

X

 

Считывание пространства

 

 

 

 

конфигураций

DEVSEL#

1

 

х

Подчиненное устройство распознало

 

 

 

 

свой адрес и ждет сигнала

TRDY#

1

 

х

При чтении: данные находятся

 

 

 

 

на линиях AD; при записи:

 

 

 

 

подчиненное устройство готово

 

 

 

 

принять данные

STOP#

1

 

х

Подчиненное устройство требует

 

 

 

 

немедленно прервать текущую

 

 

 

 

транзакцию

PERR#

1

 

 

Обнаружена ошибка четности данных

SERR#

1

 

 

Обнаружена ошибка четности адреса

 

 

 

 

или системная ошибка

REQ#

1

 

 

Арбитраж шины: запрос на доступ

 

 

 

 

к шине

GNT#

1

 

 

Арбитраж шины: предоставление шины

RST#

1

 

 

Перезагрузка системы и всехустройств

Сигналы AD (их 32) нужны для адресов и данных (для передач по 32 бита). Обычно адрес устанавливается во время первого цикла, а данные — во время третьего. Сигнал PAR — это бит четности для сигнала AD. Сигнал С/ВЕ# выполняет две функции. Во время первого цикла он содержит команду (считать одно слово, считать блок и т. п.). Во время второго цикла он содержит массив из 4 битов, который показывает, какие байты 32-битного слова действительны. Используя сигнал С/ВЕ#, можно считывать 1, 2 или 3 байта из слова, а также все слово целиком.

Сигнал FRAME# устанавливается задающим устройством, чтобы начать транзакцию. Этот сигнал сообщает подчиненному устройству, что адрес и команды в данный момент действительны. При чтении одновременно с сигналом FRAME# устанавливается сигнал IRDY#. Он сообщает, что задающее устройство готово принять данные. При записи сигнал IRDY# устанавливается позже, когда данные уже находятся в шине.