От вычислителя к ЭВМ
«Естественное» происхождение архитектуры фон Неймана.
Как превратить калькулятор в ЭВМ
ЭВМ: электронно-вычислительная машина
- Электронная элементная база
- Не механическая, и, что важнее, — не аналоговая
- Агрегат производит вычисления
- Вероятно, и передачу/хранение?
- Вычисления машинные
- Алгоритмические?
- Клавиатура для ввода
- Чисел
- Действий с числами
- Дисплей для вывода чисел
- Работа:
- ручной ввод чисел и действий над ними,
- запоминание промежуточных результатов «на бумажке»
Запись алгоритма
Алгоритм надо записывать, хранить и выполнять
⇒ Память для команд
⇒ Порядок выполнения команд из памяти
⇒ (требование алгоритмизации) возможность выполнять или не выполнять команды в зависимости от свойств данных (ветвление) Ограничения возможной реализации
Команды хранятся в памяти пронумерованные (т. н. адреса ячеек памяти)
- Команды выполняются подряд (в порядке номеров)
Вводятся дополнительные команды:
проверки свойств данных (сравнение как минимум)
переход по адресу команды в зависимости от проверок
- в т. ч. переход назад для циклов
- условное выполнение
- параллельное выполнение независимых команд
- что такое «независимых»?
- граф выполнения вместо последовательности (связи между блоками команд вместо адресов)
- …
Хранение данных
Что делать с данными в процессе выполнения?
Хранить промежуточные результаты вычислений и обращаться к ним
Выбирать из наборов заранее введённых/подготовленных данных
Вводить и выводить наборы данных Вариант реализации: та же память, что и для команд:
- основной тип данных — «ячейка», занимает столько же места, сколько одна команда
все данные хранятся по адресам (тем же, что и адреса команд)
- в зависимости от ситуации одна и та же ячейка может интерпретироваться и как данные, и как команда
- если для кодирования данных одной ячейки не хватает, они записываются по частям в несклько подряд идущих ячеек
- однотипные наборы данных отличаются только адресом начала ⇒ удобно обрабатывать алгоритмом
загрузка/выгрузка данных на внешние носители для последующего использования Другие варианты:
раздельная память для команд и для данных (а также — для данных различчного назначения)
- как ни странно, не сильно меняет общую схему
- другие принципы адресации: частичная, неуникальная и т. п.
- оказались невостребованы
- …
Упрощённая схема ЭВМ
Итак, в дополнение к вычислителю нам понадобятся:
Способы хранения команд и данных — оперативная память
Способы обращения к заданным командам и данным в памяти — адресация
Описание команд и правила их выполнения — система команд
Устройство управления, которое будет исполнять эти правила
- Среда передачи данных и команд между устройствами
Способ, которым данные и команды (программа) оказываются в соответствующей памяти — ввод
Способ, которым можно прочитать данные из соответствующей памяти — вывод С учётом допущенных ограничений:
Адресуемая оперативная память (возможно, общая для данных и команд)
Последовательное выполнение команд
Команды условного перехода по адресу
Двоичная система счисления
Внешняя память для долговременного хранения данных и команд
Работа А.Беркса, Г.Голдстайна и Д.Неймана «Предварительное рассмотрение логической конструкции электронного вычислительного устройства» не вводит явно этих принципов. но подразумевает:
Обратите внимание на то, что хранение данных во ВЗУ по сути мало чем отличается от ввода-вывода.
Алгоритм работы фон-неймановской ЭВМ
- Ввод программы в память
=> ПЗУ
- Выполнение начинается с определённого адреса
- УУ считывает команду по адресу из памяти
- УУ интерпретирует команду:
- УУ считывает данные из памяти (при необходимости)
- АЛУ выполняет команду
- УУ записывает данные в память (при необходимости)
УУ определяет адрес следующей команды (прибавляя к текущему адресу команды фиксированное смещение; в т. н. командах перехода адрес задаётся явно)
- Переход к п. 3
Немного терминологии:
- Регистры
- Внутренние ячейки памяти АЛУ. Регистры могут явно указываться в командах или присутствовать неявно. Все термины ниже — не универсальные. Возможны варианты и отклонения.
- Машинное слово
- Адресуемая ячейка памяти, хранящая число.
В классической архитектуре фон Неймана (т. н. Принстонской) невозможно отличить, является ли это число командой или данными (например, целочисленной константой). В оперативной памяти хранится и то, и другое.
В т. н. Гарвардской архитектуре память данных и память команд строго разделены. В чистом виде среди процессоров общего назначения не встречается.
- Адрес
- Номер ячейки. Адреса обычно идут подряд, нумерация начинается с нуля. Нередко нумеруются не сами ячейки (машинные слова), а составляющие их байты. В этом случае в этом случае адрес машинного слова кратен его размеру в байтах.
Чем больше ячеек памяти, тем длиннее адрес => тем больше размер ячейки.
- Такт работы ЭВМ
- Циклическая часть работы ЭВМ (п. 3 - 9). Однако часто бывает, что операции с памятью данных, памятью команд и регистрами идут параллельно.
- Шина
- Устройство передачи данных между узлами ЭВМ. Как правило, шин несколько: например, для записи в память надо передавать два вида информации — адрес и содержимое. Для внешних устройств может быть своя шина.