專利名稱:用于優(yōu)化dma信道選擇的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算系統(tǒng),且更明確地說,涉及優(yōu)化直接存儲器存取(“DMA”)信道仲裁。
背景技術(shù):
通常使用存儲區(qū)域網(wǎng)絡(luò)(“SAN”),其中使多個存儲器存儲裝置可用于各種主機(jī)計算系統(tǒng)。通常通過各種控制器/適配器來將SAN中的數(shù)據(jù)從多個主機(jī)系統(tǒng)(其包含計算機(jī)系統(tǒng)、服務(wù)器等)移動到存儲系統(tǒng)。
主機(jī)系統(tǒng)通常包含若干功能組件。這些組件可包含中央處理單元(CPU)、主存儲器、輸入/輸出(“I/O”)裝置和流式存儲裝置(streaming storage device)(例如,磁帶驅(qū)動器)。在常規(guī)系統(tǒng)中,主存儲器經(jīng)由系統(tǒng)總線或本地存儲器總線耦合到CPU。主存儲器用于在執(zhí)行時間向CPU提供對存儲在主存儲器中的數(shù)據(jù)和/或程序信息的存取權(quán)。通常,主存儲器由隨機(jī)存取存儲器(RAM)電路組成。具有CPU和主存儲器的計算機(jī)系統(tǒng)通常被稱為主機(jī)系統(tǒng)。
主機(jī)系統(tǒng)通常使用接口(例如,“PCI”總線接口)經(jīng)由主機(jī)總線適配器(“HRA”,也可稱為“控制器”和/或“適配器”)與存儲系統(tǒng)通信。PCI代表外圍組件互連(PeripheralComponent Interconnect),由Intel Corporation開發(fā)的本地總線標(biāo)準(zhǔn)。PCI標(biāo)準(zhǔn)全文以引用的方式并入本文中。大多數(shù)現(xiàn)代計算系統(tǒng)除包含較一般的擴(kuò)展總線(例如,ISA總線)外還包含PCI總線。PCI是64位總線,且可以33或66MHz的時鐘速度運(yùn)行。
PCI-X是另一標(biāo)準(zhǔn)總線,其與使用PCI總線的現(xiàn)有PCI卡兼容。PCI-X將PCI的數(shù)據(jù)傳送速率從132MBps改進(jìn)為多達(dá)1GBps。PCI-X標(biāo)準(zhǔn)由IBM、Hewlett PackardCorporation和Compaq Corporation開發(fā),以提高高帶寬裝置(例如,千兆位以太網(wǎng)標(biāo)準(zhǔn)(Gigabit Ethernet standard)和光纖信道標(biāo)準(zhǔn)(Fibre Channel Standard))以及作為群集的一部分的處理器的性能。
也使用各種其它標(biāo)準(zhǔn)接口來將數(shù)據(jù)從主機(jī)系統(tǒng)移動到存儲裝置。光纖信道是這樣的一個標(biāo)準(zhǔn)。光纖信道(其全文以引用的方式并入本文中)是美國國家標(biāo)準(zhǔn)學(xué)會(AmericanNational Standard Institute,ANSI))提出的一組標(biāo)準(zhǔn),其提供針對存儲的串行傳輸協(xié)議和網(wǎng)絡(luò)協(xié)議(例如,HIPPI、SCSI、IP、ATM和其它協(xié)議)。光纖信道提供輸入/輸出接口以滿足信道和網(wǎng)絡(luò)用戶兩者的需求。
iSCSI是基于小型計算機(jī)系統(tǒng)接口(“SCSI”)的另一標(biāo)準(zhǔn)(其全文以引用的方式并入本文中),其使主機(jī)計算機(jī)系統(tǒng)能夠與包含磁盤和磁帶裝置、光學(xué)存儲裝置以及打印機(jī)和掃描儀的多種外圍裝置一起執(zhí)行塊數(shù)據(jù)輸入/輸出(“I/O”)操作。
主機(jī)系統(tǒng)與外圍裝置之間的傳統(tǒng)的SCSI連接是通過并行布線進(jìn)行的,且受到距離和裝置支持約束條件的限制。對于存儲應(yīng)用來說,開發(fā)iSCSI以利用基于光纖信道和千兆位以太網(wǎng)標(biāo)準(zhǔn)的網(wǎng)絡(luò)結(jié)構(gòu)。iSCSI在已建立的聯(lián)網(wǎng)基礎(chǔ)設(shè)施上利用SCSI協(xié)議,且界定用于在TCP/IP網(wǎng)絡(luò)上啟用塊存儲應(yīng)用的構(gòu)件。iSCSI界定SCSI協(xié)議與TCP/IP的映射。
HBA使用DMA模塊來在存儲器位置之間或存儲器位置與輸入/輸出端口之間執(zhí)行數(shù)據(jù)傳送。DMA模塊通過利用傳送控制信息來初始化DMA單元中的控制寄存器而起作用,而不涉及微處理器。傳送控制信息通常包含源地址(待傳送的數(shù)據(jù)塊的開頭部分的地址)、目的地地址和數(shù)據(jù)塊的大小。DMA單元向裝置提供地址和總線控制信號并從裝置中提供地址和總線控制信號,以用于讀取和/或?qū)懭胙h(huán)。
在DMA單元中建構(gòu)特定信道,以允許存儲裝置將數(shù)據(jù)直接傳送到存儲器存儲裝置且從存儲器存儲裝置傳送數(shù)據(jù)??赏ㄟ^來自存儲裝置或主機(jī)系統(tǒng)的DMA請求信號(DREQ)來激活信道。DMA單元接收所述DREQ;提供DMA確認(rèn)信號(DACK);且通過所述信道將數(shù)據(jù)傳送到存儲裝置或從存儲裝置傳送數(shù)據(jù)。HBA通常使用多個DMA信道,且具有仲裁模塊,所述仲裁模塊對于PCI(或PCI-Express)鏈路的存取進(jìn)行仲裁。這允許HBA通過有效地處理命令、狀態(tài)和數(shù)據(jù)來對(信道之間的)上下文進(jìn)行仲裁和切換。以周期性短脈沖的形式對多個信道提供服務(wù)。在每個仲裁循環(huán)之后,當(dāng)連接到選定信道時,即使所述選定信道與先前仲裁循環(huán)中的先前選定的信道相同,也存在用于對數(shù)據(jù)管線進(jìn)行重新加載的額外時間。因此,如果多個信道不在使用中,那么最小仲裁循環(huán)增加了(多個時鐘循環(huán)的)等待時間且影響整體性能。等待時間的原因是對于每一DMA循環(huán)來說都必須加載并更新某些資源。當(dāng)連續(xù)的請求從同一DMA信道出現(xiàn),且其它信道都不請求存取時,每次對所述同一信道提供服務(wù)時都存在額外的損失,因為在有效信道被重新初始化(或“重新裝備”)的時間期間,另一信道不傳送數(shù)據(jù)。
HBA常常必須在DMA信道之間,尤其在同時處理狀態(tài)、命令和數(shù)據(jù)時,執(zhí)行頻繁的上下文切換。在其它情況下,HBA可通過主要使用單個DMA信道來操作。這在(例如)發(fā)生較大數(shù)據(jù)傳送且特定DMA單元獲得存取權(quán)的情況下發(fā)生。這些情況(即,單信道使用或頻繁的上下文切換)是不可預(yù)測的。常規(guī)HBA不能自動感測單信道使用和相應(yīng)地調(diào)節(jié)仲裁循環(huán)。
并且,工業(yè)標(biāo)準(zhǔn)(例如,PCI-Express標(biāo)準(zhǔn))提供關(guān)于存儲器讀取/寫入請求何時必須基于最大有效負(fù)載、最大讀取請求大小和地址/數(shù)據(jù)對準(zhǔn)而終止的交易規(guī)則。由于這些規(guī)則的緣故,較大DMA請求可能必須被分段成較小區(qū)塊。在常規(guī)系統(tǒng)中,在準(zhǔn)許同一DMA信道對下一片段進(jìn)行另一請求之前,接收第一數(shù)據(jù)片段的完成。這是因為每個DMA信道僅允許一個未解決的請求。重復(fù)請求-響應(yīng)序列,直到整個DMA請求完成為止。如果單個信道重復(fù)地用于較大數(shù)據(jù)傳送,那么請求-響應(yīng)-請求循環(huán)消極地影響整體性能。
因此,需要一種系統(tǒng)和方法,其可自動感測同一DMA信道是否正用于數(shù)據(jù)傳送;將某一標(biāo)準(zhǔn)請求和分段規(guī)則禁用某一周期;且通過減小仲裁頻率來有效率地傳送數(shù)據(jù)。
發(fā)明內(nèi)容
在本發(fā)明的一個方面,提供一種主機(jī)總線適配器,其耦合到網(wǎng)絡(luò)和主機(jī)計算系統(tǒng)。所述主機(jī)總線適配器包含直接存儲器存取(“DMA”)模式檢測模塊,其從仲裁模塊接收DMA信道標(biāo)識符信息,所述仲裁模塊從多個DMA信道接收請求,其中所述DMA模式檢測模塊包含DMA計數(shù)器,其對所述仲裁模塊專門服務(wù)單個DMA信道的次數(shù)進(jìn)行計數(shù),且如果DMA計數(shù)器值等于閾值,那么所述DMA模式檢測模塊啟用單信道模式,在所述單信道模式期間,忽略標(biāo)準(zhǔn)交易規(guī)則來確定用于傳送數(shù)據(jù)的DMA請求長度。啟用所述單信道模式,持續(xù)某一持續(xù)時間。所述主機(jī)總線適配器包含基于規(guī)則的分段邏輯,其可通過主機(jī)總線適配器固件和/或單信道模式條件的檢測而被啟用和/或禁用。
DMA模式檢測模塊包含寄存器,其存儲閾值,且所述閾值是可編程的。所述多個DMA信道包含位于主機(jī)總線適配器的接收和發(fā)射路徑中的DMA信道。
在本發(fā)明的另一方面,提供一種允許主機(jī)計算系統(tǒng)通過網(wǎng)絡(luò)與多個裝置通信的系統(tǒng)。所述系統(tǒng)包含主機(jī)總線適配器,所述主機(jī)總線適配器包含DMA模式檢測模塊,其從仲裁模塊接收DMA信道標(biāo)識符信息,所述仲裁模塊從多個DMA信道接收請求,其中所述DMA模式檢測模塊包含DMA計數(shù)器,其對所述仲裁模塊專門服務(wù)單個DMA信道的次數(shù)進(jìn)行計數(shù),且如果DMA計數(shù)器值等于閾值,那么所述DMA模式檢測模塊啟用單信道模式,在所述單信道模式期間,忽略標(biāo)準(zhǔn)交易規(guī)則來確定用于傳送數(shù)據(jù)的DMA請求長度。所述主機(jī)總線適配器包含基于規(guī)則的分段邏輯,其可通過主機(jī)總線適配器固件和/或單信道模式條件的檢測而被啟用和/或禁用。
DMA模式檢測模塊包含寄存器,其存儲閾值,且所述閾值是可編程的。
提供一種可通過網(wǎng)絡(luò)與多個裝置通信的主機(jī)計算系統(tǒng)。所述計算系統(tǒng)耦合到主機(jī)總線適配器,所述主機(jī)總線適配器包含DMA模式檢測模塊,其從仲裁模塊接收DMA信道標(biāo)識符信息,所述仲裁模塊從多個DMA信道接收請求,其中所述DMA模式檢測模塊包含DMA計數(shù)器,其對所述仲裁模塊專門服務(wù)單個DMA信道的次數(shù)進(jìn)行計數(shù),且如果DMA計數(shù)器值等于閾值,那么所述DMA模式檢測模塊啟用單信道模式,在所述單信道模式期間,忽略標(biāo)準(zhǔn)交易規(guī)則來確定用于傳送數(shù)據(jù)的DMA請求長度。
所述主機(jī)總線適配器包含基于規(guī)則的分段邏輯,其可通過主機(jī)總線適配器固件和/或單信道模式條件的檢測而被啟用和/或禁用。
在本發(fā)明的又一方面,提供一種用于通過使用HBA而在主機(jī)計算系統(tǒng)與多個裝置之間傳送數(shù)據(jù)的方法。所述方法包含確定HBA中的同一DMA信道是否已得到專門服務(wù)持續(xù)某一持續(xù)時間;和啟用單信道模式,在所述單信道模式期間,忽略標(biāo)準(zhǔn)交易規(guī)則來確定用于在主機(jī)計算系統(tǒng)與多個裝置之間傳送數(shù)據(jù)的DMA請求長度。
已經(jīng)提供了此簡要概括,使得可快速地理解本發(fā)明的本質(zhì)。可參考以下關(guān)于附圖作出的對本發(fā)明優(yōu)選實施例的詳細(xì)描述來獲得對本發(fā)明的更完整的理解。
現(xiàn)將參看優(yōu)選實施例的附圖來描述本發(fā)明的前述特征和其它特征。在附圖中,相同組件具有相同參考標(biāo)號。所說明的實施例意圖在于說明而非限制本發(fā)明。附圖包含以下各圖圖1A是展示SAN的各個組件的方框圖;圖1B是根據(jù)本發(fā)明一個方面使用DMA模式選擇的主機(jī)總線適配器的方框圖;圖1C展示根據(jù)本發(fā)明一個方面使用DMA模式選擇模塊的多個DMA單元的方框圖;圖1D展示根據(jù)本發(fā)明一個方面DMA模式選擇模塊的方框圖;和圖2是根據(jù)本發(fā)明一個方面用于DMA處理的可執(zhí)行步驟的過程流程圖。
不同圖中使用類似參考標(biāo)號指示類似或相同項目。
具體實施例方式
為了有助于理解優(yōu)選實施例,將描述SAN和HBA的一般結(jié)構(gòu)和操作。接著,將參考主機(jī)系統(tǒng)和HBA的一般結(jié)構(gòu)來描述優(yōu)選實施例的特定結(jié)構(gòu)和操作。
SAN概述圖1A展示SAN系統(tǒng)100,其使用HBA 106(稱為“適配器106”)以便通過使用光纖信道存儲區(qū)域網(wǎng)絡(luò)114和115而在具有主機(jī)存儲器101的主機(jī)系統(tǒng)(例如,200)與各種存儲系統(tǒng)(例如,存儲子系統(tǒng)116和121,磁帶庫118和120)之間通信。主機(jī)存儲器101包含驅(qū)動器102,其通過使用輸入/輸出控制區(qū)塊(“IOCB”)來經(jīng)由適配器106協(xié)調(diào)所有數(shù)據(jù)傳送。服務(wù)器117和119也可分別通過使用SAN 115和114來存取存儲子系統(tǒng)。請求隊列103和響應(yīng)隊列104維持在主機(jī)存儲器101中,以便使用適配器106來傳送信息。如圖1B中所示,主機(jī)系統(tǒng)通過PCI核心模塊(接口)137經(jīng)由PCI總線105來與適配器106通信。
HBA 106圖1B展示適配器106的方框圖。適配器106包含用于接收和發(fā)射側(cè)的處理器(也可稱為“序列發(fā)生器”)“XSEQ”112和“RSEQ”109,其分別用于處理從存儲子系統(tǒng)接收到的數(shù)據(jù)和將數(shù)據(jù)發(fā)射到存儲子系統(tǒng)。此情境中的發(fā)射路徑表示從主機(jī)存儲器101經(jīng)由適配器106到存儲系統(tǒng)的數(shù)據(jù)路徑。接收路徑表示從存儲子系統(tǒng)經(jīng)由適配器106的數(shù)據(jù)路徑。值得注意的是,僅將一個處理器用于接收和發(fā)射路徑,且本發(fā)明并不限于任何特定數(shù)目/類型的處理器。緩沖器111A和111B分別用于存儲接收和發(fā)射路徑中的信息。
除接收和發(fā)射路徑上的專用處理器之外,適配器106還包含處理器106A,其可為用于執(zhí)行適配器106中的各種功能的精簡指令集計算機(jī)(reduced instruction set computer,“RISC”)。
適配器106還包含光纖信道接口(也稱為光纖信道協(xié)議管理器“FPM”)113A,所述光纖信道接口在接收和發(fā)射路徑中分別包含F(xiàn)PM 113B和FPM 113。FPM 113B和FPM113允許數(shù)據(jù)移動到存儲系統(tǒng)/從存儲系統(tǒng)移出。
適配器106還經(jīng)由連接件116A(圖1A)(在下文中可交換地參考)和本地存儲器接口122而耦合到外部存儲器108和110。提供存儲器接口122來管理本地存儲器108和110。本地DMA模塊137A用于獲得將數(shù)據(jù)從本地存儲器(108/110)移出的存取權(quán)。適配器106還包含串行/解串行器136,其用于將數(shù)據(jù)從10位格式轉(zhuǎn)換成8位格式,和進(jìn)行相反的轉(zhuǎn)換。
適配器106還包含請求隊列DMA信道130;響應(yīng)隊列DMA信道131;請求隊列(1)DMA信道132,其與請求隊列103和響應(yīng)隊列104介接;和命令DMA信道133,其用于管理命令信息。這些DMA信道耦合到仲裁器107,仲裁器107從DMA信道接收多個請求,且準(zhǔn)許對某一信道進(jìn)行存取。接收和發(fā)射路徑兩者都具有DMA模塊129和135,其用于獲得對信道的存取權(quán)以在接收/發(fā)射路徑中傳送數(shù)據(jù)。發(fā)射路徑還具有調(diào)度器134,其耦合到處理器112并對發(fā)射操作進(jìn)行調(diào)度。
主機(jī)處理器(未圖示)在緩沖存儲器108中設(shè)置共享數(shù)據(jù)結(jié)構(gòu)。將主機(jī)命令存儲在緩沖器108中,且初始化適當(dāng)?shù)男蛄邪l(fā)生器(即,109或112)以執(zhí)行命令。
各個DMA單元(或信道,本說明書全文中可交換地使用)(例如,129、130、131、132、133和135)將請求發(fā)送到仲裁器107?;谝呀⒌臉?biāo)準(zhǔn)仲裁規(guī)則來分析所述請求。當(dāng)請求被準(zhǔn)許時,通知DMA單元所述準(zhǔn)許,且準(zhǔn)許對特定信道進(jìn)行存儲器存取。
DMA模式選擇模塊107A(“模塊107A”)在本發(fā)明的一個方面,提供DMA模式選擇模塊107A,其自動檢測(“自動感測”)何時準(zhǔn)許對特定DMA信道進(jìn)行連續(xù)(即,緊接(back-to-back))存取持續(xù)某一時間段。模塊107A可啟用“單信道”模式,所述“單信道”模式規(guī)避各種標(biāo)準(zhǔn)規(guī)則,例如斷開數(shù)據(jù)塊分段,這減少了仲裁循環(huán)的數(shù)目和重新初始化同一DMA信道所花費(fèi)的周轉(zhuǎn)時間。
模塊107A還感測在啟用單信道模式之后何時再次使用多個信道。當(dāng)這種情況發(fā)生時,禁用單信道模式,且將標(biāo)準(zhǔn)分段技術(shù)用于較大數(shù)據(jù)傳送。
圖1C展示功能上與模塊107A耦合的仲裁器107。多個DMA信道(例如,129和135)與仲裁器107耦合。每個DMA信道都具有請求管線(例如,129B和135B)和分段模塊(例如,129A和135A)。分段模塊將DMA傳送分段成多個片段(或區(qū)塊),以滿足數(shù)據(jù)傳送規(guī)則和/或在DMA傳送太大時的情況。序列發(fā)生器109和112將信道任務(wù)命令(129C和135C)分別發(fā)送到DMA信道129和135。所述命令用于向仲裁器107產(chǎn)生請求。
分段模塊129A和135B還基于某些規(guī)則(例如,應(yīng)何時且如何對數(shù)據(jù)塊進(jìn)行分段)而操作。這些規(guī)則可通過固件而開啟或關(guān)閉。這些規(guī)則中的一些規(guī)則基于如PCI-Express標(biāo)準(zhǔn)協(xié)議所強(qiáng)加的數(shù)據(jù)塊長度和地址限制。也可通過檢測下文所述的單信道模式條件來啟用/禁用規(guī)則。
當(dāng)準(zhǔn)許存取信道時,將信息傳遞到模塊107A。如果準(zhǔn)許重復(fù)地存取同一信道且不存在競爭請求,那么模塊107A啟用單信道模式選擇信號107F。這允許分段模塊停止對數(shù)據(jù)塊進(jìn)行分段(和/或?qū)?shù)據(jù)塊分成較大片段),并以較大區(qū)塊的形式傳送數(shù)據(jù)以避免仲裁循環(huán)。啟用單信道模式,僅持續(xù)有限時間,使得一旦其它信道請求存取,那么就不會存在積壓。
圖1D展示模塊107A的方框圖??赏ㄟ^適配器106固件來啟用或禁用模塊107A的自動感測模式。仲裁器107在每次準(zhǔn)許對信道進(jìn)行存取時提供信道的標(biāo)識符(“信道ID”)107J??赏ㄟ^固件用持久性閾值來對閾值寄存器(展示為PST_THR)107D進(jìn)行編程。通過固件使用信號/命令107H來控制寄存器107D。命令/信號107I用于加載所述閾值。
每次仲裁器107準(zhǔn)許DMA請求時,DMA序列計數(shù)器107B(DMA_SEQ_CNT)均維持運(yùn)行計數(shù)(展示為107K)。通過固件使用命令/信號107G來啟用計數(shù)器107B。比較模塊107N比較當(dāng)前DMA請求的信道ID與信道ID 107J。如果DMA信道ID 107J對于當(dāng)前信道(107P)與對于上一信道是相同的,且計數(shù)器107B值(即,107L)小于寄存器107D值(即,107M)(如由邏輯107E確定),那么計數(shù)器107B增加。如果信道ID 107J不同,那么計數(shù)器107B重設(shè),例如為1。當(dāng)107L等于或大于107M時,那么產(chǎn)生單模式選擇信號107F,且將其發(fā)送到分段邏輯(例如,129A或135A)。
圖2展示用于自動感測DMA信道使用并啟用單信道模式的可執(zhí)行處理步驟的流程圖。
當(dāng)在步驟S200中固件通過命令/信號107G啟用計數(shù)器107B時,過程開始,且在步驟S201中,通過命令/信號107I而在寄存器107D中加載閾值。
在步驟S202中,所述過程確定當(dāng)前DMA信道ID(107P)是否與先前請求的信道ID(107J)相同。這由比較模塊107N執(zhí)行。如果信道ID不同,那么在步驟S203中,重設(shè)計數(shù)器107B。
如果信道ID相同,表示正服務(wù)于同一DMA信道,那么在步驟S202A中,遞增DMA計數(shù)器107B。
在步驟S204中,邏輯107E將計數(shù)器值107L與閾值107M進(jìn)行比較。如果107L不等于107M,那么對DMA請求進(jìn)行仲裁,且使用標(biāo)準(zhǔn)規(guī)則對數(shù)據(jù)塊進(jìn)行分段,且增加計數(shù)器107B。
如果107L等于107M,那么在步驟S206中,啟用單DMA信道模式。當(dāng)不啟用單信道模式時,那么遵循某些交易規(guī)則。舉例來說,讀取請求不得超過最大讀取請求大?。粚懭胝埱蟛坏贸^最大有效負(fù)載大??;讀取和寫入請求不得重疊4千字節(jié)(“KB”)地址片段;和/或?qū)懭胝埱蟊仨毐M可能頻繁地以128字節(jié)(“B”)邊界終止(即,除非是序列中的不以128B地址結(jié)束的上一個請求)。
如果107L等于107M,那么通過命令/信號107F來啟用單信道模式。
當(dāng)啟用單信道模式時,不使用前述交易規(guī)則來確定每個DMA請求的開始部分和結(jié)束部分。這將促使仲裁頻率減小,因為傳送的大小將增加。
值得注意的是,單信道模式可能僅由適配器106的固件允許持續(xù)某一持續(xù)時間。在自動禁用單信道模式之后,發(fā)生正常請求長度分段/仲裁。
盡管,已經(jīng)參考特定實施例描述了本發(fā)明,但這些實施例僅僅是說明性的而不是限制性的。根據(jù)本揭示案和所附權(quán)利要求書將明了本發(fā)明的許多其它應(yīng)用和實施例。
權(quán)利要求
1.一種主機(jī)總線適配器,其耦合到網(wǎng)絡(luò)和主機(jī)計算系統(tǒng),所述主機(jī)總線適配器包括直接存儲器存取(“DMA”)模式檢測模塊,其從仲裁模塊接收DMA信道標(biāo)識符信息,所述仲裁模塊從多個DMA信道接收請求,其中所述DMA模式檢測模塊包含DMA計數(shù)器,所述DMA計數(shù)器對所述仲裁模塊專門服務(wù)單個DMA信道的次數(shù)進(jìn)行計數(shù),且如果所述DMA計數(shù)器值等于閾值,那么所述DMA模式檢測模塊啟用單信道模式,在所述單信道模式期間,忽略標(biāo)準(zhǔn)交易規(guī)則來確定用于傳送數(shù)據(jù)的DMA請求長度。
2.根據(jù)權(quán)利要求1所述的主機(jī)總線適配器,其中所述DMA模式檢測模塊包含寄存器,所述寄存器存儲所述閾值,且所述閾值是可編程的。
3.根據(jù)權(quán)利要求1所述的主機(jī)總線適配器,其中所述多個DMA信道包含位于所述主機(jī)總線適配器的接收路徑中的DMA信道。
4.根據(jù)權(quán)利要求1所述的主機(jī)總線適配器,其中所述多個DMA信道包含位于所述主機(jī)總線適配器的發(fā)射路徑中的DMA信道。
5.根據(jù)權(quán)利要求1所述的主機(jī)總線適配器,其中啟用所述單信道模式達(dá)某一持續(xù)時間。
6.根據(jù)權(quán)利要求1所述的主機(jī)總線適配器,其進(jìn)一步包括基于規(guī)則的分段邏輯,其可通過主機(jī)總線適配器固件和/或單信道模式條件的檢測而被啟用和/或禁用。
7.一種允許主機(jī)計算系統(tǒng)通過網(wǎng)絡(luò)與多個裝置通信的系統(tǒng),其包括主機(jī)總線適配器,其包含直接存儲器存取(“DMA”)模式檢測模塊,所述DMA模式檢測模塊從仲裁模塊接收DMA信道標(biāo)識符信息,所述仲裁模塊從多個DMA信道接收請求,其中所述DMA模式檢測模塊包含DMA計數(shù)器,所述DMA計數(shù)器對所述仲裁模塊專門服務(wù)單個DMA信道的次數(shù)進(jìn)行計數(shù),且如果所述DMA計數(shù)器值等于閾值,那么所述DMA模式檢測模塊啟用單信道模式,在所述單信道模式期間,忽略標(biāo)準(zhǔn)交易規(guī)則來確定用于傳送數(shù)據(jù)的DMA請求長度。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述DMA模式檢測模塊包含寄存器,所述寄存器存儲所述閾值,且所述閾值是可編程的。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述多個DMA信道包含位于所述主機(jī)總線適配器的接收路徑中的DMA信道。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述多個DMA信道包含位于所述主機(jī)總線適配器的發(fā)射路徑中的DMA信道。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其中啟用所述單信道模式達(dá)某一持續(xù)時間。
12.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述多個裝置包含存儲裝置。
13.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述網(wǎng)絡(luò)是基于光纖信道的。
14.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述主機(jī)總線適配器包含基于規(guī)則的分段邏輯,其可通過主機(jī)總線適配器固件和/或單信道模式條件的檢測而被啟用和/或禁用。
15.一種可通過網(wǎng)絡(luò)與多個裝置通信的主機(jī)計算系統(tǒng),其包括主機(jī)總線適配器,其在操作上耦合到所述主機(jī)計算系統(tǒng),所述主機(jī)總線適配器包含直接存儲器存取(“DMA”)模式檢測模塊,所述DMA模式檢測模塊從仲裁模塊接收DMA信道標(biāo)識符信息,所述仲裁模塊從多個DMA信道接收請求,其中所述DMA模式檢測模塊包含DMA計數(shù)器,所述DMA計數(shù)器對所述仲裁模塊專門服務(wù)單個DMA信道的次數(shù)進(jìn)行計數(shù),且如果所述DMA計數(shù)器值等于閾值,那么所述DMA模式檢測模塊啟用單信道模式,在所述單信道模式期間,忽略標(biāo)準(zhǔn)交易規(guī)則來確定用于傳送數(shù)據(jù)的DMA請求長度。
16.根據(jù)權(quán)利要求15所述的主機(jī)計算系統(tǒng),其中所述DMA模式檢測模塊包含寄存器,所述寄存器存儲所述閾值,且所述閾值是可編程的。
17.根據(jù)權(quán)利要求15所述的主機(jī)計算系統(tǒng),其中所述多個DMA信道包含位于所述主機(jī)總線適配器的接收路徑中的DMA信道。
18.根據(jù)權(quán)利要求15所述的主機(jī)計算系統(tǒng),其中所述多個DMA信道包含位于所述主機(jī)總線適配器的發(fā)射路徑中的DMA信道。
19.根據(jù)權(quán)利要求15所述的主機(jī)計算系統(tǒng),其中啟用所述單信道模式達(dá)某一持續(xù)時間。
20.根據(jù)權(quán)利要求15所述的主機(jī)計算系統(tǒng),其中所述主機(jī)總線適配器包含基于規(guī)則的分段邏輯,其可通過主機(jī)總線適配器固件和/或單信道模式條件的檢測而被啟用和/或禁用。
21.一種使用耦合到網(wǎng)絡(luò)的主機(jī)總線適配器(“HBA”)在主機(jī)計算系統(tǒng)與多個裝置之間傳送數(shù)據(jù)的方法,其包括確定是否已專門服務(wù)所述HBA中的同一直接存儲器存取(“DMA”)信道達(dá)某一持續(xù)時間;和啟用單信道模式,在所述單信道模式期間,忽略標(biāo)準(zhǔn)交易規(guī)則來確定用于在所述主機(jī)計算系統(tǒng)與所述多個裝置之間傳送數(shù)據(jù)的DMA請求長度。
22.根據(jù)權(quán)利要求21所述的方法,其中DMA序列計數(shù)器保存仲裁模塊已服務(wù)所述同一DMA信道多少次的計數(shù)。
23.根據(jù)權(quán)利要求22所述的方法,其中所述仲裁模塊從多個DMA信道接收請求。
24.根據(jù)權(quán)利要求22所述的方法,其中將所述DMA序列計數(shù)器值與可編程閾值進(jìn)行比較,以確定是否應(yīng)啟用所述單信道模式。
25.根據(jù)權(quán)利要求24所述的方法,其中所述可編程閾值存儲在DMA模式檢測模塊中的寄存器中。
全文摘要
本發(fā)明提供一種主機(jī)總線適配器,其耦合到網(wǎng)絡(luò)和主機(jī)計算系統(tǒng)。所述主機(jī)總線適配器包含直接存儲器存取(“DMA”)模式檢測模塊,其從仲裁模塊接收DMA信道標(biāo)識符信息,所述仲裁模塊從多個DMA信道接收請求,其中所述DMA模式檢測模塊包含DMA計數(shù)器,所述DMA計數(shù)器對所述仲裁模塊專門服務(wù)單個DMA信道的次數(shù)進(jìn)行計數(shù),且如果DMA計數(shù)器值等于閾值,那么所述DMA模式檢測模塊啟用單信道模式,在所述單信道模式期間,忽略標(biāo)準(zhǔn)交易規(guī)則來確定用于傳送數(shù)據(jù)的DMA請求長度。啟用所述單信道模式達(dá)某一持續(xù)時間。所述主機(jī)總線適配器包含基于規(guī)則的分段邏輯,其可通過主機(jī)總線適配器固件和/或單信道模式條件的檢測而被啟用和/或禁用。
文檔編號G06F13/20GK101040271SQ200580034586
公開日2007年9月19日 申請日期2005年9月7日 優(yōu)先權(quán)日2004年9月8日
發(fā)明者布拉德利·S·森克森, 匡福·D·朱, 拉金德拉·R·甘地 申請人:Q邏輯公司