Overlay instruction accessing unit and overlay instruction accessing method
AssigneeInternational Business Machines Corporation
InventorsLiang Chen, Kuan Feng, Wang Zheng, Min Zhu
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Business Machines Corporation
InventorsLiang Chen, Kuan Feng, Wang Zheng, Min Zhu
Estimating the term…
The present invention provides an overlay instruction accessing unit and method, and a method and apparatus for compressing and storing a program. The overlay instruction accessing unit is used to execute a program stored in a memory in the form of a plurality of compressed program segments, and compresses: a buffer; a processing unit for issuing an instruction reading request, reading an instruction from the buffer, and executing the instruction; and a decompressing unit for reading a requested compressed instruction segment from the memory in response to the instruction reading request of the processing unit, decompressing the compressed instruction segment, and storing the decompressed instruction segment in the buffer, wherein while the processing unit is executing the instruction segment, the decompressing unit reads, according to a storage address of a compressed program segment to be invoked in a header corresponding to the instruction segment, a corresponding compressed instruction segment from the memory, decompresses the compressed instruction segment, and stores the decompressed instruction segment in the buffer for later use by the processing unit.
A method for compressing and storing a program, comprising the steps of:
An apparatus for compressing and storing a program, comprising:
An overlay instruction accessing method executed by an overlay instruction accessing unit comprising a processing unit, a buffer and a decompressing unit, for reading and executing a program stored in a memory in the form of a plurality of compressed program segments, wherein each of the compressed program segments includes a header at its beginning, a compressed instruction segment, and a jump instruction at its end, the header includes a storage address of a compressed program segment to be invoked next which is predicted based on invoking relationships in the program and a storage address of the compressed instruction segment, and the jump instruction includes a storage address of a compressed program segment to be invoked next which is specified when the program is programmed, the overlay instruction accessing method comprising the steps of:
An overlay instruction accessing unit for reading and executing a program stored in a memory in the form of a plurality of compressed program segments, wherein each of the compressed program segments includes a header at its beginning, a compressed instruction segment, and a jump instruction at its end, the header includes a storage address of a compressed program segment to be invoked next which is predicted based on invoking relationships in the program and a storage address of the compressed instruction segment, and the jump instruction includes a storage address of a compressed program segment to be invoked next which is specified when the program is programmed, the overlay instruction accessing unit comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Concurrent instruction execution, e.g. pipeline or look ahead: instruction prefetching
Checking; Contextual analysis: dependency analysis; Data or control flow analysis
Arrangements for executing machine instructions, e.g. instruction decode: runtime instruction translation, e.g. macros
Runtime instruction translation, e.g. macros: of compressed or encrypted instructions
About 4 years 9 months of term left · ends 10 Aug 2031 (estimated)
The present invention relates to an overlay instruction accessing unit and overlay instruction accessing method, as well as an apparatus and method for compressing and storing a program.
With the increase of the scale of a System on Chip (SOC) and the development of application programs for the SOC, there is a need to integrate an embedded processor into the whole system in order to provide a high performance based on optimized instructions and structures. One of these generic architectures is to integrate digital signal processors (DSPs) into the system. Application programs built on this kind of platform can take advantage of the high performance provided by the DSPs to process digital media.
Integrating the processing units into the system improves the programmability of the SOC. However, the need for memories for storing instructions executed by these processing units increases correspondingly, because each of the processing units requires an individual instruction memory to store instructions to be executed. The problem is worse for a Single Program Multiple Data (SPMD) application in a multi-core architecture. In this case, since each processing unit of the multi-core processor needs to read and execute a same program, it is required to duplicate the program into an instruction memory for each processing unit so as to be executed by it, which increases the need for the instruction memories. Since the instruction memories are major sources of the cost of the system (especially for the SPMD model), integrating the processing units into the system correspondingly increases the cost of the system.
The above and other objects, features, and advantages of the present invention will become more apparent from the detailed description of embodiments of the present invention in conjunction with the attached drawings in which
FIG. 1 is a block diagram of an apparatus for compressing and storing a program according to the present invention.
FIG. 2 is a flow diagram of a method for compressing and storing a program performed by the apparatus shown in FIG. 1 according to present invention.
Hereinafter, embodiments of the present invention are described with respect to the figures. It is to be understood that the embodiments described herein are only illustrative, but not to limit the scope of the present invention. It will be appreciated by those skilled in the art that various modifications and combinations can be made to the embodiments without departing from the scope of the present invention.
In general, a program is consisted of several instruction segments, and the instruction segments are linked to each other by jump instructions. When a processing unit executes the program, the processing unit executes these instruction segments sequentially and independently due to the data independence among the respective instruction segments, and jumps to a next instruction segment according to an encountered jump instruction after executing an instruction segment. The jump instructions comprise jump, call, and so on which indicate invoking relationships among the respective instruction segments in the program.
Based on this characteristic, if viewed from a sequence diagram, the invoking relationships among the respective instruction segments can be regarded as a list. For an H.264 decoder, for example, its sequence diagram is consisted of the steps of parsing, idct, intra/inter prediction, reconstruction, in-loop filtering, and so on. When processing a data stream, the H.264 decoder performs these steps sequentially on the data stream, and each of the steps is independent from the other steps when executed.