Процессоры

Содержание

Слайд 2

ОУ состоят из ОЭ, которые могут работать одновременно Команда (инструкция) – совокупность операций, н-р, сложение векторов

ОУ состоят из ОЭ, которые могут работать одновременно
Команда (инструкция)

– совокупность операций, н-р, сложение векторов
Слайд 3

Программный код – последовательность закодированных команд, расположенных в целом числе смежных

Программный код – последовательность закодированных команд, расположенных в целом числе смежных

байт памяти

ђим–гѕ г0 шІ kD8ФZ7aыЦшrН)3>–ЦЉpОKп Rутiщ хєџ]nЎиЙ–э B™4n`©Я… О€че Я„M|^ ћ Щгњ"M»фт ‰B јL ґЬj >©бp%Уєkn »»G Кu‰ІяюяСP|Nw И€u№=()Ы X;Х‡лNkуГ5' ¤јCќ ::®ъјЁшцeОA,цгчБ j_Ќ±­ KъффЦъЧѓZ XИч%''ќл iВ bемхKa† -+G2 fSїOП\lz[±JHЩсџж3m2:›|љLЪэЯёєP==Эќ°х¶Ц¶Ћ Г}Yс7 И»j(`n(4ћI єh SmsІTп‹uЛ0ьБ;†nЌџяеЌЖ

Слайд 4

Работа проц. циклична Командный цикл 1 2 3 4 5

Работа проц. циклична

Командный
цикл

1

2

3

4

5

Слайд 5

1- извлечение команд из памяти, 2- их декодирование 3- извлечение данных,

1- извлечение команд из памяти,
2- их декодирование
3- извлечение данных,
4- выполнение,
5- запись

результата

Если СШ широкая, то 1+3

команды

данные

Слайд 6

Исполняемая команда помещается в регистр команд Декодирование команды – её разбиение

Исполняемая команда помещается в регистр команд

Декодирование команды – её разбиение на

(микро)операции – раздача заданий для ОЭ

00 MAR := PC
01 MRd
02 CR := MDR
03 --> PC := PC+1
04 END_COMMAND

Слайд 7

Адрес следующей команды хранится в регистре «указатель инструкций» (instruction pointer) Как

Адрес следующей команды хранится в регистре «указатель инструкций» (instruction pointer)

Как изменяется

адрес:
если текущая команда линейная, то прибавляется её длина (в байтах)
если это команда перехода или вызова процедуры, то сама указывает новый адрес
Слайд 8

Адреса данных и сами данные хранятся в регистрах общего назначения Н-р, в архитектуре x86

Адреса данных и сами данные хранятся в регистрах общего назначения

Н-р, в

архитектуре x86
Слайд 9

2. Типы команд по типу ячеек (R-reg., M-mem.) - R1,R2->R3 -

2. Типы команд

по типу ячеек (R-reg., M-mem.)
- R1,R2->R3
-

M1,M2->M3
- R1->M1
- …………………
по их количеству
- простые
- сложные: несколько R и M
Слайд 10

по типу операндов - скалярные: число - векторные: массив чисел Векторные

по типу операндов
- скалярные: число
- векторные: массив чисел

Векторные

команды дают экономию на 1,2 шагах цикла
Слайд 11

3. «Одновременное» выполнение задач (программ) Однопотоковый ЦП «создаёт иллюзию» одновременности ОС

3. «Одновременное» выполнение задач (программ)

Однопотоковый ЦП «создаёт иллюзию» одновременности
ОС вычисляет кванты

времени для задачи согласно её приоритету (см. диспетчер задач)
Слайд 12

ЦП по прерываниям от таймера периодически сохраняет в кэше содержимое регистров,

ЦП по прерываниям от таймера периодически
сохраняет в кэше содержимое регистров,

доступных текущей задаче
переключается на следующую задачу
Слайд 13

Многопотоковый процессор имеет несколько декодеров команд регистров команд IP АЛУ Много конвейеров и/или ядер Брахма

Многопотоковый процессор имеет несколько
декодеров команд
регистров команд
IP
АЛУ

Много конвейеров

и/или ядер

Брахма

Слайд 14

Ядро – часть процессора, выполняющая хотя бы 2-4 этапы командного цикла

Ядро – часть процессора, выполняющая хотя бы 2-4 этапы командного цикла

Общие


кэш высокого уровня
системная шина
Слайд 15

Виртуальная машина – это программная среда, позволяющая запускать несколько ОС (одинаковых или разных) квазипараллельно


Виртуальная машина – это программная среда,
позволяющая запускать несколько ОС (одинаковых

или разных) квазипараллельно
Слайд 16

4. Пути повышения производительности SpeedDaemon – за счёт роста частоты Brainiac

4. Пути повышения производительности

SpeedDaemon
– за счёт роста частоты

Brainiac – поумнение УУ,

кэша, паралл. конвейеры
Слайд 17

Конвейеризация (pipelining) Процессорный цикл разбит на простые операции

Конвейеризация (pipelining)

Процессорный цикл разбит на простые операции

Слайд 18

Если программа не оптимизирована под данный конвейер, то появляются холостые такты

Если программа не оптимизирована под данный конвейер, то появляются холостые такты

Можно

увеличить частоту

Но!

Эффективная длина конвейера – среднее число тактов в цикле

Слайд 19

Суперскалярность Некоторые из 5 этапов цикла распараллеливаются + конвейеризация = несколько конвейеров (потоков)

Суперскалярность

Некоторые из 5 этапов цикла распараллеливаются

+ конвейеризация = несколько конвейеров

(потоков)
Слайд 20

Предсказание переходов – УУ прогнозирует направление условного перехода и, не дожидаясь

Предсказание переходов – УУ прогнозирует направление условного перехода и, не

дожидаясь его, выполняет 1 и 2 этапы цикла
Слайд 21

Предсказание Статическое – на основе «опыта предков», зашито в УУ Динамическое

Предсказание

Статическое – на основе «опыта предков», зашито в УУ

Динамическое –

на основе текущей статистики переходов
Слайд 22

Если предсказание сбылось (98-99 % !), то ЦП не зря работал

Если предсказание сбылось (98-99 % !), то ЦП не зря работал

без «перерыва»

Экономия времени до 30 %

Слайд 23

Исполнение по предположению (speculative execution) – выполняются все этапы! Но при неудаче конвейер очищается много тактов

Исполнение по предположению (speculative execution) – выполняются все этапы!

Но при

неудаче конвейер очищается много тактов
Слайд 24

Внеочередное исполнение – порядок исполнения команд может меняться если их результаты

Внеочередное исполнение – порядок исполнения команд может меняться если их

результаты независимы

Но в СШ результаты выдаются по порядку, т.е. программа «не замечает», что её «перекроили»

Слайд 25

Переименование регистров – если команды одновременно обращаются к одному регистру, его

Переименование регистров – если команды одновременно обращаются к одному регистру,

его можно «размножить», используя запасные регистры

Логически он один, а физически – несколько