Documente Academic
Documente Profesional
Documente Cultură
Noțiuni Introductive
În cea mai mare parte a lor sunt sisteme În cea mai mare parte a lor sunt părți componente a
independente. unui sistem mult mai complex.
Dezvoltarea programelor se poate realiza pe acelaşi Dezvoltarea aplicaţiei software ce va rula pe aceste
sistem pe care vor rula. dispozitive este realizată pe alte calculatoare.
1
de exemplu un calculator personal
1
Dispozitive mecanice de tipul hardisk (HDD) Stocarea se realizează pe medii SSSD (solid state
stochează programele software şi sistemul de storage devices), gen memorii flash. Aceste
operare (SO). HDD oferă de asemenea capacităţi dispozitive nu au părți mecanice în mişcare iar
suplimentare de stocare pentru diversele necesităţi capacitatea lor medie de stocare este net inferioară
ale utilizatorului. HDD.
Funcție de aplicația specifica în care aceste sisteme
sunt utilizate constrângerile de consum pot fi
Constrângerile de consum a acestor sisteme nu sunt
extrem de dure, existând familii întregi care sunt
foarte limitative, din acest motiv consumul este
optimizate doar pentru un consum redus. În genere
mult mai mare ca al sistemelor embedded.
consumul dispozitivelor embedded este mult mai
mic decât al calculatoarelor de uz general.
Sunt sisteme de înaltă fiabilitate. Datorită rolului
Fiabilitatea este medie, fiind dată în principal de
critic pe care îl îndeplinesc (comanda și controlul
evoluțiile tehnologice și de prețul pe care
diferitelor echipamente industriale, auto sau, de
utilizatorul sistemului este dispus să îl plătească.
exemplu, în industria aernautică), cea mai mare
Acestea sisteme sunt de altfel bunuri de larg
parte din aceste sisteme trebuie să aibă o fiabilitate
consum.
foarte ridicată.
1.2. Arhitecturi
2
arhitecturile IA-322 și/sau IA-643 fiind capabile să ruleze la tensiuni de operare
foarte mici – de aici rezultând și consumul redus de energie, una din cerințele
fundamentale ce caracterizează o clasă largă de dispozitive embedded. În principal,
familia de procesoare Atom a fost lansată pentru a contrabalansa oferta existentă a
concurenților pe piața sistemelor optimizate pentru curenți și costuri scăzute (de
exemplu: familia Geode produsă de AMD sau familia ARM).
2. ARM (Advanced RISC Machines) este o arhitectură RISC pe 32 de biţi şi a fost
dezvoltată de Compania ARM Holdings din Cambridge, Marea Britanie. Dacă
procesoarele bazate pe arhitectura x86 domină piaţa calculatoarelor personale,
procesoarele bazate pe arhitectura de tip ARM domină în totalitate piaţa bunurilor
la larg consum fiind înglobate în telefoanele mobile, media playere, PDA-uri,
console de jocuri, rutere şi în nenumărate periferice ale calculatoarelor personale
precum plăci video, hardisk-uri etc.
Arhitectura ARM este cea mai utilizată din punct de vedere a numărului de
procesoare produse, ce o au la bază, şi utilizate în diferite aplicaţii. Astfel în anul
2006 s-a estimat că în jur de 98% din telefoanele mobile au în componenţă cel puţin
un procesor bazat pe o arhitectură de tip ARM [Krazit, 2006]. În timp ce în anul
2009 aproximativ 90% din piaţa procesoarelor embedded erau bazate pe o
arhitectură de tip ARM [Wikipedia, 2011].
2
De exemplu, cele din seriile: Atom Z5xx, Atom Z6xx și Atom N2xx.
3
De exemolu, cele din seriile: Atom 2xx, 3xx, N4xx, D4xx și D5xx.
3
ARM Cortex-A5, ARM Cortex-A7, ARM Krait, Scorpion,
ARMv7-A 32 Cortex-A8, ARM Cortex-A9, ARM PJ4/Sheeva, Apple A6
Cortex-A12, ARM Cortex-A15 (Swift)
X-Gene, Denver, Apple
ARM Cortex-A53, ARM Cortex-A57,
ARMv8-A 64 A7 (Cyclone), A8, A8X,
ARM Cortex-A72
A9, A9X
4
De exemplu, microprocesorul ARM6, bazat pe următoarea versiune a acestei arhitecturi (ARMv3), era
realizat cu ajutorul a doar 35.000 de tranzistoare.
5
Consumul acestui procesor este mai mic de 300 mW lucrând la frecvenţe ce încep de la 600MHz ajungând
şi depăşind 1GHz.
4
c. ARM Cortex-A9 MPCore - procesor dezvoltat specific pentru a
conlucra cu mai multe nuclee similare de același tip etc.
2. R (ARMv7-R) a fost proiectată dedicat pentru procesoarele de tip
embedded de timp real (real-time systems). Utilizându-se această versiune
a arhitecturii ARM au fost construite următoarele procesoare: Cortex-R4 şi
Cortex-R4F. Aceste procesoare sunt dedicate de asemenea aplicaţiilor de
tip embedded comerciale ce sunt produse în volume mari (hard disk-uri,
imprimante, modemuri wireless etc.).
3. M (ARMv7-M) – arhitectură optimizată pentru diferitele tipuri de
microcontrolere. Această versiune este dedicată în special aplicaţiilor ce
urmăresc minimizarea costurilor (low-cost applications). Această familie
include următoarele procesoare:
a. Cortex-M0 – procesor de mici dimensiuni şi consum redus (este
considerat procesorul cu consumul cel mai redus construit
utilizându-se o arhitectură ARM);
b. Cortex-M1 este proiectat special spre a fi inclus în FPGA-uri;
c. Cortex-M3 este proiectat special pentru a obţine maximum de
performanţă cu costuri minime.
Unul din nucleele (procesor sau CPU) cele mai de succes a versiunii 4 a
arhitecturii ARM a fost ARM7TDMI utilizat în milioane de dispozitive chiar și
astăzi. Numele acestui nucleu, ARM7TDMI, este dat de următoarea combinație
ARM7 + Thumb + Debug + Multiplier + ICE6, pe toate procesoarele se poate
realiza operația de debug (depanare) a programelor dezvoltate, deosebirea nucleului
ARM7TDMI este dată de faptul că aici CPU se oprește fizic în cazul unei cereri de
debug. ARM7TDMI este primul procesor în care a fost implementat setul de
instrucțiuni Thumb. Microcontrolerul AT91SAM7S256, componentă principală a
modulului de comandă și control (NXT brick), are la bază un procesor RISC de
tipul ARM7TDMI care este o implementare a versiunii 4 a arhitecturii ARM -
ARMv4.
3. MIPS (Microprocessor without Interlocked Pipeline Stages) este o arhitectură de
tip RISC ce a stat la baza dezvoltării unei întregi familii de microprocesoare pe 32
sau pe 64 biţi. Această arhitectură a fost dezvoltată de compania Americană MIPS
Technologies. La ora actuală există o serie largă de versiuni ale arhitecturii MIPS
(MIPS I, MIPS II, MIPS III, MIPS IV, MIPS V, MIPS32, and MIPS64).
Iniţial microprocesoarele bazate pe arhitectura MIPS au fost destinate pieţii
calculatoarelor personale intrând în directă competiţie cu arhitectura de tip IA-32,
reuşind la un moment dat să o depăşească în performanţe. Dar lansarea de către
Intel a unor noi versiuni de procesoare Pentium cu performanţe superioare şi
pierderea suportului oferit de către compania Microsoft pentru procesoarele bazate
pe această arhitectură (ultimul sistem de operare care a mai fost compatibil cu
arhitectura MIPS a fost sistemul de operare Windows NT versiunea 4.0) a
determinat retragerea companiei şi implicit a arhitecturii de pe piaţa calculatoarelor
6
In-Circuit Emulator
5
personale de uz general şi îndreptarea atenţie companiei producătoare către piaţa
sistemelor şi a aplicaţiilor de tip embedded.
4. SH sau SuperH a fost la origine o arhitectură de tip RISC pe 32 de biţi dezvoltată
de compania Hitachi care ulterior prin versiunea arhitecturală SH5 a migrat către
64 de biţi. In acest moment sunt produse o serie largă de microprocesoare pe baza
arhitecturii SH de către compania japoneză Renesas Technology (companie
deţinută de firmele Hitachi şi Mitsubishi). Versiunile SH2, SH2A, SH3, SH4 şi
SH4A ale arhitecturii SuperH sunt în continuare active şi implementate în diferite
tipuri de procesoare.
5. PowerPC (Power Performance Computing sau Performance Optimization With
Enhanced RISC Performance Chip) a fost dezvoltată în anul 1991 de un consorţiu
format din trei companii Apple, IBM şi Motorola. Această arhitectură a fost
dezvoltată iniţial pentru piaţa calculatoarelor personale, iar ulterior s-a impus în pe
segmentul de piaţă al sistemelor embedded şi a sistemelor de foarte înaltă
performanţă7. De asemenea, aceste procesoare sunt utilizate la consolele de jocuri
Nintendo GameCube şi Wii precum şi la Xbox 360 produsă de Microsoft.
PowerPC este o arhitectură de tip RISC pe 32 sau pe 64 de biți ce are la bază
arhitectura Power dezvoltată de compania IBM. Aceste microprocesoare pot opera
cu numere cu virgula mobilă în simplă sau dublă precizie.
Diferitele sisteme de operare sunt proiectate să lucreze cu diferite familii de
microprocesoare caracterizate de diferite arhitecturi şi de diferite versiuni ale acestora. De
exemplu:
1. sistemul de operare Windows CE suportă următoarele arhitecturi x86, ARM
(doar versiunea ARMv4I), SuperH (doar versiunea SH4 până la Windows CE
6.0 R2) şi MIPS (versiunile MIPSII şi MIPSIV),
2. sistemul de operare Windows Embedded Compact 7 (urmașul lui Windows
CE 6.0) suportă arhitecturile x86, ARM (doar versiunile ARMv5, ARMv6 și
ARMv7) şi MIPS (versiunile MIPSII şi MIPSIV) în timp ce,
3. sistemele de operare de la Microsoft, Windows 7, 8 și 10, suportă arhitecturile
IA-32 şi IA-64 în timp ce Windows 8 și 10 rulează și pe arhitectura ARM.
Făcând o analiză comparată a produselor existente, se observă că la ora actuală
arhitectura ARM domină piaţa telefoanelor mobile în timp ce compania Intel prin
arhitecturile IA-32 şi IA-64 domină piaţa calculatoarelor personale (PC).
Arhitectura unui procesor nu este un lucru fizic, ea este o descriere a conceptelor
fundamentale ce stau la baza funcţionării unui CPU. După cum am văzut anterior fiecare
arhitectură are diferite versiuni, de exemplu arhitectura ARM are 8 versiuni (ARMv1,
ARMv2, ..., ARMv6, ARMv7 și ARMv8). Iar de cele mai multe ori este posibil ca o
anumită versiune a unei arhitecturi să aibă alte subversiuni.
7
Firma BAE SYSTEMS Platform Solutions a implementat pentru avionul de vânătoare F-35 Lightning II
(avion din generaţia a cincea multirol de tip stealth) produs de Lockheed Martin sistemul electronic de
comandă şi control ce are drept nucleu un procesor dual core dezvoltat pe baza unei arhitecturi de tip
PowerPC. Acest procesor a fost construit de firma Freescale. Procesoare, ce au la bază această arhitectură,
sunt utilizate și în: avioanele F-22 (Lockheed Martin) sau în avionul multirol francez Dassault Rafale
(Dassault Aviation).
6
Figura 1.1. Schema bloc a microprocesorului OMAP3530 produs de Texas Instruments
Samsung OMAP35x
S5PC100 Evaluation Module
IA-32
Texas Instruments
Cortex A8 OMAP3530
MIPS
Freescale
ARM i.MX515 BeagleBoard
SH Texas Instruments
ARM1136J(F)-S
OMAP2430
Figura 1.2. Legăturile existente între arhitecturi, CPU, SoC şi plăcile electronice
7
chiar procesorul sau CPU. Din punct de vedere a proiectantului după alegerea
arhitecturii, alegerea CPU este cel de al doilea pas. Funcţie de cerinţele impuse sistemului
(de exemplu: consum, cost redus, necesitatea existenţei unui sistem de operare sau/şi
rularea unor aplicaţii de tip real-time) se va alege procesorul sau CPU (de exemplu pentru
arhitectura ARM putem alege Cortex-M0 sau Cortex-A8 sau Cortex-R4F).
Producătorii de circuite şi microprocesoare înglobează ulterior procesorul (CPU) într-
un SoC (System on a Chip). SoC8 înglobează pe lângă CPU și o serie de circuite logice
proiectate să susţină funcţionarea CPU împreună cu o serie de dispozitive periferice
(porturi de comunicație paralele sau seriale, convertoare ADC sau DAC, circuite suport și
drivere pentru elemente de afișare LCD etc.). Toate acestea sunt înglobate într-un SoC,
deci într-un singur circuit electronic – toate acestea sunt realizate pentru reducerea
costurilor dar şi pentru optimizarea la maximum a performanţelor sistemului global.
8
De multe ori termenul SoC este utilizat greșit în legătură cu dispozitivele embedded de tip
microcontroler, deoarece și acestea înglobează un CPU împreună cu un număr larg de periferice care
asigură autonomia acestor dispozitive (numărul de componente externe suport este foarte mic).
Microcontrolerele sunt, în mod firesc, asimilate în familia sistemelor de tip SCS (single chip systems)
chiar dacă uneori această realitate nu este în totalitate valabilă.
Termenul SoC este folosit în directă legătură cu CPU puternice capabile să susţină sisteme pe
operare ce necesită existența unei memorii externe foarte mare – memorii ce nu por fi înglobate într-un
sistem de tip SoC în principal datorită: costurilor prohibitive şi a dificultăţilor tehnologice. Cu toate
acestea, sistemele SoC necesită existența unui număr considerabil de dispozitive periferice externe, mult
mai multe și mai complexe decât în cazul microcontrolerelor.
Teoretic vorbind utilizarea termenului SoC în legătură cu microcontrolerele nu este corectă dar este
utilizată.
8
tip SoC precum: OMAP3530 produs compania Texas Instruments, i.MX515 produs de
compania Freescale, S5PC100 produs de compania Samsung etc. Pentru o analiză
comparativă a acestor microprocesoare de tip SoC, a arhitecturii lor interne vezi Figura
1.2, Figura 1.3 şi Figura 1.4.
Ulterior aceste microprocesoare de tip SoC sunt înglobate pe diferite plăci electronice
devenind astfel un sistem de sine stătător. Aceste plăci electronice (board) sunt cunoscute
sub numele de plăci de dezvoltare sau, de exemplu, plăci de bază (mainboard).
Studiu de caz: După cum am menționat anterior, pentru a spune cu certitudine care din
două procesoare este mai bun, în sensul unei puteri mai mare de calcul, trebuie luate
în considerare, pe lângă frecvența de lucru, și mulți alți factori, precum: arhitectura,
pe câți biți este procesorul sau numărul de nuclee pe care acesta le conține.
Pentru a înțelege influențele diferitelor arhitecturi, a numărului de nuclee sau a
frecvenței de lucru prezint mai jos rezultatele obținute cu ajutorul testului Google
Octane [Shimpi, 2013], test compozit ce urmărește multiple aspecte ale modalității
de comportare a diferitelor procesoare, precum performanțele de: citire și scriere în
vectori, calcul matematic în virgulă mobilă, operații pe bit, management a memoriei
sistemului (creare și distrugere de obiecte), apelări de funcții etc.
Pentru a putea înțelege semnificația valorilor prezentate în Figura 1.5 și a
realiza o analiză mai profundă a diferitelor nuclee analizate se va prezenta mai jos
o scurtă descriere a fiecăruia în parte.
Telefonul Apple iPhone 5 utilizează un circuit Apple A6, de tip package on
package (PoP) system on a chip (SoC), are nucleul ARM Cortex-A15 de tip dual-
core (vezi Tabelul 1.1) ce are la bază o arhitectură ARMv7.
9
Smartphon-ul Apple iPhone 5s are la bază procesorul A7 produs de Apple
(denumit comercial Cyclone) care este unul dual-core tactat la aceeaşi frecvenţă de
1,3 GHz, ca și predecesorul A6, dar acesta este o versiune îmbunătăţită şi
îmbogăţită cu suportul arhitecturii ARMv8 a procesorului Swift produs anterior
(A6). O caracteristică importantă este dată și de faptul că această versiune 8 a
arhitecturii ARM (ARMv8) este pe 64 de biți. A7 este primul procesorul pe 64 de
biţi apărut pe un terminal mobil, el fiind dezvoltat intern de către Apple şi nu unul
licenţiat direct de la compania ARM Holding.
10
au fost prezentate anterior nu se precizează frecvența procesorului Z3770 – din
acest motiv am presupus că aceasta este cea minimă). Din aceste valori tragem
concluzia că arhitectura ARMv8 este una mai eficientă decât arhitectura IA-64
deoarece procesorul A7 are doar 2 nuclee în timp ce procesorul Z3770 are 4 nuclee.
Rezultatul intrigant apare însă atunci când comparăm rezultatele obținute de
Apple iPhone 5 și Samsung Galaxy S4, deoarece ambele conțin nucleul ARM
Cortex-A15 dar primul are 2 nuclee ce lucrează la 1.3 GHz iar cel de al doilea are
4 nuclee ce lucrează la 1.6 GHz în timp ce prerformanțele sunt de 2859 (A6) și
2999 (Exynos 5 Octa). O posibilă cauză a acestor rezultate va fi evidențiată în
studiul care urmează.
Studiu de caz: Influența codului, a modului în care acesta este scris, asupra puterii
consumate este un factor binecunoscut la ora actuală. De exemplu, având la
dispoziție același sistem (un calculator personal9) s-a testat timpul de viață a
acumulatorilor atunci când resursele sistemului sunt utilizate la maxim de aceeași
serie de aplicații în cazul rulării a două sisteme de operare diferite Windows
versiunea 7 și Mac OS X Snow Leopard (versiunea 10.6.1) [Ngo, 2009]. În ambele
teste un videoclip muzical de înaltă definiție10 a rulat într-o buclă infinită,
iluminatul ecranului și al tastaturii au fost setate pe maximum, volumul sonor a fost
dat la maxim, iar placa de rețea wireless Wi-Fi a fost pornită [Ngo, 2009]. În final
acumulatorul calculatorului personal a fost capabil să alimenteze sistemul timp de
78 de minute atunci când acesta a rulat sistemul de operare Windows 7 și 111
minute atunci când sistemul de operare a fost Mac OS X Snow Leopard [Ngo,
2009]. În concluzie, durata de viață a acumulatorilor calculatorului personal este de
doar 66% (2/3) atunci când PC-ul rulează sistemul de operare Windows 7.
Deoarece sistemul de operare Android este creat să ruleze pe o largă paleta de
dispozitive hardware produse de un număr mare de companii acesta nu este optimizat să
ruleze pe un anumit terminal mobil. Compania Apple produce atât sistemul de operare cat
și dispozitivul hardware pe care acesta rulează. De aici tragem concluzia importanței
optimizării codului de o așa natură astfel încât în final performanțele obținute pe un sistem
ce are 2 nuclee să fie foarte apropiate cu ale unui alt sistem ce utilizează 4 nuclee.
9
Calculatorul a fost un laptop MacBook Pro cu LCD de 15 inch având un procesor Intel Core 2 Duo la 2.5
GHz, 4 GB de RAM și o placă video Nvidia GeForce 9600M GT cu 512 MB RAM.
10
Aceasta implică: un acces continuu la HDD sistemului, utilizarea resurselor procesorului și în special a
setului de instrucțiuni SIMD (decodarea informației video și audio) și prezentarea informației video (deci
transferuri masive de date – prin bus-urile sistemului) pe monitorul LCD înglobat.
11
Bibliografie
[ATtiny13A, 2011] Compania Atmel, documentaţia tehnică a microcontrolerului
ATtiny13A, http://www.atmel.com/dyn/resources/prod_documents/doc8126.pdf,
link valid ianuarie 2011
[Pentium, 2011] Compania Intel, documentaţia tehnică a procesorului Pentium,
www.intel.com/design/pentium/datashts/24199710.pdf, link valid februarie 2011
[Krazit, 2006] Tom Krazit, ARMed for the living room, aprilie 2006, document online la
adresa: http://news.cnet.com/ARMed-for-the-living-room/2100-1006_3-
6056729.html, link valid ianuarie 2011
[Wikipedia, 2011] Wikipedia - the free encyclopedia, ARM architecture,
http://en.wikipedia.org/wiki/ARM_architecture, link valid ianuarie 2011
[Clarke, 2009] Peter Clarke, ARM will overtake Intel in netbooks, smartbooks, says analyst,
articol online:
http://www.industrialcontroldesignline.com/showArticle.jhtml?articleID=22030
0319, septembrie 2009
[Harvey, 1991] A. F. Harvey and Data Acquisition Division Staff, DMA Fundamentals on
Various PC Platforms, National Instruments, Application Note 011, 1991
[Musah, 2008] A. Musah, A. Dykstra, Power-Management Techniques for OMAP35x
Applications Processors, Notă de aplicație SPRT495, Texas Instruments,
septembrie 2008, document online pe site-ul web al firmei Texas Instruments:
http://focus.ti.com/lit/an/sprt495/sprt495.pdf
[Intel, 2013] Intel, Microprocessor Quick Reference Guide, link accesat ultima dată în
decembrie 2013, http://www.intel.com/pressroom/kits/quickreffam.htm
[Gouraud, 1971] H Gouraud, Continuous shading of curved surfaces, IEEE Transactions
on Computers, vol. C-20, pp. 623-629, 1971
[Phong, 1975] B. T. Phong, Illumination for Computer Generated Pictures,
Communications of the ACM, vol. 18, nr. 6, pp. 311-317, 1975
12