TWI590156B - 準確預測記憶體存取之以區域為基礎的技術 - Google Patents
準確預測記憶體存取之以區域為基礎的技術 Download PDFInfo
- Publication number
- TWI590156B TWI590156B TW100121833A TW100121833A TWI590156B TW I590156 B TWI590156 B TW I590156B TW 100121833 A TW100121833 A TW 100121833A TW 100121833 A TW100121833 A TW 100121833A TW I590156 B TWI590156 B TW I590156B
- Authority
- TW
- Taiwan
- Prior art keywords
- ptb
- processor
- cache
- signature
- page
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
-
- 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/10—Address translation
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/6024—History based prefetching
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)
Description
本發明關於準確預測記憶體存取之以區域為基礎的技術。
為改善例如個人電腦(PC)、伺服器等運算系統的性能與效率,預取(prefetching)處理器稍後可能會需要的資料及指令被視為有利的。然而,習用的預取尚未能夠準確預測哪個快取線應該或不應該被預取。
在不同實施例中,提出可預測預取的方法及設備。在以下描述中,為說明之目的,提出為數眾多的特定細節以便提供對本發明的透徹瞭解。然而,熟習此技藝之人士應可明瞭本發明的實施例可無需此等特定細節而加以實施。在其他例中,結構及裝置以方塊圖形式顯示以避免模糊本發明。
本說明書通篇提及的「一個實施例」或「一實例」意指所述有關該實施例的一特定特徵、結構或特性被包括在本發明的至少一個實施例中。因此,在本說明書通篇不同地方的用詞「在一個實施例中」或「在一實施例中」並未必是全部參照同一實施例。再者,該特定特徵、結構或特性可以任何適合的方式結合於一或多個實施例中。
現參照圖1,所示為根據本發明一實施例的範例處理器及記憶體的方塊圖。如圖1所示,系統100可包括處理器102及記憶體104。處理器102可包括核心106、一階快取(level one cache)108、轉譯後備緩衝區(TLB:translation lookaside buffer)110、分頁追蹤器緩衝區(PTB)112、二階快取(level two cache)114及PTB處理器116。雖然所示為包括一階快取108及二階快取114,處理器102可包括任何數量的快取階數。而且,雖然處理器102顯示為包括可儲存從虛擬位址到實體位址的位址變換(address translation)的TLB 110,本發明可實施於沒有TLB的處理器。
PTB 112可包含輸入項目,如參照圖2更詳細顯示者,圖2指示特定記憶體區域的哪些部分(例如,特定快取的哪幾條快取線或其他記憶體區域)先前已被核心106存取多次,有可能指示可能是最值得留在快取中的該等快取線。
PTB處理器116可嘗試準確地預測核心106會需要的指令及資料,如下文更詳述者。在一實施例中,PTB處理器116預取PTB 112所指示於先前例示期間被存取之被加到TLB 110的快取分頁的那些快取線(例如在一TLB未命中(miss)之後)。PTB處理器116可從分頁追蹤器記憶體表118讀取PTB 112輸入項目,以及將PTB 112輸入項目寫回到分頁追蹤器記憶表118。PTB處理器116亦可例如當附加快取線被核心106存取時,更新PTB 112中的輸入項目。PTB處理器116亦可實施於諸如預取模組的其他硬體、或軟體或硬體與軟體的組合。PTB處理器116亦可獨立適用於資料及指令預取,且可與其他預取器共存。
記憶體104可代表任何類型的記憶體,諸如靜態或動態隨機存取記憶體(RAM)。在一實施例中,記憶體104代表雙倍資料率同步動態RAM(DDR-SDRAM),然而本發明並不侷限於任何類型的記憶體。記憶體104可被邏輯地劃分成數個分頁,諸如分頁120,用以快取及定址。每一分頁120可含有固定數量的線122。在一實施例中,分頁120含有64線122。在另一實施例中,分頁120代表記憶體區域,其大小可透過韌體或軟體組態。
現參照圖2,所示為根據本發明一實施例的範例分頁追蹤器緩衝區的方塊圖。如圖2所示者,分頁追蹤器緩衝區112可包括任何數量的輸入項目,透過索引208可存取,其各可包括位址202、存取簽章204以及再用簽章206。在一實施例中,PTB 112可包括與TLB 110相同數量的輸入項目。在其他實施例中,PTB 112可包括比TLB 110更多或更少數量的輸入項目。在一實施例中,PTB 112可包括64個輸入項目。在另一實施例中,PTB 112可包括1024個輸入項目。
雖然顯示為包括28位元,位址202可含有更多或更少位元供辨識分頁120(或另一記憶體區域)。雖然所示為包括64位元,存取簽章204及再用簽章206可含有更多或更少位元供辨識分頁120的線122。在一實施例中,存取簽章204的設定位元指示在TLB 110中分頁120的先前定址中被核心106所存取的分頁120的線122。在一實施例中,再用簽章206的設定位元指示在TLB 110中分頁120的先前定址中被核心106存取多次的分頁120的線122。
現參照圖3,其顯示根據本發明一實施例之使用存取簽章的範例方法的流程圖。如圖3所示,該方法始於PTB處理器116在將任何收回的(evicted)輸入項目寫回分頁追蹤器記憶體表118之後,將與快取分頁120相關聯的存取簽章204載入(302)到PTB 112。在一實施例中,PTB處理器116在一TLB 110未命中之後載入存取簽章204且寫回任何正被替換的存取簽章。接下來,PTB處理器116可預取(304)線122,進入到例如由存取簽章204所指示為先前已被核心106所存取的二階快取114。最後,PTB處理器116可更新(306)存取簽章204。在一實施例中,當任何附加線被請求或提取時,PTB處理器116增加位元到被擷取的存取簽章204。在另一實施例中,PTB處理器116可使用用以預取之被擷取的存取簽章204且可再生用於寫回到要被用在後續分頁存取的記憶體之存取簽章。
現參照圖4,所示為根據本發明一實施例之使用再用簽章的範例方法的流程圖。如圖4所示,該方法始於PTB處理器116在將任何收回的輸入項目寫回分頁追蹤器記憶體表118之後,將與快取分頁120相關聯的再用簽章206載入(402)到PTB 112。在一實施例中,PTB處理器116在一TLB 110未命中之後載入再用簽章206。接下來,PTB處理器116可針對被再用簽章206所指示為先前已被核心106存取多次的在二階快取114中的那些快取線來優先化(404)替換策略(replacement policy)。在一實施例中,PTB處理器116可設定為最近最常使用的那些快取線,而一位元設定於再用簽章206中。在另一實施例中,PTB處理器116可設定為最近最少使用的那些快取線,而沒有位元設定於再用簽章206中。最後,當任何附加線被請求多次時,PTB處理器116可更新(406)再用簽章206。
實施例可實施於許多不同的系統類型。現參照圖5,所示為根據本發明一實施例的系統的方塊圖。如圖5所示,多處理器系統500係一點對點互連系統,且包括經由點對點互連550耦合的第一處理器570及第二處理器580。如圖5所示,處理器570與580每一個可以是多核心處理器,包括第一及第二處理器核心(即,處理器核心574a與574b以及處理器核心584a與584b)。根據本發明的實施例,每一處理器可包括PTB硬體、軟體及韌體。
仍參照圖5,第一處理器570進一步包括記憶體控制器集線器(MCH)572及點對點(P-P)介面576與578。同理,第二處理器580包括MCH 582及P-P介面586與588。如圖5所示,MCH 572與582耦合諸處理器到個別的記憶體,亦即記憶體532及記憶體534,其可以是局部附加在個別處理器之主記憶體(例如,動態隨機存取記憶體(DRAM))的部分,其每一者可包括根據本發明一實施例的分頁追蹤器記憶體表。第一處理器570與第二處理器580可分別經由P-P互連552與554耦合到晶片組590。如圖5所示,晶片組590包括P-P介面594與598。
此外,晶片組590包括將晶片組590與高效能圖形引擎538耦合的介面592。依次,晶片組590可經由介面596耦合到第一匯流排516。如圖5所示,不同的I/O裝置514可與將第一匯流排516耦合到第二匯流排520的匯流排橋接器518一起耦合到第一匯流排516。在一實施例中,不同的裝置可耦合到第二匯流排520,包括例如,鍵盤/滑鼠522、通訊裝置526及諸如可包括碼530的磁碟驅動器或其他大量儲存裝置的資料儲存單元528。再者,音頻I/O 524可耦合到第二匯流排520。
實施例可以碼來實施且可儲存於儲存媒體,儲存媒體已儲存有指令,其可用來編程系統以實施諸指令。儲存媒體可包括,但並不侷限於包括軟性磁片、光碟片、唯讀光碟(CD-ROM)、可抹寫光碟(CD-RW)、磁光碟的任何類型的碟片、諸如唯讀記憶體(ROM)、諸如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)的隨機存取記憶體(RAM)、可抹除可程式唯讀記憶體(EPROM)、快閃記憶體、電可抹除可程式唯讀記憶體(EEPROM)的半導體裝置、磁或光卡、或任何其他類型之適合用於儲存電子指令的媒體。
雖然本發明已針對有限數量的實施例如以描述,但熟習此技藝之人士會瞭解到可以有許多修改及種種變化。附加的申請專利範圍包含所有落在本發明確實精神與範疇內的此等修改及變化。
100...系統
102...處理器
104...記憶體
106...核心
108...一階快取
110...TLB(轉譯後備緩衝區)
112...分頁追蹤器緩衝區
114...二階快取
116...PTB處理器
118...分頁追蹤器記憶體表
120...分頁
122...線
204...存取簽章
206...再用簽章
208...索引
500...多處理器系統
514...I/O裝置
516...第一匯流排
518...匯流排橋接器
520...第二匯流排
522...鍵盤/滑鼠
524...音頻I/O
526...通訊裝置
528...資料儲存單元
530...碼
532...記憶體
534...記憶體
538...高效能圖形引擎
550...互連
552...P-P互連
554...P-P互連
570...處理器
572...MCH(記憶體控制器集線器)
574a...處理器核心
574b...處理器核心
576...P-P介面
578...P-P介面
580...處理器
582...MCH(記憶體控制器集線器)
584a...處理器核心
584b...處理器核心
586...P-P介面
588...P-P介面
590...晶片組
592...介面
594...P-P介面
596...介面
598...P-P介面
圖1係根據本發明一實施例的範例處理器及記憶體的方塊圖。
圖2係根據本發明一實施例的範例分頁追蹤器緩衝器的方塊圖。
圖3係根據本發明一實施例之使用存取簽章的範例方法的流程圖。
圖4係根據本發明一實施例之使用再用簽章的範例方法的流程圖。
圖5係根據本發明一實施例的範例系統的方塊圖。
100...系統
102...處理器
104...記憶體
106...核心
108...一階快取
110...TLB
112...分頁追蹤器緩衝區
114...二階快取
116...PTB處理器
118...分頁追蹤器記憶體表
120...分頁
122...線
Claims (20)
- 一種處理器,包含:第一核心;一階快取;轉譯後備緩衝區(TLB);二階快取;分頁追蹤器緩衝區(PTB),該PTB包括多個用以儲存到一快取分頁的位址及用以儲存用以追蹤對該快取分頁的每一快取線存取之簽章的輸入項目;以及PTB處理器,該PTB處理器將該等輸入項目載入到該PTB中,更新該簽章,以及預取該快取分頁的快取線進入到該二階快取,以回應該簽章中該快取線先前已被存取的指示。
- 如申請專利範圍第1項之處理器,其中,該簽章包含64位元。
- 如申請專利範圍第1項之處理器,進一步包含該PTB輸入項目儲存用以追蹤對該快取分頁的每一快取線重複存取的再用簽章,以及該PTB處理器更新該再用簽章。
- 如申請專利範圍第1項之處理器,其中,該PTB包含約64個輸入項目。
- 如申請專利範圍第1項之處理器,其中,該PTB包含約1024個輸入項目。
- 如申請專利範圍第1項之處理器,其中,該PTB處理器將輸入項目載入到該PTB包含該PTB處理器從一記憶體 中的一分頁追蹤器記憶體表載入該等輸入項目到該PTB。
- 如申請專利範圍第6項之處理器,進一步包含該PTB處理器將從該PTB收回的輸入項目儲存到該記憶體中的該分頁追蹤器記憶體表。
- 如申請專利範圍第1項之處理器,其中,該PTB處理器將該等輸入項目載入到該PTB包含該PTB處理器在一TLB未命中之後將一第一輸入項目載入到該PTB。
- 一種系統,包含:處理器,包括:用以執行指令的第一核心;快取記憶體;以及分頁追蹤器緩衝區(PTB),該PTB用以儲存指示一快取分頁的哪些快取線已被存取的一或多個PTB輸入項目;動態隨機存取記憶體(DRAM),係耦合到該處理器,該DRAM用以儲存含有該PTB輸入項目的分頁追蹤器記憶體表;以及PTB處理器,該PTB處理器用以從該分頁追蹤器記憶體表將第一PTB輸入項目載入到該PTB中,且該PTB處理器用以將第一快取線載入到該快取記憶體中,以回應該第一PTB輸入項目中該快取記憶體先前被存取的指示。
- 如申請專利範圍第9項之系統,進一步包含該PTB處理器以更新第二PTB輸入項目以指示第二快取線已被存取。
- 如申請專利範圍第9項之系統,進一步包含該PTB處理器以將第三PTB輸入項目寫回到該分頁追蹤器記憶體表。
- 如申請專利範圍第9項之系統,進一步包含該PTB以儲存指示該快取分頁的哪些快取線已被存取多次的一或多個PTB輸入項目。
- 如申請專利範圍第12項之系統,進一步包含該PTB處理器以優先化該對應PTB輸入項目指示為先前已被存取多次的每一快取線。
- 如申請專利範圍第9項之系統,其中,該處理器進一步包含一轉譯後備緩衝區(TLB),且其中,該PTB處理器用以在一TLB未命中之後即載入該第一PTB輸入項目到該PTB。
- 一種方法,包含:讀取與一快取分頁相關聯的簽章,該簽章含有該快取分頁的快取線是否先前被存取的一或多個指示;以及將一第一快取線載入到一處理器的一快取記憶體中,以回應該簽章中該第一快取線先前被存取的指示。
- 如申請專利範圍第15項之方法,進一步包含從儲存於一記憶體中的簽章表擷取出該簽章,且其中,載入該第一快取線包含預取該第一快取線。
- 如申請專利範圍第16項之方法,進一步包含回應被該處理器存取的該快取分頁的每一快取線而更新該簽章。
- 如申請專利範圍第17項之方法,進一步包含當該簽章被收回時將該簽章儲存到該簽章表。
- 如申請專利範圍第15項之方法,進一步包含擷取與該快取分頁相關聯的一再用簽章,該再用簽章包括該快取分頁的該第一快取線是否先前被存取多次的指示。
- 如申請專利範圍第19項之方法,進一步包含優先化與該第一快取線相關聯的替換策略,以回應該再用簽章中對該第一快取線多次先前存取的指示。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/821,935 US9418011B2 (en) | 2010-06-23 | 2010-06-23 | Region based technique for accurately predicting memory accesses |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201224923A TW201224923A (en) | 2012-06-16 |
TWI590156B true TWI590156B (zh) | 2017-07-01 |
Family
ID=45353674
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100121833A TWI590156B (zh) | 2010-06-23 | 2011-06-22 | 準確預測記憶體存取之以區域為基礎的技術 |
TW104110229A TWI603264B (zh) | 2010-06-23 | 2011-06-22 | 準確預測記憶體存取之以區域爲基礎的技術 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104110229A TWI603264B (zh) | 2010-06-23 | 2011-06-22 | 準確預測記憶體存取之以區域爲基礎的技術 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9418011B2 (zh) |
EP (1) | EP2585916B1 (zh) |
JP (1) | JP5697279B2 (zh) |
KR (1) | KR101485651B1 (zh) |
CN (2) | CN106294212B (zh) |
TW (2) | TWI590156B (zh) |
WO (1) | WO2011163407A2 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9418011B2 (en) | 2010-06-23 | 2016-08-16 | Intel Corporation | Region based technique for accurately predicting memory accesses |
US8683136B2 (en) * | 2010-12-22 | 2014-03-25 | Intel Corporation | Apparatus and method for improving data prefetching efficiency using history based prefetching |
US9092341B2 (en) | 2012-07-10 | 2015-07-28 | International Business Machines Corporation | Methods of cache preloading on a partition or a context switch |
US9424031B2 (en) * | 2013-03-13 | 2016-08-23 | Intel Corporation | Techniques for enabling bit-parallel wide string matching with a SIMD register |
JP6088951B2 (ja) * | 2013-09-20 | 2017-03-01 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
US9513805B2 (en) | 2014-04-15 | 2016-12-06 | International Business Machines Corporation | Page table including data fetch width indicator |
US9582282B2 (en) * | 2014-07-17 | 2017-02-28 | Arm Limited | Prefetching using a prefetch lookup table identifying previously accessed cache lines |
US9817764B2 (en) * | 2014-12-14 | 2017-11-14 | Via Alliance Semiconductor Co., Ltd | Multiple data prefetchers that defer to one another based on prefetch effectiveness by memory access type |
US20160255169A1 (en) * | 2015-02-27 | 2016-09-01 | Futurewei Technologies, Inc. | Method and system for smart object eviction for proxy cache |
US9594678B1 (en) | 2015-05-27 | 2017-03-14 | Pure Storage, Inc. | Preventing duplicate entries of identical data in a storage device |
US10482010B2 (en) * | 2017-06-29 | 2019-11-19 | Intel Corporation | Persistent host memory buffer |
KR20200085522A (ko) | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법 |
CN110442382B (zh) * | 2019-07-31 | 2021-06-15 | 西安芯海微电子科技有限公司 | 预取缓存控制方法、装置、芯片以及计算机可读存储介质 |
KR20210108749A (ko) * | 2020-02-26 | 2021-09-03 | 삼성전자주식회사 | 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04259048A (ja) | 1991-02-14 | 1992-09-14 | Fujitsu Ltd | 統計情報による先読みデータ制御方式 |
US5931945A (en) * | 1994-04-29 | 1999-08-03 | Sun Microsystems, Inc. | Graphic system for masking multiple non-contiguous bytes having decode logic to selectively activate each of the control lines based on the mask register bits |
US6055621A (en) * | 1996-02-12 | 2000-04-25 | International Business Machines Corporation | Touch history table |
US5752261A (en) * | 1996-11-07 | 1998-05-12 | Ncr Corporation | Method and apparatus for detecting thrashing in a cache memory |
US5960454A (en) * | 1996-12-19 | 1999-09-28 | International Business Machines Corporation | Avoiding cache collisions between frequently accessed, pinned routines or data structures |
US6317810B1 (en) * | 1997-06-25 | 2001-11-13 | Sun Microsystems, Inc. | Microprocessor having a prefetch cache |
US6047363A (en) * | 1997-10-14 | 2000-04-04 | Advanced Micro Devices, Inc. | Prefetching data using profile of cache misses from earlier code executions |
US5941981A (en) | 1997-11-03 | 1999-08-24 | Advanced Micro Devices, Inc. | System for using a data history table to select among multiple data prefetch algorithms |
US6490654B2 (en) * | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
US6223309B1 (en) * | 1998-10-02 | 2001-04-24 | International Business Machines Corporation | Method and apparatus for ECC logic test |
JP3512678B2 (ja) * | 1999-05-27 | 2004-03-31 | 富士通株式会社 | キャッシュメモリ制御装置および計算機システム |
US6804769B1 (en) | 2000-02-18 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Unified buffer for tracking disparate long-latency operations in a microprocessor |
US6535966B1 (en) | 2000-05-17 | 2003-03-18 | Sun Microsystems, Inc. | System and method for using a page tracking buffer to reduce main memory latency in a computer system |
US6678795B1 (en) * | 2000-08-15 | 2004-01-13 | International Business Machines Corporation | Method and apparatus for memory prefetching based on intra-page usage history |
EP1182559B1 (en) * | 2000-08-21 | 2009-01-21 | Texas Instruments Incorporated | Improved microprocessor |
US6523093B1 (en) | 2000-09-29 | 2003-02-18 | Intel Corporation | Prefetch buffer allocation and filtering system |
US6640285B1 (en) * | 2000-10-26 | 2003-10-28 | Emc Corporation | Method and apparatus for improving the efficiency of cache memories using stored activity measures |
US6832296B2 (en) * | 2002-04-09 | 2004-12-14 | Ip-First, Llc | Microprocessor with repeat prefetch instruction |
US7020762B2 (en) * | 2002-12-24 | 2006-03-28 | Intel Corporation | Method and apparatus for determining a dynamic random access memory page management implementation |
US7194582B1 (en) * | 2003-05-30 | 2007-03-20 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
US7467131B1 (en) * | 2003-09-30 | 2008-12-16 | Google Inc. | Method and system for query data caching and optimization in a search engine system |
US7356651B2 (en) * | 2004-01-30 | 2008-04-08 | Piurata Technologies, Llc | Data-aware cache state machine |
US7975108B1 (en) * | 2004-03-25 | 2011-07-05 | Brian Holscher | Request tracking data prefetcher apparatus |
US7386679B2 (en) | 2004-04-15 | 2008-06-10 | International Business Machines Corporation | System, method and storage medium for memory management |
US7950012B2 (en) * | 2005-03-16 | 2011-05-24 | Oracle America, Inc. | Facilitating communication and synchronization between main and scout threads |
US7496730B2 (en) * | 2005-04-15 | 2009-02-24 | Microsoft Corporation | System and method for reducing the number of translation buffer invalidates an operating system needs to issue |
JP4160589B2 (ja) | 2005-10-31 | 2008-10-01 | 富士通株式会社 | 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法 |
US7526614B2 (en) * | 2005-11-30 | 2009-04-28 | Red Hat, Inc. | Method for tuning a cache |
US7386673B2 (en) | 2005-11-30 | 2008-06-10 | Red Hat, Inc. | Method for tracking of non-resident pages |
WO2007068122A1 (en) * | 2005-12-16 | 2007-06-21 | Univ Western Ontario | System and method for cache management |
GB0603552D0 (en) * | 2006-02-22 | 2006-04-05 | Advanced Risc Mach Ltd | Cache management within a data processing apparatus |
US7478197B2 (en) * | 2006-07-18 | 2009-01-13 | International Business Machines Corporation | Adaptive mechanisms for supplying volatile data copies in multiprocessor systems |
JP2008102745A (ja) | 2006-10-19 | 2008-05-01 | Toshiba Corp | 命令キャッシュメモリのプリフェッチ機構 |
US7797503B2 (en) * | 2007-06-26 | 2010-09-14 | International Business Machines Corporation | Configurable memory system and method for providing atomic counting operations in a memory device |
US8423715B2 (en) * | 2008-05-01 | 2013-04-16 | International Business Machines Corporation | Memory management among levels of cache in a memory hierarchy |
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 |
US9569363B2 (en) * | 2009-03-30 | 2017-02-14 | Via Technologies, Inc. | Selective prefetching of physically sequential cache line to cache line that includes loaded page table entry |
US8677049B2 (en) * | 2009-04-13 | 2014-03-18 | Advanced Micro Devices, Inc. | Region prefetcher and methods thereof |
US8291169B2 (en) * | 2009-05-28 | 2012-10-16 | International Business Machines Corporation | Cache line use history based done bit modification to D-cache replacement scheme |
US8332587B2 (en) * | 2009-05-28 | 2012-12-11 | International Business Machines Corporation | Cache line use history based done bit modification to I-cache replacement scheme |
CN101719105B (zh) * | 2009-12-31 | 2012-01-04 | 中国科学院计算技术研究所 | 一种多核系统中对内存访问的优化方法和系统 |
US9418011B2 (en) | 2010-06-23 | 2016-08-16 | Intel Corporation | Region based technique for accurately predicting memory accesses |
-
2010
- 2010-06-23 US US12/821,935 patent/US9418011B2/en not_active Expired - Fee Related
-
2011
- 2011-06-22 TW TW100121833A patent/TWI590156B/zh not_active IP Right Cessation
- 2011-06-22 KR KR1020127034132A patent/KR101485651B1/ko active IP Right Grant
- 2011-06-22 EP EP11798876.6A patent/EP2585916B1/en active Active
- 2011-06-22 WO PCT/US2011/041511 patent/WO2011163407A2/en active Application Filing
- 2011-06-22 CN CN201610800912.6A patent/CN106294212B/zh not_active Expired - Fee Related
- 2011-06-22 CN CN201180041024.6A patent/CN103038748B/zh not_active Expired - Fee Related
- 2011-06-22 JP JP2013516745A patent/JP5697279B2/ja not_active Expired - Fee Related
- 2011-06-22 TW TW104110229A patent/TWI603264B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2011163407A2 (en) | 2011-12-29 |
TW201528136A (zh) | 2015-07-16 |
CN103038748B (zh) | 2016-10-05 |
CN106294212A (zh) | 2017-01-04 |
EP2585916A4 (en) | 2014-03-19 |
US20110320762A1 (en) | 2011-12-29 |
JP5697279B2 (ja) | 2015-04-08 |
KR101485651B1 (ko) | 2015-01-22 |
KR20130040952A (ko) | 2013-04-24 |
TWI603264B (zh) | 2017-10-21 |
US9418011B2 (en) | 2016-08-16 |
EP2585916B1 (en) | 2019-09-11 |
TW201224923A (en) | 2012-06-16 |
CN103038748A (zh) | 2013-04-10 |
EP2585916A2 (en) | 2013-05-01 |
JP2013529815A (ja) | 2013-07-22 |
WO2011163407A3 (en) | 2012-04-12 |
CN106294212B (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI590156B (zh) | 準確預測記憶體存取之以區域為基礎的技術 | |
US9208084B2 (en) | Extended main memory hierarchy having flash memory for page fault handling | |
KR101379596B1 (ko) | Tlb 프리페칭 | |
US7739477B2 (en) | Multiple page size address translation incorporating page size prediction | |
US9223710B2 (en) | Read-write partitioning of cache memory | |
US8819392B2 (en) | Providing metadata in a translation lookaside buffer (TLB) | |
JP5528554B2 (ja) | ブロックベースの非透過的キャッシュ | |
JP3938370B2 (ja) | ハードウェア管理仮想−物理アドレス変換機構 | |
US6782453B2 (en) | Storing data in memory | |
JP2008542948A (ja) | コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ | |
US20040117588A1 (en) | Access request for a data processing system having no system memory | |
JP2009512943A (ja) | 多階層の変換索引緩衝機構(TLBs)フィールドの更新 | |
US20040117591A1 (en) | Data processing system having no system memory | |
US20050055528A1 (en) | Data processing system having a physically addressed cache of disk memory | |
US20040117590A1 (en) | Aliasing support for a data processing system having no system memory | |
US11526449B2 (en) | Limited propagation of unnecessary memory updates | |
US20120131305A1 (en) | Page aware prefetch mechanism | |
US20040117583A1 (en) | Apparatus for influencing process scheduling in a data processing system capable of utilizing a virtual memory processing scheme | |
US20040117589A1 (en) | Interrupt mechanism for a data processing system having hardware managed paging of disk data | |
KUMAR | Performance improvement by Software controlled Cache Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |