Обращение к блоку памяти и конфликты

По любой из трех внутренних шин ADSP_2106x можно обращаться к одному из блоков внутренней памяти в любое время. К каждому блоку двухпортовой памяти может обратиться и ядро процессора (по шине РМ или шине DM), и устройство ввода_вывода (по шине I/O) за один цикл. Если ядро процессора и устройство ввода_вывода обращаются к одному и тому же блоку памяти, то дополнительных циклов не требуется.

Однако когда ядро процессора осуществляет два обращения к одному блоку памяти в одном и том же цикле, например, по шине РМ (используя программный автомат или DAG2) и по шине DM (используя DAG1), то возникает конфликт. Если это происходит, то требуется дополнительный цикл. Сначала выполняется обращение по шине DM, а затем в дополнительном цикле выполняется обращение по шине РМ.

Так же конфликт разделения одной и той же шины. разные блоки но обращение по одной той же шине.

Чтобы обеспечить параллельный доступ к двум областям памяти за один цикл,

необходимо выполнить следующие условия:

Два адреса должны размещаться в различных блоках памяти (т. е. один в

блоке 0, другой в блоке 1);

2. один адрес должен генерироваться DAG1, а другой – DAG2;

Адрес DAG1 не должен указывать на тот же самый блок памяти, из которого

будет выбрана команда;

4. команда должна быть следующего типа:

Compute, Rx=DM(I0-I7, M0-M7), Ry=PM(I8-I15, M8-M15);

(Заметим, что чтение и запись взаимозаменяемы).

Запомните, что если в течение передачи с использованием DAG2 выбираемой команды нет в кэше, то произойдет неудачное обращение к кэшу.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: