Sei sulla pagina 1di 19

Presentazione della Prova Finale di Laurea Triennale in

Ingegneria Elettronica

Breve descrizione di un

microprocessore ARM e

Elettronica Breve descrizione di un microprocessore ARM e differenze fra le istruzioni Thumb e ARM Lunedi

differenze fra le istruzioni Thumb e ARM

Lunedi 19 febbraio 2018

Università di Pisa

Scuola di Ingegneria

Docente di riferimento

Prof. Roberto Saletti

Candidato

Valter Selami

2018 Università di Pisa Scuola di Ingegneria Docente di riferimento Prof. Roberto Saletti Candidato Valter Selami
2018 Università di Pisa Scuola di Ingegneria Docente di riferimento Prof. Roberto Saletti Candidato Valter Selami
2018 Università di Pisa Scuola di Ingegneria Docente di riferimento Prof. Roberto Saletti Candidato Valter Selami
2018 Università di Pisa Scuola di Ingegneria Docente di riferimento Prof. Roberto Saletti Candidato Valter Selami
2018 Università di Pisa Scuola di Ingegneria Docente di riferimento Prof. Roberto Saletti Candidato Valter Selami

Sommario 1.Introduzione al microprocessore 2.Il concetto RISC 3.Il funzionamento dell’ARM7TDMI

4.Le istruzioni ARM normali a 32bit

5.Le istruzioni THUMB

6.Conclusioni

concetto RISC 3. Il funzionamento dell’ARM7TDMI 4.Le istruzioni ARM normali a 32bit 5.Le istruzioni THUMB 6.Conclusioni
concetto RISC 3. Il funzionamento dell’ARM7TDMI 4.Le istruzioni ARM normali a 32bit 5.Le istruzioni THUMB 6.Conclusioni
concetto RISC 3. Il funzionamento dell’ARM7TDMI 4.Le istruzioni ARM normali a 32bit 5.Le istruzioni THUMB 6.Conclusioni
concetto RISC 3. Il funzionamento dell’ARM7TDMI 4.Le istruzioni ARM normali a 32bit 5.Le istruzioni THUMB 6.Conclusioni
concetto RISC 3. Il funzionamento dell’ARM7TDMI 4.Le istruzioni ARM normali a 32bit 5.Le istruzioni THUMB 6.Conclusioni
concetto RISC 3. Il funzionamento dell’ARM7TDMI 4.Le istruzioni ARM normali a 32bit 5.Le istruzioni THUMB 6.Conclusioni
concetto RISC 3. Il funzionamento dell’ARM7TDMI 4.Le istruzioni ARM normali a 32bit 5.Le istruzioni THUMB 6.Conclusioni

Cos’è un microprocessore?

E’ un processore che incorpora le funzioni del CPU (Central Processing Unit)in un circuito integrato

del CPU (Central Processing Unit)in un circuito integrato Il compito del CPU è di eseguire le

Il compito del CPU è di eseguire le istruzioni

contenute nella memoria

del CPU è di eseguire le istruzioni contenute nella memoria • Microprocessore ARM • Acronimo di
del CPU è di eseguire le istruzioni contenute nella memoria • Microprocessore ARM • Acronimo di
del CPU è di eseguire le istruzioni contenute nella memoria • Microprocessore ARM • Acronimo di

Microprocessore ARM

Acronimo di Advanced RISC Machine

Il primo prodotto nel

1983

E’ un processore RISC

• Acronimo di Advanced RISC Machine • Il primo prodotto nel 1983 • E’ un processore
Le applicazioni

Le applicazioni

Le applicazioni
Le applicazioni
Le applicazioni
Le applicazioni
Le applicazioni
Le applicazioni
Le applicazioni
Le applicazioni
RISC (Reduced Instrution Set) Reduced non significa che ha meno istruzioni del CISC ma semplicemente
RISC (Reduced Instrution Set) Reduced non significa che ha meno istruzioni del CISC ma semplicemente

RISC (Reduced Instrution Set)

Reduced non significa che ha meno istruzioni del CISC ma semplicemente che richiede meno cicli di clock per istruzione (usualmente uno)

Architettura RISC

Usa un’architettura Load/Store

