Sistemi në një çip

Një sistem në çip ( SoC ) është një qark i integruar që kombinon shumicën ose të gjithë komponentët kryesorë të një kompjuteri ose sistemi elektronik në një mikroçip të vetëm.  Në mënyrë tipike, një SoC përfshin një njësi qendrore përpunimi (CPU) me funksione të memories, hyrjes/daljes dhe kontrollit të ruajtjes së të dhënave, së bashku me funksione opsionale si një njësi përpunimi grafik (GPU), lidhje Wi-Fi dhe përpunim me frekuencë radio. Ky nivel i lartë integrimi minimizon nevojën për komponentë të veçantë dhe diskretë, duke rritur efikasitetin e energjisë dhe duke thjeshtuar projektimin e pajisjes.

SoC-të me performancë të lartë shpesh kombinohen me memorie të dedikuar, si LPDDR, dhe çipa memorieje flash, siç janë eUFS ose eMMC, të cilët mund të vendosen drejtpërdrejt sipër SoC-së në një konfigurim pako-mbi-paketë (PoP) ose të vendosen afër pllakës amë. Disa SoC funksionojnë gjithashtu së bashku me çipa të specializuar, siç janë modemet celularë. 

Në thelb, SoC-të integrojnë një ose më shumë bërthama procesori me periferikë kritikë. Ky integrim gjithëpërfshirës është konceptualisht i ngjashëm me mënyrën se si projektohet  një mikrokontrollues, por ofron fuqi llogaritëse shumë më të madhe. Ky dizajn i unifikuar ofron konsum më të ulët të energjisë dhe një sipërfaqe të reduktuar të matricës gjysmëpërçuese krahasuar me arkitekturat tradicionale me shumë çipa, megjithëse me koston e  një modulariteti dhe zëvendësueshmërie të reduktuar të komponentëve.

SoC-të janë të kudondodhura në informatikën mobile, ku dizajnet kompakte dhe me efikasitet energjetik janë kritike. Ato fuqizojnë telefonat inteligjentë, tabletët dhe orët inteligjente, dhe janë gjithnjë e më të rëndësishme në informatikën në skaje, ku përpunimi i të dhënave në kohë reale ndodh pranë burimit të të dhënave. Duke nxitur trendin drejt integrimit më të ngushtë, SoC-të kanë riformësuar dizajnin modern të harduerit, duke riformësuar peizazhin e dizajnit për pajisjet moderne kompjuterike.  

 Llojet 
parapamje|Sistemi në një çip i bazuar nëmikrokontrollues 
Në përgjithësi, ekzistojnë tre lloje të dallueshme të SoC-ve:

 SoC-të e ndërtuara rreth një mikrokontrolluesi ,
 SoC-të e ndërtuara rreth një mikroprocesori, që shpesh gjenden në telefonat celularë;
 SoC -të e qarqeve të integruara të specializuara për aplikime specifike, të projektuara për aplikime specifike që nuk përshtaten në dy kategoritë e mësipërme.

 Aplikimet 
SoC-të mund të aplikohen në çdo detyrë kompjuterike. Megjithatë, ato përdoren zakonisht në informatikën mobile si tableta, telefona inteligjentë, ora inteligjente dhe netbook, si dhe në sistemet e integruara dhe në aplikime ku më parë përdoreshin mikrokontrollues .

 Sisteme të integruara 
Aty ku më parë mund të përdorej vetëm mikrokontrolluesit, SoC-të po fitojnë rëndësi në tregun e sistemeve të integruara. Integrimi më i ngushtë i sistemit ofron besueshmëri më të mirë dhe kohë mesatare midis dështimeve, dhe SoC-të ofrojnë funksionalitet dhe fuqi llogaritëse më të avancuar sesa mikrokontrolluesit.  Aplikimet përfshijnë përshpejtimin e inteligjencës artificiale, vizionin e makinës në sistemet e integruara,  mbledhjen e të dhënave, telemetrinë, përpunimin vektorial dhe inteligjencën ambientale . Shpesh SoC-të për sistemet e integruara synojnë tregjet e internetit të gjërave, multimedias, rrjetëzimit, telekomunikacionit dhe informatikës në skaje . Disa shembuj të SoC-ve për aplikime të integruara përfshijnë STMicroelectronics STM32, Raspberry Pi Ltd RP2040 dhe AMD Zynq 7000 .

 Informatikë mobile 
parapamje|Sistem në një çip AMD Élan SC450 në Nokia 9110 Communicator
SoC-të e bazuara në informatikë mobile gjithmonë përfshijnë procesorë, memorie, memorje të përkohshme në çip, aftësi rrjetëzimi pa tel dhe shpesh harduer dhe firmware të kamerave dixhitale . Me rritjen e madhësive të memories, SoC-të e nivelit të lartë shpesh nuk përfshijnë memorie dhe hapësirë ruajtjeje flash, dhe në vend të kësaj, memoria dhe memoria flash do të vendosen menjëherë pranë ose sipër ( paketim mbi paketim ) SoC-së.  Disa shembuj të SoC-ve të informatikës mobile përfshijnë:

 Samsung Electronics: list, zakonisht bazuar në ARM
 Exynos, përdoret kryesisht në serinë Galaxy të Samsung
 Qualcomm:
 Snapdragon (list), përdoret në shumë telefona inteligjentë . Në vitin 2018, SoC-të Snapdragon përdoreshin si baza e laptop computers që ekzekutojnë Windows 10, të promovuar si "Always Connected PCs".
 MediaTek, zakonisht bazuar në ARM
 Dimensity & Kompanio Series. Procesorë të pavarur për aplikacione dhe tabletë që furnirzojnë pajisje si Amazon Echo Show

 Kompjuterë personalë 
Në vitin 1992, Acorn Computers prodhoi gamën e kompjuterëve personalë A3010, A3020 dhe A4000 me SoC ARM250. Ai kombinonte procesorin origjinal Acorn ARM2 me një kontrollues memorieje (MEMC), kontrollues videoje (VIDC) dhe kontrollues I/O (IOC). Në kompjuterët e mëparshëm Acorn me ARM, këta ishin katër çipa diskretë. Çipi ARM7500 ishte SoC i gjeneratës së dytë, bazuar në kontrolluesit ARM700, VIDC20 dhe IOMD, dhe u licencua gjerësisht në pajisje të integruara si dekoderë, si dhe në kompjuterët personalë Acorn të mëvonshëm.

Prodhuesit e tabletëve dhe laptopëve kanë nxjerrë mësime nga tregjet e sistemeve të integruara dhe telefonave inteligjentë në lidhje me konsumin e reduktuar të energjisë, performancën dhe besueshmërinë më të mirë të arritura përmes integrimi më të ngushtë të moduleve të harduerit dhe firmware-it, si dhe përmes komunikimet LTE dhe rrjetet e tjera pa tel të integruara në çip ( kontrollues të integruar të ndërfaqes së rrjetit ). 

Në laptopët dhe mini PC-të moderne, variantet me energji të ulët të procesorëve AMD Ryzen dhe Intel Core përdorin dizajn SoC që integron CPU-në, IGPU-në, çipsetin dhe procesorë të tjerë në një paketë të vetme. Megjithatë, procesorë të tillë x86 ende kërkojnë memorie dhe çipa ruajtjeje të jashtme.

 Struktura 
Një SoC përbëhet nga njësi funksionale harduerike, duke përfshirë mikroprocesorë që ekzekutojnë kod softuerik, si dhe një nënsistem komunikimi për lidhjen, kontrollimin, drejtimin dhe ndërfaqësimin midis këtyre moduleve funksionale.

 Komponentët funksionalë 

 Bërthamat e procesorit 
Një SoC duhet të ketë të paktën një bërthamë procesori, por zakonisht një SoC ka më shumë se një bërthamë. Bërthamat e procesorit mund të jenë një mikrokontrollues, mikroprocesor (μP), Furber, Stephen B. (2000). ARM system-on-chip architecture. Harlow, England: Addison-Wesley. ISBN 0-201-67519-6. OCLC 44267964. ASIP-të kanë grupe udhëzimesh që janë të personalizuara për një fushë aplikacioni dhe të dizajnuara për të qenë më efikase sesa udhëzimet për qëllime të përgjithshme për një lloj specifik të ngarkesës së punës. SoC-të shumëprocesorike përmbajnë më shumë se një bërthamë procesori sipas përkufizimit. Arkitektura ARM është një zgjedhje e zakonshme për bërthamat e procesorëve SoC sepse disa bërthama të arkitekturës ARM janë procesorë të butë të specifikuar si bërthama IP. 

 Memorie 
SoC-të duhet të kenë blloqe memorieje gjysmëpërçuese për të kryer llogaritjet e tyre, ashtu si mikrokontrolluesit dhe sistemet e tjera të ngulitura . Në varësi të aplikacionit, memoria SoC mund të formojë një hierarki memorieje dhe një hierarki të memories cache . Në tregun e informatikës mobile, kjo është e zakonshme, por në shumë mikrokontrollues të ngulitur me fuqi të ulët, kjo nuk është e nevojshme. Teknologjitë e memories për SoC-të përfshijnë memorien vetëm për lexim (ROM), memorien me akses të rastësishëm (RAM), ROM-in e programueshëm të fshirë elektrikisht ( EEPROM ) dhe memorien flash.  Ashtu si në sistemet e tjera kompjuterike, RAM-i mund të ndahet në RAM statik (SRAM) relativisht më të shpejtë por më të shtrenjtë dhe RAM dinamik (DRAM) më të ngadaltë por më të lirë. Kur një SoC ka një hierarki të memories cache, SRAM zakonisht do të përdoret për të zbatuar regjistrat e procesorit dhe memoriet cache të integruara të bërthamave, ndërsa DRAM do të përdoret për memorien kryesore . "Memoria kryesore" mund të jetë specifike për një procesor të vetëm (i cili mund të jetë me shumë bërthama ). Kur SoC ka procesorë të shumtë, në këtë rast është memorie e shpërndarë dhe duhet të dërgohet nëpërmjet  në çip që mund të aksesohet nga një procesor tjetër. Haris Javaid; Sri Parameswaran (2014). Pipelined Multiprocessor System-on-Chip for Multimedia. Springer. ISBN 978-3-319-01113-4. OCLC 869378184.

Për diskutim të mëtejshëm mbi çështjet e memories në shumë-procesorë, shihni koherencën e memories cache dhe latencën e memories.

 Ndërfaqet 
SoC-të përfshijnë ndërfaqe të jashtme, zakonisht për protokollet e komunikimit. Këto shpesh bazohen në standardet e industrisë si USB, Ethernet, USART, SPI, HDMI, I²C, CSI, etj.Ndërfaqe specifike ndryshojnë në varësi të aplikimit të synuar. Mund të mbështeten gjithashtu  edhe protokollet e rrjeteve pa tel si Wi-Fi, Bluetooth, 6LoWPAN dhe komunikimi në fushë të afërt .

Kur është e nevojshme, SoC-të përfshijnë ndërfaqe analoge duke përfshirë konvertues analog-në-dixhital dhe dixhital-në-analog, shpesh për përpunimin e sinjalit . Këta mund të jenë në gjendje të ndërveprojnë me lloje të ndryshme sensorësh ose aktivizuesish, duke përfshirë transduktorë inteligjentë.  Ato mund të ndërveprojnë me module ose mburoja specifike për aplikacionin. Alternativisht, këto ndërfaqe mund të jenë të brendshme në SoC, si p.sh. nëse një sensor analog është i integruar në SoC dhe leximet e tij duhet të konvertohen në sinjale dixhitale për përpunim matematikor.

 Procesorë të sinjalit dixhital 
Bërthamat e procesorit dixhital të sinjalit (DSP) shpesh përfshihen në SoC. Ato kryejnë operacione të përpunimit të sinjalit në SoC për sensorë, aktivizues, mbledhjen e të dhënave, analizën e të dhënave dhe përpunimin multimedial. Bërthamat DSP zakonisht kanë arkitektura të setit të udhëzimeve me fjalë shumë të gjata udhëzimi (VLIW) dhe udhëzime të vetme, të dhëna të shumëfishta (SIMD), dhe për këtë arsye janë shumë të përshtatshme për shfrytëzimin e paralelizmit në nivel udhëzimesh përmes përpunimit paralel dhe ekzekutimit superskalar.  Bërthamat SP më shpesh përmbajnë udhëzime specifike për aplikacionin dhe, si të tilla, janë zakonisht procesorë të grupit të udhëzimeve specifike për aplikacionin (ASIP). Udhëzime të tilla specifike për aplikacionin korrespondojnë me njësi funksionale të dedikuara të harduerit që llogaritin ato udhëzime.

Udhëzimet tipike DSP përfshijnë shumëzimin-akumulimin, transformimin e shpejtë të Furierit, shumëzimin-mbledhjen e shkrirë dhe konvolucionet.

 Të tjera 
Ashtu si me sistemet e tjera kompjuterike, SoC-të kërkojnë burime kohore për të gjeneruar sinjale ore, për të kontrolluar ekzekutimin e funksioneve SoC dhe për të siguruar kontekst kohor për aplikacionet e përpunimit të sinjalit të SoC-së, nëse është e nevojshme. Burimet e njohura të kohës janë oscilatorët kristalorë dhe sythat me bllokim faze.

Pajisjet periferike të SoC-ve përfshijnë numëruesit e kohëmatësve, kohëmatësit në kohë reale dhe gjeneratorët e rivendosjes së ndezjes. SoC-të përfshijnë gjithashtu rregullatorë të tensionit dhe qarqe të menaxhimit të energjisë.

 Komunikimi ndërmodulor 
SoC-të përbëhen nga shumë njësi ekzekutimi. Këto njësi shpesh duhet të dërgojnë të dhëna dhe udhëzime para dhe mbrapa. Për shkak të kësaj, të gjitha SoC-të përveç atyre më të thjeshtat, kërkojnë nënsisteme komunikimi. Fillimisht, si me teknologjitë e tjera të mikrokompjuterëve, u përdorën arkitekturat e bus-eve të të dhënave, por kohët e fundit dizajnet bazuar në rrjete të rralla ndërkomunikimi të njohura si rrjete-në-çip (NoC) janë bërë të njohura dhe parashikohet që së shpejti të tejkalojnë arkitekturat e bus-eve në dizajnin e SoC-ve. 

 Komunikim i bazuar në bus 
Historikisht, një autobus global kompjuterik i përbashkët zakonisht lidhte komponentët e ndryshëm, të quajtur edhe "blloqe" të SoC-së.  Një bus shumë i zakonshëm për komunikimet SoC është standardi pa pagesë i Arkitekturës së Autobusit të Mikrokontrolluesit të Avancuar ( AMBA ) i ARM-së.

Kontrolluesit e aksesit të drejtpërdrejtë në memorie i drejtojnë të dhënat direkt midis ndërfaqeve të jashtme dhe memories SoC, duke anashkaluar CPU-në ose njësinë e kontrollit, duke rritur kështu rendimentin e të dhënave të SoC-së. Kjo është e ngjashme me disa drajverë pajisjesh të pajisjeve periferike në arkitekturat e PC-ve me module shumëçipësh të bazuara në komponentë.

Vonesa e sinjaleve në tela nuk është e shkallëzueshme për shkak të miniaturizimit të vazhdueshëm, performanca e sistemit nuk rritet proporcionalisht me numrin e bërthamave të lidhura, frekuenca e funksionimit të SoC-së duhet të ulet me çdo bërthamë shtesë të lidhur që energjia të jetë e qëndrueshme, dhe telat e gjatë konsumojnë sasi të mëdha energjie elektrike. Këto sfida pengojnë  mbështetjen e sistemeve me shumë bërthama në çip.  

 Rrjeti në një çip 
Në fund të viteve 2010, u shfaq një trend i SoC-ve që zbatojnë nënsisteme komunikimi në forma të një topologjie të ngjashme me rrjetin në vend të protokolleve të bazuara në autobus. Një trend drejt më shumë bërthamave të procesorit në SoC ka bërë që efikasiteti i komunikimit në çip të bëhet një nga faktorët kryesorë në përcaktimin e performancës dhe kostos së përgjithshme të sistemit.  Kjo ka çuar në shfaqjen e rrjeteve të ndërlidhjes me ndërrimin e paketave të bazuara në router, të njohura si " rrjete në çip " (NoCs), për të kapërcyer pengesat e rrjeteve të bazuara në autobus.  

Rrjetet në çip kanë përparësi, duke përfshirë rrugëzimin specifik sipas destinacionit dhe aplikacionit, efikasitet më të madh të energjisë dhe mundësi të reduktuar për konfliktit të autobusëve. Arkitekturat e rrjetit në çip marrin frymëzim nga protokollet e komunikimit si TCP dhe suita e protokolleve të internetit për komunikimin në çip, ref name="Kundu Santanu" /> megjithëse ato zakonisht kanë më pak shtresa rrjeti. Zhvillimi i Arkitekturave optimale të rrjeteve në çip janë një fushë e vazhdueshme me shumë interes kërkimor. Arkitekturat NoC variojnë nga topologjitë tradicionale të rrjetit të shpërndarë kompjuterik si torus, hiperkub, rrjeta dhe rrjete pemësh deri te planifikimi i algoritmeve gjenetike deri te algoritmet e rastësishme si ecjet e rastësishme me degëzim dhe kohë të rastësishme për të jetuar (TTL).

Shumë studiues të SoC i konsiderojnë arkitekturat NoC si të ardhmen e dizajnit SoC, sepse ato kanë treguar se plotësojnë në mënyrë efikase nevojat për energji dhe rendiment të dizajneve SoC. Arkitekturat aktuale NoC janë dy-dimensionale. Dizajni i IC 2D ka zgjedhje të kufizuara të planifikimit të dyshemesë ndërsa numri i bërthamave në SoC rritet, kështu që ndërsa shfaqen qarqet e integruara tre-dimensionale (3DIC), projektuesit e SoC po orientohen drejt ndërtimit të rrjeteve tre-dimensionale në çip, të njohura si 3DNoC. 

 Rrjedha e projektimit 
parapamje|Rrjedha e projektimit të SoC-së
Një sistem në një çip përbëhet nga hardueri, i përshkruar në  dhe softueri që kontrollon bërthamat e mikrokontrolluesit, mikroprocesorit ose procesorit të sinjalit dixhital, si dhe periferikët dhe ndërfaqet. Rrjedha e projektimit për një SoC synon të zhvillojë këtë harduer dhe softuer njëkohësisht, i njohur edhe si bashkë-projektim arkitektonik. Rrjedha e projektimit duhet gjithashtu të marrë në konsideratë optimizimet (  ) dhe kufizimet.

Shumica e SoC-ve zhvillohen nga specifikimet kryesore IP të komponentëve harduerikë të parakualifikuar për elementët harduerikë dhe njësitë ekzekutuese, të përshkruara së bashku si "blloqe", të përshkruara më sipër, së bashku me drajverët e pajisjeve softuerike që mund të kontrollojnë funksionimin e tyre. Me rëndësi të veçantë janë pirgjet e protokolleve që drejtojnë ndërfaqet standarde të industrisë si USB. Blloqet e harduerit bashkohen duke përdorur mjete dizajni të ndihmuara nga kompjuteri, konkretisht mjete automatizimi të dizajnit elektronik; modulet e softuerit integrohen duke përdorur një mjedis zhvillimi të integruar të softuerit.

Komponentët e SoC-ve shpesh projektohen në gjuhë programimi të nivelit të lartë si C++, MATLAB ose SystemC dhe konvertohen në dizajne RTL përmes mjeteve të sintezës së nivelit të lartë (HLS) si C në HDL ose rrjedha në HDL.  Produktet HLS të quajtura "sintezë algoritmike" u lejojnë projektuesve të përdorin C++ për të modeluar dhe sintetizuar sistemin, qarkun, softuerin dhe nivelet e verifikimit, të gjitha në një gjuhë të nivelit të lartë që zakonisht njihet nga inxhinierët e kompjuterave në një mënyrë të pavarur nga shkallët kohore, të cilat zakonisht specifikohen në HDL.  Komponentët e tjerë mund të mbeten softuer dhe të kompilohen dhe të integrohen në procesorë me bërthamë të butë të përfshirë në SoC, si module në HDL si bërthama IP.

Pasi të jetë përcaktuar arkitektura e SoC-së, çdo element i ri hardueri shkruhet në një gjuhë abstrakte përshkrimi hardueri të quajtur niveli i transferimit të regjistrit (RTL) i cili përcakton sjelljen e qarkut, ose sintetizohet në RTL nga një gjuhë e nivelit të lartë përmes sintezës së nivelit të lartë. Këta elementë lidhen së bashku në një gjuhë përshkrimi hardueri për të krijuar dizajnin e plotë të SoC-së. Logjika e specifikuar për të lidhur këto komponentë dhe për të konvertuar midis ndërfaqeve të mundshme të ndryshme të ofruara nga shitës të ndryshëm quhet logjikë ngjitëse.

 Verifikimi i dizajnit 
Çipat verifikohen për saktësinë e validimit përpara se të dërgohen në një fabrikë gjysmëpërçuesish. Ky proces quhet verifikim funksional dhe përbën një pjesë të konsiderueshme të kohës dhe energjisë së shpenzuar në ciklin jetësor të projektimit të çipit, shpesh duke u cituar si 70%.  Me rritjen e kompleksitetit të çipave, përdoren gjuhë verifikimi hardueri si SystemVerilog, SystemC, e dhe OpenVera. Gabimet e gjetura gjatë  fazës së verifikimit i raportohen projektuesit.

Tradicionalisht, inxhinierët kanë përdorur përshpejtimin e simulimit, emulimin ose prototipizimin në harduer të riprogramueshëm për të verifikuar dhe debug-uar harduerin dhe softuerin për dizajnet SoC para finalizimit të dizajnit, një proces  i njohur si tape-out. Matriksat e portave të programueshme në terren (FPGAs) preferohen për prototipizimin e SoC-ve, sepse prototipet FPGA janë të riprogramueshme, lejojnë debug-un dhe janë më të fleksibël se qarkët e integruar specifikë për aplikim (ASICs).

Me kapacitet të lartë dhe kohë të shpejtë përpilimi, përshpejtimi dhe emulimi i simulimit janë teknologji të fuqishme që ofrojnë pamje të gjerë në sisteme. Megjithatë, të dyja teknologjitë funksionojnë ngadalë, në rendin e MHz, gjë që mund të jetë dukshëm më e ngadaltë - deri në 100 herë më e ngadaltë - sesa frekuenca operative e SoC-së. Kutitë e përshpejtimit dhe emulimit janë gjithashtu shumë të mëdha dhe të shtrenjta, me më shumë se  1 milion dollarë amerikanë. [ nevojitet citim ]

Prototipet FPGA, në të kundërt, përdorin FPGA-të direkt për të lejuar inxhinierët të validojnë dhe testojnë në, ose afër, frekuencës operative të plotë të funksionimit të një sistemi me stimuj të botës reale. Mjete të tilla si Certus  përdoren për të futur sonda në FPGA RTL që i bëjnë sinjalet të disponueshme për vëzhgim. Kjo përdoret për të debuguar ndërveprimet e harduerit, firmware-it dhe softuerit në shumë FPGA me aftësi të ngjashme me ato të një analizuesi logjik.

Paralelisht, elementët  harduerikë grupohen dhe kalojnë nëpër një proces sinteze logjike, gjatë të cilit zbatohen kufizime të performancës, të tilla si frekuenca operative dhe vonesat e pritura të sinjalit. Kjo gjeneron një rezultat të njohur si një listë rrjetesh që përshkruan dizajnin si një qark fizik dhe ndërlidhjet e tij. Këto lista rrjetesh kombinohen me logjikën ngjitëse që lidh komponentët për të prodhuar përshkrimin skematik të SoC si një qark i cili mund të printohet në një çip. Ky proces njihet si vend dhe rrugë dhe i paraprin kasetës në rast se SoC-të prodhohen si qarqe të integruara specifike për aplikacionin (ASIC).

 Objektivat e optimizimit 
SoC-të duhet të optimizojnë përdorimin e energjisë, sipërfaqen në matricë, komunikimin, pozicionimin për lokalitetin midis njësive modulare dhe faktorë të tjerë. Optimizimi është domosdoshmërisht një qëllim projektimi i SoC-ve. Nëse optimizimi nuk do të ishte i nevojshëm, inxhinierët do të përdornin një arkitekturë moduli me shumë çipa pa marrë parasysh përdorimin e sipërfaqes, konsumin e energjisë ose performancën e sistemit në të njëjtën masë.

Objektivat e zakonshme të optimizimit për dizajnet SoC vijojnë më poshtë, me shpjegime për secilën. Në përgjithësi, optimizimi i cilësdo prej këtyre madhësive mund të jetë një problem i vështirë optimizimi kombinator dhe në të vërtetë mund të jetë mjaft i vështirë për t'u zgjidhur me NP. Prandaj, shpesh kërkohen algoritme të sofistikuara të optimizimit dhe mund të jetë praktike të përdoren algoritme përafrimi ose heuristika në disa raste. Përveç kësaj, shumica e dizajneve SoC përmbajnë variabla të shumëfishta për t'u optimizuar njëkohësisht, kështu që zgjidhjet Pareto efikase kërkohen në dizajnin SoC. Shpesh qëllimet e optimizimit të disa prej këtyre madhësive janë drejtpërdrejt në kundërshtim, duke shtuar më tej kompleksitetin në optimizimin e dizajnit të SoC-ve dhe duke futur kompromise në dizajnin e sistemit.

Për një mbulim më të gjerë të kompromiseve dhe analizës së kërkesave, shih inxhinieria e kërkesave.

 Objektivat 

 Konsumi i energjisë 
SoC-të janë të optimizuara për të minimizuar energjinë elektrike të përdorur për kryerjen e funksioneve të tyre. Shumica e SoC-ve duhet të përdorin energji të ulët. Sistemet SoC shpesh kërkojnë jetëgjatësi të gjatë të baterisë (si në telefonat inteligjentë ), mund të kalojnë muaj ose vite pa një burim energjie ndërkohë që duhet të ruajnë funksionimin autonom, dhe shpesh janë të kufizuara në përdorimin e energjisë për shkak të një numër të madh të SoC-ve të integruara që janë të lidhura në rrjet së bashku në një zonë. Përveç kësaj, kostot e energjisë mund të jenë të larta dhe kursimi i energjisë do të zvogëlojë koston totale të pronësisë së SoC-së. Së fundmi, nxehtësia e humbur nga konsumi i lartë i energjisë mund të dëmtojë komponentët e tjerë të qarkut nëse shpërndahet shumë nxehtësi, duke dhënë një arsye tjetër pragmatike për të kursyer energji. Sasia e energjisë së përdorur në një qark është integrali i energjisë së konsumuar në lidhje me kohën, dhe shkalla mesatare e konsumit të energjisë është produkti i rrymës me tensionin. Në mënyrë ekuivalente, sipas ligjit të Ohmit, fuqia është rryma në katror shumëzuar me rezistencën ose tensioni në katror pjesëtuar me rezistencën:

 Performanca për vat 
SoC-të janë të optimizuara për të maksimizuar efikasitetin e energjisë në performancë për vat: maksimizoni performancën e SoC-së duke marrë parasysh kufirin e energjisë së disponueshme. Shumë aplikacione të tilla si informatika në skaje, përpunimi i shpërndarë dhe inteligjenca ambientale kërkojnë një nivel të caktuar të performancës llogaritëse, por fuqia është e kufizuar në shumicën e mjediseve SoC.

 Nxehtësia e humbur 
