【发布时间】:2012-03-17 14:41:23
【问题描述】:
在 C 中,每个字节都是可单独寻址的。假设一个整数(比如说它使用 4 个字节)有一个地址 0xaddr(这是 32 位,假设我们有一个 32 位处理器,具有 32 位地址总线和 32 位数据总线)并假设整数的值是 @ 987654323@。现在,如果我从内存中获取这个值,处理器是如何做到这一点的?处理器是否将0xaddr(32 位地址)放在地址线上,然后获取 8 位数据,比如0x12。然后处理器将在地址线上调整0xaddr+1,然后获取另一个 8 位数据0x34,依此类推以获得 4 个整数字节?还是处理器只是放置0xaddr 并一次读取 4 个字节,从而利用其完整的 32 位数据总线?
【问题讨论】:
-
视情况而定。您在说哪个确切的处理器? IIRC 8086 有一个 16 位数据总线。许多较新的型号(奔腾及更高版本)具有 64 位 FSB。
-
@harold : 你能告诉我它对于不同的处理器有什么不同吗?我问的是一般性问题,而不是特定于任何处理器。 8086 有 16 位数据总线,32 位数据总线和 64 位数据总线如何?谢谢
-
它比简单的数据总线复杂得多,还有缓存
-
@KarolyHorvath : 你能解释一下或者给我一些可以回答这个问题的文章吗?