Cтраница 2
АЛУ адресов поддерживает линейную, модульную арифметику и арифметику с реверсивным переносом для всех режимов косвенной адресно-регистровой адресации. Эти типы арифметики упрощают создание структур данных в памяти для очередей, линии задержки, циклических буферов, стеков. Содержимое регистров модификации определяет тип арифметики для - вычисления адреса; для модульной арифметики содержимое регистра модификации также определяет модуль. Каждому регистру адреса соответствует свой регистр модификации. [16]
Графики на рисунке 7.39 ( Ь) указывают на важную особенность реализации при использовании ИКИХ-фильтров. При уменьшении ширины полосы пропускания ИКИХ-фильтра можно использовать большие значения коэффициента расширениям При использовании ЦПОС большие значения Мтребуют использования более объемного блока памяти в форме циклического буфера для хранения достаточного количества входных отсчетов х ( п) формирующего субфильтра. Некоторые авторы считают это требование по выделению памяти для хранения всех промежуточных нулей импульсной характеристики hs k) недостатком ИКИХ-фильтров. [18]
Использование бит-реверсивной адресации в режиме постинкремент со смещением Nn вызывает реверсию четырех младших битов, инкремент и еще одну реверсию четырех битов. Модульный модификатор адреса имеет заданную нижнюю границу, верхняя граница определяется суммой модуля и нижней границы. Эти границы создают циклический буфер таким образом, что если содержимое адресного регистра выходит за границы буфера, происходит циклический возврат в пределы буфера. [19]
Линейная адресация полезна для адресации общего назначения. Адресация с реверсивным переносом полезна для 2 k - точечной адресации БПФ. Модульная адресация полезна для создания циклических буферов для FIFO-очередей, линий задержки. Циклическая модульная адресация полезна для редукции аргумента при интерполяции, генерации волновых форм. [20]
При использовании больших блоков двойная буферизация может также применяться, но резервирование буферов для двух больших блоков приведет к большим расходам оперативной памяти. Один способ решения этой проблемы заключается в использовании ( для каждого потока) циклического буфера передачи, размерами слегка превосходящего размеры дискового блока, из которого информация передается на дисплей или в сеть. Когда количество полезной информации в буфере снижается до некой пороговой величины, с диска считывается следующий большой блок, его содержимое копируется в буфер передачи, а большой буфер блока возвращается в общий пул. Размер циклического буфера передачи должен быть выбран так, чтобы при достижении данными пороговой отметки в нем было достаточно места для другого полного дискового блока. Прямое чтение с диска в циклический буфер передачи невозможно, так как данные в нем располагаются как бы по кругу. Таким образом, копирование данных и использование оперативной памяти представляют собой компромиссный вариант. [21]
Базовый адрес данных EFCOP ( FDBA) - 16-разрядный регистр счетчика, доступный для чтения и записи и используемый, как указатель адреса банка FDM EFCOP. FDBA указывает на позицию, куда будет записана следующая выборка данных. Адресный интервал этого буфера определен нижней и верхней границами адреса. Если М 2 то, как только М выбрано ( FCNT присвоено значение), создается последовательный ряд блоков памяти данных ( каждый длиной 2к), где могут быть расположены множественные циклические буфера для многоканальной фильтрации. [22]
Базовый адрес коэффициентов EFCOP ( FCBA) - 16-разрядный регистр счетчика, доступный для чтения и записи и используемый как указатель адреса банка FCM EFCOP. FCBA указывает на первую ячейку таблицы коэффициентов. Адресный интервал этого буфера модуля определен нижней и верхней границами адреса. Если М 2к, то, как только М выбрано ( FCNT присвоено значение), создается последовательный ряд блоков памяти коэффициентов ( каждый длиной 2К), где могут быть расположены множественные циклические буфера для многоканальной фильтрации. [23]
При использовании больших блоков двойная буферизация может также применяться, но резервирование буферов для двух больших блоков приведет к большим расходам оперативной памяти. Один способ решения этой проблемы заключается в использовании ( для каждого потока) циклического буфера передачи, размерами слегка превосходящего размеры дискового блока, из которого информация передается на дисплей или в сеть. Когда количество полезной информации в буфере снижается до некой пороговой величины, с диска считывается следующий большой блок, его содержимое копируется в буфер передачи, а большой буфер блока возвращается в общий пул. Размер циклического буфера передачи должен быть выбран так, чтобы при достижении данными пороговой отметки в нем было достаточно места для другого полного дискового блока. Прямое чтение с диска в циклический буфер передачи невозможно, так как данные в нем располагаются как бы по кругу. Таким образом, копирование данных и использование оперативной памяти представляют собой компромиссный вариант. [24]