Skip to main content

System-on-a-chip Spis treści Struktura | Projektowanie SoC | Wytwarzanie | Przykładowe układy SoC | Zobacz też | Uwagi | Menu nawigacyjne

Multi tool use
Multi tool use

Układy scalone


układ scalonysystemy wbudowaneARMSiPang.PoPRAMFlashBGARAMFlashCPULinuxWindows CEWindows Mobileang.mikroprocesormikrokontrolerDSPFPGAVHDLVerilogSystemVerilogSystemCOpenVera












System-on-a-chip




Z Wikipedii, wolnej encyklopedii






Przejdź do nawigacji
Przejdź do wyszukiwania




Schemat blokowy SoC opartego o procesor ARM


SoC (ang. System-on-a-chip) mianem tym określa się układ scalony zawierający kompletny system elektroniczny, w tym układy cyfrowe, analogowe (także radiowe) oraz cyfrowo-analogowe. Poszczególne moduły tego systemu, ze względu na ich złożoność, pochodzą zwykle od różnych dostawców. Przykładowo jednostka centralna pochodzi od jednego dostawcy, a porty komunikacji szeregowej od innego. Typowym obszarem zastosowań SoC są systemy wbudowane, a najbardziej rozpowszechnionym przedstawicielem tego rozwiązania są systemy oparte na procesorach w architekturze ARM.


W przypadku, gdy niemożliwe jest zintegrowanie wszystkich obwodów na jednym podłożu półprzewodnikowym, poszczególne moduły wykonuje się na oddzielnych kryształach, a całość zamyka się w jednej obudowie. Rozwiązanie takie określane jest mianem SiP (ang. System-in-package), jest ono jednak mniej opłacalne ekonomicznie, szczególnie przy produkcji w dużych seriach.


Innym rozwiązaniem, stosowanym np. w telefonach komórkowych z „najwyższej półki”, jest PoP (ang. Package-on-package). Polega ono na zastosowaniu dwu układów scalonych, z których jeden jest montowany pod drugim. Zwykle czip znajdujący się pod spodem jest układem typu SoC, a na nim umieszczony jest układ pamięci RAM lub Flash o znacznie większym rozmiarze zwykle w obudowie typu BGA.


Największą różnicą, pomiędzy mikrokontrolerami a SoC, jest ilość pamięci jaką wymagają do swojej pracy i jaką obsługują te układy scalone. W przypadku mikrokontrolerów jest to zwykle poniżej 100 kB pamięci RAM, a ponadto cały system rzeczywiście jest zawarty w jednym tylko czipie. Natomiast SoC najczęściej potrzebują zewnętrznych układów pamięci RAM i Flash, a określenie System on chip jest, głównie w przypadku większych systemów, tylko przenośnią, która określa raczej ukierunkowanie prac projektowych niż rzeczywistą realizację. Ponadto SoC wyposażone są w CPU o stosunkowo dużej mocy obliczeniowej, pozwalającej uruchamiać systemy operacyjne takie jak Linux, Windows CE / Windows Mobile lub nawet ich odpowiedniki desktopowe, a także mogą obsługiwać bardziej wyspecjalizowane peryferia niż mikrokontrolery.




Spis treści





  • 1 Struktura


  • 2 Projektowanie SoC


  • 3 Wytwarzanie


  • 4 Przykładowe układy SoC


  • 5 Zobacz też


  • 6 Uwagi




Struktura |


Typowy układ typu SoC składa się z elementów takich jak:


  • pojedynczy mikroprocesor, mikrokontroler lub rdzeń DSP;

  • bloki pamięci złożone z modułów RAM, ROM, EEPROM lub FLASH;

  • układy czasowo-licznikowe;

  • kontrolery transmisji szeregowej lub równoległej (np. UART, SPI, USB, Ethernet, FireWire);

  • przetworniki analogowo-cyfrowe lub cyfrowo-analogowe;

  • obwody zarządzania zasilaniem.

Niektóre układy SoC mogą zawierać kilka jednostek obliczeniowych, a są one określane mianem MPSoC (ang. Multiprocessor System-on-Chip).



Projektowanie SoC |


Opracowywanie układów SoC przebiega równolegle w dwóch procesach: rozwijana jest baza sprzętowa oraz programowa integrująca mikroprocesor, mikrokontroler lub rdzeń DSP z peryferiami i interfejsami.


Kluczowym etapem podczas projektowania układów SoC jest emulacja bloków sprzętowych na platformie FPGA połączona z rozwijaniem sterowników programowych. Gdy działanie poszczególnych bloków takiego systemu jest już prawidłowe, to następnym krokiem jest zaprojektowanie struktury SoC w pojedynczym układzie scalonym i sprawdzenie poprawności jej funkcjonowania z użyciem języków takich jak: VHDL, Verilog, SystemVerilog, SystemC czy OpenVera.



