cpu
giovedì 20 ottobre 2011 - Commenta
Branch prediction (parte sesta): High-bandwidth fetch

In tutta la discussione sui meccanismi di branch prediction (e siamo ormai alla sesta puntata!) ho sempre lasciato intendere che si debba predire il bersaglio di salto, inteso come la singola istruzione puntata dal salto. L’ho fatto per semplificare il discorso, ma dato che il concetto alla base dei processori superscalari è quello di elaborare più istruzioni per ciclo di clock, è più corretto dire che il predittore deve fornire il prossimo fetch group, cioè le prossime N istruzioni che il processore dovrà eseguire.
Come avevo già discusso nel primo articolo, …

giovedì 6 ottobre 2011 - 10 Commenti
Branch prediction (parte quinta): Predizione del bersaglio

Negli scorsi articoli abbiamo visto alcune tecniche utilizzate dai processori moderni per predire la direzione dei salti.  Siamo partiti con le tecniche più vecchie e semplici e poi abbiamo visto predittori più sofisticati e predittori ibridi, che possono combinare predittori diversi per ottenere risultati ancora migliori.
Predire la direzione dei salti è però solo uno dei problemi che è necessario risolvere: bisogna anche predire il bersaglio dei salti presi e bisogna costruire tutti questi meccanismi in modo da interagire in modo efficiente con la cache e in modo da fornire più …

mercoledì 29 giugno 2011 - 16 Commenti
Branch prediction (parte quarta): Predittori ibridi

Nei precedenti due articoli (qui e qui) ho brevemente descritto alcuni schemi di branch prediction, illustrando i punti di forza di ognuno. Alcuni sono facili da costruire e moderatamente efficienti, altri funzionano bene per salti con forte correlazione con la loro storia locale, altri ancora funzionano perfettamente ma solo per alcuni tipi di salti particolari (ad esempio i loop), eccetera.
Visto che ogni programma ha un mix di diversi tipi di salti e diversi programmi hanno un diverso mix, quale di quei predittori scegliere? La soluzione più semplice è quella di …

mercoledì 8 giugno 2011 - 3 Commenti
Merced vs Alpha: la sfida dei 64 bit ha inizio

Chi vista abitualmente Appunti Digitali in cerca di spunti per la propria nostalgia informatica, sa benissimo che non manchiamo di dedicare attenzione a sistemi e architetture hardware di nicchia, le cui alterne sorti dipendono spesso da congiunture che poco hanno a che vedere con i meriti tecnici.
Fra queste occupa un posto speciale nel nostro cuore la famiglia di CPU Alpha, basate su quella che forse negli anni ’90 era la più performante architettura RISC esistente.
Dopo aver raccontato la triste storia di questa promettente famiglia di CPU, affondata dalla mancanza di …

mercoledì 1 giugno 2011 - 28 Commenti
Intel come GlobalFoundries: una strada tutta da scoprire

Qualche giorno fa è comparsa su Reuters una strana e intrigante notizia a proposito di Intel, secondo la quale il colosso californiano potrebbe cominciare a produrre processori non-Intel. Leggendo la notizia si capisce che le cose non stanno esattamente così — ma come stanno allora? Qual è il significato di questo annuncio, a chi si rivolge, e cosa potremmo aspettarci in futuro?
Dopo un iniziale sbalordimento, e un po’ di riflessione, la cosa ha cominciato ad avere senso — anzi, ad essere perfettamente logica. Credo che questa decisione sia la fava …

giovedì 14 aprile 2011 - 25 Commenti
Branch prediction (parte terza): Predittori piu’ complessi

Nella seconda parte di questa rassegna sui branch predictor ho illustrato i fondamentali e gli schemi di base, che pur nella loro semplicità possono ottenere prestazioni relativamente elevate (anche superiori al 90%). Tuttavia i processori in generale, e quelli superscalari in particolare, possono ottenere grossi benefici da predittori ancora più precisi: ogni aumento di precisione può far sia aumentare le prestazioni (perchè si può estrarre parallelismo tra istruzioni in più blocchi base diversi) che ridurre il consumo energetico (perchè si eseguono meno istruzioni nel ramo sbagliato).
La letteratura in merito è …

mercoledì 23 marzo 2011 - 22 Commenti
CPU con GPU integrata: un pericolo per NVIDIA?

Si dice che il 2011 sia l’anno delle CPU con GPU integrata e concordo pienamente con questa previsione in quanto se già nel 2010 queste soluzioni hanno rappresentato il 39% del mercato delle CPU per notebook, è più che ragionevole presumere che tali sistemi siano destinati a diffondersi a macchia d’olio.
Anche se per l’utente finale non cambia molto rispetto alle precedenti soluzioni che prevedevano chipset con grafica integrata, quella delle CPU con GPU integrata è un’evoluzione destinata a smuovere notevolmente non solo il mercato dei microprocessori, ma anche quello dei …

venerdì 11 marzo 2011 - 14 Commenti
La Cina verso l’autarchia tecnologica

È dagli anni ’90 che, da dietro gli scranni e le scrivanie delle stanze del potere, sentiamo parlare delle magnifiche sorti e progressive della globalizzazione. Gli scompensi e la crisi degli ultimi anni ci hanno offerto un punto di vista più realistico sulla situazione, mentre un po’ in tutto il mondo tornano in voga teorie isolazioniste dal vago retrogusto autoritario.
Una nicchia resiste da sempre alla logica globalizzante, ed è quella della tecnologia strategica. Dopo il ventilato ostruzionismo USA verso il colosso Huawei nella gara per l’acquisizione degli asset del produttore …

giovedì 24 febbraio 2011 - 29 Commenti
Kepler, Maxwell, Denver, Tegra: dove va NVidia?

In una luminosa mattina californiana del novembre 2010, Jensen Huang, fondatore, presidente e CEO di NVidia, presentava la roadmap della “nuova NVidia”: la “prima NVidia” fu la compagnia “PC graphics”; la seconda, “Programmable GPU”; la nuova direzione della società è “NVidia: The Processor Company”. Non più solo computer grafica, quindi, ma una vera compagnia di microprocessori e GPU.
La nuova direzione è perfettamente comprensibile se si considera il “lato oscuro” della Legge di Moore: dire che “ogni due anni si raddoppia il numero di transistor per chip” equivale a dire che …

lunedì 7 febbraio 2011 - 22 Commenti
Branch prediction (parte seconda): Predittori semplici

Nello scorso articolo abbiamo visto perchè la Branch Prediction è una componente essenziale dei processori superscalari, da quali blocchi base è composta e come questi blocchi si raccordano col resto dell’architettura. Adesso bisogna rispondere all’ultima domanda: che cosa c’è davvero dentro un predittore dinamico? Che algoritmi vengono usati per generare le predizioni?
Innanzitutto, il predittore deve predire due cose contemporaneamente: la direzione di salto e, se il salto è preso, il bersaglio di salto. Un termine comune trovato in letteratura per questo tipo di struttura è Branch Target Buffer (BTB) e …