SlideShare a Scribd company logo
1 of 71
Организация ЭВМ и систем
Тема: Новые архитектурные решения
• VLIW архитектура
• Особенности IA – 64
• Особенности EPIC
Есть абсолютная догма;Есть абсолютная догма;
надо, чтобы машины были быстрые,надо, чтобы машины были быстрые,
с большой памятью,с большой памятью,
удобные для программирования.удобные для программирования.
Это ведь легко понятная задача.Это ведь легко понятная задача.
Борис Арташесович Бабаян
Создание процессора проходит несколько этапов.Создание процессора проходит несколько этапов.
Сначала продумывается архитектураСначала продумывается архитектура..
•А что такое архитектура и почему она так важна?А что такое архитектура и почему она так важна?
•Раньше,Раньше, до середины 60-хдо середины 60-х, вообще, вообще не былоне было
понятия архитектуры, каждая машина былапонятия архитектуры, каждая машина была
уникальнауникальна.. А потом постепенно возникла проблемаА потом постепенно возникла проблема
совместимости. В общем, архитектура – этосовместимости. В общем, архитектура – это
логическое устройство машины – в отличие отлогическое устройство машины – в отличие от
технологии, «железа». (Б.А.Бабаян)технологии, «железа». (Б.А.Бабаян)
Потом разрабатывается ее описание на одном изПотом разрабатывается ее описание на одном из
специальных языков высокого уровняспециальных языков высокого уровня, например,, например,
Verilog.Verilog.
Как сделать процессорКак сделать процессор
ДискуссияДискуссия -- метод обучения, направленный наметод обучения, направленный на
развитие критического мышления и коммуникативныхразвитие критического мышления и коммуникативных
способностей; предполагающий целенаправленный испособностей; предполагающий целенаправленный и
упорядоченный обмен мнениями, направленный наупорядоченный обмен мнениями, направленный на
согласование противоположных точек зрения и приход ксогласование противоположных точек зрения и приход к
общему основанию.общему основанию.
Нужны ли новые архитектурныеНужны ли новые архитектурные
решения для построения процессоров?решения для построения процессоров?
И возможно ли придумать что-то новое?И возможно ли придумать что-то новое?
Ее цель – групповое решение проблемы с
одновременной тренировкой участников в
соответствующих коммуникативных умениях и навыках.
Этот вид дискуссии состоит из 5 этапов:
зарождение идеи (участникам дается время на
выдвижение идей о путях решения данной проблемы);
все предложения выписываются на доске;
обсуждается каждый предложенный вариант;
рассматриваются наиболее подходящие варианты,
затем они располагаются по степени значимости, т.е.
осуществляется верификация идей;
руководитель организует дискуссию, в результате
которой остаются решения, получившие наибольшее
количество голосов, из них и выбирается окончательное.
Прогрессивная дискуссияПрогрессивная дискуссия
Когда вы участвуете в споре, в дискуссии, от вас хотятКогда вы участвуете в споре, в дискуссии, от вас хотят
услышать четкое обоснованное мнение. Вы можетеуслышать четкое обоснованное мнение. Вы можете
стремиться убедить или переубедить, или простостремиться убедить или переубедить, или просто
сообщить свою позицию.сообщить свою позицию.
Чтобы ваше выступление было кратким и ясным,Чтобы ваше выступление было кратким и ясным,
можно воспользоваться ПОПС-формулой:можно воспользоваться ПОПС-формулой:
ПП –– позицияпозиция (в чем заключается ваша точка зрения) – Я(в чем заключается ваша точка зрения) – Я
считаю, что…считаю, что…
ОО –– обоснованиеобоснование (на чем вы основываетесь, довод в(на чем вы основываетесь, довод в
поддержку вашей позиции) - …потому, что…поддержку вашей позиции) - …потому, что…
ПП –– примерпример (факты, иллюстрирующие ваш довод) - …(факты, иллюстрирующие ваш довод) - …
например…например…
СС –– следствиеследствие (вывод, что надо сделать, призыв к(вывод, что надо сделать, призыв к
принятию вашей позиции) -…поэтому….принятию вашей позиции) -…поэтому….
ПОПС-формулу часто называют МОПС-формулойПОПС-формулу часто называют МОПС-формулой
((Мнение-Объяснение-Пример-Следствие).Мнение-Объяснение-Пример-Следствие).
ПОПС-формулаПОПС-формула
Рекомендации для участника дискуссииРекомендации для участника дискуссии
1.1.ПП
2.2.ОО
3.3.ПП
4.4.СС
ПредложенияПредложения
1991 год1991 год
HP и Intel начали сотрудничество в областиHP и Intel начали сотрудничество в области
микропроцессоров в 1989 году. HP требовался процессормикропроцессоров в 1989 году. HP требовался процессор
следующего поколения для замены удачных серийследующего поколения для замены удачных серий
рабочих станций и серверов, построенных на базерабочих станций и серверов, построенных на базе
процессоров с архитектурой PA-RISC, и компания хотелапроцессоров с архитектурой PA-RISC, и компания хотела
воспользоваться достижениями и опытом Intel ввоспользоваться достижениями и опытом Intel в
разработке и производстве микрочипов.разработке и производстве микрочипов.
Новый процессор должен был использовать наборНовый процессор должен был использовать набор
инструкций с явным параллелизмом (EPIC),инструкций с явным параллелизмом (EPIC), в которомв котором
компилятор должен выстраивать инструкции длякомпилятор должен выстраивать инструкции для
параллельного исполнения.параллельного исполнения. Были добавленыБыли добавлены
возможности для совместимости с приложениямивозможности для совместимости с приложениями
разработанными как для Intel x86, так и для PA-RISC.разработанными как для Intel x86, так и для PA-RISC.
ИсторияИстория
Ожидалось, что разрабатываемый процессор будетОжидалось, что разрабатываемый процессор будет
доминировать на рынке серверов, рабочих станций и,доминировать на рынке серверов, рабочих станций и,
возможно, даже настольных ПК, вытеснив вездесущуювозможно, даже настольных ПК, вытеснив вездесущую
архитектуру x86. Предполагалось, что конкуренты Intel, вархитектуру x86. Предполагалось, что конкуренты Intel, в
первую очередь AMD, не смогут повторить новуюпервую очередь AMD, не смогут повторить новую
архитектуру.архитектуру.
Первое поколение процессоров, имеющее кодовоеПервое поколение процессоров, имеющее кодовое
имя Merced, было выпущено в 2001 году.имя Merced, было выпущено в 2001 году.
Предложенные в IA – 64 архитектурные идеи близки кПредложенные в IA – 64 архитектурные идеи близки к
концепцииконцепции VLIWVLIW (Very Large Instruction World – сверх(Very Large Instruction World – сверх
большое командное слово).большое командное слово).
VLIW - это набор команд, реализующий
горизонтальный микрокод.
Несколько (4-8) простых команд упаковываютсяНесколько (4-8) простых команд упаковываются
компилятором в длинное слово. Такое словокомпилятором в длинное слово. Такое слово
соответствует набору функциональных устройств.соответствует набору функциональных устройств. VLIWVLIW
архитектуру можно рассматривать, как статическуюархитектуру можно рассматривать, как статическую
суперскалярную архитектурусуперскалярную архитектуру.. Имея ввиду, чтоИмея ввиду, что
распараллеливание кода производится на этапераспараллеливание кода производится на этапе
компиляции,компиляции, а не динамически во время исполнения.а не динамически во время исполнения.
То есть, в машинном коде VLIW присутствует явныйТо есть, в машинном коде VLIW присутствует явный
параллелизм.параллелизм.
VLIW архитектураVLIW архитектура
ВВ IA – 64IA – 64 2 нововведения по сравнению с2 нововведения по сравнению с
RISC процессорами:RISC процессорами:
Применение технологии явногоПрименение технологии явного
параллелизма на уровне командпараллелизма на уровне команд ((EPICEPIC ––
Ecplicitly Parallel Instruction Computing).Ecplicitly Parallel Instruction Computing).
Применение предикатных вычисленийПрименение предикатных вычислений..
ПредикатыПредикаты – способ обработки ветвлений– способ обработки ветвлений
(условных переходов).(условных переходов).
Особенности IA – 64Особенности IA – 64
Особенности EPICОсобенности EPIC
Большое количество регистровБольшое количество регистров..
Масштабируемость архитектуры до большогоМасштабируемость архитектуры до большого
количества функциональных устройствколичества функциональных устройств. Это свойство. Это свойство
представители фирмы Intel и HP называютпредставители фирмы Intel и HP называют
«наследственно масштабируемый набор команд».«наследственно масштабируемый набор команд».
Явный параллелизм в машинном кодеЯвный параллелизм в машинном коде.. ПоискПоиск
зависимостей между командами производит независимостей между командами производит не
процессор, а компилятор.процессор, а компилятор.
ПредикацияПредикация.. Команды из разных ветвей условногоКоманды из разных ветвей условного
ветвленияветвления снабжаются предикатными полями (полямиснабжаются предикатными полями (полями
условий) иусловий) и запускаются параллельнозапускаются параллельно..
Загрузка по предположениюЗагрузка по предположению.. Данные изДанные из
медленной основной памяти загружаются заранеемедленной основной памяти загружаются заранее..
Описание IA - 64Описание IA - 64
Регистры IA – 64Регистры IA – 64::
128 64-разрядных регистров общего назначения.128 64-разрядных регистров общего назначения.
128 80-разрядных регистров вещественной128 80-разрядных регистров вещественной
арифметики.арифметики.
64 1-разрядных предикатных регистров.64 1-разрядных предикатных регистров.
Формат команды IA – 64Формат команды IA – 64::
Идентификатор команды.Идентификатор команды.
Три 7-разрядных поля операндов – 1 приемник и 2Три 7-разрядных поля операндов – 1 приемник и 2
источника (операндами могут быть только регистры, а ихисточника (операндами могут быть только регистры, а их
- 128=2- 128=277
) .) .
Особые поля для вещественной и целойОсобые поля для вещественной и целой
арифметики.арифметики.
6-разрядное предикатное поле (64=26-разрядное предикатное поле (64=266
).).
ПредикацияПредикация
Загрузка по предположениюЗагрузка по предположению
РегистрыРегистры
В их число входят:В их число входят: 128 регистров общего назначения128 регистров общего назначения
GR;GR; 128 регистров с плавающей запятой128 регистров с плавающей запятой FR;FR; 6464
регистра предикатоврегистра предикатов PR;PR; 8 регистров перехода8 регистров перехода BR;BR; 128128
прикладных регистраприкладных регистра AR; не менееAR; не менее 4 регистров4 регистров
идентификатора процессора CPUIDидентификатора процессора CPUID;; счетчик командсчетчик команд IP,IP,
указывающий на адрес связки, содержащей исполняемуюуказывающий на адрес связки, содержащей исполняемую
команду;команду; регистр маркера текущего окнарегистр маркера текущего окна CFM,CFM,
описывающий окно стека регистров и др.описывающий окно стека регистров и др.
Регистры CPUID являются 64-разрядными.Регистры CPUID являются 64-разрядными. В CPUID-В CPUID-
регистрах 0 и 1 лежит информация о производителе, врегистрах 0 и 1 лежит информация о производителе, в
регистре 2 находится серийный номер процессора, а врегистре 2 находится серийный номер процессора, а в
регистре 3 задается тип процессорарегистре 3 задается тип процессора (семейство,(семейство,
модель, версия архитектуры и т.п.)модель, версия архитектуры и т.п.) и число CPUID-и число CPUID-
регистроврегистров.. Разряды регистра 4 указывают наРазряды регистра 4 указывают на
поддержку конкретных особенностей IA-64поддержку конкретных особенностей IA-64, т.е. тех,, т.е. тех,
которые реализованы в данном процессоре.которые реализованы в данном процессоре.
Команды IA - 64Команды IA - 64
Команды IA-64 упаковываются (группируются)Команды IA-64 упаковываются (группируются)
компилятором в "связку" длиною в 128 pазpядов. Связкакомпилятором в "связку" длиною в 128 pазpядов. Связка
содержит 3 команды и шаблон, в котором будут указанысодержит 3 команды и шаблон, в котором будут указаны
зависимости между командами.зависимости между командами.
Перечислим все варианты составления связки из 3-хПеречислим все варианты составления связки из 3-х
команд:команд:
i1 || i2 || i3i1 || i2 || i3 - все команды исполняются- все команды исполняются
параллельно;параллельно;
i1 &i1 & i2 || i3i2 || i3 - сначала i1, затем исполняются- сначала i1, затем исполняются
параллельно i2 и i3;параллельно i2 и i3;
i1 || i2i1 || i2 & i3& i3 - параллельно исполняются i1 и i2,- параллельно исполняются i1 и i2,
после них - i3;после них - i3;
i1 & i2 & i3i1 & i2 & i3 - последовательно исполняются i1, i2, i3.- последовательно исполняются i1, i2, i3.
Одна такаяОдна такая связкасвязка, состоящая, состоящая из трех командиз трех команд,,
соответствует набору из трех функциональныхсоответствует набору из трех функциональных
устройств процессораустройств процессора..
Процессоры IA-64 могут содержать разноеПроцессоры IA-64 могут содержать разное
количество таких блоков, оставаясь при этомколичество таких блоков, оставаясь при этом
совместимыми по коду. Ведь благодаря тому, что всовместимыми по коду. Ведь благодаря тому, что в
шаблоне указана зависимость и между связками,шаблоне указана зависимость и между связками,
процессору с N одинаковыми блоками из трехпроцессору с N одинаковыми блоками из трех
функциональных устройства будет соответствоватьфункциональных устройства будет соответствовать
командное слово из N*3 командкомандное слово из N*3 команд ( N связок ).( N связок ). ТакимТаким
образом должна обеспечиваться масштабируемостьобразом должна обеспечиваться масштабируемость
IA-64.IA-64.
Недостатки IA-64:Недостатки IA-64:
без перекомпиляции код с одного процессорабез перекомпиляции код с одного процессора
семейства IA-64 не будет эффективно исполняться насемейства IA-64 не будет эффективно исполняться на
другом;другом;
в IA-64 можно произвольно (блоками по 3)в IA-64 можно произвольно (блоками по 3)
увеличивать количество функциональных устройств, ноувеличивать количество функциональных устройств, но
при этом число регистров должно оставатьсяпри этом число регистров должно оставаться
неизменным.неизменным.
размер кода для IA-64 будет больше, чем для RISCразмер кода для IA-64 будет больше, чем для RISC
процессоров, потому что на 3 команды IA-64 приходитсяпроцессоров, потому что на 3 команды IA-64 приходится
128 бит, а длина RISC команды обычно равна 32 бит, то128 бит, а длина RISC команды обычно равна 32 бит, то
есть, в 128 битах содержатся 4 команды RISC.есть, в 128 битах содержатся 4 команды RISC.
ПредикацияПредикация
Если в исходной программе встречается условноеЕсли в исходной программе встречается условное
ветвлениеветвление (по статистике - через каждые 6 команд),(по статистике - через каждые 6 команд), тото
команды из разных ветвей помечаются разнымикоманды из разных ветвей помечаются разными
предикатными регистрамипредикатными регистрами (команды имеют для этого(команды имеют для этого
предикатные поля),предикатные поля), далеедалее они выполняютсяони выполняются
совместносовместно,, но их результаты не записываются, покано их результаты не записываются, пока
значения предикатных регистров неопределенны.значения предикатных регистров неопределенны. КогдаКогда,,
наконец,наконец, вычисляется условие ветвления,вычисляется условие ветвления,
предикатный регистр, соответствующийпредикатный регистр, соответствующий
"правильной" ветви, устанавливается в 1, а другой -"правильной" ветви, устанавливается в 1, а другой -
в 0в 0. Перед записью результатов процессор будет. Перед записью результатов процессор будет
проверять предикатное поле и записывать результатыпроверять предикатное поле и записывать результаты
только тех команд, предикатное поле которых содержиттолько тех команд, предикатное поле которых содержит
предикатный регистр, установленный в 1.предикатный регистр, установленный в 1.
Загрузка по предположениюЗагрузка по предположению
Компилятор перемещает команды загрузки данных изКомпилятор перемещает команды загрузки данных из
памяти так, чтобы они выполнились как можно раньше.памяти так, чтобы они выполнились как можно раньше.
Следовательно, когда данные из памяти понадобятсяСледовательно, когда данные из памяти понадобятся
какой-либо команде, процессор не будет простаивать.какой-либо команде, процессор не будет простаивать.
Перемещенные таким образом команды называютсяПеремещенные таким образом команды называются
командами загрузки по предположению и помечаютсякомандами загрузки по предположению и помечаются
особым образомособым образом. А непосредственно перед командой,. А непосредственно перед командой,
использующей загружаемые по предположению данные,использующей загружаемые по предположению данные,
компилятор вставит команду проверки предположения.компилятор вставит команду проверки предположения.
Если при выполнении загрузки по предположениюЕсли при выполнении загрузки по предположению
возникнет исключительная ситуация, процессорвозникнет исключительная ситуация, процессор
сгенерирует исключение только, когда встретит командусгенерирует исключение только, когда встретит команду
проверки предположения. Если, например, командапроверки предположения. Если, например, команда
загрузки выносится из ветвления, ветвь, из которой оназагрузки выносится из ветвления, ветвь, из которой она
вынесена, не запускается, возникшая исключительнаявынесена, не запускается, возникшая исключительная
ситуация проигнорируется.ситуация проигнорируется.
Первая версия процессора под кодовым именемПервая версия процессора под кодовым именем
Merced (назван в честь города вблизи Сан-Хосе, США)Merced (назван в честь города вблизи Сан-Хосе, США)
поступила в продажу в июне 2001 года. Произведённый попоступила в продажу в июне 2001 года. Произведённый по
180 нм технологии с площадью кристалла в 25 мм²,180 нм технологии с площадью кристалла в 25 мм²,
напряжением на ядре 2 В и тепловыделением в 150 Вт, оннапряжением на ядре 2 В и тепловыделением в 150 Вт, он
работал на частотах 733 МГц и 800 МГц с частотойработал на частотах 733 МГц и 800 МГц с частотой
системной шины 266 МГц, кэш-памятью 3-го уровнясистемной шины 266 МГц, кэш-памятью 3-го уровня
размером в 2 МБ или в 4 МБ. Поддерживались SIMDразмером в 2 МБ или в 4 МБ. Поддерживались SIMD
инструкции MMX и SSE. Рассчитан на установку в Slot M иинструкции MMX и SSE. Рассчитан на установку в Slot M и
память SDRAM (PC 100). Стоили чипы от $1200 до болеепамять SDRAM (PC 100). Стоили чипы от $1200 до более
чем $4000.чем $4000.
В режиме IA-64 это был самый быстрый процессорВ режиме IA-64 это был самый быстрый процессор
для вычислений с плавающей запятой, имеющийся надля вычислений с плавающей запятой, имеющийся на
рынкерынке. В то же время, в целочисленных вычислениях он. В то же время, в целочисленных вычислениях он
лишь немного превосходил процессоры равной частоты слишь немного превосходил процессоры равной частоты с
системой команд x86.системой команд x86.
Продажи процессора оказались менее успешными, чемПродажи процессора оказались менее успешными, чем
предполагалась. Основными причинами этому былипредполагалась. Основными причинами этому были
проблемы с производительностью и малое количествопроблемы с производительностью и малое количество
оптимизированного под Merced программногооптимизированного под Merced программного
обеспечения. Несмотря на то, что процессор могобеспечения. Несмотря на то, что процессор мог
исполнять инструкции x86, производительность такогоисполнять инструкции x86, производительность такого
решения была значительно ниже в сравнении с x86-решения была значительно ниже в сравнении с x86-
системами от Intel и AMD.системами от Intel и AMD.
При выполнении не оптимизированного программногоПри выполнении не оптимизированного программного
кода для x86 его производительность была в 8 разкода для x86 его производительность была в 8 раз
меньше, чем у x86 процессоров на той же частоте.меньше, чем у x86 процессоров на той же частоте.
Архитектура ItaniumАрхитектура Itanium
Itanium — микропроцессорItanium — микропроцессор
с архитектурой IA-64,с архитектурой IA-64,
разработанный совместноразработанный совместно
компаниями Intel и Hewlett-компаниями Intel и Hewlett-
Packard.Packard.
Впервые был представленВпервые был представлен
29 мая 2001 года29 мая 2001 года. Производство. Производство
Itanium прекращено в июле 2002Itanium прекращено в июле 2002
года одновременно с выходомгода одновременно с выходом
Itanium 2. Однако в ноябре 2007Itanium 2. Однако в ноябре 2007
года Intel переименовала сериюгода Intel переименовала серию
процессоров Itanium 2 обратно впроцессоров Itanium 2 обратно в
Itanium.Itanium.
Внутреннее устройство процессораВнутреннее устройство процессора
Intel Itanium 2Intel Itanium 2
Процессор Intel Itanium 2 состоит из следующих
функциональных модулей:
6 целочисленных АЛУ;
6 мультимедийных АЛУ;
2 вещественных арифметических устройства
повышенной точности;
2 вещественных арифметических устройства обычной
точности;
2 устройства чтения;
2 устройства записи;
3 устройства ветвления.
Конвейер процессора Intel Itanium 2 состоит из 8Конвейер процессора Intel Itanium 2 состоит из 8
этаповэтапов и может параллельно обрабатывать до 6и может параллельно обрабатывать до 6
инструкций за один такт.инструкций за один такт.
На первой стадии (IPG – Instruction Pointer Generation)На первой стадии (IPG – Instruction Pointer Generation)
происходит доставка инструкций из кэша первого уровня.происходит доставка инструкций из кэша первого уровня.
На второй стадии (ROT – Rotate stage) происходитНа второй стадии (ROT – Rotate stage) происходит
«выравнивание» инструкций и их размещение в«выравнивание» инструкций и их размещение в
специальном буфере для организации возможностиспециальном буфере для организации возможности
параллельной обработки.параллельной обработки.
На третьей стадии (EXP – Expand stage) производитсяНа третьей стадии (EXP – Expand stage) производится
декодирование инструкций и непосредственное ихдекодирование инструкций и непосредственное их
распределение по функциональным модулям. Всего можетраспределение по функциональным модулям. Всего может
быть загружено максимум 6 инструкций.быть загружено максимум 6 инструкций.
На следующей стадии (REN – Rename stage)На следующей стадии (REN – Rename stage)
происходит сопоставление «виртуальных» ассемблерныхпроисходит сопоставление «виртуальных» ассемблерных
регистров, физическим ячейкам кристалла.регистров, физическим ячейкам кристалла.
На пятой стадии (REG – Register Read stage)На пятой стадии (REG – Register Read stage)
происходит считывание значений регистровпроисходит считывание значений регистров
функциональными модулями.функциональными модулями.
На шестой стадии (EXE – Execution stage) собственноНа шестой стадии (EXE – Execution stage) собственно
осуществляются функциональные вычисления.осуществляются функциональные вычисления.
На седьмой стадии (DET – Detection stage)На седьмой стадии (DET – Detection stage)
производится контроль возникновения исключений.производится контроль возникновения исключений.
На последней стадии конвейера (WRB – Write BackНа последней стадии конвейера (WRB – Write Back
stage) происходит запись результатов вычислений обратноstage) происходит запись результатов вычислений обратно
в регистры.в регистры.
Процессоры Intel Itanium 2 имеют в своем составеПроцессоры Intel Itanium 2 имеют в своем составе
кэши трех уровней.кэши трех уровней. Кэш первого уровня составляет 32 КбКэш первого уровня составляет 32 Кб
и работает на скорости работы процессораи работает на скорости работы процессора.. Кэш второгоКэш второго
уровня составляет 256 Кб и работает на скорости 64уровня составляет 256 Кб и работает на скорости 64
ГБ/сек.ГБ/сек. Кэш третьего уровня может достигать 24 Мб иКэш третьего уровня может достигать 24 Мб и
является самым медленным, работает на скорости 32является самым медленным, работает на скорости 32
ГБ/сек.ГБ/сек.
Архитектура Intel Itanium зарекомендовала себя как,Архитектура Intel Itanium зарекомендовала себя как,
вполне жизнеспособная, и по многим показателям намноговполне жизнеспособная, и по многим показателям намного
превосходящая альтернатива распространенным напревосходящая альтернатива распространенным на
сегодняшний день RISC и CISC архитектурам. Всегодняшний день RISC и CISC архитектурам. В
настоящее время сфера применения процессоров Intelнастоящее время сфера применения процессоров Intel
Itanium ограничена наукоемкими расчетными задачами, аItanium ограничена наукоемкими расчетными задачами, а
также критическими бизнес приложениями.также критическими бизнес приложениями.
Помимо семейства IA-64 шли разработки ещеПомимо семейства IA-64 шли разработки еще
нескольких универсальных процессоров с VLIW-подобнойнескольких универсальных процессоров с VLIW-подобной
архитектурой.архитектурой.
Б.А. БабаянБ.А. Бабаян, удостоенный в 1987 году звания лауреата, удостоенный в 1987 году звания лауреата
Ленинской премии за разработку и внедрениеЛенинской премии за разработку и внедрение
многопроцессорной системы “Эльбрус-2”, сохраняет, с одноймногопроцессорной системы “Эльбрус-2”, сохраняет, с одной
стороны, пост директора Института микропроцессорныхстороны, пост директора Института микропроцессорных
вычислительных систем РАН, с другой стороны, Б.А. Бабаян свычислительных систем РАН, с другой стороны, Б.А. Бабаян с
августа 2004 года занимает должность директора поавгуста 2004 года занимает должность директора по
архитектуре в подразделении программных решенийархитектуре в подразделении программных решений
корпорации Intel и руководит глобальным проектом покорпорации Intel и руководит глобальным проектом по
технологии безопасных вычислений. Онтехнологии безопасных вычислений. Он стал первымстал первым
европейским ученым, получившим звание заслуженногоевропейским ученым, получившим звание заслуженного
инженера – исследователя Intel,инженера – исследователя Intel, ряд его изобретенийряд его изобретений
внедряются корпорацией.внедряются корпорацией.
Архитектура Е2КАрхитектура Е2К
(реализована в суперкомпьютере Эльбрус 3)(реализована в суперкомпьютере Эльбрус 3)
В E2K используютсяВ E2K используются команды переменной длиныкоманды переменной длины..
Общий формат команд E2K представлен на рисунке.Общий формат команд E2K представлен на рисунке.
Команда E2K состоит из слогов длиной 32 разрядаКоманда E2K состоит из слогов длиной 32 разряда
каждый. Число этих слогов может меняться от 2 до 16,каждый. Число этих слогов может меняться от 2 до 16,
причем данную архитектуру можно еще расширить – допричем данную архитектуру можно еще расширить – до
32 слогов.32 слогов.
Любая команда всегда включает 1 слог заголовка иЛюбая команда всегда включает 1 слог заголовка и
еще от 1 до 15 слогов, указывающих на операции,еще от 1 до 15 слогов, указывающих на операции,
которые могут выполняться параллельнокоторые могут выполняться параллельно.. СлогСлог
заголовка содержит информацию о структурезаголовка содержит информацию о структуре
команды и ее длине, что облегчает дешифрациюкоманды и ее длине, что облегчает дешифрацию
команды переменной длиныкоманды переменной длины.. Применение заголовкаПрименение заголовка
позволяет не проводить предварительного декодированияпозволяет не проводить предварительного декодирования
команд перед их помещением в кэш команд.команд перед их помещением в кэш команд.
Слог заголовка Слог 1 … Слог №
В архитектуре E2K представленВ архитектуре E2K представлен сверхбольшой файлсверхбольшой файл
регистроврегистров.. Все регистрыВсе регистры E2K являютсяE2K являются
универсальнымиуниверсальными ии могут содержатьмогут содержать каккак
целочисленные данныецелочисленные данные, так, так и числа с плавающейи числа с плавающей
запятойзапятой. Всего имеется. Всего имеется 256 регистров длиной по 64256 регистров длиной по 64
разряда каждый.разряда каждый.
В E2K естьВ E2K есть два почти симметричных кластера,два почти симметричных кластера,
каждый из которых содержит по 256 регистровкаждый из которых содержит по 256 регистров.. Всего вВсего в
этом процессоре имеется 30 регистровых портов: 20 портовэтом процессоре имеется 30 регистровых портов: 20 портов
чтения (по 10 портов на кластер) и 10 портов записи.чтения (по 10 портов на кластер) и 10 портов записи.
В Alpha 21264 применяется реализованное во многихВ Alpha 21264 применяется реализованное во многих
суперскалярных процессорах динамическое переименованиесуперскалярных процессорах динамическое переименование
регистроврегистров.. Этого механизма в E2K нет, так как в нем подобныеЭтого механизма в E2K нет, так как в нем подобные
задачи возлагаются на компилятор, однакозадачи возлагаются на компилятор, однако в циклах св циклах с
постоянным шагом применяетсяпостоянным шагом применяется аналогичнаяаналогичная схемасхема
циклической замены используемых регистров.циклической замены используемых регистров.
Еще одна особенность E2K –Еще одна особенность E2K – регистровое окно длярегистровое окно для
процедурыпроцедуры.. Это решение является традиционным для машинЭто решение является традиционным для машин
серии «Эльбрус», однако особенно важным оно является длясерии «Эльбрус», однако особенно важным оно является для
архитектуры E2K, поскольку содержит сверхбольшое количествоархитектуры E2K, поскольку содержит сверхбольшое количество
регистров – 256.регистров – 256.
Затраты на сохранение/восстановление регистров вЗатраты на сохранение/восстановление регистров в
данной ситуации становятся весьма значительными.данной ситуации становятся весьма значительными.
Поэтому реализация в E2KПоэтому реализация в E2K аппаратного механизмааппаратного механизма
переключения оконпереключения окон представляется актуальной.представляется актуальной. ОкноОкно
регистров в E2K имеет переменную длину (до 192регистров в E2K имеет переменную длину (до 192
регистров).регистров). Адресация регистров внутри контекста происходитАдресация регистров внутри контекста происходит
относительно текущей базы, и при вызове другой процедурыотносительно текущей базы, и при вызове другой процедуры
достаточно сменить значение базы.достаточно сменить значение базы.
Кэш данных первого уровняКэш данных первого уровня в E2K имеет емкостьв E2K имеет емкость
всеговсего 8 Кбайт8 Кбайт ии продублирован в каждом из кластеровпродублирован в каждом из кластеров..
Этот кэш является прямоадресуемым, использует алгоритмЭтот кэш является прямоадресуемым, использует алгоритм
сквозной записи данных.сквозной записи данных.
Кэш данных второго уровняКэш данных второго уровня в E2K имеет емкостьв E2K имеет емкость 256256
КбайтКбайт при времени доступа в 8 тактов. Он являетсяпри времени доступа в 8 тактов. Он является
двухканальным частично-ассоциативнымдвухканальным частично-ассоциативным и имеети имеет 44
банкабанка, то есть обеспечивает 4-кратное расслоение кэш-, то есть обеспечивает 4-кратное расслоение кэш-
памяти. В кэше данных второго уровняпамяти. В кэше данных второго уровня применяетсяприменяется
алгоритм обратной записиалгоритм обратной записи. Он также является. Он также является
неблокирующим.неблокирующим.
Кроме этого в E2K представленКроме этого в E2K представлен специализированныйспециализированный
кэш предварительной выборкикэш предварительной выборки, который разработчики, который разработчики
назвалиназвали буфером предварительной подкачкибуфером предварительной подкачки.. Он являетсяОн является
частью устройства доступа к массивам и задействуется толькочастью устройства доступа к массивам и задействуется только
при работе с массивами в циклах.при работе с массивами в циклах. Его емкость составляетЕго емкость составляет
всеговсего 4 Кбайт4 Кбайт, и он, и он состоит из 2 банковсостоит из 2 банков с 2 портами вс 2 портами в
каждом из них.каждом из них. За один такт в буфер можно считать,За один такт в буфер можно считать,
следовательно, до 4 слов длиной 8 байт. Буфер организован какследовательно, до 4 слов длиной 8 байт. Буфер организован как
очередь FIFO и имеет до 64 зон предварительной выборки.очередь FIFO и имеет до 64 зон предварительной выборки.
В Е2К предусматриваютсяВ Е2К предусматриваются два варианта подключениядва варианта подключения
третьего уровня кэштретьего уровня кэш: непосредственно к процессору Е2К,: непосредственно к процессору Е2К,
что позволяет разгрузить «системную шину» – коммутатор,что позволяет разгрузить «системную шину» – коммутатор,
или через набор коммутаторных микросхем.или через набор коммутаторных микросхем.
Функциональные устройства (ФУ) E2K разнесеныФункциональные устройства (ФУ) E2K разнесены
по двум кластерампо двум кластерам. Эти кластеры содержат по. Эти кластеры содержат по 33
одинаковых целочисленных конвейера – АЛУодинаковых целочисленных конвейера – АЛУ (правда,(правда,
один из кластеров имеет также ФУ деления –один из кластеров имеет также ФУ деления –
целочисленного и с плавающей запятой).целочисленного и с плавающей запятой).
В каждом кластере представлены также адресныеВ каждом кластере представлены также адресные
сумматоры, которые имеются для 2 из 3 путей («каналов»)сумматоры, которые имеются для 2 из 3 путей («каналов»)
данных. В результатеданных. В результате каждый кластер можеткаждый кластер может
одновременно выполнять до 2 операций загрузкиодновременно выполнять до 2 операций загрузки
регистров или 1 операцию записи в оперативнуюрегистров или 1 операцию записи в оперативную
памятьпамять. Возможен и смешанный случай: 2 загрузки плюс. Возможен и смешанный случай: 2 загрузки плюс
одна запись.одна запись.
Кроме того, имеется 4 канала для данных с плавающейКроме того, имеется 4 канала для данных с плавающей
запятой, по 2 на кластер. В каждом канале можетзапятой, по 2 на кластер. В каждом канале может
выполнятьсявыполняться команда типа MADDкоманда типа MADD – «умножить-и-– «умножить-и-
сложить», что дает темп 8 результатов с плавающейсложить», что дает темп 8 результатов с плавающей
запятой за такт.запятой за такт.
Сам набор команд E2K «богаче», чем у традиционныхСам набор команд E2K «богаче», чем у традиционных
RISC-процессоров: в нем представленыRISC-процессоров: в нем представлены
четырехадресные командычетырехадресные команды, например, типа d=a+b+c., например, типа d=a+b+c.
Такого нет и в IA-64. Что касается команд с плавающейТакого нет и в IA-64. Что касается команд с плавающей
запятой, то кроме полной поддержки IEEE754 в E2Kзапятой, то кроме полной поддержки IEEE754 в E2K
реализована работа с 80-разрядным представлениемреализована работа с 80-разрядным представлением
Intel x86Intel x86.. При этом операнды хранятся в парах 64-разрядныхПри этом операнды хранятся в парах 64-разрядных
регистров E2K. Правда, сложение/умножение таких чисел нерегистров E2K. Правда, сложение/умножение таких чисел не
полностью конвейеризовано. Кроме того, для приближенияполностью конвейеризовано. Кроме того, для приближения
системы команд E2K к x86 в E2Kсистемы команд E2K к x86 в E2K реализованы такжереализованы также
команды расширения ММХ.команды расширения ММХ.
В E2KВ E2K целочисленный конвейер имеет длину 8целочисленный конвейер имеет длину 8
тактовтактов (собственно выполнение идет на седьмом такте, а(собственно выполнение идет на седьмом такте, а
обратная запись – на восьмом) против 7 тактов в Alphaобратная запись – на восьмом) против 7 тактов в Alpha
21264.21264.
Е2К обеспечивает очень высокий уровеньЕ2К обеспечивает очень высокий уровень
одновременно выполняемых операций: в команде иходновременно выполняемых операций: в команде их
кодируется до 23 (сюда кроме арифметико-логическихкодируется до 23 (сюда кроме арифметико-логических
операций входят также доступ в оперативную память,операций входят также доступ в оперативную память,
приращение индекса массива и т.п.). Эффективныеприращение индекса массива и т.п.). Эффективные
показатели параллельной работы ФУ у E2K выше, чем упоказатели параллельной работы ФУ у E2K выше, чем у
всех суперскалярных процессоров.всех суперскалярных процессоров.
В архитектуре E2K, как и в IA-64, делается все, чтобыВ архитектуре E2K, как и в IA-64, делается все, чтобы
по возможности исключить обычные операции перехода.по возможности исключить обычные операции перехода.
Для этого в E2KДля этого в E2K имеется 32 одноразрядных регистра-имеется 32 одноразрядных регистра-
предикатапредиката, причем команда способна сформировать до 7, причем команда способна сформировать до 7
предикатов: 4 в операциях сравнения в АЛУ и еще 3 – впредикатов: 4 в операциях сравнения в АЛУ и еще 3 – в
операциях логики.операциях логики.
Хотя в IA-64 предикатных регистров формально в 2Хотя в IA-64 предикатных регистров формально в 2
раза больше, чем в E2K, реально их практическираза больше, чем в E2K, реально их практически
столько же, так как в IA-64 хранятся пары – предикат и егостолько же, так как в IA-64 хранятся пары – предикат и его
отрицание. В IA-64 поля предикатов всегда представленыотрицание. В IA-64 поля предикатов всегда представлены
в команде, а в E2K – могут отсутствовать. Предикатыв команде, а в E2K – могут отсутствовать. Предикаты
могут использоваться в канале АЛУ или в канале доступамогут использоваться в канале АЛУ или в канале доступа
к массивам; для указания на это используются условныек массивам; для указания на это используются условные
слоги, содержащие маски предикатов и ФУ. Всего в этихслоги, содержащие маски предикатов и ФУ. Всего в этих
слогах может кодироваться до 6 предикатов, указывающихслогах может кодироваться до 6 предикатов, указывающих
на то, нужно ли выполнять соответствующие операции изна то, нужно ли выполнять соответствующие операции из
«широкой» команды.«широкой» команды.
Компилятор E2K порождает коды для обоих ветвейКомпилятор E2K порождает коды для обоих ветвей
программыпрограммы, возникающих при условном переходе, и,, возникающих при условном переходе, и,
пользуясь большим числом ФУ и регистров, заставляетпользуясь большим числом ФУ и регистров, заставляет
процессоры выполнять обе ветви программы. Та жепроцессоры выполнять обе ветви программы. Та же
процедура применяется и в IA-64. До тех пор, покапроцедура применяется и в IA-64. До тех пор, пока
условие перехода остается неизвестным,условие перехода остается неизвестным, обе ветвиобе ветви
выполняются спекулятивновыполняются спекулятивно. Когда, наконец, условие. Когда, наконец, условие
найдено, выбираются нужные результаты. Признакнайдено, выбираются нужные результаты. Признак
спекулятивного выполнения взводится при этом вспекулятивного выполнения взводится при этом в
специальном бите в коде операции в соответствующемспециальном бите в коде операции в соответствующем
слоге. При возникновении ситуации исключенияслоге. При возникновении ситуации исключения
(exception) результат снабжается тегом(exception) результат снабжается тегом
недействительного значения.недействительного значения.
В файле предикатов E2K, как и в регистровом файле,В файле предикатов E2K, как и в регистровом файле,
используются окна.используются окна.
Еще некоторые особенности архитектуры E2K:Еще некоторые особенности архитектуры E2K:
 тегирование данныхтегирование данных, поддерживаемое во всей, поддерживаемое во всей
