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

Таблицы для команды MOVE включают временные характеристики всех возможных вариантов выборки слов расширения, вычисления  исполнительных адресов, а также выборки и засылки операндов.

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

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

Таблица 8-2. Табличные данные о времени выполнения команд

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

¦     команда         ¦ наилучший ¦  только  ¦наихудший¦

¦                     ¦  случай   ¦кэш-память¦  случай ¦

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

¦1   MOVE.L D4,(A1)+  ¦     4     ¦     4    ¦    6    ¦

¦2   ADD.L  D4,D5     ¦     0     ¦     2    ¦    3    ¦

¦3   MOVE.L (A1),-(A2)¦     6     ¦     7    ¦    9    ¦

¦4   ADD.L  D5,D6     ¦     0     ¦     2    ¦    3    ¦

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

¦    всего            ¦    10     ¦    15    ¦   21    ¦

L---------------------+-----------+----------+---------В Таблице 8-3 сведены воедино фактические значения времени  выполнения команд для случая одного и того же потока  при  разнящихся предположениях (примеры 1-4);  при  этом  указано,  какой именно вариант выполнения  (наилучший,  предвыборки  только  из кэш-памяти, наихудший) реализовался для каждой  конкретной  команды. Те значения, которые не могут быть  найдены  в  таблицах времен, размещены в наиболее близкой по смыслу колонке и заключены в скобки. Это происходит в тех случаях,  когда  перекрытие команд динамически изменяет те времена, которые могли бы  соответствовать времени ЛС, ТК или ХС.

Таблица 8-3. Фактические времена выполнения команд в примерах

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

¦     команда         ¦пример #1¦пример #2¦пример #3¦пример #4¦

¦                     ¦ЛС  ТК ХС¦ЛС  ТК ХС¦ЛС  ТК ХС¦ЛС ТК  ХС¦

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

¦#1  MOVE.L D4,(A1)+  ¦       6 ¦ 4       ¦     4   ¦     (5) ¦

¦#2  ADD.L  D4,D5     ¦ 0       ¦        3¦ 0       ¦ 0       ¦

¦#3  MOVE.L (A1),-(A2)¦       9 ¦ 6       ¦     7   ¦     (8) ¦

¦#4  ADD.L  D5,D6     ¦  (1)    ¦        3¦  (1)    ¦ 0       ¦

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

¦    всего            ¦   (16)  ¦  (16)   ¦  (12)   ¦   (13)  ¦

L---------------------+---------+---------+---------+---------Сравнение Таблиц 8-2 и 8-3 показывает, что  вычисление  времени выполнения команды не сводится к выборке из таблиц только  наилучшего либо только наихудшего случаев. Даже если все предположения известны и фиксированы, как это имеет место  в  примерах, микропроцессор может иногда достигать более хороших результатов по времени в более плохих условиях.

Как видно из Таблицы 8-3, трудно заранее сказать, какому именно табличному значению (ЛС, ТК, ХС) будет  соответствовать  время, затраченное конкретной командой на выполнение в каждом из четырех примеров, поскольку перекрытие может повлиять, а может и не повлиять на время ЛС, ТК или ХС. Для каждого конкретного примера также трудно заранее определить, какая комбинация времен ЛС,

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

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

8.2.1 Выборка по исполнительному адресу

Таблица выборки по исполнительному адресу для  каждого  способа адресации характеризует время, затрачиваемое процессором на вычисление адреса и выборку соответствующего операнда. Общее число тактов, которое занимает данная операция, указано  вне  скобок; в него входят и  такты,  затрачиваемые  на  циклы  чтения, предвыборки и записи. Число этих циклов указано внутри скобок в виде (ч/п/з). В данном случае третье из чисел в  скобках,  равное, разумеется, нулю, приводится только из соображений общности формата.

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

¦    способ адресации       ¦ наилучший¦  только  ¦ наихудший¦

¦                           ¦  случай  ¦кэш-память¦  случай  ¦

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

¦ Dn                        ¦ 0 (0/0/0)¦ 0 (0/0/0)¦ 0 (0/0/0)¦

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

¦ An                        ¦ 0 (0/0/0)¦ 0 (0/0/0)¦ 0 (0/0/0)¦

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

¦ (An)                      ¦ 3 (1/0/0)¦ 4 (1/0/0)¦ 4 (1/0/0)¦

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

¦ (An)+                     ¦ 4 (1/0/0)¦ 4 (1/0/0)¦ 4 (1/0/0)¦

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

¦ -(An)                     ¦ 3 (1/0/0)¦ 5 (1/0/0)¦ 5 (1/0/0)¦

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

¦ (d{16},An) или (d{16},PC) ¦ 3 (1/0/0)¦ 5 (1/0/0)¦ 6 (1/1/0)¦

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