Source: http://www.google.com/patents/US6286023?dq=7,007,239
Timestamp: 2016-12-11 04:23:24
Document Index: 202715404

Matched Legal Cases: ['arts 0', 'arts 0', 'art 0', 'art 0', 'arts 1', 'arts 0', 'arts 0', 'art 0', 'art 2', 'art 1', 'art 0', 'art 3', 'art 2', 'art 0', 'art 2', 'art 0', 'art 2', 'arts 0', 'arts 0']

Patent US6286023 - Partitioned adder tree supported by a multiplexer configuration - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsAn adder tree is partitioned into two parts. One multiplexer provides a first bit group to the first part of the tree. A second multiplexer provides a second bit group to the second part of the tree. The two multiplexers provide the same bits groups to the respective parts in response to a first instruction,...http://www.google.com/patents/US6286023?utm_source=gb-gplus-sharePatent US6286023 - Partitioned adder tree supported by a multiplexer configurationAdvanced Patent SearchTry the new Google Patents, with machine-classified Google Scholar results, and Japanese and South Korean patents.Publication numberUS6286023 B1Publication typeGrantApplication numberUS 09/100,385Publication dateSep 4, 2001Filing dateJun 19, 1998Priority dateJun 19, 1998Fee statusPaidPublication number09100385, 100385, US 6286023 B1, US 6286023B1, US-B1-6286023, US6286023 B1, US6286023B1InventorsStephen C. Purcell, Nital P. PatwaOriginal AssigneeAti International SrlExport CitationBiBTeX, EndNote, RefManPatent Citations (3), Referenced by (51), Classifications (9), Legal Events (8) External Links: USPTO, USPTO Assignment, EspacenetPartitioned adder tree supported by a multiplexer configuration
US 6286023 B1Abstract
An adder tree is partitioned into two parts. One multiplexer provides a first bit group to the first part of the tree. A second multiplexer provides a second bit group to the second part of the tree. The two multiplexers provide the same bits groups to the respective parts in response to a first instruction, and provide different bit groups in response to a second instruction. Therefore, the first instruction allows for the single multiplication of the number represented by the first bit group by another number provided to collectively represented to both parts of the tree. The second instruction causes the multiplication of the first bit group by the third bit group in the first part of the adder tree, and causes another multiplication of the second bit group by the fourth bit group in the second part of the adder tree.
What is claimed is: 1. A multiplier circuit, comprising:
a partitioned adder tree comprising (a) a plurality of parts, each part receiving a first operand and a second operand to provide a product of said first and second operands and (b) a carry circuit for selectably generating a carry value between said first and second parts of said partitioned adder tree; a first multiplexer receiving a first plurality of data words, said first multiplexer configurable to provide any of said first plurality of data words as said first operand to any of said parts of said partitioned adder tree; and a second multiplexer receiving a second plurality of data words, said second multiplexer configurable to provide any of said data words as said second operand to any of said parts of said partitioned adder tree. 2. A multiplier circuit as in claim 1 wherein (a) to perform a first operation, a first data word in said first plurality of data words and a first data word in said second plurality of data words are provided to said first part of said partitioned adder tree, and a second data word of said first plurality of data words and a second data word of said second plurality of data words are provided to said second part of said partitioned adder tree; and (b) to perform a second operation, said first and second data words of said first plurality of data words and said first and second data words of said second plurality of data words are provided at said first part of said partitioned adder tree.
3. The multiplier circuit of claim 2, wherein each data word in said first and second plurality of data words is n-bit wide, and wherein (a) said first operation is an n-bit by n-bit multiplication, and (b) said second operation is a 2n-bit by 2n-bit multiplication, in which said first and second data words of said first plurality of data words constitute a single 2-n bit value.
4. The multiplier circuit of claim 1, further comprising an output register receiving said product of said first part of said partitioned adder tree into a first portion of said output register, and receiving said product from said second part of said partitioned adder tree into a second portion of said output register, wherein when said generating of said carry value is selected, data words in said first and second portions of said output register constitute parts of a single value.
5. The multiplier circuit of claim 1 wherein (a) in a first cycle of one operation, a first data word of said first plurality of data words is provided to both said first and second parts of said partitioned adder tree, and a first data word and a second data word of said second plurality of data words are provided as second operands to respective first and second parts of said partitioned adder tree, and (b) in a second cycle of said operation, a second data word of said first plurality of data words is provided to both said first and second parts of said partitioned adder tree, and said first data word and said second data word of said second plurality of data words are provided as second operands to respective first and second parts of said partitioned adder tree.
6. The multiplier circuit of claim 5 wherein (a) said first and second data words of said first plurality of data words constitute a part of a first value, (b) said first and second data words of said second plurality of data words constitute a part of a second value, and (b) said first and second cycles generate partial results of a multiplication of said first value to said second value.
7. The multiplier circuit of claim 1, further comprising a Booth encoder for Booth-encoding said first operand of each part of said partitioned adder tree.
The present invention relates to microprocessor technology, and more specifically, the present invention relates the use of an arithmetic logic unit (ALU) to perform a variety to multiplication formats.
The multiplication of two values is a common operation performed in arithmetic logic units. A conventional multiplier (e.g., a 16×6 multiplier) receives a 16-bit multiplicand and a 16-bit multiplier and generates a 32-bit product using a Wallace tree.
The multiplier requires input values of a fixed bit length of 16 bits each. In order to multiply values having other bit length (e.g., a 4×4 multiplication), the input values must be bit extended with additional bits having no additional information. For example, if a 4×4 operation is to be performed, the 4-bit input values must be extended to 16 bits before multiplication. The additional 12 bits of each input have no useful information resulting in the 32-bit product having 24 bits of useless information.
A circuit has a partitioned adder tree having first and second parts. A multiplexer is configured such that a bit group represented at the output terminal of the multiplexer is represented at the first part of the partitioned adder tree. A second multiplexer is configured such that a bit group represented at its output terminal is also represented at the second part of the partitioned adder tree.
The two multiplexers provide the same bits groups at their respective output terminals in response to a first instruction. The two multiplexers provide a different bit group at their respective output terminals in response to a second instruction.
The circuit may also include a third and fourth multiplexer. The third multiplexer is configured such that the bit group represented at its output terminal is represented at the first part of the partitioned adder tree. The fourth multiplexer is configured such that the bit group represented at its output terminal is represented at the second part of the partitioned adder tree. The third and fourth multiplexers provide bit groups representing portions of the same value in response to the first instruction. The third and fourth multiplexers provide bit groups representing different values in response to the second instruction.
A method includes providing an identical bit group to each of a first and second part of a partitioned adder tree in response to a first instruction; and providing different bit groups to the first and second parts of the partitioned adder tree in response to a second instruction.
The above circuit and method provide for a partitioned adder tree that multiplies using a variety of input bit size formats. Furthermore, several multiplications may be performed in parallel in the same partitioned adder tree.
FIG. 1 is a schematic diagram of an arithmetic logic unit having three stages, labeled respectively as the A stage, the M stage, and the E stage.
The present invention is illustrated below by specific embodiments. These embodiments are illustrative only and not limiting. Throughout the description and figures, like identification symbols indicate like elements except where otherwise noted.
The M stage processes the values in the sum and carry registers according to a variety of format instructions to produce a preliminary redundant multiplication result. For example, in response to one instruction, the M stage takes the results of four 16×64 multiplications in the A stage to compute the product of a 64×64 multiplication. The E stage converts the redundant carry save values to a final result using a carry propagate adder (CPA).
1). four 8×8 multiplications;
2). two 16×16 multiplications; and
3). one 64×64 multiplication.
Source register SR1 stores multiplier values while source register SR2 stores multiplicand values. If four 8×8 multiplications (operation 1) are to be performed in each multiplier 300 and 300′, each 8-bit group of the 64-bit sequence A (A[7:0], A[15:8], A[23:16], A[31:24], A[39:32], A[47:40], A[55:48], and A[63:56]) in register SR1 represents an 8-bit multiplier. Each corresponding 8-bit group of bit sequence B (B[7:0], B[15:8], B[23:16], B[31:24], B[39:32], B[47:40], B[55:48], and B[63:56]) in register SR2 represents a corresponding 8-bit multiplicand. If two 16×16 multiplications (operation 2) are to be performed in each multiplier 300 and 300′, each 16-bit group (A[15:0], A[31:16], A[47:32], A[63:48], B[15:0], B[31:16], B[47:32], and B[63:48]) in the source registers SR1 and SR2 represents a respective multiplier and multiplicand. If one 64×64 multiplication (operation 3) is to be performed in four cycles in multiplier 300, 16 bits of bit sequence “A” per cycle (A[15:0], A[31:16], A[47:32] and A[63:48]) represents the four 16-bit multipliers while all 64 bits B[63:0] of bit sequence “B” represent the common multiplicand. Multiplier 300′ is idle. The products are left shifted and added together in the M and E stages.
The 64-bit sequences A[63:0] and B[63:0] are read over respective buses SRB1 and SRB2 to multipliers 300 and 300′. As described hereinafter, multiplier 300 provides an 80-bit sum S[79:0] over bus SB to sum register SR, an 80-bit carry C[79:0] over bus CB to carry register CR, and a 10-bit boundary carry Y[9:0] over bus YB to boundary carry register YR. Similarly, multiplier 300′ is configured to provide sum bits S′ [79:0], carry bits C′ [79:0], and boundary carry bits Y′ [9:0] over buses S′B, C′B, and Y′B to registers S′R, C′R, and Y′R, respectively.
Multipliers 300 and 300′ are next described using FIG. 3 which is a detailed diagram of multiplier 300 of FIG. 2. Bus SRB1 is connected to each of four multiplier multiplexers MRM0, MRM1, MRM2, and MRM3. D The multiplexers MRM0, MRM1, MRM2, and MRM3 pass some of the 64 bits to respective booth-recoder groups BRG0, BRG1, BRG2, and BRG3 in response to a control signal “operation” (representing the specific operation to be performed) on control line CL. Booth-recoder groups BRG0, BRG1, BRG2, and BRG3 contain booth-recoders which booth-recode the bits provided by the respective multiplexers MRM0, MRM1, MRM2, and MRM3. Booth-recoder groups BRG0, BRG1, BRG2, and BRG3 generate partial product control signals over respective partial product buses PPB0, PPB1, PPB2, and PPB3 to respective parts 0, 1, 2, and 3 of partitioned adder tree 310.
Bus SRB2 is connected to each of four multiplicand multiplexers MDM0, MDM1, MDM2, and MDM3. Multiplexers MDM0, MDM1, MDM2, and MDM3 pass some of the 64 bits from bus SRB2 over respective buses MDB0, MDB1, MDB2, and MDB3 to respective parts 0, 1, 2, and 3 of partitioned adder tree 310. Multiplexers MRM0, MRM1, MRM2, MRM3, MDM0, MDM1, MDM2, and MDM3 are controlled by the signal “operation” on bus CL.
In operation 1 (i.e., four 8×8 multiplications), the carry boundaries B0, B1, B2, and B3 are active. Multiplexers MRM0, MRM1, MRM2, MRM3, MDM0, MDM1, MDM2, and MDM3 are controlled during operation 1 according to Table 1.
Part 0, 1, 2, and 3 of partitioned adder tree 310 are configured to multiply the value provided by the respective multiplicand multiplexer MDM0, MDM1, MDM2, and MDM3, by the value provided by the corresponding multiplier multiplexer MRM0, MRM0, MRM2, and MRM3. Therefore, the multiplication A[7:0]xB[7:0] is performed in part 0 of the partitioned tree 310 to the right of carry boundary B0. The multiplication A[15:8]xB[15:8], A[23:16]xB[23:16], and A[31:24]xB[31:24] are respectively performed in parts 1, 2, and 3 of partitioned tree 310 to the right of the respective carry boundary B1, B2, and B3.
The 16-bit sums S[15:0], S[31:16], S[47:32], and S[63:48] generated by respective parts 0, 1, 2, and 3 are provided over respective buses SB[15:0], SB[31:16], SB[47:32], and SB[63:48] to respective locations [15:0], [31:16], [47:32], and [63:48] of sum register SR. The 16-bit carries C[15:0], C[31:16], C[47:32], and C[63:48] generated by respective parts 0, 1, 2, and 3 are provided over respective buses CB[15:0], CB[31:16], CB[47:32], and CB[63:48] to respective locations [15:0], [31:16], [47:32], and [63:48] of carry register CR. Therefore, registers SR and CR contain respective sum and carry bits for four 8×8 products.
Multiplexers MRM0, MRM1, MRM2, MRM3, MDM0, MDM1, MDM2, and MDM3 are controlled during operation 2 (i.e., two 16×16 multiplications) according to Table 2.
In operation 2, carry boundaries B0 and B2 are not active, but carry boundaries B1 and B3 are active. The multiplication [15:0]xB[15:0] is performed in part 0 of partitioned adder tree 310, and the multiplication A[31:16]XB[31:16] is performed in part 2 of partitioned tree 310.
Part 1 of partitioned adder tree 310 has forced 0's, forced by a zero control to MDM1, so that resulting sum and carry bits S[31:0] and C[31:0] generated in part 0 are provided on respective buses SB[31:0] and CB[31:0] to locations [31:0] of respective registers SR and CR. Part 3 of partitioned adder tree 310 has forced 0's so that resulting sum and carry bits S[63:32] and C[63:32] generated in part 2 are provided on respective buses SB[63:32] and CB[63:32] to locations [63:32] of respective registers SR and CR. The carry boundary B1 prevents any unwanted carry from part 0 from propagating into the multiplication in part 2. For example, carry generated from adding the most significant bit of part 0 is discarded so that the carry has no effect on the addition of the least significant bit of part 2. Therefore, registers SB and CB are configured to contain respective sum and carry bits for two 16×16 products.
Multiplexers MRM0, MRM1, MRM2, MRM3, MRM0, MRM1, MRM2, and MDM3 are controlled during operation 3 (i.e., one 16×64 multiplication) according to Table 3.
The multiplications A[15:0]xB[15:0], A[15:0]xB[31:16], A[15:0]xB[47:32], and A[15:0]xB[63:48] are performed in respective parts 0, 1, 2, and 3 of partitioned adder tree 310. Since carry boundaries B0, B1, B2, and B3 are not active, bits having equal weights from neighboring parts (e.g., the bits in the vertically overlapped columns of parts 0 and 1) are added together. The resulting sum and carry bits S[79:0] and C[79:0], representing the sum and carry bits generated from a 16×64 multiplication, are provided over respective buses SB[79:0] and CB[79:0] to locations [79:0] of respective registers SR and CR. Three more 16×64 multiplications A[31:16]xB[63:0], A[47:32]xB[63:0] and A[63:48]xB[63:0] are similarly performed in three successive cycles. The three corresponding products are left shifted by 16, 32 and 48 bits, respectively, and added to the product of A[l5:0]xB[63:01 to complete a multiplication A[63:0]xB[63:0]. Therefore, multiplier 300 performs a variety of different multiplications (operations 1, 2,and 3) using a single partitioned adder tree 310 and a configuration of multiplexers MRM0, MRM1, MRM2, MRM3, MDM0, MDM1, MDM2, and MDM3. Multiplier 300′ is structured similar to multiplier 300 and performs operations 1, 2,and 3 in the same manner as described above for multiplier 300.
Whether or not a carry boundary is active, partitioned adder tree 310 generates two boundary carry bits Y(1:0], Y[3:2], Y[5:4], Y[7:6], and Y[9:8] near respective carry boundaries B0, B1, B2, B3, and B4 as follows. Referring to FIG. 4, XOR unit XOR3 receives carry lines CL63-0, CL63-1, CL63-2, CL63-3, and CL63-4, logically XOR′ing these values, and provides a resulting boundary carry bit Y[7] on boundary carry line YB[7] to location [7] of boundary carry register YR. In a similar manner, boundary carry bits Y[l], Y[3], Y[5], and Y[9] are provided over respective boundary carry lines YB[1], YB[33], YB[5], and YB[9] to respective locations [1], [3], [5], and [9] of boundary carry register YR.
The carry line CL63-5 is coupled to location [6] of boundary carry register SR such that carry bit C63-5 is written into location [6] of boundary carry register YR. In a similar manner, carry bits generated at carry boundaries B0, B1, B2, and 84 are written into respective locations [0], [2], [4], and [8] of boundary carry register YB.
The above describes how multiplier 300 provides bits S[79:0], C[79:0], and Y[9:0] to registers SR, CR, and YR. In a similar manner, multiplier 300′ provides bits S′ [79:0], C′ [79:0], and Y′ [9:0] to corresponding registers S′R, C′R, and Y′R.
In the description and claims, the word “coupled” is defined as “having an interaction with” and can include direct connection, indirect connections, or interactions having no intermediate medium such as electromagnetic wave interactions.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4754421 *Sep 6, 1985Jun 28, 1988Texas Instruments IncorporatedMultiple precision multiplication deviceUS5742538 *Apr 15, 1996Apr 21, 1998Texas Instruments IncorporatedLong instruction word controlling plural independent processor operationsUS5764558 *Aug 25, 1995Jun 9, 1998International Business Machines CorporationMethod and system for efficiently multiplying signed and unsigned variable width operands* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS6598064 *Jan 4, 2000Jul 22, 2003National Semiconductor CorporationSplit multiplier array and method of operationUS6915322 *Jun 4, 2001Jul 5, 2005Dsp Group, Inc.Multiplier capable of multiplication of large multiplicands and parallel multiplications of small multiplicandsUS7003540Dec 28, 2001Feb 21, 2006Sun Microsystems, Inc.Floating point multiplier for delimited operandsUS7016928Dec 28, 2001Mar 21, 2006Sun Microsystems, Inc.Floating point status information testing circuitUS7024444Jul 21, 2003Apr 4, 2006National Semiconductor CorporationSplit multiplier array and method of operationUS7069288Dec 28, 2001Jun 27, 2006Sun Microsystems, Inc.Floating point system with improved support of interval arithmeticUS7069289Dec 28, 2001Jun 27, 2006Sun Microsystems, Inc.Floating point unit for detecting and representing inexact computations without flags or trapsUS7111155 *May 12, 2000Sep 19, 2006Analog Devices, Inc.Digital signal processor computation core with input operand selection from operand bus for dual operationsUS7133890Dec 28, 2001Nov 7, 2006Sun Microsystems, Inc.Total order comparator unit for comparing values of two floating point operandsUS7191202Dec 28, 2001Mar 13, 2007Sun Microsystems, Inc.Comparator unit for comparing values of floating point operandsUS7212959 *Aug 8, 2001May 1, 2007Stephen Clark PurcellMethod and apparatus for accumulating floating point valuesUS7219117 *Dec 17, 2002May 15, 2007Sun Microsystems, Inc.Methods and systems for computing floating-point intervalsUS7228324Dec 28, 2001Jun 5, 2007Sun Microsystems, Inc.Circuit for selectively providing maximum or minimum of a pair of floating point operandsUS7236999 *Dec 17, 2002Jun 26, 2007Sun Microsystems, Inc.Methods and systems for computing the quotient of floating-point intervalsUS7308470Dec 5, 2003Dec 11, 2007Intel CorporationSmaller and lower power static mux circuitry in generating multiplier partial product signalsUS7363337Dec 28, 2001Apr 22, 2008Sun Microsystems, Inc.Floating point divider with embedded status informationUS7366749Dec 28, 2001Apr 29, 2008Sun Microsystems, Inc.Floating point adder with embedded status informationUS7395297Dec 28, 2001Jul 1, 2008Sun Microsystems, Inc.Floating point system that represents status flag information within a floating point operandUS7430576Dec 28, 2001Sep 30, 2008Sun Microsystems, Inc.Floating point square root provider with embedded status informationUS7444367Dec 28, 2001Oct 28, 2008Sun Microsystems, Inc.Floating point status information accumulation circuitUS7613762Dec 28, 2001Nov 3, 2009Sun Microsystems, Inc.Floating point remainder with embedded status informationUS7831652Dec 28, 2001Nov 9, 2010Oracle America, Inc.Floating point multiplier with embedded status informationUS8060549Aug 31, 2006Nov 15, 2011Pasternak Solutions, LlcMethod and apparatus for accumulating floating point valuesUS8117426Jul 27, 2007Feb 14, 2012Microunity Systems Engineering, IncSystem and apparatus for group floating-point arithmetic operationsUS8195735 *Dec 9, 2008Jun 5, 2012Microunity Systems Engineering, Inc.System and method to implement a matrix multiply unit of a broadband processorUS8543631Mar 31, 2006Sep 24, 2013Oracle America, Inc.Total order comparator unit for comparing values of two floating point operandsUS8683182Jun 11, 2012Mar 25, 2014Microunity Systems Engineering, Inc.System and apparatus for group floating-point inflate and deflate operationsUS8769248Jun 11, 2012Jul 1, 2014Microunity Systems Engineering, Inc.System and apparatus for group floating-point inflate and deflate operationsUS8793294Mar 31, 2006Jul 29, 2014Oracle America, Inc.Circuit for selectively providing maximum or minimum of a pair of floating point operandsUS8799344Mar 31, 2006Aug 5, 2014Oracle America, Inc.Comparator unit for comparing values of floating point operandsUS8943119May 2, 2012Jan 27, 2015Microunity Systems Engineering, Inc.System and method to implement a matrix multiply unit of a broadband processorUS20010037352 *Jun 4, 2001Nov 1, 2001Hong John Suk-HyunMultiplier capable of multiplication of large multiplicands and parallel multiplications small multiplicandsUS20020178199 *Dec 28, 2001Nov 28, 2002Sun Microsystems, Inc.Floating point status information testing circuitUS20020178200 *Dec 28, 2001Nov 28, 2002Sun Microsystems, Inc.Circuit for selectively providing maximum or minimum of a pair of floating point operandsUS20020178202 *Dec 28, 2001Nov 28, 2002Sun Microsystems, Inc.Floating point multiplier for delimited operandsUS20020178204 *Dec 28, 2001Nov 28, 2002Sun Microsystems, Inc.Floating point status information accumulation circuitUS20020184283 *Dec 28, 2001Dec 5, 2002Sun Microsystems, Inc.Floating point system with improved support of interval arithmeticUS20020198917 *Dec 28, 2001Dec 26, 2002Sun Microsystems, Inc.Floating point adder with embedded status informationUS20020198918 *Dec 28, 2001Dec 26, 2002Steele Guy L.Floating point unit for detecting and representing inexact computations without flags or trapsUS20030005013 *Dec 28, 2001Jan 2, 2003Sun Microsystems, Inc.Floating point system that represents status flag information within a floating point operandUS20030009500 *Dec 28, 2001Jan 9, 2003Sun Microsystems, Inc.Floating point remainder with embedded status informationUS20030014454 *Dec 28, 2001Jan 16, 2003Sun Microsystems, Inc.Floating point square root provider with embedded status informationUS20030041081 *Dec 28, 2001Feb 27, 2003Sun Microsystems, Inc.System and method for performing floating point operations involving extended exponentsUS20030158880 *Feb 13, 2002Aug 21, 2003Ng Kenneth Y.Booth encoder and partial products circuitUS20040117420 *Dec 17, 2002Jun 17, 2004Sun Microsystems, Inc.Methods and systems for computing the quotient of floating-point intervalsUS20050125478 *Dec 5, 2003Jun 9, 2005Intel CorporationSmaller and lower power static mux circuitry in generating multiplier partial product signalsUS20060179104 *Mar 31, 2006Aug 10, 2006Steele Guy L JrTotal order comparator unit for comparing values of two floating point operandsUS20060242215 *Mar 31, 2006Oct 26, 2006Sun Microsystems, Inc.Circuit for selectively providing maximum or minimum of a pair of floating point operandsUS20080091758 *Jul 27, 2007Apr 17, 2008Microunity SystemsSystem and apparatus for group floating-point arithmetic operationsUS20080126466 *Aug 31, 2006May 29, 2008Stephen Clark PurcellMethod and Apparatus for Accumulating Floating Point ValuesUS20090094309 *Dec 9, 2008Apr 9, 2009Microunity Systems Engineering, Inc.System and method to implement a matrix multiply unit of a broadband processor* Cited by examinerClassifications U.S. Classification708/620, 708/625International ClassificationG06F7/52, G06F7/533Cooperative ClassificationG06F7/5338, G06F7/5324, G06F2207/3828, G06F2207/382European ClassificationG06F7/53CLegal EventsDateCodeEventDescriptionJun 19, 1998ASAssignmentOwner name: CHROMATIC RESEARCH, INC., CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PURCELL, STEPHEN C.;PATWA, NITAL P.;REEL/FRAME:009269/0259Effective date: 19980619Aug 9, 1999ASAssignmentOwner name: ATI RESEARCH SILICON VALLEY INC., CALIFORNIAFree format text: CHANGE OF NAME;ASSIGNOR:CHROMATIC RESEARCH, INC.;REEL/FRAME:010226/0012Effective date: 19990129Sep 7, 1999ASAssignmentOwner name: ATI TECHNOLOGIES INC., CANADAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ATI RESEARCH SILICON VALLEY INC.;REEL/FRAME:010206/0952Effective date: 19990811Sep 8, 1999ASAssignmentOwner name: ATI INTERNATIONAL SRL, BARBADOSFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ATI TECHNOLOGIES, INC.;REEL/FRAME:010226/0984Effective date: 19990813Feb 9, 2005FPAYFee paymentYear of fee payment: 4Sep 30, 2008FPAYFee paymentYear of fee payment: 8Nov 30, 2009ASAssignmentOwner name: ATI TECHNOLOGIES ULC, CANADAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ATI INTERNATIONAL SRL;REEL/FRAME:023574/0593Effective date: 20091118Owner name: ATI TECHNOLOGIES ULC,CANADAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ATI INTERNATIONAL SRL;REEL/FRAME:023574/0593Effective date: 20091118Feb 25, 2013FPAYFee paymentYear of fee payment: 12RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services