8086内存为什么要分奇偶bank?
Why is 8086 memory divided into odd and even banks?
将内存分成bank有什么好处?
8086怎么能用这种方案单次访问一个字,而单片内存就不行? (AFAIK 处理器通常以块而不是单个字节的形式访问内存,所以无法理解为什么在单个内存芯片的情况下它不能在单次访问中访问一个字)
内存块的划分是物理的还是逻辑的?
偶数bank和奇数bank以及单片机的数据线如何连接到内存?
8086 具有用于内存访问的 20 位寻址模型。每个地址代表一个字节——然而,8086 的自然字大小是 2 个字节,所以你需要一种方法来同时读取两个字节——因此,两个存储体。这里的主要好处是简化 - 您不需要内存控制器,CPU 直接从 8 位模块访问数据。
现代处理器以块的形式访问内存,是的。设计 8086 时情况并非如此 - CPU 足够慢,内存延迟无关紧要。如果你有一个 8 位内存模块,它会给你 8 位,仅此而已。后来的 32 位 486 可以使用四个 8 位组,或一个 "non-banked" 32 位模块配置,并利用板载内存缓存和指令流水线 - 8086 两者都没有。
物理和逻辑。
一个字中的所有奇字节,另一个字中的所有偶字节。
还涉及一些其他的复杂问题,但基本上,要点很简单——您认为的技术当时还不存在,或者成本高得不切实际。随着时间的推移,晶体管变得越来越便宜,我们得到了越来越多的好东西。
将内存分成bank有什么好处?
8086怎么能用这种方案单次访问一个字,而单片内存就不行? (AFAIK 处理器通常以块而不是单个字节的形式访问内存,所以无法理解为什么在单个内存芯片的情况下它不能在单次访问中访问一个字)
内存块的划分是物理的还是逻辑的?
偶数bank和奇数bank以及单片机的数据线如何连接到内存?
8086 具有用于内存访问的 20 位寻址模型。每个地址代表一个字节——然而,8086 的自然字大小是 2 个字节,所以你需要一种方法来同时读取两个字节——因此,两个存储体。这里的主要好处是简化 - 您不需要内存控制器,CPU 直接从 8 位模块访问数据。
现代处理器以块的形式访问内存,是的。设计 8086 时情况并非如此 - CPU 足够慢,内存延迟无关紧要。如果你有一个 8 位内存模块,它会给你 8 位,仅此而已。后来的 32 位 486 可以使用四个 8 位组,或一个 "non-banked" 32 位模块配置,并利用板载内存缓存和指令流水线 - 8086 两者都没有。
物理和逻辑。
一个字中的所有奇字节,另一个字中的所有偶字节。
还涉及一些其他的复杂问题,但基本上,要点很简单——您认为的技术当时还不存在,或者成本高得不切实际。随着时间的推移,晶体管变得越来越便宜,我们得到了越来越多的好东西。