Краткая информация по процессорам в сведена в таблицу 1.
Таблица 2 Эволюция процессоров х86.
Поколение | Наименование | Год выпуска | Разрядность шины адреса | Разрядность шины данных (разрядность процессора) | Тактовая частота | Количество элементов на кристалле (Техпроцесс) | Нововведения |
Intel 8086 | 5-10 МГц | 29 000 (3 мкм) | реальный режим адресации. | ||||
Intel 80286 | 6-12 МГц | 134 000 (1.5 мкм) | 24 разрядная шина адреса, защищенный режим адресации. | ||||
Intel 80386 | 275 000 (1 мкм) | 32 разрядные регистры, 32 разрядная шина адреса, 32 разрядный защищенный режим адресации, Улучшенные механизмы многозадачности и защиты, встроенная кэш-память | |||||
I486 | RISC-ядро,мат.сопроцессор встроен в микропроцессор. конвейер, умножение тактовой частоты системной платы. | ||||||
Pentium | 64 (32) | 60-200 МГц | 3,1 млн (800) | Суперскалярная архитектура (несколько конвейеров), Механизм предсказания адресов ветвления(переходов), Раздельное кэширование программного кода и данных. | |||
Pentium MMX | 64 (32) | 166, 200, 233 МГц | 3,3 млн (350) | Технология ММХ(мультимедийное расширение) | |||
Pentium Pro | 64 (32) | 150- 200 МГц | 5,5 млн (350) | Динамическое (спекулятивное) исполнение инструкций. Двухуровневый кэш. 36 разрядная шина адреса | |||
Pentium II | 64 (32) | 233-400 МГц | 27,4 млн (180) | 32Кб кэш первого уровня, наличие блока инструкций ММХ. | |||
Pentium III | 64 (32) | 450-1400 МГц | 44 млн (130) | Набор инструкций SSE (включает128-битных ресурсов для ММХ) | |||
Pentium IV | 64 (32) | 1,4 – 3,8 ГГц | 125 млн (90) | Гиперконвейеризация | |||
Core 2 | 64 (64) | 1,8-3,1 ГГц | (45) | Улучшение КЭШа с увеличением кол-ва ядер. | |||
Core i7 | 64 (64) | 2,6 – 3,3 ГГц | (45) | Контроллер памяти находится в самом процессоре(DMA),Процессорная шина FSB заменена на новую шину (QPI), производительность которой составляет до 32 гигабайт в секунду;8-мегабайтный кэш L3. |
Intel 8086 – первый 16-битный микропроцессор компании Intel. Процессор имел набор команд, который применяется и в современных процессорах, именно от этого процессора берёт своё начало известная на сегодня архитектура x86.
Размер шины адреса был увеличен до 20 бит, что позволило адресовать 1 Мбайт памяти. Для доступа к этому мегабайту потребовалось изменить способ адресации памяти, этот метод назвали реальным режимом адресации процессора. Процессор не умел выполнять операции над числами с плавающей запятой, для выполнения таких операций был необходим математический сопроцессор.
Intel 80286 (также известный как i286) – 16-битный x86-совместимый микропроцессор второго поколения фирмы Intel, выпущенный в 1982 году. Данный процессор представляет собой усовершенствованный вариант процессора Intel 8086 и был в 3-6 раз быстрее него. Процессор применялся, в основном, в IBM PC совместимых ПК.
В новом процессоре было увеличено количество регистров, добавлены новые инструкции. Шина адреса увеличена до 24 бит, таким образом объем ОЗУ может составлять 16 Мбайт, для доступа к этому адресному пространству добавлен новый режим работы процессора – защищённый режим (реализовано два режима работы – защищённый режим и реальный режим, которые будут рассмотрены в главе посвященной памяти).
Intel 80386 (i386) – 32 -битный x86-совместимый процессор третьего поколения фирмы Intel выпущенный в 1985 году. Данный процессор был первым 32-разрядным процессором для IBM PC-совместимых ПК. Применялся, преимущественно, в настольных ПК и портативных ПК (ноутбуки и лэптопы).
Вся архитектура x86 была расширена до 32 бит — все регистры стали 32-битными, адресация в защищенном режиме также стала 32-битной. В i386 механизмы защиты и многозадачности были значительно расширены и улучшены.
i386 первым из процессоров x86 имеет встроенную кэш-память, обеспечивающую меньшее количество обращений в память при последовательном чтении и обращении к одним и тем же данным (кэш-память будет рассмотрена в главе посвященной памяти).
Intel486 (i486) – 32-битный скалярный x86-совместимый процессор четвёртого поколения, построенный на гибридном CISC-RISC ядре, и выпущенный фирмой Intel в 1989 году. Архитектура процессора не является повторением или улучшением i386, а представляет совершенно оригинальное решение. Это был первый микропроцессор со встроенным математическим сопроцессором (FPU). Intel продолжает производить его до настоящего времени (2009) для использования во встраиваемых системах.
Intel486 имел расположенную на кристалле кеш-память объёмом 8 Кбайт, позднее – 16 Кбайт, работающую на частоте ядра. Наличие кеша позволило существенно увеличить скорость выполнения операций.
В Intel486 был усовершенствован механизм выполнения инструкций в несколько этапов. Конвейер процессоров серии Intel486 состоял из 5 ступеней: выборка инструкции, декодирование инструкции, декодирование адресов операндов инструкции, выполнение команды, запись результата выполнения инструкции.
Увеличение количества транзисторов привело к существенному увеличению рассеиваемой мощности. По этой причине процессоры Intel486 старших моделей уже требовали принудительного (активного) охлаждения.
Начиная с четвертого поколения производители нашли способ увеличения частоты процессора при помощи так называемого коэффициента умножения. Этот параметр указывает процессору, сколько тактов работы необходимо провести за один такт системной шины. Таким образом, появилась возможность увеличить частоту процессора, не увеличивая частоту системной шины. Это было важно, поскольку частота системной шины влияла также на частоты работы шин PCI и шины памяти, а они были связаны с гораздо более медленными, чем процессор, устройствами.
Раскроем подробнее понятия, введенные в архитектуру процессора начиная с 4 –го поколения.
Конвейер (pipeline) – механизм, который позволяет обрабатывать более одной команды одновременно.
Каждая команда программы выполняется процессором за несколько этапов или шагов, назовем их микрокомандами. Начинается все с чтения команды, ее декодирования и превращения в инструкции процессора и кончается записью результата. Для ускорения исполнение инструкции выполняется в виде конвейера. Именно, для каждого шага в конвейере выделяется свой исполнительный узел, и команда выполняется, проходя последовательно узлы. После освобождения узла он не простаивает, а на него поступает следующая команда. Таким образом, одновременно устройство обрабатывает не одну команду, а несколько - в идеале столько, сколько узлов конвейера и в среднем каждая команда выполняется за такт (после заполнения конвейера).
Каждая часть устройства называется ступенью конвейера, а общее число ступеней – длиной конвейера.
RISC (англ. Reduced Instruction Set Computing) – вычисления с сокращённым набором команд, противопоставляется архитектуре CISC –– вычисления с полным набором команд (англ. Complex Instruction Set Computing).
Это концепция проектирования процессоров, которая во главу ставит следующий принцип: более компактные и простые инструкции выполняются быстрее. Основанием использования этого принципа является правило 80/20, по которому в 80% работы процессора используется только часть 20% общего набора команд микропроцессора, при этом чаще всего исполняются простые инструкции. Сложные операции используются редко, они, как правило, медленнее, чем те же действия, выполняемые набором простых команд. Простая архитектура позволяет удешевить процессор, поднять тактовую частоту, а также распараллелить исполнение команд между несколькими блоками исполнения (т.н. суперскалярные архитектуры процессоров).
Сравнительный анализ RISC и CISC архитектуры показан в таблице 2
Таблица 3
Характерные особенности RISC-процессоров | Характерные особенности СISC-процессоров |
Фиксированная длина машинных инструкций (например, 32 бита) и простой формат команды. | Нефиксированное значение длины команды, т.е. различные команды занимают в памяти различное количество байт |
Равное время выполнения всех машинных команд. | Разные команды выполняются за разное время |
Большое количество регистров общего назначения (32 и более). | Небольшое число регистров, каждый из которых выполняет строго определённую функцию |
Так как скорость чтения данных из оперативной памяти в регистр и записи данных из регистра в оперативную память на порядок ниже скорости пересылки данных между регистрами, по этой причине интенсивная работа с оперативной памятью, свойственная CISC-архитектуре снижала производительность программ. Увеличение количества регистров общего назначения позволило минимизировать обращения к медленной оперативной памяти, оставив для работы с RAM только операции чтения данных из оперативной памяти в регистр и запись данных из регистра в оперативную память, все остальные машинные команды используют в качестве операндов регистры общего назначения.
Все процессоры x86, начиная с Intel486DX, являются CISC-процессорами с RISC-ядром. Они непосредственно перед исполнением преобразуют CISC-инструкции процессоров x86 в более простой набор внутренних инструкций RISC. Одна инструкция в формате x86, заменяется несколькими (до 4-х) RISC-инструкциями.
Pentium – торговая марка нескольких поколений микропроцессоров семейства x86, выпускаемых корпорацией Intel.
Pentium (P5) является процессором Intel пятого поколения и пришёл на смену Intel 80486 в 1993 году. Он имеет следующие основные отличия от 486-го процессора.
- Суперскалярная архитектура. Благодаря использованию суперскалярной архитектуры процессор может выполнять несколько команд за 1 такт. Такая возможность существует благодаря наличию нескольких конвейеров. Pentium является первым CISC процессором использующим многоконвейерную архитектуру. Процессоры, оснащённые механизмом параллельного исполнения нескольких команд, принято называть «суперскалярными». Разумеется, степень параллелизма не бесконечна: команды могут быть выполнены параллельно только в том случае, когда на данный момент времени есть в наличии соответствующее количество свободных от работы блоков, причём именно таких, которые «понимают» рассматриваемые команды.
- 64-битная шина данных. Позволяет процессору Pentium обмениваться вдвое большим объёмом данных с оперативной памятью, чем 486 за один шинный цикл (при одинаковой тактовой частоте).
- Механизм предсказания адресов ветвления (предсказания переходов). Применяется для сокращения времени простоя конвейеров, вызванного задержками выборки команд при изменении счетчика адреса во время выполнения команд ветвления. Для этого в процессоре используется буфер адреса ветвления BTB (Branch Target Buffer), использующий алгоритмы предсказания адресов ветвления.
- Раздельное кэширование программного кода и данных. В процессорах Pentium используется кэш-память первого уровня (кэш L1) объёмом 16Кб, разделенная на 2 сегмента: 8Кб для данных и 8Кб для инструкций. Это улучшает производительность и позволяет делать двойное кэширование доступным чаще, чем это было возможно раньше. Кроме того, изменён механизм кэширования.
- Улучшенный блок вычислений с плавающей запятой (FPU, сопроцессор).
Из перечисленных нововведений требует разъяснения идея предсказания адресов ветвления.
Вспомним пример использования команд переходов. Еще раз приведем программу на паскале
Begin
for ia:= 0 to 4 do
ib:= ib + ia;
end;
При компиляции этого цикла в машинный код он преобразуется в такую последовательность команд:
004D998 mov word ptr [ia], $0000;ia:= 0 004D9A1 mov ax, [$00450bd8];две строки 004D9A7 add [ib], ax;выполняют сложение 004D9AE inc [ia];добавляем 1 к ia 004D9B5 cmp word ptr [ib], $05;сравниваем ia с 5 004D9BD jnz -$1e;если цикл не ;закончился ;возвращаемся на ;начало цикла 004D9A1 004D9BF ……;что-то после цикла |
Как видите, переход со строки 5 в пяти случаях осуществляется на строку 2 (адрес 004D9A1) и только в одном на строку 7 (инструкция, следующая после цикла, адрес 004D9BF). Механизм предсказания при этом просто запомнит, куда произошел переход по условию в самый первый раз, после чего будет предполагать, что и в следующий раз переход осуществится туда же. Т.е. ошибется всего лишь один раз из пяти! А ведь в реальных задачах встречаются циклы с гораздо большим количеством повторений. Зная, какие команды последуют за операцией перехода, можно, соответственно, начать декодировать их задолго до того, как сама операция совершится, конвейер будет спасен от простоя. Для запоминания адресов перехода используется специальный буфер меток перехода (буфер адреса ветвления).
Когда инструкция перехода попадёт в функциональное устройство для исполнения, будет выяснено, правильно предсказан этот переход, или нет. В момент, когда было обнаружено, что предсказание перехода было сделано неправильно, все последующие инструкции будут отменены, и начнётся считывание инструкций из кэша по правильному адресу. Такую процедуру называют сбросом конвейера.
Разумеется, приведенный выше пример относятся к самым примитивным. На практике алгоритмы, ведающие предсказанием ветвлений, гораздо сложнее. Объявленная Intel эффективность работы блока предсказания ветвлений достигает 97-98 процентов.
Перечислим лишь некоторые механизмы, используемые в настоящее время:
- статический предсказатель для инструкций, совершающих переход в первый раз, основанный на эмпирических закономерностях;
- предсказатель коротких циклов, распознающий такие переходы и определяющий число итераций цикла (позволяет правильно предсказать момент выхода из цикла);
- предсказатель косвенных переходов, определяющий целевые адреса для различных исполнений инструкции перехода;
- предсказатель целевых адресов для инструкций выхода из подпрограммы, использующий небольшой буфер для запоминания адресов возврата для эффективной отработки инструкций «Вызов процедуры» – «Возврат из процедуры».
Вернемся к обзору процессоров.
Pentium MMX – процессор компании Intel, содержащий дополнительное расширение MMX. Впервые появился в 1997 году. Содержит 57 новых команд по параллельной обработке целочисленных данных, введен тип данных 64 бита. Для повышения производительности кэш инструкций и кэш данных были увеличены до 16 Кб каждый.
Остановиться на технологии ММХ (Multimedia Extensions — мультимедийные расширения) – коммерческое название дополнительного набора инструкций, выполняющих характерные для потоковых аудио/видео данных действия за одну машинную инструкцию.
Смысл в том, что для таких данных характерно применение одного и того же преобразования к массиву данных, например пикселям изображения. Обычный процессор обрабатывает каждый пиксель по отдельности, используя же MMX, он может обрабатывать несколько пикселей сразу! Для этого данные должны бать размещены в специальных длинных регистрах ММХ, при этом физически никаких новых регистров с введением MMX не появилось – используются регистры математического сопроцессора.
Pentium Pro – процессор Intel шестого поколения, совместимый с архитектурой, x86. Процессор был анонсирован в 1995 году, процессор позиционировался, в основном, как процессор для серверов и рабочих станций. Кроме того, процессор мог быть использован при сборке многопроцессорной конфигурации (до 4-х процессоров).
Этот процессор отличало применение технологии динамического исполнения (изменения порядка исполнения инструкций). В одном корпусе размещалось сразу два кристалла — само ядро процессора и кэш-память второго уровня (L2). Для работы с внутренним кэшем второго уровня была добавлена вторая шина данных.
Рассмотрим более детально понятия появившиеся в шестом поколении.
Динамическое (спекулятивное) исполнение – технология, позволяющая процессору динамически предсказывать порядок инструкций и выполнять их в той очередности, которая способствует повышению производительности.
Для пояснения рассмотрим сильно упрощенную схему одного из типичных участков кода программы.
команда 1: R1 = А + 2;
команда 2: R3 = R1 + 5.
команда 3: R2 = В + 3;
В нашем случае для выполнения команды 2 требуется результат команды 1, и поэтому команда 2 не может быть выполнена, пока не будет завершена команда 1. Команда 3 не зависит от других команд. До 6-го поколения процессоры уже имели несколько вычислительных блоков, но они выполняли команды только строго в порядке их расположения в программе, т.е., пока не будет выполнена команда 1, все вычислительные блока простаивают. По идее, в это время можно было бы выполнять другую полезную вычислительную работу. Начиная с 6-го поколения процессор проверяет зависимость команды от результата предыдущих команд на много шагов вперед. Этот механизм называется «анализом потока данных» Процессор с этой технологией может выполнять команды в порядке, отличном от их порядка следования в программе. В нашем случае сначала будут выполнены команды 1 и 3, а только потом 2 (См. Рис...). Это вторая составляющая динамического исполнения – «опережающее» выполнение команд. Результат опережающего выполнения записывается в специальные регистры временного хранения.
Двухуровневый кэш: Большинство современных систем имеют как минимум два уровня кэш-памяти. (См. рис...) Первый, наиболее «близкий» к процессору (условно обозначаемый Level 1 или сокращенно L1). Объем L1-кэша весьма невелик и редко превышает 32 Кб, поэтому он должен хранить только самые-самые необходимые данные. Зато на обработку ячейки из кэша уходит всего один такт процессора.
Рисунок Структура двухуровневого кэша
Между кэшем первого уровня и оперативной памятью расположен кэш второго уровня (условно обозначаемый Level 2 или сокращенно L2). Он работает на пониженной тактовой частоте. Объем L2 кэша составляет сотни килобайт, а зачастую достигает и нескольких мегабайт! Между тем, скорость доступа к нему относительно невелика (хотя, естественно, многократно превосходит скорость доступа к основной памяти).
Intel Pentium II – процессор x86-совместимой архитектуры Intel P6, анонсированный в 1997 году. Ядро Pentium II представляет собой модифицированное ядро P6 (впервые использованное в процессорах Pentium Pro). Основными отличиями от предшественника являются увеличенный с 16 до 32 Кб кэш первого уровня и наличие блока инструкций MMX (появившихся немногим ранее в Pentium MMX).
Intel Pentium III выпущен в 1999 году. Ядро Pentium III представляет собой модифицированное ядро, которое использовалось в процессорах Pentium II. По сравнению с предшественником расширен набор команд (добавлен набор инструкций SSE).
Поясним, в чем заключается технология SSE. Технология SSE позволяла преодолеть основную проблему MMX — при использовании MMX невозможно было одновременно использовать инструкции сопроцессора, так как его регистры использовались для MMX и для работы с вещественными числами.
SSE включает в архитектуру процессора восемь 128-битных регистров.
Преимущество в производительности достигается в том случае, когда необходимо произвести одну и ту же последовательность действий над разными данными.
Введем еще одно понятие Celeron – это большое семейство бюджетных x86-совместимых процессоров компании Intel. Семейство Celeron предназначалось для построения недорогих компьютеров для дома и офиса. Одной из причин невысокой цены является их более низкая, по отношению к старшим процессорам, производительность, что достигается двумя основными методами: искусственным снижением частоты шины процессора и блокировкой части кэш-памяти 2 уровня.
Процессоры семейства Celeron строятся на основе Pentium II, Pentium III, Pentium 4, Pentium M и Core 2 Duo.
Pentium 4 – одноядерный x86-совместимый микропроцессор компании Intel, представленный в 2000 году, ставший первым микропроцессором, в основе которого лежала принципиально новая по сравнению с предшественниками архитектура седьмого поколения (по классификации Intel) — NetBurst. Помимо различных вариантов Pentium 4, к процессорам архитектуры NetBurst относятся двухъядерные процессоры Pentium D. Кроме того, часть процессоров Celeron, предназначенных для систем нижнего ценового уровня, представляет собой Pentium 4 с частично отключённым кэшем второго уровня.
Архитектура, лежащая в основе процессоров Pentium 4, разрабатывалась, в первую очередь, с целью достижения высоких тактовых частот процессоров. Она не является развитием архитектуры P6, использовавшейся в процессорах Pentium III, а представляет собой принципиально новую по сравнению с предшественниками архитектуру. Характерными особенностями архитектуры NetBurst являются гиперконвейеризация. Поясним сущность этого понятия.
Как мы уже говорили ранее, чем примитивнее команды, тем на большей частоте способно работать исполняющее их ядро. Однако элементы конвейера также подпадают под это правило: чем проще одна ступень конвейера тем с большей скоростью он может «продвигаться». Но простая ступень может выполнять только простое действие, следовательно, количество их должно возрасти. Поэтому было принято кардинальное решение: увеличить длину конвейера 20 ступеней! При этом многие части процессора, ранее входившие в конвейер (к примеру, блок декодирования команд), были вообще вынесены за его пределы и работают теперь как бы сами по себе. Данная архитектура получила название гиперконвейерной (hyperpipelined). Естественно, возможная частота работы возросла.
Описанный поход имеет очень серьезную проблему – возрастает цена ошибки предсказания перехода (это называется штраф). Что происходит, если предсказатель ошибся? А происходит следующее – весь конвейер приходится очищать от ненужных команд и в срочном порядке начинать готовить к исполнению новые, находящиеся еще в памяти и совсем по другому адресу. Естественно, ядро процессора в это время просто исполняет холостой цикл, так как ни подготовленных данных, ни команд к нему не поступает. Таким образом, основная проблема гиперконвейерной архитектуры следующая – чем длиннее конвейер, тем больше работы идет насмарку и тем дольше придется ждать, пока он будет «вычищен» от непонадобившихся команд и снова заполнен нужными.
Рассмотрим архитектуру процессора седьмого поколения более детально (См. рис….). Чтобы понять, как это работает, опишем последовательность работы:
1. Предварительно инструкции x86 поступают в кэш-память второго уровня. Обмен процессора с системной шиной осуществляется с помощью 64-разрядной двунаправленной шины данных.
2. Выполнение инструкции начинается с её выборки и декодирования. Блок предвыборки инструкций осуществляет предварительную выборку на основании информации полученной от блока трассировки и предсказания ветвлений.
3. Декодер инструкций осуществляет преобразование CISC-инструкций x86 в последовательность RISC-микроопераций (или иначе микрокоманд). Большинство x86 инструкций декодируются примерно в две или три микрокоманды. Но встречаются и такие инструкции, которые декодируются в десятки микрокоманд. При декодировании сложные команды заменяются на последовательности микроопераций, которые хранятся в памяти микропрограмм (ПЗУ микрокода). Если в потоке команд оказывается команда условного перехода (ветвления программы), то включается механизм предсказания ветвления, который формирует адрес следующей выбираемой команды до того, как будет определено условие выполнения перехода.
4. После дешифровки микрооперации поступают в кэш память микрокоманд (он же кэш трассировки, Trace cache), где хранятся в упорядоченном виде. Концепция кэш трассировки, состоит в том, чтобы сохранять в кэше инструкций первого уровня не те команды, которые считаны из памяти, а уже декодированные последовательности. Таким образом, если некая x86-команда исполняется повторно, и она всё ещё находится в L1I, декодеру процессора не нужно снова преобразовывать её в последовательность команд «внутреннего кода», так как кэш память микрокоманд содержит данную последовательность в уже декодированном виде.
5. После формирования потоков микрокоманд производится выделение регистров, необходимых для выполнения декодированных команд. Эта процедура реализуется блоком распределения регистров, который выделяет для каждого указанного в команде логического регистра один из 128 физических регистров, входящих в состав блоков регистров замещения (БРЗ, в некоторых источниках этот блок называется регистровый файл Register File).
6. После подготовки процессора к выполнению микроопераций (резервирования регистров), они помещаются в очередь микроопераций.
7. Микрокоманды, находящиеся в очереди должны быть подготовлены к исполнению, в частности необходимо прочитать операнды, хранящиеся в памяти Адреса операндов, выбираемых из памяти, вычисляются блоком формирования адреса (БФА), который реализует интерфейс с кэш-памятью данных 1-го уровня (L1). При выборке операнда из памяти производится обращение к кэш памяти данных. За один такт производится выборка операндов для двух команд. Кэш-память данных первого уровня в свою очередь соединяется с кэшем второго уровня (L2) шиной шириной 256 бит.
Рисунок Архитектура процессора Pentium 4.
8. Планировщики микроопераций (отдельно для целочисленных инструкций и для инструкций с плавающей точкой) определяют готовность микроопераций, находящихся в очередях, к исполнению и направляют их на выполнение в соответствующие исполнительные блоки. Планировщик выбирает микрокоманды из очереди не в порядке их поступления, а по мере готовности соответствующих операндов и исполнительных устройств. В результате команды, поступившие позже, могут быть выполнены до ранее выбранных команд. При этом реализуется одновременное выполнение нескольких микрокоманд в параллельно работающих исполнительных устройствах.
9. Следующим шагом выполняется чтение операндов из регистров блока регистров замещения (регистрового файла). Напоминаем что, регистровый файл обеспечивает хранение результатов операций.
10. Исполнительные устройства, т.е. арифметико-логические устройства (ALU) или блоки обработки чисел с плавающей запятой (FP / MMX / SSE) выполняют микрокоманду.
11. После выполнения микроопераций происходит проверка корректности результатов. Если результаты выполнения микрооперации некорректны (например, был неверно предсказан переход), эта микрооперация или отправляется на повторное исполнение, или потребуется перезагрузка конвейера.
Многоядерные процессоры — процессоры, содержащие два и более вычислительных ядра на одном процессорном кристалле или в одном корпусе.
Во всех существующих на сегодняшний день многоядерных процессорах кэш-память первого уровня у каждого ядра своя, а кэш 2-го уровня существует в нескольких вариантах:
- разделяемый – кэш расположен на одном с обеими ядрами кристалле и доступен каждому из них в полном объеме. Используется в процессорах семейств Intel Core.
- индивидуальный – отдельные кэши равного объема, интегрированные в каждое из ядер. Обмен данными из кэшей L2 между ядрами осуществляется через контроллер памяти.
В приложениях, оптимизированных под многопоточность, наблюдается прирост производительности на двухъядерном процессоре. Однако, если приложение не оптимизировано, то оно не будет получать практически никакой выгоды от дополнительных ядер.
На сегодняшний день (2009) основными производителями процессоров — Intel и AMD дальнейшее увеличение числа ядер процессоров признано как одно из приоритетных направлений увеличения производительности. Уже освоено производство 4-ядерных процессоров для домашних компьютеров, а также 6-ядерных в серверных системах.
Intel Core 2 — восьмое выпущенное корпорацией Intel поколение микропроцессоров архитектуры x86, основанное на совершенно новой процессорной архитектуре, которая называется Intel Core. Это потомок архитектуры Intel P6 на которой, начиная с процессора Pentium Pro, построено большинство микропроцессоров Intel, исключая процессоры с архитектурой NetBurst. Первые процессоры Core 2 были представлены в 2006 году. Они делятся на модели Solo (одноядерные), Duo (двухъядерные), Quad (четырёхъядерные) и Extreme (двух- или четырёхъядерные с повышеной частотой и разблокированным множителем).
В отличие от процессоров архитектуры NetBurst (Pentium 4), в архитектуре Core 2 ставка делается не на повышение тактовой частоты, а на улучшение других параметров процессоров, таких как кэш, эффективность и количество ядер. Рассеиваемая мощность этих процессоров значительно ниже, чем у Pentium 4.
Информации по этим процессорам Intel предоставляет недостаточно, поэтому разобрать их архитектуру не представляется возможным.
Intel Core i7 — является преемником семейства Intel Core 2. Данная микроархитектура содержит ряд новых возможностей. Вот лишь некоторые из них, по сравнению с Core 2:
- Процессорная шина FSB (см. ниже) заменена на новую шину QuickPath (QPI), производительность которой составляет до 32 гигабайт в секунду.
- Контроллер памяти находится в самом процессоре, не в отдельном чипсете. Таким образом, процессор имеeт прямой доступ к памяти.
- Core i7 имеет 8-ми мегабайтный кэш третьего уровня (L3).
Шины
Все компоненты компьютера соединяются посредством шин, т.е. шины предназначены для обмена информацией между двумя и более компонентами (устройствами). Аналогично можно говорить о внутренних шинах процессора (передаёт данные между функциональными блоками), о шинах предназначенных для подключения внешних устройств (внешняя шина) и т.д. В отличие от связи точка—точка, к шине обычно можно подключить несколько устройств по одному набору проводников. Шина, связывающая только два устройства, называется портом.