Adaptive 128-bit floating point load and store operations for quadruple precision compatibility
First Claim
1. In a processing unit utilized for performing floating point numeric calculations, an apparatus for transferring data between a floating point unit and a memory in which said memory is mapped to receive a floating point word of a first precision format comprising:
- a floating point register, having a register bit length for supporting a floating point word length of a second precision format, but in which said second precision format is of lower precision format and shorter in bit-length than said first precision format;
a load/store unit coupled to said memory and to said register for providing a store operation in response to a store instruction and a load operation in response to a load instruction for transferring data between said memory and said register;
wherein during a store operation, data bits in said register are stored into a location in said memory at most significant bit positions of a memory boundary based on said first precision format; and
during a load operation, data bits in said location in memory corresponding to said bits from said register are restored to said register.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for providing adaptive 128-bit load and store operations to support architecture extensions for computations on a 128-bit quadruple precision format, in which a single set of load and store instructions provides for save and restore operations on both 80-bit and 128-bit floating point register files. A 128-bit load and store instructions are utilized for moving values that are 128-bit aligned in memory. The transfer entails the movement of data between a 128-bit memory boundary and a floating point register file for register save and restore operations. In one embodiment, 80-bit registers are used and in a second embodiment 128-bit registers are used. The same instructions operate on both the 80-bit and 128-bit registers to map the content of a given register into a 128-bit boundary field in memory. A load/store unit allocates the bit positioning so that when 80-bit registers are used, the 80 bits are moved into the most significant bit positions of the 128-bit boundary field. The remaining bit positions are filled with 0s. When values are moved to memory the reverse operation is performed.
71 Citations
20 Claims
-
1. In a processing unit utilized for performing floating point numeric calculations, an apparatus for transferring data between a floating point unit and a memory in which said memory is mapped to receive a floating point word of a first precision format comprising:
-
a floating point register, having a register bit length for supporting a floating point word length of a second precision format, but in which said second precision format is of lower precision format and shorter in bit-length than said first precision format; a load/store unit coupled to said memory and to said register for providing a store operation in response to a store instruction and a load operation in response to a load instruction for transferring data between said memory and said register; wherein during a store operation, data bits in said register are stored into a location in said memory at most significant bit positions of a memory boundary based on said first precision format; and during a load operation, data bits in said location in memory corresponding to said bits from said register are restored to said register. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A microprocessor having a capability of performing floating point numeric calculations in which data of a lower precision word format is transferred to and from a location in memory having a word boundary for a longer bit-length word corresponding to a higher precision word format comprising:
-
a floating point register, having a register bit-length for supporting a floating point word of said lower precision word format, but not of said higher precision word format; a load/store unit coupled to said memory and to said register for providing a store operation in response to a store instruction and a load operation in response to a load instruction for transferring data between said memory and said register; wherein during a store operation, data bits in said register are stored into said location in said memory at most significant bit positions of a memory boundary based on said higher precision word format and wherein said load/store unit stores a place holder value to remaining bit positions at said location in memory; and during a load operation, data bits in said location in memory corresponding to said bits from said register are restored to said register and wherein remaining place holder bits are discarded by said load/store unit. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A microprocessor having a capability of performing floating point numeric calculations in which data of a lower precision word format is transferred to and from a location in memory having a word boundary for a longer bit-length word corresponding to a higher precision word format comprising:
-
register means, having a register bit-length capable of storing a floating point word of said lower precision word format, but not of said higher precision word format; load and store means coupled to said memory and to said register means for providing a store operation in response to a store instruction and a load operation in response to a load instruction for transferring data between said memory and said register means; wherein during a store operation, data bits in said register means are stored into said location in said memory at most significant bit positions of a memory boundary based on said higher precision word format and wherein said load/store means stores a place holder value to remaining bit positions at said location in memory; and during a load operation, data bits in said location in memory corresponding to said bits from said register means are restored to said register means and wherein remaining place holder bits are discarded by said load/store means. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer having a capability of performing floating point numeric calculations utilizing different precision formats, wherein its processor does not have the circuitry to support floating point numeric computations based on a first precision format, but said processor is capable of supporting floating point numeric computations based on a second and lower precision format, an apparatus in said processor for transferring data, having a bit-length corresponding to said second precision format, to and from a location in memory which has an architecture to store floating point values based on said first precision format that is of longer bit-length than said second precision format comprising:
-
a floating point register, having a register bit-length for supporting a floating point word of said second precision format, but not for said first precision format; a load/store unit coupled to said memory and to said register for providing a store operation in response to a store instruction and a load operation in response to a load instruction for transferring data between said memory and said register; wherein during a store operation, data bits in said register are stored into said location in said memory at most significant bit positions of a memory boundary based on said first precision format and wherein said load/store unit stores a place holder value to remaining bit positions at said location in memory; and during a load operation, data bits in said location in memory corresponding to said bits from said register are restored to said register and wherein remaining place holder bits are discarded by said load/store unit; such that data transfer of said second precision format is achieved by instructions for operating on said first precision format. - View Dependent Claims (17, 18, 19, 20)
-
Specification