Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 45

ARMv8-A: Faceți cunoștință cu experții –

Un tur al noii arhitecturi GICv3

Difuzoare:

Chris Shore, manager de formare, ARM


Martin Weidmann, inginer principal de aplicații, ARM

Moderator:

Brandon Lewis, OpenSystems Media

Media OpenSystems .
Agendă

■ Menaj
— „Prezentare
-m- Întrebări și răspunsuri
■ Învelire
Un tur al noii arhitecturi
GICv3

Webinar GICv3/GICv4 Arhitectura pentru lumea digitală® BRA


Prezentându-ne pe
noi înșine

Martin Chris Shore Weidmann


Manager de
formare

Webinar GICv3/GICv4 BRAŢ


Inginer principal de aplicații

Webinar GICv3/GICv4 BRAŢ


Activarea partenerilor ARM
Ajutându-te în fiecare fază a proiectului tău de design

Suport și întreținere
Extindeți cunoștințele și capacitățile angajaților Suport la nivel mondial
Reduceți timpul de lansare pe piață Proiectați eficient și eficient
Exploatați pe deplin caracteristicile produsului Creșteți productivitatea

CcCC

255

Documentație Asistență
activă
Informații accesibile despre Asistență pentru proiecte de la
produse Resurse online capăt la capăt Optimizați
suplimentare cuprinzătoare și designul subsistemelor
actualizate Reduceți riscul

Webinar GICv3/GICv4 BRAŢ


Unde găsiți documentația ARM
■ Documentația ARM poate fi găsită la http://infocenter.arm.com/
ARM Arhitectura pentru lumea digitală” Contactați ARM •
engleză | #+* | E*E | 2=0

Cuprins Despre acest site

Despre acest site


• Întrebări frecvente ale site-ului
. Oferirea de feedback Bun venit la ARM Infocenter. Infocenter-ul conține toate publicațiile tehnice Informații conexe
Cunoștințe de asistență tehnică ARM Articole neconfidențiale ARM, inclusiv:

.mali
Arhitectura ARM • A RM A rch it ect u re Referință M anua I s
Instrumente de dezvoltare software • Manuale tehnice de referință Cortex-A, Cortex-R, Cortex-M, ARM11,
ARM ARM9 și ARM7
Instrumente de dezvoltare integrate K • Specificațiile AMBA și instrumentele de proiectare și manualele Vizitați Centrul
pentru
Keil produselor pentru periferice și controlere CoreLink dezvoltatori Mali
. Plăci de dezvoltare • CoreSight on-chip depanare și urmărire TRM-uri și documentație de pentru mai multe
informații despre
" Ghiduri și articole pentru dezvoltatori arhitectură procesoarele
. Note de aplicare și tutoriale Lucrări de • Instrumentele de dezvoltare software ARM și documentația
instrumentelor de modelare
KEIL
cercetare
. Procesoare din seria Cortex-A • Note de aplicație și articole de cunoștințe de asistență tehnică (FAQs).
y O companie ARM©
. Procesoare din seria Cortex-R
Forumuri ARM Consultați site-ul
. Procesoare din seria Cortex-M
Dacă aveți nevoie de un răspuns la o întrebare, încercați să căutați articolele web Keil pentru
Procesoare ARM11 Procesoare noastre de cunoștințe sau adresați o întrebare pe forumurile ARM. mai multe
ARM9 informații despre
gama Keil de instrumente

■ Secțiuni utile:
■ Arhitectura ARM – manuale de referință pentru arhitectura ARM și GIC
■ Articole de cunoștințe de asistență tehnică ARM – Întrebări frecvente
■ Procesoare din seria Cortex-A/R/M – Manuale tehnice de referință

Webinar GICv3/GICv4 BRAŢ


■ Ghiduri și articole pentru dezvoltatori – Discuții detaliate despre TrustZone,
bariere...

Webinar GICv3/GICv4 BRAŢ


Suport global ARM

Webinar GICv3/GICv4 BRAŢ


Asistență
activă

Webinar GICv3/GICv4 BRAŢ


Antrenamentul ARM

Rezervați cursuri de formare „Prezentatorii au făcut o treabă grozavă”.


ARM

