Введение в архитектуру компьютеров

Особенности процессоров с архитектурой SPARC компании Sun Microsystems


Масштабируемая процессорная архитектура компании Sun Micro-systems (SPARC– Scalable Processor Architecture) является наиболее широко распространенной RISC-архитектурой, отражающей доминирующее положение компании на рынке UNIX-рабочих станций и серверов.

Первоначально архитектура SPARC была разработана в целях упрощения реализации 32-битового процессора. Впоследствии по мере улучшения технологии изготовления интегральных схем она постепенно развивалась, и в настоящее время имеется 64-битовая версия этой архитектуры.

В отличие от большинства RISC-архитектур SPARC использует регистровые окна, которые обеспечивают удобный механизм передачи параметров между программами и возврата результатов. Архитектура SPARC была первой коммерческой разработкой, реализующей механизмы отложенных переходов и аннулирования команд. Это давало компилятору большую свободу заполнения времени выполнения команд перехода командой, которая реализуется в случае выполнения условий перехода и игнорируется в случае, если условие перехода не выполняется.

Первый процессор SPARC был изготовлен компанией Fujitsu на основе вентильной матрицы, работающей на частоте 16,67 МГц. На основе этого процессора была разработана первая рабочая станция Sun-4 с производительностью 10 MIPS, объявленная осенью 1987 г. (до этого времени компания Sun использовала в своих изделиях микропроцессоры Motorola 680X0). В марте 1988 г. Fujitsu увеличила тактовую частоту до 25 МГц, создав процессор с производительностью 15 MIPS.

Позднее тактовая частота процессоров SPARC была повышена до 40 МГц, а производительность – до 28 MIPS.

Дальнейшее увеличение производительности процессоров с архитектурой SPARC было достигнуто за счет реализации в кристаллах принципов суперскалярной обработки компаниями Texas Instruments и Cypress. Процессор SuperSPARC компании Texas Instruments стал основой серии рабочих станций и серверов SPARCstation/SPARCserver 10 и SPARCstation/SPARCserver 20. Имеется несколько версий этого процессора, позволяющего в зависимости от смеси команд обрабатывать до трех команд за один машинный такт, отличающихся тактовой частотой.
Процессор SuperSPARC (рис. 4.1) имеет сбалансированную производительность на операциях с фиксированной и плавающей точкой. Он имеет внутренний кэш емкостью 36 Кб (20 Кб – кэш команд и 16 Кб – кэш данных), раздельные конвейеры целочисленной и вещественной арифметики и при тактовой частоте 75 МГц обеспечивает производительность около 205 MIPS. Процессор SuperSPARC применяется также в серверах SPARCserver 1000 и SPARCcenter 2000 компании Sun.



Рис. 4.1. Блок-схема процессора SuperSPARC

Конструктивно кристалл монтируется на взаимозаменяемых процессорных модулях трех типов, отличающихся наличием и объемом кэш-памяти второго уровня и тактовой частотой. Модуль Mbus SuperSPARC, используемый в модели 50, содержит SuperSPARC процессор с тактовой частотой 50 МГц с внутренним кэшем емкостью 36 Кб (20 Кб кэш команд и 16 Кб кэш данных). Модули Mbus SuperSPARC в моделях 51, 61 и 71 содержат по одному процессору SuperSPARC, работающему соответственно на частоте 50, 60 и 75 МГц, одному кристаллу кэш-контроллера (так называемому SuperCache), а также внешний кэш емкостью 1 Мб. Модули Mbus в моделях 502, 612, 712 и 514 содержат два SuperSPARC процессора и два кэш-контроллера каждый, а последние три модели – и по одному (1 Мб) внешнему кэшу на каждый процессор. Использование кэш-памяти позволяет модулям CPU работать с тактовой частотой, отличной от тактовой частоты материнской платы; пользователи всех моделей поэтому могут улучшить производительность своих систем заменой существующих модулей CPU вместо того, чтобы производить upgrade всей материнской платы.

Компания Texas Instruments разработала также процессор MicroSPARC с тактовой частотой 50 МГц и со встроенным кэшем емкостью 6 Кб, который ранее широко использовался в ранних моделях рабочих станций SPARCclassic и SPARCstation LX. Sun совместно с Fujitsu создали также новую версию кристалла MicroSPARC II с встроенным кэшем емкостью 24 Кб. На его основе построены рабочие станции и серверы SPARCstation/ SPARCserver 4 и SPARCstation/SPARCserver 5, работающие на частоте 70, 85 и 110 МГц.



В конце 1994 – начале 1995 г. на рынке появились микропроцессоры HyperSPARC, однопроцессорные и двухпроцессорные рабочие станции с тактовой частотой процессора 100 и 125 МГц. К середине 1995 года тактовая частота процессоров SuperSPARC была доведена до 90 МГц. Позже появились 64-битовые процессоры UltraSPARC I с тактовой частотой от 167 МГц, в конце 1995 – начале 1996 – процессоры UltraSPARC II с тактовой частотой от 200 до 275 МГц, а в 1997 – 1998 гг. – процессоры UltraSPARC III с частотой 500 МГц.

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

Риc 4.2. Набор кристаллов процессора HyperSPARC

Процессорный набор HyperSPARC с тактовой частотой 100 МГц построен на основе технологического процесса КМОП с тремя уровнями металлизации и проектными нормами 0.5 мк. Внутренняя логика работает с напряжением питания 3.3 В.

Центральный процессор RT620 состоит из целочисленного устройства, устройства с плавающей точкой, устройства загрузки-записи, устройства переходов и двухканальной множественно-ассоциативной памяти команд емкостью 8 Кб. Целочисленное устройство включает АЛУ и отдельный тракт данных для операций загрузки-записи, которые представляют собой два из четырех исполнительных устройств процессора.


Устройство переходов обрабатывает команды передачи управления, а устройство плавающей точки реально состоит из двух независимых конвейеров – сложения и умножения чисел с плавающей точкой. Для увеличения пропускной способности процессора команды плавающей точки, проходя через целочисленный конвейер, поступают в очередь, где они ожидают запуска в одном из конвейеров плавающей точки. В каждом такте выбираются две команды. В общем случае, до тех пор, пока эти две команды требуют для своего выполнения различных исполнительных устройств при отсутствии зависимостей по данным, они могут запускаться одновременно. RT620 содержит два регистровых файла: 136 целочисленных регистров, сконфигурированных в виде восьми регистровых окон, и 32 отдельных регистра плавающей точки, расположенных в устройстве плавающей точки.

Кэш-память второго уровня в процессоре HyperSPARC строится на базе RT625 CMTU, который представляет собой комбинированный кристалл, включающий контроллер кэш-памяти и устройство управления памятью, поддерживающее разделяемую внешнюю память и симметричную многопроцессорную обработку. Контроллер кэш-памяти поддерживает кэш емкостью 256 Кб, состоящий из четырех RT627 CDU. Кэш-память имеет прямое отображение и 4Кб тегов. Теги в кэш-памяти содержат физические адреса, поэтому логические схемы для соблюдения когерентности кэш-памяти в многопроцессорной системе, имеющиеся в RT625, могут быстро определить попадания или промахи при просмотре со стороны внешней шины без приостановки обращений к кэш-памяти со стороны центрального процессора. Поддерживается как режим сквозной записи, так и режим обратного копирования.

Устройство управления памятью содержит в своем составе полностью ассоциативную кэш-память преобразования виртуальных адресов в физические (TLB), состоящую из 64 строк, которая поддерживает 4096 контекстов. RT625 содержит буфер чтения емкостью 32 байта, используемый для загрузки, и буфер записи емкостью 64 байта, используемый для разгрузки кэш-памяти второго уровня.


