Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 1 по 294.doc
Скачиваний:
13
Добавлен:
16.04.2019
Размер:
6.2 Mб
Скачать

2.9.2. Risc-микроконтроллеры семейства мрс5хх ( power pc)

Разработка этого семейства микроконтроллеров началась недавно, поэтому в настоя­щее время выпускается только одна модель МРС505. На примере этой модели рассмот­рим особенности структуры и функционирования RISC-микроконтроллеров, реализован­ных на базе процессора PowerPC.

Структура и особенности функционирования МРС505. Микроконтроллер МРС505 (рис. 2.76) содержит 32-разрядный RISC-процессор (RCPU), внутреннее ОЗУ данных ем­костью 4 Кбайт, кэш-память команд (1C) емкостью 4 Кбайт, системное интерфейсное уст­ройство (SIU) с несколькими параллельными портами ввода/вывода и блок управления периферийными устройствами (PCU) с портом Q. Отдельные шины используются для пе­редачи команд (1В) и данных (LB). В последующих моделях семейства предполагается раз­мещение на кристалле периферийных различных устройств (таймерных блоков, последо­вательных портов и др.), как это делается в модульных микроконтроллерах семейства М683хх. Для их подключения будет применяться межмодульная шина 1MB, аналогичная ис­пользуемой в семействе М683хх, которая связывается с шиной данных LB через блок PCU. В модели МРС505, где такие периферийные устройства отсутствуют, блок PCU выполняет функции контроллера прерываний, сторожевого устройства (watchdog) для контроля вы­полнения программы и схемы управления портом Q.

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

Регистровая модель супервизора RCPU содержит ряд регистров, которые выполняют такие же функции, как в модели МРС604 (см. рис. 2.68). Это регистр управления MSR, ре­гистр PVR, указывающий тип микроконтроллера, регистры SRRO, SRR1, DAR, DSISR, SPRGO-SPRG3, используемые при обслуживании исключений, таймер базового времени ТВ и регистр декремента DEC. Кроме того, в регистровую модель супервизора RCPU вхо­дят регистры, обеспечивающие управление кэшем команд, реализацию отладки микропро­цессорных систем и ряд других функций

Микроконтроллер МРС505 реализует такой же набор исключений, как и микропроцес­сор МРС604 (см. табл. 2.64). Векторы исключений располагаются в таблице, базовый ад­рес которой равен $00000000, если в регистре MSR значение бита ЕР = 0, или $FFFOOOOO, если ЕР = 1. Таким образом, предусмотрены две возможных позиции для размещения таб­лицы векторов исключений в адресном пространстве.

Внутренняя структура RCPU представляет собой упрощенный вариант суперскалярной структуры процессора в модели МРС604. RCPU содержит устройство управления, два уст­ройства обработки для целочисленных операндов (SIU, MIU) и одно для чисел с плавающей точкой (FPU), устройство загрузки-сохранения (LSU), подключенное к внутренней шине LB, и регистровые блоки GPRO-31, FPRO-31. В данном процессоре реализуется 4-каскадный кон­вейер выполнения команд, набор которых практически совпадает с набором команд МРС604. Используемые регистры условий CR (см. рис. 2.67, а), исключений XER (см. рис. 2.67, б), состояния FPU - FPSCR (см. рис. 2.70) имеют такое же назначение битов, как в микропро­цессорах семейства МРСбхх, описанных выше.

Микроконтроллер не реализует сегментной, страничной или каких-либо других спосо­бов организации памяти, поэтому в его составе нет устройств управления памятью MMU, выполняющих трансляцию адреса. Формируемый микроконтроллером адрес служит физи­ческим адресом, который используется для обращения к кэшу команд, внутреннему ОЗУ или внешней памяти.

Входящий в состав микроконтроллера кэш команд 1C содержит 128 наборов по 2 стро­ки, в каждой из которых хранятся четыре слова (16 байт). В качестве тега используются разряды АО-20 адреса команды. Кэш имеет также три регистра ICCST, ICADR, ICDAT, кото­рые входят в модель супервизора как регистры специального назначения с номерами SPR560, SPR561, SPR562. Регистр управления кэша ICCST содержит бит IEN, указываю­щий на включенное или отключенное состояние кэша, поле CMD, в которое может быть записан код команды обращения к кэшу, биты CCER1-3, которые показывают наличие ошибок при обращении к кэшу. Записью соответствующего кода в поле CMD можно вклю­чить или отключить кэш, аннулировать его содержимое (очистить кэш), заблокировать или разблокировать строку или весь кэш (запретить или разрешить использовать их содержи­мое ), загрузить строку кэша. Перед выполнением загрузки или блокировки строки в ре­гистр адреса ICADR заносится адрес команды, которую следует загрузить или заблокиро­вать в кэше. Из регистра ICDAT можно считать команду, хранящуюся в кэше, если предва­рительно записать ее адрес в регистр ICADR. Таким образом, используя регистры ICCST, ICADR, ICDAT, можно управлять работой кэша и контролировать его содержимое, что осо­бенно важно в процессе отладки программного обеспечения.

