Архитектура VLIW / EPIC. Классификация архитектур Скалярные С параллелизмом на уровне команд (ILP) СуперскалярныеVLIW / EPIC RISCCISC Itanium2 Эльбрус.

Презентация:



Advertisements
Похожие презентации
Архитектура VLIW / EPIC Подстригайло Алена,
Advertisements

EPIC: Explicitly Parallel Instruction Computing (IA 64 )
Введение в параллельную обработку. Уровни параллелизма в процессорах Параллелизм данных (DLP – Data Level Parallelism) Параллелизм команд (ILP – Instruction.
Архитектура микропроцессоров И ее эволюция. Процессор и память: Команды и данные.
EPIC: Explicitly Parallel Instruction Computing (IA 64 )
Современные микропроцессоры Тенденции развития. Рассматриваемые процессоры Intel Itanium 2 Intel Core 2 Duo IBM Cell.
Архитектуры с параллелизмом на уровне команд. Два класса Суперскалярные процессоры Процессоры с длинным командным словом.
МИКРОПРОЦЕССОРЫ С ЭЛЕМЕНТАМИ АРХИТЕКТУРЫ IA-64 Курсовая работа Желинского А.Н.
Архитектуры с параллелизмом на уровне команд. Два класса Суперскалярные процессоры Процессоры с длинным командным словом.
Организация памяти. Иерархии памяти Идея иерархической (многоуровневой) организации памяти заключается в использовании на одном компьютере нескольких.
Типы компьютеров Complex Instruction Set Computer (CISC) – компьютер со сложным (полным) набором команд. Reduced Instruction Set Computer (RISC) – компьютер.
Организация ЭВМ и систем Кафедра Параллельных вычислений (ИВМиМГ) Маркова Валентина Петровна, Киреев Сергей Евгеньевич,
Архитектура современных ЭВМ Кафедра Параллельных вычислений (ИВМиМГ) Кафедра Параллельных вычислительных технологий Маркова Валентина Петровна,
Архитектура P6. Начало разработки: 1990 год Цель: Достигнуть производительности большей, чем процессоры архитектуры P5 и процессоры конкурентов. Процессоры.
Архитетура компьютерных систем. Архитектура системы команд как интерфейс между программным и аппаратным обеспечением Архитектура системы команд.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Интерфейсный блок AXI- коммутатора в составе системы на кристалле «Эльбрус-S2» Студент: Смольянов Павел 518 гр. Научный руководитель: Сахин Ю.Х.
Учебный курс Архитектура ЭВМ и язык ассемблера Лекция 9 заместитель министра связи и массовых коммуникаций РФ, старший преподаватель Северов Дмитрий Станиславович.
Характеристики ядра процессора Регистры –Количество –Типы регистров Общего назначения Адресные Регистры флагов Вычислительные устройства –ALU: Fixed-point.
The AMD Athlon (K7). Шина AMD Athlon AMD Opteron.
Транксрипт:

Архитектура VLIW / EPIC

Классификация архитектур Скалярные С параллелизмом на уровне команд (ILP) СуперскалярныеVLIW / EPIC RISCCISC Itanium2 Эльбрус 2000 Alpha Power, PowerPC SPARC MIPS x86 x86-64

Параллелизм на уровне команд (Instruction Level Parallelism) ILP-процессоры Имеют несколько исполнительных устройств Могут исполнять несколько команд одновременно Суперскалярные процессоры Процессор сам распределяет ресурсы VLIW / EPIC-процессоры Very Long Instruction Word / Explicitly Parallel Instruction Computing Компилятор распределяет ресурсы процессора

Архитектура VLIW / EPIC VLIW – Very Long Instruction Word EPIC – Explicitly Parallel Instruction Computing На входе процессора последовательность больших команд, состоящих из нескольких простых операций, которые могут исполняться параллельно. Преимущества перед суперскалярами: –Меньше места на процессоре тратится на управление, больше остается на ресурсы: регистры, исполнительные устройства, кэш-память. –Более тщательное планирование дает лучшее заполнение исполнительных устройств (больше команд за такт). Недостатки: –Долгое время планирования потока команд. –Невозможность учесть динамику исполнения программы.

Сравнение суперскалярных и VLIW/EPIC-процессоров Какие задачи управления приходится решать, чтобы процессор работал быстро: Параллельное исполнение команд –Нужно найти независимые команды Спекулятивное исполнение команд –Нужно заранее угадать, выполнится ли переход Спекулятивная загрузка данных –Нужно проверить корректность преждевременной загрузки данных Размещение данных на регистрах –Нужно оптимально использовать регистры процессора

Сравнение суперскалярных и VLIW/EPIC-процессоров Какие задачи управления приходится решать, чтобы процессор работал быстро: Параллельное исполнение команд –SS: Независимые команды ищет процессор –EPIC: Независимые команды ищет компилятор Спекулятивное исполнение команд –SS: Процессор автоматически предсказывает переход –EPIC: Компилятор подсказывает процессору как поступить Спекулятивная загрузка данных –SS: Процессор автоматически проверяет корректность –EPIC: Компилятор использует специальную команду проверки Размещение данных на регистрах –SS: Процессор автоматически отображает программные регистры на аппаратные и управляет стеком регистров –EPIC: Компилятор размещает данные на аппаратных регистрах и управляет стеком регистров с помощью специальных команд

Сравнение суперскалярных и VLIW/EPIC-процессоров Какие задачи управления приходится решать, чтобы процессор работал быстро: Параллельное исполнение команд –SS: Независимые команды ищет процессор –EPIC: Независимые команды ищет компилятор Спекулятивное исполнение команд –SS: Процессор автоматически предсказывает переход –EPIC: Компилятор подсказывает процессору Спекулятивная загрузка данных –SS: Процессор автоматически проверяет корректность –EPIC: Компилятор использует специальную команду проверки Размещение данных на регистрах –SS: Процессор автоматически отображает программные регистры на аппаратные и управляет стеком регистров –EPIC: Компилятор размещает данные на аппаратных регистрах и управляет стеком регистров с помощью специальных команд

Сравнение суперскалярных и VLIW/EPIC-процессоров Какие задачи управления приходится решать, чтобы процессор работал быстро: Параллельное исполнение команд –SS: Независимые команды ищет процессор –EPIC: Независимые команды ищет компилятор Спекулятивное исполнение команд –SS: Процессор автоматически предсказывает переход –EPIC: Компилятор подсказывает процессору Спекулятивная загрузка данных –SS: Процессор автоматически проверяет корректность –EPIC: Компилятор использует специальную команду проверки Размещение данных на регистрах –SS: Процессор автоматически отображает программные регистры на аппаратные и управляет стеком регистров –EPIC: Компилятор размещает данные на аппаратных регистрах и управляет стеком регистров с помощью специальных команд

Сравнение суперскалярных и VLIW/EPIC-процессоров СуперскалярныеVLIW-EPIC Простой компилятор, процессор планирует поток команд Меньше команд за такт: 3, 4, 5 (в среднем < 50%) Сложный компилятор планирует поток команд Больше команд за такт: 6, 8, до 23 (в среднем > 50%) Сложный исполнительный конвейер Меньше места на кристалле для ресурсов процессора Исполнительные устройства Регистры, кэш-память Простой исполнительный конвейер Больше места на кристалле для ресурсов процессора Исполнительные устройства Регистры, кэш-память

Предсказание ветвлений Выборка Декодирование в RISC Переименование регистров Переупорядочение и распараллеливание Исполнение Завершение CISCRISCVLIW Этапы обработки команды Сравнение конвейеров

Архитектура VLIW / EPIC История –M-10 (1972) –Cydrome ( ) Cydra-5 –256 bit VLIW (7 ops.), reg. rotation., sw. pipeline –МВК Эльбрус 3 ( ) –NXP Semiconductors TriMedia (1987, 1997, …) –VLIW / DSP, 5-8 ops., 256x128 bit regs, 45 FUs –Texas Instruments C6000 –VLIW / DSP

Архитектура Itanium

Семейство процессоров Itanium Itanium (Merced) 800 MHz 4 MB L3 cache 180 nm Itanium2 (McKinley) 1 GHz 3 MB L3 cache 180 nm Itanium2 (Madison) 1.5 GHz 6 MB L3 cache 130 nm Itanium2 (Montecito) 1.66 GHz 2×12 MB L3 cache 2 cores HyperThreading 90 nm Itanium (Tukwila) 1.73 GHz 24 MB L3 cache 4 cores HyperThreading 65 nm 2010

Itanium: планы и реальность

Архитектура Itanium (IA- 64) Явный ILP (параллелизм на уровне команд) –Компилятор объединяет команды процессора в связки, которые могут быть выполнены параллельно, –Процессор обеспечивает большое число ресурсов для реализации ILP. Способы увеличения ILP –Явная спекуляция по данным и управлению (уменьшает задержки по памяти), –Предикатное исполнение команд (устраняет ветвления), –Аппаратная поддержка программной конвейеризации циклов, –Предсказание ветвлений. Специальные способы увеличения производительности программ –Специальная поддержка модульности программ (регистровый стек, вращающиеся регистры), –Высокопроизводительная вещественная арифметика, –Специальные векторные инструкции.

Особенности процессоров архитектуры Itanium (IA-64) Простой широкий конвейер –Много команд за такт (до 6) Большие вычислительные ресурсы –Много исполнительных устройств (11) –Большой объем (до 12 MB) кэш- памяти –Большое число регистров (264)

Регистры IA-64

128 целочисленных регистра 64 бита + 1 бит NAT r0 = 0 целочисленные скалярные и векторные данные (1,2,4,8 байт) 128 вещественных регистра 82 бита ( ) f0 = 0.0,f1 = 1.0 вещественные скалярные и векторные данные (82, 2х32 бита) 64 предикатных регистра 1 бит p0 = 1 указания, выполнять ли команду 8 регистров ветвлений 64 бита адреса перехода 128 прикладных регистра Instruction Pointer

Вращение регистров Верхние 75% регистров вращающиеся: целочисленные: r32 – r127 вещественные: f32 – f127 предикатные: p16 – p63 При выполнении специальной команды перехода (в цикле) вращающиеся регистры сдвигаются вправо на один: Используется при программной конвейеризации циклов.

Стек регистров При вызове подпрограмм и возврате происходит сдвиг регистрового окна – целочисленные регистры работают как стек. Для автоматического сохранения/восстановления регистров в памяти при «переполнении/переизбытке» стека работает аппаратура RSE (Register Stack Engine). Она приостанавливает выполнение команд, ждущих соответствующие регистры.

Иерархия кэш-памяти Itanium2

Виртуальная память в IA битное виртуальное адресное пространство Размер страницы: 4 KB – 4 GB 32 entry L1d TLB (4KB), 128 entry Data TLB (4KB-4GB) Схема преобразования виртуального адреса в физический:

Конвейер Itanium2 IPG Вычисление IP, чтение кэша L1I (6 инст.) и TLB. EXE Выполнение (6), обращение к кэшу L1D и TLB + обращение к тэгам L2 кэша (4) RO T Расцепление и буферизация инструкций. DET Обнаружение исключений, выполнение переходов EXP Разворачивание инструкции, назначение порта WB Завершение, запись регистрового файла RE N Переименование регистров (6 инстр.) FP1- WB Конвейер FP FMAC + запись результата в регистр RE G Чтение регистровых файлов (6) L2N- L2I L2 Queue Nominate / Issue (4) L2A-WL2 Access, Rotate, Correct, Write (4) Короткий 8-стадийный конвейер Полностью детерминированный путь команд Упорядоченная выборка команд, неупорядоченное завершение Рассчитан на малые задержки при чтении данных!

Исполнительные устройства Число операций за такт

Сравнение Itanium2 и Opteron

Itanium2 Montecito (2006) Montecito: 2 ядра по 2 потока (HyperThreading)

Команды IA-64 Команды IA-64 имеют RISC-подобный фиксированный формат: –Пример команды:(p3) add r1 = r3, r4 Команды IA-64 объединяются в связки по три:

Команды IA-64 Связка содержит 3 команды, поле шаблона и стоп-биты. Шаблон указывает типы команд в связке. Он определяет, какие исполнительные устройства будут задействованы при исполнении. Типы команд:Устройство: M– memory / moveM I– complex integer / multimediaI A– simple integer / logic / multimediaI или M F– floating point (normal / SIMD)F B– branchB L+X– extendedI / B Стоп-биты определяют, после каких команд должен быть переход на следующий такт.

Команды IA-64 Всего возможно 24 различных шаблона: Процессор загружает максимум по 2 связки за такт. Только некоторые сочетания шаблонов в связках могут полностью загрузить исполнительные устройства:

Команды IA-64 Логические (and, …) Арифметические (add, …) Команды сравнения (cmp, …) Команды сдвига (shl, …) SIMD целочисленные (pmpy, …) Команды ветвлений (br, …) Команды управления циклом (br.cloop, …) Вещественные (fma, …) SIMD вещественные (fpma, …) Команды чтения / записи данных в памяти (ld,...) Команды присваивания (mov, …) Команды управления кэшированием (lfetch, …)

Особенности целочисленной арифметики в Itanium2 До 6 операций за такт Операция fma (y=a*b+c) выполняется на регистрах FR Реализованы некоторые операции над некоторыми векторами (1B, 2B, 4B) Целочисленное деление реализуется программно –Пример деления 32-битных целых чисел:

Особенности вещественной арифметики в Itanium2 Максимальная производительность –2 за такт: двойная точность –4 за такт: одинарная точность (SIMD) Основная операция –fma: f = a * b + c (4 такта) Быстрое преобразование значений между целыми и вещественными регистрами –FP INT (getf): 5 тактов –INT FP (setf): 6 тактов Операции деления (вещественного и целочисленного) и взятия квадратного корня реализованы программно

Особенности вещественной арифметики в Itanium2 Вещественное деление (32-bit float) Вычисление корня (32-bit float)

Предсказание ветвлений в Itanium2 BHT – таблица истории ветвлений –Адрес перехода и информация о предсказании в кэше L1i –Таблица на 12K 4-битных историй Pattern History Table –Таблица на 16K 2-битных счетчиков RSB – Буфер стека возврата –8 элементов Предсказание косвенных переходов –Использует 8 регистров ветвлений, подсказки компилятора Механизм предсказания выхода из циклов –Использует специальные счетчики

Предвыборка инструкций в Itanium2 Автоматическая предвыборка следующей кэш-строки в кэш команд L1, если она содержится в кэше L2. Подсказка компилятора в команде перехода: –br.few –br.many Подсказка компилятора: –brp.few –brp.many –Move address to Branch Register

Фрагмент кода на ассемблере для IA-64 Синтаксис инструкций:

Средства повышения производительности в IA- 64 Предикатное исполнение команд Аппаратные счетчики циклов Спекуляция по данным и управлению Регистровый стек, RSE Аппаратная поддержка программной конвейеризации циклов Intel Itanium Architecture Overview, p.40

Предикатное исполнение команд Позволяет зависимости по управлению (т.е. условные переходы) преобразовать в зависимости по данным. Пример: if (a==b) y=4; else y=3;

Аппаратные счетчики циклов Архитектурная поддержка циклов –По специальной команде перехода счетчики автоматически уменьшаются и делается проверка на выход из цикла –Можно не задействовать регистры общего назначения. Пример: mov ar.lc = 10 ;; Label: … тело цикла … br.cloop.sptk Label

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

Спекуляция по данным Команды загрузки могут выполняться до того, как обнаружится, что это действительно можно.

Программная конвейеризация цикла Архитектурная поддержка параллельного исполнения команд цикла. Выполняется с помощью: –Предикатных регистров –Аппаратных счетчиков цикла –Вращающихся регистров –Специальных команд перехода

Процессоры Itanium 9300 (Tukwila) Особенности нового Itanium-а Частота: до 1.73 GHz Режим Turbo boost: до 1.86 GHz 4 ядра Hyperthreading – 2 потока на ядро Интегрированный контроллер памяти Шина QPI – Quick Path Interconnect Первый в мире процессор, содержащий более 2 млрд. транзисторов

Процессоры Transmeta

Особенности архитектуры Архитектура VLIW Динамическая трансляция кода: x86 VLIW Интегрированный северный мост Ориентация на низкое энергопотребление Процессоры Crusoe (2000) 1.0 GHz Efficion (2003) 1.7 GHz

Динамическая двоичная компиляция Технология Code Morphing –Преобразование команд x86 в команды VLIW –Хранение транслированного кода в специальной области памяти (32 MB) –Динамическая оптимизация VLIW-кода

Динамическая двоичная компиляция Технология Code Morphing –Преобразование команд x86 в команды VLIW –Хранение транслированного кода в специальной области памяти (32 MB) –Динамическая оптимизация VLIW-кода Простое изменение входной системы команд исправление ошибок оптимизация процесса трансляции расширение системы команд поддержка различных программных архитектур

Динамическая двоичная компиляция Технология Code Morphing –Преобразование команд x86 в команды VLIW –Хранение транслированного кода в специальной области памяти (32 MB) –Динамическая оптимизация VLIW-кода

Динамическая двоичная компиляция Технология Code Morphing –Преобразование команд x86 в команды VLIW –Хранение транслированного кода в специальной области памяти (32 MB) –Динамическая оптимизация VLIW-кода

Динамическая двоичная компиляция Технология Code Morphing –Преобразование команд x86 в команды VLIW –Хранение транслированного кода в специальной области памяти (32 MB) –Динамическая оптимизация VLIW-кода

Динамическая двоичная компиляция Технология Code Morphing –Преобразование команд x86 в команды VLIW –Хранение транслированного кода в специальной области памяти (32 MB) –Динамическая оптимизация VLIW-кода

Процессор Transmeta Efficion Особенности Ширина командного слова 256 бит (8 команд) Кэш L1: 64 data / 128 KB code Кэш L2: 1 MB Интегрированный северный мост –Контроллер памяти DDR –Шина AGP –Шина HyperTransport Технология энергосбережения LongRun

Процессор Transmeta Efficion Стадии конвейера

Процессор Transmeta Efficion Структура команды Исполнительные устройства Отображение регистров

Архитектура Эльбрус 2000 Бабаян Борис Арташесович чл.корр. РАН Intel Fellow

Эльбрус 2000 ELBRUS – ExpLicit Basic Resources Utilization Scheduling (явное планирование использования основных ресурсов) Особенности архитектуры E2K Архитектура VLIW переменной длины Двоичная трансляция кода: x86 VLIW Аппаратная поддержка типов данных Реализации МВК Эльбрус 3 ( ) Эльбрус 3М (2005) 300 MHz

Процессор Эльбрус Характеристики Командное слово переменной длины (2 – 16 слогов) До 23 операций за такт Конвейер –Целочисленный:8 тактов –Чтение/запись:9 тактов Двоичная трансляция команд Аппаратная поддержка типов данных Разрядность данных –Целые:32, 64 –Вещественные:32, 64, 80 Кэш-память –данных L1:64 KB –кода L1:64 KB –L2:256 KB

Процессор Эльбрус Формат команды: –Число слогов: 2 – 16 –Типы слогов (максимальное число в команде) Заголовок (1) Операции АЛУ (6) Управление подготовкой перехода (3) Дополнительные операции АЛУ при зацеплении (2) Загрузка из буфера предварительной выборки массивов в регистр (4) Литеральные константы для ФУ (4) Логические операции с предикатами (3) Предикаты и маски для управления ФУ (3) –До 6 предикатов в команде Регистры –Общего назначения: 256 (64 бита): целочисл. и веществ. Механизм переключения окон –32 предикатных регистра (1 бит)

Процессор Эльбрус ALU0...ALU5 – арифметико- логические устройства; APU – устройство предварительной подкачки массивов; APB – буфер предварительной подкачки массивов; Bypass – обходные каналы; CU – устройство управления; PF – предикатный файл; IB – буфер команд; D$L1 – кэш данных 1-го уровня; D$L2 – кэш данных 2-го уровня; MAU – устройств организации доступа в оперативную память; MMU – устройство организации виртуальной памяти.

Процессор Эльбрус Динамическая трансляция кода