Sistem pe un cip - System on a chip

Zmeură Pi utilizează un sistem pe un cip ca aproape complet conținut microcomputer . Acest SoC nu conține niciun fel de stocare a datelor, ceea ce este comun pentru un SoC cu microprocesor.

Un sistem pe un cip ( SoC ; / ˌ ɛ s ˌ s I / es-OH- SEE sau / s ɒ k / ciorap ) este un circuit integrat ( de asemenea , cunoscut ca un "cip") care integrează toate sau majoritatea componentelor a unui computer sau a altui sistem electronic . Aceste componente includ aproape întotdeauna o unitate centrală de procesare (CPU), memorie , porturi de intrare / ieșire și stocare secundară , adesea alături de alte componente, cum ar fi modemuri radio și o unitate de procesare grafică (GPU) - toate pe un singur substrat sau microcip. Poate conține funcții de procesare a semnalului digital , analogic , cu semnal mixt și adesea cu frecvență radio (altfel este considerat doar un procesor de aplicație).

SoC-urile cu performanțe superioare sunt adesea asociate cu cipuri de memorie dedicate și separate fizic (aproape întotdeauna LPDDR și respectiv eUFS sau eMMC ), care pot fi stratificate pe partea superioară a SoC în ceea ce este cunoscut sub numele de configurație pachet pe pachet (PoP) , sau să fie plasat aproape de SoC. În plus, SoC-urile pot utiliza modemuri wireless separate.

SoC-urile sunt în contrast cu arhitectura tradițională tradițională a computerului bazată pe placa de bază , care separă componentele în funcție de funcție și le conectează printr-o placă de circuite de interfață centrală. În timp ce o placă de bază adăpostește și conectează componente detașabile sau înlocuibile, SoC-urile integrează toate aceste componente într-un singur circuit integrat. O SoC va integra în mod tipic un CPU, grafică și interfețe de memorie, hard-disk și conectivitate USB, cu acces aleator și numai de citire memorii și de stocare secundară și / sau controlere lor pe un singur zar de circuit, în timp ce o placă de bază ar conecta aceste module componente discrete sau carduri de expansiune .

Un SoC integrează un microcontroler , microprocesor sau poate mai multe nuclee de procesor cu periferice precum un GPU , Wi-Fi și modemuri de rețea celulară și / sau unul sau mai multe coprocesoare . Similar cu modul în care un microcontroler integrează un microprocesor cu circuite periferice și memorie, un SoC poate fi văzut ca integrarea unui microcontroler cu periferice și mai avansate . Pentru o prezentare generală a integrării componentelor sistemului, consultați Integrarea sistemului .

Proiectarea mai strânsă a sistemelor informatice îmbunătățește performanța și reduce consumul de energie , precum și suprafața matriței semiconductoare decât modelele multi-chip cu funcționalitate echivalentă. Aceasta costă înlocuirea redusă a componentelor. Prin definiție, proiectele SoC sunt complet sau aproape complet integrate în diferite module componente . Din aceste motive, a existat o tendință generală către o integrare mai strânsă a componentelor în industria hardware a computerului , în parte datorită influenței SoC-urilor și a lecțiilor învățate de pe piețele de computere mobile și încorporate. SoC-urile pot fi privite ca făcând parte dintr-o tendință mai largă către computere încorporate și accelerare hardware .

SoC-urile sunt foarte frecvente pe piețele informatice mobile (cum ar fi smartphone-urile și tabletele ) și pe piețele informatice marginale . Ele sunt, de asemenea, utilizate în mod obișnuit în sistemele încorporate, cum ar fi routerele WiFi și Internetul obiectelor .

Tipuri

Sistem bazat pe microcontroler pe un cip

În general, există patru tipuri distincte de SoC:

AMD Am286ZX / LX, SoC bazat pe Intel 80286

Aplicații

SoC-urile pot fi aplicate oricărei sarcini de calcul. Cu toate acestea, ele sunt utilizate în mod obișnuit în computere mobile, cum ar fi tablete, smartphone-uri, smartwatch-uri și netbook-uri, precum și sisteme încorporate și în aplicații unde anterior ar fi utilizate microcontrolere .

Sisteme integrate

