【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》阅读笔记
3.4硬盤接口技術(shù)
硬盤的物理接口包括以下幾種:
- 用于ATA指令系統(tǒng)的IDE接口(PATA)
- 用于ATA指令系統(tǒng)的SATA接口
- 用于SCSI指令系統(tǒng)的并行SCSI接口
- 用于SCSI指令系統(tǒng)的串行SCSI(SAS)接口
- 用于SCSI指令系統(tǒng)的IBM專用串行SCSI(SSA)接口
- 用于SCSI指令系統(tǒng)的并且承載于FabreChannel協(xié)議的串行FC接口(FCP)
3.4.1 IDE硬盤接口
IDE(Integrated Drive Electronics)電子集成驅(qū)動(dòng)器。把控制電路和磁盤、磁頭等放在一個(gè)容器種的硬盤驅(qū)動(dòng)器。廠商不用擔(dān)心硬盤于控制器兼容問(wèn)題,價(jià)格也低廉。IDE接口也稱為PATA接口即并行傳輸ATA(Parallel Advanced Technology Attachment)即高級(jí)技術(shù)附加。
1. 七種ATA物理接口規(guī)范
?2.IDE數(shù)據(jù)傳輸模式
- PIO模式(Programming Input/Output Model):一種通過(guò)CPU執(zhí)行IO端口指令來(lái)進(jìn)行 數(shù)據(jù)讀寫的數(shù)據(jù)交換模式,是最早的硬盤數(shù)據(jù)傳輸模式。這種模式傳輸效率低下,CPU占有率高。硬盤控制器接收到磁盤傳來(lái)的數(shù)據(jù)之后,必須由CPU發(fā)送信號(hào)將這些數(shù)據(jù)復(fù)制到內(nèi)存當(dāng)中。
- DMA模式(Direct Memory Access):直接內(nèi)存訪問(wèn),是一種不經(jīng)過(guò)CPU而直接從內(nèi)存中存取數(shù)據(jù)的數(shù)據(jù)交換模式。DMA模式下,CPU只需要向控制器下達(dá)指令,讓DMA控制器來(lái)處理數(shù)據(jù)的傳送。
- Ultra DMA模式:高級(jí)直接內(nèi)存訪問(wèn)。UDMA模式采用16位多字節(jié)DMA模式為基準(zhǔn),可以理解為DMA模式的增強(qiáng)版本,增加了CRC(循環(huán)冗余校驗(yàn))技術(shù),提高了數(shù)據(jù)傳輸過(guò)程中的準(zhǔn)確性。在UDMA中逐漸應(yīng)用了雙倍傳輸技術(shù),因此數(shù)據(jù)傳輸速度有了極大的提高。
3.4.2 SATA硬盤接口
Serail ATA 串行傳輸ATA。相對(duì)于PATA模式的IDE接口來(lái)說(shuō),SATA是用串行線路傳輸數(shù)據(jù),但指令集不變,仍然是ATA指令集。
1.SATA規(guī)范和發(fā)展歷程
SATA超過(guò)了 ATA甚至高過(guò)了IDE最高傳輸速率,SATA同時(shí)對(duì)指令及數(shù)據(jù)封包進(jìn)行循環(huán)冗余校驗(yàn)(CRC),不僅可以檢測(cè)出所有單比特和雙比特的錯(cuò)誤。
2.SATA2.0規(guī)范中的新特性
- 3Gb/s的傳輸速率:相當(dāng)于300MB/s,不過(guò)硬盤內(nèi)部的傳輸速率還達(dá)不到于接口速率等同的程度。
- 支持NCQ技術(shù):(Native Command Queuing)自身命令隊(duì)列,由硬盤驅(qū)動(dòng)器自身實(shí)現(xiàn)排隊(duì)技
基于尋道和旋轉(zhuǎn)優(yōu)化的命令重排序:對(duì)于新加入的命令,考慮目標(biāo)數(shù)據(jù)的線性位置,考慮角度位置,對(duì)線性位置和角度位置進(jìn)行優(yōu)化,使總線的服務(wù)時(shí)間最小。
NCQ包含如下兩部分內(nèi)容。一方面,硬盤本身必須有能力針對(duì)實(shí)體數(shù)據(jù)的扇區(qū)分布對(duì)命令緩沖區(qū)中的讀寫命令進(jìn)行排序。同時(shí)硬盤內(nèi)部隊(duì)列中的命令可以隨著必要的跟蹤機(jī)制動(dòng)態(tài)地重新調(diào)整或排序,其中跟蹤機(jī)制用于掌握待執(zhí)行和已完成作業(yè)的情況,而命令排隊(duì)功能還可以使主機(jī)在設(shè)備對(duì)命令進(jìn)行排隊(duì)的時(shí)候,斷開(kāi)于硬盤間的連接以釋放總線。一旦硬盤準(zhǔn)備就緒,就重新連接到主機(jī),盡可能最快的速率傳輸數(shù)據(jù),從而消除占用總線的現(xiàn)象。另一方面,通信協(xié)議的支持也相當(dāng)重要。PATA硬盤在傳輸數(shù)據(jù)時(shí)很容易造成眾人,這樣會(huì)降低主控制器的效率,所以NCQ規(guī)范中定義了中斷聚集機(jī)制。相當(dāng)于一次執(zhí)行完數(shù)個(gè)命令后,再對(duì)主控制器回傳執(zhí)行完畢的信息,改善處理隊(duì)列命令的效能。
端口選擇器(Port Selector):有兩個(gè)SATA接口,同時(shí)連接兩個(gè)接口到控制器上。一旦某個(gè)接口或者連線故障,立即切換到另一個(gè)接口和連線上。
端口復(fù)用器(Port Multiplier):一個(gè)控制器可以擴(kuò)展多個(gè)SATA設(shè)備的技術(shù),采用4位(bit)寬度的Port Multiplier端口字段,其中控制端口占用一個(gè)地址,最多能輸出15個(gè)設(shè)備連接。
3.5 SCSI硬盤接口
SCSI的全稱使Small Computer System Interface,即小型計(jì)算機(jī)系統(tǒng)接口,是一種較為特殊的接口總線,具備于多種類型的外設(shè)進(jìn)行通信的能力,比如硬盤、CD-ROM、磁帶機(jī)和掃描儀等。SCSI采用ASPI(高級(jí)SCSI編程接口)的標(biāo)準(zhǔn)軟件接口使驅(qū)動(dòng)器和計(jì)算機(jī)內(nèi)部安裝的SCSI適配器進(jìn)行通信。SCSI是一種廣泛應(yīng)用于小型機(jī)上的高速數(shù)據(jù)傳輸技術(shù)。SCSI接口具有應(yīng)用范圍廣、多任務(wù)、帶寬大、CPU占用率低以及熱插拔等優(yōu)點(diǎn)。
SCSI接口為存儲(chǔ)產(chǎn)品提供了強(qiáng)大、靈活的連接方式,還提供了很高的性能,可以有8個(gè)或更多(最多16個(gè))的SCSI設(shè)備連接在一個(gè)SCSI通道上,缺點(diǎn)是貴。
在系統(tǒng)中應(yīng)用SCSI必須要有專門的SCSI控制器,也就是一塊SCSI控制卡,才能支持SCSI設(shè)備,這與IDE硬盤不同。SCSI控制器上有一個(gè)相當(dāng)于CPU的芯片,它對(duì)SCSI設(shè)備進(jìn)行控制,能處理大部分的工作,減少CPU的負(fù)擔(dān)(CPU占用率)。
SCSI發(fā)展過(guò)程:SCSI-1? ? ?SCSI-2? ? ?SCSI-3(Ultra 1?SCSI)? ? Ultra 2 SCSI??Ultra 160??SCSI? ? ?Ultra 320?SCSI
1.SCSI協(xié)議的鏈路層
SCSI協(xié)議中,利用CRC校驗(yàn)碼來(lái)校驗(yàn)每個(gè)指令或者數(shù)據(jù)的幀,如果發(fā)現(xiàn)對(duì)方發(fā)來(lái)的校驗(yàn)碼與本地計(jì)算的不同,則說(shuō)明這個(gè)數(shù)據(jù)幀再傳輸過(guò)程中受到了干擾,那么就會(huì)丟棄這個(gè)幀,發(fā)送方會(huì)重傳這個(gè)幀。
2.SCSI網(wǎng)絡(luò)層
(1)SCSI總線編制機(jī)制
SCSI協(xié)議利用了一個(gè)SCSI ID的概念來(lái)區(qū)分每個(gè)節(jié)點(diǎn)。一條SCSI總線上可以存在16個(gè)節(jié)點(diǎn),其中SCSI控制器,占用一個(gè)節(jié)點(diǎn),SCSIID被恒定設(shè)為7。其他15個(gè)節(jié)點(diǎn)的SCSI ID可以隨便設(shè)置,但不能重復(fù)。者16個(gè)ID中,7具有最高優(yōu)先級(jí)。
由于總線是一種共享的線路,總線上每個(gè)節(jié)點(diǎn)都會(huì)同時(shí)感知到這條線路和上的電位信號(hào),所以同一時(shí)刻只能由一個(gè)節(jié)點(diǎn)向這條總線上放數(shù)據(jù),也是給這條線路加一個(gè)高電位或者低點(diǎn)位。其他所有節(jié)點(diǎn)都能感知到這個(gè)電位的增降,但是只有接收方節(jié)點(diǎn)才會(huì)感知到電位增降信號(hào),保存到自己的緩存中。高位保存1,低位保存0,反過(guò)來(lái)也可以。終結(jié)電阻作用是終結(jié)導(dǎo)線上的電信號(hào)。
?要了解當(dāng)前線路上是不是自己在通信,自或者自己想爭(zhēng)奪線路的使用權(quán)而通告其他節(jié)點(diǎn),這個(gè)過(guò)程交仲裁。有總線的地方就有仲裁,因?yàn)榭偩€是共享的,各個(gè)節(jié)點(diǎn)都申請(qǐng)使用,所以必須有一個(gè)仲裁機(jī)制。SCSI接口并不只有8或者16條數(shù)據(jù)線,還有很多控制信號(hào)線。
普通主版一般不集成SCSI控制器,如果想接入SCSI磁盤,必須增加SCSI卡。SCSI一端接入主機(jī)的PCI總線,另一端用一個(gè)SCSI控制器接入SCSI總線。卡上有自己的CPU,通過(guò)執(zhí)行ROM中的代碼來(lái)控制整個(gè)SCSI卡的工作。如果這塊卡不只有一個(gè)SCSI控制器,則每個(gè)控制器可以單獨(dú)掌控一條SCSI總線,這就是多通道SCSI卡。
(2)SCSI尋址機(jī)制和幾個(gè)階段
一、空閑階段
總線一開(kāi)始就處于空閑狀態(tài),沒(méi)有節(jié)點(diǎn)要發(fā)起通信。總線空閑的時(shí)候,BSY和SEL這兩條控制信號(hào)都為False狀態(tài),只是任何節(jié)點(diǎn)都可以發(fā)起通信。
二、仲裁階段
節(jié)點(diǎn)通過(guò)在自己對(duì)應(yīng)的那條線路的電位來(lái)申請(qǐng)總線的使用權(quán)。提升自己ID對(duì)應(yīng)線路的電位的同時(shí),這個(gè)節(jié)點(diǎn)也提升BSY線路的電位。如果同時(shí)有多個(gè)節(jié)點(diǎn)提升了各自線路上的電位,那么所有的發(fā)起申請(qǐng)的節(jié)點(diǎn)均判斷總線上的這些信號(hào)。
SCSI總線尋址的方式,按照控制器--? ? ?通道? ? ?--? ?SCSI ID? ?--? LUN ID來(lái)尋址。
控制器就是SCSI控制器,這個(gè)控制器集成在南橋上,或者獨(dú)立于某個(gè)PCI插卡,要連接到主機(jī)IO總線上。有IO端口,就可以讓CPU訪問(wèn)到。一個(gè)主機(jī)IO總線上,不一定只有一個(gè)SCSI控制器,可以有多個(gè)。每個(gè)控制器又可以多個(gè)通道。通道也就是SCSI總線,一條SCSI總線就是一個(gè)通道。多條SCSI總線(通道)可以被一個(gè)控制器管理,這個(gè)物理控制器會(huì)被邏輯劃分為多個(gè)虛擬的可以管理多個(gè)通道(SCSI總線)的控制器,稱為多道控制器。每個(gè)通道(總線)上可以接入8或16個(gè)SCSI設(shè)備, 所以必須區(qū)分開(kāi)每個(gè)SCSI設(shè)備。SCSI ID就是針對(duì)每個(gè)設(shè)備的編號(hào),每個(gè)通道上的設(shè)備都有自己的ID。不同通道間的ID可以相同,并不影響他們的區(qū)分。因?yàn)樗麄兊耐ǖ捞?hào)不同。如圖,這兩個(gè)設(shè)備就是兩個(gè)通道。
SCSI ID并不是網(wǎng)絡(luò)中最后一層地址,還有一個(gè)LUN ID。每個(gè)SCSI ID下可以再分出來(lái)若干個(gè)LUN ID。控制器初始化的時(shí)候,會(huì)對(duì)SCSI ID上的設(shè)備發(fā)出一條Report LUN指令,用來(lái)收集每個(gè)SCSI ID設(shè)備的LUN信息。這樣,一條SCSI總線上,可接入的最終邏輯存儲(chǔ)單元數(shù)量就打打增加了。
三、選擇節(jié)點(diǎn)
仲裁階段之后,獲勝的節(jié)點(diǎn)會(huì)將BSY和SEL信號(hào)置位,然后將8或16他數(shù)據(jù)總線上對(duì)對(duì)應(yīng)它自身ID的線路和對(duì)應(yīng)它有通信的目標(biāo)ID的線路的電位提升,這樣目的節(jié)點(diǎn)就能感知到它自己的線路上來(lái)了信號(hào),開(kāi)始做接收準(zhǔn)備。
總線上最常發(fā)生的是控制器向其他節(jié)點(diǎn)發(fā)送和接收數(shù)據(jù),而除控制器之外的其他節(jié)點(diǎn)之間交互數(shù)據(jù),一般是不會(huì)發(fā)生的。如果要從總線上的一塊硬盤復(fù)制數(shù)據(jù)到另一塊硬盤,那也必須先將數(shù)據(jù)發(fā)送到控制器,控制器再?gòu)?fù)制到內(nèi)存,經(jīng)過(guò)CPU運(yùn)算后再次發(fā)送給控制器,然后控制器再發(fā)送給另一款硬盤。
3.SCSI協(xié)議傳輸層
(1)寫數(shù)據(jù)
發(fā)起方在獲得總線仲裁之后,發(fā)送一個(gè)SCSI Command寫入命令幀。其中包含了對(duì)應(yīng)的LUN號(hào)以及LBA地址段。接收端接收后,就知道下一步對(duì)方要傳輸數(shù)據(jù)了。接收方做好準(zhǔn)備后,向發(fā)送方發(fā)送一個(gè)XFER_RDY幀,表示已經(jīng)做好接收準(zhǔn)備,可以隨時(shí)發(fā)送數(shù)據(jù)。
發(fā)送方收到XRFREE_RDY幀后,會(huì)立即發(fā)送數(shù)據(jù)。每發(fā)送一幀數(shù)據(jù),接收方就回送一個(gè)XFER_RDY幀之后,會(huì)立即發(fā)送數(shù)據(jù)。每發(fā)送一幀數(shù)據(jù),接收方就會(huì)回送一個(gè)XFER_RDY幀,表示上一幀成功收到并且無(wú)錯(cuò)誤,可以立即發(fā)送下一幀,直到發(fā)送結(jié)束。
接收方發(fā)送一個(gè)RESPONSE幀來(lái)表述這條SCSI命令執(zhí)行完畢。
(2)讀數(shù)據(jù)
發(fā)起方在獲得總線仲裁之后,會(huì)發(fā)送一個(gè)SCSI Command讀命令幀。接收端接收后,立即將該命令中給出的LUN以及LBA地址段所有的扇區(qū)數(shù)據(jù)讀出,傳送給發(fā)起端。
所有數(shù)據(jù)傳輸結(jié)束后,目標(biāo)端發(fā)送一個(gè)RESPONSE幀來(lái)表示這條SCSI命令執(zhí)行完畢。
SCSI協(xié)議語(yǔ)言就是利用這種兩端節(jié)點(diǎn)之間相互傳送一些控制幀,來(lái)達(dá)到保障數(shù)據(jù)成功傳輸?shù)哪康摹?/p>
4.SCSI協(xié)議的會(huì)話層、表示層和應(yīng)用層
與底層通信無(wú)關(guān)。
?
?
?
總結(jié)
以上是生活随笔為你收集整理的【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》阅读笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【存储知识学习】第三章磁盘原理与技术3.
- 下一篇: 【存储知识学习】第三章磁盘原理与技术3.