Реферат: Архитектура IA-32

 TOC o «1-3» h z u Введение. PAGEREF _Toc89452074 h 3

ТехнологияSIMD… PAGEREF _Toc89452075 h 4

Краткоеобозрение технологий SIMD… PAGEREF _Toc89452076 h 5

ТехнологияMMX… PAGEREF _Toc89452077 h 5

SSE… PAGEREF _Toc89452078 h 5

SSE2. PAGEREF _Toc89452079 h 6

SSE3. PAGEREF _Toc89452080 h 6

МикроархитектураIntelNetBurstPAGEREF _Toc89452081 h 7

Цели,для которых была разработана Микроархитектура IntelNetBurstPAGEREF _Toc89452082 h 7

Обзорконвейера микроархитектуры IntelNetBurstPAGEREF _Toc89452083 h 7

Блокначальной загрузки. PAGEREF _Toc89452084 h 8

Беспорядочноеядро. PAGEREF _Toc89452085 h 9

Секцияизъятий. PAGEREF _Toc89452086 h 9

Обзорблока начальной загрузки конвейера. PAGEREF _Toc89452087 h 11

Предвыборка. PAGEREF _Toc89452088 h 11

Декодер. PAGEREF _Toc89452089 h 11

Исполнительныйкэш трасс. PAGEREF _Toc89452090 h 11

Предсказаниеветвей. PAGEREF _Toc89452091 h 11

Обзорисполнительного ядра. PAGEREF _Toc89452092 h 13

Задержкаинструкций и производительность. PAGEREF _Toc89452093 h 13

Исполнительныеблоки и выводные порты… PAGEREF _Toc89452094 h 13

Кэши. PAGEREF _Toc89452095 h 15

Предвыборкаданных. PAGEREF _Toc89452096 h 16

Плюсыи минусы программной и аппаратной предвыборки. PAGEREF _Toc89452097 h 16

Загрузкаи хранение. PAGEREF _Toc89452098 h 18

Управлениехранением… PAGEREF _Toc89452099 h 18

ТехнологияHyper-Threading. PAGEREF _Toc89452100 h 19

Ресурсыпроцессора и технология Hyper-Threading. PAGEREF _Toc89452101 h 20

Реплицированныересурсы… PAGEREF _Toc89452102 h 20

Разделенныересурсы… PAGEREF _Toc89452103 h 20

Разделяемыересурсы… PAGEREF _Toc89452104 h 20

Микроархитектураконвейера и технология НТ. PAGEREF_Toc89452105 h 21

Блокначальной загрузки конвейера. PAGEREF _Toc89452106 h 21

Исполнительноеядро. PAGEREF _Toc89452107 h 21

Извлечение. PAGEREF _Toc89452108 h 21

Списокиспользованной литературы… PAGEREF_Toc89452109 h 22

<span Arial",«sans-serif»; mso-fareast-font-family:«Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language: RU;mso-fareast-language:RU;mso-bidi-language:AR-SA;mso-no-proof:yes">
Введение

В этой работепроводиться обзор основных моментов необходимых для оптимизации программногообеспечения для текущего поколения процессоров основанных на технологии IA-32, таких как IntelPentium 4, IntelXeonиIntelPentiumM. Работа дает базу дляпонимания правильного подхода к кодированию для технологии IA-32.

Ключевые моменты,повышающие производительность процессоров текущего поколения на базе IA-32:

·<span Times New Roman"">        

SIMDподдерживающихтехнологию MMX,потоковые расширения инструкций SIMD(SSE),потоковые расширения инструкций SIMDвторой редакции (SSE2) и потоковые расширения инструкций SIMDтретьейредакции (SSE3)

·<span Times New Roman"">        

·<span Times New Roman"">        

Hyper Threading

Процессоры IntelPentium 4 и IntelXeonпостроенына микроархитектуре NetBurst.Микроархитектура процессора IntelPentiumMосновывается на балансе производительности и низкогоэнергопотребления.

<span Arial",«sans-serif»;mso-fareast-font-family: «Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Технология SIMD

Один из путейк увеличению производительности процессора – это использование технологиивычислений основанной на том, что одна команда оперирует многими данными (single-instruction, multipledata (SIMD)).

Вычисления спомощью SIMD(рисунок 1) представлены в архитектуре IA-32 технологией MMX.Технология MMXпозволяетвычислениям SIMDпроизводиться над упакованными целыми числами в виде байтов,слов и двойных слов. Эти целые содержаться в наборе из восьми 64-битныхрегистрах называемых MMXрегистрами (рисунок 2).

