Андрей Борзенко
Создатель первого коммерческого RISC-микропроцессора профессор Станфордского университета Джон Хенесси как-то отметил, что микропроцессоры вступают в “эру пост-десктопов” (post-desktop era). Разработчики перспективных архитектур должны учитывать самые современные технологии изготовления микросхем, которые появляются в преддверии нового тысячелетия. Создание компактных, высоконадежных устройств с низкой потребляемой мощностью предъявляет к разрабатываемым кристаллам вполне определенные требования. По мнению Хенесси, в мире интеллектуальных телефонов, карманных ПК и прочих сетевых устройств особенно возрастает значение такого параметра, как надежность, - любая транзакция должна выполняться безошибочно. При этом, разумеется, никто не собирается забывать о производительности. Правда, на смену общеизвестным оценкам типа SPECmark придут несколько иные критерии.
Как показал прошедший в октябре микропроцессорный форум, в начале следующего тысячелетия конкуренцию микропроцессору Intel Itanium могут составить микросхемы таких фирм, как IBM, Compaq Computer, Hewlett-Packard, Sun Microsystems, AMD и др.
Так, выход микропроцессора IBM Power4 с предполагаемой тактовой частотой 1 ГГц планируется на 2001 г. По имеющейся информации, кристалл этой микросхемы содержит 170 млн. транзисторов, для его производства будут использованы технологии медных межсоединений и “кремний на изоляторе” (КНИ). Собственно говоря, на одном кристалле разместятся два полноценных процессорных блока, а корпус микросхемы будет иметь 5500 выводов. По мнению разработчиков, скорость передачи информации между исполнительным устройством и кэш-памятью составит 100 Гб/с.
Другой конкурент Itanium - Compaq Alpha EV8 с тактовой частотой в пределах 1,2 - 2 ГГц - появится на свет не ранее 2002 г. Производство нового микропроцессора будет осуществляться с соблюдением технологических норм 0,125 мкм. Увеличить скорость работы этого устройства и уменьшить потребляемую им мощность также помогут технологии медных межсоединений и КНИ. Благодаря архитектурным особенностям микросхемы можно будет, как ожидают ее создатели, повысить производительность почти вдвое при увеличении площади кристалла лишь на несколько процентов.
А вот компания HAL Computer Systems надеется к 2001 г. выпустить микросхему Sparc 64 V, в которой собирается реализовать так называемый метод предсказания (prediction). Его использование позволит избежать ситуаций, когда для получения результатов одного вычисления необходимо дожидаться окончания предыдущего действия. Разработчики утверждают, что экономия времени будет достигаться благодаря “супермоделированию”, когда все инструкции выполняются заранее.
Большое внимание на форуме привлекло сообщение корпорации Sun Microsystems (www.sun.com) об особенностях своей новой микросхемы MAJC 5200 (Microprocessor Architecture for Java Computing, произносится как Magic), образцы которой ожидаются во II квартале следующего года. На одном кристалле реализовано два 128-разрядных микропроцессора типа VLIW (Very Long Instruction Word), работающих на тактовой частоте 500 МГц.
Первые кристаллы будут производиться с учетом технологических норм 0,22 мкм и шестислойной медной металлизацией. Ужесточение норм до 0,18 мкм сделает возможным увеличение тактовой частоты до 700 МГц. При напряжении питания 1,8 В энергопотребление микросхемы не превысит 15 Вт. По предварительным оценкам, вычисления с одинарной точностью можно будет выполнять со скоростью 6,16 Гфлоп/с.
Встроенные средства для обработки цифровых сигналов позволят управлять более чем сотней телефонных IP-каналов, а также кодировать и декодировать пакеты 10 Гб/с Ethernet-соединения. Допускается одновременное декодирование двух потоков MPEG-данных, причем для расшифровки звука AC-3 требуется лишь 7,5% мощности одного из двух процессоров. Если судить по представленной фирмой информации, при обработке 8-разрядного изображения тест JPEG 2000 показывает скорость 78 Мб/с. На MAJC 5200 можно будет в реальном времени одновременно запустить в работу шесть декодеров и один кодер, отвечающие телекоммуникационному стандарту H.263.
По мнению представителей корпорации Sun Microsystems, архитектура MAJC будет определять путь развития микропроцессоров на ближайшие 20 лет, как в свое время архитектура SPARC.
Три уровня иерархии
Архитектура MAJC является масштабируемой. В ней можно выделить три уровня иерархии:
- кластер процессоров;
- процессорный блок;
- функциональный блок.
На вершине иерархии находится кластер процессоров, который содержит несколько процессорных блоков на одном кристалле. Если представить, что процессор - это мозг, а кристалл - это голова, то архитектура MAJC предполагает, что в одной черепной коробке может находиться один мозг или несколько, работающих параллельно.
Все процессорные блоки, входящие в кластер, идентичны. Совместно используются только несколько внутренних регистров прерывания, служащих для синхронизации работы.
Процессорный блок MAJC может содержать от одного до четырех функциональных блоков. Каждый из них представляет собой RISC-процессор для цифровой обработки сигналов. По мнению разработчиков, трудно найти приложение, позволяющее одновременно выполнять более четырех инструкций без потери производительности. Именно поэтому максимальное число функциональных блоков не превышает четырех. Параллелизм в работе достигается на принципиально другом уровне, который мы назовем потоковой, или пронизывающей (thread), моделью.
Функциональные блоки 2, 3 и 4 идентичны, а вот блок 1 отличен от них и представляет собой подмножество других функциональных единиц. Это сделано для того, чтобы минимизировать количество функциональных блоков, требуемых для построения системы.
Функциональный блок содержит файл локальных регистров, логику управления (декодирования инструкций), регистры состояния, прокладку электрических соединений, которая не используется совместно с другими процессорами на одном кристалле. Благодаря этому реализация нескольких процессоров на одном кристалле (процессорный кластер) выполняется достаточно просто, причем он легко может быть настроен для специальных областей применения.
Набор глобальных регистров доступен любому функциональному блоку внутри процессорного блока. Размер регистрового файла варьируется в зависимости от задачи от 32 до 512. Файл глобальных регистров предназначен для процессорного блока и не используется совместно с другими процессорными единицами на одном кристалле.
Функциональный блок - это базовый строительный кирпичик процессорного блока. Каждая инструкция обрабатывается отдельным функциональным блоком. Число инструкций, выполняемых одновременно в одном цикле процессорного блока, как раз и зависит от доступного количества функциональных единиц.
Любой функциональный блок имеет собственный набор регистров, недоступный для других блоков. Следовательно, в одно и то же время он может работать как с этим, так и с файлом глобальных регистров.
Общее число регистров (RP), доступных для одного процессорного блока, равно числу глобальных регистров (GR) плюс число функциональных блоков (FU), умноженных на число локальных регистров (LR). Таким образом, если GR=96, FU=4, LR=32, то
RP = GR + LRxFU = 96 + 32x4 = 224 регистра.
Потоковая модель
Поскольку цифровая обработка сигналов в мультимедиа-приложениях допускает высокий уровень параллелизма обработки данных, в архитектуре MAJC предусмотрены три уровня вычислений:
- SIMD (Single Instruction Multiple Data) в каждом функциональном блоке;
- MSIMD (Multiple Single Instruction Multiple Data) в каждом процессорном блоке;
- параллельная работа процессорных блоков в кластере.
Набор команд MAJC допускает выполнение нескольких целочисленных операций, а также операций с фиксированной и плавающей точкой за одну инструкцию.
Одной из наиболее интересных особенностей архитектуры MAJC является использование упоминаемой выше потоковой модели. Кратко поясним, как работает вертикальная мультипотоковая модель.
Известно, что простой процессора часто связан с отсутствием необходимых данных в кэш-памяти (cache miss). В этом случае требуемую информацию надо загрузить из основной памяти. Среднее время ожидания, после которого вычисления могут быть продолжены, составляет от 50 до 100 циклов работы процессора. Причем оно может быть и больше, если доступ к памяти одновременно запрашивают и другие устройства. Считается, что для большинства коммерческих приложений на каждые сто команд приходится 5% отсутствия данных в кэш-памяти. Это приводит к тому, что процессор занят только около 20% времени, а 80% расходуется впустую.
Идея мультипотоковой модели состоит в том, чтобы процессор переключался на другой поток команд, когда загружаются данные (которых нет в кэш-памяти) из основной памяти.
Большое количество регистров в архитектуре MAJC позволяет эффективно обрабатывать инструкции четырех потоков и проводить переключение между ними. Расчеты показывают, что использование мультипотоковой модели сокращает время простоя процессора на 78%.
Ортогональный набор команд
В традиционной процессорной архитектуре применение VLIW позволяет прочесть группу инструкций и выполнить их, например, одновременно. Обычно команды имеют фиксированную длину, и в одном слове объединяются от четырех до шестнадцати кодов операций. Недостатком такого подхода является именно ограничение длины. Если программа-компилятор не может найти четыре независимые операции, то оставшиеся поля она заполняет кодом отсутствия операции (NOP). Как показывает практика, такой подбор действительно трудно сделать.
В MAJC-архитектуре длина пакета VLIW может варьироваться от 32 до 128 бит, не считая заголовка. При максимальной длине пакета задействуются все четыре функциональных блока, а для кодирования каждой операции отводится 32 разряда. Два бита в заголовке определяют порядок следования команд в пакете (00 - 1, 01 - 2, 10 - 3, 11 - 4), иными словами, номер функционального устройства. Переменная длина пакета позволяет избежать кодирования пустых операций, благодаря чему достигается высокая плотность хранения информации.
Каждая команда в пакете может указывать на четыре регистра. Особенностью MAJC-архитектуры является ортогональный набор инструкций. Это, в частности, означает, что глобальные и локальные регистры процессорного блока могут быть взаимозаменяемы, как источники или приемники информации. Коды операций не накладывают никаких ограничений на тип и способ использования регистров.
Об эффективности набора команд говорит следующий факт. Например, в цифровой фильтрации, которая, в частности, используется в процессе распознавания речи, одной из базовых операций является накопление умножений (Multiply Accumulate). В этом случае результаты умножения чисел с плавающей запятой должны суммироваться “на лету”. В MAJC-архитектуре три, а то и четыре такие операции могут быть выполнены за один цикл процессора.
В заключение следует отметить, что помимо таких технологических новинок, как медные межсоединения и КНИ, разработчиками MAJC-архитектуры не забыта и технология систем на одном кристалле СОК. Как известно, в этом случае полная система включает в себя интеллектуальную собственность IP (Intellectual Property) сразу нескольких фирм. Утверждается, что MAJC обеспечит требуемую скорость обмена между IP-блоками и процессором при разумном соотношении цена/производительность.