之前在谈到缓存的时候提及到了作为L1和L2以及内存条的不同种类的RAM,以及可以断电保存的闪存,我相信很多人都想知道,同样都是存储器,为什么会有如此大的差别呢?在此,我将会简单地讲一下其内部结构。
1.SRAM
其中最快最大体积最大的是SRAM,常用于一级缓存。静态随机存取存储器(Static Random-Access Memory, SRAM)是随机存取储存器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。通常是通过两个反门的互锁效应完成存储的。
当然也可以使用其他门电路,比如或非门。
四管SRAM,其反相器使用的是一个电阻和开关管,由于使用了电阻使得耗电较高,不过优势是价格便宜。
另一种是六管,这种成本较高,不过相对来说比较省电。微处理器中大部分都是六管结构。
虽然SRAM速度快,但是由于晶体管数量过多,使得成本高体积大,并不适合大容量储存器。
2.DRAM
DRAM(DynamicRandom Access Memory),即动态随机存取储存器,最为常见的系统内存。DRAM 只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新一次,如果储存单元没有被刷新,存储的信息就会丢失。 (关机就会丢失数据)而且是破坏性读写,一旦读取后,就得重新写入。因此其速度不是很快,但是每个储存单元只需要一个电容器和开关管,结构简单,成本低。
虽然整体还是挺庞大,但是每个单元很简单,很容易扩大规模。
3.高频内存的意义
在第一章中,我讲到了CPU的多级缓存机制,通过计算也证实了多级缓存使得内存的影响变得更小了。那么在实际应用中高频内存真的是完全没意义吗?在此我做了一个对比,很惭愧,因为测试的应用不是很多,只做了一个微小的工作。
测试内存:Kingston Hyper X Savage
频率:1600和2400(时序没有调,保持原本的)
首先是渲染对比:
软件:Solidworks
模型是随便画的,就是一个圆盘上面有几个弹簧,没事干的可以数数多少个。
1600: 1m 31.0s
2400: 1m 22.7s
性能提升:10%
视频转码测试:
软件:Xilisoft Video Converter Ultimate(这软件真坑,对290x的加速不支持,但是对cuda是滋磁的,不过上次测试cuda居然比CPU还慢~~)
1600:2m 2.79s 2400:1m 59.16s 性能提升:3%
使用核心显卡的测试
CPU:A8-7650K
内存:Kingston Hyper X Savage
游戏:使命召唤9,第一关,画质全部中等。(除了COD系列,我玩的游戏很少,所以只选择了这个~)
测试软件:Fraps
2400M: Avg:32 Min:24 Max:62(这一段属于动画,结果没啥意义~)
1600M: Avg:23 Min:19 Max:62
1600M单通道: Avg:18 Min:17 Max:62
提升率:
单通道到双通道:27.8%
1600到2400: 39.1%
1600单通道到2400双通道:77.8%
测试结果:
在使用核心显卡时,双通道高频内存和单通道低频相比有质的飞跃。为了完全发挥核心显卡的性能,应当适当(那种几千块的内存就别选了)选择频率较高的内存。 在使用CPU进行大规模运算时,高频内存也能带来一定的性能提升,但是提升幅度远不如核心显卡那么明显,如果在价格差距不大的情况下还是可以选择高频内存。 在购买内存条时,个人还是建议购买多通道,毕竟多通道带来的性能提升远高于频率的提升。
4.固态硬盘的存储原理:
4.1 储存方式
首先需要讲一下MOS的结构: MOS管的工作原理(以N沟道增强型MOS场效应管)它是利用VGS来控制“感应电荷”的多少,以改变由这些“感应电荷”形成的导电沟道的状况,然后达到控制漏极电流的目的。在制造管子时,通过工艺使绝缘层中出现大量正离子,故在交界面的另一侧能感应出较多的负电荷,这些负电荷把高渗杂质的N区接通,形成了导电沟道,即使在VGS=0时也有较大的漏极电流ID。当栅极电压改变时,沟道内被感应的电荷量也改变,导电沟道的宽窄也随之而变,因而漏极电流ID随着栅极电压的变化而变化。
我们可以通过在G下面再加一个浮动极,通过在里面注入电荷便能使保持导通与关断。
这时候肯定有人会问,这个浮动极周围都是绝缘的,怎么能注入电荷呢?
在宏观世界中确实是这样的,但在微观世界中存在隧道效应。
隧道效应: 经典物理学认为,物体越过势垒,有一阈(读yu,阀实际上是一个错误的叫法)值能量;粒子能量小于此能量则不能越过,大于此能量则可以越过。例如骑自行车过小坡,先用力骑,如果坡很低,不蹬自行车也能靠惯性过去。如果坡很高,不蹬自行车,车到一半就停住,然后退回去。 量子力学则认为,即使粒子能量小于阈值能量,很多粒子冲向势垒,一部分粒子反弹,还会有一些粒子能过去,好像有一个隧道,故名隧道效应(quantum tunneling)。可见,宏观上的确定性在微观上往往就具有不确定性。虽然在通常的情况下,隧道效应并不影响经典的宏观效应,因为隧穿几率极小,但在某些特定的条件下宏观的隧道效应也会出现。
当电荷被成功注入后,由于周围都是绝缘的,这就使得导通关断状态可以长期保存下去。
那么会不会因为绝缘不够造成电荷跑出去使得数据丢失呢?那么固态硬盘还能用吗?
实际上电荷丢失的情况确实存在,不过这个时间是十年以上。你想想十年前用的硬盘才80G,现在手机都能128G,电脑硬盘都达到2000G。在十年之后这个硬盘你还会用吗?所以我们可以放心使用,因为这个硬盘寿命远远大于更新周期。
4.2 SLC/MLC/TLC的区别:
最开始一个浮动极只有两种电位,这种叫SLC(Single-Level Cell)。
随着时代的发展,技术越来越先进,人们渐渐发现了在原来只有两种高低电位的芯片内电压还能再细分出两种,于是就出现了MLC(Multi-Level Cell)。
再后来还能分到第三层去,于是有了TLC(Trinary-Level Cell)。
看起来TLC技术更先进,可以在相同体积下弄出三倍的容量。实际上这也得做出牺牲的,那就是寿命和速度。毕竟三层的情况下对电压的控制要求更精准。
实际上也有QLC,不过就连TLC的寿命和速度相比MLC都有着较大的差距,QLC的寿命和速度就更没法看了,所以市场上通常最低都是TLC。
由于TLC速度慢,寿命短,似乎不适合推广,不过现在也有技术给TLC续命。跟多级缓存机制相似,许多TLC的SSD也是多级设计,在TLC前面加入一块容量较小的SLC。在日常使用中,常用文件便在SLC中来回擦写,如果是较大的文件(这类文件通常也不会经常擦写)那么才调用TLC。这样可以使得TLC在日常使用中速度更快,寿命更长。不过这种设计也有问题,那就是当SLC存满后就容易出现掉速的现象。
4.3 寿命计算
看了上面的寿命表,是不是感觉用不多久就会坏掉,毕竟有的文件一天就会擦写几十次。实际上SSD的寿命并不是这样计算的。现代的主控都会做到平衡磨损,也就是当你把之前不要的东西删掉后,它只是会把东西隐藏了而已,并没有真正擦除。当你又重新建立一个文件之后,就会在一块新的区域写入。这样就能使得整块SSD不同位置的闪存都能做到平衡磨损。
我们可以发现,如果是一块全新的硬盘写入时直接写入就行。当硬盘使用了一次之后,因为之前删除的数据还保持在里面,所以需要先删除再写入,因此会出现掉速的现象,而且装得越满掉速越厉害。比如我之前的三星840,当装了超过70%以后就开始明显得感觉开始卡顿。所以个人建议SSD要买好一点的,刚开始可能用起来差距不大,但是用一段时间之后越好的SSD掉速现象越不明显,而且实际可用容量也会大一些(低端的可能装了60%就开始卡顿,高端的90%都感觉不明显)。
总擦写量=总容量*擦写次数
以500次寿命,128G的TLC为例,真正的寿命是500*128G=64000G,而且SSD的读取不会影响寿命(毕竟就相当于普通MOS管),仅仅是擦写才会。假如一天开车30G,这样一块SSD都足以使用六年之久,因此完全不必担心寿命,六年之后你肯定会更换硬盘了。
|