- •Принцип двоичного кодирования
- •0 D 0 0 1 0 0 0 инверт
- •1) Проверить, выровнены ли порядки, и. Если нет. То выровнять.
- •2} Сложить мантиссы (одна из них. Возможно, денормализовша).
- •С 1992 г. - неотъемлемая часть Intel и amd.
- •271 Команда - групповые арифметические и логические операции , сдвиги , сравнения , перегруппировка и извлечение отдельных чисел , различные варианты пересылок .
- •Команды управления виртуальной памятью .
- •6} В режиме ss&2
- •3 Register ImmediateFormat 1a
- •Instruction -Level Pa га I lei ism
- •Instruction -Level Parallel ism
- •Su perscalarArch itectu res
- •Intel 486 - один конвейер , Pentium - 2 конвейера из 5 стадий .
- •Su perscalarArch itectu res
- •Su perscalarArch itectu res
- •Instruction
- •1011X j|I 2 - все параллельно
- •1 Упрощается архитектура процессора ; вместо распараллеливающей логики на eric процессоре можно разместить больше регистров , функциональных устройств .
- •BusWidth
- •1. Арбитраж пин
- •3. Методы повышения эффективности пин
- •4. Стандарты шинS Примеры
- •Bus Arbitration (2)
- •Способы расширения полосы пропускания шин :
- •Pci BusTransactions
- •Сокращённые обозначения -kj,Mi7 Gi.Ti.Pi и Ei.
- •Vax/1980 pPra/1996
- •MemoryChips
- •Volatile
- •1. Блочная организация основной памяти
- •2. Микросхемы памяти
- •Расслоение памяти
- •Расслоение памяти
- •1. Динамические сву
- •Динамические сву для видеоадаптеров
- •Многопортовые os/
- •Volatile
- •2. (Пни -память
- •3. Ассоциативные 3/
- •4. Организация fau -памяти
- •Пример 2
- •Пример 2
- •1. Организация fcu -памяти
- •2. Система ввода -вывода
- •Ёмкость каи - 32kb , строки го 25б байт .
- •Address
- •64 Kb cache, direct -mapped,32 -byte cache block
- •32 Kb cache, 2 -wayset -associative, 16 -byteblocks
- •16Kb,4 -wayset-associativecache732 -bitaddress, byte -addressablememory/32 -byte cache blocks/lines
- •Write -through - прежде всего обновляется слово ,
- •Средства обнаружения и защиты от ошибок . Архитектура современных н)¥щ основана на полностью ассоциативном отображении .
- •Структура гу
- •1. Понятие конвейера
- •If: Instruction fetch
- •Id: Instruction decode/ register file read
- •Риск го данным - взаимосвязь команд го данным
- •Pipelined Datapath
- •Hazards
- •Superscalar Architectures
- •Instruction
- •Instruction decode
- •1. Очередность вьщачи декодированных команд на исполнительные блоки отличается от последовательности предписанной программой -неупорядоченная выдача команд (out-of-orderissue ),
- •Sisd,misd,simd,mimd.
- •Классификация Флинна
- •Heterogeneous multiprocessor chip with six cores
- •Организация памяти вс
- •Message-passing interconnection network
- •3 Stages
- •3 Stages
- •Num am ulti processors
- •Interconnection network
- •18Bits 8
- •18Bits 8
- •And memories are not shown.
- •(A) a star, (b) a complete interconnect.
- •(C) a tree, (d) a ring, (e) a grid, (f) a double torus.
- •(G) a cube, (h) a 4d hypercube.
- •Red Storm (2)
Hazards
CCl
OC2
OC3
0C5
cce
OC7
ocs
_
Ш
— L
Ее
1—nj\—I
and$12 JB, $5
;б, $2
add$14 je,
00
$15,
Ы
M
|
|
- |
|
IM |
|
|
| ||||
\/ |
|
|
| ||
|
|
| |||
|
|
|
|
| |
M |
— |
в. |
|
Зависимости
• Зависимости го данным : одна команда зависит от другой так гак получает её результат в качестве операнда .
• Зависимости го управлению (aka branchdependences У. одна команда определяет выполнятся другой команде игм нет.
■ Зависимости го управлению чрезвычайно важны в условных переходах .
add $5, $3, $2
- А
datadependences sub $6f $5r $2
\
beq $6, $7f somewherecontrol dependence +1
and $9, $3, $1
Printed with FinePrint- purchase atwww.fineprint.com
^ Б
^ И
Риски ю управлению (BranchHazards )
• Зависимости го управлению могут «вылиться » в риски го управлению (ate control hazards ) команд , которые сложно корректно обработать на конвейере .
Два фактора :
реализация перехода (для любой команды перехода )выливается в потерю минимум двух тактов навычисление нового адреса команды ■
издержки перехода дгя команд условного перехода -могут быть большими , чач 2 такта .
Cmid 15
When are branches resolved?
Instruct! onFetch
InstructionDe code
Execute/ A dd r es s С alculation
MemoryAccess
WriteBack
D,EX
МЕМ/Л1В
m em ory
F/C
Read register^
Registers
Е с
register
Wife
Г
Branch target address is put in PC during Mem stage. Correct instruction is fetched during branch 's WB stage.
йд 16
Printed with FinePrint- purchase atwww.fineprint.com
Branch Hazards
СС1 0C2
0C3
0C5
ссе ост
ocs
Ы
M
Theseinstructions
shouldn
't be executed!
add..
sub...
here: to ..
Reg
Ш
Finally,theright instruction
Cmid 17
|
|
|
1 |
Издержки |
перехода |
|
|
|
|
|
| ||||||||||||||||||||
|
1. Выборке |
з команды (ВК) |
|
| |||||||||||||||||||||||||||
|
Z Декодирование команды (Д<) Издержки |
- потер? |
1 4 тактов . | ||||||||||||||||||||||||||||
|
3. Вычисление адресов операндов (ft) в ^y^ большего |
| |||||||||||||||||||||||||||||
|
4. Вьборка операндов (К>) количества 5. Исполнение команды (ИО |
стадий |
конвейера | ||||||||||||||||||||||||||||
|
6. Запись |
результата (?) -оопьшие |
потери |
■ | |||||||||||||||||||||||||||
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
И |
Е |
В |
и |
|
| ||||||||||||||
|
Ксманда 1 |
к |
д< |
ЕА |
BD |
ИХ |
3» |
|
|
|
|
|
|
|
|
|
| ||||||||||||||
|
Ксманда 2 |
|
В< |
А |
|
BD |
и< |
|
|
|
|
|
|
|
|
|
| ||||||||||||||
|
Ксманда 3 |
|
|
в< |
|
|
|
И< |
3> |
|
|
|
|
|
|
|
| ||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||||||||||
|
Ксманда 4 |
|
|
|
|
д< |
|
|
|
|
|
|
|
|
|
|
| ||||||||||||||
|
Ксманда 5 |
|
|
|
|
к |
|
|
|
|
|
|
|
|
|
|
| ||||||||||||||
|
Ксманда 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||||||||||||||
|
Ксманда 7 |
|
|
|
|
|
|
к) -ч ^ |
|
|
|
|
|
|
|
|
| ||||||||||||||
|
Ксманда Б |
|
|
|
|
|
|
|
|
д< |
№ |
во |
их |
|
|
|
| ||||||||||||||
|
Ксманда Ъ |
|
|
|
|
|
|
|
|
В< |
|
|
BD |
и< |
3> |
|
| ||||||||||||||
|
|
|
|
|
C«Z№ 1O |
Printed with FinePrint- purchase atwww.fineprint.com
Сокращение издержек
Сокращение издержек на выборку команды из точки перехода :
1. Вычисление исполнительного адреса перехода на ступени декодирования команды ;
2 Использование буфера адресов перехода ;
Использование кш -памяти для хранения команд ,расположенных в точке перехода ;
Использование буфера цикла .
1. При декодировании выясняется нэ только тип команды (переход или нет), нэ и способ адресации и ВЫЧИСЛЯЕТСЯ адрес точки перехода . Экономия одного такта при реализации перехода . Требует дополнительных сумматоров , которые и вычисляют исполнительный адрес точки перехода .
Cmid 19
Сокращение издержек
2 Использование буфера адресов перехода ;
Б/фер адресов перехода (ВТВ, Branch Target Buffer) - кш-память
небольшой ёмкости , в которой хранятся исполнительные адреса
точек перехода нескольких последних команд , для которых
переход имел место бьггь . В качестве тэгов - адреса
соответствующих команд .
Перед выборкой команды - счётчик команд сравнивается с
содержимым кш . Если в ней есть подобный адрес - то можно нэ
вычислять исполнительный адрес команды перехода , а брать из
кш . Экономия одного такта .
Если в кш нет требуемого адреса , то - исполнение команды
обычным образом . Если это оказалась команда перехода -
занесение её и адреса точки перехода в кш (принцип замещения
LRU).
Метод ВТВ хорош для циклов . Обычно используется в составе
более сложных схем го устранению конфликтов го управлению .
Cmid 2)
Printed with FinePrint- purchase atwww.fineprint.com
Сокращение издержек
3. Использование кш -памяти для хранения команд , расположенных в точке перехода ;
-память команд , расположенных в точке перехода (ВТ1С, Branch Target Instruction Cache) -усовершенствованный вариант ВТБ . Память помимо исполнительного адреса перехода содержит ацё и иэд команды на которую совершается переход . К экономии одного цикла как в ВТБ прибавляется экономия одного цикла на выборку команды из памяти . Максимальный эффект - при реализации программных циклов .
Cmid 21
Сокращение издержек
4. Использование буфера цикла .
Б/фер цикла - маленькая быстродействующая память , входит в состав первой ступени конвейера (В<) В буфере хранятся кеды п последних команд в той последовательности , в которой они выбирались . Если имеет место переход , то сперва проверяется нет лл нужной команды в буфере , и если да - то команда извлекается из буфера .
Наиболее эффективен гри реализации циклов и итераций . Если буфер достаточно велик , чтобы вместить всё тело цикла , то выборка команд - только в первый раз, остальные обращения -только к буферу .
По принципу - буфер похож на ВПС , нэ хранит ацё и последовательность команд , меньше го ёмкости и дешевле .
Cmid 22
Printed with FinePrint- purchase atwww.fineprint.com
Решение проблемы условного перехода
1. Буферы пред выборки .
2 Множественные потоки
Задержанный переход
Предсказание перехода
1. Нарушение размерности подачи команд на вход конвейера -память занята , либо команда состоит из нескольких слов . Для обеспечения ритмичности псдачи - вводят б\фер пред выборки (RFO) между ступенью ЕК и остальным конвейером . Буфер можно рассматривать как дополнительные ступени конвейера . Удлинение конвейера нэ сказывается на его производительности , увеличивается лишь время прохождения команды го конвейеру . Типичный буфер - на 2-8 команд . Для решения проблемы условных переходов в конвейер включаются два таких буфера .
Cmid 23
Решение проблемы условного перехода
1. Буферы пред выборки .
Основной буфф
Остальной
конвейер
Дл . буфф
Каждая извлечённая из памяти и помещённая в основной б\фер команда анализируется блоком перехода . При обнаружении условного перехода , блок вычисляет исполнительный адрес точки перехода и параллельно с продолжением работы основного буфера загружает команды начиная с точки перехода в дополнительный буфер . Если происходит переход , то основной буфер сбрасывает^ и подключается дополнительный .
Printed with FinePrint- purchase atwww.fineprint.com
Решение проблемы условного перехода
Минусы буферов предвыборки :
дублирование оборудования ;
если команды У1 близко расположены в коде , то двух буферов будетнедостаточно .
Продолжение конвейера
Остаток конвейера
Продолжение конвейера
2 Множественные потоки - дублирование начальных ступеней конвейера
и создание тачич образом двух параллельных потоков команд .
В одной ветви - последовательность выполнения команд в случае
неосуществления перехода , вэ втором - в случае осуществления .
Оба потока сходятся в точке , где итог проверки условия будет очевиден^
Решение проблемы условного перехода
Дальнейшее продвижение го конвейеру - только «правильный » поток .
Продолжение конвейера
Остаток
конвейера
Продолжение конвейера
Основной минус - проблемы гри близко расположенных в коде У1 . Очередной У1 поступает на ЕК до момента , принятия окончательного решения го текущей команде перехода . Каждая подобная команда в итоге будет требовать отдельного потока . „ ^ „
Printed with FinePrint- purchase atwww.fineprint.com
Решение проблемы условного перехода
3. Задержанный переход
Продолжение выполнения команд следующих за командной У1 ,
вне зависимости от её исхода .
Смысл имеется только в тек случаях , когда «доведённые до конца »
команды являются «полезными », т. е. вычисляемыми в любом
случае , вне зависимости а результата выполнения команды
перехода .
Реализация стратегии - с помощью компилятора и оптимизатора .
Компилятор после каждой команды перехода вставляет NCP
нужное количество раз , а оптимизатор - «перемешивает » команды
таким образом , чтобы как можно больше NCP были (ъ1 заменены
«полезными командами ».
В оптимизированной программе удаётся заменить более Ж NOP.
Cmid 27
Предсказание переходов
Предсказание переходов - один и наиболее эффективных способов борьбы с конфликтами го управлению .
ц
Основная идея -до момента выполнения команды У1 делается предположение о наиболее вероятном исходе (произойдёт или нет переход ) Последующие команды поступают на конвейер в соотв . с предсказанием .
12
и
Если дги кем .3 предсказан переход , т> за загружается команда 15. Ес/м предсказание корректно - X» воё хорошо . Иначе очистка конвейера - те же издержки кж и обьччо .
Кснанда 1
Кснанда 2
Кснанда 3
Кснанда 4
*№+
•ДО
Кснанда 5
*№*
Кснанда 6
*ш*
Кснанда 7
*до
Кснанда Б
*т*
Цена ошибки - достаточно высокая , нэ и эффект от выигрыша - конвейер работает практически без остановок .
Printed with FinePrint- purchase atwww.fineprint.com
Предсказание переходов
Точность предсказания - процентное соотношение числа правильных предсказаний к общему ж числу .
Чтобы снижение производительности конвейера из-за конфликтов го управлению не превысило 10%, точность предсказания переходов должна быть he менее 97,7%.
_ более двух десятков способов предсказания переходов . /£е ^ разновидности - статический и динамический .
Статический - основан на априорной информации сб исполняемой
программе . Предсказание совершается на этапе компиляции и уже
нэ меняется . Исходная информация - из анализа кода игм в
результате профилирования программы .
Стратегии :
-переход происходит всегда (ГВ)
-переход нэ происходит никогда (ГН )
-предсказание го результатам профилирования
-предсказание определяется кодом операции команды перехода
Cmid 29
-предсказание зависит от направления перехода
-при первом выполнении программы - переход всегда .
Статическое предсказание переходов
Переход происходит всегда (ГВ) - каждая команда У1 всегда
завершается переходом . Переход нэ происходит никогда (ГН ) - ж одна из команд )П никогда
нэ завершается переходом , поэтому выборка команд - в
естественной последовательности .
ADVAN - решение системы &ф .уров . в частных производных
GIBSON - искусственный набор команд - смесь Гибсона №5
SCT2 - обращение матрицы
SINCOS - преобразование массива координат из полярн . в декарт .
SORT5T - сортировка массива из 10000 целых чисел
TBLJ.NK - работа аэ связным списком .
ACVAN —
GBSON —SCT2
SINCOS —SORTST
TBLJNK —-
— 57/1% 61,5%
99,4%
- 96,2%
> Эффективность ГБ
Cmid 3}
Printed with FinePrint- purchase atwww.fineprint.com
Статическое предсказание переходов
Переход происходит всегда (ГВ ) - средняя эффективность : 68 -Ж
(зависит от задачи исполняемой программы )
Стратегия реализована в MIPS -X, SuperSPARC , i486. Просто и дёшево Переход нз происходит никогда (ПН ) - процент правильных исходов
ниже , особенно в программах с большим юл -всм циклов . Реализована в M68Q20 и ГС 88000( VAX11/ 780).
ГВ (цвл .) ГВ (ГВ)
ПН (цвл ■) ПН(ГВ)
************************Гр 0/_
55%
4У/о Сравнение
эффективности стратегий ГБ и ПН
Cmid 31
AssumeBranch NotTaken
works pretty well when you 'reright
CC1 OC2 CC3CaCC5 CC6OC7CC8
ind$12;$2;$5
dd...
Printed with FinePrint - purchase atwww.fineprint.com
Cmid 32
AssumeBranch NotTaken
same performance as stalling when you 'rewrong
CC1OC2 CC3CaCC5 CC6OC7CC8
ind$12;$2;$5
idd...
there:4ib$12,$4;$2
CwOd 33
Статическое предсказание переходов
Предсказание гр результатам профилирования подлежащих
выполнению программ - выполнение программы на некотором исходном наборе данных и сбор информации о результатах каждого перехода . Тем командам , которые чаще завершались переходом - стратегия ГВ , остальным - ГН .
Основная проблема - зависимость профилирования от исходных данных .
Средняя вероятность правильного предсказания - 75%( тестовый пакет SPEC_92). Реализована на MIPS4xOO и PowerPC603.
Предсказание на основе кода операции команды перехода - для одних команд - переход произойдёт , а для других - нэ случится (вне зависимости от исходных данных !). Определяется эмпирически - на основе большого количества тестов . Так, например , стратегия ГВ - для команд перехода го условиям «меньше н^1я », «равно » и «больше игм равно », для всех остальных - ГН . Средняя эффективность подхода - от Ъ да 86,7%.
Printed with FinePrint- purchase atwww.fineprint.com
Статическое предсказание переходов
ADVAN 99/1%
QBSON 93,5%
SO2 97,5%
SINCOS 65,7% (Щ2% ) Эффективность
SORT5T S2 ,5% стратегии «пфеход
TBUNK 76,2 % в эеб . от
кеда операции »
Переход в зависимости от направления - если переход «назад » (го
счётчику команд ), то стратегия - ГВ, если вперёд - то ГН .
Особенно полезна для программ с большим количеством циклов Для переходов «назад » - фактический переход в среднем в 8Р/о
случаев , для переходов «вперёд » - в среднем в 65%. Реализована на MicroSPARC -2 и FA -7x00. Чаще данная стратегия -
вторичная в схемах динамического предсказания переходов .
Cmid
Статическое предсказание переходов
Переход при первом выполнении любой команды У1 - стратегия ГВ, предсказания на последующие переходы - в зависимости СП-точности первоначального предсказания . Точность данной стратегии - наивысшая среди всех статических .
На больших объёмах кода - стратегия практически нереализуем а -слишком много команд У1 для запоминания .
GBSON 97,9%
SO2 96,0%
SINCQ5 7^2% (Щ2% )
SORT5T 81,7%
TBLJNK 91,7 %
Эффективность стратегии «грл первом выполнении переход происходит обязательно »
к> Ъ
Printed with FinePrint- purchase atwww.fineprint.com
Динамическое предсказание переходов
Динамическое предсказание - предполагает накопление информации сб исходе предшествующих команд У1 . История переходов - в виде таблицы , каждый элемент - m бит. Нужный элемент таблицы указывается с помощью к-разрядной двоичной комбинации - шаблона (pattern). Отсюда название - таблица истории для шаблонов (РНТ, Pattern History Table).
Динамические схемы предсказания - один из видов автомата Мура , содержимое элементов РНГ - информация о текущем состоянии автомата . Три основных вида - Al, A2 и A3.
Cmid 37
Динамическое предсказание переходов
Переход \ произошёл \
Предсказать , что \ переход судет>-
Перехода не было
А1
Предсказать , что перехода нэ будет
О
Переход произошёл
Перехода не было
А1-два состояния , элемент РНГ -один бит (111=1), содержащий исход последнего выполнения команды У1 .
Если команда завершилась переходом , то в соотв . элемент FHT заносится 1, иначе - 0. Очередное предсказание совпадает с итогом предыдущего выполнения команды . После обработки очередной команды - содержимое элемента корректируется .
Printed with FinePrint- purchase atwww.fineprint.com
Cmid 33
Динамическое предсказание переходов
^-'"Предсказать
, чю пфеход
будет
Пфехода
ье
было
Пфеход
произошёл
.*'
Пфеход
произошёл
произошел
/ Переход \ ' произошёл Л
Перехода 1-е Еыло
А2
£
00
А2 - пример из четырёх состояний , элемент FHT -два бита (т=2), содержащий исход последнего выполнения команды У1 .
В А2 элементы РНГ отражают результаты двук последних исходов команд У1 (заполняются го схеме регистра сдвига
Сши>
Динамическое предсказание переходов
/ Пфеход \ ' произошёл л
Пфехода 1-е было
^-^Предсказать , чю пфеход будет
1редсказать , чю гереход будет
А2
Пфеход
произошёл
■н
00
---^--j^erJfflKjflai-eDy^ex--^
Пфеход ^ Пфехода I
произошёл ч № ^^ /
Двухразрядный А2 используется редко - чещё\ трёхразрядный (НРРА8000 ).
После обработки очередной команды )П содержимое элемента РНГ сдвигается влево на один разряд , а в освободившуюся ячейку заносится 1 если переход был , или 0 - если нэ было .
Если в элементе РНГ есть хоть одна 1, то делается предсказание , что переход будет , в ином случае - перехода нэ будет .
Printed with FinePrint- purchase atwww.fineprint.com
Динамическое предсказание переходов
1редсказать
, чю "^ ехода
ье бу
QL
1редск.аватъ , чю переход будет
/ Переход \ ' произошёл ч
Переход произошёл
Перехода ье Еыло
Пфеход произошёл
Перехода ье Еыло
Пфеход произошёл
1 Предсказать , чю гкреход будет
редскавать , чю
Пфехода ье было
ч Перехода \ ье было
A3
11
00
Предсказание - старший разряд"хчетчика ■
Элементы FHT в автомате A3 - реверсивные счётчики , работающие в режиме с насыщением .
Команда У1 на конвейер - обращение к соотв . элементу РНГ - если команда завершилась переходом +1, если нет -1. При насыщении переход за верхнюю 11 игм нижнюю 00 границу нэ возможен gw& 41
Динамическое предсказание переходов
Ожидания , что при увеличении т точность предсказания будет возрастать , на практике не подтверждаются . 1~|и 1Т> 3 точность предсказания начинает снижаться .
Различия в точности при т=2 и т=3 незначительные (десятичные процента ) -> в большинстве процессоров используются двухразрядные счётчики .
Логика предсказания для гл=2 - алгоритм Смита (A3).
Четыре состояния :
00 - перехода не будет (сильное предсказание )
QL - перехода не будет (слабое предсказание )
Ю - переход будет (слабое предсказание )
11 - переход будет (сильное предсказание )
Cmid
Printed with FinePrint- purchase atwww.fineprint.com
Динамическое предсказание переходов
Особенности использования таблицы (какая именно информация выступает в роли шаблона для доступа к РНГ и какого рода история фиксируется в элементах таблицы ) составляют различия в алгоритмах динамического предсказания переходов :
В качестве шаблонов для доступа к РНГ могут быть :
адрес команды условного перехода
регистр глобальной истории
регистр локальной истории
комбинация указанных вариантов .
1. При выборе адреса команды У1 в качестве шаблона , можно учитывать поведение каждой конкретной команды У1 . ftyi многократном повторении большинства команд )П наблюдается повторяемость исхода - либо переход , либо нет . Данный способ позволяет отсортировать вое команды и повысить точность .
Стк> 43
Динамическое предсказание переходов
Счетчик команд
FHT
к бит
Биты для
предсказания
При к-разрядном индексе таблица содержит 2к элементов .
Схема обеспечивает высокую точность для многократно повторяющихся команд (циклов ), нэ для многих команд (однократные либо редко выполняющиеся ) - выполнение перехода коррелирует с поведением предшествующих команд . Данная схема нэ позволяет отслеживать подобные взаимосвязи , в отличие от схемы с регистром глобальной истории .
Cmid 44-
Printed with FinePrint- purchase atwww.fineprint.com
Динамическое предсказание переходов
Регистр глобальной истории
к бит
Биты для
предсказания
Регистр глобальной истории (GHR) - /-разрядный сдвиговый регистр . После выполнения очередной команды У1, содержимое регистра сдвигается на один разряд , на освободившееся место заносится 1 если был переход и 0, если иначе . Кодовая комбинация в Q-R -история выполнения / последних команд У1 . к-младших разрядов регистра связаны аэ счётчиком FHT , т.е. счётчик определяется тем какая комбинация исходов имела место в к предыдущих У1 .
Содержимое счётчика для текущей позиции модернизируется одновременно с обновлением Q-R го результату команды У
Динамическое предсказание переходов
о.
е
РНГ
о
X
о о. ь |
|
|
|
|
|
|
|
|
к |
бит | ||
|
|
|
|
|
|
|
|
| ||||
|
|
|
|
|
|
|
|
|
| |||
|
|
|
|
|
|
|
|
|
|
|
Биты для
предсказания
Регистр локальной истории (LHR) - аналогичен Q-R , нэ
предназначен для фиксации последовательных исходов одной и той же команды . Массив LJ-R - таблица локальной истории , как и в схеме с адресом перехода , каждый счётчик фиксирует историю исхода только одной команды , нэ базируясь на более детальных знаниях , отражающих и последовательность перехода .
Сши> 45
Printed with FinePrint- purchase atwww.fineprint.com
Динамическое предсказание переходов
Счетчик команд
k-g
РНГ
т
к бит
Еиты для предсказания
Комбинация схем - конкатенация битов либо сложение пэ модулю . Эффективность зависит от соотношения q и k- q.
йй 47
Динамическое предсказание переходов
Выводы :
С увеличением размера РНГ точность предсказания возрастает .
Схема ю счетчиком команд - наименее эффективная .
Схема to сложением Q-R и счётчика команд го модулю «два » - до 9Е*1% точности предсказания .
Сяайд
Printed with FinePrint- purchase atwww.fineprint.com
Структурная и функциональная организация ЗЁМ (ComputerOrganization and Design )
БГУИР кафедра ЗЕМ
доцент Сам ал ь Дм три й Иванович
т.284 -21 -61, dmitry _samal @mail. iu ,
a.5Q2 -5
Лекция 21 «Основные направления в архитектуре процессоров »
2007
План лекции
Суперконвейерные процессоры
Суперскалярные процессоры
Особенности реализации суперскалярныхпроцессоров
Параллелизм . Уровни параллелизма .
Метрики параллельных вычислений .
Закон Амдала .
Закон Густафсона .
Printed with FinePrint- purchase atwww.fineprint.com
Слайд 2
Суперконвейерные процессоры
Эффективность конвейера - в прямой зависимости от частоты поступления на его вход объектов обработки . п-кратное увеличение производительности :
Разбиение каждой ступени на п подступеней приодновременном повышении внутренней частотыконвейера в п раз.
Включение в состав процессора п конвейеров ,работающих с перекрытием .
Суперконвейеризация (термин с 1988 г.) - увеличение количества ступеней конвейера за счёт добавление новых либо дробления имеющихся на простые подступени . Главное требование - возможность реализации операции в каждой подступени наиболее простыми техническими средствами , т.е. с минимальными временными затратами . Второе важное условие - одинаковое время задержки во всех подступенях
» 3
Суперконвейерная обработка
8
n
13
ЕК
ЕА
ВО
ЕК
ЕА
во
ЕК
ЕА
ВО
вк
ЕА
BO
ЕК
BA
во
ЕК
EA
BO
EK
BA
BO
EK
BO
kK
к,
ВА,
во, во,
I*, НС,
3=, 3=
во,
во,
к
BA,
ЕА, ВО, ВО, ИС
К, |ДС,| ДС^ВА^ВА, |ВЭД [ВО
ИС,
I*
,
HC
BA, BA, ВЭ
ВЭ,
, иг, L -г , -г L
fif.2 BA, BA2
BO,
BD,
HC ) I
Printed with FinePrint- purchase atwww.fineprint.com
^ 4
Суперконвейерные процессоры
Критерием причисления процессора к суперконвейерным
число ступеней в конвейере больше шести . Первыйсерийный суперконвейерный процессор - MIPSR4000@ ступеней ). UltraSPARC 1-9 ст., PentiumIII,Itanium
Ю ст., UltraSPARC Ш - 14 ст., Pentium4 - 2D а.
Однако на практике , выигрыш от суперконвейеризации может отказаться умозрительным . Удлинение конвейера -> дополнительные сложности : возрастание вероятности конфликтов , дороже ошибка предсказания перехода - очищать больше ступеней конвейера , усложнение логики взаимодействия ступеней конвейера . Тем не менее - результат говорит сам за себя .
Сяайд 5
Суперскалярные процессоры
Дальнейшее повышение производительности fM - в плоскости архитектурных решений . О/щ из наиболее эффективных подходов - введение различных уровней параллелизма . Пример - одновременная обработка всех компонентов матриц и векторов .
Однако обычно основной объём вычислительной нагрузки приходится на скалярные вычисления (одиночные операнды ). l/k параллельная обработка сложнее . Суперскаляный (термин 1967 г.) - Ц1, который выполняет
одновременно более чем одну скалярную команду . Эффект достигается за счёт включения в состав Ц1 нескольких самостоятельных функциональных блоков , каждый из которых отвечает за свой класс операций и может присутствовать в процессоре в нескольких экземплярах . Пример - в PentiumIII блоки целочисл . арифм . и ГВ - дублированы , в Pentium 4 и Athlon - троированы .
Printed with FinePrint- purchase atwww.fineprint.com
Суперскалярные процессоры
Обработка ветвлений
Выборка команд
^. выборка
-память команд
Декодирование
декодирование
Диспетчеризация
Табло (scoreboard)
Регисгровы и файл
вьщача
Распределение
запуск
Исполнение
Функциональные блоки
-память данных
завершение
Обновление состояния
\ \ ... [ выход
Архитектура суперскалярного процессора
Слайд 7
Суперскалярные процессоры
Блок выборки команд - извлекает команды из С8У (через гаи ), хранит несколько значений счётчика команд и обрабатывает команды условного перехода .
Блок декодирования - расшифровывает код операции , содержащийся в команде . В Intel процессорах - БЕК и Щ совмещены .
Блок диспетчеризации и распределения - контроль трафика Оба блока хранят очереди декодированных команд . Блок распределения связан с буферами (накопителями ) функциональных блоков . Для диспетчера накопители -виртуальные устройства .
Очередь
диспетчера
Очередь
накопителей
0Б2
сХБ п
Стай
Printed with FinePrint- purchase atwww.fineprint.com
Суперскалярные процессоры
Блок диспетчеризации хранит список свободных функциональных блоков (табло ), используемый для отслеживания состояния очереди команд . Каждый цикл Щ извлекает из своей очереди команду , считывает операнды и в зависимости от состояния табло помещает её в накопитель соотв -го ф/нкц . блока .
Блок исполнения - набор функциональных блоков (целочисл . сп . блоки , сп . с ГВ, доступа к памяти ). Пэи завершении исполнения команды , результат записывается и анализируется блоком обновления состояния , для сигнализации тем командам из очереди распределения , для которых текущий результат является одним из операндов (риск го данным ).
Сяайд 9
Суперскалярные процессоры
Параллельное выполнение нескольких скалярных команд хорошо сочетается с конвейерной обработкой . Г(эи этом желательно иметь в Ц1 два или три конвейера
IntelPentium - два конвейера , каждый со своим АЛУ . В каждом цикле необходимо обеспечивать выборку более чем одной команды -> память ЕМ д.б. модульной .
|
|
|
|
|
|
|
|
Van -память данных и/иш регастры Ц1 | |||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
л |
|
|
|
1 |
|
| |||||||||||||||||||||
|
—*■ |
—► |
|
|
ЕА |
|
во |
|
*■ |
|
► |
|
| ||||||||||||||
™ та |
|
|
|
| |||||||||||||||||||||||
|
| ||||||||||||||||||||||||||
1 | |
|
Г1 г |
| ||||||||||||||||||||||||
|
*■ |
—► |
|
». |
ЕА |
► |
во |
*■ |
|
|
3= |
| |||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Сяюд 10
Printed with FinePrint- purchase atwww.fineprint.com
Superscalar Architectures
Pentium - 2 конвейера : главный - u-конвейер выполняет любые команды , вспомогательный v-конвейер - только простые команды с целыми числами , и одну простую с плавающей запятой (FXCH). Компилятор объединяет команды го парам . Выигрыш на целочисленных операциях го сравнению с 485 -м - в два раза .
S1 |
|
S2 |
|
S3 |
|
S4 |
|
S5 |
Instruction |
|
Instruction decode unit |
|
Operand fetch unit |
|
Instruction execution unit |
|
Write back unit |
|
|
|
| |||||
fetch |
| |||||||
unit |
|
Instruction decode unit |
—•- |
Operand fetch unit |
|
Instruction execution unit |
|
Write back unit |
|
|
|
SL |
S2 |
S3 |
S4 |
S5 |
Блок |
Блок |
Блок |
Блок |
Блок |
выборки |
декодирования |
выборки |
выполнения |
записи |
команд |
команды |
операндов |
команды |
результата |
Слайд 11
Суперскалярные процессоры
Параллельное выполнение нескольких скалярных команд хорошо сочетается с конвейерной обработкой . Г(эи этом желательно иметь в Ц1 два или три конвейера .
|
|
|
|
|
Регистры Ц~1 • | |
|
|
[ | ||||
|
|
|
|
ё |
|
В \ |
|
|
| ||||
|
|
|
АПУ
Переход
VK
Чтение
Запись
Суперскапярный конвейер го специализированными игл . блоками
Van -память данных
Слайд 12
Printed with FinePrint- purchase atwww.fineprint.com