欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

免劃分的多插槽存儲器系統(tǒng)架構(gòu)的制作方法

文檔序號:6578410閱讀:276來源:國知局
專利名稱:免劃分的多插槽存儲器系統(tǒng)架構(gòu)的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實施例主要涉及信息處理的領(lǐng)域,更具體地說,涉及多插 槽存儲器接口的領(lǐng)域。
背景技術(shù)
隨著更多的應(yīng)用持續(xù)利用多處理系統(tǒng)和微處理器的并行處理能力, 對于促進(jìn)更大存儲器帶寬的需求正在增長。并行應(yīng)用可以包括圖形應(yīng)用、
財務(wù)應(yīng)用、醫(yī)療和生物工藝學(xué)應(yīng)用或涉及例如通過單指令多數(shù)據(jù)(SIMD) 指令同時操作大數(shù)據(jù)集合的任何其它應(yīng)用。某種程度上,更多傳統(tǒng)的順 序中央處理單元(CPU)工作負(fù)栽可能還要求或以其它方式受益于更大的 存儲器帶寬和數(shù)據(jù)總線大小,取決于其操作的數(shù)據(jù)結(jié)構(gòu)的大小。
例如,圖形應(yīng)用意欲在一個或多個多邊形的多像素上并行執(zhí)行紋理 化(texturing)操作或其它特效,以渲染三維(3D)圖形場景。 一些紋 理或其它大的數(shù)據(jù)結(jié)構(gòu)的大小可能要求或者以其它方式產(chǎn)生對于從一個 或多個處理器到一個或多個存儲器存儲區(qū)域(例如,DRAM)的高帶寬的 需要,以快速檢索和存儲這個數(shù)據(jù)。 一些現(xiàn)有技術(shù)已經(jīng)試圖通過增加從 一個或多個處理器或處理核到一個或多個存儲器的引腳或總線跡線 (trace)的數(shù)量來提供更大的存儲器帶寬。增加例如離線封裝 (off-package)總線帶寬的互連寬度來增加帶寬,會不利地影響系統(tǒng)成 本,而且會限制系統(tǒng)的對于更通用目的的計算系統(tǒng)的適用性。
在一些現(xiàn)有技術(shù)中,增加存儲器帶寬可以通過對于封裝增加更多數(shù) 據(jù)引腳和/或增加每個數(shù)據(jù)引腳的帶寬(相對增加切換頻率)而完成。然 而,對于通過增加總線帶寬(例如,通過增加更多引腳)和/或增加總線 頻率來增加帶寬,存在實行上(例如,經(jīng)濟(jì)上的)的限制。為了進(jìn)一步增加系統(tǒng)帶寬, 一些現(xiàn)有技術(shù)可能使用具有分配給每個 處理器的相應(yīng)存儲器的多個處理器。這在處理器和分配的存儲器之間創(chuàng) 建了配對,其典型地通過高帶寬總線互連。處理器/存儲器對可以接著通 過另一個總線相互連接,其可能要求附加的引腳,但可能不具有支持共 享每個處理器從其相應(yīng)的存儲器獲取的數(shù)據(jù)的帶寬。因為以便利的方式 將一個處理器從一個存儲器訪問的信息共享給另一個處理器是困難的, 應(yīng)用可能嘗試在處理器/存儲器對之間劃分由應(yīng)用執(zhí)行的工作。劃分應(yīng)用 會給應(yīng)用開發(fā)者帶來明顯的負(fù)擔(dān),因為他們需要確保他們正在正確的處 理器/存儲器對中存儲和訪問數(shù)據(jù),以避免明顯的等待時間。對應(yīng)用設(shè)置 限制,像代碼/數(shù)據(jù)劃分,會增加應(yīng)用開發(fā)成本、抑制可移植性,并阻止 這些應(yīng)用在市場中更成功。

發(fā)明內(nèi)容
本發(fā)明提供一種裝置,包括耦合到至少兩個存儲器的至少兩個處理 器。其中在時鐘信號時期的第一部分中,所述至少兩個處理器的第一個 將讀存儲在所述至少兩個存儲器的第 一個中的數(shù)據(jù)的第 一部分和存儲在 所述至少兩個存儲器的第二個中的數(shù)據(jù)的第二部分,并且其中在所述時 鐘信號時期的第 一部分中,所述至少兩個處理器的第二個將讀存儲在所 述至少兩個存儲器的第 一個中的數(shù)據(jù)的第三部分和存儲在所述至少兩個 存儲器的第二個中的數(shù)據(jù)的第四部分。
本發(fā)明還提供一種處理器,包括將頁狀態(tài)信息提供給第二處理器的 第 一邏輯。其中所述頁狀態(tài)信息包括第 一存儲器的第 一 頁是否將被關(guān)閉, 其中如果所述第二處理器指示所述第二處理器將從所述第一頁訪問信 息,則所述第一邏輯將阻止所述第一頁被關(guān)閉。
本發(fā)明還提供一種系統(tǒng),包括耦合到多個存儲器的多個處理器, 其中所述多個處理器的每個將并行訪問所述多個存儲器的每個;耦合到 所述多個處理器的多個互連,在所述多個處理器之間傳遞頁狀態(tài)信息。
本發(fā)明還提供一種方法,包括打開存儲器的多個頁,每頁在不同
7的存儲器中;從存儲器的所述多個頁的每個訪問數(shù)據(jù),以及并行地將所 述數(shù)據(jù)提供給多個處理器;請求關(guān)閉存儲器的所述多個頁的至少一頁, 其中所述請求是從不控制存儲器的所述至少一頁的所述多個處理器之一 到確實控制存儲器的所述至少一頁的所述多個處理器的另一個;如果沒 有所述多個處理器的其它處理器正在訪問存^f諸器的所述多個頁的至少一 頁,則準(zhǔn)許關(guān)閉存儲器的所述多個頁的所述至少一頁的請求。


