虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!
目录
存储器
CPU——内存——磁盘控制器——以太网控制器
在连接中要考虑的问题
CPU DB位数和存储芯片DB位数匹配.(位扩展/横向扩展)
CPU DB位数:即指字长
用户需求容量与存储芯片容量的匹配.(字扩展/纵向扩展)
每个存储芯片在地址空间中的范围(片选CE的地址范围设计)
接下来要讲两种扩展以及它们的混合体,还挺重要的。
位扩展 |
字扩展 |
存储芯片的数据总线扩展 ·各个存储芯片并行工作 ·当存储芯片数据位数<CPU数据位数(或字长)时,进行位扩展,用多个芯片扩展起来提供一个完整的自字数据 ·芯片数量=CPU数据位数(或字长)/存储芯片数据位数 ·扩展原则:所有存储芯片同名的地址线、控制线、片选端相连后与CPU连接,每个存储芯片的数据总线分别连接CPU数据总线的不同位段,是的每个芯片提供同一个字的不同位段。
|
功能: ·当储存芯片字数 < 用户需求容量时,进行字扩展,用多个芯片扩展起来提供一个更大容量的存储空间。 ·芯片数量 =用户需求容量/存储芯片字数 扩展原则 ·所有存储芯片同名的地址线、控制线、数据总线相连后与CPU连接,每个芯片的片选端分别连接地址译码器的不同输出,从而每个芯片占据存储空间的不同子空间。 ·CPU地址总线中剩余高位连接地址译码器的输入
|
③字/位扩展
当位数与容量都不符合的时候,使用字/位扩展。
用户需求M字×N位 且使用L字×K位的芯片:需要(M / L) × (N / K)个存储芯片
存储芯片分成:M / L组,每组N / K片
组内采用位扩展连接(不同芯片的数据线分开连接)
组间采用字扩展连接(不同组的片选线分开连接)
CPU对内存单元的访问过程
·假设CPU AB(地址总线)=20位,且存储芯片容量为2^n
·第一步:片选:选择存储芯片
·由CPU地址线的高若干位得到片选信号
·用地址高位实现片选(片选译码)(用户设计)
·第二步:字选:在存储芯片内选择存储单元
·由CPU总线低n位选择
·由地址低位实现字选(片内译码)(芯片实现)
片选译码方法(片选译码电路的设计) |
||
线选法 |
全译码法 |
部分译码法 |
方法:用高位地址直接(/反向)连存储芯片片选信号 |
方法:将地址总线全部高位连接到片选地址译码器的输入端参加译码,输出信号连接各芯片的片选信号 |
方法:高位地址线中部分线(不是全部)输入到片选地址译码器产生片选信号。线选和全译码混合。存在地址重叠。 |
优点:电路简单,不需要加额外电路 缺点:①存储芯片地址空间不连续②存储单元具有多个地址(地址重叠) |
优点:存储单元地址唯一 缺点:对译码电路要求较高 |
|
适用场合:存储容量较小的简单的不需要扩充内存空间的系统 |
适用场合:存储器芯片较多的系统 |
|