Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MProc / M9 / Архитектура часть 4..doc
Скачиваний:
18
Добавлен:
16.04.2013
Размер:
430.08 Кб
Скачать

4.8. Символьные строки и подсчет совокупности

Небольшой набор инструкций ускоряет операции над символьными и битовыми полями данных.

4.8.1. Символьные строки

Инструкции вычисления нулевого индекса (czx.l, czx.r) обрабатывают исходный общий регистр либо как восемь 1-байтовых, либо как четыре 2-байтовых элемента и записывают в приемный общий регистр индекс первого найденного нулевого элемента. Если в источнике нет нулевых элементов, то в приемник записывается значение большее, чем максимально возможный индекс (8 для 1-байтовой формы, 4 для 2-байтовой формы). Инструкцияczx.lсканирует источник слева направо, а самый левый элемент имеет индекс 0. Инструкцияczx. rсканирует источник справа налево, а самый правый элемент имеет индекс 0. В табл.4.33 собраны инструкции вычисления нулевого индекса.

Табл. 4.33. Инструкции поддержки строк.

Мнемоника

Действие

1-байт

2-байт

czx.l

Локализует первый нулевой элемент слева направо

х

х

czx.r

Локализует первый нулевой элемент справа налево

х

х

4.8.2. Подсчет совокупности

Инструкции подсчета совокупности (popcnt–populationcount) подсчитывают количество единичных битов в источнике и записывают это значение в приемник.

4.9. Передача уровня привилегий

Три инструкции могут вызвать изменение уровня привилегий: break(прервать),epc(ввести привилегированный код) иbr.ret(переход при возврате их процедуры). Инструкцияbreakопределена для вызова специальной ошибки «Инструкцияbreak», которая может использоваться для передачи уровня привилегий. Инструкцияbreakсодержит непосредственное значение, которое делается доступным специальному обработчику ошибки. Инструкцияepcувеличивает уровень привилегий без вызова прерывания или передачи потока управления. Новый уровень привилегий определяется элементом таблицыTLBдля страницы содержащейepc, если трансляция виртуального адреса для извлечения инструкции допустима. Если уровень привилегий, указываемый полемPFS.ppl(в прикладном регистре предыдущего функционального состояния) ниже, чем текущий уровень привилегий (указываемый полемPSR.cplв регистре состояния процессора), тоepcвызывает ошибку «Нелегальная операция». Инструкция br.retприменяется для понижения уровня привилегий, еслиPFS.pplниже, чемPSR.cpl. Инструкция br.retникогда не будет увеличивать уровень привилегий.

Соседние файлы в папке M9