- •Предисловие
- •Введение
- •1. Системный анализ задачи - выделяются процессы и функции, реализация которых будет возложена на мк или ип.
- •Алгоритмизация процессов и функций - разрабатываются алгоритмы решения задачи.
- •Области использования мк
- •Глава 1основы микропроцессорной техники
- •1.1. Классификация микропроцессоров, основные варианты их архитектуры и структуры
- •1.2. Общая структура и принципы функционирования микропроцессорных систем
- •1.3. Система команд и способы адресации операндов
- •Начиная с младшего байта («Little-Endian»);
- •Начиная со старшего байта («Big-Endian»).
- •1.4. Интерфейсы микропроцессорных систем
- •1.4.1. Основные понятия
- •1.4.2. Магистраль vme
- •Verbs находит широкое применение в:
- •VmEbus обеспечивает наилучшее соотношение цена - производительность для системы в целом и предоставляет практически неограниченные возможности наращивания всех ресурсов.
- •1.5. Шина usb
- •На их основе
- •2.1. Структура и функционирование процессоров intel p6
- •2.1.1. Суперскалярная архитектура и организация конвейера команд
- •2.1.2. Режимы работы процессора и организация памяти
- •2.1.3. Регистровая модель
- •1. Функциональные основные регистры:
- •Iopl -уровень привилегий ввода/вывода, задает максимальную величину уровня привилегий текущей программы, при котором разрешается выполнение команд ввода/вывода;
- •2.3 Режимы работы процессора
- •2.1.4. Внутренняя кэш-память
- •8 Зон по 64 Кбайт, занимающих диапазон адресов 0-7fffFh (512 Кбайт);
- •16 Зон по 16 Кбайт, занимающих диапазон адресов 80000h-8ffffh (256 Кбайт);
- •8 Зон размером от 4 Кбайт до максимального размера физической памяти, которые могут размещаться в любой позиции адресного пространства.
- •2.1.5. Форматы команд и способы адресации
- •Содержимого базового регистра евр (вр) или евх (вх);
- •Содержимого индексного регистра esi (si) или edi (di);
- •Disp команды (см. Рис. 2.11).
- •2.2. Система команд: операции над целыми числами
- •Пересылка данных и адресов
- •Xchg - Обмен между регистрами или памятью и регистром
- •Xlat-Преобразование кодов
- •Imul-Знаковое (целочисленное) умножение аам- ascii-коррекция результата умножения
- •Idiv-Знаковое (целочисленное) деление
- •2.2.1. Команды пересылки
- •2.2.2. Команды арифметических операций
- •2.2.3. Команды логических операций и сдвигов
- •2.2.4. Команды битовых и байтовых операций
- •2.2.5. Команды операций со строками символов
- •2.3. Система команд: операции управления
- •Управление программой
- •Прерывания
- •Int3 - Прерывание в контрольной точке
- •Iret-Возврат из подпрограммы обслуживания прерывания
- •2.3.1. Команды управления программой
- •2.3.3. Команды организации защиты памяти
- •2.3.4. Команды управления процессором
- •2.3.5. Префиксные байты
- •2.4. Система команд: операции над числами с плавающей точкой
- •2.4.3. Команды пересылки данных
- •2.4.4. Команды арифметических операций
- •2.4.6. Команды специальных операций
- •2.4.7. Команды управления fpu
- •Команды преобразования
- •Арифметические команды
- •Inub'- Нахождение меньшего значения (беззнаковые байты) Команды сравнения
- •Команды логических операций
- •2.5.1. Форматы представления данных и выполнение операций
- •2.5.2. Команды пересылки и преобразования данных
- •1 2.5.3. Команды арифметических операций '
- •2.5.4. Команды логических операций и сдвигов
- •2.5.5. Команды сравнения и нахождения максимума/минимума
- •2.6. Система команд: операции sse
- •Команды пересылки данных
- •Команды преобразования данных
- •Арифметические команды
- •Команды нахождения максимума и минимума.
- •Команды преобразования формата чисел.
- •Команды управления
- •2.6.1. Форматы представления данных и выполнение операций
- •2.6.2. Команды пересылки и преобразования данных
- •2.6.3. Команды арифметических операций
- •2.6.6. Команды преобразования формата чисел
- •2.6.7. Команды управления
- •2.6.8. Команды пересылки данных с управлением кэшированием
- •2.7. Работа процессора в защищенном и реальном режимах
- •2.7.1. Сегментация памяти в защищенном режиме
- •2.7.2. Страничная организация памяти
- •2.7.3. Защита памяти
- •2.7.4. Поддержка многозадачного режима
- •2.7.5. Реализация режима виртуального 8086 (v86)
- •2.7.6. Функционирование процессора в реальном режиме
- •2.8. Реализация прерываний и исключений. Обеспечение тестирования и отладки
- •2.8.1. Виды прерываний и исключений, реализация их обслуживания
- •2.8.2. Причины возникновения исключений
- •2.8.3. Средства обеспечения отладки
- •2.8.4. Реализация тестирования и контроля функционирования
- •2.9. Risc-микропроцессоры и risc-микроконтроллеры семейств powerpc (мрс60х, мрс50х)
- •2.9.1. Risc-микропроцессоры семейства мрс60х (powerpc)
- •I (invalid) - недостоверное (аннулированное) содержимое строки.
- •2.9.2. Risc-микроконтроллеры семейства мрс5хх ( power pc)
- •3.1. Общие принципы организации кэш-памяти
- •3.1.1. Понятия тега, индекса и блока
- •3.1.2. Механизм кэш-памяти с прямым отображением данных
- •3.1.3. Механизм кэш-памяти
- •3.1.4. Обновление информации в кэш-памяти
- •1.5. Согласованность кэш-памяти
- •3.2.2. Внутренние кэш-памяти команд и данных
- •3.2.3. Алгоритм кэш-замещений
- •3.2 4. Состояния кэш-памяти данных
- •1.При блокированном чтении:
- •3.2.5. Согласованность внутренних кэш-памятей
- •1) Хранить таблицы страниц и директорий в не копируемой в кэш-память области основной памяти или использовать режим сквозной записи страниц;
- •Процессор может быть заменен (возможен upgraded) без изменения памяти и других подсистем мп вс;
- •Без особого снижения общих характеристик системы могут быть использованы более медленные и менее емкие устройства памяти и устройства ввода/вывода.
- •3.3. Функционирование памяти
- •1) Трансляция сегмента, при которой логический адрес, состоящий из селектора сегмента и смещения (относительного адреса внутри сегмента), преобразуется в линейный адрес.
- •3.3.1. Трансляция сегментов
- •Глобальной таблице дескрипторов (gdt);
- •Локальной таблице дескрипторов (ldt).
- •3.3.2. Адресация физической памяти
- •3.3.4. Комбинирование сегментной и страничной трансляции
- •3.4. Защита памяти
- •3.4.1. Зачем нужна защита?
- •Устанавливает различие между разными форматами дескрипторов;
- •Специфицирует функциональное назначение сегмента.
- •1 Поле предела называют также полем границы.
- •2 Байты сегмента размещены в оп в порядке возрастания адресов памяти или в обратном порядке. Такое размещение также называют соответственно по принципу «младший» и «старший крайний».
- •Cpl (текущий уровень привилегий);
- •Rpl (уровень привилегий источника обращений к сегменту) из селектора, используемый для спецификации сегмента назначения;
- •3)Dpl дескриптора сегмента назначения.
- •Загрузить регистр сегмента данных селектором несогласованного, с разрешением чтения кодового сегмента;
- •Загрузить регистр сегмента данных селектором кодового сегмента, который является согласованным и разрешенным для чтения;
- •Использовать префикс переопределения cs, чтобы прочитать разрешенный для чтения кодовый сегмент, селектор которого уже загружен в cs регистр.
- •Для команды call (или для команды jmp для согласованного сегмента) должны быть выполнены следующие правила привилегий:
- •Привилегированные команды, которые нужны для систем управления вычислительным процессом;
- •Чувствительные команды (Sensitive Instructions), которые используются для ввода/вы вода и для действий, связанных с вводом/выводом.
- •1) Проверка того, имеет ли назначение, специфицированное указателем право доступа к
- •Проверка того, соответствует ли тип сегмента заданному использованию;
- •Проверка указателя на соответствие границе сегмента.
- •Verw (Verify for Writing) - проверка доступности по записи обеспечивает те же самые возможности, что и verr для проверки доступности по чтению.
- •3.4.4. Уровень защиты страниц
- •1) Ограничение адресуемой области; 2) проверка типа страницы.
- •3.4.5. Комбинирование защиты сегментов и страниц
- •Глава 4
- •4.1. Структура современных 8-разрядных микроконтроллеров
- •4.1.1. Модульный принцип построения
- •Tiny avr - mk в 8-выводном корпусе низкой стоимости;
- •Classic avr - основная линия мк с производительностью до 16 mips, Flash память программ объемом до 8 Кбайт и статическим озу данных 128. ..512 байт;
- •Mega avr - мк для сложных приложений, требующих большого объема памяти (Flash пзу до 128 Кбайт), озу до 4 Кбайт, производительностью до 6 mips.
- •4.1.4. Резидентная память мк
- •4.1.5. Порты ввода/вывода
- •Однонаправленные порты, предназначенные в соответствие со спецификацией мк только для ввода или только для вывода информации.
- •Двунаправленные порты, направление передачи которых (ввод или вывод) определяется в процессе инициализации системы.
- •4.1.6. Таймеры и процессоры событий
- •Импульсную последовательность с выхода управляемого делителя частоты fBijs;
- •Внешнюю импульсную последовательность, поступающую на один из входов мк.
- •Простое увеличение числа модулей таймеров; этот путь характерен для части мк компаний «Pfilips» и «Atmel» со структурой msc-51, для мк компаний «Mitsubishi» и «Hitachi».
- •Изменение логического уровня с 0 на 1 (нарастающий фронт сигнала);
- •Изменение логического уровня с 1 на 0 (падающий фронт сигнала);
- •Любое изменение логического уровня сигнала.
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 Кбайт) и необходимые интерфейсные устройства, является мощным средством для реализации сложнофункциональных устройств управления.
ГЛАВАЗ
ИСПОЛЬЗОВАНИЕ КЭШ-ПАМЯТИ И ОРГАНИЗАЦИЯ ОСНОВНОЙ ПАМЯТИ
Одной из особенностей построения ВС на базе МП является использование кэш-памяти. Этот механизм прозрачен для пользователя. Он позволяет существенно повысить быстродействие за счет снижения времени получения информации из основной памяти.
В этой главе будут рассмотрены общие принципы организации кэш-памяти, а также особенности конкретной реализации при построении МП-систем.