Sistema em um chip (SoC) | |||
|---|---|---|---|
O chip Apple A4 (2010). Um único microchip que abriga a CPU, a unidade gráfica e os módulos auxiliares de memória do computador. | |||
| Especificações gerais | |||
| Projetista | A empresa de tecnologia que elabora o projeto arquitetural (ex.: Apple, Qualcomm, AMD). | ||
| Fabricante | A fábrica especializada (foundry) que efetivamente constrói o chip físico de silício. | ||
| Contagem de transistores | Bilhões de minúsculos interruptores eletrônicos microscópicos que ligam e desligam para processar dados. | ||
| Processo de fabricação | Medido em nanômetros (nm). Números menores indicam componentes mais próximos, tornando o chip mais rápido e econômico em termos de bateria. | ||
| Unidade central de processamento | |||
| Conjunto de instruções (ISA) | A linguagem básica ou "conjunto de regras" que o chip compreende (geralmente ARM para telefones ou x86 para laptops). | ||
| Núcleos de CPU | Núcleos individuais de CPU dentro do chip. Núcleos de desempenho lidam com jogos pesados; núcleos de eficiência lidam com mensagens e tarefas em segundo plano. | ||
| Frequência de clock | Medida em gigahertz (GHz). Quantos bilhões de cálculos um único núcleo pode realizar em um segundo. | ||
| Unidade de processamento gráfico | |||
| Finalidade da GPU | Um mecanismo matemático dedicado, construído para renderizar gráficos 3D, executar videogames e reproduzir vídeos em alta definição com fluidez. | ||
| Módulos auxiliares integrados | |||
| Motor neural (NPU) | Um componente projetado estritamente para tarefas de inteligência artificial (IA), como reconhecimento facial e texto preditivo. | ||
| Memória unificada (RAM) | Memória de curto prazo posicionada diretamente ao lado da CPU e da GPU, permitindo que os dados fiquem acessíveis rapidamente. | ||
| Módems de conectividade | Circuitos de rádio integrados que permitem ao chip converter sinais de redes sem fio 5G, Wi-Fi e Bluetooth. | ||
| Cronologia tecnológica | |||
| |||

Um sistema em um chip ou sistema em chip (system on a chip, ou system on chip, SoC) é um circuito integrado que combina a maioria ou todos os componentes essenciais de um computador ou sistema eletrônico em um único microchip. Tipicamente, um SoC inclui uma unidade central de processamento (CPU) com controladores de memória, portas de entrada/saída e funções de controle de armazenamento secundário de dados, juntamente com recursos adicionais opcionais, tais como uma unidade de processamento gráfico (GPU), conectividade Wi-Fi e módulos de processamento de radiofrequência. Esse elevado patamar de integração minimiza a necessidade de múltiplos componentes discretos e separados, aprimorando substancialmente a eficiência energética e simplificando o leiaute dos dispositivos.
SoCs de alto desempenho são frequentemente combinados com memórias dedicadas, tais como LPDDR, e chips de memória flash, como eUFS ou eMMC, os quais podem ser empilhados diretamente no topo do SoC em uma configuração de encapsulamento sobre encapsulamento (package-on-package, PoP) ou montados nas proximidades sobre a placa-mãe. Determinados SoCs também operam em conjunto com chips especializados dedicados, como módems de banda larga móvel celular.
Fundamentalmente, os SoCs integram um ou mais núcleos de processador com periféricos críticos. Essa integração abrangente é conceitualmente semelhante à forma como um microcontrolador é estruturado, porém disponibilizando uma capacidade e potência computacional vastamente superior. Esse projeto unificado proporciona menor consumo elétrico e uma redução sensível na área física de silício (die de semicondutor) quando comparado às arquiteturas convencionais de múltiplos chips, muito embora isso ocorra ao custo de uma menor modularidade e da impossibilidade de substituição individual de componentes avariados.
Os SoCs tornaram-se onipresentes na computação móvel, contexto no qual soluções compactas e energeticamente econômicas são indispensáveis. Eles acionam smartphones, tablets e smartwatches, desempenhando papel de importância crescente na computação de borda (edge computing), na qual o processamento de dados em tempo real ocorre nas proximidades imediatas da própria fonte de captação.

