DRAM/NAND都是啥?科普內(nèi)存和硬盤的區(qū)別
手機(jī)/電腦的內(nèi)存和存儲(chǔ)
本文引用地址:http://m.butianyuan.cn/article/201710/366482.htm現(xiàn)如今隨著手機(jī)的不斷推廣和普及,已掩蓋電腦時(shí)代的輝煌,很多新生代的用戶都問(wèn)到手機(jī)的存儲(chǔ)就陷入了茫然,于是我們經(jīng)常會(huì)遇到“Q:你的手機(jī)內(nèi)存多大?A:128GB”這樣的笑話,實(shí)際上我們也相信提問(wèn)者就是想知道手機(jī)存儲(chǔ)容量的大小,而回答者也已經(jīng)按照約定俗成的方式回答了問(wèn)題。
于計(jì)算機(jī)組成原理來(lái)分析:手機(jī)和電腦并沒(méi)有本質(zhì)的區(qū)別,主體結(jié)構(gòu)依然為輸入設(shè)備、存儲(chǔ)器、運(yùn)算器、控制器和輸出設(shè)備,至于外圍的存儲(chǔ)設(shè)備實(shí)際只是一個(gè)輔助,所以稱之為輔助存儲(chǔ)器,只是因?yàn)槿藗儗?duì)于結(jié)果的更多需求,所以它又成為人們似乎“看得著、摸得見(jiàn)”的最重要組成部分--存儲(chǔ)。
計(jì)算機(jī)的組成原理里面這樣介紹計(jì)算機(jī)的存儲(chǔ)器:存儲(chǔ)器是用來(lái)存儲(chǔ)程序和數(shù)據(jù)的部件,對(duì)于計(jì)算機(jī)來(lái)說(shuō),有了存儲(chǔ)器,才有記憶功能,才能保證正常工作。存儲(chǔ)器的種類很多,按其用途可分為主存儲(chǔ)器和輔助存儲(chǔ)器,主存儲(chǔ)器又稱內(nèi)存儲(chǔ)器,而諸如硬盤、SSD等都為輔助存儲(chǔ)器。
套用網(wǎng)絡(luò)上這樣一個(gè)關(guān)于內(nèi)存和存儲(chǔ)的定義,大家可能再也不會(huì)弄混淆了:你口里吃花生就CPU在處理數(shù)據(jù),硬盤容量大小就是你的口袋大小(能放多少花生),內(nèi)存大小就是你的手的大小(一次能抓多少出來(lái))。
現(xiàn)如今,無(wú)論是手機(jī)還是電腦內(nèi)存都使用了DRAM存儲(chǔ)技術(shù)。DRAM(Dynamic Random Access Memory),即動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,最為常見(jiàn)的系統(tǒng)內(nèi)存。DRAM只能將數(shù)據(jù)保持很短的時(shí)間。為了保持?jǐn)?shù)據(jù),DRAM使用電容存儲(chǔ),所以必須隔一段時(shí)間刷新(refresh)一次,如果存儲(chǔ)單元沒(méi)有被刷新,存儲(chǔ)的信息就會(huì)丟失。
至于存儲(chǔ)方面,現(xiàn)如今主要包含兩大類技術(shù):HDD(Hard Disc Drive)和NAND Flash,關(guān)于HDD在這里就不做過(guò)多介紹。NAND Flash全名為Flash Memory,屬于非易失性存儲(chǔ)設(shè)備(Non-volatile Memory Device),F(xiàn)lash的內(nèi)部存儲(chǔ)是MOSFET,里面有個(gè)懸浮門(Floating Gate),是真正存儲(chǔ)數(shù)據(jù)的單元。數(shù)據(jù)在Flash內(nèi)存單元中是以電荷(electrical charge) 形式存儲(chǔ)的。存儲(chǔ)電荷的多少,取決于圖中的外部門(external gate)所被施加的電壓,其控制了是向存儲(chǔ)單元中沖入電荷還是使其釋放電荷。而數(shù)據(jù)的表示,以所存儲(chǔ)的電荷的電壓是否超過(guò)一個(gè)特定的閾值Vth來(lái)表示。
對(duì)于數(shù)據(jù)的表示,單個(gè)存儲(chǔ)單元中內(nèi)部所存儲(chǔ)電荷的電壓,和某個(gè)特定的閾值電壓Vth,相比,如果大于此Vth值,就是表示1,反之,小于Vth,就表示0;對(duì)于nand Flash的數(shù)據(jù)的寫入1,就是控制External Gate去充電,使得存儲(chǔ)的電荷夠多,超過(guò)閾值Vth,就表示1了。而對(duì)于寫入0,就是將其放電,電荷減少到小于Vth,就表示0了。
DRAM和NAND的單位
從上面的存儲(chǔ)原理可以看出,DRAM和NAND的存儲(chǔ)單位實(shí)際為b,那么為什么存儲(chǔ)產(chǎn)品的容量一般都用B來(lái)標(biāo)注呢?而存儲(chǔ)產(chǎn)品的顆粒容量又以b來(lái)標(biāo)注呢?
以DRAM內(nèi)存顆粒為例,其存儲(chǔ)組織結(jié)構(gòu)為深度(Depth)加上位寬(Width),下面我們以美光官方的一份內(nèi)存顆粒文檔為大家解析,例如編號(hào)為MT40A1G16HBA-083E的內(nèi)存顆粒,其深度(Depth)和位寬(Width)分別為1Gb和16,容量顯然為16Gb,關(guān)于內(nèi)存顆粒的容量我們這樣解釋下大家可能會(huì)更好理解一些。
我們把MT40A1G16HBA-083E比作一個(gè)國(guó)家,這個(gè)國(guó)家有16個(gè)城市,每個(gè)城市有1024x1024x1024(1G=1024M,1M=1024K,1K=1024)個(gè)家庭,那么這個(gè)國(guó)家總共就會(huì)有16x1024x1024x1024個(gè)家庭,又假如每個(gè)城市都設(shè)置一個(gè)城門,每次只能放行一個(gè)家庭,那么這個(gè)國(guó)家每次都多只能放行16個(gè)家庭。
而現(xiàn)在無(wú)論是桌面PC還是手機(jī)基本已經(jīng)進(jìn)入了64bit時(shí)代,處理器每次吞吐數(shù)據(jù)的單位為64,也就是說(shuō)處理器一次需要抽調(diào)64個(gè)家庭,那么怎么辦呢?于是我們就將多個(gè)國(guó)家聯(lián)合起來(lái),對(duì)于一個(gè)擁有16個(gè)城市的國(guó)家而言,那么只需要4個(gè)國(guó)家就可以滿足處理器的需求。不過(guò)如果對(duì)于一些小國(guó)只有4個(gè)或者8個(gè)城市的,那么一次就需要16個(gè)國(guó)家聯(lián)合起來(lái)或者8個(gè)國(guó)家聯(lián)合起來(lái)才能夠滿足需求。
現(xiàn)在再來(lái)說(shuō)說(shuō)為什么DRAM或者NAND存儲(chǔ)顆粒不適用B而是用b來(lái)標(biāo)注呢?實(shí)際上稍微了解計(jì)算機(jī)原理的用戶應(yīng)該知道,現(xiàn)存的計(jì)算機(jī)體系結(jié)構(gòu)B(Byte)表示一個(gè)字節(jié),而b(bit)表示1個(gè)位。對(duì)于單純1個(gè)bit的0或者1來(lái)說(shuō)計(jì)算機(jī)的識(shí)別就是“是”或者“非”,無(wú)數(shù)個(gè)0或者1組織起來(lái)計(jì)算機(jī)并不會(huì)知道這代表著什么?而數(shù)據(jù)應(yīng)該怎么和計(jì)算機(jī)的0或者1對(duì)應(yīng)起來(lái)呢?于是就有了ACSII編碼,每一個(gè)字母或者符號(hào)都對(duì)應(yīng)一個(gè)ACSII編碼,這樣現(xiàn)實(shí)世界的語(yǔ)言就和計(jì)算機(jī)就完全對(duì)接上了。
ACSII編碼規(guī)定每一個(gè)符號(hào)占用的大小為8bit,簡(jiǎn)稱一個(gè)字節(jié)(Byte),于存儲(chǔ)而言1個(gè)字節(jié)才算基本的單位,所以文件的存儲(chǔ)就以Byte為最小單位。不過(guò)無(wú)論是DRAM還是NAND由于對(duì)接的計(jì)算機(jī)甚至是非計(jì)算機(jī)設(shè)備,其產(chǎn)品的存儲(chǔ)單位屬性并不一定是Byte,所以依然為bit標(biāo)注。
另外在數(shù)據(jù)流,例如網(wǎng)絡(luò)帶寬、USB帶寬、PCI-E帶寬,我們又會(huì)發(fā)現(xiàn)以b為單位,這是因?yàn)閷?duì)于數(shù)據(jù)傳輸而言,都是以通道流形式,就像上面的例子一樣一次只能放行一個(gè)家庭。而在數(shù)據(jù)傳輸過(guò)程中為了確保數(shù)據(jù)的安全還會(huì)加入一些校驗(yàn)數(shù)據(jù)在其中例如USB 3.0就采用了8b/10b的編碼方式(每傳輸8bit數(shù)據(jù)就需要加入2bit校驗(yàn)數(shù)據(jù)),這個(gè)時(shí)候如果再使用Byte作為單位顯然亂了章法,不合時(shí)宜。
SLC、MLC、TLC NAND的區(qū)別
對(duì)于基于NAND存儲(chǔ)技術(shù)的設(shè)備而言,無(wú)論是U盤還是SSD,甚至是SD卡,都會(huì)涉及到一個(gè)問(wèn)題成本,于是產(chǎn)品設(shè)計(jì)從SLC轉(zhuǎn)變到MLC,再到TLC,甚至QLC也將在后續(xù)問(wèn)世,那么SLC、MLC、TLC究竟對(duì)用戶有什么影響呢?
SLC--SLC英文全稱(Single Level Cell——SLC)即單層式儲(chǔ)存
SLC技術(shù)特點(diǎn)是在浮置閘極與源極之中的氧化薄膜更薄,在寫入數(shù)據(jù)時(shí)通過(guò)對(duì)浮置閘極的電荷加電壓,然后透過(guò)源極,即可將所儲(chǔ)存的電荷消除,通過(guò)這樣的方式,便可儲(chǔ)存1個(gè)信息單元,這種技術(shù)能提供快速的程序編程與讀取,不過(guò)此技術(shù)受限于Silicon efficiency的問(wèn)題,必須要由較先進(jìn)的流程強(qiáng)化技術(shù)(Process enhancements),才能向上提升SLC制程技術(shù)。
MLC--MLC英文全稱(Multi Level Cell——MLC)即多層式儲(chǔ)存
英特爾(Intel)在1997年9月最先開(kāi)發(fā)成功MLC,其作用是將兩個(gè)單位的信息存入一個(gè)Floating
Gate(閃存存儲(chǔ)單元中存放電荷的部分),然后利用不同電位(Level)的電荷,通過(guò)內(nèi)存儲(chǔ)存的電壓控制精準(zhǔn)讀寫。MLC通過(guò)使用大量的電壓等級(jí),每 個(gè)單元儲(chǔ)存兩位數(shù)據(jù),數(shù)據(jù)密度比較大。SLC架構(gòu)是0和1兩個(gè)值,而MLC架構(gòu)可以一次儲(chǔ)存4個(gè)以上的值,因此,MLC架構(gòu)可以有比較好的儲(chǔ)存密度。
TLC--TLC英文全稱(Trinary-Level Cell)即三層式儲(chǔ)存
TLC即3bit per cell,每個(gè)單元可以存放比MLC多1/2的數(shù)據(jù),共八個(gè)充電值,所需訪問(wèn)時(shí)間更長(zhǎng),因此傳輸速度更慢。TLC優(yōu)勢(shì)價(jià)格便宜,每百萬(wàn)字節(jié)生產(chǎn)成本是最低的,但是壽命短,只有約1000次擦寫壽命。
正如上面的介紹,從SLC到MLC再到TLC,cell對(duì)于電壓的精確控制更高,這直接導(dǎo)致TLC的壽命下降到只有1000次PE,而對(duì)應(yīng)的SLC和MLC分別為10000+和3000,相對(duì)來(lái)說(shuō)TLC的耐久度顯著下降。TLC的另外一個(gè)劣勢(shì)就是數(shù)據(jù)的讀寫效率,在SLC時(shí)代,1個(gè)cell一次只需要讀取/寫入1個(gè)bit,到MLC時(shí)代每次需要讀取/寫入2bit,而到TLC時(shí)代則上升到3bit,很顯然其性能受到電壓控制的程序復(fù)雜度會(huì)變慢,當(dāng)然由于工藝和主控的不斷升級(jí),目前TLC已經(jīng)可以追平MLC產(chǎn)品。不過(guò)TLC耐久的硬傷短時(shí)間內(nèi)并無(wú)法得到有效解決,當(dāng)然TLC的耐久可以通過(guò)存儲(chǔ)設(shè)備的容量加大而均衡磨損,變相演唱了產(chǎn)品的使用壽命。
評(píng)論