Операционное устройство процессора

В целом ОУ выполняет операции, определяемые командами, и формирует эффективные адреса.

УУ вырабатывает управляющие сигналы, поступающие во все блоки вычислительной машины. В составе УУ можно выделить следующие функциональные блоки:

1) регистр команд – запоминающий регистр, в котором хранится код команды: код операции и адреса операндов (расположен в интерфейсной части процессора);

2) дешифратор операций – логический блок, который в соответствии с поступающим из регистра команд кодом операции выбирает один из множества имеющихся у него выходов;

3) постоянное запоминающее устройство (ПЗУ) микропрограмм хранит управляющие импульсы для выполнения в блоках вычислительной машины процедур обработки информации; импульс по выбранному дешифратором операций проводу считывает из ПЗУ микропрограмм необходимую последовательность управляющих сигналов;

4) узел формирования адреса (располагается в ШИ) – устройство для вычисления полного адреса ячейки памяти (регистра) по реквизитам, поступающим из микропроцессорной памяти или регистра команд;

5) кодовые шины данных, адреса и инструкций – часть внутренней интерфейсной шины процессора.

Таким образом, УУ формирует управляющие сигналы для выполнения процессором своих функций, рассмотренных в предыдущем вопросе.

АЛУ предназначено для выполнения арифметических и логических операций преобразования информации. Функционально в простейшем варианте АЛУ состоит из следующих компонент:

1) сумматор выполняет процедуру сложения двоичных кодов, имеет разрядность двойного машинного слова (32 бита);

2) регистры – быстродействующие ячейки памяти различной длины: регистр 1 имеет разрядность 32 бита, регистр 2 - 16 бит; при сложении в регистр 1 помещается первое слагаемое, а потом результат, в регистр 2 – второе слагаемое;

3) схема управления принимает по кодовым шинам инструкций управляющие сигналы от УУ и преобразует в сигналы для управления работой регистров и сумматора.

АЛУ выполняет арифметические операции только над двоичными числами с фиксированной точкой. Для обработки чисел с плавающей точкой привлекается математический сопроцессор или специально составленные программы.

Более подробные сведения об устройстве и функционировании УУ и АЛУ можно найти в /2, 4, 5/.

Регистры ОУ – часть микропроцессорной памяти. Рассмотрим регистры на примере базового процессора Intel 8086, который содержит всего 14 двухбайтовых регистра. В современных процессорах их гораздо больше и большей разрядности. Однако в качестве базовой модели, в частности для языка Ассемблера, используется 14-регистровая память процессора.

В состав ОУ входят следующие регистры:

1) регистры общего назначения (РОН) или универсальные: AX - (AH, AL), BX - (BH, BL), CX - (CH, CL), DX - (DH, DL) могут использоваться для временного хранения любых данных, при этом можно работать с каждым регистром целиком, а можно отдельно, с каждой его половиной; но каждый из РОН может использоваться и как специальный при выполнении некоторых конкретных команд;

2) регистры смещений: SP, BP, SI, DI являются неделимыми и предназначены для хранения относительных адресов ячеек памяти внутри сегментов (смещений относительно начала сегментов);

2.1) SP (Stack Pointer) – смещение вершины стека;

2.2) BP (Base Pointer) – смещение начального адреса поля памяти, непосредственно отведённого под стек;

2.3) SI (Source Index), DI (Destination Index) предназначены для хранения адресов индекса источника и приёмника данных при операциях над строками и им подобных.

Слово состояния процессора (PSW – Processor State Word) или регистр флагов – имеет размер 2 байта и содержит одноразрядные признаки или флаги. Всего в регистре 9 флагов: 6 из них условные или статусные, отражают результаты операций, выполненных ОУ, 3 других – управляющие, определяют режим исполнения программы.

1) Статусные флаги.

1.1) CF (Carry Flag) – флаг переноса. Устанавливается в 1, если при выполнении арифметических и некоторых операций сдвига возникает «перенос» из старшего разряда.

1.2) PF (Parity Flag) – флаг чётности. Проверяет младшие 8 битов результатов над данными. Чётное число единиц приводит к установке этого флага в 1, нечётное – в 0.

1.3) AF (Auxiliary Carry Flag) – флаг логического переноса в двоично-десятичной арифметике. Устанавливается в 1, если арифметическая операция приводит к переносу или займу четвёртого справа бита однобайтового операнда. Используется при арифметических операциях над двоично-десятичными кодами и кодами ASCII.

1.4) ZF (Zero Flag) – флаг нуля. Устанавливается в 1, если результат операции равен 0, в противном случае ZF обнуляется.

1.5) SF (Sign Flag) – флаг знака. Устанавливается в 1, если результат арифметической операции является отрицательным, в 0, если результат положительный.

1.6) OF (Overflow Flag) – флаг переполнения. Устанавливается в единицу при арифметическом переполнении, когда результат выходит за пределы разрядной сетки.

2) Управляющие флаги.

2.1) TF (Trap Flag) – флаг трассировки. Единичное состояние этого флага переводит процессор в режим пошагового выполнения программы.

2.2) IF (Interrupt Flag) – флаг прерываний. При нулевом состоянии этого флага прерывания запрещены, при единичном – разрешены (о механизме прерываний речь пойдёт в следующей лекции).

2.3) DF (Direction Flag) – флаг направления. Используется в строковых операциях для задания направления обработки данных; при единичном состояния строки обрабатываются «справа налево», при нулевом – «слева направо».

Расположение флагов в регистре PSW показано на рисунке 4.2. Свободные биты отведены для использования в будущем.

                               
        OF DF IF TF SF ZF   AF   PF   CF

Рисунок 4.2 – Схема расположения флагов в регистре PSW


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: