Фундаментальный теоретический конспект: архитектурная иерархия памяти, физические принципы функционирования ячеек SRAM и DRAM, временные задержки и стандарты DDR, физика флеш-памяти NAND и алгоритмы долговечности твердотельных накопителей.
1. Архитектурная проблема «Memory Wall» и принцип локальности
Современные микропроцессоры способны выполнять миллиарды элементарных вычислений в секунду: тактовая частота процессорных ядер достигает 5.0–6.0 ГГц, что соответствует периоду такта всего в 0.16–0.20 наносекунды. Однако скорость отклика основной оперативной памяти (DRAM) за последние десятилетия росла существенно медленнее вычислительной мощности транзисторов. Это физическое и технологическое противоречие получило в компьютерной архитектуре название «Стена памяти» (Memory Wall).
Если бы центральный процессор обращался к оперативной памяти напрямую за каждой инструкцией и каждым операндом, он бы простаивал до 95–98% всего полезного времени в ожидании ответов по внешней шине. Для преодоления этого разрыва в ЭВМ применяется многоуровневая иерархия памяти, опирающаяся на фундаментальные свойства алгоритмов — принципы локальности ссылок (Principle of Locality):
Временная локальность (Temporal Locality): данные или команды, к которым процессор обратился в текущий момент времени, с высокой вероятностью потребуются повторно в ближайшие такты (например, тело цикла, переменные счетчиков, адреса стека вызовов).
Пространственная локальность (Spatial Locality): обращение к определенной ячейке памяти с высокой вероятностью влечет за собой последующие обращения к смежным ячейкам памяти (например, последовательное выполнение машинных инструкций, обход элементов массивов и структур).
Рис. 1. Иерархия запоминающих устройств: баланс времени доступа, емкости и удельной стоимости
2. Схемотехника полупроводниковой памяти: 6T SRAM против 1T1C DRAM
В основе оперативной памяти ЭВМ лежат две кардинально различные схемотехнические концепции: статическая (SRAM) и динамическая (DRAM) память.
2.1. Статическая память (SRAM — Static Random Access Memory)
Каждый бит статической памяти строится на основе 6 транзисторов (ячейка 6T). В ее сердце находится бистабильный триггер, образованный парой перекрестно замкнутых КМОП-инверторов (4 транзистора: два p-канальных подтягивающих и два n-канальных стягивающих). Еще два транзистора являются проходными ключами доступа, подключающими инверторы к дифференциальным битовым линиям (BL и BL#) при подаче сигнала на линию слова (Word Line, WL).
Принцип работы: состояние «0» или «1» поддерживается непрерывно за счет положительной обратной связи в триггере до тех пор, пока на схему подано питание $V_{DD}$. Никаких циклов регенерации не требуется.
Быстродействие: время переключения составляет доли наносекунды (0.5–2 нс).
Ограничение: ячейка 6T требует большой площади кремния (около 120–140 $F^2$, где $F$ — технологическая норма процесса) и имеет значительный паразитный ток статической утечки. Из-за этого SRAM используется исключительно для процессорных кэшей (L1, L2, L3).
2.2. Динамическая память (DRAM — Dynamic Random Access Memory)
Архитектура DRAM была разработана Робертом Деннардом (Robert Dennard) в 1968 году и основана на предельно лаконичной ячейке 1T1C (1 Transistor, 1 Capacitor). Один n-канальный МОП-транзистор играет роль электронного ключа, а крошечный микроконденсатор емкостью всего 25–30 фемтофарад ($1\text{ фФ} = 10^{-15}\text{ Ф}$) хранит заряд.
Компактность: площадь ячейки 1T1C составляет всего $6F^2$ (в 20 раз меньше 6T SRAM!). Это позволяет размещать миллиарды ячеек на одном кристалле.
Проблема разрушающего чтения: при открытии транзистора заряд конденсатора перетекает на битовую линию, вызывая микроскопическое изменение потенциала ($\Delta V \approx 100\text{ мВ}$), улавливаемое усилителем-считывателем (Sense Amplifier). При этом сам конденсатор разряжается, и схема обязана немедленно перезарядить его обратно.
Физика утечки и регенерация (Refresh): тончайший диэлектрик конденсатора неизбежно пропускает ток утечки. Чтобы данные не исчезли, каждые 32–64 миллисекунды (параметр tREFI) контроллер памяти обязан инициировать принудительное циклическое считывание и перезаряд ячеек (команда REFRESH, занимающая время tRFC). Во время регенерации банк памяти временно недоступен для чтения/записи.
Рис. 2. Схемотехническое устройство элементарных ячеек: статическая 6T SRAM и динамическая 1T1C DRAM
3. Организация оперативной памяти и тайминги DRAM
Модуль оперативной памяти (DIMM) — это многоуровневая иерархическая структура:
Канал (Channel): независимый физический интерфейс между контроллером памяти (IMC в процессоре) и модулями памяти. В DDR4 канал имеет ширину 64 бита данных (+ 8 бит ECC). В DDR5 каждый физический модуль разделен на два независимых 32-битных субканала (+ по 8 бит ECC), что вдвое повышает параллелизм доступа.
Ранг (Rank): логический блок чипов памяти шириной 64 бита, подключенный к общему сигналу выбора чипа (Chip Select, CS). Модули бывают одноранговыми (1R, чипы с одной стороны) и двухранговыми (2R, чипы с двух сторон или высокой плотности). Двухранговая память поддерживает чередование рангов (Rank Interleaving), дающее прирост 3–5% производительности при небольшом увеличении нагрузки на контроллер.
Банк (Bank) и Группа банков (Bank Group): внутри каждого кремниевого чипа DRAM память разделена на независимые матрицы (банки). В DDR4 используется 16 банков (4 группы по 4 банка). В DDR5 количество увеличено до 32 банков (8 групп по 4 банка). Доступ к разным группам банков может производиться с минимальной задержкой ($tCCD\_S$), в то время как доступ к банкам внутри одной группы требует увеличенной паузы ($tCCD\_L$).
3.1. Первичные тайминги (Primary Timings)
Обращение к матрице DRAM требует последовательной подачи адресных стробов и управляющих команд:
tRP (Row Precharge Time): предварительный заряд битовых линий. Перед открытием новой строки необходимо закрыть предыдущую и восстановить среднее напряжение на шине ($V_{DD}/2$).
tRCD (RAS to CAS Delay): время от подачи команды активации строки ACTIVATE (строб адреса строки RAS) до готовности матрицы принять команду чтения/записи столбца READ/WRITE (строб адреса столбца CAS).
CL (CAS Latency): количество тактов шины памяти от момента фиксации команды READ до физической выдачи первого слова данных на внешние контакты модуля.
tRAS (Row Active Time): минимальное время, в течение которого открытая строка обязана оставаться активной, чтобы данные из усилителей-считывателей успели полностью перезарядить конденсаторы ячеек.
tRC (Row Cycle Time): минимальное время полного цикла строки от открытия до повторного открытия: $tRC \ge tRAS + tRP$.
3.2. Математика расчета абсолютной задержки памяти
Тайминги, отображаемые в BIOS/UEFI (например, 30-36-36-76), измеряются в тактах тактовой частоты шины памяти, а не в секундах. Поскольку длительность такта обратно пропорциональна частоте, высокое числовое значение тайминга на высокой частоте может означать меньшее или равное время задержки в наносекундах!
Истинное время задержки выборки столбца (CL) в наносекундах:
CL CL * 2000
T_ns (CL) = --------- = ------------------------
f_bus DataRate (MT/s)
где:
- f_bus — реальная тактовая частота шины в МГц;
- DataRate — эффективная скорость передачи в МТ/с (DataRate = 2 * f_bus для технологии DDR, так как передача идет по обоим фронтам импульса — Double Data Rate).
Конфигурация памяти
Эффективная скорость
Реальная тактовая частота
Период одного такта ($t_{CK}$)
Тайминг CL
Истинная задержка CL ($T_{\text{ns}}$)
DDR4-3200 CL16
3200 МТ/с
1600 МГц
0.625 нс
16 тактов
$16 \times 0.625 = \mathbf{10.00\text{ нс}}$
DDR4-3600 CL18
3600 МТ/с
1800 МГц
0.555 нс
18 тактов
$18 \times 0.555 = \mathbf{10.00\text{ нс}}$
DDR5-5200 CL40
5200 МТ/с
2600 МГц
0.384 нс
40 тактов
$40 \times 0.384 = \mathbf{15.38\text{ нс}}$
DDR5-6000 CL30
6000 МТ/с
3000 МГц
0.333 нс
30 тактов
$30 \times 0.333 = \mathbf{10.00\text{ нс}}$
DDR5-6400 CL36
6400 МТ/с
3200 МГц
0.3125 нс
36 тактов
$36 \times 0.3125 = \mathbf{11.25\text{ нс}}$
Ключевой вывод для инженера: Модуль DDR5-6000 с таймингом CL30 обеспечивает точно такую же базовую аппаратную задержку выборки ($10.0\text{ нс}$), как классический модуль DDR4-3200 CL16, но при этом предлагает почти вдвое большую пиковую пропускную способность шины (48.0 ГБ/с на канал против 25.6 ГБ/с у DDR4).
4. Энергонезависимая флеш-память NAND и архитектура SSD
Энергонезависимая флеш-память типа NAND сохраняет данные при отключении питающего напряжения. Запись осуществляется за счет инжекции электронов в изолированную область МОП-транзистора — плавающий затвор (Floating Gate) или нитридный слой кремния в ячейках с ловушкой заряда (Charge Trap Flash, CTF) посредством эффекта туннелирования Фаулера-Нордгейма.
Накопленный в ловушке отрицательный заряд сдвигает пороговое напряжение открытия транзистора ($V_{th}$). По величине этого сдвига контроллер определяет записанную комбинацию битов.
Современный твердотельный накопитель — это специализированный встроенный микрокомпьютер, содержащий многоядерный ARM-контроллер, скоростной буфер ОЗУ (DRAM Cache либо технологию Host Memory Buffer HMB через шину PCIe) и массив микросхем 3D NAND.
Фундаментальное правило NAND Flash:
Чтение и запись производятся страницами (Page, размер 4–16 КБ).
Стирание информации возможно только целыми блоками (Block, размер 4–8 МБ, объединяющий сотни страниц).
Записать данные в страницу повторно без предварительного высоковольтного стирания всего блока физически невозможно!
Для разрешения этого противоречия контроллер SSD исполняет сложнейший микрокод — FTL (Flash Translation Layer):
Трансляция логических адресов (LBA to PBA): операционная система обращается к логическим блокам LBA, но FTL виртуализирует адресацию и записывает данные в любые свободные физические страницы (Out-of-Place Write), обновляя таблицу трансляции в DRAM.
Сборка мусора (Garbage Collection, GC): при дефиците свободных блоков контроллер находит блоки, содержащие «мертвые» (невалидные) страницы, копирует оставшиеся «живые» страницы в свежий чистый блок, а исходный блок полностью стирает.
Команда TRIM (Deallocate): штатные файловые системы при удалении файла лишь стирают запись в файловой таблице (MFT/inode), не перезаписывая сами секторы. Команда TRIM информирует контроллер SSD о том, что данные LBA более не нужны. Это позволяет алгоритму Garbage Collection не копировать мертвые данные, радикально снижая износ памяти.
Выравнивание износа (Wear Leveling): алгоритм распределяет операции стирания равномерно по всем блокам микросхемы. Динамический выравнивает износ при записи новых данных; статический периодически перемещает редко изменяемые данные («холодные» файлы ОС) в изношенные блоки, освобождая свежие блоки для активной записи.
Коэффициент усиления записи (WAF — Write Amplification Factor):
Объем байт, физически записанных в NAND
WAF = -------------------------------------------
Объем байт, переданных операционной системой
При последовательной записи на пустой накопитель $WAF \approx 1.0$. При заполнении SSD свыше 90% и случайной мелкоблочной записи 4K без TRIM коэффициент WAF может подскакивать до $3.0\text{–}6.0$, что означает сокращение фактического ресурса накопителя в несколько раз!
5. Постоянная и энергонезависимая системная память (ROM / NVRAM)
Помимо энергозависимой оперативной памяти и емких накопителей данных, в состав любой ЭВМ входят специализированные энергонезависимые модули памяти малого объема:
SPI NOR Flash: микросхема постоянной памяти с последовательным протоколом SPI, в которой хранится образ микрокода UEFI BIOS, а также системные модули инициализации (Intel Management Engine / AMD Platform Security Processor). Особенность архитектуры NOR — возможность прямого побайтового произвольного чтения с аппаратной поддержкой исполнения кода на месте (XIP, eXecute In Place) без предварительной загрузки в ОЗУ.
CMOS NVRAM: память энергонезависимой конфигурации BIOS (порядок загрузки дисков, профили XMP/EXPO, пароли администратора). В современных материнских платах эти параметры сохраняются в защищенную область NVRAM внутри чипа SPI Flash, а системная литиевая батарейка CR2032 (3.0 В) питает исключительно тактовый генератор часов реального времени (RTC — Real Time Clock).
EEPROM: электрически стираемая перепрограммируемая постоянная память. Применяется в микросхемах SPD (Serial Presence Detect) на модулях оперативной памяти: хранит заводские профили частот, задержек и напряжений (JEDEC, XMP 3.0, EXPO).
6. Вопросы и инженерные задания для самопроверки
Вопрос 1: Анализ задержек DRAM
Рассчитайте абсолютную задержку CL в наносекундах для модуля DDR5-5600 с таймингом CL46 и сравните ее с модулем DDR4-2666 с таймингом CL19. Какой модуль среагирует быстрее на изолированный запрос одного слова данных?
Вопрос 2: Физика ячеек памяти
Почему объем кэш-памяти L3 в процессорах потребительского класса редко превышает 32–96 МБ, тогда как емкость модуля DRAM на той же кремниевой подложке легко достигает десятков гигабайт? Назовите не менее двух схемотехнических причин.
Вопрос 3: Надежность твердотельных накопителей
Сервер базы данных совершает непрерывную запись журнала транзакций WAL блоками по 4 КБ со случайным доступом. Почему использование бытового накопителя на базе памяти QLC без аппаратного буфера DRAM и без поддержки PLP (Power Loss Protection) является грубейшей инженерной ошибкой?
Вопрос 4: Технологии магнитной записи HDD
В чем заключается физический принцип черепичной записи (SMR) в жестких магнитных дисках? Почему диски SMR категорически не рекомендуются к установке в RAID-массивы с чередованием и четностью (RAID-5, ZFS RAID-Z)?