Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
Modele și limbaje pentru specificația sistemelor
•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
Sisteme de calcul dedicate (02-2) 16.10.2018 1
Modele orientate pe structură (1)
•Diagramă de conectivitate a componentelorReprezintă un set de componente și interconexiunile dintre acesteaNu descrie funcționarea sistemuluiComponente (noduri): obiecte structurale cu un set definit de intrări și ieșiriConexiuni: semnale, magistraleDiagramele de conectivitate se pot include în diferite modele de reprezentare
Sisteme de calcul dedicate (02-2) 16.10.2018 2
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
Sisteme de calcul dedicate (02-2) 16.10.2018 3
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
Sisteme de calcul dedicate (02-2) 16.10.2018 4
Modele orientate pe date
•Modele orientate pe dateDiagrama entitate-relație
Diagrama Jackson
Sisteme de calcul dedicate (02-2) 16.10.2018 5
Diagrama entitate-relație (1)
•ERD (Entity-Relationship Diagram)Definește sistemul ca o colecție de entități și relațiile dintre eleEntitate: •Tip de date cu unul sau mai multe atribute
Relație: •Reprezintă informații relevante pentru entități
Utilizare: pentru reprezentarea datelor între care există relații complexeNu descrie comportamentul funcțional
Sisteme de calcul dedicate (02-2) 16.10.2018 6
Diagrama entitate-relație (2)
•Reprezentarea informațiilor pentru comanda diferitelor produse de către un magazin
16.10.2018 Sisteme de calcul dedicate (02-2) 7
Modele orientate pe date
•Modele orientate pe dateDiagrama entitate-relație
Diagrama Jackson
Sisteme de calcul dedicate (02-2) 16.10.2018 8
Diagrama Jackson (1)
•Descrie datele individuale prin structura lorDescompune datele în sub-date
•Structură arborescentăNoduri terminale pentru tipuri de date de bazăNoduri non-terminale pentru tipuri compuse
•Tipurile compuse sunt obținute prin operații:Compoziție (AND): tipuri formate din două sau mai multe sub-tipuri
Sisteme de calcul dedicate (02-2) 16.10.2018 9
Diagrama Jackson (2)
Selecţie (OR): tipuri formate prin selecția unui singur sub-tip
Iterație (*): sunt replicate anumite elemente ale sub-tipurilor
•Utilizare: pentru reprezentarea datelor cu o structură compusă complexă
•Limitări: nu descrie comportamentul funcțional și nici cel temporal al sistemului
Sisteme de calcul dedicate (02-2) 16.10.2018 10
Diagrama Jackson (3)
•Diagramă Jackson pentru modelarea unui set de obiecte ale unui desen
16.10.2018 Sisteme de calcul dedicate (02-2) 11
Modele și limbaje pentru specificația sistemelor
•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
Sisteme de calcul dedicate (02-2) 16.10.2018 12
Modele eterogene
•Modele eterogeneGraf al fluxului de control/date
Diagrama de structură
Model obiectual
Automat de stare al programului
Sisteme de calcul dedicate (02-2) 16.10.2018 13
Graf al fluxului de control/date (1)
•CDFG (Control/Data Flow Graph)Combină avantajele modelelor CFG și DFG
Conține:•Modele DFG pentru reprezentarea fluxului de date
între activități
•Un model CFG pentru reprezentarea secvențieriiîntre modelele DFG
Indică în mod explicit dependențele de date și secvența de control într-o singură reprezentare
Sisteme de calcul dedicate (02-2) 16.10.2018 14
Graf al fluxului de control/date (2)
(a) Cod de program; (b) Modelul CDFG corespunzător
16.10.2018 Sisteme de calcul dedicate (02-2) 15
Graf al fluxului de control/date (3)
•Un model CDFG poate fi utilizat și pentru a reprezenta activitățile și acțiunile de control necesare pentru un sistemModel CDFG la nivel de activitate
Model CFG combinat cu un model DFG
Modelul CFG: •Răspunde la evenimente externe și interne
•Controlează execuția modelului DFG prin acțiuni de control
Sisteme de calcul dedicate (02-2) 16.10.2018 16
Graf al fluxului de control/date (4)
Sisteme de calcul dedicate (02-2) 16.10.2018 17
Graf al fluxului de control/date (5)
•Avantaje:Elimină dezavantajul modelului DFG de a nu putea reprezenta partea de control a sistemului
Elimină dezavantajul modelului CFG de a nu putea reprezenta dependențele de date
•Utilizare:Sisteme de timp real
Sinteza funcțională a circuitelor ASIC
Sisteme de calcul dedicate (02-2) 16.10.2018 18
Modele eterogene
•Modele eterogeneGraf al fluxului de control/date
Diagrama de structură
Model obiectual
Automat de stare al programului
Sisteme de calcul dedicate (02-2) 16.10.2018 19
Diagrama de structură (1)
•Poate specifica datele, activitățile și accesele de control ale unui sistem
•Este utilă pentru proiectarea programelor
•Noduri: reprezintă activități
•Arcuri: reprezintă apeluri de proceduri sau funcții dintr-un limbaj de programareSe indică datele transferate între activități
•Controlul execuției activităților: ramificație; iterație; apel de subrutină
Sisteme de calcul dedicate (02-2) 16.10.2018 20
Diagrama de structură (2)
Sisteme de calcul dedicate (02-2) 16.10.2018 21
Diagrama de structură (3)
•Diagrama de structură nu specifică în mod complet secvența de execuțieExemplu: nu se cunoaște ordinea în care se apelează procedurile
•Pune la dispoziție construcții pentru controlul ramificațiilor, iterațiilor și al apelurilor de proceduri între module
•Utilizare: în etapele preliminare ale proiectării programelor secvențiale
Sisteme de calcul dedicate (02-2) 16.10.2018 22
Modele eterogene
•Modele eterogeneGraf al fluxului de control/date
Diagrama de structură
Model obiectual
Automat de stare al programului
Sisteme de calcul dedicate (02-2) 16.10.2018 23
Model obiectual (1)
•A evoluat de la modelele orientate pe date
•Sistemul este reprezentat ca un set de obiecteUn set de date
Un set de operații asupra datelor
•CaracteristiciAbstractizarea datelor: încapsularea datelor în
fiecare obiect•Datele sunt invizibile pentru alte obiecte
Concurența: obiectele își execută operațiile independent de cele ale altor obiecte
Sisteme de calcul dedicate (02-2) 16.10.2018 24
Model obiectual (2)
•Exemplu de sistem cu obiecte și funcții de transformare
16.10.2018 Sisteme de calcul dedicate (02-2) 25
Modele eterogene
•Modele eterogeneGraf al fluxului de control/date
Diagrama de structură
Model obiectual
Automat de stare al programului
Sisteme de calcul dedicate (02-2) 16.10.2018 26
Automat de stare al programului (1)
•PSM (Program-State Machine)Combină modelul HCFSM cu paradigma limbajelor de programareIerarhie de stări ale programului: fiecare stare reprezintă un mod distinct de calculPSM cu o singură stare: echivalent cu un program secvențial → dacă acțiunile stării sunt definite printr-un program secvențialPSM cu mai multe stări: echivalent cu un model HCFSM → dacă acțiunile sunt instrucțiuni de asignare
Sisteme de calcul dedicate (02-2) 16.10.2018 27
Automat de stare al programului (2)
Stări simple: calculele sunt descrise prin instrucțiuni ale limbajului de programare
Stări compuse: pot fi descompuse în sub-stări concurente sau secvențiale
Secvențierea între sub-stări: indicată prin arcuri de tranziție•Arc de tranziție la terminare (TOC – Transition On
Completion): este parcurs atunci când condiția asociată este adevărată și s-au terminat calculele sub-stării sursă
Sisteme de calcul dedicate (02-2) 16.10.2018 28
Automat de stare al programului (3)
•Arc de tranziție imediată (TI – TransitionImmediately): este parcurs imediat ce condiția asociată devine adevărată
Reprezentarea grafică•Sistem: •Stare a programului: •Relație concurentă între stări: •Tranziție: •Arc TOC: începe dintr-un pătrat aflat în interiorul
stării•Arc TI: începe de la perimetrul stării
Sisteme de calcul dedicate (02-2) 16.10.2018 29
Automat de stare al programului (4)
Sisteme de calcul dedicate (02-2) 16.10.2018 30
up = down = 0; open = 1;
while (1) {
while (req == floor);
open = 0;
if (req > floor) { up = 1;}
else {down = 1;}
while (req != floor);
open = 1;
delay(10);
}
ModNormal
ModIncendiu
up = 0; down = 1; open = 0;
while (floor > 1);
up = 0; down = 0; open = 1;
fire!fire
UnitControl
ControlerAscensor
RezCereri
...
req = ...
...
int req;
Automat de stare al programului (5)
Utilizare: pentru sisteme cu date și activități complexe asociate cu stările•Poate reprezenta stările, datele și activitățile într-
un singur model
Avantaj față de limbajele de programare: poate modela stările în mod explicit•Sistemul poate fi specificat prin descompunerea
ierarhică a stărilor până când se pot utiliza construcțiile unui limbaj
Sisteme de calcul dedicate (02-2) 16.10.2018 31
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
Sisteme de calcul dedicate (02-2) 16.10.2018 32
Limbaje pentru specificația sistemelor
•Cerințe pentru specificația sistemelor dedicate
•HardwareC
•SystemC
•Statecharts
•SysML
Sisteme de calcul dedicate (02-2) 16.10.2018 33
Cerințe pentru specificația sistemelor dedicate (1)
•Caracteristici tipice ale sistemelor dedicate
•Tranziții între stări
Sistemele dedicate sunt bazate pe stări
Tranzițiile între stări sunt determinate de evenimente externe
•Ierarhia funcțională
Funcționarea sistemului – descompusă în mod ierarhic într-un set de moduri (comportamente) secvențiale și concurente
Sisteme de calcul dedicate (02-2) 16.10.2018 34
Cerințe pentru specificația sistemelor dedicate (2)
•ExempluModurile P, Q, R, S
•Fiecare mod poate conține calcule complexe
•Fiecare mod poate fi descompus în sub-moduri
•Fiecare mod răspunde în mod diferit la evenimentele externe
16.10.2018 Sisteme de calcul dedicate (02-2) 35
Cerințe pentru specificația sistemelor dedicate (3)
•ConcurențaModuri de funcționare care cooperează între ele pentru a realiza funcția sistemuluiConcurența la nivel de taskConcurența la nivel de instrucțiune
•ExcepțiiÎntreruperi ale funcționării sistemuluiSistemul termină operațiile curente și trece în următorul mod de funcționare
Sisteme de calcul dedicate (02-2) 16.10.2018 36
Cerințe pentru specificația sistemelor dedicate (4)
•ExempluTerminarea imediată
16.10.2018 Sisteme de calcul dedicate (02-2) 37
Cerințe pentru specificația sistemelor dedicate (5)
•Construcții de programareAnumite calcule pot fi reprezentate într-un mod mai natural prin algoritmi bazați pe construcții de programare
•Terminarea funcționăriiExecuția activităților unui sistem dedicat nu se repetă la infinit
Este necesară specificarea terminării funcționării → inițierea altei activități
Sisteme de calcul dedicate (02-2) 16.10.2018 38
Limbaje pentru specificația sistemelor
•Cerințe pentru specificația sistemelor dedicate
•HardwareC
•SystemC
•Statecharts
•SysML
Sisteme de calcul dedicate (02-2) 16.10.2018 39
HardwareC (1)
•Conceput ca un limbaj de descriere hardware orientat pe sinteza sistemelor digitaleDispune de semantică și construcții pentru descrierea circuitelor
•Specificația unui sistem: un singur nivel de procese concurente care comunică între eleProcesele pot fi incluse într-o ierarhie de blocuri interconectate → ierarhie structurală
Sisteme de calcul dedicate (02-2) 16.10.2018 40
HardwareC (2)
•ConcurențaLa nivel de task: prin procese; fiecare specifică operații secvențiale → limbaj CLa nivel de instrucțiune: prin instrucțiunea de compunere paralelă•Exemplu:<
x = b + c;
y = d – e;
>
Sisteme de calcul dedicate (02-2) 16.10.2018 41
HardwareC (3)
•Comunicația între proceseMemorie partajată: printr-un mediu partajat (conexiuni, memorie) între două porturi•Porturile sunt declarate la marginile proceselor sau
ale blocurilor din care fac parte
•Protocolul este specificat ca parte a procesului
Transmitere de mesaje: se utilizează construcții explicite send-receive•Se declară canale de comunicație
•Protocolul va fi sintetizat în mod automat
Sisteme de calcul dedicate (02-2) 16.10.2018 42
HardwareC (4)
•Sincronizarea proceselor: prin transmitere de mesaje cu blocareUn proces va aștepta până la recepția unui
semnal de la un alt proces → msgwait
•Constrângeri temporale între instrucțiuni: prin asocierea unor etichete cu instrucțiunile
•Constrângeri ale resurselor: prin numărul de instanțe ale unui model care vor fi utilizate pentru sinteză
•Nu permite specificația tranzițiilor între stări sau a excepțiilor
Sisteme de calcul dedicate (02-2) 16.10.2018 43
Limbaje pentru specificația sistemelor
•Cerințe pentru specificația sistemelor dedicate
•HardwareC
•SystemC
•Statecharts
•SysML
Sisteme de calcul dedicate (02-2) 16.10.2018 44
SystemC (1)
•Permite specificarea atât a părții hardware, cât și a părții software a sistemuluiNu este necesară translatarea specificației
hardware într-un alt limbaj (de ex., VHDL)
Verificarea funcționării întregului sistem poate fi realizată în fazele inițiale
•Prima versiune a limbajului - publicată în 1999
•În 2005, SystemC a fost standardizat de IEEE (IEEE 1666)
Sisteme de calcul dedicate (02-2) 16.10.2018 45
SystemC (2)
•SystemC este de fapt:O bibliotecă de clase (C++)Un nucleu de simulare
•Caracteristici:Extinde limbajul C++ cu macrouri și alte construcții pentru proiectarea hardwareIntroduce concurența → proceseIntroduce conceptul de timpPermite execuția paralelă pentru simulare
Sisteme de calcul dedicate (02-2) 16.10.2018 46
SystemC (3)
•ModuleReprezintă componentele sistemului
•Descriu interfața
Sunt similare cu entitățile din limbajul VHDLPot fi ierarhiceSunt definite prin macroul SC_MODULE
•CanalePermit comunicația între modulePot modela diferite protocoaleSunt specificate de interfețe
Sisteme de calcul dedicate (02-2) 16.10.2018 47
SystemC (4)
•PorturiReprezintă interfețele dintre module și canale
Sunt similare cu porturile din limbajul VHDL
•ProcesePermit modelarea concurenței
Sunt asociate cu un modul
Sunt declanșate de semnale → listă de sensibilitate
Sunt similare cu arhitecturile (VHDL)
Sisteme de calcul dedicate (02-2) 16.10.2018 48
SystemC (5)
Tipuri de procese: fire de execuție; metodeFire de execuție•Sunt lansate o singură dată de simulator•Execuția poate fi suspendată cu metoda wait•Conțin, de obicei, o buclă infinită•Sunt definite prin macroul SC_THREAD
Metode•Execuția acestora nu poate fi suspendată•După execuție controlul revine simulatorului•Sunt definite prin macroul SC_METHOD
Sisteme de calcul dedicate (02-2) 16.10.2018 49
Limbaje pentru specificația sistemelor
•Cerințe pentru specificația sistemelor dedicate
•HardwareC
•SystemC
•Statecharts
•SysML
Sisteme de calcul dedicate (02-2) 16.10.2018 50
Statecharts (1)
•Limbaj grafic elaborat pentru specificarea sistemelor reactive
•Extinde modelul FSM cu: ierarhie; concurență; comunicațieCorespunde modelului HCFSM
•Obiectul de bază: starea•Tranzițiile între stări sunt determinate de o combinație de evenimente și condiții
Sisteme de calcul dedicate (02-2) 16.10.2018 51
Statecharts (2)
•Ierarhia funcțională: o specificație poate fi descompusă într-o ierarhie de stăriDescompunere SAU (secvențială): o stare poate fi formată din sub-stări secvențiale și tranziții
Descompunere ȘI (concurentă): o stare poate fi formată din sub-stări ortogonale
•Se pot asocia acțiuni cu arcurile de tranziție și cu stările
Sisteme de calcul dedicate (02-2) 16.10.2018 52
Statecharts (3)
•Specificația temporală: printr-o tranziție specială (timeout) Condiția tranziției este o limită de timpTranziția este executată automat dacă starea sursă este activă pentru un timp egal cu limita
•Comunicația: implementată printr-un mecanism cu difuzare (broadcast)Generarea evenimentelor, actualizarea variabilelor, tranziții → difuzate imediat
Sisteme de calcul dedicate (02-2) 16.10.2018 53
Statecharts (4)
•Sincronizarea(a) Prin inițializare
(b) Printr-un eveniment comun
16.10.2018 Sisteme de calcul dedicate (02-2) 54
Statecharts (5)
(c) Prin date (variabile) comune
(d) Prin detecția stării
16.10.2018 Sisteme de calcul dedicate (02-2) 55
Statecharts (6)
•Statecharts implementează conceptul de istorie a sistemului
•Statecharts poate specifica funcționarea nedeterministăDacă există două tranziții dintr-o stare, se alege
una în mod nedeterminist
•Dezavantaje: Nu dispune de construcții de programare
Nu permite specificarea structurii
Sisteme de calcul dedicate (02-2) 16.10.2018 56