В процессоре IntelPentiumIII технология SIMDбыларасширена с помощью потоковых расширений SIMD (SSE).SSE позволяет производить вычисления SIMD над операндами, содержащими четыреупакованных элемента с плавающей точкой одинарной точности. Эти операнды могутхраниться как в памяти, так и в одном из 128-битных регистров называемых XMMрегистрами(рисунок 2). SSE также расширяет вычислительные способности SIMD, путемдобавления дополнительных 64-битных MMX команд.

Рисунок 1показывает типичную схему вычислений SIMD. Два блока по четыре упакованных элемента данных (X1, X2, X3, X4 и Y1, Y2, Y3,Y4), обрабатываемыхпараллельно с помощью одной операцией над каждой парой элементов данных (X1 и Y1, X2 и Y2, X3 и Y3 и X4 и Y4). Результатычетырех параллельных вычислений сортируются в набор из четырех элементовданных.

<img src="/cache/referats/18656/image002.jpg" v:shapes="_x0000_i1025">

Рисунок1. Схема вычислений SIMD

В процессорах Pentium 4 и IntelXeonмодельвычислений SIMDбыла далее расширена с помощью SSE2 и SSE3.

SSE2 работаетс операндами, хранящимися в памяти или в XMM регистрах. Технология SSE2 расширяет вычисления SIMDдляработы с упакованными элементами данных с плавающей точкой двойной точности и128-битными упакованными целыми числами. В SSE2 введены 144 дополнительные команды для работы с двумяэлементами данных с плавающей точкой двойной точности или над упакованнымицелыми числами в виде шестнадцати байтов, восьми слов, четырех двойных слов и двух четверных слов.

SSE3 улучшает x87,SSE и SSE2 с помощью добавления тринадцати инструкций, позволяющих повыситьпроизводительность приложений в специфичных областях. Таких как: обработкавидео, комплексная арифметика синхронизация потоков. SSE3 дополняет SSE и SSE2 спомощью команд ассиметричной обработки данных SIMD, команд позволяющих горизонтальныевычисления, а так же команд позволяющих избежать загрузки в кэш разделенныхнитей.

Полный набортехнологий SIMD (MMX, SSE, SSE2, SSE3)в технологии IA-32 даетвозможность программисту разрабатывать алгоритмы, совмещающие операции надупакованными 64-битными и 128-битными целыми, и операндами с плавающей точкойодинарной и двойной точности.

<img src="/cache/referats/18656/image004.jpg" v:shapes="_x0000_i1026">

Рисунок2. Регистры SIMD

SIMDулучшаетвыполнение 3D графики,распознавание речи, обработки изображений, научных приложений и приложенийудовлетворяющих следующим характеристикам:

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

Инструкции SIMDдляработы с числами с плавающей точкой полностью поддерживают стандарт IEEE754«для бинарной арифметики чисел с плавающей точкой». Они доступны во всехрежимах работы процессора.

Технологии SSE, SSE2 и MMX– этоархитектурные дополнения архитектуры IA-32. SSEи SSE2 также включают инструкции кэширования и организации памяти, которыемогут улучшить использование КЭШа и производительность приложений.

Краткое обозрение технологий SIMDТехнология MMX

Технология MMX основывается на:

·<span Times New Roman"">        

MMX-регистрах

·<span Times New Roman"">        

SIMD над упакованными целыми в виде байтов, слов идвойных слов

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

SSE

SSE основывается на:

·<span Times New Roman"">        

XMM-регистрах

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

SIMD

Инструкции SSEполезныпри обработке трехмерной геометрии, 3D-рендеринга, распознавания речи, а  также для кодирования и декодирования видео.

SSE2

SSE2 добавляют следующее:

·<span Times New Roman"">        

·<span Times New Roman"">        

SIMD надцелыми в виде шестнадцати байт, восьми слов, четырех двойных слов или двухчетверных слов.

·<span Times New Roman"">        

SIMDнад64-битными целочисленными операндами

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

Инструкции SSE2 полезны для обработки 3Dграфики,кодирования и декодирования видео и шифрования.

SSE3

SSE3 добавляет следующее:

·<span Times New Roman"">        

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

·<span Times New Roman"">        

·<span Times New Roman"">        

x87FPU–инструкцию для конвертирования в целое независимо от FCW (floating-pointcontrolword)

·<span Times New Roman"">        

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

