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

Микроархитектура процессора Prescott

Читайте также:
  1. Архитектура 32-разрядного микропроцессора
  2. Базовые принципы организации микропроцессора
  3. Быстродействие процессора
  4. Взаимодействие основных узлов и устройств персонального компьютера при автоматическом выполнении команды. Архитектура 32-разрядного микропроцессора
  5. Внутреннее строение микропроцессора
  6. Вопрос №17. Дать определение микропроцессора в зависимости от его назначения. Нарисовать структурную схему микропроцессора и пояснить принцип её действия.
  7. Вопрос №20. Принцип гибкого распределения памяти в ПЭВМ. Понятие адресного пространства центрального процессора.
  8. Вопрос №30. Система прерываний микропроцессора. Алгоритм работы микропроцессора при обработки сигналов маскируемого и немаскируемого прерываний.
  9. Вопрос№40. Распределение адресного пространства ПЭВМ «АГАТ» по функциональному назначению. Алгоритм работы процессора после включения питания.
  10. Выбор процессора компьютера - Intel или AMD?
  11. Интерфейсные элементы окна текстового процессора.
  12. Использование табличного процессора MS Excel

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

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

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

· выборка из кэша;

· декодирование;

· выполнение;

· запись результатов.

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

В реальных процессорах конвейер обработки команд может быть более сложным и включать большее количество ступеней. Собственно говоря, отличительной особенностью процессоров семейства Intel Pentium 4 и является их беспримерно длинный конвейер. Так, в процессорах на ядре Northwood длина конвейера составляла 20 ступеней, а в новом процессоре Prescott она увеличена до 31 ступени. Причина увеличения длины конвейера заключается в том, что поскольку многие команды являются довольно сложными и не могут быть выполнены за один такт процессора, особенно при высоких тактовых частотах, то каждая из четырех стадий обработки команд (выборка, декодирование, выполнение, запись) должна состоять из нескольких ступеней конвейера.

Кроме того, в конвейер преднамеренно вставляются так называемые пустые ступени (Drive), на которых не происходит обработка инструкции. Эти пустые (или передаточные) ступени необходимы для того, чтобы при высоких тактовых частотах сигнал успевал во время одного такта распространиться от одного исполнительного блока к другому. Напомним, что при частотах свыше 3 ГГц время одного такта составляет менее 3 нс. За столь короткий промежуток времени свет в вакууме успевает пройти расстояние менее 1 см, а поскольку скорость распространения сигналов в кристалле существенно ниже скорости света, то при высоких тактовых частотах неизбежно приходится вводить пустые ступени конвейера для передачи сигнала.

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

Существует два принципиально разных способа повышения производительности процессора (не считая, конечно, увеличения тактовой частоты). Суть первого состоит в том, чтобы увеличивать количество исполнительных блоков — таким образом создается множество параллельных коротких конвейеров. Данный подход позволяет в полной мере реализовать параллелизм на уровне инструкций (Instruction-Level Parallelism, ILP), когда несколько инструкций выполняются одновременно в различных исполнительных блоках процессора. Количество ступеней конвейера здесь невелико, поэтому инструкции выполняются за небольшое количество циклов. Для реализации параллелизма на уровне инструкций необходимо, чтобы поступающие на исполнительные блоки команды можно было выполнять параллельно. Однако если, к примеру, для выполнения следующей по порядку инструкции требуется знать результат выполнения предыдущей инструкции (подобные инструкции называются взаимозависимыми), то в этом случае параллельное выполнение невозможно. Поэтому препроцессор прежде всего проверяет взаимозависимость команд и переупорядочивает их — не в порядке поступления (Out of Order), а так, чтобы их можно было выполнять параллельно. На последних ступенях конвейера инструкции выстраиваются в исходном порядке.

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

