Pergunta

Acabei de iniciar a programação da linguagem da Assembléia e, na primeira palestra, nosso professor nos contou sobre a Intel 8080 e a Intel 8085 e ele disse que havia 64 mil memória com esses processadores.

Agora, quero saber que encontramos essa quantidade de memória com processador específico, por exemplo, tenho um processador 1,8 GHz, agora como posso descobrir a quantidade de memória que pode ser usada com esse processador.

O que estou tentando perguntar é me dizer o método de como podemos descobrir essa quantidade de memória?

Foi útil?

Solução

Depende de quantos bits de abordagem (física) do suporte da CPU, o número de bits de endereço é tipicamente <= o número de bits em um registro de endereço, por exemplo,

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

Observe que muitas CPUs de 64 bits geralmente suportam apenas algo como um espaço de endereço de 40 bits, ou seja, 1 TB.

Outras dicas

Geralmente, os processadores são projetados para que um único registro inteiro possa armazenar o endereço de qualquer local de memória. Portanto, a "quantidade máxima de memória" é determinada pela quantidade de bits de um registro (ou pelo processador). 32 bits iguais a 4 GB. 64 bits iguais a 16 Exabytes de RAM.

Depende da arquitetura, mas uma CPU será limitada por quantas linhas de endereço possuem. Com uma antiga CPU Pentium Pro de 32 bits, havia 36 linhas de endereço suportadas e, portanto, a CPU poderia suportar até 64 GB. Uma CPU mais recente como o i7-860, que é uma CPU de 64 bits, também possui suporte apenas para 36 endereços físicos e, portanto, é limitado a 64 GB. A quantidade de espaço de endereço físico pode ser encontrada usando o código de instrução CPUID, outras CPUs podem usar técnicas diferentes ou exigir a leitura da folha de dados. Parece que você estuda x86, portanto, nesse caso, o CPUID é o que você deseja se o seu CPU o suportar.

O que você está apontando referindo -se à memória virtual da 'memória' ou física? Em caso de memória virtual, é 4 GB para processadores de 32 bits, embora você não consiga que todos eles sejam usados, pois o sistema operacional usa uma parte dele. Observe também o PAE (extensão de endereço físico) para sua CPU e se o sistema operacional estiver executando um kernel PAE. Isso fornecerá mais de 4 GB de memória física a ser instalada e usada, mas o espaço de endereço virtual ainda permanece 4 GB. Por favor, dê uma olhada :

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

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

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

Bem, depende de certas variáveis.

Por exemplo, um processador de 8 bits possui valores de até 255, que foi descoberto levando 2 para a oitava potência e subtraindo o valor por um. Esse número, 255, é quantos bytes a CPU pode lidar, e a RAM não pode exceder esse valor.

Agora, vamos aumentar um pouco (sem trocadilhos). Um processador de 16 ite possui valores de até 65.535, e isso foi mais uma vez descoberto levando 2 para o décimo sexto poder e depois subtraído por um (tenho certeza que você obtém o quadro geral agora). Isso significa que podemos ter 65.535 bytes de RAM, ou 65,535 kilobytes. Felizmente, isso está começando a fazer sentido.

Um processador de 32 bits possui valores de até 4.294.967.295 (esses números estão ficando muito grandes). São 4.294.967.295 bytes, ou 4.294967295 Gigabytes de RAM. Essa tecnologia começou a ser muito usada nos anos 90 e ainda hoje permanece semi-popular.

Mas, é claro, todos sabemos como a tecnologia muda de maneira rápida e frequente, então sim, também existem computadores de 64 bits, tão bons quanto a tecnologia de 32 bits. Este é realmente o tipo de processador mais comum hoje. Portanto, eles podem apoiar valores de 18.446.744.073.709.551.615. Sim, e também é quantos bytes ele pode segurar, o que é igual a 18.446744073709551615 Exabytes.

E, embora atualmente não haja processadores que possam conter esse valor, também existem processadores de 128 bits. Eles podem possuir até 340.282.366.920.938.463.463.374.607.431.768.211.455 bytes de que não são iguais, que não é o que não é o que é o que não é o que é o que não é o que é o que não é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que é o que não é igual a um que não é igual a 340.282366920938463463337374444377777777777777777777777777777777777777777777777. de medição de bytes além disso. Mas, ei, isso apenas diz que um processador de 128 bits pode lidar muito com muito, e podemos vê-los no futuro distante. A razão pela qual as pessoas dizem que 128 bits, 64 bits, 32 bits, 16 bits ou 8 bits é porque é muito mais fácil do que tentar se lembrar de todos esses do que os grandes números que cada um deles representa.

Então, espero que isso ajude. Não tenho certeza se o de 8 bits está correto, porque sei que o NES possui 2 kilobytes de RAM, o que excede 255 bytes, mas sei que todo o resto está correto. Se não estiver correto, você também pode fazer algumas pesquisas em seu nome;).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top