ГИА СИУ

 

Процессор ЭВМ

   

Процессор ЭВМ

Процессор – это блок ЭВМ, предназначенный для автоматического считывания команд программы, их расшифровки и выполнения. Будучи центральным устройством ЭВМ, процессор во многом определяет её возможности и производительность.

В компьютерах третьего поколения процессор изготавливался из отдельных деталей и микросхем невысокого уровня интеграции. Прогресс в области микроэлектроники привел к тому, процессор удалось разместить внутри одного кристалла. Таким образом, он стал отдельной самостоятельной микросхемой и получил название – микропроцессор.

Размещение процессора в одной микросхеме создало предпосылки для существенного увеличения скорости работы процессора и повышения его надежности. Уменьшение размеров привело к ухудшению условий теплоотдачи, что потребовало для охлаждения современных процессоров использования металлических радиаторов с большой площадью поверхности и вентиляторов («кулеров»).

Арифметико-логическое устройство

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

Арифметической операцией называют процедуру обработки данных, аргументы и результат которой являются числами (сложение, вычитание, умножение, деление). Логической операцией называют процедуру, осуществляющую построение сложного высказывания (операции И, ИЛИ, НЕ, …).

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

Регистр – это типовой узел ЭВМ, предназначенный для временного хранения данных или выполнения над ними некоторых действий. Регистр состоит из разрядов, в которые можно быстро записывать, запоминать и считывать слово, команду, двоичное число. Обычно регистр имеет ту же разрядность, что и машинное слово.

Регистр, накапливающий данные, называется аккумулятором.

Регистр, обладающий способностью перемещать содержимое своих разрядов, называют сдвиговым регистром. В этих регистрах за один такт хранимое слово поразрядно сдвигается на одну позицию.

Некоторые регистры служат счетчиками. Счетчик является устройством, которое выдает в двоичной форме число импульсов, поступивших на его единственный вход. Максимальное число импульсов, которое счетчик может подсчитать, называется его емкостью.

Регистры общего назначения (РОН) – общее название для регистров, которые временно содержат данные, передаваемые или принимаемые из памяти. РОН являются программно-доступными регистрами.

Сумматор – это устройство, осуществляющее операции сложения (логического и арифметического) чисел или битовых строк, представленных в прямом или обратном коде.

Важной функцией АЛУ является анализ полученного после выполнения команды результата. Обычно проверяется два свойства: равенство или неравенство нулю и отрицательность или неотрицательность ответа. Результаты анализа сохраняются в виде отдельных битов в регистре состояния. Данные этого регистра используются УУ для исполнения команд условных переходов.

Устройство управления

Чтобы обеспечить автоматические вычисления по программе, процессор должен уметь выполнять еще ряд дополнительных действий:

u извлекать из памяти очередную команду;

u расшифровывать ее и преобразовывать в последовательность стандартных элементарных действий;

u заносить в АЛУ исходные данные;

u сохранять полученный в АЛУ результат;

u обеспечивать синхронную работу всех узлов машины.

Для выполнения этих функций служит устройство управления (УУ).

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

Регистр команды – служит для размещения текущей команды, которая находится в нем в течение текущего цикла процессора.

Кроме этого, имеются регистры, содержащие адрес команды, счетчик адреса команды, адреса операндов, операнды и результаты выполнения команды.

Разрядность процессора

Под разрядностью процессора понимают число одновременно обрабатываемых им битов. Формально эта величина есть количество двоичных разрядов в регистрах процессора.

Помимо внутренней разрядности процессора существует еще разрядность шины данных, которой он управляет, и разрядность шины адреса. Разрядность регистров и разрядность шины данных влияют на длину обрабатываемых данных, а разрядность шины адреса R определяет максимальный объем памяти, который способен поддерживать процессор. Эту характеристику называют величиной адресного пространства, и она может быть вычислена по формуле 2R.

Как правило, в современных процессорах разрядности регистров, шины данных и шины адреса различны. Например,

 

Основной алгоритм работы процессора

Важной составной частью фон-неймановской архитектуры является счетчик адреса команд. Он постоянно указывает на ячейку памяти, в которой хранится следующая команда программы. Считав очередную команду из памяти, процессор сразу же увеличивает значение счетчика так, чтобы он показывал на следующую команду. Затем считанная команда расшифровывается и выполняется.

При выполнении каждой команды вычислительная машина проделывает определенные стандартные действия:

1.         Согласно содержимому счетчика адреса команды считывается очередная команда программы. Её код заносится на хранение в регистр команд. Счетчик команд автоматически изменяется так, чтобы в нем содержался адрес следующей команды. В простейшем случае для этой цели достаточно к текущему значению счетчика прибавить некоторую константу, определяющуюся длиной команды.

