Method for ensuring security of program data in one-time programmable memory
First Claim
Patent Images
1. An integrated circuit comprising:
- program memory;
a security register for storing a section boundary address corresponding to a boundary between first and second portions of said program memory;
a programmable processor, coupled to said program memory, for executing instructions stored in the first portion of said program memory, and instructions stored in the second portion of said program memory, the instructions including accesses to the program memory at an address corresponding to the contents of a data pointer;
a program counter, for storing a program memory address corresponding to an instruction being executed by the programmable processor; and
security logic, coupled to the programmable processor and the security register, and comprising boundary logic for disabling execution of an instruction responsive to the contents of the data pointer indicating a memory address in one of the portions of the program memory in combination with the program memory address corresponding to an address in another one of the portions of the program memory.
2 Assignments
0 Petitions
Accused Products
Abstract
This application describes a method of protecting data and program code stored in an EPROM array from piracy. The security scheme allows for segmentation of the array to protect one section of the array from reading while programming a non-secure section. The security scheme also allows for protection of the entire array after programming is complete. It also incorporates a device to prevent tampering with the segmentation registers and a means to prevent circumvention of the security scheme even when the processor is in one or more of its test modes.
-
Citations
14 Claims
-
1. An integrated circuit comprising:
-
program memory; a security register for storing a section boundary address corresponding to a boundary between first and second portions of said program memory; a programmable processor, coupled to said program memory, for executing instructions stored in the first portion of said program memory, and instructions stored in the second portion of said program memory, the instructions including accesses to the program memory at an address corresponding to the contents of a data pointer; a program counter, for storing a program memory address corresponding to an instruction being executed by the programmable processor; and security logic, coupled to the programmable processor and the security register, and comprising boundary logic for disabling execution of an instruction responsive to the contents of the data pointer indicating a memory address in one of the portions of the program memory in combination with the program memory address corresponding to an address in another one of the portions of the program memory. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A microprocessor, comprising:
-
a computational unit for executing program instructions upon data; data memory, coupled to the computational unit, for storing data operands; program memory coupled to said computational unit for storing instructions executable by the computational unit; a security register for storing a section boundary address corresponding to a boundary between first and second portions of said program memory; a program counter, for storing a program memory address corresponding to an instruction being executed by the computational logic; a data pointer, for storing a memory address corresponding to a memory location to be accessed in execution of an instruction; and boundary control logic, coupled to the security register, to the program counter, and to the data pointer, for blocking memory access responsive to the contents of the data pointer indicating a memory address in one of the portions of the program memory in combination with the program memory address corresponding to an address in another one of the portions of the program memory. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A telephone answering machine, comprising:
-
a microprocessor, comprising; a computational unit for executing program instructions upon data; data memory, coupled to the computational unit, for storing data operands; program memory coupled to said computational unit for storing instructions executable by the computational unit; a security register for storing a section boundary address corresponding to a boundary between first and second portions of said program memory; a program counter, for storing a program memory address corresponding to an instruction being executed by the computational logic; a data pointer, for storing a memory address corresponding to a memory location to be accessed in execution of an instruction; and boundary control logic, coupled to the security register, to the program counter, and to the data pointer, for blocking memory access responsive to the contents of the data pointer indicating a memory address in one of the portions of the program memory in combination with the program memory address corresponding to an address in another one of the portions of the program memory; an interface operatively connected said microprocessor to a telephone line in such a way as to receive and send messages; a microphone operatively connected to said microprocessor in such a way as to record sound for storage within the answering machine; and a speaker operatively connected to said microprocessor in such a way as to play back sounds stored within the answering machine. - View Dependent Claims (13, 14)
-
Specification