比如下图按题意很明显是个位扩展但是却是用多模块交叉编址。
交叉编址分为低位交叉编址(常用)和高位交叉编址,是为了解决cpu和存储器之间的速度矛盾,因此将多个存储芯片连在一块,通过高位或低位的几个二进制数来区分是哪一个存储芯片,由于cpu存取某一个存储芯片后,该芯片需要一定的恢复时间(联想到存取周期=存取时间+恢复时间),因此可以在该芯片的恢复时间内,cpu去存取别的存储芯片,提高效率,这就是交叉编址的意义;字拓展是为了拓展存储器中最大可寻址范围,而字拓展的前提是cpu的地址接口能够满足字拓展的需要,字拓展是将多个存储芯片的地址线连在cpu的地址线接口上(连接方式、连接顺序完全相同),将不同存储芯片上面的片选线接口接在译码器上,通过译码器来决定哪个存储芯片被接通。
因此,综上所述,王道书p102上面的图片是默认了高位交叉编址,但也可以低位交叉编址(通过A0-A1连接译码器,A15-A2连接地址线),这一观点在王道p104课后习题07可体现出来了,但是要注意一点是,一般是连续编址的。
位扩展和交叉编址是两种不同的扩展存储器总线的方式。位扩展是将原来的存储器总线扩展成更宽的数据位,而交叉编址是将存储器地址按照某种规则进行重新编址,以扩展存储器总线。
位扩展的例子如下图所示,原来的8位存储器总线被扩展成16位存储器总线,每个地址对应的数据位宽也从8位扩展到16位。
+-------+
| |
---| CPU |---
| |
+-------+
|
|16-bit data bus
|
+-------+
| |
---|Memory |---
| |
+-------+
交叉编址的例子如下图所示,原来的存储器地址被重新编址,每个地址对应的数据位宽也不同。
+-------+
| |
---| CPU |---
| |
+-------+
|
|8-bit data bus
|
+-------+ +-------+ +-------+
| |---| |---| |
---|Memory1| |Memory2| |Memory3|
| |---| |---| |
+-------+ +-------+ +-------+
| | |
| | |8-bit address bus
| | |
+-------+ +-------+ +-------+
| | | | | |
---|Memory4|---|Memory5|---|Memory6|
| | | | | |
+-------+ +-------+ +-------+
以上是我的回答,希望对你有所帮助。