Istruzioni da lunghezza fissa da 32 bit per i nuovi microprocessori (Istruzioni CISC sono variabili)

32 registri a scopo generale

Organizzazione RISC

Hardware per decodificare le istruzioni (CISC usa grande quantita di microcodice ARM

Permette l’implementazione del pipeline

Le istruzioni di solito impiegono un ciclo di clock per essere eseguiti

di solito impiegono un ciclo di clock per essere eseguiti Avantaggi RISC • Meno piastrina sottile
di solito impiegono un ciclo di clock per essere eseguiti Avantaggi RISC • Meno piastrina sottile

Avantaggi RISC

Meno piastrina sottile

Minor tempo di costruzione

Performance migliore

Revoluzione portata da RISC

Pipelining

Maggiore clock per il sistema

Disavantaggi RISC

Minore densità di codice con i CISC

Non esegue codice x86

ARM ha ereditato dal Berkeley RISC

Architettura load/store

Istruzioni fisse da 32 bit

Format di istruzione a 3 indirizzi

Ha rifiutato

Registri del indirizzo

Branch ritardati

Avere tutte le istruzioni a un

ciclo di clock

ritardati • Avere tutte le istruzioni a un ciclo di clock Registro CPSR ARM ha 16

Registro CPSR

Avere tutte le istruzioni a un ciclo di clock Registro CPSR ARM ha 16 registri in

ARM ha 16 registri in modo normale che sono visibili

Ha 6 modi di funzionamento,i 16 registri sono visibili nel modo user

ARM ha 16 registri in modo normale che sono visibili Ha 6 modi di funzionamento,i 16
Arm è impostato di default in little endian ma può funzionare anche in big endian
Arm è impostato di default in little endian ma può funzionare anche in big endian
Arm è impostato di default in little endian ma può funzionare anche in big endian
Arm è impostato di default in little endian ma può funzionare anche in big endian

Arm è impostato di default in little endian ma può funzionare anche in big endian

I modi di funzionamento dell’ARM

Arm è impostato di default in little endian ma può funzionare anche in big endian I
Arm è impostato di default in little endian ma può funzionare anche in big endian I
Arm è impostato di default in little endian ma può funzionare anche in big endian I
Arm è impostato di default in little endian ma può funzionare anche in big endian I

I componenti principali sono

Il banco dei registri che salva lo stato del processore

Il barrel shifter che fa lo shifting dei registri e degl’operandi

ALU(Arithmetic Logic Unit) che svolge le operazioni aritmetiche e logiche richieste dal set di istruzione

Il registro degl’indirizzi e l’incrementatore che seleziona e genera indirizzi sequenziali quando serve

I register di informazione che contengono l’informazione

proveniente da e alla memoria

Il decoder di istruzione e l’associata logica di controllo

Il decoder di istruzione e l’associata logica di controllo 2)Decode decodificato e i segnali del datapath

2)Decode

decodificato e i segnali del datapath

vengono preparati per il prossimo ciclo

segnali del datapath vengono preparati per il prossimo ciclo L’istruzione viene 3)Esecuzione Viene letto il banco

L’istruzione viene

vengono preparati per il prossimo ciclo L’istruzione viene 3)Esecuzione Viene letto il banco dei registri,viene

3)Esecuzione Viene letto

il banco dei registri,viene

eseguito l’struzione nell’ALU e poi il valore viene scritto nei

registri

Impiega una pipeline a 3 stadi

1)Fetch

prelevato dalla memoria e inserito

nel pipeline dell’istruzione

una pipeline a 3 stadi 1) Fetch prelevato dalla memoria e inserito nel pipeline dell’istruzione L’istruzione

L’istruzione è stato

una pipeline a 3 stadi 1) Fetch prelevato dalla memoria e inserito nel pipeline dell’istruzione L’istruzione

L’ARM gestisce le eccezioni nel seguente modo:

Cambia il modo di operare dipendentemente dall’eccezione che si è creato

Salva l’indirizzo dell’istruzione che si sarebbe eseguito dopo nel r14 del nuovo modo

Salva l’indirizzo della vecchia CPSR nel SPSR dell’eccezione

Disabilità gli IRQ(Interruzione normale ) attivando il bit 7-mo e poi se le interruzioni sono FIQ (Interruzione

veloce) li disabilità attivando il bit 6-to

