I moderni processori hanno ridondanza nelle loro unità logiche per compensare i guasti di produzione?


10

I processori moderni sono costituiti da miliardi di transistor e le nuove tecnologie di produzione hanno spesso problemi di rendimento, almeno nei primi mesi, ma suppongo che anche dopo anni ci saranno chip difettosi di tanto in tanto.

So che in blocchi di grandi dimensioni (ad esempio la cache) c'è la possibilità di disabilitare solo parti di esso e riducendo così la quantità di memoria disponibile (in modo da poter almeno vendere il chip a un prezzo inferiore invece di buttarlo via). Ma c'è qualcosa di simile per le unità logiche? Sono consapevole che ci sono più ALU per il recupero, ma è una cosa disabilitarne solo una se c'è un errore di produzione? O ci sono anche ALU di riserva aggiuntive? Perché per me è difficile credere che i fab dispongano appena di ogni chip in cui vi è un transistor difettoso nelle parti logiche, mentre disabilitare un ALU completo ridurrebbe in modo significativo la potenza di elaborazione ottenibile.


Solo la mia ipotesi. Il prezzo della produzione di wafer di silicio è relativamente basso su grandi quantità e puoi testarlo prima dell'alloggiamento nella custodia, in modo da poter produrre chip completi con un tasso di fallimento relativamente basso. > Il 50% del prezzo è puro marketing. Inoltre, penso che molte variazioni del processore all'interno della stessa famiglia siano fatte sulla stessa topologia e differiscano solo per alcune funzionalità / core / cache spente (come hai scritto), quindi il produttore ha il grande divario per mantenere un basso tasso di guasti di produzione anche con unità danneggiate. Ma dubito che abbiano, diciamo, diversi ALU riservati per lo stesso core.
cyclone125

Penso che l'esempio più noto di questo sia stato l'Intel 486SX, che era lo stesso die del DX con una FPU disabilitata. Ma sarei interessato a sapere qual è lo stato moderno di questo.
pjc50,

Ne dubito fortemente. La quantità di tempo logico e di progettazione richiesta per consentire ridondanza di basso livello alla velocità dei processori contemporanei non varrebbe la pena. La ridondanza a livello di blocco (core, fpu, cache) o semplicemente la disabilitazione dei blocchi sarebbe molto più che sufficiente per aumentare significativamente la resa. E ai prezzi attuali del processore e alle dimensioni dei wafer anche un rendimento del 5% potrebbe essere redditizio.
Edgar Brown,

Quindi pensi, ogni volta che un ALU non è utilizzabile, disabilitano semplicemente il core. Sì, potrebbe essere una possibilità. Speravo che qualcuno qui lo sapesse davvero.
jusaca,

1
Sì, disabilitano il core. È una pratica chiamata "binning".
DKNguyen,

Risposte:


3

Come altri hanno già detto, è difficile vedere una logica ALU ridondante all'interno di un core.

È stato progettato un core per ottimizzare la produttività. Qualsiasi logica aggiuntiva per un ALU ridondante avrebbe un impatto sulle prestazioni e una maggiore area rallenterebbe l'intero core. Con l'evolversi della tecnologia, il silicio divenne più piccolo, rendendo i nuclei più veloci, ma essenzialmente usando la stessa proprietà intellettuale. Perché disporre di ALU ridondanti, quando è disponibile spazio per core ridondanti per aumentare i rendimenti di produzione?

Nel 2011, Intel ha depositato un brevetto per almeno 32 core con 16 attivi e 16 di riserva. Il brevetto afferma che i nuclei non funzionanti avrebbero temperature più elevate consentendo la commutazione di un nucleo di riserva. In sostanza, allocazione dinamica del nucleo secondo necessità.

È possibile disporre di core ad alta e bassa potenza allocati come richiesto dalle attività. Oppure disattiva un nucleo difettoso rilevato da livelli di temperatura più elevati. Azionare i nuclei a scacchiera per ridurre il calore.

Brevetto Intel: migliorare l'affidabilità di un processore a molti core


Questo ha acutamente senso, non ho pensato all'impatto sulle prestazioni, che possono avere aree di silicio di riserva all'interno di un nucleo. Disabilitare interi core sembra essere la strada da percorrere, come anche le altre risposte implicano.
jusaca,

5

Non nella logica.

Tuttavia, se ci sono grandi memorie (SRAM), è comune usare una memoria con "ridondanza". Questi hanno una logica speciale che può essere programmata per sostituire un'area, spesso un numero di righe o colonne.

