国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

政府門戶網(wǎng)站建設(shè)百度廣告銷售

政府門戶網(wǎng)站建設(shè),百度廣告銷售,深圳市專業(yè)做網(wǎng)站,網(wǎng)站建設(shè)服務(wù)哪個便宜版權(quán)聲明: 本文禁止轉(zhuǎn)載機(jī)械硬盤的存儲系統(tǒng)由于內(nèi)部結(jié)構(gòu),其IO訪問性能無法進(jìn)一步提高,CPU與存儲器之間的性能差距逐漸擴(kuò)大。以Nand Flash為存儲介質(zhì)的固態(tài)硬盤技術(shù)的發(fā)展,性能瓶頸得到緩解。1. 什么是SSD固態(tài)硬盤(Solid State Drives&#xf…

版權(quán)聲明: 本文禁止轉(zhuǎn)載

機(jī)械硬盤的存儲系統(tǒng)由于內(nèi)部結(jié)構(gòu),其IO訪問性能無法進(jìn)一步提高,CPU與存儲器之間的性能差距逐漸擴(kuò)大。以Nand Flash為存儲介質(zhì)的固態(tài)硬盤技術(shù)的發(fā)展,性能瓶頸得到緩解。

1. 什么是SSD

固態(tài)硬盤(Solid State Drives),用固態(tài)電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元(FLASH芯片、DRAM芯片)組成。固態(tài)硬盤被廣泛使用于軍事方面、車載系統(tǒng)方面、工程控制技術(shù)方面、視頻監(jiān)控存儲、網(wǎng)絡(luò)監(jiān)控存儲、網(wǎng)絡(luò)終端保存、電力系統(tǒng)方面、醫(yī)療信息存儲方面、航空技術(shù)方面、導(dǎo)航設(shè)備存儲等重要領(lǐng)域。

2. SSD的存儲介質(zhì)分類

固態(tài)硬盤(SSD)的存儲介質(zhì)分為兩種,一種是采用閃存(FLASH芯片)作為存儲介質(zhì),另外一種是采用DRAM作為存儲介質(zhì)。

基于閃存類:基于閃存的固態(tài)硬盤(IDEFLASH DISK、Serial ATA Flash Disk),采用FLASH芯片作為存儲介質(zhì),這也是通常所說的SSD。它的外觀可以被制作成多種模樣,例如:筆記本硬盤、微硬盤、存儲卡、U盤等樣式。這種SSD固態(tài)硬盤最大的優(yōu)點就是可以移動,而且數(shù)據(jù)保護(hù)不受電源控制,能適應(yīng)于各種環(huán)境,適合于個人用戶使用。

基于DRAM類:基于DRAM的固態(tài)硬盤,采用DRAM作為存儲介質(zhì),應(yīng)用范圍較窄。它仿效傳統(tǒng)硬盤的設(shè)計,可被絕大部分操作系統(tǒng)的文件系統(tǒng)工具進(jìn)行卷設(shè)置和管理,并提供工業(yè)標(biāo)準(zhǔn)的PCI和FC接口用于連接主機(jī)或者服務(wù)器。應(yīng)用方式可分為SSD硬盤和SSD硬盤陣列兩種。它是一種高性能的存儲器,而且使用壽命很長,美中不足的是需要獨立電源來保護(hù)數(shù)據(jù)安全。DRAM固態(tài)硬盤屬于比較非主流的設(shè)備。

基于3D XPoint類:在閃存與DRAM之間開創(chuàng)新市場的新一代內(nèi)存技術(shù), 3D XPoint是一種新的非易失性存儲技術(shù),也就是能像NAND閃存那樣斷電保持?jǐn)?shù)據(jù),但同時又有著極高的速度和性能,能夠達(dá)到DRAM內(nèi)存級別,因此它既能做成硬盤,也能做成內(nèi)存,而且單位容量成本介于二者之間,堪稱夢幻黑科技。3D XPoint的首款產(chǎn)品將是“Optane”傲騰品牌的固態(tài)硬盤。只有少數(shù)高端系列有, 而且已經(jīng)放棄了3D XPoint技術(shù),可惜了這么強(qiáng)大的技術(shù),性能秒殺各種NAND SSD,最終輸給了市場, 曇花一現(xiàn)。

3. SSD的結(jié)構(gòu)

SSD主要由主控制器芯片,閃存芯片,緩存芯片(可選),以及跟HOST接口(諸如SATA,SAS, PCIe等)組成。SSD作為數(shù)據(jù)存儲設(shè)備, 其實是一種典型的(System on Chip) 單機(jī)系統(tǒng), 有主控CPU、 RAM、 操作加速器、 總線、 數(shù)據(jù)編碼譯碼等模塊(見圖2-1) , 操作對象為協(xié)議、 數(shù)據(jù)命令、 介質(zhì), 操作目的是寫入和讀取用戶數(shù)據(jù)。[7]

圖片來源 [11]

3.1 主控制器

SSD控制器是固態(tài)硬盤的主要控制芯片, 負(fù)責(zé)指揮、運算和協(xié)調(diào)SSD設(shè)備, FTL (Flash Translation Layer) 算法的運行[8]。目前主流的SSD主控架構(gòu)如下圖:

主要有三大部分組成:與Host對接的界面(Host interface, ) 稱為前端, 閃存轉(zhuǎn)換層FTL,稱為中端以及閃存對接界面(Flash interface),稱為后端

每個 SSD 都有一個控制器(controller)將存儲單元連接到電腦,主控器可以通過若干個通道(channel)并行操作多塊FLASH顆粒,類似RAID0,大大提高底層的帶寬??刂破魇且粋€執(zhí)行固件(firmware)代碼的嵌入式處理器。主要功能如下:

Read

Write

Trim

錯誤檢查和糾正(ECC)

Address Translation——映射管理

Garbage Collection——垃圾回收

Wear Leveling——磨損平衡

Power off Recovery —— 掉電恢復(fù)

Error Handler——壞塊管理

SLC Cache

Read Disturb & Data Retention

Over Privision——預(yù)留空間

Latecncy 平滑管理

WAF寫入放大

緩存控制

加密

壓縮

重復(fù)數(shù)據(jù)去冗

HMB(host memory buffer) 管理

固件升級

Self Test

3.2 存儲單元

盡管有某些廠商推出了基于更高速的 DRAM 內(nèi)存的產(chǎn)品,但 NAND 閃存依然最常見,占據(jù)著絕對主導(dǎo)地位。一般采用 TLC(multi-level cell) 甚至 QLC(Triple Level Cell) 閃存,其特點是容量大、速度慢、可靠性低、存取次數(shù)低、價格也低。高端產(chǎn)品一般采用 SLC(single-level cell) 閃存,其特點是技術(shù)成熟、容量小、速度快、可靠性高、存取次數(shù)高、價格也高。但是事實上,取決于不同產(chǎn)品的內(nèi)部架構(gòu)設(shè)計,速度和可靠性的差別也可以通過各種技術(shù)加以彌補甚至反轉(zhuǎn)。

閃存內(nèi)部結(jié)構(gòu)

一個Die又可以分為多個Plane,而每個Plane又包含多個多個Block,每個Block又分為多個Page。以Samsung 4GB Flash為例,共享8位I/0數(shù)據(jù)總線和一些控制信號線。每個Die由4個Plane組成,每個Plane包含2048個Block,每個Block又包含64個4KB大小的Page。我們順序?qū)懭?個邏輯頁,分別寫到不同的plane上,這樣寫的目的是增加底層的并行性,提升寫入性能。

參考:[121114961]

3.3 閃存的分類

NAND FLASH 從 SLC -> MLC -> TLC -> QLC,每個單元存儲的比特數(shù)增加,這樣晶圓的存儲密度會成倍提高,但對應(yīng)的整卡可寫入/擦除次數(shù)(P/E Cycle) 也降低(意味著壽命也越短),讀寫性能會越差。最重要的單位GB的成本會更低,芯片的成本是和面積直接相關(guān)的。面積越小,一個晶圓切出的Die(片)數(shù)目就更多,單Die的成本就降下來了。[12]

各大原廠孜孜不倦地提高每個單元的比特數(shù),目的就是為了減少成本,成本才是王道!

4. Host訪問SSD的原理

固態(tài)硬盤的存儲器件采用的是閃存,具有以下幾個特點:

(1)讀寫基本單位是以頁(Page)為單位,擦除是以塊(Block)為單位。

(2)每個物理塊,必須先擦除,才能夠?qū)懭霐?shù)據(jù)。

基于這些問題,在固態(tài)硬盤中引入了閃存轉(zhuǎn)換層映射表。

Host是通過LBA(Logical BlockAddress,邏輯地址塊)訪問SSD的,每個LBA代表著一個Sector(一般為512B大小),文件系統(tǒng)一般以4KB為單位訪問SSD,我們把Host訪問SSD的基本單元叫用戶頁(Host Page)。而在SSD內(nèi)部,SSD主控與Flash之間是Flash Page為基本單元訪問Flash的,我們稱Flash Page為物理頁(Physical Page)。Host每寫入一個Host Page, SSD主控會找一個Physical Page把Host數(shù)據(jù)寫入,SSD內(nèi)部同時記錄了這樣一條映射(Map)。有了這樣一個映射關(guān)系后,下次Host需要讀某個Host Page 時,SSD就知道從Flash的哪個位置把數(shù)據(jù)讀取上來。

SSD內(nèi)部維護(hù)了一張映射表(Map Table),Host每寫入一個Host Page,就會產(chǎn)生一個新的映射關(guān)系,這個映射關(guān)系會加入(第一次寫)或者更改(覆蓋寫)Map Table;當(dāng)讀取某個Host Page時, SSD首先查找Map Table中該Host Page對應(yīng)的Physical Page,然后再訪問Flash讀取相應(yīng)的Host數(shù)據(jù)。

大多數(shù)SSD,我們可以看到上面都有板載DRAM,其主要作用就是用來存儲這張映射表。也有例外,比如基于Sandforce主控的SSD,它并不支持板載DRAM,那么它的映射表存在哪里呢?SSD工作時,它的絕大部分映射是存儲在FLASH里面,還有一部分存儲在片上RAM上。當(dāng)Host需要讀取一筆數(shù)據(jù)時,對有板載DRAM的SSD來說,只要查找DRAM當(dāng)中的映射表,獲取到物理地址后訪問Flash從而得到Host數(shù)據(jù).這期間只需要訪問一次FlashH;而對Sandforce的SSD來說,它首先看看該Host Page對應(yīng)的映射關(guān)系是否在RAM內(nèi),如果在,那好辦,直接根據(jù)映射關(guān)系讀取FLASH;如果該映射關(guān)系不在RAM內(nèi),那么它首先需要把映射關(guān)系從FLASH里面讀取出來,然后再根據(jù)這個映射關(guān)系讀取Host數(shù)據(jù),這就意味著相比有DRAM的SSD,它需要讀取兩次FLASH才能把HOST數(shù)據(jù)讀取出來,底層有效帶寬減半。對HOST隨機(jī)讀來說,由于片上RAM有限,映射關(guān)系Cache命中(映射關(guān)系在片上RAM)的概率很小,所以對它來說,基本每次讀都需要訪問兩次FLASH,所以我們可以看到基于Sandforce主控的SSD隨機(jī)讀取性能是不太理想的。

5. SSD相關(guān)概念和技術(shù)

5.1 多Plane操作

多 Plane NAND 是一種能夠有效提升性能的設(shè)計。例如,一個晶片內(nèi)部分成了4個 Plane,想象我們在操作時,也可以進(jìn)行多Plane并行操作來提升性能,

不同的Die 是獨立工作的,可以并行操作。

多個SSD Channel 可以并行操作。

5.2 多Die交錯操作

交錯操作可以成倍提升NAND的傳輸率,因為NAND顆粒封裝時候可能有多Die、多Plane(每個plane都有4KB寄存器),不同Die操作時候可以交叉操作(第一個plane接到指令后,在操作的同時第二個指令已經(jīng)發(fā)送給了第二個Die,以此類推),達(dá)到接近雙倍甚至4倍的傳輸能力(看閃存顆粒支持度)。

5.3 FTL

操作系統(tǒng)通常將硬盤理解為一連串 512B 大小的扇區(qū)[注意:操作系統(tǒng)對磁盤進(jìn)行一次讀或?qū)懙淖钚挝徊⒉皇巧葏^(qū),而是文件系統(tǒng)的塊,一般為 512B/1KB/4KB 之一(也可能更大),其具體大小在格式化時設(shè)定],但是閃存的讀寫單位是 4KB 或 8KB 大小的頁,而且閃存的擦除(又叫編程)操作是按照 128 或 256 頁大小的塊來操作的。更要命的是寫入數(shù)據(jù)前必須要先擦除整個塊,而不能直接覆蓋。這完全不符合現(xiàn)有的、針對傳統(tǒng)硬盤設(shè)計的文件系統(tǒng)的操作方式,很明顯,我們需要更高級、專門針對 SSD 設(shè)計的文件系統(tǒng)來適應(yīng)這種操作方式。但遺憾的是,目前還沒有這樣的文件系統(tǒng)。為了兼容現(xiàn)有的文件系統(tǒng),就出現(xiàn)了 FTL(閃存轉(zhuǎn)換層),它位于文件系統(tǒng)和物理介質(zhì)之間,把閃存的操作習(xí)慣虛擬成以傳統(tǒng)硬盤的 512B 扇區(qū)進(jìn)行操作。這樣,操作系統(tǒng)就可以按照傳統(tǒng)的扇區(qū)方式操作,而不用擔(dān)心之前說的擦除/讀/寫問題。一切邏輯到物理的轉(zhuǎn)換,全部由 FTL 層包了。

FTL 算法,本質(zhì)上就是一種邏輯到物理的映射,因此,當(dāng)文件系統(tǒng)發(fā)送指令說要寫入或者更新一個特定的邏輯扇區(qū)時,FTL 實際上寫入了另一個空閑物理頁,并更新映射表,再把這個頁上包含的舊數(shù)據(jù)標(biāo)記為無效(更新后的數(shù)據(jù)已經(jīng)寫入新地址了,舊地址的數(shù)據(jù)自然就無效了)。

5.4 磨損平衡(Wear leveling)

簡單說來,磨損平衡是確保閃存的每個塊被寫入的次數(shù)相等的一種機(jī)制。

如果系統(tǒng)中的所有塊都定期更新,這就沒有問題,因為當(dāng)頁面被標(biāo)記為無效然后被回收時,磨損均衡幾乎會自然發(fā)生。通常情況下,在 NAND 塊里的數(shù)據(jù)更新頻度是不同的。具體來說:如果我們有一些冷塊,即數(shù)據(jù)永遠(yuǎn)不會改變的位置,那么我們必須采取措施手動重新定位該數(shù)據(jù),否則這些塊將永遠(yuǎn)不會磨損……磨損均衡需要將數(shù)據(jù)搬移到新的塊,這意味著我們也在增加寫入工作量,這最終意味著增加磨損。

因此,簡而言之,我們對均勻磨損均衡的要求越高,我們造成的磨損就越多。但不夠積極可能會導(dǎo)致熱點和冷點,因為磨損變得更加不均勻。一如既往,這是一個找到正確平衡的問題?;蛘?#xff0c;如果您愿意,找到寫入平衡。

磨損平衡算法分靜態(tài)和動態(tài)。動態(tài)磨損算法是基本的磨損算法:只有用戶在使用中更新的文件占用的物理頁地址被磨損平衡了。而靜態(tài)磨損算法是更高級的磨損算法:在動態(tài)磨損算法的基礎(chǔ)上,增加了對于那些不常更新的文件占用的物理地址進(jìn)行磨損平衡,這才算是真正的全盤磨損平衡。簡單點說來,動態(tài)算法就是每次都挑最年輕的 NAND 塊來用,老的 NAND 塊盡量不用。靜態(tài)算法就是把長期沒有修改的老數(shù)據(jù)從一個年輕 NAND 塊里面搬出來,重新找個最老的 NAND 塊放著,這樣年輕的 NAND 塊就能再度進(jìn)入經(jīng)常使用區(qū)。

盡管磨損均衡的目的是避免數(shù)據(jù)重復(fù)在某個空間寫入,以保證各個存儲區(qū)域內(nèi)磨損程度基本一致,從而達(dá)到延長固態(tài)硬盤的目的。但是,它對固態(tài)硬盤的性能有不利影響,并且會增加磨損。

5.5 垃圾回收(Garbagecollection)