Acolo unde anterior se puteau folosi doar microcontrolere, SoC-urile cresc pe piața sistemelor încorporate. Integrarea mai strânsă a sistemului oferă o fiabilitate mai bună și un timp mediu între eșec , iar SoC-urile oferă funcționalități și putere de calcul mai avansate decât microcontrolerele. Aplicațiile includ accelerarea AI , viziunea automată încorporată , colectarea datelor, telemetria , procesarea vectorilor și inteligența ambientală . Adesea SoC-urile încorporate vizează internetul obiectelor , internetul industrial al lucrurilor și piețele informatice de margine .

Calculul mobil

SoC-urile bazate pe calculatoare mobile includ întotdeauna procesoare, memorii, cache pe cip , capacități de rețea fără fir și adesea hardware și firmware pentru camere digitale . Odată cu creșterea dimensiunilor memoriei, SoC-urile high-end nu vor avea adesea memorie și stocare flash și, în schimb, memoria și memoria flash vor fi plasate chiar lângă sau deasupra ( pachet pe pachet ), SoC. Câteva exemple de SoC de calcul mobil includ:

Calculatoare personale

În 1992, Acorn Computers a produs gama A3010, A3020 și A4000 de computere personale cu ARM250 SoC. A combinat procesorul original Acorn ARM2 cu un controler de memorie (MEMC), controler video (VIDC) și controler I / O (IOC). În computerele anterioare alimentate cu Acorn ARM , acestea erau patru cipuri discrete. Cipul ARM7500 a fost SoC-ul lor de a doua generație, bazat pe controlerele ARM700, VIDC20 și IOMD, și a fost licențiat pe scară largă în dispozitive încorporate, cum ar fi set-top-box-uri, precum și în computerele personale ulterioare Acorn.

SoC-urile sunt aplicate computerelor personale obișnuite începând cu 2018. Acestea sunt aplicate în special laptopurilor și tabletelor PC . Producătorii de tablete și laptopuri au învățat lecții de pe piețele de sisteme încorporate și smartphone-uri despre consum redus de energie, performanță și fiabilitate mai bune datorită integrării mai strânse a modulelor hardware și firmware și LTE și alte comunicații de rețea fără fir integrate pe cip ( controlere de interfață de rețea integrate ).

Bazat pe braț :

bazat pe x86 :

Structura

Un SoC constă din unități funcționale hardware , inclusiv microprocesoare care rulează cod software , precum și un subsistem de comunicații pentru conectarea, controlul, direcționarea și interfața dintre aceste module funcționale.

Componente funcționale

Miezuri de procesor

Un SoC trebuie să aibă cel puțin un nucleu de procesor , dar de obicei un SoC are mai mult de un nucleu. Miezurile procesorului pot fi un microcontroler , un microprocesor (μP), un procesor de semnal digital (DSP) sau un miez de procesor de set de instrucțiuni specific aplicației (ASIP). ASIP-urile au seturi de instrucțiuni personalizate pentru un domeniu de aplicație și concepute pentru a fi mai eficiente decât instrucțiunile de uz general pentru un anumit tip de sarcină de lucru. SoC - urile multiprocesor au, prin definiție, mai multe nuclee de procesor.

Fie că sunt single-core, multi-core sau manycore , nucleele procesorului SoC folosesc de obicei arhitecturi de seturi de instrucțiuni RISC . Arhitecturile RISC sunt avantajoase față de procesoarele CISC pentru SoC-uri, deoarece necesită mai puțină logică digitală și, prin urmare, mai puțină putere și suprafață la bord , precum și pe piețele de computere încorporate și mobile , aria și puterea sunt adesea foarte limitate. În special, nucleele procesorului SoC folosesc adesea arhitectura ARM deoarece este un procesor soft specificat ca nucleu IP și este mai eficient din punct de vedere al consumului decât x86 .

Memorie

SoC-urile trebuie să aibă blocuri de memorie semiconductoare pentru a-și realiza calculul, la fel ca și microcontrolerele și alte sisteme încorporate . În funcție de aplicație, memoria SoC poate forma o ierarhie de memorie și o ierarhie cache . Pe piața calculatoarelor mobile, acest lucru este comun, dar în multe microcontrolere încorporate de putere redusă , acest lucru nu este necesar. Tehnologiile de memorie pentru SoC includ memorie read-only (ROM), memorie cu acces aleatoriu (RAM), ROM programabil ștergibil electric ( EEPROM ) și memorie flash . Ca și în alte sisteme de calculatoare, RAM poate fi împărțit în RAM statică (SRAM) relativ mai rapidă, dar mai scumpă și RAM dinamică mai lentă, dar mai ieftină (DRAM). Atunci când un SoC are o ierarhie cache , SRAM va fi de obicei folosit pentru a implementa cache-urile L1 ale registrelor procesorului și ale nucleelor, în timp ce DRAM va fi utilizat pentru niveluri inferioare ale ierarhiei cache, inclusiv memoria principală . „Memoria principală” poate fi specifică unui singur procesor (care poate fi multi-core ) atunci când SoC are mai multe procesoare , caz în care este distribuită memorie și trebuie trimisă prin intermediul comunicării intermodulare on-chip pentru a fi accesată de un alt procesor. Pentru discuții suplimentare despre problemele de memorie multiprocesare, consultați coerența cache-ului și latența memoriei .

Interfețe

SoC-urile includ interfețe externe , de obicei pentru protocoale de comunicații . Acestea se bazează adesea pe standarde din industrie precum USB , FireWire , Ethernet , USART , SPI , HDMI , I²C , etc. Aceste interfețe vor diferi în funcție de aplicația dorită. Pot fi, de asemenea, acceptate protocoale de rețea fără fir , cum ar fi Wi-Fi , Bluetooth , 6LoWPAN și comunicarea în câmp aproape .

Când este necesar, SoC-urile includ interfețe analogice , inclusiv convertoare analog-digital și digital-analog , adesea pentru procesarea semnalului . Acestea pot fi capabile de interfață cu diferite tipuri de senzori sau actuatoare , inclusiv traductoare inteligente . Acestea pot interfața cu module sau scuturi specifice aplicației . Sau pot fi interne SoC, cum ar fi dacă un senzor analogic este încorporat în SoC și citirile acestuia trebuie convertite în semnale digitale pentru procesare matematică.

Procesoare digitale de semnal

Miezurile procesorului de semnal digital (DSP) sunt adesea incluse pe SoC. Ei efectuează operațiuni de procesare a semnalului în SoC-uri pentru senzori , actuatori , colectarea datelor , analiza datelor și procesarea multimedia. Nucleele DSP prezintă de obicei cuvinte de instrucțiuni foarte lungi (VLIW) și instrucțiuni simple, arhitecturi de seturi de instrucțiuni cu date multiple (SIMD) și, prin urmare, sunt extrem de susceptibile de a exploata paralelismul la nivel de instrucțiuni prin procesare paralelă și execuție suprascalară . Nucleele DSP au cel mai adesea instrucțiuni specifice aplicației și, ca atare, sunt de obicei procesoare specifice instrucțiunilor (ASIP). Astfel de instrucțiuni specifice aplicației corespund unităților funcționale hardware dedicate care calculează aceste instrucțiuni.

Instrucțiunile tipice DSP includ acumulare multiplică , transformare Fourier rapidă , adăugare multiplică fuzionată și convoluții .

Alte

Ca și în cazul altor sisteme informatice, SoC-urile necesită surse de sincronizare pentru a genera semnale de ceas , pentru a controla executarea funcțiilor SoC și pentru a furniza contextul de timp aplicațiilor de procesare a semnalelor SoC-ului, dacă este necesar. Sursele de timp populare sunt oscilatoarele de cristal și buclele blocate în fază .

Periferice SoC, inclusiv contorizatoare , temporizatoare în timp real și generatoare de resetare la pornire. SoC-urile includ, de asemenea, regulatoare de tensiune și circuite de gestionare a energiei .

Comunicare intermodulară

SoC-urile cuprind mai multe unități de execuție . Aceste unități trebuie să trimită adesea date și instrucțiuni înainte și înapoi. Din acest motiv, toate SoC-urile, cu excepția celor mai banale, necesită subsisteme de comunicații . Inițial, ca și în cazul altor tehnologii de microcomputere , au fost utilizate arhitecturi de magistrale de date , dar recent proiectele bazate pe rețele de intercomunicare rare cunoscute sub numele de rețele pe cip (NoC) au crescut la importanță și sunt prognozate să depășească arhitecturile autobuzelor pentru proiectarea SoC în viitorul apropiat. .