<span Arial",«sans-serif»;mso-fareast-font-family: «Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Микроархитектура IntelNetBurst

В этом разделеописываются основные моменты микроархитектуры IntelNetBurst. Он дает техническуюбазу необходимую для понимания оптимизационных рекомендаций и правилкодирования процессоров IntelPentium4 и IntelXeon.

МикроархитектураIntelNetBurst она спроектированадля достижения высокой производительности при целочисленных вычислениях ивычислениях операндов с плавающей точкой на высоких частотах. Она основываетсяна следующих моментах:

·<span Times New Roman"">        

·<span Times New Roman"">        

IntelNetBurst

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

Цели, для которых была разработана Микроархитектура IntelNetBurst

Цели, для которых быларазработана Микроархитектура IntelNetBurst:

·<span Times New Roman"">        

IA-32 и приложений основанныхна SIMDна высокопроизводительных системах

·<span Times New Roman"">        

Преимущества микроархитектуры IntelNetBurst:

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

Обзор конвейера микроархитектуры IntelNetBurst

Конвейермикроархитектуры IntelNetBurstсостоит из:

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

Блок начальнойзагрузки поставляет инструкцию в программном порядке в беспорядочное ядро. Оновыбирает и декодирует инструкции IA-32. Декодированные инструкции переводятся в микрокоманды.Основная задача блока начальной загрузки состоит в доставлениинепрекращающегося потока микрокоманд в исполнительное ядро в программномпорядке.

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

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

Рисунок 3отображает схему основных функциональных блоков конвейера микроархитектуры IntelNetBurst. Ниже перечисленныеразделы проводят обзор каждого из блоков.

<img src="/cache/referats/18656/image006.jpg" v:shapes="_x0000_i1027">

Рисунок3. Микроархитектура IntelNetBurst

Блок начальной загрузки

Блок начальной загрузкимикроархитектуры IntelNetBurstсостоит из двух частей:

·<span Times New Roman"">        

·<span Times New Roman"">        

Он выполняетследующие функции:

·<span Times New Roman"">        

IA-32 предпочтительных для исполнения

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

Блок начальнойзагрузки разработан для избежания двух проблем являющихся источниками задержек:

·<span Times New Roman"">        

·<span Times New Roman"">        

Инструкциидекодируются и выбираются «переводящим» движком. «Переводящий» движок затемпреобразует декодированные инструкции в последовательности микрокомандназываемые трассами. Далее трассы помещаются в исполнительный кэш трасс.

Исполнительныйкэш трасс сохраняет микрокоманды на пути исполнения потока программы, гдерезультаты ветвлений в коде уже интегрированы в ту же нить КЭШа. Этоувеличивает поток инструкций из КЭШа и позволяет использовать объем КЭШа болееэффективно, так как нет необходимости хранить в нем инструкции, которыеответвились и никогда не будут обработаны.

Кэш трассможет доставлять до трех микрокоманд к ядру за такт. Исполнительных кэш трасс и«переводящий» движок имеют кооперированный механизм предсказания ветвей. Точкиветвлений предсказываются на основе их линейного адреса (используя логикупредсказания ветвлений и выборок) так скоро, как это возможно. Точки ветвленийберутся из исполнительного КЭШа трасс, если они были кэшированы, или изиерархии памяти. Информация «переводящего» движка о ветвлении используется приформировании трасс по наилучшим маршрутам.

Беспорядочное ядро

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

Ядроспроектировано так, чтобы организовать параллельное выполнение. Оно можетотправлять до шести микрокоманд в порты вывода за цикл (рисунок 4). Заметим,что шесть микрокоманд превосходят мощность КЭШа трасс и блока изъятия. Большаямощность ядра сделана, чтобы  не обращатьвнимание на нагрузки более трех микрокоманд и для достижения большейпроизводительности выдачи с помощью гибкости при выдаче микрокоманд в различныеисполнительные порты.

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

Секция изъятий

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

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

Секция изъятиятак же наблюдает за ветвлениями и отсылает обновленную информацию о точкахветвления в буфер точек ветвлений (BTB). Это позволяет обновлять историю ветвлений. Рисунок 3отображает пути часто го исполнения внутри микроархитектуры IntelNetBurst, такие какисполнительные циклы, взаимодействующие с иерархией уровней КЭШа и системнойшиной.

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

<span Arial",«sans-serif»;mso-fareast-font-family: «Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Обзор блока начальной загрузки конвейера

