您好,登錄后才能下訂單哦!
這篇文章主要介紹“硬盤的秘密有哪些”,在日常操作中,相信很多人在硬盤的秘密有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”硬盤的秘密有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
我找了個網站(文末貼鏈接),這個網站展示了從 1990 開始到 2020 不同介質數據訪問的延遲時間。
我翻了一遍介質自身速度的數量級沒有變化,內存訪問延遲從 207ns 到 100ns,硬盤從 19ms 到了 2ms,但是介質之間的訪問速度還是差了幾個數量級。
不過上述我圈出來的是隨機訪問,順序訪問的話不會差這么多,想要知道為什么,那就需要了解下硬盤的構造。
當然,我今天提到的硬盤指的是機械硬盤,固態硬盤本文暫不涉及。
之所以寫這篇文章是因為我之前一直對磁道、柱面、扇區等一些東西存在疑惑,比如:
為什么會搞出柱面這么個概念?
磁道到底指的是哪里?
扇區是等分的?
.....等等
所以今兒咱們來理一理,按照我的習慣我們還是先簡單的看下歷史。
1956 年 9 月 14 號,世界第一臺磁盤存儲設備 IBM 305 RAMAC 誕生,這個設備用盤片來存儲數據,用磁頭來讀寫數據,不過礙于當時的技術,這體積確實有點大,大約有兩個冰箱那么大,來看下圖就知道了。
中間的歷史我看了看對我們沒啥用,咱們就快進到 1973 年,那年 IBM 推出了一個代號稱為 「溫切斯特」的硬盤。
這種硬盤的特點就是磁頭和磁片裝在一個密閉空間里,當磁片高速自傳之后磁頭會因為空氣動力而懸浮起來,然后磁頭臂會操作磁頭沿著盤片劃圓弧狀移動。
咱們現在的機械硬盤就是這樣運行的,這么多年過去了,還是典型的「溫切斯特」結構,也稱為溫盤。
至于為什么取這個代號,是因為當時研究出來的那個硬盤擁有兩個 30MB 的存儲單元,而「溫切斯特來福槍」的口徑和裝藥也剛好都是 30 ,所以代號就為 「溫切斯特」。
歷史咱們就了解到這一步差不多了,接下來看看硬盤的內部結構。
先來看看硬盤的真實樣子,我就標注了一些重點部位。
我先簡述一下硬盤是怎么運行的。
通電之后主軸帶動盤片開始旋轉,到達一定轉速之后磁頭就會懸浮在盤片上方,然后磁頭臂就可以控制磁頭做圓弧形的移動,通過盤片的旋轉和磁頭的移動就可能訪問到盤片上任意地方的數據。
這里可能有人就會有疑問,為什么要讓磁頭浮起來?
首先磁頭和盤片觸碰的話就會有摩擦,摩擦久了之后肯定會有磨損,磨損了之后數據不就沒了?
其次有摩擦力之后轉速肯定就慢了,那磁盤的訪問速度也就慢了。
所以懸浮很關鍵,而磁頭懸浮的高度比頭發絲還細,約 0.1微米,如果有灰塵進去可能會導致磁頭和盤片磨損,這也是硬盤需要密封的原因。
那剛啟動的時候磁頭不是和盤片接觸的嗎?
是的,你說的沒錯,所以人們就想了個法子,也就是磁頭停靠點,也就是上面圖中畫的地方。
當通電之后等達到一定轉速磁頭才會移動到盤片上,等斷電之后靠著電容剩余的電量會把磁頭移到停靠處,這樣每次啟動就不會磨損啦!
還有一種停靠方式是在盤片內圈搞了個不存數據的地方,材質都不一樣,專門給磁頭停靠。
為了在公眾號插入視頻,我還在騰訊視頻上傳了個視頻,來自維基百科的硬盤運行視頻,這個視頻硬盤的停靠應該就是第二種方式。
來看下這個視頻
https://v.qq.com/x/page/w3222s68yv5.html
大致清晰硬盤是如何運行之后,我們再來深入一下。
這里我本來想自己畫圖的,但是個人畫畫水平有限,人家畫的太好了...所以就搬來了,哈哈哈。
先來看下盤面。
A 就是磁道,盤面就是由磁道這樣的一組同心圓構成,注意是標紅部位,是個環,有橫截面的,有些參考書標記到線上去了....
B 是扇面,C 就是扇區,每個磁道都會被劃分成一組扇區,每個扇區包含相等數量的數據位,一般為 512 字節,是硬盤存儲數據最基本的單位。
D 是簇,即多個扇區組成的,像 DOS 就是以簇為單位為文件分配磁盤空間的。
從圖中看,扇區好像是連續著的,其實不然,扇區之間其實有間隙,這些間隙是用來標識扇區的格式化位的,不會存儲數據。
不知看到這大家是否有點疑惑,每個扇區包含相等的數據位,那明顯距離圓心更近的同心圓扇區看起來能存的數據比最外圍的扇區小很多,那豈不是外圍的數據位要遷就最內部的?
是的。為了讓每個磁道都有相等的扇區數,外圈磁道的扇區之間間隔很大,不過以前硬盤的數據存儲密度很低,所以還能接受。
而隨著硬盤存儲密度的上升這樣就造成了極大的浪費,因此就搞了個 zoned-bit recording
技術,目的就是在外圈磁道上放置比內圈磁道更多的扇區,看下這個圖就明白了。
具體怎么實現我就不展開了,這不重要。
重要的是解惑,并不是像有些書上說的,死板的按照最內圈的扇區數來確定所有磁道的扇區數。
硬盤通常由一個或者多個盤片組成。
例如下圖就有三個盤片,每個盤片有上下兩個盤面,對應的會有六個磁頭。
磁頭號從上到下以 0 開始計數,由磁頭臂帶領著磁頭做圓弧形運動。每個盤面的磁道也由 0 開始計數,相同編號的磁道組成的區域稱之為柱面,發揮下想象力應該可以 get 到,我再貼個圖助力一下。
為什么要有柱面這一術語呢?
因為幾個磁頭其實都是依靠同一個磁頭臂運動的,所以要轉就一起轉,并且都是一個角度。
因此想要數據讀取的快,那么數據就應該在統一柱面上順序存儲。
比如最上面的盤面的第 1 個磁道上寫不下了,那繼續寫到背部的第二個盤面上,這樣磁頭臂只要尋道一次即可,讀數據的時候也只要尋道一次即可。
從這里我們也可以知道如果一個硬盤的盤片越多,速度就越快。
從上文我們已經知道硬盤是以扇區為基本單位的,所以硬盤的訪問就是要找到對應的扇區。
盤片的表面是磁性的,盤片隨著主軸旋轉而轉動,當要訪問某個扇區的時候首先要轉動磁頭臂找到對應的磁道,這叫尋道時間。
這時盤片還是在旋轉中的,磁頭可以感知到下方數據位上的值,等旋轉到目標扇區的時候就曉得該讀/寫數據了,這個時間稱為旋轉時間。
所以我們買硬盤的時候會看到 7200RPM、15000RPM 啥的,轉的越快磁盤找到扇區的時間就越短。
最后就是讀取數據的傳送時間了。
所以硬盤數據訪問延遲就是這三個時間相加,而最慢的就是尋道時間,我給下 CSAPP 提供的數據:
總延時=尋道時間+旋轉時間+傳送時間=9ms+4ms+0.02ms=13.02ms
當然不同的硬盤總延時肯定不一樣,反正知道尋道時間最慢就行了。
從上述的物理結構我們已經知道需要找到盤面,再找到磁道,最后找到扇區才能讀取數據,有點復雜。
沒必要把這么不友好的訪問姿勢暴露給操作系統,所以就搞了個邏輯磁盤塊,屏蔽了底層訪問的細節,提供編號 0 、1、2.....n 這樣的邏輯塊序列來對應具體的物理塊。
這樣操作系統要訪問磁盤就很舒服了,不過最終還是要找到對應的扇區的,而磁盤控制器就維護了邏輯塊和實際物理扇區的映射關系。
磁盤控制器屬于硬盤里面的一個硬件,它會將邏輯塊翻譯成:盤面、磁道、扇區這么一個三元組。
至此平時我們說的邏輯塊與硬盤的物理訪問也對應上了。
到此,關于“硬盤的秘密有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。