Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell...

of 39/39
Architettura degli ARM by Giuseppe Ranieri
  • date post

    01-May-2015
  • Category

    Documents

  • view

    219
  • download

    0

Embed Size (px)

Transcript of Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell...

  • Slide 1
  • Architettura degli ARM by Giuseppe Ranieri
  • Slide 2
  • Un po di storia dell ARM Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC Micro rilasciato nel 1982 Siccome lAcorn era una azienda non comparabile alle aziende americane cerc di sviluppare un processore che soddisfacesse i requisiti interni dellazienda e che avesse un basso costo di produzione da questo progetto nacque lARM1 usato solo per scopi interni Nel 1987 venne lanciato commercialmente la prima piattaforma ARM Archimedes in versione ARM2 8mhz
  • Slide 3
  • Un po di storia dell ARM La VLSI Technology Inc compagnia partner della Acorn nello sviluppo dellARM convince una fetta di mercato ad utilizzare questo tipo di processori a basso costo 1989 esce lARM3 versione potenziata dell ARM2 integrando 4kbit di cache e un frequenza di clock di 25mhz Nel 1990 nasce la ARM Ltd composta da Acorn VLSI e Apple ..
  • Slide 4
  • Perch lARM cosi diffuso? E uno dei processori con pi licenze di sviluppo esistente E usato in cellulari palmari per le sue performance e bassi consumi Ha estensioni interessanti come Jazelle
  • Slide 5
  • Dati sullARM ARM: 32-bit RISC-processor core (istruzioni a 32-bit ) 37 registri di interi a 32-bit (16 ) Pipeline (ARM7: 3 stadi) Cache (a seconda dellimplementazione) Von Neuman-type bus structure (ARM7), Harvard (ARM9) Tipi di dato 8 / 16 / 32 -bit 7 modi di operare (usr, fiq, irq, svc, abt, sys, und) Struttura semplice -> buon rapporto fra velocit / consumo
  • Slide 6
  • CISC e RISC: breve confronto C.I.S.C. : Complex Instruction Set Computing in voga quando cera bassa disponibilit di memoria facilit nel debugging dellassembler istruzioni di alta complessit basso numero di registri R.I.S.C. : Reduced Instruction Set Computing pi semplice scalabilit della frequenza istruzioni implementate in modo efficiente alto numero di registri maggiore efficienza
  • Slide 7
  • Instructions set supportati Sono due pi varie estensioni: ARM Thumb Altre estensioni (es: Jazelle)
  • Slide 8
  • Thumb Instruction set un sottoinsieme delle istruzioni ARM ricodificato composto da istruzioni di 16 bit(invece di 32) Non contiene alcune istruzioni per gestire le eccezioni
  • Slide 9
  • Tipi di Dato byte halfword.(allineati a 2byte.) word (allineati a 4byte.)
  • Slide 10
  • Registri LARM ha un set di 37 registri 31 per usi generali 6 registri di stato In ogni istante sono visibili sempre 15 registri di tipo generale e uno o 2 registri di stato
  • Slide 11
  • Registri I primi 7 registri (R0-R7) sono unbanked (puntano sempre alle stesse locazioni fisiche) I successivi registri da R8 a R14 sono banked (a seconda della modalit puntano a locazioni fisiche diverse)
  • Slide 12
  • Registri
  • Slide 13
  • Registri generici I primi 4 registri R0 R3 sono normalmente usati per il passaggio di parametri Normalmente registri da R4 a R8, R10 e R11 sono utilizzati per le variabili locali R12 un registro speciale usato dai linker pu essere anche usato per tenere valori temporanei
  • Slide 14
  • Load e Store Esistono 2 set di istruzioni load e store: uno che serve per caricare parole da 32 bit o byte senza segno un altro che serve per caricare mezzeparole da 16 bit con e senza segno o byte
  • Slide 15
  • Load e Store: tipi di indirizzamento In entrambi i tipi di istruzioni il modo di indirizzamento formato da due parti: il Base Register loffset Loffset pu essere di tipo Immediato Registro Registro Scalato
  • Slide 16
  • Load e Store: Offset Loffset precedentemente calcolato pu essere utilizzato in tre modi differenti: Offset Pre-Index Post-Index
  • Slide 17
  • Load e Store: Formato Istruzione
  • Slide 18
  • Load e Store: Esempi
  • Slide 19
  • Registri di stato CPSR (SPSR) current program status register n: 1 se il risultato delloperazione positivo 0 se negativo z: 1 se il risultato 0, 0 altrimenti c: In un addizione 1 se c un unsigned overflow 0 altrimenti In una sottrazione 0 se c unsigned underflow 1 altrimenti nello operazioni che fanno shift settato come lultimo bit shiftato v: 1 se c un signed overflow /signed underflow o altrimenti q: utilizzato per loverflow delle istruzioni DSP
  • Slide 20
  • Registri di stato: Control Bit I, F, T, M[4:0] sono i bit di controllo I e F servono per abilitare disabilitare gli interrupt T serve per passare dal set di istruzioni ARM a set di istruzioni Thumb M[4:0] determinano la modalit di stato del processore
  • Slide 21
  • Modalit del Processore
  • Slide 22
  • Questa la tabella dei set di registri attivi nei vari modalit del processore
  • Slide 23
  • Modalit del Processore Sono le seguenti: User (usr) modalit standard di esecuzione del processo FIC (fic} modalit privilegiata per gestione di flussi dato ad alta velocit IRQ (irq) modalit privilegiata per la gestione degli interrupt Supervisor (svc) modalit privilegiata per l'esecuzione del Sistema Operativo Abort (abt) implementa la memoria virtuale e la protezione della memoria System (sys} modalit privilegiata per l'esecuzione dei task del S.O. und serve per il supporto all emulazione software dei coprocessori
  • Slide 24
  • Cos Jazelle Una tecnologia per lesecuzione del bytecode direttamente via hardware
  • Slide 25
  • Jazelle continua Ha i seguenti caratteristiche: una semplice modifica al codice della JVM e non ne incrementa le dimensioni ha una resa di basso consumo delloltre 87% in meno di una pura emulazione anche rispetto alla JIT aumenta le prestazioni del codice java di oltre 95% implementata via hardware in soli 12mila transistor supportata dall ultima versione del core ARM v11 supporta in hardware 140 istruzioni java le restanti 94 le emula con routine ARM
  • Slide 26
  • Jazelle Architecture
  • Slide 27
  • La modalit Jazelle stato aggiunto un bit al CSPR register il bit J: J 24 1 quando ci si trova in modalit di esecuzione java
  • Slide 28
  • La modalit Jazelle Per poter entrare in modalit Jazelle stata introdotta una nuova istruzione: BXJ. Indica il P.C. java da cui partire o continuare che verr settato nel registro R15 del processore in modalit Jazelle
  • Slide 29
  • Uso dei registri in Modalit Jazelle R0-R3 gestione dello stack delle espressioni java R4 puntatore a this R5 puntatore agli Software Handler R6 Java Stack Pointer R7 Puntatore alle variabili Java R8 Puntatore a Java Constant Pool R9-R11 riservati alla JVM R12,R14 uso libero/ Java return adress R13 Machine stack pointer R15 Java P.C.
  • Slide 30
  • Eccezioni Esistono vari tipi di eccezioni supportate dall ARM (in ordine di priorit): 1. Reset 2. Data Abort 3. FIQ 4. IRQ 5. Prefetch Abort 6. Undefined instruction SWI
  • Slide 31
  • Set di Istruzioni Questo lo schema riassuntivo dei formati delle istruzioni ARM
  • Slide 32
  • Conditional Field Come avete visto prima quasi tutte le istruzioni sono condizionali ovvero iniziano con un campo cond che definisce se quella istruzione verr eseguita o no a seconda dei vari bit di stato del registro CPRS
  • Slide 33
  • Conditional Field Formato di una istruzione condizionale Questo il set di tutti gli opcode di condizione
  • Slide 34
  • Branching Il Branching ovvero il controllo del flusso del programma viene fatto con l ausilio di alcune speciali istruzioni e del campo Cond: B,BL Branch, Branch and Link BLX Branch with Link and Exchange BX Branch and Exchange Instruction Set
  • Slide 35
  • Branching: Esempi
  • Slide 36
  • Branching: chiamata e ritorno
  • Slide 37
  • Branching: if then else
  • Slide 38
  • Branching: Loop
  • Slide 39
  • Bibliografia Jumping with Jazelle (http://www.fawcette.com/javapro/2002_06/magazine/columns/javatogo/default.aspx)http://www.fawcette.com/javapro/2002_06/magazine/columns/javatogo/default.aspx ARM Architecture Reference Manual (http://www.arm.com)http://www.arm.com ARM architecture Jazelle Technology (http://www.arm.com)http://www.arm.com The ARM11 Microarchitecture (http://www.arm.com)http://www.arm.com ARM Architecture Instruction Set Extensions (http://www.convergencepromotions.com/ARM/catalog_04/395.htm)http://www.convergencepromotions.com/ARM/catalog_04/395.htm Procedure Call Standard for the ARM Architecture (http://www.arm.com)http://www.arm.com