計算機的組成原理裡面這樣介紹計算機的存儲器:存儲器是用來存儲程序和數據的部件,對於計算機來說,有了存儲器,才有記憶功能,才能保證正常工作。存儲器的種類很多,按其用途可分為主存儲器和輔助存儲器,主存儲器又稱內存儲器,而諸如硬盤、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編碼規定每一個符號占用的大小為8bit,簡稱一個字節(Byte),於存儲而言1個字節才算基本的單位,所以文件的存儲就以Byte為最小單位。不過無論是DRAM還是NAND由於對接的計算機甚至是非計算機設備,其產品的存儲單位屬性並不一定是Byte,所以依然為bit標註。
另外在數據流,例如網絡帶寬、USB帶寬、PCI-E帶寬,我們又會發現以b為單位,這是因為對於數據傳輸而言,都是以通道流形式,就像上面的例子一樣一次只能放行一個家庭。而在數據傳輸過程中為了確保數據的安全還會加入一些校驗數據在其中例如USB 3.0就採用了8b/10b的編碼方式(每傳輸8bit數據就需要加入2bit校驗數據),這個時候如果再使用Byte作為單位顯然亂了章法,不合時宜。
SLC、MLC、TLC NAND的區別
對於基於NAND存儲技術的設備而言,無論是U盤還是SSD,甚至是SD卡,都會涉及到一個問題成本,於是產品設計從SLC轉變到MLC,再到TLC,甚至QLC也將在後續問世,那麼SLC、MLC、TLC究竟對用戶有什麼影響呢?
SLC--SLC英文全稱(Single Level Cell——SLC)即單層式儲存
SLC技術特點是在浮置閘極與源極之中的氧化薄膜更薄,在寫入數據時通過對浮置閘極的電荷加電壓,然後透過源極,即可將所儲存的電荷消除,通過這樣的方式,便可儲存1個信息單元,這種技術能提供快速的程序編程與讀取,不過此技術受限於Silicon efficiency的問題,必須要由較先進的流程強化技術(Process enhancements),才能向上提升SLC製程技術。
MLC--MLC英文全稱(Multi Level Cell——MLC)即多層式儲存
英特爾(Intel)在1997年9月最先開發成功MLC,其作用是將兩個單位的信息存入一個Floating
Gate(閃存存儲單元中存放電荷的部分),然後利用不同電位(Level)的電荷,通過內存儲存的電壓控制精準讀寫。MLC通過使用大量的電壓等級,每 個單元儲存兩位數據,數據密度比較大。SLC架構是0和1兩個值,而MLC架構可以一次儲存4個以上的值,因此,MLC架構可以有比較好的儲存密度。
TLC--TLC英文全稱(Trinary-Level Cell)即三層式儲存
TLC即3bit per cell,每個單元可以存放比MLC多1/2的數據,共八個充電值,所需訪問時間更長,因此傳輸速度更慢。TLC優勢價格便宜,每百萬字節生產成本是最低的,但是壽命短,只有約1000次擦寫壽命。
正如上面的介紹,從SLC到MLC再到TLC,cell對於電壓的精確控制更高,這直接導致TLC的壽命下降到只有1000次PE,而對應的SLC和MLC分別為10000+和3000,相對來說TLC的耐久度顯著下降。TLC的另外一個劣勢就是數據的讀寫效率,在SLC時代,1個cell一次只需要讀取/寫入1個bit,到MLC時代每次需要讀取/寫入2bit,而到TLC時代則上升到3bit,很顯然其性能受到電壓控制的程序複雜度會變慢,當然由於工藝和主控的不斷升級,目前TLC已經可以追平MLC產品。不過TLC耐久的硬傷短時間內並無法得到有效解決,當然TLC的耐久可以通過存儲設備的容量加大而均衡磨損,變相演唱了產品的使用壽命。
---------------------------------------
來源:OFweek中國高科技行業門戶
---------------------------------------
來源:OFweek中國高科技行業門戶
評論