All Projects → mrisc32 → mrisc32

mrisc32 / mrisc32

Licence: CC-BY-SA-4.0 license
MRSIC32 ISA documentation and development

Programming Languages

TeX
3793 projects
python
139335 projects - #7 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to mrisc32

mrisc32-a1
A pipelined, in-order, scalar VHDL implementation of the MRISC32 ISA
Stars: ✭ 21 (-75.86%)
Mutual labels:  cpu, risc, mrisc32
FPGACosmacELF
A re-creation of a Cosmac ELF computer, Coded in SpinalHDL
Stars: ✭ 31 (-64.37%)
Mutual labels:  cpu, risc
Wgcloud
linux运维监控工具,支持系统信息,内存,cpu,温度,磁盘空间及IO,硬盘smart,系统负载,网络流量等监控,API接口,大屏展示,拓扑图,进程监控,端口监控,docker监控,文件防篡改,日志监控,数据可视化,web ssh,堡垒机,指令下发批量执行,linux面板,探针,故障告警
Stars: ✭ 2,669 (+2967.82%)
Mutual labels:  cpu
COExperiment Repo
支持 45 条 MIPS 指令的单周期处理器 -- 计算机组成原理实验 NUAA Spring 2017
Stars: ✭ 23 (-73.56%)
Mutual labels:  cpu
8bit Cpu
Schematics & code for my 74LS-based 8-bit MK1 CPU
Stars: ✭ 232 (+166.67%)
Mutual labels:  cpu
Ios Monitor Platform
📚 iOS 性能监控 SDK —— Wedjat(华狄特)开发过程的调研和整理
Stars: ✭ 2,316 (+2562.07%)
Mutual labels:  cpu
Pm2 Server Monit
Monitor server CPU / Memory / Process / Zombie Process / Disk size / Security Packages / Network Input / Network Output
Stars: ✭ 247 (+183.91%)
Mutual labels:  cpu
Kimera Vio Ros
ROS wrapper for Kimera-VIO
Stars: ✭ 182 (+109.2%)
Mutual labels:  cpu
platform-shakti
Shakti: development platform for PlatformIO
Stars: ✭ 26 (-70.11%)
Mutual labels:  risc
S Tui
Terminal-based CPU stress and monitoring utility
Stars: ✭ 2,825 (+3147.13%)
Mutual labels:  cpu
Mipt Mips
Cycle-accurate pre-silicon simulator of RISC-V and MIPS CPUs
Stars: ✭ 250 (+187.36%)
Mutual labels:  cpu
Pubg mobile memory hacking examples
Pubg Mobile Emulator Gameloop Memory Hacking C++ code examples. Ex: Name, Coord, Bones, Weapons, Items, Box, Drop etc.
Stars: ✭ 224 (+157.47%)
Mutual labels:  cpu
Etl
Blazing-fast Expression Templates Library (ETL) with GPU support, in C++
Stars: ✭ 190 (+118.39%)
Mutual labels:  cpu
Xps15 9560 Bigsur
XPS15-9560-Catalina, Q群:161385229
Stars: ✭ 247 (+183.91%)
Mutual labels:  cpu
Cacule Cpu Scheduler
The CacULE CPU scheduler is based on interactivity score mechanism. The interactivity score is inspired by the ULE scheduler (FreeBSD scheduler).
Stars: ✭ 185 (+112.64%)
Mutual labels:  cpu
Advanced-xv6
Modern improvements for MIT's xv6 OS
Stars: ✭ 26 (-70.11%)
Mutual labels:  cpu
Easy Monitor
企业级 Node.js 应用性能监控与线上故障定位解决方案
Stars: ✭ 2,451 (+2717.24%)
Mutual labels:  cpu
Openseeface
Robust realtime face and facial landmark tracking on CPU with Unity integration
Stars: ✭ 216 (+148.28%)
Mutual labels:  cpu
Forth Cpu
A Forth CPU and System on a Chip, based on the J1, written in VHDL
Stars: ✭ 244 (+180.46%)
Mutual labels:  cpu
ff
Find Text or File
Stars: ✭ 24 (-72.41%)
Mutual labels:  cpu

MRISC32

This is an open and free 32-bit RISC/Vector instruction set architecture (ISA), primarily inspired by the Cray-1 and MIPS architectures. The focus is to create a clean, modern ISA that is equally attractive to software, hardware and compiler developers.

This repository contains LaTeX documentation and databases of architectural information (e.g. instructions and system registers).

Documentation

The latest MRISC32 Instruction Set Manual (PDF) describes the MRISC32 ISA in detail.

Overview documents:

Features

  • Unified scalar/vector/integer/floating-point ISA.
  • There are two register files:
    • R0-R31: 32 scalar registers, each 32 bits wide.
      • Three registers have special meaning in hardware: Z, LR, VL.
      • 29 registers are general purpose (of which three are reserved by the ABI: SP, FP, TP).
      • All registers can be used for all types (integers, addresses and floating-point).
    • V0-V31: 32 vector registers, each with at least 16 32-bit elements.
      • All registers can be used for all types (integers, addresses and floating-point).
  • All instructions are 32 bits wide and easy to decode.
  • Most instructions are non-destructive 3-operand (two sources, one destination).
  • All conditionals are based on register content.
    • There are no condition code flags (carry, overflow, ...).
    • Compare instructions generate bit masks.
    • Branch instructions can act on bit masks (all bits set, all bits zero, etc) as well as signed quantities (less than zero, etc).
    • Bit masks are suitable for masking in conditional operations (for scalars, vectors and packed data types).
  • Powerful addressing modes:
    • Scaled indexed load/store (x1, x2, x4, x8).
    • Gather-scatter and stride-based vector load/store.
    • PC-releative and absolute load/store:
      • ±4 MiB range with one instruction.
      • Full 32-bit range with two instructions.
    • PC-relative and absolute branch:
      • ±4 MiB range with one instruction.
      • Full 32-bit range with two instructions.
  • Many traditional floating-point operations can be handled in whole or partially by integer operations, reducing the number of necessary instructions:
    • Load/store.
    • Branch.
    • Sign and bit manipulation (e.g. neg, abs).
  • Vector operations use a Cray-like model:
    • Vector operations are variable length (1-N elements).
    • Most integer and floating-point instructions come in both scalar and vector variants.
    • Vector instructions can use both vector and scalar operands (including immediate values), which removes the overhead for transfering scalar data into vector registers.
  • In addition to vector operations, there are also packed operations that operate on small data types (byte and half-word).
  • Fixed point operations are supported:
    • Single instruction multiplication of Q31, Q15 and Q7 fixed point numbers.
    • Single instruction conversion between floating-point and fixed point.
    • Saturating and halving addition and subtraction.

Note: There is no support for 64-bit floating-point operations (that is left for a 64-bit version of the ISA).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].