Extindeți cunoștințele și capacitățile angajaților dvs., astfel încât să puteți reduce timpul de lansare pe piață.
ARM oferă instruire pe o gamă largă de subiecte legate de tehnologia ARM, scrisă și susținută de cei mai experimentați formatori din lume în domeniul tehnologiei ARM. Având
disponibile opțiuni de cursuri publice, private și live la distanță, cursurile noastre sunt și ele flexibile. Caracteristicile și beneficiile ARM Training...

Q Cursuri publice O Cursuri private O Cursuri la distanță O Cursuri online Herve Schnitzler, Inginer Firmware Prinicpal -
Broadcom

Webinar GICv3/GICv4 BRAŢ


Găsiți un centru de instruire aprobat
ARM Întreb
Centre de instruire aprobate ARM ări
Unde se țin cursurile de formare?
ARM sprijină o rețea de companii de formare terțe care sunt autorizate să ofere o serie de cursuri de formare. Multe dintre
aceste centre oferă instruire publică regulată. frecv
Cine vă predă cursurile de formare?
ente
Există un curs lângă mine?

Avem doar o echipă mică - ne mai putem


Contactați echipa ARM Training
antrena?
Vă rugăm să ne contactați pentru a discuta cerințele dumneavoastră
și pentru a obține o ofertă. Cursurile tale sunt potrivite pentru
începători?
Pot personaliza agenda?

Webinar GICv3/GICv4 BRAŢ


Opțiuni de antrenament de
la ARM

1.^

Cursuri Cursuri Cursuri live


private publice la distanță

Livrare la fața locului, oriunde ARM găzduit Transmisiune live de la


ARM
Față în față cu experții ARM Programul
public Echipe distribuite
Înscrierea Livrare țintită, agilă
Webinar GICv3/GICv4 BRAŢ
Agende personalizate

Webinar GICv3/GICv4 BRAŢ


... și acum disponibil
online
Cursuri de formare ARM

Cursuri publice Cursuri private Cursuri la distanță Cursuri online

Caracteristicile cursului
online
Sesiuni de antrenament auto-înregistrate preînregistrate

Material comun cu cursurile noastre de lungă durată

Voce off de la antrenori ARM experimentați

Direcționat către anumite puncte de învățare

Vizualizați oricând și oriunde timp de 90 de zile de la achiziție

Descărcați o copie PDF a diapozitivelor pentru referință

Găzduit de și achiziționat de la partenerul nostru MindShare

Răsfoiți cursuri online


TITLUL
CURSULUI
Fundamentele arhitecturii ARM vizitați site-ul Mindshare

Introducere în AMBA Vizitați site-ul MindShare

Introducere în ARM Trustzone Vizitați site-ul web


MindShare

Webinar GICv3/GICv4 BRAŢ


Un tur al noii arhitecturi
GICv3

Webinar GICv3/GICv4 Arhitectura pentru lumea digitală® BRA


Controler de întrerupere generic
■ Arhitectura GIC a ARM oferă o abordare eficientă și standardizată pentru
gestionarea întreruperilor în sistemele multi-core bazate pe ARM

■ Arhitectura GIC oferă:


■ Controale pentru software pentru a prioritiza și viza întreruperile
■ Întreruperi periferice private (per-core) și partajate
■ Întreruperi generate de software, pentru comunicarea inter-core/procesor
■ ARM a lansat recent prima versiune beta publică a specificațiilor GICv3
și GICv4

Webinar GICv3/GICv4 BRAŢ


versiuni GIC
GICv2 GICv3 GICv4
■ ■ ■
Caracteristi
Până la 8 nuclee Adaugă: mesaje ■ Injectarea directă
Adaugă:
ci: la 1020 ID-uri de întreruperi
Până Model de securitate a
îmbunătățită întreruperi virtuale
Până la 8 biți de întreruperi prioritare
generate de software Acces la registrul de sistem
Suport TrustZone Spațiu de identificare a
întreruperii extins foarte mult
Suport pentru virtualizare
Suport pentru mai mult de 8 Suport pentru operațiunile
nuclee moștenite, oferind
compatibilitate cu GICv2
Suport pentru întreruperi bazate pe
■ Implementat de: ■ Implementat de:
■ CoreLink™ GIC-400 ■ CoreLink™ GIC-500

Webinar GICv3/GICv4 BRAŢ


Agendă

■ Registre de sistem și securitate


Suport pentru sisteme mari

Operațiune moștenită

Virtualizare GICv4

Webinar GICv3/GICv4 BRAŢ


Interfață de înregistrare a sistemului
Registrele interfeței În GICv1/v2, toate registrele sunt mapate
CPU în memorie

În GICv3, registrele interfeței CPU pot fi


accesate ca registre de sistem ARM
■ Acestea sunt registrele GIC utilizate atunci
când se gestionează întreruperi

Accesul la registrul de sistem necesită


suport pentru implementarea
procesorului
GICv3/GICv4
■ Cortex ® -A53, Cortex-A57
și Cortex-A72 de la ARM au toate suportul
necesar

Webinar GICv3/GICv4 BRAŢ


Securitate și grup
■ GICv3 acceptă trei setări de grup/securitate
■ Configurat individual pentru fiecare întrerupere
■ Oferă o potrivire mai bună cu modelul de securitate și excepție
ARMv8-A

■ Grupa 0
■ Întreruperile din grupul 0 sunt întotdeauna sigure
■ Semnalat ca FIQ, indiferent de starea curentă de securitate
■ Utilizat de obicei pentru întreruperi pentru firmware-ul care rulează
la EL3

■ Securizat Grupul 1
■ Semnalat ca FIQ dacă miezul este în stare Nesecurizată
■ Semnalat ca IRQ dacă nucleul este în stare Secure
■ Utilizat de obicei pentru întreruperi pentru sistemul de operare de
încredere

■ Grupul 1 nesecurizat
■ Semnalat ca FIQ dacă miezul este în stare Secure

Webinar GICv3/GICv4 BRAŢ


■ Semnalat ca IRQ dacă miezul este în stare Nesecurizată
■ Utilizat de obicei pentru întreruperi pentru sistemul de operare
bogat sau Hypervisor

Webinar GICv3/GICv4 BRAŢ


Exemplu de rutare
Nesigur Sigur
Grupul 1 Securizat
nesecurizat grupul 1
Securizat Grupul 1
grupul 1 nesecurizat

De
Sistem
încrede
de EL1
re
Vector IRQ operare IRQ Vector r
OS
bogat

EL3

SCR_EL3.FIQ=1 SCR_EL3.IRQ=0

Webinar GICv3/GICv4 BRA


Ţ
Agendă

Registre de sistem și securitate

■ Suport pentru sisteme mari


Operațiune moștenită

Virtualizare GICv4

Webinar GICv3/GICv4 BRAŢ


Redistribuitorii
■ GICv3 introduce Redistributors
GICv3/GICv4
Distribuitor

Redistribuitor Redistribuito
r

Procesor Multi-Core Procesor Multi-Core


■ Există un Redistributor per nucleu conectat, care deține setări pentru
întreruperi private (PPI și SGI)
■ Permite proiecte distribuite cu redistribuitori păstrați aproape de nucleul țintă

Webinar GICv3/GICv4 BRAŢ


Niveluri de afinitate și rutare
■ Există din ce în ce mai multă cerere pentru sisteme cu un număr mai
mare de nuclee

GICv3 crește numărul de nuclee care pot fi conectate


Miezuri conectate identificate printr-o valoare de afinitate, sistem de potrivire utilizat
în ARMv8-A

Întrerupeți
distribuitorul
Nivelul
3
Nivelul
2
0.255.255.x
Nivelul
1

■ Fiecare întrerupere periferică partajată poate fi configurată separat ca:


■ Trimiteți către orice nucleu conectat (denumit „1 din N”)
■ Trimiteți către un nucleu specific (coordonatele de afinitate ale nucleului scrise
BRA
Ţ
pentru înregistrare)
Webinar GICv3/GICv4

Bazat pe mesaj
■ GICv3 adaugă suport pentru întreruperi bazate pe mesaje
■ În loc să necesite un semnal dedicat, un periferic scrie un registru în GIC pentru a
înregistra o întrerupere

■ De ce?
■ Poate reduce numărul de fire necesare și ușurează rutarea
■ Din ce în ce mai important pe măsură ce sistemele devin mai mari și numărul surselor de
întrerupere crește
■ Se potrivește cu modelul utilizat de PCIe

Webinar GICv3/GICv4 BRAŢ


LPI-uri
■ GICv3 adaugă un nou tip de întrerupere – întrerupere periferică
specifică localității

■ LPI-urile extind foarte mult intervalul de ID-uri de întrerupere disponibil


■ Utilizați INTID-urile de la 8192 la 16.777.216

■ Pentru a oferi o soluție scalabilă, LPI-urile diferă în mai multe moduri de


SPI, PPI și SGI
■ Configurația și starea păstrate mai degrabă în memorie decât în registre
■ Poate fi doar Grupul 1 nesecurizat și starea activă nu este înregistrată
■ Software-ul este responsabil pentru alocarea și inițializarea memoriei utilizate
■ Întotdeauna bazat pe mesaje

■ LPI-urile pot fi trimise de un periferic către GIC în două moduri:


■ Direct la Redistribuitorul nucleului țintă
■ Prin intermediul unui ITS...

Webinar GICv3/GICv4 BRAŢ


Ce este un ITS?
Un serviciu de traducere întrerupere
mapează întreruperile către INTID-uri și
redistribuitori

C
u
m
se

traduce o întrerupere?
■ Perifericul trimite întreruperi ca mesaj către ITS
■ Mesajul specifică DeviceID (care periferic) și un EventID (care întrerupe de la acel periferic)
■ ITS folosește DeviceID pentru a indexa în
Tabelul dispozitivelor
■ Returnează indicatorul către un tabel de traducere a întreruperilor specific perifericului
■ ITS folosește EventID pentru a indexa în tabelul de traducere întrerupere
■ Returnează INTID-ul și ID-ul colecției

Webinar GICv3/GICv4 BRAŢ


■ ITS folosește ID-ul de colecție pentru a
indexa în Tabelul de colecție
■ Returnează Redistribuitorul țintă
■ ITS transmite întreruperea către Redistributor

Webinar GICv3/GICv4 BRAŢ


Controlul ITS
■ ITS este controlat de o coadă de comenzi (buffer circular) din memorie
■ Software-ul mapează/remapează întreruperile prin adăugarea de comenzi la coadă

■ Exemplu:
■ Un cronometru are DeviceID 5 și trimite EventID 0
■ Hotărâm să mapam întreruperea la INTID 8725 și să o livrăm la Redistributor 6
■ Tabelul de traducere pe dispozitiv pentru temporizator se află la adresa fizică
0x84500000
■ Decidem să folosim numărul de colecție 3

■ Secvența de comenzi de care avem nevoie este:


MAPD 5, 0x84500000, 2 Mapați DeviceID 5 într-un tabel de traducere de
întreruperi, cu lățime EventID de 2 biți
MAPTI 5, 0, 8725, 3 Hartați EventID 0 la INTID 8725 și colecția 3
MAPC 3, 6 Hartă colecția 3 către Redistribuitorul numărul 6
SINCR 6 Sincronizați modificările pe Redistributor

Webinar GICv3/GICv4 BRAŢ


Agendă

Registre de sistem și securitate

Suport pentru sisteme mari

■ Operațiune moștenită
Virtualizare GICv4

Webinar GICv3/GICv4 BRAŢ


Operațiune moștenită
■ GICv3 acceptă opțional funcționarea moștenită, pentru compatibilitate
cu GICv2
■ Poate fi configurat separat pentru fiecare stare de securitate
■ Dar sunt permise doar anumite combinații

1 r
1
1
ICC SRE EL1.SRE=X ICC_SRE_EL1.SRE=1 ICC_SRE_EL1.SRE=X
CC SRE EL1.SRE=O
ICC_SRE_EL1.SRE=0
1 ICC_SRE_EL1.SRE=0 a a EL1
• ICC_SRE_EL1.SRE=0 1
1 1
1 1
1 • 1 1 1
— 1
ICC SRE EL2.SRE=1 ICC_SRE_EL2.SRE=1
1 ICC_SRE_EL2.SRE=0
1 EL2
1

ICC SRE EL3.SRE=1 ICC_SRE_EL3.SRE=1 ICC SRE EL3.SRE=0 EL3

Toate GICv3 Legacy S.EL1 Toată


