Рассмотрим архитектуру и работу процессора, одного из основных компонентов компьютера. Процессор состоит из следующих внутренних узлов:
- устройство управления, предназначено для дешифрования и исполнения команд;
- рабочие регистры, необходимы для адресации памяти и выполнения вычислительных операций;
- арифметико‐логическое устройство, выполняет логические и арифметические операции;
- управление вводом‐выводом, ввод-вывод данных в процессор или из процессора;
Процессор работает с командами. В команде предписывается какое действие должен выполнить процессор и с какими данными. А любая программа, которая выполняется процессором состоит из множества различных команд, выполняя которые процессор выполняет программу.
Что из этого следует?
А из этого следует, что процессор должен обладать определённой архитектурой и команда должна иметь определённый формат для того, чтобы в итоге получить нужный результат.
Рассмотрим вкратце формат команды. Информация в компьютере хранится в виде двоичного кода, составленного из последовательностей 0 и 1. Эти последовательности имеют разрядность кратную 8. То‐есть 8‐разрядные, 16‐разрядные, 32‐разрядные и т. д. 0 или 1 в такой последовательности носит название бит. Соответственно:
8 бит = 1 байту;
16 бит = 1 машинному слову;
32 бита = двойному машинному слову;
Но в компьютере объём информации определяется не в машинных словах, а в следующих величинах:
1024 байт = 1 килобайту (Кб);
1024 Кб = 1 мегабайту (Мб);
1024 Мб = 1 гигабайту (ГБ);
1024 Гб = 1 терабайту (Тб);
Но эта тема относится к компьютерной памяти, поэтому мы к ней вернёмся позже. А пока нас интересуют байты и машинные слова, так как мы разбираемся с работой процессора. Поскольку изучать новые вещи лучше всего с простого, то и мы будем опираться в изучении архитектуры, работы процессора на один из самых первых массовых процессоров фирмы Intel—процессор 8086. Все последующие поколения процессоров, включая и самые последние поколения процессоров, используют базовые принципы архитектуры процессора 8086 и его семейства.
Команда для процессоров Intel в общем случае имеет следующий формат:
Здесь одна группа бит образует поле код операции. Код операции показывает, что процессор должен делать. А поля, отведенные под операнды, предоставляют необходимые данные для осуществления операции процессором. Более подробно формат команд рассмотрим позднее.
Выше мы представили устройства, входящие в состав архитектуры процессора. На рисунке показано типовое устройство процессора.
Процессор работает с оперативной памятью, так как в ней хранятся данные, необходимые процессору для работы и в оперативную память процессор помещает результаты своих вычислений перед окончательным сохранением в долговременной памяти. Взаимодействие процессора с памятью происходит посредством шин адреса, данных и управления.
На шину адреса помещается адрес ячейки памяти с данными, необходимыми процессору.
На шину данных помещаются данные из процессора, которые необходимо записать в память или данные из памяти, которые необходимы процессору для вычислений.
На шину управления поступают сигналы из процессора, которые указывают памяти или другим устройствам какое устройство процессор выбрал и какую операцию будет производить: чтение или запись памяти или других устройств.
Работа процессора происходит по такому алгоритму. Программный счётчик выдаёт адрес команды на шину адреса. Память помещает команду, находящуюся по этому адресу на шину данных. Процессор вводит команду в свой регистр команды. Там команда дешифруется, определяется код операции, определяется длина команды в байтах. Программный счётчик адресует следующую команду, находящуюся по адресу на длину команды от предыдущей. Сама команда после её обработки регистром команды, выполняется остальными устройствами процессора, назначение которых указано выше. Когда выполнение команды завершается содержимое программного счётчика помещается на шину адреса и цикл повторяется.
Все команды процессор выполняет последовательно, команда за командой. Однако, часто бывает так, что процессор встречает команду перехода. Это значит, что по каким‐то причинам процессор должен прервать выполнение последовательности команд и «перескочить» на другую последовательность. Регистры слова состояния процессора и указатель стека участвуют в таких операциях, указывая состояние процессора и запоминая последнее состояние процессора соответственно. Такими причинами могут оказаться логический выбор дальнейшего выполнения программы из‐за каких‐нибудь условий.
Таким образом, вкратце было рассмотрено устройство архитектура работа процессора. В дальнейшем к этому вопросу будем возвращаться постоянно.