Sistema en un chip

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Componente microelectrónico
Sistema Apple M1 en un chip

Un sistema en un chip o sistema en chip (SoC; pl. SoCs) es un circuito integrado que integra la mayoría o todos los componentes de una computadora u otro sistema electrónico. Estos componentes casi siempre incluyen una unidad de procesamiento central (CPU), interfaces de memoria, dispositivos de entrada/salida en el chip, interfaces de entrada/salida e interfaces de almacenamiento secundarias, a menudo junto con otros componentes como módems de radio y una unidad de procesamiento de gráficos (GPU). – todo en un solo sustrato o microchip. Puede contener funciones de procesamiento de señales digitales y también analógicas, de señal mixta y, a menudo, de radiofrecuencia (de lo contrario, puede considerarse solo un procesador de aplicaciones).

Los SoC de mayor rendimiento a menudo se combinan con chips de memoria y almacenamiento secundario dedicados y físicamente separados (como LPDDR y eUFS o eMMC, respectivamente), que se pueden superponer en capas sobre el SoC en lo que se conoce como configuración de paquete sobre paquete (PoP), o colocarse cerca del SoC. Además, los SoC pueden usar módems inalámbricos separados.

Los SoC contrastan con la arquitectura de PC tradicional común basada en placa base, que separa los componentes según su función y los conecta a través de una placa de circuito de interfaz central. Mientras que una placa base alberga y conecta componentes desmontables o reemplazables, los SoC integran todos estos componentes en un solo circuito integrado. Un SoC normalmente integrará una CPU, interfaces gráficas y de memoria, almacenamiento secundario y conectividad USB, memorias de acceso aleatorio y de solo lectura y almacenamiento secundario y/o sus controladores en un solo circuito, mientras que una placa base conectaría estos módulos como módulos discretos. componentes o tarjetas de expansión.

Un SoC integra un microcontrolador, un microprocesador o quizás varios núcleos de procesador con periféricos como una GPU, Wi-Fi y módems de radio de red celular, y/o uno o más coprocesadores. De manera similar a cómo un microcontrolador integra un microprocesador con circuitos periféricos y memoria, se puede considerar que un SoC integra un microcontrolador con periféricos aún más avanzados. Para obtener una descripción general de la integración de los componentes del sistema, consulte integración del sistema.

En comparación con una arquitectura de varios chips, un SoC con una funcionalidad equivalente tendrá un mayor rendimiento y un menor consumo de energía, así como un área de matriz de semiconductores más pequeña. Esto tiene el costo de una capacidad de reemplazo reducida de los componentes. Por definición, los diseños de SoC están completamente o casi completamente integrados en diferentes módulos de componentes. Por estas razones, ha habido una tendencia general hacia una integración más estrecha de los componentes en la industria del hardware informático, en parte debido a la influencia de los SoC y las lecciones aprendidas de los mercados de computación integrada y móvil. Los SoC pueden verse como parte de una tendencia más amplia hacia la computación integrada y la aceleración de hardware.

Los SoC son muy comunes en los mercados de la informática móvil (como en los teléfonos inteligentes y las tabletas) y de la informática perimetral. También se usan comúnmente en sistemas integrados como enrutadores WiFi e Internet de las cosas.

Tipos

Sistema microcontrolador basado en un chip

En general, hay tres tipos distinguibles de SoC:

  • SoCs construido alrededor de un microcontrolador,
  • SoCs construido alrededor de un microprocesador, a menudo encontrado en teléfonos móviles;
  • Circuito integrado específico para aplicaciones SoCs diseñado 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, normalmente se utilizan en la informática móvil, como tabletas, teléfonos inteligentes, relojes inteligentes y netbooks, así como en sistemas integrados y en aplicaciones en las que antes se utilizaban microcontroladores.

Sistemas integrados

Donde antes solo se podían usar microcontroladores, los SoC están adquiriendo prominencia en el mercado de sistemas integrados. Una integración más estrecha del sistema ofrece una mejor confiabilidad y un tiempo medio entre fallas, y los SoC ofrecen una funcionalidad y una potencia informática más avanzadas que los microcontroladores. Las aplicaciones incluyen aceleración de IA, visión artificial integrada, recopilación de datos, telemetría, procesamiento de vectores e inteligencia ambiental. A menudo, los SoC integrados tienen como objetivo el Internet de las cosas, el Internet industrial de las cosas y los mercados de computación perimetral.

Informática móvil

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

  • Samsung Electronics: lista, típicamente basada en ARM
    • Exynos, utilizado principalmente por la serie Galaxy de Samsung de teléfonos inteligentes
  • Qualcomm:
    • Snapdragon (lista), utilizado en muchos teléfonos inteligentes LG, Xiaomi, Google Pixel, HTC y Samsung Galaxy. En 2018, Snapdragon SoCs está siendo utilizado como la columna vertebral de ordenadores portátiles que ejecutan Windows 10, comercializado como "Siempre conectado PCs".

Ordenadores personales

En 1992, Acorn Computers produjo la gama de computadoras personales A3010, A3020 y A4000 con el SoC ARM250. Combinaba el procesador Acorn ARM2 original con un controlador de memoria (MEMC), un controlador de video (VIDC) y un controlador de E/S (IOC). En las computadoras anteriores con tecnología ARM Acorn, estos eran cuatro chips discretos. El chip ARM7500 fue su SoC de segunda generación, basado en los controladores ARM700, VIDC20 e IOMD, y tenía amplias licencias en dispositivos integrados como decodificadores, así como en las computadoras personales Acorn posteriores.

Los SoC se están aplicando a las computadoras personales convencionales a partir de 2018. Se aplican particularmente a las computadoras portátiles y las tabletas. Los fabricantes de tabletas y computadoras portátiles han aprendido lecciones de los sistemas integrados y los mercados de teléfonos inteligentes sobre el consumo de energía reducido, un mejor rendimiento y confiabilidad gracias a una integración más estrecha de los módulos de hardware y firmware, y LTE y otras comunicaciones de red inalámbrica integradas en el chip (controladores de interfaz de red integrados).

Basado en ARM:

  • Qualcomm Snapdragon
  • Apple M1

basado en x86:

  • Intel Core CULV

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 de procesador

Un SoC debe tener al menos un núcleo de procesador, pero normalmente un SoC tiene más de un núcleo. Los núcleos del procesador pueden ser un microcontrolador, un microprocesador (μP), un procesador de señal digital (DSP) o un núcleo de procesador de conjunto de instrucciones específico de la aplicación (ASIP). 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.

Ya sea de un solo núcleo, varios núcleos o muchos núcleos, los núcleos de procesador SoC suelen utilizar arquitecturas de conjuntos de instrucciones RISC. Las arquitecturas RISC son ventajosas sobre los procesadores CISC para SoC porque requieren menos lógica digital y, por lo tanto, menos energía y área a bordo, y en los mercados de computación integrada y móvil, el área y la energía a menudo están muy limitadas. En particular, los núcleos de procesador SoC a menudo usan la arquitectura ARM porque es un procesador suave especificado como un núcleo IP y es más eficiente en energía que x86.

Memoria

Los SoC deben tener bloques de memoria de semiconductores para realizar sus cálculos, al igual que los microcontroladores y otros sistemas integrados. Según la aplicación, la memoria SoC puede formar una jerarquía de memoria y una jerarquía de caché. En el mercado de la informática móvil, esto es común, pero en muchos microcontroladores integrados de bajo consumo 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. 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 costosa, y RAM dinámica (DRAM), más lenta pero más económica. Cuando un SoC tiene una jerarquía de caché, SRAM generalmente se usará para implementar registros y núcleos del procesador. cachés incorporados mientras que DRAM se utilizará para la memoria principal. "Memoria principal" puede ser específico de un solo procesador (que puede ser multinúcleo) cuando el SoC tiene múltiples procesadores, en este caso es memoria distribuida y debe enviarse a través de § Comunicación entre módulos en el chip para que un procesador diferente acceda a ella. Para obtener más información sobre problemas de memoria de procesamiento múltiple, consulte Coherencia de caché y latencia de memoria.

Interfaces

