TW201723808A - 修改資料處理單元的行為 - Google Patents

修改資料處理單元的行為 Download PDF

Info

Publication number
TW201723808A
TW201723808A TW105129554A TW105129554A TW201723808A TW 201723808 A TW201723808 A TW 201723808A TW 105129554 A TW105129554 A TW 105129554A TW 105129554 A TW105129554 A TW 105129554A TW 201723808 A TW201723808 A TW 201723808A
Authority
TW
Taiwan
Prior art keywords
instruction
circuitry
behavior
data processing
processing unit
Prior art date
Application number
TW105129554A
Other languages
English (en)
Other versions
TWI737628B (zh
Inventor
凱洛荷柏特吉拉杜斯 瓦特斯
亞當瑞蒙 杜力
Original Assignee
Arm股份有限公司
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 Arm股份有限公司 filed Critical Arm股份有限公司
Publication of TW201723808A publication Critical patent/TW201723808A/zh
Application granted granted Critical
Publication of TWI737628B publication Critical patent/TWI737628B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders

Abstract

本發明提供一種包含可重寫儲存電路系統之裝置,該可重寫儲存電路系統用於儲存在至少一個指令識別符與行為修改之間的至少一個映射。 選擇電路系統自可重寫儲存電路系統中選擇一經選擇之映射,該經選擇之映射具有識別經接收之指令之指令識別符。經接收之指令引起資料處理單元執行預設行為。控制電路系統引起資料處理單元根據由行為修改而修改之預設行為來行為。

Description

修改資料處理單元的行為
本揭示案係關於修改資料處理單元的行為的領域。
在包含管線的資料處理單元(Data Processing Unit; DPU)中,經提取之指令經解碼成為一或多個微操作(由數個位元表示)且該等微操作隨後經傳遞至一或多個執行電路。然而,有時在已建立硬體之後,會發現一個設計故障,該設計故障引起執行對於某些指令或指令序列不適當地發生。先前已提出藉由程式改寫編譯器來處理該等問題。例如,在產生組合代碼時,編譯器可避免產生對於帶來問題所已知的指令或指令序列。然而,此方法非常耗時且複雜,需要大量的努力來實施。另外,此方法並未完全解決基本問題,因為未使用「新的」編譯器編譯的代碼將仍然經受故障。因此,將需要提供一種機制,在該機制中有可能動態地控制特定指令或指令序列的識別,且隨後提供指示已偵測到指令或指令序列的信號,或採取可用於阻止彼等指令之不當執行的特定動作。
自第一示例性配置來看,本發明提供一種裝置,該裝置包含:可重寫儲存電路系統,用於儲存至少一個指令標識符與行為修改之間的至少一個映射;選擇電路系統,用於自該可重寫儲存電路系統中選擇一經選擇之映射,該映射具有識別經接收之指令的指令識別符,其中該經接收的指令引起資料處理單元執行預設行為;及控制電路系統,用於引起該資料處理單元根據由該行為修改而修改之該預設行為來行為。
自第二示例性配置來看,本發明提供一種操作資料處理裝置之方法,該方法包含:在可重寫儲存電路系統中,儲存在至少一個指令標識符與行為修改之間的至少一個映射;接收一經接收之指令,其中該經接收之指令引起資料處理單元執行預設行為;自該可重寫儲存電路系統中選擇具有識別該經接收之指令的指令標識符的經選擇之映射;且引起該資料處理單元根據由該行為修改而修改之該預設行為來行為。
自第三示例性配置來看,本發明提供一種裝置,該裝置包含:可重寫儲存電路系統,用於儲存至少一個指令標識符;選擇電路系統,用於自該可重寫儲存電路系統中選擇一經選擇之映射,該映射具有識別待由資料處理單元執行之經接收之指令的指令標識符;控制電路系統,用於產生識別該經選擇之映射的信號;及分析電路系統,用於產生包含由該資料處理單元執行之操作的輸出跡線且用於接收該信號,且回應於接收該信號以將該經選擇之映射輸出至該跡線。
在參考附圖論述實施例之前,提供了實施例之以下描述。
自第一示例性配置來看,本發明提供一種裝置,該裝置包含:可重寫儲存電路系統,用於儲存至少一個指令標識符與行為修改之間的至少一個映射;選擇電路系統,用於自該可重寫儲存電路系統中選擇一經選擇之映射,該映射具有識別經接收之指令的指令識別符,其中該經接收之指令引起資料處理單元執行預設行為;及控制電路系統,用於引起該資料處理單元根據由該行為修改而修改之該預設行為來行為。
資料處理單元(Data  Processing Unit; DPU)回應於指令執行特定預設行為。可重寫儲存電路系統能夠儲存指令標識符與行為修改之間的數個映射。當經接收之指令與映射中之一者中的指令標識符匹配時,經由控制電路系統使DPU根據由行為修改而修改之預設行為來行為。因為可重寫儲存電路系統為可重寫的,所以有可能使用軟體動態地增加、刪除,且編輯映射。因此,DPU回應於給定經接收指令之行為可得以改變。由此,若隨著特定指令或指令序列之執行發現故障,則有可能使DPU以不同於預設方式之行為來行為且從而阻止該故障發生。應注意,由行為修改而修改之預設行為可產生與預設行為完全不同之行為,以使得預設行為根本不發生。
在一些實施例中,該指令識別符識別複數個指令。該等實施例允許DPU的行為基於一或更多類指令或具有特定特性的任何指令而修改。
存在其中指令識別符可識別複數個指令之數種方式。然而,在一些實施例中,該指令識別符包含基本指令及遮罩;該經接收之指令係由複數個位元表示;且該遮罩指示該經接收指令之彼等位元必須匹配該基本指令之相應位元,以便使該指令識別符識別該經接收之指令。識別複數個指令之此方式尤為有效且允許當發生匹配時在控制中之大量靈活性。
在一些實施例中,該指令識別符識別包含一或多個運算子之至少一個指令。指令運算子指示由DPU執行之運算或任務。運算之實例包括執行整數加法或乘法,引起分支在程式流中發生,或執行浮點運算。指令識別符可用於識別一個此運算類型,運算類別(例如,整數或浮點加法)或所有運算。
在一些實施例中,該指令識別符識別包含一或多個運算元之至少一個指令。運算元為對其執行運算之各個元素。例如,在加法運算「ADD r2 2 3」中,該運算將值「2」及「3」相加在一起且將結果儲存於暫存器r2中,運算元為「r2」、「2」及「3」。運算元可以為絕對值、暫存器,或記憶體位址。
在一些實施例中,該指令識別符識別參考一或多個記憶體位址之至少一個指令。當儲存資料至記憶體或自記憶體擷取資料時常常參考記憶體位址—可由載入/儲存處理單元執行之運算。由於在載入/儲存單元與記憶體裝置本身之間必須發生的交握協定,存取記憶體可能尤為複雜。因此,相對於往返於記憶體裝置載入或儲存資料發生之問題並不罕見。
在一些實施例中,該至少一個映射進一步包含所需狀態;且該選擇電路系統進一步依賴於匹配該資料處理單元之當前狀態之該所需狀態來選擇該經選擇之映射。在該等實施例中,不僅指令必須匹配特定映射之識別符,而且DPU亦必須具有匹配所需狀態之當前狀態。在映射與指令序列相關之情況下,所需狀態可在指令之間變化,可對所有指令相同或可僅針對序列中之最終指令而指定。
在一些實施例中,該所需狀態包含該資料處理單元處於32位元模式或64位元模式之一者中的要求。DPU在其中操作之執行模式可對DPU如何工作具有影響。因此,在一些情況下,對於當在特定執行模式中時的某些指令之執行,需要影響DPU的行為。
在一些實施例中,該所需狀態包含該資料處理單元操作於比預定執行位凖具有更多特權之位凖或比該預定位凖具有更少特權之位凖的一位凖中的要求。DPU可通常操作在不同位凖之特權下。例如,多件使用者軟體各自操作在特權之「使用者」位凖下,且操作系統作為特權之「監督器」或「監視器」位凖來操作。如此有可能使操作系統限制或控制對敏感資料或操作之存取,或將多件使用者軟體彼此隔離以便其無法彼此干擾。在更複雜之佈置中,超管理器可在操作之甚至更高的「超管理器」位凖下執行,以允許多個操作系統於在超管理器之控制及管理下的裝置上操作。其他或不同之位凖亦是可能的。
在一些實施例中,該所需之狀態包含該資料處理單元已指定賦能或去能的功能性的要求。例如,變換旁看緩衝器(Translation Lookaside Buffer; TLB)可用以在最近使用之虛擬記憶體位址與實體記憶體地址之間快速變換。然而,在一些場合,該功能性可藉由停用TLB而去能。所需狀態可代表多個不同功能。例如,所需狀態可要求賦能一些功能,而去能其他功能。
在一些實施例中,該所需之狀態包含一要求,即該資料處理單元正在使用一預定指令集或除了該預定指令集以外的指令集。可通常使DPU在不同指令集之間切換。因此,所需狀態可要求特定指令集係正在由DPU使用以修改由特定指令引起之行為。
在一些實施例中,該至少一個映射包含包括該指令識別符之至少兩個指令識別符之序列;且該選擇電路系統自該可重寫儲存電路系統選擇一經選擇之映射,該經選擇之映射具有包括該指令識別符之至少兩個指令識別符之序列,其中該至少兩個指令識別符識別包括該經接收之指令的經接收指令之序列。然而,在無序實施方式中,對其修改行為之經接收之指令可為序列中之第一指令,對其修改行為之經接收之指令典型地在經接收之指令的序列的末端。因此,當經接收之指令為指令序列中之第一或最後一個指令時,該裝置能夠控制經接收之指令的行為。例如,可能是以下情況,加法指令之後跟隨減法指令引起故障發生。映射可因此包括指令識別符之序列—第一指令識別符匹配加法指令且第二指令識別符匹配減法指令,以便序列中之減法指令之行為經修改以避免故障行為。
在一些實施例中,該裝置包含管線,該管線包含指令提取電路系統、指令解碼電路系統和至少一個執行電路;且該資料處理單元包含該指令解碼電路系統及該至少一個執行電路。指令提取電路系統引起指令得以自例如記憶體而提取。指令解碼電路系統引起經提取之指令得以解碼為一或多個微操作,該一或多個微操作隨後被提供至至少一個執行電路。至少一個執行電路可包括例如算術邏輯單元(Arithmetic Logic Unit; ALU)、浮點單元(Floating Point Unit; FPU)、載入/儲存單元、分支單元,及乘法累加單元(Multiply Accumulate unit; MAC)。其他實例對於熟習該項技術者將是顯而易見的。在一些實施例中,指令提取電路系統發送控制信號至選擇電路系統以及至解碼電路系統。
在一些實施例中,回應於接收該指令,該指令解碼電路系統輸出對應於待由該至少一個執行電路執行之一或多個微操作之複數個位元;該行為修改指示待修改之該複數個位元之集合。由解碼電路系統輸出之總位元可被稱為輸出平面且可包含大量位元,該等位元可被發送至一或多個執行電路。藉由修改該等位元中之一些位元,有可能由於執行特定指令之結果改變DPU之行為。
該集合可以是位元的完全新的集合。如此可引起執行電路執行與預設行為完全不同的行為。然而,在其他實施例中,該集合為一子集。換言之,例如,藉由若已知暫存器r2已變得不可靠而總是使用暫存器r3,而非暫存器r2,則可稍微修改行為。在一些實施例中,該集合由單個位元組成。該位元可用於編碼特殊行為。例如,單個位元可用於表示特定指令將不被無序執行。
存在大量由行為修改修改之預設行為之實例。然而,在一些實施例中,由該行為修改而修改之該預設行為包含引起該資料處理單元沖洗該管線。該管線可使得多個指令被大體上同時地處置。實際上,當一個指令正在由執行電路執行時,下一個指令正在由指令解碼電路系統解碼且在該下一個指令之後的指令正在由指令提取電路系統提取。沖洗管線使得所有指令被處置為丟棄。此舉具有「重設」管線狀態之效應。
在一些實施例中,由該行為修改而修改之該預設行為包含引起該資料處理單元賦能或去能資料之預提取。預期其最近未來之使用,資料之預提取使得有可能在需要資料之前例如自記憶體提取資料。例如藉由將任何預提取指令轉換為NOOP指令可達成資料預提取之去能,該NOOP指令為僅引起程式計數器增量之特殊指令。實際上,可從而去能預提取。
在一些實施例中,由該行為修改而修改之該預設行為包含引起該資料處理單元改變在一個時鐘週期中發出之數個指令。此改變之實例為三重發出,其中三個指令可同時地經發出至執行電路。因此,在一些實施例中,三重發出可經減少至雙重發出或可全部去能多個發出,從而將在一個時鐘週期中發出之指令的數目減少至1。
在一些實施例中,由該行為修改而修改之該預設行為包含引起該資料處理單元賦能或去能無序執行。無序執行使得指令有可能經重排序以改良並行化。例如,若僅存在單個浮點電路,則一次僅可處置一個浮點運算。序列中之兩個浮點指令可因此被重排序,以便指令由可執行之其他指令所散置,同時正在執行第一浮點指令。
在一些實施例中,由該行為修改而修改之該預設行為包含信號之產生,該信號識別該經選擇之映射。信號可因此用於決定所遇到之指令(或指令序列)。當執行除錯或收集統計量(例如,對於效能分析)時,此資訊可能是有益的。
在一些實施例中,該裝置包含用於接收該信號之嵌式邏輯分析器。可使嵌式邏輯分析器(Embedded Logic Analyser; ELA)在當特定事件發生時接收來自裝置之內的不同電路之輸入信號。例如,每當ALU接收用於執行特定操作之指令時,ELA可接收來自ALU之信號。藉由另外地向ELA提供關於何時遇到指令或指令序列之資訊時,有可能對裝置之行為執行更多詳細分析。
現將參照附圖描述特定實施例。
第1圖圖示根據一個實施例之修復電路系統100。修復電路系統100包含選擇電路系統110,選擇電路系統110接收對應於經接收之指令之輸入信號。在此實施例中,輸入信號係由指令提取電路系統產生且作為管線之一部分與發送至指令解碼電路系統之相同信號相對應。選擇電路系統110參考可重寫儲存電路系統120,該電路系統儲存在指令識別符與行為修改之間的映射表格。由比較電路系統150進行比較,且若發現匹配,則將所得行為修改提供至控制電路系統,該控制電路系統輸出行為修改信號(例如,「修復信號」)。控制電路系統130另外地輸出控制信號,該控制信號用於控制行為修改之插入。在第2圖至第4圖中更詳細地圖示此過程,該等附圖圖示DPU。可重寫儲存電路系統120中之每一項目與特定指令、指令類別,或任一者之序列相關。對於映射指令序列之每一映射,必須提供用於記錄至今每一序列中之多少指令已匹配之計數器。每一計數器儲存於選擇電路系統110中之計數器140之群組中。
第2圖圖示包含DPU 280之系統200。在此實例中,DPU包含系統200之彼等部分,系統200負責實際上執行指令且特定言之包括指令解碼器220及複數個執行電路220、225、230、235及240。指令提取電路系統205及指令解碼電路系統210,以及執行電路220、225、230、235和240共同地形成管線。在管線之內,指令係藉由指令提取電路系統205提取。如此引起輸入信號經提供至指令解碼電路系統210以及修復電路系統110。指令解碼電路系統210解碼指令,且如此引起複數個位元以一或多個微操作之形式由指令解碼電路系統210輸出。該等微操作在多工器215處用修復(例如,經修改之微操作)多工在一起,該修復由修復電路系統110輸出。由修復電路系統110輸出之控制信號可用於控制多工器。因此,有可能使位元之整個集合組成由指令解碼電路系統210輸出之微操作,或僅位元之子集或甚至單個位元得以修改。多工器215之輸出對應於由行為修改修改之預設行為,且所得經修改之微操作隨後經傳送至相關執行電路220、225、230、235及240。在此實施例中,執行電路包括:算術邏輯單元(Arithmetic Logic Unit; ALU),該單元執行整數運算或邏輯操作;浮點單元(Floating Point Unit; FPU) 225,該單元對浮點數執行操作;載入/儲存單元230,該單元處置載入且往返於記憶體資料儲存資料;分支單元235,該單元處置分支及程式流之控制;乘積累加單元240,該單元處置將數字相乘且將該結果相加至累加器之特殊算術情況。然而,該等電路僅為執行電路之實例。特定言之,可以使用該等或其他執行電路之任何組合。執行電路之組合亦可變化。在一些情況下,亦可包括相同類型之多個執行電路。在此實施例中,包括了一組配置暫存器250。該等暫存器控制DPU 245在其中操作之方式。在一些實施例中,配置暫存器250可用於賦能或去能功能性,諸如預提取。在一些情況下,該等暫存器可用於去能實驗性的功能性。在任何情況下,指令解碼電路210鑒於配置暫存器250之值依賴於經接收之指令來發出微操作。修復電路系統110可提供超越配置暫存器之修復。例如,若由指令解碼電路系統210產生之微操作含有應使用實驗性預提取機制之指示,則修復電路系統可在其中已知此機制不起作用之情況下,發出對於作為「修復」之微操作之一部分的替換集合以去能此實驗性機制。
第3圖圖示類似於第2圖中所示之系統200之系統300,除了修復電路系統110能夠輸出信號至指令解碼電路系統210中之多發出電路系統305之外。多發出電路系統305控制DPU 245用於執行指令之多發出(例如雙發出)之能力。此舉與其中多個指令(例如,在雙發出之情況下為兩個指令)在單個時鐘週期中發出之過程有關。在一些實施例中,在行為修改涉及去能或賦能多發出之情況下,不必向多工器215提供「修復」或任何經修改之位元。
第4圖圖示其中由修復電路系統110輸出之行為修改信號採用至嵌式邏輯分析器(Embedded Logic Embedded Logic; ELA) 405之信號之形式的系統400,該系統為DPU之另一實例。行為修改信號指示儲存於可重寫儲存電路系統120中之映射中之何者已與經接收之指令匹配。例如,行為修改信號可包含映射之索引。ELA接收來自系統400之內的不同電路之輸入,該等電路包括執行電路220、225、230、235及240之彼等電路。ELA基於其接收之信號輸出跡線。例如,回應於ALU 220執行加法操作,信號經傳輸至ELA 405,ELA 405輸出此資訊至跡線。然而,另外,由ELA 405自修復電路系統110接收之信號亦引起輸出被寫入至跡線。此舉可使得藉由用附加資訊查看跡線而更容易地執行除錯或統計分析,該附加資訊與由指令提取電路系統205提取之特定指令或指令序列是否匹配相關。
第5A圖圖示根據一個實施例之由可重寫儲存電路系統120儲存之映射505的實例。經接收之指令針對每一映射中之指令識別符而匹配,直至發現匹配,或直至決定無匹配為止。每一映射包含至少一個指令識別符,各指令識別符包含基本指令515及遮罩510。遮罩510指示基本指令515中之何位元待針對經接收之指令中之相應位元而映射。在此實施例中,在遮罩510之位元位置i中之「1」的存在指示基本指令515之位元位置i中之位元必須匹配經接收之指令之位元位置i中的位元。因此,在第5A圖中所示之實例中,若經接收之指令具有任何四個位元,之後是位元「0010」,之後是更進一步的八個位元,則將發生匹配。因此,在此情況下,指令識別符將針對較大的指令類別而匹配。相反,當遮罩幾乎充滿1s時,則僅非常特定的指令將引起匹配。旗標「S」520用於指示此指令識別符是否為映射505中之指令識別符序列的一部分。在此情況下,映射505之值「0」指示此指令識別符並非為映射505中之指令識別符序列的一部分。因此,若經接收之指令匹配此映射505中之單個指令識別符,則列於輸出區段525之下的行為修改發生。輸出區段525中之各行530、535、540、545指示當特定映射匹配時可發生之不同行為修改。ELA行525係用於指示是否信號應例如輸出至ELA 405,如先前參考第4圖所論述。信號包括已匹配之項目之指示。在此實例中,信號指示值「0」來指示匹配映射號0。預行530指示是否應賦能或去能指令之預提取。預提取可藉由例如將所有隱式記憶體存取指令轉換為NOOP指令來去能,該NOOP指令僅增量DPU之程式計數器。OOO行535指示是否應去能或賦能無序指令執行。在此實例中,項目「0」指示應去能無序指令執行;換言之,此指令之排序不應可變。多行540指示可與此指令並行發出之指令數目。本文之值「1」將意謂指令僅可就其自身發出。換言之,此指令無法與任何其他指令一起多發出(諸如,雙發出)。當然,在本文提供之任何值取決於來自下層硬體之支援。例如,若僅提供單個ALU,則無論本文提供之值如何,僅可單次發出算術或邏輯整數指令。沖洗行545指示一旦已執行指令就沖洗管線。其他行為修改亦是可能的。此外,單個映射可提供多個修改。例如,單個映射可引起管線得以沖洗,且對於指令的排序,藉由針對單個項目設定OOO行535中之「0」及沖洗行545中之「1」來保持不變。
第5B圖圖示其中存在包含指令識別符555、560之序列的單個映射550之實例。在此情況下,若第一經接收之指令匹配第一指令識別符555且隨後之指令匹配第二指令識別符560,則將匹配單一映射550。第一指令識別符之S行520中之值「1」用於指示,在匹配了第一指令識別符555之情況下,下一個指令識別符560亦必須匹配待匹配之其自身之整體映射550。在此實例中,第一指令必須包含12個位元,之後是位元「1111」。後續指令必須包含位元「0110 0100」,之後是另外8個位元。若滿足了所有該等條件,則輸出行指示在執行了指令之後沖洗管線。需要待匹配之多個指令之每一映射使用計數器140集合中之一計數器來記錄至今已匹配了多少指令識別符序列。若在任何階段,當前指令不匹配下一個指令識別符,則重設計數器且匹配必須重新開始。
如前所述,許多行為修改具有在配置暫存器250中設定之預設。在配置暫存器250中設置之值影響由指令解碼電路系統210輸出之微操作。在第5A圖及第5B圖中所示之表中提供之一些行為修改(預、OOO,及沖洗)引起待由修復電路系統110輸出之微操作之改變的集合。該等改變通常由非常小數目之位元(通常甚至是單個位元)來表示。例如,若加法指令之微操作包含140個位元,則第50個位元可控制是否允許無序執行。若已知隨後必須改變何位元,而不是重新輸出經修改微操作之整個集合,則有可能輸出小得多的「修復」。此修復可經由多工器215應用於由指令解碼電路系統210產生之微操作,該多工器由修復電路系統110所控制。如此產生非常有效地產生之微操作之經修改的集合。多發出係藉由發出信號至指令解碼電路系統210中之多發出電路系統305來賦能或去能。ELA 405之使用係藉由僅提供信號至ELA 405來賦能或去能。
第5C圖圖示其中對於映射之行為修改提供不同輸出行565之實例。新的位元行570指示待與位元(表示由指令解碼電路系統210產生之微操作)多工之新的位元集合。起始行575指示待與位元(表示由指令解碼電路系統210產生之微操作)多工之該等位元之點。長度行580指示置換位元之長度。在此實例中,亦提供T行585。此行指示是否後續指令待修改。隨後,提供後續輸出線以指示如何修改彼等指令。例如,第5C圖中所示之映射指示,若對經接收之指令進行匹配,則用於表示由指令解碼電路系統210產生之微操作之位元中的位元11至位元18經改變為「0010 1110」。此外,由指令解碼電路系統210對後繼指令產生之微操作之位元中的位元216至219經改變為「0110」。因此,輸出行565共同顯式地指示如何將藉由多工器215修改由指令解碼電路系統210產生之微操作。
第5D圖圖示具有更進一步的不同輸出行565之實例。在第5D圖之情況下,每一映射具有置換位元595之一集合及遮罩590,該遮罩指示應替換何位元且應將何位元避開組成由指令解碼電路系統210輸出之微操作之位元。在此實例中,在位元位置j處的遮罩590中之「1」指示在由指令解碼電路系統210產生之微操作之位置j處的位元應用在置換位元595之位置j處的相應位元置換。在位置j處之「0」指示不應對位置j處的位元進行置換。例如,在第5D圖之實例中,微操作之第一四個位元將用「1111」置換,其次四個位元將不被修改,隨後四個位元將用「1110」置換,且其次四個位元將用「0011」置換。此過程允許對微操作進行極其複雜的修改。
第5A圖至第5D圖中所述之實例中之每一者可經組合以使得一些映射使用第5A圖中所述之技術,且其他映射使用第5B圖、第5C圖或第5D圖中所述之技術。用於將此實施之一種方式將為具有一種原始表,該表提供指令識別符以及索引及其中使用次級表之指示。隨後可對四個不同技術中之每一技術提供不同的次級表。
在第5C圖中描述之「T」行之使用亦可延伸至第5A圖、第5B圖或第5D圖中所描述之技術中之任一者。
第5E圖圖示當決定是否經接收之指令與映射中之指令識別符匹配時可以進行的進一步考慮。儘管第5E圖圖示結合第5C圖中所示之技術使用之此進一步考慮,但是該考慮可與參考第5A圖至第5D圖描述之技術中之任一者一起使用。在第5E圖中,增加狀態行600之進一步集合。在該等實施例中,若滿足兩個條件,則指令識別符與經接收之指令匹配。首先,經接收之指令必須對應於如先前所述之基本指令及遮罩;且其次,DPU之狀態亦必須匹配由狀態行600定義之狀態。在此實例中,狀態行600包含32位之行605,該行指示是否DPU當前正在以32位元之模式執行。位凖行610指示DPU之當前執行位凖。換言之,位凖行610指示其中DPU當前正在執行之特權之當前位凖。超管理器可以比操作系統更高位凖之特權執行,例如,超管理器可以比使用者應用更高位凖之特權執行。狀態行亦可用於指示功能性之特定態樣是否被賦能或去能。例如,TLB行615係用於指示變換旁看緩衝器(Translation Lookaside Buffer; TLB)當前是否有效。另一行A64 620係用於決定當前正在執行之指令集是否為A64。然而,此行亦可經修改以指示若干指令集中之何者當前正在由DPU執行。例如,值「0」可表示A64,值「1」可表示「A32」,值「2」可表示「T32」,且值「3」可表示「D16」。在此實例中,若第一指令具有四個位元,繼之以位元「0000」,繼之以另外四個位元,繼之以位元「1011」且若在接收到第一指令之時,執行位凖為「2」且TLB經賦能且若下一個經接收之指令具有四個位元,繼之以位元「0000」,繼之以另外四個位元,繼之以位元「1011」且若在接收到下一指令之時,執行位凖為「2」且TLB經去能,則發生對於第5E圖中所示之單個映射625之匹配。若滿足所有該等條件,則發生由輸出行565指示之行為修改。應注意,在此實施例中,可對於每個指令識別符提供DPU之不同所需狀態。如此允許匹配中之大量靈活性。然而,在其他實施例中,存在單個所需狀態且當接收到序列中之每一指令時,此狀態必須對應於DPU之狀態。在其他實施例中,僅當序列中之最終指令與映射中之最終指令識別符相比時,才考慮DPU之狀態。
第6圖示意地圖示可用於指示是否特定映射匹配經接收之輸入資訊之電路系統700。電路系統包含第一與閘705,該第一與閘在輸入資訊與遮罩515之間執行邏輯與。邏輯函數與返回「1」,否則其中兩個輸入為「1」及「0」。因此,與閘之輸出為與輸入資訊及遮罩之間的邏輯與相對應之位元集。若兩組位元相互匹配且以其他方式返回單個位元「0」,則第一相等電路710返回單個位元「1」。在其中不考慮DPU之狀態的實施例中,第一相等電路710之輸出隨後與進行匹配(若輸出為「1」)還是不進行匹配(若輸出為「0」)相對應。在其中考慮DPU之狀態的實施例中,第二相等電路715係用於將指定狀態行相對於DPU之狀態比較。在特定狀態行中不進行項目之情況下,不進行比較。第二相等電路715及第一相等電路710之結果隨後經提供至第二與閘720。第二與閘720之輸出隨後與進行匹配(若輸出為「1」)還是不進行匹配(若輸出為「0」)相對應。第二與閘720要求相對於指令識別符及DPU之所需狀態兩者進行匹配。
第7圖圖示流程圖800,該流程圖圖示其中經接收之指令可相對於可重寫儲存電路系統120中之映射匹配之方式。過程開始於其中接收到指令之步驟805。在步驟810處,表示當前正在考慮何映射之計數器k經設定為0。在步驟815處,決定是否計數器k小於映射之數目。若否,則已考慮整個映射集合且未發現匹配,在此情況下,過程返回至其中接收下一個指令之步驟805。否則,過程繼續至步驟820,其中決定映射k是否匹配。此舉包括將經接收之指令相對於由項目k的計數器指示之當前映射k之指令識別符比較,以及將系統狀態與任何所需狀態相比較,該所需狀態與映射k中之指令識別符相對應。例如,若項目k之計數器為「2」,則將第三指令識別符及彼指令識別符之相應狀態與經接收之指令及DPU之狀態相比較。若無匹配(即,若指令或狀態中之任一者不匹配),則與映射k相關聯之任何計數器係在步驟825處重設。如此表示以下的事實,若映射k與指令序列/狀況有關,則序列已由非匹配指令/狀況所中斷。隨後,k的值在步驟830處增量,且過程返回至步驟815以檢查下一個映射。否則,在步驟840處,決定此指令是否為映射k中之最後一個指令。例如,此舉可測試是否S行之值(如參考第5A圖至第5E圖中所示之實施例而論述)為0。若否,則與k相關聯之計數器在步驟845處增量,且計數器k在步驟830處增量且過程返回至步驟。如此表示其中進一步指令必須在匹配整體映射之前匹配之情況。若決定此指令為在步驟840處之最後一個指令,則在步驟850處,輸出相應控制信號以實現行為修改;且在步驟855處,重設k的計數器。
應注意,若多個匹配作為相同經接收之指令之結果發生,則系統之行為未定義。特定言之,如此可導致同時進行多個修改,此舉可產生不可預知的行為。此行為可藉由例如僅實施匹配之第一映射之行為修改來防止。
在本申請案中,用詞「經配置以…」係用於意謂裝置之元件具有能夠執行所定義操作之配置。在此上下文中,「配置」意謂硬體或軟體互連之佈置或方式。例如,裝置可具有提供經定義操作之專用硬體,或者處理器或其他處理裝置可經程式化以執行功能。「經配置以」並非意味裝置元件需要以任何方式改變以提供經定義之操作。
儘管已參照附圖在本文中詳細描述本發明之說明性實施例,但是應理解,本發明並不限於彼等精確實施例,且可在不背離如由所附申請專利範圍定義之本發明之精神及範圍的情況下,由熟習該項技術者在本文中實現各種改變、添加及修改。例如,在不背離本發明之範圍之情況下,附屬項之特徵可與對獨立項之特徵進行各種組合。
100‧‧‧修復電路系統
110‧‧‧選擇電路系統
120‧‧‧可重寫儲存電路系統
130‧‧‧控制電路系統
140‧‧‧計數器
150‧‧‧比較電路系統
200‧‧‧系統
205‧‧‧指令提取電路系統
210‧‧‧指令解碼電路系統
215‧‧‧多工器
220‧‧‧執行電路
225‧‧‧執行電路
230‧‧‧執行電路
235‧‧‧執行電路
240‧‧‧執行電路
245‧‧‧DPU
250‧‧‧配置暫存器
300‧‧‧系統
305‧‧‧多發出電路系統
400‧‧‧系統
405‧‧‧嵌式邏輯分析器(ELA)
505‧‧‧映射
510‧‧‧遮罩
515‧‧‧基本指令
520‧‧‧旗標「S」
525‧‧‧輸出區段
530‧‧‧行
535‧‧‧行
540‧‧‧行
545‧‧‧行
550‧‧‧單個映射
555‧‧‧第一指令識別符
560‧‧‧第二指令識別符
565‧‧‧輸出行
570‧‧‧位元行
575‧‧‧起始行
580‧‧‧長度行
585‧‧‧T行
590‧‧‧遮罩
595‧‧‧置換位元
600‧‧‧狀態行
605‧‧‧行
610‧‧‧位凖行
615‧‧‧TLB行
620‧‧‧行A64
625‧‧‧單個映射
700‧‧‧電路系統
705‧‧‧第一與閘
710‧‧‧第一相等電路
715‧‧‧第二相等電路
720‧‧‧第二與閘
800‧‧‧流程圖
805‧‧‧步驟
810‧‧‧步驟
815‧‧‧步驟
820‧‧‧步驟
825‧‧‧步驟
830‧‧‧步驟
840‧‧‧步驟
845‧‧‧步驟
850‧‧‧步驟
855‧‧‧步驟
本發明將僅舉例而言參考如在附圖中所示之本發明之實施例進一步描述,在該等附圖中:
第1圖示意地圖示根據一個實施例之修復電路系統(patch circuitry);
第2圖示意地圖示根據一個實施例之DPU及修復電路系統;
第3圖示意地圖示根據一個實施例之DPU及修復電路系統;
第4圖示意地圖示根據一個實施例之DPU及修復電路系統;
第5A圖圖示根據一個實施例之由可重寫儲存電路系統儲存之映射;
第5B圖圖示根據一個實施例之由可重寫儲存電路系統儲存之映射;
第5C圖圖示根據一個實施例之由可重寫儲存電路系統儲存之映射;
第5D圖圖示根據一個實施例之由可重寫儲存電路系統儲存之映射;
第5E圖圖示根據一個實施例之由可重寫儲存電路系統儲存之映射;
第6圖圖示用於決定特定映射中之指令標識符是否對應於經接收之指令的比較電路系統之實例;及
第7圖以流程圖形式圖示用於基於經接收之指令決定要發生之任何行為修改的方法。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
(請換頁單獨記載) 無
110‧‧‧選擇電路系統
200‧‧‧系統
205‧‧‧指令提取電路系統
210‧‧‧指令解碼電路系統
215‧‧‧多工器
220‧‧‧執行電路
225‧‧‧執行電路
230‧‧‧執行電路
235‧‧‧執行電路
240‧‧‧執行電路
245‧‧‧DPU
250‧‧‧配置暫存器

Claims (20)

  1. 一種裝置,包含: 可重寫儲存電路系統,用於儲存在至少一個指令識別符與一行為修改之間的至少一個映射; 選擇電路系統,用於自該可重寫儲存電路系統選擇一經選擇之映射,該經選擇之映射具有識別一經接收之指令之一指令識別符,其中該經接收之指令引起一資料處理單元執行一預設行為;及 控制電路系統,用於引起該資料處理單元根據由該行為修改而修改之該預設行為來行為。
  2. 如請求項1所述之裝置,其中 該指令識別符識別複數個指令。
  3. 如請求項2所述之裝置,其中 該指令識別符包含一基本指令及一遮罩; 該經接收之指令係由複數個位元表示; 該遮罩指示該經接收之指令之彼等位元必須匹配該基本指令之相應位元,以便使該指令識別符識別該經接收之指令。
  4. 如請求項1所述之裝置,其中 該指令識別符識別包含一或多個運算子之至少一個指令。
  5. 如請求項1所述之裝置,其中 該指令識別符識別包含一或多個運算元之至少一個指令。
  6. 如請求項1所述之裝置,其中 該指令識別符識別參考一或多個記憶體位址之至少一個指令。
  7. 如請求項1所述之裝置,其中 該至少一個映射進一步包含一所需狀態;且 該選擇電路系統進一步依賴於匹配該資料處理單元之一當前狀態之該所需狀態來選擇該經選擇之映射。
  8. 如請求項7所述之裝置,其中 該所需狀態包含一或多個以下要求:該資料處理單元處於32位元模式、處於64位元模式、處於比一預定執行位凖具有一更多特權之位凖中、處於比該預定位凖具有一更少特權之位凖中、具有賦能或去能之指定功能、正在使用一預定指令集,且正在使用除了該預定指令集以外的一指令集。
  9. 如請求項1所述之裝置,其中 該至少一個映射包含包括該指令識別符之至少兩個指令識別符之一序列;及 該選擇電路系統自該可重寫儲存電路系統選擇一經選擇之映射,該經選擇之映射具有包括該指令識別符之至少兩個指令識別符之一序列,其中該至少兩個指令識別符識別包括該經接收之指令之經接收指令的一序列。
  10. 如請求項1所述之裝置,其中 該裝置包含一管線,該管線包含指令提取電路系統、指令解碼電路系統及至少一個執行電路;及 該資料處理單元包含該指令解碼電路系統及該至少一個執行電路。
  11. 如請求項10所述之裝置,其中 回應於接收該指令,該指令解碼電路系統輸出與待由該至少一個執行電路執行之一或多個微操作相對應之複數個位元; 該行為修改指示待修改之該複數個位元之一集合。
  12. 如請求項11所述之裝置,其中 該集合為一子集。
  13. 如請求項10所述之裝置,其中 由該行為修改而修改之該預設行為包含引起該資料處理單元沖洗該管線。
  14. 如請求項1所述之裝置,其中 由該行為修改而修改之該預設行為包含引起該資料處理單元賦能或去能資料之預提取。
  15. 如請求項1所述之裝置,其中 由該行為修改而修改之該預設行為包含引起該資料處理單元改變在一個時鐘週期中發出之數個指令。
  16. 如請求項1所述之裝置,其中 由該行為修改而修改之該預設行為包含引起該資料處理單元賦能或去能無序執行。
  17. 如請求項1所述之裝置,其中 由該行為修改而修改之該預設行為包含一信號之產生,該信號識別該經選擇之映射。
  18. 如請求項1所述之裝置,其中 該裝置包含用於接收該信號之一嵌式邏輯分析器。
  19. 一種操作一裝置之方法,包含以下步驟: 在一可重寫儲存電路系統中儲存在至少一個指令識別符與一行為修改之間的至少一個映射; 接收一經接收之指令,其中該經接收之指令引起一資料處理單元執行一預設行為; 自該可重寫儲存電路系統中選擇一經選擇之映射,該經選擇之映射具有識別該經接收之指令之一指令識別符;及 引起該資料處理單元根據由該行為修改而修改之該預設行為來行為。
  20. 一種裝置,包含: 可重寫儲存電路系統,用於儲存至少一個指令識別符; 選擇電路系統,用於自該可重寫儲存電路系統中選擇一經選擇之映射,該經選擇之映射具有識別待由一資料處理單元執行之一經接收指令之一指令識別符; 控制電路系統,用於產生一信號,該信號識別該經選擇之映射;及 分析電路系統,用於產生包含待由該資料處理單元執行之操作之輸出跡線且用於接收該信號,且回應於接收該信號,輸出該經選擇之映射至該跡線。
TW105129554A 2015-10-30 2016-09-12 修改資料處理單元的行為 TWI737628B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/927,596 2015-10-30
US14/927,596 US10860322B2 (en) 2015-10-30 2015-10-30 Modifying behavior of a data processing unit using rewritable behavior mappings of instructions

Publications (2)

Publication Number Publication Date
TW201723808A true TW201723808A (zh) 2017-07-01
TWI737628B TWI737628B (zh) 2021-09-01

Family

ID=56508263

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105129554A TWI737628B (zh) 2015-10-30 2016-09-12 修改資料處理單元的行為

Country Status (4)

Country Link
US (1) US10860322B2 (zh)
CN (1) CN106990939B (zh)
GB (1) GB2543874B (zh)
TW (1) TWI737628B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117642729A (zh) * 2021-07-15 2024-03-01 华为技术有限公司 处理器和指令处理方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049672A (en) * 1996-03-08 2000-04-11 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for operating with patch micro-operation codes and patch microinstruction codes stored in multi-purpose memory structure
US5944841A (en) * 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
US5983337A (en) 1997-06-12 1999-11-09 Advanced Micro Devices, Inc. Apparatus and method for patching an instruction by providing a substitute instruction or instructions from an external memory responsive to detecting an opcode of the instruction
US6321380B1 (en) 1999-06-29 2001-11-20 International Business Machines Corporation Method and apparatus for modifying instruction operations in a processor
US6631463B1 (en) 1999-11-08 2003-10-07 International Business Machines Corporation Method and apparatus for patching problematic instructions in a microprocessor using software interrupts
US6530076B1 (en) * 1999-12-23 2003-03-04 Bull Hn Information Systems Inc. Data processing system processor dynamic selection of internal signal tracing
US20030135718A1 (en) * 2002-01-14 2003-07-17 International Business Machines Corporation Method and system using hardware assistance for instruction tracing by revealing executed opcode or instruction
US7219337B2 (en) * 2003-03-06 2007-05-15 Northrop Grumman Corporation Direct instructions rendering emulation computer technique
US7069176B2 (en) * 2003-08-07 2006-06-27 Arm Limited Trace source correlation in a data processing apparatus
US7287133B2 (en) * 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US7318125B2 (en) * 2004-05-20 2008-01-08 International Business Machines Corporation Runtime selective control of hardware prefetch mechanism
US8966223B2 (en) * 2005-05-05 2015-02-24 Icera, Inc. Apparatus and method for configurable processing
US8281109B2 (en) * 2007-12-27 2012-10-02 Intel Corporation Compressed instruction format
US8443227B2 (en) 2008-02-15 2013-05-14 International Business Machines Corporation Processor and method for workaround trigger activated exceptions
US8914681B2 (en) * 2009-08-18 2014-12-16 Lexmark International, Inc. Integrated circuit including a programmable logic analyzer with enhanced analyzing and debugging capabilities and a method therefor
US8082467B2 (en) * 2009-12-23 2011-12-20 International Business Machines Corporation Triggering workaround capabilities based on events active in a processor pipeline
GB2483907A (en) * 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
US8782380B2 (en) * 2010-12-14 2014-07-15 International Business Machines Corporation Fine-grained privilege escalation
CN103299270B (zh) * 2011-04-29 2017-03-08 中天安泰(北京)信息技术有限公司 运行时指令重组方法及装置
US20130097462A1 (en) * 2011-06-28 2013-04-18 Vivek Singh Embedded logic analyzer
US9606931B2 (en) * 2011-12-29 2017-03-28 Intel Corporation Indicating a length of an instruction of a variable length instruction set
CN102609241B (zh) * 2012-01-19 2018-04-27 中兴通讯股份有限公司 热补丁方法及装置
US9395992B2 (en) 2012-11-19 2016-07-19 International Business Machines Corporation Instruction swap for patching problematic instructions in a microprocessor
US9354884B2 (en) * 2013-03-13 2016-05-31 International Business Machines Corporation Processor with hybrid pipeline capable of operating in out-of-order and in-order modes

Also Published As

Publication number Publication date
TWI737628B (zh) 2021-09-01
CN106990939A (zh) 2017-07-28
US10860322B2 (en) 2020-12-08
GB2543874A (en) 2017-05-03
GB2543874B (en) 2019-01-23
GB201610011D0 (en) 2016-07-20
US20170123803A1 (en) 2017-05-04
CN106990939B (zh) 2022-03-15

Similar Documents

Publication Publication Date Title
JP6507435B2 (ja) 命令エミュレーションプロセッサ、方法、およびシステム
KR101019347B1 (ko) 프리―디코딩 가변 길이 명령들
US9804851B2 (en) Operand size control
US10795675B2 (en) Determine whether to fuse move prefix instruction and immediately following instruction independently of detecting identical destination registers
US8938605B2 (en) Instruction cracking based on machine state
US9329868B2 (en) Reducing register read ports for register pairs
TW201709050A (zh) 用於控制指令執行行為的設備及方法
JP2009536770A (ja) ブロックに基づく分岐先アドレスキャッシュ
TW200818007A (en) Associate cached branch information with the last granularity of branch instruction variable length instruction set
TWI737628B (zh) 修改資料處理單元的行為
US20110283090A1 (en) Instruction Addressing Using Register Address Sequence Detection
US9323532B2 (en) Predicting register pairs
US9298459B2 (en) Managing register pairing
US10552156B2 (en) Processing operation issue control