《计算机组原理》存储器(一)

4.1概述

4.1.1存储器的分类

存储器的分类

4.1.2 存储器的层次结构

一般来说,高速越高,价位越高;容量越大,价位越低,而且容量越大,速度必越低

存储系统层次结构主要体现在缓存-主存和主存-辅存这两个层次上,显然CPU和缓存、主存能直接交换信息;缓存能直接和CPU、主存交换信息;主存可以和CPU、缓存、辅存交换信息
在这里插入图片描述

4.2主存储器

4.2.2半导体存储芯片简介

在这里插入图片描述
存储器存储或者读取时需要使用地址线和数据线,地址线用来寻找地址,数据线传输数据。
左侧的存储是用一组地址线,直接选择一行的存储元件(好像就是一个存储单元)。
右侧用行、列地址线选择,选择某行某列的存储单元进行读写。
上述只是个人理解

4.2.3 随机存取存储器

静态RAM芯片
基本单元电路看不懂,大概就是用触发器实现的控制

在这里插入图片描述
当CS和WE均为低电平时,输人三态门打开,I/O1~I/O4上的数据即写人到指定地址单元中。当CS为低电平、WE为高电平时,输出三态门打开,列I/О电路的输出经片内总线输出至数据线I/O1 ~I/O4上。
动态RAM
在这里插入图片描述
当电容器C有电右侧读数据线会接地为低电平,没电时右侧读数据线为高电平
动态RAM需要用电容器存储数据,读出线的高低点平可区分是读“1”,还是“0”,只是它与原数据相反。
动态RAM需要不断刷新来保持电容器的点位,
(1)集中刷新
集中刷新是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。
(2)分散刷新
分散刷新是指对每行存储单元的刷新分散到每个存取周期内完成。其中,把机器的存取周期Tc分成两段,前半段Tm用来读/写或维持信息,后半段Tr用来刷新,即 Tc=Tm +Tr。若读/写周期为0.5us,则存取周期为1 us。
(3)异步刷新
异步刷新是前两种方式的结合,它既可缩短“死时间”,又充分利用最大刷新间隔为2ms 的特点。例如,对于存取周期为0.5 us,排列成128× 128的存储芯片,可采取在2ms内对128行各刷新一遍,即每隔15.6 us (2 000 us ÷ 128 ~= 15.6 us)刷新一行,而每行刷新的时间仍为0.5 us,如图4.26所示。这样,刷新一行只停止一个存取周期,但对每行来说,刷新间隔时间仍为2 ms,而“死时间”缩短为0.5 us。
在这里插入图片描述
其实就是每隔一段时间刷新一行,总刷新时间不变。

4.2.4只读存储器

(1) 掩膜ROM 使用MOS管
(2) PROM 使用熔丝
(3) EPROM 可擦除可编程只读存储器

4.2.5存储器与CPU的连接

存储器扩展
(1)位扩展
增加存储字长,例如用2片1K4位的芯片组成1K8位,只需要增加一倍数据线,将数据线分别连到两片上。
在这里插入图片描述
D为数据线
(2)字扩展
增加储存器字的数量,2片1K8位组成2K8位,地址线的地位作为片内地址,高位根据地址范围用来选片
在这里插入图片描述
CS线是根据地址线高位的不同进行选片
(3)字,位扩展
在这里插入图片描述

拿上图举例
8片1K4位,组成4K8位,先2片组成1K8位在组成4K8位
A0-A9低位地址作为片内地址
A10-A11作为选片的信号(CS和WE为控制信号可以控制读/写或者不工作)
数据线分组连接到每组片上

字位扩展和数理逻辑里计数器扩展的内容差不多

4.2.6 存储器的校验

1.汉明码组成
汉明码是由Richard Hanming 于1950年提出的,它具有一位纠错能力
由编码纠错理论得知,任何一种编码是否具有检测能力和纠错能力,都与编码的最小距离有关。所谓编码最小距离,是指在―种编码系统中,任意两组合法代码之间的最少二进制位数的差异。
根据纠错理论得
L − 1 = D + C ( D > = C ) L-1 = D+C (D>=C) L1=D+C(D>=C)
即编码最小距离L越大,则其检测错误的位数D越大,纠正错误的位数C也越大,且纠错能力恒小于或等于检错能力。
设欲检测的二进制代码为n位,为使其具有纠错能力,需增添k位检测位,组成n +k位的代码。为了能准确对错误定位以及指出代码没错,新增添的检测位数k应满足:
2 k > = n + k + 1 2^k >= n+k+1 2k>=n+k+1
在确定增加的检测位数 k 之后得到 n+k位的二进制代码从左到右依次标记为1,2,3,…,n+k位。将检测位放在1,2,4,…,2^(k-1)位上。
为了方便检测,要将每组二进制代码的满足偶校验(奇检验),分组如下:
C1 检测的 g1 小组包含1,3,5,7,9,11 ,…位。
C2 检测的 g2 小组包含2,3,6,7,10,11,14,15 ,…位。
C3 检测的 g3 小组包含4,5,6,7,12,13,14,15 ,…位。
C4 检测的 g4 小组包含8,910,11,12,13,14,15,24,…位。

在这里插入图片描述

二进制序号1234567
名称C1C2b4C4b3b2b1

如果按照偶校验来配置汉明码,则C1应使1、3、5、7位中“1”的个数位偶数 ,C2等同样得出。
2.汉明码纠错
首先是汉明码常常被用在纠错一位的场合,若实现纠错两位,实用时还得再增添一位检测位。
例4.4已知接收到的汉明码为0110101(按配偶原则配置),试问欲传送的信息是什么?解:由于要求出欲传送的信息,必须是正确的信息,因此不能简单地从接收到的7位汉明码中去掉C1,C2,C4这3位检测位来求得。首先应该判断收到的信息是否出错。纠错过程如下:
p1 = 1⊕3⊕5⊕7 = 1
p2 = 2⊕3⊕6⊕7 = 1
p4 = 4⊕5⊕6⊕7 = 0
所以,P4 P2 P1, =011,第3位出错,可纠正为0100101 ,故欲传送的信息为0101。

二进制序号1234567
正确的汉明码0100101
接收到的汉明码0110101

如果传输正确每个检测组的异或为0(几个01进行异或,1的个数为偶数,异或结果为0)
P1 P2为1说明传输有错误,P4为0说明传输没有出错(4 5 6 7位没有错误),(汉明码常常检测一位出错)所以出错位位第3位.

4.2.7提高访存速度的措施

1.单体多字系统
一次取出多个指令或数据
2.多体并行系统
在这里插入图片描述在这里插入图片描述
在不改变每个模块存取周期的前提下,提高存储器的带宽
在这里插入图片描述
例4.6设有4个模块组成的四体存储器结构,每个体的存储字长为32位,存取周期为200 ns。假设数据总线宽度为32位,总线传输周期为50 ns,试求顺序存储和交叉存储的存储器带宽。
解:
顺序存储(高位交叉编址)和交叉存储(低位交叉编址)连续读出4个字的信息量是32×4 = 128位。
顺序存储存储器连续读出4个字的时间是
200 ns x 4 = 800 ns = 8 x 10^(-7) s
交叉存储存储器连续读出4个字的时间是
200 ns + 50 ns x( 4 -1 ) = 350 ns = 3.5×10^(-7) s
顺序存储器的带宽是
128/(8x10^ (-7) ) = 16 x10^7 bps
交叉存储器的带宽是
128/(3.5 x 10^ (-7)) = 37 x10^7 bps

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喂★借个微笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值