Domanda

Ho appena iniziato la programmazione in linguaggio assembly e nella prima lezione il nostro insegnante ci ha detto circa intel 8080 e Intel 8085 e ha detto che non c'era 64k di memoria con questi processori.
Ora voglio sapere che come noi troviamo questa quantità di memoria con processore specifico, ad esempio ho un Ghz di processore 1.8, ora come faccio a sapere la quantità di memoria che può essere utilizzata con questo processore.
quello che sto cercando di fare è dirmi il metodo come possiamo scoprire questa quantità di memoria?

È stato utile?

Soluzione

Dipende da quanti bit (fisica) affrontare i supporti CPU, il numero di bit di indirizzo è tipicamente <= il numero di bit in un registro di indirizzi, per esempio.

8085/Z80 - 16 bit address registers - 16 bit addressing - 64 kB address space
68008 - 32 bit address registers - 20 bit addressing - 1 MB address space
68000 - 32 bit address registers - 24 bit addressing - 16 MB address space
68020 - 32 bit address registers - 32 bit addressing - 4 GB address space

Si noti che molte CPU a 64 bit in genere supportano solo qualcosa di simile a uno spazio di indirizzamento a 40 bit, vale a dire 1 TB.

Altri suggerimenti

Solitamente processori sono progettati in modo che un unico registro intero può memorizzare l'indirizzo di qualsiasi locazione di memoria. Pertanto la "quantità massima di memoria" è determinata dalla quantità di bit di un registro (o il processore). 32 bit uguali a 4 GB. 64 bit è uguale a 16 exabyte di RAM.

Dipende dal architettura, ma una CPU sarà limitato dal numero indirizzo linee che ha. Con un vecchio Pentium Pro a 32 bit CPU c'erano 36 righe di indirizzo supportati e quindi la CPU potrebbero supportare fino a 64GB. Un recente CPU più come l'i7-860 che è una CPU a 64-bit, anche supporta solo gli indirizzi fisici 36 e quindi è limitato a 64GB troppo. La quantità di spazio di indirizzo fisico può essere determinato usando il codice CPUID, altre CPU possono utilizzare diverse tecniche o richiedere la lettura del foglio. Sembra x86 studiando quindi in questo caso CPUID è quello che vuoi se la CPU supporta.

Che cosa stai puntando facendo riferimento alla 'memoria' memoria virtuale o fisica? In caso di memoria virtuale è 4GB per i processori a 32 bit, anche se non si potrebbe ottenere tutti loro di essere utilizzato come sistema operativo utilizza una parte di esso. Da notare anche il PAE (Physical Address Extension) per la CPU e se il sistema operativo è in esecuzione un kernel PAE. Questo vi darà più di 4GB di memoria fisica per essere installato e utilizzato, ma lo spazio di indirizzamento virtuale rimane ancora 4GB. Si prega di dare un'occhiata:

http://en.wikipedia.org/wiki/Physical_Address_Extension

http://msdn.microsoft. com / it-it / library / aa366796 (v = vs.85) aspx

http://msdn.microsoft.com/en-us/windows/ hardware / gg487503

Beh, dipende da alcune variabili.

Per esempio, un processore a 8 bit ha valori fino a 255, che è stato capito prendendo 2 all'ottava potenza, e sottraendo il valore di uno. Questo numero, 255, è quanti byte la CPU può gestire, e la RAM non può superare tale valore.

Ora, facciamo un passo su una punta (senza sottintesi). Un processore a 16-it ha valori fino a 65.535, e che è stato ancora una volta capito prendendo 2 alla potenza XVI, e quindi sottratto da uno (sono sicuro che si ottiene l'immagine grande ora). Questo significa che possiamo avere 65.535 byte di RAM, o 65.535 kilobyte. Speriamo che questo sta cominciando ad avere un senso.

Un processore a 32 bit ha valori fino a 4.294.967.295 (questi numeri stanno ottenendo abbastanza grande). Questo è 4,294,967,295 byte o 4.294967295 gigabyte di RAM. Questa tecnologia iniziato ad essere usato molto negli anni '90, e rimane ancora semi-popolare oggi.

Ma, naturalmente, sappiamo tutti come la tecnologia cambia rapidamente e spesso, quindi sì, c'è anche computer a 64 bit, buono come la tecnologia a 32-bit è. Questo è in realtà il tipo di processore più comune oggi. Così, possono sostenere i valori di 18.446.744.073.709.551.615. Sì, e questo è anche il numero di byte che può contenere, che è pari a 18.446744073709551615 exabyte.

E, anche se non esistono attualmente processori che possono contenere questo importo, c'è anche processori 128 bit. Essi possono contenere fino a 340,282,366,920,938,463,463,374,607,431,768,211,455 byte di dati, che è anche uguale a 340,282366920938463463374607431768211455 ... um ... bene, alcuni di misura di byte, che sembra essere più grande di yottabytes, e per quanto ne so, non ci sono unità di misura byte oltre. Ma, ehi, che dice solo che un processore a 128 bit in grado di gestire un sacco, e potremmo li sta vedendo in un lontano futuro. La ragione per cui la gente dice a 128-bit, 64-bit, 32-bit, 16-bit o 8-bit è perché è molto più facile che cercare di ricordare tutti i coloro che quei grandi numeri che ciascuno di essi rappresentano.

Quindi, spero che questo aiuta. Non sono sicuro che l'8-bit uno è corretto, perché so che il NES dispone di 2 KB di RAM, che supera i 255 byte, ma, so che tutto il resto è corretto. Se non è corretto, si potrebbe fare qualche ricerca per conto vostro pure;).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top