📌 Кратко
MMU (Memory Management Unit) — аппаратный блок внутри CPU, обеспечивающий преобразование виртуальных адресов в физические и управление доступом к памяти.
🧠 Как работает
MMU действует как посредник между CPU и RAM:
- При обращении к памяти CPU выдает виртуальный адрес
 - MMU преобразует его в физический через page tables
 - Проверяется доступ (чтение/запись/исполнение)
 - Результат отправляется в Cache и затем в RAM
 
Основные компоненты MMU:
| Компонент | Назначение | 
|---|---|
| TLB (Translation Lookaside Buffer) | Кэш адресных преобразований | 
| Page Table Walker | Поиск страницы в памяти, если нет в TLB | 
| Access Control | Проверка прав доступа | 
| Address Translation Unit | Преобразование виртуального → физического | 
| Exception Unit | Обработка ошибок: page fault, protection | 
⚙️ Где применяется
| Область | Роль MMU | 
|---|---|
| OS | Разделение адресного пространства процессов | 
| Virtual Memory | Использование диска как расширения RAM | 
| Security | Защита от несанкционированного доступа к памяти | 
| Hypervisors | Множественные таблицы страниц (например, EPT) | 
💻 Пример (на C с POSIX mmap)
#include <sys/mman.h>
 
void *addr = mmap(NULL, 4096, PROT_READ | PROT_WRITE,
                  MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
// MMU создаёт отображение виртуального адреса в физическую память📐 Схема преобразования адресов
[CPU] → виртуальный адрес
   ↓
[MMU] 
 ├── TLB (если промах) 
 └── Page Table Walker → Page Table (в RAM)
   ↓
Физический адрес → Cache / RAM
✅ Преимущества
- 
Поддержка Virtual Memory
 - 
Разделение процессов по памяти (изоляция)
 - 
Гибкость в управлении страницами (paging, swapping)
 - 
Аппаратная защита от сбоев и переполнений
 
❌ Недостатки
- 
TLB misses → увеличение задержек
 - 
Повышенная сложность архитектуры CPU
 - 
Требует поддержки со стороны OS (таблицы страниц, исключения)