Как работает процессор?
Инструмент проще, чем машина. Зачастую инструментом работают руками, а машину приводит в действие паровая сила или животное.
Компьютер тоже можно назвать машиной, только вместо паровой силы здесь электричество. Но программирование сделало компьютер таким же простым, как любой инструмент.
Процессор — это сердце/мозг любого компьютера. Его основное назначение — арифметические и логические операции, и прежде чем погрузиться в дебри процессора, нужно разобраться в его основных компонентах и принципах их работы.
Определение понятия
Арифметико-логическое устройство — один из блоков процессора, управляемый УУ (устройством управления). Его предназначение: выполнение логических и арифметических преобразований над данными-операндами (аргументами операции, информацией, обрабатываемой программой). Разрядность операндов в данном случае — размер или длина машинного слова.
Современное многофункциональное АЛУ состоит сегодня из двух частей:
- Операционное устройство.
- Устройство управления. Проводит вторичную дешифрацию кодов команды, определяет операцию, выполняемую в арифметико-логическом устройстве.
Принципы работы процессора
ЦП работает под управлением программы, которая находится в оперативной памяти.
АЛУ получает данные и выполняет указанную операцию, записывая результат в один из свободных регистров.
Текущая команда находится в специальном регистре команд. При работе с текущей командой значение так называемого счетчика команд увеличивается, который затем указывает на следующую команду (исключением может быть только команда перехода).
Команда состоит из записи операции (которую нужно выполнить), адресов ячеек исходных данных и результата. По указанным в команде адресам берутся данные и помещаются в обычные регистры (в смысле не в регистр команды), получившийся результат тоже сначала помещается в регистр, а уж потом перемещается по своему адресу, указанному в команде.
Действие устройства управления процессора
Этот блок отвечает за выработку последовательности функциональных сигналов, нужной для корректного выполнения заданной команды. Как правило, такие преобразования реализуются за несколько тактов.
Управляющее устройство обеспечивает автоматическое выполнение программы. При этом задействуются необходимые координированные ответвления работы прочих составляющих компонентов машины.
За действие устройства управления отвечает базовый принцип микропрограммирования, имеющий четкое число характеристик.
Принцип формирования адресов
Поставим задачу сформировать 20–разрядный адрес (addr20), обеспечивающий доступ к 2 20 = 1М байт памяти, с помощью двух 16–разрядных регистров. Каждый из 16–разрядных регистров обеспечивает доступ к 2 16 ячейкам или к 64К байт памяти. Поэтому выделим в 1М байт памяти сегмент емкостью 64К байт с условием, чтобы младший разряд его шестнадцатеричного кода начального адреса был равен нулю, т. е. код адреса имел вид ХХХХ0
h, где X = 0 или 1, h — обозначение 16–ричного кода (hexadecimal). Один из регистров выберем в качестве селектора сегмента(sel), другой — в качестве регистра смещения (offset). Представим адрес в виде суммы addr20 = 1 6 x sel +offset =XXXX0h +YYYYh.
Из выражения следует, что путем изменения содержимого селектора (ХХХХ h) и регистра смещения (YYYYh) от 0000 h до FFFFh, можно получить 16 4 х16 4 комбинаций адресов. Однако среди них имеются одинаковые коды. Общее число ячеек памяти с различными адресами составляет 2 20 – 2 4 + 2 16 .
На рис. 2.2.4, а показано, как можно обеспечить доступ к памяти с числом ячеек 2 20 (или емкостью 1 M байт при использовании однобайтных ячеек).
В качестве селектора, который можно рассматривать как указатель сегмента, в процессорах используются сегментные регистры (регистры кода CS, стека SS, данных DS и дополнительный регистр ES), а в качестве регистров смещения — регистры общего назначения (программный счетчик IP, указатель стека SP, указатель базы BP и регистры автоинкрементной SI и автодекрементной DI адресации). Возможны следующие пары регистров:
ES DI. На рис. 2.2.4, б показана в качестве примера реализация принципа адресации с использованием пары
Содержание
Разработчик компьютера ENIAC, Джон фон Нейман, был первым создателем АЛУ. В 1945 году он опубликовал первые научные работы по новому компьютеру, названному EDVAC (Electronic Discrete Variable Computer). Годом позже он работал со своими коллегами над разработкой компьютера для Принстонского института новейших исследований (IAS). Архитектура этого компьютера позже стала прототипом архитектур большинства последующих компьютеров. В своих работах фон Нейман указывал устройства, которые, как он считал, должны присутствовать в компьютерах. Среди этих устройств присутствовало и АЛУ. Фон Нейман отмечал, что АЛУ необходимо для компьютера, поскольку оно гарантирует, что компьютер будет способен выполнять базовые математические операции включая сложение, вычитание, умножение и деление
АЛУ состоит из регистров, сумматора с соответствующими логическими схемами и элемента управления выполняемым процессом. Устройство работает в соответствии с сообщаемыми ему именами (кодами) операций, которые при пересылке данных нужно выполнить над переменными, помещаемыми в регистры.
Арифметико-логическое устройство функционально можно разделить на две части :
- микропрограммное устройство (устройство управления), задающее последовательность микрокоманд (команд);
- операционное устройство (АЛУ), в котором реализуется заданная последовательность микрокоманд (команд).
Рисунок 1 — Структурная схема арифметико-логического устройства
Структурная схема АЛУ и его связь с другими блоками машины показаны на рисунке 1. В состав АЛУ входят регистры Рг1 — Рг7, в которых обрабатывается информация , поступающая из оперативной или пассивной памяти N1, N2, . NS; логические схемы, реализующие обработку слов по микрокомандам, поступающим из устройства управления.
Закон переработки информации задает микропрограмма , которая записывается в виде последовательности микрокоманд A1,A2, . Аn-1,An. При этом различают два вида микрокоманд: внешние, то есть такие микрокоманды, которые поступают в АЛУ от внешних источников и вызывают в нем те или иные преобразования информации (на рис. 1 микрокоманды A1,A2. Аn), и внутренние, которые генерируются в АЛУ и воздействуют на микропрограммное устройство, изменяя естественный порядок следования микрокоманд. Например, АЛУ может генерировать признаки в зависимости от результата вычислений: признак переполнения, признак отрицательного числа, признак равенства 0 всех разрядов числа др. На рис. 1 эти микрокоманды обозначены р1, p2. рm.
Результаты вычислений из АЛУ передаются по кодовым шинам записи у1, у2, . уs, в ОЗУ. Функции регистров, входящих в АЛУ:
- Рг1 — сумматор (или сумматоры) — основной регистр АЛУ, в котором образуется результат вычислений;
- Рг2, РгЗ — регистры слагаемых, сомножителей, делимого или делителя (в зависимости от выполняемой операции);
- Рг4 — адресный регистр (или адресные регистры), предназначен для запоминания (иногда и формирования) адреса операндов и результата;
- Ргб — k индексных регистров, содержимое которых используется для формирования адресов;
- Рг7 — i вспомогательных регистров, которые по желанию программиста могут быть аккумуляторами, индексными регистрами или использоваться для запоминания промежуточных результатов.
Часть операционных регистров является программно-доступной, то есть они могут быть адресованы в команде для выполнения операций с их содержимым. К ним относятся : сумматор, индексные регистры, некоторые вспомогательные регистры.
Остальные регистры программно-недоступные, так как они не могут быть адресованы в программе. Операционные устройства можно классифицировать по виду обрабатываемой информации, по способу обработки информации и логической структуре.
АЛУ может оперировать четырьмя типами информационных объектов: булевскими (1 бит), цифровыми (4 бита), байтными (8 бит) и адресными (16 бит). В АЛУ выполняется 51 различная операция пересылки или преобразования этих данных. Так как используется 11 режимов адресации (7 для данных и 4 для адресов), то путем комбинирования «операция/ режим адресации» базовое число команд 111 расширяется до 255 из 256 возможных при однобайтном коде операции.
Статьи к прочтению:
Базовая аппаратная конфигурация Персональный компьютер – универсальная техническая система. Его конфигурацию (состав оборудования) можно гибко изменять…
В ходе развития и совершенствования вычислительной техники фундаментальные принципы устройства компьютеров (вычислительных машин) изменились мало. (Рис.)…
Классификация АЛУ
- По способу действия над операндами АЛУ делятся на последовательные и параллельные. В последовательных АЛУ операнды представляются в последовательном коде, а операции производятся последовательно во времени над их отдельными разрядами. В параллельных АЛУ операнды представляются параллельным кодом и операции совершаются параллельно во времени над всеми разрядами операндов.
- По способу представления чисел различают АЛУ:
- для чисел с фиксированной точкой;
- для чисел с плавающей точкой;
- для десятичных чисел.
- По характеру использования элементов и узлов АЛУ делятся на блочные и многофункциональные. В блочном АЛУ операции над числами с фиксированной и плавающей точкой, десятичными числами и алфавитно-цифровыми полями выполняются в отдельных блоках, при этом повышается скорость работы, так как блоки могут параллельно выполнять соответствующие операции, но значительно возрастают затраты оборудования. В многофункциональных АЛУ операции для всех форм представления чисел выполняются одними и теми же схемами, которые коммутируются нужным образом в зависимости от требуемого режима работы.
- По своим функциям АЛУ является операционным блоком, выполняющим микрооперации, обеспечивающие приём из других устройств (например, памяти) операндов, их преобразование и выдачу результатов преобразования в другие устройства. Арифметическо-логическое устройство управляется управляющим блоком, генерирующим управляющие сигналы, инициирующие выполнение в АЛУ определённых микроопераций. Генерируемая управляющим блоком последовательность сигналов определяется кодом операции команды и оповещающими сигналами.
Выполняемые в АЛУ операции можно разделить на следующие группы:
- операции двоичной арифметики для чисел с фиксированной точкой;
- операции двоичной (или шестнадцатеричной) арифметики для чисел с плавающей точкой;
- операции десятичной арифметики;
- операции индексной арифметики (при модификации адресов команд);
- операции специальной арифметики;
- операции над логическими кодами (логические операции);
- операции над алфавитно-цифровыми полями.
Современные ЭВМ общего назначения обычно реализуют операции всех приведённых выше групп, а малые и микроЭВМ, микропроцессоры и специализированные ЭВМ часто не имеют аппаратуры арифметики чисел с плавающей точкой, десятичной арифметики и операций над алфавитно-цифровыми полями. В этом случае эти операции выполняются специальными подпрограммами. К арифметическим операциям относятся сложение, вычитание, вычитание модулей («короткие операции») и умножение и деление («длинные операции»). Группу логических операций составляют операции дизъюнкция (логическое ИЛИ) и конъюнкция (логическое И) над многоразрядными двоичными словами, сравнение кодов на равенство. Специальные арифметические операции включают в себя нормализацию, арифметический сдвиг (сдвигаются только цифровые разряды, знаковый разряд остаётся на месте), логический сдвиг (знаковый разряд сдвигается вместе с цифровыми разрядами). Обширна группа операций редактирования алфавитно-цифровой информации