
El OpenRISC 1200 (OR1200) es una implementación de la arquitectura RISC de código abierto OpenRISC 1000. [ 1 ]
Se trata de un núcleo de CPU sintetizable , mantenido durante muchos años por desarrolladores en OpenCores.org , aunque, desde 2015, esta actividad ha sido asumida por la Free and Open Source Silicon Foundation en el sitio web librecores.org . La descripción RTL en Verilog se publica bajo la Licencia Pública General Reducida de GNU (LGPL).
Arquitectura

El núcleo IP del OR1200 está implementado en Verilog HDL . Al ser un núcleo de código abierto, su diseño es totalmente público y cualquier persona puede descargarlo y modificarlo. La implementación oficial es mantenida por los desarrolladores de OpenCores.org. La implementación especifica una unidad de administración de energía, una unidad de depuración, un temporizador de ticks, un controlador de interrupciones programable (PIC), una unidad central de procesamiento (CPU) y hardware de administración de memoria. Se pueden agregar sistemas periféricos y un subsistema de memoria mediante la implementación del procesador de una interfaz de bus Wishbone estandarizada de 32 bits . El OR1200 está diseñado para tener un rendimiento comparable al de una arquitectura de procesador ARM10 .
CPU/DSP
La CPU OR1200 implementa la arquitectura de conjunto de instrucciones (ISA) ORBIS32 de 32 bits y, opcionalmente, la ISA ORFP32X, que admite coma flotante de precisión simple conforme a IEEE-754 . La ISA cuenta con cinco formatos de instrucción y admite dos modos de direccionamiento: indirecto por registro con desplazamiento y relativo al contador de programa. La implementación dispone de una arquitectura de pipeline de 5 etapas de emisión única y es capaz de ejecutar la mayoría de las instrucciones en un solo ciclo. La CPU también incluye una unidad MAC para optimizar el soporte a aplicaciones de procesamiento digital de señales (DSP).
Gestión de la memoria
El diseño OR1200 utiliza una arquitectura de memoria Harvard y, por lo tanto, cuenta con unidades de gestión de memoria (MMU) independientes para las memorias de datos e instrucciones. Cada MMU consta de un búfer de traducción anticipada (TLB) unidireccional de mapeo directo basado en hash, con un tamaño de página de 8 KiB y un tamaño predeterminado de 64 entradas. Los TLB son escalables individualmente de 16 a 256 entradas. También hay una caché unidireccional de mapeo directo tanto para la memoria de instrucciones como para la memoria de datos. Cada caché tiene un tamaño predeterminado de 8 KiB, pero ambas son escalables individualmente entre 1 y 64 KiB. La MMU incluye soporte para memoria virtual.
Actuación
El núcleo alcanza 1,34 CoreMarks por MHz a 50 MHz en la tecnología FPGA de Xilinx. [ 2 ]
En el peor de los casos, la frecuencia de reloj del OR1200 es de 250 MHz con un proceso de fabricación 6LM de 0,18 μm. Según la prueba de rendimiento Dhrystone , un procesador OR1200 de 250 MHz realiza 250 millones de instrucciones por segundo (DMIPS) en el peor de los casos. El consumo energético estimado de un procesador de 250 MHz con un proceso de 0,18 μm es inferior a 1 W a máxima potencia y a 5 mW a media potencia.
Aplicaciones
En general, el OR1200 está diseñado para usarse en diversas aplicaciones integradas, como telecomunicaciones, medios portátiles, entretenimiento doméstico y automoción. El conjunto de herramientas GNU (incluido GCC ) también se ha adaptado con éxito a esta arquitectura, aunque presenta algunos errores. [ 3 ] Existe una versión del kernel de Linux para OR1K que se ejecuta en el OR1200. También están disponibles versiones recientes de las bibliotecas C integradas newlib y uClibc para esta plataforma.
Implementaciones
El OR1200 se ha implementado con éxito utilizando tecnologías FPGA y ASIC .
Historia
El primer registro público de la arquitectura OpenRISC 1000 data del año 2000. [ 4 ]
Referencias
- ↑Archivado el 15 de enero de 2017 en Wayback Machine.
- ↑ "Procesador OpenRISC OR1200 - OR1K :: OpenCores" . opencores.org . Archivado del original el 25 de septiembre de 2011.
- ↑ "Resultados de las pruebas de la cadena de herramientas UClibc - OR1K :: OpenCores" . opencores.org . Archivado del original el 22 de febrero de 2012.
- ↑ "Núcleo de procesador de 32 bits gratuito llega a Internet" . 28 de febrero de 2000.
- ORSoC.se "Placa de desarrollo OpenRISC 1200" . Marzo de 2009.
- Cragie, Robert. "Página de recursos de OpenRISC". Asís . 19 de marzo de 2008.
Enlaces externos
- Página OR1200 en OpenCores.org. Archivada el 10 de febrero de 2010 en Wayback Machine.
- Especificación OR1200 en OpenCores.org (advertencia: la URL sirve texto plano de tipo contexto para datos PDF). Archivado el 11 de marzo de 2012 en Wayback Machine.
- microprocesadores blandos
- Microprocesadores abiertos