2. Поэтапный педагогический сценарий и прямая речь преподавателя
ЭТАП 1. ВВОДНО-МОТИВАЦИОННЫЙ ЭТАП (5 МИН / 5 МИН)
Преподаватель: «Здравствуйте, студенты! Присаживайтесь. Дежурные, кто отсутствует сегодня в группе?
На предыдущем занятии мы подробно изучили модули памяти, микросхемы DRAM и логическое распределение адресного пространства. Мы знаем, что тактовая частота современных процессоров достигает 5 ГГц. Это значит, что один такт длится всего 0.2 наносекунды! Процессор способен выполнять миллиарды операций в секунду. Но давайте задумаемся: если процессор такой быстрый, почему компьютеры иногда зависают при открытии тяжелой программы или копировании файлов? Где кроется главное узкое место современной вычислительной системы?»
Вопрос к аудитории: Как вы думаете, сколько тактов процессора уходит на то, чтобы просто прочитать одно число из обычной оперативной памяти DDR4 или DDR5?
Предполагаемые ответы студентов: «Один такт», «Десять тактов», «Может быть, сотню?».
Преподаватель: «Правильный ответ — от 150 до 250 тактов! Представьте: процессор мог бы выполнить 200 инструкций, а вместо этого он просто сидит и ждет ответа от модуля ОЗУ. А если данные лежат на диске, задержка вырастает до десятков миллионов тактов. Сегодня на занятии мы раскроем фундаментальный закон архитектуры компьютеров — иерархию памяти, поймем, почему память не может быть одновременно быстрой, бесконечной и энергонезависимой, и научимся рассчитывать среднее время доступа системы».
ЭТАП 2. ИЗЛОЖЕНИЕ НОВОГО МАТЕРИАЛА (25 МИН / 18 МИН)
Преподаватель: «Обратите внимание на слайд 2 нашей презентации. Перед нами знаменитая пирамида иерархии памяти.
Почему архитекторы ЭВМ были вынуждены построить эту пирамиду? Из-за непреодолимого физико-экономического противоречия. Самая быстрая память в мире — это статическая память SRAM на триггерах (D-триггеры, регистры, кэш L1). Она работает за доли наносекунды. Но одна ячейка SRAM требует 6 транзисторов! Если мы захотим сделать 64 гигабайта памяти целиком на кристалле процессора из SRAM, кристалл вырастет до размеров обеденного стола, будет потреблять киловатты электроэнергии и расплавится за секунду.
Поэтому память разделили на уровни:
1. На самой вершине — микроскопические, но мгновенные регистры процессора (1 такт, ~1 КБ).
2. Следом — многоуровневый кэш L1, L2, L3 (от 4 до 50 тактов, десятки килобайт до десятков мегабайт SRAM).
3. Ниже кристалла ЦП — динамическая оперативная память DRAM (DDR4/DDR5: 1 транзистор и 1 конденсатор на бит, емкость десятки гигабайт, но задержка ~60 нс). Все эти уровни являются энергозависимыми — при выключении питания заряд исчезает.
4. Основание пирамиды — энергонезависимая флеш-память NAND (NVMe SSD, задержка ~20 микросекунд), магнитные накопители HDD (~10 миллисекунд) и архивные ленты LTO».
Вопрос к аудитории: Но если ОЗУ в сотни раз медленнее кэша, почему процессор не тормозит постоянно? Благодаря какому феномену кэш-память вообще спасает ситуацию?
Предполагаемые ответы студентов: «Потому что данные заранее подгружаются», «Принцип локальности?».
Преподаватель: «Именно! Запишите в тетрадях: принцип локальности ссылок (Locality of Reference) (слайд 4). Он имеет две составляющие:
1. Временная локальность: если процессор обратился к переменной (например, счетчику цикла i), он обратится к ней снова через доли микросекунды. Кэш оставляет её у себя на верхнем уровне.
2. Пространственная локальность: если процессор читает один байт массива, он наверняка запросит следующий байт. Поэтому процессор никогда не читает из ОЗУ один байт — он всегда считывает неделимую кэш-линию размером 64 байта (слайд 5).
Теперь перейдем к физике энергонезависимой флеш-памяти (слайды 9–11). В отличие от DRAM, где заряд улетучивается за миллисекунды, в ячейках NAND Flash электроны загоняются квантовым туннелированием Фаулера-Нордгейма на изолированный плавающий затвор или в ловушку заряда (Charge Trap). Заряд удерживается там годами без электричества.
Но за энергонезависимость приходится платить физической асимметрией:
— Запись и чтение в NAND производятся страницами (4–16 КБ).
— А стирание возможно только целиком блоками (2–8 МБ, состоящими из сотен страниц) подачей высокого напряжения ~20 В!
Из-за этого SSD не может просто перезаписать один байт. Он записывает данные на свободное место, а старый сектор помечает как недействительный. Это требует постоянной фоновой сборки мусора (Garbage Collection), поддержки команды TRIM и алгоритмов Wear Leveling (выравнивания износа)».
ЭТАП 3. ДЕМОНСТРАЦИОННЫЙ ПОКАЗ И КЕЙС-РАЗБОР (15 МИН / 10 МИН)
Преподаватель: «Перейдем к математическому расчету. Взгляните на слайд 8. Как нам оценить средневзвешенную задержку системы с кэшем и ОЗУ? По формуле эффективного времени доступа:
$$T_{eff} = H \cdot T_{cache} + (1 - H) \cdot T_{ram}$$
где $H$ — коэффициент попадания в кэш (Hit Rate), а $(1 - H)$ — промахи (Miss Rate).
Давайте посчитаем вместе на доске: пусть $T_{cache} = 2$ нс, а $T_{ram} = 60$ нс.
Если оптимизированная программа дает $H = 0.99$ (99% попаданий):
$$T_{eff} = 0.99 \cdot 2 + 0.01 \cdot 60 = 1.98 + 0.60 = 2.58\text{ нс}.$$
А теперь представьте, что программист написал неоптимальный код с проходом по столбцам матрицы, и Hit Rate упал всего на 9% — до $H = 0.90$ (90%):
$$T_{eff} = 0.90 \cdot 2 + 0.10 \cdot 60 = 1.80 + 6.00 = 7.80\text{ нс}!$$
Посмотрите на результат: $2.58$ нс превратились в $7.80$ нс! Падение попаданий всего на 9% замедлило работу с памятью более чем в 3 раза! Именно поэтому промах кэша называют аппаратным штрафом (Miss Penalty).
А теперь взгляните на слайд 13: почему протокол NVMe вытеснил SATA? У старого SATA AHCI была всего одна очередь на 32 команды, и ядра процессора блокировали друг друга при параллельных запросах. В NVMe очередей до 64 000 по 64 000 команд в каждой, и каждому ядру ЦП выделяется собственный прямой канал без блокировок!»
ЭТАП 4. ОЧНАЯ ПРАКТИЧЕСКАЯ РАБОТА СТУДЕНТОВ (20 МИН / 15 МИН)
Преподаватель: «Теперь каждый из вас выполняет очный практикум. Включите компьютеры и откройте файл zanyatie.html.
Вам предстоит заполнить 4 блока:
1. Заполнить параметры ступеней пирамиды памяти (время доступа в тактах и наносекундах, энергозависимость, относительную стоимость) и объяснить невозможность однородной памяти.
2. Рассчитать эффективное время доступа по формуле для 4 сценариев ($H = 90\%, 95\%, 98\%, 99\%$) и объяснить катастрофический эффект промахов.
3. Заполнить таблицу типов ячеек NAND (SLC, MLC, TLC, QLC), объяснить поблочное стирание и протокол NVMe.
4. Выбрать свой вариант архитектурного профиля (In-Memory СУБД, архив, рабочая станция или IoT) и составить обоснованный инженерный протокол конфигурации памяти.
Напоминаю: форма работает с автосохранением в браузере. Время на выполнение — 20 минут (15 минут в сокращенном регламенте). Критерии открыты: 2 балла за корректность, 1 за физическое объяснение, 1 за верификацию профиля. Приступайте к работе!»
ЭТАП 5. ОБРАТНАЯ СВЯЗЬ И РАЗБОР ОШИБОК (10 МИН / 7 МИН)
Преподаватель: «Время выполнения вышло. Сохраните данные в форме. Давайте разберем типичные ошибки, которые я наблюдал во время обхода аудитории:
1. В расчете $T_{eff}$ для $H = 0.95$ двое студентов умножили $0.05 \times 60$ и получили $3.0$, но забыли прибавить составляющую кэша $1.90$ нс, записав итоговое время $3.0$ нс. Всегда помните, что процессор сначала тратит время на обращение к кэшу, и только затем обращается к ОЗУ!
2. В вопросе о типах ячеек NAND: некоторые перепутали SLC и QLC, написав, что у QLC максимальный ресурс. Напоминаю: SLC хранит 1 бит (2 уровня напряжения) и выдерживает 100 000 циклов, а QLC втискивает 4 бита (16 тончайших уровней напряжения), из-за чего его оксидный слой разрушается уже через 500–1000 циклов!
3. В 4 варианте по In-Memory СУБД: студент предложил хранить всю базу на QLC SSD "потому что он дешевле". Это грубейшая архитектурная ошибка! In-Memory СУБД требует миллисекундных и наносекундных откликов на чтение/запись, поэтому оперативные данные обязаны жить в DRAM ОЗУ, а SSD NVMe используется только для упреждающей записи транзакционного лога (WAL)!»
ЭТАП 6. ПОДВЕДЕНИЕ ИТОГОВ И ДОМАШНЕЕ ЗАДАНИЕ (5 МИН / 5 МИН)
Преподаватель: «Подведем итоги занятия. Сегодня мы доказали, что скорость работы современных компьютеров определяется не столько мегагерцами процессора, сколько совершенством подсистемы памяти. Мы освоили принципы локальности, формулу эффективного доступа и физику энергонезависимых накопителей.
Каждый из вас получает баллы по 4-балльной шкале за очный протокол в zanyatie.html. Нажмите кнопку печати и сохраните заполненный документ в формате PDF для отчета.
По домашнему заданию: файл domashnee_zadanie.html является резервным. Его выполняют только обучающиеся, пропустившие сегодняшнюю пару по уважительной причине или получившие оценку ниже 3 баллов для индивидуальной отработки. Срок сдачи для таких студентов будет сообщен индивидуально.
На следующем занятии (пара 14) мы проведем практическое занятие №5, где будем подбирать модули памяти и накопители под конкретные технические спецификации материнских плат. Всем спасибо за продуктивную работу, занятие окончено!»