Nvidia Tegra K1 Denver: новые подробности

Представленный в январе этого года мобильный чипсет Nvidia Tegra K1 воистину стал событием года. Изначально некоторые скептики не разделяли энтузиазма производителя по поводу его детища, обещавшего десктопную графическую производительность в мобильном устройстве. Но последующие испытания показали, что Nvidia Tegra K1 — действительно выдающийся и самый производительный процессор в семействе ARM, который в графических испытаниях не уступает даже некоторым топовым моделям на платформе x86. Но до сих пор полноценному тестированию, не считая бенчмарка AnTuTu, подвергалась лишь 32-битная версия этого чипсета.

Напомним, что ее процессорная часть представлена четырьмя (не считая т.н. теневого ядра-компаньона) Cortex-A15 2.3 ГГц. В отличие от этих хорошо известных и используемых во многих процессорах (Samsung Exynos 5422, Huawei HiSilicon Kirin 920 и др.) ядер, используемые в 64-битной версии Tegra K1 два ядра Denver 2.5 ГГц разработаны самой Nvidia. Для начала напомним информацию, известную по опубликованной в январе документации.

В ядрах Denver используется набор инструкций ARMv8 — в отличие от Cortex-A15 с его устаревшим ARMv7-A. На иллюстрации ниже вы можете видеть основные отличия 32-разрядной и 64-разрядной версий процессора:

Как видно из иллюстрации, в обеих моделях используется суперскалярная архитектура, но если каждое из ядер 32-битного процессора одновременно выполняет три микрооперации (μops) за один такт, то 64-битного — уже семь. Размер его кеша также больше: 64-разрядный ЦПУ включает 128 Кб 4-канальный кеш L1 для инструкций, 64 Кб 4-канальный кеш L1 для данных, а также 2 Мб 16-канальный кеш L2.

Но помимо этого, как сообщает вчерашняя запись в блоге Nvidia, ЦПУ 64-разрядной версии отличает еще одна интересная особенность — т.н. динамическая оптимизация кода (Dynamic Code Optimization).

Ее суть состоит в том, что в оперативной памяти устройства, на котором установлен 64-битный Tegra K1, выделяется кеш размером в 128 Мб, в котором часто используемые фрагменты программного кода хранятся в виде оптимизированного микрокода — программы, реализующей набор инструкций самого процессора. В рамках динамической оптимизации кода Denver просматривает сотни инструкций ARM, «распутывает петли», переименовывает регистры, удаляет невостребованные инструкции и разными способами упорядочивает код для достижения оптимальной скорости его выполнения.

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

Динамическая оптимизация кода работает со всем стандартными ARM-совместимыми приложениями и не требует настройки программного кода разработчиками. Причем имея примерно одинаковую с Cortex-A15 32-разрядного Tegra K1 тактовую частоту, ядра Denver с их 7-канальной суперскалярной архитектурой обеспечивают более высокую производительность, не затрачивая при этом больше энергии.

Согласно Nvidia, ее 2-ядерный процессор может достигать большего быстродействия, чем нынешние 4-ядерные и 8-ядерные ЦПУ на большинстве мобильных устройств. Более того, компания утверждает, что по своей производительности ЦПУ с ядрами Denver способны бросить вызов некоторым из передовых десктопных процессоров, имея при этом значительно более низкое энергопотребление. Это означает, что помимо выдающихся, на уровне игровых приставок PlayStation 3 и Xbox 360, возможностей 192-ядерного графического ускорителя, 64-разрядный ЦПУ чипсета Tegra K1 способен предложить пользователям мобильных устройств производительность на уровне ПК при выполнении стандартных приложений.

Появление устройств на базе своего 64-разрядного чипсета Nvidia обещает в конце этого года, причем американская компания заявляет, что на платформе Tegra K1 Denver разрабатывает собственную версию Android L. Любопытно, что и в заголовке, и тексте своей записи, посвященной новому чипсету, Nvidia называет его «первым 64-битным процессором для Android». Строго говоря, это утверждение не соответствует действительности — помимо бюджетных 64-разрядных чипсетов американской компании Qualcomm (бюджетные Snapdragon 615, Snapdragon 610 и Snapdragon 410, а также топовые Snapdragon 808 и Snapdragon 810), таковыми по меньшей мере являются MT6732, MT6752 и MT6795 тайваньской MediaTek, Armada Mobile PXA 1928 американской компании Marvell. Возможно Nvidia хотела сказать, что ее 64-битный Tegra K1 специально оптимизирован для этой операционной системы.

Nvidia