Внутреннее ОЗУ емкостью 4 Кбайт может быть расположено в одной из четырех воз­можных позиций адресного пространства с начальным адресом $00000000, $OOOFFOOO, $ FFFOOOOO или $FFFFFOOO. Выбор позиции задается содержимым поля LMB в регистре конфигурации памяти МЕММАР, который входит в состав системного интерфейсного уст­ройства SIU. Режим работы внутреннего ОЗУ задается содержимым регистра управле­ния SRAMMCR, отдельные биты которого разрешают или запрещают использование ОЗУ, определяют его использование для хранения команд-данных или только данных, допус­кают запись-считывание или только считывание, разрешают обращение к ОЗУ в режиме супервизора-пользователя или только супервизора, задают длительность цикла обра­щения -1 или 2 такта.

При обращении к памяти или внешним устройствам могут выдаваться сигналы разре­шения выборки CSi#. Эти сигналы формируются блоком выборки кристаллов (БВК), ко­торый работает как аналогичный блок в модуле SIM микроконтроллеров семейства М683хх. Микроконтроллер МРС505 обеспечивает формирование 12 сигналов разрешения выбор­ки CSO-11, которые поступают на выводы портов А, В.

Блок конфигурации и контроля (БКК) содержит регистр SIUMCR, определяющий режим функционирования SIU, и ряд других регистров и блоков, контролирующих работу различных устройств МРС505. Входящий в состав БКК монитор шины реализует исключение ошибки обращения к шине (адрес вектора Av = $00200), если в течение заданного времени не будет получен сигнал подтверждения обмена ТА# = 0. Время, в течение которого должен быть по­лучен сигнал подтверждения, программируется в пределах от 16 / Ft до 256 / Ft. Таймер пери­одических прерываний содержит 16-разрядный счетчик, который переключается с частотой Ft / 4. Запрос прерывания вырабатывается, когда содержимое счетчика стано­вится равным нулю. Этот запрос вместе с запросами от других устройств поступает в кон­троллер прерываний, расположенный в блоке PCU, который управляет их обслуживанием.

В случае необходимости БКК реализует захват шины. Эта процедура выполняется с помощью внешних сигналов BR# - запрос на захват шины, BG# - разрешение захвата, ВВ# - захват шины. При этом сигналы BR#, BG#, ВВ# поступают на выводы порта М в числе других сигналов управления СМх.

Генератор тактовых импульсов (ГТИ) формирует тактовые импульсы заданной часто­ты Ft. Для функционирования ГТИ необходимо подключение внешнего частотно-задаю­щего элемента (обычно кварца), однако получаемая частота Ft может быть в 4 - 11 раз выше резонансной частоты кварца или в 2,4, 8,16, ...1024 раза ниже. Требуемое значе­ние Ft программируется путем загрузки соответствующего кода в SCCR - регистр управления ГТИ. Например, при подключении кварца с резонансной частотой 4 МГц можно получить значения тактовой частоты Ft от 15,6 КГц до 44 МГц. Для синхронизации рабо­ты внешних устройств ГТИ выдает на свои выходы CLKOUT и ECROUT импульсы с час­тотой Ft и Ft / 4 соответственно.

Установка определенных значений поля LPM в регистре SCCR переводит микроконтроллер в один из режимов пониженного энергопотребления: LPM1 -прекращение обращений к шине, LPM2 -частичный останов, LPM3 - полный останов. В режиме LPM1 прекращается выдача синхросигналов CLKOUT, ECROUT, но процессор продолжает выполнение программы, пока не поступит команда, требующая обращения к внешней шине, после чего процессор останавливается. В режиме LPM2 процессор не функционирует, но работают ГТИ, регистр базового времени ТВ, таймер периодических прерываний в БКК, блок обслуживания внешних запросов прерывания, при поступлении которых микроконтроллер возвращается в нормальный рабочий режим. В режиме полного останова LPM3 прекращается работа всех устройств и блоков микроконтроллера, в том числе ГТИ. Выход из режима LPM3 происходит только путем установки начального состояния (reset).

