Principi Arm 10

download Principi Arm 10

of 20

description

-

Transcript of Principi Arm 10

  • 20092009--1010

    Principi di architetture dei calcolatori: Principi di architetture dei calcolatori: larchitettura ARM.larchitettura ARM.

    Mariagiovanna SamiMariagiovanna Sami

  • 20092009--1010-- 22 --

    Che cosa ARMChe cosa ARM

    In realt, non un solo microprocessore, ma unintera famiglia

    Oggi, probabilmente larchitettura pi diffusa per sistemi embedded (dai cellulari allI-Pad a un grandissimo numero di applicazioni di ogni genere!)

    ARM come azienda non produce silicio vende propriet intellettuale (linsieme delle istruzioni, la microarchitettura delle CPU)

  • 20092009--1010-- 33 --

    Che cosa ARMChe cosa ARM

    Di norma, i processori ARM compaiono come componenti (detti core) di circuiti integrati pi complessi; tipicamente, su un chip oltre alla (alle) CPU compaiono memorie, controllori di periferiche, dispositivi dedicati a specifici compiti quali elaborazione di segnale etc.

    Si tratta di unarchitettura semplice, studiata per basso consumo di potenza e fortemente modulare.

  • 20092009--1010-- 44 --

    Che cosa ARMChe cosa ARM

    Il concetto ARM: Sviluppato allinizio degli anni 80 per realizzare

    un personal computer a basso costo (lazienda inglese - si chiamava Acorn Computers);

    Realizzato a partire dalla proposta del MIPS (architettura RISC di tipo pipelined);

    Prima versione (v1): 1985. 1990: nasce ARM da una joint venture con Apple

    per realizzare il primo PDA (Newton).

  • 20092009--1010-- 55 --

    ARM: architetturaARM: architettura--basebase

    Essenzialmente: Architettura di tipo load-store: le istruzioni

    che elaborano dati operano solo su contenuti di registri interni alla CPU, le istruzioni che possono accedere alla memoria sono solo letture (load, da memoria a un registro interno della CPU) e scritture (store, da un registro alla memoria);

    Le istruzioni aritmetico-logiche specificano i registri di due operandi e del risultato

  • 20092009--1010-- 66 --

    ARM: architetturaARM: architettura--basebase

    La pipeline originale:Pipeline su tre stadi: Lettura (F) legge unistruzione dalla memoria Decodifica (D) decodifica listruzione e genera i segnali

    di controllo necessari Esecuzione (E):

    Leggi gli operandi dai registri Eventualmente fai scorrere uno degli operandi LALU genera il risultato Il risultato viene scritto nel registro destinazione

  • 20092009--1010-- 77 --

    ARM: architetturaARM: architettura--basebase

    Si noti: nel primo schema, esiste ununica unit di memoria (si adotta lo schema Von Neumanninvece di quello Harvard).

    La disponibilit di ununica porta di memoria provoca uno stallo a ogni istruzione load o store, dato che non si pu leggere la prossima istruzione mentre si legge/scrive un dato.

  • 20092009--1010-- 88 --

    ARM: architetturaARM: architettura--basebase

    Problema: alcune istruzioni richiedono pi di tre cicli

    LOAD e STORE richiedono 2 cicli per lesecuzione (uno per il calcolo dellindirizzo e uno per laccesso alla memoria)

    Salti condizionati: si svuota la pipeline e si riprende dallindirizzo destinazione corretto;

    Si veda il comportamento della pipeline:

  • 20092009--1010-- 99 --

    ARM: architetturaARM: architettura--basebase

  • 20092009--1010-- 1010 --

    ARM: architetturaARM: architettura--basebase

    Col 1995 si passati a una pipeline a 5 stadi(dotata di Instruction cache e Data cache separate, in modo da evitare i problemi visti con la pipeline a tre stadi)

    Gli stadi sono: Lettura Decodifica Esecuzione Buffer/data Write-back (scrittura nel registro destinazione)

  • 20092009--1010-- 1111 --

    ARM: architetturaARM: architettura--basebase

    In dettaglio: Lettura: legge unistruzione; Decodifica: decodifica listruzione e legge gli operandi

    (fino a 3) dai registri; Esecuzione: se richiesto fa scorrere un operando; lALU

    genera il risultato (o lindirizzo nel caso di Load(Store) Buffer/data: si accede alla memoria. Solo Load e Store

    compiono operazioni utili in questo stadio; Write-back: il risultato (incluso il valore letto dalla

    memoria) viene scritto nel registro destinazione.

  • 20092009--1010-- 1212 --

    ARM: architetturaARM: architettura--basebase

    Lo schema dellarchitettura indica i cinque stadi corrispondenti alle cinque fasi;

    La pipeline molto meglio bilanciata e va a frequenza pi alta; si sono inseriti i percorsi di data forwarding per superare i conflitti da dipendenze RAW

    .

  • 20092009--1010-- 1313 --

    ARM: architetturaARM: architettura--basebase

    Esistono anche soluzioni con pipeline a sei e otto stadi per fornire prestazioni pi elevate su applicazioni di fascia alta;

    Larchitettura vista quella base: si possono aggiungere funzionalit ulteriori (ad esempio, laritmetica in virgola mobile) che vengono associate al data path base come coprocessori che consentono fra laltro di estendere linsieme iniziale delle istruzioni di macchina.

    .

  • 20092009--1010-- 1414 --

    ARM: architetturaARM: architettura--basebase

    Il modo di esecuzione principale il modo utente (user mode): il sistema operativo garantisce protezione e isolamento dellapplicazione eseguendo questultima in modo utente;

    Tutti gli altri modi di esecuzione sono privilegiati e usati solo nellesecuzione del software di sistema. In particolare:

    .

  • 20092009--1010-- 1515 --

    ARM: architetturaARM: architettura--basebase

    Modi privilegiati: Fast interrupt processing mode: la CPU vi si porta quando

    riceve un segnale di interruzione dalla sorgente che il progettista ha designato come sorgente di interruzioneveloce

    Normal interrupt processing mode: la CPU vi si porta quando riceve un segnale da qualsiasi altra sorgente di interruzione;

    Software interrupt processing mode: la CPU vi si porta quando incontra unistruzione di interruzione software (in sostanza una system call questo il modo normale per invocare i servizi del sistema operativo su ARM);

    .

  • 20092009--1010-- 1616 --

    ARM: architetturaARM: architettura--basebase

    Modi privilegiati (cont.): Undefined instruction mode: la CPU vi si porta

    quando tenta di eseguire unistruzione che non supportata n dallarchitettura base n da uno dei coprocessori ad essa collegati (pu essere usato per emulare via software un coprocessore che non si realizzato);

    System mode usato per eseguire compiti privilegiati del sistema operativo;

    Abort mode usato in risposta a violazioni dei diritti di accesso alla memoria.

    .

  • 20092009--1010-- 1717 --

    ARM: i ARM: i coprocessoricoprocessori

    Una soluzione fortemente modulare per estendere larchitettura base, ma come si gestiscono?

    Ce un protocollo di interazione fra CPU e coprocessori, accompagnato da istruzioni di trasferimento dati fra ARM e coprocessori (anche questi devono utilizzare unarchitettura load-store).

    .

  • 20092009--1010-- 1818 --

    ARM: i ARM: i coprocessoricoprocessori

    interfaccia processore-coprocessore:

  • 20092009--1010-- 1919 --

    ARM: i ARM: i coprocessoricoprocessori

    Segnali di controllo dellinterfaccia: CPi: attivato quando si identifica unistruzione del

    coprocessore di cui la CPU chiede lesecuzione; CPa: attivata quando non ce un coprocessore capace di

    eseguire listruzione; CPb: attivata quando il coprocessore non pu cominciare

    immediatamente a eseguire listruzione.

    Ci sono tre tipi di istruzioni relative ai coprocessori che vengono riconosciute da ARM:

  • 20092009--1010-- 2020 --

    ARM: i ARM: i coprocessoricoprocessori

    1. Istruzioni di elaborazione dati: sono interne al coprocessore. Quando la CPU legge una di queste istruzioni, esegue un semplice protocollo di handshakeper verificare che uno dei coprocessori presenti la accetta (altrimenti solleva uninterruzione);

    2. Istruzioni load/store che trasferiscono dati fra registri del coprocessore e memoria. La CPU d inizio a tali istruzioni calcolando un indirizzo di memoria e mandandolo sul bus degli indirizzi; tocca poi al coprocessore completare il trasferimento;

    3. Istruzioni di trasferimento fra la pipeline interna della CPU e i registri del coprocessore.

    .