Movatterモバイル変換


[0]ホーム

URL:


US20010049780A1 - Method and apparatus for performing integer operations in response to a result of a floating point operation - Google Patents

Method and apparatus for performing integer operations in response to a result of a floating point operation
Download PDF

Info

Publication number
US20010049780A1
US20010049780A1US09/049,827US4982798DUS2001049780A1US 20010049780 A1US20010049780 A1US 20010049780A1US 4982798 DUS4982798 DUS 4982798DUS 2001049780 A1US2001049780 A1US 2001049780A1
Authority
US
United States
Prior art keywords
floating point
bits
data
registers
integer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/049,827
Other versions
US6317824B1 (en
Inventor
Shreekant Thakkar
Wayne H Scott
Patrice Roussel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IndividualfiledCriticalIndividual
Assigned to INTEL CORPORATIONreassignmentINTEL CORPORATIONASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: ROUSSEL, PATRICE, SCOTT, WAYNE H., THAKKAR, SHREEKANT S.
Publication of US20010049780A1publicationCriticalpatent/US20010049780A1/en
Grantedlegal-statusCriticalCurrent

Links

Images

Classifications

Definitions

Landscapes

Abstract

A method and apparatus for performing a move mask operation. The present invention provides a method and apparatus for performing operations on packed data values of a first size and format and conversion of the results to data of a second size and format by eliminating redundant data. The present invention is useful, for example, when comparisons are performed on floating point data that is typically larger (e.g., 64 bits) than integer data (e.g., 32 bits) and integer operations are preformed based on the result. Because many processors branch based on integer data, the comparison results stored as floating point data must be transferred to an integer register prior to branching. The present invention takes advantage of redundancy of the floating point comparison results to transfer enough data to convey the comparison result to integer registers with a single instruction.

Description

Claims (20)

What is claimed is:
1. In a computer system, method comprising the computer-implemented steps of:
performing an operation on data stored in a first format;
extracting data from a result of the operation stored in the first format, wherein the data includes a set of one or more bits each bit in the set of one or more bits represents multiple redundant bits in the result;
transferring the set of one or more bits to a second format; and
performing an operation in response to the set of one or more bits.
2. The method of
claim 1
, wherein the first format is packed floating point data.
3. The method of
claim 1
, where in the second format is integer data.
4. The method of
claim 1
, wherein the step of performing an operation on packed floating point data comprises performing a comparison of two sets of packed floating point data.
5. The method of
claim 1
, wherein the step of extracting data comprises setting a bit in a result mask register equal to a corresponding most significant bit of each associated packed floating point data value.
6. The method of
claim 1
, wherein the step of transferring comprises transferring the set of one or more bits from a floating point register to an integer register.
7. The method of
claim 1
, wherein the step of performing an operation in response to the set of one or more bits comprises performing a branch operation in response to the set of one or more bits.
8. A circuit comprising:
a first set of registers that store data in a first format;
a first arithmetic unit coupled to the first set of registers, wherein the first arithmetic unit performs compare operations on data stored in the first set of registers and stores a result in a register in the first set of registers, and further wherein the first arithmetic unit extracts a set of from the result, where each bit in the set of bits represents a redundant set of bits stored in the result;
a second set of registers storing data in a second format;
a transfer circuit coupled between the first set of registers and the second set of registers, the transfer circuit transferring the set of bits to a register in the first set of registers; and
a second arithmetic unit that performs operations in response to set of bits stored in the second set of registers.
9. The circuit of
claim 8
, wherein the set of registers are floating point registers.
10. The circuit of
claim 8
, wherein the second set of registers are integer registers.
11. An apparatus comprising:
means for performing an operation on data stored in a first format;
means for extracting data from a result of the operation stored in the first format, wherein the data includes a set of one or more bits each bit in the set of one or more bits represents multiple redundant bits in the result;
means for transferring the set of one or more bits to a second format; and
means for performing an operation in response to the set of one or more bits.
12. The apparatus of
claim 11
, wherein the means for performing an operation on packed floating point data comprises means for performing a comparison of two sets of packed floating point data.
13. The apparatus of
claim 11
, wherein the means for extracting data comprises setting a bit in a result mask register equal to a corresponding most significant bit of each associated packed floating point data value.
14. The apparatus of
claim 11
, wherein the means for transferring comprises means for transferring the set of one or more bits from a floating point register to an integer register.
15. The apparatus of
claim 11
, wherein the means for performing an operation in response to the set of one or more bits comprises means for performing a branch operation in response to the set of one or more bits.
16. A graphics display system comprising:
a bus;
a display device coupled to the bus; and
a processor coupled to the display device, the processor having a plurality of registers that store floating point data and integer data, the processor further comprising circuitry that extracts one or more bits of data from one of the registers that stores floating point data and transfers the extracted bits to an integer register to perform an integer operation, wherein the processor causes the display device to change what is displayed in response to the integer operation.
17. The graphics display system of
claim 16
, wherein the floating point data represents a portion of what is displayed by the display device.
18. The graphics display system of
claim 16
, wherein the floating point data comprises packed floating point data.
19. The graphics display system of
claim 18
, wherein the processor extracts a most significant bit from each value represented by the packed floating point data.
20. The graphics display system of
claim 16
wherein the integer operation is a branch operation.
US09/049,8271998-03-271998-03-27Method and apparatus for performing integer operations in response to a result of a floating point operationGrantedUS20010049780A1 (en)

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
US09/049,827US6317824B1 (en)1998-03-271998-03-27Method and apparatus for performing integer operations in response to a result of a floating point operation

Publications (1)

Publication NumberPublication Date
US20010049780A1true US20010049780A1 (en)2001-12-06

Family

ID=21961961

Family Applications (2)

Application NumberTitlePriority DateFiling Date
US09/049,827GrantedUS20010049780A1 (en)1998-03-271998-03-27Method and apparatus for performing integer operations in response to a result of a floating point operation
US09/049,827Expired - LifetimeUS6317824B1 (en)1998-03-271998-03-27Method and apparatus for performing integer operations in response to a result of a floating point operation

Family Applications After (1)

Application NumberTitlePriority DateFiling Date
US09/049,827Expired - LifetimeUS6317824B1 (en)1998-03-271998-03-27Method and apparatus for performing integer operations in response to a result of a floating point operation

Country Status (1)

CountryLink
US (2)US20010049780A1 (en)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US7301541B2 (en)*1995-08-162007-11-27Microunity Systems Engineering, Inc.Programmable processor and method with wide operations
EP2241968B1 (en)1998-08-242012-06-27MicroUnity Systems Engineering, Inc.System with wide operand architecture, and method
US7932911B2 (en)*1998-08-242011-04-26Microunity Systems Engineering, Inc.Processor for executing switch and translate instructions requiring wide operands
US7051060B2 (en)*2001-09-282006-05-23Intel CorporationOperand conversion optimization
EP1607858A1 (en)2004-06-162005-12-21Koninklijke Philips Electronics N.V.Bit-plane extraction operation
EP1870803A4 (en)*2005-03-312008-04-30Matsushita Electric Industrial Co Ltd PROCESSOR
US7958181B2 (en)2006-09-212011-06-07Intel CorporationMethod and apparatus for performing logical compare operations
US8327120B2 (en)2007-12-292012-12-04Intel CorporationInstructions with floating point control override
US7900025B2 (en)*2008-10-142011-03-01International Business Machines CorporationFloating point only SIMD instruction set architecture including compare, select, Boolean, and alignment operations
US7865693B2 (en)*2008-10-142011-01-04International Business Machines CorporationAligning precision converted vector data using mask indicating offset relative to element boundary corresponding to precision type
US8423983B2 (en)*2008-10-142013-04-16International Business Machines CorporationGenerating and executing programs for a floating point single instruction multiple data instruction set architecture
US9652231B2 (en)*2008-10-142017-05-16International Business Machines CorporationAll-to-all permutation of vector elements based on a permutation pattern encoded in mantissa and exponent bits in a floating-point SIMD architecture
US8327344B2 (en)*2008-10-142012-12-04International Business Machines CorporationArray reference safety analysis in the presence of loops with conditional control flow
EP2788901A1 (en)2011-12-082014-10-15Oracle International CorporationTechniques for maintaining column vectors of relational data within volatile memory
US9342314B2 (en)2011-12-082016-05-17Oracle International CorporationEfficient hardware instructions for single instruction multiple data processors
US10534606B2 (en)2011-12-082020-01-14Oracle International CorporationRun-length encoding decompression
US9792117B2 (en)2011-12-082017-10-17Oracle International CorporationLoading values from a value vector into subregisters of a single instruction multiple data register
US9697174B2 (en)2011-12-082017-07-04Oracle International CorporationEfficient hardware instructions for processing bit vectors for single instruction multiple data processors
CN104081340B (en)*2011-12-232020-11-10英特尔公司Apparatus and method for down conversion of data types
US9063974B2 (en)2012-10-022015-06-23Oracle International CorporationHardware for table scan acceleration
CN105653499B (en)*2013-03-152019-01-01甲骨文国际公司Hardware-efficient for single instruction multidata processor instructs
US9430390B2 (en)2013-09-212016-08-30Oracle International CorporationCore in-memory space and object management architecture in a traditional RDBMS supporting DW and OLTP applications
US9785565B2 (en)2014-06-302017-10-10Microunity Systems Engineering, Inc.System and methods for expandably wide processor instructions
US10025823B2 (en)2015-05-292018-07-17Oracle International CorporationTechniques for evaluating query predicates during in-memory table scans
US9990308B2 (en)2015-08-312018-06-05Oracle International CorporationSelective data compression for in-memory databases
US10402425B2 (en)2016-03-182019-09-03Oracle International CorporationTuple encoding aware direct memory access engine for scratchpad enabled multi-core processors
US10061714B2 (en)2016-03-182018-08-28Oracle International CorporationTuple encoding aware direct memory access engine for scratchpad enabled multicore processors
US10055358B2 (en)2016-03-182018-08-21Oracle International CorporationRun length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors
US10061832B2 (en)2016-11-282018-08-28Oracle International CorporationDatabase tuple-encoding-aware data partitioning in a direct memory access engine
US10599488B2 (en)2016-06-292020-03-24Oracle International CorporationMulti-purpose events for notification and sequence control in multi-core processor systems
US10380058B2 (en)2016-09-062019-08-13Oracle International CorporationProcessor core to coprocessor interface with FIFO semantics
US10783102B2 (en)2016-10-112020-09-22Oracle International CorporationDynamically configurable high performance database-aware hash engine
US10459859B2 (en)2016-11-282019-10-29Oracle International CorporationMulticast copy ring for database direct memory access filtering engine
US10176114B2 (en)2016-11-282019-01-08Oracle International CorporationRow identification number generation in database direct memory access engine
US10725947B2 (en)2016-11-292020-07-28Oracle International CorporationBit vector gather row count calculation and handling in direct memory access engine

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US4972314A (en)*1985-05-201990-11-20Hughes Aircraft CompanyData flow signal processor method and apparatus
US5073864A (en)1987-02-101991-12-17Davin Computer CorporationParallel string processor and method for a minicomputer
US4896133A (en)1987-02-101990-01-23Davin Computer CorporationParallel string processor and method for a minicomputer
CA2045735A1 (en)*1990-06-291991-12-30Richard Lee SitesComputer performance by eliminating branches
US5493687A (en)*1991-07-081996-02-20Seiko Epson CorporationRISC microprocessor architecture implementing multiple typed register sets
GB2258372B (en)*1991-08-021995-05-31Sony CorpApparatus for and methods of recording and/or reproducing digital data
US5581778A (en)*1992-08-051996-12-03David Sarnoff Researach CenterAdvanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock
US5701508A (en)*1995-12-191997-12-23Intel CorporationExecuting different instructions that cause different data type operations to be performed on single logical register file
US5889984A (en)*1996-08-191999-03-30Intel CorporationFloating point and integer condition compatibility for conditional branches and conditional moves

Also Published As

Publication numberPublication date
US6317824B1 (en)2001-11-13

Similar Documents

PublicationPublication DateTitle
US6317824B1 (en)Method and apparatus for performing integer operations in response to a result of a floating point operation
EP0071028B1 (en)Instructionshandling unit in a data processing system with instruction substitution and method of operation
US7287152B2 (en)Conditional execution per lane
US6961845B2 (en)System to perform horizontal additions
US5907842A (en)Method of sorting numbers to obtain maxima/minima values with ordering
JP3150286B2 (en) Data string generation method, computer operation method, matrix multiplication method by computer system, and computer
US5867145A (en)Graphical image recasting
US20010016902A1 (en)Conversion from packed floating point data to packed 8-bit integer data in different architectural registers
EP0752643A1 (en)Expansion of data
JP3442192B2 (en) Data-driven information processor
US6728874B1 (en)System and method for processing vectorized data
US6426746B2 (en)Optimization for 3-D graphic transformation using SIMD computations
US6061782A (en)Mechanism for floating point to integer conversion with RGB bias multiply
US5210839A (en)Method and apparatus for providing a memory address from a computer instruction using a mask register
EP1680735B1 (en)Apparatus and method that accomodate multiple instruction sets and multiple decode modes
US6470440B1 (en)Vector compare and maximum/minimum generation apparatus and method therefor
JP2001005675A (en) Program conversion device and processor
US20020083311A1 (en)Method and computer program for single instruction multiple data management
US6499046B1 (en)Saturation detection apparatus and method therefor
JPS60254324A (en)Exponential range expansion for floating-point
US5912995A (en)Method and apparatus for rotating or transposing a binary image
EP0817160A2 (en)Storage format conversion of computer graphics
JP2553200B2 (en) Information processing device
US7171547B1 (en)Method and apparatus to save processor architectural state for later process resumption
EP0385566A2 (en)Data processor

[8]ページ先頭

©2009-2025 Movatter.jp