(812) 466-57-84 /
Новости Продукция Номенклатура Статьи О фирме Контакты Вакансии
Архитектура серий С167 и ST10x167
Применение контроллеров
Распределенные системы управления
Проектирование распределенных систем управления
О стандарте PC/104
Изделия в стандарте PC/104 для жестких условий
Одноплатные компьютеры-контроллеры в стандарте PC/104
CAN-интерфейс
Микропроцессорные контроллеры CS, M, 167х
Новые 16-разрядные DSP-микроконтроллеры
Краткое описание микроконтроллера C16x
Краткая система команд C16x/ST10
Полная система команд C16x/ST10x
Дополнительные команды для XC16x и ST10F269
Параллельные порты микроконтроллеров C167 и ST10F269
Блоки формирования импульсных сигналов C16x/ST10x
Формирование ШИМ с повышенным разрешением
Универсальные блоки таймеров
Интерфейс АТ96 (Евростандарт)
Подключение контроллеров
Процессоры цифровой обработки сигналов
Архитектура микроконтроллера TMS320C32
Архитектура микроконтроллера TMS320C33

Краткое описание микроконтроллера C16x

Микропроцессорные контролеры серии C16x разработаны на базе универсального 16-разрядного RISС-процессора с четырехcтупенчатым конвейером. Серии C167, C166, C164, C161 отличаются набором периферийных блоков, типом корпуса и наличием соответствующего количества портов ввода-вывода. Ниже приводится краткое описание центрального процессора и структура микроконтроллера C167, который в серии C16x содержит наибольшее количество периферийных устройств.

Функциональная схема микроконтроллера C167
Рис. 1. Функциональная схема микроконтроллера C167

Организация памяти

Центральное процессорное устройство (ЦПУ) микроконтроллера C167 имеет фон-неймановскую архитектуру, что обеспечивает доступ к исполняемому коду и оперативным данным в пределах единого линейного адресного пространства.

Максимальный размер адресуемой памяти составляет 16 Мбайт, которая разделена на 256 сегментов по 64 Кбайта в каждом или 1024 страниц размером 16 Кбайт.

Регистры общего назначения (GPR), регистры специального назначения (SFR и ESFR), внутренняя память (ROM/RAM), периферийные устройства (CAN, последовательныые каналы, PWM и др.) и внешняя память расположены в пределах единого адресного пространства.

Верхние 4 Кбайта нулевого сегмента (00F000h … 00FFFFh) занимает область внутреннего ОЗУ и область регистров специального назначения (SFR и ESFR). Нижние 32 Кбайт могут быть заняты внутренним ПЗУ (масочное ПЗУ или Flash память), которое может быть переадресовано в первый сегмент (010000h …01FFFFh).

Исполняемый код и оперативные данные могут находиться в любой области внутреннего ОЗУ за исключением области управляющих регистров (SFR/ESFR).

Данные в памяти микроконтроллера хранятся следующим образом: младшие байты слов размещаются по четным адресам, а старшие - по нечетным. Бит, занимающий нулевую позицию в младшем байте, имеет наименьшее значение. Бит на восьмой позиции старшего байта имеет наибольшее значение для беззнакового формата целых чисел (0 ... 65535) или является носителем знака для формата знаковых чисел (-32768 ... 32767).

Область регистров общего назначения (GPR), регистров специального назначения (SFR/ESFR), а также часть области внутреннего ОЗУ - являются бит-адресуемыми.

Пространство памяти и адресное пространство
Рис. 2. Пространство памяти и адресное пространство

Внутреннее ОЗУ

Внутреннее ОЗУ объемом 2 килобайта (1Кх16) располагается в третьей странице данных нулевого сегмента. Во внутреннем ОЗУ размещаются:

  • системный стек;
  • регистры общего назначения;
  • регистры-указатели событийного контроллера PEC (аналог DMA);
  • пользовательские флаги, переменные, таблицы или другие данные (могут также размещаться во внешней памяти);
  • исполняемый код (может также размещаться во внешней памяти).
Хранение Слов,Байтов и Битов в памяти
Рис. 3. Хранение Слов, Байтов и Битов в памяти

Инструкции исполняемого кода должны находится только по четному адресу.

