4

我刚刚开始汇编语言编程,在第一堂课中,我们的老师告诉我们有关英特尔 8080 和英特尔 8085 的信息,他说这些处理器有 64k 内存。

现在我想知道我们如何使用特定处理器找到这个内存量,例如我有一个 1.8 Ghz 的处理器,现在我如何找出这个处理器可以使用的内存量。

我想问的是告诉我如何找出这个内存量的方法?

4

5 回答 5

7

这取决于 CPU 支持多少位(物理)寻址,地址位数通常 <= 地址寄存器中的位数,例如

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

请注意,许多 64 位 CPU 通常只支持 40 位地址空间,即 1 TB。

于 2010-03-20T09:52:52.050 回答
1

通常处理器被设计成单个整数寄存器可以存储任何内存位置的地址。因此,“最大内存量”由寄存器(或处理器)的位数决定。32 位等于 4 GB。64 位等于 16 EB的 RAM。

于 2010-03-20T09:52:25.983 回答
1

取决于架构,但 CPU 将受到它拥有多少地址线的限制。旧的 pentium pro 32 位 CPU 支持 36 条地址线,因此 CPU 最多可以支持 64GB。较新的 CPU,例如 64 位 CPU 的 i7-860,也仅支持 36 个物理地址,因此也仅限于 64GB。物理地址空间的大小可以通过 CPUID 指令代码找到,其他 CPU 可能使用不同的技术或需要阅读数据表。似乎您正在学习 x86,因此在这种情况下,如果您的 CPU 支持 CPUID,那么 CPUID 就是您想要的。

于 2010-03-21T06:09:40.750 回答
1

您指的是“内存”虚拟内存还是物理内存?在虚拟内存的情况下,32 位处理器为 4GB,尽管您可能无法全部使用它们,因为操作系统使用了其中的一部分。还要注意 CPU 的 PAE(物理地址扩展)以及操作系统是否正在运行 PAE 内核。这将为您提供超过 4GB 的物理内存来安装和使用,但虚拟地址空间仍保持 4GB。请看一看 :

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

于 2011-05-05T03:37:13.283 回答
0

嗯,这取决于某些变量。

例如,一个 8 位处理器的值最高为 255,这是通过将 2 的八次方减去该值得出的。这个数字 255 是 CPU 可以处理的字节数,RAM 不能超过这个数量。

现在,让我们稍微加强一下(没有双关语的意思)。一个 16-it 处理器的值高达 65,535,这再次通过取 2 的 16 次方得到,然后再减去 1(我相信你现在明白了)。这意味着我们可以拥有 65,535 字节的 RAM,即 65.535 KB。希望这开始有意义。

32 位处理器的值高达 4,294,967,295(这些数字变得非常大)。那是 4,294,967,295 字节,或 4.294967295 GB 的 RAM。这项技术在 90 年代开始大量使用,今天仍然是半流行的。

但是,当然,我们都知道技术如何快速且经常地变化,所以是的,还有 64 位计算机,与 32 位技术一样好。这实际上是当今最常见的处理器类型。因此,它们可以支持 18,446,744,073,709,551,615 的值。是的,这也是它可以容纳的字节数,等于 18.446744073709551615 艾字节。

而且,尽管目前没有处理器可以容纳这个数量,但也有 128 位处理器。它们最多可以容纳 340,282,366,920,938,463,463,374,607,431,768,211,455 字节的数据,这也等于 340.282366920938463463374607431768211455 ...嗯...嗯,一些字节的测量单位,恰好比我知道的更大,而且还没有任何字节除此之外的字节测量。但是,嘿,这只是告诉您 128 位处理器可以处理很多事情,我们可能会在遥远的将来看到它们。人们之所以说 128 位、64 位、32 位、16 位或 8 位,是因为这比记住所有这些比记住它们每个代表的那些大数字要容易得多。

So, I hope this helps. I'm not sure the 8-bit one is correct, because I know the NES has 2 kilobytes of RAM, which exceeds 255 bytes, but, I know everything else is correct. If it isn't correct, you could do some research on your behalf as well ;).

于 2014-01-09T03:11:02.713 回答