Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






ТРИ ПРОЦЕССОРНЫХ ЯДРА HC08




При современном программиро­вании приложений на языке Си, изучать архитектурные особенности процессорного ядра, как правило, не обязательно. Поэтому дана сравнительная характе­ристика трёх модификаций процес­сорного ядра НС08. На её основе можно сделать осознанный выбор модели МК для конкретного приложения.

Все три рассматриваемых процес­сорных ядра: НС08, HCS08 и RS08, -выполнены на основе CISC-архитек­туры. Программно-логическая мо­дель центрального процессора НС08 (см. рис. 298) содержит пять ре­гистров, которые не являются частью объединённого адресного пространства, и, следовательно, для обращения к ним должны быть ис­пользованы специальные команды. Это 8-разрядный аккумулятор АСС, 16-разрядный индексный регистр НХ (Н - старший байт, X - младший байт), 16-разрядные программный счётчик PC и указатель стека SP, 8-разрядный регистр признаков CCR. Последний содержит пять фла­гов, информирующих о состояния операнда в аккумуляторе: переноса (С), нулевого результата (Z), отрицательного результата (N), переполне­ния (V),дополнительного переноса

Рис. 298. Программно-логическая модель центрального процессора НС08.

 

(Н), а также бит глобальной маски прерывания (I). Размещение тригге­ра запрета всех прерываний цент­рального процессора I в регистре признаков является традиционным для всех МК компании Freescale Semiconductor.

Программный счётчик, указатель стека и регистр НХ позволяют линей­но адресовать все 64 Кб памяти, что обусловливает две особенности сис­темы команд:

  • во-первых, подавляющее число действий исполняется над операн­дами, которые могут быть располо­жены в любом адресном простран­стве из 64 Кб;
  • во-вторых, МК с процессорным яд­ром НС08 могут одинаково успеш­но исполнять программы как из ПЗУ, так и из ОЗУ. Последнее суще­ственно упрощает построение мо­дуля внутрисхемной отладки.

Система команд ядра НС08 включа­ет 90 инструкций языка Ассемблер, в том числе команды целочисленного беззнакового умножения восьмираз­рядных операндов (время выполне­ния операции составляет 5 циклов или 625 нс) и целочисленного без­знакового деления 16: 8 (время вы­полнения операции - 7 циклов или 875 нс). Операция сложения или вы­читания однобайтовой константы выполняется за 250 нс (2 цикла).

Центральный процессор НС08 поддерживает 12 способов адреса­ции, имеет двухадресные команды, которые позволяют выполнять пере­сылки данных между двумя ячейка­ми памяти или регистрами специ­альных функций, минуя регистры центрального процессора. Процессор оснащён большим набором ко­манд ветвления. Кроме переходов по традиционным условиям С, Z, N, Н, реализованы переходы по комбина­циям флагов С и Z для сравнения операндов в прямом коде без знака, а также по комбинациям флагов С, Z, и V для сравнения операндов в допол­нительном коде со знаком. Общее число инструкций ветвления ассем­блера НС08 равно 40. Процессорное ядро НС08 реализует векторные пре­рывания, а также имеет специаль­ную команду программного преры­вания.

Программно-логическая модель и система команд процессорного ядра HCS08 полностью идентична ядру НС08. В чём же отличия?

Во-первых, использован новый тех­нологический процесс, что позволи­ло повысить частоту внутренней ши­ны до 20 МГц при напряжении пита­ния 3,6 В.

Во-вторых, процессорное ядро HCS08 работает в диапазоне напря­жений питания от 1,8 до 3,6 В, т.е. ориентировано на работу в устрой­ствах с автономным питанием.

В-третьих, процессорное ядро HCS08 имеет расширенный набор ре­жимов энергосбережения, что полез­но в автономных приборах.

В-четвертых, процессорное ядро HCS08 имеет более совершенный модуль отладки, реализующий ре­жим BDM (BDM - Background Debug Mode, т.е. фоновый режим отладки). В отличие от модуля отладки, реали­зованного в НС08, новый модуль от­ладки позволяет часть функций вы­полнять без останова исполнения прикладной программы. Кроме того, для перевода МК в режим от­ладки используется всего одна линия, что для маловыводных МК очень важно. В рассматриваемых МК на основе процессорного ядра НС08 с интерфейсом отладки MON08 иногда до половины выводов долж­ны быть использованы в режиме от­ладки. Поэтому приходится комму­тировать выводы, а лишние разъёмы нежелательны в малогабаритных приложениях.

Обратимся теперь к ядру RS08. При его разработке преследовалась цель предельно минимизировать ап­паратные средства 8-разрядного процессорного ядра, ориентирован­ного на очень простые приложения с объёмом программного кода в не­сколько килобайт. Программно-ло­гическая модель центрального про­цессора RS08 представлена на ри­сунке 2. Она содержит 8-разрядный аккумулятор АСС, 14-разрядный счётчик команд PC, 14-разрядный регистр SPC и двухразрядный ре­гистр признаков CCR.

Уменьшенная разрядность про­граммного счётчика PC свидетель­ствует о том, что максимальный объём программного кода для это­го процессорного ядра составляет 16 Кб. Наличие всего двух флагов условий (переполнения С и нулево­го результата Z) в регистре состоя­ния CCR определяет ориентацию этого процессорного ядра на вы­полнение, в основном, логических операций и на очень простые вы­числения, которые не предполага­ют использования представления чисел со знаком. И, как следствие, в системе команд отсутствуют инструкции умножения и деления. Существенно сократилось и число команд ветвления - в предыду­щих версиях процессорного ядра HC08/HCS08 их было 40, в версии RS08 осталось всего 11.

