57
Cuprins 1. Introducere 2. Modele și limbaje pentru specificația sistemelor 3. Interfețe de comunicație 4. Periferice pentru sisteme dedicate 5. Microcontrolere 6. Procesoare dedicate 7. Dezvoltarea programelor 8. Implementarea sistemelor dedicate Sisteme de calcul dedicate (06-1) 11.12.2018 1

Cuprins - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Procesoare-1.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor 3.Interfețe de

  • Upload
    vocong

  • View
    239

  • Download
    0

Embed Size (px)

Citation preview

Cuprins

1. Introducere

2. Modele și limbaje pentru specificația sistemelor

3. Interfețe de comunicație

4. Periferice pentru sisteme dedicate

5. Microcontrolere

6. Procesoare dedicate

7. Dezvoltarea programelor

8. Implementarea sistemelor dedicate

Sisteme de calcul dedicate (06-1) 11.12.2018 1

Procesoare dedicate

•Procesoare ARM

•Procesoare Intel

•Procesoare AMD

Sisteme de calcul dedicate (06-1) 11.12.2018 2

Procesoare ARM

Prezentare generală

Arhitecturile ARMv1 .. ARMv6

Arhitectura ARMv7

Arhitectura ARMv8

Sisteme de calcul dedicate (06-1) 11.12.2018 3

Prezentare generală (1)

•ARM – Advanced RISC Machine•Denumirea inițială: Acorn RISC Machine•Arhitectura a fost proiectată la firma AcornComputers (UK)Primul procesor ARM comercial: ARM1 (1985) utilizat în calculatorul personal BBC MicroBazat pe procesorul Motorola 6502 (8 biți)Modificări: arhitectură RISC de 32 de biți; lungime fixă a instrucțiunilor; arhitectură load/store

Sisteme de calcul dedicate (06-1) 11.12.2018 4

Prezentare generală (2)

•ARM2 (8 MHz) s-a utilizat în calculatorul personal Archimedes (1987)

•ARM3 (24 .. 33 MHz) conținea o memorie cache de instrucțiuni și de date (1989)

•Dezvoltarea procesoarelor ARM a continuat în cadrul firmei Advanced RISC Machines Ltd. (1990)Acorn Computers

VLSI Technology Inc.

Apple ComputerSisteme de calcul dedicate (06-1) 11.12.2018 5

Prezentare generală (3)

•Primul procesor dezvoltat de ARM Ltd.: ARM6(1992)

Au fost licențiate diferite versiuni ARM6: ARM610(Apple), StrongARM (DEC), XScale (Intel)

•În 1998, ARM Ltd. a devenit ARM Holdings

A fost achiziționat de SoftBank Group (2016)

•Dezvoltarea procesoarelor ARM a continuat cu seriile ARM7 .. ARM11, iar apoi cu seriile ARM Cortex-M, Cortex-R, Cortex-A

Sisteme de calcul dedicate (06-1) 11.12.2018 6

Prezentare generală (4)

•ARM Holdings:Proiectează arhitectura procesoarelor ARMLicențiază proiectele către partenerii care fabrică procesoareleDezvoltă tehnologii pentru asistarea proiectării•Magistrale, periferice, instrumente software, plăci

de dezvoltare, depanatoare

•Procesoarele ARM se utilizează pe scară largă în: dispozitive mobile, sisteme înglobate, calculatoare portabile

Sisteme de calcul dedicate (06-1) 11.12.2018 7

Prezentare generală (5)

Sisteme de calcul dedicate (06-1) 11.12.2018 8

•Nucleele ARM pot fi integrate în circuite SoC (System-on-Chip) ale diferiților producătorinVidia: Tegra (de ex., Tegra X2)

Apple: A4, A5, A6 etc. (de ex., Apple A11)

Samsung Electronics: Exynos (de ex., Exynos9810)

Qualcomm: Snapdragon (de ex., Snapdragon845)

Prezentare generală (6)

•Magistrale bazate pe standardul ARM AMBA (Advanced Microcontroller Bus Architecture)AMBA 2 definește:•Magistrala AHB (Advanced High-performance Bus)•Vers. 2 a magistralei APB (Advanced Peripheral Bus) accesul la registrele de control al perifericelor

AMBA 3 definește:•Magistrala AHB-Lite: magistrală AHB simplificată

pentru sisteme cu un singur dispozitiv master

Sisteme de calcul dedicate (06-1) 11.12.2018 9

Prezentare generală (7)

•Interfața AXI3 (Advanced eXtensible Interface 3): interconexiune de viteză ridicată

AMBA 4 definește:•Vers. 4 a interfeței AXI (AXI4): îmbunătățește

utilizarea magistralei la sistemele multi-master

•Varianta AXI4-Lite a interfeței AXI4: interfață simplificată pentru perifericele din circuit

•Extensia AXI Coherency Extensions (ACE): se extinde interfața AXI cu trei canale pentru partajarea memoriilor cache între procesoare

Sisteme de calcul dedicate (06-1) 11.12.2018 10

Prezentare generală (8)

•Arhitectura ARM definește:O mașină abstractă EP (element de procesare) Reguli de utilizare a EP

•Modelul de programare ARMRegistre de uz generalModuri ale procesoruluiFiecare mod poate oferi diferite tipuri de accese la memorie și poate avea un subset propriu de registre

Sisteme de calcul dedicate (06-1) 11.12.2018 11

Procesoare ARM

Prezentare generală

Arhitecturile ARMv1 .. ARMv6

Arhitectura ARMv7

Arhitectura ARMv8

Sisteme de calcul dedicate (06-1) 11.12.2018 12

Arhitecturile ARMv1 .. ARMv6 (1)

•Nu trebuie confundată vers. arhitecturii cu procesorul având același numărEx.: ARMv3 (arhitectură); ARM3 (procesor)•Arhitectura ARMv1Adresare pe 26 de biți a memoriei de programAdresare pe 32 de biți a memoriei de dateFără instrucțiuni de înmulțireInstrucțiuni de salt și apel (BL)Instrucțiune de întrerupere software pentru apelul funcțiilor SO

Sisteme de calcul dedicate (06-1) 11.12.2018 13

Arhitecturile ARMv1 .. ARMv6 (2)

Moduri ale EP•User (USR): mod neprivilegiat•Interrupt Request (IRQ): întreruperi normale•Fast Interrupt Request (FIQ): întreruperi rapide•Supervisor (SVC): după resetare sau o instrucțiune

de întrerupere software

Registre vizibile în modurile USR, SVC: R0..R15•R13: Stack Pointer (SP)•R14: Link Register (LR)•R15: Program Counter (PC), registru al indicatorilor

de stare și de mod

Sisteme de calcul dedicate (06-1) 11.12.2018 14

Arhitecturile ARMv1 .. ARMv6 (3)

În modurile IRQ și FIQ există copii private ale anumitor registre •Crește viteza tratării întreruperilor

Modul IRQ: copii ale registrelor R13 și R14 R13_irq, R14_irq

Modul FIQ: copii ale registrelor R10 .. R14 R10_fiq .. R14_fiq

Singura implementare: procesorul ARM1

Sisteme de calcul dedicate (06-1) 11.12.2018 15

Arhitecturile ARMv1 .. ARMv6 (4)

•Arhitectura ARMv2S-a păstrat adresarea pe 26 de bițiInstrucțiuni de înmulțire și înmulțire cu acumulare (MAC)Interfață pentru până la 16 coprocesoare logice, CP0 .. CP15Două registre suplimentare vizibile în modul FIQ, R8_fiq și R9_fiqInstrucțiuni Load/Store atomice (SWP, SWPB) Implementări: ARM2, ARM3, ARM250

Sisteme de calcul dedicate (06-1) 11.12.2018 16

Arhitecturile ARMv1 .. ARMv6 (5)

•Arhitectura ARMv3Adresare pe 32 de biți a memoriei de program

Informația din registrul R15 a fost mutată în registrul CPSR (Current Program Status Reg.)

Pentru fiecare mod de excepție există un registru SPSR (Saved Program Status Reg.)

S-au introdus modurile Abort și Undefined•Abort: acces ilegal la memoria de date (Data Abort)

sau la memoria de program (Prefetch Abort)

•Undefined: excepție de instrucțiune nedefinită

Sisteme de calcul dedicate (06-1) 11.12.2018 17

Arhitecturile ARMv1 .. ARMv6 (6)

Variantele M: înmulțire și operații MAC de 32 x 32 biți, cu rezultat pe 64 biți

Posibilitatea de a schimba ordinea octeților (little-endian sau big-endian)

Implementări: ARM6, ARM7

•Arhitectura ARMv4Instrucțiuni Load/Store pentru semicuvinte

Instrucțiuni Load cu extensie de semn pentru octeți și semicuvinte

Sisteme de calcul dedicate (06-1) 11.12.2018 18

Arhitecturile ARMv1 .. ARMv6 (7)

S-a introdus modul privilegiat System•Acces la aceleași registre ca și modul User

Variantele T: extensia Thumb•Subset al instrucțiunilor ARM•Instrucțiunile sunt comprimate pe 16 biți •Instrucțiunile Thumb sunt decomprimate pe 32 de

biți înainte de execuție•Există limitări ale setului de instrucțiuni Thumb

Comutarea între starea ARM și starea Thumb: cu instrucțiunea BX (Branch and eXchange)Implementări: StrongARM, ARM8, ARM9

Sisteme de calcul dedicate (06-1) 11.12.2018 19

Arhitecturile ARMv1 .. ARMv6 (8)

•Arhitectura ARMv5Instrucțiune Count Leading Zeros (CLZ)

Instrucțiune de suspendare a execuției pentru depanare (breakpoint)

Extensia VFP (Vector Floating Point), vers. 2 (VFPv2): instrucțiuni în virgulă mobilă cu precizie simplă și precizie dublă

Variantele E: extensia DSP•Adunarea și scăderea utilizează aritmetica saturată

cu semnSisteme de calcul dedicate (06-1) 11.12.2018 20

Arhitecturile ARMv1 .. ARMv6 (9)

Variantele J: extensia Jazelle DBX (Direct Bytecode Execution)•O nouă stare de execuție, Java instrucțiunea BXJ

(Branch and Exchange Jazelle)•Implementează execuția codului Java prin hardware•S-a adăugat un nou registru CPSR•Întreruperile apărute în starea Java sunt tratate

imediat•Unor registre li se asignează funcții specifice stării

Java: SP, variabile locale

Implementări: ARM7EJ, ARM9E, ARM10E

Sisteme de calcul dedicate (06-1) 11.12.2018 21

Arhitecturile ARMv1 .. ARMv6 (10)

•Arhitectura ARMv6Îmbunătățirea sistemului de gestiune a memoriei•Reducerea timpului de încărcare pentru

instrucțiuni și date

•Creșterea performanțelor cu până la 30%

Suport pentru sisteme multiprocesor•Instrucțiuni Load/Store Exclusive

•Posibilitatea unor metode mai complexe de sincronizare pentru memoria partajată

Sisteme de calcul dedicate (06-1) 11.12.2018 22

Arhitecturile ARMv1 .. ARMv6 (11)

Instrucțiuni pentru aplicații multimedia•Set de instrucțiuni SIMD de 32 de biți

•Implementarea mai eficientă a aplicațiilor audio, video, grafică 3D

Gestiunea mai eficientă a datelor•Suport îmbunătățit pentru subsisteme cu ordinea

diferită a octeților

•Gestiunea unor date nealiniate

