Per què la RAM no és a la CPU?

Les CPU modernes són molt ràpides comparades amb totes les coses externes, incloent la memòria (RAM).

És comprensible, ja que la freqüència del rellotge de la CPU ha arribat a un punt en què es fa servir diverses marques de rellotge per a una senyal elèctrica simplement per a fugir de la CPU a través de l'autobús a les fitxes RAM i tornar.

També complica la vida en molts nivells: Les entrades del cau multi- nivell es construeixen per a proporcionar dades més properes a la CPU, que en torn requereixen una lògica de sincronització complexa en el xip. Els programes s' han d' escriure d' una manera amigable d' evitar cicles d' espera mentre s' obtenen les dades.

Molts d'aquests problemes es poden evitar si es troba directament una quantitat significativa de la RAM en el xip de CPU. No ha de tenir un acord exclusiu: potser posar 1-4 GB en el xip, depenent de la seva classe i permetre que la memòria addicional estigui instal· lada per separat.

Estic segur que hi ha bones raons d'Intel·ligència, ADM i com no ho estan fent. Per què aquestes raons? És que no hi ha lloc per estalviar-se el xip?

10 respostes 10

Intel·ligència hawell (o com a mínim aquests productes que agrupen la Iris Pro 5200 GPU) i la POWER7 i la POWER8 tots són inclosos encastats DRAM, "eDRAM."

Un problema important que ha portat eDRAM no és comú fins fa poc és que el procés de teixit DRAM no és inherentment compatible amb els processos lògics, de manera que s' han d' incloure els passos extra (que augmenten el cost i disminueix el rendiment) quan es desitja l' eDRAM. Per tant, hi ha d'haver una raó convincent per voler incorporar-la per tal de compensar aquest desavantatge econòmic. També, DRAM es pot situar en un mort separat que és fabricat independentment de, però després integrat en el mateix paquet que, la CPU. Això proporciona la major part dels beneficis de la localitat sense dificultats de manufacturar els dos d'una manera veritablement integrada.

Un altre problema és que DRAM no és com S RAM en el que no desa el seu contingut indefinidament mentre s'aplica el poder i la lectura també destrueix les dades emmagatzemades, que s'ha d'escriure després. Per tant, s'ha de refrescar periòdicament i després de cada lectura. I, com que una cel·la de DRAM està basada en un barret, carregant-la o descarregant-la suficientment que no es corrompi el seu valor abans que el següent refresc pren una quantitat limitada de temps. Aquest temps de càrrega no es requereix amb SRAM, que és només un enllaç, per tant, pot ser rellotgeat a la mateixa velocitat que la CPU, mentre que DRAM està limitat a aproximadament 1 GHz mentre manté el consum raonable de potència. Això fa que DRAM tingui un retard més elevat que SRAM, que no val la pena usar- lo per a tots, però els llocs de memòria més grans, on la taxa de reducció de la pèrdua pagarà. (Haswell i POWER8 són aproximadament temporàniament i ambdós incorporades a 128MB de eDRAM, que s' usa com a cau L4).

També, pel que fa a la tardència, una gran part de la dificultat és que els senyals de distància física han de viatjar. La llum només pot viatjar 10 cm en el període de rellotge d'una CPU 3 GHz. Per descomptat, els senyals no viatgen directament a través de la mort i ni es propagan en res a prop de la velocitat de la llum degut a la necessitat de la memòria intermèdia i de fans, que incurgralitza retards. Per tant, la distància màxima d'una memòria pot ser lluny d'una CPU per tal de mantenir un cicle rellotge de retardenc és un parell de centimtes a la majoria, que limita la quantitat de memòria que es pot ajustar a l'àrea disponible. El processador d'Intel Nehalem va reduir la capacitat de la memòria cau L2 contra Penryn en part per millorar el seu retard, que va portar a un major rendiment.* Si no ens importa tant la tardència, llavors no hi ha raó per posar la memòria en el paquet, en comptes d'allunyar-nos on és més convenient.

També s'hauria de considerar que la taxa d'impacte de la memòria cau és molt alta per a la majoria de les càrregues de treball: bé per sobre del 90% en gairebé tots els casos pràctics, i ni tan sols per sobre del 99%. Així doncs, el benefici d' incloent els records més grans sobre l'engany està inherentment limitat a reduir l'impacte d'aquest pocs per cent de la manca. Els processadors pensats pel mercat de l' empresa (com la POWER) solen tenir un ampli cau i poden incloure- hi eDRAM perquè és útil ajustar els grans conjunts de treball en empreses. Haswell ho té per donar suport a la GPU, perquè les textures són grans i no es poden allotjar al cau. Aquests són els casos d'ús per a l'eDRAM avui, no típic escriptori o treball de HPC, els quals estan molt ben servits per a la memòria cau típica hierapèrquies.

Per abordar alguns problemes educats en comentaris:

Aquests llocs de memòria principal no es poden utilitzar perquè estan dissenyats com a cau de les víctimes de L4. Això vol dir que són volàtils i eficaçs, de manera que les dades emmagatzemades en ells no es tracten com resideixen en cap localització específica, i es poden descartar en qualsevol moment. Aquestes propietats són difícils de reconciliar-se amb el requisit de la RAM per ser mesurada i persistent, però per canviar-les serien inútils per al seu propòsit. És clar que és possible encastar records d'un disseny més convencional, ja que es fa en microcontroladors, però això no és justifable per als sistemes amb grans records, atès que la baixa caloreria no és tan beneficiosa en la memòria principal com està en un cau, de manera que encarregar o afegir un cau és una proposta més rendible.

Pel que fa a la possibilitat de la memòria cau molt gran amb capacitat en l' ordre de gigabytes, només es requereix un cau en la majoria de la mida del conjunt de treball per a l' aplicació. Les aplicacions HPC poden tractar amb conjunts de dades terabyte, però tenen una bona localitat temporal i espacial, i per tant els seus conjunts de treball normalment no són gaire grans. Les aplicacions amb grans conjunts de treball són p. ex. Programari de bases de dades i ERP, però només hi ha un mercat limitat per als processadors optimitzats per a aquest tipus de càrrega de treball. A menys que el programari realment el necessiti, afegir més memòria cau proveeix una disminució molt ràpida. Fa poc que hem vist que els processadors guanyen instruccions precarregades, així que els llocs cau són capaços d'utilitzar més eficientment: una pot usar aquestes instruccions per evitar la imperdibilitat dels patrons d'accés de memòria, en comptes de la mida absoluta del conjunt de treball, que en la majoria dels casos encara és relativament petita.

*La millora en la tardència no era només per la mida física més petita de la memòria cau, sinó que també perquè l'associositat va ser reduïda. Hi havia canvis significatius a tota la jerarquia de memòria cau en Nehalem per diverses raons diferents, no tots estaven concentrats en la millora del rendiment. Així que, encara que això és suficient com a exemple, no és un compte complet.

Les raons principals de memòria més grans (GB's de DRARA) no s'inclou en la CPU es mor principalment sobre el cost. L'espai de la CPU mor és molt més car a causa del procés de fabricació necessari per a fer les característiques molt petites. Pot ser que no sigui possible fabricar els dos de la mateixa mort, encara que no sé prou sobre els detalls per donar cap resposta definitiva aquí.

Avaluem la femibilitat de posar una gran quantitat de DRAM directament a la CPU mor.

Per a donar una comparació d'escala, una CPU moderna pot ser ~180 mm\$^2\$ (approx. La mida d'Intel Haswell mor). No tinc cap figura precisa per a la CPU DRAM mor mides, però suposem que 1GB de la tradicional DRAM pren 140m\$^2\ (calculada des de les mides de la GPU DRAM). Per a un primer ordre d' aproximació, esteu doblant la mida de la CPU, que vol dir que com a mínim doblant el cost d'una CPU, i probablement més només per a 1GB de DRAM en la mateixa mort... No pago centenars de dòlars només per aconseguir 1GB de DRAM, i no crec que ningú ho faci.

No obstant això, la idea de mantenir la memòria més a prop de la CPU no és una causa completament perduda. Això és probable que la memòria es mogui en el futur perquè el fet és la velocitat de la llum és limitada i només és possible comunicar-se tan ràpid durant certa distància.

Les tècniques reals per a moure la memòria més a prop de la CPU (tingueu en compte que aquestes també tenen sacrificis amb tècniques tradicionals):

Apilar-los a dalt de la CPU mateixa. Això ja s'ha fet amb els Raspry Pi, i forma part de l'estàndard de memòria més ample de la IO. La memòria és encara una mort separada en un procés separat. No obstant això, això té el problema que qualsevol calor es desintegra a la CPU ha de passar a través de la memòria abans d'arribar a una pica de calor. Això vol dir que no funcionarà per a processadors d'alta potència, i per què les aplicacions principals per a aquesta tecnologia estan en processadors mòbils/ altres aplicacions incrustats on la vostra CPU no consumeixen desenes o centenars de watts.

Claveu-los molt a prop d'una substració de cost inferior. Així és com es dissenya HBM per a treballar, amb un autobús molt gran fabricat en una mort de baix cost, i és la memòria de la GPU d'alta direcció perquè l' amplada de banda és molt més gran. Els xips de memòria i interpositor encara són fabricats en diferents dies del processador actual.

Hi ha diverses raons per les quals afegir grans quantitats de D RAM a una CPU poden ser infeasibles.

El procés i el fab no es poden configurar per a DRAM. El DRAM requereix elements de circuit especials que prenguin passos de fabricació extra per produir. Augmenta el cost de la fabricació.

Tota aquesta memòria s'ha de provar. Les proves de memòria augmenten el temps de prova. Això és un altre augment de costos.

Aixecar la mort és un increment de cost propi, ja que vol dir menys mort per whafer. També afecta a cedir -- un defecte treu una fracció més gran del teu wafer. Per a un exemple extrem d' això, consulteu el cost d' una imatge completa (35mm) sensors a les càmeres.

Desenvolupar un procés que pot manejar tipus de memòria especials triga més temps, diners i feina, i té un major risc de fracàs. Qualsevol problema amb la RAM retardaria l'alliberament de la CPU. Les CPU de l'escriptori estan en el tall de la fabricació semiconductora, així que un retard pot ser un gran desavantatge competitiu. (Mireu: ADM contra Intel·ligència els últims anys.)

El DRAM requereix una sensibilitat analògica per a llegir, així com refrescant per al periòdic. No sóc un expert en DRAM, però dubto que pugui ser tan ràpid com una CPU d'alta punta independentment de si està fora de cas o en el xip. Així que probablement encara estaràs atrapat amb cau de llum SRA.

Fins i tot si pots superar els problemes de sobre i ficar un parell de gigates de D RAM en una CPU morta, encara no serà suficient per a executar un PC d'escriptori, portàtil o servidor, de manera que hauràs de tenir fora de memòria.

A més de les altres respostes, hi ha més coses que es poden dir sobre un sistema com aquest. En moure la memòria cap a la mort principal inclouria un munt d'altres problemes d'enginyeria. Hauríeu de redirigir els autobusos, construir un controlador DMA en el processador principal, reestructurar el bus IRQ, i determinar com desfer-vos de tota aquesta calor extra que estaríeu posant en una àrea concentrada. Això vol dir que el fabricant de la mare també hauria d'involucrar-se per donar suport a un canvi tan considerable. Mentre que els sistemes baixos probablement beneficiarien d'un canvi com aquest, els sistemes d'alta resolució probablement requeririen una gran quantitat de refrigeració. Dubto que el portàtil mitjà pogués manejar un xip, per exemple.

Aquest xip seria molt més car, tot i que la mare principal cauria en el preu (encara que probablement no appreciblement). Si heu vist els paquets per a un controlador DMA, més els paquets de la RAM, seria difícil de creure que tota aquesta lògica es pot estrènyer en una sola mort que no seria substancialment més gran. També recordeu que les CPU són tallades des de grans whafers que són una mida en particular. Això vol dir que el fabricant també tindria menys processadors per whafer, que augmentarien també el cost global.

Tingueu present que no estem parlant de l'ús de wattage per tot el sistema, que disminuiria, però més aviat que hi hauria encara més concentració de wetage (i per tant calor) en una sola àrea, que probablement incrementaria la probabilitat de fracàs.

Finalment, aquí hi ha un altre desavantatge, i aquesta és l'habilitat de proveir sistemes personalitzats. Ara mateix, els fabricants poden escollir posar sistemes amb processadors idèntics però diferents quantitats de memòria, o processadors diferents, però la mateixa quantitat de memòria, basada en les preferències del client. Per a oferir la multitud de configuracions diferents, haurien de construir diferents morts, cadascun en una altra línia de muntatge.

ADM està usant la tecnologia que realment funciona d'aquesta manera, on cada part del processador mor és una unitat lògica discreta que es pot canviar per diferents configuracions. En el futur, si un disseny com aquest és viable, podríem veure CPU molt bé que ofereixen memòria d'in-chip com a actualització d'un mòdul car, potser canviar algun poder de processament a canvi, o d'altres oscil·lacions. Per exemple, un dia potser tenim l'elecció entre 256 nuclis sense memòria integrada, o 128 nuclis amb memòria integrada, o potser fins i tot altres configuracions com part GPU, part CPU, part RAM.

Les cèl·lules DRAM son bàsicament uns barrets amb pèrdues. I el dielèctric aquí és la capa SiO2 mateixa. A mesura que la temperatura augmenta, els corrents de filtració augmenten de forma proporció. Aquestes porten les cèl·lules DRAM molt més ràpides que requereixen un ritme de refresc molt més ràpid, que incrementaria la complexitat, requeria l'actual i, per descomptat, afegir una mica més de calor.

A més de les respostes que ja s' han donat hi ha un aspecte addicional: La pèrdua de residus degut a les defectes de producció:

Diguem que 1/100 de totes les CPU d'un cert model produït són cruels (en realitat és menys, és clar; 1/100 és més fàcil de calcular) i 1/100 de totes les RAM produïdes són defectes.

Si tots dos components es combinarien en un sol xip, aleshores 1/100 de totes les fitxes tenen una CPU defectuosos i 1/100 de totes les fitxes tindria una RAM defectuosos.

Això significaria:

  • 1 de 10.000 xips tindria la RAM i la CPU
  • 99 xips haurien de tenir RAM de defecte
  • 99 xips tindrien una CPU de defecte
  • Tot el 199 de 10.000 parts produïts serien residus

Proporció de xips separats el càlcul és el següent:

  • 50 de 5000 RAMs són defectuosos
  • 50 de 5000 CPU són defectuosos
  • 100 de 10.000 parts produïts serien residus

Tingueu en compte que un GB de la RAM normalment està fet en forma d' un banc que consisteix en vuit xips de manera que no haureu de combinar dos, sinó 9 components en un xip si voleu posar la RAM i la CPU en el mateix xip. Això comportaria que unes 865 parts de desertiva de 10.000 milions produïts en l'exemple simple de dalt.

Les CPU "IBM Cel·les" tenien exactament aquest problema. La consola "Plastion" emprada xips que eren parcialment deserts; el programari de Playsttion es va escriure d'una manera que no s' utilitzaven els nuclis desertors i SRAM.

En realitat hi ha dos tipus de RAM. Són RAM estàtica i RAM dinàmica. La memòria estàtica és molt ràpida, però té un preu més alt. Mentrestant, la RAM dinàmica és lenta comparada amb la RAM estàtica però té un cost barat en comparació amb la RAM estàtica.

La memòria cau cau cau cau en una RAM estàtica. Podeu veure que venen en KB o MB mides. Són ràpids. Però cost alt.

A més de les altres raons mencionades, molts sistemes tenen més d'un nucli de CPU. A vegades, quan es desa informació en el principal DRAM és consistent amb totes les còpies de memòria cau, tots els processadors que no tenen la memòria cau d'informació tindran un accés igual a ell. Algunes arquitectura estan dissenyades al voltant de l'assumpció que cada nucli de la CPU "desura" un interval d'espai d' adreces, i fins i tot si una CPU és capaç d'accedir a la memòria d'altres processadors, aquests accéss seran molt més lents que accedir a la seva pròpia memòria, però x86 normalment no està implementat en aquesta manera.

Si un sistema es va dissenyar al voltant de l'assumpció que els nuclis del processador tenen certs intervals d' adreces, i el codi hauria d' intentar minimitzar l'ús d'altres intervals de processadors, aleshores tindria sentit tenir cada codi de processador que inclou una quantitat generosa de memòria. Aquest disseny pot reduir el temps necessari per a un processador per accedir a la seva pròpia memòria, però probablement incrementaria el temps necessari per accedir a la memòria d' un altre processador. A menys que el sistema estigui dissenyat per una suposició, però, és probable que les dades es distribueixin entre processadors sense considerar qui el necessitava quan. Fins i tot si el temps extra necessari per accedir a les dades d'una altra CPU (vs un sistema extern de memòria) fossin només la meitat tan gran com el temps desat en un accés intern, el 75% dels accessos en un sistema de 4 CPU estaria en curs la pena i només el 25% de dòlars recolliria el benefici.

Si es dissenyés un sistema des de zero per tal d'encaixar les tecnologies d'avui, una arquitectura de memòria no uniformat pot permetre més "banda per als diners" que cal permetre tots els processadors per accedir a la memòria de forma eficient. Tenint en compte els dissenys de programari d'avui, però, tenir un sistema de memòria extern que es comparteix entre processadors és apt ser més eficient que intentar tenir un magatzem de dades a gran volum dins dels processadors.

Mentre que totes les respostes anteriors són correctes per assenyalar per què és tan difícil afegir més memòria a la CPU, també és cert que hi ha molta memòria en CPU modernes.

En operacions en temps real quan els retards determinants són importants no és normal usar la memòria cau on-chip com a memòria addressable, pel codi i/o dades. L'avantatge és el temps d'accés ràpid i constant, i el desavantatge és que la memòria de fa xips està molt limitada.

Els problemes que descrius en la teva pregunta original només es podrien evitar si tot de la memòria de la màquina es va incloure a la CPU. Qualsevol memòria addicional afegida a la màquina mitjançant llocs del tauler principal estaria subjecte als mateixos retards que descriu i requeriria dispositius de control lògic entre la CPU / RAM i a bord de la RAM.

La RAM és barata i normalment s' expandirà pels usuaris un o fins i tot dues vegades entre l' actualització de la seva CPU.

També recordeu que una crida típica "Fetch," fins i tot si la RAM s' executa a la velocitat del rellotge de la CPU, porta a un nombre de marques d' inactivitat de la CPU.

L'organització tradicional de memòria en una màquina és una piràmide amb els registres de la CPU a dalt, després la memòria cau, llavors el disc. Normalment les màquines que fan bé una combinació d' una velocitat de rellotge decent, una quantitat raonable de memòria cau, una bona quantitat de RAM i un disc dur d' alta velocitat (o matriu). En els últims anys, el rendiment del disc sol donar el millor rendiment en els discs de la majoria de PC i els d'alts RPM, els discs amb memòria cau i els discs d'estat sòlids donen una bona empenta.

Sí, una màquina amb tot el seu xip RAM en les aplicacions modernes però una màquina amb alguna de la seva RAM en el xip executant un sistema operatiu estàndard segurament no proveiria l'augment de rendiment que podríeu pensar que podria ser.

Artículos Relacionados:

- Processador -

Esta web usa cookies, puedes ver la política de cookies, aquí -
Política de cookies +