Существенные изменения претер­пела модель памяти и система адре­сации. Процессорное ядро RS08 использует страничную систему ад­ресации, при которой линейно ад­ресуются лишь ячейки памяти с адресами 0x00 - OxFF. Старшие 64 адреса (ОхСО - OxFF) рассматри­ваются как окно для обращения к одной из 252 страниц постоянной памяти объёмом 64 байта каждая. Для выбора номера страницы пред­назначен новый регистр управле­ния PAGESEL. Три страницы памяти с младшими адресами (ОxОО - OxBF) адресуются линейно. В этом адрес­ном пространстве располагаются ОЗУ МК и регистры управления пе­риферией.

Число способов адресации операн­дов сократилось с 12 в предыдущих
версиях процессорного ядра до 7 в версии RS08. Изменение модели па­мяти и способов адресации имело целью сократить число байтов кодов команд, что позволило повысить плотность управляющего кода. Те­перь двухбайтовое представление операнда используют только коман­ды безусловного перехода jmp adr и вызова подпрограмм jsr adr. Осталь­ные команды, в том числе арифмети­ческие и логические, имеют только двухбайтовый или даже однобайто­вый формат. Это достигается введе­нием двух способов прямой адреса­ции, которые ранее были несвой­ственны микроконтроллерам.

Freescale Semiconductor - это прямая адресация типа Tiny, при которой возможно обращение только к опе­рандам, расположенным по адресам ОxОО - OxOF, и прямая адресация типа Short, для которой доступны ячейки памяти с адресами ОхОО - OxIF.

Следует обратить внимание на интересное архитектурное реше­ние, которое позволило эмулиро­вать индексный регистр косвенной адресации X, унаследованный от предыдущих версий процессорно­го ядра (см. рис. 298), и связанные с ним способы индексной адресации со смещением и автоинкрементированием после выборки операнда. Теперь регистр косвенной адресации X располагается в оперативной памяти МК. При обращении с использованием прямой адресации к другому регистру оперативной памяти D[X] происходит выборка операнда, расположенного по адресу, значение которого содержится в X (см. рис. 30). Таким образом, разработчики процессорного ядра RS08 сумели сохранить в системе команд такие способы адресации, как индексная (косвенная по регистру X), индексная со смещением в 8 или I6 бит, индексная со смещением и автоматическим увеличением на 1 содержимого X после выборки операнда. В самом центральном процессоре таких способов адресации нет, поэтому площадь кристалла велика, а для программиста эти способы адресации доступны.

Существенные изменения пре­терпела подсистема вызова под­программ и подсистема прерыва­ний. В процессорном ядре RS08 от­сутствует указатель стека SP (см. рис. 29), вместо которого появился регистр одноуровневого аппарат­ного стека SPC (Shadow PC). В этот регистр загружается адрес возврата при вызове подпрограммы или при переходе на подпрограмму пре­рывания. Организация многоуров­невого вызова подпрограмм воз­можна только с применением специальных программных кон­струкций. Для этого предусмотре­ны команды передачи содержимо­го регистра SPC в оперативную па­мять и обратно.

Рис. 29. Программно-логическая модель центрального процессора НС08.

Подсистема прерываний процес­сорного ядра RS08 перестала быть векторной. Микроконтроллеры типа MC9RS08KA1/KA2 имеют пять источ­ников запросов на прерывания: мо­дуль таймера MTIM, внешние запро­сы на входах портов KBI, аналого­вый компаратор АСМР, модуль меток реального времени RTI и запрос от модуля слежения за пониженным напряжением питания LVD. События запросов отображаются в специаль­ном регистре, который должен быть опрошен программой для определе­ния источника запроса на прерыва­ние. Очень важно, что подсистема прерывания в МК MC9RS08KA1/KA2 предназначена только для вывода этих МК из режимов пониженного энергопотребления типа ожидания (Wait) или останова (Stop). При ра­боте МК в активном режиме, т.е. в процессе исполнения программы, подсистема прерывания запросы фиксирует, но не изменяет ход выполнения программы. Флаги за­просов должны программно опра­шиваться, и при необходимости вы­полняется ветвление программы управления.

Что же получилось в итоге столь существенных изменений? Процес­сорное ядро RS08 сохранило хоро­шую систему команд, которая была свойственна ядру HC08/HCS08. По существу не стало только команд умножения и деления. Но при отсут­ствии в МК встроенного АЦП и на­личии упрощённого таймера, кото­рый не предполагает измерения временных интервалов, эти коман­ды требуются редко.Сохранилось множество способов

Рис. 30. Эмуляция индексной адресации в процессорном ядре RS08.

 

адресации, хотя все способы, связанные с регист­ром X, теперь эмулируются на уров­не программы Ассемблера или ком­пилятора с языка Си.

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

Очень важно, что процессорное яд­ро RS08 унаследовало от ядра HCS08 режим фоновой внутрисхемной от­ладки BDM. Для данного класса МК он удобен по двум причинам. Во-первых, можно следить за изменением ресур­сов МК в режиме отладки без остано­ва выполнения программы, посколь­ку приложения достаточно простые и медленные. Во-вторых, вход в ре­жим отладки и взаимодействие с МК в процессе отладки происходит по единственному выводу, что делает возможным использование отладки в системе даже при корпусе МК с шестью выводами.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных