Проект курса «Архитектура ЭВМ и язык ассемблера»
Концепция: по возможности всё объяснять на Учебных Машинах, для которых написать эмуляторы, причём сначала в рамках имеющихся разработок, а затем выбрать одну (например, УМ3) и дополнить всякими темами, которые несложно запрограммировать. Когда же пойдут довольно сложные понятия (тут ещё окончательно не решено), показывать их на примере уже реальных процессоров в Qemu, а параллельно учить Си, в котором упирать на адресную арифметику, объяснять какие-то
Архитектура ЭВМ (тематический план FrBrGeorge)
на свежую голову пополнить
- Принципы:
- Правила выполнения команд
- Доступ к данным и командам
- Правила выполнения, зависящие от данных
- Вариант реализации
- Процессор + система команд
- Память + адресация + последовательно исполнение команд
- Переход + условный переход
- УМ-ы (см.)
…
- регистр флагов
- Массивы данных: самомодифициуемый код / косвенная адресация
- ПЗУ
- Периферийные устройства
- Сопроцессор
- Ввод-вывод
- Прерывания
- Шина
- Прямой доступ к памяти
- Сегментная память
- Многозадачность
- супервизор + пользователи
- контекст процесса, виртуальная память
- подкачка
- Кеширование
- Конвейер, упреждающая выборка, спекулятивное исполнение
- Виртуализция
Архитектура ЭВМ (тематический план Михаила Рудаченко)
TODO . Далее текст слегка несортированный пока и терминологически не выверенный
Краткий обзор архитектур ВС
- исполнитель
- память
- устройства
- коммутатор
Представление, передача и хранение информации в рамках вычислительных систем
- бит
- кодирование целых
- IEEE 754
- типы поддерживаемые аппаратно(uint, int ..., bul, str, двоично-десятичный в интел)
- Принципы фон-Неймана
- адреса, гранулярность памяти
- 8-ми битный байт
- разные адресные пространства(устройства)
Организация программируемых исполнителей?(процессоров)
- общий цикл работы процессора
- микрокоманды, конвейер, кэш данных, кэш команд, упреждающая выборка, конвейер, гарвард/принстон, спекулятивное исполнение, векторные команды, суперскалярность
- видимые для программиста регистры
- режимы работы процессора s/u
- обзор различных архитектур процессоров
Память произвольного доступа
- DRAM
- SRAM
- ПЗУ/ОЗУ
- взаимодействие процессора и памяти
- -скорость, расслоение
- -выравнивание
- -сегменты, спец. регистры процессора
- -кэширование, ассоциативность, режимы кэша
- взаимодействие памяти и других устройств (PIO, DMA)
- ECC
Адресация
- адресные пространства
- защита
- виртуальная память
- преобразования адресов, логический-линейный-физический
- страничная адресация памяти, MMU, таблицы страниц, TLB, PAE, спец. регистры процессора
- подкачка
- отображение памяти устройств, IOMMU
- схема распределения и адресации памяти в различных архтектурах
Шины, прерывания
- ISA, PCI, PCIe(от коммутации каналов к пакетам)
- исключения
- прерывания
- -аппаратные и программные прерывания
- -приоритет прерываний, маскируемые прерывания, команды и флаги, защита, контроллер прерываний
Аппаратная поддержка стека
- регистры процессора
- частично-аппаратный стек(sparc, эльбрус)
- защита
SMP
- NUMA
- проблемы коммутации
- проблемы кэширования
- необходимость специальных инструкций типа test-end-set процессора для синхронизации
- локальные прерывания и прерывания ввода/вывода
Машинные коды и язык ассемблера
TODO