大話儲存——磁碟原理與技術筆記(一)
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硬碟介面
SA他的優勢:
- 傳輸速率高:1.0可以達到150MB/s
- 資料可靠性高:可同時對指令和資料進行CRC
- 節省空間:線纜瘦,有利於機箱內部的散熱
SATA2.0的新特性:
- 3Gb/s傳輸速率:等同於300MB/s,但帶來的好處不明顯,因為硬碟內部的傳輸速率達不到該介面傳輸速度,內部更多的時間花在了尋道上,如果配較大容量的快取可能好處會大一些
- 支援NCQ技術:Native Command Queue,即自身命令佇列,一種排隊技術
3.3 SCSI硬碟介面
// To Be Continued