Макроскалярная архитектура от Apple – что это значит

13 июль, 2011 - 13:14Леонід Бараш

Apple получила новый патент на кое-что, называемое макроскалярным процессором. Это может быть похоже на рекламу, поскольку никто не знает, что это такое и зачем оно нужно. Однако это знает компьютерный специалист Робин Харрис (Robin Harris).

Макроскаляр – это не термин в области компьютерных наук, хотя префикс «макро» употребляется в других дисциплина учеными, не стремящимися к тому, чтобы быть понятыми. Давайте его рассмотрим.

Макро - значит большой. К примеру, макроэкономика исследует экономику как целое, а также ее основные составляющие. Скаляр – величина, не изменяющаяся при преобразовании координат. Хорошим примером скаляра служит число. Векторный процессор выполняет операцию над векторами посредством одной команды. Так что же значит «большой скалярный процессор»?

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

В то время как потребители покупают новые и быстрые процессоры с более длинными конвейерами, большая часть ПО все еще предназначена для процессоров с более короткими конвейерами. В результате этого потребитель может не почувствовать, на что способен новый процессор, пока не инвестирует в обновленное ПО.

Ввиду ограничений закона Мура, главным способом получить бóльшую производительность было распараллеливание программ. Так как в типичном случае процессорное время в основном тратится на циклы, распараллеливание циклов являлось популярным приемом для повышения производительности. Развертка цикла и автовекторизация – два основных приема, но они не работают с циклами, зависящими от данных, чья длина зависит от результата, а не от фиксированного количества итераций.

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

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

Большая часть патента относится к компилятору, который необходим для эффективности макроскалярной архитектуры.

Будучи реализована, макроскалярная архитектура обеспечит более высокую производительность при данной тактовой частоте при более низком энергопотреблении, что важно для мобильных устройств. Однако судьба изобретения зависит от разработчиков компилятора.