Оперативная память получает указание требуемых данных

cs.stackexchange https://cs.stackexchange.com/questions/121312

Вопрос

Предварительная информация:

Я уверен, что кто-то спросил что-то вдоль этих строк, но независимо от того, как я это слово, я не могу найти окончательный ответ

Вопрос:

ОЗУ получают какую-то индикацию относительно того, сколько данных требует процессора или существует установленная сумма данных, и если процессор требует большего количества, ему нужно позвонить снова (и что это набор данных). < / P >.

Во время промывки кэша ЦП потребует, по меньшей мере, одна линия кэша (32, 64 или 128 байтов). Подтверждает ли CPU для запроса оперативной памяти несколько раз, чтобы получить одну строку кэша (при условии, что наборная сумма составляет 8 байтов), либо делает RAM, возвращающую дополнительные данные за вызов или оперативность имеет определенный способ уведомления о том, сколько данных требуется?

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

дополнительные очки:

Если вы знаете и имеете дополнительную информацию, следующие дополнительные дополнения будут также заинтересовать:

    .
  • Если это отличается в зависимости от CPU Make (различия поколений также могут быть интересными, но если вы добавите информацию об этом, пожалуйста, пропустите подобные поколения)
  • Если это отличается в зависимости от типа оперативной памяти
  • Как CPU может запросить линию кэша другого размера или размер блока (применяется только в том случае, если ОЗУ возвращает фиксированный размер, который размер блока или кеша)
  • Любая другая полезная информация или ресурсы для дальнейшего чтения

Потенциальный ответ:

Я, кажется, обнаружил подсказку к ответу при рассмотрении скорости передачи оперативной памяти, в частности, где она указывает, как рассчитать скорость передачи из спецификаций и от «архитектуры DDR SDRAM Prefetch», которая указывает на то, сколько 64 бита » Блоки «могут быть запрошены на вызов на RAM (например, 8 для DDR3 и DDR4, 4 для DDR2 и 2 для DDR1)

Это было полезно?

Решение

в самых современных оборудованиях, основная память больше похожа на периферию.

Что я собираюсь описать, в дальнейшем следует оборудование для PC-ISH Intel-Esque, но это очень похоже на другие системы.

Во время начальной загрузки, когда питание сначала применяется, CPU имеет только кэш, прошивку, а также немного сопоставленной памятью ввод / вывод. Одна из первых рабочих мест состоит в том, чтобы инициализировать внешнюю часть оборудования, традиционно известный как «контроллер памяти» или «Controller Memory Controller Cub» (в аппаратном обеспечении ПК, он является частью Northbridge), которая напрямую связывается с модулями ОЗУ.

Я говорю «оперативные модули», потому что они действительно похожи на периферию, как я уже сказал. Оборудование спрашивает модуль, сколько памяти присутствует, а также договаривается о деталях протокола, они будут использовать для передачи данных в и из основных памяти.

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

Это полезная оптимизация при выполнении операций, таких как линейные сканирования через блок памяти. Некоторая комбинация контроллеров CPU и Cache может обнаружить это и использовать эту информацию для выдачи предварительной защиты от RAM.

Другие советы

RAM просто получает запросы на данные для перемещения в / из CPU (действительно MMU).Данные перемещаются в единицах строк кэша.

В настоящее время размеры кеша обычно настолько большие, что требуется более одной передачи от ОЗУ в кэш для полной загрузки строки кэша.Но чтение от ОЗУ требует времени для оперативной памяти, чтобы получить адрес данных, которые будут прочитаны, а затем время для фактического переноса, и просить оперативную память, скажем, четыре трансфера в ряд намного быстрее, чем доступ к четырем случайным местам памяти.

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

Было бы возможно частично заполнить линию кэша (и продолжить заполнение другой строки кэша вместо полностью заполнения первого).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top