Я не могу понять, почему модули DIMM DDR3 (как и другие модули DIMM, такие как DDR2) не имеют распиновки для всей адресуемой памяти. Я понимаю, что они не должны иметь все 64 адресных контакта, потому что современные компьютеры редко имеют более 32 ГБ ОЗУ, поэтому 35 контактов будет достаточно. Но у них всего 15 контактов, этого достаточно только для 32 КБ памяти. Как это работает? Что мне не хватает?
Я немного понимаю процесс работы процессора и оперативной памяти:
CPU и RAM имеют адресные контакты и контакты данных, которые соединены соответствующими шинами. Например, процессор Intel 8080 имел 16 адресных контактов и 8 контактов данных.
CPU устанавливает необходимые контакты адреса и READ/WRITE в состояние ON и получает значение из RAM.
- Контроллер памяти остается промежуточным - он добавляет уровень абстракции для ЦП, то есть выполняет все механизмы: выбирает модуль ОЗУ, затем чипирует модуль ОЗУ и т.д. ЦП только передает ему адрес и получает данные.
- Кэш процессора выполняет свою работу до контроллера памяти, я не знаю много об этом.
Но в конце контроллер памяти также должен использовать полный адрес для извлечения данных из ОЗУ, верно? Как он может указать 64-битный адрес, используя только 15-битный.
Я взял эту спецификацию в качестве примера и добавил немного цвета для удобства. Адреса контактов выделены красным цветом.