1. Развитие [Машины Тьюринга](Модель%20вычислений.md#Машина%20Тьюринга). Отличия: - Лента заменена на Random-Access Memory (RAM) - Инструкции и данные объединены 2. Призвана быть максимально простой в реализации и производстве 3. Процедурное программирование и ООП - тот же принцип ![](../../Attachments/Машина%20фон%20Неймана.png) ## Особенности 1. Использование двоичного кодирования - Встречается и троичное, и двоично-десятичное кодирование 2. Программное управление. Команды выполняются последовательно - Последовательность и порядок сегодня условны 3. Память компьютера однородно хранит данные и программы - Однородность спорна 4. Ячейки памяти компьютера имеют адреса. Random-Access Memory - Адрес не сводится к целому числу сегодня - Память не является пассивным элементом компьютера 5. Возможность условного перехода - И перехода по иным причинам ## Окружение ### (Микро)процессор Цифровая схема, которая выполняет операции с внешним источником данных (обычно с памятью или потоком данных) ### (Микро)контроллер Микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает функции процессора и периферийных устройств, содержит ОЗУ и/или ПЗУ ### Оперативная память (память) Обычно часть компьютерной памяти, в которой хранится выполняемый машинный код, а также входные, выходные и промежуточные данные ## Control Unit и DataPath ### Control Unit Компонент центрального процессора (CPU), управляющей работой процессора. CU часто использует двоичный декодер для преобразования закодированных инструкций в управляющие сигналы, координирующие работу остальных блоков ### DataPath АЛУ, набор регистров и внутренние шины CPU, по которым данные перемещаются между ними ![](../../Attachments/Control%20Unit%20and%20DataPath.png) ## Виды инструкций 1. Работа с памятью: запись констант, копирование данных (память, регистры, порты I/O) 2. Арифметческие, логические и битовые операции 3. Управляющие операции: переходы, вызов и возврат из подпрограмм 4. Инструкции сопроцессоров: загрузка и выгрузка данных, управление сопроцессором ## Роль машинного слова Единица данных, которая выбрана естественной для данной архитектуры процессора 1. Может быть адресована в памяти 2. Передается по шине между памятью и процессором за один раз 3. Является стандартной единицей обрабатываемой информации 4. Связанные вопросы: формат инструкции, форматы данных, форматы адресов ## На практике 1. В чистом виде практически не встречаются 2. Влияние на индустрию - трудно переоценить 3. Элементы архитектуры присутствуют в подавляющем большинстве процессоров и средств разработки 4. Структурное программирование, ООП - наследие фон Неймана 5. Ловушка обратной совместимости ## Вариации 1. Память команд и данных: Принстонская и Гарвардская архитектуры - Типы данных, адресные пространства, машинные слова, теги 2. Принцип работы с данными в DataPath - Accumulator, Register-to-Register, Register-to-Memory, Memory-to-Memory, Stack Architectures 3. "Мощность" системы команд: CISC, RISC - Количество операндов (0, 1, 2, ...) - Кодирование инструкций - Принципы построения Control Unit 4. Адресация операндов Кроме того: ввод-вывод, параллелизм, иерархия памяти и тп