之前一直以為固態(tài)硬盤各方面都比機(jī)械硬盤性能高,所以首選固態(tài)硬盤,直到看了極客時(shí)間-深入淺出計(jì)算機(jī)組成原理中硬盤相關(guān)章節(jié)的內(nèi)容,才發(fā)現(xiàn)固態(tài)硬盤原來(lái)是有缺點(diǎn)的,所以這里來(lái)做一個(gè)總結(jié)。
機(jī)械硬盤(HDD)
機(jī)械硬盤由以下幾個(gè)部分組成:
盤面:盤面(盤片)上有一層磁性涂層,數(shù)據(jù)就是存儲(chǔ)在這個(gè)磁性的涂層上,一個(gè)盤面在正反兩面都有磁性涂層。盤面中央有一個(gè)可以旋轉(zhuǎn)的主軸,主軸可以使盤片以固定的旋轉(zhuǎn)速率進(jìn)行旋轉(zhuǎn),我們看到磁盤標(biāo)注的每分鐘多少轉(zhuǎn)(RPM , Revolution Per Minute)指的就是這個(gè)旋轉(zhuǎn)速率,比如7200轉(zhuǎn),表示一分鐘可以旋轉(zhuǎn)7200下:
(注:圖片來(lái)自極客時(shí)間-深入淺出計(jì)算機(jī)組成原理)
一個(gè)盤面又可以劃為多個(gè)扇區(qū)和多個(gè)磁道。
磁道:一個(gè)盤片可以劃分為多個(gè)同心圓,每一個(gè)圓環(huán)就叫做磁道,可以理解為是盤片上的圓形環(huán)道:
扇區(qū):每個(gè)磁道又可以分為一個(gè)個(gè)扇區(qū),也就是磁道上的一個(gè)弧段:
柱面:上下平行的一個(gè)個(gè)盤面的相同扇區(qū)組成的部分,稱作一個(gè)柱面。
(注:圖片來(lái)自極客時(shí)間-深入淺出計(jì)算機(jī)組成原理)
磁頭:用于從盤面讀取數(shù)據(jù)傳輸?shù)娇偩€,一個(gè)盤面有正反兩面,正反兩面都會(huì)有一個(gè)磁頭。
傳動(dòng)臂(懸臂):與磁頭相連接,通過(guò)沿著半徑軸前后移動(dòng)傳動(dòng)臂,可以將磁頭定位到每一個(gè)磁道上,讀取存儲(chǔ)的數(shù)據(jù)。
磁盤是由一個(gè)或者多個(gè)平行疊放在一起的盤片組成的,將它們封裝在一個(gè)密封的包裝內(nèi),整個(gè)裝置稱為磁盤驅(qū)動(dòng)器,也就是我們常說(shuō)的磁盤。
磁盤以扇區(qū)為大小進(jìn)行數(shù)據(jù)讀寫,數(shù)據(jù)讀寫的耗時(shí)主要有以下幾部分:
- 尋道時(shí)間:首先傳動(dòng)臂需要將磁頭定位到包含目標(biāo)扇區(qū)的磁道上,移動(dòng)傳動(dòng)臂所需的時(shí)間稱為尋道時(shí)間,它依賴于磁頭當(dāng)前所在的位置以及傳動(dòng)臂在盤面上移動(dòng)的速度。
- 旋轉(zhuǎn)時(shí)間:將磁頭定位到目標(biāo)扇區(qū)所在的磁道后,需要等待目標(biāo)扇區(qū)的第一個(gè)位旋轉(zhuǎn)到磁頭下,它依賴于磁盤的旋轉(zhuǎn)速率。
從數(shù)據(jù)讀取步驟當(dāng)中可以看出,如果我們將數(shù)據(jù)進(jìn)行順序存放,盡可能將數(shù)據(jù)放在同一個(gè)扇區(qū)或者是一個(gè)柱面,這樣只需旋轉(zhuǎn)一次盤面,進(jìn)行一次尋道,即可讀取出內(nèi)容,這也是順序讀寫比隨機(jī)讀寫性能高的原因。
固態(tài)硬盤(SSD)
固態(tài)硬盤是一種基于閃存的存儲(chǔ)技術(shù),由半導(dǎo)體存儲(chǔ)器構(gòu)成,沒(méi)有移動(dòng)的部件,不需要像機(jī)械硬盤一樣進(jìn)行尋道,所以在順序?qū)懸约半S機(jī)寫的性能上相比機(jī)械硬盤都要高,但是它的耐用性缺比較差,接下來(lái)就看下SSD硬盤的耐用性為何差。
固態(tài)硬盤是有多個(gè)裸片疊在一起的:
(注:圖片來(lái)自極客時(shí)間-深入淺出計(jì)算機(jī)組成原理)
一張裸片上可以放多個(gè)平面(Plane),一個(gè)平面上又會(huì)劃分為多個(gè)塊(Block),一個(gè)塊的大小通常在幾百KB到幾MB,一個(gè)塊里會(huì)劃分為多個(gè)頁(yè)(Page),一個(gè)頁(yè)的大小通常是4KB:
(注:圖片來(lái)自極客時(shí)間-深入淺出計(jì)算機(jī)組成原理)
SSD硬盤寫入的基本單位為頁(yè),按頁(yè)進(jìn)行數(shù)據(jù)寫入,但是它不能像機(jī)械硬盤一樣直接通過(guò)覆蓋進(jìn)行寫入,如果某一頁(yè)已經(jīng)寫入過(guò)數(shù)據(jù),需要被擦除后才可以重新寫入數(shù)據(jù),而且SSD硬盤是按塊進(jìn)行擦除的,也就是說(shuō)如果某個(gè)頁(yè)的數(shù)據(jù)被刪掉還不能直接對(duì)頁(yè)進(jìn)行擦除,需要等待這個(gè)頁(yè)所在的塊整個(gè)被擦除才可以重新寫入數(shù)據(jù),而每一個(gè)塊的擦除次數(shù)是有限的,當(dāng)達(dá)到一定的擦除次數(shù)容易損壞。
舉個(gè)例子
假設(shè)白色代表這個(gè)頁(yè)未寫入過(guò)數(shù)據(jù),綠色代表這個(gè)頁(yè)寫入了有效數(shù)據(jù),紅色代表之前寫入了有效數(shù)據(jù)后來(lái)數(shù)據(jù)被刪除:
-
首先在某些空白頁(yè)內(nèi)寫入了一些數(shù)據(jù),寫入數(shù)據(jù)的頁(yè)變?yōu)榫G色:
-
刪除一部分?jǐn)?shù)據(jù),由于SSD需要按塊擦除,所以某個(gè)塊內(nèi)的頁(yè)如果既有有效數(shù)據(jù)又有刪除數(shù)據(jù),被刪除的那部分?jǐn)?shù)據(jù)會(huì)先標(biāo)記為刪除狀態(tài)此時(shí)數(shù)據(jù)并未真正刪除:
-
當(dāng)某個(gè)塊內(nèi)的所有頁(yè)都被標(biāo)記為已刪除,此時(shí)這個(gè)塊就可以被擦除,這個(gè)塊內(nèi)的頁(yè)就恢復(fù)成了白色:
-
假如刪除的數(shù)據(jù)不連續(xù),分散在各個(gè)塊內(nèi),由于紅色的頁(yè)在被擦除之前不能寫入數(shù)據(jù),所以這些紅色的頁(yè)看起來(lái)類似磁盤碎片,既不能清理又不能寫入數(shù)據(jù),到達(dá)一定程度時(shí)可能沒(méi)有合適的空白頁(yè)進(jìn)行數(shù)據(jù)寫入,所以這時(shí)候需要做一次類似于磁盤碎片整理的工作,找一個(gè)紅色頁(yè)最多的塊,將里面綠色頁(yè)的數(shù)據(jù)移動(dòng)到另外一個(gè)塊中,然后將整個(gè)紅色頁(yè)所在的塊進(jìn)行擦除:
總結(jié)
機(jī)械硬盤可能更適合于寫多(順序?qū)懀┳x少的場(chǎng)景,固態(tài)硬盤更適合于讀多寫少的場(chǎng)景,不過(guò)也不能一概而論,最終還是要根據(jù)實(shí)際的應(yīng)用場(chǎng)景來(lái)定。
參考
【極客時(shí)間-徐文浩】深入淺出計(jì)算機(jī)組成原理文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-408946.html
《深入理解計(jì)算機(jī)系統(tǒng)》文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-408946.html
到了這里,關(guān)于機(jī)械硬盤與固態(tài)硬盤的適用場(chǎng)景的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!