В нормальном рабочем режиме микроконтроллер МРС505 потребляет мощность 530мВт на частоте Ft = 25 МГц. В режиме LPM2 потребление мощности снижается до десятков мегавольт, а в режиме LPM3 составляет единицы мегавольт.

Блок тестирования и отладки (БТО) обеспечивает тестирование микроконтроллера в со­ответствии со стандартом JTAG (IEEE 1149.1), как это выполняется в микропроцессоре МС68060 и микроконтроллерах семейства М683хх. Сигналы для тестирования TDI, TOO, TMS, ТСК, TRST# поступают на выводы Тхх. Кроме того, БТО реализует режим отладки, который является расширенным вариантом аналогичного режима в микроконтроллерах семейства М683хх. Кроме режима отладки BDM, выполняемого семейством М68ххх, БТО в МРС505 под­держивает отладку в процессе выполнения рабочей программы в реальном времени (без остановов), с остановами в контрольных точках и с применением схемного эмулятора. При этом внешние сигналы микропроцессора указывают состояние очереди команд.

Для отладки программ в реальном времени вводятся 8 точек наблюдения (watchpoint), 4 из которых служат для контроля выборки команд, а 4 - для контроля выборки данных из внешней памяти с помощью LSU. Установка точек наблюдения производится путем заг­рузки 8 специальных регистров - компараторов СМРА- СМРН, входящих в состав БТО. При контроле выборки команд проводится сравнение их адреса с содержимым компараторов СМРА - CMPD, при контроле выборки данных - сравнение их адреса с содержимым компа­раторов СМРЕ, CMPF или сравнение выбираемых данных с содержимым компараторов CMPG, СМРН. Точки наблюдения устанавливаются, если адреса или данные равны или не равны, больше или меньше, чем содержимое соответствующих компараторов. При контроле выбор­ки данных можно с помощью регистров СМРЕ, CMPF или CMPG, СМРН задать границы кон­тролируемых значений адресов или данных. В этом случае точка наблюдения устанавлива­ется при попадании или непопадании адреса или данных в заданный диапазон.

Установка точек наблюдения не прерывает исполнения программы, но изменяет состоя­ния контрольных выходов WPO-5 (выводы PL2-7 порта L), из которых четыре (WPO-3) конт­ролируют выборку команд, а два (WP4-5) - выборку данных, а также вызывает декремент содержимого одного из контрольных счетчиков - CNTA при контроле команд, CNTB при кон­троле данных. Когда содержимое счетчиков становится равным нулю, реализуется прерыва­ние в контрольной точке. Обращение к этим компараторам и счетчикам производится как к служебным регистрам SPRx в регистровой модели супервизора процессора RCPU. Микро­контроллер выполняет также прерывание в контрольной точке при обращении к адресу, зна­чение которого совпадает с содержимым регистра BAR (служебный регистр SPR159).

Специальный режим отладки BDM реализуется, если в процессе начальной установки подать на соответствующий вход микроконтроллера сигнал DSCK = 1. В этом режиме микроконтроллер выполняет команды отладки, которые последовательно вводятся в БТО через вход DSI при поступлении внешних синхросигналов на вход DSCK. Вводимые 35-битные команды содержат 3-битный код операции отладки, а в остальных 32 битах зада­ется код команды, выполняемой процессором, или данные. Данные заносятся в специаль­ный регистр данных отладки DPDR (служебный регистр SPR630 в модели супервизора), откуда они считываются процессором при последующем вводе команды mfsr. Последова­тельный вывод данных из микроконтроллера производится через выход DSO при поступ­лении синхросигналов DSCK. Данные выводятся из регистра DPDR, куда они должны быть предварительно загружены командой mtsr. Помимо ввода команд и пересылки, данных ко­манды отладки позволяют выполнять запись или считывание массивов данных из ОЗУ, разрешать или отменять остановы в контрольных точках. Используемые при отладке сиг­налы DSI, DSO, DSCK и другие, поступают на выводы порта К (сигналы DKx). Выход из режима отладки BDM производится при вводе команды rfi.

