← Back to Patent Explorer
US5734874A Expired / Lapsed US ⏱️ 0.0 years remaining

Central processing unit with integrated graphics functions

Assignee: Sun Microsystems Inc
•
Filing: 1994-04-29
•
Granted: 1998-03-31
•
Expires: 2014-04-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A central processing unit (CPU) is provided with a graphics execution unit (GRU), including a graphics status register (GSR), for executing a number of graphics operations in accordance to a graphics data scaling factor and an alignment address offset stored in the GSR, the graphics data having a number of graphics data formats. In one embodiment, the GRU is also used to execute a number of graphics data addition, subtraction, rounding, expansion, merge, alignment, multiplication, logical, compare, and pixel distance operations. The graphics data operations are categorized into a first and a second category, and the GRU concurrently executes one graphics operations from each category. Furthermore, under this embodiment, the integer execution unit of the CPU is also used to execute a number of graphics data edge handling and 3-D array addressing operations, while the load and store unit (LSU) of the CPU is also used to execute a number of graphics data load and store operations, including conditional store operations.

Inventors

  • 👤 Timothy J. Van Hook
  • 👤 Leslie Dean Kohn
  • 👤 Robert Yung

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 12:55
CPC Classifications
G; G06; G06F; G06F15/00; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3885; G06F17/00; G06F17/10; G06T; G06T1/00; G06T1/20

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 109 words
An apparatus, comprising: a register file including a first and a second register for storing a first and a second plurality of graphics data, and a third register for storing a pixel distance value; and pixel distance computation circuitry coupled to the register file, including a plurality of subtractor assemblies coupled in parallel to an hierarchy of carry save adders, for executing a pixel distance computation instruction, said pixel distance computation instruction simultaneously computing absolute differences of the first and second plurality of graphic data using the subtractor assemblies, and accumulating their absolute differences into the third register to form the pixel distance value using the carry save adders.
Claim 2
Independent Claim 109 words
An apparatus, comprising: a register file including a first and a second register for storing a first and a second plurality of graphics data, and a third register for storing a pixel distance value; and pixel distance computation circuitry coupled to the register file, including a plurality of subtractor assemblies coupled in parallel to an hierarchy of carry save adders, for executing a pixel distance computation instruction, said pixel distance computation instruction simultaneously computing absolute differences of the first and second plurality of graphic data using the subtractor assemblies, and accumulating their absolute differences into the third register to form the pixel distance value using the carry save adders.
Claim 3
Dependent Claim 22 words
The apparatus as set forth in claim 1, wherein said pixel distance computation circuitry is disposed in a graphics execution unit (GRU).
Claim 4
Dependent Claim 50 words
The apparatus as set forth in claim 2, wherein said apparatus further comprises: a floating pointer register file (FPRF) coupled to said GRU for storing floating point and graphics data; and a floating point execution unit (FPU) coupled to said FPRF for executing a plurality of non-graphics floating point instructions.
Claim 5
Independent Claim 155 words
An apparatus, comprising: a register file including a first and a second register for storing a first and a second plurality of graphics data addresses respectively, and a third register for storing a plurality of edge masks; and an integer execution unit (IEU) coupled to the register file for executing a graphics data edge handling instruction the graphics data edge handling instruction simultaneously generating and storing the edge masks in the third register, using the contents of the first and second registers, each mask being generated by conditionally performing a logical AND operation against a first and a second intermediate edge mask, depending on how a first and a second plurality of corresponding higher order bits of the first and second registers compare to each other, the first and second intermediate edge masks being generated in accordance to a first and a second plurality of corresponding lower order bits of the first and second registers.
Claim 6
Independent Claim 155 words
An apparatus, comprising: a register file including a first and a second register for storing a first and a second plurality of graphics data addresses respectively, and a third register for storing a plurality of edge masks; and an integer execution unit (IEU) coupled to the register file for executing a graphics data edge handling instruction the graphics data edge handling instruction simultaneously generating and storing the edge masks in the third register, using the contents of the first and second registers, each mask being generated by conditionally performing a logical AND operation against a first and a second intermediate edge mask, depending on how a first and a second plurality of corresponding higher order bits of the first and second registers compare to each other, the first and second intermediate edge masks being generated in accordance to a first and a second plurality of corresponding lower order bits of the first and second registers.
Claim 7
Dependent Claim 46 words
The apparatus as set forth in claim 4, wherein, said IEU further executes a plurality of graphics data three-dimensional (3-D) array addressing instructions, each of said graphics data 3-D array addressing instructions converts multiple 3-D graphics data array fixed point addresses to a blocked byte address.
Claim 8
Dependent Claim 29 words
The apparatus as set forth in claim 4, wherein said apparatus further comprises: a integer register file (IRF) coupled to said IEU for storing integer and graphics data addresses.
Claim 9
Independent Claim 120 words
An apparatus, comprising: a register file including a first register for storing an encoded value, a second register for storing a plurality of 3-D fixed point addresses, and a third register for storing a blocked byte address; and an integer execution unit (IEU) coupled to the register file for executing a graphics data three-dimensional (3-D) array addressing instruction the graphics data 3-D array addressing instruction generating and storing the blocked byte address in the third register using the encoded value and the 3-D fixed point addresses in the first and second registers, the blocked byte address being generated by concatenating a first and a second intermediate value, which are generated from various predetermined portions of the 3-D fixed point addresses.
Claim 10
Independent Claim 120 words
An apparatus, comprising: a register file including a first register for storing an encoded value, a second register for storing a plurality of 3-D fixed point addresses, and a third register for storing a blocked byte address; and an integer execution unit (IEU) coupled to the register file for executing a graphics data three-dimensional (3-D) array addressing instruction the graphics data 3-D array addressing instruction generating and storing the blocked byte address in the third register using the encoded value and the 3-D fixed point addresses in the first and second registers, the blocked byte address being generated by concatenating a first and a second intermediate value, which are generated from various predetermined portions of the 3-D fixed point addresses.
Claim 11
Independent Claim 271 words
An apparatus, comprising: a floating pointer register file (FPRF) for storing floating point and graphics data; a integer register file (IRF) for storing integer and graphics data addresses; a floating point execution unit (FPU) coupled to said FPRF for executing a plurality of non-graphics floating point instructions; an integer execution unit (IEU) coupled to said IRF for executing a plurality of non-graphics integer instructions, a plurality of graphics data edge handling instructions, and a plurality of graphics data three-dimensional (3-D) array addressing instructions, each of said graphics data edge handling instructions simultaneously generating multiple edge masks for multiple pairs of graphics data addresses, and each of said graphics data 3-D array addressing instructions converts multiple 3-D graphics data array fixed point addresses to a blocked byte address; and a graphics execution unit (GRU) coupled to said FPRF for executing a plurality of graphics data conversion instructions, a plurality of graphics data misaligned address calculation instructions, a plurality of graphics data alignment instructions, and a pixel distance computation instruction, each of said graphics data conversion instructions simultaneously packing multiple graphics data from a first partitioned graphics data format to a second partitioned graphics data format, scaling shifting and clipping operations in accordance to a scaling factor, each of said graphics data misaligned address calculation instructions calculating an address of a block of misaligned graphics data and an address alignment offset, each of said graphics data alignment instructions aligning a block of misaligned graphics data in accordance to an address aligmnent offset, and said pixel distance computation instruction simultaneously computing absolute differences of multiple pairs of graphic data and accumulating their absolute differences.
Claim 12
Independent Claim 271 words
An apparatus, comprising: a floating pointer register file (FPRF) for storing floating point and graphics data; a integer register file (IRF) for storing integer and graphics data addresses; a floating point execution unit (FPU) coupled to said FPRF for executing a plurality of non-graphics floating point instructions; an integer execution unit (IEU) coupled to said IRF for executing a plurality of non-graphics integer instructions, a plurality of graphics data edge handling instructions, and a plurality of graphics data three-dimensional (3-D) array addressing instructions, each of said graphics data edge handling instructions simultaneously generating multiple edge masks for multiple pairs of graphics data addresses, and each of said graphics data 3-D array addressing instructions converts multiple 3-D graphics data array fixed point addresses to a blocked byte address; and a graphics execution unit (GRU) coupled to said FPRF for executing a plurality of graphics data conversion instructions, a plurality of graphics data misaligned address calculation instructions, a plurality of graphics data alignment instructions, and a pixel distance computation instruction, each of said graphics data conversion instructions simultaneously packing multiple graphics data from a first partitioned graphics data format to a second partitioned graphics data format, scaling shifting and clipping operations in accordance to a scaling factor, each of said graphics data misaligned address calculation instructions calculating an address of a block of misaligned graphics data and an address alignment offset, each of said graphics data alignment instructions aligning a block of misaligned graphics data in accordance to an address aligmnent offset, and said pixel distance computation instruction simultaneously computing absolute differences of multiple pairs of graphic data and accumulating their absolute differences.
Claim 13
Independent Claim 153 words
A method of executing graphics instructions by a central processing unit (CPU), comprising the step of: executing a graphics data edge handling instruction by simultaneously generate multiple edge masks for multiple pairs of graphics data addresses, using a register file and an integer execution unit (IEU) coupled to each other, and disposed on said CPU, the register file including a first and a second register for storing the graphics data addresses, and a third register for storing the edge masks, each mask being generated by conditionally performing a logical AND operation against a first and a second intermediate edge mask, depending on how a first and a second plurality of corresponding higher order bits of the first and second registers compare to each other, the first and second intermediate edge masks being generated in accordance to a first and a second plurality of corresponding lower order bits of the first and second registers.
Claim 14
Independent Claim 153 words
A method of executing graphics instructions by a central processing unit (CPU), comprising the step of: executing a graphics data edge handling instruction by simultaneously generate multiple edge masks for multiple pairs of graphics data addresses, using a register file and an integer execution unit (IEU) coupled to each other, and disposed on said CPU, the register file including a first and a second register for storing the graphics data addresses, and a third register for storing the edge masks, each mask being generated by conditionally performing a logical AND operation against a first and a second intermediate edge mask, depending on how a first and a second plurality of corresponding higher order bits of the first and second registers compare to each other, the first and second intermediate edge masks being generated in accordance to a first and a second plurality of corresponding lower order bits of the first and second registers.
Claim 15
Dependent Claim 45 words
The method as set forth in claim 9, wherein, said method further comprises the step of executing a plurality of graphics data three-dimensional (3-D) array addressing instructions to convert multiple 3-D graphics data array fixed point addresses to a blocked byte address using said IEU.
Claim 16
Independent Claim 117 words
A method of executing graphics instructions by a central processing unit (CPU), comprising the step of executing a graphics data three-dimensional (3-D) array addressing instruction to convert multiple 3-D graphics data array fixed point addresses to a blocked byte address using a register file and an integer execution unit (IEU) coupled to each other and disposed on said CPU, the register file including a first register for storing an encoded value, a second register for storing the fixed point addresses, and a third register for storing the blocked byte address, the blocked byte address being generated by concatenating a first and a second intermediate value, which are generated from various predetermined portions of the fixed point addresses.
Claim 17
Independent Claim 117 words
A method of executing graphics instructions by a central processing unit (CPU), comprising the step of executing a graphics data three-dimensional (3-D) array addressing instruction to convert multiple 3-D graphics data array fixed point addresses to a blocked byte address using a register file and an integer execution unit (IEU) coupled to each other and disposed on said CPU, the register file including a first register for storing an encoded value, a second register for storing the fixed point addresses, and a third register for storing the blocked byte address, the blocked byte address being generated by concatenating a first and a second intermediate value, which are generated from various predetermined portions of the fixed point addresses.
Claim 18
Independent Claim 252 words
A method of executing graphics instructions by a central processing unit (CPU), comprising the steps of: storing a scaling factor for graphics data in a graphics status register (GSR) disposed in said CPU; executing a plurality of graphics data packing instructions to pack multiple graphics data from a first partitioned graphics data format to a second partitioned graphics data format, scaling shifting and clipping operations in accordance to said stored scaling factor using dedicated graphics data conversion circuitry disposed in said CPU; executing a plurality of graphics data misaligned address calculation instructions to calculate an address of a block of misaligned graphics data and an address alignment offset using dedicated graphics data alignment circuitry disposed in said CPU, said address alignment offset being stored into said GSR; executing a plurality of graphics data alignment instructions to align a block of misaligned graphics data in accordance to said stored address alignment offset using said dedicated graphics data alignment circuitry; executing a pixel distance computation instruction to simultaneously compute absolute differences of multiple pairs of graphics data and accumulate their absolute differences using dedicated pixel distance computation circuitry disposed in said CPU; executing a plurality of graphics data edge handling instructions to simultaneously generate multiple edge masks for multiple pairs of graphics data addresses using an integer execution unit (IEU) disposed on said CPU; and executing a plurality of graphics data three-dimensional (3-D) array addressing instructions to convert multiple 3-D graphics data array fixed point addresses to a blocked byte address using said IEU.
Claim 19
Independent Claim 252 words
A method of executing graphics instructions by a central processing unit (CPU), comprising the steps of: storing a scaling factor for graphics data in a graphics status register (GSR) disposed in said CPU; executing a plurality of graphics data packing instructions to pack multiple graphics data from a first partitioned graphics data format to a second partitioned graphics data format, scaling shifting and clipping operations in accordance to said stored scaling factor using dedicated graphics data conversion circuitry disposed in said CPU; executing a plurality of graphics data misaligned address calculation instructions to calculate an address of a block of misaligned graphics data and an address alignment offset using dedicated graphics data alignment circuitry disposed in said CPU, said address alignment offset being stored into said GSR; executing a plurality of graphics data alignment instructions to align a block of misaligned graphics data in accordance to said stored address alignment offset using said dedicated graphics data alignment circuitry; executing a pixel distance computation instruction to simultaneously compute absolute differences of multiple pairs of graphics data and accumulate their absolute differences using dedicated pixel distance computation circuitry disposed in said CPU; executing a plurality of graphics data edge handling instructions to simultaneously generate multiple edge masks for multiple pairs of graphics data addresses using an integer execution unit (IEU) disposed on said CPU; and executing a plurality of graphics data three-dimensional (3-D) array addressing instructions to convert multiple 3-D graphics data array fixed point addresses to a blocked byte address using said IEU.
Claim 20
Independent Claim 262 words
A method of providing native graphics capabilities to a central processing unit (CPU), comprising the steps of: providing a graphics status register (GSR) in said CPU for storing a scaling factor for graphics data; providing dedicated graphics data conversion circuitry in said CPU for executing a plurality of graphics data packing instructions to pack multiple graphics data from a first partitioned graphics data format to a second partitioned graphics data format, scaling shifting and clipping operations in accordance to said stored scaling factor; providing dedicated graphics data alignment circuitry in said CPU for executing a plurality of graphics data misaligned address calculation instructions to calculate an address of a block of misaligned graphics data and an address alignment offset, said address alignment offset being stored into said GSR; providing circuitry to said dedicated graphics data alignment circuitry for executing a plurality of graphics data alignment instructions to align a block of misaligned graphics data in accordance to said stored address alignment offset; providing dedicated pixel distance computation circuitry disposed in said CPU for executing a pixel distance computation instruction to simultaneously compute absolute differences of multiple pairs of graphics data and accumulate their absolute differences; providing circuitry to an integer execution unit (IEU) in said CPU for executing a plurality of graphics data edge handling instructions to simultaneously generate multiple edge masks for multiple pairs of graphics data addresses; and providing circuitry to said IEU for executing a plurality of graphics data three-dimensional (3-D) array addressing instructions to convert multiple 3-D graphics data array fixed point addresses to a blocked byte address.
Claim 21
Independent Claim 262 words
A method of providing native graphics capabilities to a central processing unit (CPU), comprising the steps of: providing a graphics status register (GSR) in said CPU for storing a scaling factor for graphics data; providing dedicated graphics data conversion circuitry in said CPU for executing a plurality of graphics data packing instructions to pack multiple graphics data from a first partitioned graphics data format to a second partitioned graphics data format, scaling shifting and clipping operations in accordance to said stored scaling factor; providing dedicated graphics data alignment circuitry in said CPU for executing a plurality of graphics data misaligned address calculation instructions to calculate an address of a block of misaligned graphics data and an address alignment offset, said address alignment offset being stored into said GSR; providing circuitry to said dedicated graphics data alignment circuitry for executing a plurality of graphics data alignment instructions to align a block of misaligned graphics data in accordance to said stored address alignment offset; providing dedicated pixel distance computation circuitry disposed in said CPU for executing a pixel distance computation instruction to simultaneously compute absolute differences of multiple pairs of graphics data and accumulate their absolute differences; providing circuitry to an integer execution unit (IEU) in said CPU for executing a plurality of graphics data edge handling instructions to simultaneously generate multiple edge masks for multiple pairs of graphics data addresses; and providing circuitry to said IEU for executing a plurality of graphics data three-dimensional (3-D) array addressing instructions to convert multiple 3-D graphics data array fixed point addresses to a blocked byte address.
Claim 22
Dependent Claim 259 words
In a computer system comprising a memory unit for storing nongraphics and graphics instructions and data, and a central processing unit (CPU) coupled to said memory unit having a floating point register file (FPRF) for storing floating point and graphics data, a floating point execution unit (FPU) for executing floating point operations of said non-graphics instructions, and a load and store unit (LSU) for loading and storing graphics data to and from said FPRF and said memory unit, an apparatus for aligning a block of misaligned graphics data, said apparatus comprising: a) graphics status register (GSR) means integrated with said CPU for storing an address alignment offset for graphics data, said graphics data being organized and stored in said FPRF and said memory unit in a plurality of partitioned formats; and (b) graphics data alignment means integrated with said CPU and coupled to said FPRF, and said GSR means for executing a plurality of graphics data misaligned address calculation instructions, and a plurality of graphics data alignment instructions of said graphics instructions, each of said graphics data misaligned address calculation instructions calculating an address of a block of misaligned graphics data and an address alignment offset, said block of misaligned graphics data being loaded into said FPRF from said memory unit using said LSU, each of said graphics data alignment instructions aligning a block of misaligned graphics data stored in said FPRF in accordance to said stored address alignment offset, said aligned block of graphics data being stored back into said memory unit from said FPRF using said LSU.
Claim 23
Dependent Claim 259 words
In a computer system comprising a memory unit for storing nongraphics and graphics instructions and data, and a central processing unit (CPU) coupled to said memory unit having a floating point register file (FPRF) for storing floating point and graphics data, a floating point execution unit (FPU) for executing floating point operations of said non-graphics instructions, and a load and store unit (LSU) for loading and storing graphics data to and from said FPRF and said memory unit, an apparatus for aligning a block of misaligned graphics data, said apparatus comprising: a) graphics status register (GSR) means integrated with said CPU for storing an address alignment offset for graphics data, said graphics data being organized and stored in said FPRF and said memory unit in a plurality of partitioned formats; and (b) graphics data alignment means integrated with said CPU and coupled to said FPRF, and said GSR means for executing a plurality of graphics data misaligned address calculation instructions, and a plurality of graphics data alignment instructions of said graphics instructions, each of said graphics data misaligned address calculation instructions calculating an address of a block of misaligned graphics data and an address alignment offset, said block of misaligned graphics data being loaded into said FPRF from said memory unit using said LSU, each of said graphics data alignment instructions aligning a block of misaligned graphics data stored in said FPRF in accordance to said stored address alignment offset, said aligned block of graphics data being stored back into said memory unit from said FPRF using said LSU.
Claim 24
Dependent Claim 208 words
In a computer system comprising a memory unit for storing non-graphics and graphics instructions and data, and a central processing unit (CPU) coupled to said memory unit having a floating point register file (FPRF) for storing floating point and graphics data, a floating point execution unit (FPU) for executing floating point operations of said non-graphics instructions, and a load and store unit (LSU) for loading and storing graphics data to and from said FPRF and said memory unit, a method for aligning a block of misaligned graphics data, said method comprising the steps of: a) loading a block of misaligned graphics data into said FPRF from said memory unit using said LSU; b) calculating alignment address and alignment address offset of said block of misaligned graphics data, and storing said calculated alignment address offset into a graphics status register (GSR) independent of said FPRF, using graphics data alignment means integrated with said CPU but independent of said FPU; c) aligning said block of misaligned graphics data in accordance to said calculated alignment address and said stored alignment address offset using said graphics data alignment means independent of said FPU; d) storing said aligned block of graphics data back into said memory unit from said FPRF using said LSU.
Claim 25
Dependent Claim 208 words
In a computer system comprising a memory unit for storing non-graphics and graphics instructions and data, and a central processing unit (CPU) coupled to said memory unit having a floating point register file (FPRF) for storing floating point and graphics data, a floating point execution unit (FPU) for executing floating point operations of said non-graphics instructions, and a load and store unit (LSU) for loading and storing graphics data to and from said FPRF and said memory unit, a method for aligning a block of misaligned graphics data, said method comprising the steps of: a) loading a block of misaligned graphics data into said FPRF from said memory unit using said LSU; b) calculating alignment address and alignment address offset of said block of misaligned graphics data, and storing said calculated alignment address offset into a graphics status register (GSR) independent of said FPRF, using graphics data alignment means integrated with said CPU but independent of said FPU; c) aligning said block of misaligned graphics data in accordance to said calculated alignment address and said stored alignment address offset using said graphics data alignment means independent of said FPU; d) storing said aligned block of graphics data back into said memory unit from said FPRF using said LSU.

References Cited (Backward Citations)

US4965752A Cited
EP0380098A2 Cited
US5081698A Cited
US5157388A Cited
EP0395348A2 Cited
US5268995A Cited
GB2265065A Cited
WO1994008287A1 Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag