聯系我們
4006-759388
瀏覽量:次 來源:華軍科技數據恢復 發布日期:2021-04-18 17:46:48
正確認識SSD
SSD固態硬盤
間單介紹 SSD 先進技術以及SSD的原理,SSD是設計來取代『傳統硬盤』。其構造完全是『積體電路』結構,無任何機件,所以和『硬盤』無關。市面簡稱『固態硬盤』不是很正確。傳統硬盤內有『碟片』是旋轉碟片來讀寫數據,但 SSD 都是『積體電路』無碟片。讀寫原理完全不同。SSD 在 2020年的規格是採用先進的 3D NAND Flash Memory+PCIe 介面,讀寫極速是傳統硬盤的 4倍,同時,SSD 也有『加密功能SSD』目前市面的數據儲存設備(Data Storage)以儲存的材質區分為『磁性介質表面儲存設備』代表性產品是傳統式硬盤,另一是『積體電路的儲存設備』代表性產品是 RAM, ROM, SSD Flash Memory….。
雖然目前硬盤還佔優勢,但因其『物理極限』已無法克服『怕碰撞,易磨損,耗電...』的問題,也無法再開發更『輕,薄,短,小』的硬盤??茖W家因此開始開發以『積體電路的儲存設備』取代硬盤。
而目前最符合『輕薄短小』的儲存設備是 SSD,而SSD 最重要的元件就是『NAND 非揮發性記憶體(Non-volatile Memory Device)』。雖然 NAND 的技術雖然還有『成本高,容量較低,數據儲存年限...問題』但還是已漸漸取代硬盤。
SSD | 傳統硬盤 |
NAND 積體電路 | 精密金屬機件 |
輕薄短小、省電、溫度低 | 體積大、重量重、較耗電、溫度較高 |
讀寫快速 | 讀寫速度相對較慢 |
NAND 寫入時會有耗損 | 理論上磁片讀寫無耗損 |
耐摔耐碰撞 | 怕碰撞 |
晶片燒毀后,無法數據恢復 | 硬盤故障時,數據恢復機會較高 |
SSD的設計是用來取代傳統式硬盤,SSD特性是輕便,讀寫快速,省電.....非常適合『可攜式』使用。為了改善傳統硬盤因機件太精密,萬一碰撞即發生硬盤故障,導致數據無法讀取,必須數據恢復。
下圖是『傳統機件式硬盤』和『SSD』內部結構,可明顯看出差異。
目前的趨勢,Notebook 一律都已改用SSD,符合耐碰撞特性,因為讀寫速度比傳統硬盤快速,連一般 PC 都建議改用 SSD 當開機用磁碟,不必因每次開機時需讀取數量龐大的作業系統檔案而等待的時間,實務上使用者很容易感受速度的差異,幾乎提升 4倍以上。
但提醒重要一點,因 SSD 是用 NAND 快閃記憶體,目前受限于『數據寫入時都對 NAND flash memory 會造成耗損而降低使用壽命』建議不適用于讀寫頻繁的 Server, RAID, NAS。但相信 SSD 廠商一定設法提升技術克服,不久后即會出現『穩定』『可靠』RAID 專用 SSD。
建議目前 RAID, NAS, Server 建議還是安裝 SAS 傳統硬盤,應該是較『保險安全』方式。
混合式硬盤
『混合式硬盤』就是『傳統硬盤+SSD』結合成單一硬盤。有 SSD 讀寫快速的優點,又有傳統硬盤的高容量可使用。等于是 1臺當 2臺用,規格是只有一個 SATA 介面。SSD 磁碟可安裝作業系統當開機用磁碟,傳統硬盤則當儲存數據用。
SSD 目前 2020 年規格種類共有3種,Interface 共2種:
1. 和傳統硬盤外觀相同的 SSD 2.5”,也是用 SATA Interface 可以輕易取代傳統硬盤。
2. 規格尺寸 - m2_2280,也是用 SATA 介面。
3. 規格尺寸 - m2_2280 介面 - PCIe G3 1x4 / NVMe。
上述照片得知 SSD 規格分 3種,但介面( Interface)分2種 SATA & PCIe/NVMe。
SATA 是傳統硬盤用,無法發揮 NAND 極速特性,屬舊型 Interface。
PCIe/NVMe 是專為 SSD 內的 NAND 開發的新協定,可以發揮 NAND 的極速。
多年前 SSD 設計時的用意是為了取代傳統硬盤,為了改善傳統式硬盤『怕碰撞,怕摔』的問題,只先將內部精密機件改用成『積體電路 NAND Flash Memory』當儲存數據元件,但當時 SATA 是傳統硬盤的傳輸介面 Interface 的標準。
為了可以讓市場輕易接受而改用 SSD,所以才繼續延用SATA。但卻因此阻礙了 NAND Flash Memory 讀寫快速的特性。多年后 SSD 廠商才開始推廣專為 NAND 平行運算 (Internal Parallelism) 功能開發出的傳輸協定 『NVMe』,而且是可以採用現有的 PCIe 介面,其極速表現比 SATA 高 4倍。
SATA SSD
這是最早出現市面的 SSD,當時是為了取代暢銷的傳統硬盤而設計,外型就是和一般 2.5”傳統硬盤完全相同,也是採用 SATA 介面,安裝和傳統硬盤相同,毫無困難,可以輕易取代。
目前市面規格 SATA 6.0Gb/s, 讀取時間 560 MB/s ,寫入時間 510 MB/s。
M.2 PCIe (PCI Express) / NVMe
這是搭配目前最高速的 PCIe 介面,NVMe 也是較新 SSD規格,如是舊款主機板可能不支援,但近期新款主機板都已有支援,據說近年的 Notebook 都搭配 PCIe / NVMe 的 SSD。
目前市面規格 3D NAND,讀取時間 3,400 MB/s,寫入時間 3,000 MB/s。
M.2 SATA
這是比 PCIe / NVMe 更早期介面,適用較舊款主機板,
目前市面規格 M.2 SATA,讀取時間 560MB/s, 寫入時間 510MB/s。
據說一般客戶選購 SSD 時,較重視讀寫速度,下列為一簡單比較表。
2020年規格 | M.2 PCIe / NVMe | M.2 SATA | SATA |
Sequential Read | 3,400 MB/s | 560 MB/s | 560 MB/s |
Sequential Write | 3,000 MB/s | 510 MB/s | 510 MB/s |
上述圖片比較說明,應該已很清楚看出,M.2 PCIe+NVMe 是 SSD 讀寫速度最快的規格。
談 SSD 的技術就不得不談 NVMe 原理,但筆者對 NVMe 技術知道的有限,目前只能簡單介紹基本概念,無法深入說明內部核心『平行運算Internal Parallelism for SSD』原理,請見諒。
NVMe 開發的契機是因為:
1. 目前的 CPU 是具有平行運算。
(Parallel computin 可同時執行高達 64,000 個指令,注:CPU 技術更先進,運算能力也提升)
2. NAND 內部也已具備『平行架構』運算能力。
3. 現已有極高速的傳輸界面『 PCIe』。
如可結合,CPU 的『平行運算』+PCIe 高速傳輸介面+NAND 的『平行運算』,這種組合即可達到『極速』,但只缺 NAND 和 PCIe 的『高速通訊技術』。
所以廠商才為此而開發出 『NVMe』其名稱是『非揮發性記憶體控制介面規格 Non-Volatile Memory Host Controller Interface Specification』通訊協定。此新協定終于定義出可以 100% 發揮 NAND 『平行運算』的高速能力,再利用現有的 PCIe 介面的高速特性,即可發揮 NAND 高達 3,400 MB/s 讀寫速度。這已比傳統 SATA 硬盤快4倍速度。
PCIe 採用四通道連接,讓數據傳輸比 SATA 快4倍,且省電。使用 PCle +NVMe SSD,是目前追求極速唯一選擇。
另外有一優點,NVMe SSD+PCIe 組合,因有省電特性,NoteBook 電池耗損減低,電池壽命才得已增長。
先簡單介紹 SSD 重要元件 Controller, NAND 的功能用途。
Controller:就是負責當外部有檔案要寫入時,就是先由 Controller 已內建『File System』將檔案分數段 Blocks『平均寫入』每一顆 NAND Flash Memory 儲存。當 Windows 下指令要讀取檔案時,也是由此 Controller 負責至各 NAND 將該檔案所有的 Blocks 取出,依序傳輸給 Windows。且保證順序,數量正確無誤,檔案才完整可正常使用。
Controller 當然還有其它功能,但都是與讀寫數據有關。后面會一一介紹。
NAND Flash Memory:是先進的 3D NAND 就是負責儲存檔案數據的 Storage。但因屬于半導體高科技,筆者才疏學淺,所知有限不敢賣弄,請包涵。
注:此處所指 Controller File System 是該 Controller 廠商自行開發專用,是指此顆 Controller 這層的邏輯控制。其主要是負責『讀寫』功能,是將 Windows NTFS、Mac HFS、AFS、Linux EXT3、EXT4、XFS…...作業系統不同格式的檔案,轉換成可寫入至『積體電路 NAND』內的檔案格式。且各廠牌有不同格式。
接下來說明內部最重要的元件『 NAND 』。NAND 是『非揮發性記憶體』 (Non-volatile Memory Device) 也是 Flash memory 一種。因屬于『積體電路』的設計,其內部結構是先進的『3D立體』的多層邏輯電路佈線,是『垂直+平行 Layout』和傳統硬盤圓形磁片讀寫方式完全不同。當初設計的用意就是為了取代『硬盤』,所以 NAND 的儲存單位也是512 Byte/Unit。
NAND 的最小儲存單位是 512byte / Unit,這種設計就是為了取代傳統硬盤制定的標準協定 512byte / Sector,如此即可 100% 相容。
3D積體電路基本上是一層一層的 Layer,每一層可佈線成數量龐大的 512byte/unit,類似『網格狀』的邏輯電路而且共有 2面,再一層一層堆迭,如此堆迭即可構成『立體的邏輯電路架構』,以達到垂直平行讀寫功能。
NAND 的儲存單位也採用『邏輯虛擬』設計,且不同廠牌、型號....數值不同。但制定的基本標準如下:
1. Unit 是 NAND 最基本儲存單位,Size=512 byte。
2. Page 是網格上的每一列(行),在 NAND 上稱為『Page』。通常數量都是 32、64、128、256、512.../unit,Size 32、64、128...KB,基本上每一層有多少數量的列就相同數量的 Page,但各廠牌設計也有不同。一個page上所有的 unit共用一字元線(Word line)所以 NAND 讀寫一定是一個 Page 一個 Page同時進行。
3. Block 是 32,64,128,256,512….Page 組成的『區塊』且是『3D立體』,想像成陣列 Array或巨型的『魔術方塊』較易理解。
NAND 讀取與寫入原理有點復雜,
NAND 『讀取,寫入』是一個 Page 一個Page 進行。但寫入前必須先將要寫入該 page 的整個 Block 擦除乾淨(Block erasure) 才可寫入。擦除原理就是將 Block 內所有的 bit 變為『1』狀態=Free 。擦除作業只能以「Block」進行,無法以較小的 page。
所以程序是, 先清除一個大的 Block 空間 → 數據才寫入一個小的 page 內。
例如:為了寫入小量的 16KB 數據(page) 需先將一個大量的 512KB(block) 所有 bit 都寫成”1”(Full “11111111”) 變成 Free ,才可寫入 16KB 數據。
這就是 SSD 因?!耗ǔ?,寫入比讀出耗時,也導致 NAND 壽命減原因。
如果一直在同一個 Block 寫入與清除數據,這些Block 的壽命會消耗很快,為了儘量減少Erasure的次數,有效率的Block 管理技術就非常重要。
當晶片漸漸磨損,Erasure與讀寫速度會變非常慢,而且需要更多次數 Retry。
NAND Flash還有一項限制就是區塊內的數據只能序列性的寫入,無法像傳統硬盤隨機讀寫(Randon read/write)。這屬于 file system 技術,先不在此討論。
如何管理已損壞區塊(Bad Blocks):
1:出廠時的 Bad Blocks,這是製造生產時已存在的 Bad Blocks。
2:使用時累積的 Bad Blocks,發生在無數次的寫入/擦除,造成一些 NAND單元的『電荷電壓 Electric charge /Coulomb』被永久性的改變了,因此而無法使用。
SSD 有管理Bad blocks 機制,Controller 用 bad Blocks map 紀錄每一 Bad block。傳統硬盤也有相同機制(Bad Sectors Map)。
SSD的Trim(修剪)& 耗損平均 (Wear Leveling)
SSD有一的致命缺點,就是 NAND 物理問題,寫入次數是有限制,太頻繁的寫入(含抹除 Full”11111111”)是會破壞其『電荷電壓 Electric charge /Coulomb』,影響使用壽命。
目前 2020年 SSD 廠商宣稱已用2 方法,解決此問題:
1:目前 NAND 容量已大大提高,Block 數量龐大,其每一 Block 被寫入次數變減少,如此即可延長使用壽命。
2: NAND 目前先進科技,寫入次數已可達 5萬次以上。
所以此處文章用意只在說明 NAND 先天性的『寫入次數有限制』的技術問題。使用者不必太擔心 SSD 使用壽命問題。
SSD NAND 有一先天上的問題,就是每當要寫入數據時不論數據量是多小,就算只是 16KB /Page,也要先抹除一整個容量較大的 512KB / Block。等抹除完成(Full”11111111”) 才可將16KB 數據寫入。
例如:有一Block 內現已存在 4 pages 的數據,現在Delete 3pages 后只剩1 page。為了日后要讓新數據寫入時使用這 Block,現在須先將這 1 page 遷移另一 Block,再清除這 Block (Full”111111111”)供寫入新數據用。
所以為了寫入一支檔案,等于那一些 Blocks 會被做了2次『寫入』動作,每一次寫入就多一次耗損。
1: 先將一整個 Block 先抹除(Full”11111111”)這動作也是『寫入』。
2: 再正式寫入新數據。
了解上述問題后,接下來說明SSD的耗損平均 (Wear Leveling) & Trim(修剪) 原理。
Wear Leveling(耗損平均 )是什么?
SSD NAND 常會被做『寫入』動作,且 Blocks 數量龐大,那就要設法讓每一 Block 被寫入次數是平均的,避免某些 Blocks 時常被寫入而耗損較嚴重,其它不常被寫入的 Blocks 卻耗損較輕微。
簡單形容類似避免『路面』到處坑坑疤疤,最好是每一路段都平均使用,勿集中常使用某一路段,造成這一路段耗損嚴重,其它不常使用路段卻耗損輕微。
最好是一整層路面平均耗損,使用一陣子后又是一整層平均耗損,如此即可保持路面永遠是平整,無坑坑疤疤現象,直到路面已薄到無法再耗損才報廢。
先以傳統硬盤來說明,在 Windows, Mac, Linux 下使用傳統硬盤,當刪除檔案時,該檔案在硬盤磁片上只是先被標示成『已刪除』,該檔案在磁片上所佔用的 Blocks 都還存在原數據,并未被清除(未被 Full “00000000”),只是當檔案管理系統 File manage 讀到此『標示已刪除』時會略過不讀,如此才有機會隨時『還原檔案』。
注:各位應該有注意到,Windows,Mac, Linux.. 下 Copy 寫入一支 1GB File 約需幾十秒才可完成,但 Delete File 卻是瞬間完成,足證這『瞬間』只是做了『標示已刪除』的動作,絕不足將 1GB 數據100% 清空(未被 Full “00000000”)。
但當有新檔案要寫入時,只要是磁片后面還有未使用區塊(Unused Blocks),一律先寫入這些未使用的區塊,不會先去寫入『已刪除』區塊,就是避免覆蓋已刪除檔案,提供隨時『還原檔案』的機會。
但如磁片已被寫滿,無任何未使用區塊可用時,新檔案就只能寫入那些標示『已刪除』的區塊,只要一被寫入新數據,原舊有數據即已被覆蓋,絕不可能『還原』。
這『磁性紀錄』原理類似,錄音帶某段如被再錄製新歌曲,其原舊歌曲即被覆蓋,絕不可能『還原』。
SSD 也有類似此機制,一些『已刪除』檔案所佔用的 Blocks 也只是被標示『已刪除』,原檔案數據還存在,并無被 Full”11111111”,也是有機會『還原』。
當有檔案要寫入時,也是去找未使用區塊寫入。
但 NAND 有一致命缺點,如某些區塊 Blocks 常被頻繁的讀+寫+抹除 (Full “11111111”)其『電荷電壓』會加速減弱,導致這些區塊無法再使用,變成 Bad Blocks,如此整個 NAND 就會到處散佈這些 Bad Blocks,將導致 SSD
讀寫異常。為了避免發生此狀況,就設計了『Trim』這機制來改善。
Trim 的主要功能是,趁 SSD 閒置時,先去啟動『主動垃圾收集機制』直接清除那些標示『已刪除』的 Blocks,供隨時寫入新數據 Pages。
事先清除的優點是,不必等到真正有新數據要寫入時,才去『搬移殘馀 Pages』→『Full “11111111”』→『寫入新數據Pages』。
Trim 是SSD專用功能,某些作業系統版本,非設定自動啟用,可能需要至 /設定/ Trim 手動啟用。
『主動垃圾收集機制』的功能也是趁 SSD 閒置時,主動去收集一些『屬于同一支檔案的所有Pages』集中存放,減少『斷離現象』聽起來有點像『數據重整』。
Trim 與主動垃圾收集機制同時運作即可延長 SSD 的使用壽命,并提升 SSD讀寫效率。是非常聰明的機制,目前新規格 SSD NAND 都有提供此項機制。 以前常聽說 『SSD 不要寫滿,一定要預留約 20% 空間供暫存用,否則讀寫速度會變慢』。
目前新款 SSD已內建此機制,使用者不必再為此操心。
SSD因讀寫時需要遷移殘遺的 Pages,所以需預留一些暫存空間,目前 SSD 設計是已內建『暫存空間』,Windows, MacOS, Linux….. 下是無法識別,使用者也看不到,當然更無法去使用這些空間,這是一種『保護』機制。
1. 隨時更新原廠韌體(Update Firmware)。
2. 安裝原廠的 SSD 自我監控,分析和報告技術(S.M.A.R.T)監控系統。