- •Микропроцессорные системы
- •Аппаратные средства поддержки реального и календарного времени в микропроцессорных и микроконтроллерных системах (таймеры и процессоры событий).
- •Организация подсистем прерываний в микропроцессорных и микроконтроллерных системах.
- •Основные функции инструментальных пакетов проектирования промышленных систем автоматизации и управления (на примерах инструментального пакета step7 или любого иного).
- •Открытые магистрально модульные системы. Основные требования к открытым системам реального времени. Стандарты мэк 61131.
- •Сегментация памяти в реальном и защищенном режимах микропроцессоров архитектуры ia-32.
- •Обмен данными в режиме пдп микропроцессорных и микроконтроллерных системах. Организация подсистем пдп.
- •Для микроконтроллеров к1816ве51 или st7, stm8, stm32 поясните и продемонстрируйте примерами программирование режимов работы таймеров/счетчиков.
- •Поясните модульный принцип построения микроконтроллеров, компоненты процессорного ядра, состав и характеристики модулей. Примеры архитектур реальных микроконтроллеров.
- •Архитектура микропроцессоров Intel p6 и р7. Конвейеризация вычислительных процессов, использование кэш-памяти программ и данных, предсказание ветвлений и спекулятивное выполнение.
- •Организация вода – вывода данных в микропроцессорных системах.
- •Для микроконтроллеров к1816ве51 или st7, stm8, stm32 поясните и продемонстрируйте примерами адресацию данных и команд, адресацию стека, выполнение косвенных переходов в программе.
- •Основные требования к открытым системам реального времени. Стандарты мэк 61131. Языки программирования плк. Стандарты мэк 61131.3.
- •Программируемые логические контроллеры (плк). Принципы работы плк сканирующего типа. Рабочие циклы и время реакции плк.
- •Организация подсистем прерываний в мп системах на микроконтроллерах платформы х86, Pentium.
- •Микропроцессоры платформы х86, Pentium: управление виртуальной памятью, средства защиты памяти.
- •Средства и методы разработки программного обеспечения и его отладки микроконтроллерных систем. Интегрированные среды проектирования.
- •Для микроконтроллеров к1816ве51 или st7, stm8, stm32 поясните и продемонстрируйте примерами ввод и вывод данных в параллельном и последовательном кодах.
- •Способы обмена данными в микропроцессорных системах. Пояснение выполните на примерах структурных схем и фрагментах программ обмена.
- •Какие способы обмена данными применяются в микропроцессорных системах. Поясните на примерах структурных схем и фрагментах программ обмена.
- •Основные функции инструментальных пакетов проектирования промышленных систем автоматизации и управления (на примерах инструментального пакета step7 или любого иного).
- •Системное и прикладное программное обеспечение магистрально-модульных систем.
- •Аппаратные средства поддержки реального и календарного времени в микропроцессорных и микроконтроллерных системах (таймеры и процессоры событий).
- •Ввод/ вывод информации в последовательных кодах: проблемы, примеры использования программируемых аппаратных средств, надежность и долговечность.
Поясните модульный принцип построения микроконтроллеров, компоненты процессорного ядра, состав и характеристики модулей. Примеры архитектур реальных микроконтроллеров.
(нет примеров)
Микроконтроллеры (МК) имеют модульный принцип организации, представляют собой законченную микропроцессорную систему обработки информации и созданную в виде большой интегральной микросхемы. МК в пределах одного кристалла объединяет основные функциональные блоки микропроцессорной управляющей системы: центральный процессор (ЦПУ), постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), периферийные устройства ввода и вывода информации (УВВ). Все МК одного семейства содержат базовый функциональный блок и изменяемый функциональный блок..
Базовый функциональный блок включает:
- центральный процессор;
- внутренние магистрали адреса, данных и управления; - схему формирования многофазной импульсной последовательности для тактирования ЦПУ и межмодульных магистралей;
- устройство управления режимами работы МК, такими как активный режим, режим пониженного энергопотребления, состояния начального запуска и прерывания.
Базовый функциональный блок называют процессорным ядром МК. Тип процессорного ядра определяет имя семейства МК.
Изменяемый функциональный блок включает модули разных типов памяти, модули периферийных устройств, модули генераторов синхронизации и некоторые дополнительные модули специальных режимов работы МК. Каждый модуль подключается к магистралям процессорного ядра. Это позволяет на уровне функционального проектирования новой модели МК подсоединять разнообразные модули к магистралям процессорного ядра, создавая, таким образом, разнообразные по структуре МК в пределах одного семейства. Совокупность модулей, разработанных для определенного процессорного ядра, принято называть библиотекой периферийных модулей. Библиотека современного семейства МК включает модули пяти функциональных групп:
1) модули памяти;
2) модули периферийных устройств;
3) модули встроенных генераторов синхронизации;
4) модули контроля напряжения питания и хода выполнения программы;
5) модули внутрисхемной отладки и программирования.
В направлениях развития 8-разрядной элементной базы МК прослеживается тенденция к закрытой архитектуре, при которой линии внутренних магистралей адреса и данных отсутствуют на выводах корпуса МК, что не позволяет подключать внешние микросхемы памяти. Разработчики обычно предлагают ряд модификаций МК с одним и тем же набором периферийных модулей и различающихся объемом резидентной памяти программ и данных.
Группа модулей периферийных устройств имеет следующие основные типы:
- параллельные порты ввода-вывода;
- таймеры-счетчики, таймеры периодических прерываний, процессоры событий;
- контроллеры последовательного интерфейса связи нескольких типов (UART,SCI,SPI,IIC,CAN,USB);
- аналого-цифровые преобразователи (АЦП);
- цифроаналоговые преобразователи (ЦАП);
- контроллеры ЖК индикаторов и светодиодной матрицы.
Архитектура микропроцессоров Intel p6 и р7. Конвейеризация вычислительных процессов, использование кэш-памяти программ и данных, предсказание ветвлений и спекулятивное выполнение.
Процессоры семейства Р6, продолжая общую линию микропроцессоров Intel 80x86, имеют ряд архитектурных и структурных особенностей по сравнению с предыдущими моделями микропроцессоров фирмы Intel. Наиболее характерными из этих особенностей являются:
гарвардская структура с разделением потоков команд и данных с помощью введения отдельных внутренних блоков кэш-памяти для хранения команд и данных, а также шин для их передачи;
суперскалярная архитектура, обеспечивающая одновременное выполнение нескольких команд в параллельно работающих исполнительных устройствах;
динамическое исполнение команд, реализующее изменение последовательности команд (выполнение команд с опережением — спекулятивное выполнение), использование расширенного регистрового файла (переименование регистров), эффективное предсказание ветвлений;
двойная независимая шина, содержащая отдельную шину для обращения к кэш-памяти 2-го уровня (выполняется с тактовой частотой процессора) и системную шину для обращения к памяти и внешним устройствам (выполняется с тактовой частотой системной платы).
Процессоры семейства Р6 имеют следующие характеристики:
32-разрядная внутренняя структура;
использование системной шины с 36 разрядами адреса и 64 разрядами данных;
раздельная внутренняя кэш-память 1-го уровня (L1) для команд и данных емкостью по 16 Кбайт;
поддержка общей кэш-памяти команд и данных 2-го уровня (L2) емкостью до 2 Мбайт;
конвейерное исполнение команд с реализацией 12 ступеней конвейера;
предсказание направления программного ветвления с высокой точностью;
ускоренное выполнение операций с плавающей точкой;
приоритетный контроль при обращении к памяти (защищенный режим);
поддержка реализации мультипроцессорных систем;
наличие внутренних средств, обеспечивающих самотестирование, отладку и мониторинг производительности.
Конвейерная обработка представляет собой процесс, при кото- ром сложные действия разделяются на более короткие стадии. Их параллельное выполнение позволяет более полно использовать об- рабатывающие ресурсы конвейера.
В процессорах Р6 реализован конвейер команд с 12 ступенями их выполнения.
При прохождении семи первых ступеней (до блока изменения последовательности ROB) сохраняется исходный порядок следования команд, на трех исполнительных ступенях последовательность команд может быть нарушена, две заключительные ступени обеспечивают запись полученных результатов в память или регистры с восстановлением исходного порядка их следования. Такое восстановление выполняется буферным блоком MOB при записи результатов в память или блоками изменения последовательности и распределения команд (ROB и RS) при записи результатов в регистр (блок RRF).
Последовательная работа конвейера команд нарушается при поступлении команд условных переходов, так как в случае выполнения условия перехода, которое проверяется в исполнительном устройстве, потребуется перезагрузка конвейера — очистка всех предыдущих ступеней и выборка команды из новой ветви программы. Чтобы сократить или исключить потери времени, связанные с перезагрузкой длинного 12-ступенчатого конвейера, используется блок предсказания ветвлений. Его основной частью является ассоциативная память, называемая буфером адресов ветвлений (ВТВ — Branch Target Buffer), в которой хранятся 512 адресов ранее выполненных переходов. Кроме того ВТВ содержит четыре бита предыстории ветвления, которые указывают, выполнялся ли переход при четырех предыдущих выборках данной команды. При поступлении очередной команды условного перехода указанный в ней адрес сравнивается с содержимым ВТВ. Если этот адрес не содержится в ВТВ, то есть ранее не производились переходы по данному адресу, то предсказывается отсутствие ветвления. В этом случае продолжается выборка и декодирование команд, следующих за командой перехода. При совпадении указанного в команде адреса перехода с каким-либо из адресов, хранящихся в ВТВ, производится анализ предыстории. В процессе анализа определяется чаще всего реализуемое направление ветвления, а также выявляются чередующиеся переходы. Если предсказывается выполнение ветвления, то выбирается и загружается в конвейер команда, размещенная по предсказанному адресу. Одновременно в блоке выборки-декодирования сохраняется декодированная следующая команда. Если после анализа условия ветвления выясняется, что предсказание было неправильным, эта декодированная команда поступает из УУ в исполнительное устройство, обеспечивая сокращение потерь времени на перезагрузку конвейера.
Используемый алгоритм предсказания ветвлений ориентирован на достаточно частое повторение обращения к процедуре, которая обеспечивается определенной ветвью программы. При этом рекомендуется более часто используемые процедуры располагать в ветвях, следующих непосредственно за командой перехода, чтобы сократить время перезагрузки конвейера при ошибочно предсказанных ветвлениях. По имеющимся оценкам данный алгоритм обеспечивает вероятность правильного предсказания ветвлений на уровне 90% .
Обмен с основной памятью при использовании кэш-памяти производится с помощью пакетных циклов обращения, которые позволяют за один цикл переслать содержимое целой строки кэш-памяти (32 байта). Внешняя 64-разрядная шина данных позволяет выполнить такую пересылку за 5 тактов машинного времени: первый такт служит для установки адреса строки, а в течении следующих четырех тактов идет передача данных. При этом необходимые сигналы управления обменом устанавливаются только один раз (в начале цикла), а изменение младших разрядов адреса в тактах передачи осуществляется автоматически основной памятью.
При формировании адресов обеспечивается обращение к заданному сегменту памяти. Каждый сегмент может делиться на страницы, размещаемые в различных разделах адресного пространства. Блоки трансляции адреса обеспечивают формирование физических адресов команд и данных при использовании страничной организации памяти. При этом для сокращения времени трансляции используется внутренняя буферная память TLB (Translation Look-aside Buffer), которая хранит базовые адреса наиболее часто используемых страниц.
Спекулятивное выполнение инструкций - это способность процессора исполнить инструкции в порядке, отличном (как правило, с опережением) от порядка во входном потоке инструкций (что определяется кодом исполняемой программы), но завершить и возвратить (commit) результаты исполнения инструкций в порядке, соответствующем оригинальному входному потоку инструкций.