TWI759449B - 確認佇列的設備及其方法 - Google Patents

確認佇列的設備及其方法 Download PDF

Info

Publication number
TWI759449B
TWI759449B TW107110172A TW107110172A TWI759449B TW I759449 B TWI759449 B TW I759449B TW 107110172 A TW107110172 A TW 107110172A TW 107110172 A TW107110172 A TW 107110172A TW I759449 B TWI759449 B TW I759449B
Authority
TW
Taiwan
Prior art keywords
predicted
queue
address
memory
memory address
Prior art date
Application number
TW107110172A
Other languages
English (en)
Other versions
TW201901441A (zh
Inventor
艾德華 A. 柏瑞柯本
安基特 奇亞
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW201901441A publication Critical patent/TW201901441A/zh
Application granted granted Critical
Publication of TWI759449B publication Critical patent/TWI759449B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

根據一個通用態樣,本發明提供一種設備,所述設備可 包含經組態以預測待自記憶體系統擷取的資料的快取預取器。快取預取器可包含圖案預測器電路及確認佇列電路。圖案預測器電路可經組態以預測待自記憶體系統預提取的一系列記憶體位址。確認佇列電路可經組態以:維持經預測記憶體位址的視窗化確認佇列,比較所請求記憶體位址與經預測記憶體位址,以及在所請求記憶體位址包含於經預測記憶體位址中的情況下,指示成功預提取已發生。

Description

確認佇列的設備及其方法 [相關申請案的交叉參考]
本申請案主張2017年5月12日申請之標題為「整合確認佇列(INTEGRATED CONFIRMATION QUEUES)」的臨時專利申請案第62/505,836號之優先權。此較早申請之申請案的主題特此以引用的方式併入。
本揭露內容說明書大體是有關於電腦處理器。特定而言,本揭露內容是有關於整合確認佇列。
電腦處理器通常使用快取預提取以藉由在實際上需要指令或資料之前將指令或資料自較慢記憶體中之其原始儲存提取至較快局部記憶體來增強執行效能。舉例而言,處理器在實際上需要指令或資料區塊之前自主記憶體請求指令或資料區塊,且將對應指令或資料區塊置放於快取記憶體中。當實際上需要指令或資料區塊時,相比於在必須自主記憶體請求的情況下,可自快取記憶體更加快速地進行存取。預提取隱藏記憶體存取潛時。由於資 料存取圖案展示低於指令圖案的規律性,故準確資料預提取一般比指令預提取更具挑戰性。
在預提取的上下文中,程度是在預提取操作中事先預提取或預測之快取行的數目。預提取距離展示資料區塊在需求存取串流之前多遠經預提取。預提取操作取決於其引入的事項是否防止將來快取未命中而為有用的或無用的。若預提取操作引入的事項替代有用區塊且因此有可能增加快取未命中,則其是有害的。有害預提取導致快取污染。若預提取操作引入的資料區塊已存在於快取記憶體中,則其是冗餘的。
為了使資料預取器遮蔽動態隨機存取記憶體(dynamic random access memory;DRAM)存取潛時,資料預取器通常在需求串流之前獲得多次存取。然而,產生許多不正確的預提取可能會使記憶體系統過載且降低輸送量。此外,電腦處理器的確認佇列可能需要具有大功率消耗、使用大面積以及時序至關重要的大型內容可定址記憶體(content addressable memory;CAM)結構。一般而言,確認佇列是針對所有條目校驗傳入的虛擬或記憶體位址的CAM。此類大型CAM具有較慢的速度。更大的CAM結構需要更大的功率,且由於多週期增加複雜性,所以潛在地造成速度路徑問題。
根據一個通用態樣,設備可包含經組態以預測待自記憶體系統擷取的資料的快取預取器。快取預取器可包含圖案預測器電路及確認佇列電路。圖案預測器電路可經組態以預測待自記憶 體系統預提取的一系列記憶體位址。確認佇列電路可經組態以:維持經預測記憶體位址的視窗化確認佇列,比較所請求記憶體位址與經預測記憶體位址,以及在所請求記憶體位址包含於經預測記憶體位址中的情況下,指示成功預提取已發生。
根據另一通用態樣,方法可包含預測待自記憶體系統預提取的一系列記憶體位址。方法可包含維持經預測記憶體位址的視窗化確認佇列。方法可包括比較所請求記憶體位址與經預測記憶體位址。方法亦可包含在所請求記憶體位址包含於經預測記憶體位址中的情況下,指示成功預提取已發生。
在以下附圖及描述中闡述一或多個實施方案的細節。其他特徵將自描述及圖式以及申請專利範圍顯而易見。
用於整合確認佇列之系統及/或方法大體上在圖式中的至少一者中進行繪示及/或結合圖式中的至少一者進行描述,且在申請專利範圍中更徹底地闡述。
100:系統
101:位址
102:重排序佇列
103:經預測記憶體位址
104:訓練表
105:所請求記憶體位址
106:圖案預測器電路
108:圖案偵測器單元或電路
110:圖案表
112:啟動佇列
113:經啟動或預測的預提取位址
114:確認佇列
190:記憶體系統
200:設備/確認佇列
202-1至202-40:記憶體元件
210:視窗化確認佇列
212:區域
214:區塊
300、500:設備/確認佇列
302-0至302-4、502-1至502-6:元件
304:所請求記憶體位址
304A至304D:位址
306:信賴度/信賴等級
308:預提取邏輯
309:下一預提取位址
310:箭頭
312:確認佇列命中信號
322:跳過
324:確認
326:最大臨限值
327:最小臨限值
400:設備
402、404、406、408:視窗化確認佇列
504-1至504-6:標籤
506:實際位址
550:較早部分
552:較晚部分
600:資訊處理系統
605:系統匯流排
610:處理器
615:組合邏輯區塊
620:揮發性記憶體
630:非揮發性記憶體
640:網路介面
650:使用者介面單元
660:硬體組件
670:軟體組件
A、A+1至A+41、B、B+1至B+4、C、C+1至C+4、D、D+1至D+4:經預測位址
圖1為根據所揭露主題的系統的實例實施例的方塊圖。
圖2為根據所揭露主題的設備的實例實施例的方塊圖。
圖3為根據所揭露主題的設備的實例實施例的方塊圖。
圖4為根據所揭露主題的設備的實例實施例的方塊圖。
圖5為根據所揭露主題的設備的實例實施例的方塊圖。
圖6為資訊處理系統的示意性方塊圖,所述資訊處理系統可包含根據所揭露主題的原理形成的裝置。
各種圖式中的相同元件符號指示相同元件。
將在下文中參考繪示一些實例實施例的隨附圖式更充分地描述各種實例實施例。然而,所揭露主題可以許多不同形式體現,且不應解釋為限於本文中所闡述的實例實施例。確切而言,提供這些實例實施例以使得本揭露內容將為透徹且完整的,且將向本領域的技術人員充分傳達所揭露主題的範疇。在圖式中,為了清楚起見,可能會誇大層及區域的尺寸及相對尺寸。
應理解,當一元件或層被稱作在另一元件或層「上」、「連接至」或「耦接至」另一元件或層時,所述元件或層可直接在另一元件或層上、直接連接至或耦接至另一元件或層,或可能存在介入的元件或層。相比之下,當一元件被稱作「直接在」另一元件或層「上」、「直接連接至」另一元件或層或「直接耦接至」另一元件或層時,不存在介入的元件或層。相同元件符號貫穿全文指代相同元件。如本文中所使用,術語「及/或」包含相關聯列舉事項中的一或多者的任何及所有組合。
將理解,儘管術語第一、第二、第三等等可在本文中用以描述各種元件、組件、區域、層及/或區段,但這些元件、組件、區域、層及/或區段不應受這些術語限制。這些術語僅用以區分一個元件、組件、區域、層或區段與另一區域、層或區段。因此,在不脫離所揭露主題的教示內容的情況下,下文所論述的第一元件、組件、區域、層或區段可稱為第二元件、組件、區域、層或 區段。
為易於描述,諸如「在...下方」、「在...之下」、「下部」、「在...上方」、「上部」等的空間相對術語可用於本文中以描述圖式中所說明的一個元件或特徵與另一(一些)元件或特徵的關係。應理解,空間相對術語意欲涵蓋裝置在使用或操作中除圖式中所描繪的定向外的不同定向。舉例而言,若將圖式中的裝置翻轉,則描述為在其他元件或特徵「之下」或「下方」的元件則會定向在其他元件或特徵「上方」。因此,例示性術語「在...之下」可涵蓋「在...上方」以及「在...之下」兩個定向。裝置可以其他方式定向(旋轉90度或處於其他定向),且本文中所使用的空間相對描述詞相應地進行解釋。
本文中所使用的術語僅用於描述特定實例實施例的目的,且不意欲為對所揭露主題的限制。如本文中所使用,除非上下文另有清晰指示,否則單數形式「一(a/an)」及「所述」意欲亦包含複數形式。更應理解,術語「包括(comprises/comprising)」在用於本說明書中時指明存在所陳述的特徵、整體、步驟、操作、元件及/或組件,但不排除存在或添加一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組。
本文中參考為理想化實例實施例(及中間結構)的示意性說明的橫截面說明來描述實例實施例。因而,預期圖解說明的形狀因例如製造技術及/或公差而有所變化。因此,實例實施例不應解釋為限於本文中所說明的特定區域形狀,而是包含由於例如製造造成的形狀偏差。舉例而言,說明為矩形的植入區域通常將在其邊緣上具有圓形或彎曲特徵及/或植入物濃度梯度,而非自植 入區域至非植入區域的二元改變。同樣地,由植入形成的內埋區域可在內埋區域與進行植入的表面之間的區域中產生某種植入。因此,圖式中所說明的區域本質上為示意性的,且其形狀並不意欲說明裝置的區域的實際形狀,且並不意欲限制所揭露主題的範疇。
除非另外定義,否則本文中所使用的所有術語(包含技術及科學術語)具有與由所揭露主題所屬的領域中具有通常知識者通常理解的含義相同的含義。更應理解,諸如常用詞典中所定義的那些術語的術語應解釋為具有與其在相關技術的上下文中的含義一致的含義,且除非在本文中明確地如此定義,否則將不在理想化或過度正式意義上進行解釋。
下文中,將參考隨附圖式詳細地解釋實例實施例。
圖1為根據所揭露主題的系統100的實例實施例的方塊圖。在各種實施例中,系統100可包含處理器、晶片上系統(system-on-a-chip;SoC)、記憶體系統或快取記憶體的一部分。在一個實施例中,根據一個實施例,系統100可包含快取記憶體(例如,1階(level 1;L1)快取記憶體)中的預取器。
在一個這類實施例中,位址101可以程式次序發送至系統100。在各種實施例中,由於虛擬位址生成的性質原因,跨距圖案可能在位址串流中偵測不到。在所說明的實施例中,系統100可包含重排序佇列102。重排序佇列可經組態以使位址101以程式次序排入佇列。
系統100可經組態以偵測快取行存取之間的跨距。在所說明的實施例中,系統100可包含訓練表104。訓練表104可經組 態以計算跨距且將位址串流的跨距歷史維持在一區域中。在這類實施例中,在新跨距計算上,訓練表104將用於串流的跨距圖案發送至圖案預測器電路106。
在所說明的實施例中,圖案預測器電路106可包含圖案偵測器單元或電路108以及圖案表110。在各種實施例中,圖案偵測單元108可經組態以偵測單或多跨距圖案,且將經偵測跨距發送至圖案表110。在各種實施例中,表及佇列(例如,圖案表110)可包含用以儲存相關資料的記憶體元件,以及用以如本文中所描述操控或維持資料的電路或邏輯。
在各種實施例中,圖案表110可經組態以將位址串流的經偵測跨距儲存在單獨的區域中(例如,4K)。圖案表110或更一般而言圖案預測器電路106可經組態以基於經偵測跨距圖案生成預提取位址或經預測記憶體位址103。
在所說明的實施例中,經預測記憶體位址103可輸入至啟動佇列112中。啟動佇列112自記憶體系統190解耦圖案預測器電路106。啟動佇列112可轉而自記憶體系統190(例如,2階(level 2;L2)快取記憶體、主記憶體)擷取經預測記憶體位址103。由於處理器或指令流實際上尚未請求記憶體位址,所以經預測記憶體位址103被視為經預提取或推測性提取。在這類實施例中,自記憶體系統190提取資料所需的潛時或時間可隱瞞處理器。
在所說明的實施例中,系統100可包含確認佇列114。在這類實施例中,確認佇列114可經組態以追蹤預提取生成的準確性。確認佇列114可經組態以儲存經啟動或預測的預提取位址113,且接著使其與需求存取或實際上所請求的記憶體位址105匹 配。
在各種實施例中,加載儲存單元(load-store unit;LSU)可視由處理器執行的指令所需而請求不同的記憶體位址105。預取器或系統100嘗試準確地預測及事先請求(預提取)這些實際上所請求的記憶體位址105。
在這類實施例中,將所請求記憶體位址105與確認佇列114中的條目進行比較。確認佇列114一般是內容可定址記憶體(CAM);然而應理解,上述僅為一個說明性實例,所揭露主題不受其限制。
在各種實施例中,若所請求記憶體位址105成功地經預測(命中),則命中發生的資訊經反饋至圖案預測器電路106中。同樣地,若所請求記憶體位址105並未成功地預測(未命中),則未命中發生的資訊亦經反饋至圖案預測器電路106中。在這類實施例中,圖案預測器電路106嘗試改進其預測能力。
圖2是根據所揭露主題的設備確認佇列的實例實施例的方塊圖。在各種實施例中,設備200可包含確認佇列的一部分,如上文所描述。在這類實施例中,設備200可包含多個記憶體元件。
在所說明的實施例中,設備200可包含多個記憶體元件202-1、202-2以及202-3。在各種實施例中,隨著記憶體位址經預測及預提取,將其輸入至確認佇列200中。舉例而言,記憶體位址A+1儲存於元件202-1中,記憶體位址A+2儲存於元件202-2中,記憶體位址A+3儲存於元件202-3中。
在傳統確認佇列中,可預提取的記憶體位址的數目會受 確認佇列中的記憶體元件的數目限制。若例如確認佇列中存在40個條目(或記憶體元件),則至多40個記憶體位址可經預提取。在各種實施例中,歸因於例如對預測能力缺乏信賴,實際上小於40個記憶體位址可經預提取。隨著增大預提取引擎的深度的需要增加確認佇列的尺寸增大。由於確認佇列在傳統上是CAM,所以就尺寸、功率消耗以及時序要求而言,尺寸的增大往往極昂貴。
在所說明的實施例中,確認佇列200包含經預測記憶體位址A+1、經預測記憶體位址A+2以及經預測記憶體位址A+3的視窗化確認佇列210。在這類實施例中,確認佇列200可不如同傳統的那般包含每一經預測記憶體位址。相反,其可維持或儲存經預測記憶體位址的子集(位址的視窗210內的那些位址)。
在這類實施例中,所述視窗210外(例如,區域212中)的經預測記憶體位址可被捨棄或者不輸入或添加至確認佇列200。在這類實施例中,確認佇列200可包含比傳統佇列(其應包含元件202-1至元件202-40)小得多的數目的記憶體元件(元件202-1、元件202-2以及元件202-3)。
在各種實施例中,視窗尺寸可基於實施例而變化。在所說明的實施例中,視窗尺寸可包含3個經預測記憶體位址。在這類實施例中,確認佇列200可以是採用傳統型式的40條目佇列的尺寸的大致15%。應理解,上述僅為一個說明性實例,所揭露主題不受其限制。
在這類實施例中,由於所請求記憶體位址由LSU提取或請求,所以可相對視窗化記憶體位址(區域210中)校驗所請求記憶體位址。若位址匹配,則可自佇列200移除或清除匹配(及/ 或跳過)的經預測記憶體位址。
舉例而言,若經預測記憶體位址A+1與所請求記憶體位址匹配,則可自佇列200移除位址A+1。在一個實施例中,另一經預測記憶體位址可向下移位或沿佇列200移位。因此,記憶體位址A+2可移動至元件202-1,且記憶體位址A+3可移動至元件202-2。這將留下空的元件202-3,因為在視窗化確認佇列210中,沒有存儲記憶體位址A+4移位至所述元件202-3中。
在這類實施例中,確認佇列200或所述圖案預測器電路可動態地重新預測或重新生成經預測記憶體位址A+4。這個新的經重新預測記憶體位址A+4可置放於視窗化確認佇列210的末端(元件202-3)處。在這類實施例中,視窗化確認佇列210可不斷地經填充(假設存在至少與視窗化確認佇列210中存在的條目一樣多的經預測記憶體位址),但避免了傳統確認佇列的硬體要求。
在這類實施例中,可能更需要使圖案預測器電路多次(例如,兩次)執行記憶體位址的預測而非儲存所有的原始預測。此外,在各種實施例中,圖案預測器電路可經組態以基於更新的信賴等級進行第二次或重新預測。在這類實施例中,由確認佇列200提供至圖案預測器電路的反饋可基於圖案預測器電路採用的最新預測方案,並不基於以前圖案預測器電路採用20個(例如)記憶體位址的預測方案。應理解,上述僅為一個說明性實例,所揭露主題不受其限制。
在所說明的實施例中,當新記憶體位址經預測時(例如,如示為區塊214的位址A+41),確認佇列200判定視窗化確認佇列210是否是滿的或是否具有未使用的空間(例如,是否存在僅2 個未完成的經預測記憶體位址)。若視窗化確認佇列210具有未使用的空間(例如,在位址串流開始處),則可將最新的經預測記憶體位址A+41輸入至視窗化確認佇列210的末端中(例如,若2個位址已存在,則輸入至元件202-3,否則輸入至元件202-2或甚至是202-1)。若視窗化確認佇列210是滿的,則可捨棄最新的經預測記憶體位址,或確認佇列200可制止將最新的經預測記憶體位址A+41添加至視窗化確認佇列210。
圖3是根據所揭露主題的設備或確認佇列300的實例實施例的方塊圖。在所說明的實施例中,更詳細地展示相對確認佇列300對所請求記憶體位址的校驗。應理解,上述僅為一個說明性實例,所揭露主題不受其限制。
在所說明的實施例中,確認佇列300包含具有5個條目的視窗化確認佇列。所述視窗化確認佇列包含元件302-0、元件302-1、元件302-2、元件302-3以及元件302-4。應理解,上述僅為一個說明性實例,所揭露主題不受其限制。
在所說明的實施例中,元件302-0、元件302-1、元件302-2、元件302-3以及元件302-4可分別儲存經預測記憶體位址A、經預測記憶體位址A+1、經預測記憶體位址A+2、經預測記憶體位址A+3以及經預測記憶體位址A+4。應理解,雖然記憶體位址被標籤為以1遞增(例如,記憶體位址A+1、記憶體位址A+2),但是那僅僅是預測其的次序,而不是記憶體位址自身的差值(例如,位址值0xFED6 B072)。應理解,記憶體位址自身可包含跨距或一般可以是不連續的。
在所說明的實施例中,當記憶體位址304實際上由LSU 請求時,所述記憶體位址相對於視窗化確認佇列300中的經預測記憶體位址來進行校驗。箭頭310說明所請求記憶體位址304相對於依次自最早至最新的經預測記憶體位址A、經預測記憶體位址A+1、經預測記憶體位址A+2、經預測記憶體位址A+3以及經預測記憶體位址A+4來進行校驗。在一些實施例中,這種比較可並行地進行。
在各種實施例中,若視窗內的經預測記憶體位址A、經預測記憶體位址A+1、經預測記憶體位址A+2、經預測記憶體位址A+3以及經預測記憶體位址A+4中的任一者與所請求記憶體位址304匹配,則可生成確認佇列命中信號312。在各種實施例中,確認佇列命中信號312可向圖案預測器電路指示成功預提取已發生。
在一個實施例中,所述確認佇列命中信號312可僅包含二元信號。在另一實施例中,確認佇列命中信號312可包含關於哪一個記憶體元件(例如,元件302-0、元件302-1、元件302-2、元件302-3或元件302-4)包含所請求位址304的資訊。在另一實施例中,確認佇列命中信號312可能未特定地詳述哪些元件包含所請求位址304,但詳述找到所請求位址304的第一(通常唯一)迭代時佇列的深度為多少個元件。在此這實施例中,在找到所請求位址304之前佇列中出現的元件的數目被稱為出現的跳過的數目。
在各種實施例中,在預提取引擎的預測能力方面,跳過計數及匹配元件數目可作為因素列入信賴度306的量度中。在一些實施例中,組態佇列300或預提取引擎可經組態以判定與預提 取預測相關聯的信賴等級306。在這類實施例中,信賴等級306可判定待預提取前面的多少個記憶體位址(即預提取程度)或其他預提取參數,或者在決定上述參數時考慮所述信賴等級。
在所說明的實施例中,信賴等級306可包含跳過322的數目及是否找到匹配(即確認或證實324)。在這類實施例中,確認324可能是信賴等級306的主要決定因素,但其可由跳過322的數目影響。舉例而言,若找到匹配但佇列300必須跳過多個元件以找到所述匹配,則信賴等級306的任何提高可被影響。
在另一實施例中,佇列300可經劃分為第一或較早部分,以及第二或較晚部分。在一個實施例中,第一部分可包含元件302-0及元件302-1,且第二部分可包含元件302-2、元件302-3以及元件302-4。在一個實施例中,所述劃分可以是確認佇列300的大致中間點。在這類實施例中,若直至較晚部分為止並未發生匹配,則只可能認為已發生跳過。在這類實施例中,某一形式的定限可發生在對跳過的分析中。在另一實施例中,可採用跳過中的較細粒度等級(例如,佇列300可劃分為3個或大於3個部分)。應理解,上述僅為少數說明性實例,所揭露主題不受其限制。
在所說明的實施例中,信賴等級306可反饋至預提取邏輯308(例如,圖案預測器電路的部分)。預提取邏輯308可將所述資訊用以改良其對下一預提取位址309的預測。
在各種實施例中,佇列300可採用最大臨限值326或最小臨限值327以判定是否應改變提供至預提取邏輯308的信賴等級306。在一個實施例中,若確認324的數目大於或等於最大臨限值326,則信賴等級306可提高。若確認324的數目小於最小臨限 值327,則信賴等級306可降低。
在各種實施例中,跳過322的數目可包含於臨限值判定中。舉例而言,臨限值判定可基於確認324減去跳過322的存在。在另一實施例中,信賴等級306可僅週期性地更新,且可採用確認324及/或跳過322的計數。應理解,上述僅為少數說明性實例,所揭露主題不受其限制。
圖4為根據所揭露主題的設備400的實例實施例的方塊圖。在各種實施例中,設備400可包含多個確認佇列,或分割為多個佇列的單一記憶體結構。
在所說明的實施例中,預提取引擎可經組態以預提取用於多個指令/資料串流或系列的資料。在這類實施例中,預提取引擎可維持用於每一指令串流的單獨視窗化確認佇列。舉例而言,在所說明的實施例中,可建立或採用視窗化確認佇列402、視窗化確認佇列404、視窗化確認佇列406以及視窗化確認佇列408。
在這類實施例中,每一視窗化確認佇列402、視窗化確認佇列404、視窗化確認佇列406以及視窗化確認佇列408可包含記憶體元件302-0、記憶體元件302-1、記憶體元件302-2、記憶體元件302-3以及記憶體元件302-4的各別變體。此外,在這類實施例中,每一視窗化確認佇列402、視窗化確認佇列404、視窗化確認佇列406以及視窗化確認佇列408可輸出確認命中信號312及信賴度306的各別變體。在各種實施例中,確認命中信號312及信賴度306可經組合,如上文所描述。
在一個實施例中,每一視窗化確認佇列402、視窗化確認佇列404、視窗化確認佇列406以及視窗化確認佇列408可與各別 資料串流(例如,標籤為A、B、C以及D的串流位址)相關聯。在這類實施例中,圖案預測器電路可預測經預測記憶體位址的各別串流或集合,且將那些位址填入視窗化確認佇列402、視窗化確認佇列404、視窗化確認佇列406以及視窗化確認佇列408。舉例而言,視窗化確認佇列402可包含經預測位址A、經預測位址A+1、經預測位址A+2、經預測位址A+3以及經預測位址A+4。視窗化確認佇列404可包含經預測位址B、經預測位址B+1、經預測位址B+2、經預測位址B+3以及經預測位址B+4。視窗化確認佇列406可包含經預測位址C、經預測位址C+1、經預測位址C+2、經預測位址C+3以及經預測位址C+4。視窗化確認佇列408可包含經預測位址D、經預測位址D+1、經預測位址D+2、經預測位址D+3以及經預測位址D+4。
在這類實施例中,由於新的實際記憶體位址經請求(例如,位址304A、位址304B、位址304C以及位址304D),那些所請求記憶體位址將與各別視窗化確認佇列402、視窗化確認佇列404、視窗化確認佇列406以及視窗化確認佇列408匹配。串流的所請求記憶體位址與串流的經預測記憶體位址的匹配(或其缺乏)可用於生成串流的確認命中信號312及信賴度306,如上文所描述。
在各種實施例中,視窗化確認佇列402、視窗化確認佇列404、視窗化確認佇列406以及視窗化確認佇列408可均包含相同深度或條目數目(例如,在所說明的實施例中為5個)。在另一實施例中,每串流的條目數目可變化。在另一實施例中,條目數目或視窗尺寸可動態地經分配於串流開始處。在又一實施例中,條 目數目或視窗尺寸可基於信賴等級或預提取深度來動態地調整。應理解,上述僅為少數說明性實例,所揭露主題不受其限制。
圖5是根據所揭露主題的設備或確認佇列500的實例實施例的方塊圖。在所說明的實施例中,確認佇列500包含6個元件或條目。應理解,上述僅為一個說明性實例,所揭露主題不受其限制。
在各種實施例中,視窗化確認佇列500可自資料的實際預提取分隔或斷開。在一些實施例中,位址(例如,位址A+5)可僅在輸入至啟動佇列中或由啟動佇列請求的同時輸入至確認佇列中。在這類實施例中,視窗化確認佇列500可僅包含已預提取的經預測位址。
在所說明的實施例中,視窗化確認佇列500可包含尚未自記憶體系統提取的位址。在這類實施例中,視窗化確認佇列500可能夠訓練預測器電路,即使所請求位址實際上並未經預提取(例如,歸因於記憶體系統的爭用)亦如此。
在所說明的實施例中,位址A+1(儲存於元件502-1中)、位址A+2(儲存於元件502-2中)、位址A+3(儲存於元件502-3中)以及位址A+4(儲存於元件502-4中)可能實際上已由預取器電路預提取。相反地,位址A+5(儲存於元件502-5中)及位址A+6(儲存於元件502-6中)可能尚未經預提取但可能經預測。在一個實施例中,啟動佇列可能尚未自記憶體系統請求所述位址,或位址甚至可能並未經輸入至啟動佇列中。
在這類實施例中,若實際位址506由LSU請求,則所述位址可與經預測且預提取位址(位址A+1、位址A+2、位址A+3 以及位址A+4)以及經預測但未預提取位址(位址A+5及位址A+6)兩者進行比較。在這類實施例中,視窗化確認佇列500可始終是滿的且可始終允許預測方案的最直接測試及反饋。在這類實施例中,視窗化確認佇列500可能夠維持鎖定在經預測位址上,即使實際需求或位址請求在預提取之前亦如此。
在一個實施例中,視窗化確認佇列500可包含指示經預測位址是否已經預提取的標籤或中繼資料(標籤504-1、標籤504-2、標籤504-3、標籤504-4、標籤504-5以及標籤504-6)。在另一實施例中,可能未採用這些標籤。應理解,上述僅為少數說明性實例,所揭露主題不受其限制。
在一個實施例中,返回至跳過的概念,確認佇列可劃分為較早部分550及較晚部分552。在所說明的實施例中,所述分割為部分550及部分552可與記憶體位址的預提取性質(例如,位址A+4經預提取但仍在較晚部分552中)無關地發生。在另一實施例中,所述部分可基於位址的預提取狀態。應理解,上述僅為少數說明性實例,所揭露主題不受其限制。
圖6為資訊處理系統600的示意性方塊圖,所述資訊處理系統可包含根據所揭露主題的原理形成的半導體裝置。
參見圖6,資訊處理系統600可包含根據所揭露主題的原理建構的裝置中的一或多者。在另一實施例中,資訊處理系統600可採用或執行根據所揭露主題的原理的一或多種技術。
在各種實施例中,資訊處理系統600可包含計算裝置,諸如膝上型電腦、桌上型電腦、工作站、伺服器、刀鋒伺服器、個人數位助理、智慧型電話、平板電腦以及其他適當電腦或其虛 擬機或虛擬計算裝置。在各種實施例中,資訊處理系統600可供使用者(未展示)使用。
根據所揭露主題的資訊處理系統600可更包含中央處理單元(central processing unit;CPU)、邏輯或處理器610。在一些實施例中,處理器610可包含一或多個功能單元區塊(functional unit blocks;FUB)或組合邏輯區塊(combinational logic blocks;CLB)615。在這類實施例中,組合邏輯區塊可包含各種布爾邏輯運算(Boolean logic operation)(例如,NAND、NOR、NOT、XOR)、穩定邏輯裝置(例如,正反器、栓鎖器)、其他邏輯裝置或其組合。這些組合邏輯運算可以簡單或複雜方式組態以處理輸入信號從而達成所需結果。應理解,雖然描述了同步組合邏輯運算的少數說明性實例,但所揭露主題不限於此且可包含異步運算或其混合。在一個實施例中,組合邏輯運算可包括多個互補金屬氧化物半導體(complementary metal oxide semiconductors;CMOS)電晶體。在各種實施例中,可將這些CMOS電晶體佈置為執行邏輯運算的閘;但應理解,可使用其他技術且其他技術在所揭露主題的範疇內。
根據所揭露主題的資訊處理系統600可更包含揮發性記憶體620(例如,隨機存取記憶體(Random Access Memory;RAM))。根據所揭露主題的資訊處理系統600可更包含非揮發性記憶體630(例如,硬碟機、光學記憶體、NAND或快閃記憶體)。在一些實施例中,揮發性記憶體620、非揮發性記憶體630或其組合或部分可被稱作「儲存媒體」。在各種實施例中,揮發性記憶體620及/或非揮發性記憶體630可經組態以按半永久性或實質上永 久性形式儲存資料。
在各種實施例中,資訊處理系統600可包含經組態以允許資訊處理系統600成為通信網路的部分且經由通信網路通信的一或多個網路介面640。Wi-Fi協定的實例可包含(但不限於)電機電子工程師學會(Institute of Electrical and Electronics Engineers;IEEE)802.11g、IEEE 802.11n。蜂巢協定的實例可包含(但不限於):IEEE 802.16m(亦稱為進階無線都會區域網路(Metropolitan Area Network;MAN)、進階長期演進(Long Term Evolution;LTE)、全球行動通信系統增強資料速率演進(Enhanced Data rates for Global System for Mobile Communications(GSM)Evolution;EDGE)、演進型高速封包存取(Evolved High-Speed Packet Access;HSPA+)。有線協定的實例可包含(但不限於)IEEE 802.3(亦稱為乙太網)、光纖通道、電力線通信(例如,家用電力線網絡聯盟(HomePlug)、IEEE 1901)。應理解,上述僅為少數說明性實例,所揭露主題不受其限制。
根據所揭露主題的資訊處理系統600可更包含使用者介面單元650(例如,顯示適配器、觸感介面、人類介面裝置)。在各種實施例中,所述使用者介面單元650可經組態以接收來自使用者的輸入及/或向使用者提供輸出。其他種類的裝置亦可用以提供與使用者的互動;例如,提供給使用者的反饋可為任何形式的感官反饋(例如,視覺反饋、聽覺反饋或觸覺反饋);且來自使用者的輸入可以任何形式接收,包含聲學、語音或觸覺輸入。
在各種實施例中,資訊處理系統600可包含一或多個其他裝置或硬體組件660(例如,顯示器或監測器、鍵盤、鼠標、攝 影機、指紋讀取器、視訊處理器)。應理解,上述僅為少數說明性實例,所揭露主題不受其限制。
根據所揭露主題的資訊處理系統600可更包含一或多個系統匯流排605。在這類實施例中,系統匯流排605可經組態以用通信方式耦接處理器610、揮發性記憶體620、非揮發性記憶體630、網路介面640、使用者介面單元650以及一或多個硬體組件660。由處理器610處理的資料或自非揮發性記憶體630外部輸入的資料可儲存於非揮發性記憶體630或揮發性記憶體620中。
在各種實施例中,資訊處理系統600可包含或執行一或多個軟體組件670。在一些實施例中,軟體組件670可包含作業系統(operating system;OS)及/或應用程式。在一些實施例中,OS可經組態以向應用程式提供一或多個服務且管理或充當應用程式與資訊處理系統600的不同硬體組件(例如,處理器610、網路介面640)之間的中間物。在這類實施例中,資訊處理系統600可包含一或多個本機應用程式,所述本機應用程式可在本地安裝(例如,在非揮發性記憶體630內)且經組態以由處理器610直接執行且與OS直接交互。在這類實施例中,本機應用程式可包含預編譯的機器可執行程式碼。在一些實施例中,本機應用程式可包含指令碼解譯器(例如,C shell(csh)、AppleScript、AutoHotkey等)或虛擬執行機器(virtual execution machine;VM)(例如,Java 虛擬機、微軟通用語言運行平台(Microsoft Common Language Runtime)),所述應用程式經組態以將源程式碼或目標程式碼轉譯為可執行程式碼,接著由處理器610執行。
可使用各種封裝技術來囊封上文所描述的半導體裝置。 舉例而言,根據所揭露主題的原理建構的半導體裝置可使用下述者中的任一者來囊封:疊層封裝(package on package;POP)技術、球狀柵格陣列(ball grid arrays;BGA)技術、晶片尺度封裝(chip scale packages;CSP)技術、塑膠引線晶片載體(plastic leaded chip carrier;PLCC)技術、塑膠雙排封裝(plastic dual in-line package;PDIP)技術、窩伏爾組件晶粒(die in waffle pack)技術、晶片形式晶粒(die in wafer form)技術、板上晶片(chip on board;COB)技術、陶瓷雙排封裝(ceramic dual in-line package;CERDIP)技術、塑膠量度四邊扁平封裝(plastic metric quad flat package;PMQFP)技術、塑膠四邊扁平封裝(plastic quad flat package;PQFP)技術、小型封裝(small outline package;SOIC)技術、縮減小型封裝(shrink small outline package;SSOP)技術、薄型小型封裝(thin small outline package;TSOP)技術、薄四邊扁平封裝(thin quad flat package;TQFP)技術、系統級封裝(system in package;SIP)技術、多晶片封裝(multi-chip package;MCP)技術、晶片層級製造封裝(wafer-level fabricated package;WFP)技術、晶片層級處理堆疊封裝(wafer-level processed stack package;WSP)技術,或本領域的技術人員已知的其他技術。
方法步驟可由一或多個可程式化處理器執行,所述可程式化處理器執行電腦程式以藉由操作輸入資料及生成輸出來執行功能。方法步驟亦可由專用邏輯電路執行,且設備可實施為專用邏輯電路,所述專用邏輯電路例如場可程式化閘陣列(field programmable gate array;FPGA)或特殊應用積體電路(application-specific integrated circuit;ASIC)。
在各種實施例中,電腦可讀媒體可包含在經執行時使得裝置執行方法步驟中的至少一部分的指令。在一些實施例中,電腦可讀媒體可包含於磁性媒體、光學媒體、其他媒體或其組合中(例如,CD-ROM、硬碟機、唯讀記憶體、隨身碟)。在這類實施例中,電腦可讀媒體可為有形及非暫時性地體現的製品。
雖然已參考實例實施例描述所揭露主題的原理,但本領域的技術人員將顯而易見,可在不偏離這些所揭露概念的精神及範疇的情況下對所揭露主題的作出各種改變及修改。因此,應理解,以上實施例並非限制性的,而僅為說明性的。因此,所揭露概念的範疇應藉由以下申請專利範圍以及其等效物的最廣泛容許解譯來判定,且不應受前述描述約束或限制。因此,應理解,所附申請專利範圍意欲涵蓋如屬於實施例的範疇內的所有這類修改及改變。
100:系統
101:位址
102:重排序佇列
103:經預測記憶體位址
104:訓練表
105:所請求記憶體位址
106:圖案預測器電路
108:圖案偵測器單元或電路
110:圖案表
112:啟動佇列
113:經啟動或預測的預提取位址
114:確認佇列
190:記憶體系統

Claims (20)

  1. 一種確認佇列的設備,包括:快取預取器,經組態以預測待自記憶體系統擷取的資料;所述快取預取器包括:圖案預測器電路,經組態以預測待自所述記憶體系統預提取的一系列的記憶體位址,以及確認佇列電路,經組態以:維持經預測記憶體位址的視窗化確認佇列,比較所請求記憶體位址與所述預測記憶體位址,以及在所述所請求記憶體位址包含於經預測的所述記憶體位址中的情況下,指示成功預提取已發生,並動態地自所述視窗化確認佇列中移除所述所請求記憶體位址,為新的經預測記憶體位址釋放空間。
  2. 如申請專利範圍第1項所述之設備,其中所述視窗化確認佇列包含至預定義的多個經預測記憶體位址,以及其中所述確認佇列電路經組態以,在由所述圖案預測器電路預測的未完成記憶體位址的數目大於所述預定義的多個經預測記憶體位址的數目的情況下,制止再將記憶體位址添加至所述視窗化確認佇列。
  3. 如申請專利範圍第1項所述之設備,其中所述確認佇列電路經組態以,在所述所請求記憶體位址包含於經預測的所述記憶體位址中的情況下:自所述視窗化確認佇列移除所述所請求記憶體位址;自所述視窗化確認佇列移除比所請求記憶體位址更早預測的 記憶體位址;以及藉由重新預測先前由所述圖案預測器電路預測但未添加至所述視窗化確認佇列的記憶體位址來再充填所述視窗化確認佇列。
  4. 如申請專利範圍第1項所述之設備,其中所述確認佇列電路經組態以:維持多個視窗化確認佇列,各自用於各別位址串流,比較位址串流的所請求記憶體位址與關聯於所述位址串流的視窗化確認佇列;以及向所述圖案預測器電路指示所述比較的結果。
  5. 如申請專利範圍第1項所述之設備,其中所述確認佇列電路經組態以:將所述視窗化確認佇列劃分為較早部分及較晚部分;判定所述所請求記憶體位址是否包含於經預測的所述記憶體位址中,且若是,包含於所述較早部分或所述較晚部分;基於所述較早部分或所述較晚部分包含所述經預測記憶體位址來調整所述預測的信賴度。
  6. 如申請專利範圍第1項所述之設備,其中所述確認佇列電路經組態以:若存在在所述所請求記憶體位址與經預測的所述記憶體位址中的一者匹配之前跳過的經預測記憶體位址,判定跳過的經預測記憶體位址的數目;至少部分地基於跳過的經預測記憶體位址的數目來降低成功提取的信賴等級。
  7. 如申請專利範圍第6項所述之設備,其中所述確認佇列 電路經組態以:對成功預測的數目進行計數;以及在成功預測的所述數目超出預定義臨限值的情況下,指示信賴等級提高。
  8. 如申請專利範圍第7項所述之設備,其中所述確認佇列電路經組態以:至少部分地基於跳過的經預測記憶體位址的數目來調整成功預測的數目。
  9. 如申請專利範圍第1項所述之設備,其中所述確認佇列電路經組態以:對於經預測的所述記憶體位址中的每一者,維持指示各別經預測記憶體位址是否已經預提取的標籤。
  10. 如申請專利範圍第1項所述之設備,其中所述確認佇列電路經組態以儲存經預測記憶體位址,即使經預測的所述記憶體位址尚未自所述記憶體系統預提取。
  11. 一種確認佇列的方法,包括:預測待自記憶體系統預提取的一系列的記憶體位址;維持經預測記憶體位址的視窗化確認佇列;比較所請求記憶體位址與所述經預測記憶體位址,以及在所述所請求記憶體位址包含於所述經預測記憶體位址中的情況下,指示成功預提取已發生,並動態地自所述視窗化確認佇列中移除所述所請求記憶體位址,為新的經預測記憶體位址釋放空間。
  12. 如申請專利範圍第11項所述之方法,其中所述視窗化 確認佇列包含至預定義的多個經預測記憶體位址,以及其中維持包括:在由圖案預測器電路預測的未完成記憶體位址的數目大於所述預定義的多個經預測記憶體位址的數目的情況下,制止再將記憶體位址添加至所述視窗化確認佇列。
  13. 如申請專利範圍第12項所述之方法,其中維持更包括:將經預測記憶體位址添加至所述視窗化確認佇列,即使所述經預測記憶體位址尚未自所述記憶體系統預提取。
  14. 如申請專利範圍第13項所述之方法,其中維持包括:使標籤與每一各別經預測記憶體位址相關聯,其中所述標籤指示所述各別經預測記憶體位址是否已至少部分地自所述記憶體系統預提取。
  15. 如申請專利範圍第11項所述之方法,其中在所述所請求記憶體位址包含於所述經預測記憶體位址中的情況下:自所述視窗化確認佇列移除所述所請求記憶體位址;自所述視窗化確認佇列移除比所述所請求記憶體位址更早預測的記憶體位址;以及藉由重新預測先前由所述圖案預測器電路預測但未添加至所述視窗化確認佇列的記憶體位址來再充填所述視窗化確認佇列。
  16. 如申請專利範圍第11項所述之方法,其中維持包括維持多個視窗化確認佇列,各自用於各別位址串流;其中比較包括比較位址串流的所述所請求記憶體位址與關聯於所述位址串流的視窗化確認佇列;以及 其中指示包括向所述圖案預測器電路指示所述比較的結果。
  17. 如申請專利範圍第11項所述之方法,其中比較包括:將所述視窗化確認佇列劃分為較早部分及較晚部分,以及判定所述所請求記憶體位址是否包含於所述經預測記憶體位址中,且若是,包含於所述較早部分或所述較晚部分;以及其中指示包括基於所述較早部分或所述較晚部分包含所述經預測記憶體位址來調整所述預測的信賴度。
  18. 如申請專利範圍第11項所述之方法,其中比較包括:對成功預測的數目進行計數;以及在成功預測的所述數目超出預定義臨限值的情況下,判定信賴等級提高。
  19. 如申請專利範圍第11項所述之方法,其中比較包括:若存在在所述所請求記憶體位址與經預測的所述記憶體位址中的一者匹配之前跳過的經預測記憶體位址,判定跳過的經預測記憶體位址的數目;以及指示包括至少部分地基於跳過的經預測記憶體位址的所述數目來降低成功提取的信賴等級。
  20. 如申請專利範圍第19項所述之方法,其中指示包括至少部分地基於跳過的經預測記憶體位址的所述數目來調整成功預測的數目。
TW107110172A 2017-05-12 2018-03-26 確認佇列的設備及其方法 TWI759449B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762505836P 2017-05-12 2017-05-12
US62/505,836 2017-05-12
US15/665,401 US10387320B2 (en) 2017-05-12 2017-07-31 Integrated confirmation queues
US15/665,401 2017-07-31

Publications (2)

Publication Number Publication Date
TW201901441A TW201901441A (zh) 2019-01-01
TWI759449B true TWI759449B (zh) 2022-04-01

Family

ID=64097878

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107110172A TWI759449B (zh) 2017-05-12 2018-03-26 確認佇列的設備及其方法

Country Status (4)

Country Link
US (1) US10387320B2 (zh)
KR (1) KR102513446B1 (zh)
CN (1) CN108874689B (zh)
TW (1) TWI759449B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084122B (zh) * 2019-09-30 2021-09-28 成都海光微电子技术有限公司 计算机存储器中对区域预取器的置信度和侵略性控制
GB2593484B (en) * 2020-03-24 2022-09-28 Advanced Risc Mach Ltd Memory management
KR20220035568A (ko) 2020-09-14 2022-03-22 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20220117998A (ko) 2021-02-18 2022-08-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
WO2023129316A1 (en) * 2021-12-31 2023-07-06 SiFive, Inc. Prefetcher with out-of-order filtered prefetcher training queue
CN114358179A (zh) * 2021-12-31 2022-04-15 海光信息技术股份有限公司 处理器的预取训练方法、处理装置、处理器和计算设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200508964A (en) * 2003-06-10 2005-03-01 Advanced Micro Devices Inc Load store unit with replay mechanism
US20060179238A1 (en) * 2005-02-10 2006-08-10 Griswell John B Jr Store stream prefetching in a microprocessor
US20140149678A1 (en) * 2012-11-27 2014-05-29 Nvidia Corporation Using cache hit information to manage prefetches
CN105279105A (zh) * 2014-07-17 2016-01-27 三星电子株式会社 用于调整预取流的程度的自适应机制
TW201631479A (zh) * 2014-12-14 2016-09-01 上海兆芯集成電路有限公司 多個資料預取器根據記憶體存取類型的預取效益聽從其他預取器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134633A (en) 1997-10-31 2000-10-17 U.S. Philips Corporation Prefetch management in cache memory
US6654837B1 (en) 1999-12-28 2003-11-25 Intel Corporation Dynamic priority external transaction system
JP4067887B2 (ja) 2002-06-28 2008-03-26 富士通株式会社 プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法
US7127574B2 (en) 2003-10-22 2006-10-24 Intel Corporatioon Method and apparatus for out of order memory scheduling
US20060143401A1 (en) 2004-12-27 2006-06-29 Jacob Doweck Method and apparatus for prefetching based on cache fill buffer hits
US20060248280A1 (en) 2005-05-02 2006-11-02 Al-Sukhni Hassan F Prefetch address generation implementing multiple confidence levels
US8122222B2 (en) * 2008-04-18 2012-02-21 International Business Machines Corporation Access speculation predictor with predictions based on a scope predictor
US8397049B2 (en) 2009-07-13 2013-03-12 Apple Inc. TLB prefetching
US9098418B2 (en) 2012-03-20 2015-08-04 Apple Inc. Coordinated prefetching based on training in hierarchically cached processors
US9390018B2 (en) * 2012-08-17 2016-07-12 Advanced Micro Devices, Inc. Data cache prefetch hints
US20150199276A1 (en) * 2014-01-13 2015-07-16 Samsung Electronics Co., Ltd. Pre-fetch confirmation queue

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200508964A (en) * 2003-06-10 2005-03-01 Advanced Micro Devices Inc Load store unit with replay mechanism
US20060179238A1 (en) * 2005-02-10 2006-08-10 Griswell John B Jr Store stream prefetching in a microprocessor
US20140149678A1 (en) * 2012-11-27 2014-05-29 Nvidia Corporation Using cache hit information to manage prefetches
CN105279105A (zh) * 2014-07-17 2016-01-27 三星电子株式会社 用于调整预取流的程度的自适应机制
TW201631479A (zh) * 2014-12-14 2016-09-01 上海兆芯集成電路有限公司 多個資料預取器根據記憶體存取類型的預取效益聽從其他預取器

Also Published As

Publication number Publication date
KR102513446B1 (ko) 2023-03-23
CN108874689B (zh) 2023-12-12
US10387320B2 (en) 2019-08-20
CN108874689A (zh) 2018-11-23
US20180329821A1 (en) 2018-11-15
KR20180124708A (ko) 2018-11-21
TW201901441A (zh) 2019-01-01

Similar Documents

Publication Publication Date Title
TWI759449B (zh) 確認佇列的設備及其方法
US20210311856A1 (en) Backward compatibility testing of software in a mode that disrupts timing
TWI545435B (zh) 於階層式快取處理器中之協調預取
US8667225B2 (en) Store aware prefetching for a datastream
KR102424121B1 (ko) 프리-페치 유닛, 그것을 포함하는 장치 및 그것의 동작 방법
US20170371720A1 (en) Multi-processor apparatus and method of detection and acceleration of lagging tasks
US8196147B1 (en) Multiple-processor core optimization for producer-consumer communication
EP3724775B1 (en) Cache control aware memory controller
KR102393151B1 (ko) 데이터의 액세스를 예측하는 장치, 그것의 동작 방법 및 그것을 포함하는 시스템
US20090216956A1 (en) System, method and computer program product for enhancing timeliness of cache prefetching
WO2015009376A1 (en) Access map-pattern match based prefetch unit for a processor
US10303608B2 (en) Intelligent data prefetching using address delta prediction
TWI774703B (zh) 偵測與處理儲存串流的系統與方法
US20160117250A1 (en) Apparatus and Method of Throttling Hardware Pre-fetch
CN109753444B (zh) 用以避免负载填充冲突的设备以及系统
US9734072B2 (en) Main memory prefetch operation and multiple prefetch operation
KR102676704B1 (ko) 메모리 시스템에 데이터 스트림을 쓰기 위한 방법, 장치 및 시스템 온 칩
KR20170024529A (ko) 메모리 시스템에 데이터 스트림을 쓰기 위한 방법, 장치 및 시스템 온 칩