System on a chip
System-on-a-chip o SoC (sistema en chip, también referido como system-on-chip), describe la tendencia cada vez más frecuente de usar tecnologías de fabricación que integran todos o gran parte de los módulos que componen un ordenador o cualquier otro sistema informático o electrónico en un único circuito integrado o chip.
El diseño de estos sistemas puede estar basado en circuitos de señal digital, señal analógica, o incluso de señal mixta (tanto analógica como digital), y a menudo módulos o sistemas de radiofrecuencia (módulos de comunicación inalámbrica: Wi-Fi, Bluetooth, etc.).
Un ámbito común de aplicación de la tecnología SoC son los sistemas embebidos.
La diferencia principal de un SoC con un microcontrolador tradicional no debe pasarse por alto, puesto que estos rara vez disponen de más de 100 Kilobytes de memoria RAM (de hecho, lo más frecuente es que las memorias, tanto la RAM como la flash, de un microcontrolador tan solo consten de unos pocos Kilobytes), y gran parte de estos son estructuras mono-chip, mientras que el término SoC es usado para procesadores más potentes y de arquitectura más compleja, como son los que integran los ordenadores y dispositivos actuales que dependen de chips o módulos de memoria externos para ser eficaces.
Para sistemas más grandes y complejos sería impropio hablar de SoC, convirtiéndose el término en tal caso, más en una mera referencia o directiva a seguir que en la propia realidad de éstos:
- Aumentar la integración en un mismo chip con el objetivo de reducir costes y construir sistemas cada vez más reducidos (capaces de lo mismo o más que sistemas más antiguos y voluminosos).
Resultaría impropio, principalmente, porque los intereses de la mayoría de los proyectos desarrollados en esta área fijan sus objetivos en diseños tan específicos y complejos que no suelen permitir -debido al coste de estos- la implementación de todo el sistema en un solo chip. Estos suelen ser diseñados expresamente para una optimización en la realización de uno o varios de los procesos que suponen la mayor parte de su rutina cotidiana de funcionamiento.
Una alternativa al diseño y fabricación de un SoC (cuando esto no sea rentable, por ejemplo) para una determinada aplicación es un sistema System-in-package (ó SiP), que comprende un número determinado de chips ensamblados (no integrados como en un SoC) formando un solo paquete (de ahí el término). A pesar de esto, se estima que la fabricación en gran volumen de SoC será más y más rentable (por unidad) que la de sistemas SiP, debido a que el rendimiento de fabricación unitario para un SoC es mayor y su montaje y empaquetado mucho más sencillos.[1]
Una tercera opción en la integración de sistemas electrónicos, presente por ejemplo en teléfonos móviles de alta gama, o el Beagle Board (un sencillo ordenador de baja potencia basado en el procesador OMAP de Texas Instruments), es el apilado de diferentes placas de circuitos al ensamblarse el sistema (package-on-package, o PoP). Consiste, básicamente, en la soldadura de la placa principal -la que contiene el procesador- con placas superiores e inferiores mediante un entramado de esferas metálicas (BGA, Ball Grid Array) en forma de anillo. Estas proporcionan consistencia a la estructura en forma de sandwich a la vez que interconectan el procesador (y demás componentes principales) con los buses de memoria situada en una placa diferente apilada debajo o sobre la principal.
(Normalmente estas placas son fabricadas y distribuidas por diferentes empresas que las que diseñan microcontroladores, microprocesadores y SoCs).[2]
Arquitectura
Un SoC estándar está constituido por:
- Un microcontrolador, microprocesador o núcleo DSP. Algunos SoC – llamados MultiProcessor System-on-Chip (MPSoC) – son construidos con microprocesadores dotados de varios núcleos o bien más de un microprocesador.
- Módulos de memoria (informática) incluyendo parte o todos los tipos de memoria a continuación listados: ROM (memoria de sólo lectura), RAM (memoria de acceso aleatorio), EEPROM (memoria de sólo lectura programable y borrable electrónicamente) y Flash (memorias NAND de acceso muy rápido en comparación con los tradicionales -todavía hoy muy usados- soportes magnéticos).
- Generadores de frecuencia fija como por ejemplo osciladores y/o lazos de seguimiento de fase o Phase Locked Loops (PLL por sus siglas en inglés).
- Componentes periféricos como contadores-temporizadores, temporizadores o relojes a tiempo real y generadores PoR (power-on reset, dispositivos que reajustan el sistema al recibir señal positiva, permitiendo a un sistema electrónico arrancar desde un estado conocido).
- Interfaces externas incluyendo estándares como USB, IEEE 1394/Firewire, Ethernet, UART, o SPI. Nótese que externas implica externas al chip, no necesariamente al dispositivo del que forman parte.
- Interfaces analógicas incluyendo ADCs y DACs.
- Reguladores de voltaje y circuitos de gestión eficaz de la energía.
Estos módulos están unidos de acuerdo a estándares industriales de conexión de buses como también a tecnologías propietarias como por ejemplo la Especificación AMBA, arquitectura de bus diseñada por ARM Ltd.
Controladores DMA dedicados dirigen la información entre interfaces externas y la memoria principal, evitando el paso innecesario de ésta a través del procesador e incrementando así el volumen de trabajo del SoC.
Proceso de diseño
Un SoC está constituido, por una parte, del hardware arriba descrito, y por otra del software que maneja el (o los) núcleo(s) del microcontrolador, procesador, o DSP, además de los periféricos y puertos o interfaces. Una buena planificación del diseño de un SoC tratará de desarrollar paralelamente la arquitectura física o hardware y el software.
La mayoría de SoC son desarrollados a partir de módulos de hardware básicos previamente testeados para la construcción de diversos elementos (listados anteriormente) más complejos junto con los controladores de software que proporcionan las instrucciones para su manejo. De gran importancia son las familias de protocolos de Internet que manejan interfaces universales como el famoso Universal Serial Bus. Los módulos de hardware se posicionan sobre las placas de la manera más óptima (compactando en el espacio disponible la mayor cantidad posible de componentes) con ayuda de herramientas CAD, permitiendo elaborar un diseño previo de la arquitectura que se desea fabricar sin coste adicional. A su vez, los módulos de software se implementan en el sistema final usando potentes herramientas de desarrollo, conocidas como IDE y SDE.
Un paso clave en la confección del SoC es la emulación: el hardware se mapea tal y como será fabricado en una plataforma de emulación basada en un FPGA, que reproduce fielmente el comportamiento del SoC, con el fin de testear los módulos de software. Para ello, estos son cargados en la memoria volátil del emulador.
Una vez puesta a punto, la plataforma es puesta en funcionamiento: tanto el hardware como el software réplicas del futuro SoC arrancan para ser testados y depurados bajo las condiciones más próximas a la máxima velocidad de trabajo del SoC. (La emulación va generalmente precedida de una amplia simulación por software, de hecho, los FPGAs son usados principalmente para acelerar alguna parte concreta del proceso de simulación).
Tras la emulación satisfactoria del hardware del SoC, se procede a la fase de posicionamiento y encaminado de la circuitería (para lo cual se utilizan aplicaciones CAD, como ya se ha dicho antes), obteniendo el diseño más óptimo para su fabricación en serie.
Los chips son testados y verificados para posibles correcciones lógicas antes de enviarse a fundición definitivamente. Esta tarea se denomina verificación funcional, y garantiza unos correctos funcionamiento, tiempo de operación y energía consumida, durante gran parte de su ciclo de vida (aunque el porcentaje del 70% a menudo asegurado por el fabricante es exagerado).[3] HDLs como Verilog o VHDL son herramientas comúnmente usadas en el proceso de verificación. Debido a la creciente complejidad de los chips, se están empezando a usar HDLs más avanzados como son SystemVerilog, SystemC, e, o OpenVera.
Los bugs encontrados durante la verificación son redactados en un informe enviado al diseñador, para su correspondiente reparación.
Fabricación
Los SoC pueden ser fabricados usando diferentes tecnologías, incluyendo:
- Diseño a medida (Full Custom)
- Diseño basado en Celdas Estándares (Standard Cell)
- Diseño basado en 'Field-programmable gate array's o FPGAs
Un SoC normalmente consume menos energía, tiene un coste inferior y una mayor fiabilidad que los sistemas multi-chip a los que acaban reemplazando. Así pues, con menos piezas necesarias para el sistema, los costes de material y ensamblado se ven reducidos.
No obstante, como en muchos proyectos VLSI, el coste total inicial es superior para un chip mayor que para la misma funcionalidad distribuida en chips más pequeños, debido a rendimientos más bajos por el reducido tamaño de la tecnología de fabricación, más propensa a fallos, y unos costes NRE más elevados (los costes NRE pueden entenderse como la inversión inicial para el desarrollo, investigación, fabricación y testeo de un producto nuevo, capital susceptible de no ser recuperado al no estar asegurado el volumen mínimo de ventas para la rentabilidad del producto).
Véase también
- Applications processor (AP)[4]
- Circuito Integrado para Aplicaciones Específicas o ASIC
- Krait (CPU)[5]
- Network-On-Chip
- NVIDIA Tegra
- PSoC
- Snapdragon (procesador)
- System-in-package (SiP)
- LTSP
Referencias
- ↑ «The Great Debate: SOC vs. SIP». Eetimes.com. Consultado el 12 de agosto de 2009.
- ↑ Listado de fabricantes de memorias informáticas
- ↑ «Is verification really 70 percent?». Eetimes.com. Consultado el 12 de agosto de 2009.
- ↑ Application-specific instruction-set processor (en inglés)
- ↑ Krait (CPU) (en inglés)
Enlaces externos
- SOCC Annual IEEE International SOC Conference
- La tecnología System-on-chip en su mayoría de edad
- Optimización de energía a nivel de sistema (System-level power optimization)
- Battery Board (BB) para System-on-Chips
- Application Processor
- 3G en un chip de Broadcom
Atribución
Este artículo proviene originalmente de Wikipedia que lo licencia simultáneamente bajo las licencias Creative Commons Reconocimiento - CompartirIgual 3.0
|