專(zhuān)利名稱(chēng):用于在多個(gè)時(shí)鐘域之間提升確定性的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例總體上涉及信息處理領(lǐng)域,并且更具體地,涉及計(jì)算 機(jī)系統(tǒng)和微處理器內(nèi)的時(shí)鐘控制這一領(lǐng)域。
背景技術(shù):
隨著更多的功能被集成到現(xiàn)代微處理器中,需要以不同的時(shí)鐘頻率、 相位等來(lái)對(duì)處理器內(nèi)的各個(gè)功能單元進(jìn)行操作("時(shí)鐘控制")。隨著在同 一處理器內(nèi)具有了更多的時(shí)鐘域,為了各種目的(諸如測(cè)試)來(lái)提升確定性
也變得更加復(fù)雜。 一些測(cè)試技術(shù)可以使用周期性系統(tǒng)管理中斷(PSMI)來(lái)一 步一步地執(zhí)行運(yùn)行在處理器上的程序、并且在程序中的各個(gè)點(diǎn)返回處理的 結(jié)果。
PSMI是一種調(diào)試方法,通過(guò)該方法,在系統(tǒng)管理中斷(或者叫SMI) 周期性地產(chǎn)生(頻率上快到足以總能確保兩個(gè)連續(xù)的中斷出現(xiàn)在邏輯分析 器緩沖器中)的同時(shí),邏輯分析器會(huì)在循環(huán)緩沖器中跟蹤外部總線的活動(dòng)。 PSMI處理機(jī)將內(nèi)部處理器狀態(tài)保存到存儲(chǔ)器中,以使得之后能夠在仿真 器或處理器的軟件模型上重新構(gòu)建該處理器的大部分內(nèi)部狀態(tài),并且使用 跟蹤信息來(lái)使程序缺陷重現(xiàn)。
典型地,PSMI依賴(lài)于處理資源(例如執(zhí)行資源)與處理器內(nèi)的其它事件 進(jìn)行同步,以便得到由處理器所返回的確定性結(jié)果。隨著由于例如更多的 功能被集成到同一處理器內(nèi)而導(dǎo)致時(shí)鐘域的數(shù)目增加,PSMI技術(shù)的使用 也變得更加困難。
在附圖中,以示例而非限制的方式示出了本發(fā)明的實(shí)施例,其中相似
的參考數(shù)字表示類(lèi)似的元件,并且其中
圖1示出了其中可以使用本發(fā)明的至少一個(gè)實(shí)施例的微處理器的方框
5圖2示出了其中可以使用本發(fā)明的至少一個(gè)實(shí)施例的共享總線計(jì)算機(jī) 系統(tǒng)的方框圖3示出了其中可以使用本發(fā)明的至少一個(gè)實(shí)施例的點(diǎn)對(duì)點(diǎn)互連計(jì)算 機(jī)系統(tǒng)的方框圖4示出了其中可以實(shí)現(xiàn)本發(fā)明的至少一個(gè)實(shí)施例的邏輯的方框圖; 圖5示出了可以用于執(zhí)行本發(fā)明的至少一個(gè)實(shí)施例的操作的流程圖。
具體實(shí)施例方式
圖l示出了一個(gè)微處理器,可以在該微處理器中使用本發(fā)明的至少一 個(gè)實(shí)施例。特別地,圖1示出了微處理器100,其具有一個(gè)或多個(gè)處理器 核心105和110,每個(gè)核心分別具有至少一個(gè)非CPU功能單元107和113。 圖1還示出了至少一個(gè)其它非CPU功能單元115,其可以執(zhí)行其它不由功 能單元107和113所執(zhí)行的操作。在一個(gè)實(shí)施例中,功能單元107、 113 和115可以包括各種功能,諸如圖形處理、存儲(chǔ)器控制以及外設(shè)控制(例如 音頻、視頻、磁盤(pán)控制、數(shù)字信號(hào)處理等)。在一些實(shí)施例中,微處理器 100還可以包括其它未在圖1中示出的邏輯,例如I/0控制。在一個(gè)實(shí)施 例中,多處理器系統(tǒng)中的每個(gè)微處理器或多核心處理器中的每個(gè)處理器核 心可以包括邏輯119或與之相關(guān),該邏輯用于支持根據(jù)至少一個(gè)實(shí)施例的、 用以在具有多個(gè)時(shí)鐘域的處理器中提升確定性(to promote determinism)的 技術(shù)。根據(jù)一個(gè)實(shí)施例,所述邏輯可以包括硬件電路,用以將一個(gè)或多個(gè) 執(zhí)行資源與處理器內(nèi)的一個(gè)或多個(gè)時(shí)鐘或事件進(jìn)行同步。在另一些實(shí)施例 中,邏輯119可以包括軟件,用以幫助提升具有多個(gè)時(shí)鐘域的處理器內(nèi)的 執(zhí)行資源的確定性。在另一些實(shí)施例中,可以使用硬件和軟件的組合來(lái)執(zhí) 行本文描述的確定性提升技術(shù)。
在一個(gè)實(shí)施例中,可以在集成電路之內(nèi)或之外使用邏輯,以將具有多 個(gè)時(shí)鐘域的處理器(這是因?yàn)樵撎幚砥髦芯哂卸喾N功能)內(nèi)的執(zhí)行資源置于 確定性狀態(tài),以便在諸如應(yīng)用、操作系統(tǒng)、BIOS、固件等這樣的軟件程序 的改進(jìn)、調(diào)試或優(yōu)化過(guò)程中起幫助作用。例如,在一個(gè)實(shí)施例中,邏輯119 包括通用時(shí)鐘脈沖發(fā)生器(UCPG),其用于基于來(lái)自具有多個(gè)不同頻率或相位的多個(gè)不同時(shí)鐘的公共時(shí)鐘沿或事件來(lái)產(chǎn)生一個(gè)公共時(shí)鐘脈沖。在一個(gè)
實(shí)施例中,UCPG的輸出用于改變計(jì)數(shù)器的狀態(tài),當(dāng)該計(jì)數(shù)器等于或超過(guò) 某一臨界計(jì)數(shù)值時(shí),該計(jì)數(shù)器使得執(zhí)行資源開(kāi)始處理與將被調(diào)試或優(yōu)化的 程序相關(guān)的指令,以便將執(zhí)行資源提升到如UCPG信號(hào)所示的與處理器內(nèi) 的各個(gè)時(shí)鐘有關(guān)的確定性狀態(tài)。
例如,在一個(gè)實(shí)施例中,計(jì)數(shù)器被初始化為初始值,并且執(zhí)行單元被 初始化為同步地暫停(halt)。隨著來(lái)自UCPG的信號(hào)沿使得該計(jì)數(shù)器遞減(或 者在一個(gè)實(shí)施例中為遞增),該計(jì)數(shù)器達(dá)到某一臨界值,例如"0"值,這 使得對(duì)該執(zhí)行單元產(chǎn)生中斷。然后,該執(zhí)行單元開(kāi)始在與處理器中的各個(gè) 時(shí)鐘(在UCPG信號(hào)的產(chǎn)生中起作用)有關(guān)的確定性點(diǎn)上執(zhí)行指令。由于在 與處理器內(nèi)的各個(gè)時(shí)鐘域有關(guān)的確定性狀態(tài)中進(jìn)行執(zhí)行,可以以一種更為 可靠的方式使用諸如PSMI這樣的技術(shù)來(lái)對(duì)處理代碼進(jìn)行調(diào)試或優(yōu)化。在 一個(gè)實(shí)施例中,可以在具有多個(gè)處理器核心、多個(gè)不同功能(例如圖形、存 儲(chǔ)器控制、各種外設(shè)控制)的處理器內(nèi)(例如在"片上系統(tǒng)"處理器內(nèi))使用 本文描述的技術(shù)。本文公開(kāi)的技術(shù)還可被用于這樣的計(jì)算機(jī)系統(tǒng)中,其中 多個(gè)功能分布在分離的集成電路之中。
例如,圖2示出了前端總線(FSB)計(jì)算機(jī)系統(tǒng),在該系統(tǒng)中可以使用本 發(fā)明的一個(gè)實(shí)施例。任意處理器201、 205、 210或215可以從處理器核心 223、 227、 233、 237、 243、 247、 253、 257中的一個(gè)處理器核心之內(nèi)的或 與之有關(guān)的任意本地一級(jí)(U)高速緩沖存儲(chǔ)器220、 225、 230、 235、 240、 245、 250、 255中訪問(wèn)信息。此外,任意處理器201、 205、 210或215可 以從共享二級(jí)(L2)高速緩存203、 207、 213、 217中的任何一個(gè)中或者經(jīng)由 芯片組265從系統(tǒng)存儲(chǔ)器260中訪問(wèn)信息。圖2中的一個(gè)或多個(gè)處理器可 以包括邏輯219或與之有關(guān),該邏輯用于在多個(gè)時(shí)鐘域之間提升處理的確 定性。
除了圖2中所示出的FSB計(jì)算機(jī)系統(tǒng)之外,可以結(jié)合本發(fā)明的各種實(shí) 施例來(lái)使用其它系統(tǒng)配置,包括點(diǎn)對(duì)點(diǎn)(P2P)互連系統(tǒng)和環(huán)形互連系統(tǒng)。例 如,圖3的P2P系統(tǒng)可以包括多個(gè)處理器,示例中僅示出了兩個(gè)處理器370、 380。處理器370、 380各自可以包括本地存儲(chǔ)器控制器中心(MCH) 372、 382以便與存儲(chǔ)器32、 34連接。處理器370、 380可以使用PtP接口電路378、 388經(jīng)由點(diǎn)對(duì)點(diǎn)(PtP)接口 350來(lái)交換數(shù)據(jù)。處理器370、 380各自可 以使用點(diǎn)對(duì)點(diǎn)接口電路376、 394、 386、 398經(jīng)由單獨(dú)的PtP接口 352、 354 來(lái)與芯片組390交換數(shù)據(jù)。芯片組390也可以經(jīng)由高性能圖形接口 339與 高性能圖形電路338交換數(shù)據(jù)。本發(fā)明的實(shí)施例可以位于具有任意數(shù)目的 處理核心的任意處理器之內(nèi),或者位于圖3的每個(gè)PtP總線代理之內(nèi)。在 一個(gè)實(shí)施例中,任意處理器核心可以包括本地高速緩沖存儲(chǔ)器(未示出)或 與之有關(guān)。此外,共享高速緩存(未示出)可以被包括在兩個(gè)處理器中每一 個(gè)處理器的外部,但仍經(jīng)由P2P互連與處理器相連接,這樣,如果處理器 進(jìn)入低功耗模式,則一個(gè)或兩個(gè)處理器的本地高速緩存信息可以被存儲(chǔ)在 共享高速緩存內(nèi)。圖3中的一個(gè)或多個(gè)處理器或核心可以包括用于在系統(tǒng) 中的處理器或其它集成電路之內(nèi)對(duì)執(zhí)行的確定性進(jìn)行提升的邏輯或與之有 關(guān)。所述邏輯可以包括存儲(chǔ)裝置或與之有關(guān),例如,可以包括用于將執(zhí)行 資源置于確定性狀態(tài)的UCPG和一個(gè)或多個(gè)計(jì)數(shù)器,如本文所描述的那樣, 以便使用諸如PSMI這樣的技術(shù)來(lái)幫助調(diào)試或優(yōu)化程序。
圖4示出了用于執(zhí)行本發(fā)明的至少一個(gè)實(shí)施例的邏輯。在一個(gè)實(shí)施例 中,邏輯419包括UCPG 401,以便接收具有多個(gè)不同(或相同)頻率和/或 相位的多個(gè)不同時(shí)鐘脈沖403,并且生成其頻率和相位與不同時(shí)鐘脈沖的 公關(guān)狀態(tài)相對(duì)應(yīng)的公共時(shí)鐘脈沖。例如,在一個(gè)實(shí)施例中,計(jì)數(shù)器從非零 值向下計(jì)數(shù)到零。UCPG可以實(shí)現(xiàn)多個(gè)不同的技術(shù),以確保生成一個(gè)信號(hào),
該信號(hào)是與多個(gè)時(shí)鐘信號(hào)(其中每個(gè)時(shí)鐘信號(hào)可能是異相的或具有不同的 頻率)有關(guān)的確定性信號(hào)。在一個(gè)實(shí)施例中,邏輯419還包括計(jì)數(shù)器405,
用于以與來(lái)自UCPG的輸出信號(hào)407相對(duì)應(yīng)的頻率從初始值計(jì)數(shù)到臨界 值。例如,在一個(gè)實(shí)施例中,計(jì)數(shù)器被設(shè)定為非零值并且向下計(jì)數(shù)到臨界 值,例如"O"值,然而在其它實(shí)施例中,該計(jì)數(shù)器被初始化為一個(gè)值,例 如"0",并且向上計(jì)數(shù)到臨界值。在一個(gè)實(shí)施例中,計(jì)數(shù)器405可以是多 個(gè)計(jì)數(shù)器,每個(gè)計(jì)數(shù)器聯(lián)合工作或單獨(dú)工作,用以將一個(gè)或多個(gè)執(zhí)行資源 置于與至少兩個(gè)不同的時(shí)鐘域有關(guān)的確定性狀態(tài)。
當(dāng)計(jì)數(shù)器達(dá)到臨界值時(shí),它可以使至少一個(gè)執(zhí)行單元410被中斷暫停 狀態(tài),并且將該至少一個(gè)執(zhí)行單元置于與UCPG時(shí)鐘脈沖有關(guān)的確定性狀 態(tài),從而將該執(zhí)行單元置于與由UCPG時(shí)鐘脈沖所表示的時(shí)鐘有關(guān)的確定性狀態(tài)。通過(guò)使用邏輯419,可以使用諸如PSMI這樣的調(diào)試或優(yōu)化技術(shù), 來(lái)幫助開(kāi)發(fā)或調(diào)試運(yùn)行在具有多個(gè)時(shí)鐘域的處理器內(nèi)的程序。
圖5示出了可以結(jié)合本發(fā)明的至少一個(gè)實(shí)施例來(lái)使用的操作的流程 圖,該操作與應(yīng)用本實(shí)施例的處理器或系統(tǒng)配置無(wú)關(guān)。在操作501,計(jì)數(shù) 器被初始化為初始狀態(tài)。在一個(gè)實(shí)施例中,該初始狀態(tài)表示一個(gè)大于零的 值。在操作505,相應(yīng)的一個(gè)或多個(gè)執(zhí)行單元暫停工作。在操作510,通用 時(shí)鐘脈沖發(fā)生器(UCPG)使得該計(jì)數(shù)器以與UCPG時(shí)鐘脈沖沿同步的方式 遞減。在另一些實(shí)施例中,UCPG脈沖使得該計(jì)數(shù)器的值遞增。當(dāng)在操作 515中該計(jì)數(shù)器達(dá)到臨界值時(shí),在操作520,相應(yīng)的執(zhí)行單元被激活,以便 以一種與由UCPG時(shí)鐘脈沖所代表的時(shí)鐘有關(guān)的確定性方式來(lái)執(zhí)行指令。 由于所述執(zhí)行單元處在同處理器內(nèi)與UCPG時(shí)鐘脈沖同步的各個(gè)時(shí)鐘有關(guān) 的確定性狀態(tài),可以使用諸如PSMI這樣的調(diào)試或優(yōu)化技術(shù)來(lái)幫助調(diào)試或 開(kāi)發(fā)打算運(yùn)行在具有多個(gè)時(shí)鐘域的處理器或系統(tǒng)上的軟件程序。
可以由存儲(chǔ)在機(jī)器可讀介質(zhì)上的代表性數(shù)據(jù)來(lái)實(shí)現(xiàn)至少一個(gè)實(shí)施例的 一個(gè)或多個(gè)方面,該代表性數(shù)據(jù)代表了處理器內(nèi)的多種邏輯,當(dāng)被機(jī)器讀 取時(shí),該代表性數(shù)據(jù)會(huì)使機(jī)器構(gòu)造出用于執(zhí)行本文描述的技術(shù)的邏輯。這 樣的表示(被稱(chēng)為"IP核")可以被存儲(chǔ)在有形的機(jī)器可讀介質(zhì)("磁帶") 上,并且被提供給各種客戶(hù)或生產(chǎn)設(shè)施,以便加載到實(shí)際生產(chǎn)該邏輯或處 理器的制造機(jī)器內(nèi)。
從而,以上描述了一種用于控制微架構(gòu)存儲(chǔ)區(qū)域訪問(wèn)的方法和裝置。 可以理解的是,以上的描述旨在示例,而不是限制。本領(lǐng)域的技術(shù)人員在 閱讀和理解了以上的描述之后,可以很明顯地想到其它許多實(shí)施例。因此, 本發(fā)明的保護(hù)范圍應(yīng)該由所附的權(quán)利要求以及這些權(quán)利要求所涵蓋的等效 物的全部范圍來(lái)決定。
權(quán)利要求
1、一種裝置,包括通用時(shí)鐘脈沖發(fā)生器(UCPG),用于產(chǎn)生時(shí)鐘脈沖,該時(shí)鐘脈沖對(duì)于具有多個(gè)不同頻率和相位的多個(gè)不同時(shí)鐘信號(hào)來(lái)說(shuō)是公共的;計(jì)數(shù)器,用于以與UCPG時(shí)鐘脈沖成比例的頻率從初始值計(jì)數(shù)到臨界值;至少一個(gè)執(zhí)行單元,作為所述計(jì)數(shù)器達(dá)到所述臨界值的結(jié)果,所述至少一個(gè)執(zhí)行單元將被從暫停狀態(tài)激活。
2、 根據(jù)權(quán)利要求l所述的裝置,其中,所述至少一個(gè)執(zhí)行單元會(huì)將所 述計(jì)數(shù)器復(fù)位為所述初始值。
3、 根據(jù)權(quán)利要求l所述的裝置,其中,所述初始值是非零值,并且其 中,所述臨界值是零值。
4、 根據(jù)權(quán)利要求1所述的裝置,其中,所述UCPG時(shí)鐘脈沖的頻率 等于所述計(jì)數(shù)器在計(jì)數(shù)過(guò)程中發(fā)生改變的頻率。
5、 根據(jù)權(quán)利要求l所述的裝置,其中,還包括指令譯碼器、指令調(diào)度 器和指令引退單元。
6、 一種系統(tǒng),包括 存儲(chǔ)器,其包括軟件程序;處理器,用于執(zhí)行所述軟件程序,其中,所述處理器具有至少一個(gè)執(zhí) 行單元以及與多個(gè)功能相對(duì)應(yīng)的多個(gè)時(shí)鐘域;用于在與所述多個(gè)時(shí)鐘域有關(guān)的所述至少一個(gè)執(zhí)行單元中提升確定性 的邏輯,所述邏輯包括計(jì)數(shù)器,所述計(jì)數(shù)器用于以與通用時(shí)鐘脈沖相對(duì)應(yīng) 的速率從初始狀態(tài)計(jì)數(shù)到臨界狀態(tài),其中,所述通用時(shí)鐘脈沖與來(lái)自所述 多個(gè)時(shí)鐘域的多個(gè)時(shí)鐘是同步的。
7、 根據(jù)權(quán)利要求6所述的系統(tǒng),還包括周期性系統(tǒng)管理中斷(PSMI) 邏輯,其用于幫助調(diào)試所述軟件程序,其中,所述PSMI邏輯要根據(jù)所述 確定性提升邏輯而與所述多個(gè)時(shí)鐘域同步。
8、 根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述處理器包括CPU、圖形 引擎、存儲(chǔ)器控制單元以及至少一個(gè)外設(shè)控制單元。
9、 根據(jù)權(quán)利要求8所述的系統(tǒng),還包括多個(gè)處理器。
10、 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述多個(gè)處理器中的至少兩 個(gè)處理器具有多個(gè)時(shí)鐘域。
11、 一種方法,包括 將計(jì)數(shù)器初始化為初始值; 暫停耦合到所述計(jì)數(shù)器的執(zhí)行單元;以與通用時(shí)鐘脈沖發(fā)生器(UCPG)信號(hào)頻率成比例的速率改變所述計(jì) 數(shù)器的值;在所述計(jì)數(shù)器達(dá)到臨界值之后,激活所述執(zhí)行單元。
12、 根據(jù)權(quán)利要求1〗所述的方法,其中,所述執(zhí)行單元使所述計(jì)數(shù)器 被置為初始值。
13、 根據(jù)權(quán)利要求11所述的方法,其中,所述UCPG信號(hào)代表來(lái)自 多個(gè)時(shí)鐘域的多個(gè)時(shí)鐘信號(hào)。
14、 根據(jù)權(quán)利要求ll所述的方法,其中,通過(guò)在所述計(jì)數(shù)器的值達(dá)到 所述臨界值之后產(chǎn)生中斷信號(hào)來(lái)激活所述執(zhí)行單元。
15、 根據(jù)權(quán)利要求ll所述的方法,其中,所述計(jì)數(shù)器的初始值是非零值,并且所述臨界值是零值。
16、 一種機(jī)器可讀介質(zhì),其上存儲(chǔ)有一組指令,所述一組指令由機(jī)器執(zhí)行時(shí),使所述機(jī)器執(zhí)行包括以下步驟的方法 在執(zhí)行單元內(nèi)執(zhí)行多個(gè)指令;對(duì)于多個(gè)指令,在確定性點(diǎn)產(chǎn)生周期性系統(tǒng)管理中斷(PSMI)信號(hào),其 中,所述確定性點(diǎn)是確定性邏輯將執(zhí)行置于與來(lái)自多個(gè)時(shí)鐘域的多個(gè)時(shí)鐘 有關(guān)的已知狀態(tài)的結(jié)果,其中,所述確定性邏輯包括計(jì)數(shù)器,所述計(jì)數(shù)器 用于當(dāng)所述計(jì)數(shù)器達(dá)到臨界值時(shí)使所述執(zhí)行從暫停狀態(tài)激活,其中,所述 計(jì)數(shù)器以與通用時(shí)鐘脈沖成比例的速率計(jì)數(shù)到所述臨界值,所述通用時(shí)鐘 脈沖代表來(lái)自所述多個(gè)時(shí)鐘域的所述多個(gè)時(shí)鐘。
17、 根據(jù)權(quán)利要求16所述的機(jī)器可讀介質(zhì),其中,所述初始值是大于 零的值,并且所述臨界值是零。
18、 根據(jù)權(quán)利要求16所述的機(jī)器可讀介質(zhì),其中,所述初始值是零, 并且所述臨界值大于零。
19、 根據(jù)權(quán)利要求16所述的機(jī)器可讀介質(zhì),其中,所述執(zhí)行單元與片 上系統(tǒng)(SoC)處理器相關(guān)。
20、 根據(jù)權(quán)利要求19所述的機(jī)器可讀介質(zhì),其中,所述SoC處理器 包括至少一個(gè)CPU、圖形引擎、存儲(chǔ)器控制器以及至少一個(gè)外設(shè)控制器。
全文摘要
一種用于在計(jì)算機(jī)系統(tǒng)或集成電路之內(nèi)的多個(gè)時(shí)鐘域之間提升確定性的技術(shù)。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)執(zhí)行單元被置于確定性狀態(tài),所述確定性狀態(tài)與具有多個(gè)不同時(shí)鐘域的處理器系統(tǒng)之內(nèi)的多個(gè)時(shí)鐘有關(guān)。
文檔編號(hào)G06F1/04GK101526831SQ20091012692
公開(kāi)日2009年9月9日 申請(qǐng)日期2009年3月5日 優(yōu)先權(quán)日2008年3月5日
發(fā)明者E·L·亨德里克森, L·哈金, L·撒切爾, S·梅農(nóng), S·蒙達(dá)爾, W·霍奇斯 申請(qǐng)人:英特爾公司