L'area difettosa viene rilevata durante il test e quindi la memoria ridondante è programmata per sostituire le posizioni difettose.

Tuttavia, questa "sostituzione" deve essere impostata utilizzando bit OTP (One-Time-Programmable) o un'altra memoria che ne mantenga il valore. Quindi queste memorie sono usate solo nei chip che hanno una tale funzione di "memoria permanente", o anche tale funzione di programmazione deve essere aggiunta, con tutti i costi che ciò comporta.


Pensi che questi bit OTP siano programmati elettronicamente, come bruciare una miccia o qualcosa del genere, o i grandi produttori devono andare direttamente sul dado con il taglio laser?
jusaca,

1
Gli OTP sono fusibili su chip che possono essere programmati elettronicamente (una specie di EEPROM ma poi in modo permanente) Gli utenti finali possono anche masterizzarli per numeri di serie, indirizzo Ethernet, chiavi di crittografia ecc.
Oldfart

4

Questo non è certamente il caso di MCU semplici o processori single core tipici. Il costo di avere blocchi di riserva non varrebbe la pena, e quei processori non usano processi di incisione all'avanguardia e non richiedono enormi aree di silicio, quindi la resa è abbastanza buona.

Tuttavia, questo viene fatto per alcuni processori multi-core, per i quali l'area del silicio è piuttosto ampia e che utilizza processi di incisione più fini che possono portare a tassi di difetto più elevati. Su questi processori, interi core possono essere disabilitati (che sono blocchi logici piuttosto grandi, contenenti molto più di una ALU) quando sono difettosi. Il processore viene quindi venduto come modello di fascia bassa.

Fonte: /skeptics/15704/are-low-spec-computer-parts-just-faulty-high-spec-computer-parts


3

Non posso certo rispondere alla tua domanda. Non ha molto senso disabilitare unità più piccole di 1 core, poiché diventa un "set di funzionalità" a grana fine che può essere abilitato o meno, e il prodotto cartesiano di tutte le possibili funzionalità renderebbe una miriade di possibili modelli di CPU. Ce ne sono molti modelli di CPU, renderli 10-100 volte di più sicuramente non aiuteranno!

Un altro aspetto è che i miliardi di transistor vengono utilizzati (per la maggior parte) nella creazione di cache e per i transistor difettosi i produttori vendono sicuramente CPU con parti della cache on-die disabilitate (ad esempio, vedi AMD Thorton vs AMD Barton).

Ma posso dirti un aneddoto che ho sentito da una persona di cui mi fido. Molto tempo fa ero un curioso overclocker. Ai miei tempi, la CPU overcloccabile di budget preferita era il purosangue AMD Athlon:

Purosangue Athlon

Quando si montano soluzioni di raffreddamento personalizzate, bisogna stare molto attenti mentre si collega il dissipatore di calore, poiché preme direttamente contro lo stampo. Se hai applicato una pressione irregolare, le matrici erano famose per il cracking facile agli angoli, se hai applicato prima la forza in un angolo.

Questa persona aveva fatto esattamente la stessa cosa, una parte significativa di un angolo era sparita, ma la CPU funzionava miracolosamente bene, sebbene con prestazioni di memoria molto ridotte. L'angolo conteneva solo cache L2, quindi con quella parte andata, il protocollo di memorizzazione nella cache funzionava in qualche modo molto ora dado difettoso. Probabilmente stava segnalando errori di cache per tutte le query in quella parte, quindi la CPU era ridotta alla sua cache L1 solo (o solo parte di L2), quindi era molto più lenta nella maggior parte dei test, ma aveva praticamente le stesse prestazioni su loop stretti.

Nella stessa linea di pensiero, si potrebbe affermare che se un ALU è difettoso ed è in grado di segnalare in qualche modo che ha rifiutato il lavoro, la CPU potrebbe essere in grado di ricadere su altri ALU. Non è noto se questo venga fatto dai produttori di CPU (e ne dubito), ma l'esempio di cache (di 15 anni fa) mostra che è sicuramente fattibile.


Questo è certamente molto impressionante, e sembra anche essere una sorta di processo dinamico, perché il sistema ha rilevato da solo la parte difettosa del chip. Quando ho posto la domanda, avevo in mente un rilevamento da parte di un sistema di test nella linea di produzione. Ma questa storia è decisamente interessante;)
jusaca
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.