Patents by Inventor Peter Markstein
Peter Markstein has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 7155471Abstract: A method and system is used to determine the correct rounding of a floating point function. The method involves performing the floating point function to a higher precision than required and examining the portion of extra precision in the result known as the discriminant. If a critical pattern is found in the discriminant, this indicates that standard rounding may give an incorrect result and further calculation is needed. The method can work for various rounding modes and types of floating point representations. The method can be implemented in a system as part of a processor instruction set or any combination of hardware, microcode, and software.Type: GrantFiled: February 12, 2003Date of Patent: December 26, 2006Assignee: Hewlett-Packard Development Company, L.P.Inventors: Peter Markstein, Dale Morris, James M. Hull
-
Patent number: 7065758Abstract: A system to optimize code for a family of related functions. The system recognizes a function call as being a member of a family of related functions. For the member function, the system replaces the member call with corresponding family-start and member-finish function calls.Type: GrantFiled: June 28, 2002Date of Patent: June 20, 2006Assignee: Hewlett-Packard Development Company, L.P.Inventors: Peter Markstein, James W. Thomas, Kevin Crozier
-
Patent number: 7065757Abstract: Consider a set of functions, each of whose calculations are almost identical. A common example is the set of trigonometric functions sine, cosine, and tangent. Each of these functions is computed by first performing argument reduction and some preliminary calculations, which are identical for all members of the set. A few unique instructions are performed at the end for each of the functions in the set. Normally, when such functions are encountered, a separate sequence of instructions is called for each function even if the functions appear in close proximity. This results in duplicate instructions being performed which increases execution time and length of compiled program. Specialized functions exists to minimize execution, but programs with such specialized function calls suffer from non-portability. The present invention includes a method and a system to optimize function calls for faster execution while maintaining portability.Type: GrantFiled: September 28, 2001Date of Patent: June 20, 2006Assignee: Hewlett-Packard Development Company, L.P.Inventors: Peter Markstein, James Thomas, Kevin Crozier
-
Publication number: 20040158600Abstract: A method and system is used to determine the correct rounding of a floating point function. The method involves performing the floating point function to a higher precision than required and examining the portion of extra precision in the result known as the discriminant. If a critical pattern is found in the discriminant, this indicates that standard rounding may give an incorrect result and further calculation is needed. The method can work for various rounding modes and types of floating point representations. The method can be implemented in a system as part of a processor instruction set or any combination of hardware, microcode, and software.Type: ApplicationFiled: February 12, 2003Publication date: August 12, 2004Applicant: Hewlett Packard CompanyInventors: Peter Markstein, Dale Morris, James M. Hull
-
Patent number: 6578059Abstract: A floating-point unit of a computer includes a floating-point computation unit, floating-point registers and a floating-point status register. The floating-point status register may include a main status field and one or more alternate status fields. Each of the status fields contains flag and control information. Different floating-point operations may be associated with different status fields. Subfields of the floating-point status register may be updated dynamically during operation. The control bits of the alternate status fields may include a trap disable bit for deferring interruptions during speculative execution. A widest range exponent control bit in the status fields may be used to prevent interruptions when the exponent of an intermediate result is within the range of the register format but exceeds the range of the memory format. The floating-point data may be stored in big endian or little endian format.Type: GrantFiled: October 10, 1998Date of Patent: June 10, 2003Assignee: Institute for the Development of Emerging Architectures, L.L.C.Inventors: Jerome C. Huck, Peter Markstein, Glenn T. Colon-Bonet, Alan H. Karp, Roger Golliver, Michael Morrison, Gautam B. Doshi
-
Publication number: 20030097651Abstract: Consider a set of functions, each of whose calculations are almost identical. A common example is the set of trigonometric functions sine, cosine, and tangent. Each of these functions is computed by first performing argument reduction and some preliminary calculations, which are identical for all members of the set. A few unique instructions are performed at the end for each of the functions in the set. Normally, when such functions are encountered, a separate sequence of instructions is called for each function even if the functions appear in close proximity. This results in duplicate instructions being performed which increases execution time and length of compiled program. Specialized functions exists to minimize execution, but programs with such specialized function calls suffer from non-portability. The present invention includes a method and a system to optimize function calls for faster execution while maintaining portability.Type: ApplicationFiled: September 28, 2001Publication date: May 22, 2003Inventors: Peter Markstein, James Thomas, Kevin Crozier
-
Publication number: 20030088861Abstract: A system to optimize code for a family of related functions. The system recognizes a function call as being a member of a family of related functions. For the member function, the system replaces the member call with corresponding family-start and member-finish function calls.Type: ApplicationFiled: June 28, 2002Publication date: May 8, 2003Inventors: Peter Markstein, James W. Thomas, Kevin Crozier
-
Publication number: 20030079210Abstract: A compiler includes a real register allocation stage, an optimization stage and a final code stage. The real register allocation stage is configured to generate intermediate code from a basic block of source code. Physical registers, instead of virtual registers, are allocated to operands from the generated intermediate code, and the operands are stored in the physical registers. Then, the intermediate code is optimized, and machine readable code is generated from the intermediated code using the optimized registers in the final code stage. By allocating physical registers in the front-end of the compiler, instead of just prior to generating the machine-readable code, compiling time and memory needed for compiling source code is reduced.Type: ApplicationFiled: October 19, 2001Publication date: April 24, 2003Inventors: Peter Markstein, Meng Lee
-
Patent number: 6370639Abstract: A floating-point unit of a computer includes a floating-point computation unit, floating-point registers and a floating-point status register. The floating-point status register may include a main status field and one or more alternate status fields. Each of the status fields contains flag and control information. Different floating-point operations may be associated with different status fields. Subfields of the floating-point status register may be updated dynamically during operation. The control bits of the alternate status fields may include a trap disable bit for deferring interruptions during speculative execution. A widest range exponent control bit in the status fields may be used to prevent interruptions when the exponent of an intermediate result is within the range of the register format but exceeds the range of the memory format. The floating-point data may be stored in big endian or little endian format.Type: GrantFiled: October 10, 1998Date of Patent: April 9, 2002Assignee: Institute for the Development of Emerging Architectures L.L.C.Inventors: Jerome C. Huck, Peter Markstein, Glenn T. Colon-Bonet, Alan H. Karp, Roger Golliver, Michael Morrison, Gautam B. Doshi, Guillermo Juan Rozas
-
Patent number: 6301705Abstract: The present invention is generally directed to a system and method for supporting speculative execution of an instruction set for a central processing unit (CPU) including non-speculative and speculative instructions. In accordance with one aspect of the invention a method includes the steps of evaluating the instructions of the program to determine whether the individual instructions are speculative or non-speculative, and assessing each of the speculative instructions to determine whether it generates an exception. For each of the speculative instructions that generates an exception, the method then encode a deferred exception token (DET) into an unused register value of a register of the CPU. In accordance with another aspect of the invention, a system is provided, which system includes circuitry configured to evaluate the instructions of the instruction set to determine whether the individual instructions are speculative or non-speculative.Type: GrantFiled: October 1, 1998Date of Patent: October 9, 2001Assignee: Institute for the Development of Emerging Architectures, L.L.C.Inventors: Gautam B. Doshi, Peter Markstein, Alan H. Karp, Jerome C. Huck, Glenn T. Colon-Bonet, Michael Morrison
-
Patent number: 6212539Abstract: A floating-point unit of a computer includes a floating-point computation unit, floating-point registers and a floating-point status register. The floating-point status register may include a main status field and one or more alternate status fields. Each of the status fields contains flag and control information. Different floating-point operations may be associated with different status fields. Subfields of the floating-point status register may be updated dynamically during operation. The control bits of the alternate status fields may include a trap disable bit for deferring interruptions during speculative execution. A widest range exponent control bit in the status fields may be used to prevent interruptions when the exponent of an intermediate result is within the range of the register format but exceeds the range of the memory format. The floating-point data may be stored in big endian or little endian format.Type: GrantFiled: October 10, 1998Date of Patent: April 3, 2001Assignee: Institute for the Development of Emerging Architectures, L.L.C.Inventors: Jerome C. Huck, Peter Markstein, Glenn T. Colon-Bonet, Alan H. Karp, Roger Golliver, Michael Morrison, Gautam B. Doshi
-
Patent number: 6151669Abstract: A floating-point unit of a computer includes a floating-point computation it, floating-point registers and a floating-point status register. The floating-point status register may include a main status field and one or more alternate status fields. Each of the status fields contains flag and control information. Different floating-point operations may be associated with different status fields. Subfields of the floating-point status register may be updated dynamically during operation. The control bits of the alternate status fields may include a trap disable bit for deferring interruptions during speculative execution. A widest range exponent control bit in the status fields may be used to prevent interruptions when the exponent of an intermediate result is within the range of the register format but exceeds the range of the memory format. The floating-point data may be stored in big endian or little endian format.Type: GrantFiled: October 10, 1998Date of Patent: November 21, 2000Assignee: Institute For The Development of Emerging Architectures, L.L.C.Inventors: Jerome C. Huck, Peter Markstein, Glenn T. Colon-Bonet, Alan H. Karp, Roger Golliver, Michael Morrison, Gautam B. Doshi, Guillermo Juan Rozas
-
Patent number: 5671170Abstract: A floating point arithmetic unit for correctly rounding a quotient or a square root of high precision numbers to the floating point number closest to the exact result is disclosed. The invention is generally applicable to round results to a precision greater than that provided by the floating point hardware. Prior to rounding, the hardware within the floating point unit produces a high precision mantissa with all but the last few digits correct. The rounding technique according to the invention is then used to produce a correctly rounded result using an enhanced Tuckerman test. Unlike a conventional Tuckerman test, the enhanced Tuckerman test determines the last few ULPs for both square root and division while checking for early termination. The advantage of checking for early termination is that the computation time needed to make the rounding decision can be significantly reduced.Type: GrantFiled: July 1, 1994Date of Patent: September 23, 1997Assignee: Hewlett-Packard CompanyInventors: Peter Markstein, Alan H. Karp
-
Patent number: 5631859Abstract: A floating point processing system which uses a multiplier unit and an adder unit to perform properly rounded quad precision floating point arithmetic operations using double-extended hardware. The floating point processing system includes quad data muxes for converting a quantity between a quad precision representation and a two double-extended precision quantities and vice versa, wherein the sum, if added at infinite precision, of the two double-extended precision quantities is equal to the quad precision quantity. The floating point processing system further include hardware for performing arithmetic operations on double-extended precision quantities.Type: GrantFiled: October 27, 1994Date of Patent: May 20, 1997Assignee: Hewlett-Packard CompanyInventors: Peter Markstein, Clemens Roothaan, Dennis Brzezinski
-
Patent number: 5515308Abstract: A floating point processing system which uses a multiplier unit and an adder unit to perform floating point division and square root operations using both a conventional and a modified form of the Newton-Raphson method. The modified form of the Newton-Raphson method is used in place of the final iteration of the conventional Newton-Raphson so as to compute high precision approximated results with a substantial improvement in speed. The invention computes approximated results faster and simplifies hardware requirements because no multiplications of numbers of the precision of the result are required.Type: GrantFiled: September 8, 1995Date of Patent: May 7, 1996Assignee: Hewlett-Packard CompanyInventors: Alan H. Karp, Peter Markstein, Dennis Brzezinski
-
Patent number: 5341321Abstract: A floating point processing system which uses a multiplier unit and an adder unit to perform floating point division and square root operations using both a conventional and a modified form of the Newton-Raphson method. The modified form of the Newton-Raphson method is used in place of the final iteration of the conventional Newton-Raphson so as to compute high precision approximated results with a substantial improvement in speed. The invention computes approximated results faster and simplifies hardware requirements because no multiplications of numbers of the precision of the result are required.Type: GrantFiled: May 5, 1993Date of Patent: August 23, 1994Assignee: Hewlett-Packard CompanyInventors: Alan H. Karp, Peter Markstein, Dennis Brzezinski