Patent US5828884A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5828884A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for compiling a software program and executing on a system which converts data between different endian formats

Assignee: Advanced Micro Devices Inc
•
Filing: 1996-05-23
•
Granted: 1998-10-27
•
Expires: 2016-05-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for compiling a software program and executing the program on a data processing system which performs conversion between data formatted in differing endian formats, namely big-endian and little-endian formats, also known as byte swapping. The data processing system comprises a data storage device, such as system memory, a processor, and a byte swapping device coupled between the data storage device and the processor. Data conversion apertures, or ranges, are defined in the processor address space and the processor provides address signals to the byte swapping device. The byte swapping device selectively byte swaps data transferred between the processor and storage device based upon the relationship between the addresses received by the byte swapping device and the data conversion apertures. A compiler generates object offsets to data elements in a source code module, then adds a format base to the object offset to calculate a data aperture offset for each data element, which is then stored in an object code module. The format bases for the data elements are chosen according to the data type of the data element. A base memory address is bound to each data element at runtime, load-time or compile time. The base memory address for each data element is added to the data aperture offset for the data element to calculate a data aperture address for the data element. As the processor executes the program and performs a transfer of a data element between the processor and data storage device, the processor provides the data aperture address of the data element to the byte swapping device. The byte swapping device selectively byte swaps the data element during the transfer according to a relationship between the data aperture address and the data conversion apertures. The compiler generates data conversion aperture values and the processor programs the data conversion aperture values into aperture storage elements in the byte swapping device when loading the program into system memory for execution. The data conversion apertures are chosen based upon the set of data types comprised by the data elements, namely data types which require byte swapping and data types which do not.

