TW201704991A - 藉由演算法匹配、停用特徵或限制效能之回溯相容性 - Google Patents
藉由演算法匹配、停用特徵或限制效能之回溯相容性 Download PDFInfo
- Publication number
- TW201704991A TW201704991A TW105120792A TW105120792A TW201704991A TW 201704991 A TW201704991 A TW 201704991A TW 105120792 A TW105120792 A TW 105120792A TW 105120792 A TW105120792 A TW 105120792A TW 201704991 A TW201704991 A TW 201704991A
- Authority
- TW
- Taiwan
- Prior art keywords
- cpu
- new
- application
- legacy
- match
- 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
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/46—Multiprogramming arrangements
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
在新CPU上執行應用程式之新裝置判定應用程式是否係用於具有舊版CPU之舊版裝置。當應用程式係用於舊版裝置時,新CPU在新CPU之在舊版CPU上不存在的所選擇特徵被停用之情況下,或在新CPU之指令執行之延時被更改以匹配或近似於舊版CPU之延時的情況下,或在新CPU之一或多個單元之操作的演算法細節被更改以匹配或近似於舊版CPU之對應單元之操作的演算法細節之情況下,執行應用程式。
Description
本發明之態樣係關於在電腦系統上執行電腦應用程式。特定而言,本發明之態樣係關於一種為針對電腦系統之較舊版本所設計之應用程式/標題提供回溯相容性之系統或方法。
現代電腦系統經常針對不同計算任務使用若干不同處理器。例如,除了若干中央處理單元(CPU),現代電腦還可具有專用於圖形管線中之某些計算任務之圖形處理單元(GPU),或專用於針對音訊之數位信號處理之單元,所有此等單元潛在地是係加速處理單元(APU)之一部分,該APU亦可包含其他單元。使用可在APU內部或在外部位於電腦之母板上的匯流排將此等處理器連接至各種類型之記憶體。
通常針對諸如視訊遊戲控制台或智慧型電話(「舊版裝置」)之電腦系統創建一組應用程式,並且當
發佈電腦系統之變體或更先進版本(「新裝置」)時,希望舊版裝置之應用程式在新裝置上完美地運行,而不需要考慮到新裝置之性質而進行的重新編譯或任何修改。如新裝置之硬體架構、韌體及作業系統中所包含,新裝置之此態樣經常被稱為「回溯相容性」。
回溯相容性經常藉由二進位相容性來達成,其中新裝置能夠執行針對舊版裝置創建之程式。然而,當此種裝置之即時行為對其操作而言很重要時,如在視訊遊戲控制台或智慧型電話之情況下,新裝置之操作速度之顯著差別可能使其不能相對於舊版裝置回溯相容。若新裝置具有比舊版裝置低之效能,則阻止回溯相容性之問題可能出現;若新裝置具有更高效能或與舊版裝置相比具有不同的效能特性,亦是如此。
本發明之態樣正是在此背景下產生。
100‧‧‧CPU核心
101‧‧‧系統記憶體
102‧‧‧分支預測單元
104‧‧‧返回位址堆疊
106‧‧‧間接目標陣列
108‧‧‧分支目標緩衝器
110‧‧‧提取及解碼單元
112‧‧‧指令提取單元
114‧‧‧指令位元組緩衝器
116‧‧‧指令解碼單元
120‧‧‧指令相關的快取記憶體及指令轉譯後備緩衝器
122‧‧‧L1 I-快取記憶體
124‧‧‧ITLB快取記憶體階層
126‧‧‧微操作快取記憶體
130‧‧‧分派及排程之單元
132‧‧‧止用佇列
134‧‧‧暫存器重命名
136‧‧‧排程佇列
140‧‧‧實體暫存器
142‧‧‧單指令多資料(SIMD)暫存器組
144‧‧‧通用(GP)暫存器組
150‧‧‧執行單元
152‧‧‧SIMD管
154‧‧‧算術及邏輯單元(ALU)
156‧‧‧計算位址之位址產生單元(AGU)
162‧‧‧儲存佇列
164‧‧‧載入佇列
170‧‧‧資料相關的快取記憶體及資料轉換後備緩衝器(DTLB)
172‧‧‧DTLB快取記憶體階層
174‧‧‧L1 D-快取記憶體
176‧‧‧其他快取記憶體層級
201-248‧‧‧步驟
300‧‧‧態樣操作之系統
310‧‧‧加速處理單元(APU)
320‧‧‧中央處理單元(CPU)
321‧‧‧作業系統(OS)
322‧‧‧應用程式
324‧‧‧圖形應用程式設計介面(API)
330‧‧‧GPU
340‧‧‧記憶體
350‧‧‧支援功能
352‧‧‧輸入/輸出(I/O)元件
356‧‧‧時鐘
358‧‧‧快取記憶體
360‧‧‧大容量儲存裝置
362‧‧‧電腦可讀媒體
370‧‧‧使用者介面單元
372‧‧‧網路介面
380‧‧‧顯示單元
382‧‧‧再現圖形
390‧‧‧資料匯流排
藉由結合附圖考慮以下詳述,可輕易地理解本發明之教示,在附圖中:
圖1係例示出根據本發明之態樣之中央處理單元(CPU)核心的實例之方塊圖,該CPU核心可經組配來以回溯相容性模式操作。
圖2係例示出根據本發明之態樣之用於以回溯相容性模式操作CPU的可能過程流程之實例之流程圖。
圖3係根據本發明之態樣之具有經組配來以回溯相容性模式操作的CPU之裝置之方塊圖。
儘管以下詳述為了說明目的包括許多特定細節,但一般熟習此項技術者將理解,對於以下細節之許多變化及改變在本發明之範疇內。因此,以下描述之本發明之示例性實施例係在不損害本發明之一般性並且不對所主張之發明強加任何限制之情況下陳述的。
介紹
即使新裝置之CPU與舊版裝置二進位相容(即,能夠執行針對舊版裝置創建之程式),新裝置之CPU與舊版裝置之CPU之間的效能特性之差別仍可能導致舊版應用程式中之錯誤,並且因此新裝置將並非回溯相容的。
若新裝置之CPU具有低於舊版裝置之CPU的效能,則舊版應用程式中之許多錯誤可能由於不能滿足由顯示定時、音訊流出等等強加之即時期限而產生。若新裝置之CPU具有實質上高於舊版裝置之CPU的效能,則舊版應用程式中之許多錯誤可能由於此高速操作之未測試結果而產生。例如,在生產者-消費者模型中,若資料消費者(例如,CPU)以比初始預期更高的速度操作,則其可能試圖在資料生產者(例如,電腦之一些其他組件)使資
料可用之前存取資料。或者,若資料生產者(例如,CPU)以比初始預期更高的速度操作,則其可能覆寫資料消費者(例如,電腦之一些其他組件)仍在使用之資料。
另外,由於CPU執行碼之速度取決於被執行之特定碼之特性,因此可能的是,新裝置之CPU之效能相對於舊版裝置增加的程度將取決於被執行之特定碼。此可導致上述生產者-消費者模型中之問題,其中生產者及消費者均為CPU,但是以在舊版硬體上沒有遇到之相對速度執行舊版應用程式之碼。
實施例
本發明之態樣描述可允許相對於舊版電腦系統之更高程度回溯相容性的電腦系統及方法。
在本發明之實行方案中,當以回溯相容性模式(「BC模式」)執行時,與CPU有關之某些資源受到限制並且CPU之操作之各種態樣被更改。
由於各種資源之限制,CPU在BC模式中之效能可能變得更接近舊版CPU之效能,從而導致舊版應用程式中由CPU之非預期效能特性引起之錯誤更少。
另外,舊版CPU上不存在之某些CPU特徵可在BC模式中被停用;CPU之指令執行之延時可在BC模式中更改為等於或變得更接近舊版CPU之延時;並且CPU之各種單元之操作的演算法細節可在BC模式中更改為匹配或近似於舊版CPU之彼等單元之操作的演算法細
節。因此,當在BC模式中時,新CPU之效能可變得更接近舊版CPU之效能,從而導致舊版應用程式中由新CPU之非預期效能特性引起之錯誤更少。
下文描述CPU之一般架構以及本發明之態樣,此等態樣與當在BC模式中時特定資源之限制、特徵之停用、延時之更改以及操作的演算法細節之更改有關。
圖1描述CPU核心100之一般架構。CPU核心100通常包括分支預測單元102,其試圖預測分支是否將被採用,並且亦試圖(在該分支被採用之情況下)預測該分支之目的地位址。在此等預測正確之情況下,推測地執行之碼之效率將增加;因此高度準確之分支預測係極度需要的。分支預測單元102可包括高度專門化之子單元,諸如追蹤來自子例程之返回位址之返回位址堆疊104、追蹤間接分支之目的地之間接目標陣列106,以及追蹤分支之過去歷史以便更準確地預測分支之所得位址之分支目標緩衝器108及其相關聯預測邏輯。
根據本發明之某些態樣,在BC模式中,新CPU之間接目標陣列106之大小、返回位址堆疊104之大小或分支目標緩衝器108之大小可被減小以匹配或更緊密地近似於它們針對舊版CPU之相應大小。為了清楚起見,此減小採取減小資源之可用部分之形式,例如,不允許使用返回位址堆疊之一部分,並且因此減小可追蹤之調用及相關聯返回之數目;當不在BC模式中時,全部資源可用。
根據本發明之某些態樣,在BC模式中,新CPU之分支目標緩衝器108及其相關聯預測邏輯之操作之演算法細節可被更改以匹配舊版CPU之演算法細節。以舉例而不是限制之方式,若舊版CPU在其追蹤彼此接近之分支指令的能力方面受到限制,則在BC模式中,新CPU可匹配此舊版CPU行為;或若舊版CPU使用實質上不同風格之分支預測邏輯(例如,飽和計數器而不是自適應預測器),則新CPU可包括舊版CPU之邏輯並且在BC模式中啟用該邏輯。
根據本發明之某些態樣,若新CPU之分支目標緩衝器108及其相關聯預測邏輯包括專用迴圈預測器,但是舊版CPU上不存在專用迴圈預測器,則在BC模式中,可停用新CPU之專用迴圈預測器。
CPU核心100通常包括指令提取及解碼單元110,其包括指令提取單元112、指令位元組緩衝器114及指令解碼單元116。CPU核心100通常亦包括若干指令相關的快取記憶體及指令轉譯後備緩衝器(ITLB)120。此等可包括ITLB快取記憶體階層124,其將虛擬位址快取至實體位址轉換資訊,諸如頁面表條目、頁面目錄條目等等。使用此資訊來將指令之虛擬位址變換成實體位址,使得指令提取單元112可從快取記憶體階層載入指令。以舉例而不是限制之方式,可根據快取記憶體階層來快取程式指令,該快取記憶體階層包括駐留在核心中之1級指令快取記憶體(L1 I-快取記憶體)122以及在CPU
核心100外部之其他快取記憶體層級176;使用指令之實體位址,首先搜索此等快取記憶體來找到程式指令。若未找到指令,則從系統記憶體101載入指令。取決於架構,亦可存在如下文所述之包含已解碼指令之微操作(micro-op)快取記憶體126。
在本發明之某些態樣中,在BC模式中,L1 I-快取記憶體124、微操作快取記憶體126或ITLB快取記憶體階層122之各種層級之大小或關聯性可被改變以匹配或更緊密地近似於它們針對舊版CPU之相應大小及關聯性。以舉例而不是限制之方式,改變(例如減小)ITLB快取記憶體階層124之大小可涉及(1)減小層級之數目;或(2)改變一或多個層級之大小(例如,快取記憶體大小、區塊大小、一組中之區塊數)。更改快取記憶體之關聯性可涉及例如使全關聯快取記憶體作為四向或雙向快取記憶體來操作。儘管本發明之態樣包括指令相關的快取記憶體或ITLB之大小或關聯性被減小之實行方案,但是本發明不限於此類實行方案。例如,有可能舊版CPU必須具有更大之快取記憶體,該快取記憶體之關聯性在舊版CPU中更小(例如,雙向而不是四向)。在此情況下,新CPU可在BC模式中運行,其中對應快取記憶體之大小增加並且關聯性減小以匹配或近似於舊版CPU上之快取記憶體之行為。
一旦提取了程式指令,通常將指令放在指令位元組緩衝器114中,等待由指令提取及解碼單元110處
理。解碼可能係非常複雜之過程;難以每個循環解碼多個指令,並且可能存在對指令對準或指令類型之限制,其限制了一個循環中可解碼多少個指令。取決於架構,可將已解碼指令放在微操作快取記憶體126中(若在新CPU上存在微操作快取記憶體),使得可繞過解碼階段以便隨後使用程式指令。
在本發明之某些態樣中,在BC模式中,新CPU之指令提取及解碼單元110之操作之演算法細節可被更改以匹配舊版CPU之演算法細節。以舉例而不是限制之方式,若舊版CPU將解碼限於在指令位元組緩衝器114中之特定區域內具有操作碼之指令,則新CPU可類似地限制解碼。
在本發明之某些態樣中,若微操作快取記憶體126在新CPU上存在並且在舊版CPU上不存在,則在BC模式中,可停用新CPU之微操作快取記憶體126。
通常將已解碼指令傳送至其他用於分派及排程之單元130。此等單元可使用止用佇列132來追蹤遍及CPU管線之剩餘部分的指令之狀態。並且,由於在許多CPU架構上可用之通用及SIMD暫存器之數目有限,可執行暫存器重命名,其中當在被執行之指令串流中遇到邏輯(亦稱為架構)暫存器時,指派實體暫存器140來表示它們。實體暫存器140可包括單指令多資料(SIMD)暫存器組142及通用(GP)暫存器組144,其大小可遠大於在特定CPU架構上可用之邏輯暫存器之數目,並且因此效
能可得到顯著增加。在執行暫存器重命名134後,通常將指令放在排程佇列136中,每個循環可從排程佇列136選擇若干指令(基於依賴性)來由執行單元150執行。
在本發明之某些態樣中,在BC模式中,CPU之止用佇列132之大小、排程佇列136之大小或SIMD暫存器組142或GP暫存器組144之大小可被減小以匹配或更緊密地近似於它們針對舊版CPU之相應大小。為了清楚起見,此減小採取減小資源之可用部分之形式,例如,限制在BC模式中可供應用程式使用之實體暫存器之數目;當不在BC模式中時,全部暫存器組將可供應用程式使用。
執行單元150通常包括:對SIMD暫存器組142中所包含之128位或更寬SIMD暫存器中所包含之多個資料欄位執行若干並行操作之SIMD管152、對GP暫存器組144中所包含之GPR執行若干邏輯運算、算術運算及混雜運算之算術及邏輯單元(ALU)154,以及計算位址之位址產生單元(AGU)156,記憶體應從該位址進行儲存或載入。每個類型之執行單元可能有多個執行個體,並且該等執行個體可能具有不同能力,例如特定SIMD管152可能能夠執行浮點乘法運算但是不能執行浮點加法運算。
在本發明之某些態樣中,在BC模式中,ALU、AGU或SIMD管之可用數目可被減小以匹配或更緊密地近似於存在於舊版CPU上之此類單元之相應數目。
在本發明之某些態樣中,在BC模式中,新CPU之指令執行之延時可以此方式更改以便等於或更接近舊版CPU之延時;例如,在BC模式中,新CPU上之除法運算之延時可延長(例如,藉由更緩慢地計算結果,或藉由延遲將結果傳輸至管線之後續階段)以匹配或更緊密地近似於舊版CPU上之除法運算之延時。
儲存及載入通常在儲存佇列162及載入佇列164中進行緩衝,使得許多儲存操作可並行執行。為了幫助記憶體操作,CPU核心100通常包括若干資料相關的快取記憶體及資料轉換後備緩衝器(DTLB)170。DTLB快取記憶體階層172將虛擬位址快取至實體位址轉換,諸如頁面表條目、頁面目錄條目等等;使用此資訊來將記憶體操作之虛擬位址變換成實體位址,使得可從系統記憶體儲存或載入資料。資料通常被快取在駐留在核心中之1級資料快取記憶體(L1 D-快取記憶體)174以及在核心100外部之其他快取記憶體層級176中。
在本發明之某些態樣中,在BC模式中,L1 D-快取記憶體174或DTLB快取記憶體階層172之各種層級之大小或關聯性可被減小以匹配或更緊密地近似於它們針對舊版CPU之相應大小及關聯性。在本發明之某些態樣中,在BC模式中,CPU之儲存佇列162或載入佇列164之大小(例如,可允許之未完成儲存或載入之數目)可被減小以匹配或更緊密地近似於它們針對舊版CPU之相應大小。
圖2係例示出根據本發明之態樣之方法的可能過程流程之實例之流程圖。方法在201處開始,例如,從將應用程式載入至具有新CPU之系統上開始。經由檢查軟體ID、軟體總和檢查碼、與軟體相關聯之元資料、媒體類型或其他機制,判定應用程式是針對新CPU設計的還是針對系統之先前版本設計的,如210處所指示。此判定可在系統上運行之軟體中或在系統之硬體中實行。當判定所載入應用程式意圖用於新CPU時,系統可正常運行,如220處所指示。例如,CPU可在不限制可用資源、不停用特徵、不更改指令執行之延時或不更改演算法細節之情況下正常運行以便匹配或近似於舊版CPU之行為。
當判定所載入應用程式意圖用於舊版CPU時,CPU在BC模式中運行,其中所選擇可用資源受到限制242,在舊版CPU上不存在之所選擇特徵被停用244,指令執行之延時被更改246,或演算法細節被更改248,或此等中之兩者或兩者以上之某種組合,以便匹配或近似於舊版CPU之行為。以上討論了此等可能性之實例。
以舉例而不是限制之方式,為了在所選擇資源受到限制242之情況下操作CPU,BC模式可由新CPU之硬體之合適組態、由運行CPU之作業系統之合適組態或兩者之某種組合來實行。例如,如上文所討論,在BC模式中,CPU之間接目標陣列106之大小、返回位址堆疊104之大小或分支目標緩衝器108之大小可被減小以匹配或更緊密地近似於它們針對舊版CPU之相應大小。以舉
例而不是限制之方式,相關硬體可組配成使得在BC模式中,作業系統或CPU韌體可減小間接目標陣列106之大小以便匹配或更緊密地近似於它們針對舊版CPU之相應大小。以下偽碼例示出如何可實行此情況之實例:
可用類似方式減小返回位址堆疊104之大小或分支目標緩衝器108之大小或其他可用資源。
以類似的方式,為了在所選擇特徵被停用244之情況下操作CPU,新CPU上存在之在舊版CPU上不存在之某些硬體資源(例如,微操作快取記憶體126)可經組配成使得它們可在BC模式中由作業系統或CPU韌體停用。或者,新CPU上存在之在舊版CPU上不存在之硬體資源可經組配成使得它們在BC模式中被應用程式忽略。
以舉例而不是限制之方式,為了在新CPU之指令執行之延時被更改246以匹配或近似於舊版CPU之延時之情況下操作CPU,執行單元150之硬體可經組配成在BC模式中添加「無操作」指令之等效物來獲得BC模式中所需之延時。
以舉例而不是限制之方式,為了在新CPU之一或多個單元之操作的演算法細節被更改248之情況下操作新CPU。以舉例而不是限制之方式,分支預測單元102之操作之演算法細節可在BC模式中被更改。例如,如上
文所討論,若舊版CPU在其追蹤彼此接近之分支指令之行為的能力方面受到限制,則在BC模式中,分支預測單元102可經組配成在BC模式中匹配此舊版CPU行為。或者,若舊版CPU使用實質上不同風格之分支預測邏輯(例如,飽和計數器而不是自適應預測器),則新CPU之分支預測單元102可包括舊版CPU之可在BC模式中啟用之邏輯。在其他實行方案中,可利用可在BC模式中啟用之舊版邏輯來類似地組配新CPU之指令提取及解碼單元110、分派及排程單元130或執行單元150之操作的演算法細節。
現在轉向圖3,描述經組配來根據本發明之態樣操作之系統300的說明性實例。根據本發明之態樣,系統300可為嵌入式系統、行動電話、個人電腦、平板電腦、便攜式遊戲裝置、工作站、遊戲控制台等等。
系統300總體上包括中央處理單元(CPU)320,該CPU 320可包括CPU核心及在圖1中描述並且在上文討論之類型之其他特徵。以舉例而不是限制之方式,CPU 320可為加速處理單元(APU)310之一部分,該APU 310包括處於單個晶片上之CPU 320及圖形處理單元(GPU)330。在替代實行方案中,CPU 320及GPU 330可實行為單獨晶片上之單獨硬體組件。
系統300亦可包括記憶體340。記憶體340可視需要包括可供CPU 320及GPU 330存取之主記憶體單元。CPU 320及GPU 330可各自包括一或多個處理器核
心,例如,單個核心、兩個核心、四個核心、八個核心或更多個核心。CPU 320及GPU 330可經組配來使用資料匯流排390存取一或多個記憶體單元,並且在一些實行方案中,系統300包括兩個或兩個以上不同的匯流排可能係有用的。
記憶體340可包括呈積體電路形式之一或多個記憶體單元,該等積體電路提供可存取之記憶體,例如,RAM、DRAM等等。記憶體包含可執行指令,該等可執行指令經組配來在執行時實行圖2之方法以便判定當運行原始針對在舊版CPU上執行所創建之應用程式時,以BC模式操作CPU 320。另外,記憶體340可包括專用圖形記憶體,用於暫時儲存圖形資源、圖形緩衝器及用於圖形再現管線之其他圖形資料。
CPU 320可經組配來執行CPU碼,該碼可包括作業系統(OS)321或應用程式322(例如,視訊遊戲)。OS 321可經組配來實行以BC模式操作CPU 320之某些特徵,如上文所討論。CPU碼可包括圖形應用程式設計介面(API)324,用於基於應用程式322之狀態向由GPU 330實行之程式發出繪圖命令或繪圖調用。CPU碼亦可實行實體模擬及其他功能。該碼之用於OS 321、應用程式322或API 324中之一或多者的部分可儲存在記憶體340中、在CPU內部或外部之快取記憶體中或可供CPU 320存取之大容量儲存裝置中。
系統300亦可包括眾所周知之支援功能350,
該等支援功能350可例如經由匯流排390與系統之其他組件通信。此類支援功能可包括但不限於輸入/輸出(I/O)元件352、可包括分別用於CPU及GPU之單獨時鐘之一或多個時鐘356,以及可在CPU 320外部之一或多個層級之快取記憶體358。系統300可視需要包括大容量儲存裝置360,諸如磁碟機、CD-ROM碟機、快閃記憶體、磁帶機、藍光碟機等等,用來儲存程式及/或資料。在一個實例中,大容量儲存裝置360可接收電腦可讀媒體362,該電腦可讀媒體362包含原始設計成在具有舊版CPU之系統上運行之舊版應用程式。或者,舊版應用程式362(或其部分)可儲存在記憶體340中或部分地儲存在快取記憶體358中。
裝置300亦可包括顯示單元380,用來向使用者呈現由GPU 330準備之再現圖形382。裝置300亦可包括使用者介面單元370,用來促進系統100與使用者之間的互動。顯示單元380可呈以下形式:平板顯示器、陰極射線管(CRT)螢幕、觸控式螢幕、頭戴式顯示器(HMD)或可顯示文字、數字、圖形符號或影像之其他裝置。顯示器380可顯示根據本文所述之各種技術加以處理之再現圖形382。使用者介面370可包含一或多個周邊裝置,諸如鍵盤、滑鼠、操縱桿、光筆、遊戲控制器、觸控式螢幕及/或可結合圖形使用者介面(GUI)使用之其他裝置。在某些實行方案中,應用程式322之狀態及圖形之基本內容可至少部分由經由使用者介面370之使用者輸入來
判定,例如,在應用程式322包括視訊遊戲或其他圖形密集應用程式之情況下。
系統300亦可包括網路介面372,用來使裝置能夠經由網路與其他裝置通信。網路可為例如區域網路(LAN)、廣域網路(諸如網際網路)、個人區域網路(諸如藍芽網路)或其他類型之網路。所展示並且描述之組件中的各個組件可在硬體、軟體或韌體或此等中之兩者或兩者以上之某種組合中實行。
根據本發明之態樣,CPU 320可包括硬體組件,諸如圖1之CPU核心100之組件,該等組件可在BC模式中操作,其中所選擇可用資源受到限制242,在舊版CPU上不存在之所選擇特徵被停用244,指令執行之延時被更改246,或演算法細節被更改248或此等中之兩者或兩者以上之某種組合,以便匹配或近似於舊版CPU之行為,如以上參考圖2所討論。
本發明之態樣克服了在針對舊版系統編寫之程式在更強大之新系統上運行時產生之回溯相容性問題。藉由在所選擇可用資源受到限制、在舊版CPU上不存在之所選擇特徵被停用、指令執行之延時被更改或演算法細節被更改或此等中之兩者或兩者以上之某種組合的情況下以BC模式運行新CPU,新CPU可匹配或近似於舊版CPU之行為。
雖然以上係對本發明之較佳實施例之完整描述,但是可使用各種替代、修改及等效物。因此,本發明
之範疇不應參考以上描述來判定,而是應參考隨附申請專利範圍以及其完整的等效物範疇來判定。本文所描述之任何特徵(不論是否較佳的)可與本文所描述之任何其他特徵組合(不論是否較佳的)。在以下申請專利範圍中,不定冠詞「一」或「一種」係指冠詞後之一或多個項目之數量,除非另外明確說明。如本文所用,在替代例中之一列元件中,術語「或」用作包括含義,例如,「X或Y」僅涵蓋X、僅涵蓋Y或涵蓋X及Y兩者一起,除非另外明確說明。作為替代例列出之兩個或兩個以上元件可組合在一起。隨附申請專利範圍不應被理解為包括構件加功能限制,除非在給定請求項中使用短語「用於......之構件」明確陳述了此種限制。
100‧‧‧CPU核心
101‧‧‧系統記憶體
102‧‧‧分支預測單元
104‧‧‧返回位址堆疊
106‧‧‧間接目標陣列
108‧‧‧分支目標緩衝器
110‧‧‧提取及解碼單元
112‧‧‧指令提取單元
114‧‧‧指令位元組緩衝器
116‧‧‧指令解碼單元
120‧‧‧指令相關的快取記憶體及指令轉譯後備緩衝器
122‧‧‧L1 I-快取記憶體
124‧‧‧ITLB快取記憶體階層
126‧‧‧微操作快取記憶體
130‧‧‧分派及排程之單元
132‧‧‧止用佇列
134‧‧‧暫存器重命名
136‧‧‧排程佇列
140‧‧‧實體暫存器
142‧‧‧單指令多資料(SIMD)暫存器組
144‧‧‧通用(GP)暫存器組
150‧‧‧執行單元
152‧‧‧SIMD管
154‧‧‧算術及邏輯單元(ALU)
156‧‧‧計算位址之位址產生單元(AGU)
162‧‧‧儲存佇列
164‧‧‧載入佇列
170‧‧‧資料相關的快取記憶體及資料轉換後備緩衝器(DTLB)
172‧‧‧DTLB快取記憶體階層
174‧‧‧L1 D-快取記憶體
176‧‧‧其他快取記憶體層級
Claims (23)
- 一種方法,其包括:利用在新一CPU上執行一應用程式之一新裝置,判定該應用程式是否係用於具有一舊版CPU之一舊版裝置;以及當該新裝置判定該應用程式係用於該舊版裝置時,在該新CPU之在該舊版CPU上不存在的所選擇特徵被停用之情況下,或在該新CPU之指令執行之一延時被更改以匹配或近似於該舊版CPU之一延時之情況下,或在該新CPU之一或多個單元之操作之演算法細節被更改以匹配或近似於該舊版CPU的對應單元之操作之演算法細節之情況下,在該新CPU上執行該應用程式。
- 如請求項1之方法,其中在該新CPU上執行該應用程式包括:在該新CPU之一或多個單元之操作的演算法細節被更改以匹配或近似於該舊版CPU之對應單元之操作的演算法細節之情況下在該新CPU上執行該應用程式。
- 如請求項2之方法,其中在該新CPU之一或多個單元之操作的演算法細節被更改以匹配或近似於該舊版CPU之對應單元之操作的演算法細節之情況下在該新CPU上執行該應用程式包括:在該新CPU之一分支目標緩衝器及相關聯預測邏輯之操作的演算法細節被更改以匹配或近似於該舊版CPU之一對應分支目標緩衝器之操作的演算法細節之情況下操作該新CPU。
- 如請求項2之方法,其中在該新CPU之一或多個單元之操作的演算法細節被更改以匹配或近似於該舊版CPU之對應單元之操作的演算法細節之情況下在該新CPU上執行該應用程式包括:在該CPU之一指令解碼單元之操作的演算法細節被更改以匹配或近似於該舊版CPU之一指令解碼單元之操作的演算法細節之情況下操作該新CPU。
- 如請求項1之方法,其中在該新CPU上執行該應用程式包括:在該新CPU之在舊版CPU上不存在之所選擇特徵被停用之情況下在該新CPU上執行該應用程式。
- 如請求項5之方法,其中在該新CPU之在該舊版CPU上不存在的所選擇特徵被停用之情況下在該新CPU上執行該應用程式包括:當該新CPU及其相關聯預測邏輯包括一專用迴圈預測器但是該舊版CPU不包括時,停用該新CPU之該專用迴圈預測器。
- 如請求項5之方法,其中在該新CPU之在舊版CPU上不存在的所選擇特徵被停用之情況下在該新CPU上執行該應用程式包括:當該新CPU包括一微操作快取記憶體但是該舊版CPU不包括時,停用該新CPU之該微操作快取記憶體。
- 如請求項1之方法,其中在該新CPU上執行該應用程式包括:在該新CPU之指令執行之一延時被更改以匹配或近似於該舊版CPU之一延時的情況下在該新CPU上執行該應用程式。
- 如請求項8之方法,其中在該新CPU之指令執行之一延時被更改以匹配或近似於該舊版CPU之一延時的情況下在該新CPU上執行該應用程式包括:延長該新CPU之操作之一延時以匹配或近似於該舊版CPU之該操作之一延時。
- 如請求項9之方法,其中延長該新CPU之該操作之該延時包括使該新CPU上對一結果之計算減速。
- 如請求項9之方法,其中延長該新CPU之該操作之該延時包括延遲將一結果傳輸至一CPU管線之一後續階段。
- 一種系統,其包含,一新的中央處理單元(CPU),其經組配來執行一應用程式之指令,該新CPU具有邏輯單元,該等邏輯單元經組配來:判定該應用程式是否係用於具有一舊版CPU之一舊版裝置,並且當該應用程式係用於該舊版裝置時,在該新CPU之在該舊版CPU上不存在的所選擇特徵被停用之情況下,或在該新CPU之指令執行之一延時被更改以匹配或近似於該舊版CPU之一延時之情況下,或在該新CPU之一或多個單元之操作的演算法細節被更改以匹配或近似於該舊版CPU之對應單元之操作的演算法細節之情況下,執行該應用程式。
- 如請求項12之系統,其中該新CPU經組配來:當該應用程式係用於該舊版裝置時,在該新CPU之一或多個單元之操作的演算法細節被更改以匹配或近似於該舊 版CPU之對應單元之操作的演算法細節之情況下執行該應用程式。
- 如請求項13之系統,其中該新CPU經組配來:藉由更改該新CPU之一分支目標緩衝器及相關聯預測邏輯之操作的演算法細節以匹配或近似於該舊版CPU之一對應分支目標緩衝器之操作的演算法細節,來在該新CPU之一或多個單元之操作的演算法細節被更改以匹配或近似於該舊版CPU之對應單元之操作的演算法細節之情況下執行該應用程式。
- 如請求項13之系統,其中該新CPU經組配來:藉由更改一指令解碼單元之操作之演算法細節以匹配或近似於該舊版CPU之一指令解碼單元之操作的演算法細節,來在該新CPU之一或多個單元之操作的演算法細節被更改以匹配或近似於該舊版CPU之對應單元之操作的演算法細節之情況下執行該應用程式。
- 如請求項12之系統,其中該新CPU經組配來:當該應用程式係用於該舊版裝置時,在該新CPU之在舊版CPU上不存在的所選擇特徵被停用之情況下執行該應用程式。
- 如請求項16之系統,其中該新CPU經組配來:當該新CPU及其相關聯預測邏輯包括一專用迴圈預測器但是該舊版CPU不包括時,藉由停用該新CPU之該專用迴圈預測器,來在該新CPU之在該舊版CPU上不存在的所選擇特徵被停用之情況下執行該應用程式。
- 如請求項16之系統,其中該新CPU經組配來:當該新CPU包括一微操作快取記憶體但是該舊版CPU不包括時,藉由停用該新CPU之該微操作快取記憶體來在該新CPU之在舊版CPU上不存在的所選擇特徵被停用之情況下執行該應用程式。
- 如請求項12之系統,其中該新CPU經組配來:在該新CPU之指令執行之一延時被更改以匹配或近似於該舊版CPU之一延時的情況下執行該應用程式。
- 如請求項19之系統,其中該新CPU經組配來:藉由延長該新CPU之操作之一延時以匹配或近似於該舊版CPU之該操作之一延時,來在該新CPU之指令執行之一延時被更改以匹配或近似於該舊版CPU之一延時的情況下執行該應用程式。
- 如請求項20之系統,其中延長該新CPU之該操作之該延時包括使該新CPU上對一結果之計算減速。
- 如請求項20之系統,其中延長該新CPU之該操作之該延時包括延遲將一結果傳輸至一CPU管線之一後續階段。
- 一種非暫時性電腦可讀媒體,其具有體現在其中之可執行指令,該等指令經組配來在該指令執行時實行一方法,該方法包含:利用在新一CPU上執行一應用程式之一新裝置,判定該應用程式是否係用於具有一舊版CPU之一舊版裝置;以及 當該新裝置判定該應用程式係用於該舊版裝置時,在該新CPU之在該舊版CPU上不存在的所選擇特徵被停用之情況下,或在該新CPU之指令執行之一延時被更改以匹配或近似於該舊版CPU之一延時之情況下,或在該新CPU之一或多個單元之操作之演算法細節被更改以匹配或近似於該舊版CPU的對應單元之操作之演算法細節之情況下,在該新CPU上執行該應用程式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/810,334 US10235219B2 (en) | 2015-07-27 | 2015-07-27 | Backward compatibility by algorithm matching, disabling features, or throttling performance |
US14/810,334 | 2015-07-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201704991A true TW201704991A (zh) | 2017-02-01 |
TWI654562B TWI654562B (zh) | 2019-03-21 |
Family
ID=57883554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105120792A TWI654562B (zh) | 2015-07-27 | 2016-06-30 | 藉由演算法匹配、停用特徵或限制效能之回溯相容性 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10235219B2 (zh) |
JP (3) | JP6837011B2 (zh) |
CN (1) | CN106406849B (zh) |
TW (1) | TWI654562B (zh) |
WO (1) | WO2017019287A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10068311B2 (en) | 2014-04-05 | 2018-09-04 | Sony Interacive Entertainment LLC | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US11302054B2 (en) | 2014-04-05 | 2022-04-12 | Sony Interactive Entertainment Europe Limited | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US9652882B2 (en) | 2014-04-05 | 2017-05-16 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
US10783696B2 (en) | 2014-04-05 | 2020-09-22 | Sony Interactive Entertainment LLC | Gradient adjustment for texture mapping to non-orthonormal grid |
US9865074B2 (en) | 2014-04-05 | 2018-01-09 | Sony Interactive Entertainment America Llc | Method for efficient construction of high resolution display buffers |
US9760113B2 (en) | 2015-02-20 | 2017-09-12 | Sony Interactive Entertainment America Llc | Backward compatibility through use of spoof clock and fine grain frequency control |
US11403099B2 (en) | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
US9892024B2 (en) | 2015-11-02 | 2018-02-13 | Sony Interactive Entertainment America Llc | Backward compatibility testing of software in a mode that disrupts timing |
CN116340022A (zh) | 2016-01-22 | 2023-06-27 | 索尼互动娱乐股份有限公司 | 用于向后兼容性的欺骗cpuid |
US10102094B2 (en) | 2016-01-22 | 2018-10-16 | Sony Interactive Entertainment Inc. | Simulating legacy bus behavior for backwards compatibility |
US10915333B2 (en) * | 2016-03-30 | 2021-02-09 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
US10275239B2 (en) | 2016-03-30 | 2019-04-30 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
US10303488B2 (en) * | 2016-03-30 | 2019-05-28 | Sony Interactive Entertainment Inc. | Real-time adjustment of application-specific operating parameters for backwards compatibility |
GB2564130B (en) * | 2017-07-04 | 2020-10-07 | Advanced Risc Mach Ltd | An apparatus and method for controlling execution of instructions |
US10684846B2 (en) * | 2017-10-17 | 2020-06-16 | Microsoft Technology Licensing, Llc | Using semantic annotations to control compatibility behaviors |
CN109471658A (zh) * | 2018-11-19 | 2019-03-15 | 四川长虹电器股份有限公司 | 一种基于容器的快速搭建靶机环境的方法 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS649528A (en) * | 1987-07-02 | 1989-01-12 | Pfu Ltd | Function control system by mask register |
US6772315B1 (en) | 2001-05-24 | 2004-08-03 | Rambus Inc | Translation lookaside buffer extended to provide physical and main-memory addresses |
US7046245B2 (en) | 2001-10-10 | 2006-05-16 | Sony Computer Entertainment America Inc. | System and method for environment mapping |
US7081893B2 (en) | 2001-10-10 | 2006-07-25 | Sony Computer Entertainment America Inc. | System and method for point pushing to render polygons in environments with changing levels of detail |
US7024519B2 (en) | 2002-05-06 | 2006-04-04 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
US20050033831A1 (en) * | 2002-10-08 | 2005-02-10 | Abbas Rashid | Advanced processor with a thread aware return address stack optimally used across active threads |
US20050154915A1 (en) | 2004-01-09 | 2005-07-14 | Peterson Matthew T. | Networked computer user identification and authentication apparatus method and system |
US7401058B2 (en) * | 2004-04-29 | 2008-07-15 | University Of Massachusetts | Artificial neuron with phase-encoded logic |
US7260702B2 (en) | 2004-06-30 | 2007-08-21 | Microsoft Corporation | Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor |
US8914606B2 (en) | 2004-07-08 | 2014-12-16 | Hewlett-Packard Development Company, L.P. | System and method for soft partitioning a computer system |
US8888600B2 (en) * | 2004-08-25 | 2014-11-18 | Igt | Emulation methods and devices for a gaming machine |
US7437581B2 (en) | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
US8274518B2 (en) | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US7546487B2 (en) | 2005-09-15 | 2009-06-09 | Intel Corporation | OS and firmware coordinated error handling using transparent firmware intercept and firmware services |
US7467280B2 (en) | 2006-07-05 | 2008-12-16 | International Business Machines Corporation | Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache |
US8462676B2 (en) | 2006-10-17 | 2013-06-11 | Intel Corporation | Frame structure for support of large delay spread deployment scenarios |
US8149242B2 (en) | 2006-11-10 | 2012-04-03 | Sony Computer Entertainment Inc. | Graphics processing apparatus, graphics library module and graphics processing method |
JP4230504B2 (ja) | 2006-11-30 | 2009-02-25 | 株式会社日立製作所 | データプロセッサ |
CN101192148B (zh) * | 2006-12-01 | 2012-02-01 | 深圳迈瑞生物医疗电子股份有限公司 | 兼容新旧应用程序的数据处理方法及其数据存储方法 |
KR101358853B1 (ko) * | 2007-07-11 | 2014-02-05 | 삼성전자주식회사 | 클럭 신호의 위상 변경 방법 및 그 방법을 이용한 메모리칩 |
US7836285B2 (en) * | 2007-08-08 | 2010-11-16 | Analog Devices, Inc. | Implementation of variable length instruction encoding using alias addressing |
JP2009110450A (ja) * | 2007-10-31 | 2009-05-21 | Sharp Corp | 大規模集積回路装置 |
US8601234B2 (en) * | 2007-11-07 | 2013-12-03 | Qualcomm Incorporated | Configurable translation lookaside buffer |
US8782384B2 (en) | 2007-12-20 | 2014-07-15 | Advanced Micro Devices, Inc. | Branch history with polymorphic indirect branch information |
US8789138B2 (en) | 2010-12-27 | 2014-07-22 | Microsoft Corporation | Application execution in a restricted application execution environment |
US9411585B2 (en) * | 2011-09-16 | 2016-08-09 | International Business Machines Corporation | Multi-addressable register files and format conversions associated therewith |
US20140156976A1 (en) * | 2011-12-22 | 2014-06-05 | Enric Gibert Codina | Method, apparatus and system for selective execution of a commit instruction |
US20130339649A1 (en) | 2012-06-15 | 2013-12-19 | Intel Corporation | Single instruction multiple data (simd) reconfigurable vector register file and permutation unit |
US9088181B2 (en) * | 2012-07-27 | 2015-07-21 | Zon | Sunshades with solar power supplies for charging electronic devices |
US9021493B2 (en) | 2012-09-14 | 2015-04-28 | International Business Machines Corporation | Management of resources within a computing environment |
US9568919B2 (en) | 2012-10-24 | 2017-02-14 | Aurora Flight Sciences Corporation | System and methods for automatically landing aircraft |
US20140281398A1 (en) | 2013-03-16 | 2014-09-18 | William C. Rash | Instruction emulation processors, methods, and systems |
US9009677B2 (en) * | 2013-03-18 | 2015-04-14 | Microsoft Technology Licensing, Llc | Application testing and analysis |
US10176621B2 (en) | 2013-06-10 | 2019-01-08 | Sony Interactive Entertainment Inc. | Using compute shaders as front end for vertex shaders |
US10102603B2 (en) | 2013-06-10 | 2018-10-16 | Sony Interactive Entertainment Inc. | Scheme for compressing vertex shader output parameters |
US10134102B2 (en) | 2013-06-10 | 2018-11-20 | Sony Interactive Entertainment Inc. | Graphics processing hardware for using compute shaders as front end for vertex shaders |
US10096079B2 (en) | 2013-06-10 | 2018-10-09 | Sony Interactive Entertainment Inc. | Fragment shaders perform vertex shader computations |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
JP6392370B2 (ja) | 2014-04-05 | 2018-09-19 | ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー | 様々なレンダリング及びラスタライゼーション・パラメータ下でビューポートを変化させるための、オブジェクトの効率的再レンダリング方法 |
US9652882B2 (en) | 2014-04-05 | 2017-05-16 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
US9703951B2 (en) | 2014-09-30 | 2017-07-11 | Amazon Technologies, Inc. | Allocation of shared system resources |
US9892024B2 (en) | 2015-11-02 | 2018-02-13 | Sony Interactive Entertainment America Llc | Backward compatibility testing of software in a mode that disrupts timing |
US20170192796A1 (en) | 2015-12-30 | 2017-07-06 | Robert Bosch Gmbh | Methods and systems for configuring a device using a firmware configuration block |
-
2015
- 2015-07-27 US US14/810,334 patent/US10235219B2/en active Active
-
2016
- 2016-06-30 TW TW105120792A patent/TWI654562B/zh active
- 2016-07-11 WO PCT/US2016/041767 patent/WO2017019287A1/en active Application Filing
- 2016-07-11 JP JP2017562252A patent/JP6837011B2/ja active Active
- 2016-07-20 CN CN201610576520.6A patent/CN106406849B/zh active Active
-
2021
- 2021-02-08 JP JP2021018039A patent/JP7284199B2/ja active Active
-
2023
- 2023-05-18 JP JP2023082094A patent/JP2023106502A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2018522335A (ja) | 2018-08-09 |
WO2017019287A1 (en) | 2017-02-02 |
CN106406849B (zh) | 2020-01-03 |
JP2021077408A (ja) | 2021-05-20 |
TWI654562B (zh) | 2019-03-21 |
US20170031732A1 (en) | 2017-02-02 |
CN106406849A (zh) | 2017-02-15 |
JP6837011B2 (ja) | 2021-03-03 |
JP2023106502A (ja) | 2023-08-01 |
US10235219B2 (en) | 2019-03-19 |
JP7284199B2 (ja) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7284199B2 (ja) | アルゴリズム整合、機能無効化、または性能制限による後方互換性 | |
US11853763B2 (en) | Backward compatibility by restriction of hardware resources | |
US11907105B2 (en) | Backward compatibility testing of software in a mode that disrupts timing | |
US9830158B2 (en) | Speculative execution and rollback | |
US9361242B2 (en) | Return stack buffer having multiple address slots per stack entry | |
JP7084379B2 (ja) | ロードストアユニットをバイパスすることによるストア及びロードの追跡 | |
US10303488B2 (en) | Real-time adjustment of application-specific operating parameters for backwards compatibility | |
US10838729B1 (en) | System and method for predicting memory dependence when a source register of a push instruction matches the destination register of a pop instruction | |
JP2011508309A (ja) | ロックされたオペレーションを実行するためのシステムおよび方法 | |
US20230004405A1 (en) | Running a legacy application on a non-legacy device with application-specific operating parameters for backwards compatibility | |
US6237083B1 (en) | Microprocessor including multiple register files mapped to the same logical storage and inhibiting sychronization between the register files responsive to inclusion of an instruction in an instruction sequence | |
US10747539B1 (en) | Scan-on-fill next fetch target prediction | |
JP6911102B2 (ja) | アドレス生成時のロード及びストアキューの割り当てのためのシステム及び方法 | |
US11422821B1 (en) | Age tracking for independent pipelines | |
TW201732565A (zh) | 用於迴圈不變性指令偵測及去除的方法和裝置 | |
US10628164B1 (en) | Branch resolve pointer optimization | |
KR20220064975A (ko) | 섀도우-래치로 구성된 레지스터 파일을 사용한 비트 폭 재구성 |