欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

異步控制轉(zhuǎn)移的制作方法

文檔序號:6616091閱讀:194來源:國知局
專利名稱:異步控制轉(zhuǎn)移的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及異步控制轉(zhuǎn)移。
背景技術(shù)
本公開一般涉及電子領(lǐng)域。更具體來說,本發(fā)明的實(shí)施例涉及 發(fā)生選擇事件之后以異步方式控制處理器中的執(zhí)行流的技術(shù)。多種機(jī)制可以用于更改處理器中的控制流(例如,遵循的處理路 徑或指令序列)。例如,可以使用中斷來以異步方式更改處理器中的 控制流。 一般來說,由與處理器不同的集成電路芯片上的外部裝置 觸發(fā)常規(guī)中斷。然后,處理器可以通過跳到中斷處理程序例程來響 應(yīng)該中斷。但是,中斷一般可能被操作系統(tǒng)或特權(quán)級比操作系統(tǒng)低的其他軟件程序屏蔽,在不修改操作系統(tǒng)(os)的情況下可能沒有機(jī)會修改此類控制流更改條件。因此,目前用于以異步方式更改處理器 中的控制流的技術(shù)可能是有局限性的,部分原因是此類技術(shù)可能依 賴外部裝置生成的中斷。發(fā)明內(nèi)容根據(jù)本發(fā)明的 一方面,本發(fā)明涉及一種提供異步轉(zhuǎn)移控制的設(shè)備,所述設(shè)備包括第一存儲單元,所述第一存儲單元用于存儲與事件對應(yīng)的數(shù)據(jù); 第二存儲單元,所述第二存儲單元用于存儲與所述事件對應(yīng)的產(chǎn)出服務(wù)例程的地址;第 一邏輯,所述第一邏輯用于響應(yīng)所述事件的發(fā)生而更新所述第一存儲單元;以及
第二邏輯,所述第二邏輯用于響應(yīng)所述事件的發(fā)生而引起對所述第二存儲單元的訪問以調(diào)用所述產(chǎn)出服務(wù)例程。根據(jù)本發(fā)明的另 一方面,本發(fā)明涉及一種用于異步轉(zhuǎn)移控制的方法,包4舌更新第 一存儲單元中與事件對應(yīng)的數(shù)據(jù);將與所述事件對應(yīng)的產(chǎn)出服務(wù)例程的地址存儲在第二存儲單元 中;以及響應(yīng)所述事件的發(fā)生而調(diào)用所述產(chǎn)出服務(wù)例程。根據(jù)本發(fā)明的又一方面,本發(fā)明涉及一種提供異步轉(zhuǎn)移控制的 計(jì)算系統(tǒng),所述系統(tǒng)包括存儲器,所述存儲器用于存儲與服務(wù)例程數(shù)據(jù)塊(SRDB)對應(yīng)的 數(shù)據(jù);耦合到所述存儲器以便訪問所述服務(wù)例程數(shù)據(jù)塊的處理器,所 述處理器包括第一通道,所述第一通道用于存儲與事件對應(yīng)的數(shù)據(jù);以及第一邏輯,所述第一邏輯用于響應(yīng)所述事件的發(fā)生而引起 對所述服務(wù)例程數(shù)據(jù)塊的訪問以調(diào)用產(chǎn)出服務(wù)例程。