Inventors

  • 👤 Sherman Lee
  • 👤 JoAnne K. Halligan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 21:57
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/76; G06F7/768; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/447; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/3004; G06F9/30043; G06F9/34

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 120 words
A method for translating a source code module into an object code module, comprising: choosing a format base for a data element referenced in said source code module; generating an object offset for said data element; calculating a data aperture offset of said data element by adding said format base and said object offset; storing said data aperture offset associated with said data element in said object code module to thereby allow said data aperture offset to be subsequently added to a base memory address; wherein said choosing a format base, said generating an object offset said calculating a data aperture offset, and said associating said data aperture offset being performed for each data element in said source code module.
Claim 2
Independent Claim 120 words
A method for translating a source code module into an object code module, comprising: choosing a format base for a data element referenced in said source code module; generating an object offset for said data element; calculating a data aperture offset of said data element by adding said format base and said object offset; storing said data aperture offset associated with said data element in said object code module to thereby allow said data aperture offset to be subsequently added to a base memory address; wherein said choosing a format base, said generating an object offset said calculating a data aperture offset, and said associating said data aperture offset being performed for each data element in said source code module.
Claim 3
Dependent Claim 30 words
The method of claim 1, wherein said data element has an associated data type, wherein said choosing said format base is according to said data type of said data element.
Claim 4
Dependent Claim 133 words
The method of claim 1, wherein said object code module is linked into an executable computer program for execution on a computer system comprising, wherein said computer system comprises a data storage device configured to store said data elements, a data processing device which controls transfers of said data elements between said data storage device and said data processing device, and a byte swapping device coupled between said data processing device and said storage device, wherein said byte swapping device selectively byte swaps said data elements during said transfers of said data elements between said data storage device and said data processing device, wherein said format base is chosen to cause said byte swapping device to byte swap at least a portion of said data elements during said transfers of said data elements.
Claim 5
Dependent Claim 30 words
The method of claim 3, wherein said data element has an associated data type, wherein said choosing said format base is according to said data type of said data element.
Claim 6
Dependent Claim 63 words
The method of claim 1, wherein said data element is a field of a data structure, wherein said field of said data structure has a characteristic byte offset within said data structure, wherein said calculating said data aperture offset of said data element comprises: adding said characteristic byte offset of said field within said data structure, said format base and said object offset.
Claim 7
Independent Claim 341 words
A method for executing a computer program on a computer system, wherein said computer program comprises references to one or more data elements, wherein each of said one or more data elements has an associated data aperture offset stored in said computer program, wherein said computer system comprises a data storage device configured to store said one or more data elements, a data processing device which controls transfers of said one or more data elements between said data storage device and said data processing device, and a byte swapping device coupled between said data processing device and said storage device, wherein said byte swapping device selectively byte swaps said one or more data elements during said transfers of said one or more data elements between said data storage device and said data processing device according to a plurality of data conversion apertures, comprising: binding a base memory address to a data element of said one or more data elements referenced by said computer program and stored in said computer system, wherein said base memory address is subsequently used, along with a data aperture offset associated with said data element and stored in said computer program, in calculating a data aperture address for said data element; computing a data aperture address for said data element by adding said base memory address of said data element and the stored associated data aperture offset of said data element; transferring said data element between said data processing device and said data storage device, wherein said data processing device generates said data aperture address to perform said transferring of said data element; selectively byte swapping said data element during said transferring of said data element between said data processing device and said data storage device according to a relationship between said data aperture address and sad plurality of said data conversion apertures; wherein said binding, said computing, said transferring and said selectively byte swapping are performed for each transfer of said one or more data elements between said data processing device and said data storage device.
Claim 8
Independent Claim 341 words
A method for executing a computer program on a computer system, wherein said computer program comprises references to one or more data elements, wherein each of said one or more data elements has an associated data aperture offset stored in said computer program, wherein said computer system comprises a data storage device configured to store said one or more data elements, a data processing device which controls transfers of said one or more data elements between said data storage device and said data processing device, and a byte swapping device coupled between said data processing device and said storage device, wherein said byte swapping device selectively byte swaps said one or more data elements during said transfers of said one or more data elements between said data storage device and said data processing device according to a plurality of data conversion apertures, comprising: binding a base memory address to a data element of said one or more data elements referenced by said computer program and stored in said computer system, wherein said base memory address is subsequently used, along with a data aperture offset associated with said data element and stored in said computer program, in calculating a data aperture address for said data element; computing a data aperture address for said data element by adding said base memory address of said data element and the stored associated data aperture offset of said data element; transferring said data element between said data processing device and said data storage device, wherein said data processing device generates said data aperture address to perform said transferring of said data element; selectively byte swapping said data element during said transferring of said data element between said data processing device and said data storage device according to a relationship between said data aperture address and sad plurality of said data conversion apertures; wherein said binding, said computing, said transferring and said selectively byte swapping are performed for each transfer of said one or more data elements between said data processing device and said data storage device.
Claim 9
Dependent Claim 24 words
The method of claim 6, wherein said binding said base memory address to said data element is performed at run-time of said computer program.
Claim 10
Dependent Claim 24 words
The method of claim 6, wherein said binding said base memory address to said data element is performed at load-time of said computer program.
Claim 11
Dependent Claim 24 words
The method of claim 6, wherein said binding said base memory address to said data element is performed at compile-time of said computer program.
Claim 12
Dependent Claim 28 words
The method of claim 6, wherein said byte swapping device further comprises one or more aperture storage elements configured to store respective said plurality of data conversion apertures.
Claim 13
Dependent Claim 25 words
The method of claim 10, wherein said data processing device writes said plurality of data conversion apertures to said one or more aperture storage elements.
Claim 14
Dependent Claim 36 words
The method of claim 6, wherein said data processing device is configured to generate data aperture addresses within a characteristic memory space, wherein said plurality of data conversion apertures comprise distinct apertures of said memory space.
Claim 15
Dependent Claim 65 words
The method of claim 6, wherein said data conversion apertures comprise a single-byte data element aperture and one or more multiple-byte data element apertures, wherein said byte swapping device byte swaps said data elements during said transferring of said data element between said data processing device and said data storage device only when said transferring occurs in said one or more multiple-byte data element apertures.
Claim 16
Dependent Claim 67 words
The method of claim 6, wherein said data conversion apertures comprise one or more byte-swapping data element apertures and one or more non-byte-swapping data element apertures, wherein said byte swapping device byte swaps said data elements during said transferring of said data element between said data processing device and said data storage device only when said transferring occurs in said one or more byte-swapping data element apertures.

References Cited (Backward Citations)

US5265237A Cited
US5630084A Cited
US5423010A Cited
US5313231A Cited
US5408664A Cited
US5524256A Cited
US5594919A Cited
US5574923A Cited
US5627975A Cited
US5687337A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-10-26 2002-04-27 2002-10-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-10-26 2006-04-27 2006-10-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-10-26 2010-04-27 2010-10-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag