microbik.ru
1 2 3



Представление о микропроцессоре
* * * * *

1. Принцип работы

2. Принцип вычислений

3. Шины процессора

4. Адресация

5. Разрядность

6. Кэш – память

7. Технологии расширения команд процессора

8. Hyper – Threading

9. Классический поток команд процессора

10. Поток команд процессора

11. Кодовые названия

12. Картриджи процессоров

13. Охлаждение процессоров

14. Разгон процессора

* * * * *


  1. Принцип работы


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

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

Логический адрес исполняемой команды (инструкции) хранится в регистре Instruction Pointer (указатель инструкции) – счетчике команд. После исполнения значение счетчика увеличивается на длину инструкции, указывая на начало следующей инструкции.

Существует два типа инструкций:

- линейные. Выполняются в соответствии с их размещением в памяти по нарастанию адреса;

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

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

Работа над числами с плавающей точкой (в виде мантиссы и порядка) возлагается на математический сопроцессор. Это набор 80 – битных регистров и арифметическое устройство, которое кроме четырех арифметических действий вычисляет значение квадратного корня, логарифмов, степеней чисел и тригонометрических функций.
Архитектура и микроархитектура
Архитектура процессора ПК определяется набором команд, регистрами и структурой данных, а микроархитектура – схемотехническая реализация его архитектуры. Новые микроархитектуры создавались с целью получения высокопроизводительных процессоров, например Intel NetBurst в процессорах Pentium IV, или P6 в более старых процессорах.

Исполнительные блоки процессора(для обработки целых чисел и чисел с плавающей запятой) должны непрерывно получать необходимые команды. В микроархитектуре Intel NetBurst применено несколько новинок, обеспечивающих постоянную загрузку исполнительных блоков. Среди них - системная шина с частотой 400 МГц, кэш – память L2 с улучшенной передачей данных (Advanced Transfer Cache), кэш – память L1 с отслеживанием исполнения и уменьшенным временем задержки для данных, улучшенное динамическое исполнение.
2. Принцип вычислений
Конструкторно процессор представляет собой пластину кремния с несколькими сотнями контактов, на которой размещается несколько миллионов транзисторов. Количество контактов определяется разъемом материнской платы. Транзисторы и контакты размещены в корпусе, на который устанавливается радиатор с вентилятором (эта конструкция называется кулером, от англ. сooler – охладитель).

Принцип работы процессора состоит в следующем. Данные, с которыми работает процессор, размещаются в его регистрах (память процессора) или микрокоманде, в оперативной памяти ПК. Если информация хранится в устройствах внешней памяти, например на жестком диске, она должна быть считана в оперативную память, из нее – в кэш процессора, а уже потом в регистры процессора. Микрокоманды процессора заносят числа в его регистры, обрабатывают их, а затем выдают результат, например в оперативную память. Чтобы сложить целые числа 5 и 3, в процессор, кроме них, поступает команда «сложить числа». На выходе получается результат – целое число 8.
3. Шины процессора
В основу архитектуры современных ПК положен магистрально – модульный принцип. Модульная архитектура предполагает магистральный (шинный) принцип обмена информацией между устройствами с помощью следующих шин:

- данных;

- адреса;

- управления.

Физически шины представляют собой многопроводные линии.
Шина данных
По этой шине данные, например считанные из оперативной памяти блоки информации, могут быть переданы процессору, а затем после обработки отправлены обратно в оперативную память для временного хранения. Основная характеристика шины данных – разрядность, которая определяется разрядностью процессора (количеством двоичных разрядов, обрабатываемых за один такт). Чем выше разрядность, тем больше пропускная способность. Процессоры x486 имели 32 – разрядные шины данных, Pentium – 64 – разрядные, а Pentium III – двойные 64 – разрядные .
Шина адреса
Известно, что каждое устройство ПК или ячейка оперативной памяти имеет свой адрес. Процессор выбирает устройства или ячейки памяти, в которые записывает или из которых считывает информацию по шине данных. Адрес же передается по адресной шине только в одном направлении от процессора к оперативной памяти и устройствам.