本發(fā)明的實施例在附圖的圖中以示例的方式而非限制的方式示出, 附圖中相似的附圖標(biāo)記表示相似的部件,其中
圖1示出多處理器系統(tǒng)的框圖,其中可使用本發(fā)明的至少一個實施
例;
圖2是示出根據(jù)一個實施例的雙插槽系統(tǒng)的框圖,其中存儲器控制
器位于它們各自處理器的外部;
圖3是示出根據(jù)一個實施例的雙插槽系統(tǒng)的框圖,其中存儲器控制
器位于它們各自處理器的內(nèi)部;
圖4示出根據(jù)一個實施例的對應(yīng)于圖2和3的雙插槽系統(tǒng)的時序圖5是示出根據(jù)一個實施例的四插槽系統(tǒng)的框圖6示出根據(jù)一個實施例的對應(yīng)于圖5的四插槽系統(tǒng)的時序圖7是可用于執(zhí)行本發(fā)明的至少一個實施例的操作的流程圖8是示出雙插槽系統(tǒng)的配置的框圖,其中可使用至少一個實施例;
圖9是示出雙插槽系統(tǒng)的另一個配置的框圖,其中可使用至少一個
實施例;
圖10示出共享互連系統(tǒng),其中可使用至少一個實施例; 圖11示出點對點的互連計算機(jī)系統(tǒng),其中可4吏用本發(fā)明的至少一個 實施例。
圖12示出其中可使用本發(fā)明的一個實施例的系統(tǒng)。
具體實施例方式
本發(fā)明的實施例涉及處理設(shè)備和系統(tǒng),包括可以處理并行或"吞吐 量"應(yīng)用的那些處理設(shè)備和系統(tǒng)。某些實施例包括至少兩個處理單元(例
如,圖形處理器)以處理代表應(yīng)用的存儲器訪問,例如3D圖形應(yīng)用,以 及至少兩個存儲結(jié)構(gòu),例如DRAM設(shè)備,每一個耦合到所述至少兩個處理 單元,其中所述至少兩個存儲結(jié)構(gòu)的每一個包括存儲信息的一個或多個 緩沖區(qū),或者與其相關(guān),這些緩沖區(qū)具有對應(yīng)于將從每個存儲器讀的數(shù) 據(jù)的寬度的存儲寬度(例如,16位)。在一個實施例中,每個緩沖區(qū)被劃 分,在寬度上可配置,或者以其他方式耦合到兩個不同的處理器(例如, 通過它們各自的存儲器控制器),其中每個緩沖區(qū)的一個部分(例如,半 個緩沖區(qū))將存儲將提供給一個處理器的數(shù)據(jù),而其它部分(例如,半 個緩沖區(qū))耦合到至少一個其它的處理器,使得每個處理器可以同時從 每個存儲器訪問信息。在一個實施例中,緩沖區(qū)的部分的數(shù)量是可以基 于從其訪問數(shù)據(jù)的處理器的數(shù)量來配置的。
通過將每個處理器訪問提供給兩個或多個存儲結(jié)構(gòu),應(yīng)用軟件可以 在不止一個存儲結(jié)構(gòu)中存儲信息和從不止一個存儲結(jié)構(gòu)訪問信息,這給 軟件提供關(guān)于在哪里存儲和訪問程序數(shù)據(jù)和其它信息的靈活性。此外,
其它存儲器結(jié)構(gòu)訪問信息,而且本發(fā)明的實施例在這樣做的同時還最大 化每個處理器的存儲器接口帶寬。
本發(fā)明的實施例使軟件應(yīng)用能夠在對應(yīng)于多個處理器的多個存儲結(jié) 構(gòu)中訪問和存儲信息。在某些情況下,當(dāng)處理利用單指令多數(shù)據(jù)(SIMD) 或多指令多數(shù)據(jù)(MIMD)操作的并行指令或應(yīng)用時,這可以是很有用的, 因為每個SIM或MIMD操作可以從多個存儲器結(jié)構(gòu)訪問操作數(shù)數(shù)據(jù)元素,
而不考慮其所位于的特定存儲器結(jié)構(gòu)。這對于某些應(yīng)用是^f艮有用的,例 如會對大量信息同時執(zhí)行操作的3D圖形或財務(wù)應(yīng)用。然而,對于某些傳 統(tǒng)的、更順序的CPU應(yīng)用,以及利用可能存儲在多個不同位置的信息的 CPU應(yīng)用,這也是4艮有用的。
9在某些實施例中,其中根據(jù)段來組織或訪問存儲器,例如"頁",訪 問頁的處理器(或存儲器接口邏輯)可以維護(hù)結(jié)構(gòu)(例如,"頁表")以 將特定存儲器結(jié)構(gòu)的頁大小或組織映射到處理器的或存儲器控制器的分 頁大小或方案中。例如,在一個實施例中,其中處理器或存儲器控制器 可以將特定存儲器的物理頁映射到一組數(shù)量的虛擬頁上,處理器或存儲 器控制器可以響應(yīng)訪問頁的程序打開或關(guān)閉這些虛擬頁。
因為在某些實施例中,每個處理器或存儲器接口可訪問其它存儲器 結(jié)構(gòu),而這些其它存儲器結(jié)構(gòu)可以被另一個處理器存儲器接口控制,或 者以其它方式對應(yīng)于另一個處理器存儲器接口 ,所以在處理器/存儲器控 制器之間的某些通信可能是合乎需要的,以便在每個處理器或存儲器控
制器的頁狀態(tài)(打開/關(guān)閉)之間維護(hù)一致性。在一個實施例中,n寬度 互連(其中"n,,可表示信道/引腳/通道/跡線的可變數(shù)量,從l到更多) 可以被用來在各個處理器和存儲器控制器之間傳遞頁狀態(tài),使得一個處 理器不關(guān)閉另 一個處理器可能需要訪問的存儲器的頁。通過在訪問 一個 或多個存儲器的各個處理器或存儲器控制器之間傳遞頁狀態(tài),可以避免 不必要的頁打開或關(guān)閉操作,由此改善了在各個處理器或存儲器控制器 之間的訪問性能。此外,在某些實施例中,n寬度互連可以是相對低的帶 寬,使得不要求過多的引腳,電源或其它資源。
有利的是,本發(fā)明的實施例可允許應(yīng)用運(yùn)行在多個處理器上,而不 考慮其中存儲數(shù)據(jù)或要存儲數(shù)據(jù)的存儲器設(shè)備。在圖形應(yīng)用中,這特別 有用,例如, 一個圖形處理器正在渲染半個屏幕的像素,而另一個圖形 處理器正在渲染其余半個。在這種情況下,落在邊界上的三角形可能產(chǎn) 生過濾時的等待時間,因為 一個處理器將需要從一個存儲器訪問相鄰的 紋理像素(texel)信息(對應(yīng)于在對應(yīng)的處理器的半個屏幕上的紋理像 素),而另一個處理器將需要從另一個存儲器訪問相鄰的紋理像素信息 (對應(yīng)于在對應(yīng)的處理器的半個屏幕上的紋理像素)。在這種情況下,需 要來自不對應(yīng)的存儲器的信息的處理器可能需要通過對應(yīng)的處理器請求 它,而對應(yīng)的處理器將不得不將信息返回給請求的處理器,這消耗了帶寬,從而在處理器之間要求相對高帶寬的總線。否則,軟件開發(fā)者將不 得不對于在哪里存儲數(shù)據(jù)做出限制,這可能是非常困難的,特別是如果 渲染跨邊界的三角形時。
類似的情形是一個處理器要渲染幀,而另一個處理器要渲染下一幀。 特別是,例如倒影的特效有時依賴于來自直接在其前面的幀的信息。在 這種情況下,由于在當(dāng)前幀(對應(yīng)于一個處理器/存儲器對)中需要來自 前一幀(對應(yīng)于另一個處理器/存儲器對)的信息,就會存在與處理分割 幀(如上所述)時一樣的等待時間問題。本發(fā)明的實施例可以處理這些 情況,例如分割幀渲染示例和交替幀渲染示例,而沒有某些現(xiàn)有技術(shù)的 帶寬問題,而且軟件也無需知道或者關(guān)心對應(yīng)的數(shù)據(jù)被存儲在哪里。在
一個實施例中這是有可能的,因為以下事實在本發(fā)明的某些實施例中 采用的處理器以交替形式在正在使用的存儲器之間自動(無需來自0S或 者應(yīng)用的幫助)存儲信息(例如, 一頁信息),并/人提供的地址推導(dǎo)信息, 從哪個存儲器訪問數(shù)據(jù)。
在一個實施例中,頁表將軟件提供的地址映射到對應(yīng)于用于執(zhí)行吞 吐量應(yīng)用的兩個處理器的兩個存儲器中的位置上。特別是,頁表使用地 址的位訪問表的條目,其包含存儲在兩個存儲器中的交替位置中的信息 的地址。因此,當(dāng)軟件存儲或訪問信息時,頁表自動將訪問路由到正確 的存儲器,而不要求軟件(OS或應(yīng)用)理解或關(guān)心信息實際存儲在哪里。 這樣,能夠用交替形式以突發(fā)速度(burst speeds)從任一存儲器訪問 信息,由此最大化每個處理器的存儲器接口的帶寬,并避免^f吏用相對高 帶寬的總線來支持交叉存儲器/處理器訪問。
在某些實施例中,多個處理器可以通過以有效的方式管理請求來提 供數(shù)據(jù)給請求應(yīng)用,例如通過使用一致性過濾。在一個實施例中, 一致 性過濾可包括一個或多個一致性表,或者對應(yīng)于一個或多個處理器或可 由一個或多個處理器訪問的其它結(jié)構(gòu),使得運(yùn)行在一個處理器上的應(yīng)用 對數(shù)據(jù)的請求會使該處理器訪問指示當(dāng)前可能可由另 一個處理器訪問的 數(shù)據(jù)的地址的表(例如,對比在處理器的高速緩存、緩沖區(qū)、或其它結(jié)
ii構(gòu)中,在處理器的相應(yīng)存儲器中當(dāng)前打開的頁中,等等)。如果請求的數(shù) 據(jù)的最近版本駐留在其它處理器的高速緩存中,那么接收該請求的處理 器可信號通知該其它處理器以將請求的數(shù)據(jù)返回給請求應(yīng)用,或者接收
該請求的處理器可以通過n寬的處理器間互連從那個處理器檢索數(shù)據(jù)。 在某些實施例中,每個處理器可包括多個處理器,在該情況下每個處理 器可對應(yīng)于處理器插槽。
在某些實施例中,上述技術(shù)可以應(yīng)用于具有兩個、四個、八個或更 多個處理器或核的系統(tǒng)或處理器。此外,本發(fā)明的實施例可以應(yīng)用于多 個不同的系統(tǒng)或處理配置或應(yīng)用,包括通用目的計算機(jī)、圖形游戲控制 臺、圖形卡應(yīng)用等。在一個實施例中,本文所述的技術(shù)涉及運(yùn)行3D圖形 或例如財務(wù)應(yīng)用、醫(yī)療應(yīng)用、成^f象應(yīng)用等其它應(yīng)用的一個或多個處理器。 在其它實施例中,本文所述的技術(shù)可以結(jié)合用于運(yùn)行順序的或更傳統(tǒng)的 工作負(fù)載的通用目的CPU使用。在還有的其他實施例中,本文所述的才支 術(shù)可以結(jié)合設(shè)計用于運(yùn)行傳統(tǒng)CPU工作負(fù)載及吞吐量應(yīng)用的混合處理器 使用,例如包括傳統(tǒng)的CPU和圖形專用邏輯("CPU+GPU")的處理器。在 一個實施例中,本文所述的技術(shù)結(jié)合具有多個CPU處理器核、能夠執(zhí)行 SIMD指令、耦合到互連以及并行應(yīng)用專用邏輯(例如圖形紋理采樣邏輯) 的一個或多個處理器^f吏用。
圖1示出其中可使用本發(fā)明的至少一個實施例的微處理器。圖1示 出可以用于傳統(tǒng)CPU應(yīng)用、吞吐量應(yīng)用(例如,3D圖形應(yīng)用)或者傳統(tǒng) CPU和吞吐量應(yīng)用的組合的處理器。處理器100包括多個處理核100-1到 IOO-N,專用的吞吐量應(yīng)用硬件110 (例如,圖形紋理采樣硬件)、存儲器 ^接口邏輯120,沿環(huán)形互連130組織。在某些實施例中,處理器100可以 包括一個或多個末級高速緩存135,其包括來自在每個核100-1到100-N 中的高速緩存101-1到101-N的信息。在一個實施例中, 一個或多個處 理核100-1到10O-N能夠執(zhí)行SIMD操作。
在一個實施例中,存儲器控制器可以與位于處理器100外部的存儲 器接口,其可以包括DRAM,例如圖形DRAM 105。在一個實施例中,存4諸器接口可以具有某種寬度,例如16位,且可以訪問某種大小(例如2KB) 的存儲器頁。在不止一個處理器100可以訪問一個或多個存儲器(例如 DRAM)的系統(tǒng)中,存儲器由另一個處理器或存儲器控制器控制,或者以 其它方式對應(yīng)于另一個處理器或存儲器控制器,處理器IOO還可以包括 邏輯140,以傳遞、接收和處理送到或來自不同的處理器或存^f渚器控制器 的信息,以便在訪問各個存儲器的各個處理器之間維護(hù)頁狀態(tài)的一致性。 在一個實施例中,邏輯140可以包括寄存器或其它存儲區(qū)域,以及某些 控制或解碼邏輯,其結(jié)合頁表,以解釋可訪問與處理器100訪問的相同 的存儲器的其它處理器或存儲器控制器的頁狀態(tài)。處理器100可以使用 這種一致性信息確定是否關(guān)閉存儲器的頁或打開新的存儲器的頁。此外, 處理器100可以將存儲器的某些頁的狀態(tài)傳遞到訪問與處理器100訪問 的相同的存儲器的其它處理器或存儲器控制器。
在某些實施例中,例如圖形紋理的信息,或者要求相對大量的存儲 器帶寬的其它信息,可以從對應(yīng)于另一個處理器(未示出)的其它存儲 器訪問,而應(yīng)用軟件不用知道或考慮存儲該信息的存儲器。在一個實施 例中,系統(tǒng)的存儲器接口可以通過以下方式合成其有效帶寬,即通過將 地址提供給至少兩個存儲器存儲結(jié)構(gòu),例如DRAM或者DRAM陣列(例如, DI謹(jǐn)),以及當(dāng)?shù)诙鎯ζ鞯臄?shù)據(jù)寬度的第一部分供應(yīng)給第一處理器,以 及第二存儲器的數(shù)據(jù)寬度的第二部分供應(yīng)給第二處理器時,從第 一存儲
器將數(shù)據(jù)寬度的第一部分供應(yīng)給處理器,同時從第一存儲器將數(shù)據(jù)寬度 的第二部分供應(yīng)給第二處理器。
在某些實施例中,處理器100可以包括與圖l所示的相比的更多或 更少的存儲器控制器。此外,圖1的存儲器控制器可以是在處理器100 的內(nèi)部或者是在處理器100的外部。例如,圖2是示出根據(jù)一個實施例 的雙插槽系統(tǒng)的框圖,其中存儲器控制器是在它們各自處理器的外部。
具體來說,圖2示出耦合到相應(yīng)存儲器控制器210和215的處理器 200和205,存儲器控制器210和215分別控制存儲器220和225。如圖 2所示,處理器200和205分別通過互連203、 207、 213和217與存儲器控制器210和215通信。此外,處理器200和205通過鏈路208傳遞頁 狀態(tài)信息。在一個實施例中,將地址提供給存儲器220和225,而且對其 進(jìn)行響應(yīng),數(shù)據(jù)字從每個存儲器的尋址的位置讀出到位于存儲器中、存 儲器外部、或者存儲器控制器中的一個或多個緩沖區(qū)230、 235、 240和 245中。在一個實施例中,數(shù)據(jù)字是16位,但是也可能是其它的大小, 取決于處理器/存儲器控制器/存儲數(shù)據(jù)總線的寬度。在一個實施例中, 所述一個或多個緩沖區(qū)被組織成兩部分(例如, 一半),使得當(dāng)處理器205 讀對應(yīng)于存儲器控制器210的緩沖區(qū)230、 235之一的一半,以及對應(yīng)于 存儲器控制器215的緩沖區(qū)240、 245之一的一半時,處理器200可以讀 對應(yīng)于存儲器控制器210的緩沖區(qū)230、 235之一的另一半,同時處理器 200讀對應(yīng)于存儲器控制器215的緩沖區(qū)240、 245之一的另一半。
在一個實施例中,緩沖區(qū)可以可配置成劃分為對應(yīng)于可能正在訪問 緩沖區(qū)對應(yīng)的存儲器的多個處理器的多個部分。例如,緩沖區(qū)在雙處理 器系統(tǒng)中可以可配置成兩半,在四處理器系統(tǒng)中可以可配置成四等^P分, 在八處理器系統(tǒng)中可以可配置成八等份等。在一個實施例中,可使用邏 輯來檢測系統(tǒng)中訪問存儲器的處理器的數(shù)量,并對其響應(yīng)而自動(動態(tài)) 劃分纟爰沖區(qū)。
在對應(yīng)于每個存儲器控制器的兩個緩沖區(qū)之一被讀后,每個存儲器 控制器的第二緩沖區(qū)可以在下一個時鐘邊沿上以類似的方式立即#1讀, 在一個實施例中,同時下一個數(shù)據(jù)字從存儲器讀到對應(yīng)于存儲器控制器 210和215之一的前一個讀的緩沖區(qū)。這種過程可以繼續(xù)不確定的若干個 周期,使得數(shù)據(jù)可以在每個周期或每半個周期(在雙泵(double-pumped ) 接口的情況下)連續(xù)地從兩個存儲器讀到處理器200和205中(或由處 理器200和205寫到兩個存儲器)。在一個實施例中,每個存儲器中的多 個頁可一次保持打開,使得新的頁關(guān)閉/打開周期不需要對每個訪問執(zhí) 行。然而,如果新的頁確實需要被打開,處理器之一可通過鏈路208通 知其它處理器要打開的頁或者要關(guān)閉的頁,使得頁不會被關(guān)閉,例如, 正在^皮處理器之一使用的頁。這樣,兩個處理器的頁狀態(tài)能保持一致。
14在一個實施例中,存儲器控制器210和215可以在處理器200和205 內(nèi)部。圖3是示出根據(jù)一個實施例的雙插槽系統(tǒng)的框圖,其中存儲器控 制器是在它們各自處理器300和305的內(nèi)部。在一個實施例中,緩沖區(qū) 330、 335、 340和345位于存儲器320和325中,或者在存儲器外部,例 如在DI醒電路板上。在一個實施例中,可以采取與參考圖2所述技術(shù)一 致的方式將信息寫到存儲器320和325,或者從存儲器320和325讀。
圖4示出與圖2或圖3相關(guān)的時序圖,根據(jù)該時序圖可執(zhí)行至少一 個實施例。根據(jù)一個實施例,圖4示出地址401、 405和數(shù)據(jù)信號410、 415、 420和425,對應(yīng)于圖2和3所示的從每個存儲器傳遞到每個處理 器的一半數(shù)據(jù)。如圖4清楚表示的事實是,本發(fā)明的實施例可以有利于 在每半個時鐘周期讀數(shù)據(jù),或者在某些實施例中,有利于每個時鐘周期
讀數(shù)據(jù)o
圖4的時序圖中所示的技術(shù)可以-陂擴(kuò)展成適應(yīng)比兩個處理器/人兩個 不同存儲器讀更多的情況。圖5示出四插槽系統(tǒng),其中可執(zhí)^f亍本發(fā)明的 至少一個實施例。在圖5的四插槽系統(tǒng)中,任意處理器500-1到500-4 可以同時從任意存儲器510-1到510-4讀,使得軟件應(yīng)用不需要關(guān)心數(shù) 據(jù)位于何處。
圖6示出根據(jù)一個實施例的對應(yīng)于圖5的四插槽系統(tǒng)的時序圖。根 據(jù)一個實施例,圖6示出地址601、 602、 603、 605和數(shù)據(jù)信號610、 615、 620、 625、 630、 635、 640、 645,對應(yīng)于圖5所示的乂人每個存4諸器傳遞 到每個處理器的一半數(shù)據(jù)。如圖6清楚表示的事實是,本發(fā)明的實施例
可以有利于在每半個時鐘周期讀數(shù)據(jù),或者在某些實施例中,有利于在 每個時鐘周期讀數(shù)據(jù)。
圖7是操作的流程圖,其可用于執(zhí)行本發(fā)明的至少一個實施例。在 一個實施例中,在操作701,兩個地址從第一處理器和第二處理器或相應(yīng) 的存儲器控制器被分別提供給兩個不同的存儲器(例如,高速緩存、DRAM 等)。在操作705,信息的第一寬度分別從提供給存儲器的地址所指示的 每個存儲器中的位置檢索,并臨時存儲在對應(yīng)于第一和第二存儲器的第一和第二緩沖區(qū)中。在這一點,在操作710,第一處理器/存儲器控制器 可同時讀第一緩沖區(qū)的一半和第二緩沖區(qū)的一半,同時第二處理器可以 同時讀第一和第二緩沖區(qū)的另一半。在操作715,當(dāng)處理器正在/人第一和 第二緩沖區(qū)讀數(shù)據(jù)時,信息的第二寬度分別從第一和第二處理器/存儲器 控制器到第一和第二存儲器的地址所指示的另 一個位置^^索,并分別臨 時存儲在分別對應(yīng)于第 一和第二存儲器的第三和第四緩沖區(qū)中。在操作 720,第一處理器/存儲器控制器可以同時讀第三緩沖區(qū)的一半和第四緩 沖區(qū)的一半,同時第二處理器可以同時讀第三和第四緩沖區(qū)的另一半。
該操作可以對數(shù)據(jù)的整個頁長度連續(xù)重復(fù),或者在某些實施例中, 對更長的數(shù)據(jù),其中后續(xù)的頁可以被打開,而不影響讀操作的訪問速率。 此外,在某些實施例中,可能有少于或者多于兩個緩沖區(qū)對應(yīng)于兩個不 同存儲器的每個。在一個實施例中,數(shù)據(jù)的第一和第二寬度分別是16位。 然而,在其它實施例中,可能是更大或更小。此外,在某些實施例中, 上述操作可擴(kuò)展為四個、八個或任意數(shù)目的處理器或存儲器設(shè)備。在一 個實施例中,每個處理器是圖形處理器,但是在某些實施例中,所有或 者部分處理器可以是通用目的處理器,或者是通用目的和圖形處理器的 某種組合。在一個實施例中,能夠使用上述操作來改善吞吐量應(yīng)用的性 能,例如圖形應(yīng)用、財務(wù)應(yīng)用、分子建模應(yīng)用或涉及在多個數(shù)據(jù)元素上 同時執(zhí)行操作/指令的其它應(yīng)用。
本發(fā)明的實施例可以多種配置在多種平臺上使用,包括游戲控制臺 和通用目的計算機(jī)平臺。此外,結(jié)合各個實施例使用的處理器和存儲器 可以以多種方式組織,取決于特定系統(tǒng)或應(yīng)用的需要和限制。
圖8是示出雙插槽系統(tǒng)的配置的框圖,其中可使用至少一個實施例。 圖8示出耦合到存儲器810、 815、 820和825的處理器801和805。圖8 的配置可涉及在多層電路^1中布線交叉互連830、 835,這在某些應(yīng)用中 是可接受的或需要的。
圖9是示出雙插槽系統(tǒng)的另一個配置的框圖,其中可使用至少一個 實施例。圖9示出耦合到四個存儲器910、 915、 920、 925的兩個處理器901、 905。因為沒有交叉互連,所以圖9所示的配置可不涉及在多層中 布線互連。根據(jù)平臺或應(yīng)用的需要,可以使用其它配置。此外,本發(fā)明 的實施例可以用于具有多個不同互連拓樸、組織、協(xié)議等的多個不同的 系統(tǒng)。
例如,圖10示出共享總線計算機(jī)系統(tǒng)(例如,前端總線(FSB)計 算機(jī)系統(tǒng)),其中可使用本發(fā)明的一個實施例。任意處理器1001、 1005、 1010或1015可包括不對稱核(性能、功率、操作電壓、時鐘速度或ISA 等方面不同),其可從任一個本地一級(L1)高速緩存存儲器1020、 1025、 1030、 235、 1040、 1045、 1050、 1055訪問信息,該任一個高速緩存存儲 器在處理器核1023、 1027、 1033、 1037、 1043、 1047、 1053、 1057之一 中或者以其他方式與上述處理器核之一相關(guān)。此外,任意處理器1001、 1005、 1010或1015寸以通過芯片組1065 /人系統(tǒng)存儲器1060或/人共享的 二級(L2)高速緩存1003、 1007、 1013、 1017的任一個訪問信息。
本發(fā)明的實施例可以存在于圖10所示的任意處理器或代理中。例如, 還輯1019可以結(jié)合在任意或全部處理器1023、 1027、 1033、 1037、 1043、 1047、 1053、 1057中,以執(zhí)^f亍至少一個實施例的方面。特別地,邏輯1019 可用于檢測、傳送和解釋來自系統(tǒng)中的其它代理的信號,以確定是否打 開或關(guān)閉存儲器的頁,這取決于頁當(dāng)前是否正在由另一個代理訪問。在 其它實施例中,邏輯1019分布在多個代理中。還是在其它實施例中,邏 輯1060可以包括軟件、石更件或其某種組合。
除了圖IO所示的FSB計算機(jī)系統(tǒng)外,其它系統(tǒng)配置可以結(jié)合本發(fā)明 的各個實施例使用,包括點對點(P2P)互連系統(tǒng)和環(huán)形互連系統(tǒng)。例如, 圖11的P2P系統(tǒng)可包括若干處理器,僅僅舉例示出其中兩個處理器1170、 1180。處理器1170、 1180可以分別包括本地存儲器控制器中心(MCH) 1172、 1182以連4矣存儲器112、 114。處理器1170、 1180可以4吏用PtP 接口電路1178、 1188通過點對點(PtP)接口 1150交換數(shù)據(jù)。處理器1170、 1180可分別使用點對點接口電路1176、 1194、 1186、 1198通過各個PtP 接口 1152、 1154與芯片組1190交換數(shù)據(jù)。芯片組1190還可以通過高性
17能圖形接口 1139與高性能圖形電路1138交換數(shù)據(jù)。
本發(fā)明的實施例可包括在圖11中的任意處理器或代理中。例如,邏 輯1199可結(jié)合在處理器1170、 1180的任一個或兩者中,以執(zhí)行至少一 個實施例的方面。特別地,邏輯1199可用于檢測、傳送和解釋來自系統(tǒng) 中的其它代理的信號,以確定是否打開或關(guān)閉存儲器的頁,這取決于頁 當(dāng)前是否正在由另一個代理訪問。在其它實施例中,邏輯1199分布在多 個代理中。還是在其它實施例中,邏輯1199可以包括軟件、硬件或其某 種組合。
許多不同類型的處理設(shè)備能受益于使用這種過程再分配技術(shù)。例如, 處理單元600-1到600-N可以是通用目的處理器(例如孩史處理器),或者 可以是用于多核(在單管芯上)微處理器的微處理器核。備選地,數(shù)字 信號處理器、圖形處理器、網(wǎng)絡(luò)處理器或可在具有多個并行單元或核的 系統(tǒng)中使用的任意類型的專用目的處理器可受益于在處理單元之間移動 的熱(或功率)目的性過程。處理單元或處理器可以是相同的,或者具 有至少部分功能重疊。也就是說,每個處理單元具有某種指令或命令的 共同集合,使得存在能夠在不止一個處理單元或處理器上執(zhí)行的至少部 分過程(如果不是全部的話)。在其它實施例中,處理單元可以在多達(dá)以 下方面是不對稱的,它們具有任意的或者組合的不同性能能力、晶體管 數(shù)量、功率消耗或者熱特性、時鐘頻率或ISA。
為了有助于便利的處理和返回請求的數(shù)據(jù),至少一個實施例可包括 一致性過濾,以確定檢索應(yīng)用請求的數(shù)據(jù)的最好(例如最快)的方式。 例如,在一個實施例中, 一致性過濾可包括一致性表,其條目包括有關(guān) 當(dāng)前可由系統(tǒng)中的任意處理器訪問的數(shù)據(jù)的信息。在一個實施例中,用 于處理器的一致性表包括地址列表,其指示系統(tǒng)中的另 一個處理器的高 速緩存、緩沖區(qū)、或者其它存儲結(jié)構(gòu)中的可用數(shù)據(jù),使得當(dāng)應(yīng)用請求數(shù) 據(jù)時,處理器可首先檢查其一致性表,以查看另一個處理器當(dāng)前是否具 有該數(shù)據(jù)。如果是,該數(shù)據(jù)可通過檢索跨越處理器間的n寬度互連的數(shù) 據(jù)由服務(wù)該請求的處理器檢索。在一個實施例中,因為該表將僅指示在任一個處理器的高速緩存/緩沖區(qū)/等等中的可用數(shù)據(jù)的一些,(實際上,
該表能夠在其中包含的信息量方面變化),所以n寬度處理器間互連上的 通信量能根據(jù)一致性表的大小或信息被減少,或者至少被控制。
圖12示出其中可使用本發(fā)明一個實施例的系統(tǒng),包括一致性過濾。 在圖12中,運(yùn)行在處理器1205上的應(yīng)用或線程1240可以通過提供地址 給處理器1205來請求數(shù)據(jù)。然后處理器1205可訪問存儲在處理器或處 理器可訪問的一些存儲器中的一致性表1245,以確定請求的數(shù)據(jù)當(dāng)前是 否在處理器1200中的高速緩存或緩沖區(qū)中。例如,如果該表指示請求的 數(shù)據(jù)當(dāng)前在處理器1200中可用,處理器1205可以跨越互連1208 /人處理 器1200檢索數(shù)據(jù),由此以可能的最便利的方式將數(shù)據(jù)提供給程序。在一 個實施例中,該表由應(yīng)用或線程1240提供給處理器1205的地址的一部 分來引用。此外,在至少一個實施例中,不同的表(或者相同的表)對 應(yīng)于系統(tǒng)中的每個處理器,并且通過對于在另一個處理器中發(fā)現(xiàn)的每個 請求的地址在表中創(chuàng)建條目來維護(hù)。此外,每個條目可包含信息以指示 何時數(shù)據(jù)沒有在另一個處理器中發(fā)現(xiàn),或者該條目可一起被刪除。各個 一致性表維護(hù)可用于留意將在處理器之間跨越互連1208共享的信息的方
案和算法。
至少一個實施例的一個或多個方面可以通過表示處理器中的各個邏 輯的機(jī)器可讀介質(zhì)上存儲的表示數(shù)據(jù)來實現(xiàn),當(dāng)其由機(jī)器讀時使機(jī)器制 造執(zhí)行所述的技術(shù)的邏輯。這種表示,稱為"IP核",可以存儲在有形 的機(jī)器可讀介質(zhì)("磁帶,,)上,并供應(yīng)給各個客戶或生產(chǎn)機(jī)構(gòu)以裝載到 實際制造邏輯或處理器的制造機(jī)器中。
因此,已經(jīng)描述用于指導(dǎo)宏架構(gòu)存儲器區(qū)域訪問的方法和裝置。應(yīng) 該理解的是,上述描述旨在說明而非限制。通過閱讀和理解上述描述, 許多其它實施例對于本領(lǐng)域技術(shù)人員將是很明顯的。因此,本發(fā)明的范 圍應(yīng)該參考所附權(quán)利要求以及這些權(quán)利要求有權(quán)享有的等同物的全部范 圍來確定。
19
權(quán)利要求
1.一種裝置,包括耦合到至少兩個存儲器的至少兩個處理器,其中在時鐘信號時期的第一部分中,所述至少兩個處理器的第一個將讀存儲在所述至少兩個存儲器的第一個中的數(shù)據(jù)的第一部分和存儲在所述至少兩個存儲器的第二個中的數(shù)據(jù)的第二部分,并且其中在所述時鐘信號時期的第一部分中,所述至少兩個處理器的第二個將讀存儲在所述至少兩個存儲器的第一個中的數(shù)據(jù)的第三部分和存儲在所述至少兩個存儲器的第二個中的數(shù)據(jù)的第四部分。
2. 如權(quán)利要求1所述的裝置,還包括耦合到所述第一存儲器的第 一緩沖區(qū),用于在數(shù)據(jù)的所述第一和第三部分已經(jīng)乂人所述第 一存儲器 讀后,存儲數(shù)據(jù)的所述第一和第三部分。
3. 如權(quán)利要求2所述的裝置,還包括耦合到所述第二存儲器的第 二緩沖區(qū),用于在數(shù)據(jù)的所述第二和第四部分已經(jīng)從所述第二存儲器 讀后,存儲數(shù)據(jù)的所述第二和第四部分。
4. 如權(quán)利要求3所述的裝置,其中所述第一處理器將從所述第一 緩沖區(qū)的第一部分讀所述數(shù)據(jù)的所述第一部分,并從所述第二緩沖區(qū) 的第三部分讀所述數(shù)據(jù)的所述第三部分。
5. 如權(quán)利要求4所述的裝置,其中所述第二處理器將從所述第一緩沖區(qū)的第二部分讀所述數(shù)據(jù)的所述第二部分,并從所述第二緩沖區(qū) 的第四部分讀所述數(shù)據(jù)的所述第四部分。
6. 如權(quán)利要求1所述的裝置,還包括耦合到所述至少第一和第二 處理器的互連,用于傳遞對應(yīng)于所述至少第一和第二存儲器的頁狀態(tài) 信息。
7. 如權(quán)利要求1所述的裝置,其中數(shù)據(jù)的所述第一、第二、第三 和第四部分各具有相同的位寬度。
8. 如權(quán)利要求1所述的裝置,其中所述至少第一和第二處理器將執(zhí)行三維(3D)圖形操作。
9. 如權(quán)利要求1所述的裝置,其中所述第一時鐘時期的第一部分 是所述第一時鐘時期的一半。
10. 如權(quán)利要求1所述的裝置,其中所述第一時鐘時期的第一部 分是一個時鐘時期。
11. 一種處理器,包括將頁狀態(tài)信息提供給第二處理器的第 一邏輯,其中所述頁狀態(tài)信 息包括第 一存儲器的第 一頁是否將被關(guān)閉,其中如果所述第二處理器 指示所述第二處理器將從所述第一頁訪問信息,則所述第一邏輯將阻 止所述第一頁被關(guān)閉。
12. 如權(quán)利要求11所述的處理器,還包括執(zhí)行邏輯,用于執(zhí)行單 指令多數(shù)據(jù)(SIMD)指令。
13. 如權(quán)利要求11所述的處理器,其中所述頁狀態(tài)信息將在所述 第一和第二處理器之間通過專用互連傳遞。
14. 如權(quán)利要求ll所述的處理器,還包括第二邏輯,用于從所述 第二處理器接收頁狀態(tài)信息,其中所述頁狀態(tài)信息包括第二存儲器的 第二頁是否將被關(guān)閉,其中如果所述處理器將從所述第二頁訪問信 息,則所述第二處理器將阻止所述第二頁被關(guān)閉。
15. 如權(quán)利要求14所述的處理器,其中所述處理器和所述第二處 理器將分別并行地從所述第 一和第二存儲器訪問信息。
16. 如權(quán)利要求14所述的處理器,還包括第三邏輯,用于如果所 述處理器或所述第二處理器將在第三頁中訪問信息,則使所述第三頁 在所述第一存儲器中被打開。
17. 如權(quán)利要求U所述的處理器,還包括三維(3D)圖形渲染邏輯。
18. 如權(quán)利要求17所述的處理器,其中,所述第二處理器包括3D 圖形渲染邏輯。
19. 一種系統(tǒng),包括耦合到多個存儲器的多個處理器,其中所述多個處理器的每個將并行訪問所述多個存儲器的每個;耦合到所述多個處理器的多個互連,在所述多個處理器之間傳遞 頁狀態(tài)信息。
20. 如權(quán)利要求19所述的系統(tǒng),還包括耦合到所述多個處理器的每個的多個存儲器控制器。
21. 如權(quán)利要求20所述的系統(tǒng),其中所述多個存儲器控制器將從 所述多個處理器的每個將訪問路由到所述多個存儲器。
22. 如權(quán)利要求19所述的系統(tǒng),其中每個處理器將從所述多個存 儲器的每個訪問1/N位寬的數(shù)據(jù)字,其中"N,,對應(yīng)于所述多個處理 器的數(shù)量。
23. 如權(quán)利要求22所述的系統(tǒng),其中所述多個存儲器的每個耦合 到緩沖區(qū),所述緩沖區(qū)存儲將由所述多個處理器并行訪問的數(shù)據(jù)。
24. 如權(quán)利要求23所述的系統(tǒng),其中緩沖區(qū)將同時存儲16位。
25. —種方法,包括打開存儲器的多個頁,每頁在不同的存儲器中;從存儲器的所述多個頁的每個訪問數(shù)據(jù),以及并行地將所述數(shù)據(jù) 提供給多個處理器;請求關(guān)閉存儲器的所述多個頁的至少 一頁,其中所述請求是從不 控制存儲器的所述至少一頁的所述多個處理器之一到確實控制存儲 器的所述至少一頁的所述多個處理器的另一個;如果沒有所述多個處理器的其它處理器正在訪問存儲器的所述 多個頁的至少一貢,則準(zhǔn)許關(guān)閉存儲器的所迷多個頁的所述至少一頁 的請求。
26. 如權(quán)利要求25所述的方法,還包括將所述請求的指示傳遞給 所述多個處理器。
27. 如權(quán)利要求26所述的方法,其中所述指示通過耦合到所述多 個處理器的多個專用互連傳遞給所述多個處理器。
28. 如權(quán)利要求27所述的方法,其中所述多個處理器包括多個存 儲器控制器,用于從所述多個存儲器訪問所述數(shù)據(jù)。
29. 如權(quán)利要求27所述的方法,其中所述多個存儲器包括多個緩 沖區(qū),用于臨時存儲所述數(shù)據(jù),直到它被所述多個處理器訪問。
30. 如權(quán)利要求25所述的方法,其中所述多個處理器是圖形處理器。
全文摘要
本發(fā)明名稱為“免劃分的多插槽存儲器系統(tǒng)架構(gòu)”。一種為吞吐量應(yīng)用增加存儲器帶寬的技術(shù)。在一個實施例中,能增加存儲器帶寬,特別是對于吞吐量應(yīng)用,而不用通過在存儲器訪問時鐘的半周期上在一個或多個存儲器存儲區(qū)域之間用管道輸送頁來增加互連跡線或引腳數(shù)。
文檔編號G06T1/60GK101561754SQ20091014191
公開日2009年10月21日 申請日期2009年3月31日 優(yōu)先權(quán)日2008年3月31日
發(fā)明者E·斯普蘭格爾 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
永善县| 绥宁县| 黔南| 武穴市| 都江堰市| 金华市| 昌宁县| 鲁甸县| 河池市| 南城县| 博爱县| 应城市| 塔城市| 左贡县| 吉安县| 抚远县| 肃宁县| 德昌县| 安陆市| 苗栗县| 手游| 景宁| 昌图县| 林州市| 梁山县| 苍溪县| 成武县| 正阳县| 东乡族自治县| 嘉兴市| 临夏市| 栾川县| 兴隆县| 宁波市| 凌云县| 西安市| 台中县| 正镶白旗| 固始县| 铅山县| 永泰县|