Los SoC incluyen interfaces externas, normalmente para protocolos de comunicación. A menudo se basan en estándares de la industria como USB, FireWire, Ethernet, USART, SPI, HDMI, I²C, etc. Estas interfaces diferirán según la aplicación prevista. También se pueden admitir protocolos de redes inalámbricas como Wi-Fi, Bluetooth, 6LoWPAN y comunicación de campo cercano.

Cuando es necesario, los SoC incluyen interfaces analógicas que incluyen convertidores de analógico a digital y de digital a analógico, a menudo para el procesamiento de señales. Estos pueden interactuar con diferentes tipos de sensores o actuadores, incluidos los transductores inteligentes. Pueden interactuar con módulos o escudos específicos de la aplicación. O pueden ser internos al SoC, por ejemplo, si un sensor analógico está integrado en el SoC y sus lecturas deben convertirse en señales digitales para el procesamiento matemático.

Procesadores de señales digitales

Los núcleos de procesador de señal digital (DSP) a menudo se incluyen en los SoC. Realizan operaciones de procesamiento de señales en 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 instrucción única y datos múltiples (SIMD) y palabras de instrucción muy largas (VLIW) y, por lo tanto, son muy aptos para explotar el paralelismo a nivel de instrucción a través del procesamiento paralelo y la ejecución superescalar. Los núcleos DSP suelen presentar instrucciones específicas de la aplicación y, como tales, suelen ser procesadores de conjunto de instrucciones específicas de la aplicación (ASIP). Tales 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, fusión de multiplicación-suma y convoluciones.

Otro

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

Periféricos SoC, incluidos contadores de tiempo, temporizadores en tiempo real y generadores de reinicio de encendido. Los SoC también incluyen reguladores de voltaje y circuitos de administración de energía.

Comunicación entre módulos

Los SoC comprenden muchas unidades de ejecución. Estas unidades a menudo deben enviar datos e instrucciones de un lado a otro. Debido a esto, todos los SoC, excepto los más triviales, requieren subsistemas de comunicaciones. Originalmente, al igual que con otras tecnologías de microcomputadoras, se usaban arquitecturas de bus de datos, pero recientemente los diseños basados en redes de intercomunicación dispersas conocidas como redes en chip (NoC) han ganado prominencia y se pronostica que superarán a las arquitecturas de bus para el diseño de SoC en un futuro cercano..

Comunicación basada en bus

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

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

Los buses de computadora tienen una escalabilidad limitada y solo admiten hasta decenas de núcleos (multinúcleo) en un solo chip. El retraso de los cables no es escalable debido a la miniaturización continua, el rendimiento del sistema no aumenta con la cantidad de núcleos conectados, la frecuencia operativa del SoC debe disminuir con cada núcleo adicional conectado para que la energía sea sostenible y los cables largos consumen grandes cantidades de energía eléctrica. Estos desafíos son prohibitivos para admitir sistemas de muchos núcleos en el chip.

Red en un chip

A fines de la década de 2010, surgió una tendencia de los SoC que implementan subsistemas de comunicaciones en términos de una topología similar a una red en lugar de protocolos basados en bus. Una tendencia hacia más núcleos de procesador en los SoC ha provocado que la eficiencia de la comunicación en el chip se convierta en uno de los factores clave para determinar el rendimiento y el costo general del sistema. Esto ha llevado 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.

Las redes en chip tienen ventajas, incluido el enrutamiento específico de la aplicación y el destino, una mayor eficiencia energética y una posibilidad reducida de contención de bus. Las arquitecturas de red en chip se inspiran en protocolos de comunicación como TCP y el conjunto de protocolos de Internet para la comunicación en chip, aunque normalmente tienen menos capas de red. Las arquitecturas de red óptimas de red en chip son un área en curso de gran interés para la investigación. Las arquitecturas de NoC van desde las topologías de redes de computación distribuidas tradicionales, como toroide, hipercubo, mallas y redes de árboles, hasta la programación de algoritmos genéticos y algoritmos aleatorios, como paseos aleatorios con ramificación y tiempo de vida aleatorio (TTL).