Dizajnet SoC janë optimizuar për të minimizuar prodhimin e nxehtësisë së humbur në çip. Ashtu si me qarqet e tjera të integruara, nxehtësia e gjeneruar për shkak të dendësisë së lartë të fuqisë është pengesa për miniaturizimin e mëtejshëm të komponentëve.  Dendësitë e fuqisë së qarqeve të integruara me shpejtësi të lartë, veçanërisht mikroprocesorëve dhe duke përfshirë SoC-të, janë bërë jashtëzakonisht të pabarabarta. Shumë nxehtësi e humbur mund të dëmtojë qarqet dhe të gërryejë besueshmërinë e qarkut me kalimin e kohës. Temperaturat e larta dhe stresi termik ndikojnë negativisht në besueshmëri, migrimin e stresit, uljen e kohës mesatare midis dështimeve, elektromigrimin, lidhjen e telave, metastabilitetin dhe degradime të tjera në performancë të SoC-së me kalimin e kohës. 

Në veçanti, shumica e SoC-ve janë në një zonë ose vëllim të vogël fizik dhe për këtë arsye efektet e nxehtësisë së humbur përkeqësohen sepse ka pak hapësirë për t'u shpërndarë jashtë sistemit. Për shkak të numrit të lartë të transistorëve në pajisjet moderne, shpesh një paraqitje me rendiment të mjaftueshëm dhe dendësi të lartë të transistorëve është fizikisht e realizueshme nga proceset e fabrikimit, por do të rezultonte në sasi të papranueshme të larta të nxehtësisë në vëllimin e qarkut. 

Këto efekte termike i detyrojnë SoC dhe projektuesit e tjerë të çipave të aplikojnë marzhe konservatore të projektimit, duke krijuar pajisje me performancë të reduktuar për të zbutur rrezikun e dështimit katastrofik. Për shkak të dendësisë së rritur të transistorëve, ndërsa shkallët e gjatësisë zvoglohen, çdo gjenerim procesi prodhon më shumë prodhim nxehtësie se i mëparshmi. Duke e përkeqësuar këtë problem, arkitekturat SoC zakonisht janë heterogjene, duke krijuar flukse nxehtësie jo-homogjene në hapsirë, të cilat nuk mund të zbuten në mënyrë efektive nga ftohja pasive uniforme.  

 Vonesë 
SoC-të janë optimizuar për të minimizuar vonesën për disa ose të gjitha funksionet e tyre. Kjo mund të arrihet duke i vendosur elementët me afërsinë dhe lokalitetin e duhur mes tyre për të minimizuar vonesat e ndërlidhjes dhe për të maksimizuar shpejtësinë e komunikimit të të dhënave midis moduleve, njësive funksionale dhe memorieve. Në përgjithësi, optimizimi për të minimizuar vonesën është një problem NP-i i plotë ekuivalent me problemin e kënaqshmërisë Boolean.

Për detyrat që ekzekutohen në bërthamat e procesorit, vonesa dhe rendimenti mund të përmirësohen me planifikimin e detyrave. Megjithatë, disa detyra ekzekutohen në njësitë harduerike specifike për aplikacion, dhe madje edhe planifikimi i detyrave mund të mos jetë i mjaftueshëm për të optimizuar të gjitha detyrat bazuar në softuer që të përmbushin kufizimet e kohës dhe të rendimentit.

 Metodologjitë 
Sistemet në çip modelohen duke përdorur  teknika standarde të verifikimit dhe validimit të harduerit, por përdoren edhe teknika shtesë për të modeluar dhe optimizuar alternativat e projektimit të SoC-ve për ta bërë sistemin optimal në lidhje me analizën e vendimeve me kritere të shumëfishta mbi objektivat e optimizimit të përmendur më sipër.

 Planifikimi i detyrave 
Planifikimi i detyrave është një aktivitet i rëndësishëm në çdo sistem kompjuterik me procese ose fije të shumta që ndajnë një bërthamë të vetme procesori. Është e rëndësishme të reduktohen  dhe rritja  për softuerin e integruar që funksionon në një SoC . Jo çdo aktivitet i rëndësishëm kompjuterik në një SoC kryhet në softuer që funksionon në procesorë të integruar, por planifikimi mund të përmirësojë në mënyrë drastike performancën e detyrave të bazuara në softuer dhe të detyrave të tjera që përfshijnë burime të përbashkëta.

Softuerët që funksionojnë në SoC shpesh caktojnë detyra sipas caktimit të rrjetit dhe algoritmeve të caktimit të rastësishëm.

 Lidhje tubacionesh 
Detyrat e harduerit dhe softuerit shpesh ekzekutohen në projektimin e procesorit. Përpunimi i tubacioneve është një parim i rëndësishëm për përshpejtimin në arkitekturën e kompjuterit. Ato përdoren shpesh në CPU (për shembull, tubacioni klasik RISC ) dhe GPU ( tubi grafik ), por aplikohen edhe në detyra specifike të aplikacionit, siç janë përpunimi i sinjalit dixhital dhe manipulimet multimediale në kontekstin e SoC-ve. 

 Modelimi probabilistik 
SoC-të shpesh analizohen përmes modeleve probabilistike, rrjeteve të radhës dhe zinxhirëve Markov. Për shembull, ligji i Little lejon që gjendjet  e SoC-ve dhe buferat e NoC-së të modelohen si procese mbërritjeje dhe të analizohen përmes variablave të rastësishme Poisson dhe proceseve Poisson.

 Zinxhirët Markov 
SoC-të shpesh modelohen me zinxhirë Markov, si variante në kohë diskrete ashtu edhe në kohë të vazhdueshme . Modelimi me zinxhirë Markov lejon analizën asimptotike të shpërndarjes së fuqisë, nxehtësisë, latencës dhe faktorëve të tjerë në gjendje të qëndrueshme të SoC-së, duke mundësuar që vendimet e projektimit të optimizohen për rastet më të zakonshme.

 Fabrikim 
Çipat SoC zakonisht prodhohen duke përdorur teknologjinë metal-oksid-gjysmëpërçues (MOS).  Listat rrjetesh (netlists) të përshkruara më sipër përdoren si bazë për rrjedhën e projektimit fizik ( vendi dhe rruga ) për të kthyer qëllimin e projektuesve në projektimin e SoC. Gjatë gjithë këtij procesi konvertimi, projektimi analizohet me modelim statik të kohës, simulim dhe mjete të tjera për të siguruar që ai përmbush parametrat e specifikuar operacionalë, siç janë frekuenca, konsumi dhe shpërndarja e energjisë, integriteti funksional (siç përshkruhet në kodin e nivelit të transferimit të regjistrit) dhe integriteti elektrik i qarkut.

Kur të gjitha defektet e njohura janë korrigjuar dhe riverifikuar, dhe të gjitha kontrollet e dizajnit fizik  janë kryer, skedarët e dizajnit fizik që përshkruajnë secilën shtresë të çipit dërgohen në punishten e maskave të shkritores, ku gdhendet një set i plotë maskash litografike prej qelqi. Këto dërgohen në një fabrikë prodhimi pllakash për të krijuar kubet SoC para paketimit dhe testimit.

SoC-të mund të prodhohen nga disa teknologji, duke përfshirë:

 ASIC i personalizuar plotësisht
 ASIC i qelizës standarde
 Matricë portash të programueshme në terren (FPGA)

ASIC-të konsumojnë më pak energji dhe janë më të shpejta se FPGA-të, por nuk mund të riprogramohen dhe janë të shtrenjta për t'u prodhuar. Dizajnet FPGA janë më të përshtatshme për dizajne me vëllim më të ulët, por pas një numri të mjaftueshëm njësish të prodhuara, ASIC-të zvogëlojnë koston totale të pronësisë. 

Dizajnet SoC konsumojnë më pak energji dhe kanë një kosto më të ulët dhe besueshmëri më të lartë sesa sistemet me shumë çipa që zëvendësojnë. Me më pak paketa në sistem, ulen edhe kostot e montimit.

Megjithatë, si shumica e modeleve të integrimit në shkallë shumë të gjerë (VLSI), kostoja totale  është më e lartë për një çip të vetëm dhe të madh sesa për të njëjtin funksionalitet të shpërndarë në disa çipa më të vegjël, për shkak të rendimenteve më të ulëta  dhe kosto më të larta inxhinierike jo të përsëritura.

Kur nuk është e mundur të ndërtohet një SoC për një aplikim të caktuar, një alternativë është një sistem në paketim (SiP) që përfshinë disa çipa brenda në një paketim të vetëm. Kur prodhohet në vëllime të mëdha, SoC është më efektiv nga ana e kostos sesa SiP sepse paketimi i tij është më i thjeshtë.  Një arsye tjetër pse SiP mund të preferohet është se nxehtësia e humbur mund të jetë shumë e lartë në një SoC për një qëllim të caktuar, pasi komponentët funksionalë janë shumë afër njëri-tjetrit. Në një SiP nxehtësia shpërndahet më mirë nga module të ndryshme funksionale, sepse ato janë fizikisht më larg njëra-tjetrës.

 Shembuj 
Disa shembuj të sistemeve në një çip janë:

 Arkitektura e Epifanisë e Adaptevës
 Seria A e Apple
 Procesor qelizor
 Intel Xeon D
 MediaTek
 Qualcomm Snapdragon
 Samsung Exynos
 Xilinx Zynq UltraScale

 Referime 

Kategoria:Mikroteknologji
Kategoria:Inxhinieri kompjuterike