專利名稱:數(shù)據(jù)處理系統(tǒng)中診斷功能的選擇性禁用的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)領(lǐng)域。更具體而言,本發(fā)明涉及數(shù)據(jù)處理 系統(tǒng)內(nèi)診斷功能的選擇性禁用。
背景技術(shù):
眾所周知,為數(shù)據(jù)處理系統(tǒng)提供診斷機(jī)制,例如指令斷點(diǎn)機(jī)制、數(shù) 據(jù)監(jiān)測(cè)點(diǎn)機(jī)制、跟蹤機(jī)制、代碼成型機(jī)制等,以便幫助理解數(shù)據(jù)處理系 統(tǒng)的運(yùn)行,尤其是在硬件和軟件開發(fā)和調(diào)試期間幫助理解數(shù)據(jù)處理系統(tǒng) 的運(yùn)行。這種機(jī)制允許在不同執(zhí)行點(diǎn)識(shí)別正被執(zhí)行的數(shù)據(jù)處理指令以及 正被操作的數(shù)據(jù)值,以便獲得對(duì)系統(tǒng)行為的了解。在調(diào)試系統(tǒng)和調(diào)諧它 們的性能的能力中這可能是非常重要的。數(shù)據(jù)處理系統(tǒng)中的 一 個(gè)獨(dú)立的趨勢(shì)是在處理安全數(shù)據(jù)時(shí)使用這種 系統(tǒng)。例如,常常需要用數(shù)字版權(quán)管理系統(tǒng)來(lái)控制對(duì)受版權(quán)保護(hù)的材料 的訪問(wèn)。這種系統(tǒng)可以使用密鑰,密鑰是高靈敏度的數(shù)據(jù)。需要對(duì)這樣 的密鑰仔細(xì)保護(hù)。盡管可以將采用這種敏感信息的系統(tǒng)設(shè)計(jì)成在正常使 用期間是安全的,但會(huì)發(fā)生與內(nèi)置于這種系統(tǒng)中的診斷機(jī)制相關(guān)的問(wèn) 題。充分多用途且功能強(qiáng)大的診斷機(jī)制通常具有幾乎不受約束地在整個(gè) 系統(tǒng)中檢^T數(shù)據(jù)值和其他狀態(tài)信息的數(shù)據(jù)的能力。不過(guò),例如,如果某 人以未經(jīng)授權(quán)的方式利用診斷機(jī)制從系統(tǒng)讀取安全密鑰時(shí),這可能代表 一種重大安全威力辦。從US-A-5621886可知,在扭J亍操作系統(tǒng)例程和非操作系統(tǒng)例程期 間,為調(diào)試事件提供獨(dú)立啟用。于是,可以為系統(tǒng)提供第一模式和第二 模式,在第一模式中工作時(shí),處理器允許訪問(wèn)在第二模式下不可用的其 他資源。已知US-A-2004/0260910提供了一種控制可在至少兩個(gè)域中工作的 處理器的監(jiān)測(cè)功能的方法,每個(gè)域包括至少一種模式。如果其相關(guān)控制 值表明在該域內(nèi)允許該監(jiān)測(cè)功能,那么可以將控制值設(shè)置成允許在第一 域中發(fā)起監(jiān)測(cè)功能。該第一域可以是安全域,該監(jiān)測(cè)功能可以是調(diào)試或 跟蹤功能。該系統(tǒng)的域?yàn)檫\(yùn)行狀態(tài),而不是存儲(chǔ)地址空間的區(qū)域。上述方法的問(wèn)題在于可以啟用或禁用診斷操作的方式缺少靈活性。 這與希望提供對(duì)整個(gè)系統(tǒng)的靈活診斷訪問(wèn)以使調(diào)試和分析簡(jiǎn)單以及希 望保護(hù)敏感信息(例如密鑰和程序代碼屬性)二者之間的分歧有關(guān)。發(fā)明內(nèi)容從一個(gè)方面看,本發(fā)明提供了用于處理數(shù)據(jù)的設(shè)備,所述設(shè)備包括可以用存儲(chǔ)地址尋址的存儲(chǔ)器,所述存儲(chǔ)地址具有存儲(chǔ)地址空間之 內(nèi)的值,所述存儲(chǔ)地址空間具有多個(gè)域,域包括如指定數(shù)據(jù)的可編程域 定義的一組存儲(chǔ)地址;數(shù)據(jù)處理電路,響應(yīng)于從所述存儲(chǔ)地址空間內(nèi)的存儲(chǔ)地址獲取的程 序指令以執(zhí)行數(shù)據(jù)處理操作;診斷電路,響應(yīng)于所述設(shè)備內(nèi)的一個(gè)或多個(gè)信號(hào),執(zhí)行生成診斷數(shù) 據(jù)的診斷操作;診斷功能控制電路,響應(yīng)于正被執(zhí)行的程序指令的存儲(chǔ)地址位于所 述多個(gè)域中的哪 一 個(gè)域的判斷來(lái)選性地禁用所述診斷電路的至少一 些診斷功能。該技術(shù)使用指定數(shù)據(jù)的可編程域來(lái)定義對(duì)應(yīng)于存儲(chǔ)地址空間的部 分的域,然后根據(jù)正被執(zhí)行的程序指令的存儲(chǔ)地址位于哪個(gè)域中控制診 斷電路的運(yùn)行,以便選擇性地禁用至少一些診斷功能。域的可編程屬性可以運(yùn)行在相同模式下且不能從模式區(qū)分開,但可以將其設(shè)置成使它們 的代碼存儲(chǔ)在不同的存儲(chǔ)器域中,從而能夠針對(duì)這些應(yīng)用程序之一禁用 診斷能力而針對(duì)另一個(gè)啟用診斷能力。該技術(shù)很適于用在這樣的系統(tǒng)中,這種系統(tǒng)包括存儲(chǔ)器管理電路, 該存儲(chǔ)器管理電路響應(yīng)于定義存儲(chǔ)地址空間內(nèi)的存儲(chǔ)地址頁(yè)面屬性的 存儲(chǔ)頁(yè)面表數(shù)據(jù),因?yàn)檫@樣指定數(shù)據(jù)的可編程域就能夠是存儲(chǔ)頁(yè)面表數(shù) 據(jù)的部分且重復(fù)使用已經(jīng)為存儲(chǔ)頁(yè)面表數(shù)據(jù)提供和開發(fā)的很多機(jī)制和 技術(shù)。除了指定數(shù)據(jù)的可編程域自身能夠變型以適應(yīng)特定系統(tǒng)和條件的 要求之外,當(dāng)診斷功能控制電路響應(yīng)于與至少一個(gè)域相關(guān)的診斷能力定 義數(shù)據(jù)并在正被執(zhí)行的程序指令的存儲(chǔ)地址位于該域中時(shí)指定啟用哪 些診斷功能時(shí),該技術(shù)的靈活性得到進(jìn)一步增強(qiáng)。通過(guò)這種方式,既可以配置域自身,也可以配置用于依據(jù)正被執(zhí)行的指令的存儲(chǔ)地址來(lái)細(xì)調(diào) 系統(tǒng)診斷功能(能力)的這些域內(nèi)的能力。診斷能力定義數(shù)據(jù)的一種具體的有用形式指定是否允許侵入式診 斷功能和/或是否允許非侵入式診斷功能。侵入式診斷功能是那些能夠改 變?cè)谄渖蠄?zhí)行它們的系統(tǒng)的狀態(tài)的診斷功能,而非侵入式診斷功能不能 改變系統(tǒng)狀態(tài)。使用。本技術(shù)對(duì)其有用的電路范例包括跟蹤電路、代碼概況生成電路、 指令斷點(diǎn)電路和數(shù)據(jù)監(jiān)測(cè)點(diǎn)電路。對(duì)于指令斷點(diǎn)電路和數(shù)據(jù)監(jiān)測(cè)點(diǎn)電路 而言,通常用這些電路觸發(fā)診斷事件,這些診斷事件可以是如下事件之一中止處理操作以允許由外部裝置進(jìn)行調(diào)試和/或觸發(fā)調(diào)試異常以在設(shè) 備自身上觸發(fā)調(diào)試異常處理代碼的執(zhí)行。從另一個(gè)方面看,本發(fā)明提供了用于處理數(shù)據(jù)的設(shè)備,所述設(shè)備包括可以用存儲(chǔ)地址尋址的存儲(chǔ)裝置,所述存儲(chǔ)地址具有存儲(chǔ)地址空間 之內(nèi)的值,所述存儲(chǔ)地址空間具有多個(gè)域,域包括如指定數(shù)據(jù)的可編程 域定義的一組存儲(chǔ)地址;數(shù)據(jù)處理裝置,用于響應(yīng)于從所述存儲(chǔ)地址空間內(nèi)的存儲(chǔ)地址獲取 的程序指令執(zhí)行數(shù)據(jù)處理操作;診斷裝置,用于響應(yīng)于所述設(shè)備中的一個(gè)或多個(gè)信號(hào)執(zhí)行生成診斷 數(shù)據(jù)的診斷操作;診斷功能控制裝置,響應(yīng)于正被執(zhí)行的程序指令的存儲(chǔ)地址位于所 些診斷功能。從另一個(gè)方面看,本發(fā)明提供了一種處理數(shù)據(jù)的方法,所述方法包 括如下步驟在可以用存儲(chǔ)地址尋址的存儲(chǔ)器中存儲(chǔ)數(shù)據(jù),所述存儲(chǔ)地址具有存 儲(chǔ)地址空間之內(nèi)的值,所述存儲(chǔ)地址空間具有多個(gè)域,域包括如指定數(shù) 據(jù)的可編程域定義的 一組存儲(chǔ)地址;響應(yīng)于從所述存儲(chǔ)地址空間內(nèi)的存儲(chǔ)地址獲取的程序指令用數(shù)據(jù) 處理電路執(zhí)行數(shù)據(jù)處理操作;響應(yīng)于所述設(shè)備中的 一個(gè)或多個(gè)信號(hào),用診斷電i 各執(zhí)行診斷操作以生成診斷數(shù)據(jù);響應(yīng)于正被執(zhí)行的程序指令的存儲(chǔ)地址位于所述多個(gè)域中的哪一 個(gè)域的判斷,用診斷功能控制電路來(lái)選擇性地禁用所述診斷電路的至少 一些診斷功能。結(jié)合附圖閱讀例示實(shí)施例的以下詳細(xì)說(shuō)明將會(huì)明了本發(fā)明的以上 和其他目的、特^正和優(yōu)點(diǎn)。
圖1A和1B示意性地示出了包括被選擇性啟用和禁用的診斷電路的 數(shù)據(jù)處理系統(tǒng)的兩個(gè)示例實(shí)施例;圖2示意性地示出了將存儲(chǔ)地址空間分成多個(gè)不同的域;圖3為示意圖,示意性地示出了可以如何組合頁(yè)面表數(shù)據(jù)和診斷能 力定義數(shù)據(jù)以選擇性啟用和禁用診斷電路;以及圖4為流程圖,示意性地示出了在選擇性啟用和禁用診斷電路時(shí)可 以使用的控制流程。具體實(shí);^方式圖1A示出了包括耦合到存儲(chǔ)器6的集成電路4的數(shù)據(jù)處理設(shè)備2。 集成電路4包括處理器內(nèi)核8,用于執(zhí)行從存儲(chǔ)器6獲取的程序指令, 以對(duì)數(shù)據(jù)值進(jìn)行數(shù)據(jù)處理操作,程序指令也可以從存儲(chǔ)器6獲取并回存 到存儲(chǔ)器6中。存儲(chǔ)器管理單元10用于控制處理器內(nèi)核8對(duì)存儲(chǔ)器6 的存儲(chǔ)地址空間內(nèi)的不同區(qū)域的訪問(wèn)。存儲(chǔ)器管理單元10利用存儲(chǔ)在 存儲(chǔ)器6內(nèi)的頁(yè)面表數(shù)據(jù)12來(lái)建立與存儲(chǔ)地址空間相關(guān)的許可及其他 特征(例如僅特許方式的訪問(wèn)、可高速緩存性、只讀狀態(tài)等)。通過(guò)這 種方式使用存儲(chǔ)器管理單元IO和頁(yè)面表數(shù)據(jù)12將是本技術(shù)領(lǐng)域的技術(shù) 人員所熟悉的,在此不再贅述?;蛘呖梢詫㈨?yè)面表數(shù)據(jù)12作為集成電 路4的 一部分提供。數(shù)據(jù)處理設(shè)備2還可以具有超過(guò)一個(gè)存儲(chǔ)器(例如, 獨(dú)立的指令和數(shù)據(jù)存儲(chǔ)器(Havard)、多個(gè)均具有其自己的地址空間的 數(shù)據(jù)存儲(chǔ)器(例如DSP))或其他布置。這些存儲(chǔ)器中任一個(gè)都可以是 芯片上或芯片外的。頁(yè)面表數(shù)據(jù)可以存儲(chǔ)在任何存儲(chǔ)器中。集成電路4中還提供有各種形式的診斷電路。在這一例子中,嵌入 的跟蹤單元14提供了處理器內(nèi)核8進(jìn)行數(shù)據(jù)處理操作跟蹤的能力。這種跟蹤單元的范例可以是由英才各蘭劍橋的ARM Limited設(shè)計(jì)的ETM單 元。還提供了嵌入的診斷單元16,其提供指令斷點(diǎn)功能和數(shù)據(jù)監(jiān)測(cè)點(diǎn)功 能??梢栽谠撛\斷單元16中寫入數(shù)據(jù)以為開發(fā)人員指定感興趣的事件, 使得在發(fā)生這種事件的時(shí)候就觸發(fā)診斷操作。對(duì)于指令斷點(diǎn)而言,該事 件可以是執(zhí)行地址與預(yù)定特征匹配的指令。對(duì)于數(shù)據(jù)監(jiān)測(cè)點(diǎn)而言,該事 件可以是訪問(wèn)特征匹配預(yù)定特征的數(shù)據(jù)值。所觸發(fā)的診斷操作可以采取 各種不同形式,但典型的形式可以是中止處理操作使得外部裝置能夠檢 查集成電路4的狀態(tài),以實(shí)現(xiàn)調(diào)試目的,或者是觸發(fā)調(diào)試異常,以為自 身在裝置上啟動(dòng)執(zhí)行調(diào)試異常處理代理。診斷單元16可以具有例如英以代碼概況生成器18的形式提供其他診斷電路,其響應(yīng)于纟皮執(zhí)行 的程序指令,產(chǎn)生表征這些程序指令的概況信息。例如,可能希望知道 執(zhí)行特定指令或執(zhí)行代碼特定區(qū)域的次數(shù),以便精細(xì)地調(diào)諧數(shù)據(jù)處理系 統(tǒng)的性能。在集成電路4之內(nèi)還提供了控制電路20。該診斷控制電路20響應(yīng) 于來(lái)自處理器內(nèi)核8表示當(dāng)前正執(zhí)行的程序指令的域的信號(hào),產(chǎn)生傳輸 到各診斷電路14、 16、 18的控制信號(hào),以選擇性地啟用或禁用這些元 件的功能。于是,例如,在執(zhí)行一個(gè)程序,且對(duì)該程序而言指定數(shù)據(jù)指 標(biāo)的可編程域在特定域內(nèi)且已知該程序無(wú)法訪問(wèn)安全信息時(shí),那么就可 以啟用所有診斷電路14、 16、 18的功能,從而可以以完全靈活性分析 這種程序代碼中的問(wèn)題。相反,可以從已知其中存在安全信息且希望禁 用診斷電路14、 16、 18的一些或所有功能的不同域中執(zhí)行不同的應(yīng)用 程序。在這種情況下,可能希望禁用跟蹤單元14和診斷單元16,而代 碼概況生成器18可以保持活動(dòng),因?yàn)檎J(rèn)為它不能(例如)暴露安全密 鑰的值。在該例中指示數(shù)據(jù)的域形成存儲(chǔ)器6中存儲(chǔ)的頁(yè)面表數(shù)據(jù)12的一 部分。出于前述目的經(jīng)由存儲(chǔ)器管理單元10訪問(wèn)該頁(yè)面表數(shù)據(jù)12。在 諸如ARM600處理器和更晚處理器的系統(tǒng)內(nèi),已知在指定存儲(chǔ)地址空間 之內(nèi)的域(即一組存儲(chǔ)地址)的頁(yè)面表中提供數(shù)據(jù)。在其公知的用法中, 該域信息用于通過(guò)否決設(shè)置于頁(yè)面表數(shù)據(jù)中的全局訪問(wèn)權(quán)來(lái)控制差異 程序線程的存儲(chǔ)器訪問(wèn)權(quán)。該技術(shù)將指定數(shù)據(jù)的域的使用擴(kuò)展到在數(shù)據(jù) 處理系統(tǒng)2之內(nèi)控制診斷電路14、 16、 18的選擇性禁用。MMU IO從存儲(chǔ)器6讀取的頁(yè)面表數(shù)據(jù)12已經(jīng)被集成到處理器內(nèi) 核8的操作中以控制其存儲(chǔ)器訪問(wèn)操作,例如加強(qiáng)對(duì)某些存儲(chǔ)地址的只 讀策略。通常將針對(duì)正被訪問(wèn)的存儲(chǔ)區(qū)的頁(yè)面表數(shù)據(jù)高速緩存在集成電 路4之內(nèi),以便能更迅速地使用。作為該信息的一部分,也可用域識(shí)別 信息。于是,將從頁(yè)面表數(shù)據(jù)12導(dǎo)出的域指定信號(hào)從處理器內(nèi)核8傳 送到診斷控制電路20。診斷控制電路20然后選擇性地啟用或禁用依賴 其的各診斷電3各14、 16、 18。圖1B示出了另一示例實(shí)施例,其與圖1A不同之處在于,診斷控制 電路20生成信號(hào),將信號(hào)傳送到處理器內(nèi)核8以選擇性地禁用診斷電 路14、 16、 18的功能。圖2示意性地示出了將存儲(chǔ)地址空間分成多個(gè)不同的域。如圖所示, 這些域大小可以不同,可以是連續(xù)或不連續(xù)的。指定數(shù)據(jù)的域的可編程 屬性使得形成域的方式能有相當(dāng)大的靈活性。如果需要,可以將域指定 到小至單個(gè)頁(yè)面項(xiàng)提供的粒度的水平。不過(guò),更一般的情況是以降低的 粒度水平在比單個(gè)頁(yè)面項(xiàng)更高的水平上定義域。必須要或值得在更精細(xì) 的粒度水平上定義域?qū)⑹遣徽5?,并且相?yīng)地,與將數(shù)據(jù)指定為每個(gè) 頁(yè)面項(xiàng)的 一部分的存儲(chǔ)域相關(guān)的額外開銷將不會(huì)被證明是正確的。圖3示意性地示出了用于生成診斷電路使能信號(hào)22的布置,該使 能信號(hào)22用于控制對(duì)診斷電路14、 16、 18的功能的選擇性禁用。要認(rèn) 識(shí)到,該電路的部分24將通常提供在診斷控制電路20之內(nèi),而供應(yīng)正 在執(zhí)行的程序指令的存儲(chǔ)地址的程序計(jì)數(shù)寄存器26和一些其他元件常 規(guī)上將位于處理器內(nèi)核8的其他部分中。將來(lái)自程序計(jì)數(shù)寄存器26內(nèi) 部的正執(zhí)行的程序指令的存儲(chǔ)地址的最高有效部分28與轉(zhuǎn)換表基址寄 存器值結(jié)合使用來(lái)編入頁(yè)面表數(shù)據(jù)12中,以恢復(fù)頁(yè)面項(xiàng)30。該頁(yè)面項(xiàng) 30為包括1級(jí)描述符的常規(guī)ARM頁(yè)面項(xiàng),該描述符包括指定數(shù)據(jù)的可 編程域32??梢杂贸R?guī)方式在頁(yè)面表數(shù)據(jù)12之內(nèi)在1級(jí)描述符30下方 提供更低級(jí)別的描述符,其提供用于定義存儲(chǔ)器屬性的更細(xì)的粒度水 平。指定數(shù)據(jù)的域32指明了當(dāng)前正被執(zhí)行的程序指令的域并被作為控 制輸入提供給復(fù)用器34。依賴于指定數(shù)據(jù)的域32的復(fù)用器34從控制寄 存器內(nèi)選擇診斷能力定義數(shù)據(jù)值36中不同的一個(gè)。例如,這些診斷能 力定義數(shù)據(jù)值36的每一個(gè)可以是兩比特值, 一個(gè)比特指明是否允許侵入式調(diào)試, 一個(gè)比特指明在該域之內(nèi)是否允許非侵入式調(diào)試。代碼概況生成器18和跟蹤單元14提供非侵入式調(diào)試,而嵌入的診斷單元16被 歸入侵入式一類,因?yàn)樗哂型V固幚砥骰蛴|發(fā)調(diào)試異常的能力。復(fù)用 器34選擇針對(duì)當(dāng)前有效域的診斷能力定義數(shù)據(jù)并輸出到多個(gè)邏輯電路 38,為診斷電路14、 16、 18的每個(gè)提供一個(gè)邏輯電路38 (在一些實(shí)施 例中,這些i貪斷電^各14、 16、 18也可以共享邏輯電^各)。然后用這些 邏輯電路依據(jù)當(dāng)前輸出的診斷能力定義數(shù)據(jù)值36生成用于各診斷電路 14、 16、 18的適當(dāng)?shù)恼{(diào)試控制信號(hào)22。這些是圖1所示的從診斷控制 電路20向每個(gè)診斷電路14、 16、 18供應(yīng)的診斷控制信號(hào)。還可以將控 制信號(hào)傳送到處理器內(nèi)核8以選擇性地禁用相應(yīng)的診斷功能。圖4為示意性示出了診斷操作控制的流程圖。將會(huì)認(rèn)識(shí)到,圖4的 流程圖將控制示為順序進(jìn)程,而本技術(shù)領(lǐng)域的技術(shù)人員熟知的是,可以制。也可以將結(jié)果或部分結(jié)果進(jìn)行高速緩存。在圖4的例示中,處理始 于步驟40,判斷從哪個(gè)當(dāng)前域執(zhí)行程序指令。這可以從頁(yè)面表數(shù)據(jù)12 判定并由指定數(shù)據(jù)的域32來(lái)指定。然后步驟42從控制寄存器內(nèi)查找用 于當(dāng)前域的診斷能力定義數(shù)據(jù)36。例如,該寄存器可以是只有在安全模 式下工作時(shí)才可寫入的可編程配置協(xié)處理器寄存器(CP15)。步驟44 判斷是否為當(dāng)前域啟用了侵入式診斷。如果啟用了侵入式診斷,那么步 驟46為相關(guān)診斷電路16生成適當(dāng)?shù)氖鼓苄盘?hào)。否則跳過(guò)步驟46。步驟 48判斷是否為當(dāng)前域啟用了非侵入式診斷。如杲為當(dāng)前域啟用了非侵入 式操作,那么步驟50為適當(dāng)?shù)姆乔秩胧皆\斷電路14、 16、 18生成使能 信號(hào)。應(yīng)當(dāng)理解,可以認(rèn)為診斷單元16同時(shí)提供侵入式和非侵入式診 斷,因?yàn)殡m然其可以改變系統(tǒng)狀態(tài),但診斷單元16不必改變系統(tǒng)狀態(tài)。 如果未啟用非侵入式診斷,那么跳過(guò)步驟50。雖然這里參考附圖詳細(xì)描述了本發(fā)明的例示性實(shí)施例,應(yīng)當(dāng)理解本 發(fā)明不限于這些精確實(shí)施例,本領(lǐng)域技術(shù)人員不脫離如所附權(quán)利要求定 義的發(fā)明范圍和精神可以在其中做出各種變化和變型。
權(quán)利要求
1.一種用于處理數(shù)據(jù)的設(shè)備,所述設(shè)備包括可以用存儲(chǔ)地址尋址的存儲(chǔ)器,所述存儲(chǔ)地址具有存儲(chǔ)地址空間之內(nèi)的值,所述存儲(chǔ)地址空間具有多個(gè)域,域包括如指定數(shù)據(jù)的可編程域定義的一組存儲(chǔ)地址;數(shù)據(jù)處理電路,響應(yīng)于從所述存儲(chǔ)地址空間內(nèi)的存儲(chǔ)地址獲取的程序指令以執(zhí)行數(shù)據(jù)處理操作;診斷電路,響應(yīng)于所述設(shè)備內(nèi)的一個(gè)或多個(gè)信號(hào),執(zhí)行生成診斷數(shù)據(jù)的診斷操作;診斷功能控制電路,響應(yīng)于正被執(zhí)行的程序指令的存儲(chǔ)地址位于所述多個(gè)域中的哪一個(gè)域的判斷來(lái)選擇性地禁用所述診斷電路的至少一些診斷功能。
2. 根據(jù)權(quán)利要求1所述的設(shè)備,包括存儲(chǔ)器管理電路,對(duì)定義所 述存儲(chǔ)地址空間內(nèi)的存儲(chǔ)地址的頁(yè)面屬性的存儲(chǔ)器頁(yè)面表數(shù)據(jù)做出響 應(yīng),所述存儲(chǔ)地址空間含有多個(gè)存儲(chǔ)地址的連續(xù)頁(yè)面,且其中所述指定 數(shù)據(jù)的可編程域?yàn)樗龃鎯?chǔ)器頁(yè)面表數(shù)據(jù)的部分。
3. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述診斷功能控制電路響應(yīng) 于與所述多個(gè)域的至少 一 個(gè)相關(guān)的診斷能力定義數(shù)據(jù),并且在正被執(zhí)行 的所述程序指令的所述存^f渚地址位于所述多個(gè)域的所述至少一個(gè)中時(shí) 指定禁用哪個(gè)診斷功能。
4. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述診斷能力定義數(shù)據(jù)在正 被執(zhí)行的所述程序指令的所述存儲(chǔ)地址位于所述多個(gè)域的所述至少一 個(gè)中時(shí),指定是否禁用侵入式診斷功能。
5. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述診斷能力定義數(shù)據(jù)在正 被執(zhí)行的所述程序指令的所述存儲(chǔ)地址位于所述多個(gè)域的所述至少一 個(gè)中時(shí),指定是否允許非侵入式診斷功能。
6. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述診斷電路包括跟蹤電路, 所述跟蹤電路響應(yīng)于正被執(zhí)行的數(shù)據(jù)處理操作生成跟蹤數(shù)據(jù)流。
7. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述診斷電路包括代碼概況 生成電路,其響應(yīng)于正被執(zhí)行的程序指令的存儲(chǔ)地址生成代碼概況生成 數(shù)據(jù)。
8. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述診斷電路包括指令斷點(diǎn)電路,所述指令斷點(diǎn)電路響應(yīng)于匹配預(yù)定特征的正被執(zhí)行的程序指令的 存儲(chǔ)地址來(lái)觸發(fā)診斷事件。
9. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述診斷電路包括數(shù)據(jù)監(jiān)測(cè) 點(diǎn)電路,所述數(shù)據(jù)監(jiān)測(cè)點(diǎn)電路響應(yīng)于匹配預(yù)定特征的正^皮訪問(wèn)的數(shù)據(jù)值 的存儲(chǔ)地址來(lái)觸發(fā)診斷事件。
10. 根據(jù)權(quán)利要求8所述的設(shè)備,其中所述診斷事件為如下操作之 一中止在所述設(shè)備上的處理操作以容許通過(guò)外部裝置進(jìn)行調(diào)試,以及 觸發(fā)調(diào)試異常,以在所述設(shè)備上啟動(dòng)調(diào)試異常處理代碼的執(zhí)行。
11. 一種用于處理數(shù)據(jù)的設(shè)備,所述設(shè)備包括 可以用存儲(chǔ)地址尋址的存儲(chǔ)裝置,所述存儲(chǔ)地址具有存儲(chǔ)地址空間之內(nèi)的值,所述存儲(chǔ)地址空間具有多個(gè)域,域包括如指定數(shù)據(jù)的可編程 域定義的 一組存^t地址;數(shù)據(jù)處理裝置,用于響應(yīng)于從所述存儲(chǔ)地址空間內(nèi)的存儲(chǔ)地址獲取 的程序指令執(zhí)行數(shù)據(jù)處理操作;診斷裝置,用于響應(yīng)于所述設(shè)備中的一個(gè)或多個(gè)信號(hào)執(zhí)行生成診斷 數(shù)據(jù)的診斷操作;診斷功能控制裝置,響應(yīng)于正被執(zhí)行的程序指令的存儲(chǔ)地址位于所 述多個(gè)域中的哪 一 個(gè)域的判斷來(lái)選性地禁用所述診斷電路的至少一 些診斷功能。
12. —種處理數(shù)據(jù)的方法,所述方法包括如下步驟在可以用存儲(chǔ)地址尋址的存儲(chǔ)器中存儲(chǔ)數(shù)據(jù),所述存儲(chǔ)地址具有存 儲(chǔ)地址空間之內(nèi)的值,所述存儲(chǔ)地址空間具有多個(gè)域,域包括如指定數(shù) 據(jù)的可編程域定義的 一組存儲(chǔ)地址;響應(yīng)于從所述存儲(chǔ)地址空間內(nèi)的存儲(chǔ)地址獲取的程序指令用數(shù)據(jù) 處理電路執(zhí)行數(shù)據(jù)處理操作;響應(yīng)于所述設(shè)備中的一個(gè)或多個(gè)信號(hào),用診斷電路執(zhí)行診斷操作以 生成診斷數(shù)據(jù);響應(yīng)于正被執(zhí)行的程序指令的存儲(chǔ)地址位于所述多個(gè)域中的哪一 個(gè)域的判斷,用診斷功能控制電路來(lái)選擇性地禁用所述診斷電路的至少 一些診斷功能。
13. 根據(jù)權(quán)利要求12所述的方法,包括利用定義所述存儲(chǔ)地址空 間內(nèi)的存儲(chǔ)地址的頁(yè)面屬性的存儲(chǔ)器頁(yè)面表數(shù)據(jù)管理存儲(chǔ)器,所述存儲(chǔ)地址空間含有多個(gè)存儲(chǔ)地址的連續(xù)頁(yè)面,所述指定數(shù)據(jù)的可編程域?yàn)樗?述存儲(chǔ)器頁(yè)面表數(shù)據(jù)的部分。
14. 根據(jù)權(quán)利要求12所述的方法,其中所述選擇性禁用響應(yīng)于與所述多個(gè)域的至少一個(gè)相關(guān)的診斷能力定義數(shù)據(jù),并且在正被執(zhí)行的所 述程序指令的所述存儲(chǔ)地址位于所述多個(gè)域的所述至少一個(gè)中時(shí)指定 禁用哪些診斷功能。
15. 根據(jù)權(quán)利要求12所述的方法,其中所述診斷能力定義數(shù)據(jù)在 正被執(zhí)行的所述程序指令的所述存儲(chǔ)地址位于所述多個(gè)域的所述至少 一個(gè)中時(shí),指定是否禁用侵入式診斷功能。
16. 根據(jù)權(quán)利要求12所述的方法,其中所述診斷能力定義數(shù)據(jù)在 正被執(zhí)行的所述程序指令的所述存儲(chǔ)地址位于所述多個(gè)域的所述至少 一個(gè)中時(shí),指定是否允許非侵入式診斷功能。
17. 根據(jù)權(quán)利要求12所述的方法,其中所述診斷電路包括跟蹤電
18. 根據(jù)權(quán)利要求12所述的方法,其中所述診斷電路包括代碼概 況生成電路,其響應(yīng)于正被執(zhí)行的程序指令的存儲(chǔ)地址生成代碼概況生成數(shù)據(jù)。
19. 根據(jù)權(quán)利要求12所述的方法,其中所述診斷電路包括指令斷 點(diǎn)電路,所述指令斷點(diǎn)電路響應(yīng)于匹配預(yù)定特征的正被執(zhí)行的程序指令 的存儲(chǔ)地址來(lái)觸發(fā)診斷事件。
20. 根據(jù)權(quán)利要求12所述的方法,其中所述診斷電路包括數(shù)據(jù)監(jiān) 測(cè)點(diǎn)電路,所述數(shù)據(jù)監(jiān)測(cè)點(diǎn)電路響應(yīng)于匹配預(yù)定特征的正-皮訪問(wèn)的數(shù)據(jù) 值的存儲(chǔ)地址來(lái)觸發(fā)診斷事件。
21. 根據(jù)權(quán)利要求19所述的方法,其中所述診斷事件為如下操作 之一中止在所述設(shè)備上的處理操作以容許通過(guò)外部裝置進(jìn)行調(diào)試,以 及觸發(fā)調(diào)試異常,以在所述設(shè)備上啟動(dòng)調(diào)試異常處理代碼的執(zhí)行。
全文摘要
一種數(shù)據(jù)處理系統(tǒng)2具有存儲(chǔ)器6,存儲(chǔ)器6具有并入了多個(gè)域的存儲(chǔ)地址空間,每個(gè)域包括如指定數(shù)據(jù)的可編程域32所定義的一組存儲(chǔ)地址。處理器內(nèi)核8執(zhí)行從存儲(chǔ)器6獲取的程序指令。診斷控制電路20響應(yīng)于存儲(chǔ)正被執(zhí)行的程序指令的域選擇性地禁用用于在數(shù)據(jù)處理系統(tǒng)2上執(zhí)行診斷功能的診斷電路14、16、18。診斷控制電路20響應(yīng)于與域相關(guān)的診斷能力定義數(shù)據(jù)36,以指明針對(duì)哪個(gè)域啟用哪個(gè)診斷電路14、16、18。
文檔編號(hào)G06F11/36GK101251821SQ200810081458
公開日2008年8月27日 申請(qǐng)日期2008年2月22日 優(yōu)先權(quán)日2007年2月22日
發(fā)明者D·克肖, M·J·威廉斯 申請(qǐng)人:Arm有限公司