По любой из трех внутренних шин 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 выбираемой команды нет в кэше, то произойдет неудачное обращение к кэшу.