# Архитектура компьютера ## Лекция 3 ## Ещё не компьютеры. Реле Пенской А.В., 2026 --- ## Ещё не компьютеры
Решение задач компьютеров без компьютеров Почему это полезно: 1. Во-первых, это красиво. 1. Перенос технических приёмов и механизмов в современные компьютерные системы. 1. Потребность в разработке компьютеров не в электронном базисе ([NASA завершило конкурс датчиков для венерианского ровера](https://nplus1.ru/news/2020/07/13/venus-rover-winners)). --- ## Отдельные операции Таблицы. Устройства. Механизмы. --- ### Таблицы значений
Математическая функция
отображение множества A в множество B.
Если входные и выходные значения счётные — функцию можно записать в табличной форме. **Примеры**: - таблица истинности; - таблица Брадиса — значения тригонометрических функций и логарифмов. **Проблема**: - таблица сложения для 32-битных чисел потребовала бы $2^{32} \times 2^{32} = 2^{64}$ строк — заведомо не поместится ни в какую память. --- ### Логарифмическая линейка и Ко  - **Операции**: умножение, деление, степени и корни (квадрат, куб), логарифмы, тригонометрия и гиперболические функции. - **Принцип**: таблица значений "воплощена" в шкале — расчёт сводится к поиску нужной зависимости, а не к вычислению. - **Вычисление**: выставить линейку в нужное положение (возможно, в несколько приёмов) и считать результат со шкалы. ---- #### Линейка и операция деления  ---- #### Номограмма и операции умножения  --- ### Арифмометр
- Устройство для сложения, вычитания, умножения и деления с фиксированным количеством разрядов. - **Принцип**: расчёт воплощён в механизмах устройства, а не в таблице значений. - **Вычисление**: по шагам (алгоритмически), с переносом между разрядами.

---- #### Арифмометр: примеры   --- #### Ключевое отличие арифмометра и логарифмической линейки | | Линейка | Арифмометр | | :---------------------| :------------ | :---------------------- | | Тип | аналоговое | цифровое | | Рост обл. определения | | | | Размер | растёт быстро | растёт медленно | | Время расчёта | ~не меняется | рост зависит от функции | ---- #### Примеры использования 1. таблицы предрассчитанных значений; - cache; - warm cache; - memoization ([Рекурсия и вычислительная сложность](https://fp.edu.swampbuds.me/02-03-basic.md#/11/0/0)); 1. цифровые схемы (таблица истинности); 1. любые алгоритмические расчёты. --- ## Информационные системы Много вычислений со множеством промежуточных результатов. ---- ### Расчёт артиллерийских таблиц.
Белковые вычислители Задача: расчёт артиллерийских таблиц для французской или российской армий. Вычислительная задача: многократный расчёт сложной формулы с большим количеством операций для различных входных параметров.  ---- Доступные средства: 1. Простейшие счётные устройства в ограниченном количестве. 1. Математики, физики и другие учёные. 1. Офицерский корпус и грамотные солдаты. Проблемы наивного решения (сиди и считай): 1. ошибка операции (перепутал действие); 1. промежуточные значения (опечатка, регистровый файл); 1. арифметические ошибки; 1. склонность людей к сокрытию ошибок. ---- #### Архитектура эффективного решения:
реконфигурируемый потоковый вычислитель

1. граф — формула; 1. узел — человек — операция; 1. ребро — передача значения. Люди расставлены по графу, входы/выходы передаются друг другу.
---- ##### Параллельное исполнение независимых операций в графе  ---- ##### Конвейеризации расчётов  ---- #### Надёжность — двоирование Две роты + сверка результатов.  ---- #### Достоинства 1. рост производительности (параллелизм инструкций): - параллельное исполнение независимых операций; - конвейеризация расчётов; 1. рост надёжности; - высокий уровень специализации узлов (простота); - минимальная вариативность процесса; 1. возможность реконфигурации вычислителя под новую задачу. ---- #### Практика Все перечисленные механизмы встречаются в современных компьютерных системах: - **процессоры общего назначения** — параллелизм инструкций, конвейеризация; - **специализированные процессоры** — специализация узлов, реконфигурируемость (FPGA/CGRA); - **распределённые системы** — дублирование и сверка результатов (репликация, консенсус). --- ## Системы управления Алгоритм управления физической установкой. ---- ### Жаккардовый ткацкий станок и программное управление
#### Жаккард Жаккард — ткань с узором, на обратной стороне которой можно видеть "инвертированный" рисунок. Структура полотна: - вертикальные нити — натянуты равномерно; - горизонтальные нити разных цветов, дисбаланс петель с одной из сторон формирует узор.

---- #### Проблема создания станка
Плетение полотна: 1. нити разделяются на верхние и нижние по схеме узора; 1. между ними пропускается челнок с горизонтальной нитью; 1. повтор. Узор — уникальный (не подлежит автоматизации) или циклический.
Проблема: разделение верхней и нижней нити. - Разделение на верхнюю и нижнюю нить нерегулярно. - "Гребёнка" не работает. 
---- #### Жаккардовый ткацкий станок
Считается первой программно-управляемой машиной. Элементы решения: - "Гребёнка" заменена на систему крючков на пружинах с поворотным механизмом. - Нажатие на крючок позволяет зацепить нить. - Сильное нажатие и поворот — освободить нить. - Как автоматизировать регулярное (циклическое) нажатие на крючки?
 
---- #### Жаккардовый ткацкий станок.
Программное обеспечение
Элементы решения: - Пластина с отверстиями позволяет разом "нажать" нужные крючки (перфокарта). - Лента из пластин — программа узора. 
Структура шага работы станка: 1. Нажатие пластиной на крючки (разделение верхней и нижней). 2. Пропускание челнока. 3. Нажатие всех крючков и поворот (отпускание нитей). 4. Сдвиг ленты с пластинами. 5. Повтор.
---- #### Практика станка
- механика, по сути, не изменилась; - принцип работы — тот же. Video: [link](https://www.youtube.com/watch?v=K6NgMNvK52A)

--- ## Странное Данные примеры призваны скорее озадачить, нежели научить. ---- ### Поиск кратчайшего пути на взвешенном графе Классический алгоритм Дейкстры имеет сложность $O(n^2)$. Имеется огромное количество оптимизаций и эвристических приёмов для сокращения вычислительной сложности.  Проблема: дорожная карта региона. ---- Альтернативное решение: - Изготавливается натуральная модель взвешенного графа, где: - вершины — контактные площадки; - рёбра — проводники с сопротивлением, обратно пропорциональным весу ребра. - Подаётся питание на интересующие вершины графа. - Наблюдается цепочка сгоревших/нагревшихся проводников. Площадь — $O(n+e)$ Время — $O(n)$, при скорости около скорости света. ---- ### Задача коммивояжёра поиск самого выгодного маршрута через указанные города хотя бы по одному разу с возвратом в исходный город. NP-полная задача: точный перебор растёт факториально от числа городов.  ---- Альтернативное решение: Амёба — любит питательную среду, не любит свет, стремится занять максимальную площадь. Заявленные результаты: - линейный рост скорости поиска от количества городов (до 8 штук); - при росте вычислительной сложности по экспоненте. Детали и суть по ссылке: [link](https://royalsocietypublishing.org/doi/10.1098/rsos.180396) ---- ### Приставка Dendy и пистолет  *Вопрос*: как пистолет определяет, куда целится игрок за такую цену? Notes: Экран CRT рисует кадр построчно лучом, а не выводит его сразу целиком. При выстреле игра на мгновение гасит экран до чёрного, затем нарисовывает все цели по очереди белыми точками. Фотодиод в стволе пистолета засекает момент вспышки; по времени этого момента относительно начала кадра консоль вычисляет, в какую именно цель (и примерно куда на экране) целился игрок. Координата определяется не пространственно, а через время — ещё один пример вычисления "не совсем компьютером", как и остальные примеры этого раздела. --- ## Реле и релейные диаграммы Мотивация раздела: 1. Простой механизм для базовой логики. 1. Понятен "на пальцах". 1. Устраняет "магию" в компьютерах. ---- ### Электрическое реле
1. вход и выход, между ними ключ; 1. магнитная катушка замыкает ключ; 1. без тока возвращается в нормальное состояние; 1. состояния: `0`/`1`, есть питание/нет питания; 1. нет сигналов, есть уровни! Другие виды: механические, пневматические, тепловые, оптические, акустические, магнитные и т.д.
 Обозначения: - `-[ ]-` нормально разомкнутое реле (ПОВТОРИТЕЛЬ) - `-[\]-` нормально замкнутое реле (НЕ)
---- ### Релейная диаграмма. И, ИЛИ, НЕ Описывает схемы включения оборудования в релейные стойки. - `-( )-` нормально неактивный актуатор - `-(\)-` нормально активный актуатор
```text L1 L2 o o | Logical AND | | | +--[ ]--------[ ]-----------( )---------+ | Key 1 Key 2 Door motor | | | ``` ```text L1 L2 o o | Logical NOT | | | +--[ ]----------------------(\)---------+ | Key 1 Door motor | | | ```
```text L1 L2 o o | Logical OR | | | +----+--[ ]--------------+--( )---------+ | | Exterior unlock | Unlock | | | | | | +--[ ]--------------+ | | Interior unlock | | | ```
---- ### Управление двигателем Схема включения электродвигателя с аварийной остановкой.
```text L1 L2 o o | | +--[\]---[\]----+--[ ]---+---------( )----+ | ES Stop | Start | Run | | | | : | | +--[ ]---+ : | | Run : | | ^ : | | +.............../ | | v | +------------------[ ]-------------( )----+ | Run Motor | | | ```
```text ________ (1) ES _______________...___/ \___ (0) Stop _______________...________________ (0) ________ (1) Start __/ \___...________________ (0) __________..._____ (1) Run ____/ \__________ (0) ________..._______ (1) Motor ______/ \________ (0) ------------------ time -------------------> ```
То же вы увидите в шкафу управления. Почти один в один. ---- ### Практика применения реле 1. Когда-то использовали, чтобы делать компьютеры. 1. Сегодня: силовые шкафы управления. Высокий ток, неблагоприятная среда эксплуатации. 1. Там, где электроника не работает (неэлектрические реле). 1. Программируемые логические контроллеры (ПЛК) — вернёмся позже. *Вопрос*: чего не хватает, чтобы сделать компьютер? --- ## Реле и состояние. RS-триггер Асинхронный триггер, который сохраняет своё предыдущее состояние при неактивном состоянии обоих входов и изменяет своё состояние при подаче на один из его входов активного уровня.

| `S` | `R` | `Q(t)` | `NQ(t)` | |:----|:----|:---------|:----------| | 0 | 1 | 0 | 1 | | 1 | 0 | 1 | 0 | | 0 | 0 | `Q(t-1)` | `NQ(t-1)` | | 1 | 1 | 0 | 0 |
---- ### RS-триггер на реле

```text L1 L2 o o | | +---+---[ ]---+---(\)---+ | | R | Q | | | | | | +---[ ]---+ | | NQ | | | | +---[ ]---+ | | | Q | | | | | | +---+---[ ]---+---(\)---+ | S NQ | | | ```
---- #### `S=1; R=0`. 1  ---- #### `S=1; R=0`. 2  ---- #### `S=1; R=0`. 3  ---- #### `S=1; R=0`. 4  ---- #### `S=1; R=0`. 5  ---- #### `S=0; R=1`. 1  ---- #### `S=0; R=1`. 2  ---- #### `S=0; R=1`. 3  ---- #### `S=0; R=0; Q=1; NQ=0`. 1  ---- #### `S=0; R=0; Q=1; NQ=0`. 2  --- ## От реле к транзистору
- Реле — электромеханический ключ, ограничен механикой (износ, дребезг, скорость). - Транзистор — тот же ключ, но электронный: без движущихся частей, на порядки быстрее. - Все схемы лекции (И/ИЛИ/НЕ, RS-триггер) переносятся без изменений. - Cледующий шаг — цифровая схемотехника.
 [Transistor as switch](https://commons.wikimedia.org/wiki/File:Transistor_as_switch.svg) Notes: автор FDominec, Wikimedia Commons, общественное достояние (PD)