Для доступа к данным, расположенным во внутреннем ОЗУ, регистр DPP должен указывать на третью страницу данных (регистр должен содержать число 3).

Контроллер PEC выполняет пересылку данных независимо от содержимого регистров DPP в соответствии со значениями адресов, находящихся в регистрах-указателях источника и приемника в пределах сегмента 0.

В пределах сегмента 0 для верхних 256 байт внутреннего ОЗУ (0FD00h...0FDFFh) доступен режим битовой адресации. Это пространство памяти может быть использовано для размещения пользовательских флагов.

Область внутреннего ОЗУ, ПЗУ и регистров SFR
Рис. 4. Область внутреннего ОЗУ, ПЗУ и регистров SFR

Системный стек

Системный стек размещается во внутреннем ОЗУ, его размер определяется содержимым битового поля STKSZ в регистре SYSCON.

Доступ к данным, хранящимся на стеке, осуществляется посредством регистра-указателя стека SP. При добавлении данных на стек, указатель стека SP декрементируется, стек при этом растет в сторону младшего адреса. Для контроля за переполнением и исчерпанием системного стека служат регистры STKOV и STKUN.

Регистры-указатели контроллера событий PEC

Во внутреннем ОЗУ по адресам 00FCE0h…00FCFEh расположены 16 двухбайтовых регистров-указателей, предназначенных для хранения адресов источников и приемников контроллера событий PEC. Каждому из восьми каналов PEC контроллера соответствуют расположенные последовательно регистр источника SRCPx и приемника DSTPx (х = 0…7).

Во время работы PEC контроллера регистры SRCPx и DSTPx задают соответствующие адреса регистров источников и приемников независимо от содержимого регистра DPP0...DPP3.

В том случае, когда пользовательская программа не использует PEC-контроллер, регистры источника и приемника могут использоваться для хранения данных.

Расположение PEC-указателей C167
Рис. 5. Расположение PEC-указателей C167

Регистры общего назначения

Регистры общего назначения GPR занимают во внутреннем ОЗУ блок из шестнадцати последовательно размещенных слов. Расположение блока во внутренней памяти определяется содержимым указателя контекста CP, в котором хранится адрес первого слова блока GPR.

Каждый блок GPR может содержать до 16-ти двухбайтовых регистров (R0, R1, …, R15) и (или) до 16-ти байтных регистров (RL0, RH0, …, RL7, RH7).

Регистры блока GPR доступны в режимах короткой 2-, 4-, или 8-битовой адресации, в которых регистр-указатель контекста CP используется в качестве базового адреса. Независимо от положения блока GPR во внутренней памяти, все его регистры бит-адресуемы.

Важным достоинством микроконтроллера C16X является возможность быстрой смены текущего блока GPR (контекста), при записи в регистр CP другого значения базового адреса. Во внутреннем ОЗУ одновременно может быть организовано несколько блоков GPR, однако текущим будет только тот из них, адрес начала которого хранится в регистре CP.

Для быстрой смены контекста может исполльзоваться команда установки контекста (Switch Context SCXT), которая пересылает из регистра CP на системный стек адрес текущего блока GPR, затем записывает в регистр CP адрес того блока GPR, который необходимо сделать текущим.

Возможность быстрой смены контекста целесообразно использовать в подпрограммах обработки прерываний. Каждому прерыванию или группе прерываний может быть назначен один из блоков GPR.

Адрес во внутреннем ОЗУ Однобайтовые регистры Двухбайтовые регистры
     
<CP> + 1EH R15
<CP> + 1CH R14
<CP> + 1AH R13
<CP> + 18H R12
<CP> + 16H R11
<CP> + 14H R10
<CP> + 12H R9
<CP> + 10H R8
<CP> + 0EH RH7 RL7 R7
<CP> + 0CH RH6 RL6 R6
<CP> + 0AH RH5 RL5 R5
<CP> + 08H RH4 RL4 R4
<CP> + 06H RH3 RL3 R3
<CP> + 04H RH2 RL2 R2
<CP> + 02H RH1 RL1 R1
<CP> + 00H RH0 RL0 R0

Регистры специального назначения (SFR/ESFR)

