System on chip

Schemat blokowy SoC opartego o procesor ARM

System na czipie (ang. system on a chip, SoC), w skrócie czip – 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 dwóch 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.

Struktura

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

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ż

Uwagi

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

Media użyte na tej stronie