本文為清華大學(xué)存儲(chǔ)課程的學(xué)習(xí)筆記,以及一些體會(huì)皆看,圖片主要來自課程的PPT韭寸,附帶一些Note來做補(bǔ)充說明。
非遺失性存儲(chǔ)主要介于Storage以及Memory之間喷楣,延時(shí)在100-1000ns趟大,非常接近Memory的60ns,而遠(yuǎn)高于Storage的性能抡蛙。
傳統(tǒng)的磁盤由于機(jī)械式的部件护昧,使得性能非常慢 - 兩個(gè)馬達(dá)要轉(zhuǎn)
該圖表現(xiàn)出魂迄,從1990年開始磁盤的延遲在不斷降低粗截,直到2005左右,就基本沒變化了捣炬。
帶寬也是熊昌,2000年之后變化就比較少了绽榛,很難提升了。
能耗開銷也非常大婿屹,包括了磁盤以及冷卻的開銷灭美,限制了可擴(kuò)展性。右圖表示昂利,到2020年需要500萬塊磁盤才能滿足性能需求届腐。
單位為MB/s,表示了兩種盤的對比蜂奸。
現(xiàn)在我們常見的閃存主要是NAND犁苏,按照頁去讀寫,擦除按照block進(jìn)行扩所。而NOR可以原地改寫围详。
NOR有個(gè)地線,所以可以原地更新祖屏,但是缺點(diǎn)是空間有限助赞,放的東西不夠多。
寫是把電子放進(jìn)Floating Gate中袁勺;讀的話通過不同的電壓加載雹食,看對應(yīng)的狀態(tài);擦除是把電子打出去魁兼;
與傳統(tǒng)CMOS的差異:
CMOS的簡化圖(晶體管)婉徘。達(dá)到某個(gè)閾值電壓就接通。
Flash的區(qū)別是多了一塊(兩個(gè)紅色的長方體)咐汞,多了Floating gate盖呼。下面為氧化層,且加壓后電子可以通過氧化層化撕,進(jìn)入Floating gate几晤,被保存進(jìn)去。
具體來看:
現(xiàn)在有兩個(gè)閾值對應(yīng)兩個(gè)狀態(tài)。
Row為word line极景,Column為bit line抵卫,橫著一行為頁(讀寫單元),整個(gè)方塊叫block(擦除單元)憾朴,選中后放到Sense Amplifiers(行選中)。
左上角門限為2V喷鸽,右上角為3V众雷,所以加載2.5V可以將其選通。
假如我們要讀第二行,則其他行加上5V電壓砾省,第二行2.5V即可鸡岗。
如圖,2.5V無法通過前兩行编兄,所以豎著無法通過轩性,后面兩行可以通過,所以呈現(xiàn)0 0 1 1的情況狠鸳。從而選中page2的數(shù)據(jù)揣苏。
該圖表示了MLC下,閃存存儲(chǔ)的容量變大件舵,但是可靠性變差舒岸。
每一行的一個(gè)單元是有兩個(gè)bit(wordline),如何寫入呢芦圾?
下面為寫入順序:
這個(gè)順序的原因是:加電壓的時(shí)候會(huì)對周邊的數(shù)據(jù)有影響蛾派,使得相鄰數(shù)據(jù)偏移。連續(xù)寫兩次同一個(gè)位置會(huì)對周邊影響過大个少。
但是當(dāng)寫了第一行洪乍、第二行,再寫第一行的第二個(gè)數(shù)據(jù)的時(shí)候夜焦,就可以把偏移的電壓調(diào)整過來壳澳。
下面闡述了Flash的其他特性:
壽命影響可靠性。Retention是放了時(shí)間久了之后電子跑掉了茫经,耐久性是寫的越來越多巷波,設(shè)備(Floating gate)越來越薄,這個(gè)變薄的時(shí)間就是耐久性卸伞。
為了使用上述特性抹镊,所以設(shè)計(jì)了FTL。
1 不寫在一個(gè)地方荤傲,新寫在一個(gè)地方垮耳,通過修改指針。舊的數(shù)據(jù)無效化遂黍,放過去
地址映射
垃圾回收
磨損均衡
SSD內(nèi)部結(jié)構(gòu)如上圖所示终佛。
其內(nèi)部是多通道進(jìn)行,Channel Level使得SSD內(nèi)部有很強(qiáng)的并行性雾家,速度變快铃彰。其中每個(gè)Chip中都有Register,數(shù)據(jù)會(huì)提前準(zhǔn)備到Register芯咧,然后通過總線傳輸牙捉。
1 垃圾回收
閃存每一個(gè)page分類三種狀態(tài)妹田,上圖右側(cè):有效的叫Live page,無效的叫Dead page鹃共。
垃圾回收的目的就是把無效的D擦掉,所以需要把有效的挪走驶拱,把一整塊擦掉霜浴。如下圖:
已經(jīng)挪走后,直接擦除:
這里存在兩個(gè)開銷:
1 復(fù)制Live數(shù)據(jù)
2 擦除塊
垃圾回收的策略需要考慮:
1 什么時(shí)候啟動(dòng)蓝纲?
2 選擇哪些塊回收阴孟?
3 新的數(shù)據(jù)放哪?
考慮冷熱數(shù)據(jù)税迷,分特性去放數(shù)據(jù)永丝。
2 磨損均衡
動(dòng)態(tài)磨損均衡:分配空間的時(shí)候盡可能把數(shù)據(jù)分配到擦除空間少的地方。
靜態(tài)磨損均衡:對現(xiàn)有數(shù)據(jù)進(jìn)行轉(zhuǎn)移箭养。
3 FTL - 地址映射
維持一個(gè)Page頁表慕嚷,虛擬地址到物理地址的轉(zhuǎn)換
類似于查表的過程。數(shù)據(jù)為LPN毕泌,通過查表然后得出物理地址喝检。