Микропроцессоры HAL SPARC64-GP

Засилье американских корпораций на мировом компьютерном рынке заставляет с особым вниманием относиться к технологиям, созданным фирмами других стран. Япония среди них — несомненный лидер. В этой статье мы расскажем о 64-разрядных микропроцессорах SPARC64-GP, разработанных HAL Computer Systems — одной из компаний группы Fujitsu, известной своим продолжительным тесным сотрудничеством с Sun. Эти микропроцессоры интересны прежде всего тем, что при сравнимых тактовых частотах они опережают по производительности современные Sun UltraSPARC II, имеющие ту же архитектуру SPARC V9.

V9 в исполнении Fujitsu

Программист, пишущий на языке Ассемблера, должен в первую очередь знать архитектуру (систему команд, регистры и т. п.) процессора. Естественно, архитектура во многом предопределяет микроархитектуру процессора, другими словами, его конкретную реализацию. Поэтому прежде всего следует сказать несколько слов об архитектуре SPARC V9 как таковой. Здесь представлены «раздельные» целочисленное исполняющее устройство и устройство с плавающей запятой, что делает «естественной» их параллельную работу и соответственно суперскалярную реализацию процессора.

Непривилегированные команды SPARC V9 задают ABI-стандарт совместимости процессора с архитектурой SPARC. Говоря о важных особенностях архитектуры, укажем на средства, повышающие производительность процессора при работе с условными переходами. Компилятор (или программист — на Ассемблере) может указать в команде подсказку для аппаратуры — будет данный переход осуществлен или нет. Известно, что аналогичные средства предусмотрены в архитектуре HP PA-8x00. Кроме того, реализована команда условной пересылки, позволяющая в ряде случаев вообще обойтись без условного перехода. Эта функция уже доказала свою эффективность в ряде современных высокопроизводительных RISC-процессоров. В наборе команд SPARC V9 следует отметить и несколько команд, обеспечивающих синхронизацию работы в многопроцессорных системах.

Целочисленные регистры SPARC V9 являются 64-разрядными. Особенностью файла этих регистров является доступность в программной единице только части общего регистрового файла — через окно. Это свойство, имеющееся и в предыдущих реализациях архитектуры SPARC, способствует эффективной реализации механизма вызова подпрограмм. В SPARC64-GP предусмотрено восемь глобальных регистров плюс 24 регистра в окне. Кроме совместимости по системе команд, SPARC64-GP умеет взаимодействовать с «шиной» UPA (UltraSPARC Port Architecture) и внешним кэшем второго уровня, так что обеспечивается второй уровень совместимости с UltraSPARC II.

Добавить чуточку Fujitsu

C точки зрения микроархитектуры было бы некорректно утверждать, что SPARC V9 представляет собой, грубо говоря, модернизированный вариант UltraSPARC II. Усовершенствования, на которые пошли инженеры Fujitsu, коснулись большинства основных блоков микропроцессоров (см. рисунок). С моей точки зрения, самое яркое отличие — это то, что SPARC64-GP имеет возможность внеочередного выполнения команд, в то время как UltraSPARC II выполняет команды последовательно в соответствии с их расположением в тексте программы. Отметим, что большинство современных суперскалярных процессоров общего назначения поддерживают внеочередное выполнение команд.

Рассмотрим вкратце задачи и основные характеристики функциональных блоков SPARC64-GP. Особенность строения кэш-памяти SPARC64-GP — в наличии кэша команд «нулевого» уровня, который является прямоадресуемым и имеет емкость 16 Кбайт. Устройство обработки переходов извлекает из него до четырех команд за такт и передает их в устройство выдачи-диспетчеризации. Если имеет место непопадание в кэш, устройство обработки переходов посылает запрос на получение строки кэша (64 байт) из кэша первого уровня.

Кэш команд первого уровня является четырехканальным частично-ассоциативным и имеет емкость 64 Кбайт, распределенную между двумя банками. При непопадании в кэш он посылает запрос на строку кэша в блок управления интерфейсом UPA и кэшем второго уровня. Последний является однородным (содержит и команды, и данные) прямоадресуемым и имеет емкость от 1 до 16 Мбайт. При непопадании в кэш второго уровня запрос на строку кэша отправляется через UPA в оперативную память. Кэш данных первого уровня также является четырехканальным частично-ассоциативным и содержит два банка (адреса двукратно чередуются) общей емкостью 64 Кбайт. Чередование адресов позволяет поддерживать до двух операций доступа (запись в память или чтение в регистры) за такт. Хотя задержка кэша первого уровня равна трем тактам, его конвейерная организация позволяет запускать в каждом такте до двух новых операций доступа и завершать до двух старых. По сравнению с UltraSPARC II емкость кэшей первого уровня возросла в четыре раза, и они являются четырехканальными (против двухканальных в UltraSPARC II). Кроме того, SPARC64-GP использует в кэше первого уровня алгоритм обратной записи, а UltraSPARC II — сквозную запись.

Михаил Кузьминский — старший научный сотрудник Центра компьютерного обеспечения химических исследований РАН. С ним можно связаться по телефону (095) 135-6388.

Некоторые характеристики HAL SPARC64-GP

* В GP7000/296 МГц SPECint95/fp95=19,2/29,0 ** В GP7000/360 МГц SPECint95/fp95=15,7/20,1

ХарактеристикаSPARC64-GPUltraSPARC II
Частота, МГц272360
Пиковая производительность, MFLOPS816720
SPECint9517,6*16,1**
SPECfp9526,6*23,5**
Кэш первого уровня данных/команд, Кбайт64/6416/16
Строка кэша, байт6432
Пропускная способность кэша L2, Мбайт/с4,32,88