Sunteți pe pagina 1din 45

Arhitecturi de sisteme

incorporate
Microcontrolere si sisteme
integrate
(Re)Introducere in arhitectura sistemelor de
calcul, terminologie, definiții
Microcontrolere, microprocesoare si altele
Sisteme incorporate si dincolo de ele..

A word to the wise: deși o sa găsiți in cursul acesta destul de multe


trimiteri la Wikipedia, cu părere de rău va recomand sa evitați versiunile in
limba romana ale acestor pagini! Mă aștept sa va convingeți singuri de
asta..
1
• Mai întâi câteva cuvinte (o recapitulare)
despre arhitectura sistemelor de
calcul (computere, calculatoare) sau
arhitecturi de calcul
• Recapitularea are ca scop si o
stabilire a terminologiei specifice
(inclusiv cea in limba engleză,
esențială!)
• Apoi pe scurt despre microprocesoare
si microcontrolere
• Si sisteme incorporate..
2
Imaginea in mare a unui sistem de
calcul, a rămas aceiași de mult timp…

Unitate Centrală (CPU)


Intrări (I)
Control
Memorie “Lumea
Calcul
Externă”

Ieşiri (O)
Căi de date

Din 1946 la toate sistemele de calcul se


regăsesc aceste componente mari!!! 3
Arhitectura: funcţii si structură

• Ce înseamnă aici arhitectură?


Funcţii + Structură
– Funcţii  funcţionarea componentelor
individuale ca părți ale unei ansamblu
– Structură  cum aceste componente
sunt legate una de cealaltă

4
Funcţii
• TOATE funcţiile unui sistem de calcul
sunt:
– PRELUCARE (PROCESSING) Date =
Informaţie
– MEMORARE
– DEPLASARE(MUTARE)
Coordonează cum
– CONTROL anume este
utilizată informaţia

• NIMIC ALTCEVA!
5
Structura – Cutia neagra
Periferice este..
Sistem de
calcul

Intrări
Sistem de Ieşiri (I/O)
calcul Unitate centrala
(CPU)
Înăuntru Sisteme de
interconectare
avem alte cutii negre! (magistrala
sistem)
Linii de comunicaţie
cu lumea externa Memorie

Cum
funcţionează?
6
Structura – unitatea centrala (CPU)

CPU

Sistem de Unitate
calcul Registre Aritmetica-
I/O
Logica
Magistrala CPU (ALU)
Sistem
Interconexiuni
Memorie interne CPU
(magistrale interne)

Unitate de
Control
Cum
funcţionează?
Se poate merge
si mai jos! 7
Structura – Unitatea de control
Unitate de control

Deja asta nu ne Logica


CPU
mai interesează secvenţiala
ALU aici! - automate
Bus Unitate
Intern Control
Registre interne
Registre si logica de
decodificare

Automate
control
memorie
Cum
funcţionează?
8
Cum funcționează ?
Unitate centrala (CPU)
Memorie Unitate de Control
(principală) 1
Preia (Fetch) Decodifică
2 Ciclu
R
cpu Instrucţiune
E
Încarcă (Load)
G
I
RAM/ROM S
T Ciclu
Execuţie
R Memorează (Store)
E 3 Execută
4

Unitate Aritmetică si Logică

9
Execuția unei instrucțiuni

• Înainte de a executa instrucțiuni, instrucțiunile programului si


datele de prelucrat trebuie plasate in memorie (numită generic
memoria principala) fiind aduse de la un dispozitiv de intrare sau
transferate dintr-o memorie externă auxiliară, procesul putând fi in
realitate mai complicat
• Odată ce datele si instrucțiunile sunt in memorie, unitatea centrală
realizează (in mare si simplist) următoarele operații:
– Unitatea de control preia (fetch) instrucțiunea din memorie.
– Unitatea de control decodifică instrucțiunea (decide ce înseamnă ea)
si dirijează datele necesare încărcate (load) din memorie si/sau
registre către unitatea aritmetică-logică (ALU); aceste două prime
etape alcătuiesc faza instrucțiune care are asociat un timp
instrucțiune
– Unitatea aritmetică –logica are controlul si execută operațiile
aritmetice si logice asupra datelor
– Unitatea aritmetică-logica memorează(store) rezultatul operațiilor in
memorie si/sau registre; ultimele doua etape alcătuiesc faza
execuție si au asociat un timp de execuție
10
Execuția unei instrucțiuni -2