Разрядность шины адреса обуславливает количество ячеек оперативной памяти с уникальными адресами, которые можно рассчитать по формуле 2р, где р – разрядность шины адреса. Например, для 32 – разрядной шины адреса количество адресуемых ячеек памяти составляет 4 294 967 296 (232).

Шина управления

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

Все действия по обработке данных в процессоре выполняются командами, представленными в определенном формате – комбинации размера всех полей и их расположения в команде. Команда делится на две области:

- область кода операции (указывает, что вообще необходимо делать);

- область адресов (операнд, с которым это надо делать).

Область адресов состоит из трех полей: в первых двух хранятся адреса операндов, а в третье записывается адрес результата действия над операндами.

В двухадресных командах область адресов состоит из двух полей: полей адресов первого и второго операндов, а адрес результата записывается в поле адреса первого операнда. В одноадресных командах область адресов состоит из одного поля, в котором находиться адрес операнда, а адрес второго операнда и результата совпадает с сумматором. Есть и безадресные команды.

Существует несколько типов адресации одного операнда:

- непосредственная адресация (вместо адреса операнда в команде указывается сам операнд (целое число));

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

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

Для нескольких операндов, или массивов, обычно указывается адрес массива и номер (индекс) элемента. Начальный адрес указывается в команде, где также имеется поле с номером регистра, в котором находится значение индекса или номер ячейки в массиве относительно начального адреса – модификация адресов. Существует и относительная адресация, когда в регистре указан начальный адрес, в команде – адрес этого регистра и смещение относительно начального адреса. Все остальные адреса операндов получатся суммированием адреса и смещения.
5. Разрядность
Первые процессорные регистры могли хранить лишь 4 – битные числа. Затем появились 8 – и 16 – битные процессоры, с появлением процессора x386 был реализован 32 – битный режим, что позволило работать с числами размерностью свыше двух миллиардов.
6. Кэш – память
Это статическая память (Statiс RAM – SRAM), которая, в отличие от динамической памяти, не требует периодической регенерации (обновления). Время доступа у этой памяти не более 2 нс., т. е. она может синхронно работать с процессором на частоте 500 МГц и более. Контроллер кэш – памяти находится в чипе северного моста чипсета материнской платы.

В x386 процессорах кэш – память объемом 128 Кб располагалась на материнской плате. Начиная с процессоров x486, появился дополнительный кэш в процессоре, работающий на его частоте, - кэш первого уровня (Level I – LI). На материнской плате устанавливается кэш второго уровня (L2). В большинстве современных процессоров кэш LI и L2 встроены в ядро процессора. Причем если в Pentium II и Pentium III кэш второго уровня работает на половинной частоте процессора, то у Celeron, AMD K6 – III, Athlon и Pentium IV – на частоте процессора, что положительно сказывается на производительности.
7. Технологии расширения команд процессора
Первой такой выделенной технологией можно считать MultiMedia eXtension (MMX) – расширение базового набора команд процессора (57 команд для обработки графики и звука). Одной командой можно обрабатывать множество данных, что существенно повышает производительность (SIMD – Single Instruction, Many Data – одна команда, много данных).

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

Из технологии SIMD вышли две конкурирующих системы для поточной обработки данных.

Так, в процессоры AMD K6 – 2, кроме блока ММХ – команд, был добавлен блок 3D Now!, отвечающий за обработку трехмерных изображений. В него включено 27 новых команд для обработки чисел с плавающей запятой, и, в отличие от ММХ, 3D Now! Не поддерживает работу с процессором.

В процессорах Pentium III появился универсальный мультимедийный ускоритель, работающий по принципу SIMD, но не зависящий от ядра. Это стало возможно благодаря новому блоку SSE (Streaming SIMD Extensions – поточное SIMD – расширение). В него входят 70 команд, оперирующих 8 специальными 128 – битными регистрами. SSE позволяет выполнять одновременные операции над содержимым двух регистров.
8. Hyper – Threading
До недавнего времени повышение скорости работы процессоров связывали исключительно с увеличением их тактовой частоты и размера кэша. Но одновременное выполнение нескольких потоков также приводит к росту скорости работы процессора, причем более существенному. Именно в обработке нескольких потоков заключается суть новой технологии Hyper – Threading.

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

Что-то подобное многопоточности предлагает и новая технология от компании Intel под названием Hyper – Threading. Появилась она в ответ на проблему неполного использования исполнительных блоков процессора. Hyper – Threading – это название технологии одновременной многопоточности (Simultaneous Multi – Threading – SMT). Один физический процессор, по сути, эмулирует ОС как два логических. В процессоре с Hyper – Threading каждый логический процессор имеет свой набор регистров (включая и отдельный счетчик команд), а чтобы не усложнять технологию, в ней не реализуется одновременное исполнение некоторых команд в двух потоках.
9. Классический поток команд процессора
Когда команды извлекаются из кэша (или оперативной памяти), их необходимо декодировать и отправить на исполнение. Эти операции (получение команд, декодирование и отправка на исполнение) выполняются на препроцессоре. Из препроцессора они направляются на постпроцессор, где и выполняются. После этого результат попадает обратно в кэш (оперативную память).

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

  1. Извлечение из кэша (оперативной памяти).

  2. Декодирование (разборка команды).

  3. Исполнение команды (применение действий).

  4. Запись в кэш (оперативную память).

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

Технология гиперконвейерой обработки предполагает удвоение длины конвейера по сравнению с предыдущей микроархитектурой Р6. например, один из основных элементов конвейера – блок предсказания ветвлений и восстановления работы – разбит на 20 тактов.

В Pentium IV на ступени исполнения используется меньшее количество функциональных блоков процессора. Но каждый из них обладает более длинным и более коротким конвейером. Процессор Pentium IV может одновременно выполнять на разных ступенях по 126 инструкций. Кроме того, в Pentium IV кэш первого уровня разделен и его кэш команд находится фактически на препроцессоре. Он называется кэшем с отслеживанием (trace cache) и оказывает влияние и на конвейер, и на основной поток команд. Эта кэш - память содержит декодированные команды х86 (микрокоманды), что устраняет задержку на расшифровку кодов команд. Исполнительные устройства процессора получают непрерывный поток команд, а общее время восстановления работы при неправильном предсказании ветвления существенно сокращается.

В процессорах с микроархитектурой х86, таких как Pentium III или Athlon, команды поступают в декодер из кэша команд, где они разбиваются на меньшие части (микрокоманды). Эти микрокоманды применяются при внеочередном исполнении команд, исполнительное устройство выполняет их планирование, исполнение и сброс. Такое разбиение имеет место, когда процессор выполняет инструкцию.
КЭШ L1



Декодирование

инструкций



Планирование



Исполнение



Сброс

(обобщенная схема работы процессора х86)
Кэш команд Pentium IV принимает транслированные и декодированные микрокоманды, готовые к передаче на внеочередное исполнение, и формирует из них мини – программы («отслеживания» - traces).

Декодирование

инструкций



Тrace Сache



Планирование



Исполнение



Сброс

(схема работы процессора Pentium IV)
По мере выполнения препроцессором накопленных отслеживаний кэш с отслеживаниями посылает до трех микрокоманд за такт на внеочередное устройство исполнения. В этом случае команды не нужно транслировать или декодировать. И только в случае промаха кэше первого уровня (L1) препроцессор начнет выбирать и декодировать инструкции из кэша второго уровня (L2) – к основному конвейеру добавляется дополнительные 8 ступеней.

Кэш с отслеживаниями работает в двух режимах:

- исполнительном (execute mode);

- построения отслеживающих сегментов (trace segment build mode).

В режиме исполнения кэш L1 передает команды исполнительным устройствам. Когда наступает промах этого кэша, он переходит в режим отслеживающих сегментов. В этом режиме препроцессор выбирает команды из кэша L2, транслирует их в микрокоманды, создает отслеживающий сегмент, который затем перемещается в кэш с отслеживающими и далее выполняется. Кэш – память уровня L2 с улучшенной передачей данных объемом 256 Кб ускоряет обмен информацией между кэш – памятью уровня 2 и ядром процессора.

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

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

следующая страница >>