(Mașinile virtuale care rulează la NS.EL1 (Mașinile virtuale care rulează la NS.EL1
pot pot
moștenire
de asemenea, opțional utilizați interfața de asemenea, opțional utilizați interfața
Nesigur Sigur Nesigur Sigur Nesigur Sigur
1 1 1
ARE_NS=1 ARE_S=1 ARE_NS=1 ARE_S=0 ARE_NS=0 ARE_S=0

Webinar GICv3/GICv4 BRAŢ


Agendă

Registre de sistem și securitate

Suport pentru sisteme mari

Operațiune moștenită

■ Virtualizare GICv4

Virtualizare în GICv4
■ GICv4 adaugă suport pentru injectarea directă de întreruperi virtuale
■ Reduce necesitatea de a intra în Hypervisor și, astfel, poate reduce timpul de rulare
■ Acceptat numai pentru LPI-uri

Webinar GICv3/GICv4 BRAŢ


■ Necesită un ITS, iar includerea a cel puțin un ITS este obligatorie în GICv4

■ Hypervisor informează în prealabil ITS despre mapările dintre


întreruperile virtuale și fizice
■ Cartografierea include:
■ EventID/Dispozitiv de întrerupere fizică
■ INTID virtual
■ Cărui nucleu virtual îi aparține întreruperea virtuală
■ Pe ce nucleu fizic se așteaptă să ruleze nucleul virtual

■ Dacă miezul virtual rulează atunci când are loc întreruperea, hardware-
ul generează o întrerupere virtuală
■ Dacă nu, o întrerupere fizică a soneriei poate fi trimisă opțional

Webinar GICv3/GICv4 BRAŢ


Exemplu GICv4 (1)
■ Hypervisorul emite comenzi ITS pentru a mapa întreruperile
■ VMAPI și VMAPTI au folosit pentru a mapa EventID/DeviceID la INTID virtual și la
nucleul virtual
■ Opțional, se poate specifica o întrerupere fizică a soneriei
■ VMAPP folosit pentru a mapa nucleul virtual la un nucleu fizic

Virtual Virtual
CPU miez
Interfață

Fizic
CPU Hypervisor
Interfață
\

VMAPP, VMAPTI

Webinar GICv3/GICv4 BRAŢ


Exemplu GICv4 (2)
■ Când apare întrerupere, ITS utilizează EventID/DeviceID pentru a prelua
traducerea
■ Returnează virtual INTID și virtual core
■ INTID fizic al întreruperii soneriei (dacă este cazul)
■ Redistribuitor unde este programat nucleul virtual

Virtual Virtual
CPU miez
Mesaj de la Interfață
periferic
ES
Fizic
CPU Hypervisor
Interfață
\
Traducere
Masa
Mese virtual
ă PE

Webinar GICv3/GICv4 BRAŢ


Exemplu GICv4 (3)
■ Redistribuitorul verifică dacă PE virtual țintă este programat în prezent

■ Dacă verificarea trece, întreruperea virtuală este transmisă către


interfața CPU
■ Interfața CPU virtuală generează o întrerupere virtuală (sub rezerva
activărilor/verificărilor prioritare)

ES
TE

Traducere
Virtual
Mese PE
masa

Webinar GICv3/GICv4 BRAŢ


Exemplu GICv4 (4)
■ Dacă nucleul virtual nu este programat în prezent, întreruperea soneriei
fizice este transmisă în schimb
■ Întreruperea fizică gestionată de Hypervisor care rulează la EL2

GICR_VPENDBASER
GICR VPROPBASER

Redistribuitor

ESTE

Traducere
Virtual
Mese PE
masa

Webinar GICv3/GICv4 BRAŢ


Alte intrebari?

Webinar GICv3/GICv4 Arhitectura pentru lumea digitală® BRA


Back-up

Webinar GICv3/GICv4 Arhitectura pentru lumea digitală® BRA


CoreLink™GIC-500

Caracte Opțiuni
ristică de
Numărul de interfețe CPU
proiectare

1 – 128
(32 de clustere, 8 procesoare pe cluster)

Numărul de 32 – 960
SPI-uri
Numărul de 1
IPP 6
Lățimea magistralei portului de pe 32
programare AXI4 de
LPI-uri da
biți
acceptate până la 56K LPI
Suport pentru două stări de (opțional)
securitate da
Operațiune moștenită (optional)
acceptată da
Suport arhitectură CPU (optional)
Webinar GICv3/GICv4 ARMv8 BRAŢ
Webinar GICv3/GICv4 BRAŢ
Întrebări și răspunsuri ale
publicului
Chris Shore,
Manager de formare,
BRAŢ

Martin Weidmann,
Inginer principal de aplicații,
BRAŢ
Media OpenSystems .

Vă mulțumim că v-
ați alăturat nouă

Arhiva evenimentelor disponibilă la:

http://ecast.opensystemsmedia.com/

Trimiteți-ne un e-mail la:


jgilmore@opensystemsmedia.com

You might also like