TWI505085B - 資料處理裝置的除錯(一) - Google Patents
資料處理裝置的除錯(一) Download PDFInfo
- Publication number
- TWI505085B TWI505085B TW100126425A TW100126425A TWI505085B TW I505085 B TWI505085 B TW I505085B TW 100126425 A TW100126425 A TW 100126425A TW 100126425 A TW100126425 A TW 100126425A TW I505085 B TWI505085 B TW I505085B
- Authority
- TW
- Taiwan
- Prior art keywords
- privilege level
- instruction
- data processing
- debug
- privilege
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims description 236
- 230000015654 memory Effects 0.000 claims description 61
- 238000012544 monitoring process Methods 0.000 claims description 20
- 238000013519 translation Methods 0.000 claims description 20
- 230000009467 reduction Effects 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 238000003672 processing method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims 2
- 101000871498 Homo sapiens m7GpppX diphosphatase Proteins 0.000 description 27
- MIQYPPGTNIFAPO-CABCVRRESA-N PS(6:0/6:0) Chemical compound CCCCCC(=O)OC[C@@H](OC(=O)CCCCC)COP(O)(=O)OC[C@H](N)C(O)=O MIQYPPGTNIFAPO-CABCVRRESA-N 0.000 description 27
- 102100033718 m7GpppX diphosphatase Human genes 0.000 description 27
- 238000012546 transfer Methods 0.000 description 25
- 230000014616 translation Effects 0.000 description 18
- 230000007704 transition Effects 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000007792 addition Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- Microcomputers (AREA)
Description
本發明係關於資料處理。更特定言之,本發明係關於資料處理裝置的除錯。
所習知者為:為要了決定資料處理硬體及/或軟體的操作上的缺陷,而執行資料處理裝置的除錯。當處理器由於在單一資料處理積體電路上具有更多的資料處理元件而更為複雜時,該處理器可能包含:經組態以執行多個作業系統的多個處理器,除錯的過程變得更為複雜和具有挑戰性。然而,在軟體和系統設計中,除錯係重要的階段以識別和消除缺陷。
亦所習知者為:提供能操作於複數個處理器操作狀態的資料處理裝置,其中處理電路施加作用於程式指令,以對記憶體和一組暫存器之至少一者具有不同的存取許可,該組暫存器處於各種不同的特權層級。舉例而言,提供一使用者模式,其中程式指令對一子組合的控制暫存器具有存取許可,及提供一系統模式,其中程式指令對一較大子組合的控制暫存器具有存取許可。資料處理裝置在所有可能的模式中的操作應被完全地除錯係重要的。
所習知者為:在ARM v7處理器架構中提供一特別的除錯模式,其中處理器進入該模式以處理一除錯事件,例如中斷點或觀察點匹配(watchpoint match)。當處於除錯模式時,處理器從指令轉移暫存器讀取指令,該指令轉移暫存器藉由連接至資料處理裝置的除錯器透過除錯埠來控制。根據指令的選擇,除錯器能檢視和修正處理器暫存器的內容,及檢視和修正連至處理器的記憶體之內容。因此,除錯器能有效地對軟體程式除錯,及診斷其他缺陷,該等其他缺陷例如為在資料處理裝置本身的設計中之缺陷。
從而,具有提供使得資料處理裝置在不同的操作狀態之間轉換的更為有效的方式之需求。
根據第一態樣,本發明提供一資料處理裝置,該資料處理裝置包含:處理電路,該處理電路用以處理資料,該處理電路經組態以操作於複數個特權層級,其中在不同的特權層級中,該處理電路施加作用於程式指令,以對記憶體和一組暫存器的至少一者具有不同的存取許可;指令解碼電路,該指令解碼電路回應於程式指令以產生控制訊號,該等控制訊號用於控制該處理電路以進行該資料處理;其中該等程式指令包含:除錯特權層級切換指令,該指令解碼電路回應於該除錯特權層級切換指令以執行以下步驟:
(i)若該處理電路處於除錯模式以將該處理電路從目前的特權層級切換至目標特權層級;及
(ii)若該處理電路處於非除錯模式,則避免該除錯特權層級切換指令的執行,而無關於該目前的特權層級。
本發明識別:提供專用的特權層級切換指令,該指令在除錯模式執行之後,將處理電路從目前的特權層級切換至目標特權層級,及避免特權層級切換指令的執行,而無關於當處理電路處於非除錯模式時的目前特權層級。此者當處於除錯模式時而無需訴諸於非除錯模式指令的複雜的超載,提供促使處理器處於不同的操作狀態的有用的方式。當處於除錯模式時改變處理器以操作於不同的特權層級的能力係有用的,因為當處理器操作於不同的特權層級時該處理器具有(例如)系統暫存器和記憶體的不同觀點,及因而不同的特權層級對應於不同的處理器操作狀態,其所欲者為能在除錯模式中進行存取。
舉例而言,在實施虛擬化及因而具有監控者模式(hypervisor mode)的資料處理裝置中,監控者(hypervisor)將操作於不同的特權層級,該不同的特權層級來自在資料處理裝置上執行的客作業系統。再者,僅定義在除錯模式的專用的除錯特權層級切換指令之提供允許:以理想上適合於除錯模式的特性之方式在不同的特權層級之間執行切換的指令。舉例而言,可實施專用的除錯特權層級切換指令,以使得:並不執行任何分支以為了在不同特權層級之間切換,因為當分支通常實施在非除錯模式中以作為特權層級切換指令的部分,以為了維持在特權層級之間的正確分離時,在除錯模式並非為所欲者。此者係由於:然而在非除錯模式中,程式指令從系統記憶體中提取,在除錯模式中,除錯指令通常從除錯電路所控制的專用的指令轉移暫存器中提取。分支(特定而言與在特權層級中的變化相關聯的分支)通常藉由(a)產生分支目標位址(b)寫入此位址至程式計數暫存器(c)清除指令管線,及(d)從寫入至程式計數暫存器的記憶體位址中提取指令等步驟來操作。舉例而言,在非除錯模式的特權層級增加指令之情況中,分支目標位址係固定的,及在非除錯模式中的特權層級減少指令之情況中,分支目標位址係從位址鏈結暫存器讀取。
當所有指令從指令轉移暫存器提取時,在除錯模式中清除指令管線和從記憶體重新開始提取指令係不合適的。為了藉由修正在除錯模式中的分支的操作來避免將處理器設計複雜化,較佳者為全然地避免分支。因此提供使適合於在除錯模式的執行之特權層級切換指令而非使用超載指令的能力簡化了處理器設計,該超載指令在一般模式中具有一種功能及在除錯模式中具有不同的功能。
應可瞭解到:可實施除錯特權層級切換指令,以為了在相同的特權層級中於不同的處理器操作狀態之間切換,使得目標特權層級與目前的特權層級相同。舉例而言,可在兩個不同的中斷模式之間(例如在相同的特權層級中的IRQ模式和FIQ模式)執行切換。然而,根據一些實施例,目標特權層級不同於目前的特權層級。此者促使(例如)在處理器執行作業系統指令的模式和在處理器執行程式應用程式指令的模式之間的除錯模式之切換。此者係有用的,因為現代的處理器經組態以:在執行不同類型的程式指令的不同的操作狀態之間頻繁地切換。
應可瞭解到:目標特權層級可用各種不同的方式編碼在除錯特權層級切換指令中,例如藉由指定該目標特權層級可從其中讀取的記憶體位置之特權層級切換指令的欄位。然而,在一實施例中,該目標特權層級係直接地編碼在除錯特權層級切換指令本身的欄位之內。此促使該目標特權層級以直接的方式導引出,以使得指令可有效地執行。
在一替代性的實施例中,資料處理裝置包含:至少一專用的目標暫存器,該專用的目標暫存器提供該目標特權層級的一指示。除錯特權層級切換指令從專用的目標暫存器讀取目標特權層級。此者係實施切換至目標特權層級的方便的方式。在一些此類的實施例中,資料處理裝置包含:複數個專用的目標暫存器,專用的目標暫存器的每一者儲存一相對應的目標特權層級,及處理電路經組態以:根據目前的特權層級從其中讀取目標特權層級的複數個專用的目標暫存器中選擇一者。此者為在複數個不同的特權層級的不同者之間建立切換的方便及有效的方式,因為該方式促使數個切換選項一旦事先地被定義,則取決於目前的除錯模式特權層級,如所要求者選擇彼等選項中的適當的一者。
將可瞭解到:可排置特權層級切換指令以執行從較低的特權層級至較高的特權層級的向上切換,或從較高的特權層級至較低的特權層級的向下切換之一或二者。在一實施例中,除錯特權層級切換指令包含:專用的特權增加指令,其中該目標特權層級需要對應於相較該目前的特權層級為一較高的特權層級。提供增加特權層級的專用的指令係:將在特權層級之間的向上切換從在特權層級之間的向下切換分離的簡便的方式。在其他實施例中,除錯特權層級切換指令包含:特權減少指令,其中該目標特權層級需要對應於相較該目前的特權層級為一較低的特權層級。特權增加指令和特權減少指令可以當處於除錯模式時執行任何所欲的特權層級切換之互補的方式來方便地使用。或者,可分離該兩個不同的指令,以使得特權層級增加指令或特權層級減少指令的僅有一者可提供在給定的資料處理裝置中。
在一實施例中,程式指令包含:第一類型的除錯特權層級切換指令,該第一類型的除錯特權層級切換指令對應於特權層級增加指令,其中該目標特權層級需要對應於相較該目前的特權層級為一較高的特權層級,及第二類型的除錯特權層級切換指令,該第二類型的除錯特權層級切換指令對應於特權層級減少指令,其中該目標特權層級需要對應於相較該目前的特權層級為較低的特權層級。
在一些實施例中,程式指令包含:一標準特權層級切換指令,及指令解碼電路回應於該標準特權層級切換指令以:若處理電路處於非除錯模式時執行該處理電路從目前的特權層級至目標特權層級的切換。此者方便地當資料處理裝置處於非除錯模式時將特權切換的任務從當資料處理裝置處於除錯模式的特權切換的任務中分離。在一些此類的實施例中,除錯特權層級切換指令和標準特權層級切換指令具有相同的指令位元寬度和同形(isomorphic)的編碼。
實施同形的編碼以使得除錯特權層級切換指令和標準特權層級切換指令的第一位元組具有實質相同的位元樣式,而除錯特權層級切換指令和標準特權層級切換指令的第二位元組具有實質不相同的位元樣式,及其中該第二位元組小於該第一位元組。排置該標準模式特權層級切換指令和該除錯模式特權層級切換指令,以使得在個別的指令編碼的大部分的位元為相同之步驟提供:實施此兩種指令的簡便的方式,及同形的編碼簡化該等指令的解碼,及因而簡化資料處理電路。在一些此類具有同形編碼的實施例中,該第二位元組包含:一單一位元。排置:在除錯模式和非除錯模式中具有相對應功能的指令之間在整個指令編碼中僅有一單一位元不同,該排置步驟提供:在兩個不同模式的指令之間足夠緊密的關係以促使解碼電路而輕易地識別在不同指令之間的關係。
將可瞭解到:除錯特權層級切換指令可使用於任何類型的資料處理裝置,其中所欲者為執行除錯,該資料處理裝置包含:並不使用虛擬記憶體的資料處理裝置。然而,在一些實施例中,目前的特權層級對應於實施第一虛擬記憶體位址至實體記憶體位址轉換架構的處理電路之操作狀態,及目標特權層級對應於實施第二虛擬記憶體位址至實體記憶體位址轉換架構的處理電路之操作狀態。該第一虛擬記憶體位址至實體記憶體位址轉換架構不同於第二虛擬記憶體位址至實體記憶體位址轉換架構。具有實施不同的虛擬至實體記憶體位址轉換架構的不同的特權層級意謂:當資料處理裝置處於除錯模式時具有清楚的要求以提供在具有不同的位址轉換架構的不同的特權層級之間的切換能力,以使得資料處理裝置在不同的特權層級的每一者的操作可有效地除錯。
將可瞭解到:在不同的特權層級之間的差異僅為對記憶體的不同的存取許可,而不為對任何處理器暫存器的不同的存取許可。然而,在一些實施例中,資料處理電路包含:複數個系統暫存器,及目前的特權層級具有與該複數個系統暫存器相關聯的第一組的存取準則,而目標特權層級具有與該複數個系統暫存器相關聯的一第二不同組的存取準則。類似於在不同的特權層級的不同的虛擬至實體位址轉換架構的實施,該資料處理裝置當操作於不同的特權層級時所具有的系統暫存器的不同觀點使得當處於除錯模式時在不同的特權層級之間方便和有效地切換的能力之重要性更為明確。
將可瞭解到:當資料處理裝置處於非除錯模式時,除錯特權層級切換指令可避免由處理電路來執行,而無關於目前特權層級,此舉係藉由數種不同方式的任何一者,該等不同的方式提供:除錯特權層級切換指令被適當地被定義,及方便地將在非除錯模式中的特權層級切換從在除錯模式中的特權層級切換中分離。然而,在一些實施例中,若該資料處理裝置處於非除錯模式時,除錯特權層級切換指令未被定義及產生軟體例外。此為確保除錯特權層級切換指令僅可在除錯模式中執行的方便的方式。
將可瞭解到:該複數個特權層級可對應於資料處理裝置的數個不同類型的操作狀態的任何一者。然而,在一些實施例中,該複數個特權層級的第一者對應於應用層,及該複數個特權層級的第二者對應於作業系統層。在一些實施例,該複數個特權層級的一者對應於監控層。再者,在一些實施例中,該複數個特權層級的一者對應於安全監視層。此者方便地促使安全監視層的切換進入和離開,該安全監視層在能實施安全模式操作的資料處理裝置中係有用的。
將可瞭解到:數個不同組合的該複數個特權層級的任何一者可提供於資料處理裝置中。然而,在一些實施例中,該複數個特權層級的第一者對應於應用層,該複數個特權層級的第二者對應於作業系統層,該複數個特權層級的第三者對應於安全監視層,但監視層係不存在的。此者方便地促使安全模式被實施,而無需對監視層存在的安全性之潛在性妥協。
應可瞭解到:可不加以選擇地使用除錯特權層級切換指令以在該複數個特權層級的任何二者之間向上切換,或在該複數個特權層級的任何二者之間向下切換,而不具有任何需要避免的切換。然而,在一些實施例中,除錯特權層級切換指令經組態以:在實施在特權層級之間的切換以決定從目前的特權層級至目標特權層級的切換是否應受到允許之前啟動一查核,及以當查核失敗時避免從目前的特權層級至目標特權層級的切換。此者亦促使資料處理電路以方便地查核:是否在專用特權增加指令的情況中,可能向上移動至較高的特權層級,和指令並不使用以在不同的特權層級之間向下移動,及是否對特權減少指令可能從目前的特權層級移動至較低的特權層級,和並不嘗試使用指令增加特權層級。
在一些此類實施例中,其中查核從目前的特權層級至目標特權層級的切換是否應該被允許,目標特權層級對應於安全性監視層,及此查核係安全性查核。此提供一有效的機制,透過該機制可實施安全性查核。在其他實施例中,在實施不同特權層級之間的切換之前實施該查核,處理電路經組態以使得在該複數個特權層級的一較高者中,處理電路可定義該複數個特權層級的至少一層級較低者為無法對該至少一層級較低者進行存取,及其中該查核係用於存取目標特權層級的許可之存取查核。此者提供:當資料處理裝置處於特定操作狀態(例如安全的操作狀態)時,僅促使一子組合的特權層級由資料處理電路來存取。
根據本發明的第二態樣,本發明提供:用以在資料處理裝置上執行的資料處理方法,該資料處理裝置具有經組態以操作在複數個特權層級的處理電路,其中在不同的特權層級中,該處理電路具有對記憶體和一組暫存器的至少一者具有不同的存取許可,該資料處理方法包含以下步驟:回應於包含除錯特權層級切換指令的程式指令,產生用以控制處理電路以處理資料的控制訊號;回應於該除錯特權層級切換指令,產生用以控制該處理電路以執行特權層級切換操作的控制訊號,該操作包含:
(i)若該處理電路處於除錯模式以將該處理電路從目前的特權層級切換至目標特權層級;及
(ii)若該處理電路處於非除錯模式,則避免該除錯特權層級切換指令的執行,而無關於該目前的特權層級。
根據第三態樣,本發明提供資料處理裝置,該資料處理裝置包含:用於處理資料的構件,該用於處理資料的構件經組態以操作於複數個特權層級,其中在不同的特權層級中,該處理電路對記憶體和一組暫存器的至少一者具有不同的存取許可;用於解碼程式指令的構件,該用於解碼程式指令的構件回應於程式指令以產生控制訊號,該等控制訊號用以控制該用於處理的構件以執行該資料處理;其中該等程式指令包含:除錯特權層切換指令,該用於解碼程式指令的構件回應於該除錯特權層級切換指令以執行下列步驟:
(i)若該處理電路處於除錯模式以將該處理電路從目前的特權層級切換至目標特權層級;及
(ii)若該處理電路處於非除錯模式,則避免該除錯特權層級切換指令的執行,而無關於該目前的特權層級。
第1圖根據本發明的實施例示意性地圖示資料處理裝置。資料處理裝置包含:積體電路100,該積體電路100包含:形成「晶片上系統(System-On-Chip)」的數個處理元件。特定而言,積體電路100包含:執行管線110、一組的一般性目的暫存器120、除錯模組130、除錯埠132、記憶體管理單元140,及晶片上記憶體142。資料處理裝置100亦對晶片外記憶體144進行存取。
資料處理裝置100的除錯埠132連接至一主個人電腦150,該主個人電腦經組態以執行除錯軟體152而協助資料處理電路100的除錯。根據本發明的技術,資料處理電路100進一步包含:儲存的程式狀態暫存器(SPSR)143,該儲存的程式狀態暫存器(SPSR)143可由一子組合的除錯特權層級切換指令來使用,以為了儲存資料處理裝置應從目前的特權層級所切換至的目標特權層級。所儲存的程式狀態暫存器143根據特權層級來存庫化(banked),以使得具有:將針對資料處理電路100能操作的複數個不同的特權層級的每一者來讀取的特定的暫存器。目標特權層級將根據實際執行除錯特權層級切換指令所處在的點之目前的特權層級,從該複數個儲存的程式狀態暫存器143的一者讀取。所儲存的程式狀態暫存器143提供目標特權層級的指示。在此實施例中,目標特權層級經編碼在所儲存的程式狀態暫存器143的相關者內,以作為模式編號。然而,在替代性的實施例中,目標特權層級直接地表示在所儲存的程式狀態暫存器143中。在此特定的實施例中,具有四種不同的特權層級,而此將參看第2圖更為詳細地解釋。
除錯模組130包含:指令轉移暫存器134。當資料處理電路100處於非除錯模式時,則指令可從晶片上記憶體142,或晶片外記憶體144讀取,及供應至執行管線110。然而,當資料處理裝置處於除錯模式時,指令並不從記憶體142、144中之一者讀取,而是指令可儲存於指令轉移暫存器134中,及從該處供應至執行管線110。在主PC 150上的除錯軟體152藉由除錯埠132控制指令轉移暫存器134以載入適當的除錯指令至指令轉移暫存器134。
此實施例的資料處理裝置100具有RISC(減化的指令集計算)架構,該RISC(減化的指令集計算)架構為載入-儲存架構,在該載入-儲存架構中處理資料的指令僅能在暫存器上操作和與存取記憶體的指令分離。資料處理裝置100為管線化的資料處理裝置,及執行管線110包含:提取階段、解碼階段,及執行階段(未圖示)。該組一般性目的暫存器120可使用以儲存用於指令的運算元和由執行管線110執行指令之結果。資料處理裝置100經組態以:執行複數個不同的指令類型。特定而言,資料處理電路100可執行在32-位元寬度資料上操作的指令,該等指令被稱為32-位元程式指令,及在64-位元寬度資料上操作的指令,該等指令被稱為64-位元程式指令。再者,可執行不同類型的32-位元程式指令。第一類型的32-位元程式指令係「A32」指令集,而第二類型的32-位元程式指令係「T32」指令集,該「T32」指令集包含A32指令集的更為緊密版本。儘管T32指令的許多者為16-位元寬度指令,該T32指令的許多者操作在32-位元資料,如同32-位元程式指令亦操作在32-位元資料。第三類型的32-位元指令係「T32EE」指令集(該「T32EE」指令集類似於T32指令集係指令的緊密集),但此組指令具有促使在Java位元組代碼(Java bytecode)和T32指令之間的轉換的延伸,及因此藉由資料處理電路100支援虛擬機器的執行。雖然在此實施例中,僅可執行單一64-位元指令集,將可瞭解到:在替代性的實施例中,可提供複數個64-位元指令集。
為了支援32-位元和64-位元程式指令的執行,一般性目的暫存器120為可變寬度暫存器,該等可變寬度暫存器經組態以使得當資料處理電路100操作於32-位元模式時,該資料處理電路100執行32-位元程式指令,則暫存器120可由資料處理裝置作為一組32-位元暫存器來檢視。就另一方面,當資料處理裝置100在64-位元模式中執行及執行64-位元程式指令時,資料處理裝置100經組態以使得暫存器120可視為64-位元暫存器,及使用該等暫存器120全部64-位元寬度。記憶體管理單元140根據資料處理裝置100的目前操作狀態,控制對晶片上記憶體140和晶片外記憶體142的存取,以使得在使用者模式中,相較在系統模式中可存取者,較小子組合的記憶體位置可由資料處理電路100來存取。在資料處理裝置的安全模式中,在使用者模式和系統模式為可獲用的所有記憶體位置係可獲用的,及此外一特定組合的安全記憶體位置可由資料處理電路100來存取。記憶體管理單元140負責:藉由執行管線100來處理對記憶體的所有存取請求,及該記憶體管理單元140功能包含:虛擬記憶體位址至實體記憶體位址的轉換、記憶體保護、快取控制,及匯流排仲裁。
在第1圖的實施例中,操作為除錯單元的主個人電腦150位於相對於資料處理電路100的晶片外部。然而,在替代性的實施例中,執行除錯軟體152的主個人電腦150的功能性提供於位在如第1圖的資料處理電路100相同的晶片上系統的除錯處理電路中,以使得資料處理電路100並不形成整個晶片上系統。
第2圖示意性地圖示:複數個第1圖的資料處理裝置100的不同的操作狀態,該複數個不同的操作狀態對應於複數個不同的特權層級。個別的特權層級對應於在資料處理裝置100上執行的個別不同架構層的軟體。
在第2圖的排置中具有四個不同的特權層級,亦即PL0、PL1、PL2及PL3,其中PL0係最低的特權層級,及PL3係最高的特權層級。特權層級PL0對應於軟體架構的應用層,及六個不同的程式應用程式經圖示以對應於PL0,其中每一者可在資料處理裝置100上執行。次高的特權層級PL1對應於作業系統軟體架構層,及在此情況中圖示三個不同的作業系統:第一客作業系統222,該第一客作業系統222為32-位元作業系統;第二客作業系統224,該第二客作業系統224為64-位元作業系統;及第三安全作業系統226,該第三安全作業系統226具有特別的安全特徵。次個特權層級PL2對應於監控軟體層。提供監控軟體應用程式230,其中在此情況中為:所使用的64-位元程式允許第一客作業系統222和第二客作業系統224二者具有對非安全資料處理資源的存取。
監控者230係虛擬化系統的部分,該監控者230允許第一客作業系統222和第二客作業系224以同時地在相同的資料處理裝置上執行,其中每一作業系統並無其他作業系統在彼處同時地執行的資訊。監控者230控制虛擬轉換表格基底暫存器(Virtual Translation Table Base Register,VTTBR)的實施,該虛擬轉換表格基底暫存器控制虛擬至實體位址轉換如何地在對應於最低特權層級PL0的應用系統層和對應於次高特權層級PL1的作業系統層二者上執行。因為在資料處理裝置的操作中的缺陷(bug)可潛在性地存在於任何層的軟體架構,當資料處理裝置處於除錯模式時在四個不同的特權層級之間的切換的能力對資料處理電路的適當除錯係重要的。
最高特權層級PL3對應於包含64-位元程式代碼的安全監視器240。注意到:當資料處理裝置100操作於安全模式時,監控者230的安全等效性係不存在的。因此,實際上在安全模式中僅具有三個特權層級:PL0、PL1,及PL3。當操作於安全模式及僅安全作業系統226可在安全模式中執行時,並不需要監控者230。在最低特權層級PL0中,第一32-位元程式應用程式202和第二32-位元程式應用程式204二者在32-位元第一客作業系統222的上部執行。為64-位元應用程式的第三程式應用程式206和為32-位元程式應用程式的第四程式應用程式208二者在64-位元第二客作業系統224二者上執行。
第3圖示意性地圖示:在第2圖的不同的特權層級PL1、PL2及PL3中,資料處理裝置100如何地對該組系統暫存器具有不同的存取許可。注意到:在不同的特權層級中,處理電路亦將可能對全組的晶片上和晶片外記憶體位置142、144具有不同的存取許可,雖然該晶片上和晶片外記憶體位置142、144並未圖示於第3圖中。
參看第3圖,全組的系統暫存器在對應於安全監視器的最高特權層級PL3中對資料處理裝置係可見的。第一子組合的系統暫存器在對應於監控層的特權層級PL2中對資料處理裝置係可見的,而第二子組合的系統暫存器330(該第二子組合的系統暫存器330本身形成對PL2為可見的一子組合的系統暫存器)對資料處理裝置100係可見的。第三(甚至為更小的)子組合330的系統暫存器在對應於作業系統軟體架構層的特權層級PL1中對資料處理裝置係可見的。因此,可觀察到不同的特權層級對應於:對系統暫存器的不同層級的存取性。最後,第四(最小的)子組合340的系統暫存器在對應於應用軟體架構層的特權層級PL0對資料處理裝置係可見的。應可瞭解到:在一些實施中,此組合可為空組合。
第4圖根據本發明的技術示意性地圖示:兩個不同的除錯特權層級切換指令如何地可使用以將資料處理裝置在四個不同的特權層級的不同者之間切換。第4圖包含:應用層410,該應用層410對應於最低特權層級PL0;客作業系統層420,該客作業系統層420對應於次個特權層級PL1;監控層430,該監控層430對應於PL2;及安全監視層440,該安全監視層440對應於最高特權層級PL3。如同第4圖中所示,特權層級PL0、PL1、PL2,及PL3的每一者實施不同的虛擬至實體位址轉換架構。特定而言,在特權層級PL0和PL1中,虛擬至實體位址轉換係二階段的轉換,該二階段的轉換渉及對下列二者的參照:(i)一對存庫化的轉換表格基底暫存器(TTBR0_PL1和TTBR1_PL1;TTBR0_PL1係對使用於轉換低虛擬位址的頁面表格的架構之指標;及TTBR1_PL1係使用於轉換高虛擬位址的頁面表格的架構之指標)。在第4圖中,PL0和PL1處於非安全模式,及因而此轉換產生來自傳入的虛擬位址(VA)的中間的實體位址(IPA);及(ii)參照至虛擬轉換表格基底暫存器(VTTBR_PL2)以將中間的實體位址轉換至最後的實體位址(PA)。虛擬轉換表格基底暫存器係藉由監控者430來提供,及允許監控者以隱藏來自其他客作業系統的每一客作業系統。
因為處於特權層級PL2的監控者430控制虛擬轉換表格基底暫存器,當資料處理裝置執行對應於監控者特權層級PL2的程式指令時,虛擬至實體位址轉換涉及:從虛擬位址至實體位址的直接轉換,而無需產生中間的實體位址。因此,處於監控者特權層級PL2的虛擬至實體位址轉換涉及:分別的存庫化的轉換表格基底暫存器,TTBR_PL2,及該TTBR_PL2不為虛擬轉換表格基底暫存器。此者允許監控者本身從所有的客作業系統隱藏。
處於特權層級PL3的安全監視器440當操作於非安全模式時具有並不由PL2、PL1,及PL0存取的特別的安全的實體位址。安全監視器並不受監控者的控制,如該安全監視器操作於對該監控者為較高的特權層級。因此,處於安全的監視特權層級PL3的虛擬至實體位址轉換涉及:分別的存庫化的轉換表格基底暫存器,TTBR_PL3,及該TTBR_PL3不為虛擬轉換表格基底暫存器。
在安全模式中,其中監控者430並不存在,在PL0和PL1的位址轉換使用TTBR0_PL1和TTBR1_PL1以直接地將虛擬位址轉換為實體位址,而無需產生中間的實體位址,及因此無需使用虛擬轉換表格基底暫存器。該等實體位址亦可為安全的實體位址。
如同在第4圖中所圖示者,對應於除錯特權減少指令的專用的「DRET」指令經使用以促使第1圖的資料處理裝置100作出在目前較高的特權層級至目標較低的特權層級之間的轉移。舉例而言,若資料處理裝置目前執行來自處於特權層級PL3的安全監視器440的指令,則DRET指令的執行可使用以將系統向下轉移至對應於PL2的監控層430。若系統目前處於對應於PL2的監控層級430,則DRET指令的執行可使用以將系統向下轉移至對應於客作業系統420的特權層級PL1。若系統目前處於對應於PL1的客作業系統層級420,則DRET指令的執行可用以向下轉移至對應於PL0的應用層410。雖然第4圖圖示:DRET指令涉及:從目前的較高的特權層級PL3向下一層級轉移至次高的特權層級之轉移,本發明並不受限於此,DRET指令的目標特權層級可包含:相同的或任何較低的特權層級,而非僅為次低的特權層級。
DRET指令採用來自所儲存的程式狀態暫存器143的一適當者的目標特權層級,該所儲存的程式狀態暫存器143的一適當者根據特權層級來存庫化。因此若當執行DRET指令時資料處理裝置目前處於PL3,SPSR_PL3經讀取以決定:適當的目標特權層級。當資料處理裝置目前處於監控者特權層級PL2時,則所儲存的程式狀態暫存器SPSR_PL2經讀取以決定適當的目標特權層級。類似地,當資料處理裝置目前處於客作業系統特權層級PL1時,則目標特權層級從SPSR_PL1讀取。當資料處理裝置目前處於對應於最低特權層級和應用層410的特權層級PL0時,並無任何較低的特權層級,及因此當處於最低的特權層級PL0時指令DRET的執行將不被允許。在執行DRET期間進行查核以確認:資料處理裝置目前並不處於最低特權層級PL0,因為並無低於PL0的可允許的目標特權層級。
在第4圖亦圖示者為特權層級增加指令「DCPS」。並非使用第1圖的所儲存的程式狀態暫存器SPSR 143,此指令採用來自指令本身的編碼內的立即欄位之所欲目標特權層級。如同圖示於第4圖中,DCPS指令可使用以作出從PL0至PL1的轉移,或從PL1至PL2的轉移,或從PL2至PL3的轉移。若當資料處理裝置已處於最高特權層級PL3時執行DCPS指令,並無明確定義的目標特權層級,及進行查核以確保:的確具有當執行DCPS指令時所轉移至的較高的特權層級。DCPS指令可使用以從目前的特權層級跳至任何較高的特權層級,例如從PL0直接至PL3,或至PL2,以使得可藉由DCPS指令的單一執行跳過多於一個的特權層級。在不同的特權層級中具有不同的虛擬至實體位址轉換的事實意謂:當處於除錯模式時資料處理裝置應能在不同的特權層級間切換,以確保當執行除錯指令時運用適當的虛擬至實體位址轉換架構係重要的。
注意到:當資料處理裝置處於除錯模式及該等指令皆未定義於非除錯模式時,僅可執行特權層級增加指令DCPS和特權層級減少指令DRET。當處於非除錯模式時嘗試執行此兩個指令會造成軟體例外。
第5圖示意性地圖示:資料處理裝置100的複數個不同的操作模式,該複數個不同的操作模式可進入四個不同的特權層級PL0、PL1、PL2及PL3。第5圖亦圖示複數個非除錯模式特權層級移轉指令,該複數個非除錯模式特權層級移轉指令可使用於第1圖的資料處理裝置以補充圖示於第4圖的除錯模式特權層級切換指令DCPS及DRET。在非除錯模式中(或「一般」模式),則資料處理裝置可操作於四個不同特權層級的一者,該情況類似於在除錯模式中的情況。在最低的特權層級PL0中,資料處理裝置操作於無特權EL0模式510。處於次高的特權層級PL1中,資料處理裝置可操作於兩個不同的處理模式中的一者,亦即EL1h例外處理模式520及EL1t執行緒模式522。類似地,處於次個特權層級PL2,具有EL2h例外處理模式530和EL2t執行緒模式532的選擇;及處於PL3特權層級,具有EL3h例外處理模式540和EL3t執行緒模式542。
第5圖圖示可使用於非除錯模式的四個不同的特權層級變換指令。指令「SVC」、「HVC」,及「SMC」係所有的非除錯模式特權層級增加指令。SVC指令具有特權層級PL1的目標、HVC指令具有PL2的目標、而SMC指令具有PL3的目標特權層級。因此由該三個指令的每一者所執行的特權層級轉移根據目標特權層級來定義。SVC、HVC和SMC指令藉由執行至例外向量位址的分支,在非除錯模式中執行在不同的特權層級之間的轉移。因此該SVC、HVC和SMC指令為允許控制的項目進入較高的特權層級的系統呼叫指令。若指令在目標特權層級中執行,或在較高的特權層級中執行,則指令並不改變特權層級。因為當資料處理裝置處於除錯模式時除錯指令從第1圖的指令轉移暫存器134中提取,故當資料處理裝置處於除錯模式時,此分支指令的使用為非所欲者。當資料處理裝置操作於64-位元模式和32-位元模式二者時,執行SVC、HVC和SMC非除錯模式特權層級增加指令。SVC、HVC和SMC指令在64-位元A64指令集中具有類似的編碼,及上述者僅在編碼中指定目標例外層級的立即欄位有所不同。
圖示於第5圖的指令「ERET」係可使用以從特權層級向下移動至目標較低的特權層級之特權層級減少指令,及可使用以(例如)進行從EL2h模式530至EL1t模式522的轉移。ERET指令採取來自根據特權層級來存庫化的儲存的程式狀態暫存器143之該ERET指令的目標特權層級,及分支移動至在系統暫存器ELR中的位址(未圖示於第1圖),該系統暫存器ELR亦為存庫化。意即,ERET亦為分支指令。在64-位元模式中,ERET在特權層級PL1、PL2及PL3的各者為可獲用的,雖然在32-位元模式中,ERET僅在PL2中為可獲用,及不同的特權層級減少指令必須使用於32-位元模式中。
可具有其他特權增加及減少指令,例如從記憶體(而非暫存器)讀取目標特權層級和位址的特權減少指令。為了要確保系統在非除錯模式中的正確操作,該等指令為分支係有利的。分支允許在特權層級中的變換以透過該系統來進行同步。
提供另外的指令以僅使用於資料處理裝置的非除錯模式中的64-位元的操作中。此指令為「MSR SPSel」,此指令在第5圖僅圖示為「MSR」。此指令允許軟體在相同的特權層級內的不同的模式之間切換。舉例而言,從EL1h模式520轉移至EL1t模式522。當此者不需要在特權層級中的變換時,該等指令並不需透過系統來同步,及因而忽略成本高的分支操作。在64-位元的操作中,此指令不可使用以變換特權層級。
提供類似的指令「MSR CPSR」和「CPS」於32-位元操作中,以在相同的特權層級中的模式之間移動。然而,在32-位元操作中,該等指令亦可使用以在特權層級之間向下移動,但從不增加特權層級,例如藉由從操作於特權層級PL1 420的具特權的32-位元模式變換至操作於特權層級PL0 410的較低特權的32-位元使用者模式,來減少特權層級(見第4圖)。然而,當變換將不透過系統適當地同步化時,藉由以此方式來減少特權層級導致軟體故障。若當資料處理系統處於操作在特權層級PL0 410的使用者模式中時,提取MSR CPSR或CPS指令以用於執行(最低的特權層級),則將可簡化地忽略該等指令。
已知者為在ARM v7微處理器架構中使用MSR CPSR指令,其所欲者為主要地使用於非除錯模式中的32-位元操作,如當在除錯模式中執行時的超載指令可使用以在特權層級之間進行任何變換,該任何變換包含:在特權層級中的增加,例如從處於PL0的使用者模式510至對應於PL1的SVC模式522。在非除錯模式中,該等變換未同步化,及不允許增加特權。因此,藉由超載此操作,當變換必須同步化及一般性的許可和安全性查核在除錯模式中必須覆載(overriden)時,處理器實施的複雜度會增加。
第6圖示意性地圖示:用於DCPS指令的指令編碼,該指令編碼經使用以當資料處理裝置處於除錯模式時增加特權層級。如第6圖所圖示者,指令編碼係屬於A64指令集的32-位元寬度的指令編碼(亦即操作在64-位元資料的指令),其中目標特權層級定義為在指令的位元DCPS[1:0]的立即欄位,根據此特定的實施例的兩個位元欄位的各種不同的數值係定義在第6圖的表格中。因此,DCPS[1:0]=0b01的位元值導致轉移至PL1,DCPS[1:0]=0b10的目標位元欄位導致目標特權層級PL2,及DCPS[1:0]=0b11的位元值導致轉移至PL3。此指令不可使用以從目前的特權層級減少特權層級。注意到:在執行指令期間資料處理電路忽略DCPS指令的位元[21:5]。
第7A圖示意性地圖示:使用於除錯模式中的特權層級減少指令DRET的編碼。DRET指令編碼係屬於A64指令集的32-位元寬度的指令編碼。
第7B圖示意性地圖示:ERET指令的指令編碼,該ERET指令為非除錯模式特權層級減少指令。藉由第7A圖的DRET指令編碼和第7B圖的ERET指令編碼之編碼的比較,可觀察到:DRET指令和ERET指令具有同形的編碼,如此意謂指令編碼具有相對應的或類似的形式和關係。特定而言,此兩個指令的位元[23:21]僅為在兩個指令編碼之間不同的位元。因此,在此特定的實施例中,指令編碼的全部32-位元中的僅有的單一位元,位元[21],在除錯模式DRET和非除錯模式ERET編碼之間係不同的。將可瞭解到:對同形的指令編碼而言,全部的指令編碼的較大子組合的相對應的位元之該等位元之位元值係相同的,然而較小子組合的相對應的位元之該等位元之位元值係不同的。通常如第7A圖和第7B圖的情況中,不相同的位元部分相當地小於相同的位元部分。在一些實施例中,兩個同形的指令編碼的不同的位元組具有:包含少於對應於指令編碼的相同部分的位元組之十分之一的數個位元之位元組。在一些實施例中,對應於指令編碼的不相同的部分之位元組係單一位元,而具有對應於相同的位元之位元組,該等相同位元為少於指令的全位元寬度者。注意到:如同在第7A圖和第7B圖中的情況,因為在第7A圖和第7B圖的指令中的相同的位元寬度對應於位元部分[31:24]和[20:0],相同的位元寬度並不需為連續的位元寬度。對指令解碼器電路(未圖示)而言,位元的順序係不重要的。
第7C圖示意性地圖示:非除錯模式特權層級增加指令SVC、HVC,及SMC的指令編碼。該等指令編碼的每一者係屬於A64指令集的32-位元寬度指令編碼。第一列編碼對應於SVC指令、中間列對應於HVC指令編碼、而底層列對應於SMC指令編碼。該等指令的每一者包含:當解碼指令時可忽略的註解欄,及此註解欄對應於指令的位元[20:5]。該三個指令的位元[31:21]和[4:2]係相同的,而最低的兩個位元係不相同的。事實上,最低的兩個位元係在編碼中指明目標例外層級的立即欄位。從第5圖中可回憶起:SVC指令具有特權層級PL1的目標、HVC指令具有PL2的目標特權層級,而SMC指令具有最高特權層級PL3的目標。可觀察到:藉由將第6圖的DCPS指令編碼和第7C圖的SVC、HVC,及SMC編碼作比較,DCPS指令具有與SVC、HVC,及SMC指令的基本編碼同形之編碼,因為該等編碼僅在兩個位元[23]和[21]不同。亦即,具有PL1的目標之DCPS係與SVC同形的,具有PL2的目標之DCPS係與HVC同形的,及具有PL3的目標之DCPS係與SMC同形的。
第8圖係示意性地圖示第1圖的資料處理裝置在執行DCPS除錯模式特權層級增加指令之後所進行的處理操作的流程圖。此程序開始於階段810,其中DCPS指令被執行。此程序行進至階段812,其中處理器決定:其是否處於除錯模式。若處理器不處於除錯模式,亦即係處於非除錯模式,則此程序行進至階段814,其中未定義的指令例外發生。就另一方面,若決定為在階段812中處理器實際上處於除錯模式,則此程序行進至階段816,其中決定:指令是否具有特權層級PL3的目標。若目標並不為最高特權層級PL3,則此程序行進至階段830,然而若指令事實上達到最高的特權層級PL3,則程序行進至階段818。
在階段818中,決定目前的特權層級是否為PL0,亦即處理器係處於最低的特權層級。達到特權PL3的DCPS操作在PL0不被允許,及因而若在階段818中,決定為目前的特權層級係PL0,則程序行進至階段824,該階段824設定錯誤旗標,及而後程序行進至在階段850的完成步驟。就另一方面,若在階段818決定:目前的特權層級並非特權層級PL0,則程序行進至階段820。
在階段820,執行安全性查核以決定:是否允許所請求的轉移,及程序而後行進至階段822,其中分析安全性查核的結果。因為PL3關於最高特權層級及資料處理裝置的非安全和安全的操作狀態之間的軌跡路徑(route),執行安全性查核以確保:發出DCPS操作的除錯器經允許以存取安全的操作狀態。通常,此安全性查核涉及:查核對除錯模組130的組態輸入之狀態。若組態輸入被設置,安全性查核通過,否則該安全性查核則失敗。此組態輸入可由數種方式來驅動,雖然較佳地該組態輸入可由在資料處理電路100內的另一元件來驅動,以使得該組態輸入不能被輕易地被篡改。驅動組態輸入的元件負責:查核除錯器的使用者之真實性,例如藉由眾所熟知方法的使用,例如密碼或盤問-回應機制。
若在階段822中安全性查核通過,及資料處理裝置經允許以從目前的特權層級轉移至PL3模式,則程序行進至階段826,及選擇資料處理裝置的操作之PL3模式,然而程序行進至在階段850的完成的步驟。就另一方面,若在階段822,安全性查核無法指示:對最高特權層級PL3的存取並不被允許,則程序行進至階段824,然而設定錯誤旗標,及而後程序行進至在階段850的完成步驟。
返回至階段816,若在此階段決定為指令並不達到最高的特權層級PL3,則程序從階段816行進至階段830。在階段830中,決定:指令是否達到特權層級PL2。若指令事實上達到目標特權層級PL2,則程序行進至階段832。
在階段832,決定目前的特權層級是否為PL0,亦即處理器處於最低的特權層級。達到特權PL2的操作在PL0並不被允許,及因而若在階段832決定:目前的特權層級為PL0,則程序行進至階段824,然而設定錯誤旗標,及而後程序行進至在階段850的完成步驟。就另一方面,若在階段832決定:目前的特權層級並非特權層級PL0,則程序行進至階段834。
在階段834決定目前的特權層級是否為PL3,亦即處理器已處於最高的特權層級。若處理器處於PL3,則PL2的目標計量上為減少特權層級,該減少特權層級不可使用特權層級增加DCPS指令來進行。若處理器已處於特權層級PL3,則程序藉由在第8圖中的標示為「A」的圓圈行進至階段826,及選擇資料處理裝置的操作之PL3模式,然而程序行進至在階段850的完成步驟。就另一方面,若在階段834決定為:處理器並未處於最高特權層級PL3,則程序行進至階段836,因而選擇PL2模式。程序而後行進至在階段850的完成步驟。
就另一方面,若在階段830決定:指令並未達到目標特權層級PL2,則程序行進至階段840,其中導引出指令達到特權層級PL1。程序而後行進至階段842,其中決定處理器是否處於特權層級PL3,此舉意謂:向下轉移至特權層級PL1係不可能的。從而,在此情況中,程序藉由在第8圖中的標示為「A」的圓圈行進至階段826,及選擇資料處理裝置的操作之PL3模式,因而程序行進至在階段850的完成的步驟。若在階段842決定為資料處理裝置並未處於PL3,則程序行進至階段844,其中決定處理器是否處於特權層級PL2。若處理器處於PL2,則PL1的目標在計量上為減少特權層級。從而,在此情況中,程序行進至階段836,然而選擇PL2模式,及而後程序行進至在階段850中的完成步驟。
返回至階段844,若決定為:資料處理裝置並不處於特權層級PL2,則程序行進至階段846,其中選擇PL1模式,及程序而後在階段850完成。注意到:在階段832、階段842,及階段844,若資料處理裝置已處於目標特權層級,並無設定任何錯誤旗標,但在此狀態執行個別的指令將簡化地意謂:在特權層級並無任何變化。因為在每個特權層級具有多個模式,然而其可導致模式的變化。
第9圖係示意性地圖示:回應於除錯模式特權層級減少指令DRET的執行而進行的資料處理操作的流程圖。程序開始於階段910,其中DRET指令由第1圖的管線來執行。程序而後行進至階段912,其中決定處理器是否處於除錯模式。若決定為:處理器在階段912並非處於除錯模式,則程序行進至階段914,其中發生未定義的指令例外。此者係因為DRET指令僅可在除錯模式中執行,及在非除錯模式中發生軟體例外。就另一方面,若在階段912決定為:處理器處於除錯模式,則程序行進至階段916,其中從第1圖的適當的存庫化的儲存的程式狀態暫存器143讀取目標特權層級。程序而後行進至階段918,其中決定目標模式編碼是否有效。
若從儲存的程式狀態暫存器143獲得的目標模式編碼係無效的,則程序行進至階段920,其中設定不合法的狀態旗標,及而後程序在階段960完成。注意到:第9圖的不合法狀態旗標不同於第8圖的錯誤旗標。就另一方面,若在階段918決定為:目標模式編碼事實上為有效的,而後程序行進至階段930,其中決定目標模式的特權層級是否為最高特權層級PL3。若目標模式經決定為最高特權層級PL3的模式,則程序行進至階段932,其中決定目前特權層級是否低於PL3。若在階段932決定為目前特權層級低於PL3,則程序行進至階段920,其中設定不合法的狀態旗標,及而後在階段960完成。回憶起:DRET指令不可使用以增加特權層級。
若在階段932決定為:目前的特權層級己不低於PL3,則程序行進至階段934,其中對目標PL3模式作出轉移。實際上在此情況中系統將已在階段932中處於特權層級PL3,及在階段934對目標模式的變換在目前的特權層級中並未發生實際的變換,但導致維持在目前的特權層級。因為在每個特權層級具有多個模式,然而其可導致模式的變化。
若在階段930決定目標模式並不為PL3模式,則程序行進至階段940,其中決定:目標模式是否為PL2模式。若目標模式事實上為PL2模式,則程序行進至階段942,其中決定資料處理裝置目前是否已低於特權層級PL2。若資料處理裝置目前已低於特權層級PL2,則此者將為無效的轉移,因為該轉移會導致增加特權層級,及從而程序藉由在第9圖中的標示為「A」的圓圈行進至階段920,其中設定不合法的狀態旗標,及而後在階段960完成。
在階段942,若決定為目前的特權層級已不低於特權層級PL2,則系統必須處於PL2或PL3,及故程序行進至階段934,其中變換至目標模式,及系統將如所要求者切換至特權層級PL2,及系統在階段960完成。
返回至階段940,若在階段940並非決定為目標模式為PL2模式,而決定為:目標並非為PL2模式,則程序行進至階段950,其中決定目標模式是否為PL1模式。若目標模式經發現為PL1模式,則程序行進至階段952,其中決定目前的特權層級事實上是否已低於PL1。若目前的特權層級已低於PL1,則此者將為不合法的轉移,因為該轉移不能涉及:增加特權層級,及故程序藉由標示為「A」的圓圈行進,而在階段920設定不合法的狀態旗標,及程序在階段960完成。就另一方面,若在階段952決定為目前的特權層級已不低於特權層級PL1,則目前的特權層級必須為PL3、PL2,或PL1中的一者,及程序行進至階段934,其中如同要求者變換至目標PL1模式(亦即變換至特權層級PL1),及程序在步驟960完成。
返回至階段950,若決定為目標模式不為PL1模式,則程序行進至階段954,其中建立目標模式為PL0模式,及而後程序行進至階段934,其中如同要求者變換至目標PL0模式(亦即變換至特權層級PL0),及程序在階段960完成。
第10圖圖示可使用的虛擬機器實施。當先前所描述的實施例就用於操作支援相關的技術之特定的處理硬體的裝置和方法實施本發明時,如此提供硬體裝置的所謂的虛擬機器實施亦為可能。該等虛擬機器實施在主處理器1030上執行,該主處理器執行支援虛擬機器程式1010的主作業系統1020。通常,具較強功能性的處理器需要提供以合理的速度執行的虛擬機器實施,但此方法可在特定的情況中驗證,例如所欲者為針對相容性或重使用的理由在另一處理器上執行代碼。虛擬機器程式1010提供應用程式界面至應用程式1000,該應用程式界面與由虛擬機器程式1010來模型化的裝置之實際硬體提供的應用程式界面相同。因此,程式指令(該等程式指令包含前文所描述的記憶體存取之控制)可從應用程式1000內執行,該應用程式1000係使用虛擬機器程式1010以將該應用程式1000與虛擬機器硬體的互動模型化。
雖然本發明的說明性實施例在此參看隨附圖式更為詳細地描述,應可瞭解到:本發明並不限於彼等明確的實施例,及由熟習該項技術者在不偏離如由隨附申請專利範圍所定義的本發明的範疇和精神之情況下作出各種變換和修正。
100...積體電路
110...執行管線
120...一般性目的暫存器
130...除錯模組
132...除錯埠
134...指令轉移暫存器
140...記憶體管理單元
142...記憶體
143...程式狀態暫存器
144...記憶體
150...主個人電腦
152...除錯軟體
202...第一32-位元程式應用程式
204...第二32-位元程式應用程式
206...64-位元應用程式的第三程式應用程式
208...32-位元程式應用程式的第四程式應用程式
209...安全應用1
210...安全應用2
222...第一客作業系統
224...第二客作業系統
226...安全作業系統
230...監控軟體應用程式
240...安全監視器
330...第二子組合的系統暫存器
410...應用層
420...客作業系統
430...監控者
440...安全監視層
510...無特權EL0模式
520...EL1h例外處理模式
522...EL1t執行緒模式
530...EL2h例外處理模式
532...EL2t執行緒模式
540...EL3h例外處理模式
542...EL3t執行緒模式
第1圖根據本發明的實施例示意性地圖示一資料處理裝置;
第2圖示意性地圖示:對應於複數個不同的特權層級的第1圖之資料處理裝置的複數個不同的操作狀態;
第3圖示意性地圖示:在第2圖的特權層級PL1、PL2,及PL3的不同者中,資料處理裝置如何地對該組系統暫存器具有不同的存取許可;
第4圖示意性地圖示:根據本發明的技術的兩個不同的除錯特權層級切換指令可如何地使用以將資料處理裝置在四個不同的特權層級的不同者之間切換;
第5圖示意性地圖示複數個非除錯模式特權層級移轉指令,該複數個非除錯模式特權層級移轉指令可使用於第1圖的資料處理裝置中以補充圖示於第4圖的除錯模式特權層級切換指令DCPS和DRET。
第6圖示意性地圖示:用於使用以增加在除錯模式中的特權層級的DCPS指令之指令編碼。
第7A圖示意性地圖示:用於除錯模式的特權層級減少指令DRET的編碼。
第7B圖示意性地圖示:ERET指令的指令編碼,該ERET指令為非除錯模式特權層級減少指令。
第7C圖示意性地圖示:SVC、HVC,及SMC指令的指令編碼,該等指令為非除錯模式特權層級增加指令。
第8圖係示意性地圖示在執行DCPS除錯模式特權層級增加指令之後,由第1圖的資料處理裝置進行的處理操作的流程圖。
第9圖係示意性地圖示回應於除錯模式特權層級減少指令DRET的執行而進行的資料處理操作之流程圖;及
第10圖示意性地圖示:在虛擬機器上實施的實施例。
100...積體電路
110...執行管線
120...一般性目的暫存器
130...除錯模組
132...除錯埠
134...指令轉移暫存器
140...記憶體管理單元
142...記憶體
143...程式狀態暫存器
144...記憶體
150...主個人電腦
152...除錯軟體
Claims (25)
- 一種資料處理裝置,該資料處理裝置包含:處理電路,該處理電路用以處理資料,該處理電路經組態以操作於複數個特權層級,其中在不同的特權層級中,該處理電路施加作用於皆用在一除錯模式與一非除錯模式中的至少一個指令集之程式指令,以對一記憶體和一組暫存器的至少一者具有不同的存取許可;指令解碼電路,該指令解碼電路回應於程式指令以產生用於控制該處理電路以執行該資料處理的控制訊號;其中該等程式指令包含:一除錯特權層級切換指令,該指令解碼電路回應於該除錯特權層級切換指令以執行以下步驟:(i)若該處理電路處於該除錯模式,以將該處理電路從一目前的特權層級切換至一目標特權層級;及(ii)若該處理電路處於該非除錯模式,則避免該除錯特權層級切換指令的執行,而無關於該目前的特權層級,及其中該除錯特權層級切換指令的一指令編碼係屬於該至少一個指令集的一編碼。
- 如請求項1之資料處理裝置,其中該目標特權層級不同於該目前的特權層級。
- 如請求項1之資料處理裝置,其中該目標特權層級經編碼於該除錯特權層級切換指令的一欄位中。
- 如請求項1之資料處理裝置,該資料處理裝置包含:至少一專用的目標暫存器,該專用的目標暫存器提供該目標特權層級的一指示,其中該除錯特權層級切換指令從該專用的目標暫存器讀取該目標特權層級的該指示。
- 如請求項4之資料處理裝置,該資料處理裝置包含:該複數個專用的目標暫存器,該等專用的目標暫存器的每一者儲存一相對應的目標特權層級,及其中該處理電路經組態以:根據該目前的特權層級,從其中讀取該目標特權層級的該複數個專用的目標暫存器中選擇一者。
- 如請求項1之資料處理裝置,其中該除錯特權層級切換指令包含:一特權增加(privilege-incrementing)指令,及其中該目標特權層級需要對應於相較該目前的特權層級為一較高的特權層級。
- 如請求項1之資料處理裝置,其中該除錯特權層級切換指令包含:一特權減少(privilege-decrementing)指令,及其中該目標特權層級需要對應於相較該目前的特權層級為一較低的特權層級。
- 如請求項1之資料處理裝置,其中該等程式指含包含:一第一類型的除錯特權層級切換指令,該第一類型的除錯特權層級切換指令對應於:用於該目標特權層級需對應於相較該目前特權層級為一較高的特權層級之一特權增加指令,及一第二類型的除錯特權層級切換指令,該第二類型的除錯特權層級切換指令對應於:用於該目標特權層級需對應於相較該目前特權層級為一較低的特權層級之一特權減少指令。
- 如請求項1之資料處理裝置,其中該等程式指令包含:一標準特權層級切換指令,該指令解碼電路回應於該標準特權層級切換指令以執行以下步驟:(i)若該處理電路處於一非除錯模式以將該處理電路從該目前的特權層級切換至該目標特權層級。
- 如請求項9之資料處理裝置,其中該除錯特權層級切換指令和該標準特權層級切換指令具有相同的指令位元寬度和同形(isomorphic)的編碼,及其中實施該等同形的編碼以使得該除錯特權層級切換指令和該標準特權層級切換指令的一第一位元組具有實質相同的位元樣式,而該除錯特權層級切換指令和該標準特權層級切換指令的一第二位元組具有實質不相同的位元樣式,及其中該第二位組小於該第一位元組。
- 如請求項10之資料處理裝置,其中該第二位元組包含:一單一位元。
- 如請求項1之資料處理裝置,其中該目前的特權層級對應於:實施一第一虛擬記憶體位址至實體記憶體位址轉換架構的該處理電路之一操作狀態,及該目標特權層級對應於實施一第二虛擬記憶體位址至實體記憶體位址轉換架構的該處理電路之一操作狀態,其中該第一虛擬記憶體位址至實體記憶體位址轉換架構不同於該第二虛擬記憶體位址至實體記憶體位址轉換架構。
- 如請求項1之資料處理裝置,其中該資料處理電路包含:複數個系統暫存器,及其中在該目前的特權層級,一第一組的存取準則與該複數個系統暫存器相關聯,而在該目標特權層級,一第二組的存取準則與該複數個系統暫存器相關聯,及其中該第二組存取準則不同於該第一組存取準則。
- 如請求項1之資料處理裝置,其中若該資料處理電路處於該非除錯模式,該除錯特權層級切換指令未定義,及產生一軟體例外。
- 如請求項1之資料處理裝置,其中該複數個特權層級的一第一者對應於一應用層,及該複數個特權層級的一 第二者對應於一作業系統層。
- 如請求項1之資料處理裝置,其中該複數個特權層級中的一者對應於一監控層。
- 如請求項1之資料處理裝置,其中該複數個特權層級中的一者對應於一安全性監視層。
- 如請求項15之資料處理裝置,其中該等複數個特權層級中的一第三者對應於一安全性監視層,及其中一監視層並不存在。
- 如請求項1之資料處理裝置,其中該除錯特權層級切換指令經組態以:在實施該切換以決定從該目前的特權層級至該目標特權層級的該切換是否應被允許之前啟動一查核,及當該查核失敗時避免從該目前的特權層級至該目標特權層級的該切換。
- 如請求項19之資料處理裝置,其中該目標特權層級對應於一安全性監視層,及其中該查核係一安全性查核。
- 如請求項19之資料處理裝置,其中該處理電路經組態以使得在該複數個特權層級的一較高者中,該處理電路可定義該複數個特權層級的至少一較低者不可被存 取,及其中該查核係用於對該目標特權層級的允許的存取之一存取查核。
- 一種由在一資料處理裝置上執行的一電腦程式提供的虛擬機器,該虛擬機器根據如請求項1之資料處理裝置而提供一指令執行環境。
- 一種資料處理裝置,該資料處理裝置包含:用以處理資料的構件,該用以處理資料的構件經組態以操作在複數個特權層級,其中在不同的特權層級中,該用以處理資料的構件施加作用於皆用在一除錯模式與一非除錯模式中的至少一個指令集之程式指令,以對一記憶體和一組暫存器的至少一者具有不同的存取許可;用以解碼程式指令的構件,該用以解碼程式指令的構件回應於程式指令以產生控制訊號,該等控制訊號用以控制用於處理以進行該資料處理的該構件;其中該等程式指令包含:一除錯特權層級切換指令,該用以解碼程式指令的構件回應於該除錯特權層級切換指令以進行以下步驟:(i)若該用以處理資料的構件處於該除錯模式以將該用以處理資料的構件從一目前的特權層級切換至一目標特權層級;及(ii)若該用以處理資料的構件處於該非除錯模式,則避免該除錯特權層級切換指令的執行,而無關於該目前的 特權層級,及其中該除錯特權層級切換指令的一指令編碼係屬於該至少一個指令集的一編碼。
- 一種用以在一資料處理裝置上執行的資料處理方法,該資料處理裝置具有經組態以操作在複數個特權層級的處理電路,其中在不同的特權層級中,該處理電路施加作用於皆用在一除錯模式與一非除錯模式中的至少一個指令集之程式指令,以對一記憶體和一組暫存器的至少一者具有不同的存取許可,該資料處理方法包含以下步驟:回應於包含一除錯特權層級切換指令的程式指令,產生用於控制該處理電路以處理資料的控制訊號;回應於該除錯特權層級切換指令,產生用於控制該處理電路以進行一特權層級切換操作的控制訊號之步驟包含以下步驟:(i)若該處理電路處於該除錯模式,將該處理電路從一目前的特權層級切換至一目標特權層級;及(ii)若該處理電路處於該非除錯模式,則避免該除錯特權層級切換指令的執行,而無關於該目前的特權層級,及其中該除錯特權層級切換指令的一指令編碼係屬於該至少一個指令集的一編碼。
- 一種用於儲存實施請求項24之方法的程式指令之電腦程式產品。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1016080.2A GB2483907A (en) | 2010-09-24 | 2010-09-24 | Privilege level switching for data processing circuitry when in a debug mode |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201214104A TW201214104A (en) | 2012-04-01 |
TWI505085B true TWI505085B (zh) | 2015-10-21 |
Family
ID=43127908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100126425A TWI505085B (zh) | 2010-09-24 | 2011-07-26 | 資料處理裝置的除錯(一) |
Country Status (10)
Country | Link |
---|---|
US (1) | US8874883B2 (zh) |
EP (1) | EP2619670B1 (zh) |
JP (1) | JP5668143B2 (zh) |
KR (1) | KR101770666B1 (zh) |
CN (1) | CN103119566B (zh) |
GB (1) | GB2483907A (zh) |
IL (1) | IL225032A (zh) |
MY (1) | MY164785A (zh) |
TW (1) | TWI505085B (zh) |
WO (1) | WO2012038709A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI659361B (zh) * | 2018-01-09 | 2019-05-11 | 國立中央大學 | 支援多執行緒/並行程式除錯之方法、電腦可讀取之記錄媒體及電腦程式產品 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2483906C (en) | 2010-09-24 | 2019-10-09 | Advanced Risc Mach Ltd | Selection of debug instruction set for debugging of a data processing apparatus |
US9047090B2 (en) | 2012-08-07 | 2015-06-02 | Qualcomm Incorporated | Methods, systems and devices for hybrid memory management |
US9262259B2 (en) * | 2013-01-14 | 2016-02-16 | Qualcomm Incorporated | One-time programmable integrated circuit security |
US10061940B2 (en) * | 2013-07-09 | 2018-08-28 | Andes Technology Corporation | Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event |
US9436698B2 (en) * | 2014-02-12 | 2016-09-06 | Lenovo (Singapore) Pte. Ltd. | Sharing a file system between multiple operating systems |
US20150254145A1 (en) * | 2014-03-07 | 2015-09-10 | Microsoft Corporation | Operating system/hypervisor efficiencies for sub-divided privilege levels |
US10255090B2 (en) * | 2014-06-23 | 2019-04-09 | Vmware, Inc. | Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels |
US10019275B2 (en) | 2014-06-23 | 2018-07-10 | Vmware, Inc. | Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels |
GB2530050B (en) * | 2014-09-10 | 2021-07-21 | Advanced Risc Mach Ltd | Debugging in a data processing apparatus |
US9684578B2 (en) * | 2014-10-30 | 2017-06-20 | Qualcomm Incorporated | Embedded universal serial bus (USB) debug (EUD) for multi-interfaced debugging in electronic systems |
GB2539433B8 (en) | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Protected exception handling |
GB2539429B (en) | 2015-06-16 | 2017-09-06 | Advanced Risc Mach Ltd | Address translation |
GB2539428B (en) | 2015-06-16 | 2020-09-09 | Advanced Risc Mach Ltd | Data processing apparatus and method with ownership table |
GB2539435B8 (en) | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level |
US10860322B2 (en) * | 2015-10-30 | 2020-12-08 | Arm Limited | Modifying behavior of a data processing unit using rewritable behavior mappings of instructions |
US10235176B2 (en) * | 2015-12-17 | 2019-03-19 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US10936713B2 (en) * | 2015-12-17 | 2021-03-02 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US10360135B2 (en) | 2016-03-31 | 2019-07-23 | Microsoft Technology Licensing, Llc | Privilege test and monitoring |
CN107885650A (zh) * | 2016-09-30 | 2018-04-06 | 联芯科技有限公司 | 一种程序调试方法及系统 |
KR20180073300A (ko) | 2016-12-22 | 2018-07-02 | 삼성전자주식회사 | 스캔 데이터 컨트롤 장치 및 이를 갖는 전자 시스템 |
GB2562102B (en) * | 2017-05-05 | 2019-09-04 | Advanced Risc Mach Ltd | An apparatus and method for managing use of capabilities |
US11256605B2 (en) | 2017-10-19 | 2022-02-22 | Samsung Electronics Co., Ltd. | Nonvolatile memory device |
KR102396448B1 (ko) | 2017-10-19 | 2022-05-11 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
KR102075701B1 (ko) * | 2017-11-24 | 2020-02-10 | 서울대학교산학협력단 | 명령어 레벨 데이터 격리 방법 및 장치 |
TW201931136A (zh) * | 2018-01-08 | 2019-08-01 | 晨星半導體股份有限公司 | 硬體控制方法與硬體控制系統 |
EP3746921B1 (en) | 2018-02-02 | 2023-12-27 | Dover Microsystems, Inc. | Systems and methods for policy linking and/or loading for secure initialization |
SG11202007272QA (en) | 2018-02-02 | 2020-08-28 | Charles Stark Draper Laboratory Inc | Systems and methods for policy execution processing |
US11797398B2 (en) | 2018-04-30 | 2023-10-24 | Dover Microsystems, Inc. | Systems and methods for checking safety properties |
WO2020097179A1 (en) | 2018-11-06 | 2020-05-14 | Dover Microsystems, Inc. | Systems and methods for stalling host processor |
CN109684049A (zh) * | 2018-11-23 | 2019-04-26 | 上海琪埔维半导体有限公司 | 一种程序调用方法 |
US11841956B2 (en) | 2018-12-18 | 2023-12-12 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
US10678677B1 (en) * | 2019-01-10 | 2020-06-09 | Red Hat Israel, Ltd. | Continuous debugging |
GB2582790B (en) * | 2019-04-03 | 2021-03-31 | Graphcore Ltd | Debugging mechanism |
CN112541166A (zh) * | 2019-09-20 | 2021-03-23 | 杭州中天微系统有限公司 | 一种方法、系统和计算机可读存储介质 |
CN110795350B (zh) * | 2019-10-28 | 2023-05-05 | 山东浪潮科学研究院有限公司 | 一种risc-v处理器的可控跟踪调试方法及系统 |
US11734457B2 (en) * | 2019-12-23 | 2023-08-22 | Intel Corporation | Technology for controlling access to processor debug features |
US11783050B2 (en) * | 2020-11-13 | 2023-10-10 | Centaur Technology, Inc. | Spectre fixes with predictor mode tag |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
US20020042874A1 (en) * | 1998-10-30 | 2002-04-11 | Judge K. Arora | Apparatus and method to change processor privilege without pipeline flush |
US20080082802A1 (en) * | 2006-09-29 | 2008-04-03 | Shinya Muramatsu | Microcomputer debugging system |
US7480797B2 (en) * | 2004-07-31 | 2009-01-20 | Hewlett-Packard Development Company, L.P. | Method and system for preventing current-privilege-level-information leaks to non-privileged code |
TW201044268A (en) * | 2009-04-08 | 2010-12-16 | Freescale Semiconductor Inc | Debug signaling in a multiple processor data processing system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08263324A (ja) * | 1995-03-22 | 1996-10-11 | Nec Ibaraki Ltd | デバッグ容易化装置 |
US5948097A (en) * | 1996-08-29 | 1999-09-07 | Intel Corporation | Method and apparatus for changing privilege levels in a computer system without use of a call gate |
US5978902A (en) * | 1997-04-08 | 1999-11-02 | Advanced Micro Devices, Inc. | Debug interface including operating system access of a serial/parallel debug port |
US6480818B1 (en) * | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US6321329B1 (en) * | 1999-05-19 | 2001-11-20 | Arm Limited | Executing debug instructions |
US7680999B1 (en) | 2000-02-08 | 2010-03-16 | Hewlett-Packard Development Company, L.P. | Privilege promotion based on check of previous privilege level |
US7073059B2 (en) * | 2001-06-08 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Secure machine platform that interfaces to operating systems and customized control programs |
US7117352B1 (en) * | 2002-02-13 | 2006-10-03 | Lsi Logic Corporation | Debug port disable mechanism |
WO2004015553A1 (en) * | 2002-08-13 | 2004-02-19 | Nokia Corporation | Computer architecture for executing a program in a secure of insecure mode |
GB2395583B (en) * | 2002-11-18 | 2005-11-30 | Advanced Risc Mach Ltd | Diagnostic data capture control for multi-domain processors |
US7669050B2 (en) * | 2004-06-24 | 2010-02-23 | International Business Machines Corporation | Method to enable user mode process to operate in a privileged execution mode |
US7814308B2 (en) * | 2004-08-27 | 2010-10-12 | Microsoft Corporation | Debugging applications under different permissions |
US8533530B2 (en) * | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
US8346870B2 (en) * | 2009-05-06 | 2013-01-01 | Microsoft Corporation | Low-privilege debug channel |
US20110202740A1 (en) * | 2010-02-17 | 2011-08-18 | Arm Limited | Storing secure page table data in secure and non-secure regions of memory |
-
2010
- 2010-09-24 GB GB1016080.2A patent/GB2483907A/en not_active Withdrawn
-
2011
- 2011-07-25 EP EP11738469.3A patent/EP2619670B1/en active Active
- 2011-07-25 KR KR1020137008018A patent/KR101770666B1/ko active IP Right Grant
- 2011-07-25 CN CN201180045568.XA patent/CN103119566B/zh active Active
- 2011-07-25 JP JP2013529704A patent/JP5668143B2/ja active Active
- 2011-07-25 MY MYPI2013700318A patent/MY164785A/en unknown
- 2011-07-25 WO PCT/GB2011/051405 patent/WO2012038709A1/en active Application Filing
- 2011-07-26 TW TW100126425A patent/TWI505085B/zh active
- 2011-07-28 US US13/137,208 patent/US8874883B2/en active Active
-
2013
- 2013-03-03 IL IL225032A patent/IL225032A/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
US20020042874A1 (en) * | 1998-10-30 | 2002-04-11 | Judge K. Arora | Apparatus and method to change processor privilege without pipeline flush |
US7480797B2 (en) * | 2004-07-31 | 2009-01-20 | Hewlett-Packard Development Company, L.P. | Method and system for preventing current-privilege-level-information leaks to non-privileged code |
US20080082802A1 (en) * | 2006-09-29 | 2008-04-03 | Shinya Muramatsu | Microcomputer debugging system |
TW201044268A (en) * | 2009-04-08 | 2010-12-16 | Freescale Semiconductor Inc | Debug signaling in a multiple processor data processing system |
Non-Patent Citations (1)
Title |
---|
Freescale Semiconductor Inc, "MCF548x Reference Manual Rev. 5", 200904. ARM Limited, "ARM1176JZ-S Techical Reference Manual Rev. 70p7", 20091127. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI659361B (zh) * | 2018-01-09 | 2019-05-11 | 國立中央大學 | 支援多執行緒/並行程式除錯之方法、電腦可讀取之記錄媒體及電腦程式產品 |
Also Published As
Publication number | Publication date |
---|---|
GB2483907A (en) | 2012-03-28 |
US8874883B2 (en) | 2014-10-28 |
CN103119566A (zh) | 2013-05-22 |
EP2619670B1 (en) | 2016-04-27 |
CN103119566B (zh) | 2016-08-31 |
KR101770666B1 (ko) | 2017-08-23 |
JP2013542498A (ja) | 2013-11-21 |
EP2619670A1 (en) | 2013-07-31 |
KR20130112034A (ko) | 2013-10-11 |
IL225032A (en) | 2016-11-30 |
WO2012038709A1 (en) | 2012-03-29 |
MY164785A (en) | 2018-01-30 |
TW201214104A (en) | 2012-04-01 |
US20120079458A1 (en) | 2012-03-29 |
GB201016080D0 (en) | 2010-11-10 |
JP5668143B2 (ja) | 2015-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI505085B (zh) | 資料處理裝置的除錯(一) | |
TWI742964B (zh) | 用於異質計算之系統,方法,及設備 | |
JP6507435B2 (ja) | 命令エミュレーションプロセッサ、方法、およびシステム | |
KR101673435B1 (ko) | 공동 설계 프로세서에서 격리된 실행 환경의 생성 | |
US7831813B2 (en) | Uses of known good code for implementing processor architectural modifications | |
TWI474191B (zh) | 控制暫存器對應於異質指令集架構處理器 | |
TWI514135B (zh) | 記憶體存取控制 | |
US9804851B2 (en) | Operand size control | |
JP6508851B2 (ja) | 例外からの復帰時のマスク不可割り込みの早期有効化の回避 | |
JP5813554B2 (ja) | 半導体装置 | |
EP1735710A2 (en) | Providing support for single stepping a virtual machine in a virtual machine environment | |
GB2413657A (en) | Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus | |
CN114661347A (zh) | 用于安全指令集执行、仿真、监控和阻止的装置和方法 | |
JP2000029737A (ja) | デバッグ機能のためのリアルタイム外部命令挿入を有するプロセッサ | |
JP7445431B2 (ja) | 命令の実行を制御する装置および方法 | |
US20120042136A1 (en) | Alignment control | |
TWI467475B (zh) | 無關於特權位準的區段暫存器讀與寫的系統、設備及方法 | |
JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
TW202416122A (zh) | 用以保護影子堆疊之處理器、方法、系統和指令 | |
JP2004070819A (ja) | コプロセッサのホストインターフェース回路 |