自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

談一談閃存存在的問題

存儲(chǔ) 存儲(chǔ)軟件
閃存塊(Block)具有一定的壽命,不是長生不老的。前面提到,當(dāng)一個(gè)閃存塊接近或者超出其最大擦寫次數(shù)時(shí),可能導(dǎo)致存儲(chǔ)單元的永久性損傷,不能再使用。隨著閃存工藝不斷向前,這個(gè)擦寫次數(shù)也變得越來越小。

 談?wù)勯W存的一些特點(diǎn),或者說它作為存儲(chǔ)介質(zhì)面臨的挑戰(zhàn)。

[[240891]]

閃存塊(Block)具有一定的壽命,不是長生不老的。前面提到,當(dāng)一個(gè)閃存塊接近或者超出其***擦寫次數(shù)時(shí),可能導(dǎo)致存儲(chǔ)單元的***性損傷,不能再使用。隨著閃存工藝不斷向前,這個(gè)擦寫次數(shù)也變得越來越小。

圖1-1 閃存損壞狀態(tài)

在閃存當(dāng)中的存儲(chǔ)單元中,先天就有一些是壞掉的,或者說不穩(wěn)定的。并且隨著閃存的不斷使用,壞的存儲(chǔ)單元越來越多。所以,用戶寫入到閃存的數(shù)據(jù),必須有ECC糾錯(cuò)碼保護(hù),這樣即使其中的一些比特發(fā)生反轉(zhuǎn),讀取的時(shí)候也能通過ECC糾正過來。一旦出錯(cuò)的比特超過糾錯(cuò)能力范圍,數(shù)據(jù)就丟失,對這樣的閃存塊,我們應(yīng)該廢棄不再使用。

閃存先天有壞塊,也就是說有出廠壞塊。并且,用戶在使用的時(shí)候,也會(huì)新添壞塊,所以用戶在使用閃存的時(shí)候,必須有壞塊管理機(jī)制。

第二個(gè)問題是讀干擾(Read Disturb)。什么意思?從閃存讀取原理來看,當(dāng)你讀取一個(gè)閃存頁(Page)的時(shí)候,閃存塊當(dāng)中未被選取的閃存頁控制極都會(huì)加一個(gè)正電壓,以保證未被選中的MOS管是導(dǎo)通的。這樣問題就來了,頻繁的在一個(gè)MOS管控制極加正電壓,就可能導(dǎo)致電子被吸進(jìn)浮柵極,形成輕微的寫,從而最終導(dǎo)致比特翻轉(zhuǎn)。但是,這個(gè)不是***性損傷,重新擦除閃存塊還能正常使用。注意的是,讀干擾影響的是同一個(gè)閃存塊中的其它閃存頁,而非讀取的閃存頁本身。

圖1-2 讀干擾原理

第三個(gè)問題是寫干擾(Program Disturb)。除了讀干擾會(huì)導(dǎo)致比特翻轉(zhuǎn),寫干擾也會(huì)導(dǎo)致比特翻轉(zhuǎn)。還是要回到閃存內(nèi)部的寫原理上來。

圖1-3 寫干擾原理

我們寫一個(gè)閃存頁的時(shí)候,數(shù)據(jù)是0和1混合的。由于對擦除過的閃存塊,其所有的存儲(chǔ)單元初始值就是1,所以寫的時(shí)候,只有寫0的時(shí)候才真正需要寫。如圖3-48所示,方框里的單元是寫0,需要寫的,圓圈里的單元的代表寫1,并不需要寫操作。我們這里把方框里的單元稱之為Programmed Cells,圓圈里的單元叫Stressed Cells。寫某個(gè)閃存頁的時(shí)候,我們是在其 WordLine的控制極加一個(gè)正電壓(圖3-48是20V)。對于Programmed Cells所在的String,它是接地的;不需要寫的單元所在的String,它是接一正電壓(圖3-48為10V)。這樣最終產(chǎn)生的后果是,Stressed Cell也會(huì)被輕微寫。與讀干擾不同的是,寫干擾影響的不僅是同一個(gè)閃存塊當(dāng)中的其它閃存頁,自身閃存頁也受影響。相同的是,都是不期望的輕微寫導(dǎo)致比特翻轉(zhuǎn),都非***性損傷,經(jīng)擦除后,閃存塊還能再次使用。

第四個(gè)問題是存儲(chǔ)單元之間的耦合影響(Cell-to-Cell interference)。前面提到,浮柵極閃存存儲(chǔ)電荷的是導(dǎo)體,因此存儲(chǔ)單元之間存在耦合電容,導(dǎo)致存儲(chǔ)單元內(nèi)的電荷發(fā)生意外變化,最終導(dǎo)致數(shù)據(jù)讀取錯(cuò)誤;

還有個(gè)問題是電荷泄漏。存儲(chǔ)在閃存存儲(chǔ)單元的電荷,如果長期不使用,會(huì)發(fā)生電荷泄漏。同樣是非***性損傷,擦除后閃存塊還能使用。

上面說的這些,是所有閃存面臨的問題,包括SLC,MLC和TLC,這些問題的處理方法,在后面的FTL章節(jié)會(huì)進(jìn)行介紹。不同商家的閃存,不同制成的閃存,以及2D/3D閃存,還有其特有的問題,用戶在使用時(shí)需要用固件克服或者緩解這些問題。

壽命

我們大家生活在人間,祖祖輩輩和周圍觀察到的生靈告訴我們一個(gè)道理:所有的人和生物都不能像神仙一樣長生不老。其實(shí)不只是生物,所有的存儲(chǔ)器件都是有壽命的。

