Вы находитесь на странице: 1из 9

Лекция 6

Структура и организация центрального процессора


Центральный процессор (ЦП), или центральное процессорное устройство (ЦПУ)
(central processing unit — CPU) — процессор машинных инструкций, часть аппаратного
обеспечения компьютера или программируемого логического контроллера, отвечающая за
выполнение основной доли работ по обработке информации, — вычислительный процесс.
Современные ЦП, выполняемые в виде отдельных микросхем (чипов), реализующих
все особенности, присущие данного рода устройствам, называют микропроцессорами.
Микропроцессор (МП) — функционально-законченное программно-управляемое
устройство обработки информации, выполненное в виде одной или нескольких БИС или
СБИС.
С середины 80-х последние практически вытеснили прочие виды ЦПУ, вследствие
чего термин стал всё чаще и чаще восприниматься как обыкновенный синоним слова
«микропроцессор». Тем не менее, центральные процессорные устройства некоторых
суперкомпьютеров даже сегодня представляют собой сложные комплексы больших (БИС)
и сверхбольших (СБИС) интегральных схем.
Устройство, архитектура и реализация процессоров неоднократно менялись, однако
их основные исполняемые функции остались теми же, что и прежде.

Структура и функции центрального процессора


Работа большинства современных процессоров основана на той или иной версии
циклического процесса последовательной обработки информации, разработанного фон
Нейманом. Важнейшие этапы этого процесса приведены ниже. В различных архитектурах
и для различных команд могут потребоваться дополнительные этапы. Например, для
арифметических команд могут потребоваться дополнительные обращения к памяти, во
время которых производится считывание операндов и запись результатов.
В общем, этапы цикла выполнения команды выглядят следующим образом:
1) Процессор выставляет число, хранящееся в регистре счётчика команд, на шину
адреса, и отдаёт памяти команду чтения.
2) Выставленное число является для памяти адресом. Память, получив адрес и
команду чтения, выставляет содержимое, хранящееся по этому адресу, на шину данных, и
сообщает о готовности.
3) Процессор получает число с шины данных, интерпретирует его как команду
(машинную инструкцию) из своей системы команд и исполняет её.

1
4) Если последняя команда не является командой перехода, процессор увеличивает на
единицу (в предположении, что длина каждой команды равна единице) число, хранящееся
в счётчике команд. В результате там образуется адрес следующей команды.
5) Снова выполняется п. 1.
Данный цикл выполняется неизменно и бесконечно, и именно он называется
процессом (откуда и произошло название устройства).
Во время процесса процессор считывает последовательность команд, содержащихся в
памяти, и исполняет их. Такая последовательность команд называется программой и
представляет алгоритм полезной работы процессора. Очерёдность считывания команд
нарушается в случае, если процессор считывает команду перехода — тогда адрес
следующей команды может оказаться другим. Другим примером нарушения процесса
может служить случай получения команды останова, в результате которой процесс
прекращается, например, до получения процессором сигнала аппаратного прерывания.
Команды центрального процессора являются самым нижним уровнем управления
компьютером, поэтому выполнение каждой команды неизбежно и безусловно. Не
производится (и не может производиться) никакой проверки на допустимость
выполняемых действий, в частности, не проверяется возможная потеря ценных данных.
Чтобы компьютер выполнял только допустимые действия, команды должны быть
соответствующим образом организованы в виде программы.
Скорость перехода от одного этапа цикла к другому определяется тактовым
генератором. Тактовый генератор вырабатывает импульсы, служащие ритмом для
центрального процессора. Частота тактовых импульсов называется тактовой частотой.
Структура ЦП в общем, виде показана на рис. 1
.

АЛУ
Флаги состояния .
Внутренняя Регистры
.
Сдвигатель магистраль .
ЦП
Обращение знака

Арифметические и
логические операции

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

Пути прохождения
сигналов управления
2
Рис. 1. Внутренняя структура процессора

Микропроцессор выполняет следующие функции:


 вычисление адресов команд и операндов;
 выборку и дешифрацию команд из основной памяти (ОП);
 выборку данных из ОП, регистров МП и регистров адаптеров внешних устройств