При использовании длинного конвейера возможно увеличение тактовой частоты процессора, то есть сам конвейер оказывается более быстрым. Применение длинных конвейеров с высокими тактовыми частотами процессора — это второй способ увеличения производительности процессора, и именно такая идеология заложена в архитектуре процессора Intel Pentium 4. При использовании длинного конвейера на стадии исполнения инструкций задействуется меньшее количество исполнительных блоков, но каждый из них обладает длинным и соответственно быстрым конвейером. Это означает, что каждый блок исполнения (Execution Unit) имеет больше доступных для выполнения тактов и способен одновременно выполнять довольно много инструкций.

Этот метод имеет, однако, свои подводные камни. Дело в том, что в случае длинного конвейера предпроцессор должен обеспечив ему соответствующую загрузку. Для этого предпроцессору нужно обладать довольно большим буфером, способным вмещать |достаточное количество инструкций. Если же в кэше отсутствует инструкция или данные для конвейера, то образуются так называемые конвейерные пузырьки (Pipeline Bubbles), которые проходят все ступени конвейера, но ни на одной из них не производятся никакие действия. Наличие Pipeline Bubbles негативно отражается на производительности процессора, поскольку ресурсы процессора просто-напросто простаивают. Избежать возникновения нежелательных простоев в процессорах позволяют различные хитроумные алгоритмы например Hyper-Threading.

Как уже отмечалось, новый процессор Prescott имеет необычайно длинный конвейер —31 ступень, что на 11 ступеней больше чем в процессоре Northwood. При этом архитектура Intel NetBurst, заложенная в процессоре, не претерпела существенных изменений. Структурная схема процессора изображена на рис.3.

Рис. 3. Структурная схема процессора Intel Pentium 4

 

При работе процессора инструкции выбираются из кэша L2 и декодируются. Кэш L2 процессоров семейства Pentium 4 под названием Advanced Transfer Cache имеет 256-битную шину, работающую на частоте ядра, и усовершенствованную схему передачи данных; кэш обеспечивает высочайшую пропускную способность, столь важную для потоковых процессов обработки.

Для выборки команд из кэша L2 и их последующего декодирования в микрооперации отводится несколько начальных ступеней конвейера. Соответственно при выполнении фрагмента программного кода для декодирования команд будет использовано несколько процессорных тактов. Однако во многих современных (прежде всего мультимедийных) приложениях один и тот же фрагмент кода может повторяться многократно, и было бы нерационально тратить процессорные такты на повторную выборку, транслирование и декодирование. Выгоднее хранить уже готовые к исполнению микроинструкции в специальном кэше L1, где из них формируются мини-программы, называемые отслеживаниями (Traces). Каждая такая программа может содержать до шести декодированных инструкций uops. Мини-программы формируются из инструкций, которые выполняются последовательно (именно поэтому они и называются отслеживаниями). При этом в самом программном коде указанные инструкции могут не следовать друг за другом, то есть реализуется внеочередное выполнение инструкций (Out-of-Order). При попадании в кэш L1 происходит внеочередное выполнение команд; при этом значительно экономятся ресурсы процессора, так как по своей сути внеочередное выполнение| команд подразумевает устранение первых ступеней конвейера, фактическая длина которого в этом случае составляет уже 31 ступень. В кэше с отслеживанием может храниться до 12 тыс. декодированных микрокоманд.

Режим работы процессора при внеочередном выполнении команд (то есть когда происходит попадание в Trace Cache и используются уже декодированные команды) является естественным для процессора Intel Pentium 4. Поэтому, говоря о длине конвейера в 31 ступень, мы имеем в виду длину основного конвейера — без учета первых ступеней, которые используются при необходимости выборки команд, их трансляции, декодирования и сохранения в Trace Cache полученных микрокоманд.

Чтобы обеспечить высокий процент попаданий в кэш L1 с отслеживаниями (Trace Cache) и построение в нем мини-программ, используется специальный блок предсказания ветвлений (Branch Targets Buffers, BTB и Instruction Translation Look-aside Buffers, I-TLB). Этот блок позволяет модифицировать мини-программы, основываясь на спекулятивном предсказании. Так если в программном коде имеется точка ветвления, то блок предсказаний может предположить дальнейший ход программы вдоль одной из возможных ветвей и с учетом этого спекулятивного предсказания построить мини-программу. Технология использования кэша с отслеживанием вместе с усовершенствованным алгоритмом предсказания получила название Advanced Dynamic Execution и является составляющей частью технологии NetBurst.

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

