TWI644208B - 藉由對硬體資源之限制實現的向後相容性 - Google Patents
藉由對硬體資源之限制實現的向後相容性 Download PDFInfo
- Publication number
- TWI644208B TWI644208B TW105120793A TW105120793A TWI644208B TW I644208 B TWI644208 B TW I644208B TW 105120793 A TW105120793 A TW 105120793A TW 105120793 A TW105120793 A TW 105120793A TW I644208 B TWI644208 B TW I644208B
- Authority
- TW
- Taiwan
- Prior art keywords
- cpu
- new
- old
- size
- application
- 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/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
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/1009—Address translation using page tables, e.g. page table structures
-
- 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/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
-
- 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/1004—Compatibility, e.g. with legacy hardware
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一種在一新中央處理單元(CPU)上執行一應用程式之新裝置判定該應用程式是否為針對具有一舊CPU之一舊裝置的。當該新裝置判定該應用程式為針對該舊裝置的時,其在限制該新裝置之選定可用資源以與該舊CPU之一處理行為接近或匹配的情況下在該新CPU上執行該應用程式。
Description
本發明之態樣係關於在電腦系統上執行電腦應用程式。具體而言,本發明之態樣係關於對針對電腦系統之較舊版本設計的應用程式/標題提供向後相容性之系統或方法。
現代電腦系統對於不同的計算任務經常使用一些不同的處理器。舉例而言,除了一些中央處理單元(CPU)之外,現代電腦可具有專用於圖形管線中之某些計算任務的圖形處理單元(GPU),或專用於音訊之數位信號處理的單元,其均可能為加速處理單元(APU)之一部分,APU亦可含有其他單元。此等處理器使用可在APU內部或在外部位於電腦主機板上之匯流排而連接至各種類型之記憶體。
以下情形為常見的:針對電腦系統,諸如視訊遊戲控制台或智慧型電話(“舊裝置”)創建應用程式集合,而且在發布電腦系統之變體或更高級之版本(“新裝
置”)時,需要使舊裝置之應用程式在新裝置上無暇地運行而不需要考慮新裝置之性質的重新編譯或任何修改。如在新裝置之硬體架構、韌體及作業系統中所含有之新裝置之此態樣經常稱作“向後相容性”。
經常藉由二進位相容性來實施向後相容性,其中新裝置能够執行針對舊裝置創建之程式。然而,當裝置類別之即時行為對於其操作而言為重要的時,就像在視訊遊戲控制台或智慧型電話之情況下,新裝置之操作速度方面的顯著差異可使其無法相對於舊裝置向後相容。若新裝置之效能低於舊裝置,則可出現阻止向後相容性之問題;若新裝置與舊裝置相比效能較高,或具有不同的效能特性,則情況亦如此。
其在本發明之態樣形成的背景內。
儘管以下詳細描述出於說明之目的而含有許多特定細節,但一般熟習此項技術者應瞭解,對以下細節之許多變化及更改在本發明之範疇內。因此,闡述下文所描述的本發明之例示性實施例,而不失對所主張之本發明的一般性且不對所主張之本發明施加限制。
即使新裝置之CPU與舊裝置二進位相容(即,能够執行針對舊裝置創建之程式),新裝置之CPU與舊裝置之CPU之間的效能特性上之差異亦可在舊應用程式中導致錯誤,且因此新裝置將不向後相容。
若新裝置之CPU之效能低於舊裝置之CPU,則因為無法滿足顯示時序、音訊串流輸出或其類似者施加之即時截止時間而可在舊應用程式中出現許多錯誤。若新裝置之CPU之效能實質上高於舊裝置之CPU,則因為此高速操作之未測試過的結果而可在舊應用程式中出現許多錯誤。舉例而言,在產生者一消耗者模型中,若資料之消耗者(例如,CPU)在高於最初預期之速度下操作,則其可在資料產生者(例如,電腦之某一其他組件)使資料可用之前試圖存取資料。替代地,若資料之產生者(例如,CPU)在高於最初預期之速度下操作,則其可重寫資料消耗者(例如,電腦之某一其他組件)仍正在使用之資料。
另外,由於CPU執行程式碼之速度取决於正經執行之特定程式碼的特性,因此新裝置相對於舊裝置之CPU之效能的提高程度將有可能取决於正經執行之特定程式碼。此可導致上述產生者-消耗者模型中之問題,其中產生者及消耗者皆為CPU,但在舊硬體上未遇到之相對速度下執行舊應用程式之程式碼。
本發明之態樣描述了可關於舊電腦系統實現較高程度之向後相容性的電腦系統及方法。
在本發明之實施方案中,當在向後相容性模式(“BC模式”)中執行時,限制與CPU相關之某些資源並且更改CPU之操作的各種態樣。
由於各種資源之限制,CPU在BC模式中之效能可變得更接近舊CPU之效能,從而導致因為CPU之
不預期的效能特性而在舊應用程式中出現之錯誤較少。
另外,可在BC模式中禁用CPU之在舊CPU上不存在的某些特徵;可在BC模式中更改CPU之指令執行之延時以等於或變得較接近舊CPU之延時;而且可在BC模式中更改CPU之各種單元之操作的演算法細節以與舊CPU之彼等單元之操作的演算法細節匹配或接近。因此,當在BC模式中時,新CPU之效能可變得更接近舊CPU之效能,從而導致因為新CPU之不預期的效能特性而在舊應用程式中出現之錯誤較少。
100‧‧‧CPU核心
101‧‧‧系統記憶體
102‧‧‧分支預測單元
104‧‧‧返回位址堆疊
106‧‧‧間接目標陣列
108‧‧‧分支目標緩衝器
110‧‧‧提取及解碼/提取及解碼單元
112‧‧‧指令提取單元
114‧‧‧指令位元組緩衝器
116‧‧‧指令解碼單元
120‧‧‧指令相關之快取記憶體及指令轉換後備緩衝器(ITLB)
122‧‧‧1級指令快取記憶體(L1 I-快取記憶體)
124‧‧‧ITLB快取記憶體層級
126‧‧‧微操作快取記憶體
130‧‧‧分派及排程
132‧‧‧引退佇列
134‧‧‧暫存器重命名/SIMD及Int重命名
136‧‧‧排程佇列
140‧‧‧實體暫存器
142‧‧‧SIMD暫存器庫/實體SIMD暫存器
144‧‧‧GP暫存器庫/實體GP暫存器
150‧‧‧執行單元
152‧‧‧SIMD管
154‧‧‧算術及邏輯單元
156‧‧‧位址生成單元(AGU)
162‧‧‧儲存佇列
164‧‧‧載入佇列
170‧‧‧資料相關之快取記憶體及資料轉換後備緩衝器(DTLB)
172‧‧‧DTLB快取記憶體層級
174‧‧‧1級資料快取記憶體(L1 D-快取記憶體)
176‧‧‧其他快取記憶體級別
201、210、220、230、242、244、246、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‧‧‧所顯現的圖形
可藉由結合附圖考慮以下詳細描述而易於理解本發明之教示,在附圖中:圖1為圖示根據本發明之態樣的可經組態以在向後相容性模式中操作之中央處理單元(CPU)核心之實例的方塊圖。
圖2為圖示根據本發明之態樣的用於在向後相容性模式中操作CPU之可能的程序流之實例的流程圖。
圖3為根據本發明之態樣的具有經組態以在向後相容性模式中操作之CPU之裝置的方塊圖。
以下內容描述了CPU之一般架構,及本發明
的與在BC模式中時特定資源之限制、特徵之禁用、延時之更改,及操作的演算法細節之更改相關的各種態樣。
圖1示出CPU核心100之一般化架構。CPU核心100通常包括分支預測單元102,分支預測單元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,指令提取及解碼單元110包括指令提取單元112、指令位元組緩衝器114及指令解碼單元116。CPU核心100通常亦包括一些指令相關之快取記憶體及指令轉換後備緩衝器(ITLB)120。此等可包括ITLB快取記憶體層級124,ITLB快取記憶體層級124將虛擬位址快取至實體位址轉換資訊,諸如頁表項、頁目錄項及其類似者。此資訊用以將指令之虛擬位址變換為實體位址,使得指令提取單元112可自快取記憶體層級載入指令。作為實例,而非作為限制,可根據快取記憶體層級對程式指令進行快取,快取記憶體層級包括常駐於核心中之1級指令快取記憶體(L1 I-快取記憶體)122,以及在CPU核心100外部之其他快取記憶體級別176;使用指令之實體位址,首先在此等快取記憶體中搜尋程式指令。若未發現指令,則自系統記憶體101載入該等指令。取决於架構,亦可存在含有已解碼指令之微操作快取記憶體126,如下文所描述。
在本發明之某些態樣中,在BC模式中,L1 I-快取記憶體122、微操作快取記憶體126或ITLB快取記憶體層級124之各種級別的大小或關聯性可改變以與其在舊CPU中之各別大小及關聯性匹配或更緊密地接近。作為實例,而非作為限制,改變(例如,減小)ITLB快取記憶體層級124之大小可涉及(1)減少級別數目;或(2)改變一或多個級別之大小(例如,快取記憶體大小、區塊大小、集合中之區塊的數目)。更改快取記憶體之關聯性可涉及例如將完全關聯之快取記憶體作為四路或雙路快取記憶體而操作。儘管本發明之態樣包括指令相關之快取記憶體或ITLB之大小或關聯性減小的實施方案,但本發明不限於此等實施方案。舉例而言,舊CPU有可能必須具有較大快取記憶體,該快取記憶體在舊CPU中關聯性較小(例如,2路而非4路)。在此等情況下,新CPU可在BC模式中運行,其中對應的快取記憶體大小增大且關聯性減小以與舊CPU上之快取記憶體之行為匹配或接近。
一旦已提取程式指令,通常將程式指令置放在指令位元組緩衝器114中,等待由指令提取及解碼單元110處理。解碼可為非常複雜之程序;難以在每一循環對複數個指令進行解碼,而且可存在關於指令對準或指令類型之限制,指令類型限制在一循環中可對多少指令進行解碼。已解碼指令取决於架構可置放於微操作快取記憶體126中(若新CPU上存在微操作快取記憶體126),使得
可繞過解碼階段以用於隨後使用程式指令。
在本發明之某些態樣中,在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管152,其對SIMD暫存器庫142中所含有之128位元或較寬之SIMD暫存器中所含有的複數個資料欄位執行一些並行運算;算術及邏輯單元(ALU)154,其對GP暫存器庫144中所含有之GPR執行一些邏輯、算術及雜項運算;及位址生成單元(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,可藉由新CPU之硬體的合適組態,藉由運行CPU之作業系統的合適組態或兩者之某一組合來實施BC模式。舉例而言,如上文所論述,在BC模式中,可減小CPU之間接目標陣列106之大小、返回位址堆疊104之大小或分支目標緩衝器108之大小以與其在舊CPU中之各別大小匹配或更緊密地接近。作為實例,而非作為限制,可組態相關硬體,使得在BC模式中,作業系統或CPU韌體可減小間接目標陣列106之大小以與其在舊CPU中之各別大小匹配或更緊密地接近。以下偽碼說明可實施此操作之方式的實例:空隙函數BC_模式_間接_目標_陣列_大小
若BC_模式為真{
將間接_目標_陣列_大小設定為減小之_間接_目標_陣列_大小
}
可按類似之方式減小返回位址堆疊104之大小,或分支目標緩衝器108之大小,或其他可用資源。
按類似之方式,為了在禁用選定特徵244的情況下操作CPU,新CPU上存在之在舊CPU上不存在的某些硬體資源(例如,微操作快取記憶體126)可經組態以使得在BC模式中可藉由作業系統或CPU韌體來禁用該等硬體資源。替代地,新CPU上存在之在舊CPU上不存在的硬體資源可經組態以使得其在BC模式中由應用程式忽略。
作為實例,而非作為限制,為了在更改新CPU之指令執行之延時246以與舊CPU之延時匹配或接近的情況下操作CPU,執行單元150之硬體可經組態以在BC模式中添加“非操作”指令之等效形式以在BC模式中獲得期望之延時。
作為實例,而非作為限制,為了在更改新CPU之一或多個單元之操作的演算法細節248的情況下操作新CPU。作為實例,而非作為限制,可在BC模式中更改分支預測單元102之操作的演算法細節。舉例而言,如上文所論述,若舊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程式碼,CPU程式碼可包括作業系統(OS)321或應用程式322(例如,視訊遊戲)。OS 321可經組態以實施在BC模式中操作CPU 320之某些特徵,如上文所論述。CPU程式碼可包括圖形應用程式設計介面(API)324,API 324用於基於應用程式322之狀態向由GPU 330實施之程序發布繪製命令或繪製調用。CPU程式碼亦可實施實體模擬及其他功能。可將程式碼之用於OS 321、應用程式322或API 324中之一或多者的一部分儲存於記憶體340中,CPU內部或外部之快取記憶體中,或可由CPU 320存取之大容量儲存裝置中。
系統300亦可包括熟知之支援功能350,支援功能350可例如經由匯流排390與系統之其他組件通信。此等支援功能可包括但不限於輸入/輸出(I/O)元件352,一或多個時脈356,其可包括分別用於CPU及GPU之單獨時脈,及快取記憶體358之一或多個級別,其可在CPU 320外部。系統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)使用之其他裝置。在某些實施方案中,可至少部分經由使用者界面370藉由使用者輸入來判定應用程式322之狀態及圖形之基本內容,例如,其中應用程式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兩者,除非另外明確地陳述。作為替代方案列出之兩個或兩個以上元件可組合在一起。不應將所附申請專利範圍解釋為包括含義加功能限制,除非在給定申請專利範圍中使用片語“用於......之構件”明確地陳述此限制。
Claims (31)
- 一種方法,其包括:在一新裝置在一新中央處理單元(CPU)上執行一應用程式的情況下,判定該應用程式是否為針對具有一舊CPU之一舊裝置的;及當該新裝置判定該應用程式為針對該舊裝置時,在限制該新裝置之選定可用資源以與該舊CPU之一處理行為匹配的情況下在該新CPU上執行該應用程式,其中,該新裝置的硬體經該新CPU的韌體組態以限制該選定可用資源。
- 如申請專利範圍第1項之方法,其中在限制該新CPU之選定可用資源的情況下在該新CPU上執行該應用程式包括:減小該新CPU之一間接目標陣列之一大小以接近該舊CPU之一對應的間接目標陣列之一大小。
- 如申請專利範圍第1項之方法,其中在限制該新CPU之選定資源的情況下在該新CPU上執行該應用程式包括減小該新CPU之一返回位址堆疊之一大小以接近該舊CPU之一對應的返回位址堆疊之一大小。
- 如申請專利範圍第1項之方法,其中在限制該新裝置之選定資源的情況下在該新CPU上執行該應用程式包括減小該新CPU之一分支目標緩衝器之一大小以接近該舊CPU之一對應的分支目標緩衝器之一大小。
- 如申請專利範圍第1項之方法,其中在限制該新 CPU之選定資源的情況下在該新CPU上執行該應用程式包括改變該新CPU之一指令相關之快取記憶體或轉換後備緩衝器之一大小或關聯性以與該舊CPU之一對應的指令相關之快取記憶體或轉換後備緩衝器之一大小或關聯性匹配或接近。
- 如申請專利範圍第5項之方法,其中該新CPU之該指令相關之快取記憶體或轉換後備緩衝器為一指令轉換後備緩衝器快取記憶體層級、一1級指令快取記憶體,或一微操作快取記憶體。
- 如申請專利範圍第1項之方法,其中在限制該新CPU之選定資源的情況下在該新CPU上執行該應用程式包括減小該新CPU之一佇列的一大小以與該舊CPU之一對應佇列的一大小匹配或接近。
- 如申請專利範圍第7項之方法,其中該新CPU之該佇列為一引退佇列或一調度佇列。
- 如申請專利範圍第1項之方法,其中在限制該新CPU之選定資源的情況下在該新CPU上執行該應用程式包括減小該新CPU之一暫存器組的一大小以與該舊CPU之一暫存器組的一對應大小匹配或接近。
- 如申請專利範圍第9項之方法,其中該暫存器組為一SIMD實體暫存器組或一GP實體暫存器組。
- 如申請專利範圍第1項之方法,其中在限制該新CPU之選定資源的情況下在該新CPU上執行該應用程式包括減小該新CPU之可使用執行單元的一數目以與該舊 CPU之對應執行單元的一可用數目匹配或接近。
- 如申請專利範圍第11項之方法,其中該等執行單元包括算術邏輯單元(ALU)、位址生成單元(AGU)或單指令多資料(SIMD)管。
- 如申請專利範圍第1項之方法,其中在限制該新CPU之選定資源的情況下在該新CPU上執行該應用程式包括改變該新CPU之快取記憶體之一大小或關聯性以與該舊CPU之對應的快取記憶體之一對應大小或關聯性匹配或接近。
- 如申請專利範圍第13項之方法,其中該快取記憶體為一指令相關之快取記憶體。
- 如申請專利範圍第13項之方法,其中該快取記憶體為一資料轉換後備緩衝器(DTLB)快取記憶體層級或一1級資料快取記憶體。
- 一種系統,其包括,一新中央處理單元(CPU),其經組態以執行一應用程式之指令,該新CPU具有經組態以執行以下操作之邏輯單元:判定該應用程式是否為針對具有一舊CPU之一舊裝置的,及當該應用程式為針對該舊裝置的時,在限制該新CPU之選定可用資源以與該舊CPU之一處理行為匹配的情況下執行該應用程式,其中,該新裝置的硬體經該新CPU的韌體組態以限制該選定可用資源。
- 如申請專利範圍第16項之系統,其中藉由減小該新CPU之一間接目標陣列之一大小以接近該舊CPU之 一對應的間接目標陣列之一大小來限制該新CPU之該等選定可用資源。
- 如申請專利範圍第16項之系統,其中藉由減小該新CPU之一返回位址堆疊之一大小以接近該舊CPU之一對應的返回位址堆疊之一大小來限制該新CPU之該等選定可用資源。
- 如申請專利範圍第16項之系統,其中藉由減小該新CPU之一分支目標緩衝器之一大小以接近該舊CPU之一對應的分支目標緩衝器之一大小來限制該新CPU之該等選定可用資源。
- 如申請專利範圍第16項之系統,其中藉由改變該新CPU之一指令相關之快取記憶體或轉換後備緩衝器之一大小或關聯性以與該舊CPU之一對應的指令相關之快取記憶體或轉換後備緩衝器之一大小或關聯性匹配或接近來限制該新CPU之該等選定可用資源。
- 如申請專利範圍第20項之系統,其中該新CPU之該指令相關之快取記憶體或轉換後備緩衝器為一指令轉換後備緩衝器快取記憶體層級、一1級指令快取記憶體,或一微操作快取記憶體。
- 如申請專利範圍第16項之系統,其中藉由減小該新CPU之一佇列的一大小以與該舊CPU之一對應佇列的一大小匹配或接近來限制該新CPU之該等選定可用資源。
- 如申請專利範圍第22項之系統,其中該新CPU 之該佇列為一引退佇列或一調度佇列。
- 如申請專利範圍第16項之系統,其中藉由減小該新CPU之一暫存器組的一大小以與該舊CPU之一暫存器組的一對應大小匹配或接近來限制該新CPU之該等選定可用資源。
- 如申請專利範圍第24項之系統,其中該暫存器組為一SIMD實體暫存器組或一GP實體暫存器組。
- 如申請專利範圍第16項之系統,其中藉由減小該新CPU之可使用執行單元的一數目以與該舊CPU之對應執行單元的一可用數目匹配或接近來限制該新CPU之該等選定可用資源。
- 如申請專利範圍第26項之系統,其中該等執行單元包括算術邏輯單元(ALU)、位址生成單元(AGU)或單指令多資料(SIMD)管。
- 如申請專利範圍第16項之系統,其中藉由改變該新CPU之快取記憶體之一大小或關聯性以與該舊CPU之對應的快取記憶體之一對應大小或關聯性匹配或接近來限制受限制之該新CPU之該等選定可用資源。
- 如申請專利範圍第28項之系統,其中該快取記憶體為一指令相關之快取記憶體。
- 如申請專利範圍第28項之系統,其中該快取記憶體為一資料轉換後備緩衝器(DTLB)快取記憶體層級或一1級資料快取記憶體。
- 一種其中體現有可執行指令之非暫時性電腦可讀 媒體,該等指令經組態以在該等指令經執行後實施一方法,該方法包括:在一新裝置在一新中央處理單元(CPU)上執行一應用程式的情況下,判定該應用程式是否為針對具有一舊CPU之一舊裝置的;及當該新裝置判定該應用程式為針對該舊裝置的時,在限制該新裝置之選定可用資源以與該舊CPU之一處理行為匹配的情況下在該新CPU上執行該應用程式,其中,該新裝置的硬體經該新CPU的韌體組態以限制該選定可用資源。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/810,361 | 2015-07-27 | ||
US14/810,361 US11403099B2 (en) | 2015-07-27 | 2015-07-27 | Backward compatibility by restriction of hardware resources |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201717022A TW201717022A (zh) | 2017-05-16 |
TWI644208B true TWI644208B (zh) | 2018-12-11 |
Family
ID=57884965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105120793A TWI644208B (zh) | 2015-07-27 | 2016-06-30 | 藉由對硬體資源之限制實現的向後相容性 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11403099B2 (zh) |
CN (1) | CN106681752A (zh) |
TW (1) | TWI644208B (zh) |
WO (1) | WO2017019286A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9710276B2 (en) * | 2012-11-09 | 2017-07-18 | Advanced Micro Devices, Inc. | Execution of instruction loops using an instruction buffer |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
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 |
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 |
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 |
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 |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
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 |
US11403099B2 (en) | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
CN116401184A (zh) | 2016-01-22 | 2023-07-07 | 索尼互动娱乐股份有限公司 | 模拟向后兼容的传统总线行为 |
CN116340022A (zh) | 2016-01-22 | 2023-06-27 | 索尼互动娱乐股份有限公司 | 用于向后兼容性的欺骗cpuid |
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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060005200A1 (en) * | 2004-06-30 | 2006-01-05 | Microsoft Corporation | Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor |
US20130339649A1 (en) * | 2012-06-15 | 2013-12-19 | Intel Corporation | Single instruction multiple data (simd) reconfigurable vector register file and permutation unit |
US20140282425A1 (en) * | 2013-03-18 | 2014-09-18 | Microsoft Corporation | Application testing and analysis |
Family Cites Families (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3031192A (en) | 1961-01-30 | 1962-04-24 | Bonang William Edward | Tethered ball game |
JPS58224226A (ja) | 1982-06-21 | 1983-12-26 | Matsushita Electric Ind Co Ltd | 燃焼制御装置 |
US5805792A (en) | 1989-07-31 | 1998-09-08 | Texas Instruments Incorporated | Emulation devices, systems, and methods |
US6006310A (en) * | 1995-09-20 | 1999-12-21 | Micron Electronics, Inc. | Single memory device that functions as a multi-way set associative cache memory |
US20010033287A1 (en) | 2000-01-11 | 2001-10-25 | Sun Microsystems, Inc. | Graphics system having a super-sampled sample buffer which utilizes a window ID to specify pixel characteristics |
US7171543B1 (en) * | 2000-03-28 | 2007-01-30 | Intel Corp. | Method and apparatus for executing a 32-bit application by confining the application to a 32-bit address space subset in a 64-bit processor |
US6526463B1 (en) * | 2000-04-14 | 2003-02-25 | Koninklijke Philips Electronics N.V. | Dynamically selectable stack frame size for processor interrupts |
US6651156B1 (en) * | 2001-03-30 | 2003-11-18 | Mips Technologies, Inc. | Mechanism for extending properties of virtual memory pages by a TLB |
US6772315B1 (en) | 2001-05-24 | 2004-08-03 | Rambus Inc | Translation lookaside buffer extended to provide physical and main-memory addresses |
US6671791B1 (en) * | 2001-06-15 | 2003-12-30 | Advanced Micro Devices, Inc. | Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms |
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 |
US7046245B2 (en) | 2001-10-10 | 2006-05-16 | Sony Computer Entertainment America Inc. | System and method for environment mapping |
US7024519B2 (en) | 2002-05-06 | 2006-04-04 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
US20030217280A1 (en) | 2002-05-17 | 2003-11-20 | Keaton Thomas S. | Software watermarking for anti-tamper protection |
US7203820B2 (en) * | 2002-06-28 | 2007-04-10 | Sun Microsystems, Inc. | Extending a register file utilizing stack and queue techniques |
US20040059887A1 (en) * | 2002-09-25 | 2004-03-25 | K. S. Venkatraman | 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 |
US8423976B2 (en) | 2003-03-13 | 2013-04-16 | Northrop Grumman Corporation | Extreme pipeline and optimized reordering technology |
US7036008B2 (en) | 2003-04-17 | 2006-04-25 | International Business Machines Corporation | Autonomic determination of configuration settings by walking the configuration space |
US8356158B2 (en) * | 2003-07-15 | 2013-01-15 | Broadcom Corporation | Mini-translation lookaside buffer for use in memory translation |
US7502429B2 (en) | 2003-10-10 | 2009-03-10 | The Directv Group, Inc. | Equalization for traveling wave tube amplifier nonlinearity measurements |
US20050154915A1 (en) | 2004-01-09 | 2005-07-14 | Peterson Matthew T. | Networked computer user identification and authentication apparatus method and system |
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 |
EP1792310A4 (en) | 2004-09-14 | 2009-06-10 | Fujifilm Corp | METHOD FOR PRODUCING AN OPTICAL INFORMATION INFORMATION MEDIUM |
US7571090B2 (en) * | 2004-09-30 | 2009-08-04 | Intel Corporation | Emulating a host architecture in guest firmware |
CN100373339C (zh) | 2004-12-20 | 2008-03-05 | 英业达股份有限公司 | 计算机平台操作系统兼容处理方法及装置 |
US8274518B2 (en) * | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US7685593B2 (en) * | 2005-05-12 | 2010-03-23 | Microsoft Corporation | Systems and methods for supporting multiple gaming console emulation environments |
US20070016895A1 (en) | 2005-07-15 | 2007-01-18 | Microsoft Corporation | Selective omission of endian translation to enhance emulator performance |
US7426626B2 (en) * | 2005-08-23 | 2008-09-16 | Qualcomm Incorporated | TLB lock indicator |
US7546487B2 (en) | 2005-09-15 | 2009-06-09 | Intel Corporation | OS and firmware coordinated error handling using transparent firmware intercept and firmware services |
US7757214B1 (en) | 2005-11-10 | 2010-07-13 | Symantec Operating Coporation | Automated concurrency configuration of multi-threaded programs |
US7809547B2 (en) * | 2005-12-29 | 2010-10-05 | Guenthner Russell W | Host computer system emulating target system legacy software and providing for incorporating more powerful application program elements into the flow of the legacy software |
US20070198982A1 (en) * | 2006-02-21 | 2007-08-23 | International Business Machines Corporation | Dynamic resource allocation for disparate application performance requirements |
US20070271560A1 (en) * | 2006-05-18 | 2007-11-22 | Microsoft Corporation | Deploying virtual machine to host based on workload characterizations |
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 |
US8438365B2 (en) | 2006-10-06 | 2013-05-07 | Calos Fund Limited Liability Company | Efficient data loading in a data-parallel processor |
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 | 株式会社日立製作所 | データプロセッサ |
US8448067B2 (en) | 2006-12-07 | 2013-05-21 | Sony Computer Entertainment America, LLC | Graphics command management tool and methods for analyzing performance for command changes before application modification |
US7797509B2 (en) * | 2007-01-11 | 2010-09-14 | Netlogic Microsystems, Inc. | Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure |
US8832679B2 (en) * | 2007-08-28 | 2014-09-09 | Red Hat, Inc. | Registration process for determining compatibility with 32-bit or 64-bit software |
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 |
US7900025B2 (en) * | 2008-10-14 | 2011-03-01 | International Business Machines Corporation | Floating point only SIMD instruction set architecture including compare, select, Boolean, and alignment operations |
US8276015B2 (en) | 2009-02-23 | 2012-09-25 | International Business Machines Corporation | Managing the power-performance range of an application |
CN103039072A (zh) | 2010-05-25 | 2013-04-10 | 维德约股份有限公司 | 用于使用多个摄影机和多个监视器的可缩放视频通信的系统和方法 |
CN102270291A (zh) | 2010-06-04 | 2011-12-07 | 上海三旗通信科技有限公司 | 一种新颖的中央处理器id软件保护方案及操作方法 |
US20120033673A1 (en) * | 2010-08-06 | 2012-02-09 | Deepak Goel | Systems and methods for a para-vitualized driver in a multi-core virtual packet engine device |
US20120142425A1 (en) | 2010-10-22 | 2012-06-07 | Bally Gaming, Inc. | Legacy Game Download and Configuration |
US8694759B2 (en) * | 2010-11-12 | 2014-04-08 | Advanced Micro Devices, Inc. | Generating predicted branch target address from two entries storing portions of target address based on static/dynamic indicator of branch instruction type |
US8789138B2 (en) | 2010-12-27 | 2014-07-22 | Microsoft Corporation | Application execution in a restricted application execution environment |
US8782645B2 (en) | 2011-05-11 | 2014-07-15 | Advanced Micro Devices, Inc. | Automatic load balancing for heterogeneous cores |
US8881139B1 (en) | 2011-10-25 | 2014-11-04 | Infinite Corporation | Legacy application rehosting system |
US20140007097A1 (en) * | 2012-06-29 | 2014-01-02 | Brocade Communications Systems, Inc. | Dynamic resource allocation for virtual machines |
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 |
US9558006B2 (en) | 2012-12-20 | 2017-01-31 | Intel Corporation | Continuous automatic tuning of code regions |
US20140281398A1 (en) | 2013-03-16 | 2014-09-18 | William C. Rash | Instruction emulation processors, methods, and systems |
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 |
US10102603B2 (en) | 2013-06-10 | 2018-10-16 | Sony Interactive Entertainment Inc. | Scheme for compressing vertex shader output parameters |
US10096079B2 (en) | 2013-06-10 | 2018-10-09 | Sony Interactive Entertainment Inc. | Fragment shaders perform vertex shader computations |
US10176621B2 (en) | 2013-06-10 | 2019-01-08 | Sony Interactive Entertainment Inc. | Using compute shaders as front end for vertex shaders |
EP2924564A1 (en) | 2014-03-25 | 2015-09-30 | Rovio Entertainment Ltd | Application configuring |
US10439869B2 (en) | 2014-03-25 | 2019-10-08 | Rovio Entertainment Ltd. | Application configuring |
US10120663B2 (en) * | 2014-03-28 | 2018-11-06 | Intel Corporation | Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture |
US9865074B2 (en) | 2014-04-05 | 2018-01-09 | Sony Interactive Entertainment America Llc | Method for efficient construction of high resolution display buffers |
US9710957B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Graphics processing enhancement by tracking object and/or primitive identifiers |
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 |
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 |
KR101923562B1 (ko) | 2014-04-05 | 2018-11-29 | 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 | 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법 |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
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 |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
US9703951B2 (en) * | 2014-09-30 | 2017-07-11 | Amazon Technologies, Inc. | Allocation of shared system resources |
US9614931B2 (en) * | 2015-01-20 | 2017-04-04 | Sphere 3D Inc. | Identifying a resource set require for a requested application and launching the resource set in a container for execution in a host operating system |
US9733987B2 (en) * | 2015-02-20 | 2017-08-15 | Intel Corporation | Techniques to dynamically allocate resources of configurable computing resources |
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 |
US9753749B2 (en) | 2015-07-01 | 2017-09-05 | Dell Products, Lp | Information handling system configuration parameter history management |
US10235219B2 (en) | 2015-07-27 | 2019-03-19 | Sony Interactive Entertainment America Llc | Backward compatibility by algorithm matching, disabling features, or throttling performance |
US11403099B2 (en) | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
US20170052780A1 (en) | 2015-08-21 | 2017-02-23 | Zih Corp. | Methods and Apparatus to Adapt Legacy Applications to Target Platforms |
US10726619B2 (en) | 2015-10-29 | 2020-07-28 | Sony Interactive Entertainment Inc. | Foveated geometry tessellation |
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 |
US20170228225A1 (en) | 2016-02-05 | 2017-08-10 | Honeywell International, Inc. | System and method for preserving value and extending life of legacy software in face of processor unavailability, rising processor costs, or other issues |
US10275239B2 (en) | 2016-03-30 | 2019-04-30 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
US10915333B2 (en) | 2016-03-30 | 2021-02-09 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
US9761113B1 (en) | 2016-07-20 | 2017-09-12 | Banner Engineering Corp. | Light curtain protection system featuring a passive optical module |
-
2015
- 2015-07-27 US US14/810,361 patent/US11403099B2/en active Active
-
2016
- 2016-06-30 TW TW105120793A patent/TWI644208B/zh active
- 2016-07-11 WO PCT/US2016/041762 patent/WO2017019286A1/en active Application Filing
- 2016-07-20 CN CN201610577282.0A patent/CN106681752A/zh active Pending
-
2022
- 2022-06-29 US US17/852,821 patent/US11853763B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060005200A1 (en) * | 2004-06-30 | 2006-01-05 | Microsoft Corporation | Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor |
US20130339649A1 (en) * | 2012-06-15 | 2013-12-19 | Intel Corporation | Single instruction multiple data (simd) reconfigurable vector register file and permutation unit |
US20140282425A1 (en) * | 2013-03-18 | 2014-09-18 | Microsoft Corporation | Application testing and analysis |
Non-Patent Citations (2)
Title |
---|
AMD,"Software Optimizatio Guide for AMD Family 16h Processors, Revision 1.1",Advanced Micro Devices, March 2013 * |
AMD,"Software Optimizatio Guide for AMD Family 16h Processors, Revision 1.1",Advanced Micro Devices, March 2013。 |
Also Published As
Publication number | Publication date |
---|---|
US20220326951A1 (en) | 2022-10-13 |
WO2017019286A1 (en) | 2017-02-02 |
US11853763B2 (en) | 2023-12-26 |
US20170031834A1 (en) | 2017-02-02 |
CN106681752A (zh) | 2017-05-17 |
US11403099B2 (en) | 2022-08-02 |
TW201717022A (zh) | 2017-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI644208B (zh) | 藉由對硬體資源之限制實現的向後相容性 | |
JP7284199B2 (ja) | アルゴリズム整合、機能無効化、または性能制限による後方互換性 | |
US11907105B2 (en) | Backward compatibility testing of software in a mode that disrupts timing | |
US9639369B2 (en) | Split register file for operands of different sizes | |
JP7084379B2 (ja) | ロードストアユニットをバイパスすることによるストア及びロードの追跡 | |
JP6604689B2 (ja) | ディペンデンシーを整理し、リビルディングするシステム及び方法 | |
US10303488B2 (en) | Real-time adjustment of application-specific operating parameters for backwards compatibility | |
US20230004405A1 (en) | Running a legacy application on a non-legacy device with application-specific operating parameters for backwards compatibility | |
US11422821B1 (en) | Age tracking for independent pipelines | |
US20210132985A1 (en) | Shadow latches in a shadow-latch configured register file for thread storage | |
US20130046961A1 (en) | Speculative memory write in a pipelined processor | |
JP2022548864A (ja) | シャドウラッチ構成のレジスタファイルを用いたビット幅再構成 |