Я пытаюсь понять, как RAM удается поспевать за CPU. Вот объяснение того, почему у меня сложилось впечатление, что она не сможет:
- Тактовые частоты современных ЦП часто превышают тактовые частоты модулей оперативной памяти (например, процессор ноутбука с частотой 2,4 ГГц против модуля оперативной памяти с частотой 2133 МГц).
- Такие процессоры часто имеют несколько ядер, что позволяет выполнять инструкции с большей скоростью, чем тактовая частота.
- Эти процессоры также могут использовать методы одноядерного параллелизма для выполнения большего количества инструкций на ядро, чем имеется тактовых циклов.
- При этом инструкции выполняются с гораздо большей скоростью, чем частота оперативной памяти.
- Максимум, за один такт ОЗУ можно извлечь содержимое одного адреса из ОЗУ.
- За исключением, пожалуй, BIOS, инструкции в конечном итоге должны поступать из оперативной памяти.
- Таким образом, потребность в извлечении инструкций из памяти значительно превышает возможности ОЗУ ее предоставить.
Я нашел ответПитер КордеснаэтотВопрос на Stack Overflow, в котором объясняется, что эта проблема решается кэшированием и предварительной выборкой, но я не понимаю, как процессор вообще получает возможность предварительной выборки, учитывая, что огромная скорость, с которой ему необходимо извлекать инструкции, по-видимому, превышает ту, которую может обеспечить оперативная память.ЭтотНа странице Википедии указано, что процессор Intel Core i7 6950X способен выполнять инструкции со скоростью 317900 MIPS; при частоте ОЗУ 2133 МГц это составляет примерно 150 инструкций за такт ОЗУ.
Что я упускаю?
Я только что посмотрелСидней Хаукеответ на ранее связанный вопрос, в котором говорится, что инструкции, которые ЦП знает, что будут повторяться, не извлекаются из памяти повторно. Достаточно ли этого самого по себе, чтобы компенсировать разницу в скорости?