Операции обслуживания кэша, предсказателя ветвления и TLB - PullRequest
0 голосов
/ 17 октября 2018

О ARM DSB барьер памяти инструкция :

DSB -

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

Хорошо понято, Далее:

Эта инструкция завершается, когда:

Все явные обращения к памяти до завершения этой инструкции.

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

Подождите, что конкретно означает обслуживание кэша, предсказателя ветвления и TLB ?Означает ли это промывка?и означает ли это, что сама инструкция DSB может вызвать такую ​​очистку?а что еще считается техническим обслуживанием?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Ключевым моментом для устранения этой неоднозначности является признание того, что TLB maintenance является значительно более распространенным термином, чем TLB operation.(примерно в 3 раза в соответствии с простым поиском).

Если TLB operation используется отдельно, то, по-видимому, оно относится либо к процессу операции, либо к определенной идентифицированной деятельности.Там, где инструкции описаны как взаимодействующие с TLB, они описаны под заголовком TLB maintenance operations, и эта группа образует довольно большой набор.Этот набор инструкций, как правило, не будет описываться как просто TLB operations, поэтому предлагаемый вами синтаксический анализ требует разделения общего (если не явно стандартного) термина в документации.

0 голосов
/ 17 октября 2018

Я думаю, что это проблема двусмысленности английской грамматики.Я думаю, что они имеют в виду

  • операция кэширования (все побочные эффекты загрузки / сохранения или явная очистка / недействительность после операции MMU)
  • операция предиктора ветви (например, глобальное включение / отключение)прогноз ветвления)
  • операция обслуживания TLB (например, сделать недействительной запись TLB после изменения записи таблицы страниц)

Я не думаю, что они пытаются описать операции предиктора ветвлениякак «обслуживание», и слово «обслуживание» в этом предложении должно идти только с «TLB».

(Некоторые операции предиктора ветвления могут быть описаны как обслуживание, если ARM добавил предиктор ветвленияОперации сброса для смягчения Спектра, как Intel для своих процессоров x86 с их недавними обновлениями микрокодов, которые добавили новый регистр для конкретной модели. (https://access.redhat.com/articles/3311301). Но я не думаю, что это то, что их предложение пытается сказать здесь.)

...