Архитектура фон Неймана и процессор (CPU)
| English | Русский |
|---|---|
| processor/ˈprəʊsesə/ | процессор |
| registers/ˈredʒɪstəz/ | регистры |
| buses/ˈbʌsɪz/ | шины |
| Von Neumann architecture/vɒn ˈnɔɪmən ˈɑːkɪtektʃə/ | Архитектура фон Неймана |
| Immediate Access Store/ɪˈmiːdɪət ˈækses stɔː/ | быстрый доступ к памяти |
| stored program/stɔːd ˈprəʊɡræm/ | хранимая программа |
| ALU/ˌeɪ el ˈjuː/ | АЛУ |
| control unit/kənˈtrəʊl ˈjuːnɪt/ | блок управления |
| system clock/ˈsɪstəm klɒk/ | системные часы |
| clock speed/klɒk spiːd/ | тактовая частота |
| general-purpose registers/ˈdʒenərəl ˈpɜːpəs ˈredʒɪstəz/ | универсальные регистры |
| special purpose registers/ˈspeʃl ˈpɜːpəs ˈredʒɪstəz/ | специализированные регистры |
| Program Counter/ˈprəʊɡræm ˈkaʊntə/ | счетчик команд (PC) |
| Memory Address Register/ˈmeməri əˈdres ˈredʒɪstə/ | регистр адреса памяти (MAR) |
| Memory Data Register/ˈmeməri ˈdeɪtə ˈredʒɪstə/ | регистр данных памяти (MDR) |
| Current Instruction Register/ˈkʌrənt ɪnˈstrʌkʃn ˈredʒɪstə/ | текущий регистр команд (CIR) |
| accumulator/əˈkjuːmjʊleɪtə/ | аккумулятор |
| Index Register/ˈɪndeks ˈredʒɪstə/ | индексный регистр |
| Status Register/ˈsteɪtəs ˈredʒɪstə/ | регистр состояния (SR) |
| flag/flæɡ/ | флаг |
| address bus/əˈdres bʌs/ | шина адресов |
| data bus/ˈdeɪtə bʌs/ | шина данных |
| control bus/kənˈtrəʊl bʌs/ | шина управления |
| register transfer/ˈredʒɪstə ˈtrænsfɜː/ | передача между регистрами |
Отчёт, которому следует каждый компьютер
- В июне 1945 года Джон фон Нейман распространил машинописную версию проекта, описывающего машину, которую ещё не построили: EDVAC.
- Его идея была простой и новой. Храните программу в той же памяти, что и данные, и позвольте одному процессору последовательно выбирать и выполнять инструкции одну за другой.
- Проект так и не был завершён, но конструкция была скопирована повсюду. Ваш телефон, ноутбук и школьный сервер построены именно на ней.
- Этот урок разбирает модель на части: память, компоненты процессора, его регистры и шины между ними.
Модель фон Неймана
- Архитектура фон Неймана имеет единую память, Память мгновенного доступа (IAS), хранящую как инструкции программы, так и данные. Это концепция хранения программ.
- Процессор выбирает каждую инструкцию из памяти и выполняет её, по одной, в адресном порядке, если только инструкция ветвления не изменяет поток выполнения.
- Инструкции, данные и адреса передаются между процессором и памятью по общим шинам.

*Одна память, один процессор, три шины
Почему важна концепция хранения программ
- Измените программу в памяти, и то же самое оборудование выполнит другую задачу. Никаких переподключений, никакой новой машины.
- Программа — это просто данные до момента выбора, поэтому её можно загрузить с диска, передать по сети или записать другой программой.
- Формулировка экзамена: инструкции и данные хранятся в одной памяти, а инструкции выбираются по одной и выполняются процессором.
Идея хранимой программы (фон Неймана) означает, что:
Одна память хранит инструкции и данные вместе; изменение сохранённой программы меняет то, что делает компьютер, без переделки проводки.
АЛУ, блок управления и тактовый генератор
- АЛУ (арифметико-логическое устройство) выполняет арифметику (сложение, вычитание) и логику (AND, OR, сравнения), беря операнды из регистров и возвращая результат в один из них.
- Блок управления (CU) декодирует каждую инструкцию и отправляет управляющие сигналы для её выполнения: открывает пути данных, указывает АЛУ, что делать, координирует чтение и запись памяти.
- Тактовый генератор подает непрерывную последовательность импульсов. Блок управления продвигает цикл на один шаг за импульс, так что все части меняют состояние одновременно; тактовая частота, в ГГц, — это количество импульсов в секунду.

*Весь процессор — это один маленький чип
АЛУ отвечает за:
Арифметико-логическое устройство выполняет вычисления и логику/сравнения. Декодирование — задача блока управления.
____ дешифрует каждую инструкцию и отправляет управляющие сигналы для её выполнения.
Блок управления дешифрует и подаёт сигналы; АЛУ выполняет арифметику и логику; тактовый генератор удерживает их в синхронизации.
Регистры
- Регистры — крошечные, очень быстрые хранилища внутри процессора. Общего назначения регистры хранят временные значения, используемые программистом. Специального назначения регистры выполняют одну фиксированную задачу в цикле.
| Регистр | Назначение |
|---|---|
| Счётчик команд (PC) | адрес следующей инструкции для выборки |
| Регистр адреса памяти (MAR) | адрес ячейки, которая читается или записывается |
| Регистр данных памяти (MDR) | данные или инструкция, только что прочитанные из этой ячейки или即将被写入的 |
| Регистр текущей инструкции (CIR) | инструкция, которая в данный момент декодируется и выполняется |
| Аккумулятор (ACC) | результат последней арифметической или логической операции |
| Индексный регистр (IX) | смещение, добавляемое к адресу при индексированном адресации |
| Регистр состояния | флаги, установленные последней операцией |