參考附圖提供詳細(xì)描述。在附圖中,引用號的最左邊數(shù)字位標(biāo) 識該引用號首次出現(xiàn)所在的附圖。在不同附圖中使用相同的引用號 來指示相似或完全相同的項(xiàng)。圖1、 5和6圖示許算系統(tǒng)的實(shí)施例的框圖,該計(jì)算系統(tǒng)可以用 于實(shí)現(xiàn)本文論述的多種實(shí)施例。圖2圖示根據(jù)本發(fā)明一個實(shí)施例的處理器核和計(jì)算系統(tǒng)的其他 組件的若干部分的框圖。圖3圖示根據(jù)實(shí)施例的計(jì)算系統(tǒng)的多個部分。
圖4圖示根據(jù)實(shí)施例響應(yīng)事件發(fā)生而引起生成產(chǎn)出(yield)的方法 的流程圖。
具體實(shí)施方式
在下文的描述中,闡述了許多具體細(xì)節(jié),以便透徹地理解多種 實(shí)施例。但是,即使沒有這些特定細(xì)節(jié),仍可以實(shí)施本發(fā)明的多種 實(shí)施例。在其他情況中,未對7>知的方法、過程、組件和電3各進(jìn)行 詳細(xì)描述,以免妨礙對本發(fā)明特定實(shí)施例的理解。而且,可以使用 多種機(jī)制(例如半導(dǎo)體集成電路("硬件")、組織到一個或多個程序 中的計(jì)算機(jī)可讀指令("軟件")或硬件和軟件的某種組合)來執(zhí)行本 發(fā)明的實(shí)施例的多個方面。出于公開的目的,對"邏輯"的引述將 意味著硬件、軟件或它們的某種組合??梢岳帽疚恼撌龅囊恍?shí)施例來執(zhí)行事件處理操作。在一個實(shí)施例中,"事件"是指可能需要由邏輯來采取某個動作或可能不需 要由邏輯來采取某個動作的情況。而且,可以基于要采取的動作將 事件分類成不同類型。例如,可以將某些異常(例如除以零)表征為每 次執(zhí)行對應(yīng)的指令時發(fā)生的同步事件。另一方面,可以將外部設(shè)備 生成的中斷表征為異步事件,部分原因是它們可能在任何時間發(fā)生。 在一個實(shí)施例中,"體系結(jié)構(gòu)事件"是指可以通過例如將與體系結(jié)構(gòu) 事件對應(yīng)的信息編程到通道中來監(jiān)視的事件或情況,下文參考圖2 對此進(jìn)行論述。在一個實(shí)施例中,軟件可以配置通道以便監(jiān)視軟件 和/或硬件可能以其他方式無法觀察到的某些體系結(jié)構(gòu)事件。例如, 可以將末級高速緩存未命中定義為用于執(zhí)行動態(tài)配置文件向?qū)?yōu)化 的體系結(jié)構(gòu)事件。還可以定義體系結(jié)構(gòu)事件來監(jiān)視位于與處理器相 同的集成電路芯片上或以其他方式與處理器通信的協(xié)處理器上發(fā)生 的情況。在一個實(shí)施例中,"體系結(jié)構(gòu)事件,, 一般可以是指與處理器情況。在一些實(shí)施例中,多個不同代的處理器中可以支持體系結(jié)構(gòu) 事件。在一個實(shí)施例中,在事件(例如體系結(jié)構(gòu)事件)發(fā)生(或被檢測到 要發(fā)生)之后,可以利用存儲在存儲單元中的地址來啟動對應(yīng)的發(fā)生 響應(yīng)(例如產(chǎn)出)。該地址可以指向目標(biāo)響應(yīng)(例如產(chǎn)出事件處理程序 例程,下文可以將其稱為產(chǎn)出服務(wù)例程)。而且,存儲單元(可以稱為服務(wù)例程數(shù)據(jù)塊(SRDB))可以存儲信息來準(zhǔn)備計(jì)算系統(tǒng)響應(yīng)例如切換 堆棧、轉(zhuǎn)移控制的事件或情況,和/或使用新的存儲器上下文。存儲 單元還可以提供空間來存儲處理事件或情況之后可恢復(fù)的系統(tǒng)上下 文。在一個實(shí)施例中,可以使用處理器中提供的多種邏輯來執(zhí)行事 件處理任務(wù),例如參考圖1、 2、 5和6論述的處理器。更具體來說, 圖1圖示根據(jù)本發(fā)明一個實(shí)施例的計(jì)算系統(tǒng)100的框圖。系統(tǒng)100 可以包括一個或多個處理器102-1至102-N(—般稱為"多個處理器 102"或"處理器102")。多個處理器102可以經(jīng)由互連網(wǎng)絡(luò)或總線 104來通信。每個處理器可以包括多種組件,為了簡明僅參考處理器 102-1論述其中的一些。因此,其余的處理器102-2至102-N的每個 處理器可以包括參考處理器102-1論述的相同或相似組件。在一個實(shí)施例中,處理器102-1可以包括一個或多個處理器核 106-1至106-M(—般稱為"多個核106"或更普遍地稱為"核106")、 共享的高速緩存108和/或路由器110。處理器核106可以在單個集 成電路(IC)芯片上實(shí)現(xiàn)。而且,芯片可以包括一個或多個共享的高速 緩存(例如高速緩存108)和/或?qū)S酶咚倬彺?例如1級(L1)高速緩存 111-1,本文中普遍稱為"L1高速緩存iir )、總線或互連(例如總線 或互連網(wǎng)絡(luò)112)、存儲器控制器(例如參考圖5和6論述的那些存儲 器控制器)或其他組件。在一個實(shí)施例中,可以使用路由器110在處理器102-1和/或系 統(tǒng)100的多種組件之間進(jìn)行通信。而且,處理器102-1可以包括多于 一個的路由器110。而且,多數(shù)路由器(110)可以處于通信狀態(tài)以使處
理器102-1內(nèi)或處理器102-1外的多種組件之間能夠?qū)崿F(xiàn)數(shù)據(jù)路由。共享的高速緩存108可以存儲器被處理器102-1的一個或多個 組件(例如核106)利用的數(shù)據(jù)(例如包括指令)。例如,共享的高速緩 存108可以在本地緩存存儲器114中存儲的數(shù)據(jù)以便更快速地被處理 器102的組件訪問。在一個實(shí)施例中,高速緩存108可以包括中間 級高速緩存(例如2級(L2)、 3級(L3)、 4級(L4)或其他級的高速緩存)、 末級高速緩存(LLC)和/或它們的組合。而且,處理器102-1的多種組 件可以經(jīng)由總線(例如總線112)直接與共享的高速緩存108和/或存儲 器控制器或集線器通信。如圖1所示,服務(wù)例程數(shù)據(jù)塊(SRDB)120 可以存儲在存儲器114中。而且,SRDB 120可以^皮核106的組件利 用來響應(yīng)事件發(fā)生而引起產(chǎn)出服務(wù)例程的調(diào)用,下文將參考例如圖2-4 來對此進(jìn)一步論述。圖2圖示根據(jù)本發(fā)明一個實(shí)施例的計(jì)算系統(tǒng)的處理器核106和 其他組件的若干部分的框圖。在一個實(shí)施例中,圖2所示的箭頭說 明指令經(jīng)由核106的流向。 一個或多個處理器核(例如處理器核106) 可以在單個集成電路芯片(或管芯)上實(shí)現(xiàn),例如參考圖1論述的。而 且,芯片可以包括一個或多個共享的和/或?qū)S酶咚倬彺?例如圖1的 高速緩存108)、互連(例如圖1的互連104和/或112)、存儲器控制器 或其他組件。如圖2所示,處理器核106可以包括提取用于核106執(zhí)行的指 令的提取單元202。這些指令可以從任何存儲裝置中提取,例如可以 從存儲器114和/或參考圖5和6論述的存儲器裝置中提取。核106 還可以包括將提取的指令解碼的解碼單元204。例如,解碼單元204 可以將提取的指令解碼成多個u(Dp(微操作)。此外,核106還可以包 括調(diào)度單元206。調(diào)度單元206可以執(zhí)行與存儲解碼的指令(例如從 解碼單元204接收到的指令)關(guān)聯(lián)的多種操作直到這些指令準(zhǔn)備就緒 可供派發(fā)為止,例如直到解碼的指令的所有源值都已經(jīng)可用為止。 在一個實(shí)施例中,調(diào)度單元206可以將解碼的指令調(diào)度和/或發(fā)出(或
派發(fā))到執(zhí)行單元208用于執(zhí)行。執(zhí)行單元208可以在指令被解碼(例 如由解碼單元204解碼)并(例如由調(diào)度單元206)派發(fā)之后執(zhí)行派發(fā)的 指令。在一個實(shí)施例中,執(zhí)行單元208可以包括多于一個執(zhí)行單元, 例如存儲器執(zhí)行單元、整數(shù)執(zhí)行單元、浮點(diǎn)執(zhí)行單元或其他執(zhí)行單 元。執(zhí)行單元208還可以執(zhí)行多種算術(shù)運(yùn)算,例如加法、減法、乘 法和/或除法,并且可以包括一個或多個算術(shù)邏輯單元(ALU)。在一 個實(shí)施例中,協(xié)處理器(未示出)可以結(jié)合執(zhí)行單元208執(zhí)行多種算術(shù) 運(yùn)算。而且,執(zhí)行單元208可以亂序地執(zhí)行指令。因此,在一個實(shí)施 例中,處理器核106可以是亂序處理器核。核106還可以包括退出 單元210。退出單iL 210可以在執(zhí)行的指令^皮提交之后將執(zhí)行的指令 退出。在一個實(shí)施例中,將執(zhí)行的指令退出可能引起處理器狀態(tài)從 指令的執(zhí)行提交、對指令使用的物理寄存器取消分配等。核106還可以包括存儲微代碼和/或已提取(例如由提取單元202 提取)的指令的跟蹤的跟蹤高速緩存或微代碼只讀存儲器 (uROM)212。 uROM 212中存儲的微代碼可以用于配置核106的多種 硬件組件。在一個實(shí)施例中,可以從與處理器核106通信的另一個 組件(例如參考圖5和6論述的計(jì)算機(jī)可讀介質(zhì)或其他存儲裝置)加載 uROM 212中存儲的微代碼。核106還可以包括總線單元214,總線 單元214使處理器核106的組件與其他組件(例如參考圖1論述的組 件)之間能夠經(jīng)由一個或多個總線(例如總線104和/或112)通信。核106 還可以包括一個或多個寄存器216,該一個或多個寄存器216存儲核 106的多種組件訪問的數(shù)據(jù)。而且,圖1所示的處理器核106可以包括與一組體系結(jié)構(gòu)狀態(tài) 對應(yīng)的一個或多個通道218。每個特權(quán)級(例如特權(quán)級0或超級用戶 特權(quán)級(例如最高特權(quán)級)、特權(quán)級3(例如實(shí)施例中的可對應(yīng)于用戶級 特權(quán)的相對較低的特權(quán)級)等)可以具有一個對應(yīng)的通道。而且,每個 通道218還可以配置有一個或多個方案,其中方案定義邏輯條件。 因此,通道可以包含一組體系結(jié)構(gòu)狀態(tài),并且還包括配置的邏輯條件描述。在一個實(shí)施例中,通道218可以包含方案規(guī)范(scenario specification)。然后,當(dāng)通道中的體系結(jié)構(gòu)狀態(tài)與該通道的配置的邏 輯條件(即方案)匹配或超過該配置的邏輯條件時,可以通過信號通知 產(chǎn)出事件。因此,產(chǎn)出事件可以是響應(yīng)方案來發(fā)生的。下文參考圖3 論述有關(guān)通道的實(shí)施例的進(jìn)一 步細(xì)節(jié)。此外,核106可以包括事4牛監(jiān)視邏輯220,例如監(jiān)視邏輯220用 于監(jiān)視可能與可用于觸發(fā)對應(yīng)的產(chǎn)出事件的體系結(jié)構(gòu)上定義的方案 (例如通道218中的)關(guān)聯(lián)的一個或多個事件的發(fā)生。如圖2所示,可 以在執(zhí)行單元208內(nèi)提供邏輯220。但是,也可以在處理器核106中 的其他位置提供邏輯220。如本文將參考例如圖3-4進(jìn)一步論述地, 邏輯220可以在監(jiān)視的事件發(fā)生之后生成信號,并且監(jiān)視邏輯221 可以進(jìn)行響應(yīng)例如基于通道218中存儲的數(shù)據(jù)來更新SRDB 120和/ 或堆棧(可以存儲在存儲器114、 Ll高速緩存111和/或共享的高速緩 存108中)中存儲的數(shù)據(jù)。例如,監(jiān)視的事件(例如關(guān)于通道218中存 儲的數(shù)據(jù))可能相對于處理器核106上的當(dāng)前指令序列的執(zhí)行異步地 發(fā)生。而且,如圖2所示,可以將SRDB 120存儲在(或緩存在)高速緩 存111和/或108的其中一個或多個高速緩存中,而不存儲在(或緩存 在)存儲器114中或另外也存儲在(或緩存在)存儲器114中。存儲器114 還可以存儲下列的其中一個或多個產(chǎn)出事件處理程序或服務(wù)例程 222(例如可響應(yīng)邏輯220檢測到事件而^f皮調(diào)用的程序)、操作系統(tǒng) 224(例如用于管理包括核106的計(jì)算系統(tǒng)的硬件或軟件資源的操作系 統(tǒng))、和/或裝置驅(qū)動程凈225(例如用于使OS 與參考圖5和6論 述的那些多種裝置之間能夠通信的裝置驅(qū)動程序)。在一個實(shí)施例中, 在邏輯220使監(jiān)視邏輯221響應(yīng)檢測到監(jiān)視的事件而訪問SRDB 120 之后,可以從SRDB 120獲:^又產(chǎn)出服務(wù)例程(222)的地址。圖3圖示根據(jù)實(shí)施例的計(jì)算系統(tǒng)的多個部分。例如,圖3中示 出通道218中存儲的可能信息,并且可以根據(jù)至少一個指令集體系 結(jié)構(gòu)將該可能的信息作為EMONITOR指令的參數(shù)傳遞到該通道。這 些參數(shù)可以包括寄存器eax中的方案專用信息、寄存器ecx中的通道 標(biāo)識符和/或方案標(biāo)識符、寄存器edx中的基指針(SRDS)以及寄存器 ebx中的偏移量值(SRDBP)。寄存器eax中的方案專用信息可以指示 計(jì)數(shù)值,該計(jì)數(shù)值從稱為開始采樣值(sample after value)的初始值起 倒計(jì)數(shù),當(dāng)它達(dá)到零時,其下溢會引起產(chǎn)出服務(wù)例程被調(diào)用。此開 始采樣值越大,則采樣率越低。通道標(biāo)識符可以指示要通過指令的 執(zhí)行來配置的通道。方案標(biāo)識符指示為通道標(biāo)識符標(biāo)識的通道配置 的方案的唯一標(biāo)識符。SRDS和SRDBP可以共同地作為指向關(guān)聯(lián)的 SRDB 120的位置的指針。SRDB 120可以包括服務(wù)例程堆棧段 (SRSS),該服務(wù)例程堆棧段(SRSS)與服務(wù)例程堆棧指針(SRSP)—起 標(biāo)識存儲器114中存儲的對應(yīng)產(chǎn)出事件堆棧?;蛘?,可以使用單個值 來指向或索引到SRDB 120。如圖3所示,SRDB 120還可以存儲服 務(wù)例程指令指針(SRIP)和服務(wù)例程代碼段(SRCS),它們共同地指示存 儲在存儲器114中的產(chǎn)出服務(wù)(222)例程。在多種實(shí)施例中,作為替 代方式,駐留在SRDB 120中的任何一個字段或全部字段可以駐留在 處理器核(106)中。將它們保存在存儲器中可以減少需要進(jìn)行上下文 切換的軟件線程專用狀態(tài)的數(shù)量。因此,在一個實(shí)施例中,SRDB 120可以存儲可用于切換堆棧、 轉(zhuǎn)移控制和使用新的數(shù)據(jù)存儲器上下文的信息。而且,SRDB 120可 以在上下文切換之間保留在應(yīng)用存儲器(例如存儲器114的一部分) 中,并且無需保存或恢復(fù)SRDB 120。而且,可以使用單個值來指向 存儲在存儲器114中的產(chǎn)出服務(wù)例程(222)和/或產(chǎn)出事件堆棧。還可 以將產(chǎn)出服務(wù)例程(222)和/或產(chǎn)出事件堆棧存儲在Ll高速緩存111 和/或共享的高速緩存108中,除了將其存儲在存儲器114(例如可以 是存儲器114的應(yīng)用存儲器部分)之外或替代將其存儲在存儲器114 中。還可以按任何次序?qū)?shù)據(jù)存儲在SRDB 120中。因此,圖3所示
的SRDB 120的結(jié)構(gòu)僅僅是一個實(shí)施例的舉例。圖4圖示根據(jù)實(shí)施例響應(yīng)事件的發(fā)生而引起生成產(chǎn)出的方法400 的流程圖。在一些實(shí)施例中,可以利用參考圖l-3和5-6論述的多種 組件來執(zhí)行參考圖4論述的操作的其中一個或多個操作。例如,參 考圖4論述的操作的至少其中一些操作可以通過引用參考圖2和3 論述的SRDB項(xiàng)來執(zhí)行。參考圖1-4,在操作402,可以(例如由程序員)定義多種條件(例 如方案)。在一個實(shí)施例中,可以將與操作402的定義的條件對應(yīng)的 數(shù)據(jù)存儲在通道218中。還可以在操作402配置與圖2和3的SRDB 120相關(guān)的多種信息,例如配置要索引到SRDB 120的可存儲在通道 218中的值的其中一個或多個值,例如參考圖3論述的那些值。在操 作404,確定是否發(fā)生了一個或多個事件(例如對應(yīng)于方案的體系結(jié) 構(gòu)事件)。在一個實(shí)施例中,邏輯220可以在操作404確定是否發(fā)生 了通道218中的一個或多個事件。一旦操作404確定監(jiān)視的事件發(fā)生,則在操作406可以確定目 標(biāo)響應(yīng)。例如,可以在操作406訪問存儲在通道218中的數(shù)據(jù),例 如參考圖3論述的那些數(shù)據(jù)。在操作406和操作407a,確定是否要 更新對應(yīng)的狀態(tài)。該狀態(tài)的其中一些可以是通道專用的,例如計(jì)數(shù) 器值,其中一些可以是通道之間共享的(跨通道狀態(tài)),例如指向?qū)ζ?采取產(chǎn)出的指令的指針或分支歷史信息。在操作408,可以確定是否 還要將與當(dāng)前事件對應(yīng)的數(shù)據(jù)保存在存儲器中。在操作408,可以確定是否要引起產(chǎn)出。如果是如此的話,操作412可以處理調(diào)用產(chǎn)出 服務(wù)例程所必需的操作。例如,當(dāng)發(fā)生監(jiān)視的事件時,可以在操作413a 將當(dāng)前SS、 SP、 DS、 CS、 IP和標(biāo)志值存儲在SRDB 120中,并且 可以從SRDB將與該服務(wù)例程關(guān)聯(lián)的SS、 SP、 DS、 CS和IP加載到 處理器。在不切換堆棧或發(fā)現(xiàn)無需切換堆棧的實(shí)施例中,可以不將SS 和SP保存在SRDB中,并不切」換到SRDB中存儲的值。在備選實(shí)施 例中,而是將產(chǎn)出之前來自執(zhí)行上下文將保存在SRDB中的信息保 存到堆棧,并在服務(wù)例程結(jié)束時將其恢復(fù)。在再一個實(shí)施例中,可以將該信息置于SRDB所指向的堆棧上。這些方法可以在例如一個產(chǎn)出服務(wù)例程未完成執(zhí)行而另 一個產(chǎn)出服務(wù)例程被調(diào)用時使產(chǎn)出事 件處理的嵌套易于實(shí)現(xiàn)。在一個實(shí)施例中,在產(chǎn)出服務(wù)例程期間,可以將通道專用狀態(tài)和跨通道狀態(tài)讀出到處理器寄存器或存儲器。如413B中所示,可以 處理此狀態(tài),并且可以釆取其他動作。 一旦完成產(chǎn)出處理,如圖414 中所示,可以在產(chǎn)出服務(wù)例程(222)的結(jié)束時執(zhí)行特定指令以指示完 成事件處理(415)??梢詫⒄{(diào)用產(chǎn)出服務(wù)例程之前先前保存在SRDB 或堆棧中的數(shù)據(jù)(例如SS、 SP、 DS、 CS、 IP和標(biāo)志)恢復(fù)到處理器, 并且繼續(xù)指令流的執(zhí)行。在一些實(shí)施例中,可以嵌套多個產(chǎn)出。即,在執(zhí)行一個產(chǎn)出服 務(wù)例程時,可能滿足進(jìn)行另一個產(chǎn)出的條件,例如在產(chǎn)出服務(wù)例程 已將多個產(chǎn)出解鎖(例如,通過清除產(chǎn)出塊位(YBB))之后。如果要允 許此類嵌套,則在一個實(shí)施例中,可以在清除YBB之前執(zhí)行如下操 作(1) 從通道讀取SRDB 120段基址(SRDS)和偏移量(SRDBP), 并使用它來找到SRDB ,然后修改SRDB中的SRSP字段。(2) 如果已知有空間可用,則將SRSP字段下調(diào)到剛好低于當(dāng) 前SRSP,否則調(diào)整到另一個堆;戰(zhàn)。按SRDB 120中所需要地來創(chuàng)建 堆棧之間的鏈接。這可能涉及在新堆棧上存儲指向SRDB或舊堆棧 的信息,因此堆棧審核(stack walking)例程和調(diào)試程序可以平滑地通 過堆棧轉(zhuǎn)移。而且,在退出產(chǎn)出服務(wù)例程之前可以執(zhí)行如下操作(1) 設(shè)置YBB。(2) 從通道讀取SRDB 120段基址(SRDS)和偏移量(SRDBP), 并使用它來找到并修改SRDB中的SRSP字段。(3) 將該SRSP字段調(diào)整回它的先前值,該先前值可以是在操
作413a已保存在堆棧上的。圖5圖示根據(jù)本發(fā)明一個實(shí)施例的計(jì)算系統(tǒng)500的框圖。計(jì)算 系統(tǒng)500可以包括經(jīng)由互連網(wǎng)絡(luò)(或總線)504通信的一個或多個中央 處理單元(CPU)502或處理器。處理器502可以包括通用處理器、網(wǎng) 絡(luò)處理器(該處理器處理通過計(jì)算機(jī)網(wǎng)絡(luò)503傳送的數(shù)據(jù))或其他類型 的處理器(包括精簡指令集計(jì)算機(jī)(RISC)處理器或復(fù)雜指令集計(jì)算機(jī) (CISC))。而且,處理器502可以具有單核或多核設(shè)計(jì)。具有多核設(shè) 計(jì)的處理器502可以將不同類型的處理器核集成在相同的集成電路 (IC)管芯上。而且,具有多核設(shè)計(jì)的處理器502可以作為對稱或非對 稱多處理器來實(shí)現(xiàn)。在一個實(shí)施例中, 一個或多個處理器502可以 是與圖1的處理器102相同或相似的。例如, 一個或多個處理器502 可以包括參考圖1和/或2論述的一個或多個核106。還可以由系統(tǒng)500 的一個或多個組件來執(zhí)行參考圖l-4論述的操作。芯片組506也可以與互連網(wǎng)絡(luò)504通信。芯片組506可以包括 存儲器控制集線器(MCH)508。 MCH 508可以包括與存儲器512(存儲 器512可以與圖1的存儲器114相同或相似)通信的存儲器控制器 510。存儲器512可以存儲可由CPU 502或計(jì)算系統(tǒng)500中包括的任 何其他裝置執(zhí)行的數(shù)據(jù)(包括指令序列)。在本發(fā)明的一個實(shí)施例中, 存儲器512可以包括一個或多個易失性存儲裝置(或存儲器),例如隨 機(jī)存取存儲器(RAM)、動態(tài)RAM(DRAM)、同步DRAM(SDRAM)、 靜態(tài)RAM(SRAM)或其他類型的存儲裝置。還可以利用例如硬盤等 的非易失性存儲器。附加裝置(例如多個CPU和/或多個系統(tǒng)存儲器) 可以經(jīng)由互連網(wǎng)絡(luò)504來通信。MCH 508還可以包括與顯示裝置516通信的圖形接口 514。在 本發(fā)明的一個實(shí)施例中,圖形接口 514可以經(jīng)由加速圖形端口(AGP) 來與顯示裝置516通信。在本發(fā)明的一個實(shí)施例中,顯示器516(例 如平板顯示器)可以通過例如信號轉(zhuǎn)換器來與圖形接口 514通信,該 信號轉(zhuǎn)換器將存儲在存儲裝置(例如視頻存儲器或系統(tǒng)存儲器)中的圖
像的數(shù)字表示轉(zhuǎn)換成顯示器516解釋并顯示的顯示信號。顯示裝置
生成的顯示信號可以通過多種控制裝置,然后才由顯示器516解釋 并在顯示器516上顯示。
集線器接口 518可使MCH 508和輸入/輸出控制集線器(ICH)520 能夠進(jìn)行通信。ICH 520可以提供至與計(jì)算機(jī)系統(tǒng)500通信的I/O裝 置的接口。 ICH 520可以通過外圍橋(或控制器)524(例如外圍組件互 連(PCI)橋、通用串行總線(USB)控制器或其他類型的外圍橋或控制器) 來與總線522通信,。橋524可以在CPU 502與外圍裝置之間提供數(shù) 據(jù)路徑??梢岳闷渌愋偷耐貥恪6遥鄠€總線還可以通過例 如多個橋或控制器來與ICH 520通信。而且,在本發(fā)明的多種實(shí)施 例中,與ICH 520通信的其他外圍裝置可以包括集成電子設(shè)備(IDE) 或小計(jì)算機(jī)系統(tǒng)接口(SCSI)硬盤、USB端口、鍵盤、鼠標(biāo)、并行端 口、串行端口、軟盤驅(qū)動器、數(shù)字輸出支持(例如數(shù)字視頻接口(DVI》 或其他裝置。
總線522可以與音頻裝置526、 一個或多個^F茲盤驅(qū)動器528和網(wǎng) 絡(luò)接口裝置530(網(wǎng)絡(luò)接口裝置530與計(jì)算機(jī)網(wǎng)絡(luò)503通信)通信。其 他裝置可以經(jīng)由總線522來通信。在本發(fā)明的一些實(shí)施例中,多種 組件(例如網(wǎng)絡(luò)接口裝置530)也可以與MCH 508通信。此外,可以將 處理器502和MCH 508進(jìn)行組合以形成單個芯片。而且,在本發(fā)明 的其他實(shí)施例中,可以將圖形加速器包括在MCH 508中。
而且,計(jì)算系統(tǒng)500可以包括易失性和/或非易失性存儲器(或存 儲單元)。例如,非易失性存儲器可以包括下列的其中一個或多個 只讀存儲器(ROM)、可編程ROM(PROM)、可擦寫PROM(EPROM)、 電EPROM(EEPROM)、磁盤驅(qū)動器(例如,528)、軟盤、壓縮光盤 ROM(CD-ROM)、數(shù)字多功能光盤(DVD)、閃速存儲器、磁光盤或能 夠存儲電子數(shù)據(jù)(例如包括指令)的其他類型的非易失性機(jī)器可讀介 質(zhì)。
圖6是根據(jù)本發(fā)明一個實(shí)施例的以點(diǎn)到點(diǎn)(PtP)配置設(shè)置的計(jì)算
系統(tǒng)600。具體來說,圖6示出其中通過多個點(diǎn)到點(diǎn)接口將處理器、 存儲器和輸入/輸出裝置互連的系統(tǒng)。還可以由系統(tǒng)600的一個或多 個組件來執(zhí)行參考圖l-5論述的操作。
如圖6所示,系統(tǒng)600可以包括多個處理器,而為了簡明,僅 示出兩個處理器602和604。處理器602和604均可以包括能夠?qū)崿F(xiàn) 與存儲器610和612通信的本地存儲器控制器集線器(MCH)606和 608。存儲器610和/或612可以存儲多種數(shù)據(jù),例如參考圖5的存儲 器512論述的那些數(shù)據(jù)。
在一個實(shí)施例中,處理器602和604可以是參考圖5論述的處 理器502的其中之一。處理器602和604可以分別4吏用PtP接口電路 616和618經(jīng)由點(diǎn)到點(diǎn)(PtP)接口 614來交換數(shù)據(jù)。處理器602和604 均還可以使用點(diǎn)到點(diǎn)接口電路626 、 628、 630和632經(jīng)由各自PtP接 口 622和624來與芯片組620交換數(shù)據(jù)。芯片組620還可以使用例 如PtP接口電路637經(jīng)由圖形4妄口 636與圖形電路634交換數(shù)據(jù)。
本發(fā)明的至少一個實(shí)施例可以在處理器602和604內(nèi)提供。例 如,可以將圖1-2的一個或多個核106設(shè)在處理器602和604內(nèi)。但 是本發(fā)明的其他實(shí)施例可以存在于圖6的系統(tǒng)600內(nèi)的其他電路、 邏輯單元或裝置中。而且,可以將本發(fā)明的其他實(shí)施例分布在圖6 所示的多個電路、邏輯單元或裝置上。
芯片組620可以使用PtP接口電路641與總線640通信??偩€640 可以與一個或多個裝置(例如總線橋642和I/O裝置643)通信。經(jīng)由 總線644,總線橋642可以與例如鍵盤/鼠標(biāo)645的其他裝置、通信 裝置646(例如調(diào)制解調(diào)器、網(wǎng)絡(luò)接口裝置或可與計(jì)算機(jī)網(wǎng)絡(luò)503通 信的其他通信裝置)、音頻I/O裝置647和/或數(shù)據(jù)存儲裝置648通信。 數(shù)據(jù)存儲裝置648可以存儲由處理器602和/或604執(zhí)行的代碼649。
在本發(fā)明的多種實(shí)施例中,本文參考例如圖1-6論述的操作可 以作為硬件(例如邏輯電路)、軟件、固件或它們的組合來實(shí)現(xiàn),可以 作為計(jì)算機(jī)程序產(chǎn)品(例如包括其上存儲有用于將計(jì)算機(jī)編程以執(zhí)行
本文論述的過程的指令(或軟件過程)的機(jī)器可讀或計(jì)算機(jī)可讀介質(zhì)) 來提供。機(jī)器可讀介質(zhì)可以包括例如參考圖1-6論述的那些存儲裝置。
此外,此類計(jì)算機(jī)可讀介質(zhì)可以作為計(jì)算機(jī)程序產(chǎn)品來下栽, 其中該程序可以通過載波或其他傳播介質(zhì)中包含的數(shù)據(jù)信號的方式 經(jīng)由通信鏈路(例如總線、調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)從遠(yuǎn)程計(jì)算機(jī)(例 如服務(wù)器)傳輸?shù)秸埱笥?jì)算機(jī)(例如客戶機(jī))。因此,在本文中,載波 應(yīng)一皮視為包括機(jī)器可讀介質(zhì)。
本說明書中對"一個實(shí)施例"、"實(shí)施例"或"一些實(shí)施例"的 引述表示結(jié)合該實(shí)施例描述的特定特征、結(jié)構(gòu)或特點(diǎn)可以包含在至 少一個實(shí)現(xiàn)中。在本說明書中的多個不同位置出現(xiàn)短語"在一個實(shí) 施例中"可能全指同 一個實(shí)施例也可能并非全指同 一個實(shí)施例。
在下文描述和權(quán)利要求中,還可能使用到術(shù)語"耦合"和"連 接"以及它們的派生術(shù)語。在本發(fā)明的一些實(shí)施例中,可以使用"連 接"來指示兩個或兩個以上部件彼此處于直接的物理接觸或電接觸。 "耦合"可以表示兩個或兩個以上部件處于直4婁的物理接觸或電接 觸。但是,"耦合"還可以表示兩個或兩個以上部件可能并不處于彼 此直接的接觸,但是仍可以協(xié)同工作或交互。
因此,雖然本發(fā)明的實(shí)施例是利用專用于結(jié)構(gòu)特征和/或方法動 作的語言來描述的,但是應(yīng)理解要求權(quán)利的發(fā)明主題可以不限于所 描述的這些特定特征或動作。相反,這些特定特征和動作是作為實(shí) 現(xiàn)要求權(quán)利的發(fā)明主題的樣本形式來公開的。
權(quán)利要求
1.一種提供異步轉(zhuǎn)移控制的設(shè)備,所述設(shè)備包括第一存儲單元,所述第一存儲單元用于存儲與事件對應(yīng)的數(shù)據(jù);第二存儲單元,所述第二存儲單元用于存儲與所述事件對應(yīng)的產(chǎn)出服務(wù)例程的地址;第一邏輯,所述第一邏輯用于響應(yīng)所述事件的發(fā)生而更新所述第一存儲單元;以及第二邏輯,所述第二邏輯用于響應(yīng)所述事件的發(fā)生而引起對所述第二存儲單元的訪問以調(diào)用所述產(chǎn)出服務(wù)例程。
2. 如權(quán)利要求1所述的設(shè)備,其特征在于,與所述事件對應(yīng)的 數(shù)據(jù)包括信道標(biāo)識符、方案標(biāo)識符、計(jì)數(shù)值或至所述第二存儲單元 內(nèi)的位置的索引中的一個或多個。
3. 如權(quán)利要求1所述的設(shè)備,其特征在于,所述第二存儲單元 存儲所述服務(wù)例程要訪問的堆棧的地址。
4. 如權(quán)利要求1所述的設(shè)備,其特征在于,所述第一或第二存 儲單元中的一個或多個包括專用高速緩存、共享的高速緩存或應(yīng)用 存儲器中的一個或多個。
5. 如權(quán)利要求1所述的設(shè)備,其特征在于,還包括第三存儲單 元,所述第三存儲單元用于存儲所述產(chǎn)出服務(wù)例程。
6. 如權(quán)利要求1所述的設(shè)備,其特征在于,還包括執(zhí)行單元, 所述執(zhí)行單元用于執(zhí)行引起所述事件發(fā)生的一個或多個指令。
7. 如權(quán)利要求1所述的設(shè)備,其特征在于,還包括執(zhí)行單元, 所述執(zhí)行單元包括所述第 一邏輯。
8. 如權(quán)利要求1所述的設(shè)備,其特征在于,還包括多個處理器 核,其中所述多個處理器核的至少其中之一 包括所述笫 一邏輯或所 述第 一存儲單元中的一個或多個。
9. 如權(quán)利要求1所述的設(shè)備,其特征在于,所述第一邏輯、所述第一存儲單元、多個處理器核或高速緩存中的一個或多個在相同 的集成電路管芯上。
10. —種用于異步轉(zhuǎn)移控制的方法,包括 更新第 一存儲單元中與事件對應(yīng)的數(shù)據(jù);將與所述事件對應(yīng)的產(chǎn)出服務(wù)例程的地址存儲在第二存儲單元 中;以及響應(yīng)所述事件的發(fā)生而調(diào)用所述產(chǎn)出服務(wù)例程。
11. 如權(quán)利要求11所述的方法,其特征在于,還包括定義用于 監(jiān)視的一個或多個條件。
12. 如權(quán)利要求11所述的方法,其特征在于,還包括生成指示 發(fā)生了所述事件的信號,并響應(yīng)所生成的信號而訪問所述笫二存儲 單元。
13. 如權(quán)利要求11所述的務(wù)法,其特征在于,還包括將與所述 事件對應(yīng)的數(shù)據(jù)保存在堆棧或月l務(wù)例程數(shù)據(jù)塊(SRDB)中。
14. 如權(quán)利要求11所述的方法,其特征在于,還包括從堆棧或 SRDB中恢復(fù)與所述事件對應(yīng)的數(shù)據(jù)。
15. —種提供異步轉(zhuǎn)移控制的計(jì)算系統(tǒng),所述系統(tǒng)包括 存儲器,所述存儲器用于存儲與服務(wù)例程數(shù)據(jù)塊(SRDB)對應(yīng)的數(shù)據(jù);耦合到所述存儲器以便訪問所述服務(wù)例程數(shù)據(jù)塊的處理器,所 述處理器包括第一通道,所述第一通道用于存儲與事件對應(yīng)的數(shù)據(jù);以及第一邏輯,所述第一邏輯用于響應(yīng)所述事件的發(fā)生而引起 對所述服務(wù)例程數(shù)據(jù)塊的訪問以調(diào)用產(chǎn)出服務(wù)例程。
16. 如權(quán)利要求21所述的系統(tǒng),其特征在于,與所述事件對應(yīng) 的數(shù)據(jù)包括信道標(biāo)識符、方案標(biāo)識符、計(jì)數(shù)值或至所述第二存儲單 元內(nèi)的位置的索引中的一個或多個。
17. 如權(quán)利要求21所述的系統(tǒng),其特征在于,所述存儲器存儲 所述產(chǎn)出服務(wù)例程。
18. 如權(quán)利要求21所述的系統(tǒng),其特征在于,還包括執(zhí)行單元, 所述執(zhí)行單元用于執(zhí)行引起所迷事件發(fā)生的一個或多個指令。
19. 如權(quán)利要求21所述的系統(tǒng),其特征在于,還包括多個處理 器核,其中所述處理器包括所述多個處理器核,以及所述多個處理 器核的至少其中之一 包括所述第 一邏輯。
20. 如權(quán)利要求21所述的系統(tǒng),其特征在于,還包括耦合到所 述存儲器的音頻裝置。
全文摘要
描述用于執(zhí)行異步控制轉(zhuǎn)移的方法和設(shè)備。在一個實(shí)施例中,當(dāng)事件(例如體系結(jié)構(gòu)事件)發(fā)生時,訪問服務(wù)例程數(shù)據(jù)塊(SRDB)以獲取產(chǎn)出服務(wù)例程的地址。還描述了其他實(shí)施例。
文檔編號G06F9/48GK101211280SQ20071030726
公開日2008年7月2日 申請日期2007年12月28日 優(yōu)先權(quán)日2006年12月29日
發(fā)明者C·J·紐博恩, G·N·琴亞, I·阿納蒂, R·P·奈特, S·D·羅杰斯 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
冕宁县| 丹阳市| 兴安县| 刚察县| 眉山市| 大姚县| 巍山| 观塘区| 扎赉特旗| 长汀县| 新民市| 大宁县| 巴马| 长武县| 荔浦县| 怀柔区| 城固县| 平山县| 福泉市| 台北县| 威远县| 穆棱市| 随州市| 眉山市| 来凤县| 柘荣县| 沛县| 彩票| 冷水江市| 美姑县| 河源市| 清徐县| 天祝| 江源县| 山西省| 淮南市| 铅山县| 宜丰县| 湘潭市| 太湖县| 静海县|