Слайды 26.ppt
- Количество слайдов: 37
Декомпозиция цикла обработки команды • • Извлечение команды (ИК) — чтение из памяти следующей выполняемой машинной команды Декодирование команды (ДК) — расшифровка кода операции и спецификаторов операндов 1
Декомпозиция цикла обработки команды (2) • Вычисление адресов операндов (АО) — вычисление исполнительных адресов всех операндов-источников. При вычислении эффективных адресов учитываются заданные режимы адресации операндов, в том числе косвенная адресация, адресация со смещением, индексная и т. д. 2
Декомпозиция цикла обработки команды (3) • Извлечение операндов (ИО) — Извлечение всех операндов-источников из памяти. Операнды, которые ранее помещены в регистр, в выполнении этого этапа не участвуют • Выполнение команды (ВК) — выполнение операций, заданных кодом операции в команде • Запись результата (ЗР) — запись результата в память 3
Последовательная обработка данных • Заданы времена выполнения каждого этапа команды t 1, t 2, … , t 6. • Если этапы выполняются последовательно во времени, то продолжительность цикла можно определить t. ПОСЛ = t 1 + t 2 + t 3 + t 4 + t 5 + t 6 4
Последовательная обработка данных (2) • Производительность процессора вычисляется PПОСЛ = 1/ t. ПОСЛ = 1/( t 1 + t 2 + t 3 + t 4 + t 5 +t 6) [команд/с] 5
Конвейерная обработка данных (2) • Чтобы решить проблему повышения производительности процессора, академик С. А. Лебедев предложил принцип совмещения во времени отдельных этапов рабочего цикла • Принцип совмещения операций был реализован в ЭВМ М-20 в форме параллельного во времени выполнения операций в АЛУ и выборки из памяти следующей команды 6
Конвейерная обработка данных (3) • Скорость работы процессора может быть повышена за счет того, что для выполнения каждого этапа команды предусмотрен отдельный аппаратурный блок. • Если соединить эти блоки в обрабатывающую линию так, чтобы результат выполнения в данном блоке некоторого этапа передавался для реализации очередного этапа на следующий блок, то получится конвейер операций 7
Конвейер команд 8
Конвейер команд (2) • Конвейеры команд бывают синхронными и асинхронными • Синхронный конвейер работает в принудительном темпе; для выполнения любого этапа выделено одно и то же время t. T – такт конвейера 9
Конвейер команд (3) • Разбиение процедуры выполнения команды на этапы и выбор длительности такта производится согласно условиям t. T = max {ti}, i = 1, …k; ti + ti+1 > t. T, i = 1, …k. 10
Временная диаграмма работы конвейера операций 11
Характеристика конвейера • Коэффициент совмещения операций - число одновременно выполняемых этапов обработки команд • Конвейер операций из шести позиций позволяет сократить время выполнения 9 машинных команд с 54 тактов до 14 12
Оценки выигрыша от конвейеризации • Номинальная производительность синхронного конвейера (команд/сек) при его полной загрузке вычисляется: 13
Оценки выигрыша от конвейеризации (2) • При последовательном выполнении k этапов рабочего цикла время реализации одной команды 14
Оценки выигрыша от конвейеризации (3) • В синхронном конвейере время, необходимое для выполнения k этапов рабочего цикла процессора составит kt. T. Учитывая, что t. T ≥ ti, имеем 15
Оценки выигрыша от конвейеризации (4) • В соответствии с (ti + ti+1 > t. T, ), можно записать 16
Оценки выигрыша от конвейеризации (5) Далее получаем 17
Оценки выигрыша от конвейеризации (6) Учитывая, что получаем 18
Накладные расходы на конвейеризацию • Конвейерная обработка команд увеличивает пропускную способность процессора, но она не сокращает время выполнения отдельной команды • В действительности, она даже несколько увеличивает время выполнения каждой команды появлением накладных расходов на конвейеризацию 19
Накладные расходы на конвейеризацию (2) • Накладные расходы на организацию конвейера возникают из-за задержки сигналов в конвейерных блоках и изза перекосов сигналов синхронизации • Тот факт, что время выполнения каждой команды в конвейере не уменьшается, накладывает некоторые ограничения на практическую длину конвейера 20
Пример Найти рост производительности процессора при конвейерной обработке для компьютера с шестью этапами выполнения операций, которые имеют длительность 50, 60, 55 и 50 нс. соответственно. Пусть накладные расходы на организацию конвейерной обработки составляют 5 нс 21
Решение • Среднее время обработки команды при последовательном выполнении этапов рабочего цикла будет равно 315 нс • При конвейерной организации длительность такта будет равна длительности самого медленного этапа обработки плюс накладные расходы, т. е. 65 нс 22
Решение (2) • Таким образом, ускорение, полученное в результате конвейеризации, будет равно: 23
Издержки конвейерной обработки команд 1. При построении диаграммы предполагалось, что каждая команда проходит все шесть перечисленных этапов обработки. Однако, при обработке команды этап запись результата (ЗР) иногда опускается. 24
Издержки конвейерной обработки команд (2) 2. При построении диаграммы считалось, что все этапы можно выполнять параллельно и что, при этом, не может возникнуть конфликт в соперничестве за доступ к памяти. Однако этапы ИК, ИО и ЗР предполагают обращение к памяти. Следует, однако, учитывать, что извлекаемые данные могут находиться в кэш-памяти или этапы ИО и ЗР при выполнении определенных команд могут опускаться. 25
Time (clock cycles) ALU I n I$ D$ Reg s Load I$ D$ Reg t Instr 1 r. I$ D$ Reg Instr 2 O I$ D$ Reg Instr 3 r I$ D$ Reg d Instr 4 e r. Read same memory twice in same clock cycle ALU ALU
Solution: so simulate this by having two Level 1 Caches (a temporary smaller [of usually most recently used] copy of memory) have both an L 1 Instruction Cache and an L 1 Data Cache need more complex hardware to control when both caches miss
Two different solutions have been used: 1) Reg. File access is VERY fast: takes less than half the time of ALU stage Write to Registers during first half of each clock cycle Read from Registers during second half of each clock cycle 2) Build Reg. File with independent read and write ports Result: can perform Read and Write during same clock cycle
Издержки конвейерной обработки команд (3) • Более существенные сложности связаны с командами условного перехода, которые могут привести к аннулированию нескольких этапов извлечения команд • Аналогичным непредсказуемым событием для конвейера является и прерывание 29
Влияние команды условного перехода на работу конвейера операций 30
Влияние команды условного перехода на работу конвейера операций (2) • 3 -я команда оказалась командой условного перехода, передающей управление 15 -й команде • До тех пор, пока 3 -я команда не пройдет "позицию" ВК, никакой информацией о том, на какую команду задан переход в ней, схема управления конвейером не располагает 31
Влияние команды условного перехода на работу конвейера операций (3) • На диаграмме показано, что заданное в команде условие перехода было выполнено и естественный порядок выполнения команд был изменен, что выяснилось только на исходе 7 -го такта • На 8 -м такте в конвейер была "загружена" 15 -я команда 32
Влияние команды условного перехода на работу конвейера операций (4) • На интервале от 9 -го до 12 -го такта ни одна команда с конвейера не “сошла” • Это и есть "штраф" за то, что система не смогла предусмотреть действительную передачу управления в программе 33
Алгоритм управления конвейером из шести рабочих позиций 34
35
Алгоритм работы схемы управления конвейером • Функции: - обнаружение переходов; - реакция на прерывания. 36
Повышение производительности конвейерной обработки 37
Слайды 26.ppt