Title:
1Diseño de Systems-on-Chip (SoCs) para procesado
de imagen
- Jorge Daniel MartÃnez Pérez
2Esquema
- Qué es un SoC?
- Arquitectura SoC
- Diseño VLSI de procesadores embebidos
- Verificación funcional
- Application-Specific Processor (ASP) para
codificación de imagen - Co-diseño HW/SW y exploración arquitectural
- LÃneas de trabajo futuras
3Objetivos
- Estudio de nuevos codecs de imagen y vÃdeo (ej.
LTW) y sus implicaciones hardware - Análisis cuantitativo en base a distintas
métricas - Codificación rate/distorsion (bpp/dB) y
throughput (frames/sec) - Diseño VLSI área (mm2), rendimiento (tareas/MHz)
y consumo (mW/MHz) - Desarrollo de plataformas flexibles para el
procesado de video basadas en cores RISC
embebidos y coprocesadores dedicados - Realización de prototipos orientados a la
investigación en el área de compresión de imagen
y vÃdeo
4Qué es un SoC?
- Los SoCs responden a la capacidad creciente de
fabricar millones de transistores en un único
chip
- Nuevos retos
- Elevar el nivel de abstracción
- Antiguos Paradigmas
- Design Reuse
- Intellectual Property (IP) cores
- Componentes hardware prediseñados que admiten
distintas representaciones - Hard cores ? Gate o Transistor-Level
- Soft cores ? RTL sintetizable (parametrizable)
Modem ADSL single-chip de Alcatel Microelectronics
5Qué es un SoC?
- DesafÃos de diseño
- Estandarización de procesos de IP block authoring
- Co-diseño hardware/software
- Nuevas metodologÃas de verificación funcional y
test del sistema - Desarrollo de arquitecturas de interconexión
entre bloques eficientes
Las compañÃas de semiconductores están
invirtiendo 2/3 partes de su presupuesto en
investigación y desarrollo en este área
6Arquitectura SoC
- El elemento central de proceso seleccionado
(processor core) y el bus on-chip (estándar)
definen esencialmente la arquitectura del sistema
Ejemplo de sistema basado en procesador ARM y bus
AMBA
High-performance bus (ARM core AHB Master)
Peripheral bus (Slaves)
- Los IPs son entonces añadidos (plug play) al
bus mediante la incorporación de una capa de
interfaz estándar (Bus Transactions Layer)
7Arquitectura SoC
- Buses on-chip
- AMBA (ARM)
- AHB (High-performance) y APB (On-chip peripheral)
- Bus multiplexado de 32/64/128 bits
- LÃneas de lectura/escritura separadas
- Burst y split transfers
- Elementos (Implementación de interfaz sencilla)
- AHB Arbiter, Decoder, Master, Slave
- APB Bridge AHB/APB, Slaves
- Otros buses estándar CoreConnect (IBM), Wishbone
(OpenCores)
8Diseño VLSI de procesadores embebidos
- Processor Core Es el elemento central de proceso
del sistema y constituye la unidad de ejecución
de instrucciones. Alrededor de él se construye el
sistema completo
Puede incorporar un primer nivel de memoria cache
de dimensiones configurables (en torno a 8-32 KB)
que le permite sostener su máxima tasa de
ejecución de instrucciones Incorpora una capa de
interfaz que abstrae su funcionamiento del resto
del sistema
9Diseño VLSI de procesadores embebidos
10Diseño VLSI de procesadores embebidos
- Ariadna
- Core de procesador RISC 32-bits sintetizable
(Verilog) 1 - Descripción a nivel RTL (estructural)
directamente migrable - Arquitectura Harvard, pipeline 5-etapas _at_1.1
D-MIPS/MHz - Entorno de desarrollo software ARM cross-dev.
tool-chain GNU - Implementa el juego de instrucciones ARMv4 (Intel
StrongARM, ARM8, ARM810, ARM9) - Formato instrucción longitud fija 32-bits
(3-address) - Ejecución condicional
- Instrucción MAC, Shift/Arith (1c), MUL (64 bits),
Load/Store Multiple
1 J.D. Martinez, V. Herrero, R. Gadea
Ariadna an FPGA-oriented 32 bits RISC processor
core, SNUG Europe 2003, Munich
11Diseño VLSI de procesadores embebidos
- Organización
- Control distribuido
- Propagación de señales de control facilita
anulación - Decodificación (ROM)
- Datapath
- 3R/2W Register File
- 32-bit Barrel Shifter
- Branch adder (opcional)
- Multiplicador
Virtex 2V1000 _at_65 MHz / lt2700 LUTs ASIC 0.35um _at_
??? MHz / 17,000 eq. gates (2 mm2)
12Diseño VLSI de procesadores embebidos
- openDLX
- Core de procesador RISC 32 bits sintetizable
(Verilog) - 2V1000 _at_80 MHz 1500 LUTs
- Compatible MIPS R3000 (similar HenPat)
- Arquitectura Harvard, 5-etapas, 1 delay-slot
- Desarrollo software tool-chain GNU para MIPS
- Procesador canónico para investigación en
distintas áreas diseño de baja potencia,
verificación, etc.
13Diseño VLSI de procesadores embebidos
- Diseño de baja potencia (niveles RTL y
arquitectural) - Minimizar el factor de actividad
- Clock gating
- ASIC Diseño eficiente del árbol de reloj
- FPGA Diseño de células de clock gating que hagan
uso eficiente de los recursos globales de reloj
(BUFGCE) - Bancos de registros (20 del consumo total)
- Evitar accesos especulativos
- Cache de registros
- JerarquÃa de memoria eficiente
- Minimizar los accesos a memoria off-chip (CL
elevadas)
14Verificación funcional
- HVLs OpenVERA
- Entorno de verificación funcional
- Generación de estÃmulos pseudoaleatorios
- Medidas de cobertura funcional y de código
- Herramienta OpenVERA Debugger
2 J.D. MartÃnez et al., An scalable approach
to functional verification of embedded processor
cores, submitted to DSD04
15ASP para codificación de imagen
16Codiseño HW/SW y exploración arquitectural
-
- Componentes virtuales
- Funcionalidad C/C
- Abstracción de bus OpenVERA
Especificaciones
Particionado HW/SW
Incluye bloques HDL y bloques en C/C
Diseño HW
Desarrollo SW
Objetivo Encontrar una solución óptima entre un
desarrollo puramente HW o SW
VCS, Modelsim
VERA
Ariadna
17LÃneas de trabajo futuras
- Desarrollo de un procesador de aplicación
especÃfica orientado al desarrollo de codecs de
imagen y vÃdeo - Investigación en
- Diseño de bajo consumo
- Verificación y test de IPs embebidos en SoCs
- Co-diseño HW/SW de sistemas de codificación de
imagen mediante IPs para DWT, DCT, VLC (Huffmann,
Aritmética,) - Nuevas arquitecturas de procesador