Рассмотрим теперь процесс продвижения микроинструкций по основному конвейеру, когда процессор работает в режиме внеочередного выполнения инструкций. В течение первых двух тактов в Trace Cache передается указатель на следующие выполняемые инструкции — это две первые ступени конвейера, называемые Trace Cache next instruction pointer. После получения указателя в течение двух тактов происходит выборка инструкций из кэша (Trace Cache Fetch) — это две следующие ступени конвейера. Затем выбранные инструкции должны быть отосланы на внеочередное выполнение. Для того чтобы обеспечить продвижение выбранных инструкций по процессору, используется еще одна дополнительная, или передаточная, ступень конвейера (Drive).

На следующих ступенях конвейера, которые называются Allocate & Rename, происходят переименование и распределение дополнительных регистров процессора. В процессоре Intel Pentium 4 содержится 128 дополнительных регистров, которые не определены архитектурой набора команд. Переименование регистров позволяет добиться их бесконфликтного функционирования.

Далее формируются две очереди (Queue) микрокоманд: очередь микрокоманд памяти (Memory uop Queue) и очередь арифметических микрокоманд (Integer/Floating Point uop Queue).

На следующих ступенях конвейера происходит планирование и распределение(Schedule) микрокоманд. Планировщик (Scheduler) — своего рода сердце ядра процессора — выполняет две основные функции: переупорядочивание микрокоманд и распределение их по функциональным устройствам. Суть переупорядочивания микрокоманд заключается в том, что планировщик определяет, какую из них уже можно выполнять, и в соответствии с их готовностью меняет порядок следования. Распределение микрокоманд происходит по четырем функциональным устройствам, то есть формируются четыре очереди. Первые две из них предназначены для устройств памяти (Load/Store Unit) и формируются планировщиком Memory Scheduler из очереди памяти Mem uop Queue. Микрокоманды из очереди арифметических микрокоманд (Integer/Floating Point uop Queue) также распределяются в очереди соответствующих функциональных устройств, для чего предназначены три планировщика: Fast ALU Scheduler, Slow ALU/General FPU Scheduler и Simple FP Scheduler.

Fast ALU Scheduler — это распределитель простых целочисленных операций, который собирает простейшие микроинструкции для работы с целыми числами, чтобы затем послать их на исполнительный блок ALU, работающий на двойной скорости. В процессоре Pentium 4 имеются два исполнительных блока ALU, работающих на удвоенной скорости. К примеру, если тактовая частота процессора составляет 3,2 ГГц, то эти два устройства ALU работают с частотой 6,4 ГГц и в параллельном режиме способны выполнять четыре целочисленные операции за один такт. Такие блоки ALU получили название Rapid Execution Engine (блоки быстрого исполнения). Отметим, что в процессоре Prescott в один из быстрых блоков ALU добавлен блок Shifter/Rotator, исполняющий инструкции типа сдвига или вращения. Благодаря этому такие инструкции теперь исполняются гораздо быстрее, поскольку в предыдущих реализациях Pentium 4 сдвиг и вращение трактовались как сложные инструкции и выполнялись на медленном ALU.

Slow ALU/General FPU Scheduler — распределитель целочисленных операций/распределитель операций с плавающей точкой, который и распределяет остальные операции ALU и операции с плавающей точкой.

Simple FP Scheduler — распределитель простых операций с плавающей точкой. Это устройство формирует очередь простых операций с плавающей точкой и операций по доступу к памяти с плавающей точкой.

