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