專利名稱:執(zhí)行存儲器引用過濾的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本公開涉及計算及計算機系統(tǒng)的領(lǐng)域,更具體來說,涉及檢測計 算機系統(tǒng)中的存儲器的地址、指令、數(shù)據(jù)或其它引用的領(lǐng)域。
背景技術(shù):
一些計算機系統(tǒng)運行可采用參考點(例如"儀表")注釋的程序, 來跟蹤計算機程序?qū)Υ鎯ζ鞯母鞣N引用。例如, 一些計算機程序可包 括跟蹤計算機程序所存取的地址范圍的儀表代碼,并且某些動作可響 應(yīng)于存取特定地址范圍而進(jìn)行。通常,在軟件程序或例程中實現(xiàn)用于 比較程序?qū)δ硞€測試范圍的存儲器地址或值的存儲器存取和/或響應(yīng) 于存取特定存儲器范圍而執(zhí)行某種功能的邏輯。
通過軟件執(zhí)行存儲器存取比較操作可能由于例如與運行執(zhí)行這 些校驗所需的軟件相關(guān)聯(lián)的開銷而限制了可監(jiān)控的存儲器存取的類 型、數(shù)量和頻率。 一般來說,增加用于監(jiān)控諸如存儲器存取過濾或監(jiān) 控等功能的軟件程序的大小可能降低計算機系統(tǒng)性能,而擴(kuò)大代碼大 小,由此需要更大的代碼存儲裝置以及增加的系統(tǒng)成本。
發(fā)明內(nèi)容
本發(fā)明的一個方面,提供一種裝置,包括第一邏輯,確定存儲 器存取操作是否存取一個或多個存儲器區(qū)域以及對其進(jìn)行響應(yīng)而引 起讓步事件,所述讓步事件響應(yīng)于存取所述一個或多個存儲器區(qū)域的 所述存儲器存取操作而調(diào)用中斷處理程序來執(zhí)行一個或多個功能。
本發(fā)明的另一方面,提供一種系統(tǒng),包括存儲器,存儲標(biāo)記指 令;處理器,對于對一個或多個地址范圍的存取,監(jiān)控在程序命令中所述標(biāo)記指令之后的指令。
本發(fā)明的另一方面,提供一種方法,包括將一個或多個場景編
程到處理器的邏輯通道中;對于笫一標(biāo)記監(jiān)控程序以便觸發(fā)所述一個 或多個場景;響應(yīng)檢測到第一標(biāo)記而執(zhí)行所述一個或多個場景;如果 滿足所述一個或多個場景,則4丸行讓步事件,其中所述一個或多個場 景包括確定是否已對第一地址范圍進(jìn)行了存取。
本發(fā)明的另 一方面,提供一種在其上存儲有指令集的機器可讀介 質(zhì),所述指令集在由機器執(zhí)行時,使所述機器執(zhí)行包括以下步驟的方 法監(jiān)控指令線程對存儲器區(qū)域的存?。话凑枕憫?yīng)監(jiān)控對所述存儲器 區(qū)域的存取而生成的信息簡表來修改所述指令線程的性能。
在附圖中作為實例而不是限制來說明本發(fā)明。
圖1說明監(jiān)控處理器中各種事件的系統(tǒng)的一個實施例。
圖2是流程圖,說明本發(fā)明至少一個實施例的各種方面。
圖3說明在其中可使用一個實施例的被管理的運行時間環(huán)境。
圖4說明在其中可使用至少 一 個實施例的共享總線系統(tǒng)。
圖5說明在其中可使用本發(fā)明至少一個實施例的點對點總線。
圖6說明根據(jù)一個實施例在其中可對一個或多個場景進(jìn)行編程 的多個通道。
圖7是流程圖,說明根據(jù)一個實施例用于使一個或多個場景能夠 監(jiān)控對存儲器區(qū)域的存取的操作。
圖8是流程圖,說明在一個實施例中使用的操作。
具體實施例方式
本發(fā)明的實施例涉及計算機系統(tǒng)。更具體來說,本發(fā)明的至少一 個實施例涉及檢測和過濾計算機系統(tǒng)中的存取或者與存儲器存取有 關(guān)的信息的技術(shù)。
在一個實施例中,可監(jiān)控由計算機程序或其它邏輯對存儲器的存 取,并且對其進(jìn)行響應(yīng)而通過采用諸如在處理器內(nèi)的電路中實現(xiàn)的硬 件邏輯和一個或多個軟件指令的組合來執(zhí)行各種操作。在一個實施例
中,硬件可編程邏輯如"通道"可用來檢測各種存儲器區(qū)域或各種數(shù) 據(jù)值的存取,并響應(yīng)于這些檢測的存取,按照在通道中編程的各種場
景(scenario)來執(zhí)行功能。在一個實施例中,特定場景或場景組合 的發(fā)生可觸發(fā)類似故障的讓步(yield)事件,以便響應(yīng)于場景的發(fā)生 而調(diào)用處理例程來執(zhí)行功能。
由于用于檢測和響應(yīng)存儲器引用或存取的發(fā)生的邏輯在硬件邏 輯中實現(xiàn),因此在一個實施例中,負(fù)責(zé)存儲器引用/存取的軟件裝載 較少開銷代碼,由此允許比用軟件檢測和處理存儲器存取/引用時更 有效地并以更大性能指標(biāo)來執(zhí)4亍軟件。此外,至少一個實施例允許可 檢測的各種存儲器存取和引用的數(shù)量、類型及組合方面的更靈活性。
在一個實施例中,通過在要監(jiān)控的程序中包含在被執(zhí)行時使場景 檢測代碼中其它指令的指令或其它代碼,硬件定義的場景可監(jiān)控軟件 程序中的各種存儲器存取。例如,在一個實施例中,可在程序命令中, 在要存取存儲器區(qū)域的指令或指令組之前插入諸如"標(biāo)記"指令之類 的指令。在由運行程序的處理器遇到或執(zhí)行該標(biāo)記之后,該處理器或 其它處理器中對應(yīng)的通道或多個通道可對在程序命令中在該標(biāo)記之 后執(zhí)行的指令中包含的或者與其關(guān)聯(lián)的數(shù)據(jù)、地址或其它信息執(zhí)行各 種比較操作。此外,如果在程序命令中在標(biāo)記之后的指令的執(zhí)行滿足 已經(jīng)編程到通道中的條件,則該條件可觸發(fā)類似故障的讓步事件,使 得處理程序可對其進(jìn)行響應(yīng)而4丸行某種功能。
在一個實施例中,對線性或物理地址范圍的存取可由在程序命令 中由使一個或多個通道檢測該存取并對其進(jìn)行響應(yīng)而執(zhí)行某種功能 的標(biāo)記領(lǐng)先的指令或指令組來存取。在其它實施例中,可由響應(yīng)于檢 測到在程序命令中在負(fù)責(zé)存儲^t據(jù)或數(shù)據(jù)范圍的指令之前的一個或 多個標(biāo)記而執(zhí)行一個或多個場景的一個或多個通道,來檢測存儲到線
性或物理存儲器地址的數(shù)據(jù)或H據(jù)范圍。此外,在一個實施例中,可 由響應(yīng)于檢測到在程序命令中在負(fù)責(zé)執(zhí)行分支預(yù)測操作的指令之前
的一個或多個標(biāo)記而執(zhí)行一個或多個場景的一個或多個通道,來檢測 轉(zhuǎn)移到分支目標(biāo)或分支目標(biāo)范圍的控制。在其它實施例中,可通過編 程通道以響應(yīng)于;f企測到程序中的標(biāo)記而執(zhí)行某些場景,來4企測其它存 儲器引用或存取。此外,可通過組合由通道執(zhí)行的場景,來在一個或 多個通道中檢測存儲器引用或存取(例如與存儲器存取對應(yīng)的數(shù)據(jù)或 地址)的一個或多個組合。
在一個實施例中,區(qū)域過濾4支術(shù)可用來允許程序線程或其它指令 序列利用諸如"堆"之類的全局存儲器區(qū)域,而不是在其中當(dāng)在棧外 向程序公布指向數(shù)據(jù)的指針時可容易地改寫數(shù)據(jù)的諸如"棧"之類的 較臨時存儲區(qū)。更具體來說,在一個實施例中,可將堆的一部分("初 級部分(kindergarten)")具體分配給一個或多個程序線程,而不管是 否向其它程序或線程公布指向初級部分的指針,因為保持指向堆的指 針("垃圾收集")的現(xiàn)有技術(shù)可能僅對于有權(quán)存取初級部分的那些線 程才適用于初級部分。在一個實施例中,存儲器存取過濾技術(shù)可使線 程能夠采用堆初級部分而不是棧來存儲和存取信息,使得線程或多個 線程可避免棧的臨時性質(zhì),而沒有引起與整個堆相關(guān)聯(lián)的垃圾收集開 銷。
圖l說明根據(jù)一個實施例可監(jiān)控執(zhí)行資源的條件的系統(tǒng)。在圖1 的實施例中,執(zhí)行資源105、監(jiān)控器110和啟動邏輯120組成能夠執(zhí) 行指令的處理器IOO的一部分。在一些實施例中,執(zhí)行資源可包括可 集成到單個組件或集成電路中的硬件資源。但是,執(zhí)行資源可包括也 可用于執(zhí)行程序指令的軟件或固件資源,或者硬件和軟件和/或固件 的任何組合。例如,固件可用作抽象層的一部分,或者可像軟件那樣 對處理硬件添加功能。軟件還可用來模擬指令集的部分或全部,或者 另外幫助進(jìn)行處理。
處理器可以是執(zhí)行指令的各種不同類型處理器中的任一種。例如,處理器可以是簡化指令集計算(RISC)處理器、復(fù)雜指令集計算 (CISC)處理器、超長指令字(VLIW)處理器,或者任何混合或備選處理 器類型。此外,諸如網(wǎng)絡(luò)或通信處理器、協(xié)處理器、嵌入式處理器、 壓縮引擎、圖形處理器等專用處理器可采用已公開的技術(shù)。隨著集成 趨勢繼續(xù)發(fā)展以及處理器變得更為復(fù)雜,對內(nèi)部性能指標(biāo)的監(jiān)控和反 應(yīng)的需要可能進(jìn)一步增加,因而使本公開技術(shù)更合乎需要。然而,由 于在這個技術(shù)領(lǐng)域迅速的技術(shù)進(jìn)步,難以預(yù)知所公開技術(shù)的所有應(yīng) 用,但是它們對于執(zhí)行程序序列的復(fù)雜硬件是普及的。
如圖1所示,處理器100耦合到存儲介質(zhì)150,如存儲器。存儲 介質(zhì)150可以是具有分級結(jié)構(gòu)各級的存儲器子系統(tǒng),其中可包括但不 限于高速緩沖存儲器的各級,諸如動態(tài)隨機存取存儲器等系統(tǒng)存儲器 以及諸如閃速存儲器(例如記憶棒等)、磁盤或光盤之類的非易失性存 儲裝置。如圖所示,存儲介質(zhì)存儲程序160和處理程序和/或其它線 程指令,如服務(wù)線程170的指令。此外,存儲器可存儲被管理的運行 時間環(huán)境155,在其中可響應(yīng)于監(jiān)控執(zhí)行資源中的各種事件而開發(fā)和 優(yōu)化程序線程或多個線程。
為了允許監(jiān)控器IIO監(jiān)控預(yù)期事件,監(jiān)控器110可耦合到4丸行資 源的各個部分,以便檢測特定條件或者被通知某些微體系結(jié)構(gòu)事件。 信號線可路由到監(jiān)控器110,或者監(jiān)控器可在戰(zhàn)略上與相關(guān)資源^:在 一起或者與其集成。監(jiān)控器110可包括各種可編程邏輯或軟件或者固 件元件。對于至少一個實施例,監(jiān)控器IIO可編程為監(jiān)控與可用來觸 發(fā)讓步事件的在體系結(jié)構(gòu)上定義的事件組合或"場景"相關(guān)聯(lián)的一個 或多個體系結(jié)構(gòu)或微體系結(jié)構(gòu)事件。
在一個實施例中,編程為實現(xiàn)場景的邏輯包含在硬件通道中,可 單獨或結(jié)合用于構(gòu)成更詳細(xì)闡述的場景。在一個實施例中,場景可用 軟件指令或指令組來編程。此外,在一個實施例中,通過執(zhí)行通道讀 指令來執(zhí)行多個通道中存儲的多個互相關(guān)場景,通道可在邏輯上與另 一個通道相關(guān)。或者,監(jiān)控器IIO可經(jīng)過硬連線,以檢測與某個場景
關(guān)聯(lián)的特定條件或條件組。
相應(yīng)地,圖1所示的系統(tǒng)可支持一個或多個體系結(jié)構(gòu)事件或"讓 步事件"。讓步事件將所述執(zhí)行乂人當(dāng)前運行指令流轉(zhuǎn)移到通道的讓步 事件服務(wù)例程。通道的服務(wù)例程屬于當(dāng)前運行指令流的相同進(jìn)程/上 下文。當(dāng)與通道相關(guān)聯(lián)的場景觸發(fā)時,發(fā)信號通知讓步事件。
監(jiān)控器110跟蹤各種事件或條件,并且如果它被編程為檢測的事
件或條件發(fā)生,則發(fā)信號通知^丸行資源105,以便中斷程序原本要進(jìn) 行的常規(guī)控制流程。如圖l所示,中斷可導(dǎo)致調(diào)用事件處理程序或者 發(fā)生線程切換。對于至少一個備選實施例,如果監(jiān)控器110所監(jiān)控的 事件或條件發(fā)生,則不一定觸發(fā)程序的常規(guī)控制流程的中斷。而是, 一組體系結(jié)構(gòu)狀態(tài)存儲元件如通道1300的一個或多個可用來指示在 監(jiān)控器110檢測到某個場景的所有條件時是否應(yīng)發(fā)生讓步事件。也就 是說,通道可經(jīng)過編程,使得在檢測到一個場景時會發(fā)生讓步事件。 沒有通道中的這種指示,場景的滿足即使檢測到了可能也不會引起讓 步事件。
在一個實施例中,圖1所示處理器100包括一組通道1300。各 個通道可指定觸發(fā)場景。響應(yīng)場景的觸發(fā),讓步事件處理程序可記錄 觸發(fā)事件的發(fā)生,并通過調(diào)用服務(wù)例程如圖1所示的通道服務(wù)處理程 序185進(jìn)行響應(yīng)。讓步事件處理程序可以是硬件、固件或軟件機構(gòu)。
在一個實施例中, 一個或多個場景可編程到一個或多個通道中, 以便在由運行在處理器上的程序中的操作存取存儲器區(qū)域(例如在高 速緩存中或者在系統(tǒng)存儲器中)的情況下,生成類似故障的讓步。例 如,在一個實施例中,場景可定義成根據(jù)存取的線性或物理地址來測 試對存儲器第一區(qū)域的存取。作為補充或替代,在一個實施例中,場 景可定義成測試在第二地址范圍中存儲的數(shù)據(jù)。在又一個實施例中, 可測試要存儲在存儲器中或者從存儲器中存取的數(shù)據(jù)范圍,并對其進(jìn) 行響應(yīng)而觸發(fā)讓步事件??梢允堑瓦M(jìn)度指標(biāo)的其它可檢測事件可涉及 執(zhí)行資源的各種其它微體系結(jié)構(gòu)或結(jié)構(gòu)細(xì)節(jié)。
圖1說明存儲介質(zhì)150還可包括操作系統(tǒng)(OS)180以及通道服務(wù) 處理程序機構(gòu)185。對于至少一個實施例,操作系統(tǒng)180可最低限度 地涉及本文所述的用戶級線程監(jiān)控和優(yōu)化技術(shù)。例如,OS 180可涉 及在讓步事件處理期間保存和恢復(fù)上下文。因此操作系統(tǒng)180可提供 上下文管理服務(wù)。通道狀態(tài)可以是OS 180管理的上下文的一部分。
但是,對于至少一個實施例,OS 180沒有涉及傳遞讓步事件。 對于這種實施例,編程場景(即已經(jīng)編程到通道中以便觸發(fā)讓步事件 的事件組合)的滿足觸發(fā)在硬件或固件中經(jīng)由讓步事件處理程序傳遞 的讓步事件。對于至少一個實施例,例如,觸發(fā)場景滿足的指令可經(jīng) 由硬件來加標(biāo)簽。這種標(biāo)簽可經(jīng)過處理,以便傳遞讓步事件。這種處 理例如可通過執(zhí)行資源105的石更件或固件諸如微碼ROM指令進(jìn)行。 實現(xiàn)讓步事件的控制轉(zhuǎn)移的該;更件或固件機構(gòu)有時稱作"讓步事件處 理器"。
控制可經(jīng)由讓步事件處理程序轉(zhuǎn)移到通道服務(wù)處理程序185。這 樣,體系結(jié)構(gòu)上定義的場景的處理可通過用戶級代碼直接執(zhí)行,而具 有OS 180的最小限度干預(yù)。對于這樣一種實施例,場景條件檢測和 讓步事件傳遞(包括控制轉(zhuǎn)移)對OS 180是透明的。
但是,對于至少一個其它實施例,場景的滿足可觸發(fā)在內(nèi)部生成 的軟件中斷,而不是如上所述觸發(fā)硬件傳遞的讓步事件。對于這種實 施例,操作系統(tǒng)180可在發(fā)生讓步事件軟件中斷時調(diào)用通道服務(wù)處理 程序185。
不管讓步事件是如何傳遞的(硬件與軟件),讓步事件都可通過用 戶級代碼來處理。也就是說,在^f壬一種方式下,控制都可被轉(zhuǎn)移到通 道服務(wù)處理程序185,處理程序185實際上可響應(yīng)于^r測到觸發(fā)條件 而將控制轉(zhuǎn)移給用戶定義的服務(wù)線程或處理程序。這種控制轉(zhuǎn)移中斷 了在發(fā)生讓步事件時執(zhí)行的當(dāng)前指令流的執(zhí)行。在一個實施例中,用 戶定義的服務(wù)線程或處理程序可包括優(yōu)化使場景被觸發(fā)的線程的例 程。此外,在一個實施例中,用戶定義的服務(wù)線程或處理程序可用來優(yōu)化引起被管理的運行時間環(huán)境中的場景觸發(fā)的用戶級程序,使得優(yōu) 化可以實時進(jìn)行。
在滿足場景的情況下,在至少一個實施例中,可執(zhí)行若干功能中 的一個或多個,包括設(shè)置一個或多個標(biāo)志以指示各種狀態(tài)和/或生成 讓步事件。例如,為了響應(yīng)于觸發(fā)在其中監(jiān)控對數(shù)據(jù)范圍或地址區(qū)域 的存取的第一場景而調(diào)用另一個場景,可采用某個標(biāo)志,如"進(jìn)位標(biāo)
志"。在一個實施例中, 一個或多個通道可編程為1)設(shè)置進(jìn)位標(biāo)志 但不引起讓步事件,或者2)設(shè)置進(jìn)位標(biāo)志并引起讓步事件。
此外,在一個實施例中,其它標(biāo)志可用來表示作為執(zhí)行另一種類 型場景的結(jié)果而采取的其它動作。例如,為了響應(yīng)于觸發(fā)在其中已經(jīng) 存取了指令指針范圍的第一場景而調(diào)用另一個場景,可采用某個標(biāo) 志,如"零標(biāo)志"。在一個實施例中, 一個或多個通道可編程為1)設(shè) 置零標(biāo)志但不引起讓步事件,或者2)設(shè)置零標(biāo)志并引起讓步事件。 類似地,為了響應(yīng)于觸發(fā)在其中已經(jīng)存取了分支目標(biāo)地址的第一場景 而調(diào)用另一個場景,可設(shè)置某個標(biāo)志,如"溢出標(biāo)志"。例如,在一 個實施例中, 一個或多個通道可編程為1)設(shè)置溢出標(biāo)志但不引起 讓步事件,或者2)設(shè)置溢出標(biāo)志并引起讓步事件。
在一個實施例中,標(biāo)志可實現(xiàn)為通道邏輯中的或者另外與通道邏 輯相關(guān)聯(lián)的位存儲區(qū)。此外,通過將與各場景相關(guān)聯(lián)的通道編程為在 發(fā)生對應(yīng)事件之后設(shè)置適當(dāng)?shù)臉?biāo)志,任何數(shù)量的場景都可在邏輯上一 起配置成實現(xiàn)組合邏輯功能。場景可編程為監(jiān)控其它場景的標(biāo)志,以 便以適當(dāng)?shù)捻樞騺碚{(diào)用場景。
圖6說明根據(jù)一個實施例用通過標(biāo)志一起鏈接的不同場景來編 程的兩個通道。在圖6中,通道601執(zhí)行第一場景,并響應(yīng)那個場景 的發(fā)生而設(shè)置進(jìn)位標(biāo)志605,它由在通道610中編程的第二場景來監(jiān) 控。結(jié)果是其輸出為第一和第二場景的功能的復(fù)合場景。在一個實施 例中,在執(zhí)行第二場景之后,由讓步標(biāo)志620發(fā)信號通知讓步事件。 處理程序可響應(yīng)于讓步標(biāo)志被設(shè)置而執(zhí)行,它根據(jù)發(fā)生的兩種場景的組合來執(zhí)行某種功能。
在一個實施例中,程序可包含標(biāo)記指令,以指示在程序中特定場 景將測試特定存儲器存取如讀或?qū)懖僮鞯哪屈c。在一個實施例中,標(biāo) 記是執(zhí)行正是指示在程序命令中用場景編程的通道將開始監(jiān)控后續(xù) 操作或指令的那點的功能的指令。在其它實施例中,標(biāo)記可包含除了 指示程序開始由場景監(jiān)控的位置之外還執(zhí)行的其它功能。在一些實施 例中,標(biāo)記可包含在由場景監(jiān)控的相同的一個或多個指令中。
在一個實施例中,標(biāo)記指令可具有以下格式"MODr/m",其中 "MOD"表示來自源地址的修改操作,"r/m"(寄存器/存儲器地址) 例如由3字節(jié)操作碼來表示。在這個實例中,標(biāo)記沒有包含目的地址 字段。但是,在其它實施例中,標(biāo)記可包含目的地址字段,或者具有 其它格式。標(biāo)記的格式(例如操作碼等)可至少部分取決于它所屬的特 定指令集體系結(jié)構(gòu)。例如,操作數(shù)可來自存儲器或者寄存器,如用
MODr/m格式所指定的。
下面說明根據(jù)本發(fā)明的 一個實施例^^行可被監(jiān)控的存儲器存取 的一系列指令
Sentinel <mode>
Mov <dest>, <src>
在以上代碼序列中,標(biāo)記指令之后是存儲器存取指令。在一個實 施例中,標(biāo)記向編程到處理器內(nèi)通道中的場景指示,對于對第一存儲 器地址或地址范圍以及與隨后指令相關(guān)聯(lián)的數(shù)據(jù)的存取,監(jiān)控存儲器 存取指令。在其它實施例中,為了其它原因可監(jiān)控隨后指令,例如檢 測是否由隨后指令將數(shù)據(jù)范圍存儲到存儲器。
如果存儲器存取指令滿足編程到通道或多個通道的條件,則類似 故障的讓步可能發(fā)生,它響應(yīng)讓步事件而調(diào)用處理例程來執(zhí)行某些操 作。由處理程序執(zhí)行的操作可能有所不同。例如,在一個實施例中, 處理程序通知用戶已經(jīng)對某個地址范圍進(jìn)行了存取。在其它實施例 中,處理程序可響應(yīng)讓步事件而4丸行其它簡表建立(profiling)或用
戶代碼修改,在本公開中稍后論述其中的一部分。許多場景可編程到 通道中,以便設(shè)置讓步事件的觸發(fā)條件。此外,在一些實施例中,一 個或多個場景可編程到在邏輯上鏈接在一起的一個或多個通道中,以 便檢測更復(fù)雜的場景。
在一個實施例中,執(zhí)行初始化過程,其中處理硬件中的一個或多
個通道編程為;f企測某種場景,其中如果^r測到第一標(biāo)記,則將隨后存 儲器存取操作如存儲指令的目標(biāo)地址與地址范圍進(jìn)行比較。在一個實 施例中,如果存儲指令的目標(biāo)地址在某個地址范圍內(nèi),則可設(shè)置硬件 標(biāo)志或其它指示符,以便通知另一個場景來監(jiān)控另一個條件的發(fā)生, 例如與存儲指令對應(yīng)的特定數(shù)據(jù)范圍。在這個實例中,第一場景不會 引起讓步事件,而只是設(shè)置標(biāo)志或其它指示符,且代碼序列將繼續(xù)。 在一個實施例中,第二場景可初始化為檢測第一場景的發(fā)生(如 上所述),然后檢測與第一場景中所檢測的指令對應(yīng)的數(shù)據(jù)值的范圍 (例如與在數(shù)據(jù)值的某個范圍內(nèi)的存儲指令對應(yīng)的數(shù)據(jù))。
在一個實施 例中,如果滿足第二場景,則讓步事件可發(fā)生,在其中響應(yīng)于滿足的 兩個場景而調(diào)用處理程序來執(zhí)4亍某些操作。在上述實例中,第一場景 初始化為檢測在地址范圍內(nèi)的存儲指令的目標(biāo)地址,以及對其響應(yīng)而 設(shè)置標(biāo)志,第二場景初始化為監(jiān)控,以便確定與存儲指令對應(yīng)的存儲 數(shù)據(jù)是否在值的某個范圍內(nèi)或者等于特定值,在這種情況中,將發(fā)生 調(diào)用處理程序的類似故障的讓步。在其它實施例中,其它場景可初始 化為檢測與 一 系列或具體存儲位置對應(yīng)的存儲器存取操作如存儲器 裝入操作的其它發(fā)生。這樣,至少一個實施例可用來執(zhí)行存儲器區(qū)域 過濾。
圖2是流程圖,說明與本發(fā)明至少一個實施例對應(yīng)的操作。在操 作201,監(jiān)控第一標(biāo)記的發(fā)生。如果沒有檢測到第一標(biāo)記,則程序操 作繼續(xù)進(jìn)行。如果檢測到第一標(biāo)記,則在操作205,確定隨后存儲器 存取操作是否對應(yīng)于所關(guān)注的存儲位置或存儲位置范圍。如果是,則 在操作210,設(shè)置標(biāo)志以指示第一場景的滿足。在一個實施例中,隨后存儲器存取操作可以是具有所關(guān)注的目標(biāo)地址或某個目標(biāo)地址范 圍的存儲指令。在其它實施例中,隨后存儲器存取操作可以是與某個 裝入地址或裝入地址范圍對應(yīng)的裝入指令。如杲檢測到第一標(biāo)記,且 如果從第一場景設(shè)置了該標(biāo)志,并且與存儲器存取操作對應(yīng)的數(shù)據(jù)等
于某個值,或者落在數(shù)據(jù)值的某個范圍內(nèi),且如果在操作215沒有取 決于前一場景結(jié)果的其它場景,則在操作220發(fā)生類似故障的讓步, 并在操作225調(diào)用處理程序。如果沒有從第一場景設(shè)置標(biāo)志,或者如 果與存儲器存取對應(yīng)的數(shù)據(jù)值不屬于某個值或范圍,則沒有發(fā)生讓步 事件,并且程序操作繼續(xù)進(jìn)行。
本文所述的實施例可適用于各種存儲器存取,包括由裝入或存儲 操作對存儲器進(jìn)行的存取、由指向存儲器各種區(qū)域的指令指針進(jìn)行的 存取、以及對與代碼分支目標(biāo)對應(yīng)的存儲器區(qū)域的存取等。此外,至 少一個實施例可用來過濾由指令、指令指針或分支目標(biāo)所存取的地址 和/或數(shù)據(jù)值范圍。
如果在上述實例中發(fā)生類似故障的讓步,則可調(diào)用處理程序來執(zhí) 行任何數(shù)量的操作。例如,在一個實施例中,可響應(yīng)于上述場景被滿 足而執(zhí)行各種簡表建立操作,使得可實時修改引起讓步事件的程序。 在一個實施例中,響應(yīng)于一個或多個存儲器存取操作的發(fā)生的一個或 多個場景的滿足可調(diào)用程序來防止各種存儲區(qū)由未預(yù)期存取該存儲 區(qū)的程序或指令存取。
例如,在一個實施例中,以上所述的存儲器區(qū)域過濾技術(shù)可用來 檢測軟件程序線程何時嘗試存取在其堆初級部分、?;蚱渌鎯^(qū)中 沒有分配的對象,并且防止發(fā)生將來的存取。此外,如果指針可能不 是在棧外公布的,則一個實施例允許在棧上推測地分配對象。這可節(jié) 省高速緩存顛簸,同時節(jié)省棧存取時間。或者,在一個實施例中,允 許對象被存儲在線程特定的堆初級部分,使得可保持指向初級部分的 指針,并且對初級部分執(zhí)行垃圾收集,而不考慮在線程的堆的其它區(qū) 域中執(zhí)行垃圾收集。此外,例如,如果對與特定線程或多個線程對應(yīng)的初級部分進(jìn)行存取,則至少一個實施例可觸發(fā)場景來處理事件,從 而導(dǎo)致類似故障的讓步。
在一個實施例中,標(biāo)記指令可檢測對存儲器的存取,然后觸發(fā)一 個可定義將引起類似故障讓步的一個或多個觸發(fā)事件的場景。在至少 一個實施例中,場景實際上可包括在邏輯上按照某種觸發(fā)功能連接以 形成復(fù)合場景的多個場景。但是在其它實施例中,在一個或多個場景 中定義的一個或多個觸發(fā)事件可在標(biāo)記指令或在邏輯上鏈接在一起 的標(biāo)記指令組合中定義,使得減少標(biāo)記(或復(fù)合標(biāo)記)觸發(fā)的場景數(shù)。
在一些實施例中,除了僅對存儲器區(qū)域存取之外,標(biāo)記指令還可 用來定義其它參數(shù)。例如,在一個實施例中, 一個標(biāo)記可控制在其中由另一個標(biāo)記監(jiān)控對存儲器區(qū)域的存取的時間窗。例如,第一標(biāo)記可設(shè)置向另一個標(biāo)記指示它將開始監(jiān)控對存儲器區(qū)域的存取的標(biāo)志。第一標(biāo)記稍后可清除該標(biāo)志,以向另一個標(biāo)記指示停止監(jiān)控對存儲器區(qū)域的存取。
在一些實施例中,作為對存儲器區(qū)域的補充或替代,標(biāo)記還可定義要監(jiān)控的輸入/輸出(I/0)范圍。在一個實施例中,按照地址范圍來監(jiān)控1/0,而在其它實施例中,標(biāo)記可按照各對應(yīng)于不同I/O的位的某種組合(例如"位圖")來監(jiān)控對I/0范圍的存取。
有利的是,本發(fā)明的一個或多個實施例可允許用戶程序,例如在操作系統(tǒng)中運行的軟件應(yīng)用程序?qū)μ幚砥髻Y源的存取,至少抽象地在傳統(tǒng)上根據(jù)特權(quán)級僅對os核心可用的方式進(jìn)行。例如,在一個實施例中,用戶程序可采用標(biāo)記來監(jiān)控對某個區(qū)域的存儲器存取,并且對其進(jìn)行響應(yīng)而執(zhí)行影響高特權(quán)處理資源諸如一種處理體系結(jié)構(gòu)中的"環(huán)0"上的特權(quán)資源的動作。其它處理體系結(jié)構(gòu)可定義資源特權(quán)的不同等級,并且可利用實施例來禁止或允許用戶程序存取這些資源。
在其中的數(shù)據(jù)可在并發(fā)線程之間共享的某些應(yīng)用中,必須增加代碼和附加數(shù)據(jù)結(jié)構(gòu),以便增強對數(shù)據(jù)對象的互斥存取,使得一次只有一個線程存取給定的數(shù)據(jù)對象。這些鎖定機構(gòu)產(chǎn)生性能開銷。本文所
述的技術(shù)允許數(shù)據(jù)對象分組成僅由一個線程存取的存儲器區(qū)域,并且 它們監(jiān)控從其它線程的存取,以便確保互斥。
在一個實施例中,可按照本文所述的技術(shù)來過濾存儲器區(qū)域,以 便阻止對受保護(hù)或"未鎖定"數(shù)據(jù)的存取。例如,可為特定線程指定 存儲器中存儲的某些數(shù)據(jù),而其它數(shù)據(jù)可由多個不同的線程使用。相應(yīng)地,本發(fā)明的至少 一個實施例可^r測對僅為特定線程而分配的數(shù)據(jù) 的存取,并阻止由未授權(quán)的線程對該"鎖定"數(shù)據(jù)的存取。相反,本 發(fā)明的實施例可允許多個線程存取可能不是特定線程獨占的或者"未 鎖定"的數(shù)據(jù)。在這個實例中,當(dāng)對象存儲在指定為"線程局部"存 儲空間的存儲空間中時,可允許線程使用代碼的無鎖定形式,而在某 些環(huán)境下,僅可允許線程使用代碼的鎖定形式來存取另一個存儲空間 中的數(shù)據(jù)。
本發(fā)明的實施例也可用于其它應(yīng)用。例如在安全領(lǐng)域,至少一個 實施例可用來監(jiān)控存儲器存取,并調(diào)用處理程序來允許用戶實時在軟 件中調(diào)節(jié)各種安全參數(shù)。具體來說,至少一個實施例可用來防止置信
的或機械檢驗的代碼被相同進(jìn)程中的流氓代理修改,防止專用數(shù)據(jù)結(jié) 構(gòu)是相同進(jìn)程中的未授權(quán)代理可見的,防止數(shù)據(jù)結(jié)構(gòu)被相同進(jìn)程中的 未授權(quán)代理修改,或者使授權(quán)代碼能夠存取受保護(hù)的結(jié)構(gòu),而無需任 何性能開銷。
在一個實施例中,對諸如各種編程語言認(rèn)可的那些代碼對象的存 取可被監(jiān)控和檢測,特別是在存取嘗試對于存取所對應(yīng)的外部的堆或 棧裝入或存儲數(shù)據(jù)時。例如,第一通道可用確定對象裝入的地址(x) 是否既不在分配給對象裝入的全局堆范圍(rl)內(nèi)也不在分配給對象裝 入的線程特定的堆范圍(r2)內(nèi)的場景來編程。為了觸發(fā)場景以檢查對 象裝入的地址,可在程序命令中在對象裝入之前使用第一標(biāo)記指令。
在對象存儲操作的情況中,第二標(biāo)記可用來觸發(fā)編程到第二通道 中的場景,以確定對象存儲的地址(y)是否不對應(yīng)于r2,但對象存儲 的數(shù)據(jù)(z)仍存儲到r2。如果是,則可假定對象存儲正嘗試在它所對應(yīng)的局部堆之外公布數(shù)據(jù)。
圖7說明根據(jù)一個實施例的流程圖。如圖7所示,在操作700, 對要監(jiān)控的條件進(jìn)行編程。在4喿作705,可執(zhí)行程序指令。在操作 710,可對事件監(jiān)控度量或微體系結(jié)構(gòu)條件。如圖7所示,如果沒有 觸發(fā)發(fā)生,則方法可在操作705重新開始。否則,在操作715(例如, 如果觸發(fā)了),可中斷處理以調(diào)節(jié)引起所檢測條件的處理。而且,在 操作715,控制流程可轉(zhuǎn)移到不同的程序部分。
圖8是流程圖,說明在一個實施例中使用的操作,其中監(jiān)控對象 裝入和對象存儲,以確定它們是否已經(jīng)嘗試存取其對應(yīng)軟件堆外部的 存儲器區(qū)域。在操作801,如果檢測到第一標(biāo)記,則在操作805,第 一場景測試隨后對象裝入的地址(x)是否既不在分配給對象裝入的全 局堆范圍(rl)內(nèi),也不在線程特定的堆范圍(r2)內(nèi)。如果是,則在操作 810,可發(fā)生讓步事件,以調(diào)用處理程序來重新發(fā)布和/或取消對象裝 入。如果不是,則在操作815,確定是否檢測到第二標(biāo)記,如果是, 則在操作820,確定對象存儲的地址(y)是否不對應(yīng)于r2,但對象存儲 的數(shù)據(jù)(z)仍存儲到r2。如果是,則在操作825,發(fā)生讓步事件,以便 調(diào)用處理程序來重新發(fā)布和/或取消對象存儲。
除了可用于被管理的運行時間環(huán)境的以上所述應(yīng)用之外,本發(fā)明 的實施例還可用于與被管理的運行時間環(huán)境無關(guān)的其它方式。例如, 在一個實施例中,以上所述的存儲器區(qū)域過濾技術(shù)可用來檢測和恢復(fù) 對線程特定對象的存取,或者用來實現(xiàn)存儲器區(qū)域或多種類型存儲器 之間的相干協(xié)議。許多其它應(yīng)用可利用本文所述的實施例。
圖3說明根據(jù)一個實施例監(jiān)控處理資源中發(fā)生的事件以及采用 所監(jiān)控事件來改進(jìn)或優(yōu)化在體系結(jié)構(gòu)中運行的用戶級軟件程序的系 統(tǒng)。具體來說,圖3說明在其中可開發(fā)用戶級軟件程序如應(yīng)用程序的 被管理的運行時間環(huán)境301。在其它實施例中,環(huán)境301可以是未管 理的運行時間環(huán)境。在一個實施例中,由CPU 320執(zhí)行軟件程序, CPU 320可包括多個處理資源,例如多核處理器和/或多個處理器。通道315可經(jīng)由簡表建立應(yīng)用編程接口 (API) 310編程為監(jiān)控在才企測 CPU的某些性能特性如代碼熱點時有用的事件和場景。可由邏輯或 軟件307通過解釋編程到通道中的事件和場景的結(jié)果來^r測性能特 性如代碼熱點。此外,還可由纟企測代碼/邏輯307來解釋編程到通道 中的讓步動作,以及對其進(jìn)行響應(yīng)而調(diào)用適當(dāng)?shù)奶幚沓绦颉?br>
由檢測邏輯/代碼307解釋和檢測的性能信息可由簡表生成代碼 或邏輯303用來生成所監(jiān)控特性的簡表,其然后可由簡表方法生成代 碼或邏輯305轉(zhuǎn)換成特定動作或方法,以便改進(jìn)或優(yōu)化被管理的運行 時間環(huán)境中的用戶的代碼如應(yīng)用程序。此外,在一個實施例中,可實 時地并按線程進(jìn)行對用戶代碼的改進(jìn),而具有極少或者沒有由圖3的 性能監(jiān)控體系結(jié)構(gòu)所施加的檢測開銷。在其它實施例中,其它級或功 能單元可用來生成檢測CPU中的性能信息以及對其進(jìn)行響應(yīng)而優(yōu)化 用戶的代碼所需的信息。
圖4說明在其中可使用本發(fā)明一個實施例的前端總線(FSB)計算 機系統(tǒng)。處理器405從一級(L1)高速緩沖存儲器410和主存儲器415 中存取數(shù)據(jù)。在本發(fā)明的其它實施例中,高速緩沖存儲器可以是二級 (L2)高速緩存,或者是計算機系統(tǒng)存儲器分級結(jié)構(gòu)中的其它存儲器。 此外,在一些實施例中,圖4的計算機系統(tǒng)可包含L1高速緩存以及 L2高速緩存。
圖4的處理器中所示的是才兒器狀態(tài)的存儲區(qū)406。在一個實施例 中,存儲區(qū)可以是一組寄存器,而在其它實施例中,存儲區(qū)可以是其 它存儲器結(jié)構(gòu)。圖4中還示出的是根據(jù)一個實施例用于保存區(qū)段的存 儲區(qū)407。在其它實施例中,保存區(qū)段可位于其它裝置或存儲器結(jié)構(gòu) 中。處理器可具有任何數(shù)量的處理核。但是,本發(fā)明的其它實施例可 在系統(tǒng)內(nèi)的其它裝置如獨立的總線代理中實現(xiàn),或者通過硬件、軟件 或它們的某種組合分布于整個系統(tǒng)。
主存儲器可通過各種存儲源來實現(xiàn),例如動態(tài)隨機存取存儲器 (DRAM)、硬盤驅(qū)動器(HDD) 420或者經(jīng)由網(wǎng)絡(luò)接口 430遠(yuǎn)離計算機
系統(tǒng)定位的包含各種存儲裝置和技術(shù)的存儲源。高速緩沖存儲器可定位在處理器內(nèi)或者在處理器附近,例如在處理器的局部總線407上。
此外,高速緩沖存儲器可包含較快的存儲單元如六晶體管(6T)單 元,或者近似相等或更快存取速度的其它存儲單元。圖4的計算機系 統(tǒng)可以是例如微處理器等總線代理的點對點(PtP)網(wǎng)絡(luò),它們經(jīng)由專用 于PtP網(wǎng)絡(luò)上的各代理的總線信號進(jìn)行通信。圖5說明以點對點(PtP) 配置來設(shè)置的計算機系統(tǒng)。具體來說,圖5說明其中處理器、存儲器 和輸入/輸出裝置通過多個點對點接口互連的系統(tǒng)。
圖5的系統(tǒng)還可包括若干處理器,為了簡潔起見僅示出其中兩個 處理器570、 580。處理器570、 580各可包括與存儲器22、 24連接 的局部存儲器控制器集線器(MCH)572、 582。處理器570、 580可采 用PtP接口電路578、 588經(jīng)由點對點(PtP)接口 550來交換數(shù)據(jù)。處 理器570、 580各可采用點對點接口電路576、 594、 586、 598經(jīng)由各 個PtP接口 552、 554與芯片組590交換數(shù)據(jù)。芯片組590還可經(jīng)由 高性能圖形接口 53 9與高性能圖形電路53 8交換數(shù)據(jù)。本發(fā)明的實施 例可設(shè)置在具有任何數(shù)量的處理核的任何處理器中,或者設(shè)置在圖5 的PtP總線代理的每個中。
但是,本發(fā)明的其它實施例可存在于圖5系統(tǒng)內(nèi)的其它電路、邏 輯單元或裝置中。此外,本發(fā)明的其它實施例可分布于圖5所示的若 干電路、邏輯單元或裝置上??稍趶膭?chuàng)建到模擬到制造的各種階段中進(jìn)行設(shè)計。表示設(shè)計的數(shù)據(jù)可 通過多種方式來表示設(shè)計。首先,如在模擬中可用的那樣,硬件可采 用硬件描述語言或者另一種功能描述語言來表示。作為補充或替代, 采用邏輯和/或晶體管門的電路級模型可在設(shè)計過程的某些階段產(chǎn) 生。此外,在某個階段,大部分設(shè)計達(dá)到在其中它們可用表示各種裝 置的物理布局的數(shù)據(jù)來建模的級別。在使用傳統(tǒng)半導(dǎo)體制造技術(shù)的情 況中,表示裝置布局模型的數(shù)據(jù)可以是指定在用于生產(chǎn)集成電路的掩
模的不同掩模層上的各種特征存在還是不存在的數(shù)據(jù)。
在設(shè)計的任何表示中,數(shù)椐可存儲在任何形式的機器可讀介質(zhì) 中。經(jīng)調(diào)制或者另外生成以便傳送這種信息的光波或電波、存儲器或 者磁或光存儲介質(zhì)諸如盤可以是機器可讀介質(zhì)。這些介質(zhì)中的任一個 可"攜帶"或"指示"該設(shè)計,或者在本發(fā)明的實施例中使用的其它 信息,如差錯恢復(fù)例程中的指令。當(dāng)傳送指示或攜帶信息的電載波以 便執(zhí)行電信號的復(fù)制、緩沖或重傳時,制作新的副本。因此,通信提 供商或網(wǎng)絡(luò)提供商的動作可以是制作實施本發(fā)明技術(shù)的制品諸如載 波的副本。
因此,公開了用于操縱存儲器存取如裝入或存儲的技術(shù)。雖然在 描述了并在附圖中示出了某些實施例,但要理解,這些實施例只是對 廣泛發(fā)明的說明而不是限制,以及本發(fā)明不限于所示及所述的具體構(gòu) 造和配置,因為本領(lǐng)域的技術(shù)人員在研究本公開之后可想到其它各種 修改。在其中增長迅速并且不易預(yù)見其它進(jìn)步的例如這樣的技術(shù)領(lǐng)域 中,通過實現(xiàn)技術(shù)進(jìn)步進(jìn)行促進(jìn),所公開的實施例在配置和細(xì)節(jié)上可 易于修改,而不背離本公開的原理或所附權(quán)利要求書的范圍。
本發(fā)明的 一個或多個實施例的各方面可在可使用本發(fā)明 一個或 多個實施例的處理器或計算機系統(tǒng)的廣告中描述、論述或引用。這類 廣告可包括但不限于新聞紙、雜志、廣告牌或其它報紙或有形媒體。 具體來說,本發(fā)明一個或多個實施例的各種方面可經(jīng)由網(wǎng)站、"彈出"
廣告或其它基于WEB的媒體在互聯(lián)網(wǎng)上做廣告,而不管包含生成網(wǎng) 站或彈出廣告的程序的服務(wù)器是位于美國還是其領(lǐng)土。
權(quán)利要求
1.一種裝置,包括第一邏輯,確定存儲器存取操作是否存取一個或多個存儲器區(qū)域以及對其進(jìn)行響應(yīng)而引起讓步事件,所述讓步事件響應(yīng)于存取所述一個或多個存儲器區(qū)域的所述存儲器存取操作而調(diào)用中斷處理程序來執(zhí)行一個或多個功能。
2. 如權(quán)利要求1所述的裝置,其中所述存儲器存取操作在程序命 令中由標(biāo)記指令領(lǐng)先。
3. 如權(quán).利要求2所述的裝置,其中所述標(biāo)記指令向第一邏輯指示 對于存取所述一個或多個存儲器區(qū)域的所述操作監(jiān)控在程序命令中 所述標(biāo)記之后的指令。
4. 如權(quán)利要求3所述的裝置,其中所述標(biāo)記指令包括沒有對應(yīng)的 裝入目的地址的裝入操作。
5. 如權(quán)利要求1所述的裝置,還包括確定與所述存儲器存取操作 對應(yīng)的數(shù)據(jù)是否在值的范圍內(nèi)的第二邏輯。
6. 如權(quán)利要求5所述的裝置,其中第一邏輯設(shè)置一個標(biāo)志,以向 第二邏輯指示第二邏輯是否確定與所述存儲器存取操作對應(yīng)的所述 數(shù)據(jù)是否在值的范圍內(nèi)。
7. 如權(quán)利要求6所述的裝置,其中所述讓步事件包括類似故障的 讓步操作。
8. 如權(quán)利要求7所述的裝置,其中第一和第二邏輯包括一個或多 個可編程通道,以響應(yīng)檢測到標(biāo)記指令而執(zhí)行一個或多個場景。
9. 一種系統(tǒng),包括存儲器,存儲標(biāo)記指令;處理器,對于對一個或多個地址范圍的存取,監(jiān)控在程序 命令中所述標(biāo)記指令之后的指令。
10. 如權(quán)利要求9所述的系統(tǒng),其中所述存取包括存儲器裝入或 存儲地址。
11. 如權(quán)利要求9所述的系統(tǒng),其中所述存取包括指向棧的指令 指針。
12. 如權(quán)利要求9所述的系統(tǒng),其中所述存取包括分支目標(biāo)地址。
13. 如權(quán)利要求10所述的系統(tǒng),其中所述處理器對于數(shù)據(jù)范圍 內(nèi)的數(shù)據(jù)監(jiān)控對所述一個或多個地址范圍的存取。
14. 如權(quán)利要求13所述的系統(tǒng),其中所述處理器包括用多個場 景編程以監(jiān)控對所述一個或多個地址范圍的存取的多個通道。
15. 如權(quán)利要求14所述的系統(tǒng),其中所迷處理器包括與所述多 個場景對應(yīng)以指示對所述一個或多個地址范圍的存取是否引起讓步 事件的多個標(biāo)志存儲區(qū)。
16. 如權(quán)利要求15所述的系統(tǒng),其中所述多個標(biāo)志存儲區(qū)包括 從所述多個場景的第一場景向所述多個場景的第二場景指示第二場 景是否監(jiān)控對所述一個或多個地址范圍的存取的標(biāo)志。
17. 如權(quán)利要求9所述的系統(tǒng),其中所述一個或多個地址范圍包 括一個或多個線性地址范圍。
18. —種方法,包括將一個或多個場景編程到處理器的邏輯通道中;對于第一標(biāo)記監(jiān)控程序以^更觸發(fā)所述一個或多個場景; 響應(yīng)檢測到第一標(biāo)記而執(zhí)行所述一個或多個場景; 如果滿足所述一個或多個場景,則執(zhí)行讓步事件, 其中所述一個或多個場景包括確定是否已對第 一地址范圍進(jìn)行 了存取。
19. 如權(quán)利要求18所述的方法,其中所述讓步事件使處理例程 被調(diào)用。
20. 如權(quán)利要求19所述的方法,其中所述處理例程使軟件程序 被修改。
21. 如權(quán)利要求19所述的方法,其中所述處理例程使軟件程序 的簡表被生成,所述簡表指示所述軟件程序的各種性能方面。
22. 如權(quán)利要求21所述的方法,其中所述軟件程序運行在被管 理的運行時間環(huán)境中。
23. 如權(quán)利要求19所述的方法,其中所述處理例程阻止第一線 程存取分配給第二線程的存儲器區(qū)域。
24. 如權(quán)利要求23所述的方法,其中所述存儲器區(qū)域包括軟件棧。
25. 如權(quán)利要求23所述的方法,其中所述存儲器區(qū)域包括軟件堆。
26. —種在其上存儲有指令集的機器可讀介質(zhì),所述指令集在由 機器執(zhí)行時,使所述機器執(zhí)行包括以下步驟的方法監(jiān)控指令線程對存儲器區(qū)域的存?。话凑枕憫?yīng)監(jiān)控對所述存儲器區(qū)域的存取而生成的信息簡表來修 改所述指令線程的性能。
27. 如權(quán)利要求26所述的才幾器可讀介質(zhì),其中所述監(jiān)控包括執(zhí) 行多個場景。
28. 如權(quán)利要求27所述的機器可讀介質(zhì),其中僅當(dāng)執(zhí)行所述指 令線程中的標(biāo)記指令時,才執(zhí)行所述多個場景。
29. 如權(quán)利要求28所述的機器可讀介質(zhì),還包括在其中修改所 述指令線程的被管理的運行時間環(huán)境。
30. 如權(quán)利要求28所述的坤幾器可讀介質(zhì),還包括通過其與處理 資源通信的應(yīng)用程序接口 (API)。
全文摘要
公開一種執(zhí)行存儲器引用過濾的技術(shù)。一種過濾存儲器區(qū)域的技術(shù)。更具體來說,本發(fā)明的至少一個實施例涉及檢測和過濾計算機系統(tǒng)中的存取或者與存儲器存取有關(guān)的信息的技術(shù)。本發(fā)明提供一種裝置,包括第一邏輯,確定存儲器存取操作是否存取一個或多個存儲器區(qū)域以及對其進(jìn)行響應(yīng)而引起讓步事件,該讓步事件響應(yīng)于存取一個或多個存儲器區(qū)域的存儲器存取操作而調(diào)用中斷處理程序來執(zhí)行一個或多個功能。
文檔編號G06F9/48GK101174223SQ200710146938
公開日2008年5月7日 申請日期2007年8月21日 優(yōu)先權(quán)日2006年8月21日
發(fā)明者C·J·紐博恩, K·希夫 申請人:英特爾公司