Область регистров специального назначения (SFR и ESFR), так же как и область внутреннего ОЗУ, располагается в третьей странице данных нулевого сегмента. В нее включены порты ввода-вывода, периферийные устройства и регистры, обслуживающие интерфейс внешней шины. Область регистров специального назначения разделена на два равных блока по 512 байт в каждом. Первый блок SFR находится непосредственно за внутренним ОЗУ (0FE00h...0FFFFh). Второй блок ESFR (Extended SFR) расположен в области памяти (0F000h .. 0F1FFh).

Доступ к регистрам SFR и ESFR осуществляется через 16-битовые косвенные или прямые режимы адресации. В режиме короткой 8-битовой адресации обеспечивается доступ к словам и младшим байтам блока SFR. Однако этот тип адресации (при байтовой адресации) не обеспечивает доступ к старшим байтам соответствующих слов.

Верхняя половина адресного пространства каждого блока регистров является бит-адресуемой, т.е. соответствующие биты управления-статуса могут быть модифицированы с помощью битовой адресации.

В режиме доступа к регистрам ESFR при использовании 8-битовой адресации и прямой битовой адресации, предварительно необходимо использовать команду EXTR для переключения режима короткой адресации со стандартного SFR пространства на расширенное ESFR пространство. Этого не требуется в режимах 16-битовой и косвенной адресации. Регистры R15…R0 доступны в обоих блоках регистров через адрес длиной 2, 4 или 8 бит.

Внешняя память

Адресное пространство, не занятое внутренней памятью микроконтроллера, может быть использовано для доступа к внешним устройствам памяти. Доступ осуществляется через интерфес внешней шины.

Область On-chip XRAM
Рис. 6. Область On-chip XRAM

Микроконтроллер C167 поддерживает четыре режима доступа к внешней памяти в зависимости от ее размера:

  • Несегментный режим. Размер внешней памяти до 64 Кбайт. Вывод шины адреса А15…А0 организован через Порт 0 или Порт 1.
  • Двухбитовый сегментный режим. Размер внешней памяти до 256 Кбайт. Вывод старших разрядов шины адреса А17 и А16 организован через Порт 4, младших разрядов (А0…А15) - Порт 0 или Порт 1.
  • Четырехбитовый сегментный режим. Размер внешней памяти до 1 Мбайта. Вывод старших разрядов шины адреса А19…А16 организован через Порт 4, младших разрядов (А0…А15) - Порт 0 или Порт 1.
  • Восьмибитовый сегментный режим. Размер внешней памяти до 16 Мбайт. Вывод старших разрядов шины адреса А23…А16 организован через Порт 4, младших разрядов (А0…А15) - Порт 0 или Порт 1.

Пять выводов Порта 6 (CS0-CS4) могут быть запрограммированы для выборки внешних устройств, что позволяет легко расширять память микроконтроллера внешними устройствами памяти.

Интерфейс внешней шины обеспечивает четыре различных режима:

  • мультиплексная 16-битовая шина. Шина адреса и данных мультиплексируются через Порт 0.
  • мультиплексная 8-битовая шина. Шина адреса и данных мультиплексируются через Порт 0.
  • немультиплексная 16-битовая шина. Шина адреса - Порт 1, шина данных - Порт 0.
  • немультиплексная 8-битовая шина. Шина адреса - Порт 1, шина данных - младшая часть Порта 0.

Доступ к данным, расположенным во внешней памяти, может выполняться только в режиме косвенной или полной 16-битовой адресации с использованием одного из четырех регистров DPP, а также с помощью команд EXTP, EXTS.

Контроллер событий РЕС выполняет передачу данных в пределах нулевого сегмента памяти независимо от значений регистров DPP по адресам, указанным в регистрах-указателях источника и приемника.

Доступ к внешней памяти в режиме битовой или короткой адресации невозможен.

Центральное процессорное устройство

Центральное процессорное устройство (ЦПУ или центральный процессор ЦП) является ядром микроконтроллера С167, которое обеспечивает выборку исполняемых команд из памяти, их дешифрацию, пересылку операндов в арифметико-логическое устройство (АЛУ), выполнение соответствующих арифметических операций, сохранение полученных результатов в памяти или в регистрах.

Схема ЦПУ
Рис. 7. Схема ЦПУ

В основу работы ЦПУ положена конвейерная организация выполнения команд. Благодаря этому для выполнения большинства из них требуется 100 наносекунд при тактовой частоте микроконтроллера 20 МГц.

ЦПУ непосредственнo связано с внутренней памятью микроконтроллера через 32-разрядную шину. Доступ к внешним устройствам осуществляется с помощью контроллера внешней шины (External Bus Controller - EBC).

Внутренние периферийные устройства микроконтроллера работают независимо от ЦПУ, регистры управления которыми объединены в областях памяти SFR (Special Funсtion Registers - регистры специального назначения) и ESFR (дополнительные регистры SFR).

Периферийные устройства могут изменять работу ЦПУ, вырабатывая запросы прерываний. Контроллер прерываний сравнивает уровни приоритетов устройств, одновременно запросивших прерывание, и выбирает то из них, приоритет которого окажется наибольшим.

Обработка прерываний в микроконтроллере выполняется тремя способами:

  • при поступлении прерывания осуществляется переход на программу обработки прерывания по адресу, который хранится в таблице векторов прерываний.
  • при поступлении прерывания выполняется пересылка данных с помощью PEC контроллера.
  • при выполнении команды TRAP.

Наивысшим приоритетом обладают внешнее немаскируемое прерывание и прерывания, генерируемые при обработке системных ошибок (прерывания-ловушки).

Во время работы центральный процессор находится в тесном взаимодействии со сторожевым таймером (WatchDog Timer). Если работа сторожевого таймера разрешена, то его содержимое необходимо обновлять через определенные промежутки времени, в противном случае произойдет его исчерпание (таймер декрементируется), что вызовет системный сброс микроконтроллера.

Сторожевой таймер позволяет предотвратить длительное "зависание" микроконтроллера из-за ошибок выполнения программы или непредусмотренной комбинации внешних сигналов.

Помимо нормального режима работы ЦПУ может находиться в одном из следующих состояний:

  • Состояние системного сброса, в которое ЦПУ переводится после аппаратного или программного сброса, а также при исчерпании сторожевого таймера.
  • Состояние ожидания, в котором подача импульсов тактового генератора к центральному процессору прекращена и осуществляется только к периферийным устройствам.
  • Состояние пониженного энергопотребления, в котором прекращается подача тактовых импульсов ко всем устройствам микроконтроллера.

Перевод ЦПУ в одно из перечисленных состояний производится при помощи специальных команд. Обратный переход из состояния ожидания в режим нормальной работы происходит при возникновении прерывания, а из состояния пониженного энергопотребления - при поступлении сигнала системного сброса.

Управление режимами работы центрального процессора микроконтроллера обеспечивается следующими регистрами:

SYSCON регистр системной конфигурации;
PSW регистр управления и индикации
    состояния ЦПУ;
IP, СSP регистры-указатели команд;
DPP0..DPP3 регистры-указатели страниц данных;
CP регистр-указатель контекста;
SP, STKUN, STKOV регистры системного стека;
     

Для уменьшения времени выполнения команд центральным процессором в микроконтроллере используется четырехступенчатый конвейер, который позволяет сократить время выполнения команды до 100 нс (для большинства инструкций) при тактовой частоте микроконтроллера 20 МГц.

Битовые операции

Микроконтроллер обладает гибкой системой команд, обеспечивающей битовые операции с регистрами специального назначения (SFR), c регистрами управления портами микроконтроллера, с регистром флагов, а также с бит-адресуемой областью внутренней памяти.

Инструкции BSET, BCLR, BAND, BOR, BXOR, BMOV, BMOVN позволяют устанавливать или сбрасывать соответствующие биты. Команды BFLD и BFLDH обеспечивают доступ к группе битов (до 8-ми). Инструкция JNBC устанавливает, а JBC сбрасывает заданные биты во время выполнения команды перехода. Команды JB и JNB осуществляют переход в зависимости от состояния заданных битов.

Верхние 256 байт регистров специального назначения (SFR), расширенная область регистров специального назначения (ESFR), а также область регистров общего назначения (GPR) - являются бит-адресуемыми.

При чтении бита в адресном пространстве, которое не является бит-адресуемым, результатом чтения всегда будет 0.

Регистры специального назначения центрального процессора

