Press "Enter" to skip to content

GOTO 2012 • Mythbusting Modern Hardware to Gain ‘Mechanical Sympathy’ • Martin Thompson


benvenuto all’ultimo discorso del giorno in
i MythBusters tracciano e indovina
l’ultimo discorso per la maggior parte delle persone
qui ea meno che non vadano al keynote
più tardi quindi spero che non tutti si annoino
di discorsi finora cercherò di non esserlo anche io
noioso verso la fine della giornata così
di cosa parlerò bene?
di seguire i Mythbusters
tradizione vogliamo guardare un numero di
cose e vieni con uno dei tre
conclusioni o il mito è confermato
siamo d’accordo con che è possibile la
il mito è plausibile che potrebbe essere possibile
dati certi vincoli o il mito è
rotto in quanto è un mito totale e noi
non dovrebbe davvero prenderlo anche
sul serio ora stavamo facendo questo per a
numero di cose nel giorno ma da allora
Sono un po ‘ di benzina e questo è
da dove proveniva la simpatia meccanica
perché Jackie Stewart è il pilota automobilistico
in realtà è venuto fuori con il termine non lo è
il mio termine l’ ho chiaramente rubato e riutilizzato
in questo contesto e di Jackie Stewart
termine è stato che si ottiene il meglio da un
auto da corsa quando hai un buon
comprensione di come quella macchina ti lavora
non ho bisogno di sapere come ricostruire un
il motore ricostruisce il cambio ma è necessario
per sapere come funziona per ottenere il massimo
di esso e così ha parlato del driver
lavorare in armonia con la macchina per ottenere
il meglio da ciò che credo sia
molto simile in informatica e noi
ottenere il meglio dell’hardware siamo
abbiamo che stiamo usando per il calcolo ora
questo è un volante di Formula 1
sembra terrificante rispetto a un normale
volante che trovi nella tua auto ma
in realtà non è così terrificante
se riesci a superare l’iniziale ooh così
molte manopole e quadranti perché questo
governa efficacemente e hai anche ottenuto
la marcia cambia qui di lato ma tutto
il resto di queste manopole sono solo piccole
modifiche a quello che puoi fare come puoi
aggiusta poi la mente dei binari che sei
usando così è l’impostazione del limitatore di giri
e quello che farà è lasciarti andare
più veloce ma probabilmente brucerai il tuo
motore e averlo meno affidabile e
userai più carburante per te
fai i trade-off e come stai
diverse cose equilibrio dei freni senza soluzione di continuità
puoi far andare avanti i freni o
indietro ed è solo in una macchina da corsa voi
ottenere più di questi pomelli per giocare con noi
averli in informatica se lavori
qualcosa come il funzionamento di Linux
sistema ti abitui per aiutare il controllo
cambierai manopole e
roba del genere in genere hanno impostato
abbastanza buono, ma possiamo andare e cambiare
alcuni di loro ma cercando di dire è
alcune cose non sono così spaventose come te
penso e il mito voglio provarci
oggi è possibile gli sviluppatori normali
capire l’hardware su cui stiamo lavorando
Non ho mai parlato prima di così
ci sarà interessante
la gente potrebbe pensare alla fine di sì, noi
posso capire che non è così spaventoso
o potresti andare a una merda santa che non vogliamo
mai toccarlo di nuovo, si spera, non il
quest’ultimo
così siamo noi uccelli di piccolo cervello
questo non può capire cosa sta succedendo
qui dentro in realtà è un ingiusto
rappresentazione di homer perché se
chiunque è un grande fan dei Simpson , lo farai
in realtà ho capito che lui è veramente
intelligente e ha un grande cervello che è
ho preso una matita e lo è
causa i suoi problemi ha avuto la matita
tirarla fuori quando ero così egli era veramente
intelligente per un po ‘, ma non gli piaceva
o oh ci piace questo piccolo ragazzo Cartman I
Cartman è piuttosto interessante perché
lui è davvero intelligente ma è pigro
ed è come la tipica società moderna
Lizzy non vuole mettere quella parola
in Voglio tutto ieri
sfortunatamente potresti quasi disegnarlo
conclusione sull’informatica di
il nostro uso del duro lavoro nel momento in cui noi
non mettere la disciplina e il
professionalità nel comprendere abbastanza
sulle nostre piattaforme come faresti
un’altra disciplina quindi diamo un’occhiata a questo
come una domanda mentre attraversiamo siamo noi
solo essere pigro o è troppo difficile
per capire in modo che il primo mito inizi
fuori con chi pensa
Le CPU non stanno migliorando le mani se
pensi che non stiano diventando più veloci
questo è solo un po ‘è una specie di
interessante per la stragrande maggioranza dei
l’industria continua a dirlo
quindi diamo un’occhiata in un po ‘
più particolareggiato l’erba Sutter ha scritto famoso
le i pasti gratis laggiù che un
molto di questo viene discusso e lui è
in realtà ha ottenuto un punto molto molto buono
in questo e per lo più scende dentro
le termiche all’interno delle CPU mentre le eseguiamo
sempre più veloce hanno bisogno di ottenere
più caldo e più caldo e dissipazione del calore
sull’abilità con cui abbiamo a che fare è
Incred
essere difficile da risolvere, quindi non possiamo avere
Le CPU stanno diventando più calde che è fondamentalmente
lì lei non è che non possono ottenere più velocemente
non possono diventare più caldi e la velocità di clock è
la cosa principale che lo rende più caldo
a causa delle tensioni per cui guidiamo
che ma ho intenzione visualizzare l’orologio
la velocità non è tutto
quindi ecco un semplice test, parliamo di parole
il testo di Alice nel Paese delle Meraviglie per quanto tempo
ciò richiede un po ‘di CPU rispetto a
ultimi anni quindi torniamo al nocciolo
a zero e siamo a 2,4 gigahertz e
abbiamo che possiamo effettivamente dividere le parole
che un intero libro 1400 volte al secondo
è davvero bello, ma guarda
cosa è successo mentre siamo andati avanti
e le CPU accelerano i miei suggerimenti
la velocità del clock sta andando giù anche
perché siamo preoccupati per quelli
le termiche parecchio, ma guardate
operazioni al secondo sta salendo
è solo negli ultimi anni e
Ho provato alcuni processori successivi che
la tendenza continua ma non lo farò
fermarsi lì perché non è tutto
una storia che è interessante
quindi diamo un’occhiata all’interno di una CPU e
capire perché alcuni di questi stanno diventando
più veloce, questo è il Sandy Bridge
microarchitettura questo è tipicamente quello
la maggior parte dei portatili sono combinati oggi
a meno che tu non stia ottenendo uno dei tanti
ultima in cui sarebbe trovato è Ivy
Bridge Ivy Bridge è lo stesso
la microarchitettura è questa, ma aggiungi del ghiaccio
pista per renderlo un po ‘più piccolo così
questo è lo stato attuale della tecnica per
Processori Intel x86 ora dentro a
processore all’università ci viene insegnato tutto
abbiamo una CPU su una nostra tematica
unità logica appendere
Ne avrò un tre qui questo è
un processore un core che hai effettivamente
il parallelismo sta accadendo all’interno delle CPU così
invece di andare più veloci andiamo in salotto
l’ andare e il parallelo dentro ma abbiamo
in realtà sei porti qui perché
abbiamo anche avuto molto a che fare con il
lato destro qui caricamento e memorizzazione
dati e noterai che il piccolo
scatole rosse che sono delineate quelle sono
in realtà nuovo il
con Sandy bridge sul precedente
un’architettura che era Nehalem e
rendere queste cose davvero molto veloci
dobbiamo dar loro da mangiare perché possiamo
avere più istruzioni per ciclo
andare avanti è completamente possibile
hanno tre operazioni di bocca in corso a
allo stesso tempo di caricare gli indirizzi
sono all’indirizzo di caricamento del negozio è stato
generato e memorizzando un pezzo di
dati così che è impossibile avere ragione
in realtà fino a sei operazioni per ciclo
andando avanti così la velocità di clock no
equivale a operazioni effettivamente essere
giustiziato perché queste cose sono
succede in parallelo se guardi
casa bene, che è la prossima generazione
da questo andremo a mangiare porti
ampio e avremo più dati
percorsi per ottenere dati dentro e fuori
questi e vedrai abbastanza presto perché
perché l’alimentazione di questi è in realtà il
problema ora sto facendo una dichiarazione che lo farò
vai dietro in un secondo ma
solo un paio di cose da notare e qui
specialmente intorno alle prestazioni vedrai
qui hai solo una divisione e
un salto onlys così codice questo ramo Heli
codificare che fa molta divisione e
le operazioni rimanenti non vanno così velocemente
come semplice aritmetica usando plus
meno e moltiplica quindi cerchiamo di scavare
in quello che sta effettivamente succedendo così indietro
qui tutte queste cose diverse
all’interno della CPU ci sono i contatori per vedere se
usi una griglia che ti dice cos’è
effettivamente andando lì tagliare i contatori per
tutto così possiamo profilare questo e
dì cosa sta succedendo a uno degli strumenti
che ci lascia fuori quei contatori è per
stat su Linux quindi qui in fuga davvero
per prima cosa semplice c’è un sacco di campane
e fischietti puoi passare a questo così
se scrivi la lista dei perf , ti danno le pagine
e le pagine ti assicurano che la cavi ancora di più
perché ne avrai bisogno
tutto ciò che puoi profilare ed è
tutto, dai contatori della CPU a ciò che il
sistema operativo sta facendo quello che il
I / o sistemi stanno facendo che posso darti
un sacco di cosa sta succedendo ora qual è il
molto semplice mi metterei a correre il
Alice nel paese delle meraviglie attraverso questo testo
dimmi cosa sta succedendo, questo è Nehalem
architettura prima di tutto coppia cose
notare 2.8 gigahertz è quello che è
in realtà ma in realtà è in esecuzione a
tre aree font che hanno causato un turbo
Incremento
quindi funziona più veloce è permesso
orologio spento quando non è in esecuzione tutto il
core allo stesso tempo vedrete
guarda quanti cicli del fronte
finire sul back-end quindi cosa significano i
front end e back end front end è
recupero delle istruzioni in decodifica e
il radley da eseguire è il back end
eseguirli e ritirarli
istruzioni dopo aver finito il
front end e back end è questo processore
inattivo una parte significativa del tempo così
se lo facessimo più veloce sarebbe il nostro
l’esempio precedente è diventato più veloce
no, se le CPU stanno diventando più veloci
non così quasi irrilevanti sono pronti
più veloce di quanto li stiamo nutrendo e lo farò
ottenere al prossimo mito perché non siamo
nutrirli abbastanza veloce, ma facciamo solo
dare un’altra architettura
generazione del Sandy Bridge così
eseguendo esattamente lo stesso test
ponte sabbioso guarda i nostri cicli inutilizzati
lasciato cadere siamo scesi dalla trentina
e trenta otto ventisei e
ventuno e su turbo booster questo è
un boost turbo Aiken di due punti quattro
più alto perché hai due turbo in
Sandy Bridge
quindi sono in realtà questo è un
comparazione like-for-like su esattamente il
stesso pezzo di lavoro
notare il tempo di 5,9 secondi nove punti
otto per completare il lavoro per una visione
questo è in realtà il 25% in più
le generazioni perché è a causa dello spreco
cicla le istruzioni effettive per ciclo
non è buono rispetto al precedente
generazione e puoi continuare a tornare indietro
quindi tutte quelle figure che noi stessi il
motivo per cui è diventato più veloce di generazione
non ha a che fare con la velocità dell’orologio
con come stiamo alimentando quelle esecuzioni
unità all’interno e quindi è un tipo
di osservazione interessante quindi RC se tu
usare sempre più velocemente direi che lo è
plausibile ma non quello che pensa la maggior parte della gente
sta diventando più veloce perché lo siamo
alimentandoli più velocemente, non le CPU Custis
essi stessi sono significativamente più veloci per
da molto tempo con le CPU che avevano
appena stato inattivo inattivo
da nutrire e non stiamo ricevendo dati
loro abbastanza in fretta questo è interessante
la memoria fornisce mani ad accesso casuale
chi pensa che la memoria ci dia accesso casuale
hey ho ottenuto quello che il 10 20 per cento della stanza
lì ho detto sì la maggior parte della gente non pensa
quindi il nome suggerisce questo accesso casuale
crediamo tutti che avremo accesso casuale
beh, quello che è interessante è questo
è il costo della creazione alla fine di
il giorno per arrivare a me nella memoria è abbastanza
costoso quindi vogliamo alimentare quelle CPU
davvero veloce come stavamo parlando
ma come li alimentiamo davvero?
Velocemente, abbiamo bisogno che il cervo sia vicino
a loro da qualcosa che è molto molto
veloce e questa è la memoria classica
gerarchia dove siamo in cima
ha ottenuto i registri CPU e buffer all’interno
quei core sono incredibilmente veloci
come le ultime generazioni ora anche a
registrati per registrare move non costa
qualsiasi cosa, perché quelle istruzioni sono
essere decodificati è in realtà solo re
non essere nel file di registro non lo fa
anche spostare più così è gratis quando
sei all’interno del core in modo efficace e
ottieni buffer in una notte che avremo
tocco su un secondo che abbiamo
strati di cache e cache si ingrandiscono
e più lento più grande e più lento, quindi ogni
volta che avete bisogno di trattare con più dati del
complicazioni nell’affrontare il più grande
dimensione significa che diventa più lento così che cosa
in modo efficace ti dà se si progetta
davvero bene hai il costo per
il più grande e il tipo di memoria che è
stoccaggio permanente ma con la velocità di
l’accesso del più veloce se stai mangiando
tutto attraverso correttamente e anche a
cosa interessante che non è parlato
su così tanto ma è comunemente davvero
importante è pari alla parità di accesso a
il disco è molto più per operazione che
parte per accedere a una cache L1 e si inizia
vedere i processori moderni stanno iniziando a
Chiudi tutte le cose che vedrai
quello sul piccolo ponte sabbioso-e
server ora se trasferisci memoria da
una rete difficile al mare
ti è sempre stato trasferito a mere
memoria ora possiamo trasferire alla cache
va bene che è molto più veloce e molto più lento
ultimamente ma non è per quello che stanno facendo
è la ragione per cui non lo fanno
in altro modo trasferendo i ricordi loro
non c’è bisogno di par la memoria fino a fare
che e trasferirlo in modo stiamo cercando
per mantenere quegli Stein termici di tutto
sono un po ‘cadendo le termiche ora sono
ottenere questo potere ma è ora
in modo da vedere qui abbiamo il classico
una sorta di velocità contro costo, ma davvero
è importante, quindi diamo un’occhiata a
un po ‘cosa sta succedendo, quindi guardiamo
all’interno di un core della CPU belle queste scatole blu
in cima o l’equivalente di ciò che è
all’interno del core della CPU che cosa fa
prima parla bene da quel punto
di tutto ciò parla all’ordinamento della memoria
tampone, perché quando hai tutti
quei colori con quei nuclei che hanno tutto
quelle unità di esecuzione in esecuzione al
Nello stesso tempo ne hai un sacco
parallelismo e l’unica cosa che non fai
voglio fare è stallo perché vedi
quelle istruzioni si sono bloccate era un grande
problema quindi cerca di prevederne i rami
prova a prefetch i dati provano a fare tutto
tipo di cose è fatto letteralmente
eseguirlo colpisce un ramo e va
sulla base dei miei dati penso che andrà
In questo modo assumerò quel ramo
torna indietro è vero e me ne vado
modo nel codice e continuare l’esecuzione
finché non trova quel piccolo diversivo
Credo che sia sbagliato ha il back-out e
buttato via per affrontare tutto questo
e fai che progredisca usi il
buffer di ordinazione della memoria per questo perché
può fare progressi e finché dura
non mostra che progressi verso
mondo esterno che è completamente bene una
scratch pad e se lo trova
letteralmente che di gas era correggerla
posso solo lasciar perdere e quei buffer
fornire quello ma quei buffer sono
davvero economico per cercare anche i dati
quindi c’è una coda completamente associativa noi
può solo guardare il backup dei dati che cosa sta succedendo
se sei in concorrenza quelli sono i
grosso problema di cui sei preoccupato
vedere le ultime versioni di dati e
famiglie da frequentare nel mio corso più tardi
la settimana parleremo molto di cosa è
succedendo lì dentro è lì che si trova il
ordine di memoria con titolo affettato ma vediamo
per andare più lontano, da lì siamo
ho a che fare con la cache l1 l2 l3
queste piccole cose sul lato chiamato
la linea alimenta il riempimento della linea e il
giusto combinando i buffer quelli sono davvero
interessante soprattutto quando vai a fare
una scrittura e ottieni una cache miss che puoi
continua a scrivere a quelli ea te
può continuare a fare progressi e lo farai
inizio
dopo un po ‘ che il loro più grande costo è
un’istruzione miss seguita da a
rossore seguito da destra e questo è
la maggior parte delle persone controintuitivo no
rendersi conto che i diritti sono in realtà meno
problemi di tariffe perché i diritti possono essere
buffered legge che hai una supposizione e
istruzioni questo non hai speranza
perché non sai dove sei
andare avanti quindi diamo un po ‘
più spaventoso qual è il sistema di flusso di cassa
sembra che se lo scaviamo bene è così
proprio come l’ultima diapositiva ma è così
era un po ‘ più dettagliato quindi il nostro ricordo
tampone ordinamento sta parlando fuori lo più
la cache di dati l1 quindi la nostra l1 è in realtà
dividere dati e istruzioni abbastanza piccoli
solo 32 pezzi di cura per quelli ed è
organizzato in ciò che è noto come cache
linee linee cache su un incidente sono 64
byte così quando scrivi un singolo byte o
single bit o una sola parola di cui hai bisogno
linea di cache per essere disponibile lì il tuo
valuta dello scambio di dati all’interno del
processore stesso, quindi stai trasferendo
64 byte alla volta in una notte e quelli
sono effettivamente tabelle hash sono solo
Tabelle hash hardware che se si ottiene un
La signorina deve essere tirata alla fine
chiamerebbe qualcosa da spingere come
bene e questa è la cosa più vicina a
il nucleo bello e veloce bello e vicino
come se alcune cose stessero svanendo
si noti la doppia freccia che alimenta i dati in
quella era un’edizione del ponte della domenica con
Nehalem c’era solo una poppata orale
e che in realtà è uno dei più
motivi fondamentali per cui quest’ultimo
l’algoritmo era più veloce su Sandy Bridge e
era prima perché avevo altri dati
percorso per nutrire e farlo andare più veloce così
cos’altro è interessante sono questi ragazzi
qui è qui che il casuale
domanda di accesso arriva nella memoria noi
trattare con la memoria virtuale non è il
memoria fisica su cui operiamo
sistemi che hanno virtualizzato ciò che siamo
facendo così è necessario l’indirizzo fisico
essere elaborato sulla base del virtuale
indirizzo che stiamo facendo di solito
alzò gli occhi su un tavolo di pagina che sarebbe stato
un’operazione incredibilmente costosa per
guardare attraverso un albero di strutture per
ogni dato indirizzo così usiamo questi
pensa a TLB la traduzione come lookaside
buffer e sono un po ‘hardware
nascondiglio
di memoria indirizzabile dal contenuto che sembra
uno verso l’altro molto molto veloce
se ottieni una signorina su uno di quelli che hai
devo andare al tavolo della pagina e così
questo è ciò che rende la tua memoria accessibile
davvero molto più lento, quindi immagina
qualcosa di veramente casuale accesso ogni volta
ti mancherà il TLB contro non
ottenere una S sul TLB che deve fare
qualsiasi enorme differenza abbiamo anche il
fattori pre e cosa fa il prefetch
stanno cercando quello che stai facendo e
cerca di avere i dati disponibili per te
e se vuoi farlo in modo ovvio
uno è il fattore di pre streaming in modo che il
due pre-fratture in ognuna di queste
stratifica il fattore di pre streaming che è
corre anche qui, cerca solo a
parte del tuo streaming attraverso la memoria così
immagina di camminare attraverso un array
leggere il morso dopo il morso dopo averlo morso
vede che non stai facendo e sta facendo il prefetch
che i dati nascondono la latenza prima di te
arrivarci è davvero semplice
davvero veloce
c’è anche il puntatore di istruzioni
Prefettura che è più intelligente e
in realtà guarda come stai camminando
attraverso il codice sui tuoi rami e se
stai attraversando la memoria in a
modo prevedibile può prefetch come
bene, ora è puramente in streaming se tu
avanti all’indietro può avere anche due
lacune in esso finché è prevedibile
ma vengono chiamati i passi falsi prevedibili
passi da gigante e quelle falcate devono essere minori
rispetto alla dimensione della pagina del funzionamento
sistema perché le voci TLB sono mappate su
la dimensione della pagina al sistema operativo così
la voce in cui funziona TLB è il
pagina e quindi l’offset all’interno della pagina
quindi non verrà generato su pagine e pagine
sono in genere per la cura che sono stati
ma ci rendiamo conto nei grandi sistemi di memoria
hanno bisogno di diventare più grandi quindi se sei su
una delle ultime versioni di Linux tu
effettivamente scopri che stai usando trasparente
pagine enormi, quindi in realtà è passata alle due
pagine megabyte e non lo usa se
questa è la bassa latenza
un bel tipo di gotcha interessante
perché come deve fare la spazzatura
raccolta e compattazione di quelli pari
a volte ottieni enormi pause che sei
non sapendo che c’è lo spazio
fino a darti due megabyte di pagine a
tempo ma così lo sta facendo e tu puoi
cose simili oltre giusto così questi
le cose sono prefetching per te e ottenere
in
proprio ora, mentre esco più avanti per la 13
l3 Nye ha un boss anello su di esso e ho
vedere tutto al di fuori del singolo
core che è il loro caso l1 e l2 che ho
ho un ring bus che è questo ring
incredibilmente veloce e parla a pezzi
di memoria nel l3 questi sono normalmente
organizzato in due blocchi di megabyte questo
ha dei vantaggi e che puoi
in realtà spegnere diversi blocchi in
anche i tempi così di nuovo andando a quello
budget di potenza e c’è anche un link
da qui a chi è conosciuto come il
sistema l’agente che contiene il
controller di memoria dice che in realtà
mi ha parlato a memoria ma anche il
controller qpi parleremo con gli altri
socket continua altre CPU e così tu
posso immaginare la differenza tra me
accedere a un pezzo di memoria che è in a
cella qui contro Sto attraversando a
canale di memoria o qpi Boston da qualche parte
laggiù verso un’altra macchina o un’altra
socket che ha a che fare con esso al
stesso tempo quindi questo non ha intenzione di dare
ti piace l’accesso uniforme alla tua memoria
siamo usciti ciò che è effettivamente nella memoria
di nuovo si fa ancora di più
interessante è così il controller di memoria
in primo luogo ha un buffer di scrittura in esso così
può effettivamente richiedere una richiesta di scrittura
riconoscilo indietro prima ancora di
lo scrive e quindi può accodarli
cose fuori ma poi scrive attraverso
più canali fino a più banchi
di oscurità che sono nella tua cosa e così
all’interno del componente aggiuntivo hanno tutte le banche
di solito tra zero e all’interno del
banca e tu puoi per quelli su insieme
e così ascolterai il rango e il rango giusto
più attenzioni che funzionano insieme al
le banche sono allineate in modo che diventino tutte
stessa unità ora all’interno di questo abbiamo una ris
di memoria e sono in genere per la cura
da una cura di 16 bit in modo da avere 2 byte in
ogni cellula ora per leggere o scrivere uno di
quelle cellule non puoi affrontarle
direttamente quello che devi fare
è prendere quella carica molto molto piccola
è in quella cella e connesso a a
amplificatore di senso era l’ amplificatore di senso
è effettivamente ciò che è noto alla riga
buffer e amplifica la carica che
vede
positivo o negativo fino a una carica
è molto facile da leggere dal resto
la circuiteria quindi cosa si finisce a fare
stai leggendo una riga alla volta nel senso
amplificatore in un raro che è il vero
buffer quindi si accede alla colonna all’interno
così inizia a vedere uno schema qui
che se stai solo camminando
memoria che tocca un byte in ogni riga
non sarà neanche lontanamente veloce come
attraversando la memoria l’altro consapevole
quindi pensalo in qualche modo in orizzontale e
verticalmente dove raggiungi una fila e tu
andare sequenzialmente attraverso una fila grande
differenza perché è una lettura in
amplificatore di senso ho pensato che la stasi nella tua
buffer di riga da leggere o scritto e tutto
questi canali possono funzionare in parallelo così
il motivo per cui abbiamo i canali
le banche parallele e multiple è il costo
di questo viene nascosto perché lo fa
cose in parallelo da pipelining così come
una richiesta di lettura che invia il
il prossimo subito non aspetta
perché va in un’altra banca se questo
non può e così mentre uno restituisce il
quelli che ha appena fatto inondare il capo e
tenerlo completo in ogni momento ciò che è ora
questo significa tutti quando abbiamo effettivamente prendiamo
insieme e lo misuriamo davvero il primo
quota trova davvero molto interessante
Siti di Richard che è stato l’architetto di
il processore alfa DAC il Raptor che
altri tempi è stato riconosciuto come il
il processore più veloce che lo circondava era in realtà
probabilmente il primo duplice scopo
processore perché funziona a caldo
competere e cucinare su di esso allo stesso tempo
ma ha fatto la citazione che dovremmo
smettere di fare processori più veloci non lo è
il problema il problema è la memoria
sottosistemi che è dove l’azione reale
dobbiamo renderli più veloci, lo so
la gente sta iniziando a pensare a questo
e scrivere le cose più velocemente ma anche
fa la differenza per noi in ciò che abbiamo
devo scrivere il software che accede
memoria in modo amichevole e cosa
questo significa finchè le cifre vanno
bene qui sta usando questo è lo strumento Sandra se
Cammino solo in modo sequenziale
attraverso la memoria mi ci vogliono tre orologi
per ottenere i dati l1
11 cicli di clock da l2 14 a 13
6: 9 e secondi ora perché stanno andando
a ora secondi dagli orologi perché meri
la memoria non è per ricordare l’orologio
la velocità del processore è certa
caratteristiche fisiche a come il pre
i cicli di ricarica funzionano con un set di testo
ammonta al tempo che accada così tu
misura quello in nanosecondi che è necessario
risolvi questo è un tre gigahertz
processore tre cicli di clock è uno
nanosecondo per arrivare ai tuoi dati l1 così
in modo sequenziale posso attraversare la memoria
davvero molto veloce che è il raw
cifre che non tengono conto nemmeno
pipelining così come il tuo accordo è in corso
gasdotto attraverso un sistema come quello
questo è anche vedere i sindacati nascosti
tre cicli di clock diventa
efficacemente libero se cammini
memoria in sequenza Nick step up I
pagine menzionate in modo che le pagine trattino
il buffer di lookaside di traduzione ma esso
si occupa anche del sistema operativo e
come taglia tutto in virtuale
pagine di memoria se vado in giro completamente
in modo casuale all’interno della pagina al contrario di
semplicemente passandoci in modo sequenziale l1
e l2 sono solo un hash table fisso
e come funzionano così c’è ancora il
lo stesso numero di cicli di clock l3 sale
e la ragione che sale è perché
siamo collegati a un sacco di
punti diversi sul capo e vedo
ogni lacuna sul capo è un ciclo extra quindi
puoi casualmente andare intorno a loro più
i mancati TLB iniziano la corrispondenza perché
non c’è una cache TLB sulla l3 così tu
inizia a ricevere quelli e i prefetches
smettila di lavorare così bene per te, così otteniamo
più latenza ora l3 e inizia a ricevere
significativamente più latenza sulla memoria
quando ci manca in quella fase nello stesso
pagina quindi cose come gli amplificatori di senso
e tutti sono illuminati e le cose sono tutte
ottimo per noi ad un certo livello
andiamo a camminare in modo completamente casuale
intorno al nostro Haven bene ancora l1 l2 sim
storie utente
beh, adesso comincio a fare sul serio
13 e guarda cosa mi ha aiutato e questo è
la CPU più veloce disponibile intorno a a
momento per un sottosistema di memoria che sono io
e in streaming devi tornare indietro di un paio di
le generazioni tornano anche solo a
Westmere e tu aggiungi solo altri 20 a
30 nanosecondi su che risalgono al
corte che architetture ed è a
cento e cinquantanove un secondo
per un sacco di memoria a cui accedere
Ho pensato giusto così diventa molto
più lentamente così come accediamo realmente alla memoria
conta davvero che tu sappia cosa sia quello
significa quando dico qualcosa del tipo
la figlia è un ramo signorina nostra
istruzione questo è il tuo caso peggiore dopo
cosa è un rossore è la prossima cosa e
poi un diritto
scrivendo bene il codice di Haley Browns
cosa succederà, mancherà di più
spesso perché è solo troppi dati per
tieni d’occhio bene iniziamo a guardare
leggendo e scrivendo memoria lavoriamo
attraverso le cose in sequenza se possiamo
ma non è sempre il caso che non possiamo
fallo ma lavoriamo su blocchi di dati
per capire che una coesione ha un senso
questo in realtà non è strano, questo è solo
buon design tenere insieme le cose
sono coesa fare cose che non coppia che
non sono coeso, trovo che la gente ti dica
non ho bisogno di sapere tutte le cose
quello è andato via in effetti realmente buono
accoppiamento e buona progettazione della coesione successiva
la maggior parte di questo funziona e trovo molto
di persone scrivono il codice che in realtà viene
nel tuo profilo funziona incredibilmente veloce
e davvero bello solo perché li impiegano
buoni principi nel design e se il tuo
il codice è completamente casuale e funziona tutto
sopra il hey’ve bene sarà lento
quindi i dati mi dicono che la memoria è casuale
l’accesso a menzogne ​​è un po ‘sballato e
inoltre il fatto che io odio il nome a caso
perché non è rotto è arbitrario
la nostra industria è terribile nel nominare le cose
ok core drives forniscono a caso
accedere a tutti dice che fanno teep
i dischi rigidi sequenziali sono fognari casuali
le mani che pensano che i dischi rigidi siano casuali
accesso uno due tre quattro ok questo è un
bel numero basso questo perché le persone
so davvero che sono solo preoccupati
okay, la macchina sputa la ruggine, tipo
conoscili abbastanza bene così il piccolo disco
gira attorno a un braccio che legge che legge
attori e roba di questo che sta succedendo
prima di tutto la maggior parte delle persone non vale la pena
cosa chiamata registrazione bit di zona chi è
registrazione bit difficile da zone prima vista
qui
nah – c’è una grande differenza tra
scrivendo per le piste ardore e il
tracce interne di un disco facciamo il
densità e quindi cosa fanno i dischi per ottenere
più dati su di loro sono effettivamente messi
più settori in quelli esteriori di te
fai negli interni che non ha bisogno
la velocità angolare è esattamente la stessa ma
ottieni una maggiore densità, quindi cosa fa
questo significa ci penserai per questo
una rivoluzione ne vedrai così tante
più fattori passano sotto così sei
questo è per ottenere un throughput maggiore
un grafico di un debito Western Digital Raptor
disco tenncare che legge i settori esterni
– i settori interni questo è uno dei
i dischi per la cura delle mani più veloci sul mercato I
può ottenere 220 megabyte al secondo in
tracce audio e arrivo all’interno
tracce che ho fatto – quasi 140 questo è un
grande drop-off quindi è solo un throughput
cambiando e questo è uno dei migliori
dischi che sono proprio lì per fare
che diremmo bene girare più veloce è a
modo migliore di farlo è un po ‘
vero ma ci sono dei limiti o meno
i dischi più veloci sono ancora a 15
e non ho ottenuto più velocemente per molto
molto tempo così che cos’altro è nel
hardware questo tipo di bene interessante
facciamo una coda di comandi a questo perché come
il loro braccio spazia sul disco
non voglio che diventi completamente pazzo e
implementa algoritmi di ascensore
Dalbert facciamolo, ma anche così
l’hardware e quindi se sta passando
qualcosa riorganizzerà la coda così
otterrà la cosa sul web passato
ne fa anche molte altre abbastanza ordinate
cose pure e lo fa anche
prefetching di nuovo sta iniziando a vedere
gli stessi modelli riprendono ancora e
di nuovo così si rende conto che hai letto
qualcosa che prefetterò qualcosa ma
anche qual è l’unità di valuta ora
avremo il minimo che puoi leggere a destra
è un settore settori erano in genere 512
byte per molto tempo sono in movimento
quasi esclusivamente a cura del perché
l’hanno fatto
è molto facile perdere quando la stella
fermarci su questo deve lasciare un decente
divario tra ciascuno dei blocchi sulla scrivania
si renderanno conto quando prenderà l’avvio
e fermare tutte quelle lacune iniziano a sommare
soprattutto come dischi sempre più grandi così
in realtà perdi la capacità di immagazzinare
più dati effettivamente realizzando i blocchi
più grande e con meno spazi vuoti otteniamo di più
dati su una scrivania quindi non ci stiamo spostando su 4k
quindi significa che 4k è il minimo che possiamo
leggi o scrivi quindi leggiamo una scrittura di un byte
leggi un passaggio per cura ora se scrivo
un morso a un file che è già o
qualcosa in esso avrei potuto leggere il
prima tutto
Ho cambiato il byte e scritto il tutto
cosa ancora non posso cambiare il
letto caldo e un byte così ho a che fare in
quel livello di valuta allo stadio quindi
quello che va a comporre un’operazione di I / O
così ci sono quattro cose ad essa è veramente
il comando stesso è tutto qui
l’elaborazione elettronica che accade
all’interno del disco ed è abbastanza piccolo
e l’elettronica sta diventando molto molto
veloce il costo qui è dominata dalla
i media fisici in sé così i due maggiori
componenti di questo sono il tempo di ricerca
che deve cercare avanti e indietro
e guarda la latenza di rotazione
bene il tempo di ricerca del braccio da sorta
dall’esterno verso l’interno nei migliori dischi
stai guardando verso le sei
millisecondi quindi hai fatto un passaggio completo
proprio così in media sei tu
probabilmente andando a guardare tre
millisecondi è il costo dello sweep
perché spazzerai via a metà strada
il portatile medio è molto più lento
non lavorare abbastanza bene a vederti
in una sorta di ovunque fino a 15
millisecondi questo è Kenneth
lo stato dell’arte non è inferiore
i dischi non sono la loro latenza di rotazione
qualcosa gira a 10.000 volte a
minuto in realtà ne prende sei
millisecondi per fare una rotazione errore quindi
ti prenderà tre
millisecondi per andare in giro quindi cosa c’è
tutto questo va a sommare bene prendiamo il
bit finale che è il trasferimento dei dati bene se
Ho sempre pensato di entrare nell’arte, lo trovi
nei dischi fisici il trasferimento multimediale
domina il costo e ottiene un tipo
le facce di estensione sono così veloci, quindi se lo sei
in SAS o SATA 3 che stai guardando
di 600 mega Sakon tramite interfacce n
problema no ma i media fisici possono
trattare solo con uno dei 200 megabyte a
secondo tipicamente acceso o spento su quel supporto
quindi abbiamo affrontato il sequenziale
guardiamo in modo sequenziale che posso ottenere solo
tracce esterne a un centro di assistenza 220
Mega secondo andiamo a caso loro
accedi a un blocco di cura quindi non lo farò
prova il formato quindi farò solo un full
per i blocchi di cura legge o scrive il mio
latenza media per ottenere quella che si avvia
aggiungendo il suo pan millisecondi che è
solo un centinaio di operazioni al secondo
puoi passare allo spinning fisico
scrivania
qual è il tuo rendimento quando sei
quella specie di lettura casuale è meno
di un mag un po ‘al secondo che non lo è
davvero impressionante che troverai davvero
che il circuito quindi se scrivi a
prova per fare questo si otterrebbe un po ‘di più
di un mega secondo potresti ottenerne due
perché il circuito è abbastanza intelligente così
tutto questo è ciò che circonda tutto questo
darti è un raddoppio del
massimo teorico cercando di essere
intelligente che accede in modo casuale a una scrivania
Avrei iniziato a morire bene cosa può fare
lo facciamo per migliorare ci sono alcuni trucchi
guarda un braccio che ne dici di averne due
Donal metà del tempo sede facciamo un
molto più costoso mantenere alcuni dischi
copie multiple erano una scuzzy
trucco per un po ‘quindi ne ho di meno
latenza rotazionale ma ancora
tutto ha una conseguenza, ricorda
di nuovo alla macchina da corsa si gira un quadrante
uno di fatto ha sempre un
conseguenza la conseguenza è che lo è
ci vorrà più tempo per scrivere, sei tu
avrò meno capacità di cui ho parlato
hanno le code di comando e quelle sono
sempre meglio e più intelligenti, ma lo sono
molto limitato in quello che può fare quello
cosa che in realtà possiamo fare abbastanza bene
è messo davanti una cache che è
tipo di ragionevole per la lettura
in realtà vince davvero per la scrittura
perché è tornato a leggerti
non so cosa otterrai
e questo è difficile da prevedere ma
per scrivere è perfetto perché puoi
basta riconoscere lo studio in cui il
pericolo è questo è archiviazione permanente così
deve essere ci siamo abituati ad avere la batteria
sostenuto che non è nemmeno più un problema
perché le batterie si guastano nel tempo ora
abbiamo un grande grande condensatore
e i condensatori Novak e
sono davvero affidabili e vedono se non
anche SSD di materie prime e cose che puoi
compra un laptop laggiù con un’intranet
SSD solo completamente mainstream ed è
ho un condensatore che Sears tutti i miei dati
quindi se si tira su tutto bene
ancora vedere se in scrittura e quindi è
riconosciuto e inviato a vedere se il disco
ora attraverso tutto questo non ho detto
tutto ciò che riguarda il sistema operativo
sistema operativo c’è molto da fare
questo è tutto, ma supponiamo che tu sia
fare le scritture sincrone su disco così
hai attivato la sincronizzazione F o la sincronizzazione dei dati F
quando se scrivi attraverso il
il sistema operativo non può aiutarti
passando e sei in balia così
se stai scrivendo alla base di idee dove tu
deve avere i tuoi dati il sistema operativo
non hai a che fare con la sta aiutando
questo e vedrai alcuni database
giocando con numeri di transazione funtastic
non hanno commesso un disco che sono
solo all’interno della pagina dei sistemi operativi
tavoli che non sono affidabili, quindi penso
l’affare mi sta dicendo di nuovo
questo non è l’ accesso casuale suona come un
il disco è davvero un grande consiglio che è veloce
perché in realtà pensi che puoi farlo
cercare indietro e in avanti verso la punta
questo sta facendo esattamente la stessa cosa
solo un po ‘più veloce non è casuale
accesso ah è entrato qualcosa al
salvare
abbiamo unità SS a stato solido non
i dischi a stato solido forniscono a caso
accedete alle vostre mani, per favore, oh, ne abbiamo di più
mani per questo ancora non molto ma
così anche un SSD funziona bene
i blocchi logici alcuni sono diversi
per il naso ma questa è una specie di cosa
quelli tipici funzionano come in genere
avere un blocco di 2 megabyte che è stato un
molto raro di cellule sembra di nuovo un po ‘
come la memoria ora ognuno di questi piccoli
celle vedrai MLC e SLC che è
se questo multi livello o singolo livello
Un solo livello significa che puoi memorizzare un
single bit e il modo in cui funziona è
ha una tensione o non ha un
il voltaggio è semplice ma il fatto è questo
puoi avere un range di tensione
quindi diciamo che posso avere quattro diversi
tensioni così 0 1 2 e 3 posso memorizzarne due
bit questo è ciò che diventa una cella mlc
ce ne sono di nuovi che escono ora
hai otto livelli in modo da poter memorizzare
tre bit, quindi possiamo dire di ottenere un po ‘
più densità in là ma troverai
ci sono alcuni effetti collaterali interessanti a
che così la maggior parte delle cose di consumo che
usiamo è mlc perché è tutto
solo facendo le pecore e ottenendo il
la densità non sono come sono
organizzato è che potremmo affrontare ogni
cella singola ma sarebbe davvero
davvero caro quindi il circuito è
progettato in modo da accedere a una riga alla volta
finché non puoi solo leggere o scrivere una riga
e ogni volta dato così e questo è
in realtà chiamato una pagina e questi e
è tipicamente per la cura di quello che siamo
a che fare con questo stadio c’è così
Mariette cura e in modo semplicemente dipende
la modella ma diciamo che per cura è tua
tipico e troverete che è piuttosto un
comune quando lavoriamo con così se io
leggere o scrivere
un singolo per la cura che è grande e
funziona davvero molto velocemente e
non importa dove sia perché
non ci sono parti mobili in movimento quindi vado
attraverso e io scrivo e scrivo e
Scrivo e questo è fantastico e torno indietro
e leggo e leggo e leggo questo è
tutto quello che vedo sembra tutto
completamente casuale questo è griglia cosa
Holmes se cancello qualcosa così ho
un grande file ora che diciamo che non è un
grande file è anche solo un semplice è un
forchetta un file che estendo per esserlo
Non posso tornare indietro e modificare ciò che io
deve fare è al mercato è cancellato
perché posso solo essere d’accordo nel suo insieme
blocco alla volta
perché è così che funzionano gli SSD
raddrizza ogni cellula per essere una e quando
ci metti i dati in esso si spegne il
bit che non vuoi e se ci provi
scrivere a tutti è molto
facile da disattivare di un bit specifico
perché sogni questo è il circuito per
guidare la corrente nel turno del letto sulle lattine
per illuminare le celle intorno ad esso e così via
non puoi scrivere con precisione un singolo bit
quindi se vuoi arretrati
devi scrivere quelli al tutto
cosa
questo diventa interessante quindi ho un
array come blocco ma posso leggere e
scrivi una singola pagina ora qual è l’effetto
di quello sono io posso finire con bit che
sono contrassegnati come cancellati perché non lo fai
voglio riutilizzare l’intero blocco ogni volta
perché queste cose hanno un limite
numero di cicli a volte quando possiamo
mille volte puoi leggere e scrivere
sono matrici di queste cellule sopra e
di nuovo e la parola ID non lo fai
vuoi che la tua scrivania sia indossata.io troppo in fretta
quello che fanno è che li segnano come
cancellalo e poi copia i dati
che hanno bisogno di un altro blocco e il
nuovi dati che va di pari passo con esso in modo
questo è sempre costato un po ‘ora
succede dopo un po ‘di tempo che il disco finisce
su frammentato e devi andare
attraverso e cancellare tutti quelli
che in realtà erano contrassegnati come in ritardo
scomodo e hai spazzatura
raccolta in corso e la gente dice bene
che dire di assetto, ma tutto è ordinato
suggerimento dal sistema operativo al
scrivania che non utilizza più qualcosa
quindi lo permette ad Alma di provare il costo
ID ma non risolve il problema e
quello che il costo finisce per significare è che ottieni
questo comportamento davvero cattivo a volte così
ecco un disco pulito davvero bello questo è
in realtà quello per il mio uno
computer portatili che è un Intel 320 questo è un
disco di due anni e può leggere
oltre 200 mega secondi e scrivi quasi
200 mega secondi assolutamente grinta quindi
cosa succede quando si riempie e io comincio
l’eliminazione e la modifica di materiale letto è
sembra ancora buono ma inizia bene
andando dappertutto e questo è
a causa di questa raccolta dei rifiuti e
il ciclo di readwrite come si sta trattando
la compattazione e la frammentazione in corso
e questo è davvero ben educato
scrivania alcuni dischi sono terribili in quanto il
la performance cade a breve
niente e devi riformattarli
convincili a recuperare ciò che stiamo ottenendo
meglio e meglio tutto il tempo in cui
guida come questo sta accadendo su e
di nuovo e saremo a
attento a che c’è un termine chiamato write
l’amplificazione è dove a volte piccolo
diritti e costi così tante copie da verificarsi
che gli scrittori sono
cinque – che cosa sta realmente succedendo così solo
per coprire questo molto rapidamente il casuale
i diritti possono aiutare le prestazioni perché il
più atti che stai sollevando i blocchi noi
sembra avere grandi prestazioni casuali
per leggere un’interessante immagine se
stai solo facendo sempre solo append
non avresti mai dovuto alzare quello che potrebbe essere
davvero abbastanza buono quindi qual è l’ asse
i dati delle prestazioni misurati al di fuori
scrivania, quindi facciamo veramente male quando
queste scrivanie con un sacco di carichi quindi andiamo
colpiscilo a 40.000 volte al secondo
la nostra media e così è con la prossima
leggere il bilancio di scrittura la nostra media sul
leggere è una sorta di circa cento a due
cento microsecondi vedi persone
ottenere richieste di 20 microsecondi e 30
microsecondi non lo vedi nella realtà
con qualsiasi tipo di carico ragionevole questi
sono figure più realistiche che sei
guardando a circa 100-200 microsecondi
è ciò che vedrai attraverso alcuni
dei migliori dischi al momento e
il massimo sale perché si aggrovigliano
nel GC, ma guardate i loro diritti
di nuovo sembra davvero abbastanza buono ma
inizia ad avere problemi e le medie
nascondere una moltitudine di peccati perché il massimo
iniziare a diventare piuttosto male grazie a
ultimi dischi di arte del teatro sono ancora
pausa fino a mezzo secondo a volte
Non sono così buoni dischi pausa dal
più secondi come sono stati provati
risolvere la frammentazione su questo in modo che il
la vista è casuale, non è casuale
pensa plausibile, penso che se tu leggi e basta
dai dischi si ottiene perfettamente casuale
accesso se si scrive solo in un
append-only moda di nuovo si ottiene
throughput fenomenale e buona casuale
prestazioni se cambiare se posto
le prestazioni finiscono per ferire e
diventa molto molto casuale così su quella nota
hai fatto un giro di fischietto
alcuni hardware moderni fanno sentire le persone
capisci un po ‘di più
sei più sconcertato è possibile per
noi per capire questa roba e scrivere
codice migliore mani sicure a chi cose noi
può effettivamente essere acceso
ho appena trovato questa roba in una scrittura migliore
codice molto buono, quante persone pensano
non c’è speranza per noi di capire
questa roba e dovremmo solo prendere nota
e seppellire le nostre teste nella sabbia sembra
come risultato oh grazie mille
spero che non ti abbia tenuto troppo a lungo se
hai qualche domanda, basta friggerli
lontano

Please follow and like us: