2.5.2. Форматы команд и способы адресации в RISC-процессорах
К оглавлению1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1617 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
34 35 36 37 38 39 40 41 42 43 44 45
Рассмотрим архитектурные особенности на примере процессора R3000. Этот процессор строится на основе СБИС 32-разрядного центрального процессора, арифметического сопроцессора и буфера записи.
Система команд включает 74 команды, которые можно разделить на 6 групп: загрузки/запоминания, операционные, переходов, работы с сопроцессором, управления системой и специальные.
Все команды имеют длину 32 бита и могут быть трех форматов:
I - команды с непосредственным операндом и обращения к памяти
KOП(6);Rs(5);Rt(5);I(16),
где Kg, R, - номера регистров, I - непосредственный операнд или смещение;
J - для команд переходов;
КОП (6); АДРЕС ПЕРЕХОДА (26);
R - для операционных команд;
КОП (6); Rs(5); Rt(5); Rd(5); Rl,(5); FUNC (6).
Операционные команды служат для выполнения арифметических, логических операций и сдвигов. Операционные команды используют как R-формат (команды типа регистр-регистр), так и 1-формат (команды регистр - непосредственный операнд). Предусмотрены 8 команд целочисленного умножения и деления.
Команды загрузки/запоминания обеспечивают обмен данными между регистрами общего назначения и памятью. Адреса памяти формируются с использованием базового регистра и 16-разрядного смещения (1-формат).
Безусловные переходы выполняются либо по косвенному адресу (R-формат), либо по прямому адресу (J-формат). В последнем случае старшие биты адреса переходов добавляются из счетчика команд.
Команды управления системой обеспечивают работу с виртуальной памятью.
Команды работы с сопроцессором являются дополнительными, их форматы и состав зависят or типа используемого сопроцессора.
Рассмотрим архитектурные особенности на примере процессора R3000. Этот процессор строится на основе СБИС 32-разрядного центрального процессора, арифметического сопроцессора и буфера записи.
Система команд включает 74 команды, которые можно разделить на 6 групп: загрузки/запоминания, операционные, переходов, работы с сопроцессором, управления системой и специальные.
Все команды имеют длину 32 бита и могут быть трех форматов:
I - команды с непосредственным операндом и обращения к памяти
KOП(6);Rs(5);Rt(5);I(16),
где Kg, R, - номера регистров, I - непосредственный операнд или смещение;
J - для команд переходов;
КОП (6); АДРЕС ПЕРЕХОДА (26);
R - для операционных команд;
КОП (6); Rs(5); Rt(5); Rd(5); Rl,(5); FUNC (6).
Операционные команды служат для выполнения арифметических, логических операций и сдвигов. Операционные команды используют как R-формат (команды типа регистр-регистр), так и 1-формат (команды регистр - непосредственный операнд). Предусмотрены 8 команд целочисленного умножения и деления.
Команды загрузки/запоминания обеспечивают обмен данными между регистрами общего назначения и памятью. Адреса памяти формируются с использованием базового регистра и 16-разрядного смещения (1-формат).
Безусловные переходы выполняются либо по косвенному адресу (R-формат), либо по прямому адресу (J-формат). В последнем случае старшие биты адреса переходов добавляются из счетчика команд.
Команды управления системой обеспечивают работу с виртуальной памятью.
Команды работы с сопроцессором являются дополнительными, их форматы и состав зависят or типа используемого сопроцессора.