Wytwarzanie |


Układy SoC produkowane są w różnych procesach technologicznych, w tym:


  • FPGA

  • Standard cell


  • Full custom.

SoC są na ogół mniej energochłonne, bardziej niezawodne, prostsze w montażu i tańsze przy masowej produkcji od rozwiązań opartych na wielu układach scalonych. Niemniej zaprojektowanie układu SoC wymaga zaawansowanych technologii i znacznego nakładu kosztów, jest więc na ogół nieopłacalne przy produkcji małoseryjnej.



Przykładowe układy SoC |



  • nVidia Tegra 2
    • procesor – ARM Cortex A9 (2 rdzenie po 1,0 GHz)

    • grafika – GeForce ULP



  • Qualcomm Snapdragon
    (różne wersje)


  • Samsung Hummingbird (Apple A4[a])
    • procesor – ARM Cortex A8 (1 rdzeń o taktowaniu 1,0 GHz)

    • grafika – PowerVR SGX-540



  • Samsung Exynos 4210
    • procesor – ARM Cortex A9 (2 rdzenie po 1,2 GHz)

    • grafika – Mali 400 MP4



  • Texas Instruments OMAP
    (różne wersje)


Zobacz też |


  • ASIC


Uwagi |



  1. w procesorze Apple A4 zastosowano grafikę SGX-535









Źródło: „https://pl.wikipedia.org/w/index.php?title=System-on-a-chip&oldid=54588133”










Menu nawigacyjne



























(window.RLQ=window.RLQ||[]).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.044","walltime":"0.062","ppvisitednodes":"value":99,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":262,"limit":2097152,"templateargumentsize":"value":0,"limit":2097152,"expansiondepth":"value":3,"limit":40,"expensivefunctioncount":"value":0,"limit":500,"unstrip-depth":"value":0,"limit":20,"unstrip-size":"value":392,"limit":5000000,"entityaccesscount":"value":0,"limit":400,"timingprofile":["100.00% 28.565 1 Szablon:Uwagi","100.00% 28.565 1 -total"],"scribunto":"limitreport-timeusage":"value":"0.006","limit":"10.000","limitreport-memusage":"value":559225,"limit":52428800,"cachereport":"origin":"mw1326","timestamp":"20190406203730","ttl":2592000,"transientcontent":false););"@context":"https://schema.org","@type":"Article","name":"System-on-a-chip","url":"https://pl.wikipedia.org/wiki/System-on-a-chip","sameAs":"http://www.wikidata.org/entity/Q610398","mainEntity":"http://www.wikidata.org/entity/Q610398","author":"@type":"Organization","name":"Contributors to Wikimedia projects","publisher":"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":"@type":"ImageObject","url":"https://www.wikimedia.org/static/images/wmf-hor-googpub.png","datePublished":"2007-10-18T15:05:41Z","image":"https://upload.wikimedia.org/wikipedia/commons/8/85/ARMSoCBlockDiagram.svg"(window.RLQ=window.RLQ||[]).push(function()mw.config.set("wgBackendResponseTime":163,"wgHostname":"mw1331"););oEpYDmSyHcr1ee DQcXdowsQ lyBUsJG18wx2J,Mt3aFP
N0jdW7M,MfbVIP2KL ryw0 o4XCKMqAj YfkxLQlPqOOw0V00Vbv7uOXaZCvjfMTCcxWL WRMPywDMlE6m90Vi0

Popular posts from this blog

Creating centerline of river in QGIS? The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Finding centrelines from polygons in QGIS?Splitting line into two lines with GRASS GIS?Centroid of the equator and a pointpostgis: problems creating flow direction polyline; not all needed connections are drawnhow to make decent sense from scattered river depth measurementsQGIS Interpolation on Curved Grid (River DEMs)How to create automatic parking baysShortest path creation between two linesclipping layer using query builder in QGISFinding which side of closest polyline point lies on in QGIS?Create centerline from multi-digitized roadway lines Qgis 2.18Getting bathymetric contours confined only within river banks using QGIS?

What is the result of assigning to std::vector::begin()? The Next CEO of Stack OverflowWhat are the differences between a pointer variable and a reference variable in C++?What does the explicit keyword mean?Concatenating two std::vectorsHow to find out if an item is present in a std::vector?Why is “using namespace std” considered bad practice?What is the “-->” operator in C++?What is the easiest way to initialize a std::vector with hardcoded elements?What is The Rule of Three?What are the basic rules and idioms for operator overloading?Why are std::begin and std::end “not memory safe”?