Program patching in microcomputer
First Claim
Patent Images
1. A data processing system comprising:
- (a) a processor containing an arithmetic logic unit, a program store memory with addressing means, data storage means, and control means including an instruction register receiving instruction words from the program store to generate commands for defining the operations of the processor;
(b) peripheral input/output circuitry for coupling data between the processor and the peripheral equipment;
(c) bus means connecting terminals of the processor to the peripheral input/output circuitry; and
(d) program patching means coupled to said bus means, which enables online updating of processor program instructions without modifying the program store, comprising;
a patch memory for storage of instruction words, addressing means for the patch memory coupled to said addressing means for the program store via said bus means,output means for the patch memory coupled via said bus means to the control means in the processor for delivery of instruction words to said control means,and patch control means including a patch control memory connected via said bus means to said addressing means for the program store, and addressed simultaneously with the program store memory, and responsive to each address applied to the program store, and producing a control signal to said processor in response to a marker bit being detected in said patch control memory, said control signal being applied to said processor to interrupt a sequence of addresses applied by said addressing means to the program store when an address requiring a patch is detected, said processor generating a new address for the patch code when said interrupt occurs.
2 Assignments
0 Petitions
Accused Products
Abstract
A single-chip microcomputer device contains on-chip program storage in a read-only memory (ROM), and this program may be corrected or updated by patching. The ROM addresses are applied to an off-chip memory device containing one bit for each potential ROM address, and each bit is set to mark the beginning address of code to be patched; an interrupt is signalled when one of these set bits is accessed by an address occurring during operation of the microcomputer. The interrupt causes the processor to branch to an off-chip program memory to insert the patch code. The patch ends in a branch back to the on-chip ROM.
-
Citations
14 Claims
-
1. A data processing system comprising:
-
(a) a processor containing an arithmetic logic unit, a program store memory with addressing means, data storage means, and control means including an instruction register receiving instruction words from the program store to generate commands for defining the operations of the processor; (b) peripheral input/output circuitry for coupling data between the processor and the peripheral equipment; (c) bus means connecting terminals of the processor to the peripheral input/output circuitry; and (d) program patching means coupled to said bus means, which enables online updating of processor program instructions without modifying the program store, comprising; a patch memory for storage of instruction words, addressing means for the patch memory coupled to said addressing means for the program store via said bus means, output means for the patch memory coupled via said bus means to the control means in the processor for delivery of instruction words to said control means, and patch control means including a patch control memory connected via said bus means to said addressing means for the program store, and addressed simultaneously with the program store memory, and responsive to each address applied to the program store, and producing a control signal to said processor in response to a marker bit being detected in said patch control memory, said control signal being applied to said processor to interrupt a sequence of addresses applied by said addressing means to the program store when an address requiring a patch is detected, said processor generating a new address for the patch code when said interrupt occurs. - View Dependent Claims (2, 3)
-
- 4. A system according to claim wherein said patch control means includes a patch control memory device containing one bit for each addressable location in the program store.
-
6. A microcomputer system comprising:
-
a processor device containing a permanently-programmed read-only memory, a program counter, instruction-execution means including an instruction register, and interrupt means, all in a single semiconductor device; an auxiliary program memory having an address input and having an output; address/data bus means for transferring all of the addresses from the program counter of the processor device to the address input of the auxiliary program memory and for transferring instructions from the output of the auxiliary program memory to the instruction register; tag bit storage means also responsive to all of the addresses from the program counter applied to said address input to produce an output bit for each such address; the interrupt means of the processor device receiving said output bit from the tag bit storage means and controlling loading of the instruction register either from said read-only memory or from the address/data bus means. - View Dependent Claims (7, 8, 9)
-
-
10. A method of patching instruction code in a permanently programmed read only memory, while leaving the code in said read only memory in tact, coomprising the steps of:
-
applying a sequence of addresses to said read only memory and also applying each address of said sequence of addresses to a separate one bit wide memory device, containing a marker bit for each of said sequence of addresses; coupling an interrupt output on the one bit wide memory device to instruction processing means to cause an interruption in said sequence of addresses when the addressed marker bit in said memory device produced at said output is set at a given logic level; and if such interruption occurs then applying addresses to said auxiliary memory separate from said read only memory containing patch code, such addresses being outside the range of said sequence of addresses. - View Dependent Claims (11, 12, 13, 14)
-
Specification