日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SCSI 总线和协议

發(fā)布時間:2025/3/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SCSI 总线和协议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?????? I/O 技術實現在計算機和存儲設備之間的數據交換。實現從CPU 到存儲系統(tǒng)的I/O通路的一個中間就是SCSI(Small Computer System Interface).

?

. ?I/O 通路

?????? 在計算機中,一個或多個CPU 處理在CPU緩存或主存儲器(RAMRandom Access Memory)中的數據。 CPU緩存或主存儲器是非常快的器件,但是斷電就不能保存,價錢也比較昂貴。 所以數據還需要放在存儲設備上。

?????? 通常,數據從主存儲器(RAM)通過系統(tǒng)總線,主機I/O 總線 I/O 總線移動到磁盤或者磁帶等存儲設備。

?

1.1? 系統(tǒng)總線

?????? 在計算機的核心部分,系統(tǒng)總線保證數據在CPU和主存儲器之間進行快速的傳遞。 系統(tǒng)總線必須使用非常高的時鐘頻率,使得它能夠足夠快的給CPU 提供數據。 該總線的實現采用在主電路板上印制導線的形式。 出于物理性能的原因,高的系統(tǒng)速度需要短的印制導線。 因此,系統(tǒng)總線應該盡可能的短一些,并且只能連接CPU和主存儲器。

?

1.2? 主機I/O 總線

?????? 在現在計算機中,為了釋放CPU 的應用處理負擔,人們把盡可能多的任務移到諸如圖像處理器這樣的特別的處理器中。 由于上述物理上的限制條件,這些器件不可以連接到系統(tǒng)總線。 因此大多數計算機都實現了稱作主機I/O總線的第二個總線。 橋接芯片提供在系統(tǒng)總線和主機I/O總線之間的連接。 PCIPeripheral Component Interconnection:外圍互聯設備)是當前最廣泛使用的實現主機I/O 總線的技術。

?

1.3? I/O 總線

?????? 設備驅動器負責控制外圍設備以及與外圍設備的通信。針對存儲設備的設備驅動器部分以軟件形式存在,該軟件由CPU處理。由于跟存儲設備通信的部分設備驅動器幾乎總是以固件的形式實現,該固件由特別的處理器(ASIC:Application Specific Integration Circuit)處理。 當前這些ASIC 有的集成到主電路板(如SCSI 控制器),也有的通過附加的PCI卡連接到主板。 這些附加的卡通常被稱作控制器。 存儲設備通過主機總線適配器(HBA:Host Bus Adapter)或者通過在板上的控制器連接到服務器。 在控制器和外圍設備之間的通信連接叫作I/O總線。

?????? 當前用戶I/O 總線的最重要的技術是SCSI 和光纖通道。 SCSI 定義了一種總線,該總線能夠連接16個設備(包括服務器和存儲設備)。 在另一方面,光纖通道定義存儲網絡的不同拓撲結構,該存儲網絡可以連接數百萬個設備(包括服務器和存儲設備)。 作為替代光纖通道的其他選擇,工業(yè)界正在使用TCP/IP 和以太網(IP存儲)實現存儲網絡。 注意的是,這些新技術都是繼續(xù)使用SCSI 協議在設備間通信。

?

?

. 并行SCSI 總線

?????? ?把磁盤和磁帶設備連接到應用服務器或文件服務器,最常用的方法就是通過傳統(tǒng)的?SCSI總線。盡管?SCSI主要是一個塊協議,但這個術語也被用來指稱運行該協議的并行線纜機制。

?????? 最初的?SCSI物理層傳輸介質是一種并行電纜,由?8根數據線和一些控制線構成。在每個發(fā)送時鐘里傳輸?8?位數據,傳輸速率相對說來是比較高的;但是由于電氣方面的問題,使得多數SCSI設備所允許的傳輸距離被限制在?15-25?m左右。隨著時間的推移,SCSI?并行總線的性能一直在提高,并通過提供更多的數據通路?(例如采用?16?位數據線和32位數據線)和更快的時鐘,得到了更大的帶寬。

?????? 并行總線存在的一個問題是飄移現象。如果把一組并行的多位數據同時發(fā)出,每條數據線上的傳輸延遲會出現差異,導致各個位不會在精確的同一時間到達目的地。所謂飄移指的是一個時間窗口,所有的數據位在這段分布的時間內都能到達目的地。各個傳輸線上傳輸延遲的差別越大,飄移窗口也就越大。根據傳輸線理論,總線中每條線路的傳輸阻抗?(包括容抗和感抗)跟它所處的位置有關,因此,傳輸延遲是位線所處的物理位置的函數。對于給定長度的線纜,要想增加時鐘頻率,就必須減小飄移窗口,從而最小化線路間的傳輸延遲差。顯然在高頻條件下,電纜越長,飄移窗口越大。

?????? SCSI?規(guī)范的第?1?個版本發(fā)布于?1986?年。自那時以來,它被廣泛應用于服務器和高檔?PC?中,其速率由最初的4?MBps發(fā)展到現在的?320?MBps,而且還在提高著。

?????? 作為一種介質,SCSI定義了一個并行總線,用于數據傳輸和通信控制。總線本身可以是印制導線的形式,也可以是一根電纜。外部?SCSI設備使用電纜以菊花鏈的形式連接到服務器上的控制器。在菊花鏈中,每個設備都跟其他設備串接。由于這個原因,外部?SCSI設備典型地都有兩個?SCSI連接器,可以分別連接到鏈中的前一個設備和后一個設備。現在的一個?SCSI?總線可以連接多至?16個設備。其中包括1?SCSI控制器和?15個存儲裝置。

?

2.1 SCSI 類型

SCSI有三個基本規(guī)范:

?????? SCSI-1SCSI-1是在1986年開發(fā)的原始規(guī)范,現已不再使用。它規(guī)定總線寬度為8位,時鐘速度為5MHz

?????? SCSI-21994年采用,此規(guī)范包括通用指令集(CCS)——支持任何SCSI設備所必需的18個命令。在此規(guī)范中,可以選擇將時鐘速度提高一倍,達到10MHz (Fast),將總線寬度增加為原來的兩倍,即16位,將設備數增加為15(Wide),或者同時實現上述兩種升級(Fast/Wide)SCSI-2還增加了命令隊列,允許設備存儲命令,并從主機排列命令優(yōu)先級。

?????? SCSI-3此規(guī)范于1995年正式出臺,包括一系列較小范圍的標準。涉及SCSI并行接口(SPI)的一組標準在SCSI-3中得到了繼續(xù)發(fā)展,SPISCSI設備之間的通信方式。大多數SCSI-3規(guī)范都以Ultra開頭,如Ultra for SPI規(guī)范、Ultra2 for SPI-2規(guī)范和Ultra3 for SPI-3規(guī)范。名稱中的FastWide的含義與SCSI-2中的一樣。SCSI-3是當前正在使用的標準。

?

?????? 雙倍總線速度、雙倍時鐘速度和SCSI-3規(guī)范的不同組合,產生了許多不同的SCSI規(guī)范。下表對幾種不同規(guī)范進行了比較。很多較慢的規(guī)范已不再使用——在此列出僅作比較之用。

名稱

規(guī)范

設備數量

總線寬度

總線速度

Mbps

異步SCSI

SCSI-1

8

8

5MHz

4Mbps

同步SCSI

SCSI-1

8

8

5MHz

5Mbps

Wide

SCSI-2

16

16

5MHz

10Mbps

Fast

SCSI-2

8

8

10MHz

10Mbps

Fast/Wide

SCSI-2

16

16

10MHz

20Mbps

Ultra

SCSI-3SPI

8

8

20MHz

20Mbps

Ultra/Wide

SCSI-3SPI

8

16

20MHz

40Mbps

Ultra2

SCSI-3SPI-2

8

8

40MHz

40Mbps

Ultra2/Wide

SCSI-3SPI-2

16

16

40MHz

80Mbps

Ultra3

SCSI-3SPI-3

16

16

40MHz

160Mbps

Ultra320

SCSI-3SPI-4

16

16

80MHz

320Mbps

?

?????? 除了總線速度提高之外,Ultra320 SCSI還使用分組化數據傳輸,從而提高其效率。Ultra2也是最后一種具有“窄”(8位)總線寬度的規(guī)范。

?

?????? 所有這些SCSI類型都是并行的——數據通過總線同時傳輸,而不是一次傳輸一種數據。最新的SCSI類型稱為串行連接SCSI(SASSerial Attached SCSI)這種連接使用SCSI命令,但以串行方式傳輸數據。SAS使用點對點串行連接,以3.0千兆位每秒的速度傳輸數據,每個SAS端口可以支持多達128個設備或擴展設備。

?

2.2? SCSI的控制器、設備和電纜

?????? SCSI控制器在SCSI總線上的所有其他設備和計算機之間進行協調。SCSI控制器也稱為主機適配器控制器既可以是插入可用插槽的卡,也可以內置在主板上SCSI? BIOSBasic Input output System)也在控制器上。它是一個小型ROM或閃存芯片,包含訪問和控制總線上的設備所需的軟件。

?????? 每個SCSI設備都必須具有唯一的標識符(ID)才能正常工作。例如,如果總線能夠支持16個設備,通過硬件或軟件設置指定的設備ID的范圍為0-15SCSI 控制器本身必須使用其中一個ID,通常是最高的那一個,而將其他ID留給總線上的其他15個設備使用。

?????? 內部設備通過帶狀電纜連接到SCSI控制器外部SCSI設備使用一條粗的圓形電纜,以菊花鏈形式連接到控制器(串行連接SCSI設備使用SATA電纜)。在菊花鏈中,每個設備都依次連接到下一個設備。因此,外部SCSI設備通常具有兩個SCSI連接器——分別連接前后兩個設備。

?

電纜本身通常由三層構成:

?????? 1)內層:保護性最好的層,包含實際發(fā)送的數據。

?????? 2)介質層:包含向設備發(fā)送控制命令的線路。

?????? 2)外層:包含傳輸奇偶校驗信息的線路,這些信息可確保數據的正確性。

?

?????? 不同SCSI標準使用不同的連接器,這些連接器通常不兼容,通常使用506880針。SAS使用較小的SATA兼容連接器。

?????? 一旦總線上的全部設備安裝完畢,而且分配了各自的ID,則總線的每一端都必須閉合。下面介紹如何執(zhí)行這一操作。

?

2.3 終接器

?????? 如果SCSI總線保持開放狀態(tài),沿總線發(fā)送的電信號會反射回來,從而干擾設備和SCSI控制器之間的通信。解決方法是終結總線用電阻電路閉合每一端。如果總線同時支持內部和外部設備,則必須終結每個系列的最后一個設備。

?

SCSI 終結的類型主要可分為兩類:被動(無源)和主動(有源)。

1)被動(無源)終結通常用于在標準時鐘速度下運行、且設備到控制器的距離小于1米的SCSI系統(tǒng)。

2)主動(有源)終結用于Fast SCSI系統(tǒng),或設備到SCSI控制器的距離大于1米的系統(tǒng)。

?

?????? SCSI還使用三種不同類型的總線信令,這也會影響終結。電脈沖以信令的方式在線路上發(fā)送。

?????? 1)單端(SESingle-ended)控制器生成信號,并通過單條數據線將信號傳送至總線上的所有設備。每個設備都會產生信號損失。因此,信號會很快開始衰減,由此SE SCSI的傳輸距離被限制為約3米以內。PC中普遍采用SE信令。

?????? 2)高壓差動(HVDHigh-Voltage Differential)HVD常用于服務器,它以串聯方式發(fā)送信號,采用一條數據高壓線和一條數據低壓線。SCSI總線上的每個設備都有信號收發(fā)器。控制器與設備通信時,總線沿途的設備接收信號并轉發(fā)信號,直至信號到達目標設備為止。這樣,控制器和設備之間的允許距離可顯著增加,可達25米。

?????? 3)低壓差動(LVDLow-Voltage Differential)LVDHVD的同類技術,工作原理非常相似。兩者之間的差異在于,LVD的收發(fā)器更小,并且內置于每個設備的SCSI適配器中。這使得LVD SCSI設備的價格更合理,并且LVD使用更少的電量就可以通信。缺點在于最大距離僅為HVD的一半——12米。

????? HVDLVD通常都使用被動終結器,即使設備和控制器之間的距離遠大于1米也是如此。這是因為收發(fā)器可以確保信號足夠強,能從總線的一端傳輸到另一端。

?

?

. ?SCSI 協議

?????? SNIA 共享存儲模型中,SCSI 負責從上層接收請求并轉發(fā),或者從并行設備獲取數據并轉發(fā)。

?????? 例如:有一個應用程序向操作系統(tǒng)發(fā)出對磁盤設備的寫請求。 SCSI協議層,這個寫請求被看成是特定數量的數據塊以協議的形式傳遞到指定位置的命令。作為操作系統(tǒng)和存儲設備之間的一個中介,SCSI 協議既不規(guī)定數據塊如何組織,也不規(guī)定怎樣把數據塊放到磁盤上。 SCSI把數據塊發(fā)送到目的地時,目標方可能是單個物理磁盤,也可能是把數據塊在多個物理盤上分條存放的RAID 控制器。 SCSI 協議的責任,就是在確認寫操作已經正確完成后向操作系統(tǒng)報告成功,而不管在磁盤上物理存儲是如何配置以及寫操作是如何執(zhí)行的。

?

3.1 ?SCSI

?????? SCSI 設備是在一定的環(huán)境中運行的。 通常需要有多個SCSI設備才能形成這樣的環(huán)境。 SCSI 設備間的運行環(huán)境也稱為SCSI域。在這個域內,生成和發(fā)送SCSI命令和任務管理請求的SCSI端口稱為SCSI發(fā)起方,接收和處理SCSI命令,根據請求執(zhí)行任務管理的端口稱為SCSI目標方。

?????? SCSI 域的組成包括SCSI設備,設備內的SCSI 發(fā)起方和目標方以及提供數據交接的總線。 SCSI總線連接了掛在它上面的所有SCSI設備。我們可以把一個實際的SCSI應用系統(tǒng)抽象為一個SCSI域,域中有多個SCSI設備,而且?guī)?/span>SCSI驅動器的計算機也可以被看成是一個SCSI設備。

?????? 盡管可以允許有多個SCSI設備接在同一條總線上,SCSI協議實際定義的是設備間一對一的數據交換,即同一時刻在SCSI總線上只允許有兩個設備互相交換數據。因為,SCSI上的各個設備是以分時共享的方式使用總線的。

?????? 在一個實際的SCSI域中,必須至少有一個發(fā)起方和1個目標方,考慮到主機對數據存儲的需求,配置了SCSI控制器的主機至少有1SCSI發(fā)起方。而磁盤設備主要是提供存儲和數據服務,一般都有目標發(fā)。

??????

3.2 ?SCSI 協議模型

?????? 為了便于實現和理解SCSI的各個協議,SCSI 采取了分層結構。 SCSI 大致可分為三層,即SCSI應用層,SCSI 傳輸層和SCSI 互連層。 SCSI中的各個具體協議一般都位于其中的某一層,可以可能跨越兩層。

?????? 在應用層,SCSI 體系結構把發(fā)起方(主機)和目標方(如磁盤)的通信定義為客戶/服務器交換。SCSI 客戶位于主機中,代表上層應用程序,文件系統(tǒng)和操作系統(tǒng)I/O請求。 SCSI 設備服務器位于目標設備中,對請求做出響應。 客戶/服務器請求和響應通過某種形式的底層協議進行傳輸。

?????? 在傳輸協議層,SCSI 設備之間通過一系列的命令實現數據的傳送,大致分成三個階段:命令的執(zhí)行,數據的傳送和命令的確認。

?????? SCSI 互聯層完成SCSI設備對總線的連接以及發(fā)送方和目標方的選擇等功能。

?

3.3 ?尋址機制

?????? 為了對連接在總線上的設備尋址,SCSI 協議引入了SCSI設備ID 和邏輯單元號LUN. SCSI 總線上的每個設備都必須有一個唯一的ID,其中包括服務器中的主機總線適配器也擁有設備ID. 取決域SCSI標準的版本,每條總線最多可允許有8個或者16個設備ID

?????? 諸如RAID 磁盤子系統(tǒng)和磁帶庫這樣的存儲設備可能包括若干個子設備,如虛擬磁盤,磁帶驅動器和介質更換器等。 因此SCSI 引入了邏輯單元號,以便于對大的設備中的子設備進行尋址。 另外一個服務器可能配置了多個SCSI控制器,從而就可能有多條SCSI總線。 因此,操作系統(tǒng)用一個三元描述標識一個SCSI目標: 總線/目標設備/邏輯單元號

?????? 傳統(tǒng)的SCSI 適配卡連接單個總線,相應的只具有一個總線號。 在引入存儲網絡之后,每個光纖通道HBAHost Bus Adapter)或iSCSIInternet SCSI)網卡也都連接一條總線,分配一個總線號,在他們之間依靠不同的總線號加以區(qū)分。

?????? 目標設備標識在一條總線菊花鏈上的單個設備,邏輯單元號則表示一個目標設備中的一個子設備。 通常,單個物理磁盤只具有一個邏輯單元號,而RAID磁盤陣列雖然也只有一個目標設備,但卻有多個邏輯單元號。

?????? 在一條總線上各個設備具有不同的優(yōu)先級。起初的SCSI 協議只允許有8個目標設備ID規(guī)定ID7 具有最高權限。后來版本的SCSI 協議允許有16個不同的目標設備ID。出于兼容性的考慮,從70的目標設備依然具有高優(yōu)先級,而從158的設備ID具有較低優(yōu)先級。

?????? 設備(服務器和存儲設備)在可以通過SCSI 總線發(fā)送數據之前必須預定總線(仲裁)。 在總線的仲裁期間,具有最高優(yōu)先權的目標設備總能獲勝。 在總線負載重的情況下,這可能導致具有較低優(yōu)先級的設備總是不被允許發(fā)送數據,因此,SCSI的仲裁過程是不平等的。

?????? 出于配置和管理的需要,操作系統(tǒng)使用總線號/目標設備ID/邏輯單元號三元組來標識一個SCSI目標,然而用戶和應用程序所看到的只是一個邏輯標識符,如D盤。 因此在總線號/目標設備ID/邏輯單元號和邏輯盤符之間存在著一個映射,提供在物理設備和上層文件系統(tǒng)之間不同表示形式的轉換。

?

?

3.4 ?交互方式

???? SCSI協議把發(fā)起方?(主機)目標方?(例如磁盤)之間的交互定義為客戶/服務器方式。應用客戶位于主機中代表上層應用程序、文件系統(tǒng)和操作系統(tǒng)的?I/0?請求。設備服務器位于目標設備中,它響應客戶的請求。請求和響應通過某種形式的下層分布設施進行傳輸,該分布設施稱作分布子系統(tǒng),可以是并行電纜,也可以是光纖通道協議或iSCSI

?????? 一個發(fā)起方可能會有多個請求同時發(fā)給目標方。多個請求產生應用客戶的多個實例,從而在設備服務器上產生多個事務。

?????? 發(fā)起方在其發(fā)往一個或多個目標的多個請求正在被相關的設備服務器處理的時候,需要能夠執(zhí)行上下文交換? (Context?Switching),即具有從一個任務快速切換到另一個任務的能力。例如,作為一個發(fā)起方的文件服務器可以向一個目標方發(fā)送一個寫請求。當該文件服務器在等待這個目標方準備好緩沖區(qū)以接收數據的那段時間內,可以切換到另一個掛起的任務,例如處理已經到達的對先前的另一個請求的響應,從而提高運行效率,最大化吞吐量。如果SCSI任務只能依次串行地執(zhí)行,那么等待每個寫或讀請求完成的時間就都被白白地浪費了。一般來說,上下文交換是由主機適配卡完成的,可以是并行?SCSI,也可以是光纖通道或iSCSI

?????? 由于?SCSI體系結構模型是層次化的,因此它對主機I/0請求的處理可以獨立于底層的分發(fā)子系統(tǒng)。一個應用客戶主機可以處理涉及不同種類的目標設備的?I/0?操作,例如一個應用服務器可以有直接附接的?SCSI?目標方,也可以有通過千兆位速率接口連接的串行SCSI?目標方。

?????? SCSI發(fā)起方和目標方之間讀寫數據是通過SCSI命令、分發(fā)請求、分發(fā)操作和響應來完成的SCSI命令和參數在?CDB?(Command?Descriptor?Block,命令描述塊)中指定。作為交互示例,在執(zhí)行對磁盤的?SCSI寫過程時,在發(fā)起方?(例如主機總線適配器)創(chuàng)建一個應用客戶,該客戶發(fā)送SCSI命令請求給目標方,令其準備緩沖區(qū)以接收數據。目標設備服務器在其緩沖區(qū)準備好之后,發(fā)送一個數據分發(fā)操作請求進行響應。接著,發(fā)送方就執(zhí)行分發(fā)操作,開始發(fā)送數據塊。依賴于底層的分發(fā)子系統(tǒng),數據塊可能按字節(jié)并行傳輸?(例如并行?SCSI?總線),也可能以分段成幀的形式串行傳輸?(例如光纖通道或iSCSI)

?????? 從應用程序或操作系統(tǒng)的角度看,寫操作只是一個事務。但實際上,對應一個寫操作,發(fā)送方和目標方可能要進行多次的分發(fā)請求和分發(fā)操作的交互,才能把命令請求的所有數據都發(fā)送給目標方

?????? 在一次讀操作中,SCSI命令塊遵循相反的數據分發(fā)請求和確認序列,然而由于是發(fā)起方發(fā)出讀命令,所以命令就假定自己已經準備好了緩沖區(qū)以接收第?1?批數據塊。在讀寫事務的每個階段所發(fā)送的數據塊數量,由發(fā)起方和目標方根據對方的緩沖區(qū)容量協商決定。例如,高性能磁盤陣列一般都能提供較大的緩沖區(qū),可以完成大規(guī)模的數據傳送,從而提高了產品性能。

?

3.5 ?SCSI總線信號

?????? SCSI在物理信號的基礎上定義了一組總線信號。這些信號可劃分為數據信號和控制信號兩類它們都是二進制信號,并且只有兩個穩(wěn)定狀態(tài)。其中有指示總線已經被占用的“BSY”信號,有清除并重新設置SCSI總線的“RST”信號等。

?

下面對這些信號的名稱和功能逐一進行介紹。

1.?BSY?(Busy,忙)信號

????該信號是或態(tài)信號,表示已經有設備占用總線。

2.?SEL?(Select,選擇)信號

????該信號是或態(tài)信號,由發(fā)起方用以選擇目標方,或者由目標方用以重新選擇發(fā)起方。

3.?C/D?(Control/Data,控制/數據)信號

????該信號由目標方驅動,表示在數據總線上傳送的是數據信號還是控制信號。該信號處于真狀態(tài)時表示控制信號。

4.?I/O(Input/Output,輸入輸出)信號

?????? 該信號由目標方驅動,控制數據在數據總線上的移動方向。?I/0?信號為時表示是對發(fā)起方的輸入,數據由目標方向發(fā)起方傳送;I/0信號為,則表示數據由發(fā)起方向目標方傳送。該信號也被用來區(qū)分選擇和重選階段。

5.?MSG?(Message,通信)信號

????該信號由目標方驅動,表示總線處于信息傳送的通信階段。

6.?REQ?(Request,請求)信號

????該信號由目標方驅動,表示有信息傳輸請求,請求一個?REQ/ACK?數據傳送握手過程。

7.?ACK?(Acknowledge,應答)信號

?????? 該信號由發(fā)起方驅動,表示對REQ信號的應答。

8.?ATN?(Attention,提醒)信號

??? 該信號由發(fā)起方驅動,指示一個提醒信息,表明發(fā)起方有一個消息要給目標方發(fā)送。

9.?RST?(Reset,重置)信號

????該信號是或態(tài)信號,表示一個硬件重置狀態(tài),指示總線進入重新設置階段,清除所有使用總線的?SCSI設備。

10.?DB?(DataBus,數據總線)信號

????DB?信號有兩種,分別是用于?8?位數據總線的?DB?(7-0P)和用于?16?位數據總線的DB?(l5~OP)。這些信號都用于傳送信息的值,它們包括數據比特信號,加上奇偶檢驗比特信號。

?????? 由于在SCSI總線上掛有多個設備,一些控制信號可能同時被多個SCSI設備驅動。這些信號被稱作或態(tài)信號。對于或態(tài)信號,SCSI設備不會主動將其驅動成,而是依賴總線終接器,在總線上的所有設備都沒有驅動該信號時將其設置成偽。只要有?1個或多個設備驅動該信號,該信號就是。與或態(tài)信號相對照的是非或態(tài)信號。對于非或態(tài)信號,SCSI設備可以將其驅動成

?

3.6 SCSI 總線的使用階段

?????? 根據對總線不同的使用,可以把SCSI總線狀態(tài)劃分成8個不同的階段:空閑階段,仲裁階段,選擇階段,重選階段,命令階段,數據階段,狀態(tài)階段和通信階段。

?????? 其中命令階段,數據階段,狀態(tài)階段和通信階段都設計信息在總線的傳送,所以又稱為:信息傳送階段。

?????? 除了空閑階段外,其他階段的總線都被SCSI設備占用。

?

3.6.1. 總線空閑階段

?????? 總線空閑表明沒有一個設備在使用?SCSI?總線,也表示在此狀態(tài)下,SCSI?設備如果需要,可以使用總線。SCSI設備需要在總線上的?SEL信號和?BSY信號都是之后,才可以檢測總線是否處于空閑狀態(tài)