Регистры, блок управления и АЛУ, соединённые шинами
Нажмите на части компьютера фон Неймана
Исследуйте каждый блок. Процессор (блок управления, АЛУ, регистры) общается с единой основной памятью через шины — и это одна общая память для инструкций И данных является идеей фон Неймана.
Соотнесите каждый специализированный регистр с тем, что он хранит.
PC указывает на следующую инструкцию, CIR хранит текущую, MAR/MDR — пара адрес/данных для памяти, ACC хранит текущий результат.
Разобранный пример: "опишите роль каждого регистра"
- В таблице требуется по одному точному предложению на каждый регистр; слова, за которые ставятся баллы, выделены жирным.
- PC: хранит адрес следующей инструкции для выборки. MAR: хранит адрес ячейки, которая сейчас обрабатывается.
- MDR: хранит данные, только что прочитанные из памяти или即将被写入的. CIR: хранит инструкцию, которая в данный момент декодируется и выполняется.
- ACC: хранит результат последней операции АЛУ. Заметьте, что два регистра содержат адреса, два — содержимое, а один — результат.
Флаги регистра состояния
- Каждый флаг — это один бит, устанавливаемый или сбрасываемый АЛУ после операции: флаг нуля при получении результата или сравнении, равном нулю, флаг переноса при переполнении регистра при сложении, флаг знака при отрицательном результате, флаг переполнения при несовместимости знакового результата.
- Условный переход считывает флаг, чтобы решить, совершить ли ветвление. Именно так
IFи циклы взаимодействуют с аппаратным обеспечением. - Флаг переполнения также может вызвать прерывание, о котором будет сказано в следующем уроке.
Какие из этих флагов находятся в регистре состояния? Выберите все подходящие варианты.
Перенос, ноль, отрицательное и переполнение — это однобитные флаги, устанавливаемые АЛУ. Счётчик программ — отдельный регистр, хранящий адрес.
Три шины
- Шина адреса передаёт адрес, который хочет получить процессор. Она однонаправленная: от процессора к памяти.
- Шина данных передаёт сами данные или инструкцию. Она двухнаправленная, так как чтение и запись идут в противоположных направлениях.
- Шина управления передаёт управляющие сигналы, такие как чтение, запись, тактовый сигнал и прерывание. Она двухнаправленная.

Три системные шины, соединяющие процессор, память и устройства ввода/вывода
Какая шина является односторонней (переносит информацию только в одном направлении)?
Адресная шина односторонняя (CPU → память). Шины данных и управления являются двусторонними.
Разобранный пример: какой ширины достаточно?
- Адресная шина шириной $n$ бит позволяет адресовать $2^{n}$ ячеек. Шина 16 бит охватывает $2^{16} = 65\,536$ ячеек; шина 32 бита охватывает $2^{32}$, около четырёх миллиардов.
- "Назовите одно следствие увеличения ширины адресной шины": можно адресовать больше ячеек памяти.
- "Назовите одно следствие увеличения ширины шины данных": больше бит передаётся за одну операцию, поэтому для передачи тех же данных требуется меньше операций.
- Расширение адресной шины позволяет увеличить объём памяти; расширение шины данных ускоряет передачу данных.
Сколько мест памяти может охватить 16-битная адресная шина?
$2^{16} = 65\,536$ мест.
Более широкая адресная шина позволяет процессору адресовать больше мест памяти.
Каждая дополнительная адресная линия удваивает охват — n линий адресуют 2ⁿ мест.
Запись перемещения между регистрами
- Перемещения между регистрами и памятью записываются в нотации перемещения между регистрами:
MAR ← [PC]означает "скопировать содержимое PC в MAR". - Квадратные скобки означают "содержимое", а
[[MAR]]означает "содержимое ячейки, адрес которой находится в MAR". - Весь цикл выборки-исполнения записывается таким образом в следующем уроке; эта нотация аналогична стрелке присваивания в псевдокоде.
Что означает величина MAR ← [PC]?
Стрелка указывает на назначение, а квадратные скобки означают «содержимое». Это первый шаг каждой выборки.
Потерянные баллы
- PC хранит адрес следующей инструкции, а не текущей; CIR хранит инструкцию, а не адрес.
- MAR хранит адрес, MDR хранит данные. Их перепутывание стоит обоих баллов.
- Только адресная шина является однонаправленной. Утверждение «все шины однонаправленные» или «шина данных однонаправленная» — частая ошибка.
- Регистры находятся внутри процессора, а не являются частью ОЗУ, и они работают быстрее любой памяти.
Счётчик команд хранит инструкцию, которая выполняется в данный момент.
PC хранит адрес следующей инструкции. Текущая инструкция находится в CIR.
Вы поняли
- Фон Нейман: одна память (IAS) хранит и инструкции, и данные; процессор выбирает и выполняет их по одной.
- АЛУ вычисляет, КУ декодирует и подаёт сигналы, тактовый генератор синхронизирует шаги.
- PC следующий адрес · MAR адрес обработки · MDR данные · CIR текущая инструкция · ACC результат · IX смещение · регистр состояния флаги
- адресная шина однонаправленная, $2^{n}$ ячеек; данные и управления шины двухнаправленные;
MAR ← [PC]копирует содержимое PC в MAR