用于調(diào)整預(yù)取流的程度的自適應(yīng)機(jī)制的制作方法
【專利說明】用于調(diào)整預(yù)取流的程度的自適應(yīng)機(jī)制
[0001]本申請要求于2014年7月17日提交第62/026,004號以及2015年6月3日提交的第14/730,217號美國臨時(shí)專利申請的優(yōu)先權(quán)。此在先申請的主題通過應(yīng)用合并于此。
技術(shù)領(lǐng)域
[0002]本申請涉及存儲數(shù)據(jù),更具體地講,涉及高速緩存管理。
【背景技術(shù)】
[0003]通常,計(jì)算機(jī)和由計(jì)算機(jī)執(zhí)行的程序?qū)o限量的快速存儲器具有貪婪的需求。不幸地是,存儲器(特別是快速存儲器)通常在成本和芯片面積(die area)方面昂貴。對無限快速存儲器的期望的傳統(tǒng)解決方案是存儲器層次結(jié)構(gòu),或者存儲器層疊或?qū)哟蜗到y(tǒng)。通常,分層存儲器系統(tǒng)包括多級存儲器,每一級比前一層慢但比前一層大。
[0004]典型的計(jì)算機(jī)存儲器層次結(jié)構(gòu)可包括三級。最快且最小的存儲器(通常被稱為“級別I(Ll)高速緩存”)最靠近處理器,并包括靜態(tài)隨機(jī)存取存儲器(RAM和SRAM)。下一層或級通常被稱為級別2(L2)高速緩存,并且比LI高速緩存大但比LI高速緩存慢。第三級是主存儲器,并且一般包括通常被插入到存儲器模塊中的動態(tài)RAM(DRAM)。然而,其它系統(tǒng)可具有更多或更少的存儲器層。此外,在一些系統(tǒng)中,處理器寄存器和永久或半永久存儲裝置(例如,硬盤驅(qū)動器、固態(tài)驅(qū)動器等)可被認(rèn)為是存儲器系統(tǒng)的一部分。
[0005]存儲器系統(tǒng)通常利用包容原則,其中,最慢但最大的層(例如,主存儲器等)包括所有的可用數(shù)據(jù)。第二層(例如,L2高速緩存等)包括所述可用數(shù)據(jù)的子集,下一層(例如,LI高速緩存等)包括第二層的數(shù)據(jù)子集的第二子集。結(jié)果,包括在更快層中的所有數(shù)據(jù)也被更慢層所包括。
[0006]通常,高速緩存基于位置原則(例如,時(shí)間位置、空間位置等)決定什么樣子集的數(shù)據(jù)被包括。假設(shè),程序?qū)⑾ML問它最近已訪問的數(shù)據(jù)或作為它最近已訪問的數(shù)據(jù)的下一個(gè)數(shù)據(jù)的數(shù)據(jù)。例如,如果電影播放程序正在訪問數(shù)據(jù),則很可能電影播放器將要訪問電影接下來的幾秒等等。
[0007]然而,程序偶爾會請求在最快高速緩存(例如,LI高速緩存等)中不可用的一條數(shù)據(jù)。這通常被稱為“高速緩存未命中”,并且使最快高速緩存向下一存儲器層(例如,L2高速緩存)請求所述數(shù)據(jù)。由于在確定發(fā)生高速緩存未命中、由LI高速緩存搜索數(shù)據(jù)以及將其提供給處理器的過程中發(fā)生了延遲,因此對于存儲器性能來說這是昂貴的。偶爾,下一存儲器層(例如,L2高速緩存等)也不包括請求的數(shù)據(jù),并且必須向下一層(例如,主存儲器等)請求所述數(shù)據(jù)。這通常造成更多的延遲。
【發(fā)明內(nèi)容】
[0008]根據(jù)一個(gè)總的方面,一種方法可包括:監(jiān)視與數(shù)據(jù)流相關(guān)聯(lián)的多個(gè)預(yù)取高速緩存請求。所述方法還可包括:評估所述多個(gè)預(yù)取高速緩存請求的準(zhǔn)確性。所述方法還可包括:至少部分基于所述準(zhǔn)確性,調(diào)整比所述數(shù)據(jù)流對數(shù)據(jù)的當(dāng)前實(shí)際需求多且可允許被預(yù)取的數(shù)據(jù)的最大量。
[0009]根據(jù)另一總的方面,一種設(shè)備可包括預(yù)取確認(rèn)器和存儲器。預(yù)取確認(rèn)器可被配置為:監(jiān)視與數(shù)據(jù)流相關(guān)聯(lián)的多個(gè)預(yù)取高速緩存請求,評估所述多個(gè)預(yù)取高速緩存請求的準(zhǔn)確性,至少部分基于所述準(zhǔn)確性,調(diào)整比所述數(shù)據(jù)流的對數(shù)據(jù)的當(dāng)前實(shí)際需求多且可允許被預(yù)取的數(shù)據(jù)的最大量。存儲器可被配置為:存儲第一數(shù)據(jù)結(jié)構(gòu),其中,第一數(shù)據(jù)結(jié)構(gòu)指示所述多個(gè)預(yù)取高速緩存請求的準(zhǔn)確性;存儲第二數(shù)據(jù)結(jié)構(gòu),其中,第二數(shù)據(jù)結(jié)構(gòu)指示比所述數(shù)據(jù)流對數(shù)據(jù)的當(dāng)前實(shí)際需求多且允許被預(yù)取的數(shù)據(jù)的最大量。
[0010]根據(jù)另一總的方面,一種預(yù)取單元可包括模式表、自適應(yīng)預(yù)取表和發(fā)射隊(duì)列。模式表可包括與數(shù)據(jù)流相關(guān)聯(lián)的模式數(shù)據(jù)結(jié)構(gòu)。自適應(yīng)預(yù)取表可包括自適應(yīng)預(yù)取數(shù)據(jù)結(jié)構(gòu),其中,所述自適應(yīng)預(yù)取數(shù)據(jù)結(jié)構(gòu)與所述數(shù)據(jù)流相關(guān)聯(lián)并指示比所述數(shù)據(jù)流對數(shù)據(jù)的當(dāng)前實(shí)際需求多且可允許被預(yù)取的數(shù)據(jù)的最大量。發(fā)射隊(duì)列可被配置為發(fā)出用于針對數(shù)據(jù)流預(yù)取數(shù)據(jù)的多個(gè)預(yù)取高速緩存請求。預(yù)取單元可被配置為:評估所述多個(gè)預(yù)取高速緩存請求的準(zhǔn)確性,至少部分基于所述準(zhǔn)確性,調(diào)整比所述數(shù)據(jù)流對數(shù)據(jù)的當(dāng)前實(shí)際需求多且可允許被預(yù)取的數(shù)據(jù)的最大量。
[0011]—個(gè)或更多個(gè)實(shí)現(xiàn)方式的細(xì)節(jié)在附圖和以下描述中被闡述。從所述描述和附圖并從權(quán)利要求,其它特征將是明顯的。
[0012]用于存儲數(shù)據(jù)的系統(tǒng)和/或方法,更具體地講,用于高速緩存管理的系統(tǒng)和/或方法基本上如至少一個(gè)附圖中所示,和/或如結(jié)合至少一個(gè)附圖被描述,如在權(quán)利要求中被更全面地闡述。
【附圖說明】
[0013]圖1是根據(jù)公開的主題的系統(tǒng)的示例實(shí)施例的框圖;
[0014]圖2是根據(jù)公開的主題的數(shù)據(jù)結(jié)構(gòu)的示例實(shí)施例的框圖;
[0015]圖3是根據(jù)公開的主題的狀態(tài)機(jī)的示例實(shí)施例的框圖;
[0016]圖4是根據(jù)公開的主題的系統(tǒng)的示例實(shí)施例的框圖;
[0017]圖5是根據(jù)公開的主題的技術(shù)的示例實(shí)施例的流程圖;
[0018]圖6是可包括根據(jù)公開的主題的原理形成的裝置的信息處理系統(tǒng)的示意框圖。
[0019]在各種附圖中的相同參考符號指示相同元件。
【具體實(shí)施方式】
[0020]在下面將參照示出一些示例實(shí)施例的附圖更充分地描述各種示例實(shí)施例。然而,可以以許多不同的形式來實(shí)施本公開的主題,并且本公開的主題不應(yīng)被解釋為局限于在此闡述的示例實(shí)施例。相反,提供這些示例實(shí)施例使得本公開將會是徹底和完整的,并將充分地將本公開主題的范圍傳達(dá)給本領(lǐng)域的技術(shù)人員。在附圖中,為了簡明,可夸大層和區(qū)域的大小和相對大小。
[0021]應(yīng)該理解,當(dāng)元件或?qū)颖环Q作在另一元件或?qū)印爸稀?、“連接”或“結(jié)合”到另一元件或?qū)訒r(shí),該元件或?qū)涌赡苤苯釉谒隽硪辉驅(qū)又?、連接或結(jié)合到另一元件或?qū)樱蛘呖赡艽嬖谥虚g元件或?qū)?。相反,?dāng)元件被稱作“直接”在另一元件或?qū)印爸稀?、“直接連接”或“直接結(jié)合”到另一元件或?qū)訒r(shí),不存在中間元件或?qū)?。相同的?biāo)號始終代表相同的元件。如這里所使用的,術(shù)語“和/或”包括一個(gè)或更多個(gè)相關(guān)所列項(xiàng)的任何或全部組合。
[0022]應(yīng)該理解,盡管在這里可使用術(shù)語第一、第二、第三等來描述各種元件、組件、區(qū)域、層和/或部分,但是這些元件、組件、區(qū)域、層和/或部分不應(yīng)被這些術(shù)語所限制。這些術(shù)語僅用于將一個(gè)元件、組件、區(qū)域、層或部分與另一元件、組件、區(qū)域、層或部分區(qū)分開。因此,在不脫離本公開主題的教導(dǎo)的情況下,下面討論的第一元件、組件、區(qū)域、層或部分可以被稱為第二元件、組件、區(qū)域、層或部分。
[0023]在這里使用空間相對術(shù)語(諸如“在…下方”、“在…之下”、“下面的”、“在…之上”、“上面的”等)來輕松地描述在附圖中示出的一個(gè)元件或特征與另一元件或特征的關(guān)系。應(yīng)該理解,空間相對術(shù)語是為了包括除了附圖中描述的方位之外的在使用或運(yùn)行中的裝置的不同方位。例如,如果附圖中的裝置被翻轉(zhuǎn),則被描述為在其它元件或特征“下方”或“之下”的元件將隨后被定位為在所述其它元件或特征“之上”。因此,示例性術(shù)語“在…之下”可包括上面和下面兩種方位。可將裝置朝向另外的方位(旋轉(zhuǎn)90度或在其它方位),并相應(yīng)地解釋在這里使用的空間相對描述符。
[0024]在這里使用的術(shù)語僅用于描述特定示例實(shí)施例的目的,而不意圖限制本公開主題。如這里所使用的,單數(shù)形式也意圖包括復(fù)數(shù)形式,除非上下文另有清楚的指示。還應(yīng)該理解,當(dāng)在本說明書中使用術(shù)語“包括”和/或“包括有”時(shí),其表示存在敘述的特征、整體、步驟、操作、元件和/或組件,但不排除存在或添加一個(gè)或更多個(gè)其它特征、整體、步驟、操作、元件、組件和/或它們的組。
[0025]參照作為理想化的示例實(shí)施例(和中間結(jié)構(gòu))的示意性示意圖的剖面圖,在這里描述示例實(shí)施例。同樣地,預(yù)計(jì)會出現(xiàn)例如由制造技術(shù)和/或公差引起的圖示的形狀的變化。因此,示例實(shí)施例不應(yīng)被解釋為限于這里示出的區(qū)域的特定形狀,而將包括例如由制造產(chǎn)生的形狀的偏差。例如,示出為矩形的注入?yún)^(qū)域在其邊緣通常具有圓形或彎曲特性和/或注入濃度的梯度,而不是從注入?yún)^(qū)域到非注入?yún)^(qū)域的二元(binary)改變。同樣地,通過注入形成的埋區(qū)可能導(dǎo)致在埋區(qū)和通過其發(fā)生注入的面之間的區(qū)域中的一些注入。因此,在附圖中示出的區(qū)域?qū)嶋H上是示意性的,所述區(qū)域的形狀不是為了示出裝置的區(qū)域的實(shí)際形狀,也不是為了限制本公開主題的范圍。
[0026]除非另有定義,否則這里使用的所有術(shù)語(包括技術(shù)和科學(xué)術(shù)語)具有與公開的主題所屬領(lǐng)域的普通技術(shù)人員通常理解的含義相同的含義。還應(yīng)該理解,除非這里明確定義,否則術(shù)語(諸如在常用詞典中定義的)應(yīng)被解釋為具有與所述術(shù)語在相關(guān)領(lǐng)域的上下文中的含義一致的含義,而不應(yīng)理想化或過于正式地被解釋。
[0027]在下文中,將參照附圖詳細(xì)地解釋示例實(shí)施例。
[0028]在各種實(shí)施例中,系統(tǒng)(例如,處理器、片上系統(tǒng)等)可包括被配置為執(zhí)行或處理一個(gè)或更多個(gè)指令的執(zhí)行單元。在這種實(shí)施例中,這些指令可構(gòu)成程序或應(yīng)用(或它們的一部分)。在各種實(shí)施例中,執(zhí)行單元可被處理器或其它更大的計(jì)算機(jī)組件包括。在各種實(shí)施例中,這些指令可偶爾訪問存儲在存儲器系統(tǒng)(例如,LI高速緩存、L2高速緩存和主存儲器等)中的數(shù)據(jù)(例如,從存儲器系統(tǒng)讀取數(shù)據(jù)、將數(shù)據(jù)寫入存儲器系統(tǒng)等)。
[0029]在這種實(shí)施例中,當(dāng)這些指令訪問數(shù)據(jù)時(shí),它們可首先向作為存儲器系統(tǒng)的第一層或最快層的LI高速緩存請求數(shù)據(jù)。如果請求的數(shù)據(jù)被包括在高速緩存中(即,高速緩存命中),則LI高速緩存可提供所述數(shù)據(jù)(或在寫指令的情況下更新存儲的數(shù)據(jù)),并且執(zhí)行單元可順利進(jìn)行操作。
[0030]然而,在各種實(shí)施例中,如果請求的數(shù)據(jù)未包括在高速緩存中(S卩,高速緩存未命中),則LI高速緩存可轉(zhuǎn)而向L2高速緩存(即,存儲器系統(tǒng)中的下一級或下一層)請求所述數(shù)據(jù)。這可能會對執(zhí)行單元的能力產(chǎn)生不利影響或產(chǎn)生不期望的影響,并可使執(zhí)行單元延遲或拖延指令的處理。
[0031]傳統(tǒng)地,LI高速緩存一次僅向L2高速緩存請求一條數(shù)據(jù)。然而,在一些實(shí)施例中,系統(tǒng)可包括LI填充緩沖器,LI填充緩沖器被配置為使由LI高速緩存或其代表提出的對L2高速緩存的數(shù)據(jù)請求排隊(duì)。在這種實(shí)施例中,LI高速緩存能夠容納來自執(zhí)行單元的對數(shù)據(jù)的另外的請求,同時(shí)等待引起高速緩存未命中的數(shù)據(jù)的完成(fulfillment)。
[0032]類似地,L2高速緩存可存儲數(shù)據(jù)的子集。如果高速緩存未命中的數(shù)據(jù)被包括在高速緩存中,則該數(shù)據(jù)可