Конвейерная обработка
Выполнение каждой команды складывается из ряда последовательных этапов (шагов, стадий), суть которых не меняется от команды к команде. С целью увеличения быстродействия процессора и максимального использования всех его возможносте в современных микропроцессорах используется конвейерный принцип обработки информации. Этот принцип подразумевает, что в каждый момент времени процессор работает над различными стадиями выполнения нескольких команд, причем на выполнение каждо стадии выделяются отдельные аппаратные ресурсы. По очередному тактовому импульсу каждая команда в конвейере продвигается на следующую стадию обработки, выполненная команда покидает конвейер, а новая поступает в него.
Конвейерное устройство можно сконструировать следующим образом. Каждая микрооперация выделяется в отдельную часть устройства, в совокупности которые расположены в порядке выполнения. В первый момент времени входные данные поступают для обработки первой частью. После выполнения первой микрооперации первая часть передает результаты свой работы второй части, а сама берет новую пару. Когда входные аргументы пройдут через все этапы обработки, на выходе устройства появится результат выполнения операции.
Такой способ организации вычислений носит название конвейерно обработки. Каждая часть устройства называется ступенью конвейера, а общее число ступеней -длиной конвейера.
В различных процессорах количество и суть этапов различаются. Конвейерная обработка команды в пятиступенчатом конвейере складывается из следующих этапов:
1. IF (Instruction Fetch) - считывание команды в процессор;
2. ID (Instruction Decoding) - декодирование команды;
3. OR (Operand Reading) - считывание операндов;
4. EX (Executing) - выполнение команды;
5. WB (Write Back) - запись результата.
Выполнение команд в таком конвейере представлено в следующе таблице.
Команда | Такт | ||||||||
i | IF | ID | OR | EX | WD | ||||
i+1 | IF | ID | OR | EX | WD | ||||
i+2 | IF | ID | OR | EX | WD | ||||
i+3 | IF | ID | OR | EX | WD | ||||
i+4 | IF | ID | OR | EX | WD |
Таким образом, если конвейерное устройство содержит L ступеней, а каждая ступень срабатывает за одну единицу времени, то время обработки п независимых операций этим устройством составит L+n-1 единиц.
Так как в каждом такте могут выполняться различные стадии обработки команд, то длительность такта выбирается исходя из максимального времени выполнения всех стадий. Кроме того, следует учитывать, что для передачи команды с одной стадии на другую требуется определенное дополнительное время (S), связанное с записью промежуточных результатов обработки в буферные регистры (инициализации векторно команды).
Пусть для выполнения отдельных стадий обработки требуются следующие затраты времени (в некоторых условных единицах):
Tip = 20, Тщ = 15, Tor = 20, Тех = 25, Т\ув = 20.
Тогда, предполагая, что дополнительные расходы времени составляют 3=5 единиц и выравнивая длину каждо ступени до максимально, получим время такта:
Т = max {Tip, Тщ, Tor, Тех, Т\ув} + S = 30.
Основываясь на вышеизложенном можно оценить время выполнения одно команды и некоторо группы команд при последовательной и конвейерно обработке.
При последовательно обработке время выполнения N команд составит:
Тпосл = N*(Tip + Тщ + Tor + Тех + Т\ув) = 100N.
При конвейерно обработке после того, как получен результат выполнения перво команды, результат очередной команды появляется в следующем такте работы процессора. Следовательно,
Тконв = 5Т + (п-1) * Т.
Примеры длительности выполнения некоторого количества команд при последовательно и конвейерно обработке приведены в следующе таблице:
Количество команд | ||
Последовательное выполнение | Конвейерное выполнение | |
200 240
10 1000 420
100 10000 3120
При достаточно длительно работе конвейера его быстродействие будет существенно превышать быстродействие, достигаемое при последовательно обработке команд. Это увеличение будет тем больше, чем меньше длительность такта конвейера и чем больше количество выполненных команд. Сокращение длительности такта достигается, в частности, разбиением выполнения команды на большое число этапов, каждый из которых включает в себя относительно простые операции и поэтому может выполняться за короткий промежуток времени.
Так как д и L не зависят от значения п, то с увеличением длины входных векторов эффективность конвейерной обработки возрастает. Если под эффективностью обработки понимать реальную производительность Е конвейерного устройства, равную отношению числа выполненных операций п к времени их выполнения t, то зависимость производительности от длины входных векторов: определяется следующим соотношением:
„ п п 1
t = =---------- =------------------ , где
t S + L + k-l .х т
т + (о + L -1)
п
где х - это время такта работы компьютера.
Пиковая производительность любого конвейерного устройства никогда недостижима на практике.
Помимо быстродействия арифметического устройства, существенным фактором, определяющим скорость работы машин, является время обращения к запоминающему устройству. Одним из решений уменьшения времени обращения к запоминающему устройству является создание дополнительной «сверхбыстродействующей памяти» сравнительно небольшой емкости. Создание такой «памяти» позволит сократить время для выполнения стандартных вычислений.
Дата добавления: 2015-08-21; просмотров: 2648;