具有對大容量固態(tài)存儲器資源的獨立直接訪問的多處理器系統(tǒng)的制作方法
【專利說明】具有對大容量固態(tài)存儲器資源的獨立直接訪問的多處理器 系統(tǒng)
[0001] 相關(guān)申請的交叉引用
[0002] 本申請要求2013年4月9日提交的第61/810, 197序列號美國臨時專利申請的優(yōu) 先權(quán),該申請的內(nèi)容通過引用被合并于此。
技術(shù)領(lǐng)域
[0003] 本發(fā)明總體上涉及信息處理。更具體地,本發(fā)明涉及具有大型和優(yōu)化的閃速存儲 器資源的計算系統(tǒng)。
【背景技術(shù)】
[0004] 隨著越來越大量的數(shù)據(jù)變得可用于分析,商業(yè)和政府需要能夠針對更快、更準(zhǔn)確 的決策制定和更高效的操作來開發(fā)該數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0005] 系統(tǒng)包括一些中央處理單元,其中每個中央處理單元連接到至少一個其他中央處 理單元和到至少10兆兆字節(jié)的固態(tài)存儲器資源中的根路徑。每個中央處理單元在不將固 態(tài)存儲器內(nèi)容交換到主存儲器中的情況下直接地訪問固態(tài)存儲器資源。
【附圖說明】
[0006] 與結(jié)合附圖所采取的以下詳細(xì)描述相結(jié)合地更全面地理解本發(fā)明,在附圖中:
[0007] 圖1圖示出根據(jù)本發(fā)明的實施例配置的系統(tǒng);
[0008] 圖2圖示出根據(jù)本發(fā)明的實施例配置的根模塊;
[0009] 圖3圖示出根據(jù)本發(fā)明的實施例所利用的分枝和樹體系結(jié)構(gòu);
[0010] 圖4圖示出根據(jù)本發(fā)明的實施例所利用的分枝體系結(jié)構(gòu);
[0011] 圖5圖不出根據(jù)本發(fā)明的實施例所利用的流編碼和解碼技術(shù);
[0012] 圖6圖示出可以根據(jù)本發(fā)明的實施例被利用的現(xiàn)成的組件;
[0013] 圖7圖示出根據(jù)本發(fā)明的實施例所利用的存儲器控制器;
[0014] 圖8圖示出可以根據(jù)本發(fā)明的實施例被利用的閃存接口;
[0015] 圖9圖示出根據(jù)本發(fā)明的實施例所利用的優(yōu)先級FIFO方案;
[0016] 圖10圖示出可以根據(jù)本發(fā)明的實施例被利用的存儲器體系結(jié)構(gòu);
[0017] 圖11圖示出根據(jù)本發(fā)明的實施例所利用的邏輯單元FIFO控制器;
[0018] 圖12圖示出根據(jù)本發(fā)明的實施例配置的邏輯單元控制器;
[0019] 圖13圖示出根據(jù)本發(fā)明的實施例所利用的閃速存儲器接口;
[0020] 圖14圖示出根據(jù)本發(fā)明的實施例所利用的數(shù)據(jù)保護(hù)系統(tǒng);
[0021] 圖15圖示出根據(jù)本發(fā)明的實施例所利用的存儲器緩沖器;
[0022] 圖16圖示出根據(jù)本發(fā)明的實施例所利用的根復(fù)合體(rootcomplex);
[0023] 圖17圖示出根據(jù)本發(fā)明的實施例所利用的地址映射方案。
[0024] 貫穿附圖的若干視圖,相同的附圖標(biāo)記指的是對應(yīng)的部分。
【具體實施方式】
[0025] 計算裝置是具有被設(shè)計為提供特定計算功能的集成軟件的專用硬件設(shè)備。計算裝 置在任何基本方式方面與通用計算機(jī)并無不同,但是典型地不被配置為允許顧客改變軟件 或重新配置硬件。所公開的系統(tǒng)能夠運行非常寬范圍的應(yīng)用,并且在這種意義上,可以將所 公開的系統(tǒng)看做通用計算機(jī)器。它們實施高效地創(chuàng)建非常大的共享存儲器的更為經(jīng)濟(jì)的體 系結(jié)構(gòu)。
[0026] 所公開的系統(tǒng)開發(fā)低成本固態(tài)設(shè)備,由此提供"FlashAsMemory?"。這意味著, 固態(tài)設(shè)備(例如,閃速存儲器芯片)具有處理器的存儲空間中的地址。因而,處理器能夠直 接地訪問"閃速存儲器"中的數(shù)據(jù),而不用首先必須將其交換到處理器的主存儲器中,在某 些實施例中,存儲器空間是超大型的,例如,數(shù)十兆兆字節(jié)到許多千兆字節(jié)。因此,使用特殊 的設(shè)計和技術(shù),如下所述。這些特殊的設(shè)計和技術(shù)支持系統(tǒng)上的并行操作。
[0027] 設(shè)計和技術(shù)包括由硬件和軟件兩者構(gòu)成的許多互連組件。每個組件具有完整系統(tǒng) 的操作所需要的獨特的特性和功能。當(dāng)被互連時,這些組件創(chuàng)建期望的計算能力。
[0028] 在圖1中給出本發(fā)明的實施例的框圖。其包括通過存儲器速度接口 102互連的 (有時被稱為群集連接)、每個具有許多計算核的若干CPU100。每個CPU具有高速緩存104 和局部存儲器105--在這種情況下是DRAM或另一種類似類型的存儲器。每個CPU100也 擁有操作為擴(kuò)展的固態(tài)存儲器的局部存儲器根108。計算核執(zhí)行存在于局部存儲器105中 或通過存儲器控制器110所連接的分枝112上的軟件棧106。在一個實施例中,軟件棧包括 應(yīng)用程序、數(shù)據(jù)庫、塊驅(qū)動器,以及損耗級別可靠性可用性可服務(wù)性(RAS)模塊,如下面所 討論的。該框圖用圖表示出本發(fā)明的許多可能配置之一。
[0029] 能夠由計算機(jī)服務(wù)的同時數(shù)據(jù)訪問的數(shù)量限制許多數(shù)據(jù)驅(qū)動的應(yīng)用的性能。增加 數(shù)量的計算核使該問題更糟。所公開的系統(tǒng)提供具有到包圍計算核的CPU的多根互連的大 量存儲器芯片。其提供對數(shù)據(jù)的高效并行應(yīng)用訪問。專業(yè)系統(tǒng)軟件管理計算和數(shù)據(jù)訪問的 高效調(diào)度。
[0030] 能夠在適于特定使用模式的各種配置中構(gòu)建所公開的系統(tǒng)。可以對于諸如這些大 容量存儲器消耗應(yīng)用的大量特定使用:商業(yè)智能、商業(yè)分析、地質(zhì)地震、醫(yī)學(xué)成像、社交聯(lián)網(wǎng) 和病人管理,來優(yōu)化本發(fā)明。
[0031] 在一個實施例中,根存儲器控制器110連接到每個包括多個核的互連CPU100的 復(fù)合體,并且驅(qū)動分枝112和葉子114的分級體系。注意到,每個分枝附接到另一個分枝或 許多葉子或兩者的混合。葉子114由閃速存儲器或其他固態(tài)或數(shù)字存儲器組成。具體地, 可能存在通過分枝附接到單個根的1024個或更多個存儲器芯片(例如,F(xiàn)PGA或ASIC)。每 個CPU復(fù)合體能夠被連接到八個或更多根。因此,如果圖1是精確的且按比例的,固態(tài)存儲 器葉子的數(shù)量將淹沒該圖。在該體系結(jié)構(gòu)中,CPU具有可以被并行訪問的數(shù)以千計的存儲器 目標(biāo)。CPU復(fù)合體中的CPU的數(shù)量以及存儲器樹的尺寸和數(shù)量也能夠增加到非常大量。平 衡反映了特定使用(應(yīng)用)的需要。該體系結(jié)構(gòu)中的組件由硬件和軟件兩者組成。他們可 以包括以下:
[0032] 1.數(shù)據(jù)管理系統(tǒng)
[0033] 可以是并且往往是以下的數(shù)據(jù)庫或數(shù)據(jù)管理系統(tǒng):
[0034] 1)多線程的;
[0035] 2)利用單個共享存儲器模型或者分布式存儲器模型、或者兩者的組合,以便實現(xiàn) 高并行度。在一些實施例中,這可以是每個CPU線程將其狀態(tài)高速緩存在存儲器中的高速 緩存一致性存儲器模型。
[0036] 2.存儲器管理系統(tǒng)
[0037] 能夠是并且往往是以下的存儲器管理系統(tǒng):
[0038] 1)多線程的以開發(fā)大型多核系統(tǒng);
[0039] 2)高度并行的;
[0040] 3)非常大容量的;
[0041] 4)作為比喻:沿存儲器管理系統(tǒng)向下移動引起增長的并行性。隨著存儲器訪問從 根移動到分枝、到葉子,使在每個級別的并行操作有效地增加。
[0042] 3.高速緩存管理系統(tǒng)
[0043] 在一些實施例中維持計算機(jī)系統(tǒng)中的獨立節(jié)點(或核)上的數(shù)據(jù)一致性的高速緩 存管理系統(tǒng)。
[0044] 4.存儲器系統(tǒng)
[0045] 每個存儲器系統(tǒng)由根、分枝和葉子組成,如上所述。在一個實施例中,存在有時在 本文被稱為存儲器模塊(MM)的四個根。在概念上,根替代計算機(jī)的底板中的四個存儲器擴(kuò) 展卡。它們連接到分發(fā)網(wǎng)絡(luò),提供對每個連接到許多葉子的許多分枝的接口。
[0046] 圖2示出單個根108,其包括兩個存儲器接口 200、兩個分枝接口 202、十六個分枝, 以及十六個葉子(每個葉子包含至少一個固態(tài)設(shè)備)。圖3是分枝接口 202和其到具有對 應(yīng)的葉子114的分枝112的集合的連接的更詳細(xì)描繪。在一個實施例中,對于其一半可用 于用戶應(yīng)用并且其一半被分配給冗余和系統(tǒng)使用的總共32TB的系統(tǒng),每個根具有總共8TB 的閃存。在其他的實施例中,存儲器資源對應(yīng)用或冗余的分配可以是不同的或者可以通過 應(yīng)用直接地或間接地對該分配進(jìn)行控制。
[0047] 每個分枝接口具有執(zhí)行軟件棧206的內(nèi)部存儲器204。軟件可以包含雙數(shù)據(jù)速率 (DDR)控制器、目標(biāo)路由軟件,RAS模塊和非阻塞并行固態(tài)接口(NBSI)驅(qū)動器。分枝接口可 以具有FPGA或ASICS形式的計算資源。
[0048] 存儲器接口連接到其中所有CPU可以訪問所有存儲器的處理器間數(shù)據(jù)分發(fā)網(wǎng)絡(luò)。 我們將存儲器描述為由分枝和葉子組成的多根樹,如以下詳細(xì)描述的。我們將計算復(fù)合體 描述為共享存儲器多處理器,其可以是統(tǒng)一類型或非統(tǒng)一類型。根可以是局部地或遠(yuǎn)程地 連接的許多實例之一?;ミB技術(shù)可以影響系統(tǒng)的一些運作,但是其不一定改變基本體系結(jié) 構(gòu)或其操作。
[0049] 在一個實施例中,利用專用硬件來實施存儲器主控制器(MMC)和存儲器從控制器 (MSG)。根是MMC,而分枝是MSG并且葉子是固態(tài)存儲器設(shè)備。例如,AlteraStratixVFPG A可以用于MMC和MSG兩者。在這種情況下,每個FPGA具有以12. 8Gb/s操作的48個串行 鏈路,并且來自每個MMC的三個鏈路到達(dá)十六個MSG設(shè)備中的每一個。每個MSC進(jìn)而連接 到16個葉子,每個是固態(tài)存儲器設(shè)備,例如32GB單層單元(SLC)NAND閃存設(shè)備。包括其中 組件和它們的互連實時地發(fā)生變化的實施方式的許多其他實施方式是可能的。
[0050] 在一個實施例中,存儲器分枝是具有許多附接的葉子的組件,其中每個葉子是閃 速存儲器芯片,如圖3中所示。圖4圖示出具有執(zhí)行軟件棧402的葉子接口控制器400的分 枝112。軟件棧402可以包括網(wǎng)絡(luò)驅(qū)動器、RAS、糾錯碼(ECC)、數(shù)據(jù)庫引擎、數(shù)據(jù)壓縮引擎、 加密引擎和固態(tài)驅(qū)動器。這些組件提供在沒有將存儲在葉子中的數(shù)據(jù)移動到另一個處理單 元的情況下對其執(zhí)行計算任務(wù)的裝置。注意到,??拷橘|(zhì),這是因為在根和分枝中存在計 算資源。
[0051] 在替換實施例中,存儲器分枝是具有附接的許多分枝和葉子的組件,其中每個分 枝執(zhí)行相同的或者不同的軟件棧。在異構(gòu)系統(tǒng)中,每個分枝可以察覺到其鄰居并且在網(wǎng)絡(luò) 驅(qū)動器、RAS、糾錯碼、數(shù)據(jù)庫引擎、數(shù)據(jù)壓縮引擎和固態(tài)驅(qū)動器的實施中進(jìn)行協(xié)作。
[0052] 在另外的實施例中,如同具有葉子的情況,分枝包含在對葉子讀取/寫入數(shù)據(jù)時 實施迅速搜索或壓縮/解壓的大量計算資源。局部處理器能夠在CPU、分枝和根組件之間對 在通信通道中存在的數(shù)據(jù)分組進(jìn)行加密、