Для обслуживания работы центрального процессора в микроконтроллере предусмотрено несколько специальных регистров. С их помощью устанавливается системная конфигурация, выполняется умножение и деление операндов, осуществляется доступ к сегментам кода, страницам данных, вершине стека, а также регистрам общего назначения. Эти регистры располагаются в области памяти регистров специального назначения (SFR). Доступ к ним осуществляется так же, как и к другим, расположенным в этой области регистрам. Исключение составляют регистры-указатели команды IP и сегмента кода CSP. Для предотвращения нарушений в работе микроконтроллера их изменение возможно только косвенно с помощью команд перехода.

Содержимое регистров PSW, SP и MDC может изменяться программно (прямая запись в регистры) или аппаратно во время работы центрального процессора.

Регистр системной конфигурации SYSCON

Регистр SYSCON определяет конфигурацию центрального процессора и контроллера внешней шины. Во время выполнения системного сброса состояние регистра SYSCON определяется значением, считанным из порта 0.

Регистр системной конфигурации
Рис. 8. Регистр системной конфигурации
Бит Функция
XPER-SHARE Доступ внешних устройств к перифе­рий­ным устройствам шины X-BUS
0: запрещено
1: разрешено
VISIBLE Доступ к периферийным устройствам X-BUS
0: цикл шины внутри контроллера
1: цикл шины обрабатывается периферией
XPEN Доступ к внутренним периферийным устройствам X-BUS
0: запрещен
1: разрешен
WRCFG Конфигурация выводов WR и BHE
0: выводы WR и BHE выполняют их основную функцию
1: вывод WR устанавливается как WRL,
BHE устанавливается как WRH
CLKEN Настройка порта P3.15 для вывода сигнала CLKOUT
0: CLKOUT запрещен. P3.15 может использоваться как порт ввода-вывода
1: CLKOUT разрешен
BYTDIS Настройка порта P3.12 для вывода сигнала BHE
0: BHE разрешен
1: BHE запрещен
ROMEN Использование внутреннего ПЗУ микроконтроллера
0: ПЗУ запрещено.
Область ПЗУ во внешней памяти
1: ПЗУ разрешено
SGTDIS Управление режимом сегментации памяти
0: разрешена.
PSW, IP и CSP запоминаются/восстанавливаются во время входа/выхода из прерывания
1:запрещена.
Только IP и PSW запоминаются/восстанавливаются
ROMS1 Размещение области внутреннего ПЗУ (32 Кбайта)
0: в сегменте кода 0 (000000h…007FFFh)
1: в сегменте кода 1 (010000h…017FFFh )
STKSZ Управление размером системного стека (во внутреннем ОЗУ) от 32 до 1024 слов

Порт вывода сигнала тактового генератора CLKOUT (CLKEN)

Выход сигнала тактового генератора микроконтроллера CLKOUT разрешается установкой бита CLKEN регистра SYSCON. Если бит CLKEN установлен в состояние лог.1, порт P3.15 выдает сигнал тактового генератора с частотой Fout = Fcpu (коэффициент заполнения 50%). При установке бита CLKEN в состояние лог.0 направление порта переключается на вывод независимо от предыдущего состояния. После системного сброса бит CLKEN всегда очищен, а вывод сигнала запрещен.

Разрешение или запрет сегментации (SGTDIS)

Бит SGTDIS регистра SYSCON устанавливает режим сегментации памяти. Если бит SGTDIS =1, при выполнении команд TRAP и RETI только значение регистра IP и PSW автоматически сохраняется на стеке (-*снимается при выполнении команды RETI). В случае если бит SGTDIS=0, значение регистров CSP, PSW и IP автоматически сохраняется на стеке при выполнении команды TRAP и снимается со стека при выполнении команды RETI.

Установка размера системного стека (STKSZ)

Поле битов STKSZ определяет размер (от 32 до 512 слов) системного стека, расположенного во внутреннем ОЗУ.

Регистр состояния процессора PSW

Бит-адресуемый регистр PSW отображает текущее состояние микроконтроллера С167. Часть битов регистра PSW соответствует состоянию ЦПУ, другая часть - АЛУ. Бит USR0 выполняет функцию пользовательского флага.

