Адресация памяти программ в процессорах TMS320С54х.
Память программ содержит коды прикладных программ, таблицы коэффициентов и непосредственные операнды. TMS320C54х DSP может адресовать общее количество 64К слов памяти программ, используя шину адреса программы (PAB). TMS320C5402 имеет дополнительные 4 линии адреса памяти программы, которые обеспечивают внешний доступ к 16-ти страницам по 64К слов.
Логика генерации адреса программы (PAGEN) формирует адрес для обращения к командам, таблицам коэффициентов, непосредственным 16-битным операндам или другой информации, сохраненной в памяти программы и выдает этот адрес на PAB.
PAGEN состоит из пяти регистров (рис. 4.5):
• счетчик программы (PC);
• счетчик повторения (RC);
• счетчик повторения блока (BRC);
• регистр адреса начала повторяемого блока (RSA);
• регистр адреса конца повторяемого блока (REA).
Процессор C5402 использует один дополнительный регистр, чтобы адресовать расширенную память:
• регистр расширения счетчика программы (XPC).
C54x устройства выбирают команды, помещая значение PC на PAB и читая соответствующее содержимое памяти. В то время как содержимое памяти читается, PC увеличивается для следующей выборки. Если последовательность адресов программы изменяется (например, переход, вызов, возврат, прерывание или повторение блока), соответствующий адрес загружается в PC. Команда, адресованная через PAB, загружается в регистр команды (IR).
Чтобы улучшать эффективность некоторых команд, модуль генерации адреса программы используется также для выбора операнда из памяти программы.
В процессорах TMS320C54x можно выделить четыре основных способа адресации памяти программ:
• Автоинкрементная (аппаратное увеличение РС при выборе очередного слова из памяти программ).
• Абсолютная адресация используется в командах переходов и вызовов подпрограмм:
B[D] pmad;
BC[D] pmad, cond;
CALL[D] pmad;
CC[D] pmad, cond.
• Аккумуляторная адресация используется в командах переходов и вызовов подпрограмм (адрес перехода берется из указанного аккумулятора):
BACC[D] src;
CALA[D] src.
• Стековая адресация используется в командах возврата (адрес перехода берется из вершины стека):
RET[D];
RETE[D];
RC[D] cond;
Счетчик PC это 16-битовый регистр, который содержит используемый адрес внутренней или внешней памяти программ, когда выбирается команда или 16-разрядный непосредственный операнд или коэффициент из таблицы в памяти программ. Чтобы адресовать память программы, адрес из PC выдается на PAB.