Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Основные принципы работы современных процессоров




 

История 32-разрядных процессоров Intel началась с процессора Intel386. Он воб­рал в себя все черты своих 16-разрядных предше­ственников 8086/88 и 80286 для обеспечения совместимости с громадным объемом программного обеспечения, существовавшего на мо­мент его появления. Однако в процессорах 80386 преодолено жесткое ограниче­ние на длину непрерывного сегмента памяти – 64 Кбайт.

Про­цессор может работать в одном из двух режимов: режим реальной адресации (Real Address Mode), в котором возможна адресация до 1 Мбайт физической памяти, и защищенный режим виртуальной адресации (Protected Virtual Address Mode), в котором процессор позво­ляет адресовать до 4 Гбайт физической памяти и до 64 Тбайт виртуальной памяти каждой задачи.

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

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

В микроархитектуре процессоров пятого и шестого поколений – Pentium, Pen­tium Pro, Pentium MMX, Pentium II и Pentium III – существенное значение имеет реализация различных способов конвейеризации и распараллеливания вычисли­тельных процессов, а также других технологий, не свойственных процессорам прежних поколений.

Конвейеризация (pipelining) предполагает разбивку выполнения каждой инструк­ции на несколько этапов, причем каждый этап выполняется на своей ступени кон­вейера процессора. При выполнении инструкция продвигается по конвейеру по мере освобождения последующих ступеней. Таким образом, на конвейере одно­временно может обрабатываться несколько последовательных инструкций, и производительность процессора можно оценивать темпом выхода выполненных инструкций со всех его конвейеров. Для достижения максимальной производи­тельности процессора – обеспечения полной загрузки конвейеров с минимальным числом лишних штрафных циклов (penalty cycles) – программа должна состав­ляться с учетом архитектурных особенностей процессора. Конечно, и код, сгене­рированный обычным способом, будет исполняться на процессорах классов Pen­tium и Р6 достаточно быстро. Конвейер «классического» процессора Pentium имеет пять ступеней. Конвейеры процессоров с суперконвейерной архи­тектурой (superpipelined) имеют большее число ступеней, что позволяет упростить каждую из них и, следовательно, сократить время пребывания в них инструкций.

Скалярным называют процессор с единственным конвейером, к этому типу отно­сятся все процессоры Intel до 486 включительно. Суперскалярный (superscalar) процессор имеет более одного (Pentium – два) конвейера, способных обрабаты­вать инструкции параллельно. Pentium является двухпотоковым процессором (имеет два конвейера), Pentium Pro – трехпотоковым.

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

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

Предсказание переходов (branch prediction) позволяет продолжать выборку и деко­дирование потока инструкций после выборки инструкции ветвления (условного перехода), не дожидаясь проверки самого условия. В процессорах прежних поко­лений инструкция перехода приостанавливала конвейер (выборку инструкций) до исполнения собственно перехода, на чем, естественно, терялась производи­тельность. Предсказание переходов направляет поток выборки и декодирования по одной из ветвей. Статический метод предсказания работает по схеме, заложен­ной в процессор, считая, что переходы по одним условиям, вероятнее всего, про­изойдут, а по другим – нет. Динамическое предсказание опирается на предысто­рию вычислительного процесса – для каждого конкретного случая перехода накапливается статистика поведения, и переход предсказывается, основываясь именно на ней.

Исполнение по предположению, называемое также спекулятивным (speculative execution), идет дальше – предсказанные после перехода инструкции не только декодируются, но и по возможности исполняются до проверки условия перехода. Если предсказание сбывается, то труд оказывается ненапрасным, если не сбыва­ется – конвейер оказывается недогруженным и простаивает несколько тактов.

Исполнение с изменением последовательности инструкций (out-of-order execution), свойственное RISC-архитектуре, теперь реализуется и для процессоров х86. При этом изменяется порядок внутренних манипуляций данными, а внешние (шин­ные) операции ввода/вывода и записи в память выполняются, конечно же, в по­рядке, предписанном програм­мным кодом. Однако эта способность процессора в наибольшей степени может блокироваться несовершенством программного кода (особенно 16-битных приложений), если он генерируется без учета возможности изменения порядка.

Технология Intel MMX улучшает компрессию/декомпрессию видео, работу с изображениями, шифрование и обработку сигналов ввода/вывода – т.е. все мультимедиа-операции, операции связи и сетевые взаимодействия. Основа MMX расширения процессорного ядра заключается в технологии обработки множественных данных в одной инструкции (Single Instruction Multiple Data - SIMD). Сегодняшние мультимедийные и коммуникационные приложения часто используют повторные циклы, выполнение которых, при использовании в менее чем 10% программных кодов, отнимает до 90% процессорного времени. Процесс SIMD (один поток команд и множество потоков данных) дает возможность одной инструкции исполнять одну и ту же функцию с различными данными и их частями. SIMD позволяет чипу уменьшить количество циклов с интенсивными вычислениями, характерными для обработки видео, аудио, графической информации и анимации.

Технологии MMX и SIMD требуют добавления все новых и новых инструкций (уже сейчас их 57 для MMX и 70 – для SIMD в Pentium III), обеспечивающих оптимальное выполнение алгоритмических задач. А при добавлении новых инструкций необходима переработка компи­ляторов всех языков программирования для введения и поддержки соответствующих инструкций и технологий. Конкуренты Intel предлагают альтернативные решения, при которых требуется минимальное число новых инструкций или вообще не требуется переработка компиляторов, а повышение производительности процессоров и скорости выполнения программ и вычислений достигается за счет внутренней оптимизации процессорного ядра. Так, технология 3D Now (AMD) позволяет производить две операции с плавающей точкой вместо одной у Pentium, а число новых инструкций около 30 при относительно равной стоимости. Дальнейшее увеличение числа инструкций при каждом введении новых технологий обработки данных может привести Intel к тому, что микропроцессоры станут очень «тяжелыми» и перегруженными объемом поддерживаемых инструкций, а компилирующие системы для них (например от Microsoft) – еще тяжелее и неповоротливее, чем в настоящее время, а все нарастающая тактовая частота и произво­дительность процессора будет «съедаться» непомерно большими программными продуктами, так что эффективность нововведений может оказаться невысокой.

 

