- •Принцип двоичного кодирования
- •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)
1011X j|I 2 - все параллельно
I0&I J |12 ~ сперва 10, затем параллельно \ и 12
1
2 — сперва параллельно 10и Il7 затем и 12
10 & \ &I 2 - все последовательно
Слюй 4)
Printed
with FinePrint- purchase atwww.fineprint.com
-б*
Основная
идея - компилятор должен переупорядочивать
команды
, проверять нет т
взаимозависимостей
, проверять
доступность функциональных блоков и
т.п. вместо
аппаратуры .
Плюсы - экономия транзисторов на кристалле , компиляция производится только один раз, оптимизация программы может производится сколь угодно долго .
Дополнительные новшества : Предикация Спекулятивная загрузка
Слайд 41
ft -в\
Предикация
Обработка условных переходов - основная проблема .
В обычных ВЧ все поступившие в ЦП команды выполняются . В архитектуре с предикацией - команды содержат условия , выполнять команду или нет.
Плюс - исчезает множество условных переходов . Пример : if(Rl==0)R2=R3 ;
CMPR1,O BNEL1 MOVR2,R3 LL :
CMOVZR2,R3,R1 CMQ/Z - проверяет равен пл третий регистр О
Слайд 42
Printed with FinePrint- purchase atwww.fineprint.com
-б*
Если
CMOVZ
-
проверяет равен /м третий регистр О,
то СМСММ
- не равен т
третий
регистр 0. Тогда весь код then
else может быть заменён на последовательность
операторов
:
|
if (R-l ==0){ |
CMPR1.0 |
CMOVZ R2.R3.R1 |
|
R2 = R3; |
BNE L1 |
CMOVZ R4,R5.R1 |
|
R4 = R5; |
MOV R2.R3 |
CMOVN R6.R7.R1 |
|
} else { |
MOV R4.R5 |
CMOVN R8.R9.R1 |
|
R6 = R7; |
BR L2 |
|
|
R8 = R9: |
L1: MOVR6,R7 |
|
|
} |
MOV R8.R9 |
|
L2:
(a)
(b)
(c)
Единственное требование , условие должно быть известно к моменту когда результат необходимо помещать в вьк . регистры (т.е. к концу конвейера ).
Сяюд
ft -в\
В
R
-64
вое команды предикатны !64 однобитных
предикатных
регистра предназначены для установления
условий
.
|
if (R1 == R2) |
|
CMPR1 |
,R2 |
CMPEQ R1 |
,R2,P4 |
|
R3 = R4 + |
R5; |
BNEL1 |
|
<P4> ADD |
R3,R4,R5 |
|
else |
|
MOVR3 |
.R4 |
<P5> SUB |
R6.R4.R5 |
|
R6 = R4 - |
R5 |
ADD R3, |
R5 |
|
|
|
|
|
BR L2 |
|
|
|
|
|
|
L1: MOVR6 |
.R4 |
|
|
|
|
|
SUB R6, |
R5 |
|
|
L2:
(b)
CMPEQ сравнивает два регистра и уст -ет F4 в 1 либо 0f a парный регистр F5 в противоположное значение .
Команды с предикацией могут перемещаться в конвейер без задержек и проверок . Проверка условий - в конце^
^
Printed with FinePrint- purchase atwww.fineprint.com
-б*
Спекулятивная
загрузка - загрузка операнда из памяти
до того
как он может понадобиться .
Компилятор перемещает LOAD на более ранние позиции , относительно других команд .
Компилятор вставляет CHECK в тем месте , где ем/ нужно получить значение очередного регистра . Если LOAD уже сработала , то CHECK = NOP , иначе следующая команда простаивает и ждёт окончания LOAD.
Если LOAD слишком рано загружает данные - то она останавливается и «сообщает » что её регистр недействителен . Если регистр используется другой командой уже после загрузки , то происходит исключение .
Слайд
ft -в\
Достоинства EREC :
