Устройство управления арифметико логическое устройство микропроцессорная память
Центральный процессор (ЦП) - функционально-законченное программно-управляемое устройство, выполненное на одной или нескольких СБИС, предназначенное для выполнения арифметической и логической обработки информации программного управления работой устройств. В современных персональных компьютерах разных фирм применяются процессоры двух основных архитектур.
Устройство управления (УУ) ― важнейшая часть ВМ, организующая автоматическое выполнение программ (путем реализации функций управления) и обеспечивающая функционирование ВМ как единой системы.
Арифметико-логическое устройство (АЛУ) предназначено для выполнения арифметических и логических операций преобразования информации. Функционально АЛУ состоит из нескольких специальных регистров, полноразрядного сумматора и схем местного управления.
Интерфейсная часть МП предназначена для связи и согласования МП системной шиной ПК, а также для приема, предварительного анализа команд выполняемой программы и формирования полных адресов операндов и команд. Интерфейсная часть включает в свой состав адресные регистры МПП, узел формирования адреса, блок регистров команд, являющийся буфером команд в МП, внутреннюю интерфейсную шину МП и схемы управления шиной и портами ввода-вывода.
Рис. Архитектура процессора
Основные характеристики процессора. Характеристики режима процессора 8086
Процессоры можно классифицировать по двум основным параметрам: разрядности и быстродействию. Быстродействие процессора -- довольно простой параметр. Оно измеряется в мегагерцах (МГц); 1 МГц равен миллиону тактов в секунду. Чем выше быстродействие, тем лучше (тем быстрее процессор). Разрядность процессора -- параметр более сложный. В процессор входит три важных устройства, основной характеристикой которых является разрядность:
· шина ввода и вывода данных;
· шина адреса памяти.
Основные характеристики процессора:
· Максимальная рабочая температура
· Поддержка различных технологий
Одна из характерных особенностей процессоров 8086 — принцип сегментирования памяти. То есть вся память представляется не в виде непрерывного пространства, а в виде нескольких кусков — сегментов заданного размера (по 64 Кбайта), положение которых в пространстве памяти можно программно изменять. Процессор 8086 имеет 14 регистров разрядностью по 16 бит.
Основные компоненты микропроцессора (Лекция)
1. Принципы построения схемного и микропрограммного устройств управления
2. Особенности реализации арифметико-логического устройства компьютера
3. Микропроцессорная память
1. Принципы построения схемного и микропрограммного устройств управления
Устройство управления предназначено для выработки управляющих сигналов, под воздействием которых происходит преобразование информации в арифметико-логическом устройстве, а также операции по записи и чтению информации в /из запоминающего устройства.
В общем случае устройство управления формирует управляющие сигналы для выполнения следующих основных процедур:
- выборки из регистра-счетчика микропроцессорной памяти адреса ячейки ОЗУ, где хранится очередная команда программы;
- выборки из ячеек ОЗУ кода очередной команды и приема считанной команды в регистр команд;
- расшифровки кода операции и признаков выбранной команды;
- считывания из соответствующих расшифрованному коду операции ячеек ПЗУ микропрограмм управляющих сигналов (импульсов), определяющих во всех блоках машины процедуры выполнения заданной операции, и пересылки управляющих сигналов в эти блоки;
- считывания из регистра команд и регистров микропроцессорной памяти отдельных составляющих адресов операндов (чисел), участвующих в вычислениях, и формирование полных адресов операндов;
- выборки операндов (по сформированным адресам) и выполнения заданной операции обработки этих операндов;
- записи результатов операции в память;
- формирования адреса следующей команды программы.
Устройства управления делятся на :
- УУ с жесткой или схемной логикой;
- УУ с программируемой логикой ( микропрограммные УУ).
В устройствах управления первого типа для каждой команды, задаваемой кодом операции, строится набор комбинационных схем, которые в нужных тактах вырабатывают необходимые управляющие сигналы.
В микропрограммных устройствах управления каждой команде ставится в соответствие совокупность хранимых в специальной памяти слов – микрокоманд. Каждая из микрокоманд содержит информацию о микрооперациях, подлежащих выполнению в данном такте, и указание, какое слово должно быть выбрано из памяти в следующем такте.
Схемное устройство управления
Устройство управления схемного типа (см. рисунок) состоит из :
- датчика сигналов, вырабатывающего последовательность импульсов, равномерно распределенную во времени по своим шинам ( n – общее количество управляющих сигналов, необходимых для выполнения любой операции; m – количество тактов, за которое выполняется самая длинная операция);
- блока управления операциями, осуществляющего выработку управляющих сигналов, то есть коммутацию сигналов, поступивших с датчика сигналов, в соответствующем такте на нужную управляющую шину;
- дешифратора кода операций, который дешифрует код операции команды, присутствующей в данный момент в регистре команд, и возбуждает одну шину, соответствующую данной операции; этот сигнал используется блоком управления операциями для выработки нужной последовательности управляющих сигналов.
Датчик сигналов обычно реализуется на основе счетчика с дешифратором или на сдвиговом регистре.
Рис. Функциональная схема схемного устройства управления
Микропрограммное устройство управления
Микропрограммное устройство управления представлено на рисунке.
Рис. Функциональная схема микропрограммного устройства управления
На рисунке представлены :
- регистр команд – запоминающий регистр, в котором хранится код команды: код выполняемой операции и адреса операндов, участвующих в операции; регистр команд расположен в интерфейсной части микропроцессора, в блоке регистров команд;
- дешифратор операций – логический блок, выбирающий в соответствии с поступающим из регистра команд кодом операции один из множества имеющихся у него выходов;
- постоянное запоминающее устройство микропрограмм хранит в своих ячейках управляющие сигналы (импульсы), необходимые для выполнения в блоках ПК процедур операций обработки информации; импульс по выбранному дешифратором операций в соответствии с кодом операции проводу считывает из ПЗУ микропрограмм необходимую последовательность управляющих сигналов;
- узел формирования адреса (находится в интерфейсной части МП) – устройство, вычисляющее полный адрес ячейки памяти (регистра) по реквизитам, поступающим из регистра команд и регистров МПП;
- шины данных, адреса и управления – часть внутренней интерфейсной шины микропроцессора.
3. Микропроцессорная память
Микропроцессорная память базового микропроцессора включает четырнадцать 2-байтовых запоминающих регистров. Все регистры можно разделить на четыре группы:
- универсальные регистры: AX , BX , CX , DX ;
- сегментные регистры: CS , DS , SS , ES ;
- регистры смещения: IP , SP , BP , SI , DI ;
- реги стр фл агов FL .
Каждый из универсальных регистров (или регистров общего назначения) может использоваться для временного хранения любых данных, при этом можно работать с каждым регистром целиком, а можно отдельно с каждой его половиной (регистры AH , BH , CH , DH – старшие байты, а регистры AL , BL , CL , DL – младшие байты соответствующих 2-байтовых регистров). Но каждый из универсальных регистров может использоваться и как специальный при выполнении некоторых конкретных команд программы. В частности:
- регистр AX – регистр-аккумулятор, через его порты осуществляется ввод-вывод данных в микропроцессор, а при выполнении операций умножения и деления AX используется для хранения первого числа, участвующего в операции (произведения, частного) после ее завершения;
- регистр BX часто используется для хранения адреса базы в сегменте данных и начального адреса поля памяти при работе с массивами;
- регистр CX – регистр-счетчик, используется как счетчик числа повторений при циклических операциях;
- регистр DX используется как расширение регистра-аккумулятора при работе с 32-разрядными числами и при выполнении операций умножения и деления, используется для хранения номера порта при операциях ввода-вывода и т.д.
Сегментные регистры используются для хранения начальных адресов полей памяти (сегментов), отведенных в программах для хранения:
- команд программы (сегмент кода – CS );
- данных (сегмент данных – DS) ;
- стековой области памяти (сегмент стека – SS );
- дополнительной области памяти данных при межсегментных пересылках (расширенный сегмент – ES ), поскольку размер сегмента в реальном режиме работы микропроцессора ограничен величиной 64 Кбайт.
Регистры смещений используются для хранения относительных адресов ячеек памяти внутри сегментов (смещений относительно начала сегментов):
- регистр IP ( Instruction Pointer ) хранит смещение адреса текущей команды программы;
- регистр SP ( Stack Pointer ) – смещение вершины стека (текущего адреса стека);
- регистр BP ( Base Pointer ) – смещение начального адреса поля памяти, непосредственно отведенного под стек;
- регистры SI , DI ( Source Index и Destination Index соответственно) предназначены для хранения адресов индекса источника и приемника данных при операциях над строками и им подобных.
Реги стр фл агов FL содержит условные одноразрядные признаки-маски или флаги, управляющие прохождением программы в ПК. Флаги работают независимо друг от друга и лишь для удобства они помещены в единый регистр. Всего в регистре содержится 9 флагов: 6 их них статусные, отражают результаты операций, выполненных в компьютере (их значения используются, например, при выполнении условной передачи управления – команд ветвления программы), а три других – управляющие, непосредственно определяют режим исполнения программы.
- CF ( Carry Flag ) – флаг переноса; содержит значение «переносов» (0 или 1) из старшего разряда при арифметических операциях и некоторых операциях сдвига и циклического сдвига;
- PF ( Parity Flag ) – флаг четности; проверяет младшие 8 битов результатов операций над данными; нечетное число единичных битов приводит к установке этого флага в 0, а четное – в 1;
- AF ( Auxiliary Carry Flag ) – флаг логического переноса при двоично-десятичной арифметике; вспомогательный флаг переноса устанавливается в 1, если арифметическая операция приводит к переносу или заему четвертого справа бита однобайтового операнда; этот флаг используется при арифметических операциях над двоично-десятичными кодами и кодами ASCII ;
- ZF ( Zero Flag ) – флаг нуля; устанавливается в 1, если результат операции равен нулю; если результат не равен нулю, то флаг обнуляется;
- SF ( Sign Flag ) – флаг знака; устанавливается в соответствии со знаком результата после арифметических операций: положительный результат устанавливает флаг в 0, отрицательный – в 1;
- OF ( Overflow Flag ) – флаг переполнения; устанавливается в 1 при арифметическом переполнении: если возник перенос в знаковый разряд при выполнении знаковых арифметических операций, если частное от деления слишком велико и переполняет регистр результата и т.д.
- TF ( Trap Flag ) – флаг системного прерывания (трассировки); единичное состояние этого флага переводит процессор в режим пошагового выполнения программы (режим трассировки);
- IF ( Interrupt Flag ) – флаг прерываний; при нулевом состоянии этого флага прерывания запрещены, при единичном – разрешены;
- DF ( Direction Flag ) – флаг направления; используется в строковых операциях для задания направления обработки данных; при нулевом состоянии флага команда увеличивает содержимое регистров SI и DI на 1, обуславливая обработку строки «слева направо», при единичном – «справа налево».
Понятия аппаратных средств ЭВМ, архитектуры аппаратных средств.
Раздел 1. Вычислительные приборы и устройства и представление информации в ЭВМ
История развития вычислительных устройств и приборов. Классификация ЭВМ: по принципу действия, по поколения, назначению, по размерам и функциональным возможностям
Системы счисления. Правила перевода чисел из одной системы счисления в другие. Арифметические действия в двоичной системе счисления. Естественная и нормальная форма. Форматы хранения чисел в ЭВМ. Машинные коды чисел: прямой, обратный, дополнительный.
Кодирование текстовой, графической, звуковой и видеоинформации. Сжатие информации
Раздел 2. Архитектура и принципы работы основных логических блоков системы
Базовые логические операции и схемы: конъюнкция, дизъюнкция, отрицание. Таблицы истинности. Схемные логические элементы: регистры, триггеры, сумматоры, мультиплексор, демультиплексор, шифратор, дешифратор, компаратор. Принципы работы, таблица истинности, логические выражения, схема.
Базовые представления об архитектуре ЭВМ. Принципы (архитектура) фон Неймана. Простейшие типы архитектур. Принцип открытой архитектуры. Магистрально-модульный принцип организации ЭВМ. Классификация параллельных компьютеров. Классификация архитектур вычислительных систем: классическая архитектура, классификация Флинна.
Организация работы и функционирование процессора. Микропроцессоры типа CISC, RISC, MISC. Характеристики и структура микропроцессора. Устройство управления, арифметико-логическое устройство, микропроцессорная память: назначение, упрощенные функциональные схемы.
Системы команд процессора. Регистры процессора: сущность, назначение, типы. Параллелизм вычислений. Конвейеризация вычислений. Суперскаляризация. Матричные и векторные процессоры. Динамическое исполнение. Технология Hyper-Threading. Режимы работы процессора: характеристики реального, защищенного и виртуального реального.
Основная память ЭВМ: ОЗУ и ПЗУ. Назначение, структура, основные характеристики. Организация оперативной памяти: основные принципы, байтовая адресация. Кэш-память: назначение, структура, основные характеристики.
Раздел 3. Периферийные устройства
Мониторы и видеоадаптеры. Проекционные аппараты. Системы обработки и воспроизведения аудиоинформации.
Принтеры. Сканеры. Клавиатура. Мышь.
Нестандартные периферийные устройства: мультимедиапроекторы, интерактивные доски, смарт браслеты, смарт часы.
Арифметико-логическое устройство (АЛУ) предназначено для выполнения арифметических и логических операций преобразования информации. Функционально в простейшем варианте АЛУ (рис. 8.2) состоит из двух регистров, сумматора и схем управления (местного устройства управления).
Сумматор — вычислительная схема, выполняющая процедуру сложения поступающих на ее вход двоичных кодов; сумматор имеет разрядность двойного машинного слова.
Регистры — быстродействующие ячейки памяти различной длины:
регистр 1 имеет разрядность двойного слова, а регистр 2 — разрядность слова.
При выполнении операций в регистр 1 помещается первое число, участвующее в операции, а по завершении операции — результат; в регистр 2 — второе число, участвующее в операции, (по завершении операции информация в нем не изменяется).
Регистр 1 может и принимать информацию с кодовых шин данных, и выдавать информацию на них; регистр 2 только получает информацию с этих шин.
Схемы управления принимают по кодовым шинам инструкций управляющие сигналы от устройства управления и преобразуют их в сигналы для управления работой регистров и сумматора АЛУ.
АЛУ выполняет арифметические операции «+», «-», «х» и «:» только над двоичной информацией с запятой, фиксированной после последнего разряда, то есть только над целыми двоичными числами. Выполнение операций над двоичными числами с плавающей запятой и над двоично-кодированными десятичными числами осуществляется с привлечением математического сопроцессора или по специально составленным программам.
1. Принципы построения схемного и микропрограммного устройств управления
Устройство управления предназначено для выработки управляющих сигналов, под воздействием которых происходит преобразование информации в арифметико-логическом устройстве, а также операции по записи и чтению информации в /из запоминающего устройства.
В общем случае устройство управления формирует управляющие сигналы для выполнения следующих основных процедур:
- выборки из регистра-счетчика микропроцессорной памяти адреса ячейки ОЗУ, где хранится очередная команда программы;
- выборки из ячеек ОЗУ кода очередной команды и приема считанной команды в регистр команд;
- расшифровки кода операции и признаков выбранной команды;
- считывания из соответствующих расшифрованному коду операции ячеек ПЗУ микропрограмм управляющих сигналов (импульсов), определяющих во всех блоках машины процедуры выполнения заданной операции, и пересылки управляющих сигналов в эти блоки;
- считывания из регистра команд и регистров микропроцессорной памяти отдельных составляющих адресов операндов (чисел), участвующих в вычислениях, и формирование полных адресов операндов;
- выборки операндов (по сформированным адресам) и выполнения заданной операции обработки этих операндов;
- записи результатов операции в память;
- формирования адреса следующей команды программы.
Устройства управления делятся на :
- УУ с жесткой или схемной логикой;
- УУ с программируемой логикой ( микропрограммные УУ).
В устройствах управления первого типа для каждой команды, задаваемой кодом операции, строится набор комбинационных схем, которые в нужных тактах вырабатывают необходимые управляющие сигналы.
В микропрограммных устройствах управления каждой команде ставится в соответствие совокупность хранимых в специальной памяти слов – микрокоманд. Каждая из микрокоманд содержит информацию о микрооперациях, подлежащих выполнению в данном такте, и указание, какое слово должно быть выбрано из памяти в следующем такте.
Схемное устройство управления
Устройство управления схемного типа (см. рисунок) состоит из :
- датчика сигналов, вырабатывающего последовательность импульсов, равномерно распределенную во времени по своим шинам ( n – общее количество управляющих сигналов, необходимых для выполнения любой операции; m – количество тактов, за которое выполняется самая длинная операция);
- блока управления операциями, осуществляющего выработку управляющих сигналов, то есть коммутацию сигналов, поступивших с датчика сигналов, в соответствующем такте на нужную управляющую шину;
- дешифратора кода операций, который дешифрует код операции команды, присутствующей в данный момент в регистре команд, и возбуждает одну шину, соответствующую данной операции; этот сигнал используется блоком управления операциями для выработки нужной последовательности управляющих сигналов.
Датчик сигналов обычно реализуется на основе счетчика с дешифратором или на сдвиговом регистре.
Рис. Функциональная схема схемного устройства управления
Микропрограммное устройство управления
Микропрограммное устройство управления представлено на рисунке.
Рис. Функциональная схема микропрограммного устройства управления
На рисунке представлены :
- регистр команд – запоминающий регистр, в котором хранится код команды: код выполняемой операции и адреса операндов, участвующих в операции; регистр команд расположен в интерфейсной части микропроцессора, в блоке регистров команд;
- дешифратор операций – логический блок, выбирающий в соответствии с поступающим из регистра команд кодом операции один из множества имеющихся у него выходов;
- постоянное запоминающее устройство микропрограмм хранит в своих ячейках управляющие сигналы (импульсы), необходимые для выполнения в блоках ПК процедур операций обработки информации; импульс по выбранному дешифратором операций в соответствии с кодом операции проводу считывает из ПЗУ микропрограмм необходимую последовательность управляющих сигналов;
- узел формирования адреса (находится в интерфейсной части МП) – устройство, вычисляющее полный адрес ячейки памяти (регистра) по реквизитам, поступающим из регистра команд и регистров МПП;
- шины данных, адреса и управления – часть внутренней интерфейсной шины микропроцессора.
5 Устройство управления.
Устройство управления управляет работой компьютера. Оно автоматически, последовательно по одной, выбирает команды из памяти, декодирует каждую из них и генерирует необходимые для ее выполнения сигналы. Для того чтобы получить команду из памяти, устройство управления прежде всего должно знать ее адрес. Обычно команды выбираются из последовательных ячеек памяти, и их адреса указываются программным счетчиком (ПС), находящимся в устройстве управления.
В момент включения питания автоматически формируется сигнал СБРОС, которым обнуляется программный счетчик и это обеспечивает выборку команды из нулевой ячейки памяти. После извлечения первой команды к счетчику добавляется единица, и он указывает уже на следующую
ячейку с командой и т.д. При необходимости можно счетчику в нужный момент по отдельному каналу навязать адрес, который будет указывать не на следующую ячейку, а какую-то иную. Благодаря этому можно организовать ветвление в программе.
Далее, чтобы иметь возможность декодировать и выполнить текущую команду, ее нужно где-то запомнить. Этой цели в устройстве управления служит регистр команды. Для того чтобы быть правильно проинтерпретированной устройством управления, команда должна иметь определенную структуру, т.е. содержать определенные логические части, называемые полями, каждая из которых несет определенную информацию. Взаимное расположение полей в команде с указанием длин полей в битах называют форматом команды. У микропроцессоров разных типов форматы команд различны. Однако есть информация, которая должна присутствовать в команде в любом случае. Наиболее важное значение имеет код операции (КОП) и в некоторых командах адрес. Код операции – это совокупность двоичных цифр, которые однозначно определяют операцию, выполняемую в процессе интерпретации команды. Адресная часть команды (если она присутствует) указывает на ячейки (например в памяти), к которым нужно обратиться, выполняя команду. Например, если выполняется операция сложения, адресная часть команды может указывать на ячейку, где находится второе слагаемое. Но адресный код не обязателен – в некоторых командах он может и отсутствовать. Структура команд первых процессоров была более громоздкой (рис. 1.3). В команде указывались адреса обоих операндов, адрес, куда записывался
результат и адрес следующей команды. Для извлечения такой команды приходилось несколько раз обращаться к памяти, что естественно приводило к значительному снижению быстродействия. За счет введения программного счетчика избавились от части, в которой указывался адрес следующей
команды. Так как один из операндов, как правило, после выполнения некоторого действия не нужен, то стали записывать результат на его место, что позволило исключить еще одно поле. С введением аккумулятора в АЛУ приняли, что один из операндов находится в нем, и отпала необходимость указывать адрес этого операнда. Таким образом, в процессе эволюции компьютеров сократили длины команд и за счет этого увеличили их быстродействие.
Важно различать понятия «адрес ячейки памяти» и «содержимое ячейки памяти». В командах определенного формата существует адресная часть. Это числовой указатель ячейки, связанной с операндом. Однако команда сама находится в памяти и, следовательно, имеет связанный с ней адрес. Как правило, этот адрес не совпадает с адресной частью в самой команде.
Следующая функция устройства управления – это синхронизация работы отдельных блоков компьютера. Она осуществляется с помощью генератора тактовых импульсов (ГТИ), или тактового генератора. Обработка команды занимает несколько периодов тактового генератора. Вообще говоря, выполнение команды можно разделить на три фазы (машинных цикла): извлечение кода операции; первичная дешифрация кода команды для определения длины ее адресной части и извлечение из памяти адресной части команды; вторичная дешифрация для определения операции и выполнение команды.
Выполнение каждого из названных циклов требует нескольких периодов тактового генератора (машинных тактов) (рис. 1.4). Совокупное время, требуемое для выборки, декодирования и выполнения команды, образует командный цикл, или цикл выполнения команды.
Микропроцессорная память
Микропроцессорная память (МПП) базового МП 8088 включает в себя 14 двухбайтовых запоминающих регистров. У МП 80286 и выше имеются дополнительные регистры, например, у МП типа VLIW есть 256 регистров, из которых 128 — регистры общего назначения. У МП 80386 и выше некоторые регистры, в том числе и регистры общего назначения, — четырехбайтовые (у МП Pentium есть и восьмибайтовые регистры). Но в качестве базовой модели, в частности для языка программирования Assembler и отладчика программ Debug, используется 14-регистровая система МПП.
Все регистры можно разделить на четыре группы (рис. 8.3):
универсальные регистры: АХ, ВХ, СХ, БХ;
сегментные регистры: СБ, ОБ, ББ, ЕБ;
регистры смещения: IР, SP, ВР, SI, DI;
регистр флагов: FL.
Рис. 8.3. Регистры МПП
Универсальные регистры
Регистры АХ, ВХ, СХ и DX являются универсальными (их часто называют регистрами общего назначения — РОН); каждый из них может использоваться для временного хранения любых данных, при этом позволено работать с каждым регистром целиком, а можно отдельно и с каждой его половиной (регистры АН, ВН, СН, DH — старшие (High) байты, а регистры AL, BL, CL, DL — младшие (Low) байты соответствующих двухбайтовых регистров). Но каждый из универсальных регистров может использоваться и как специальный при выполнении некоторых конкретных команд программы. В частности:
регистр АХ — регистр-аккумулятор, через его порты осуществляется ввод-вывод данных в МП, а при выполнении операций умножения и деления АХ используется для хранения первого числа, участвующего в операции (множимого, делимого), и результата операции (произведения, частного) после ее завершения;
регистр ВХ часто используется для хранения адреса базы в сегменте данных и начального адреса поля памяти при работе с массивами;
регистр СХ — регистр-счетчик, используется как счетчик числа повторений при циклических операциях;
регистр DX используется как расширение регистра-аккумулятора при работе с 32-разрядными числами и при выполнении операций умножения и деления, используется для хранения номера порта при операциях ввода-вывода и т. д.
Сегментные регистры
Регистры сегментной адресации CS, DS, SS, ES используются для хранения начальных адресов полей памяти (сегментов), отведенных в программах для хранения 1 :
команд программы (сегмент кода — CS);
данных (сегмент данных — DS);
стековой области памяти (сегмент стека — SS);
дополнительной области памяти данных при межсегментных пересылках (расширенный сегмент — ES), поскольку размер сегмента в реальном режиме работы МП ограничен величиной 64 Кбайт.
Регистры смещений
Регистры смещений (внутрисегментной адресации) IP, SP, BP, SI, DI предназначены для хранения относительных адресов ячеек памяти внутри сегментов (смещений относительно начала сегментов):
регистр IP (Instruction Pointer) — смещение адреса текущей команды программы;
регистр SP (Stack Pointer) — смещение вершины стека (текущего адреса стека);
регистр BP (Base Pointer) — смещение начального адреса поля памяти, непосредственно отведенного под стек;
регистры SI, DI (Source Index и Destination Index соответственно) предназначены для хранения адресов индекса источника и приемника данных при операциях над строками и им подобных.
Регистр флагов
Регистр флагов F содержит условные одноразрядные признаки-маски, или флаги, управляющие прохождением программы в ПК; флаги работают независимо друг от друга, и лишь для удобства они помещены в единый регистр. Всего в регистре содержится 9 флагов: 6 из них статусные, они отражают результаты операций, выполненных в компьютере (их значения используются, например, при выполнении команд условной передачи управления — команд ветвления программы), а 3 других — управляющие, непосредственно определяют режим исполнения программы.
Статусные флаги:
CF (Carry Flag) — флаг переноса. Содержит значение «переносов» (0 или 1) из старшего разряда при арифметических операциях и некоторых операциях сдвига и циклического сдвига;
PF (Parity Flag) — флаг четности. Проверяет младшие восемь битов результатов операций над данными. Нечетное число единичных битов приводит к установке этого флага в 0, а четное — в 1;
AF (Auxiliary Carry Flag) — флаг логического переноса в двоично-десятичной арифметике. Вспомогательный флаг переноса устанавливается в 1, если арифметическая операция приводит к переносу или заему четвертого справа бита однобайтового операнда. Этот флаг используется при арифметических операциях над двоично-десятичными кодами и кодами ASCII;
ZF (Zero Flag) — флаг нуля. Устанавливается в 1, если результат операции равен нулю; если результат не равен нулю, ZF обнуляется;
SF (Sign Flag) — флаг знака. Устанавливается в соответствии со знаком результата после арифметических операций: положительный результат устанавливает флаг в 0, отрицательный — в 1;
OF (Overflow Flag) — флаг переполнения. Устанавливается в 1 при арифметическом переполнении: если возник перенос в знаковый разряд при выполнении знаковых арифметических операций, если частное от деления слишком велико и переполняет регистр результата и т. д.
Управляющие флаги:
TF (Trap Flag) — флаг системного прерывания (трассировки). Единичное состояние этого флага переводит процессор в режим, пошагового выполнения программы (режим трассировки);
IF (Interrupt Flag) — флаг прерываний. При нулевом состоянии этого флага прерывания запрещены, при единичном — разрешены;
DF (Direction Flag) — флаг направления. Используется в строковых операциях для задания направления обработки данных. При нулевом состоянии флага команда увеличивает содержимое регистров SI и DI на единицу, обусловливая обработку строки «слева направо»; при единичном — «справа налево».
Обработка данных осуществляется главным образом в арифметико-логическом устройстве. Эта обработка включает как арифметические, так и логические операции. Встроенные операции чрезвычайно элементарны. Полный перечень возможных встроенных операций для любого процессора задается его системой команд. Более сложные математические действия должны выполняться с помощью программ, пользующихся встроенными операциями.
В качестве модели для пояснения принципа работы АЛУ рассмотрим схему, показанную на рис. 1.2.
На вход АЛУ поступают данные А и В, над которыми необходимо произвести заданное действие. Над этими данными одновременно производятся все возможные (перечисленные в системе команд) логические и арифметические операции, результаты которых поступают на вход коммутатора (К). На коммутатор также подается код операции (КОП) команды, выполняющейся в данный момент, который указывает, какой из результатов должен быть передан на выход АЛУ. Обычно в состав АЛУ входит ряд регистров, предназначенных для хранения операндов на время их обработки.
Главный регистр в АЛУ называется аккумулятором. В нем, как правило, находится один из операндов перед выполнением операции, и в него же помещается ее результат.
В состав АЛУ входит также регистр флагов. Флаги или флажки – это просто биты, содержащие информацию, характеризующую состояние микропроцессора, которое важно для выбора дальнейшего пути вычислений. Например, может существовать флажок, указывающий на нулевой результат операции. Программист может воспользоваться проверкой этого флажка для принятия решения: если некоторая операция дала нулевой результат, то будет выполнена одна последовательность команд, в противном случае — другая. Наиболее часто используются три флага: С – переполнения, Z – нулевого результата, DC – десятичного переноса.
Флажковые биты, характеризующие результаты операций или каких-либо проверок, часто размещаются вместе с другой важной информацией о состоянии машины в специальном регистре, называемом словом состояния программы (PSW – program status word).
2. Особенности реализации арифметико-логического устройства компьютера
Арифметико-логическое устройство предназначено для выполнения арифметических и логических операций преобразования информации. Функционально АЛУ (см. рисунок) обычно состоит из двух регистров, сумматора и схем управления (местного устройства управления).
Рис. Функциональная схема АЛУ
Сумматор – вычислительная схема, выполняющая процедуру сложения поступающих на ее вход двоичных кодов; имеет разрядность двойного машинного слова.
Регистры – быстродействующие ячейки памяти различной длины: регистр 1 имеет разрядность двойного слова, а регистр 2 – разрядность одного слова; при выполнении операций в регистр 1 помещается первое число, участвующее в операции, а по завершении операции – результат; в регистр 2 – второе число, участвующее в операции (по завершении операции информация в нем не изменяется); регистр 1 может и принимать информацию с кодовых шин данных, и выдавать информацию на них; регистр 2 только получает информацию с этих шин.
Схемы управления принимают по кодовым шинам управления управляющие сигналы от устройства управления и преобразуют их в сигналы для управления работой регистров и сумматора АЛУ.
Арифметико-логическое устройство выполняет арифметические операции только над двоичной информацией с точкой, фиксированной после последнего разряда, т.е. только над целыми двоичными числами. Выполнение операций над двоичными числами с плавающей точкой и над двоично-десятичными числами осуществляется с привлечением математического сопроцессора или по специально составленным программам.
Рассмотрим в качестве примера выполнение команды умножения. Пусть перемножаются числа 1101 и 1011. Множимое находится в регистре 1, имеющем удвоенную по отношению к регистру 2 разрядность; множитель находится в регистре 2. операция умножения требует для своего выполнения нескольких тактов. В каждом такте число из регистра 1 проходит в сумматор (имеющий также удвоенную разрядность) только в том случае, если в младшем разряде регистра 2 находится 1. В данном примере в первом такте число 1101 пройдет в сумматор, и в этом же первом такте число в регистре 1 сдвигается на один разряд влево, а число в регистре 2 на один разряд вправо. В конце татка после сдвигов в регистре 1 будет находиться число 11010, а в регистре 2 – число 101. Во втором такте число из регистра 1 пройдет в сумматор, так как младший разряд в регистре 2 равен 1; в конце такта числа в регистрах опять будут сдвинуты влево и вправо, так что в регистре 1 окажется число 110100, а в регистре 2 – число 10. В третьем такте число из регистра 1 не пройдет в сумматор, так как младший разряд в регистре 2 равен 0; в конце такта числа в регистрах будут сдвинуты влево и вправо, так что в регистре 1 окажется число 1101000, а в регистре 2 – число 1. В четвертом такте число из регистра 1 пройдет в сумматор, так как младший разряд в регистре 2 равен 1; в конце такта числа в регистрах будут сдвинуты влево и вправо, так что в регистре 1 окажется число 11010000, а в регистре 2 – число 0. Так как множитель в регистре 2 стал равным нулю, операция умножения заканчивается. В результате в сумматор последовательно поступят и будут сложены числа: 1101, 11010, 1101000; их сумма 10001111 и будет равна произведению чисел 1101 ´ 1011.
Читайте также: