TW201435727A - 微處理器及其操作方法 - Google Patents
微處理器及其操作方法 Download PDFInfo
- Publication number
- TW201435727A TW201435727A TW102125024A TW102125024A TW201435727A TW 201435727 A TW201435727 A TW 201435727A TW 102125024 A TW102125024 A TW 102125024A TW 102125024 A TW102125024 A TW 102125024A TW 201435727 A TW201435727 A TW 201435727A
- Authority
- TW
- Taiwan
- Prior art keywords
- prefetcher
- storage area
- algorithm
- microprocessor
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
微處理器包括第一預取器和第二預取器,它們被配置為根據不同的第一演算法和第二演算法將資料分別預取到微處理器。第二預取器被配置為檢測在儲存區域內的記憶體存取模式,並根據第二演算法從儲存區域預取資料。第二預取器還被配置為將儲存區域的描述符提供給第一預取器。當從第二預取器接收到儲存區域的描述符時,第一預取器被配置為停止從儲存區域預取資料。
Description
本發明係有關於一種微處理器,特別是有關於一種具有兩預取器的微處理器。
當快取記憶體失效(cache miss)時,微處理器將存取系統記憶體以取代存取快取記憶體,而此時需要的時間將比存取快取記憶體、預取緩衝器或在微處理器本身內部的其他記憶體元件需要的時間多一或兩個數量級。因此,為了減小它們的存取延遲,微處理器整合了預取技術(prefetching techniques),其係檢查最近的資料存取模式且嘗試預測程式下一步將存取哪個資料。
預取的好處是眾所周知的。然而,預取亦可能存有不好的效應。例如,每個預取請求會佔用匯流排和記憶體的可能已經擁塞的帶寬,此預取請求進行在處理器匯流排至記憶體之間。另外,預取請求可能延遲針對更迫切需要的資料的另一請求。再比如說,如果資料被預取到快取記憶體,則此預取的資料會使用一快取記憶體線,如此將引起快取記憶體中的另一快取記憶體線的驅逐(Eviction)。如果快取記憶體線的被驅逐頻率高於快取記憶體線的被預取的頻率,則此預取很可能對整體性能是有害的而非有利。因此,需要的是改善的資料預取機
制。
在一個方面中,本發明提供微處理器。所述微處理器包括被配置為根據第一演算法將資料預取到微處理器的第一預取器以及被配置為根據第二演算法將資料預取到微處理器的第二預取器。第一演算法與第二演算法不同。第二預取器被配置為檢測在儲存區域內的記憶體存取模式並根據第二演算法從儲存區域預取資料。第二預取器還被配置為將儲存區域的描述符提供給第一預取器。當從第二預取器接收到儲存區域的描述符時,第一預取器被配置為停止從儲存區域預取資料。
在另一方面中,本發明提供一種微處理器的操作方法。該方法包括:第一預取器根據第一演算法將資料預取到微處理器。該方法也包括:第二預取器檢測在儲存區域內的記憶體存取模式並根據第二演算法從儲存區域預取資料。第一演算法與第二演算法不同。該方法也包括:第二預取器將儲存區域的描述符提供給第一預取器。該方法也包括:從第二預取器接收到儲存區域的描述符通過第一預取器停止從儲存區域預取資料。
為讓本發明之特徵和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下:
100‧‧‧微處理器
102‧‧‧指令快取記憶體
104‧‧‧指令解碼器
106‧‧‧暫存器別名表
108‧‧‧保留站
112‧‧‧執行單元
114‧‧‧回退單元
116‧‧‧L1資料快取記憶體
118‧‧‧L2快取記憶體
122‧‧‧匯流排介面單元
124‧‧‧預取單元
134‧‧‧載入/儲存單元
132‧‧‧執行單元
142、144‧‧‧預取器
146‧‧‧溝通信號
148‧‧‧處理器匯流排
202、204、206、208、212、214‧‧‧步驟
第1圖係為微處理器的一可能方塊圖;
第2圖係為第1圖所示的微處理器中第一預取器和第二預取器的溝通操作的流程圖。
請參照第1圖,其繪示出微處理器100的方塊圖。
微處理器100包括管線階段,其包括各種功能單元。管線包括指令快取記憶體(Instruction Cache)102,指令快取記憶體102耦合到指令解碼器(Instruction Decoder)104,指令解碼器104耦合到暫存器別名表(Register Alias Table,RAT)106,暫存器別名表(RAT)106耦合到保留站108(Reservation station),保留站108耦合到執行單元112,執行單元112耦合到回退單元(Retire unit)114。指令解碼器104可以包括指令翻譯器,其將(如,x86架構的)巨集指令翻譯成微處理器100的類似RISC的微架構的微指令集。保留站108將指令發佈給執行單元112用於不按程式順序的執行。回退單元114包括重新排序緩衝器,以程式順序執行指令的回退(retirement)。執行單元112包括載入/儲存單元134和其他執行單元132,比如整數單元、浮點單元、分支單元或單指令多重資料資料(SIMD)單元。載入/儲存單元134從級別-1(L1)資料快取記憶體116讀取資料且儲存單元134將資料寫入L1資料快取記憶體116。級別-2(L2)快取記憶體118支援(back)L1資料快取記憶體116和指令快取記憶體102。L2快取記憶體118經由匯流排介面單元122讀取和寫入系統記憶體,所述匯流排介面單元122將微處理器100介面連接到系統記憶體(未繪示)所耦合的匯流排148,比如區域匯流排或儲存匯流排。微處理器100還包括預取單元124,其將資料從
系統記憶體預取到所述的L2快取記憶體118和/或L1資料快取記憶體116中。
預取單元124包括第一預取器142和第二預取器
144。資料預取器,比如第一預取器142和第二預取器144,是將資料預取到微處理器的裝置。將資料預取到微處理器意味著檢查微處理器正在執行的程式所產生的記憶體的存取流,基於檢查到的存取流預測在不久的將來程式將要存取的資料的一個或多個位置,並將資料從預測的一個或多個位置預取到微處理器(希望在程式請求該資料之前)。記憶體的存取流可以是讀取或寫入資料的兩個或多個請求,其中兩個或多個請求中的每個請求會指定在記憶體中的儲存位址,此儲存位址為可識別資料的位置。值得一提的是,第一預取器142和第二預取器144經由溝通信號146相互溝通以便潛在地改善預取單元124的預取有效性以及所伴隨的包括微處理器100和系統記憶體的系統的整體性能。特別地,在第一預取器142和第二預取器144之間的溝通可以導致處理器匯流排148和/或系統記憶體以及快取記憶體記憶體116/118的帶寬更有效的利用。
資料預取器,比如第一預取器142和第二預取器
144,可根據一演算法來進行預取,該演算法是用來預測預備預取的資料的一個或多個位置。例如,簡單的演算法是下一個順序的演算法,該演算法根據預取器檢查程式流中記憶體存取的位置,並預測程式將從下一個順序的位置存取資料。(一般來說,整個快取記憶體線會被預取到微處理器的快取記憶體中。因此,預取器預備預取的資料其儲存位置,會與程式存取
指定的資料的儲存位置相鄰。)下一個順序的快取記憶體線可以處於在記憶體中從程式流存取的位置其向上方向或向下方向。預取器可以查看程式流中兩個相鄰的存取以確定向上或向下的方向。再如,根據步幅檢測演算法,預取器可以檢測在時間上,相鄰的記憶體的存取流之間的步幅模式,並基於步幅模式進行預測。也就是說,預取器尋找在時間上相鄰的記憶體存取之間的間隔距離,且預測後面的程式存取將來自彼此的距離為該間隔距離的位置。例如,預取器可以看到存取位置4、8和12的存取流,並檢測為4的間隔距離以及預測下一個存取將在位置16。使用更複雜的步幅演算法的預取器可以檢測出現在一個模式中具有不同間隔距離的流。例如,預取器可以看到存取位置4、8、10、14和16的存取流,並檢測為4的第一間隔距離和為2的第二間隔距離以及預測下兩個存取將在位置20和22。
再比如說,可以使用預取器用來檢測在儲存塊內的、相對獨立於存取發生的時間順序的記憶體存取模式的演算法。在實際上根據2011年2月24日提交的美國專利申請第13/033,765號描述的“邊界框預取器”中使用這樣的演算法的例子,該美國專利申請要求美國臨時申請第61/318,594號的優先權且在2011年9月29日被公佈,美國專利公開號為2011/0238922,這裏透過引用將其全部公開內容結合於此。第一預取器142和第二預取器144使用不同的預取演算法。
現在請參照第2圖,更特別的是,其繪示出第1圖
的微處理器100、第一預取器142和第二預取器144的溝通操作的流程圖。流程以步驟202和204開始。
在步驟202,第一預取器142根據第一演算法預取
資料。例如,第一預取器142檢查載入/儲存單元134、L1資料快取記憶體116和/或L2快取記憶體118產生的記憶體的存取流,並根據第一演算法將資料從系統記憶體預取到微處理器100。較佳的是,第一存取器142產生到匯流排介面單元122的請求,以將資料從系統記憶體讀取到L1資料快取記憶體116、L2快取記憶體118或預取緩衝器(未顯示)。流程進入步驟204。
在步驟204,第二預取器144預取資料,與在步驟
202的第一預取器142類似;然而,第二預取器144根據與第一預取器142使用的第一演算法不同的第二演算法進行預取。較佳的是,第二預取器144使用的第二演算法比第一預取器142使用的第一演算法更複雜且因此能夠預測更複雜的記憶體存取模式。例如,第二預取器144可以使用與在上述美國專利申請第13/033,765號中描述的演算法類似的預取演算法。第二預取器144檢測在儲存區域內的記憶體存取模式,並且第二預取器144根據第二演算法從儲存區域預取資料。在一個實施例中,儲存區域是如微處理器的虛擬儲存能力(virtual memory capability)定義的儲存頁面(memory page)。透過儲存頁面的尺寸以及儲存頁面與其尺寸對齊的事實來描述儲存頁面。例如,一實施例為考慮儲存頁面的尺寸是4KB且對齊4KB位址邊界上,然而,亦可以使用其他頁面尺寸於其他實施例中。此外,第二演算法除了儲存頁面之外還可以使用儲存區域(memory region)。熟知技術人員應該理解雖然步驟202和204在第2圖中以相繼的順序出現,但第一預取器142和第二預取器144較佳的
是分別根據它們的第一演算法和第二演算法同時地操作以從系統記憶體預取資料。也應該理解第二預取器144檢查的記憶體的存取流可以與第一預取器142檢查的存取流不同。此外,第一預取器對應的第一存取流和第二預取器對應的第二存取流可以是相同。另外,第一存取流和第二存取流中的每個記憶體存取指定虛擬儲存位址。流程進入步驟206。
在206,第二預取器144將步驟204的儲存區域的描
述符(descriptor)提供給第一預取器142。發送儲存區域描述符作為給第一預取器142的通知以停止從儲存區域預取。較佳的是,記憶體描述符包括儲存位址。在一個實施例中,儲存區域描述符還可以包括儲存區域的尺寸,而在其他實施例中,尺寸是預定的,如,預定的尺寸是虛擬儲存系統支援的最小儲存頁面的尺寸。預定的尺寸可以是可編程的,如,透過BIOS、作業系統或其他軟體,如,經由微處理器100的可編程暫存器(如,模型特定的暫存器),或者透過專注於這樣的目的的微處理器100的熔化的熔絲。流程進入步驟208。
在步驟208,第一預取器142接收在步驟206第二預
取器144提供的儲存區域描述符並停止從儲存區域預取。第一預取器142包括記憶元件以及邏輯,所述記憶元件用於對儲存區域描述符進行儲存,所述的邏輯確定第一演算法所預測的資料其應該從其中被預取的儲存位置是否在儲存區域內。在一個實施例中,第二預取器144能夠使用同時用於多個儲存區域的第二預取演算法並且能夠將多個儲存區域描述符發送給第一預取器142,所述第一預取器142包括儲存多個儲存區域描述符
的多個記憶元件和關聯的邏輯。較佳的是,即使當第一預取器142被阻止在儲存區域中預取時,第一預取器142仍繼續監控記憶體存取,使得如果第二預取器144告訴它再次開始從儲存區域預取(如下面參照步驟214所述的)時,它可以基於最新的記憶體存取歷史記錄這樣做。流程進入步驟212。
在步驟212,第二預取器144在預測程式在儲存區
域中所形成的記憶體存取模式的結果上失去可信度(lose confidence),而告訴第一預取器142重新開始從儲存區域預取。在一個實施例中,如果第二預取器144已經在步驟204檢測到在儲存區域中的記憶體存取模式,但第二預取器144檢測到接下來在儲存區域中的存取流的記憶體存取模式不是預料的模式,則第二預取器144失去預測可信度。在一個實施例中,在第二預取器144失去預測可信度之前,第二預取器後來檢測到,到儲存區域的記憶體存取其預定數量不屬於所述的記憶體存取模式。與關於步驟206的上述方式類似,所述預定數量可以是可編程的。較佳的是,當存取流已經離開原本預測的儲存區域時,(例如,存取流已經成為了預定的、較佳的是可編程的多個不在儲存區域內的存取時),第二預取器就告訴第一預取器142重新開始從儲存區域預取。流程進入步驟214。
在步驟214,第一預取器142回應於在步驟212從第
二預取器144接收溝通,根據第一演算法重新開始從儲存區域預取。流程在步驟214結束。
儘管這裏已經描述了本發明的各種實施例,但應
該理解它們是作為例子而非作為限制被展示的。對於相關電腦
領域的技術人員來說很明顯,在不脫離本發明的範圍的情況下,可以在其中做出形式和細節上的各種變化。例如,軟體可以使能這裏描述的裝置和方法的例如函數、構造、建模、仿真、描述和/或測試。這可以通過利用一般的編程語言(如,C,C++)、包括Verilog HDL、VHDL等等的硬體描述語言(HDL)或其他可用的程式實現。這樣的軟體可以安排在任何已知的電腦可用的媒介中,如磁帶、半導體、磁片或光碟(如,CD-ROM、DVD-ROM、等)、網路、導線或其他溝通媒介。這裏描述的裝置和方法的實施例可以被包括在半導體知識產權核心中,如微處理器核心(如,以HDL具體實現或被指定)並被轉變成在積體電路的生產中的硬體。另外,這裏描述的裝置和方法可以具體實現為硬體和軟體的結合。因此,本發明不應該受限於這裏描述的任何示例實施例,但應該僅依照下述權利要求及它們的等價物來被定義。特別地,本發明能在通用電腦中可以使用的微處理器設備內執行。最後,本領域技術人員應該理解在不脫離所附的權利要求書所定義的本發明的範圍的情況下,他們可以容易地使用該公開的構思和特定的實施例作為設計或修改完成本發明的同樣目的的其他結構的基礎。
100‧‧‧微處理器
102‧‧‧指令快取記憶體
104‧‧‧指令解碼器
106‧‧‧暫存器別名表
108‧‧‧保留站
112‧‧‧執行單元
114‧‧‧回退單元
116‧‧‧L1資料快取記憶體
118‧‧‧L2快取記憶體
122‧‧‧匯流排介面單元
124‧‧‧預取單元
134‧‧‧載入/儲存單元
132‧‧‧執行單元
142、144‧‧‧預取器
146‧‧‧溝通信號
148‧‧‧處理器匯流排
Claims (14)
- 一種微處理器,包括:一第一預取器,其被配置為根據一第一演算法將資料預取到該微處理器;以及一第二預取器,其被配置為根據一第二演算法將資料預取到該微處理器,其中該第一演算法與該第二演算法不同;其中該第二預取器被配置為檢測在一儲存區域內的一記憶體存取模式並根據該第二演算法從該儲存區域預取資料;其中該第二預取器還被配置為將該儲存區域的一描述符提供給該第一預取器;其中當從該第二預取器接收到該儲存區域的該描述符時,該第一預取器被配置為停止從該儲存區域預取資料。
- 如申請專利範圍第1項所述之微處理器,其中該儲存區域是根據微該處理器的一虛擬儲存系統的一儲存頁面。
- 如申請專利範圍第1項所述之微處理器,其中該第二預取器還被配置為將重新開始根據該第一演算法從該儲存區域預取資料的一溝通提供給該第一預取器。
- 如申請專利範圍第3項所述之微處理器,其中該第二預取器被配置為當該第二預取器後來檢測到,到該儲存區域的該記憶體存取的一預定數量不屬於該記憶體存取模式時,將該溝通提供給該第一預取器。
- 如申請專利範圍第4項所述之微處理器,其中到該儲存區域的該記憶體存取的該預定數量是可編程的。
- 如申請專利範圍第1項所述之微處理器,其中該第一預取器 和該第二預取器分別對應於該記憶體存取的一第一存取流和一第二存取流,並且分別根據該第一演算法和該第二演算法預取資料。
- 如申請專利範圍第6項所述之微處理器,其中該記憶體存取的該第一存取流和該第二存取流相同。
- 如申請專利範圍第6項所述之微處理器,其中在該第一存取流和該第二存取流中的每個記憶體存取指定一虛擬儲存位址。
- 一種操作方法,適用於一微處理器,包括:透過一第一預取器,根據一第一演算法將資料預取到該微處理器;透過一第二預取器檢測在一儲存區域內的一記憶體存取模式並根據一第二演算法從該儲存區域預取資料,其中該第一演算法與該第二演算法不同;透過該第二預取器將該儲存區域的一描述符提供給該第一預取器;以及從該第二預取器接收到該儲存區域的該描述符透過該第一預取器停止從該儲存區域預取資料。
- 如申請專利範圍第9項所述之操作方法,其中該儲存區域是根據該微處理器的一虛擬儲存系統的一儲存頁面。
- 如申請專利範圍第9項所述之操作方法,其中該第二預取器還被配置為將重新開始根據該第一演算法從該儲存區域預取資料的一溝通提供給該第一預取器。
- 如申請專利範圍第11項所述之操作方法,其中該第二預取 器被配置為當該第二預取器後來檢測到,到該儲存區域的該記憶體存取的一預定數量不屬於該記憶體存取模式時,將該溝通提供給該第一預取器。
- 如申請專利範圍第12項所述之操作方法,其中到該儲存區域的該記憶體存取的該預定數量的是可編程的。
- 如申請專利範圍第9項所述之操作方法,其中該第一預取器和該第二預取器分別對應於該記憶體存取的一第一存取流和一第二存取流,並且分別根據該第一演算法和該第二演算法預取資料。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/792,428 US9251083B2 (en) | 2013-03-11 | 2013-03-11 | Communicating prefetchers in a microprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201435727A true TW201435727A (zh) | 2014-09-16 |
TWI511036B TWI511036B (zh) | 2015-12-01 |
Family
ID=48470784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102125024A TWI511036B (zh) | 2013-03-11 | 2013-07-12 | 微處理器及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9251083B2 (zh) |
EP (1) | EP2778932B1 (zh) |
CN (1) | CN103399728B (zh) |
TW (1) | TWI511036B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9483406B2 (en) | 2013-03-11 | 2016-11-01 | Via Technologies, Inc. | Communicating prefetchers that throttle one another |
KR102069273B1 (ko) * | 2013-03-11 | 2020-01-22 | 삼성전자주식회사 | 시스템 온 칩 및 그 동작방법 |
KR102192198B1 (ko) * | 2014-02-24 | 2020-12-17 | 삼성전자주식회사 | 전자 장치 및 그것의 통신 방법 |
CN104133691B (zh) * | 2014-05-05 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 加速启动的方法及装置 |
CN104809080B (zh) * | 2014-05-27 | 2019-09-17 | 威盛电子股份有限公司 | 相互节流的通信预取器 |
EP3049915B1 (en) * | 2014-12-14 | 2020-02-12 | VIA Alliance Semiconductor Co., Ltd. | Prefetching with level of aggressiveness based on effectiveness by memory access type |
US9734072B2 (en) | 2015-03-24 | 2017-08-15 | Macom Connectivity Solutions, Llc | Main memory prefetch operation and multiple prefetch operation |
CN104808967B (zh) * | 2015-05-07 | 2017-07-04 | 盐城工学院 | 一种处理器的动态数据预取系统 |
US9971694B1 (en) * | 2015-06-24 | 2018-05-15 | Apple Inc. | Prefetch circuit for a processor with pointer optimization |
US10268586B2 (en) * | 2015-12-08 | 2019-04-23 | Via Alliance Semiconductor Co., Ltd. | Processor with programmable prefetcher operable to generate at least one prefetch address based on load requests |
US10180905B1 (en) * | 2016-04-07 | 2019-01-15 | Apple Inc. | Unified prefetch circuit for multi-level caches |
US9904624B1 (en) | 2016-04-07 | 2018-02-27 | Apple Inc. | Prefetch throttling in a multi-core system |
CN107544937A (zh) * | 2016-06-27 | 2018-01-05 | 深圳市中兴微电子技术有限公司 | 一种协处理器、数据写入方法和处理器 |
US10229060B2 (en) * | 2016-12-05 | 2019-03-12 | Intel Corporation | Instruction and logic for software hints to improve hardware prefetcher effectiveness |
US10331567B1 (en) | 2017-02-17 | 2019-06-25 | Apple Inc. | Prefetch circuit with global quality factor to reduce aggressiveness in low power modes |
WO2021118645A1 (en) * | 2020-05-30 | 2021-06-17 | Futurewei Technologies, Inc. | Systems and methods for adaptive hybrid hardware pre-fetch |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5023776A (en) | 1988-02-22 | 1991-06-11 | International Business Machines Corp. | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage |
US5003471A (en) | 1988-09-01 | 1991-03-26 | Gibson Glenn A | Windowed programmable data transferring apparatus which uses a selective number of address offset registers and synchronizes memory access to buffer |
US6484239B1 (en) | 1997-12-29 | 2002-11-19 | Intel Corporation | Prefetch queue |
US7177985B1 (en) | 2003-05-30 | 2007-02-13 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
US7238218B2 (en) | 2004-04-06 | 2007-07-03 | International Business Machines Corporation | Memory prefetch method and system |
US8161245B2 (en) | 2005-02-09 | 2012-04-17 | International Business Machines Corporation | Method and apparatus for performing data prefetch in a multiprocessor system |
US7383393B2 (en) | 2005-10-28 | 2008-06-03 | Freescale Semiconductor, Inc. | System and method for cooperative prefetching |
US20080243268A1 (en) | 2007-03-31 | 2008-10-02 | Kandaswamy Meenakshi A | Adaptive control of multiple prefetchers |
KR101032050B1 (ko) | 2007-06-19 | 2011-05-02 | 후지쯔 가부시끼가이샤 | 정보 처리 장치 및 캐시 제어 방법 |
US8103832B2 (en) | 2007-06-26 | 2012-01-24 | International Business Machines Corporation | Method and apparatus of prefetching streams of varying prefetch depth |
US7890702B2 (en) | 2007-11-26 | 2011-02-15 | Advanced Micro Devices, Inc. | Prefetch instruction extensions |
US8140768B2 (en) | 2008-02-01 | 2012-03-20 | International Business Machines Corporation | Jump starting prefetch streams across page boundaries |
US7958317B2 (en) | 2008-08-04 | 2011-06-07 | International Business Machines Corporation | Cache directed sequential prefetch |
US8161246B2 (en) | 2009-03-30 | 2012-04-17 | Via Technologies, Inc. | Prefetching of next physically sequential cache line after cache line that includes loaded page table entry |
US20110072218A1 (en) | 2009-09-24 | 2011-03-24 | Srilatha Manne | Prefetch promotion mechanism to reduce cache pollution |
US9619390B2 (en) | 2009-12-30 | 2017-04-11 | International Business Machines Corporation | Proactive prefetch throttling |
US8762649B2 (en) | 2010-03-29 | 2014-06-24 | Via Technologies, Inc. | Bounding box prefetcher |
US8719510B2 (en) | 2010-03-29 | 2014-05-06 | Via Technologies, Inc. | Bounding box prefetcher with reduced warm-up penalty on memory block crossings |
US8645631B2 (en) | 2010-03-29 | 2014-02-04 | Via Technologies, Inc. | Combined L2 cache and L1D cache prefetcher |
US8291172B2 (en) * | 2010-04-27 | 2012-10-16 | Via Technologies, Inc. | Multi-modal data prefetcher |
US8583894B2 (en) | 2010-09-09 | 2013-11-12 | Advanced Micro Devices | Hybrid prefetch method and apparatus |
US9483406B2 (en) | 2013-03-11 | 2016-11-01 | Via Technologies, Inc. | Communicating prefetchers that throttle one another |
-
2013
- 2013-03-11 US US13/792,428 patent/US9251083B2/en active Active
- 2013-05-21 EP EP13168623.0A patent/EP2778932B1/en active Active
- 2013-06-28 CN CN201310264239.5A patent/CN103399728B/zh active Active
- 2013-07-12 TW TW102125024A patent/TWI511036B/zh active
Also Published As
Publication number | Publication date |
---|---|
US9251083B2 (en) | 2016-02-02 |
CN103399728B (zh) | 2016-08-10 |
EP2778932B1 (en) | 2017-10-11 |
TWI511036B (zh) | 2015-12-01 |
US20140258641A1 (en) | 2014-09-11 |
CN103399728A (zh) | 2013-11-20 |
EP2778932A1 (en) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI511036B (zh) | 微處理器及其操作方法 | |
TWI594185B (zh) | 資料預取器以及預取資料至快取記憶體的方法 | |
US9483406B2 (en) | Communicating prefetchers that throttle one another | |
EP2642398B1 (en) | Coordinated prefetching in hierarchically cached processors | |
US8683129B2 (en) | Using speculative cache requests to reduce cache miss delays | |
US8341357B2 (en) | Pre-fetching for a sibling cache | |
US8140768B2 (en) | Jump starting prefetch streams across page boundaries | |
US8583894B2 (en) | Hybrid prefetch method and apparatus | |
US9047198B2 (en) | Prefetching across page boundaries in hierarchically cached processors | |
JP6105742B2 (ja) | バッファ占有率に基づくキャッシュへのプリフェッチ | |
US20080133844A1 (en) | Method and apparatus for extending local caches in a multiprocessor system | |
US8316187B2 (en) | Cache memory including a predict buffer | |
KR20120070584A (ko) | 데이터 스트림에 대한 저장 인식 프리페치 | |
US20160117250A1 (en) | Apparatus and Method of Throttling Hardware Pre-fetch | |
US10514920B2 (en) | Dynamically updating hardware prefetch trait to exclusive or shared at program detection | |
US20160041914A1 (en) | Cache Bypassing Policy Based on Prefetch Streams | |
TW201102920A (en) | Data prefetcher and method in a microprocessor | |
JP2023506709A (ja) | 命令キャッシュプリフェッチスロットリング | |
US20080263279A1 (en) | Design structure for extending local caches in a multiprocessor system | |
US20120131305A1 (en) | Page aware prefetch mechanism | |
KR20230069943A (ko) | 로컬리티가 결여된 데이터를 타겟으로 하는 메모리 요청의 프리페치 디스에이블 | |
CN104809080B (zh) | 相互节流的通信预取器 |