一種存儲控制芯片及磁盤報文傳輸方法
【專利摘要】本發(fā)明實施例公開了一種存儲控制芯片,包括:網絡接口模塊、處理引擎和存儲接口模塊,其中,所述網絡接口模塊包括網絡側接口,所述網絡接口模塊通過所述網絡側接口與外部網絡連接,所述網絡接口模塊通過數據通道與所述處理引擎連接,所述處理引擎還通過數據通道與所述存儲接口模塊連接,所述存儲接口模塊包括存儲側接口,所述存儲接口模塊通過所述存儲側接口與磁盤連接。相應地,本發(fā)明實施例還公開相關的方法。本發(fā)明實施例可以減少存儲控制及接口控制電路的成本。
【專利說明】一種存儲控制芯片及磁盤報文傳輸方法
【技術領域】
[0001]本發(fā)明涉及通信領域,尤其涉及一種存儲控制芯片及磁盤報文傳輸方法。
【背景技術】
[0002]存儲設備是目前大多數通信設備和電子設備中不可缺少的模塊。目前的存儲設備的結構主要包括存儲控制及接口控制電路和存儲體(例如:磁盤或者硬盤),其中,存儲控制及接口控制電路包括存儲控制器、處理器和網卡控制器,而存儲控制器、處理器和網卡控制器之間都是通過快速外圍設備互連(Peripheral Component Interconnection Express,PCIE)接口連接,而存儲控制器與存儲體之間則是通過另一接口連接,例如:通過串行高級技術接口(Serial Advanced Technology Attachment, SATA)或者串行 SCSI 接口(SerialAttached SCSI,SAS)接口,另外網卡控制器則是通過其它接口與外部網絡(例如:讀取存儲設備的裝置)連接,例如,通過以太網(Ethernet, Eth)接口或者光纖通道(Fibre Channel,FC)接口或者以太網承載光纖通道(Fibre Channel Over Ehternet,FCoE)接口或者無限帶寬(Infini Band, IB)接口與外部網絡連接。這樣在讀寫數據過程中存儲控制器就需要處理 PCIE、小型計算機系統(tǒng)接口(Small Computer System Interface, SCSI)和 SATA 的協(xié)議?;蛘咛幚鞵CIE、SCSI和SAS的協(xié)議棧,而處理器需要處理PCIE和SCSI的協(xié)議棧,網卡接口需要處理PCIE、SCSI和Eth棧或者處理PCIE、SCSI和IB協(xié)議棧等。
[0003]綜上所述,目前的存儲控制及接口控制電路由于每個器件都需要處理多個協(xié)議棧,這樣該電路就會很復雜,從而導致整個存儲控制及接口控制電路的成本過高。
【發(fā)明內容】
[0004]本發(fā)明實施例提供了一種存儲控制芯片及磁盤報文傳輸方法,可以減少存儲控制及接口控制電路的成本。
[0005]第一方面,本發(fā)明實施例提供一種存儲控制芯片,包括:網絡接口模塊、處理引擎和存儲接口模塊,其中,所述網絡接口模塊包括網絡側接口,所述網絡接口模塊通過所述網絡側接口與所述芯片的外部網絡連接,所述網絡接口模塊通過數據通道與所述處理引擎連接,所述處理引擎還通過數據通道與所述存儲接口模塊連接,所述存儲接口模塊包括存儲側接口,所述存儲接口模塊通過所述存儲側接口與磁盤連接;其中:
[0006]所述網絡接口模塊,用于通過網絡側協(xié)議處理實現(xiàn)所述外部網絡與所述處理引擎之間傳輸報文;
[0007]所述處理引擎,用于分析所述網絡接口模塊傳輸的報文,或者分析所述存儲接口模塊傳輸的報文;并將分析結果表示為用于發(fā)送至磁盤的報文通過數據通道發(fā)送至所述存儲接口模塊,并將分析結果表示為用于發(fā)送至所述外部網絡的報文通過數據通道發(fā)送至所述網絡接口模塊;
[0008]所述存儲接口模塊,用于通過存儲側協(xié)議處理實現(xiàn)所述磁盤與所述處理引擎之間傳輸報文。[0009]第一方面的第一種可選的實現(xiàn)方式中,所述網絡接口模塊還用于通過所述網絡側接口接收外部網絡發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行解封裝處理得到包括所述第一內部報文的第一目標報文,再通過數據通道將所述第一目標報文發(fā)送至所述處理引擎;
[0010]所述處理弓I擎還用于根據所述第一目標報文得到所述第一內部報文,對所述第一內部報文進行分析處理得到分析結果,當該分析結果表示所述第一內部報文是用于發(fā)送至磁盤的報文時,通過數據通道將所述第一內部報文發(fā)送至所述存儲接口模塊;
[0011]所述存儲接口模塊還用于對所述第一內部報文進行存儲側協(xié)議封裝處理得到存儲側協(xié)議報文,并通過所述存儲側接口將所述存儲側協(xié)議報文發(fā)送至所述磁盤。
[0012]結合第一方面或者第一方面的第一種可能的實現(xiàn)方式,第一方面的第二種可能的實現(xiàn)方式中,所述存儲接口模塊還用于通過所述存儲側接口接收所述磁盤發(fā)送的包括第二內部報文的存儲側協(xié)議報文,并對所述存儲側協(xié)議報文進行解封裝處理得到所述第二內部報文,并通過數據通道將所述第二內部報文發(fā)送至所述處理弓I擎;
[0013]所述處理引擎還用于對所述第二內部報文進行分析處理得到分析結果,當該分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,通過數據通道向所述網絡接口模塊發(fā)送包括所述第二內部報文的第二目標報文;
[0014]所述網絡接口模塊還用于對所述第二目標報文進行封裝處理得到網絡側協(xié)議報文,并通過所述網絡側接口將該網絡側協(xié)議報文發(fā)送至外部網絡。
[0015]結合第一方面的第一種可能的實現(xiàn)方式中,在第一方面的第三種可能的實現(xiàn)方式中,所述網絡接口模塊用于通過所述網絡側接口接收外部網絡發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行網絡側協(xié)議解封裝處理得到所述第一內部報文,再通過數據通道將所述第一內部報文發(fā)送至所述處理引擎;或者
[0016]所述網絡接口模塊用于當所述網絡側協(xié)議報文包括多層協(xié)議封裝時,通過所述網絡側接口接收外部網絡發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行第一層協(xié)議的解封裝處理得到包括所述第一內部報文的目標報文,再通過數據通道將所述目標報文發(fā)送至所述處理引擎;所述處理引擎用于當所述網絡側協(xié)議報文包括多層協(xié)議封裝時,對所述目標報文進行解封裝處理得到所述第一內部報文,對所述第一內部報文進行分析處理得到分析結果,當該分析結果表示所述第一內部報文是用于讀取磁盤的報文時,通過數據通道將所述第一內部報文發(fā)送至所述存儲接口模塊。
[0017]結合第一方面的第二種可能的實現(xiàn)方式,第一方面的第四種可能的實現(xiàn)方式中,所述處理引擎用于對所述第二內部報文進行分析處理得到分析結果,當該分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,通過數據通道向所述網絡接口模塊發(fā)送所述第二內部報文;或者
[0018]所述處理引擎用于當所述網絡側協(xié)議報文包括多層協(xié)議封裝時,對所述第二內部報文進行分析處理得到分析結果,當該分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,對所述第二內部報文進行封裝處理得到包括所述第二內部報文的第二目標報文,并通過數據通道向所述網絡接口模塊發(fā)送所述第二目標報文。
[0019]結合第一方面或者第一方面的第一種可能的實現(xiàn)方式,第一方面的第五種可能的實現(xiàn)方式中,所述芯片還包括:管理接口模塊,其中,所述管理接收模塊包括控制管理接口,所述管理接口模塊通過所述控制管理接口與外部處理器連接,所述管理接口模塊還通過管理通道與所述處理引擎連接;其中:
[0020]所述管理接口模塊,用于通過所述控制管理接口接收所述外部處理器發(fā)送的用于配置和/或管理所述處理引擎的配置管理報文,并通過管理通道將所述配置管理報文發(fā)送至所述處理引擎;
[0021]所述處理引擎還用于根據所述配置管理報文配置和/或管理所述處理引擎的軟件。
[0022]結合第一方面或者第一方面的第一種可能的實現(xiàn)方式,第一方面的第六種可能的實現(xiàn)方式中,所述芯片還包括:內存管理單元MMU控制器,所述MMU控制器包括內存接口,所述MMU控制器通過所述內存接口與外部內存連接,所述MMU控制器還通過數據通道與所述處理引擎連接;其中:
[0023]所述MMU控制器,用于將所述處理引擎處理的數據存放至所述外部內存。
[0024]結合第一方面的第六種可能的實現(xiàn)方式,第一方面的第七種可能的實現(xiàn)方式中,所述芯片還包括:直接內存訪問DMA控制器,所述DMA控制器分別通過控制通道與所述處理引擎連接,以及通過控制通道與所述MMU控制器連接;其中:
[0025]所述DMA控制器,用于當需要使用所述外部內存時,控制所述存儲接口模塊與所述外部內存之間的數據傳輸,以及控制所述網絡接口模塊與所述外部內存之間的數據傳輸。
[0026]結合第一方面或者第一方面的第一種可能的實現(xiàn)方式,第一方面的第八種可能的實現(xiàn)方式中,所述芯片還包括:數據緩存,所述數據緩存通過數據通道與所述處理引擎連接;其中:
[0027]所述數據緩存,用于緩存程序代碼或者所述處理引擎處理的報文信息;
[0028]所述處理引擎還用于調用所述數據緩存緩存的程序代碼執(zhí)行對報文的處理操作。
[0029]結合第一方面或者第一方面的第一種可能的實現(xiàn)方式,第一方面的第九種可能的實現(xiàn)方式中,所述芯片還包括:閃存(Flash)接口模塊,所述Flash接口模塊一端口與外部Flash芯片連接,所述Flash接口模塊的另一端與所述處理引擎連接;其中:
[0030]所述Flash接口模塊,用于在下電狀態(tài)將所述芯片使用的軟件的程序代碼存儲至所述外部Flash芯片。
[0031]第二方面,本發(fā)明實施例提供一種磁盤報文傳輸方法,包括:
[0032]存儲控制芯片接收第一裝置發(fā)送的包括內部報文的第一協(xié)議報文,并對所述第一協(xié)議報文進行第一協(xié)議報文解封裝處理得到所述內部報文;
[0033]所述存儲控制芯片對所述內部報文進行分析處理得到分析結果;
[0034]當所述分析結果表示所述內部報文是用于發(fā)送至第二裝置的報文時,所述存儲控制芯片對所述內部報文進行第二協(xié)議封裝處理得到第二協(xié)議報文,并將所述第二協(xié)議報文發(fā)送至所述第二裝置;其中:
[0035]所述第一裝置為與所述存儲控制芯片的第一端連接的網絡裝置,所述第二裝置為與所述存儲控制芯片的第二端連接的磁盤;或者,所述第一裝置為與所述存儲控制芯片的第二端連接的磁盤,所述第二裝置為與所述存儲控制芯片的第一端連接的網絡裝置。
[0036]在第二方面的第一種可能的實現(xiàn)方式中,所述存儲控制芯片接收第一裝置發(fā)送的包括內部報文的第一協(xié)議報文,并對所述第一協(xié)議報文進行第一協(xié)議報文解封裝處理得到所述內部報文,包括:
[0037]所述存儲控制芯片接收所述網絡裝置發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行網絡側協(xié)議解封裝處理得到所述第一內部報文;
[0038]所述當所述分析結果表示所述內部報文是用于發(fā)送至第二裝置的報文時,所述存儲控制芯片對所述內部報文進行第二協(xié)議封裝處理得到第二協(xié)議報文,并將所述第二協(xié)議報文發(fā)送至所述第二裝置,包括:
[0039]當所述分析結果表示所述第一內部報文是用于發(fā)送至磁盤的報文時,所述存儲控制芯片對所述第一內部報文進行存儲側協(xié)議封裝處理得到存儲側協(xié)議報文,并將所述存儲側協(xié)議報文發(fā)送至所述磁盤。
[0040]結合第二方面,在第二方面的第二種可能的實現(xiàn)方式中,所述存儲控制芯片接收第一裝置發(fā)送的包括內部報文的第一協(xié)議報文,并對所述第一協(xié)議報文進行第一協(xié)議報文解封裝處理得到所述內部報文,包括:
[0041]所述存儲控制芯片接收磁盤發(fā)送的包括第二內部報文的存儲側協(xié)議報文,并對所述存儲側協(xié)議報文進行存儲側協(xié)議解封裝處理得到所述第二內部報文;
[0042]所述存儲控制芯片對所述第二內部報文進行分析處理得到分析結果;
[0043]所述當所述分析結果表示所述內部報文是用于發(fā)送至第二裝置的報文時,所述存儲控制芯片對所述內部報文進行第二協(xié)議封裝處理得到第二協(xié)議報文,并將所述第二協(xié)議報文發(fā)送至所述第二裝置,包括:
[0044]當所述分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,所述存儲控制芯片對所述第二目標報文進行網絡側協(xié)議封裝處理得到網絡側協(xié)議報文,并將該網絡側協(xié)議報文發(fā)送至所述網絡裝置。
[0045]上述技術方案中,網絡接口模塊通過所述網絡側接口與外部網絡連接,所述網絡接口模塊通過數據通道與所述處理引擎連接,所述處理引擎還通過數據通道與所述存儲接口模塊連接,所述存儲接口模塊通過所述存儲側接口與磁盤連接;所述網絡接口模塊,用于通過網絡側協(xié)議處理實現(xiàn)所述外部網絡與所述處理引擎之間傳輸報文;所述處理引擎,用于分析所述網絡接口模塊傳輸的報文,或者分析所述存儲接口模塊傳輸的報文;并將分析結果表示為用于發(fā)送至磁盤的報文通過數據通道發(fā)送至所述存儲接口模塊,并將分析結果表示為用于發(fā)送至所述外部網絡的報文通過數據通道發(fā)送至所述網絡接口模塊;所述存儲接口模塊,用于通過存儲側協(xié)議處理實現(xiàn)所述磁盤與所述處理引擎之間傳輸報文。這樣整個存儲控制芯片就只需要處理網絡側協(xié)議和存儲側協(xié)議的協(xié)議棧,且內部都是通過數據通道進行連接的,相比現(xiàn)有技術存儲控制及接口控制電路都通過PCIE接口,即現(xiàn)有技術中存儲控制及接口控制電路至少需要處理PCIE協(xié)議、網絡側協(xié)議(例如:Eth協(xié)議)和存儲側協(xié)議(例如:SAS協(xié)議)的協(xié)議棧,本發(fā)明實施例可以減少存儲控制及接口控制電路的成本。
【專利附圖】
【附圖說明】
[0046]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0047]圖1是本發(fā)明實施例提供的一種存儲控制芯片的結構示意圖;
[0048]圖2是本發(fā)明實施例提供的另一種存儲控制芯片的結構示意圖;
[0049]圖3是本發(fā)明實施例提供的另一種存儲控制芯片的結構示意圖;
[0050]圖4是本發(fā)明實施例提供的另一種存儲控制芯片的結構示意圖;
[0051]圖5是本發(fā)明實施例提供的另一種存儲控制芯片的結構示意圖;
[0052]圖6是本發(fā)明實施例提供的另一種存儲控制芯片的結構示意圖;
[0053]圖7是本發(fā)明實施例提供的另一種存儲控制芯片的結構示意圖;
[0054]圖8是本發(fā)明實施例提供的一種可選的協(xié)議棧示意圖;
[0055]圖9是本發(fā)明實施例提供的一種磁盤報文傳輸方法的流程示意圖;
[0056]圖10和圖11是本發(fā)明實施例提供一種可選的舉例示意圖。
【具體實施方式】
[0057]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0058]本發(fā)明實施例中,存儲控制芯片可以等同于現(xiàn)有技術中的存儲控制及接口控制電路,本發(fā)明實施例中,通過將該電路集成于一個芯片。該存儲控制芯片可以是應用于任何使用磁盤的設備,例如:服務器、計算機、手機、平板電腦等設備。
[0059]另外,本發(fā)明實施例中所述外部網絡具體可以是指用戶訪問磁盤的外部設備,例如:處理器、交換機和網卡設備等。本發(fā)明實施例對此不作限定。本發(fā)明實施例中對磁盤種類和數量也不作限定,例如:可以是固態(tài)硬盤(Solid State Disk, SSD)、機械磁盤和/或非與閃存(Not And Flash, NAND Flash)等。
[0060]另外,本發(fā)明實施例中的數據通道具體可以是芯片內部進行數據傳輸的通道,該數據通道內部傳輸的報文可以是協(xié)議卸載后的報文,也可以協(xié)議封裝或者解封裝后的報文,即通過該數據通道傳輸的報文不需要像網絡側接口或者存儲側接口一樣只能傳輸特定協(xié)議封裝的報文。
[0061]圖1是本發(fā)明實施例提供的一種存儲控制芯片的結構示意圖,如圖1所示,包括:網絡接口模塊11、處理引擎12和存儲接口模塊13,其中,所述網絡接口模塊11包括網絡側接口,所述網絡接口模塊11通過所述網絡側接口與所述芯片的外部網絡連接,所述網絡接口模塊11通過數據通道與所述處理引擎12連接,所述處理引擎12還通過數據通道與所述存儲接口模塊13連接,所述存儲接口模塊13包括存儲側接口,所述存儲接口模塊13通過所述存儲側接口與磁盤連接;其中:
[0062]網絡接口模塊11,用于通過網絡側協(xié)議處理實現(xiàn)所述外部網絡與所述處理引擎12之間傳輸報文。
[0063]可選的,網絡接口模塊11具體通過上述網絡側接口接收上述外部網絡發(fā)送的網絡側協(xié)議報文,并對該網絡側協(xié)議報文進行解封裝,得到內部報文,再將內部報文傳輸至處理引擎12。或者網絡接口模塊11通過數據通道接收處理引擎12發(fā)送的內部報文,再將內部報文進行網絡側協(xié)議封裝,得到網絡側協(xié)議報文,再通過網絡側接口將該網絡側協(xié)議報文發(fā)送至上述外部網絡。
[0064]處理引擎12,用于分析所述網絡接口模塊傳輸的報文,或者分析所述存儲接口模塊傳輸的報文;并將分析結果表示為用于發(fā)送至磁盤的報文通過數據通道發(fā)送至所述存儲接口模塊,并將分析結果表示為用于發(fā)送至所述外部網絡的報文通過數據通道發(fā)送至所述網絡接口模塊。
[0065]存儲接口模塊13,用于通過存儲側協(xié)議處理實現(xiàn)所述磁盤與所述處理引擎之間傳輸報文。
[0066]可選的,存儲接口模塊13具體可以是接收處理引擎12通過數據通道發(fā)送的內部報文,再將該內部報文進行存儲側協(xié)議封裝得到存儲側協(xié)議報文,再將該存儲側協(xié)議報文通過存儲側接口發(fā)送至磁盤?;蛘叽鎯涌谀K13通過存儲側接口接收磁盤發(fā)送的存儲側協(xié)議報文,再將該存儲側協(xié)議報文進行存儲側協(xié)議解封裝得到內部報文,再將該內部報文通過數據通道發(fā)送至處理引擎12。
[0067]上述技術方案中,網絡接口模塊通過所述網絡側接口與外部網絡連接,所述網絡接口模塊通過數據通道與所述處理引擎連接,所述處理引擎還通過數據通道與所述存儲接口模塊連接,所述存儲接口模塊通過所述存儲側接口與磁盤連接;所述網絡接口模塊,用于通過網絡側協(xié)議處理實現(xiàn)所述外部網絡與所述處理引擎之間傳輸報文;所述處理引擎,用于分析所述網絡接口模塊傳輸的報文,或者分析所述存儲接口模塊傳輸的報文;并將分析結果表示為用于發(fā)送至磁盤的報文通過數據通道發(fā)送至所述存儲接口模塊,并將分析結果表示為用于發(fā)送至所述外部網絡的報文通過數據通道發(fā)送至所述網絡接口模塊;所述存儲接口模塊,用于通過存儲側協(xié)議處理實現(xiàn)所述磁盤與所述處理引擎之間傳輸報文。這樣整個存儲控制芯片就只需要處理網絡側協(xié)議和存儲側協(xié)議的協(xié)議棧,且內部都是通過數據通道進行連接的,相比現(xiàn)有技術存儲控制及接口控制電路都通過PCIE接口,即現(xiàn)有技術中存儲控制及接口控制電路至少需要處理PCIE協(xié)議、網絡側協(xié)議(例如:Eth協(xié)議)和存儲側協(xié)議(例如:SAS協(xié)議)的協(xié)議棧,本發(fā)明實施例可以減少存儲控制及接口控制電路的成本。
[0068]圖2是本發(fā)明實施例提供的一種存儲控制芯片的結構示意圖,如圖2所示,包括:網絡接口模塊21、處理引擎22和存儲接口模塊23,其中,所述網絡接口模塊21包括網絡側接口,所述網絡接口模塊21通過所述網絡側接口與所述芯片的外部網絡連接,所述網絡接口模塊21通過數據通道與所述處理引擎22連接,所述處理引擎22還通過數據通道與所述存儲接口模塊23連接,所述存儲接口模塊23包括存儲側接口,所述存儲接口模塊23通過所述存儲側接口與磁盤連接;其中:
[0069]網絡接口模塊21,用于通過所述網絡側接口接收外部網絡發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行解封裝處理得到包括所述第一內部報文的第一目標報文,再通過數據通道將所述第一目標報文發(fā)送至所述處理引擎22。
[0070]可選的,上述網絡接口具體可以是Eth接口、FC接口、FCoE接口或者IB接口,當然,本實施例對此并不作限定。上述網絡側協(xié)議報文具體可以是用于在該網絡接口中傳輸的協(xié)議報文。上述第一目標報文具體可以是某種協(xié)議封裝的報文,例如:上述網絡接口為Eth接口,上述網絡側協(xié)議報文就為Eth協(xié)議封裝報文,其中,該Eth協(xié)議封裝報文上可以承載因特網互聯(lián)協(xié)議(Internet Protocol, IP)封裝報文,或者說IP封裝報文承載Eth幀或者Eth協(xié)議封裝報文上;該IP封裝報文上還可以承載傳輸控制協(xié)議(Transmission ControlProtocol, TCP)封裝報文,或者說TCP報文承載在IP封裝報文上;該TCP封裝報文上還可以承載互聯(lián)網小型計算機系統(tǒng)接口 Internet Small Computer System Interface, iSCSI)協(xié)議封裝報文,或者說iSCSI封裝報文承載在TCP封裝報文上。那么上述第一目標報文可以是IP封裝報文、TCP封裝報文或者iSCSI協(xié)議封裝報文,當然,上述第一目標報文具體可以直接是第一內部報文,即網絡接口模塊21完成網絡側協(xié)議的所有協(xié)議卸載。當網絡接口模塊21只完成網絡側協(xié)議中部分層的協(xié)議卸載,剩下的協(xié)議封裝可以由處理引擎22完成卸載,即本實例中可以實現(xiàn)網絡接口模塊21與處理引擎22配合完成網絡側協(xié)議的處理。
[0071]處理引擎22,用于根據所述第一目標報文得到所述第一內部報文,對所述第一內部報文進行分析處理得到分析結果,當該分析結果表示所述第一內部報文是用于發(fā)送至磁盤的報文時,通過數據通道將所述第一內部報文發(fā)送至所述存儲接口模塊23。
[0072]可選的,上述根據所述第一目標報文得到所述第一內部報文具體可以是將上述第一目標報文作為上述第一內部報文,即網絡接口模塊21完成對網絡側報文的所有協(xié)議卸載;上述根據所述第一目標報文得到所述第一內部報文具體還可以是對第一目標報文進行部分協(xié)議卸載,以得到上述第一內部報文,即網絡接口模塊21只完成了網絡側報文的部分協(xié)議層的協(xié)議卸載。
[0073]可選的,當上述分析結果為上述第一內部報文是需要處理引擎22進行處理(例如:計算)的報文時,處理引擎22還可以是對該報文進行處理(例如:計算),處理引擎22還可以將該處理結果返回網絡接口模塊21,由網絡接口模塊將該處理結果返回至外部網絡。當然,處理引擎22還可以是根據上述分析結果(上述分析結果表示上述第一內部報文為錯誤報文),丟失該第一內部報文。
[0074]存儲接口模塊23,用于對所述第一內部報文進行存儲側協(xié)議封裝處理得到存儲側協(xié)議報文,并通過所述存儲側接口將所述存儲側協(xié)議報文發(fā)送至所述磁盤。
[0075]可選的,上述存儲接口具體可以是SAS接口或者SATA接口,當然,本實施例對此不作限定。另外,上述存儲側協(xié)議報文具體可以是用于在該存儲接口中傳輸的協(xié)議報文。
[0076]通過上述就可以實現(xiàn)從接收外部網絡發(fā)送的報文到將該報文傳輸至磁盤,本實施例可以實現(xiàn)只經過兩個協(xié)議處理,一次網絡側協(xié)議的協(xié)議解封裝,另一次為存儲側協(xié)議的封裝。
[0077]或者,
[0078]存儲接口模塊23,用于通過所述存儲側接口接收所述磁盤發(fā)送的包括第二內部報文的存儲側協(xié)議報文,并對所述存儲側協(xié)議報文進行解封裝處理得到所述第二內部報文,并通過數據通道將所述第二內部報文發(fā)送至所述處理弓I擎22。
[0079]可選的,通過所述存儲側接口接收所述磁盤發(fā)送的包括第二內部報文的存儲側協(xié)議報文具體可以是磁盤主動推送的報文,還可以是根據存儲接口模塊23發(fā)送的請求返回的報文。
[0080]處理引擎22,用于對所述第二內部報文進行分析處理得到分析結果,當該分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,通過數據通道向所述網絡接口模塊21發(fā)送包括所述第二內部報文的第二目標報文。
[0081]可選的,上述第二目標報文可以是第一目標報文一樣,當網絡側協(xié)議報文只包括單層協(xié)議封裝時,第二目標報文就是上述第二內部報文,當網絡側協(xié)議報文只包括多層協(xié) 議封裝(例如:上述Eth協(xié)議封裝、IP封裝、TCP封裝和iSCSI協(xié)議封裝)時,第二目標報文 具體可以是IP封裝報文、TCP封裝報文和iSCSI協(xié)議封裝報文,還可以直接是第二內部報 文。即處理引擎22可以對第二內部報文完成如下至少一項封裝:
[0082]IP封裝、TCP封裝和iSCSI協(xié)議封裝。
[0083]當然處理引擎22還可以是不對第二內部報文進行封裝,直接向網絡接口模塊21 發(fā)送第二內部報文,由網絡接口模塊21完成這些封裝。
[0084]網絡接口模塊21,用于對所述第二目標報文進行封裝處理得到網絡側協(xié)議報文, 并通過所述網絡側接口 211將該網絡側協(xié)議報文發(fā)送至外部網絡。
[0085]可選的,當網絡側協(xié)議報文只包括多層協(xié)議封裝(例如:上述Eth協(xié)議封裝、IP封 裝、TCP封裝和iSCSI協(xié)議封裝)時,網絡接口模塊21僅可以是對第二內部報文完成網絡側 協(xié)議報文中最底層協(xié)議的封裝(例如:Eth協(xié)議封裝),這樣可以實現(xiàn)網絡接口模塊21與處 理引擎22配合完成網絡側協(xié)議封裝;還可以是對第二內部報文完成所有網絡側協(xié)議報文 的協(xié)議封裝。
[0086]作為一種可選的實施方式,上述第一內部報文具體可以是SCSI報文,上述第二內 部報文具體可以是SCSI報文。這兩個報文的數據內容可以是相同的也可以是不同的。
[0087]作為一種可選的實施方式,網絡接口模塊21可以用于通過所述網絡側接口接收 外部網絡發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行網絡 側協(xié)議解封裝處理得到所述第一內部報文,再通過數據通道將所述第一內部報文發(fā)送至所 述處理引擎22。
[0088]例如,網絡側接口為FC接口或者IB接口,即上述網絡側協(xié)議報文就為單層協(xié)議報 文,例如:FC協(xié)議報文,或者IB協(xié)議報文。網絡接口模塊21就可以直接對所述網絡側協(xié)議 報文進行解封裝處理得到所述第一內部報文,再通過數據通道將所述第一內部報文發(fā)送至 所述處理引擎22。其中,該解封裝處理具體可以是對該網絡側協(xié)議報文進行解封裝,并去掉 網絡偵彳協(xié)議報文頭,完成網絡偵彳協(xié)議的卸載。當然,當上述網絡側接口為Eth接口或者FCoE 接口,即上述網絡側協(xié)議報文就為多層協(xié)議報文,網絡接口模塊21也同樣可以是完成網絡 側報文的所有層的協(xié)議卸載,例如:上述網絡側接口為Eth接口時,網絡接口模塊21對網絡 協(xié)議報文完成所有協(xié)議卸載,如:對網絡側協(xié)議報文進行Eth協(xié)議解封裝,并去掉Eth報文 頭,以得到IP報文;再對該IP報文進行IP解封裝,并去掉IP報文頭,得到TCP報文;再對 TCP報文進行TCP解封裝,并去掉TCP報文頭,得到iSCSI報文;再對iSCSI報文進行iSCSI 解封裝,并去掉iSCSI報文頭,得到SCSI報文,即得到上述第一內部報文。
[0089]作為一種可選的實施方式,網絡接口模塊21可以用于當所述網絡側協(xié)議報文包 括多層協(xié)議封裝時,通過所述網絡側接口接收外部網絡發(fā)送的包括第一內部報文的網絡側 協(xié)議報文,并對所述網絡側協(xié)議報文進行第一層協(xié)議的解封裝處理得到包括所述第一內部 報文的目標報文,再通過數據通道將所述目標報文發(fā)送至所述處理弓I擎22。
[0090]例如,網絡接口模塊21對網絡協(xié)議報文完成部分層的協(xié)議卸載,即對所述網絡側 協(xié)議報文進行第一層協(xié)議的解封裝處理得到包括所述第一內部報文的目標報文。其中,該 第一層協(xié)議具體可以是表示一層或者多層協(xié)議,例如,上述網絡側接口為Eth接口時,第一 層協(xié)議如至少一項包括:[0091]Eth 協(xié)議、IP、TCP 和 iSCSI。
[0092]例如:當上述第一層協(xié)議為Eth協(xié)議時,那么對網絡側協(xié)議報文進行Eth協(xié)議解封裝,并去掉Eth報文頭,以得到IP報文,即上述目標報文為IP報文;第一層協(xié)議為Eth協(xié)議和IP時,對網絡側協(xié)議報文進行Eth協(xié)議解封裝,并去掉Eth報文頭,以得到IP報文;再對該IP報文進行IP解封裝,并去掉IP報文頭,得到TCP報文,即上述目標報文為TCP報文。第一層協(xié)議為Eth協(xié)議、IP和TCP時,可以參考上述流程。
[0093]處理引擎22可以用于當所述網絡側協(xié)議報文包括多層協(xié)議封裝時,對所述目標報文進行解封裝處理得到所述第一內部報文,對所述第一內部報文進行分析處理得到分析結果,當該分析結果表示所述第一內部報文是用于讀取磁盤的報文時,通過數據通道將所述第一內部報文發(fā)送至所述存儲接口模塊23。
[0094]例如:當上述第一層協(xié)議為Eth協(xié)議時,上述目標報文為IP報文,處理引擎22就可以對該IP報文進行,IP、TCP和iSCSI的協(xié)議卸載,以得到SCSI報文;當第一層協(xié)議為Eth協(xié)議和IP時,即上述目標報文為TCP報文時,處理引擎22就可以對該IP報文進行,TCP和iSCSI的協(xié)議卸載,以得到SCSI報文。第一層協(xié)議為Eth協(xié)議、IP和TCP時,可以參考上述流程。
[0095]該實施方式,可以實現(xiàn)由網絡接口模塊21和處理引擎22配合完成網絡側協(xié)議的卸載。
[0096]作為一種可選的實施方式,處理引擎22可以用于對所述第二內部報文進行分析處理得到分析結果,當該分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,通過數據通道向所述網絡接口模塊21發(fā)送所述第二內部報文。
[0097]該實施方式可以實現(xiàn)直接向網絡接口模塊21發(fā)送第二內部報文,例如:發(fā)送SCSI報文,由網絡接口模塊21完成網絡側協(xié)議的封裝。
[0098]作為一種可選的實施方式,處理引擎22可以用于當所述網絡側協(xié)議報文包括多層協(xié)議封裝時,對所述第二內部報文進行分析處理得到分析結果,當該分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,對所述第二內部報文進行封裝處理得到包括所述第二內部報文的第二目標報文,并通過數據通道向所述網絡接口模塊21發(fā)送所述第二目標報文。
[0099]上述第二目標報文具體可以是包括網絡側協(xié)議包括的至少一層協(xié)議的封裝,例如:網絡接口為Eth接口時,第二目標報文就可以為i SCSI報文包、IP報文或者TCP報文包。即處理引擎22可以對第二內部報文進行iSCSI封裝、IP封裝或者TCP封裝。其中,iSCSI封裝、IP封裝或者TCP封裝需要的封裝信息(例如:TCP端口號、IP地址MAC地址等信息)可以是之前記錄的,例如:處理引擎22向存儲接口模塊23發(fā)送上述第一內部報文時記錄的。當網絡接口模塊21接收到上述第二目標報文時,就可以完成處理引擎22所未完成的網絡側協(xié)議封裝,例如,第二目標報文為iSCSI報文包時,網絡接口模塊21就對iSCSI報文包完成、TCP、IP和Eth協(xié)議封裝。再將Eth協(xié)議報文包發(fā)送至外部網絡。
[0100]該實施方式中,可以實現(xiàn)由網絡接口模塊21和處理引擎22配合完成網絡側協(xié)議的封裝。
[0101]作為一種可選的實施方式,網絡接口模塊21還可以通過管理通道與處理引擎22連接,處理引擎22還可以用于通過該管理通道配置和/或管理網絡接口模塊21的軟件,例如:更新網絡接口模塊21的軟件或者卸載網絡接口模塊21的軟件等。
[0102]作為一種可選的實施方式,存儲接口模塊23還可以通過管理通道與處理引擎22連接,處理引擎22還可以用于通過該管理通道配置和/或管理存儲接口模塊23的軟件,例如:更新存儲接口模塊23的軟件或者卸載存儲接口模塊23的軟件等。
[0103]其中,上述管理通道具體可以是用于傳輸配置管理的數據或者命令等,且傳輸時不需要對數據或者命令等進行特定協(xié)議封裝的通道。
[0104]作為一種可選的實施方式,處理引擎22對所述第一內部報文進行分析處理得到分析結果具體可以是,處理引擎22對第一內部報文的報文頭進行分析處理得到分析結果,或者處理引擎22對第一內部報文的報文實體(payload)進行分析處理得到分析結果,或者處理引擎22對第一內部報文的報文頭和報文實體(payload)進行分析處理得到分析結果。
[0105]作為一種可選的實施方式,處理引擎22對所述第二內部報文進行分析處理得到分析結果具體可以是,處理引擎22對第二內部報文的報文頭進行分析處理得到分析結果,或者處理引擎22對第二內部報文的報文實體(payload)進行分析處理得到分析結果,或者處理引擎22對第二內部報文的報文頭和報文實體(payload)進行分析處理得到分析結果。另外,當存儲接口模塊23連續(xù)向處理引擎22發(fā)送多個報文時,處理引擎22可以只對這些報文中首報文進行分析,首報文的結果等同于這多個報文的分析結果。
[0106]上述技術方案中,在上面實施例的基礎上詳細介紹了從外部網絡向磁盤發(fā)送報文,且在該過程中存儲控制芯片只需要網絡接口模塊對網絡側協(xié)議報文進行解封裝(或者網絡接口模塊和處理引擎配合完成網絡側協(xié)議報文的解封裝),以及存儲接口模塊對內部報文進行存儲側協(xié)議的封裝。這樣可以實現(xiàn)在外部網絡向磁盤發(fā)送報文的實現(xiàn)過程中,只需要對網絡側協(xié)議和存儲側協(xié)議的協(xié)議棧各進行一次處理;同理,在從磁盤向外部網絡發(fā)送報文的實現(xiàn)過程,也只需要對網絡側協(xié)議和存儲側協(xié)議的協(xié)議棧各進行一次處理。從而本實施例可以實現(xiàn)減少存儲控制及接口控制電路的成本。
[0107]圖3是本發(fā)明實施例提供的另一種存儲芯片的結構示意圖,如圖3所示,包括:包括:網絡接口模塊31、處理引擎32、存儲接口模塊33和管理接口模塊34,其中,網絡接口模塊31、處理引擎32和存儲接口模塊33之間的連接關系,以及具體的實現(xiàn)方式可以參考圖1所示的實施方式,本實施例對此不作重復說明。另外,所述管理接收模塊34包括控制管理接口,所述管理接口模塊34通過所述控制管理接口與外部處理器連接,所述管理接口模塊34還通過管理通道與所述處理引擎32連接;其中:
[0108]管理接口模塊34,用于通過所述控制管理接口接收所述外部處理器發(fā)送的用于配置和/或管理所述處理引擎32的配置管理報文,并通過管理通道將所述配置管理報文發(fā)送至所述處理引擎32。
[0109]所述處理引擎32還用于根據所述配置管理報文配置和/或管理所述處理引擎32的軟件。
[0110]可選的,上述管理通道具體可以是用于傳輸配置管理的數據或者命令等,且傳輸時不需要對數據或者命令等進行特定協(xié)議封裝的通道。
[0111]可選的,上述控制管理接口具體可以是千兆以太網(Gigabit Ethernet, GB)接口快速以太網(Fast Ethernet,F(xiàn)E)接口、PCIE接口或者周邊元件擴展接口(PedpherdComponent Interconnect,PCI)等,本實施例對此不作限定。管理接口模塊34具體還可以用于通過所述控制管理接口接收所述外部處理器發(fā)送的用于配置和/或管理所述處理引擎32的配置管理報文,并對所述配置管理報文進行解封裝得到能配置和/或管理所述處理引擎32的軟件的內部報文,并通過管理通道將該內部報文發(fā)送至所述處理弓丨擎32。處理引擎32接收到該內部報文就可以直接對處理引擎32的軟件進行配置和/或管理,例如:軟件安裝、軟件更新或者軟件卸載等。當然,管理接口模塊34還可以是直接將上述配置管理報文發(fā)送至處理引擎32,由處理引擎32完成對該配置管理報文的解封裝,以得到能配置和/或管理所述處理引擎32的軟件的內部報文。
[0112]在另一個實施例中,如圖4所示,所述芯片還包括:內存管理單元(MemoryManagement Unit, MMU)控制器35,MMU控制器35包括內存接口,所述MMU控制器35通過所述內存接口與外部內存連接,所述MMU控制器35還通過數據通道與所述處理引擎32連接;其中:
[0113]所述MMU控制器35,用于將處理引擎32處理的數據存放至所述外部內存。
[0114]可選的,MMU控制器35具體可以將上述外部內存是作為存儲控制芯片自身的內存,并在存儲控制芯片在工作狀態(tài)下將MMU控制器處理引擎32使用的軟件的程序代碼,或者存放處理引擎32處理的數據存放至上述外部內存。
[0115]這樣可以實現(xiàn)將處理引擎32使用的軟件,或者存放處理引擎32處理的數據存放至上述外部內存,例如,當存儲控制芯片包括的數據緩存不夠用時,將處理引擎32處理的數據存放至上述外部內存。
[0116]在另一個實施例中,如圖5所示,所述芯片還包括:直接內存訪問(Direct MemoryAccess, DMA)控制器36,所述DMA控制器分別通過控制通道與所述處理引擎32連接,以及通過控制通道與所述MMU控制器連接;其中:
[0117]DMA控制器36,用于當需要使用所述外部內存時,控制所述存儲接口模塊33與所述外部內存之間的數據傳輸,以及控制所述網絡接口模塊33與所述外部內存之間的數據傳輸。
[0118]可選的,上述控制通道具體可以是是用于傳輸控制數據或者命令等,且傳輸時不需要對數據或者命令等進行特定協(xié)議封裝的通道。
[0119]DMA控制器36具體可以是將通過處理引擎32將網絡接口的數據存儲至上述外部內存,例如:網絡接口模塊31對網絡側協(xié)議報文進行解封裝處理得到網絡側協(xié)議報文的報文實體(payload)。
[0120]這樣可以實現(xiàn)將外部內存作用于存放報文實體數據,由于處理引擎32可以是根據報文頭進行對報文的解釋和分析,這樣報文頭就可以不存放到外部內存,例如:存放到存儲控制芯片的內部緩存模塊“數據緩存”(請參考下面的實施方式)。另外,處理引擎32還可以是分析整個報文(包括報文頭和報文實體)的,例如從磁盤讀取數據時,處理引擎32先分析第一內部報文(例如=SCSI報文),獲知到第一內部報文(例如:SCSI報文)是一條讀取磁盤的指令,然后向磁盤發(fā)起讀取請求。當磁盤發(fā)回數據時,處理引擎32通過分析磁盤發(fā)送的首包(包括報文頭和報文實體),獲知該首包是從磁盤讀取的數據流,那么后續(xù)的報文處理引擎32都不需要再分析,而是啟用DMA控制器36將磁盤發(fā)送的報文傳送到外部內存,處理引擎32再通知網絡接口模塊31從外部內存取出這些報文數據。這樣,處理引擎32就節(jié)省了每個報文都進行分析的工作量,提高了處理效率。[0121]在另一個實施例中,如圖6所示,所述芯片還包括:數據緩存(buffer) 37,所述數據緩存37通過數據通道與所述處理引擎32連接;其中:
[0122]所述數據緩存37,用于緩存程序代碼或者所述處理引擎32處理的報文信息;
[0123]所述處理引擎32還用于調用所述數據緩存緩存的程序代碼執(zhí)行對報文的處理操作處理引擎32。
[0124]數據緩存37具體可以是在存儲控制芯片在工作狀態(tài)下存放存儲控制芯片的軟件程序代碼,以及處理引擎32對報文進行解封裝處理時,去掉的報文頭信息。當然,網絡接口模塊31以及存儲接口模塊33對報文進行解封裝處理時,去掉的報文頭信息也可以通過處理引擎32存放至數據緩存。
[0125]在另一個實施例中,如圖7所示,所述芯片還包括:閃存(Flash)接口模塊38,所述Flash接口模塊38 —端口與外部Flash芯片連接,所述Flash接口模塊38的另一端與所述處理引擎32連接;其中:
[0126]所述Flash接口模塊38,用于在下電狀態(tài)將所述芯片處理引擎32使用的軟件的程序代碼存儲至所述外部Flash芯片。
[0127]這樣可以實現(xiàn)在下電狀態(tài)下,存儲控制芯片使用的軟件(例如:處理引擎32、網絡接口模塊31和存儲接口模塊33使用的軟件)的程序代碼不會丟失。
[0128]下面以上述第一內部報文和第二內部報文為SCSI報文為例介紹下,在傳輸第一內部報文和第二內部報文時,存儲控制芯片所處理的協(xié)議棧,請參考圖8,當上述網絡側接口為Eth接口時,網絡側協(xié)議包括圖8所示的801Eth、IP、TCP和iSCSI協(xié)議,網絡接口模塊31可以獨立完成801所示的協(xié)議的解封裝或者封裝,或者網絡接口模塊31和處理引擎32配合完成801所示的協(xié)議的解封裝或者封裝,其中,配合的實現(xiàn)請參考上述的實施方式。當網絡側接口為FC接口時,網絡側協(xié)議包括圖8所示的802FC協(xié)議,網絡接口模塊31可以完成802所示的協(xié)議的解封裝或者封裝。當網絡側接口為FCoE接口時,網絡側協(xié)議包括圖8所示的803Eth和FCoE協(xié)議,網絡接口模塊31可以完成803所示的協(xié)議的解封裝或者封裝,或者網絡接口模塊31和處理引擎32配合完成803所示的協(xié)議的解封裝或者封裝。當網絡側接口為IB接口時,網絡側協(xié)議包括圖8所示的804IB協(xié)議,網絡接口模塊31可以完成804所示的協(xié)議的解封裝或者封裝。當上述存儲側接口為SAS或者SATA接口時,存儲側協(xié)議包括圖8所示的805SAS或者SATA協(xié)議,存儲接口模塊33可以完成805所示的協(xié)議的解封裝與封裝。當上述存儲側接口為SSD接口時,存儲側協(xié)議包括圖8所示的806NAND協(xié)議,存儲接口模塊33可以完成806所示的協(xié)議的解封裝與封裝。
[0129]上述技術方案中,在上面實施例的基礎上介紹了多種可選的實施方式,且都可以實現(xiàn)減少存儲控制及接口控制電路的成本。
[0130]圖9是本發(fā)明實施例提供的一種磁盤報文傳輸方法的流程示意圖,如圖9所示,包括以下步驟:
[0131]901、存儲控制芯片接收第一裝置發(fā)送的包括內部報文的第一協(xié)議報文,并對所述第一協(xié)議報文進行第一協(xié)議報文解封裝處理得到所述內部報文。
[0132]902、存儲控制芯片對所述內部報文進行分析處理得到分析結果;
[0133]903、當所述分析結果表示所述內部報文是用于發(fā)送至第二裝置的報文時,存儲控制芯片對所述內部報文進行第二協(xié)議封裝處理得到第二協(xié)議報文,并將所述第二協(xié)議報文發(fā)送至所述第二裝置;其中:
[0134]所述第一裝置為與所述存儲控制芯片的第一端連接的網絡裝置,所述第二裝置為與所述存儲控制芯片的第二端連接的磁盤;或者,所述第一裝置為與所述存儲控制芯片的第二端連接的磁盤,所述第二裝置為與所述存儲控制芯片的第一端連接網絡裝置。
[0135]可選的,上述第一協(xié)議具體可以是網絡側協(xié)議,第二協(xié)議具體可以是存儲側協(xié)議;或者上述第一協(xié)議具體可以是存儲側協(xié)議中的一個協(xié)議,第二協(xié)議具體可以是網絡側協(xié)議。
[0136]需要說明的是,所述方法具體可以是應用于上面實施例介紹的存儲控制芯片,其中,上述網絡裝置具體可以是上面實施例中介紹的存儲控制芯片的外部網絡。
[0137]另一個實施例中,步驟901具體可以包括:
[0138]存儲控制芯片接收網絡裝置發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行網絡側協(xié)議解封裝處理得到所述第一內部報文。
[0139]其中,該步驟具體可以是通過上面實施例介紹的網絡接口模塊以及處理引擎配置實現(xiàn)的。具體的實現(xiàn)過程可以參考上面的實施例。
[0140]可選的,步驟902具體可以包括:
[0141]存儲控制芯片對所述第一內部報文進行分析處理得到分析結果。
[0142]可選的,步驟903具體可以包括:
[0143]當所述分析結果表示所述第一內部報文是用于發(fā)送至磁盤的報文時,存儲控制芯片對所述第一內部報文進行存儲側協(xié)議封裝處理得到存儲側協(xié)議報文,并將所述存儲側協(xié)議報文發(fā)送至所述磁盤。
[0144]其中,該步驟具體可以是通過上面實施例介紹的存儲接口模塊以及處理引擎配置實現(xiàn)的。具體的實現(xiàn)過程可以參考上面的實施例。
[0145]可選的,上述第一內部報文具體可以是向上述磁盤進行寫操作的報文。
[0146]該實施例中中,介紹存儲控制芯片對磁盤進行寫操作的報文傳輸過程,該過程相比有技術,可以減少存儲控制及接口控制電路的成本。
[0147]在另一個實施例中,步驟901具體可以包括:
[0148]存儲控制芯片接收磁盤發(fā)送的包括第二內部報文的存儲側協(xié)議報文,并對所述存儲側協(xié)議報文進行存儲側協(xié)議解封裝處理得到所述第二內部報文。
[0149]其中,該步驟具體可以是通過上面實施例介紹的存儲接口模塊以及處理引擎配置實現(xiàn)的。具體的實現(xiàn)過程可以參考上面的實施例。
[0150]可選的,步驟902具體可以包括:
[0151]存儲控制芯片對所述第二內部報文進行分析處理得到分析結。
[0152]步驟903具體可以包括:
[0153]當所述分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,存儲控制芯片對所述第二目標報文進行網絡側協(xié)議封裝處理得到網絡側協(xié)議報文,并將該網絡側協(xié)議報文發(fā)送至外部網絡。
[0154]其中,該步驟具體可以是通過上面實施例介紹的網絡接口模塊以及處理引擎配置實現(xiàn)的。具體的實現(xiàn)過程可以參考上面的實施例。
[0155]可選的,上述第二內部報文具體可以是對磁盤進行讀取操作的報文。[0156]該實施例中,上述技術方案中,存儲控制芯片接收第一裝置發(fā)送的包括內部報文的第一協(xié)議報文,并對所述第一協(xié)議報文進行第一協(xié)議報文解封裝處理得到所述內部報文;存儲控制芯片對所述內部報文進行分析處理得到分析結果;當所述分析結果表示所述內部報文是用于發(fā)送至第二裝置的報文時,存儲控制芯片對所述內部報文進行第二協(xié)議封裝處理得到第二協(xié)議報文,并將所述第二協(xié)議報文發(fā)送至所述第二裝置。這樣整個存儲控制芯片就只需要處理第一協(xié)議和第二協(xié)議的協(xié)議棧,相比現(xiàn)有技術存儲控制及接口控制電路都通過PCIE接口,即現(xiàn)有技術中存儲控制及接口控制電路至少需要處理PCIE協(xié)議、網絡側協(xié)議(例如:Eth協(xié)議)和存儲側協(xié)議(例如:SAS協(xié)議)的協(xié)議棧,本實施例可以減少存儲控制及接口控制電路的成本。
[0157]下面以下具體的應用實例進行舉例說明
[0158]應用場景的結構可以如圖10所示,服務器的存儲板101上配置存儲控制芯片1011,其存儲側接口為SAS,連接板內磁盤1012,網絡側接口為Eth接口,連接交換板102的Eth交換機1021,服務器板103的處理器1031通過Eth網卡1032連接交換板的Eth交換機1021來訪問存儲板101,服務器系統(tǒng)跑的是iSCSI協(xié)議數據。另外,存儲板101上還可以包括處理器1013,例如,處理器1013用于配置和管理存儲控制芯片的軟件。以服務器板103讀取存儲板101上的磁盤1012的操作為例進行說明,該讀取操作的流程可以參考圖11所示,該流程可以包括如下步驟:
[0159]1101、服務器板將i SCSI報文封裝在Eth報文中,通過網卡發(fā)送至交換板的Eth交換機。
[0160]1102、交換板的Eth交換機轉發(fā)服務器板網卡發(fā)過來的Eth報文到存儲板。
[0161]1103、存儲板的存儲控制芯片的網絡側接口接收到Eth報文,其網絡接口模塊對Eth報文進行協(xié)議解封裝去掉Eth報文頭,把處理后IP報文傳送給處理引擎。
[0162]1104、網絡接口模塊解封裝IP報文,去掉IP報文頭和TCP報文頭,把處理后的iSCSI報文傳送給處理引擎。
[0163]1105、網絡接口模塊解封裝iSCSI報文,以去掉iSCSI報文頭,把處理后的SCSI報文傳送給處理引擎。
[0164]需要說明的是,IP和TCP的協(xié)議卸載和iSCSI的協(xié)議卸載是可選支持的功能,本發(fā)明實施例對此不作限定制,即步驟1104和1105可以是由網絡接口模塊執(zhí)行的,還可以是由處理引擎執(zhí)行的,即處理引擎可以完成上述步驟1104和步驟1105。本實施例以網絡接口模塊支持IP、TCP和iSCSI的協(xié)議卸載功能為例進行說明,則其進行協(xié)議卸載處理后的是SCSI報文。
[0165]1106、處理引擎接收到網絡接口模塊發(fā)送過來的SCSI報文,當解釋出該SCSI報文是讀取磁盤的命令請求,則把SCSI報文傳送給存儲接口模塊。
[0166]1107、存儲接口模塊接收到SCSI報文,將該SCSI封裝上SAS報文頭得到SAS報文,并將該SAS報文發(fā)送至磁盤。
[0167]1108、磁盤內部的控制器接收到該SAS報文后,分析SAS報文獲取到讀命令,并讀取出包括響應數據的SAS報文,并將該SAS報文返回給存儲接口模塊。
[0168]1109、存儲接口模塊接收到磁盤發(fā)過來的SAS報文,對該SAS報文進行協(xié)議解封裝去掉SAS報文頭,把處理后的SCSI報文傳送給處理引擎。[0169]1110、處理引擎接收到存儲接口模塊發(fā)過來的SCSI報文,解釋到該SCSI報文是讀取到的磁盤數據,則把該SCSI報文傳送給網絡接口模塊。
[0170]1111、網絡接口模塊接收到處理引擎發(fā)送的SCSI報文,根據之前記錄的網絡接口信息(例如:包括TCP端口號、IP地址、MAC地址等),對該SCSI報文封裝iSCSI報文頭、TCP報文頭、IP報文頭、Eth報文頭,把處理后的Eth報文發(fā)送給交換板。
[0171]1112、交換板的Eth交換機轉發(fā)存儲板存儲控制芯片發(fā)過來的Eth報文到服務器板。
[0172]1113、服務器板網卡接收到交換板發(fā)過來的Eth報文,進行處理后通過PCIE接口傳送給處理器。
[0173]本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存取存儲器(Random AccessMemory,簡稱 RAM)等。
[0174]以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【權利要求】
1.一種存儲控制芯片,其特征在于,包括:網絡接口模塊、處理引擎和存儲接口模塊, 其中,所述網絡接口模塊包括網絡側接口,所述網絡接口模塊通過所述網絡側接口與所述芯片的外部網絡連接,所述網絡接口模塊通過數據通道與所述處理引擎連接,所述處理引擎還通過數據通道與所述存儲接口模塊連接,所述存儲接口模塊包括存儲側接口,所述存儲接口模塊通過所述存儲側接口與磁盤連接;其中:所述網絡接口模塊,用于通過網絡側協(xié)議處理實現(xiàn)所述外部網絡與所述處理引擎之間傳輸報文;所述處理引擎,用于分析所述網絡接口模塊傳輸的報文,或者分析所述存儲接口模塊傳輸的報文;并將分析結果表示為用于發(fā)送至磁盤的報文通過數據通道發(fā)送至所述存儲接口模塊,并將分析結果表示為用于發(fā)送至所述外部網絡的報文通過數據通道發(fā)送至所述網絡接口模塊;所述存儲接口模塊,用于通過存儲側協(xié)議處理實現(xiàn)所述磁盤與所述處理引擎之間傳輸報文。
2.如權利要求1所述的芯片,其特征在于,所述所述網絡接口模塊還用于通過所述網絡側接口接收所述外部網絡發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行解封裝處理得到包括所述第一內部報文的第一目標報文,再通過數據通道將所述第一目標報文發(fā)送至所述處理引擎;所述處理引擎還用于根據所述第一目標報文得到所述第一內部報文,對所述第一內部報文進行分析處理得到分析結果,當該分析結果表示所述第一內部報文是用于發(fā)送至磁盤的報文時,通過數據通道將所述第一內部報文發(fā)送至所述存儲接口模塊;所述存儲接口模塊還用于對所述第一內部報文進行存儲側協(xié)議封裝處理得到存儲側協(xié)議報文,并通過所述存儲側接口將所述存儲側協(xié)議報文發(fā)送至所述磁盤。
3.如權利要求1或2所述的芯片,其特征在于,所述存儲接口模塊還用于通過所述存儲側接口接收所述磁盤發(fā)送的包括第二內部報文的存儲側協(xié)議報文,并對所述存儲側協(xié)議報文進行解封裝處理得到所述第二內部報文,并通過數據通道將所述第二內部報文發(fā)送至所述處理引擎;所述處理引擎還用于對所述第二內部報文進行分析處理得到分析結果,當該分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,通過數據通道向所述網絡接口模塊發(fā)送包括所述第二內部報文的第二目標報文;所述網絡接口模塊還用于對所述第二目標報文進行封裝處理得到網絡側協(xié)議報文,并通過所述網絡側接口將該網絡側協(xié)議報文發(fā)送至外部網絡。
4.如權利要求2所述的芯片,其特征在于,所述網絡接口模塊用于通過所述網絡側接口接收外部網絡發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行網絡側協(xié)議解封裝處理得到所述第一內部報文,再通過數據通道將所述第一內部報文發(fā)送至所述處理引擎;或者所述網絡接口模塊用于當所述網絡側協(xié)議報文包括多層協(xié)議封裝時,通過所述網絡側接口接收外部網絡發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行第一層協(xié)議的解封裝處理得到包括所述第一內部報文的目標報文,再通過數據通道將所述目標報`文發(fā)送至所述處理引擎;所述處理引擎用于當所述網絡側協(xié)議報文包括多層協(xié)議封裝時,對所述目標報文進行解封裝處理得到所述第一內部報文,對所述第一內部報文進行分析處理得到分析結果,當該分析結果表示所述第一內部報文是用于讀取磁盤的報文時,通過數據通道將所述第一內部報文發(fā)送至所述存儲接口模塊。
5.如權利要求3所述的芯片,其特征在于,所述處理引擎用于對所述第二內部報文進行分析處理得到分析結果,當該分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,通過數據通道向所述網絡接口模塊發(fā)送所述第二內部報文;或者所述處理引擎用于當所述網絡側協(xié)議報文包括多層協(xié)議封裝時,對所述第二內部報文進行分析處理得到分析結果,當該分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,對所述第二內部報文進行封裝處理得到包括所述第二內部報文的第二目標報文,并通過數據通道向所述網絡接口模塊發(fā)送所述第二目標報文。
6.如權利要求1或2所述的芯片,其特征在于,所述芯片還包括:管理接口模塊,其中, 所述管理接收模塊包括控制管理接口,所述管理接口模塊通過所述控制管理接口與所述芯片的外部處理器連接,所述管理接口模塊還通過管理通道與所述處理引擎連接;其中:所述管理接口模塊,用于通過所述控制管理接口接收所述外部處理器發(fā)送的用于配置和/或管理所述處理引擎的配置管理報文,并通過管理通道將所述配置管理報文發(fā)送至所述處理引擎;所述處理引擎還用于根據所述配置管理報文配置和/或管理所述處理引擎的軟件。
7.如權利要求1或2所述的芯片,其特征在于,所述芯片還包括:內存管理單元MMU控制器,所述MMU控制器包括內存接口,所述MMU控制器通過所述內存接口與外部內存連接, 所述MMU控制器還通過數據通道與所述處理引擎連接;其中:所述MMU控制器,用于將所述處理引擎處理的數據存放至所述外部內存。
8.如權利要求7所述的芯片,其特征在于,所述芯片還包括:直接內存訪問DMA控制器,所述DMA控制器分別通過控制通道與所述處理引擎連接,以及通過控制通道與所述MMU 控制器連接;其中:所述DMA控制器,用于當需要使用所述外部內存時,控制所述存儲接口模塊與所述外部內存之間的數據傳輸,以及控制所述網絡接口模塊與所述外部內存之間的數據傳輸。
9.如權利要求1或2所述的芯片,其特征在于,所述芯片還包括:數據緩存,所述數據緩存通過數據通道與所述處理引擎連接;其中:所述數據緩存,用于緩存程序代碼或者所述處理引擎處理的報文信息;所述處理引擎還用于調用所述數據緩存緩存的程序代碼執(zhí)行對報文的處理操作。
10.如權利要求1或2所述的芯片,其特征在于,所述芯片還包括:閃存Flash接口模塊,所述Flash接口模塊一端口與外部Flash芯片連接,所述Flash接口模塊的另一端與所述處理引擎連接;其中:所述Flash接口模塊,用于在下電狀態(tài)將所述芯片使用的軟件的程序代碼存儲至所述外部Flash芯片。
11.一種磁盤報文傳輸方法,其特征在于,包括:存儲控制芯片接收第一裝置發(fā)送的包括內部報文的第一協(xié)議報文,并對所述第一協(xié)議報文進行第一協(xié)議報文解封裝處理得到所述內部報文;所述存儲控制芯片對所述內部報文進行分析處理得到分析結果;當所述分析結果表示所述內部報文是用于發(fā)送至第二裝置的報文時,所述存儲控制芯片對所述內部報文進行第二協(xié)議封裝處理得到第二協(xié)議報文,并將所述第二協(xié)議報文發(fā)送至所述第二裝置;其中: 所述第一裝置為與所述存儲控制芯片的第一端連接的網絡裝置,所述第二裝置為與所述存儲控制芯片的第二端連接的磁盤;或者,所述第一裝置為與所述存儲控制芯片的第二端連接的磁盤,所述第二裝置為與所述存儲控制芯片的第一端連接的網絡裝置。
12.如權利要求11所述的方法,其特征在于,所述存儲控制芯片接收第一裝置發(fā)送的包括內部報文的第一協(xié)議報文,并對所述第一協(xié)議報文進行第一協(xié)議報文解封裝處理得到所述內部報文,包括: 所述存儲控制芯片接收所述網絡裝置發(fā)送的包括第一內部報文的網絡側協(xié)議報文,并對所述網絡側協(xié)議報文進行網絡側協(xié)議解封裝處理得到所述第一內部報文; 所述當所述分析結果表示所述內部報文是用于發(fā)送至第二裝置的報文時,所述存儲控制芯片對所述內部報文進行第二協(xié)議封裝處理得到第二協(xié)議報文,并將所述第二協(xié)議報文發(fā)送至所述第二裝置,包括: 當所述分析結果表示所述第一內部報文是用于發(fā)送至磁盤的報文時,所述存儲控制芯片對所述第一內部報文進行存儲側協(xié)議封裝處理得到存儲側協(xié)議報文,并將所述存儲側協(xié)議報文發(fā)送至所述磁盤。
13.如權利要求11所述的方法,其特征在于,所述存儲控制芯片接收第一裝置發(fā)送的包括內部報文的第一協(xié)議報文,并對所述第一協(xié)議報文進行第一協(xié)議報文解封裝處理得到所述內部報文,包括:` 所述存儲控制芯片接收磁盤發(fā)送的包括第二內部報文的存儲側協(xié)議報文,并對所述存儲側協(xié)議報文進行存儲側協(xié)議解封裝處理得到所述第二內部報文; 所述存儲控制芯片對所述第二內部報文進行分析處理得到分析結果; 所述當所述分析結果表示所述內部報文是用于發(fā)送至第二裝置的報文時,所述存儲控制芯片對所述內部報文進行第二協(xié)議封裝處理得到第二協(xié)議報文,并將所述第二協(xié)議報文發(fā)送至所述第二裝置,包括: 當所述分析結果表示所述第二內部報文是用于發(fā)送至外部網絡的報文時,所述存儲控制芯片對所述第二目標報文進行網絡側協(xié)議封裝處理得到網絡側協(xié)議報文,并將該網絡側協(xié)議報文發(fā)送至所述網絡裝置。
【文檔編號】G06F3/06GK103558995SQ201310482817
【公開日】2014年2月5日 申請日期:2013年10月15日 優(yōu)先權日:2013年10月15日
【發(fā)明者】李宇濤, 姚益民 申請人:華為技術有限公司