絡(luò)118提供多個外部處理引擎106對多個存儲器塊114的同步訪問。換言之,至少在一些實施例中,外部處理引擎106a進行的存儲器訪問不會被外部處理引擎106b進行的同步存儲器訪問所阻擋。
[0023]在一些實施例中,存儲器連接性網(wǎng)絡(luò)118包括諸如Benes網(wǎng)絡(luò)之類的Clos網(wǎng)絡(luò)。Clos網(wǎng)絡(luò)具有三級:進入級、中間級和外出級。Clos網(wǎng)絡(luò)的每級包括一個或多個2x2Clos交換機。進入Clos交換機的輸入可以通過任何可用中間級Clos交換機路由至相關(guān)外出Clos交換機。在進入和外出Clos的帶寬延伸為2倍的同時,中間級Clos可用于路由一半帶寬。在一些實施例中,存儲器連接性網(wǎng)絡(luò)118包括分級Clos網(wǎng)絡(luò),這在下面進行描述。在其它實施例中,存儲器連接性網(wǎng)絡(luò)118包括另一適合的連接性網(wǎng)絡(luò),諸如縱橫交換機、無阻擋最小生成交換機、格樹(banyan)交換機、胖樹網(wǎng)絡(luò)等。
[0024]配置單元124耦合到存儲器連接性網(wǎng)絡(luò)118。配置單元124配置存儲器連接性網(wǎng)絡(luò)118,使得外部處理引擎106中的至少一些中的每個外部處理引擎可以訪問向外部處理引擎106指派的共享存儲器系統(tǒng)110中的一個或多個存儲器塊114的相應(yīng)集。作為說明性示例,配置單元124配置存儲器連接性網(wǎng)絡(luò)118,使得外部處理引擎106a可以訪問存儲器塊114a并且外部處理引擎106b可以訪問存儲器塊114b和存儲器塊114c (未示出)。下面將更詳細地描述存儲器連接性網(wǎng)絡(luò)118的配置。
[0025]配置單元124還耦合到多個存儲器接口 128,每個存儲器接口 128對應(yīng)于相應(yīng)外部處理引擎106。在一些實施例中,每個存儲器接口 128被包括在相應(yīng)外部處理引擎106中。在其它實施例中,每個存儲器接口 128與相應(yīng)外部處理引擎106分離并且耦合到相應(yīng)外部處理引擎106。
[0026]在一些實施例中,存儲器接口 128關(guān)于外部處理引擎106虛擬化存儲器系統(tǒng)110,以使向各種外部處理引擎106的塊114分配對外部處理引擎106透明。例如,在一些實施例中,每個存儲器接口 128從對應(yīng)外部處理引擎106接收對應(yīng)于存儲器讀操作和存儲器寫操作的第一地址,并且將第一地址轉(zhuǎn)譯為向外部處理引擎指派的一個或多個塊114內(nèi)的第二地址。在一些實施例中,存儲器接口 128還將第一地址轉(zhuǎn)譯為指示向外部處理引擎106指派的一個或多個塊114的一個或多個塊標(biāo)識符(ID)。在一些實施例中,每個外部處理引擎106看到第一連續(xù)地址空間。在一些實施例中,根據(jù)映射,這一第一地址空間映射到一個或多個存儲器塊114中的一個或多個相應(yīng)地址空間。例如,在實施例中,如果第一地址空間對于單個存儲器塊114來說太大,則第一地址空間可以映射到對應(yīng)于多個存儲器塊114的多個第二地址空間。例如,在實施例中,第一地址空間的第一部分可以映射到第一存儲器塊114的地址,并且第一地址空間的第二部分可以映射到第二存儲器塊114的地址。因而,在一些實施例中,根據(jù)在第一地址空間和一個或多個存儲器塊114的一個或多個對應(yīng)第二地址空間之間的映射,每個存儲器接口 128將第一地址轉(zhuǎn)譯為第二地址(以及轉(zhuǎn)譯為存儲器塊ID,在一些實施例中)。
[0027]在一些實施例中,對于特定存儲器訪問操作,存儲器接口 128向存儲器連接性網(wǎng)絡(luò)118提供第二地址,存儲器連接性網(wǎng)絡(luò)118然后將轉(zhuǎn)譯地址路由至適當(dāng)存儲器塊114。在一些實施例中,存儲器接口 128還向存儲器連接性網(wǎng)絡(luò)118提供確定的存儲器塊ID,并且存儲器連接性網(wǎng)絡(luò)118使用存儲器塊ID將轉(zhuǎn)譯地址路由至適當(dāng)存儲器塊114。在其它實施例中,存儲器連接性網(wǎng)絡(luò)118不使用存儲器塊ID將轉(zhuǎn)譯地址路由至適當(dāng)存儲器塊114,而是轉(zhuǎn)譯地址被路由到的存儲器塊114使用附隨存儲器塊ID來確定存儲器塊114是否要處理與第二地址相關(guān)聯(lián)的存儲器訪問請求。
[0028]在一些實施例中,每個存儲器接口 128被配置為測量在存儲器接口 128和對應(yīng)外部處理引擎106被指派到的每個存儲器塊114之間的對應(yīng)延時。在實施例中,測量的延時被提供給配置單元124。另外或備選地,在實施例中,測量的延時被提供給存儲器系統(tǒng)110(例如通過存儲器連接性網(wǎng)絡(luò)118、經(jīng)由配置單元124等)。例如,如下面討論的,在一些實施例中,存儲器系統(tǒng)110的存儲器塊114包括相應(yīng)延遲線,利用延遲線來幫助使系統(tǒng)平衡,以例如幫助防止經(jīng)由存儲器連接性網(wǎng)絡(luò)118行進回到引擎106的存儲器訪問響應(yīng)之間的碰撞。在一些實施例中,利用測量的延時來配置延遲線。
[0029]在實施例中,每個存儲器接口 128被配置為經(jīng)由存儲器連接性網(wǎng)絡(luò)118向?qū)?yīng)外部處理引擎106被指派到的每個存儲器塊114發(fā)送相應(yīng)讀請求。存儲器接口 128還被配置為測量當(dāng)發(fā)送相應(yīng)讀請求時和當(dāng)在存儲器接口 128接收到相應(yīng)響應(yīng)時之間的相應(yīng)時間量(例如延時)。然后利用測量的延時來配置延遲線。例如,在實施例中,向引擎106指派的第一存儲器塊114的延遲線被配置為提供等于i)在引擎106和向引擎指派的所有存儲器塊114之間的最長延時和ii)對應(yīng)于第一存儲器塊114的延時之差的延遲。因而,在實施例中,具有最長相關(guān)聯(lián)延時的向引擎106指派的第一存儲器塊114的延遲線將被配置為具有最短延遲(例如無延遲),而向引擎106指派的第二存儲器塊114的延遲線將被配置為具有比最短延遲更長的延遲(例如大于無延遲)。
[0030]在一些實施例中,一個或多個存儲器塊114 (例如,所有存儲器塊114)不包括可配置延遲線,并且一個或多個存儲器接口 128 (例如,所有存儲器接口 128)不被配置為測量諸如上面描述的延時。
[0031]在一些實施例中,網(wǎng)絡(luò)設(shè)備包括執(zhí)行機器可讀指令的處理器132,機器可讀指令存儲在包括在處理器132中或者耦合到處理器132的存儲器設(shè)備136中。在一些實施例中,處理器132包括中央處理單元(CPU)。在各種實施例中,處理器132執(zhí)行與i)存儲器連接性網(wǎng)絡(luò)118、ii)存儲器接口 128和iii)存儲器系統(tǒng)110中的一個或多個的初始化和/或配置相關(guān)聯(lián)的功能。在實施例中,配置單元124的一部分由處理器132實現(xiàn)。在實施例中,整個配置單元124由處理器132實現(xiàn)。在一些實施例中,處理器132不執(zhí)行與i)存儲器連接性網(wǎng)絡(luò)118、ii)存儲器接口 128和iii)存儲器系統(tǒng)110中的任一個的初始化和/或配置相關(guān)聯(lián)的任何功能。
[0032]在一些實施例中,處理器132耦合到存儲器系統(tǒng)110,并且可以寫入存儲器系統(tǒng)110和/或從存儲器系統(tǒng)110讀。在實施例中,處理器132經(jīng)由與存儲器接口(存儲器連接性網(wǎng)絡(luò)118經(jīng)由其耦合到存儲器系統(tǒng)110)分離的存儲器接口(未示出)耦合到存儲器系統(tǒng)HO。
[0033]在操作中,并且在i)存儲器連接性網(wǎng)絡(luò)118、ii)存儲器接口 128和iii)存儲器系統(tǒng)110被初始化和配置之后,當(dāng)外部處理引擎106生成與第一地址相關(guān)聯(lián)的存儲器訪問請求(例如寫請求或讀請求)時,對應(yīng)存儲器接口 128將第一地址轉(zhuǎn)譯為向外部處理引擎106指派的存儲器塊114內(nèi)的第二地址。在一些實施例中,對應(yīng)存儲器接口 128還將第一地址轉(zhuǎn)譯為對應(yīng)于第二地址的存儲器塊114的存儲器塊ID。例如,在一些實施例中,如果已經(jīng)向外部處理引擎106指派了多個存儲器塊114,則存儲器接口 128將第一地址轉(zhuǎn)譯為i)對應(yīng)于適當(dāng)?shù)亩鄠€存儲器塊114之一的存儲器塊ID以及ii)該一個存儲器塊114內(nèi)的第二地址。
[0034]然后向存儲器連接性網(wǎng)絡(luò)118提供存儲器訪問請求以及相關(guān)聯(lián)的第二地址(在一些實施例中,以及相關(guān)聯(lián)的存儲器塊ID)。存儲器連接性網(wǎng)絡(luò)118將存儲器訪問請求以及相關(guān)聯(lián)的第二地址(在一些實施例中,以及相關(guān)聯(lián)的存儲器塊ID)路由到向外部處理引擎106指派的一個或多個存儲器塊114。在實施例中,當(dāng)向外部處理引擎106指派多個存儲器塊114時,多個存儲器塊114分析與存儲器訪問請求相關(guān)聯(lián)的存儲器塊ID,以確定是否處理存儲器訪問請求。在另一實施例中,存儲器連接性網(wǎng)絡(luò)118僅僅將存儲器訪問請求路由到單個存儲器塊114,并且因而該單個存儲器塊114不需要分析與存儲器訪問請求相關(guān)聯(lián)的存儲器塊ID來確定是否處理存儲器訪問請求。
[0035]然后適當(dāng)存儲器塊114處理存儲器訪問請求。例如,適當(dāng)存儲器塊114使用第二地址來執(zhí)行所請求的存儲器訪問請求。對于寫請求,適當(dāng)?shù)拇鎯ζ鲏K114將與寫請求相關(guān)聯(lián)的值寫到存儲器塊114中對應(yīng)于第二地址的存儲器位置。相似地,對于讀請求,適當(dāng)?shù)拇鎯ζ鲏K114從存儲器塊114中對應(yīng)于第二地址的存儲器位置讀值。在實施例中,如果將要向外部處理引擎106返回存儲器訪問請求的響應(yīng)(例如寫請求的確認、響應(yīng)于讀請求而從存儲器塊114讀的值等),則存儲器塊114向存儲器連接性網(wǎng)絡(luò)118提供響應(yīng),存儲器連接性網(wǎng)絡(luò)118將響應(yīng)路由回到外部處理引擎106。
[0036]圖2A是在一些實施例中作為圖1的網(wǎng)絡(luò)設(shè)備100中的存儲器連接性網(wǎng)絡(luò)118來利用的示例存儲器連接性網(wǎng)絡(luò)200的框圖。出于說明性目的,參照圖1的網(wǎng)絡(luò)設(shè)備100來討論示例存儲器連接性網(wǎng)絡(luò)200。然而,在其它實施例中,存儲器連接性網(wǎng)絡(luò)200被用在與圖1的示例網(wǎng)絡(luò)設(shè)備100不同的適合網(wǎng)絡(luò)設(shè)備中。
[0037]存儲器連接性網(wǎng)絡(luò)200是分級Clos網(wǎng)絡(luò)的示例。例如,第一分級級別包括標(biāo)準(zhǔn)16xl6Clos 網(wǎng)絡(luò) 208,212 以及