TWI536167B - 共享記憶體的推測式許可擷取 - Google Patents
共享記憶體的推測式許可擷取 Download PDFInfo
- Publication number
- TWI536167B TWI536167B TW102133162A TW102133162A TWI536167B TW I536167 B TWI536167 B TW I536167B TW 102133162 A TW102133162 A TW 102133162A TW 102133162 A TW102133162 A TW 102133162A TW I536167 B TWI536167 B TW I536167B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- column
- speculative
- state
- computer system
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
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)
Description
本發明大體上關於電腦系統。
處理器通常使用多處理器快取的MESI狀態一致性機制,其中快取中的每一列被標記為「修改(Modified)」、「專用(Exclusive)」、「共享(Shared)」、或「無效(Invalid)」。唯有在首先發送一監視至其他快取以將同級快取中的所有其他可能共享列轉換為「無效」之後,及接著最後允許將一共享列更新為「專用」,才可將該共享列轉換為「專用」或「修改」(例如,當一儲存想要撤回至一共享列時)。可能的狀態組合係根據MESI狀態一致性機制加以追蹤及實施。
然而,習用系統的問題是,當儲存命中共享快取列時,系統有兩個選擇。其可等待所有監視在允許儲存完成之前完成,這減少機器的平行處理,或其可收回共享列,然後將儲存完成至一無效列。這允許更多平行處理,因為處理器可繼續執行其他程式碼,但不允許任何稍後載入看到該列中所含有的資料。其還增加延遲以執行收回。
本發明具體實施例利用推測式快取機制,藉此以MESI狀態(如,「修改」、「專用」、「共享」、或「無效」)標記所有快取列,但亦以有關該列之推測式異動狀態的複數個額外位元標記所有快取列。此允許各異動被極細微地認可(如,全部立即記錄)或回復(如,捨棄所有變更)。
在一具體實施例中,本發明包含用於存取共享記憶體之推測式許可擷取的電腦實施方法。該方法包括自一處理器核心接收一儲存以修改一共享快取列,及回應於接收該儲存,將該快取列標記為推測式。接著根據該儲存修改該快取列。在接收一修改許可後,隨即可認可該修改的快取列。
上述為發明內容,且因此按必要性含有簡單、一般性的說明並省略細節;所以熟習本技術者應明白,本發明內容僅為說明性,且無意以任何方式加以限制。參考以下提出的非限制性詳細說明,即可明瞭本發明僅如申請專利範圍所定義的其他方面、發明特徵、及優點。
100‧‧‧處理器核心
101‧‧‧快取管理單元
102‧‧‧L1快取
103‧‧‧L2快取
202‧‧‧快取列
500‧‧‧程序
501-506‧‧‧步驟
600‧‧‧電腦系統
601‧‧‧CPU
610‧‧‧繪圖處理器單元(GPU)
612‧‧‧顯示器
614‧‧‧本機繪圖記憶體
615‧‧‧系統記憶體
本發明藉由舉例而非限制,以附圖的各個圖式進行解說,且其中相似參考數字代表相似元件。
圖1顯示根據本發明之一具體實施例之快取管理單元的圖式。
圖2顯示根據本發明之一具體實施例的快取列及複數個推測式狀態位元。
圖3圖解根據本發明之一具體實施例的快取列更新程序。
圖4圖解根據本發明之一具體實施例的快取列更新程序,其中兩個更新同時進行。
圖5顯示根據本發明之一具體實施例之推測式許可擷取程序的流程圖。
圖6顯示根據本發明之一具體實施例的電腦系統。
接著將詳細參考本發明的較佳具體實施例,其實例以附圖解說。儘管本發明將結合較佳具體實施例加以說明,但應明白,這些具體實施例並非用來限制本發明於其中。相反地,本發明旨在涵蓋替代方案、修改、及等效物,這些均包括在如隨附申請專利範圍所界定的本發明精神及範疇中。再者,在以下本發明具體實施例的詳細說明中,提出許多特定細節以徹底瞭解本發明。然而,一般技術者應明白,在沒有這些特定細節的情況下,亦可實施本發明。在其他實例中,為避免不必要地模糊本發明具體實施例的各方面,未詳細描述已知的方法、過程、組件、及電路。
標記與命名:
以下詳細說明的某些部分就電腦記憶體內資料位元操作的過程、步驟、邏輯區塊、處理、及其他符號表示法提出論述。這些說明及表示法係熟習資料處理技術者所使用的方法,以最有效的方式將其運作本質傳達給其他熟習本技術者。過程、電腦執行步驟、邏輯區塊、處理等在此且一般被設想為導致所要結果之自相一致的步驟或指令序列。此等步驟是需要物理量之物理操控的步驟。這些物理量通常(但並非一定)採取的形式是可在電腦系統的電腦可讀儲存媒體中加以儲存、傳輸、組合、比較、及以其他方式操控的非暫時性電信號或磁信號。已證實有時很方便的是(主要為了一般的使用)將這些信號稱為位元、值、元件、符號、字元、條件項、數字等。
然而,應明白,所有這些術語及相似術語係為了和相應物理量相關聯,且只是應用於這些物理量的便利標記。除非另外明確說明為明顯不同於以下論述,應明白,在本發明所有方面,利用諸如「處理」、「存取」、「執行」、「儲存」或「顯現」等術語的論述,是指電腦系統或類似電子計算裝置的動作與程序,電腦系統或類似電子計算裝置操控電腦系統暫存器與記憶體中表示為物理(電子)量的資料,及將其變換為電腦系統記憶體或暫存器或其他此類資訊儲存、傳送或顯示裝置中同樣表示為物理量的其他資料。
圖1顯示根據本發明之一具體實施例之快取管理單元的圖式。如圖1所顯示,快取管理單元101耦合至L1快取102及L2快取103。L1快取耦合至處理器核心100,其利用通信交換指令與包含快取列的資料。
本發明具體實施例利用推測式快取機制,藉此以MESI狀態(如,「修改」、「專用」、「共享」、或「無效」)標記所有快取列,但亦以有關該列之推測式異動狀態的複數個額外位元標記所有快取列。此允許各異動被極細微地認可(如,全部立即記錄)或回復(如,捨棄所有變更)。
圖2顯示根據本發明之一具體實施例的快取列202及複數個推測式狀態位元。在一具體實施例中,藉由增加以下項目至快取列來實施快取之此推測式異動行為:一推測式位元,表示該列在目前異動中已被修改;及一觀察位元,表示該列在目前異動中已被讀取。在認可或回復後即清除推測式狀態位元(如,「推測式」及「觀察」位元),但在回復後,「推測式」快取列亦從修改被轉換至無效。在異動前的任何修改資料必須寫回至外層快取作為更動的快取列。因此,只要「推測式」列及「觀察」列二者停留在快取中直到異動結束,將由系統、或系統中其他處理器的觀點極細微地看見異動。
例如,當異動儲存未命中(如,或命中一無效列)時,推測式狀態位元幫助確保在藉由對可能含有該列的任何其他快取完成監視以擷取該列的專用許可之前,將不認可異動。這可藉由
具有標記該列為專用但對監視為不可見的少量狀態機器或特殊快取列來完成。這些狀態機器記錄該列直到對其他快取完成所有監視,及接著將該列標記為現在對監視為可見。
因此,此具體實施例符合一般MESI規則:若任何快取具有作為「修改」或「專用」的列,則所有其他同級快取必須具有作為「無效」的列。然而,根據本發明具體實施例,當一列係為「修改」或「專用」且對監視為不可見時,處理器正在有效地計算狀態:該列將在異動結束時存在其中,而非實際上將該列標記為完整MESI協定中的「修改」或「專用」的列。
例如,當一監視命中對監視可見的「觀察」或「推測式」列時,必須在監視可完成之前認可或回復針對彼處理器的目前異動。一般而言,這表示監視在其命中「觀察」或「推測式」列時造成回復。
根據本發明具體實施例的推測式快取機制有利地能夠避免習用系統的限制。例如,當一異動儲存命中一「共享」列時,習用系統有兩個選擇:1.等待所有監視在允許儲存完成之前完成,因而減少機器的平行處理。2.收回「共享」列,接著完成儲存至一「無效」列。這允許更多平行處理,因為處理器可繼續執行其他程式碼,但不允許任何稍後載入看到該列中所含有的資料。其還增加延遲以執行收回。
根據本發明具體實施例的推測式快取機制提供若干優點。此類更新狀態機器的增加提供功能性。
1.藉由允許機器繼續完成程式碼直到下一個異動界限,許可擷取可針對未命中或已命中共享列的多個儲存重疊。這可因不用連續等待許可請求而提供最佳效能。亦可發出載入未命中,或開始其他較長延遲操作,而不用首先等待所有監視。此外,由於本發明處理器的預先運行模式,因此甚至可忽略異動界限以發現更多未命中請求及將其發送至外部快取。
2.並不保持每個快取列的額外位元,而是可維持記錄目前正被更新之位址的少量狀態機器。這些狀態機器不需要記錄該列在快取系統內駐存在何處,這減少儲存需求且表示更新狀態機器不需要與其他收回狀態機器或可能正在移動快取列的其他機器連結。此外,一旦一更新請求已被發送至外部記憶體系統,便不再需要記錄位址。這允許藉由具有兩組狀態機器進行增強:一組狀態機器保存位址,另一組狀態機器只要等待已送出請求的回應。當與每個快取列之更新位元的實施方案相比時,後一組狀態機器需要極少的儲存量,因而大幅縮減狀態元件數量。
3.命中共享列的儲存可能正命中具有先前未解決之請求的一列。由於請求可傳回或可不傳回專用許可,狀態機器設計允許在做出任何額外請求之前等待既有請求完成,這簡化了快取之間的請求協定並減少冗餘請求,從而改良效能。
4.狀態機器各確保需要在整個快取的所有更新位元上進行邏輯「或」操作才能完成目前異動。由於很難在許多位元上實施「或」操作,狀態機器解決方案不需要過度困難的機制,
諸如困難的實施方案或將更新列移至特殊保存緩衝器的某種其他機器,這將增加延遲。
5.一內含外部快取設計實際上可能不需要在所有情況中在對這些更新請求之一者發送回應之前擷取許可。若外部快取知道該列已不在內部快取中,則其可馬上回應。內部處理器已經回復其異動且將更新列標記為無效,所以回應並無傷大雅。在處理器競爭爭取一列且對其推測式異動無法做出任何進展的情況中,這可明顯幫助效能。這些及其他上述優點由以下圖3及圖4說明的實例操作進行圖解。
圖3圖解根據本發明之一具體實施例的快取列更新程序。如圖3所描繪,圖解兩個共享快取:快取A及快取B。亦顯示相應快取MESI及快取異動。圖3圖解在認可一異動時,更新允許藉由將快取列標記為推測式而執行儲存。「*」代表異動期間不允許認可的時間。
圖4圖解根據本發明之一具體實施例的快取列更新程序,其中兩個更新同時進行。如圖4所描繪,圖解兩個共享快取:快取A及快取B。亦顯示相應快取MESI及快取異動。將兩個更新顯示為其完成異動。如同圖3,圖4圖解在認可一異動時,更新允許藉由將快取列標記為推測式而執行儲存。
圖5顯示根據本發明之一具體實施例之推測式許可擷取程序的流程圖。如圖5所顯示,程序500顯示擷取許可以修改快取列之推測式許可擷取程序的大概步驟。
程序500在步驟501開始,其中自處理器核心接收儲存以修改一共享快取列。在步驟502,將該快取列標記為推測式。在步驟503,根據儲存修改快取列。在步驟504,在收到修改許可的接收後,即認可該修改的快取列。在步驟505,若尚未接收修改許可,則偵測是否已發生快取管理違規。此快取管理違規例如可以是MESI違規。在步驟506,程序500在偵測快取管理違規後即起始復原。
電腦系統平台:
圖6顯示根據本發明之一具體實施例的電腦系統600。電腦系統600描繪根據本發明具體實施例之基本電腦系統的組件,該電腦系統提供特定基於硬體與基於軟體之功能性的執行平台。一般而言,電腦系統600包含至少一個CPU 601、系統記憶體615、及至少一個繪圖處理器單元(GPU)610。CPU 601可經由橋接組件/記憶體控制器(未顯示)耦合至系統記憶體615,或可經由CPU 601內部的記憶體控制器(未顯示)直接耦合至系統記憶體615。GPU 610耦合至顯示器612。顯示GPU 610包括配置/解除配置組件620,用於多執行緒處理器的及時暫存器配置。在GPU 610中亦顯示暫存器縱列627及包含暫存器縱列之複數個暫存器的一個例示性暫存器(如,暫存器625)。一或多個附加GPU可視情況耦合至系統600,以進一步提高其計算能力。GPU 610耦合至CPU 601與系統記憶體615。系統600可實施為例如桌上型電腦系統或伺服
器電腦系統,具有耦合至專用繪圖呈現之GPU 610的強大通用CPU 601。在此一具體實施例中,可包括添加週邊匯流排、專業繪圖記憶體、IO裝置等的組件。同樣地,系統600可實施為手持裝置(如,行動電話等)或機上視訊遊戲機裝置,諸如:Xbox®,可購自華盛頓州Redmond的微軟公司;或PlayStation3®,可購自日本東京的索尼電腦娛樂股份有限公司。
應明白,GPU 610可實施為離散組件、設計經由連接器(如,AGP插槽、PCI-Express插槽等)耦合至電腦系統600的離散繪圖卡、離散積體電路晶粒(如,直接安裝在主機板上),或可實施為包括於電腦系統晶片組組件(未顯示)之積體電路晶粒內的整合GPU。另外,可包括用於GPU 610的本機繪圖記憶體614,以進行高頻寬繪圖資料儲存。
已為了解說及說明而提出本發明具體實施例的以上描述。以上描述的目的不在詳盡無遺或限制本發明於所揭示的精確形式,並可按照以上教示進行許多修改及變化。具體實施例的選擇與說明係為了對本發明的原理及實際應用提出最好的解說,藉此讓熟習本技術者以適於所想特定用途的各種修改,充分利用本發明及各種具體實施例。預期本發明範疇係由本文隨附申請專利範圍及其等效物所定義。
500‧‧‧程序
501-506‧‧‧步驟
Claims (20)
- 一種由一處理器所執行以用於存取一共享記憶體之推測式許可擷取的方法,該方法包含:自一處理器核心接收一儲存以修改在一第一快取中的一第一快取列,其中在該第一快取中的該第一快取列及在一第二快取中的一第二快取列係處於一共享狀態、並包含一相同的資料內容;回應於接收該儲存,將該第一快取列標記為推測式;根據該儲存修改該第一快取列;及在接收基於在該第二快取中的該第二快取列之一目前狀態而決定的一修改許可後,即認可在該第一快取中的該第一快取列中的該儲存。
- 如申請專利範圍第1項所述之方法,更包含:若尚未接收該修改許可,則藉由使用一快取管理單元來偵測是否已發生一快取管理違規;在偵測到該快取管理違規後,即起始一復原;及拒絕認可該第一快取列中的該儲存。
- 如申請專利範圍第1項所述之方法,其中若該第二快取列中的該目前狀態指出該第二快取列係為無效,則發出該修改許可。
- 如申請專利範圍第2項所述之方法,其中該快取管理違規指出該第二快取列的該目前狀態係為一已修改狀態。
- 如申請專利範圍第1項所述之方法,其中將複數個推測式狀態位元附加至該第一快取列以追蹤一推測式狀態。
- 如申請專利範圍第1項所述之方法,其中根據一MESI(修改、專用、共享、或無效)協定維持該第一快取列及該第二快取列。
- 如申請專利範圍第1項所述之方法,其中修改該第一快取列包含:藉由使用一狀態機器來監控對該第一快取列的監視(snoop);並延緩認可直到接收該修改許可。
- 一種非暫態電腦可讀儲存媒體,其上儲存有電腦可執行指令,該等指令若由一電腦系統執行,將使該電腦系統執行一用於存取一共享記憶體之推測式許可擷取的方法,該方法包含:自一處理器核心接收一儲存以修改在一第一快取中的一第一快取列,其中在該第一快取中的該第一快取列及在一第二快取中的一第二快取列係處於一共享狀態、並包含一相同的資料內容;回應於接收該儲存,將該第一快取列標記為推測式;根據該儲存修改該第一快取列;及在接收基於在該第二快取中的該第二快取列之一目前狀態而決定的一修改許可後,即認可在該第一快取中的該第一快取列中的該儲存。
- 如申請專利範圍第8項所述之非暫態電腦可讀儲存媒體,其中該方法更包含:若尚未接收該修改許可,則藉由使用一快取管理單元來偵測是否已發生一快取管理違規;在偵測到該快取管理違規後,即起始一復原;及拒絕認可該第一快取列中的該儲存。
- 如申請專利範圍第9項所述之非暫態電腦可讀儲存媒體,其中若該第二快取列中的該目前狀態指出該第二快取列係為無效,則發出該修改許可。
- 如申請專利範圍第8項所述之非暫態電腦可讀儲存媒體,其中該快取管理違規指出該第二快取列的該目前狀態係為一已修改狀態。
- 如申請專利範圍第8項所述之非暫態電腦可讀儲存媒體,其中將複數個推測式狀態位元附加至該第一快取列以追蹤一推測式狀態。
- 如申請專利範圍第8項所述之非暫態電腦可讀儲存媒體,其中根據一MESI(修改、專用、共享、或無效)協定維持該第一快取列。
- 如申請專利範圍第8項所述之非暫態電腦可讀儲存媒體,其中修改該第一快取列包含:藉由使用一狀態機器來監控對該第一快取列的監視;並延緩認可直到接收該修改許可。
- 一種電腦系統,包含:一處理器,其耦合至一非暫態電腦可讀儲存媒體及執行電腦可讀程式碼以使該電腦系統:自一處理器核心接收一儲存以修改在一第一快取中的一第一快取列,其中在該第一快取中的該第一快取列及在一第二快取中的一第二快取列係處於一共享狀態、並包含一相同的資料內容;回應於接收該儲存,將該第一快取列標記為推測式;根據該儲存修改該第一快取列;及在接收基於在該第二快取中的該第二快取列之一目前狀態而決定的一修改許可後,即認可在該第一快取中的該第一快取列中的該儲存。
- 如申請專利範圍第15項所述之電腦系統,其中若尚未接收該修改許可,則該電腦系統更配置以:偵測是否已發生一快取管理違規;在偵測到該快取管理違規後,即起始一復原;及拒絕認可該第一快取列中的該儲存。
- 如申請專利範圍第16項所述之電腦系統,其中若該第二快取列中的該目前狀態指出該第二快取列係為無效,則發出該修改許可。
- 如申請專利範圍第15項所述之電腦系統,其中該快取管理違規指出該第二快取列的該目前狀態係為一已修改狀態。
- 如申請專利範圍第15項所述之電腦系統,其中將複數個推測式狀態位元附加至該第一快取列以追蹤一推測式狀態。
- 如申請專利範圍第15項所述之電腦系統,其中根據一MESI(修改、專用、共享、或無效)協定維持該第一快取列。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/620,070 US9645929B2 (en) | 2012-09-14 | 2012-09-14 | Speculative permission acquisition for shared memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201439765A TW201439765A (zh) | 2014-10-16 |
TWI536167B true TWI536167B (zh) | 2016-06-01 |
Family
ID=50181951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102133162A TWI536167B (zh) | 2012-09-14 | 2013-09-13 | 共享記憶體的推測式許可擷取 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9645929B2 (zh) |
DE (1) | DE102013218370B4 (zh) |
TW (1) | TWI536167B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9632976B2 (en) | 2012-12-07 | 2017-04-25 | Nvidia Corporation | Lazy runahead operation for a microprocessor |
US9875105B2 (en) | 2012-05-03 | 2018-01-23 | Nvidia Corporation | Checkpointed buffer for re-entry from runahead |
US10001996B2 (en) | 2012-10-26 | 2018-06-19 | Nvidia Corporation | Selective poisoning of data during runahead |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US9645929B2 (en) | 2012-09-14 | 2017-05-09 | Nvidia Corporation | Speculative permission acquisition for shared memory |
US9740553B2 (en) | 2012-11-14 | 2017-08-22 | Nvidia Corporation | Managing potentially invalid results during runahead |
US9569214B2 (en) | 2012-12-27 | 2017-02-14 | Nvidia Corporation | Execution pipeline data forwarding |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US9823931B2 (en) | 2012-12-28 | 2017-11-21 | Nvidia Corporation | Queued instruction re-dispatch after runahead |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
US9547602B2 (en) | 2013-03-14 | 2017-01-17 | Nvidia Corporation | Translation lookaside buffer entry systems and methods |
US9582280B2 (en) | 2013-07-18 | 2017-02-28 | Nvidia Corporation | Branching to alternate code based on runahead determination |
US11169805B2 (en) | 2018-04-30 | 2021-11-09 | Hewlett Packard Enterprise Development Lp | Dynamic processor cache to avoid speculative vulnerability |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956753A (en) | 1993-12-30 | 1999-09-21 | Intel Corporation | Method and apparatus for handling speculative memory access operations |
SG47981A1 (en) | 1994-03-01 | 1998-04-17 | Intel Corp | Pipeline process of instructions in a computer system |
US5487146A (en) | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Plural memory access address generation employing guide table entries forming linked list |
JPH0877347A (ja) | 1994-03-08 | 1996-03-22 | Texas Instr Inc <Ti> | 画像/グラフィックス処理用のデータ処理装置およびその操作方法 |
US5870582A (en) | 1997-03-31 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched |
US6862635B1 (en) | 1998-11-13 | 2005-03-01 | Cray Inc. | Synchronization techniques in a multithreaded environment |
US6519694B2 (en) | 1999-02-04 | 2003-02-11 | Sun Microsystems, Inc. | System for handling load errors having symbolic entity generator to generate symbolic entity and ALU to propagate the symbolic entity |
US6535905B1 (en) | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6950925B1 (en) | 2002-08-28 | 2005-09-27 | Advanced Micro Devices, Inc. | Scheduler for use in a microprocessor that supports data-speculative execution |
US6981083B2 (en) | 2002-12-05 | 2005-12-27 | International Business Machines Corporation | Processor virtualization mechanism via an enhanced restoration of hard architected states |
US20040128448A1 (en) | 2002-12-31 | 2004-07-01 | Intel Corporation | Apparatus for memory communication during runahead execution |
US7139876B2 (en) | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing fast speculative pop operation from a stack memory cache |
US7225299B1 (en) * | 2003-07-16 | 2007-05-29 | Transmeta Corporation | Supporting speculative modification in a data cache |
US7062631B1 (en) * | 2003-07-17 | 2006-06-13 | Transmeta Corporation | Method and system for enforcing consistent per-physical page cacheability attributes |
US7010648B2 (en) | 2003-09-08 | 2006-03-07 | Sun Microsystems, Inc. | Method and apparatus for avoiding cache pollution due to speculative memory load operations in a microprocessor |
US7496732B2 (en) | 2003-12-17 | 2009-02-24 | Intel Corporation | Method and apparatus for results speculation under run-ahead execution |
US7310722B2 (en) | 2003-12-18 | 2007-12-18 | Nvidia Corporation | Across-thread out of order instruction dispatch in a multithreaded graphics processor |
US7340565B2 (en) * | 2004-01-13 | 2008-03-04 | Hewlett-Packard Development Company, L.P. | Source request arbitration |
US8190863B2 (en) | 2004-07-02 | 2012-05-29 | Intel Corporation | Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction |
US7257699B2 (en) | 2004-07-08 | 2007-08-14 | Sun Microsystems, Inc. | Selective execution of deferred instructions in a processor that supports speculative execution |
US7194604B2 (en) | 2004-08-26 | 2007-03-20 | International Business Machines Corporation | Address generation interlock resolution under runahead execution |
US7890735B2 (en) | 2004-08-30 | 2011-02-15 | Texas Instruments Incorporated | Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture |
US7421567B2 (en) | 2004-12-17 | 2008-09-02 | International Business Machines Corporation | Using a modified value GPR to enhance lookahead prefetch |
US20060149931A1 (en) | 2004-12-28 | 2006-07-06 | Akkary Haitham | Runahead execution in a central processing unit |
US20060174228A1 (en) | 2005-01-28 | 2006-08-03 | Dell Products L.P. | Adaptive pre-fetch policy |
US7752627B2 (en) | 2005-02-04 | 2010-07-06 | Mips Technologies, Inc. | Leaky-bucket thread scheduler in a multithreading microprocessor |
US20060277398A1 (en) | 2005-06-03 | 2006-12-07 | Intel Corporation | Method and apparatus for instruction latency tolerant execution in an out-of-order pipeline |
US8621120B2 (en) | 2006-04-17 | 2013-12-31 | International Business Machines Corporation | Stalling of DMA operations in order to do memory migration using a migration in progress bit in the translation control entry mechanism |
US8035648B1 (en) | 2006-05-19 | 2011-10-11 | Nvidia Corporation | Runahead execution for graphics processing units |
US7895421B2 (en) | 2007-07-12 | 2011-02-22 | Globalfoundries Inc. | Mechanism for using performance counters to identify reasons and delay times for instructions that are stalled during retirement |
US20090327661A1 (en) | 2008-06-30 | 2009-12-31 | Zeev Sperber | Mechanisms to handle free physical register identifiers for smt out-of-order processors |
US8635437B2 (en) | 2009-02-12 | 2014-01-21 | Via Technologies, Inc. | Pipelined microprocessor with fast conditional branch instructions based on static exception state |
US8719625B2 (en) | 2010-07-22 | 2014-05-06 | International Business Machines Corporation | Method, apparatus and computer program for processing invalid data |
US8627044B2 (en) | 2010-10-06 | 2014-01-07 | Oracle International Corporation | Issuing instructions with unresolved data dependencies |
US9645929B2 (en) | 2012-09-14 | 2017-05-09 | Nvidia Corporation | Speculative permission acquisition for shared memory |
US9740553B2 (en) | 2012-11-14 | 2017-08-22 | Nvidia Corporation | Managing potentially invalid results during runahead |
US9547602B2 (en) | 2013-03-14 | 2017-01-17 | Nvidia Corporation | Translation lookaside buffer entry systems and methods |
US9582280B2 (en) | 2013-07-18 | 2017-02-28 | Nvidia Corporation | Branching to alternate code based on runahead determination |
-
2012
- 2012-09-14 US US13/620,070 patent/US9645929B2/en active Active
-
2013
- 2013-09-13 DE DE102013218370.4A patent/DE102013218370B4/de active Active
- 2013-09-13 TW TW102133162A patent/TWI536167B/zh active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875105B2 (en) | 2012-05-03 | 2018-01-23 | Nvidia Corporation | Checkpointed buffer for re-entry from runahead |
US10001996B2 (en) | 2012-10-26 | 2018-06-19 | Nvidia Corporation | Selective poisoning of data during runahead |
US10628160B2 (en) | 2012-10-26 | 2020-04-21 | Nvidia Corporation | Selective poisoning of data during runahead |
US9632976B2 (en) | 2012-12-07 | 2017-04-25 | Nvidia Corporation | Lazy runahead operation for a microprocessor |
US9891972B2 (en) | 2012-12-07 | 2018-02-13 | Nvidia Corporation | Lazy runahead operation for a microprocessor |
Also Published As
Publication number | Publication date |
---|---|
TW201439765A (zh) | 2014-10-16 |
DE102013218370B4 (de) | 2022-01-27 |
US9645929B2 (en) | 2017-05-09 |
US20140082291A1 (en) | 2014-03-20 |
DE102013218370A1 (de) | 2014-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI536167B (zh) | 共享記憶體的推測式許可擷取 | |
US11720365B2 (en) | Path prediction method used for instruction cache, access control unit, and instruction processing apparatus | |
US8035648B1 (en) | Runahead execution for graphics processing units | |
US9858192B2 (en) | Cross-page prefetching method, apparatus, and system | |
US9547602B2 (en) | Translation lookaside buffer entry systems and methods | |
TWI492055B (zh) | 具資料擱置狀態之系統快取記憶體及最佳化系統快取記憶體之方法 | |
CN112631961A (zh) | 一种内存管理单元、地址转译方法以及处理器 | |
KR102268601B1 (ko) | 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템 | |
US20120054380A1 (en) | Opportunistic improvement of mmio request handling based on target reporting of space requirements | |
CN103092788A (zh) | 多核处理器及数据访问方法 | |
US10552334B2 (en) | Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early | |
CN105446898A (zh) | 描述符环管理 | |
EP4209915A1 (en) | Register file prefetch | |
CN115794673A (zh) | 系统级芯片non-Cacheable数据的访问方法、装置及电子设备 | |
US20170322887A1 (en) | Method to control cache replacement for decoupled data fetch | |
CN115794675A (zh) | 写数据方法、装置、图形处理系统、电子组件及电子设备 | |
JP2008047124A (ja) | コンピュータグラフィックスデータの処理方法とその処理装置 | |
US20150052293A1 (en) | Hidden core to fetch data | |
CN104346295A (zh) | 一种缓存刷新方法和装置 | |
US8624906B2 (en) | Method and system for non stalling pipeline instruction fetching from memory | |
US11226819B2 (en) | Selective prefetching in multithreaded processing units | |
KR20180037980A (ko) | Pat(punt avoidance table)를 사용하는 컴퓨터 프로세서에서 메모리 명령 펀트들의 예측 | |
CN107423235B (zh) | 从非易失性存储器缓存数据 | |
JP2000231550A (ja) | マイクロプロセッサ | |
TWI517040B (zh) | 保護二進制轉譯碼的完整性 |