Студопедия

Главная страница Случайная страница

Разделы сайта

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






Структура современного процессора Intel






Архитектура современных процессоров Intel ориентирована на эффективную работу с Internet-приложениями. К основным особенностям архитектуры процессоров относятся:

· кэш-память первого уровня с отслеживанием выполнения команд;

· кэш-память второго уровня с улучшенной передачей данных;

· гиперпоточная технология выполнения команд;

· улучшенное динамическое выполнение команд с изменением порядка их следования и усовершенствованный алгоритм предсказания переходов;

· работа блоков АЛУ на удвоенной по сравнению с ядром частоте;

· использование расширенного набора потоковых SIMD-команд, получивших обозначение SSE-2;

· логический блок с предварительной выборкой данных.

Название SIMD-команда представляет собой аббревиатуру от выражения Single Instruction Multiple Data буквально «одна инструкция – много данных» /2/. В современных процессорах, в отличие от обычных команд, оперирующих с двумя числами, SIMD-команда обрабатывает сразу две группы чисел. Такие команды позволяют существенно ускорить обработку потоков данных, что характерно для мультимедиа приложений и телекоммуникационных задач. К числу первых SIMD-команд относят команды ММХ – MultiMedia Extension, расширяющие набор типовых команд процессора Pentium MMX 57 специальными командами для работы с мультимедийными приложениями.

Дальнейшее развитие потоковых SIMD-команд привело к появлению группы потоковых команд SSE1 (70 команд), и затем SSE2 (271 команда), где аббревиатура SSE – Streaming SIMD Extension, а также группы команд 3DNow! у процессоров фирмы AMD.

Структура современного процессора Intel изображена на рис.5.1. Гарвардская внутренняя структура процессора реализуется путем разделения потоков команд и данных, поступающих с системной шины через блок внешнего интерфейса и размещенную на кристалле процессора общую кэш-память 2–го уровня (L2) емкостью 512 Кбайт. Такое размещение позволяет сократить время выборки команд и данных по сравнению с процессорами, где эта кэш-память располагается на отдельном кристалле, расположенном в едином корпусе с процессором.

Кэш-память с улучшенной передачей данных второго уровня обеспечивает более скоростной канал данных между кэш-памятью второго уровня и ядром процессора. Разрядность шины кэш-памяти 256 бита (32 байта), передача данных производится каждый такт частоты процессора. В результате для современных процессора с тактовой частотой 2, 40 ГГц обеспечивается скорость передачи данных 77 Гбайт/c. Для сравнения, соответствующая скорость передачи данных для процессора Intel с тактовой частотой 1 ГГц равна 16 ГБ/с.

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


 
 

Вместо обычной кэш-памяти L1, которая обычно разделена на область инструкций и область данных, в процессорах применен новый подход. Инструкции в кэш-памяти L1 не сохраняются, а кэш-памяти L1 предназначена теперь только для данных. Для кэширования инструкций предлагается использовать Trace Cache, который по сравнению с обычной кэш-памятью L1 имеет ряд особенностей, направленных на минимизацию простоев процессора при выполнении неправильных предсказаний переходов.

Главная особенность состоит в том, что в Trace Cache сохраняются уже декодированные инструкции. Это значит, что в Trace Cache хранятся не классические x86 инструкции, а составляющие их микрокоманды, которыми непосредственно оперирует процессорное ядро.

Сохранение в Trace Cache микрокоманд позволяет избежать повторного декодирования x86 инструкций при повторном выполнении того же участка программы или при неправильном предсказании переходов. Таким образом, после заполнения Trace Cache практически любая команда будет храниться в нем в декодированном виде. Поэтому при поступлении очередной команды блок трассировки выбирает из этой кэш-памяти уже декодированные команды, т.е. микрокоманды, реализующие ее выполнение. Такой подход существенно сокращает время выполнения команд, т.к. число ступеней конвейера, предназначенных для декодирования команд равно 8, что составляет весомую часть от общей длины конвейера, равной 28 ступеням.

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

Основной частью блока предсказания ветвлений является ассоциативная память, называемая буфером адресов ветвлений (BTB – Branch Target Buffer), в которой хранятся 4092 адреса ранее выполненных переходов. Кроме того, BTB содержит биты, хранящие предысторию ветвления, которые указывают, выполнялся ли переход при предыдущих выборках данной команды. При поступлении очередной команды условного перехода, указанный в ней адрес сравнивается с содержимым BTB. Если этот адрес не содержится в BTB, то есть ранее не производились переходы по данному адресу, то предсказывается отсутствие ветвления. В этом случае продолжается выборка и декодирование команд, следующих за командой перехода. При совпадении указанного в команде адреса перехода с каким-либо из адресов, хранящихся в BTB, производится анализ предыстории.

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

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

После формирования потоков микрокоманд производится выделение регистров, необходимых для выполнения декодированных команд. Эта процедура реализуется блоком распределения регистров, который выделяет для каждого указанного в команде логического регистра (регистра целочисленных операндов EAX, ECX и других, регистра операндов с плавающей точкой ST0-ST7 или регистра блоков MMX, SSE) один из 128 физических регистров, входящих в состав блока регистров замещения (БРЗ).

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

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

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

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

Адреса операндов, выбираемых из памяти, вычисляются блоком формирования адреса (БФА), который реализует интерфейс с кэш-памятью данных уровня L1 емкостью 8 Кбайт. В соответствии с заданными в декодированных командах способами адресации формируются 48 адресов для загрузки операндов из памяти в регистр БРЗ и 24 адреса для записи из регистра в память. При этом БФА формирует адреса операндов для команд, которые еще не поступили на выполнение. При обращении к памяти БФА одновременно выдает адреса двух операндов: один для загрузки операнда в заданный регистр БРЗ, второй – для пересылки результата из БРЗ в память. Таким образом, реализуется процедура предварительного чтения данных для последующей их обработки в исполнительных блоках, которая называется спекулятивной обработкой. Аналогичным образом организуется параллельная работа блоков SSE, FPU (АЛУ с плавающей запятой), MMX. При выборке операнда из памяти производится обращение к кэш-памяти данных L1, которая имеет отдельные порты для чтения и записи. За один такт производится выборка операндов для двух команд. Время обращения к этой кэш-памяти составляет 1, 42 нс при тактовой частоте 1, 5 ГГц, что в 2, 1 раза меньше, чем при обращении к кэш-памяти данных, например, в процессоре, работающем на частоте 1, 0 ГГц.

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

Блок внешнего интерфейса реализует обмен процессора с системной шиной, к которой подключается память, контроллеры ввода/вывода и другие устройства. Обмен по системной шине осуществляется с помощью 64-разрядной двунаправленной шины данных, 36-разрядной шины адреса, обеспечивающей адресацию до 64 Гбайт внешней памяти.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.