Articulo de referencia

Sistema en un chip

Un Exynos 4 Quad (4412), en la placa de circuito de un teléfono inteligente Samsung Galaxy S III. Un sistema en un chip , o sistema en chip ( SoC ), es un circuito integrado que...

Un Exynos 4 Quad (4412), en la placa de circuito de un teléfono inteligente Samsung Galaxy S III.

Un sistema en un chip , o sistema en chip ( SoC ), es un circuito integrado que combina la mayoría o la totalidad de los componentes clave de una computadora o sistema electrónico en un solo microchip . [ 1 ] Típicamente, un SoC incluye una unidad central de procesamiento (CPU) con funciones de memoria , entrada/salida y control de almacenamiento de datos , junto con características opcionales como una unidad de procesamiento gráfico (GPU), conectividad Wi-Fi y procesamiento de radiofrecuencia. Este alto nivel de integración minimiza la necesidad de componentes discretos separados, lo que mejora la eficiencia energética y simplifica el diseño del dispositivo.

Los SoC de alto rendimiento suelen combinarse con memoria dedicada, como LPDDR , y chips de almacenamiento flash, como eUFS o eMMC , que pueden apilarse directamente sobre el SoC en una configuración de paquete sobre paquete (PoP) o colocarse cerca en la placa base. Algunos SoC también funcionan junto con chips especializados, como módems celulares . [ 2 ]

Fundamentalmente, los SoC integran uno o más núcleos de procesador con periféricos críticos. Esta integración integral es conceptualmente similar al diseño de un microcontrolador , pero ofrece una potencia de cálculo mucho mayor. Este diseño unificado reduce el consumo de energía y el área del chip semiconductor en comparación con las arquitecturas multichip tradicionales, aunque a costa de una menor modularidad y facilidad de reemplazo de componentes.

Los SoC son omnipresentes en la informática móvil, donde los diseños compactos y de bajo consumo energético son fundamentales. Alimentan teléfonos inteligentes , tabletas y relojes inteligentes , y son cada vez más importantes en la computación de borde , donde el procesamiento de datos en tiempo real se produce cerca de la fuente de datos. [ 3 ] [ 4 ]

Tipos

Diagrama de bloques de un SoC construido alrededor de un microcontrolador.

En general, existen tres tipos distinguibles de SoC:

  • Sistemas en chip (SoC) construidos alrededor de un microcontrolador ,
  • Sistemas en chip (SoC) construidos alrededor de un microprocesador , que se encuentran a menudo en teléfonos móviles;
  • Circuitos integrados en chip (SoC) especializados , diseñados para aplicaciones específicas que no encajan en las dos categorías anteriores.

Aplicaciones

Los SoC se pueden aplicar a cualquier tarea informática. Sin embargo, se utilizan habitualmente en dispositivos móviles como tabletas, teléfonos inteligentes, relojes inteligentes y netbooks, así como en sistemas embebidos y en aplicaciones donde anteriormente se utilizaban microcontroladores .

Sistemas embebidos

Donde antes solo se podían usar microcontroladores, los SoC están ganando prominencia en el mercado de sistemas embebidos. Una integración de sistema más estrecha ofrece mayor confiabilidad y tiempo medio entre fallas , y los SoC ofrecen funcionalidad y potencia de cálculo más avanzadas que los microcontroladores. [ 5 ] Las aplicaciones incluyen aceleración de IA , visión artificial embebida , [ 6 ] recopilación de datos , telemetría , procesamiento vectorial e inteligencia ambiental . A menudo, los SoC embebidos se dirigen a los mercados de internet de las cosas , multimedia, redes, telecomunicaciones y computación de borde . Algunos ejemplos de SoC para aplicaciones embebidas incluyen el STMicroelectronics STM32 , el Raspberry Pi Ltd RP2040 y el AMD Zynq 7000 .

computación móvil

Sistema en un chip AMD Élan SC450 en el comunicador Nokia 9110.

Los SoC basados ​​en computación móvil siempre incluyen procesadores, memorias, cachés en chip , capacidades de red inalámbrica y, a menudo, hardware y firmware para cámaras digitales . Con el aumento del tamaño de la memoria, los SoC de gama alta a menudo no tienen memoria ni almacenamiento flash, y en su lugar, la memoria y la memoria flash se colocan justo al lado o encima ( paquete sobre paquete ) del SoC. [ 7 ] Algunos ejemplos de SoC para computación móvil incluyen:

Ordenadores personales

