[an error occurred while processing this directive]
|
spru280 - это касабельно 55-х процессоров. А у них 4 шины чтения и 2 шины записи (BB, CB, DB, PB, EB, FB, spru371). Сделано это для того, что-бы процессор мог параллельно ЗА 1 ТАКТ вычитать из памяти 32 бита инструкций, и обратиться за данными в три разных места. (три чтения, два чтения+запись, одно чтение+2 записи). А память, собственно, состоит из разных блоков. Блоки DARAM позволяют 2 доступа за 1 такт, блоки SARAM - 1 доступ за такт. (размер блока кажись 2000h байт) Кроме того, все эти блоки работают независимо, и за 1 такт можно сделать все операции, если грамотно расположить код и данные.
Например:
программу располагаем в SARAM. Оттуда она будет считываться с максимальной скоростью, так как требуется только fetch оттуда. К примеру реализован сдвоенный КИХ-фильтр, который множит на одинаковые коэффициенты 2 разных сигнала. При этом линии задержки есть смысл расположить в DARAM, так как за 1 такт требуется вычитать 2 слова данных и подать их на вход двух умножителей. А коэффициенты есть смысл положить в SARAM, но в друго блок, где нет программы. Тогда получаем: за один такт делается чтение инструкции, чтение двух данных и чтение коэффициента. Все это располагается в разных блоках, следовательно не вызывает конфликтов и лишних STALL'ов конвейера.
E-mail: info@telesys.ru