PXA255: concetti avanzati



Documenti analoghi
memoria virtuale protezione

STRUTTURE DEI SISTEMI DI CALCOLO

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Architettura hardware

Architettura del calcolatore

Microelettronica. Architettura del processore ARM. Stefano Salvatori. Università degli Studi Roma Tre. Microelettronica

Architettura di tipo registro-registro (load/store)

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

CPU. Maurizio Palesi

Capitolo 11 La memoria cache

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Struttura del calcolatore

C. P. U. MEMORIA CENTRALE

Architettura di un sistema di calcolo

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

L unità di elaborazione pipeline L unità Pipelining

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MODELLO DLX IN UNISIM

CALCOLATORI ELETTRONICI 15 aprile 2014

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

CPU pipeline 4: le CPU moderne

CALCOLATORI ELETTRONICI 31 marzo 2015

= 0, 098 ms. Da cui si ricava t 2 medio

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad

Protezione. Protezione. Protezione. Obiettivi della protezione

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

CALCOLATORI ELETTRONICI 29 giugno 2010

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Corso di Sistemi di Elaborazione delle informazioni

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Architettura dei computer

Sistemi Operativi. 5 Gestione della memoria

DMA Accesso Diretto alla Memoria

GESTIONE DELLA MEMORIA CENTRALE

CPU pipeline 4: le CPU moderne

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

I processi Unix. Entry della tabella dei processi

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Il Sistema Operativo

Il memory manager. Gestione della memoria centrale

MEMORIA VIRTUALE. Programma: Processore: Memoria fisica: Caso più semplice:

Hazard sul controllo. Sommario

Calcolatori Elettronici

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Architettura dei calcolatori I parte Introduzione, CPU

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Capitolo Silberschatz

L architettura di riferimento

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Lezione n.19 Processori RISC e CISC

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Gerarchie di Memoria Andrea Gasparetto

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Gestione della memoria centrale

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

CALCOLATORI ELETTRONICI 29 giugno 2011

Schedulazione dinamica. Elettronica dei Calcolatori 1

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Hardware di un Computer

ARCHITETTURA DEL CALCOLATORE

Esercitazione E1 Scheduling, deadlock, monitor

La memoria centrale (RAM)

Coordinazione Distribuita

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Esempio: aggiungere j

Architettura del Set di Istruzioni (ISA)

Laboratorio di Informatica

MEMORIA GERARCHIE DI MEMORIA

ARCHITETTURA DELLE CPU come ARCHITETTURA DEL SET DI ISTRUZIONI

Architettura degli elaboratori (A)

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Migliorare le prestazioni di processori e memorie

Tecnologia di un Database Server (centralizzato) Gestione del buffer

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

CAP. 4: Aspetti generali del Sistema Operativo Linux. l

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Architettura di un calcolatore: introduzione

Introduzione all Architettura del DBMS

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Varie tipologie di memoria

Calcolatori Elettronici A a.a. 2008/2009

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

Architettura di un calcolatore

La memoria - generalità

Desiderata: memoria capiente e veloce. Connessioni tra livelli di memoria. Memoria cache, struttura. Tecniche impiegate. Ad ogni accesso alla memoria

Transcript:

PXA255: concetti avanzati 10.a C. Fantozzi, A. Gardich (revisione di S. Congiu) PXA255: il nucleo 1

PXA255: memorie cache Uno dei principali colli di bottiglia nei moderni calcolatori è l inadeguata velocità del sistema di memoria La presenza di cache èfondamentale per ottenere prestazioni elevate 2 Il processore PXA255 contiene: una cache istruzioni da 32 KB una cache dati da 32 KB due mini cache e molteplici buffer Cache istruzioni 32 set disponibili, associativa a 32 vie Lunghezza di linea: 32 Byte Dimensione totale: 32 32 32=32768 Byte (32 KB) 1 bit di parità e 1 valid bit per linea Politica di rimpiazzo FIFO (round robin) 3 Meccanismo di locking di singole linee Mini-Instruction cache di 2 KB

Cache istruzioni: figura 4 Cache: effetto del locking 5

Cache dati 32 set, associativa a 32 vie, 32 KB totali 1 valid, 1 parity e 2 dirty bit per linea Politica di rimpiazzo FIFO (round robin) Due strategie di aggiornamento memoria Write-through: scrivi subito Copy-back: aspetta rimozione linea Meccanismo di locking di singole linee Mini-Data cache di 2 KB 6 Cache dati: figura 7

Mini cache Mini-Instruction cache (2 KB) 32 set, associativa a 2 vie, 32 byte/linea Valori caricabili solo tramite JTAG Usata nel debugging Mini-Data cache (2 KB) 32 set, associativa a 2 vie, 32 byte/linea Lunghezza di linea: 32 byte Stessi bit, stesse politiche della cache dati Nessun meccanismo di locking Usata per collocarvi blocchi provenienti da zone di RAM ove si trovano dati che cambiano spesso (stack frame delle chiamate a procedure, dati streaming, ), per evitare dannosi rimpiazzi (trash) nella cache dati. 8 Mini-Data cache: figura 9

Memoria: alte prestazioni Fetch buffer (2 entry): riceve i 32 byte per una linea di i-cache man mano che arrivano Fill buffer (4 entry): raggruppa richieste di lettura in memoria per le cache dati Pend buffer (4 entry): cattura ulteriori richieste per indirizzi già nel fill buffer 10 Write buffer (8 entry da 16 byte): raggruppa richieste di scrittura (con coalescing) Prefetching (istruzione PLD <addr_mode2>): suggerisce load in cache dati Gestione della memoria MMU: indirizzamento virtuale e protezione Alcuni bit decidono, tra l altro, l utilizzo o meno di cache dati il locking di una linea di cache l utilizzo di write-through o di copy-back 11 Registro PID: ulteriore remapping! Translation Lookaside Buffer (TLB) Uno per dati e uno per istruzioni 32 entry ciascuno, completamente associativi Meccanismo di locking

MMU: page table Ciascun elemento della page table contiene informazioni per una regione (1 MB), oppure per una pagina (1 KB, 4 KB o 64 KB) Attributi associati a ciascun elemento: indirizzo fisico permessi di accesso per modo utente e modo privilegiato cacheable (bit C) cacheable in mini-data cache (bit proprietari X e P) bufferable (bit B) coalescing politica di allocazione - una scrittura causa linefill o no? politica di scrittura (write-through, copy-back) I/O 12 PXA255: pipeline 3 diversi pipeline 7 o 8 stadi, 1 ciclo per stadio (di norma) Ottimizzazione: uso del bypassing 13

Main Execution pipeline F1: fetch istruzione (stadio 1) F2: fetch istruzione (stadio 2) ID: decodifica istruzione RF: lettura (e shift) degli operandi X1: esecuzione (ALU) X2: esecuzione (modifica dello stato) XWB: scrittura del risultato 14 Memory pipeline D1: accesso alla cache dati (stadio 1) D2: accesso alla cache dati (stadio 2) DWB: scrittura del risultato (copy-back della cache dati) 15

MAC pipeline M1: moltiplicazione (stadio 1) M2: moltiplicazione (stadio 2) Mx: moltiplicazioni successive MWB: scrittura del risultato (non mostrato) 16 Pipeline: osservazioni I tre pipeline possono essere occupati simultaneamente (comportamento di tipo superscalare ) I tre pipeline funzionano in maniera asincrona Conclusione: le istruzioni possono completare l esecuzione fuori ordine se non ci sono dipendenze tra i dati 17

PXA255: Branch Target Buffer Il PXA255 effettua una predizione dinamica basata sulla storia passata di ciascuna istruzione di salto condizionato. La storia è memorizzata nel BTB (cache con 128 blocchi, a mappatura diretta). Un elemento del BTB è: 18 I bit [8:2] dell indirizzo dell istruzione di salto condizionato individuano l elemento del BTB con il cui campo TAG si confrontano i bit [31:9,1]: in caso di hit, gli history bit forniscono la predizione e, se il salto viene intrapreso, il target address fornisce l indirizzo a cui saltare. Il bit 1 nel TAG e nel target address è per compatibilità con la modalità thumb (funzionamento a 16 bit). BTB: stati possibili La storia di un salto è riassunta nei 4 possibili stati rappresentati dai 2 history bit 19 La correttezza o meno di ogni previsione può modificare lo stato come rappresentato in figura.

Controller DMA - 1 16 canali indipendenti in 4 set 3 distinti livelli di priorità Set 0: alta priorità Set 1: priorità normale Set 2 e 3: bassa priorità 20 Registri base per ciascun canale: DSADR (DMA Source Address Register) DTADR (DMA Target Address Register) DCMD (DMA Command Register) DCSR (DMA Control/Status Register) DMAC: diagramma a blocchi 21 1 bit per canale

DMA Command Register 22 INCSRCADDR/INCTRGADDR: incremento indirizzo sorgente/destinazione STARTIRQEN/ENDIRQEN: genera un interrupt all inizio/fine del trasferimento ENDIAN: ordine di trasferimento byte SIZE: byte per burst LENGTH: numero byte da trasferire Controller DMA - 2 Un canale può compiere più operazioni, specificate da una lista di descrittori 23 DDADR: DMA Descriptor Address Register I descrittori formano una lista concatenata o anche un anello (descriptor ring) Coerenza delle cache: è responsabilità del programmatore!

Contatori hardware Due Performance Counter (32 bit) Associabili a 2 eventi distinti Contano le occorrenze degli eventi scelti 24 Un Clock Counter (CCNT, 32 bit) Conta i cicli di clock che passano Overflow in circa 10 secondi @400 MHz! Accessibili tramite CP14, registri 0-3 Contatori: eventi controllabili 25

PXA255: coprocessori CP0, CP14, CP15 Nel processore PXA255, CP14 e CP15 contengono registri di configurazione Accesso (in modo supervisore!) con MRC <coproc>,<opcode1>, <Rd>, <CRn>, <CRm>,<opcode2> (move to Reg from CP) MCR <coproc>,<opcode1>, <Rn>, <CRn>, <CRm>,<opcode2> (move to CP from Reg) LDC <coproc>, <CRd>, <addressing_mode> STC <coproc>, <CRd>, <addressing_mode> 26 Registri di CP15: sommario 27

Registro utile di CP15 Control Register (CR1, opcode_2=0): opzioni relative alla memoria 28 Bit 0: MMU disable/enable (0/1) Bit 2: data cache disable/enable (0/1) Bit 7: little/big endian (0/1) Bit 11: BTB disable/enable (0/1) Bit 12: instr. cache disable/enable (0/1) Bit 13: exception vector relocation Esempio di uso di CP15 Per accedere al registro: istruzioni MRC (load) e MCR (store) Il seguente codice abilita la cache dati (CP15, registro 1, bit 2) 29 MCR p15,0,r0,c7,c10,4 @ attende termine op. op. corr. MRC p15,0,r0,c1,c0,0 @ legge il il Control Register ORR ORR r0,r0, #4 #4 @ imposta a 1 il il bit bit 2 MCR p15,0,r0,c1,c0,0 @ aggiorna Control Register

Risparmio energetico Run Mode: modo operativo normale Idle Mode: clock fermo, stato preservato; risveglio tramite interruzione Sleep Mode: stato non completamente preservato; alimentati solo i piedini di I/O 30 Turbo Mode: commutazione rapida (nanosecondi) tra 2 frequenze di clock preprogrammate Modi operativi 31 User (USR): modo utente FIQ (FIQ): gestione veloce interruzioni IRQ (IRQ): gestione interruzioni Supervisor (SVC): modo protetto Abort (ABT): per gestione memoria Undefined (UND): emulaz. coprocessori System (SYS): usa risorse di USR ma senza limitazioni d accesso

Note varie Le istruzioni SWP e SWPB generano una operazione di load+store atomica, permettendo di gestire un semaforo 32 Usare se possibile MOV o MVN per caricare un valore immediato: LDR può generare un cache miss o sporcare la cache dati Per sfruttare al massimo la cache, le strutture dati devono essere allineate ai 32 byte e avere dimensione multipla di una linea di cache Per approfondimenti Intel XScale Core Developer s Manual (http://download.intel.com/design/intelxscale/27347302.pdf) Intel XScale Microarchitecture for the PXA255 Processor User s Manual (http://int.xscale-freak.com/xsdoc/pxa255/27879601.pdf) Intel PXA255 Processor Developer s Manual (http://www.xscale-freak.com/xsdoc/pxa255/27869302.pdf) Liberamente scaricabili

Fine 10.a PXA255: concetti avanzati