--- marp: true theme: default paginate: true headingDivider: 2 style: | section { font-size: 26px; } h1 { font-size: 40px; } h2 { font-size: 34px; } table { font-size: 20px; } code { font-size: 18px; } --- # Архитектура аппаратных средств # Тема занятия **Введение в архитектуру аппаратных средств** | Блок | На экране | | --- | --- | | 1 | Архитектура ≠ микроархитектура | | 2 | Принципы фон Неймана | | 3 | Цикл команды и узкое место | | 4 | Гарвард и модифицированный Гарвард | | 5 | Классификация компьютеров | **90 минут · 2 академических часа** --- # Предмет дисциплины ```mermaid flowchart LR A["Какую программу
написать?"]:::old B["На какой машине
она исполняется?"]:::new A -.-> B classDef old fill:#eee,stroke:#999 classDef new fill:#dbeafe,stroke:#1d4ed8 ``` **Архитектура аппаратных средств** — из каких частей состоит машина, что видно программе, как устроено внутри, как машины классифицируют. --- # Цель и задачи (шпаргалка) | # | Задача лекции | | --- | --- | | 1 | Уровни абстракции вычислительной системы | | 2 | Архитектура (ISA) ≠ микроархитектура ≠ вентили | | 3 | Принципы фон Неймана + цикл команды | | 4 | Гарвард и почему у PC два кэша, но одна память | | 5 | Фасеты классификации (Флинн, RISC/CISC, класс машины) | **После пары:** про любое устройство — ISA, фон Нейман/Гарвард *на каком уровне*, класс. --- # Зачем это не только схемотехнику ```mermaid mindmap root((Зачем архитектура)) Скорость кэш CPI узкое место памяти Совместимость одна ISA разные µarch Встроенные системы не маленький ПК Flash ≠ SRAM Выбор железа сервер АРМ ПЛК / MCU Безопасность Spectre W^X / NX ``` --- # Три смысла слова «архитектура» | Смысл | Что имеется в виду | Пример | | --- | --- | --- | | **1. Вид для программиста** (Amdahl, Blaauw, Brooks, 1964) | команды, регистры, адреса, прерывания | почти = **ISA** | | **2. Организация системы** | CPU + память + ввод-вывод + связи | computer organization | | **3. Уровень в стеке** | слой между ОС и цифровой логикой | «архитектурный уровень» | **На этой лекции «архитектура» без уточнения = смысл 1 (ISA), «организация» = смысл 2.** --- # Формула процессора $$ \textbf{процессор} \;=\; \textbf{ISA} \;+\; \textbf{микроархитектура} \;+\; \textbf{схемотехника} $$ ```mermaid flowchart TB ISA["ISA
контракт с программой"] UA["Микроархитектура µarch
конвейер, кэш, OoO"] CIR["Схемотехника
вентили, техпроцесс"] ISA --> UA --> CIR ``` | Слой | Видно программе? | Можно менять, не ломая бинарник? | | --- | --- | --- | | ISA | да | нет (другой код) | | µarch | нет для корректности | да | | вентили | нет | да (другой чип той же µarch) | --- # Одна ISA — много микроархитектур ```mermaid flowchart TB ISA["ISA: x86-64"] ISA --> I1["Intel Skylake"] ISA --> I2["Intel Golden Cove"] ISA --> A1["AMD Zen 3"] ISA --> A2["AMD Zen 4"] ISA --> R["Rosetta 2 на Apple Silicon
трансляция"] ``` | Объект | Слой | | --- | --- | | x86-64, AArch64, RISC-V, AVR | **архитектура (ISA)** | | Zen 4, Golden Cove, Cortex-A76 | **микроархитектура** | | 5 нм / 7 нм, библиотека ячеек | **реализация** | --- # Многоуровневая машина (Таненбаум) ```mermaid flowchart TB L6["6. Прикладной · Python, 1С, браузер"] L5["5. ОС / VM · процессы, файлы, syscall"] L4["4. ISA · команды, регистры, адреса"] L3["3. Микроархитектура · конвейер, кэш"] L2["2. Цифровая логика · вентили, автоматы"] L1["1. Физический · транзисторы"] L6 --> L5 --> L4 --> L3 --> L2 --> L1 ``` **Наш курс:** уровни 4, 3 и организация «процессор — память — ввод-вывод». --- # Кто на каком уровне «программирует» | Уровень | Что видно | Кто работает | | --- | --- | --- | | Прикладной | языки, API | прикладной разработчик | | ОС | процессы, файлы | системный программист | | **ISA** | команды, регистры | компилятор, ассемблер | | **µarch** | конвейер, кэши | архитектор процессора | | Логика | вентили, триггеры | логический проектировщик | | Физика | транзисторы | технолог | --- # Пять вопросов курса ```mermaid flowchart LR Q1["1. Как видит
программа?"] Q2["2. Как внутри?"] Q3["3. Как связаны
части?"] Q4["4. Какие есть
альтернативы?"] Q5["5. Как
сравнивать?"] ``` | # | Короткий ответ сегодня | | --- | --- | | 1 | ISA, модель памяти | | 2 | микроархитектура | | 3 | шины, DMA, SoC | | 4 | фон Нейман / Гарвард, RISC / CISC | | 5 | фасеты + формула времени | --- # Формула времени выполнения $$ T \;=\; N_{\text{команд}} \;\times\; \text{CPI} \;\times\; t_{\text{такта}} $$ | Символ | Кто определяет | Не путать с | | --- | --- | --- | | \(N\) число команд | алгоритм + **ISA** + компилятор | «объём программы в МБ» | | **CPI** тактов на команду | **микроархитектура** + кэш + ветвления | «архитектура Intel» | | \(t\) длительность такта | частота, техпроцесс, µarch | единственная метрика | ```text Частота ↑ не значит программа быстрее. Упёрлись в память → узкое место фон Неймана. ``` --- # Что входит в ISA (паспорт) ```mermaid mindmap root((ISA)) Типы данных int / float / SIMD Регистры число и ширина флаги Адресация регистровая косвенная PC-relative Команды формат и кодирование арифметика load/store переходы Система прерывания привилегии модель памяти ``` --- # Примеры ISA | ISA | Семейство | Где встретите | | --- | --- | --- | | IA-32 / **x86-64** | CISC | PC, серверы | | **AArch64** (ARMv8-A) | RISC | смартфоны, Apple, серверы | | **RISC-V** RV64I | RISC | учебные SoC, открытое железо | | IBM System/360 | CISC | мейнфреймы, история совместимости | | AVR, PIC16 | RISC / гарвард | микроконтроллеры | | Thumb-2 (Cortex-M) | RISC | STM32, встраиваемые | **Бинарник Linux x86-64 ≠ «голый» ARMv8.** Это другая архитектура, не «другая микросхема». --- # Что прячется в микроархитектуре | Механизм | Зачем | | --- | --- | | Конвейер, число стадий | совмещать шаги цикла команды | | In-order / **out-of-order** | не ждать длинную команду | | Суперскаляр | несколько команд за такт | | SMT / Hyper-Threading | два потока на ядро | | Кэши L1I / L1D / L2 / L3 | прятать задержку памяти | | Предсказатель переходов | не останавливать конвейер | | Микрокод CISC | сложная команда → простые µop | | DVFS | частота и напряжение «на лету» | **Правило Хеннесси–Паттерсона:** внутри любой порядок, **наружу** — семантика ISA. --- # ISA vs микроархитектура: таблица-гвоздь | Вопрос | ISA | Микроархитектура | | --- | --- | --- | | Видно в учебнике ассемблера? | да | нет | | Ломает старые программы при смене? | да | нет | | Влияет на CPI и тепло? | слабо / косвенно | да | | Влияет на Spectre? | почти нет | да | | Пример имени | x86-64 | Zen 4 | ```text Нельзя говорить: «у меня архитектура Skylake». Skylake — это µarch. Архитектура — x86-64. ``` --- # Фон Нейман, 1945 **Источник:** *First Draft of a Report on the EDVAC* (идеи Эккерта, Мокли и группы Муровской школы) ```mermaid flowchart LR CA["CA
арифметика
ALU"] CC["CC
управление
CU"] M["M
память"] IO["I / O
ввод-вывод"] R["R
внешний
носитель"] CC --- CA CC --- M CC --- IO M --- R ``` **Скачок:** программа хранится в памяти, как данные (*stored-program computer*, «принстонская» архитектура). --- # Пять принципов — учебная реконструкция > В *First Draft* нет пронумерованных «заповедей». > Список — дидактика российских учебников. | № | Принцип | По-английски | Суть | | --- | --- | --- | --- | | 1 | Двоичное кодирование | binary representation | команды и данные — двоичные слова | | 2 | Программное управление | stored-program | поведение задаёт программа, не проводка | | 3 | **Однородность памяти** | unified memory | код и данные в одном пространстве | | 4 | Адресность | addressable cells | ячейки пронумерованы | | 5 | Последовательность + переходы | sequential + control flow | PC++, пока нет jump | **Принцип 3 — водораздел с Гарвардом.** --- # Схема машины фон Неймана ```mermaid flowchart TB I["Ввод I"] --> CU subgraph CPU["Процессор"] CU["УУ · CU
счётчик команд PC"] ALU["АЛУ · ALU"] REG["Регистры"] CU --- ALU --- REG end CU <--> MEM["Память M
команды И данные
одно пространство"] CU --> O["Вывод O"] ``` **Одна память · один тракт · смысл ячейки = как к ней обратились** --- # Что лежит в памяти ```text Адрес Содержимое Как интерпретировать ───────────────────────────────────────────── 0x100 83 C1 05 команда ADD CX, 5 0x103 00 2A данное 42 0x105 E3 00 команда JCXZ … ``` | Обращение | Ячейка 0x103 | | --- | --- | | как к команде | процессор пытается декодировать `00 2A` | | как к данному | число 42 | Однородность памяти = загрузчик, компилятор, вирус, JIT. --- # Цикл команды ```mermaid stateDiagram-v2 [*] --> Fetch Fetch --> Decode: команда из памяти по PC
PC ← PC+длина Decode --> Execute: код операции, регистры Execute --> Memory: адрес / АЛУ Memory --> Writeback: чтение/запись данного Writeback --> Fetch: результат в регистр ``` | Шаг | Имя | Что делает | | --- | --- | --- | | 1 | **Fetch** | выборка команды | | 2 | **Decode** | декодирование | | 3 | **Execute** | операция / адрес | | 4 | **Memory** | данное из *той же* памяти | | 5 | **Write-back** | запись результата | На шагах 1 и 4 **конфликт одного тракта**. --- # Численный пример: `ADD R1, [100]` **Условия учебной машины:** шина 16 бит · АЛУ = 1 такт · память = 3 такта · декод = 1 такт | Шаг | Действие | Такты | Кто работает | | --- | --- | --- | --- | | Fetch | прочитать команду | **3** | память | | Decode | это ADD, нужен [100] | 1 | УУ | | Memory | прочитать ячейку 100 | **3** | память снова | | Execute | сложить | 1 | АЛУ | | Write-back | в R1 | 1 | регистры | | | **Итого** | **~9** | из них **6 — память** | ```text Fetch следующей команды НЕЛЬЗЯ совместить с Memory текущей: один порт к одной памяти. ``` --- # Тот же пример: фон Нейман vs Гарвард ```mermaid gantt title Занятость тракта памяти (учебные такты) dateFormat X axisFormat %s section Фон Нейман Fetch команды :a1, 0, 3 Memory данного :a2, 4, 3 section Гарвард Fetch команды :b1, 0, 3 Memory данного :b2, 0, 3 ``` | Организация | Fetch ∥ чтение данного | Итог для ADD | | --- | --- | --- | | Фон Нейман | нет | ~9 тактов | | Гарвард (два порта) | да | память перекрыта, АЛУ не ждёт выборку | | Модиф. Гарвард (оба в L1) | да | как Гарвард | | Модиф. Гарвард (промах в DRAM) | нет | снова фон Нейман | --- # Узкое место фон Неймана (Backus, 1977) ```mermaid flowchart LR CPU["Процессор
быстрый АЛУ"] BOT["УЗКОЕ МЕСТО
одна шина
команды + данные"] MEM["Память
большая и медленная"] CPU <--> BOT <--> MEM ``` | Как маскируют, не меняя модель программиста | Слой | | --- | --- | | Кэш, часто **раздельный L1I / L1D** | шаг к Гарварду | | Иерархия L1–L2–L3–RAM–диск | организация памяти | | Prefetch, предвыборка команд | µarch | | Конвейер, суперскаляр | µarch | | Несколько контроллеров памяти, много ядер | система | | GPU / NPU «у данных» | другая организация | --- # Миф и норма | Миф | Норма | | --- | --- | | «Есть конвейер — уже не фон Нейман» | конвейер = **µarch** | | «Два кэша — чистый Гарвард» | это **модифицированный** Гарвард | | «Современный CPU не фоннеймановский» | **по ISA** — почти всегда да | ```text Смотрите на МОДЕЛЬ ПАМЯТИ программиста, а не на фотографию кристалла. ``` --- # Гарвардская архитектура **Имя:** Harvard Mark I (Эйкен, IBM, 1940-е) Программа — на ленте, данные — на других носителях. ```mermaid flowchart TB CU["УУ + АЛУ"] IM["Память КОМАНД
шина команд"] DM["Память ДАННЫХ
шина данных"] CU <--> IM CU <--> DM ``` | Свойство | Следствие | | --- | --- | | Два тракта | выборка команды **и** доступ к данному **одновременно** | | Разная ширина слова | PIC: команда 14 бит, данные 8 бит — норма | | Нет общего пространства | нельзя «записать как данные и выполнить» | --- # Фон Нейман и Гарвард на одной схеме ```mermaid flowchart TB subgraph VN["Фон Нейман"] CPU1[CPU] <--> BUS1["Одна шина"] BUS1 <--> M1["Одна память
код + данные"] end subgraph HV["Гарвард"] CPU2[CPU] <--> IB["Шина команд"] CPU2 <--> DB["Шина данных"] IB <--> IM["Память команд"] DB <--> DM["Память данных"] end ``` --- # Сравнительная таблица трёх канонов | Свойство | Фон Нейман | Классический Гарвард | Модифицированный Гарвард | | --- | --- | --- | --- | | Памяти | 1 | 2 физические | кэши 2, DRAM 1 | | Команда ∥ данное | нет (без кэша) | да | да, если оба в кэше | | Программа как данные | да | трудно / спец. команды | да | | Ширина слов | обычно одна | может быть разной | обычно одна в RAM | | Типичные машины | модель PC/сервера | PIC, часть AVR, DSP | x86, Cortex-A, RISC-V | | Риск | узкая шина | два контроллера, загрузка ПО | когерентность кэша | | Выигрыш | простой загрузчик | предсказуемый поток | скорость + удобство ОС | --- # Формула, которую прошу выучить > Универсальные процессоры > **фоннеймановские по ISA** > и **модифицированно-гарвардские > по микроархитектуре кэш-уровня**. ```mermaid flowchart TB PROG["Программист видит
одно адресное пространство"] L1["Ядро видит
L1I ‖ L1D"] DRAM["Промах → общая DRAM
снова фон Нейман"] PROG --> L1 --> DRAM ``` --- # Безопасность: искусственный запрет однородности ```mermaid flowchart LR W["Страница WRITE"] X["Страница EXECUTE"] W -.->|W^X / NX / XN| X ``` | Механизм | Что делает | | --- | --- | | Бит **NX / XN** | «сюда нельзя передавать управление» | | Политика **W^X** в ОС | страница либо пишется, либо исполняется | | DEP | данные стека/кучи не как код | Аппаратура *умеет* исполнить только что записанное. ОС и MMU **запрещают** — из-за вирусов и эксплойтов, не из-за Гарварда. --- # Где какой канон в железе ```mermaid flowchart TB H["Классический Гарвард"] --> H1["PIC"] H --> H2["AVR Flash / SRAM"] H --> H3["DSP: TI C55x, ADI"] M["Модифицированный Гарвард"] --> M1["x86-64 + L1I/L1D"] M --> M2["ARM Cortex-A"] M --> M3["прикладной RISC-V"] V["Фон Нейман как ISA"] --> V1["PC, сервер, смартфон · главные ядра"] ``` --- # Классификация — фасетная, не одна полка ```text Нельзя: «это современный процессор». Можно: встроенный · MCU · Thumb-2 · Гарвард Flash/SRAM · SISD · RISC. ``` ```mermaid mindmap root((Фасеты машины)) Назначение Форм-фактор Поколение ЭБ ISA Память: фон Нейман / Гарвард Флинн RISC / CISC ``` --- # По назначению | Класс | English | Примеры | Акцент | | --- | --- | --- | --- | | Универсальные | general-purpose | PC, сервер, смартфон | богатая ISA, MMU, ОС | | Специализированные | special-purpose | DSP, GPU, NPU | узкий алгоритм | | Встроенные | embedded | ЭБУ, бытовая техника | энергия, реальное время | | Промышленные | industrial control | ПЛК, промПК | детерминизм, УСО | Смартфон = универсальный компьютер *в роли* коммуникатора. --- # Линейка форм-факторов ```mermaid flowchart TB S["Суперкомпьютер"] --> MF["Мейнфрейм"] MF --> SV["Сервер / midrange"] SV --> PC["PC / workstation"] PC --> MOB["Мобильные / wearable"] MOB --> SBC["Одноплатные · Pi, Jetson"] SBC --> MCU["Микроконтроллер"] MCU --> SOC["SoC пересекает нижние уровни"] ``` | Не путать | С чем путают | | --- | --- | | мини-ЭВМ 1970-х (PDP-11, VAX) | «мини-ПК» из магазина | | MCU | «слабый смартфон» | | SoC | отдельный класс *организации*, не вместо PC | --- # Поколения элементной базы | Пок. | База | Годы | Пример | | --- | --- | --- | --- | | 1 | лампы | 1940–50 | ENIAC, EDSAC, МЭСМ | | 2 | транзисторы | 1950–60 | IBM 7090, БЭСМ-6 | | 3 | ИС | 1960–70 | IBM/360, ЕС ЭВМ | | 4 | БИС, микропроцессоры | 1970–90 | 8086, персоналки | | 5+ | СБИС, многоядерность, SoC | 1990–н.в. | GPU, NPU, смартфоны | **Поколение ≠ качество и ≠ «поколение Windows».** --- # Таксономия Флинна, 1966 / 1972 $$ \begin{array}{c|c|c} & \textbf{1 поток данных} & \textbf{много данных} \\ \hline \textbf{1 поток команд} & \textbf{SISD} & \textbf{SIMD} \\ \hline \textbf{много команд} & \textbf{MISD} & \textbf{MIMD} \end{array} $$ ```mermaid flowchart LR SISD["SISD
скаляр, классика"] SIMD["SIMD
AVX, NEON, GPU lockstep"] MISD["MISD
редко"] MIMD["MIMD
много ядер, кластер"] ``` --- # Флинн: примеры в таблицу | Класс | Потоки | Куда показать пальцем | | --- | --- | --- | | **SISD** | 1 команда, 1 данное | учебная фоннеймановская машина | | **SIMD** | 1 команда, много данных | SSE/AVX, NEON, Cray-1 | | **MISD** | много команд, 1 данное | редкие конвейеры / отказоустойчивость | | **MIMD** | много и того и другого | 4 ядра CPU, кластер | **Уточнения:** SPMD — модель кластеров; SIMT — GPU NVIDIA. Ноутбук = **гибрид**: суперскаляр внутри ядра + SIMD + MIMD по ядрам. --- # RISC и CISC | | **CISC** | **RISC** | | --- | --- | --- | | Идея | богатые команды, память как операнд | мало команд, только load/store | | Длина команды | переменная | чаще фиксированная | | Примеры ISA | x86, S/360, VAX | ARM, RISC-V, MIPS, Power | | Сегодня внутри | CISC → RISC-подобные **µop** | тот же конвейер и OoO | ```text Классификация ISA, не «кто быстрее в 2026 году». Микроархитектуры семейств сошлись. ``` --- # Карточка машины — заполнять так | Фасет | Ноутбук | STM32 / Arduino | | --- | --- | --- | | Назначение | универсальный | встроенный | | Форм-фактор | PC + SoC | MCU | | ISA | x86-64 | Cortex-M / AVR | | Память | модиф. Гарвард, ISA фон Нейман | Flash/SRAM ≈ Гарвард | | Флинн | MIMD + SIMD | в основном SISD | | Команды | CISC | RISC | | Объект | общее назначение | контур датчик–актюатор | --- # Кейс 1. Intel vs AMD ```mermaid flowchart TB CODE["Один машинный код
gcc -O2 → x86-64"] CODE --> I["Intel · свой CPI"] CODE --> A["AMD · свой CPI"] ``` | Одинаково | Различно | | --- | --- | | ISA x86-64 | декодер, µop-кэш, L3, предсказатель | | корректность программы | тепло, IPC, цена | **Вывод на экран:** совместимость держит ISA, гонку держит µarch. --- # Кейс 2. AVR — честный Гарвард ```mermaid flowchart LR CORE["Ядро AVR"] FLASH["Flash 32 КБ
ПРОГРАММА"] SRAM["SRAM 2 КБ
ДАННЫЕ"] CORE --> FLASH CORE --> SRAM ``` | Привычка с ПК | На ATmega328 | | --- | --- | | строка в «обычной» памяти | **PROGMEM**, `pgm_read_byte` | | `malloc` как стиль жизни | кучи может не быть | | исполнить данные из RAM | не модель по умолчанию | Спец. мост: команда **LPM** — прочитать прошивку *как данные*. --- # Кейс 3. Смартфон = все классы сразу ```mermaid flowchart TB SOC["SoC смартфона"] SOC --> A["Cortex-A · ОС · модиф. Гарвард · MIMD"] SOC --> M["Cortex-M / сенсоры · ближе к Гарварду"] SOC --> G["GPU · SIMT / SIMD"] SOC --> N["NPU · тензоры"] SOC --> D["DRAM · общее пространство для A-ядер"] ``` | Неверно | Верно | | --- | --- | | «это не компьютер» | гетерогенная вычислительная система | | «это SISD-ПК» | несколько классов на одном кристалле | --- # 12 ошибок — плакат | # | Не говорить | Говорить | | --- | --- | --- | | 1 | «архитектура Skylake» | µarch Skylake, ISA x86-64 | | 2 | «больше ГГц — быстрее» | смотри CPI и память | | 3 | «конвейер отменил фон Неймана» | смотри модель памяти | | 4 | «два кэша = чистый Гарвард» | модифицированный | | 5 | «МК — маленький Windows» | другая память и ОС может не быть | | 6 | «RISC всегда быстрее CISC» | смотри µarch | | 7 | один ярлык Флинна на SoC | гибрид | | 8 | ускорять только ядро | бывает узкое место шины | | 9 | поколение ЭВМ = поколение ОС | разный фасет | | 10 | безопасность = свойство ISA | Spectre — про µarch | | 11 | жёсткая проводка = фон Нейман | нет хранимой программы | | 12 | ISA = ABI | ABI надстроен (Linux ≠ Windows) | --- # Три фразы на вынос ```text 1. Сначала — что видно программе (ISA). 2. Потом — как сделано внутри (µarch). 3. Затем — сравнивайте машины по фасетам. ``` | Канон | Для программиста | Рядом с ядром | | --- | --- | --- | | Фон Нейман | общая память | узкая шина | | Гарвард | два мира | два порта | | Модиф. Гарвард | как фон Нейман | как Гарвард, пока кэш попал | --- # Вопросы с экрана (самопроверка) | # | Короткий вопрос | | --- | --- | | 1 | ISA vs µarch: пара «одна ISA — две реализации» | | 2 | Что компилятор *не* обязан знать о конвейере? | | 3 | Почему мало сравнивать ГГц? | | 4 | Какой принцип фон Неймана отделяет его от Гарварда? | | 5 | На каком шаге цикла команды конфликт тракта? | | 6 | Что такое bottleneck по Backus? | | 7 | Почему L1I+L1D ≠ чистый Гарвард? | | 8 | Чем Flash/SRAM AVR отличается от Linux x86? | | 9 | AVX — какой класс Флинна? Четыре ядра? | | 10 | RISC/CISC — про скорость или про ISA? | | 11 | Фасеты: суперкомпьютер vs STM32 | | 12 | Spectre: какой слой виноват? | --- # Задание на семинар (с экрана) **Два устройства:** ноутбук/SBC **и** MCU (Arduino / STM32 / ESP32) | Шаг | Сдать | | --- | --- | | 1 | карточка фасетов (таблица 4.5.7 из текста лекции) | | 2 | что ISA, что µarch — по datasheet | | 3 | две схемы трактов память команд / память данных | | 4 | где опаснее bottleneck, где теснота SRAM | | 5 | три следствия для программиста | `Фамилия_Архитектура_введение.pdf` · 6–8 стр. + 4 слайда --- # Хронометраж пары | Мин | Читаете раздел | На экране слайды | | --- | --- | --- | | 0–12 | §§ 1–3 начало | тема, зачем, формула процессора | | 12–30 | §§ 3.4–4.2 | уровни, ISA vs µarch | | 30–48 | § 4.3 | фон Нейман, цикл, 9 тактов | | 48–60 | § 4.4 | Гарвард, сравнительная таблица | | 60–74 | § 4.5 | Флинн, RISC/CISC, карточка | | 74–90 | §§ 5–10 | кейсы, ошибки, задание | --- # Конец показа · лекция 1