Особенности процессора Intel Pentium 4

 

Intel Pentium 4 – это первый процессор в семействе 32-битных процессоров седьмого поколения от Intel.

Несмотря на то что Intel Pentium 4 является процессором с архитектурой IA-32, характерной для 32-разрядных процессоров, последняя сильно отличается от архитектуры процессоров семейства P6 и даже получила специальное название – NetBurst.

Рассмотрим основные новшества, появившиеся в NetBurst.

Hyper-Pipelined Technology. Суть технологии Hyper-Pipelined (гиперконвейер) заключается в том, что Intel Pentium 4 имеет очень длинный конвейер, состоящий из 20 стадий. Для сравнения: конвейер у процессоров семейства P6 состоит всего из 10 стадий.

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

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

В Intel Pentium 4 интегрирован более совершенный механизм предсказания переходов. Количество ошибочно предсказанных переходов у него в среднем на 33% меньше, чем у процессоров с архитектурой P6.

Execution Trace Cache. Execution Trace Cache – это название и одновременно способ реализации кэша инструкций в архитектуре NetBurst. Смысловое содержание этого термина можно перевести как «кэш трассировки выполняемых микроопераций».

В Execution Trace Cache хранятся микрооперации, которые были получены в результате декодирования входного потока инструкций исполняемого кода и готовы для передачи на выполнение конвейеру. Емкость Execution Trace Cache составляет 12 Кбайт.

Execution Trace Cache устроен таким образом, что вместе с кодом каждой микрооперации в нем хранятся результаты выполнения ветвей кода для этой микрооперации – в той же строке кэша (cache line), что и сама микрооперация. Это позволяет легко и своевременно выявлять микрооперации, которые никогда не будут выполнены, и быстро удалять их из кэша инструкций, а также оперативно «вычищать» Execution Trace Cache от «лишних» микроопераций в случае обнаружения ошибочно предсказанного перехода. Последнее обстоятельство особенно важно, так как позволяет сократить общее время реинициализации конвейера после его остановки в результате выполнения перехода, который был «угадан» неправильно.

Rapid Execution Engine. Так, в архитектуре NetBurst назван блок выполнения арифметико-логических операций. Конструктив Rapid Execution Engine довольно оригинален: во-первых, он состоит из двух АЛУ-модулей, работающих параллельно; во-вторых, рабочая тактовая частота этих АЛУ-модулей в два раза выше тактовой частоты процессора – это достигается за счет регистрации как переднего, так и заднего фронта задающего тактового сигнала. Таким образом, каждый АЛУ-модуль способен выполнить до двух целочисленных операций за один рабочий такт процессора, а весь Rapid Execution Engine в целом – до четырех таких операций.

Advanced Dynamic Execution. Advanced Dynamic Execution – это обобщенное название механизма динамического выполнения команд, используемого в NetBurst. Аналогичный механизм используется в процессорах семейства P6, однако, в Intel Pentium 4 он улучшен.

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

Технология м ножественного предсказания ветвлений предсказывает прохождение программы по нескольким ветвям, процессор может предвидеть разделение потока инструкций, что дает возможность с 90%-ной точностью предсказать, в какой области памяти можно найти следующие инструкции. Это оказывается возможным, поскольку в процессе исполнения инструкции процессор просматривает программу на несколько шагов вперед. Технология анализа потока данных позволяет проанализировать код и составить график, т.е. новую оптимальную последовательность исполнения инструкций, независимо от порядка их следования в тексте программы. Спекулятивное выполнение повышает скорость выполнения за счет выполнения до 5 инструкций одновременно по мере их поступления в оптимизированной последовательности – т.е. спекулятивно. Это обеспечивает максимальную загруженность процессора и увеличивает скорость исполнения программы. Поскольку выполнение инструкций происходит на основе предсказания ветвлений, результаты сохраняются как «спекулятивные» – промежуточные с возможным отвержением из-за нарушения последовательности инструкций – промахов в предсказании. На конечном этапе порядок инструкций и результатов их выполнения восстанавливается до первоначального.

 

Регистры процессора

 

Регистр – разновидность ОЗУ, встроенного в микропроцессор.

Рассмотрим состав и назначение регистров на примере микро­процессоров фирмы Intel.

Процессоры х86 имеют регистры, подразделяющиеся на следующие категории:

 регистры общего назначения (общие регистры данных и адресов);

 указатель команд (инструкций);

 регистры сегментов;

 регистр флагов;

 управляющие регистры;

 системные адресные регистры;

 регистры отладки;

 регистры тестирования;

 модельно-специфические (зависящие от конкретной модели процессора) регистры.

На рис. 2 изображены основные регистры 32-разрядных процессоров. Они будут подробно рассмотрены ниже.

 

 

Рис. 2. Основные регистры 32-разрядных процессоров

 





Поделиться с друзьями:


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 1878 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Бутерброд по-студенчески - кусок черного хлеба, а на него кусок белого. © Неизвестно
==> читать все изречения...

2438 - | 2357 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.