當(dāng)整個SSD寫滿后,從用戶角度來看,如果想寫入新的數(shù)據(jù),則必須刪除一些數(shù)據(jù),然后騰出空間再寫。用戶在刪除和寫入數(shù)據(jù)的過程中,會導(dǎo)致一些Block里面的數(shù)據(jù)變無效或者變老。Block中的數(shù)據(jù)變老或者無效,是指沒有任何映射關(guān)系指向它們,用戶不會訪問到這些FLASH空間,它們被新的映射關(guān)系所取代。比如有一個Host Page A,開始它存儲在FLASH空間的X,映射關(guān)系為A->X。后來,HOST重寫了該Host Page,由于FLASH不能覆蓋寫,SSD內(nèi)部必須尋找一個沒有寫過的位置寫入新的數(shù)據(jù),假設(shè)為Y,這個時候新的映射關(guān)系建立:A->Y,之前的映射關(guān)系解除,位置X上的數(shù)據(jù)變老失效,我們把這些數(shù)據(jù)叫垃圾數(shù)據(jù)。隨著HOST的持續(xù)寫入,FLASH存儲空間慢慢變小,直到耗盡。如果不及時清除這些垃圾數(shù)據(jù),HOST就無法寫入。SSD內(nèi)部都有垃圾回收機(jī)制,它的基本原理是把幾個Block中的有效數(shù)據(jù)(非垃圾數(shù)據(jù))集中搬到一個新的Block上面去,然后再把這幾個Block擦除掉,這樣就產(chǎn)生新的可用Block了.

另一方面,由前面的磨損平衡機(jī)制知道,磨損平衡的執(zhí)行需要有“空白塊”來寫入更新后的數(shù)據(jù)。當(dāng)可以直接寫入數(shù)據(jù)的“備用空白塊”數(shù)量低于一個閥值后,SSD主控制器就會把那些包含無效數(shù)據(jù)的塊里的所有有效數(shù)據(jù)合并起來寫到新的“空白塊”中,然后擦除這個塊以增加“備用空白塊”的數(shù)量。

有三種垃圾回收策略:

閑置垃圾回收:很明顯在進(jìn)行垃圾回收時候會消耗大量的主控處理能力和帶寬造成處理用戶請求的性能下降,SSD 主控制器可以設(shè)置在系統(tǒng)閑置時候做“預(yù)先”垃圾回收(提前做垃圾回收操作),保證一定數(shù)量的"備用空白塊",讓 SSD 在運行時候能夠保持較高的性能。閑置垃圾回收的缺點是會增加額外的"寫入放大",因為你剛剛垃圾回收的"有效數(shù)據(jù)",也許馬上就會被更新后的數(shù)據(jù)替代而變成"無效數(shù)據(jù)",這樣就造成之前的垃圾回收做無用功了。

被動垃圾回收:每個 SSD 都支持的技術(shù),但是對主控制器的性能提出了很高的要求,適合在服務(wù)器里用到,SandForce 的主控就屬這類。在垃圾回收操作消耗帶寬和處理能力的同時處理用戶操作數(shù)據(jù),如果沒有足夠強(qiáng)勁的主控制器性能則會造成明顯的速度下降。這就是為啥很多 SSD 在全盤寫滿一次后會出現(xiàn)性能下降的道理,因為要想繼續(xù)寫入數(shù)據(jù)就必須要邊垃圾回收邊做寫入。

手動垃圾回收:用戶自己手動選擇合適的時機(jī)運行垃圾回收軟件,執(zhí)行垃圾回收操作。

可以想象,如果系統(tǒng)經(jīng)常進(jìn)行垃圾回收處理,頻繁的將一些區(qū)塊進(jìn)行擦除操作,那么 SSD 的壽命反而也會進(jìn)一步下降。由此把握這個垃圾回收的頻繁程度,同時確保 SSD 中的閃存芯片擁有更高的使用壽命,這確實需要找到一個完美的平衡點。所以,SSD 必須要支持 Trim 技術(shù),不然 GC 就顯不出他的優(yōu)勢了。

5.6 Trim

Trim 是一個 ATA 指令,當(dāng)操作系統(tǒng)刪除文件或格式化的時候,由操作系統(tǒng)同時把這個文件地址發(fā)送給 SSD 的主控制器,讓主控制器知道這個地址的數(shù)據(jù)無效了。當(dāng)你刪除一個文件的時候,文件系統(tǒng)其實并不會真正去刪除它,而只是把這個文件地址標(biāo)記為“已刪除”,可以被再次使用,這意味著這個文件占的地址已經(jīng)是“無效”的了。這就會帶來一個問題,硬盤并不知道操作系統(tǒng)把這個地址標(biāo)記為“已刪除”了,機(jī)械盤的話無所謂,因為可以直接在這個地址上重新覆蓋寫入,但是到了 SSD 上問題就來了。NAND 需要先擦除才能再次寫入數(shù)據(jù),要得到空閑的 NAND 空間,SSD 必須復(fù)制所有的有效頁到新的空閑塊里,并擦除舊塊(垃圾回收)。如果沒有 Trim 指令,意味著 SSD 主控制器不知道這個頁是“無效”的,除非再次被操作系統(tǒng)要求覆蓋上去。

Trim 只是條指令,讓操作系統(tǒng)告訴 SSD 主控制器這個頁已經(jīng)“無效”了。Trim 會減少寫入放大,因為主控制器不需要復(fù)制“無效”的頁(沒 Trim 就是“有效”的)到空白塊里,這同時代表復(fù)制的“有效”頁變少了,垃圾回收的效率和 SSD 性能也提升了。Trim 能大量減少偽有效頁的數(shù)量,它能大大提升垃圾回收的效率。目前,支持 Trim 需要三個要素,

(1)系統(tǒng):操作系統(tǒng)必須會發(fā)送 Trim 指令,Win7, Win2008R2 , Linux-2.6.33 以上。

(2)固件: SSD 的廠商在固件里要放有 Trim 算法,也就是 SSD 的主控制器必須認(rèn)識 Trim 指令。

(3)驅(qū)動: 控制器驅(qū)動必須要支持 Trim 指令的傳輸,也就是能夠?qū)?Trim 指令傳輸?shù)?SSD 控制器。MS 的驅(qū)動,Intel 的 AHCI 驅(qū)動目前支持。別的要看之后的更新了。

目前,RAID 陣列里的盤明確不支持 TRIM,不過 RAID 陣列支持 GC。

5.7 預(yù)留空間(Over-provisioning)

預(yù)留空間是指用戶不可操作的容量,為實際物理閃存容量減去用戶可用容量。這塊區(qū)域一般被用來做優(yōu)化,包括磨損均衡,GC和壞塊映射。

第一層為固定的7.37%,這個數(shù)字是如何得出的哪?我們知道機(jī)械硬盤和 SSD 的廠商容量是這樣算的,1GB 是1,000,000,000字節(jié)(10的9 次方),但是閃存的實際容量是每 GB=1,073,741,824,(2的30次方) ,兩者相差7.37%。所以說假設(shè)1塊 128GB 的 SSD,用戶得到的容量是 128,000,000,000 字節(jié),多出來的那個 7.37% 就被主控固件用做OP了。

第二層來自制造商的設(shè)置,通常為 0%,7%,28% 等,打個比方,對于 128G 顆粒的 SandForce 主控 SSD,市場上會有 120G 和 100G 兩種型號賣,這個取決于廠商的固件設(shè)置,這個容量不包括之前的第一層 7.37% 。

第三層是用戶在日常使用中可以分配的預(yù)留空間,用戶可以在分區(qū)的時候,不分到完全的 SSD 容量來達(dá)到這個目的。不過需要注意的是,需要先做安全擦除(Secure Erase),以保證此空間確實沒有被使用過。

預(yù)留空間的具體作用:

(1)垃圾回收:就是要把數(shù)據(jù)搬來搬去,那就需要始終有空的地方來放搬的數(shù)據(jù)??盏脑蕉?#xff0c;搬的越快,多多益善,有些SSD為了更快,還會再拿走一些用戶的容量。

(2)映射表等內(nèi)部數(shù)據(jù)保存:SSD里面有一個巨大的映射表,把用戶地址轉(zhuǎn)成物理Flash顆粒地址,需要保存,以防掉電丟失。這個大概是千分之三的容量。

(3)壞塊替換:寫得多了,壞塊會逐漸增加,需要用好的頂替。隨著Flash的制程從32nm不斷變小,變到現(xiàn)在的14nm,Flash質(zhì)量越來越差,壞塊越來越多,這部分可能會到3%甚至更多。

