Architettura ARM - STLAB · 5 Letteratura Su ARM esiste un’ampia letteratura Su wikipedia si...

of 74/74
1 Architettura ARM (Advanced Risc Machines) G. Bucci (2011) Rev 04/06/2013
  • date post

    08-Apr-2018
  • Category

    Documents

  • view

    215
  • download

    1

Embed Size (px)

Transcript of Architettura ARM - STLAB · 5 Letteratura Su ARM esiste un’ampia letteratura Su wikipedia si...

  • 1

    Architettura ARM (Advanced Risc Machines)

    G. Bucci(2011)

    Rev 04/06/2013

  • 2

    ARM

    E una architettura RISC a 32 bit

    Estremamente semplice, basso consumo

    Licenziata a una lunga lista di produttori: ARM Ltd non produce direttamente, vende licenze, ovvero IP (Intellectual Properties)

    Usata praticamente in tutti i telefonini intelligenti e su altri apparati come iPad

    Nel suo mercato di elezione non ha concorrenti:

    Primi 2008: superato il traguardo dei 10 G processori prodotti

    Primavera 2011: ormai superato il traguardo dei 20 G prodotti

    Primavera 2011: oltre 10 M di pezzi al giorno

  • 3

    Per dare unidea

    Quella sotto pubblicit da un sito ARM (giugno 2011)

  • 4

    Siamo circondati !

  • 5

    Letteratura

    Su ARM esiste unampia letteratura

    Su wikipedia si trova la storia e la lista dei modelli sviluppati nel corso del tempo, con cenni circa le loro caratteristiche

    Sul sito della societ http://www.arm.com/ si trova una consistente documentazione, compresi i manuali dei vari modelli, note applicative, documentazione on-line interattiva

    Allindirizzo http://www.cse.unsw.edu.au/~cs9244/06/seminars/08- leonidr.pdf si trova un articolo che descrive in modo sintetico e leggibile larchitettura ARM

    http://www.arm.com/http://www.cse.unsw.edu.au/~cs9244/06/seminars/08-leonidr.pdfhttp://www.cse.unsw.edu.au/~cs9244/06/seminars/08-leonidr.pdf

  • 6

    Storia

    Acorn Computers stata fondata nel 1978 a Cambridge (UK).

    Sollecitata da un progetto BBC ha prodotto un computer (chiamato BBC) pensato a fini educativi; in esso veniva usata la CPU 6502 la stessa del primo Apple; non aveva HD

    Agli inizi degli anni 80 decise passare a CPU pi potenti

    Scartate CPU di mercato venne lanciato un progetto per la produzione di una CPU RISC ispirandosi fortemente al progetto RISC 1 dellUniversit di Berkley (sviluppato nel contesto di un corso universitario)

    Nellottobre 1983 venne lanciato il progetto Acorn RISC Machine; il primo campione arriv ad aprile 1085

  • 7

    Apple sceglie ARM

    Nel 1990 Apple sceglie ARM per produrre il suo PDA (denominato Netwon)

    ARM alla versione v2

    Tra Apple, Acorn e VLSI Technology viene progettata una nuova versione (la v3) che esce nel 1992

    Il dispositivo usato da Apple si chiamava ARM610, aveva una cache integrata e forniva 16 MIPS a 20 MHz con solo 30.000 transistori

    Attualmente la societ si chiama ARM Ltd (Advanced Risc Machines) ed compartecipata dalle tre societ

  • 8

    Famiglie, versione, dispositivo

    La denominazione un po confusa

    Seguono altre famiglie e versioni

    Attualmente la versione la v7

  • 9

    Cortex

    Si chiama cos la famiglia pi recente

    Vastissimo numero di produttori/utilizzatori

    A4 (iPad) di Apple un Cortex

    Basata sulla versione V7 dellarchitettura

    Tre profili:

    "Application" profile: Cortex-A series

    "Real-time" profile: Cortex-R series

    "Microcontroller" profile: Cortex-M series

  • 10

    Lo stato attuale

  • 11

    Licenziatari Presenti (e/o passati)

    Alcatel-Lucent, Apple Inc., Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Freescale, Intel (through DEC), LG, Marvell Technology Group, Microsoft, NEC, Nuvoton, Nvidia, NXP (previously Philips), Oki, ON Semiconductor, Qualcomm, Samsung, Sharp, STMicroelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamaha and ZiiLABS.

    Le architetture correnti sono ARM7, ARM9, ARM11 e Cortex.

    Notable ARM processors developed by licensees include DEC StrongARM, Freescale i.MX, Marvell (formerly Intel) XScale, Nvidia Tegra, ST-Ericsson Nomadik, Qualcomm Snapdragon, the Texas Instruments OMAP product line, the Samsung Hummingbird and the Apple A4.

    http://en.wikipedia.org/wiki/Alcatel-Lucenthttp://en.wikipedia.org/wiki/Apple_Inc.http://en.wikipedia.org/wiki/Atmelhttp://en.wikipedia.org/wiki/Broadcomhttp://en.wikipedia.org/wiki/Cirrus_Logichttp://en.wikipedia.org/wiki/Digital_Equipment_Corporationhttp://en.wikipedia.org/wiki/Digital_Equipment_Corporationhttp://en.wikipedia.org/wiki/Freescalehttp://en.wikipedia.org/wiki/Freescalehttp://en.wikipedia.org/wiki/Intelhttp://en.wikipedia.org/wiki/Apple_A4

  • 12

    IP core

    Intellectual Property Core: una parte di logica riusabile, una standard cell o un chip layout di cui qualcuno possiede la propriet intellettuale

    Pu essere data in licenza per essere usata come componente di base attorno al quale viene costruito uno specifico ASIC / FPGA

    Tipicamente: un produttore impiega un ARM core attorno al quale viene progettata la logica addizionale per un dispositivo (anche una CPU) , la cui realizzazione viene fatta in casa o affidata a una semiconductor farm

  • 13

    Licenze

    Perpetua

    Diritto di usare la tecnologia ARM (progetto e produzione) indefinitamente

    A termine

    Diritto di progettare e sviluppare su un periodo di tempo, diritto a tempo indefinito alla produzione

    A prodotto

    Diritto a progettare e sviluppare su un periodo di tempo un dato prodotto, diritto a tempo indefinito alla produzione

  • 14

    Altri servizi/strumenti offerti da ARM

    Possibilit per chi non possiede la fonderia di appoggiarsi su foundries approvate da ARM

    Possibilit di valutare soluzioni ARM, sviluppare prototipi prima di passare alla licenza

    C anche un programma universitario che consente di avere accesso a tool e kit di sviluppo

    Standard cells

    Fast development

  • 15

    Architettura ARM

  • 16

    La caratteristica fondamentale: il basso consumo

    Per dare unidea:

    Il modello PXA255 XScale a 400MHz aveva prestazioni comparabili con quelle di un Pentium 2 a 300MHz, ma con un consumo di energia elettrica 50 volte inferiore

    Xscale una famiglia di processori sviluppati da Intel

    Si basa sulla versione architetturale V5

    Incorpora una pipeline a 7 stadi

    (non pi Intel)

  • 17

    Caratteristiche

    Buon numero di registri di CPU (in tutto 37) a 32 bit

    Solo operazioni di Load e Store verso la memoria

    indirizzamento determinato esclusivamente dal contenuto dei registri e da eventuali campi nellistruzione;

    Operazioni di manipolazione dei dati esclusivamente tra registri di CPU

    Istruzioni su 32 bit

    formati istruzioni con campi in posizione e di misura fissi, per facilitare la decodifica; tutte le

    modalit indirizzamento autoincrement e autodecrement

    esecuzione condizionata di quasi tutte le istruzioni del repertorio

    controllo sia della ALU sia degli shifter

  • 18

    caratteristiche

    Previsone impiego coprocessori

    Allo scopo di poter estendere larchitettura ARM (repertorio di istruzioni) per specifici campio applicativi (ad esempio DSP, Digital Signal Processing).

    Modalit di funzionamento Thumb

    Una sorta di superstato

    Le istruzioni Thumb sono codificate su 16 bit (aumenta la densit del codice)

    In certe situazioni (p.e., risposta alle eccezioni) in cui, se la macchina in modo Thumb, essa passa automaticamente al modo ARM

    Minor numero di registri

    Col Thumb2 le istruzioni ARM e Thumb sono liberamente mescolabili

    Estensione Jazelle

    Esecuzione diretta del byte code dei programmi java.

    Interfaccia di debug

    Collegamento diretto alla CPU di un apparato di debugging

    Altro. (multimedia, SIMD .)

  • 19

    Stati del processore

  • 20

    Modello di programmazione

  • 21

    Registri

    16 registri da 32 bit denominati R0-R15

    R0-R12 sono registri di uso generale;

    R13 viene usualmente usato come Stack Pointer (SP), ma larchitettura non forza tale impiego

    R14 ha la funzione (architetturale) di subroutine Link Register (LR) ; ci viene salvato lindirizzo di ritorno (ovvero il contenuto del registro R15 ) quando viene eseguita listruzione BL (Branch and Link)

    R15 ha la funzione architetturale di Program Counter;

    In tre registri R13, R14, R15 possono comunque essere manipolati come registri di uso generale.

    Un registro di stato CPSR (Current Program Status Register )

    20 registri sono duplicati (banked) e sono specifici dei modi corrispondenti

  • 22

    PC un registro come un altro

    Listruzione BL (Branch and Link) serve come chiamata di subroutine

    Salva lindirizzo di ritorno in r14 (lr)

    Il ritorno dalla routine si fa copiando r14 in r15:

    MOV r15, r14

    E pi intuitivo scrivere MOV pc,lr

    Simboli com pc, lr o sp non sono riconosciuti direttamente dallassemblatore, occorre definirli con una direttiva (pc RN r15)

  • 23

    Sottoprogramma

    R13 usato come stack pointer

    R14 usabile se prima si salva il suo contenuto per il ritorno

    Va preventivamente salvato se il sottoprogramma ne chiama un altro (la chiamata cambia il contenuto di R14)

    R15 usato solo come PC

    R0-R12 usati variamente per passare parametri e per le variabili locali (se non bastano usare lo stack)

    Al ritorno lo stack deve essere comera prima della chiamata

  • 25

    Current Program Status Register (CPSR)

    4 condizioni (Negative, Carry, Zero e oVerow);

    T distingue tra ARM e Thumb

    I e F abilitano le interruzioni normali (I) and veloci (F)

    M4-M0 identificano il modo di funzionamento.

  • 26

    Eccezioni

    Nella terminologia ARM sono chiamate cos le interruzioni esterne, le eccezioni classiche e le

    interruzioni software

  • 27

    Eccezioni

  • 28

    Eccezioni

    Risposta alleccezione di modo m

    CPSR viene copiato in SPSR_m

    CPSR viene modificato a riflettere il nuovo modo (se del caso I e F vengono disasseriti)

    PC (r15) viene salvato in LR_m (r14_m)

    PC viene modificato con il numero corrispondente allindirizzo del vettore di interruzione

    I vettori di interruzione stanno nella parte bassa

    Un vettore deve contenere listruzione di salto allhandler delleccezione

  • 29

    Vettori di interruzione

  • 30

    Vettori di interruzione

  • 31

    Eccezione di Reset

    Ha leffetto di

    Passare al modo Supervisore

    Disabilitare le interruzioni normali e veloci (portando a 1 i due bit I e F)

    Azzerare il bit di stato T (riporta allo stato ARM qualora la CPU fosse in stato Thumb)

    Forzare lesecuzione dellistruzione alla posizione 0x00

    Dopo il Reset il contenuto dei registri indeterminato

    Non deve essere effettuato il ritorno in quanto da considerarsi come lavvio della macchina

  • 32

    Eccezione software

  • 33

    Software Interrupt (SWI)

    Porta la macchina in stato Supervisor

    Il formato dellistruzione prevede un campo di 24 bit in cui scritto un numero (della funzione da chiamare)

    E responsabilit dellhandler estrarre il numero e saltare alla funzione appropriata. Ecco il modo

    LDR r0, [lr, #-4] ;r0

  • 35

    Ritorno dalle eccezioni

    Per tornare al programma interrotto, lexception handler

    Ripristina CPSR da SPSR_m (attenzione: riabilita !!!)

    Ripristina PC da LR_m

    Attenzione: allatto delleccezione in LR_m viene salvato un valore di PC che non sempre lo stesso per tutti i tipi di eccezione

    Deriva dal fatto che c una pipeline e che PC pu essere stato aggiornato o no a seconda di dove leccezione si manifesta

  • 36

    PC salvato/ritorno

    p Ecc PC Salvato Ritorno

    1 Reset --- ---2 Data Abort r14_abt = PC+8 SUBS PC,r14_abt,#83 FIQ r14_fiq = PC+4 SUBS PC,r14_fiq,#44 IRQ r14_irq = PC+4 SUBS PC,r14_irq,#45 Prefetch Abort r14_abt = PC+4 SUBS PC,r14_abt,#46 SWI r14_svc = PC+4 MOVS PC,r14_svc6 Undefined instr r14_und = PC+4 MOVS PC,r14_und

    Qui PC indica il PC dellistruzione che determina leccezione

    p la priorit (predefinita) delle differenti eccezioni

  • 37

    PC salvato/ritorno

    p Ecc PC Salvato Ritorno

    1 Reset --- ---2 Data Abort r14_abt = PC+8 SUBS PC,r14_abt,#83 FIQ r14_fiq = PC+4 SUBS PC,r14_fiq,#44 IRQ r14_irq = PC+4 SUBS PC,r14_irq,#45 Prefetch Abort r14_abt = PC+4 SUBS PC,r14_abt,#46 SWI r14_svc = PC+4 MOVS PC,r14_svc6 Undefined instr r14_und = PC+4 MOVS PC,r14_und

    Viene salvato il PC dellistruzione successiva

  • 38

    PC salvato/ritorno

    p Ecc PC Salvato Ritorno

    1 Reset --- ---2 Data Abort r14_abt = PC+8 SUBS PC,r14_abt,#83 FIQ r14_fiq = PC+4 SUBS PC,r14_fiq,#44 IRQ r14_irq = PC+4 SUBS PC,r14_irq,#45 Prefetch Abort r14_abt = PC+4 SUBS PC,r14_abt,#46 SWI r14_svc = PC+4 MOVS PC,r14_svc6 Undefined instr r14_und = PC+4 MOVS PC,r14_und

    Quando linterruzione viene servita il PC stato incrementato di 4 rispetto allultima istruzione completata, per questo occorre riportarlo indietro

  • 39

    PC salvato/ritorno

    p Ecc PC Salvato Ritorno

    1 Reset --- ---2 Data Abort r14_abt = PC+8 SUBS PC,r14_abt,#83 FIQ r14_fiq = PC+4 SUBS PC,r14_fiq,#44 IRQ r14_irq = PC+4 SUBS PC,r14_irq,#45 Prefetch Abort r14_abt = PC+4 SUBS PC,r14_abt,#46 SWI r14_svc = PC+4 MOVS PC,r14_svc6 Undefined instr r14_und = PC+4 MOVS PC,r14_und

    Data Abort si manifesta solo quando listruzione in fondo alla pipeline e PC gi stato incrementato 2 volte

  • 40

    Interruzioni esterne

  • 42

    Handler interruzioni esterne

    Memo: Su IRQ viene salvato il PC di ritorno in r14_irq (lr_irq) e CPSR in SPSR_irq

    Politica Una alla volta per carit !

    Salvare i registri che verranno toccati

    Identificare la specifica interruzione e saltare al ramo corrispondente

    Ripristinare i registri e CPSR

    Tornare al punto dellinterruzione

    Per quanto apparentemente semplice nasconde delle insidie

  • 43

    ..Una alla volta per carit

    1. Salvare i registri che verranno toccati2. Identificare la specifica interruzione e saltare al ramo

    corrispondente3. Ripristinare i registri e CPSR4. Tornare al punto dellinterruzione

    C listruzione di Store Multiple (attraverso un registro) che fa tutto da sola. Esempio:

    STMFD sp!, {r0-r7,lr}

    Salva ordinatamente i registri da r0 a r7 e r14 (indirizzo di ritorno) a partire dalla posizione individuata inizialmente da sp (cio r13 del mode in atto, ovvero irq).

    (FD: Full Descending stack)

  • 44

    ..Una alla volta per carit

    1. Salvare i registri che verranno toccati2. Identificare la specifica interruzione e saltare al ramo

    corrispondente3. Ripristinare i registri e CPSR4. Tornare al punto dellinterruzione

    Richiede la lettura del mondo esterno per identificare qual la specifica interruzione e il salto al tratto di codice ad essa associato via una tabella di indirizzamento

  • 45

    ..Una alla volta per carit

    1. Salvare i registri che verranno toccati2. Identificare la specifica interruzione e saltare al ramo

    corrispondente3. Ripristinare i registri e CPSR4. Tornare al punto dellinterruzione

    Per ripristinare un blocco di registri c listruzione Load Multiple duale della precedente. Esempio LDMFD sp!,{r0-r7}.

    Per il ripristino di CPSR si potrebbe utilizzare listruzione MSR che scrive in CPSR (facendole scrivere il valore di SPSR).

    Ma qui c linsidia !!

  • 46

    ..linsidia

    1. Salvare i registri che verranno toccati2. Identificare la specifica interruzione e saltare al ramo

    corrispondente3. Ripristinare i registri e CPSR4. Tornare al punto dellinterruzione (con mov pc,lr)

    Se CPSR viene ripristinato lo stato quello che cera al momento dellinterruzione, dunque il sistema di interruzione ritorna abilitato. Se c in agguato uninterruzione questa fa rientrare lhandler e sovrascrive r14: il suo contenuto perso!!

    Bisogna rendere 3 e 4 indivisibili. .

    Per fortuna listruzione LDM prevede il qualificatore ^ che comporta oltre al ripristiono dei registri anche il restore di CPSR (CPSR := SPSR)

    LDMFD sp!,{r0-r7,pc}^ (fa coppia con la precedente)

  • 47

    Per inciso (sviluppo stack)

    In suIn gi

  • 48

    Schema per le interruzioni rientranti

    Sullinterruzione occorre:1. Salvare lindirizzo di ritorno sullo stack (di modo irq)2. Salvare i registri che verranno manipolati e SPSR_irq3. Azzerare la richiesta di interruzione4 . Riabilitare il sistema di interruzione (bit I di CPSR)5. . Quel che c da fare6 . Disabilitare il sistema di interruzione7. Ripristinare i registri e SPSR_irq e tornare allindirizzo salvato

    Ma le c

    ose non

    sono co

    s

    facili

  • 49

    Garantire il ristabilirsi dello stato

    1. Salvare lindirizzo di ritorno sullo stack2. Salvare i registri che verranno manipolati e SPSR_irq3. Azzerare la richiesta di interruzione4 . Riabilitare il sistema di interruzione 5. . Quel che c da fare6. Disabilitare il sistema di interruzione7. Ripristinare i registri e SPSR_irq e tornare allindirizzo salvato

    Onde evitare che dopo il ripristino dei registri si inserisca unaltra interruzione prima che si compia il

    salto (ci si riporta al caso precedente)

  • 50

    NON basta: c ancora un problema

    1. Salvare lindirizzo di ritorno sullo stack2. Salvare i registri che verranno manipolati e SPSR_irq3. Azzerare la richiesta di interruzione4 . Riabilitare il sistema di interruzione 5. . Quel che c da fare6 . Disabilitare il sistema di interruzione7. Ripristinare i registri e SPSR_irq e tornare allindirizzo salvato

    Se qui dentro c un BL (call) e poi arriva una nuova interruzione siamo fritti: si perde lindirizzo di ritorno a dopo il BL !( interruzioni e BL usano lo stesso registro r14_irq )

  • 51

    Soluzione del problema del BL

    Rinunciare a fare le chiamate alle soubroutine entro lhandler (rientrante) delle eccezioni. Inaccettabile

    Sostituire i punti da 4 a 6 cona) Passare a User mode b) Salvare i registri di User modec) Riabilitare il sistema di interruzione d) Chiamare la subroutine (quel che c da fare)e) Al ritorno dalla subroutine rimettere i registri di User modef) Tornare a IRQ mode disabilitando il sistema di interruzione

  • 52

    .Soluzione del problema del BL

    Sostituire i punti da 4 a 6 cona) Passare a User mode b) Salvare i registri di User modec) Riabilitare il sistema di interruzione d) Chiamare la subroutine (quel che c da fare)e) Al ritorno dalla subroutine rimettere i registri di User modef) Tornare a IRQ mode disabilitando il sistema di interruzione

    La chiamata modifica LR_user e quindi, se arriva unaltra interruzione, questa va a modificare LR_irq (gi salvato) e non

    fa perdere lindirizzo di ritorno dalla subroutine. Il processo si pu ripetere quante volte si vuole

  • 53

    Non finita

    La soluzione precedente ha un problema:

    Lo User mode non privilegiato e non consente di andare a toccare, per esempio, CPSR

    Nella scrittura dellhandler potrebbe essere utile usare istruzioni privilegiate

    Cos era fino alla versione v4 (esclusa) quando mancava il System mode

    Con la v4 stato introdotto il modo System, equivalente al modo User (stessi registri), ma abilitato alle operazioni privilegiate

    Nello schema precedente sostituire User mode con System mode

  • 54

    Formato istruzioni

  • 55

    Formato Istruzioni

  • 56

    Esempio

  • 57

    Esecuzione condizionata

    Il campo Cond contiene una condizione (messa l dallassemblatore in base al codice di istruzione)

    Ad esempio SUBGT r1,r2,r3 il codice di sub con la condizione greater then codificata nel campo Cond

    Listruzione viene eseguita solo se in quel momento CPSR contiene la medesima condizione, altrimenti listruzione non viene eseguita

    E un aspetto caratteristico di questa architettura

  • 58

    Algoritmo di Euclide per il MCD

  • 59

    Macchine convenzionali

    MCD cmp r0,r1 ;raggiunta la fine?beq FINEblt MIN ; if r0 > r1 saltasub r0,r0,r1 ;r0

  • 60

    ARM

    MCD cmp r0,r1 ;if r0 > r1subgt r0,r0,r1 ;then r0

  • 61

    La Pipeline

  • 62

    Organizzazione (ARM7TDMI) (v4)

  • 63

    La pipeline

    A tre stadi (v3)

    Nelle versioni correnti gli stadi sono molti di pi

  • 64

    Con una variazione

    Le istruzioni che fanno accesso alla memoria richiedono 4 cicli

    Listruzione seguente ha un stallo

    Il data transfer in conflitto (strutturale) con il fetch

  • 65

    Con una variazione

    Le istruzioni che fanno accesso alla memoria richiedono 4 cicli

    Listruzione seguente ha un stallo

    Il data transfer in conflitto (strutturale) con il fetch

  • 66

    C molto di pi (Esempio ARM1156T2-S)

    Architettura v6. Repertorio ARM e Thumb 2, Istruzioni SIMD su 16-bit o 8-bit registri da 32-bit

    Cortex A5 ha sostanzialmente la stessa pipeline

  • 67

    Coprocessori

  • 68

    Coprocessori

    Meccanismo per estendere il repertorio di istruzioni

    FPU, DSP, ecc. realizzati come coprocessori

    Il repertorio di istruzioni del coprocessore disgiunto rispetto a quello della CPU

    In presenza di un codice di istruzione eseguibile da un coprocessore si instaura un meccanismo che porta il coprocessore a eseguire listruzione

    Se il coprocessore non presente si ha eccezione (undefined), che pu essere eventualmente usata per emulare un coprocessore

    Occorre un protocollo di interazione

  • 69

    Coprocessore ARM

    Tipicamente un coprocessore contiene

    Una pipeline istruzioni (pipeline follower)

    La logica di decodifica delle istruzioni

    La logica di handshake

    Un banco di registri

    La specifica logica di elaborazione

  • 70

    Hand-shaking

    Il coprocessore osserva le istruzioni di cui la CPU fa il fetch e mantiene una pipeline sincronizzata con quella della CPU

    Se in fase di decodifica vede unistruzione che pu eseguire (deve essere nel suo repertorio e contenere codificato lo stesso ID del processore) asserisce CPA (basso)

    La CPU risponde asserendo CPnI (basso) abilitando

    Se non risponde il coprocessore non deve eseguire

    Il coprocessore asserisce CPB (basso) quando pu trattare listruzione

    NB: listruzione ha un campo in cui codificato lID del coprocessore per il quale essa intesa

  • 71

    ARM7TDMI

    Hand-shaking coprocessore

  • 72

    Hand shaking

  • 73

    Assenza del coprocessore

    Se CPA non viene portato basso significa assenza di qualunque coprocessore

    Si genera uneccezione di istruzione non definita

    Mentre CPA basso anche CPB deve passare basso a indicare che il coprocessore libero

  • 74

    Hand shaking

  • 75

    Tre classi di istruzione per il coprocessore

    Data processing instructions.

    Eseguite direttamente dal coprocessore

    Load-store instructions

    Trasferiscono dati tra registri del coprocessore e memoria. In questo caso la CPU avvia linizio del trasferimento ponendo lindirizzo di memoria sul bus; il processore responsabile della continuazione delloperazione leggendo le parole richieste (la CPU non conosce le dimensioni dei registri del coprocessore)

    Register transfer instructions

    Trasferiscono dati tra registri del coprocessore e registri della CPU; in questo caso vengono sempre trasferite parole di 32 bit

  • 76

    Coprocessori ID riservati

  • 77

    Conclusioni

    Architettura semplice, ma potente

    ECC.

    Architettura ARM(Advanced Risc Machines) ARMPer dare unideaSiamo circondati !LetteraturaStoriaApple sceglie ARM Famiglie, versione, dispositivoCortexLo stato attualeLicenziatari Presenti (e/o passati)IP coreLicenzeAltri servizi/strumenti offerti da ARMSlide Number 15La caratteristica fondamentale: il basso consumo CaratteristichecaratteristicheStati del processoreModello di programmazioneRegistriPC un registro come un altroSottoprogrammaCurrent Program Status Register (CPSR)Slide Number 26EccezioniEccezioniVettori di interruzioneVettori di interruzioneEccezione di ResetEccezione softwareSoftware Interrupt (SWI)Ritorno dalle eccezioniPC salvato/ritornoPC salvato/ritornoPC salvato/ritornoPC salvato/ritornoInterruzioni esterneHandler interruzioni esterne ..Una alla volta per carit ..Una alla volta per carit ..Una alla volta per carit ..linsidia Per inciso (sviluppo stack)Schema per le interruzioni rientrantiGarantire il ristabilirsi dello statoNON basta: c ancora un problemaSoluzione del problema del BL.Soluzione del problema del BLNon finitaSlide Number 54Formato IstruzioniEsempioEsecuzione condizionataAlgoritmo di Euclide per il MCDMacchine convenzionaliARMSlide Number 61Organizzazione (ARM7TDMI) (v4)La pipelineCon una variazioneCon una variazioneC molto di pi (Esempio ARM1156T2-S) Slide Number 67CoprocessoriCoprocessore ARMHand-shakingARM7TDMI Hand shakingAssenza del coprocessore Hand shakingTre classi di istruzione per il coprocessoreCoprocessori ID riservatiConclusioni