Регистр состояния процессора PSW
Рис. 9. Регистр состояния процессора PSW
Бит Функция
N Флаг отрицательного знака при выполнении операции. Устанавливается, если при выполнении операции в АЛУ в результате получается отрицательное число.
C Флаг переноса. Устанавливается, если при выполнении операции в АЛУ был установлен бит переноса.
V Флаг переполнения. Устанавливается, если при выполнении операции в АЛУ имело место переполнение.
Z Флаг равенства результата нулю. Устанавливается, если результатом выполнения последней операции в АЛУ является ноль.
E Флаг конца таблицы. Устанавливается, если операнд-источник команды имел значение 8000h (слово) или 80h (байт).
MULIP Флаг прерывания операций деления и умножения. Устанавливается, если во время обработки прерывания выполнение этих операций было прервано.
0: нет прерывания операции деления или умножения
1: операция умножения или деления была прервана
USR0 Пользовательский флаг. Может устанавливаться или сбрасываться программным обеспечением пользователя.
ILVL,HLDEN,IEN Биты, управляющие прерываниямии арбитражем внешней шины.

Статус АЛУ (флаги N, C, V, Z, E, MULIP)

Флаги регистра PSW N, C, V, Z, и E отражают текущее состояние АЛУ. Их значение изменяется в процессе работы АЛУ микроконтроллера. Во время непосредственного изменения состояния регистра PSW (запись или прямая установка) результат установки PSW предыдущей операцией аннулируется. После выполнения системного сброса биты статуса имеют нулевое значение.

Регистр-указатель команды IP

Регистр IP содержит 16-битовый адрес, по значению которого выполняется выборка команды из области памяти, установленной регистром CSP. Программный доступ к содержимому регистра IP может быть осуществлен только косвенно, при помощи команд перехода или вызова подпрограмм.

Во время работы центрального процессора содержимое регистра IP изменяется автоматически после выполнения выборки команды из памяти.

Регистр-указатель сегмента кода CSP

Регистр CSP содержит 8-битовый адрес сегмента (256 сегментов по 64 Кбайт в каждом), определяющий область памяти, из которой выполняется выборка команды. Если сегментация разрешена, полный адрес определяется содержимым регистров IP (адрес команды) и CSP (сегмент). При запрещенной сегментации адрес определяется содержимым регистра IP в нулевом сегменте.

Программный доступ к содержимому регистра CSP может быть осуществлен только косвенно, при помощи команд JMPS, CALLS или RETS, RETI или при помощи MOV, ADD, но только в режиме чтения.

Адресация через указатель кодового сегмента
Рис. 10. Адресация через указатель кодового сегмента

Регистр-указатели страниц данных DPPx

В командах доступа к памяти в режиме длинной адресации два старших бита 16-битового адреса указывают на один из 4-х регистров (DDP0, DDP1, DDP2, DDP3), в которых содержится старшая часть (страница данных) 18/20/24-разрядного адреса. Младшие 10 бит каждого регистра DDP позволяют адресовать 1024 страницы, каждая из которых имеет объем 16 Кбайт. Старшие 6 бит зарезервированы для следующих модификаций микроконтроллера. Таким образом, физический адрес формируется из 14-битового адреса и 10-битового смещения, хранящегося в одном из регистров DDP, относительно которого указывается адрес. После сброса регистр DDP0 содержит значение 00, DDP1 - 01, DDP1 - 02, DDP1 - 03, что позволяет формировать полный 16 разрядный адрес и обеспечивает доступ к данным объемом 64 Кбайт в нулевом сегменте. www.pornovelik.com угловые диваны с баром каталог фото в Москве Досуг в ТОМСКЕ http://rusex-club.tv смотреть порно онлайн

Доступ к регистрам DPP0…DPP3 невозможен через битовые режимы адресации, т.е. данные регистры не бит-адресуемы.

Адресация через указатели страниц данных
Рис. 11. Адресация через указатели страниц данных

Регистр-указатель контекста CP

Регистр CP предназначен для хранения адреса начала текущего банка регистров общего назначения (GPR). Область банков (GPR) располагается в диапазоне адресов внутреннего ОЗУ (F600h…FDFEh) по четным адресам.

При создании банков необходимо следить за тем, чтобы все регистры GPR располагались в пределах внутреннего ОЗУ микроконтроллера. Регистр CP не является бит-адресуемым.

