Времена выполнения команд процессора MC68020, страница 2

------------T-----------T-----------T-----------T-----------T---¬

¦           ¦           ¦           ¦           ¦           ¦ ж ¦

¦предвыборка¦   запись  ¦  чтение   ¦предвыборка¦  запись   ¦ д ¦

¦байтов n+8 ¦   по(A1)+ ¦  по (A1)  ¦байтов n+12¦  по -(A2) ¦ е ¦

¦           ¦           ¦           ¦           ¦           ¦ т ¦

L-----------+-----------+-----------+-----------+-----------+---контроллер шины

#1        #2                   #3                     #4

------+----¬----+--¬-----------------+-----------------¬----+---¬

--------T---T-------T-------T-------T-----------T-------T-------¬

¦       ¦ ж ¦       ¦       ¦       ¦           ¦       ¦       ¦

¦  Вып. ¦ д ¦  Вып. ¦Выч.ИА ¦Выч.ИА ¦    ждет   ¦  Вып. ¦  Вып. ¦

¦MOVE #1¦ е ¦ ADD #2¦источн.¦приемн.¦           ¦MOVE #3¦ ADD #4¦

¦       ¦ т ¦       ¦MOVE #3¦MOVE #3¦           ¦       ¦       ¦

L-------+---+-------+-------+-------+-----------+-------+-------секвенсор

#1                           #3                   #4

------------+-----------¬----------------+-----------------¬--+-¬

------------------------T-----------------------------------T---¬

¦                       ¦                                   ¦ADD¦

¦   MOVE.L  D4,(A1)+    ¦       MOVE.L  (A1),-(A2)          ¦.L ¦

¦                       ¦                                   ¦D5,¦

¦                       ¦                                   ¦D6 ¦

L-----------------------+-----------------------------------+---время выполнения команды

+-----------(6)---------+-----------------(9)---------------+(1)+

счет тактов

Обозначения:

#1  -  MOVE.L  D4,(A1)+

#2  -  ADD.L   D4,D5

#3  -  MOVE.L  (A1),-(A2)

#4  -  ADD.L   D5,D6

Рис. 8-3. Действия процессора в примере 1

В этом примере в течение первых трех тактов контроллер  шины  и секвенсор выполняют действия, связанные с командой MOVE #1. Как видно из рисунка, во время следующих трех тактов (такты 4, 5  и

6) имеет место перекрытие команд. Контроллер шины  осуществляет запись в память, выполняя одно из действий команды MOVE #1. Одновременно с этим секвенсор в течение двух тактов (такты 4 и 5)

секвенсор выполняет команду ADD #2, после чего приступает к вычислению исполнительных адресов для команды MOVE  #3.  Операции контроллера шины полностью перекрывают  по  времени  выполнение команды ADD #2, в результате чего той приписывается  время  выполнения в нуль тактов. Это перекрытие также сокращает на  один такт эффективное время выполнения  команды  MOVE  #3,  так  как контроллер шины завершает запись для команды MOVE #1 уже  после того, как секвенсор начнет  вычисление  исполнительных  адресов для команды MOVE #3.

Секвенсор продолжает вычисление исполнительного адреса в  течении еще одного такта (такта 7), в то время как контроллер начинает  чтение для команды MOVE #3. Если считать время выполнения команд в тактах, то команда MOVE #1  завершается  с  окончанием

6-го такта, а выполнение команды MOVE #3 начинается на такте 7.

Контроллер шины и секвенсор обрабатывают команду MOVE #3 параллельно вплоть до окончания 14-го такта, пока секвенсор не  начнет выполнение команды ADD #4. Отсчет тактов  команды  MOVE  #3

продолжается, так как контроллер шины все еще осуществляет  запись по адресу приемника команды MOVE #3. Операции с шиной  для команды MOVE #3 завершаются с окончанием 15-го такта. Эффективное время выполнения этой команды составит 9 тактов.

Один такт (такт 15), в течение которого секвенсор выполняет команду ADD #4, а контроллер осуществляет запись по адресу приемника  команды  MOVE #3, поглощается временем выполнения команды

MOVE #3. При этом эффективное время выполнения команды  ADD  #4

сокращается на один такт, составляя в конечном счете один такт.

Для этого же потока команд следующий пример показывает, как отражается перекрытие на распределении времен  выполнения,  когда те же команды несколько иначе размещены в 32-битной памяти:

---------T-------¬

адрес n  ¦MOVE #1 ¦ADD #2 ¦

+--------+-------+

n+4¦MOVE #3 ¦ADD #4 ¦

+--------+-------+

n+8¦....... ¦...... ¦

L--------+-------Для второго примера сделаны следующие предположения:

1) Разрядность шины данных составляет 32 бита,

2) Предвыборка первой команды осуществляется из слова с ЧЕТНЫМ адресом,

3) Обращение к памяти происходит с нулевой задержкой,

4) Кэш-память команд отключена.

Хотя полное время не изменяется по сравнению с первым примером, времена выполнения отдельных команд изменяются существенно. Это говорит о том, что  эффект перекрытия зависит не только от последовательности команд, но и от их размещения в памяти.

Рис.8-3 и 8-4 демонстрируют выполнение команд без использования кэш-памяти команд MC68020. Рис.8-5 иллюстрирует третий  случай, когда та же последовательность команд извлекается из  кэш-памяти. В этом примере используются следующие предположения:

1) Разрядность шины данных составляет 32 бита,

2) Кэш-память включена и команды находятся в ней,

3) Обращение к памяти происходит с нулевой задержкой.

Рисунок подлежит сканированию стр. 9-6

1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16

--¬ --¬ --¬ --¬ --¬ --¬ --¬ --¬ --¬ --¬ --¬ --¬ --¬ --¬ --¬ --¬

L-- L-- L-- L-- L-- L-- L-- L-- L-- L-- L-- L-- L-- L-- L-- L-тактовые импульсы

------------T-----------T-----------T-----------T-----------¬

+---+   запись  ¦предвыборка¦  чтение   ¦  запись   ¦предвыборка+---+

L-----------+-----------+-----------+-----------+-----------операции шины

#1            #2                #3                #4

--------+------¬------+-----¬-----------+----------¬------+-----¬

----T-----------T-----------T-----------T-----------T-----------¬

¦ ж ¦           ¦           ¦           ¦           ¦           ¦

¦ д ¦  запись   ¦предвыборка¦  чтение   ¦  запись   ¦предвыборка¦

¦ е ¦  по (A1)+ ¦байтов n+8 ¦  по (A1)  ¦  по -(A2) ¦байтов n+12¦

¦ т ¦           ¦           ¦           ¦           ¦           ¦

L---+-----------+-----------+-----------+-----------+-----------контроллер шины