?

作為例子,SCSI總線可能在下列情況下進入空閑狀態(tài):

????1.RST信號被設置;

????2.不成功的總線選擇或重選;

????3.目標設備解除連接;

????4.目標設備命令完成。

????一旦一個SCSI設備確定總線處于空閑階段,它就可以申請總線仲裁,從而進入仲裁階段。

?

3.6.2. 總線仲裁階段

?????? ?SCSI總線上的設備必須先獲得總線連接權,然后才可以進行其他的操作。在默認條件下,看似掛在總線上的設備在邏輯上是與總線斷開的,沒有參與總線上的活動SCSI設備只有在需要進行數據傳輸和設備狀態(tài)報告時才會申請總線連接權。SCSI設備一旦得到了總線連接權,就將在發(fā)起方和目標方之間形成一個物理連接的通道,然后就可以進行數據傳輸

?????? 一般情況下,總線的獲取與對目標方的選擇都由發(fā)起方完成。為了更加高效地使用總線,在某些情況下,例如在有較長時間的CPU處理等待或設備存取等待時,需要釋放總線以供其他設備使用。在等待的相關任務完成后,再重新進行總線仲裁和連接權獲取操作,以繼續(xù)進行暫停的工作。因此,有時目標方也可以執(zhí)行總線操作和連接權獲取操作,準確地講,是再獲取操作。

?????? SCSI總線上的設備的優(yōu)先級是由它的地址即?SCSI ID?決定的。在窄?SCSI?中的?ID?范圍是?0-7,對應的優(yōu)先級是從?1??8在寬?SCSI?中的ID范圍是O~l5其中對應?IDO~7的優(yōu)先級是從9?16遞增,而對應?ID8~l5?的優(yōu)先級是從?1??8?遞增。在這里,我們用較大的數值表示較高的優(yōu)先級,因此,ID7具有最高優(yōu)先級。在窄?SCSI?中,ID 0具有最低優(yōu)先級;在寬SCSI中,ID8具有最低優(yōu)先級。

?????? SCSI總線上的?ID數目是與?SCSI數據總線寬度一致的,因此,窄?SCSI8ID,寬?SCSI?16ID。在窄? SCSI?中的?8根數據線的編號是從0?7,在寬?SCSI?中的?16根數據線的編號是從?0?15有趣的是,具有某個編號的數據線上的信號,還被用來表示具有對應號碼ID??SCSI設備是否在執(zhí)行選擇或相關操作。例如當數據總線中的數據線DB?(2)在某個特定的階段被驅動成真時,就可以表示其ID?2?的設備已經在總線上執(zhí)行了選擇或相關操作。

?????? SCSI域中,主機是存儲設備的主要使用者,且對存儲的響應要求較高,?因此通常主機的優(yōu)先級最高,其分配的ID值也最大,在窄?SCSI?中是?ID?7,在寬?SCSI?中是IDl5

?????? 總線仲裁就是在可能同時有多個設備請求的情況下,最終只給予其中的一個?SCSI設備總線控制權的過程SCSI設備在檢測到總線空閑并等待一個時延后即可以把總線置成BSY,并把與它的?SCSI?ID對應的數據線信號置為,開始總線仲裁申請。

?????? 在等待?1?個時延后,該SCSI設備需檢測在數據總線上是否有更高優(yōu)先級的?SCSI?ID也為如果總線上確有更高優(yōu)先級的設備在進行總線申請,則該?SCSI?設備不再置BSY和對應的數據線為。放棄總線仲裁申請,直到下一次總線空閑;否則,該設備就獲得了總線控制權,并由該設備把SEL信號置為。同時,總線上的其他SCSI設備則檢測到?SEL信號為后,不再置BSY信號和對應的數據線為,放棄總線仲裁申請。為了保證確實已經獲得了總線控制權,該設備在置SEL信號為后、傳送其他信號前,需要有一定的時延。

?????? 在總線仲裁階段結束時,總線上有BSYSEL和與獲得總線的?SCSI設備的?ID,其對應的數據線的信號為

?

3.6.3. 選擇階段

?????? 在選擇階段,得到總線使用權的SCSI設備在總線上選擇目標設備,以便隨后可以向該目標設各發(fā)送諸如讀和寫這樣的命令。這個階段主要是完成對具有特定SCSI?ID的設備的選擇,其相關協議的定義主要是在SCSI體系結構的互連層。需要注意的是,邏輯單元號LUN的尋址是邏輯單元通過SCSI傳輸層協議完成的,不在互連層。與LUN編址相關的協議在傳輸協議層描述。

?????? 贏得仲裁的SCSI設備在把BSYSEL信號置成,經過一小段時延后,即可進入選擇階段。作為發(fā)起方,贏得仲裁的SCSI設備不可以把1/0信號置成。在此階段,發(fā)起方需要把與自己的SCSI?ID對應的數據線的信號和對應所要選擇的目標設備的SCSI?ID的數據線的信號置成,經過一小段時延,再把BSY信號置成,然后等待目標方的響應。

?????? 例如,SCSI ID6的主機把對應自己的ID的數據線DB(6)和對應目標設備的ID(=6)的數據線DB(0)置成后,數據總線上信號值的狀態(tài)將如下所示。

?????DS?(?0)?DS?(1)?DS?(2)?DS?(3?)?DS?(4)?DS?(5)?DS?(6)?DS?(7)

??????1???????????0?????????? 0???????? ?0????????? 0????????? ?0???????? ? 1??????????0

?

?????? 此時,只有兩個數據線的信號值是。如果有多于兩個的數據線為,則目標方認為有誤。目標方在SEL和對應它的ID的數據線的信號為并且BSYI/0信號為的情況下,就可以確定它自己已經被選為目標設備。此時,目標方設備應該重新把BSY信號置成。發(fā)起方在檢測到BSY的信號后,就把SEL信號置成特別需要注意的是,在該階段結束時,BSY信號是由目標方置位的。

?

3.6.4. 重選階段

?????? ?SCSI?目標設備忙于處理其內部事務?(通常是對于執(zhí)行對存儲數據的讀或寫操作)期間,它可以在等待操作?(比如把存儲在設備中的數據讀入緩沖區(qū)或把暫存在緩沖區(qū)的數據寫入緩沖區(qū))完成時釋放總線供其他設備使用,并在操作完成后重新申請對總線的使用權。因此,重選階段也發(fā)生在總線仲裁階段之后。但與選擇階段不同,重選階段由目標方啟動,重新建立由發(fā)送方啟動成功但被目標方掛斷的連接。

?????? 在目標設備釋放了總線之后,BSY?SEL信號處于被置成的狀態(tài)。此時日標設備通過把I/0信號置成使自己成為贏得對總線使用權的一方。在重選階段,目標方也需要把與自已的?SCSI?ID?對應的數據線的信號和對應發(fā)送方設備的?SCSI?ID的數據線的信號置成,經過一段短的時延,再把BSY信號置成,然后等待發(fā)起方的響應。

?????? 發(fā)起方在SELI/0和對應它的?ID?的數據線的信號為并且BSY的情況下,就可以確定它自己已經被重選。被重選的發(fā)起方可以通過查看數據總線來驗證重迭的目標方的?SCSI?ID。然后,發(fā)起方設各重新把BSY信號置成。目標方在檢測到BSY的信號后,它也執(zhí)行把BSY驅動成的操作,并把?SEL信號置成

?????? 被重選的發(fā)起方在檢測到?SEL信號為后,它就把BSY置成,而目標設備則繼續(xù)把?BSY?設置成,直到它放棄對總線的使用權為止。這樣,在該階段結束時,信號的狀態(tài)與選擇階段一樣,也是由目標方設置的BSY信號。

?

3.6.5. 信號傳送階段

?????? 命令階段、數據階段、狀態(tài)階段和通信階段被組合在一起作為信息傳送階段,因為它們都被用來通過數據總線傳送數據或控制信息。SCSI?使用?C/DI/0??MSG信號區(qū)分不同的信息傳送階段以及對應的信息傳輸方向。目標方驅動這3個信號,控制從一個階段到另一個階段的轉變。發(fā)起方可以通過把ATN信號置成請求一個通信出階段,而目標方可以通過釋放MSGC/DI/0??BSY信號引入總線空閑階段。信息傳送階段使用一個或多個REQ/ACK握手過程控制信息傳送。每個REQ/ACK握手過程允許傳送?1個或多個字節(jié)的信息。因為信息傳送階段一定是在選擇階段或重選階段之后,所以不改變BSY?SEL信號。事實上,在該階段,BSY持續(xù)為SEL信號持續(xù)為

??????

?????? 2-2?示出了?MSGC/DI/0信號值與階段名及信息傳輸方向之間的關系。其中的是相對子發(fā)送方設備而言的,且數據傳輸方向由I/0信號確定。

?

?2-2??MSGC/D?1/0信號值與階段名及信息傳輸方向之間的關系

??MSG

??CID

??1/0

?階段

?具體階段

?傳輸方向

??1

??0

??0

?*?(未用)

??1

??0

??1

?*?(末用)

??1

??1

??0

?通信

?通信出

?從發(fā)送方到目標方

??1

??1

??1

?通信

?通信入

?從目標方到發(fā)送方

??0

??0

??0

?數據

?數據出

?從發(fā)送方到目標方

??0

??0

??1

?數據

?數據入

?從目標方到發(fā)送方

??0

??1

??0

?命令

?從發(fā)送方到目標方

??0

??1

??1

?狀態(tài)

?從目標方到發(fā)送方

注釋:0=偽,1=真,*=保留未來定義

?

?????? 命令階段允許目標方請求發(fā)起方傳送命令信息。在命令階段的?REQ/ACK?握手過程中,目標方把C/D信號置成,把I/0信號和MSG信號置成

?????? 數據階段包括數據入階段和數據出階段

1數據入階段允許目標方請求把數據從目標方傳送給發(fā)起方。在數據入階段的?REQ/ACK?握手過程中,目標方把I/0信號置成,把C/D信號和MSG信號置成

2數據出階段允許目標方請求把數據從發(fā)起方傳送到目標方。在數據出階段的?REQ/ACK?握手過程中,目標方把C/D信號、I/0信號和?MSG信號都置成

??????

?????? 狀態(tài)階段允許目標方請求把狀態(tài)信息從目標方傳送給發(fā)起方。在狀態(tài)階段的REQ/ACK握手過程中,目標方把C/D信號和I/0信號置成,把MSG信號置成

?????? 通信階段可以是通信入階段或通信出階段。無論是在通信入階段,還是在通信出階段,都可以傳送多條消息。傳送的第一個字節(jié)可以是單字節(jié)消息,也可以是多字節(jié)消息的首字節(jié)。在?1?個通信階段可以傳送多個多字節(jié)消息。

?????? 通信入階段允許目標方請求把消息從目標方發(fā)送給發(fā)起方。在通信入階段的?REQ/ACK握手過程中,目標方把C/D信號、I/0信號和?MSG信號都置成

????通信出階段允許目標方請求把消息從發(fā)起方傳送到目標方。目標方在響應發(fā)起方建立的提醒條件時調用通信出階段。在通信出階段的?REQ/ACK?握手過程中,目標方把C/D信號和?MSG信號置成,把I/0信號置成

?

3.7 ?異步傳輸和同步傳輸

?????? 與傳統(tǒng)網絡的數據包傳送方式不同,SCSI 基于REQ/ACK 信號控制數據傳輸的過程。 根據REQACK信號控制與數據總線置位時間的差別,信息傳輸又可分為異步傳輸和同步傳輸兩個列別。 而且,無論傳輸的方向如何,信息的傳輸都是由REQ信號開始,并且REQ信號都是由目標方控制和發(fā)送的。

?

1. 異步信息傳輸

?????? 異步傳輸方式可用于數據階段的數據傳輸,也可用于命令、狀態(tài)和通信階段的信息傳輸。首先,信息傳輸的方向是由?I/O信號決定的。如果?I/O信號為,那么信息是由目標方向發(fā)起方傳輸。在此情況下,為了傳送信息,目標方先把數據線?DB(7/15-0P)信號置成對應想要傳送的二進制數位序列的值,然后把REQ信號置成?發(fā)起方在檢測到REQ時,讀取數據總線的值,然后把ACK信號置成。當目標方檢測到ACK時,它就可以改變或取消放置在數據總線上的值,并把REQ置成。發(fā)起方在檢測到REQ置成時把ACK也置成。當目標方檢測到ACK時,總線上就完成了一次數據傳輸,并可進行下一次數據傳輸。

?????? 在異步傳輸方式中,每個REQ/ACK握手過程傳送?1(對于窄?SCSI)?2?個字節(jié)(對于寬?SCSI)的信息。特別需要注意的是,在此方式中,目標方在置?REQ?信號后,必須持續(xù)地把數據線?DB?(7/l5~OP)置成對應所要傳送的二進制數位序列的值,直到它檢測到ACK為真為止。

?????? 如果I/O信號為,那么信息是由發(fā)起方向目標方傳輸。在此情況下,目標方通過把REQ置成來請求信息。發(fā)起方驅動?DB?(7/l5~OP)到它需要發(fā)送的二進制數位序列的值,然后把?ACK置成。此后,繼續(xù)把?DB?(7/l5~OP)信號置成這個二進制數位序列的值,直到?REQ?變成為止。目標方則是在檢測到?ACK變成時,讀?DB?(7/l5~OP)的值,然后把?REQ?置成。發(fā)起方在檢測到REQ變成時,它可以改變或取消放置在數據總線上的值,并把ACK置成

?????? 此后,目標方可以通過把REQ置成,繼續(xù)請求信息。

?

2. 同步數據傳輸

?????? 同步數據傳輸只在數據階段使用,并且是在目標方和發(fā)起方之間建立同步數據傳輸協定之后使用。

?????? 與異步傳輸中的規(guī)則相同,當?I/0?信號為時,數據是由目標方向發(fā)起方傳輸。目標方先把數據放置到數據總線上,即置?DB?(7/l5~OP)對應的線路,然后把REQ置成。在同步數據傳輸中,目標方在把REQ置成后,需要把放置在DB?(7/l5~OP)上的二進制數位序列的值保持一個指定長度的時間,但不必維持到對ACK信號變的接收。這是與異步傳輸不同的一個地方。在指定長度的時間期滿后,目標方就可以把?REQ?置成,并且可以改變或取消放置在數據總線上的值,然后準備發(fā)送下一個數據。發(fā)起方在檢測到REQ之后一個指定長度的時間內讀DB?(7/l5~OP)上的值,然后把ACK置成作為對目標方的響應。

?????? 與異步傳輸一樣,在同步數據傳輸中,發(fā)起方也在接收到一個REQ并讀取了數據總線上的值之后就發(fā)送一個ACK信號。但與異步傳輸不同的是,目標方在接收到對一個數據的ACK之前可以發(fā)送多個REQ信號。SCSI為同步數據傳輸的REQ/ACK握手過程定義了一個稱作REQ/ACK飽和值的參數,它表示在接收到ACK信號前可以發(fā)送的最大REQ信號數。如果發(fā)送的REQ數日多于接收到的ACK數目,并達到了定義的REQ/ACK飽和值,那么目標方暫停發(fā)送REQ信號和數據,直到接收到下一個ACK為止。這在原理上與傳統(tǒng)網絡中的流控制類似。????

?????? ?I/O信號為時,數據是由發(fā)起方向目標方傳輸。發(fā)起方每次接收到一個REQ信號就發(fā)送一次數據。目標方先把REQ置成。發(fā)起方檢測到REQ后把要發(fā)送的數據放置到數據總線上,即置DB?(7/l5~OP)對應的線路,然后把ACK置成。接著發(fā)送方需要在一個指定長度的時間內保持在總線上放置的數據不變,?并繼續(xù)把ACK置成。在指定的時間期滿后,發(fā)起方可以把ACK置成,并且可以改變或取消放置在數據總線上的值。目標方在檢測到ACK信號變后,在指定的ACK保持為的時間內讀取數據總線上的數據,并把REQ置成

?????? 此后,目標方可以通過把REQ再置成繼續(xù)請求信息。

?

3.8 ?SCSI 命令描述塊

?????? 在互連層完成?SCSI設備對總線的連接,以及發(fā)送方和目標方的選擇的基礎上,傳輸層協議執(zhí)行實際的數據傳輸。傳輸層提供了兩類服務,一是命令的執(zhí)行和確認;二是數據的傳送命令的執(zhí)行是在總線進入命令階段后,發(fā)起方通過命令描述塊(command description blockCDB)向目標方發(fā)送具體的命令。命令的確認是在總線進入通信 (Message)階段后,發(fā)起方接收由目標方發(fā)送的命令執(zhí)行確認信息。數據的傳送則是在數據階段?(數據出或數據入)進行的。傳輸協議的運行過程包括發(fā)送命令、傳輸數據和對命令執(zhí)行的確認SCSI基礎命令規(guī)范? ?SPC?(SCSI?Primary?CommandsSCSI基礎命令)定義了?CDB?的標準。

?????? 除了基本命令外,SPC還定義了所有類型的?SCSI?目標方設各都可以使用的管理參數,如診斷參數和日志參數等。

?????? 發(fā)起方對存儲設備的實際操作是通過向目標方發(fā)送一個命令描述塊來完成的。在一些情況下,在一個命令描述塊之后可能還有一些參數要傳給目標方,按照具體的協定,這些更多的參數是在命令描述塊后的數據出階段發(fā)送的。命令描述塊有定長和不定長兩種格式,而定長格式的命令描述塊又有?61012?16字節(jié)不同的長度規(guī)定。

?

命令描述塊由編號從0~5??6個字節(jié)組成。下面介紹其中各個段的內容。

1.?操作碼

?????? 操作碼是所有命令描述塊都有的,它總是被放在命令描述塊的開頭一個字節(jié)。正如其名字所言,操作碼定義CDB?的具體操作。8?比特在理論上共有256個可能的操作碼。實際上其中有一些是保留碼,日前尚未定義。操作碼的?8?個二進制位又分為兩部分5-7位是組代碼,指示該命令具體屬于哪個命令組,它決定?CDB?的長度,如“000”為組“0”,表示6個字節(jié)的CDB命令組,0-4位則是具體的命令代碼。

?

2.?混雜CDB信息

?????? 該參數表示與具體的CDB相關的信息,其中一個例子是表示邏輯設備號,尋址在SCSI?目標設備中的一個邏輯單元。對應一個SCSI?ID?的設備可以有多個邏輯單元,所以邏輯單元擴展了?SCSI總線可訪問的設備數目,使得目標方設各上可以有多個可被訪問的設備而只占用一個有效的?SCSI?ID對一個邏輯單元的實際訪問是通過該邏輯單元的一個特定的編號,即邏輯單元號實現的。

?

3.?邏輯塊地址

?????? 該地址是邏輯單元?(比如磁盤)中的起始操作塊的位置。在?6?字節(jié)的CDB?中,有21?位的邏輯塊地址。SCSI把邏輯單元、卷或分區(qū)抽象成塊的數組,每一塊都有一個邏輯地址,編號從?0?開始。對?SCSI?存儲設備的每一次讀/寫操作都是針對一組連續(xù)的邏輯塊進行的,因而需要指出起始塊的邏輯地址。