Em linhas gerais, distinguem-se três tipos principais de SoCs:
Os SoCs podem ser empregados em quaisquer tipos de tarefas computacionais. Não obstante, seu uso concentra-se tipicamente na computação móvel, tal como em tablets, smartphones, smartwatches e netbooks, bem como em sistemas embarcados e em nichos industriais onde anteriormente apenas microcontroladores discretos eram utilizados.
Onde anteriormente apenas microcontroladores podiam ser aplicados, os SoCs ascenderam com grande destaque no mercado de sistemas embarcados. Uma integração mais estrita do sistema proporciona maior confiabilidade operacional e melhora o tempo médio entre falhas, ao mesmo tempo em que os SoCs oferecem funcionalidades vastamente mais avançadas e maior capacidade computacional do que os microcontroladores convencionais. Suas aplicações abrangem aceleração de inteligência artificial, visão computacional embarcada, coleta de dados, telemetria, processamento vetorial e inteligência ambiente. Frequentemente, os SoCs embarcados voltam-se aos mercados de internet das coisas, multimídia, infraestrutura de redes, telecomunicações e computação de borda. Alguns exemplos representativos de SoCs voltados a tarefas embarcadas incluem a linha STM32 da STMicroelectronics, o chip RP2040 da Raspberry Pi Ltd e os circuitos integrados Zynq 7000 da AMD.

