System na czipie (ang. system on a chip, SoC) – mianem tym określa się układ scalony (czip) 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.

Schemat blokowy SoC opartego na procesorze 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 a 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

edytuj

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

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

edytuj

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

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

edytuj

Zobacz też

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