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

Страницы работы

68 страниц (Word-файл)

Содержание работы

ГЛАВА 8

ВРЕМЕНА ВЫПОЛНЕНИЯ КОМАНД

В данной главе описываются времена выполнения команд процессора

MC68020 в терминах тактов.

8.1 ФАКТОРЫ, ВЛИЯЮЩИЕ НА ВРЕМЕННЫЕ ХАРАКТЕРИСТИКИ

Из-за сложной архитектуры MC68020 точная оценка времен выполнения команд затруднена, так как необходимо учитывать:

1) наличие кэш-памяти команд на кристалле и выполнение предвыборки,

2) невыровненные операнды,

3) выполнение команд с перекрытием по времени.

Эти факторы затрудняют  покомандную  оценку  временных  затрат, т.к. время выполнения каждой команды варьируется от контекста к контексту. Влияние каждого фактора детально описано ниже.

8.1.1 Кэш-память команд и предвыборка

Кэш-память на кристалле MC68020 используется только для  хранения команд. Она предназначена для повышения  эффективности  выполнения программ путем предоставления быстрой памяти  для  команд.

Команда, оказавшаяся в кэш-памяти при предвыборке, будет выполнена без задержек. Для команды, которой не оказалось в  кэш-памяти, необходимо выполнить цикл обращения к внешней  памяти,  и может статся,  что тот перекроется  по  времени  с  выполнением внутренней команды микропроцессора. Таким образом, пока  исполнительное устройство микропроцессора  занято,  контроллер  шины осуществляет предвыборку следующей команды из  внешней  памяти.

Оба случая будут проиллюстрированы далее на примерах.

При предвыборке команд из внешней памяти  процессор  использует циклы чтения длинных слов. Если адрес  считывания  выровнен  по границе длинного слова, процессор считывает два слова, что позволяет загрузить сразу две команды или два  слова  многословной команды. При следующей предвыборке второе  слово  окажется  уже считанным и новый цикл чтения для него не потребуется.

В  процессоре  MC68020  всегда выполняется предвыборка длинного слова. В том случае, когда предвыборка  приходится  на  границу нечетного слова (например, после команды перехода), процессором считывается  также  четное  слово, связанное с адресом базового длинного слова, одновременно с чтением (для памяти с 32-разрядным портом) или до чтения (для памяти с 16- и 8-разрядным  портом)  нечетного  слова. Если выполняется предвыборка команды из четного слова (обычный случай), то  MC68020  считывает  длинное слово с этим адресом, осуществляя тем самым эффективную предвыборку двух очередных слов.

8.1.2 Невыровненные операнды

Другим важным фактором, влияющим на время  выполнения  команды, является размещение операнда в памяти. Чтение и запись невыровненных операндов из внешней памяти выполняется, вообще  говоря, медленнее, чем выровненных по соответствующей границе. Это происходит в тех случаях, когда словный операнд  накладывается  на границу длинного слова или когда двухсловный операнд располагается  в памяти по адресу байта или слова, не являющемуся границей длинного слова. Хотя процессор MC68020 справляется со всеми ситуациями такого рода автоматически, на операции чтения/записи ему в этом случае требуется несколько циклов шины.

8.1.3 Параллельное выполнение

MC68020 допускает параллельность некоторых операций при  выполнении команд. Основными параллельно работающими элементами  являются контроллер шины и секвенсор. Контроллер шины  организует передачу данных по шине. Секвенсор управляет контроллером шины, выполнением команд, а также внутренними операциями  процессора, такими как вычисление исполнительных адресов и установка  кодов условий. Секвенсор отвечает за инициирование предвыборки, декодирование и проверку корректности команд, попавших в конвейер.

Контроллер шины и секвенсор могут обрабатывать  команду  параллельно. Пока секвенсор управляет вычислением адресов или  установкой кодов условий, контроллер может осуществлять чтение  или запись . Секвенсор может запросить цикл шины, который  контроллер не сможет выполнить сразу. В этом  случае  запрос  на  шину ставится в очередь, и контроллер выполнит его по завершении текущего цикла.

Параллельность работы секвенсора и контроллера  шины  порождает неоднозначность при вычислении времен выполнения  команд  из-за возможного совмещения операций.

8.1.4 Перекрытие

Временем перекрытия называется время, измеряемое  в  тактах,  в течение которого команда выполняется параллельно  с  предыдущей командой. На Рис. 8-1 схематически изображено одновременное выполнение команд A и B, где перекрываемая часть команды B поглощается по времени выполнения предыдущей команды A. Время перекрытия вычитается из времени выполнения  команды  B.  Аналогично имеет место перекрытие командой B команды C, которое  сокращает время выполнения, приписываемое команде C.

|- - - - команда A  -------|

|- - - - команда B  -------|

L----T----перекрытие

|- - - - команда C  -------|

L----T----перекрытие

Рис.8-1. Одновременное выполнение команд

Время выполнения, приписываемое командам A, B и C  с учетом перекрытий, показано на Рис.8-2.

|- - - - команда A  -------|

| - команда B ---|

| - команда C -- |

L----T-----      L----T----период           период перекрытия       перекрытия поглощен         поглощен командой A       командой B

Рис.8-2.Затраты времени на выполнение команд

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

8.1.5 Примеры потоков команд

Более детально разобраться в этих  эффектах  можно  на  примере конкретных программ. Влияние перекрытия на  временные  характеристики выполнения команд иллюстрируется следующим примером потока:

Команды

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

#2)  ADD.L      D4,D5

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

#4)  ADD.L      D5,D6

Рассмотрим первый пример реализации этого  потока  в  следующих предположениях:

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

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

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

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

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

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

адрес   n   ¦...... ¦MOVE #1 ¦

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

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

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

n+8 ¦ADD #4 ¦....... ¦

L-------+--------На Рис. 8-3 приведена диаграмма операций процессора для первого примера. На ней изображены операции внешней  шины,  контроллера шины, секвенсора, а также время выполнения, приписываемое  каждой команде.

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

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                           #3                   #4

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

Похожие материалы

Информация о работе