Perché la RAM non viene inserita nel chip della CPU?


55

Le CPU moderne sono molto veloci rispetto a tutte le cose esterne, inclusa la memoria (RAM).

È comprensibile, poiché la frequenza di clock della CPU ha raggiunto un punto in cui sono necessari diversi tick di clock per un segnale elettrico semplicemente per passare dalla CPU attraverso il bus ai chip RAM e viceversa.

Inoltre complica la vita a molti livelli: le gerarchie di cache multilivello sono costruite per fornire dati più vicini alla CPU, che a loro volta richiedono una logica di sincronizzazione complessa nel chip. I programmi devono essere scritti in modo intuitivo per evitare cicli di attesa durante il recupero dei dati.

Molti di questi problemi potrebbero essere evitati se una quantità significativa di RAM si trovasse direttamente sul chip della CPU. Non ha un accordo esclusivo: forse metti 1-4 GB sul chip, a seconda della sua classe e consenti l'installazione di memoria aggiuntiva separatamente.

Sono sicuro che ci sono buone ragioni per cui Intel, AMD e simili non lo fanno. Quali sono questi motivi? È che non c'è spazio per risparmiare sul chip?


29
La cache è RAM. Spazio e spille sul dado sono un premio.
Copper.hat il

2
@ copper.hat La cache è RAM, ma la dimensione della cache è una piccola frazione della RAM installata (in genere, stiamo parlando di intervalli di MBytes vs Gbytes). Mi chiedo perché non inserire 1 GB nel chip della CPU.
Lesser Hedgehog,

5
Generalmente è ottimizzato per alcune istruzioni / mix di flussi di dati. Inoltre, non tutti i dati da / a RAM passano attraverso la CPU.
Copper.hat il

1
Più un dado è semplice, più è economico. Significa anche che è possibile utilizzare diverse dimensioni e metodi di processo.
Journeyman Geek,

@LesserHedgehog C'è un limite a quanto può essere in generale la percentuale di hit della cache, quindi l'aggiunta di più cache non aiuta davvero nulla. Inoltre, molte CPU attualmente hanno DRAM integrata, specialmente nello spazio mobile / incorporato (ad esempio molti SoC basati su ARM).
soffice

Risposte:


79

Haswell di Intel (o almeno quei prodotti che incorporano la GPU Iris Pro 5200) e POWER7 e POWER8 di IBM includono DRAM, "eDRAM" incorporati.

Un problema importante che ha portato eDRAM a non essere comune fino a poco tempo fa è che il processo di fabbricazione DRAM non è intrinsecamente compatibile con i processi logici, quindi è necessario includere passaggi aggiuntivi (che aumentano il costo e diminuiscono il rendimento) quando si desidera eDRAM. Quindi, ci deve essere un motivo convincente per voler incorporarlo al fine di compensare questo svantaggio economico. In alternativa, la DRAM può essere posizionata su un die separato che viene prodotto indipendentemente, ma poi integrato nello stesso pacchetto della CPU. Ciò fornisce la maggior parte dei vantaggi della località senza le difficoltà di produrre i due in modo veramente integrato.

Un altro problema è che la DRAM non è come la SRAM in quanto non memorizza il suo contenuto indefinitamente mentre viene applicata l'alimentazione e la lettura distrugge anche i dati memorizzati, che devono essere riscritti in seguito. Quindi, deve essere aggiornato periodicamente e dopo ogni lettura. Inoltre, poiché una cella DRAM si basa su un condensatore, la carica o scarica sufficientemente affinché la perdita non danneggi il suo valore prima che il prossimo aggiornamento richieda una quantità limitata di tempo. Questo tempo di ricarica non è richiesto con SRAM, che è solo un fermo; di conseguenza può essere sincronizzato alla stessa velocità della CPU, mentre la DRAM è limitata a circa 1 GHz pur mantenendo un consumo energetico ragionevole. Questo fa sì che la DRAM abbia una latenza intrinseca più alta rispetto alla SRAM, il che rende inutile usarla per tutti tranne che per le cache molto più grandi, dove il tasso di miss ridotto pagherà.

Inoltre, per quanto riguarda la latenza, gran parte della difficoltà è che i segnali di distanza fisica devono viaggiare. La luce può percorrere solo 10 cm nel periodo di clock di una CPU da 3 GHz. Naturalmente, i segnali non viaggiano in linea retta attraverso il dado e non si propagano a nulla vicino alla velocità della luce a causa della necessità di buffering e fan-out, che comportano ritardi di propagazione. Pertanto, la distanza massima che una memoria può essere lontana da una CPU per mantenere 1 ciclo di clock di latenza è di qualche centimetro al massimo, limitando la quantità di memoria che può essere ospitata nell'area disponibile. Il processore Nehalem di Intel ha effettivamente ridotto la capacità della cache L2 rispetto a Penryn in parte per migliorare la sua latenza, il che ha portato a prestazioni più elevate. * Se non ci preoccupiamo così tanto della latenza, allora non c'è motivo di mettere la memoria sul pacchetto,

Va inoltre notato che la percentuale di riscontri nella cache è molto elevata per la maggior parte dei carichi di lavoro: ben al di sopra del 90% in quasi tutti i casi pratici e non di rado anche al di sopra del 99%. Pertanto, il vantaggio di includere memorie on-die più grandi è intrinsecamente limitato alla riduzione dell'impatto di questo pochi percento di incidenti. I processori destinati al mercato dei server aziendali (come POWER) in genere hanno enormi cache e possono includere proficuamente eDRAM perché è utile per ospitare i grandi gruppi di lavoro di molti carichi di lavoro aziendali. Haswell lo supporta per supportare la GPU, poiché le trame sono grandi e non possono essere sistemate nella cache. Questi sono i casi d'uso per eDRAM oggi, non i carichi di lavoro desktop o HPC tipici, che sono molto ben serviti dalle gerarchie cache tipiche.

Per affrontare alcuni problemi sollevati nei commenti:

Queste cache eDRAM non possono essere utilizzate al posto della memoria principale perché sono progettate come cache delle vittime L4. Ciò significa che sono volatili ed effettivamente indirizzabili sui contenuti, in modo che i dati in essi memorizzati non vengano trattati come residenti in alcuna posizione specifica e possano essere eliminati in qualsiasi momento. Queste proprietà sono difficili da conciliare con il requisito della RAM di essere mappate direttamente e persistenti, ma modificarle renderebbe le cache inutili per lo scopo previsto. Ovviamente è possibile incorporare memorie di un design più convenzionale, come avviene nei microcontrollori, ma ciò non è giustificabile per i sistemi con memorie di grandi dimensioni poiché la bassa latenza non è vantaggiosa nella memoria principale come in una cache, quindi ingrandendo o l'aggiunta di una cache è una proposta più utile.

Per quanto riguarda la possibilità di cache molto grandi con capacità dell'ordine dei gigabyte, è necessario solo che una cache abbia le dimensioni massime del working set per l'applicazione. Le applicazioni HPC possono gestire set di dati terabyte, ma hanno una buona località temporale e spaziale e quindi i loro set di lavoro in genere non sono molto grandi. Le applicazioni con grandi set di lavoro sono ad esempio database e software ERP, ma esiste solo un mercato limitato per i processori ottimizzati per questo tipo di carico di lavoro. A meno che il software non ne abbia veramente bisogno, l'aggiunta di più cache fornisce rendimenti che diminuiscono molto rapidamente. Di recente abbiamo visto i processori ottenere istruzioni di prefetch, quindi le cache possono essere utilizzate in modo più efficiente: si possono usare queste istruzioni per evitare errori causati dall'imprevedibilità dei modelli di accesso alla memoria, piuttosto che dalle dimensioni assolute del set di lavoro,

* Il miglioramento della latenza non era dovuto solo alla minore dimensione fisica della cache, ma anche alla riduzione dell'associatività. Ci sono stati cambiamenti significativi nell'intera gerarchia della cache in Nehalem per diversi motivi, non tutti focalizzati sul miglioramento delle prestazioni. Quindi, sebbene ciò sia sufficiente come esempio, non è un account completo.


1
Ben spiegato ,, @Oleksandr R. In breve, sembra che ci sia una sorta di "disadattamento di impedenza" tra CPU e DRAM, il che rende difficile l'accoppiamento dei due.
Lesser Hedgehog,

3
E, naturalmente, SRAM è ancora abbastanza grande - anche le piccole cache (rispetto alla RAM) occupano circa la metà dell'area del die sulle CPU moderne (beh, fatta eccezione per le CPU con GPU integrate: D).
Luaan,

2
Mi chiedo se c'è un modo di correre senza memoria principale. 128 MB dovrebbero essere sufficienti per eseguire una distribuzione Linux ridotta (o una versione precedente di Windows).
user253751

Si chiama "GPU-on-die", non "GPU-on-package".
Dopo il

4
@cybermonkey: le istruzioni sono in effetti recuperate dalla cache L1, non dalla memoria principale. Sarebbe orribile recuperarli dalla memoria principale - circa 60 ns di tempo di ciclo, il che limita la tua CPU a 16 Mhz per un design single-core.
MSalters,

17

Le ragioni principali per cui una memoria più grande (GB di DRAM) non sono incluse nella CPU stessa riguardano principalmente i costi. Lo spazio della CPU è significativamente più costoso a causa del processo di produzione richiesto per realizzare funzionalità molto piccole. Potrebbe anche non essere possibile fabbricare i due sullo stesso dado, anche se non conosco abbastanza i dettagli per dare una risposta definitiva qui.

Valutiamo la fattibilità di mettere una grande quantità di DRAM direttamente sul die della CPU.

Per fare un confronto di scala, un moderno die di CPU potrebbe essere ~ 180 mm (circa dimensioni degli die Intel Haswell). Non ho dati precisi per le dimensioni della matrice DRAM della CPU, ma supponiamo che 1 GB di DRAM tradizionale richieda 140 mm (calcolato dalle dimensioni della DRAM GPU). Per un'approssimazione del primo ordine, stai quasi raddoppiando la dimensione del dado della CPU, il che significa almeno raddoppiare il costo di una CPU e probabilmente più solo per 1 GB di DRAM sullo stesso dado ... Non sto pagando diverse centinaia di dollari solo per ottenere 1 GB di DRAM e non penso che nessuno lo farebbe.222

Tuttavia, l'idea di avvicinare la memoria alla CPU non è completamente una causa persa. Questo è probabilmente dove la memoria si sposterà in futuro perché il fatto è che la velocità della luce è limitata ed è possibile comunicare così velocemente solo a una certa distanza.

Tecniche realistiche per avvicinare la memoria alla CPU (si noti che queste hanno anche dei compromessi con le tecniche tradizionali):

  1. Impilarli sopra la CPU stessa. Questo è già stato fatto su Raspberry Pi e fa parte dello standard di memoria I / O Wide. La memoria è ancora una matrice separata prodotta su un processo separato. Tuttavia, questo ha il problema che qualsiasi calore dissipato nella CPU deve passare attraverso la memoria prima di raggiungere un dissipatore di calore. Ciò significa che non funzionerà con processori ad alta potenza e perché le applicazioni principali di questa tecnologia sono processori mobili / altre applicazioni integrate in cui la CPU non consuma molte decine o centinaia di watt.

  2. Attaccali molto vicini su un substrato a basso costo. Ecco come HBM è progettato per funzionare, con un bus molto grande fabbricato su un die "interposer" a basso costo, ed è la direzione in cui va la memoria della GPU di fascia alta perché la larghezza di banda è significativamente più alta. I chip di memoria e l'interposer sono ancora tutti fabbricati su die diversi dal processore reale.


5
Mi aspetto che i rendimenti diminuiscano mentre provi a riempire più miliardi di transistor su un grande dado - la probabilità di un guasto o di un difetto aumenta con ogni dispositivo aggiuntivo. Se si divide il sistema in più pezzi più piccoli, la possibilità che si verifichi un guasto su ogni pezzo diminuisce in modo massiccio e anche il costo di scartare quel pezzo difettoso è inferiore. Immagino che un dado molto grande sarebbe anche molto più difficile da fabbricare, a parità di altre condizioni.
John U,

4
@JohnU È difficile dire come si ridimensioneranno i prezzi perché il tasso di difetto effettivo è un segreto commerciale. Le GPU già utilizzano matrici nella gamma ~ 440mm vendendo per circa $ 550, quindi ad un prezzo di ridimensionamento approssimativo del primo ordine con dimensioni degli stampi non sembra troppo fuori. Inoltre, i dispositivi con difetti possono ancora essere venduti come dispositivi di fascia bassa con alcune funzionalità disattivate. Questa è una pratica comune di molte aziende. 2
helloworld922,

@JohnU - mettere un gran numero di moduli ripetuti su un die ha il vantaggio che quando si verifica un difetto puoi semplicemente disabilitare il modulo in cui si trova e rilasciare il die come conforme a uno standard a basso costo (questo accade molto con DRAM, risalendo agli anni '80, quando molte macchine con moduli da 32 KB utilizzavano effettivamente chip da 64 KB con una sezione difettosa disabilitata). Questo può effettivamente significare che la resa aumenta quando si integra DRAM con i processori ...
Jules

7

Esistono diversi motivi per cui l'aggiunta di grandi quantità di DRAM a una CPU potrebbe essere impossibile.

  1. Il processo e fab non possono essere impostati per DRAM. La DRAM richiede elementi circuitali speciali che richiedono ulteriori passaggi di produzione per la produzione. Ciò aumenta il costo di produzione.

  2. Tutta quella memoria deve essere testata. Il test della memoria aumenta i tempi di test. Questo è un altro aumento dei costi.

  3. L'ampliamento del dado è di per sé un aumento dei costi, dal momento che significa meno dadi per wafer. Influisce anche sulla resa: un difetto elimina una frazione maggiore del wafer. Per un esempio estremo di ciò, guarda il costo dei sensori di immagine full frame (35mm) nelle fotocamere.

  4. Lo sviluppo di un processo in grado di gestire tipi speciali di memoria richiede più tempo, denaro e lavoro e presenta un rischio maggiore di fallimento. Qualsiasi problema con la DRAM ritarderebbe il rilascio della CPU. Le CPU desktop sono all'avanguardia nella produzione di semiconduttori, quindi un ritardo può essere un enorme svantaggio competitivo. (Vedi: AMD vs Intel negli ultimi anni.)

  5. La DRAM richiede il rilevamento analogico per le letture e un aggiornamento periodico. Non sono un esperto di DRAM, ma dubito che possa mai essere veloce come una CPU di fascia alta, indipendentemente dal fatto che sia off-chip o on-chip. Quindi probabilmente sarai ancora bloccato con la cache SRAM.

  6. Anche se riesci a superare i problemi di cui sopra e stipare un paio di gigabyte di DRAM su un dado CPU, non sarà comunque sufficiente per eseguire un PC desktop, laptop o server, quindi dovrai comunque avere una memoria off-chip .


1
La maggior parte delle cache sono implementate con ECC e alcuni recenti processori Intel incorporano chipkill e bloccano la ridondanza per la cache. Ciò riduce i requisiti di prova e migliora significativamente i rendimenti per gli stampi più grandi. Al contrario, con un sensore di immagine, non esiste alcuna possibilità di correzione degli errori perché le informazioni non sono note a priori e non possiamo nemmeno decidere, quando un blocco di pixel non funziona correttamente, di ignorarle e utilizzarne una di riserva in il suo posto.
Oleksandr R.,

È vero, è più facile ottenere una resa maggiore con i ricordi. Come ho detto, è stato un esempio estremo.
Adam Haun,

3

Oltre alle altre risposte, si può dire di più su un tale sistema. Spostare la memoria sul die principale includerebbe una serie di altri problemi di ingegneria. Dovresti reindirizzare i bus, costruire un controller DMA nel processore principale, ristrutturare il bus IRQ e determinare come liberarti di tutto quel calore in più che potresti emettere in un'area concentrata. Ciò significa che anche il produttore della scheda madre dovrebbe essere coinvolto per supportare un cambiamento così sostanziale. Mentre i sistemi di fascia bassa trarrebbero probabilmente beneficio da un tale cambiamento, i sistemi di fascia alta richiederebbero probabilmente un sostanziale raffreddamento. Dubito che il laptop medio sia in grado di gestire un chip del genere, ad esempio.

Un chip del genere sarebbe molto più costoso, sebbene la scheda madre principale calerebbe di prezzo (anche se probabilmente non in modo apprezzabile). Se hai visto i pacchetti per un controller DMA, oltre ai pacchetti di RAM, ti sarebbe difficile credere che tutta quella logica potesse essere pressata in un singolo die che non sarebbe sostanzialmente più grande. Ricorda inoltre che le CPU sono tagliate da grandi wafer di dimensioni particolari. Ciò significa che il produttore avrebbe anche molti meno processori per wafer, il che aumenterebbe anche il costo complessivo.

Tieni presente che non stiamo parlando dell'utilizzo della potenza sull'intero sistema, il che diminuirebbe, ma piuttosto che ci sarebbe ancora più concentrazione di potenza (e quindi calore) in una singola area, che probabilmente aumenterebbe la probabilità di fallimento.

Infine, c'è un altro svantaggio qui, e questa è la capacità di fornire sistemi personalizzati. Al momento, i produttori possono scegliere di distribuire sistemi con processori identici ma con quantità diverse di memoria o processori diversi ma con la stessa quantità di memoria, in base alle preferenze del cliente. Per offrire la moltitudine di configurazioni diverse, dovrebbero costruire stampi diversi, ognuno su una catena di montaggio diversa.

AMD sta attivamente utilizzando una tecnologia che funziona effettivamente in quel modo, in cui ogni parte del processore è un'unità logica discreta che può essere sostituita con diverse configurazioni. In futuro, se un tale progetto è praticabile, potremmo benissimo vedere CPU che offrono memoria in-chip come un costoso aggiornamento del modulo, magari scambiando un po 'di potenza di elaborazione in cambio o altre modifiche. Ad esempio, un giorno potremmo scegliere tra 256 core senza memoria incorporata o 128 core con memoria incorporata, o forse anche altre configurazioni come GPU parte, CPU parte, RAM parte.


Il problema principale con questa risposta è che i progetti SoC per smartphone in realtà contengono RAM. Quelli non sono molto più costosi, in realtà sono più economici.
Saluti

@MSalters Tranne il fatto che non sono integrati nello stesso die. Le matrici di memoria sono separate, essendo state testate e confermate per funzionare correttamente, e sono semplicemente impacchettate insieme alla matrice del microprocessore.
Spazzolino da denti

2

Quasi tutto quanto sopra + un ulteriore problema aggiuntivo: il calore.

Le celle DRAM sono essenzialmente condensatori che perdono. E il dielettrico qui è lo strato di SiO2 stesso. All'aumentare della temperatura, le correnti di dispersione aumentano proporzionalmente. Questi scaricano le celle DRAM molto più velocemente, il che richiederebbe frequenze di aggiornamento molto più veloci, il che aumenterebbe la complessità, richiedere corrente e, naturalmente, aggiungerebbe più calore.


2

Oltre alle risposte già fornite, esiste un ulteriore aspetto: i rifiuti dovuti a difetti di produzione:

Diciamo che 1/100 di tutte le CPU di un certo modello prodotto sono difettose (in realtà è meno, ovviamente; 1/100 è più facile da calcolare) e 1/100 di tutte le RAM prodotte sono difettose.

Se entrambi i componenti fossero combinati su un singolo chip, 1/100 di tutti i chip avrebbe una CPU difettosa e 1/100 di tutti i chip avrebbe una RAM difettosa.

Ciò significherebbe:

  • 1 su 10000 chip avrebbe sia RAM che CPU difettose
  • 99 chip avrebbero RAM difettosa
  • 99 chip avrebbero una CPU difettosa
  • Complessivamente 199 delle 10000 parti prodotte sarebbero rifiuti

Producendo chip separati il ​​calcolo è il seguente:

  • 50 di 5000 RAM sono difettose
  • 50 di 5000 CPU sono difettose
  • 100 di 10000 parti prodotte sarebbero rifiuti

Si noti che un GB di RAM è in genere costituito da un banco costituito da otto chip, quindi non è necessario combinare due ma 9 componenti in un chip se si desidera collocare RAM e CPU sullo stesso chip. Ciò porterebbe a circa 865 parti difettose di 10000 prodotte nel semplice esempio sopra.

Le CPU "IBM Cell" avevano esattamente questo problema. La console "Playstation" utilizzava chip parzialmente difettosi; il software Playstation è stato scritto in modo tale da non utilizzare i core e le SRAM difettosi.


1
AMD ha offerto CPU a 3 core per un po 'per lo stesso motivo. Penso che in pratica le parti vengano solitamente testate a livello di stampo prima di essere confezionate, quindi la tua preoccupazione è più applicabile alle combinazioni monolitiche di CPU e memoria.
Oleksandr R.,

Darpa è uscito con un premio per un'efficienza energetica 50x superando il muro di memoria usando 3dSoC che è terra di fantasia rispetto agli ingegneri Intel e Qualcom, tranne che darpa è darpa. monolithic3d.com/blog/… I SoC (sistema su un chip) sono i migliori per i processori parrallel, il che significa che ci sono 1000ds di gruppi anziché 2/16.
comprensibile il

1

Esistono in realtà due tipi di RAM. Sono RAM statica e RAM dinamica. La memoria statica è molto veloce ma ha un costo più elevato. Nel frattempo la RAM dinamica è lenta rispetto alla RAM statica ma ha un costo economico rispetto alla RAM statica.

La memoria cache cade nella RAM statica. puoi vedere che sono disponibili in dimensioni KB o MB. Sono veloci Ma alto costo.


Non esattamente, sì, sono veloci, ma ciò è dovuto principalmente al fatto che i dati sulla distanza che devono percorrere sono molto inferiori rispetto alla DRAM.
Dopo il

3
In realtà, la cella SRAM è più veloce perché è più semplice. È un circuito bi-stabile digitale. Se lo imposti accidentalmente su un valore analogico 0.8, si fisserebbe spostandosi in posizione stabile 1.0. La DRAM non ha stati così stabili. Non si allontana dagli stati intermedi. Peggio ancora, si sposta verso tali stati, motivo per cui sono necessari circuiti di "aggiornamento" correttivi extra.
Saluti

@MSalters: la cella SRAM NON è più semplice di una cella DRAM. Hai ragione che è molto più stabile, il che rende l' utilizzo più semplice (sia in termini di circuiti di supporto che di diagrammi di temporizzazione). Ma le celle SRAM sono circa 6 volte più circuiti per bit rispetto alla DRAM.
Ben Voigt,

1
@BenVoigt: nel conteggio dei transistor, sì - 6T contro 1T. Ma DRAM ha un condensatore che è un componente piuttosto strano. SRAM è solo transistor cablati insieme.
Salterio,

Il condensatore in DRAM risulta essere implementato anche come transistor
Ben Voigt,

1

Oltre agli altri motivi citati, molti sistemi hanno più di un core della CPU. A volte, quando le informazioni memorizzate nella DRAM principale sono coerenti con tutte le copie memorizzate nella cache, tutti i processori che non dispongono delle informazioni memorizzate nella cache avranno uguale accesso ad esse. Alcune architetture sono progettate in base al presupposto che ogni core della CPU "possiederà" un intervallo di spazio di indirizzi e anche se una CPU è in grado di accedere alla memoria di proprietà di altri processori, tali accessi saranno molto più lenti rispetto agli accessi alla propria memoria , ma x86 non è generalmente implementato in questo modo.

Se un sistema fosse progettato in base al presupposto che i core del processore possiedono determinati intervalli di indirizzi e il codice dovrebbe tentare di ridurre al minimo l'uso degli intervalli di indirizzi di altri processori, sarebbe logico che ogni codice del processore includa una generosa quantità di memoria su chip. Una tale progettazione potrebbe ridurre il tempo necessario affinché un core del processore acceda alla propria memoria, ma probabilmente aumenterebbe il tempo necessario per accedere alla memoria di un altro processore. A meno che il sistema non sia progettato attorno a tale presupposto, tuttavia, è probabile che i dati vengano distribuiti tra i processori senza tener conto di chi ne avesse bisogno quando. Anche se il tempo extra necessario per accedere ai dati da un'altra CPU (rispetto a un sistema di memoria esterno) era solo la metà del tempo risparmiato su un accesso interno,

Se si progettasse un sistema da zero per adattarsi alle tecnologie odierne, un'architettura di memoria non uniforme potrebbe consentire più "bang for the buck" rispetto a quella che deve consentire a tutti i processori di accedere a tutta la memoria in modo efficiente. Dati i progetti software odierni, tuttavia, avere un sistema di memoria esterno che è condiviso tra i processori può essere più efficiente rispetto al tentativo di avere una memoria di massa dei processori stessi.


2
Le architetture di memoria non uniformi sono già utilizzate (e persino comuni) oggi. Per una CPU con controller di memoria integrati utilizzati in un sistema a più processori, i dati memorizzati nella memoria fisica di un altro processore sono più distanti e accessibili con una latenza superiore rispetto a quella nella RAM collegata localmente. In pratica, ciò che accade in questi sistemi è che i processori sono dotati di livelli aggiuntivi di cache e il traffico di coerenza è in parte gestito dal tessuto di connessione. POWER7 e POWER8 sono di questo tipo.
Oleksandr R.,

1

Mentre tutte le risposte precedenti sono corrette nel sottolineare perché è così difficile aggiungere più memoria alla CPU, è anche vero che c'è abbastanza memoria nelle CPU moderne.

Nelle operazioni in tempo reale in cui i ritardi deterministici sono importanti non è inusuale utilizzare la cache su chip come memoria indirizzabile, per codice e / o dati. Il vantaggio è il tempo di accesso rapido e costante e lo svantaggio è che la memoria su chip è piuttosto limitata.


1

I problemi descritti nella domanda originale potrebbero essere evitati solo se TUTTA la memoria della macchina fosse inclusa nella CPU. Qualsiasi memoria aggiuntiva aggiunta alla macchina tramite gli slot sulla scheda principale sarebbe soggetta agli stessi ritardi descritti e richiederebbe il marshalling e i dispositivi di controllo logico tra CPU / RAM e RAM integrata.

La RAM è economica e in genere viene espansa dagli utenti una o addirittura due volte durante l'aggiornamento della CPU.

Ricorda inoltre che una tipica chiamata "Fetch" comporterà, anche se la RAM funziona alla velocità di clock della CPU, un numero di tick inattivi sulla CPU.

L'organizzazione tradizionale della memoria su una macchina è una piramide con i registri della CPU in alto, quindi cache, quindi RAM, quindi disco. In genere le macchine che funzionano bene hanno una combinazione di una discreta velocità di clock, una ragionevole quantità di cache, una buona quantità di RAM e un disco rigido (o array) ad alta velocità. Negli ultimi anni, le prestazioni del disco in genere offrono il massimo aumento delle prestazioni nella maggior parte dei dischi PC e RPM elevati, i dischi con cache e dischi a stato solido offrono un buon incremento delle prestazioni.

Sì, una macchina con tutta la sua RAM su chip funzionerebbe bene nelle applicazioni moderne, ma una macchina con una parte della sua RAM sul chip che esegue un sistema operativo standard probabilmente non fornirebbe l'aumento delle prestazioni che si potrebbe pensare.

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.