Articulo de referencia

Computadora de un solo chip con arquitectura Super Harvard

El procesador de un solo chip con arquitectura Super Harvard ( SHARC ) es un DSP de alto rendimiento para operaciones de punto flotante y punto fijo, fabricado por Analog Device...

El procesador de un solo chip con arquitectura Super Harvard ( SHARC ) es un DSP de alto rendimiento para operaciones de punto flotante y punto fijo, fabricado por Analog Devices . SHARC se utiliza en diversas aplicaciones de procesamiento de señales, desde el procesamiento de audio hasta el guiado de proyectiles de artillería con una sola CPU y el procesamiento de radares de largo alcance con 1000 CPU. El diseño original data de enero de 1994 aproximadamente.

Los procesadores SHARC suelen estar diseñados para tener un buen número de enlaces serie con otros procesadores SHARC cercanos, para ser utilizados como una alternativa de bajo coste a SMP .

Arquitectura

El SHARC es un procesador VLIW con direccionamiento por palabras basado en la arquitectura Harvard ; no reconoce valores de 8 o 16 bits, ya que cada dirección apunta a una palabra completa de 32 bits, no solo a un octeto . Por lo tanto, no es ni little-endian ni big-endian, aunque un compilador puede usar cualquiera de las dos convenciones si implementa datos de 64 bits o alguna forma de empaquetar varios valores de 8 o 16 bits en una sola palabra de 32 bits. En C, los caracteres son de 32 bits, ya que son las palabras direccionables más pequeñas de la arquitectura.

El tamaño de palabra es de 48 bits para instrucciones, 32 bits para enteros y coma flotante normal, y 40 bits para coma flotante extendida. El código y los datos se obtienen normalmente de la memoria integrada, que el usuario debe dividir en regiones de diferentes tamaños de palabra según sea necesario. Los tipos de datos pequeños pueden almacenarse en una memoria más amplia, lo que simplemente desperdicia el espacio adicional. Un sistema que no utilice coma flotante extendida de 40 bits podría dividir la memoria integrada en dos secciones: una de 48 bits para el código y otra de 32 bits para todo lo demás. La mayoría de las instrucciones de la CPU relacionadas con la memoria no pueden acceder a todos los bits de la memoria de 48 bits, pero se proporciona un registro especial de 48 bits para este propósito. Se puede acceder a este registro especial de 48 bits como un par de registros más pequeños, lo que permite el movimiento de datos desde y hacia los registros normales.

La memoria externa se puede usar con el SHARC. Esta memoria solo se puede configurar con un tamaño único. Si la memoria externa se configura con palabras de 32 bits para evitar desperdicios, solo se podrá usar la memoria integrada para la ejecución de código y la coma flotante extendida. Los sistemas operativos pueden usar superposiciones para solucionar este problema, transfiriendo datos de 48 bits a la memoria integrada según sea necesario para la ejecución. Se proporciona un motor DMA para esto. La paginación real es imposible sin una MMU externa .

El SHARC dispone de un espacio de direcciones de 32 bits con direccionamiento por palabra. Dependiendo del tamaño de la palabra, este espacio es de 16 GB, 20 GB o 24 GB (utilizando la definición común de un "byte" de 8 bits).

Las instrucciones SHARC pueden contener un operando inmediato de 32 bits. Las instrucciones sin este operando generalmente pueden realizar dos o más operaciones simultáneamente. Muchas instrucciones son condicionales y pueden ir precedidas de "if condition " en lenguaje ensamblador . Existen varias opciones de condición , similares a las que ofrece el registro de indicadores x86 .

Hay dos ranuras de retardo . Después de un salto, normalmente se ejecutarán dos instrucciones posteriores al salto.

El procesador SHARC cuenta con soporte integrado para el control de bucles. Se pueden utilizar hasta 6 niveles, lo que evita la necesidad de instrucciones de bifurcación normales y el control de flujo habitual relacionado con la salida de bucles.

El SHARC dispone de dos conjuntos completos de registros de propósito general. El código puede alternar instantáneamente entre ellos, lo que permite cambios de contexto rápidos entre una aplicación y un sistema operativo o entre dos hilos.

Soporte de software

Compiladores:

  • Compilador CrossCore de Analog Devices (comercial) [ 1 ]
  • Analog Devices Visual DSP++ (comercial) [ 2 ]
  • Analog Devices g21k, una bifurcación descontinuada de GCC (GPLv2) [ 3 ] [ 4 ]

Véase también

Referencias

  1. "Manual del compilador C/C++ para procesadores SHARC ®" (PDF) .
  2. "VisualDSP++ 5.1 " . VisualDSP++ para procesadores Blackfin, SHARC y TigerSHARC es un entorno integrado de desarrollo y depuración de software (IDDE) fácil de instalar y usar que permite una gestión eficiente de proyectos de principio a fin desde una única interfaz.
  3. "Dockeen - Información sobre DSP/GCC" . gcc.gnu.org .
  4. ^ Vakulenko, Serge (19 de junio de 2025). "sergev/g21k" .
  • Sitio web de los procesadores SHARC