(ВУ);
 прием и обработку запросов и команд от адаптеров на обслуживание ВУ;
 обработку данных и их запись в ОП, регистры МП и регистры адаптеров ВУ;
 выработку управляющих сигналов для всех прочих узлов и блоков ПК;
 переход к следующей команде.
Основными параметрами микропроцессоров являются разрядность, рабочая тактовая
частота, размер кэш-памяти, состав инструкций, микроархитектура, конструктив, рабочее
напряжение.
Разрядность шины данных микропроцессора определяет количество разрядов, над
которыми одновременно могут выполняться операции; разрядность шины адреса МП
определяет его адресное пространство.
Адресное пространство — это максимальное количество ячеек основной памяти,
которое может быть непосредственно адресовано микропроцессором.
Рабочая тактовая частота МП во многом определяет его внутреннее
быстродействие, ибо каждая команда выполняется за определенное количество тактов.
Быстродействие (производительность) ПК зависит также и от тактовой частоты шины
материнской платы, с которой работает (может работать) МП.
Кэш-память, устанавливаемая на плате/кристалле МП, имеет два уровня:
L1 — память 1-го уровня, находящаяся внутри основной микросхемы (ядра) МП и
работающая всегда на полной частоте, благодаря этому, данный уровень обладает наименьшим
временем доступа (является буфером между процессором и кэш-памятью второго уровня);

L2 — память 2-го уровня, размещаемая на чипе МП и связанная с ядром внутренней


микропроцессорной шиной (впервые введен в МП Pentium II). Память L2 может работать
на полной или половинной частоте МП. Эффективность этой кэш-памяти зависит и от
пропускной способности микропроцессорной шины;
L3 – третий уровень, более медленный, чем два предыдущих, но гораздо быстрее,
чем оперативная память. Объём кэша L3 в i7-3770K составляет 8 Мбайт. Если два
предыдущих уровня разделяются на каждое ядро, то данный уровень является общим для

3
всего процессора. Например, у процессоров Extreme-серии по типу i7-3960X, он равен
15Мб, а у некоторых новых процессоров Xeon, более 20.
Конструктив определяет те физические разъемные соединения, в которые
устанавливается МП и которые определяют пригодность материнской платы для
установки МП. Разные разъемы имеют разную конструкцию (Slot — щелевой разъем,
Socket — разъем-гнездо), разное количество контактов, на которые подаются сигналы и
рабочие напряжения.
Рабочее(ие) напряжение(ия) также определяет пригодность материнской платы для
установки МП.
Состав команд или архитектура набора команд (Instruction Set Architecture, ISA)
является частью архитектуры компьютера, относящейся к программированию, включая
присущие ей типы данных, машинные команды (инструкции), автоматически
выполняемые процессором, регистры, режимы адресации, архитектуру памяти, обработку
прерываний и исключительных состояний, а также внешний ввод /вывод.

Организация набора регистров


Набор регистров процессора представляет память самого верхнего уровня, находящегося
в иерархии над уровнями оперативной памяти и кэш-памяти.
Регистры процессора разделяются по функциям. Программно- доступные регистры
позволяют программисту, разрабатывающему программы на машинном языке или на
языке ассемблера, минимизировать в программе обращение к оперативной памяти и, где
это возможно, использовать для хранения промежуточных результатов
быстродействующую внутреннюю память процессора. Регистры, управления и состояния
используются для управления функционированием процессора. К этим регистрам иногда
могут иметь доступ специальные привилегированные команды, которые используются
только в программах операционной системы.
Не существует раз и навсегда узаконенного разделения регистров на эти категории.
Например, в большинстве компьютеров счетчик команд (РС) программно недоступен, но
существуют и такие машины, как VАХ , в которых он доступен со стороны программы,
как и любой другой.
Программно- доступные регистры, в свою очередь, можно разделить на четыре категории:
 регистры общего назначения (или универсальные регистры);
 регистры данных;
 регистры адреса;

4
 регистры кодов условий.
