cache系列——存储介质

存储介质

一、存储介质



前言

cache是计算机存储体系中的一部分,是存储体系发展这么多年逐渐稳定后的产物,涉及的知识甚广,光cache的设计就有许多门道,此外还可以扩展虚拟存储器的问题,甚至虚拟机的问题,每个大问题背后都有许多为了提高计算机性能而提出的方案和知识。笔者只是个正在找工作的入门者,由一个项目接触到cache,于是顺着cache这条线,边学边码,希望能够一点一点将存储体系结构这块地图给拼凑完整。内容基于个人理解,错误地方或者不恰当处,欢迎指正


一、存储介质是什么?

计算机中不论是数据还是指令,都是用很多个0/1,也就是高/低电平表示出来的,每一个0/1都是1bit。所以计算机存储的东西也就是这1bit1bit的电平信号。那么拿什么存储呢?基本可以分为ROM/RAM/FLASH。

先分个大概,ROM(read only memory)就是只读存储器,厂子做出来的时候,把里面每个单元里存储的电平高低给固定好了,你只能从ROM中读出高低电平,不能去修改单元的电平。

RAM(random access memory)随机存储器,可以往外读,也能往里写。

FLASH——前面ROM/RAM都是以字节为单位进行读或者写,FLASH跟他们最大的区别就是以块为单位。FLASH也是可读可写的存储器。

二、ROM

ROM结构
ROM存储高低电平是通过是否放置MOS管来实现的。放管子的地方存储0,没有管子的地方就是1。例如,要选字2的时候,字线输入’b0010,使得字线2上的两个管子被选通,有管子的位由于接地导通,输出为0,否则输出为1。如图将输出’b0101。

既然存储的电平是由有无管子决定的,有无管子在制作的时候就确定了,不能修改,所以它是个只读存储器,不能任意修改。

1.PROM

后来生厂商为了更好的满足客户需求,做了种PROM。跟上图的结构类似,但是每个cross点之间都有一根MOS管,用户拿到之后,可以根据自己的需要,把自己的程序烧写进去。写入为1的bit,会把对应的管子烧断,写入为0的,管子就不会断。这样PROM在烧写过一次程序之后,就变成了ROM,从此这个程序就固定在里面了。所以看出来了吧,PROM出生的时候是万能百变的,但只要被烧过一次,这辈子就定型了。

2.EPROM

EPROM(erasable programmable ROM)——由于PROM是个一辈子只能硬一次的货,一旦烧错或者更改程序,那PROM就得被扔了,跟durex一样,不够环保。为了响应地球母亲的号召,厂商又高出了个EPROM,写进去的程序可以被擦除,重新写入的ROM。

EPROM用的不是普通的MOS管,而是用的双栅极结构的管子,如下图。
双栅极MOS管写入状态
控制栅上加个高压,可以让沟道里的电子温度上升,变成热电子,很容易就被勾引到浮栅上。当浮栅上有了电子之后,这群电子就赖着不走了。他们不仅赖着不走,还屏蔽了控制栅的电压。原本浮栅上无电子时,控制栅上施加正电压可以打开沟道,现在正电压被浮栅屏蔽了,沟道打不开了,就跟管子关断一样,也就是ROM结构中没有管子的情况。再整理一遍,浮栅上有电子=没管子,浮栅上没有电子=有管子。那么PROM是通过高电压把管子烧断,EPROM则是通过施加高压,让浮栅上存有电子,把管子关死。

浮栅上的电子动如脱兔,不动如死狗,一旦上到浮栅,就赖着不走了。这时候需要用紫外光照射,让电子逃出浮栅,于是管子又成了个新管子了。此外,如果没有紫外光或下文提到的高电压,电子在浮栅上可以住上个一二十年不带挪个腚的,所以用浮栅晶体管替代电容作为存储介质,瞬间持久了不少是不是?

3.EEPROM

EPROM用紫外光可以擦除所存储的信息——这里说的信息,就是0/1,也就是管子的有/无,也就是浮栅上是/否有电子。那么在平时工作,不想修改时,就不能让管子照到紫外光,需要遮挡。这样一个存储器除了添加紫外光源,还需要控制电路,十分麻烦。于是就有了EEPROM(electrically erasable programmable ROM)——也就是用电压实现擦除。前面说用紫外光可以烫走死狗,其实用一个雷劈也行。所以EEPROM有两个工作电压,平时小电压用来读存储信息,暖暖的很贴心。暴躁起来用十万伏特烧一遍,翻新重来。

三、RAM

RAM顾名思义,可读可写,那么EPROM和EEPROM也是可读可写,有啥区别?原理不同。ROM的每个cell是用有无管子来作为存储信息,没管子或者管子关断,就存1,否则反之。RAM主要分为SRAM和DRAM,他们跟ROM最大的区别就是断电后数据不能保存。(这类掉电不保存数据的称为挥发性记忆体volatile memory)

