前面幾篇文章,主要圍繞的是機械硬碟來說的,目前ssd目前應用也越來越廣了,值得我們花精力琢磨琢磨,SSD硬碟是地地道道電子技術下的產品,因為不像機械硬碟IO時依賴兩個耗時的機械軸行為:磁盤旋轉,以及磁道尋道,SSD硬碟的訪問延遲要比機械硬碟要低的多,在隨機IO下的表現尤其明顯,我們今天從最底層出發,看看SSD的幾個內部機理,
SSD的組成結構
機械硬碟和ssd雖然都同為硬碟,但底層實作技術卻完全不一樣,機械硬碟使用的是磁性材料記憶,而SSD用的是類似u盤的閃存技術,實作技術的不同,必然在硬碟內部結構上他們就有天壤之別,他們的果照對比如下圖所示:

不像機械硬碟里的一摞子圓形碟片,SSD是由一些電路和黑色的存盤顆粒構成,SSD硬碟是基于NAND Flash存盤技術的,屬于非易失性存盤設備,換成人話說,就是掉電了資料不會丟,其中我們眼睛看見的黑色的存盤顆粒叫一個NAND Package,每個Package里面會包含多個Die, 我們“拆開”一個Die來看一下

每個Die有若干個Plane,每個Plane有若干個Block,每個Block有若干個Page,Page是磁盤進行讀寫的最小單位,一般為2KB/4KB/8KB/16KB等,
SSD里的扇區
前面我們介紹機械硬碟的時候,說到由于歷史原因,作業系統等軟體里,512KB扇區的概念是“根深蒂固”,新的機械硬碟雖然把物理扇區已經做到4KB的了,但沒辦法,為了兼容老系統還得整出個邏輯扇區的概念來適配,到了SSD里也一樣,雖然每一個物理Page的大小為2K到16K不等,但是為了兼容性,也必須得整出個邏輯扇區才行,
SSD控制器在邏輯上會把整個磁盤再重新劃分成一個個的“扇區”,采用和新機械硬碟一樣的LBA方式來進行編址(整個磁盤的扇區從0到某個最大值方式排列,并連成一條線),當需要讀取某幾個"扇區"上資料的時候,SSD控制器通過訪問這個LBA MapTable,再來找到要實際訪問的物理Page,如下圖:

不過SSD最小的讀寫單位就是Page,他是沒辦法只扇區來進行讀寫的,
最底層的閃存單元
上面我們看到SSD是由一個個的Page組曾,而在每一個Page里,又包含了許許多多的閃存單元,,現代的閃存單元有多種型別,目前主流的主要分為SLC、MLC和TLC,

在SLC里,一個單元的電壓只分成高低兩種狀態,所以只能表示1bit資料,到了MLC,硬是把一個單元里的電壓按照高低分成了四種狀態,所以可以表示2bit,到了TLC,直接一個單元應拆分成8個電壓高低不同的狀態,為了表示3bit,由于TLC在資料讀寫需要八種不同電壓狀態,而施加不同的電壓狀態、 就需要更精確,也就需要更長的時間才能得以實作,另外由于電壓狀態多,出錯的可能性也會更大,所以,以上三種閃存單元對比:從性能和穩定性角度來看,SLC最好,從容量角度看,TLC最大,這就是為什么日常我們看到的工業級的SSD要比筆記本SSD要貴很多,其中一個很重要的原因就是工業級的盤往往采用的閃存單元是SLC或MLC,而我們家用的筆記本一般都是TCL,因為便宜嘛,我們從用表格再對它們直觀對比一下:
| 閃存型別 | 單cell電壓變化 | 單cell表示bit數 | 速度 | 擦寫次數 | 價格 |
|---|---|---|---|---|---|
| SLC(Single-Level Cell) | 兩種 | 1bit | 快 | 約10W次 | 貴 |
| MLC(Multi-Level Cell) | 四種 | 2bit | 一般 | 約3K次 | 一般 |
| TLC(Trinary-Level Cell) | 八種 | 3bit | 慢 | 約1K次 | 便宜 |
目前個人PC上消費用的主流閃存型別大部分都是TLC的,因為價格便宜,容量大,
思考
- 假設某SSD的Page大小是4KB,一個檔案是16KB,那么該檔案是存在一個黑色的存盤顆粒里,還是多個?
我們先把SSD的邏輯結構用個直觀一點的圖來看:

假設只寫在一個顆粒里,那么對該檔案進行讀取的時候,就只能用到一條Flash通道,這樣速度就會比較慢,如果存在相鄰的4個顆粒里,每個寫入4KB,這樣多個Flash通道的帶寬會充分發揮出來,傳輸速度也更快,所以,實際中是分散在多個,

開發內功修煉之硬碟篇專輯:
- 1.磁盤開篇:扒開機械硬碟堅硬的外衣!
- 2.磁盤磁區也是隱含了技術技巧的
- 3.我們怎么解決機械硬碟既慢又容易壞的問題?
- 4.拆解固態硬碟結構
- 5.新建一個空檔案占用多少磁盤空間?
- 6.只有1個位元組的檔案實際占用多少磁盤空間
- 7.檔案過多時ls命令為什么會卡住?
- 8.理解格式化原理
- 9.read檔案一個位元組實際會發生多大的磁盤IO?
- 10.write檔案一個位元組后何時發起寫磁盤IO?
- 11.機械硬碟隨機IO慢的超乎你的想象
- 12.搭載固態硬碟的服務器究竟比搭機械硬碟快多少?
我的公眾號是「開發內功修煉」,在這里我不是單純介紹技術理論,也不只介紹實踐經驗,而是把理論與實踐結合起來,用實踐加深對理論的理解、用理論提高你的技術實踐能力,歡迎你來關注我的公眾號,也請分享給你的好友~~~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/202165.html
標籤:其他
上一篇:磁盤磁區也是隱含了技術技巧的
