ARM прeдстaвилa свoй нoвeйший дизaйн прoцeссoрa — Cortex-A77. Кaк и прoшлoгoдний Cortex-A76, этo ядрo прeднaзнaчeнo для высoкoклaссныx зaдaч в смaртфoнax и сaмыx рaзныx устрoйствax. В нём рaзрaбoтчик нaцeлeн нa увeличeниe кoличeствa испoлняeмыx зa тaкт кoмaнд (IPC). Тaктoвыe чaстoты и энeргoпoтрeблeниe oстaлись примeрнo нa урoвнe Cortex-A76.
В нaстoящee врeмя ARM нацелена быстро наращивать производительность своих ядер. Согласно её планам, начиная с Cortex-A73 2016 года и вплоть до дизайна Hercules 2020 года компания намерена в 2,5 раза увеличить мощность ЦП. Уже переходы с 16 нм на 10 нм и затем на 7 нм позволили поднять тактовую частоту, а в совокупности с архитектурой Cortex-A75 и затем Cortex-A76, по оценкам ARM, на сегодняшний день достигнут 1,8-кратный прирост производительности. Теперь ядро Cortex-A77 позволит за счёт роста IPC нарастить производительность ещё на 20 % при прежней тактовой частоте. То есть 2,5-кратный прирост в 2020 году становится вполне реален.
Несмотря на рост IPC на 20 %, по оценкам ARM, энергопотребление A77 не возросло. Компромисс в данном случае состоит в том, что площадь кристалла A77 примерно на 17 % больше A76 при одинаковых технологических нормах. В результате стоимость отдельного ядра немного возрастёт. Если сравнивать достижение ARM с лидерами отрасли, то стоит сказать, что AMD в Zen 2 добилась роста IPC на 15 % по сравнению с Zen+, а значение IPC у ядер Intel много лет остаётся примерно на одном уровне.
Окно исполнения с изменением последовательности команд (out-of-order window size) увеличено на 25 %, до 160 единиц, что позволяет ядру нарастить параллелизм расчётов. Даже в Cortex-A76 был большой буфер адресов перехода (Branch Target Buffer), а в Cortex-A77 он был увеличен ещё на 33 %, до 8 Кбайт, что позволяет блоку предсказания ветвлений эффективно справляться с ростом количества параллельных инструкций.
Ещё более интересным новшеством стал полностью новый 1,5-Кбайт кеш, в котором хранятся макрооперации (MOP), возвращаемые из модуля декодирования. Архитектура процессора ARM декодирует инструкции из пользовательского приложения в более мелкие макрооперации, а затем разбивает их на микрооперации, передаваемые уже ядру исполнения. Кеш MOP используется для уменьшения влияния пропущенных ветвлений и сбросов, поскольку теперь макрооперации хранятся в отдельном блоке и не требуют повторного декодирования — тем самым увеличивается общая пропускная способность ядра. В некоторых нагрузках новый блок является крайне полезным дополнением к стандартному кешу инструкций.
В ядре исполнения добавлен четвёртый блок ALU и второй блок ветвлений. Четвёртый ALU увеличивает общую пропускную способность процессора в 1,5 раза за счёт возможности выполнения однотактных инструкций (таких как ADD и SUB) и двухтактных целочисленных операций вроде умножения. Два других ALU могут обрабатывать только базовые однотактные инструкции, в то время как последний блок загружается более сложными математическими операциями, такими как деление, умножение с накоплением и т. д. Второй блок ветвления внутри ядра исполнения удваивает количество одновременных переходов ветвлений, с которыми ядро может работать, что полезно в случаях, когда две из шести отправленных команд относятся к переходам ветвлений. Внутреннее тестирование в ARM показало выигрыш в производительности от использования этого второго блока переходов.
Среди других изменений ядра — добавление второго конвейера шифрования AES, увеличение пропускной способности памяти, усовершенствованный механизм предварительной выборки данных следующего поколения, позволяющий повысить эффективность энергопотребления и одновременно увеличить пропускную способность системы DRAM, оптимизации работы кеша и так далее.
Наибольший прирост наблюдается в Cortex-A77 в целочисленных операциях и вычислениях с плавающей запятой. Это подтверждается внутренними тестами ARM в SPEC, которые показали повышение производительности на 20 % и 35 % в целочисленных операциях и вычислениях с плавающей запятой соответственно. Улучшения пропускной способности памяти находятся где-то в диапазоне 15–20 %. В целом, оптимизации и изменения в A77 в среднем дают 20-процентный рост производительности по сравнению с предыдущим поколением. За счёт более новых технологических норм вроде 7 нм ULV мы можем получить дополнительные преимущества в конечных чипах.
ARM разработала Cortex-A77 для работы в связке 4+4 big.LITTLE (4 мощных ядра и 4 простых энергоэффективных). Но, учитывая увеличенную площадь новой архитектуры, многие производители в целях экономии могут представить связки 1+3+4 или 2+2+4, которые уже активно практикуются, где только одно или два ядра будут полноценными неурезанными A77.
Источники: