ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori

Pagina creata da Laura Mauri
 
CONTINUA A LEGGERE
ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori
Corso introduttivo di progettazione di sistemi embedded

                                                   Architettura

                                                                 ARM

                                             prof. Stefano Salvatori

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

                                                                                                                                     S. Salvatori – (1)
ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori
Sommario

 ●
     Premessa
 ●
     Architettura ARM
 ●
     Programmer's model (ARM7)
 ●
     Sistemi di sviluppo

                                 S. Salvatori – (2)
ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori
Sommario

 ●
     Premessa
 ●
     Architettura ARM
 ●
     Programmer's model (ARM7)
 ●
     Sistemi di sviluppo

                                 S. Salvatori – (3)
ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori
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 apparve 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 Machine
1985: l’ARM diventa il componente centrale della produzione Acorn
1990: 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 – (4)
ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori
Formati per le istruzioni

      >100/s

                            S. Salvatori – (5)
ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori
Partner di ARM

                                                                   >1k!
                                                                   >1k!

           http://www.arm.com/community/all_partners.php
                                                           S. Salvatori – (6)
ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori
I processori ARM

                   S. Salvatori – (7)
ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori
Mercato per ARM

                  S. Salvatori – (8)
ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori
I processori ARM

                   S. Salvatori – (9)
ARM Architettura Corso introduttivo di progettazione di sistemi embedded - ssalvatori
Sommario

 ●
     Premessa
 ●
     Architettura ARM
 ●
     Programmer's model (ARM7)
 ●
     Sistemi di sviluppo

                                 S. Salvatori – (10)
Architettura di ARM
Elevato
  Elevatonumero
          numerodi
                diregisti
                   registi
  ••31
     31registri
         registriinterni
                  interni
  ••registri
     registridedicati
              dedicatialalmodo
                          modo
    di funzionamento
    di funzionamento                                    Facciamo riferimento
           Architettura
             ArchitetturaLOAD/STORE
                          LOAD/STORE
                                                        principalmente
              ••operazioni
                 operazionisui
                            suidati
                                dati
                                                        all'ARM7TDMI
                accedono solo al
                 accedono solo al
                contenuto
                 contenutodi
                           diregistri
                              registri
                        Istruzioni
                           Istruzioniaalunghezza
                                        lunghezzafissa
                                                  fissa
                          (3-address)
                           (3-address)susu32
                                           32bit
                                              bit
                           ••laladecodifica
                                  decodificaèèsemplificata
                                               semplificata
                           ••uniformità
                               uniformitàdei
                                           deicampi
                                               campi
                                 Modi
                                   Modidi
                                        diindirizzamento
                                           indirizzamentosemplificati
                                                          semplificati
                                       ••gli
                                          gliindirizzi
                                              indirizzidi
                                                        diload
                                                           loadeestore
                                                                  storesono
                                                                        sono
                                         determinati dal contenuto di registri
                                          determinati dal contenuto di registri
                                         eedi
                                            dicampi
                                               campinell’istruzione
                                                     nell’istruzionestessa
                                                                     stessa

                                                                       S. Salvatori – (11)
Alcune novità di ARM

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

      Auto-decrement
       Auto-decrement ee auto-increment
                              auto-increment
        ••modi
           modi di
                 di indirizzamento
                     indirizzamento automaticamente
                                     automaticamente
          aggiornati
          aggiornati
        ••loop
           loop ottimizzati
                ottimizzati

               Esecuzione
                Esecuzione condizionata
                               condizionata
                 ••ogni
                    ogni istruzione
                          istruzione èè eseguita
                                        eseguita in
                                                  in base
                                                     base aa una
                                                             una
                   condizione
                   condizione
                 ••massimizzato
                    massimizzato ilil throughput
                                       throughput

                              LOAD/STORE
                               LOAD/STORE multipli
                                            multipli
                                ••massimizzato
                                  massimizzato ilil throughput
                                                     throughput

                                                               S. Salvatori – (12)
Sommario

 ●
     Premessa
 ●
     Architettura ARM
 ●
     Programmer's model (ARM7)
 ●
     Sistemi di sviluppo

                                 S. Salvatori – (13)
Programmer's model
       r0
                                                         usable in user mode
       r1
       r2
       r3                                                system modes only
       r4
       r5
       r6
       r7
                      r8_fiq
       r8
       r9              r9_fiq
                     r10_fiq
        r10
      r1
       1             r1 1_fiq
                     r12_fiq                              r13_irq     r13_und
       r12                                    r13_abt
                     r13_fiq      r13_svc                 r14_irq     r14_und
       r13                        r14_svc     r14_abt
       r14           r14_fiq
        r15 (PC)

                                                                    SPSR_und
                                            SPSR_abt    SPSR_irq
            CPSR   SPSR_fiq     SPSR_svc

                    fiq          svc        abort        irq        undefined
       user mode
                   mode          mode       mode        mode          mode

                                                                         S. Salvatori – (14)
Program status register

                          S. Salvatori – (15)
Memory organization
 Lo stato del processore è determinato oltre
  che dai registri, anche dalla memoria.
 L’ARM indirizza 232 byte                     bit 31             bit 0
 l’organizzazione può essere:                23     22      21       20

   • byte (8 bit)                                19    18    17       16

   • half-word (16 bit)                          15
                                                        word16
                                                       14    13       12
   • word (32 bit)                              half-word14 half-word12
                                                 11    10    9        8
                                                        word8
                                                  7     6    5        4
                                                      byte6 half-word4
 L’allineamento è su gruppi di byte:             3     2    1        0          byte
                                                byte3 byte2 byte1 byte0          address
   • word 4 byte (A00 = 0 e A01 = 0)
   • half-word : 2 byte (A00 = 0, iniziando
      su indirizzi pari di byte)

                                                                      S. Salvatori – (16)
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 – (17)
Modo supervisore

●
    L’ARM consente di lavorare in modalità protetta di
    supervisore.
●
    In questo modo si può fare in modo che l'utente non abbia
    privilegi di supervisore:
     ●
         previene che il codice dell'utente possa compiere operazioni
         illegali
●
    Le funzioni di sistema sono accessibili all'utente 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 – (18)
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 un ciclo di clock
●
    open instruction set : nuove istruzioni, nuovi registri (es.
    coprocessore)
●
    Set compresso a 16 bit in modo Thumb

                                                         S. Salvatori – (19)
Note su

I/O ed eccezioni

                   S. Salvatori – (20)
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 – (21)
I/O ed eccezioni

                                   NMI

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

                                                                  S. Salvatori – (22)
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..1C (dipendente dall’eccezione)
                   16

     • … gestione …
     • ritorno: PC ← r14_exc ; CPSR ← SPSR_exc

                                                 S. Salvatori – (23)
Modi di funzionamento
            USER
USR
        ●

USR         • esecuzione normale del programma
            FIQ
FIQ
        ●

FIQ         • trasferimenti a elevata velocità
            IRQ
IRQ
        ●

 IRQ        • gestione interrupt (general-purpose)
        ●
            Supervisor
SVC
SVC         • modo protetto per sistema operativo
        ●
            Abort
ABT
ABT         • implementare memoria virtuale e/o protezione
        ●
            Undefined
UND
UND         • emulazione software di coprocessori hardware
        ●
            System
SYS
SYS         • eseguire task privilegiati del sistema operativo
                                                            S. Salvatori – (24)
Registri di uso generale e PC: mod. ARM
                exception modes

                                     ( 31+6 )x32-bit

                                          circa 1 kb

                                           S. Salvatori – (25)
Registri di uso generale e PC: mod. Thumb
              exception modes

                                    ( 21+6 )x16-bit
                                            S. Salvatori – (26)
Relazione reg. ARM ↔ Thumb

                             S. Salvatori – (27)
Sommario

 ●
     Premessa
 ●
     Architettura ARM
 ●
     Programmer's model (ARM7)
 ●
     Sistemi di sviluppo

                                 S. Salvatori – (28)
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 – (29)
Cross-development toolkit
 Struttura di un cross-development tool-
  chain:

                                            S. Salvatori – (30)
Schede di sviluppo

 Lo sviluppo del progetto prevede
  l'interfacciamento verso un hardware reale
 Debugger
  • interfaccia seriale
  • JTAG

                                               S. Salvatori – (31)
Schede di sviluppo

 Sezione software:
 ●
     IDE (Integrated Development Environment)
     ●
       editor
     ●
       builder
     ●
       debugger

                                                S. Salvatori – (32)
Schede di sviluppo

 Sistemi di sviluppo:

          ●
              entry level
          ●
              kit di valutazione
  costo

          ●
              development boards
          ●
              soluzioni di tipo professionale

                                                S. Salvatori – (33)
Schede di sviluppo
 Sistemi di sviluppo software:

 ●
     proprietario
     ●
       Keil
     ●
       Hitex
     ●
       ...

 ●
     libero
 ●
     gcc - gdb

                                  S. Salvatori – (34)
Perché ARM?

              oggi

                          x86

   embedded          PC

                           S. Salvatori – (35)
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

                                                          S. Salvatori – (36)
Prossimamente
●
    Organizzazione hardware del
    processore ARM

                                   Domande

                         stefano.salvatori@uniroma3.it
                                               S. Salvatori – (37)
I processori ARM

                   S. Salvatori – (38)
I processori ARM

                   S. Salvatori – (39)
Cross-development toolkit
 File sorgente in C o assembly sono compilate in:
  • ARM Object Format aof
                               C source

                                                          assembler

                                               .aof

                                                      S. Salvatori – (40)
Cross-development toolkit
 Il compilatore C:
  • Conforme allo standard ANSI per C
  • ha il supporto di librerie      C source     C libraries              asm source
    standard
  • può produrre codice assembly           C compiler                     assembler
    ottimizzato (anche Thumb)
                                                               .aof

                                                                      S. Salvatori – (41)
Cross-development toolkit

 ARM assembler
  • produce codice oggetto che
    può essere legato a ciò che il       assembler
    compilatore C produce
  • il codice sorgente assembly è
    prossimo a quello macchina
    dell’ARM con istruzioni
    tradotte principalmente in
    singole istruzioni ARM (o
    Thumb)

                                     S. Salvatori – (42)
Cross-development toolkit
 Il programma eseguibile è
  creato dal linker partendo
  dai file oggetto:
  • ARM Image Format aif
  • riferimenti simbolici tra file
    oggetto
                                               .aof
  • estrazione di file oggetto da                               object
    routine di libreria                                       libraries
                                      linker
  • incluse tabelle di debug                   .aif   debug
    (anche di tipo simbolico → si
    osserva lo stato di variabili
    anziché registri)
  • genera file oggetto di libreria
    per futuri programmi

                                                        S. Salvatori – (43)
Cross-development toolkit

 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)     linker
    utile al debug                                .aif   debug

  • l’eseguibile è caricato nell’hw
      breakpoints                             ARMsd
      watchpoints

                                                           S. Salvatori – (44)
Cross-development toolkit
 Il debugger ARMsd è in
  grado di caricare,
  eseguire e fare il debug di
  programmi su hardware o
  su software di
  simulazione:
   • ARM development board                linker

   • ARM emulator                                     .aif   debug

       instruction-accurate
       cycle-accurate                             ARMsd
                                system model
       timing-accurate
                                                               development
                                     ARMulator                    board

                                                               S. Salvatori – (45)
Puoi anche leggere