随机访问存储器
我解释一下随机访问的意思。
随机访问:访问任何一个内存单元的速度和它的位置(地址)无关。
随机访问存储器(RAM)分为两类:静态RAM,动态RAM。
静态RAM(SRAM)
静态RAM比动态RAM更快,同时静态RAM也更贵。
因为快,所以经常用来作为高速缓存存储器。只要SRAM处在通电状态下,里面的数据就可以被保存下来。如果没有通电,数据就会丢失。
SRAM的每一个存储单元(每一个比特位)是用一个6晶体管电路实现的。所以SRAM的存储密度不高。因为SRAM的电路简单,所以访问速度很快
动态RAM(DRAM)
DRAM的优势很明显,便宜。
DRAM用来作为主存以及图形系统的帧缓冲取。
它和SRAM一样,只有处于通电时,才能保存数据。一旦断电,数据就会被丢失。
DRAM的每一个存储单元是由一个电容和一个访问晶体管组成。很多原因会导致电容漏电,直接导致的结果就是数据丢失。所以存储系统必须周期性的通过读出,然后重写来刷新存储器的每一位。DRAM的数据访问电路和刷新电路都比SRAM复杂,所以访问速度也就没有SRAM快。
另外要说的一点:在内存刷新期间,CPU无法访问它。
只读存储器ROM
虽然它叫做只读存储器,但是也有部分ROM可写可读。但是整体上称为只读存储器。
想一个问题,电脑刚开机的时候是从哪里获取数据的?
前面说过,一旦断电RAM中的数据就会丢失。刚开机的时候刚开始通电,RAM中也就没有数据。它从哪里加载数据呢?
此时,ROM只读存储器出现了。它不需要刷新,它的内容是预先写入的。就算断电,里面的数据也不会消失。所以我们就可以把一些初始化指令存放在ROM中,这样每次开机的时候,就让CPU处理这块的指令。
ROM中做了什么呢?
例如,PC的BIOS(base input output system)例程,硬件的诊断、检测和初始化。
磁盘存储(外存)
磁盘是用来保存大量数据的存储设备。虽然存的多,但是速度慢。
只说慢可能没有什么概念。到底慢多少呢?
从DRAM中读取比磁盘快10万倍。
从SRAM中读取比磁盘快100万倍。
存储器的层级结构
如图:
存储器层器结构的中心思想
上图描述了这么多存储设备,每一个存储这本都会和CPU打交道吗?
不是,每一种存储设备只和它相邻的存储设备打交道。
对于每一层k,位于k层的存储设备作为k+1层存储设备的缓存。也就是说,位于k层的存储设备只会从k+1层的存储设备中读取数据。
比如,寄存器(第k层)只会访问L1(k+1层)高速缓存。
L1(第k层)只会访问L2(k+1层)高速缓存,以此类推。