Что подразумевается под кешем данных и кешем инструкций?

ОтВот:

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

Таким образом, довольно часто иметь два кэша: кэш команд, в котором хранятся только инструкции, и кэш данных, в котором хранятся только данные.

Интуитивно понятно различие между инструкциями и данными, но теперь я не уверен в разнице в этом контексте? Что представляет собой данные и помещается в кэш данных, а что представляет собой инструкции и помещается в кэш команд?

Я знаю сборку ARM. Будет что-нибудь требующееSTR, LDR, LDMF или жеSTMFD использовать кеш данных? Но технически говоряSTR, LDR, LDMF а такжеSTMFD все инструкции, так что я, поэтому я запутался. Должны ли «данные» всегда существовать с «инструкцией»? Рассматриваются ли данные в.data раздел?

НапримерLDR R1, =myVar тогда LDR попадет в кеш инструкций, а содержимое myVar попадет в кеш данных? Или это так не работает?

Инструкции и данные имеют разные схемы доступа. Может кто-нибудь уточнить?

Этот комментарий, который я сделал на полезном посте, подчеркивает мое затруднение понимания:

«Идея состоит в том, что если инструкция была загружена из памяти, она, вероятно, скоро будет использована снова», но единственный способ узнать следующую инструкцию - это прочитать ее. Это означает, что чтение из памяти (вы не можете сказать, что оно уже в кеше, потому что новая инструкция красного цвета). Так я до сих пор не вижу смысла? Скажем, инструкция LDR только что произошла, так что теперь LDR находится в кеше данных. Может быть, произойдет еще одна инструкция LDR, а может, и нет, мы не можем быть уверены, поэтому нам нужно на самом деле прочитать следующую инструкцию - тем самым победив цель кэширования.

Ответы на вопрос(4)

Ваш ответ на вопрос