1 / 91

Обзор архитектур процессоров x86

Обзор архитектур процессоров x86. Intel P5, P6, P7, Core AMD K8, K10. Архитектура Intel P5 Pentium. Архитектура P5. Особенности архитектуры 5-стадийный конвейер Классический CISC -процессор Первая суперскалярная x86- архитектура 2 целочисленных конвейера : U и V

Download Presentation

Обзор архитектур процессоров x86

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Обзор архитектур процессоров x86 Intel P5, P6, P7, Core AMD K8, K10

  2. Архитектура Intel P5Pentium

  3. Архитектура P5 Особенности архитектуры • 5-стадийный конвейер • Классический CISC-процессор • Первая суперскалярная x86-архитектура • 2 целочисленных конвейера: U и V • Первое векторное расширение: MMX Процессоры • Pentium (1993) • Pentium MMX (1997) Частота: до 200 MHz До 2-х результатов за такт

  4. Архитектура P5

  5. Архитектура P5 • Стадии конвейера Pentium

  6. Архитектура P5 • Основное достижение: Первая суперскалярная x86 архитектура Первое векторное расширение

  7. Архитектура Intel P6

  8. Архитектура P6 Начало разработки: 1990 год Цель: Достигнуть производительности большей, чем процессоры архитектуры P5 и процессоры конкурентов. Процессоры • Pentium Pro (1995) до 200 МГц • Pentium II (1997) до 450 МГц • Pentium III (1999) до 1.3 ГГц • Pentium M (2003) до 2.26 ГГц

  9. АрхитектураP6 Отличительные особенности ядра • 12-стадийный суперконвейер • Внешний интерфейс CISC, внутреннее ядро RISC • Динамическое исполнение команд • Переименование регистров • Спекулятивное исполнение • Суперскалярное исполнение • Исполнение вне порядка (40 μops) До 3-х результатов за такт.

  10. Упрощенная структура конвейера P6 • Входной блок упорядоченной обработки команд (In-order front end) • Исполнительное ядро с изменением порядка исполнения (Out-of-order execution core) • Блок упорядоченного завершения команд (In-order retirement)

  11. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF

  12. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Определение адреса следующей команды (на основании BTB).

  13. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Чтение 2 кэш-строк, выборка пакета 16B, выравнивание пакета.

  14. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Декодирование: преобразование команд в uOPs. Обработка максимум 3-х команд x86 (6 uOPs: 4-1-1) за такт.

  15. Архитектура P6 • Устройство декодирования команд x86 • До 3 команд за такт • До 6 μops за такт

  16. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Декодирование: преобразование команд в uOPs. Обработка максимум 3-х команд x86 (6 uOPs: 4-1-1) за такт.

  17. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Декодирование: преобразование команд в uOPs. Максимум 1 команда перехода за такт. Информация о ветвлениях отправляется в BTB.

  18. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF На входе очереди максимум 6 uOPs за такт (4-1-1). На выходе очереди максимум 3 uOPs за такт.

  19. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Создается запись в Reorder Buffer. Отображение программных регистров на физические.

  20. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Чтение операндов для uOP.

  21. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Когда операнды готовы, uOP помещается в станцию резервации (RS) и ждет исполнения.

  22. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF В произвольном порядке uOP-ы запускаются на исполнение на различных исполнительных устройствах. Максимум 5 результатов за такт.

  23. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Операции чтения данных из памяти.

  24. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Операции записи данных в память.

  25. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Запись результатов в Reorder Buffer.

  26. Структура ядра P6 Стадии конвейера: • BTB0 • BTB1 • IFU0 • IFU1 • IFU2 • ID0 • ID1 • RAT • ROB read • RS • Ex • ROB write • RRF Завершение. Запись результатов в выводящий регистровый файл (RRF). Удаление uOPs из ROB. Запись данных в память. Максимум 3 uOPs за такт.

  27. Архитектура P6 • Основное достижение: Архитектура имеет большой потенциал

  28. Архитектура Intel P7NetBurst

  29. Архитектура NetBurst Цель: Достигнуть большойпроизводительности за счет повышения тактовой частоты. Средства: • Большой конвейер с маленькими стадиями • Уменьшение задержек на ветвления – кэш трасс, большой BTB • Уменьшение задержек на обращение к памяти – быстрый кэш • Уменьшение числа команд, необходимых для выполнения задачи • Векторное расширение SSE2 (любые типы данных на XMM) Процессоры • Pentium 4 • Willamette до 2.4 ГГц • Northwood до 3.2 ГГц • Prescott до 3.8 ГГц

  30. АрхитектураNetBurst Отличительные особенности ядра • 20 или 31-стадийный гиперконвейер • Внешний интерфейс CISC, внутреннее ядро RISC • Динамическое исполнение команд • Переименование регистров • Спекулятивное исполнение • Суперскалярное исполнение • Исполнение вне порядка(126μops) • Кэш трасс (работает на половине частоты) • Небольшая кэш-память с быстрым доступом • Часть ядра работает на удвоенной частоте • Аппаратная многопоточность (Hyper-Threading) До 3-х результатов за такт.

  31. Структура ядра архитектуры NetBurst

  32. Кэш трасс • Хранит декодированные микрооперации • Состоит из 2048 блоков по 6 ячеек (256 наборов по 8 блоков) • Все блоки в каждой трассе связаны в двунаправленный список • Темп чтения – 1 блок за 2 такта

  33. Стадии конвейера 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

  34. Стадии конвейера 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 Декодирование до 1 x86-команды за такт.

  35. Стадии конвейера 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 в кэше трасс.

  36. Стадии конвейера 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 векторов.

  37. Стадии конвейера 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 Продвижение…

  38. Стадии конвейера 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 из очереди. Выделение ресурсов процессора (места в очередях, буфере переупорядочивания, регистровом файле).

  39. Стадии конвейера 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 Отображение логических регистров на физические.

  40. Стадии конвейера 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: для операций с памятью (32 μops) и для остальных операций (16 μops).

  41. Стадии конвейера 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: для операций с памятью (32 μops) и для остальных операций (16 μops).

  42. Стадии конвейера 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).

  43. Стадии конвейера 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-м портам исполнительных устройств в произвольном порядке.

  44. Стадии конвейера 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 Чтение операндов из регистрового файла.

  45. Стадии конвейера 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 Исполнение

  46. Стадии конвейера 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 Исполнение

  47. Стадии конвейера 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 Установка флагов.

  48. Стадии конвейера 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 Проверка правильности предсказания переходов.

  49. Стадии конвейера 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 Перенос результата проверки перехода в декодер.

More Related