En 1992, Acorn Computers lanzó la gama de ordenadores personales A3010, A3020 y A4000 con el SoC ARM250. Este combinaba el procesador ARM2 original de Acorn con un controlador de memoria (MEMC), un controlador de vídeo (VIDC) y un controlador de E/S (IOC). En los ordenadores Acorn anteriores con procesador ARM , estos componentes eran cuatro chips independientes. El chip ARM7500 fue su SoC de segunda generación, basado en los controladores ARM700, VIDC20 e IOMD, y se licenció ampliamente en dispositivos integrados como decodificadores, así como en ordenadores personales Acorn posteriores.

Los fabricantes de tabletas y portátiles han aprendido de los sistemas embebidos y los mercados de teléfonos inteligentes la importancia de reducir el consumo de energía, mejorar el rendimiento y aumentar la fiabilidad gracias a una mayor integración de los módulos de hardware y firmware , así como de la integración en chip de LTE y otras comunicaciones de red inalámbricas ( controladores de interfaz de red integrados ). [ 10 ]

En los portátiles y mini PC modernos, las variantes de bajo consumo de los procesadores AMD Ryzen e Intel Core utilizan un diseño SoC que integra la CPU, la GPU integrada, el chipset y otros procesadores en un solo paquete. Sin embargo, estos procesadores x86 aún requieren memoria y memoria externas.

Estructura

Un SoC consta de unidades funcionales de hardware , incluidos microprocesadores que ejecutan código de software , así como un subsistema de comunicaciones para conectar, controlar, dirigir e interactuar entre estos módulos funcionales.

Componentes funcionales

Núcleos del procesador

Un SoC debe tener al menos un núcleo de procesador , pero normalmente tiene más de uno. Los núcleos de procesador pueden ser un microcontrolador , un microprocesador (μP), [ 11 ] un procesador de señal digital (DSP) o un núcleo de procesador de conjunto de instrucciones específico para la aplicación (ASIP). [ 12 ] Los ASIP tienen conjuntos de instrucciones personalizados para un dominio de aplicación y diseñados para ser más eficientes que las instrucciones de propósito general para un tipo específico de carga de trabajo. Los SoC multiprocesador tienen más de un núcleo de procesador por definición. La arquitectura Arm es una opción común para los núcleos de procesador de SoC porque algunos núcleos de arquitectura Arm son procesadores blandos especificados como núcleos IP . [ 11 ]

Memoria

Los SoC deben tener bloques de memoria semiconductores para realizar sus cálculos, al igual que los microcontroladores y otros sistemas embebidos . Dependiendo de la aplicación, la memoria del SoC puede formar una jerarquía de memoria y una jerarquía de caché . En el mercado de la computación móvil, esto es común, pero en muchos microcontroladores embebidos de bajo consumo , esto no es necesario. Las tecnologías de memoria para SoC incluyen memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), ROM programable borrable eléctricamente ( EEPROM ) y memoria flash . [ 11 ] Al igual que en otros sistemas informáticos, la RAM se puede subdividir en RAM estática (SRAM) relativamente más rápida pero más cara y RAM dinámica (DRAM) más lenta pero más barata . Cuando un SoC tiene una jerarquía de caché , la SRAM se utilizará normalmente para implementar los registros del procesador y las cachés integradas de los núcleos, mientras que la DRAM se utilizará para la memoria principal . La "memoria principal" puede ser específica de un solo procesador (que puede ser multinúcleo ) cuando el SoC tiene varios procesadores , en este caso es memoria distribuida y debe enviarse a través de la  comunicación entre módulos en el chip para que un procesador diferente pueda acceder a ella. [ 12 ] Para una discusión más detallada de los problemas de memoria de multiprocesamiento, consulte coherencia de caché y latencia de memoria .

Interfaces

Los SoC incluyen interfaces externas , generalmente para protocolos de comunicación . Estas suelen basarse en estándares de la industria como USB , Ethernet , USART , SPI , HDMI , I²C , CSI , etc. Estas interfaces varían según la aplicación prevista. También pueden ser compatibles con protocolos de redes inalámbricas como Wi-Fi , Bluetooth , 6LoWPAN y comunicación de campo cercano (NFC) .

Cuando es necesario, los SoC incluyen interfaces analógicas , como convertidores analógico-digitales y digital-analógicos , a menudo para el procesamiento de señales . Estas interfaces pueden conectarse con diferentes tipos de sensores o actuadores , incluidos transductores inteligentes . También pueden conectarse con módulos o placas de expansión específicos para cada aplicación. [ nb 1 ] O bien, pueden ser internas al SoC, como cuando un sensor analógico está integrado en el SoC y sus lecturas deben convertirse a señales digitales para su procesamiento matemático.

Procesadores de señales digitales

Los núcleos de procesador de señal digital (DSP) suelen incluirse en los SoC. Realizan operaciones de procesamiento de señales en los SoC para sensores , actuadores , recopilación de datos , análisis de datos y procesamiento multimedia. Los núcleos DSP suelen presentar arquitecturas de conjunto de instrucciones de palabra de instrucción muy larga (VLIW) y de instrucción única, datos múltiples (SIMD) , y por lo tanto son muy adecuados para explotar el paralelismo a nivel de instrucción a través del procesamiento paralelo y la ejecución superescalar . [ 12 ] : 4 Los núcleos SP suelen presentar instrucciones específicas de la aplicación y, como tales, suelen ser procesadores de conjunto de instrucciones específicos de la aplicación (ASIP). Dichas instrucciones específicas de la aplicación corresponden a unidades funcionales de hardware dedicadas que calculan esas instrucciones.

Las instrucciones típicas de DSP incluyen multiplicación-acumulación , transformada rápida de Fourier , multiplicación-suma fusionada y convoluciones .

Otro

Al igual que otros sistemas informáticos, los SoC requieren fuentes de temporización para generar señales de reloj , controlar la ejecución de las funciones del SoC y proporcionar contexto temporal a las aplicaciones de procesamiento de señales del SoC, si es necesario. Las fuentes de temporización más comunes son los osciladores de cristal y los bucles de enganche de fase .

Los periféricos del SoC incluyen contadores -temporizadores, temporizadores en tiempo real y generadores de reinicio al encenderse . Los SoC también incluyen reguladores de voltaje y circuitos de administración de energía .

Comunicación entre módulos

Los SoC constan de muchas unidades de ejecución . Estas unidades a menudo deben enviar datos e instrucciones de un lado a otro. Por ello, todos los SoC, salvo los más sencillos, requieren subsistemas de comunicación . Originalmente, al igual que con otras tecnologías de microcomputadoras , se utilizaban arquitecturas de bus de datos , pero recientemente los diseños basados ​​en redes de intercomunicación dispersas, conocidas como redes en chip (NoC), han cobrado gran importancia y se prevé que superen a las arquitecturas de bus en el diseño de SoC en un futuro próximo. [ 13 ]

Comunicación basada en bus

Históricamente, un bus informático global compartido conectaba los diferentes componentes, también llamados "bloques" del SoC. [ 13 ] Un bus muy común para las comunicaciones del SoC es el estándar libre de regalías Advanced Microcontroller Bus Architecture ( AMBA ) de Arm.

Los controladores de acceso directo a memoria (DMAC) enrutan los datos directamente entre las interfaces externas y la memoria del SoC, sin pasar por la CPU ni la unidad de control , lo que aumenta el rendimiento de datos del SoC. Esto es similar a algunos controladores de dispositivos periféricos en arquitecturas de PC modulares multichip .

El retardo de los cables no es escalable debido a la continua miniaturización , el rendimiento del sistema no aumenta con el número de núcleos conectados, la frecuencia de funcionamiento del SoC debe disminuir con cada núcleo adicional conectado para que la alimentación sea sostenible, y los cables largos consumen grandes cantidades de energía eléctrica. Estos desafíos impiden el soporte de sistemas multinúcleo en un chip. [ 13 ] : xiii

Red en un chip

A finales de la década de 2010, surgió una tendencia en los SoC a implementar subsistemas de comunicación con una topología de red en lugar de protocolos basados ​​en bus . Esta tendencia hacia un mayor número de núcleos de procesador en los SoC ha convertido la eficiencia de la comunicación en el chip en uno de los factores clave para determinar el rendimiento y el coste total del sistema. [ 13 ] : xiii Esto ha dado lugar a la aparición de redes de interconexión con conmutación de paquetes basada en enrutadores , conocidas como " redes en chip " (NoC), para superar los cuellos de botella de las redes basadas en bus. [ 13 ] : xiii

Las redes en chip tienen ventajas que incluyen enrutamiento específico para destinos y aplicaciones , mayor eficiencia energética y menor posibilidad de contención de bus . Las arquitecturas de redes en chip se inspiran en protocolos de comunicación como TCP y el conjunto de protocolos de Internet para la comunicación en chip, [ 13 ] aunque suelen tener menos capas de red . Las arquitecturas de red óptimas en chip son un área de investigación en curso de gran interés. Las arquitecturas NoC abarcan desde topologías de redes de computación distribuida tradicionales como toro , hipercubo , mallas y redes de árbol hasta programación de algoritmos genéticos y algoritmos aleatorios como paseos aleatorios con ramificación y tiempo de vida (TTL) aleatorio.

Muchos investigadores de SoC consideran que las arquitecturas NoC representan el futuro del diseño de SoC, ya que han demostrado satisfacer de manera eficiente las necesidades de potencia y rendimiento de estos diseños. Las arquitecturas NoC actuales son bidimensionales. El diseño de circuitos integrados 2D presenta opciones de distribución física limitadas a medida que aumenta el número de núcleos en los SoC, por lo que , con la aparición de los circuitos integrados tridimensionales (3DIC), los diseñadores de SoC buscan construir redes tridimensionales en el chip, conocidas como 3DNoC. [ 13 ]

