Организация микропроцессорных систем. Учебное пособие. Могнонов П.Б. - 102 стр.

UptoLike

Составители: 

новая команда должна быть задержана. Это соответствует обнаружению и устранению
помехи типа RAW. Подобные использования тега предотвращает помехи типов WAR и
WAW.
Когда команда завершает модификацию содержимого одного из регистров,
модифицируемое значение посылается в соответствующий регистр, а его тег гасится. После
погашения тега следующая команда может продолжить свое исполнение.
В предыдущем подразделе было рассмотрено два варианта приостановки команд при
возникновении помех. В первом случае, команда может быть приостановлена сразу после
вхождения в I-устройство, а ее исполнение возобновлено только после устранения всех
помех (когда будут погашены все теги регистров и данные в них станут доступными).
Во втором варианте, который нашел широкое распространение в современных МП,
исполнение i команды задерживается, но в конвейере продолжается выполнение команд i+1,
i+2, …, это приведет к внеочередному исполнению команд i+1, i+2, …, операнды которых
уже имеются в наличии.
При такой организации конвейера регистры общего назначения могут быть узким
местом, поскольку I- и E-устройства и отдельные ступени в них могут одновременно
потребовать доступа к этим регистрам (характерно для помехи типа RAW). В современных
перспективных микропроцессорах вся регистровая логика дублируется с целью
предоставления их содержимого каждой ступени нуждающейся в них. Это позволяет без
конфликтов одновременно читать из многих различных регистров. Однако, если регистр или
его тег подлежит модификации, то эта модификация должна быть выполнена на всех
дублирующих регистрах. Это требует дополнительного цикла для каждого устройства.
Для полной загрузки I- и E-устройств вводится специальный фиксатор, называемый
очередью команд (I-очередь), который организован по принципу FIFO (первое записанное
слово считывается первым), как показано на рис.5.19.
I-устройство
команда i+k
:
команда i
E-устройство
Выбирает команду j=k+1
Хранит команды i, …, i+k
Обрабатывает команду i
Рис.5.19. Очередь команд между I- и E-устройствами
I-устройство работает независимо от E-устройство по принципу опережающей или
предварительной выборки команд, функционирование которой показано на рис.5.20.
Работа I-устройства будет происходить до тех пор, пока в очереди команд имеется
свободное место, I-устройство будет увеличивать содержимое счетчика команд СК и
производить выборку следующей команды. Эти команды размещаются в очереди для
последующего исполнения E-устройством.
При реализации команды перехода (рис.5.14, в) E-устройство сигнализирует об его
окончании I-устройству, которое должно очистить I-очередь и перезагрузить счетчик команд
СК значением, вычисленным E-устройством. Работа E-устройства при этом останавливается
до тех пор, пока эта команда не будет выбрана и помещена в I-очередь, после чего E-
устройство возобновляет свою работу.
Обнаружение помех и их устранение при таком разбиении I-устройства являются
сравнительно простыми.
новая команда должна быть задержана. Это соответствует обнаружению и устранению
помехи типа RAW. Подобные использования тега предотвращает помехи типов WAR и
WAW.
       Когда команда завершает модификацию содержимого одного из регистров,
модифицируемое значение посылается в соответствующий регистр, а его тег гасится. После
погашения тега следующая команда может продолжить свое исполнение.
       В предыдущем подразделе было рассмотрено два варианта приостановки команд при
возникновении помех. В первом случае, команда может быть приостановлена сразу после
вхождения в I-устройство, а ее исполнение возобновлено только после устранения всех
помех (когда будут погашены все теги регистров и данные в них станут доступными).
       Во втором варианте, который нашел широкое распространение в современных МП,
исполнение i команды задерживается, но в конвейере продолжается выполнение команд i+1,
i+2, …, это приведет к внеочередному исполнению команд i+1, i+2, …, операнды которых
уже имеются в наличии.
       При такой организации конвейера регистры общего назначения могут быть узким
местом, поскольку I- и E-устройства и отдельные ступени в них могут одновременно
потребовать доступа к этим регистрам (характерно для помехи типа RAW). В современных
перспективных микропроцессорах вся регистровая логика дублируется с целью
предоставления их содержимого каждой ступени нуждающейся в них. Это позволяет без
конфликтов одновременно читать из многих различных регистров. Однако, если регистр или
его тег подлежит модификации, то эта модификация должна быть выполнена на всех
дублирующих регистрах. Это требует дополнительного цикла для каждого устройства.
       Для полной загрузки I- и E-устройств вводится специальный фиксатор, называемый
очередью команд (I-очередь), который организован по принципу FIFO (первое записанное
слово считывается первым), как показано на рис.5.19.

                   I-устройство            Выбирает команду j=k+1


                   команда i+k
                         :                 Хранит команды i, … , i+k
                    команда i


                   E-устройство            Обрабатывает команду i


                   Рис.5.19. Очередь команд между I- и E-устройствами
      I-устройство работает независимо от E-устройство по принципу опережающей или
предварительной выборки команд, функционирование которой показано на рис.5.20.
      Работа I-устройства будет происходить до тех пор, пока в очереди команд имеется
свободное место, I-устройство будет увеличивать содержимое счетчика команд СК и
производить выборку следующей команды. Эти команды размещаются в очереди для
последующего исполнения E-устройством.
      При реализации команды перехода (рис.5.14, в) E-устройство сигнализирует об его
окончании I-устройству, которое должно очистить I-очередь и перезагрузить счетчик команд
СК значением, вычисленным E-устройством. Работа E-устройства при этом останавливается
до тех пор, пока эта команда не будет выбрана и помещена в I-очередь, после чего E-
устройство возобновляет свою работу.
      Обнаружение помех и их устранение при таком разбиении I-устройства являются
сравнительно простыми.