大話存儲——磁盤原理與技術筆記(一)
1.硬盤的組成
硬盤的組成:盤片、讀寫頭、馬達、底座、電路板等。
1.1 盤片
- 要求無塵、表面光滑平整
- 邏輯上被划分為柱面、磁道和扇區
- 磁道是對盤面進行同心圓划分,最外圈為0道,每個盤片兩面都可用,每面包括300-1023個磁道,外圈讀寫快
- 柱面是對多個盤的同位置同心圓的磁道構成的柱體,讀寫時按照柱面進行,首先讀寫0磁頭面的磁道,滿了后移動到同柱面的下一磁道中
- 扇區是對每個磁道進行等距離的划分得到的圓弧,尋址時通過<柱面,磁頭,扇區>(CHS)方式。但目前主要使用的是LBA的編址方式,即將整個磁盤視為一條線性磁道,對應關系保存在磁盤控制電路的ROM芯片中
- 扇區編號最簡單方法為直接順序編號,但由於磁盤電路讀取一個扇區數據進行處理的過程中,磁盤可能已經旋轉進入了下一個扇區的頭標,導致要讀取就需要再等一圈,因此產生了帶交叉因子的編號方式MFM。交叉因子為3:1的編號方式為1,x,x,2,...。磁頭扭斜為了解決磁頭換道可能延遲到達的問題,相當於是對每個磁道的交叉因子。
1.2 磁頭
磁頭用以改變磁盤表面的磁性粒子簇達到保存信息的目的,磁頭不可接觸盤面,需要低空飛行。
1.3 步進電機
可以使磁頭進行微米級別的位移。
1.4 其他概念
硬盤控制電路:介於存儲介質和主機的接口之間,用以讀取和寫入數據的電路
磁盤的IO單位:讀寫是以扇區為最小單位的,有512B和4KB的
2.硬盤相關高層技術
2.1 磁盤中的隊列技術
由於不同的指令可能訪問的區域涉及到不同的柱面磁道,為了減少磁頭的尋道時間引入了排隊技術,磁盤控制電路可能會無視順序而優先訪問相同區域的數據(個人理解這可能是和系統共同進行的指令重排優化?)。磁盤控制器(位於主板上)需要配合磁盤控制電路。
2.2 無序傳輸技術
假如磁頭位於數據尾部,采取就近原則能讀就讀,讀取的數據發給控制器,通過DMA放在內存,等旋轉到頭部再讀出剩余部分。
2.3 幾種可控磁頭掃描方式
(1)FCFS 先來先服務:完全按照IO順序進行尋道操作
(2)SSTF (Shortest Seek Time First):優先到最近的磁道進行操作,因此特別遠的可能會被餓死
(3)SCAN 回旋掃描模式:類似電梯模型,從一端到另一端,無需訪問的磁道不停止,必然到達最內/外圈。
(4)C-SCAN 單向掃描模式:僅從內圈向外掃描,到達最外后迅速返回
(5)LOOK 智能監察掃描模式:和SCAN不同之處為無需到達最內外圈,完成兩端的IO即可返回
(6)C-LOOK:單向的LOOK
負載不高時SSTF性能最佳,高負載條件SCAN,C-SCAN,C-LOOK
2.4 磁盤緩存
SCSI控制參數
- DPO(Disable Page Out):禁止緩存中的數據頁被換出,配置了的數據不會被覆蓋
- FUA(Force Unit Access):強制盤片訪問,對於寫操作,磁盤必須將數據寫入盤片才返回成功信號;對於讀操作,磁盤收到指令直接讀取盤片而不搜索緩存
2.5 影響磁盤性能的因素
- 轉速(影響連續IO的首要因素)
- 尋道速度(影響隨機IO的首要因素)
- 單碟容量(容量越高,數據密度越大)
- 接口速度(不太重要)
3.硬盤接口技術
3.1 IDE硬盤接口
IDE(Integrated Drive Electronics,電子集成驅動器),本質上將控制電路、盤片和磁頭放在了一個容器。價格低,兼容性強。IDE接口也稱為PATA接口,Parallel ATA。
共有7個版本的ATA接口:
- IDE
- Fast ATA
- Fast ATA-2
- ATA-33
- ATA-66
- ATA-100
- ATA-133
IDE數據傳輸模式:
(1)PIO模式(Programming I/O):一種通過CPU執行IO端口指令來進行數據讀寫的數據交換模式。傳輸大量數據是會導致CPU的大量占用問題。已淘汰。
(2)DMA模式(Direct Memory Access):直接內存訪問,不經過CPU直接從內存存取數據的數據交換模式。CPU向DMA控制器下達指令,讓其來處理數據傳送,DMA控制器直接將數據復制到內存對應地址,然后反饋信息給CPU。
(3)Ultra DMA:在DMA的基礎上增加了CRC技術,保障數據傳輸安全。
3.2 SATA硬盤接口
SATA的優勢:
- 傳輸速率高:1.0可以達到150MB/s
- 數據可靠性高:可同時對指令和數據進行CRC
- 節省空間:線纜瘦,有利於機箱內部的散熱
SATA2.0的新特性:
- 3Gb/s傳輸速率:等同於300MB/s,但帶來的好處不明顯,因為硬盤內部的傳輸速率達不到該接口傳輸速度,內部更多的時間花在了尋道上,如果配較大容量的緩存可能好處會大一些
- 支持NCQ技術:Native Command Queue,即自身命令隊列,一種排隊技術
3.3 SCSI硬盤接口
// To Be Continued