Flujo de diseño

Flujo de diseño de SoC

Un sistema en un chip (SoC) consta tanto del hardware , descrito en la sección  Estructura , como del software que controla los núcleos del microcontrolador, microprocesador o procesador de señal digital, los periféricos y las interfaces. El flujo de diseño de un SoC busca desarrollar este hardware y software simultáneamente, lo que se conoce como codiseño arquitectónico . El flujo de diseño también debe tener en cuenta las optimizaciones ( véase  Objetivos de optimización ) y las restricciones.

La mayoría de los SoC se desarrollan a partir de especificaciones de núcleos IP de componentes de hardware precalificados para los elementos de hardware y las unidades de ejecución , denominados colectivamente "bloques", descritos anteriormente, junto con controladores de dispositivos de software que pueden controlar su funcionamiento. Son de particular importancia las pilas de protocolos que gestionan las interfaces estándar de la industria, como USB . Los bloques de hardware se ensamblan utilizando herramientas de diseño asistido por computadora , específicamente herramientas de automatización del diseño electrónico ; los módulos de software se integran utilizando un entorno de desarrollo integrado de software .

Los componentes de los SoC también suelen diseñarse en lenguajes de programación de alto nivel como C++ , MATLAB o SystemC y se convierten a diseños RTL mediante herramientas de síntesis de alto nivel (HLS) como C a HDL o flujo a HDL . [ 14 ] Los productos HLS denominados "síntesis algorítmica" permiten a los diseñadores utilizar C++ para modelar y sintetizar sistemas, circuitos, software y niveles de verificación, todo en un lenguaje de alto nivel comúnmente conocido por los ingenieros informáticos , de forma independiente de las escalas de tiempo, que normalmente se especifican en HDL. [ 15 ] Otros componentes pueden permanecer como software y compilarse e integrarse en procesadores de núcleo blando incluidos en el SoC como módulos en HDL como núcleos IP .

Una vez definida la arquitectura del SoC, los nuevos elementos de hardware se escriben en un lenguaje de descripción de hardware abstracto denominado nivel de transferencia de registros (RTL), que define el comportamiento del circuito, o bien se sintetizan en RTL a partir de un lenguaje de alto nivel mediante síntesis de alto nivel. Estos elementos se conectan entre sí en un lenguaje de descripción de hardware para crear el diseño completo del SoC. La lógica especificada para conectar estos componentes y convertir entre las posibles interfaces diferentes proporcionadas por distintos proveedores se denomina lógica de interconexión .

Verificación del diseño

Los chips se verifican para comprobar su corrección antes de enviarlos a una fundición de semiconductores . Este proceso se denomina verificación funcional y representa una parte significativa del tiempo y la energía invertidos en el ciclo de vida del diseño del chip , a menudo citada como el 70 %. [ 16 ] [ 17 ] Con la creciente complejidad de los chips, se utilizan lenguajes de verificación de hardware como SystemVerilog , SystemC , e y OpenVera. Los errores encontrados en la etapa de verificación se notifican al diseñador.

Tradicionalmente, los ingenieros han empleado la aceleración de simulación, la emulación o la creación de prototipos en hardware reprogramable para verificar y depurar el hardware y el software de los diseños de SoC antes de la finalización del diseño, conocida como tape-out . Las matrices de puertas programables en campo (FPGA) son las preferidas para la creación de prototipos de SoC porque los prototipos FPGA son reprogramables, permiten la depuración y son más flexibles que los circuitos integrados de aplicación específica (ASIC). [ 18 ] [ 19 ]

Gracias a su alta capacidad y rapidez de compilación, la aceleración de la simulación y la emulación son tecnologías potentes que ofrecen una amplia visibilidad de los sistemas. Sin embargo, ambas tecnologías operan lentamente, a frecuencias del orden de MHz, lo que puede ser significativamente más lento —hasta 100 veces más lento— que la frecuencia de funcionamiento del SoC. Además, los dispositivos de aceleración y emulación son muy grandes y costosos, con precios superiores a un  millón de dólares estadounidenses.

En cambio, los prototipos FPGA utilizan directamente las FPGA para permitir a los ingenieros validar y probar sistemas a su frecuencia de funcionamiento máxima o cercana a ella, utilizando estímulos del mundo real. Herramientas como Certus [ 20 ] se emplean para insertar sondas en el RTL de la FPGA, lo que permite observar las señales. Esto se utiliza para depurar las interacciones entre hardware, firmware y software en múltiples FPGA, con capacidades similares a las de un analizador lógico.

Paralelamente, los elementos de hardware se agrupan y se someten a un proceso de síntesis lógica , durante el cual se aplican restricciones de rendimiento, como la frecuencia operativa y los retardos de señal previstos. Esto genera un resultado conocido como lista de conexiones (netlist) , que describe el diseño como un circuito físico y sus interconexiones. Estas listas de conexiones se combinan con la lógica de interconexión de los componentes para producir la descripción esquemática del SoC como un circuito que se puede imprimir en un chip. Este proceso se conoce como colocación y enrutamiento , y precede a la fabricación del chip ( tape-out ) en caso de que los SoC se produzcan como circuitos integrados de aplicación específica (ASIC).

Objetivos de optimización

Los SoC deben optimizar el consumo de energía , el área en el chip , la comunicación, el posicionamiento para la localización entre unidades modulares y otros factores. La optimización es un objetivo de diseño fundamental para los SoC. Si no fuera necesaria, los ingenieros utilizarían una arquitectura de módulos multichip sin tener en cuenta el área, el consumo de energía ni el rendimiento del sistema en la misma medida.

A continuación se presentan los objetivos de optimización más comunes para los diseños de SoC, con explicaciones de cada uno. En general, optimizar cualquiera de estas cantidades puede ser un problema de optimización combinatoria complejo, e incluso NP-difícil . Por lo tanto, a menudo se requieren algoritmos de optimización sofisticados y, en algunos casos, puede ser práctico utilizar algoritmos de aproximación o heurísticas . Además, la mayoría de los diseños de SoC contienen múltiples variables que deben optimizarse simultáneamente , por lo que se buscan soluciones eficientes de Pareto . Con frecuencia, los objetivos de optimización de algunas de estas cantidades son directamente contradictorios, lo que añade complejidad a la optimización del diseño de SoC e introduce compromisos en el diseño del sistema.

Para obtener una cobertura más amplia sobre las ventajas y desventajas y el análisis de requisitos , consulte la sección de ingeniería de requisitos .

Objetivos

Consumo de energía

Los SoC están optimizados para minimizar la energía eléctrica utilizada para realizar sus funciones. La mayoría de los SoC deben consumir poca energía. Los sistemas SoC a menudo requieren una batería de larga duración (como los teléfonos inteligentes ), pueden pasar meses o años sin una fuente de alimentación mientras necesitan mantener su funcionamiento autónomo, y con frecuencia su consumo de energía se ve limitado por la gran cantidad de SoC integrados conectados en red en un área. Además, los costos de energía pueden ser altos y ahorrar energía reducirá el costo total de propiedad del SoC. Finalmente, el calor residual del alto consumo de energía puede dañar otros componentes del circuito si se disipa demasiado calor, lo que constituye otra razón práctica para ahorrar energía. La cantidad de energía utilizada en un circuito es la integral de la potencia consumida con respecto al tiempo, y la tasa promedio de consumo de energía es el producto de la corriente por el voltaje . De forma equivalente, según la ley de Ohm , la potencia es igual a la corriente al cuadrado multiplicada por la resistencia o al voltaje al cuadrado dividido por la resistencia .

PAG=IV=V2R=I2R{\displaystyle P=IV={\frac {V^{2}}{R}}={I^{2}}{R}}Los SoC se integran frecuentemente en dispositivos portátiles como teléfonos inteligentes , dispositivos de navegación GPS , relojes digitales (incluidos los relojes inteligentes ) y netbooks . Los clientes buscan una larga duración de la batería en los dispositivos informáticos móviles , otra razón por la que el consumo de energía debe minimizarse en los SoC. En estos dispositivos se suelen ejecutar aplicaciones multimedia , como videojuegos, transmisión de vídeo y procesamiento de imágenes ; todas ellas han aumentado su complejidad computacional en los últimos años debido a las demandas y expectativas de los usuarios de una mayor calidad multimedia. La computación es más exigente a medida que las expectativas se orientan hacia el vídeo 3D de alta resolución con múltiples estándares , por lo que los SoC que realizan tareas multimedia deben ser plataformas con capacidad computacional y, al mismo tiempo, de bajo consumo para funcionar con una batería móvil estándar. [ 12 ] : 3

Rendimiento por vatio

Los SoC están optimizados para maximizar la eficiencia energética en términos de rendimiento por vatio: maximizar el rendimiento del SoC con un presupuesto de consumo energético determinado. Muchas aplicaciones, como la computación perimetral , el procesamiento distribuido y la inteligencia ambiental, requieren un cierto nivel de rendimiento computacional , pero la potencia es limitada en la mayoría de los entornos SoC.

