Входящее в микропроцессор устройство управления (УУ) выполняет две основные функции: управление выполнением операций и выборку команд программы в необходимой последовательности, их дешифрацию и обработку составляющих их частей. В применяющихся в настоящее время МП используются два типа устройств управления выполнением операций.
В первом типе устройств управления процессом обработки информации все п управляющих входов АЛУ объединяются в n-разрядную шину, на которую для выполнения того или иного действия над данными на каждом шаге программы подается n-разрядная микрокоманда. Единичное или нулевое значение i-го разряда микрокоманды обеспечивает соответственно выработку или отсутствие i-го управляющего сигнала. Этими устройствами организации управления может быть реализован любой алгоритм выполнения программы.
Рассмотренный способ управления называется микропрограммным, структурная схема его приведена на рис. 5.1, а.
Рис. 5.1 Микропрограммная (а) и жесткая (б) схемы организации управления
процессом обработки информации
В состав устройства управления выполнением операций (УУВО) входят управляющее запоминающее устройство (ЗУ), дешифратор микрокоманд и схема управления их выполнением. В управляющем ЗУ для всех видов команд хранится набор составляющих их микрокоманд (МК), называемый микропрограммой. Последовательная выборка микрокоманд из управляющего ЗУ и их выполнение обеспечивает обработку информации, соответствующую коду команды. Сначала команда подается на вход управляющего ЗУ. Происходит выборка первой МК микропрограммы, относящейся к этой команде, которая поступает на дешифратор МК и схему управления ее исполнением. Всякая микрокоманда состоит из двух частей: операционной, которая определяет вид действий, и адресной, которая обеспечивает формирование адресной части следующей МК.
Дешифратор расшифровывает код операционной части, вырабатывает управляющие сигналы, которые подаются на обрабатывающую часть МП. Схема управления выполнением МК по коду адресной части МК и признакам условий, которые вырабатываются обрабатывающей частью микропроцессора, формирует адрес следующей МК, подаваемый на управляющее ЗУ. После выполнения всех микрокоманд, образующих команду, вырабатывается сигнал выборки следующей команды.
Микропрограммный способ управления позволяет легко вносить изменения в систему команд МП: для введения новой команды достаточно записать в ЗУ микропрограмму ее исполнения. Недостатком микропрограммного способа управления является необходимость обращения к управляющему ЗУ в каждом такте выполнения микропрограммы, что ограничивает скорость работы МП быстродействием управляющего ЗУ.
Во втором типе устройства управления процессом обработки информации (рис. 5.1, б) управляющий блок расшифровывает поступившую команду и в соответствии с ее кодом вырабатывает управляющие сигналы в необходимой последовательности. Управляющий блок построен таким образом, что расшифровке поддаются только те команды, которые входят в систему команд данного МП. Любая другая команда не будет расшифрована, а, следовательно, и исполнена. Такой способ организации управления получил название схемного, или жесткого, управления. Микропроцессоры с такой организацией управления носят название микропроцессоров с фиксированной системой команд.
В отличие от микропрограммного управления дешифратор команд и схема управления их выполнением не только расшифровывают код команды, но и вырабатывают нужную последовательность управляющих сигналов в течение нескольких тактов работы АЛУ, необходимых для выполнения команды. Обращение к следующей команде происходит после выполнения предыдущей по адресу, определяемому признаками условий, вырабатываемыми АЛУ. Жесткость - невозможность введения новой команды без существенного изменения схемы МП и сложность структуры этого типа управления является основным его недостатком, а высокое быстродействие - главным преимуществом.
Как и в обычных ЭВМ, команды, составляющие программу, размещаются в определенном порядке во внешнем по отношению к микропроцессору запоминающем устройстве команд (ЗУК). Микропроцессор должен обеспечить выборку команд в нужной последовательности, их дешифрацию, выполнение некоторых действий в соответствии с содержанием определенных частей команд (их называют полями команд) и передачу кода, устанавливающего вид выполняемой операции, в УУВО.
Для выполнения этих функций в МП должны быть предусмотрены специальные устройства: программный счетчик (ПС), который хранит текущий адрес команды; регистр команд (РК), предназначенный для приема и хранения поступающих из ЗУК команд; схема выдачи адресов команд и содержимого ПС на адресную шину МП; схемы приема данных и команд с внешней шины данных на РК. Структура МП, содержащая все указанные устройства, представлена на рис. 5.2. В МП имеются две шины данных: А и В. Адрес команды, подлежащей выполнению, хранится в программном счетчике (ПС). Отсюда он поступает через блок усилителей буфера адреса (БА) на шину адреса и по ней — на адресные входы ЗУК.
Рис. 5.2. Структура микропроцессора с обрабатывающей и
управляющей частями
Команда, выбранная на ЗУК, поступает на буфер данных (БД), а затем на регистр команд (РгК). Код команды расшифровывается дешифратором команд (ДшК), который анализирует отдельные поля команды и передает код выполняемой операции в УУВО. Последний вырабатывает последовательность управляющих сигналов, соответствующую коду операции, которая обеспечивает выполнение нужных действий обрабатывающей частью микропроцессора.
Если в процессе выполнения команды требуется обращение к РОН, то ДшК выдает адрес требуемого регистра в блоке РОН. Если Для выполнения команды следует обратиться к внешнему по отношению к МП запоминающему устройству, то соответствующий адрес поступает на шину адреса через БА. В процессе выполнения команды содержимое программного счетчика (ПС) изменяется: в нем формируется адрес следующей команды.
Рассмотренные структуры обрабатывающей и управляющей частей предполагают наличие двух внутренних шин: А и В (рис. 5.2). Существуют микропроцессоры с одной, двумя и тремя внутренними шинами. Количество шин существенно влияет на структуру и характеристики МП.
Рис 5.3. Структура обрабатывающей части микропроцессора с трех-(а) и одношинной (б) организацией
При трехшинной организации МП (рис. 5.3, а) возможно выполнение логических и арифметических операций за один такт работы МП. Так, при выполнении команды «сложить содержимое регистров Рг1 и Рг2, результат поместить в регистр РгЗ» в течение одного такта работы процессора содержимое Рг1 по шине А поступает в АЛУ, где складывается с содержимым регистра Рг2, поступившим в АЛУ по шине В. Результат сложения по шине С записывается в регистр РгЗ.
При двухшинной организации МП (см. рис. 5.2) та же команда будет выполняться за два такта: такт 1 - загрузка РгБ содержимым регистра Рг1; такт 2-загрузка РгСдв содержимым Рг2, сложение в АЛУ данных, занесенных в РгБ и РгСдв, и засылка результата в регистр РгЗ.
Возможна одношинная организация МП (рис. 5.3, б). Однако выполнение операций в таком МП усложняется, усложняется также и архитектура МП прежде всего за счет введения дополнительных буферных регистров. Рассмотренная выше команда в МП с одношинной организацией выполняется уже за три такта: такт 1 - загрузка РгБ содержимым регистра Рг1; такт 2 - загрузка РгСдв содержимым регистра Рг2; такт 3 - сложение данных, содержащихся в РгБ и РгСдв, и запись результата в регистр РгЗ.
Основной недостаток трехшинной организации - большая площадь, занимаемая шинами на кристалле микросхемы МП. Так, при одношинной организации МП площадь, занимаемая шиной, составляет 3-10% всей площади кристалла, при двухшинной -6-20%, при трехшинной - 16-25%.
Шины. При вставке в разъем материнской платы контроллер подключается к шине — магистрали передачи данных между оперативной памятью и контроллерами. Шины расширения обычных ПК конструктивно оформляются в виде щелевых разъемов (слотов) на системной плате. На современных материнских платах существуют два вида слотов расширения: PCI, AGP, ранние модели оснащались разъемом расширения ISA.
Шина ISA (Industry Standard Architecture – стандартная промышленная архитектура) для контроллеров низкоскоростных устройств (то есть для обмена данными с клавиатурой, мышью, дисководами для дискет, модемом, звуковой картой и т.д.).
Шина PCI (Peripheral Component Interconnect – связь периферийного оборудования) для обмена данными с высокоскоростными устройствами — (жесткими дисками, видеоконтроллером и т.д.). Этот разъем был выпущен фирмой Intel в 1993г.
Шина AGP (Accelerated Graphics Port – ускоренный графический порт). Этот разъем также был изобретен в фирме Intel, но в 1996 году, и предназначен исключительно для видеокарт. Наиболее распространенный в настоящее время разъем AGP 4х и AGP 8х. (PCI-Express, 16x)
Разъемы шин. Каждый контроллер может быть подключен лишь к той шине, на которую он рассчитан. Поэтому разъемы различных шин сделаны разными, чтобы их нельзя было перепутать. При покупке контроллеров следует знать, разъемы каких шин имеются в Вашем компьютере, так как иначе купленный контроллер окажется бесполезен.
Замечание. Обычно материнская плата содержит 3-4 разъема шины ISA и 3-4 разъема шины PCI. В компактных моделях системных блоков число разъемов может быть меньше, а в компьютерах, предназначенных для использования в качестве серверов локальной сети — больше.
Контроллеры портов ввода-вывода. Одним из контроллеров, которые присутствуют почти в каждом компьютере, является контроллер портов ввода-вывода. Часто этот контроллер интегрирован в состав материнской платы. Контроллер портов ввода-вывода соединяется кабелями с разъемами на задней стенке компьютера, через которые к компьютеру подключаются принтер, мышь и некоторые другие устройства. Порты ввода-вывода бывают следующих типов:
• параллельные (обозначаемые LPT1-LPT4), к соответствующим разъемам на задней стенке компьютера (имеющим 25 гнезд, обыкновенно подключаются принтеры;
• последовательные (обозначаемые СОМ1-СОМЗ). К соответствующим разъемам на задней стенке компьютера (имеющим 9 или 25 штырьков) обычно подсоединяются мышь, модем и другие устройства;
• игровой порт - к его разъему (имеющему 15 гнезд), подключается джойстик.
Как правило, контроллер портов компьютера поддерживает один параллельный и два последовательных порта.
Замечание. Параллельные порты выполняют ввод и вывод с большей скоростью, чем последовательные (за счет использования большего числа проводов в кабеле).
Разъемы шины USB. В некоторых новых компьютерах имеются разъемы универсальной последовательной шины USB. Разъемы и кабели шины USB похожи на телефонные. По-видимому, скоро будут выпущены модели клавиатур, мышей, принтеров, модемов, дисководов компакт-дисков, сканеров и т.д., подключаемые к шине USB. При этом к каждому устройству, подключенному к шине USB, можно подключать другие USB-устройства (всего может быть подключено до 127 устройств). Для этого, по-видимому, каждое (или почти каждое) USB-устройство будет иметь два или три разъема USB. USB-устройства можно будет подсоединять и отсоединять при работающем компьютере. Возможно, в недалеком будущем в компьютерах вместо разъемов клавиатуры, портов и джойстика будут иметься только два-три маленьких разъема USB.
Изобразим изложенные сведения об устройстве компьютера на блок-схеме. Здесь показан вариант, когда на материнской плате, кроме контроллера клавиатуры, имеется только контроллер портов ввода-вывода, а остальные контроллеры выполнены в виде отдельных плат. Заметим, что контроллеры жестких дисков и дискет не всегда располагаются на одной плате.
Рис.5.1 Блок-схема устройства компьютера (стрелками показаны направления передачи данных)
Арифметико-логические устройства служат для выполнения арифметических и логических действий над двоичными числами и алфавитно-цифровыми кодами. Все операции, выполняемые АЛУ, делятся на группы:
- операции двоичной арифметики для чисел с плавающей точкой (запятой);
- операции десятичной арифметики;
- операции двоичной арифметики для чисел с фиксированной точкой (запятой);
- операции логические над алфавитно-цифровыми кодами.
К арифметическим операциям относят операции сложения, умножения, вычитания и деления. К логическим операциям относят операции дизъюнкции (логическое ИЛИ), конъюнкции (логическое И) и сравнения кодов.
Функционально АЛУ является блоком, обеспечивающим прием операндов, выполнение над ними арифметических действий и выдачу результата в другие блоки процессора.
В процессорах с микропрограммным управлением АЛУ управляется микропрограммно. Все микроприказы поступают на дешифратор микроприказов АЛУ, называемый схемой управления АЛУ, дешифрируются и выполняются.
На рис. 5.1 представлена упрощенная структурная схема АЛУ, содержащего блок регистров (Рг1, Рг2, ...Ргn) для хранения операндов и промежуточных результатов вычислений, сумматор (См), сдвигатель (Сдв), коммутатор (К) и устройство управления (УУ). Операнды поступают из ОП или БП через входную шину на соответствующие алгоритму выполнения операции регистры Рг1, Рг2,..., Ргn и затем на сумматоре и/или сдвигателе производятся необходимые действия; результат поступает в выходную шину.
Алгоритмы выполнения в АЛУ арифметических операций зависят от кода представления информации. Обычно в процессоре применяют два кода: прямой и дополнительный. Это объясняется тем, что операции арифметического сложения (вычитания) реализуются для отрицательных (положительных) чисел на основе применения инверсных кодов — обратного и дополнительного. Однако использование обратного кода затруднено тем, что в нем существует два представления нуля (+0) и (-0), существенно усложняющих схему управления АЛУ.
Алгоритм арифметического сложения (вычитания) чисел с фиксированной точкой составляется с включением знаковых разрядов. При возникновении переноса из знакового разряда суммы и отсутствии переноса в знаковый разряд и отсутствии переноса из него возникает переполнение разрядной сетки в случае положительной и отрицательной сумм соответственно. При отсутствии переносов из знакового разряда суммы и в него или при наличии обоих этих переносов переполнения не возникает и при 0 - знаковом разряде сумма положительна, а при 1- знаковом разряде - сумма отрицательна и представлена в дополнительном коде.
На рис. 10.2/ представлена упрощенная структурная схема АЛУ для операций сложения и вычитания n-разрядных чисел с фиксированной точкой. Отрицательные числа представлены в дополнительном коде. Операнды поступают из БП или ОП на входную ШИВх и далее на регистры РгША и РгШВ, каждый из которых связан цепями прямой и инверсной передач с регистрами РгА и РгВ соответственно. Обычно регистры РгА и РгВ называют также регистрами первого и второго операндов. Положительные операнды поступают в прямом коде (ПрКод), отрицательные - в дополнительном (ДопКод). При вычитании двух положительных операндов вычитаемое также представляется в обратном коде. На сумматоре (См) осуществляется сложение чисел, поступивших с РгА и РгВ, а результат поступает на выходной регистр сумматора РгСм и далее в выходную шину ШИВых.
Рис. 5.2 Упрощенная структурная схема АЛУ для сложения и вычитания n-разрядных чисел с фиксированной точкой
Схема управления анализирует знак полученного результата и в зависимости от этого результат в РгСм поступает в соответствующем коде.
Алгоритм операции сложения (вычитания) чисел с плавающей точкой по сравнению с предыдущим алгоритмом несколько сложнее. Упрощенная структурная схема АЛУ для сложения чисел с плавающей точкой представлена на рис. 10.3. Основное отличие от схемы, представленной на рис. 10.2, заключается в использовании специальных регистров РгШ1, РгШ2, РгПА, РгПВ, РгСмП и сумматора СмП для обработки порядков чисел. Кроме того, в состав АЛУ входит сдвигатель Сдв, обеспечивающий сдвиг мантиссы на необходимое количество разрядов влево и вправо. Мантиссы обрабатываются так же, как и числа с фиксированной точкой.
Алгоритм сложения (вычитания) чисел с плавающей точкой заключается в следующем:
1) сравниваются порядки на сумматоре СмП, в случае их неравенства порядок меньшего числа принимается равным порядку большего числа и его мантисса сдвигается вправо на число разрядов, равное разности порядков чисел (содержимое регистра РгСмП) на Сдв;
2) выполняется сложение мантисс на сумматоре См, и в результате на регистре РгСм получается мантисса результата;
3) порядок результата принимается равным порядку большего числа.
В операциях с плавающей точкой в отличие от операций с фиксированной точкой при сложении и вычитании чисел в случае выравнивания порядков может происходить потеря младших разрядов одного из операндов. Для уменьшения погрешности применяют дополнительный разряд сумматора, в который после выполнения суммирования добавляется «1», после чего результат округляется.
Алгоритм операции умножения реализуется последовательным выполнением микроопераций сложения и сдвига. Произведение двух n-разрядных чисел может иметь 2n-разрядов, поэтому при выполнении операции умножения целых чисел необходимо предусмотреть возможность формирования в АЛУ произведения соответствующей длины.
Рис 5.3. Структурная схема АЛУ для сложения и вычитания чисел
с плавающей точкой
Возможны четыре варианта схем организации операций умножения:
1. Умножение производится начиная с младших разрядов множителя со сдвигом суммы частных произведений вправо при неподвижном множимом.
2. Умножение производится начиная с младших разрядов множителя при сдвиге множимого влево и неподвижной сумме частичных произведений.
3. Умножение производится начиная со старших разрядов множителя при сдвиге суммы частичных произведений влево и неподвижном множимом.
4. Умножение производится начиная со старших разрядов множителя при сдвиге вправо множимого и неподвижной сумме частичных произведений.
Чаще всего применяется первый вариант выполнения операции умножения. Перед началом умножения (АЛУ на рис. 10.3) на соответствующие регистры поступают множимое (первый операнд) и множитель (второй операнд). Схема управления анализирует разряды множителя начиная с младшего. Если младший разряд множителя равен «1», то к содержимому регистра результата РгСм в исходном состоянии, равному «О», на сумматоре См прибавляется множи мое и результат заносится на РгСм. Затем множитель и промежуточный результат сдвигаются на один разряд вправо и далее все происходит аналогично. Если разряд множителя равен «О», то сложение не производится, а множитель и результат сдвигаются на один разряд вправо. Данная последовательность действий выполняется до тех пор, пока не будут проанализированы все разряды множителя. Знак произведения, хранящегося на регистре РгСм, определяется сложением по модулю два знаков множимого и множителя.
Алгоритм операции деления реализуется последовательным выполнением микроопераций вычитания и сдвига. Существует два основных варианта схем организации операции деления:
1. Деление с неподвижным делимым (очередным остатком) и выдвигаемым вправо частным Х.
2. Деление с неподвижным делителем и сдвигаемым влево делимым (очередным остатком). Чаще всего используют второй вариант (рис. 10.4). Перед началом деления в регистр Рг1 принимается делимое (первый операнд), а в регистр Рг2 — делитель (второй операнд). Затем делимое передается из Рг1 в сумматор, а содержимое Рг1 обнуляется. Деление начинается с вычитания содержимого Рг2 (делителя) из делимого на сумматоре.
При этом если делимое или очередной остаток окажется больше делителя, то старшая цифра частного, равная «I», записывается в младший разряд Рг1. Если же очередной остаток окажется меньше делителя, то в Рг1 записывается «О», после чего содержимое регистра Рг1 и сумматора сдвигается влево на один разряд и т. д.
Таким образом, по ходу вычислений Рг1 заполняется цифрами частного. Деление прекращается после образования цифр частного во всех разрядах регистра Рг1.
Алгоритм логической операции выполняется на том же оборудовании, что и алгоритм арифметических операций, если в нем предусмотрены специальные цепи управления. Возможно также применение специальных блоков для выполнения логических операций.
В качестве примера рассмотрим реализацию функций эквивалентности, неравнозначности и Пирса. На рис. 5.5 показана схема одного разряда логического блока АЛУ, реализующего указанные функции над i разрядами чисел Х и Y. Входные данные X; и Y,. вводятся в соответствующие триггеры (Т). Заданная функция реализуется наличием определенной комбинации управляющих сигналов (1, 2, 3, 4). Так, при наличии сигналов 1 и 4 реализуется функция эквивалентности fi == XiyiVXiyi; при наличии сигналов 2 и 3—функция неравнозначности fi== (/«У-й»; при наличии сигнала 4 — функция Пирса /, == xiifi. Аналогично задаются и другие логические функции.
Время выполнения операций в АЛУ является важной характеристикой, определяющей быстродействие процессора в целом. На практике применяют два основных метода ускорения выполнения операций: аппаратный и логический (алгоритмический).
При использовании аппаратных методов сокращение затрат времени на выполнение операций достигается за счет использования более быстродействующих элементов и некоторого усложнения аппаратной реализации некоторых узлов, в результате которого уменьшается число машинных тактов. Так, в сумматорах используют дополнительные схемы, реализующие сквозной и групповой перенос, что сокращает время выполнения суммирования и вычитания, а также умножения и деления.
Рис. 5.5Схема разряда логического блока АЛУ
При использовании логических методов уменьшение времени выполнения операций достигается за счет совершенствования алгоритмов работы микропрограмм и схем управления. Широкое распространение получили эти методы при ускорении выполнения операций умножения.
Время умножения 1у»и разрядных чисел складывается из времени tcu получения п сумм частичных произведений и времени tcaa сдвигов п, т. е. умн ==' == п((см+ сдв). Однако число сдвигов можно сделать меньше п, если анализировать сразу два, а не один разряд множителя, что и выполняет схема управления. В зависимости от них осуществляются следующие микрооперации:
00 — производится сдвиг суммы частичных произведений и множителя вправо на два разряда;
01 — множимое складывается с промежуточным результатом, и получаемая сумма сдвигается вправо на два разряда;
10—промежуточный результат сдвигается вправо на один разряд, затем к нему прибавляется множимое и полученная сумма сдвигается еще на один разряд вправо;
11 — из промежуточного результата вычитается множитель, результат сдвигается вправо на два разряда, а к следующей паре разрядов множителя добавляется «I».
Таким образом, достигается значительное ускорение операций умножения. Следует отметить, что одновременный анализ более чем- двух разрядов множителя нецелесообразен, так как приводит к резкому усложнению схемы управления.
Любой процессор ЭВМ способен выполнять лишь программу, написанную непосредственно на машинном языке в машинных кодах. Создание программ в таком виде осуществлялось программистами лишь на первых этапах развития вычислительной техники. В настоящее время программирование осуществляется на языках высокого уровня, называемых алгоритмическими, которые предоставляют программисту широкие возможности и способствуют повышению производительности его труда. Перед непосредственным выполнением ЭВМ программы на алгоритмическом языке специальные программы операционной системы, называемые трансляторами, осуществляют ее перевод с алгоритмического языка на машинный.
Функции процессора по управлению вычислительным процессом или по преобразованию информации задаются машинными командами. Существует три основных вида операций преобразования информации процессором:
1) арифметические операции над числами;
2) логические операции над алфавитно-цифровыми кодами;