Упрощенная внутренняя структура процессора

Упрощенно структуру микропроцессора можно представить в следующем виде (Рис. …).

 

Рисунок Упрощенная структура процессора

 

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

В регистре, счетчика команд, хранится адрес команды, которую необходимо выполнить. Устройство управления читает этот регистр и выдает на шину адреса адрес необходимый для чтения кода команды из памяти. Команда сохраняется в специальном регистре команды, где она хранится все время ее выполнения.

Из регистра команды ее код поступает в дешифратор команды и затем в устройство управления, которое в зависимости от поступившей команды либо сразу переходит к ее выполнению, либо считывает данные или адрес, расположенные сразу после кода команды и необходимые для ее выполнения.

Непосредственное выполнение инструкции производится арифметико-логическим устройством (АЛУ). На входы АЛУ могут подаваться обрабатываемые данные из памяти или из внутренних регистров. Результат выполнения инструкции сохраняется в одном из регистров или в памяти. Кроме этого выполнение инструкции всегда изменяет регистр счетчика команд и (не для всех инструкций) регистр флагов, каждый бит которого содержит информацию о результате выполнения последней команды.

Основные функции показанных узлов следующие.

Арифметико-логическое устройство (АЛУ, англ. Arithmetic And Logic Unit, ALU)) предназначено для обработки информации в соответствии с полученной процессором командой. Примерами обработки могут служить логические операции (типа логического «И», «ИЛИ», «Исключающего ИЛИ» и т.д.) то есть побитные операции над операндами, а также арифметические операции (типа сложения, вычитания, умножения, деления и т.д.). Над какими кодами производится операция, куда помещается ее результат — определяется выполняемой командой. Если команда сводится всего лишь к пересылке данных без их обработки, то АЛУ не участвует в ее выполнении. АЛУ имеет свои собственные внутренние регистры. Разрядность регистров АЛУ называется внутренней разрядностью процессора, которая может не совпадать с внешней разрядностью.

В принципе АЛУ умеет только суммировать разряды. Все остальные арифметические действия сводятся к арифметической операции суммирования, логическим операциям сдвига при умножении и делении (Заметим, что сдвиг влево на 1 разряд соответствует умножению на два, а сдвиг вправо на один разряд - целочисленному делению на два.). Вычитание заменяется суммированием в дополнительном коде. Разберем, как работает АЛУ на примере инструкции суммирования. Порядок работы следующий: слагаемые размещаются во внутренних регистрах АЛУ. Старший разряд резервируется для знака числа и называется знаковым, все остальные будут называться числовыми. (Напоминаем, что для представления отрицательного числа используется дополнительный код) Слагаемые складываются по правилам сложения двоичных чисел. При этом знаковые разряды участвуют в вычислениях наряду с числовыми.

Приведем несколько примеров. Для упрощения будем рассматривать АЛУ с 8 разрядными регистрами.