TWI486879B - 具有嵌入中斷功能性的中斷回復指令 - Google Patents
具有嵌入中斷功能性的中斷回復指令 Download PDFInfo
- Publication number
- TWI486879B TWI486879B TW101148092A TW101148092A TWI486879B TW I486879 B TWI486879 B TW I486879B TW 101148092 A TW101148092 A TW 101148092A TW 101148092 A TW101148092 A TW 101148092A TW I486879 B TWI486879 B TW I486879B
- Authority
- TW
- Taiwan
- Prior art keywords
- interrupt
- circuit
- processor
- register
- instruction
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 4
- 239000004065 semiconductor Substances 0.000 claims description 4
- 239000000463 material Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 17
- 238000013461 design Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/327—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
本發明領域一般來說關於計算系統,和更具體地,關於嵌入中斷功能性的中斷回復指令。
圖1繪示在半導體晶片上以邏輯電路實施的處理核心100的高層次圖。處理核心包括管道101。管道由多階段組成,每階段設計成施行需要完全地執行程序指令碼的多步驟過程中的特定步驟。這些通常至少包括:1)指令提取和解碼;2)信息提取;3)執行;4)寫回。執行階段施行在前階段(例如上述步驟1))提取及解碼的指令所指出的特定操作,其為當資料被同樣的指令指出及在另一個前階段提取(例如,上述步驟2))時。被操作的資料通常是從(一般用途)暫存器儲存空間102取出。完成操作建立的新資料也通常被寫回至暫存器儲存空間(例如,在上述步驟4)中)。
與執行階段相關聯的邏輯電路通常是由多個“執行單位”或“功能單元”103_1到103_N組成,其每個設計成施行其本身獨操作子集(例如,第一功能單元施行整數數學運算,第二功能單元施行浮點指令,第三功能單元施行載入/存儲操作進/出快取記憶體/記憶體,等)。被所有功能單元所施行的所有操作的集合對應至處理核心100支援的
“指令集”。
圖2關於中斷,失效或例外的服務。軟體程式碼常被視為是多個同時運行程式和/或程序。雖然不是嚴格的要求,在實踐上,程式/程序202和203對應至不同的軟體和/或硬體的“執行緒”。為簡單起見,由於程式,程序和執行緒之每個可以視為連續的執行指令序列,術語“程式”也被用來指為程序以及執行緒。
通常,運行程式201(例如,設備驅動或應用軟體程式)會遇到某種問題和報告,或者藉由執行「中斷指令」(INTRPT_INSTR)202「拋出」中斷、失效或例外至中斷處理器203。於此,中斷指令202為程式碼的任何部分,其由於中斷、失效或例外而呼叫中斷處理器。並且,其中任一個中斷、失效或例外將被稱為”中斷”。中斷處理器203通常是具體地被設計以處理中斷的系統程式(例如,作業系統(OS)的核心中的中斷處理器)。由於運行程式201呼叫中斷處理器203,運行程式201也會被稱為呼叫程式201。
中斷指令202的功能通常包含傳遞兩項目的資訊至中斷處理器203:i)特別碼204及/或其他(數)項目的資訊其指出已遇到的特定問題之資訊;和ii)回復位址指標器205,其指出用於下一個呼叫程式201的指令206的位址,以再一次被執行已被處理的中斷。
中斷處理器203“處理”造成中斷被提出的問題。初始部分的處理程序203A為使用特別碼204作為到查找表206中之查找參數,其指出用於被寫來處理被碼204指出之特定問題之子程序程式203B的初始位址。程式流程跳至這個子程序程式203B,且造成中斷的問題被處理了。
一旦造成中斷的問題被處理時,IRET指令203C就被執行使程序流程從跳回或“回復”207至呼叫程式201。因此,IRET指令的功能包括參照回復位址指標器205使期望的程式流程跳躍。
正對處理器開發者的問題,特別在用於在晶片(SOC)實現上之系統的嵌入式處理器的情況,是有鑑於廣泛地擴張處理器及SOC晶片被設計成為的各種應用中處理器指令集的定義。沒有足夠的防範措施,設計成「標準核心」,可適合任何應用的所有指令集可使指令集擴展,而包含太多指令。
在服務中斷處理的例子,例如,如果特殊指令被設計成指令集以特別的支援在各種應用/環境下可能引起的許多各種形態中斷,則為了支援中斷處理的指令集擴張會達到極限,其中最終會導致成為了各種應用的不良地設計之處理器。即例如,或許數十或數百個特殊指令會被設計成
標準指令集,然而,針對大多數應用只有小子集的指令是實際上需要的。再者,所利用的特殊子集會因應用而異。
同時,橫跨不同的可能的/潛在的中斷範圍而在中斷服務硬體支援中進行設計避免了相對成組的必需在逐個處理器、逐個應用基礎上,或不全然具有支援中斷處理的硬體來定制硬體支援的問題。
實施用於以不過度擴張處理器指令集來中斷服務作為部分標準處理器設計的擴展硬體支援的問題之解決是設計的硬體支援成為IRET指令的功能本身。於此,IRET指令接受:i)第一輸入運算元X其指出遇到的特定問題,並且,ii)一旦處理引起中斷的問題,做為回復位址指標器的第二輸入運算元Y,此指標器指出下一個要被執行的呼叫程式的指令位址。
值得注意的,用於進入IRET指令之功能的中斷服務嵌入式硬體支援不會擴展指令集。亦即,因為相同的IRET指令可被省視以將控制傳回至(潛在的)引起(潛在的)任何中斷的任何呼叫程式,並且,IRET指令已將直接處理(潛在的)任何中斷的能力嵌入本身。
為了方便,本發明的IRET指令將隨後稱作一個IRETOVLD指令(IRET“過載”的助記符號)。圖3繪示程序流程,其可和圖2中傳統程序流程直接比較。於此,如在圖2中,呼叫程式301引起至中斷處理器303的中斷302。
如往例,中斷指令302的功能包括傳送兩項資訊至中
斷處理器303:i)特殊碼304,和/或其他項資訊,其指出已遇到的特定問題;和,ii)回復位址指標器305,其指出一旦中斷被處理時被執行的用於呼叫程式301的下一指令306。
在實施例中,這些資訊304,305項目形式上由呼叫程式301寫入至暫存器或記憶體空間時傳送。隨後,這兩項目的位址被包含在格式IRETOVLD X Y的指令裡。於此,X對應至問題碼資訊304且Y對應至回復位址指標器305。在實施例中,X和Y並非顯性運算元,而是隱性地傳遞。例如,在進一步的實施例中,X參數透過控制暫存器的部分像是在x86架構中CR1控制暫存器或在其它架構中的等效控制暫存器傳遞至中斷處理器。此外,回復位址指標器Y並非全被實施為運算元。相反地,回復位址指標器在當中斷發生時被推入至核心堆疊。IRETOVLD指令從核心堆疊(而不是從顯性運算元)得到回復位址和處理器狀態旗標。然而,為了簡單和易於理解,其餘部分的討論將會稱作X和Y(若他們是顯性的話)。
然而告示讀者,其控制暫存器的使用和回復位址推入至核心堆疊中允許IRETOVLD指令向下相容或反之被碼呼叫(其並不包含IRETOVLD的功能)為傳統的IRET指令。因此,為了保持IRETOVLD向下相容,或至少能夠增加新的功能而不導入新的指令,IRETOVLD指令技術上被實施為“IRET”指令而不是新的“IRETOVLD”指令。用這個方法,包含於此描述的“新的”IRET功能之新的軟體能夠
利用它,同時,例如,不包含IRET功能的傳統軟體仍可稱指令為傳統IRET指令。
反應於藉由呼叫程式301的呼叫,IRETOVLD X Y指令被處理器管線取出和解碼。在管線的資料提取階段,資訊304,305的X和Y項目被取出和提交至施行IRETOVLD X Y指令的功能的執行單元。
IRETOVLD X Y指令的執行完全處理中斷,且當處理完成,將程式流程307回復至呼叫程式301。相較於圖2和圖3,請注意,用以查找適當的處理子程序之圖2的程式碼指令203a、203b,及,施行子程序本身,不需要在圖3的程序中執行。理想下,只有IRETOVLD X Y指令被執行以充分服務中斷和回復程式流程回至呼叫程式301。
圖4繪示具有施行IRETOVLD X Y指令功能的功能單元的電路設計的實施例。如圖4中觀察到,邏輯設計包括第一暫存器401以儲存第一運算元X(問題碼)和第二暫存器402以存儲第二運算元Y(回復位址指標器)。操作上,問題碼X被提交至第一唯讀記憶體ROM電路403,其動作為查找表。第二唯讀記憶體ROM電路404保有微碼405_1至405_N的不同組。每個微碼組對應至用以處理特定中斷的微碼。伴隨第二唯讀記憶體ROM電路404中的N組這類微碼,IRETOVLD X Y指令具有用於N個中斷的嵌入硬體支援。注意,更廣泛地說,電路403和404可被稱作儲存電路。於此,任何類型的儲存電路可被使用。
查找表(第一唯讀記憶體ROM電路403)(針對可被
提交至功能單元之每個X的不同值),將指標器關聯於在第二唯讀記憶體ROM電路404中之特定組微碼。因此,在執行期間,當該程式碼輸入運算元X提交至第一唯讀記憶體ROM電路403時,第一唯讀記憶體ROM電路403提交指向在唯讀記憶體ROM電路404中特定組微運算的輸出,其被設計處理X的值對應的特定問題。換句話說,來自唯讀記憶體ROM電路403的指標器指向在組405_1至405_N之間的組。
以一個例子來說,考慮簡單的實施其中N=2(即,只兩個不同的中斷被支援)。於此,考慮支援中斷的第一硬體為轉譯後備緩衝器(TLB;translation look-aside buffer)的頁面遺失,和,支援中斷的第二硬體為藉由用於輸入參數的特定SOC邏輯方塊(像是加速器,例如,圖形加速器)之呼叫。
為了妥善處理TLB頁面遺失中斷,具有需要的轉譯資訊的虛擬和實體頁面數目需要被插入至TLB結構(其可被快貯和/或在記憶體中)。為了藉由用於輸入參數的SOC邏輯方塊妥善處理呼叫,SOC邏輯塊需要被提供以位址資訊,其指出信息可以在何處被找到(例如,在暫存器空間或記憶體內)。
如此一來,在ROM 404中的第一組微碼405_1包括了需要將虛擬和實體頁面數目插入TLB的微運算,和,第二組微碼405_2包括了需要理解由加速器所期望的輸入儲存在何處和提供他們的各自位址資訊至SOC邏輯塊的微
運算。
邏輯電路406包括需要施行這些操作的邏輯電路。在實施例中,邏輯電路406如迷你可程式機器般動作,其以在查找表403輸出端被指出的微碼組「執行外於」ROM 404。
注意,除了問題碼X和回復指標器位址Y之外,中斷可包含額外的參數。舉例來說,SOC邏輯方塊需要的特定參數需要由呼叫程式表示。為了指出期望的參數,邏輯406會需要此資訊。如此,在實施例中,IRETOVLD指令可採用IRETOVLD X Y Z的形式,其中Z保持需要實施中斷處理之功能的額外的輸入資訊(例如,由呼叫程式和/或某些系統所提供的相關的資訊)。如此,如圖4觀察的,第三輸入運算元暫存器407耦接至邏輯406。
當邏輯406完成其中斷處理,回復跳躍邏輯408進行回復程式流程至呼叫程式。回復跳躍邏輯408包括邏輯電路,其類似無條件程式跳躍指令。回復跳躍邏輯408接受回復指標器位址Y,且在由回復指標器Y所指明的指令處本質上建立至呼叫程式的無條件跳躍。
圖5繪示能夠由圖4的執行單元邏輯電路施行的方法的實施例。如圖4中觀察到的,指明特別中斷的第一輸入運算元從第一暫存器501接收,和,指明回復位址指標器的第二輸入運算元在第二暫存器502中接收。
來自第一暫存器得的輸入運算元被提交至查找表電路,且指向於儲存在執行單元內儲存電路中的微運算組的
指標器在回應503中產生。微運算組對應至特定功能,其適當地處理指明在第一暫存器中的特定中斷。而後微指令組被執行處理中斷504。選擇上,需要處理中斷(例如,由呼叫方法提供的)的額外輸入運算元資訊可接收自第三暫存器505,和被操作微碼使用以妥善處理中斷。當中斷被處理後,回復位址指標器被使用以回復程式流程回至呼叫方法506。
圖6繪示通用處理核心600,其被認為描述了許多不同類型的處理核心架構諸如複雜指令集(CISC),精簡指令集(RISC)和能夠實施如上述IRETOVLD指令的超長指令字(VLIW)。圖6的通用處理核心600包括:1)提取單元603,其提取指令(例如,從快取記憶體或記憶體);2)解碼單元604,其解碼指令;3)排程單元605,其決定時序和/或指令發行至執行單元606的次序(注意時程器是選用的);4)執行單元606,其執行指令;5)引退單元607,其標示指令的成功完成。值得注意的是,處理核心可或可不包括全部或部分微碼608以控制執行單元606的微運算。參照至前述討論的指令執行資源/邏輯,可用在執行單元606內一或多個的執行單元施行。
具有上述功能的處理核心也可以被實施入各種計算系統。圖7繪示計算系統(例如,電腦)的實施例。圖7的示例計算系統包括:1)一或多個處理核心701,其可被設計以包括兩和三個暫存器純量整數和向量指令執行;2)
記憶體控制集線器(MCH)702;3)系統記憶體703(其中有不同類型存在,如DDR RAM,EDO RAM,等);4)快取記憶體704;5)I/O控制集線器(ICH)705;6)圖形處理器706;7)顯示器/螢幕707(其中有不同類型存在,如陰極射線管(CRT),平板(flat panel),薄膜電晶體(TFT),液晶顯示器(LCD),DPL等)一或多個I/O裝置708。
為了施行不論何種計算系統實施的軟體常式,一或多處理核心701執行指令。指令經常包含某種對資料施行的運算。資料和指令兩者儲存在系統記憶體703和快取記憶體704中。快取記憶體704通常被設計具有比系統記憶體703較短的延遲時間。例如,快取記憶體704可被整合至和處理器相同的矽晶片上和/或用較快的SRAM胞構成,而系統記憶體703可用較慢的DRAM胞構成。藉由利用傾向儲存較頻繁使用的指令及作為相對系統記憶體703之快取記憶體704中的資料,計算系統的整體性能效率改善提高。
刻意使得計算系統內其他組件可利用系統記憶體703。例如,從對計算系統的各種介面(例如,鍵盤和滑鼠,印表機端口,LAN端口,數據機端口,等)接收的或從計算系統的內部存儲元件(例如,硬碟驅動器)擷取的資料,在他們由一或多在軟體程式實施中的處理器701操作之前,通常被暫時佇列在系統記憶體703中。相似地,軟體程式決定的資料應透過計算系統的介面其中之一從計
算系統發送至一個外部實體,或儲存至內部儲存元件,在傳送或儲存之前,通常暫時佇列在系統記憶體703中。
ICH 705負責確保此類資料正確地在系統記憶體703和其適當相應之計算系統介面(和如計算系統是如是設計時的內部儲存裝置)之間傳遞。MCH 702負責管理各種對於在(數)處理器701、介面和可大約相對於彼此及時出現的內部儲存元件之間的系統記憶體703之存取的相衝突的需求。
一或多個I/O裝置708也被實施在一個典型的計算系統中。I/O裝置一般負責傳送資料至和/或從計算系統(例如,網絡適配器)傳送資料;或者,負責計算系統內的大規模非揮發性存儲(例如,硬碟驅動裝置)。ICH 705具有本身和觀測到的I/O裝置708雙向點對點的聯結。
如上討論教導的程序可用程式碼施行,像是致使機器執行這些指令以施行某些功能的機器可執行指令。這內容中,「機器」可為轉換中間形式(或“抽象”)指令成處理器特定指令(例如,抽象執行環境,例如“虛擬機器”(如,Java虛擬機器)、直譯器、“通用語言運行時間,高階語言虛擬機器,等))的機器,和/或置於半導體晶片上(例如,以電晶體實施的「邏輯電路」)的電子電路被設計以執行指令,諸如通用處理器和/或專用處理器(special-purpose processor)。如上討論教導的程序也可由(替代機器或,和機器結合)被設計為不需要執行程式碼而施行程序(或其一部分)的電子電路來施行。
藉由上面討論教導的程序也可被描述在被各種軟體開發框架(例如,Microsoft公司的.NET,Mono,Java中Oracle公司的Fusion,等)支援的各種物件導向或非物件導向的計算機程式語言(例如,Java,Ç #,VB,Python的,C,C++,J #,APL,Cobol,Fortran,Pascal中,Perl,等)的源階程式碼中。源階程式碼可以被轉換至程式碼的中間形式(如Java字元碼,Microsoft中間語言等。),其可被抽象執行環境(例如,Java虛擬機器,公共語言運行時間,高階語言虛擬機器,直譯器,等)了解或可直接被編譯成物件碼。
根據各種抽象執行環境可轉換中間形式程式碼至處理器特定碼的方法有,1)編譯中間形式程式碼(例如,在運行時間(如,JIT編譯器)),2)直譯中間形式程式碼,或3)結合運行時間編譯中間形式程式碼和直譯中間形式程式碼。抽象執行環境可以運行在各種作業系統(如UNIX,LINUX,Microsoft作業系統包括Windows系列,Apple電腦作業系統包括MacOS X,Sun/Solaris,OS/2,Novell,等)。
製造商的製品可用以儲存程式碼。製造商的製品,其儲存程式碼可由,但不限於,一或多個記憶體(例如,一個或多個快取記憶體,隨機取存記憶體(靜態的,動態的或其他)),光碟,CD-ROM,DVD ROM,EPROM,EEPROM,磁或光卡或其它適合儲存電子指令的機器可讀媒介而實施。程式碼也可利用實施在傳輸媒介的資料信號
(例如,通過通信鏈結(例如,網絡連結))的方法以從遠端電腦(例如伺服器)下載至發出請求的電腦(如,客戶端)。
前述的規格書中,本發明已參照其特定的示例實施例描述。然而,顯而易見地,各種對其修改和改變可被進行而不脫離本發明廣義精神和範圍,如附加闡述的申請專利範圍。
100‧‧‧處理核心
101‧‧‧管道
102‧‧‧暫存器儲存空間
103_1‧‧‧功能單元_1
103_2‧‧‧功能單元_2
103_N‧‧‧功能單元_3
201‧‧‧運行程式
202‧‧‧中斷指令
203‧‧‧中斷處理器
203A‧‧‧處理程序
203B‧‧‧子程序程式
203C‧‧‧IRET指令
204‧‧‧特別碼
205‧‧‧回復位址指標器
206‧‧‧查找表
207‧‧‧回復
301‧‧‧呼叫程式
302‧‧‧中斷指令
303‧‧‧中斷處理器
304‧‧‧問題碼
305‧‧‧回復位址指標器
306‧‧‧下一個中斷指令
307‧‧‧程式流程
401‧‧‧第一暫存器
402‧‧‧第二暫存器
403‧‧‧第一唯讀記憶體ROM電路
404‧‧‧第二唯讀記憶體ROM電路
405_1‧‧‧微碼_1
405_2‧‧‧微碼_2
405_N‧‧‧微碼_N
406‧‧‧邏輯電路
407‧‧‧第三輸入運算元暫存器
408‧‧‧回復跳躍邏輯
501‧‧‧第一暫存器
502‧‧‧第二暫存器
503‧‧‧回應
504‧‧‧中斷
505‧‧‧第三暫存器
506‧‧‧呼叫方法
600‧‧‧處理核心
601‧‧‧暫存器
602‧‧‧暫存器
603‧‧‧提取單元
604‧‧‧解碼單元
605‧‧‧排程單元
606‧‧‧執行單元
607‧‧‧引退單元
608‧‧‧微碼
620‧‧‧解碼單元中之子單元
621‧‧‧執行單元中之子單元
622‧‧‧執行單元中之子單元
701‧‧‧處理核心
702‧‧‧記憶體控制集線器(MCH)
703‧‧‧系統記憶體
704‧‧‧快取記憶體
705‧‧‧I/O控制集線器(ICH)
706‧‧‧圖形處理器
707‧‧‧顯示器/螢幕
7081‧‧‧I/O裝置_1
7082‧‧‧I/O裝置_2
708N‧‧‧I/O裝置_N
本發明用圖解的方法舉例說明,並且不侷限在伴隨的像說明舉例來說和沒有在伴隨的圖中的繪圖,其中類似的參考指示相似的元件,其中:圖1繪示指令執行管線;圖2繪示傳統處理中斷之執行;圖3繪示改善處理中斷之方法;圖4繪示能夠執行對應於改善的中斷處理方法之執行單元邏輯電路的實施例;圖5繪示能夠被圖4的指令執行邏輯執行之方法;圖6繪示一更詳細的指令執行管線;圖7繪示一計算系統。
301‧‧‧呼叫程式
302‧‧‧中斷指令
303‧‧‧中斷處理器
304‧‧‧問題碼
305‧‧‧回復位址指標器
306‧‧‧下一個中斷指令
307‧‧‧程式流程
Claims (20)
- 一種實施在半導體晶片上之處理器,包含:一執行單元,具有下列以執行中斷處理指令:a)儲存電路,用以保持不同組微運算,每一組微運算處理一不同中斷;b)第一邏輯電路,用以執行該些組微運算中之一組,以處理用於該組微運算的中斷;c)第二邏輯電路,於該第一邏輯電路已處理該中斷後,回復程式流程至呼叫程式。
- 如申請專利範圍第1項之處理器,其中該儲存電路是唯讀記憶體。
- 如申請專利範圍第1項之處理器,其中該執行單元進一步包括查表電路,反應於用於呈現至該查表電路之該中斷的問題碼,該查表電路提供指向該儲存電路中該些組中之一者的指標。
- 如申請專利範圍第3項之處理器,其中該查表電路包括唯讀記憶體。
- 如申請專利範圍第3項之處理器,其中該查表電路耦接至暫存器,該暫存器儲存該問題碼。
- 如申請專利範圍第1項之處理器,其中進一步包含暫存器,以儲存回復指標位址。
- 如申請專利範圍第6項之處理器,其中該暫存器耦接至該第二邏輯電路。
- 一種實施在半導體晶片上的處理器,包含: 執行單元,具有下列以執行中斷處理指令:a)儲存電路,保持不同組微運算,每組微運算處理不同中斷;b)第一邏輯電路,執行該些組微運算中之一組,以處理用於該組微運算的中斷;c)第二邏輯電路,於該第一邏輯電路已處理該中斷後,回復程式流程至呼叫程式;d)暫存器,保持該呼叫程式提供的該指令之輸入運算元資訊,該輸入運算元資訊指明該呼叫程式期望的項目,該暫存器耦接至該第一邏輯電路。
- 如申請專利範圍第8項之處理器,其中該儲存電路是唯讀記憶體。
- 如申請專利範圍第8項之處理器,其中該執行單元進一步包括查表電路,反應於用於呈現至該查表電路之該中斷的問題碼,該查表電路提供指向該儲存電路中該些組中之一者的指標。
- 如申請專利範圍第10項之處理器,其中該查表電路包括唯讀記憶體。
- 如申請專利範圍第10項之處理器,其中該查表電路耦接至暫存器,該暫存器儲存該問題碼。
- 如申請專利範圍第8項之處理器,其中進一步包含暫存器以儲存回復指標位址。
- 如申請專利範圍第13項之處理器,其中該暫存器耦接至該第二邏輯電路。
- 一種藉處理器的執行單元施行以執行指令之方法,該方法包含:接收第一輸入運算元,該第一輸入運算元指明呼叫程式遭遇的問題;接收第二輸入運算元,該第二輸入運算元指明至該呼叫程式的回復指標位址;使用該第一輸入運算元作為查表參數,以指出處理該問題的一組微碼;執行該微碼以處理該問題;使用該回復位址指標以回復程式流程至該呼叫程式。
- 如申請專利範圍第15項的方法,進一步包含:使用藉以該查找參數施行的一查找所產生之指向儲存電路之指標以提取該微碼。
- 如申請專利範圍第16項的方法,其中該查找是以第一唯讀記憶體來施行。
- 如申請專利範圍第16項的方法,其中該儲存電路包含第二唯讀記憶體。
- 如申請專利範圍第18項的方法,進一步包含接收第三輸入運算元,該第三輸入運算元指出該呼叫方法所期望的資料。
- 如申請專利範圍第19項的方法,其中該方法進一步包含該組微碼使用該第三輸入運算元以指出該資料。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/066950 WO2013095532A1 (en) | 2011-12-22 | 2011-12-22 | Interrupt return instruction with embedded interrupt service functionality |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201342241A TW201342241A (zh) | 2013-10-16 |
TWI486879B true TWI486879B (zh) | 2015-06-01 |
Family
ID=48669173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101148092A TWI486879B (zh) | 2011-12-22 | 2012-12-18 | 具有嵌入中斷功能性的中斷回復指令 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9378164B2 (zh) |
CN (1) | CN104011684B (zh) |
TW (1) | TWI486879B (zh) |
WO (1) | WO2013095532A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI722009B (zh) * | 2015-09-26 | 2021-03-21 | 美商英特爾股份有限公司 | 用於在遠端處理器上進行基元動作之硬體機制 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378164B2 (en) * | 2011-12-22 | 2016-06-28 | Intel Corporation | Interrupt return instruction with embedded interrupt service functionality |
CN106371807B (zh) * | 2016-08-30 | 2019-03-19 | 华为技术有限公司 | 一种扩展处理器指令集的方法及装置 |
CN110209473B (zh) * | 2018-04-12 | 2023-04-18 | 腾讯科技(深圳)有限公司 | 中断处理设备、云服务器、中断处理方法及业务处理方法 |
US11507414B2 (en) * | 2020-11-25 | 2022-11-22 | Cadence Design Systems, Inc. | Circuit for fast interrupt handling |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200417926A (en) * | 2003-03-10 | 2004-09-16 | Ip First Llc | Selective interrupt suppression |
US20050177666A1 (en) * | 2004-02-11 | 2005-08-11 | Paul Kimelman | Interrupt processing control |
TW200703107A (en) * | 2005-03-30 | 2007-01-16 | Advanced Risc Mach Ltd | Selecting subroutine return mechanisms |
US20100036987A1 (en) * | 2008-08-08 | 2010-02-11 | Qualcomm Incorporated | Apparatus and Methods for Speculative Interrupt Vector Prefetching |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55123736A (en) * | 1979-03-16 | 1980-09-24 | Hitachi Ltd | Interrupt control system |
US4438492A (en) * | 1980-08-01 | 1984-03-20 | Advanced Micro Devices, Inc. | Interruptable microprogram controller for microcomputer systems |
US4709324A (en) * | 1985-11-27 | 1987-11-24 | Motorola, Inc. | Data processor control unit having an interrupt service using instruction prefetch redirection |
US5850562A (en) * | 1994-06-27 | 1998-12-15 | International Business Machines Corporation | Personal computer apparatus and method for monitoring memory locations states for facilitating debugging of post and BIOS code |
US5774711A (en) * | 1996-03-29 | 1998-06-30 | Integrated Device Technology, Inc. | Apparatus and method for processing exceptions during execution of string instructions |
US5996058A (en) * | 1996-08-19 | 1999-11-30 | Samsung Electronics Company, Ltd. | System and method for handling software interrupts with argument passing |
US5778220A (en) * | 1996-11-18 | 1998-07-07 | Intel Corporation | Method and apparatus for disabling interrupts in a highly pipelined processor |
US5901309A (en) | 1997-10-07 | 1999-05-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for improved interrupt handling within a microprocessor |
EP0992889A1 (en) * | 1998-10-06 | 2000-04-12 | Texas Instruments Inc. | Interrupt processing during iterative instruction execution |
US6581154B1 (en) * | 1999-02-17 | 2003-06-17 | Intel Corporation | Expanding microcode associated with full and partial width macroinstructions |
US6662297B1 (en) * | 1999-12-30 | 2003-12-09 | Intel Corporation | Allocation of processor bandwidth by inserting interrupt servicing instructions to intervene main program in instruction queue mechanism |
US6889279B2 (en) * | 2000-12-11 | 2005-05-03 | Cadence Design Systems, Inc. | Pre-stored vector interrupt handling system and method |
JP4623368B2 (ja) * | 2005-03-16 | 2011-02-02 | ソニー株式会社 | 移動物体検出装置、移動物体検出方法及びプログラム |
US8051235B1 (en) * | 2005-11-11 | 2011-11-01 | Ixys Ch Gmbh | Conditional back-to-back interrupt vectoring |
CN101339498A (zh) * | 2007-07-05 | 2009-01-07 | 华东师范大学 | 采用risc结构的单片机 |
GB2489000B (en) * | 2011-03-14 | 2019-09-11 | Advanced Risc Mach Ltd | Diagnosing code using single step execution |
US9378164B2 (en) * | 2011-12-22 | 2016-06-28 | Intel Corporation | Interrupt return instruction with embedded interrupt service functionality |
-
2011
- 2011-12-22 US US13/997,651 patent/US9378164B2/en active Active
- 2011-12-22 WO PCT/US2011/066950 patent/WO2013095532A1/en active Application Filing
- 2011-12-22 CN CN201180075869.7A patent/CN104011684B/zh active Active
-
2012
- 2012-12-18 TW TW101148092A patent/TWI486879B/zh active
-
2016
- 2016-06-27 US US15/194,558 patent/US10095520B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200417926A (en) * | 2003-03-10 | 2004-09-16 | Ip First Llc | Selective interrupt suppression |
US20050177666A1 (en) * | 2004-02-11 | 2005-08-11 | Paul Kimelman | Interrupt processing control |
TW200703107A (en) * | 2005-03-30 | 2007-01-16 | Advanced Risc Mach Ltd | Selecting subroutine return mechanisms |
US20100036987A1 (en) * | 2008-08-08 | 2010-02-11 | Qualcomm Incorporated | Apparatus and Methods for Speculative Interrupt Vector Prefetching |
TW201017531A (en) * | 2008-08-08 | 2010-05-01 | Qualcomm Inc | Apparatus and methods for speculative interrupt vector prefetching |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI722009B (zh) * | 2015-09-26 | 2021-03-21 | 美商英特爾股份有限公司 | 用於在遠端處理器上進行基元動作之硬體機制 |
Also Published As
Publication number | Publication date |
---|---|
CN104011684B (zh) | 2018-01-26 |
US9378164B2 (en) | 2016-06-28 |
WO2013095532A1 (en) | 2013-06-27 |
US10095520B2 (en) | 2018-10-09 |
CN104011684A (zh) | 2014-08-27 |
US20130326101A1 (en) | 2013-12-05 |
US20160306630A1 (en) | 2016-10-20 |
TW201342241A (zh) | 2013-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10678575B2 (en) | Instruction-set support for invocation of VMM-configured services without VMM intervention | |
JP6124463B2 (ja) | 一方のアーキテクチャのコードモジュールが他方のアーキテクチャのライブラリモジュールを用いることを可能にするインターアーキテクチャ互換性モジュール | |
US8972698B2 (en) | Vector conflict instructions | |
US9146740B2 (en) | Branch prediction preloading | |
US10095520B2 (en) | Interrupt return instruction with embedded interrupt service functionality | |
US8103852B2 (en) | Information handling system including a processor with a bifurcated issue queue | |
CN108885551B (zh) | 存储器复制指令、处理器、方法和系统 | |
TWI467476B (zh) | 能夠以三個暫存器執行之純量整數指令的處理核心、方法及計算系統 | |
TW201704991A (zh) | 藉由演算法匹配、停用特徵或限制效能之回溯相容性 | |
US20170364356A1 (en) | Techniques for implementing store instructions in a multi-slice processor architecture | |
CN106033370B (zh) | 64位Java虚拟机的实现方法及装置 | |
JP2005182659A (ja) | Vliw型dsp,及びその動作方法 | |
US9424042B2 (en) | System, apparatus and method for translating vector instructions | |
US20210089306A1 (en) | Instruction processing method and apparatus | |
US20130198491A1 (en) | Major branch instructions with transactional memory | |
US20050251652A1 (en) | Methods and apparatus for processing an extensible firmware interface byte code instruction in a loop | |
US20190056953A1 (en) | Token-based data dependency protection for memory access |