Cuprins - UTMmasterat.fcim.utm.md/informatii/curs_sdc/scd02.pdf · 15.03.2015 Sisteme de calcul...
Transcript of Cuprins - UTMmasterat.fcim.utm.md/informatii/curs_sdc/scd02.pdf · 15.03.2015 Sisteme de calcul...
15.03.2015 Sisteme de calcul dedicate (02) 1
Cuprins
1. Introducere
2. Modele şi limbaje pentru specificaţia
sistemelor
3. Microcontrolere
4. Procesoare dedicate
5. Interfeţe de comunicaţie
6. Periferice pentru sisteme dedicate
7. Dezvoltarea programelor
8. Sisteme de operare dedicate
15.03.2015 Sisteme de calcul dedicate (02) 2
Modele şi limbaje pentru specificaţiasistemelor
Introducere
Tipuri de modele
Modele şi limbaje
Exemplu
Modele orientate pe stare
Modele orientate pe activitate
Modele orientate pe structură
Modele orientate pe date
Modele eterogene
Limbaje pentru specificaţia sistemelor
15.03.2015 Sisteme de calcul dedicate (02) 3
Introducere (1)
Dificultatea descrierii funcţionale a unui sistem dedicat
� Complexitatea crescută a sistemului → rezultă şi din capacitatea crescută a circuitului integrat� Aplicaţii simple: aparate electrocasnice, jocuri → sute sau mii de linii de cod
� Aplicaţii complexe: telefoane, automobile →sute de mii de linii de cod
15.03.2015 Sisteme de calcul dedicate (02) 4
Introducere (2)
� Iniţial, funcţionalitatea dorită nu este înţeleasă complet � Erori de implementare datorită descrierilor
incomplete sau eronate
� Metoda obişnuită: utilizarea unui limbaj natural� Descrierea precisă a sistemului este foarte
dificilă
� Metoda recomandată: utilizarea unor modele computaţionale� Pun la dispoziţie un set de obiecte şi reguli
pentru compunerea obiectelor
15.03.2015 Sisteme de calcul dedicate (02) 5
Modele şi limbaje pentru specificaţiasistemelor
Introducere
Tipuri de modele
Modele şi limbaje
Exemplu
Modele orientate pe stare
Modele orientate pe activitate
Modele orientate pe structură
Modele orientate pe date
Modele eterogene
Limbaje pentru specificaţia sistemelor
15.03.2015 Sisteme de calcul dedicate (02) 6
Tipuri de modele (1)
Modele orientate pe stare
� Reprezintă sistemul ca un set de stări şi un set de tranziţii între stări
� Tranziţiile sunt determinate de evenimente externe
� Exemplu: automat cu stări finite
� Se utilizează pentru sisteme de control: monitorizarea unor intrări de control; setarea unor ieşiri de control
15.03.2015 Sisteme de calcul dedicate (02) 7
Tipuri de modele (2)
Modele orientate pe activitate
� Descriu sistemul ca un set de activităţi
� Activităţile sunt asociate prin dependenţe de date sau de execuţie
� Exemplu: graf al fluxului de date
� Se pot utiliza pentru sisteme dominate de date� Transformă şiruri de date de intrare în şiruri de
date de ieşire → sisteme DSP
15.03.2015 Sisteme de calcul dedicate (02) 8
Tipuri de modele (3)
Modele orientate pe structură
� Descriu modulele fizice ale sistemului şi interconexiunile dintre acestea
� Nu reprezintă funcţionarea sistemului
� Exemplu: schemă-bloc
Modele orientate pe date
� Reprezintă sistemul ca o colecţie de dateasociate prin atribute, apartenenţă la clase etc.
15.03.2015 Sisteme de calcul dedicate (02) 9
Tipuri de modele (4)
� Utilizate mai ales pentru sisteme de programe
� Exemplu: diagramă entitate – relaţie
Modele eterogene
� Integrează caracteristici ale mai multor modele
� Exemplu: graf al fluxului de control/date
15.03.2015 Sisteme de calcul dedicate (02) 10
Modele şi limbaje pentru specificaţiasistemelor
Introducere
Tipuri de modele
Modele şi limbaje
Exemplu
Modele orientate pe stare
Modele orientate pe activitate
Modele orientate pe structură
Modele orientate pe date
Modele eterogene
Limbaje pentru specificaţia sistemelor
15.03.2015 Sisteme de calcul dedicate (02) 11
Modele şi limbaje
Model computaţional: descrie funcţionalitatea dorită a sistemului → noţiune conceptuală
Limbaj: descrie modelul sub o formă concretă
Un model poate fi descris într-o varietate de limbaje
� Exemplu: model al programului secvenţial → C, C++, Java
Un limbaj poate descrie o varietate de modele
� Exemplu: C++ → model obiectual, model al programului secvenţial, automat de stare
15.03.2015 Sisteme de calcul dedicate (02) 12
Modele şi limbaje pentru specificaţiasistemelor
Introducere
Tipuri de modele
Modele şi limbaje
Exemplu
Modele orientate pe stare
Modele orientate pe activitate
Modele orientate pe structură
Modele orientate pe date
Modele eterogene
Limbaje pentru specificaţia sistemelor
15.03.2015 Sisteme de calcul dedicate (02) 13
Exemplu (1)
Controler pentru un ascensor
� Descriere în limbaj natural“Deplasează ascensorul în sus sau în jos până la etajul cerut. La etajul cerut, deschide uşa pentru cel puţin 10 secunde şi păstrează uşa deschisă până când etajul cerut se modifică. Păstrează uşa închisă în timpul deplasării. Schimbă direcţia doar dacă nu sunt cereri la etaje superioare în timpul deplasării în sus sau dacă nu sunt cereri la etaje inferioare în timpul deplasării în jos.”
15.03.2015 Sisteme de calcul dedicate (02) 14
Exemplu (2)
Două blocuri:
� RezCereri rezolvă diferitele cereri de etaje într-un singur etaj cerut
� UnitControl deplasează ascensorul la etajul cerut
butoane îninteriorul
ascensorului
UnitControl
b1
down
open
floor
...
RezCereri
...
butoaneup/down la fiecare etaj
b2bN
up1
up2dn2
dnN
req
up
Interfaţa sistem
up3
dn3
dn1
15.03.2015 Sisteme de calcul dedicate (02) 15
Exemplu (3)
Descrierea UnitControl
Inputs: int floor; bit b1..bN; up1..upN-1; dn2..dnN;Outputs: bit up, down, open;Global variables: int req;
void UnitControl() {
up = down = 0; open = 1;while (1) {
while (req == floor);open = 0;if (req > floor) { up = 1;}else {down = 1;}while (req != floor);up = down = 0;open = 1;delay(10);
}}
15.03.2015 Sisteme de calcul dedicate (02) 16
Modele şi limbaje pentru specificaţiasistemelor
Introducere
Tipuri de modele
Modele şi limbaje
Exemplu
Modele orientate pe stare
Modele orientate pe activitate
Modele orientate pe structură
Modele orientate pe date
Modele eterogene
Limbaje pentru specificaţia sistemelor
15.03.2015 Sisteme de calcul dedicate (02) 17
Modele orientate pe stare
Modele orientate pe stare
� Automat cu stări finite
� Automat cu stări finite şi căi de date
� Reţea Petri
� Automat cu stări finite ierarhice concurente
15.03.2015 Sisteme de calcul dedicate (02) 18
Automat cu stări finite (1)
FSM (Finite-State Machine)
� Un set de stări ale sistemului
� Un set de tranziţii posibile între stări
� Un set de acţiuni asociate cu stările sau tranziţiile
� <S, I, O, f, h, s0>S = {s0, s1, …, sl} setul de stări
I = {i0, i1, …, im} setul de intrări
O = {o0, o1, …, on} setul de ieşiri
15.03.2015 Sisteme de calcul dedicate (02) 19
Automat cu stări finite (2)
f – funcţia stării următoare, f : S x I → S
h – funcţia de ieşire
s0 – starea iniţială
� FSM Mealy (bazat pe tranziţii)h : S x I → O
� FSM Moore (bazat pe stări)h : S → O� FSM Moore necesită un număr mai mare de
stări decât FSM Mealy → fiecare valoare de ieşire necesită propria stare
15.03.2015 Sisteme de calcul dedicate (02) 20
Automat cu stări finite (3)
Idle
GoingUp
req > floor
req < floor
!(req > floor)
!(timer < 10)
req < floor
DoorOpen
GoingDn
req > floor
u,d,o, t = 1,0,0,0
u,d,o,t = 0,0,1,0
u,d,o,t = 0,1,0,0
u,d,o,t = 0,0,1,1
u: up; d: down; o: open; t: timer_start
req == floor
!(req < floor)
timer < 10
Modelul pentru UnitControl
15.03.2015 Sisteme de calcul dedicate (02) 21
Modele orientate pe stare
Modele orientate pe stare
� Automat cu stări finite
� Automat cu stări finite şi căi de date
� Reţea Petri
� Automat cu stări finite ierarhice concurente
15.03.2015 Sisteme de calcul dedicate (02) 22
Automat cu stări finite şi căi de date (1)
FSMD (Finite-State Machine with Datapath)
� Extinde modelul FSM cu tipuri de date complexe şi variabile� Modelul FSM utilizează numai tipuri de date şi
operaţii booleene
� Avantaj: reducerea numărului de stări
� <S, I, O, V, f, h, s0>V = {v0, v1, …, vn} setul variabilelor
f – funcţia stării următoare, f : S x I x V → Sh – funcţia de acţiune, h : S → O + V (Moore)
15.03.2015 Sisteme de calcul dedicate (02) 23
Automat cu stări finite şi căi de date (2)
� I, O şi V pot conţine tipuri de date complexe, ca şi limbajele de programare
� f şi h pot conţine operaţii aritmetice
� h descrie şi actualizarea variabilelor
� Automatul anterior: FSMD
� FSMD se poate utiliza atât pentru sisteme de control, cât şi pentru sisteme de calcul
� Dezavantajul modelelor FSM şi FSMD: nu permit descrierea sistemelor complexe
15.03.2015 Sisteme de calcul dedicate (02) 24
Modele orientate pe stare
Modele orientate pe stare
� Automat cu stări finite
� Automat cu stări finite şi căi de date
� Reţea Petri
� Automat cu stări finite ierarhice concurente
15.03.2015 Sisteme de calcul dedicate (02) 25
Reţea Petri (1)
Modelul reţelei Petri:
� Un set de locaţii, un set de tranziţii şi un set de simboluri (tokens)
� Simbolurile se află în locaţii şi circulă prin reţea, fiind consumate şi produse atunci când o tranziţie este declanşată
� <L, T, I, O, u >L = {l0, l1, …, lm} setul locaţiilor
T = {t0, t1, …, tn} setul tranziţiilor
15.03.2015 Sisteme de calcul dedicate (02) 26
Reţea Petri (2)
I – funcţia de intrare, I : T → L+, defineşte locaţiile care furnizează intrări unei tranziţii
O – funcţia de ieşire, I : T → L+, defineşte locaţiile de ieşire pentru fiecare tranziţie
u – funcţia de marcaj, u : L → N, defineşte numărul de simboluri din fiecare locaţie
� O tranziţie este declanşată numai dacă este validată → fiecare din locaţiile sale de intrare are cel puţin un simbol� Se elimină toate simbolurile de validare din
locaţiile de intrare ale tranziţiei
15.03.2015 Sisteme de calcul dedicate (02) 27
Reţea Petri (3)
I: I(T1)={L1} O: O(T1)={L5} u: u(L1)=1
I(T2)={L2,L3,L5} O(T2)={L3,L5} u(L2)=1
I(T3)={L3} O(T3)={L4} u(L3)=2
I(T4)={L4} O(T4)={L2,L3} u(L4)=0
15.03.2015 Sisteme de calcul dedicate (02) 28
Reţea Petri (4)
Reţelele Petri pot modela diferite caracteristici ale sistemelor
� Secvenţierea
� Ramificaţia non-deterministă
� Sincronizarea
� Conflictul la resurse
� Concurenţa proceselor
15.03.2015 Sisteme de calcul dedicate (02) 29
Reţea Petri (5)
(a) secvenţiere; (b) ramificaţie; (c) sincronizare;
(d) conflict la resurse; (e) concurenţă
15.03.2015 Sisteme de calcul dedicate (02) 30
Reţea Petri (6)
Se poate utiliza pentru a testa şi valida anumite proprietăţi utile ale sistemelor
� Siguranţa: este garantată prin faptul că numărul de simboluri nu creşte nedefinit
� Funcţionalitatea: este garantată prin lipsa blocajelor → va exista întotdeauna cel puţin o tranziţie care poate fi declanşată
Avantaj: modelarea sistemelor concurenteDezavantaj: nu este utilă pentru sisteme complexe
15.03.2015 Sisteme de calcul dedicate (02) 31
Modele orientate pe stare
Modele orientate pe stare
� Automat cu stări finite
� Automat cu stări finite şi căi de date
� Reţea Petri
� Automat cu stări finite ierarhice concurente
15.03.2015 Sisteme de calcul dedicate (02) 32
Automat cu stări finite ierarhice concurente (1)
HCFSM (Hierarchical/Concurrent FSM)
� Extensie a modelului FSM
� Pentru descrierea modelelor HCFSM a fost elaborat limbajul grafic Statecharts
� Ierarhia: permite descompunerea unei stări într-un set de sub-stări� Fiecare stare poate fi descompusă în mai multe
sub-stări
� Se pot grupa mai multe stări într-o nouă stare ierarhică
15.03.2015 Sisteme de calcul dedicate (02) 33
Automat cu stări finite ierarhice concurente (2)
Stările A1 şi A2 au fost grupate în starea ierarhică A
Tranziţia în starea B la evenimentul z se realizează din starea A, nu A1 sau A2
A1 z
B
A2 z
x y w
Fără ierarhie
A1 z
B
A2
x y
A
w
Cu ierarhie
15.03.2015 Sisteme de calcul dedicate (02) 34
Automat cu stări finite ierarhice concurente (3)
� Concurenţa� Fiecare stare poate fi descompusă în mai multe
sub-stări concurente
� Comunicaţia se realizează prin variabile globale
� Două sau mai multe stări concurente pot fi grupate într-o nouă stare ierarhică
� Două metode de descompunere� SAU: o stare este descompusă în stări
secvenţiale
� ŞI: o stare este descompusă în stări concurente
15.03.2015 Sisteme de calcul dedicate (02) 35
Automat cu stări finite ierarhice concurente (4)
Starea B a fost descompusă în stările concurente C şi D
Stările C şi D sunt descompuse fiecare în două stări ierarhice
C1
C2
x y
C
B
D1
D2
u v
D
Concurenţă
15.03.2015 Sisteme de calcul dedicate (02) 36
Automat cu stări finite ierarhice concurente (5)
Modificarea controlerului pentru ascensor
� Intrarea fire → trecerea în modul de incendiu
� Deplasarea ascensorului la primul nivel şi deschiderea uşii
Fără ierarhie
Idle
GoingUp
req>floor
req<floor
!(req>floor)
timeout(10)
req<floor
DoorOpen
GoingDn
req>floor
u,d,o = 1,0,0
u,d,o = 0,0,1
u,d,o = 0,1,0
req==floor!(req<floor)
firefire
firefire
FireGoingDn
floor>1
u,d,o = 0,1,0
u,d,o = 0,0,1
!fire
FireDrOpen
floor==1
fire
u,d,o = 0,0,1
UnitControl
15.03.2015 Sisteme de calcul dedicate (02) 37
Automat cu stări finite ierarhice concurente (6)
fire
!fireFireGoingDn
floor>1
u,d,o = 0,1,0
FireDrOpen
floor==1
fire
ModIncendiu
u,d,o = 0,0,1
Cu ierarhie
Idle
GoingUp
req>floor
req<floor
!(req>floor)
timeout(10)
req<floor
DoorOpen
GoingDn
req>floor
u,d,o = 1,0,0
u,d,o = 0,0,1
u,d,o = 0,1,0
req==floor!(req>floor)
u,d,o = 0,0,1
ModNormal
UnitControl
15.03.2015 Sisteme de calcul dedicate (02) 38
Automat cu stări finite ierarhice concurente (7)
Controlerul pentru ascensor reprezentat prin modelul HCFSM cu două stări concurente
ModNormal
ModIncendiu
fire!fire
UnitControl
ControlerAscensor
RezCereri
...
Cu starea concurentă RezCereri
15.03.2015 Sisteme de calcul dedicate (02) 39
Modele şi limbaje pentru specificaţiasistemelor
Introducere
Tipuri de modele
Modele şi limbaje
Exemplu
Modele orientate pe stare
Modele orientate pe activitate
Modele orientate pe structură
Modele orientate pe date
Modele eterogene
Limbaje pentru specificaţia sistemelor
15.03.2015 Sisteme de calcul dedicate (02) 40
Modele orientate pe activitate
Modele orientate pe activitate
� Graf al fluxului de date
� Graf al fluxului de control
15.03.2015 Sisteme de calcul dedicate (02) 41
Graf al fluxului de date (1)
DFG (Dataflow Graph)
� Ieşirile sunt determinate printr-un set de transformări ale intrărilor
� Noduri de intrare (sursă) şi de ieşire(destinaţie)
� Noduri de activitate (proces)� Descrise prin: program, procedură, operaţie
� Noduri de memorare� Reprezintă înregistrări, fişiere, variabile
� Arcuri direcţionate între noduri
15.03.2015 Sisteme de calcul dedicate (02) 42
Graf al fluxului de date (2)
Reprezentarea grafică
� Noduri de intrare şi ieşire:
� Noduri de activitate:
� Noduri de memorare:
� Fluxul de date: arcuri etichetate cu datele transmise între noduri
Modelul permite reprezentarea ierarhică
� Fiecare nod de activitate poate fi reprezentat printr-un alt graf
15.03.2015 Sisteme de calcul dedicate (02) 43
Graf al fluxului de date (3)
15.03.2015 Sisteme de calcul dedicate (02) 44
Graf al fluxului de date (4)
Utilizare: în diferite domenii de aplicaţii sau etape de proiectare din acelaşi domeniu
� Exemplu: DSP� Noduri: variabile, operaţii aritmetice
� Arcuri: dependenţe de date
15.03.2015 Sisteme de calcul dedicate (02) 45
Graf al fluxului de date (5)
Modelul DFG nu conţine informaţii despre implementare
� Se utilizează în faza de specificaţii a sistemelor
Avantaj: descompunerea ierarhică permite specificarea sistemelor complexe
Dezavantaj: nu exprimă comportamentul temporal şi nici acţiunile de control, în afară de dependenţele de date
15.03.2015 Sisteme de calcul dedicate (02) 46
Modele orientate pe activitate
Modele orientate pe activitate
� Graf al fluxului de date
� Graf al fluxului de control
15.03.2015 Sisteme de calcul dedicate (02) 47
Graf al fluxului de control (1)
CFG (Control-Flow Graph)
� Organigramă
� Arcurile reprezintă secvenţierea (fluxul de control)
� Tranziţiile sunt declanşate atunci când se termină o anumită activitate
� Noduri de început şi de sfârşit:
� Noduri de calcul:
� Noduri de decizie:
15.03.2015 Sisteme de calcul dedicate (02) 48
Graf al fluxului de control (2)
Organigramă pentru calculul maximului a N numere memorate în tabloul MEM
15.03.2015 Sisteme de calcul dedicate (02) 49
Graf al fluxului de control (3)
Utilizare:
� Pentru sisteme care pot fi reprezentate ca un set de activităţi secvenţiale� Activităţile nu depind de evenimente externe
� Pentru a se impune o anumită ordine de execuţie activităţilor dintr-un model DFG� Eliminarea dependenţelor de date care sunt
naturale
15.03.2015 Sisteme de calcul dedicate (02) 50
Modele şi limbaje pentru specificaţiasistemelor
Introducere
Tipuri de modele
Modele şi limbaje
Exemplu
Modele orientate pe stare
Modele orientate pe activitate
Modele orientate pe structură
Modele orientate pe date
Modele eterogene
Limbaje pentru specificaţia sistemelor
15.03.2015 Sisteme de calcul dedicate (02) 51
Modele orientate pe structură (1)
Diagramă de conectivitate a componentelor
� Reprezintă un set de componente şi interconexiunile dintre acestea
� Nu descrie funcţionarea sistemului
� Componente (noduri): obiecte structurale cu un set definit de intrări şi ieşiri
� Conexiuni: semnale, magistrale
� Diagramele de conectivitate se pot include în diferite modele de reprezentare
15.03.2015 Sisteme de calcul dedicate (02) 52
Modele orientate pe structură (2)
� Exemple� Scheme-bloc la nivel de sistem: procesoare,
memorii, circuite ASIC
� Scheme la nivel RT: UAL, registre, MUX, DCD, magistrale
� Scheme la nivel de porţi: sunt reprezentate complet conexiunile de date şi de control
� Utilizare: în fazele avansate ale procesului de proiectare, pentru specificarea implementării sistemului