Выполнение каждой команды складывается из ряда последовательных этапов (шагов, стадий), суть которых не меняется от команды к команде. С целью увеличения быстродействия процессора и максимального использования всех его возможностей в современных микропроцессорах используется конвейерный принцип обработки информации. Этот принцип подразумевает, что в каждый момент времени процессор работает над различными стадиями выполнения нескольких команд, причем на выполнение каждой стадии выделяются отдельные аппаратные ресурсы. По очередному тактовому импульсу каждая команда в
В различных процессорах количество и суть этапов различаются. Рассмотрим принципы
IF ( Instruction Fetch ) - считывание команды в процессор;ID ( Instruction Decoding ) - декодирование команды;OR ( Operand Reading ) - считывание операндов;EX ( Executing ) - выполнение команды;WB ( Write Back ) - запись результата.Выполнение команд в таком
Так как в каждом
| Команда | Такт | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
i |
IF |
ID |
OR |
EX |
WB |
||||
i+1 |
IF |
ID |
OR |
EX |
WB |
||||
i+2 |
IF |
ID |
OR |
EX |
WB |
||||
i+3 |
IF |
ID |
OR |
EX |
WB |
||||
i+4 |
IF |
ID |
OR |
EX |
WB |
||||
Пусть для выполнения отдельных стадий обработки требуются следующие затраты времени (в некоторых условных единицах):
TIF = 20, TID = 15, TOR = 20, TEX = 25, TWB = 20.
Тогда, предполагая, что дополнительные расходы времени составляют dt = 5 единиц, получим время
$$T = \max \{ T_{IF}, T_{ID}, T_{OR}, T_{EX}, T_{WB}\} + \Delta t = 30$$.
Оценим время выполнения одной команды и некоторой группы команд при последовательной и конвейерной обработке.
При последовательной обработке время выполнения N команд составит:
Tпосл = N*(TIF + TID + TOR + TEX + TWB) = 100N.
Анализ табл. 11.1 показывает, что при конвейерной обработке после того, как получен результат выполнения первой команды, результат очередной команды появляется в следующем
Tконв = 5T + (N-1) * T.
Примеры длительности выполнения некоторого количества команд при последовательной и конвейерной обработке приведены в табл. 11.2.
| Количество команд | Время | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| при последовательном выполнении | при конвейерном выполнении | ||||||||
| 1 | 100 | 150 | |||||||
| 2 | 200 | 240 | |||||||
| 10 | 1000 | 420 | |||||||
| 100 | 10000 | 3120 | |||||||
Очевидно, что при достаточно длительной работе
Значительное преимущество
Конфликты - это такие ситуации в конвейерной обработке, которые препятствуют выполнению очередной команды в предназначенном для нее
Конфликты делятся на три группы:
Причины
Не полностью конвейерная структура процессора, при которой некоторые ступени отдельных команд выполняются более одного
Пусть i+1 занимает 3
| Команда | Такт | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
i |
IF |
ID |
OR |
EX |
WB |
|||||
i+1 |
IF |
ID |
OR |
EX |
EX |
EX |
WB |
|||
i+2 |
IF |
ID |
OR |
O |
O |
EX |
WB |
|||
i+3 |
IF |
ID |
OR |
O |
O |
EX |
||||
i+4 |
IF |
ID |
OR |
O |
O |
|||||
При этом в работе i+2 и следующих за ней, начиная с
Эту ситуацию можно было бы ликвидировать двумя способами. Первый предполагает увеличение времени
Недостаточное дублирование некоторых ресурсов.
Одним из типичных примеров служит конфликт из-за доступа к запоминающим устройствам. Из табл. 11.1 видно, что в случае, когда операнды и команды находятся в одном запоминающем устройстве, начиная с
Борьба с конфликтами такого рода проводится путем увеличения количества однотипных функциональных устройств, которые могут одновременно выполнять одни и те же или схожие функции. Например, в современных микропроцессорах обычно разделяют кэш-память для хранения команд и кэш-
Недостатком EX.
| Этап | Такт | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||||||||
IF |
K1 | K2 | K3 | K4 | K5 | K6 | K7 | K8 | K7 | K9 | K7 | K10 | K11 | K12 |
ID |
K1 | K2 | K3 | K4 | K5 | K6 | K5 | K8 | K5 | K9 | K7 | K10 | ||
OR |
K1 | K2 | K3 | K4 | K3 | K6 | K3 | K8 | K5 | K9 | ||||
EX |
K1 | K2 | K1 | K4 | K1 | K6 | K3 | K8 | ||||||
WB |
K2 | K4 | K1 | K6 | ||||||||||
При этом команды будут завершаться в последовательности
К2-К4-К1-К6-...
Следовательно, для обеспечения правильной работы
Суть конфликтов этой группы наиболее удобно проиллюстрировать на примере команд условного перехода. Пусть в программе, представленной в табл. 11.1, команда i+1 является командой условного перехода, формирующей адрес следующей команды в зависимости от результата выполнения команды i. Команда i завершит свое выполнение в
Наиболее эффективным методом снижения потерь от WB ), а накапливаются в специальном буфере результатов.
Если после формирования анализируемых признаков оказалось, что направление перехода выбрано верно, все полученные результаты переписываются из буфера по месту назначения, а выполнение программы продолжается в обычном порядке. Если направление перехода предсказано неверно, то буфер результатов очищается. Также очищается и
Методы предсказания переходов делятся на статические и динамические. При использовании статических методов до выполнения программы для каждой команды условного перехода указывается направление наиболее вероятного ветвления. Это указание делается или программистом с помощью специальных средств, имеющихся в некоторых языках программирования, по опыту выполнения аналогичных программ либо результатам тестового выполнения программы, или программой-компилятором по заложенным в ней алгоритмам.
Методы динамического прогнозирования учитывают направления переходов, реализовывавшиеся этой командой при выполнении программы. Например, подсчитывается количество переходов, выполненных ранее по тому или иному направлению, и на основании этого определяется направление перехода при следующем выполнении данной команды.
В современных микропроцессорах вероятность правильного предсказания направления переходов достигает 90-95 %.
При обсуждении этих конфликтов будем предполагать, что команда i предшествует команде j.
Существует несколько типов
Конфликты типа RAW ( Read After Write ): команда j пытается прочитать операнд прежде, чем команда i запишет на это место свой результат. При этом команда j может получить некорректное старое значение операнда.
Проиллюстрируем этот тип конфликта на примере выполнения команд, представленных в табл. 11.1. Пусть выполняемые команды имеют следующий вид:
i) ADD R1,R2; R1 = R1+R2 i+1=j) SUB R3,R1; R3 = R3-R1
Команда i изменит состояние регистра R1 в i+1 должна прочитать значение операнда R1 в R1 будет прочитано значение, которое было в нем до выполнения команды i.
Уменьшение влияния конфликта типа RAW обеспечивается методом обхода (продвижения) данных. В этом случае результаты, полученные на выходах исполнительных устройств, помимо входов приемника результата передаются также на входы всех исполнительных устройств микропроцессора. Если устройство управления обнаруживает, что данный результат требуется одной из последующих команд в качестве операнда, то он сразу же, параллельно с записью в приемник результата, передается на вход исполнительного устройства для использования следующей командой.
Конфликты типа RAW обусловлены именно конвейерной организацией обработки команд.
Главной причиной двух других типов
Конфликты типа WAR ( Write After Read ): команда j пытается записать результат в приемник, прежде чем он считается оттуда командой i, При этом команда i может получить некорректное новое значение операнда:
i) ADD R1,R2 i+1 =j) SUB R2,R3
Этот конфликт возникнет в случае, если команда j вследствие неупорядоченного выполнения завершится раньше, чем команда i прочитает старое содержимое регистра R2.
Конфликты типа WAW ( Write After Write ): команда j пытается записать результат в приемник, прежде чем в этот же приемник будет записан результат выполнения команды i, то есть запись заканчивается в неверном порядке, оставляя в приемнике результата значение, записанное командой i:
i) ADD R1,R2
. . .
j) SUB R1,R3
Устранение WAR и WAW достигается путем отказа от неупорядоченного исполнения команд, но чаще всего путем введения буфера восстановления последовательности команд.
Как отмечалось выше, наличие конфликтов приводит к значительному снижению производительности микропроцессора. Определенные типы конфликтов требуют приостановки
Выполнение каждой команды складывается из ряда последовательных этапов (шагов, стадий), суть которых не меняется от команды к команде. С целью увеличения быстродействия процессора и максимального использования всех его возможностей в современных микропроцессорах используется конвейерный принцип обработки информации. Этот принцип подразумевает, что в каждый момент времени процессор работает над различными стадиями выполнения нескольких команд, причем на выполнение каждой стадии выделяются отдельные аппаратные ресурсы. По очередному тактовому импульсу каждая команда в
В различных процессорах количество и суть этапов различаются. Рассмотрим принципы
IF ( Instruction Fetch ) - считывание команды в процессор;ID ( Instruction Decoding ) - декодирование команды;OR ( Operand Reading ) - считывание операндов;EX ( Executing ) - выполнение команды;WB ( Write Back ) - запись результата.Выполнение команд в таком
Так как в каждом
| Команда | Такт | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
i |
IF |
ID |
OR |
EX |
WB |
||||
i+1 |
IF |
ID |
OR |
EX |
WB |
||||
i+2 |
IF |
ID |
OR |
EX |
WB |
||||
i+3 |
IF |
ID |
OR |
EX |
WB |
||||
i+4 |
IF |
ID |
OR |
EX |
WB |
||||
Пусть для выполнения отдельных стадий обработки требуются следующие затраты времени (в некоторых условных единицах):
TIF = 20, TID = 15, TOR = 20, TEX = 25, TWB = 20.
Тогда, предполагая, что дополнительные расходы времени составляют dt = 5 единиц, получим время
$$T = \max \{ T_{IF}, T_{ID}, T_{OR}, T_{EX}, T_{WB}\} + \Delta t = 30$$.
Оценим время выполнения одной команды и некоторой группы команд при последовательной и конвейерной обработке.
При последовательной обработке время выполнения N команд составит:
Tпосл = N*(TIF + TID + TOR + TEX + TWB) = 100N.
Анализ табл. 11.1 показывает, что при конвейерной обработке после того, как получен результат выполнения первой команды, результат очередной команды появляется в следующем
Tконв = 5T + (N-1) * T.
Примеры длительности выполнения некоторого количества команд при последовательной и конвейерной обработке приведены в табл. 11.2.
| Количество команд | Время | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| при последовательном выполнении | при конвейерном выполнении | ||||||||
| 1 | 100 | 150 | |||||||
| 2 | 200 | 240 | |||||||
| 10 | 1000 | 420 | |||||||
| 100 | 10000 | 3120 | |||||||
Очевидно, что при достаточно длительной работе
Значительное преимущество
Конфликты - это такие ситуации в конвейерной обработке, которые препятствуют выполнению очередной команды в предназначенном для нее
Конфликты делятся на три группы:
Причины
Не полностью конвейерная структура процессора, при которой некоторые ступени отдельных команд выполняются более одного
Пусть i+1 занимает 3
| Команда | Такт | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
i |
IF |
ID |
OR |
EX |
WB |
|||||
i+1 |
IF |
ID |
OR |
EX |
EX |
EX |
WB |
|||
i+2 |
IF |
ID |
OR |
O |
O |
EX |
WB |
|||
i+3 |
IF |
ID |
OR |
O |
O |
EX |
||||
i+4 |
IF |
ID |
OR |
O |
O |
|||||
При этом в работе i+2 и следующих за ней, начиная с
Эту ситуацию можно было бы ликвидировать двумя способами. Первый предполагает увеличение времени
Недостаточное дублирование некоторых ресурсов.
Одним из типичных примеров служит конфликт из-за доступа к запоминающим устройствам. Из табл. 11.1 видно, что в случае, когда операнды и команды находятся в одном запоминающем устройстве, начиная с
Борьба с конфликтами такого рода проводится путем увеличения количества однотипных функциональных устройств, которые могут одновременно выполнять одни и те же или схожие функции. Например, в современных микропроцессорах обычно разделяют кэш-память для хранения команд и кэш-
Недостатком EX.
| Этап | Такт | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||||||||
IF |
K1 | K2 | K3 | K4 | K5 | K6 | K7 | K8 | K7 | K9 | K7 | K10 | K11 | K12 |
ID |
K1 | K2 | K3 | K4 | K5 | K6 | K5 | K8 | K5 | K9 | K7 | K10 | ||
OR |
K1 | K2 | K3 | K4 | K3 | K6 | K3 | K8 | K5 | K9 | ||||
EX |
K1 | K2 | K1 | K4 | K1 | K6 | K3 | K8 | ||||||
WB |
K2 | K4 | K1 | K6 | ||||||||||
При этом команды будут завершаться в последовательности
К2-К4-К1-К6-...
Следовательно, для обеспечения правильной работы
Суть конфликтов этой группы наиболее удобно проиллюстрировать на примере команд условного перехода. Пусть в программе, представленной в табл. 11.1, команда i+1 является командой условного перехода, формирующей адрес следующей команды в зависимости от результата выполнения команды i. Команда i завершит свое выполнение в
Наиболее эффективным методом снижения потерь от WB ), а накапливаются в специальном буфере результатов.
Если после формирования анализируемых признаков оказалось, что направление перехода выбрано верно, все полученные результаты переписываются из буфера по месту назначения, а выполнение программы продолжается в обычном порядке. Если направление перехода предсказано неверно, то буфер результатов очищается. Также очищается и
Методы предсказания переходов делятся на статические и динамические. При использовании статических методов до выполнения программы для каждой команды условного перехода указывается направление наиболее вероятного ветвления. Это указание делается или программистом с помощью специальных средств, имеющихся в некоторых языках программирования, по опыту выполнения аналогичных программ либо результатам тестового выполнения программы, или программой-компилятором по заложенным в ней алгоритмам.
Методы динамического прогнозирования учитывают направления переходов, реализовывавшиеся этой командой при выполнении программы. Например, подсчитывается количество переходов, выполненных ранее по тому или иному направлению, и на основании этого определяется направление перехода при следующем выполнении данной команды.
В современных микропроцессорах вероятность правильного предсказания направления переходов достигает 90-95 %.
При обсуждении этих конфликтов будем предполагать, что команда i предшествует команде j.
Существует несколько типов
Конфликты типа RAW ( Read After Write ): команда j пытается прочитать операнд прежде, чем команда i запишет на это место свой результат. При этом команда j может получить некорректное старое значение операнда.
Проиллюстрируем этот тип конфликта на примере выполнения команд, представленных в табл. 11.1. Пусть выполняемые команды имеют следующий вид:
i) ADD R1,R2; R1 = R1+R2 i+1=j) SUB R3,R1; R3 = R3-R1
Команда i изменит состояние регистра R1 в i+1 должна прочитать значение операнда R1 в R1 будет прочитано значение, которое было в нем до выполнения команды i.
Уменьшение влияния конфликта типа RAW обеспечивается методом обхода (продвижения) данных. В этом случае результаты, полученные на выходах исполнительных устройств, помимо входов приемника результата передаются также на входы всех исполнительных устройств микропроцессора. Если устройство управления обнаруживает, что данный результат требуется одной из последующих команд в качестве операнда, то он сразу же, параллельно с записью в приемник результата, передается на вход исполнительного устройства для использования следующей командой.
Конфликты типа RAW обусловлены именно конвейерной организацией обработки команд.
Главной причиной двух других типов
Конфликты типа WAR ( Write After Read ): команда j пытается записать результат в приемник, прежде чем он считается оттуда командой i, При этом команда i может получить некорректное новое значение операнда:
i) ADD R1,R2 i+1 =j) SUB R2,R3
Этот конфликт возникнет в случае, если команда j вследствие неупорядоченного выполнения завершится раньше, чем команда i прочитает старое содержимое регистра R2.
Конфликты типа WAW ( Write After Write ): команда j пытается записать результат в приемник, прежде чем в этот же приемник будет записан результат выполнения команды i, то есть запись заканчивается в неверном порядке, оставляя в приемнике результата значение, записанное командой i:
i) ADD R1,R2
. . .
j) SUB R1,R3
Устранение WAR и WAW достигается путем отказа от неупорядоченного исполнения команд, но чаще всего путем введения буфера восстановления последовательности команд.
Как отмечалось выше, наличие конфликтов приводит к значительному снижению производительности микропроцессора. Определенные типы конфликтов требуют приостановки
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.