Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 50
Текст из файла (страница 50)
например, кяк в процессорах фцрлт Магога!а или Такая 1па1шптепта). 3апрпгаи на нрерывпнне от нрогрпиинпгп источника является непосредственно команда прерывания. или установка бита (возлюжно, битов). Фиксцр>лешая возникновение особого условия и вызывающая автоматическое прерывание по соответствующему условию. Общее количества источников аппаратного и программного прерывания в процессоре может быть различным. например, в процессорах ПВР5600х фирмы Могого1а и в п1юцсссорах ТМ5320С54ххх Фирмы Техглч (пз1гаптепи— 32 источника, в процессорах ТМВ320Сбххх — 16 источников, в процессорах АПЯР-21хх — ат 5 до ! 2 источников в зависимости от модификации ц т. д.
7.2. Средства управления прерываниями Процедура обслуживания прерываний по запросам ат нескольких исто ццм ков в различных процессорах реализуется цо-разному. Управленце этой процедурой осуществляется специальными устройствами в составе аппаратного обеспечении процессора, например, в процессорах фирм Ма!ото!а и Апя1оя Печ(сея — контроллерами прерываний, в процессорах фирмы Тсхаз 1пцгшпешз — логическими схсмамц соответствующего функционального назначения и т.
д. Вместе с телц независимо от конкретной реализации, управление прерываниями цо существу организуется ошшаково, а оснавцьшц средствами управления являются: (3 векторы прерываний: 13' приоргп еты прерываний; С! маскиравацис прерывании; П Режилця запуска прерываний; П Флаги прерываний. П е режлс чем рассматривать процедуру обслуживания прсрывяццц, цсобхолцМо познакомиться с эппап средствами.
Векторы прерываний лата управления прерываниями по запросам ат )т' источников в пространстве памя ти программ выделяется фиксира>инная область, каторги условя ~а делится на тч' блоков (ца количеству источников) абьемам н~ ячеек кяждагс В каждо м их этих блоков размесив~атея команды, которые нсабха.цгиа выполнить цо запросу на прерывание ат соответствующего цсгачника. Такие блоки цазы- Глава 7.
Прерывания 274 Алгоритмы и процессоры цифровой обработки сигналов 275 веют векторами прерыдпни» (или. коротко, векторами), а адрес первой ячейки каждого блока — адресом векторов прерывания (адресом векторов). Таким образом, каждому источнику прерывания ставится в гхтответствие свой адрес вектора прерывания. Совокупность из Ж векторов образует тпбяицу векторов прерывания, которая обычно располагается, начиная с нулевого алреса в налети программ (или с нулевого влреса на страггице памяти программ в процессорах фирмы Техаз 1пмпппсппь в этом случае специальныс биты в регистре состояния используются для указания ст!хгницы). Количество ячеек тп может быть !таз;ги«гггылг: например, т = 2 — в процессорах ОБР5бООх фирмы Магога!а, т = 4 — в процессорах ТМ5320С5ххх фирмы Техаз 1пзгпгптепв и А!3$Р-21хх фирмы Агта1сщ Оетйсез и т.
д. Располагаются векторы не произвольно, а упорялочснно, в соответствии со структурой лриаритетан, которая рассматривается в следующем разлеле. Прилгер размещения таблицы векторов в памяти программ при т = 2 приведен на рис. 72. Память программ Ядр»па вякякгяяе е В-й яектпр г-й вектор а-г.т 2-й вектор !и-т)-й вектпр Рис. 7.2.
Пример размещения таблицы вектарав в памяти программ при пт = 2 Векторы хранят колганды, количество и назначение которых определяет гни» ттрерывония (сзь рпзд. 73). В процессорах с улучшенной стандартной архитектурой и архитекту)хтй ч) 1%, где имеется возможность одновременного выполнения группы команд, например, в процессорах ТМ5320Сбххх фирмы Техаз 1пмгцпгеп!з, каждому источггику прерываггия также назначается вектор прерывания; прп этолг адреса векторов следуют с интервалом 32 байтта (0020)г — в шестнадцатеричной системе). т.
к. каждый вектор отводится для хранения пакета вмборки из восьми команд длиной 32 бита каждая. Совокупность таких пакетов образует таблицу векторов прерывания. За исключением тога, чта команды заменяются пакетами выборки, срелства унравлеггия и процедург обслуживания прерываний в подобньгх процессорах нс имеют принцнпггальных отличий. поэтому они не расс лгатрнваются отдельно. ПРиоритеты прерываний Возможность одновременного (в течение одного периода ГТИ) постунлегшя запросов на прерывание от различных источников или ггоступления нового запроса в период обслуживания прерывания по ранее поступившему запросу требует организации очередности обслуживания прерываний. С этой целыа каждолгу источнику ставится в соответствие определенный код очередности иа обслуживание прерывания, называелгый лриорителюм прерывания, и очеРедность устанавливается согласно ранжировинттю ла нриаритегпам.
Структура приоритетов, опредсляслгая архитектурой процессора, может быть: ('3 одноуровневай, когда каждому источнику ставится Р соответствис свой приоритет; г3 двухуровневой, котла на первом уровне источники разделяются на группы, каждая со своим приоритетом, а на втором — источники ранжируются па индивидуальным приоритетам внутри группы. Одноуровневая система приоритетов используется в процессорах фирм Тсхаз 1пзггцглепгз и Агта!оя Оеисез, двухуровневая — в процессорах фирмы Магога!а.
Приоритеты силпюлически обозначаются целыми положительными числамн; в различных процессорах высший приоритет люжет кодироваться как наибольшим, так и наименьшим числом. Наприлгер, в процессорах ТМБ320С5ххх фирмы Техаз 1пжгцшепв высший приоритет обозначен наименьшим числом 1 (остальные приоритеты обозначены числами от 2 и выше), а в процессорах РБР5бххх — наибольшим числом 3 (остальные приоритеты обозначены числами 2, 1, 0). Приоритеты одних источников строго фиксированы, других (но только из Числа аппаратных источников) — могут устанавливаться пользователем (в Рамках заданных границ) и присваиваться на этапе инициализации процессора.
Например, в процессорах фирм Магога!а и А!та!од 1)еч!сев имеется специальный регистр конфигурации аппаратных прерываний, который содержит пары битов, отображающих приоритет каждого источника; состолнне не этих битов устанавливается пользователем программно на этапе инициалнэгцтги процессора Вект ь оры в таблице векторов выстраиваются согласна ранжпрованию приоритетов в источников, от высшего (первый вектор) к низшему. Высший приоритет во всех процессорах имеет аппаратный сброс на выводе ВЕ5ЕТ. далее обычна (н (но не всегда) последогягтелыго располагаются векторы: внешнего анна атнога «1э' га прерывания на выводе )л!)!41 ()л)оп Мах!гаЫс 1пгсг-арг), программных источи иков, остальных внешних аппаратных источников, внутренних аппаРатных источников.
Пример таблицы векторов с олноуровневой структурой приоритетов дается в табл. 7,1 Тлена 7. Прерывания 27б Приоритет Источник прерывания Адрес вектора прерывания Высший Источники программного прерывания 2«п Низший Биты маски прерывания Приоритет 0,1,2,3 1,2,3 2. 3 3 Масккруемых нет 0 0 0,1 0,1,2 Общее «ласкиравание Алгоритмы и процессоры цифровой обработки сигналов Таблица 7, 1. Пример таблицы векторов прерывания Внешние источники аппаратного прерывания Внутренние источники аппарзтнага прерыва- ния Маскирование прерываний Поступивший запрос на прерывание не обязательно будет обслуживаться. Запрещение ( локирова (б нис) нежелательных прерываний называется л«пск««- раепниехт. В зависилюсти от возможности л«аскпрованця все источники прерывания лелятся на «тпек««руе««ые (прерывания ат которых мо«уг запрещаться или ра«- решаться) и нечпскируецые (прсрываиив от которых пе могут запрещаться).
К последним относятся: П аппаратный сброс ВЕЗЕТ; лз внешнее аппаратное прерывание на выводе к«М „. (з программные прерывания. Приоритет немаскируемых источников прерывания всегда выше, чем у мас- кируем ых. кп- Для маскирусмых источников различают общее и индивидуальное маски раввине прерываний. «2о«««ее л«аскпрованпе о на ., р р (естественно, кроме немаскируемых) запрсше««(«, независимо от их нпливиу ьного маскировании. Индивидуальное маскирование говорит о том, '«то дуальног л лькпх), запрещены преры ва««щ конкретных источников (одного или неско.
указываемых пользователем. Как общее, так и ««««ливилуаль о «~ валь««ос маскирован««с реализуются в 1«азл««чныл у. Напри ер, об«««ее ла к раввине в процсссорзл процессорах по-разному. апример, фирм Техаз 1п«апппеп«з и Л««««1ав Галсу(сез осуществляется с помощью специальных кал«а««д (ззвх н отз хит соответственно) и отображается установкой бита общего лщскпроващ«я; спилиется общее маскирование таюхс по камандал«(ззвх и озз гнт соответственно), что отображается сбросом бита общего маскирования.
В процессорах фирмы Магога!а лля общего и ннливидуалыю«о маскирования используются два бита маски прсрывапш в регистре состояния„их комбинация задаст так называемый я«скулили ««тт«топ««- и«еп«, означающий, чта все прерывания с приоритетом ниже текущего маскируются. Для паи«его маскирования устанавливается высший текутции лриаритнетн (соответст««ующий нслщскнруемым прерываниям), который автоматически запрещает все маскнруел«ыс прерывания." Солержпмос табл. 7.2 иллюстрирует принцип общего маскирования: выси«нй приоритет 3 соответствует группе немаскируемых прсрываннй.
Таблица 7 2 Маскирование в процессорах фирмы Ма«аго!а 1О Н Текущий Разрешенных прерываний Маекируемых прерываний Ддя инд«тв««д)уь«ьнога маскировашщ в процессорах фирм Техаз !п«апппеп«л и Ала!оя Осу(сез используется регистр масок прерывания, в котором каждому маскируемому источ«щку соответствует свой бит, и установка этого бита фиксирует ма«:кирова«ис (запрешснпе) прерывания данного источника. В процессорах фирмы мо«аго1а для:лого служат два бита маски прсрывания, их комбинация задает текущий приоритет, означающий, что все преРывания с приор«пегом ниже текущего маскируются (табл. 7.2).
Режимы запуска прерываний 'еле«««т зпкзскп определяет формирование активного сиппща (запроса нз прерывание) «ь«я вневп«их аппаратных источников. Различают два режима запуска: (1 по уровню; (2 по отрицательному «)«ро««ту. Глава 7 ПРеРывания Алгоритмы н процессоры цифровой обработки сигналов 278 Режим запуска может задаваться по улюлчанию, либо выбираться пользователелс с помощью программной установки битов режима запуска соответствующих аппаратных источников. Аппаратному сбросу КЕБЕТ всегда соответствует режим запуска по низкому уровню. Флаги прерываний флагом прерывания называют бит, который устанавливается при поступлении запроса на прерывание от внешнего аппаратного источника.