在上体系结构这门课以前,我只知道DRAM用做内存比较多,SRAM用做cache比较多。在今天讲到内存技术时,我对于这两个基础概念有了更加完整的认识。这篇文章是个人听课心得,如今分享给各位,仅供参考,如有错误多多指正。数组
从名字上看,SRAM与DRAM的区别只在于一个是静态一个是动态。因为SRAM不须要刷新电路就可以保存数据,因此具备静止存取数据的做用。而DRAM则须要不停地刷新电路,不然内部的数据将会消失。并且不停刷新电路的功耗是很高的,在咱们的PC待机时消耗的电量有很大一部分都来自于对内存的刷新。那么为何咱们不用SRAM来做为内存呢?spa
首先来看一张SRAM的基本单元结构图 再来看看DRAM的基本单元结构图blog
SRAM存储一位须要花6个晶体管,而DRAM只须要花一个电容和一个晶体管。cache追求的是速度因此选择SRAM,而内存则追求容量因此选择可以在相同空间中存放更多内容而且造价相对低廉的DRAM。内存
咱们姑且不去讨论关于SRAM是如何静态存储数据(触发器)的。为何DRAM须要不断刷新呢?it
DRAM的数据其实是存在电容里的。而电容放久了,内部的电荷就会愈来愈少,对外就造成不了电位的变化。并且当对DRAM进行读操做的时候须要将电容与外界造成回路,经过检查是否有电荷流进或流出来判断该bit是1仍是0。因此不管怎样,在读操做中咱们都破坏了原来的数据。因此在读操做结束后须要将数据写回DRAM中。在整个读或者写操做的周期中,计算机都会进行DRAM的刷新,一般是刷新的周期是4ms-64ms。基础
关于SRAM和DRAM的寻址方式也有所不一样。虽然一般咱们都认为内存像一个长长的数组呈一维排列,但实际上内存是以一个二维数组的形式排列的,每一个单元都有其行地址和列地址,固然cache也同样。而这二者的不一样在于对于容量较小的SRAM,咱们能够将行地址和列地址一次性传入到SRAM中,而若是咱们对DRAM也这样作的话,则须要不少不少根地址线(容量越大,地址越长,地址位数越多)。因此咱们选择分别传送行地址和列地址到DRAM中。先选中一整行,而后将整行数据存到一个锁存器中,等待列地址的传送而后选中所须要的数据。这也是为何SRAM比DRAM快的缘由之一。im