SoCs destinados à computação móvel agregam invariavelmente processadores, memórias, memórias cache integradas na pastilha, recursos de rede sem fio e, com frequência considerável, controladores e firmware de processamento para câmeras digitais. Com o aumento contínuo no tamanho e na densidade das memórias, SoCs de alto padrão muitas vezes abrem mão de acomodar memórias RAM e flash no mesmo die de silício; em contrapartida, os chips de memória primária e memória flash são montados diretamente adjacentes ou sobrepostos (package on package, PoP) ao próprio SoC. Alguns exemplos consolidados de SoCs para computação móvel compreendem:
Em 1992, a Acorn Computers lançou as linhas de computadores pessoais A3010, A3020 e A4000 equipadas com o SoC ARM250. Esse circuito unificou o processador original Acorn ARM2 com um controlador de memória (MEMC), controlador de vídeo (VIDC) e controlador de entrada e saída (IOC). Nas gerações prévias de computadores Acorn equipados com tecnologia ARM, esses elementos consistiam em quatro chips físicos distintos e discretos. O circuito ARM7500 sucedeu essa arquitetura, constituindo o SoC de segunda geração da fabricante baseado nos controladores ARM700, VIDC20 e IOMD, sendo amplamente licenciado em aparelhos embarcados, como decodificadores de televisão (set-top-boxes), bem como em computadores pessoais posteriores da Acorn.
Fabricantes de laptops e tablets absorveram lições desenvolvidas nos mercados de dispositivos móveis e sistemas embarcados quanto à diminuição do consumo de potência, maior desempenho e melhor confiabilidade decorrentes de uma integração mais densa entre módulos de hardware e firmware, além da incorporação de interfaces de comunicação LTE e outras redes sem fio na pastilha (controladores de interface de rede embutidos).
Em laptops e mini-PCs modernos, variantes de baixa potência dos processadores AMD Ryzen e Intel Core recorrem a abordagens de projeto em SoC, agregando CPU, gráficos integrados (iGPU), chipset e outros controladores de suporte em um único encapsulamento. Todavia, tais processadores de arquitetura x86 ainda demandam barramentos de memória volátil e chips de armazenamento externos.
Em novembro de 2020, a Apple introduziu o M1, seu primeiro sistema em um chip projetado exclusivamente para computadores Mac. Ele combina núcleos de CPU, GPU, interfaces de entrada/saída e subsistemas criptográficos e de segurança, sendo incorporado inicialmente no MacBook Air, no MacBook Pro de 13 polegadas e no Mac mini.
Um SoC é composto por unidades funcionais de hardware, englobando microprocessadores que executam instruções de software, bem como por um subsistema de comunicações responsável por interconectar, sincronizar, rotear e estabelecer interface mútua entre esses blocos funcionais.
Um SoC deve contar obrigatoriamente com ao menos um núcleo de processador, mas tipicamente agrega múltiplos núcleos. Esses elementos podem assumir a forma de um microcontrolador, microprocessador (μP), processador de sinal digital (DSP) ou um núcleo baseado em processador com conjunto de instruções para aplicação específica (ASIP). Núcleos ASIP dispõem de conjuntos de instruções customizados para determinado domínio de aplicação, concebidos para atingir eficiência superior à de instruções genéricas em um perfil de carga específico. Por definição, SoCs multiprocessados apresentam mais de um núcleo de cálculo. A arquitetura Arm constitui uma opção amplamente disseminada para compor núcleos de processadores em SoCs, dado que diversos de seus designs são distribuídos como processadores por software (soft processors) especificados na forma de núcleos de propriedade intelectual (IP cores).
Assim como microcontroladores e sistemas embarcados em geral, os SoCs necessitam de blocos de memória semicondutora para concretizar seus procedimentos de cálculo. A depender dos requisitos da aplicação, as memórias do SoC podem se estruturar em uma hierarquia de memória e em múltiplos níveis de cache. No nicho da computação móvel, tal organização é recorrente, ao passo que em microcontroladores embarcados de baixa potência essa complexidade pode não ser mandatória. As tecnologias de memória adotadas em SoCs incluem memória somente de leitura (ROM), memória de acesso aleatório (RAM), memória ROM programável e apagável eletricamente (EEPROM) e memória flash. Da mesma forma que em outros sistemas computacionais, a memória RAM pode ser subdividida na modalidade estática (SRAM), mais veloz e de custo produtivo superior, e na modalidade dinâmica (DRAM), comparativamente mais lenta, porém de custo por bit substancialmente inferior. Caso o SoC conte com hierarquia de memória cache, a SRAM é comumente empregada para compor registradores do processador e a memória cache interna dos núcleos, reservando-se a DRAM para atuar como memória principal. A "memória principal" pode ser privativa de um único processador (que pode ser multinúcleo) quando o SoC integra múltiplos nós de processamento distintos; nesse cenário, trata-se de um modelo de memória distribuída, no qual os dados precisam trafegar pelos canais de comunicação internos do chip para que outro nó possa acessá-los.
Os SoCs dispõem de interfaces de entrada e saída externas, projetadas precipuamente para atender a protocolos de comunicação. Estas baseiam-se em normas consagradas da indústria eletrônica, tais como USB, Ethernet, USART, SPI, HDMI, I²C, CSI, entre outras, variando conforme a destinação do produto. Padrões sem fio como Wi-Fi, Bluetooth, 6LoWPAN e comunicação por campo de proximidade (NFC) também encontram suporte frequente nessas estruturas.
Sempre que a aplicação demanda, blocos de sinal analógico são embutidos no SoC, compreendendo conversores analógico-digitais (ADC) e conversores digital-analógicos (DAC), voltados comumente ao processamento de sinais. Tais blocos interagem com diversos modelos de sensores ou atuadores, englobando transdutores inteligentes. Eles podem se comunicar com placas ou módulos modulares externos ou situar-se inteiramente no interior do circuito integrado, como no caso de sensores embutidos cujos dados contínuos de medição precisam ser digitalizados para execução de cálculos matemáticos.
Núcleos de processador de sinal digital (DSP) são amplamente integrados aos SoCs para executar operações de processamento matemático de sinais analógicos e digitais provenientes de sensores e atuadores, coleta de dados, análise estatística e tratamento de áudio e vídeo. Tais núcleos costumam apresentar arquiteturas baseadas em palavras de instrução muito longas (VLIW) e em instruções únicas aplicadas a múltiplos fluxos de dados (SIMD), mostrando-se altamente eficientes na exploração do paralelismo em nível de instrução através de processamento paralelo e execução superescalar.:4 Os processadores DSP frequentemente contam com instruções concebidas para propósitos específicos, enquadrando-se como processadores de conjunto de instruções para aplicação específica (ASIP), cujas instruções são atendidas por unidades funcionais de hardware dedicadas na pastilha.
Instruções típicas de núcleos DSP incluem multiplicação-acumulação (FMA), transformada rápida de Fourier (FFT), adição e multiplicação fundidas (FMA) e operações de convolução matemática.
De forma similar a outros subsistemas de processamento, os SoCs requerem fontes de sincronismo para gerar sinais de clock, coordenar a cadência de processamento das tarefas e carimbar temporalmente rotinas de análise e amostragem de dados. Fontes de temporização comuns englobam osciladores a cristal de quartzo e malhas de captura de fase (phase-locked loops, PLL).
Os periféricos integrados abrangem contadores-temporizadores, relógios de tempo real (RTC) e circuitos geradores de reinicialização automática sob inicialização elétrica (power-on reset). Os SoCs contêm ainda circuitos reguladores de tensão e subsistemas de gerenciamento integrado de energia.
Os SoCs são constituídos por inúmeras unidades de execução operando simultaneamente, as quais precisam permutar dados e instruções de maneira ininterrupta. Em vista disso, exceto nos projetos mais elementares, todos os SoCs exigem subsistemas dedicados de comunicação interna. Tradicionalmente, utilizavam-se arquiteturas baseadas em barramentos de dados, nos mesmos moldes dos microcomputadores convencionais. Mais recentemente, todavia, enlaces fundamentados em redes de interconexão conhecidas como redes em chip (NoC, networks-on-chip) emergiram como padrão dominante, havendo a perspectiva de suplantarem os barramentos tradicionais em projetos modernos de alta integração.
Historicamente, um barramento de computador global e compartilhado realizava a conexão física entre os múltiplos blocos ou componentes de silício do SoC. Um padrão aberto bastante difundido para esse tipo de tráfego interno é a arquitetura AMBA (Advanced Microcontroller Bus Architecture), padronizada e licenciada livre de royalties pela Arm.
Controladores de acesso direto à memória (DMA) transferem dados diretamente entre as interfaces externas do chip e as áreas de memória interna, contornando a CPU ou a unidade de controle e elevando a vazão de tráfego de dados do sistema. O princípio equivale operacionalmente ao trabalho de controladores periféricos de placas de expansão em computadores convencionais.
Contudo, com o contínuo avanço da miniaturização, o atraso de propagação dos sinais nas trilhas metálicas (wire delay) deixou de acompanhar as escalas de redução temporal; o desempenho global do sistema não escala linearmente com o aumento indiscriminado de núcleos anexados ao barramento; a frequência operacional do SoC é compelida a recuar a cada novo núcleo adicionado para viabilizar orçamentos térmicos sustentáveis; e linhas condutoras longas dissipam quantidades substanciais de energia elétrica. Esses entraves físicos tornam o barramento um obstáculo proibitivo para sistemas de alta densidade dotados de dezenas ou centenas de núcleos de cálculo (manycore).:xiii
A partir do final da década de 2010, consolidou-se a tendência arquitetural de implementar o subsistema interno de comunicações na forma de uma malha topológica de rede em substituição aos protocolos fundamentados em barramentos compartilhados.:xiii À medida que a contagem de núcleos escalou, a eficiência do tráfego interno transformou-se em um dos fatores primordiais na determinação do custo e do desempenho operacional do componente.:xiii Essa realidade impulsionou a adoção de redes de interconexão chaveadas por pacotes e estruturadas em roteadores de silício, denominadas "redes em chip" (NoCs), com o intuito expresso de sobrepujar os pontos de estrangulamento inerentes aos barramentos.:xiii
Dentre as vantagens das redes em chip constam o suporte a roteamento adaptativo e especializado por aplicação, maior aproveitamento da potência elétrica e mitigação das disputas de tráfego por posse de linha. As NoCs inspiram-se conceitualmente em modelos de comunicação em rede como o protocolo TCP e o conjunto de protocolos da Internet, muito embora operem com menor número de camadas de protocolo. A modelagem de arquiteturas ótimas de NoCs constitui um campo de ativa pesquisa acadêmica e corporativa, abrangendo topologias clássicas de computação paralela — como malhas em anel, hipercubos, toros, redes em malha (mesh) e estruturas em árvore — até formulações baseadas em algoritmos genéticos e heurísticas estocásticas, como passeios aleatórios ramificados e mecanismos probabilísticos de tempo de vida (TTL).
Inúmeros projetistas apontam a arquitetura NoC como o caminho definitivo para o projeto de SoCs, demonstrando que ela atende de maneira escalável às restrições de vazão de dados e potência. Enquanto a maior parte das NoCs contemporâneas opera no plano bidimensional (2D), o aumento da densidade de portas em arranjos planos restringe as alternativas de leiaute físico (floorplanning), incentivando a indústria a pesquisar o empilhamento em circuitos integrados tridimensionais (3D-ICs) dotados de redes em chip tridimensionais (3DNoCs).
Predefinição:Mais fontes-seção