Comunicare bazată pe magistrală

Din punct de vedere istoric, o magistrală computerizată globală partajată conecta de obicei diferitele componente, numite și „blocuri” ale SoC. Un autobuz foarte comun pentru comunicațiile SoC este standardul ARM Advanced Microcontroller Bus Architecture ( AMBA ) fără redevențe .

Controlerele de acces direct la memorie direcționează datele direct între interfețele externe și memoria SoC, ocolind procesorul sau unitatea de control , crescând astfel fluxul de date al SoC. Acest lucru este similar cu unele drivere de dispozitive ale perifericelor de pe arhitecturi de module multi-chip bazate pe componente .

Autobuzele de calculator sunt limitate în scalabilitate , acceptând doar până la zeci de nuclee ( multicore ) pe un singur cip. Întârzierea cablului nu este scalabilă din cauza miniaturizării continue , performanța sistemului nu se escaladează cu numărul de nuclee atașate, frecvența de funcționare a SoC trebuie să scadă cu fiecare nucleu suplimentar atașat pentru ca puterea să fie durabilă, iar cablurile lungi consumă cantități mari de energie electrică. Aceste provocări sunt prohibitive pentru a sprijini sisteme multiple pe chip.

Rețea pe un cip

La sfârșitul anilor 2010 , a apărut o tendință a SoC-urilor de implementare a subsistemelor de comunicații în ceea ce privește o topologie asemănătoare rețelei în loc de protocoale bazate pe magistrală . O tendință către mai multe nuclee de procesor pe SoC-uri a făcut ca eficiența comunicării pe cip să devină unul dintre factorii cheie în determinarea performanței și costului general al sistemului. Acest lucru a dus la apariția rețelelor de interconectare cu comutare de pachete bazată pe router cunoscută sub numele de „ rețele pe cip ” (NoCs) pentru a depăși blocajele rețelelor bazate pe magistrală.

Rețelele pe cip au avantaje, inclusiv rutarea specifică destinației și aplicațiilor , o eficiență energetică mai mare și o posibilitate redusă de confuzie a magistralei . Arhitecturile de rețea pe cip se inspiră din protocoalele de comunicații precum TCP și suita de protocol Internet pentru comunicațiile pe cip, deși au de obicei mai puține straturi de rețea . Arhitecturile optime ale rețelei pe cip sunt un domeniu continuu de interes de cercetare. Arhitecturile NoC variază de la topologii tradiționale de rețele de calcul distribuite, cum ar fi torus , hipercub , ochiuri și rețele de copaci până la planificarea algoritmului genetic până la algoritmi aleatori, cum ar fi plimbări aleatorii cu ramificare și timp de viață aleatoriu (TTL).

Mulți cercetători SoC consideră că arhitecturile NoC sunt viitorul proiectării SoC, deoarece s-a dovedit că satisfac în mod eficient nevoile de putere și de producție ale proiectelor SoC. Arhitecturile actuale NoC sunt bidimensionale. Proiectarea 2D IC are opțiuni limitate de planificare a podelei pe măsură ce crește numărul de nuclee din SoC, astfel încât pe măsură ce apar circuite integrate tridimensionale (3DIC), proiectanții SoC urmăresc construirea de rețele tridimensionale pe chip cunoscute sub numele de 3DNoCs.

Flux de proiectare

Flux de proiectare SoC

Un sistem pe un cip constă atât din hardware , descris în § Structură , cât și din software - ul care controlează microcontrolerul, microprocesorul sau nucleele procesorului de semnal digital, perifericele și interfețele. Fluxul de proiectare pentru un SoC își propune să dezvolte acest hardware și software în același timp, cunoscut și sub numele de co-proiectare arhitecturală. Fluxul de proiectare trebuie să ia în considerare, de asemenea, optimizările ( § Obiectivele de optimizare ) și constrângerile.

