Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1997-10-03
2003-07-08
Maung, Zarni (Department: 2126)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
Reexamination Certificate
active
06591414
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a binary program conversion apparats and method for converting an original binary program into a new binary program that runs faster in a computer. Moreover, the present invention relates to a program recording medium with a program for making a computer to function as such a binary program conversion apparatus.
2. Description of the Related Art
To improve the performance of computer systems, many efforts have been made over the years to speed up the main memory. However, the development of cache memory has enabled an improvement in the performance of computer systems without speeding up the main memory.
The cache memory is a small, fast memory located between the main memory and the CPU. In the computer system having the cache memory, when a word (an instruction or data) is requested by the CPU, it is examined whether the requested word exists in the cache memory. If the requested word exists in the cache memory, the word in the cache memory is forwarded to the CPU. On the other hand, if the requested word does not exist in the cache memory, a fixed-size block of data, called a block or line, containing the requested word is retrieved from the main memory and placed into the cache memory. Then, the requested word contained in the data (line) in the cache memory is forwarded to the CPU.
That is, programs tend to reuse instructions and data which they have used recently and also tend to use words whose addresses are near one another in a short time. (Note that the former property and the latter property are called temporal locality of reference and spatial locality of reference, respectively.) In other words, the words in the main memory which the CPU will request in the near future in executing a program can be anticipated to some degree.
Since the cache memory stores such words, the CPU in the computer with the cache memory can obtain majority of words which are necessary to execute a program at the speed corresponding to not the access speed of the main memory but the access speed of the cache memory. As a result, a computer with a cache memory operates at the same speed with a system with a high-speed main memory and without a cache memory.
Moreover, since a computer with a cache memory needs a high-speed memory of small capacity, the use of the cache memory decreases the cost to construct a computer with a certain performance. Consequently, mostly of recent computers are provided with cache memories.
In addition, recent popularization of personal computers have decreased the price of the memory devices. As a result, modifying a program (software) so that the hit ratio of the main memory may increase in order to improve the performance of the computer becomes hardly significant. Because, in the computer to which many memory devices that became cheap are installed for actualizing a main memory of a large capacity, the hit ratio of the main memory is so high as not to influence the operation speed.
Therefore, for improving the performance of a computer by means of modifying a program, it is more effective to modify the program so that the hit ratio of the cache memory will be increased. That is, it becomes more important that improving the locality of reference of programs to draw out the performance of the cache memory to its maximum.
So far, to improve the hit ratio of the cache memory in a certain computer, a source program is compiled by a compiler developed for the computer. That is, to utilize this re-compile technology, each program user has to keep not only binary programs, which are programs used in practice, but also their source programs.
Moreover, since the advancement of the computer hardware is very fast and it takes time to develop a new compiler corresponding to a new computer architecture, more advanced hardware may be developed before the development of the compiler is completed. That is, there is a problem that correspondence by means of the conventional re-compile technology did not catch up with the advancement of hardware.
For these reasons, a program conversion technology which can convert a program into a new program suitable for a target computer without using its source program is wished for.
SUMMARY OF THE INVENTION
An object of the present invention is to provide a binary program conversion apparatus and a binary program conversion method which can convert an original binary program into another binary program that runs at high speed in a computer without using a source program of the original binary program.
It is another object of the present invention is to provide a program recording medium with a program for making a computer to function as such a binary program conversion apparatus.
A binary program conversion apparatus according to a first aspect of the invention is used for converting a first binary program which consists of a plural of first instruction blocks into a second binary program which is executed in a computer having a cache memory.
The binary program conversion apparatus comprises an executing part, a generating part and a producing part. The executing part executes the first binary program.
The generating part generates executed blocks information indicating first instruction blocks which are executed by the executing part.
The producing part produces, based on the executed blocks information generated by the generating part, the second binary program which contains second instruction blocks corresponding to the plural of the first instruction blocks and which causes, when being executed in the computer, the computer to store second instruction blocks corresponding to the first instruction blocks executed by the executing part at different locations of the cache memory.
Thus, the binary program conversion apparatus of the first aspect converts a binary program (first binary program) into a new binary program (second binary program) which runs fast in the computer with the cache memory by carrying out processes involves rearranging binary codes (executed blocks). Therefore, according to this binary program conversion apparatus, binary programs suitable for the computer having the cache memory can be obtained without using (managing) their source programs.
Actualization of the binary program conversion apparatus according to the first aspect involves the use of the producing part which produces the second binary program including a part in which the second instruction blocks corresponding to the first instruction blocks executed by the executing part arranged successively.
The binary program conversion apparatus according to the first aspect of the invention may further include a creating part and a controlling part. The creating part create a line data indicating lines of the cache memory which are to be used when the second binary program produced by the producing part is executed in the computer.
The controlling part controls the executing part so as to execute a third binary program which consists of a plural of third instruction blocks at first. Then, the controlling part controls the generating part so as to generate second executed blocks information indicating third instruction blocks executed by the executing part. Moreover, the controlling part controls the producing part so as to produce a fourth binary program which causes, when being executed in the computer, the computer to store fourth instruction blocks corresponding to the third instruction blocks executed by the executing part on different locations on lines of the cache memory excluding the lines indicated by the line data.
According to the thus constructed binary conversion apparatus, two binary programs (first, third binary programs), which are executed at the same time, can be converted into new two binary programs (second, fourth binary programs) which run at high speed in the computer.
The binary program conversion apparatus may further include a recognizing part which recognizes frequency of use for data access of every line of the cache memory by monitoring running st
Hibi Yoshinobu
Izuchi Toshiki
Kitaoka Masaharu
Nishi Hidefumi
Fujitsu Limited
Maung Zarni
Opie George L.
LandOfFree
Binary program conversion apparatus, binary program... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Binary program conversion apparatus, binary program..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Binary program conversion apparatus, binary program... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3109446