линейке процессоров ЭВМ «Эльбрус»;линейке процессоров ЭВМ «Эльбрус»;
 сегментно-страничная организация памятисегментно-страничная организация памяти;;
 поддержка мультипрограммирования в стилеподдержка мультипрограммирования в стиле
x86x86.. В сочетании с разработанными средствамиВ сочетании с разработанными средствами
двоичной компиляции и специальными аппаратнымидвоичной компиляции и специальными аппаратными
средствами ее поддержки это позволяет выполнятьсредствами ее поддержки это позволяет выполнять
x86-коды на E2K.x86-коды на E2K.
Поддерживается также двоичная компиляция дляПоддерживается также двоичная компиляция для
SPARC-архитектуры.SPARC-архитектуры.
По материалам: Отечественные микропроцессоры: Elbrus E2KПо материалам: Отечественные микропроцессоры: Elbrus E2K
Михаил Кузьминский/Михаил Кузьминский/17.05.1999.17.05.1999. Открытые системы, #05-06/1999Открытые системы, #05-06/1999
Сравнительные характеристики E2KСравнительные характеристики E2K
и Alpha 21264и Alpha 21264
E2KE2K Alpha 21264Alpha 21264
Емкость, КбЕмкость, Кб
I – кэш L1I – кэш L1 ТипТип
Время доступаВремя доступа
6464
4-канальный частично ассоц.4-канальный частично ассоц.
2 такта2 такта
6464
2-канальный частично ассоц.2-канальный частично ассоц.
3 такта3 такта
Емкость, КбЕмкость, Кб
D – кэш L1D – кэш L1 ТипТип
Время доступаВремя доступа
8+88+8
ПрямоадресуемыйПрямоадресуемый
2 такта2 такта
6464
2-канальный частично ассоц2-канальный частично ассоц
3 такта3 такта
Емкость, КбЕмкость, Кб
D – кэш L2D – кэш L2 ТипТип
Время доступаВремя доступа
256256
2-канальный частично ассоц.2-канальный частично ассоц.
8 тактов8 тактов
Кэш второго уровня являетсяКэш второго уровня является
внешнимвнешним
I – TLBI – TLB ЕмкостьЕмкость
64 строки64 строки 128 строк128 строк
D – TLBD – TLB ЕмкостьЕмкость
16 строк (ассоц.) +256 строк 4-16 строк (ассоц.) +256 строк 4-
канальн. частично ассоц.канальн. частично ассоц.
128 строк (ассоц.)128 строк (ассоц.)
РегистрыРегистры ЧислоЧисло
По 256 на кластерПо 256 на кластер 80х2 целоч., 72 веществ.80х2 целоч., 72 веществ.
E2KE2K Alpha 21264Alpha 21264
Тактовая частота,Тактовая частота,
МГцМГц
12001200 500-667500-667
ЧислоЧисло
транзисторовтранзисторов
28 млн.28 млн. 15,2 млн.15,2 млн.
Площадь, кв.ммПлощадь, кв.мм 126126 302302
Рассеяние тепла,Рассеяние тепла,
ВтВт
3535 6060
Технология, мкмТехнология, мкм 0,180,18 0,350,35
SPECint95SPECint95 135135 3030
SPECfp95SPECfp95 350350 6060
ХарактеристикаХарактеристика IA – 64 (VLIW)IA – 64 (VLIW) E2KE2K
1.1.ФорматФормат
командкоманд
Длина командДлина команд
фиксирована. 3 команды вфиксирована. 3 команды в
связке длинной 128 бит. Всвязке длинной 128 бит. В
формат команды вводятсяформат команды вводятся
маски, которые указываютмаски, которые указывают
на зависимость междуна зависимость между
командами.командами.
Команды переменной длины, состоит изКоманды переменной длины, состоит из
слогов 32 разряда каждый (м.б. 1-16 слога,слогов 32 разряда каждый (м.б. 1-16 слога,
можно расширить до 32 слогов).можно расширить до 32 слогов).
Во всех командахВо всех командах 1 слог заголовка:1 слог заголовка:
 содержит информацию о структуре командысодержит информацию о структуре команды