• Unitatea de control dirijează eventual transferul


rezultatelor către un dispozitiv de ieșire sau către o
memorie externă auxiliară; combinația intre faza/timpul de
instrucțiune si cel de execuție alcătuiesc un ciclu
(perioadă) mașină cu un timp asociat
• Orice unitate centrală are un ceas intern care este utilizat
pentru sincronizarea oricărei operații interne si pe baza lui
se definește durata unui ciclu mașină si a componentelor
lui
– Toate microprocesoarele si microcontrolerele moderne
utilizează in sistemul de ceas bucle cu calare de faza (PLL)
sau de frecventa (FLL) pentru multiplicarea/divizarea frecvenței
unui oscilator de baza
• O unitate centrală este proiectată să “înțeleagă” un anume
grup specific de instrucțiuni numit set de instrucțiuni
11
Ce trebuie să descrie o
instrucţiune ?
• Ilustrarea de mai jos este realizata folosind mnemonice generice pentru
un limbaj de asamblare generic.

• Ce operație trebuie realizată: add R0, R1, R3


– Opcod (cod instrucțiune)/mnemonică: add, l(oa)d, br(anch), etc.
• Unde se găsesc operanzii: add r0, R1, R3
– Registrele CPU, locaţii de memorie, locaţii I/O (intrări) , sau ca parte din instrucțiune
• Unde se va memora rezultatul: add R0, R1, R3
– Registre CPU, locaţii de memorie, locaţii I/O (ieşiri)
• Unde se află următoarea instrucțiune care se va executa:
add R0, R1, R3
br endloop
– Implicit este locația de memorie (program) indicată de numărătorul program-PC =
următoarea instrucţiune din secvenţă
– Exista instrucțiuni care afectează ordinea de execuție: instrucțiuni de salt si/sau
ramificare – br(anch) precum si apeluri de subrutine (neilustrate mai sus)
• Exista uneori instrucțiuni / situații pentru care nu există nici un operand, sau nu
există un rezultat sau nu există următoarea instrucțiune care se va executa

12
Execuția unei instrucțiuni -
cicluri si faze
• Ciclu maşină (machine cycle)
– Faza/ciclu instrucţiune
– Faza/ciclu execuţie
• Faza instrucţiune (instruction)
– Etapa 1: Preluarea/extragerea/citirea din memorie
a instrucţiunii (Fetch)
– Etapa 2: Decodificarea (decode) instrucţiunii
• Faza execuţie (execution)
– Etapa 3: Execuţia (execute) instrucţiunii
– Etapa 4: Memorarea (store) rezultatelor
13
Timpul necesar pentru un ciclu
maşină
• Timpul necesar pentru un ciclu mașină, definit funcție de
ceasul sistem
– Timpul necesar pentru execuția unei instrucțiuni
• Exista mașini (CPU) lente
– Măsurat in microsecunde
• Exista mașini (CPU) rapide
– Măsurat in zeci de nanosecunde sau in nanosecunde
• Ce inseamna MIPS ?
– Este una din masurile (adimensionale) pentru viteza de
execuție: milioane de instrucțiuni pe secunda - Millions
of Instructions Per Second

14
Memoria sistemelor de calcul: ierarhizarea
sistemelor de memorie (viteză, cost)
Microcircuit - microprocesor
Memorie Viteza si costul
CPU Memorie Cache L2 descresc
Cache L1 Dimensiunea
creste
Control Memorie
auxiliară
Magistrale externa (HDD,
Memorie
externă SSD,
(RAM, FLASH USB,
ROM)
CDROM)

