OpenRISC es un proyecto para desarrollar una serie de unidades de procesamiento central (CPU) basadas en hardware de código abierto sobre los principios establecidos de la computadora de conjunto de instrucciones reducidas (RISC). Incluye una arquitectura de conjunto de instrucciones (ISA) que utiliza una licencia de código abierto . Es el proyecto insignia original de la comunidad OpenCores .
Diseñador | Originalmente Damjan Lampret, ahora la Comunidad OpenRISC (Stafford Horne, etc.) |
---|---|
Bits | 32 bits , 64 bits |
Introducido | 2000 |
Versión | 1.3 [1] |
Diseño | RISC |
Codificación | Reparado |
Endianidad | Grande; talón no implementado para Little |
Tamaño de página | 8 KiB |
Extensiones | ORFPX32 / 64, [2] ORVDX64 [3] |
Abierto | Sí (LGPL / GPL), por lo tanto, libre de regalías |
Registros | |
Propósito general | 16 o 32 |
Punto flotante | Opcional |
La primera [actualizar]descripción arquitectónica (y solo a partir de 2019 ) es para OpenRISC 1000 ("OR1k"), que describe una familia de procesadores de 32 y 64 bits con soporte opcional de procesamiento de vectores y aritmética de punto flotante . [4] La implementación OpenRISC 1200 de esta especificación fue diseñada por Damjan Lampret en 2000, escrita en el lenguaje de descripción de hardware Verilog (HDL). [5] La implementación posterior de mor1kx , que tiene algunas ventajas en comparación con el OR 1200, [6] fue diseñada por Julius Baxter y también está escrita en Verilog. Además existen simuladores de software, [7] que implementan la especificación OR1k.
El diseño de hardware se lanzó bajo la GNU Lesser General Public License (LGPL), respectivamente la Open Hardware Design License (OHDL), mientras que los modelos y el firmware se lanzaron bajo la GNU General Public License (GPL).
Se desarrolló una implementación de sistema de referencia en un chip (SoC) basada en OpenRISC 1200, denominada OpenRISC Reference Platform System-on-Chip (ORPSoC). Varios grupos han demostrado ORPSoC y otros diseños basados en OR1200 que se ejecutan en arreglos de puertas programables en campo (FPGA), [8] [9] y se han producido varios derivados comerciales.
Los diseños de SoC posteriores, también basados en una implementación de CPU OpenRisc 1000, son FuseSoC, minSoC, OpTiMSoC y MiSoC. [10]
Conjunto de instrucciones
El conjunto de instrucciones es una arquitectura MIPS razonablemente simple , como el RISC tradicional que usa una arquitectura de almacenamiento de carga de 3 operandos, con 16 o 32 registros de propósito general y una longitud de instrucción fija de 32 bits. El conjunto de instrucciones es prácticamente idéntico entre las versiones de 32 y 64 bits de la especificación, siendo la principal diferencia el ancho del registro (32 o 64 bits) y el diseño de la tabla de páginas. La especificación OpenRISC incluye todas las características comunes a los procesadores de servidor y de escritorio modernos: un modo supervisor y un sistema de memoria virtual, control opcional de lectura, escritura y ejecución para las páginas de memoria e instrucciones para la sincronización y el manejo de interrupciones entre múltiples procesadores.
Otra característica notable es un amplio conjunto de instrucciones de una sola instrucción, múltiples datos ( SIMD ) destinadas al procesamiento de señales digitales .
Implementaciones
La mayoría de las implementaciones están en arreglos de puertas programables en campo (FPGA) que brindan la posibilidad de iterar en el diseño a costa del rendimiento.
En el año 2018, la OpenRISC 1000 se considera estable, por lo ORSoC (propietario de OpenCores) comenzó una crowdfunding proyecto para construir una rentable circuito integrado de aplicación específica (ASIC) para conseguir un rendimiento mejorado. ORSoC enfrentó críticas por esto de la comunidad. [ cita requerida ] El proyecto no alcanzó la meta.
A junio de 2021[actualizar], no se ha producido ningún ASIC de código abierto.
Implementaciones comerciales
Varias organizaciones comerciales han desarrollado derivados de la arquitectura OpenRISC 1000, incluido el ORC32-1208 de ORSoC y el BA12, BA14 y BA22 de Beyond Semiconductor. Dynalith Systems proporciona la placa de creación de prototipos iNCITE FPGA, que puede ejecutar tanto OpenRISC 1000 como BA12. Flextronics (Flex) y Jennic Limited fabricaron OpenRISC como parte de un circuito integrado de aplicación específica (ASIC). Samsung usa OpenRISC 1000 en su sistema DTV en chips (SDP83 B-Series, SDP92 C-Series, SDP1001 / SDP1002 D-Series, SDP1103 / SDP1106 E-Series). [11] Se informa que Allwinner Technology utiliza un núcleo OpenRISC en su controlador de potencia AR100, que forma parte del SoC basado en ARM A31. [12]
Cadence Design Systems ha comenzado a utilizar OpenRISC como arquitectura de referencia para documentar los flujos de la cadena de herramientas (por ejemplo, el flujo de referencia de UVM, ahora contribuido a Accellera ). [13]
TechEdSat , la primera computadora Linux basada en la arquitectura OpenRISC de la NASA, se lanzó en julio de 2012 y se implementó en octubre de 2012 en la Estación Espacial Internacional con hardware proporcionado, construido y probado por ÅAC Microtec y ÅAC Microtec North America. [14] [15] [16]
Uso académico y no comercial
Al ser de código abierto, OpenRISC ha demostrado ser popular en los círculos académicos y aficionados. Por ejemplo, Stefan Wallentowitz [17] y su equipo en el Instituto de Sistemas Integrados de la Technische Universität München han utilizado OpenRISC en la investigación de arquitecturas de procesadores multinúcleo . [18] El Grupo de usuarios de hardware de código abierto ( OSHUG ) en el Reino Unido ha realizado en dos ocasiones [19] [20] sesiones en OpenRISC, mientras que el aficionado Sven-Åke Andersson ha escrito un blog completo sobre OpenRISC para principiantes, [21] que atrajo el interés de Electronic Engineering Times ( EE Times ). [22] Sebastian Macke ha implementado jor1k, un emulador OpenRISC 1000 en JavaScript , ejecutando Linux con X Window System y soporte Wayland . [23]
Soporte de cadena de herramientas
La comunidad OpenRISC ha portado la cadena de herramientas GNU a OpenRISC para apoyar el desarrollo en los lenguajes de programación C y C ++ . Usando esta cadena de herramientas , las bibliotecas newlib , uClibc , musl (a partir de la versión 1.1.4) y glibc se han trasladado al procesador. Dynalith proporciona OpenIDEA, un entorno de desarrollo integrado gráfico (IDE) basado en esta cadena de herramientas. Un proyecto para trasladar LLVM a la arquitectura OpenRISC 1000 comenzó a principios de 2012. [24]
GCC 9 lanzado con soporte OpenRISC. [1]
El proyecto OR1K proporciona un simulador de conjunto de instrucciones , or1ksim. La implementación insignia, el OR1200, es un modelo de nivel de transferencia de registro (RTL) en Verilog HDL, a partir del cual se puede construir un modelo de precisión de ciclo basado en SystemC en ORPSoC. Un modelo de alta velocidad de OpenRISC 1200 también está disponible a través de la iniciativa Open Virtual Platforms (OVP) (ver OVPsim ), creada por Imperas.
Soporte del sistema operativo
Soporte Linux
El kernel principal de Linux ganó soporte para OpenRISC en la versión 3.1. [25] La implementación fusionada en esta versión es la familia OpenRISC 1000 de 32 bits (or1k). [26] Anteriormente arquitectura OpenRISC 1000, ha sido reemplazada por el puerto de línea principal.
Soporte RTOS
Se han adaptado varios sistemas operativos en tiempo real (RTOS) a OpenRISC, incluidos RTEMS , FreeRTOS y eCos .
Soporte QEMU
Desde la versión 1.2, QEMU admite la emulación de plataformas OpenRISC. [27]
Ver también
- Ámbar (núcleo del procesador) - Proyecto OpenCores compatible con ARM
- Fundación de silicio de código abierto y gratuito
- OpenRISC 1200
- OVPsim , plataformas virtuales abiertas
- OpenSPARC
- LEÓN
- LatticeMico32
- RISC-V
Referencias
- ^ "Versiones publicadas" . Consultado el 28 de marzo de 2021 .
- ^ "Extensiones de coma flotante que operan en 32 bits / 64 bits" . Consultado el 28 de marzo de 2021 .
- ^ "Extensiones Vector / DSP (SIMD) que operan en datos de 8, 16, 32 y 64 bits" . Consultado el 28 de marzo de 2021 .
- ^ OpenRisc.io https://openrisc.io/architecture . Consultado el 17 de abril de 2021 . Falta o vacío
|title=
( ayuda ) - ^ Clarke, Peter (28 de febrero de 2000). "El núcleo del procesador de 32 bits gratuito llega a la red" . Tiempos de Ingeniería Electrónica ( EE Times ) . San Francisco , California, Estados Unidos: AspenCore Media . Consultado el 21 de marzo de 2019 .
- ^ OpenRisc.io https://openrisc.io/implementations#mor1kx . Consultado el 17 de abril de 2021 . Falta o vacío
|title=
( ayuda ) - ^ OpenRisc.io https://openrisc.io/implementations#system-simulators . Consultado el 17 de abril de 2021 . Falta o vacío
|title=
( ayuda ) - ^ Pelgrims, Patrick; Tierens, Tom; Driessens, Dries (2004). "Tutorial básico de hardware del sistema OpenRISC personalizado: diseño de sistema integrado basado en FPGAs Soft y Hardcore" (PDF) . De Nayer Instituut . 1.0. Archivado desde el original (PDF) el 27 de noviembre de 2006 . Consultado el 3 de marzo de 2009 .
- ^ Li, Xiang; Zuo, Lin. Plataforma embebida de código abierto basada en OpenRISC y DE2-70 (Masters). KTH Real Instituto de Tecnología (KTH), Suecia. Archivado desde el original el 6 de octubre de 2011., Programa SoC
- ^ OpenRisc.io https://openrisc.io/soc . Consultado el 17 de abril de 2021 . Falta o vacío
|title=
( ayuda ) - ^ Samsung Open Source Release Center , siga los enlaces → TV y VIDEO → TV → DTV → ETC → OR1200.zip
- ^ Página wiki de la comunidad del proyecto Linux-sunxi en el controlador AR100 . Consultado el 20 de julio de 2013.
- ^ Flujo de referencia de UVM , sitio web de Accellera (sin fecha).
- ^ Publicar en las listas de distribución de openrisc en lists.openrisc.net el 8 de abril de 2012 por Fredrick Bruhn, director ejecutivo de ÅAC Microtec
- ^ "Avance sueco en el espacio en el satélite de la NASA con la electrónica de ÅAC Microtec" . ÅAC Microtec (Comunicado de prensa). 2012-10-11. Archivado desde el original el 18 de enero de 2014 . Consultado el 17 de marzo de 2018 .
- ^ "Svenskt genombrott i rymden på NASA-satellit med elektronik från ÅAC Microtec" [ Avance sueco en el espacio en un satélite de la NASA con electrónica de ÅAC Microtec] (Comunicado de prensa) (en sueco). 2012-10-11 . Consultado el 16 de marzo de 2018 , a través de Mynewsdesk .[ enlace muerto ] URL alternativa
- ^ "Dipl.-Ing. Dipl.-Wirt.-Ing. Stefan Wallentowitz" . 2009-2013. Archivado desde el original el 13 de abril de 2013.
- ^ Wallentowitz, Stefan; Salvaje, Thomas; Herkersdorf, Andreas. "Co-Optimización de modelos de programación y arquitectura multinúcleo (MAPCO)" (PDF) (Póster de investigación en la Sexta Escuela Internacional de Verano sobre Arquitectura y Compilación de Computadoras Avanzadas para Sistemas Integrados y de Alto Rendimiento (ACACES), 11-17 de julio de 2010). Terrassa (Barcelona), España. Archivado desde el original (PDF) el 10 de febrero de 2013 . Consultado el 29 de octubre de 2018 .
- ^ Chips (lógica programable, conservación de computadoras con FPGA, OpenCores y OpenRISC 1000) . Reunión de OSHUG # 9, Skills Matter, 116-120 Goswell Road, Londres, 21 de abril de 2011.
- ^ Práctico System-on-Chip (Programe su propio SoC FPGA de código abierto) . Reunión OSHUG # 17, Centro de Colaboración Creativa, 16 Acton Street, Londres, 29 de marzo de 2012.
- ^ Procesador suave OpenRISC 1200 Archivado el 13 de mayo de 2012 en la Wayback Machine . Publicación de blog de Sven-Åke Andersson, 2 de marzo de 2012.
- ^ Maxfield, Clive (3 de mayo de 2012). "Comparación de cuatro núcleos de procesador de software de 32 bits" . Tiempos de Ingeniería Electrónica ( EE Times ) . San Francisco , California, Estados Unidos: AspenCore Media . Consultado el 21 de marzo de 2019 .
- ^ El emulador OpenRISC en JavaScript puede ejecutar Wayland
- ^ "llvm-or1k" . GitHub . 2018-04-06 . Consultado el 21 de marzo de 2019 .
- ^ "git.kernel.org - linux / kernel / git / torvalds / linux-2.6.git / tree - arch / openrisc /" . git.kernel.org. Archivado desde el original el 8 de julio de 2012 . Consultado el 17 de octubre de 2011 .
- ^ "Linux 3.1" . Kernel Newbies . Consultado el 17 de octubre de 2011 .
- ^ Registro de cambios 1.2 de QEMU
enlaces externos
- Página web oficial
- Licencias de núcleos de semiconductores de código abierto , 25 Harvard Journal of Law & Technology 131 (2011) Artículo que analiza la ley, la tecnología y el negocio de los núcleos de semiconductores de código abierto
- Beyond Semiconductor empresa comercial de semiconductores sin fábrica fundada por los desarrolladores de OpenRISC
- Sitio web de la empresa Dynalith Systems .
- Web de la empresa Imperas .
- Sitio web de la empresa Flex
- Sitio web de la empresa Jennic
- Artículo de Eetimes
- Tutorial de OpenRISC
- emulador jor1k OpenRISC 1000 en JavaScript