存储扩展(二):位扩展(从位扩展到奇偶分体)

存储扩展(二):位扩展(从位扩展到奇偶分体)本文详细探讨了存储容量位扩展的概念 分析了如何通过位扩展来提高数据总线的宽度 以及如何处理总线宽度与编址单元大小不一致的问题

大家好,欢迎来到IT知识分享网。

尊重劳动成果,转载
  请注明出处!!!  
  请注明出处!!!  
  请注明出处!!!  


存储容量位扩展

介绍与问题分析

(只有一片C有没有办法?有,并行转串行,将片内两个不同地址的数据组成一个字,相应的存储单元元数减半,数据寄存器MBR增加一个,地址寄存器MAR减少一位,另外考虑到时序问题,读出的两个字节的保持时间段要一致以便传送至总线,第一个字节要保持的时间更久,或者总线/CPU分时分高低字节接受数据,这就增加了C的外围电路的设计复杂度,这种设计思路与并行访问存储器的设计是很相似的,见《计算机系统结构》)

  将多个芯片组成一个整体,使数据位数增加以满足CPU存储接口的数据吞吐率的要求(这里体现为数据总线的宽度),提高访问内存的速度,同时存储单元数不变,这就叫位扩展。显然易见,这种扩展方式扩容的同时也提升了速度。

数据总线连接

在这里插入图片描述

地址总线连接与片选信号选择

  ABus 3bit,但是位扩展后的整体对外只有四个单元,占两位,还有多的一位。 地址怎么分配?8个地址,只有4个存储单元,那么可以只占用4个地址,也可以8个地址全都使用。

总线宽度与编址单元大小不一致怎么办?

如果数据总线宽度是16bit,但是此计算机却按照字节编址,要如何设计?(此计算机一个读写周期只有一个地址在ABus上,此计算机不支持存储器并行工作)https://blog.csdn.net/_
2

分析

按字节编址,但数据总线却有两个字节宽,这说明此计算机必定采取了某种措施使得 一个读/写周期内 最多 可以读取/写入两个字节,再详细点,一个周期内可以读写一个字节也可以读写两个字节,这是怎么做到的呢?
(数据总线要充分利用,那就必须同时在上面并行传输16bit数据,这样传输16bit的数据效率最快。”同时”就意味着在一个存储器读/写周期内。“最多”意味着可以一个字节也可以两个字节,最好是两个字节但是一个字节也可以。)
https://blog.csdn.net/_

  一个地址读写两个字节,很自然地想到使用位扩展,扩展成16位之后一个地址就可以读两个字节。但是问题来了,按上文位扩展之后,就变成按字编址,与按字节编址不符
https://blog.csdn.net/_
  回到问题上来,我们的目标是一个周期内,一个地址既可以读出一个字节又可以读出两个字节。(更严谨的说法是存在一个地址,既可以从这个地址读出对应的一个字节,又可以读出对应的两个字节)由于地址是相同的,那么读一个和两个字节这两种状态必然受除地址之外的最少一个因素的制约
https://blog.csdn.net/_
  假设这个因素具体化为B。当B=0时给一个地址读一个字节,当B=1时给一个地址读两个字节。新的问题来了,B=1时,一个地址读出的两个字节究竟是哪两个字节呢?显而易见的,是向这个地址写入的那两个字节,而且往往这两个字节作为一个整体具有一定的意义。整体具有意义那么最直观的方式就是将这两个字节写入相邻的两个地址,即连续的两个地址。相邻的两个地址又有两种不同的情况。
https://blog.csdn.net/_
  假设这个地址为1010 b,那么向1010 b写入两个字节有两种可能,写到1010 b与1011 b,或者1010 b与1001 b
1-2
我们取左图情况继续分析,即取这个地址N和下一个地址N+1作为写入2字节的存储单元的位置。
https://blog.csdn.net/_16056397
  N有奇偶之分,暂定N为偶数,有很多个这样的地址对(N,N+1)addr_pair
给定地址N,B=1可以访问N,N+1的两个字节,N(N+1),B=0则可以访问N(N+1)的一个字节,给定两片C怎么组织?
https://blog.csdn.net/_16056397
  从N与N+1入手,N为偶数,可以表示为xy0 b,N+1就表示为xy1 b,其中xy完全一样,最后一位0/1决定是奇数还是偶数。在本文地址总线连接与片选信号选择这一部分我们发现取A2 A1做片内地址,可以访问4个双字节。如果采用这个设计,那么给定地址xy_ b(xy0 b或xy1 b),就可以访问xy0 b与xy1 b组成的双字节,但是无法访问单字节,如何改进呢?我们知道单字节是有奇偶之分的,也就是说地址上的A0有0,1之分。A0为0时访问偶字节,1时访问奇字节。
在这里插入图片描述













  /CS1 = A0 B + /A0/B
  /CS0 = A0 /B + /A0 B = A0
怎么取奇数地址的开始的连续两个字节呢?并行转串行,先取奇字节,再取偶字节,分两个周期取。

这或许是8086计算机奇偶分体的由来。

奇地址所在的M1我们称之为奇体(odd bank)
偶地址所在的M0我们称之为偶体(even bank)

8086 CPU 34号引脚 /BHE(Bus High Enable)其实就与上述片选信号 /CS1相对应

8086计算机,两片8K*8bit的存储芯片如何扩展到16位?注意A0(/BLE)做片选,A1-A13做片内地址线。注意是A1开始,如果取A0-A12,存储器中有四分之一的存储单元不能读写!!!造成大量的浪费!!!读者可自行验证。

  奇偶分体实质上是低位交叉编址,只不过数据总线宽度为16bit,偶地址一次可以拿出2*8bit的数据。

鄙人才疏学浅,如有不当之处,欢迎私信或评论区告知 [抱拳]

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122969.html

(0)
上一篇 2025-10-12 17:26
下一篇 2025-10-12 17:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信