Registre
Memorie
Cele mai on-chip Cea mai
rapide dar si (internă) lentă dar
cele mai si cea mai
RAM, Costul este unul relativ, ieftină
scumpe
ROM exprimat per bit!
Ierarhizarea sistemelor de memorie – in
ordinea descrescătoare a vitezei
• Registrele (sunt tot o memorie internă)
 Cele mai rapide, dar si cele mai costisitoare (ca preţ de realizare
la nivelul microcircuitului), un set de circuite bistabile
• Memoria Cache L1 (o categorie specială de memorie
internă)- Cache L2 este o memorie externă!
 Întotdeauna de tip SRAM, mai lentă decât registrele, dar mai
mare, rapidă si pentru că este strâns “cuplată” cu CPU.
 Gestionată de hardware/firmware si tipic invizibilă pentru
programatori
• Memorie internă (diverse tehnologii: SRAM si ROM /
FLASH / EEPROM)
 De dimensiuni mai mari, accesul mai lent însă decât la Cache L1
 Gestionată de software.
Viteza – este invers proporțională cu timpul de acces pentru un circuit de memorie
Memorie rapidă=memorie cu timp de acces mic
Ierarhizarea sistemelor de memorie -2
• Memoria externă (SRAM/DRAM si ROM/FLASH/EEPROM)
 Mai lentă decât cea internă, fiind mai slab cuplată cu CPU (conectată prin intermediul unor
magistrale externe paralele relativ rapide), dar poate fi de dimensiuni mult mai mari si costuri
aferente mai mici
• Memorie externă auxiliară (HDD, SSD, DVD/CDROM, etc)
 Mult mai lentă decât memoria externă (conectata prin intermediul unor magistrale externe relativ
lente, eventual seriale), dar de dimensiuni mult, mult mai mari si costuri per bit mult mai mici
 Tipic este ne-volatilă la fel ca o memorie de tip ROM, adică datele vor mai exista/ se vor c

– Dimensiuni: de la x 10 Octeți la registre la x10 T Octeți la


memoriile externe auxiliare

– Viteza (timpul de acces): de ordinul x nsec la registre pana


la ordinul x 1(0) msec la memoriile externe auxiliare

17
Ierarhizarea sistemelor de memorie -3

eSRAM- embedded
SRAM RAM static
incorporat
(aici unității centrale)

Memoriile auxiliare pot fi


azi locale sau la distanță,
in Cloud.. (cloud storage)

18
Există două mari categorii de arhitecturi de
calcul: Von Neumann si Harvard

John von Neumann si calculatorul


IAS (Institute for Advanced Study),
Princeton, New Jersey, 1945; primul
calculator cu programul memorat O porțiune din Calculatorul Harvard
Mark 1, 1944 (cu relee
electromagnetice)
Arhitectura de calcul Von Neumann
(sau Princeton)
• Aceiași memorie este utilizată atât pentru program (instrucțiuni) cat
si pentru date (datele asupra cărora operează instrucțiunile)
• Vor exista semnale/magistrale comune intre CPU si memorie, pentru
instrucțiuni si pentru date, o singură magistrala de date, de adrese si
de control
• Principial nu se pot suprapune operațiile de preluare a
instrucțiunii cu cele de preluare a operanzilor din memorie,
pentru că există un singur set de magistrale ca suport fizic pentru
acest transfer

Intrări (I) Memorie


Unitate centrală Intrari (I)
de
CPU
date SI
Ieșiri (O)
memorie de Iesiri (O)
Magistrale program
comune
Arhitectura de calcul Harvard
• Memorii diferite/separate pentru program (instrucțiuni) si pentru
date (datele asupra cărora operează instrucțiunile)
• Vor exista semnale/magistrale diferite intre CPU si memorii, pentru
instrucțiuni si pentru date, două magistrale de date, două de adrese
si două de control
• Se pot suprapune operațiile de preluare a instrucțiunii cu cele de
preluare a operanzilor din memorie de către CPU, pentru că există
magistrale diferite ca suport fizic pentru aceste transfer simultan

Intrări (I)

Intrari (I)
Memorie Memorie
Unitate centrala
de de
CPU
program date Iesiri (O)

