Systems, apparatus, and methods to debug accelerator hardware
US-2024118992-A1 · Apr 11, 2024 · US
US9323646B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9323646-B2 |
| Application number | US-201113328229-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 16, 2011 |
| Priority date | Dec 17, 2010 |
| Publication date | Apr 26, 2016 |
| Grant date | Apr 26, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
The present invention relates to the field of debugging of compiled programs in a hardware security module such as a microprocessor card. A module according to the invention includes a microprocessor and a compiled program to be executed by the microprocessor in order to carry out an operation. The compiled program includes at least one debugging instruction which whether or not it is executed does not modify the execution of the operation. And, the hardware security module includes an element of inhibiting or activating the debugging instruction during the execution of the compiled program.
Opening claim text (preview).
The invention claimed is: 1. A hardware security module, comprising: a microprocessor, and a compiled program stored in a memory device and executable by said microprocessor in order to carry out an operation, the compiled program comprising at least one debugging instruction which does not change a result or functionality of said operation regardless of whether said at least one debugging instruction is executed, and the hardware security module being configured to read a state flag from a memory having the state flag stored therein to inhibit or activate the debugging instruction during the execution of the compiled program, wherein the state flag inhibiting or activating the debugging instruction can take three values as follows: a first value corresponding to an inhibition state inhibiting the debugging instruction, a second value corresponding to a first activation state in which the at least one debugging instruction causes items of debugging information resulting from the execution of the debugging instruction to be stored locally in the memory device without directly transmitting the debugging information to an external entity, said items of debugging information to be transmitted later to the external entity at the request of the external entity, and a third value corresponding to a second activation state in which the at least one debugging instruction causes said items of debugging information to be directly transmitted over a communication channel initiated by the hardware security module to the external entity. 2. The hardware security module according to claim 1 , wherein the inhibition or activation state of said inhibition or activation means is changeable in response to a command received from the external entity. 3. The hardware security module according to claim 1 , wherein the debugging instruction comprises a conditional instruction that is conditional as a function of said state flag. 4. The hardware security module according to claim 3 , wherein the memory storing the state flag is a one-time programmable memory, such that inhibition of the debugging instruction is definitive. 5. The hardware security module according to claim 1 , wherein the hardware security module is protected from modification by a cryptographic security mechanism. 6. The hardware security module according to claim 1 , wherein the at least one debugging instruction is configured to copy items of debugging information to a file stored in the memory device of the hardware security module, and wherein the hardware security module is configured to transmit said file to the external entity at the request of said external entity. 7. The hardware security module according to claim 6 , wherein said file is a fixed-length circular list. 8. A mobile phone comprising a contactless communication interface and a hardware security module according to claim 1 , the hardware security module comprising a first electrical contact linked to said contactless communication interface, wherein a communication channel dedicated to driving the execution of the compiled program by an external master entity and the communication channel initiated by the hardware security module with said external entity are, for one of them, compliant with a contactless communication standard via the first electrical contact and, for the other one, compliant with a contact communication standard via a second electrical contact of the hardware security module. 9. A debugging method carried out by a hardware security module having a microprocessor and a compiled program stored in a memory device of the hardware security module and executable by said microprocessor to carry out an operation, the compiled program including at least one debugging instruction which does not change a result or functionality of said operation regardless of whether said at least one debugging instruction is executed, the method comprising: at least one step of reading a state flag in the memory device and comparing a value of said state flag against each of first, second, and third values; where the state flag is equal to the first value, operating in an inhibiting state wherein the debugging instruction is inhibited, such that the debugging instruction is not executed when the compiled program is executed, where the state flag is equal to the second value, operating in a first activation state in which the debugging instruction is executed when the compiled program is executed, and items of debugging information resulting from the execution of said debugging instruction are caused to be stored locally without directly transmitting the items of debugging information to an external entity, and where the state flag is equal to the third value, operating in a second activation state in which the debugging instruction is executed when the compiled program is executed, and the items of debugging information resulting from the execution of said at least one debugging instruction are caused to be directly transmitted over a communication channel, initiated by the hardware security module, to the external entity. 10. The debugging method according to claim 9 , further comprising: a step of receipt, by the hardware security module, of a command changing the inhibition or activation state, transmitted by the external entity. 11. The debugging method according to claim 9 , further comprising: a step of definitively switching to the inhibition state, by writing an item of inhibition information to a one-time programmable memory. 12. The debugging method according to claim 9 , further comprising: a prior authentication step for authorizing the switching from one state to the other. 13. The debugging method according to claim 9 , wherein the debugging instruction comprises a conditional instruction that is conditional as a function of said state flag. 14. The debugging method according to claim 13 , wherein the memory storing the state flag is a one-time programmable memory, such that inhibition of the debugging instruction is definitive. 15. The debugging method according to claim 9 , wherein the inhibition or activation means is protected from modification by a cryptographic security mechanism. 16. The debugging method according to claim 9 , wherein the at least one debugging instruction is configured to copy items of debugging information to a file stored in a memory device of the hardware security module, and wherein the hardware security module is configured to transmit said file to the external entity at the request of said external entity. 17. The debugging method according to claim 16 , wherein said file is a fixed-length circular list.
using additional hardware · CPC title
Information transfer, e.g. on bus (G06F13/14 takes precedence) · CPC title
Execution arrangements for user interfaces · CPC title
using a specific debug interface · CPC title
for adaptation of a particular data processing system to different peripheral devices · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.