Majoritatea SoC-urilor sunt dezvoltate din specificațiile de bază IP ale componentelor hardware precalificate pentru elementele hardware și unitățile de execuție , colectiv „blocuri”, descrise mai sus, împreună cu driverele de dispozitiv software care le pot controla funcționarea. O importanță deosebită sunt stivele de protocol care conduc interfețe standard din industrie precum USB . Blocurile hardware sunt asamblate folosind instrumente de proiectare asistate de computer , în special instrumente de automatizare a proiectării electronice ; a modulelor software sunt integrate cu ajutorul unui software de mediu de dezvoltare integrat .

Componentele SoC sunt, de asemenea, deseori proiectate în limbaje de programare la nivel înalt, cum ar fi C ++ , MATLAB sau SystemC și convertite în modele RTL prin instrumente de sinteză la nivel înalt (HLS), cum ar fi C în HDL sau flux în HDL . Produsele HLS numite „sinteză algoritmică” permit proiectanților să utilizeze C ++ pentru a modela și sintetiza sistemele, circuitele, software-ul și nivelurile de verificare, toate într-un limbaj de nivel înalt cunoscut în mod obișnuit de inginerii de calculatoare într-o manieră independentă de scale de timp, care sunt de obicei specificate în HDL. Alte componente pot rămâne software și pot fi compilate și încorporate în procesoare soft-core incluse în SoC ca module în HDL ca nuclee IP .

Odată ce arhitectura SoC a fost definită, orice element hardware nou este scris într-un limbaj abstract de descriere hardware denumit nivel de transfer de registru (RTL) care definește comportamentul circuitului, sau sintetizat în RTL dintr-un limbaj de nivel înalt prin sinteză la nivel înalt. Aceste elemente sunt conectate împreună într-un limbaj de descriere hardware pentru a crea designul SoC complet. Logica specificată pentru a conecta aceste componente și a converti între posibilele interfețe diferite furnizate de diferiți furnizori se numește logică de lipire .

Verificarea proiectării

Chips-urile sunt verificate pentru corectitudinea validării înainte de a fi trimise la o turnătorie de semiconductori . Acest proces se numește verificare funcțională și reprezintă o parte semnificativă din timpul și energia cheltuite în ciclul de viață al proiectării cipurilor , adesea cotat ca 70%. Odată cu complexitatea crescândă a cipurilor, se utilizează limbaje de verificare hardware precum SystemVerilog , SystemC , e și OpenVera . Erorile găsite în etapa de verificare sunt raportate proiectantului.

În mod tradițional, inginerii au folosit accelerarea de simulare, emularea sau prototiparea pe hardware-ul reprogramabil pentru a verifica și depana hardware-ul și software-ul pentru proiectele SoC înainte de finalizarea designului, cunoscut sub numele de tape-out . Tablourile de poartă programabile pe teren (FPGA) sunt favorizate pentru prototiparea SoC-urilor, deoarece prototipurile FPGA sunt reprogramabile, permit depanarea și sunt mai flexibile decât circuitele integrate specifice aplicației (ASIC).

Cu capacitate mare și timp de compilare rapid, accelerarea și emularea simulației sunt tehnologii puternice care oferă o vizibilitate largă a sistemelor. Ambele tehnologii, totuși, funcționează lent, de ordinul MHz, care poate fi semnificativ mai lent - de până la 100 de ori mai lent - decât frecvența de operare a SoC. Casetele de accelerație și emulare sunt, de asemenea, foarte mari și costisitoare, la peste 1 milion de dolari SUA.

În schimb, prototipurile FPGA utilizează FPGA direct pentru a permite inginerilor să valideze și să testeze la sau aproape de frecvența de funcționare completă a unui sistem cu stimuli din lumea reală. Instrumente precum Certus sunt folosite pentru a introduce sonde în FPGA RTL care fac semnale disponibile pentru observare. Acesta este utilizat pentru depanarea interacțiunilor hardware, firmware și software pe mai multe FPGA-uri cu capacități similare unui analizor logic.

