Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 ·...

44
S. Salvatori - Microelettronica – maggio 2017 – (1) Microelettronica Architettura ARM prof. Stefano Salvatori A.A. 2016/2017 Eccetto dove diversamente specificato, i contenuti di questo documento sono rilasciati sotto Licenza Creative Commons Attribuzione 3.0 Italia. Corso introduttivo di progettazione di sistemi embedded

Transcript of Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 ·...

Page 1: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (1)

Microelettronica

Architettura

ARM

prof. Stefano Salvatori

A.A. 2016/2017

Eccetto dove diversamente specificato, i contenuti di questo documento sono rilasciati sotto Licenza Creative Commons Attribuzione 3.0 Italia.

Corso introduttivo di progettazione di sistemi embedded

Page 2: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (2)

Sommario

● Premessa

● Architettura ARM

● Programmer's model (ARM7)

● Sistemi di sviluppo

Page 3: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (3)

Sommario

● Premessa

● Architettura ARM

● Programmer's model (ARM7)

● Sistemi di sviluppo

Page 4: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (4)

Breve storia di ARM

anni ’80, Università di Berkeley e Stanford (CA- USA): nasce il concetto di RISC, Reduced Instruction Set Computer. RISC I, sviluppato in un anno da studenti della Berkeley

anni ’80, Acorn Computer Ltd (Cambridge, UK)• forte posizione nel mercato britannico (microcomputer BBC, basato sul 6502). Il punto di forza

del 6502 era la velocità di risposta agli interrupt;

• migliorare la risposta a interrupt, senza trovare soluzione con i uP CISC disponibili;

• la Acorn decide allora di sviluppare un proprio uP pur non avendo la sufficiente forza lavoro e la competenza su progettazione ASIC;

• la soluzione RISC I appare la soluzione vincente:

• la semplice architettura del RISC supera i limiti progettuali;

• la semplicità, inoltre, soddisfa il vincolo di velocità di risposta agli interrupt.1983, Acorn: nasce il processore ARM, Acorn RISC Machine1985: l’ARM diventa il componente centrale della produzione Acorn1990: nasce la ARM Ltd, Advanced RISC Machine, come società autonoma. Vende IP

(fabless) 2008: oltre 1010 uP ARM sono stati consegnati agli oltre 200 partner della ARM Ltd.

Page 5: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (5)

Formati per le istruzioni

>100

Page 6: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (6)

Partner di ARM

http://www.arm.com/community/all_partners.php

>1k!>1k!

Page 7: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (7)

I processori ARM

Page 8: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (8)

I processori ARM

Page 9: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (9)

I processori ARM

Page 10: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (10)

I processori ARM

Page 11: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (11)

I processori ARM

Page 12: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (12)

Mercato per ARM

Page 13: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (13)

Sommario

● Premessa

● Architettura ARM

● Programmer's model (ARM7)

● Sistemi di sviluppo

Page 14: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (14)

Architettura di ARM

Elevato numero di registi• 31 registri interni• registri dedicati al modo

di funzionamento

Elevato numero di registi• 31 registri interni• registri dedicati al modo

di funzionamento

Architettura LOAD/STORE• operazioni sui dati accedono

solo al contenuto di registri

Architettura LOAD/STORE• operazioni sui dati accedono

solo al contenuto di registri

Istruzioni a lunghezza fissa (3-address) su 32 bit• la decodifica è semplificata• uniformità dei campi

Istruzioni a lunghezza fissa (3-address) su 32 bit• la decodifica è semplificata• uniformità dei campi

Modi di indirizzamento semplificati• gli indirizzi di load e store sono

determinati dal contenuto di registri e di campi nell’istruzione stessa

Modi di indirizzamento semplificati• gli indirizzi di load e store sono

determinati dal contenuto di registri e di campi nell’istruzione stessa

Facciamo riferimento principalmente all'ARM7TDMI

Page 15: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (15)

Alcune novità di ARM

Controllo sia di ALU che shifter•ogni istruzione può utilizzare ALU e shifter

Controllo sia di ALU che shifter•ogni istruzione può utilizzare ALU e shifter

Auto-decrement e auto-increment•modi di indirizzamento automaticamente

aggiornati •loop ottimizzati

Auto-decrement e auto-increment•modi di indirizzamento automaticamente

aggiornati •loop ottimizzati

Esecuzione condizionata•ogni istruzione è eseguita in base a una

condizione•massimizzato il throughput

Esecuzione condizionata•ogni istruzione è eseguita in base a una

condizione•massimizzato il throughput

LOAD/STORE multipli•massimizzato il throughput

LOAD/STORE multipli•massimizzato il throughput

Page 16: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (16)

Sommario

● Premessa

● Architettura ARM

● Programmer's model (ARM7)

● Sistemi di sviluppo

Page 17: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (17)

Programmer's model

r13_und

r14_und r14_irq

r13_irq

SPSR_und

r14_abt r14_svc

user modefiq

modesvc

modeabortmode

irqmode

undefinedmode

usable in user mode

system modes only

r13_abt r13_svc

r8_fiq

r9_fiq

r10_fiq

r11_fiq

SPSR_irq SPSR_abt SPSR_svc SPSR_fiqCPSR

r14_fiq

r13_fiq

r12_fiq

r0

r1

r2

r3

r4

r5

r6

r7

r8

r9

r10

r11

r12

r13

r14

r15 (PC)

Page 18: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (18)

Program status register

Page 19: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (19)

Memory organization

Lo stato del processore è determinato oltre che dai registri, anche dalla memoria.

L’ARM indirizza 232 byte l’organizzazione può essere:

• byte (8 bit)

• half-word (16 bit)

• word (32 bit)

L’allineamento è su gruppi di byte:• word 4 byte (A00 = 0 e A01 = 0)

• half-word : 2 byte (A00 = 0, iniziando su indirizzi pari di byte)

half-word4

word16

0123

4567

891011

byte0

byte

12131415

16171819

20212223

byte1byte2

half-word14

byte3

byte6

address

bit 31 bit 0

half-word12

word8

Page 20: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (20)

Architettura di tipo load&store

● Come i RISC, le istruzioni di elaborazione nell’ARM lavorano solo su registri;

● Le uniche operazioni in memoria sono:● copia del contenuto di una locazione in un registro (load);● copia del contenuto di un registro in una locazione di memoria (store)

● Le categorie di istruzioni per l’ARM sono:● Data processing (solo su registri)● Data transfer

● memoria -> registro ; registro -> memoria● scambio : registro <-> memoria

● Control flow● branch● branch with link (subroutine)● trapping (supervisor)

Page 21: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (21)

Modo supervisore

● L’ARM consente di lavorare in modalità protetta di supervisore.● In questo modo si può fare che lo user non abbia privilegi di

supervisore:● si previene che il codice dello user compia operazioni illegali

● Le funzioni di sistema sono accessibili allo user con chiamate specifiche a supervisore (p.es accesso a periferiche hardware)

● A livello user, il programmatore lavora con i dati del proprio programma, mentre chiede al sistema operativo il trattamento dei dati verso l’esterno del programma stesso.

Page 22: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (22)

Tipologia set di istruzioni

● Load/store● 3-address: 2 operandi + risultato● Esecuzione condizionata (ogni istruzione)● Load/store su registri multipli● ALU+shift per la singola istruzione in ciclo di clock● open instruction set : nuove istruzioni, nuovi registri (es.

coprocessore) ● Set compresso a 16 bit in modo Thumb

Page 23: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (23)

I/O ed eccezioni

Durante l'esecuzione normale di un program- ma, il uP esegue le istruzioni una dopo l'altra (fetch-decode-execute)

Le eccezioni sono eventi anomali che prevedono reazioni particolari del processore per gestire la nuova situazione.

Page 24: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (24)

I/O ed eccezioni

NMI

La gestione dell'eccezione prevede l'esecuzione di un codice dedicato, denominato Routine di Servizio dell'Eccezione

Page 25: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (25)

I/O ed eccezioni

● Memory mapped I/O● Periferica: IRQ o FIQ● Eccezioni

• interrupt

• trap

• supervisor call● Manipolazione

• PC r14_exc ; CPSR SPSR_exc

• modo: exc

• PC ← 00..1C16 (dipendente dall’eccezione)

• … gestione …

• ritorno: PC ← r14_exc ; CPSR ← SPSR_exc

Page 26: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (26)

Modi di funzionamento

● USER• esecuzione normale del programma

● FIQ• trasferimenti a elevata velocità

● IRQ• gestione interrupt (general-purpose)

● Supervisor• modo protetto per sistema operativo

● Abort• implementare memoria virtuale e/o protezione

● Undefined• emulazione software di coprocessori hardware

● System• eseguire task privilegiati del sistema operativo

USRUSR

FIQFIQ

IRQIRQ

SVCSVC

ABTABT

UNDUND

SYSSYS

Page 27: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (27)

Registri di uso generale e PC: mod. ARM

exception modes

( 31+6 )x32-bit

Page 28: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (28)

Registri di uso generale e PC: mod. Thumb

exception modes

( 21+6 )x16-bit

Page 29: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (29)

Relazione reg. ARM ↔ Thumb

Page 30: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (30)

Sommario

● Premessa

● Architettura ARM

● Programmer's model (ARM7)

● Sistemi di sviluppo

Page 31: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (31)

Sistemi di sviluppo

ARM o terze parti hanno sviluppato diversi applicativi utili al lavoro di progettazione su ARM

Poiché ARM trova largo impiego in sistemi embedded, spesso ci si riferisce a software di tipo cross-develpment: il sistema di sviluppo “gira” su architetture differenti da quelle stesse del sistema embedded a cui è destinato il codice “finale”

• PC in ambiente Windows

• workstation in ambiente LINUX

Page 32: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (32)

Cross-development toolkit

Struttura di un cross-development tool-chain:

Page 33: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (33)

Cross-development toolkit

assembler

C source

.aof

File sorgente in C o assembly sono compilate in:

• ARM Object Format aof

Page 34: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (34)

Cross-development toolkit

C compiler

asm sourceC libraries

Il compilatore C:

• Conforme allo standard ANSI per C

• ha il supporto di libreriestandard

• può produrre codice assemblyottimizzato (anche Thumb)

assembler

.aof

C source

Page 35: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (35)

Cross-development toolkit

ARM assembler

• produce codice oggetto che può essere legato a ciò che il compilatore C produce

• il codice sorgente assembly è prossimo a quello macchina dell’ARM con istruzioni tradotte principalmente in singole istruzioni ARM (o Thumb)

assembler

Page 36: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (36)

Cross-development toolkit

linker

.aif debug

objectlibraries

Il programma eseguibile è creato dal linker partendo dai file oggetto:• ARM Image Format aif

• riferimenti simbolici tra file oggetto

• estrazione di file oggetto da routine di libreria

• incluse tabelle di debug (anche di tipo simbolico si osserva lo →stato di variabili anziché registri)

• genera file oggetto di libreria per futuri programmi

.aof

Page 37: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (37)

Cross-development toolkit

ARMsd

il file immagine può anche contenere le tabelle per il debug richieste da:

• ARM Symbolic Debugger,

ARMsd

• il sistema deve avere l’interfaccia (seriale, JTAG) utile al debug

• l’eseguibile è caricato nell’hw breakpoints watchpoints

.aif debug

linker

Page 38: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (38)

Cross-development toolkit

ARMulatordevelopment

system model

board

Il debugger ARMsd è in grado di caricare, eseguire e fare il debug di programmi su hardware o su software di simulazione:

• ARM development board

• ARM emulator instruction-accurate cycle-accurate timing-accurate ARMsd

.aif debug

linker

Page 39: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (39)

Schede di sviluppo

Lo sviluppo del progetto prevede l'interfacciamento verso un hardware reale

Debugger

• interfaccia seriale

• JTAG

Page 40: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (40)

Schede di sviluppo

Sezione software: ● IDE (Integrated Development Environment)

● editor● builder● debugger

Page 41: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (41)

Schede di sviluppo

Sistemi di sviluppo:

● entry level● kit di valutazione● development boards● soluzioni di tipo professionale

cost

o

Page 42: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (42)

Schede di sviluppo

Sistemi di sviluppo software:

● proprietario● Keil● Hitex● ...

● libero● gcc - gdb

Page 43: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (43)

Perché ARM?

x86

embedded PC

Page 44: Microelettronicassalvatori.altervista.org/Microelettronica-files/Slide... · 2017-05-15 · Architettura di tipo load&store ... copia del contenuto di un registro in una locazione

S. Salvatori - Microelettronica – maggio 2017 – (44)

Riferimenti

● S. Furber, “ARM, System-on-chip Architecture”, 2nd ed. , cap. 2

● Storia dell’ARM: www.arm.com/aboutarm/milestones.html

● Caratteristiche dell’ARM: ARM7TDMI-S, Technical Reference Manual, rev. r4p3, 2001, www.arm.com

● ARM, Architecture Reference Manual, D. Seal ed., Addison-Wesley, 2001