计算机组成原理总结–3.1.存储系统 之前我们已经了解了计算机的发展和数值表示与计算,在本章中我们主要阐述计算机的存储系统,这也是计算机组成原理的核心部分。 在本章中我们主要有6个部分,我们将预计分为三章来讲述。本章我们主要阐述存储器概述、主存的一些主要概念。 # 1.存储器概述 存储器是用来保护程序和数据,以及运算的中间结果和最后结果的记忆装置。在计算机中,存储器容量以字节Byte为单位,一个字节有8个二进制bit组成。 ## 1.1.存储器分类 存储器种类繁多,同样有许多分类标准。 按存储介质分: (1)半导体存储器:用半导体器件MOS管组成。一般用于系统主存、Cache (2)磁表面存储器:用磁性材料做成的存储器。常见的有软盘、硬盘和磁带 (3)光盘存储器:用光介质构成的存储器。常见的有光盘 按存储方式分: (1)随机存储器:存取时间和存储单的物理位置无关。一般是半导体存储器 (2)顺序存储器:存取时间和存储单的物理位置有关。一般是磁带。 (3)半顺序存储器:存取时间部分依赖于存储单的物理位置。一般是磁盘 按存储内容可变性分: (1)只读存储器ROM:只能读出而不能写入的半导体存储器 (2)随机读写存储器RAM:既能读出又能写入的半导体存储器 上述都是半导体存储器,同时也是我们存储器的重点,之后本章会详细介绍。 按信息易失性分: (1)易失性存储器:断电后信息立即消失的存储器(半导体存储器) (2)非易失性存储器:断电后信息仍能保存信息的存储器(光盘磁盘) 按在计算机系统的作用分: (1)主存储器:半导体存储器,能够被CPU直接访问,速度快,用于保存系统当前运行所需的所有程序和数据。 (2)辅助存储器:又称为外存储器,磁盘、光盘。不能被CPU直接访问,速度慢,用于保存系统中所有的程序和数据,单位成本低。 (3)高速缓冲存储器Cache:半导体存储器。位于主存和CPU之间,用来存放当前CPU经常使用的指令和数据,以便CPU能高速访问。Cache的存取速度和CPU的速度相匹配,但是容量小、价格高,一般在CPU中。 (4)控制存储器:又称为寄存器,半导体存储器,是CPU内部的存储单。
## 1.2.存储器的分级结构 在上边我们已经发现,存储器的分类多种多样,而其中系统对于存储的要求有三个:大容量、高速度、低成本,但是这三个往往无法同时满足,因此我们提出了三级存储系统结构的概念。
其中缓存的主要目的是为了提高速度、而一般来说,内存包括Cache和主存 辅存则是可以降低成本、扩大容量,虚存同样包括主存和辅存。 通过上述结构,我们可以营造一个假象,那就是在CPU看来,容量相当于辅存容量,速度相当于Cache速度。 但是真实情况是,我们并非如此,那么我们便需要解决几个问题: 1.当需要从辅存中寻找指定内容调入主存时,如何准确快速定位呢? 答:依靠相应的辅助软硬件 2.当CPU访问Cache,待访问内容不在Cache中时,如何处理呢? 答:从主存向Cache中调入相应内容。 上述过程都是通过操作系统管理的。 在主存辅存不断发展过程中,逐渐形成了虚拟存储系统,在这个系统中程序员变成的地址范围与虚拟存储器的地址空间相对应。对具有虚拟存储器的计算机系统而言,编程时可用的地址空间远远大于主存空间。 ## 1.3.存储器的性能指标 存储器有3个主要的性能指标,即存储容量、单位成本和存储速度。、 存储容量: 存储器能存放二进制代码的总数。 存储容量=存储单个数*存储字长。存储单个数表示存储器的地址空间大小。字长表示一次存取操作的数据量。 我们需要掌握的是,已知存储容量,能计算出该存储器的地址线和数据线根数。 例如:已知某机器存储容量为2K*16, 则地址线___根,数据线位数___根。 答案:11,16,11是因为存储单个数为2^11,则说明有11根地址线,而数据位数就是存储字长 存储速度: 数据传输率=数据的宽度/存取周期 存取时间(访问时间)(Ta):从启动一次访问操作到完成该操作为止所经历的时间;单位标度为ns级别,存取时间又分为读出时间和写入时间两种。 存取周期(Tm):存储器连续启动两次独立的访问操作所需要的最小间隔时间。存取周期=存储区间+复原时间 主存带宽(Bm):又称为数据传输率,表示每秒从主存进出信息的最大数量。单位为字/秒或者 位/秒 例:设某存储系统的存取周期为500ns,每个存取周期可以访问16位,则该存储器的带宽是多少? 答:存储器带宽=每周期信息量/周期时长 =16位/(500*10^-9)s=32MB/s 存储时间不等于存取周期,通常存取周期大于存取时间。这是因为对于任何一种存储器,在读写操作之后总会有一段恢复内部状态的复原时间。因此存取周期比存储时间大得多。 # 2.SRAM(Static Random Access Memory) 主存储器由DRAM来实现,靠处理器的那一层(Cache)则由SRAM实现,他们都属于易失性存储器,只要电源被切断,原来保存的信息就会丢失。DRAM的价格低于SRAM,速度也低于SRAM,价格差于主要是因为制造SRAM需要更多的硅。ROM则属于非易失性存储器。 静态RAM:SRAM,主要用于构成Cache 由MOS电路构成的双稳态触发器保存二进制信息 优点:访问速度快,只要不掉电可以永久保存信息 缺点:集成度低,功耗大,价格高 动态RAM:DRAM,主要用于构成系统内存 由MOS电路中的栅极电容保存二进制信息 优点:集成度高,功耗约为SRAM的1/6,价格低 缺点:访问速度慢,电容的放电作用会使信息丢失,要长期保存数据必须定期刷新存储单 SDRAM:同步动态随机存取存储器,用于GPU等 DDR SDRAM:双倍数据速率同步动态随机存取存储 ## 2.1.基本的静态存储阵列 基本存储: 6个MOS管(双稳态触发器)形成一位存储:4个控制管、1个负载管、1个工作管 存储属于非易失性存储,即使信息被读出后,也不会破坏,不需要再生。 芯片封装后,有3种外部信号线 地址线:2^n个单,对应有n根地址线,地址信号经过译码电路,产生每个单的字线选通信号 数据线:每个单m位,对应有m根数据线 控制线:读写控制信号R/~W R/~W=1,为读操作;R/~W=0,为写操作
## 2.2.基本SRAM存储器的逻辑结构 在对于SRAM译码的过程中,有多种译码方式。 单译码:被选中单由字线直接选定,适用于容量较小的存储芯片 双译码:被选单由X,Y方向的地址决定
SRAM的存储器组成由以下几个部分: 存储体:存储单的集合,按位将各存储组织成一个存储矩阵,大容量存储器中,通常选用双译码的方式来选择存储单 地址译码器:将CPU发出的地址信息转换成存储选通信号的电路。 译码驱动器:选择线(地址译码器输出)上用于增强驱动能力的电路。 I/O电路:一般包括读写电路和放大电路 片选:用于决定当前芯片是否被CPU选中,进行访问 读/写控制电路:决定对选中存储单所要进行访问的类型(读/写) 输出驱动电路:增强数据总线的驱动能力 下面便是SRAM存储器的逻辑结构简图
下图是32K*8位的SRAM的逻辑结构图:
在上述SRAM中,每一个模块都分出了具体的表现形式,其中需要地址线和片选,他们决定了SRAM的主要逻辑状态。 静态RAM芯片的一个具体例子——Intel 2114 Intel 2114静态RAM芯片是一个1K*4的存储器 外部结构: 地址总线10根 数据总线4根 片选信号/CS,写允许信号/WE,0写1读 内部存储矩阵结构 64*64方阵,共有4096个六管存储电路 采用双译码的方式: A3-A8(6根)用于行译码—64行选择线 A0-A2,A9用于列译码,16条列选择线 每条列选择线同时接4个存储,共16*4=64列
## 2.3.读写周期波形图 存储器读写的原则: 1.读写信号要在地址和片选均起作用,并经过一段时间后有效。 2.读写信号有效期间不允许有地址和数据的变化 3.地址和数据要维持整个周期内有效 读周期Trc,写周期Twc: 存储器进行两次连续的读写操作所必须的间隔时间 大于实际的读写时间 读周期操作过程: 1.CPU发出有效的地址信号 2.译码电路延迟产生有效的片选信号 3.在读信号的控制下,从存储单中读出数据 4.各控制信号撤销(地址信号略晚一些),数据维持一段时间 读出时间Taq: 从地址有效到外部数据总线上的数据信息稳定所经历的时间 片选有效时间Teq、读控制有效时间Tgq: 片选信号、读控制信号所需要维持的最短时间,二者相等 从地址译码后,到数据稳定的时间间隔
写周期操作过程: 1.CPU发出有效的地址信号,并提供所要写入的数据 2.译码电路延迟产生有效的片选信号 3.在写信号控制下,将数据写入存储单中 4.各控制信号撤销(地址信号晚一些),数据维持一段时间 写入时间Twd: 地址控制稳定后,到数据写入存储器所经历的时间; 维持时间Thd: 写控制信号失效后的数据维持时间
# 3.DRAM(Dynamic Random Access Memory) 动态RAM(DRAM): 因为该存储器必须定时刷新,才能维持其中的信息不变 DRAM的存储: 由MOS晶体管和电容组成的记忆电路 电容上的电量来表现存储的信息,充电—1,放电—0 结构形式: 四管存储:性能高,但体积大,成本高 单管存储:性能低,但体积小,成本低 ## 3.1.DRAM存储的记忆原理 与SRAM的存储原理不同,DRAM是利用存储电路中栅极电容上的电荷来存储信息的,DRAM的基本存储通常只使用一个晶体管,所以它比SRAM的密度要高很多。但是存取速度比SRAM慢,一般用于大容量主存中
上述便是DRAM存储的记忆原理,主要通过一个MOS管和一个电容进行存储。晶体管在这里是作为开关使用的。当我们把控制信号加上一个高电压,开关就打开了。此时我们可以在输入端加一个高电压,导致一部分电荷存储到电容器上,代表‘1’;或者加一个0电压,把电容器上的电荷放干净,代表‘0’。然后,我们把控制信号变成0电压或者稍微负一点儿的电压,开关就关上了,电荷被锁在里面,信息就保存下来了。就好像给气球打气然后结扎起来。 你可能会说:这也太简单了吧?说实话,DRAM的基本原理的确很简单。但使用起来,还是有些麻烦。 首先我们读取数据时需要检测电容器上的电压,此时只能把开关再打开。打开开关时,电容器上的电荷自然都跑掉了,这种特性叫破坏性读取。就好像我们想知道气球是圆的还是瘪的,但眼睛看不见,只能松开系住它的绳子用耳朵听。DRAM必须在完成检测后,根据读取的结果,重新把电容器上的电荷充满或放空。好在,工程师们发明了一个聪明的电路,让这个过程自动地、高速地完成。 ## 3.2.DRAM芯片的逻辑结构 由于DRAM这种简单的结构,它的外部地址引脚比SRAM减少一半,同时它送地址信息时,分行地址和列地址分别传送。 内部结构: 比SRAM复杂,首先它需要刷新电路,用于存储的信息刷新;其次它还需要行、列地址锁存器,用于保存完整的地址信息;其中有行选通信号RAS(Row Address Strobe)和列选通信号CAS(Columns Address Strobe) DRAM的读写周期: 与SRAM的读写周期类似,只是地址总线上的信号有所不同; 在同一读写周期内发生变化,分别为行地址、列地址 DRAM控制电路的构成: 地址多路开关:刷新时提供刷新地址,非刷新时提供读写地址 刷新定时器:间隔固定的时间提供一次刷新请求 刷新地址计数器:刷新按行进行,用于提供对所要刷新的行进行计数 仲裁电路:对同时产生的访问请求和刷新请求的优先权进行裁定 定时发生器:提供行地址选通/RAS,列地址选通/CAS和写信号/WE ## 3.3.DRAM的读写周期 DRAM的读写周期和SRAM差不多,但是需要注意的是行、列地址需要分开传送 读时序: 行地址/RAS有效 — 列地址/CAS有效 — /WE为高电平,读有效 — 数据Dout有效 写时序: 行地址/RAS有效 — 列地址/CAS有效 — /WE为低电平,写有效,数据Din有效 (1)/CAS滞后与/RAS的时间必须要超过规定值 (2)/RAS和/CAS的正负电平的宽度应大于规定值
刷新周期: 刷新的原因:DRAM的基本存储——电容,电荷会随着时间和温度而减少,必须定期地对所有存储刷新,才能保持原来的信息 刷新(再生):在固定时间内多所有存储单,通过“读出(不输出)—写入”的方式恢复信息 刷新方式:以存储矩阵的“行”为单位刷新,因此刷新计数器的长度与DRAM的行数相同 刷新过程中存储器不能进行正常的读写访问 刷新周期:从上一次对整个DRAM刷新结束到下一次对整个DRAM全部刷新一遍为止的时间 在刷新过程中,DRAM常见的刷新方式有三种: 集中式刷新: 在一个刷新周期内,利用一段固定的时间,依次对存储矩阵的所有行逐一刷新,在此期间停止对存储器的读/写操作,但是这个会存在一个死区时间,影响CPU的访存操作 分散式刷新: 将每个系统工作周期分为两部分,前半部分用于DRAM读/写/保持,后半部分用于刷新存储器的一行,但是这样系统的存储时间会延长一倍,导致系统变慢 异步式刷新: 在一个刷新周期内,分散地刷新存储器的所有行,这样既不会产生明显的读写停顿,也不会延长系统的存取周期 下面我们对上述刷新过程逐一分析:
上述是典型的集中刷新,会按照行刷新重复128次,每次为0.5μs,总共为64μs,则占总共的时间比率为3.2%,这已经是一个相当大的数字了。
上述是分散式刷新,刷新可以间隔128个读写周期,这样就没有死区时间,但是存取时间变长了,整个系统的速度降低了。
最后这个为异步刷新,是前两种方式的结合,缩短了死时间,充分利用了最大刷新间隔为2ms的特点,只要在2ms内对这一行刷新就行,这样克服了分散刷新独占0.5μs用于刷新,使得存储周期加长且降低系统速度的缺点,又不会出现死区问题,从根本上提高了工作效率。
最后将DRAM和SRAM的对比放上来,方便大家直观查看 上边的总结可能不是很全,之后会定期更新补充,如果有错误的地方还请大家指正! 看到这里的同学,记得点赞收藏加哦~ 以后的内容会更加精彩!
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/79861.html