[an error occurred while processing this directive]
Помогите разобраться плиз (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено 21 ноября 2003 г. 12:45

Вот кусок кода для ядра C55X (я специально показал лишнее вокруг цикла - чтобы видеть, что регистр T2 в адресных фазах не задействован).


bclr TC1

xccpart t3<#0
|| mov #0,t3

and #7Fh,ac1
|| xor t2,t2

add mmap(@t3)<<#7,ac1

mov *ar2+,ac2
|| add #1,t0

sub ac0<<#-18,ac1
|| rptblocal loop_quan
;----- quantizer loop begin ----

cmpor ac1|| mov *ar2+,ac2

loop_quan: xccpart !TC1 || add #1,t2
;----- quantizer loop end ----

mov dbl(*ar0(#-5)),ac1

sftl t0,#1
|| sftl ac1,#-15,ac2

mov ac2,t3

add #1,t0
|| sftl ac1,#-10

При его анализе в Pipeline Stall Analyzer на драйвере "Cycle Accurate 55xx simulator" он как-то без особых закономерностей показывает пару раз (цикл выполняется 7 раз) STALL в фазе AC2 между второй командой цикла в RD и первой в AC2. а в качестве "камня преткновения" показывает DR2 (то есть T2 как я понял). Причем этот STALL есть не на всех итерациях! А на двух из семи. В чем тут засада? Симулятор глючит? Или там такие непонятно-хитрожопые сталлы в проце будут?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru