Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 59
Текст из файла (страница 59)
Архитектура современных процессоров нацелена на достижение максимально возможной скорости обработки данных. до недавнего времени ссрьезпылт препятствием повышению быстродействия была организация обмена данными между собственно последовательным портом и внутренней памятью процессора.
Этот обмен выполнялся и во многих ЦПОС продолжает выполняться через ЦПУ (через сто входные регистры), что сушественно замелляет работу самого ЦПУ, который вынужден расходовать свой временной ресурс на операции обмена (пересылок). йо избежание потери временного ресурса ЦПУ новейшие модификации процессоров (А()ЗР-2)хх, ТМ5320С54х и др.) снабжены буферизированными последовательными портами. Глава 8. Периферийные устройства Первая половина буфера Е = 2"; ОАВГ = т 2", Второе половина буфера = адрес верхней границы+ (К вЂ” 1) Рис.
8.29. Режим ввтобуферизации 11 разрядов И нулви Старшее Младшее слово слово Рис. 8.30. Формирование базового адреса Алгоритмы и процессоры цифровой обработки сигнвлое Режим АБ может устанавливаться по каждому направлению (передачи пчп приема) самостоятельно парой регистров: адреса и размера буфера (рис. 3.29) Эти регистры полностью определяют адрес: П верхней границы: П нижней гранады; П текушей ячейки выделяемого буфера.
Границы буфера задаются в пределах отведенной лля буферизации области памяти объемом 2К согласно карте памяти. Установка границ осуществляется записью необходимых данных в регистрах адреса и размера буфера при инициализации процессора. Отводимая для буферизации область памяти может быть конфигурировала как память данных, пакить программ илн н то, и другое вместе. Буферы передачи н приема могут размещаться в независимых пространствах памяти, в перекрывающихся пространствах или пачностью совпадать. Перекрытие нли совпадение буферов позволяет осуществлять передачу из буфера и прием в тот же буфер.
Минимально лопустнмый размер буфера равен 2, а максимально допустимый размер может составлять 2К, т. е. 2048. Лссятнчное число 2048 соответствует 11-разрядному двоичному числу 2н =~ !000000000. поэтому для адресации внутри области 2к лостаточно 11-разрядного лвоичпого числа. Однако все 11-разрядные регистры читаются как 16-разрялные, пять старших разрялов которых воспринимаются нулевыми, а оставшиеся ! 1 выравниваются справа, занимая разряды с О по 1О.
Рассмотрим, каким образом опрелеляется пространство памяти, занимаемое буфером. Величина К, равная размеру буфера, записывается в )т' младших разрядов регистра размера (приема или передачи) при инициализации процессора. Эти разрялы образуют младшее слово (Млразм), у которого )т'-й бит всегда равен 1. Оставшиеся (1! — 1у) разриюв составляют старшее слово (СтРазм), все биты которого нулевые.
Размер буфера К определяет: П допустимые относительные адреса верхней границы буфера (ОАВГ); П объем пространства Е, в котором может размещаться предполагаемый буфер. В любом случае величины ОАВГ н Е должны представлять собой сгепень двойки: где т = О, 1, ..., (2К/ Е) — !. Регистр адреса также состоит из старшего (СтАдр) и млалшего (МлАдр) слов. Текущий адрес внутри буфера определяется полным содержимым ре- гистра алреса.
Прежде чем размешать буфер в памяти, необходимо определить его базовый адрес, относительно которого опрелеляется верхняя граница буфера. В обра- зовании базового алроса участвует только та пара регистров размера и алре- са, которая имеет наибольшее значение /К Базовый адрес (БА) формируется конкптенпцпей (соединением) старшего слова адресного регистра и комби- нации из апулей (рис. 8.30). Относительный адрес верхней границы (ОАВГ) прелставляет собой сумму БА и любого из допустимых алресов верхней границы (ЛАВГ) ОАВГ = БА + ЛАВГ.
рава 8. Периферийные устройства Замечание двоичный 16.яичный хкх...хОООО ххООЬ Й4 ХХОВП Первая половина В>орал ххООП ( половина хкопь ххх... х1 ООО БуФер передачи размером б ххк...х1100 О Ю Ю ... 1 Ю 0 0 (ххх811) О 0 О ... О ! 0 ! (ххх5!1) ккОЕп ххоял х>1ОП хх...х10000 Первая половина Буфер приема размером 8 х х х... О О 0 0 (хххО!т) х х х... х 0 Ю Ю (хххХЫ Вторая половина ххк...>1100 кк17 Рис. В.В1. Пример формирования буферов Алгоритмы и процессоры цифровой обработки сигнапое Тогда адрес нижней границы (АНГ) буфера определится суммой АНГ = ОАВГ + (К- 1).
Любой буфер размера от 1024 до 2048 должен начинаться с базового адреса 10000000000, т. е, у таких буферов БА и ОАВГ совпадают всегда. Инициализацией МлАДР задается начальный адрес, по которому произойдет обращение в пределах буфера при старте программы. Обычно в качестве начального адреса выбирается ОАВГ. Внутренней логикой АБ буфер разделяется на лве половины (части). Алресуемое пространство первой части буфера охватывает ( К/2) ячеек, второй части — (К вЂ” ( К/2)) ячеек, где Ц означает обычное округление.
Это говорит о том, что первая часть может быть на одну ячейку больше второй. Приведем пример (рис. 8.31). Пусть размер буфера передачи равен 5, а буфера приема — 8. Тогда солержимое регистров размера имеет вид: регистр размера буфера передачи регистр размера буфера приема Величина Ат соответственно равна 3 и 4, а базовые адреса буферов вследствие конкатенации трех и четырех нулей со старшим словом регистра адреса окажутся такими: БА бут)>ера перелачи БА буфера приема Отсюла слелует, что об!лий базовый атрее Равен БА буфера приема.
Олнако относительные адреса верхней границы рассматриваемых буферов будут разными, поскольку для буфера передачи ОАВГ кратен 8 (000811, 001011, ..., 07Г8Ь), а для буфера приема ОАВГ кратен ! б (0010!т, 00201>„..., 07Г011). Выберем ОАВГ буфера перелачи 0008)т, а буфера приелта — 00106. Адресные пространства буферов и их частей показаны на рис. 8.31.
Адресация начинается с верхней границы. Любое обращение к буферу сопровождается инкре>иенпнтраеаниеи адреснага регистра. После достижения нижней границы адресный регистр по сипвлу с устройства управления блоком АБ перезагружается относительным адресом верхней границы, т. с.
осуществляется алгоритм циклической алресацпи. Режим автобуферизацип залается пользователем установкой необходимых битов в регистре управления Г>АГ> модуля последовательного порта (см. рис. 8.2б). Сигналы прерывания„подаваемые на ИПУ при передаче и прие- Ые каждого слова, в режиме АБ не генерируются. Вместо них на ЦПУ выдаются сигналы прерывания передачи и приема лишь в случаях, если: (3 пересекается адресное пространство одной из частей буфера или буфер полностью (сигналы "прерывание Прд" и "прерывание Прм"); (3 обнаружена ошибка синхронизации (сигнал "Ошибка синх."). Адресная шипа используется для передачи и приема в режиме разлеления Времени. Прн передаче формируется строб "чтение", и по шине данных слоВо пересылается в регистр псрелачи БРгПрл н далее в счвиговый регисгр БСдРПрд. Принимаемое слово через регистры устройства приема поступает на шипу данных и далее пересылается в буфер согласно адресу приема в момент воздействия строба "запись".
Глава Я Периферийные устройства Аягарипиы н процессоры цифровой обработки сигняяоа ЗЗЗ $ 1 1 1 $ 1 3 о о. ы И ъс Х х о с цт Замечание о в Б Ю с с с ы Ю В я ы с о с Ф я Ф с СЭ В процессе приема и передачи вследствие возлействия импульсных помех возможна ошибка тактовой или кадровой синхронизапии, которая выражается в виде пропуска или появления посторонних импульсов. При обнаружении ошибки синхронизации выдается сигнал прерывания "Ошибка синх.. который указывает, что последовательным интерфейсом потеряны одно или несколько слов. Таким образом, протокол автобуферизапии состоит в следуюшем: П блок автобуферизапии выполняет операции доступа к памяти буфера; П соответствуюший адресный регистр инкрементируется, если еше не достигнута нижняя гранина буфера; П генерируется прерывание приема или передачи, если пересечена первая половина буфера или его нижняя гранина; П выполняется автоблокировка блока автобуферизапии (при выборе этой функпии во время ипипиализапии процессора), если пересечена половина буфера или его нижняя граница.
8.7. Контроллер прямого доступа к памяти Контроллер ярячого дагтуна к яалтви ()1ДП) предназначен лля организации пересылок между различными областями карты памяти без вмешательства ЦПУ. Все пересылки ПДП производятся в фоновом режиме относительно работы ЦПУ, что существенно увеличивает производительность процессоре. Контроллеры ПДП вхолят в состав пропессоров семейств ТМ$320С5ххх, ТМЯ320Сбххх, А(33Р-21хх.
В иностранной литературе дпя термина "прямой доступ к памяти" используется аббревиатура РМА (Рата Мегпо~у Асееве). Контроллер ПДП (рис. 8.32, а) имеет несколько независимо программируемых каналов и снабжен рядом регистров: П обятии региаяраги увравления ПЯЛ, который своим состоянием определяет: ° режим работы контроллера; ° характер изменения адресов источника и приемника (инкремент, дскремент, синхронный); П регистраии адресов источников н приемников для каждого канала ПДП; П регигтраяи счетчика пересылок, управляюшего разме1юм калРов и блоков пересылок по каждому каналу ПДП; П регистром разрегаения прерываний ЦПУ/ПДП.
с с х о с о о и с о с о о. ы Я в 3 о. в о. ш Глава 8. Периферийные устройства Алгоритмы и процессоры цифровой пбрвбтякн сигналов 335 334 Контроллер ПДП обеспечивает пересылки данных в аиде (рис. 8.32, б): П элемента„разрядность которого программируется и может составлять 8, 16 или 32 бита: П кадра, состояшсго из программируемого количества элементов; П блока, состоящего из программируемого количества кал!юв. Пересылка эяехтеннта в каждом канале выполняется за два шага: 1. Чтение элемента (данных) из ячейки памяти, адрес которой определяется регистром алреса источника ПДП.