Как оперативная память успевает за процессором?

Как оперативная память успевает за процессором?

Я пытаюсь понять, как RAM удается поспевать за CPU. Вот объяснение того, почему у меня сложилось впечатление, что она не сможет:

  1. Тактовые частоты современных ЦП часто превышают тактовые частоты модулей оперативной памяти (например, процессор ноутбука с частотой 2,4 ГГц против модуля оперативной памяти с частотой 2133 МГц).
  2. Такие процессоры часто имеют несколько ядер, что позволяет выполнять инструкции с большей скоростью, чем тактовая частота.
  3. Эти процессоры также могут использовать методы одноядерного параллелизма для выполнения большего количества инструкций на ядро, чем имеется тактовых циклов.
  4. При этом инструкции выполняются с гораздо большей скоростью, чем частота оперативной памяти.
  5. Максимум, за один такт ОЗУ можно извлечь содержимое одного адреса из ОЗУ.
  6. За исключением, пожалуй, BIOS, инструкции в конечном итоге должны поступать из оперативной памяти.
  7. Таким образом, потребность в извлечении инструкций из памяти значительно превышает возможности ОЗУ ее предоставить.

Я нашел ответПитер КордеснаэтотВопрос на Stack Overflow, в котором объясняется, что эта проблема решается кэшированием и предварительной выборкой, но я не понимаю, как процессор вообще получает возможность предварительной выборки, учитывая, что огромная скорость, с которой ему необходимо извлекать инструкции, по-видимому, превышает ту, которую может обеспечить оперативная память.ЭтотНа странице Википедии указано, что процессор Intel Core i7 6950X способен выполнять инструкции со скоростью 317900 MIPS; при частоте ОЗУ 2133 МГц это составляет примерно 150 инструкций за такт ОЗУ.

Что я упускаю?


Я только что посмотрелСидней Хаукеответ на ранее связанный вопрос, в котором говорится, что инструкции, которые ЦП знает, что будут повторяться, не извлекаются из памяти повторно. Достаточно ли этого самого по себе, чтобы компенсировать разницу в скорости?

Связанный контент