Patent US5632024A successfully refreshed from Google Patents.
US5632024A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Microcomputer executing compressed program and generating compressed branch addresses
Assignee: Hitachi Ltd
•
Filing: 1995-08-15
•
Granted: 1997-05-20
•
Expires: 2015-08-15
Abstract
Abstract An executable program is stored in compressed form in a ROM, from which compressed program data is fetched to be expanded by an expandor to a pre-compression form. The expanded data is then decoded by an instruction decoder for execution. This novel setup reduces a memory usage amount in main storage including the ROM. If a branch instruction appears, a controller converts a pre-compression branch destination address to a corresponding post-compression branch destination address and sets a value thereof to a program counter.
Inventors
- 👤 Hiroshi Yajima
- 👤 Yugo Kashiwagi
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-31 17:30
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/3017; G06F9/30178; G06F8/00
Claims Analysis
Total Claims: 32
Claim 1
Independent Claim
182 words
A method of executing compressed program data in a microcomputer, the compressed program data provided by compressing a program having a plurality of instructions and stored in a memory, the compressed program data addressable by a plurality of addresses, comprising the steps of: fetching data from a predetermined address in said compressed program data stored in the memory, wherein the predetermined address is provided by a program counter; expanding said fetched data; decoding said expanded data; determining whether the decoding indicates a change in compressed program execution sequence; executing an operation in accordance with the result of said decoding; generating an address for said compressed data program indicating the next data of said compressed data program to be fetched by incrementing the predetermined address if the decoding does not indicate a change in the compressed program execution sequence; and generating a branch address for said compressed data program to indicate a destination address in said compressed data program by extracting a compressed branch address from a compressed address translation table if the decoding indicates a change in the compressed program execution sequence.
Claim 2
Independent Claim
182 words
A method of executing compressed program data in a microcomputer, the compressed program data provided by compressing a program having a plurality of instructions and stored in a memory, the compressed program data addressable by a plurality of addresses, comprising the steps of: fetching data from a predetermined address in said compressed program data stored in the memory, wherein the predetermined address is provided by a program counter; expanding said fetched data; decoding said expanded data; determining whether the decoding indicates a change in compressed program execution sequence; executing an operation in accordance with the result of said decoding; generating an address for said compressed data program indicating the next data of said compressed data program to be fetched by incrementing the predetermined address if the decoding does not indicate a change in the compressed program execution sequence; and generating a branch address for said compressed data program to indicate a destination address in said compressed data program by extracting a compressed branch address from a compressed address translation table if the decoding indicates a change in the compressed program execution sequence.
Claim 3
Dependent Claim
78 words
A method according to claim 1 further comprising the steps of: determining from the data fetched in said fetching step if said compressed program data requires expansion in said expanding step; wherein, if said fetched data is determined to require expansion, then said fetched data is expanded in said expanding step; and wherein, if said fetched data is determined not to require expansion, then said fetched data is decoded in said decoding step without performing the expanding step.
Claim 4
Dependent Claim
216 words
A microcomputer comprising: program counter means for indicating an instruction address; storage means for storing compressed program data provided by compressing a program having a plurality of instructions, said storage means being connected to said program counter means; expanding means including means for fetching data from the instruction address indicated by said program counter means and means for expanding the fetched data; decoding means for decoding the expanded data from said expanding means; execution means for executing operations in response to the decoding of the expanded data by the decoding means; execution sequence determining means coupled to said decoding means for determining whether the decoding by said decoding means indicates a change in instruction execution sequence; address generation means including a compressed address translation table for generating a branch address indicating a destination address within said compressed program data by extracting a compressed branch address corresponding to the branch address included in said fetched data from the compressed address translation table; and setting means for setting the address generated by said address generation means in said program counter means in response to an indication of a change in the instruction execution sequence, and for incrementing the instruction address in said program counter means in response to an indication of no change in the instruction execution sequence.
Claim 5
Dependent Claim
216 words
A microcomputer comprising: program counter means for indicating an instruction address; storage means for storing compressed program data provided by compressing a program having a plurality of instructions, said storage means being connected to said program counter means; expanding means including means for fetching data from the instruction address indicated by said program counter means and means for expanding the fetched data; decoding means for decoding the expanded data from said expanding means; execution means for executing operations in response to the decoding of the expanded data by the decoding means; execution sequence determining means coupled to said decoding means for determining whether the decoding by said decoding means indicates a change in instruction execution sequence; address generation means including a compressed address translation table for generating a branch address indicating a destination address within said compressed program data by extracting a compressed branch address corresponding to the branch address included in said fetched data from the compressed address translation table; and setting means for setting the address generated by said address generation means in said program counter means in response to an indication of a change in the instruction execution sequence, and for incrementing the instruction address in said program counter means in response to an indication of no change in the instruction execution sequence.
Claim 6
Dependent Claim
64 words
A microcomputer according to claim 3, wherein said expanding means comprises: determining means for determining if said expansion of the fetched data is necessary; wherein, if said expansion is determined to be necessary, then the data expanding means expands said fetched data; and wherein, if said expansion is determined to be unnecessary, then said fetched data is supplied to said decoding means without expansion.
Claim 7
Dependent Claim
49 words
A microcomputer according to claim 4, wherein said data expanding means comprises: a translation rule table containing expanded data corresponding to fetched data from the stored compressed program data; and first searching means for searching said translation rule table to determine if expansion is necessary for the fetched data.
Claim 8
Dependent Claim
77 words
A microcomputer according to claim 5, wherein said address generation means comprises: the compressed address translation table containing a branch destination instruction address in program data before compression and a corresponding branch destination instruction address in the program data after compression; and second searching means for searching said compressed address translation table based on the branch destination instruction address before compression wherein the corresponding branch destination instruction address after compression is generated by the address generation means.
Claim 9
Dependent Claim
40 words
A microcomputer according to claim 5, wherein said expansion is performed by assigning a data string having a relatively high frequency of occurrence in the program data before compression to a predetermined byte of data of the compressed program data.
Claim 10
Dependent Claim
64 words
A microcomputer according to claim 3, wherein said expanding means comprises: determining means for determining if said expansion of said fetched data is necessary; wherein, if said expansion is determined to be necessary, then the data expanding means expands said fetched data; and wherein, if said expansion is determined to be unnecessary, then said fetched data is supplied to said decoding means without expansion.
Claim 11
Dependent Claim
50 words
A microcomputer according to claim 8, wherein said data expanding means further comprises: a translation rule table containing expanded data corresponding to fetched data from the stored compressed data program; and first searching means for searching said translation rule table to determine if expansion is necessary for the fetched data.
Claim 12
Dependent Claim
76 words
A microcomputer according to claim 3, wherein said address generation means comprises: the compressed address translation table containing a branch destination instruction address in program data before compression and a corresponding branch destination instruction address in program data after compression; and second searching means for searching said compressed address translation table based on the branch destination instruction address before compression wherein the corresponding branch destination instruction address after compression is generated by the address generation means.
Claim 13
Dependent Claim
17 words
A microcomputer according to claim 3 further comprising a semiconductor substrate on which said microcomputer is disposed.
Claim 14
Dependent Claim
17 words
A microcomputer according to claim 9 further comprising a semiconductor substrate on which said microcomputer is disposed.
Claim 15
Dependent Claim
17 words
A microcomputer according to claim 10 further comprising a semiconductor substrate on which said microcomputer is disposed.
Claim 16
Dependent Claim
238 words
In a microcomputer for use with a memory which stores a compressed program which has been provided by compressing a program having a plurality of instructions, the microcomputer comprising: a program counter generating an address by an increment operation, the generated address indicating an address of the compressed program; a data expander expanding data of the compressed program indicated by the address generated by the program counter; an instruction decoder decoding the expanded data and generating an output; an execution unit executing an operation in accordance with the output of the instruction decoder; an instruction determination unit, responsive to the output of the instruction decoder, determining whether the operation to be executed by the execution unit includes a branch operation; an address generation unit including a compressed address translation table and generating destination address data for indicating a destination in the compressed program by extracting compressed branch address data from the compressed address translation table if the instruction determination unit has determined that the operation to be executed by the execution unit includes the branch operation; and a setting unit setting the generated destination address data to the program counter if the instruction determination unit has determined that the operation to be executed by the execution unit includes a branch operation, wherein data from the destination in the compressed program indicated by the destination address data is expanded by the data expander and executed by the execution unit.
Claim 17
Dependent Claim
238 words
In a microcomputer for use with a memory which stores a compressed program which has been provided by compressing a program having a plurality of instructions, the microcomputer comprising: a program counter generating an address by an increment operation, the generated address indicating an address of the compressed program; a data expander expanding data of the compressed program indicated by the address generated by the program counter; an instruction decoder decoding the expanded data and generating an output; an execution unit executing an operation in accordance with the output of the instruction decoder; an instruction determination unit, responsive to the output of the instruction decoder, determining whether the operation to be executed by the execution unit includes a branch operation; an address generation unit including a compressed address translation table and generating destination address data for indicating a destination in the compressed program by extracting compressed branch address data from the compressed address translation table if the instruction determination unit has determined that the operation to be executed by the execution unit includes the branch operation; and a setting unit setting the generated destination address data to the program counter if the instruction determination unit has determined that the operation to be executed by the execution unit includes a branch operation, wherein data from the destination in the compressed program indicated by the destination address data is expanded by the data expander and executed by the execution unit.
Claim 18
Dependent Claim
18 words
A microcomputer according to claim 14, wherein the memory and the microcomputer are formed on a single chip.
Claim 19
Dependent Claim
99 words
A microcomputer according to claim 14, wherein the address generation unit includes: the compressed address translation table including a plurality of destination data for indicating destination addresses for branch operations in the program before being compressed and a plurality of destination address data corresponding to the plurality of destination data and which indicate destination addresses in the compressed program; and a compressed address translation table search unit which searches the plurality of destination data to find destination data if the instruction determination unit has determined that the operation to be executed by the execution unit includes a branch operation.
Claim 20
Dependent Claim
88 words
A microcomputer according to claim 16, wherein the data expander comprises: a data determination unit determining whether expansion is required of the data of the compressed program indicated by the address generated by the program counter; and a selecting unit which provides the data of the compressed program indicated by the address generated by the program counter to the instruction decoder without expansion if expansion of the data is not required and which provides the expanded data to the instruction decoder if expansion of the data is required.
Claim 21
Dependent Claim
13 words
A microcomputer according to claim 17, wherein the memory is a read-only memory.
Claim 22
Dependent Claim
13 words
A microcomputer according to claim 15, wherein the memory is a read-only memory.
Claim 23
Dependent Claim
211 words
A microcomputer executing a compressed program of instructions addressable by addresses, the instructions of the compressed program addressable by addresses, the compressed program generated by compressing an initial program of instructions, comprising: a program counter storing an address indicating an instruction of the compressed program; a memory storing instructions of the compressed program; an instruction expander coupled to the memory, the instruction expander sequentially receiving and selectively expanding the instructions of the compressed program and generating instructions corresponding to the initial program; an instruction decoder decoding instructions from the instruction expander and generating an output; an execution unit executing the instructions from the instruction expander in response to the instruction decoder output; an address translator including a compressed address translation table and generating the compressed branch addresses indicating addresses in the compressed program by extracting a compressed branch from the compressed address translation table, wherein, in response to an output which is provided from the instruction decoder and which indicates a change in sequence of the compressed program, the address translator stores in the program counter the compressed branch address in the compressed program so that an instruction at the address indicated by the compressed branch address can be executed in response to the change in sequence of the compressed program.
Claim 24
Dependent Claim
211 words
A microcomputer executing a compressed program of instructions addressable by addresses, the instructions of the compressed program addressable by addresses, the compressed program generated by compressing an initial program of instructions, comprising: a program counter storing an address indicating an instruction of the compressed program; a memory storing instructions of the compressed program; an instruction expander coupled to the memory, the instruction expander sequentially receiving and selectively expanding the instructions of the compressed program and generating instructions corresponding to the initial program; an instruction decoder decoding instructions from the instruction expander and generating an output; an execution unit executing the instructions from the instruction expander in response to the instruction decoder output; an address translator including a compressed address translation table and generating the compressed branch addresses indicating addresses in the compressed program by extracting a compressed branch from the compressed address translation table, wherein, in response to an output which is provided from the instruction decoder and which indicates a change in sequence of the compressed program, the address translator stores in the program counter the compressed branch address in the compressed program so that an instruction at the address indicated by the compressed branch address can be executed in response to the change in sequence of the compressed program.
Claim 25
Dependent Claim
50 words
The microcomputer of claim 20, wherein the instruction expander comprises an instruction translation table containing instructions of the compressed program and corresponding instructions of the initial program, wherein, in response to an instruction from the compressed program, a corresponding instruction of the initial program is provided to the instruction decoder.
Claim 26
Dependent Claim
54 words
The microcomputer of claim 21, wherein the compressed address translation table contains addresses of instructions of the compressed program and corresponding addresses of the initial program, wherein the addresses of the compressed program comprise addresses of instructions for which an output of the instruction decoder indicate a change in sequence of the compressed program.
Claim 27
Dependent Claim
14 words
The microcomputer of claim 20, wherein the microcomputer is implemented on a semiconductor substrate.
Claim 28
Dependent Claim
40 words
The microcomputer of claim 21, wherein the instruction translation table contains instructions of the initial program having a high frequency of occurrence, wherein instructions of the initial program having a high frequency of occurrence are compressed in the compressed program.
Claim 29
Dependent Claim
293 words
In a microcomputer for use with a memory which stores a program which has been compressed, the microcomputer comprising: a program counter generating an address of the compressed program; a data expander selectively expanding data of the compressed program indicated by the address generated by the program counter; an instruction decoder decoding the expanded data and generating an output; an execution unit executing an operation in accordance with the output of the instruction decoder; an instruction determination unit responsive to the output of the instruction decoder, determining whether the operation to be executed by the execution unit includes a branch operation; an address generation unit generating compressed destination address data indicating a destination in the compressed program if the instruction determination unit has determined that the operation to be executed by the execution unit includes a branch operation, wherein the address generation unit includes: a compressed address translation table including a plurality of destination data indicating destination addresses for branch operations in the program before being compressed and a plurality of compressed destination address data which correspond to the plurality of destination data and which indicate compressed destination addresses in the compressed program; and an address table search unit which searches the plurality of destination data to find compressed destination address data if the instruction determination unit has determined that the operation to be executed by the execution unit includes the branch operation; and a setting unit setting the compressed destination address data to the program counter if the instruction determination unit has determined that the operation to be executed by the execution unit includes a branch operation; wherein data indicated by the compressed destination address data in the compressed program is expanded by the data expander and executed by the execution unit.
Claim 30
Dependent Claim
293 words
In a microcomputer for use with a memory which stores a program which has been compressed, the microcomputer comprising: a program counter generating an address of the compressed program; a data expander selectively expanding data of the compressed program indicated by the address generated by the program counter; an instruction decoder decoding the expanded data and generating an output; an execution unit executing an operation in accordance with the output of the instruction decoder; an instruction determination unit responsive to the output of the instruction decoder, determining whether the operation to be executed by the execution unit includes a branch operation; an address generation unit generating compressed destination address data indicating a destination in the compressed program if the instruction determination unit has determined that the operation to be executed by the execution unit includes a branch operation, wherein the address generation unit includes: a compressed address translation table including a plurality of destination data indicating destination addresses for branch operations in the program before being compressed and a plurality of compressed destination address data which correspond to the plurality of destination data and which indicate compressed destination addresses in the compressed program; and an address table search unit which searches the plurality of destination data to find compressed destination address data if the instruction determination unit has determined that the operation to be executed by the execution unit includes the branch operation; and a setting unit setting the compressed destination address data to the program counter if the instruction determination unit has determined that the operation to be executed by the execution unit includes a branch operation; wherein data indicated by the compressed destination address data in the compressed program is expanded by the data expander and executed by the execution unit.
Claim 31
Dependent Claim
12 words
A microcomputer according to claim 25, wherein the memory comprises read-only memory.
Claim 32
Dependent Claim
19 words
A microcomputer according to claim 25, wherein the microcomputer and the read-only memory are formed on a single chip.
References Cited (Backward Citations)
JPS55131848A
Cited
US4402044A
Cited
US4694391A
Cited
US4839649A
Cited
JPS62171031A
Cited
US4868570A
Cited
US4890249A
Cited
US5307173A
Cited
JPH02297626A
Cited
US5303356A
Cited
US5299519A
Cited
US5155484A
Cited
US5463746A
Cited
US5481364A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2000-05-19 | 2000-11-18 | 2001-05-20 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2004-05-19 | 2004-11-18 | 2005-05-20 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2008-05-19 | 2008-11-18 | 2009-05-20 | $7700.00 | Window Closed / Lapsed |