Calor residual

Los diseños de SoC están optimizados para minimizar la emisión de calor residual en el chip. Al igual que con otros circuitos integrados , el calor generado debido a la alta densidad de potencia es el principal obstáculo para una mayor miniaturización de los componentes. [ 21 ] : 1 Las densidades de potencia de los circuitos integrados de alta velocidad, en particular los microprocesadores, incluidos los SoC, se han vuelto muy desiguales. Un exceso de calor residual puede dañar los circuitos y erosionar su fiabilidad con el tiempo. Las altas temperaturas y el estrés térmico impactan negativamente en la fiabilidad, la migración de tensiones , la disminución del tiempo medio entre fallos , la electromigración , la unión de cables , la metaestabilidad y otras degradaciones del rendimiento del SoC con el tiempo. [ 21 ] : 2–9

En particular, la mayoría de los SoC se encuentran en un área o volumen físico pequeño y, por lo tanto, los efectos del calor residual se agravan porque hay poco espacio para que se difunda fuera del sistema. Debido a la gran cantidad de transistores en los dispositivos modernos, a menudo es físicamente posible realizar un diseño con un rendimiento suficiente y una alta densidad de transistores mediante procesos de fabricación, pero esto daría como resultado cantidades inaceptablemente altas de calor en el volumen del circuito. [ 21 ] : 1

Estos efectos térmicos obligan a los diseñadores de SoC y otros chips a aplicar márgenes de diseño conservadores , creando dispositivos de menor rendimiento para mitigar el riesgo de fallos catastróficos . Debido al aumento de la densidad de transistores a medida que las escalas de longitud se reducen, cada generación de proceso produce más calor que la anterior. Para agravar este problema, las arquitecturas de SoC suelen ser heterogéneas, creando flujos de calor espacialmente inhomogéneos , que no pueden mitigarse eficazmente mediante refrigeración pasiva uniforme . [ 21 ] : 1

Rendimiento

Los SoC están optimizados para maximizar el rendimiento computacional y de comunicaciones .

Estado latente

Los SoC se optimizan para minimizar la latencia en algunas o todas sus funciones. Esto se logra mediante la disposición de los elementos con la proximidad y localidad adecuadas entre sí para minimizar los retrasos de interconexión y maximizar la velocidad de comunicación de datos entre módulos, unidades funcionales y memorias. En general, la optimización para minimizar la latencia es un problema NP-completo equivalente al problema de satisfacibilidad booleana .

Para las tareas que se ejecutan en los núcleos del procesador, la latencia y el rendimiento pueden mejorarse mediante la planificación de tareas . Sin embargo, algunas tareas se ejecutan en unidades de hardware específicas de la aplicación, e incluso la planificación de tareas puede no ser suficiente para optimizar todas las tareas basadas en software y cumplir con las restricciones de tiempo y rendimiento.

Metodologías

Los sistemas en chip se modelan con técnicas estándar de verificación y validación de hardware , pero se utilizan técnicas adicionales para modelar y optimizar las alternativas de diseño del SoC con el fin de lograr que el sistema sea óptimo con respecto al análisis de decisiones multicriterio sobre los objetivos de optimización mencionados anteriormente.

Programación de tareas

La planificación de tareas es una actividad importante en cualquier sistema informático con múltiples procesos o hilos que comparten un único núcleo de procesador. Es fundamental reducir la  latencia y aumentar el  rendimiento del software integrado que se ejecuta en los núcleos de procesador de  un SoC . No todas las actividades informáticas importantes en un SoC se realizan mediante software que se ejecuta en los procesadores integrados, pero la planificación puede mejorar drásticamente el rendimiento de las tareas basadas en software y otras tareas que implican recursos compartidos .

El software que se ejecuta en los SoC suele programar las tareas según algoritmos de programación de red y de programación aleatoria .

Tuberías

Las tareas de hardware y software suelen estar segmentadas en el diseño de procesadores . La segmentación es un principio importante para la aceleración en la arquitectura de computadoras . Se utiliza con frecuencia en CPU (por ejemplo, la segmentación RISC clásica ) y GPU ( segmentación gráfica ), pero también se aplica a tareas específicas de aplicaciones, como el procesamiento de señales digitales y la manipulación multimedia en el contexto de los SoC. [ 12 ]

Modelado probabilístico

Los SoC se analizan frecuentemente mediante modelos probabilísticos , redes de colas y cadenas de Markov . Por ejemplo, la ley de Little permite modelar los estados de los SoC y los búferes de las redes de computación en red (NoC) como procesos de llegada y analizarlos mediante variables aleatorias de Poisson y procesos de Poisson .

cadenas de Markov

