Мы знаем, что в октябре 2019 года завершился проект по созданию собственного ядра ЦП в Остинском центре исследований и разработок Samsung (SARC). Для проекта, продвигаемого с такой помпой с выпуском Exynos M1 с Exynos 8890 в 2016 году, он был печальный конец. Почему SARC свернул проект? Пользовательское ядро Exynos M5, представленное в Exynos 990 SoC, является последним полностью разработанным Samsung ядром в обозримом будущем, и, оглядываясь назад, легко понять, почему Samsung отказалась от пользовательских ядер, поскольку они просто не были конкурентоспособны. достаточно. Теперь известно, что ядро Exynos M5 обладает 100% -ным дефицитом энергоэффективности по сравнению с Cortex-A77 от ARM, что говорит о многом. Тем не менее, это не должно было быть так. Проекты Exynos M1 и Exynos M2 продемонстрировали некоторую перспективу, и в то время проект основного ядра ЦП рассматривался как важный для конкуренции в области мобильных ЦП. Exynos M3 пережил большой спад, несмотря на значительное увеличение IPC, а Exynos M4 и Exynos M5 не смогли поспеть за стандартным IP-адресом процессора ARM. Каковы были микроархитектурные изменения в следующем кастомном ядре, отмененном Exynos M6?
До сих пор ответ на этот вопрос был неизвестен. Однако теперь команда разработчиков ЦП SARC представила доклад под названием «Эволюция архитектуры ЦП Samsung Exynos» (который мы узнали через AnandTech) на Международном симпозиуме по архитектуре компьютеров (ISCA), который является конференцией IEEE. Он раскрывает множество деталей о предыдущих процессорах серии Exynos M, а также об архитектуре отмененного Exynos M6. В документе, представленном командой разработчиков ЦП SARC, подробно описываются усилия команды за восемь лет ее существования, а также раскрываются ключевые детали пользовательских ядер ARM, начиная от Exynos M1 (Mongoose) и заканчивая нынешним поколением Exynos M5 (Lion) и даже ожидается, что невыпущенный процессор Exynos M6, который до отмены будет установлен в преемнике 2021 SoC Exynos 990. Команда Samsung SARC по процессорам была создана в 2011 году для разработки собственных процессорных ядер, которые затем были включены в Soyns Exynos от Samsung Systems LSI. Первым Soyn Exynos, который будет использовать собственное ядро, был Exynos 8890, который был представлен в Samsung Galaxy S7 2016 года. Пользовательские ядра оставались частью SoC Exynos до Exynos 990 с ядрами Exynos M5, которые были представлены в вариантах Samsung Galaxy S20 на базе Exynos. (Ожидается, что в будущем Exynos 992, который, вероятно, появится в Galaxy Note 20, будет использоваться Cortex-A78 от ARM, а не Exynos M5.) Однако SARC завершил архитектуру Exynos M6 до того, как команда ЦП получила известия о его расформировании. в октябре 2019 года, когда роспуск вступил в силу в декабре. В документе ISCA представлена обзорная таблица микроархитектурных отличий между пользовательскими ядрами ЦП Samsung от Exynos M1 до Exynos M6. Некоторые из общеизвестных характеристик проекта были раскрыты компанией в ее первоначальной архитектуре процессора M1 в рамках проекта HotChips 2016. На HotChips 2018 Samsung глубоко погрузился в Exynos M3. Архитектура ядер Exynos M4 и Exynos M5 также была детализирована, как и архитектура M6.
AnandTech отмечает, что одной из характерных черт дизайна Samsung на протяжении многих лет было то, что он был основан на том же проекте RTL, который был начат с ядром Exynos M1 Mongoose. Samsung продолжал вносить улучшения в функциональные блоки ядер на протяжении многих лет. Exynos M3 представляет собой изменение по сравнению с первыми итерациями, так как он существенно расширил ядро в нескольких отношениях, перейдя от дизайна 4-х широких к 6-ти широчайшим средним ядрам. (Apple A11, A12 и A13, с другой стороны, имеют ширину декодирования 7 в ширину, в то время как Cortex-A76, A77 и A78 имеют ширину 4 ширины. Cortex-X1 увеличивает ширину декодирования до 5 -широкий.)
В отчете также представлены некоторые раскрытия, которые ранее не были опубликованы в отношении Exynos M5 и M6. Что касается Exynos M5, Samsung внесла большие изменения в иерархию кэша ядер, заменив частные кэши L2 на новый больший общий кэш, а также раскрыла изменение структуры L3 с 3-баночного дизайна на 2-баночный дизайн с меньше задержки.
Отмененное ядро M6 было бы большим скачком с точки зрения микроархитектуры. SARC внесла значительные улучшения, такие как удвоение кэшей инструкций L1 и данных с 64 КБ до 128 КБ. AnandTech отмечает, что это конструктивный выбор, который реализован только ядрами Apple серии A, начиная с Apple A12.
L2 был удвоен в своих пропускных способностях до 64B / цикл, в то время как L3 увеличился бы с 3MB до 4MB. Exynos M6 был бы ядром декодирования шириной 8. Как отмечает AnandTech, это была бы самая широкая коммерческая микроархитектура, известная в настоящее время с точки зрения декодирования. Однако, хотя ядро было гораздо шире, целочисленные исполнительные блоки не видели значительных изменений. Один сложный конвейер добавил вторую возможность целочисленного разделения, в то время как конвейеры загрузки / хранения остались такими же, как M5 с одним модулем загрузки, одним модулем хранения и одним модулем загрузки / хранения. Трубопроводы с плавающей запятой / SIMD увидели бы дополнительный четвертый блок с возможностями FMAC. DTLB L1 был увеличен с 48 страниц до 128 страниц, а основной TLB был удвоен с 4K страниц до 8K страниц (охват 32 МБ).
Exynos M6 представил бы еще одно существенное отличие от своих предшественников, увеличив окно выхода из строя ядра с первого раза после M3. Были бы большие физические файлы регистров с целочисленными значениями и числами с плавающей запятой, и ROB (буфер переупорядочения) увеличился бы с 228 до 256. AnandTech отмечает, что один важный недостаток пользовательских ядер Exynos все еще присутствует на M5 и будет присутствует и на М6. Это были бы его более глубокие этапы конвейера, которые привели бы к дорогостоящему штрафу за неправильный прогноз с 16 циклами, который был выше, чем у процессорных ядер ARM, которые имеют штраф за неправильный прогноз с 11 циклами. Документ SARC еще больше углубляется в конструкцию предикторов ветвления, демонстрируя конструкцию на основе Scaled Perhedron, основанную на масштабированном хешированном ядре. Эта конструкция постоянно совершенствовалась бы в течение многих лет и внедрений, улучшая точность ветвления и постоянно снижая количество неверных прогнозов на килограмм (MPKI). SARC представляет таблицу, которая показывает количество структур хранения, которые занимает предиктор ветвления во внешнем интерфейсе. Технологии предварительной выборки ядра также подробно описаны в документе, в котором рассказывается о внедрении кэш-памяти µOP в M5, а также об усилиях группы по защите ядра от таких уязвимостей, как Spectre.
SARC также подробно описал усилия по увеличению задержки памяти в пользовательских ядрах Exynos. В Exynos M4 команда SARC включила механизм каскадных нагрузок, который уменьшил эффективную задержку цикла L1 с четырех до трех при последующих нагрузках. Ядро M4 также ввело обход пути с новым интерфейсом от ядер ЦП непосредственно к контроллерам памяти, что позволило избежать трафика через межсоединение. Согласно AnandTech, это объяснило некоторые из более значительных улучшений задержек, которые публикация смогла измерить с помощью Exynos 9820. Exynos M5 представил спекулятивный обход поиска в кеше, который одновременно отправлял запрос как на межсоединение, так и на теги кеша. Это могло бы сэкономить на задержке в случае пропадания кеша, когда выполняется запрос памяти. Средняя задержка нагрузки также непрерывно улучшалась в течение поколений с 14,9 циклов на M1 до 8,3 циклов на M6. Хотя вышеприведенные микроархитектурные характеристики являются довольно техническими, энтузиасты ЦП будут знакомы с термином «Инструкции за такт» (IPC), который означает производительность на МГц при производительности однопоточного ЦП (это основной основной фактор, определяющий производительность однопоточного ЦП, с другой фактор - тактовая частота ядра). Целочисленный IPC и IPC с плавающей точкой являются определяющими для IPC. Команде SARC удалось получить в среднем 20% ежегодных улучшений от M1 до M6. M3, в частности, продемонстрировал значительный процент улучшения IPC, хотя и был подорван другими факторами. Exynos M5 продемонстрировал улучшение IPC на 15-17%, в то время как раскрытие улучшения IPC для невыпущенного Exynos M6 в среднем составило 2,71 против 1,06 для M1, что на 20% больше, чем у M5.
Брайан Грейсон, ведущий газеты, отвечал на вопросы об отмене программы во время сессии вопросов и ответов. Он сказал, что команда всегда была намечена и выполнялась в срок с повышением производительности и эффективности с каждым поколением. (Значит ли это, что цели были недостаточно высокими в первую очередь?). С другой стороны, самой большой трудностью команды было то, что она была крайне осторожна с будущими изменениями дизайна, поскольку у команды не было ресурсов, чтобы начать с нуля или полностью переписать блок. Оглядываясь назад, команда могла бы сделать в прошлом разные выборы с некоторыми направлениями дизайна. В отличие от этого, ARM имеет несколько процессорных команд, работающих в разных местах, которые фактически конкурируют друг с другом. Это позволяет проводить «перепроектирование», например, Cortex-A76. Cortex-A77 и Cortex-A78 являются прямыми преемниками A76.
У команды SARC были идеи для улучшений для будущих ядер, таких как гипотетический Exynos M7. Тем не менее, якобы высокопоставленный сотрудник Samsung решил отменить пользовательскую базовую программу. Как отмечает AnandTech, пользовательские ядра не были конкурентоспособны с точки зрения энергоэффективности, производительности и площади использования (PPA) по сравнению с процессорами ARM любого конкретного поколения. В прошлом месяце ARM анонсировала программу Cortex-X Custom с новым Cortex-X1, ядром следующего поколения, предназначенным для 2021 мобильных устройств. Он имеет философию дизайна, заключающуюся в разрушении оболочки Cortex-A PPA и достижении абсолютной производительности. Таким образом, Exynos M6 было бы сложно конкурировать с ним. Несмотря на это, кажется, что Samsung не будет адаптировать Cortex-X1 и будет использовать только комбо Cortex-A78 + Cortex-A55 в Exynos 992 - хотя он может быть принят в следующем году флагманом Galaxy S.
Команда SARC до сих пор разрабатывает индивидуальные межсоединения и контроллеры памяти для Samsung Systems LSI. Он также работал над пользовательскими архитектурами графических процессоров, но Samsung Systems LSI подписала соглашение с AMD об использовании архитектуры графических процессоров AMD следующего поколения (Next графическая архитектура) в будущих графических процессорах Exynos, начиная с 2021 года.
В целом, проект по созданию собственного ядра ЦП стал уроком для поставщиков мобильных чипов о том, что может пойти не так. У команды SARC CPU были большие амбиции конкурировать с Apple, которая является бесспорным лидером в области мобильных процессоров. К сожалению, он не смог конкурировать с ARM, не говоря уже о Apple. Проблемы могли быть решены, но год за годом усилия SARC отставали на два шага, что отрицательно отражалось на таких продуктах, как Exynos 9810, варианты Samsung Galaxy S9. Теперь все основные производители мобильных чипов для Android будут использовать стандартные IP-адреса процессоров ARM с 2021 года, и в этот список входят Qualcomm, Samsung, MediaTek и HiSilicon. Борьба будет вестись в Apple с ядрами, такими как Cortex-X1, а не с собственными ядрами ARM, разработанными с нуля.