Для быстрой смены контекста с одновременным сохранением прежнего значения на стеке в системе команд микроконтроллера предусмотрена команда SCXT. Ее удобно использовать в программах обработки прерываний для быстрой смены текущего банка GPR.

Выбор банка регистров с помощью установки регистра CP
Рис. 12. Выбор банка регистров с помощью установки регистра CP

Режим короткой четырехбитовой адресации регистров GPR

Режим короткой четырехбитовой адресации регистров GPR (мнемоническое обозначение: Rw и Rb) определяет адрес регистра GPR относительно базового адреса, находящегося в регистре CP. В зависимости от типа операнда (слово Rw или байт Rb) четырех битовое значение адреса GPR перед сложением со значением, хранящимся в указателе контекста, умножается на 2 при адресации к 2-байтовому регистру или берется без изменения при адресации к байтовому регистру.

Режим короткой восьмибитовой адресации регистров GPR

Режим короткой восьмибитовой адресации регистров GPR (мнемоническое обозначение: reg или bitoff) в диапазоне от F0h до FFh четыре младших бита адресуют регистр GPR как показано выше.

Регистр-указатель вершины стека SP

Регистр SP предназначен для хранения текущего адреса вершины системного стека ЦПУ. При пересылке данных на стек значение регистра SP уменьшается, а при снятии их со стека - увеличивается. Таким образом, своей вершиной стек располагается в сторону уменьшения адреса.

Биты 0, 12, 13, 14, 15-й регистра SP не могут быть изменены при записи, при этом младший бит регистра SP установлен в состояние лог.0, биты 12-15-й в состояние лог.1, что обеспечивает расположение стека в диапазоне адресов F000h…FFFЕh внутреннего ОЗУ.

Регистр SP доступен для операций чтения и записи в режиме непосредственной адресации, но не имеет доступа к битам в режиме битовой адресации.

Регистр-указатель переполнения стека STKOV

Значение регистра STKOV во время выполнения операций со стеком сравнивается со значением регистра SP. Если содержимое регистра SP меньше содержимого регистра STKOV, генерируется прерывание переполнения стека.

Биты 0, 12-15-й регистра STKOV не могут быть изменены при записи, при этом младший бит регистра STKOV установлен в состояние лог.0, биты 12-15-й в состояние лог.1, что обеспечивает расположение границы стека в диапазоне адресов F000h…FFFЕh внутреннего ОЗУ.

Регистр STKOV доступен для операций чтения и записи в режиме непосредственной адресации, но не является бит-адресуемым.

Регистр-указатель дна стека STKUN

Значение регистра STKUN во время выполнения операций со стеком сравнивается со значением регистра SP. Если содержимое регистра SP больше содержимого регистра STKUN, генерируется прерывание исчерпания стека.

Биты 0, 12-15-й регистра STKUN не могут быть изменены при записи, при этом младший бит регистра STKUN установлен в состояние лог.0, биты 12-15-й в состояние лог.1, что обеспечивает расположение дна стека в диапазоне адресов F000h…FFFЕh внутреннего ОЗУ.

Регистр STKUN доступен для операций чтения и записи в режиме непосредственной адресации, но не имеет доступа к битам в режимах битовой адресации.

Регистр умножения/деления MDH

Регистр MDH представляет собой старшую часть 32-битового регистра, предназначенного для выполнения операций умножения и деления. После выполнения операции умножения в регистре MDH хранятся 16 старших разрядов результата.

При выполнении деления 32-битового числа на 16-битовое в регистр MDH помещается старшая 16-битовая часть делимого. После выполнения операции деления в этом регистре хранится 16-битовое значение остатка.

Регистр умножения/деления MDL

Регистр MDL представляет собой младшую часть 32-битового регистра, предназначенного для выполнения операций умножения и деления. После выполнения операции умножения в регистре MDL хранятся 16 младших разрядов результата.

При выполнении деления 32-битового числа на 16-битовое в регистр MDL помещается младшая 16-битовая часть делимого. После выполнения операции деления в этом регистре хранится значение 16-битовое значение частного.

Регистр MDC

MDC - бит-адресуемый регистр, содержит вспомогательную информацию, необходимую при выполнении операций умножения и деления. Значение регистра MDC изменяется во время выполнения операции деления или умножения.

Структурная схема микропроцессора C167
Рис. 13. Структурная схема микропроцессора C167