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

ЭВУ 2 семестр / Презентации ЭВУ в пдф / метода моховикова

.pdf
Скачиваний:
43
Добавлен:
31.05.2015
Размер:
4.4 Mб
Скачать

Рис. 2. Покомпонентная схема работа процессора

2.1. Оперативная память. Устройства ввода-вывода

Оперативная память – самый большой массив ячеек памяти со смежны-

ми адресами – реализуется, как правило, на модулях (микросхемах) динами-

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

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

тупный процессору для чтения/записи данных и чтения кода (R/W data + R program code). Единое пространство памяти с линейной адресацией (ОЗУ +

ПЗУ) дополняется устройствами хранения данных.

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

ную для окружения, и обратно.

2.2. Работа процессора

Ключевыми компонентами процессора являются арифметико-

логическое устройство (АЛУ), регистры и устройство управления. АЛУ вы-

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

висит согласованность работы частей самого процессора и его связь с други-

ми (внешними для него) устройствами. В регистрах временно хранятся теку-

11

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

числений АЛУ). Разрядность всех регистров одинакова.

Кэш данных и команд хранит часто используемые данные и команды.

Обращение в кэш происходит намного быстрее, чем в оперативную память,

поэтому, чем он больше, тем лучше.

Работает процессор под управлением программы, находящейся в опера-

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

Рис. 3. Упрощенная схема работы процессора

Также не изображен декодирующий блок, осуществляющий преобразо-

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

Блок управления помимо прочего отвечает за вызов очередной команды и определение ее типа.

Арифметико-логическое устройство, получив данные и команду, выпол-

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

стров.

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

12

называемого счетчика команд, который теперь указывает на следующую ко-

манду (если, конечно, не было команды перехода или останова).

Часто команду представляют как структуру, состоящую из записи опе-

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

2.3.1. Характеристики процессора

Тактовая частота процессора на сегодняшний день измеряется в гига-

герцах (ГГц), ранее измерялась в мегагерцах (МГц). 1 МГц = 1 млн тактов в секунду.

Процессор «общается» с другими устройствами (оперативной памятью)

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

на 8 (понятно почему, если мы имеем дело с байтами), изменчива в ходе ис-

торического развития компьютерной техники и различна для разных моде-

лей, а также не одинакова для шины данных и адресной шины.

Разрядность шины данных говорит о том, какое количество информации

(сколько байтов) можно передать за раз (за такт). От разрядности шины адре-

са зависит максимальный объем оперативной памяти, с которым процессор может работать вообще.

На мощность (производительность) процессора влияют не только его тактовая частота и разрядность шины данных, также важное значение имеет объем кэш-памяти.

3. Архитектура и микроархитектура процессора

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

13

свойства (рис. 4). В то время как микроархитектура процессора – это внут-

ренняя реализация этой программной модели (рис. 5).

Рис. 4. Программная модель

3.1. Основные микроархитектурные понятия

Конвейеризация – предполагает разбивку выполнения каждой инструк-

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

струкций, и производительность процессора можно оценивать темпом выхо-

да инструкций со всех его конвейеров. Для достижения максимальной произ-

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

перконвейерная архитектура имеет от 20 конвейеров.

Переименование регистров позволяет обойти архитектурное ограни-

чение на возможность параллельного исполнения инструкций (доступно все-

14

го лишь 8 общих регистров). При записи промежуточных результатов уста-

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

щихся на одно и тоже логическое имя регистра, при условии, что между ни-

ми нет фактических зависимостей по данным.

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

вия, и декодированная инструкция с одним операндом помещается в испол-

нительное устройство, где дожидается готовности второго операнда, выхо-

дящего с другого конвейера.

Исполнение с изменением последовательности инструкции изме-

няется порядок внутренних манипуляций данными, а внешние (шинные)

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

санном программным кодом. Свойственно RISC-архитектуре, блокирует не-

совершенства разрядностей при совместимости различного программного кода.

Предсказание переходов позволяет продолжать выборку и декодиро-

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

Исполнение по предложению предсказанные после перехода инст-

рукции не только декодируются, но и по возможности исполняются до про-

верки условий перехода. Знак «+» означает благоприятный исход, знак «–»

неблагоприятный (конвейер простаивает несколько тактов).

15

Рис. 5. Микроархитектурная реализация вычислительных процессов

3.2. Классификация архитектур процессоров

3.2.1. CISC-процессоры

Complex instruction set computer (CISC) – вычисления со сложным на-

бором команд; процессорная архитектура, основанная на усложненном набо-

ре команд. Типичными представителями CISC являются микропроцессоры семейства x86 (хотя уже много лет эти процессоры являются CISC только по внешней системе команд: в начале процесса исполнения сложные команды разбиваются на более простые микрооперации, исполняемые RISC-ядром).

3.2.2. RISC-процессоры

Reduced instruction set computer (RISC) – вычисления с упрощенным набором команд (в литературе слово «reduced» нередко ошибочно переводят как «сокращенный»). Архитектура процессоров, построенная на основе уп-

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

также отсутствием косвенной адресации. Концепция RISC разработа-

16

на Джоном Коком (John Cocke) из IBM Research, название придумано Дэви-

дом Паттерсоном (David Patterson).

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

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

полняемого программного кода. Кроме того, RISC-процессоры отличаются меньшим энергопотреблением и тепловыделением.

Среди первых реализаций этой архитектуры были процессо-

ры MIPS, PowerPC, SPARC, Alpha, PA-RISC. В мобильных устройствах ши-

роко используются ARM-процессоры.

3.2.3. MISC-процессоры

Minimum instruction set computer (MISC) – вычисления с минимальным набором команд. Дальнейшее развитие идей команды Чака Мура, который полагает, что принцип простоты, изначальный для RISC-процессоров, слиш-

ком быстро отошел на задний план. В пылу борьбы за максимальное быстро-

действие RISC догнал и перегнал многие CISC-процессоры по сложности.

Архитектура MISC строится на стековой вычислительной модели с ограни-

ченным числом команд (примерно 20–30 команд).

3.2.4. VLIW-процессоры

Very long instruction word (VLIW) – сверхдлинное командное слово.

Архитектура процессоров с явно выраженным параллелизмом вычислений,

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

ры EPIC. Ключевым отличием от суперскалярных CISC-процессоров являет-

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

мается компилятор, на что отводится существенно больше времени (качество

17

загрузки и, соответственно, производительность теоретически должны быть выше).

3.3. NetBurst – микроархитектура процессора

Архитектура NetBurst пришла на смену архитектуре P6 на рынке на-

стольных и серверных процессоров. Она не являлась развитием архитектуры

P6, а представляла собой принципиально новую по сравнению со всеми предшественниками архитектуру. Семейство процессоров Core 2 Duo и выше является преемником архитектуры NetBurst, но при этом, однако, содержит ключевые моменты, являющиеся базовыми для рассматриваемой в этой теме

архитектуре.

 

NetBurst (рабочее

название – P68) – суперскалярная гиперконвейер-

ная микроархитектура,

разработанная компанией Intel и лежавшая в осно-

ве микропроцессоров Pentium 4, Pentium D, Celeron и Xeon в недалеком про-

шлом, а сейчас, например, Atom и др.

Идеологически архитектура NetBurst характеризуется отсутствием пер-

вичного кэша инструкций, в котором хранились копии фрагментов ОЗУ и вторичного кэша, содержащие ранее исполненные инструкции и следующие за ними строки. Блок-схема данной архитектуры представлена на рис. 6 (тол-

стыми линиями изображены наиболее используемые пути).

Рис. 6. Архитектура

Netburst

18

Говоря о конструктивных моментах данной архитектуры, необходимо отметить следующие компоненты:

1. Кэш трасс совместно с блоком выборки и декодирования образует устройство предварительной обработки, выполняющее функции:

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

декодирование инструкции в микрооперации;

генерацию кодов для сложных инструкций;

доставку декодированных инструкций из кэша трассы;

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

2. ВТВ и предсказатель переходов

Статическое предсказание

Условные переходы назад сбудутся (типовой цикл)

Условные переходы вперед – нет. Кроме того, данный тип предска-

заний используется тогда, когда линейный адрес инструкции отсутст-

вует в буфере BTB.

Динамическое предсказание

Накопление статистики прохождения данных инструкций, по кото-

рой и принимается решение о том, какую ветвь прорабатывать конвей-

еру.

3.«Беспорядочное» исполняющее ядро

Имеет пиковую пропускную способность, превышающую возмож-

ности блока предварительной обработки и блока завершения.

По сравнению с суперскалярной архитектурой, стало более произ-

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

инструкций.

3.3.1. Описание работы

19

Выполнение инструкции начинается с ее выборки и декодирования. В

том случае, если соответствующая ей последовательность микроопераций отсутствует в кэше последовательностей микроопераций, инструкция считы-

вается из кэш-памяти второго уровня и декодируется. Так как инструкции,

хранящиеся в кэш-памяти, имеют физические адреса, для осуществления вы-

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

го адреса в физический адрес.

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

руется на основании предсказания перехода, осуществляемого соответст-

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

вательность длиной до четырех микроопераций, она заменяется на подпро-

грамму, хранящуюся в постоянном запоминающем устройстве (ПЗУ) микро-

кода и формирующую такие последовательности. При этом в кэше последо-

вательностей хранятся не сами микрооперации, а адрес этой подпрограммы.

Микрооперации, хранящиеся в кэше последовательностей, помещаются в очередь микроопераций.

После подготовки процессора к выполнению микроопераций (резерви-

рование ресурсов, переименование регистров), они помещаются в соответст-

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

вие с памятью, помещаются в отдельную очередь длиной 16 микроопераций,

а все остальные – в общую очередь (32 микрооперации). После определения порядка выполнения микроопераций (порядок может быть изменен в зависи-

мости от готовности данных для выполнения микроопераций, от наличия пе-

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

вующие исполнительные блоки: микрооперации, взаимодействующие с па-

мятью, отправляются в блоки генерации адреса, целочисленные операции – в

блоки АЛУ, а вещественно-численные – в блоки обработки чисел с плаваю-

20