SCD-Procesoare-1

Documente similare
SSC-Introducere-2

Slide 1

1. ARHITECTURA MICROPROCESOARELOR 1.1. Microprocesorul. Noțiuni generale Progresele tehnologice și electronice, înregistrate în ultimele decenii, au d

Sisteme de calcul în timp real

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Microsoft Word - 4-Interfete paralele.doc

Sisteme cu FPGA şi Soft Processors

Microsoft Word - intro_msp430.doc

Slide 1

Variante ale magistralei PCI

Lucrarea 10

Concepte de bază ale Tehnologiei Informației

Discipline aferente competenţelor Facultate: Facultatea de Electronică şi Telecomunicaţii Universitate: UNIVERSITATEA POLITEHNICA DIN TIMIȘOARA Domeni

1

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii

PPSD

4. Creşterea vitezei de execuţie a algoritmilor intensiv computaţio-nali cu ajutorul coprocesoarelor ataşate, bazate pe structuri logice reconfigurabi

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

Microsoft Word - 2 ES RO.doc

FIŞA DISCIPLINEI ANEXA nr. 3 la metodologie 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Politehnica din Bucureşti 1.2 F

Cuprins

PROCESOARE NUMERICE DE SEMNAL

Proiectarea Sistemelor Software Complexe

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

Universitatea Transilvania Braşov Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Catera de Electronică şi Calculatoare Construcţia şi de

Microsoft Word - Lucrarea_10_t.doc

FIŞA DISCIPLINEI ARHITECTURA SISTEMELOR DE CALCUL 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea POLITEHNICA din Bucureşti

Nr

Lucrarea nr

PowerPoint-Präsentation

PowerPoint Presentation

PowerPoint Presentation

SSC-Impartire

Paradigme de programare

U.T.Cluj-Napoca, C.U.N. Baia Mare Facultatea: Inginerie PLAN de INVĂŢĂMÂNT Domeniul: Calculatoare şi Tehnologia Informaţiei anul univ Progr

Informatică aplicată TEST GRILA TEST GRILĂ - REZOLVAT 1.Structura de principiu a unui sistem de calcul contine urmatoarele componente principale: A. u

Slide 1

Slide 1

Interfețe seriale

PowerPoint-Präsentation

Ch

Microsoft Word - O problema cu bits.doc

Example Title with Registration Microsoft® and Trademark SQL ServerTM

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Slide 1

INFORMATICĂ ŞI MARKETING


5_2012_2013_AC_PI_C_Anii_III-IV.xls

Paradigme de Programare

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIŞA DISCIPLINEI (CO

Platformăde e-learning și curriculăe-content pentru învățământul superior tehnic Sisteme de operare 13. Planificarea proceselor

Microsoft Word - Prelegere 1 - Bratu C. - Microcontrolerul.doc

COLEGIUL TEHNIC „VICTOR UNGUREANU” CAMPIA TURZII

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Guardian2012_RO3

FIŞA UNITĂŢII DE CURS/MODULULUI MD-2004, CHIŞINĂU, BD. ȘTEFAN CEL MARE, 168, TEL: , TEHNOLOGII INFORMAŢIONALE APLICATE 1. Date

Microsoft PowerPoint - automatizari_lucrarea9.ppt

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

LUMINIŢA SCRIPCARIU

Microsoft Word - Ansamblul software CRONIS

PROCESOARE NUMERICE DE SEMNAL


Calitate aer comprimat Masurarea calitatii aerului comprimat conform ISO 8573 Continut de ulei rezidual - particule - umezeala Masurare continut ulei

Microsoft Word - 5_ _Eval_ ETC_master_ESI_AnI-II_completat.doc

TM200 Live Tour guide Sistem audio mobil Sistemul de comunicare audio Tour guide este util in cel putin 3 situatii si vine cu avantaje clare: 1) Cand

Pentru afacerea dumneavoastră ModernBiz Glossary 2014 Microsoft Corporation. Toate drepturile rezervate.

Admitere

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Universitatea Politehnica din București Facultatea de Electronică, Telecomunicații și Tehnologia Informației Metode de extindere a duratei de viaţă a

Microsoft Word - Case de marcat si Imprimante fiscale cu jurnal electronic.docx

Microsoft Word - Microcprocesoare.doc

Gestionarea I/E

Kein Folientitel

Unitatea: Școala Gimnazială Disciplina: Informatică și TIC Programa școlară aprobată cu OMEN nr.3393 din Profesor: prof. Clasa: a V-a A, B

FIŞA DISCIPLINEI

VoIP Voice Over IP

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

PowerPoint-Präsentation

MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVA COORDONAT: _ J _ 2016 Nr. de înregistrare a olanului de UNIVERSITATEA DE STAT DIN MOLDOVA APROBAT: SENATUL

Microsoft Word - Tematica examen AII.doc

Microsoft Word - grile.doc

MINISTERUL EDUCAŢIEI, CULTURII ŞI CERCETĂRII AL REPUBLICII MOLDOVA COORDONAT: 2017 Nr. de înregistrare a planului de învăţământ UNIVERSITATEA DE STAT

Slide 1

A TANTÁRGY ADATLAPJA

LOGICAL DESIGN OF DIGITAL COMPUTERS

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVA COORDONAT: " " 2017 Nr. de înregistrare a planului de învăţământ UNIVERSITATEA DE STAT DIN MOLDOVA Aprobat:

客厅电脑 酷影Q1000

Microsoft Word - Laboratorul 5.doc

PowerPoint Presentation

XPS Configurare şi specificaţii

PCLPII-C16(9)

Recomandarea Comisiei din 18 iulie 2018 privind orientările pentru implementarea armonizată a Sistemului european de management al traficului feroviar

Example Title with Registration Microsoft® and Trademark SQL ServerTM

E_d_Informatica_sp_SN_2014_bar_10_LRO

Ministerul Educaţiei al Republicii Moldova Centrul de Excelenţă în Informatică şi Tehnologii Informaţionale "Aprob" Directorul Centrului de Excelenţă

Microsoft Word - Notiuni de arhitectura calculatoarelor.doc

Microsoft Word - Plus TV Analog Pro Stick Installation _Rom V1.3_.doc

Slide 1

PLAN DE ÎNVĂŢĂMÂNT începând cu anul universitar Fundaţia Sapientia - Universitatea Sapientia din Cluj-Napoca Facultatea: Ştiinţe Tehnice şi

Transcriere:

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 Acorn Computers (UK) Primul procesor ARM comercial: ARM1 (1985) utilizat în calculatorul personal BBC Micro Bazat 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 Computer Sisteme 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 ARM Licențiază proiectele către partenerii care fabrică procesoarele Dezvoltă 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) Nucleele ARM pot fi integrate în circuite SoC (System-on-Chip) ale diferiților producători nvidia: Tegra (de ex., Tegra X2) Apple: A4, A5, A6 etc. (de ex., Apple A11) Samsung Electronics: Exynos (de ex., Exynos 9810) Qualcomm: Snapdragon (de ex., Snapdragon 845) Sisteme de calcul dedicate (06-1) 11.12.2018 8

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 ARM Registre de uz general Moduri ale procesorului Fiecare 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ăr Ex.: ARMv3 (arhitectură); ARM3 (procesor) Arhitectura ARMv1 Adresare pe 26 de biți a memoriei de program Adresare pe 32 de biți a memoriei de date Fără instrucțiuni de înmulțire Instrucț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 ARMv2 S-a păstrat adresarea pe 26 de biți Instrucțiuni de înmulțire și înmulțire cu acumulare (MAC) Interfață pentru până la 16 coprocesoare logice, CP0.. CP15 Două registre suplimentare vizibile în modul FIQ, R8_fiq și R9_fiq Instrucț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 ARMv3 Adresare 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 ARMv4 Instrucț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 ARMv5 Instrucț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 semn Sisteme 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 arhitecturale Profilul 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 semnalelor Codificare/decodificare video și audio, grafică 2D/3D, sinteza vocii, prelucrarea imaginilor 32 de registre x 64 de biți Pot 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 codecuri 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 sigur TEE (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 securitate Starea normală: restul sistemului Procesoarele TrustZone conțin două nuclee virtuale pentru cele două stări Comutarea 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 hardware Sisteme 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 cache MESI Modified, Exclusive, Shared, Invalid Permite 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 mobile Combinarea î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ție Sisteme 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 EP Registre, seturi de instrucțiuni, modelul excepțiilor Două stări de execuție, AArch32 și AArch64 AArch32: 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țiilor AArch32 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, Apple Ax, 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 EP Sunt prevăzute pentru execuția normală a programelor și pentru tratarea excepțiilor Fiecare mod este implementat la un anumit nivel de excepție User (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 disponibile Pentru 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 VM Set de registre separat de registrele generale Instrucț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ți Vederi diferite ale registrelor pentru instrucțiunile SIMD avansate și cele în VM Instrucț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.. R30 Pot 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 VM 32 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