Forza il PC ad eseguire il vettore dell’istruzione descritto nella tabella

il bit 6-to • Forza il PC ad eseguire il vettore dell’istruzione descritto nella tabella Priorità
il bit 6-to • Forza il PC ad eseguire il vettore dell’istruzione descritto nella tabella Priorità
il bit 6-to • Forza il PC ad eseguire il vettore dell’istruzione descritto nella tabella Priorità

Priorità delle eccezioni

il bit 6-to • Forza il PC ad eseguire il vettore dell’istruzione descritto nella tabella Priorità

Ci sono 3 tipi principali di istruzioni

1)Istruzioni di elaborazione di dati

Tutti gli operandi sono registri di lunghezza da 32 bit oppure costanti

Il risultato(se c’è uno è lungo 32 bit ed è messo in un register

Tutti i registri sono specificati nell’istruzione:Per questo tipo di istruzione l’ARM usa il formato da 3 indirizzi

Rientrano in questo gruppo

Operazioni aritmetiche

Operazioni bit-wise

Movimenti di registri

Operazioni di comparazione

Operazioni di shifting

ADD r3,r5,r6; Esempio
ADD r3,r5,r6;
Esempio
bit-wise • Movimenti di registri • Operazioni di comparazione • Operazioni di shifting ADD r3,r5,r6; Esempio
2)Istruzioni di data transfer Transfer di dati dai registri alla memoria • Transfer di data
2)Istruzioni di data transfer Transfer di dati dai registri alla memoria • Transfer di data
2)Istruzioni di data transfer Transfer di dati dai registri alla memoria • Transfer di data

2)Istruzioni di data transfer

Transfer di dati dai registri alla memoria

Transfer di data dai registri alla memoria

Multipli load and store

Sostituzione del valore in un registro con un

load and store • Sostituzione del valore in un registro con un valore in memoria LDR

valore in memoria

load and store • Sostituzione del valore in un registro con un valore in memoria LDR

LDR r1,UARTADD

STRB r1,[r1,]

3)Istruzioni di branch

Branch a un istruzione qualunque

Branch condizionali

Esecuzione condizionale di un subroutine

Branch and link register

condizionale di un subroutine • Branch and link register Branch and Branch With Link MOV r0,#10

Branch and Branch

With Link

MOV r0,#10 ;inserisci 10

LOOP … SUBS r0,#1 ;decrementa

BNE LOOP ;ritorna al loop 10

volte

and Branch With Link MOV r0,#10 ;inserisci 10 LOOP … SUBS r0,#1 ;decrementa BNE LOOP ;ritorna
and Branch With Link MOV r0,#10 ;inserisci 10 LOOP … SUBS r0,#1 ;decrementa BNE LOOP ;ritorna
and Branch With Link MOV r0,#10 ;inserisci 10 LOOP … SUBS r0,#1 ;decrementa BNE LOOP ;ritorna
and Branch With Link MOV r0,#10 ;inserisci 10 LOOP … SUBS r0,#1 ;decrementa BNE LOOP ;ritorna
and Branch With Link MOV r0,#10 ;inserisci 10 LOOP … SUBS r0,#1 ;decrementa BNE LOOP ;ritorna
L’istruzione Breakpoint aiuta a fare il debugging Sintassi BKPT
L’istruzione Breakpoint aiuta a fare il debugging Sintassi BKPT
L’istruzione Breakpoint aiuta a fare il debugging Sintassi BKPT
L’istruzione Breakpoint aiuta a fare il debugging Sintassi BKPT
L’istruzione Breakpoint aiuta a fare il debugging Sintassi BKPT
L’istruzione Breakpoint aiuta a fare il debugging Sintassi BKPT
L’istruzione Breakpoint aiuta a fare il debugging Sintassi BKPT
L’istruzione Breakpoint aiuta a fare il debugging Sintassi BKPT
L’istruzione Breakpoint aiuta a fare il debugging Sintassi BKPT

L’istruzione Breakpoint aiuta a fare il debugging

Sintassi BKPT

L’istruzione Breakpoint aiuta a fare il debugging Sintassi BKPT

Istruzioni thumb

Sono un subset delle istruzioni ARM

Istruzioni thumb Sono un subset delle istruzioni ARM • Sono lunghi 16 bit Hanno accesso totale

Sono lunghi 16 bit

Hanno accesso totale ai registri Lo(r0-r8)

r13 viene usato come stack pointer

r14 come il link register

r15 viene usato come stack pointer

Hanno accesso limitato ai registri Hi

La maggiorità delle istruzioni thumb vengono eseguite incondizionalmente Hanno un format a due indirizzi Le eccezioni thumb vengono eseguiti allo stesso modo

vengono eseguite incondizionalmente Hanno un format a due indirizzi Le eccezioni thumb vengono eseguiti allo stesso
Thumb usa più istruzioni che il set normale Per il branch con link,usa due istruzioni
Thumb usa più istruzioni che il set normale
Per il branch con link,usa due istruzioni visto
che l’offset sarebbe impossibile da fare con
soli 16 bit
Thumb data processing
Nel set thumb le operazioni di ALU e quelli di shift
vengono separati
Le istruzioni data processing che operano con i registri
LO modificano la CPSR

Le istruzioni data processing che operano sui registri HI non modificano la CPSR tranne la CMP che cambia solo i bit di condizione

la CPSR tranne la CMP che cambia solo i bit di condizione Istruzioni data transfer di
la CPSR tranne la CMP che cambia solo i bit di condizione Istruzioni data transfer di

Istruzioni data transfer di thumb

Hanno la stessa sintassi,quelloche cambia ovviamente è la grandezza del offset nel caso dell’istruzioni thumb

Le istruzioni di trasferimento di registri multipli di data

Visto che il codice adesso è più stretto dobbiamo usare un’istruzione per uscire e uno per entrare

dobbiamo usare un’istruzione per uscire e uno per entrare Invece l’istruzione breakpoint non subisce nessun

Invece l’istruzione breakpoint non subisce nessun cambiamento

BKPT

usare un’istruzione per uscire e uno per entrare Invece l’istruzione breakpoint non subisce nessun cambiamento BKPT
usare un’istruzione per uscire e uno per entrare Invece l’istruzione breakpoint non subisce nessun cambiamento BKPT

Le istruzioni thumb usano normalmente 40% in più istruzioni che le istruzioni ARM normali

Anche se le istruzioni thumb prendono la meta dello spazio in memoria,per eseguire un programma con istruzioni thumb serve un numero maggiore di istruzioni.Questo fa si che non si abbia un guadagno del 50% dello spazio in memoria.

In una memoria a 32 bit le istruzioni ARM vengono elaborate 40% più velocemente che quelle

Thumb,invece in quella a 16 but,le istruzioni Thumb sono 45% più veloci

Le istruzioni Thumb usano 30% in meno di potenza che le istruzioni ARM normali

Li’ dove le prestazioni e la velocità è importante,è un avantaggio usare le istruzioni thumb,invece
Li’ dove le prestazioni e la velocità è importante,è un
avantaggio usare le istruzioni thumb,invece quando il
costo e la consummazione è importante sarebbe più
opportuno usare le istruzioni
le istruzioni thumb,invece quando il costo e la consummazione è importante sarebbe più opportuno usare le

Breve descrizione di un microprocessore ARM e differenze fra le istruzioni Thumb e ARM

Grazie dell’attenzione

fra le istruzioni Thumb e ARM Grazie dell’attenzione Univ ersità di Pisa Scuola di Ingegneria Docente

Univ ersità di Pisa Scuola di Ingegneria

Docente di riferimento

Prof. Roberto Saletti

Candidato

Valter Selami

Univ ersità di Pisa Scuola di Ingegneria Docente di riferimento Prof. Roberto Saletti Candidato Valter Selami
Univ ersità di Pisa Scuola di Ingegneria Docente di riferimento Prof. Roberto Saletti Candidato Valter Selami
Univ ersità di Pisa Scuola di Ingegneria Docente di riferimento Prof. Roberto Saletti Candidato Valter Selami
Univ ersità di Pisa Scuola di Ingegneria Docente di riferimento Prof. Roberto Saletti Candidato Valter Selami
Univ ersità di Pisa Scuola di Ingegneria Docente di riferimento Prof. Roberto Saletti Candidato Valter Selami