Регистры общего назначения программист может использовать по своему усмотрению для
выполнения самых разных функций. Иногда система команд никак не связывает их
функции с выполняемой операцией. В этом смысле регистры являются универсальными,
т.е. любой регистр может использоваться для спецификации любого операнда в любой
машинной команде. Но чаще всего возможность применения того или иного регистра все-
таки в определенной мере ограничивается. Например, для работы с системным стеком и
числами в формате с плавающей точкой могут использоваться не любые, а только
определенные регистры.
В некоторых конструкциях процессоров регистры общего назначения можно применять
для адресации операндов (т.е. косвенной адресации через регистр, адресации со
смещением и т. п.). В других конструкциях существует жесткое разделение между
регистрами адреса и регистрами данных.
Регистры данных разрешается использовать только для хранения операндов и
результатов, но они не принимают участия в вычислении исполнительного адреса. В
некоторых старых ЦПУ выделялся специальный регистр данных, названный
аккумулятором и неявно используемый при выполнении ряда инструкций. Регистры с
плавающей точкой во многих архитектурах хранят числа с плавающей точкой. Регистры
констант содержат неизменяемые значения таких констант, как нуль, единица, .
Векторные регистры содержат данные для векторной обработки, производимых SIMD-
инструкциями.
Регистры адреса хранят адреса, используемые инструкциями для косвенного доступа к
памяти. Данные регистры могут быть в определенной степени универсальными, а могут
предназначаться только для определенного режима адресации. Некоторые процессоры
содержат регистры, которые используются только для хранения адреса или только для
хранения численного значения (в некоторых случаях используемых как индексные
регистры, значения которых прибавляется в качестве смещения от некоторого адреса),
другие позволяют регистрам и то, и другое. В некоторых процессорах при обращении к
индексному регистру автоматически выполняется приращение или уменьшение значения
на 1 (происходит автоиндексация).
В компьютерах с сегментной организацией оперативной памяти выделяется специальный
регистр сегмента, в котором хранится базовый адрес сегмента. Таких регистров может
быть несколько, один хранит базовый адрес сегмента операционной системы, а другой
(другие) - базовый адрес сегмента текущего процесса (или нескольких параллельно
выполняемых процессов).
5
Указатель стека. Если в компьютере механизм управления системным стеком программно
доступен, то стек размещается в оперативной памяти и выделяется специальный регистр,
который содержит текущее значение указателя вершины стека. Наличие системного стека
позволяет неявно специфицировать операнды в нуль-адресных командах.
Регистры кодов условий также в определенной мере программно доступны, хотя набор
операций с ними со стороны программы очень ограничен. Эти регистры (или регистр)
хранят однобитовые коды условий, которые принято называть флагами. Большинство
флагов устанавливается процессором в зависимости от значения результата последней
выполненной арифметической или логической операции. Например, арифметическая
операция может породить положительный или отрицательный результат, равный нулю
или отличный от нуля, может произойти переполнение и т. д. Все эти свойства результата
фиксируются в соответствующих флагах дополнительно к собственно результату,
который фиксируется в каком-либо регистре данных или в ячейке памяти. Эти флаги
могут затем быть проанализированы при выполнении команд условного перехода.
Биты кодов условий объединяются в один или несколько регистров условий. Обычно они
включаются в регистр управления. В общем случае эти флаги могут анализироваться
машинными командами, но машинная команда не может их явно изменить. (Это
возможно только при выполнении арифметической команды со специально
подобранными значениями операндов.)
Регистры управления и состояния. В управлении работой процессора принимает участие
несколько регистров. В большинстве моделей процессоров эти регистры недоступны
программе, но могут неявно опрашиваться при выполнении некоторых
привилегированных машинных команд в супервизорном режиме (такие команды
используются в программах операционной системы).
В процессе обработки машинной команды существенную роль играют четыре регистра
управления:
 счетчик команд (РС — Program Counter) содержит адрес извлекаемой машинной
команды,
 регистр текущей команды (IR — Instruction Register) содержит последнюю
извлеченную машинную команду,
 регистр адреса в памяти (МАR — Memory Address Register) содержит адрес ячейки
памяти,
 регистр данных памяти (МВR — Memory Buffer Register) содержит слово данных,
