Циклическая адресация
Циклическая адресация представляет метод адресации, при котором происходит циклическое обращение к ячейкам некоторой области памяти (к ячейкам буфера), т.е. при достижении конца буфера автоматически происходит переход к его началу и наоборот. В пределах буфера для указания адреса используется вспомогательный регистр (т.е. косвенный принцип адресации). При инкременте содержимого регистра (увеличении адреса) при достижении последней ячейки буфера в этот регистр автоматически заносится начальный адрес буфера. На рисунке 5.1 приведен алгоритм циклической адресации. Из рисунка 5.1 видно, как будет распределяться последовательность отсчетов входного сигнала в буфере длиной 6 ячеек. В таком буфере, например, можно организовать линию задержки на 5T, где T – интервал дискретизации. Для этого надо последовательно считывать отсчеты x(0) и x(5), x(1) и x(6) и т.д.
Рисунок 5.1 - Алгоритм циклической адресации
В процессорах семейства ` C5x имеется аппаратный механизм реализации циклических буферов, которые позволяют организовать два одновременно действующих циклических буфера, управляемых с помощью вспомогательных регистров. Существует 5 регистров, с помощью которых осуществляется управление циклическими буферами: · CBSR1 - регистр начального адреса первого циклического буфера; · CBSR2 - регистр начального адреса второго циклического буфера; · CBER1 - регистр конечного адреса первого циклического буфера; · CBER2 - регистр конечного адреса второго циклического буфера; · CBCR - регистр управления циклическими буферами. Регистр управления (CBCR) определяет, какие вспомогательные регистры работают с данным буфером, разрешает/запрещает использование циклических буферов. Назначение отдельных битов этого регистра приведено в таблице 5.1.
Чтобы задать циклический буфер необходимо вначале загрузить адреса начала и конца в соответствующие регистры циклического буфера, затем определить вспомогательный регистр, который будет работать указателем на ячейку памяти внутри циклического буфера. И в завершение установить бит разрешения работы соответствующего циклического буфера в регистре CBCR. Т а б л и ц а 5.1
Алгоритм изменения адреса для циклического буфера следующий: Если (ARn = CBER) и (любая модификация AR), то ARn = CBSR; иначе ARn = ARn + шаг. В добавление заметим следующее. - если ARn = CBER и не производится модификация AR, текущий AR не модифицируется и остаётся равным CBER; - когда текущий вспомогательный регистр = CBER, и производится любая модификация AR (инкремент или декремент), текущий AR будет установлен = CBSR; - процесс изменения адреса входа в циклический буфер показан на рисунке 5.1. Пример циклической адресации: splk #200h, CBSR1; задание начального адреса циклического буфера1 splk #203h, CBER1; задание конечного адреса циклического буфера1 splk #0Eh, CBCR; указание на адресацию буфера с помощью регистра AR6 и;разрешение использования циклического буфера 1 ;Вариант 1 Lar ar6, #200h lacc *;Загрузить в аккумулятор содержимое ячейки, указываемое AR6 =; 200h (начало циклического буфера), содержимое AR6 не меняется ;Вариант 2 Lar ar6, #203h lacc * +; Загрузить в аккумулятор содержимое ячейки, указываемое AR6;= 203h (конец циклического буфера), увеличить AR6 на 1, но AR6 = CBER1, поэтому;выполняется переход на начало буфера и будет AR6 = 200h
;Вариант 3 Lar ar6, #203h lacc * -; AR6 указывает на конец буфера, в результате попытки;модификации в AR6 будет занесён не адрес 202h, а адрес начала буфера AR6 = 200h
Читайте также: Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|