OpenRISC | |
---|---|
Desarrollador | núcleos abiertos |
Profundidad de bits | 32, 64 |
Arquitectura | RISC |
codificación SK | fijo (32 bits) |
¿abierto? | Sí, LPL |
Registros | |
Total | 16 o 32 GPR |
OpenRISC es un microprocesador de arquitectura RISC de fuente abierta en el lenguaje de descripción de hardware Verilog . El proyecto fue creado por la comunidad OpenCores y distribuido bajo la licencia GNU LGPL . OpenRISC se implementa en hardware y se produce con éxito en forma de circuitos integrados y FPGA .
Una única versión de la arquitectura, OpenRISC 1000 (o 1k), describe una familia de procesadores de 32 y 64 bits con extensiones opcionales: soporte para cálculos en números de punto flotante y soporte para operaciones vectoriales. [una]
El equipo de desarrollo de OpenCores publicó la primera implementación, OpenRISC 1200 , escrita en lenguaje Verilog . La parte de hardware del proyecto está licenciada bajo la LGPL, los modelos y el firmware están bajo la GPL. La implementación del sistema en chip con OpenRISC 1200 se llama ORPSoC ( OpenRISC Reference Platform System-on-Chip ). El rendimiento del ORPSoC y otras variantes del OR1200 se ha demostrado en FPGA . [2] [3]
La cadena de herramientas de GNU está portada a OpenRISC y es compatible con varios lenguajes de programación , así como con Linux y μClinux .
OpenRISC ha sido compatible con el kernel de Linux desde la versión 3.1.
El conjunto de instrucciones (ORBIS32) es una variante simple de RISC, similar a MIPS , y utiliza instrucciones de tres operandos de longitud fija (32 bits). Trabajar con la memoria solo es posible con la ayuda de las operaciones de carga y almacenamiento. Están disponibles 16 o 32 registros de propósito general. Las versiones de instrucciones de 64 y 32 bits son similares en muchos aspectos, las principales diferencias son: aumentar el tamaño del registro a 64 bits y cambiar el formato de la tabla de páginas.
Las especificaciones de OpenRISC también incluyen características modernas: modo supervisor, memoria virtual, la capacidad de establecer derechos de lectura/modificación/ejecución para cada página de memoria, instrucciones atómicas, manejo de excepciones entre procesadores.
ORFP32X - Extensión de coma flotante (IEEE-754)
A partir de octubre de 2011, existen algunas ambigüedades en la especificación del modo de 64 bits.
Se puede implementar soporte opcional para operaciones SIMD .
La mayoría de las veces se implementa en FPGA (se recomienda FPGA que contenga más de 40 mil 4-LUT).
Los miembros del proyecto OpenCores iban a lanzar un chip personalizado (ASIC) compatible con OpenRISC 1000 para obtener más rendimiento. [4] En 2011, comenzó la recaudación de fondos. [5]
ORSoC ofrece opciones ORC32-1208, Beyond Semiconductor - BA12, BA14, BA22.
Flextronics International y Jennic Limited utilizaron el núcleo OpenRISC como parte de sus propios ASIC. Samsung utiliza OpenRISC 1000 en DTV SoC (SDP83 B-Series, SDP92 C-Series, SDP1001/SDP1002 D-Series, SDP1103/SDP1106 E-Series). [6]
Allwinner Technology utilizó OpenRISC en el controlador AR100, que forma parte del SoC A31 (el procesador principal del sistema es ARM). [7]
Cadence Design Systems utiliza OpenRISC como arquitectura de referencia en la documentación (por ejemplo, para el flujo de referencia de UVM [8] ) .
La computadora experimental de nanosatélites TechEdSat , creada en la NASA usando OpenRISC, fue lanzada en la ISS en julio de 2012. [9] [10]
La Universidad Técnica de Múnich utiliza OpenRISC en la investigación multinúcleo (director: Stefan Wallentowitz ). [once]
En 2013 se presentó el proyecto jor1k, un emulador de OpenRISC 1000 escrito en JavaScript capaz de ejecutar Linux y el Sistema X Window o Wayland . [12]
Compatible con GCC para C y C++, libc es newlib o uClibc . Dynalith proporciona OpenIDEA, un entorno de desarrollo . En 2012, se inició un proyecto para portar LLVM a OpenRISC 1000 [13] .
El proyecto OR1K proporciona el simulador or1ksim . La implementación principal, OR1200, se puede utilizar como modelo RTL. Hay un modelo SystemC ORPSoC con precisión de reloj.
Imperas vende el modelo OpenRISC 1200 de alta velocidad como Open Virtual Platforms .
Kernel de Linux desde la versión 3.1. [14] (procesadores de 32 bits OpenRISC 1000 - or1k). [quince]
QEMU ha soportado la arquitectura desde la versión 1.2 [16] .
Arquitecturas de procesador basadas en tecnologías RISC | |
---|---|