1.DRAM

DRAM(dynamic RAM)——动态存储的结构则是一个MOS管+一个电容。DRAM cell
写入1时,选通管子,给电容充电,写入0时,则给电容放电。读取时,选通管子,让电容中的电流出来输出0或1。充了电的电容,即使不用,里面的电荷也会慢慢泄露,所以需要时不时给它充电,也就是刷新。这就是dynamic的由来。DRAM需要刷新的特点,决定了一旦断电,里面存的数据就无法被保存了。计算机的内存就是DRAM的典型代表,计算机的内存在存储体系中算是中等体量的存储体,速度也中等。

2.SRAM

SRAM(static RAM)——静态存储,跟动态存储的区别很显然就是不用动不动就被刷新。这是因为SRAM中一个cell不是用电容存储信息的,而是用两个反相器相互连接形成锁存器,保持住Q与~Q的信息,如下图。
SRAM cell
一个cell,也就是一个bit有6个MOS管管理。4个管子形成2个反相器(M1234)。M5和M6是控制管。
在这里插入图片描述
读的时候,给BL和~BL都预充为1,然后WL选通M56,此时Q=0,会把BL的电平卸掉。如果Q=1,则!BL的电平会被卸掉。写的时候,写1的时候,需要给BL一个高电压,超过反相器的翻转阈值,改变锁存器的锁存数据。

由于DRAM有刷新过程,而且充放电的过程让写入的速度变慢。所以SRAM速度要比DRAM快,在存储结构中,SRAM更适合做L1/L2的存储体,DRAM则适合作为L3/内存的存储体。而速度快的DRAM,一个bit需要6根管子,自然需要的体积就很大了,所以DRAM是个又小又快的货。这里的小是指存储体量小,因为L1/L2一般是作为片上高速缓存,没办法给它太大的体积。相同体积下,6个管子存1bit,能存的bit就比较少。

四、FLASH

闪存,闪这个名字来自于其比EEPROM的擦写速度快,此外FLASH即弥补了ROM只读的限制,还弥补了RAM掉电易失的缺陷。主要分为NOR FLASH和NAND FLASH。

EPROM和EEPROM都是intel的产品,后来东芝公司的员工富士雄利用业余时间设计了读写和擦除都比EEPROM快很多的东西,但是当时东芝不重视,最终NOR FLASH的大部分市场份额还是归属于intel。

1.NOR FLASH

首先,NOR FLASH跟EEPROM的原理差不多,也是使用浮栅晶体管作为存储介质单元,并利用热电子效应把电子送上浮栅。每个管子的源极和漏极都接出来作为字线和位线,所以NOR FLASH可以随机访问任意字,任意bit。这也就使得它可以像RAM一样支持直接访问执行程序,而不用像NAND FLASH一样整块读出来放到RAM中,然后再执行。

2.NAND FLASH

NAND FLASH也是使用浮栅晶体管,但是送电子上下浮栅的不再是热电子效应,而是量子的隧道效应。这样做速度不如热电子效应,但是省电。并且为了提高存储密度,它把一组场效应管(一般是8、16bits位)串行连接在一起,只拉出一跟位线。所以NAND FLASH的特点是读写操作以页为单位,擦除则是以块为单位,不能像NOR FLASH那样灵活读写,当然也不支持直接访问执行程序。且读写速度没有NOR FLASH快。但是由于密度高,NAND FLASH体积小,几乎是同存储容量的NOR FLASH的一半,价格也低。

3.应用

NOR FLASH多应用于手机市场,用于存储代码和数据。在PC上的BIOS部分也使用NOR,这是由于开机启动程序BIOS必须是在支持执行程序的NOR上使用,无法被NAND替代。NAND FLASH多用在U盘,MP3等,主要是出于成本考量。

五、磁盘HDD

传统的硬盘使用的是磁存储技术,即磁头扫描碟片,根据磁化方向确定存储的信息。很显然,磁存储也是非易矢的。由于机械式硬盘在读写时要求碟片高速转动,千/万rpm的转速是常见的,此外磁头需要保持与碟片很近的距离,所以机械硬盘功率高是一方面,还不耐操,而且读写速度还不够快。
磁盘内部结构
替代HDD的产品叫SSD(solid state drives)固态硬盘。用的是NAND FLASH颗粒存储。SSD内部还维护了一张页表,用于映射虚拟地址和物理地址使用,该页表存储在内部的DRAM中,以支持快速访问。掉电后页表丢失,为了保证映射关系不丢失,NAND FLASH中会存储有映射关系,且会定期更新,上电后将子集投射到DRAM中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值