- •Принцип двоичного кодирования
- •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)
0 D 0 0 1 0 0 0 инверт
О О О О 1 0 0 1
Оюйд 15
Действия нвд целыми числами и машинные команды
Особенность
дополнительного кода для представления
отрицательных
чисел :
Результат действий сложения и вычитания гри использовании дополнительного иода имеет един и тот яе вид, независимо от тою, интерпретируются m операнды мак беззнаковые им как знаковые .
Для действий умножения и деления , к сожалению , правило не выполняется .
II
Printed with FinePrint- purchase atwww.fineprint.com
Действия нвд целыми числами и машинные команды
Переполнение при действиях над числами аэ знаком
При сложении беззнаковых чисел - переполнение происходит , если при действии пересекается граница разрыва .
При сложении чисел аэ знаком : если знаки разные , переполнения быть нэ может . Если знаки одинаковые , и знак результата совпадает аэ знаками операндов , переполнения нет; противоположен знаку операндов -переполнение есть . При действиях над числами аэ знаком переполнение происходит , если пересекаем границу разрыва 011..11 - 10..00. дЬч регистрации этик фактов в процессоре обычно делают два триггера (чаще всего они входят в состав регистра состояний ). Содержимое этик триггеров называют битами признаков или флагами .
Омйд 21
Действия нвд целыми числами и машинные команды
Бит
ы признаков или флаги :
•С( или d - от O\RRY - перенос ) регистрирует при выполнении многих операций перенос /заем из старшего (знакового ) разряда за границу разрядной сетки
•V ( или of - от OVerFlow - переполнение ) -
регистрирует перенос /заем в старший (знаковый ) разряд .
Если диапазона представимых значений нэ хватает ,можно искусственно увеличить разрядность - хранитьвеличины в нескольких машинных словах - тогдадействия над ними , даже такие простые , как сложение ивычитание , потребуют большего количества
элементарных операций .
Охгйд И
Printed
with FinePrint- purchase atwww.fineprint.com
Тиы и форматы операндов


А+В
10.
.001
00. ..001
00.--010
Круговая диаграмма
Омйд Ъ
Команды
для действий с целыми числами
Сложение
и вычитание
Обе операции трехоперандные : два слагаемых и результат . Формат команды может быть :
•3-х операндным ;
•2-х операнд ным - результат помещается на место одного из слагаемых (так в 1*86);
1-операндным - второй операнд и сумма находятся впредопределенном месте (в регистре -аккумуляторе );
Hyib -операндным - оба операнда находятся впредопределенных местах (чаще всего это стек ).
Соглашения ассемблера Intel (го умолчанию ):
add а, Ъ
sub a, b
а + Ь
Охгйд Ъ
Printed
with FinePrint- purchase atwww.fineprint.com
Команды для действий с целыми числами
Если
нэ хватает разрядности , поддерживаемой
АЛУ , то можно
искусственно увеличить разрядность
- хранить величины
в нескольких машинных словах .

Сложение двух "длинных " операндов , используя "короткое " сложение :
+ an_i ац.2 ai ao
+сК- Ъп_1 Ь^.2 bi bo
п bn.i
bibo
Результат переноса при сложении младших частей регистрируется в флаге cf. Его значение надо учитывать при сложении старших частей
Оазис1 Ъ
Команды
для действий с целыми числами
Для
учета при сложении значения флага
переноса cf
в систему
команд добавляют команду сложения
с переносом : adc a, b
работает так : а «€- а + ъ н- cf
Пример последовательности команд при выполнении сложения с двойной точностью :
add
ЪО,
аО adc
Ы,
al
; ЬО ^- ЬО + аО (перенос в cf) ;bl <r bl + al +cf
В некоторых системах команд (например DEC 16) команда adc - однооперандная : a=a+cf . Тогда :
|
add |
ЬО, aO |
, bO r. |
- bO- |
haO |
|
adc |
Ы |
,bl i |
-bl - |
hcf |
|
add |
bl, al |
;bl i |
-bl н |
Hal |
// Вопрос о тройной точности
Охгйд Ъ
Printed
with FinePrint- purchase atwww.fineprint.com
Команды для действий с целыми числами
Как
перейти от представления с однарной
точностью к представлению
с двойной ?
Для положительных чисел просто : старшее слово -нулевое .
Для отрицательных - операция расширения знака (Sign Extsntion ). Ее действие состоит в заполнении старшего слова знаковыми битами младшего . В системе команд 1*86 есть команды dw -преобразования 8 бит ->16 бит, cwd -преобразования 16 бит ->22 бит и odq - 22 ->64 .
Омйд И
Команды
для действий с целыми числами
Умножение
и деление
При умножении п-разрядных операндов результат может иметь разрядность д? 2i.
В большинстве процессоров АЛУ устроено так, что соотношение разрядностей операндов и результата в командах умножения и деления следующее :(п)*(п) = (2n),(2n)/(n) = (n)q(n)r, т.е. разрядность произведения и делимого вдвое больше .
Что делать с "длинным " результатом - проблема программиста . Как ведут себя флаги при выполнении команд умножения и деления , следует смотреть в полном описании команд .
Скгйд
Printed with FinePrint- purchase atwww.fineprint.com
Команды для действий с целыми числами
Частный
случай умножения - умножение на
степень 2.
Сдвиг операнд на соответствующее число разрядов влево для положительной степени или вправо для отрицательной . Производится командой арифметического сдвига .
При арифметическом сдвиге вправо (деление на степень двойки ) знаковый разряд числа сохраняет свое значение неизменным , а при сдвиге влево (умножение на степень двойки ) правый конец операнда заполняется нулями .
Если при сдвиге влево знаковый разряд операнда изменял свое значение , это означает , что при умножении произошло переполнение (выход за пределы диапазона представимых значений ), что вызывает изменение флагов cf и of.
Охгйд Ъ
Команды
для действий с целыми числами
Сравнение
чисел , флаги и набор команд ветвления
Сравнение в ЗЗМ используется для организации последующего ветвления алгоритма (условного перехода в программе ) в зависимости от результата сравнения . Сравнение можно производить го условиям :
•а) равно / нэ равно ; •6) больше /меньше .
Условие а) всегда осмысленно и формально означает , что вое биты сравниваемых операдов одинаковы . Условие б) - его семантика понятна для данных , которые неким образом упорядочены , таких как числа или символы алфавита . Для такого вида данных , как битовые поля - нэ всегда понятно , что такое "больше /. меньше ".
Оюйд Л
Printed with FinePrint- purchase atwww.fineprint.com
Команды для действий с целыми числами
Сравнение
в процессоре происходит го одной
из двух схем
:
1) Сравнение операнда с нулем . Его можнопроизвести специальной командой"проверка ". Например , в системе команд\*85 используется команда
test а, Ъ
2) Сравнение двух операндов между собой(вычитанием и последующим сравнениемрезультата с нулем ).
Для сравнения двух чисел можно использовать команды вычитания . Кроме того , обычно в системе команд есть специальные команды для сравнения .
Омйд 31
Команды
для действий с целыми числами
В
\*до
это
команда : стР
а>ъ

