Правильная ссылка на эту страницу
http://az-design.ru/Support/HardWare/TI/D19831020Elc034.shtml

Контроллер последовательности инструкций, обрабатывающий прерывания микропрограммы

УДК 681.325.5—181.48

Джефф Нихаус
Фирма Texas Instruments Inc. (Даллас, шт.Техас)

Джим Дюваль
Фирма Texas Instruments Inc. (Даллас, шт.Техас)

Билл Кронлейдж
Фирма Texas Instruments Inc. (Даллас, шт.Техас)

Jeff Niehaus, Jim Duval, Bill Kronlage. Sequencer handles microcode interrupts, pp.135—138.

Приведено функциональное описание микроконтроллера последовательности инструкций, предназначенного для совместной работы с новым высокоскоростным микропроцессором с разрядно-модульной организацией. Как и указанный процессор, микроконтроллер выполнен на усовершенствованных Шотки- и Шотки/ТТЛ-элементах и рассеивает мощность 800 мВт.

Хотя скорость реализации чисто вычислительных операций и может производить впечатление, реальная мощность ЭВМ, выражающаяся в выполнении программ за требуемое время, зависит от скорости отклика системы на внешние воздействия. Подобно тому как скоростная спортивная машина совершенно бесполезна без механизма управления, способного быстро отзываться на команды водителя, быстродействующий процессор не будет иметь никакой практической ценности, если он не в состоянии быстро отликаться на самые разнообразные вычислительные задания и внешние прерывания. Управляя высокопроизводительным процессором с разрядно-модульной организацией типа SN74AS888 (см. "Увеличение быстродействия 8-разрядных процессорных модулей путем использования нескольких внутренних шин"), микроконтроллер последовательности инструкций SN74AS890 будет выдавать процессору последовательность микроадресов и сможет при необходимости вынуждать процессор SN74AS888 переключаться с текущего задания на другое. Таким образом, устройство SN74AS890 рассчитано на тесное взаимодействие с разряд-но-модульным процессором SN74AS888 и будет выполнять совместно с ним требующие высокой производительности вычислительные процедуры, подобные быстрому преобразованию Фурье (см. «Одно из применений — быстрое преобразование Фурье»).

Фирма TI реализовала устройство SN74AS890 на усовершенствованных Шотки- и Шотки/ТТЛ-элементах. В общей сложности контроллер SN74AS890 насчитывает примерно 2400 Шотки-вентилей и в типичном случае потребляет 800 мВт мощности (рис.1). Вся внутренняя логика устройства, выполненная на Шотки/ТТЛ-элементах, работает от источника питания напряжением 2 В, однако обмен данными между внутренней логикой и остальной частью системы осуществляется через 5-В порты ввода-вывода, совместимые с ТТЛ-схемами и реализованные на усовершенствованных Шотки-элементах.

Микроконтроллер последовательности. Устройство SN74AS890 фирмы TI построено на основе усовершенствованных Шотки-элементов и в типичном случае, генерир
Рис.1. Микроконтроллер последовательности. Устройство SN74AS890 фирмы TI построено на основе усовершенствованных Шотки-элементов и в типичном случае, генерируя адреса за время около 26 нс, рассеивает мощность, равную всего 800 мВт. Будучи оснащенным стеком на 9 слов по 14 разрядов (матрица в центре кристалла), который организован по принципу FILO, такое устройство допускает образование очереди на обслуживание, состоящей из 9 заданий.

ИС контроллера будет выпускаться в двух конструктивных вариантах: в корпусе с двухрядным расположением 64 выводов, присоединяемых к краевым контактам ИС высокотемпературной пайкой, и в 68-выводном носителе кристалла; второй вариант получил обозначение SN74AS891. 68-выводной носитель имеет вспомогательный 4-разрядный порт, дополняющий два 14-разрядных порта данных DRA и DRB еще четырьмя задаваемыми пользователем разрядами. С помощью такой структуры можно устанавливать значения адресов для передач управления 16 возможным направлениям.

