專利名稱:從動態(tài)隨機(jī)存取存儲器到靜態(tài)隨機(jī)存取存儲器的預(yù)取的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例總體上涉及集成電路領(lǐng)域,并且尤其涉及用于進(jìn)行從動態(tài)隨機(jī)存取存儲器(DRAM)到靜態(tài)隨機(jī)存取存儲器(SRAM) 的預(yù)取的系統(tǒng)、方法和設(shè)備。
背景技術(shù):
工業(yè)芯片設(shè)計(jì)正朝著單芯片多處理器(CMP)方向發(fā)展。與高頻 單處理器相比,CMP提供的性能得到改善并且使功耗減小。CMP使 用相對簡單的內(nèi)核,并且依靠線程級并行(TLP)來改善性能。在 CMP上運(yùn)行的應(yīng)用程序必須增加TLP以有效利用內(nèi)核數(shù)。然而,增加TLP加大了每個時鐘上未完成的存儲器請求的數(shù)量, 這也增加了存儲器級并行(MLP)。此外,多線程應(yīng)用程序的數(shù)據(jù)工 作區(qū)將可能隨著線程數(shù)而增加。最后,由于從幾個線程進(jìn)行交叉存取, 增加TLP也有可能增加對共用高速緩存的存取的隨機(jī)性。因此,存 儲器帶寬和高速緩存容量應(yīng)該與內(nèi)核數(shù)成比例以支持增加的MLP和 數(shù)據(jù)覆蓋區(qū)。最近,有人提出將三維(3D)管芯疊置作為用于在微處理器管 芯上疊置密集的存儲器管芯(例如DRAM)的可行選項(xiàng)。疊置允許 將完全不同的Si技術(shù)結(jié)合到管芯疊置中,而不用考慮朝著單一工藝 流程的技術(shù)集成。疊置還使用貫穿硅的通孔在管芯之間提供很高帶寬 的接口。因此,CMP上存儲器(例如DRAM)的3D疊置可以有效 地解決對于CMP縮放(scaling)的存儲器分級障礙。DRAM通常使一個開放行保持激活直到需要另一行,以減少存取的等待時間。該技術(shù)被稱為開放頁策略(open page policy),并且 如果對DRAM的連續(xù)存取是針對同一開放頁,則該技術(shù)以最佳狀態(tài) 工作。否則,存儲體關(guān)閉和預(yù)充電損失會顯著增加對存儲體進(jìn)行存取 的總等待時間。傳統(tǒng)上,在DRAM設(shè)計(jì)中每個存儲體只有一個開放 頁。
以示例性而非限制性的方式示出本發(fā)明的實(shí)施例,在附圖的各個 圖中,相似的參考標(biāo)記表示相似的元件。圖1是示出根據(jù)本發(fā)明實(shí)施例實(shí)施的計(jì)算系統(tǒng)的所選方案的方 框圖;圖2是示出根據(jù)本發(fā)明實(shí)施例的塊傳送(block transfer)的概念圖;圖3是示出根據(jù)本發(fā)明實(shí)施例實(shí)施的計(jì)算系統(tǒng)的所選方案的高 級方框圖;圖4是示出其中共用L2高速緩存的實(shí)施例的高級方框圖; 圖5是示出其中在高速緩存分級體系中在不同級上使用預(yù)取邏 輯的實(shí)施例的高級方框圖;圖6是示出根據(jù)本發(fā)明實(shí)施例的塊傳送的所選方案的流程圖; 圖7是根據(jù)本發(fā)明實(shí)施例實(shí)施的半導(dǎo)體器件的截面圖。
具體實(shí)施方式
經(jīng)驗(yàn)表明,對DRAM的存取位置可能隨訪問DRAM的線程數(shù)量 的增加而更加隨機(jī)。由于DRAM具有有限數(shù)量的存儲體(例如16個), 所以開放頁的數(shù)目會隨著線程數(shù)的增加而顯著增加。因此,存儲體過 載的結(jié)果會顯著影響系統(tǒng)的性能。本發(fā)明的實(shí)施例一般涉及用于進(jìn)行從動態(tài)隨機(jī)存取存儲器(DRAM)到靜態(tài)隨機(jī)存取存儲器(SRAM)的預(yù)取的系統(tǒng)、方法和 設(shè)備。在一些實(shí)施例中,將兩條或更多條高速緩存線(cache line)從 DRAM中的開放頁傳送到SRAM。該傳送可以在密集的互連(例如 管芯至管芯的通孔)上發(fā)生。如以下進(jìn)一步所述,本發(fā)明的實(shí)施例可 以有效地提供適于CMP縮放的存儲器資源。圖1是示出根據(jù)本發(fā)明實(shí)施例實(shí)施的計(jì)算系統(tǒng)的所選方案的方 框圖。計(jì)算系統(tǒng)100包括通過互連106與DRAM 104耦合的(多個) 內(nèi)核102。內(nèi)核102幾乎可以是集成電路的任意內(nèi)核邏輯,包括通用 處理內(nèi)核、圖形內(nèi)核等。在一些實(shí)施例中,內(nèi)核102是管芯(例如 CMP)上的多個內(nèi)核中的一個。內(nèi)核102包括指令處理邏輯108、 Ln高速緩存(例如L2高速緩 存)110以及預(yù)取(PF)邏輯112。指令處理邏輯108可以包括一個 或多個用于處理指令的單元,例如指令指針、解碼邏輯、寄存器以及 Ll高速緩存。在一些實(shí)施例中,指令邏輯108還可以包括用于產(chǎn)生 預(yù)取提示(prefetch hint)(例如預(yù)取提示114)的邏輯。預(yù)取提示泛 指兩個或更多個載入指令可能從同一高速緩存頁請求數(shù)據(jù)的指示。在 一些實(shí)施例中,預(yù)取提示可以是由基于指令指針(IP)歷史的步幅檢 測(stride detection)機(jī)制產(chǎn)生的置信度值。在可選實(shí)施例中,可以用 不同的機(jī)制來產(chǎn)生預(yù)取提示。Ln高速緩存110和PF邏輯112通過互連116 (例如L2總線) 與指令處理邏輯108耦合。在一些實(shí)施例中,如果L1高速緩存缺失, 則將該缺失和預(yù)取提示114發(fā)送(直接或者通過存儲器分級體系中的 一個或多個級)到Ln高速緩存110和/或預(yù)取邏輯112。預(yù)取邏輯112 可以至少部分基于預(yù)取提示114確定是否從DRAM 104的開放頁預(yù) 取兩條或更多條高速緩存線。例如,如果預(yù)取提示114指示出很有可 能多個LOAD指令將要展現(xiàn)流型的(streaming)行為,則PF邏輯112 可以將整個開放頁的數(shù)據(jù)從DRAM 104傳送到Ln高速緩存110。在一些實(shí)施例中,PF邏輯112可以包括用于例如如果互連106 的使用程度太高則調(diào)節(jié)(throttle)預(yù)取的邏輯。在這種實(shí)施例中,PF 邏輯112可以將由預(yù)取提示114提供的置信度(例如,高、中、或低) 與互連使用程度的指示進(jìn)行比較,并且確定是否從DRAM 104預(yù)取 數(shù)據(jù)。這里使用的術(shù)語"數(shù)據(jù)"泛指任何類型的采用內(nèi)核102可識別 的任何形式的信息,包括指令。DRAM 104幾乎可以是任何形式的DRAM,包括商用DRAM、 低延時的DRAM (RLDRAM)、磁性隨機(jī)存取存儲器(MRAM)等。 此外,DRAM 104幾乎可以具有任何數(shù)量的存儲體,所述存儲體幾乎 具有任意的頁大小。在一些實(shí)施例中,DRAM 104具有16個存儲體 并且每一頁是4千字節(jié)(KB)。互連106可以是廣范圍的管芯至管芯和/或芯片至芯片互連中的 任何一種。在一些實(shí)施例中,內(nèi)核102和DRAM 104垂直疊置并且 互連106是高密度管芯至管芯通孔。在可選實(shí)施例中,內(nèi)核102和 DRAM 104—起封裝在多芯片模塊中并且互連106在模塊中的(至少) 一些芯片之間提供高密度互連。在其他的可選實(shí)施例中,內(nèi)核102和 DRAM 104可以處于不同的封裝中并且互連106連接這些封裝。圖2是示出根據(jù)本發(fā)明實(shí)施例的塊傳送的概念圖。將DRAM 202 組織成一個或多個高速緩存頁204。在一些實(shí)施例中,DRAM 202在 任意給定時間(假設(shè)器件在工作中)都有一個高速緩存頁是開放的。 例如,在所示的實(shí)施例中,高速緩存頁206開放。每個高速緩存頁由 兩條或更多條高速緩存線208組成,每條高速緩存線208具有兩個或 更多個字節(jié)的數(shù)據(jù)。在一些實(shí)施例中,預(yù)取邏輯(例如圖1所示的預(yù) 取邏輯112)將兩條或更多條高速緩存線構(gòu)成的一個塊從開放DRAM 高速緩存頁206傳送到SRAM 210。傳送一塊的高速緩存線的決定可 以至少部分基于預(yù)取提示(例如圖1所示的預(yù)取提示114)。下面參 照圖3-7進(jìn)一步說明數(shù)據(jù)從DRAM到SRAM的塊傳送。圖3是示出根據(jù)本發(fā)明實(shí)施例實(shí)施的計(jì)算系統(tǒng)的所選方案的高 級方框圖。系統(tǒng)300包括多個內(nèi)核302。內(nèi)核302可以是包括通用處 理內(nèi)核和圖形內(nèi)核在內(nèi)的各種內(nèi)核的任何一種。在一些實(shí)施例中,每 個內(nèi)核具有專用的Ll高速緩存304和專用的L2高速緩存306。此外, 每個內(nèi)核(或者內(nèi)核的子集)可以包括PF邏輯308。在一些實(shí)施例中,DRAM L3高速緩存310處在與包含內(nèi)核302 的管芯垂直疊置的管芯上。在這種實(shí)施例中,L3總線314可以是高 密度管芯至管芯互連。大容量DRAM 312提供系統(tǒng)存儲器并且可以 包括與內(nèi)核302和DRAM L3高速緩存310分開的多個存儲器件。在一些實(shí)施例中,PF邏輯308將兩條或更多條高速緩存線從 DRAM L3高速緩存的開放頁傳送到SRAM L2高速緩存。傳送一塊 的高速緩存線的決定可以至少部分基于從內(nèi)核302上的指令處理邏 輯(例如,圖1所示的指令處理邏輯102)提供給PF邏輯308的預(yù) 取提示。此外,傳送一塊的高速緩存線的決定可以至少部分基于總線 314經(jīng)歷的使用程度。在一些實(shí)施例中,PF邏輯308可以將存儲器的 一整頁從DRAM L3 310傳送到SRAM L2 306。圖4是示出其中共用L2高速緩存的實(shí)施例的高級方框圖。在所 示的實(shí)施例中,每個內(nèi)核302具有專用的L1高速緩存并且這些內(nèi)核 共用L2高速緩存402。如果Ll高速緩存304缺失,則將該缺失和預(yù) 取提示發(fā)送到L2高速緩存402和/或PF邏輯404。在一些實(shí)施例中, PF邏輯404至少部分基于預(yù)取提示決定是否傳送來自DRAML3 310 的兩條或更多條高速緩存線。此外,預(yù)取邏輯404可以基于其他因素 進(jìn)行傳送決定,所述其他因素包括L3總線314的使用程度。圖5是示出其中在高速緩存分級體系中在不同級上使用預(yù)取邏 輯的實(shí)施例的高級方框圖。在一些實(shí)施例中,可以將高速緩存缺失(例 如Ll和L2高速緩存都缺失)和預(yù)取提示發(fā)送到DRAML3高速緩存 502和/或PF邏輯504。 PF邏輯504可以至少部分基于預(yù)取提示(以及可能的其他因素,例如總線使用程度)將兩條或更多條高速緩存線從大容量DRAM 312的開放頁傳送到DRAM L3高速緩存502。預(yù)取 邏輯308又可以將兩條或更多條高速緩存線從DRAM L3高速緩存 502傳送到SRAM L2高速緩存306。盡管所示的實(shí)施例顯示出兩級 批預(yù)取,但是應(yīng)該理解的是,可以幾乎在任意個級的高速緩存上,任 意多次地執(zhí)行一塊的高速緩存線的批傳送。圖6是示出根據(jù)本發(fā)明實(shí)施例的塊傳送的所選方案的流程圖。參 照處理方框602,預(yù)取邏輯(例如,圖1所示的預(yù)取邏輯112)接收 與LOAD指令相關(guān)的預(yù)取提示。在一些實(shí)施例中,由基于IP的步幅 檢測算法產(chǎn)生預(yù)取提示。在這種實(shí)施例中,預(yù)取提示可以指示隨后的 LOAD指令具有單調(diào)增加或減少的地址步幅的可能性有多大。在一些 實(shí)施例中,預(yù)取提示可以具有任何數(shù)量的值,表示關(guān)于隨后的LOAD 指令是否具有單調(diào)增加或減少的地址步幅的置信程度。例如,預(yù)取提 示可以表示高、中或低的置信度?;蛘?,可以使用幾乎任何方案來表 示置信度。參照處理方框604, PF邏輯可以基于一個或多個條件或因素來調(diào) 節(jié)塊預(yù)取。術(shù)語"調(diào)節(jié)"可以指包括延遲傳送、取消傳送、改變傳送 大小等的多種行為。觸發(fā)調(diào)節(jié)傳送的條件可以包括其上將要發(fā)生傳 送的互連的使用程度、預(yù)取提示、功率節(jié)省程度等。如虛線所示,在 一些實(shí)施例中調(diào)節(jié)機(jī)制是任選的。參照處理方框606, PF邏輯至少部分基于預(yù)取提示將兩條或更 多條高速緩存線從DRAM傳送到SRAM。例如,如果預(yù)取提示指示 多個LOAD指令具有單調(diào)增加或減少的地址步幅的可能性很大,則 PF邏輯可以將一塊的高速緩存線傳送到高速緩存中以增加所請求的 數(shù)據(jù)存儲在高速緩存中的可能性。DRAM可以是高速緩存分級體系 的一部分和/或大容量存儲器的元件。此外,SRAM可以存在于高速 緩存分級體系中的幾乎任何一級中。圖7示出根據(jù)本發(fā)明實(shí)施例的半導(dǎo)體器件700的截面圖。器件 700可以包括封裝702、管芯728、管芯730以及管芯至管芯通孔726。 一個或多個突起704-1至704-N (這里總稱為"突起704")可以允許 電信號在封裝702和管芯728之間傳遞,所述電信號包括功率、接地、 時鐘和/或輸入/輸出(I/O)信號。管芯728可以包括一個或多個貫穿 管芯的通孔706,以使信號在凸起704和管芯730之間傳遞。器件700 還可以包括散熱裝置(heat sink) 708以考慮到散發(fā)由管芯730和域 器件700所產(chǎn)生的熱量。管芯728和730可以包括各種層。例如,管芯728可以包括體硅 (SI)層710、有源Si層712和金屬疊層714。管芯730可以包括金 屬疊層720、有源Si層722以及體Si層724。如圖2所示,通孔726 可以分別通過金屬疊層714和720與管芯728和730互相連接。在一 個實(shí)施例中,管芯728可以比管芯730更薄。例如,管芯728可以包 括存儲器件(例如隨機(jī)存取存儲器件),而管芯730可以包括一個或 多個處理器內(nèi)核和/或共用的或?qū)S玫母咚倬彺?。管?30包括一個或多個PF邏輯732的實(shí)例。在一些實(shí)施例中, PF邏輯732可以將兩條或更多條高速緩存線從管芯728中的DRAM 傳送到管芯730中的SRAM。該傳送可以通過管芯至管芯通孔726 進(jìn)行。在一些實(shí)施例中,管芯至管芯通孔726的相對高的帶寬能夠使 PF邏輯732傳送成塊的多條高速緩存線而不會顯著增加等待時間。器件700可以包括用于例如將其他元件集成到同一器件或系統(tǒng) 中的附加管芯。在這種實(shí)施例中,可以使用管芯至管芯和/或貫穿管 芯的通孔以在各個管芯之間傳遞信號(例如,如對于通孔726和706 所討論的那樣)。還可以作為用于存儲機(jī)器可執(zhí)行的指令的機(jī)器可讀介質(zhì)來提供 本發(fā)明實(shí)施例的元件。機(jī)器可讀介質(zhì)可以包括但不限于,閃速存儲器、 光盤、光盤只讀存儲器(CD-ROM)、數(shù)字多用/視頻盤(DVD) ROM、隨機(jī)存取存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、電 可擦除可編程只讀存儲器(EEPROM)、磁卡或光卡、傳播介質(zhì)或者 適于存儲電子指令的其他類型的機(jī)器可讀介質(zhì)。例如,本發(fā)明的實(shí)施 例可以作為計(jì)算機(jī)程序來下載,可以經(jīng)由通信鏈路(例如調(diào)制解調(diào)器 或網(wǎng)絡(luò)連接)以包含在載波或者其他傳播介質(zhì)中的數(shù)據(jù)信號的方式將 所述計(jì)算機(jī)程序從遠(yuǎn)程計(jì)算機(jī)(例如服務(wù)器)傳送到請求方計(jì)算機(jī)(例 如客戶機(jī))。應(yīng)該理解的是,在整個說明書中所提到的"一個實(shí)施例"或"實(shí) 施例"是指關(guān)于該實(shí)施例所述的特定的特征、結(jié)構(gòu)或特性包括在本發(fā) 明的至少一個實(shí)施例中。因此,要強(qiáng)調(diào)且應(yīng)該理解的是,在本說明書 的各個部分中兩次或更多次提到的"實(shí)施例"或"一個實(shí)施例"或"可 選實(shí)施例"并不一定都指同一個實(shí)施例。此外,可以在本發(fā)明的一個 或多個實(shí)施例中適當(dāng)組合特定的特征、結(jié)構(gòu)或特性。類似地,應(yīng)該理解的是,在以上對本發(fā)明實(shí)施例進(jìn)行的說明中, 為了簡化公開內(nèi)容以有助于理解本發(fā)明各個方案中的一個或多個,有 時候在本發(fā)明的單個實(shí)施例、附圖以及說明中將各種特征組合在一起。然而,不應(yīng)將公開的該方法解釋為反映如下意圖所要求的主題 需要比明確記載在每個權(quán)利要求中的特征更多的特征。相反地,如所 附的權(quán)利要求書所反映的那樣,發(fā)明方案在于少于前面所公開的單個 實(shí)施例的所有特征。因此,所附的權(quán)利要求書被明確并入到本申請的 說明書中。
權(quán)利要求
1、一種集成電路,包括用于提供預(yù)取提示的內(nèi)核邏輯;以及耦合到所述內(nèi)核邏輯的預(yù)取邏輯,所述預(yù)取邏輯用于至少部分基于所述預(yù)取提示將兩條或更多條高速緩存線從動態(tài)隨機(jī)存取存儲器(DRAM)中的開放頁傳送到靜態(tài)隨機(jī)存取存儲器(SRAM)。
2、 根據(jù)權(quán)利要求1所述的集成電路,其中所述兩條或更多條高 速緩存線包括存儲器頁。
3、 根據(jù)權(quán)利要求1所述的集成電路,其中所述預(yù)取邏輯通過高 密度接口傳送所述兩條或更多條高速緩存線。
4、 根據(jù)權(quán)利要求3所述的集成電路,其中所述高密度接口為管 芯至管芯通孔。
5、 根據(jù)權(quán)利要求3所述的集成電路,其中所述高密度接口為貫 穿硅的通孔。
6、 根據(jù)權(quán)利要求1所述的集成電路,其中所述DRAM包括大容量存儲器。
7、 根據(jù)權(quán)利要求1所述的集成電路,其中所述DRAM提供某一 級的高速緩存,并且所述SRAM提供更高一級的高速緩存。
8、 根據(jù)權(quán)利要求7所述的集成電路,其中所述某一級的高速緩 存是L3高速緩存,并且所述更高一級的高速緩存是L2高速緩存。
9、 根據(jù)權(quán)利要求1所述的集成電路,其中所述預(yù)取提示指示與 傳送所述兩條或更多條高速緩存線相關(guān)聯(lián)的置信度。
10、 根據(jù)權(quán)利要求9所述的集成電路,還包括調(diào)節(jié)邏輯,其中所述調(diào)節(jié)邏輯能夠至少部分基于互連使用程度和 所述預(yù)取提示調(diào)節(jié)所述兩條或更多條高速緩存線的所述傳送。
11、 根據(jù)權(quán)利要求8所述的集成電路,其中所述內(nèi)核邏輯包括多 個處理內(nèi)核中的一個。
12、 根據(jù)權(quán)利要求8所述的集成電路,其中所述內(nèi)核邏輯包括圖 形內(nèi)核。
13、 一種方法,包括 接收與載入指令相關(guān)聯(lián)的預(yù)取提示;以及至少部分基于所述預(yù)取提示,將兩條或更多條高速緩存線從動態(tài) 隨機(jī)存取存儲器(DRAM)中的開放頁傳送到靜態(tài)隨機(jī)存取存儲器 (SRAM)。
14、 根據(jù)權(quán)利要求13所述的方法,其中所述預(yù)取提示指示與傳 送所述兩條或更多條高速緩存線相關(guān)聯(lián)的置信度。
15、 根據(jù)權(quán)利要求14所述的方法,其中所述置信度是三個或更 多個值中的一個。
16、 根據(jù)權(quán)利要求15所述的方法,其中所述三個或更多個值包 括高、中和低。
17、 根據(jù)權(quán)利要求13所述的方法,還包括 至少部分基于互連使用程度和所述預(yù)取提示調(diào)節(jié)所述兩條或更多條高速緩存線的傳送。
18、 根據(jù)權(quán)利要求13所述的方法,其中從所述DRAM中的開放 頁傳送所述兩條或更多條高速緩存線包括從所述DRAM中的開放頁傳送高速緩存頁。
19、 根據(jù)權(quán)利要求13所述的方法,其中所述DRAM包括大容量存儲器。
20、 根據(jù)權(quán)利要求13所述的方法,其中所述DRAM提供某一級 的高速緩存。
21、 一種系統(tǒng),包括包括動態(tài)隨機(jī)存取存儲器(DRAM)的第一管芯; 第二管芯,包括用于提供預(yù)取提示的內(nèi)核邏輯,以及 耦合到所述內(nèi)核邏輯的預(yù)取邏輯,所述預(yù)取邏輯用于至少部 分基于所述預(yù)取提示將兩條或更多條高速緩存線從所述DRAM中的 開放頁傳送到靜態(tài)隨機(jī)存取存儲器(SRAM);以及 耦合在所述第一管芯和第二管芯之間的互連。
22、 根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述兩條或更多條高速緩存線包括存儲器頁。
23、 根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述互連是管芯至管芯 通孔。
24、 根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述DRAM提供某一級 的高速緩存,并且所述SRAM提供更高一級的高速緩存。
25、 根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述預(yù)取提示指示與傳 送所述兩條或更多條高速緩存線相關(guān)聯(lián)的置信度。
26、 根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述內(nèi)核邏輯包括多個 處理內(nèi)核中的一個。
27、 根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述內(nèi)核邏輯包括圖形 內(nèi)核。
全文摘要
本發(fā)明的實(shí)施例總體上涉及用于進(jìn)行從動態(tài)隨機(jī)存取存儲器(DRAM)到靜態(tài)隨機(jī)存取存儲器(SRAM)的預(yù)取的系統(tǒng)、方法和設(shè)備。在一些實(shí)施例中,預(yù)取邏輯接收與載入指令相關(guān)聯(lián)的預(yù)取提示。預(yù)取邏輯可以至少部分基于預(yù)取提示將兩條或更多條高速緩存線從DRAM中的開放頁傳送到SRAM。
文檔編號G11C7/10GK101241475SQ20071030079
公開日2008年8月13日 申請日期2007年12月21日 優(yōu)先權(quán)日2006年12月22日
發(fā)明者B·P·布萊克, D·W·麥考利, J·P·德瓦勒, M·M·安納瓦萊姆 申請人:英特爾公司