Ключевые слова дренажа: кеш, кеш, кеш, CCI, CMN, CCI-550, CCI-500, DSU, SCU, L1, L2, L3, системный кеш, некэшируемый, кешируемый, неразделяемый, внутренний-разделяемый, внешний- общий, optee, ATF, TF-A, Trustzone, optee3.14, MMU, VMSA, кэш, TLB, Arm, Armv8, Armv9, TEE, безопасность, управление памятью, таблица страниц...
Эта статья перепечатана Чжоу Хехе, бароном, код меняет мир, выбор оружия, Armv8/armv9, зона доверия/tee, SecureBoot, старший эксперт по архитектуре безопасности, 11 лет опыта в области мобильной безопасности/разработки базовой безопасности SOC. Хорошо разбирается в проектировании и разработке продуктов безопасности доверенных зон и тройников.
Кэш многоуровневый. В системе могут быть L1, L2 и L3. Конечно, чем ближе к ядру, тем меньше кэш и тем он дороже. Вообще говоря, для архитектуры big.LITTLE L1 находится в ядре, L1 разделен на кеш данных L1 и кеш инструкций L1, кеш L2 находится в кластере, а L3 находится на шине BUS.
Во многих случаях кеш используется вместе с MMU (то есть он включается или выключается одновременно), поскольку атрибуты записи таблицы страниц MMU управляют разрешениями на память, стратегиями кэширования кэша и т. д.
В архитектуре ARM кэш L1 является VIPT, то есть, когда виртуальный адрес отправляется и MMU начинает выполнять преобразование адресов, виртуальный индекс можно запросить в запросе кеш-памяти L1 и запросе индекса кэша L1. Готово. в то же время. Если L1 пропущен, L2 будет запрошен снова. Если L2 не найден, L3 будет запрошен снова. Обратите внимание, что в архитектуре Arm только кэш L1 является VIPT, а L1L2 и L3 — PIPT.
big.LITTLE
Архитектура и DynamIQ
Архитектура Кэш другой
big.LITTLE
В Архитектуре большое ядро и малое ядро существуют в разных кластерах, как два разных ACE или CHI. Master,Подключен к шине согласованности кэша (CCI или CMN). Согласованность большого основного кластера и малого основного кластера,Эту проблему также необходимо решить с помощью шины согласованности.существовать big.LITTLE
из Архитектурасередина,L1 находится в существующем ядре,Он является частным для ядра; L2 находится в существующем кластере.,верноclusterвcoreявляется общим;L3новерновсеclusterобщий。big.LITTLE
Схема иерархии кэша Архитектуры выглядит следующим образом:
существовать dynamIQ
В Архитектуре все L1 и L2 находятся в существующем ядре и являются частными для ядра; L3 находится в существующем кластере, а ядро в кластере является общим, если есть L3 или система; кэш является общим для всех кластеров. Диаграмма иерархии кэша Архитектуры dynamIQ показана ниже.
Обратите внимание, что, вообще говоря, DSU Кластер может поддерживать 8 ядер. Ниже приведен лишь крайний пример. При проектировании оборудования мне пришлось разместить два DSU. cluster Является ли это возможным? Два DSU Кластер как два ACE Мастер подключен к шине согласованности CCI.
для АСЕ Шина когерентности главного кэша имеет CCI-550
、CCI-500
、CCI-400
。
Его основная функция – соединение несколькихACE Master
、ACE-lite
Master
,Затем через протокол интерфейса ACE,сделать несколькоMasterмеждукэшпоследовательность。CCIНаиболее поддерживаемые2индивидуальныйACE Master
,Полная поддержка8индивидуальныйACE Master
+ACE-lite Master
。
Итак, если это big.LITTLE Архитектура, то она поддерживает до двух соединений. кластеров, каждый кластер 8 ядер, поэтому поддерживает до 8 ядер, если это Архитектура dynamIQ, она поддерживает до двух DSU; Соединение кластеров, каждый кластер 8 ядер, поэтому поддерживается до 16 ядер.
для ОМС Шина когерентности главного кэша имеетCMN-700、CMN-600.
Его основная функция – соединение несколькихCHI Master
、ACE-lite
Master
,Затем через протокол интерфейса CHI,сделать несколькоMasterмеждукэшпоследовательность。CCI-600Наиболее поддерживаемые8индивидуальный CHI Master
,Полная поддержка8индивидуальныйCHI Master
+ ACE-lite Master
。
существоватьbig.LITTLE
Архитектурасередина,Интерфейс, который кластер подключает к шине согласованности.,Может быть АСЕ,Это также может быть ЧИ,Такой большой.МАЛЕНЬКИЙ кластер можно использовать как ACE Мастер подключается к шине и может также использоваться как CHI. Мастер подключен к шине.
2017введено вdynamIQАрхитектура, существоватьDSU(dynamIQ Share Unit), интерфейс, подключенный к шине согласованности, может быть ACE или CHI, поэтому DSU кластер можно использовать как ACE Мастер подключается к шине и может также использоваться как CHI. Мастер подключен к шине.
исуществоватьDSU-110середина, Интерфейс, подключенный к шине согласованности, может быть CHI. , но больше нет ACE. Если вы используете DSU-110, DSU Кластер как ОМС Мастер, то вам необходимо использовать метод соединения шины CMN.
Ну и что,Схема системной архитектуры, которую вы видите (также наиболее часто используемая в последние годы),Это может выглядеть так,всеcoreВсесуществоватьодининдивидуальныйDSU В кластере все ядра используют общий уровень L3. кэша, DSU подключается к шине согласованности межсоединений CCI или CMNкэш и может использоваться с другими ACE-Lite. Мастер (например, GPU) данные общего кэша
Конечно, если привести немного крайний пример, то можно соединить приведенную ниже схему Архитектуры. В системе есть два DSU. кластере DSU подключен к шине согласованности межсетевого взаимодействия кэша CCI или CMN.
фактическиbig.LITTLEАрхитектураизcluster,Его также можно использовать как CHI. Владелец. Следующий ультраэкстремальный пример технически осуществим (разумеется, никто не сможет его использовать).
Вы можете обратиться к документации ARM,
big.LITTLE
Архитектураизcore,Размер кэша в основном фиксирован.dynamIQ
Архитектураизcore,Это L1иL2 Размер кэша в основном фиксирован. Но для L2 cache Выбор Конфигурация не является обязательным.Также проверьте документацию DSU TRM, и вы увидите, что кэш L3 можно настроить с размером 0–16 МБ.
Организационными формами кэша являются:
существуют В ядре, в Архитектуре, в SOC, организационная форма всех кэшей неодинакова. Даже если L1 D-cacheиL1 Организационная форма I-кэша может быть неодинаковой. специфическийиз Какова организационная форма?>Образециз,Нужно проверить ваше основное руководство по трм.
Например, мы запрашиваем информацию о кэше Cortex-A53 следующим образом: I-кэш L1
L1 D-Cache
L2 cache Настраиваемый: 128KB, 256KB, 512KB, 1MB and 2MB.
Из-за многопоточного группового кэша существуют некоторые терминологические понятия:
Кэш обычно имеет следующие типы;
Итак, что еще вы узнаете о VIVT? Почему вам все еще нужно понимать принципы VIVT? Зачем еще нужно анализировать проблему одноимённых и повторяющихся названий тайников? 这Образецизвопрос,существоватьarmv7/armv8/armv9Архитектурасередина Всене существуетсуществоватьиз
Для атрибута кэшируемого внутренний и внешний описывает определение или классификацию кэша. Например, считайте L1/L2 внутренним кэшем L3.
Обычно внутренний интегрированный кэш относится к внутреннему кэшу, а кэш на внешней шине AMBA принадлежит внешнему кэшу. Например:
Затем мы можем настроить отдельные свойства для каждого типа кэша, например:
Для общей собственности,внутренний и внешний описывает область кэша. Например, внутренний относится к кешу в диапазоне L1/L2.,внешний относится к кешу в диапазоне L1/L2/L3.
В существующем рукаве Архитектура физическая память делится на два типа: аппаратную и обычную.
Вместо этого каждый тип памяти (устройство→обычный) имеет несколько атрибутов. ARM предоставляет регистр MAIR, Разделите 64-битный регистр на 8 полей атрибутов attr. Каждое поле атрибута attr имеет 8 бит и может быть настроено на различные атрибуты памяти. Другими словами, существует рука ядро поддерживает до 8 типов физической памяти.
Среди битов атрибутов в записи таблицы страниц, используемых нашим существующимMMU, BIT[4:2] занимает 3 бита, обозначая индекс, который фактически указывает на attr в регистре MAIR. (Attribute fields in stage 1 VMSAv8-64 Block and Page descriptors)
PBHA, bits[62:59] :for FEAT_HPDS2 XN or UXN, bit[54] : Execute-never or Unprivileged execute-never PXN, bit[53] :Privileged execute-never Contiguous, bit[52] : translation table entry Он непрерывен и может хранить один TLB. Вход в DBM, bit[51] :Dirty Bit Modifier GP, bit[50] :for FEAT_BTI nT, bit[16] :for FEAT_BBM nG, bit[11] : кэшсуществовать Использует ли трансляция в TLB идентификацию ASID AF, bit[10] : Access flag, После AF=0 этот флаг будет установлен в 1 при первом доступе к странице. т.е. подразумевает первое посещение SH, bits[9:8] : общий атрибут AP[2:1], bits[7:6] :Data Access Permissions bits, NS, bit[5] :Non-secure bit AttrIndx[2:0], bits[4:2]
Другими словами, каждая запись в таблице страниц указывает на поле атрибута в регистре MAIR. То есть каждая запись в таблице страниц настроена по типу памяти. Как показано ниже, хорошо продемонстрировано, что каждый дескриптор страницы (также называемый записью) таблицы страниц MMU указывает на тип атрибута памяти.