3237
Комментарий:
|
4462
|
Удаления помечены так. | Добавления помечены так. |
Строка 6: | Строка 6: |
Практика: первые несколько занятий проходят на базе эмуляторов учебных машин, остальные — на базе эмулятора MIPS (скорее всего, MARS, но возможно и SPIM). | Практика: первые несколько занятий проходят на базе [[https://github.com/cmc-python/modelmachine|эмуляторов учебных машин]], остальные — на базе эмулятора MIPS (скорее всего, [[http://courses.missouristate.edu/KenVollmar/MARS/|MARS]], но возможно и [[http://spimsimulator.sourceforge.net/|SPIM]]). |
Строка 9: | Строка 9: |
Примерная разбивка по два часа. 1. «ЭВМ вообще» * Калькулятор → хранение команд → хранение данных → атрибуция данных → подготовка и вывод результатов → выполнение команд в зависимости от данных → ЭВМ * Адресация и переходы как частные случаи * ⇒ Архитектура фон Неймана * исполнитель, память, В/В, коммутатор 1. Данные в памяти и введение в ММ3 1. ММ3 условия и циклы 1. ММ2, ММ1, рассказ о ММ0 1. ММР (она же с модификацией адреса и переменным размером команды). Проблема подпрограмм всё ещё не решена 1. Понятие ассемблера. /!\ На чем ассамблер? На ММР?? 1. SPIM, базовые сведения о работе программы, программа сложения двух чисел 1. SPIM — общая архитектура, цикл работы процессора, базовые сведения о системе команд и работе программы 1. Адресация, индексация, SPIM: работа с байтами 1. Шина. Взаимодействие процессор-память; RAM, ROM, Reg; Гарвард/Принстон; 100 циклов для одного обращения к памяти 1. Структура памяти (text/data/stack), понятие о конвенциях. Стек 1. Подпрограммы и связанные с ними конвенции 1. Фреймы, локальные переменные, рекурсия, ещё конвенции 1. FPU 1. Взаимодействие с ОС, введение 1. I/O: порты, MMIO, SPIM: виды внешних устройств 1. Прерывания В/В 1. Программные прерывания |
##Include(^ArchitectureAssembler/[0-9].*, , titlesonly)>> Примерная разбивка по два часа. Возможно, некоторые темы толстоваты, тогда они занимают четыре 1. [[/01_Overall|Представление об архитектуре ЭВМ]] 1. [[/02_MM3|Хранение данных и команд в памяти; ММ3]] 1. [[/03_ConditionalsLoops|ММ3 условия и циклы]] 1. [[/04_VariousMMs|ММ2, ММ1, рассказ о ММ0]] 1. [[/05_IndirectAddressing|ММР (с модификацией адреса и переменным размером команды)]] 1. [[/06_AssemblesBasics|Ассемблер и язык ассемблера]] 1. [[/07_MIPS_Intro|Эмулятор MIPS, базовые сведения об архитектуре и работе; простейшая программа]] 1. [[/08_MIPS_Arcitecture|MIPS — архитектура и система команд]] (схема), цикл работы процессора (понятие о микрокомандах), базовые сведения о системе команд и работе программы 1. [[/09_Addressing|Адресация]] индексация, SPIM: работа с байтами. Секции .text и .data 1. [[/10_BusMemory|Взаимодействие процессор-память]] Шина. Взаимодействие процессор-память; RAM, ROM, Reg; Гарвард/Принстон; 100 циклов для одного обращения к памяти 1. [[/11_ConventionsIntro|Конвенции, псевдоинструкции и макросы]] Структура памяти, псевдоинструкции, макросы, понятие о конвенциях (именование и использование регистров). 1. [[/12_StackSubroutines|Стек и подпрограммы]] Стек (+.stack). Подпрограммы и связанные с ними конвенции 1. [[/13_FramesLocals|Фреймы, локальные переменные, рекурсия]] Фреймы, локальные переменные, рекурсия, ещё конвенции 1. [[/14_OS_Interaction|Взаимодействие с ОС]] 1. [[/15_FPU_Coprocessors|Понятие о сопроцессорах. FPU]] 1. [[/16_ExceptionsSyscalls|Исключения и системные вызовы]] Исключения (FPU, арифм., переполнения) syscall. Обработчики исключений. Проблема исключения посреди инструкции. Роль ОС в обработке. 1. [[/17_DeviceIO|Внешние устройства и ввод/вывод]] I/O: порты, MMIO, SPIM: виды внешних устройств 1. [[/18_InterruptsDMA|Прерывания и DMA]] 1. [[/19_Cache|Кеш]] 1. [[/20_Pipeline|Конвейер]] 1. [[/21_Multitasking|Многозадачность]] 1. [[/22_Multicore|Многопроцессорные системы]] 1. [[/23_Virtualization|Виртуализация]] |
Строка 42: | Строка 52: |
Архитектура ЭВМ и язык ассемблера
проект курса второго семестра
Концепция: это курс про архитектуру ЭВМ, ассемблер нужен только тогда, когда он иллюстрирует особенности архитектуры в частности и низкоуровнего программирования вообще.
Практика: первые несколько занятий проходят на базе эмуляторов учебных машин, остальные — на базе эмулятора MIPS (скорее всего, MARS, но возможно и SPIM).
План лекций
Примерная разбивка по два часа. Возможно, некоторые темы толстоваты, тогда они занимают четыре
Эмулятор MIPS, базовые сведения об архитектуре и работе; простейшая программа
MIPS — архитектура и система команд
- (схема), цикл работы процессора (понятие о микрокомандах), базовые сведения о системе команд и работе программы
- индексация, SPIM: работа с байтами. Секции .text и .data
Взаимодействие процессор-память
- Шина. Взаимодействие процессор-память; RAM, ROM, Reg; Гарвард/Принстон; 100 циклов для одного обращения к памяти
Конвенции, псевдоинструкции и макросы
- Структура памяти, псевдоинструкции, макросы, понятие о конвенциях (именование и использование регистров).
- Стек (+.stack). Подпрограммы и связанные с ними конвенции
Фреймы, локальные переменные, рекурсия
- Фреймы, локальные переменные, рекурсия, ещё конвенции
- Исключения (FPU, арифм., переполнения) syscall. Обработчики исключений. Проблема исключения посреди инструкции. Роль ОС в обработке.
Внешние устройства и ввод/вывод
- I/O: порты, MMIO, SPIM: виды внешних устройств
Ещё не вошло из того, что нужно рассказать и можно (?) показать на SPIM:
- Супервизор,
- Виртуальная память,
- Конвейер,
- Кеш,
Из того, что показать нельзя (?)
- SMP
- Суперскалярность
- ???