存储器的拓展

参考:计算机组成原理微课版

B站视频https://www.bilibili.com/video/BV1r54y1U7ra

存储器的构成

完整的存储芯片由以下部分构成

  • 译码驱动
  • 存储矩阵
  • 读写电路

表示方法 示例 意义
位表示法 1k×4位 该芯片有1k个存储单元,每个单元长度为4个二进制位
字节表示法 128B 该芯片有128个单元(一个存储单元由8个二进制位组成)

对于一个1K×4的芯片,数据线有4条,因为每个数据有四位。地址线有10条,因为1k即1024= 2 10 2^{10} 210,即10位的二进制数可以表示的十进制数范围是1024以内。字线(地址线译出来的用于取每一个存储字的线路)自然有1024条

扩展方法

位扩展

又称字长扩展或者数据总线扩展

叫位扩展是因为用到的芯片的数据总线位宽小于CPU的,所以要组合出一个新的芯片,该芯片的数据位宽经过扩展后与CPU的数据位宽相等。

两个1K×4位的芯片组合为一个1K×8位的芯片是可行的,每个存储单元有8位,显然地址线是10不变,而数据线则是8条

字扩展

又称容量扩展或者地址总线扩展

字扩展是让存储芯片的存储单元数目拓展(不考虑每个单元的字长),以两个1K×4位扩展成一个2K×4位为例,地址线新增一位(因为 2 10 2^{10} 210变到 2 11 2^{11} 211取对数,至于为什么取对数是因为长度为11二进制能表示的十进制正数是2k以内的)。

这里要注意的是 A 10 A_{10} A10​它在两个引出来的线之间有个取反,这样才能保证一个片选的值为1而另一个为0。数据线由于储存单元的位长度没变(还是4位)所以就不变。

上图是针对2个以上的芯片拓展的布线。

字位同时扩展

其实就是上面两种方式的缝合。

其他的细节

MREQ#信号

在谭志虎书中的示意图是有MREQ#这个输出信号的,这个东西的意思是Memory request,即存储器请求。

RAM与ROM的选择

系统程序工作区和用户程序区是RAM

系统程序区是ROM

英文名 中文 特点 速度
RAM 随机存储器(运存) 可读可写,断电后数据消失 通常比ROM快
ROM 只读存储器 只能读出无法写入信息,断电后数据还在 通常没RAM快

例题

有一块CPU,地址线16根,数据线8根,用 M R E Q ‾ \overline{MREQ} MREQ​作为访存控制信号(低电平有效), W R ‾ \overline{WR} WR作为读/写控制信号(低电平为读,高电平为写),还有两类存储芯片:

类型 规格
RAM 1k×4位、4k×8位、8k×8位三种
ROM 2k×8位、4k×8位、8k×8位三种

此外还有74138和若干门电路

地址分配如下

用途 范围
系统程序区 6000H~67FFH
用户程序区 6800H~6BFFH

问CPU和存储器连接方式


分析如下:整个题考查存储芯片的扩展和与CPU的链接

  • 由分区可知系统程序区使用ROM,用户程序区使用RAM
  • 由数据线是8根可知需要的是N×8位的芯片
  • N的计算通过上面各区的范围计算得出
  • W R ‾ \overline{WR} WR不用连接到ROM,因为它是只读不写的(所以它的读写输入端直接接地)

N的计算方法是用范围上界减去范围下界,系统程序区ROM这样减完之后结果是0111 1111 1111,也就是 2 11 2^{11} 211个地址,也就是说N=11,同理RAM是 2 10 2^{10} 210,即N=10

据上所述,ROM一片2k×8位的就够了,这需要11根数据线。而RAM需要两片1k×4位的进行位扩展得到一个新的1k×8位的,这需要10根数据线。

系统程序区
0110 0111 1111 1111
0110 0000 0000 0000
用户程序区
0110 1011 1111 1111
0110 1000 0000 0000

观察发现它们倒数10位都是相同的(布线就可以布到一块,即 A 0 A_0 A0​~ A 9 A_9 A9​)


借由74138和地址线来选择是操作ROM还是RAM就得从它们地址范围的异同下手,如上图所示,倒数第12到倒数第14位(地址线的 A 11 A_{11} A11​~ A 13 A_{13} A13​)是不一样的。根据译码器译出的信号,只有 Y 4 Y_4 Y4​和 Y 5 Y_5 Y5​的输出有用(一共7个输出, Y 0 Y_0 Y0​和 Y 7 Y_7 Y7​)。因此也只用到这两个输出(所以也只需要画出这俩就行了)

100对应着 Y 4 Y_4 Y4​输出0,101对应着 Y 5 Y_5 Y5​输出0,这个输出的作用是连到片选上,而片选 C S ‾ \overline{CS} CS是负逻辑的,所以74138的输出刚好合适。

其余的地址线, A 0 A_{0} A0​~ A 10 A_{10} A10​ 连上ROM, A 0 A_{0} A0​~ A 9 A_{9} A9​连上RAM。

这里涉及到另外一个问题,即101对应 Y 5 Y_5 Y5​输出0时,并不是代表这就得选RAM,如下图所示


上图下面举了那个例子,显然当 A 10 A_{10} A10​是1时不行,也就是说当 A 10 A_{10} A10​和 Y ‾ 5 \overline{Y}5 Y5都为0时才符合片选RAM的条件,并且由于片选 C S ‾ \overline{CS} CS是负逻辑,所以那个逻辑门就是输入和输出都是取反的。


