19.6. Анализ временных задержек
МП К1810ВМ86 представляет собой синхронную цифровую систему, все процессы в которой синхронизируются последовательностью тактовых импульсов. Для нахождения времени задержки рассчитывается сумма тактов работы К1810ВМ86, затем, зная длительность такта вычисляется время задержки. Команды МП имеют различное количество тактов, причём к тактам исполнения команды прибавляется время вычисления эффективного адреса. Эффективный адрес памяти (ЕА) получается в результате некоторых вычислений, на которые расходуется время. Следовательно, время выполнения команды оказывается зависящим от режима адресации. При прямой адресации на вычисление ЕА тратится 6 тактов, косвенной регистровой – 5, базовой – 9.
В таблице 19.6 даны ассемблерные команды МП, а также количество тактов для их выполнения. При этом приняты следующие обозначения: r – регистр, М – ячейка памяти, data – данные, непосредственно представленные в команде, label – метка, ЕА – количество тактов на вычисление эффективного адреса.
Таблица 19.6
Количество тактов МП для выполнения некоторых команд
Наименование группы команд К1810ВМ86 |
Мнемокод |
Количество тактов |
Команды пересылки данных |
Mov r,r Mov r,m |
2 8+EA |
Команды арифметических действий |
add r,r add r,m add r,data adc r,r adc r,m sub m,r sub r,m sbb r,data inc r inc m cmp r,data mul z |
3 9+EA 4 3 9+EA 16+EA 9+EA 4 2 15+EA 4 124+EA |
Команды сдвига |
rol r rol m |
8 20+EA |
Команды логических операций |
and r or r,m xor m,r not r |
3 9+EA 16+EA 3 |
Команды цепочечных операций |
MovS Stop |
17 10 |
Команды ветвления (условные переходы) |
jmp label jnc label jnz label |
7 8/4* 8/4* |
Команды управления процессором |
stc cld std |
2 2 2 |
* - меньшая цифра в условных переходах соответствует ложности условия, большая – истинности.
Ниже приведены таблицы 19.7 и 19.9 расчётов количества тактов МП для выполнения макроопределений, а также пример расчёта для программы регулятора с интегрированием по методу трапеций, где учтены циклические повторения команд, а также исполнения команд с условиями (ветвления).
Таблица 19.7
Расчёт количества тактов для выполнения макроопределений
Название |
Тексты программ |
Количество тактов |
Clear_Uvar |
cld mov di, offset Uvar_0 xor ax,ax stos w stos w stos w stos w |
2 10 2 17 17 17 17 всего 82 |
Mul_Plus (Mul_Minus) |
push cx mov ax,[bx] mov cx,[bx+Distu] mul cx add (sub)[Uvar_0 ],ax adc (sbb)[Uvar_0 +2],dx adc (sbb)[Uvar_0 +4],0 adc (sbb)[Uvar_0 +6],0 mov ax,[bx] mov cx,[bx+Distu+2] mul cx add (sub)[Uvar_0 +2],ax add (sbb)[Uvar_0 +4],dx add (sbb)[Uvar_0 +6],0 mov ax,[bx+2] mov cx,[bx+Distu] mul cx add (sub)[Uvar_0 +2],ax adc (sbb)[Uvar_0 +4],dx adc (sbb)[Uvar_0 +6],0 mov ax,[bx+2] mov cx,[bx+Distu+2] mul cx add (sub)[Uvar_0 +4],ax adc (sbb)[Uvar_0 +6],dx pop cx |
10 14 17 129 22 22 23 23 14 17 129 22 22 23 14 17 129 22 22 23 14 17 100 22 22 10 всего 899 |
Plus_U |
mov ax,[bx] mov dx,[bx+2] add (sub)[Uvar_0 ],ax adc (sbb)[Uvar_0 +2],dx adc (sbb)[Uvar_0 +4],0 adc (sbb)[Uvar_0 +6],0 |
14 17 22 22 23 23 всего 121 |
Таблица 19.8
Пример расчёта количества тактов для программы регуляторов с интегрированием по методу трапеций
Название |
Текст программы |
Количество тактов |
START: |
… IN AX,port … mov Evar_0 … or [sgn_var],20h |
10 10 25 |
Clear_ Uvar0 |
mov cx,num_par mov ax,[signs] xor ah,al mov [sgn_bt],ah mov bx,offset Evar_0 |
4 10 3 10 4 |
Mul Add |
rol [sgn_bt],1 jc minus Mul_Plus jmp down |
26 8 899 4 |
Mul_mines down:
out _an:
minus1: Minus_U down1:
posit: dwn:
Rep |
add bx,4 dec cx jz out_an jmp MulAdd rol [sgn_bt],1 jc minus 1 Plus_U jmp down 1
mov ax,[Uvar_0] mov bx,[Uvar_0+2] cmp [Uvar_0+6],0 jz posit or [sgn_var],Cngsgn not ax not bx add ax,1 adc bx,0 jmp dwn and [sgn_var],not Cngsgn mov [Evar_2],ax mov [Evar_2+2],bx rcr [sgn_var],1 mov si,offset Evar_2+2 mov di,offset Uvar_1+2 std mov cx,Num_Par*2-2 mov sw jmp start |
4 2 4 4 4 26 121 8
10 14 23 8 23 3 3 4 4 2 23 10 14 26 4 4 2 4
4 |
При расчёте времени задержки учитывается, что стандартная частота следования тактовых импульсов 5МГц обеспечивает микротакт МП, равный 200нс.
Таблица 19.9
Результаты расчёта времени задержки
Метод интегрирования |
Количество пар произведений |
Количество тактов |
Время задержки, mc |
Трапеций 1/3 Симпсона 3/8 Симпсона Уэдля |
3 4 5 6 |
3423 4374 6006 7206 |
0,68 0,87 1,20 1,44 |
Произведение чисел требует большого времени на вычисление, поэтому как видно по результатам, представленных в таблице 19.9, наибольшим временем задержки вычислений обладает программа, имеющая большее количество произведений-метод Уэдля.