Memory 字节寻址是如何工作的?

Memory 字节寻址是如何工作的?,memory,byte,memory-address,cpu-architecture,Memory,Byte,Memory Address,Cpu Architecture,我不熟悉计算机体系结构。如果我错了,请纠正我 如果一个内存模块由8个内存芯片组成,并且如果每个芯片每个地址存储4位,那么通过将地址应用到模块的地址引脚,我可以从模块中的该地址获得(8 x 4=)32位。但是字节寻址告诉我们每个字节都有一个地址。但在这里,我使用地址访问32位。那怎么可能呢 我认为,如果每个芯片每个地址存储1比特,那么通过对模块应用地址,我可以访问8比特或1字节 你说每个芯片每个地址存储4位,同一地址总线上有8位。地址总线是限制因素。在32位体系结构中,地址总线的每个字节必须有32

我不熟悉计算机体系结构。如果我错了,请纠正我

如果一个内存模块由8个内存芯片组成,并且如果每个芯片每个地址存储4位,那么通过将地址应用到模块的地址引脚,我可以从模块中的该地址获得(8 x 4=)32位。但是字节寻址告诉我们每个字节都有一个地址。但在这里,我使用地址访问32位。那怎么可能呢


我认为,如果每个芯片每个地址存储1比特,那么通过对模块应用地址,我可以访问8比特或1字节

你说每个芯片每个地址存储4位,同一地址总线上有8位。地址总线是限制因素。在32位体系结构中,地址总线的每个字节必须有32行才能寻址。如果有8个芯片,每个芯片对同一地址产生4位响应,那么每个地址就有32位。这种安排的优点是地址总线可以减少2条,而不降低可寻址范围(仅分辨率)

您认为每个芯片需要为每个地址生成1位才能进行字节寻址,这是正确的

这就是理论,在实践中,我怀疑可以设计一种解决方案,将4位进行时分多路复用,使每个位都可以单独访问


很长一段时间以来,我一直听说一次寻址不少于32位,因为这可能是可寻址的最小单元。当2Gb-4Gb是32位字节寻址的物理限制时,这当然是有意义的。

你说的是哪个真正的字芯片?你应该阅读。写这篇文章的主要目的是解释为什么在编码时关注缓存很重要,但它首先介绍了内存是如何安排和连接到CPU的,下至DDR DIMM级别,以及用于向DIMM发送地址,然后在同一总线上写入或读取数据的信令机制。它对这个问题有一个比我准备解释和打字更完整的答案。有其他一些关于x86的好链接。@Michael我以为他在说DIMM。所以我的回答忽略了缓存,缓存可能是最实际的解决方案。我想我的问题是指在32位或64位DIMM中如何实现字节寻址?@Kaustav:在DDR SDRAM中,不是这样。读和写总是以突发方式发生。我认为突发大小是64B,与现代x86 CPU的缓存线大小相匹配。写入字节发生在缓存中,将整个缓存线标记为脏缓存。AFAICT,对标记为不可缓存的内存的单字节写入必须在内存控制器内生成读-修改-写操作,因为。那么如何在字节寻址方案中分别寻址该32位或4位字节中的每个字节?位屏蔽和/或位移位。如果需要位,通常会有特定于语言的布尔容器。关键是,这在嵌入式系统上并不一定不常见,尽管不是标准的32位体系结构。芯片是什么?我的问题不是任何特定的语言。这是关于组织的。如果单个芯片内的地址包含超过1位,则地址指的是超过一个字节。那么字节寻址在这里是如何应用的呢?正如我们所说,您正在寻址32位,所以必须在某个地方进行分解,通过TDM或位掩码和移位。我对计算机体系结构是新手。也许我错了。是TDM或位屏蔽和移位为每个字节提供了单独的地址,还是仅仅使我们能够访问这些单独的字节,但使用相同的地址?