ЭВУ 2 семестр / Презентации ЭВУ в пдф / метода моховикова
.pdf
Рис. 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