圖1-4 SLC電壓分布(來源:Inside NAND Flash Memory)

我們再來看圖3-49這張0和1的分布圖,橫軸是電壓,縱軸是存儲(chǔ)單元的數(shù)量。0的區(qū)域表示被寫過的那些單元電壓分布區(qū)間,1的區(qū)域是被擦過的那些單元電壓分布區(qū)間。所以說,如果要正確地讀到數(shù)據(jù),0和1這兩個(gè)區(qū)間要盡量分割清楚,保證它們的主峰有足夠遠(yuǎn)的距離。

除了0和1靠近之外,閾值電壓也不能太偏?;貞浺幌伦x數(shù)據(jù)的原理。

圖1-5 讀操作電壓示例

要讀的單元柵極加 0V電壓,這時(shí)擦過的晶體管閾值電壓是-Vt,導(dǎo)通,溝道有電流,Bitline端的傳感器能夠檢測到,讀到“1”。而經(jīng)過寫的晶體管閾值電壓是+Vt,不導(dǎo)通,溝道電流很小,讀為“0”。隨著擦寫次數(shù)的增加,會(huì)發(fā)生三種故障:

  • 擦過的晶體管閾值電壓變大,從-Vt向0V靠近,這樣讀的時(shí)候溝道電流變小,傳感器檢測不到,讀出錯(cuò)。
  • 寫過的晶體管閾值電壓變小,從+Vt向0V靠近,有可能會(huì)被誤檢測為擦過的狀態(tài)。
  • 寫過的晶體管閾值電壓變大(如圖3-50,>5V,即使控制極加5V電壓,它也是截止的),有可能在其他的單元讀的時(shí)候,把整個(gè)Bitline都給關(guān)了,一個(gè)死蒼蠅害了一鍋粥。

浮柵晶體管對浮柵極下面的絕緣層(Tunnel氧化物)很敏感,該氧化物厚度變薄(制程不斷減小導(dǎo)致的)或者老化(Degradation,擦寫次數(shù)多了)對浮柵極里面的電荷影響大。我們之前介紹了Charge Trap晶體管,其實(shí)隨著擦寫次數(shù)增多,浮柵晶體管的氧化層漸漸老化,產(chǎn)生不少Charge Trap,這些陷阱會(huì)吃掉電子。導(dǎo)致寫之后,進(jìn)入浮柵的電子數(shù)量會(huì)減少,最終的結(jié)局就是0和1兩個(gè)區(qū)間不斷靠近。

如圖,上面是寫后的閾值電壓,下面是擦除后的閾值電壓,很明顯,擦除后的閾值電壓在擦很多次之后顯著變高。所以,一般擦除之后會(huì)做校驗(yàn),方法是把所有的Wordline設(shè)為0V,再去檢測每個(gè)Bitline的電流。如果某個(gè)Bitline電流是0,就意味著有個(gè)單元的擦除閾值電壓接近0V,導(dǎo)致晶體管關(guān)斷。所以這個(gè)閃存塊應(yīng)該標(biāo)為壞塊。

圖1-6 閾值電壓變化圖(來源:Inside NAND Flash Memory)

了解了閃存壽命的原理之后,我們再來看看固態(tài)硬盤設(shè)計(jì)實(shí)踐中怎么解決這個(gè)問題。一般有以下方法:

Wear Leveling:通過磨損平衡算法,讓所有的閃存塊均衡擦寫,避免少數(shù)閃存塊先掛掉,導(dǎo)致固態(tài)硬盤容量下降。

降低寫放大:寫放大越低,固態(tài)硬盤的磨損速度越慢。

用更好的糾錯(cuò)算法:糾錯(cuò)能力更強(qiáng),容許的出錯(cuò)率更高,可以延長使用壽命。談?wù)勯W存的一些特點(diǎn),或者說它作為存儲(chǔ)介質(zhì)面臨的挑戰(zhàn)。

 

責(zé)任編輯:武曉燕 來源: SSDFans
相關(guān)推薦

2021-02-19 09:19:11

消息隊(duì)列場景

2021-07-28 20:12:17

WindowsHeap內(nèi)存

2022-02-14 22:22:30

單元測試Junit5

2014-07-17 10:11:53

Android LAPI谷歌

2022-07-04 10:51:27

數(shù)據(jù)中臺(tái)數(shù)據(jù)倉庫

2021-05-11 08:48:23

React Hooks前端

2021-11-23 09:45:26

架構(gòu)系統(tǒng)技術(shù)

2015-03-27 15:07:55

云計(jì)算IaaS平臺(tái)Docker

2017-11-21 14:32:05

容器持久存儲(chǔ)

2016-07-08 13:33:12

云計(jì)算

2021-03-15 22:42:25

NameNodeDataNode分布式

2011-07-28 09:22:56

Oracle WDPOracle數(shù)據(jù)庫

2019-01-30 10:59:48

IPv6Happy EyebaIPv4

2018-08-28 06:42:06

邊緣計(jì)算SDNMEC

2020-06-19 15:32:56

HashMap面試代碼

2019-11-12 08:40:03

RocketMQ架構(gòu)

2011-07-28 09:49:04

Oracle數(shù)據(jù)庫服務(wù)Oracle實(shí)例

2018-01-11 09:51:34

2018-09-05 15:15:58

來電顯示來電顯示欺詐身份

2020-11-20 10:22:34

代碼規(guī)范設(shè)計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)