專利名稱:用于共享調(diào)試資源的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本公開內(nèi)容一般地涉及數(shù)據(jù)處理系統(tǒng),以及更具體地,涉及用于共享調(diào)試資源的 系統(tǒng)和方法。
背景技術(shù):
在處理器內(nèi)廣泛地使用軟件調(diào)試器來執(zhí)行各種調(diào)試操作。軟件調(diào)試器通常使用各 種不同的資源來執(zhí)行這些調(diào)試操作,諸如指令斷點(diǎn)、數(shù)據(jù)斷點(diǎn)、各種執(zhí)行事件斷點(diǎn),以及配 置資源和報(bào)告有關(guān)各種事件的狀態(tài)的控制和狀態(tài)字段??赡茉谲浖{(diào)試器內(nèi)出現(xiàn)錯(cuò)誤,會(huì) 導(dǎo)致例如不準(zhǔn)確的調(diào)試操作。然而,困難實(shí)際上存在于調(diào)試軟件調(diào)試器本身中。
通過例子,示例說明本發(fā)明,并且不受附圖的限制,其中,相同的參考數(shù)字表示類 似的元件。為簡(jiǎn)單和清楚起見,示例說明圖中的元件,并不一定按比例繪制。圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)處理系統(tǒng)的框圖。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的與圖1的數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的處理器的框 圖。圖3是示例說明與圖1的數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的示例性調(diào)試寄存器的圖。圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的與圖3的調(diào)試寄存器相關(guān)聯(lián)的調(diào)試控制寄存器 的圖。圖5和6以表格形式表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖4的調(diào)試控制寄存器的一 部分的功能性。圖7是根據(jù)本發(fā)明的一個(gè)實(shí)施例的與圖3的調(diào)試寄存器相關(guān)聯(lián)的調(diào)試狀態(tài)寄存器 的圖。圖8以表格形式表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖7的調(diào)試狀態(tài)寄存器的一部分 的功能性。圖9是根據(jù)本發(fā)明的一個(gè)實(shí)施例的與圖1的數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的調(diào)試資源控制 寄存器的圖。圖10-13以表格形式表示圖9的調(diào)試資源控制寄存器的一部分的功能性。圖14-15以表格形式表示基于圖4的調(diào)試控制寄存器和圖9的調(diào)試資源控制寄存 器的示例性設(shè)置的軟件可訪問資源。圖16-17以局部示意和局部框圖形式表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的與圖2的處 理器相關(guān)聯(lián)的屏蔽(masking)電路的部分。圖18是示例說明根據(jù)本發(fā)明的一個(gè)實(shí)施例的外部調(diào)試命令寄存器的圖。圖19以表格形式表示圖18的外部調(diào)試命令寄存器的一部分的功能性。圖20以表格形式示例說明基于外部調(diào)試命令寄存器的示例性設(shè)置的被選寄存
ο
具體實(shí)施例方式在一個(gè)實(shí)施例中,硬件調(diào)試器和軟件調(diào)試器使用狀態(tài)寄存器和控制的共用集來執(zhí) 行調(diào)試操作。然而,不是所有調(diào)試資源必須專門位于硬件控制下或?qū)iT位于軟件控制下,一 個(gè)實(shí)施例提供共享機(jī)制,允許個(gè)別或分組的資源分配被指定用于硬件或軟件使用。例如,當(dāng) 在軟件調(diào)試器和硬件調(diào)試器之間共享一個(gè)或多個(gè)資源時(shí),調(diào)試資源控制寄存器允許由軟件 或硬件有選擇地管理調(diào)試控制寄存器字段。在一個(gè)實(shí)施例中,硬件調(diào)試器當(dāng)在外部調(diào)試模 式中時(shí)允許軟件(經(jīng)調(diào)試資源控制寄存器)管理一個(gè)或多個(gè)資源。在這種情況下,由軟件 利用的事件可能導(dǎo)致由軟件處理的中斷,而分配給硬件的事件導(dǎo)致進(jìn)入硬件調(diào)試模式(經(jīng) 調(diào)試端口告知外部調(diào)試器該進(jìn)入),其中,暫停處理器的操作。此外,一個(gè)實(shí)施例為軟件提供 一致性機(jī)制,當(dāng)僅調(diào)試資源的子集實(shí)際上被硬件調(diào)試器分配以可用于軟件使用時(shí),能更新 寄存器和讀取正確的(即一致的)狀態(tài)。如在此所使用的,使用術(shù)語“總線”來指多個(gè)信號(hào)或?qū)w,可以用來傳送一個(gè)或多 個(gè)不同類型的信息,諸如數(shù)據(jù)、地址、控制或狀態(tài)。在此所述的導(dǎo)體可以參考單個(gè)導(dǎo)體、多個(gè) 導(dǎo)體、單向?qū)w或雙向?qū)w來示例說明或描述。然而,不同實(shí)施例可以改變導(dǎo)體的實(shí)現(xiàn)。例 如,可以使用單獨(dú)的單向?qū)w而不是雙向?qū)w或反之亦然。同時(shí),可以用多個(gè)導(dǎo)體代替連續(xù) 地或以時(shí)分復(fù)用方式傳送多個(gè)信號(hào)的單個(gè)導(dǎo)體。同樣地,攜帶多個(gè)信號(hào)的單個(gè)導(dǎo)體可以分 成攜帶這些信號(hào)的子集的各種不同的導(dǎo)體。因此,存在用于傳送信號(hào)的許多選擇。當(dāng)涉及將信號(hào)、狀態(tài)位或類似的裝置分別表現(xiàn)成邏輯真或邏輯假狀態(tài)時(shí),在此使 用術(shù)語“斷言”或“設(shè)定”和“否定”(或“解除斷言”或“清零”)。如果邏輯真狀態(tài)是邏輯電 平1,那么邏輯假狀態(tài)是邏輯電平0。如果邏輯真狀態(tài)是邏輯電平0,那么邏輯假狀態(tài)是邏輯 電平1??梢詫⒃诖怂龅拿恳恍盘?hào)設(shè)計(jì)成正或負(fù)邏輯,其中,負(fù)邏輯能由信號(hào)名上的橫 條或信號(hào)名后的星號(hào)(*)表示。在負(fù)邏輯信號(hào)的情況下,信號(hào)為低有效,其中,邏輯真狀態(tài) 對(duì)應(yīng)于邏輯電平0。在正邏輯信號(hào)的情況下,信號(hào)為高有效,其中,邏輯真狀態(tài)對(duì)應(yīng)于邏輯電 平1。注意,在此所述的信號(hào)的任何一個(gè)能設(shè)計(jì)成負(fù)或正邏輯信號(hào)。因此,在另外的實(shí)施例 中,描述為正邏輯信號(hào)的那些信號(hào)可以實(shí)現(xiàn)為負(fù)邏輯信號(hào),以及描述為負(fù)邏輯信號(hào)的那些 信號(hào)可以實(shí)現(xiàn)為正邏輯信號(hào)。在此使用方括號(hào)來表示總線的導(dǎo)體或值的位單元。例如,“總線60[7:0] ”或“總線 60的導(dǎo)體[7:0]”表示總線60的8個(gè)較低位導(dǎo)體,以及“地址位[7:0]”或“地址[7:0]”表 示地址值的8個(gè)較低位。數(shù)字前的符號(hào)“$”表示該數(shù)以十六進(jìn)制或十六進(jìn)制形式表示。數(shù) 字前的符號(hào)“ % ”或“Ob”表示該數(shù)以二進(jìn)制或二進(jìn)制形式表示。圖1示例說明與本發(fā)明的實(shí)施例一致的數(shù)據(jù)處理系統(tǒng)10。數(shù)據(jù)處理系統(tǒng)可以是 芯片上系統(tǒng)。數(shù)據(jù)處理系統(tǒng)10可以在單個(gè)集成電路或多個(gè)集成電路上實(shí)現(xiàn)。數(shù)據(jù)處理系 統(tǒng)10包括處理器12、外部調(diào)試電路14、I/O模塊16和存儲(chǔ)器18,可以經(jīng)總線20耦合。在 另外的實(shí)施例中,存儲(chǔ)器18可以是任何類型的存儲(chǔ)器并且可以位于與處理器12相同的集 成電路上,或與處理器12不同的集成電路上。存儲(chǔ)器18可以是任何類型的存儲(chǔ)器,諸如只 讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、非易失存儲(chǔ)器(例如閃存)等等。同時(shí),存儲(chǔ)器18 可以是位于另一外圍或從設(shè)備內(nèi)或不同集成電路上的存儲(chǔ)器或其他數(shù)據(jù)存儲(chǔ)器。圖2是與圖1的數(shù)據(jù)處理系統(tǒng)10相關(guān)聯(lián)的處理器12的框圖??梢詫?shí)現(xiàn)處理器12來執(zhí)行流水線式的操作,以及可以包括指令管道22、執(zhí)行單元24、指令取得單元26、控制電 路28、通用寄存器30、加載/存儲(chǔ)單元32、總線接口單元(BIU) 34和內(nèi)部調(diào)試電路40。處理 器12可以經(jīng)耦合到BIU 34的總線20,與數(shù)據(jù)處理系統(tǒng)10的其他部件通信。內(nèi)部調(diào)試電路 40可以經(jīng)圖2中所示的調(diào)試端口,耦合到外部調(diào)試單元,諸如IEEE IST0-5001適應(yīng)Nexus 調(diào)試單兀° Nexus 是位于 Austin, Texas 的 Freescale Semiconductor, Inc.的商標(biāo)。調(diào) 試端口可以使用串行接口,諸如符合IEEEl 149的工業(yè)標(biāo)準(zhǔn)JTAG TAP來實(shí)現(xiàn),或可以實(shí)現(xiàn)為 并行端口,串并行端口的組合或可以實(shí)現(xiàn)為Ethernet端口。內(nèi)部調(diào)試電路40可以包括屏 蔽電路31、調(diào)試寄存器42和調(diào)試控制電路44。調(diào)試控制電路44可以包括外部調(diào)試命令寄 存器33和調(diào)試資源控制寄存器41 (DBERCO)。屏蔽電路31與調(diào)試寄存器42、執(zhí)行單元24 通信,并從調(diào)試資源控制寄存器41接收信息。調(diào)試寄存器42可以包括以字段分組的位,用 于控制各種調(diào)試相關(guān)事件,包括指令斷點(diǎn)、數(shù)據(jù)斷點(diǎn)、觀察點(diǎn)和與調(diào)試有關(guān)的其他消息。這 些調(diào)試資源可以在處理器12和外部調(diào)試電路14間共享。同時(shí),調(diào)試控制電路44可以通過 導(dǎo)體35,與BIU 34通信地址和數(shù)據(jù)。在一個(gè)實(shí)施例中,注意,軟件調(diào)試器是指由執(zhí)行調(diào)試操作的處理器12執(zhí)行的軟件 或調(diào)試軟件。在一個(gè)實(shí)施例中,硬件調(diào)試器是指在處理器12外部的并且指示處理器12內(nèi) 的調(diào)試操作的外部調(diào)試硬件或電路。在一個(gè)實(shí)施例中,硬件調(diào)試器經(jīng)調(diào)試端口,或者經(jīng)一個(gè) 或多個(gè)調(diào)試信號(hào)的集,指示處理器12內(nèi)的調(diào)試操作。同時(shí),注意調(diào)試軟件可以概指軟件以 及硬件調(diào)試器可以概指硬件。現(xiàn)在參考圖3,也可以提供調(diào)試寄存器42內(nèi)的寄存器,用于存儲(chǔ)一個(gè)或多個(gè)地址 比較值、地址范圍和數(shù)據(jù)匹配值,用于實(shí)現(xiàn)指令和/或數(shù)據(jù)訪問斷點(diǎn)和觀察點(diǎn)事件,以及其 他調(diào)試控制標(biāo)準(zhǔn)。這些地址和數(shù)據(jù)值,連同各種控制標(biāo)準(zhǔn),用來確定為生成斷點(diǎn)或觀察點(diǎn)事 件,處理器12何時(shí)訪問一個(gè)或多個(gè)預(yù)定指令地址或數(shù)據(jù)地址,這使得當(dāng)內(nèi)部調(diào)試模式有效 時(shí),處理器12開始用于調(diào)試異常的異常處理,或當(dāng)外部調(diào)試模式有效時(shí),使處理器12進(jìn)入 調(diào)試暫停模式,其中,響應(yīng)通過內(nèi)部調(diào)試單元40的調(diào)試端口,由外部調(diào)試電路14提供(給 例如外部調(diào)試命令寄存器33)的命令。即,可以使用調(diào)試寄存器42來配置調(diào)試事件。例如, 調(diào)試寄存器42可以包括各種調(diào)試控制寄存器,包括調(diào)試控制寄存器50 (DBCRO)和其他調(diào)試 控制寄存器43 (DBCR1、DBCR2、DBCR3和DBCR4)。調(diào)試寄存器42可以進(jìn)一步包括指令地址 比較寄存器45 (IAC1和IAC2)。指令地址比較寄存器45可以存儲(chǔ)用于地址比較目的的指令 地址。調(diào)試寄存器42可以進(jìn)一步包括數(shù)據(jù)地址比較寄存器47(DAC1和DAC2)。數(shù)據(jù)地址 比較寄存器47可以存儲(chǔ)用于地址比較目的的數(shù)據(jù)訪問地址。調(diào)試寄存器42可以進(jìn)一步包 括調(diào)試狀態(tài)寄存器49、調(diào)試計(jì)數(shù)器51 (DBCNT1和DBCNT2),以及數(shù)據(jù)值比較寄存器53 (DVC1 和DVC2)。調(diào)試寄存器42可以是用戶的軟件編程模型的一部分。調(diào)試計(jì)數(shù)器51可以配置 成當(dāng)一個(gè)或多個(gè)計(jì)數(shù)使能事件發(fā)生時(shí)遞減計(jì)數(shù)。當(dāng)計(jì)數(shù)值達(dá)到零時(shí),可以信號(hào)告知調(diào)試計(jì) 數(shù)事件,以及如果使能,可能生成調(diào)試中斷。數(shù)據(jù)值比較寄存器53可以存儲(chǔ)用于數(shù)據(jù)比較 目的的數(shù)據(jù)值。在內(nèi)部調(diào)試模式中(當(dāng)未使能外部調(diào)試模式時(shí)),這些寄存器資源由軟件(例如由 在處理器12上運(yùn)行的調(diào)試軟件或軟件調(diào)試器)管理,并且不需要外部調(diào)試電路使用。軟件 可以通過使用向?qū)S眉拇嫫髦噶钜苿?dòng)和從專用寄存器指令移動(dòng)的數(shù)據(jù)移動(dòng)來配置寄存器, 所述專用寄存器指令為編程器模型軟件指令,以初始化單獨(dú)調(diào)試寄存器便于執(zhí)行基于軟件的調(diào)試活動(dòng),其中,使能的調(diào)試事件可使軟件調(diào)試中斷發(fā)生。然后,軟件中斷處理程序可以 執(zhí)行由數(shù)據(jù)處理系統(tǒng)10的軟件編程器確定的各種所需活動(dòng)。在該內(nèi)部調(diào)試模式中,由軟件 專用并管理(即,由軟件所擁有)圖3的調(diào)試資源,以便外部調(diào)試硬件不能訪問這些資源。在外部調(diào)試模式中,將圖3的調(diào)試資源的專用權(quán)分配給外部調(diào)試電路14(即外部 調(diào)試硬件),以及當(dāng)配置的調(diào)試事件發(fā)生時(shí),處理器12可以停止執(zhí)行軟件指令,然后進(jìn)入暫 停狀態(tài)并等待由外部調(diào)試電路14提供的命令(其中,該暫停狀態(tài)也可以稱為硬件調(diào)試模 式)。當(dāng)使能外部調(diào)試模式時(shí),軟件(諸如由處理器12執(zhí)行的調(diào)試軟件)不再控制調(diào)試資 源。外部調(diào)試電路14可以直接經(jīng)可以實(shí)現(xiàn)為例如JTAG TAP端口的調(diào)試端口(如圖2中所 示),訪問調(diào)試資源,包括調(diào)試寄存器42。在一個(gè)實(shí)施例中,調(diào)試寄存器42可以被映射為 JTAG數(shù)據(jù)寄存器,具有包含在一個(gè)或多個(gè)字段內(nèi)的寄存器選擇編碼以用于各種JTAG指令, 通過JTAG IR和DR操作,由調(diào)試器提供對(duì)寄存器的讀寫訪問。如下文更詳細(xì)所述,在外部 調(diào)試模式中,外部調(diào)試電路14能允許處理器12上的軟件(例如,在處理器12上運(yùn)行的調(diào) 試軟件或軟件調(diào)試器)有選擇地管理調(diào)試資源的子集。即,外部調(diào)試電路14能通過使用調(diào) 試資源控制寄存器41,將一個(gè)或多個(gè)調(diào)試資源分配給軟件以便管理。例如,外部調(diào)試電路 14能允許調(diào)試寄存器42內(nèi)的特定調(diào)試控制寄存器字段由軟件管理。由調(diào)試軟件(例如軟 件調(diào)試器)管理的調(diào)試事件導(dǎo)致由軟件處理的中斷(假定使能中斷),而由硬件(例如外部 調(diào)試電路14)管理的調(diào)試事件導(dǎo)致進(jìn)入硬件調(diào)試模式,其中,暫停處理器12以及通過外部 調(diào)試電路14,經(jīng)調(diào)試端口執(zhí)行調(diào)試。用這種方式,當(dāng)在軟件調(diào)試器和硬件調(diào)試器間共享一 個(gè)或多個(gè)資源時(shí),能由硬件或軟件有選擇地管理或擁有調(diào)試控制寄存器字段和其他調(diào)試資 源。此外,通過能分配用于由調(diào)試軟件使用的一個(gè)或多個(gè)調(diào)試資源的外部調(diào)試電路14,外部 調(diào)試電路14能調(diào)試該調(diào)試軟件本身。注意,如在此所使用的,調(diào)試資源可以包括比在調(diào)試寄存器42內(nèi)包括的更多或更 少的寄存器。例如,調(diào)試資源可以包括指令斷點(diǎn)、數(shù)據(jù)斷點(diǎn)、各種執(zhí)行事件斷點(diǎn),以及控制和 狀態(tài)字段,以便配置資源和報(bào)告有關(guān)各個(gè)事件的狀態(tài)。調(diào)試資源還可以包括調(diào)試寄存器的 一個(gè)或多個(gè)特定字段。調(diào)試資源還可以包括計(jì)數(shù)器和比較器,如果需要的話,以便執(zhí)行調(diào)試 操作。此外,共享狀態(tài)寄存器(諸如調(diào)試寄存器42)和控制的共用集,而不是具有用于硬件 調(diào)試器和軟件調(diào)試器的雙倍集以管理,要求待實(shí)現(xiàn)的更少的處理器12資源,并且這簡(jiǎn)化了 用于數(shù)據(jù)處理系統(tǒng)10的用戶的編程模型。內(nèi)部調(diào)試單元40監(jiān)視處理器12內(nèi)的活動(dòng)性并 且基于所存儲(chǔ)的調(diào)試配置信息,響應(yīng)檢測(cè)到一個(gè)或多個(gè)預(yù)定條件,可以生成一個(gè)或多個(gè)數(shù) 據(jù)斷點(diǎn)事件、指令斷點(diǎn)事件、指令執(zhí)行事件,諸如分支或陷阱跳轉(zhuǎn)事件、指令完成事件等等。 以這種操作方式,本領(lǐng)域技術(shù)人員將意識(shí)到處理器12的功能。圖4是與圖1的數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的調(diào)試控制寄存器50的圖。調(diào)試控制寄存 器50可以被包括作為調(diào)試寄存器42的一部分,調(diào)試寄存器42可以進(jìn)一步被包括作為內(nèi)部 調(diào)試單元40的一部分。調(diào)試控制寄存器50可以用來存儲(chǔ)調(diào)試配置信息。盡管圖4示例 說明使用特定位字段的本發(fā)明的特定實(shí)施例,但本發(fā)明的另外的實(shí)施例可以使用每一字段 中具有不同位數(shù)的不同位字段。圖4中所述的特定位字段僅為示例目的。舉例來說,調(diào)試 控制寄存器50可以包括32位。調(diào)試控制寄存器50可以包括標(biāo)記如下的位字段EDM 52、 IDM 54、RST 56、ICMP58、BRT 60、IACl 61、IAC2 62、IAC3 63、IAC4 64、DACl 66、DAC2 68、 DCNTl 70、DCNT2 71、TRAP 72。這些位字段僅是示例以及調(diào)試控制寄存器50可以包括更少或附加位字段。另外,這些位字段可以不同地排列。此外,注意每一字段可以稱為位或 位(多個(gè))或字段。調(diào)試控制寄存器50還可以包括可以在未來使用的預(yù)留位字段73。在 下文中,參考圖5和6,解釋各個(gè)位字段的功能。舉例來說,調(diào)試控制寄存器50可以是可寫 寄存器,其也可以讀,以及可以是用戶的軟件編程模型的一部分。在本發(fā)明的另外的實(shí)施例 中,調(diào)試控制寄存器50可以不是用戶的軟件編程模型中的控制寄存器,而是可以在用戶的 軟件編程模型外實(shí)現(xiàn)??梢允褂萌魏晤愋偷拇鎯?chǔ)電路來實(shí)現(xiàn)調(diào)試控制寄存器50。圖5以表格的形式表示圖4的調(diào)試控制寄存器50的一部分的功能。EDM位52可 以表示使能或禁用外部調(diào)試模式。當(dāng)將EDM位52設(shè)置成1時(shí),例如,控制寄存器,諸如調(diào)試 控制寄存器50處于外部調(diào)試電路14的專門控制下,以及數(shù)據(jù)處理系統(tǒng)10軟件不能將信息 寫入這些控制寄存器。另外,當(dāng)將EDM位52設(shè)置成1時(shí),軟件不能寫入調(diào)試控制寄存器的 特定部分。另外,EDM位52被用來有選擇地阻止某些復(fù)位事件清零在調(diào)試控制寄存器50和 其他調(diào)試資源中存儲(chǔ)的信息,可包含調(diào)試控制和設(shè)置信息。此外,當(dāng)將EDM位52設(shè)置成1 時(shí),調(diào)試資源控制寄存器41可以由外部調(diào)試電路14使用來為軟件分配控制寄存器字段的 子集以便管理。IDM位54可以表示使能或禁用內(nèi)部調(diào)試模式,由此表示使能或禁用調(diào)試異 常。RST位56可以用來控制復(fù)位功能。ICMP位58可以用來表示是否使用或禁用指令完成 調(diào)試事件。可以使用BRT位60來表示是否使能或禁用分支跳轉(zhuǎn)調(diào)試事件。可以使用IACl 位61來表示是否使能或禁用指令地址比較1調(diào)試事件。IAC2位62可以用來表示是否使能 或禁用指令地址比較2調(diào)試事件。IAC3位63可以用來表示是否使用或禁用指令地址比較 3調(diào)試事件。IAC4位64可以用來表示是否使能或禁用指令地址比較4調(diào)試事件?,F(xiàn)在參考圖6,圖6以表格的形式表示圖4的調(diào)試控制寄存器50的一部分的功能。 DACl位66可以用來表示是否使能或禁用數(shù)據(jù)地址比較1調(diào)試事件。如果使能,DACl位66 還表示使能數(shù)據(jù)地址比較1調(diào)試事件用于哪一類型的存儲(chǔ)訪問(例如,用于存儲(chǔ)型數(shù)據(jù)存 儲(chǔ)訪問、用于加載型數(shù)據(jù)存儲(chǔ)訪問,或用于加載型或存儲(chǔ)型數(shù)據(jù)存儲(chǔ)訪問)。DAC2位68可 以用來表示是否使能或禁用數(shù)據(jù)地址比較2調(diào)試事件。如果使能,DAC2位68還表示使能 數(shù)據(jù)地址比較1調(diào)試事件用于哪一類型的存儲(chǔ)訪問(例如,用于存儲(chǔ)型數(shù)據(jù)存儲(chǔ)訪問、用于 加載型數(shù)據(jù)存儲(chǔ)訪問,或用于加載型或存儲(chǔ)型數(shù)據(jù)存儲(chǔ)訪問)。DCNTl位70可以用來表示 是否使能調(diào)試計(jì)數(shù)器1調(diào)試事件。DCNT2位71可以用來表示是否使能調(diào)試計(jì)數(shù)器2事件調(diào) 試。TRAP位72可以用來表示是否使能陷阱跳轉(zhuǎn)調(diào)試事件??梢灶A(yù)留位73(17:31),用于未 來使用。盡管圖5和6描述了特定多個(gè)位字段,用于提供與調(diào)試事件相關(guān)聯(lián)的不同配置信 息,也可以使用與這些圖中所示的不同多個(gè)位字段。圖7是與圖1的數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的調(diào)試狀態(tài)寄存器49的圖。調(diào)試狀態(tài)寄存 器49可以被包括作為調(diào)試寄存器42的一部分,調(diào)試寄存器42可以進(jìn)一步被包括作為內(nèi)部 調(diào)試單元40的一部分。調(diào)試狀態(tài)寄存器49可以被用來存儲(chǔ)有關(guān)調(diào)試事件的狀態(tài)信息。在 一個(gè)實(shí)施例中,當(dāng)調(diào)試狀態(tài)寄存器49中的位被設(shè)置成“1”時(shí),生成相應(yīng)的控制信號(hào),用來信 號(hào)告知進(jìn)入調(diào)試暫停模式(用于硬件調(diào)試事件)或用來生成對(duì)處理器的調(diào)試中斷請(qǐng)求(用 于軟件調(diào)試事件)。盡管圖7示例說明使用特定位字段的本發(fā)明的特定實(shí)施例,但本發(fā)明的 另外的實(shí)施例可以使用在每一字段中,具有不同位數(shù)的不同位字段。圖7中所示的特定位 字段僅示為示例目的。舉例來說,調(diào)試狀態(tài)寄存器49可以包括32位。調(diào)試狀態(tài)寄存器49 可以包括標(biāo)記如下的位字段:IDE 76、ICMP 78、BRT 80、IACl 82、IAC2 84、IAC3 86、IAC488,DAClR 90,DAClff 92、DAC2R 94.DAC2W 96, TRAP 97,DCNTl 98、DCNT2 99 和軟件專用位 101。這些位字段僅是示例,并且調(diào)試狀態(tài)寄存器49可以包括更少或附加位字段。另外,這 些位字段可以不同地排列。此外,注意每一字段可以稱為位或位(多個(gè))或字段。調(diào)試狀 態(tài)寄存器49也可以包括預(yù)留位字段100,可以在未來使用。在下文中,參考圖8,說明各個(gè) 位字段的功能。此外,參考調(diào)試狀態(tài)寄存器49,設(shè)置位是指存儲(chǔ)邏輯電平1以及清零位是指 存儲(chǔ)邏輯電平0。舉例來說,調(diào)試狀態(tài)寄存器49可以是經(jīng)硬件設(shè)置其位,以及經(jīng)軟件讀取 和清零其位的并且可以是用戶的軟件編程模型的一部分的寄存器。在本發(fā)明的另外的實(shí)施 例中,調(diào)試狀態(tài)寄存器49可以不在用戶的軟件編程模型中,而是可以在用戶的軟件編程模 型外實(shí)現(xiàn)。在一個(gè)實(shí)施例中,僅當(dāng)使能內(nèi)部調(diào)試模式或使能外部調(diào)試模式時(shí),調(diào)試狀態(tài)寄存 器49的調(diào)試狀態(tài)位可以由調(diào)試事件設(shè)置。在一個(gè)實(shí)施例中,當(dāng)在內(nèi)部調(diào)試模式中使能調(diào)試 中斷時(shí),調(diào)試狀態(tài)寄存器49中的設(shè)置位可以導(dǎo)致生成調(diào)試中斷,其中,調(diào)試中斷處理程序 負(fù)責(zé)在返回到正常執(zhí)行前,清零調(diào)試狀態(tài)寄存器49位。在一個(gè)實(shí)施例中,當(dāng)在外部調(diào)試模 式中時(shí),可以由硬件所擁有的調(diào)試事件設(shè)置調(diào)試狀態(tài)寄存器49的調(diào)試狀態(tài)位。如果硬件已 經(jīng)將任何資源分配給軟件,那么可以由軟件所擁有的調(diào)試事件設(shè)置與那些分配的資源對(duì)應(yīng) 的調(diào)試狀態(tài)位,其中,如果使能中斷,那么由軟件所擁有的設(shè)置位可能導(dǎo)致生成中斷請(qǐng)求信 號(hào),以及由軟件跳轉(zhuǎn)和處理調(diào)試中斷。相應(yīng)地,由硬件所擁有的設(shè)置位會(huì)導(dǎo)致生成調(diào)試模式 請(qǐng)求信號(hào)并進(jìn)入調(diào)試暫停模式,并由硬件調(diào)試器處理。(注意硬件所擁有的資源可以稱為硬 件管理的資源以及軟件所擁有的資源可以稱為軟件管理的資源)。此外,可以使用任何類型 的存儲(chǔ)電路來實(shí)現(xiàn)調(diào)試狀態(tài)寄存器49。圖8以表格的形式表示圖7的調(diào)試狀態(tài)寄存器49的功能。IDE位76用來表示出 現(xiàn)不確切的調(diào)試事件,由此,如果禁用調(diào)試異常(exc印tions),可以設(shè)置成1,以及調(diào)試事 件使其各自的調(diào)試狀態(tài)寄存器位設(shè)置成1。即,盡管調(diào)試事件可能發(fā)生,但因?yàn)橛捎谔幚砥?12流水線的當(dāng)前狀態(tài),中斷還不能發(fā)生,因此調(diào)試異常仍然禁用。如果指令完成調(diào)試事件 發(fā)生,ICMP位78可以設(shè)置成1。如果分支跳轉(zhuǎn)調(diào)試事件發(fā)生,BRT位80可以設(shè)置成1。如 果IACl調(diào)試事件發(fā)生,可以將IACl位82設(shè)置成1。如果IAC2調(diào)試事件發(fā)生,可以將IAC2 位84設(shè)置成1。如果IAC3調(diào)試事件發(fā)生,可以將IAC3位86設(shè)置成1。如果IAC4調(diào)試事 件發(fā)生,可以將IAC4位88設(shè)置成1。如果讀類型DACl調(diào)試事件發(fā)生,而DACl位66等于% 10或% 11 (表示使能DACl調(diào)試事件,用于加載型數(shù)據(jù)存儲(chǔ)訪問,如圖6所示),那么可以將 DAClR位90設(shè)置成1。如果寫類型DACl調(diào)試事件發(fā)生,而DACl位66等于% 01或% 11 (表 示使能DACl調(diào)試事件,用于存儲(chǔ)型數(shù)據(jù)存儲(chǔ)訪問,如圖6所示),那么可以將DAClW位92設(shè) 置成1。如果讀類型DAC2調(diào)試事件發(fā)生,而DAC2位68等于% 10或% 11 (表示使能DAC2 調(diào)試事件,用于加載型數(shù)據(jù)存儲(chǔ)訪問,如圖6所示),那么可以將DAC2R位94設(shè)置成1。如 果寫類型DAC2調(diào)試事件發(fā)生,而DAC2位68等于% 01或% 11 (表示使能DAC2調(diào)試事件, 用于存儲(chǔ)型數(shù)據(jù)存儲(chǔ)訪問,如圖6所示),那么可以將DAC2W位96設(shè)置成1。如果陷阱跳轉(zhuǎn) 事件出現(xiàn),可以將TRAP位97設(shè)置成1。如果DCNTl調(diào)試事件出現(xiàn),可以將DCNTl位98設(shè)置 成1。如果DCNT2調(diào)試事件出現(xiàn),可以將DCNT2位99設(shè)置成1。在一個(gè)實(shí)施例中,可以預(yù)留 位14至29,用于可能的未來使用。同時(shí),在一個(gè)實(shí)施例中,位101是軟件專用位,其中,僅軟 件可以訪問它們。圖9是與圖1的數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的調(diào)試資源控制寄存器41的圖。當(dāng)使能外部調(diào)試模式時(shí)(例如,當(dāng)將調(diào)試控制寄存器50的EDM位52設(shè)置成1時(shí)),調(diào)試資源控制寄 存器41可以用來控制資源分配。調(diào)試資源控制寄存器41為硬件調(diào)試器(例如外部調(diào)試電 路14)提供與軟件共享調(diào)試資源的機(jī)制。當(dāng)使能外部調(diào)試模式時(shí),基于調(diào)試資源控制寄存 器41的設(shè)置,分配各個(gè)資源。在一個(gè)實(shí)施例中,當(dāng)使能外部調(diào)試模式時(shí)(例如,當(dāng)將調(diào)試控 制寄存器50的EDM位52設(shè)置成1時(shí)),使調(diào)試資源(例如調(diào)試寄存器42)最初位于硬件調(diào) 試器的單獨(dú)控制下,并且軟件不再能寫入這些資源。然后,硬件調(diào)試器能經(jīng)調(diào)試資源控制寄 存器41,將一個(gè)或多個(gè)資源分配回軟件,同時(shí)保持使用剩余的資源。用這種方式,由調(diào)試軟 件指示的調(diào)試操作和由外部調(diào)試硬件指示的調(diào)試操作能同時(shí)出現(xiàn)在外部調(diào)試模式中。艮口, 硬件調(diào)試器和軟件調(diào)試器能同時(shí)地操作。當(dāng)禁用外部調(diào)試模式時(shí)(例如,當(dāng)將調(diào)試控制寄 存器50的EDM位52設(shè)置成0時(shí)),忽略調(diào)試資源控制寄存器41中的設(shè)置。在一個(gè)實(shí)施例中,生成調(diào)試事件的硬件所擁有的資源使得進(jìn)入硬件調(diào)試模式,而 生成調(diào)試事件的軟件所擁有的資源就像它們出現(xiàn)在內(nèi)部調(diào)試模式中一樣,由此如果IDM位 54設(shè)置成1以及如果使能中斷,導(dǎo)致調(diào)試中斷出現(xiàn)。在一個(gè)實(shí)施例中,經(jīng)調(diào)試端口控制調(diào)試 資源控制寄存器41并且對(duì)軟件是只讀的。此外,僅當(dāng)使能內(nèi)部調(diào)試模式時(shí),由軟件所擁有 的調(diào)試事件設(shè)置調(diào)試狀態(tài)寄存器49中的調(diào)試狀態(tài)位。即,當(dāng)使能調(diào)試中斷時(shí)(以及當(dāng)將調(diào) 試控制寄存器50中的IDM位54設(shè)置成1以及將調(diào)試控制寄存器50中的EDM位52設(shè)置成 0,或當(dāng)調(diào)試控制寄存器50中的IDM位54和EDM位52均設(shè)置成1并且經(jīng)調(diào)試資源控制寄 存器41,給軟件分配一個(gè)或多個(gè)調(diào)試資源時(shí)),對(duì)應(yīng)于軟件所擁有的調(diào)試事件的調(diào)試狀態(tài) 寄存器49中的設(shè)置位將導(dǎo)致生成調(diào)試中斷。盡管圖9示例說明使用特定位字段的本發(fā)明的特定實(shí)施例,但本發(fā)明的另外的實(shí) 施例可以使用在每一字段中,具有不同位數(shù)的不同位字段。圖9中所述的特定位字段僅是 示例目的。此外,與在此所述的寄存器的任何一個(gè)一樣,可以使用更多或更少的寄存器來存 儲(chǔ)數(shù)據(jù)。舉例來說,調(diào)試資源控制寄存器41可以包括32位。調(diào)試資源控制寄存器41可以 包括標(biāo)記如下的位字段IDM 112、RST 114、UDE 116、ICMP 118、BRT 120、IRPT 122、TRAP 124、IACl 126、IAC2 128、IAC3 130、IAC4 132、DACl 134、DAC2 138、RET 142、DEVTl 146、 DEVT2 148,DCNTl 150、DCNT2 152,CIRPT 154,CRET 156,BKPT 158 和 FT162。這些位僅是 示例,以及調(diào)試資源控制寄存器41可以包括更少或附加位字段。另外,這些位可以不同地 排列。此外,注意每一字段可以稱為位或位(多個(gè))或字段。調(diào)試資源控制寄存器41還包 括預(yù)留位字段110、136、140、144和160,可以在未來使用。在下文中,參考圖10-13,說明各 個(gè)位字段的功能。圖10以表格的形式表示圖9的調(diào)試資源控制寄存器41 (DBERCO)的一部分的功 能。IDM位112提供內(nèi)部調(diào)試模式控制。當(dāng)將IDM位112設(shè)置成0時(shí),不可由軟件使能內(nèi) 部調(diào)試模式。即,調(diào)試控制寄存器50 (DBCRO)中的IDM位54由硬件所專有??偸呛雎缘秸{(diào) 試控制寄存器50和43 (DBCR0-DBCR4)、調(diào)試計(jì)數(shù)器寄存器51 (DBCNT1和DBCNT2)和調(diào)試狀 態(tài)寄存器49 (DBSR)的移向?qū)S眉拇嫫?mtspr)指令。此外,不管DBERCO 41中的其他字段 的設(shè)置如何,也無資源共享出現(xiàn)。即,硬件獨(dú)享所有資源。此外,通過軟件,來自調(diào)試寄存器 42的任何一個(gè)的移出專用寄存器(mfspr)指令回0。當(dāng)將IDM位112設(shè)置成1時(shí),可由軟 件使能內(nèi)部調(diào)試模式。即,可以由軟件擁有DBCRO 50中的IDM位54和DBSR49中的IDE位 76,由此可軟件讀/寫。此外,可以屏蔽軟件訪問DBSR49中的硬件管理的狀態(tài)和控制位并讀為0,以及忽略經(jīng)mtspr指令,向DBCR0-DBCR4、DBCNT和DBSR中的硬件管理位的軟件寫 入。注意,通過將IDM位112設(shè)置成1,硬件能分配資源,用于由軟件使用,其中,分配給軟 件的這些資源可以由DBERCO 41中的其他字段定義。RST位114提供復(fù)位字段控制。當(dāng)將 RST位114設(shè)置成0時(shí),由硬件獨(dú)有DBCRO 50的RST位56。此外,不允許軟件對(duì)RST位56 的mtspr訪問,以及通過軟件的mfspr訪問回0。當(dāng)將RST位114設(shè)置成1時(shí),可由軟件調(diào) 試器設(shè)置DBCRO 50的RST位56。即,RST位56是可軟件讀寫的。仍然參考圖10,UDE位116允許將無條件調(diào)試事件的所有權(quán)(或管理)分配給軟 件。當(dāng)將UDE位116設(shè)置成0時(shí),由硬件調(diào)試器擁有無條件調(diào)試事件。軟件不能經(jīng)mtspr 指令訪問DBSR 49中的UDE字段(UDE字段未示出),以及通過軟件的mfspr訪問回0。當(dāng) 將UDE位116設(shè)置成0時(shí),由軟件調(diào)試器擁有無條件調(diào)試事件。在這種情況下,DBSR49中 的UDE字段是軟件可讀寫。ICMP位118允許將指令完成調(diào)試事件的所有權(quán)(或管理)分配 給軟件。當(dāng)將ICMP位118設(shè)置成0時(shí),由硬件調(diào)試器擁有指令完成調(diào)試事件。沒有軟件對(duì) DBCRO 50中的ICMP字段58或DBSR 49中的ICMP字段78的mtspr訪問,以及通過軟件的 mfspr訪問回0。當(dāng)將ICMP位118設(shè)置成1時(shí),由軟件調(diào)試器擁有指令完成調(diào)試事件。在 這種情況下,DBSRO 50中的ICMP字段58和DBSR 49中的ICMP字段78是可軟件讀寫的。 BRT位120允許將分支跳轉(zhuǎn)調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng)將BRT位120設(shè) 置成0時(shí),由硬件調(diào)試器擁有分支跳轉(zhuǎn)調(diào)試事件。不存在軟件對(duì)DBCRO 50中的BRT字段60 或DBSR 49中的BRT字段80的mtspr訪問,以及通過軟件的mfspr訪問回0。當(dāng)將BRT位 120設(shè)置成時(shí)1時(shí),由軟件調(diào)試器擁有分支跳轉(zhuǎn)調(diào)試事件。在這種情況下,DBCRO 50中的 BRT字段50和DBSR 49中的BRT字段60是可軟件讀寫的。圖11以表格的形式表示圖9的調(diào)試資源控制寄存器41 (DBERCO)的一部分的功 能。IRPT位122允許將中斷跳轉(zhuǎn)調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng)將IRPT位 122設(shè)置成0時(shí),由硬件調(diào)試器擁有中斷跳轉(zhuǎn)調(diào)試事件。不存在軟件對(duì)DBCRO 50中的IRPT 字段(未示出)或DBSR 49中的IRPT字段(未示出)的mtspr訪問,以及通過軟件的mfspr 訪問回0。當(dāng)將IRPT位122設(shè)置成1時(shí),由軟件調(diào)試器擁有中斷跳轉(zhuǎn)調(diào)試事件。在這種情 況下,DBCRO中的IRPT字段和DBSR 49中的IRPT字段是可軟件讀寫的。TRAP位124允許 將陷阱跳轉(zhuǎn)調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng)將TRAP位124設(shè)置成0時(shí),由硬 件調(diào)試器擁有陷阱跳轉(zhuǎn)調(diào)試事件。不存在軟件對(duì)DBCRO 50中的TRAP字段72或DBSR 49 中的TRAP字段97的mtspr訪問,以及通過軟件的mfspr訪問回0。當(dāng)將TRAP位124設(shè)置 成1時(shí),由軟件調(diào)試器擁有陷阱跳轉(zhuǎn)調(diào)試事件。在這種情況下,DBCRO中的TRAP字段72和 DBSR49中的TRAP字段97是可軟件讀寫的。仍然參考圖11,IACl位126允許將指令地址比較1調(diào)試事件的所有權(quán)(或管理) 分配給軟件。當(dāng)將IACl位126設(shè)置成0時(shí),由硬件調(diào)試器擁有指令地址比較1調(diào)試事件。 不存在軟件對(duì)IACl控制和狀態(tài)字段(例如DBCRO 50中的IACl字段61和DBSR 49中的 IACl字段82)的mtspr訪問,以及通過軟件的mfspr訪問回0。當(dāng)將IAC位126設(shè)置成1 時(shí),由軟件調(diào)試器擁有指令地址比較1調(diào)試事件。在這種情況下,IACl控制和狀態(tài)字段(例 如DBCRO中的IACl字段61和DBSR49中的IACl字段82)是可軟件讀寫的。IAC2位128 允許將指令地址比較2調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng)將IAC2位128設(shè)置 成0時(shí),由硬件調(diào)試器擁有指令地址比較2調(diào)試事件。不存在軟件對(duì)IAC2控制和狀態(tài)字段(例如DBCRO 50中的IAC2字段62和DBSR 49中的IAC2字段84)的mtspr訪問,以及通 過軟件的mfspr訪問回0。當(dāng)將IAC位128設(shè)置成1時(shí),由軟件調(diào)試器擁有指令地址比較2 調(diào)試事件。在這種情況下,IAC2控制和狀態(tài)字段(例如DBCRO中的IAC2字段62和DBSR49 中的IAC2字段84)是可軟件讀寫的。IAC3位130允許將指令地址比較3調(diào)試事件的所有 權(quán)(或管理)分配給軟件。當(dāng)將IAC3位130設(shè)置成0時(shí),由硬件調(diào)試器擁有指令地址比 較3調(diào)試事件。不存在軟件對(duì)IAC3控制和狀態(tài)字段(例如DBCRO 50中的IAC3字段63和 DBSR 49中的IAC3字段86)的mtspr訪問,以及通過軟件的mfspr訪問回0。當(dāng)將IAC3位 130設(shè)置成1時(shí),由軟件調(diào)試器擁有指令地址比較3調(diào)試事件。在這種情況下,IAC3控制和 狀態(tài)字段(例如DBCRO中的IAC3字段63和DBSR49中的IAC3字段86)是可軟件讀寫的。 IAC4位132允許將指令地址比較4調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng)將IAC4 位132設(shè)置成0時(shí),由硬件調(diào)試器擁有指令地址比較4調(diào)試事件。不存在軟件對(duì)IAC4控制 和狀態(tài)字段(例如DBCRO 50中的IAC4字段64和DBSR49中的IAC4字段88)的mtspr訪 問,以及通過軟件的mfspr訪問回0。當(dāng)將IAC4位132設(shè)置成1時(shí),由軟件調(diào)試器擁有指令 地址比較4調(diào)試事件。在這種情況下,IAC4控制和狀態(tài)字段(例如DBCRO中的IAC4字段 64和DBSR49中的IAC4字段88)是可軟件讀寫的。圖12以表格的形式表示圖9的調(diào)試資源控制寄存器41 (DBERCO)的一部分的功 能。DACl位134允許將數(shù)據(jù)地址比較1調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng)將 DACl位134設(shè)置成0時(shí),由硬件調(diào)試器擁有數(shù)據(jù)地址比較1調(diào)試事件。不存在軟件對(duì)DACl 控制和狀態(tài)字段(例如DBCRO 50中的DACl字段66和DBSR 49中的DAClR字段90和DAClW 字段92)的mtspr訪問,以及通過軟件的mfspr訪問回0。當(dāng)將DAC 1位134設(shè)置成1時(shí), 由軟件調(diào)試器擁有數(shù)據(jù)地址比較1調(diào)試事件。在這種情況下,DACl控制和狀態(tài)字段(例如 DBCRO 50中的DACl字段66和DBSR 49中的DAClR字段90和DAClW字段92)是可軟件讀 寫的。DAC2位138允許將數(shù)據(jù)地址比較2調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng) 將DAC2位138設(shè)置成0時(shí),由硬件調(diào)試器擁有數(shù)據(jù)地址比較2調(diào)試事件。不存在軟件對(duì) DAC2控制和狀態(tài)字段(例如DBCRO 50中的DAC2字段68和DBSR 49中的DAC2R字段94和 DAC2W字段96)的mtspr訪問,以及軟件的mfspr訪問回0。當(dāng)將DAC2位138設(shè)置成1時(shí), 由軟件調(diào)試器擁有數(shù)據(jù)地址比較2調(diào)試事件。在這種情況下,DAC2控制和狀態(tài)字段(例如 DBCRO 50中的DAC2字段68和DBSR 49中的DAC2R字段94和DAC2W字段96)是可軟件讀 寫的。仍然參考圖12,RET位142允許將返回調(diào)試事件的所有權(quán)(或管理)分配給軟件。 當(dāng)將RET位142設(shè)置成0時(shí),由硬件調(diào)試器擁有返回調(diào)試事件。不存在軟件對(duì)DBCRO 50中 的RET字段(未示出)和DBSR 49中的RET字段(未示出)的mtspr訪問,以及通過軟件 的mfspr訪問回0。當(dāng)將RET位142設(shè)置成1時(shí),由軟件調(diào)試器擁有返回調(diào)試事件。在這種 情況下,DBCRO 50中的RET字段和DBSR49中的RET字段是可軟件讀寫的。DEVTl位146允 許將外部調(diào)試事件1調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng)將DEVTl位146設(shè)置成 0時(shí),由硬件調(diào)試器擁有外部調(diào)試事件1調(diào)試事件。不存在軟件對(duì)DBCRO 50中的DEVTl字 段(未示出)和DBSR 49中的DEVTl字段(未示出)的mtspr訪問,以及軟件的mfspr訪 問回0。當(dāng)將DEVTl位146設(shè)置成1時(shí),由軟件調(diào)試器擁有外部調(diào)試事件1調(diào)試事件。在 這種情況下,DBCRO 50中的DEVTl字段和DBSR49中的DEVTl字段是可軟件讀寫的。DEVT2位148允許將外部調(diào)試事件2調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng)將DEVT2位 148設(shè)置成0時(shí),由硬件調(diào)試器擁有外部調(diào)試事件2調(diào)試事件。不存在軟件對(duì)DBCRO 50中 的DEVT2字段(未示出)和DBSR 49中的DEVT2字段(未示出)的mtspr訪問,以及通過 軟件的mfspr訪問回0。當(dāng)將DEVT2位148設(shè)置成1時(shí),由軟件調(diào)試器擁有外部調(diào)試事件2 調(diào)試事件。在這種情況下,DBCRO 50中的DEVT2字段和DBSR49中的DEVT2字段是可軟件 讀寫的。圖13以表格的形式表示圖9的調(diào)試資源控制寄存器41 (DBERCO)的一部分的功 能。DCNTl位150允許將調(diào)試計(jì)數(shù)器1調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng)將 DCNTl位150設(shè)置成0時(shí),由硬件調(diào)試器擁有調(diào)試計(jì)數(shù)器1調(diào)試事件。不存在軟件對(duì)計(jì)數(shù)器 1控制和狀態(tài)字段(例如DBCRO 50中的DCNTl字段70和DBSR 49中的DCNTl字段98)的 mtspr訪問,以及通過軟件的mfspr訪問回0。當(dāng)將DCNTl位150設(shè)置成1時(shí),由軟件調(diào)試 器擁有調(diào)試計(jì)數(shù)器1調(diào)試事件。在這種情況下,計(jì)數(shù)器1控制和狀態(tài)字段(例如DBCRO 50 中的DCNTl字段70和DBSR 49中的DCNTl字段98)是可軟件讀寫的。DCNT2位152允許將 調(diào)試計(jì)數(shù)器2調(diào)試事件的所有權(quán)(或管理)分配給軟件。當(dāng)將DCNT2位152設(shè)置成0時(shí), 由硬件調(diào)試器擁有調(diào)試計(jì)數(shù)器2調(diào)試事件。不存在軟件對(duì)計(jì)數(shù)器2控制和狀態(tài)字段(例如 DBCRO 50中的DCNT2字段71和DBSR 49中的DCNT2字段99)的mtspr訪問,以及通過軟件 的mfspr訪問回0。當(dāng)將DCNT2位152設(shè)置成1時(shí),由軟件調(diào)試器擁有調(diào)試計(jì)數(shù)器2調(diào)試事 件。在這種情況下,計(jì)數(shù)器2控制和狀態(tài)字段(例如DBCR050中的DCNT2字段71和DBSR 49中的DCNT2字段99)是可軟件讀寫的。CIRPT位154允許將臨界中斷跳轉(zhuǎn)調(diào)試事件的所 有權(quán)(或管理)分配給軟件。當(dāng)將CIRPT位154設(shè)置成0時(shí),由硬件調(diào)試器擁有臨界中斷 跳轉(zhuǎn)調(diào)試事件。不存在軟件對(duì)DBCRO 50中的CIRPT字段(未示出)和DBSR 49中的CIRPT 字段(未示出)的mtspr訪問,以及通過軟件的mfspr訪問回0。當(dāng)將CIRPT位154設(shè)置成 1時(shí),由軟件調(diào)試器擁有臨界中斷跳轉(zhuǎn)調(diào)試事件。在這種情況下,DBCRO 50中的CIRPT字段 和DBSR 49中的CIRPT字段是可軟件讀寫的。CRET位156允許將臨界返回調(diào)試事件的所有 權(quán)(或管理)分配給軟件。當(dāng)將CRET位156設(shè)置成0時(shí),由硬件調(diào)試器擁有臨界返回調(diào)試 事件。不存在軟件對(duì)DBCRO 50中的CRET字段(未示出)和DBSR 49中的CRET字段(未 示出)的mtspr訪問,以及通過軟件的mfspr訪問回0。當(dāng)將CRET位156設(shè)置成1時(shí),由軟 件調(diào)試器擁有臨界返回調(diào)試事件。在這種情況下,DBCRO 50中的CRET字段和DBSR49中的 CRET字段是可軟件讀寫的。仍然參考圖13,BKPT位158提供斷點(diǎn)指令調(diào)試控制。當(dāng)將BKPT位158設(shè)置成0 時(shí),硬件擁有斷點(diǎn)。執(zhí)行斷點(diǎn)(bkpt)指令(具有全0操作碼的指令)導(dǎo)致進(jìn)入硬件調(diào)試器 能指示調(diào)試操作的調(diào)試模式。當(dāng)將BKPT位158設(shè)置成1時(shí),由軟件調(diào)試器擁有斷點(diǎn)。執(zhí)行 bkpt指令導(dǎo)致非法指令異常。FT位162提供凍結(jié)定時(shí)器調(diào)試控制。當(dāng)將FT位162設(shè)置 成0時(shí),硬件調(diào)試器擁有DBCRO 50的FT字段(未示出),不允許軟件訪問。當(dāng)將FT位162 設(shè)置成1時(shí),軟件調(diào)試器擁有FT字段,因此,可軟件讀寫。在圖10-13中,可以預(yù)留位字段 110、136、140、144和160,用于由未來使用。因此,如上所述,當(dāng)處理器12初始地進(jìn)入外部調(diào)試模式時(shí),所有資源專門分配給 硬件調(diào)試器(例如外部調(diào)試電路14)。然而,通過使用調(diào)試資源控制寄存器41,硬件(例如 硬件調(diào)試器)能將資源分配回軟件(例如軟件調(diào)試器),用于由軟件專用。即,外部調(diào)試硬件能使能調(diào)試資源的第一部分的可用性,用于由調(diào)試軟件使用,其中,約定調(diào)試資源的第二部 分專用于外部調(diào)試硬件(其中,第一和第二部分互斥)。如在圖10-13的描述中所看到的, 通過將調(diào)試事件或控制分配給軟件,軟件有權(quán)訪問管理那一調(diào)試事件或控制所需的那些資 源。在一個(gè)實(shí)施例中,僅允許軟件訪問管理那一調(diào)試事件或控制所需的那些資源。例如,如 果硬件將位IACl位126和IAC2位128的每一個(gè)設(shè)置成1 (以及將IDM位112設(shè)置成1以允 許共享資源),將用于管理那些指令地址比較調(diào)試事件所需的那些狀態(tài)和控制寄存器以及 任何其他資源分配給軟件。例如,軟件將有權(quán)訪問DBCRO 50中的IACl字段61和IAC2字 段62,DBSR 49中的IACl字段82和IAC2字段84,以及IACl和IAC2寄存器45。用這種方 式,軟件因此能根據(jù)需要,通過設(shè)置適當(dāng)?shù)腎ACl字段61、IAC2字段62以及IAC寄存器45, 使能IACl或IAC2調(diào)試事件(或這兩個(gè)調(diào)試事件),以便配置調(diào)試事件。然而,如果DBERCO 中的其余位字段仍然設(shè)置成0,那么硬件專用剩余的資源。用這種方式,在外部調(diào)試模式期 間,硬件調(diào)試器和軟件調(diào)試器可以同時(shí)執(zhí)行調(diào)試操作,其中,軟件調(diào)試器限于僅訪問由硬件 調(diào)試器分配的那些資源。此外,在處理器12上運(yùn)行的調(diào)試軟件將不能訪問仍然由硬件獨(dú)有 的其他資源的任何一個(gè)。因此,注意調(diào)試軟件,被分配調(diào)試事件的所有權(quán),能訪問特定寄存 器或寄存器的特定字段,根據(jù)需要。用這種方式,硬件調(diào)試器能使能調(diào)試資源的第一部分的 可能性,用于由調(diào)試軟件使用,而將調(diào)試資源的第二部分指定給本身,其中第一和第二部分 互斥。圖14和15以表格的形式示例說明響應(yīng)DBERCO 41的特定設(shè)置,哪些資源是軟件 可訪問的。參考行172,注意,如果未使能外部調(diào)試模式(如果將EDM位52設(shè)置成0),那么, 所有資源由軟件獨(dú)有,由此是可由軟件訪問的。對(duì)圖14和15的剩余行,如行176、178、180、 182、184、186、188、190、192、194、196、198、200、202、204、206、208 和 210 中所示,使能外部 調(diào)試模式(將EDM位52設(shè)置成1)以及將DBERCO 41的IDM位112設(shè)置成1,以便DBERCO 41的剩余字段將特定的資源分配給軟件。例如,為允許軟件擁有指令地址比較1和2調(diào)試事 件(如在前一段的例子中所述),能使用行186或行188或該兩行的設(shè)置,其中,基于DBERCO 41的IACl位126或IAC2位128的哪一個(gè)設(shè)置成1,名為“軟件可訪問”的列表示哪些調(diào)試 資源可由軟件使用。注意,除參考DBCRO 50所述的那些字段外,還能分配其他調(diào)試控制寄 存器43中的其他字段(諸如DBCRl的IAClUS和IAClER字段),用于由軟件使用。圖16和17根據(jù)本發(fā)明的一個(gè)實(shí)施例示例說明屏蔽電路31的部分。圖16示例說 明從調(diào)試寄存器42到執(zhí)行單元24的讀取路徑的一部分,諸如當(dāng)執(zhí)行mfspr指令時(shí)。如上參 考圖10-13所述,當(dāng)未斷言對(duì)應(yīng)于特定調(diào)試事件的位字段時(shí),特定調(diào)試事件是硬件擁有的, 其中,通過軟件的mfspr訪問回0。然而,當(dāng)斷言對(duì)應(yīng)于特定調(diào)試事件的位字段時(shí),特定調(diào) 試事件是軟件擁有的,其中,可由軟件讀取和寫入。用這種方式,能防止在調(diào)試軟件的執(zhí)行 期間,由調(diào)試軟件讀取DBSR 49的部分。因此,參考圖16,每一 AND門220、222、224、226和 228從DBERCO 41接收第一位輸入,以及從DBSR 49接收相應(yīng)的第二位輸入。即,每一 AND 門從DBERCO接收位字段,例如,對(duì)應(yīng)于特定調(diào)試事件,以及還從DBSR 49接收位字段,對(duì)應(yīng) 于那一特定調(diào)試事件(即報(bào)告那一特定調(diào)試事件的結(jié)果)。例如,AND門222可以從DBERCO 41接收IACl位126,作為第一輸入,以及從DBSR 49接收IACl位82,作為第二輸入。如果 從DBERCO 41至AND門的輸入是“ 1 ” (表示相應(yīng)調(diào)試事件是軟件擁有的),那么那一 AND門 的輸出將反映作為第二輸入提供給AND門的、來自DBSR49的相應(yīng)位字段的值。然而,如果從DBERCO 41至AND門的輸入是“0”,那么與從DBSR49輸入的值無關(guān),AND門的輸出將為0。 用這種方式,當(dāng)否定DBERCO 41中的相應(yīng)位時(shí),mfspr訪問將總是回0。圖17示例說明執(zhí)行單元24到調(diào)試寄存器42的寫入路徑的一部分。如上參考圖 10-13所述,當(dāng)未斷言對(duì)應(yīng)于特定調(diào)試事件的位字段時(shí),特定調(diào)試事件是硬件所有的,其中, 不存在通過軟件的mtspr訪問。即,軟件不能寫入位字段。然而,當(dāng)斷言對(duì)應(yīng)于特定調(diào)試事 件的位字段時(shí),特定調(diào)試事件是軟件擁有的,其中,可由軟件讀取和寫入。因此,參考圖17, 每一 AND門230、232和234接收寫入使能信號(hào)242作為第一輸入,以及從DBERCO 41輸入 的相應(yīng)位。用這種方式,僅當(dāng)斷言從DBERCO 41輸入的相應(yīng)位時(shí),相應(yīng)位字段(例如位8、位 9和位15)能由軟件寫入。即,當(dāng)未斷言從DBERCO 41輸入的相應(yīng)位時(shí),那么不能寫入相應(yīng)位 字段。注意,在存儲(chǔ)電路236、238和240中存儲(chǔ)的位8、位9和位15分別對(duì)應(yīng)于調(diào)試控制寄存 器(諸如DBCR0-DBCR4)或DBSR 49的位字段單元8,9和15。S卩,AND門,諸如AND門230、 232和234可以存在于寄存器的寫入路徑中,根據(jù)需要,存在于調(diào)試寄存器42中。例如,存 儲(chǔ)電路236可以對(duì)應(yīng)于DBCRO 50的IAC3位字段63的寄存器存儲(chǔ)位(其中,IAC3位字段 63存儲(chǔ)在DBCRO 50的位字段單元8中)。如果存儲(chǔ)電路236對(duì)應(yīng)于DBSR 49的寄存器存 儲(chǔ)位,那么存儲(chǔ)電路236可以對(duì)應(yīng)于DAClW位字段92的寄存器存儲(chǔ)位(其中,DAClW位字 段92存儲(chǔ)在DBSR 49的位字段單元8中)。在一個(gè)實(shí)施例中,DBSR 49中的每一字段可以稱為狀態(tài)標(biāo)志,其中,與硬件擁有的 調(diào)試事件對(duì)應(yīng)的那些字段可以稱為硬件狀態(tài)標(biāo)志,以及與軟件擁有的調(diào)試事件對(duì)應(yīng)的那些 字段可以稱為軟件狀態(tài)標(biāo)志。注意,硬件狀態(tài)標(biāo)志的設(shè)置和清零由運(yùn)行硬件調(diào)試器產(chǎn)生,而 軟件狀態(tài)標(biāo)志的設(shè)置和清零,如果有的話,由運(yùn)行調(diào)試軟件而產(chǎn)生。屏蔽電路31因此屏蔽 放置硬件狀態(tài)標(biāo)志的DBSR 49中的單元,防止被調(diào)試軟件讀取,同時(shí)允許由硬件調(diào)試器讀 取硬件狀態(tài)標(biāo)志和軟件狀態(tài)標(biāo)志。注意,能使用各種不同的電路,以各種不同的方式實(shí)現(xiàn)屏 蔽電路31的功能,以便屏蔽調(diào)試狀態(tài)寄存器中的單元。圖18示例說明圖2的外部調(diào)試命令寄存器33的一個(gè)實(shí)施例。外部調(diào)試命令寄存 器33經(jīng)調(diào)試端口,從硬件調(diào)試器,例如外部調(diào)試電路14接收調(diào)試命令。外部調(diào)試命令寄存 器33包括讀/寫命令字段250和寄存器選擇字段254。在所示的實(shí)施例中,讀/寫命令字 段250是單個(gè)位字段以及寄存器選擇字段254包括7位。外部調(diào)試命令寄存器33還可以包 括為未來使用預(yù)留的位252。盡管圖18示例說明使用特定位字段的本發(fā)明的特定實(shí)施例, 但本發(fā)明的另外的實(shí)施例可以使用在每一字段中,具有不同位數(shù)的不同位字段。圖18中所 述的特定位字段僅為示例目的。此外,與在此所述的寄存器的任何一個(gè)相同,可以使用更多 或更少寄存器來存儲(chǔ)數(shù)據(jù)。舉例來說,外部調(diào)試命令寄存器33可以包括10位。圖19根據(jù)本發(fā)明的一個(gè)實(shí)施例以表格的形式表示圖18的外部調(diào)試命令寄存器33 的功能。讀/寫命令位250指定數(shù)據(jù)傳送的方向。如果讀/寫命令位為0,那么與外部調(diào)試 命令相關(guān)聯(lián)的數(shù)據(jù)寫入由寄存器選擇字段254指定的寄存器。如果讀/寫命令位為1,那么 讀取包含在由寄存器選擇字段254指定的寄存器中的數(shù)據(jù)。在一個(gè)實(shí)施例中,對(duì)只讀或只 寫寄存器,忽略讀/寫命令。寄存器選擇字段254定義哪一寄存器是用于讀取操作的源寄 存器或用于寫入操作的目的寄存器。在一個(gè)實(shí)施例中,假定忽略對(duì)只讀存儲(chǔ)器的寫入。圖20根據(jù)本發(fā)明的一個(gè)實(shí)施例以表格的形式示例說明可以用在寄存器選擇字段 254中的寄存器地址。另外的實(shí)施例可以不同地定義寄存器地址。例如,參考圖20,用于寄存器選擇字段254的值0100000表示調(diào)試寄存器42中的IACl寄存器,如行276中所示。 如在行298中所示,用于寄存器選擇字段254的值0110000表示DBSR寄存器49。因此,行 266、276、278、280、282、284、286、288、290、294、298、300、302、304、306 和 310 的每一個(gè)示例 說明用于寄存器選擇字段254的不同值,分別表示JTAG ID寄存器、IACl寄存器、IAC2寄存 器、IAC3寄存器、IAC4寄存器、DACl寄存器、DAC2寄存器、DVCl寄存器、DVC2寄存器、DBCNT 寄存器、DBSR寄存器、DBCR0-3寄存器和DBERCO寄存器。因此,在外部調(diào)試模式中,外部調(diào) 試電路14能經(jīng)調(diào)試端口,向外部調(diào)試命令寄存器33提供命令。例如,在外部調(diào)試模式中, 如果硬件調(diào)試器想將調(diào)試資源分配給軟件,它能提供命令,其中,將讀/寫命令字段設(shè)置成 0,以及將寄存器選擇字段設(shè)置成0111111 (如行310中所示)。硬件調(diào)試器然后能將所需值 經(jīng)調(diào)試端口寫入DBERC041。如上所述,屏蔽外部調(diào)試模式中軟件的讀訪問,以便不是軟件擁有的(而是硬件 擁有的)位字段返回到0。以這種方式,通過軟件操作維持一致性。然而,注意在一個(gè)實(shí)施 例中,當(dāng)硬件調(diào)試器讀取調(diào)試寄存器,諸如DBSR 49時(shí),能提供其全值。即,甚至將用于被軟 件擁有的那些位字段的值提供給硬件調(diào)試器。因此,通過在硬件調(diào)試器和軟件調(diào)試器之間共享的調(diào)試資源,能預(yù)期硬件調(diào)試器 和軟件調(diào)試器能如何同時(shí)運(yùn)行。在一個(gè)實(shí)施例中,在外部調(diào)試模式中,使能調(diào)試資源的一部 分用于由調(diào)試軟件使用的可用性的能力允許硬件調(diào)試器能調(diào)試軟件調(diào)試器。例如,在其中 使能中斷的一個(gè)實(shí)施例中,軟件擁有的調(diào)試事件的出現(xiàn)會(huì)產(chǎn)生中斷,然后由軟件中斷處理 程序處理。然后,該處理程序(即軟件例程)能掛起執(zhí)行或暫停處理器,以便將控制提供給 硬件調(diào)試器。用這種方式,硬件調(diào)試器能經(jīng)外部調(diào)試命令寄存器33指示調(diào)試操作,由此調(diào) 試該調(diào)試軟件本身。注意在另外的實(shí)施例中,可以使用其他類型的存儲(chǔ)電路或邏輯電路來 真正對(duì)軟件使能調(diào)試資源的可用性,而不是經(jīng)諸如調(diào)試資源控制寄存器41這樣的控制寄 存器。因?yàn)閷?shí)現(xiàn)本發(fā)明的裝置大部分來說,由本領(lǐng)域的技術(shù)人員已知的電子部件和電路 組成,為理解和了解本發(fā)明的基本原理和為了不混淆和混亂本發(fā)明的教導(dǎo),將不會(huì)以比上 述所示所需考慮更大的程度來說明電路細(xì)節(jié)。術(shù)語“程序”,如在此所使用的,定義為在計(jì)算機(jī)系統(tǒng)上執(zhí)行而設(shè)計(jì)的指令序列。程 序,或計(jì)算機(jī)程序可以包括子例程、功能、進(jìn)程、對(duì)象方法、對(duì)象實(shí)現(xiàn)、可執(zhí)行應(yīng)用程序、jave 程序、servlet、源代碼、對(duì)象代碼、共享庫/動(dòng)態(tài)加載庫和/或?yàn)樵谟?jì)算機(jī)系統(tǒng)上執(zhí)行而設(shè) 計(jì)的其他指令序列。上述實(shí)施例中的一些,根據(jù)具體情況,可以使用各種不同的信息處理系統(tǒng)實(shí)現(xiàn)。例 如,盡管圖1和上述論述描述了示例性信息處理結(jié)構(gòu),但僅呈現(xiàn)該示例性結(jié)構(gòu)來提供論述 本發(fā)明的各個(gè)方面中的有用參考。當(dāng)然,為論述目的,已經(jīng)簡(jiǎn)化該結(jié)構(gòu)的描述,以及其僅是 可以根據(jù)本發(fā)明使用的許多不同類型的適當(dāng)結(jié)構(gòu)的一種。本領(lǐng)域的技術(shù)人員將意識(shí)到,邏 輯塊間的邊界僅是示例性的,以及另外的實(shí)施例可以合并邏輯塊或電路元件或利用各種邏 輯塊或電路元件的功能的另外的分解。S卩,將理解到在此所述的結(jié)構(gòu)僅是示例性的,實(shí)際上,能實(shí)現(xiàn)許多其他結(jié)構(gòu),其能 實(shí)現(xiàn)相同的功能。在摘要中,但仍然含義明確,有效地“關(guān)聯(lián)”實(shí)現(xiàn)相同功能的部件的排列, 以便實(shí)現(xiàn)所需功能。因此,實(shí)現(xiàn)特定功能的在此組合的任何兩個(gè)部件能看作彼此“關(guān)聯(lián)”,以便實(shí)現(xiàn)所需功能,與結(jié)構(gòu)或內(nèi)部組件無關(guān)。同樣地,如此關(guān)聯(lián)的任何兩個(gè)部件也能看作彼此 “可操作地連接”,或“可操作地耦合”以便實(shí)現(xiàn)所需功能。同樣例如,在一個(gè)實(shí)施例中,系統(tǒng)10的所示元件是位于單個(gè)集成電路上或相同設(shè) 備內(nèi)的電路。另外,系統(tǒng)10可以包括彼此互連的任意多個(gè)單獨(dú)的集成電路或單獨(dú)的設(shè)備。 例如,系統(tǒng)10或其一部分可以是物理電路的軟或代碼表示或可轉(zhuǎn)換成物理電路的邏輯表 示。同樣地,系統(tǒng)10可以嵌入任何適當(dāng)類型的硬件描述語言中。此外,本領(lǐng)域的技術(shù)人員將意識(shí)到上述操作的功能間的邊界僅是示例性的??梢?將多個(gè)操作的功能組合成單個(gè)操作,和/或可以將單個(gè)操作的功能分布在另外的操作中。 此外,另外的實(shí)施例可以包括特定操作的多個(gè)實(shí)例,以及在不同的其他實(shí)施例中,可以改變 操作的順序。在此所述的全部或一些軟件可以是數(shù)據(jù)處理系統(tǒng)10的接收元件,例如,來自計(jì)算 機(jī)可讀介質(zhì),諸如存儲(chǔ)器18或其他計(jì)算機(jī)系統(tǒng)上的其他介質(zhì)。這些計(jì)算機(jī)可讀介質(zhì)可以是 永久的、可移動(dòng)的或遠(yuǎn)程耦合到信息處理系統(tǒng),諸如數(shù)據(jù)處理系統(tǒng)10。計(jì)算機(jī)可讀介質(zhì)可以 包括,例如但不是限制,下述的任意多個(gè)磁存儲(chǔ)介質(zhì),包括磁盤和磁帶存儲(chǔ)介質(zhì);光學(xué)存 儲(chǔ)介質(zhì),諸如光盤介質(zhì)(例如CD-ROM、CD-R等等),以及數(shù)字視頻盤存儲(chǔ)介質(zhì);非易失存儲(chǔ) 介質(zhì),包括基于半導(dǎo)體的存儲(chǔ)單元,諸如FLASH存儲(chǔ)器、EEPROM、EPROM、ROM ;鐵磁數(shù)字存儲(chǔ) 器;MRAM ;易失存儲(chǔ)介質(zhì),包括寄存器、緩沖器或高速緩存,主存儲(chǔ)器、RAM等等;以及數(shù)據(jù)傳 輸介質(zhì),包括計(jì)算機(jī)網(wǎng)絡(luò)、點(diǎn)對(duì)點(diǎn)遠(yuǎn)程通訊設(shè)備,以及傳載波傳輸介質(zhì),僅提到了一些。盡管在此參考具體的實(shí)施例描述了本發(fā)明,但在不背離如在下文的權(quán)利要求中所 述的本發(fā)明的范圍的情況下,能做出各種改進(jìn)和改變。因此,說明書和附圖視為示例性的, 而不是限制,以及所有這些改進(jìn)意圖包括在本發(fā)明的范圍內(nèi)。參考具體實(shí)施例所述的任何 好處、優(yōu)點(diǎn)或解決方案不打算解釋為任一或所有權(quán)利要求的關(guān)鍵的、所需的或必要的特征 或元件。術(shù)語“耦合”,如在此所使用的,不打算限制為直接耦合或機(jī)械耦合。此外,術(shù)語“一” (“a”或“an”),如在此所使用的,定義為一個(gè)或多于一個(gè)。此夕卜, 在權(quán)利要求中使用引入短語,諸如“至少一個(gè)”和“一個(gè)或多個(gè)”不應(yīng)當(dāng)解釋為暗指由不定冠 詞“一” (“a”或“an”)引入的另一權(quán)利要求要素將包含該引入的權(quán)利要求要素的任何特 定權(quán)利要求限制到僅包含一個(gè)這種要素的發(fā)明,即使當(dāng)相同的權(quán)利要求包含引入短語“一 個(gè)或多個(gè)”或“至少一個(gè)”以及不定冠詞“一” (“a”或“an”)。對(duì)使用定冠詞同理。除非另外闡述,使用術(shù)語,諸如“第一”和“第二”來任意地區(qū)分這些術(shù)語所述的要 素。因此,這些術(shù)語不一定意圖表示這些要素的時(shí)間或其他優(yōu)先級(jí)。附加文本1. 一種方法,包括提供集成電路,所述集成電路具有專用于調(diào)試操作的多個(gè)調(diào)試資源,其中,所述調(diào) 試操作包括由所述集成電路執(zhí)行的調(diào)試軟件指示的操作和由所述集成電路外的外部調(diào)試 硬件指示的操作;使能所述調(diào)試資源的第一部分的可用性,用于由所述調(diào)試軟件使用,其中,確保所 述多個(gè)調(diào)試資源的第二部分由外部調(diào)試硬件專用,以及其中,所述第一部分與所述第二部 分互斥;以及
執(zhí)行由使用所述調(diào)試資源的所述第一部分的至少一個(gè)調(diào)試資源的所述調(diào)試軟件 指示的操作,和由使用所述調(diào)試資源的所述第二部分的至少一個(gè)調(diào)試資源的所述外部調(diào)試 硬件指示的操作。2.如陳述1所述的方法,其中,所述執(zhí)行步驟進(jìn)一步特征在于,當(dāng)同時(shí)運(yùn)行所述外 部調(diào)試硬件和所述調(diào)試軟件時(shí)發(fā)生。3.如陳述1所述的方法,其中,所述提供步驟進(jìn)一步特征在于,所述調(diào)試資源包括多個(gè)調(diào)試寄存器的字段以及所 述集成電路具有控制寄存器,其中,所述控制寄存器識(shí)別所述調(diào)試資源的使用;所述使能步驟進(jìn)一步特征在于,響應(yīng)所述外部調(diào)試硬件,加載所述控制寄存器,以 便識(shí)別所述第一部分和所述第二部分;以及基于所述控制寄存器的加載,響應(yīng)于所述調(diào)試軟件,設(shè)置所述多個(gè)調(diào)試寄存器的 第一調(diào)試寄存器的字段。4.如陳述3所述的方法,其中,所述使能步驟進(jìn)一步特征在于,響應(yīng)所述控制寄存 器,屏蔽所述第一調(diào)試寄存器的第一字段集,以便所述第一字段集不響應(yīng)所述調(diào)試軟件。5.如陳述1所述的方法,其中,所述提供步驟進(jìn)一步特征在于,所述集成電路進(jìn)一步包括控制寄存器;以及所述確保步驟進(jìn)一步特征在于,所述控制寄存器識(shí)別所述第一部分和所述第二部 分。6.如陳述5所述的方法,其中,所述提供步驟進(jìn)一步特征在于,所述調(diào)試資源包括調(diào)試寄存器的字段;以及所述確保步驟進(jìn)一步特征在于,響應(yīng)所述外部調(diào)試硬件,設(shè)立所述控制寄存器的 設(shè)置,以及所述控制寄存器使能所述調(diào)試寄存器的第一字段集,以便由所述調(diào)試軟件執(zhí)行, 以及使能所述調(diào)試寄存器的第二字段集,以便從所述調(diào)試軟件屏蔽。7.如陳述6所述的方法,其中,所述提供步驟進(jìn)一步特征在于,所述集成電路進(jìn)一步包括第二控制寄存器,以及 所述調(diào)試資源包括至少一個(gè)比較器和計(jì)數(shù)器;以及所述確保步驟進(jìn)一步特征在于,在定義所述調(diào)試資源的所述第一部分和所述調(diào)試 資源的所述第二部分中加載所述第二控制寄存器。8. —種集成電路,包括處理單元;多個(gè)調(diào)試資源,專用于調(diào)試操作;控制寄存器,具有多個(gè)字段,用于控制調(diào)試操作,其中每一調(diào)試操作利用所述調(diào)試資源的一部分;所述集成電路具有所有字段可用于由所述集成電路外的調(diào)試硬件使用的模式;以 及響應(yīng)所述調(diào)試硬件加載的字段包括所述多個(gè)字段的第一部分并導(dǎo)致識(shí)別所述多 個(gè)調(diào)試資源的第一子集和所述多個(gè)調(diào)試資源的第二子集;以及所述多個(gè)調(diào)試資源的調(diào)試寄存器,具有所述第一子集中的第一字段組和所述第二 子集中的第二字段組,其中,所述第二字段組響應(yīng)由所述處理單元執(zhí)行的調(diào)試軟件。
9.如陳述8所述的集成電路,其中,所述處理單元包括耦合到所述多個(gè)調(diào)試資源的控制電路;以及耦合到所述控制電路和所述多個(gè)調(diào)試資源的指令取得單元。10.如陳述9所述的集成電路,其中,所述多個(gè)調(diào)試資源包括專用于調(diào)試的多個(gè)寄存器。11.如陳述10所述的集成電路,其中,所述處理單元進(jìn)一步包括耦合到所述控制 電路和所述多個(gè)調(diào)試資源的加載/存儲(chǔ)單元。12.如陳述11所述的集成電路,其中,所述多個(gè)調(diào)試資源進(jìn)一步包括計(jì)數(shù)器。13.如陳述12所述的集成電路,其中,所述多個(gè)調(diào)試資源進(jìn)一步包括比較器。14. 一種在集成電路上運(yùn)行硬件調(diào)試器和調(diào)試軟件的方法,包括在所述集成電路上提供用于執(zhí)行調(diào)試操作的多個(gè)調(diào)試資源;從所述多個(gè)調(diào)試資源識(shí)別調(diào)試資源的第一子集,其中,調(diào)試資源的所述第一子集 是所述硬件調(diào)試器不需要的并且可用于所述調(diào)試軟件的調(diào)試資源,其中,所述硬件調(diào)試器 在所述集成電路的外部,以及從所述多個(gè)調(diào)試資源識(shí)別調(diào)試資源的第二子集,其中,資源的 所述第二子集是在識(shí)別所述第一子集的步驟中,在識(shí)別所述第一子集后,剩余的多個(gè)調(diào)試 資源;同時(shí)運(yùn)行所述硬件調(diào)試器和調(diào)試軟件,其中由所述集成電路執(zhí)行所述調(diào)試軟件;所述硬件調(diào)試器使用資源的所述第二子集而不是調(diào)試資源的所述第一子集;以及所述調(diào)試軟件使用資源的所述第一子集而不是調(diào)試資源的所述第二子集。15.如陳述14所述的方法,其中,識(shí)別調(diào)試資源集的步驟進(jìn)一步特征在于所述調(diào) 試資源集專用于調(diào)試。16.如陳述14所述的方法,其中,所述識(shí)別步驟進(jìn)一步特征在于識(shí)別所述第一子 集自然識(shí)別了所述第二子集。17.如陳述14所述的方法,其中,所述提供步驟進(jìn)一步特征在于所述調(diào)試資源包 括寄存器。18.如陳述14所述的方法,其中,同時(shí)運(yùn)行所述硬件調(diào)試器和調(diào)試軟件的步驟進(jìn) 一步特征在于使用所述硬件調(diào)試器來調(diào)試所述調(diào)試軟件。19.如陳述14所述的方法,其中所述提供步驟進(jìn)一步特征在于提供具有字段的控制寄存器和調(diào)試寄存器,其中所述調(diào)試寄存器和所述控制寄存器在所述集成電路上,以及所述控制寄存器響應(yīng)所述調(diào)試軟件,指定所述調(diào)試資源的使用;所述識(shí)別步驟進(jìn)一步特征在于使用所述硬件調(diào)試器來加載所述控制寄存器,以便 屏蔽所述調(diào)試寄存器的第一字段組;以及同時(shí)運(yùn)行的步驟進(jìn)一步特征在于從所述第一字段組屏蔽所述調(diào)試軟件。20.如陳述14所述的方法,其中所述提供步驟進(jìn)一步特征在于具有控制寄存器和調(diào)試寄存器,其中所述控制寄存器具有多個(gè)字段,用于控制調(diào)試操作;每一調(diào)試操作識(shí)別所述調(diào)試資源的一部分的使用;
所述集成電路具有所有字段可用于由所述集成電路外的所述硬件調(diào)試器使用的 模式;以及識(shí)別調(diào)試資源的所述第一子集的步驟進(jìn)一步特征在于響應(yīng)所述硬件調(diào)試器,加載 所述控制寄存器的多個(gè)字段的第一子集,由此字段的所述第一子集定義調(diào)試資源的所述第
一子集。
權(quán)利要求
一種方法,包括提供集成電路,所述集成電路具有專用于調(diào)試操作的多個(gè)調(diào)試資源,其中,所述調(diào)試操作包括由所述集成電路執(zhí)行的調(diào)試軟件指示的操作和由所述集成電路外的外部調(diào)試硬件指示的操作;使能所述調(diào)試資源的第一部分的可用性,用于由所述調(diào)試軟件使用,其中,確保所述多個(gè)調(diào)試資源的第二部分由外部調(diào)試硬件專用,以及其中,所述第一部分與所述第二部分互斥;以及執(zhí)行由使用所述調(diào)試資源的所述第一部分的至少一個(gè)調(diào)試資源的所述調(diào)試軟件指示的操作,和由使用所述調(diào)試資源的所述第二部分的至少一個(gè)調(diào)試資源的所述外部調(diào)試硬件指示的操作。
2.如權(quán)利要求1所述的方法,其中,所述執(zhí)行步驟進(jìn)一步特征在于,當(dāng)同時(shí)運(yùn)行所述外 部調(diào)試硬件和所述調(diào)試軟件時(shí)發(fā)生。
3.如權(quán)利要求1所述的方法,其中,所述提供步驟進(jìn)一步特征在于,所述調(diào)試資源包括多個(gè)調(diào)試寄存器的字段以及所述集 成電路具有控制寄存器,其中,所述控制寄存器識(shí)別所述調(diào)試資源的使用;所述使能步驟進(jìn)一步特征在于,響應(yīng)所述外部調(diào)試硬件,加載所述控制寄存器,以便識(shí) 別所述第一部分和所述第二部分;以及基于所述控制寄存器的加載,響應(yīng)于所述調(diào)試軟件,設(shè)置所述多個(gè)調(diào)試寄存器的第一 調(diào)試寄存器的字段。
4.如權(quán)利要求3所述的方法,其中,所述使能步驟進(jìn)一步特征在于,響應(yīng)所述控制寄存 器,屏蔽所述第一調(diào)試寄存器的第一字段集,以便所述第一字段集不響應(yīng)所述調(diào)試軟件。
5.如權(quán)利要求1所述的方法,其中,所述提供步驟進(jìn)一步特征在于,所述集成電路進(jìn)一步包括控制寄存器;以及 所述確保步驟進(jìn)一步特征在于,所述控制寄存器識(shí)別所述第一部分和所述第二部分。
6.如權(quán)利要求5所述的方法,其中,所述提供步驟進(jìn)一步特征在于,所述調(diào)試資源包括調(diào)試寄存器的字段;以及 所述確保步驟進(jìn)一步特征在于,響應(yīng)所述外部調(diào)試硬件,設(shè)立所述控制寄存器的設(shè)置, 以及所述控制寄存器使能所述調(diào)試寄存器的第一字段集,以便由所述調(diào)試軟件執(zhí)行,以及 使能所述調(diào)試寄存器的第二字段集,以便從所述調(diào)試軟件屏蔽。
7.如權(quán)利要求6所述的方法,其中,所述提供步驟進(jìn)一步特征在于,所述集成電路進(jìn)一步包括第二控制寄存器,以及所述 調(diào)試資源包括至少一個(gè)比較器和計(jì)數(shù)器;以及所述確保步驟進(jìn)一步特征在于,在定義所述調(diào)試資源的所述第一部分和所述調(diào)試資源 的所述第二部分中加載所述第二控制寄存器。
8.一種集成電路,包括 處理單元;多個(gè)調(diào)試資源,專用于調(diào)試操作; 控制寄存器,具有多個(gè)字段,用于控制調(diào)試操作,其中 每一調(diào)試操作利用所述調(diào)試資源的一部分;所述集成電路具有所有字段可用于由所述集成電路外的調(diào)試硬件使用的模式;以及 響應(yīng)所述調(diào)試硬件加載的字段包括所述多個(gè)字段的第一部分并導(dǎo)致識(shí)別所述多個(gè)調(diào) 試資源的第一子集和所述多個(gè)調(diào)試資源的第二子集;以及所述多個(gè)調(diào)試資源的調(diào)試寄存器,具有所述第一子集中的第一字段組和所述第二子集 中的第二字段組,其中,所述第二字段組響應(yīng)由所述處理單元執(zhí)行的調(diào)試軟件。
9.如權(quán)利要求8所述的集成電路,其中,所述處理單元包括 耦合到所述多個(gè)調(diào)試資源的控制電路;以及耦合到所述控制電路和所述多個(gè)調(diào)試資源的指令取得單元。
10.如權(quán)利要求9所述的集成電路,其中,所述多個(gè)調(diào)試資源包括專用于調(diào)試的多個(gè)寄存器。
11.如權(quán)利要求10所述的集成電路,其中,所述處理單元進(jìn)一步包括耦合到所述控制 電路和所述多個(gè)調(diào)試資源的加載/存儲(chǔ)單元。
12.如權(quán)利要求11所述的集成電路,其中,所述多個(gè)調(diào)試資源進(jìn)一步包括計(jì)數(shù)器。
13.如權(quán)利要求12所述的集成電路,其中,所述多個(gè)調(diào)試資源進(jìn)一步包括比較器。
14.一種在集成電路上運(yùn)行硬件調(diào)試器和調(diào)試軟件的方法,包括 在所述集成電路上提供用于執(zhí)行調(diào)試操作的多個(gè)調(diào)試資源;從所述多個(gè)調(diào)試資源識(shí)別調(diào)試資源的第一子集,其中,調(diào)試資源的所述第一子集是所 述硬件調(diào)試器不需要的并且可用于所述調(diào)試軟件的調(diào)試資源,其中,所述硬件調(diào)試器在所 述集成電路的外部,以及從所述多個(gè)調(diào)試資源識(shí)別調(diào)試資源的第二子集,其中,資源的所 述第二子集是在識(shí)別所述第一子集的步驟中,在識(shí)別所述第一子集后,剩余的多個(gè)調(diào)試資 源;同時(shí)運(yùn)行所述硬件調(diào)試器和調(diào)試軟件,其中 由所述集成電路執(zhí)行所述調(diào)試軟件;所述硬件調(diào)試器使用資源的所述第二子集而不是調(diào)試資源的所述第一子集;以及 所述調(diào)試軟件使用資源的所述第一子集而不是調(diào)試資源的所述第二子集。
15.如權(quán)利要求14所述的方法,其中,識(shí)別調(diào)試資源集的步驟進(jìn)一步特征在于所述調(diào) 試資源集專用于調(diào)試。
16.如權(quán)利要求14所述的方法,其中,所述識(shí)別步驟進(jìn)一步特征在于識(shí)別所述第一子 集自然識(shí)別了所述第二子集。
17.如權(quán)利要求14所述的方法,其中,所述提供步驟進(jìn)一步特征在于所述調(diào)試資源包 括寄存器。
18.如權(quán)利要求14所述的方法,其中,同時(shí)運(yùn)行所述硬件調(diào)試器和調(diào)試軟件的步驟進(jìn) 一步特征在于使用所述硬件調(diào)試器來調(diào)試所述調(diào)試軟件。
19.如權(quán)利要求14所述的方法,其中所述提供步驟進(jìn)一步特征在于提供具有字段的控制寄存器和調(diào)試寄存器,其中 所述調(diào)試寄存器和所述控制寄存器在所述集成電路上,以及 所述控制寄存器響應(yīng)所述調(diào)試軟件,指定所述調(diào)試資源的使用; 所述識(shí)別步驟進(jìn)一步特征在于使用所述硬件調(diào)試器來加載所述控制寄存器,以便屏蔽 所述調(diào)試寄存器的第一字段組;以及同時(shí)運(yùn)行的步驟進(jìn)一步特征在于從所述第一字段組屏蔽所述調(diào)試軟件。
20.如權(quán)利要求14所述的方法,其中所述提供步驟進(jìn)一步特征在于具有控制寄存器和調(diào)試寄存器,其中 所述控制寄存器具有多個(gè)字段,用于控制調(diào)試操作; 每一調(diào)試操作識(shí)別所述調(diào)試資源的一部分的使用;所述集成電路具有所有字段可用于由所述集成電路外的所述硬件調(diào)試器使用的模式;以及識(shí)別調(diào)試資源的所述第一子集的步驟進(jìn)一步特征在于響應(yīng)所述硬件調(diào)試器,加載所述 控制寄存器的多個(gè)字段的第一子集,由此字段的所述第一子集定義調(diào)試資源的所述第一子集。
全文摘要
一種方法,包括具有多個(gè)調(diào)試資源(42)的集成電路(12)。調(diào)試資源專用于調(diào)試操作。調(diào)試操作包括由集成電路執(zhí)行的調(diào)試軟件指示的操作和由集成電路外的外部調(diào)試硬件(14)指示的操作。該方法進(jìn)一步包括使能調(diào)試資源的第一部分的可用性,用于由調(diào)試軟件使用,其中,確保調(diào)試資源的第二部分專用于外部調(diào)試硬件。第一部分與第二部分互斥。該方法包括執(zhí)行由使用調(diào)試資源的第一部分的至少一個(gè)調(diào)試資源的調(diào)試軟件指示的操作,以及執(zhí)行由使用調(diào)試資源的第二部分的至少一個(gè)調(diào)試資源的外部調(diào)試硬件指示的操作。
文檔編號(hào)G06F11/26GK101946236SQ200980105425
公開日2011年1月12日 申請(qǐng)日期2009年1月23日 優(yōu)先權(quán)日2008年2月29日
發(fā)明者威廉·C·莫耶, 阿利斯泰爾·P·羅伯遜, 雷·C·馬歇爾 申請(qǐng)人:飛思卡爾半導(dǎo)體公司