Systemy wbudowane

Transkrypt

Systemy wbudowane
Systemy wbudowane - wykład 9
Przemek Błaśkiewicz
27 kwietnia 2016
1 / 88
Część “techniczna”
1
Komponenty dyskretne systemów wbudowanych (1)
2
Procesory...
3
Technologia CMOS
Transystory pMOS, nMOS
Bramki CMOS
2 / 88
Komponenty dyskretne
Komponenty dyskretne: ?
3 / 88
Komponenty dyskretne
Komponenty dyskretne:
jednostki obliczeniowe (CPU);
4 / 88
Komponenty dyskretne
Komponenty dyskretne:
jednostki obliczeniowe (CPU);
jednostki pomocnicze (ko-procesory);
5 / 88
Komponenty dyskretne
Komponenty dyskretne:
jednostki obliczeniowe (CPU);
jednostki pomocnicze (ko-procesory);
akceleratory;
6 / 88
Komponenty dyskretne
Komponenty dyskretne:
jednostki obliczeniowe (CPU);
jednostki pomocnicze (ko-procesory);
akceleratory;
pamięci;
7 / 88
Komponenty dyskretne
Komponenty dyskretne:
jednostki obliczeniowe (CPU);
jednostki pomocnicze (ko-procesory);
akceleratory;
pamięci;
kontrolery magistrali, mostki (bridge);
8 / 88
Komponenty dyskretne
Komponenty dyskretne:
jednostki obliczeniowe (CPU);
jednostki pomocnicze (ko-procesory);
akceleratory;
pamięci;
kontrolery magistrali, mostki (bridge);
magistrale;
9 / 88
Komponenty dyskretne
Komponenty dyskretne:
jednostki obliczeniowe (CPU);
jednostki pomocnicze (ko-procesory);
akceleratory;
pamięci;
kontrolery magistrali, mostki (bridge);
magistrale;
kontrolery we/wy (I/O);
10 / 88
(Główne) jednostki obliczeniowe
11 / 88
(Główne) jednostki obliczeniowe
funkcjonalność procesora
technologia wykonania układu procesora
12 / 88
(Główne) jednostki obliczeniowe
funkcjonalność procesora
ogólnego przeznaczenia;
technologia wykonania układu procesora
13 / 88
(Główne) jednostki obliczeniowe
funkcjonalność procesora
ogólnego przeznaczenia;
programowalno-dedykowany;
technologia wykonania układu procesora
14 / 88
(Główne) jednostki obliczeniowe
funkcjonalność procesora
ogólnego przeznaczenia;
programowalno-dedykowany;
specjalizowany (custom, single-operation);
technologia wykonania układu procesora
15 / 88
(Główne) jednostki obliczeniowe
funkcjonalność procesora
ogólnego przeznaczenia;
programowalno-dedykowany;
specjalizowany (custom, single-operation);
technologia wykonania układu procesora
CMOS
16 / 88
(Główne) jednostki obliczeniowe
funkcjonalność procesora
ogólnego przeznaczenia;
programowalno-dedykowany;
specjalizowany (custom, single-operation);
technologia wykonania układu procesora
CMOS
FPGA
17 / 88
(Główne) jednostki obliczeniowe
funkcjonalność procesora
ogólnego przeznaczenia;
programowalno-dedykowany;
specjalizowany (custom, single-operation);
technologia wykonania układu procesora
CMOS
FPGA
CPLD
18 / 88
(Główne) jednostki obliczeniowe
funkcjonalność procesora
ogólnego przeznaczenia;
programowalno-dedykowany;
specjalizowany (custom, single-operation);
technologia wykonania układu procesora
CMOS
FPGA
CPLD
...
19 / 88
Procesor ogólnego przeznaczenia
Charakterystyka:
20 / 88
Procesor ogólnego przeznaczenia
Charakterystyka:
uniwersalny procesor o szerokim zakresie typowych operacji;
zazwyczaj architektura von Neumana (pamięć programu,
pamięć danych);
w oparciu o rejestry i dużą pamięć (zatem cache, zatem
zarządca pamięci);
potokowość, przepustowość, szeroka magistrala → szybkość
działania;
21 / 88
Procesor ogólnego przeznaczenia
Charakterystyka:
uniwersalny procesor o szerokim zakresie typowych operacji;
zazwyczaj architektura von Neumana (pamięć programu,
pamięć danych);
w oparciu o rejestry i dużą pamięć (zatem cache, zatem
zarządca pamięci);
potokowość, przepustowość, szeroka magistrala → szybkość
działania;
Zalety:
22 / 88
Procesor ogólnego przeznaczenia
Charakterystyka:
uniwersalny procesor o szerokim zakresie typowych operacji;
zazwyczaj architektura von Neumana (pamięć programu,
pamięć danych);
w oparciu o rejestry i dużą pamięć (zatem cache, zatem
zarządca pamięci);
potokowość, przepustowość, szeroka magistrala → szybkość
działania;
Zalety:
szybka produkcja (time-to-market) (łatwiejsze programowanie);
łatwa dostępność;
wysoka elastyczność - jedna aplikacja, wiele możliwości.
23 / 88
Procesor ogólnego przeznaczenia
Charakterystyka:
uniwersalny procesor o szerokim zakresie typowych operacji;
zazwyczaj architektura von Neumana (pamięć programu,
pamięć danych);
w oparciu o rejestry i dużą pamięć (zatem cache, zatem
zarządca pamięci);
potokowość, przepustowość, szeroka magistrala → szybkość
działania;
Zalety:
szybka produkcja (time-to-market) (łatwiejsze programowanie);
łatwa dostępność;
wysoka elastyczność - jedna aplikacja, wiele możliwości.
koszt...
24 / 88
Intel 4004
25 / 88
Intel 4004
zegar 740kHz
16 rejestrów 4-bitowych
dodawanie dwóch
8-cyfrowych liczb (BCD):
850µs
adresowalne 5120 bitów
RAM i 32768 bitów ROM
46 instrukcji
26 / 88
Intel 4004
27 / 88
Procesor programowalno-dedykowany
Pewne operacje są typowe dla pewnych dziedzin/zastosowań.
28 / 88
Procesor programowalno-dedykowany
Pewne operacje są typowe dla pewnych dziedzin/zastosowań.
Filtry, to często obliczenie:
y=
M−1
X
Ak Xk
k=0
Operacja MAC → multiply and add.
29 / 88
Procesor programowalno-dedykowany
Pewne operacje są typowe dla pewnych dziedzin/zastosowań.
Filtry, to często obliczenie:
y=
M−1
X
Ak Xk
k=0
Operacja MAC → multiply and add.
Procesory dedykowane, np. DSP (digital signal processing ).
30 / 88
Procesor programowalno-dedykowany
Pewne operacje są typowe dla pewnych dziedzin/zastosowań.
Filtry, to często obliczenie:
y=
M−1
X
Ak Xk
k=0
Operacja MAC → multiply and add.
Procesory dedykowane, np. DSP (digital signal processing ).
przyspieszone operacje (np. MAC, wektorowe) – dedykowane
układy mnożące oraz operacje w asemblerze; specjalne tryby
adresowania;
31 / 88
Procesor programowalno-dedykowany
Pewne operacje są typowe dla pewnych dziedzin/zastosowań.
Filtry, to często obliczenie:
y=
M−1
X
Ak Xk
k=0
Operacja MAC → multiply and add.
Procesory dedykowane, np. DSP (digital signal processing ).
przyspieszone operacje (np. MAC, wektorowe) – dedykowane
układy mnożące oraz operacje w asemblerze; specjalne tryby
adresowania;
architektura harwardzka i potokowość;
32 / 88
Procesor programowalno-dedykowany
Pewne operacje są typowe dla pewnych dziedzin/zastosowań.
Filtry, to często obliczenie:
y=
M−1
X
Ak Xk
k=0
Operacja MAC → multiply and add.
Procesory dedykowane, np. DSP (digital signal processing ).
przyspieszone operacje (np. MAC, wektorowe) – dedykowane
układy mnożące oraz operacje w asemblerze; specjalne tryby
adresowania;
architektura harwardzka i potokowość;
trudniej programować, wolniejsze w ogólnych zastosowaniach...
33 / 88
Texas Instruments TMS320C5504 DSP system-on-chip
34 / 88
AVR ATtiny1634 – mikrokontroler 8 bitowy
35 / 88
Procesor specjalizowany
Mały układ wykonujący jedną, (prostą) czynność.
36 / 88
Procesor specjalizowany
Mały układ wykonujący jedną, (prostą) czynność.
timer/watchdog/counter;
37 / 88
Procesor specjalizowany
Mały układ wykonujący jedną, (prostą) czynność.
timer/watchdog/counter;
UART/USART
38 / 88
Procesor specjalizowany
Mały układ wykonujący jedną, (prostą) czynność.
timer/watchdog/counter;
UART/USART
kontroler LCD, silnika krokowego...
39 / 88
Procesor specjalizowany
Mały układ wykonujący jedną, (prostą) czynność.
timer/watchdog/counter;
UART/USART
kontroler LCD, silnika krokowego...
Gotowe procesory vs. budowane własnym sumptem.
40 / 88
HD44780 - kontroler LCD 2x16 znaków
41 / 88
HD44780 - kontroler LCD 2x16 znaków
42 / 88
HD44780 - kontroler LCD 2x16 znaków
43 / 88
Procesory, które mogą być wszystkim
Procesory “programowalne” – modyfikowalny hardware:
FPGA/CPLD
44 / 88
LEON2-FT - ESA i jej wkład w podbój kosmosu
Leon – a new recipe for chips - www.ESA.int
45 / 88
LEON2-FT - ESA i jej wkład w podbój kosmosu
“The next stage was then to physically translate that code to create
a test board hosting a programmable chip called a ‘field
programmable gate array’ (FPGA) where the LEON design could
be put to work and tested.”
Leon – a new recipe for chips - www.ESA.int
46 / 88
VHDL - język opisu sprzętu (1)
1
2
library ieee ;
use i e e e . std_logic_1164 . a l l ;
3
4
5
6
7
e n t i t y eqcomp i s p o r t (
a , b : i n b i t _ v e c t o r ( 3 downto 0 ) ;
e q u a l s : out b i t ) ;
end eqcomp ;
8
9
10
11
12
a r c h i t e c t u r e d a t a f l o w o f eqcomp i s
begin
e q u a l s <= ’ 1 ’ when ( a = b ) e l s e
end d a t a f l o w ;
’0 ’;
47 / 88
VHDL - język opisu sprzętu (2)
1
2
library ieee ;
use i e e e . std_logic_1164 . a l l ;
3
4
5
6
7
e n t i t y eqcomp i s p o r t (
a , b : i n b i t _ v e c t o r ( 3 downto 0 ) ;
e q u a l s : out b i t ) ;
end eqcomp ;
8
9
10
11
12
13
14
15
16
17
18
a r c h i t e c t u r e b o o l o f eqcomp
begin
e q u a l s <=
not ( a ( 0 ) ) xor
and
not ( a ( 1 ) ) xor
and
not ( a ( 2 ) ) xor
and
not ( a ( 3 ) ) xor
end b o o l ;
is
(b(0))
(b(1))
(b(2))
(b (3));
48 / 88
FPGA - widok ogólny
49 / 88
FPGA - widok ogólny
łączę co dwa CLB, co 4, co 8, wszystkie w koło
50 / 88
FPGA - widok ogólny
łączę co dwa CLB, co 4, co 8, wszystkie w koło
układ mnożący (w rodzinie Virtex: 18x18 bitów)
51 / 88
FPGA - widok ogólny
łączę co dwa CLB, co 4, co 8, wszystkie w koło
układ mnożący (w rodzinie Virtex: 18x18 bitów)
rozsiane bloki pamięci RAM (po np. 18kBit)
52 / 88
FPGA - widok ogólny
łączę co dwa CLB, co 4, co 8, wszystkie w koło
układ mnożący (w rodzinie Virtex: 18x18 bitów)
rozsiane bloki pamięci RAM (po np. 18kBit)
peryfieria plus układ kompensacji zegara
53 / 88
FPGA rodzina Spartan
SLICE
54 / 88
FPGA rodzina Spartan
SLICE
wchodzą w skład CLB
(configurable logic
block)
55 / 88
FPGA rodzina Spartan
SLICE
wchodzą w skład CLB
(configurable logic
block)
dodatkowa
"drobnica"(carry
chain, OR, XOR ...
56 / 88
FPGA rodzina Spartan
SLICE
wchodzą w skład CLB
(configurable logic
block)
dodatkowa
"drobnica"(carry
chain, OR, XOR ...
CLB mają szybkie
połączenia z
sąsiadami
57 / 88
SPLD – (Simple) Programmable Logic Device
58 / 88
SPLD – (Simple) Programmable Logic Device
stałe bramki, konfigurowalne połączenia
59 / 88
SPLD – (Simple) Programmable Logic Device
stałe bramki, konfigurowalne połączenia
FPLA, GAL – reprogramowalne
60 / 88
SPLD – (Simple) Programmable Logic Device
stałe bramki, konfigurowalne połączenia
FPLA, GAL – reprogramowalne
GAL, PAL – stałe łączenia bramek OR
61 / 88
SPLD – (Simple) Programmable Logic Device
stałe bramki, konfigurowalne połączenia
FPLA, GAL – reprogramowalne
GAL, PAL – stałe łączenia bramek OR
suma iloczynów (SOP): X’YZ+X’Y+Y’Z’ ...
62 / 88
SPLD – (Simple) Programmable Logic Device
stałe bramki, konfigurowalne połączenia
FPLA, GAL – reprogramowalne
GAL, PAL – stałe łączenia bramek OR
suma iloczynów (SOP): X’YZ+X’Y+Y’Z’ ...
dobre gdy iloczyny wielu wejść “kompresowane” do alternatywy
63 / 88
SPLD - dwie płaszczyzny, AND, OR
64 / 88
SPLD - dwie płaszczyzny, AND, OR
65 / 88
CPLD – Complex Programmable Logic Device
66 / 88
CPLD – Complex Programmable Logic Device
67 / 88
CPLD – Complex Programmable Logic Device
LB - logic blocks (kilka)
microcells - (MC) ∼ 8-16 w
LB
MC połączone w logic blocks
(LB)
LB połączone w CPLD
68 / 88
CPLD – po środku
PLD
nieulotnie programowalne
bloki we/wy bezpośrednio do
LB
dalej podstawą
suma-produktów
FPGA
zwiększona złożoność
operacji
dużo bramek
podzespoły ogólnego
przeznaczenia
69 / 88
CPLD – za/przeciw
przewidywalne opóźnienia czasowe krótsze niż FPGA
70 / 88
CPLD – za/przeciw
przewidywalne opóźnienia czasowe krótsze niż FPGA
krytyczne, “high-performance” aplikacje nadzorcze
71 / 88
CPLD – za/przeciw
przewidywalne opóźnienia czasowe krótsze niż FPGA
krytyczne, “high-performance” aplikacje nadzorcze
niedrogie i oszczędne energetycznie
72 / 88
CPLD – za/przeciw
przewidywalne opóźnienia czasowe krótsze niż FPGA
krytyczne, “high-performance” aplikacje nadzorcze
niedrogie i oszczędne energetycznie
wymagające finansowo, bateryjne systemy mobilne (sensory)
73 / 88
CPLD – za/przeciw
przewidywalne opóźnienia czasowe krótsze niż FPGA
krytyczne, “high-performance” aplikacje nadzorcze
niedrogie i oszczędne energetycznie
wymagające finansowo, bateryjne systemy mobilne (sensory)
proste aplikacje np. 1-z-N, dekodowanie adresów etc.
74 / 88
CPLD – za/przeciw
przewidywalne opóźnienia czasowe krótsze niż FPGA
krytyczne, “high-performance” aplikacje nadzorcze
niedrogie i oszczędne energetycznie
wymagające finansowo, bateryjne systemy mobilne (sensory)
proste aplikacje np. 1-z-N, dekodowanie adresów etc.
mniej wszechstronna struktura
75 / 88
CPLD – za/przeciw
przewidywalne opóźnienia czasowe krótsze niż FPGA
krytyczne, “high-performance” aplikacje nadzorcze
niedrogie i oszczędne energetycznie
wymagające finansowo, bateryjne systemy mobilne (sensory)
proste aplikacje np. 1-z-N, dekodowanie adresów etc.
mniej wszechstronna struktura
ograniczona ilość wejść dla microcell
76 / 88
Tranzystor polowy - MOSFET
Metal-On-Silicon, Field-Effect, Transistor → MOSFET
77 / 88
Tranzystor polowy - MOSFET
Metal-On-Silicon, Field-Effect, Transistor → MOSFET
78 / 88
Tranzystor polowy - MOSFET
Metal-On-Silicon, Field-Effect, Transistor → MOSFET
79 / 88
MOSFET - działanie
pMOS
G = 0 → przewodzenie
G = 1 → brak przewodzenia
80 / 88
MOSFET - działanie
pMOS
nMOS
G = 0 → przewodzenie
G = 1 → brak przewodzenia
G = 0 → brak przewodzenia
G = 1 → przewodzenie
81 / 88
Bramki logiczne CMOS - inwerter
82 / 88
Bramki logiczne CMOS - NAND, NOR
83 / 88
Bramki logiczne CMOS - NAND, NOR
84 / 88
Bramki logiczne CMOS - NAND, NOR
85 / 88
Bramki logiczne CMOS - NAND, NOR
86 / 88
Bramki logiczne CMOS - NAND, NOR
87 / 88
Bramka NAND - budowa
88 / 88
Bramka NAND - budowa
89 / 88
Bramka NAND - budowa
90 / 88
Rzeczy do zapamiętania
procesory specjalizowane vs. programowalne vs.
programowalne-dedykowane;
budowa, porównanie FPGA, (S/C)PLD;
technologia CMOS: bramki INV, NAND, NOR;
Do przeczytania
http://www.esa.int/Our_Activities/ ⇒ LEON – a new recipe
for chips.
91 / 88

Podobne dokumenty