Magistrale Magistrale
program date
Ieșiri (O)
Există si două mari concepte arhitecturale de
realizare a unei unități centrale (CPU) din punct
de vedere al setului de instrucțiuni:
CISC si RISC
• CISC (Complex Instruction Set Computers) –
unități centrale care au un set complex (in
sensul de numeroase si puternice ca
funcționalitate) de instrucțiuni
• RISC (Reduced Instruction Set Computer)-
unități centrale care au un set redus (in sensul
de puține ca număr si simple ca funcționalitate)
de instrucțiuni
• Ambele se întâlnesc in lumea
microprocesoarelor si microcontrolerelor
Caracteristici arhitecturale ale unității
centrale - CISC (Complex Instruction Set
Computer)
• Set de instrucțiuni CISC
– Aceasta înseamnă un set uzual de ordinul sutelor (x100)
instrucțiuni, cele mai multe din ele foarte puternice şi
specializate.
– De obicei multe din aceste instrucțiuni sunt foarte diferite între
ele: unele operează numai cu anumite spații de adrese sau
registre, altele permit numai anumite moduri de adresare, pot
avea lungimi mult diferite, se execută intr-un număr diferit de
cicluri / perioade de ceas, etc.
– Cu cât operațiile implementate sunt mai complexe cu atât
instrucțiunile devin mai complexe
– Unitatea centrală devine si ea din ce in ce mai complexă si
mai lentă datorita creșterii numărului de cicluri/perioade de
ceas per instrucțiune si al limitării frecvenței maxime de ceas
– O buna parte din membrii vechi ai familiei 80x86 (Intel) sunt
CISC
23
Caracteristici arhitecturale ale unității
centrale - RISC (Reduced Instruction Set
Computer)
• Principiul a fost de “sacrifica” totul pentru a obține o
viteza de calcul cat mai mare
– Reducerea numărului de instrucțiuni la ordinul zecilor (x10) face
ca unitatea centrală să fie mai simplă
– Eliminarea instrucțiunilor complexe care duc la încetinirea unității
centrale
– Utilizarea de moduri de adresare simple face ca mai puțin timp
să fie necesar pentru calculul adresei operanzilor
– Limitarea numărului de accese la memorie
– Dacă o anumită operație nu poate fi implementată intr-un singur
ciclu de ceas atunci ea nu va fi implementată într-o instrucțiune
– Utilizarea extensivă a unei arhitecturi de pipeline pentru a obține
o instrucțiune executat la fiecare ciclu de ceas
– AVR 8 biti (Microchip) si ARM sunt RISC
– Vezi si:
https://en.wikipedia.org/wiki/Reduced_instruction_set_computer
24
Caracteristici arhitecturale ale unității
centrale - RISC (Reduced Instruction Set
Computer) -2
• Setul de instrucțiuni RISC
– Prin implementarea unui set (relativ) redus de instrucțiuni care
se pot executa foarte rapid şi eficient, se obține o reducere a
complexității microcircuitului, suprafața disponibilizată putând fi
utilizată în alte scopuri.
– Printre caracteristicile asociate de obicei unui CPU RISC se pot
menționa:
• arhitectură Harvard modificată sau mai rar von Neumann
• viteză sporită de execuție prin implementarea a cel puţin unui nivel
de pipeline pentru instrucțiuni
• set de instrucțiuni ortogonal (simetric): orice instrucțiune operează
cu orice spaţiu de adrese (de memorie) sau orice registru,
instrucțiunile nu prezintă combinații speciale, excepții, restricții sau
efecte colaterale

25
RISC si CISC
Caracteristica RISC CISC
Tipul de instrucțiuni Simple Complexe
Numărul de instrucțiuni Redus (x10) Mare (x100)
Durata unei instrucțiuni Un singur ciclu de ceas Mai multe cicluri (4-120)
Formatul instrucțiunii Fix Variabil
Execuția instrucțiunii In paralel (pipeline) Secvențial
Modurile de adresare Simple Complexe
Instrucțiuni care Doar doua tipuri de baza: Aproape toate
accesează memoria Încarcă (Load) si
Memorează (Store)
Setul de registre Multiplu Unic
Complexitatea La nivelul compilatorului La nivelul CPU (in
microprogram)

26
Introducere, definiții: ce este un
microprocesor?

• Un microprocesor (MPU,uP- MicroProcessor Unit),


sau poate mai corect un microprocesor de uz
general, este o unitate centrală de prelucrare (CPU
- Central Processing Unit), unitate prezentă în orice
arhitectură de calcul, implementată însă la nivelul
unui singur circuit integrat numeric monolitic (un
singur cip de siliciu, microcircuit) – pe scurt cip.
• Cu alte cuvinte, un microprocesor este un circuit
integrat (monolitic) numeric complex care conţine
cel puţin un CPU.

27
MPU - microprocesor, o unitate
centrală (CPU) realizată pe un singur
microcircuit (cip)

Componentele externe
sunt conectate prin
magistrale externe:
adrese, date si control
Memorie, Dispozitive de intrare/iesire, Ceas, Alimentare28
28
Introducere, definiţii: ce este un
microcontroler?
• Plecând de la cerinţele generale pentru alcătuirea unui sistem de
calcul, precum şi de la o orientare pe anumite categorii de
aplicaţii (calculatoare sau staţii de lucru personale, staţii de lucru
profesionale, controlere industriale de proces, sisteme de
prelucrare numerică a semnalelor) a apărut în decursul timpului şi
o anumită specializare a microprocesoarelor rezultând două
categorii noi:
– microcontrolerele (microcontrollers) şi
– procesoarele numerice de semnal (DSP- Digital Signal Processors).

• Un microcontroler - MCU (deși semnificația inițială a


acestui acronim este Micro Computer Unit) este un cip care
incorporează o unitate centrală (CPU) şi cel puțin o
memorie, împreună cu resurse care-i permit
interacțiunea cu mediul exterior.

29
Ce este un microcontroler? -2
• Un microcontroler (MC, MCU) este alcătuit dintr-o unitate
centrală (CPU) căreia i s-a adăugat, pe același microcircuit
(on-chip), in primul rând memorie şi apoi o gamă din ce in
ce mai largă si diversificata de dispozitive periferice,
specializate/orientate si pe interfața/interacțiunea eficienta cu
mediul exterior.
– Un MCU poate constitui astfel un sistem de calcul de sine stătător, realizat
la un raport preț/performanţă optim, orientat pe controlul interacțiunii cu
lumea exterioară (controler industrial).
• Un microcontroler este o arhitectură de calcul orientată pe
control: el trebuie să "simtă" evenimentele externe şi să le
"răspundă" (în sensul de a controla) cât mai eficient, din punct
de vedere al timpului de calcul și al resurselor folosite.
• Această interacțiune este, de cele mai multe ori, bazată pe
utilizarea întreruperilor ca modalitate de tratare a intrărilor si
ieșirilor.
– Din acest motiv, toate microcontrolerele înglobează şi un sistem
de întreruperi performant si simplu de utilizat.

30
MCU – un microcontroler cu o
arhitectură internă Harvard

Totul sau aproape totul este/trebuie integrat împreună cu


CPU pe același microcircuit, in scopul de a avea un sistem
de calcul cat mai complet si pregătit de interacțiune cu 31
31
lumea externă
Ce este un microcontroler? -3
• Pe parcursul timpului a fost posibil ca la resursele minimale
să fie adăugate si integrate, la un preț de cost avantajos,
periferice cu caracteristici specifice sarcinii de control care
trebuie îndeplinite:
– sisteme de conversie analog numerică (una sau mai multe intrări
analogice)
– sisteme de conversie numeric analogic şi/sau ieșiri PWM (cu
modulare în durată)
– comparatoare analogice
– memorii de date nevolatile de tip EEPROM sau FRAM
– facilități suplimentare pentru sistemul de temporizare/numărare
(captare şi comparare)
– ceasuri de gardă (timer de tip watchdog) si ceasuri de timp real
(RTC)
– sisteme complexe si flexibile de generare a ceasului sistem
folosind bucle PLL si FLL, integrate cu facilități pentru optimizarea
consumului propriu
– circuite de comunicație, de la cele mai simple la cele mai complexe
– suport pentru sisteme de afișare LCD/LED
– Si altele… 32
32
Introducere, definiții: procesoarele numerice de
semnal (PNS/DSP)
• Un procesor numeric de semnal (DSP- Digital Signal Processor)
este caracterizat de existența unei unități centrale (CPU)
specializată pe operații de calcul intensiv şi foarte eficient, în
virgulă fixă sau virgulă mobilă, operații specifice algoritmilor
consacrați de prelucrare numerică a semnalului
• Arhitectura CPU este optimizată in acest caz pentru executarea într-
un timp minim a operațiilor de calcul necesare implementării unor
algoritmi de prelucrare numerică a semnalului.
• Majoritatea procesoarelor numerice de semnal au o arhitectură de
sistem de tip Harvard, cu spații de memorie separate pentru program
şi date.
• Se întâlnesc şi aici, din ce în ce mai des, caracteristici specifice
microcontrolerelor: prezența memoriei on-chip şi a unor dispozitive
periferice specializate.
• La ora actuală, granița dintre anumite categorii de
microcontrolere, microprocesoare şi multe din procesoarele
numerice de semnal este din ce în ce mai puțin distinctă, exista
multe exemple de unități centrale de microcontrolere care au
instrucțiuni similare DSP si DSP-uri care au periferice similare unui
microcontroler
• Dar oare ce înseamnă GPU, VPU sau TPU ? – vom reveni

33
Introducere, definiții: componente
hardware
Există cel puţin 5 componente cheie prezente la un CPU (deci si la un
microprocesor si la un microcontroler):
• unitatea aritmetică şi logică (ALU-Arithmetic Logic Unit)
responsabilă cu tot ce înseamnă operații de calcul aritmetic şi/sau logic
• registrele (registers) utilizate pentru memorarea temporară a
informației cu care lucrează ALU
• unitatea de control (Control Unit) responsabilă cu controlul operațiilor
efectuate de CPU pe baza decodificării instrucțiunilor
• un sistem de magistrale, cai de date (buses) interne şi externe, care
interconectează componentele interne și realizează conectarea cu
exteriorul
• un ceas (clock) la baza căruia stă ceasul sistem (system clock) cel
care realizează periodizarea tuturor operațiilor CPU
Alte resurse tipice prezente de obicei la un microprocesor sunt:
-un sistem de întreruperi(interrupts system) si
-un sistem de acces direct la memorie (DMA-Direct Memory
Acces).

Orice sistem de calcul va avea nevoie, în afară de microprocesor (CPU),


de memorie (memory) şi de modalităţi de conectare la dispozitivele
de intrare-ieşire (I/O devices) prin intermediul cărora se face legătura34
cu lumea exterioară.
Introducere, definiţii: ASI/ISA
• Unitățile centrale pentru microprocesoare si
microcontrolere, se pot diferenția sau clasifica si prin
intermediul :
– Arhitecturii Setului de Instrucțiuni ASI (ISA- Instruction Set
Architecture)
• Arhitectura setului de instrucțiuni va determina si cea ce uneori se
numește Modelul Programator (Programming Model)
– Dimensiunii cuvântului de date sau, cu alte cuvinte,
numărului de biți de date care pot fi prelucrați într-o
singură instrucțiune: 8,16, 32, 64 de biti, etc.
– Caracteristicilor arhitecturale: RISC sau CISC, Von
Neumann sau Harvard
– Vitezei de lucru sau frecvenței maxime a ceasului sistem
Atenție: acronimul ISA mai identifica si un tip de magistrala
utilizat prima oara la IBM PC: ISA = Industry Standard
Architecture
35
Introducere, definiții: ce înseamnă ASI ?
ASI:
• Modelul de memorie (memorie unificată sau nu, harta
memoriei, etc.)
• Registrele unității centrale (CPU)
• Tipurile native de date suportate
• Instrucțiunile si modurile de adresare ale operanzilor
ASI poate fi văzută si ca un fel de interfață intre hardware si
software

Program in Program in C
FORTRAN 90
program F90 compilat Program C compilat
intr-un program ISA intr-un program ISA
Software
Nivelul ISA
Hardware
Program ISA executat de hardware

Hardware
36
Introducere, definiții: alte componente hardware

• Actualmente, datorita măririi spectaculare a gradului de


integrare ca urmare a progreselor tehnologice, unități
funcționale specifice, altădată implementate separat, cum
ar fi:
– unitatea de prelucrare în virgulă mobilă (FPU- Floating Point
Unit),
– unitatea de gestiune a memoriei (MMU- Memory Management
Unit) si/sau o unitate de protecție a memoriei (MPU- Memory
Protection Unit)
– memoria/memoriile cache L1 si/sau L2,
sunt şi ele integrate la nivelul aceluiași cip.
• Uneori termenii de microprocesor, procesor şi CPU
sunt (sau vor fi) folosiți alternativ pentru a desemna
aceiași entitate.
• Un microprocesor (uP, MPU) este de fapt un sistem de
calcul, implementat pe un singur microcircuit (cip), fără
memorie
– Pentru un uP memoria este întotdeauna implementată cu circuite
externe de tip RAM si/sau ROM
37
Exemplu de arhitectură de calcul (simplificată), orientată pe
magistrale externe (external busses) - oarecum similară unui
PC x86 (un sistem de calcul de uz general - SCUG)
/MWTC – scriere memorie; /MRDC – citire memorie;
/IOWC – scriere I/O; /IORCC – citire I/O;

Control
bus

I/O-
Intrari/Iesiri
Memorie
38
Dar ce ne interesează in primul rând sunt
sistemele incorporate (embedded systems) !

• Un sistem incorporat (SI) este un sistem de calcul


programat să realizeze numai o anumită sarcină
sau categorie îngustă de sarcini.
– Nu este relevant cât de complexă este această sarcină.
• Spre deosebire de un calculator personal care şi el
execută anumite sarcini, un sistem incorporat
execută mereu această sarcină, din momentul pornirii
până în momentul opririi, tipic fără intervenția
operatorului uman
– Intervenția operatorului uman si programarea SI nu poate fi
realizată decât în sensul în care proiectantul aplicației l-a
prevăzut și permis.
• Un sistem incorporat nu este altceva decât o
componentă a unui sistem mai mare, la fel ca o
poartă logică sau o altă componentă electronică, care
nu are de îndeplinit decât o singură sarcină. 39
Sisteme incorporate (embedded systems) -2
• Un SI este un sistem de calcul programat să execute
această singură sarcină, care poate fi de la una foarte
complexă pană la una foarte simplă.
• Deoarece el nu este decât o componentă, la rândul său
poate fi utilizat drept componentă a altui sistem
incorporat.
• Gradul de complexitate hardware al sistemului
incorporat în sine, puterea sa de calcul şi eventual
dimensiunile fizice sunt legate firesc de complexitatea
sarcinii pe care trebuie să o îndeplinească şi pot varia
de la:
– complexitatea hardware a unui circuit cu 8 pini care
îndeplinește funcțiile câtorva porți logice, care aprinde si stinge
un LED până la
– complexitatea hardware cel puțin echivalentă a unui calculator
personal (sau pe aproape) foarte performant (echivalentul a
sute de milioane de porți logice), care poate controla o
instalație complexa 40
Sisteme incorporate (embedded systems) -3
In practica de toate zilele există nenumărate exemple de sisteme
(sau aplicații) care au in componenţă şi care sunt controlate prin
intermediul unuia sau mai multor astfel de sisteme incorporate :
– industria automobilului (control motor, control frânare, etc.)
– industria aerospațială
– electronică de consum (aparatura audio, video, camere, etc.)
– aparatură electrocasnică (frigidere, maşini de spălat, cuptoare cu
microunde, etc.)
– aparatură de comunicații (telefonie mobila, routere, switch-uri, etc)
– roboți industriali şi roboți mobili
– aparatură medicală
– aparatură pentru automatizarea şi climatizarea spaţiilor de locuit sau
de lucru
– aparatură pentru măsurare şi control în industrie
– periferice pentru calculatoare (imprimante, scanere, etc.)

De fapt e foarte greu de găsit un domeniu in care sa nu fie utilizate


