恋爱幸运曲奇中文谐音:存储系统
来源:百度文库 编辑:偶看新闻 时间:2024/05/04 07:13:20
3.1存储器的构成
二、六管静态MOS存储单元线路
存储机理:利用双稳态触发器保存信息
T1通、T2止,存0
T1止、T2通、存1
分析:1保持信息:不打扰,不送地址选通信号;2读出:送地址,发读命令;3写入:送地址,送数据发写命令
2.单管动态MOS存储单元电路
存储机理:依靠MOS电路栅极电容来
存储信息电容上有电荷,存1
3.MOS型ROM
出厂后不能再改变。
三、地址译码方式
地址译码电路能把地址线送来的地址信号翻译成对应存储单元的选择信号。地址译码方式有单译码和双译码两种。
1单译码方式
单译码方式又称字选法,所对应的存储器是字结构的。
总结:双向译码使用的译码线大大减少, 所以使用广泛
四.读写线路(很简单,了解)
3.2存储器扩展
1、位扩展:64K*1(64字线,8位线)组成64K*8的存储器
解:要求连接四根线:地址线A,数据线D,片选线CS反,读写线WE反,
求片数:64*1/(64*8)
2.字扩充:现有芯片:16K*8组成 64K*8的存储器
地址线同位扩充,数据线对位相同读写信号响度,
总结,位扩充片选信号连一起,字扩充片选信号分开。
为何A0-A15分别都连一起? 只有这样才叫扩充
字位混合扩充,要先扩充位再扩充字,(位扩充片选信号连一起而字扩充不再一起)
3.3存储器与CPU的连接
3.3.1RAM芯片与CPU接口特性
各种RAM芯片主要有虾类积累外部接口信号线如下图
地址线-Ai
读/写控制线-WE反或WE反/OE反
电源线-Vcc
连接方法
1)
2)
3)
注意:1CPU与译码器地址线要依次连接,否则将使地址不连续
2.译码器与片选信号连接,由题目要求的地址范围得出(关键,难点)
3.地址大小,根据范围做减法得到十六进制然后转换成二进制看的个数
以上全是全译码方式下面讲一个线译码方式:注意地址是不连续的
线选法的优点是不需要译码器,线路简单,选择芯片不需外加逻辑电路。存在问题:线选法不能充分利用那个系统的存储空间,且把地址空间分成了互相隔离的区域,给编程带来困难
3.3.4动态存储器DRAM刷新
1、刷新间隔
原因:电容器自动放电。
每隔多少时间进行一次刷新操作,主要根据栅极电容电荷的泄放速度来决定。
一般动态MOS存储器每隔2ms必须进行一次刷新,称作刷新最大周期
2、刷新方式
对整个存储器来说,各存储芯片可以同时刷新。对每块芯片来说,则是按行刷新,每次刷新一行,所需要时间为一个刷新周期。若DRAM为128*128,则在2ms之中至少安排128个刷新周期
一般有三种典型的刷新方式
1集中式刷新。在允许的最大刷新间隔2ms内,按照存储器容量大小集中安排刷新时间,此刻要停止读/写操作。如果对16384的矩阵(128*128)进行刷新。该存储器的存储周期为500ns
死区率太大
2分散式刷新:把系统的存储周期分为两部分。前部分使劲进行读/写或出于保存状态。后部分时间进行刷新,在一个周期内刷新大院矩阵的一行。对128*128矩阵,则需要128个周期后才能把全部单元刷新完毕。如果芯片的存取时间是500ns,那么及其的存取周期应安排两倍的时间即1us,
3异步式刷新:采取2ms内分散地反128行刷新一遍,那么对于每一行平均刷新呢的时间间隔为2ms/128=15.625us,取15.6us提出一次刷新请求。提出刷新请求时,有可能CPU正在访存,可待至CPU交出控制权后,再安排刷新周期,所以称异步刷新方式。而在刷新时间内把读/写操作封锁。这样,对每行单元的刷新间隔仍未2ms。但对分散式刷新而言,它减少了刷新次数;对集中式来说主机的死区又缩短了很多。因此这种方式使用得比较多。
34提高存储器性能的技术
简单回顾
SRAM状态稳定,接口简单,速度快,但集成度低,成本高,功能较大,所以一般用来组成高速缓存和小容量主存系统
DRAM适用于大容量的主存系统。DRAM在原理上和结构与SRAM芯片在与CPU接口时,有两种特殊的问题应该考虑:
1刷新问题。需加刷新电路
2地址信号输入问题。由于DRAM集成度高,存储容量大,引脚数量不够所以地址的输入采用两路锁存方式(分两次送入,先送行,后送列)
3.4.2存储器制造技术的发展
作为计算机主存储器的DRAM问世以来,存储技术不断提高,先后出现了:
1.
2.
FPM DRAM假定下一个所需数据处于同一行的下一列(事实上,一般程序和数据在主存中排列地址是连续的)这样,发出一行选RAS和行地址RAS选择以后能够。但是RAS信号不撤销,然后连续的发列地址CAS和CA。因此,避免了行充电时间,较快的获取数据。FPM DRAM存储时间在60ns左右。大量应用在486,586机上。
3.
即扩展数据输出DRAM
EDO DRAM 是对EPM DRAM的简单扩充,加了少量的逻辑电路,以便使在芯片外组织数据流
这种方案是在RAM输出增加一组“门槛”电路或称二级内存单元,这些单元可以存储数据并保持位数,因此,不必等待当前读写完成,即可启动下一个读/写周期,直到CPU可靠的读走。
EDO DRAM芯片在时钟频率高达50Mhz时仍能工作
4.
SDRAM(Synchronous DRAM),即同步主存,其最大特点是与CPU的外频同步
SDRAM在同步脉冲的控制下工作,取消了主存等待时间,减少了数据传送的延迟时间,因而加快了系统速度。
SDRAM基于双存储体结构,内涵两个交错的存储矩阵,当CPU从一个存储矩阵的访问数据的同时,另一个已准备读/写数据。通过两个存储矩阵的紧密配合,读取效率提高策划那个被提高。目前,SDRAM工作效率已达100MHZ,133MHZ
4.DDR SDRAM
DDR SDEAM (Double Data Rate SDRAM),即双速率SDRAM。DDR SDRAM的核心建立在SDRAM的基础上,与SDRAM的主要区别是DDR SDRAM能在时钟脉冲的上升沿和下降沿读出数据,不需要提高时钟频率就能加倍提高SDRAM速度,DDR的工作频率可以达200MHZ
注意:存储器是系统速度的瓶颈
3.4.3双端口存储器(注意是单体)
常规存储器是单端扩存储器,每次只接受一个地址,访问一个存储单元,从中读取或存放一个字节或一个字
双端口存储器具有两个彼此独立的读/写口,每隔读/写口都有一套独立的地址寄存器和地址译码器,可以并行的工作。两个读/写口可以按各自接受的地址,同时接受或写入,或一个写入一个读出。与两个独立的存储器不同,两套读/写口德访问空间相同,可以访问同一个单元。
双端口存储器主要用于:
1在运算器中采用双端口芯片,作为通用寄存器组,能快速提供双操作数。(可以提供存储器的两个操作数运算)
2使用双端口存储器,让一个个端口面向CPU,另一个端口面向外设和I/O处理机,从而增大信息的吞吐量
3在多级系统中,长采用双端口或多端口,作为各CPU的共享存储器,实现多CPU之间的通信。
3.4.4多体并行访问多字存储器
多个并行存储器共同一套地址寄存器,按同一地址码并行地访问各自对应单元。由于n个体同时访问各自单元(如A号),我们可将这n个存储器视作一个大存储器,故称为单体。而每个编制对应于n字*w位,故称为多字方式,(单体多字,每次读出多个字)
3.4.5多体并行交叉存储器
多体,每个体有独立的地址寄存器,交叉:指CPU连续给出多个地址
特点:当在送到不同体时,和顺序执行时运行良好。
3.4.6高速缓冲存储器
为了弥补主存熟读的不足,在处理机与主存之间设置一个高速小容量的缓冲存储器,称高速缓存(Cache)
工作原理:CPU向主存发送地址的同时,向Cache发送地址,如果Cache中存在,直接将数据送给Cpu,若没有,则从主存中取数据到CPU,同时将数据附近的一块送到Cache
CPU与Cache之间的数据交换式以字位单位,而Cache与主存之间的数据交换是以块为单位,一个块有若干个字组成,是定长的
为了实现Cache的上述功能,需要解决这样一些问题
1.
2.
3.
4.
讲解
1地址映像:“映像”,其物理意义就是位置的对应关系,地址变换是将贮存地址变换成Cache地址。常见的映像方式主要有三种:
直接映像:(发扑克牌策略,很形象)
直接映像方式是多对一映射,但主存中每一个只能映像到某一个固定的Cache块中。直接映像的关系式定义为:K=I mod M
访问过程关键:根据Cache块号找到Cache中所在块,然后找块头(也就是主存区号,这要高度注意Cache有这样的头),与需要访问的主存区号标志比较,相同则命中,再根据块内地址找到相应单元。
缺点:只能在指定的区域,有空余也不能访问其它。
2.全相联映像
全相联映像,主存中任何一块都可以映像到Cache中任何一块位置上/
相联存储器
检索字:检索的关键字,
3.组相联映像
这种方式是将Cache分成u组,每组V块,将主存也分成U组,每组V块,且u=V,即主存中一个组内的块数与Cache中分组数相同。这样,主存块存放到那个组是固定的,至于存放改组的那个块是灵活的,如主存分为256组,每组8块;Cache分成8组,每组2块。主存中,第0块、第8块、第16块。。。均映射与Cache的第0组,但可以映像与Cache的第0块或第1块;主存中第1块。、第9块、第17块。。均映射与Cache的第一组,但可以映像于Cachhe的第2块或第3块中,
总结:在Cache地址中:3位Cache组号,1位组内块号,9位块内地址
在主存地址中:7位主存标记,3位(在主存中无意义,Cache中表组号),1位主存标记,9位块内地址
组组间直接映像,组内全相联映像。
2.替换算法
常用的替换算法大致有以下两类:
1先进先出算法(FIFO)
FIFO按调入Cache的先后决定淘汰的顺序,即在需要更新时,总是淘汰最先调入Cache的页面内容。这种方法容易实现,系统开销少,但不一定合理,因为有些内容显然调入较早,但可能仍在使用
2.近期最少使用算法(LRU)
为Cache各页建立一个Lru目录记用它的调用情况。当需要替换时将在最近一段时间内使用最少的页面内容予以替换,该算法命中率高,但较FIFO算法复杂,系统开销大
4.
1页式虚拟存储器
以页为基本单位的虚拟存储器叫页式虚拟存储器。程序虚地址分为两个字段:高位字段为虚页号,低位字段为页内地址。虚地址到实地址之间的变换是由也表来实现的
注意:1虚地址是编程序时的逻辑地址, 实地址是主存可访问的地址
通过不断地调入主存来获得比主存大得多的存储空间
2页表中存在着逻辑页号和物理页号的对应关系,并且有标志是否装入主存的有效位!
2段式虚拟存储器
由于通常程序都具有一定的模块性。一个复杂的大程序纵可以划分成多个逻辑上相对独立的模块,模块间的界面和调用关系式可以清楚定义的。这些模块可以是主程序、过程,也可以是某类元素的集合。因此,分段管理是按用户的要求提出来的。
不管他们在主存的实际位置是什么,每段的虚拟地址都从0开始。当然,为了能够把他们区分开,每段都有自己的段号。每段在主存的起始位置由段表或段寄存器来表明。
编程使用的虚地址包含两部分:高位时段号,低位时段内地址。段式虚拟存储器的虚-实地址变换如下图。CPU根据虚拟地址访存时,首先将段号与段表的起始地址想拼接,形成访问段表对应行的地址,然后根据段表内装入位判断该段是否已调入内存。若已调入内存,从段表读出该段在主存中的起始地址,与段内地址(偏移量)想加,得到对应的主存实地址
注意:1段大小是不同的,且都从0开始。但是页大小是固定的
2段还要注意越界问题
3段与段间有碎片(段内可以收集消除),页与页只能是页内
由于段的分界与程序的自然分界相对应,所以具有逻辑独立性,易于程序的编译、管理、修改和保护,也标语多道程序共享。但是,因为段的长度参差不齐,起点和终点补丁,给主存空间分配带来了麻烦:容易在段间留下不能利用的零头造成浪费
3.段页式虚拟存储器
在分段管理方法中,存储器宇硬盘交换信息时是以可变长的段为单位进行的,对于容量比较大的段来讲一次分配整个一段往往不是太灵活,因此我们可以把段再分成页,我们把虚拟存储器地址分成3部分,第一部分为段号,第二部分为页号,第三部分为页内偏移量。