она делает вычитание а - Ь, го результату операции устанавливаются флаги , после чего результат вычитания теряется , а операнды сохраняются неизменными . Обычно в процессоре имеются аце два триггера (флага ), которые меняют свое состояние rpi выполнении команд в зависимости от получившегося результата :
z (zf - от Zero) - флаг нулевого результата : rf1 *■ 1, если результат равен ную .
N (sf - от Negatve или от Sign) - флаг отрИЦЭТеЛЬНОГО
результата (знака ). Значение этого флага совпадает аэ знаковым разрядом результата , т.е.1 соответствует знаку "минус ".
Скгйд 32
Printed with FinePrint- purchase atwww.fineprint.com
Команды для действий с целыми числами
Для
сравнения с нулем есть специальные
команды "проверить
onepai-щ
"(
в i*$6
-команда
: test
а, ь
и, кроме того , флаги zf и sf могут устанавливаться при выполнении других команд (таких , как загрузки и пересылки ).
После выполнения команды , осуществляющей сравнение (и переустанавливающей флаги ) надо осуществить ветвление .
Для этого в процессоре обычно существует большая группа команд условного ветвления , которое происходит (или нет) в зависимости от состояния тех или иных флагов .
Омйд 33
Команды
дря действий с целыми числами
В
группе команд
ветвления
можно
выделить три подгруппы
:
•Ветвление го простому условию
•Ветвление го результату сравнения беззнаковых чисел
•Ветвление го результату сравнения чисел аэ знаком
|
Описание |
Условие |
Альтер натив н о е |
Семантика |
|
По знаку |
sf = 0 |
sf=l |
Результат положитвлЕн/отрицателен |
|
По нулю |
zf=0 |
rf=I |
Результат равен/не равен нулю |
|
По переносу |
cf=0 |
uf=l |
Установлен/нет флаг cf (по разным причинам) |
|
По переполнению |
of=0 |
of=l |
Установлен/нет флаг of (по разным причинам) |
Ветвление го простому условию
Охгйд 3\
Printed
with FinePrint- purchase atwww.fineprint.com
Команды для действий с целыми числами
Ветвление
го результату сравнения беззнаковых
чисел
|
Описание |
Условие |
|
Если больше |
cfv zf=0 |
|
Если меньше или равно |
cfv zf=l |
|
Если больше или равно |
cf = 0 |
|
Если меньше |
cf=l |
Ветвление го результату сравнения чисел аэ знаком
|
Описание |
Условие |
|
Если больше ели равно |
sf © of = 0 |
|
Если меньше |
sf © of = 1 |
|
Если больше |
(sf © of) v zf= 0 |
|
Если меньше ели равно |
(sf © of) v zf= 1 |
Охгйд 35
Числа в форме с плавающей запятой
Недостатки
чиоел с (Ш :
• диапазон представим ых значений однозначно определяется количеством разрядов п в разрядной сетке : 2П, т.е. разрешающая способность и диапазон связаны однозначно при данном количестве битов в представлении числа .
Число в формате плавающей точки (ПГ) можно представить как :
основание
*1П
3
Охгйд 36
Printed
with FinePrint- purchase atwww.fineprint.com
Числа в форме с плавающей запятой
Нормализация
числа :
Если определенным образом выбрано нормализованное представление , то при его записи в двоичном виде старший разряд мантиссы - всегда двоичная 1. Ее можно нэ запоминать - эконо мия 1 бита!
Процедура нормализации : двигаем мантиссу , пока нэ получим нормализованного представления , и при этом корректируем порядок, для того , чтобы сохранить величину числа неизменной .
12.345*10 1 =0.12345*10 3
Оюйд 3?
Числа в форме с плавающей запятой
Нормализация
числа :
Пример. Число Ю1101 110001000.ь 5
Пусть выбрано нормализованное представление, в котором мантисса содержит один знача и {и и разряд в целой части (всегда = \).
При нормализации сдвигаем мантиссу вправо на 5 разрядов (это эквивалентно детению мантиссы на 2s =32y и корректируем порядок (увеличиваем его на 5^= 101 ь' Л
Нормализованное представление: 1.011011100010 ..^ *2<imi .
Опуская неявный бит, получил/ мантиссу 011011100010., порядок .01111
Опйд 38
Printed with FinePrint- purchase atwww.fineprint.com
Числа в форме с плавающей запятой
Note
1:
При
нормализации , когда приходится
сдвигать мантиссу
вправо , возможна потеря точности
при выходе младших
битов мантиссы за границу еэ разрядной
сетки


Note 2 Нормализация нэ всегда возможна , если при коррекции порядка происходит выход за границу его разрядной сетки . Если получившееся число слишком велико , его просто нельзя представить в выбранном формате ПГ. Если число слишком мало , то его можно представить , ю лишь в ненормализованной форме .
Омйд
ЗР
Числа
в форме с плавающей запятой
±Ман??шсса
*
основание
(
Форма представления чисел с плавающей запятой
Модул» порядоа
Модул» мантмсы
ЕНак m
ЕНак р
|
Рг-1 |
|
Pi |
Ро |
|
|
m_2 |
|
m_n |
Форма числа с ГВ аэ смещённым порядком :
Смещение порядоа Модул» мантисы
ЕНак
гп

|
Рг-1 |
|
Pi |
Ро |
|
|
ПЛ_2 |
|
m_n |
Printed with FinePrint- purchase atwww.fineprint.com
Охгйд 4]
Числа в форме с плавающей запятой
Типовой
формат представления числа ПТ



Порядок
|3нак
Мантисса
Всегда
в прямом коде (возможно, с неявным битом)
В формате " аэ смещением ":
•Знак относится го всему числу ;
Поле мантиссы содержит еэ значение в прямом (нвв дополнительном ) коде с опущенным неявным битом ;
Поле порядка содержит сумму истинного порядка иположительной константы , называемой смещением
Оюйд 41
Числа в форме с плавающей запятой
Действия
с числами плавающей точки :
Сложение и вычитание 9.87*103+4.56*102 = 9.8
103 =
» (9.87+ 0 456) * 103 = 10.326 * 1С3 = 1.0326 * 104
