TW201933120A - 用以避免負載填充衝突的設備以及系統 - Google Patents

用以避免負載填充衝突的設備以及系統 Download PDF

Info

Publication number
TW201933120A
TW201933120A TW107134715A TW107134715A TW201933120A TW 201933120 A TW201933120 A TW 201933120A TW 107134715 A TW107134715 A TW 107134715A TW 107134715 A TW107134715 A TW 107134715A TW 201933120 A TW201933120 A TW 201933120A
Authority
TW
Taiwan
Prior art keywords
load
request
fill
cache memory
conflict
Prior art date
Application number
TW107134715A
Other languages
English (en)
Other versions
TWI743400B (zh
Inventor
塔倫 納克拉
王昊
保羅 基欽
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 TW201933120A publication Critical patent/TW201933120A/zh
Application granted granted Critical
Publication of TWI743400B publication Critical patent/TWI743400B/zh

Links

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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0857Overlapped cache accessing, e.g. pipeline by multiple requestors
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control
    • 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/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache

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

在加載與裝填之間避免緩存存取衝突的方法
本發明是有關於一種用以避免負載與填充之間的快取記憶體存取衝突的方法、設備以及系統。
本發明的目標:本說明書可提供一種用以避免負載與填充之間的快取記憶體存取衝突的方法、設備以及系統。
在計算中,快取記憶體一般是儲存數據以使得可對所述數據的未來請求進行較快服務的硬體元件。儲存在快取記憶體中的數據可能是早先計算的結果,和/或別處所儲存數據的複製。快取記憶體命中在可於快取記憶體中發現所請求數據時發生,而快取記憶體未命中在未能於快取記憶體中發現所請求數據時發生。通過從快取記憶體讀取數據來服務快取記憶體命中,這比從較慢的數據記憶體或記憶體讀取數據更快。可由快取記憶體服務的請求越多,系統一般執行得越快。
為使得具有成本效益且實現對數據的高效使用,快取記憶體相對較小。然而,因為典型電腦應用程式傾向於以可識別樣式來存取數據,所以快取記憶體已在許多計算領域中證明其自身。這些樣式典型地呈現參考局部性(即未來所請求數據傾向於在一定程度上與先前所請求數據類似)。一些存取樣式呈現時間局部性,即如果最近已請求了數據,那麼可再次請求所述數據。其它樣式呈現空間局部性,這是指對在物理上靠近已請求數據來儲存的數據的請求。存在其它局部性形式。
快取記憶體替代策略決定數據的特定條目的副本將去往快取記憶體中的何處。如果替代策略自由選擇快取記憶體中的任何條目來保持副本,那麼將所述快取記憶體稱作完全關聯。另一極端下,如果主記憶體中的每一條目可去往快取記憶體中的僅一個位置中,那麼所述快取記憶體為直接映射。許多快取記憶體實行折衷方案,其中主記憶體中的每一條目可去往快取記憶體中的N個位置中的任一個,且將所述許多快取記憶體描述為N路集關聯。舉例來說,許多處理器中的1級數據快取記憶體是兩路集關聯或四路集關聯,這意指主記憶體中的任何特定位置可快取記憶體在1級數據快取記憶體中的兩個位置或四個位置中。
此外,如同大多數記憶體一樣,快取記憶體僅具有可從中讀取數據或將數據寫入其中的這麼多個埠。如果記憶體中發生的所調度的讀取/寫入存取多於所存在的讀取/寫入埠,那麼便會發生衝突且數據存取中的一個或多個必須等待或被拒絕。
根據一個一般方面,一種設備,可包含配置成儲存數據的第一快取記憶體。設備可包含第二快取記憶體,配置成回應於填充請求而向第一快取記憶體供應數據和傳入填充信號。設備還可包含執行電路,配置成經由負載請求從第一快取記憶體取回數據。第一快取記憶體可配置成:從傳入填充信號獲得與填充請求相關聯的位址資訊和時序資訊,且至少部分地基於位址資訊和時序資訊來調度負載請求以試圖避免負載填充衝突。
根據另一個一般方面,一種系統,可包含處理器電路和記憶體系統。處理器電路可配置成:執行與數據相關聯的指令,且經由負載請求來取回儲存在第一快取記憶體中的數據。記憶體系統可包含第一快取記憶體,配置成儲存處理器電路的數據;和第二快取記憶體,配置成回應於填充請求而向第一快取記憶體供應數據和傳入填充信號。第一快取記憶體配置成:從傳入填充信號獲得與填充請求相關聯的位址資訊和時序資訊,且至少部分地基於位址資訊和時序資訊來調度負載請求以試圖避免負載填充衝突。
根據另一個一般方面,設備可包含多個記憶體單元,包括多個儲存體和路且配置成儲存數據。設備可包含負載調度器電路,配置成在將由設備處理多個負載請求中的每一個時進行調度,其中處理負載請求包括從多個記憶體單元取回數據。負載調度器還可配置成:從傳入填充信號獲得與填充請求相關聯的位址資訊和時序資訊,且至少部分地基於位址資訊和時序資訊來調度多個負載請求以試圖避免負載填充衝突。
在以下圖式以及描述中闡述一個或多個實施方案的細節。其它特徵將從描述和圖中且從申請專利範圍中容易理解。
一種用於避免負載與填充之間的快取記憶體存取衝突的系統和/或方法,基本上如圖中的至少一個中所繪示和/或如結合圖中的至少一個所描述,如更徹底地在申請專利範圍中所闡明。
本發明的效果:根據一個一般方面,可以高得多的準確率來預測負載/填充衝突。
將在下文中參考圖式更充分地描述各種實例實施例,在附圖中繪示了一些實例實施例。然而,本公開主題可以許多不同形式實施,且不應解釋為限於本文中所闡述的實例實施例。相反,提供這些實例實施例以使得本公開將透徹和全面,且將向本領域的技術人員充分地傳達本公開主題的範圍。在圖中,為清楚起見,可能會誇大層和區域的大小以及相對大小。
將理解,當將一個元件或層稱作在另一元件或層“上”、“連接到”另一元件或層或“耦合到”另一元件或層時,所述元件或層可直接在另一元件或層上、直接連接到另一元件或層或耦合到另一元件或層,或可能存在介入元件或介入層。相比之下,當將元件稱作“直接”在另一元件或層“上”、“直接連接到”或“直接耦合到”另一元件或層時,不存在介入元件或介入層。相同標號始終指代相同元件。如本文中所使用,術語“和/或”包含相關聯的所列項中的一個或多個的任何組合以及所有組合。
將理解,雖然本文中可使用術語第一、第二、第三等來描述各種元件、組件、區域、層和/或區段,但這些元件、組件、區域、層和/或區段不應受到這些術語的限制。這些術語僅用以區分一個元件、組件、區域、層或區段與另一元件、區域、層或區段。因此,在不脫離本公開主題的教示的情況下,下文所論述的第一元件、組件、區域、層或區段可稱為第二元件、組件、區域、層或區段。
為易於描述,可在本文中使用如“在…下面”、“在…下方”、“下部”、“在…上方”、“上部”以及類似物的空間相對術語以描述如圖中所示出的一個元件或特徵與另一元件或特徵的關係。將理解,空間相對術語意圖涵蓋裝置在使用或操作中除圖中描繪的取向外的不同取向。舉例來說,如果圖中的裝置倒過來,那麼描述為“在”其它元件或特徵“下方”或“在”其它元件或特徵“下面”的元件的取向就將變成“在”其它元件或特徵“上方”。因此,示例性術語“在…下方”可涵蓋上方和下方兩個取向。裝置可以其它方式取向(旋轉90度或處於其它取向),且本文中所使用的空間相對描述詞可以相應地進行解釋。
類似地,為易於描述,可在本文中使用如“高”、“低”、“上拉”、“下拉”、“1”、“0”以及類似物的電學術語以描述相對於其它電壓電平或相對於如圖中所示出的另一元件或特徵的電壓電平或電流。將理解,電學相對術語意圖涵蓋裝置在使用或操作中除圖中所描繪的電壓或電流外的不同參考電壓。舉例來說,如果圖中的裝置或信號反相或使用其它參考電壓、電流或電荷,那麼被描述為“高”或“上拉”的元件與新的參考電壓或電流相比隨後將為“低”或“下拉”。因此,示例性術語“高”可涵蓋相對較低或較高的電壓或電流。裝置可以其它方式基於不同的電學參考系,且本文中所使用的電學相對描述詞相應地進行解釋。
本文中所使用的術語僅出於描述特定實例實施例的目的,且並不意圖限制本公開主題。如本文中所使用,除非上下文另外明確指示,否則單數形式“一(a、an)”以及“所述”意欲還包括複數形式。將進一步理解,當用於本說明書中時,術語“包括(comprises)”和/或“包括(comprising)”指定存在所陳述的特徵、整數、步驟、操作、元件及/或組件,但不排除存在或添加一個或多個其它特徵、整數、步驟、操作、元件、組件和/或其群組。
在本文中參考理想化實例實施例(以及中間結構)的示意性圖解的橫截面圖解來描述實例實施例。如此,將預期到,作為例如製造技術和/或公差的結果而與圖解的形狀的差異。因此,實例實施例不應解釋為限於本文中所示出區域的特定形狀,而應包含例如由製造所引起的形狀偏差。舉例來說,示出為矩形的植入區域典型地將具有圓形或彎曲特徵和/或植入物濃度在其邊緣上的梯度,而不是從植入區域到非植入區域的二元變化。同樣,通過植入形成的埋入區域可在埋入區域與發生植入所在的表面之間的區域中產生一些植入。因此,圖中所示出的區域本質上是示意性的,且其形狀並不意圖示出裝置的區域的實際形狀且並不意圖限制本公開主題的範圍。
除非另外定義,否則本文中所使用的所有術語(包含技術和科學術語)具有本公開主題所屬領域的普通技術人員通常所理解的相同意義。應進一步理解,如常用詞典中所定義術語的術語應解釋為具有與其相關技術的上下文中的含義相一致的含義,且將不在理想化或過度正式意義上進行解釋,除非在本文中明確地如此界定。
下文中,將參考圖式詳細解釋實例實施例。
圖1是根據本公開主題的系統100的示例實施例的框圖。在各種實施例中,系統100可包含微處理器或片上系統(system-on-a-chip;SoC)或其它計算設備。
在所繪示的實施例中,系統100可包含執行單元或電路102。執行單元102可包含配置成執行一個或多個邏輯操作的邏輯裝置電路或邏輯裝置組。執行單元102的實例可包含但不限於浮點單元、負載/儲存單元、指令解碼單元、算數邏輯單位。在所示出的實施例中,執行單元102可配置成執行一個或多個指令190。
執行單元102還可以請求數據。此數據可儲存在記憶體系統106中。在各種實施例中,記憶體系統106中的全部或部分可包含在相同裸片或封裝上作為執行單元102。舉例來說,在一個實施例中,L1快取記憶體116和L2快取記憶體126可與執行單元102集成,但主記憶體136可能不與執行單元集成。
在各種實施例中,記憶體系統106可包含多個快取記憶體層或快取記憶體級。在所繪示的實施例中,記憶體系統106可包含儲存數據118的相對較小子集的1級(level 1;L1)快取記憶體116。記憶體系統106可包含儲存數據128的相對中等子集的2級(level 2;L2)快取記憶體126。在各種實施例中,L2快取記憶體126可包含由L1快取記憶體116所儲存的所有數據118的副本。記憶體系統106可包含儲存數據138的相對較大集合的主記憶體136。在各種實施例中,快取記憶體136可包含由L2快取記憶體126所儲存的所有數據128的副本。
在所示出的實施例中,執行單元102可請求經由負載請求150來從L1快取記憶體116中讀取(負載)數據。如果所需數據不在L1快取記憶體116中,那麼便可從L2快取記憶體126或其它記憶體(例如主記憶體136)取回所述數據。來自L2快取記憶體126的此數據可經由填充請求152而進入L1快取記憶體116。
如果L1快取記憶體116不具有足夠的讀取/寫入埠,那麼後續負載請求150就可能與先前填充請求152的結果相衝突。在這種實施例中,如何處理衝突取決於L1快取記憶體116的實施方案。在一些實施例中,可能並未忽略傳入填充請求152且因而必須延遲或拒絕負載請求150。在這種實施例中,如果負載請求150可能未緩衝,那麼其必須從最開始處再次開始。應理解,上文僅僅是並未限制所公開主題的一個說明性實例。
在所示出的實施例中,L1快取記憶體116可配置成對填充請求152何時將到達L1快取記憶體116處以及所述填充請求是否將或可能與未決負載請求150相衝突進行預測。如果是,那麼L1快取記憶體116可試圖重新調度衝突負載請求150以避免衝突。
圖2是根據所公開主題的系統200的實例實施例的框圖。在各種實施例中,如上文所描述,系統200可以是記憶體層級的部分。
在所示出的實施例中,系統200可包含L1快取記憶體202和L2快取記憶體204。執行單元未繪示。
在所示出的實施例中,L1快取記憶體202可包含多個記憶體單元212,所述多個記憶體單元以路214和儲存體216佈置,且包含固定數目的讀取和/或寫入埠218。如上文所描述,如果進入記憶體單元212的讀取或寫入請求多於讀取/寫入埠218可處理的讀取或寫入請求,那麼便發生衝突。
在所示出的實施例中,L1快取記憶體202可包含負載(或讀取)調度器或電路222,以及儲存(或寫入)調度器或電路224。在這種實施例中,負載/儲存調度器222和負載/儲存調度器224可配置成為來自執行單元的讀取/寫入請求定時以使得不發生衝突。在各種實施例中,L1快取記憶體202可包含儲存緩衝器232,配置成在將儲存請求寫入到記憶體單元212中之前暫時保持所述儲存請求。
另外,在一個實施例中,L2快取記憶體204可(經由信號297)向記憶體單元212供應填充數據。在這種實施例中,填充數據可包含對記憶體單元212的寫入操作或存取。在所示出的實施例中,L1快取記憶體202可以不包含填充數據緩衝器,且因此可能必須完成填充請求284而不管是否發生衝突。在這種實施例中,任何衝突負載請求282可能都必須延遲或重新開始。應理解,上文僅僅是並未限制所公開主題的一個說明性實例。
在所示出的實施例中,在向L1快取記憶體202發送數據297之前,L2快取記憶體204可配置成提醒L1快取記憶體202預期填充請求284完成。在這種實施例中,上文操作可經由傳入填充信號299(或有時稱作喚醒信號)來完成。在這種實施例中,傳入填充信號299可包含時序資訊和位址資訊。舉例來說,填充信號299可在遞送填充數據297之前6個迴圈到達。因此,L1快取記憶體202可以知道傳入填充信號299的到達指示填充數據297將發生在6個迴圈後。應理解,上文僅僅是並未限制所公開主題的一個說明性實例。類似地,傳入填充信號299可包含與填充數據297相關聯的虛擬位址或物理位址。
傳統上,此傳入填充信號299可能剛用以喚醒L1快取記憶體且允許將電能施加到相關儲存體216和路214。然而,在所示出的實施例中,還可將傳入填充信號299發送到負載調度器222。負載調度器222可隨後接受填充請求284(或更準確地說是與填充請求284相關聯的時序資訊和位址資訊)並將其與所述負載調度器已試圖調度的負載請求282進行比較。
在這種實施例中,負載調度器222可配置成確定將在何時填充每一負載請求282(即從記憶體單元212讀取到執行單元)。使用包含在傳入填充信號299中的資訊,負載調度器299可佈置負載請求282的次序以使得任何衝突負載請求282在傳入填充請求284之前或之後發生。
然而,在一些實施例中,或許並不可能避免衝突。在這種實施例中,負載調度器222可促使負載請求282被拒絕且重新開始或重放。然而,可顯著地減少此補救的發生。
圖3是根據所公開主題的系統399的實例實施例的框圖。在一個實施例中,系統399可包含以路和儲存體佈置的多個記憶體單元。
具體地說,在所示出的實施例中,數據陣列或記憶體單元可以4個路(路0到路3)和8個儲存體(儲存體0到儲存體7)佈置。應理解,上文僅僅是並未限制所公開主題的一個說明性實例。將這些單元編號為300到307、310到317、320到327以及330到337,其中第二位數是對應的路,且第三位元數是對應的儲存體。在所示出的實施例中,單元的每一路/儲存體可包含單個讀取/寫入埠,以使得路/儲存體每次僅可發生一次讀取或寫入。假定以物理方式標記單元的每一儲存體,且從而使用負載或儲存的物理位址來檢查快取記憶體命中。
在所示出的實施例中,傳入填充信號可能已指示填充請求將(在X個迴圈後)傳入到與路1的儲存體4到儲存體7(單元314到單元317)相對應的位址。在這種實施例中,如果負載請求試圖在相同迴圈下對這些相同單元314到單元317進行存取,那麼單個讀取/寫入埠將不能夠對其進行處理,且將發生衝突。
在所示出的實施例中,負載調度器可包含四個未決負載請求。
Load-A可與儲存體4相關聯。
Load-B可與儲存體6和儲存體7相關聯。
Load-C可與儲存體1相關聯。
且Load-D可以不與任何儲存體相關聯,因為其虛擬位址(virtual address;VA)可能還未轉換成物理位址。
應理解,上文僅僅是並未限制所公開主題的少數說明性實例。
應注意,在此實例實施例中,負載調度器可以知道與特定負載請求相關聯的儲存體,但可能不知道與特定負載請求相關聯的路。如上文所描述,4路集關聯可將數據從一位址放置到4個路中的任一個中。可以不在調度階段期間確定L1快取記憶體選擇哪一個路。應理解,上文僅僅是並未限制所公開主題的一個說明性實例。
因此,歸因於傳入填充信號,負載調度器知道,如果希望避免衝突,那麼負載調度器應避免儲存體4到儲存體7。在這種實施例中,負載調度器可跳過Load-A(儲存體4)和Load-B(儲存體6和儲存體7)以選擇Load-C。在這種實施例中,負載調度器可將Load-C選取為與傳入填充請求結果發生相同的迴圈。
應注意,在無路資訊的情況下,Load-A與Load-B的衝突本質僅僅是推測性的。但如果有可能,那麼負載調度器便可配置成保守操作且試圖避免任何衝突。此外,Load-A和Load-B分別延遲1個迴圈的損失並不與在衝突確實發生且負載請求必須從頭開始重放時將發生的損失一樣大。
在各種實施例中,負載調度器或許並不能夠延遲負載請求,在這種情況下,負載請求可重放。此重放活動可以是部分或整體的。此外,作為最後手段,負載調度器可僅試圖重放負載請求。
回到圖2,在另一實例實施例中,負載調度器222在迴圈0下接收傳入填充信號299。在一個實施例中,接收傳入填充信號299指示在迴圈5下填充數據297將由L1快取記憶體202接收。且在迴圈7下,在所需預處理之後,填充數據297將被寫入到記憶體單元212中。因此,將在迴圈7下發生待避免的衝突(如果有的話)。此外,傳入填充信號299指示將發生對儲存體4到儲存體7的寫入操作。
同樣,如上文所描述,負載調度器222尋找將不產生衝突的負載請求282。如果找到,那麼負載調度器222便可為迴圈7調度非衝突負載請求282。類似地,在迴圈7之前或之後,可調度任何衝突負載請求282。舉例來說,可為迴圈8調度與儲存體4到儲存體7相關聯的負載請求282。相反,可為迴圈7調度與儲存體0到儲存體3相關聯的負載請求282,其中所述負載請求將不與填充請求284相衝突。在各種實施例中,這可能意味著使負載請求在佇列中向前或向後移動。在一個實施例中,不調度或移動負載請求282的一種方式為通過設置或清除與對應負載請求282相關聯的就緒位。
在各種實施例中,L1快取記憶體202可包含控制暫存器242集。在一個這類實施例中,控制暫存器242可指示在接收到傳入填充信號299與可能發生衝突的迴圈之間的迴圈數目。但,在另一實施例中,因為接收傳入填充信號299與可發生衝突的迴圈之間的時間可為確定性的,所以基於實施例,負載調度器222可將所述值作為常數來對待。
在另一實施例中,控制暫存器242可指示負載調度器222將在避免衝突時所採用的攻擊性策略或級別。舉例來說,可僅允許負載調度器222跳過或延遲閾值數目的未決負載請求282。
如上文所描述,在各種實施例中,時序資訊和位址資訊可僅表明潛在衝突,因為例如負載和填充可能對不同的路進行存取。如果在負載調度器222必須選取負載請求282來履行時,路資訊不可用,那麼僅基於儲存體資訊而對負載填充衝突進行的預測可以是保守的。在此情境下,負載調度器222可通過以下操作而平衡或補償此保守性:僅當有較高可能性存在準備被選取且將不衝突的其它負載請求282時,允許重新調度(潛在)衝突負載請求282。
在這種實施例中,已知的負載請求282的位址越長,存在也已知其位址的其它負載請求282的概率就越高。因此,存在更多可能並不衝突的候選負載請求282。在各種實施例中,這些額外候選負載請求282可那時最舊的負載請求282更新。
在一個實施例中,負載調度器222可配置成當存在多於某一數目、其位址已知的未決負載請求(例如3個這類未決負載請求282)時,僅重新調度(潛在)衝突負載請求282。在另一實施例中,負載調度器222可配置成當最舊的負載請求282的位址在多於某一數目的迴圈(例如2個迴圈)已知時,僅重新調度(潛在)衝突負載請求282。在這種實施例中,這些閾值可由儲存在控制暫存器242中的值規定。應理解,上文僅僅是並未限制所公開主題的少數說明性實例。
圖4是根據所公開主題的系統400的實例實施例的框圖。在各種實施例中,如上文所描述,系統400可以是記憶體層級的部分。
在所示出的實施例中,系統400可包含L1快取記憶體402和L2快取記憶體204。執行單元未繪示。
如上文所描述,在所示出的實施例中,L1快取記憶體402可包含多個記憶體單元212,所述多個記憶體單元以路214和儲存體216佈置,且包含固定數目的讀取和/或寫入埠218。如上文所描述,如果進入記憶體單元212的讀取或寫入請求多於讀取/寫入埠218可處理的讀取或寫入請求,那麼便發生衝突。此外,在所示出的實施例中,L1快取記憶體402可包含負載調度器222、儲存緩衝器232以及控制暫存器242。
在所示出的實施例中,L1快取記憶體402可包含儲存調度器或電路424。儲存調度器424可配置成接收由執行單元發起的寫入操作並相應地對其進行調度。在各種實施例中,儲存調度器424還可接收傳入填充信號299且至少部分地將其用以調度儲存請求482。一般來說,這可以不實施,因為讀取/寫入埠218和儲存緩衝器232一般緩解任何儲存/填充衝突。
在所示出的實施例中,L1快取記憶體402可包含配置成至少部分地重放(例如由於衝突而)未被履行的負載請求282的重放佇列或電路426。在這種實施例中,重放佇列426還可接收傳入填充信號299且至少部分地將其用以確定應重放哪些負載請求282,或用以延遲對負載請求282的重放以避免未來的負載/填充衝突。
在所示出的實施例中,L1快取記憶體402可包含配置成至少暫時地儲存填充請求的結果(即填充數據297)的填充緩衝器或電路434。在這種實施例中,發生至少兩種可能性。
首先,負載調度器222可配置成延遲填充數據297的寫入以及延遲或重新調度負載請求282。在這種實施例中,負載調度器222可具有更多關於如何避免衝突的選擇方案。
其次,當圖2的系統200包含傳入填充信號299到達的時間與當填充數據297將寫入到記憶體單元212中的時間之間的確定性值時,填充緩衝器434使得延遲量有可能(在一些實施例中)成為非確定性的。在這種實施例中,填充緩衝器434可為負載調度器222提供關於期望將填充數據297寫入到記憶體單元212中的時間或迴圈的資訊。在這種實施例中,負載調度器222可隨後基於這一時序數據來重新調度。另外,在這種實施例中,傳入填充信號299可以不包含時序資訊,或僅包含時序資訊,所述時序資訊指示在可寫入填充數據297之前的迴圈的最小數目,但不指示迴圈的實際的確定性數目。應理解,上文僅僅是並未限制所公開主題的少數說明性實例。
在各種實施例中,不同于上文所描述,L1快取記憶體402可配置成在負載調度器222必須選取或調度負載請求282之前,確定將從哪一路讀取負載請求282。在這種實施例中,負載調度器222可配置成當負載請求282與填充請求284的路和儲存體兩者相衝突時僅重新調度負載請求282。在這種實施例中,可以高得多的準確率來預測負載/填充衝突。
圖5是資訊處理系統500的示意性框圖,其可包含根據所公開主題的原理形成的半導體裝置。
參考圖5,資訊處理系統500可包含根據所公開主題的原理構建的裝置中的一個或多個。在另一實施例中,資訊處理系統500可採用或執行根據所公開主題的原理的一種或多種技術。
在各種實施例中,資訊處理系統500可包含計算裝置,例如手提式電腦、臺式電腦、工作站、伺服器、刀片伺服器、個人數位助理、智慧手機、平板電腦以及其它適當的電腦或其虛擬機器或虛擬計算裝置。在各種實施例中,資訊處理系統500可由使用者(未繪示)使用。
根據所公開主題的資訊處理系統500可更包含中央處理單元(central processing unit;CPU)、邏輯或處理器510。在一些實施例中,處理器510可包含一個或多個功能單元塊(functional unit blocks;FUBs)或組合邏輯塊(combinational logic blocks;CLBs)515。在這種實施例中,組合邏輯塊可包含各種布林邏輯操作(Boolean logic operation)(例如與NAND、NOR、NOT、XOR)、穩定邏輯裝置(例如觸發器、鎖存器)、其它邏輯裝置或其組合。這些組合邏輯操作可以簡單或複雜方式配置成處理輸入信號以實現所需結果。應理解,在描述同步組合邏輯操作的少數說明性實例時,所公開主題不受如此限制且可包含非同步作業或其混合。在一個實施例中,組合邏輯操作可包括多個互補金屬氧化物半導體(complementary metal oxide semiconductors;CMOS)電晶體。在各種實施例中,這些CMOS電晶體可佈置到執行邏輯操作的門中;但應理解,可使用其它技術且所述其它技術在所公開主題的範圍內。
根據所公開主題的資訊處理系統500還可包含揮發性記憶體520(例如隨機存取記憶體(Random Access Memory;RAM))。根據所公開主題的資訊處理系統500還可包含非揮發性記憶體530(例如硬碟驅動、光學記憶體、NAND或快閃記憶體)。在一些實施例中,可將揮發性記憶體520、非揮發性記憶體530或其組合或部分稱作“儲存介質”。在各種實施例中,揮發性記憶體520和/或非揮發性記憶體530可配置成以半永久或基本上永久的形式儲存數據。
在各種實施例中,資訊處理系統500可包含一個或多個網路介面540,所述網路介面配置成允許資訊處理系統500成為通信網路的部分且經由通信網路通信。Wi-Fi協定的實例可包含但不限於電氣和電子工程師學會(Institute of Electrical and Electronics Engineers;IEEE)802.11g、IEEE 802.11n。蜂窩協定的實例可包含但不限於:IEEE 802.16m(也稱為無線-MAN(都會區網路))增強型、長期演進(Long Term Evolution;LTE)增強型、GSM(全球移動通信系統)的增強數據速率演進(Enhanced Data rates for GSM Evolution;EDGE)、演進高速分組接入(Evolved High-Speed Packet Access;HSPA+)。有線協定的實例可包含但不限於IEEE 802.3(也稱為乙太網(Ethernet))、光纖通道(Fibre Channel)、電力線通信(Power Line communication)(例如HomePlug、IEEE 1901)。應理解,上文僅僅是並未限制所公開主題的少數說明性實例。
根據所公開主題的資訊處理系統500還可包含使用者介面單元550(例如顯示卡、觸覺介面、人機介面裝置)。在各種實施例中,這一使用者介面單元550可配置成從使用者接收輸入和/或向用戶提供輸出。其它種類的裝置同樣可以用於提供與用戶的交互;例如,向用戶提供的回饋可以是任何形式的感覺回饋,例如視覺回饋、聽覺回饋或觸感回饋;且可接收來自用戶的任何形式的輸入,包含聲音、語音或觸感輸入。
在各種實施例中,資訊處理系統500可包含一個或多個其它裝置或硬體元件560(例如顯示器或監測器、鍵盤、滑鼠、相機、指紋讀取器、視頻處理器)。應理解,上文僅僅是並未限制所公開主題的少數說明性實例。
根據所公開主題的資訊處理系統500還可包含一個或多個系統匯流排505。在這種實施例中,系統匯流排505可配置成以通信方式耦合處理器510、揮發性記憶體520、非揮發性記憶體530、網路介面540、使用者介面單元550以及一個或多個硬體元件560。由處理器510處理的數據或從非揮發性記憶體530外部輸入的數據可儲存在非揮發性記憶體530或揮發性記憶體520中。
在各種實施例中,資訊處理系統500可包含或執行一個或多個軟體元件570。在一些實施例中,軟體元件570可包含作業系統(operating system;OS)和/或應用程式。在一些實施例中,OS可配置成向應用程式提供一種或多種服務且管理或充當資訊處理系統500的應用程式與各種硬體元件(例如處理器510、網路介面540)之間的仲介。在這種實施例中,資訊處理系統500可包含一個或多個原生應用程式,所述原生應用程式可在本地(例如在非揮發性記憶體530內)安裝且配置成直接由處理器510執行且直接與OS相互作用。在這種實施例中,原生應用程式可包含預編譯機器可執行代碼。在一些實施例中,原生應用程式可包含配置成將原始程式碼或目標代碼轉換成隨後由處理器510執行的可執行代碼的腳本解譯器((例如C shell(csh))、蘋果腳本(AppleScript)、熱鍵腳本(AutoHotkey))或虛擬執行機(virtual execution machine;VM)(例如Java虛擬機器(Java Virtual Machine)、微軟公共語言運行時(Microsoft Common Language Runtime))。
上文所描述的半導體裝置可使用各種封裝技術來包封。舉例來說,根據所公開主題的原理構建的半導體裝置可使用以下技術中的任一種來包封:層疊封裝(package on package;POP)技術、球柵陣列(ball grid arrays;BGAs)技術、晶片尺寸封裝(chip scale packages;CSPs)技術、塑膠引線晶片載體(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)技術或如本領域的技術人員將已知的其它技術。
方法步驟可由執行電腦程式以對輸入數據進行操作並產生輸出來執行功能的一個或多個可程式設計處理器來執行。方法步驟也可通過例如FPGA(現場可程式設計閘陣列)或ASIC(專用積體電路)的專用邏輯電路來執行,且設備可實施為所述專用邏輯電路。
在各種實施例中,電腦可讀介質可包含在執行時促使裝置執行方法步驟中的至少一部分的指令。在一些實施例中,電腦可讀介質可包含在磁性介質、光學介質、其它介質或其組合(例如CD-ROM、硬碟驅動、唯讀記憶體、快閃記憶體驅動器)中。在這種實施例中,電腦可讀介質可以是有形且非暫時性實施的製品。
在已參考實例實施例描述所公開主題的原理時,本領域的技術人員將容易理解的是,可在不脫離這些所公開概念的精神和範圍的情況下對其作出各種改變以及修改。因此,應理解,上述實施例並非限制性的,而僅為說明性的。因此,所公開概念的範圍將通過所附申請專利範圍和其等效物所最廣泛容許的解釋來確定,且不應受前文描述的約束或限制。因此,應理解,所附申請專利範圍旨在涵蓋如屬於實施例的範圍內的所有這類修改和改變。
100、200、399、400‧‧‧系統
102‧‧‧執行單元
106‧‧‧記憶體系統
116、202、402‧‧‧1級快取記憶體
118、128、138‧‧‧數據
126、204‧‧‧2級快取記憶體
150、282‧‧‧負載請求
152、284‧‧‧填充請求
136‧‧‧主記憶體
190‧‧‧指令
212‧‧‧記憶體單元
214‧‧‧路
216‧‧‧儲存體
218‧‧‧讀取和/或寫入埠
222、224‧‧‧負載/儲存調度器
232‧‧‧儲存緩衝器
242‧‧‧控制暫存器
297‧‧‧填充數據
299‧‧‧傳入填充信號
300、301、302、303、304、305、306、307、310、311、312、313、314、315、316、317、320、321、322、323、324、325、326、327、330、331、332、333、334、335、336、337‧‧‧單元
424‧‧‧儲存調度器
426‧‧‧重放佇列
434‧‧‧填充緩衝器
482‧‧‧儲存請求
500‧‧‧資訊處理系統
505‧‧‧系統匯流排
510‧‧‧處理器
515‧‧‧組合邏輯塊
520‧‧‧揮發性記憶體
530‧‧‧非揮發性記憶體
540‧‧‧網路介面
550‧‧‧使用者介面單元
560‧‧‧硬體元件
570‧‧‧軟體元件
圖1是根據所公開主題的系統的實例實施例的框圖。 圖2是根據所公開主題的系統的實例實施例的框圖。 圖3是根據所公開主題的系統的實例實施例的框圖。 圖4是根據所公開主題的系統的實例實施例的框圖。 圖5是可包含根據所公開主題的原理所形成裝置的資訊處理系統的示意性框圖。 各圖中的相同圖式標號指示相同元件。

Claims (20)

  1. 一種設備,包括: 第一快取記憶體,配置成儲存數據; 第二快取記憶體,配置成回應於填充請求而向所述第一快取記憶體供應數據和傳入填充信號;以及 執行電路,配置成經由負載請求從所述第一快取記憶體取回數據; 其中所述第一快取記憶體配置成: 從所述傳入填充信號獲得與所述填充請求相關聯的位址資訊和時序資訊,以及 至少部分地基於所述位址資訊和所述時序資訊來調度所述負載請求以避免負載填充衝突。
  2. 如申請專利範圍第1項所述的設備,其中所述第一快取記憶體包括所述第一快取記憶體的每一儲存體的單個讀取寫入埠。
  3. 如申請專利範圍第1項所述的設備,其中所述第一快取記憶體包括負載調度器電路,配置成: 確定一系列負載/填充請求中的每一個將在何時由所述第一快取記憶體處理, 回應於所述位址資訊和所述時序資訊來至少部分地預測是否可能發生所述負載填充衝突,以及 如果可能發生所述負載填充衝突,調度不具有負載填充衝突的負載請求。
  4. 如申請專利範圍第1項所述的設備,其中所述第一快取記憶體包括重放操作的調度器電路, 其中,所述調度器電路配置成: 回應於所述位址資訊和所述時序資訊來至少部分地預測是否可能發生所述負載填充衝突,以及 如果可能發生所述負載填充衝突,重放與所述負載填充衝突相關聯的負載請求。
  5. 如申請專利範圍第1項所述的設備,其中所述第一快取記憶體包含多個儲存體和路;且 所述位址資訊指示所述填充請求將對哪一路和儲存體進行存取。
  6. 如申請專利範圍第5項所述的設備,其中所述負載請求與儲存體相關聯;且 其中所述第一快取記憶體配置成僅當所述負載請求和所述填充請求不與相同儲存體相關聯時才選擇用於處理的所述負載請求。
  7. 如申請專利範圍第6項所述的設備,其中所述負載請求與路相關聯;且 其中所述第一快取記憶體配置成僅當所述負載請求和所述填充請求不與相同儲存體和相同路相關聯時才選擇用於處理的所述負載請求。
  8. 如申請專利範圍第1項所述的設備,其中所述第一快取記憶體配置成通過重放衝突負載請求來調度負載請求。
  9. 如申請專利範圍第1項所述的設備,其中所述第一快取記憶體還配置成通過以下操作來調度負載請求: 基於取決於以下情況所確定的需求而選擇性地重新調度衝突負載請求 僅當所述衝突負載請求的位址在多於第一數目的機器迴圈已知,或 存在多於第二數目的未決負載請求時。
  10. 一種系統,包括: 處理器電路,配置成: 執行與數據相關聯的指令,以及 經由負載請求取回儲存在第一快取記憶體中的數據;以及 記憶體系統,包括: 所述第一快取記憶體,配置成儲存所述處理器電路的數據,和 第二快取記憶體,配置成回應於填充請求而向所述第一快取記憶體供應數據和傳入填充信號;且 其中所述第一快取記憶體配置成: 從所述傳入填充信號獲得與所述填充請求相關聯的位址資訊和時序資訊,以及 至少部分地基於所述位址資訊和所述時序資訊來調度所述負載請求以避免負載填充衝突。
  11. 如申請專利範圍第10項所述的系統,其中所述第一快取記憶體包括負載調度器電路,配置成: 確定一系列負載/填充請求中的每一個將在何時由所述第一快取記憶體處理, 回應於所述位址資訊和所述時序資訊來至少部分地預測是否可能發生所述負載填充衝突,以及 如果可能發生所述負載填充衝突,調度不具有負載填充衝突的負載請求。
  12. 如申請專利範圍第10項所述的系統,其中所述第一快取記憶體包括重放操作的調度器電路,且 其中所述調度器電路配置成: 回應於所述位址資訊和所述時序資訊來至少部分地預測是否可能發生所述負載填充衝突,以及 如果可能發生所述負載填充衝突,重放與所述負載填充衝突相關聯的負載請求。
  13. 如申請專利範圍第10項所述的系統,其中所述第一快取記憶體包含多個儲存體和路; 其中所述位址資訊指示所述填充請求將對哪一路和儲存體進行存取; 其中所述負載請求與儲存體相關聯;以及 其中所述第一快取記憶體還配置成僅當所述負載請求和所述填充請求不與相同儲存體相關聯時才選擇用於處理的所述負載請求。
  14. 如申請專利範圍第13項所述的系統,其中所述負載請求與路相關聯;且 其中所述第一快取記憶體還配置成僅當所述負載請求和所述填充請求不與相同儲存體和相同路相關聯時才選擇用於處理的所述負載請求。
  15. 如申請專利範圍第10項所述的系統,其中所述第一快取記憶體還配置成通過重放衝突負載請求來調度負載請求。
  16. 如申請專利範圍第10項所述的系統,其中所述第一快取記憶體還配置成通過以下操作來調度負載請求: 基於取決於以下所確定的靜態或動態需求而選擇性地重新調度衝突負載請求 僅當所述衝突負載請求的位址在多於第一數目的機器迴圈已知,或 存在多於第二數目的未決負載請求時。
  17. 一種設備,包括: 多個記憶體單元,包括多個儲存體和路,且配置成儲存數據;以及 負載調度器電路,配置成在將由所述設備處理多個負載請求中的每一個時進行調度, 其中處理負載請求包括從所述多個記憶體單元取回數據;以及 其中所述負載調度器電路配置成: 從傳入填充信號獲得與填充請求相關聯的位址資訊和時序資訊,以及 至少部分地基於所述位址資訊和所述時序資訊來調度所述多個負載請求以避免負載填充衝突。
  18. 如申請專利範圍第17項所述的設備,其中所述多個記憶體單元包括每一儲存體/路組合的單個讀取寫入埠,以使得儲存體-路組合每次僅可能發生一次讀取或寫入。
  19. 如申請專利範圍第17項所述的設備,其中所述位址資訊指示所述填充請求將對哪一路和儲存體進行存取; 其中每一負載請求與對應儲存體相關聯;以及 其中所述負載調度器電路同時還配置成僅當所述負載請求和所述填充請求不與相同儲存體相關聯時才選擇用於處理的負載請求。
  20. 如申請專利範圍第17項所述的設備,其中所述負載調度器電路還配置成通過重放衝突負載請求來調度負載請求。
TW107134715A 2017-11-06 2018-10-01 用以避免負載填充衝突的設備以及系統 TWI743400B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762582279P 2017-11-06 2017-11-06
US62/582,279 2017-11-06
US15/900,789 US10649900B2 (en) 2017-11-06 2018-02-20 Method to avoid cache access conflict between load and fill
US15/900,789 2018-02-20

Publications (2)

Publication Number Publication Date
TW201933120A true TW201933120A (zh) 2019-08-16
TWI743400B TWI743400B (zh) 2021-10-21

Family

ID=66328519

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107134715A TWI743400B (zh) 2017-11-06 2018-10-01 用以避免負載填充衝突的設備以及系統

Country Status (4)

Country Link
US (1) US10649900B2 (zh)
KR (1) KR20190051790A (zh)
CN (1) CN109753444B (zh)
TW (1) TWI743400B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754580B2 (en) * 2017-10-23 2020-08-25 Micron Technology, Inc. Virtual partition management in a memory device
JP2022175420A (ja) * 2021-05-13 2022-11-25 富士通株式会社 演算処理装置および演算処理方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455924A (en) * 1993-02-09 1995-10-03 Intel Corporation Apparatus and method for partial execution blocking of instructions following a data cache miss
US5930819A (en) * 1997-06-25 1999-07-27 Sun Microsystems, Inc. Method for performing in-line bank conflict detection and resolution in a multi-ported non-blocking cache
US6374344B1 (en) * 1998-11-25 2002-04-16 Compaq Information Technologies Group L.P. (Citg) Methods and apparatus for processing load instructions in the presence of RAM array and data bus conflicts
US6539457B1 (en) * 2000-02-21 2003-03-25 Hewlett-Packard Company Cache address conflict mechanism without store buffers
US7490200B2 (en) 2005-02-10 2009-02-10 International Business Machines Corporation L2 cache controller with slice directory and unified cache structure
US7461238B2 (en) 2006-06-07 2008-12-02 International Business Machines Corporation Simple load and store disambiguation and scheduling at predecode
US20070288725A1 (en) 2006-06-07 2007-12-13 Luick David A A Fast and Inexpensive Store-Load Conflict Scheduling and Forwarding Mechanism
CN101043289A (zh) * 2006-06-16 2007-09-26 华为技术有限公司 一种解除存储器读写冲突的方法和装置
KR101388134B1 (ko) 2007-10-01 2014-04-23 삼성전자주식회사 뱅크 충돌 방지 장치 및 방법
US8180981B2 (en) * 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
GB2499534B (en) * 2010-11-01 2018-09-19 Seven Networks Llc Caching adapted for mobile application behavior and network conditions
US9128701B2 (en) * 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US8843690B2 (en) * 2011-07-11 2014-09-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Memory conflicts learning capability
WO2013014702A1 (en) * 2011-07-22 2013-01-31 Hitachi, Ltd. Computer system and data migration method thereof
US9411739B2 (en) * 2012-11-30 2016-08-09 Intel Corporation System, method and apparatus for improving transactional memory (TM) throughput using TM region indicators
US9448936B2 (en) 2014-01-13 2016-09-20 Apple Inc. Concurrent store and load operations
CN104932989B (zh) * 2014-03-21 2020-05-19 三星电子株式会社 数据到高速缓冲层次低延迟层级中的机会性高速缓冲注入
US9772944B2 (en) * 2014-06-27 2017-09-26 International Business Machines Corporation Transactional execution in a multi-processor environment that monitors memory conflicts in a shared cache
US9678875B2 (en) * 2014-11-25 2017-06-13 Qualcomm Incorporated Providing shared cache memory allocation control in shared cache memory systems
US9626299B2 (en) * 2015-05-01 2017-04-18 Intel Corporation Changing a hash function based on a conflict ratio associated with cache sets

Also Published As

Publication number Publication date
US20190138450A1 (en) 2019-05-09
KR20190051790A (ko) 2019-05-15
CN109753444A (zh) 2019-05-14
CN109753444B (zh) 2024-02-20
TWI743400B (zh) 2021-10-21
US10649900B2 (en) 2020-05-12

Similar Documents

Publication Publication Date Title
US11537427B2 (en) Handling memory requests
US20210157596A1 (en) Executing Memory Requests Out of Order
US9665491B2 (en) Adaptive mechanism to tune the degree of pre-fetches streams
KR102513446B1 (ko) 집적된 컨펌 대기열 회로를 포함하는 장치 및 그것의 동작 방법
US20150199276A1 (en) Pre-fetch confirmation queue
US10168957B2 (en) Directed placemat of data in memory
US9569361B2 (en) Pre-fetch chaining
US20150268961A1 (en) Decoupling l2 btb from l2 cache to accelerate search for miss after miss
US20170060754A1 (en) Capturing temporal store streams into cpu caches by dynamically varying store streaming thresholds
KR20170085940A (ko) 미세 레벨의 메모리 전력 소비 제어 메커니즘
US20230418668A1 (en) Scheduling Tasks in a Processor
TWI743400B (zh) 用以避免負載填充衝突的設備以及系統
TW201832087A (zh) 偵測與處理儲存串流的系統與方法
US10963388B2 (en) Prefetching in a lower level exclusive cache hierarchy
Moeng et al. ContextPreRF: Enhancing the performance and energy of GPUs with nonuniform register access
KR20210152929A (ko) Ssd에서의 라이트 명령하기
TWI650642B (zh) 用於機會式快取注入資料至快取階層之較低延遲層級的方法、設備及系統
CN111723025A (zh) 电子设备和电子系统
CN104932989B (zh) 数据到高速缓冲层次低延迟层级中的机会性高速缓冲注入
US10922232B1 (en) Using cache memory as RAM with external access support
US20240230612A1 (en) Handling memory requests
US20200097421A1 (en) Data fast path in heterogeneous soc
CN110928812A (zh) 电子设备、电子系统和存储器控制器