Muchos investigadores de SoC consideran que las arquitecturas NoC son el futuro del diseño de SoC porque se ha demostrado que satisfacen de manera eficiente las necesidades de potencia y rendimiento de los diseños de SoC. Las arquitecturas NoC actuales son bidimensionales. El diseño de circuitos integrados en 2D tiene opciones de planificación limitadas a medida que aumenta la cantidad de núcleos en los SoC, por lo que a medida que surgen los circuitos integrados tridimensionales (3DIC), los diseñadores de SoC buscan construir redes tridimensionales en chip conocidas como 3DNoC.

Flujo de diseño

Flujo de diseño SoC

Un sistema en un chip consta tanto del hardware, descrito en § Estructura, como del software que controla el microcontrolador, el microprocesador o los núcleos, los periféricos y las interfaces del procesador de señales digitales. El flujo de diseño de un SoC tiene como objetivo desarrollar este hardware y software al mismo tiempo, también conocido como codiseño arquitectónico. El flujo de diseño también debe tener en cuenta las optimizaciones (§ Objetivos de optimización) y las restricciones.

La mayoría de los SoC se desarrollan a partir de especificaciones principales de IP de componentes de hardware precalificados para los elementos de hardware y las unidades de ejecución, colectivamente "bloques", descritos anteriormente, junto con controladores de dispositivos de software que pueden controlar su funcionamiento. De particular importancia son las pilas de protocolos que impulsan 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 de diseño electrónico; los módulos de software se integran utilizando un entorno de desarrollo integrado de software.

Los componentes de SoC también suelen diseñarse en lenguajes de programación de alto nivel, como C++, MATLAB o SystemC, y se convierten en diseños RTL a través de herramientas de síntesis de alto nivel (HLS), como C a HDL o flujo a HDL. Los productos HLS llamados "síntesis algorítmica" Permitir a los diseñadores usar 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 una manera independiente de las escalas de tiempo, que generalmente se especifican en HDL. Otros componentes pueden seguir siendo 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 que se ha definido la arquitectura del SoC, cualquier elemento de hardware nuevo se escribe en un lenguaje de descripción de hardware abstracto denominado nivel de transferencia de registro (RTL) que define el comportamiento del circuito, o se sintetiza en RTL desde un lenguaje de alto nivel a través de síntesis de nivel. Estos elementos están conectados entre sí en un lenguaje de descripción de hardware para crear el diseño de SoC completo. La lógica especificada para conectar estos componentes y convertir entre interfaces posiblemente diferentes proporcionadas por diferentes proveedores se denomina lógica de unión.

Verificación del diseño

Los chips se verifican para verificar 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, que a menudo se estima en un 70 %. 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 informan al diseñador.

Tradicionalmente, los ingenieros han empleado aceleración de simulación, emulación o creación de prototipos en hardware reprogramable para verificar y depurar hardware y software para diseños de SoC antes de la finalización del diseño, lo que se conoce como tape-out. Los arreglos de compuertas programables en campo (FPGA) se prefieren para crear prototipos de SoC porque los prototipos de FPGA son reprogramables, permiten la depuración y son más flexibles que los circuitos integrados específicos de la aplicación (ASIC).

Con una alta capacidad y un tiempo de compilación rápido, la emulación y la aceleración de la simulación son tecnologías poderosas que brindan una amplia visibilidad de los sistemas. Sin embargo, ambas tecnologías funcionan lentamente, del orden de MHz, lo que puede ser significativamente más lento (hasta 100 veces más lento) que la frecuencia operativa del SoC. Las cajas de aceleración y emulación también son muy grandes y caras, con un valor de más de un millón de dólares.

Los prototipos de FPGA, por el contrario, usan FPGA directamente para permitir que los ingenieros validen y prueben en, o cerca de, la frecuencia operativa completa de un sistema con estímulos del mundo real. Se utilizan herramientas como Certus para insertar sondas en la FPGA RTL que hacen que las señales estén disponibles para la observación. Esto se utiliza para depurar interacciones de hardware, firmware y software en múltiples FPGA con capacidades similares a un analizador lógico.

Paralelamente, los elementos de hardware se agrupan y pasan por un proceso de síntesis lógica, durante el cual se aplican restricciones de rendimiento, como la frecuencia operativa y los retrasos esperados de la señal. Esto genera una salida conocida como 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 unión que conecta 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 lugar y ruta y precede al tape-out en el caso de que los SoC se produzcan como circuitos integrados específicos de la aplicación (ASIC).

