Què determina la màxima capacitat de la RAM?

Tenia curiositat per saber quins límits hi ha la capacitat màx RAM per a un SO mentre llegia els microprocessadors de 32 bits i 64 bits. Sé que el límit per a l' SO de 32 bits és 4GB i per a l' SO de 64 bits és 16 exabytes, però la meva pregunta és com hi arribem? Vaig trobar aquest càlcul:

5 respostes 5

El càlcul està en bytes des que la memòria està adreçada en unitats de bytes. @ info: whatsthis Si una paraula màquina és $N$ bits i un adreçat es desa en un registre, la mida de la màquina és una única paraula, aleshores podeu adreçar- vos a 2 $^N$ diferents, cadascuna de les quals és un byte (en principi, que podria dependre de la CPU, però no sóc conscient de cap CPU que dirigeixi la seva memòria en paraules més grans). No obstant això, es poden fer servir mecanismes d'acció més complicades per abordar més memòria. Per exemple, els punters podrien prendre més d' una paraula màquina, o els segments es podrien aplicar (com a 80386 i els seus successors).

Primer, a l'arquitectura de l'ordinador, el càlcul de 32 bits/64 és l'ús dels processadors que tenen amples de les dades, mida enter, i adreces de memòria d' amplada de 32/64 bits (quatre/8octes). A més, la CPU de 32 bits/ 64 i les arquitectures ALU són les que es basen en els registres, els autobusos d' adreces o els autobusos de dades d'aquesta mida(duda per dissenyar decisions diferents de CPU/OS).

Segon, hi ha una confusió que es crea quan es calcula la capacitat màxima RAM de 32/64 bit OS/mictroprocessador. L' adreça de 32 bits/ 64- bit/màquines normalment es considera com si tingués una única Paraula de bytes@ info: tooltip i no byte ( p. ex. una paraula de bytes pot ser un número decimal de 32/64 bits depenent de l' arquitectura i un byte a l' altra banda són 8 bits ) però com que fem tots els càlculs de la nostra memòria en termes de bytes el resultat també és en termes de bytes. Per tant, bytes és la unitat escrita on es troba

1byte = 1 byteword = 1 adreça Espai/màquina

Així que si tenim 4,294,967, adreces 296 vol dir que podem adreçar tantes paraules de byte i, per tant, la capacitat total de la RAM en un OS 32 bits és 4GB, similarment per a 64- OS, els càlculs són d'adreças amb una paraula de bytes cada i més tard escrita en termes de bytes.

Espero que això ho faci prou clar. Gràcies per les seves dades i respostes.

La resposta simple que 32 bits CPU pot abordar 2^{ 32} bytes i 64bits CPU poden adreçar-se a 260} els bytes són bastant correctes, però, un pot trobar algunes excepcions, o afinar l'explicació.

CPU amb espais d' adreça virtual i física separats. Poden tenir diferents mides. La designació de 32 bits o 64 bits és sobre l' espai virtual : Les aplicacions tenen 32 bits o 64 bits.

L' espai de l' adreça física pot ser més petit o més gran que l' espai de l' adreça virtual :

  • En alguns 32 bits x86, començant des del PentiPro, una adreça física més gran, 36 bits (=64GB) es pot trobar disponible: Diverses tasques, cada ocupat a 4GB pot ser simultàniament executant- se a la CPU. L' OS ha de gestionar un espai d' adreces global més gran que l' espai de programari d' usuari (i els escriptors de l' usuari realment odien això, perquè l' OSM necessita canviar els mapes d' intercanvi per accedir a tota la memòria). 32bits SPARC tenia un mecanisme similar.
  • En l'actual 64 bits x86, la quantitat de memòria física que es pot aconseguir és més petita, IIRC 48bits, perquè 16EXB és massa gran, per ara.

TL;DR

Deixa que Oxfords s'escriplin

Sé que el límit per a l' SO de 32 bits és 4 GB i per al SO 64 bits és 16 exabytes, però la meva pregunta és com hi arribem?

Ara parlem. espai d' adreça plana (i.e. Quantes adreces diferents un programa pot distingir). Si aquest programa usa 32 bits (34) punters, hi ha 232 (264) diferents adreces. Assumint que cada d'aquestes posicions pot acomodar 1 byte, tenim 4 GB (16 EB) de la capacitat isoculable. Això també respon a l'última pregunta:

El que no entenc és com el càlcul de les peces convertides en bytes i arribar als resultats 4GB i 16EXB?

OP fa referència als microprocessadors de 32 bits i 64 bits de la primera frase. Hem d'entendre que aquesta referència és a l'arquitectura interna. Per il·lustrar l'important és definir el tema de la discussió que permet que els Variables tinguin un cop d'ull CPU de l'Intel 80386SX :

  • La seva arquitectura són 32 bits,
  • L'amplada de l'autobús de dades són 16 bits.
  • L' amplada de l' autobús és de 24 bits.

Mentre això és CPU de 32 bits, només pot adreçar 16 MiB de la RAM i necessita dos cicles de CPU per moure una paraula entre un registre i la RAM ( Més exemples ).

Així que Per què la mida de l' adreça no sempre concorda amb la mida de la paraula màquina ? Perquè la CPU ha d' adreces raonable La quantitat de RAM. Tenir un bus d'adreça de 8 bits a la CPU de 8 bits només permetia 256 B de memòria. OHH, tenir un autobús d'adreça de 64 bits a la CPU de 64 bits no es factible perquè no hi ha cap demanda real ni HW disponible per tal de configurar- lo, però incrementaria la complexitat d' subsistema de memòria considerablement. Què raonable Ve de la decisió d'enginyeria i empresarials en el moment determinat.

La primera pregunta és: quanta RAM pot el funcionament del maquinari? Per exemple, si hi ha n bits transferits entre CPU i RAM en tots els accés, i la CPU té línies de k adreça, llavors la CPU pot accedir a 2 bits^k· len $, o 2^k vn/8$.

No obstant això, la CPU ha d'adreçar altres coses que la RAM, per exemple la memòria de vídeo, l'IO, el ROM de la memòria, i així successivament. Així que heu d'afegir aquestes coses per obtenir la quantitat màxima usable de la RAM. I depèn tant de la CPU com del maquinari de la memòria com de l'ús. Per exemple, si les línies d' adreces són suficients per a 64GB, i altres maquinari requereix espai 2GB adreçable, llavors depenent del maquinari, només 32GB, o 48GB, o 56GB RAM poden ser usades, però probablement no 62GB.

El següent nivell és quanta RAM pot reconèixer el microprogramari de l' ordinador. L'ordinador no sap quanta RAM hi ha quan està encesa, ha de reconèixer aquesta RAM. Això s'ha fet habitualment pel programari construït fermament a l'ordinador. I aquest software només pot reconèixer 16GB de RAM. (Això passa sovint amb ordinadors antics, on no hi ha fitxes de memòria per a més de 16GB estaven disponibles quan es va vendre l'ordinador, i noves peces de memòria més grans no es poden reconèixer).

Això és tot. abans El sistema operatiu entra en joc. Normalment l'OSM no té limitacions. És clar, requereix més memòria per a taules de pàgines, etc. si hi ha més RAM, però llavors té més RAM disponible per a tenir taules de pàgina perquè té més RAM. Hi ha casos en els que el fabricant de l' SO té una versió "casa" i una "versió professional" del SO, i la versió "home" de l' OSM pot estar molt restringida.

O el SO pot haver decidit usar força arbitàriament només un petit nombre de bits per a l' índex d' una pàgina RAM en alguna estructura de dades, per exemple. Si l' OS tan sols usa 24 bits per a emmagatzemar l' índex d' una pàgina RAM, i una pàgina RAM és 4KB, llavors aquest SO només pot manegar 64 GB de RAM. Que és bastant possible per a un SO escrit fa vint anys, quan algú podria haver pensat que " ningú tindrà mai més de 64GB de RAM." ( Recordo un ordinador que podia aguantar fins a 1,5GB de RAM, i la RAM va ser quatre vegades més cara que la resta de l'ordinador).

Artículos Relacionados:

- Memòria RAM -

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