Gestiunea mai eficientă a întreruperilor și a excepțiilor

Sisteme de calcul dedicate (06-1) 11.12.2018 23

Arhitecturile ARMv1 .. ARMv6 (12)

Extensia Thumb-2•Noi instrucțiuni de 32 de biți

•Set de instrucțiuni extins: operații pe câmpuri de biți, execuție condițională

•Se pot genera instrucțiuni Thumb sau ARM din același cod sursă limbaj de asamblare unificat (UAL – Unified Assembly Language)

•Performanțe superioare față de setul Thumb: dimensiunea memoriei redusă cu 30%; performanța îmbunătățită cu până la 38%

Implementare: ARM11 Sisteme de calcul dedicate (06-1) 11.12.2018 24

Procesoare ARM

Prezentare generală

Arhitecturile ARMv1 .. ARMv6

Arhitectura ARMv7

Arhitectura ARMv8

Sisteme de calcul dedicate (06-1) 11.12.2018 25

Arhitectura ARMv7

Arhitectura ARMv7•Prezentare generală

•Extensia ARM NEON

•Extensia ARM TrustZone

•Tehnologia ARM MPCore

•Tehnologia ARM big.LITTLE

Sisteme de calcul dedicate (06-1) 11.12.2018 26

Prezentare generală (1)

•Sunt definite trei profiluri arhitecturaleProfilul A (Application): Cortex-A•Pentru sisteme care necesită performanțe ridicate:

tablete, telefoane, aparate TV

•Implementări: Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A12, Cortex-A15

Profilul R (Real-time): Cortex-R•Pentru sisteme înglobate cu performanțe ridicate:

sisteme pentru automobile, medicale, industriale

•Implementări: Cortex-R4, Cortex-R5, Cortex-R7

Sisteme de calcul dedicate (06-1) 11.12.2018 27

Prezentare generală (2)

Profilul M (Microcontroller): Cortex-M•Pentru sisteme înglobate cu consum și cost redus:

electronica de consum, instrumente medicale

•Implementări: Cortex-M3, Cortex-M4

•Extensia arhitecturală VFP, vers. 3 (VFP3) sau vers. 4 (VFPv4)•Definită pentru profilurile ARMv7-A și ARMv7-R

•Vers. 4: date de 16 biți; instrucțiuni MAC fuzionate

•32 registre de 64 de biți (VFPvx-D32), sau

•16 registre de 64 de biți (VFPvx-D16)

Sisteme de calcul dedicate (06-1) 11.12.2018 28

Prezentare generală (3)

•În general, implementările ARMv7-A și ARMv7-R includ extensiile:Thumb; Thumb-2; DSP; Jazelle DBX

•Alte extensii și tehnologii:Extensia NEON: instrucțiuni SIMD avansate

Extensia TrustZone: extensie de securitate

Extensia de virtualizare: suport hardware

Tehnologia MPCore: implementarea unor nuclee multiple într-un circuit SoC

Tehnologia big.LITTLE: optimizarea consumului

Sisteme de calcul dedicate (06-1) 11.12.2018 29

Arhitectura ARMv7

Arhitectura ARMv7•Prezentare generală

•Extensia ARM NEON

•Extensia ARM TrustZone

•Tehnologia ARM MPCore

•Tehnologia ARM big.LITTLE

Sisteme de calcul dedicate (06-1) 11.12.2018 30

Extensia ARM NEON (1)

•Extensie SIMD avansatăSet de instrucțiuni SIMD de 64 și 128 de biți

•Accelerare pentru aplicații multimedia și de prelucrare a semnalelorCodificare/decodificare video și audio, grafică

2D/3D, sinteza vocii, prelucrarea imaginilor

•32 de registre x 64 de bițiPot fi utilizate ca 16 registre x 128 de biți

Registrele sunt considerate ca vectori sau elemente de același tip

Sisteme de calcul dedicate (06-1) 11.12.2018 31

Extensia ARM NEON (2)

•Tipuri de date:Întregi de 8, 16, 32 sau 64 de biți, cu/fără semn

În VM cu precizie simplă (32 de biți)

•Se pot executa până la 16 operații simultan

•Avantaje:Suport pentru diferite standarde: MPEG-4, H.264,

Real, AVS

Se poate utiliza pentru prelucrare vectorială

Performanță crescută cu 60..150% pentru codec-uri video și de 4..8 ori pentru algoritmi DSP simpli

Sisteme de calcul dedicate (06-1) 11.12.2018 32

Arhitectura ARMv7

Arhitectura ARMv7•Prezentare generală

•Extensia ARM NEON

•Extensia ARM TrustZone

•Tehnologia ARM MPCore

•Tehnologia ARM big.LITTLE

Sisteme de calcul dedicate (06-1) 11.12.2018 33

Extensia ARM TrustZone (1)

•Extensie de securitate

•Arhitectură hardware care permite rularea unui kernel considerat sigurTEE (Trusted Execution Environment)

Se poate utiliza pentru rularea unor aplicații de încredere

Avantaje: performanță ridicată; acces la o memorie cu dimensiune mai ridicată

•Alternativă la adăugarea unui nucleu de securitate dedicat la un circuit SoC

Sisteme de calcul dedicate (06-1) 11.12.2018 34

Extensia ARM TrustZone (2)

•Resursele hardware și software se pot afla într-una din două stări (domenii):Starea sigură: subsistemul de securitateStarea normală: restul sistemului

•Procesoarele TrustZone conțin două nuclee virtuale pentru cele două stăriComutarea contextului între nuclee: printr-un nou mod al procesorului, Monitor •Intrarea în modul Monitor: instrucțiunea SMC

(Secure Monitor Call) sau printr-o excepție hardwareSisteme de calcul dedicate (06-1) 11.12.2018 35

Arhitectura ARMv7

Arhitectura ARMv7•Prezentare generală

•Extensia ARM NEON

•Extensia ARM TrustZone

•Tehnologia ARM MPCore

•Tehnologia ARM big.LITTLE

Sisteme de calcul dedicate (06-1) 11.12.2018 36

Tehnologia ARM MPCore (1)

•Permite implementarea a până la 4 nuclee de procesoare într-un circuit SoC

•Utilizează un protocol MESI modificat pentru coerența memoriilor cacheMESI – Modified, Exclusive, Shared, InvalidPermite transferul datelor între memoriile cache,

fără scrierea în memoria principală

•Port opțional ACP (Accelerator Coherency Port)Permite unor controlere și acceleratoare fără

memorii cache să acceseze ierarhia memoriilor cache din nucleele de procesoare

Sisteme de calcul dedicate (06-1) 11.12.2018 37

Tehnologia ARM MPCore (2)

•Moduri de operare: cu memorie distribuită sau cu memorie partajată

Cu memorie distribuită•Nucleele comunică prin transmitere de mesaje

•AMP – Asymmetric Multi-Processing

•Unele nuclee pot fi dedicate unor taskuri

Cu memorie partajată•Nucleele au acces la toate perifericele de I/E

•SMP – Symmetric Multi-Processing

•Niciun nucleu nu este rezervat pentru funcții speciale

Sisteme de calcul dedicate (06-1) 11.12.2018 38

Arhitectura ARMv7

Arhitectura ARMv7•Prezentare generală

•Extensia ARM NEON

•Extensia ARM TrustZone

•Tehnologia ARM MPCore

•Tehnologia ARM big.LITTLE

Sisteme de calcul dedicate (06-1) 11.12.2018 39

Tehnologia ARM big.LITTLE (1)

•Tehnologie de optimizare a consumului de energie pentru platformele mobileCombinarea într-un circuit SoC a unor nuclee cu

performanțe ridicate (“big”) cu nuclee eficiente ca și consum de energie (“LITTLE”)•Exemplu: 2 x Cortex-A17 și 2 x Cortex-A7

Taskurile sunt alocate în mod dinamic unuia din cele două tipuri de nuclee

•Se poate obține o reducere a consumului de energie cu până la 75%

Sisteme de calcul dedicate (06-1) 11.12.2018 40

Tehnologia ARM big.LITTLE (2)

•Pentru conectarea nucleelor se utilizează o interconexiune care asigură coerența între memoriile cache

•Exemplu de interconexiune: CoreLink Cache Coherent Interconnect (CCI)Asigură coerența memoriilor cache între nuclee,

GPU și alte interfețe sau acceleratoare

•Alocarea taskurilor la nuclee: cu modelul software Global Task Scheduling (GTS)Se anticipează cerințele de performanță ale firelor

de execuțieSisteme de calcul dedicate (06-1) 11.12.2018 41

Procesoare ARM

Prezentare generală

Arhitecturile ARMv1 .. ARMv6

Arhitectura ARMv7

Arhitectura ARMv8

Sisteme de calcul dedicate (06-1) 11.12.2018 42

Arhitectura ARMv8

Arhitectura ARMv8•Prezentare generală

•Starea de execuție AArch32

•Starea de execuție AArch64

Sisteme de calcul dedicate (06-1) 11.12.2018 43

Prezentare generală (1)

•Se păstrează profilurile arhitecturale introduse în versiunea ARMv7: A, R, M

•Se va descrie doar profilul ARMv8-A

•S-au păstrat majoritatea extensiilor din versiunile precedente, cu excepția Jazelle DBX

Extensia NEON și arhitectura VFP fac parte din arhitectura ARMv8-A de bază

Extensie criptografică opțională: pentru algoritmul de criptare AES și funcțiile SHA-1, SHA-256

Sisteme de calcul dedicate (06-1) 11.12.2018 44

Prezentare generală (2)

•Stare de execuție: definește mediul de execuție pentru un EPRegistre, seturi de instrucțiuni, modelul excepțiilor

•Două stări de execuție, AArch32 și AArch64AArch32: stare de execuție de 32 de biți•Compatibilă cu versiunile precedente ale arhitecturii•Setul de instrucțiuni A32 (ARM)•Setul de instrucțiuni T32 (Thumb-2)

AArch64: stare de execuție de 64 de biți•Adrese de 64 de biți, operanzi de 32 sau 64 de biți•Nou set de instrucțiuni, A64

Sisteme de calcul dedicate (06-1) 11.12.2018 45

Prezentare generală (3)

•Modelul excepțiilorAArch32•Același model ca și în arhitectura ARMv7•Bazat pe modurile EP

AArch64•Bazat pe patru nivele de excepție, EL0 .. EL3•Nivelul EL0: neprivilegiat •Nivelele EL1, EL2, EL3: privilegiate•Execuția poate trece de la un nivel la altul doar la

apariția unei excepții sau la revenirea dintr-o excepție

•Implementări: Cortex-A5x, Cortex-A7x, AppleAx, Qualcomm Snapdragon 83x/84x/85x

Sisteme de calcul dedicate (06-1) 11.12.2018 46

Arhitectura ARMv8

Arhitectura ARMv8•Prezentare generală

•Starea de execuție AArch32

•Starea de execuție AArch64

Sisteme de calcul dedicate (06-1) 11.12.2018 47

Starea de execuție AArch32 (1)

•Moduri ale EPSunt prevăzute pentru execuția normală a

programelor și pentru tratarea excepțiilorFiecare mod este implementat la un anumit nivel

de excepțieUser (usr): execuție neprivilegiată (EL0)•Programele executate în acest mod nu pot accesa

resurse sau zone de memorie protejate

FIQ (fiq): tratarea unei cereri de întrerupere rapidă (EL1 sau EL3)IRQ (irq): tratarea unei cereri de întrerupere

normală (EL1 sau EL3)

Sisteme de calcul dedicate (06-1) 11.12.2018 48

Starea de execuție AArch32 (2)

Supervisor (svc): tratarea excepției Supervisor Call instrucțiunea SVC (EL1 sau EL3)Monitor (mon): tratarea excepției Secure Monitor

Call instrucțiunea SMC (EL3)Abort (abt): tratarea excepției Data Abort sau

Prefetch Abort (EL1 sau EL3)Hyp (hyp): tratarea excepției Hypervisor Call

instrucțiunea HVC (EL2)Undefined (und): tratarea excepției de

instrucțiune nedefinită (EL1 sau EL3)System (sys): nu apare în urma unei excepții, ci

prin scrierea biților de mod din registrul CPSR

Sisteme de calcul dedicate (06-1) 11.12.2018 49

Starea de execuție AArch32 (3)

•Registre disponibilePentru aplicații •Registrele generale R0 .. R14•R13: SP (Stack Pointer)

•R14: LR (Link Register)

•Registre speciale: R15 (PC – Program Counter); APSR (Application Program Status Register)

Pentru sistem•Copii ale unor registre: SP (de ex., SP_svc), LR (de

ex., LR_fiq), CPSR (de ex., SPSR_irq)

Sisteme de calcul dedicate (06-1) 11.12.2018 50

Starea de execuție AArch32 (4)

Sisteme de calcul dedicate (06-1) 11.12.2018 51

Starea de execuție AArch32 (5)

•Registre pentru instrucțiuni SIMD și în VMSet de registre separat de registrele generaleInstrucțiuni SIMD avansate: operații asupra elementelor vectorilor •Un registru poate conține elemente de același tip•Elementele pot fi întregi sau valori în VM cu precizie

simplă•Numărul de elemente depinde de tipul lor și

dimensiunea registrului

Instrucțiuni în VM: operații scalare în VM cu precizie simplă sau dublă

Sisteme de calcul dedicate (06-1) 11.12.2018 52

Starea de execuție AArch32 (6)

Set comun de registre (SIMD și VM): 32 registre de 64 bițiVederi diferite ale registrelor pentru instrucțiunile SIMD avansate și cele în VMInstrucțiuni SIMD avansate: •32 registre de 64 biți, D0 .. D31, sau•16 registre de 128 biți, Q0 .. Q15

Instrucțiuni în VM:•32 registre de 32 biți, S0 .. S31, sau•32 registre de 64 biți, D0 .. D31

Sisteme de calcul dedicate (06-1) 11.12.2018 53

Starea de execuție AArch32 (7)

Sisteme de calcul dedicate (06-1) 11.12.2018 54

Arhitectura ARMv8

Arhitectura ARMv8•Prezentare generală

•Starea de execuție AArch32

•Starea de execuție AArch64

Sisteme de calcul dedicate (06-1) 11.12.2018 55

Starea de execuție AArch64 (1)

•31 registre generale: R0 .. R30Pot fi accesate ca registre de 64 biți (X0 .. X30)

sau ca registre de 32 de biți (W0 .. W30)X30: registru de legăturăZR: registru zero nu este un registru fizic

•SP: indicator de stivă dedicat (64 biți)Cuvântul inferior poate fi accesat prin numele

WSP

•PC: contor de program (64 biți)Nu poate fi înscris prin program

Sisteme de calcul dedicate (06-1) 11.12.2018 56

Starea de execuție AArch64 (2)

•Set comun de registre pentru instrucțiuni SIMD avansate și în VM32 registre de 128 biți, V0 .. V31

Registrele pot fi accesate ca și: •Cuvinte cvadruple (128 biți), Q0 .. Q31

•Cuvinte duble (64 biți), D0 .. D31

•Cuvinte (32 biți), S0 .. S31

•Semi-cuvinte (16 biți), H0 .. H31

•Octeți, B0 .. B31

Sisteme de calcul dedicate (06-1) 11.12.2018 57