- •Предисловие
- •Введение
- •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.8.4. Реализация тестирования и контроля функционирования
Характерной особенностью современных процессоров является размещение на кристалле специальных средств, облегчающих процедуру их тестирования и контроля. Для процессоров семейства Р6 реализуются следующие варианты тестирования и контроля:
самотестирование в процессе начальной установки (RESET) состояния процессора;
тестирование при работе в составе целевой системы в соответствии с международным стандартом JTAG (IEEE 1149.1);
контроль функционирования с помощью исключения типа #МС («машинный контроль»).
Самотестирование при начальной установке процессора после поступления сигнала RESET реализуется, если в процессе выполнения этой процедуры на вход INIT# подается «О». В этом случае выполняется достаточно сложная программа проверки функционирования основных блоков процессоров Р6, которая занимает около 5,5 млн тактов. Если подтверждается правильность их функционирования, то в регистре ЕАХ устанавливается значение OOOOOOOOh. Любое другое содержимое регистра ЕАХ указывает на обнаружение ошибок в ходе самотестирования.
Согласно международному стандарту JTAG (IEEE 1149.1), для выполнения тестирования цифровое устройство должно иметь специальный последовательный порт ТАР (test access port), через который производится ввод тестовых комбинаций (входных сигналов) и вывод данных об ответной реакции (состоянии выходов) устройства. При тестировании используются следующие выводы ТАР:
ТСК - вход синхросигналов, используемых в режиме тестирования;
TMS - вход управляющего сигнала, определяющего режим работы ТАР;
TDI - вход для последовательного ввода тестовых команд и сигналов
ТОО - выход для последовательного вывода данных о состоянии входов и выходов тестируемого устройства;
TRST#- вход для подачи сигнала сброса (установки в начальное состояние) в процессе тестирования.
Тестирование выполняется методом сканирования границ (boundary scan), при котором все входы и выходы процессора подключаются к отдельным разрядам общего сдвигового регистра тестовых данных, вход которого соединен с выводом TDI, выход- с выводом ТОО. Таким образом, обеспечивается возможность подачи на входы процессора необходимых тестовых сигналов, которые последовательно вводятся через вход TDI, и считывания получаемых при этом выходных сигналов, которые последовательно выводятся через выход ТОО. Различные процедуры тестирования осуществляются при поступлении определенных тестовых команд, которые предварительно последовательно вводятся через вывод TDI.
Такой способ тестирования позволяет проверять функционирование различных устройств, входящих в систему, путем соответствующего соединения их входов и выходов (рис. 2.65). При этом реализуется общий кольцевой регистр сдвига, объединяющий входы и выходы различных устройств системы. Путем последовательного ввода в этот регистр реализуется подача входных воздействий на все устройства системы, а путем последовательного вывода данных из регистра производится считывание состояния выходов этих устройств, которое определяет реакцию на поступившие воздействия.
В состав порта ТАР входят два основных сдвиговых регистра: регистр команд IR и регистр тестовых данных BSR. В зависимости от значения сигнала TMS производится выбор одного из этих регистров, в результате чего обеспечивается последовательный ввод (через TDI) и вывод (через ТОО) тестовых команд или данных. Ввод и вывод выполняются при поступлении синхросигналов ТСК.
При вводе в регистр команд соответствующего кода процессор выполняет одну из тестовых команд. В их состав входят команды, определяемые стандартом JTAG, и дополнительные команды, введенные для тестирования определенных моделей процессоров.
В число выполняемых команд стандарта JTAG входят SAMPLE/PRELOAD, EXTEST, BYPASS, IDCODE. После поступления команды SAMPLE/PRELOAD осуществляется последовательная загрузка регистра тестовых данных BSR при поступлении синхросигналов ТСК. В результате обеспечивается подача необходимых тестовых сигналов на входы процессора и предварительная установка состояния его выходов. После окончания загрузки регистра BSR устанавливается соответствующее состояние выходов процессора, которое фиксируется в определенных разрядах этого регистра. При последующей подаче синхросигналов ТСК производится последовательный вывод содержимого регистра данных, соответствующие разряды которого фиксируют реакцию процессора на поступление тестовых сигналов. Анализ выведенных данных позволяет определить правильность функционирования процессора. Если после загрузки регистра BSR в процессор вводится команда EXTEST, то на внешние выводы процессора выдаются сигналы, значения которых установлены предыдущей командой SAMPLE/PRELOAD. Эти сигналы могут использоваться для тестирования других устройств, подключенных к процессору в данной системе. Команда BYPASS обеспечивает непосредственную передачу сигналов со входа TDI на выход ТОО. Таким образом, можно вводить тестовые команды и данные в другие устройства системы, минуя процессор. При поступлении команды IDCODE на выход ТОО последовательно выдается код, идентифицирующий тип процессора и реализованную версию JTAG. Этот код заносится в процессе изготовления процессора в 32-разрядный регистр идентификации DID, входящий в состав порта ТАР. Команда RUNBIST, специфическая для каждой модели процессора, запускает тестовую последовательность сигналов, аналогичную той, которая выполняется при установке начального состояния. После ее завершения производится считывание содержимого однобитового регистра RUNBIST, входящего в состав порта ТАР. Его нулевое значение указывает на успешное завершение самотестирования процессора.
Регистр тестовых данных BSR содержит различное число разрядов (150-200) в зависимости от модели процессора. Каждому выводу процессора соответствуют определенные разряды регистра BSR. Однонаправленные выводы подключены к одному из разрядов, а двунаправленные - к двум разрядам, один из которых задает значение входного сигнала, второй принимает значение выходного сигнала. Для двунаправленных выводов используются также дополнительные разряды регистра, содержимое которых определяет использование этих выводов в качестве входов или выходов. Последовательный ввод данных в регистр BSR, выполняемый при поступлении синхросигналов ТСК, позволяет установить необходимое исходное состояние всех выходов, последовательный вывод данных обеспечивает возможность контроля их текущего состояния.
Расширение возможностей порта ТАР обеспечивается в режиме «зондовой» отладки (Probe Mode). Для реализации этого режима в состав порта ТАР введены дополнительные регистры команд PIR (Probe Instruction Register) и данных PDR (Probe Data Register), с помощью которых последовательно вводятся команды и данные, выводятся полученные результаты и информация о текущем состоянии процессора. При этом для управления портом используются дополнительные выводы PREQ# и PRDY#. В зондовом режиме процессор выполняет команды, последовательно вводимые в регистр PIR. При этом не производится контроль привилегий, т. е. выполняются все поступающие команды. Обслуживание прерываний и исключений не реализуется. Обеспечивается возможность записи и считывания содержимого всех регистров процессора, что позволяет контролировать и корректировать их текущее состояние.
Вход и выход в зондовый режим обеспечивается с помощью специальных команд, вводимых в регистр IP порта ТАР, или подачей сигнала запроса на вход RREQ#. При поступлении внешнего сигнала RREQ# = 0 процессор входит в этот режим, устанавливая на выходе
PRDY# сигнал готовности PRDY# = 0. Выход из зондового режима происходит при подаче сигнала RREQ# = 1. Возможен также вход в зондовый режим при реализации исключения отладки #ВР. В этом случае не производится вызов подпрограммы обслуживания, а выдается сигнал готовности PRDY# = 0, который инициирует последовательный ввод команд обработки исключения в регистр PIR через порт ТАР. Такой способ входа в зондовый режим разрешается после подачи специальной команды ICEBP, вводимой в регистр IP порта ТАР.
Процессоры семейства Р6 обладают возможностями обнаружения ряда аппаратных ошибок, возникающих при функционировании систем. Эти возможности реализуются с помощью средств машинного контроля (machine-check architecture), которые выявляют следующие виды ошибок:
ошибка обращения к системной шине, которая фиксируется внешней схемой контроля шины, подающей сигнал BINIT# = 0 на соответствующий вход процессора;
ошибка ЕСС (Error Checking and Correcting) при обращении к памяти, которая выявляется внешним устройством контроля памятью; код этой ошибки подается на входы DEP7-0# процессора;
ошибка контроля четности при передаче адреса или данных;
ошибка в кэш-памяти или буферах страничной трансляции TLB.
При выявлении этих ошибок реализуется исключение #МС «машинный контроль», если в регистре CR4 установлено значение бита МСЕ = 1. Программа обработки данного исключения может получить информацию о происшедшей ошибке из специальных MSR-регистров, состав и содержимое которых зависят от модели процессора. Полный набор этих 64-разрядных регистров содержит глобальные регистры MCG CAP, MCG CTL, определяющие возможные режимы контроля, и MCG STATUS, указывающий текущее состояние процессора после начала обработки исключения #МС, а также пять банков регистров сообщений об ошибках. Каждый из банков предназначен для контроля ошибок, происходящих в определенных устройствах системы. В состав i-ro банка входят регистры: MCi CTL, определяющий вид контролируемых ошибок, MCi STATUS, MCi MISC, указывающие вид обнаруженных ошибок, MCi ADDR, содержащий адрес, при обращении к которому была зафиксирована ошибка.
Следует отметить, что в процессорах семейства Р6 практически используется только небольшая часть этих регистров. Основная часть их содержимого зарезервирована для использования в последующих моделях процессоров, где предполагается значительное расширение возможностей контроля функционирования различных устройств системы.