Форматы команд и способы адресации в RISC-процессорах
Рассмотрим архитектурные особенности на примере процессора 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 типа используемого сопроцессора.