存储系统

RAM和ROM

RAM和ROM的存储器的存储介质是半导体存储器

RAM是易失性存储器,断电后存储的信息就会消失,但是操作系统的在启动的时候,我们是需要读取内存的信息的。如果存储体中只是RAM就无法启动操作系统,所以存储体一般由两部分组成,一部分是RAM,速度快,易失性的存储器,另一部分是ROM,存储速度相对于RAM慢一些,但是是非易失性存储器。

ROM:是只读存储器。

RAM也可以分为两个部分:

RAM:随机存取存储器。它的信息都是以电信号的方式来存储的,所以断电就会丢失信息。

SRAM:它是一种非破坏性的存储器,所以不需要对SRAM里面存储信息进行刷新。它的存储信息一般是触发器,运行的速度快,但是价格高。

DRAM:它是一种破坏性读出的存储器,所以为了保证DRAM里面的信息的正确性,需要对DRAM的存储信息进行刷新。它的存储信息一般是电容,速度相对于SRAM来说会慢一些,当然价格对于SRAM也低一些。

SRAM的行地址和列地址是不等的,DRAM的行地址和列地址是相等的。对于DRAM来说,由于行地址和列地址相等,所以地址线可以复用。

一般cache的存储器就是SRAM,主存就是DRAM+ROM

DRAM刷新

前面我们提到,DRAM的读出是一种破坏性的读出,所以我们对DRAM需要刷新。刷新的方法有三种。

分散刷新:就是每次读写完都刷新一行

集中刷新:就是专门留一段时间进行刷新,在这段时间内,是无法访问存储器的,这段时间被称为“死区”。

异步刷新:每隔一段时间刷新一次即可。

提高CPU访问主存的速度。

1. 双端口RAM,这样就可以连两个CPU,两个CPU在有些时候就可以同时访问RAM。


存储系统_第1张图片

2. 多模块的存储器。将存储器分为多个模块,CPU访问一个模块之后,马上就可以访问下一个模块的存储器。这样就可以跳过存储器的恢复期,节省访问时间。

3. 利用cache。将一些数据存储到cache中,如果CPU访问的数据在Cache中命中了,就可以提高访问速率。

Cache的地址映射方式

1. 全相联:就是主存到cache的映射是,如果cache中用空位,就将数据放到cache中(空位随意放)。

2. 直接映射:主存的某一块只能对应cache的固定某一块(对号入座)。

3. 组相联映射:主存的某一块只能对应cache的某一区间,但是在这个区间内是可以随意的存放的。(按号分组,组内随意放)。

替换算法

随机算法(RAND):随机确定替换的cache块。它的实现比较简单,但没有依据程序访问的局部性原理,故可能命中率较低。

先进先出(FIFO):选择最早调入的块进行替换。它比较容易实现,但也没有一句程序访问的局部性余力,可能会把一些需要经常访问的程序块也作为最早进入Cache的块替换掉。

近期最少使用算法(LRU):依据程序访问的局部性原理选择近期内长久未访问的存储行作为替换的行,平均命中率要比FIFO高。

最不进场使用算法(LFU):将一段时间内被访问次数最少的存储行换出。每行先设置一个计数器,新行简历后从0开始计数,每访问一次,被访问一次,被访问的行计数器加1,需要替换时比较各特定行的计数值,将计数值最小的行换出。






你可能感兴趣的:(存储系统)