December 17 2017 04:27:27
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
таблицы истории ветвлений ВНТ
ФОРМАТЫ ПРЕДСТАВЛЕНИЯ ДАННЫХ И ВЫПОЛНЕНИЕ ОПЕРАЦИЙ

При выполнении команд bectr, bcctrl в программный счетчик PC загружается содержимое регистра CTR, если выполняется условие ВО = CRi. Команда bcctrl обеспечивает сохранение текущего содержимого PC в регистре связи LR.

При условных ветвлениях программист может указать на повышенную вероятность ветвления, задав значение «1», для пятого бита операнда ВО. В этом случае блок обработки ветвления BPU обеспечит выборку в конвейер следующих команд в соответствии с данным предсказанием. Такой способ предсказания ветвлений называется статическим. При нулевом значении пятого бита в операнде ВО блок BPU осуществляет динамическое предсказание ветвлений с помощью кэша адресов ВТАС и таблицы истории ветвлений ВНТ.

Команды программных прерываний tw, twi производят условное обращение к подпрограмме обслуживания, вектор которой Ve размещен по адресу Av = $00700 (см. табл. 2.64). Текущее содержимое PC и MSR сохраняется в регистрах SRRO, SRR1. Условием обращения является совпадение признаков в поле CR0, устанавливаемых при сравнении содержимого регистра гА с непосредственным операндом Sim (команда twi) или с содержимым регистра гВ (команда tw), с битами заданного в команде 4-разрядного операнда ТО. Прерывание реализуется, если хотя бы один из установленных в «1» признаков в CR0 совпадает с соответствующим битом ВО. Содержимое rA, rB и операнд Sim представляются при сравнении числами со знаком.

Команда sc осуществляет вызов системного прерывания с подпрограммой обслуживания, вектор которой Ve размещен по адресу Av = $00С00 (см. табл. 2.64). Команда rfi реализует возврат из прерывания, при котором из регистров SRR0, SRR1 восстанавливается содержимое программного счетчика PC и регистра управления MSR, обеспечивая возвращение к выполнению прерванной программы. Команда rfi может выполняться только в режиме супервизора, так как она изменяет содержимое регистра MSR.

При выполнении команд условных переходов используется содержимое различных полей регистра условий CR. Различные операции с содержимым этого регистра реализуются с помо­щью специальных команд (табл. 2.70). Команда mtcrf производит загрузку в CR содержимого регистра rS, которое логически умножается на 32-битовую маску, заданную в команде. Эта команда устанавливает требуемые значения содержимого CR или его немаскированных полей. Пересылка содержимого CR в регистр rD производится командой mfcr. Команда mcrxr копирует четыре младших бита из регистра исключений XER (признаки SO, OV, СА, рис. 2.67, а) в поле CRi регистра CR, где номер поля i задается операндом crfD. После копирования признаки SO, OV, СА в регистре XER принимают значение «0». Команда mcrf копирует содержимое поля CRi в поле CRj, где значения i, j задаются операндами crfS, crfD.

Ряд команд выполняет логические операции над отдельными битами bi, bj содержимого регистра CR (табл. 2.70). Номера i, j этих битов задаются операндами crbA, crbB, результат операции размещается в бите bk, номер которого к определяется операндом crbD. Данные команды обеспечивают выполнение операций И (crand), ИЛИ (сгог), Исключающее ИЛИ (crxor), НЕ/И (crnand), НЕ/ИЛИ (cmor), Эквивалентность (creqv), Запрет (crandc), Импликация (сгогс).

В группу служебных команд (табл. 2.71) входят команды пересылки содержимого служебных регистров. Команды mtmsr, mfmsr, пересылки содержимого регистра управления MSR выполняются только в режиме супервизора. Команды mtspr, mfspr осуществляют пересылку содержимого служебных регистров SPRi, номер которых i задается операндом SPR. Большинство служебных регистров входит в модель супервизора (см. рис. 2.68), поэтому обращение к ним допускается только в режиме супервизора. Исключение составляют регистры XER (SPR1), LR (SPR8), CTR (SPR9), входящие в модель пользователя (см. рис. 2.66). Обращение к этим регистрам осуществляется командами mtspr, mfspr, выполняемыми в режиме пользователя, при значениях операнда SPR =1,8 или 9. Команда mftb производит считывание в регистр rD старшего (TBU) или младшего (TBL) слова из базового таймера.

Команды Iwarx, stwcx. обычно используются совместно. При этом задаются одинаковые значения гА, гВ и rD = rS. Команда Iwarx загружает операнд из памяти в регистр rD, а команда stwcx. возвращает его обратно по тому же адресу ЕА = (rA!0) + (rВ), устанавливая в поле CR0 соответствующие признаки EQ, GT, LT. Если же перед командой stwcx. произошла новая загрузка rD или запись по адресу ЕА, то эта команда не вызовет каких-либо операций. Данная пара команд обычно используется операционной системой для проверки значений программных «семафоров», аналогично команде TAS в микропроцессорах семейства М68ххх. При поступлении этих команд на внешних выводах микропроцессора, определяющих тип выполняемого цикла, устанавливается определенная комбинация сигналов, которая должна запретить другим устройствам обращение к общей шине до завершения их выполнения.

RN - определяет вид выполняемого округления: к ближайшему числу (RN = 00), к нулю (RN = 01), к + ~ (RN = 10) или к - ~ (RN = 11).

0 1 2 3 4 5 6 7 8 g 10 11 12 13 14 15
FX FEX VX ОХ UX ZX XX VX SNAN VX ISI VX IDI VX ZDZ VX IMZ VXVC FR F1 ®
FPRF (FPCC) - VX SOFT VX SQFT VX CVI VE DE UE ZE XE NI RN
16

19 20 21 22 23 24 25 26 27 28 29 30 31

Рис. 2.71. Формат содержимого регистра FPSR

Таблица 2.72

Содержимое полей FPRF, FPCC в регистре FPSCR при выполнении операций FPU tyle="font-size:12pt;">При операциях сравнения (команды fcmpu, fcmpo) производится сравнение содержимого указанных в команде регистров frA, frB и установка соответствующих признаков в поле CRi регистра условий CR (см. рис. 2.67, а), номер которого i определяется операндом crfD (табл. 2.74). Два варианта операции сравнения, выполняемые FPU, отличаются установкой значений признаков исключений в регистре FPSCR. Команда fcmpu устанавливает значение признака VXSNAN = 1, если какой-либо из сравниваемых операндов является не-числом SNAN. Команда fcmpo в этом случае тоже устанавливает значение VXSNAN = 1, а если исключения при неправильном результате операции не разрешены (в регистре FPSCR бит VE = 0), то устанавливается также признак VXVC. Если же операндом является не-число QNAN, то устанавливается только признак VXVC = 1.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.01 секунд 2,298,852 уникальных посетителей