Говоря об исполнительных блоках процессоров семейства Pentium 4, отметим, что в Prescott несколько иначе производится операция целочисленного умножения. Если в предыдущих моделях процессоров целочисленной умножение выполнялось в блоке FPU с предварительным переводом операндов сначала в формат с плавающей точкой, а потом обратно, то в Prescott целочисленное умножение выполняется в блоке ALU, что, естественно, сказывается на скорости выполнения операций.

На следующих ступенях конвейера реализуется этап диспетчеризации (Dispatch): инструкции попадают на один из четырех портов диспетчеризации (Dispatch Ports), которые выполняют функцию шлюзов к функциональным устройствам.

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

После загрузки инструкций в блок регистров все готово для непосредственного выполнения команд. Процесс выполнения инструкций в исполнительных устройствах происходит на следующей ступени конвейера, которая называется Execute. Всего с использованием семи исполнительных блоков процессор Intel Pentium 4 может выполнять до шести микроинструкций за один такт.

Следующие ступени конвейера — это изменение состояния флагов (Flags) и проверка ветвления (Branch Check), на которой процессор узнает, сбылось ли предсказание ветвления. Последняя ступень процессора — еще одна передаточная ступень, о назначении которой мы уже говорили.

Рассмотрев микроархитектуру нового процессора, можно заметить, что она во многом повторяет микроархитектуру процессора на ядре Northwood. Первое бросающееся в глаза отличие — это более длинный конвейер, реализованный за счет дополнительных передаточных ступеней Drive и за счет того, что некоторые операции (типа Dispatch) стали занимать большее количество ступеней конвейера. Казалось бы, увеличение длины конвейера при неизменной тактовой частоте должно понизить производительность процессора, поскольку меньшее количество инструкций будет выполняться за один такт. Кроме того, при неправильном предсказании перехода придется полностью очищать и перезаполнять конвейер. Отчасти это справедливо, и если сравнивать производительность процессора Northwood с 20-сту-пенчатым конвейером и Prescott с 31-ступенчатым конвейером, то при одной и той же тактовой частоте Prescott должен был бы проиграть. Однако разные длины конвейера — далеко не единственное различие между этими процессорами. Дело в том, что с целью минимизации простоев, связанных с необходимостью очистки и перезаполнения конвейера, существенной модернизации в Prescott подверглась схема предсказания переходов.

Работа блока предсказания переходов основывается на работе 4-Кбайт буфера Branch Target Buffer (BTB), в котором накапливается статистика выполненных переходов. Для предсказания переходов используется вероятностная модель на основе накопленной статистики. Правда, данный алгоритм оправдывает себя только в том случае, если по конкретному переходу статистика уже накоплена. Если же этой статистики нет, то вероятностная модель предсказания не работает. В таком случае в процессорах Northwood осуществлялся переход назад, причем считалось, что обратный переход осуществляется в циклическом фрагменте программы до точки выхода из цикла. Однако это справедливо не всегда, поскольку ветвь программы, по которой осуществляется обратный переход, может и не быть фрагментом цикла. Поэтому в процессоре Prescott статическая схема предсказания переходов была существенно улучшена: если предсказать переход на основании накопленной статистики невозможно осуществляется переход назад, но не до точки выхода из цикла, а на определенное расстояние, найденное на основе анализа. Зная длину перехода, можно предсказать, является ли фрагмент циклом или нет.

Кроме улучшения модуля статического предсказания переходов, в процессоре Prescott была усовершенствована схема динамического предсказания переходов — добавлен блок косвенного предсказания переходов, который впервые был реализован в процессорах Intel Pentium M. В результате в процессоре Prescott удалось уменьшить число неправильно предсказанных переходов в сравнении с процессором Northwood, что отражается на сокращении числа задержек, вызванных необходимостью очистки и перезаполнения конвейера.

Наряду с уже перечисленными улучшениями в процессоре Prescott реализован целый ряд новаций:

· усовершенствованная технология Hyper-Threading;

· дополнительные буферы отложенной записи (WC);

· 13 новых инструкций процессора (набор инструкций SSE3).

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

