АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Оценка влияния структуры программы на время ее выполнения

Читайте также:
  1. B15 (высокий уровень, время – 10 мин)
  2. Can (прош. время could)
  3. Can (прош. время could)
  4. F Продолжение выполнения задания
  5. F Продолжение выполнения задания
  6. F Продолжение выполнения задания
  7. F Продолжение выполнения задания
  8. I. МЕСТО И ВРЕМЯ КАК ГРАНИЧНЫЕ УСЛОВИЯ
  9. I. Основы применения программы Excel
  10. I. Оценка изменения величины и структуры имущества предприятия в увязке с источниками финансирования.
  11. I. ОЦЕНКА НАУЧНОГО УРОВНЯ ПРОЕКТА
  12. I. Разработка структуры базы данных.

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

Базовые времена выполнения некоторых команд приведены в табл. 9.1. Время вычисления эффективного адреса (ЕА) зависит от режима адресации (табл. 9.2). Последний столбец в табл. 9.1 показывает число обращений к памяти, необходимых для выполнения команды. Чтобы определить время выполнения команды, следует учесть выравнивание операнда, то есть его расположение в оперативной памяти. Обращение к однобайтному операнду не требует дополнительных тактов синхронизации. Время обращения к слову памяти зависит от его адреса. Если слово имеет нечетный адрес, то его передача из оперативной памяти занимает 2 цикла шины, длящихся по 4 такта синхронизации каждый. Следовательно, каждое обращение к слову с нечетным адресом требует четырех дополнительных тактов синхронизации.

Таблица 9.1.
Команды Адресация Число тактов Число обращений к памяти
ADD, SUB, AND, OR RR RS SR RI, AI SI 9+EA 16+EA 16+EA  
MOV SA, AS RR RS SR RI SI 8+EA 9+EA 10+EA  
MUL множитель 8 бит -R множитель 16 бит -R множитель 8 бит -S множитель 16 бит -S 70…77 118…133 (76…83)+EA (124…139)+EA  
CMP RR RS, SR RI, AI SI 9+EA 10+EA  
INC, DEC 16 бит - R 8 бит - R S 15+EA  
Условные переходы, кроме JCXZ нет перехода есть переход    
LOOP нет перехода есть переход    
JMP короткий внутрисегментный прямой косвенный регистровый межсегментный прямой косвенный - 18+EA - 24+EA - -

Примечание: R - адресация к регистру; A - к аккумулятору; S - к памяти; I - непосредственная адресация

Таблица 9.2.
Режим адресации Число тактов синхронизации для вычисления эффективного адреса
Прямой  
Косвенный  
Относительный  
Базово-индексный (BP)+(DI) или (BX)+(SI) (BP)+(SI) или (BX)+(DI) -
Относительный базово-индексный (BP)+(DI)+disp или (BX)+(SI)+disp (BP)+(SI)+disp или (BX)+(DI)+disp -

Если при вычислении физического адреса производится замена сегментного регистра (вместо заданного по умолчанию используется другой, определенный префиксом замены), то время выполнения команды увеличивается на 2 такта.

Базовое время выполнения некоторых команд зависит также от значения операндов. Типичными примерами этого служат команды умножения и деления (см. табл. 9.1). Так, время выполнения команды умножения, реализованной по алгоритму умножения дополнительных кодов с пропуском такта суммирования, определяется количеством пар соседних несовпадающих разрядов (01 или 10), так как при комбинациях 00 или 11 такт суммирования с нулевым слагаемым отсутствует. Поэтому, например, для 8-разрядных операндов максимальное время умножения будет при значении множителя 01010101, а минимальное - при ненулевом множителе 10000000 (напомним, что числа в персональной ЭВМ представляются в дополнительном коде, поэтому указанный код соответствует числу -128). То есть в первом случае команда умножения будет выполняться на 7 тактов суммирования дольше, что соответствует значениям, приведенным в табл. 9.1.

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

Проиллюстрируем сказанное несколькими примерами. Для всех примеров будем полагать для простоты расчетов, что частота синхронизации равна 100 МГц (длительность такта 10 нс).


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)