WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit    
United States Patent6289300   
Link to this pagehttp://www.wikipatents.com/6289300.html
Inventor(s)Brannick; Dara Joseph (Claremorris, IE); Mitchell; Patrick Michael (Killaloe, IE); Cummins; Timothy J. (Cratloe, IE); O'Mara; Brian John (Grange, IE)
AbstractA data processor is provided with an embedded debugger. The debugging function is provided by the execution of a debugging program which is stored in reserved, non-volatile memory which is internal to the data processor. During the debug mode, the data processor allows the internal registers used during execution of a user program to be examined. Debug operation can be initiated via debug instruction which replaces an existing instruction in the user code, the replaced instruction being held in a special purpose register such that it can be executed on return from the debug mode. Single step operation of the data processor can be performed in debug mode and data and instructions can be exchanged with the data processor in debug mode, optionally via a single pin so as not to sacrifice any user resources.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Brannick; Dara Joseph (Claremorris, IE); Mitchell; Patrick Michael (Killaloe, IE); Cummins; Timothy J. (Cratloe, IE); O'Mara; Brian John (Grange, IE)
Owner/Assignee     Analog Devices, Inc. (Norwood, MA)
Patent assignment
All assignments
Publication Date     September 11, 2001
Application Number     09/019,943
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     February 6, 1998
US Classification     703/28 703/23 710/7 714/30 714/35
Int'l Classification     G06F 009/455
Examiner     Teska; Kevin J.
Assistant Examiner     Sergent; Douglas W.
Attorney/Law Firm     Wolf, Greenfield & Sacks, P.C.
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/500.44 395/500.49 703/23 703/24 703/25 703/28 710/7 714/30 714/33.35
Patent Tags     integrated circuit embedded emulator emulation with such integrated circuit
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
6009496
Tsai
711/103
Dec,1999

[0 after 0 votes]
5989960
Fukase

Nov,1999

[0 after 0 votes]
5963473
Norman
365/185.02
Oct,1999

[0 after 0 votes]
5956277
Roohparvar
365/201
Sep,1999

[0 after 0 votes]
5953255
Lee
365/185.29
Sep,1999

[0 after 0 votes]
5937423
Robinson
711/103
Aug,1999

[0 after 0 votes]
5900008
Akao

May,1999

[0 after 0 votes]
5901330
Sun
710/8
May,1999

[0 after 0 votes]
5898862
Vajapey

Apr,1999

[0 after 0 votes]
5889480
Kim
341/50
Mar,1999

[0 after 0 votes]
5872954
Matsushita
703/23
Feb,1999

[0 after 0 votes]
5873112
Norman
711/103
Feb,1999

[0 after 0 votes]
5862073
Yeh
365/185.01
Jan,1999

[0 after 0 votes]
5857094
Nemirovsky

Jan,1999

[0 after 0 votes]
5848026
Ramamurthy
365/238.5
Dec,1998

[0 after 0 votes]
5805865
Mimura
703/28
Sep,1998

[0 after 0 votes]
5796139
Fukase
257/315
Aug,1998

[0 after 0 votes]
5767729
Song

Jun,1998

[0 after 0 votes]
5768194
Matsubara

Jun,1998

[0 after 0 votes]
5758059
Alexander

May,1998

[0 after 0 votes]
5752077
Yiu

May,1998

[0 after 0 votes]
5651128
Gaultier
711/103
Jul,1997

[0 after 0 votes]
5630164
Williams
703/24
May,1997

[0 after 0 votes]
5627784
Roohparvar
365/189.01
May,1997

[0 after 0 votes]
5581695
Knoke
714/28
Dec,1996

[0 after 0 votes]
5535357
Moran
711/103
Jul,1996

[0 after 0 votes]
5515320
Miwa
365/185.1
May,1996

[0 after 0 votes]
5504684
Lau
455/3.02
Apr,1996

[0 after 0 votes]
5488688
Gonzales
714/34
Jan,1996

[0 after 0 votes]
5483239
Arczynski
341/141
Jan,1996

[0 after 0 votes]
5467200
Ohsawa
340/825.72
Nov,1995

[0 after 0 votes]
5426769
Pawloski
710/2
Jun,1995

[0 after 0 votes]
5375218
Umeda
710/22
Dec,1994