În paralel, elementele hardware sunt grupate și trecute printr-un proces de sinteză logică , în timpul căruia sunt aplicate constrângeri de performanță, cum ar fi frecvența operațională și întârzierile semnalului preconizate. Aceasta generează o ieșire cunoscută sub numele de netlist care descrie proiectarea ca un circuit fizic și interconectările sale. Aceste liste de rețea sunt combinate cu logica de lipire care conectează componentele pentru a produce descrierea schematică a SoC ca un circuit care poate fi imprimat pe un cip. Acest proces este cunoscut sub numele de loc și traseu și precede scoaterea benzii în cazul în care SoC-urile sunt produse ca circuite integrate specifice aplicației (ASIC).

Obiective de optimizare

SoC-urile trebuie să optimizeze consumul de energie , zona pe matriță , comunicarea, poziționarea pentru localitate între unitățile modulare și alți factori. Optimizarea este neapărat un obiectiv de proiectare al SoC-urilor. Dacă nu ar fi necesară optimizarea, inginerii ar folosi o arhitectură de module multi-chip fără a ține cont de utilizarea zonei, consumul de energie sau performanța sistemului în aceeași măsură.

Urmează obiective comune de optimizare pentru proiectele SoC, cu explicații pentru fiecare. În general, optimizarea oricăreia dintre aceste cantități poate fi o problemă dură de optimizare combinatorie și poate fi într-adevăr destul de ușor NP-hard . Prin urmare, sunt deseori necesari algoritmi sofisticati de optimizare și poate fi practic să se utilizeze algoritmi de aproximare sau euristici în unele cazuri. În plus, majoritatea proiectelor SoC conțin mai multe variabile pentru a optimiza simultan , astfel încât soluțiile eficiente Pareto sunt căutate în proiectarea SoC. Adesea, obiectivele optimizării unora dintre aceste cantități sunt direct contrare, adăugând în continuare complexitate la optimizarea proiectării SoC -urilor și introducând compromisuri în proiectarea sistemului.

Pentru o acoperire mai largă a compromisurilor și a analizei cerințelor , consultați ingineria cerințelor .

Ținte

Consum de energie

SoC-urile sunt optimizate pentru a minimiza puterea electrică utilizată pentru a îndeplini funcțiile SoC. Majoritatea SoC-urilor trebuie să utilizeze o putere redusă. Sistemele SoC necesită adesea o durată lungă de viață a bateriei (cum ar fi smartphone-urile ), pot petrece luni sau ani fără ca sursa de alimentare să aibă nevoie să mențină funcția autonomă și adesea sunt limitate în consumul de energie de către un număr mare de SoC încorporate care sunt conectate în rețea într-o zonă. În plus, costurile cu energia pot fi ridicate, iar economisirea energiei va reduce costul total de proprietate asupra SoC. În cele din urmă, căldura reziduală de la un consum ridicat de energie poate deteriora alte componente ale circuitului dacă se disipează prea multă căldură, oferind un alt motiv pragmatic pentru conservarea energiei. Cantitatea de energie utilizată într - un circuit este integrală a puterii consumate în raport cu timpul, iar rata medie a consumului de energie este produsul curent de tensiune . În mod echivalent, conform legii lui Ohm , puterea este curentul pătrat ori rezistența sau tensiunea pătrată împărțită la rezistență :

SoC-urile sunt încorporate frecvent în dispozitive portabile precum smartphone-uri , dispozitive de navigație GPS , ceasuri digitale (inclusiv ceasuri inteligente ) și netbook-uri . Clienții doresc o durată lungă de viață a bateriei pentru dispozitivele mobile de calcul , un alt motiv pentru care consumul de energie trebuie să fie minimizat în SoC. Aplicații multimedia sunt adesea executate pe aceste dispozitive, inclusiv jocuri video , video streaming , procesare a imaginii ; toate acestea au crescut în complexitate de calcul în ultimii ani, cu cerințele și așteptările utilizatorilor pentru multimedia de calitate superioară . Calculul este mai solicitant pe măsură ce așteptările se îndreaptă spre video 3D la rezoluție ridicată cu mai multe standarde , astfel încât SoC-urile care efectuează sarcini multimedia trebuie să fie o platformă capabilă de calcul, având în același timp o putere redusă pentru a rula o baterie mobilă standard.

Performanță pe watt

SoC-urile sunt optimizate pentru a maximiza eficiența energetică a performanței pe watt: maximizați performanța SoC, având în vedere un buget de consum de energie. Multe aplicații precum calculul de margine , procesarea distribuită și inteligența ambientală necesită un anumit nivel de performanță de calcul , dar puterea este limitată în majoritatea mediilor SoC. Arhitectura ARM are o performanță mai mare per watt decât x86 în sisteme integrate, deci este de preferat peste x86 pentru majoritatea aplicațiilor care necesită un SoC procesor încorporat .

Căldură uzată

Proiectele SoC sunt optimizate pentru a minimiza puterea de căldură reziduală pe cip. Ca și în cazul altor circuite integrate , căldura generată datorită densității mari de putere reprezintă blocajul pentru a continua miniaturizarea componentelor. Densitățile de putere ale circuitelor integrate de mare viteză, în special microprocesoarele și inclusiv SoC-urile, au devenit extrem de inegale. Prea multă căldură reziduală poate deteriora circuitele și poate eroda fiabilitatea circuitului în timp. Temperaturile ridicate și stresul termic au un impact negativ asupra fiabilității, migrării stresului , scăderii timpului mediu între defecțiuni , electromigrare , lipirea firelor , metastabilitatea și alte degradări ale performanței SoC în timp.

În special, majoritatea SoC-urilor se află într-o zonă fizică sau volum mic și, prin urmare, efectele căldurii reziduale sunt agravate, deoarece există puțin spațiu pentru ca acesta să se difuzeze din sistem. Datorită numărului mare de tranzistoare pe dispozitivele moderne, datorită legii lui Moore , de multe ori o structură cu un debit suficient și densitate mare a tranzistorului este realizabilă fizic din procesele de fabricație, dar ar duce la cantități inacceptabil de mari de căldură în volumul circuitului.

Aceste efecte termice obligă SoC și alți designeri de cipuri să aplice margini de proiectare conservatoare , creând dispozitive mai puțin performante pentru a atenua riscul de eșec catastrofal . Datorită densităților crescute ale tranzistorilor, pe măsură ce scalele de lungime devin mai mici, fiecare generație de proces produce mai multă căldură decât ultima. Compunând această problemă, arhitecturile SoC sunt de obicei eterogene, creând fluxuri de căldură neomogene spațial , care nu pot fi atenuate în mod eficient printr-o răcire pasivă uniformă .

Randament

SoC-urile sunt optimizate pentru a maximiza debitul de calcul și de comunicații .

Latență

SoC-urile sunt optimizate pentru a minimiza latența pentru unele sau toate funcțiile lor. Acest lucru poate fi realizat prin stabilirea elementelor cu apropiere și localitate adecvate între ele pentru a minimiza întârzierile de interconectare și a maximiza viteza cu care datele sunt comunicate între module, unități funcționale și memorii. În general, optimizarea pentru a minimiza latența este o problemă NP-completă echivalentă cu problema de satisfacție booleană .

Pentru sarcinile care rulează pe nucleele procesorului, latența și randamentul pot fi îmbunătățite cu programarea sarcinilor . Unele sarcini rulează în unități hardware specifice aplicației, însă chiar și planificarea sarcinilor poate să nu fie suficientă pentru a optimiza toate sarcinile bazate pe software pentru a îndeplini constrângerile de sincronizare și de transfer.

Metodologii

Sistemele pe cip sunt modelate cu tehnici standard de verificare și validare hardware , dar sunt utilizate tehnici suplimentare pentru modelarea și optimizarea alternativelor de proiectare SoC pentru a face sistemul optim în ceea ce privește analiza deciziilor cu criterii multiple pe obiectivele de optimizare de mai sus.

Programarea sarcinilor

Programarea activităților este o activitate importantă în orice sistem de calcul cu mai multe procese sau fire care partajează un singur nucleu de procesor. Este important să reduceți § Latența și să creșteți § Debitul pentru software-ul încorporat care rulează pe un nucleu de procesor al unui SoC . Nu orice activitate de calcul importantă într-un SoC este efectuată în software care rulează pe procesoare on-chip, dar programarea poate îmbunătăți drastic performanța sarcinilor bazate pe software și a altor sarcini care implică resurse partajate .

SoC-urile programează adesea sarcini în funcție de planificarea rețelei și algoritmii de planificare randomizată .

