Download Un esquema de procesador común

Document related concepts
no text concepts found
Transcript
Microprocesadores para Comunicaciones
5º ETSIT
Video Signal Processors
Silicon Hive
Paloma Fuentes Gutiérrez
Microprocesadores Para Comunicaciones – Curso 2007/2008
INDICE
1. Introducción
Pág.03
2. Procesadores de Silicon Hive
Pág.04
2.1 Esquema de procesador común
Pág.04
2.1.1 Arquitectura del Core
Pág.05
2.1.2 Arquitectura del CoreIO
Pág.06
2.1.2.1 Observación y Control
Pág.07
2.1.2.2 Acceso a datos de alto ancho de banda
Pág.07
2.1.2.3 Datos de stream y sincronización
Pág.07
2.1.2.4 Interfaces maestro y esclavo
Pág.08
2.1.2.5 Protocolos de comunicación estándar
Pág.08
2.2 Reducción de la complejidad Hardware: HiveCC
3. La serie VSP2000
Pág.08
Pág.09
3.1 Flexibilidad
Pág.11
3.2 Arquitectura del bloque VSP
Pág.12
3.2.1 DMA
Pág.13
3.2.1 VSP
Pág.13
3.3 Codificador/decodificador de vídeo usando
la serie VSP
Pág.14
3.4 Rendimiento del VSP
Pág.15
4. Conclusiones
Pág.16
5. Referencias
Pág.17
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
-2-
Microprocesadores Para Comunicaciones – Curso 2007/2008
1. Introducción
Un sistema empotrado es un sistema de computación de propósito especial,
diseñado para realizar una serie de funciones específicas, a veces bajo
condiciones de computación en tiempo real. Está normalmente empotrado
(embedded en inglés) como parte de un dispositivo completo que incluye
hardware y partes mecánicas. Su importancia actual radica en que controlan
muchos de los dispositivos que usamos. Al estar dedicado a una tarea
específica, los ingenieros de diseño pueden optimizarlo, reduciendo el tamaño
y el coste del producto, o aumentando la confiabilidad y rendimiento. Muchos
de los sistemas empotrados se producen en masa, con lo que se benefician de
las economías de escala.
Físicamente, los sistemas empotrados varían de dispositivos portátiles, como
relojes digitales o reproductores de mp3, a grandes instalaciones como pueden
ser semáforos, controladores en fábricas o sistemas de control de plantas
nucleares. La complejidad también varía, desde los simples con un solo chip
microcontrolador, hasta los complejos, con varias unidades, periféricos y redes
montadas dentro de un gran chasis.
Una configuración común para sistemas empotrados de gran volumen es el
System On Chip (SoC), que hace referencia a integrar todos los elementos de
un computador u otro sistema electrónico en un solo chip.
En este trabajo vamos a hablar de la serie VSP2000, creada por la empresa
Silicon Hive para el procesado de señales de vídeo (Video Signal Processing).
Las cores de Silicon Hive combinan los beneficios de las ASICs (bajo consumo
debido a la explotación del paralelismo y la reducción de las operaciones
especulativas, bajo coste y optimización para un dominio específico) y los
DSPs (programabilidad software de alto nivel, facilidad de upgrade, alta
flexibilidad y time-to-market más corto, debido al uso de la programabilidad y de
diseños basados en IP incluso a altos niveles de abstracción), permitiendo el
uso de VSP en una amplia variedad de SoCs.
Fig1. Comparativa con otros procesadores
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
-3-
Microprocesadores Para Comunicaciones – Curso 2007/2008
2. PROCESADORES DE SILICON HIVE
2.1 Esquema de procesador común
Los procesadores de Silicon Hive derivan todos de un esquema común
de arquitectura de procesador. Este esquema define al procesador, que está
compuesto por una o más células interconectadas.
Fig2. Célula genérica
Una célula consiste en una Core que realiza la computación y una CoreIO que
proporciona un subsistema de memoria e I/O que permite al Core integrarse de
manera sencilla en cualquier sistema, a la vez que proporciona memoria local
que aumenta el ancho de banda y reduce significativamente el estrés en los
recursos de memoria compartida.
El Core está compuesto por un data path y un secuenciador que lo controla a
través de software. El secuenciador es una máquina de estados muy simple
que contiene un registro de contador de programa que direcciona las
instrucciones en la memoria de programa, así como un registro de estado que
habilita modos especiales de procesamiento bajo el control software. El data
path contiene una serie de unidades funcionales organizadas en una serie de
issue slots conectados mediante una matriz de conmutación programable a
registros organizados en una serie de archivos de registro. Las unidades
funcionales realizan operaciones de cómputo en datos intermedios
almacenados en los ficheros de registro. Una operación puede comenzarse en
cada issue slot en cada ciclo de reloj, lo que permite tantas instrucciones
simultáneas como issue slots tengamos.
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
-4-
Microprocesadores Para Comunicaciones – Curso 2007/2008
Algunas unidades funcionales, denominadas unidades load/store, tienen
acceso a memorias lógicas dentro de la CoreIO, permitiéndoles acceso
mapeado a memoria física local del CoreIO y a realizar operaciones I/O con el
sistema mapeadas en memoria. Para las operaciones de I/O del procesador, se
puede disponer en el CoreIO de interfaces de streaming bloqueante, interfaces
de maestro e interfaces de esclavo, que proporcionan una integración limpia y
sencilla del procesador en una amplia variedad de arquitecturas de sistema.
2.1.1 Arquitectura del Core
El esquema permite un amplio espacio de diseño para crear cores para
aplicaciones programables en C de dominio específico. Consiste en un data
path que realiza las operaciones de datos bajo el control de un secuenciador
simple, que proporciona el control adecuado de la información del data path en
cada ciclo de reloj, basándose en las instrucciones recogidas de la memoria de
programa en el CoreIO, mediante el puerto Core status/control que conecta a
ambos.
Fig3. Arquitectura del Core
El data path es altamente configurable, y sigue el concepto de arquitectura que
se usa comúnmente en los procesadores RISC. Está compuesto por un
número arbitrario de archivos de registro que, a su vez, contienen un número
arbitrario de registros con un ancho arbitrario que se encargan de almacenar
los valores intermedios durante la computación. Cada archivo de registro puede
tener un número arbitrario de puertos de lectura para obtener valores del
archivo, así como un número arbitrario de puertos de escritura para almacenar
los valores.
Además de los registros, el data path contiene un número de issue slots, que
pueden comenzar una operación cada uno en cada ciclo de reloj. Cada uno de
ellos contiene un número arbitrario de puertos de entrada, con un ancho de
banda arbitrario, mediante los que se obtienen los argumentos de los ficheros
de registro, así como un número arbitrario de puertos de salida, también con un
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
-5-
Microprocesadores Para Comunicaciones – Curso 2007/2008
ancho arbitrario, mediante los cuales se almacenan en los ficheros de registro
los resultados obtenidos. Existen interconexiones que conectan los puertos de
lectura de los ficheros de registro con los puertos de argumentos de los issue
slots. Una matriz de conmutación programable conecta los puertos de
resultados de los issue slots con los puertos de escritura de los ficheros de
registro.
Cada uno de los issue slots contiene un número arbitrario de unidades
funcionales que realizan las operaciones de datos sobre los datos intermedios
obtenidos como argumentos por los issue slots, para producir nuevos valores
intermedios como resultados de los issue slots. Existen unidades funcionales
especiales, denominadas unidades de carga/almacenamiento, que tienen
acceso al CoreIO mediante puertos MMIO dedicados, proporcionando I/O
mapeado en memoria desde el Core a memorias locales dentro del CoreIO o
al resto del sistema.
Cada unidad funcional tiene un número arbitrario de puertos de entrada y de
salida, de ancho de banda arbitrario, y puede implementar un número arbitrario
de operaciones. La complejidad de éstas, es también variable, pudiendo variar
desde operaciones simples de propósito general RISC, a operaciones a medida
muy complejas que pueden remplazar a decenas de operaciones RISC. Con
este tipo de operaciones a medida, es posible usar paralelismo a nivel de
datos, como SIMD o paralelismo vectorial, o implementar aritmética de
números complejos. Las unidades funcionales pueden usar diferentes tipos de
pipeline. El tiempo en que los valores de entrada son esperados y los valores
de salida producidos en la unidad funcional relativos al comienzo de la
operación determinan la forma temporal de la unidad funcional, que puede
variar de unas a otras.
2.1.2 Arquitectura del CoreIO
El esquema del CoreIO permite un amplio rango de opciones para integrar los
procesadores de Silicon Hive en una arquitectura de sistema SoC.
Fig4. Arquitectura del CoreIO
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
-6-
Microprocesadores Para Comunicaciones – Curso 2007/2008
El CoreIO se conecta al Core mediante los puertos MMIO de las unidades
funcionales de carga/almacenamiento. Además, interactúa con el secuenciador
del Core mediante el puerto de status/control. La comunicación con el sistema,
se realiza mediante uno o más puertos maestro, esclavo o de streaming.
Puede incluir varias memorias físicas de diferentes tipos y dispositivos de I/O
que aparecen como dispositivos mapeados en memoria tanto para el Core
como para el sistema. Estos dispositivos físicos se agrupan de manera lógica
en memorias lógicas. Con estas memorias lógicas, podemos definir espacios
separados de direcciones para diferentes unidades de carga/almacenamiento
dentro del Core, lo que hace posible obtener un ancho de banda de memoria
alto y, por tanto, un rendimiento alto con baja disipación de energía y bajo coste
de área, al permitir varias lecturas y/o escrituras paralelas en memorias
particionadas sin crear cuellos de botella en el diseño.
2.1.2.1 Observación y control
Para cargar software en el procesador, el sistema puede acceder a la memoria
local de programa para almacenar datos de programa. Para controlar y
observar el procesador, el sistema puede acceder a los registros de control y
estatus mapeados en memoria, para decir al procesador, por ejemplo, que
empiece a ejecutarse desde una dirección de la memoria de programa
específica. Mientras que el procesador está en ejecución, el sistema puede
observar su estado o configurar el procesador para generar una interrupción
cuando, por ejemplo, ha alcanzado el final del programa.
2.1.2.2 Acceso a datos de alto ancho de banda
Mientras que el Core está procesando, puede usar una o mas memorias
locales de datos para obtener los datos de entrada, cargar o almacenar los
datos intermedios y almacenar los datos de salida. En una configuración típica
de CoreIO, el sistema tiene acceso a las memorias locales en el CoreIO
también, proporcionado mediante uno o más interfaces esclavo. Para resolver
los conflictos entre estas memorias, árbitros inteligentes deciden la prioridad al
dar acceso al Core o al sistema mientras se lleva a cabo la ejecución.
2.1.2.3 Datos de stream y sincronización
Para aplicaciones que se apoyan sobre datos de streaming, podemos usar los
puertos de streaming de I/O. Internamente, estos puertos están conectados al
Core mediante buffers FIFO bidireccionales y configurables en tamaño,
dependiendo
de los requerimientos de buffer. Las comunicaciones de
streaming siguen un protocolo bloqueante, es decir, las unidades de
carga/almacenamiento en el Core que acceden a estas FIFOs pararán (stall) el
Core cuando se intenta almacenar en una FIFO que está llena o cuando se
intenta cargar desde una FIFO vacía. En el lado del sistema, los puertos de
stream se comportan de manera similar usando bloqueo.
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
-7-
Microprocesadores Para Comunicaciones – Curso 2007/2008
Este mecanismo de sincronización data-driven simplifica mucho la
programación y la integración en el sistema de las aplicaciones de stream. En
aplicaciones de no-stream, los puertos de stream pueden ser usados para
sincronizar el procesador con el sistema mediante el intercambio de créditos
bloqueantes.
2.1.2.4 Interfaces maestro y esclavo
Para obtener datos de entrada y proporcionar datos de salida, el CoreIO puede
proporcionar interfaces maestro aparte de las memorias de datos locales o los
interfaces esclavo. Estas interfaces maestro pueden, por ejemplo, permitir al
Core acceder a dispositivos del resto del sistema para obtener sus propios
datos de entrada y directamente producir datos de salida a la localización
adecuada del sistema.
2.1.2.5 Protocolos de comunicación estándar.
Los protocolos usados comúnmente son soportados por los puertos maestro y
esclavo, y pueden ser configurados en el momento del diseño. Como el CoreIO
puede ser configurado con cualquier número de puertos maestro, esclavo o de
stream, es fácil conseguir un procesador que encaje perfectamente en
cualquier sistema.
2.2 Reducción de la complejidad Hardware: HiveCC
Para minimizar la sobrecarga de control hardware y maximizar las capacidades
de control del hardware del compilador de HiveCC, el data path del Core es
totalmente visible al HiveCC y completamente ortogonal. Los compiladores de
C tradicionales solo mapean construcciones en C a operaciones y entonces
asignan y programan esas operaciones en los issue slots y asignan
argumentos y resultados a los registros. El HiveCC también asigna y programa
todas las interconexiones en el Core, y todos los estados individuales del
pipeline en cada una de las unidades funcionales. Tiene visibilidad de la
memoria local de datos, los buffers locales FIFO para streaming bloqueantes
de I/O y también para interfaces de maestro. Mientras que los compiladores C
tradicionales rápidamente se quedan sin flujo cuando trabajan con data paths
con mas de 5 a 8 issue slots, el HiveCC es capaz de utilizar data paths que
contengan de 1 a 10 issue slots eficientemente.
El hecho de dar al compilador HiveCC control sobre un data path de una core
que usa un gran paralelismo, hace que sean necesarios bits adicionales en las
instrucciones. Cuando el data path puede usarse eficientemente por un
programa, el número de bits requeridos por operación es todavía altamente
eficiente y en línea con los que necesitaría un procesador RISC convencional.
Además, a la hora de usar operaciones hechas a medida en un procesador
tuneado, una sola operación remplaza a varias operaciones RISC de propósito
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
-8-
Microprocesadores Para Comunicaciones – Curso 2007/2008
general, haciendo que el número de bits requeridos por operación sea incluso
más eficiente que el de los procesadores RISC convencionales.
En la práctica, no todas las partes de un programa se pueden compilar de
manera igual de eficiente, debido a la falta de paralelismo inherente a esas
partes. Normalmente, el código de inicialización y el de control muestran menos
paralelismo, por lo que para mapear este código, HiveCC es capaz de compilar
código de diferentes formas en el mismo Core data path., Estas diferentes
formas muestran subconjuntos de los recursos del data path al compilador y,
de esta manera, el compilador puede obligarse a usar solo un subconjunto del
data path para el código con menos paralelismo. El código binario resultante
puede codificarse eficientemente sin malgastar bits en recursos inutilizados,
mejorando así la densidad del código en su conjunto.
El esquema altamente configurable del data path, así como el poderoso issue
slot configurable y los conceptos de unidad funcional, permiten usar un
conjunto de instrucciones completamente configurable en el momento del
diseño, que puede ser diseñado para un dominio especifico de aplicación
manteniendo el soporte de las herramientas de programación de Silicon Hive.
3. LA SERIE VSP2000
A medida que los displays móviles proliferan alrededor del mundo, y los
displays fijos aumentan, los consumidores demandan experiencias visuales
mejoradas mientras miran en estos displays. El mercado está migrando hacia
displays de alta definición (HD) y más allá conducidos por la demanda de los
consumidores. Para generar estas experiencias de alta calidad en displays de
HD, los algoritmos de procesado de video se están haciendo extremamente
complejos, y necesitan Tera-Operaciones por segundo para generar una salida
de vídeo aceptable. La serie VSP2000 permite suplir las necesidades de los
displays de video usando una arquitectura escalable de tile, en la que la
arquitectura de cada tile es flexible, de bajo coste y de bajo consumo,
resultando una solución IP muy atractiva para los consumidores de SoCs de
procesado de señales de vídeo.
Fig5. Aplicación del VSP
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
-9-
Microprocesadores Para Comunicaciones – Curso 2007/2008
Fig6. Aplicaciones VSP
El bloque VSP que vamos a ver ejecuta varias aplicaciones de video
comúnmente usadas en pre/post procesado de señales de HD TV, como
estabilización de imágenes, de-entrelazado, adaptación de frecuencias,
aumento de escala o mejora de la calidad, aparte de aplicaciones de
codificado/decodificado de H.264, MPEG4, VC1 y MPEG2. Con múltiples VSP
tiles con un número configurable de issue slots y arquitectura SIMD
implementan eficientemente decodificación de H.264 con resolución HD.
Fig7. Concepto de SIMD
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
- 10 -
Microprocesadores Para Comunicaciones – Curso 2007/2008
Fig8. Ejemplo funciones pre/post procesado
3.1 Flexibilidad
Para poder llevar a cabo las diferentes aplicaciones, desde las de alta calidad a
las de baja calidad, la serie VSP2000 posee una serie de requerimientos de
flexibilidad:
-
Elección del algoritmo de estimación de movimiento que soporte
diferentes tipos de calidad y puntos de rendimiento
Flexibilidad en el tamaño de los bloques para estimación y
compensación
Flexibilidad en el tamaño de la ventana de interés
Soporte para submuestreo y trasposición de datos
Flexible en la dirección de procesado de vídeo, como izquierda-derecha,
arriba-abajo y serpenteado.
La arquitectura del VSP está basada en el tiling y en la jerarquía de memorias.
El tiling es un sistema de bloques, que pueden realizar un conjunto de
instrucciones en un pipeline, reduciendo el uso del ancho de banda del bus del
sistema y de la memoria externa, además de permitir un entorno de diseño
software más sencillo. El uso de varios bloques VSP, con el mismo hardware y
diferente software permiten crear un pipeline de procesados de video completo.
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
- 11 -
Microprocesadores Para Comunicaciones – Curso 2007/2008
Fig9. Arquitectura de bloques (TILES)
La arquitectura jerárquica de memorias está específicamente diseñada para
aplicaciones de vídeo. Cada componente de la señal de vídeo o datos
derivados de esta, es un plano de video. Los segmentos de plano son
almacenados en diferentes niveles de memoria jerárquica.
En el bloque VSP, la memoria externa contiene los planos de video completos,
una sola región del plano se almacena en la memoria de nivel 1 (SVMEM), y la
ventana de interés se almacena en el nivel 0 (BVMEM).
Generalmente, la BVMEM se rellena con el contenido de la SVMEM, aunque
en algunos casos puede obtener el contenido de la memoria externa.
Este esquema unificado para almacenar video y planos derivados de video en
la SVMEM y BVMEM, hace que la memoria on-chip sea mas pequeña y que el
diseño resultante sea más modular.
3.2 Arquitectura del bloque VSP
Está compuesto de dos partes: la DMA y el Video Signal Processor (VSP).
Fig10. Arquitectura bloque VSP
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
- 12 -
Microprocesadores Para Comunicaciones – Curso 2007/2008
3.2.1 DMA
Actúa como interfaz con el sistema. Lee y escribe los datos en la memoria
externa basándose en peticiones del VSP. Soporta accesos de lectura y
escritura de y hacia el sistema durante el tiempo de ejecución y con diferentes
precisiones de datos configurables.
Soporta transacciones de comunicaciones 1D y 2D, cuyo tamaño es
programable, y tiene tantos canales de lectura y escritura como configuremos
durante el diseño, cuyo mapeo a canales de video es también programable.
3.2.2 VSP
Es una máquina VLIW con un set de instrucciones vectoriales (ISEs). Son
procesadores programables que compilan ANSI-C con un ISE vectorial
programable intrínsecamente. El tamaño del vector es configurable durante el
diseño, y puede tener 4, 8 o más (potencia de 2) caminos SIMD.
Dentro del VSP se encuentran las memorias vectoriales SVMEM y BVMEM, y
usa el DMA para rellenar estas memorias, lo que explica que no tarde ciclos en
rellenarlas.
Los bloques VSP se intercomunican con sus vecinos mediante conexiones
directas bloque-a-bloque, o indican a la DMA que escriba datos de su SVMEM
a las SVMEM de los bloques vecinos. También usa FIFOs de 32 bits para
sincronismo y comunicación de datos escalares entre bloques.
Los parámetros programables soportados a nivel de aplicación incluyen:
-
El número de planos de vídeo necesarios para una función mapeada en
el bloque
El tamaño de la región de los planos de vídeo almacenados en el
SVMEM
En tamaño de la WOI de los planos de vídeo almacenados en la
BVMEM
Los VSP contienen unidades funcionales vectoriales, que incluyen unidades de
aritmética y lógica vectorial, unidades de multiplicación-acumulación vectorial,
unidades vectoriales de desplazamiento, unidades vectoriales de intra-suma,
unidades vectoriales de aleatorización y unidades vectoriales de
carga/almacenamiento para las memorias especiales.
Están compuestos por elementos de procesado y almacenamiento, llamados
PSEs. Las PSEs de control y aritmética constituyen la base del procesador de
32bits, que ejecuta el código escalar, mientras que los PSE de procesamiento
vectorial realizan las funciones vectoriales sobre el vídeo y los datos derivados
de vídeo. Cada PSE está compuesta de Core y CoreIO.
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
- 13 -
Microprocesadores Para Comunicaciones – Curso 2007/2008
3.4 Codificador/decodificador de vídeo usando la serie VSP.
En la figura vemos una solución para codificación/decodificación de video.
Fig11. Codificación/Decodificación de vídeo
Está compuesta por dos VSP idénticas (VSP1 y VSP2) junto con un procesador
stream, que es VLIW escalar (data path de 32 bits) y es útil para
codificación/decodificación entrópica. Este procesador stream usa instrucciones
genéricas para acelerar el código de longitud variable (VLC) y el CABAC
(content-adaptive-binary-arithmetic-coding).
Los dos bloques VSP se usan para realizar otras funciones como estimación de
movimiento o compensación, cuantización, transformación, intra-predicción,
etc…
Usando TSMC90nm, el sistema completo, incluyendo los procesadores, las
memorias locales, las DMA y los interfaces de bus, constaría de 1255k puertas
lógicas, 105 kB de memoria de datos y 210kB de memoria de programa, de 6 a
9 nm2 de área total del layout y un reloj de 250MHz. El consumo depende de la
tecnología usada: Para TSMC 90nm G, tendríamos un consumo de pico de
255mW, con TSMC 65nm G de 137 mW y con TSMC 65nm LP de 164mW.
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
- 14 -
Microprocesadores Para Comunicaciones – Curso 2007/2008
3.5 Rendimiento del VSP
En la siguiente figura se muestra el rendimiento del VSP para una serie de
kernels/funciones.
Fig12. Rendimiento VSP
Como podemos observar, un bloque VSP con 16 caminos SIMD ejecutándose
a 250MHz, puede realizar en de-entrelazado de un campo de 3 píxel con una
tasa de salida de 1920x1080p@30fps, usando sólo el 19% de la carga del
procesador. Por otro lado, un bloque VSP de 32 caminos SIMD pueden realizar
un Sobel en 4 direcciones con una tasa de salida de 1920x1080p@30fps
usando el 29% de la carga del procesador.
El rendimiento de los dos bloques VSP que vimos para codificación y
decodificación de vídeo, junto con el procesador stream, es de 1080p@30fps
para decodificación H.264 de alto nivel y 720@30fps para codificación H.264
de alto nivel. Para otros estándares de codificación se pueden conseguir
similares puntos de rendimiento con esta misma configuración.
Para conseguir puntos de rendimiento más altos o bajos, podemos escalar
reduciendo o aumentando el número de bloques VSP usados, como se
muestra en la siguiente figura.
Figura13. Escalabilidad para mejorar el rendimiento
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
- 15 -
Microprocesadores Para Comunicaciones – Curso 2007/2008
4. CONCLUSIONES
La arquitectura de bloques VSP proporciona el alto rendimiento, escalabilidad y
flexibilidad necesaria para satisfacer a los consumidores conscientes del precio
en el dominio de aplicaciones de video. Esto es posible debido a la arquitectura
de bloques, las memorias especiales jerárquicas y la explotación de todas las
formas de paralelismo.
El concepto de programabilidad, a su vez, permite:
-
Mover funciones VSP al software, así como la diferenciación del
producto.
Los upgrades del firmware permiten extender la vida del producto, ya
que se pueden realizan modificaciones posteriores en el diseño.
Menos necesidad de mantenimiento y soporte en los posteriores diseños
Muchas ventajas por el coste de una sola inversión en una solución
programable.
Además, la escalabilidad que ofrece la arquitectura VSP permite:
-
Funciones de pre-procesado, múltiples estándares de codificación y un
completo espectro de funciones de post-procesado.
Puntos de rendimiento desde resoluciones SD a resoluciones súper-HD.
:
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
- 16 -
Microprocesadores Para Comunicaciones – Curso 2007/2008
5. REFERENCIAS
[1] www.siliconhive.com
[2] www.wikipedia.es
[3] www.nxp.com
[4] www.embedded.com
Procesadores de Señales de Video – Silicon Hive
Paloma Fuentes
- 17 -