и ее длине ;и ее длине ;
 позволяет не проводить предварительногопозволяет не проводить предварительного
декодирования команд перед ихдекодирования команд перед их
перемещением в I-кэш.перемещением в I-кэш.
2.2.РегистрыРегистры
128 – целочисленных128 – целочисленных
регистров и 128 регистроврегистров и 128 регистров
с плавающей точкой.с плавающей точкой.
Сверхбольшой РФ, все регистрыСверхбольшой РФ, все регистры
универсальныуниверсальны, т.е. могут содержать как, т.е. могут содержать как
целочисленные данные, так и с плавающейцелочисленные данные, так и с плавающей
точкой. 256 64-разрядных регистров. 2точкой. 256 64-разрядных регистров. 2
кластера.кластера.
3.3.СистемаСистема
командкоманд
Четырехадресные команды типа d=a+b+c,Четырехадресные команды типа d=a+b+c,
поддержка 80-разрядного представленияподдержка 80-разрядного представления
формата с плавающей точкой Intel х86.формата с плавающей точкой Intel х86.
РеализованыРеализованы MMX команды.MMX команды.
4.4. ОбработкаОбработка
командкоманд
64 регистра предиката.64 регистра предиката.
Хранятся пары – предикатХранятся пары – предикат
и его отрицание. Поляи его отрицание. Поля
предикатов всегдапредикатов всегда
представлены в команде.представлены в команде.
32 одноразрядных регистра – предиката.32 одноразрядных регистра – предиката.
Команда способна сформулировать до 7Команда способна сформулировать до 7
предикатов, но иногда предикаты могутпредикатов, но иногда предикаты могут
отсутствовать.отсутствовать.
Компилятор порождает коды для обоих ветвей программы и заставляетКомпилятор порождает коды для обоих ветвей программы и заставляет
процессоры выполнять обе ветви программы (спекулятивно).процессоры выполнять обе ветви программы (спекулятивно).
Тегирование данных (теговая память).Тегирование данных (теговая память).
сегментно-страничная организация исегментно-страничная организация и
мульти-мульти-
Некоторые высказывания профессора,Некоторые высказывания профессора,
члена-корреспондента Российской академиичлена-корреспондента Российской академии
наук Бориса Арташесовича Бабаянанаук Бориса Арташесовича Бабаяна
1. Копирование – это ужасно. Не только по своей технической1. Копирование – это ужасно. Не только по своей технической
неэффективности ужасно, потому что если передираешь, то на многонеэффективности ужасно, потому что если передираешь, то на много
лет отстанешь. И не только из-за того, что это деквалификациялет отстанешь. И не только из-за того, что это деквалификация
коллектива, люди с трудом понимали, как это устроено, а уж почему такколлектива, люди с трудом понимали, как это устроено, а уж почему так
– и не задавай таких вопросов…А просто даже это аморально, потому– и не задавай таких вопросов…А просто даже это аморально, потому
что это же воровство.что это же воровство.
2. Вообще,2. Вообще, Intel – в технологии гениальный, а в архитектуреIntel – в технологии гениальный, а в архитектуре
они всегда были слабыони всегда были слабы. Merced по всем параметрам очень так себе.. Merced по всем параметрам очень так себе.
3. В жизни не было ни одной машины, которую мы проектировали3. В жизни не было ни одной машины, которую мы проектировали
бы и не сделали! Просто ни одной не было! И обычно нормальнобы и не сделали! Просто ни одной не было! И обычно нормально
работает первый же кристалл. А потом,работает первый же кристалл. А потом, микропроцессор – он жемикропроцессор – он же
всегда на бумаге до последнего днявсегда на бумаге до последнего дня. Это же не танк и не самолет.. Это же не танк и не самолет.
Привезут tapeout на завод – и через две недели процессор уже вПривезут tapeout на завод – и через две недели процессор уже в
«железе».«железе».
4. Многих держат не деньги – интересная работа. И таких знаний,4. Многих держат не деньги – интересная работа. И таких знаний,
как здесь, в Штатах вы не получите никогда!как здесь, в Штатах вы не получите никогда!
5. Потому что никто другой не может сделать. Это вызывающе, это5. Потому что никто другой не может сделать. Это вызывающе, это
же очень здорово! Но прежде всегоже очень здорово! Но прежде всего придумывание нового – этопридумывание нового – это
очень интересный, просто захватывающий процесс. Трудно оточень интересный, просто захватывающий процесс. Трудно от
него оторваться.него оторваться.
Журнал «Домашний компьютер», №3, 2000.Журнал «Домашний компьютер», №3, 2000.
Для самостоятельного изученияДля самостоятельного изучения
В начале 80-х годов прошлого века, в научно-исследовательской
лаборатории компании Hewlett-Packard началась разработка новой,
революционной архитектуры центральных процессоров, которая
должна была со временем заменить существующие RISC1 и CISC2
архитектуры. В 1994 году к разработкам присоединилась корпорация
Intel, путем заключения соглашения с HP о совместном
исследовательском проекте. Цель проекта заключалась в разработке
64-разрядного набора команд и оптимизирующих компиляторов.
Инженеры двух компаний предполагали, что в скором времени
возможности по масштабированию вычислительных мощностей
путем наращивания тактовых частот иссякнут, и при разработке
новой концепции сделали упор на реализацию технологий
параллельных вычислений. Архитектура получила название EPIC –
Explicitly Parallel Instruction Computing – вычисления с явно заданным
параллелизмом команд – и основными ее особенностями стали
возможность распараллеливания инструкций, использование
технологии «очень длинного машинного слова» – Very Long Instruction
Word, а также возможность выполнения большего количества
инструкций за процессорный такт.
Начиная с 2001 года корпорация Hewlett-Packard начала
производство и выпуск серверов на базе процессоров Intel Itanium,
которые и явились оконечным продуктом архитектуры EPIC или Intel
IA-64. В настоящее время большое количество вендоров – Bull,
Fujitsu Siemens Computers, Hitachi, HP, NEC, SGI, Unisys, BEA, Novell,
Oracle, Red Hat, SAP, SAS и Sybase поддерживают архитектуру Intel
IA-64. В сентябре 2005 года был создан альянс Itanium Solutions
Alliance (http://www.itaniumsolutionsalliance.org) по разработке,
продвижению и потированию приложений на данную архитектуру.
Архитектура EPIC обладает следующими ключевыми
особенностями:
•наличие большого количества регистров в ЦПУ;
•явный параллелизм в машинном коде;
•предикация – специальная обработка команд условного
ветвления;
•загрузка по предположению;
•реализация архитектуры VLIW.
Рассмотрим подробнее данные особенности.
Процессорные регистры
Процессоры архитектуры Intel Itanium имеют в своем
распоряжении 128 64-х разрядных регистров общего назначения; 128
80-ти разрядных регистров для вещественных чисел; 64 1-разрядных
предикатных регистра; 8 64-х разрядных регистров для операций
ветвления. Для сравнения, процессоры Intel Xeon последнего
поколения располагают только 32-мя регистрами. Наличие такого
большого количества регистров позволяет уменьшить конвейер ЦПУ
до 8-ми шагов и при не высокой, по сегодняшним меркам, частоте в
1.4 – 1.6 ГГц получить очень высокую производительность.
Инструкции, поставляемые центральному процессору упаковываются
компилятором в группы или связки размеров по 128 бит. Каждая
связка состоит из 3-х команд и шаблона, в котором описана
возможность параллельной обработки этих команд. Уменьшенная
длина процессорного конвейера позволяет сократить простои в
случае промаха при чтении из кэша.
Параллелизм в машинном коде
Увеличение мощности процессоров осуществляется за счет двух
ключевых факторов: во-первых, это увеличение скорости передачи
сигналов (тактовые частоты), во-вторых, более плотное
расположение функциональных элементов на кристалле. Оба этих
параметра ограничиваются физикой и используемыми при
изготовлении технологическими процессами. Дальнейшее
увеличение вычислительной мощности возможно путем реализации
параллелизма на уровне команд (ILP — Instruction-Level Parallelism).
Данный метод стал возможен благодаря использованию средств
компиляции, которые ускоряют работу за счет параллельного
выполнения отдельных операций. Системы на базе ILP используют
программное обеспечение, написанное на традиционных языках
высокого уровня, для CISC-процессоров, а обнаружением «скрытого
параллелизма» занимается программный компилятор на этапе
сборки приложения. Из этого следует, что при разработке
программного обеспечения для архитектуры IA-64 разработчику не
обязательно становится экспертом в области параллельных
вычислений и проектировать программу с учетом необходимости
параллельных обработок данных. Эту работу выполняет компилятор,
который обладает всеми необходимыми для реализации
параллельных вычислений возможностями.
Предикация
В процессоры архитектуры Intel Itanium встроена
возможность предикации, т.е. возможность распараллеливания
команд условного ветвления. По статистике операция
условного ветвления встречается в исходном коде через
каждые шесть команд. Суть этой технологии заключается в
следующем: процессор располагает набором специальных
предикатных регистров, при обработке операции условного
ветвления, каждая из веток помечается своим регистром,
значения которых до окончания обработки вычислений
остаются не определенными. Обсчет веток осуществляется
параллельно. По окончании расчетов, регистр истинной ветки
устанавливается в 1, ложной в 0. При выполнении инструкций,
процессор будет обрабатывать только те ветки, значение
предикатных регистров которых равно единице. Данный метод
позволяет перенести задачи сложных расчетов операций
условных ветвлений на этап компиляции, что значительно
ускоряет процесс исполнения машинного кода.
Загрузка по предположению
В архитектуре x86, данные центральному процессору поступают
из оперативной памяти, скорость работы которой, намного
медленнее скорости работы ЦПУ. Соответственно, центральный
процессор вынужден простаивать ожидая поступления очередной
порции данных. Процессоры архитектуры Intel Itanium, обладают
возможностью предварительной загрузки данных в регистры.
Выборка данных, также осуществляется из регистров, что
значительно увеличивает скорость обработки данных, центральным
процессором.
Данная технология получила название Register Stack Engine
(RSE). Суть ее заключается в следующем. Каждый раз, при вызове
какой-либо функции, ей выделяется определенный буфер, который
располагается не в оперативной памяти, а в регистрах центрального
процессора. В архитектуре Intel Itanium под эти цели отводятся
последние 96 регистров общего назначения. Аппаратная платформа
связывает выделенный функции пул регистров с другими пулами, для
возможности обмена данными между функциями, если это
необходимо. Соответственно, все взаимодействия осуществляются
внутри центрального процессора, без использования внешней,
медленной оперативной памяти.
Архитектура VLIW
Архитектура VLIW является одной из реализаций
концепции внутреннего параллелизма в микропроцессорах.
Суть концепции заключается в задействовании всех логических
блоков конвейера в пределах одного такта центрального
процессора. Для увеличения количества выполняемых за один
цикл операций необходимо обеспечить надежное
параллельное исполнение машинных инструкций на каждом
функциональном модуле, что в результате дает полную
загрузку процессора, с получением максимальной
производительности. В данном случае под надежностью
понимается, что результаты параллельных вычислений будут
гарантированно правильными.
Процесс планирования порядка вычислений является
очень сложным и трудоемким. В архитектуре Intel Itanium он
практически полностью перекладывается на компилятор,
который должен выискать в программе все несвязанные между
собой инструкции, увязать их вместе в очень длинные строки
(длинные инструкции) и затем отправить на одновременное
исполнение функциональными модулями.
Процессор Itanium 2 представлен в 2002 году иПроцессор Itanium 2 представлен в 2002 году и
предлагался скорее для серверов предприятия, чем дляпредлагался скорее для серверов предприятия, чем для
целевого диапазона высокопроизводительныхцелевого диапазона высокопроизводительных
вычислений. Первый Itanium 2, получивший кодовое имявычислений. Первый Itanium 2, получивший кодовое имя
McKinley, был выпущен совместными усилиями HP и Intel.McKinley, был выпущен совместными усилиями HP и Intel.
Это позволило решить многие из проблем сЭто позволило решить многие из проблем с
производительностью оригинального процессора Itanium,производительностью оригинального процессора Itanium,
которые по большей части вызвала неэффективнаякоторые по большей части вызвала неэффективная
подсистема памяти. McKinley содержал 221 миллионовподсистема памяти. McKinley содержал 221 миллионов
транзисторов, 25 миллионов из которых были для блоковтранзисторов, 25 миллионов из которых были для блоков
логики, имел размеры 19,5 мм на 21,6 мм (т. о. егологики, имел размеры 19,5 мм на 21,6 мм (т. о. его
площадь составила 421 мм²) и производился поплощадь составила 421 мм²) и производился по
технологическому процессу 180 нм объемного КМОП стехнологическому процессу 180 нм объемного КМОП с
шестью уровнями алюминиевой металлизации.шестью уровнями алюминиевой металлизации.
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем
Лекция №10 Организация ЭВМ и систем

More Related Content

Similar to Лекция №10 Организация ЭВМ и систем

Гиперконвергентность — мягкое введение в веб-масштаб / Андрей Николаенко (IBS)
Гиперконвергентность — мягкое введение в веб-масштаб / Андрей Николаенко (IBS)Гиперконвергентность — мягкое введение в веб-масштаб / Андрей Николаенко (IBS)
Гиперконвергентность — мягкое введение в веб-масштаб / Андрей Николаенко (IBS)
Ontico
 
Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и систем
pianist2317
 
лекция1
лекция1лекция1
лекция1
shagore
 

Similar to Лекция №10 Организация ЭВМ и систем (20)

64 бита
64 бита64 бита
64 бита
 
Андрей Николаенко, IBS. Гиперконвергентность - мягкое введение в веб-масштаб
Андрей Николаенко, IBS. Гиперконвергентность - мягкое введение в веб-масштабАндрей Николаенко, IBS. Гиперконвергентность - мягкое введение в веб-масштаб
Андрей Николаенко, IBS. Гиперконвергентность - мягкое введение в веб-масштаб
 
Гиперконвергентность — мягкое введение в веб-масштаб / Андрей Николаенко (IBS)
Гиперконвергентность — мягкое введение в веб-масштаб / Андрей Николаенко (IBS)Гиперконвергентность — мягкое введение в веб-масштаб / Андрей Николаенко (IBS)
Гиперконвергентность — мягкое введение в веб-масштаб / Андрей Николаенко (IBS)
 
Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)
 
Invisible
InvisibleInvisible
Invisible
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
 
А.Левенчук -- основные альфы системной инженерии в Essence
А.Левенчук -- основные альфы системной инженерии в EssenceА.Левенчук -- основные альфы системной инженерии в Essence
А.Левенчук -- основные альфы системной инженерии в Essence
 
терминология vol.2
терминология vol.2терминология vol.2
терминология vol.2
 
Основные альфы системной инженерии (Systems engineering Essence)
Основные альфы системной инженерии (Systems engineering Essence)Основные альфы системной инженерии (Systems engineering Essence)
Основные альфы системной инженерии (Systems engineering Essence)
 
Лекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и системЛекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и систем
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
 
Системный подход в стандартах
Системный подход в стандартахСистемный подход в стандартах
Системный подход в стандартах
 
Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++
 
Сущность библиотеки анализа кода VivaCore
Сущность библиотеки анализа кода VivaCoreСущность библиотеки анализа кода VivaCore
Сущность библиотеки анализа кода VivaCore
 
Практики жизненного цикла систем машинного обучения
Практики жизненного цикла систем машинного обученияПрактики жизненного цикла систем машинного обучения
Практики жизненного цикла систем машинного обучения
 
Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и систем
 
лекция1
лекция1лекция1
лекция1
 
Caché Native Access. InterSystems Meetup 2014
Caché Native Access. InterSystems  Meetup 2014Caché Native Access. InterSystems  Meetup 2014
Caché Native Access. InterSystems Meetup 2014
 
Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥
 
Delivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java ApplicationsDelivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java Applications
 

More from pianist2317

Лекция №9 Организация ЭВМ и систем
Лекция №9 Организация ЭВМ и системЛекция №9 Организация ЭВМ и систем
Лекция №9 Организация ЭВМ и систем
pianist2317
 
Лекция №14 Организация ЭВМ и систем
Лекция №14 Организация ЭВМ и системЛекция №14 Организация ЭВМ и систем
Лекция №14 Организация ЭВМ и систем
pianist2317
 
Лекция №13 Организация ЭВМ и систем
Лекция №13 Организация ЭВМ и системЛекция №13 Организация ЭВМ и систем
Лекция №13 Организация ЭВМ и систем
pianist2317
 
Лекция №12 Организация ЭВМ и систем
Лекция №12 Организация ЭВМ и системЛекция №12 Организация ЭВМ и систем
Лекция №12 Организация ЭВМ и систем
pianist2317
 
Лекция №11 Организация ЭВМ и систем
Лекция №11 Организация ЭВМ и системЛекция №11 Организация ЭВМ и систем
Лекция №11 Организация ЭВМ и систем
pianist2317
 
Лекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и системЛекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и систем
pianist2317
 
Лекция №6 Организация ЭВМ и систем
Лекция №6 Организация ЭВМ и системЛекция №6 Организация ЭВМ и систем
Лекция №6 Организация ЭВМ и систем
pianist2317
 
Лекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системЛекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и систем
pianist2317
 
Лекция №2 Организация ЭВМ и систем
Лекция №2 Организация ЭВМ и системЛекция №2 Организация ЭВМ и систем
Лекция №2 Организация ЭВМ и систем
pianist2317
 

More from pianist2317 (10)

Лекция №9 Организация ЭВМ и систем
Лекция №9 Организация ЭВМ и системЛекция №9 Организация ЭВМ и систем
Лекция №9 Организация ЭВМ и систем
 
Лекция №14 Организация ЭВМ и систем
Лекция №14 Организация ЭВМ и системЛекция №14 Организация ЭВМ и систем
Лекция №14 Организация ЭВМ и систем
 
Лекция №13 Организация ЭВМ и систем
Лекция №13 Организация ЭВМ и системЛекция №13 Организация ЭВМ и систем
Лекция №13 Организация ЭВМ и систем
 
Лекция №12 Организация ЭВМ и систем
Лекция №12 Организация ЭВМ и системЛекция №12 Организация ЭВМ и систем
Лекция №12 Организация ЭВМ и систем
 
Лекция №11 Организация ЭВМ и систем
Лекция №11 Организация ЭВМ и системЛекция №11 Организация ЭВМ и систем
Лекция №11 Организация ЭВМ и систем
 
Лекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и системЛекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и систем
 
Лекция №6 Организация ЭВМ и систем
Лекция №6 Организация ЭВМ и системЛекция №6 Организация ЭВМ и систем
Лекция №6 Организация ЭВМ и систем
 
Лекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системЛекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и систем
 
Лекция №2 Организация ЭВМ и систем
Лекция №2 Организация ЭВМ и системЛекция №2 Организация ЭВМ и систем
Лекция №2 Организация ЭВМ и систем
 
Лекция №1 Организация ЭВМ и систем
Лекция №1 Организация ЭВМ и системЛекция №1 Организация ЭВМ и систем
Лекция №1 Организация ЭВМ и систем
 

