專利名稱:總線適配器卡的定制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對總線適配器卡的高速緩存行為進行定制。
背景技術(shù):
存儲設(shè)備的示例包括硬盤驅(qū)動和光盤驅(qū)動。存儲設(shè)備通常在旋轉(zhuǎn)存儲介質(zhì)上的塊中存儲數(shù)據(jù)。塊的大小通常以千字節(jié)(KB)來測量。例如,存儲介質(zhì)可以包括磁盤、光盤等。 存儲設(shè)備的訪問時間通常比半導(dǎo)體存儲器更慢。作為結(jié)果,從半導(dǎo)體存儲器讀取數(shù)據(jù)可以比從存儲介質(zhì)讀取更快。
多種存儲設(shè)備包括被稱作高速緩存存儲器的半導(dǎo)體存儲器,用于存儲可以由主機重復(fù)請求的、或者可以由主機請求的數(shù)據(jù)。此類存儲設(shè)備通常包括高速緩存控制器,該高速緩存控制器用于控制將數(shù)據(jù)高速緩存到高速緩存存儲器。例如,當(dāng)主機發(fā)出讀取命令時,高速緩存控制器首先確定所請求的數(shù)據(jù)在高速緩存存儲器中是否可用。如果不可用,則出現(xiàn)高速緩存未命中,并且從半導(dǎo)體存儲器中取回數(shù)據(jù),并且將其轉(zhuǎn)發(fā)至主機。高速緩存控制器可用將數(shù)據(jù)高速緩存在高速緩存存儲器中。當(dāng)主機再次請求相同的數(shù)據(jù)時,則在高速緩存存儲器中找到數(shù)據(jù)(即,出現(xiàn)高速緩存命中),并且從高速緩存存儲器中將其輸出到主機。 主機從高速緩存存儲器接收數(shù)據(jù)比從存儲介質(zhì)中接收數(shù)據(jù)更快。 發(fā)明內(nèi)容
本公開包括涉及對連接至存儲設(shè)備的總線適配器卡的高速緩存行為進行定制的系統(tǒng)和技術(shù)。
概括地,本說明書中描述的主題的一個方面可以由一種裝置實現(xiàn)。該裝置包括處理器和程序存儲器,總線適配器卡,其與該裝置相耦合并且配置以與存儲設(shè)備連接,所述總線適配器卡包括高速緩存存儲器和控制器以用于在所述高速緩存存儲器中對與所述存儲設(shè)備相關(guān)聯(lián)的數(shù)據(jù)進行高速緩存;其中所述程序存儲器包括驅(qū)動器,以響應(yīng)于與所述存儲設(shè)備相對應(yīng)的請求來與所述總線適配器卡通信;以及所述驅(qū)動器配置以響應(yīng)于與所述請求相分離提供的信息而修改其與所述總線適配器卡的通信。
這些以及其他實現(xiàn)可以包括以下一個或者多個特征。所述程序存儲器被劃分為內(nèi)核空間和用戶空間,并且具有在所述內(nèi)核空間中的內(nèi)核模塊,其中所述驅(qū)動器配置以將與所述存儲設(shè)備相對應(yīng)的至少一個請求重新引導(dǎo)至所述內(nèi)核模塊,從所述內(nèi)核模塊接收包括與所述至少一個請求相關(guān)聯(lián)的指令(directive)的信息,以及向所述總線適配器卡傳輸與所述至少一個請求相關(guān)聯(lián)的所述指令。與所述至少一個請求相關(guān)聯(lián)的指令可以基于由所述總線適配器卡生成的信息,所述信息包括高速緩存統(tǒng)計信息、位置(locality)信息和熱點 信息中的至少一個。與所述至少一個請求相關(guān)聯(lián)的所述指令引導(dǎo)所述總線適配器卡來執(zhí)行 預(yù)獲取和服務(wù)質(zhì)量操作中的至少一個。所述程序存儲器被劃分為內(nèi)核空間和用戶空間,并 且具有在所述用戶空間中的策略引擎,其中所述驅(qū)動器配置以從所述策略引擎接收包括修 改所述總線適配器卡的高速緩存行為的策略的信息。所述信息可以至少部分地基于由所述 總線適配器卡生成的信息的策略,所述信息包括高速緩存統(tǒng)計數(shù)據(jù)、位置信息和熱點信息 中的至少一個。所述程序存儲器被劃分為內(nèi)核空間和用戶空間,具有在所述內(nèi)核空間中的 內(nèi)核模塊;以及所述用戶空間中的策略引擎,配置用于向所述內(nèi)核模塊發(fā)送策略以控制由 所述內(nèi)核模塊提供的信息。被發(fā)送到所述內(nèi)核模塊的所述策略涉及預(yù)獲取和服務(wù)質(zhì)量策略 中的至少一個。
根據(jù)所述系統(tǒng)和技術(shù)的另一方面,一種方法包括在驅(qū)動器程序處接收對應(yīng)于與 總線適配器卡連接的存儲設(shè)備的請求;以及響應(yīng)于與所述請求相分離而提供的信息,修改 在所述驅(qū)動器程序和所述總線適配器卡之間的通信,其中所述通信對應(yīng)于所述請求。
這些和其他實現(xiàn)可以包括以下特征中的一個或者多個。該方法包括確定所述請 求應(yīng)當(dāng)被重新引導(dǎo)至所述計算裝置中的內(nèi)核模塊;以及在所述驅(qū)動器處從所述內(nèi)核模塊接 收包括對應(yīng)于所述請求的指令的信息。所述確定可以基于從策略引擎的接收的至少一個策 略,其中所述至少一個策略是至少部分地基于由所述總線適配器卡生成的信息,所述信息 包括高速緩存統(tǒng)計數(shù)據(jù)、位置信息和熱點信息中的至少一個。所述指令基于每個請求而與 所述請求相關(guān)聯(lián),并且可操作以使得所述總線適配器卡執(zhí)行預(yù)獲取或者服務(wù)質(zhì)量操作中的 至少一個。所述信息可以包括與所述請求相關(guān)聯(lián)的指令,所述指令可以至少部分地基于從 策略引擎接收的至少一個策略,其中所述至少一個策略是部分地基于由所述總線適配器卡 生成的信息,并且所述信息包括高速緩存統(tǒng)計數(shù)據(jù)、位置信息和熱點信息中的至少一個。所 述指令可以基于每個LUN而與所述請求相關(guān)聯(lián),并且可操作以使得所述總線適配器卡執(zhí)行 預(yù)獲取和服務(wù)質(zhì)量操作中的至少一個。
根據(jù)所描述的系統(tǒng)和技術(shù)的另一方面,一種非瞬態(tài)介質(zhì),配置以使得數(shù)據(jù)處理裝 置執(zhí)行操作,包括接收對應(yīng)于與總線適配器卡連接的存儲設(shè)備的請求;將指令與所述請 求相關(guān)聯(lián),所述指令影響所述總線適配器卡的高速緩存行為;以及向所述總線適配器卡傳 輸所述指令以調(diào)整所述總線適配器卡的所述高速緩存行為。
這些和其他實現(xiàn)可以包括以下特征中的一個或者多個。所述請求可以由主機驅(qū)動 器接收,所述指令由所述主機驅(qū)動器與所述請求相關(guān)聯(lián),以及所述指令由所述主機驅(qū)動器 向所述總線適配器卡傳輸。所述請求由內(nèi)核模塊從主機驅(qū)動器接收,并且所述指令由所述 內(nèi)核模塊與所述請求相關(guān)聯(lián)。所述與所述請求相關(guān)聯(lián)的所述指令是至少部分地基于由所述 總線適配器卡生成的信息,所述信息包括高速緩存統(tǒng)計數(shù)據(jù)、位置信息和熱點信息中的至 少一個。與所述請求相關(guān)聯(lián)的所述指令可以至少部分地基于從策略引擎接收的策略。與所 述請求相關(guān)聯(lián)的所述指令涉及預(yù)獲取和服務(wù)質(zhì)量操作中的至少一個。
所描述的系統(tǒng)和技術(shù)可以以電子電路、計算機硬件、固件、軟件或者其組合來實 現(xiàn),諸如由在本說明書機器結(jié)構(gòu)等效設(shè)置中公開的結(jié)構(gòu)裝置。這可以包括如下中的至少一 個實現(xiàn)程序的計算機可讀介質(zhì)使得一個或者多個數(shù)據(jù)處理裝置(例如,包括可編程處理 器的信號處理設(shè)備)以執(zhí)行所公開的操作。由此,程序?qū)崿F(xiàn)可以由所公開的方法、系統(tǒng)或者裝置來實現(xiàn),并且該裝置實現(xiàn)可以由所公開的系統(tǒng)、計算機可讀介質(zhì)或者方法來實現(xiàn)。類似 地,方法實現(xiàn)可以由所公開的系統(tǒng)、計算機可讀介質(zhì)或者裝置實現(xiàn),系統(tǒng)實現(xiàn)可以由所公開 的方法、計算機可讀介質(zhì)和裝置實現(xiàn)。
例如,在下文所公開的實施方式可以在各種系統(tǒng)和裝置中實現(xiàn),包括但不限于專 用數(shù)據(jù)處理裝置(例如,無線接入點、遠(yuǎn)程環(huán)境監(jiān)視器、路由器、交換機、計算機系統(tǒng)組件、 媒體訪問單元)、移動數(shù)據(jù)處理裝置(例如,無線客戶端、蜂窩電話、個人數(shù)字助理(PDA)、移 動計算機、數(shù)字照相機)、通用數(shù)據(jù)處理裝置(例如,微型計算機、服務(wù)器、大型機、超級計算 機)或者其組合。
術(shù)語“數(shù)據(jù)處理裝置”涵蓋全部類型的裝置、設(shè)備以及用于處理數(shù)據(jù)的機器,借助 于示例的方式包括可編程處理器、計算機、片上系統(tǒng)或者以上多個或者上述內(nèi)容的組合。該 裝置可以包括專用邏輯電路,例如,現(xiàn)場可編程門陣列(FPGA)或者專用集成電路(ASIC)。
所公開的系統(tǒng)和技術(shù)可以獲得增強的能力,以便在減少固件支持性問題的同時, 對總線適配器卡的高速緩存行為進行定制。例如,通過以非侵入式方式向原始設(shè)備制造者 (OEM)提供窺視到進入總線適配器卡的輸入/輸出(I/O)請求的能力,并且允許OEM來將良 好定義的指令與這些I/O請求相關(guān)聯(lián),可以調(diào)整總線適配器卡的高速緩存行為而無需針對 每個調(diào)整定制固件。
另一潛在優(yōu)勢可以包括,對高速緩存存儲器中存儲何種數(shù)據(jù)、以及將數(shù)據(jù)在高速 緩存存儲器中存儲多長時間進行定制。例如,大多數(shù)數(shù)據(jù)庫通常具有日志卷。在為數(shù)據(jù)庫 在存儲中更新任何數(shù)據(jù)之前,可以將記錄記錄到日志中。日志卷可以看到包括數(shù)據(jù)庫的實 際存儲以外的許多更多更新。因而,在高速緩存存儲器中存儲日志卷是有益的。然而,高速 緩存存儲器通常對于高速緩存以外的、正在執(zhí)行的內(nèi)容不可見,并且不決定在高速緩存中 存儲何種數(shù)據(jù)以及將數(shù)據(jù)存儲多長時間。通過提供工具來調(diào)整高速緩存存儲器的行為,使 得數(shù)據(jù)庫的日志卷可以存儲在高速緩存存儲器中保持具體的持續(xù)時間,以便輔助數(shù)據(jù)庫的 需要。
在附圖和下文的說明書中,闡明了一個或者多個實現(xiàn)的細(xì)節(jié)。其他特征、對象和優(yōu) 勢可以從說明書、附圖和權(quán)利要求書中變得明顯。
圖1是示出用于在一個或者多個存儲設(shè)備上對數(shù)據(jù)進行高速緩存的系統(tǒng)的示例 方面的框圖2是示出用于在調(diào)整總線適配器卡的高速緩存行為的系統(tǒng)的示例方面的框圖3是示出基于I/O請求來定制總線適配器卡的方法的示例;
圖4示出了基于標(biāo)準(zhǔn)或者動態(tài)策略來定制總線適配器卡的方法的示例;
圖5示出了將指令與I/O請求相關(guān)聯(lián)的方法的示例;以及
圖6示出了用于基于每個I/O請求和/或基于標(biāo)準(zhǔn)或者動態(tài)策略來定制總線適配 器卡的方法的示例。
在各個附圖中,相同的參考符號指示相同的元件。
具體實施方式
通過利用小而快的隨機訪問存儲器或者固態(tài)存儲器(例如,快閃)來用于將存儲 系統(tǒng)(例如,諸如硬驅(qū)動的單獨存儲設(shè)備、或者存儲設(shè)備的結(jié)合)進行高速緩存,這已經(jīng)變 得非常流行?;谥鳈C機器所請求的數(shù)據(jù),其他相關(guān)數(shù)據(jù)可以按照預(yù)期而被高速緩存,以便 主機可以請求其他相關(guān)數(shù)據(jù)。然而,高速緩存存儲器的大小是有限的。因而,可以被高速緩 存的數(shù)據(jù)量也是有限的。因而,高速緩存控制器可以從高速緩存存儲器中選擇性地刪除數(shù) 據(jù)。例如,可以從高速緩存存儲器中刪除持續(xù)一段時間沒有由主機請求的數(shù)據(jù)。當(dāng)主機請 求的數(shù)據(jù)不同于在高速緩存存儲器中存儲的數(shù)據(jù)時,可以刪除該數(shù)據(jù)。通過選擇性地從高 速緩存存儲器刪除數(shù)據(jù),可以將更有可能由主機使用的數(shù)據(jù)進行高速緩存。
高速緩存系統(tǒng)的一個示例是總線適配器卡。許多總線適配器卡基于總線適配器卡 的預(yù)定義高速緩存行為,來對數(shù)據(jù)塊進行高速緩存。例如,總線適配器卡可以通過如下來提 供塊存儲加速動態(tài)地對被頻繁訪問的數(shù)據(jù)進行高速緩存,對近期可能被訪問的數(shù)據(jù)進行 高速緩存,基于數(shù)據(jù)的高速緩存優(yōu)先級來對數(shù)據(jù)進行高速緩存,將數(shù)據(jù)進行高速緩存持續(xù) 比其他被高速緩存的數(shù)據(jù)更長的時間,從高速緩存中刪除在近期不太可能被訪問的數(shù)據(jù), 等等。對于使用總線適配器卡感興趣的用戶(例如,原始設(shè)備制造者(OEM))可能期望定制 總線適配器卡,以便調(diào)整高速緩存的行為,例如,基于應(yīng)用的特殊需求和專有啟發(fā)來進行。 為了定制總線適配器卡的預(yù)定義的高速緩存行為,可以通過卡片制造者來為用戶調(diào)整總線 適配器卡的固件。然而,此類調(diào)整可能需要總線適配器卡制造者來針對每個定制請求調(diào)整 固件,因而潛在地導(dǎo)致針對變化的固件版本的大量支持性問題。
為了降低針對總線適配器卡的固件版本的數(shù)量,并且為了降低支持性問題,可以 向用戶提供用于完成定制方案所需的良好定義的接口以及構(gòu)造塊(building block)。以此 方式,可以以適合于用戶需求的方式對總線適配器卡進行定制,而不需要針對每個定制請 求來調(diào)整卡的固件。例如,可以向用戶提供如下能力以非侵入式方式窺視進入總線適配器 卡的輸入/輸出(I/O)請求,繼而能夠向這些I/O請求加入良好定義的指令,以便按照用戶 的需求來調(diào)整總線適配器卡的高速緩存行為。此類指令的示例包括基于每個I/O請求或者 基于每個邏輯單元號(LUN)的預(yù)獲取(pre-fetch)和服務(wù)質(zhì)量(QoS)操作。
圖1是示出用于在一個或者多個存儲設(shè)備上對數(shù)據(jù)進行高速緩存的系統(tǒng)的示例 方面的框圖。例如,響應(yīng)于來自一個或者多個存儲設(shè)備130的I/O請求,可以在高速緩存存 儲器124中將來自一個或者多個存儲設(shè)備130 (I)-130 (N)的數(shù)據(jù)進行高速緩存。總線適配 器卡120可以被可通信地耦合至存儲設(shè)備130。另外總線適配器卡120可以包括高速緩存 存儲器124,和/或被可通信地耦合至高速緩存存儲器124以便外部于總線適配器卡120。 總線適配器卡120可以包括控制器122??刂破?22可以確定將來自存儲設(shè)備130的哪些 數(shù)據(jù)高速緩存在高速緩存存儲器124中。存儲設(shè)備130可以是單獨的存儲設(shè)備(例如,硬 驅(qū)動)以及存儲設(shè)備的結(jié)合,例如,獨立盤冗余陣列(RAID)、網(wǎng)絡(luò)附接的存儲(NAS)和存儲 區(qū)域網(wǎng)絡(luò)(SAN)。
在某些實現(xiàn)中,總線適配器卡120配置用于與主機機器101的程序存儲器104和 /或處理器102接口通信。例如,控制器122可以從程序存儲器104(例如,從主機驅(qū)動器 106)接收對于來自存儲設(shè)備130的數(shù)據(jù)的I/O請求,并且確定將來自存儲設(shè)備130的哪些 數(shù)據(jù)在高速緩存存儲器124中進行高速緩存。程序存儲器104還可以包括特定內(nèi)核空間 108、用戶空間110、以及總線適配器卡信息112。在某些實現(xiàn)中,內(nèi)核空間108包括能夠通過良好定義的應(yīng)用程序接口(API)來與主機驅(qū)動器106通信的內(nèi)核模塊。內(nèi)核空間108中 的內(nèi)核模塊可以由用戶使用,例如基于或者根據(jù)每個I/O請求,來用于定制、影響或者調(diào)整 高速緩存存儲器124的行為。在某些實現(xiàn)中,用戶空間110可以包括策略引擎,其能夠推送 標(biāo)準(zhǔn)的和動態(tài)的策略以調(diào)整總線適配器卡120的高速緩存行為。例如,用戶空間110中的 策略引擎可以向主機驅(qū)動器106傳輸標(biāo)準(zhǔn)指令,以便從來不將從特定LUN讀取的存儲器塊 進行高速緩存。在另一示例中,用戶空間110中的策略引擎可以與內(nèi)核空間108中的內(nèi)核 模塊進行通信,以引導(dǎo)內(nèi)核模塊針對I/O請求應(yīng)用特定的服務(wù)質(zhì)量(QoS),其中該I/O請求 落在特定LUN的特定區(qū)域中??偩€適配器卡信息112可以包括關(guān)于總線適配器卡120的信 息。例如,總線適配器卡信息112可以包括高速緩存統(tǒng)計信息、本地信息和/或關(guān)于高速緩 存存儲器124的熱點信息。
在某些實現(xiàn)中,總線適配器卡120和存儲設(shè)備130可以是存儲系統(tǒng)101’的部分。 另外,存儲系統(tǒng)101’可以外部于主機機器101或者作為主機機器101的部分。
圖2是示出用于調(diào)整總線適配器卡220的高速緩存行為的系統(tǒng)200的示例方面的 框圖。系統(tǒng)200包括主機機器201、總線適配器卡220以及一個或者多個存儲設(shè)備230。主 機機器201例如可以是在操作系統(tǒng)(諸如,LINUX 、VMWARE 、WINDOWS 等)上運行的任意 適合的計算機系統(tǒng)或者機器。
總線適配器卡220可以通過在高速緩存存儲器224中動態(tài)地對數(shù)據(jù)進行高速緩 存,來提供快存儲加速??梢酝ㄟ^與總線適配器卡220的直接連接性,來由一個或者多個存 儲設(shè)備230使得針對其在總線適配器卡220上執(zhí)行高速緩存的數(shù)據(jù)變得可用??偩€適配器 卡220可以支持以多種方式來連接到存儲設(shè)備230。例如,總線適配器卡220可以直接地附 接至存儲設(shè)備230 (例如,硬盤),或者總線適配器卡220可以通過網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng)小型 計算機系統(tǒng)接口(iSCSI)、光纖通道(FC)以及通過以太網(wǎng)的光纖通道(FCoE))來連接至存 儲設(shè)備230。總線適配器卡220可以包括控制器222。該控制器222可以確定將來自存儲 設(shè)備230的哪些數(shù)據(jù)在高速緩存存儲器224中進行高速緩存。
主機機器201包括主機驅(qū)動器240。主機驅(qū)動器240可以向主機機器201呈現(xiàn)來 自存儲設(shè)備230的數(shù)據(jù)。例如,可以由總線適配器卡220來向主機驅(qū)動器240提供來自存 儲設(shè)備230的數(shù)據(jù),并且繼而由主機驅(qū)動器240向運行在主機驅(qū)動器201上的應(yīng)用270提 供。在某些實現(xiàn)中,主機驅(qū)動器240可以是小型計算機系統(tǒng)接口(SCSI)主機驅(qū)動器,并且 可以通過PCIe接口連接到總線適配器卡220。例如,總線適配器卡220可以被插入到主機 機器201上的PCIe插槽中。在某些實現(xiàn)中,總線適配器卡220可以向主機驅(qū)動器240輸出 設(shè)備(例如SCSI設(shè)備)。也即,總線適配器卡220可以用作在存儲設(shè)備230和主機驅(qū)動器 240之間的中介。關(guān)于連接到總線適配器卡220的設(shè)備,主機驅(qū)動器240可以與主機機器 201通信。例如,主機驅(qū)動器240可以與運行在主機機器201上的應(yīng)用270通信。利用主機 驅(qū)動器240,應(yīng)用270可以從所述230讀取數(shù)據(jù)或者向其寫入數(shù)據(jù),例如通過與主機驅(qū)動器 240通信來實現(xiàn)。
對于總線適配器卡220感興趣的用戶可能期望對卡的高速緩存行為的具體方面 進行定制。例如,用戶可能期望總線適配器卡220從存儲設(shè)備230預(yù)獲取數(shù)據(jù),并且將其存 儲到高速緩存存儲器224中用于未來使用。在預(yù)獲取期間所獲得的數(shù)據(jù)通常不需要被立即 返回到主機機器。另一用戶可能期望使用特定的服務(wù)質(zhì)量(QoS)度量,來指示來自高速緩存存儲器的希望的特定特征。例如,可以針對整個邏輯單元號(LUN)或者LUN的特定部分 中的任意一個來指定QoS度量,并且度量可以指示例如是否對數(shù)據(jù)進行高速緩存、將數(shù)據(jù) 進行高速緩存的優(yōu)先級、和/或?qū)?shù)據(jù)進行高速緩存的持續(xù)時間。
通過利用內(nèi)核模塊250和/或策略引擎260,用戶可以將總線適配器卡220的高速 緩存行為進行定制,以便適合于用戶的個體需求,而無需針對每個定制請求來對總線適配 器卡220的固件進行調(diào)整。另外,無需在總線適配器卡220上用戶軟件,可以最低限度地侵 害總線適配器卡220的定制,同時仍然提供用于完成定制方案的構(gòu)造塊。
在某些實現(xiàn)中,用戶可以利用總線適配器卡220的預(yù)定義的高速緩存功能性,同 時通過使用良好定義的接口來定制總線適配器卡220的高速緩存行為。例如,用戶可以以 非入侵方式“窺視”進入總線適配器卡220的I/O請求,并且向這些請求添加良好定義的指 令,以便按照用戶的需求來調(diào)整總線適配器卡220的高速緩存行為??偩€適配器卡制造者 可以最終確定提供哪些可定制的功能性,同時向用戶提供將此類功能性進行精確調(diào)整以適 合于用戶的個體需求的能力。這些定制的兩個示例包括基于每I/O請求的或者基于每個邏 輯單元號(LUN)的預(yù)獲取和服務(wù)質(zhì)量(QoS)操作。
主機機器201包括內(nèi)核模塊250。在某些實現(xiàn)中,內(nèi)核模塊250可以是在內(nèi)核空 間中與主機驅(qū)動器240通過良好定義的接口進行通信的模塊。內(nèi)核空間例如可以是計算機 系統(tǒng)中充當(dāng)應(yīng)用和在硬件級別處執(zhí)行真實數(shù)據(jù)處理之間的橋梁的空間。例如,內(nèi)核空間可 以保留用于運行內(nèi)核、或者大多計算機操作系統(tǒng)的中央組件、內(nèi)核擴展、以及大多設(shè)備驅(qū)動 器。內(nèi)核模塊250可以由用戶使用以便根據(jù)或者按照單一 I/O請求,來定制總線適配器卡 220的高速緩存行為。例如,可以提供良好定義的接口以便當(dāng)由主機驅(qū)動器240從應(yīng)用270 接收I/O請求時,I/O請求被由內(nèi)核鉤子轉(zhuǎn)向(divert)至內(nèi)核模塊250。定制指令可以由 內(nèi)核模塊250與被轉(zhuǎn)向的I/O請求相關(guān)聯(lián),以便調(diào)整總線適配器卡220的預(yù)定義的高速緩 存行為。在某些實現(xiàn)中,通過將指令與I/O請求相關(guān)聯(lián),用戶可以指示總線適配器卡220來 基于進入內(nèi)核模塊250的I/O請求來預(yù)獲取數(shù)據(jù)。當(dāng)I/O請求被從內(nèi)核模塊250利用添加 的預(yù)獲取指令被傳遞到總線適配器卡220時,總線適配器卡220可以按照由預(yù)獲取指令的 指示而從存儲設(shè)備230預(yù)獲取數(shù)據(jù),并將預(yù)獲取的數(shù)據(jù)存儲在高速緩存存儲器224中。
主機機器201包括策略引擎260。在某些實現(xiàn)中,策略引擎260可以是用戶空間 中與主機驅(qū)動器240和內(nèi)核模塊250通信的模塊。用戶空間可以包括例如存儲器區(qū)域,其 中全部用戶模式應(yīng)用在此工作并且在需要時存儲器可以被交換出至此,而通常無需修改內(nèi) 核空間。策略引擎260可以向主機驅(qū)動器240或者內(nèi)核模塊250中的任一項推送標(biāo)準(zhǔn)或者 動態(tài)策略,以便調(diào)整總線適配器卡220的高速緩存行為。例如,用戶可能期望特定的存儲設(shè) 備的吞吐量好于另一存儲設(shè)備。通過指示總線適配器卡220來將數(shù)據(jù)存儲在高速緩存存儲 器224中的時間比針對向存儲設(shè)備的特定I/O請求的時間更長,可以實現(xiàn)針對該存儲設(shè)備 的期望吞吐量。
在某些實現(xiàn)中,策略弓丨擎260可以向主機驅(qū)動器240發(fā)布策略。例如,策略弓I擎260 可以向主機驅(qū)動器240傳輸策略指示主機驅(qū)動器240來向總線適配器卡220傳輸指令,引 導(dǎo)總線適配器卡220從不將從特定LUN讀取的塊進行高速緩存、以普通優(yōu)先級對塊進行高 速緩存、將塊在高速緩存中保持較長時間、將塊永久駐留在高速緩存中、在30分鐘后認(rèn)為 來自高速緩存的塊過期,等等。策略引擎260還可以向內(nèi)核模塊250發(fā)布策略。例如,策略引擎260可以引導(dǎo)內(nèi)核模塊250來針對落在特定LUN的特定邏輯塊地址(LBA)區(qū)域內(nèi)(例 如,特定LUN的LBA x-LBA y)的I/O請求應(yīng)用特定QoS級別。
在某些實現(xiàn)中,I/O請求不需要由主機驅(qū)動器240或者內(nèi)核模塊250接收以向總 線適配器卡220發(fā)布指令。例如,策略引擎260可以向內(nèi)核模塊250傳遞標(biāo)準(zhǔn)預(yù)獲取策略。 基于標(biāo)準(zhǔn)預(yù)獲取策略,內(nèi)核模塊250繼而可以利用或者不利用I/O請求來將預(yù)獲取指令中 繼到總線適配器卡220。
總線適配器卡信息280可以被傳遞至內(nèi)核模塊250和策略引擎260??偩€適配器 卡信息280可以包括關(guān)于高速緩存存儲器224的高速緩存特征的信息。例如,總線適配器 卡信息280可以包括高速緩存統(tǒng)計數(shù)據(jù)、位置信息、熱點信息等??偩€適配器卡信息280可 以是由總線適配器卡220生成并被輸出到主機機器201的多條有用信息。用戶可以使用信 息280用于幫助寫入有用的啟發(fā)以調(diào)整總線適配器卡220的高速緩存行為。
存儲設(shè)備上的熱點是指存儲設(shè)備中的、在具體時間段期間以比訪問其他區(qū)域較高 的頻率訪問的區(qū)域,其中對存儲設(shè)備區(qū)域的訪問可以包括對該區(qū)域執(zhí)行的讀操作或者寫操 作,并且存儲設(shè)備區(qū)域可以是存儲設(shè)備中的、為確定存在熱點而單獨監(jiān)視的連續(xù)部分或者 分段。在美國專利申請?zhí)?2/881,459中進一步描述了熱點,該專利申請于2010年9月14 日提交并且名稱為 “Hotspot Detection and Caching for Storage Devices,,。
位置信息可以包括時間位置信息和空間本地信息。時間位置信息是指在每個單元 時間所引用的存儲系統(tǒng)上的多個地址,或者等同地,時間位置表示對存儲系統(tǒng)上的地址的 引用頻率。另外,可以針對存儲系統(tǒng)或者針對在存儲系統(tǒng)上的一個或者多個區(qū)域來監(jiān)控時 間位置,以及高速緩存算法可以基于對存儲系統(tǒng)上的地址的引用頻率的監(jiān)控來實現(xiàn)。
空間位置信息是指對在每個單元地址空間引用的存儲系統(tǒng)上的多個地址、或者等 效地表示在存儲系統(tǒng)上地址的引用空間密度的空間位置。例如,當(dāng)存儲系統(tǒng)的特定地址 被引用時,空間位置提供未來在附近的存儲器位置將被引用的概率。在美國專利申請?zhí)?13/033,569中進一步描述了位置信息,該專利申請與2011年2月23日提交并且發(fā)明名稱 是“Caching Based on Spatial Distribution of Accesses to Data Storage Devices,,。
圖3是示出基于1/0請求來定制總線適配器卡的方法300的示例。在310處,接收 旨在針對與總線適配器卡相連接的存儲設(shè)備的I/o請求。例如,旨在針對存儲設(shè)備230的 1/0請求可以由主機驅(qū)動器240從應(yīng)用270接收。在320處,1/0請求可以被重新引導(dǎo)到程 序存儲器的內(nèi)核空間中的內(nèi)核模塊。例如,1/0請求可以由主機驅(qū)動器240重新引導(dǎo)到內(nèi) 核模塊250。在330處,可以接收1/0請求和與1/0請求相關(guān)聯(lián)的指令。例如,可以由主機 驅(qū)動器240從內(nèi)核模塊250接收1/0請求和與1/0請求相關(guān)聯(lián)的指令。所接收的指令可以 被配置以調(diào)整總線適配器卡(例如,總線適配器卡220)的高速緩存行為。例如,所接收的 指令可以被配置以引導(dǎo)總線適配器卡是否對被頻繁訪問的數(shù)據(jù)進行高速緩存,對很可能在 近期被訪問的數(shù)據(jù)進行高速緩存,基于數(shù)據(jù)的高速緩存優(yōu)先級來對數(shù)據(jù)進行高速緩存,將 數(shù)據(jù)高速緩存持續(xù)比其他被高速緩存的數(shù)據(jù)更長的時間,從高速緩存中刪除在近期不太可 能被訪問的數(shù)據(jù),等等。在某些實現(xiàn)中,所接收的指令可以至少部分地基于總線適配器卡信 息280和/或標(biāo)準(zhǔn)或者動態(tài)策略350 (例如,來自策略引擎260的標(biāo)準(zhǔn)或者動態(tài)策略)。在 340,指令可以被傳輸至總線適配器卡。在某些實現(xiàn)中,在主機驅(qū)動器240接收來自內(nèi)核模 塊250的重新引導(dǎo)的1/0請求和指令后,主機驅(qū)動器240可以向總線適配器卡220傳輸1/0請求和指令。在其他實現(xiàn)中,在340,主機驅(qū)動器240可以根據(jù)相關(guān)聯(lián)的指令來修改I/O請 求,并且向總線適配器卡220傳輸經(jīng)修改的I/O請求。
圖4示出了基于標(biāo)準(zhǔn)或者動態(tài)策略來定制總線適配器卡的方法400的示例。在410 處,可以由主機驅(qū)動器240從應(yīng)用270接收旨在針對存儲設(shè)備230的I/O請求。在420,可 以從策略引擎接收標(biāo)準(zhǔn)和/或動態(tài)策略,以便影響總線適配器卡的行為。例如,可以由主機 驅(qū)動器240從策略引擎260接收標(biāo)準(zhǔn)或者動態(tài)策略240。在430,可以將基于標(biāo)準(zhǔn)或者動態(tài) 策略的指令與I/O請求相關(guān)聯(lián)。指令可以能夠影響總線適配器卡的高速緩存策略。例如, 指令可以被配置以影響總線適配器卡是否將對被頻繁訪問的數(shù)據(jù)進行高速緩存,對在近 期可能被訪問的數(shù)據(jù)進行高速緩存,基于數(shù)據(jù)的高速緩存優(yōu)先級來對數(shù)據(jù)進行高速緩存, 將數(shù)據(jù)高速緩存的持續(xù)比其他被高速緩存的數(shù)據(jù)更長的時間,從高速緩存中刪除在近期不 太可能被訪問的數(shù)據(jù),等等。在440,指令可以被傳輸至總線適配器卡。在某些實現(xiàn)中,在 主機驅(qū)動器240接收標(biāo)準(zhǔn)或者動態(tài)策略以及基于策略將指令與I/O請求相關(guān)聯(lián)之后,主機 驅(qū)動器240可以向總線適配器卡220傳輸I/O請求和指令。在其他實現(xiàn)中,在440,主機驅(qū) 動器240可以根據(jù)相關(guān)聯(lián)的指令修改I/O請求,并且向總線適配器卡220傳輸經(jīng)修改的I/ O請求。
圖5示出了將指令與I/O請求相關(guān)聯(lián)的方法500的示例。在510處,接收旨在與 總線適配器卡連接的存儲設(shè)備的I/o請求。例如,旨在針對與總線適配器卡220連接的存 儲設(shè)備230的I/O請求可以由內(nèi)核模塊250從主機驅(qū)動器240接收。在520處,與I/O請 求相關(guān)聯(lián)的指令可以影響總線適配器卡的行為。例如,指令可以影響總線適配器卡是否將 對頻繁訪問的數(shù)據(jù)進行高速緩存,對有可能在近期被訪問的數(shù)據(jù)進行高速緩存,基于數(shù)據(jù) 的高速緩存優(yōu)先級來對數(shù)據(jù)進行高速緩存,將數(shù)據(jù)高速緩存持續(xù)比其他被高速緩存的數(shù)據(jù) 更長的時間,從高速緩存中刪除在近期不太可能被訪問的數(shù)據(jù),等等。在某些實現(xiàn)中,所接 收的指令可以至少部分地基于總線適配器卡信息280和/或標(biāo)準(zhǔn)或者動態(tài)策略550 (例如, 來自策略引擎260的標(biāo)準(zhǔn)或者動態(tài)策略)。在530,I/O請求和指令可以被傳輸至驅(qū)動器。 例如,I/O請求和指令可以從內(nèi)核模塊250傳遞到主機驅(qū)動器240。
圖6示出了用于基于每個I/O請求和/或基于標(biāo)準(zhǔn)或者動態(tài)策略來定制總線適配 器卡的方法600的示例。在610,可以由主機驅(qū)動器(例如,主機驅(qū)動器240)接收旨在針對 連接到總線適配器卡(例如,總線適配器卡220)的存儲設(shè)備(例如,存儲設(shè)備230) I/O請 求。在某些實現(xiàn)中,I/O請求可以從在主機機器(例如,主機機器201)上運行的應(yīng)用(例如, 應(yīng)用270)發(fā)出,并且可以旨在針對與主機機器相連接的存儲設(shè)備(例如,存儲設(shè)備230)。
在620,可以確定如何處理在610處接收的I/O請求。在某些實現(xiàn)中,一旦接收到 I/O請求,主機驅(qū)動器(例如,主機驅(qū)動器240)可以在620確定將I/O請求重新引導(dǎo)至內(nèi) 核空間中的內(nèi)核模塊。例如,主機驅(qū)動器240可以配置以基于每個I/O請求而將I/O請求 重新引導(dǎo)至內(nèi)核模塊250用于進一步處理。在620,所接收的I/O請求可以基于每個I/O請 求而被轉(zhuǎn)發(fā)至內(nèi)核空間中的內(nèi)核模塊,并提供向I/O請求以更加精細(xì)粒度的添加指令的機 會。在630,可以將指令與重新定向的I/O請求相關(guān)聯(lián),以便定制或者影響總線適配器卡的 行為。例如,內(nèi)核模塊250可以接收I/O請求,并且確定應(yīng)當(dāng)基于具體I/O請求來預(yù)獲取特 定數(shù)據(jù)。在某些實現(xiàn)中,指令可以基于標(biāo)準(zhǔn)或者動態(tài)策略670(例如,來自策略引擎260的 策略)和/或總線適配器卡信息280而關(guān)聯(lián)。例如,來自策略引擎260的策略可以指示內(nèi)核模塊250來將指令與I/O請求相關(guān)聯(lián),以便針對落在具體邏輯單元號的特定邏輯地址范 圍中的具體I/O請求使用QoS級別。在640,指令可以被傳輸至總線適配器卡。例如,I/O 請求和指令可以被傳輸回到主機驅(qū)動器240,并且由主機驅(qū)動器轉(zhuǎn)發(fā)至總線適配器卡220。 在某些實現(xiàn)中,主機驅(qū)動器240隨同I/O請求一起向總線適配器卡220傳輸指令。在其他 實現(xiàn)中,在640,主機驅(qū)動器240可以根據(jù)相關(guān)聯(lián)的指令來修改I/O請求,并且向總線適配器 卡220傳輸經(jīng)修改的I/O請求。
在某些實現(xiàn)中,在620,主機驅(qū)動器240可以基于標(biāo)準(zhǔn)或者動態(tài)策略670不重新引 導(dǎo)I/O請求(例如,從策略引擎260接收的策略),來確定不向內(nèi)核模塊250重新引導(dǎo)I/O 請求。例如,在650,在確定不向內(nèi)核模塊250重新引導(dǎo)I/O請求后,主機驅(qū)動器240可以將 指令與I/O請求相關(guān)聯(lián)。基于標(biāo)準(zhǔn)或者動態(tài)策略670 (例如,從策略引擎260接收的策略) 和/或總線適配器卡信息280,主機驅(qū)動器可以按照每個LUN來將指令與I/O請求相關(guān)聯(lián)。 例如,主機驅(qū)動器240可以確定總線適配器卡220從來不將與I/O請求相關(guān)聯(lián)的數(shù)據(jù)進行 高速緩存,這是因為標(biāo)準(zhǔn)策略從來不將來自與I/O請求相關(guān)聯(lián)的LUN的數(shù)據(jù)進行高速緩存。 在此情況下,主機驅(qū)動器可以在660隨同指令一起向總線適配器卡傳輸I/O請求,其中該指 令引導(dǎo)總線適配器卡不將與I/O請求相關(guān)聯(lián)的數(shù)據(jù)進行高速緩存。其他策略可以指示主機 驅(qū)動器向總線適配器卡傳輸指令,以便執(zhí)行如下將對應(yīng)于具有常規(guī)優(yōu)先級的I/O請求的 數(shù)據(jù)進行高速緩存,將數(shù)據(jù)在高速緩存存儲器中保持較長時間,將數(shù)據(jù)永久地駐留在高速 緩存中,在30分鐘后從高速緩存存儲器刪除數(shù)據(jù),等等。在某些實現(xiàn)中,主機驅(qū)動器240隨 同I/O請求一起向總線適配器卡220傳輸指令。在其他實現(xiàn)中,在660處,主機驅(qū)動器240 可以根據(jù)相關(guān)聯(lián)的指令修改I/O請求,并且向總線適配器卡220傳輸經(jīng)修改的I/O請求。
在上文中已經(jīng)詳細(xì)描述了一些實施方式,并且可以對這些實施方式進行修改。所 公開的主題(包括在說明書中描述的功能操作)可以在電子電路、計算機硬件、固件、軟件 或者其結(jié)合中實現(xiàn),諸如,由在說明書中公開的結(jié)構(gòu)裝置及其結(jié)構(gòu)的等效設(shè)置來實現(xiàn),潛在 地包括可操作以使得一個或者多個數(shù)據(jù)處理設(shè)備來執(zhí)行所描述操作的程序(諸如,在計算 機可讀介質(zhì)中編碼的程序,該計算機可讀介質(zhì)可以是存儲器設(shè)備、存儲設(shè)備、機器可讀存儲 物質(zhì)或者其他物理的機器可讀介質(zhì)、或者他們中一個或者多個的組合)。
數(shù)據(jù)“數(shù)據(jù)處理裝置”涵蓋用于處理數(shù)據(jù)的全部裝置、設(shè)備和機器,借助于示例方 式包括可編程處理器、計算機或者多個處理器或者計算機。該裝置可以包括但不限于硬件 和產(chǎn)生所討論的計算機程序的執(zhí)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管 理系統(tǒng)和操作系統(tǒng)或者他們的一個或者多個的組合。
程序(還稱作計算機程序、軟件、軟件應(yīng)用、腳本或者代碼)可以以各種形式的編 程語言編寫,包括編譯語言或者解釋語言、聲明性或者過程性語言,并且可以各種形式來開 發(fā),包括作為單獨程序或者作為模塊、組件、子例程或者適合于在計算環(huán)境中使用的其他單 元。程序不必對應(yīng)于文件系統(tǒng)中的文件。程序可以存儲在保持其他程序或者數(shù)據(jù)的文件中 的一部分中(例如,在標(biāo)記語言文檔中存儲的一個或者多個腳本)、存儲在專用于所討論的 程序的單獨文件中、或者存儲在多個協(xié)作文件中(存儲一個或者多個模塊、子程序或者代 碼部分的文件)??梢圆渴鸪绦颍允蛊湓谖挥趩我徽军c、或者跨越多個站點分布并通過通 信網(wǎng)絡(luò)互聯(lián)的一個計算機或者多個計算機上執(zhí)行。
盡管本說明書包括多個具體特征,然而不應(yīng)認(rèn)為這些具體特征對請求保護的范圍構(gòu)成限制,而是僅作為特定于具體實施方式
的特征的描述。在單獨實施方式的上下文中,在 本說明書中描述的特定特征,可以在單一實施方式中結(jié)合地實現(xiàn)。因而,在單一實施方式的 上下文中描述的各種特征還可以獨立地在多個實施方式中實現(xiàn),或者以任何適當(dāng)?shù)淖咏M合 方式實現(xiàn)。此外,盡管上述特征可以在特定組合中使用,并且即使初始要求的那樣,在某些 情況下可以從組合中排除來自請求保護的組合的一個或者多個特征,并且所請求的組合可 以被用于子組合或者子組合的變形。
類似地,盡管在附圖中以特定順序繪出了操作,應(yīng)當(dāng)理解,這并不要求以示出的特 定順序或者串行地執(zhí)行這些操作,或者執(zhí)行示出的全部操作以實現(xiàn)期望的結(jié)果。在特定環(huán) 境中,多任務(wù)即并行處理是有益的。此外,在上述實施方式中的各種系統(tǒng)組件的分離不應(yīng)當(dāng) 認(rèn)為在全部實施方式中需要這些分離。
其他實施方式落入下文權(quán)利要求書的范圍內(nèi)。
權(quán)利要求
1.一種系統(tǒng),包括 計算裝置,包括處理器和程序存儲器;以及 總線適配器卡,與所述計算裝置相耦合并且被配置以與存儲設(shè)備連接,所述總線適配器卡包括高速緩存存儲器和控制器以用于在所述高速緩存存儲器中對與所述存儲設(shè)備相關(guān)聯(lián)的數(shù)據(jù)進行高速緩存; 其中所述程序存儲器包括驅(qū)動器,以響應(yīng)于與所述存儲設(shè)備相對應(yīng)的請求來與所述總線適配器卡通信;以及 所述驅(qū)動器被配置以響應(yīng)于與所述請求相分離提供的信息而修改其與所述總線適配器卡的通信。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述程序存儲器被劃分為內(nèi)核空間和用戶空間,所述系統(tǒng)進一步包括所述內(nèi)核空間中的內(nèi)核模塊,以及所述驅(qū)動器被配置以將與所述存儲設(shè)備相對應(yīng)的至少一個請求重新引導(dǎo)至所述內(nèi)核模塊,從所述內(nèi)核模塊接收包括與所述至少一個請求相關(guān)聯(lián)的指令的信息,以及向所述總線適配器卡傳輸與所述至少一個請求相關(guān)聯(lián)的所述指令。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中與所述至少一個請求相關(guān)聯(lián)的指令是基于由所述總線適配器卡生成的信息,所述信息包括高速緩存統(tǒng)計信息、位置信息和熱點信息中的至少一個。
4.根據(jù)權(quán)利要求2所述的系統(tǒng),其中與所述至少一個請求相關(guān)聯(lián)的所述指令引導(dǎo)所述總線適配器卡來執(zhí)行預(yù)獲取和服務(wù)質(zhì)量操作中的至少一個。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述程序存儲器被劃分為內(nèi)核空間和用戶空間,所述系統(tǒng)進一步包括所述用戶空間中的策略引擎,以及所述驅(qū)動器被配置以從所述策略引擎接收包括修改所述總線適配器卡的高速緩存行為的策略的信息。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述信息包括至少部分地基于由所述總線適配器卡生成的信息的策略,所述信息包括高速緩存統(tǒng)計數(shù)據(jù)、位置信息和熱點信息中的至少一個。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述程序存儲器被劃分為內(nèi)核空間和用戶空間,所述系統(tǒng)進一步包括在所述內(nèi)核空間中的內(nèi)核模塊,以及所述用戶空間中的策略引擎,被配置用于向所述內(nèi)核模塊發(fā)送策略以控制由所述內(nèi)核模塊提供的信息。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中被發(fā)送到所述內(nèi)核模塊的所述策略涉及預(yù)獲取和服務(wù)質(zhì)量策略中的至少一個。
9.一種方法,包括 在驅(qū)動器程序處接收對應(yīng)于與總線適配器卡連接的存儲設(shè)備的請求;以及 響應(yīng)于與所述請求相分離而提供的信息,修改在所述驅(qū)動器程序和所述總線適配器卡之間的通信; 其中所述通信對應(yīng)于所述請求。
10.根據(jù)權(quán)利要求9所述的方法,進一步包括 確定所述請求應(yīng)當(dāng)被重新引導(dǎo)至所述計算裝置中的內(nèi)核模塊;以及 在所述驅(qū)動器處從所述內(nèi)核模塊接收包括對應(yīng)于所述請求的指令的信息。
11.根據(jù)權(quán)利要求10所述的方法,其中所述確定是基于從策略引擎的接收的至少一個策略,其中所述至少一個策略是至少部分地基于由所述總線適配器卡生成的信息,所述信息包括高速緩存統(tǒng)計數(shù)據(jù)、位置信息和熱點信息中的至少一個。
12.根據(jù)權(quán)利要求10所述的方法,其中所述指令基于每個請求而與所述請求相關(guān)聯(lián),并且可操作以使得所述總線適配器卡執(zhí)行預(yù)獲取或者服務(wù)質(zhì)量操作中的至少一個。
13.根據(jù)權(quán)利要求9所述的方法,其中所述信息包括與所述請求相關(guān)聯(lián)的指令,所述指令至少部分地基于從策略引擎接收的至少一個策略,其中所述至少一個策略是部分地基于由所述總線適配器卡生成的信息,并且所述信息包括高速緩存統(tǒng)計數(shù)據(jù)、位置信息和熱點信息中的至少一個。
14.根據(jù)權(quán)利要求13所述的方法,其中所述指令基于每個LUN而與所述請求相關(guān)聯(lián),并且可操作以使得所述總線適配器卡執(zhí)行預(yù)獲取和服務(wù)質(zhì)量操作中的至少一個。
15.一種非瞬態(tài)介質(zhì),被配置以使得數(shù)據(jù)處理裝置執(zhí)行操作,包括 接收對應(yīng)于與總線適配器卡連接的存儲設(shè)備的請求; 將指令與所述請求相關(guān)聯(lián),所述指令影響所述總線適配器卡的高速緩存行為;以及 向所述總線適配器卡傳輸所述指令以調(diào)整所述總線適配器卡的所述高速緩存行為。
16.根據(jù)權(quán)利要求15所述的介質(zhì),其中所述請求由主機驅(qū)動器接收,所述指令由所述主機驅(qū)動器與所述請求相關(guān)聯(lián),以及所述指令由所述主機驅(qū)動器向所述總線適配器卡傳輸。
17.根據(jù)權(quán)利要求15所述的介質(zhì),其中所述請求由內(nèi)核模塊從主機驅(qū)動器接收,并且所述指令由所述內(nèi)核模塊與所述請求相關(guān)聯(lián)。
18.根據(jù)權(quán)利要求15所述的介質(zhì),其中與所述請求相關(guān)聯(lián)的所述指令是至少部分地基于由所述總線適配器卡生成的信息,所述信息包括高速緩存統(tǒng)計數(shù)據(jù)、位置信息和熱點信息中的至少一個。
19.根據(jù)權(quán)利要求15所述的介質(zhì),其中與所述請求相關(guān)聯(lián)的所述指令至少部分地基于從策略引擎接收的策略。
20.根據(jù)權(quán)利要求15所述的介質(zhì),其中與所述請求相關(guān)聯(lián)的所述指令涉及預(yù)獲取和服務(wù)質(zhì)量操作中的至少一個。
全文摘要
本公開包括涉及總線適配器卡定制的系統(tǒng)和技術(shù)。在某些實現(xiàn)中,計算裝置包括處理器和程序存儲器,總線適配器卡,其與所述計算裝置相耦合并且配置以與存儲設(shè)備連接,所述總線適配器卡包括高速緩存存儲器和控制器以用于在所述高速緩存存儲器中對與所述存儲設(shè)備相關(guān)聯(lián)的數(shù)據(jù)進行高速緩存;其中所述程序存儲器包括驅(qū)動器,以響應(yīng)于與所述存儲設(shè)備相對應(yīng)的請求來與所述總線適配器卡通信;以及所述驅(qū)動器配置以響應(yīng)于與所述請求相分離提供的信息而修改其與所述總線適配器卡的通信。
文檔編號G06F12/08GK103003805SQ201180035009
公開日2013年3月27日 申請日期2011年7月12日 優(yōu)先權(quán)日2010年7月16日
發(fā)明者A·普魯?shù)? R·K·喬里 申請人:馬維爾國際貿(mào)易有限公司