Files
obsidian/Computer Science/Вычислительные системы/Докомпьютерные вычисления.md
T
roma-dxunvrs b8cbed0791 11.09.26
2026-09-11 23:12:13 +03:00

12 KiB

Решение задач компьютеров без компьютеров

Логарифмическая линейка

  • Устройство, позволяющее выполнять несколько математических операций: умножение, деление, возведение в степень (квадрат и куб), вычисление корней (квадрат и куб), логарифмов, вычисление тригонометрических и гиперболических функция и т.п.
  • Принцип расчета - воплощение таблицы значений в виде, позволяющем быстро находить нужные зависимости
  • Расчет производится путем выставления линейки в требуемое положение и считывания результата

!Лог линейка.png

Линейка и операция деления

!Деление на линейке.png

Двигаем делимое напротив делителя, в начале получаем частное

Номограмма и операция умножения

!Номограмма.png

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

Табличное исполнение

  • Таблица истинности
  • Таблицы предрасчитанных значений:
    • cache
    • memoization
    • STR division

Арифмометр

  • Устройство, позволяющее складывать, вычитать, умножать и делить с фиксированным количеством разрядов
  • Принципы расчета воплощены в мехнизмах устройства
  • Расчет производится по шагам (алгоритмически), с учетом переноса между разрядами

!Арифмометр.png

Отличие арифмометра от логарифмической линейки

  1. Рост области определения функций:
    • для арифмометра: медленный рост сложности устройства, средний рост длительности расчета (зависит от функции)
    • для линейки/таблицы: быстрый рост размера линейки, минимальный рост длительности расчета
  2. Рост области значений функции:
    • для арифмометра: медленный рост сложности устройства, средний рост длительности расчета (зависит от функции)
    • для таблицы: средний рост размера таблицы, минимальный рост длительности расчета (просто новая строка, сопряженно с областью определения)
    • для линейки: быстрый рост размера линейки или погрешности, минимальный рост длительности расчета
  3. Линейка - аналоговое устройство (есть датчик, отсюда погрешность расчетов )
  4. Арифмометр/Таблицы - цифровое устройство (однозначный результат, погрешность определяется конструкцией)

Расчет артиллерийских таблиц. Белковые вычислители

  • Задача: расчет артиллерийских таблиц для французской или российской армий
  • Вычислительная задача: многократный расчет сложной формулы с большим количеством операций для различных входных параметров

Средства

  1. Простейшие счетные устройства в ограниченном количестве
  2. Математики, физики и другие ученые
  3. Офицерский корпус и грамотные солдаты

Проблемы наивного решения

(человек + лист + карандаш = сиди читай)

  1. Ошибка выбора операции (после долгой работы замылится глаз)
  2. Регистровый файл ненадежен (почерк, адресация)
  3. Арифметические ошибки
  4. Склонность людей к сокрытию ошибок

Архитектура эффективного решения

Реконфигурируемый потоковой вычислитель

!Потоковый вычислитель.png

  1. Расчетная формула представляется в виде графа
  2. Каждой вершине графа сопоставляется человек, способный выполнить соответствующую операцию (только одну)
  3. Люди размещаются в соответствии с графом, каждый знает, кто сообщит входные данные, кому сообщить результат
  4. На вход графа подаются параметры для расчетов
  5. На выходе собираются результаты
  6. Для повышения надежности расчетов используются двоирование (две роты, сравниваем результаты, не совпадение - повтор)

Структура белкового вычислителя

!Белковый вычислитель.png

Достоинства

  1. Радикальный рост производительности (параллелизм инструкций)
    • Параллельное исполнение независимых операций
    • Конвейризация расчетов - каждая вершина постоянно считает, без простоев (набор данных за 5 тактов - параллелизм, 3 набора данных за 7 тактов - если пустить данные непрерывно)
  2. Радикальный рост надежности
    • Высокий уроень специализации узлов
    • Минимальная вариативность процесса
  3. Возможность реконфигурации вычислителя под новую задачу

!Конвейризация расчетов.png

Цвета - 3 партии входных данных. Цифры - на каком такте будут на данном этапе вычисления

Практика

На практике все перечисленные механизмы встречаются в современных Компьютерные системы, в том числе:

  • В процессорах общего назначения
  • В специализированных процессорах
  • В распределенных системах

Жаккардовый ткацкий станок и программное управление

Жаккард - ткань с узором, на обратной стороне которой можно видеть инвертированный рисунок Структура полотна:

  • вертикальные нити - натянуты равномерно
  • горизонтальные нити разных цветов, дисбаланс петель с одной из сторон формирует узор

!Жаккард.png

Проблема создания станка

Плетение полотна:

  1. Нити разделяются на верхние и нижние по схеме узора
  2. Между ними пропускается челнок с горизонтальной нитью
  3. Повтор Узор - уникальный или циклический Проблема: разделение верхней и нижней нити
  • Разделение на верхнюю и нижнюю нить нерегулярно
  • "Гребенка" не работает

!Обычный ткацкий станок.png

Жаккардовый ткацкий станок

Считается первой программно-управляемой машиной Элементы решения:

  • "Гребенка" заменена на систему крючков на пружинах с поворотным механизмом
    • Нажатие на ключок позволяет зацепить нить
    • Сильное нажатие и поворот - освободить нить
  • Как автоматизировать регулярное нажатие на кнопочки?

!Идея крючка 1.png

Идея крючка

!Идея крючка 2.png

Программное обеспечение

Элементы решения:

  • Пластина с отверстиями позволяет разом "нажать" нужные крючки (перфокарта)
  • Лента из пластин - программа узора

!Жаккард программное решение.png

Структура шага работы станка:

  1. Нажатие пластиной на крючки (разделение верхней и нижней)
  2. Пропускание челнока
  3. Нажатие всех крючков и поворот (отпускание нитей)
  4. Сдвиг ленты с пластинами
  5. Повтор

Практика станка

  • Механика, по сути, не изменилась
  • Принцип работы - тот же

Автоматические телефонные станции (АТС)

Будет потом

Поиск кратчайшего пути на взвешенном графе

Классический алгоритм Дейкстры имеет сложность O(n^2). Имеетя огромное количество оптимизаций и эвристических приемов для сокращения вычислительной сложности Проблема: дорожная карта региона

Альтернативное решение

  • Изготавливаются натуральная модель взвешенного графа, где:
    • Вершины - контактные площадки
    • Ребра - проводники с сопротивлением, обратно пропорциональным весу ребра
  • Подается питание на интересующие вершины графа
  • Наблюдается цепочка сгоревших/нагревшихся проводников Площадь O(n+e) Время O(n)

Задача коммивояжера и амеба

Задача коммивояжера - поиск самого выгодного маршрута, проходящего через указанные города хотя бы по одному разу с последующим возвратом в исходный город Решение перебором - O(n!) Динамикой - O(n^2 * 2^n)

Альтернитивное решение

Амеба любит питательную среду, не любит свет, стремится занять максимальную площадь Заявленные результаты:

  • Линейный рост скорости поиска от количества городов (до 8 штук)
  • При росте вычислительной сложности по экспоненте

Как развитие и скачок произошел переход к использованию электричества в сигналах и состояниях. (Цифровая схемотехника)