?

4.?傳送長度

?????? 該長度表示命令所請求的傳送量,通常是塊數。在有些類別的?CDB?中也可能是字節(jié)數。0表示不需要傳送數據。

?

5.?參數表長度

?????? 有些命令還需要更多的參數,這些參數由客戶提供,定義在數據出緩沖區(qū)中。參數表長度就表示需要傳送到存儲設備的這類參數的長度,0表示不需要傳遞參數。

?

6.?分配長度

?????? 分配長度表示應用客戶為數據入緩沖區(qū)分配的最大長度,根據具體的CDB類別,可能是字節(jié)數,也可能是塊數。應用客戶通常使用該數據入緩沖區(qū)接收特殊信息,如日志數據、診斷數據等。如果傳送的信息量超過了分配長度表示的最大值,則相關設備不應再傳,并使用狀態(tài)階段返回特定的狀態(tài)信息。

?

7.?控制碼

?????? 它是所有?CDB?格式的最后一個字節(jié)。在其中有一些特殊的域,如已經定義的一個NACA位。在一些情況下,一個命令的執(zhí)行會以檢查條件?(Check?Condition)”狀態(tài)中止,它表明在命令執(zhí)行過程中出現了錯誤或異常。? 有些命令執(zhí)行的錯誤或異常不會影響其他命令的執(zhí)行,也不需要作善后的恢復處理,而另一些命令執(zhí)行的錯誤或異常則可能導致命令組中的其他命令被異常中止,需要專門的命令對其做善后處理,并要求存儲設各在完成善后處理工作之前不再處理該用戶的其他命令。為了區(qū)分這兩種不同的情況,也為了讓應用客戶能夠事先聲明哪些命令執(zhí)行的錯誤或異常需要善后處理,SCSI允許應用客戶在CDB?的控制碼中設置NACA,請求存儲設備在命令執(zhí)行以檢查條件狀態(tài)中止時建立自動跟隨條件?(Condition),從而允許應用客戶在隨后的善后處理命令中把新?(New)任務的屬性設置成自動跟隨?(Auto?ContingentAllegianceACA)

?

3.9 ?SCSI 的讀操作和寫操作過程

1. SCSI的讀操作過程

?????? 如果計算機要從存儲設備上讀取文件或數據,那么無論數據的大小如何,都至少要經歷一個SCSI的讀操作過程。當然,操作系統(tǒng)需首先將用戶的讀取操作通過?SCSI?I/0的應用程序編程接口?(Application?Programming?InterfaceAPI)轉化為?SCSI的讀操作,并在操作完成后通過相應的API返回響應的值。

?

SCSI域內,這個操作在傳輸層被簡單地描述成?5個主要過程:

????(1)發(fā)起方通過CDB發(fā)送SCSI的讀命令。

????(2)目標方接收到該命令,通過設備管理器在指定的邏輯單元中執(zhí)行該命令請求的操作。

????(3)目標方以字節(jié)為單位向發(fā)起方傳送數據。

????(4)在數據傳輸完畢后,目標方向發(fā)起方發(fā)送命令完成的報告。

????(5)發(fā)起方接收到命令完成的響應。

?

?????? 當然,這些過程是建立在?SCSI?互連層的基礎上的。在第一個過程之前,SCSI?總線由空閑階段進入總線仲裁和選擇階段,完成發(fā)起方對總線使用權的獲得以及對目標方的選擇和尋址。

?????? 在第一個過程中,目標方發(fā)送REQ信號,請求信息傳輸,控制總線進入信息傳送的命令階段。目標方通過發(fā)送方傳送的?CDB獲取命令。在其后的第?2?個和第?3個過程中,目標方從它控制的外圍設備中讀取數據并發(fā)送到發(fā)起方。如目標方準備數據需要較長的時間,則可能有多個總線釋放、進入空閑和重選階段的輪回。目標方在每次完成數據傳送后,都控制總線進入狀態(tài)階段并返回一個狀態(tài)信息。為進一步表示讀命令的全部完成,在第四個過程中,總線進入信息傳送的通信階段,目標方發(fā)送命令完成信息,并可釋放?SCSI?總線的?BSY信號。在第五個過程中,發(fā)起方接收到日標方命令完成的響應,總線可恢復到空閑階段。

?

2. SCSI的寫操作過程

?????? SCSI的寫操作過程與讀操作過程類似,但數據傳送的方向不同,它把數據從發(fā)送方向目標方傳送。在發(fā)送方系統(tǒng)中有對文件做寫操作的用戶請求時,它先通過文件系統(tǒng)查找該文件在存儲設備?(如磁盤)上的邏輯塊地址 ?(Logical?BlockAddressLBA),接著文件系統(tǒng)把該LBA連同其他一些參數,如數據的指針、數據的長度以及邏輯單元號等傳遞給SCSI??API,并指示一?個寫操作。例如寫?6000字節(jié)到?LUNO?的邏輯塊地址OOOl234ABSCSIAPI則具體發(fā)送一個寫命令給LUNO,并將數據以存儲設備認可的方式分批或一次性地傳遞到?LUNO,直到數據全部傳輸完畢。之后,SCSI??API返回,并指示任務完成。然后,文件系統(tǒng)通知應用程序任務完成。至此,一個文件的寫操作完成。

當然,在數據寫操作中,仍然需要具體運行SCSI的各個階段,并需要發(fā)送SCSI信號以及SCSI命令,如寫命令等。這些方面都與上面描述的讀操作類似,此處不再贅述。

??????

?????? 從上面的介紹可以看出,一個簡單的數據讀或寫操作會涉及一系列的過程。實際上,在這些過程中,除了有應用程序?(如字處理軟件、數據庫等)為用戶提供的直接操作界面和操作系統(tǒng)給應用程序提供的通用的系統(tǒng)功能外,還有文件系統(tǒng)、SCSIAPISCSI設備命令、SCSI驅動程序、總線和存儲設備等多種軟硬件的參與。

?

?

?

?

?

?

?

?

整理自《存儲網格技術與應用》

------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

網上資源: http://tianlesoftware.download.csdn.net

相關視頻:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(滿); DBA2 群:62697977(滿)

DBA3 群:62697850?? DBA 超級群:63306533;????

聊天 群:40132017

--加群需要在備注說明Oracle表空間和數據文件的關系,否則拒絕申請

轉載于:https://www.cnblogs.com/sqlite3/archive/2011/02/21/2568218.html

總結

以上是生活随笔為你收集整理的SCSI 总线和协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。