專利名稱:自主子系統(tǒng)體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)器領(lǐng)域。
技術(shù)背景
并行分布式系統(tǒng)的問題在于如何分配和管理存儲(chǔ)器資源。存儲(chǔ)器通常附著到 使用共享總線的主處理器上,在所述共享總線處使用適當(dāng)?shù)膮f(xié)議以便能夠保持一致性 (coherency)和連貫性(consistency)。在該方案中,處理器內(nèi)核上的存儲(chǔ)控制器硬件可 觀察到公共總線上的流量,然后更新或無效高速緩存線路以反映其他處理器所執(zhí)行的操 作。多節(jié)點(diǎn)多處理器系統(tǒng)還可使用“基于字典”的一致性技術(shù),以允許處理器節(jié)點(diǎn)觀看 與它們正工作于其上的頁或高速緩存線路相關(guān)的存儲(chǔ)器流量。這些方案變得越來越限制 性能,因此需要改進(jìn)分布式系統(tǒng)。發(fā)明內(nèi)容
為解決現(xiàn)有的并行分布式系統(tǒng)在如何分配和管理存儲(chǔ)器資源方面的問題,本發(fā) 明特提供一種自主存儲(chǔ)器子系統(tǒng),該自主存儲(chǔ)器子系統(tǒng)包括控制器,具有狀況監(jiān)視 塊;以及第一自主存儲(chǔ)器設(shè)備和第二自主存儲(chǔ)器設(shè)備,具有總線流量,其中所述狀況監(jiān) 視塊監(jiān)視所述總線流量并基于所監(jiān)視的結(jié)果來重新分配資源以動(dòng)態(tài)地改善系統(tǒng)性能。
另外,本發(fā)明還提供一種自主存儲(chǔ)器子系統(tǒng),該自主存儲(chǔ)器子系統(tǒng)包括存 儲(chǔ)器設(shè)備陣列中的存儲(chǔ)器設(shè)備,用于啟動(dòng)指令以將數(shù)據(jù)庫的部分分散到鄰近的存儲(chǔ)器設(shè) 備;以及狀況監(jiān)視塊,用于監(jiān)視所述自主存儲(chǔ)器子系統(tǒng)中的總線流量并在所述存儲(chǔ)器設(shè) 備陣列中重新分配存儲(chǔ)器內(nèi)容,以動(dòng)態(tài)地將所述存儲(chǔ)器設(shè)備的總線流量歸結(jié)至鄰近的存 儲(chǔ)器設(shè)備。
另外,本發(fā)明還提供一種具有存儲(chǔ)器設(shè)備陣列的自主存儲(chǔ)器子系統(tǒng),其中,所 述陣列中的存儲(chǔ)器設(shè)備啟動(dòng)指令以將數(shù)據(jù)庫的部分分散到所述陣列中的存儲(chǔ)器設(shè)備并引 導(dǎo)存儲(chǔ)器內(nèi)容的重新分配以動(dòng)態(tài)地管理受約束的資源。
本發(fā)明通過自主數(shù)據(jù)存儲(chǔ)而允許增加的存儲(chǔ)器存儲(chǔ)效率。通過在分布式存儲(chǔ)子 系統(tǒng)中連接自主存儲(chǔ)器設(shè)備,主機(jī)可下載數(shù)據(jù)庫到該自主存儲(chǔ)器設(shè)備。該自主存儲(chǔ)器設(shè) 備可啟動(dòng)指令,以通過使用處理自主存儲(chǔ)器池中的晶片間通信的接口來將該數(shù)據(jù)庫的部 分分散到鄰近的晶片。該自主存儲(chǔ)器設(shè)備接著可從存儲(chǔ)器設(shè)備池中提取信息,該信息通 過主機(jī)接口被傳遞到主處理器。
在本說明書的結(jié)論部分特別指出并清楚地要求了本發(fā)明的主旨。然而,關(guān)于操 作的組織和方法以及本發(fā)明的目標(biāo)、特征和優(yōu)點(diǎn)可在參閱附圖時(shí)通過參考以下詳細(xì)描述 而得到最好地理解,其中
圖1根據(jù)本發(fā)明,示出了允許處理器與配置在分布式子系統(tǒng)中的多個(gè)自主存儲(chǔ)器設(shè)備進(jìn)行通信的體系結(jié)構(gòu);
圖2是使分布式子系統(tǒng)成為可能的自主存儲(chǔ)器設(shè)備的簡化框圖;以及
圖3示出了根據(jù)本發(fā)明的自主存儲(chǔ)器設(shè)備的一個(gè)實(shí)施方式。
應(yīng)當(dāng)意識(shí)到,為了闡述的簡單和清晰,圖中示出的元件沒有必要按比例繪出。 例如,清楚起見,一些元件的尺寸可以相對(duì)于其它元件而被夸大。此外,在認(rèn)為合適的 情況中,將附圖標(biāo)記在各圖之間重復(fù)以指示相應(yīng)或相似的元件。
具體實(shí)施方式
在下面的詳細(xì)描述中,闡述了各種具體細(xì)節(jié)以提供對(duì)本發(fā)明的全面理解。然 而,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明可以在沒有這些具體細(xì)節(jié)的情況下實(shí)施。在其它 情況中,沒有詳細(xì)描述公知的方法、過程、部件以及電路,以便不模糊本發(fā)明。
術(shù)語“耦合(coupled)”和“連接(connected)”連同它們的派生詞可被使用。 應(yīng)當(dāng)理解,這些術(shù)語并不意圖作為彼此的同義詞。相反地,在特定的實(shí)施方式中,“連 接”可被用于表明兩個(gè)或更多的元件互相直接物理地接觸或者電接觸?!榜詈稀笨捎糜?表明兩個(gè)或更多的元件互相直接或間接地(它們之間有其他中間元件)物理地接觸或者電 接觸,和/或這兩個(gè)或更多的元件相互合作或者相互作用(例如,在因果關(guān)系中)。
圖1所示的實(shí)施方式根據(jù)本發(fā)明示出了能夠使處理器和多個(gè)自主存儲(chǔ)器設(shè)備102 被配置為在分布式子系統(tǒng)10中進(jìn)行通信的體系結(jié)構(gòu)。為了促成大量設(shè)備之間的通信,分 布式子系統(tǒng)10中的每個(gè)自主存儲(chǔ)器設(shè)備102都被分配了自己的地址。這使得每個(gè)自主存 儲(chǔ)器設(shè)備102都能夠向子系統(tǒng)中的其他設(shè)備路由消息。雖然該圖示出的自主存儲(chǔ)器設(shè)備 為3X3陣列,但是分布式子系統(tǒng)10可被配置為具有以網(wǎng)絡(luò)連接的更多數(shù)目的設(shè)備。
在一個(gè)實(shí)施方式中,該編址方案可以是絕對(duì)的,即每個(gè)自主存儲(chǔ)器設(shè)備102都 被分配了由到達(dá)該自主存儲(chǔ)器設(shè)備的路徑所確定的唯一的靜態(tài)地址,例如,該存儲(chǔ)器設(shè) 備可被指定為位于該設(shè)備的特定端口上并電連接到根設(shè)備的端口。在可替換實(shí)施方式 中,自主存儲(chǔ)器設(shè)備的地址可在在系統(tǒng)中進(jìn)行操作時(shí)動(dòng)態(tài)地得到確定。通過允許動(dòng)態(tài)地 確定地址,可在系統(tǒng)操作期間出于優(yōu)化的目的來修改該編址方案。
在系統(tǒng)啟動(dòng)時(shí),網(wǎng)絡(luò)可通過傳遞路由信息以允許設(shè)備間通信發(fā)生來進(jìn)行初始 化。可替換地,在自主存儲(chǔ)器設(shè)備102使用掃描技術(shù)來構(gòu)建路由表以確定鄰居時(shí),系統(tǒng) 可進(jìn)行自組織。路由表保持對(duì)分布式子系統(tǒng)10中的設(shè)備的跟蹤,并可基于任何一個(gè)設(shè)備 與另一設(shè)備的對(duì)話來存儲(chǔ)諸如等待時(shí)間成本這樣的參數(shù)。
在將分布式自主存儲(chǔ)器設(shè)備102連接的總線上進(jìn)行傳遞的消息可被塑造 (modeled)或者它可以是標(biāo)準(zhǔn)網(wǎng)絡(luò)。一個(gè)這種標(biāo)準(zhǔn)網(wǎng)絡(luò)可以是傳輸控制協(xié)議/網(wǎng)際協(xié)議 (TCP/IP),該TCP/IP協(xié)議負(fù)責(zé)驗(yàn)證從一個(gè)設(shè)備到另一設(shè)備的數(shù)據(jù)的正確傳遞。TCP/ IP還提供對(duì)觸發(fā)重傳輸?shù)腻e(cuò)誤或丟失數(shù)據(jù)的檢測的支持,直到該數(shù)據(jù)被驗(yàn)證為是正確的 以及被完整地接收。分布式子系統(tǒng)10可以使用的另一種類型的網(wǎng)絡(luò)是:InfiniBand體系結(jié) 構(gòu),hifiniBand體系結(jié)構(gòu)使用光纖來允許低等待時(shí)間的通信、高帶寬集群以及存儲(chǔ)流量。 而且,自主存儲(chǔ)器設(shè)備102之間的通信可以使用基于框架的網(wǎng)絡(luò)中的以太網(wǎng)。
該圖形顯示了不同的存儲(chǔ)器類型都可附著到自主存儲(chǔ)器設(shè)備102上。作為一個(gè) 示例,該自主存儲(chǔ)器的每個(gè)節(jié)點(diǎn)都可以使NAND、DRAM或其它易失性/非易失性組合附著于其上,以用于“脫機(jī)”存儲(chǔ)或臨時(shí)存儲(chǔ)空間。該圖形中還示出了無線體系結(jié)構(gòu)實(shí) 施方式,其示出了存儲(chǔ)器設(shè)備102耦合到天線以傳遞無線信號(hào)。該天線可以是允許與存 儲(chǔ)器設(shè)備相關(guān)聯(lián)的無線電來編程存儲(chǔ)器陣列并通過使用空中通信信號(hào)進(jìn)行通信來下載算 法和數(shù)據(jù)庫的近場環(huán)形天線、電容板或偶極天線。配置路由表跟蹤存儲(chǔ)器設(shè)備,以便于 分布式子系統(tǒng)10中的設(shè)備之間的通信。
該圖形示出了控制塊與被顯示為存儲(chǔ)器子系統(tǒng)中的自主存儲(chǔ)器設(shè)備102的晶片 (dice)之間的無線連接。在該實(shí)施方式中,控制塊對(duì)到各種塊的流量的擁塞進(jìn)行監(jiān)視并 反應(yīng)。總線流量是可限制系統(tǒng)性能的資源的一個(gè)方面。為了緩解性能限制,該監(jiān)視塊可 將部分?jǐn)?shù)據(jù)庫移動(dòng)不同的晶片上,以進(jìn)行并行搜索或者充分地使用計(jì)算資源。這樣,該 監(jiān)視塊監(jiān)視受限制的資源以優(yōu)化系統(tǒng)性能,總線流量僅是可通過在存儲(chǔ)器設(shè)備102之間 重定位數(shù)據(jù)而得到優(yōu)化的資源的一個(gè)示例。
在該實(shí)施方式中,晶片到晶片的通信可使用天線來實(shí)現(xiàn),天線被物理地放置以 僅與同一堆疊中的其它晶片進(jìn)行通信。為了獲得晶片間的無線通信,每個(gè)自主存儲(chǔ)器設(shè) 備102都將具有位于其輸入端口上以接收信號(hào)的天線,以及位于其輸出端口上以傳送信 號(hào)的天線。無線通信將使得對(duì)接合線路的需求最小化。
圖2示出了自主存儲(chǔ)器設(shè)備102的簡化框形式,自主存儲(chǔ)器設(shè)備102包含計(jì)算節(jié) 點(diǎn)和加速硬件以提供對(duì)存儲(chǔ)在存儲(chǔ)器中的內(nèi)容的計(jì)算和處理。分布式子系統(tǒng)10包括多個(gè) 自主存儲(chǔ)器設(shè)備102,每個(gè)自主存儲(chǔ)器設(shè)備102都通過使用晶片間通信端口 204、206、 208和210來處理與鄰近晶片的通信。這些晶片間通信路徑允許在分布式子系統(tǒng)10中的 大量的晶片池(或許幾千個(gè)晶片)之間的自主通信。
自主存儲(chǔ)器設(shè)備102包括操作系統(tǒng)和處理能力,并知道其內(nèi)容的意義。換言 之,設(shè)備102知道特定的數(shù)據(jù)庫表所處位置、那些表中的每個(gè)表的字段定義以及它們?nèi)?何互連的細(xì)節(jié)。通過使用該信息,自主存儲(chǔ)器設(shè)備102獨(dú)立地處理存儲(chǔ)在數(shù)據(jù)庫中的數(shù) 據(jù)以獲得可被返回給主處理器的結(jié)果。
圖3示出了根據(jù)本發(fā)明的自主存儲(chǔ)器設(shè)備102的一個(gè)實(shí)施方式的功能框。自主 存儲(chǔ)器設(shè)備包括智能存儲(chǔ)器處理引擎302,智能存儲(chǔ)器處理引擎302提供了控制功能與處 理加速304以便能夠使用涉及智能存儲(chǔ)器中的計(jì)算和存儲(chǔ)器強(qiáng)度(intensive)操作的模型。 通用控制引擎306為微控制器,以(除其他功能之外)接收下載后的端用戶固件或軟件來 控制其它存儲(chǔ)器設(shè)備??刂埔?06可以啟動(dòng)自主存儲(chǔ)器池中的指令并從該池中提取可 通過主機(jī)接口 320被傳遞到主控制器的信息。協(xié)議和算法允許在設(shè)備之間進(jìn)行仲裁、在 設(shè)備之間傳遞路由信息以及運(yùn)行用于優(yōu)化該池的水平的算法。
硬件加速器308向智能存儲(chǔ)器處理引擎304提供加速硬件,以對(duì)存儲(chǔ)在存儲(chǔ)器 318中的內(nèi)容進(jìn)行計(jì)算和處理。硬件加速器308能夠處理矩陣運(yùn)算、與屏蔽位的簡單比 較、存儲(chǔ)器復(fù)制和移動(dòng)等。代碼存儲(chǔ)塊310存儲(chǔ)通過主機(jī)接口 320從主處理器下載的代 碼,以便由通用控制引擎306所使用。應(yīng)用編程接口(API)管理塊312執(zhí)行所存儲(chǔ)的由 庫(library)或操作系統(tǒng)服務(wù)所提供的例行程序和協(xié)議,以支持應(yīng)用程序的構(gòu)建。軟件API 是靈活的,并可使用基礎(chǔ)硬件的信息來獲得最佳性能。配置路由表314跟蹤分布式子系 統(tǒng)10中的其他存儲(chǔ)器設(shè)備。可動(dòng)態(tài)地確定分布式子系統(tǒng)10的配置,且路由表在自主存 儲(chǔ)器設(shè)備102在該系統(tǒng)中進(jìn)行操作時(shí)得到更新。
在平面存儲(chǔ)器空間中存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)是很常見的。雖然存在著無窮多數(shù)目的可能 的數(shù)據(jù)結(jié)構(gòu),但是大量公共結(jié)構(gòu)(諸如矩陣和鏈表)可被用于說明可如何使用自主存儲(chǔ)器 來增強(qiáng)存儲(chǔ)器功能。矩陣覆蓋了廣泛的領(lǐng)域,包括源自基本的2D或3D幾何形狀的各種 問題的那些領(lǐng)域,例如,結(jié)構(gòu)工程、計(jì)算流體動(dòng)力學(xué)、模型簡化、半導(dǎo)體器件、熱動(dòng)力 學(xué)、材料、聲學(xué)、計(jì)算機(jī)圖像/視覺、機(jī)器人/運(yùn)動(dòng)學(xué)以及其他領(lǐng)域。矩陣還可覆蓋通 常不具有這種幾何形狀的應(yīng)用,諸如優(yōu)化、電路仿真、經(jīng)濟(jì)與金融建模、理論和量子化 學(xué)、化學(xué)過程仿真、數(shù)學(xué)和統(tǒng)計(jì)、電力網(wǎng)絡(luò)以及其他網(wǎng)絡(luò)和圖形。
在處理存儲(chǔ)在矩陣中的信息時(shí),從存儲(chǔ)器318讀取所有或部分矩陣并由硬件加 速器308對(duì)這些矩陣的內(nèi)容進(jìn)行計(jì)算。在現(xiàn)有系統(tǒng)中,大部分的矩陣都是從主存儲(chǔ)器中 獲得的并被分頁存儲(chǔ)在處理器高速緩存器中。這些矩陣涉及迭代計(jì)算并可涉及整個(gè)的矩 陣,所以現(xiàn)有系統(tǒng)不能將處理所需的整個(gè)內(nèi)容存儲(chǔ)在處理器高速緩存器中。
然而,自主存儲(chǔ)器設(shè)備102明顯地改善了執(zhí)行矩陣算法時(shí)的效率。自主存儲(chǔ)器 設(shè)備102可使用平面存儲(chǔ)器映射來存儲(chǔ)矩陣并使用存儲(chǔ)器318和嵌入式硬件加速器308的 緊耦合來大大地加快對(duì)這些矩陣的運(yùn)算。通過明智地組織分布式子系統(tǒng)10中的矩陣以促 成高性能矩陣運(yùn)算,矩陣計(jì)算還可得到進(jìn)一步的增強(qiáng)。作為一個(gè)示例,運(yùn)算中被公共共 享的運(yùn)算對(duì)象可被規(guī)劃以有利地駐留在同一自主存儲(chǔ)器設(shè)備102中,從而這些運(yùn)算的完 成并不需要與其它設(shè)備進(jìn)行通信。
在平面存儲(chǔ)器映射中產(chǎn)生鏈表以便能夠?qū)τ行虻男畔⒔M進(jìn)行存儲(chǔ)和操作是很 常見的。在遍歷鏈表時(shí),通常需要對(duì)每個(gè)記錄都進(jìn)行檢查以確定它是否與某個(gè)模式 (pattern)相匹配或者僅獲得指向下一記錄的指針。通過使用分布式子系統(tǒng)10,有可能用 最小的主總線流量來對(duì)鏈表進(jìn)行解析。接著,每個(gè)自主存儲(chǔ)器設(shè)備102都可檢查每個(gè)記 錄來查找特定的模式以及在重復(fù)之前發(fā)現(xiàn)指向下一記錄的指針。一旦發(fā)現(xiàn)了結(jié)果,自主 存儲(chǔ)器設(shè)備102就可使用主機(jī)接口 320來向主機(jī)返回恰當(dāng)?shù)慕Y(jié)果。
數(shù)據(jù)庫通常由大量的數(shù)據(jù)組組成,這些數(shù)據(jù)組以相互鏈接的鏈表分組的形式進(jìn) 行組織。索引文件被創(chuàng)建、保存以及使用,以加速搜索這些表中的信息。在現(xiàn)有系統(tǒng) 中,一些數(shù)據(jù)庫比可用于對(duì)該數(shù)據(jù)庫進(jìn)行操作的處理器的附近的存儲(chǔ)器要大,從而大部 分的存儲(chǔ)器訪問會(huì)具有限制(gate)系統(tǒng)性能的長等待時(shí)間的IO呼叫。
與現(xiàn)有系統(tǒng)相比,分布式子系統(tǒng)10可以具有被配置為相互通信以及與主處理器 進(jìn)行通信的大量的自主存儲(chǔ)器設(shè)備102。分布式子系統(tǒng)10中的存儲(chǔ)器密度主要受存儲(chǔ)器 成本的限制。此外,在具有與存儲(chǔ)器318嵌入同一晶片的控制引擎306的情況下,大部 分的操作將涉及存儲(chǔ)器晶片內(nèi)部的總線流量以及存儲(chǔ)器晶片外部的有限的流量。假設(shè)通 用控制引擎306和高密度存儲(chǔ)器318緊耦合,則由處理器訪問外部存儲(chǔ)器而導(dǎo)致的帶寬瓶 頸可被消除。硬件加速器308中的簡單的硬件加速技術(shù)可被用于大大地增加分布式子系 統(tǒng)10的性能。
在分布式子系統(tǒng)10被設(shè)計(jì)用于專門對(duì)存儲(chǔ)器內(nèi)容進(jìn)行操作的情況中,可以實(shí)施 有限組的有用硬件基元(primitive)。為了實(shí)施分布式子系統(tǒng)10中的數(shù)據(jù)庫,該數(shù)據(jù)庫的 全部或部分與關(guān)于如何組織該數(shù)據(jù)庫的信息一起被轉(zhuǎn)移至存儲(chǔ)器子系統(tǒng)。也下載了用于 處理該數(shù)據(jù)庫中的信息的算法。在啟動(dòng)過程結(jié)束時(shí),主機(jī)會(huì)給分布式子系統(tǒng)10生成非常 高級(jí)的命令。不是讀取和寫入特定的地址以執(zhí)行更高級(jí)的功能,主處理器可發(fā)布命令,類似于“對(duì)表A進(jìn)行解析以發(fā)現(xiàn)與某個(gè)模式相匹配的所有記錄,提取到表B的針對(duì)這些 記錄中每個(gè)記錄的指針,返回來自表A的字段a、b、c以及來自表B的字段d和e”。 所有的操作都在分布式子系統(tǒng)10中運(yùn)行,且短的結(jié)果列表會(huì)被返回給主處理器。
在對(duì)大型數(shù)據(jù)庫進(jìn)行線性搜索的情況中,自主存儲(chǔ)器具有深遠(yuǎn)的優(yōu)勢。例如, 通過對(duì)具有IGB存儲(chǔ)密度的一個(gè)自主存儲(chǔ)器設(shè)備102 (該自主存儲(chǔ)器設(shè)備102包含8列的 2M頁,每頁64B)進(jìn)行流水線操作,以每頁大約10納秒的拍頻速率來將頁與目標(biāo)模式進(jìn) 行比較,則IGB晶片的可能搜索時(shí)間為大約20ms。雖然這是一個(gè)令人難忘的結(jié)果,但 是該解決方案是可擴(kuò)展的,從而每個(gè)都具有IGB存儲(chǔ)密度的兩個(gè)自主存儲(chǔ)器設(shè)備102的 搜索時(shí)間也將是大約20ms,這與1批比特(peta-byte)的存儲(chǔ)器或任何大小的存儲(chǔ)器池的 搜索時(shí)間是一樣的。在分布式子系統(tǒng)10中使用自主存儲(chǔ)器設(shè)備102來執(zhí)行線性搜索將受 存儲(chǔ)器設(shè)備102陣列的成本的限制,也受熱管理和功率約束的限制。
系統(tǒng)管理功能也可在分布式子系統(tǒng)10中利用自主存儲(chǔ)器設(shè)備102。例如, 數(shù)據(jù)中心可在分布式子系統(tǒng)10上執(zhí)行病毒掃描并當(dāng)檢測到病毒時(shí),該數(shù)據(jù)中心將“停 機(jī)” 20ms,在該20ms期間,將對(duì)每個(gè)比特執(zhí)行搜索和破壞算法以對(duì)任何目標(biāo)病毒的出現(xiàn) 進(jìn)行隔離和禁用。
當(dāng)執(zhí)行“散布/收集”操作時(shí),分布式子系統(tǒng)10中的自主存儲(chǔ)器設(shè)備102比現(xiàn) 有系統(tǒng)有優(yōu)勢?!吧⒉?收集”操作在不同的地址處提供由存儲(chǔ)器或IO子系統(tǒng)執(zhí)行的、 被編譯成單個(gè)復(fù)合指令的一連串寫操作。這些操作被解析并發(fā)送給分布式子系統(tǒng)10中的 多個(gè)晶片,在這些晶片處它們被自主地執(zhí)行。當(dāng)整個(gè)操作結(jié)束時(shí),得到的狀態(tài)被累積并 報(bào)告給主機(jī)。
對(duì)于一些諸如圖像處理的應(yīng)用類別而言,分布式子系統(tǒng)10中的自主存儲(chǔ)器設(shè)備 102是非常理想的。這些類別非常適合于并行計(jì)算,其中圖像可被分成許多更小的、被相 對(duì)獨(dú)立進(jìn)行處理的分段。在對(duì)這些小分段的計(jì)算已經(jīng)結(jié)束之后,接著還可以執(zhí)行對(duì)這些 分段的分組的計(jì)算以形成更大的分段,直到該圖像被以包含整個(gè)圖像的水平進(jìn)行處理為止。
通過使用自主存儲(chǔ)器設(shè)備102,許多或所有的這些低水平計(jì)算可以在一列自主存 儲(chǔ)器的水平上并行進(jìn)行??缭搅羞吔绲挠?jì)算可在一個(gè)設(shè)備中進(jìn)行,以及通過使用晶片間 通信,更高級(jí)的計(jì)算可在子系統(tǒng)級(jí)進(jìn)行。其它并行計(jì)算任務(wù)遵循類似的模型并可涉及迭 代以改善結(jié)果的精度或者以隨時(shí)間進(jìn)行模擬。
分布式子系統(tǒng)10提供了超越存儲(chǔ)器存儲(chǔ)設(shè)備能夠執(zhí)行的期望的讀寫操作之外的 交互動(dòng)作。自主存儲(chǔ)器設(shè)備102通過使用一個(gè)或多個(gè)接口來與已存在的計(jì)算基礎(chǔ)設(shè)施進(jìn) 行交互,該一個(gè)或多個(gè)接口允許與主計(jì)算機(jī)的通信和與網(wǎng)絡(luò)的通信。從主計(jì)算機(jī)的角度 來看,該交互動(dòng)作可以是存儲(chǔ)器或塊接口,但對(duì)自主存儲(chǔ)器設(shè)備102而言,提供了可在 其上構(gòu)建軟件API的靈活的接口。這些API可被擴(kuò)展,以向主機(jī)系統(tǒng)暴露功能或者提供 一種根據(jù)請求而在其它自主存儲(chǔ)器設(shè)備之間進(jìn)行傳遞的方式。
自主存儲(chǔ)器設(shè)備102連接到分布式子系統(tǒng)10中的其它設(shè)備,從而提供了一種傳 遞可包含命令和參數(shù)列表的消息的方式。這些參數(shù)可包含實(shí)際的數(shù)據(jù)、針對(duì)陣列中的數(shù) 據(jù)的編址信息以及涉及位于陣列中的對(duì)象的對(duì)象標(biāo)識(shí)符。這些參數(shù)還可以包含或涉及操 作給定數(shù)據(jù)集所需的代碼的地址或?qū)ο髽?biāo)識(shí)(對(duì)象ID)。傳入自主存儲(chǔ)器設(shè)備102的代碼可與OpenCL標(biāo)準(zhǔn)(可能是MapReduce)所建立的范例相匹配。許多已存在的集群和 “云計(jì)算”基礎(chǔ)設(shè)施部件(piece)在分布式子系統(tǒng)10中是可復(fù)用的。
分布式子系統(tǒng)10中的存儲(chǔ)控制器或自主存儲(chǔ)器設(shè)備102可執(zhí)行狀況監(jiān)視以確定 因存儲(chǔ)器設(shè)備之間的數(shù)據(jù)傳遞而導(dǎo)致的總線活動(dòng)?;诒O(jiān)視結(jié)果,可動(dòng)態(tài)地執(zhí)行資源的 重分配以改善系統(tǒng)性能。例如,在監(jiān)視分布式子系統(tǒng)10中的流量之后,可以確定高帶寬 流量通常出現(xiàn)在兩個(gè)存儲(chǔ)器設(shè)備之間。如果這些存儲(chǔ)器設(shè)備不是鄰近的設(shè)備,則該子系 統(tǒng)可選擇這些存儲(chǔ)器設(shè)備中的其中一個(gè)存儲(chǔ)器設(shè)備,并重定位另一存儲(chǔ)器設(shè)備的內(nèi)容以 允許單個(gè)的自主存儲(chǔ)器設(shè)備102提供完成該算法的處理??商鎿Q地,可將相對(duì)遠(yuǎn)的設(shè)備 的存儲(chǔ)器內(nèi)容重新分布到鄰近的節(jié)點(diǎn)以降低總線流量。
此外,分布式子系統(tǒng)10對(duì)只讀內(nèi)容的搜索會(huì)導(dǎo)致網(wǎng)絡(luò)子集被經(jīng)常地激活。在這 種情況中,該子系統(tǒng)可復(fù)制這部分網(wǎng)絡(luò)中的內(nèi)容,以便分布式子系統(tǒng)10中的多個(gè)自主存 儲(chǔ)器設(shè)備102可執(zhí)行對(duì)該只讀內(nèi)容的并行操作。
至此,應(yīng)當(dāng)意識(shí)到,本發(fā)明的實(shí)施方式通過自主數(shù)據(jù)存儲(chǔ)而允許增加的存儲(chǔ)器 存儲(chǔ)效率。通過在分布式存儲(chǔ)子系統(tǒng)中連接自主存儲(chǔ)器設(shè)備,主機(jī)可下載數(shù)據(jù)庫到該自 主存儲(chǔ)器設(shè)備。該自主存儲(chǔ)器設(shè)備可啟動(dòng)指令,以通過使用處理自主存儲(chǔ)器池中的晶片 間通信的接口來將該數(shù)據(jù)庫的部分分散到鄰近的晶片。該自主存儲(chǔ)器設(shè)備接著可從存儲(chǔ) 器設(shè)備池中提取信息,該信息通過主機(jī)接口被傳遞到主處理器。
雖然本文已經(jīng)說明和描述了本發(fā)明的特定特征,但是本領(lǐng)域技術(shù)人員將意識(shí)到 多種修改、替換、改變和等價(jià)形式。因此,應(yīng)當(dāng)理解,所附權(quán)利要求書意于覆蓋落入本 發(fā)明實(shí)際精神范圍內(nèi)的所有這些修改和改變。
權(quán)利要求
1.一種自主存儲(chǔ)器子系統(tǒng),該自主存儲(chǔ)器子系統(tǒng)包括控制器,具有狀況監(jiān)視塊;以及第一自主存儲(chǔ)器設(shè)備和第二自主存儲(chǔ)器設(shè)備,具有總線流量,其中所述狀況監(jiān)視塊 監(jiān)視所述總線流量并基于所監(jiān)視的結(jié)果來重新分配資源以動(dòng)態(tài)地改善系統(tǒng)性能。
2.根據(jù)權(quán)利要求1所述的自主存儲(chǔ)器子系統(tǒng),該自主存儲(chǔ)器子系統(tǒng)還包括第三自主存儲(chǔ)器設(shè)備,該第三自主存儲(chǔ)器設(shè)備不是所述第一自主存儲(chǔ)器設(shè)備和所述 第二自主存儲(chǔ)器設(shè)備的鄰近設(shè)備,其中所述控制器選擇所述第三自主存儲(chǔ)器設(shè)備的內(nèi)容 以重定位到所述第一自主存儲(chǔ)器設(shè)備和所述第二自主存儲(chǔ)器設(shè)備,所述第一自主存儲(chǔ)器 設(shè)備和所述第二自主存儲(chǔ)器設(shè)備為鄰近的設(shè)備。
3.根據(jù)權(quán)利要求2所述的自主存儲(chǔ)器子系統(tǒng),其中,分布在所述第一自主存儲(chǔ)器設(shè) 備、所述第二自主存儲(chǔ)器設(shè)備和所述第三自主存儲(chǔ)器設(shè)備中的只讀內(nèi)容在所述第一自主 存儲(chǔ)器設(shè)備和所述第二自主存儲(chǔ)器設(shè)備中被復(fù)制,以在不引起由所述第三自主存儲(chǔ)器設(shè) 備所導(dǎo)致的總線流量的情況下執(zhí)行對(duì)所述只讀內(nèi)容的并行操作。
4.根據(jù)權(quán)利要求1所述的自主存儲(chǔ)器子系統(tǒng),其中,所述控制器選擇將所述第二自主 存儲(chǔ)器設(shè)備的內(nèi)容重定位到所述第一自主存儲(chǔ)器設(shè)備,以降低所述第一自主存儲(chǔ)器設(shè)備 和所述第二自主存儲(chǔ)器設(shè)備之間的總線流量。
5.根據(jù)權(quán)利要求1所述的自主存儲(chǔ)器子系統(tǒng),其中,所述第一自主存儲(chǔ)器設(shè)備、所述 第二自主存儲(chǔ)器設(shè)備和所述第三自主存儲(chǔ)器設(shè)備還包括高速暫存器端口以耦合外部存儲(chǔ)ο
6.根據(jù)權(quán)利要求5所述的自主存儲(chǔ)器子系統(tǒng),其中,所述外部存儲(chǔ)器是與非存儲(chǔ)器或 動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器。
7.—種自主存儲(chǔ)器子系統(tǒng),該自主存儲(chǔ)器子系統(tǒng)包括存儲(chǔ)器設(shè)備陣列中的存儲(chǔ)器設(shè)備,用于啟動(dòng)指令以將數(shù)據(jù)庫的部分分散到鄰近的存 儲(chǔ)器設(shè)備;以及狀況監(jiān)視塊,用于監(jiān)視所述自主存儲(chǔ)器子系統(tǒng)中的總線流量并在所述存儲(chǔ)器設(shè)備陣 列中重新分配存儲(chǔ)器內(nèi)容,以動(dòng)態(tài)地將所述存儲(chǔ)器設(shè)備的總線流量歸結(jié)至鄰近的存儲(chǔ)器 設(shè)備。
8.根據(jù)權(quán)利要求7所述的自主存儲(chǔ)器子系統(tǒng),其中,所述存儲(chǔ)器設(shè)備還包括高速暫存 器端口,以耦合外部與非存儲(chǔ)器和動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器。
9.根據(jù)權(quán)利要求7所述的自主存儲(chǔ)器子系統(tǒng),其中,所述存儲(chǔ)器設(shè)備具有四個(gè)輸出端 口,以與至少四個(gè)鄰近的存儲(chǔ)器設(shè)備進(jìn)行通信。
10.根據(jù)權(quán)利要求9所述的自主存儲(chǔ)器子系統(tǒng),其中,所述存儲(chǔ)器設(shè)備無線地與所述 至少四個(gè)鄰近的存儲(chǔ)器設(shè)備進(jìn)行通信。
11.根據(jù)權(quán)利要求7所述的自主存儲(chǔ)器子系統(tǒng),其中,所述狀況監(jiān)視塊在已經(jīng)從非鄰 近存儲(chǔ)器設(shè)備確定出鄰近存儲(chǔ)器設(shè)備之后,重新分配所述存儲(chǔ)器設(shè)備中的存儲(chǔ)器內(nèi)容。
12.根據(jù)權(quán)利要求11所述的自主存儲(chǔ)器子系統(tǒng),其中,分布在所述存儲(chǔ)器子系統(tǒng)中的 只讀內(nèi)容在所述存儲(chǔ)器設(shè)備和所述鄰近的存儲(chǔ)器設(shè)備中被復(fù)制,以在不引起由非鄰近的 存儲(chǔ)器設(shè)備所導(dǎo)致的總線流量的情況下執(zhí)行對(duì)所述只讀內(nèi)容的并行操作。
13.—種具有存儲(chǔ)器設(shè)備陣列的自主存儲(chǔ)器子系統(tǒng),其中,所述陣列中的存儲(chǔ)器設(shè)備啟動(dòng)指令以將數(shù)據(jù)庫的部分分散到所述陣列中的存儲(chǔ)器設(shè)備并引導(dǎo)存儲(chǔ)器內(nèi)容的重新分 配以動(dòng)態(tài)地管理受約束的資源。
14.根據(jù)權(quán)利要求13所述的自主存儲(chǔ)器子系統(tǒng),其中,所述受約束的資源包括總線帶寬。
15.根據(jù)權(quán)利要求13所述的自主存儲(chǔ)器子系統(tǒng),其中,所述陣列中的非鄰近的設(shè)備的 存儲(chǔ)器內(nèi)容被重新分布到鄰近的設(shè)備,以優(yōu)化所述受約束的資源。
16.根據(jù)權(quán)利要求13所述的自主存儲(chǔ)器子系統(tǒng),其中,所述存儲(chǔ)器設(shè)備包括高速暫存 器端口以耦合外部存儲(chǔ)器。
全文摘要
自主子系統(tǒng)接收從主控制器下載的數(shù)據(jù)庫??刂破鞅O(jiān)視所述子系統(tǒng)中的總線流量和/或被分配的資源,并基于所監(jiān)視的結(jié)果來重新分配資源以動(dòng)態(tài)地改善系統(tǒng)性能。
文檔編號(hào)G06F12/02GK102024011SQ20101022646
公開日2011年4月20日 申請日期2010年7月8日 優(yōu)先權(quán)日2009年9月11日
發(fā)明者J·赫爾伯特, M·萊因萬德, S·艾勒特 申請人:J·赫爾伯特, M·萊因萬德, S·艾勒特