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

Post on 25-Feb-2019

214 views 0 download

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

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

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

Sommario

● Premessa

● Architettura ARM

● Programmer's model (ARM7)

● Sistemi di sviluppo

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

Sommario

● Premessa

● Architettura ARM

● Programmer's model (ARM7)

● Sistemi di sviluppo

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.

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

Formati per le istruzioni

>100

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

Partner di ARM

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

>1k!>1k!

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

I processori ARM

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

I processori ARM

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

I processori ARM

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

I processori ARM

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

I processori ARM

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

Mercato per ARM

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

Sommario

● Premessa

● Architettura ARM

● Programmer's model (ARM7)

● Sistemi di sviluppo

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

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

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

Sommario

● Premessa

● Architettura ARM

● Programmer's model (ARM7)

● Sistemi di sviluppo

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)

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

Program status register

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

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)

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.

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

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.

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

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

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

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

Registri di uso generale e PC: mod. ARM

exception modes

( 31+6 )x32-bit

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

Registri di uso generale e PC: mod. Thumb

exception modes

( 21+6 )x16-bit

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

Relazione reg. ARM ↔ Thumb

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

Sommario

● Premessa

● Architettura ARM

● Programmer's model (ARM7)

● Sistemi di sviluppo

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

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

Cross-development toolkit

Struttura di un cross-development tool-chain:

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

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

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

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

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

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

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

Schede di sviluppo

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

Debugger

• interfaccia seriale

• JTAG

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

Schede di sviluppo

Sezione software: ● IDE (Integrated Development Environment)

● editor● builder● debugger

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

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

Schede di sviluppo

Sistemi di sviluppo software:

● proprietario● Keil● Hitex● ...

● libero● gcc - gdb

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

Perché ARM?

x86

embedded PC

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