Objetivos de optimización

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

A continuación se describen los objetivos de optimización 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 difícil y, de hecho, puede ser NP-difícil con bastante facilidad. Por lo tanto, a menudo se requieren algoritmos de optimización sofisticados y puede ser práctico usar algoritmos de aproximación o heurística en algunos casos. Además, la mayoría de los diseños de SoC contienen múltiples variables para optimizar simultáneamente, por lo que se buscan soluciones eficientes de Pareto en el diseño de SoC. A menudo, los objetivos de optimizar algunas de estas cantidades están directamente en desacuerdo, lo que agrega más complejidad a la optimización del diseño de los SoC e introduce compensaciones en el diseño del sistema.

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

Objetivos

Consumo de energía

Los SoC están optimizados para minimizar la energía eléctrica utilizada para realizar las funciones de los SoC. La mayoría de los SoC deben usar 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 la función autónoma y, a menudo, tienen un uso de energía limitado por una gran cantidad de SoC integrados conectados en red en un área.. Además, los costos de energía pueden ser altos y la conservación de la 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, dando otra razón pragmática para conservar 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 potencia es el producto de la corriente por el voltaje. De manera equivalente, según la ley de Ohm, la potencia es la corriente al cuadrado por la resistencia o el voltaje al cuadrado dividido por la resistencia:

P=IV=V2R=I2R{displaystyle P=IV={frac {fnK} {fn}} {fn}} {fn}}} {f}}}} {f}}}} {f}}}} {}}}} {}}}} {}}}} {}}}} {}}}} {}}}} {}}}}} {}}}}} {}}}}}}}}}} {}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}} {}}}}}}} {} {}}}}}}} {}}}}}}}}}}}}}} {}} {}}}}}}}}} {} {} {}}}}} {}}}}} {}}}}}}} {}}}}} {}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

Rendimiento por vatio

Los SoC están optimizados para maximizar la eficiencia energética en rendimiento por vatio: maximice el rendimiento del SoC con un presupuesto de uso de energía. 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. La arquitectura ARM tiene un mayor rendimiento por vatio que x86 en sistemas integrados, por lo que se prefiere a x86 para la mayoría de las aplicaciones SoC que requieren un procesador integrado.

Calor residual

Los diseños de SoC están optimizados para minimizar la salida 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 cuello de botella para una mayor miniaturización de los componentes. Las densidades de potencia de los circuitos integrados de alta velocidad, en particular los microprocesadores e incluidos los SoC, se han vuelto muy desiguales. Demasiado calor residual puede dañar los circuitos y erosionar la confiabilidad del circuito con el tiempo. Las altas temperaturas y el estrés térmico tienen un impacto negativo en la confiabilidad, la migración del estrés, la disminución del tiempo medio entre fallas, la electromigración, la unión de cables, la metaestabilidad y otras degradaciones del rendimiento del SoC a lo largo del tiempo.

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 se puede realizar físicamente un diseño de rendimiento suficiente y alta densidad de transistores a partir de procesos de fabricación, pero daría como resultado cantidades inaceptablemente altas de calor en el volumen del circuito.

Estos efectos térmicos obligan a SoC y a otros diseñadores de chips a aplicar márgenes de diseño conservadores, creando dispositivos de menor rendimiento para mitigar el riesgo de fallas catastróficas. Debido al aumento de la densidad de los transistores a medida que las escalas de longitud se hacen más pequeñas, cada generación de procesos produce más calor que la anterior. Para agravar este problema, las arquitecturas SoC suelen ser heterogéneas, lo que crea flujos de calor espacialmente no homogéneos, que no pueden mitigarse de manera efectiva mediante un enfriamiento pasivo uniforme.

Rendimiento

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

Latencia

Los SoC están optimizados para minimizar la latencia para algunas o todas sus funciones. Esto se puede lograr colocando elementos con la proximidad y ubicación adecuadas entre sí para minimizar los retrasos de interconexión y maximizar la velocidad a la que se comunican los datos entre módulos, unidades funcionales y memorias. En general, optimizar para minimizar la latencia es un problema NP-completo equivalente al problema booleano de satisfacibilidad.

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

Metodologías

Los sistemas en chip se modelan con técnicas de verificación y validación de hardware estándar, pero se utilizan técnicas adicionales para modelar y optimizar las alternativas de diseño de SoC para que el sistema sea óptimo con respecto al análisis de decisión de múltiples criterios en los objetivos de optimización anteriores.

Programación de tareas

La programación de tareas es una actividad importante en cualquier sistema informático con múltiples procesos o subprocesos que comparten un solo núcleo de procesador. Es importante reducir § Latencia y aumentar § Rendimiento para el 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 en software que se ejecuta en procesadores en chip, pero la programación puede mejorar drásticamente el rendimiento de las tareas basadas en software y otras tareas que involucran recursos compartidos.

Los SoC a menudo programan tareas de acuerdo con la programación de red y los algoritmos de programación aleatoria.

Conducción

Las tareas de hardware y software a menudo se canalizan en el diseño del procesador. La canalización es un principio importante para acelerar la arquitectura informática. Se utilizan con frecuencia en GPU (canalización de gráficos) y procesadores RISC (evoluciones de la canalización RISC clásica), pero también se aplican a tareas específicas de la aplicación, como el procesamiento de señales digitales y manipulaciones multimedia en el contexto de los SoC.

Modelado probabilístico

Los SoC a menudo se analizan a través de modelos probabilísticos, teoría de colas § redes de colas y cadenas de Markov. Por ejemplo, la ley de Little permite que los estados de SoC y los búferes de NoC se modelen como procesos de llegada y se analicen a través de variables aleatorias de Poisson y procesos de Poisson.

Cadenas de Markov

Los SoC a menudo se modelan con cadenas de Markov, tanto en variantes de tiempo discreto como de tiempo continuo. El modelado de la cadena de Markov permite el análisis asintótico de la distribución de energía, calor, latencia y otros factores en estado estacionario del SoC para permitir que las decisiones de diseño se optimicen para el caso común.

Fabricación

Los chips SoC generalmente se fabrican con tecnología de semiconductores de óxido de metal (MOS). Las netlists descritas anteriormente se utilizan como base para el flujo de diseño físico (lugar y ruta) para convertir a los diseñadores' intención en el diseño del SoC. A lo largo de este proceso de conversión, el diseño se analiza con modelado de tiempo estático, simulación y otras herramientas para garantizar que cumpla con los parámetros operativos especificados, como frecuencia, consumo y disipación de energía, integridad funcional (como se describe en el código de nivel de transferencia de registro) y electricidad. integridad.

Cuando se han corregido todos los errores conocidos y se han vuelto a verificar y se han realizado todas las comprobaciones del 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 obtiene un conjunto completo. de vidrio se grabarán máscaras litográficas. Estos se envían a una planta de fabricación de obleas para crear los dados de SoC antes de empaquetarlos y probarlos.

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

  • Full custom ASIC
  • Célula estándar ASIC
  • Conjunto de puertas programables de campo (FPGA)

Los ASIC consumen menos energía y son más rápidos que los FPGA, pero no se pueden reprogramar y son costosos de fabricar. Los diseños de FPGA son más adecuados para diseños de menor volumen, pero después de suficientes unidades de producción, los ASIC reducen el costo total de propiedad.

Los diseños de SoC consumen menos energía y tienen un costo más bajo y una mayor confiabilidad que los sistemas de varios chips que reemplazan. Con menos paquetes en el sistema, los costos de ensamblaje también se reducen.

Sin embargo, como la mayoría de los diseños de integración a muy gran escala (VLSI), el costo total es más alto para un chip grande que para la misma funcionalidad distribuida en varios chips más pequeños, debido a los rendimientos más bajos y los costos de ingeniería no recurrentes más altos.

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

Puntos de referencia

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

Contenido relacionado

Gustave Eiffel

Directorio Activo

Red inalámbrica

Una red de área local inalámbrica, LAN inalámbrica, WLAN o simplemente red inalámbrica es una red informática inalámbrica que vincula dos o más...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save