2.      Считанная в регистр команд операция расшифровывается.

3.      Извлекаются необходимые данные.

4.      Над ними в АЛУ выполняются требуемые действия.

5.      Результат записывается в ОЗУ.

Затем во всех случаях, за исключением останова, описанные действия циклически повторяются.

В приведенном алгоритме ничего не говорится о первоначальном значении счетчика адреса команд. Эта неопределенность решается следующим образом. При включении питания компьютера или при нажатии на кнопку сброса в счетчик аппаратно заносится стартовый адрес находящейся в ПЗУ программы инициализации всех устройств и начальной загрузки ЭВМ.

 

 

 

 

считывание очередной команды в регистр команд

 

формирование адреса
следующей команды

 

дешифрация команды

 

выборка операндов

 

выполнение операции

 

запись результата

 

начало

 

останов?

 

конец

 

нет

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис 3.1 Основной алгоритм работы процессора.

Организация ветвлений

Основной алгоритм работы ЭВМ позволяет шаг за шагом выполнить хранящуюся в ОЗУ линейную программу. Но для решения практических задач требуется организация разветвлений и повторений. Для изменения порядка вычислений в системе команд любой ЭВМ существуют специальные инструкции переходов, с помощью которых в счетчик команд заносится необходимый адрес. Как известно, переходы бывают безусловные, выполняемые всегда, и условные, которые совершаются только в случае истинности определенного условия. Анализ условий осуществляется в арифметико-логическом устройстве.

По способу задания адреса, на который необходимо перейти, инструкции делятся на абсолютные и относительные. В абсолютных переходах адрес задается явно, а в относительных – указывается так называемое смещение, которое прибавляется к текущему содержимому программного счетчика.

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

Оптимизация выполнения команд

Конвейеризация. Как следует из приведенной схемы (рис.3.1), обработка команды в процессоре может быть разделена на несколько основных этапов, которые можно назвать микрокомандами. Известно пять основных типов микрокоманд. Каждая операция требует для своего выполнения времени, равному такту генератора процессора.

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

При использовании конвейеризации осуществляется параллельная обработка команд, в каждый момент одна команда считывается, другая декодируется и т.д. Всего в обработке одновременно находится пять команд. Таким образом, на выходе конвейера на каждом такте процессора появляется результат обработки одной команды. Первая инструкция может считаться выполненной, когда завершат работу все пять микрокоманд.

Рассмотренная технология обработки команд носит название конвейерной обработки. Каждая часть устройства называется ступенью конвейера, а общее число ступеней – длиной линии конвейера.

Очевидно, что конвейер эффективно функционирует только тогда, когда он целиком заполнен. Наличие в программах команд переходов нарушает работу конвейера и требует его «повторного запуска». Некоторая компенсация данного недостатка может быть достигнута за счет применения суперскалярности.

Суперскалярность. Суть этого метода заключается в дублировании устройств. Процессоры с несколькими линиями конвейера получили название суперскалярных. Процессор Pentium имеет два конвейера выполнения команд, благодаря чему он может выполнять одновременно две инструкции. Встретив команду перехода, процессор на первом конвейере продолжает работы на случай, если переход не произойдет, а второй конвейер запускает с адреса, на который переход может произойти. Следует учесть, что при всей кажущейся простоте описанной процедуры, синхронизация работы двух конвейеров – достаточно сложная задача.

Во многих вычислительных системах наряду с конвейером команд используются конвейеры данных. Это позволяет достичь очень высокой производительности работы процессора.

Тактовая частота

Любая операция процессора (машинная команда) состоит из отдельных элементарных действий – тактов. В зависимости от сложности, команда может быть реализована за разное количество тактов.

Для организации последовательного выполнения требуемых тактов в компьютере имеется специальный генератор импульсов, каждый из импульсов инициирует очередной такт машинной команды. Очевидно, чем чаще следуют импульсы от генератора, тем быстрее будет выполнена команда, состоящая из фиксированного числа тактов, тем выше производительность процессора. Разумеется, частоту генератора импульсов нельзя установить произвольно высокой, т.к. процессор может просто не успеть выполнить действие очередного такта до прихода следующего импульса.

Предельная тактовая частота во многом определяется технологией производства микросхем, в частности наименьшими достижимыми размерами элементов, которые определяют минимальное время передачи сигналов.

Система команд процессора.

Основные группы команд. Не смотря на большое число разновидностей ЭВМ, на самом низком уровне системы их команд имеют много общего. Любая ЭВМ содержит следующие группы команд:

1.    Команды передачи данных (перепись), копирующие информацию из одного места в другое.

2.    Арифметические операции, которым обязана своим рождением вычислительная техника.

3.    Логические операции, позволяющие компьютеру производить анализ получаемой информации. Примерами могут служить сравнение, логические операции И, ИЛИ, НЕ, а так же анализ отдельных битов кода, их сброс и установка.

4.    Сдвиги двоичного кода влево и вправо. Операции сдвига используются, например, при выполнении умножения и деления чисел.

5.    Команды ввода и вывода информации для обмена с внешними устройствами.

6.    Команды управления, к которым следует отнести все виды переходов. Сюда же включают операции по управлению процессором.

Процессоры RISC- и CISC- архитектуры

По способу представления команд все микропроцессоры можно разделить на две группы:

u   процессоры типа CISC (Complex Instruction Set Computing) с полным набором команд;

u   процессоры типа RISC (Reduced) с сокращенным набором команд. Эти процессоры нацелены на быстрое выполнение небольшого набора простых команд. При выполнении сложных команд RISC – процессоры работают медленнее, чем CISC – процессоры.

Первоначально микропроцессоры имели CISC- архитектуру, для которой характерен набор сложных команд неодинаковой длины с большим количеством методов адресации к памяти.

Появившийся позднее RISC – подход предлагал менее сложные команды одинаковой длины с отказом от некоторых сложных методов адресации. В процессорах с такой организацией обращение к ячейкам памяти производится только двумя специальными командами чтения и записи, а все остальные операции работают с регистрами. Такого рода упрощения позволяют оптимизировать выполнение команд и существенно ускорить работу процессора.

Сформулированы четыре основных принципа RISC – архитектуры:

u   каждая команда независимо от её типа выполняется за один машинный цикл, длительность которого должна быть максимально короткой;

u   все команды должны иметь одинаковую длину и использовать минимум адресных форматов, что резко упрощает логику управления процессором;

u   обращение к памяти происходит только при выполнении операций записи и чтения, вся обработка данных осуществляется исключительно в регистровой структуре процессора;

u   система команд должна обеспечивать поддержку языков высокого уровня (имеется виду подбор системы команд, наиболее эффективной для различных языков программирования).

Основоположником CISC – архитектуры можно считать фирму IBM. Стратегия CISC – архитектуры состояла в обеспечении технологической возможности перенесения «центра тяжести » обработки данных с программного уровня системы на аппаратный.

Процессоры фирмы Intel относятся к CISC- группе, однако для увеличения быстродействия фирма использует достижения RISC – архитектуры, так модели 486 и выше имеют внутреннее RISC – ядро, способное эмулировать сложную CISC- систему команд.

Основные черты архитектуры

CISC – архитектура

RISC – архитектура

Многобайтовые команды

Однобайтовые команды

Малое количество регистров

Большое количество регистров

Сложные команды

Простые команды

Одна команда или менее за один цикл процессора

Несколько команд за один цикл процессора

Традиционно одно исполнительное устройство

Несколько исполнительных устройств

 

Структура команд

Любая команда ЭВМ обычно состоит из двух частей – операционной и адресной. Операционная часть (её называют кодом операции – КОП) указывает, какое действие необходимо выполнить с информацией. Адресная часть (код адреса) указывает, где хранится используемая в операции информация и куда поместить результат. У некоторых команд управления работой машины адресная часть может отсутствовать, например, в команде останова, операционная часть имеется всегда.

По количеству адресов, записываемых в команде, команды делятся на безадресные, одно-, двух- и трехадресные.

КОП

a1

a2

a3

Типовая структура трехадресной команды:

а1 и а2 – адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции;

а3 – адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции.

КОП

a1

a2

 

Типовая структура двухадресной команды:

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

а2 – обычно адрес ячейки (регистра), где хранится второе участвующее в операции число.

КОП

a1

Типовая структура одноадресной команды:

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

Трехадресная команда легко расшифровывалась и была удобна в использовании, но с ростом объемов ОЗУ ее длина становилась непомерно большой. Поэтому появились двухадресные машины, длина команд в которых сократилась за счет исключения адреса записи результата.

Рассмотрим пример использования одноадресной команды. Пусть надо сложить числа, хранящиеся в адресах ОЗУ a1 и a2, а сумму поместить в a3. Одноадресная машина должна выполнить три команды:

u извлечь содержимое ячейки a1 в сумматор;

u сложить содержимое сумматора с числом из a2;

u записать результат из сумматора в a3.

Сайт создан по технологии «Конструктор e-Publish»
Hosted by uCoz