cuprins - fcim masterat informmasterat.fcim.utm.md/informatii/curs_sdc/scd06.pdf · echipamente f...
Embed Size (px)
TRANSCRIPT

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 11
CuprinsCuprins
�� 1. Introducere1. Introducere�� 2. Modele 2. Modele şşi limbaje pentru specificai limbaje pentru specificaţţia ia
sistemelorsistemelor�� 3. Microcontrolere3. Microcontrolere�� 4. Procesoare dedicate4. Procesoare dedicate�� 5. Interfe5. Interfeţţe de comunicae de comunicaţţieie�� 6. Periferice pentru sisteme dedicate6. Periferice pentru sisteme dedicate�� 7. Dezvoltarea programelor7. Dezvoltarea programelor�� 8. Sisteme de operare dedicate8. Sisteme de operare dedicate

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 22
Procesoare dedicateProcesoare dedicate
�� Procesoare ARMProcesoare ARM
�� Procesoare Procesoare PowerPCPowerPC
�� Procesoare IntelProcesoare Intel
�� Procesoare AMDProcesoare AMD

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 33
Procesoare ARMProcesoare ARM
�� IstoricIstoric
�� Modelul de programare ARMModelul de programare ARM
�� Versiuni ale arhitecturii ARMVersiuni ale arhitecturii ARM
�� Exemple de procesoare ARMExemple de procesoare ARM
�� Extensia Extensia ThumbThumb
�� Extensia DSPExtensia DSP
�� Extensia Extensia JazelleJazelle

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 44
Istoric (1)Istoric (1)�� ARMARM –– AdvancedAdvanced RISC RISC MachineMachine�� Denumirea iniDenumirea iniţţialăială: : AcornAcorn RISC RISC
MachineMachine�� Arhitectura a fost proiectată la firma Arhitectura a fost proiectată la firma
AcornAcorn ComputersComputers (UK)(UK)–– Primul procesor RISC comercial: Primul procesor RISC comercial: ARM1ARM1
(1985)(1985)–– Bazat pe procesorul Bazat pe procesorul 65026502 (8 bi(8 biţţi)i)–– ModificăriModificări::
�� Arhitectură RISC de Arhitectură RISC de 32 de bi32 de biţţii�� Lungime fixă a instrucLungime fixă a instrucţţiuniloriunilor�� Arhitectură Arhitectură load/storeload/store

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 55
Istoric (2)Istoric (2)
�� ARM2ARM2 (8 MHz) s(8 MHz) s--a utilizat a utilizat îîn calculatorul n calculatorul personal personal ArchimedesArchimedes (1987)(1987)
�� ARM3ARM3 (24 .. 33 MHz) con(24 .. 33 MHz) conţţinea memorii inea memorii cache de instruccache de instrucţţiuni iuni şşi de date (1989)i de date (1989)
�� Dezvoltarea procesoarelor ARM a continuat Dezvoltarea procesoarelor ARM a continuat îîn cadrul firmei ARM n cadrul firmei ARM LtdLtd. (1990). (1990)–– AcornAcorn
–– VLSI VLSI TechnologyTechnology Inc.Inc.
–– AppleApple

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 66
Istoric (3)Istoric (3)
�� Următoarea versiuneUrmătoarea versiune: : ARM6ARM6�� Versiunile utilizate Versiunile utilizate îîn prezent: n prezent: ARM7ARM7 .. ..
ARM11ARM11�� ARM ARM LtdLtd.:.:
–– Proiectează arhitectura procesoarelor ARMProiectează arhitectura procesoarelor ARM–– LicenLicenţţiază proiectele către partenerii care iază proiectele către partenerii care
fabrică procesoarelefabrică procesoarele–– Dezvoltă tehnologii pentru asistarea proiectăriiDezvoltă tehnologii pentru asistarea proiectării
�� Magistrale, perifericMagistrale, periferice, e, instrumente software, pinstrumente software, plăci de lăci de dezvoltare, depanatoaredezvoltare, depanatoare

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 77
Parteneri ARMParteneri ARM

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 88
Produse conProduse conţţinând procesoare inând procesoare ARMARM

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 99
Procesoare ARMProcesoare ARM
�� IstoricIstoric
�� Modelul de programare ARMModelul de programare ARM
�� Versiuni ale arhitecturii ARMVersiuni ale arhitecturii ARM
�� Exemple de procesoare ARMExemple de procesoare ARM
�� Extensia Extensia ThumbThumb
�� Extensia DSPExtensia DSP
�� Extensia Extensia JazelleJazelle

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 1010
Modelul de programare ARM (1)Modelul de programare ARM (1)
�� Arhitectură de Arhitectură de 32 de bi32 de biţţii–– SemicuvântSemicuvânt: 16 bi: 16 biţţii
�� 31 registre generale 31 registre generale –– 16 registre vizibile 16 registre vizibile îîn orice momentn orice moment
–– Celelalte registre: pentru creCelelalte registre: pentru creşşterea vitezei de terea vitezei de tratare a exceptratare a excepţţiiloriilor
–– R14R14: : LRLR ((LinkLink RegisterRegister))
–– R15R15: : PCPC ((Program Program CounterCounter))
–– De obicei, De obicei, R13R13 este indicatorul de stivă este indicatorul de stivă SPSP

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 1111
Modelul de programare ARM (2)Modelul de programare ARM (2)
�� Seturi de instrucSeturi de instrucţţiuni:iuni:–– Setul normal pe 32 de biSetul normal pe 32 de biţţii
–– Setul Setul ThumbThumb pe 16 bipe 16 biţţii
�� Extensia Extensia DSPDSP–– InstrucInstrucţţiuni iuni MACMAC
–– InstrucInstrucţţiuni pentru iuni pentru aritmetica saturatăaritmetica saturată
�� Extensia Extensia JazelleJazelle–– ExecuExecuţţia directă a codului Javaia directă a codului Java

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 1212
Modelul de programare ARM (3)Modelul de programare ARM (3)
�� Moduri ale procesoruluiModuri ale procesorului–– UserUser: mod neprivilegiat: mod neprivilegiat–– FIQFIQ: : îîntreruperi rapide (prioritatntreruperi rapide (prioritate ridicatăe ridicată))–– IRQIRQ: : îîntreruperi normale (prioritatntreruperi normale (prioritate joasăe joasă))–– SupervisorSupervisor: d: după upă resetreset sau o instrucsau o instrucţţiune de iune de
îîntrerupere softwarentrerupere software–– AbortAbort: acces ilegal la memorie: acces ilegal la memorie–– UndefinedUndefined: instruc: instrucţţiuni nedefiniteiuni nedefinite–– SystemSystem: mod privilegiat, cu acces la acelea: mod privilegiat, cu acces la aceleaşşi i
registre ca registre ca şşi modul utilizatori modul utilizator

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 1313
Modelul de programare ARM (4)Modelul de programare ARM (4)
ModUserR0-R7,R15,CPSR
R8
R9
R10
R11
R12
R13(SP)
R14(LR)
SPSR
R8
R9
R10
R11
R12
R13(SP)
R14(LR)
R15(PC)
CPSR
R0
R1
R2
R3
R4
R5
R6
R7
R13(SP)
R14(LR)
SPSR
ModUser
R0-R12,R15,CPSR
R13(SP)
R14(LR)
SPSR
ModUser
R0-R12,R15,CPSR
R13(SP)
R14(LR)
SPSR
ModUser
R0-R12,R15,CPSR
R13(SP)
R14(LR)
SPSR
ModUser
R0-R12,R15,CPSR
Registre inferioareîn starea Thumb
Registre superioareîn starea Thumb
FIQUser IRQ UndefSVC Abort

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 1414
Modelul de programare ARM (5)Modelul de programare ARM (5)
�� Registre de stare Registre de stare –– CPSRCPSR ((CurrentCurrent Program Status RegisterProgram Status Register))
�� Un registru dedicatUn registru dedicat
�� ConConţţine starea curentă a procesoruluiine starea curentă a procesorului
–– SPSRSPSR ((SavedSaved Program Status RegisterProgram Status Register))�� 5 registre dedicate, câte unul pentru fiecare mod de 5 registre dedicate, câte unul pentru fiecare mod de
excepexcepţţieie
�� ConConţţin starea procesorului in starea procesorului îînaintea aparinaintea apariţţiei excepiei excepţţieiiei

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 1515
Modelul de programare ARM (6)Modelul de programare ARM (6)
�� Indicatori de condiIndicatori de condiţţie: ie: NN, , ZZ, , CC, , VV�� Indicatorul Indicatorul QQ ( (extensia DSP): indiextensia DSP): indică o condică o condiţţie de ie de
saturasaturaţţie la o operaie la o operaţţie aritmeticăie aritmetică
�� Bitul Bitul JJ: J: J==11 dacă procesorul se află dacă procesorul se află îîn starea n starea JazelleJazelle
�� BiBiţţii de controlii de control–– II==1 d1 dezactivează ezactivează îîntreruperile IRQntreruperile IRQ–– FF==1 d1 dezactivează ezactivează îîntreruperile FIQntreruperile FIQ–– TT==1 d1 dacă procesorul se află acă procesorul se află îîn starea n starea ThumbThumb–– BiBiţţi de i de modmod: i: indică modul procesoruluindică modul procesorului
2731
N Z C V Q
28 67
I F T mod
1623 815 5 4 024
N e d e f i n i ţ iJ

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 1616
Modelul de programare ARM (7)Modelul de programare ARM (7)
�� ExcepExcepţţiiii–– Generate de surse interne sau Generate de surse interne sau
externeexterne
–– Se forSe forţţează execuează execuţţia de la o ia de la o adresă fixăadresă fixă
–– Tabela vectorilor de excepTabela vectorilor de excepţţieieconconţţine instrucine instrucţţiuni de saltiuni de salt
–– Starea procesorului trebuie Starea procesorului trebuie salvatăsalvată
Tabela vectorilor
FIQIRQ
(Rezervat)Data Abort
Prefetch AbortSoftware Interrupt
Undefined Instruction
Reset
0x1C
0x18
0x14
0x10
0x0C
0x08
0x04
0x00

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 1717
Modelul de programare ARM (8)Modelul de programare ARM (8)
�� OperaOperaţţii executate de procesor la apariii executate de procesor la apariţţia ia unei excepunei excepţţii:ii:–– Copiază Copiază CPSRCPSR îîn n SPSRSPSR_<mod>_<mod>–– Setează biSetează biţţii din ii din CPSRCPSR: stare ARM; dezactivare : stare ARM; dezactivare
îîntreruperintreruperi–– Salvează adresa de revenire Salvează adresa de revenire îîn n LRLR_<mod>_<mod>–– ÎÎncarcă adresa vectorului ncarcă adresa vectorului îîn n PCPC
�� OperaOperaţţii executate de rutina de tratare:ii executate de rutina de tratare:–– Reface Reface CPSRCPSR din din SPSRSPSR_<mod>_<mod>–– Reface Reface PCPC din din LRLR_<mod>_<mod>

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 1818
Procesoare ARMProcesoare ARM
�� IstoricIstoric
�� Modelul de programare ARMModelul de programare ARM
�� Versiuni ale arhitecturii ARMVersiuni ale arhitecturii ARM
�� Exemple de procesoare ARMExemple de procesoare ARM
�� Extensia Extensia ThumbThumb
�� Extensia DSPExtensia DSP
�� Extensia Extensia JazelleJazelle

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 1919
Versiuni ale arhitecturii ARM (1)Versiuni ale arhitecturii ARM (1)
�� ARMv1ARMv1–– Singura implementare: procesorul Singura implementare: procesorul ARM1ARM1
–– Adresare pe 26 de biAdresare pe 26 de biţţii
–– Fără instrucFără instrucţţiuni de iuni de îînmulnmulţţireire
–– InstrucInstrucţţiuni iuni Load/StoreLoad/Store pentru octepentru octeţţi, cuvinte i, cuvinte şşi i cuvinte multiplecuvinte multiple
–– InstrucInstrucţţiuni de salt iuni de salt şşi apel (i apel (BLBL))
–– InstrucInstrucţţiune de iune de îîntrerupere software pentru ntrerupere software pentru apelul funcapelul funcţţiilor SOiilor SO

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 2020
Versiuni ale arhitecturii ARM (2)Versiuni ale arhitecturii ARM (2)
�� ARMv2ARMv2–– Adresare pe 26 de biAdresare pe 26 de biţţii
–– InstrucInstrucţţiuni de iuni de îînmulnmulţţire ire şşi i îînmulnmulţţire cu ire cu acumulare (acumulare (MACMAC))
–– Posibilitatea utilizării unor coprocesoarePosibilitatea utilizării unor coprocesoare
–– Două registre suplimentare pentru modul de Două registre suplimentare pentru modul de îîntrerupere rapid FIQntrerupere rapid FIQ
–– InstrucInstrucţţiuni iuni Load/StoreLoad/Store atomice (atomice (SWPSWP, , SWPBSWPB) ) →→ pentru sincronizarea proceselorpentru sincronizarea proceselor

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 2121
Versiuni ale arhitecturii ARM (3)Versiuni ale arhitecturii ARM (3)
�� ARMv3ARMv3–– Adresare pe 32 de biAdresare pe 32 de biţţii–– SS--a adăugat registrul a adăugat registrul CPSRCPSR şşi registre i registre SPSRSPSR
pentru fiecare modpentru fiecare mod–– SS--au introdus modurile au introdus modurile AbortAbort şşi i UndefinedUndefined–– Variantele Variantele TT: setul de instruc: setul de instrucţţiuni iuni ThumbThumb–– Variantele Variantele MM: : îînmulnmulţţire 32 x 32 ire 32 x 32 ⇒⇒ 6464–– Posibilitatea de a schimba ordinea octePosibilitatea de a schimba ordinea octeţţilor ilor
((littlelittle--endianendian sau sau bigbig--endianendian) ) –– ImplementăriImplementări: : ARM6ARM6, , ARM7ARM7

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 2222
Versiuni ale arhitecturii ARM (4)Versiuni ale arhitecturii ARM (4)
�� ARMv4ARMv4–– InstrucInstrucţţiuni iuni Load/StoreLoad/Store pentru pentru semicuvintesemicuvinte
–– InstrucInstrucţţiuni iuni LoadLoad cu extensie de semn pentru cu extensie de semn pentru octeocteţţi i şşi i semicuvintesemicuvinte
–– SS--a introdus modul privilegiat a introdus modul privilegiat SystemSystem
–– ImplementăriImplementări: : StrongARMStrongARM, , ARM8ARM8, , ARM9ARM9

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 2323
Versiuni ale arhitecturii ARM (5)Versiuni ale arhitecturii ARM (5)
�� ARMv5ARMv5–– InstrucInstrucţţiune iune CLZCLZ ((CountCount LeadingLeading ZerosZeros))
–– InstrucInstrucţţiune de suspendare a execuiune de suspendare a execuţţiei pentru iei pentru depanare (depanare (breakpointbreakpoint))
–– Variantele Variantele EE: instruc: instrucţţiuni DSPiuni DSP
–– Variantele Variantele JJ: stare Java pentru accelerarea : stare Java pentru accelerarea execuexecuţţiei codului Javaiei codului Java
–– Implementare: Implementare: ARM10ARM10

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 2424
Versiuni ale arhitecturii ARM (6)Versiuni ale arhitecturii ARM (6)
�� ARMv6ARMv6–– ÎÎmbunătămbunătăţţirea sistemului de irea sistemului de gestiune a gestiune a
memorieimemoriei�� Reducerea timpului de Reducerea timpului de îîncărcare pentru instrucncărcare pentru instrucţţiuni iuni şşi i
datedate
�� CreCreşşterea performanterea performanţţelor cu până la elor cu până la 30%30%
–– Suport pentru Suport pentru sisteme multiprocesorsisteme multiprocesor�� Posibilitatea unor sisteme mai complexe de Posibilitatea unor sisteme mai complexe de
sincronizare pentru memoria partajatăsincronizare pentru memoria partajată

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 2525
Versiuni ale arhitecturii ARM (7)Versiuni ale arhitecturii ARM (7)
–– InstrucInstrucţţiuni pentru iuni pentru aplicaaplicaţţii multimediaii multimedia�� Set de instrucSet de instrucţţiuni iuni SIMDSIMD
�� Implementarea mai eficientă a aplicaImplementarea mai eficientă a aplicaţţiilor audio, iilor audio, video, grafvideo, grafică ică 3D 3D
–– Gestiunea mai eficientă a datelorGestiunea mai eficientă a datelor�� Suport pentru subsisteme cu ordinea diferită a Suport pentru subsisteme cu ordinea diferită a
octeocteţţilorilor
�� Gestiunea unor Gestiunea unor date nealiniatedate nealiniate
–– Gestiunea mai eficientă a Gestiunea mai eficientă a îîntreruperilor ntreruperilor şşi a i a excepexcepţţiiloriilor

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 2626
Versiuni ale arhitecturii ARM (8)Versiuni ale arhitecturii ARM (8)
SA-110
ARM7TDMI
4T
1 Instrucţiunipentru semicuvinteşi extensie de semn
Mod sistem
Set deinstrucţiuniThumb
2
4
ARM9TDMI
SA-1110
ARM720T ARM940T
CLZ
5TE
Aritmetică saturată
Instrucţiuni MAC pentru DSP
XScale
ARM1020E
ARM9E-S
ARM966E-S
3
Primele arhitecturi
ARM9EJ-S
5TEJ
ARM7EJ-S
ARM926EJ-S
Extensie Jazelle
Execuţia coduluiJava
6
ARM1136EJ-S
ARM1026EJ-S
Instrucţiuni SIMD
Multi-procesare
Memorie virtuală(VMSA)
Date nealiniate

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 2727
Procesoare ARMProcesoare ARM
�� IstoricIstoric
�� Modelul de programare ARMModelul de programare ARM
�� Versiuni ale arhitecturii ARMVersiuni ale arhitecturii ARM
�� Exemple de procesoare ARMExemple de procesoare ARM
�� Extensia Extensia ThumbThumb
�� Extensia DSPExtensia DSP
�� Extensia Extensia JazelleJazelle

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 2828
Exemple de procesoare ARM (1)Exemple de procesoare ARM (1)
�� Familia ARM7Familia ARM7–– ARM7TDMIARM7TDMI: nucleu cu suport pentru depanare : nucleu cu suport pentru depanare
şşi emulare i emulare �� EmbeddedICEEmbeddedICE: l: logică pentru depanare bazată pe ogică pentru depanare bazată pe
interfainterfaţţa JTAGa JTAG
–– ARM7TDMIARM7TDMI--SS: nucleu sintetizabil: nucleu sintetizabil
–– ARM720TARM720T: procesor cu memorie cache (8 KB), : procesor cu memorie cache (8 KB), bufferbuffer de scriere, gestiunea memorieide scriere, gestiunea memoriei�� Memorie virtuală Memorie virtuală →→ SO Linux, SO Linux, SymbianOSSymbianOS, ,
WindowsCEWindowsCE

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 2929
Exemple de procesoare ARM (2)Exemple de procesoare ARM (2)
�� PerformanPerformanţţa: 36 MIPS la 40 MHza: 36 MIPS la 40 MHz
–– PosibilităPosibilităţţi de utilizare i de utilizare �� Echipamente de reEchipamente de reţţeaea
�� Echipamente fără firEchipamente fără fir: telefoane celulare, PDA: telefoane celulare, PDA
�� Decodoare pentru aparate TVDecodoare pentru aparate TV
�� Sisteme de control pentru automobileSisteme de control pentru automobile
�� ImprimanteImprimante
�� Decodoare MP3 audio Decodoare MP3 audio şşi MPEG4 videoi MPEG4 video

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 3030
Exemple de procesoare ARM (3)Exemple de procesoare ARM (3)
�� Familia ARM9EFamilia ARM9E–– ARM946EARM946E--SS, , ARM966EARM966E--SS, , ARM968EARM968E--SS: :
macrocelulemacrocelule sintetizabilesintetizabile
–– ARM926EJARM926EJ--SS: con: conţţin extensia in extensia JazelleJazelle�� Set de instrucSet de instrucţţiuni DSPiuni DSP
�� Avantaje faAvantaje faţţă de sistemele multiprocesoră de sistemele multiprocesor: : complexitate complexitate şşi putere consumată redusei putere consumată reduse
�� EmbeddedICEEmbeddedICE--RTRT: l: logică pentru depanare pentru ogică pentru depanare pentru sisteme sisteme îîn timp realn timp real
�� PerformanPerformanţţa: 165 MIPS la 150 MHza: 165 MIPS la 150 MHz

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 3131
Exemple de procesoare ARM (4)Exemple de procesoare ARM (4)
–– ARM VFP9ARM VFP9--SS: coprocesor vectorial pentru : coprocesor vectorial pentru operaoperaţţii ii îîn VMn VM�� PerformanPerformanţţe ridicatee ridicate�� Putere consumată redusăPutere consumată redusă
–– PosibilităPosibilităţţi de utilizarei de utilizare�� UnităUnităţţi de discuri magneticei de discuri magnetice�� Aparate DVDAparate DVD�� RecunoaRecunoaşşterea terea şşi sinteza vociii sinteza vocii�� PDA PDA şşi GPSi GPS�� TelefoaneTelefoane�� Automobile: ABS, contAutomobile: ABS, controlul vitezei de croazierărolul vitezei de croazieră

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 3232
Procesoare ARMProcesoare ARM
�� IstoricIstoric
�� Modelul de programare ARMModelul de programare ARM
�� Versiuni ale arhitecturii ARMVersiuni ale arhitecturii ARM
�� Exemple de procesoare ARMExemple de procesoare ARM
�� Extensia Extensia ThumbThumb
�� Extensia DSPExtensia DSP
�� Extensia Extensia JazelleJazelle

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 3333
Extensia Extensia ThumbThumb (1)(1)
�� Set de instrucSet de instrucţţiuni alternativiuni alternativ–– Subset al instrucSubset al instrucţţiunilor ARMiunilor ARM–– InstrucInstrucţţiunile sunt iunile sunt comprimatecomprimate pe 16 bipe 16 biţţi i –– InstrucInstrucţţiunile iunile ThumbThumb sunt sunt decomprimatedecomprimate pe 32 pe 32
de bide biţţi i îînainte de execunainte de execuţţieie
�� Se pot combina cele două seturiSe pot combina cele două seturi�� Comutarea Comutarea îîntre starea ARM ntre starea ARM şşi starea i starea
ThumbThumb: cu instruc: cu instrucţţiunea iunea BXBX ((BranchBranch andandeXchangeeXchange))
�� InstrucInstrucţţiunile iunile ThumbThumb utilizează un format cu utilizează un format cu două adresedouă adrese

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 3434
Extensia Extensia ThumbThumb (2)(2)
�� AvantajeAvantaje: : –– Reducerea necesarului de memorieReducerea necesarului de memorie
–– Reducerea puterii consumateReducerea puterii consumate
–– Reducerea costurilorReducerea costurilor
�� LimităriLimitări::–– Dimensiuni mai reduse ale operanzilorDimensiuni mai reduse ale operanzilor
–– Acces la doar 8 registre generale (MOV: pot Acces la doar 8 registre generale (MOV: pot accesa accesa îîntregul set de registre)ntregul set de registre)
–– Timp necesar pentru comutareTimp necesar pentru comutare

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 3535
Procesoare ARMProcesoare ARM
�� IstoricIstoric
�� Modelul de programare ARMModelul de programare ARM
�� Versiuni ale arhitecturii ARMVersiuni ale arhitecturii ARM
�� Exemple de procesoare ARMExemple de procesoare ARM
�� Extensia Extensia ThumbThumb
�� Extensia DSPExtensia DSP
�� Extensia Extensia JazelleJazelle

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 3636
Extensia DSP (1)Extensia DSP (1)
�� Numeroase aplicaNumeroase aplicaţţii necesită algoritmi ii necesită algoritmi eficieneficienţţi pentru prelucrarea semnalelori pentru prelucrarea semnalelor–– Exemplu: algoritmul Exemplu: algoritmul MP3MP3 audioaudio
�� Arhitecturile Arhitecturile ARMv5TEARMv5TE şşi i ARMv6ARMv6 conconţţin noi in noi instrucinstrucţţiuni DSPiuni DSP–– ÎÎnmulnmulţţire 16x16 ire 16x16 şşi 16x32i 16x32
–– MAC 16x16 MAC 16x16 + + 32, 32x16 32, 32x16 + + 32, 16x16 32, 16x16 + + 6464
–– Adunare Adunare şşi scădere utilizând i scădere utilizând aritmetica saturatăaritmetica saturată

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 3737
Extensia DSP (2)Extensia DSP (2)
�� ExempluExemplu: Procesorul : Procesorul ARM9EARM9E–– Nucleu Nucleu ARM9TDMIARM9TDMI
–– Arhitectură Arhitectură HarvardHarvard
–– Sistem Sistem pipelinepipeline cu cu 5 e5 etajetaje
–– SS--au adăugat doar componentele hardware au adăugat doar componentele hardware strict necesarestrict necesare
–– FrecvenFrecvenţţa de funca de funcţţionare este similară cu cea a ionare este similară cu cea a nucleului ARM9TDMI (20nucleului ARM9TDMI (200 M0 MHz)Hz)
–– Puterea consumatăPuterea consumată: 0,5 : 0,5 mW/MHzmW/MHz

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 3838
Extensia DSP (3)Extensia DSP (3)
�� AvantajeAvantaje::–– Se poate utiliza un singur procesorSe poate utiliza un singur procesor–– Scade complexitatea Scade complexitatea şşi puterea consumatăi puterea consumată
�� AplicaAplicaţţiiii::–– Prelucrare audio: MP3, WMAPrelucrare audio: MP3, WMA, A, AACAC–– UnităUnităţţi de memorie externăi de memorie externă
–– Echipamente de reEchipamente de reţţeaea–– Telefoane Telefoane şşi PDAi PDA–– Sisteme de control pentru automobileSisteme de control pentru automobile

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 3939
Procesoare ARMProcesoare ARM
�� IstoricIstoric
�� Modelul de programare ARMModelul de programare ARM
�� Versiuni ale arhitecturii ARMVersiuni ale arhitecturii ARM
�� Exemple de procesoare ARMExemple de procesoare ARM
�� Extensia Extensia ThumbThumb
�� Extensia DSPExtensia DSP
�� Extensia Extensia JazelleJazelle

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 4040
Extensia Extensia JazelleJazelle (1)(1)
�� Numeroase echipamente dedicate utilizează Numeroase echipamente dedicate utilizează tehnologia Javatehnologia Java–– PortabilitatePortabilitate–– Dezvoltare mai simplă comparativ cu CDezvoltare mai simplă comparativ cu C++++–– SecuritateSecuritate–– Reprezentare eficientă Reprezentare eficientă îîn memorie (n memorie (bytecodebytecode))
�� DezavantajeleDezavantajele tehnologiei Java:tehnologiei Java:–– PerformanPerformanţţa poate fi scăzutăa poate fi scăzută–– Necesitatea conversiei Necesitatea conversiei îîn forma nativă n forma nativă

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 4141
Extensia Extensia JazelleJazelle (2)(2)
�� Metode de creMetode de creşştere a performantere a performanţţelorelor–– Compilare Compilare JITJIT ((JustJust--InIn--TimeTime))
–– Compilare Compilare AOTAOT ((AheadAhead--OfOf--TimeTime))
–– Compilare dinamică Compilare dinamică DACDAC ((DynamicDynamic Adaptive Adaptive CompilationCompilation))
–– Procesoare Java dedicate Procesoare Java dedicate �� Trebuie să existe Trebuie să existe şşi un procesor generali un procesor general
–– Coprocesoare JavaCoprocesoare Java
–– Extensii Java ale arhitecturii procesoruluiExtensii Java ale arhitecturii procesorului

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 4242
Extensia Extensia JazelleJazelle (3)(3)
�� Extensia Extensia JazelleJazelle–– JazelleJazelle DBXDBX ((Direct Direct BytecodeBytecode eXecutioneXecution): ):
execuexecuţţia codului Java pe echipamente cu ia codului Java pe echipamente cu resurse limitateresurse limitate
–– JazelleJazelle RCTRCT ((RuntimeRuntime CompilationCompilation TargetTarget): ): suport pentru tehnicile JIT, AOT, DAC suport pentru tehnicile JIT, AOT, DAC →→limbajele Java, limbajele Java, PythonPython, Perl etc., Perl etc.
�� Tehnologia Tehnologia JazelleJazelle DBXDBX–– Implementare cablatăImplementare cablată–– Starea Java: prin instrucStarea Java: prin instrucţţiunea iunea BXJBXJ

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 4343
Extensia Extensia JazelleJazelle (4)(4)–– SS--a adăugat un nou registru a adăugat un nou registru CPSRCPSR–– Unor registre li se asignează funcUnor registre li se asignează funcţţii ii
specifice stării Javaspecifice stării Java: SP, variabile locale: SP, variabile locale�� 4 e4 elemente din vârful stivei sunt păstrate lemente din vârful stivei sunt păstrate îîn n regreg. .
–– ÎÎntreruperile apărute ntreruperile apărute îîn starea Java sunt n starea Java sunt tratate imediattratate imediat�� Nu este afectată performanNu este afectată performanţţa a îîn timp realn timp real�� InstrucInstrucţţiunile Java sunt iunile Java sunt restartabilerestartabile
–– O parte a instrucO parte a instrucţţiunilor sunt emulateiunilor sunt emulate–– InstrucInstrucţţiuni nedefinite: geiuni nedefinite: generează excepnerează excepţţiiii

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 4444
Extensia Extensia JazelleJazelle (5)(5)
�� Suport softwareSuport software–– Java Java TechnologyTechnology EnablingEnabling KitKit (JTEK): con(JTEK): conţţine ine
secvensecvenţţele de cod emulate (ele de cod emulate (JazelleJazelle SupportSupportCodeCode))
–– Suport pentru diferite maSuport pentru diferite maşşini virtuale Javaini virtuale Java–– Suport pentru SO: Suport pentru SO: WindowsCEWindowsCE, Linux, , Linux,
SymbianOSSymbianOS, , PalmOSPalmOS, SO , SO îîn timp realn timp real
�� AvantajeAvantaje: cre: creşşterea vitezei (2x..4x); terea vitezei (2x..4x); reducerea puterii consumate, a necesarului reducerea puterii consumate, a necesarului de memorie, a costurilorde memorie, a costurilor

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 4545
Procesoare dedicateProcesoare dedicate
�� Procesoare ARMProcesoare ARM
�� Procesoare Procesoare PowerPCPowerPC
�� Procesoare IntelProcesoare Intel
�� Procesoare AMDProcesoare AMD

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 4646
Procesoare Procesoare PowerPCPowerPC
�� IntroducereIntroducere
�� Exemple de procesoare Exemple de procesoare PowerPCPowerPC
�� PowerPCPowerPC 750750

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 4747
Introducere (1)Introducere (1)
�� Arhitectura Arhitectura PowerPCPowerPC a a fost dezvoltată defost dezvoltată defirmele IBM, firmele IBM, AppleApple şşi i MotorolaMotorola
�� CCombinaombinaţţie ie îîntre arhitectura procesorului ntre arhitectura procesorului RIOSRIOS ((IBMIBM)) şşi structura magistralei interne a i structura magistralei interne a procesorului procesorului 8810088100 ((MotorolaMotorola))
�� FFamilie de procesoare RISC amilie de procesoare RISC scalabilescalabile�� OO arhitecturarhitecturăă a setului de instruca setului de instrucţţiuni la care iuni la care
aderaderăă totoţţi membrii familieii membrii familiei�� Arhitectura Arhitectura PowerPCPowerPC a fost influena fost influenţţatatăă de de
arhitectura precedentarhitectura precedentăă IBM RTIBM RT

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 4848
Introducere (2)Introducere (2)
�� EEste bazatste bazatăă pe arhitectura pe arhitectura IBM POWERIBM POWER((PerformancePerformance OptimizedOptimized WithWith EnhancedEnhancedRISCRISC))
�� ModificModificăările efectuaterile efectuate::–– CCrereşşterea frecventerea frecvenţţei ceasuluiei ceasului–– UUn grad mai ridicat de proiectare n grad mai ridicat de proiectare
superscalasuperscalarără–– EExtinderea la o arhitecturxtinderea la o arhitecturăă de 64 de bide 64 de biţţii–– PosibilitateaPosibilitatea multiprocesmultiprocesăăriirii
�� Procesoarele Procesoarele PowerPCPowerPC sunt fabricate sunt fabricate de IBM de IBM şşi i FreescaleFreescale Semiconductor Semiconductor ((MotorolaMotorola))

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 4949
Procesoare Procesoare PowerPCPowerPC
�� IntroducereIntroducere
�� Exemple de procesoare Exemple de procesoare PowerPCPowerPC
�� PowerPCPowerPC 750750

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 5050
Exemple de procesoare Exemple de procesoare PowerPCPowerPC (1)(1)
�� PowerPCPowerPC 601601–– Arhitectură de Arhitectură de 32 de bi32 de biţţii
–– 32 de registre generale32 de registre generale
–– 32 de registre pentru VM (64 bi32 de registre pentru VM (64 biţţi)i)
–– Poate lansa Poate lansa îîn execun execuţţie trei instrucie trei instrucţţiuni pe ciclu iuni pe ciclu de ceasde ceas
–– Memorie cache unificată de Memorie cache unificată de 32 KB32 KB
–– FrecvenFrecvenţţe de funce de funcţţionare: 50, 66 ionare: 50, 66 şşi 80 MHzi 80 MHz

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 5151
Exemple de procesoare Exemple de procesoare PowerPCPowerPC (2)(2)
�� PowerPCPowerPC 603e603e–– Arhitectură de Arhitectură de 32 de bi32 de biţţii
–– Memorii cache separate de instrucMemorii cache separate de instrucţţiuni iuni şşi de i de date (câtdate (câte 1e 16 K6 KB)B)
–– Două unităDouă unităţţi de gestiune a memorieii de gestiune a memoriei
–– Cinci unităCinci unităţţi de execui de execuţţieie
–– FrecvenFrecvenţţe de funce de funcţţionare: 100, 166 ionare: 100, 166 şşi 200 MHzi 200 MHz
–– PerformanPerformanţţa: 271 MIPS la 200 MHza: 271 MIPS la 200 MHz

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 5252
Exemple de procesoare Exemple de procesoare PowerPCPowerPC (3)(3)
�� PowerPCPowerPC 74007400–– Arhitectură de Arhitectură de 32 de bi32 de biţţii–– Poate executa până la Poate executa până la 8 instruc8 instrucţţiuni pe ciclu de iuni pe ciclu de
ceasceas–– Opt unităOpt unităţţi de execui de execuţţie, die, dintre care două unităintre care două unităţţi i
vectoriale vectoriale AltiVecAltiVec →→ multimediamultimedia–– Memorii cache separate de instrucMemorii cache separate de instrucţţiuni iuni şşi de i de
date (câte 32 KB)date (câte 32 KB)–– FrecvenFrecvenţţe de funce de funcţţionare: 350, 400 ionare: 350, 400 şşi 450 MHz i 450 MHz
(825 MIPS)(825 MIPS)

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 5353
Procesoare Procesoare PowerPCPowerPC
�� IntroducereIntroducere
�� Exemple de procesoare Exemple de procesoare PowerPCPowerPC
�� PowerPCPowerPC 750750

15.03.201515.03.2015 Sisteme de calcul dedicate (06)Sisteme de calcul dedicate (06) 5454
PowerPCPowerPC 750750
�� PowerPCPowerPC 750750
BibliografieBibliografie–– BaruchBaruch, Z, Z. F. F., ., Structura sistemelor de calcul, Structura sistemelor de calcul,
Editura AlbastrăEditura Albastră, 2004, ISBN , 2004, ISBN 973973--650650--143143--44..