Энергонезависимая память. Иерархия памяти
Фундаментальный конспект лекции по дисциплине «Архитектура аппаратных средств» (СИЭУиП, занятие 13, §2.2, с. 8). Физика уровней хранения, пирамида памяти, математический анализ эффективного времени доступа, принципы локальности, кэширование, устройство NAND Flash (3D TLC/QLC, Wear Leveling, TBW) и протокол NVMe.
1. Пирамида иерархии памяти: физическая природа компромисса
Центральный процессор современного компьютера способен выполнять триллионы элементарных микроопераций в секунду. Однако процессор бесполезен, если он вынужден простаивать в ожидании инструкций и операндов. Идеальная память должна обладать тремя ключевыми качествами: нулевой задержкой доступа, бесконечным объемом и нулевой стоимостью при абсолютной энергонезависимости (сохранности данных).
Фундаментальное аппаратное ограничение: Не существует физического полупроводникового элемента, который одновременно был бы экстремально быстрым, емким, дешевым и энергонезависимым. Чем быстрее запоминающая ячейка, тем больше транзисторов она требует на 1 бит, тем большую площадь на кристалле кремния она занимает, тем выше её паразитные токи утечки и себестоимость.
Для разрешения этого противоречия архитекторы ЭВМ используют иерархическую структуру памяти, организуемую в виде пирамиды:
▲
/ \ 1. Регистры ЦП (1–2 такта, ~0.5–1 нс, ~1–4 КБ, SRAM)
/ \
/ \ 2. Кэш L1 (4–5 тактов, ~1–1.5 нс, ~32–96 КБ, SRAM)
/ \
/ \ 3. Кэш L2 (12–14 тактов, ~3–5 нс, ~1–2 МБ, SRAM)
/ \
/ \ 4. Кэш L3 (35–50 тактов, ~10–20 нс, ~16–96 МБ, SRAM)
/ \
/─────────────────\ (Граница кристалла процессора)
/ \
/ \ 5. Оперативная память (150–250 тактов, ~50–80 нс, 16–128 ГБ, DRAM)
/ \
/ \ 6. Энергонезависимый NVMe SSD (~10–30 мкс, 512 ГБ–4 ТБ, NAND Flash)
/ \
/ \ 7. Магнитный жесткий диск HDD (~5–10 мс, 2–24 ТБ, Magnetic Platter)
/ \
/─────────────────────────────────\ 8. Архивные ленты LTO / Облачный холодный архив (Секунды/минуты, Петабайты)
▼ ▼
[Скорость ↑, Стоимость ↑, Ёмкость ↓] [Скорость ↓, Стоимость ↓, Ёмкость ↑, Энергонезависимость ✓]
| Уровень иерархии |
Технология |
Время доступа (такты и нс) |
Человеческая аналогия (1 такт = 1 сек) |
Энергозависимость |
Относительная стоимость за 1 ГБ |
| Регистры ЦП |
Flip-Flop / D-триггеры |
1 такт (~0.5–1 нс) |
1 секунда (мысль в голове) |
Энергозависимая |
Экстремальная (~$100 000+) |
| Кэш L1 |
SRAM (6T транзисторов) |
4–5 тактов (~1–1.5 нс) |
5 секунд (книга в руке) |
Энергозависимая |
Колоссальная (~$10 000) |
| Кэш L2 |
SRAM (6T транзисторов) |
12–14 тактов (~3–5 нс) |
15 секунд (книга на столе) |
Энергозависимая |
Очень высокая (~$2 000) |
| Кэш L3 |
SRAM (6T/eDRAM/3D) |
35–50 тактов (~10–20 нс) |
45 секунд (книжная полка в комнате) |
Энергозависимая |
Высокая (~$500) |
| ОЗУ (DRAM) |
1T-1C (транзистор + конденсатор) |
150–250 тактов (~50–80 нс) |
3–4 минуты (поход в соседнее здание) |
Энергозависимая (требует регенерации) |
Умеренная (~$3–5 / ГБ) |
| NVMe SSD |
3D TLC/QLC NAND Flash |
~10–30 мкс (~50 000 тактов) |
14 часов (поездка в другой город) |
Энергонезависимая |
Низкая (~$0.07 / ГБ) |
| HDD |
Магнитные пластины + головка |
~5–10 мс (~20 000 000 тактов) |
7 месяцев (пешая экспедиция на полюс) |
Энергонезависимая |
Очень низкая (~$0.015 / ГБ) |
| Архив Tape LTO |
Магнитная лента в картриджах |
Десятки секунд / минуты |
Десятилетия (полет к другой планете) |
Энергонезависимая (30+ лет) |
Минимальная (~$0.005 / ГБ) |
2. Принципы локальности данных: фундамент кэширования
Иерархия памяти работает эффективно только благодаря фундаментальному эмпирическому феномену вычислительных процессов — принципу локальности ссылок (Locality of Reference). Он гласит: программы не обращаются к адресному пространству абсолютно случайно; в каждый короткий промежуток времени процессор работает с компактным подмножеством памяти.
2.1. Временная локальность (Temporal Locality)
Если к некоторому участку памяти произошло обращение в текущий момент времени $t$, то с высокой долей вероятности к этой же ячейке произойдет повторное обращение в ближайшем будущем ($t + \Delta t$).
- Примеры: переменные-счетчики в циклах (
for (int i = 0; ...)), локальные переменные в теле функции, стек вызовов, код короткого цикла программы.
- Аппаратная реализация: данные, к которым только что обратились, удерживаются на самых быстрых верхних уровнях кэш-памяти (L1/L2) до тех пор, пока они не будут вытеснены новыми запросами.
2.2. Пространственная локальность (Spatial Locality)
Если процессор обратился к ячейке памяти по адресу $A$, то с высокой вероятностью в ближайшие такты ему потребуются данные из соседних адресов $A+1, A+2, \dots$
- Примеры: последовательное выполнение инструкций программы (Program Counter инкрементируется на 4 байта), последовательный обход одномерного массива или структуры данных.
- Аппаратная реализация: память загружается в кэш процессора не отдельными байтами или словами, а неделимыми порциями — кэш-линиями (Cache Lines) фиксированного размера (в архитектурах x86-64 и современных ARM — ровно 64 байта). При чтении одного байта контроллер кэша автоматически подтягивает в кэш всю 64-байтную строку.
Классический антипаттерн в C/C++:
// Плохо: обход матрицы по столбцам (катастрофа пространственной локальности)
// Каждый шаг перескакивает через всю строку N, вызывая постоянные кэш-промахи:
for (int j = 0; j < N; j++) {
for (int i = 0; i < N; i++) {
sum += matrix[i][j]; // Cache Miss на каждом шаге!
}
}
// Отлично: обход матрицы по строкам (идеальная пространственная локальность)
// Загруженная 64-байтная линия кэша обслуживает 16 последовательных чисел float:
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
sum += matrix[i][j]; // 1 Miss на 16 чисел, 15 Cache Hits подряд!
}
}
При больших размерах матрицы $N > 1000$ второй вариант работает в
10–30 раз быстрее исключительно за счет пространственной локальности кэша!
3. Организация кэш-памяти: адресация, ассоциативность и политики записи
3.1. Структура физического адреса памяти
Когда процессор запрашивает адрес оперативной памяти (например, 64-битный), аппаратура кэша разделяет адресную шину на три функциональных поля:
[ Тег адреса (Tag) ] — [ Индекс набора (Index) ] — [ Смещение в строке (Offset: 6 бит = 64 байта) ]
- Offset (Смещение): младшие 6 бит ($2^6 = 64$ байта) указывают конкретный байт внутри загруженной 64-байтной кэш-линии.
- Index (Индекс): указывает номер набора (Set) в структуре кэша, где может находиться данная линия.
- Tag (Тег): старшие биты адреса, которые сохраняются в кэше рядом с данными. При обращении компаратор сверяет тег запрошенного адреса с сохраненным тегом линии, определяя Hit (Попадание) или Miss (Промах).
3.2. Способы отображения и ассоциативность кэша
- Кэш прямого отображения (Direct-Mapped Cache): каждый адрес памяти может отображаться строго в один-единственный слот кэша ($Set$). Схема проста и работает очень быстро, но страдает от эффекта кэш-конфликта (Cache Thrashing): если два часто используемых адреса памяти имеют одинаковый индекс, они будут бесконечно вытеснять друг друга из кэша.
- Множественно-ассоциативный кэш (N-way Set-Associative Cache): каждый набор состоит из $N$ независимых строк (например, 8-way или 16-way). Адрес попадает в конкретный набор по своему индексу, но внутри набора данные могут занять любую из $N$ свободных строк. Это исключает паразитные конфликты и является современным промышленным стандартом для кэшей L1, L2, L3.
- Полностью ассоциативный кэш (Fully Associative Cache): любая линия памяти может располагаться в абсолютно любой ячейке кэша (индекс отсутствует, весь адрес — это тег). Требует сложнейшей параллельной схемы аппаратного сравнения сотен тегов одновременно; применяется в специализированных буферах малого объема, таких как TLB (Translation Lookaside Buffer).
3.3. Политики записи: Write-Through против Write-Back
Когда процессор выполняет операцию записи данных (Store), возникает вопрос: когда и как изменения переносятся в оперативную память?
| Параметр |
Сквозная запись (Write-Through) |
Обратная запись (Write-Back) |
| Механизм работы |
Данные записываются одновременно и в кэш-память, и во внешнюю память (ОЗУ). |
Данные записываются только в кэш. Линия помечается служебным битом изменения — Dirty Bit. В ОЗУ данные сбрасываются только в момент вытеснения линии (Eviction). |
| Нагрузка на системную шину |
Высокая: каждая операция записи занимает системную шину и оперативную память. |
Минимальная: сотни модификаций переменной происходят внутри кристалла SRAM без обращения к ОЗУ. |
| Задержка для процессора |
Высокая (требует буферизации через Write Buffer, при заполнении которого процессор останавливается). |
Минимальная: операция Store завершается за 1 такт так же быстро, как запись в регистр. |
| Сложность аппаратуры и риск сбоя |
Низкая сложность. ОЗУ всегда содержит актуальные данные (нет риска рассинхронизации). |
Высокая сложность: требуется логика отслеживания Dirty-бит и протоколы когерентности (MESI/MOESI). При внезапном обесточивании несохраненные грязные строки теряются. |
| Политика при промахе записи |
Обычно No-Write-Allocate: данные пишутся прямо в ОЗУ без загрузки линии в кэш. |
Обычно Write-Allocate: 64-байтная линия загружается из ОЗУ в кэш, затем модифицируется. |
4. Расчет эффективного времени доступа к памяти (T_eff)
Поскольку процессор при каждом обращении сначала проверяет кэш, а при промахе обращается к оперативной памяти, средневзвешенное (эффективное) время доступа выражается формулой:
T_eff = H · T_cache + (1 - H) · T_ram
где:
- H (Hit Rate): вероятность попадания в кэш ($0 \le H \le 1$);
- (1 - H) (Miss Rate): вероятность кэш-промаха;
- T_cache: аппаратное время доступа к кэшу (время попадания, Hit Time);
- T_ram: время доступа к оперативной памяти (штраф за промах, Miss Penalty).
Демонстрационный расчет чувствительности архитектуры:
Пусть $T_{cache} = 2$ нс, а задержка обращения к ОЗУ $T_{ram} = 60$ нс.
- При $H = 99\%$ (0.99): $T_{eff} = 0.99 \cdot 2 + 0.01 \cdot 60 = 1.98 + 0.60 = \mathbf{2.58\text{ нс}}$.
- При $H = 95\%$ (0.95): $T_{eff} = 0.95 \cdot 2 + 0.05 \cdot 60 = 1.90 + 3.00 = \mathbf{4.90\text{ нс}}$.
- При $H = 90\%$ (0.90): $T_{eff} = 0.90 \cdot 2 + 0.10 \cdot 60 = 1.80 + 6.00 = \mathbf{7.80\text{ нс}}$.
Вывод: Снижение Hit Rate всего на 9% (с 99% до 90%) приводит к
замедлению подсистемы памяти более чем в 3 раза (с 2.58 нс до 7.80 нс)! В современных многоядерных чипах это приводит к тому, что процессор 70–80% времени простаивает в ожидании данных (Memory Stall Cycles). Именно поэтому архитекторы наращивают объемы кэш-памяти (например, до 96 МБ 3D V-Cache у AMD).
5. Физика энергонезависимой памяти: NAND Flash, 3D-структуры и износ
5.1. Физический принцип хранения заряда: плавающий затвор и ловушка заряда
В основе полупроводниковой энергонезависимой памяти лежит полевой транзистор со специальным изолированным слоем, способным годами удерживать электрический заряд без внешнего источника питания:
- Плавающий затвор (Floating Gate): проводящий поликремниевый остров, полностью окруженный тончайшим слоем диэлектрика (оксида кремния $SiO_2$). Электроны загоняются на затвор через квантовомеханическое туннелирование Фаулера-Нордгейма (Fowler-Nordheim Tunneling) при подаче высокого импульса напряжения (~18–20 В). Накопленный отрицательный заряд сдвигает пороговое напряжение открытия транзистора $V_{th}$.
- Ловушка заряда (Charge Trap Flash — CTF): современная технология, заменившая проводящий затвор на непроводящий диэлектрический слой нитрида кремния ($Si_3N_4$). Электроны «застревают» в локальных микроловушках. Преимущество CTF: если в изолирующем оксиде возникает микротрещина, в Floating Gate утекает весь заряд ячейки (потеря бита), а в CTF заряд остается локализованным. На базе CTF строятся все современные чипы 3D NAND.
5.2. Типы ячеек: SLC, MLC, TLC, QLC
Чтобы снизить стоимость хранения, инженеры научились измерять точное количество заряда в ячейке, деля его на дискретные уровни напряжения:
| Тип ячейки |
Бит в ячейке |
Уровней напряжения ($2^N$) |
Ресурс (P/E циклов) |
Напряжение и чувствительность |
Особенности применения |
| SLC (Single-Level) |
1 бит |
2 уровня |
50 000 – 100 000 |
Широкое окно между состояниями «0» и «1». Мгновенное чтение/запись. |
SLC-кэш, промышленные контроллеры, космос. |
| MLC (Multi-Level) |
2 бита |
4 уровня |
3 000 – 10 000 |
Четко различимые 4 порога напряжения. |
Enterprise SSD прошлых поколений. |
| TLC (Triple-Level) |
3 бита |
8 уровней |
1 000 – 3 000 |
Очень узкие диапазоны напряжений; требует точных алгоритмов ECC (LDPC). |
Массовый стандарт для быстрых потребительских и серверных NVMe SSD. |
| QLC (Quad-Level) |
4 бита |
16 уровней |
300 – 1 000 |
Микроскопическая разница напряжений. Высокий риск ошибок при утечке даже нескольких электронов. |
Бюджетные накопители, холодные файловые архивы (Read-Intensive). |
5.3. Переход к 3D NAND
До 2015 года флеш-память масштабировалась в плоскости кристалла (2D Planar). При приближении к нормам 15 нм расстояние между ячейками сократилось до нескольких нанометров, что вызвало паразитную емкостную связь между соседними затворами (Cell-to-Cell Crosstalk) и утечки сквозь оксид толщиной в несколько атомов.
Решением стал переход к 3D NAND (V-NAND): цилиндрические вертикальные каналы памяти, пронизывающие кристалл снизу вверх. Современные чипы содержат от 176 до 232+ вертикальных слоев ячеек Charge Trap, что позволило увеличить физический размер ячейки (повысив надежность и ресурс) и одновременно достичь колоссальной емкости кристалла (до 1–2 Тбит на один полупроводниковый кристалл).
5.4. Асимметрия операций: почему SSD не умеет перезаписывать «на месте»
Фундаментальное правило физики NAND Flash:
- Чтение и Запись (Программирование) выполняются строго страницами (Pages) размером 4 КБ, 8 КБ или 16 КБ.
- Стирание (Erase) возможно выполнять только целыми блоками (Blocks) размером 2 МБ, 4 МБ или 8 МБ (блок состоит из 128–512 страниц).
- Невозможно записать бит «0» поверх бита «0» без предварительного стирания ячейки в состояние «1». Для стирания требуется подача высокого напряжения ~20 В на подложку целого блока!
Из-за этой асимметрии контроллер SSD при обновлении файла не может перезаписать старые секторы. Он вынужден записывать новые данные в свободную страницу, а старую помечать как недействительную (Invalid). Это порождает три ключевых механизма:
- Сборка мусора (Garbage Collection): контроллер SSD в фоновом режиме находит блоки с большим числом недействительных страниц, копирует оставшиеся живые страницы в новый свободный блок, а старый блок целиком стирает для повторного использования.
- Команда TRIM: команда операционной системы, сообщающая контроллеру SSD, какие блоки файлов были удалены пользователем в файловой системе (NTFS, ext4), чтобы контроллер не тратил ресурс на их перезапись при сборке мусора.
- Коэффициент усиления записи (Write Amplification Factor — WAF): отношение физически записанного контроллером объема данных в чипы памяти к объему данных, отправленному операционной системой ($WAF = \frac{\text{Bytes Written to NAND}}{\text{Bytes Written by Host}}$). При случайной мелкой записи без TRIM WAF может достигать 3–5, ускоряя износ ячеек.
5.5. SLC-кэширование (псевдо-SLC)
Прямая запись в ячейки TLC/QLC требует медленной ступенчатой подгонки напряжения (алгоритм ISPP). Чтобы скрыть эту медлительность, контроллеры организуют динамический SLC-кэш: часть свободных ячеек TLC/QLC временно программируется как 1-битные SLC (только 2 уровня напряжения).
Пока объем непрерывной записи укладывается в буфер SLC-кэша (например, 20–80 ГБ), скорость составляет 4000–7000 МБ/с. Однако как только буфер заполняется, контроллер вынужден одновременно принимать новые данные и «уплотнять» (Folding) накопленные данные из SLC-режима в полноценный 3-битный TLC или 4-битный QLC. Скорость записи мгновенно падает до истинной скорости чипов: для TLC — до 400–800 МБ/с, а для QLC — до катастрофических 50–100 МБ/с.
5.6. Ресурс накопителя и алгоритмы Wear Leveling
Каждый цикл туннелирования Фаулера-Нордгейма создает микродефекты в кристаллической решетке диэлектрика. Со временем оксид истончается, и ячейка перестает удерживать электроны (деградация бита).
- TBW (Total Bytes Written): гарантированный производителем суммарный объем терабайт, который можно записать на накопитель до отказа.
- DWPD (Drive Writes Per Day): сколько полных объемов накопителя можно перезаписывать ежедневно в течение гарантийного срока (обычно 5 лет). Для потребительских SSD: 0.3–0.6 DWPD; для серверных: 1–3 DWPD.
- Динамическое выравнивание износа (Dynamic Wear Leveling): новые данные направляются в блоки с наименьшим количеством циклов P/E. Недостаток: блоки, занятые статическими неизменяемыми файлами (ОС, программы), не участвуют в ротации.
- Статическое выравнивание износа (Static Wear Leveling): контроллер периодически перемещает неизменяемые «холодные» данные в сильно изношенные блоки, освобождая свежие блоки для интенсивной циклической записи. Это обеспечивает равномерную выработку всего кристалла.
6. Протоколы и системные интерфейсы: NVMe против SATA AHCI
Долгое время твердотельные накопители подключались через интерфейс SATA и протокол AHCI (Advanced Host Controller Interface). Протокол AHCI создавался в начале 2000-х годов исключительно для медленных вращающихся магнитных дисков (HDD) и не был рассчитан на параллелизм полупроводниковой памяти. В 2011 году консорциум ведущих производителей разработал революционный стандарт NVMe (Non-Volatile Memory Express).
| Характеристика |
SATA III (Протокол AHCI) |
PCIe NVMe (Gen4 / Gen5 x4) |
| Физическая шина |
Последовательный кабель SATA, чипсетный контроллер |
Прямые линии шины PCI Express процессора (x4) |
| Теоретическая пропускная способность |
До 600 МБ/с (6 Гбит/с) |
До 8 000 МБ/с (Gen4 x4) / до 16 000 МБ/с (Gen5 x4) |
| Количество очередей команд |
1 очередь |
До 64 000 очередей |
| Глубина каждой очереди |
До 32 команд |
До 64 000 команд в каждой очереди |
| Механизм прерываний и задержки |
Устаревшие прерывания с синхронизацией и блокировками ядра (Lock contention) |
Векторные прерывания MSI-X (до 2048 векторов), lockless архитектура с привязкой очереди к ядру ЦП |
| Накладные расходы драйвера (CPU Overhead) |
~20 000 инструкций ЦП на 1 команду ввода-вывода |
~2 000 инструкций ЦП на 1 команду ввода-вывода (в 10 раз меньше!) |
7. Контрольные вопросы для самопроверки
-
Почему регистры процессора и кэш L1 строятся на триггерах и SRAM, а оперативная память — на конденсаторах DRAM?
Ответ: Ячейка SRAM состоит из 6 транзисторов (6T) и переключается за доли наносекунды без необходимости регенерации заряда, но занимает огромную площадь кремниевого кристалла. Ячейка DRAM состоит всего из 1 транзистора и 1 микроскопического конденсатора (1T-1C), что обеспечивает фантастическую плотность упаковки (гигабайты на чипе), но конденсатор теряет заряд за миллисекунды, требует периодической регенерации (Refresh) и считывается с разрушением заряда, что определяет задержку в десятки наносекунд.
-
Каким образом аппаратура кэша отличает попадание от промаха при обращении к памяти?
Ответ: Аппаратура извлекает из физического адреса поле Index и находит соответствующий Set кэша. Затем аппаратные компараторы параллельно сравнивают поле Tag запрошенного адреса с тегами всех линий, хранящихся в данном наборе. Если тег совпал и установлен бит валидности (Valid Bit = 1), регистрируется Cache Hit, и данные выдаются по смещению Offset. Если совпадений нет — формируется сигнал Cache Miss.
-
В чем принципиальная разница между политиками записи Write-Through и Write-Back?
Ответ: При Write-Through данные записываются параллельно в кэш и в ОЗУ, что гарантирует полную согласованность, но резко тормозит процессор из-за медлительности шины памяти. При Write-Back данные пишутся мгновенно только в кэш с установкой флага Dirty Bit, а в ОЗУ сбрасываются только при неизбежном вытеснении линии, что освобождает системную шину для полезных вычислений.
-
Почему падение Hit Rate с 99% до 90% приводит к деградации производительности системы в разы?
Ответ: Время доступа к кэшу составляет ~2 нс, а к ОЗУ — ~60 нс (разница в 30 раз!). При промахе процессор вынужден ожидать данные сотни тактов (Miss Penalty). Увеличение доли промахов с 1% до 10% увеличивает средневзвешенную составляющую задержки ОЗУ в 10 раз ($0.10 \times 60 = 6$ нс против $0.01 \times 60 = 0.6$ нс), что удваивает или утраивает общее эффективное время доступа $T_{eff}$.
-
Почему твердотельный накопитель NAND Flash не может просто перезаписать измененный байт поверх старого?
Ответ: Ячейка NAND может электрически переходить из состояния «1» (стерто) в «0» (запрограммировано) отдельными страницами по 4–16 КБ. Но обратный переход из «0» в «1» требует стирания высоким напряжением (~20 В), которое конструктивно подается только на изолированную подложку целого блока размером 2–8 МБ (сотни страниц). Поэтому перезапись выполняется через цикл Read-Modify-Write с записью в новую свободную страницу.
-
Что произойдет с QLC SSD, если на него непрерывно копировать файл объемом 150 ГБ?
Ответ: Первые 30–50 ГБ будут записаны на высокой скорости (2000–3500 МБ/с) благодаря динамическому SLC-кэшу. После исчерпания свободных ячеек SLC буфер переполнится. Контроллер начнет одновременно принимать входящий поток и уплотнять ранее записанные данные в 4-битные ячейки QLC (процесс Folding). Скорость записи рухнет до истинной скорости записи QLC — примерно 50–100 МБ/с, что медленнее стандартного жесткого диска.
-
В чем ключевое преимущество протокола NVMe над устаревшим SATA AHCI при многопоточной нагрузке?
Ответ: Протокол SATA AHCI имеет всего 1 очередь глубиной до 32 команд, что при многоядерных процессорах приводит к блокировкам драйвера операционной системы (Lock contention). NVMe поддерживает до 64 000 параллельных очередей глубиной до 64 000 команд каждая, позволяя выделить каждому ядру ЦП собственную независимую очередь команд без блокировок, минимизируя задержки и накладные расходы драйвера в 10 раз.
-
Зачем контроллер SSD использует алгоритм статического выравнивания износа (Static Wear Leveling)?
Ответ: Если использовать только динамическое выравнивание, то блоки, занятые неизменяемыми системными файлами (Windows/Linux, установленные программы), никогда не будут перезаписываться. Оставшаяся свободная часть диска износится в разы быстрее. Static Wear Leveling принудительно перемещает холодные статические данные в блоки с высоким износом, освобождая наименее изношенные блоки под циклическую запись, равномерно распределяя ресурс по всем кристаллам.