[0 after 0 votes]
5375228
Leary
714/33
Dec,1994

[0 after 0 votes]
5313618
Pawloski
703/28
May,1994

[0 after 0 votes]
5242848
Yeh
438/266
Sep,1993

[0 after 0 votes]
5224070
Fandrich
365/185.33
Jun,1993

[0 after 0 votes]
5212795
Hendry
710/28
May,1993

[0 after 0 votes]
5111425
Takeuchi
710/22
May,1992

[0 after 0 votes]
4476531
Marino
701/99
Oct,1984

[0 after 0 votes]
4272760
Prazak
341/120
Jun,1981

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A data processor including an emulation controller for causing the data processor to enter an emulation mode, and dedicated registers for use in the emulation mode wherein the emulation controller is responsive to an emulation instruction placed into a user program for causing the data processor to enter emulation mode, and wherein said emulation instruction replaces a pre-existing instruction and the instruction replaced by the emulation instruction is held in a dedicated register such that it can be executed upon return from the emulation mode.

2. A data processor as claimed in claim 1, in which the register containing the replaced instruction can only be altered when the data processor is in the emulation mode.

3. A data processor as claimed in claim 1, further comprising a non-volatile emulation memory for storing instructions to be performed by a data processing core of the data processor, and in which the emulation controller causes the data processing core to execute instructions from the emulation memory.

4. A data processor as claimed in claim 1, in which the emulation controller is further responsive to a signal on an emulator control terminal to initiate the emulation mode.

5. A data processor as claimed in claim 4, in which the signal is a voltage transition.

6. A data processor as claimed in claim 4, in which the control terminal is a pin of the data processor which is used to control other functions of the data processor during a predetermined operation thereof.

7. A data processor as claimed in claim 6, in which the predetermined operation is an initialisation sequence.

8. A data processor as claimed in claim 1, in which the emulation controller is further responsive to a control signal held in a storage element.

9. A data processor as claimed in claim 8, in which said control signal is a single step control signal which causes the data processor to only execute a single instruction of a user's programme before returning to the emulation mode.

10. A data processor as claimed in claim 8, in which said control signal is stored as a single bit within a register.

11. A data processor as claimed in claim 10, in which said register is an emulation control register for storing signals for controlling the functions executed in the emulation mode.

12. A data processor as claimed in claim 1, in which said emulation instruction is a single word instruction.

13. A data processor as claimed in claim 12, in which said emulation instruction is a single byte instruction.

14. A data processor as claimed in claim 12, in which the emulation instruction causes a jump to be performed from the user's programme to the emulation programme.

15. A data processor as claimed in claim 12, in which the emulation instruction causes an interrupt to be issued to the data processing core.

16. A data processor as claimed in claim 1, in which the emulation controller issues a priority non-maskable interrupt to a data processing core of the data processor in order to initiate the emulation mode.

17. A data processor as claimed in claim 1, in which the data processor includes an emulation control register containing bits for controlling at least one function selected from a list comprising: halting of counter and timers internal to the data processor; single step operation; enabling the interrupt mode to be initiated by an emulation instruction within the user's code; and executing an instruction held in an instruction register, said instruction corresponding to the instruction that was overwritten by the insertion of the emulation instruction into the user's programme.

18. A data processor as claimed in claim 1, in which the registers used during execution of user's programme instructions are left unaltered during emulation mode.

19. A data processor as claimed in claim 1 in which the contents of registers used during execution of a user's programme are read and output via a data link during emulation mode.

20. A data processor as claimed in claim 19, in which the contents of at least one of the stack and the programme counter of the data processor are read and output via the data link.

21. A data processor as claimed in claim 16, in which, the contents of the programme counter are pushed onto the stack at the commencement of the emulation mode.

22. A data processor as claimed in claim 16, in which an emulation stack and an emulation programme counter are provided for use by the data processing core during the emulation mode.

23. A data processor as claimed in claim 1, in which data from the emulator is output as a serial data stream using only a single pin.

24. A data processor as claimed in claim 1, in which the emulator is responsive to an external emulator control device to output information upon command, said information comprising at least one item from a list comprising: the contents of at least one register of the data processor; the contents of a stack of the data processor; the contents of a programme counter of the data processor; the contents of a selected memory address; and the contents of a selected block of memory addresses.

25. A data processor as claimed in claim 1, in which a program for controlling the operation of the data processor during emulation is stored in a reserved non-volatile memory which is hidden from the user of the data processor.

26. A data processor including an emulation controller for causing the data processor to enter an emulation mode, wherein the emulation controller is responsive to an emulation break point instruction overwriting an instruction of a user program resident in program memory.

27. A data processor as claimed in claim 26, in which the program memory is a non-volatile re-programmable memory arranged such that a block of program code can be read out from the memory, modified to insert said emulation break point and then rewritten to the program memory.

28. A data processor as claimed in claim 26, in which the length of the user program remains unchanged when the emulation break point instruction is inserted.

29. A data processor as claimed in claim 27, in which, upon return from the emulation mode, the data processor executes the instruction which was overwritten and which is held in said dedicated register.

30. A data processor as claimed in claim 27, in which said instruction which is overwritten is held in a special purpose register such that, upon return from the emulation mode, the instruction held in the register is executed.

31. A data processor as claimed in claim 1, in which the data processor returns from emulation with its registers unchanged, except for the special purpose register used in the emulation mode.

32. A data processor as claimed in claim 27, in which the data processor returns from emulation with its registers unchanged, except for the special purpose register used in the emulation mode.

33. An integrated circuit comprising a data processor operable in a first mode to execute a user's program and in a second mode to debug the user's program and in which the data processor executes code stored in an emulation memory when the data processor is operating in the second mode.

34. An integrated circuit as claimed in claim 33, further comprising dedicated registers for use in the emulation mode.

35. An integrated circuit as claimed in claim 33, in which, upon return from the second mode, the registers used in the first mode are as they were immediately prior to entering the second mode.

36. A data processor operable in a first mode to execute user code stored in a non-volatile user code memory and in a second mode to execute code stored in an internal reserved memory, wherein the user code is re-programmable while the data processor is in the second mode and in the second mode, the data processor acts to allow the user code to be debugged.

37. A data processor as claimed in claim 36, in which the second mode is a debug mode which is entered by the occurrence of a debug break point instruction in the user code.

38. A data processor as claimed in claim 36, in which the reserved memory is hidden from the user.

39. A data processor as claimed in claim 36, in which said data processor is arranged to communicate with an external device while in said second mode using a serial communication link.

40. A data processor as claimed in claim 36, in which said serial communication link comprises a single pin.

41. A data processor as claimed in claim 40, in which said single pin is used to control other functions of the data processor during a predetermined operation thereof.

42. A data processor as claimed in claim 40 in which the predetermined operation is an initialization sequence.

43. A method of reprogramming an integrated circuit containing a data processor, a first memory region for containing a user's code and a second, internal memory region for containing an emulation code, and wherein the data processor is operable in a first mode to execute code from the first memory, and in a second mode to execute emulation code from the second memory, which emulation code instructs the data processor to obtain new code to modify the user's code and allow the user code to be debugged.

44. A data processor operable in a first mode to execute the user code from an integrated memory, and in a second mode to execute debug code stored in an integrated non-volatile reserved memory; in which in the second mode the data processor executes instructions to communicate its internal status to an external development system and receive data and command information from the development system, where said communication is bi-directional via only a single terminal.

45. A data processor according to claim 44, in which the single terminal is an existing pin of the data processor.

46. A data processor according to claim 44, in which the second mode is entered by the occurrence of a break point instruction in the user code.

47. A data processor according to claim 44, in which the reserved memory is hidden from the user.

48. A data processor according to claim 44, in which said single terminal provides a control function of the data processor during the first mode.

49. A data processor according to claim 48, in which the single terminal controls the operation of the data processor during an initialization sequence.

50. A data processor according to claim 44, where the development system is a PC.

51. A data processor according to claim 44, where the data processor is an 8-bit microcontroller.

52. A data processor according to claim 44, wherein the user code is stored in Flash EEPROM.

53. A data processor according to claim 52 wherein the Flash EEPROM can be re-programmed whilst the data processor is in the second mode.

54. A method of debugging a data processor wherein the data processor is operable in a first mode to execute user code from an integrated memory, and in a second mode to execute debug code stored in reserved integrated memory; and in which in the second mode the data processor executes instructions to communicate its internal status to an external development system, and receive data and command information from the development system, where said communication is bi-directional via only a single terminal.