数据线部分是这样的:

  • D 0 D_0 D0​~ D 7 D_7 D7​连接到ROM
  • D 0 D_0 D0​~ D 3 D_3 D3​连接到第一个RAM
  • D 4 D_4 D4​~ D 7 D_7 D7​连接到第二个RAM

完整且正确的图如下所示(上方的图存在线路交叉的问题,具有歧义)

最后提一句74138的输入引脚,G1=1,G2=G3=0时,该元件可以工作,与连到CPU哪里无关,要的是个输入到上面的结果,只要符合上面要求就能正常工作。

[计组笔记]存储器的扩展相关推荐

  1. 【王道计组笔记】Cache高速缓存基本工作原理

    缓存器 的引入: [王道计组笔记]高速缓存器:局部性原理及性能分析_muse_age的博客-CSDN博客 1.主存的块放到Cache中哪个位置?CPU向缓存中读取一个数据过程? (1)空位随意放:全相 ...

  2. 【王道计组笔记】高速缓存器:局部性原理及性能分析

    背景: 随着CPU的工作速度成指数级增长,但是主存速度跟不上,所以要提升主存速度非常重要. m个模块采用低位交叉编址的方式可以基本上将主存的带宽提升m倍,但是这依旧与CPU差距很大. [王道计组笔记] ...

  3. 【王道计组笔记】半导体存储器RAM ROM

    知识回顾: 存储器芯片的逻辑结构: 存储矩阵:    由大量相同的位储存单元阵列构成 译码驱动: 将来自地址总线的地址信号翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对选中单元的读/写操 ...

  4. 王道计组笔记: 3.6高速缓冲存储器

    目录 高速缓冲存储器 1. Cache的工作原理 2.局部性原理 3.性能分析 4.映射(类比哈希) 5.Cache替换算法 6.Cache块写策略 高速缓冲存储器 1. Cache的工作原理 当在手 ...

  5. 【王道计组笔记】输入/输出设备磁盘

    外部设备:除了主机(CPU和主存)之外的,能直接或间接与计算机交换信息的装置 输入设备:用于向计算机系统输入命令和文本.数据等信息的部件. 鼠标(了解) 键盘(了解) 键盘是最常用的输入设备,通过它可 ...

  6. 【王道计组笔记】主存与CPU的连接

    存储器芯片: 存储器芯片与CPU的连接: 主存容量拓展: 位拓展: 8个8k*1并行的效果,相当于1个8k*8的芯片工作,所以叫位拓展 字拓展:  例题: 学完数字电路后过来回顾!

  7. 【王道计组笔记】储存系统(1):基本概念

    储存器的分类: 层次(离CPU的距离): 高速缓存存储器(cache),主存储器(主存.内存),辅助存储器(构成三级存储系统) 设立缓存目的:提高访问速度(硬件自动完成) 设立辅存目的:扩大存储容量( ...

  8. 【王道计组笔记】储存系统(2):主存简单模型及寻址的概念

    主存储器分为存储体,MAR,MDR组成. MAR存放欲访问的存储单元地址 存储体存放具体的二进制位 数据寄存器存放要传进来或者传出去的数据 存储体中一位二进制的读写 存储元:如上图能完成一个二进制读写 ...

  9. 【王道计组笔记】数制、编码、校验

    数制: 主要为计数进位制:常用有二进制,八进制,十六进制,十进制 其中二进制位计算机内部的编码方法,八进制和十六进制作为二进制的缩写形式. 原因: ①物理:用两种稳定状态的物理器件表示二进制数比较容易 ...

最新文章

  1. python实训心得2000_实训总结万能版2000字五篇
  2. 暑期集训1:C++STL 练习题E:POJ-2431
  3. 在温暖的南方惠州①月了。。
  4. 瀚思推出国内首个企业级大数据安全分析平台
  5. LR菜鸟入门 -- LightRoom安装/预设
  6. 数字语音信号处理学习笔记——语音信号的同态处理(2)
  7. python 自动化办公 uibot_使用 Python 扩展丰富 UiBot 的功能及在 UiBot 中引用 Python 模块...
  8. Phpstorm数组对齐设置
  9. Bootstrap3 编译版本的文件结构
  10. 评论:我们该如何应对科技发展带来的失业
  11. 文本显示变量_易标签使用Excel数据实现批量打印变量数据
  12. STC学习:实时时钟
  13. 软件测评师之2021软件测评师新大纲《软件评测师教程(第2版)》(四)
  14. 三菱Q系列ST、结构化编程、QD77定位以及转矩模式切换案例 三菱PLC程序案例
  15. 韩国国立全北大学入学简介
  16. Win 10 Edge不能上网,微软商店打不开的问题
  17. 阿里云ACP大数据专业认证,值得报名吗?
  18. java rgb转yuv_RGB,CMY(K),YUV,YIQ,YCbCr颜色的转换算法(java实现)
  19. 第十章 国民收入的决定:收入-支出模型
  20. 墙面有几种装修方法_墙面怎么装?四种装修方式总有一款适合你

热门文章

  1. imx6上调用 vpu
  2. 幕后产品_版本控制:幕后
  3. 未来人工智能对人类的影响的利弊
  4. 为什么论文降重没有效果?
  5. 手机电池-市场现状及未来发展趋势
  6. Firefox火狐浏览器主页被360篡改了
  7. 二维码与条形码的生成和识别使用
  8. 拟杆菌预防肺炎克雷伯菌定殖和传播
  9. ⭐李宏毅2020作业2---logistic regression
  10. 人脸检测和人脸识别原理