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

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

Отправлено M_Pete 23 сентября 2003 г. 21:20

Помогите разобраться по сабж.
Вот пример кода для теста который написал

1 mvkl.S2 0x1111, B2
2 B.S2 code2
3 mvkl.S2 Buffer, B1
4 mvkh.S2 Buffer, B1
5 stw.D2 B2, *B1++
6 stw.D2 B2, *B1++
7 stw.D2 B2, *B1++
8 stw.D2 B2, *B1++

В документации написано, что "The C67x uses a FP of 8 instructions".
Это значит что в итоге в процессор попало сразу 8 инструкций. Ввиду того что все они выполняюся последовательно, то часть конвейра, отвечающая за чтение из памяти тормозится. Значит пока последняя инструкция не перейдет в фазу декодирования, новая инсрукция (по адресу code2) не должна попасть в фазу диспетчеризации.
Если это так, то я хотел увидеть в buffer 4-ре 0х1111. Но запустив все это под дебагером и просмотрев память вижу только, что заполнены только 2-е ячейки.
Прочитав, что Branch имеет 5-ть delay slots, то все вроде правильно, так и должно работать. И тут что то не сходится, куда делись еще две команды? Скоро мозги сломаются, понять как все это работает. Не дайте погибнуть:)

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru