Von Neumann Bottleneck
|
|
|
- Cinzia Parodi
- 8 anni fa
- Visualizzazioni
Transcript
1 Von Neumann Bottleneck
2 Gerarchia di memoria
3 Struttura della Gerarchia Al livello 1 poniamo la memoria più veloce (piccola e costosa) Al livello n poniamo la memoria più lenta (grande ed economica) Scopo gerarchia e delle politiche di gestione delle memorie è dare l illusione di avere a disposizione una memoria grande (come al livello n) e veloce (come al livello 1)
4 Esempio a 2 livelli
5 Gerarchia di memoria All inizio i nostri dati e i nostri programmi sono memorizzati nel livello n (memoria più capiente e lenta) I blocchi (linee) di memoria man mano riferiti vengono fatti fluire verso i livelli più alti (memorie più piccole e veloci), più vicini alla CPU Se il blocco richiesto è presente nel livello più alto Hit: l accesso soddisfatto dal livello più alto Hit rate: n. hit / n. accessi Se il blocco richiesto è assente nel livello più alto Miss: il blocco è copiato dal livello più basso Miss rate: n. miss / n. accessi = 1 hit ratio Miss penalty: tempo necessario per trasferire i dati e fornirli al processore Poi l accesso è garantito dal livello più alto
6 Problemi Problema 1: Cosa succede se un blocco riferito è già presente nel livello 1 (più alto)? La CPU può accedervi direttamente (hit), ma abbiamo bisogno di un meccanismo per individuare e indirizzare il blocco all interno del livello più alto! Problema 2: Cosa succede se il livello più alto è pieno? Dobbiamo implementare una politica di rimpiazzo dei blocchi!
7 Cache Cache: posto sicuro [nascosto] dove riporre le cose Nascosta perché il programmatore non la vede direttamente L uso gli è interamente trasparente L uso della cache fu sperimentato per la prima volta negli anni 70 e da allora è divenuto assolutamente prevalente in tutti i calcolatori
8 Cache
9 Esempio Partiamo da un semplice esempio in cui la i blocchi di cache siano costituiti da una sola word. Supponiamo che a un certo punto il processore richieda la parola X n che non e in cache Cache miss
10 Domande Come facciamo a capire se un dato richiesto è nella cache? Dove andiamo a cercare per sapere se c è? Cache ad accesso diretto: a ogni indirizzo in della memoria corrisponde una precisa locazione della cache Possibilità: indirizzo locazione dove un indirizzo è mappato = indirizzo blocco modulo numero di blocchi in cache Se il numero di elementi nella cache è potenza di 2, ci è sufficiente prendere i bit meno significativi dell indirizzo in numero pari al logaritmo in base 2 della dimensione della cache
11 Cache ad accesso diretto Ogni locazione di memoria è mappata direttamente in esattamente una locazione di cache (direct mapped cache) Soluzione più semplice cache block index memory block address block index = (block address) mod (block num)
12 Cache ad accesso diretto Un blocco di cache può contenere una copia dei dati di diverse locazioni di memoria. Come distinguerle? I bit più significativi dell indirizzo di memoria sono salvati in un campo tag tag bits tag blocco = (indirizzo blocco) modulo (numero di blocchi) un bit valid è usato per indicare che i dati del blocco sono validi
13 Esempio Accesso a (miss) Accesso a (miss) Accesso a (hit)
14 Esempio MIPS 32 bit Indirizzo su 32 byte Cache ad accesso diretto Dimensioni della cache 2 n blocchi, di cui n bit usati per l indice dimensione del blocco di cache 2 m parole ossia 2 m+2 byte In questo caso la dimensione del tag è data da 32 (n + m + 2) Numero totale bit nella cache: 2 n x (dim. blocco + dim. tag + valid bit) Per convenzione si considera solo la dimensione del blocco.
15 4KB Cache
16 Esercizio Si consideri una cache con 64 blocchi di 16 byte ciascuno. A quale numero di blocco corrisponde l indirizzo 1200 espresso in byte? Blocco identificato da: (indirizzo blocco) modulo (numero blocchi in cache) (indirizzo blocco) = (indirizzo dato in byte) / (byte per blocco) Quindi l indirizzo del blocco è 1200/16 = 75 Blocco contente il dato è 75 modulo 64 = 11
17 Dimensione del blocco Dimensioni di linea di cache molto grandi esaltano la località spaziale e da questo punto di vista diminuiscono le probabilità di miss Tuttavia avere pochi blocchi diminuisce l efficacia nello sfruttamento della località temporale Inoltre avere dei miss con blocchi grandi porta a un costo di gestione alto (bisogna spostare molti byte) Quindi abbiamo un tradeoff
18 Tradeoff
19 Gestione delle miss La Parte di Controllo deve rilevare le miss e portare in cache i dati contenuti nella memoria indirizzata Hit in lettura (conseguenza di i-fetch e load) accesso alla memoria con il massimo della velocità Miss in lettura (conseguenza di i-fetch e load) La Parte di Controllo mette in stallo la CPU (cicli di attesa, con registri interni immutati), finché la lettura del blocco (dalla memoria in cache) viene completata Instruction cache miss: si ripete il fetch dell istruzione Data cache miss: si completa l accesso al dato dell istruzione (load)
20 Gestione delle miss Hit in scrittura (solo conseguenza di store) write-through: scrive sulla cache e in memoria (con buffer di scrittura) write-back: scrive solo sulla cache, e segnala che il blocco è stato modificato (setting del bit di Dirty) Miss in scrittura (solo conseguenza di store) con politica write-back, stallo della CPU (cicli di attesa), lettura del blocco dalla memoria in cache (write allocate), completamento dell istruzione di store in cache con politica write-through, solitamente non si ricopia il blocco in cache prima di effettuare la scrittura (no write allocate) che avviene in memoria
21 Esempio FastMATH Intrinsity Split cache 256 blocchi 16 word per blocco write-through e writeback I miss rate: 0.4 % D miss rate: 11.4 % Total miss rate: 3.2 %
Esercitazione su Gerarchie di Memoria
Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,
Struttura delle cache a indirizzamento diretto
Struttura delle cache a indirizzamento diretto Ogni posizione della cache include: Valid bit che indica se questa posizione contiene o meno dati validi. 0: posizione di cache non ancora utilizzata 1: posizione
Esercitazione su Gerarchie di Memoria
Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,
Criteri di caratterizzazione di una memoria
La memoria Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile; Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità
Cache: 1 livello della gerarchia di memoria
Cache: 1 livello della gerarchia di memoria Processore Controllo Datapath Registri On chip cache Cache di secondo livello (SRAM) Memoria principale (DRAM) Memoria secondaria (Disco) 4 decisioni da prendere
La gerarchia di Memoria
La gerarchia di Memoria Metodologie di progettazione Hw-Sw- LS. Ing. Informatica Gap delle prestazioni DRAM - CPU 000 CPU 00 0 DRAM 980 98 982 983 984 985 986 987 988 989 990 99 992 993 994 995 996 997
Lezione 22 La Memoria Interna (1)
Lezione 22 La Memoria Interna (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Dove siamo e dove stiamo andando La gerarchia
Corso di Fondamenti di Informatica Elementi di Architettura
di Cassino e del Lazio Meridionale Corso di Informatica Elementi di Architettura Anno Accademico 2016/2017 Francesco Tortorella Modello di von Neumann Bus di sistema CPU Memoria Centrale Interfaccia Periferica
Architettura hardware
Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
Memoria Virtuale e I/O
Memoria Virtuale e I/O Paolo Baldan [email protected] Introduzione CPU - progettazione - prestazioni ideali Le prestazioni reali sono influenzate (pesantemente) da memoria e I/O. Memoria - gerarchie
SOLUZIONI: Memoria virtuale
SOLUZIONI: Memoria virtuale INTRODUZIONE Memoria Virtuale: Si parla di memoria virtuale quando la memoria principale viene utilizzata come cache per la memoria di massa (dischi, nastri): - I programmi
Esercizi sulle prestazioni delle memorie cache
Esercizi sulle prestazioni delle memorie cache Prof. Alberto Borghese Dott. Massimo Marchi Dipartimento discienzedell Informazione dell [email protected] Università degli Studi di Milano A.A. 2012
Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill
Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill // Copyright 7 The McGraw-Hill Companies srl Copyright 7 The McGraw-Hill Companies srl Supporto alla CPU: deve fornire alla CPU
Calcolo prestazioni cache (1)
Calcolo prestazioni cache (1) Consideriamo gcc: miss rate x istruzioni = 2% miss rate x dati = 4% frequenza di letture e scritture=36% Consideriamo inoltre un sistema con: CPU: Clock=3Ghz, CPI ideale =1
Esercizi svolti sulle cache - Soluzioni
Esercizi svolti sulle cache - Soluzioni 1. Si progetti una cache di 16K a 8 vie per un sistema con indirizzamento al byte di 32bit, bus dati a 32 bit, bus indirizzi a 30bit, e word di 4 byte. In quale
Prestazioni & Co: CPU, Memoria, I/O
Prestazioni & Co: CPU, Memoria, I/O CPU - progettazione - prestazioni ideali Panoramica Memoria - gerarchie di memoria: cache, memoria principale, etc. - organizzazione, dimensionamento, indirizzamento,
Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:
Cache associativa Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: 1. Indirizzamento diretto (già visto). Ogni blocco della memoria inferiore può
Architetture Avanzate dei Calcolatori. Valeria Cardellini. Divario delle prestazioni processore- memoria
La gerarchig erarchia di memorie e (1) Architetture Avanzate dei Calcolatori Valeria Cardellini Divario delle prestazioni processore- memoria 100.000 Soluzione: memorie cache più piccole e veloci tra processore
ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!
ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore
ISA Input / Output (I/O) Data register Controller
ISA Input / Output (I/O) Numerose Periferiche di tanti tipi diversi, collegati alla CPU mediante BUS diversi. Solo Input (tastiera, mouse), producono dati che la CPU deve leggere. Solo Output (Schermo),
Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1
Esercizio 1 Sia data una memoria cache di tipo a indirizzamento diretto (direct-mapped), con blocchi di dimensioni pari a una sola parola per blocco, e contenente. La parola è lunga 16 bit, e la memoria
Memoria Cache. La memoria cache
Testo di rif.to: [Congiu] 6.1 (pg. 193 199) Memoria Cache 06.a Memoria associativa Cache completamente associativa Cache a mappatura diretta Cache set-associativa a n-vien Cache nell Xscale PXA-255 La
La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini
La memoria Architetture Avanzate dei Calcolatori Valeria Cardellini Nelle lezioni precedenti { Memoria La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi L2 Cache Blocchi Memoria Pagine
PRESTAZIONI. senza e con memoria cache
PRESTAZIONI del processore MIPS pipeline senza e con memoria cache Prestazioni del processore GENERICO (P&H pp 29 31) Definizioni dei parametri di prestazione fondamentali del processore: sia P una prova,
MEMORIA GERARCHIE DI MEMORIA
MEMORIA GERARCHIE DI MEMORIA La memoria è divisa in più livelli che sono dal più vicino al più distante al CPU, per tempi di accesso: memoria cache, SRAM, capienza (MB), più veloce (decimi di ns), costosa
Memoria cache, interrupt e DMA
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
Cache e gerarchia di memoria
Cache e gerarchia di memoria Cache e gerarchia di memoria Gerarchia di Memoria: motivazioni tecnologiche per caching. Località: perché il caching funziona Processor Input Control Memory Datapath Output
SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI
SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI ESERCIZIO 1 (10 Punti) Si implementi una rete sequenziale la cui uscita valga Z=1 solo quando viene riconosciuta la sequenza in ingresso
Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a)
Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Capitolo 7: Input/Output Capitolo 7 Input/Output Esercizi sul BUS: 1. Bus sincrono 2. Arbitraggio
Sommario. Indirizzamento della memoria cache. Indirizzamento della memoria cache. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis
Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Esercitazione 2 (Capitolo 3) Memoria Cache Memoria Disco Codice di Hamming Sommario Memoria
La gerarchia delle memorie. Sommario
La gerarchia delle memorie Prof. Alberto Borghese Dipartimento di Scienze dell Informazione [email protected] Università degli Studi di Milano Riferimento Patterson: Sezioni 5.1, 5.2 1/37 http:\\homes.dsi.unimi.it\
Architettura di un calcolatore: Introduzione parte 2
Corso di Calcolatori Elettronici I Architettura di un calcolatore: Introduzione parte 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle
Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?
Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Cos'è un computer? 3 Cos'è un computer? E' un dispositivo in grado di Elaborare
