计算机组成原理笔记 第三章 存储系统
第三章 存储系统
1.存储系统图基本概念
1.1存储器的层次结构
1.2存储器的分类
1.3存储器的性能指标
2主存储器的组成
2.1半导体元件的原理
1)存储矩阵:由大量相同的位存储单元阵列构成。
(2)译码驱动:将来自地址总线的地址信号翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对被选中单元的读和写。(包括译码器,驱动器)
(3)读写电路:完成读写操作。(包括读出放大器,写入电路)。
(4)读/写控制线:控制芯片是进行读操作还是写操作。
(5)片选线:存储器是由很多这样的芯片组成的,每个芯片的地址范围都是总体地址的一部分,片选线就是确定究竟是哪个芯片被选中。
(6)地址线:单向输入的,位数和存储字的个数有关。
(7)数据线:双向的,位数和读出或写入的数据位数有关。
数据线和地址线共同反映一个芯片的存储容量的大小,举个例子,如果地址线有12根,数据线有16根,那么这个芯片的容量就是2^12 × 16=8KB。
这只是半导体芯片的基本结构,根据存储器的存储信息原理的不同可以分为SRAM和DRAM。
给电容充电的过程就是写数据过程 电容充电就是两电极板 电压不同 (差别很大) 造成电子移动
放电就是读数据
2.2存储芯片的基本原理
芯片中的引脚
寻址
3.SRAM和DRAM
双稳态触发器 左右BL BLX两边分别读0 或1
写入时 1 左边BL加高电平 右边BLX加低电平
写入时 0 左边BL加低电平 右边BLX加高电平
刷新
送行列地址
SRAM
SRAM的存储元(通常把存放一个二进制位的物理器件称为存储元)采用的是双稳态触发器(六管MOS)来记忆信息的,因此即使信息被读出后,它仍然会保持其原状态而不需要再生。当然断电之后肯定会丢失信息的,毕竟RAM是易失性的存储器。SRAM的存取速度快,功耗较大,一般用来做Cache。
DRAM
DRAM与SRAM的原理不同,它是利用存储元电路中栅极电容上的电荷来存储信息的,常见的DRAM的基本存储电路通常分为三管式和单管式。DRAM采用地址复用技术,地址线是原来的一半,地址信号分为行和列两次传送(这也就是DRAM比SRAM存取速度要慢的因素)。
既然DRAM采用电容上的电荷来存储信息,而电容上的电荷不可能不丢失,一般情况下,DRAM电容上的电荷只能维持1至2ms,过了这个时间,电荷就丢了,信息也就没了,所以我们要每隔一定时间对其进行刷新,这个时间通常分为刷新周期。常用的刷新方法有以下三种:
(1)集中刷新:在一个刷新周期内,利用一段固定的时间,依次对存储器的所有行逐一再生,在此期间停止对存储器的读写操作,这段时间成为“死时间”,又叫访存的“死区”。显然这种方法可以让读写操作不受刷新工作的影响,但是在死区不能访问存储器,CPU只能干等着。
(2)分散刷新:把对每一行的刷新分散到各个工作周期中去。比较生动地解释就是,原来我的工作只有存取,现在我的工作多了一个,就是在存取完之后顺便再“打扫”一行。这样,一个存储器的系统工作周期分为两部分,前半部分有用正常读、写或保持,后半部分用于刷新某一行。这种方法不存在死区,但是增加了系统的存取周期,如果原来存取周期只有0.5us,现在变成了1us,增加的0.5us要刷新一行。
(3)异步刷新:前两种方法的结合,它可以缩短死时间,又充分利用最大刷新间隔为2ms的特点。做法是将刷新周期除以行数,得到每两次刷新之间的时间间隔t,逻辑电路每过t就产生一次刷新请求。这样就避免了使CPU等待过长时间,还减少了刷新次数,提高了工作效率。
区别
1、原理上的不同,SRAM原理是双稳态触发器,DRAM是栅极电容上的电荷;原理的不同导致SRAM不用刷新,DRAM要刷新。
2、DRAM采用地址复用,SRAM不是。具体原因是这样的,存储芯片上的内容不是我们想象中的那样,一个地址对应一个存储单元,然后它们按照一维那样子顺序排列下去,它是个二维的存储矩阵,之前的存储芯片基本结构也提到了,所以它芯片内部寻址的时候是分行和列去找的,对于SRAM,它将行列直接传入进去找到相应存储单元,但是DRAM通常用作内存而不是Cache,它需要比Cache更大的容量而不是速度,所以在容量大的情况下,它的芯片内行数和列数也多,要一起传入岂不是要很多根地址线,这是不划算的,所以用地址复用,行和列分别传入。
总结
4.ROM(只读存储器 )
(1)随机存储器(RAM,Random Access Memory):任何一个存储单元的内容都可以随机存取,存取时间与存储单元的物理位置无关。计算机中的主存往往采用这种随机存储器,按照存储信息的原理不同可分为静态RAM(SRAM,原理是触发器寄存信息)和动态RAM(DRAM,原理是电容充放电寄存信息)。
(2)只读存储器(ROM,Read Only Memory):顾名思义,存储器的内容只能随机读出而不能写入。信息一旦写入就固定不变了,内容断电不会丢失。通常用它来存储固定不变的程序、常数和汉字库,甚至用于操作系统的固化。它与RAM可以共同作为主存的一部分,统一构成主存的地址域。
ROM派生出很多存储器,其中也包含可重复写入的类型,ROM和RAM的存取方式都为随机存取,广义上的只读存储器已经可以通过电擦除等方式进行写入了,“只读”的概念并没有保留,只保留了断电内容保留、随机读取的特性,其写入速度比读取速度慢很多。
ROM的类型:
掩膜式只读存储器(MROM,Masked ROM):它的内容由厂家根据用户的要求在生产中直接写入,写入后任何人都无法改变其中的内容。任何人都不可更改
一次可编程只读存储器(PROM,Programmable ROM):它可以实现一次性编程的只读存储器。允许用户利用专门的设备写入自己的 程序,一旦写入后,内容无法改变。一次之后就不可以更改
可擦除可编程只读存储器(EPROM,Erasable Programmable ROM):可由用户对其内容进行多次改写。需要修改时先将其内容全部擦除,然后再编程。EPROM由可以分为两种,紫外线擦除(UVEPROM)和电擦除(EEPRO)。虽然EPROM可以读写,但是写入时间过长,写入次数有限,不能代替RAM。
闪速存储器(Flash Memory): (U盘,和SD卡就是闪存 ) 每个存储元只需单个mos管,位密度比RAM高,它是在EPROM和EEPROM的基础上发展起来的,可以在不加电的情况下长期保存信息,又能在线多次快速擦除和重写,价格比EPROM便宜,擦除重写速度比EEPROM快。
固态硬盘(SSD,Solid State Drives):用固态电子存储器芯片阵列制成的硬盘,由控制单元和存储单元(FLASH芯片)组成
可进行多次快速擦除和重写
(3)串行访问存储器:对存储单元进行读写操作时,需要按照其物理位置的先后顺序寻址,包括顺序存取存储器(如磁带)和直接存取存储器(如磁盘)。需要注意的是这里的直接存取存储器是介于顺序存取和随机存取之间的,如对磁盘的读写,按照柱面号,盘面号,扇区号找到存放信息的小区域,再顺序存取所需要的信息。
5.存储器与CPU的连接
一般的存储器与CPU连接 暴露出的线
两种扩展
位扩展 当数据总线宽度>存储芯片字节时 需要位扩展 也就是把用位数较少的多片存储器(ROM或RAM)组合成位数更多的存储器的扩展方法。一般是在字数够用而每个字的位数不能够用的情况下使用。
字扩展 扩展主存字数 用多片位宽相同的存储器(ROM或RAM)芯片扩展包含更多存储器的过程。字扩展只扩展芯片的容量。
位扩展
扩展为8bit
字扩展
片选信号 1 0 表示 选中和未选中(工作和不工作)
线选法 局限性大
优化
增加一个非门
译码片选法
字位同时扩展
6.双端口RAM和多模块存储器
速度上 平均一样
灵活性 单体多字存储器更差
7 Cache(高速缓存)
7.1Cache基本原理及概念
例题
7.2Cache和主存的映射方式
三种方式
全相联映射
直接映射
组相连映射
7.2.1.全相联映射
7.2.2.直接映射
7.2.3.组相连映射
7.3 Cache 替换算法
每次被访问的主存块都会被调入(复制)到Cache中 Cache很小 主存很大 如果Cache满了怎么办?------------替换算法
7.3.1 随机算法
7.3.2 先进先出算法
7.3.3 近期最少使用算法
7.3.4 最不经常使用算法(LFU)
7.4 Cache 写策略
CPU修改了(Cache中的数据副本,)如何确保主存中数据母本的一致性?——Cache与策略
写回法
全写法
写分配法
非写分配法
多级Cache
8.虚拟存储器
8.1页式存储器
页内地址的到校取决于页的大小 1kb=2~10 10比特表示
引入块表