Считыва K 0 K1 K2 K3
ние BU
Дешифр K0 K1 K2 K3
ация IU
Вычисле K0 K1 K2 K3
ние
адреса
операнд
а AU
Выборка K0 K1 K2 K3
операнд
а BU
Выполн K0 K1 K2 K3
ение EU
Запись K0 K1 K2 K3
результ
ата BU
ЦП 80486
Основные нововведения:
Гибридное CISC/RISC-ядро (простые команды
выполняются за такт, сложные
интерпретируются по обычной технологии
CISC). Работает медленнее чистого RISC, но
сохраняет совместимость со старым ПО.
Встроенный математический сопроцессор
5-ступенчатый конвейер
Конвейерная обработка данных
в ЦП 80486
В ЦП 80486 – пятиступенчатый конвейер для обработки
данных:
Предвыборка команд (PF – Prefetch);
Декодирование команды (D1 – Instruction Decode);
Формирование адреса (D2 – Address Generate);
Выполнение команды в АЛУ и доступ к кэш-памяти (EX –
Execute);
Обратная запись (WB – Write Back).
1 2 3 4 5 6 7 8
PF К1 К2 К3 К4
D1 К1 К2 К3 К4
D2 К1 К2 К3 К4
EX К1 К2 К3 К4
WB К1 К2 К3 К4
ЦП Pentium
Основные отличия:
Увеличен размер страничной памяти.
(Возможность работы со страницами до 4 Мб,
одновременно со страницами размером 4 Кб)
64-разрядная ШД
Конвейеризация машинного цикла
Конвейер в FPU
Суперскалярная архитектура
Контроль четности адреса и данных
Раздельные блоки кэш-памяти для данных и
кода
Блок прогнозирования ветвлений
Средства управления питанием
ЦП Pentium (P5)
Микроархитектура Pentium и более поздних процессоров
базируется на идее суперскалярной обработки
D2 (U) D2 (V)
E (U) E (V)
WB (U) WB (V)
Спаривание – это процесс параллельного выполнения 2-х
команд, не зависящих друг от друга по данным или ресурсам.
Какие команды являются простыми
Простыми являются следующие команды:
MOV reg, reg/mem/imm Команды
MOV mem, reg/imm пересылки
ALU reg, reg/mem/imm Арифметические и
ALU mem, reg/imm логические операции
INC reg/mem Увеличение и
DEC reg/mem уменьшение на 1
PUSH reg/mem Операции
POP reg над стеком
LEA reg, mem Загрузка адреса
JMP/CALL/JCC near Команды передачи управления
NOP Пустая команда
Простые команды выполняются аппаратным способом и
исполняются за один такт, за исключением команд ALU mem, reg и
ALU reg, mem, которые требуют для выполнения два итри такта
соответственно, и их выполнение обеспечивается специальными
компонентами процессора.
Условные и безусловные переходы могут выступать только как
вторая команда в паре. SHIFT на 1, ROT на 1, SHIFT imm могут быть
лишь первой командой в паре.
Конвейеры ЦП Pentium
Пусть К1 и К2 — две последовательные команды. Оба
конвейера будут использоваться одновременно только при
выполнении следующих условий:
К1 и К2 — простые целочисленные инструкции.
К1 — не команда перехода.
Адрес назначения К1 не равен адресу источника К2.
Адрес назначения К1 не равен адресу назначения К2.
Если хотя бы одно из условий не выполняется, К1
отправляется в конвейер U, а конвейер V не используется.
Конвейерная обработка данных
в ЦП Pentium
1 2 3 4 5 6 7 8
PF К1 К3 К5 К7
К2 К4 К6 К8
D1 К1 К3 К5 К7
К2 К4 К6 К8
D2 К1 К3 К5 К7
К2 К4 К6 К8
EX К1 К3 К5 К7
К2 К4 К6 К8
WB К1 К3 К5 К7
К2 К4 К6 К8
Предсказание переходов
Согласно статистике, переходы встречаются в среднем
через каждые 6 команд. Условные переходы снижают
общую производительность процессора, так как в ожидании
этого перехода конвейер работает вхолостую. Поэтому
имеется специальный буфер адресов перехода, который
хранит статистику о последних 256 переходах. Почти в
любой программе имеются циклы, в ходе выполнения
которых периодически необходимо принимать решение
либо о выходе из цикла, либо о переходе на его начало.
Специальный блок предсказания адреса перехода
прогнозирует, какое решение будет принято программой.
При этом он основывается на предположении, что ветвь,
которая была пройдена, будет использоваться снова, и
загружает соответствующую команду перехода на
конвейер. Точность такого предсказания – примерно 80%.
ЦП Pentium (P5)
Схема
КЭШ команд, 8К предсказания
перехода
Конвейерный
Буфер предвыборки, 32 бита блок
V (5 ступ.)
FPU
U (5 или 8 ступ.)
АЛУ АЛУ
(целочисл.) (целочисл.)
Сложитель
Делитель
КЭШ данных, 8К
ЦП Pentium Pro (P6)
Основные нововведения:
Кэш-память 2-го уровня размером в 256 Кбайт
сопряжена с ЦП в виде второго кристалла
Двойная независимая шина (DIB - Dual Independent
Bus). Два отдельных канала:
Back Side Bus для кэша 2 уровня
Front Side Bus для чипсета
Динамическое исполнение
Внутренняя RISC архитектура (Сложные CISC-
команды разбиваются на группы простых,
выполняющихся за один такт RISC-команд)
Три 14-ступенчатых конвейера
ЦП Pentium Pro (P6)
Динамическое исполнение программы
Динамическое исполнение программы
представляет собой комбинацию трёх технологий
обработки данных:
Глубокое предсказание ветвлений (с
вероятностью > 90% можно предсказать 10 - 15
ближайших переходов)
Анализ потока данных (на 20-30 шагов вперед
посмотреть программу и определить зависимость
команд по данным или ресурсам)
Опережающее (внеочередное) исполнение
команд
Dual Independent Bus — DIB
При наличии двух независимых шин данных для
ввода-вывода процессор получает доступ к данным с
любой из них одновременно и параллельно. Основная
шина реализует интерфейс процессора и материнской
платы или набора микросхем системной логики. Вторая,
или фоновая (backside), входная шина процессора с DIB
применяется кэш-памятью второго уровня
Шина FSB соединена с системной платой, а шина кэш-
памяти второго уровня — напрямую с ядром процессора.
Для реализации архитектуры DIB кэш-память второго
уровня объединена в один корпус с процессором, что
позволило приблизить её быстродействие к скорости
встроенной кэш-памяти.
Структура микропроцессора
Pentium Pro
Кэш 2-го уровня, 256 Кбайт Буфер
(монтируется в один корпус с ЦП) запросов
Внешняя
64-разрядная Синхронная
синхронная 64-разрядная
шина шина
Буфер
Интерфейс памяти данных Блок интерфейса с памятью
За 1 такт выбираются 2 строки кэша
(строка – 32 байта)
Блок формирования адреса
Блок выборки Буфер команд,
Блок резервирования
инструкций 8 Кбайт Блок формирования адреса
Блок
предсказания Арифметическое устройство
переходов с фиксированной точкой
(512 входов)
Дешифратор команд
Арифметическое устройство
с фиксированной точкой
Дешифратор, Дешифратор, Дешифратор,
1 микро- 1 микро- 4 микро- Блок
операция операция операции микропрог- Арифметическое устройство
за такт за такт раммного с плавающей точкой
управления
Пул инструкций
Интерфейс шины
Пул команд
ЦП Pentium Pro (P6)
Внеочередное исполнение команд
Внеочередное исполнение операций означает,
что операции не обязаны выполняться в
функциональных устройствах строго в том порядке,
который определён в программном коде. Более
поздние (по коду) операции могут исполняться
перед более ранними, если не зависят от
порождаемых ими результатов.
Отставка выполненных машинных инструкций
после их выхода из подсистемы внеочередного
исполнения производится строго последовательно
для восстановления изначального порядка
следования операций. Процессор должен
гарантировать, что результаты «внеочередного»
выполнения программы совпадают с результатами
«правильного» последовательного выполнения.
ЦП Pentium Pro (P6)
Внеочередное исполнение команд
Внутренняя организация Pentium Pro
соответствует архитектуре RISC, поэтому блок выборки
команд, считав поток инструкций IA-32 из L1 кэша
инструкций, декодирует их в серию микроопераций.
Поток микроопераций попадает в буфер
переупорядочивания (пул инструкций). В нем содержатся
как еще не выполненные микрооперации, так и уже
выполненные, но еще не повлиявшие на состояние
процессора.
Для декодирования инструкций предназначены три
параллельных дешифратора: два для простых и один для
сложных инструкций. Каждая инструкция IA-32
декодируется в 1-4 микрооперации.
ЦП Pentium Pro (P6)
Внеочередное исполнение команд
Блок исполнительных устройств способен
выбирать инструкции из пула в любом порядке.
При этом благодаря блоку предсказания ветвлений
возможно выполнение инструкций, следующих за
условными переходами.
Блок резервирования постоянно отслеживает в
пуле инструкций те микрооперации, которые готовы к
исполнению, и направляет их на свободное
исполнительное устройство соответствующего типа.
Предсказание переходов
Pentium Pro, в отличие от Pentium проверяет
зависимость команды от результата предыдущих команд
не на один, а на много шагов вперед. Этот механизм
называется «анализом потока данных». Pentium Pro
обычно просматривает программу на 20-30 шагов вперед
относительно текущей команды и может выполнять уже
не две, а в среднем три инструкции одновременно.
Пиковая производительность «опережающего»
выполнения может достигать 5 инструкций в одном такте.
X1 X2 X3 X4
Y1 Y2 Y3 Y4
OP OP OP OP
X1 op Y1 X2 op Y2 X3 op Y3 X4 op Y4
ЦП Pentium IV (NetBurst)
Pentium 4 построен на совершенно новой архитектуре
— NetBurst (P7). За более чем 5 лет было выпущено
множество ядер и моделей Pentium 4. Ниже приведены
некоторые отличительные особенности оригинальной
архитектуры NetBurst (некоторые из них в последующем
были изменены):
Длина конвейера увеличена до 20 ступеней, что
позволяет легче наращивать тактовую частоту
Улучшена схема предсказания ветвлений (до 95%)
Частота новой шины 100 МГц (против 133 у Pentium
3), но за такт передаётся 4 пакета, то есть эффективная
частота — 400 МГц
АЛУ работает на удвоенной частоте ядра
Новый набор SIMD-расширений SSE2 (144 новые
инструкции)
Трассировочный кэш
Трассировочный кэш (Trace cache,
T-cache)
Важнейшим элементом процессора Intel Pentium 4
является трассировочный кэш (Trace cache, Т-кэш),
который выполняет ту же функцию, что и кэш инструкций
в классических микропроцессорах. Необходимость
создания такого устройства была связана с тем, что
разработчики процессора столкнулись с трудностями
реализации обычного кэша инструкций, эффективно
работающего на повышенных тактовых частотах. Эти
трудности обусловлены сложностью декодирования и
обработки машинных инструкций процессоров
архитектуры x86 (x86-инструкций), имеющих переменную
длину и неудобный формат. В процессоре Pentium 4 был
сделан следующий шаг - кэш разместили после блока
декодирования инструкций, и теперь в нём хранятся
микрооперации с регулярной структурой.
Архитектура NetBurst
Системная шина
Интерфейс шины
Кэш L2 Кэш L1
Выполнение на Выполнение на
процессоре без HT процессоре с HT
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5
ALU ALU
ALU ALU
FPU FPU
S/L S/L
Многоядерная технология
Технология HyperThreading всего лишь имитирует
наличие двух процессоров, но если даже имитация
нескольких процессоров принесла свои плоды, то
наличие двух и более процессоров в одном корпусе
принесут еще больший прирост производительности.
Многоядерные процессоры обладают всеми теми
же преимуществами, которые дают многопроцессорные
системы, однако стоят намного дешевле.
В 2005 году компании AMD и Intel представили
свои первые двухъядерные процессоры.
В ноябре 2006 года компания Intel представила
свои первые четырехядерные процессоры Core 2 Extreme
QX и Core 2 Quad. Свой первый четырехядерный
процессор компания AMD назвала Phenom X4.
Преимущества многоядерных
процессоров
• Реальная параллельная обработка
• Сниженное энергопотребление
• Компактность всей системы
Восьмое поколение процессоров (64-
разрядных). Core 2 архитектура. 65 nm.
• Широкое динамическое выполнение
• Интеллектуальная система энергоснабжения.
Интерактивная система включения внутренних
подсистем процессора только в случае их
необходимости
• Общий интеллектуальный кэш. Многоядерный
оптимизированный кэш увеличивает вероятность того,
что данные, необходимые каждому из ядер, будут
доступны в общем кэше второго уровня
• Интеллектуальный доступ к памяти. Включает
средство так называемого “устранения противоречий в
памяти”, которое содержит специальные алгоритмы,
позволяющие с достаточно высокой вероятностью
устанавливать зависимость последовательных команд
сохранения и загрузки данных
Восьмое поколение процессоров (64-
разрядных). Core 2 архитектура.
• Расширенная обработка цифрового мультимедиа.
Повышение производительности выполнения
потоковых инструкций SIMD (SSE) в два раза за счет
обработки всей 128разрядной инструкции за один такт.
• Intel VT - Аппаратная виртуализация позволяет
запускать на одном физическом компьютере (хосте)
несколько экземпляров операционных систем
(гостевых ОС) в целях обеспечения их независимости
от аппаратной платформы и эмуляции нескольких
(виртуальных) машин на одной физической.
• Execute Disable Bit - атрибут страницы памяти в
архитектурах x86 и x86-64, который может
применяться для более надежной защиты системы от
программных ошибок, а также использующих их
вирусов, троянских коней и прочих вредоносных
программ.
Intel Nehalem. 45 nm.
Архитектура построена на базе Core, но содержит
следующие кардинальные изменения:
•Встроенный контроллер памяти, поддерживающий 2
или 3 канала DDR3 SDRAM
•Новая шина QPI - последовательная кэш-
когерентная шина типа точка-точка для соединения
процессоров между собой и с чипсетом, пришла на
смену FSB.
•Возможность выпуска процессоров со встроенным
графическим процессором
•Добавлен кэш 3-его уровня
•Добавлена поддержка SMТ (организация 2-х
логических ядер из 1 физического)
Intel Sandy Bridge. 32 nm.
Чип Sandy Bridge – это четырёхъядерный 64-битный
процессор с изменяемой (out-of-order)
последовательностью исполнения команд,
поддержкой двух потоков данных на ядро (HT),
исполнением четырёх команд за такт; с
интегрированным графическим ядром и
интегрированным контроллером памяти DDR3; с
новой кольцевой шиной, поддержкой 3- и 4-
операндных (128/256-битных) векторных команд
расширенного набора AVX (Advanced Vector
Extensions); производство которого налажено на
линиях с соблюдением норм современного 32-нм
технологического процесса Intel.
Intel Sandy Bridge. 32 nm.
Структуру чипа Sandy Bridge
можно условно разделить на
следующие основные элементы:
1.процессорные ядра
2.графическое ядро
3.кеш-память L3
4.«Системный агент» - включает
в себя контроллер памяти DDR3,
модуль управления питанием
(Power Control Unit, PCU),
контроллеры PCI-Express 2.0,
DMI, блок видеовыхода и пр.
Intel Sandy Bridge. 32 nm.
Все перечисленные элементы объединены с помощью
256-битной кольцевой шины, которая состоит из 4-х 32-
байтных колец:
•шины данных (Data Ring);
•шины запросов (Request Ring);
•шины мониторинга состояния (Snoop Ring);
•шины подтверждения (Acknowledge Ring).