System-on-a-chip
SoC (ang. System-on-a-chip) lub SOC (ang. System On 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-a-package), jest ono jednak mniej opłacalne ekonomicznie.
W odróżnieniu od mikrokontrolerów SoC są wyposażone w CPU o stosunkowo dużej mocy obliczeniowej (pozwalającej uruchamiać systemy operacyjne takie jak Linux i Windows CE) oraz bardziej specjalizowane peryferia.
Spis treści |
Struktura[edytuj]
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)
- przetworniki analogowo-cyfrowe lub cyfrowo-analogowe
- obwody zarządzania zasilaniem
Niektóre układy SoC mogą zawierać kilka jednostek obliczeniowych. Są one określane mianem MPSoC (ang. Multiprocessor System-on-Chip).
Projektowanie SoC[edytuj]
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.
Następnym krokiem jest zaprojektowanie struktury SoC w pojedynczym układzie scalonym.
Następnie sprawdzana jest poprawność funkcjonowania układów scalonych z użyciem języków VHDL, Verilog, SystemVerilog, SystemC czy OpenVera.
Wytwarzanie[edytuj]
Układy SoC produkowane są w różnych procesach technologicznych, w tym:
Układy 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[edytuj]
- nVidia Tegra 2
- procesor - ARM Cortex A9 (2 rdzenie po 1.0GHz)
- grafika - GeForce ULP
- Qualcomm Snapdragon
(różne wersje)
- Samsung Hummingbird (Apple A4*)
- procesor - ARM Cortex A8 (1 rdzeń o taktowaniu 1.0GHz)
- grafika - PowerVR SGX-540
- Samsung Exynos 4210
- procesor - ARM Cortex A9 (2 rdzenie po 1.2GHz)
- grafika - Mali 400 MP4
- Texas Instruments OMAP
(różne wersje)
_________
(* - w procesorze Apple A4 zastosowano grafikę SGX-535)