Презентация

От транзистора к процессору: как железо доходит до логики и кода

Материал связывает физику, двоичную логику, базовые логические элементы, память, процессорный цикл и самые низкие уровни вычислений.

О чем этот материал

Полупроводники, транзисторы, логические элементы, память и путь к программированию.

Это адаптированная версия учебной презентации: слайды разобраны в формате обычной статьи, чтобы материал было легче читать с телефона и возвращаться к нужным блокам позже.

Что внутри

Ниже краткий план материала. По нему удобно понять, в каком порядке разбирать тему.

  1. Вспомним чуть-чуть химии
  2. Вспомним чуть-чуть физики
  3. Поговорим И о логике ИЛИ НЕ поговорим
  4. Посмотрим на твердое (hard)
  5. Поговорим о мягком (soft)
  6. Разберем вопросы

Внезапно

Атом

Иллюстрация к теме Атом
Иллюстрация из учебного материала.

Проводимость электричества

Диэлектрики

Проводники

Полупроводники

Транзистор

Двоичная система

Складываем в столбик

Немножко логики

Давайте играться

Инвертор (НЕ)

Логическое умножение (И - AND)

Логическое сложение (ИЛИ - OR)

Сумматор

Компаратор

Ячейка памяти

Проектируем

Микросхема

Подключаем

Процессор

Процессоры работают согласно фиксированному циклу:

получение инструкции декодирование выполнение и сохранение результатов.

Этот цикл повторяется множество раз в секунду

Программирование

Ассемблер

Здесь мы определяем строку "Hello, World!" с символом окончания строки (null-terminated).

Мы объявляем _start как глобальную метку, которая будет точкой входа в программу.

используется в Linux для вывода данных на стандартный вывод.

который равен 1.

  • Секция .data используется для объявления данных в памяти.
  • Секция .text содержит исполняемый код программы.
  • mov eax, 4 загружает в регистр eax номер системного вызова для функции write, который
  • mov ebx, 1 загружает в ebx номер файлового дескриптора для стандартного вывода (stdout),
  • mov ecx, hello и mov edx, 13 загружают в ecx адрес строки и в edx её длину
  • int 0x80 генерирует прерывание, которое вызывает системный вызов, указанный в eax
  • После вывода строки, программа должна корректно завершиться. mov eax, 1 и xor ebx,

Язык С (си)

(многопоточности)

микросхем)

  • Полный контроль над управлением памятью
  • Нет встроенной конкурентности
  • Синтаксис минималистичен. Нет “сахара”
  • Доступ к системным вызовам
  • Разработка встроенного ПО (прошивка
  • Драйвер, операционные системы
  • Критически важна производительность

Высокоуровневые языки