An arithmetic logic unit (ALU) implemented with complementary pass gate logic using propagate, generate, and kill is provided. Broadly speaking, the ALU is a 64-bit ALU using a multi-stage global carry chain to generate intermediate fourth-bit carries that are folded with local four-bit sums to efficiently generate a final sum output. The ALU implements ones complement subtraction by incorporating a subtraction select signal to invert each bit of a second operand. The ALU circuitry implements a push-pull methodology to improve performance.
|
1. arithmetic logic processing circuitry, comprising:
a global carry chain implementing static propagate, kill, and generate circuitry, including,
a first stage for generating first propagate, kill, and generate signals for each bit of a pair of multi-bit signal vectors;
a second stage for generating second propagate, kill, and generate signals for a first group of the first propagate, kill, and generate signals;
a third stage for generating third propagate, kill, and generate signals for a first group of the second propagate, kill, and generate signals; and
a fourth stage for generating carry signals and carry complement signals, the fourth stage receiving inputs from each of the second stage and the third stage, the carry signals and the carry complement signals being useful for generating a sum result.
27. arithmetic logic unit circuitry, comprising:
a four-stage global carry chain implementing static propagate, kill, and generate circuitry for generating carry signals associated with a pair of multi-bit signal vectors, the carry signals being useful for generating a sum result for the pair of multi-bit signal vectors, wherein the carry signals include intermediate fourth-bit carry signals; and
a summation processing circuit for creating sum and sum complement signals for each bit in the pair of multi-bit signal vectors, the summation processing circuit configured to generate local fourth-bit sum and sum complement signals, the summation processing circuit further configured to fold the local fourth-bit sum and sum complement signals with the intermediate fourth-bit carry signals to produce a final sum output signal vector.
14. A method for making arithmetic logic processing circuitry, comprising:
implementing a global carry chain using static propagate, kill, and generate circuitry, including,
implementing a first stage for generating first propagate, kill, and generate signals for each bit of a pair of multi-bit signal vectors;
implementing a second stage for generating second propagate, kill, and generate signals for a first group of the first propagate, kill, and generate signals;
implementing a third stage for generating third propagate, kill, and generate signals for a first group of the second propagate, kill, and generate signals; and
implementing a fourth stage for generating carry signals and carry complement signals, the fourth stage receiving inputs from each of the second stage and the third stage, the carry signals and the carry complement signals being useful for generating a sum result.
2. arithmetic logic processing circuitry as recited in
3. arithmetic logic processing circuitry as recited in
4. arithmetic logic processing circuitry as recited in
5. arithmetic logic processing circuitry as recited in
6. arithmetic logic processing circuitry as recited in
7. arithmetic logic processing circuitry as recited in
8. arithmetic logic processing circuitry as recited in
a summation processing circuit for receiving the first propagate, kill, and generate signals from the first stage, the first propagate, kill, and generate signals being processed to create sum and sum complement signals for each bit represented by the first propagate, kill, and generate signals, the summation processing circuit further being configured to fold the sum and sum complement signals with the carry signals to produce a final sum output signal vector.
9. arithmetic logic processing circuitry as recited in
10. arithmetic logic processing circuitry as recited in
11. arithmetic logic processing circuitry as recited in
12. arithmetic logic processing circuitry as recited in
13. arithmetic logic processing circuitry as recited in
15. A method for making arithmetic logic processing circuitry as recited in
16. A method for making arithmetic logic processing circuitry as recited in
17. A method for making arithmetic logic processing circuitry as recited in
18. A method for making arithmetic logic processing circuitry as recited in
19. A method for making arithmetic logic processing circuitry as recited in
20. A method for making arithmetic logic processing circuitry as recited in
21. A method for making arithmetic logic processing circuitry as recited in
implementing a summation processing circuit for receiving the first propagate, kill, and generate signals from the first stage, the first propagate, kill, and generate signals being processed to create sum and sum complement signals for each bit represented by the first propagate, kill, and generate signals, the summation processing circuit being further implemented to fold the sum and sum complement signals with the carry signals to produce a final sum output signal vector.
22. A method for making arithmetic logic processing circuitry as recited in
23. A method for making arithmetic logic processing circuitry as recited in
24. A method for making arithmetic logic processing circuitry as recited in
25. A method for making arithmetic logic processing circuitry as recited in
26. A method for making arithmetic logic processing circuitry as recited in
28. arithmetic logic unit circuitry as recited in
a first stage for generating first propagate, kill, and generate signals for each bit of the pair of multi-bit signal vectors;
a second stage for generating second propagate, kill, and generate signals for a first group of the first propagate, kill, and generate signals;
a third stage for generating third propagate, kill, and generate signals for a first group of the second propagate, kill, and generate signals; and
a fourth stage for generating carry signals and carry complement signals, the fourth stage receiving inputs from each of the second stage and the third stage, the carry signals and the carry complement signals being useful for generating the sum result.
29. arithmetic logic unit circuitry as recited in
30. arithmetic logic unit circuitry as recited in
31. arithmetic logic unit circuitry as recited in
32. arithmetic logic unit circuitry as recited in
33. arithmetic logic unit circuitry as recited in
34. arithmetic logic unit circuitry as recited in
35. arithmetic logic unit circuitry as recited in
36. arithmetic logic unit circuitry as recited in
37. arithmetic logic unit circuitry as recited in
38. arithmetic logic unit circuitry as recited in
39. arithmetic logic unit circuitry as recited in
40. arithmetic logic unit circuitry as recited in
|
1. Field of the Invention
The present invention relates generally to microprocessors, and more particularly, to an arithmetic logic unit.
2. Description of the Related Art
An arithmetic logic unit (ALU) is a module of circuitry capable of realizing a set of arithmetic and logic functions. In general the ALU receives a set of input data and creates a set of output data. The input and output data are processed in binary form by the ALU. The ALU is generally used as a standard module in microprocessors. In this manner the same ALU can be used in many different applications. One primary purpose of the ALU in the microprocessor is to perform integer addition operations. It is typical for multiple ALU's to be used in systems that are required to perform large numbers of integer addition operations. As such the ALU characteristics described in terms of speed, power consumption, and chip footprint area become important microprocessor design considerations.
Most ALU's of modern computing system are implemented using dynamic circuitry. Dynamic circuitry is generally used to improve the speed of the ALU. However, use of dynamic circuitry introduces a number of drawbacks with respect to overall system design. For instance, use of dynamic circuitry results in high power consumption and occupation of a large chip footprint area. Also, due to heavy reliance on timing and reference clocks, dynamic circuitry is vulnerable to noise perturbations. Therefore, a large amount of effort and expense must be invested in the successful design of an ALU using dynamic circuitry.
As an alternative to dynamic circuitry, regular static circuitry can be used to implement an ALU. The ALU implemented using regular static circuitry has a lower power consumption and a smaller chip footprint area as compared to the ALU implemented using dynamic circuitry. The use of regular static circuitry also yields a more robust ALU that is less vulnerable to noise perturbations. However, the computational speed of the ALU implemented using regular static circuitry is generally not competitive with an ALU implemented using dynamic circuitry.
In view of the foregoing, there is a need for an ALU that combines the beneficial characteristics of a dynamically implemented ALU and a regular statically implemented ALU. More specifically, there is a need for an ALU that offers the high speed of a dynamically implemented ALU while also offering the low power consumption and the small chip footprint area of regular statically implemented ALU.
Broadly speaking, the present invention fills these needs by providing an arithmetic logic unit (ALU) implemented with complementary pass gate logic using propagate, generate, and kill. The ALU uses a multi-stage global carry chain to generate intermediate fourth-bit carries that are folded with local four-bit sums to efficiently generate a final sum output. The ALU also implements ones complement subtraction by incorporating a subtraction select signal to invert each bit of a second operand. Also, the circuitry of the ALU implements a push-pull methodology to improve performance. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, or a method. Several embodiments of the present invention are described below.
In one embodiment, arithmetic logic processing circuitry is disclosed. The arithmetic logic processing circuitry includes a global carry chain implementing static propagate, kill, and generate circuitry. The global carry chain includes a first stage, a second stage, a third stage, and a fourth stage. The first stage is for generating first propagate, kill, and generate signals for each bit of a pair of multi-bit signal vectors. The second stage is for generating second propagate, kill, and generate signals for a first group of the first propagate, kill, and generate signals. The third stage is for generating third propagate, kill, and generate signals for a first group of the second propagate, kill, and generate signals. The fourth stage is for generating carry signals and carry complement signals. The fourth stage is configured to receive inputs from each of the second stage and the third stage. The carry signals and the carry complement signals generated by the fourth stage are useful for generating one of a sum result and a subtraction result.
In another embodiment, a method for making arithmetic logic processing circuitry is disclosed. The method includes implementing a global carry chain using static propagate, kill, and generate circuitry. The global carry chain is implemented by implementing a first stage, a second stage, a third stage, and a fourth stage. Implementation of the first stage is performed to generate first propagate, kill, and generate signals for each bit of a pair of multi-bit signal vectors. Implementation of the second stage is performed to generate second propagate, kill, and generate signals for a first group of the first propagate, kill, and generate signals. Implementation of the third stage is performed to generate third propagate, kill, and generate signals for a first group of the second propagate, kill, and generate signals. Implementation of the fourth stage is performed to generate carry signals and carry complement signals. The fourth stage is implemented to receive inputs from each of the second stage and the third stage. The carry signals and the carry complement signals generated by implementation of the fourth stage are useful for generating one of a sum result and a subtraction result.
In another embodiment, arithmetic logic unit circuitry is disclosed. The arithmetic logic unit circuitry includes a multi-stage global carry chain. The multi-stage global carry chain implements static propagate, kill, and generate circuitry for generating carry signals associated with a pair of multi-bit signal vectors. The carry signals are useful for generating one of a sum result and a subtraction result for the pair of multi-bit signal vectors. The arithmetic logic unit circuitry also includes a summation processing circuit for creating sum and sum complement signals for each bit in the pair of multi-bit signal vectors. The summation processing circuit is further configured to fold the sum and sum complement signals with the carry signals to produce a final sum output signal vector.
Other aspects of the invention will become more apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the present invention.
The invention, together with further advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings in which:
An invention is disclosed for an arithmetic logic unit (ALU) implemented with complementary pass gate logic using propagate, generate, and kill. Broadly speaking, the present invention is a 64-bit ALU that uses a multi-stage global carry chain to generate intermediate fourth-bit carries that can be folded with local four-bit sums to efficiently generate a final sum output. The ALU of the present invention also implements ones complement subtraction by incorporating a subtraction select signal to invert each bit of a second operand. Additionally, the circuitry of the ALU of the present invention implements a push-pull methodology to improve performance. As compared to an ALU implemented using dynamic circuitry, the ALU of the present invention uses less power, occupies less area, has comparable speed, and is more robust.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
If a logic operation is to be performed, the operand select multiplexer 105 passes a signal indicating such through a communication pathway 117 to a logic operations block 109. The operand select multiplexer 105 will also pass rs1 and rs2 to the logic operations block 109. The logic operations block 109 is capable of performing a plurality of logical operations on rs1 and rs2. In one embodiment the logic operations block 109 will perform operations such as AND, ANDcc, ANDN, ANDNcc, OR, ORcc, ORN, ORNcc, XOR, XORcc, XNOR, and XNORcc. In other embodiments, the logic operations block 109 will be capable of performing other well known logical operations on rs1 and rs2. The logic operations block 109 passes a logic operation result to a sum/logic select multiplexer 123 through a communication pathway 125. If a logic operation is to be performed, the sum/logic select multiplexer 123 will pass the logic operation result through a communication pathway 127 to a sum select block 129. If a logic operation is to be performed, the logic operation result will be passed from the sum select block 129 through a communication pathway 131 as a logic output.
If an addition or subtraction operation is to be performed, the operand select multiplexer 105 passes a signal indicating such through a communication pathway 115 to a local sum and sum complement generation block 107. Bit-wise propagate, kill, and generate signals are passed through a communication pathway 133 from a first stage 137 of the global carry chain 101 to the local sum and sum complement generation block 107. Using the bit-wise propagate, kill, and generate signals, the local sum and sum complement generation block 107 creates a sum and a sum complement for each consecutive group of four bits between bit-0 and bit-63. The sum and sum complement for each consecutive group of four bits are passed through a communication pathway 135 to the sum/logic select multiplexer 123. If an addition or subtraction operation is to be performed, the sum/logic select multiplexer 123 will pass the sum and sum complement for each consecutive group of four bits through the communication pathway 127 to the sum select block 129. A carry and carry complement corresponding to bit-0 through bit-j for every fourth bit-j is provided from a fourth stage 149 of the global carry chain 101 through a communication pathway 151 to be used as input to the sum select block 129. The sum select block 129 folds the carry and carry complement input with the sum and sum complement input to determine a final sum output. The final sum output is provided from the sum select block 129 through a communication pathway 131.
The global carry chain 101 includes the first stage 137, a second stage 141, a third stage 145, and the fourth stage 149. The first stage 137 receives rs1, rs2, and a subtraction select signal as input through communication pathways 155, 157, and 159, respectively. Output from the first stage 137 is provided through a communication pathway 139 to the second stage 141 and also through a communication pathway 133 to the local sum and sum complement generation block 107. Output from the second stage 141 is provided through a communication pathway 143 to the third stage 145 and also through a communication pathway 161 to the fourth stage 149. Output from the third stage 145 is provided through a communication pathway 147 to the fourth stage 149. The fourth stage 149 provides carry and carry complement output through communication pathway 151 to the sum select block 129. The fourth stage 149 also provides a carry output signal through a communication pathway 153. The following discussion provides details corresponding to the implementation of the four stages of the global carry chain 101.
The second stage 141 of the global carry chain 101 is implemented on consecutive groups of four bits beginning with the group defined by bit-0 through bit-3 and ending with the group defined by bit-60 through bit-63. The second stage 141 creates a four-bit propagate signal, a four-bit kill signal, and a four-bit generate signal for each of the sixteen consecutive groups of four bits between bit-0 and bit-63. The propagate, kill, and generate signals for each bit as previously created in stage one 137 are used as input to the second stage 141. For example, the propagate (P0, P1, P2, P3), kill (K0, K1, K2, K3), and generate (G0, G1, G2, G3) signals for bit-0 through bit-3 are used in the second stage 141 to create the propagate (P3
The third stage 145 of the global carry chain 101 creates thirteen sets of propagate, kill, and generate signals, wherein each set is based on four successive groups of propagate, kill, and generate signals created in the second stage 141. For example, the first set of propagate (P15
The fourth stage 149 of the global carry chain 101 creates a carry (Cj
The Zj and Zj′ signals for each bit are passed from the local sum and sum complement block 107 to the sum select block 129, as indicated by the plurality of arrows positioned between the block 207 and a block 229 in
If either Pi, Ki, or Gi is to be generated as a high signal, the corresponding signal prior to inverters 415, 413, or 417, respectively, will be low. Similarly, if either Pi, Ki, or Gi is to be generated as a low signal, the corresponding signal prior to inverter 415, 413, or 417, respectively, will be high. Just prior to entering the inverters 415, 413, or 417, the one low signal will cause the two high signals to be pushed high (i.e., refreshed). Thus, when passing through the inverters 415, 413, or 417, the two recently refreshed high signals will be inverted to two well-defined low signals, and the one low signal will inverted to one well-defined high signal. A low Pi signal prior to inverter 415 causes PMOS devices 419 and 427 to refresh the high Ki and Gi signals, respectively, prior to inverters 413 and 417, respectively. A low Ki signal prior to inverter 413 causes PMOS devices 423 and 429 to refresh the high Pi and Gi signals, respectively, prior to inverters 415 and 417, respectively. A low Gi signal prior to inverter 417 causes PMOS devices 421 and 425 to refresh the high Ki and Pi signals, respectively, prior to inverters 413 and 415, respectively. In this manner, the push-pull methodology is implemented to enhance the corresponding circuit performance.
If either P3
If either P15
If either C51
If either C19
In general, the ALU of the present invention can be implemented with a footprint area comparable to that of an ALU implemented using regular static circuitry. In following, the ALU of the present invention can be implemented with a footprint area substantially less than that of an ALU implemented using dynamic circuitry. Also, a power consumption associated with the ALU of the present invention is comparable to that of an ALU implemented using regular static circuitry. In following, the power consumption associated with the ALU of the present invention is substantially less than that of an ALU implemented using dynamic circuitry. Furthermore, since the ALU of the present invention does not rely on clocking, as is done in an ALU implemented using dynamic circuitry, the ALU of the present invention is more robust (e.g., less sensitive to noise) than an ALU implemented using dynamic circuitry.
TABLE 1
First Stage Propagate, Kill, and Generate Equations
First Stage Propagate Equations
Pi = rs1i XOR rs2i XOR select
for i = 0 . . . 63
Examples:
P0 = rs10 XOR rs20 XOR select
P1 = rs11 XOR rs21 XOR select
P2 = rs12 XOR rs22 XOR select
.
.
.
P62 = rs162 XOR rs262 XOR select
P63 = rs163 XOR rs263 XOR select
First Stage Kill Equations
Ki = rs1i′ AND (rs2i XNOR select)
for i = 0 . . . 63
Examples:
K0 = rs10′ AND (rs20 XNOR select)
K1 = rs11′ AND (rs21 XNOR select)
K2 = rs12′ AND (rs22 XNOR select)
.
.
.
K62 = rs162′ AND (rs262 XNOR select)
K63 = rs163′ AND (rs263 XNOR select)
First Stage Generate Equations
Gi = rs1i AND (rs2i XOR select)
for i = 0 . . . 63
Examples:
G0 = rs10 AND (rs20 XOR select)
G1 = rs11 AND (rs21 XOR select)
G2 = rs12 AND (rs22 XOR select)
.
.
.
G62 = rs162 AND (rs262 XOR select)
G63 = rs163 AND (rs263 XOR select)
TABLE 2A
Second Stage Propagate Equations
Basic Second Stage Propagate (P) Equation
Pi:j = Pi:m * P(m − 1):j (applied recursively)
Second Stage Propagate Equations
P3
P7
P11
P15
P19
P23
P27
P31
P35
P39
P43
P47
P51
P55
P59
P63
TABLE 2B
Second Stage Kill Equations
Basic Second Stage Kill (K) Equation
Ki:j = Ki:m + K(m − 1):j * Pi:m (applied recursively)
Second Stage Kill Equations
K3
K7
K11
K15
K19
K23
K27
K31
K35
K39
K43
K47
K51
K55
K59
TABLE 2C
Second Stage Generate Equations
Basic Second Stage Generate (G) Equation
Gi:j = Gi:m + G(m − 1)j * Pi:m (applied recursively)
Second Stage Generate Equations
G3
G7
G11
G15
G19
G23
G27
G31
G35
G39
G43
G47
G51
G55
G59
G63
TABLE 3A
Third Stage Propagate Equations
Basic Third Stage Propagate (P) Equation
Pi:j = Pi:m * P(m − 1):j (applied recursively)
Third Stage Propagate Equations
P15
P19
P23
P27
P31
P35
P39
P43
P47
P51
P55
P59
P63
TABLE 3B
Third Stage Kill Equations
Basic Third Stage Kill (K) Equation
Ki:j = Ki:m + K(m − 1):j * Pi:m (applied recursively)
Third Stage Kill Equations
K15
(K3
K19
(K7
K23
(K11
K27
(K15
K31
(K19
K35
(K23
K39
(K27
K43
(K31
K47
(K35
K51
(K39
K55
(K43
K59
(K47
K63
(K51
TABLE 3C
Third Stage Generate Equations
Basic Third Stage Generate (G) Equation
Gi:j = Gi:m + G(m − 1):j * Pi:m (applied recursively)
Third Stage Generate Equations
G15
(G3
G19
(G7
G23
(G11
G27
(G15
G31
(G19
G35
(G23
G39
(G27
G43
(G31
G47
(G35
G51
(G39
G55
(G43
G59
(G47
G63
(G51
TABLE 4A
Fourth Stage Carry Equations
Basic Fourth Stage Carry (C) Equation
Ci = Gi + Ci − 1 * Pi (applied recursively)
Carry Equation for Each Fourth Bit Using Global Carry Chain
C3
C7
C11
C15
C19
C23
C27
(G3
C31
C35
C39
(G3
C43
(G7
(G3
C47
C51
(G3
C55
(G7
(G3
C59
(G11
(G3
C63
(G15
TABLE 4B
Fourth Stage Carry Complement Equations
Basic Fourth Stage Carry Complement (C′) Equation
C1′ = K1 + Ci − 1′ * Pi (applied recursively)
Carry Complement Equation for Each Fourth Bit Using Global
Carry Chain
C3
C7
C11
C15
C19
C23
C27
(K3
C31
C35
C39
(K3
C43
(K7
(K3
C47
C51
(K3
C55
(K7
(K3
C59
(K11
(K3
C63
(K15
TABLE 5
Local Sum Equations
Four-bit Local Sum (Z) Equations
Zi = Pi XOR Cin
Zi + 1 = Pi + 1 XOR (Gi + Pi Cin)
Zi + 2 = Pi + 2 XOR (Gi + 1 + Pi + 1 Gi + Pi Pi + 1 Cin)
Zi + 3 = Pi + 3 XOR (Gi + 2 + Pi + 2 Gi + 1 +
Pi + 2 Pi +1 Gi + Pi Pi + 1 Pi + 2 Cin)
Cin = 1 for Zi, Zi + 1, Zi + 2, and Zi + 3
Cin = 0 for Zi′, Zi + 1′, Zi + 2′, and Zi + 3′
i = {0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60}
While this invention has been described in terms of several embodiments, it will be appreciated that those skilled in the art upon reading the preceding specifications and studying the drawings will realize various alterations, additions, permutations and equivalents thereof. It is therefore intended that the present invention includes all such alterations, additions, permutations, and equivalents as fall within the true spirit and scope of the invention.
Wong, Ban P., Dubey, Sanjay, Chillarige, Yoganand, Sompur, Shivakumar, Tran, Cynthia
Patent | Priority | Assignee | Title |
10545727, | Jan 08 2018 | International Business Machines Corporation | Arithmetic logic unit for single-cycle fusion operations |
10768897, | Jan 08 2018 | International Business Machines Corporation | Arithmetic logic unit for single-cycle fusion operations |
9543950, | Jul 21 2014 | Lattice Semiconductor Corporation | High speed complementary NMOS LUT logic |
Patent | Priority | Assignee | Title |
6496846, | Jul 13 1999 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Conditional carry encoding for carry select adder |
6954773, | Sep 28 2001 | MARVELL INTERNATIONAL LTD | Providing an adder with a conversion circuit in a slack propagation path |
20030061253, | |||
20030088603, | |||
20030229661, | |||
20040073592, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 21 2002 | DUBEY, SANJAY | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013414 | /0439 | |
Oct 21 2002 | CHILLARIGE, YOGANAND | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013414 | /0439 | |
Oct 21 2002 | SOMPUR, SHIVAKUMAR | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013414 | /0439 | |
Oct 21 2002 | WONG, BAN P | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013414 | /0439 | |
Oct 21 2002 | TRAN, CYNTHIA | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013414 | /0439 | |
Oct 22 2002 | Sun Microsystems, Inc. | (assignment on the face of the patent) | / | |||
Feb 12 2010 | ORACLE USA, INC | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037302 | /0719 | |
Feb 12 2010 | Sun Microsystems, Inc | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037302 | /0719 | |
Feb 12 2010 | Oracle America, Inc | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037302 | /0719 |
Date | Maintenance Fee Events |
Aug 18 2010 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Aug 20 2014 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 06 2018 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 20 2010 | 4 years fee payment window open |
Sep 20 2010 | 6 months grace period start (w surcharge) |
Mar 20 2011 | patent expiry (for year 4) |
Mar 20 2013 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 20 2014 | 8 years fee payment window open |
Sep 20 2014 | 6 months grace period start (w surcharge) |
Mar 20 2015 | patent expiry (for year 8) |
Mar 20 2017 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 20 2018 | 12 years fee payment window open |
Sep 20 2018 | 6 months grace period start (w surcharge) |
Mar 20 2019 | patent expiry (for year 12) |
Mar 20 2021 | 2 years to revive unintentionally abandoned end. (for year 12) |