Центральный процессор
Центральный процессор является главным системообразующим элементом структуры микроконтроллера. В его задачи входит: - выполнение операций над данными, согласно коду операции, который представлен в команде; - организация последовательного процесса выполнения команд представленных программным алгоритмом; - формирование сигналов управления и взаимной синхронизации с другими элементами структуры. В соответствии с задачами ЦП состоит из трех частей: - АЛУ – арифметико-логическое устройство; - ПС – программный счетчик; - УУС – устройство управления и синхронизации.
2.1.1 Арифметико-логическое устройство
Арифметико-логическое устройство представляет собой параллельное восьмиразрядное устройство, обеспечивающее выполнение арифметических и логических операций, а также операции логического сдвига, обнуления, установки и т. п. [3]. АЛУ (рис.7) состоит из аккумулятора А, регистра аккумулятора, дополнительного регистра (регистра В), регистра временного хранения, сумматора, ПЗУ констант, регистра состояния программы PSW (P rogram S tatus W ord). Рис. 7. Структурная схема АЛУ
Регистр аккумулятора и регистр временного хранения - восьмиразрядные регистры, предназначенные для приема и хранения операндов на время выполнения операций над ними. Программно не доступны. ПЗУ констант обеспечивает выработку корректирующего кода при двоично-десятичном представлении данных, кода маски при битовых операциях и кода констант. Параллельный восьмиразрядный сумматор представляет собой схему комбинационного типа с последовательным переносом, предназначенную для выполнения арифметических операций сложения, вычитания и логических операций сложения, умножения, неравнозначности и тождественности. Регистр В - восьмиразрядный регистр, используемый во время операций умножения и деления. Для других инструкций он может рассматриваться как дополнительный сверхоперативный регистр. Аккумулятор А представляет собой восьмиразрядный регистр, предназначенный для приема и хранения результата, полученного при выполнении арифметико-логических операций или операций пересылки. 8-битное АЛУ может выполнять арифметические операции сложения, вычитания, умножения и деления; логические операции И, ИЛИ, исключающее ИЛИ, а также операции циклического сдвига, сброса, инвертирования и т.п. В АЛУ реализуется механизм каскадного выполнения простейших операций для реализации сложных команд. Так, например, при выполнении одной из команд условной передачи управления по результату сравнения в АЛУ трижды инкрементируется СК, дважды производится чтение из РПД, выполняется арифметическое сравнение двух переменных, формируется 16-битный адрес перехода и принимается решение о том, делать или не делать переход по программе. Все перечисленные операции выполняются в АЛУ всего лишь за 2 мкс. Важной особенностью АЛУ является его способность оперировать не только байтами, но и битами. Отдельные программно-доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях. Эта способность АЛУ, оперировать битами, столь важна, что во многих описаниях МК51 говорится о наличии в нем "булевского процессора". Для управления объектами часто применяются алгоритмы, содержащие операции над входными и выходными булевскими переменными (истина/ложь), реализация которых средствами обычных микропроцессоров сопряжена с определенными трудностями. Таким образом, АЛУ может оперировать четырьмя типами информационных объектов: - булевскими (1 бит); - цифровыми (4 бита); - байтными (8 бит); - адресными (16 бит). В АЛУ выполняется 51 различная операция пересылки или преобразования этих данных. Так как используется 11 режимов адресации (7 для данных и 4 для адресов), то путем комбинирования "операция/ режим адресации" базовое число команд 111 расширяется до 255 из 256 возможных при однобайтном коде операции. Регистр состояния программы PSW предназначен для хранения информации о состоянии АЛУ при выполнении программы. Обозначение разрядов регистра PSW и назначение разрядов приведены соответственно в табл. 3.
Таблица 3
Флаг переноса CY (Carry) может устанавливаться и сбрасываться как аппаратными, так и программными средствами. Флаг CY может быть программно прочитан. Аппаратными средствами флаг CY устанавливается, если в старшем бите результата возникает перенос или заем. При выполнении операций умножения и деления флаг CY сбрасывается. Кроме того, флаг CY выполняет функции "булева аккумулятора" в командах, работающих с битами. Флаг дополнительного переноса АС программно доступен по записи ("0" и "I") и чтению. Флаги F0, RS1, RS0 программно доступны по записи ("0" и "1") и чтению. Флаг переполнения OV программно доступен по записи ("0" и "1") и чтению. Устанавливается аппаратно, если результат операции сложения/вычитания не укладывается в семи битах и старший (восьмой) бит результата не может интерпретироваться как знаковый. При выполнении операции деления флаг OV аппаратно сбрасывается, а в случае деления на нуль устанавливается. При умножении флаг OV аппаратно устанавливается, если результат больше 255. Флаг Р является дополнением содержимого аккумулятора до четности. В 9- разрядном слове, состоящем из 8 разрядов аккумулятора и бита Р, всегда содержится четное число единичных битов. В случае, если в аккумуляторе все разряды установлены в "0", флаг Р примет нулевое значение. Программно доступен (!) только для чтения.
|