RISC5 — архитектура набора команд виртуальной машины, разработанная швейцарским компьютерным учёным Никлаусом Виртом в Швейцарской высшей технической школе Цюриха (ETH Zurich). Архитектура была создана специально для поддержки языков программирования семейства Паскаль/Модула/Оберон и операционной системы Оберон.
История создания RISC5 была разработана в конце 1980-х — начале 1990-х годов в рамках проекта Оберон под руководством Никлауса Вирта в ETH Zurich. Проект был частью исследований по созданию простой, элегантной и эффективной компьютерной системы, которая демонстрировала бы принципы хорошего дизайна как в аппаратном, так и в программном обеспечении.
Архитектура создавалась с учётом потребностей языков высокого уровня семейства Паскаль, включая сам Паскаль, Модула-2 и Оберон. Особое внимание уделялось поддержке структурного программирования и модульности — ключевых принципов, продвигаемых Виртом.
Архитектура RISC-5 следует принципам RISC-архитектуры (Reduced Instruction Set Computer), предполагающим использование простого и регулярного набора команд.
Регистры 16 регистров общего назначения (R0-R15)
Регистр R15 используется как указатель стека
Регистр R14 часто используется как регистр связи (link register)
Система команд Все команды имеют фиксированную длину 32 бита
Простой и ортогональный набор команд
Поддержка основных арифметических и логических операций opКомандаДействиеКомментарий1MOV a, nR.a := n2LSL a, b, nR.a := R.b ← n shift left by n bits3ASR a, b, n R.a := R.b → n shift right by n bits with sign extension4ROR a, b, n R.a := R.b rot n rotate right by n bits5AND a, b, n R.a := R.b & nlogical operations6ANN a, b, n R.a := R.b & ~n7IOR a, b, n R.a := R.b or n8XOR a, b, n R.a := R.b xor n9ADD a, b, n R.a := R.b + n integer arithmetic10SUB a, b, n R.a := R.b – n11MUL a, b, n R.a := R.a х n12DIV a, b, n R.a := R.b div n13FAD a, b, c R.a := R.b + R.c floating-point arithmetic14FSB a, b, c R.a := R.b – R.c15FML a, b, c R.a := R.a х R.c16FDV a, b, c R.a := R.b / R.c при v = 0 extension of im with 16 zero bits
при v = 1 extension of im with 16 one bits +Формат F0444412400u0 abopc +Формат F144441601uv abopimm N := bit 31 of result. Hence, N indicates whether the result is negative.
Z := all bits of result zero. Z indicates whether the result is zero.
C := carry out bit. (For addition and subtraction only).
V := overflow. (For addition and subtraction only)
Команды загрузки и сохранения для работы с памятью
Команды условных и безусловных переходов
Адресация памяти Простая модель памяти
Поддержка различных режимов адресации
Эффективная работа с массивами и структурами данных
Примечания
Категория:Обработка команд Категория:Архитектура компьютеров