在pcie總線上傳輸報文的方法、設備和系統的製作方法
2023-05-25 01:52:06 1
專利名稱:在pcie總線上傳輸報文的方法、設備和系統的製作方法
技術領域:
本發明實施例涉及通信技術領域,尤其涉及一種在快速局部 (PeripheralComponent Interconnect Express,簡稱為PCIE)總線上傳輸報文的方法、設 備和系統。
背景技術:
小型計算機系統接口(Small Computer System Interface,簡稱為SCSI)協議 是一種被廣泛應用於計算機與外圍輸入輸出anput/Output,簡稱為1/0)設備(如硬碟、 軟碟機、光碟機、印表機、掃描儀等)通信的協議族,在計算機與存儲設備的通信應用中尤為廣 泛。SCSI協議通常採用客戶機-伺服器架構。其中,在SCSI協議中客戶機又稱為啟動器 (Initiator),伺服器又稱為目標器(Target)。啟動器可以向目標器發送命令請求服務,目 標器執行完請求後向啟動器返回執行結果,實現啟動器和目標器之間的交互過程。其中的 命令請求服務可以但不限於包括如下指令inquiry,標識查詢目標器的詳細信息;Iteport LUNs,要求目標器匯報邏輯單元號情況;format Unit,要求目標器格式化;READ,向目標器 發送讀數據請求;WRITE,向目標器發送寫數據請求等等。現有技術中,主機和存儲設備之間進行數據交互,目標器和啟動器之間傳輸SCSI 協議報文,例如通過串行連接小型計算機系統接口(Serial AttachedSCSI,簡稱為SAS) 艮文、Internet 小型計算機系統接口 (Internet SmallComputer System Interface,簡稱 為iSCSI)報文,在啟動器和目標器上需要通過特定的物理設備或者特定的適配器進行協 議的轉換,在啟動器本地,一般的,例如,對於SCSI的啟動器端,需要SCSI的特定的適配器, 對於SAS的啟動器端,需要SCSI特定的適配器,其中,啟動器和目標器之間通過SCSI或SAS 的線纜進行連接,相應的,在目標器端,需要配置SCSI特定的適配器或SAS特定的適配器, 對於iSCSI或乙太網光纖通道(Fibre Channel overEthernet,FCoE)需要乙太網進行連 接,目標器端需要配置乙太網適配器,對於光纖通道需要光纖通道進行連接,目標器端需要 配置光纖通道適配器。對於這種特定的物理設備或者特定的適配器,需要分別安裝在啟動 器和目標器上並且進行相應的配置才能實現協議的轉換,進而使得啟動器和目標器之間可 以實現數據傳輸交互。然而,這種安裝在啟動器和目標器上的特定的物理設備或者特定的適配器,數據 存儲和訪問需要附接於網絡實現,由於其自身帶寬的限制,會嚴重影響數據傳輸的傳輸速 度,對網絡傳輸的依賴性較強,出現的網絡傳輸延遲等狀況也會影響數據傳輸和存儲的速 度,即使是現有的伺服器通過DAS進行附加存儲,也需要特定的物理設備或者特定的適配 器,上述方式勢必會提高設備或系統的成本,影響其市場競爭力。
發明內容
本發明實施例提供一種在PCIE總線上傳輸報文的方法、設備和系統,用以實現在 PCIE總線上直接傳輸SCSI協議報文,不需要特定的物理設備或者適配器進行協議的轉換,提高了報文的傳輸速度,降低了設備的成本。本發明實施例提供一種在PCIE總線上傳輸報文的方法,包括發送端設備對小型計算機系統接口 SCSI協議報文進行封裝,得到已封裝的SCSI 協議報文;將所述已封裝的SCSI協議報文攜帶在PCIE數據包中,並通過PCIE總線將所述 PCIE數據包發送給接收端設備,以使所述接收端設備從所述PCIE數據包中解析出所述 SCSI協議報文後根據所述SCSI協議報文的指令執行相應操作。本發明實施例還提供了一種在PCIE總線上傳輸報文的設備,包括封裝模塊,用於對小型計算機接口 SCSI協議報文進行封裝,得到已封裝的SCSI協 議報文;發送模塊,用於將所述已封裝的SCSI協議報文攜帶在PCIE數據包中,並通過PCIE 總線將所述PCIE數據包發送給接收端設備,以使所述接收端設備從所述PCIE數據包中解 析出所述SCSI協議報文後根據所述SCSI協議報文的指令執行相應操作。本發明實施例又提供了一種在PCIE總線上傳輸報文的系統,包括發送端設備和 接收端設備;所述發送端設備包括封裝模塊,用於對小型計算機接口 SCSI協議報文進行封裝,得到已封裝的SCSI協 議報文;發送模塊,用於將所述已封裝的SCSI協議報文攜帶在PCIE數據包的處理層協議 TLP包中,並通過PCIE總線將所述PCIE數據包發送給所述接收端設備;所述接收端設備包括解析模塊,用於從所述PCIE數據包中解析出所述SCSI協議報文;執行模塊,用於根據所述SCSI協議報文的指令執行相應操作。本發明實施例提供的在PCIE總線上傳輸報文的方法、設備和系統,通過對SCSI協 議報文進行封裝後得到已封裝的SCSI協議報文,並將已封裝的SCSI協議報文攜帶在PCIE 數據包中,並通過PCIE總線將攜帶有已封裝的SCSI協議報文的PCIE數據包傳輸給接收端 設備,實現了在PCIE總線上傳輸SCSI協議報文,使得通過PCIE總線建立彼此連接的任意 設備之間均可以通過SCSI協議報文進行相互的操作,且數據傳輸的帶寬高、處理速度快, 不需要特定的物理設備或者適配器進行協議的轉換,應用在存儲設備上,可以不依賴於網 絡附接存儲的方式,減少了網絡傳輸的延遲對數據訪問和存儲的影響,從而提高了報文的 傳輸速度,例如,由於通過系統總線進行數據傳輸,不需要物理線纜和特定的適配器等,可 以降低設備的成本;同時,通過在PCIE總線上傳遞SCSI協議報文,使得通過PCIE總線連接 的兩設備之間可以通過SCSI協議報文進行相互的操作,例如,可以將將存儲設備通過SCSI 接口直接連接到一臺計算機上,而不需要定義各種私有的協議進行相互的操作,提升了存 儲設備的通用性。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發
6明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根 據這些附圖獲得其他的附圖。圖1為本發明一個實施例提供的在PCIE總線上傳輸報文的方法流程圖;圖2為本發明一個實施例提供的在PCIE總線上傳輸報文的設備結構示意圖;圖3為本發明一個實施例提供的在PCIE總線上傳輸報文的系統結構示意圖。
具體實施例方式為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例 中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是 本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員 在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。圖1為本發明一個實施例提供的在PCIE總線上傳輸報文的方法流程圖,如圖1所 示,該方法包括步驟101 發送端設備對SCSI協議報文進行封裝,得到已封裝的SCSI協議報文, 並將已封裝的SCSI協議報文攜帶在PCIE數據包中;其中,本實施例中的「封裝」實際上指的是將SCSI協議報文映射為符合PCIE數據 包的形式的一種做法。其中,可以將已封裝SCSI協議報文攜帶在PCIE的處理層協議(Transaction Layer Protocol,簡稱為TLP)包中。SCSI協議報文PCIE數據包中具體的位置可以如表1 中所示本發明實施例提供的PCIE數據包的格式示意圖。表 1
幀開始DLLP 頭TLP頭已封裝了 SCSIECRCLCRC幀結束協議I艮文的TLP包其中,有多種情況可以使得發送端設備將SCSI協議報文進行封裝後攜帶在PCIE 數據包中,例如,計算機應用程式或者CPU希望通過PCIE總線對某一設備進行讀寫操作,則 會將讀寫請求轉換為SCSI讀寫命令並對其進行封裝,然後攜帶在PCIE數據包中。或者,某 一通過PCIE總線與計算機相連接的設備接收到計算機通過PCIE總線發送的請求報文後需 要返迴響應報文時,該設備會將響應報文轉換為SCSI響應報文並對其進行封裝,然後攜帶 在PCIE數據包中。其中,如果PCIE數據包的TLP包中攜帶的已封裝的SCSI協議報文為命令請求報 文,則發送端設備為啟動器,接收端設備為目標器,封裝有SCSI協議報文的TLP包可以但不 限於如表2所示表 權利要求
1.一種在快速局部PCIE總線上傳輸報文的方法,其特徵在於,包括發送端設備對小型計算機系統接口 SCSI協議報文進行封裝,得到已封裝的SCSI協議 報文;將所述已封裝的SCSI協議報文攜帶在PCIE數據包中,並通過PCIE總線將所述PCIE 數據包發送給接收端設備,以使所述接收端設備從所述PCIE數據包中解析出所述SCSI協 議報文後根據所述SCSI協議報文的指令執行相應操作。
2.根據權利要求1所述的方法,其特徵在於,所述將所述已封裝的SCSI協議報文攜帶 在PCIE數據包中包括將所述已封裝的SCSI協議報文攜帶在所述PCIE數據包的處理層協議TLP包中。
3.根據權利要求1或2所述的方法,其特徵在於,如果所述SCSI協議報文為SCSI命令 請求報文,則所述發送端設備為啟動器,所述接收端設備為目標器;相應的,所述對SCSI協議報文進行封裝包括 用操作類型指示所述SCSI協議報文為SCSI命令請求報文; 用命令描述塊CDB指示所述SCSI命令請求報文的具體命令; 用邏輯單元號LUN指示所述SCSI命令請求報文的具體操作對象。
4.根據權利要求3所述的方法,其特徵在於,所述對SCSI協議報文進行封裝還包括 用命令指示位指示所述SCSI命令請求報文為讀請求或寫請求;用讀數據長度指示所述啟動器期望從所述目標器獲取的數據長度; 用讀緩衝區地址指示所述目標器將數據發送到讀緩衝區; 用寫數據長度指示所述啟動器期望寫入所述目標器的數據長度; 用寫緩衝區地址指示所述目標器從所述寫緩衝區中讀取數據。
5.根據權利要求1或2所述的報文,其特徵在於,如果所述SCSI協議報文為SCSI命令 響應報文,則所述發送端設備為目標器,所述接收端設備為啟動器;相應的,所述對SCSI協議報文進行封裝包括用操作類型指示所述SCSI協議報文為SCSI命令響應報文;用狀態指示位指示SCSI命令請求報文的完成狀態。
6.根據權利要求5所述的方法,其特徵在於,所述對SCSI協議報文進行封裝還包括 用溢出指示位指示數據溢出;用剩餘數指示數據溢出的長度;用檢測數據指示所述目標器反饋給所述啟動器的附加數據。
7.根據權利要求1或2所述的方法,其特徵在於,如果所述SCSI協議報文為SCSI任務 管理請求報文,則所述發送端設備為啟動器,所述接收端設備為目標器;相應的,所述對SCSI協議報文進行封裝包括用操作類型指示所述SCSI協議報文為SCSI任務管理請求報文;用功能指示所述啟動器請求的任務管理內容;用邏輯單元號LUN指示具體操作對象。
8.根據權利要求1或2所述的方法,其特徵在於,如果所述SCSI協議報文為SCSI任務 管理響應報文,則所述發送端設備為目標器,所述接收端設備為啟動器;相應的,所述對SCSI協議報文進行封裝包括用操作類型指示所述SCSI協議報文為SCSI任務管理響應報文;用響應結果指示SCSI任務管理請求報文的執行結果。
9.根據權利要求1或2所述的方法,其特徵在於,如果所述SCSI協議報文為SCSI異步 事件報文,則所述發送端設備為目標器,所述接收端設備為啟動器;相應的,所述對SCSI協議報文進行封裝包括用操作類型指示所述SCSI協議報文為SCSI異步事件;用檢測數據指示所述目標器的異常狀況。
10.一種在快速局部PCIE總線上傳輸報文的設備,其特徵在於,包括封裝模塊,用於對小型計算機接口 SCSI協議報文進行封裝,得到已封裝的SCSI協議報文;發送模塊,用於將所述已封裝的SCSI協議報文攜帶在PCIE數據包中,並通過PCIE總 線將所述PCIE數據包發送給接收端設備,以使所述接收端設備從所述PCIE數據包中解析 出所述SCSI協議報文後根據所述SCSI協議報文的指令執行相應操作。
11.根據權利要求10所述的設備,其特徵在於,所述發送模塊用於將所述已封裝的SCSI協議報文攜帶在所述PCIE數據包的處理層協議TLP包中。
12.根據權利要求10或11所述的設備,其特徵在於,如果所述SCSI協議報文為SCSI 命令請求報文,則所述封裝模塊包括第一封裝單元,用操作類型指示所述SCSI協議報文為SCSI命令請求報文;用命令描述 塊CDB指示所述SCSI命令請求報文的具體命令;以及,用邏輯單元號LUN指示所述SCSI命 令請求報文的具體操作對象。
13.根據權利要求12所述的設備,其特徵在於,所述封裝模塊還包括第二封裝單元,用命令指示位指示所述SCSI命令請求報文為讀請求或寫請求;用讀 數據長度指示所述啟動器期望從所述目標器獲取的數據長度;用讀緩衝區地址指示所述目 標器將數據發送到讀緩衝區;用寫數據長度指示所述啟動器期望寫入所述目標器的數據長 度;用寫緩衝區地址指示所述目標器從所述寫緩衝區中讀取數據。
14.根據權利要求10或11所述的設備,其特徵在於,如果所述SCSI協議報文為SCSI 命令響應報文,所述封裝模塊包括第三封裝單元,用操作類型指示所述SCSI協議報文為SCSI命令響應報文;用狀態指示 位指示SCSI命令請求報文的完成狀態;第四封裝單元,用溢出指示位指示數據溢出;用剩餘數指示數據溢出的長度;用檢測 數據指示所述目標器反饋給所述啟動器的附加數據。
15.根據權利要求10或11所述的設備,其特徵在於,如果所述SCSI協議報文為SCSI 任務管理請求報文,所述封裝模塊包括第五封裝單元,用操作類型指示所述SCSI協議報文為SCSI任務管理請求報文;用功能 指示所述啟動器請求的任務管理內容;用邏輯單元號LUN指示具體操作對象。
16.根據權利要求10或11所述的設備,其特徵在於,如果所述SCSI協議報文為SCSI 任務管理響應報文,所述封裝模塊包括第六封裝單元,用操作類型指示所述SCSI協議報文為SCSI任務管理響應報文;用響應 結果指示SCSI任務管理請求報文的執行結果。
17.根據權利要求10或11所述的設備,其特徵在於,如果所述SCSI協議報文為SCSI 異步事件報文,所述封裝模塊包括第七封裝單元,用操作類型指示所述SCSI協議報文為SCSI異步事件;用檢測數據指示 所述目標器的異常狀況。
18.一種在快速局部PCIE總線上傳輸報文的系統,其特徵在於,包括發送端設備和接 收端設備;所述發送端設備包括封裝模塊,用於對小型計算機接口 SCSI協議報文進行封裝,得到已封裝的SCSI協議報文;發送模塊,用於將所述已封裝的SCSI協議報文攜帶在PCIE數據包的處理層協議TLP 包中,並通過PCIE總線將所述PCIE數據包發送給所述接收端設備; 所述接收端設備包括解析模塊,用於從所述PCIE數據包中解析出所述SCSI協議報文; 執行模塊,用於根據所述SCSI協議報文的指令執行相應操作。
全文摘要
本發明實施例提供一種在PCIE總線上傳輸報文的方法、設備和系統。方法包括發送端設備對小型計算機系統接口SCSI協議報文進行封裝,得到已封裝的SCSI協議報文;將所述已封裝的SCSI協議報文攜帶在PCIE數據包中,並通過PCIE總線將所述PCIE數據包發送給接收端設備,以使所述接收端設備從所述PCIE數據包中解析出所述SCSI協議報文後根據所述SCSI協議報文的指令執行相應操作。設備包括封裝模塊和發送模塊。系統包括發送端設備和接收端設備。本發明實施例提供的方案,數據傳輸的帶寬高、處理速度快,通用性好,成本低。
文檔編號H04L12/56GK102075401SQ20111003217
公開日2011年5月25日 申請日期2011年1月28日 優先權日2011年1月28日
發明者李科, 高志宏 申請人:成都市華為賽門鐵克科技有限公司