微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > DRAM/NAND都是啥?科普内存和硬盘的区别

DRAM/NAND都是啥?科普内存和硬盘的区别

时间:03-21 来源:中关村在线 点击:

  手机/电脑的内存和存储

  现如今随着手机的不断推广和普及,已掩盖电脑时代的辉煌,很多新生代的用户都问到手机的存储就陷入了茫然,于是我们经常会遇到"Q:你的手机内存多大?A:128GB"这样的笑话,实际上我们也相信提问者就是想知道手机存储容量的大小,而回答者也已经按照约定俗成的方式回答了问题。

  

  于计算机组成原理来分析:手机和电脑并没有本质的区别,主体结构依然为输入设备、存储器、运算器、控制器和输出设备,至于外围的存储设备实际只是一个辅助,所以称之为辅助存储器,只是因为人们对于结果的更多需求,所以它又成为人们似乎"看得着、摸得见"的最重要组成部分--存储。

  计算机的组成原理里面这样介绍计算机的存储器:存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器,而诸如硬盘、SSD等都为辅助存储器。

  

  套用网络上这样一个关于内存和存储的定义,大家可能再也不会弄混淆了:你口里吃花生就CPU在处理数据,硬盘容量大小就是你的口袋大小(能放多少花生),内存大小就是你的手的大小(一次能抓多少出来)。

  现如今,无论是手机还是电脑内存都使用了DRAM存储技术。DRAM(Dynamic Random Access Memory),即动态随机存取存储器,最为常见的系统内存。DRAM只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。

  

  至于存储方面,现如今主要包含两大类技术:HDD(Hard Disc Drive)和NAND Flash,关于HDD在这里就不做过多介绍。NAND Flash全名为Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),Flash的内部存储是MOSFET,里面有个悬浮门(Floating Gate),是真正存储数据的单元。数据在Flash内存单元中是以电荷(electrical charge) 形式存储的。存储电荷的多少,取决于图中的外部门(external gate)所被施加的电压,其控制了是向存储单元中冲入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值Vth来表示。

  对于数据的表示,单个存储单元中内部所存储电荷的电压,和某个特定的阈值电压Vth,相比,如果大于此Vth值,就是表示1,反之,小于Vth,就表示0;对于nand Flash的数据的写入1,就是控制External Gate去充电,使得存储的电荷够多,超过阈值Vth,就表示1了。而对于写入0,就是将其放电,电荷减少到小于Vth,就表示0了。

  DRAM和NAND的单位

  从上面的存储原理可以看出,DRAM和NAND的存储单位实际为b,那么为什么存储产品的容量一般都用B来标注呢?而存储产品的颗粒容量又以b来标注呢?

  以DRAM内存颗粒为例,其存储组织结构为深度(Depth)加上位宽(Width),下面我们以美光官方的一份内存颗粒文档为大家解析,例如编号为MT40A1G16HBA-083E的内存颗粒,其深度(Depth)和位宽(Width)分别为1Gb和16,容量显然为16Gb,关于内存颗粒的容量我们这样解释下大家可能会更好理解一些。

  

  我们把MT40A1G16HBA-083E比作一个国家,这个国家有16个城市,每个城市有1024x1024x1024(1G=1024M,1M=1024K,1K=1024)个家庭,那么这个国家总共就会有16x1024x1024x1024个家庭,又假如每个城市都设置一个城门,每次只能放行一个家庭,那么这个国家每次都多只能放行16个家庭。

  而现在无论是桌面PC还是手机基本已经进入了64bit时代,处理器每次吞吐数据的单位为64,也就是说处理器一次需要抽调64个家庭,那么怎么办呢?于是我们就将多个国家联合起来,对于一个拥有16个城市的国家而言,那么只需要4个国家就可以满足处理器的需求。不过如果对于一些小国只有4个或者8个城市的,那么一次就需要16个国家联合起来或者8个国家联合起来才能够满足需求。

  

  现在再来说说为什么DRAM或者NAND存储颗粒不适用B而是用b来标注呢?实际上稍微了解计算机原理的用户应该知道,现存的计算机体系结构B(Byte)表示一个字节,而b(bit)表示1个位。对于单纯1个bit的0或者1来说计算机的识别就是"是"或者"非",无数个0或者1组织起来计算机并不会知道这代表着什么?而数据应该怎么和计算机的0或者1对应起来呢?于是就有了ACSII编码,每一个字母或者符号都对应一个ACSII编码,这样现实世界的语言就和计算机就完全对接上了。

  

ACSII编码规定每一个符号占用的大

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top