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

39
Architettura degli ARM by Giuseppe Ranieri

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

Page 1: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Architettura degli ARM

by Giuseppe Ranieri

Page 2: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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 l’Acorn era una azienda non comparabile alle aziende americane cercò di sviluppare un processore che soddisfacesse i requisiti interni dell’azienda e che avesse un basso costo di produzione da questo progetto nacque l’ARM1 usato solo per scopi interni

Nel 1987 venne lanciato commercialmente la prima piattaforma ARM Archimedes in versione ARM2 8mhz

Page 3: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

… Un po’ di storia dell’ ARM

La VLSI Technology Inc compagnia partner della Acorn nello sviluppo dell’ARM convince una fetta di mercato ad utilizzare questo tipo di processori a basso costo

1989 esce l’ARM3 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

…..

Page 4: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Perchè l’ARM è 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

Page 5: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Dati sull’ARM

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 dell’implementazione) 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

Page 6: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

CISC e RISC: breve confronto

C.I.S.C. : Complex Instruction Set Computing in voga quando c’era bassa disponibilità di memoria facilità nel debugging dell’assembler 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

Page 7: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Instructions set supportati

Sono due più varie estensioni: ARM Thumb Altre estensioni (es: Jazelle)

Page 8: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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

Page 9: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Tipi di Dato

byte halfword.(allineati a 2byte.) word (allineati a 4byte.)

Page 10: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Registri

L’ARM 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

Page 11: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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)

Page 12: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Registri

Page 13: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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

Page 14: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Load e Store

Esistono 2 set di istruzioni load e store:uno che serve per caricare parole da 32 bit o

byte senza segnoun altro che serve per caricare “mezzeparole”

da 16 bit con e senza segno o byte

Page 15: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Load e Store: tipi di indirizzamento

In entrambi i tipi di istruzioni il modo di indirizzamento è formato da due parti:

il Base Register l’offsetL’offset può essere di tipo Immediato Registro Registro Scalato

Page 16: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Load e Store: Offset

L’offset precedentemente calcolato può essere utilizzato in tre modi differenti:

Offset Pre-Index Post-Index

Page 17: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Load e Store: Formato Istruzione

Page 18: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Load e Store: Esempi

Page 19: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Registri di stato

CPSR (SPSR) current program status register

n: 1 se il risultato dell’operazione è 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 l’ultimo bit shiftato

v: 1 se cè un signed overflow /signed underflow o altrimenti

q: utilizzato per l’overflow delle istruzioni DSP

Page 20: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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

Page 21: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Modalità del Processore

Page 22: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Modalità del Processore

Questa è la tabella dei set di registri attivi nei vari modalità del processore

Page 23: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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

Page 24: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Cos’ è Jazelle

Una tecnologia per l’esecuzione del bytecode direttamente via hardware

Page 25: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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 dell’oltre 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

Page 26: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Jazelle Architecture

Page 27: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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

Page 28: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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

Page 29: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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.

Page 30: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Eccezioni

Esistono vari tipi di eccezioni supportate dall’ ARM (in ordine di priorità):

1. Reset2. Data Abort3. FIQ4. IRQ5. Prefetch Abort6. Undefined instruction

SWI

Page 31: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Set di IstruzioniQuesto è lo schema riassuntivo dei formati delle istruzioni ARM

Page 32: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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

Page 33: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Conditional FieldFormato di una istruzione condizionale

Questo è il set di tutti gliopcode di condizione

Page 34: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

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

Page 35: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Branching: Esempi

Page 36: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Branching: chiamata e ritorno

Page 37: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Branching: if then else

Page 38: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Branching: Loop

Page 39: Architettura degli ARM by Giuseppe Ranieri. Un po di storia dell ARM … Nato da un progetto dell Acorn iniziato nel 1983 dopo il grande successo del BBC.

Bibliografia

Jumping with Jazelle (http://www.fawcette.com/javapro/2002_06/magazine/columns/javatogo/default.aspx)

ARM Architecture Reference Manual (http://www.arm.com)

ARM architecture Jazelle™ Technology (http://www.arm.com)

The ARM11 Microarchitecture (http://www.arm.com)

ARM Architecture Instruction Set Extensions (http://www.convergencepromotions.com/ARM/catalog_04/395.htm)

Procedure Call Standard for the ARM® Architecture (http://www.arm.com)