590 likes | 830 Views
Архитектура P6. Архитектура P6. Начало разработки: 1990 год Цель: Достигнуть производительности большей, чем процессоры архитектуры P5 и процессоры конкурентов. Процессоры Pentium Pro (1995) до 200 МГц Pentium II (1997) до 450 МГц Pentium III (1999) до 1.3 ГГц
E N D
Архитектура P6 Начало разработки: 1990 год Цель: Достигнуть производительности большей, чем процессоры архитектуры P5 и процессоры конкурентов. Процессоры • Pentium Pro (1995) до 200 МГц • Pentium II (1997) до 450 МГц • Pentium III (1999) до 1.3 ГГц • Pentium M (2003) до 2.26 ГГц
Архитектура P6 Начало разработки: 1990 год Цель: Достигнуть производительности большей, чем процессоры архитектуры P5 и процессоры конкурентов. Процессоры • Pentium Pro (1995) до 200 МГц • Pentium II (1997) до 450 МГц • Pentium III (1999) до 1.3 ГГц • Pentium M (2003) до 2.26 ГГц
АрхитектураP6 Отличительные особенности ядра • 12-стадийный суперконвейер • Внешний интерфейс CISC, внутреннее ядро RISC • Двойная независимая шина • Динамическое исполнение команд • Предсказание ветвлений • Переименование регистров • Спекулятивное исполнение • Исполнение вне порядка • Суперскалярное исполнение Возможно исполнение до 3-х команд за такт.
Упрощенная структура конвейера P6 • Входной блок упорядоченной обработки команд (In-order front end) • Исполнительное ядро с изменением порядка исполнения (Out-of-order execution core) • Блок упорядоченного завершения команд (In-order retirement)
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Определение адреса следующей команды (на основании BTB).
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Чтение 2 кэш-строк, выборка пакета 16B, выравнивание пакета.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Декодирование: преобразование команд в uOPs. Обработка максимум 3-х команд x86 (6 uOPs: 4-1-1) за такт.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Декодирование: преобразование команд в uOPs. Максимум 1 команда перехода за такт. Информация о ветвлениях отправляется в BTB.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF На входе очереди максимум 6 uOPs за такт (4-1-1). На выходе очереди максимум 3 uOPs за такт.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Создается запись в Reorder Buffer. Отображение программных регистров на физические.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Чтение операндов для uOP.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Когда операнды готовы, uOP помещается в станцию резервации (RS) и ждет исполнения.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF В произвольном порядке uOP-ы запускаются на исполнение на различных исполнительных устройствах. Максимум 5 результатов за такт.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Операции чтения данных из памяти.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Операции записи данных в память.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Запись результатов в Reorder Buffer.
Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Завершение. Запись результатов в выводящий регистровый файл (RRF). Удаление uOPs из ROB. Запись данных в память. Максимум 3 uOPs за такт.
Блок неупорядоченного исполнения P6
Архитектура NetBurst Цель: Достигнуть большойпроизводительности за счет повышения тактовой частоты. Средства: • Большой конвейер с маленькими стадиями • Уменьшение задержек на ветвления – кэш трасс, большой BTB • Уменьшение задержек на обращение к памяти – быстрый кэш • Уменьшение команд, необходимых для выполнения задачи • Векторное расширение SSE2 Процессоры • Pentium 4 • Willamette до 2.4 ГГц • Northwood до 3.2 ГГц • Prescott до 3.х ГГц
АрхитектураNetBurst Отличительные особенности ядра • 20 или 31-стадийный гиперконвейер • Внешний интерфейс CISC, внутреннее ядро RISC • Динамическое исполнение команд • Предсказание ветвлений • Переименование регистров • Спекулятивное исполнение • Исполнение вне порядка • Суперскалярное исполнение • Кэш трасс (работает на половине частоты) • Небольшая кэш-память с быстрым доступом • Часть ядра работает на удвоенной частоте Возможно исполнение до 3-х команд за такт.
Кэш трасс • Состоит из 2048 блоков по 6 ячеек (256 наборов по 8 блоков) • Все блоке в каждой трассе связаны в двунаправленный список • Темп чтения – 1 блок за 2 такта
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Определение адреса следующей uOP в кэше трасс.
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Выборка из кэша трасс в очередь предвыборки до 6 uOPs за 2 такта, подстановка MROM векторов.
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Продвижение…
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Выборка 3 uOPs из очереди. Выделение ресурсов процессора (места в очередях, буфере переупорядочивания, регистровом файле).
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Отображение логических регистров на физические.
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Размещение uOP-овв 2-х очередях uopQ: для операций с памятью и для остальных операций.
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive 5 планировщиков в зависимости от типа операции выбирают uOPыиз очередей uopQ каждый в свою очередь schQ (аналог RS).
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Распределение uOPs из 5-ти очередей schQ по 4-м портам исполнительных устройств в произвольном порядке.
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Чтение операндов из регистрового файла.
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Исполнение
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Установка флагов.
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Проверка правильности предсказания переходов.
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Перенос результата проверки перехода в декодер.
Стадии конвейера P7 • TC next IP 1 • TC next IP 2 • TC Fetch 1 • TC Fetch 2 • Drive • Allocator • Rename 1 • Rename 2 • Queue • Schedule 1 • Schedule 2 • Schedule 3 • Dispatch 1 • Dispatch 2 • Register file 1 • Register file 2 • Execute • Flags • Branch check • Drive Далее uOP ждет отставки для освобождения ресурсов и записи результатов. Отставка происходит последовательно над теми же тройками uOPs, которые были сформированы на стадии Allocator.
Конвейер NetBurst Исполнение в порядке поступления команд Исполнение вне порядка
Rapid Execution Engine • Работает на удвоенной частоте ядра • Включает: • 2 планировщика быстрых целочисленных операций • Целочисленный регистровый файл • Порты запуска 0 и 1 • БыстрыеАЛУ.
Изменения в ядре Prescott • Длина конвейера увеличилась до 31 стадии • Увеличился объем и латентность кэш-памяти • Добавилось расширение SSE3 • Улучшенная предвыборка данных • Улучшенное предсказание ветвлений • Дополнительные буферы комбинированной отложенной записи в память • Ускорение некоторых операций с целыми числами (умножение, …)
Архитектура Core Разработана на основе P6. Цель: увеличить производительность, снизить энергопотребление и тепловыделение. Процессорные ядра: • Merom, Conroe, Woodcrest • Kentsfield, Clovertown • … Пока до 2.93 ГГц
Архитектура Core Реализованы новые технологии: • Intel Wide Dynamic Execution • выполнение до четырех инструкцийза такт • Intel Intelligent Power Capability • снижается энергопотребление системы • Intel Advanced Smart Cache • общая для всех ядер кэш-память L2 • Intel Smart Memory Access • оптимизирует использование пропускной способности подсистемы памяти • Intel Advanced Digital Media Boost • позволяет обрабатывать все 128-разрядные команды SSE, SSE2, SSE3, …за один такт