Articulo de referencia

Unicore

Unicore es una arquitectura de conjunto de instrucciones para computadoras diseñada por el Centro de Investigación y Desarrollo de Microprocesadores (MPRC) de la Universidad de ...

Unicore es una arquitectura de conjunto de instrucciones para computadoras diseñada por el Centro de Investigación y Desarrollo de Microprocesadores (MPRC) de la Universidad de Pekín en la República Popular China . La computadora construida sobre esta arquitectura se llama Unity-863 . [ 1 ] La CPU está integrada en un SoC completamente funcional para crear un sistema similar a una PC. [ 2 ]

El procesador es muy similar a la arquitectura ARM , pero utiliza un conjunto de instrucciones diferente. [ 3 ]

Fue compatible con el kernel de Linux a partir de la versión 2.6.39; [ 4 ] la compatibilidad se eliminó en la versión 5.9 del kernel de Linux ya que, según un desarrollador, "nadie parecía mantenerlo y el código se estaba quedando atrás con respecto al resto del código del kernel y los requisitos del compilador". [ 5 ]

Conjunto de instrucciones

Las instrucciones son casi idénticas a los formatos ARM estándar, excepto que se ha eliminado la ejecución condicional y se han reasignado los bits para expandir todos los especificadores de registro a 5 bits. [ 6 ] [ 7 ] Asimismo, el formato inmediato es de 9 bits rotados en una cantidad de 5 bits (en lugar de 8 bits rotados en 4), los tamaños de desplazamiento de carga/almacenamiento son de 14 bits para byte/palabra y de 10 bits para byte con signo o media palabra. Los movimientos condicionales se proporcionan codificando la condición en el segundo campo de registro fuente (no utilizado por ARM) Rn para las instrucciones MOV y MVN.

El significado de los distintos bits de indicador (por ejemplo, S=1 habilita la configuración de los códigos de condición) es idéntico al del conjunto de instrucciones ARM. La instrucción de carga/almacenamiento múltiple solo puede acceder a la mitad del conjunto de registros, dependiendo del bit H. Si H=0, los 16 bits indican R0–R15; si H=1, R16–R31.

Referencias

  1. "Introducción al MPRC" . Centro de Investigación y Desarrollo de Microprocesadores, Universidad de Pekín.
  2. Xu Cheng; Xiao Yin Wang; Junlin Lu; Jiangfang Yi; Dong Tong; Xuetao Guan; Feng Liu; Xianhua Liu; Chun Yang; Yi Feng (marzo de 2010), "Progreso de la investigación de CPU UniCore y SoC PKUnity" (PDF) , Journal of Computer Science and Technology , 25 (2): 200– 213, doi : 10.1007/s11390-010-9317-1 , S2CID 7083916 , consultado el 11 de julio de 2012 
  3. Bergmann, Arnd (2012-07-09). "Re: [ PATCH 00/36 ] Puerto del kernel de Linux AArch64" . linux-kernel (Lista de correo) . Recuperado el 2012-07-11 . Otro ejemplo interesante es unicore32, que en realidad comparte más código con arch/arm que el propuesto arch/aarch64. Creo que la base de código de unicore32 se beneficiaría de ser fusionada de nuevo en arch/arm como un tercer conjunto de instrucciones, pero el costo de mantenimiento adicional para todos los que trabajan en ARM hace que eso no sea realista.
  4. "Ventana de fusión cerrada - 2.6.39-rc1 fuera" . Linus Torvalds .
  5. "eliminar la compatibilidad con unicore32" . Mike Rapoport.
  6. Hsu-Hung Chiang; Huang-Jia Cheng; Yuan-Shin Hwan (25 de febrero de 2012), "Duplicando el número de registros en procesadores ARM" (PDF) , 16.º Taller sobre Interacción entre Compiladores y Arquitecturas de Computadoras (INTERACT) , págs. 1-8 , doi : 10.1109/INTERACT.2012.6339620 , ISBN  978-1-4673-2613-1, S2CID 6832041 
  7. Código fuente del simulador del procesador Unicore . Los formatos de instrucción se encuentran en decode.c, el desensamblaje en interpret.c y la emulación en instEx.c.
  8. Código fuente del emulador QEMU Unicore32
Obtenido de " https://en.wikipedia.org/w/index.php?title=Unicore&oldid=1344943985 "