Un sistema en un chip ( SoC ; / ˌ ɛ s ˌ oʊ s i / es-OH- VER o / s ɒ k / calcetín [nb 1] ) es un circuito integrado (también conocido como un "chip") que integra todos o la mayoría de los componentes de una computadora u otro sistema electrónico . Estos componentes casi siempre incluyen una unidad de procesamiento central (CPU), memoria , puertos de entrada / salida y almacenamiento secundario, 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. [1] Puede contener funciones de procesamiento de señales digitales , analógicas , mixtas y , a menudo, de señales de radiofrecuencia (de lo contrario, se considera solo un procesador de aplicaciones).
Los SoC de alto rendimiento a menudo se combinan con chips de memoria y almacenamiento secundario dedicados y físicamente separados (casi siempre LPDDR y eUFS o eMMC , respectivamente), que pueden colocarse 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 utilizar módems inalámbricos independientes. [2]
Los SoC contrastan con la arquitectura de PC tradicional basada en la placa base , que separa los componentes en función de la función y los conecta a través de una placa de circuito de interfaz central. [nb 2] Mientras que una placa base aloja 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, [nb 3] conectividad de disco duro y USB, [nb 4] 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 componentes discretos 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, un SoC puede verse como la integración de un microcontrolador con periféricos aún más avanzados .
Los diseños de sistemas informáticos más estrechamente integrados mejoran el rendimiento y reducen el consumo de energía , así como el área de la matriz de semiconductores que los diseños de varios chips con funcionalidad equivalente. Esto tiene el costo de una menor capacidad de reemplazo de los componentes. Por definición, los diseños de SoC están total o casi totalmente 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 la informática móvil e integrada. 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 la informática móvil (como en los teléfonos inteligentes y las tabletas ) y en los mercados de la informática de vanguardia . [3] [4] También se utilizan comúnmente en sistemas integrados como enrutadores WiFi e Internet de las cosas .
Tipos
En general, hay cuatro tipos distinguibles de SoC:
- SoC construidos alrededor de un microcontrolador ,
- SoC construidos alrededor de un microprocesador , que a menudo se encuentran en teléfonos móviles;
- SoC de circuitos integrados especializados para aplicaciones específicas diseñados para aplicaciones específicas que no encajan en las dos categorías anteriores, y
- SoC programables (PSoC), donde la mayor parte de la funcionalidad es fija pero alguna funcionalidad se puede reprogramar de una manera análoga a una matriz de puertas programable en campo .
Aplicaciones
Los SoC se pueden aplicar a cualquier tarea informática. Sin embargo, se utilizan normalmente 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 anteriormente se utilizarían microcontroladores .
Sistemas embebidos
Donde anteriormente solo se podían usar microcontroladores, los SoC están ganando protagonismo en el mercado de sistemas integrados. Una integración más estrecha del sistema ofrece una mayor confiabilidad y un tiempo medio entre fallas , y los SoC ofrecen una funcionalidad y una potencia de cálculo más avanzadas que los microcontroladores. [5] Las aplicaciones incluyen aceleración de IA , visión artificial integrada , [6] 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 de las cosas industrial y los mercados de informática de vanguardia .
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 de los tamaños de 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 en paquete ) del SoC. [7] Algunos ejemplos de SoC de computación móvil incluyen:
- Samsung Electronics : lista , generalmente basada en ARM
- Exynos , utilizado principalmente por la serie de teléfonos inteligentes Galaxy de Samsung
- Qualcomm :
- Snapdragon ( lista ), utilizado en muchos teléfonos inteligentes LG , Xiaomi , Google Pixel , HTC y Samsung Galaxy. En 2018, los SoC Snapdragon se están utilizando como la columna vertebral de las computadoras portátiles que ejecutan Windows 10 , comercializadas como "PC siempre conectadas". [8] [9]
Computadoras personales
En 1992, Acorn Computers produjo la gama de computadoras personales A3010, A3020 y A4000 con el SoC ARM250. Combinó 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 Acorn ARM , estos eran cuatro chips discretos. El chip ARM7500 era su SoC de segunda generación, basado en los controladores ARM700, VIDC20 e IOMD, y se licenciaba ampliamente en dispositivos integrados como decodificadores, así como en computadoras personales Acorn posteriores.
Los SoC se están aplicando a las computadoras personales convencionales a partir de 2018. [8] Se aplican particularmente a las computadoras portátiles y tabletas . Los fabricantes de tabletas y computadoras portátiles han aprendido lecciones de los mercados de sistemas integrados y teléfonos inteligentes sobre la reducción del consumo de energía, mejor rendimiento y confiabilidad de 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 ). [10]
Basado en ARM :
- Snapdragon de Qualcomm [9]
- ARM250
- ARM7500 (FE)
- Manzana 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 de procesador pueden ser un microcontrolador , microprocesador (μP), [11] procesador de señal digital (DSP) o núcleo de procesador de conjunto de instrucciones específicas de la aplicación (ASIP). [12] Los ASIP tienen conjuntos de instrucciones que se personalizan para un dominio de aplicación y están 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, de varios núcleos o de 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 móvil e integrada , el área y la energía a menudo están muy restringidas. En particular, los núcleos de procesador SoC a menudo usan la arquitectura ARM porque es un procesador suave especificado como núcleo IP y es más eficiente en energía que x86 . [11]
Memoria
Los SoC deben tener bloques de memoria de semiconductores para realizar su cálculo, al igual que los microcontroladores y otros sistemas integrados . Dependiendo de 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 , esto no es necesario. Las tecnologías de memoria para SoC incluyen memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), ROM programable eléctricamente borrable ( EEPROM ) y memoria flash . [11] Como 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 de procesador y las cachés L1 de los núcleos, mientras que la DRAM se utilizará para los niveles inferiores de la jerarquía de caché, incluida 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 cuyo caso es memoria distribuida y debe enviarse a través de § Comunicación entre módulos en el chip para que pueda acceder a ella otro procesador. [12] Para un análisis más detallado de los problemas de la memoria de multiprocesamiento, consulte la coherencia de la caché y la latencia de la memoria .
Interfaces
Los SoC incluyen interfaces externas , generalmente 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 . [nb 5] O pueden ser internos al SoC, como 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 , recolecció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) e instrucción única, datos múltiples (SIMD) y, por lo tanto, son muy susceptibles de explotar el paralelismo a nivel de instrucción a través del procesamiento paralelo y la ejecución superescalar . [12] : 4 núcleos DSP suelen presentar instrucciones específicas de la aplicación y, como tales, suelen ser procesadores de conjuntos 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 acumulación múltiple , transformada rápida de Fourier , suma múltiple fusionada 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 del SoC y proporcionar contexto de tiempo para las aplicaciones de procesamiento de señales del SoC, si es necesario. Las fuentes de tiempo más populares son los osciladores de cristal y los bucles de bloqueo de fase .
Periféricos SoC que incluyen 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 utilizaron 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 importancia y se prevé que superen las arquitecturas de bus para el diseño de SoC en un futuro próximo. . [13]
Comunicación basada en bus
Históricamente, un bus informático global compartido normalmente conectaba los diferentes componentes, también llamados "bloques" del SoC. [13] Un bus muy común para las comunicaciones SoC es el estándar de Arquitectura de Bus de Microcontrolador Avanzado ( 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 del 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ódulos de múltiples chips basados en componentes .
Los buses de computadora tienen una escalabilidad limitada y solo admiten hasta decenas de núcleos ( multinúcleo ) en un solo chip. [13] : xiii El retardo del cable no es escalable debido a la miniaturización continua , el rendimiento del sistema no se escala con la cantidad de núcleos conectados, la frecuencia de funcionamiento 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 chip. [13] : xiii
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 hecho 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. [13] : xiii 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. [13] : xiii
Las redes en chip tienen ventajas que incluyen enrutamiento específico de destino y aplicación , mayor eficiencia energética y menor posibilidad 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, [13] 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 de investigación. Arquitecturas NoC van desde la computación distribuida tradicionales topologías de red , tales como toro , hipercubo , mallas y redes de árboles a genética programación algoritmo de algoritmos aleatorios , tales como paseos aleatorios con ramificación y aleatorizado Tiempo de Vida (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 IC 2D tiene opciones limitadas de planificación de piso a medida que aumenta el número de núcleos en los SoC, por lo que a medida que surgen los circuitos integrados tridimensionales (3DIC), los diseñadores de SoC están buscando construir redes tridimensionales en chip conocidas como 3DNoC. [13]
Flujo de diseño
Un sistema en un chip consta tanto del hardware , descrito en § Estructura , como del software que controla los núcleos, periféricos e interfaces del microcontrolador, microprocesador o 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 co-diseño arquitectónico. El flujo de diseño también debe tener en cuenta las optimizaciones ( § Objetivos de optimización ) y las limitaciones.
La mayoría de los SoC se desarrollan a partir de especificaciones de núcleo 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 interfaces estándar de la industria como USB . Los bloques de hardware se ensamblan utilizando herramientas de diseño asistidas por computadora , específicamente herramientas de automatización de diseño electrónico ; los módulos de software se integran mediante un entorno de desarrollo integrado de software .
Los componentes de SoC también se diseñan a menudo en lenguajes de programación de alto nivel como C ++ , MATLAB o SystemC y se convierten a diseños RTL a través de herramientas de síntesis de alto nivel (HLS) como C a HDL o flujo a HDL . [14] Los productos HLS llamados "síntesis algorítmica" permiten 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. [15] 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 nuevo elemento de hardware 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 a partir de un lenguaje de alto nivel mediante síntesis de alto 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 llama lógica de pegamento .
Verificación de diseño
Los chips se verifican para verificar la corrección de la validació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 gastados en el ciclo de vida del diseño del chip , a menudo cotizado como 70%. [16] [17] Con la creciente complejidad de los chips, se están utilizando 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 la aceleración de simulación, la emulación o la 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, conocido como tape-out . Los arreglos de puertas programables en campo (FPGA) se prefieren para la creación de 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). [18] [19]
Con una alta capacidad y un tiempo de compilación rápido, la aceleración y la emulación de la simulación son tecnologías poderosas que brindan una amplia visibilidad de los sistemas. Sin embargo, ambas tecnologías operan lentamente, 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. Las cajas de aceleración y emulación también son muy grandes y caras, con más de 1 millón de dólares estadounidenses. [ cita requerida ]
Los prototipos de FPGA, por el contrario, utilizan FPGA directamente para permitir a los ingenieros validar y probar en, o cerca de, la frecuencia de operación completa de un sistema con estímulos del mundo real. Se utilizan herramientas como Certus [20] para insertar sondas en la FPGA RTL que hacen que las señales estén disponibles para la observación. Se utiliza para depurar interacciones de hardware, firmware y software en múltiples FPGA con capacidades similares a las de un analizador lógico.
En paralelo, 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 retardos de señal esperados. Esto genera una salida conocida como netlist que describe el diseño como un circuito físico y sus interconexiones. Estas listas de red se combinan con la lógica de pegamento 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 a la eliminación en cinta en caso de que los SoC se produzcan como circuitos integrados específicos de la aplicación (ASIC).
Objetivos de optimización
SoC deben optimizar el uso de energía , zona en la matriz , la comunicación, Posicionamiento de localidad entre las unidades modulares y de otros factores. La optimización es necesariamente un objetivo de diseño de los SoC. Si la optimización no fuera necesaria, los ingenieros utilizarían una arquitectura de módulo de varios chips sin tener en cuenta la utilización del área, el consumo de energía o el rendimiento del sistema en la misma medida.
A continuación, se muestran 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 utilizar algoritmos de aproximación o heurísticas 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 Pareto eficientes en el diseño de SoC. A menudo, los objetivos de optimizar algunas de estas cantidades están directamente en desacuerdo, lo que agrega aún 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 compensaciones y el análisis de requisitos , consulte Ingeniería de requisitos .
Objetivos
El consumo de energía
Los SoC están optimizados para minimizar la energía eléctrica utilizada para realizar las funciones del SoC. La mayoría de los SoC deben utilizar poca potencia. 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 que una fuente de energía necesite mantener una función autónoma y, a menudo, tienen un uso de energía limitado debido a 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 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 brinda otra razón pragmática para conservar energía. La cantidad de energía utilizada en un circuito es la integral de la energía consumida con respecto al tiempo, y la tasa promedio de consumo de energía 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 :
Rendimiento por vatio
Los SoC están optimizados para maximizar la eficiencia energética en rendimiento por vatio: maximice el rendimiento del SoC dado un presupuesto de uso de energía. Muchas aplicaciones, como la informática de borde , 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 de SoC. La arquitectura ARM tiene un mayor rendimiento por vatio que x86 en sistemas integrados, por lo que se prefiere sobre x86 para la mayoría de las aplicaciones SoC que requieren un procesador integrado .
Calor perdido
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. [21] : 1 Las densidades de potencia de los circuitos integrados de alta velocidad, en particular los microprocesadores y los SoC incluidos, 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 impactan negativamente 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 con el tiempo. [21] : 2–9
En particular, la mayoría de los SoC se encuentran en un área o volumen físico pequeños y, por lo tanto, los efectos del calor residual se agravan porque hay poco espacio para que se difunda fuera del sistema. Debido a los altos recuentos de transistores en los dispositivos modernos debido a la ley de Moore , a menudo un diseño de rendimiento suficiente y alta densidad de transistores es físicamente realizable a partir de los procesos de fabricación, pero daría como resultado cantidades inaceptablemente altas de calor en el volumen del circuito. [21] : 1
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 las densidades de transistores a medida que las escalas de longitud se hacen más pequeñas, cada generación de proceso produce más calor que la anterior. Para agravar este problema, las arquitecturas SoC suelen ser heterogéneas, creando flujos de calor espacialmente no homogéneos , que no pueden mitigarse eficazmente mediante un enfriamiento pasivo uniforme . [21] : 1
Rendimiento
SoCs are optimized to maximize computational and communications throughput.
Latency
SoCs are optimized to minimize latency for some or all of their functions. This can be accomplished by laying out elements with proper proximity and locality to each-other to minimize the interconnection delays and maximize the speed at which data is communicated between modules, functional units and memories. In general, optimizing to minimize latency is an NP-complete problem equivalent to the boolean satisfiability problem.
For tasks running on processor cores, latency and throughput can be improved with task scheduling. Some tasks run in application-specific hardware units, however, and even task scheduling may not be sufficient to optimize all software-based tasks to meet timing and throughput constraints.
Methodologies
Systems on chip are modeled with standard hardware verification and validation techniques, but additional techniques are used to model and optimize SoC design alternatives to make the system optimal with respect to multiple-criteria decision analysis on the above optimization targets.
Task scheduling
Task scheduling is an important activity in any computer system with multiple processes or threads sharing a single processor core. It is important to reduce § Latency and increase § Throughput for embedded software running on an SoC's § Processor cores. Not every important computing activity in a SoC is performed in software running on on-chip processors, but scheduling can drastically improve performance of software-based tasks and other tasks involving shared resources.
SoCs often schedule tasks according to network scheduling and randomized scheduling algorithms.
Pipelining
Hardware and software tasks are often pipelined in processor design. Pipelining is an important principle for speedup in computer architecture. They are frequently used in GPUs (graphics pipeline) and RISC processors (evolutions of the classic RISC pipeline), but are also applied to application-specific tasks such as digital signal processing and multimedia manipulations in the context of SoCs.[12]
Probabilistic modeling
SoCs are often analyzed though probabilistic models, Queueing theory § Queueing networks and Markov chains. For instance, Little's law allows SoC states and NoC buffers to be modeled as arrival processes and analyzed through Poisson random variables and Poisson processes.
Markov chains
SoCs are often modeled with Markov chains, both discrete time and continuous time variants. Markov chain modeling allows asymptotic analysis of the SoC's steady state distribution of power, heat, latency and other factors to allow design decisions to be optimized for the common case.
Fabricación
SoC chips are typically fabricated using metal–oxide–semiconductor (MOS) technology.[22] The netlists described above are used as the basis for the physical design (place and route) flow to convert the designers' intent into the design of the SoC. Throughout this conversion process, the design is analyzed with static timing modeling, simulation and other tools to ensure that it meets the specified operational parameters such as frequency, power consumption and dissipation, functional integrity (as described in the register transfer level code) and electrical integrity.
When all known bugs have been rectified and these have been re-verified and all physical design checks are done, the physical design files describing each layer of the chip are sent to the foundry's mask shop where a full set of glass lithographic masks will be etched. These are sent to a wafer fabrication plant to create the SoC dice before packaging and testing.
SoCs can be fabricated by several technologies, including:
- Full custom ASIC
- Standard cell ASIC
- Field-programmable gate array (FPGA)
ASICs consume less power and are faster than FPGAs but cannot be reprogrammed and are expensive to manufacture. FPGA designs are more suitable for lower volume designs, but after enough units of production ASICs reduce the total cost of ownership.[23]
SoC designs consume less power and have a lower cost and higher reliability than the multi-chip systems that they replace. With fewer packages in the system, assembly costs are reduced as well.
However, like most very-large-scale integration (VLSI) designs, the total cost[clarification needed] is higher for one large chip than for the same functionality distributed over several smaller chips, because of lower yields[clarification needed] and higher non-recurring engineering costs.
When it is not feasible to construct an SoC for a particular application, an alternative is a system in package (SiP) comprising a number of chips in a single package. When produced in large volumes, SoC is more cost-effective than SiP because its packaging is simpler.[24] Another reason SiP may be preferred is waste heat may be too high in a SoC for a given purpose because functional components are too close together, and in an SiP heat will dissipate better from different functional modules since they are physically further apart.
Benchmarks
SoC research and development often compares many options. Benchmarks, such as COSMIC,[25] are developed to help such evaluations.
Ver también
- List of system-on-a-chip suppliers
- Post-silicon validation
- ARM architecture
- Single-board computer
- System in package
- Network on a chip
- Programmable SoC
- Application-specific instruction set processor (ASIP)
- Platform-based design
- Lab on a chip
- Organ on a chip in biomedical technology
- Multi-chip module
- List of Qualcomm Snapdragon processors - Qualcomm
- Exynos - Samsung
Notas
- ^ This article uses the convention that SoC is pronounced /ˌɛsˌoʊˈsiː/ es-oh-SEE. Therefore, it uses the convention "an" for the indefinite article corresponding to SoC ("an SoC"). Other sources may pronounce it as /sɒk/ sock and therefore use "a SoC".
- ^ This central board is called the "mother board" for hosting the "child" component cards.
- ^ The graphics connections (PCI Express) and RAM historically constituted the northbridge of motherboard-backed discrete architectures.
- ^ The hard disk and USB connectivity historically comprised part of the southbridge of motherboard-backed discrete modular architectures.
- ^ In embedded systems, "shields" are analogous to expansion cards for PCs. They often fit over a microcontroller such as an Arduino or single-board computer such as the Raspberry Pi and function as peripherals for the device.
Referencias
- ^ Shah, Agam (January 3, 2017). "7 dazzling smartphone improvements with Qualcomm's Snapdragon 835 chip". Network World.
- ^ https://arstechnica.com/gadgets/2020/02/qualcomms-snapdragon-x60-promises-smaller-5g-modems-in-2021/?amp=1
- ^ Pete Bennett, EE Times. "The why, where and what of low-power SoC design." December 2, 2004. Retrieved July 28, 2015.
- ^ Nolan, Stephen M. "Power Management for Internet of Things (IoT) System on a Chip (SoC) Development". Design And Reuse. Retrieved 2018-09-25.
- ^ "Is a single-chip SOC processor right for your embedded project?". Embedded. Retrieved 2018-10-13.
- ^ "Qualcomm launches SoCs for embedded vision | Imaging and Machine Vision Europe". www.imveurope.com. Retrieved 2018-10-13.
- ^ "Samsung Galaxy S10 and S10e Teardown". iFixit. March 6, 2019.
- ^ a b "ARM is going after Intel with new chip roadmap through 2020". Windows Central. Retrieved 2018-10-06.
- ^ a b "Always Connected PCs, Extended Battery Life 4G LTE Laptops | Windows". www.microsoft.com. Retrieved 2018-10-06.
- ^ "Gigabit Class LTE, 4G LTE and 5G Cellular Modems | Qualcomm". Qualcomm. Retrieved 2018-10-13.
- ^ a b c Furber, Stephen B. (2000). ARM system-on-chip architecture. Harlow, England: Addison-Wesley. ISBN 0201675196. OCLC 44267964.
- ^ a b c d e Haris Javaid, Sri Parameswaran (2014). Pipelined Multiprocessor System-on-Chip for Multimedia. Springer. ISBN 9783319011134. OCLC 869378184.CS1 maint: uses authors parameter (link)
- ^ a b c d e f g h Kundu, Santanu; Chattopadhyay, Santanu (2014). Network-on-chip: the Next Generation of System-on-Chip Integration (1st ed.). Boca Raton, FL: CRC Press. ISBN 9781466565272. OCLC 895661009.
- ^ "Best Practices for FPGA Prototyping of MATLAB and Simulink Algorithms". EEJournal. 2011-08-25. Retrieved 2018-10-08.
- ^ Bowyer, Bryan (2005-02-05). "The 'why' and 'what' of algorithmic synthesis". EE Times. Retrieved 2018-10-08.
- ^ EE Times. "Is verification really 70 percent?." June 14, 2004. Retrieved July 28, 2015.
- ^ "Difference between Verification and Validation". Software Testing Class. Retrieved 2018-04-30.
In interviews most of the interviewers are asking questions on “What is Difference between Verification and Validation?” Many people use verification and validation interchangeably but both have different meanings.
- ^ Rittman, Danny (2006-01-05). "Nanometer prototyping" (PDF). Tayden Design. Retrieved 2018-10-07.
- ^ "FPGA Prototyping to Structured ASIC Production to Reduce Cost, Risk & TTM". Design And Reuse. Retrieved 2018-10-07.
- ^ Brian Bailey, EE Times. "Tektronix hopes to shake up ASIC prototyping." October 30, 2012. Retrieved July 28, 2015.
- ^ a b c d Ogrenci-Memik, Seda (2015). Heat Management in Integrated circuits: On-chip and system-level monitoring and cooling. London, United Kingdom: The Institution of Engineering and Technology. ISBN 9781849199353. OCLC 934678500.
- ^ Lin, Youn-Long Steve (2007). Essential Issues in SOC Design: Designing Complex Systems-on-Chip. Springer Science & Business Media. p. 176. ISBN 9781402053528.
- ^ "FPGA vs ASIC: Differences between them and which one to use? – Numato Lab Help Center". numato.com. Retrieved 2018-10-17.
- ^ EE Times. "The Great Debate: SOC vs. SIP." March 21, 2005. Retrieved July 28, 2015.
- ^ "COSMIC". www.ece.ust.hk. Retrieved 2018-10-08.
Otras lecturas
- Badawy, Wael; Jullien, Graham A., eds. (2003). System-on-Chip for Real-Time Applications. Kluwer international series in engineering and computer science, SECS 711. Boston: Kluwer Academic Publishers. ISBN 9781402072543. OCLC 50478525. 465 pages.
- Furber, Stephen B. (2000). ARM system-on-chip architecture. Boston: Addison-Wesley. ISBN 0-201-67519-6.
- Kundu, Santanu; Chattopadhyay, Santanu (2014). Network-on-chip: the Next Generation of System-on-Chip Integration (1st ed.). Boca Raton, FL: CRC Press. ISBN 9781466565272. OCLC 895661009.
enlaces externos
- SOCC Annual IEEE International SoC Conference
- Baya free SoC platform assembly and IP integration tool
- Systems on Chip for Embedded Applications, Auburn University seminar in VLSI
- Instant SoC SoC for FPGAs defined by C++