Лекция №10 Организация ЭВМ и систем

  • 1. Организация ЭВМ и систем Тема: Новые архитектурные решения • VLIW архитектура • Особенности IA – 64 • Особенности EPIC
  • 2. Есть абсолютная догма;Есть абсолютная догма; надо, чтобы машины были быстрые,надо, чтобы машины были быстрые, с большой памятью,с большой памятью, удобные для программирования.удобные для программирования. Это ведь легко понятная задача.Это ведь легко понятная задача. Борис Арташесович Бабаян
  • 3. Создание процессора проходит несколько этапов.Создание процессора проходит несколько этапов. Сначала продумывается архитектураСначала продумывается архитектура.. •А что такое архитектура и почему она так важна?А что такое архитектура и почему она так важна? •Раньше,Раньше, до середины 60-хдо середины 60-х, вообще, вообще не былоне было понятия архитектуры, каждая машина былапонятия архитектуры, каждая машина была уникальнауникальна.. А потом постепенно возникла проблемаА потом постепенно возникла проблема совместимости. В общем, архитектура – этосовместимости. В общем, архитектура – это логическое устройство машины – в отличие отлогическое устройство машины – в отличие от технологии, «железа». (Б.А.Бабаян)технологии, «железа». (Б.А.Бабаян) Потом разрабатывается ее описание на одном изПотом разрабатывается ее описание на одном из специальных языков высокого уровняспециальных языков высокого уровня, например,, например, Verilog.Verilog. Как сделать процессорКак сделать процессор
  • 4. ДискуссияДискуссия -- метод обучения, направленный наметод обучения, направленный на развитие критического мышления и коммуникативныхразвитие критического мышления и коммуникативных способностей; предполагающий целенаправленный испособностей; предполагающий целенаправленный и упорядоченный обмен мнениями, направленный наупорядоченный обмен мнениями, направленный на согласование противоположных точек зрения и приход ксогласование противоположных точек зрения и приход к общему основанию.общему основанию. Нужны ли новые архитектурныеНужны ли новые архитектурные решения для построения процессоров?решения для построения процессоров? И возможно ли придумать что-то новое?И возможно ли придумать что-то новое?
  • 5. Ее цель – групповое решение проблемы с одновременной тренировкой участников в соответствующих коммуникативных умениях и навыках. Этот вид дискуссии состоит из 5 этапов: зарождение идеи (участникам дается время на выдвижение идей о путях решения данной проблемы); все предложения выписываются на доске; обсуждается каждый предложенный вариант; рассматриваются наиболее подходящие варианты, затем они располагаются по степени значимости, т.е. осуществляется верификация идей; руководитель организует дискуссию, в результате которой остаются решения, получившие наибольшее количество голосов, из них и выбирается окончательное. Прогрессивная дискуссияПрогрессивная дискуссия
  • 6. Когда вы участвуете в споре, в дискуссии, от вас хотятКогда вы участвуете в споре, в дискуссии, от вас хотят услышать четкое обоснованное мнение. Вы можетеуслышать четкое обоснованное мнение. Вы можете стремиться убедить или переубедить, или простостремиться убедить или переубедить, или просто сообщить свою позицию.сообщить свою позицию. Чтобы ваше выступление было кратким и ясным,Чтобы ваше выступление было кратким и ясным, можно воспользоваться ПОПС-формулой:можно воспользоваться ПОПС-формулой: ПП –– позицияпозиция (в чем заключается ваша точка зрения) – Я(в чем заключается ваша точка зрения) – Я считаю, что…считаю, что… ОО –– обоснованиеобоснование (на чем вы основываетесь, довод в(на чем вы основываетесь, довод в поддержку вашей позиции) - …потому, что…поддержку вашей позиции) - …потому, что… ПП –– примерпример (факты, иллюстрирующие ваш довод) - …(факты, иллюстрирующие ваш довод) - … например…например… СС –– следствиеследствие (вывод, что надо сделать, призыв к(вывод, что надо сделать, призыв к принятию вашей позиции) -…поэтому….принятию вашей позиции) -…поэтому…. ПОПС-формулу часто называют МОПС-формулойПОПС-формулу часто называют МОПС-формулой ((Мнение-Объяснение-Пример-Следствие).Мнение-Объяснение-Пример-Следствие). ПОПС-формулаПОПС-формула Рекомендации для участника дискуссииРекомендации для участника дискуссии
  • 8. 1991 год1991 год HP и Intel начали сотрудничество в областиHP и Intel начали сотрудничество в области микропроцессоров в 1989 году. HP требовался процессормикропроцессоров в 1989 году. HP требовался процессор следующего поколения для замены удачных серийследующего поколения для замены удачных серий рабочих станций и серверов, построенных на базерабочих станций и серверов, построенных на базе процессоров с архитектурой PA-RISC, и компания хотелапроцессоров с архитектурой PA-RISC, и компания хотела воспользоваться достижениями и опытом Intel ввоспользоваться достижениями и опытом Intel в разработке и производстве микрочипов.разработке и производстве микрочипов. Новый процессор должен был использовать наборНовый процессор должен был использовать набор инструкций с явным параллелизмом (EPIC),инструкций с явным параллелизмом (EPIC), в которомв котором компилятор должен выстраивать инструкции длякомпилятор должен выстраивать инструкции для параллельного исполнения.параллельного исполнения. Были добавленыБыли добавлены возможности для совместимости с приложениямивозможности для совместимости с приложениями разработанными как для Intel x86, так и для PA-RISC.разработанными как для Intel x86, так и для PA-RISC. ИсторияИстория
  • 9. Ожидалось, что разрабатываемый процессор будетОжидалось, что разрабатываемый процессор будет доминировать на рынке серверов, рабочих станций и,доминировать на рынке серверов, рабочих станций и, возможно, даже настольных ПК, вытеснив вездесущуювозможно, даже настольных ПК, вытеснив вездесущую архитектуру x86. Предполагалось, что конкуренты Intel, вархитектуру x86. Предполагалось, что конкуренты Intel, в первую очередь AMD, не смогут повторить новуюпервую очередь AMD, не смогут повторить новую архитектуру.архитектуру. Первое поколение процессоров, имеющее кодовоеПервое поколение процессоров, имеющее кодовое имя Merced, было выпущено в 2001 году.имя Merced, было выпущено в 2001 году.
  • 10. Предложенные в IA – 64 архитектурные идеи близки кПредложенные в IA – 64 архитектурные идеи близки к концепцииконцепции VLIWVLIW (Very Large Instruction World – сверх(Very Large Instruction World – сверх большое командное слово).большое командное слово). VLIW - это набор команд, реализующий горизонтальный микрокод. Несколько (4-8) простых команд упаковываютсяНесколько (4-8) простых команд упаковываются компилятором в длинное слово. Такое словокомпилятором в длинное слово. Такое слово соответствует набору функциональных устройств.соответствует набору функциональных устройств. VLIWVLIW архитектуру можно рассматривать, как статическуюархитектуру можно рассматривать, как статическую суперскалярную архитектурусуперскалярную архитектуру.. Имея ввиду, чтоИмея ввиду, что распараллеливание кода производится на этапераспараллеливание кода производится на этапе компиляции,компиляции, а не динамически во время исполнения.а не динамически во время исполнения. То есть, в машинном коде VLIW присутствует явныйТо есть, в машинном коде VLIW присутствует явный параллелизм.параллелизм. VLIW архитектураVLIW архитектура
  • 11. ВВ IA – 64IA – 64 2 нововведения по сравнению с2 нововведения по сравнению с RISC процессорами:RISC процессорами: Применение технологии явногоПрименение технологии явного параллелизма на уровне командпараллелизма на уровне команд ((EPICEPIC –– Ecplicitly Parallel Instruction Computing).Ecplicitly Parallel Instruction Computing). Применение предикатных вычисленийПрименение предикатных вычислений.. ПредикатыПредикаты – способ обработки ветвлений– способ обработки ветвлений (условных переходов).(условных переходов). Особенности IA – 64Особенности IA – 64
  • 12. Особенности EPICОсобенности EPIC Большое количество регистровБольшое количество регистров.. Масштабируемость архитектуры до большогоМасштабируемость архитектуры до большого количества функциональных устройствколичества функциональных устройств. Это свойство. Это свойство представители фирмы Intel и HP называютпредставители фирмы Intel и HP называют «наследственно масштабируемый набор команд».«наследственно масштабируемый набор команд». Явный параллелизм в машинном кодеЯвный параллелизм в машинном коде.. ПоискПоиск зависимостей между командами производит независимостей между командами производит не процессор, а компилятор.процессор, а компилятор. ПредикацияПредикация.. Команды из разных ветвей условногоКоманды из разных ветвей условного ветвленияветвления снабжаются предикатными полями (полямиснабжаются предикатными полями (полями условий) иусловий) и запускаются параллельнозапускаются параллельно.. Загрузка по предположениюЗагрузка по предположению.. Данные изДанные из медленной основной памяти загружаются заранеемедленной основной памяти загружаются заранее..
  • 13. Описание IA - 64Описание IA - 64 Регистры IA – 64Регистры IA – 64:: 128 64-разрядных регистров общего назначения.128 64-разрядных регистров общего назначения. 128 80-разрядных регистров вещественной128 80-разрядных регистров вещественной арифметики.арифметики. 64 1-разрядных предикатных регистров.64 1-разрядных предикатных регистров. Формат команды IA – 64Формат команды IA – 64:: Идентификатор команды.Идентификатор команды. Три 7-разрядных поля операндов – 1 приемник и 2Три 7-разрядных поля операндов – 1 приемник и 2 источника (операндами могут быть только регистры, а ихисточника (операндами могут быть только регистры, а их - 128=2- 128=277 ) .) . Особые поля для вещественной и целойОсобые поля для вещественной и целой арифметики.арифметики. 6-разрядное предикатное поле (64=26-разрядное предикатное поле (64=266 ).). ПредикацияПредикация Загрузка по предположениюЗагрузка по предположению
  • 14. РегистрыРегистры В их число входят:В их число входят: 128 регистров общего назначения128 регистров общего назначения GR;GR; 128 регистров с плавающей запятой128 регистров с плавающей запятой FR;FR; 6464 регистра предикатоврегистра предикатов PR;PR; 8 регистров перехода8 регистров перехода BR;BR; 128128 прикладных регистраприкладных регистра AR; не менееAR; не менее 4 регистров4 регистров идентификатора процессора CPUIDидентификатора процессора CPUID;; счетчик командсчетчик команд IP,IP, указывающий на адрес связки, содержащей исполняемуюуказывающий на адрес связки, содержащей исполняемую команду;команду; регистр маркера текущего окнарегистр маркера текущего окна CFM,CFM, описывающий окно стека регистров и др.описывающий окно стека регистров и др. Регистры CPUID являются 64-разрядными.Регистры CPUID являются 64-разрядными. В CPUID-В CPUID- регистрах 0 и 1 лежит информация о производителе, врегистрах 0 и 1 лежит информация о производителе, в регистре 2 находится серийный номер процессора, а врегистре 2 находится серийный номер процессора, а в регистре 3 задается тип процессорарегистре 3 задается тип процессора (семейство,(семейство, модель, версия архитектуры и т.п.)модель, версия архитектуры и т.п.) и число CPUID-и число CPUID- регистроврегистров.. Разряды регистра 4 указывают наРазряды регистра 4 указывают на поддержку конкретных особенностей IA-64поддержку конкретных особенностей IA-64, т.е. тех,, т.е. тех, которые реализованы в данном процессоре.которые реализованы в данном процессоре.
  • 15. Команды IA - 64Команды IA - 64 Команды IA-64 упаковываются (группируются)Команды IA-64 упаковываются (группируются) компилятором в "связку" длиною в 128 pазpядов. Связкакомпилятором в "связку" длиною в 128 pазpядов. Связка содержит 3 команды и шаблон, в котором будут указанысодержит 3 команды и шаблон, в котором будут указаны зависимости между командами.зависимости между командами. Перечислим все варианты составления связки из 3-хПеречислим все варианты составления связки из 3-х команд:команд: i1 || i2 || i3i1 || i2 || i3 - все команды исполняются- все команды исполняются параллельно;параллельно; i1 &i1 & i2 || i3i2 || i3 - сначала i1, затем исполняются- сначала i1, затем исполняются параллельно i2 и i3;параллельно i2 и i3; i1 || i2i1 || i2 & i3& i3 - параллельно исполняются i1 и i2,- параллельно исполняются i1 и i2, после них - i3;после них - i3; i1 & i2 & i3i1 & i2 & i3 - последовательно исполняются i1, i2, i3.- последовательно исполняются i1, i2, i3.
  • 16.
  • 17. Одна такаяОдна такая связкасвязка, состоящая, состоящая из трех командиз трех команд,, соответствует набору из трех функциональныхсоответствует набору из трех функциональных устройств процессораустройств процессора.. Процессоры IA-64 могут содержать разноеПроцессоры IA-64 могут содержать разное количество таких блоков, оставаясь при этомколичество таких блоков, оставаясь при этом совместимыми по коду. Ведь благодаря тому, что всовместимыми по коду. Ведь благодаря тому, что в шаблоне указана зависимость и между связками,шаблоне указана зависимость и между связками, процессору с N одинаковыми блоками из трехпроцессору с N одинаковыми блоками из трех функциональных устройства будет соответствоватьфункциональных устройства будет соответствовать командное слово из N*3 командкомандное слово из N*3 команд ( N связок ).( N связок ). ТакимТаким образом должна обеспечиваться масштабируемостьобразом должна обеспечиваться масштабируемость IA-64.IA-64.
  • 18. Недостатки IA-64:Недостатки IA-64: без перекомпиляции код с одного процессорабез перекомпиляции код с одного процессора семейства IA-64 не будет эффективно исполняться насемейства IA-64 не будет эффективно исполняться на другом;другом; в IA-64 можно произвольно (блоками по 3)в IA-64 можно произвольно (блоками по 3) увеличивать количество функциональных устройств, ноувеличивать количество функциональных устройств, но при этом число регистров должно оставатьсяпри этом число регистров должно оставаться неизменным.неизменным. размер кода для IA-64 будет больше, чем для RISCразмер кода для IA-64 будет больше, чем для RISC процессоров, потому что на 3 команды IA-64 приходитсяпроцессоров, потому что на 3 команды IA-64 приходится 128 бит, а длина RISC команды обычно равна 32 бит, то128 бит, а длина RISC команды обычно равна 32 бит, то есть, в 128 битах содержатся 4 команды RISC.есть, в 128 битах содержатся 4 команды RISC.
  • 19. ПредикацияПредикация Если в исходной программе встречается условноеЕсли в исходной программе встречается условное ветвлениеветвление (по статистике - через каждые 6 команд),(по статистике - через каждые 6 команд), тото команды из разных ветвей помечаются разнымикоманды из разных ветвей помечаются разными предикатными регистрамипредикатными регистрами (команды имеют для этого(команды имеют для этого предикатные поля),предикатные поля), далеедалее они выполняютсяони выполняются совместносовместно,, но их результаты не записываются, покано их результаты не записываются, пока значения предикатных регистров неопределенны.значения предикатных регистров неопределенны. КогдаКогда,, наконец,наконец, вычисляется условие ветвления,вычисляется условие ветвления, предикатный регистр, соответствующийпредикатный регистр, соответствующий "правильной" ветви, устанавливается в 1, а другой -"правильной" ветви, устанавливается в 1, а другой - в 0в 0. Перед записью результатов процессор будет. Перед записью результатов процессор будет проверять предикатное поле и записывать результатыпроверять предикатное поле и записывать результаты только тех команд, предикатное поле которых содержиттолько тех команд, предикатное поле которых содержит предикатный регистр, установленный в 1.предикатный регистр, установленный в 1.
  • 20. Загрузка по предположениюЗагрузка по предположению Компилятор перемещает команды загрузки данных изКомпилятор перемещает команды загрузки данных из памяти так, чтобы они выполнились как можно раньше.памяти так, чтобы они выполнились как можно раньше. Следовательно, когда данные из памяти понадобятсяСледовательно, когда данные из памяти понадобятся какой-либо команде, процессор не будет простаивать.какой-либо команде, процессор не будет простаивать. Перемещенные таким образом команды называютсяПеремещенные таким образом команды называются командами загрузки по предположению и помечаютсякомандами загрузки по предположению и помечаются особым образомособым образом. А непосредственно перед командой,. А непосредственно перед командой, использующей загружаемые по предположению данные,использующей загружаемые по предположению данные, компилятор вставит команду проверки предположения.компилятор вставит команду проверки предположения. Если при выполнении загрузки по предположениюЕсли при выполнении загрузки по предположению возникнет исключительная ситуация, процессорвозникнет исключительная ситуация, процессор сгенерирует исключение только, когда встретит командусгенерирует исключение только, когда встретит команду проверки предположения. Если, например, командапроверки предположения. Если, например, команда загрузки выносится из ветвления, ветвь, из которой оназагрузки выносится из ветвления, ветвь, из которой она вынесена, не запускается, возникшая исключительнаявынесена, не запускается, возникшая исключительная ситуация проигнорируется.ситуация проигнорируется.
  • 21.
  • 22. Первая версия процессора под кодовым именемПервая версия процессора под кодовым именем Merced (назван в честь города вблизи Сан-Хосе, США)Merced (назван в честь города вблизи Сан-Хосе, США) поступила в продажу в июне 2001 года. Произведённый попоступила в продажу в июне 2001 года. Произведённый по 180 нм технологии с площадью кристалла в 25 мм²,180 нм технологии с площадью кристалла в 25 мм², напряжением на ядре 2 В и тепловыделением в 150 Вт, оннапряжением на ядре 2 В и тепловыделением в 150 Вт, он работал на частотах 733 МГц и 800 МГц с частотойработал на частотах 733 МГц и 800 МГц с частотой системной шины 266 МГц, кэш-памятью 3-го уровнясистемной шины 266 МГц, кэш-памятью 3-го уровня размером в 2 МБ или в 4 МБ. Поддерживались SIMDразмером в 2 МБ или в 4 МБ. Поддерживались SIMD инструкции MMX и SSE. Рассчитан на установку в Slot M иинструкции MMX и SSE. Рассчитан на установку в Slot M и память SDRAM (PC 100). Стоили чипы от $1200 до болеепамять SDRAM (PC 100). Стоили чипы от $1200 до более чем $4000.чем $4000. В режиме IA-64 это был самый быстрый процессорВ режиме IA-64 это был самый быстрый процессор для вычислений с плавающей запятой, имеющийся надля вычислений с плавающей запятой, имеющийся на рынкерынке. В то же время, в целочисленных вычислениях он. В то же время, в целочисленных вычислениях он лишь немного превосходил процессоры равной частоты слишь немного превосходил процессоры равной частоты с системой команд x86.системой команд x86.
  • 23. Продажи процессора оказались менее успешными, чемПродажи процессора оказались менее успешными, чем предполагалась. Основными причинами этому былипредполагалась. Основными причинами этому были проблемы с производительностью и малое количествопроблемы с производительностью и малое количество оптимизированного под Merced программногооптимизированного под Merced программного обеспечения. Несмотря на то, что процессор могобеспечения. Несмотря на то, что процессор мог исполнять инструкции x86, производительность такогоисполнять инструкции x86, производительность такого решения была значительно ниже в сравнении с x86-решения была значительно ниже в сравнении с x86- системами от Intel и AMD.системами от Intel и AMD. При выполнении не оптимизированного программногоПри выполнении не оптимизированного программного кода для x86 его производительность была в 8 разкода для x86 его производительность была в 8 раз меньше, чем у x86 процессоров на той же частоте.меньше, чем у x86 процессоров на той же частоте.
  • 24. Архитектура ItaniumАрхитектура Itanium Itanium — микропроцессорItanium — микропроцессор с архитектурой IA-64,с архитектурой IA-64, разработанный совместноразработанный совместно компаниями Intel и Hewlett-компаниями Intel и Hewlett- Packard.Packard. Впервые был представленВпервые был представлен 29 мая 2001 года29 мая 2001 года. Производство. Производство Itanium прекращено в июле 2002Itanium прекращено в июле 2002 года одновременно с выходомгода одновременно с выходом Itanium 2. Однако в ноябре 2007Itanium 2. Однако в ноябре 2007 года Intel переименовала сериюгода Intel переименовала серию процессоров Itanium 2 обратно впроцессоров Itanium 2 обратно в Itanium.Itanium.
  • 25. Внутреннее устройство процессораВнутреннее устройство процессора Intel Itanium 2Intel Itanium 2 Процессор Intel Itanium 2 состоит из следующих функциональных модулей: 6 целочисленных АЛУ; 6 мультимедийных АЛУ; 2 вещественных арифметических устройства повышенной точности; 2 вещественных арифметических устройства обычной точности; 2 устройства чтения; 2 устройства записи; 3 устройства ветвления.
  • 26.
  • 27.
  • 28. Конвейер процессора Intel Itanium 2 состоит из 8Конвейер процессора Intel Itanium 2 состоит из 8 этаповэтапов и может параллельно обрабатывать до 6и может параллельно обрабатывать до 6 инструкций за один такт.инструкций за один такт. На первой стадии (IPG – Instruction Pointer Generation)На первой стадии (IPG – Instruction Pointer Generation) происходит доставка инструкций из кэша первого уровня.происходит доставка инструкций из кэша первого уровня. На второй стадии (ROT – Rotate stage) происходитНа второй стадии (ROT – Rotate stage) происходит «выравнивание» инструкций и их размещение в«выравнивание» инструкций и их размещение в специальном буфере для организации возможностиспециальном буфере для организации возможности параллельной обработки.параллельной обработки.
  • 29. На третьей стадии (EXP – Expand stage) производитсяНа третьей стадии (EXP – Expand stage) производится декодирование инструкций и непосредственное ихдекодирование инструкций и непосредственное их распределение по функциональным модулям. Всего можетраспределение по функциональным модулям. Всего может быть загружено максимум 6 инструкций.быть загружено максимум 6 инструкций. На следующей стадии (REN – Rename stage)На следующей стадии (REN – Rename stage) происходит сопоставление «виртуальных» ассемблерныхпроисходит сопоставление «виртуальных» ассемблерных регистров, физическим ячейкам кристалла.регистров, физическим ячейкам кристалла. На пятой стадии (REG – Register Read stage)На пятой стадии (REG – Register Read stage) происходит считывание значений регистровпроисходит считывание значений регистров функциональными модулями.функциональными модулями. На шестой стадии (EXE – Execution stage) собственноНа шестой стадии (EXE – Execution stage) собственно осуществляются функциональные вычисления.осуществляются функциональные вычисления. На седьмой стадии (DET – Detection stage)На седьмой стадии (DET – Detection stage) производится контроль возникновения исключений.производится контроль возникновения исключений. На последней стадии конвейера (WRB – Write BackНа последней стадии конвейера (WRB – Write Back stage) происходит запись результатов вычислений обратноstage) происходит запись результатов вычислений обратно в регистры.в регистры.
  • 30. Процессоры Intel Itanium 2 имеют в своем составеПроцессоры Intel Itanium 2 имеют в своем составе кэши трех уровней.кэши трех уровней. Кэш первого уровня составляет 32 КбКэш первого уровня составляет 32 Кб и работает на скорости работы процессораи работает на скорости работы процессора.. Кэш второгоКэш второго уровня составляет 256 Кб и работает на скорости 64уровня составляет 256 Кб и работает на скорости 64 ГБ/сек.ГБ/сек. Кэш третьего уровня может достигать 24 Мб иКэш третьего уровня может достигать 24 Мб и является самым медленным, работает на скорости 32является самым медленным, работает на скорости 32 ГБ/сек.ГБ/сек. Архитектура Intel Itanium зарекомендовала себя как,Архитектура Intel Itanium зарекомендовала себя как, вполне жизнеспособная, и по многим показателям намноговполне жизнеспособная, и по многим показателям намного превосходящая альтернатива распространенным напревосходящая альтернатива распространенным на сегодняшний день RISC и CISC архитектурам. Всегодняшний день RISC и CISC архитектурам. В настоящее время сфера применения процессоров Intelнастоящее время сфера применения процессоров Intel Itanium ограничена наукоемкими расчетными задачами, аItanium ограничена наукоемкими расчетными задачами, а также критическими бизнес приложениями.также критическими бизнес приложениями.
  • 31. Помимо семейства IA-64 шли разработки ещеПомимо семейства IA-64 шли разработки еще нескольких универсальных процессоров с VLIW-подобнойнескольких универсальных процессоров с VLIW-подобной архитектурой.архитектурой.
  • 32.
  • 33.
  • 34.
  • 35. Б.А. БабаянБ.А. Бабаян, удостоенный в 1987 году звания лауреата, удостоенный в 1987 году звания лауреата Ленинской премии за разработку и внедрениеЛенинской премии за разработку и внедрение многопроцессорной системы “Эльбрус-2”, сохраняет, с одноймногопроцессорной системы “Эльбрус-2”, сохраняет, с одной стороны, пост директора Института микропроцессорныхстороны, пост директора Института микропроцессорных вычислительных систем РАН, с другой стороны, Б.А. Бабаян свычислительных систем РАН, с другой стороны, Б.А. Бабаян с августа 2004 года занимает должность директора поавгуста 2004 года занимает должность директора по архитектуре в подразделении программных решенийархитектуре в подразделении программных решений корпорации Intel и руководит глобальным проектом покорпорации Intel и руководит глобальным проектом по технологии безопасных вычислений. Онтехнологии безопасных вычислений. Он стал первымстал первым европейским ученым, получившим звание заслуженногоевропейским ученым, получившим звание заслуженного инженера – исследователя Intel,инженера – исследователя Intel, ряд его изобретенийряд его изобретений внедряются корпорацией.внедряются корпорацией.
  • 36. Архитектура Е2КАрхитектура Е2К (реализована в суперкомпьютере Эльбрус 3)(реализована в суперкомпьютере Эльбрус 3) В E2K используютсяВ E2K используются команды переменной длиныкоманды переменной длины.. Общий формат команд E2K представлен на рисунке.Общий формат команд E2K представлен на рисунке. Команда E2K состоит из слогов длиной 32 разрядаКоманда E2K состоит из слогов длиной 32 разряда каждый. Число этих слогов может меняться от 2 до 16,каждый. Число этих слогов может меняться от 2 до 16, причем данную архитектуру можно еще расширить – допричем данную архитектуру можно еще расширить – до 32 слогов.32 слогов. Любая команда всегда включает 1 слог заголовка иЛюбая команда всегда включает 1 слог заголовка и еще от 1 до 15 слогов, указывающих на операции,еще от 1 до 15 слогов, указывающих на операции, которые могут выполняться параллельнокоторые могут выполняться параллельно.. СлогСлог заголовка содержит информацию о структурезаголовка содержит информацию о структуре команды и ее длине, что облегчает дешифрациюкоманды и ее длине, что облегчает дешифрацию команды переменной длиныкоманды переменной длины.. Применение заголовкаПрименение заголовка позволяет не проводить предварительного декодированияпозволяет не проводить предварительного декодирования команд перед их помещением в кэш команд.команд перед их помещением в кэш команд. Слог заголовка Слог 1 … Слог №
  • 37. В архитектуре E2K представленВ архитектуре E2K представлен сверхбольшой файлсверхбольшой файл регистроврегистров.. Все регистрыВсе регистры E2K являютсяE2K являются универсальнымиуниверсальными ии могут содержатьмогут содержать каккак целочисленные данныецелочисленные данные, так, так и числа с плавающейи числа с плавающей запятойзапятой. Всего имеется. Всего имеется 256 регистров длиной по 64256 регистров длиной по 64 разряда каждый.разряда каждый. В E2K естьВ E2K есть два почти симметричных кластера,два почти симметричных кластера, каждый из которых содержит по 256 регистровкаждый из которых содержит по 256 регистров.. Всего вВсего в этом процессоре имеется 30 регистровых портов: 20 портовэтом процессоре имеется 30 регистровых портов: 20 портов чтения (по 10 портов на кластер) и 10 портов записи.чтения (по 10 портов на кластер) и 10 портов записи. В Alpha 21264 применяется реализованное во многихВ Alpha 21264 применяется реализованное во многих суперскалярных процессорах динамическое переименованиесуперскалярных процессорах динамическое переименование регистроврегистров.. Этого механизма в E2K нет, так как в нем подобныеЭтого механизма в E2K нет, так как в нем подобные задачи возлагаются на компилятор, однакозадачи возлагаются на компилятор, однако в циклах св циклах с постоянным шагом применяетсяпостоянным шагом применяется аналогичнаяаналогичная схемасхема циклической замены используемых регистров.циклической замены используемых регистров.
  • 38. Еще одна особенность E2K –Еще одна особенность E2K – регистровое окно длярегистровое окно для процедурыпроцедуры.. Это решение является традиционным для машинЭто решение является традиционным для машин серии «Эльбрус», однако особенно важным оно является длясерии «Эльбрус», однако особенно важным оно является для архитектуры E2K, поскольку содержит сверхбольшое количествоархитектуры E2K, поскольку содержит сверхбольшое количество регистров – 256.регистров – 256. Затраты на сохранение/восстановление регистров вЗатраты на сохранение/восстановление регистров в данной ситуации становятся весьма значительными.данной ситуации становятся весьма значительными. Поэтому реализация в E2KПоэтому реализация в E2K аппаратного механизмааппаратного механизма переключения оконпереключения окон представляется актуальной.представляется актуальной. ОкноОкно регистров в E2K имеет переменную длину (до 192регистров в E2K имеет переменную длину (до 192 регистров).регистров). Адресация регистров внутри контекста происходитАдресация регистров внутри контекста происходит относительно текущей базы, и при вызове другой процедурыотносительно текущей базы, и при вызове другой процедуры достаточно сменить значение базы.достаточно сменить значение базы. Кэш данных первого уровняКэш данных первого уровня в E2K имеет емкостьв E2K имеет емкость всеговсего 8 Кбайт8 Кбайт ии продублирован в каждом из кластеровпродублирован в каждом из кластеров.. Этот кэш является прямоадресуемым, использует алгоритмЭтот кэш является прямоадресуемым, использует алгоритм сквозной записи данных.сквозной записи данных.
  • 39. Кэш данных второго уровняКэш данных второго уровня в E2K имеет емкостьв E2K имеет емкость 256256 КбайтКбайт при времени доступа в 8 тактов. Он являетсяпри времени доступа в 8 тактов. Он является двухканальным частично-ассоциативнымдвухканальным частично-ассоциативным и имеети имеет 44 банкабанка, то есть обеспечивает 4-кратное расслоение кэш-, то есть обеспечивает 4-кратное расслоение кэш- памяти. В кэше данных второго уровняпамяти. В кэше данных второго уровня применяетсяприменяется алгоритм обратной записиалгоритм обратной записи. Он также является. Он также является неблокирующим.неблокирующим. Кроме этого в E2K представленКроме этого в E2K представлен специализированныйспециализированный кэш предварительной выборкикэш предварительной выборки, который разработчики, который разработчики назвалиназвали буфером предварительной подкачкибуфером предварительной подкачки.. Он являетсяОн является частью устройства доступа к массивам и задействуется толькочастью устройства доступа к массивам и задействуется только при работе с массивами в циклах.при работе с массивами в циклах. Его емкость составляетЕго емкость составляет всеговсего 4 Кбайт4 Кбайт, и он, и он состоит из 2 банковсостоит из 2 банков с 2 портами вс 2 портами в каждом из них.каждом из них. За один такт в буфер можно считать,За один такт в буфер можно считать, следовательно, до 4 слов длиной 8 байт. Буфер организован какследовательно, до 4 слов длиной 8 байт. Буфер организован как очередь FIFO и имеет до 64 зон предварительной выборки.очередь FIFO и имеет до 64 зон предварительной выборки.
  • 40. В Е2К предусматриваютсяВ Е2К предусматриваются два варианта подключениядва варианта подключения третьего уровня кэштретьего уровня кэш: непосредственно к процессору Е2К,: непосредственно к процессору Е2К, что позволяет разгрузить «системную шину» – коммутатор,что позволяет разгрузить «системную шину» – коммутатор, или через набор коммутаторных микросхем.или через набор коммутаторных микросхем. Функциональные устройства (ФУ) E2K разнесеныФункциональные устройства (ФУ) E2K разнесены по двум кластерампо двум кластерам. Эти кластеры содержат по. Эти кластеры содержат по 33 одинаковых целочисленных конвейера – АЛУодинаковых целочисленных конвейера – АЛУ (правда,(правда, один из кластеров имеет также ФУ деления –один из кластеров имеет также ФУ деления – целочисленного и с плавающей запятой).целочисленного и с плавающей запятой). В каждом кластере представлены также адресныеВ каждом кластере представлены также адресные сумматоры, которые имеются для 2 из 3 путей («каналов»)сумматоры, которые имеются для 2 из 3 путей («каналов») данных. В результатеданных. В результате каждый кластер можеткаждый кластер может одновременно выполнять до 2 операций загрузкиодновременно выполнять до 2 операций загрузки регистров или 1 операцию записи в оперативнуюрегистров или 1 операцию записи в оперативную памятьпамять. Возможен и смешанный случай: 2 загрузки плюс. Возможен и смешанный случай: 2 загрузки плюс одна запись.одна запись.
  • 41. Кроме того, имеется 4 канала для данных с плавающейКроме того, имеется 4 канала для данных с плавающей запятой, по 2 на кластер. В каждом канале можетзапятой, по 2 на кластер. В каждом канале может выполнятьсявыполняться команда типа MADDкоманда типа MADD – «умножить-и-– «умножить-и- сложить», что дает темп 8 результатов с плавающейсложить», что дает темп 8 результатов с плавающей запятой за такт.запятой за такт. Сам набор команд E2K «богаче», чем у традиционныхСам набор команд E2K «богаче», чем у традиционных RISC-процессоров: в нем представленыRISC-процессоров: в нем представлены четырехадресные командычетырехадресные команды, например, типа d=a+b+c., например, типа d=a+b+c. Такого нет и в IA-64. Что касается команд с плавающейТакого нет и в IA-64. Что касается команд с плавающей запятой, то кроме полной поддержки IEEE754 в E2Kзапятой, то кроме полной поддержки IEEE754 в E2K реализована работа с 80-разрядным представлениемреализована работа с 80-разрядным представлением Intel x86Intel x86.. При этом операнды хранятся в парах 64-разрядныхПри этом операнды хранятся в парах 64-разрядных регистров E2K. Правда, сложение/умножение таких чисел нерегистров E2K. Правда, сложение/умножение таких чисел не полностью конвейеризовано. Кроме того, для приближенияполностью конвейеризовано. Кроме того, для приближения системы команд E2K к x86 в E2Kсистемы команд E2K к x86 в E2K реализованы такжереализованы также команды расширения ММХ.команды расширения ММХ.
  • 42. В E2KВ E2K целочисленный конвейер имеет длину 8целочисленный конвейер имеет длину 8 тактовтактов (собственно выполнение идет на седьмом такте, а(собственно выполнение идет на седьмом такте, а обратная запись – на восьмом) против 7 тактов в Alphaобратная запись – на восьмом) против 7 тактов в Alpha 21264.21264. Е2К обеспечивает очень высокий уровеньЕ2К обеспечивает очень высокий уровень одновременно выполняемых операций: в команде иходновременно выполняемых операций: в команде их кодируется до 23 (сюда кроме арифметико-логическихкодируется до 23 (сюда кроме арифметико-логических операций входят также доступ в оперативную память,операций входят также доступ в оперативную память, приращение индекса массива и т.п.). Эффективныеприращение индекса массива и т.п.). Эффективные показатели параллельной работы ФУ у E2K выше, чем упоказатели параллельной работы ФУ у E2K выше, чем у всех суперскалярных процессоров.всех суперскалярных процессоров. В архитектуре E2K, как и в IA-64, делается все, чтобыВ архитектуре E2K, как и в IA-64, делается все, чтобы по возможности исключить обычные операции перехода.по возможности исключить обычные операции перехода. Для этого в E2KДля этого в E2K имеется 32 одноразрядных регистра-имеется 32 одноразрядных регистра- предикатапредиката, причем команда способна сформировать до 7, причем команда способна сформировать до 7 предикатов: 4 в операциях сравнения в АЛУ и еще 3 – впредикатов: 4 в операциях сравнения в АЛУ и еще 3 – в операциях логики.операциях логики.
  • 43. Хотя в IA-64 предикатных регистров формально в 2Хотя в IA-64 предикатных регистров формально в 2 раза больше, чем в E2K, реально их практическираза больше, чем в E2K, реально их практически столько же, так как в IA-64 хранятся пары – предикат и егостолько же, так как в IA-64 хранятся пары – предикат и его отрицание. В IA-64 поля предикатов всегда представленыотрицание. В IA-64 поля предикатов всегда представлены в команде, а в E2K – могут отсутствовать. Предикатыв команде, а в E2K – могут отсутствовать. Предикаты могут использоваться в канале АЛУ или в канале доступамогут использоваться в канале АЛУ или в канале доступа к массивам; для указания на это используются условныек массивам; для указания на это используются условные слоги, содержащие маски предикатов и ФУ. Всего в этихслоги, содержащие маски предикатов и ФУ. Всего в этих слогах может кодироваться до 6 предикатов, указывающихслогах может кодироваться до 6 предикатов, указывающих на то, нужно ли выполнять соответствующие операции изна то, нужно ли выполнять соответствующие операции из «широкой» команды.«широкой» команды.
  • 44. Компилятор E2K порождает коды для обоих ветвейКомпилятор E2K порождает коды для обоих ветвей программыпрограммы, возникающих при условном переходе, и,, возникающих при условном переходе, и, пользуясь большим числом ФУ и регистров, заставляетпользуясь большим числом ФУ и регистров, заставляет процессоры выполнять обе ветви программы. Та жепроцессоры выполнять обе ветви программы. Та же процедура применяется и в IA-64. До тех пор, покапроцедура применяется и в IA-64. До тех пор, пока условие перехода остается неизвестным,условие перехода остается неизвестным, обе ветвиобе ветви выполняются спекулятивновыполняются спекулятивно. Когда, наконец, условие. Когда, наконец, условие найдено, выбираются нужные результаты. Признакнайдено, выбираются нужные результаты. Признак спекулятивного выполнения взводится при этом вспекулятивного выполнения взводится при этом в специальном бите в коде операции в соответствующемспециальном бите в коде операции в соответствующем слоге. При возникновении ситуации исключенияслоге. При возникновении ситуации исключения (exception) результат снабжается тегом(exception) результат снабжается тегом недействительного значения.недействительного значения. В файле предикатов E2K, как и в регистровом файле,В файле предикатов E2K, как и в регистровом файле, используются окна.используются окна.
  • 45. Еще некоторые особенности архитектуры E2K:Еще некоторые особенности архитектуры E2K:  тегирование данныхтегирование данных, поддерживаемое во всей, поддерживаемое во всей линейке процессоров ЭВМ «Эльбрус»;линейке процессоров ЭВМ «Эльбрус»;  сегментно-страничная организация памятисегментно-страничная организация памяти;;  поддержка мультипрограммирования в стилеподдержка мультипрограммирования в стиле x86x86.. В сочетании с разработанными средствамиВ сочетании с разработанными средствами двоичной компиляции и специальными аппаратнымидвоичной компиляции и специальными аппаратными средствами ее поддержки это позволяет выполнятьсредствами ее поддержки это позволяет выполнять x86-коды на E2K.x86-коды на E2K. Поддерживается также двоичная компиляция дляПоддерживается также двоичная компиляция для SPARC-архитектуры.SPARC-архитектуры. По материалам: Отечественные микропроцессоры: Elbrus E2KПо материалам: Отечественные микропроцессоры: Elbrus E2K Михаил Кузьминский/Михаил Кузьминский/17.05.1999.17.05.1999. Открытые системы, #05-06/1999Открытые системы, #05-06/1999
  • 46. Сравнительные характеристики E2KСравнительные характеристики E2K и Alpha 21264и Alpha 21264 E2KE2K Alpha 21264Alpha 21264 Емкость, КбЕмкость, Кб I – кэш L1I – кэш L1 ТипТип Время доступаВремя доступа 6464 4-канальный частично ассоц.4-канальный частично ассоц. 2 такта2 такта 6464 2-канальный частично ассоц.2-канальный частично ассоц. 3 такта3 такта Емкость, КбЕмкость, Кб D – кэш L1D – кэш L1 ТипТип Время доступаВремя доступа 8+88+8 ПрямоадресуемыйПрямоадресуемый 2 такта2 такта 6464 2-канальный частично ассоц2-канальный частично ассоц 3 такта3 такта Емкость, КбЕмкость, Кб D – кэш L2D – кэш L2 ТипТип Время доступаВремя доступа 256256 2-канальный частично ассоц.2-канальный частично ассоц. 8 тактов8 тактов Кэш второго уровня являетсяКэш второго уровня является внешнимвнешним I – TLBI – TLB ЕмкостьЕмкость 64 строки64 строки 128 строк128 строк D – TLBD – TLB ЕмкостьЕмкость 16 строк (ассоц.) +256 строк 4-16 строк (ассоц.) +256 строк 4- канальн. частично ассоц.канальн. частично ассоц. 128 строк (ассоц.)128 строк (ассоц.) РегистрыРегистры ЧислоЧисло По 256 на кластерПо 256 на кластер 80х2 целоч., 72 веществ.80х2 целоч., 72 веществ.
  • 47. E2KE2K Alpha 21264Alpha 21264 Тактовая частота,Тактовая частота, МГцМГц 12001200 500-667500-667 ЧислоЧисло транзисторовтранзисторов 28 млн.28 млн. 15,2 млн.15,2 млн. Площадь, кв.ммПлощадь, кв.мм 126126 302302 Рассеяние тепла,Рассеяние тепла, ВтВт 3535 6060 Технология, мкмТехнология, мкм 0,180,18 0,350,35 SPECint95SPECint95 135135 3030 SPECfp95SPECfp95 350350 6060
  • 48. ХарактеристикаХарактеристика IA – 64 (VLIW)IA – 64 (VLIW) E2KE2K 1.1.ФорматФормат командкоманд Длина командДлина команд фиксирована. 3 команды вфиксирована. 3 команды в связке длинной 128 бит. Всвязке длинной 128 бит. В формат команды вводятсяформат команды вводятся маски, которые указываютмаски, которые указывают на зависимость междуна зависимость между командами.командами. Команды переменной длины, состоит изКоманды переменной длины, состоит из слогов 32 разряда каждый (м.б. 1-16 слога,слогов 32 разряда каждый (м.б. 1-16 слога, можно расширить до 32 слогов).можно расширить до 32 слогов). Во всех командахВо всех командах 1 слог заголовка:1 слог заголовка:  содержит информацию о структуре командысодержит информацию о структуре команды и ее длине ;и ее длине ;  позволяет не проводить предварительногопозволяет не проводить предварительного декодирования команд перед ихдекодирования команд перед их перемещением в I-кэш.перемещением в I-кэш. 2.2.РегистрыРегистры 128 – целочисленных128 – целочисленных регистров и 128 регистроврегистров и 128 регистров с плавающей точкой.с плавающей точкой. Сверхбольшой РФ, все регистрыСверхбольшой РФ, все регистры универсальныуниверсальны, т.е. могут содержать как, т.е. могут содержать как целочисленные данные, так и с плавающейцелочисленные данные, так и с плавающей точкой. 256 64-разрядных регистров. 2точкой. 256 64-разрядных регистров. 2 кластера.кластера. 3.3.СистемаСистема командкоманд Четырехадресные команды типа d=a+b+c,Четырехадресные команды типа d=a+b+c, поддержка 80-разрядного представленияподдержка 80-разрядного представления формата с плавающей точкой Intel х86.формата с плавающей точкой Intel х86. РеализованыРеализованы MMX команды.MMX команды. 4.4. ОбработкаОбработка командкоманд 64 регистра предиката.64 регистра предиката. Хранятся пары – предикатХранятся пары – предикат и его отрицание. Поляи его отрицание. Поля предикатов всегдапредикатов всегда представлены в команде.представлены в команде. 32 одноразрядных регистра – предиката.32 одноразрядных регистра – предиката. Команда способна сформулировать до 7Команда способна сформулировать до 7 предикатов, но иногда предикаты могутпредикатов, но иногда предикаты могут отсутствовать.отсутствовать. Компилятор порождает коды для обоих ветвей программы и заставляетКомпилятор порождает коды для обоих ветвей программы и заставляет процессоры выполнять обе ветви программы (спекулятивно).процессоры выполнять обе ветви программы (спекулятивно). Тегирование данных (теговая память).Тегирование данных (теговая память). сегментно-страничная организация исегментно-страничная организация и мульти-мульти-
  • 49. Некоторые высказывания профессора,Некоторые высказывания профессора, члена-корреспондента Российской академиичлена-корреспондента Российской академии наук Бориса Арташесовича Бабаянанаук Бориса Арташесовича Бабаяна 1. Копирование – это ужасно. Не только по своей технической1. Копирование – это ужасно. Не только по своей технической неэффективности ужасно, потому что если передираешь, то на многонеэффективности ужасно, потому что если передираешь, то на много лет отстанешь. И не только из-за того, что это деквалификациялет отстанешь. И не только из-за того, что это деквалификация коллектива, люди с трудом понимали, как это устроено, а уж почему такколлектива, люди с трудом понимали, как это устроено, а уж почему так – и не задавай таких вопросов…А просто даже это аморально, потому– и не задавай таких вопросов…А просто даже это аморально, потому что это же воровство.что это же воровство. 2. Вообще,2. Вообще, Intel – в технологии гениальный, а в архитектуреIntel – в технологии гениальный, а в архитектуре они всегда были слабыони всегда были слабы. Merced по всем параметрам очень так себе.. Merced по всем параметрам очень так себе. 3. В жизни не было ни одной машины, которую мы проектировали3. В жизни не было ни одной машины, которую мы проектировали бы и не сделали! Просто ни одной не было! И обычно нормальнобы и не сделали! Просто ни одной не было! И обычно нормально работает первый же кристалл. А потом,работает первый же кристалл. А потом, микропроцессор – он жемикропроцессор – он же всегда на бумаге до последнего днявсегда на бумаге до последнего дня. Это же не танк и не самолет.. Это же не танк и не самолет. Привезут tapeout на завод – и через две недели процессор уже вПривезут tapeout на завод – и через две недели процессор уже в «железе».«железе». 4. Многих держат не деньги – интересная работа. И таких знаний,4. Многих держат не деньги – интересная работа. И таких знаний, как здесь, в Штатах вы не получите никогда!как здесь, в Штатах вы не получите никогда! 5. Потому что никто другой не может сделать. Это вызывающе, это5. Потому что никто другой не может сделать. Это вызывающе, это же очень здорово! Но прежде всегоже очень здорово! Но прежде всего придумывание нового – этопридумывание нового – это очень интересный, просто захватывающий процесс. Трудно оточень интересный, просто захватывающий процесс. Трудно от него оторваться.него оторваться. Журнал «Домашний компьютер», №3, 2000.Журнал «Домашний компьютер», №3, 2000.
  • 50. Для самостоятельного изученияДля самостоятельного изучения
  • 51. В начале 80-х годов прошлого века, в научно-исследовательской лаборатории компании Hewlett-Packard началась разработка новой, революционной архитектуры центральных процессоров, которая должна была со временем заменить существующие RISC1 и CISC2 архитектуры. В 1994 году к разработкам присоединилась корпорация Intel, путем заключения соглашения с HP о совместном исследовательском проекте. Цель проекта заключалась в разработке 64-разрядного набора команд и оптимизирующих компиляторов. Инженеры двух компаний предполагали, что в скором времени возможности по масштабированию вычислительных мощностей путем наращивания тактовых частот иссякнут, и при разработке новой концепции сделали упор на реализацию технологий параллельных вычислений. Архитектура получила название EPIC – Explicitly Parallel Instruction Computing – вычисления с явно заданным параллелизмом команд – и основными ее особенностями стали возможность распараллеливания инструкций, использование технологии «очень длинного машинного слова» – Very Long Instruction Word, а также возможность выполнения большего количества инструкций за процессорный такт.
  • 52. Начиная с 2001 года корпорация Hewlett-Packard начала производство и выпуск серверов на базе процессоров Intel Itanium, которые и явились оконечным продуктом архитектуры EPIC или Intel IA-64. В настоящее время большое количество вендоров – Bull, Fujitsu Siemens Computers, Hitachi, HP, NEC, SGI, Unisys, BEA, Novell, Oracle, Red Hat, SAP, SAS и Sybase поддерживают архитектуру Intel IA-64. В сентябре 2005 года был создан альянс Itanium Solutions Alliance (http://www.itaniumsolutionsalliance.org) по разработке, продвижению и потированию приложений на данную архитектуру. Архитектура EPIC обладает следующими ключевыми особенностями: •наличие большого количества регистров в ЦПУ; •явный параллелизм в машинном коде; •предикация – специальная обработка команд условного ветвления; •загрузка по предположению; •реализация архитектуры VLIW. Рассмотрим подробнее данные особенности.
  • 53. Процессорные регистры Процессоры архитектуры Intel Itanium имеют в своем распоряжении 128 64-х разрядных регистров общего назначения; 128 80-ти разрядных регистров для вещественных чисел; 64 1-разрядных предикатных регистра; 8 64-х разрядных регистров для операций ветвления. Для сравнения, процессоры Intel Xeon последнего поколения располагают только 32-мя регистрами. Наличие такого большого количества регистров позволяет уменьшить конвейер ЦПУ до 8-ми шагов и при не высокой, по сегодняшним меркам, частоте в 1.4 – 1.6 ГГц получить очень высокую производительность. Инструкции, поставляемые центральному процессору упаковываются компилятором в группы или связки размеров по 128 бит. Каждая связка состоит из 3-х команд и шаблона, в котором описана возможность параллельной обработки этих команд. Уменьшенная длина процессорного конвейера позволяет сократить простои в случае промаха при чтении из кэша.
  • 54. Параллелизм в машинном коде Увеличение мощности процессоров осуществляется за счет двух ключевых факторов: во-первых, это увеличение скорости передачи сигналов (тактовые частоты), во-вторых, более плотное расположение функциональных элементов на кристалле. Оба этих параметра ограничиваются физикой и используемыми при изготовлении технологическими процессами. Дальнейшее увеличение вычислительной мощности возможно путем реализации параллелизма на уровне команд (ILP — Instruction-Level Parallelism). Данный метод стал возможен благодаря использованию средств компиляции, которые ускоряют работу за счет параллельного выполнения отдельных операций. Системы на базе ILP используют программное обеспечение, написанное на традиционных языках высокого уровня, для CISC-процессоров, а обнаружением «скрытого параллелизма» занимается программный компилятор на этапе сборки приложения. Из этого следует, что при разработке программного обеспечения для архитектуры IA-64 разработчику не обязательно становится экспертом в области параллельных вычислений и проектировать программу с учетом необходимости параллельных обработок данных. Эту работу выполняет компилятор, который обладает всеми необходимыми для реализации параллельных вычислений возможностями.
  • 55. Предикация В процессоры архитектуры Intel Itanium встроена возможность предикации, т.е. возможность распараллеливания команд условного ветвления. По статистике операция условного ветвления встречается в исходном коде через каждые шесть команд. Суть этой технологии заключается в следующем: процессор располагает набором специальных предикатных регистров, при обработке операции условного ветвления, каждая из веток помечается своим регистром, значения которых до окончания обработки вычислений остаются не определенными. Обсчет веток осуществляется параллельно. По окончании расчетов, регистр истинной ветки устанавливается в 1, ложной в 0. При выполнении инструкций, процессор будет обрабатывать только те ветки, значение предикатных регистров которых равно единице. Данный метод позволяет перенести задачи сложных расчетов операций условных ветвлений на этап компиляции, что значительно ускоряет процесс исполнения машинного кода.
  • 56. Загрузка по предположению В архитектуре x86, данные центральному процессору поступают из оперативной памяти, скорость работы которой, намного медленнее скорости работы ЦПУ. Соответственно, центральный процессор вынужден простаивать ожидая поступления очередной порции данных. Процессоры архитектуры Intel Itanium, обладают возможностью предварительной загрузки данных в регистры. Выборка данных, также осуществляется из регистров, что значительно увеличивает скорость обработки данных, центральным процессором. Данная технология получила название Register Stack Engine (RSE). Суть ее заключается в следующем. Каждый раз, при вызове какой-либо функции, ей выделяется определенный буфер, который располагается не в оперативной памяти, а в регистрах центрального процессора. В архитектуре Intel Itanium под эти цели отводятся последние 96 регистров общего назначения. Аппаратная платформа связывает выделенный функции пул регистров с другими пулами, для возможности обмена данными между функциями, если это необходимо. Соответственно, все взаимодействия осуществляются внутри центрального процессора, без использования внешней, медленной оперативной памяти.
  • 57. Архитектура VLIW Архитектура VLIW является одной из реализаций концепции внутреннего параллелизма в микропроцессорах. Суть концепции заключается в задействовании всех логических блоков конвейера в пределах одного такта центрального процессора. Для увеличения количества выполняемых за один цикл операций необходимо обеспечить надежное параллельное исполнение машинных инструкций на каждом функциональном модуле, что в результате дает полную загрузку процессора, с получением максимальной производительности. В данном случае под надежностью понимается, что результаты параллельных вычислений будут гарантированно правильными. Процесс планирования порядка вычислений является очень сложным и трудоемким. В архитектуре Intel Itanium он практически полностью перекладывается на компилятор, который должен выискать в программе все несвязанные между собой инструкции, увязать их вместе в очень длинные строки (длинные инструкции) и затем отправить на одновременное исполнение функциональными модулями.
  • 58. Процессор Itanium 2 представлен в 2002 году иПроцессор Itanium 2 представлен в 2002 году и предлагался скорее для серверов предприятия, чем дляпредлагался скорее для серверов предприятия, чем для целевого диапазона высокопроизводительныхцелевого диапазона высокопроизводительных вычислений. Первый Itanium 2, получивший кодовое имявычислений. Первый Itanium 2, получивший кодовое имя McKinley, был выпущен совместными усилиями HP и Intel.McKinley, был выпущен совместными усилиями HP и Intel. Это позволило решить многие из проблем сЭто позволило решить многие из проблем с производительностью оригинального процессора Itanium,производительностью оригинального процессора Itanium, которые по большей части вызвала неэффективнаякоторые по большей части вызвала неэффективная подсистема памяти. McKinley содержал 221 миллионовподсистема памяти. McKinley содержал 221 миллионов транзисторов, 25 миллионов из которых были для блоковтранзисторов, 25 миллионов из которых были для блоков логики, имел размеры 19,5 мм на 21,6 мм (т. о. егологики, имел размеры 19,5 мм на 21,6 мм (т. о. его площадь составила 421 мм²) и производился поплощадь составила 421 мм²) и производился по технологическому процессу 180 нм объемного КМОП стехнологическому процессу 180 нм объемного КМОП с шестью уровнями алюминиевой металлизации.шестью уровнями алюминиевой металлизации.