[發(fā)明專利]數(shù)據(jù)處理裝置的除錯(cuò)有效
| 申請(qǐng)?zhí)枺?/td> | 201180045900.2 | 申請(qǐng)日: | 2011-07-25 |
| 公開(kāi)(公告)號(hào): | CN103140837A | 公開(kāi)(公告)日: | 2013-06-05 |
| 發(fā)明(設(shè)計(jì))人: | 邁克爾·約翰·威廉斯;理查德·羅伊·格里森思懷特;西蒙·約翰·克拉斯克 | 申請(qǐng)(專利權(quán))人: | ARM有限公司 |
| 主分類號(hào): | G06F11/36 | 分類號(hào): | G06F11/36 |
| 代理公司: | 北京東方億思知識(shí)產(chǎn)權(quán)代理有限責(zé)任公司 11258 | 代理人: | 柳春雷 |
| 地址: | 英國(guó)*** | 國(guó)省代碼: | 英國(guó);GB |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 數(shù)據(jù)處理 裝置 除錯(cuò) | ||
技術(shù)領(lǐng)域
本發(fā)明關(guān)于數(shù)據(jù)處理。更特定而言,本發(fā)明關(guān)于數(shù)據(jù)處理裝置的除錯(cuò)(debugging)。
背景技術(shù)
數(shù)據(jù)處理裝置的除錯(cuò)是一種在于數(shù)據(jù)處理裝置上執(zhí)行的計(jì)算機(jī)程序或于包含數(shù)據(jù)處理裝置的電子硬件中,尋找錯(cuò)誤(bug)或缺陷并減少錯(cuò)誤或缺陷數(shù)量的方法過(guò)程。隨著微處理器隨著時(shí)間的演進(jìn),微處理器和設(shè)計(jì)為在微處理器上執(zhí)行的軟件變得更為復(fù)雜,使得對(duì)于產(chǎn)出高效的方法和系統(tǒng)以在操作中偵測(cè)缺陷而言,除錯(cuò)過(guò)程逐漸變得更有挑戰(zhàn)性。已知提供數(shù)據(jù)處理裝置的除錯(cuò)模式,將數(shù)據(jù)處理裝置切換為除錯(cuò)模式以執(zhí)行除錯(cuò)操作。
考慮現(xiàn)代微處理器的復(fù)雜度,對(duì)于給定微處理器而言能夠執(zhí)行一個(gè)以上的指令集是常見(jiàn)的。例如,ARM7TDMIRTM處理器核心能夠執(zhí)行正規(guī)的“A32”指令集(亦稱為“ARM”指令集)和更為精簡(jiǎn)的“T32”指令集(亦稱為“Thumb”指令集),“A32”指令集包含32位寬操作碼,“T32”指令集提供已壓縮為16位寬操作碼的最常用的A32指令的子集。在執(zhí)行時(shí),16位寬指令可被解壓縮為全32位寬A32指令,或可使用專用譯碼單元直接執(zhí)行。因此,給定數(shù)據(jù)處理裝置可能夠執(zhí)行復(fù)數(shù)個(gè)不同的指令集。A32指令集與T32指令集都對(duì)32位寬數(shù)據(jù)進(jìn)行操作。
除了能夠執(zhí)行復(fù)數(shù)個(gè)不同指令集的給定數(shù)據(jù)處理裝置以外,許多現(xiàn)代數(shù)據(jù)處理裝置能夠操作于復(fù)數(shù)個(gè)不同的操作狀態(tài),或操作于復(fù)數(shù)個(gè)不同的“權(quán)限級(jí)別(privilege?levels)”。在不同的權(quán)限級(jí)別,數(shù)據(jù)處理裝置對(duì)程序指令施加不同的對(duì)于存儲(chǔ)器和寄存器組的至少一者的存取許可(access?permission)。例如,處理電路在標(biāo)準(zhǔn)權(quán)限級(jí)別下可存取的控制寄存器組,相較于處理電路在操作于較高權(quán)限級(jí)別時(shí)(例如在數(shù)據(jù)處理裝置操作于系統(tǒng)模式而非使用者模式時(shí))可存取的控制寄存器組,通常將更為受限。在操作于不同的權(quán)限級(jí)別時(shí),數(shù)據(jù)處理裝置通常將應(yīng)用不同的虛擬至物理存儲(chǔ)器地址轉(zhuǎn)譯方案,來(lái)轉(zhuǎn)譯程序指令的存儲(chǔ)器地址。
例如,在實(shí)施虛擬化(virtualisation)并運(yùn)行超管理器(hypervisor)以使復(fù)數(shù)個(gè)不同的訪客操作系統(tǒng)能夠在相同數(shù)據(jù)處理裝置上運(yùn)行的數(shù)據(jù)處理系統(tǒng)中,數(shù)據(jù)處理裝置的任何比超管理器的權(quán)限級(jí)別低的權(quán)限級(jí)別(亦即,在超管理器的監(jiān)督下運(yùn)行),將具有與虛擬化過(guò)程相關(guān)聯(lián)的額外的地址轉(zhuǎn)譯級(jí)別。該額外的地址轉(zhuǎn)譯級(jí)別使用“虛擬轉(zhuǎn)譯表基址寄存器(virtual?translation?table?base?register)”。然而,對(duì)應(yīng)于超管理器層本身的權(quán)限級(jí)別不需參考虛擬轉(zhuǎn)譯表基址寄存器,而僅需參考轉(zhuǎn)譯表基址寄存器且因此涉及的轉(zhuǎn)譯級(jí)將少一級(jí)。
已知在能夠執(zhí)行復(fù)數(shù)個(gè)指令集的處理器中,施加默認(rèn)除錯(cuò)指令集用于在數(shù)據(jù)處理裝置位于除錯(cuò)模式中時(shí)使用。例如,在ARM10、ARM11與ARM?Cortex處理器中,默認(rèn)為在數(shù)據(jù)處理裝置被切換為除錯(cuò)模式時(shí)使用A32指令集。替代性的已知作法為(例如在ARM7TDMIRTM與ARM9處理器中)在進(jìn)入除錯(cuò)模式時(shí),指令集狀態(tài)保持為如進(jìn)入除錯(cuò)模式時(shí)的狀態(tài),使得若數(shù)據(jù)處理裝置在進(jìn)入除錯(cuò)模式時(shí)正執(zhí)行T32指令,則將T32指令用于除錯(cuò)過(guò)程,而若數(shù)據(jù)處理裝置在進(jìn)入除錯(cuò)模式時(shí)正執(zhí)行A32指令,則將用A32指令執(zhí)行除錯(cuò)過(guò)程。
然而,由于在數(shù)據(jù)處理裝置操作狀態(tài),亦即,在欲執(zhí)行除錯(cuò)操作時(shí)數(shù)據(jù)處理裝置正操作于的權(quán)限級(jí)別,與分配用于數(shù)據(jù)處理裝置的除錯(cuò)模式中的指令集之間可能的不匹配,可能發(fā)生問(wèn)題。因此,適合用于處理器當(dāng)前權(quán)限級(jí)別的虛擬至物理地址轉(zhuǎn)譯方案,可不兼容于選定的除錯(cuò)指令集。在可配置為具有用于指令的可變寬度寄存器的數(shù)據(jù)處理裝置中,此可代表特定問(wèn)題,因?yàn)榫哂休^大操作數(shù)(operand)位寬的指令必須被用于除錯(cuò)過(guò)程,而處理器的操作狀態(tài)可能意味著在除錯(cuò)模式中應(yīng)當(dāng)實(shí)施32位虛擬至物理地址轉(zhuǎn)譯方案。處理器操作狀態(tài)與除錯(cuò)指令集之間的這種潛在的不匹配增加了除錯(cuò)操作的復(fù)雜度,因?yàn)槌e(cuò)模塊硬件隨后將需被設(shè)計(jì)為容納大量的位圖樣(bit?pattern),位圖樣對(duì)應(yīng)于可由數(shù)據(jù)處理裝置執(zhí)行的復(fù)數(shù)個(gè)指令集中的每一者。因此,產(chǎn)生了減少除錯(cuò)電路復(fù)雜度但仍能夠?qū)?shù)據(jù)處理裝置的除錯(cuò)提供靈活性的需求,該數(shù)據(jù)處理裝置能夠操作于復(fù)數(shù)個(gè)不同的權(quán)限級(jí)別和/或能夠執(zhí)行復(fù)數(shù)個(gè)不同的指令集。
發(fā)明內(nèi)容
根據(jù)第一方面,本發(fā)明提供一種數(shù)據(jù)處理裝置,包含:
數(shù)據(jù)處理電路,該數(shù)據(jù)處理電路用于響應(yīng)于程序指令的執(zhí)行而執(zhí)行數(shù)據(jù)處理操作,該數(shù)據(jù)處理電路被配置為至少操作于操作模式和除錯(cuò)模式中;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于ARM有限公司,未經(jīng)ARM有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201180045900.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 數(shù)據(jù)處理設(shè)備,數(shù)據(jù)處理方法,和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理電路、數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法、數(shù)據(jù)處理控制方法
- 數(shù)據(jù)處理設(shè)備、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法及數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法及計(jì)算機(jī)可讀取的記錄介質(zhì)
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法以及數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法以及數(shù)據(jù)處理程序
- 數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法和數(shù)據(jù)處理程序





