Systemy wbudowane W 90 minut od wynalazku Jack'a Kilby do ...
Transcript of Systemy wbudowane W 90 minut od wynalazku Jack'a Kilby do ...
Systemy wbudowane
W 90 minut od wynalazku Jack'a Kilby do 32 bitowego
procesora aplikacyjnego.
Jacek Kołodziej
1
PLAN
Kim jesteśmy…
Systemy wbudowane = zintegrowane
Procesor aplikacyjny wczoraj i dziś
Asembler? Tak ! Ale czy zawsze?
Narzędzia dla systemów wbudowanych
QUO VADIS
Czym warto się zająć?
2
3
Program wykładu
Systemy wbudowane wprowadzenie
Programowanie systemów wbudowanych w języku C
Rodzina ARM
Budowa uC z rdzeniem ARM Cortex M3
Systemy wielozadaniowe
Systemy czasu rzeczywistego (FreeRTOS)
wątki, planista, zasoby
3
Od zabawy
przez urządzenia
powszechnego użytku
do
systemów podtrzymywania
i ratowania życia
Katedra Elektroniki
Katedra Elektroniki
• Pozwolą przetrwać w mocno zurbanizowanym świecie:
• inteligentne budynki, systemy bezpieczeństwa publicznego
• Pozwolą zapewnić bezpieczny sposób przechowywania i transmisji
danych
• karty inteligentne, klucze szyfrujące
• Wspomagają proces wytwórczy oraz logistykę
• sieci przemysłowe, układy identyfikacyjne
Katedra Elektroniki
• Obecnie ponad 98% wszystkich układów przetwarzających jest,
właściwie ukrytych lub „wbudowanych” we wszelkiego rodzaju
przedmioty, które nawet nie wyglądają jak komputery.
• Klasyczny komputer opuszcza biurko …
• Karty kredytowe, telefony komórkowe, samochody, samoloty.
urządzenia domowe i biurowe;
• Rok 2006 – 4 miliardy procesorów,
rok 2020 1,500 milardów procesorów
• 2.7 b€ na programy badawcze w tym obszarze do 2017
http://www.artemis-ia.eu
Kierunki rozwoju
Sprzęt procesory aplikacyjne
Wydajność
Zarządzanie energią
Komunikacja
Oprogramowanie:
Modelowanie
Niezawodność
8
Jak to jest zrobione …
Architektura ?
CPU ?
Procesory, mikroprocesory
SoC, procesory aplikacyjne
Interfejsy ?
Oprogramowanie ?
9
Od lampy ….
Lampy od 1935 do 1960 Prototyp tranzystora
1947 Bell Labs
Tranzystory
1950 - 1960
Układ scalony INTEL 4004
1971
2300 tranz. 4 bity
pow. 3×4 mm
10
Wynaleziony niezależnie przez Jack Kilby
(Texas Instruments, nagroda Nobla z fizyki 2000)
i Robert Noyce (Fairchild Semiconductors)
Produkowane komercyjnie od 1960 roku
Robert Noyce
Jack Kilby
12
Pierwszy układ był wzmacniaczem pośredniej częstotliwości, potem powstał
przerzutnik (J.Kilby marzec 1956 - $450) i oscylator
Aplikacje militarne
w 1967 Jack Kilby (TI ) buduje kalkulator 1967
http://www.computerhistory.org/
http://www.ti.com/corp/docs/kilbyctr/downloadphotos.shtml
13
Field Effect MOS Transistors
Typowo L = 1 do 10 mm, W = 2 do 500 mm,
grubość warstwy tlenku od 0.02 do 0.1 mm.
14
static CMOS inverter
V, I
t
Idd VINVOUT
CGSp
CGDp
CDBp
CGSn
CGDn
CDBn
input
output
Vdd
CLextCLint
Vss
VOUT
VIN
Zarządzanie energią
16
Układy CMOS – Straty mocy
Pdiss
Prąd quasi- zwarcia bramki
Pq-s_ave ~ (tr + tf )
+ Pq-s + Pstatic
prąd upływuPrzeładowanie pojemności
bramkowych:
• wewnętrznej CLint
• zewnętrznych CLext
Pd_ave = (CLint + CLext ) f VDD2
f – częstotliwość pracy
VDD – napięcie zasilania
= Pdynamic
17
Metody zarządzania energią
Adaptacyjne sterowanie zegarem
Adaptacyjne sterowanie zasilaniem bloków funkcjonalnych
Efektywne zarządzanie wymaga algorytmów sterowania na
poziomie oprogramowania
18
1972 - W laboratoriach PARC powstaje obiektowy języka
programowania Smalltalk, stworzony przez Alana Kaya.
1972 - Powstaje procesor Intel 8008 (200 kHz), pierwszy 8 bitowiec
Procesory
1919
Proces CMOS
Otrzymywanie monokryształu krzemuSilicon Wafer
http://en.wikipedia.org/wiki/File:ICC_2008_Poland_Silicon_Wafer_1_edit.png
20
Maszyny liczące - John von Neumann
24
Arytmetyka
Architektura von Neumann
Treść programu PAMIEĆ
Moduł kontrolny
Układy We/Wy
24
• "Wzorcowa" realizacja maszyny
von Neumanna ze wspólną hierarchią
pamięci instrukcji i danych
• Wspólna hierarchia wyklucza równoczesne
pobieranie instrukcji i operacje na danych
– tzw. von Neumann bottleneck
• Nieograniczone możliwości modyfikacji programu
– obiekt zapisany przez procesor danych do hierarchii pamięci jako dana
może być następnie pobrany przez procesor instrukcji jako instrukcja
– możliwość programowania - potrzebna w komputerach uniwersalnych
– program może sam siebie modyfikować (automodyfikacja)
• nie zawsze jest to pożądana cecha
Architektura Princeton
M
PP DP
na postawie : http://wazniak.mimuw.edu.pl26
• Realizacja maszyny von Neumanna
z oddzielnymi górnymi warstwami
hierarchii pamięci i wspólnymi warstwami
dolnymi
– Przynajmniej jeden poziom kieszeni
jest oddzielny dla procesorów instrukcji i danych
• Większość odwołań do hierarchii pamięci jest realizowanych w
górnych warstwach
– szybkie działanie dzięki równoległości dostępów jak w architekturze
Harvard
• Wspólne dolne warstwy hierarchii umożliwiają zapis programu
– programowalność- niezbędna w komputerach uniwersalnych
Architektura Harward – Princeton
PM DM
M
PP DP
na postawie : http://wazniak.mimuw.edu.pl27
• Intel® QuickPath Technology - Providing point-to-point high-speed
links to distributed shared memory (Intel® 45nm microarchitectures -
codenamed Nehalem and Tukwila)
Przykład Core i7
28
• Klaster komputerowy (ang. cluster) - grupa połączonych jednostek komputerowych, które współpracują ze sobą w celu udostępnienia zintegrowanego środowiska pracy.
• Komputery wchodzące w skład klastra (będące członkami klastra) nazywane są węzłami (ang. node).
• Podział klastrów:
– Klastry wydajnościowe: pracujące jako komputer równoległy. Celem ich budowy jest powiększenie mocy obliczeniowej. Wiele obecnych superkomputerów działa na tej zasadzie.
– Klastry niezawodnościowe: pracujące jako zespół komputerów dublujących nawzajem swoje funkcje. W razie awarii jednego z węzłów, następuje automatyczne przejęcie jego funkcji przez inne węzły.
Klastry komputerów
2929
• Grid (ang. grid) to system przetwarzania danych
– integruje i zarządza zasobami będącymi pod kontrolą różnych domen (od instytucji po system operacyjny)
– połączony siecią komputerową, używa standardowych, otwartych protokołów i interfejsów ogólnego przeznaczenia (odkrywania i dostępu do zasobów, autoryzacji, uwierzytelniania) oraz dostarcza usług odpowiedniej jakości (QoS, oferuje usługi wyższego poziomu).
– twórca Ian Foster, profesor na Uniwersytecie w Chicago, naukowiec pracujący w ANL (ang. Argonne National Laboratory),
• Grid jest rozwinięciem idei klastra poza tradycyjne granice domeny.
Grid
3030
• Instrukcje procesorów CISC mają różne
długości
• Podczas wykonania instrukcji jednostka
interfejsu szyny może być bezczynna
przez kilka faz
– mogłaby ona pobrać kilka kolejnych słów.
o ile byłoby gdzie je przechować
• Rozwiązanie-zastąpienie pojedynczego rejestru
prefetch buforem FIFO-tzw. kolejką instrukcji
(instruction queue)
– jeśli w kolejce jest wolne miejsce, jednostka interfejsu szyny pobiera
do niej kolejne słowo w każdym cyklu bezczynności i inkrementuje PC
• Po wykonaniu skoku należy unieważnić zawartość kolejki i
skopiować nextPC do PC
• Kolejki instrukcji stosowano m in w procesorach MC68010, Intel
8086. 80286, i386
Kolejka rozkazów (instrukcji)
33
• IF (instruction fetch)- pobranie instrukcji
• RD (read) - dekodowanie i odczyt argumentów z rejestrów
• ALU (arithmetic-logic unit) - obliczenie wyniku w jednostce
arytmetyczno - logicznej
• MEM (memory) - wymiana danych z pamięcią
• WB (write back) - zwrotny zapis wyniku do rejestrów
Struktura potoku
34
Jak to jest zrobione …
Dla systemów
wbudowanych wszystkie
niezbędne elementy
powinny być wykonane
w jednym układzie
scalonym !
37
Cechy
Around 1.2V internal, 1.8V/2.5V/3.3V memory, 3.3V external I/O microprocessor with 16KB I-Cache/16KB DCache/
MMU
External memory controller (SDRAM Control and Chip Select logic)
LCD controller (up to 4K color STN and 256K color TFT) with LCD-dedicated DMA
4-ch DMA controllers with external request pins
3-ch UARTs (IrDA1.0, 64-Byte Tx FIFO, and 64-Byte Rx FIFO)
2-ch SPls
IIC bus interface (multi-master support)
IIS Audio CODEC interface
AC’97 CODEC interface
SD Host interface version 1.0 & MMC Protocol version 2.11 compatible
2-ch USB Host controller / 1-ch USB Device controller (ver 1.1)
4-ch PWM timers / 1-ch Internal timer / Watch Dog Timer
8-ch 10-bit ADC and Touch screen interface
RTC with calendar function
Camera interface (Max. 4096 x 4096 pixels input support. 2048 x 2048 pixel input support for scaling)
130 General Purpose I/O ports / 24-ch external interrupt source
Power control: Normal, Slow, Idle and Sleep mode
On-chip clock generator with PLL
44
ARM9 Architecture
Integrated system for hand-held devices and general embeddedapplications.
16/32-Bit RISC architecture and powerful instruction set with ARM920T CPU core.
Enhanced ARM architecture MMU to support
WinCE, EPOC 32 and Linux.
Instruction cache, data cache, write buffer and
Physical address TAG RAM to reduce the effect of main memory bandwidth and latency on performance.
ARM920T CPU core supports the ARM debug architecture.
Internal Advanced Microcontroller Bus Architecture (AMBA) (AMBA2.0, AHB/APB).
45
Interrupt Controller
60 Interrupt sources
(One Watch dog timer, 5 timers, 9 UARTs, 24 external interrupts, 4
DMA, 2 RTC, 2 ADC, 1 IIC, 2 SPI, 1 SDI, 2 USB, 1 LCD, 1 Battery
Fault, 1 NAND and 2 Camera), 1 AC97
Level/Edge mode on external interrupt source
Programmable polarity of edge and level
Supports Fast Interrupt request (FIQ) for very urgent interrupt
request
47
IIS, USB, AC97
• IIS-Bus Interface– 1-ch IIS-bus for audio
interface with DMA-basedoperation
– Serial, 8-/16-bit per channel data transfers
– 128 Bytes (64-Byte + 64-Byte) FIFO for Tx/Rx
– Supports IIS format and MSB-justified data format
• AC97 Audio-CODECInterface– Support 16-bit samples
– 1-ch stereo PCM inputs/ 1-ch stereo PCM outputs 1-ch MIC input
• USB Host– 2-port USB Host
– Complies with OHCI Rev. 1.0
– Compatible with USB Specification version 1.1
• USB Device– 1-port USB Device
– 5 Endpoints for USB Device
– Compatible with USB Specification version 1.1
48
SD, SPI, Camera
• SD Host Interface
– Normal, Interrupt and DMA data
transfer mode (byte, halfword, word
transfer) DMA burst4 access support
(only word transfer)
– Compatible with SD Memory Card
Protocol version 1.0
– Compatible with SDIO Card Protocol
version 1.0
– 64 Bytes FIFO for Tx/Rx
– Compatible with Multimedia Card
Protocol version 2.11
• SPI Interface
– Compatible with 2-ch Serial
Peripheral Interface - Protocol
version 2.11
– 2x8 bits Shift register for Tx/Rx
– DMA-based or interrupt-based
operation
• Camera Interface
• · ITU-R BT 601/656 8-bit mode support
• · DZI (Digital Zoom In) capability
• · Programmable polarity of video sync signals
• · Max. 4096 x 4096 pixels input support (2048 x
• 2048 pixel input support for scaling)
• · Image mirror and rotation (X-axis mirror, Y-axis
• mirror, and 180° rotation)
• · Camera output format (RGB 16/24-bit and YCbCr
• 4:2:0/4:2:2 format)
• Operating Voltage Range
• · Core: 1.20V for 300MHz
• 1.30V for 400MHz
• Memory: 1.8V/ 2.5V/3.0V/3.3V
• · I/O: 3.3V
• Operating Frequency
• · Fclk Up to 400MHz
• · Hclk Up to 136MHz
• · Pclk Up to 68MHz
• Package
• · 289-FBGA
49
NVIDIA® Tegra™ 2 MOBILE PROCESSOR
Wielordzeniowy system-on-a-chip (SoC)
low power GeForce™ GPU core
50
• klasyczne przetwarzanie bazuje na koncepcji skalarnej
– jeden procesor, wykonujący zadania
– pozostałe bloki funkcjonalne „próżnują”, czekając na zakończenie pracy procesora
– przyspieszenie - procesor z wieloma blokami fyncjonalnymi(przetwarzanie superskalarne)
• komputery wektorowe, wieloprocesorowe
– posiadają wiele procesorów (od 64 do 8192).
– problem: synchronizacja pracy procesorów.
– Prawo Almdahla (1967): korzyści jakie daje zwiększenie liczby procesorów są ograniczone przez wąskie gardła.
Kierunki rozwoju metod przetwarzania
5454
• Wydajne, efektywne architektury, czyli nowe koncepcje budowy procesora :
– koncepcja CISC i RISC (1971) (Reduced Instructions Set Computing)
– 10% instrukcji – 90% operacji (zasada Pareto 20/80).
Kierunki rozwoju metod przetwarzania
20% produktów firmy daje jej 80% zysków
20% klientów przynosi nam 80% wartości sprzedaży
20% kryminalistów popełnia 80% przestępstw
20% kierowców powoduje 80% wypadków
20% słownictwa wystarczy by móc czytać 80% tekstów w języku
20% powierzchni dywanu przypada na 80% zużycia
20% ubrań nosimy przez 80% czasu
20% naszej pracy daje 80% efektów
20% obecności na wykładach daje 80% zaliczenie
Zasada 80/20 głosi, że 80% wyników wypływa tylko z 20% przyczyn,
inaczej mówiąc skromniejszymi środkami i mniejszym wysiłkiem
można osiągnąć większe efekty.
Schemat leżący u podstaw tej zasady został odkryty w roku 1897
przez włoskiego ekonomistę Vilfreda Pareto.
5555
Z prawami fizyki trudno dyskutować:
– ograniczają możliwości miniaturyzacji układów scalonych
– są przyczyną barier technologicznych wytwarzania IC
– determinują trudne do rozwiązania problemy odprowadzania ciepła (np.: z procesorów trójwymiarowych, nanorurki)
Potrzeba całkowicie nowej architektury
– Kwantowe, biologiczne, optyczne
• Wzrost szybkości działania do poziomu jaki osiąga ludzki mózg TIPS – 1012 (bilion operacji na sekundę)
• Mózg ludzki działa z szybkością 10 teraflopów i większą (10 bilionów
operacji)
Komputery przyszłości
5656
Nowa fala
“everybody-in-the-Internet-wave”
„everything-in-the-Internet-wave”
Bluetooth, PAN (Personal Area Network), M2M
58
Statystyki
Według Forrester Research w
ciągu kolejnych lat
95% urządzeń podłączonych do
sieci nie będzie komputerami PC.
59
• Apache, IIS, GWS
• boa – (www.boa.org)
• thttpd – (www.acme.com)
Web server running under Linux
The most important thing by an
embedded Web server is the actual
resource requirements.
61
• The practicable binary files for these servers are always smaller than
80 Kbytes and can be integrated in the most embedded systems without
problems.
• For the dynamic generation of HTML pages both servers only offer CGI
(Common Gateway Interface) as enlargement (serverside-includes (SSI)
are not available)
• The maximal possible number of simultaneous requests = 1
– Server like boa and thttpd work only with one single process. If two users need to
get access onto a embedded Web server simultaneously, one of both have to
wait a few fractions of a second.
• There are not many simultaneous requests expected.
boa, thttpd
62
• CPU 32-bit ARM Core
• RAM 4 MB built in Flash 2 MB built in
• Ethernet Interface 10/100 Mbps, auto MDI/MDIX
• Serial Interface : TTL TxD, RxD, RTS, CTS, DTR, DSR, DCD, RST (reset circuit), GND
• GPIO: 4 programmable I/O pins
• Network Protocols : ICMP, ARP, IP, TCP, UDP, DHCP, HTTP, SNMP V1, SMTP, TFTP, Auto
IP, Telnet,
• Operation Modes Real COM, TCP Server, TCP Client, UDP, Ethernet Modem, RFC2217,
• Configuration Options Web Console, Serial Console (Serial Command Mode), Telnet Console,
Windows Utility
• Fixed TTY Drives SCO Unix, SCO OpenServer, UnixWare 7, SVR 4.2, QNX 4.25, QNX 6,
Solaris 10, FreeBSD, AIX 5.x
• Linux Real TTY DriversLinux kernel 2.4.x, 2.6.x
• Windows Real COM DriversWindows 95/98/ME/NT/2000, Windows XP/2003/Vista/2008/7
x86/x64, Embedded CE 5.0/6.0, XP Embedded
MiiNePort E2 10/100 Mbps embedded serial device server
http://www.moxa.com63
Minimoduł MMstm32F107
Sterownik warstwy fizycznej Ethernetu DP83848
10/100 Mb/s
Auto-MDIX (automatic medium-dependent interface crossover)
IEEE 802.3u Auto-Negotiation and Parallel Detection
Niski pobór mocy, typowo < 270mW
Tryby obniżonego poboru mocy
Parametry znacznie lepsze od specyfikacji IEEE, dzięki czemu możliwa jest praca
bez błędów transmisji do odległości 150m
http://www.propox.com/products/t_264.html?lang=pl
64
Katedra Elektroniki
Języki programowania: asembler, C, C++,
Systemy operacyjne: RTOS, Windows CE, Linux
66
Podnoszenie niezawodności
W systemach, gdzie wymagana jest wysoka niezawodność, stosuje
się redundancję większości (nierzadko wszystkich) bloków
funkcjonalnych
Bloki takie pracują w pełnie niezależnie, mogą być oddzielnie
zasilane oraz pracować według innych algorytmów
W systemach takich występuje moduł arbitra (jednostki wybierającej
– voter unit), której zadanie jest ocena i wybór decyzji pracujących
współbieżnie modułów
70
370 million US$ - cena braku testowania oprogramowania
Jedną z najbardziej spektakularnych awarii
spowodowanych błędem w oprogramowaniu
była katastrofa rakiety Arian 5 – Flight 501,
4 czerwca 1996
Bezpośrednia przyczyna to błąd przepełniania,
wywołany brakiem obsługi wyjątku przy
skalowaniu liczb zmiennoprzecinkowych w
reprezentacji 64 bitowej na całkowitoliczbowe
w reprezentacji 16bitowej bez znaku.
71
System z potrójną redundancją
Sygnał
wejściowy
Sygnał
wejściowy
Sygnał
wejściowy
Sygnał
wyjściowy
Alarm
72
System N redundantny
Sygnał
wejściowy
Sygnał
wejściowy
Sygnał
wejściowy
Sygnał wyjściowy
Alarm
Sygnał
wejściowy
73
System z lekką redundacją
Podstawowe
sygnały
wejścioweSygnał wyjściowy
Ostrzeżenia
i zapowiedzi
Podzbiór
podstawowych
sygnałów
wejściowych
Śledzenie wyjścia Podzbiór
podstawowych
sygnałów
wyjściowych
Idea opiera się na dodatkowej analizie ważnych sygnałów wejściowych
74
Userspace
Linux kernel in the system
C library
Linux Kernel
Hardware
Library A User app A
User app B
Event notification,
information expositionCall to services
Event notificationManage
hardware
80
Linux kernel size (2)
arch
block
crypt o
Document at ion
dr ivers
fs
include
init
ipc
kernel
lib
mm
net
scr ipt s
security
sound
usr
0 50000 100000 150000
Size of Linux source directories (KB)
Linux 2.6.17Measured with:du -s --apparent-size
81
Portability and hardware support
Runs on most architectures.
Scalability
Can run on super computers as well as
on tiny devices
(4 MB of RAM is enough).
Compliance to standards and
interoperability.
Exhaustive networking support.
Linux kernel key features
Security
It can't hide its flaws. Its code is
reviewed by many experts.
Stability and reliability.
Modularity
Can include only what a system
needs even at run time.
Easy to program
You can learn from existing code.
Many useful resources on the
net.
82
Jak projektować systemy embedded
• Poznanie sprzętu !!!
• Poznanie metodyk (dobrych praktyk)
• oprogramowanie !!!
• budowanie urządzeń w oparciu o systemy operacyjne (RTOS)
• Stosowanie metodyk zarządzania procesem projektowym
• specyfikacja wymagań,
• planowanie,
• projektowanie,
• testowanie,
• przygotowanie dokumentacji technicznej,
• wdrożenie.
84
Inżynieria systemów wbudowanych
Budowa sprzętu : kontrolery i ich peryferia
Lepiej projektować czy kodować ?
Czyli co elektronik o projektach i procesie wiedzieć powinien ?
Metodyki modelowania systemów - UML i nie tylko
System operacyjny Embedded Linux, platforma sprzętowa, budowa
systemu
Systemy plików : przegląd, standard EIDE, karty SD, biblioteki
M2M – interfejsy sieciowe, serwery usług internetowych
USABILITY – ergonomia interfejsu użytkownika, QT design
System operacyjny Windows CE, konfiguracja programowanie
Analiza ryzyka, SRS, przypadki użycia
85
Podsumowanie
Oblicze współczesnego świata kształtowane jest przez inteligentne
urządzenia, o których istnieniu nie myślimy, czasem nie jesteśmy
nawet tego świadomi
System wbudowany to jedność ducha i materii, czyli
oprogramowania oraz sprzętu
Wzrost oczekiwań w stosunku od tego typu systemów wymaga
opracowania nowych architektur mikrokontrolerów oraz metodyk ich
programowania (modelowanie, implementacja, testowanie)
86