Размер строки кэш- памяти составляет 32 байта. Кроме того, в RT625 имеются логические схемы синхронизации, обеспечивающие интерфейс между внутренней шиной процессора и SPARC MBus при выполнении асинхронных операций.

RT627 представляет собой статическую память 16Кб (32Кб), специально разработанную для удовлетворения требований HyperSPARC. Она организована как четырехканальная статическая память в виде четырех массивов с логикой побайтной записи, входными и выходными регистрами-защелками. RT627 для ЦП является кэш-памятью с нулевым состоянием ожидания без потерь (т. е. приостановок) на конвейеризацию для всех операций загрузки и записи, которые попадают в кэш-память. RT627 был разработан специально для процессора HyperSPARC, в связи с чем для соединения его с RT620 и RT625 не нужны никакие дополнительные схемы.

Набор кристаллов позволяет использовать преимущества тесной связи процессора с кэш-памятью. Конструкция RT620 допускает потерю одного такта в случае промаха в кэш-памяти первого уровня. Для доступа к кэш-памяти второго уровня в RT620 отведена специальная ступень конвейера. Если происходит промах в кэш-памяти первого уровня, а в кэш-памяти второго уровня имеет место попадание, то центральный процессор не останав-

ливается.

Команды загрузки и записи одновременно генерируют два обращения: одно к кэш-памяти команд первого уровня емкостью 8 Кб и другое к кэш-памяти второго уровня. Если адрес команды найден в кэш-памяти первого уровня, то обращение к кэш-памяти второго уровня отменяется, и команда становится доступной на стадии декодирования конвейера. Если же во внутренней кэш-памяти произошел промах, а в кэш-памяти второго уровня обнаружено попадание, то команда станет доступной с потерей одного такта, который встроен в конвейер. Такая возможность позволяет конвейеру продолжать непрерывную работу до тех пор, пока имеют место попадания в кэш-память либо первого, либо второго уровня, которые составляют соответственно 90 % и 98 % для типовых прикладных задач рабочей станции.


С целью достижения архитектурного баланса и упрощения обработки исключительных ситуаций целочисленный конвейер и конвейер плавающей точки имеют по пять стадий выполнения операций. Такая конструкция позволяет RT620 обеспечить максимальную пропускную способность, не достижимую в противном случае.

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

MicroSPARC II (рис. 4.3) является одним из сравнительно недавно появившихся процессоров семейства SPARC. Основное его назначение – однопроцессорные низкостоимостные системы. Он представляет собой высокоинтегрированную микросхему, содержащую целочисленное устройство, устройство управления памятью, устройство плавающей точки, раздельную кэш-память команд и данных, контроллер управления микросхемами динамической памяти и контроллер шины SBus.

Рис. 4.3. Блок-схема процессора МicroSparc II

Основными свойствами целочисленного устройства МicroSPARC II

являются:

· пятиступенчатый конвейер команд;

· предварительная обработка команд переходов;

· поддержка потокового режима работы кэш-памяти команд и данных;

· регистровый файл емкостью 136 регистров (8 регистровых окон);

· интерфейс с устройством плавающей точки;

· предварительная выборка команд с очередью на четыре команды.

Целочисленное устройство использует пятиступенчатый конвейер команд с одновременным запуском до двух команд. Устройство плавающей точки обеспечивает выполнение операций в соответствии со стандартом IEEE 754.Устройство управления памятью выполняет четыре основные функции. Во-первых, оно обеспечивает формирование и преобразование виртуального адреса в физический. Эта функция реализуется с помощью ассоциативного буфера TLB. Кроме того, устройство управления памятью реализует механизмы защиты памяти. И наконец, оно выполняет арбитраж обращений к памяти со стороны ввода-вывода, кэша данных, кэша команд и TLB.

Процессор MicroSPARC II имеет 64-битовую шину данных для связи с памятью и поддерживает оперативную память емкостью до 256 Мб. В процессоре интегрирован контроллер шины SBus, обеспечивающий эффективную с точки зрения стоимости реализацию ввода-вывода.


Содержание раздела