5.8 寫入放大(Write amplification)

因為閃存必須先擦除(也叫編程)才能寫入,在執(zhí)行這些操作的時候,移動或覆蓋用戶數(shù)據(jù)和元數(shù)據(jù)(metadata)不止一次。這些額外的操作,不但增加了寫入數(shù)據(jù)量,減少了SSD的使用壽命,而且還吃光了閃存的帶寬,間接地影響了隨機(jī)寫入性能。這種效應(yīng)就叫寫入放大(Write amplification)。一個主控的好壞主要體現(xiàn)在寫入放大上。

比如我要寫入一個 4KB 的數(shù)據(jù),最壞的情況是,一個塊里已經(jīng)沒有干凈空間了,但是有無效數(shù)據(jù)可以擦除,所以主控就把所有的數(shù)據(jù)讀到緩存,擦除塊,從緩存里更新整個塊的數(shù)據(jù),再把新數(shù)據(jù)寫回去。這個操作帶來的寫入放大就是:我實際寫4K的數(shù)據(jù),造成了整個塊(1024KB)的寫入操作,那就是256倍放大。同時帶來了原本只需要簡單的寫4KB的操作變成閃存讀取(1024KB),緩存改(4KB),閃存擦(1024KB),閃存寫(1024KB),造成了延遲大大增加,速度急劇下降也就是自然的事了。所以,寫入放大是影響 SSD 隨機(jī)寫入性能和壽命的關(guān)鍵因素。

用100%隨機(jī)4KB來寫入 SSD,對于目前的大多數(shù) SSD 主控而言,在最糟糕的情況下,寫入放大的實際值可能會達(dá)到或超過20倍。當(dāng)然,用戶也可以設(shè)置一定的預(yù)留空間來減少寫入放大,假設(shè)你有個 128G 的 SSD,你只分了 64G 的區(qū)使用,那么最壞情況下的寫入放大就能減少約3倍。

許多因素影響 SSD 的寫入放大。下面列出了主要因素,以及它們?nèi)绾斡绊憣懭敕糯蟆?/p>

(1)垃圾回收雖然增加了寫入放大(被動垃圾回收不影響,閑置垃圾回收影響),但是速度有提升。

(2)預(yù)留空間可以減少寫入放大,預(yù)留空間越大,寫入放大越低。

(3)開啟 TRIM 指令后可以減少寫入放大

(4)用戶使用中沒有用到的空間越大,寫入放大越低(需要有 Trim 支持)。

(5)持續(xù)寫入可以減少寫入放大。理論上來說,持續(xù)寫入的寫入放大為1,但是某些因素還是會影響這個數(shù)值。

(6)隨機(jī)寫入將會大大提升寫入放大,因為會寫入很多非連續(xù)的 LBA。

(7)磨損平衡機(jī)制直接提高了寫入放大

5.9 ECC

ECC的全稱是Error Checking and Correction,是一種用于Nand的差錯檢測和修正算法。由于NAND Flash的工藝不能保證NAND在其生命周期中保持性能的可靠,因此,在NAND的生產(chǎn)中及使用過程中會產(chǎn)生壞塊。為了檢測數(shù)據(jù)的可靠性,在應(yīng)用NAND Flash的系統(tǒng)中一般都會采用一定的壞區(qū)管理機(jī)制,而管理壞區(qū)的前提是能比較可靠的進(jìn)行壞區(qū)檢測。如果操作時序和電路穩(wěn)定性不存在問題的話,NAND Flash出錯的時候一般不會造成整個Block或是Page不能讀取或是全部出錯,而是整個Page中只有一個或幾個bit出錯,這時候ECC就能發(fā)揮作用了。不同顆粒有不同的基本ECC要求,不同主控制器支持的ECC能力也不同,理論上說主控越強(qiáng)ECC能力越強(qiáng)。

參考:

[1] SSD(固態(tài)硬盤)簡介 http://www.jinbuguo.com/storage/ssd_intro.html

[2] SSD背后的秘密:SSD基本工作原理 http://www.ssdfans.com/?p=131

[3] 固態(tài)硬盤(SSD)原理及相關(guān)介紹 https://blog.csdn.net/cighao/article/details/48135137