которое должно быть записано в память или слово, только что извлеченное из
памяти.
6
Как правило, счетчик команд РС обновляется процессором сразу после того, как
извлекается очередная машинная команда, и, таким образом, практически в течение всего
цикла Обработки команды в нем содержится адрес команды, которая должна выполняться
в следующем цикле. Содержимое РС также изменяется командами переходов.
Извлеченная из памяти машинная команда помещается в регистр IR, а затем производится
анализ отдельных ее полей — кода операции и полей операндов. Данные извлекаются из
памяти с помощью регистров МАR и МВR. В компьютерах с системной магистралью
регистр МАR соединен напрямую с линиями адреса, а регистр МВR — с линиями данных.
В свою очередь, программно доступные регистры обмениваются данными с MBR.
Четыре перечисленных регистра используются при перемещении данных между
процессором и памятью. Но внутри процессора данные должны передаваться в АЛУ для
обработки. АЛУ имеет доступ как к регистру MBR, так и к программно доступным
регистрам. Но возможен и такой вариант структуры процессора, в котором существуют
дополнительные буферные регистры на стыке АЛУ с другими компонентами. Эти
буферные регистры играют роль входных и выходных для АЛУ и обмениваются данными
с MBR и с программно доступными регистрами.
Во всех моделях процессоров существуют один или несколько регистров, хранящих слово
состояния программы (PSW — Program Status Word). В состав PSW входят биты кодов
условий и некоторая другая информация о текущем состоянии программы (фактически,
процессора). Регистр PSW используется при переключении процессора на выполнение
прерывания или, при мультизадачном режиме, на выполнение другой задачи. При этом
текущее PSW записывается в стек и извлекается из него при окончании работы с другой
программой, возобновляя тем самым работу предыдущей программы.
В конкретных моделях процессоров можно встретить и другие регистры, хранящие
информацию о текущем состоянии процессора и управляющие режимом его
функционирования. Помимо PSW, это может быть регистр указателя блока памяти,
содержащего дополнительную информацию о состоянии (т.е. блока управления
процессом). В состав процессоров, работающих с векторными прерываниями, включается
регистр вектора прерывания. Если для выполнения некоторых функций используется стек,
в составе процессора должен быть регистр указателя системного стека. Регистр указателя
таблицы страниц необходим в системах, работающих с виртуальной памятью. И, наконец,
определенные регистры нужны для управления операциями ввода-вывода. В некоторых
архитектурах специальные регистры (machine-specific registers) хранят данные и
установки, относящиеся к самому процессору.

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

Режимы адресации
Как правило, в формате команды адресное поле или поля занимают не много места. Но
программисту желательно иметь возможность специфицировать в таком поле адрес в
адресном пространстве оперативной или даже виртуальной памяти значительного объема.
Для того чтобы предоставить ему такую возможность, разработано множество методов,
или режимов адресации. Выбор любого из режимов предполагает определенный
компромисс между гибкостью метода адресации с одной стороны и объемом доступного
адресного пространства памяти и сложностью вычисления исполнительного адреса — с
другой.
Наиболее широко распространенными методами адресации являются:
 непосредственный,
 прямой,
 косвенный,
 регистровый,
 косвенный через регистр,
 со смещением,
 стековый.
На рис. 2. схематически показана суть каждого из режимов.

8
Рис. 2. Режимы адресации: а — непосредственный; б — прямой; в — косвенный; г
регистровый;
д — косвенный через регистр; е — смещенный; ж — стековый
Практически во всех существующих моделях компьютеров предусмотрено несколько
режимов адресации. Поэтому возникает вопрос, каким образом узел управления
процессора узнает, какой именно режим адресации задан в конкретной машинной
команде. Существует несколько методов решения этой задачи. Часто за определенным
кодом операции "закрепляется" и определенный режим адресации. Альтернативный
вариант предусматривает, что в формате команды выделяется несколько битов под поле
режима адресации. Код в этом поле и определяет режим адресации при выполнении
конкретной команды.
В системах, не работающих с виртуальной памятью, исполнительный адрес является либо
адресом в оперативной памяти, либо идентификатором определенного регистра
процессора. В системах с виртуальной памятью исполнительный адрес есть либо
виртуальный адрес, либо идентификатор регистра. Отображение сформированного
исполнительного адреса на физическое адресное пространство — это функция механизма
поддержки страничной организации, который работает без вмешательства программиста.

Вам также может понравиться