В состав SIU входят также семь 8-разрядных параллельных портов для ввода/выво­да данных (в портах L, М используются по 6 выводов PL2-7, РМ2-7, в порте J-7 выводов PJ1-7). Каждый из портов содержит регистр данных PORTxn регистр управления PxPAR, где х = А, В, I, J, К, L или М - имя соответствующего порта. Каждый бит Ы в регистре управления определяет функции соответствующего вывода порта: если Ы = 0, то i-й вы­вод служит для передачи i-ro разряда данных, если Ы = 1, то вывод используется для передачи разрядов адреса, данных или сигналов выборки CS# (порты А, В), различных управляющих сигналов Clx, CJx, СМх (порты I, J, М), сигналов отладки DKx, DLx (пор­ты К, L) и ряда других. Двунаправленные порты I, J, К, L, M имеют также регистры DDRx, каждый бит Ы в которых определяет направление передачи данных для i-ro вывода: при bi = 0 вывод служит входом, при Ы = 1 — выходом. Регистры портов имеют фиксирован­ные адреса в адресном пространстве.

Каждый порт Рх может использоваться для передачи данных, если загрузить 0 в его ре­гистр управления. При этом содержимое регистра DDRx задает направление передачи. В та­ком случае вывод данных осуществляется путем их записи в регистр PORTx, а ввод - путем чтения содержимого этого регистра (из регистров PORTA, PORTB будет считываться ранее записанное содержимое).

Блок управления периферийными устройствами PCU. Блок управления перифе­рийными устройствами PCU содержит сторожевое устройство (watchdog), контроллер пре­рываний и порт Q, выводы которого могут использоваться в качестве входов запросов прерывания. Кроме того, в состав PCU входит интерфейсное устройство, обеспечиваю­щее связь периферийных устройств, подключаемых к межмодульной шине 1MB, с устрой­ством загрузки-сохранения данных LSU в RISC-процессоре, которое подключено к внут­ренней шине LB. Однако эти функции PCU не используются в МРС505, так как он не содер­жит периферийных устройств.

Сторожевое устройство осуществляет контроль правильности работы микроконтрол­лера, проверяя периодичность загрузки в специальный регистр SWSR последовательнос­ти двух 16-разрядных чисел $556С-$АА39. Период загрузки Tw = Nw / Ft задается 24-раз­рядным числом Nw, которое записывается в регистр управления сторожевого устройства. Если за время Tw в регистр SWSR не будет проведена загрузка очередного числа после­довательности, то реализуется программное исключение с адресом вектора Av = $00700.

Контроллер прерываний содержит 32-разрядный регистр IRQPEND, биты которого фик­сируют запросы прерывания от внешних устройств, поступающие на входы IRQO-6 порта Q, и от таймера периодических прерываний. Запросы IRQ3-6 фиксируются в битах Ь6, Ь8, Ы, а запросы IRQO-2 и таймера - в битах, номера которых задаются содержимым специального регистра PITQIL. В следующих моделях семейства МРС50х в регистре IRQPEND будут также фиксироваться запросы прерывания от внутренних периферийных устройств. Обслуживание зафиксированных запросов разрешается, если соответствую­щие биты в 32-разрядном регистре IRQENABLE контроллера установлены в «1». В этом случае запрос прерывания поступает на вход RCPU, и реализуется внешнее исключение с адресом вектора Av = 00500 (см. табл. 2.66). Вызванная подпрограмма должна проанали­зировать содержимое регистра IRQPEND и реализовать соответствующую процедуру об­служивания в зависимости от приоритета поступивших запросов.

Регистр управления PQPAR определяет режим функционирования порта Q. Путем за­писи в этот регистр соответствующего содержимого каждый вывод порта Q может быть запрограммирован на работу в качестве входа или выхода данных, либо в качестве входа запроса прерывания. При этом прерывание может вызываться установкой уровня «1» на этом входе, подачей положительного или отрицательного перепада потенциала. Можно запрограммировать регистр PQPAR на передачу запросов прерывания непосредственно в RCPU, минуя контроллер прерываний. Путем записи-чтения регистра PQEDGDAT, входя­щего в состав порта Q, производится вывод или ввод данных, а также контроль поступив­ших запросов прерывания.

Таким образом, микроконтроллер МРС505, интегрирующий на одном кристалле высокопро­изводительный процессор с возможностями обработки чисел с плавающей точкой, значитель­ный объем внутренней памяти (8 Кбайт) и необходимые интерфейсные устройства, является мощным средством для реализации сложнофункциональных устройств управления.

ГЛАВАЗ

ИСПОЛЬЗОВАНИЕ КЭШ-ПАМЯТИ И ОРГАНИЗАЦИЯ ОСНОВНОЙ ПАМЯТИ

Одной из особенностей построения ВС на базе МП является использование кэш-памяти. Этот механизм прозрачен для пользователя. Он позволяет существенно повысить быстро­действие за счет снижения времени получения информации из основной памяти.

В этой главе будут рассмотрены общие принципы организации кэш-памяти, а также особенности конкретной реализации при построении МП-систем.