October 19 2017 19:12:06
Навигация
Авторизация
Логин

Пароль



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

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

Для питания микропроцессора используется напряжение Vn = 3,3В. При тактовой частоте Ft = 100 МГц потребление мощности не превышает 10 Вт. Пониженное энергопотребление (400 мВт) обеспечивается при останове микропроцессора, который осуществляется программно путем установки в регистре MSR значения бита POW = 1. В этом случае прекращается выполнение команд, продолжают работать только базовый таймер ТВ, регистр декремента DEC и блок обслуживания запросов прерывания. Микропроцессор устанавливает выходной сигнал HALTED = 1, информируя о своем останове внешние устройства. Выход из этого состояния происходит при поступлении внешних сигналов прерывания INT#, MCP#, SMI# или начальной установки RESET#, а также при запросе периодичес­кого прерывания от регистра DEC.

Способы адресации и система команд. Микропроцессоры семейства PowerPC используют следующие способы адресации:

•   регистровую;

•   косвенно-регистровую со смещением;

•   косвенно-регистровую с индексированием;

•  относительную;

•   абсолютную;

•   непосредственную.

Все команды арифметических и логических операций, сравнения и сдвигов (табл. 2.65 -2.67) выполняются только с регистровой и непосредственной адресацией. Благодаря этому обеспечивается высокая производительность, так как при обработке данных не требуется выполнять циклов обращения к шине для выбора операндов. Трехадресный формат команд позволяет исключить лишние пересылки данных между регистрами. При этом в качестве rD, гА, гВ указываются номера регистров GPR31-0, определяющие регистр размещения результата (rD) и регистры операндов (rА, rВ). Непосредственный операнд со знаком Sim или без знака Ulm задается 32-разрядным словом, следующим за кодом команды.

Команды загрузки и сохранения содержимого регистров (табл. 2.68) используют при обращении к памяти косвенно-регистровую адресацию со смещением или индексированием. Эффективный адрес операнда ЕА определяется выражениями:

ЕА = (rА! 0) + d32 - при адресации со смещением;

ЕА = (rА! 0) + (rВ) - при адресации с индексированием,

где rА, rВ - номера регистров общего назначения GPR31-1, d32-32 - разрядное смещение. Регистр GPR0 не используется при этих способах адресации: если в качестве номера rА указан нуль, то формируется адрес ЕА = d32 при адресации со смещением, ЕА = (rВ) при адресации с индексированием. Так реализуется прямая (абсолютная) адресация с обращением по заданному в команде адресу d32 и косвенно-регистровая адресация по адресу, заданному содержимым регистра rВ.

Таблица 2.65 Команды арифметических операций

Синтаксис Ассемблера Операция
addi (addis)
add (add., addo, addo.)
addic (addic.)
addc (addc, addco, addco.)
adde (adde., addeo, addeo.)
addme (addme., addmeo, addmeo.)
addze (addze., addzeo, addzeo.)
rD, rA, Slm
rD, rA, rB
rD, rA, Slm
rD, rA, rB
rD, rA, rB
rD, rA
rD, rA
rA|O + Slm -> rD ( сдвиг Sim)
rA + rB -> rD
rA + Sim -> rD, установка СА
rA + rB -» rD, установка СА
rA + rB + CA -» rD, установка СА
rA - 1 + СА -> rD, установка СА
гА + С А —» rD, установка СА
subf (subf., subfo, subfo.)
subfic
subfc (subfc, subfco, subfco.)
subfe (subfe., subfeo, subfeo.)
subfme (subfme., subfmeo, subfmeo.)
subfze (subfze., subfzeo, subfzeo.)
rD, rA, rB rD, rA, Sim rD, rA, rB rD, rA, rB rD, rA rD, rA -rA + rB -> rD
-rA + Sim -> rD, установка СА
-rA + rB -> rD, установка СА
-гА + гВ + СА -> rD, установка СА
-гА -1 + СА -> rD, установка СА
-гА + СА -> rD, установка СА
multimullw (mullw., mullwo.mullwo.)
mulhw (mulhw.)
mulhwu (mulhwu.)
rD, rA, Sim
rD, rA, rB
rD, rA, rB
rD, rA, rB
rA * Sim -> rD, знаковое 16x16
rА * rB -> rD, знаковое 16x16
rА * rB -> rD, знаковое 32x32
rА * rB -> rD, беззнаковое 32x32
divw (divw., divwo, divwo.)
divwu (divwu., divwuo, divwuo.)
rD, rA, rB rD, rA, rB rA/rB -> rD, знаковое 32:32
rА/гВ *-» rD, беззнаковое 32:32
neg (neg., nego, nego.) rD, rA -rA -> rD
extsb (extsb.)
extsh (extsh.)
rD, rS
rD, rS
rS (мл. байт) —> rD
rS (мл. п/слова) —> rD_
Расширение знаком

Команды ветвления (табл. 2.69) используют прямую или относительную адресацию. При этом адресом перехода служит указанный в команде адрес t-adr или сумма (PC + t-adr).

Все команды микропроцессора имеют 32-разрядный формат кода операции. При использовании непосредственной адресации после кода команды следует 32-разрядный операнд. В командах, использующих косвенно-регистровую адресацию со смещением, после кода операции следует 32-разрядное смещение, а в командах ветвления - 32-разрядный адрес t-adr. Таким образом, все команды содержат 4 или 8 байтов.

Команды арифметических операций (табл. 2.65) имеют ряд модификаций, отличающихся формированием признаков по результатам операций. Если после мнемокода операции идет символ «.», то по результатам операции устанавливаются соответствующие значения битов SO, EQ, GT, LT в поле CR0 регистра CR (рис. 2.67, а). Если мнемокод команды имеет суффикс «о», то по результату ее выполнения устанавливаются биты OV, SO в регистре XER (рис. 2.67, б), при этом бит SO дублируется в поле CR0. Команды сложения addic, addc, adde, addme, addze и вычитания subfc, subfic, subfe, subfme, subfze вызывают установку признака переноса СА в регистре XER по результату операции. Команда addi при значении rА = 0 производит загрузку непосредственного операнда со знаком Sim в регистр rD, а при rА =/0 выполняет сложение этого операнда с содержимым регистра гВ. Команда непосредственного сложения со сдвигом addis производит при rА =/ 0 сложение содержимого гА с непосредственным операндом Sim, сдвинутым на четыре разряда влево, а при rА = 0 загружает сдвинутый операнд Sim в регистр rD.

Команды умножения и деления могут оперировать с операндами без знака и со знаком. При знаковом умножении 16-разрядных операндов (команды mulli, mullw) в регистре rD размещается 32-разрядный результат. При умножении 32-разрядных чисел со знаком (команда mulhw) или без знака (команда mulhwu) в регистр rD поступают старшие 32 разряда результата, а в следующий регистр с номером (rВ + 1) - младшие 32 разряда. При делении 32-разрядных чисел со знаком (команда divw) или без знака (команда divwu) в регистр rD заносится 32-разрядное частное.

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

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

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

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