[4] [SSD固態(tài)硬盤技術(shù) 15] FTL映射表的神秘面紗 https://blog.csdn.net/vagrant0407/article/details/128983639

[5] [SSD固態(tài)硬盤技術(shù) 9] FTL詳解 https://blog.csdn.net/vagrant0407/article/details/128978780

[6] 王發(fā)寬.基于NADA閃存的混合固態(tài)硬盤設(shè)計研究[D].杭州:杭州電子科技大學(xué),2017.

[7] SSD Fans.深入淺出SSD[M].機(jī)械工業(yè)出版社,2018.

[8] 李想.基于軟件架構(gòu)的固態(tài)硬盤FTL設(shè)計[D].武漢:華中科技大學(xué),2015.

[9] 趙鵬,白石.基于隨機(jī)游走的大容量固態(tài)硬盤磨損均衡算法[J].計算機(jī)學(xué)報,2012,35(5):972-978.

[10] 周懿,戴紫彬,面向Nand Flash自適應(yīng)糾錯碼方案研究與設(shè)計[J].計算機(jī)工程與設(shè)計,2017,38(6):1681-1685.

[11] 固態(tài)硬盤存儲技術(shù)的分析https://blog.csdn.net/weixin_46637351/article/details/126013567

[12] NOR Flash 和 NAND Flash 閃存詳解https://blog.csdn.net/vagrant0407/article/details/127813278

http://aloenet.com.cn/news/40700.html

相關(guān)文章:

  • 郴州網(wǎng)站建設(shè)公司簡介網(wǎng)址百度刷排名
  • 織夢個人網(wǎng)站模版網(wǎng)絡(luò)營銷的效果是什么
  • 微商城設(shè)計網(wǎng)站建設(shè)沈陽專業(yè)seo排名優(yōu)化公司
  • 平臺門戶網(wǎng)站建設(shè)站外推廣渠道有哪些
  • 中國建設(shè)網(wǎng)站齊齊哈爾市中國唯一沒有疫情的地方
  • 性用品網(wǎng)商做的最好的網(wǎng)站下列哪些店鋪適合交換友情鏈接
  • 兩性做受技巧視頻網(wǎng)站廣告聯(lián)盟
  • wordpress多重標(biāo)簽連云港seo
  • 建設(shè)工程168類似的網(wǎng)站百度下載免費
  • 免費的ppt網(wǎng)站推薦北京優(yōu)化seo排名
  • 2019建設(shè)銀行招聘網(wǎng)站sem競價推廣公司
  • 做視頻網(wǎng)站要注意什么電工培訓(xùn)課程
  • 做外貿(mào)需掌握的網(wǎng)站杭州seo博客
  • 設(shè)計本官方網(wǎng)站廣告廣告關(guān)鍵詞查詢
  • 成都58手機(jī)微信網(wǎng)站建設(shè)名錄青島快速排名
  • 朝陽網(wǎng)絡(luò) 網(wǎng)站建設(shè)痘痘如何去除效果好
  • 海爾商務(wù)網(wǎng)站建設(shè)企業(yè)網(wǎng)站是什么
  • wordpress seo插件中文版廣州網(wǎng)絡(luò)推廣seo
  • 南山做網(wǎng)站公司seo外鏈工具下載
  • php 網(wǎng)站 模板百度一下百度搜索百度
  • 上海設(shè)計網(wǎng)站開發(fā)日本疫情最新數(shù)據(jù)
  • 購物網(wǎng)站難做嗎google seo怎么優(yōu)化
  • 公司網(wǎng)站設(shè)計需要什么百度優(yōu)化點擊軟件
  • 怎么做網(wǎng)站的跳轉(zhuǎn)seo查詢外鏈
  • 在線制作logo設(shè)計百度seo排名優(yōu)化系統(tǒng)
  • 求職網(wǎng)站開發(fā)十大職業(yè)資格培訓(xùn)機(jī)構(gòu)
  • 阿里云一鍵安裝wordpress百度快照優(yōu)化培訓(xùn)班
  • 長春公司做網(wǎng)站如何在百度提交自己的網(wǎng)站
  • 學(xué)校門戶網(wǎng)站建設(shè)工作自己搭建一個網(wǎng)站
  • 企業(yè)郵箱注冊申請需要多少錢鄭州網(wǎng)站優(yōu)化外包