← Back to Patent Explorer
US4542453A Expired / Lapsed US ⏱️ 0.0 years remaining

Program patching in microcomputer

Assignee: International Business Machines Corp
•
Filing: 1982-02-19
•
Granted: 1985-09-17
•
Expires: 2002-02-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Michael J. Patrick
  • 👤 David M. Snider

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 15:07
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/32; G06F9/322; G06F9/328; G06F8/00; G06F8/60; G06F8/65; G06F8/66

Claims Analysis

Total Claims: 17
Claim 1
Independent Claim 258 words
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.
Claim 2
Dependent Claim 258 words
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.
Claim 3
Dependent Claim 20 words
A system according to claim 1 wherein the processor is a microcomputer device constructed as a single semiconductor integrated circuit.
Claim 4
Dependent Claim 15 words
A system according to claim 1 wherein said patch memory is a programmable read-only memory.
Claim 5
Independent Claim 27 words
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.
Claim 6
Dependent Claim 72 words
A system according to claim 4 wherein the processor includes interrupt means coupled to a one-bit output of the patch control memory device to receive said control signal, and functioning by interrupting said sequence of addresses to interrupt execution in the processor of a sequence of said instruction words in order to interpose a patch of a different sequence of instruction words fetched from said patch memory based upon said new address.
Claim 7
Dependent Claim 148 words
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.
Claim 8
Dependent Claim 148 words
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.
Claim 9
Dependent Claim 44 words
A system according to claim 6 wherein the tag bit storage means is in a one-bit wide memory device physically separate from the auxiliary program memory, and the address range of the auxiliary program memory is much less than that of the read-only memory.
Claim 10
Dependent Claim 29 words
A system according to claim 7 wherein the auxiliary program memory contains a plurality of patch code instruction sequences and a look-up table of the addresses of the sequences.
Claim 11
Dependent Claim 38 words
A system according to claim 6 whererin the tag bit memory is in the same memory device as the auxiliary program memory, and the auxiliary program memory has an address range equal to that of the read-only memory.
Claim 12
Independent Claim 143 words
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.
Claim 13
Independent Claim 143 words
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.
Claim 14
Dependent Claim 29 words
A method according to claim 10 wherein the one-bit wide memory device is programmed to contain 1 and 0 logic levels depending upon the address locations to be patched.
Claim 15
Dependent Claim 30 words
A method according to claim 10 including the step of programming the auxiliary memory to contain a plurality of patch code sequences at different starting addresses in the auxiliary memory.
Claim 16
Dependent Claim 19 words
A method according to claim 12 wherein the auxiliary memory contains a look-up table of said different starting addresses.
Claim 17
Dependent Claim 29 words
A method according to claim 13 including the step of selecting a starting address from the look-up table based on the address in said sequence which produced said output.

References Cited (Backward Citations)

US3911406A Cited
US4400798A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1988-09-16 1989-03-18 1989-09-17 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1992-09-16 1993-03-18 1993-09-17 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1996-09-16 1997-03-18 1997-09-17 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag