Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
81
Добавлен:
16.04.2015
Размер:
1.51 Mб
Скачать

Кузьменко В.Г., март 2013 г.

1

 

 

(Материал из Википедии — свободной энциклопедии)

Центра́льный проце́ссор (ЦП; также центральное процессорное устройство ЦПУ; central processing unit, CPU, дословно —

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

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

Кузьменко В.Г., март 2013 г.

2

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

Функции процессора:

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

программное управление работой устройств компьютера.

Кузьменко В.Г., март 2013 г.

3

Машинный код (платформенно-ориентированный код), машинный язык

— система команд (набор кодов операций) конкретной вычислительной машины, которая интерпретируется непосредственно процессором или микропрограммами этой вычислительной машины.

Вобщем случае, команда содержит следующую информацию: код выполняемой операции; указания по определению операндов (или их адресов);

указания по размещению получаемого результата.

Взависимости от количества операндов, команды бывают:

одноадресные; двухадресные; трехадресные; переменноадресные.

Способы указания адресов переменных весьма разнообразны.

В адресной части команды может быть указан, например:

сам операнд (число или символ);

адрес операнда (номер байта, начиная с которого расположен операнд);

адрес адреса операнда (косвенная адресация);

явное (или неявное) указание внутреннего регистра процессора, участвующего в выполнении операции.

Кузьменко В.Г., март 2013 г.

4

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

одноадресная команда add x

(содержимое x сложить с

 

содержимым сумматора, а результат оставить в сумматоре);

 

 

 

 

 

 

 

 

 

 

 

 

add

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

(сложить

двухадресная команда

add x, y

содержимое ячеек x и y, а результат поместить в x)

 

 

 

 

 

 

 

 

 

add

 

x

y

 

 

 

 

 

 

 

 

 

(содержимое x

трехадресная команда

add x, y, z

сложить с содержимым y, сумму поместить в z)

add x y z

Кузьменко В.Г., март 2013 г.

5

Как пpавило, этот процесс разбивается на следующие этапы:

из ячейки памяти, адрес которой хранится в счетчике команд, выбирается очередная команда; содержимое счетчика команд при этом увеличивается на длину команды;

выбранная команда передается в устройство управления на регистр команд;

устройство управления расшифровывает адресное поле команды;

по сигналам УУ операнды считываются из памяти и записываются в АЛУ на специальные регистры операндов;

УУ расшифровывает код операции и выдает в АЛУ сигнал выполнить соответствующую операцию над данными;

результат операции либо остается в процессоре, либо отправляется в память, если в команде был указан адрес результата;

все предыдущие этапы повторяются до достижения команды "стоп".

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

Для увеличения быстродействия используется конвейерная обработка команд.

Кузьменко В.Г., март 2013 г.

6

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

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

Простой пятиуровневый конвейер в RISC-процессорах

На иллюстрации справа показан простой пятиуровневый конвейер в RISCпроцессорах. Здесь:

IF ( Instruction Fetch) — получение инструкции,

ID (Instruction Decode) — раскодирование инструкции,

EX (Execute) — выполнение,

MEM (Memory access) — доступ к памяти,

WB (Register write back) — запись в регистр.

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

Кузьменко В.Г., март 2013 г.

7

При отсутствии конвейера выполнение команды займёт n единиц времени (так как для выполнения команды по-прежнему необходимо выполнять выборку, дешифровку и т. д.), и для исполнения m команд понадобится n*m единиц времени; при использовании конвейера (в самом оптимистичном случае) для выполнения команд понадобится всего лишь n+m единиц времени.

Факторы, снижающие эффективность конвейера:

Простой конвейера, когда некоторые ступени не используются (например, адресация и выборка операнда из ОЗУ не нужны, если команда работает с регистрами).

Ожидание: если следующая команда использует результат предыдущей, то последняя не может начать выполняться до выполнения первой (это преодолевается при использовании внеочередного выполнения команд — out-of-order execution).

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

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

Кузьменко В.Г., март 2013 г.

8

Способность выполнения нескольких машинных инструкций за

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

Hyper-threading.

Кузьменко В.Г., март 2013 г.

9

Hyper-threading ( Hyper-threading — Гиперпоточность, официальное название Hyper-Threading Technology (HTT)) — торговая марка компании

Intel для разработанной ею реализации технологии «одновременной мультипоточности» ( Simultaneous multithreading) в процессорах на микроархитектуре NetBurst. Расширенная форма суперпоточности (Superthreading), впервые появившаяся в процессорах Intel Xeon и позднее добавленная в процессоры Pentium 4.

Эта технология увеличивает производительность процессора при определённых рабочих нагрузках путём предоставления «полезной работы» ( useful work) исполнительным устройствам (execution units), которые иначе

будут бездействовать; к примеру, в случаях кэш-промаха. Процессоры Pentium 4 (с одним физическим ядром) с включённым Hyper-threading операционная система определяет как два разных процессора вместо одного.

В процессорах Core 2 Duo поддержка технологии Hyper-threading не была реализована. В процессорах Core i3 и Core i7 снова используется Hyperthreading, при этом каждое физическое ядро процессора определяется операционной системой как два логических. Также эта технология присутствует в некоторых процессорах серии Atom.

Кузьменко В.Г., март 2013 г.

10