Conducte

Sarcinile hardware și software sunt adesea organizate în proiectarea procesorului . Pipeline este un principiu important pentru SpeedUp în arhitectura de calculator . Acestea sunt utilizate frecvent în GPU-uri ( conducte grafice ) și procesoare RISC (evoluții ale conductei clasice RISC ), dar sunt aplicate și sarcinilor specifice aplicației, cum ar fi procesarea semnalului digital și manipulările multimedia în contextul SoC-urilor.

Modelarea probabilistică

SoC-urile sunt adesea analizate prin modele probabiliste , teoria Queuing § Rețele Queuing și lanțuri Markov . De exemplu, legea lui Little permite statelor SoC și tampoanelor NoC să fie modelate ca procese de sosire și analizate prin variabilele aleatorii Poisson și procesele Poisson .

Lanțuri Markov

SoC-urile sunt adesea modelate cu lanțuri Markov , atât în timp discret , cât și în variante de timp continuu . Modelarea lanțului Markov permite analiza asimptotică a distribuției SoC a stării de echilibru a puterii, căldurii, latenței și a altor factori pentru a permite optimizarea deciziilor de proiectare pentru cazurile obișnuite.

Fabricare

Cipurile SoC sunt de obicei fabricate folosind tehnologia metal-oxid-semiconductor (MOS). Listele de rețea descrise mai sus sunt utilizate ca bază pentru fluxul de proiectare fizică ( locul și ruta ) pentru a converti intenția proiectanților în proiectarea SoC. Pe parcursul acestui proces de conversie, proiectarea este analizată cu modelare statică de sincronizare, simulare și alte instrumente pentru a se asigura că îndeplinește parametrii operaționali specificați, cum ar fi frecvența, consumul de energie și disiparea, integritatea funcțională (așa cum este descris în codul nivelului de transfer al registrului) și electricitatea integritate.

Când toate erorile cunoscute au fost rectificate și acestea au fost verificate din nou și toate verificările fizice ale proiectului sunt efectuate, fișierele de proiectare fizică care descriu fiecare strat al cipului sunt trimise la magazinul de mască al turnătoriei unde va fi gravat un set complet de măști litografice din sticlă . Acestea sunt trimise la o fabrică de fabricare de napolitane pentru a crea zarurile SoC înainte de ambalare și testare.

SoC-urile pot fi fabricate de mai multe tehnologii, inclusiv:

ASIC-urile consumă mai puțină energie și sunt mai rapide decât FPGA-urile, dar nu pot fi reprogramate și sunt scumpe de fabricat. Proiectele FPGA sunt mai potrivite pentru proiectele cu volum mai mic, dar după unități suficiente de producție, ASIC-urile reduc costul total de proprietate.

Proiectele SoC consumă mai puțină energie și au un cost mai mic și o fiabilitate mai mare decât sistemele multi-chip pe care le înlocuiesc. Cu mai puține pachete în sistem, costurile de asamblare sunt, de asemenea, reduse.

Cu toate acestea, la fel ca majoritatea proiectelor de integrare la scară foarte mare (VLSI), costul total este mai mare pentru un cip mare decât pentru aceeași funcționalitate distribuită pe mai multe cipuri mai mici, din cauza randamentelor mai mici și a costurilor de inginerie non-recurente mai mari.

Când nu este fezabil să se construiască un SoC pentru o anumită aplicație, o alternativă este un sistem în pachet (SiP) care cuprinde un număr de cipuri într-un singur pachet . Atunci când este produs în volume mari, SoC este mai rentabil decât SiP, deoarece ambalajul său este mai simplu. Un alt motiv pentru care SiP poate fi preferat este căldura reziduală poate fi prea mare într-un SoC pentru un anumit scop, deoarece componentele funcționale sunt prea apropiate, iar într-un SiP căldura se va disipa mai bine din diferite module funcționale, deoarece acestea sunt fizic mai îndepărtate.

Repere

Cercetarea și dezvoltarea SoC compară adesea multe opțiuni. Repere, cum ar fi COSMIC, sunt dezvoltate pentru a ajuta astfel de evaluări.

Vezi si

Note

Referințe

Lecturi suplimentare

linkuri externe