Los SoC se suelen modelar con cadenas de Markov , tanto en su versión de tiempo discreto como continuo . El modelado mediante cadenas de Markov permite el análisis asintótico de la distribución en estado estacionario de la potencia, el calor, la latencia y otros factores del SoC , lo que facilita la optimización de las decisiones de diseño para el caso más común.

Fabricación

Los chips SoC se fabrican típicamente utilizando tecnología de metal-óxido-semiconductor (MOS). [ 22 ] Las listas de conexiones descritas anteriormente se utilizan como base para el flujo de diseño físico ( colocación y enrutamiento ) para convertir la intención de los diseñadores en el diseño del SoC. A lo largo de este proceso de conversión, el diseño se analiza con modelado de temporización estática, simulación y otras herramientas para garantizar que cumpla con los parámetros operativos especificados, tales como frecuencia, consumo y disipación de energía, integridad funcional (como se describe en el código de nivel de transferencia de registros) e integridad eléctrica.

Una vez corregidos todos los errores conocidos, verificados nuevamente y realizadas todas las comprobaciones de diseño físico, los archivos de diseño físico que describen cada capa del chip se envían al taller de máscaras de la fundición, donde se grabará un juego completo de máscaras litográficas de vidrio. Estas se envían a una planta de fabricación de obleas para crear los chips SoC antes del empaquetado y las pruebas.

Los SoC se pueden fabricar mediante varias tecnologías, entre las que se incluyen:

Los ASIC consumen menos energía y son más rápidos que los FPGA, pero no se pueden reprogramar y su fabricación es costosa. Los diseños con FPGA son más adecuados para producciones de bajo volumen, pero tras alcanzar un número suficiente de unidades, los ASIC reducen el coste total de propiedad. [ 23 ]

Los diseños SoC consumen menos energía, tienen un menor costo y una mayor fiabilidad que los sistemas multichip a los que reemplazan. Al haber menos encapsulados en el sistema, también se reducen los costos de ensamblaje.

Sin embargo, al igual que ocurre con la mayoría de los diseños de integración a muy gran escala (VLSI), el coste total es mayor para un chip grande que para la misma funcionalidad distribuida en varios chips más pequeños, debido a los menores rendimientos y a los mayores costes de ingeniería no recurrentes .

Cuando no es factible construir un SoC para una aplicación particular, una alternativa es un sistema en paquete (SiP) que comprende varios chips en un solo paquete . Cuando se producen en grandes volúmenes, el SoC es más rentable que el SiP porque su empaquetado es más simple. [ 24 ] Otra razón por la que se puede preferir el SiP es que el calor residual puede ser demasiado alto en un SoC para un propósito dado porque los componentes funcionales están demasiado cerca unos de otros, y en un SiP el calor se disipará mejor desde los diferentes módulos funcionales ya que están físicamente más separados.

Ejemplos

Algunos ejemplos de sistemas en un chip son:

Puntos de referencia

La investigación y el desarrollo de SoC a menudo comparan muchas opciones. Los puntos de referencia, como COSMIC, [ 25 ] se desarrollan para ayudar en dichas evaluaciones.

Véase también

Notas

  1. En los sistemas embebidos , los "shields" son análogos a las tarjetas de expansión para PC . Suelen acoplarse a un microcontrolador como un Arduino o a una computadora de placa única como la Raspberry Pi y funcionan como periféricos para el dispositivo.

