1) Уровни владения предметом: от транзисторов до сокетов:
1. На каких уровнях можно обозревать работу компьютера и его составляющих
2. На каких уровнях нужно остановиться более детально с точки зрения программиста
3. Немного ассемблера (тривиальный листинг с циклом) как обоснование для детального рассмотрения архитектуры CPU
2) Обзор работы CPU:
1. Внутреннее устройство: АЛУ, кэши, регистры
2. Наборы команд, понятие архитектуры, битность
3. Понятие кэша (уровней кэша), промахи кэша (обзорно, без технических деталей)
4. Принцип работы конвейера, спекулятивное выполнение, предсказание ветвлений (обзорно, без глубоких технических деталей)
5. Многоядерность: понятие ядра процессора, понятие параллельного исполнения инструкций (и немного о том, для чего оно нужно)
3) Обзор работы RAM:
1. Понятие виртуальной адресации и память с точки зрения ОС
2. Типы памяти с точки зрения программиста: стек/куча, статическая/динамическая
3. Особенности работы с памятью при многопоточности: гонка за ресурсы, обновление кэша процессора
4) Заключение:
1. Дальнейшие пути самообучения в направлении железа
2. Что можно почитать
Yet another computer science video
Понравилась статья? Подпишитесь на канал, чтобы быть в курсе самых интересных материалов
Подписаться