# Архитектура компьютера ## Лекция 3 ## Ещё не компьютеры. Реле Пенской А.В., 2025 ---- ## План лекции - Ещё не компьютеры. Решение задач компьютеров без компьютеров - Единичные операции. - Комплексные расчёты. - Системы управления. - Странное. - Реле и релейные диаграммы. - Программируемые логические контроллеры. --- ## Ещё не компьютеры
Решение задач компьютеров без компьютеров Почему это полезно: - Во-первых, это красиво. - Проблема абстрактных облаков и IT-шников с мифологическим сознанием. - Перенос технических приёмов и механизмов в современные компьютерные системы. - Потребность в разработке компьютеров не в электронном базисе ([NASA завершило конкурс датчиков для венерианского ровера](https://nplus1.ru/news/2020/07/13/venus-rover-winners)). --- ## Отдельные операции Таблицы. Устройства. Механизмы. --- ### Логарифмическая линейка и Ко Устройство, позволяющее выполнять несколько математических операций: умножение, деление, возведение в степень (квадрат и куб), вычисление корней (квадрат и куб), логарифмов, вычисление тригонометрических и гиперболических функций, и т.п. Принцип расчёта — воплощение таблицы значений в виде, позволяющем быстро находить нужные зависимости. Расчёт производится путём выставления линейки в требуемое положение (возможно, в несколько приёмов) и считывания результата.  ---- #### Линейка и операция деления  ---- #### Номограмма и операции умножения  ---- #### Примеры использования
(табличное исполнение) - таблица истинности; - таблицы предрасчитанных значений; - cache; - memoization ([Рекурсия и вычислительная сложность](https://fp.edu.swampbuds.me/02-03-basic.md#/11/0/0)); - SRT division. --- ### Арифмометр
устройство, позволяющее складывать, вычитать, умножать и делить с фиксированным количеством разрядов. Принципы расчёта воплощены в механизмах устройства. Расчёт производится по шагам (алгоритмически), с учётом переноса между разрядами.

---- #### Примеры использования   --- #### Ключевое отличие арифмометра и логарифмической линейки
1. Рост области определения функций: - для арифмометра: медленный рост сложности устройства, средний рост длительности расчёта (зависит от функции); - для линейки/таблицы: быстрый рост размера линейки, минимальный рост длительности расчёта. 1. Рост области значений функции: - для арифмометра: медленный рост сложности устройства, средний рост длительности расчёта (зависит от функции); - для таблицы: средний рост размера таблицы, минимальный рост длительности расчёта. - для линейки: быстрый рост размера линейки или погрешности, минимальный рост длительности расчёта. 1. Линейка — аналоговое устройство. 1. Арифмометр/Таблица — цифровое устройство.
--- ## Информационные системы Много вычислений со множеством промежуточных результатов. ---- ### Расчёт артиллерийских таблиц.
Белковые вычислители Задача: расчёт артиллерийских таблиц для французской или российской армий. Вычислительная задача: многократный расчёт сложной формулы с большим количеством операций для различных входных параметров.  ---- Средства: - Простейшие счётные устройства в ограниченном количестве. - Математики, физики и другие учёные. - Офицерский корпус и грамотные солдаты. Проблемы наивного решения
(человек + лист + карандаш = сиди считай): - ошибка выбора операции; - регистровый файл ненадёжен (почерк, адресация); - арифметические ошибки; - склонность людей к сокрытию ошибок. ---- #### Архитектура решения реконфигурируемый вычислитель с потоковой архитектурой
(Coarse Grain Reconfigurable Architecture — **CGRA**)  ---- #### Реализация 1. расчётная формула представляется в виде графа; 2. каждой вершине графа сопоставляется человек, способный выполнить соответствующую операцию (только одну); 3. люди размещаются в соответствии с графом, каждый знает, кто сообщит входные данные, кому сообщить результат; 4. на вход графа подаются параметры для расчётов; 5. на выходе собираются результаты; 6. для повышения надёжности расчётов используется двоирование (две роты, сравниваем результаты, несовпадение — повтор). ---- #### Структура белкового вычислителя  ---- #### Достоинства 1. радикальный рост производительности (параллелизм инструкций): - параллельное исполнение независимых операций (см. далее); - конвейеризация расчётов (см. далее); 1. радикальный рост надёжности; - высокий уровень специализации узлов; - минимальная вариативность процесса; 1. возможность реконфигурации вычислителя под новую задачу. ---- ##### Параллельное исполнение независимых операций в графе  ---- ##### Конвейеризации расчётов  ---- #### Практика На практике все перечисленные механизмы встречаются в современных компьютерных системах, в том числе: - в процессорах общего назначения; - в специализированных процессорах; - в распределённых системах. --- ## Системы управления Алгоритм управления физической установкой. ---- ### Жаккардовый ткацкий станок и программное управление
#### Жаккард Жаккард — ткань с узором, на обратной стороне которой можно видеть "инвертированный" рисунок. Структура полотна: - вертикальные нити — натянуты равномерно; - горизонтальные нити разных цветов, дисбаланс петель с одной из сторон формирует узор.

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

--- ### Автоматические телефонные станции (АТС) **Побочный квест**: - сделать слайды на тему для лекционного курса; - выступить с докладом на лаб. 1. --- ## Странное Данные примеры призваны скорее озадачить, нежели научить. ---- ### Поиск кратчайшего пути на взвешенном графе Классический алгоритм Дейкстры имеет сложность $O(n^2)$. Имеется огромное количество оптимизаций и эвристических приёмов для сокращения вычислительной сложности.  Проблема: дорожная карта региона. ---- Альтернативное решение: - Изготавливается натуральная модель взвешенного графа, где: - вершины — контактные площадки; - рёбра — проводники с сопротивлением, обратно пропорциональным весу ребра. - Подаётся питание на интересующие вершины графа. - Наблюдается цепочка сгоревших/нагревшихся проводников. Площадь — $O(n+e)$ Время — $O(n)$, при скорости около скорости света. ---- ### Задача коммивояжёра и амёба Задача коммивояжёра — поиск самого выгодного маршрута, проходящего через указанные города хотя бы по одному разу с последующим возвратом в исходный город.  ---- Альтернативное решение: Амёба — любит питательную среду, не любит свет, стремится занять максимальную площадь. Заявленные результаты: - линейный рост скорости поиска от количества городов (до 8 штук); - при росте вычислительной сложности по экспоненте. Детали и суть по ссылке: [link](https://royalsocietypublishing.org/doi/10.1098/rsos.180396) *Offtopic*: Ваша возможность сделать свой вклад в материалы курса. ---- ### Приставка Dendy и пистолет  --- ## Реле и релейные диаграммы ### Электрическое реле
- вход и выход, между ними ключ; - магнитная катушка замыкает ключ; - без тока возвращается в нормальное состояние; - состояния: `0`/`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 | | | | | | | +------------------[ ]-------------( )----+ | Run Motor | | | ``` То же вы увидите в шкафу управления. Почти один в один. ---- ### Процесс управления двигателем ```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 -------------------> ``` ---- ### Практика применения реле - Когда-то использовали, чтобы делать компьютеры. - Непосредственное применение, силовые шкафы управления. Высокий ток, неблагоприятная среда эксплуатации. - Там, где электроника не работает (неэлектрические реле). - Программируемые логические контроллеры (ПЛК) — вернёмся чуть позже. *Вопрос*: чего не хватает, чтобы сделать компьютер? --- ## Реле и состояние. 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  --- ### Программируемые логические контроллеры
Проблемы автоматизации релейными схемами: - плохо масштабируется, - сложная настройка и поддержка, - ненадёжность сложных схем, - проблема ведения документации. 
ПЛК
специальная разновидность электронной вычислительной машины.
Особенности: - управляющие системы; - законченные устройства для встроенного использования; - специализация ввода-вывода, модульность; - выделение инструментальной составляющей; - эксплуатация в тяжёлых условиях.
---- #### Типовое устройство ПЛК  Также существуют и полностью программные реализации. ---- #### Программирование ПЛК (1 шт.)
IEC 61131
standard for programmable controllers
Языки для АСУТП: - Ladder Diagram (Релейно-контактные схемы) - Function Block Diagram (Функциональные блоковые диаграммы) - Sequential Function Chart (Последовательностные функциональные диаграммы) - Structured Text (Структурированный текст)
 - Ограничение модели вычислений для: - использование не программистами; - визуальность; - формальные свойства, реальное время.
---- #### Программирование ПЛК (много шт.) 
IEC 61499
Standard for distributed Automation
- System of Systems
- Разделение управления и данных. - Интероперабельность по данным.