------------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---+-----------+-----------+-----------+-----------+-----------контроллер шины
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.