sisteme incorporate!
41
Sisteme incorporate (embedded systems) -4
Toate aceste aplicații menționate denotă drept caracteristici comune:
– realizarea unei sarcini bine definite pentru produsul, echipamentul sau
sistemul în care sunt integrate
– ele nu permit interacțiunea cu utilizatorul decât în măsura în care această
interacțiune face parte din sarcina pe care o are de îndeplinit (ele sunt
programabile doar in sensul conceput de proiectant)
– ele pot fi considerate doar o parte a unui produs, echipament sau sistem
– exista cerințe stricte legate de viteză de calcul si dimensiunea memoriei,
consum de energie cât mai mic, preț de cost cât mai mic posibil
• Complexitatea unui sistem incorporat este dată de atât de componenta
hardware, deja menționată, cat si de cea software.
• Prin intermediul software-ului este determinată funcționalitatea
sistemului incorporat.
• Complexitatea software poate varia de la echivalentul unui cod, de
sine stătător, cu dimensiunea de câteva zeci de octeţi (Bytes) si cateva
zeci de linii de cod, până la complexitatea unei aplicații de pană la zeci
de megaOcteţi (MBytes), cu zeci de mii de linii de cod, care la rândul
său rulează sub un sistem de operare, eventual unul de timp real.

• OBSERVAŢIE Din acest punct de vedere, am putea acum redefini


varietatea de microprocesor pe care am numit-o microcontroler ca
fiind un circuit destinat realizării unui sistem incorporat cu ajutorul
unui număr minim de circuite (ideal numai unul!).
42
Sistemele incorporate – o paradigmă deja
învechită..
• Din păcate, acum in 2019, lucrurile nu mai sunt atât de clare si
simple :) cum păreau acum 10 ani..
• Paradigma “embedded systems”, la fel ca si cea a sistemelor
informatice in general, s-a modificat si suferă evoluții importante odată
cu dezvoltarea conectivității lor, dezvoltare bazata tehnologiile numite
generic “Internet”
• Termenul cheie este Internet of Things(IoT), un ansamblu de sisteme
incorporate, caracterizate prin identificatori unici, asociate unor
sisteme fizice diferite- sunt cele enumerate la aplicatiile sistemelor
incorporate si capabile să transfere date (cu scopuri diferite) într-o
rețea, fără intervenția unui operator uman
– sistemele de operare pentru de tip Windows Embedded de la Microsoft sunt
acum numite Windows IoT…

43
Sisteme incorporate – o paradigmă deja
învechită.. 2
• Internet of Things(IoT) are o definiție care a evoluat datorită convergentei
mai multor tehnologii din care doar una este cea a sistemelor incorporate:
am putea spune si ca IoT a “înghițit” si tehnologia sistemelor incorporate
• Datele vehiculate de IoT vor fi fi transferate cu scopul de a ajunge, pentru
prelucrare, utilizare si/sau stocare la alte sisteme similare sau in Cloud..
• Cloud computing – o tehnologie care presupune utilizarea unor servere
informatice la distanta, conectate (in rețea) prin intermediul Internet-ului,
pentru stocarea si prelucrarea datelor
• Edge computing- înseamnă analiza si prelucrarea datelor realizate de a
lungul “marginii unei retele”, cel mai aproape de punctul de
colectare/generare astfel datele devenind utile si utilizabile in timp real, fără
întârzierile asociate prelucrării in cloud
Din păcate există si un preț imediat
plătit pentru IoT..
Dacă si înainte existau preocupări
legate de securitatea (security)
datelor si de intimitatea (privacy)
utilizatorilor pentru unele sisteme
incorporate, odată cu dezvoltarea IoT
si stocarea in Cloud aceste probleme
au devenit critice si blocante!
Se fac mari eforturi ca ele să fie
rezolvate de o manieră acceptabilă si
verificabilă pentru orice utilizator 44
privat
sau industrie .
Sisteme incorporate – o paradigmă deja
învechită.. 3
Datorita Cloud computing si Edge computing, IoT este acum asociat din ce in ce
mai mult cu alte tehnologii care alta data nu prea aveau legătură cu sistemele
incorporate, cum ar fi si:
- Big data (analytics)- analiza volumelor mari de date
- Artificial intelligence (AI) – tehnici de inteligență artificială
- Machine Learning (ML), Deep Learning (DL) – învățare automată, profundă
utilizată la recunoașterea formelor; fac parte din tehnicile de inteligența
artificială

45

S-ar putea să vă placă și