Referencias

  1. Shah, Agam (3 de enero de 2017). "7 mejoras deslumbrantes para smartphones con el chip Snapdragon 835 de Qualcomm" . Network World .
  2. Amadeo, R. (18 de febrero de 2020). "El Snapdragon X60 de Qualcomm promete módems 5G más pequeños en 2021" . Ars Technica . Conde Nast . Consultado el 17 de diciembre de 2023 .
  3. Pete Bennett (2 de diciembre de 2004). "El por qué, el dónde y el qué del diseño de SoC de baja potencia " . EE Times . Consultado el 28 de julio de 2015 .
  4. Nolan, Stephen M. "Gestión de energía para el desarrollo de sistemas en chip (SoC) de Internet de las cosas (IoT)" . Diseño y reutilización . Consultado el 25 de septiembre de 2018 .
  5. "¿Es un procesador SOC de un solo chip adecuado para su proyecto embebido?" . Embedded . Consultado el 13 de octubre de 2018 .
  6. "Qualcomm lanza SoC para visión embebida | Imaging and Machine Vision Europe" . www.imveurope.com . Consultado el 13 de octubre de 2018 .
  7. "Desmontaje del Samsung Galaxy S10 y S10e" . iFixit . 6 de marzo de 2019.
  8. "ARM va tras Intel con una nueva hoja de ruta de chips hasta 2020" . Windows Central . Consultado el 6 de octubre de 2018 .
  9. "PCs siempre conectadas, portátiles 4G LTE con batería de larga duración | Windows" . www.microsoft.com . Consultado el 6 de octubre de 2018 .
  10. "Módems celulares LTE, 4G LTE y 5G de clase Gigabit | Qualcomm" . Qualcomm . Consultado el 13 de octubre de 2018 .
  11. 1 2 3 Furber, Stephen B. (2000). Arquitectura de sistema en chip ARM . Harlow, Inglaterra: Addison-Wesley. ISBN 0-201-67519-6OCLC 44267964 
  12. 1 2 3 4 5 Haris Javaid; Sri Parameswaran (2014). Sistema en chip multiprocesador segmentado para multimedia . Springer . ISBN 978-3-319-01113-4OCLC 869378184 
  13. 1 2 3 4 5 6 7 Kundu, Santanu; Chattopadhyay, Santanu (2014). Red en chip: la próxima generación de integración de sistemas en chip (1.ª ed.). Boca Raton, FL: CRC Press. ISBN  978-1-4665-6527-2OCLC 895661009 
  14. "Mejores prácticas para la creación de prototipos FPGA de algoritmos de MATLAB y Simulink" . EEJournal . 25 de agosto de 2011. Consultado el 8 de octubre de 2018 .
  15. Bowyer, Bryan (5 de febrero de 2005). "El 'por qué' y el 'qué' de la síntesis algorítmica" . EE Times . Consultado el 8 de octubre de 2018 .
  16. "¿La verificación es realmente del 70 por ciento?" . EE Times . 14 de junio de 2004 . Consultado el 28 de julio de 2015 .
  17. "Diferencia entre verificación y validación" . Clase de pruebas de software . 26 de agosto de 2013. Recuperado el 30 de abril de 2018. En las entrevistas , la mayoría de los entrevistadores hacen preguntas sobre "¿Cuál es la diferencia entre verificación y validación?". Muchas personas usan verificación y validación indistintamente, pero ambas tienen significados diferentes.
  18. Rittman, Danny (5 de enero de 2006). "Prototipado nanométrico" (PDF) . Tayden Design . Consultado el 7 de octubre de 2018 .
  19. "Prototipado de FPGA a producción estructurada de ASIC para reducir costos, riesgos y tiempo de comercialización" . Diseño y reutilización . Consultado el 7 de octubre de 2018 .
  20. Brian Bailey (30 de octubre de 2012). "Tektronix espera revolucionar la creación de prototipos ASIC" . EE Times . Consultado el 28 de julio de 2015 .
  21. 1 2 3 4 Ogrenci-Memik, Seda (2015). Gestión térmica en circuitos integrados: monitorización y refrigeración a nivel de chip y de sistema . Londres, Reino Unido: The Institution of Engineering and Technology. ISBN 978-1-84919-935-3OCLC 934678500 
  22. Lin, Youn-Long Steve (2007). Cuestiones esenciales en el diseño de SOC: Diseño de sistemas complejos en chip . Springer Science & Business Media . pág. 176. ISBN  978-1-4020-5352-8.
  23. "FPGA vs ASIC: Diferencias entre ellos y cuál usar? – Centro de ayuda de Numato Lab" . numato.com . 17 de julio de 2018. Consultado el 17 de octubre de 2018 .
  24. "El gran debate: SOC vs. SIP" . EE Times . 21 de marzo de 2005. Consultado el 28 de julio de 2015 .
  25. "CÓSMICO" . www.ece.ust.hk. Consultado el 8 de octubre de 2018 .

Lecturas adicionales

  • Badawy, Wael; Jullien, Graham A., eds. (2003). Sistema en chip para aplicaciones en tiempo real . Serie internacional de ingeniería e informática de Kluwer, SECS 711. Boston: Kluwer Academic Publishers . ISBN 978-1-4020-7254-3OCLC 50478525 465 páginas.
  • Furber, Stephen B. (2000). Arquitectura de sistema en chip ARM . Boston: Addison-Wesley. ISBN 0-201-67519-6.
  • Kundu, Santanu; Chattopadhyay, Santanu (2014). Network-on-chip: the Next Generation of System-on-Chip Integration (1.ª  ed.). Boca Raton, FL: CRC Press. ISBN 978-1-4665-6527-2OCLC 895661009 
  • Conferencia Internacional Anual de SoC del IEEE
  • Baya es una herramienta gratuita para el ensamblaje de plataformas SoC e integración de IP.
  • Sistemas en chip para aplicaciones embebidas , seminario de la Universidad de Auburn sobre VLSI.
  • SoC instantáneo SoC para FPGA definido por C++
  • MPSoC – Conferencia anual sobre MPSoC
  • Simposio anual