Um sistema em um chip é composto simultaneamente por estruturas físicas de hardware e pelas camadas de software encarregadas de controlar os núcleos de microprocessador, microcontrolador, processadores de sinal, periféricos e interfaces. O fluxo de projeto (design flow) de um SoC busca conceber as porções de hardware e software em paralelo, prática referida como coprojeto arquitetural de hardware e software (architectural co-design). Esse fluxo deve incorporar mandatoriamente metas de otimização de engenharia e restrições físicas de contorno.
A grande maioria dos SoCs é estruturada a partir de blocos pré-validados de propriedade intelectual de hardware (núcleos IP) correspondentes às unidades funcionais de cálculo, acompanhados de rotinas de software e controladores de dispositivos (device drivers) encarregados de sua operação. Destacam-se aqui as pilhas de protocolos de comunicação dedicadas a suportar barramentos da indústria, tais como o USB. A união dos blocos de hardware é executada por meio de ferramentas de automação de projeto eletrônico (EDA), ao passo que a integração dos módulos de software é conduzida em ambientes de desenvolvimento integrados (IDE).
Os blocos de componentes do SoC são comumente modelados em linguagens de alto nível, tais como C++, MATLAB ou SystemC, e convertidos em representações de circuito no nível de transferência entre registradores (RTL) através de ferramentas de síntese de alto nível (HLS, como fluxos C para HDL). Ferramentas de HLS descritas como "síntese algorítmica" capacitam as equipes a modelar, simular e validar o sistema, os circuitos lógicos e o software em uma única linguagem de programação amplamente dominada por engenheiros, independentemente das escalas temporais de ciclo de clock comumente descritas em linguagens de descrição de hardware (HDL). Outros blocos funcionais mantêm-se inteiramente em formato de software, sendo compilados para execução em processadores embutidos por software (soft-core processors) adicionados ao SoC como núcleos IP descritos em HDL.
Definida a arquitetura básica do SoC, os blocos de hardware inéditos são redigidos em uma linguagem abstrata de descrição de circuitos no nível RTL, que sintetiza o comportamento temporal dos nós, ou derivados a partir da síntese de alto nível. Esses módulos são subsequentemente interconectados em uma linguagem de descrição de hardware para consolidar o leiaute funcional do chip. O conjunto de portas lógicas incumbido de compatibilizar interfaces heterogêneas e estabelecer a comunicação entre blocos oriundos de diferentes fornecedores é denominado lógica de interconexão (glue logic).
Antes do envio para manufatura em uma fundição de semicondutores, a integridade funcional do circuito é submetida a amplas rotinas de checagem. Essa etapa é formalmente denominada verificação funcional e consome uma parcela substancial de tempo e recursos do ciclo de desenvolvimento de um chip, estimada historicamente em cerca de 70% de todo o esforço de engenharia do projeto. Em virtude da complexidade geométrica crescente dos circuitos integrados, adotam-se linguagens estruturadas de verificação de hardware, como SystemVerilog, SystemC, e e OpenVera. Anomalias lógicas (bugs) encontradas durante essa checagem são documentadas e encaminhadas às equipes de desenvolvimento.
Tradicionalmente, a verificação e depuração de hardware e software antes da conclusão definitiva do desenho — etapa denominada fechamento de leiaute (tape-out) — recorre a técnicas de aceleração de simulação, emulação por hardware ou prototipagem em arranjos reprogramáveis. Matrizes de portas lógicas programáveis em campo (FPGAs) são frequentemente priorizadas para prototipar SoCs em razão de sua capacidade de reprogramação física, flexibilidade de teste e instrumentação superior à de circuitos ASIC definitivos.
Sistemas dedicados de aceleração de simulação e emulação disponibilizam capacidades elevadas e rápida compilação de código, mas normalmente operam sob frequências de clock na faixa de alguns megahertz (MHz), muito abaixo da frequência nominal de trabalho do SoC final. Ademais, plataformas de emulação de grande porte representam investimentos de alta monta, superando rotineiramente a cifra de 1 milhão de dólares norte-americanos.[carece de fontes]
Em contrapartida, protótipos construídos sobre chips FPGA operam em frequências próximas ou idênticas à velocidade real do projeto com estímulos reais do ambiente operacional. Ferramentas como o software Certus inserem pontos de monitoramento no código RTL do FPGA, viabilizando a observação de sinais internos para depurar a interação entre hardware, firmware e drivers através de múltiplos FPGAs com precisão comparável à de um analisador lógico.
Concomitantemente, os componentes lógicos são agrupados e processados em etapas de síntese lógica, nas quais parâmetros operacionais, como frequência de clock e atrasos máximos admissíveis de sinal, são impostos como restrições de projeto. Esse procedimento gera uma listagem estruturada de interconexões conhecida como netlist, que reflete o circuito físico real. Essas netlists são combinadas com a lógica de interconexão para produzir os mapas esquemáticos do circuito que serão impressos no chip, processo denominado posicionamento e roteamento (place and route), que antecede o envio para fabricação (tape-out) quando o SoC é produzido como um ASIC.
Projetos de SoC exigem balanceamento criterioso de parâmetros como dissipação de potência elétrica, área de pastilha de silício (die), vazão de comunicação interna e alocação física para garantir localidade de referência entre os blocos modulares. A otimização contínua é intrínseca ao desenvolvimento de um SoC; caso não fosse prioritária, os engenheiros recorreriam a arquiteturas baseadas em módulos multichip convencionais, que prescindem de análises profundas de área e potência na mesma escala de integração.
Otimizar simultaneamente essas métricas configura problemas rigorosos de otimização combinatória, muitas vezes categorizados matematicamente como problemas NP-difíceis. Consequentemente, o projeto exige o emprego de algoritmos avançados de aproximação e heurísticas computacionais. Dado que o dimensionamento envolve múltiplos parâmetros concorrentes e conflitantes, as soluções buscam atingir a eficiência de Pareto, demandando concessões operacionais de engenharia (trade-offs).
Os SoCs são dimensionados para minimizar o consumo de potência elétrica necessário ao desempenho de suas funções lógicas. A maior parte dessas plataformas destina-se a sistemas de baixa potência que requerem baterias de longa duração (como smartphones), ou a nós embarcados remotos que operam autonomamente sem troca de baterias durante meses ou anos em redes distribuídas. Além do custo operacional decorrente do consumo energético, a dissipação de calor residual representa um risco físico iminente de dano aos componentes caso a temperatura exceda limites operacionais seguros. Pela definição física, a quantidade de energia despendida em um circuito corresponde à integral da potência consumida ao longo do tempo, sendo a taxa de potência instantânea calculada pelo produto da corrente $I$ pela tensão elétrica $V$. Pela lei de Ohm, a potência pode ser expressa equivalentemente por:
Dispositivos que operam SoCs — como telefones móveis, receptores de GPS, relógios inteligentes e netbooks — executam rotineiramente tarefas de alta complexidade de processamento, tais como reprodução de vídeo em alta resolução, fluxos de transmissão de mídia e renderização gráfica de jogos digitais tridimensionais. Tais demandas computacionais elevadas exigem SoCs capazes de entregar alta capacidade matemática com orçamentos restritos de potência elétrica alimentados por baterias comuns.:3
Os SoCs são desenhados para extrair o máximo de eficiência energética medido em desempenho por watt. Diversos setores tecnológicos, a exemplo da computação de borda, do processamento distribuído e da inteligência ambiente, exigem determinado limiar de capacidade de cálculo, porém sob severas restrições de alimentação elétrica.
Os leiautes de SoCs visam minimizar a geração e concentração de calor residual na pastilha. A exemplo do que ocorre em circuitos integrados de altíssima escala, a elevação da densidade de potência gerada pela concentração de transistores tornou-se o principal gargalo físico para o avanço da miniaturização microeletrônica.:1 Em circuitos integrados de alta velocidade e microprocessadores modernos, a distribuição térmica sobre a pastilha tornou-se profundamente assimétrica e desigual. O acúmulo térmico excessivo corrói a confiabilidade dos componentes ao longo do tempo de vida útil. Temperaturas extremas e ciclos contínuos de estresse térmico induzem falhas operacionais, degradação do tempo médio entre falhas, aceleração de fenômenos destrutivos de eletromigração, migração sob tensão mecânica, fragilização de soldas metálicas e metaestabilidade lógica.:2–9
Como a maioria dos SoCs está contida em volumes físicos muito exíguos, a dissipação de calor torna-se crítica diante da reduzida área disponível para dispersão térmica passiva. Embora processos avançados de litografia permitam acomodar contagens monumentais de transistores em espaços reduzidos, o calor gerado inviabilizaria a operação do circuito caso o leiaute não impusesse margens de tolerância conservadoras.:1
Essas imposições forçam os projetistas a estabelecer margens térmicas de segurança cautelosas, criando dispositivos que operam abaixo de sua capacidade computacional teórica absoluta para resguardar o componente contra falhas catastróficas. Com o encurtamento contínuo dos nós de fabricação litográfica e a elevação da densidade de transistores, cada nova geração de processo tende a concentrar mais calor por unidade de área do que a anterior. Para agravar o cenário, a heterogeneidade funcional dos blocos internos de um SoC produz fluxos espaciais térmicos desiguais (heat fluxes), inviabilizando soluções tradicionais e uniformes de resfriamento passivo.:1
O projeto de um SoC visa maximizar a vazão volumétrica (throughput) computacional e a capacidade contínua de transmissão de dados entre seus subsistemas internos.
A minimização da latência é perseguida para todas as rotinas críticas do circuito integrado. Esse objetivo é obtido estruturando o leiaute físico de modo a aproximar blocos funcionais com alta taxa de troca de mensagens, diminuindo os atrasos temporais de propagação física nas interconexões e elevando a velocidade de transferência entre módulos, memórias e unidades de execução. Em linhas gerais, otimizar uma malha de circuitos visando a latência mínima constitui um desafio NP-completo equivalente ao problema de satisfatibilidade booleana.
Em tarefas executadas nos núcleos de processador, os patamares de vazão e latência podem ser refinados através de rotinas de escalonamento de processos. Não obstante, nos casos em que rotinas dependem de unidades de hardware fixas e dedicadas, o escalonamento puramente por software é insuficiente para atender aos limites rígidos de tempo real da aplicação.
Os sistemas em um chip são modelados por métodos formais de verificação e validação de hardware, além de metodologias quantitativas aplicadas para selecionar a arquitetura que melhor atenda aos objetivos multiobjetivo de projeto.
O escalonamento de processos atua como mecanismo primordial em circuitos integrados onde múltiplos processos concorrentes ou linhas de execução (threads) disputam os recursos de processamento de um mesmo núcleo. Essa gestão reduz a latência e amplia a taxa de transferência das rotinas de software embarcado que operam no SoC. Nem todas as rotinas de cálculo são executadas por software na CPU, mas técnicas de escalonamento otimizam drasticamente o rendimento das cargas que utilizam recursos compartilhados de hardware.
Softwares embarcados executados em SoCs costumam distribuir e escalonar instruções por meio de algoritmos de escalonamento estocásticos ou baseados em filas de rede.
A fragmentação funcional de tarefas em estágios sequenciais (pipelining) é amplamente aplicada na concepção de processadores, atuando como princípio seminal de ganho de desempenho na computação. Essa abordagem é rotineira em CPUs (a exemplo do pipeline RISC clássico) e GPUs (pipelines de rasterização gráfica), sendo igualmente adaptada no contexto dos SoCs para operações de processamento de sinal digital e aceleração de multimídia.
O comportamento dinâmico de um SoC é frequentemente analisado com recurso a modelos probabilísticos, redes de filas e ferramentas de estatística. Como exemplo, a lei de Little permite tratar estados lógicos internos do chip e filas de buffers da rede em chip como processos de chegada de eventos estocásticos, aplicando variáveis aleatórias de Poisson e formulações de processos de Poisson para dimensionar a capacidade necessária de armazenamento temporário.
Modelagens fundamentadas em cadeias de Markov, tanto em variantes de tempo discreto quanto de tempo contínuo, são aplicadas à simulação de SoCs. A análise matricial das distribuições de regime estacionário possibilita prever a dissipação de potência, a dispersão de calor, a latência média e o tráfego de dados, permitindo que as decisões de arquitetura e leiaute sejam otimizadas para os cenários mais frequentes de operação.
Chips do tipo SoC são fabricados majoritariamente através da tecnologia de semicondutor de óxido metálico complementar (MOS / CMOS). As netlists concebidas no fluxo lógico balizam as etapas de posicionamento e roteamento físico (place and route), convertendo o projeto do circuito em máscaras de produção. Ao longo desse ciclo de conversão física, o leiaute é submetido a ferramentas de modelagem de sincronismo estático e simulações para certificar o cumprimento de parâmetros estipulados de frequência, consumo de energia, dissipação térmica e integridade funcional e elétrica.
Uma vez eliminadas as anomalias de projeto e superadas as rotinas de checagem física de regras de desenho (DRC), os arquivos contendo os mapas estruturais das camadas do chip são transferidos para as oficinas de fotomáscaras das fundições (foundries), onde conjuntos de máscaras litográficas de quartzo e vidro são confeccionados. Essas máscaras são inseridas nas linhas de fabricação em salas limpas para a litografia das pastilhas nos wáferes de silício bruto antes da etapa final de corte, encapsulamento e teste de bancada.
A produção de um SoC pode adotar diferentes abordagens de implementação física:
Projetos baseados em ASICs demandam menos energia elétrica e atingem velocidades superiores às dos circuitos FPGA, mas são circuitos permanentes que não aceitam reprogramação lógica e implicam elevados custos iniciais de manufatura. FPGAs, por sua vez, adaptam-se com precisão a tiragens reduzidas de produção e protótipos de teste, ao passo que produções massivas em larga escala diluem os custos de engenharia não recorrentes (NRE) associados à fabricação de ASICs dedicados.
Sistemas em um chip apresentam menor consumo elétrico, custo unitário reduzido e maior confiabilidade intrínseca do que arranjos convencionais com múltiplos chips periféricos. A diminuição na quantidade de encapsulamentos simplifica e barateia o processo de soldagem e montagem industrial nas linhas de produção de placas.
Todavia, à semelhança do que se observa em projetos de integração em escala muito grande (VLSI), o custo financeiro total de manufaturar um único chip monolítico de grandes proporções é frequentemente superior ao de produzir circuitos menores e separados, em virtude de menores índices de aproveitamento de pastilhas viáveis por wáfer (rendimento fabril) e dos elevados custos de engenharia não recorrente.
Nos cenários de projeto em que a confecção de um SoC monolítico mostra-se tecnicamente inviável, uma alternativa consagrada consiste na utilização de sistemas em encapsulamento (SiP), técnica que agrupa múltiplos dies funcionais em um mesmo encapsulamento exterior. Em volumes de alta demanda comercial, o SoC tende a ser economicamente mais competitivo que o SiP devido à simplicidade de sua montagem física final. Não obstante, arranjos SiP podem se mostrar superiores quando a concentração térmica em uma pastilha unificada é demasiadamente elevada, já que a separação física entre matrizes de silício independentes no encapsulamento favorece a dissipação e a distribuição de calor.
Dentre os exemplos representativos de sistemas em um chip encontram-se:
As rotinas de pesquisa e desenvolvimento de SoCs exigem a comparação metódica de diversas alternativas de projeto. Metodologias de avaliação e benchmarks, como o padrão COSMIC, foram criados com a finalidade de balizar essas análises comparativas.