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

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

Отправлено GM 27 апреля 2005 г. 13:43
В ответ на: полный цикл выглядит так отправлено 2b|!2b?.. 25 апреля 2005 г. 21:28

Следующий фрагмент прекрасно работает, если адресуется к разным участкам памяти для входных данных и выходных данных (ar2!=ar3)


rpt #4-1
st a,*ar3+
||ld *ar2+,a

Но если одновременно адресуется одна и та же ячейка памяти (ar2=ar3), то данные передвигаются на один элемент буфера.

При использовании разных участков памяти интуитивно понятно, как работает команда, но что же происходит с командой ST||LD во втором случае? В описании команды сказано следующее: the LD reads the source operand at the memory location pointed to by AR2 before the ST writes to the same location. The ST reads the source operand of accumulator A before LD loads accumulator A.

Попробую изобразить два параллельных процесса в виде диаграммы (прошу сильно не пинать за псевдографику)
_____ _____
| | | |
| A' |==ST==>|*AR2+|
|_____| |_____|
_____ _____
| | | |
|*AR2+|==LD==>| A" |
|_____| |_____|

один машинный цикл
------|-------------------|------> время
На диаграмме видно, что значения A'(исходное значение аккумулятора) и A"(окончательное значение аккумулятора) обрабатываются совершенно независимо (и паралллельно).

Для исходной задачи нужен процесс ЧТЕНИЕ-МОДИФИКАЦИЯ-ЗАПИСЬ
_____ _____ _____
| | | | | |
|*AR2+|==LD==>| A |==ST==>|*AR2+|
|_____| |_____| |_____|

один машинный цикл
------|---------------------------------|------> время


Все вышесказанное является результатом чтения документации и моих экспериментов с командой ST||LD. Возможно существует некая хитрая адресация, в корне решающая проблему, но я ее не нашел.

Прошу экспертов и других заинтересованных лиц высказать свое мнение и поправить при необходимости мои рассуждения.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru