[an error occurred while processing this directive]
Вопрос про Pipeline conflict у 54xx (т.е. будет ли работать если его не убирать)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено al1 22 октября 2002 г. 15:24

1) MPY #28388,A ; A = l1 = (*pSinB -
2) NOP
3) NOP
4) XC 2,AGEQ
5) ADD *SP(2),A,A ; A = (l1 + 1<<15)
6) XC 1,ALEQ
7) SUB *SP(2),A,A ; A = (l1 - 1<<15)
8) SFTA A,#-16 ; A = (l1 +/- 1<<15) >> 16

Как видно из примера XC анализирует А и предположим что A>0, следовательно в строке 5 происходит update A и затем в шестой строке происходит чтение А (т.е. здесь и возникает конфликт). Вопрос в том, что же прочитает ХС из А в этот момент? Если она прочетает предудущее состояние А то тогда этот кусочек кода работать будет(по крайней мере под отладчиком работает...). Или посоветуйте как с меньшими затратами проанализировать знак числа и в результате либо отнять либо добавить константу при этом есть только один аккумулятор и ВС использовать не хочу, потому что долго выполняется

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru