Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1999-09-22
2002-10-01
Dam, Tuan Q. (Department: 2124)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
Reexamination Certificate
active
06460177
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates generally to the development of fixed-point algorithms and more particularly to a methodology employing C++ class definitions for converting floating-point algorithms to corresponding target-specific fixed-point algorithms to be used, for example, in signal processing applications.
BACKGROUND OF THE INVENTION
In the early development stage of many high-complexity algorithms such as, for example, signal processing algorithms, software developers commonly perform the initial implementations using “floating-point” variables and arithmetic. This is done in order to bypass the burden of dealing with complex practical implementation issues, such as computation overflow, and therefore to speed up the algorithm development process. Once (or even before) this high level task is finalized, however, it is usually necessary to convert the implemented algorithms to a lower level “fixed-point” description. Such a need is driven, inter alia, by the fact that the algorithms must ultimately be implemented in more cost-efficient fixed-point processors, and/or they involve communications-related applications for which bit compliance may be critical in order to retain portability across different platforms.
Most typically, a three-stage procedure for fixed-point prototyping of floating-point algorithms is employed. The first stage is used to collect statistical information about the implemented floating-point algorithm (i.e., the initially implemented code), such as, for example, the dynamic range of the floating-point variables which are used in the code. The second stage is used to transform these floating-point variables into corresponding fixed-point representations. And the third stage replaces all floating-point operations with appropriately defined fixed-point operations, thereby allowing the code to operate on a fixed-point processor. In particular, this third stage may advantageously assume a particular target fixed-point processor, thereby allowing for the fixed-point operations to be defined so as to emulate those of the target processor.
Unfortunately, traditional approaches to the conversion of the initial floating-point algorithm code to a fixed-point implementation, even when using the above-described three stage procedure, invariably have several serious drawbacks. In particular, they tend to be inefficient, inflexible, tedious, and error prone. The original source code must be modified in a manner such that the final code appearance and the logical flow thereof are often quite different from that of the original (i.e., floating-point) code. Moreover, a substantial investment in time is usually required to perform the conversion, resulting in both high manpower costs as well as substantial real-time delays.
SUMMARY OF THE INVENTION
To circumvent the drawbacks of traditional approaches to the development of fixed-point algorithms initially implemented as floating-point code, a new methodology is proposed in accordance with the principles of the present invention. In particular, and in accordance with an illustrative embodiment of the method of the present invention, most of the tedious operations which need to be performed across the various stages of such a conversion procedure may be advantageously hidden inside the definitions of a set of C++ classes. With the aid of these C++ class definitions, the fixed-point design process can be substantially simplified. In accordance with the principles of the present invention as embodied in a preferred embodiment thereof, a programmer need only to include and/or exclude certain previously defined header files, and to change the variable declarations within the floating-point code, in order to simulate the source code across various stages of the above-described conversion process.
Specifically, in accordance with an illustrative embodiment of the present invention, a three-step method is provided for transforming a first set of program code including floating-point operations into a second set of program code in which fixed-point operations have been substituted for the floating-point operations. First, the illustrative method modifies the first set of program code by substituting for the floating-point variables of interest one or more newly defined data types which have been defined together with associated overloaded assignment operators for capturing the dynamic ranges of the floating-point variables upon the execution of modified code. Then, this modified program code is compiled and executed, thereby capturing the relevant dynamic range information. Finally, the code is modified again, this time by specifying additional data types defining one or more integer representation formats, and substituting for the (previously) floating-point variables the appropriate one of these data types based on the determined dynamic range therefor. In addition, one or more member functions are associated with each of these additional data types for converting between the given integer representation format and floating-point values.
REFERENCES:
patent: 5995122 (1999-11-01), Hsieh et al.
patent: 6173247 (2001-01-01), Maurudis et al.
patent: 6223198 (2001-04-01), Oberman et al.
patent: 6247116 (2001-06-01), Abdallah et al.
patent: 6266769 (2001-07-01), Abdallah et al.
patent: 2001/0023425 (2001-09-01), Oberman et al.
K. Kum, J.Kang, and W. Sung, “A Floating-Point To Interger C Converter With Shift Reduction For Fixed-Point Digital Signal Processors,” IEEE ICASSP, pp. 2163-2166, Mar. 1999.
Brown Kenneth M.
Chavis John Q.
Dam Tuan Q.
Lucent Technologies - Inc.
LandOfFree
Method for target-specific development of fixed-point... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method for target-specific development of fixed-point..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for target-specific development of fixed-point... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2935326