ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6729
Скачиваний: 8
Примеры центральных процессоров 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 млн для кэш-памяти.
Программируемые „
линии ввода-вывода
Шина PCI
16
Процессор
Microjava 701
Кэш- ,— —
память I Команды
п е р в о г о
I Данные
уровня 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 0 6 Глава 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
Z1
Л
О
п
п
D
Новый разъем для 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. Однако с течением времени появилось множество различных приложе-