Модули памяти. Логическое распределение памяти
Изучим устройство DIMM, каналы, ранги, совместимость и переход от виртуального адреса к физическому. Сначала изучите всю теорию, разберите интерактивные модели, затем пройдите тест в конце страницы. Ответы сохраняются в этом браузере автоматически.
Что такое модуль оперативной памяти
В предыдущей теме мы разобрали DRAM — технологию хранения битов. Но компьютер использует не отдельно лежащие ячейки, а модули памяти или микросхемы, размещённые на системной плате. Съёмный модуль RAM — печатная плата с несколькими чипами DRAM, контактами и служебными электронными компонентами. Она подключается к материнской плате через слот. Контроллер памяти, обычно встроенный в процессор, организует обмен данными.
Что находится внутри модуля
- DRAM-чипы физически хранят биты. Каждый чип имеет свою организацию — банки, строки, столбцы.
- Печатная плата соединяет чипы с контактами слота.
- SPD (Serial Presence Detect) — служебная информация о параметрах модуля, считываемая прошивкой системы при инициализации.
- Дополнительные компоненты могут включать управление питанием и буферизацию сигналов; это зависит от поколения и класса модуля.
Форм-факторы и поколения DDR
DIMM — распространённый полноразмерный модуль для настольных ПК и серверов. SO-DIMM — уменьшенный съёмный модуль, часто применяемый в ноутбуках и компактных компьютерах. Некоторые современные ноутбуки используют распаянную память LPDDR, а не съёмный SO-DIMM.
DIMM — полноразмерная планка
Стандартное решение для многих настольных материнских плат. Параметры зависят от DDR-поколения.
SO-DIMM — компактная планка
Более короткий модуль. Используется там, где меньше места.
DDR3, DDR4, DDR5
Это поколения двойной скорости передачи. С ростом поколения меняются сигнализация, напряжения, организация и потенциальная пропускная способность. DDR4 нельзя вставить в DDR5-слот и наоборот. Даже если планка внешне похожа, у неё другое расположение ключа, электрические параметры и поддержка контроллера.
DDR5-UDIMM организован в два независимых 32-битных субканала передачи данных вместо одного 64-битного интерфейса DDR4-UDIMM. Это не означает «два полноценных 64-битных канала» и не превращает систему с одним модулем в обычную двухканальную систему с двумя DIMM.
Каналы, слоты и ранги: в чём разница
Канал памяти — путь обмена данными между контроллером и памятью. В типичной двухканальной системе два независимых 64-битных канала могут работать параллельно и увеличивать доступную полосу пропускания. Слот — физическое гнездо для модуля. Ранг (rank) — группа DRAM-чипов на модуле, которая вместе образует логически выбираемый набор для передачи данных. Ранг не равен каналу.
модуль в A2
модуль в B2
Если установить один подходящий модуль, данные обычно доступны по одному задействованному каналу; при установке двух совместимых модулей в рекомендуемые слоты разных каналов может использоваться двухканальный режим. Два модуля в разных слотах не гарантируют два канала — всё зависит от платы и размещения. Четыре модуля на двухканальном CPU обычно остаются двухканальной системой, но с двумя модулями на канал (2DPC). Это может ограничить максимальную достижимую скорость памяти.
Single rank и dual rank
Одноранговый модуль (1R) имеет один выбираемый набор чипов, двухранговый (2R) — два. Не следует автоматически считать, что чипы «с одной стороны = один ранг, с двух = два»: физическое расположение и логическая организация не обязаны совпадать.
🧮 Калькулятор теоретической полосы пропускания
Упрощённый предел для 64-битных каналов; реальные результаты ниже из-за накладных расходов. Для DDR5 суммарная ширина двух 32-битных субканалов одного стандартного модуля без ECC — 64 бита.
Ёмкость, частоты, SPD, ECC и совместимость
На упаковке можно увидеть 16 GB DDR5-5600 CL46 SO-DIMM. Это означает объём 16 ГБ, поколение DDR5, скорость 5600 миллионов передач в секунду, CAS-задержку 46 циклов и компактный формат SO-DIMM. Совместимость нужно сверять со спецификацией платформы.
| Термин | Простое объяснение |
|---|---|
| SPD | Профиль параметров модуля: так система узнаёт его характеристики |
| JEDEC | Организация стандартов полупроводниковой индустрии, включая базовые профили памяти |
| XMP / EXPO | Профили настройки некоторых модулей на совместимых платформах; повышенные значения могут требовать дополнительной стабильности и поддержки |
| ECC | Контроль ошибок: в соответствующей системе позволяет обнаруживать и исправлять определённые ошибки данных |
| UDIMM / RDIMM | Небуферизованный модуль / регистровый модуль; они обычно не взаимозаменяемы |
| On-die ECC DDR5 | Внутреннее исправление ошибок внутри кристалла DRAM — не равно сквозной защите ECC всей подсистемы памяти |
Пример расчёта: два модуля по 16 ГБ дают 32 ГБ установленной ёмкости. Если память работает в двухканальном режиме, ширина обмена увеличивается, но суммарный объём не становится 64 ГБ.
Физическая организация DRAM: банки, строки и столбцы
Внутри DRAM ячейки объединяются в массивы. Чаще всего говорят о банках (banks), строках (rows) и столбцах (columns). Чтобы получить данные, контроллер обычно активирует строку банка; затем читает нужные столбцы. Если нужная строка уже открыта (row hit), обращение может потребовать меньше операций. Если открыта другая строка, сначала потребуется закрыть её и активировать новую.
| Строка \ столбец | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 1 |
| 1 — активна | 1 | 1 ◀ | 0 | 1 |
| 2 | 0 | 0 | 1 | 0 |
| 3 | 1 | 1 | 1 | 0 |
С этим связаны тайминги: tRCD — задержка после активации строки до команды чтения/записи; tRP — время подготовки банка к активации другой строки; tRAS — минимальное время активности строки. Значения зависят от технологии и режима.
Логическое распределение памяти: процессы и адресные пространства
Установленный модуль предоставляет физическую память, но прикладная программа обычно не управляет ею напрямую. Каждый процесс работает со своим виртуальным адресным пространством, а ОС и механизм трансляции адресов процессора сопоставляют виртуальные области физическим страницам. Это помогает изолировать процессы и использовать память гибко.
Внутри виртуального адресного пространства процесса часто выделяют логические области: код (инструкции), данные (например, глобальные переменные), heap — куча (динамические выделения), stack — стек (кадры вызовов и локальные данные). Эти области описывают назначение данных в виртуальном адресном пространстве, а не обязательное непрерывное размещение на модуле DDR.
Страничная организация: виртуальная страница и физический кадр
Страница (page) — блок виртуального адресного пространства фиксированного размера. Физический кадр (frame) — участок физической памяти такого же размера, куда можно сопоставить страницу. Частый размер обычной страницы на x86 — 4 КиБ (4096 байт), но архитектуры поддерживают и другие размеры, включая большие страницы.
- Виртуальный адрес делится на номер страницы и смещение внутри неё.
- MMU (блок управления памятью) с помощью таблиц страниц определяет физический кадр.
- Номер кадра соединяется с тем же смещением: получается физический адрес.
- Если отображение недействительно или запрещено, возникает исключение page fault; ОС решает, можно ли разрешить обращение.
🧪 Интерактив: трансляция адреса
В этой учебной таблице страница = 1024 байта. Сопоставления: 0 → 7, 1 → 2, 2 → 9, 3 → отсутствует.
TLB, подкачка и ошибки страниц
TLB — быстрый кэш недавних трансляций виртуальных адресов в физические. Промах TLB не означает, что данных нет в RAM: процессору может понадобиться пройти таблицы страниц. Page fault не всегда означает чтение с диска: ОС может выделить новую страницу, разрешить защиту или обработать другие ситуации. Только некоторые ошибки требуют реального чтения с накопителя (hard page fault).
Swap / файл подкачки позволяет ОС временно хранить на накопителе часть страниц, которые сейчас не находятся в RAM. Это не равнозначная замена физической памяти: чтение и запись SSD существенно медленнее рабочих обращений к DRAM. Также приложения могут отображать файлы напрямую в адресное пространство (memory-mapped files).
Стек, куча, доступ и защита памяти
Когда программа вызывает функцию, она обычно организует кадр стека: адрес возврата, часть служебных данных, а также локальные значения в зависимости от компилятора. Когда функция завершается, её стековый кадр больше не нужен. Куча предназначена для динамических объектов, срок жизни которых может не совпадать с одним вызовом функции; выделением управляет программа и её среда выполнения.
Стек
Удобен для дисциплины «последним пришёл — первым ушёл». Его размер ограничен; глубокая рекурсия может привести к переполнению стека.
Куча
Подходит для объектов с динамическим временем жизни: массивов переменного размера, структур данных. Возможны утечки памяти и фрагментация.
На уровне страниц ОС устанавливает права, например чтение, запись, исполнение. Программа не должна произвольно читать память другого процесса. Недопустимое обращение может завершиться ошибкой защиты (например, segmentation fault в Unix-подобных системах).
Логическое против физического — закрепление
Физическое: реально установленные чипы DRAM, каналы, банки, кадры RAM. Логическое: виртуальные страницы и адреса, стек, куча, код, области защиты процесса. ОС и аппаратная MMU связывают эти уровни, но они не обязаны совпадать один к одному.
Тест по изученному материалу
Теоретическая часть завершена. Выберите один ответ в каждом вопросе, затем нажмите «Проверить тест». Результат покажет число правильных ответов и объяснит ошибки. В конце ответьте на развёрнутые вопросы — их проверяет преподаватель.
Часть A. Выберите правильный ответ
Часть Б. Объясните своими словами
Эти вопросы нужны, чтобы проверить понимание, а не угадывание. Автоматическая оценка их не учитывает.
Источники для дополнительного изучения
Материал адаптирован для обучения. Схемы и модели — упрощённые учебные примеры; значения производительности зависят от конкретного устройства.
Перед сдачей
Нажмите «Отправить работу — сохранить PDF». Откроется окно печати: в качестве принтера выберите «Сохранить как PDF». В отчёте будут ФИО, выбранные варианты, балл и ваши развёрнутые ответы. Отправка на сервер не выполняется.