ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 13.01.2021
Просмотров: 147
Скачиваний: 1
Лекция 7
3.5. Примеры центральных процессоров
В этом разделе мы рассмотрим процессоры Pentium II, UltraSPARC II и picoJava с точки зрения цифрового логического уровня архитектуры.
3.5.1. Pentium II
Pentium II - потомок процессора 8088, который использовался первой моделью IBM PC. Хотя Pentium II сильно отличается от процессора 8088 (первый содержит 7,5 млн транзисторов, а второй — всего 29 000), он теоретически совместим с 8088 и может выполнять программы, написанные для 8088.
С точки зрения программного обеспечения, Pentium II представляет собой 32-разрядную машину. Он содержит ту же архитектуру системы команд, что и процессоры 80386, 80486, Pentium и Pentium Pro, включая те же регистры, команды и встроенную систему с плавающей точкой.
С точки зрения аппаратного обеспечения, Pentium II является существенным шагом вперед, поскольку может обращаться к 64 Гбайт физической памяти и передавать данные в память и из памяти блоками по 64 бита. Программист не видит этих передач по 64 бита, но такая машина работает быстрее 32-разрядной.
На микроархитектурном уровне Pentium II представляет собой Pentium Pro с командами ММХ. Команды выбираются из памяти заранее и разбиваются на микрооперации. При выполнении в одном цикле нескольких микроопераций Pentium II работает как суперскалярная машина.
Pentium II имеет двухуровневую кэш-память. Кэш-память первого уровня содержит 16 Кбайт для команд и 16 Кбайт для данных, а смежная кэш-память второго уровня - еще 512 Кбайт. Строка кэш-памяти состоит из 32 байт. Тактовая частота кэш-памяти второго уровня в два раза меньше тактовой частоты центрального процессора. Тактовая частота центрального процессора - от 233 МГц и выше (до 450 МГц).
В системах с процессором Pentium II используются две внешние шины, обе они синхронные. Шина памяти используется для доступа к главному ОЗУ; шина PCI используется для сообщения с устройствами ввода-вывода. Иногда к шине PCI подсоединяется унаследованная (то есть прежняя) шина, чтобы можно было подключать старые периферийные устройства.
Компьютер на базе Pentium II может содержать один или два центральных процессора, которые разделяют общую память. Для предотвращения конфликтов существуют специальные системы поддержки.
Все процессоры, начиная с 8088 и заканчивая Pentium Pro, были обычными микросхемами с выводами по бокам или снизу, которые вставлялись в разъемы. Система Pentium II выполнена как SEC (Single Edge Cartridge - картридж с однорядным расположением контактов). Этот картридж представляет собой пластиковую коробку, содержащую центральный процессор, двухуровневую кэш-память и торцевой соединитель для передачи сигналов. Картридж содержит 242 контакта.
Одна из главных проблем процессора Pentium II - управление режимом электропитания. Имея относительно высокую тактовую частоту, он выделяет большое количество тепла (от 30 до 50 Вт). По этой причине SEC снабжен радиатором, рассеивающим накопившееся тепло. Компания Intel нашла также способ вводить центральный процессор в режим пониженного энергоснабжения (состояние “сна”), если он не выполняет никаких действий, и вообще выключать его (вводить в состояние “глубокого сна”), если есть вероятность, что он не будет выполнять никаких действий некоторое время. В последнем случае значения кэш-памяти и регистров сохраняются, а тактовый генератор и все внутренние блоки отключаются.
Из 242 контактов картриджа SEC 170 используются для сигналов, 27 для питания (с различной мощностью), 35 для “земли” и еще 10 оставлены на будущее. Для некоторых логических сигналов используется два и более выводов (например, для запроса адреса памяти). Поскольку микросхемы разрабатываются с использованием компьютеров, компания Intel использует представления названий сигналов в виде текста ASCII. Различным видам сигналов присваиваются символьные наименования, завершающиеся знаком # (например: BPRI#, LOCK#, A#, ADS#, REQ#, …). В частности, сигнал RESET# используется для перезагрузки процессора в случае сбоя.
Pentium II может реализовывать прерывания старым способом (аналогично процессору 8088 - в целях совместимости), или использовать новую систему прерываний с устройством APIC (Advanced Programmable Interrupt Controller - встроенный контроллер прерываний).
Шина памяти процессора Pentium II работает в конвейерном режиме, при этом в ней может происходить одновременно 8 операций. Обращения процессора к памяти, которые называются транзакциями, имеют 6 стадий:
-
арбитраж шины;
-
запрос;
-
сообщение об ошибке;
-
проверка на наличие нужного слова в другом процессоре;
-
ответ;
-
передача данных.
Наличие всех шести фаз необязательно. На фазе арбитража шины определяется, какое из задающих устройств будет очередным. На фазе запроса на шину передается адрес. На фазе сообщения об ошибке подчиненное устройство передает сигнал об ошибке четности в адресе или о наличии каких-либо других неполадок. На следующей фазе центральный процессор проверяет, нет ли нужного ему слова в другом процессоре. Эта стадия нужна только в многопроцессорных системах. В следующей фазе задающее устройство узнает, где взять необходимые данные. На последней стадии осуществляется передача данных.
В системе с процессором Pentium II на каждой стадии используются определенные сигналы, отличные от сигналов других стадий, поэтому каждая стадия не зависит от остальных. Например, один из процессоров может пытаться получить доступ к шине, используя сигналы арбитража. Как только процессор получает право на доступ к шине, он освобождает эти линии шины и занимает линии запроса. Тем временем другой процессор или какое-нибудь устройство ввода-вывода может войти в фазу арбитража шины и т. д.
3.5.2. UltraSPARC II
Семейство UltraSPARC - это серия 64-разрядных RISC-процессоров (I, II, III). Они используются в рабочих станциях и серверах Sun, а также во многих других системах. Процессор UltraSPARC II был разработан для создания 4-узловых мультипроцессоров с разделенной памятью без добавления внешних схем, а также для создания более крупных мультипроцессоров с минимальным добавлением внешних схем. Таким образом, в каждую микросхему UltraSPARC II включены связующие элементы для построения мультипроцессора.
В отличие от структуры Pentium II SEC, процессор UltraSPARC II представляет собой самостоятельную микросхему. Она состоит из 5,4 млн транзисторов. Микросхема содержит 787 расположенных снизу выводов. Наличие большого числа выводов объясняется двумя факторами. С одной стороны, используются 64 бита для адресов и 128 битов для данных. С другой стороны, большое количество выводов требуется в связи с особенностями работы кэш-памяти. Кроме того, многие выводы являются резервными.
Процессор UltraSPARC II содержит 2 внутренних блока кэш-памяти: 16 Кбайт для команд и 16 Кбайт для данных. Вне кристалла процессора (как и у Pentium II) расположена кэш-память второго уровня. В отличие от Pentium II, процессор UltraSPARC II не упакован в общий картридж с кэш-памятью второго уровня, поэтому разработчики могут выбирать любые микросхемы для кэш-памяти второго уровня. Внешняя кэш-память является более гибкой (у UltraSPARC II ее можно расширить с 512 Кбайт до 16 Мбайт, а у Pentium II она имеет фиксированный объем 512 Кбайт). Однако из-за большей удаленности от процессора внешняя память работает медленнее. Кроме того, для обращения к внешней кэш-памяти требуется больше сигналов (у картриджа SEC нет контактов для связи с кэш-памятью, т.к. в данном случае кэш-память встроена в картридж), поэтому среди выводов процессора UltraSPARC II обязательно должны быть выводы для управления кэш-памятью.
Вся основная память компьютера подразделяется на строки кэш-памяти (блоки) по 64 байта. В кэш-памяти первого уровня находятся 256 наиболее часто используемых строк команд и 256 наиболее часто используемых строк данных. В кэш-памяти второго уровня содержатся строки, не поместившиеся в первом уровне. Кэш-память второго уровня содержит линии данных и команд вперемешку. В специальной части кэш-памяти хранится также информация о том, какие строки находятся в кэш-памяти второго уровня.
Большинство рабочих станций Sun содержат синхронную шину на 25 МГц, которая называется Sbus. К этой шине могут подсоединяться устройства ввода-вывода. Шина Sbus работает медленно и не подходит для памяти, поэтому компания Sun придумала другой механизм для соединения процессоров UltraSPARC II с памятью: UPA (Ultra Port Architecture - высокоскоростной пакетный коммутатор). UPA может реализовываться в виде шины, переключателя или сочетания того и другого. В различных рабочих станциях и серверах используются различные реализации UPA.
Когда процессору нужно некоторое слово памяти, он сначала обращается к кэш-памяти первого уровня. Если он находит слово, то продолжает выполнять операции с полной скоростью, в противном случае обращается к кэш-памяти второго уровня. Если соответствующая строка там есть, центральный процессор получает ее. Передача данных осуществляется по 16 байтов, поэтому для пересылки целой строки в кэш-память первого уровня требуется 4 цикла. Если требуемой строки нет и в кэш-памяти второго уровня, то ее нужно выбрать из основной памяти через интерфейс UPA. UPA в системе UltraSPARC II управляется централизованным контроллером. К нему поступают адресные сигналы и сигналы управления от центрального процессора (или процессоров, если их более одного). Чтобы получить доступ к памяти, центральный процессор должен сначала получить разрешение воспользоваться шиной. Когда шина предоставляется процессору, он получает соответствующие сигналы. При ожидании результатов центральный процессор может заниматься другой работой. Например, отсутствие нужной команды в кэш-памяти не мешает выполнению одной или нескольких команд, которые уже выбраны, и каждая из которых может обращаться к данным не из кэш-памяти. Таким образом, ожидать выполнения могут сразу несколько транзакций к UPA. Система UPA может справляться с двумя независимыми потоками транзакций (обычно это чтение и запись), каждый поток проходит с несколькими задержками. Задача централизованного контроллера - следить за всем этим и производить обращения к памяти в наиболее рациональном порядке.
3.5.3. PicoJava II
При разработке встроенных компьютеров упор делается не на высокую производительность, а на низкую стоимость. Это приводит к несколько другому соотношению преимуществ и недостатков по сравнению с процессорами, рассмотренными выше.
PicoJava II представляет собой однокристальный процессор с двумя интерфейсами шины: один из них предназначен для шины памяти шириной в 64 бита, а другой - для шины PCI. Данный процессор может содержать кэш-память первого уровня (до 16 Кбайт для команд и до 16 Кбайт для данных). Но, в отличие от рассмотренных выше процессоров, он не имеет кэш-памяти второго уровня. Процессор picoJava II является основой разработанной Sun микросхемы microJava 701. Она небольшого размера, содержит 2 млн транзисторов в собственно процессоре и еще 1,5 млн в кэш-памяти.
В микросхеме microJava 701 используется шина PCI (на частоте 33 или 66 МГц). Преимущество этой шины состоит в том, что она стандартна. Кроме того, существует большое количество сменных плат для этой шины. Хотя платы PCI не играют большой роли при создании сотовых телефонов, они важны для различных устройств большого размера (например, web-TV).
Система microJava II 701 обычно содержит флэш-память, которая хорошо подходит для хранения программ. Другая микросхема, которую также можно добавить к системе, содержит последовательные и параллельные интерфейсы ввода-вывода.
Кроме того, microJava 701 имеет 16 программируемых линий ввода-вывода, которые можно связать с кнопками, переключателями и лампочками прибора. Например, у микроволновой печи обычно есть клавишная панель с цифрами и несколько дополнительных кнопок, которые целесообразно соединить непосредственно с процессором. Наличие программируемых линий ввода-вывода на процессоре исключает необходимость использования программируемых контроллеров ввода-вывода, что делает прибор проще и дешевле.
В микросхему microJava 701 встроены также три программируемых тактовых генератора, которые могут быть полезны при работе приборов в реальном времени.
Микросхема microJava 701 выпускается в стандартном корпусе BGA (Ball Grid Array - корпус с выводами в виде массива шариков). Он содержит 316 выводов. Из них 59 выводов связаны с шиной PCI. Еще 123 вывода предназначены для шины памяти, среди них есть 64 двунаправленных вывода для передачи данных, а также отдельные адресные выводы. Остальные выводы используются для управления (7), синхронизирующих импульсов (3), прерываний (11), проверки (10), ввода-вывода (16). Некоторые из оставшихся выводов используются для питания и “земли”, остальные - не используются. Другие производители процессора picoJava II вправе выбирать иную шину, компоновку и т. д.
У данной микросхемы есть много других особенностей. Она, например, может переходить в режим ожидания (чтобы экономить заряд батарейки), содержит встроенный контроллер прерываний.
3.6. Примеры шин
Шины соединяют компьютерную систему в одно целое. В этом разделе мы с точки зрения цифрового логического уровня рассмотрим несколько примеров: шину ISA, шину PCI и Universal Serial Bus (универсальную последовательную шину). Шина ISA представляла собой небольшое расширение первоначальной шины IBM PC. Она уже практически не применяется в современных компьютерах. Наиболее используемой является шина PCI. Она шире, чем ISA, и функционирует с более высокой тактовой частотой. Шина USB обычно применяется в качестве шины ввода-вывода для периферийных устройств малого быстродействия (например, мыши и клавиатуры).
3.6.1. Шина ISA
Шина IBM PC была неофициальным стандартом систем с процессором 8088. Она содержала 62 сигнальные линии, из них 20 для адреса ячейки памяти, 8 для данных и по одной для сигналов считывания информации из памяти, записи информации в память, считывания с устройства ввода-вывода и записи на устройство ввода-вывода. Имелись сигналы для запроса прерываний и их разрешения, а также для прямого доступа к памяти. Шина IBM PC встраивалась в материнскую плату персонального компьютера. На плате было несколько разъемов, расположенных на расстоянии 2 см друг от друга. В эти разъемы вставлялись различные платы внешних устройств.
При разработке компьютера PC/AT с процессором 80286 фирмой IBM было принято решение не заменять, а расширить старую шину (для сохранения совместимости). В результате к модернизированной шине стало возможным подключение как старых сменных плат, так и новых, имеющих больше контактов. Дополнительный краевой разъем шины PC/AT содержит 36 линий. Из них 31 предназначена для дополнительных адресных линий, информационных линий, линий прерывания, каналов ПДП (прямого доступа к памяти), а также для питания и “земли”. Остальные связаны с различиями между 8-битными и 16-битными передачами данных.
Чтобы как можно больше производителей имели возможность выпускать платы для ее компьютеров, фирма IBM предоставила права на производство этой шины многим компаниям. В дальнейшем компьютерная промышленность ввела стандарт шины ISA (Industry Standard Architecture - стандартная промышленная архитектура), которая по существу представляет собой шину PC/AT, работающую при частоте 8,33 МГц.
Позднее шина ISA была расширена до 32 разрядов. У нее появились некоторые новые особенности (например, возможность параллельной обработки). Такая шина называлась EISA (Extended ISA). Для нее было разработано несколько плат.
3.6.2. Шина PCI
В 1990 году компания Intel разработала новую шину с гораздо более высокой пропускной способностью, чем у EISA. Новую шину назвали PCI (Peripheral Component Interconnect - взаимодействие периферийных компонентов). Она стала чрезвычайно популярной. Фактически в каждом компьютере Intel (начиная с Pentium), а также во многих других компьютерах содержится шина PCI. Даже компания Sun выпустила версию UltraSPARC, в которой используется шина PCI (это компьютер UltraSPARC Hi).