Следующаяинформация о работе блока начальной загрузки будет полезна для обеспеченияпрограммного обеспечения возможностями предвыборки, предсказания ветвлений иоперациями для исполнительного КЭШа трасс.

Предвыборка

МикроархитектураIntelNetBurst использует следующиемеханизмы предвыборки:

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

1.<span Times New Roman"">     

2.<span Times New Roman"">     

Аппаратныйвыборщик инструкций читает инструкции по пути, предсказанному в буфере точекветвления (BTB), впотоковые буферы инструкций. Данные считываются в 32-байтные блоки, начиная садреса точки. Второй и третий механизм будут рассмотрены позднее.

Декодер

Блок начальнойзагрузки микроархитектуры IntelNetBurstимеет один декодер, который декодирует инструкции с максимальной частотой водну инструкцию за такт. Некоторые сложные инструкции должны поддерживаться спомощью ROM-микрокода.Операции декодера связанны с КЭШем трасс.

Исполнительный кэш трасс

Исполнительныйкэш трасс (TC) – этоосновной кэш инструкций в микроархитектуре IntelNetBurst. Кэш трасс хранит декодированные инструкции(микрокоманды) IA-32.

В реализациипроцессоров IntelPentium4 и IntelXeon,кэш трасс может хранить до 12 тысяч микрокоманд и выдавать до трех микрокомандза цикл. Кэш трасс не хранит все микрокоманды необходимые для обработки висполнительном ядре. В некоторых ситуациях, исполнительному ядру необходимовыполнить поток микрокода, вместо трасс микрокоманд, хранящихся в КЭШе трасс.

Процессоры IntelPentium 4 и IntelXeonоптимизированыдля выполнения часто-используемых IA-32 инструкций, в то время как только некоторые инструкциивовлекают в процесс декодирования ROM-микрокода.

Предсказание ветвей

Предсказаниеветвей очень важно для производительности процессоров с большим конвейером. Этопозволяет процессору начать работу задолго до того как будет дотошно известенрезультат ветвления. Задержка при ветвлении – это расплата за неправильноепредсказание ветвление. Для процессоров IntelPentium 4 и IntelXeonзадержка при правильном предсказании может быть нулевой. Задержка же принеправильном предсказании может быть множество циклов, обычно она равна глубинеконвейера.

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

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

·<span Times New Roman"">        

BTB)

·<span Times New Roman"">        

·<span Times New Roman"">        

·<span Times New Roman"">        

Статический предсказатель. Как толькоинструкция ветвления декодирована, направление ветви (вперед или назад)становиться известным. Если BTBнет упоминаний об этом ветвлении, статический предсказатель делает предсказание,основываясь на направлении ветви. Механизм статических предсказанийпредсказывает задние условные цели (например, с отрицательным перемещением,такие как ветви оканчивающиеся циклом) как основные. Вперед направленные ветвипредсказываются как не основные.

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

Буфер точек ветвлений. Если доступнаистория ветвлений, процессор может предсказать итог ветвления даже раньше, чеминструкция ветвления будет декодирована. Процессор использует таблицу историйветвлений и BTBдля предсказания направления ветвлений, основываясь налинейном адресе инструкции. Как только ветвь изъята, BTBобновляетадреса точек.

Стек возврата. Возвраты происходятвсегда. Но с тех пор как процедура может быть вызвана из нескольких мест,технология предсказания одной точки не удовлетворяет потребностям. Процессоры IntelPentium 4 и IntelXeonстеквозвратов, который может предсказывать адрес возврата, для нескольких мествызова процедуры. Это увеличивает выгоду от использования развернутых цикловсодержащих вызовы функции. Это так же ослабляет необходимость использованияближних процедур, так как уменьшена расплата за возврат из дальних процедур.

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

<span Arial",«sans-serif»;mso-fareast-font-family: «Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Обзор исполнительного ядра

Исполнительноеядро разработано для оптимизации общей производительности путем болееэффективного управления исполнением простых ситуаций. Аппаратное обеспечениеспроектировано для выполнения частых операций в простых случаях как можнобыстрее, за счет нечасто исполняемых операций. Некоторые части ядра могутпредполагать, что текущее состояние сохраняется для возможности быстрогоисполнения похожих операций. Если бы этого не было, машина бы стопорилась.Примером такой конструкции может служить управление хранением-для-загрузки (store-to-load). Если загрузка предсказана зависимой от хранения, онаполучает данные из этого хранилища и предварительно выполняется. Если же загрузкане зависит от хранения, загрузка задерживается до получения реальных данных изпамяти, затем она выполняется.

Задержка инструкций и производительность

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

·<span Times New Roman"">        

IA-32 инструкций так, чтобы они были декодированы меньше чем в четыремикрокоманды и/или имели меньшие задержки

·<span Times New Roman"">        

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

·<span Times New Roman"">        

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

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

Исполнительные блоки и выводные порты

На каждомцикле ядро может посылать микрокоманды в один или несколько из четырех портоввывода. На микроархитектурном уровне операции хранения делятся на две группы:

1.<span Times New Roman"">     

2.<span Times New Roman"">     

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

Порт 0. В первой половине цикла,нулевой порт может вывести либо одну сдвиговую микрокоманду с плавающей точкой(сдвиг стека для плавающей точки, обмен между операндами с плавающей точкой илисохранение данных с плавающей точкой), либо одну из микрокомандарифметико-логического устройства (арифметические, логические, ветвление илисохранение данных). Во второй половине цикла порт может вывести схожуюмикрокоманду АЛУ.

Порт 1. В первой части цикли первыйпорт может вывести либо одну из исполнительных операций с плавающей точкой (всеисключительные сдвиговые операции с плавающей точкой, все операции SIMD), либо однуарифметическую АЛУ микрокоманду. Во второй части цикла порт может вывести однусхожую микрокоманду АЛУ.

Порт 2. Этот порт обеспечивает вывододной загрузочной операции за цикл.

Порт 3. Этот порт обеспечивает вывододной операции сохранения адреса за цикл.

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

<img src="/cache/referats/18656/image008.jpg" v:shapes="_x0000_i1028">

Рисунок 4.Исполнительные блоки и порты беспорядочного ядра

<span Arial",«sans-serif»;mso-fareast-font-family: «Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Кэши

МикроархитектураIntelNetBurst поддерживает до трехуровней встроенного КЭШа. По крайней мере, два уровня КЭШа встроены в процессоры,основанные на микроархитектуре IntelNetBurst.Процессоры IntelXeonMPмогут содержать кэш третьего уровня.

Кэш первогоуровня (ближайший к исполнительному ядру) состоит из раздельных КЭШейинструкций и данных. Они включают кэш данных первого уровня и кэш трасс(улучшенный кэш инструкций первого уровня). Все остальные кэши делятся междуинструкциями и данными.

Уровни виерархии КЭШа не взаимовключающие. Факт того, что нить находиться на уровне Nнеозначает, что она так же находиться на уровне N+1. Все кэши используют алгоритм заменпсевдо-НЧИ (наименее часто используемые).

Таблица 1приводит сравнительные параметры КЭШей всех уровней процессоров Pentium 4 и Xeon.

    Таблица 1. Параметры кэша процессоров Pentium 4 и IntelXeon

<img src="/cache/referats/18656/image010.jpg" v:shapes="_x0000_i1029">

На процессорахбез КЭШа третьего уровня, промах КЭШа второго уровня инициирует транзакциючерез интерфейс системной шины в подсистему памяти. На процессорах с тремяуровнями КЭШа, промах КЭШа третьего уровня инициирует транзакцию черезсистемную шину. Транзакция записи через шину записывает 64 байта в кэшируемую память,или раздельные восьми байтные контейнеры, если место назначения не кэшируется.Транзакция чтения через шину из кэшируемой памяти извлекает две нити данныхКЭШа.

Интерфейссистемной шины поддерживает работу с масштабируемой частотой шины и достигаетэффективной скорости в четыре раза превышающей скорость шины. Маршрут от входав шину и обратно занимает двенадцать процессорных циклов, и от шести додвенадцати циклов для доступа к памяти, если шина не перегружена. Каждый циклшины соответствует нескольким циклам процессора. Отношение тактовой частотыпроцессора к масштабируемой тактовой частоте системной шины, если один циклшины. Например, один цикл шины с частотой 100 МГц эквивалентен пятнадцатициклом процессора в 1,5 ГГц процессоре.

<span Arial",«sans-serif»;mso-fareast-font-family: «Times New Roman»;mso-font-kerning:16.0pt;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Предвыборка данных

Процессоры IntelXeonиPentium 4 имеют двамеханизма предвыборки данных: программно управляемая предвыборка иавтоматическая аппаратная предвыборка.

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

Программноуправляемая предвыборка данных может принести выгоду в следующих ситуаци

еще рефераты
Еще работы по компьютерам и переферийным устройствам