В процессоре Prescott имеются 13 новых инструкций, позволяющих повысить общую производительность в играх и мультимедийных приложениях (данный набор инструкций теперь известен как SSE3). Новые инструкции разделены на пять групп:

· операции преобразования чисел с плавающей запятой в целочисленный формат;

· операции с комплексными числами;

· операции кодирования-декодирования видео;

· SIMD FP-операции с использованием формата AOS;

· операции синхронизации потоков.

Конечно, для реализации всех преимуществ от использования нового набора команд нужно, чтобы они поддерживались приложениями. Но это уже дело времени, и вскоре начнут появляться приложения, оптимизированные для использования нового набора команд. Уже сейчас существуют приложения, поддерживающие SSE3, — это различные кодеки и проигрыватели: MainConcept (MPEG-2/4), xMPEG, Ligos (MPEG-2/4), Real (RV9), On2 (VP5/VP6), Pegasys TMPGEnc 3.0, Adobe Premier, Pinnacle (MPEG Encoder и DivX Codec), Sony DVD Source Creator, Ulead (MediaStudio & Video Studio Intervideo, Showshifter, Snapstream (все пользуют DivX-кодеки). Отметим также, что последняя версия компилятора Intel поддерживает набор инструкций SSE3.

Чипсет

Чипсет (ChipSet - набор чипов), или набор системной логики, представляет собой одну или несколько микросхем, специально разработанных для обеспечения взаимодействия CPU со всеми остальными компонентами компьютера. Разработка чипсета начинается одновременно с проектированием нового процессора, т.к. именно чипсет, смонтированный на системной плате обеспечивает возможность работы процессора. Чипсет определяет, какой процессор может работать на данной материнской плате, тип, организацию и максимальный объем используемой оперативной памяти (разве что современные модели процессоров AMD имеют встроенные контроллеры памяти), сколько и какие внешние устройства можно подключить к компьютеру. Разработкой чипсетов для десктопов занимаются 5 компаний: Intel, NVIDIA, AMD, VIA и SIS.

Чаще всего чипсет состоит из 2 интегральных микросхем, называемых северным и южным мостами. Северный мост (Northbridge или, у Intel, MCH - Memory Controller Hub) обеспечивает взаимосвязь между процессором (по шине FSB - Front Side Bus), оперативной памятью (SDRAM, DDR, DDR2 и, в ближайшей перспективе, DDR3), видеокартой (интерфейсы AGP или PCI Express) и, посредством специальной шины, с южным мостом (Southbridge, или ICH - I/O Controller Hub), в котором расположены большинство контроллеров интерфейсов ввода-вывода. Некоторые северные мосты включают графическое ядро, использующее внутренний интерфейс AGP или PCI Express - такие чипсеты называются интегрированными.

Совсем еще недавно развитие индустрии системных плат, определяемое в основном соперничеством двух процессорных гигантов AMD и Intel, неспешно проистекало в эволюционном русле. Эволюция - это, если кто не знает, такой процесс, когда подавляющее большинство компьютерных энтузиастов, обычно не обремененных сверхвысокими доходами, не только помнят, что означает термин "апгрейд" компьютера, но и имеют возможность применить свои знания на практике. Сегодня технологические революции, вспыхивающие одна за другой практически без перерывов, изрядно потрясли основы современных компьютерных платформ. Так, "революция Intel 2004 года" принесла нам принципиально новые базовые технологии - системную шину PCI Express и память DDR2. Кроме того, в истекшем году с большой или меньшей степенью "громогласности" заявил о себе последовательный интерфейс дисковых накопителей Serial ATA; в области сетевых решений вышел на первый план гигабитный интерфейс Gigabit Ethernet и различные варианты беспроводного Wi-Fi; старый добрый интегрированный звук AC'97 пал под напором агрессивного новичка HDA (High Definition Audio). Только самые наивные могут полагать, что революция в области графических интерфейсов ограничится всего лишь заменой AGP8X на PCI Express х16.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.)