ИС SN74AS890 представляет собой наиболее мощный микроконтроллер последовательности инструкций из числа выпускаемых в настоящее время. Она способна выдавать последовательности микроадресов разрядно-модульным процессорам, подобным SN74AS888. Типичное значение времени, необходимого устройству SN74AS890 для генерации адреса, составляет 26 не, и эта величина остается неизменной вне зависимости от того, выполняет ли машина простой алгоритм, представляющий собой линейную последовательность инструкций, или одну из 64 прочих мощных инструкций, реализация которых связана с учетом внешних флажков ветвления, уменьшения содержимого счетчиков обратного счета и стековых операций. Архитектура SN74AS890 делает возможным непосредственное обращение к адресному пространству из 16384 адресов. В любой момент времени в стеке глубиной девять уровней, построенном по принципу FILO1{First-in, last-out — первый на входе, последний на выходе}, может находиться девять неоконченных заданий, стоящих в очереди на обслуживание. Такие задания могут состоять из комбинации ожидаемых стандартных программ и случайных прерываний. Если поступающие из системы команды требуют от контроллера SN74AS890 выполнения более чем девяти заданий одновременно, то в активное состояние устанавливается флажок ошибки. Это позволяет системе осуществить дампинг заданий, ожидающих выполнения, с целью диагностики, не нарушая их порядка в очереди на обслуживание.

Простота процесса микропрограммирования

Принцип микропрограммирования в целом несложен для понимания, однако его эффективная реализация требует искусства, которым невозможно овладеть без детального знакомства с аппаратными средствами системы. Благодаря хранению микроинструкций, которые образуют микропрограмму, в памяти (как правило, в ППЗУ) в цифровой системе сокращается объем необходимых аппаратных логических средств последовательного типа. Для управления логическими устройствами такой системы каждая микроинструкция выдает в параллельной форме некоторую комбинацию единиц и нулей. Поступая независимо от основного потока данных, микропрограммная последовательность выполняет функцию, отличную от функции основной исходной программы, хотя между ними и существует взаимосвязь.

Каждая инструкция основной программы декодируется, в результате чего производится адресация микроинструкции (или набора микроинструкций), которая хранится в управляющей памяти, где она недоступна для программиста. Каждую микроинструкцию в свою очередь можно разбить на несколько еще меньших инструкций, которые называются микроприказами. Микроприказы управляют рядом одновременных, событий: они могут, например, дать команду сдвигателям произвести сдвиг данных в то время, когда мультиплексоры выбирают регистры для параллельной загрузки или выдачи данных.

Выбор микрокода

В ходе своей работы устройство SN74AS890 осуществляет прием микроинструкции, ее адреса, состояний ее счетчиков и входного сигнала условного управления, представляющего состояние процессора SN74AS888. На основании всей этой информации оно принимает решение о том, откуда должно быть выбрано следующее микрослово, а также решает, есть ли необходимость в изменении характера взаимодействия с какой-либо подпрограммой. Микрослово в свою очередь управляет работой процессора SN74AS888 и дает возможность контроллеру SN74AS890 принять решение относительно того, откуда выбрать следующую микроинструкцию. Данный базовый процесс продолжается до тех пор, пока не будет завершено выполнение всей программы. (Одним из традиционных методов ускорения этого процесса является запись адреса, сформированного устройством SN74AS890, в конвейерный регистр до его передачи в управляющую память. Такой метод аналогичен предварительной выборке инструкции, которая практикуется в крупных ЭВМ.)

Блок управления имеет декодер инструкций и, кроме того, предоставляет системе порты для ввода в устройство SN74AS890 информации состояния от разрядного модуля (рис.2). Для выбора следующего адреса микрокода либо из внутренней ячейки, либо из некоторого внешнего источника устройство SN74AS890 использует такие средства, как код условия (CC), порты стековых инструкций (S0—S2), входы мультиплексоров (MUX0—MUX2) и флажок внутреннего состояния. Устройство SN74AS890 обрабатывает по одной микроинструкции за один период тактового сигнала, а затем декодирует состояние системы по окончании текущей микроинструкции, что позволяет выбрать адрес следующей микроинструкции, обратиться к нужной стандартной программе или обработать прерывание. Для выполнения условных переходов и передач управления рассматриваемый контроллер последовательности инструкций использует специальный код условия (CC).

Гибкое управление. Наличие нескольких входов превращает мультиплексор Y-выхода в гибкое средство выбора следующего микроадреса. Отладка существенно уп
Рис.2. Гибкое управление. Наличие нескольких входов превращает мультиплексор Y-выхода в гибкое средство выбора следующего микроадреса. Отладка существенно упрощается благодаря возможности использования сигнала STRWRN/RER, служащего предупреждением в тех случаях, когда программа может переполнить стек или пытается считать данные из пустого стека.

Восемь источников адреса

Чтобы снабдить разрядно-модульный процессор или другие микропрограммные системы необходимой последовательностью микроинструкций, 14-разрядный микроадрес можно выбирать из восьми различных источников. Два 14-разрядных порта данных (DRA и DRB) обеспечивают ввод в устройство SN74AS890 14-разрядного адресного или информационного слова. Помимо этого мультиплексор Y-выхода может осуществлять выбор следующего адреса перехода из шести других источников; в числе этих источников:

— Верхний уровень адресного стека, который имеет объем 9 слов по 14 разрядов.

— Внутренний регистр/счетчик А.

— Внутренний регистр/счетчик В.

— Внутренний счетчик микропрограмм (регистр МРС).

— Четыре разряда В0—В3, обеспечивающие возможность перехода по 16 направлениям; этиразряды используются в качестве дополнения к DRA, DRB и регистру/счетчику А или В и имеются только у устройства SN74AS891.

Такая способность к ветвлению программы по многим направлениям в сочетании со стеком размером 9 слов ? 14 бит, который функционирует по магазинному алгоритму FILO и насчитывает 14 регистров, открывает перед программистом возможность организовывать программный код в виде блоков. А это в свою очередь позволяет структурировать микропрограммы точно таким же путем, как это делается в языках высокого уровня типа Алгол, Паскаль и Ада. Блок хранения девяти адресов управляющей памяти, предусмотренный в составе FILO-стека, способен обслуживать в общей сложности девять вложенных уровней микроподпрограмм, а также программные циклы и прерывания от источников, функционирующих в реальном масштабе времени.

Так, например, для выполнения часто повторяющейся задачи может вызываться соответствующая стандартная программа, после завершения которой система должна возвращаться к основной программе. Чтобы реализовать это, система должна сохранять содержимое той ячейки, в которой произошел переход от основной программы к стандартной подпрограмме (при вызове последней). Для выполнения такой функции устройство SN74AS890 использует стек следующим образом.

В случае прерывания выходные формирователи Y-шины устройства SN74AS890 переводятся в нерабочий режим, что достигается переключением их в высокоимпеданское состояние. Благодаря этому оказывается возможным направить адрес первой микроинструкции подпрограммы на двунаправленную Y-шину от внешнего источника и в регистр микропрограмм (МРС).

В то же время адрес инструкции, выполнявшейся последней перед вызовом подпрограммы прерывания, сохраняется в регистре возврата после прерывания (INT RT). Регистр INT RT осуществляет постоянный контроль содержимого Y-шины, и его обновление производится в каждом периоде тактового сигнала.

Одновременно с записью адреса возврата в регистр INT RT генерируется адрес второго микрослова подпрограммы, который будет направлен в МРС-регистр. После этого процессор, выполняя первую микроинструкцию, вводит содержимое регистра INT RT в стек, сохраняя тем самым связь с основной программой для возврата к ней. Затем, начиная со второго микрослова, выполняется (до полного завершения) оставшаяся часть стандартной программы прерывания. В этот момент из стека извлекается адрес возврата и возобновляется выполнение основной программы.

Для получения адреса (или других данных) с верхнего уровня стека необходимо воспользоваться инструкцией POP (вывод из стека). Когда данные покидают стек, содержимое указателя стека (SP) уменьшается на единицу. При использовании операции PUSH (ввод в стек) в ячейку стека, определяемую указателем, засылается адрес, хранимый в регистре микропрограмм (МРС), и содержимое указателя увеличивается на. единицу.

Имеются также два других источника адреса — загружаемые регистры/счетчики RA и RB. Они способны не только работать в качестве 14-разрядных счетчиков, используемых для управления программными циклами, но и могут служить в качестве временной памяти микроадресов, загружаемых непосредственно через порты DRA и DRB соответственно. Итеративные программы можно генерировать путем загрузки регистров RA и RB и работы с этими регистрами как со счетчиками обратного типа. Появление на выходе ZERO (нуль) высокого уровня указывает на то, что регистр содержит двоичную единицу и что в ближайший момент произойдет уменьшение счетчика, которое укажет на окончание цикла микропрограммы. Благодаря наличию таких средств операции «уменьшение счетчика и ветвление в цикле» могут быть выполнены в пределах одного периода тактового сигнала.

Другой регистр-счетчик, связанный с процедурой адресации, — это регистр микропрограмм (МРС) с инкременатором (INC). Он способен генерировать следующий микропрограммный адрес для операций с последовательной адресацией. С целью выполнения операций подпрограммы или прерывания в МРС можно загружать (через Y-шину) адрес либо от внешнего, либо от внутреннего источника. Приращение этого адреса можно выполнять до его засылки в МРС. Такое приращение обеспечивает последовательный обход адресов подпрограмм или стандартных программ прерывания.

Кроме того, 4-разрядный порт В0—В3 позволяет обрабатывать 4-разрядный адрес (для устройства SN74AS891), который обеспечивает выполнение операций ветвления по 16 направлениям — практически всех типов, реализуемых любым другим процессором.

В тех приложениях, где пропускная способность системы ограничивается операциями опроса, система может ослуживать исполняемые в реальном времени программы векторных прерываний, а также прерывания, осуществляемые в результате опроса. Может быть прервано исполнение любой инструкции, включая PUSH и POP.

Прерывания и опрос

При обработке прерывания должна выполняться двухшаговая процедура. Во-первых, двунаправленная Y-шина переводится в высокоим-педансное состояние (при высоком уровне на линии YOE). Во-вторых, на шину Y выводится вектор точки входа в прерывание, который затем увеличивается на единицу (при высоком уровне на линии INC). В результате такого приращения этот вектор преобразуется во вторую микроинструкцию программы прерывания.

По фронту следующего тактового сигнала этот второй микроадрес записывается в МРС, а адрес прерывания направляется в регистр INT RT (который всегда содержит величину, выдаваемую на шину Y). Кроме того, процессор приступает к выполнению первой инструкции программы прерывания, которая должна вводить адрес, хранимый в регистре INT RT, непосредственно в стек (при низком уровне на линии INT). Это позволит сохранить необходимую связь для возврата к прерванной программе. Необходимая для возврата связь сохраняется даже и в том случае, когда происходит прерывание самой программы прерываний, что достигается путем простого повторения описанной выше последовательности операций.

Диагностическое обслуживание

Как следствие использования все более сложного программного обеспечения при одновременном сокращении времени разработки аппаратных средств, что стало возможным благодаря внедрению БИС, отладка программных средств начинает занимать все увеличивающуюся долю цикла проектирования системы. По мере того как микрокод, применяемый для решения той или иной прикладной задачи, приобретает за счет более широкого использования стандартных программ и процедур обработки прерываний все большую сложность, растет и вероятность не поддающихся восстановлению переполнений стека. При отсутствии возможности обратного просмотра программы с целью обнаружения, например, стандартной программы, из-за которой произошел сбой, процесс отладки программных средств наталкивается на весьма значительные трудности.

В качестве важнейшего вспомогательного функционального средства устройства SN74AS890 можно рассматривать указатель чтения, которым оснащен адресный стек. Он упрощает диагностику микрокода, что дает возможность ускорить отладку программного обеспечения и уменьшить общее время проектирования системы. При наличии такого указателя можно производить не-разрушающее чтение содержимого стека, что позволяет специалисту по микропрограммированию в ходе процедуры отладки просмотреть в обратном направлении все системные «следы». Во время нормальной работы указатель чтения содержит ту же величину, что и указатель стека, и его наличие незаметно для пользователя.

Другое диагностическое средство позволяет обнаруживать потенциально возможные потери значимости и переполнения, используя выход STKWRN/RER адресного стека. Если семь из девяти ячеек стека заполнены и происходит очередная операция PUSH, то на выводе STKWRN/ /RER появится сигнал высокого уровня, который предупреждает о том, что стек скоро исчерпает свою емкость и будет целиком заполнен после еще одной операции PUSH. Сведения о существовании потенциальной возможности переполнения позволяют системам с разрядно-модульной. организацией вести непрерывную обработку векторов прерываний, поступающих от источников, функционирующих в реальном времени. Этот сигнал сохраняет высокий уровень до тех пор, пока значение указателя стека не станет ниже семи.

Аналогичным путем выход STKWRN/RER может использоваться для организации защиты от попыток считывания из пустого стека. Высокий уровень сигнала на этом выходе означает, что из стека уже были извлечены последние хранившиеся там данные. Это условие сохраняется до тех пор, пока в стек не будет введен некоторый адрес и указатель стека не получит приращения.

Дочерние статьи:

Одно из применений — быстрое преобразование Фурье

Выходные данные:

Журнал "Электроника" том 56, No.20 (676), 1983г - пер. с англ. М.: Мир, 1983, стр.62

Electronics Vol.56 No.21 October 20, 1983 A McGraw-Hill Publication

Jeff Niehaus, Jim Duval, Bill Kronlage. Sequencer handles microcode interrupts, pp.135—138.

Раздел: МЕТОДЫ, СХЕМЫ, АППАРАТУРА

Тема:     Интегральные схемы





Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:44 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/HardWare/TI/D19831020Elc034.shtml