Sistemi në një çip

[parapamje|Një Exynos 4 Quad (4412), në qarkun e një telefoni inteligjent [Samsung Galaxy S III]]
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ë[Mikrokontrolluesi|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),  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. 

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. 

#### 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ë.  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ë. &#x5B; '''' &#x5D;

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:

P = IV = \frac{V^2}{R} = {I^2}{R}

#### 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. 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