Standard cell for arithmetic logic unit and chip card controller

Information

  • Patent Application
  • 20080040414
  • Publication Number
    20080040414
  • Date Filed
    August 08, 2007
    17 years ago
  • Date Published
    February 14, 2008
    16 years ago
Abstract
A cell for an arithmetic logic unit includes a first input; a second input; a carry-in input; a first control input and a second control input; and a circuit connected to the first input, the second input, the carry-in input, the first control input, and the second control input. The circuit has a first output and a second output, the second output having a first value as a function of the first input and the second input when the first control input and the second control input are supplied values equal to a value at the carry-in input, and having a second value as a function of the first input and second input when the values at the first control input and the second control input are independent of the value at the carry-in input.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 shows a prior art mirror adder.


The present invention will be described with respect to a preferred embodiment, in which:



FIG. 2 shows a masked mirror adder according to the present invention;



FIG. 3 shows ALU control circuitry for the masked mirror adder of FIG. 2;



FIG. 4 shows the controlled cell and the interaction of the control circuitry of FIG. 3 with the adder of FIG. 2;



FIG. 5 shows a possible implementation for the XNOR3 gate of FIG. 3; and



FIG. 6 shows ALU control logic circuitry without masking.





DETAILED DESCRIPTION

Attempts to implement OTP masked ALU's using conventional standard cells have led to unacceptable values for the computing speed and energy expenditure. Because of this, commercial implementation of OTP-masked computation has been difficult.


One embodiment of the present invention provides a cell for an arithmetic logic unit comprising:

    • a first input;
    • a second input;
    • a carry bit input;
    • a first control input and a second control input;
    • a circuit connected to the first input, the second input, the carry bit input, the first control input, and the second control input, the circuit having a first output and a second output;
    • the second output having a first value as a function of the first input and the second input when the first control input and the second control input are supplied values equal to a value at the carry bit input, and having a second value as a function of the first input and second input when the values at the first control input and the second control input are independent of the value at the carry-in input.


A further embodiment of the present invention provides control circuitry for an ALU cell comprising:

    • a mask bit input;
    • a carry bit input;
    • and
    • a circuit outputting a masked carry bit and having two control outputs.


A further embodiment of the present invention also provides control circuitry for an ALU cell comprising:

    • a current mask bit input;
    • a previous mask bit input inputting the mask bit from an immediately upstream ALU cell;
    • a carry bit input;
    • two control bit inputs;
      • and
    • a circuit outputting a masked carry bit and having two control outputs as a function of the current mask bit input and the previous mask bit input.


In a further embodiment, the present invention provides a masked ALU cell comprising:

    • a carry bit input;
    • a mask bit input;
    • a control circuit receiving the carry bit input and the mask bit input and outputting a masked carry bit, the control circuit having at least one control state; and
    • a base circuit logically combining a first input, a second input and the masked carry bit to logically add the first input, the second input and the masked carry bit when the control circuit is in a first of control state.


In yet another embodiment, the present invention provides a masked ALU cell comprising:

    • a carry bit input;
    • a mask bit input;
    • a control circuit receiving the carry bit input and the mask bit input and outputting a masked carry bit, the control circuit having at least four control states; and
    • a base circuit logically combining a first input, a second input and the masked carry bit to: (a) logically add the first input, the second input and the masked carry bit when the control circuit is in a first state of the four control states, (b) logically XNOR the first input and second input when the control circuit is in a second state of the four control states; (c) logically NAND the first input and second input when the control circuit is in a third state of the four control states and logically NOR the first input and second input when the control circuit is in a fourth state of the four control states.


The present invention also provides a method for logically combining two inputs in a masked ALU cell comprising:

    • receiving a carry bit from an adjacent upstream ALU cell;
    • masking the carry bit by performing an exclusive—or on the carry bit with a mask bit; and
    • controlling an ALU cell to logically perform either adding two inputs and the masked carry bit in the ALU cell or performing bitwise one of an XNOR, or NAND or NOR on the two inputs.


The present invention provides a mirror adder, control circuitry and methods suited especially well for standard cell implementation. The ALU cell of the present invention not only provides the arithmetic function of (one-bit) addition of two binary numbers (the two operands), but also is programmable by suitable control signals so as to perform logical operations, namely bitwise XNOR or NAND or NOR operations, on the two operands. When suitably inverting the operands or the result, it is then possible to implement any possible bitwise logical operations as well as arithmetic operations. Moreover, all these operations are intended to be performed such that all data (operands, carries (carry-ins/carry-outs), and results) are XOR-masked using time-variant OTP masks.


Compared to an OTP implementation using conventional standard cells, this means significantly higher computing speeds (by more than 100%) and significantly lower energy expenditure.



FIG. 2 shows a possible mirror adder implementation 20 in CMOS according to the present invention, with transistors TP1 to TP12 and TN1 to TN12. According to a feature of the present invention, rather than being connected to the carry-in bit ci, as in the prior art, the transistors TN9 and TP12 are connected to an input control signal xe1; and transistors TN12 and TP9 are connected to an input control signal xe0.


From this, it follows that the relationship between co*_n and a*, b* and ci* in FIG. 2 is the same as that between co_n and a, b, and ci in FIG. 1:






co*

n= a*·b*+b*·ci*+ci*·a*  (6)


and, secondly, that the equation for s*_n in FIG. 2 is:












s
*


_n

=



a
*



b
*



c






i
*



_







when








x





e





1

=


x





e





0

=

c






i
*




,




and
,
respectively
,





(
7
)









s
*


_n

=


c






o
*


_n

=



a
*

·

b
*


+



b
*

·
c







i
*


+

c







i
*

·

a
*











for








x





e





1

=
1

,


x





e





0

=
0






(
8
)







Other values for xe1 and xe0 are not needed in this embodiment.


With the definition






y*=y⊕k
p,  (9)


(where kp denotes the mask bit for bit position p) for masked data, it follows from the covariance of the full adder equations under the masking operation, first of all, that the circuit specified in FIG. 2 has the properties required for calculating (6) the masked carry-out co*_n from the masked inputs a*, b* and ci*.


As for the inverted sum bit s*_n, i.e., the equations (7) and (8), (7) represents the conventional (covariant) full adder equation for the inverted sum bit if ci* denotes the carry bit masked with kp of bit position p−1.


However, if it is provided that the carry-in bit ci* for bit position p is set to the inverse to mask bit kp ( kp), it follows that (7) implements the kp-masked XNOR operations on a* and b*








s
*


_n

=




a
*



b
*




k
_

p


_

=


a
*



b
*



k
p








for






c






i
*


=



k
p

_

.





Alternatively to equation (7), or to the ADD, and XNOR operations, as described above, the operations NAND and NOR can be implemented by (8). To this end, in addition to the conditions xe1=1, xe0=0 for the validity of (8), it should again be provided that the carry-in bit ci* for bit position p is equal to mask bit kp or to its inverse kp, respectively. If so, it follows that (8) implements the kp-masked NAND and NOR operations on a* and b*, respectively:











s
*


_n

=




a
*

·

b
*


+



(


a
*

+

b
*


)

·
c







i
*



=







=




(

a


k
p


)

·

(

b


k
p


)


+


(


a


k
p


+

b


k
p



)

·

k
p



=







=



a
·
b
·


k
p

_


+



a
·
b

_

·

k
p



=







=



(

a
·
b

)



k
p


=







=


(

a
·
b

)

*









for







c






i
*


=

k
p


,




and
,
respectively
,










s
*


_n

=




a
*

·

b
*


+



(


a
*

+

b
*


)

·
c







i
*



=







=




(

a


k
p


)

·

(

b


k
p


)


+


(


a


k
p


+

b


k
p



)

·


k
p

_



=







=




(

a
+
b

)

·


k
p

_


+



a
+
b

_

·

k
p



=







=



(

a
+
b

)



k
p


=







=


(

a
+
b

)

*










for






c






i
*


=



k
p

_

.






FIG. 3 shows a control circuit 30 by which the value combinations for xe1, xe0 and ci* specified above for the implementation of the various operations can be generated as a function of the mask bits kp (of the bit position p associated with the currently considered ALU cell) and kp-1, (of the bit position p−1 whose carry-out bit cop-1 represents the carry-in bit of bit position p), the carry-in bit ci and the control signals n1 and n0.


The following table summarizes the generation of xe1, xe0 and ci*:


















n1
n0
Ci*p
xe1
xe0
Operation
s*_n







1
0
ci'⊕kp−1 ⊕ kp
ci*p
ci*p
ADD

a * ⊕b * ⊕ci*



1
1

kp

ci*p
ci*p
XNOR
(a ⊕ b)*


0
0
kp
1
0
NAND
(a · b)*


0
1

kp

1
0
NOR
(a + b)*










FIG. 4 shows the generation of









c






i



=



c






o

p
-
1

*


-
n

_


_

,




by means of an inverter (INVC 40), as well as the interconnection of the subcircuits 20, 30 shown in FIGS. 2 and 3 of the masked mirror ALU cell of the present invention. The value co*_in is input to an inverter 40 to generate the carry bit for the next downstream cell, so that co*p becomes ci′ for the next cell. s*_n can pass through an inverter 50 to form s*.


All circuit elements included FIG. 4 or its subfigures can be integrated physically (in the layout) into one unit, in an extension of conventional standard cell libraries. This, together with the minimal number of transistors and the small number and small electrical capacitance of the switching nodes, is the reason for the high computing speed and the low energy expenditure of this cell.



FIG. 5 illustrates an advantageous implementation of the XNOR3 circuit symbolically shown in FIG. 3, using the so-called “transmission gate” design style. From the “masked mirror ALU” cell according to the invention shown in FIGS. 2 to 4, it is easy to derive the variant of a “masked mirror ALU” cell without masking, that is to say, for kp≡0∀p. The control logic, which is simplified in comparison to FIG. 3, is shown in FIG. 6.

Claims
  • 1. A cell for an arithmetic logic unit comprising: a first input;a second input;a carry bit input;a first control input and a second control input; anda circuit connected to the first input, the second input, the carry bit input, the first control input, and the second control input, the circuit having a first output and a second output;the second output having a first value as a function of the first input and the second input when the first control input and the second control input are supplied values equal to a value at the carry bit input, and having a second value as a function of the first input and second input when the values at the first control input and the second control input are independent of the value at the carry-in input.
  • 2. The cell as recited in claim 1 wherein the first output is an inverted carry-out bit.
  • 3. The cell as recited in claim 1 wherein the first value is one of a logical addition of the first input, the second input and the carry-in input and XNOR of the first input and the second input.
  • 4. The cell as recited in claim 1 wherein the second value is one of a logical NAND and NOR output of the first and second input.
  • 5. The cell as recited in claim 1 wherein the first control input is a logical zero and the second control input a logical one.
  • 6. The cell as recited in claim 1 wherein the carry-in input is a masked input.
  • 7. The cell as recited in claim 1 further comprising a controller for altering values of the first and second control inputs.
  • 8. A processor comprising a plurality of cells as recited in claim 1.
  • 9. A control circuitry for an ALU cell comprising: a mask bit input;a carry bit input;two control bit inputs; anda circuit outputting a masked carry bit and having two control outputs.
  • 10. The control circuitry as recited in claim 9 further comprising a second mask bit input.
  • 11. A control circuitry for an ALU cell comprising: a current mask bit input;a previous mask bit input inputting the mask bit from an immediately upstream ALU cell;a carry bit input; anda circuit outputting a masked carry bit and having two control outputs as a function of the current mask bit input and the previous mask bit input.
  • 12. The control circuitry as recited in claim 11 further comprising two control bit inputs.
  • 13. A masked ALU cell comprising: a carry bit input;a mask bit input;a control circuit receiving the carry bit input and the mask bit input and outputting a masked carry bit, the control circuit having at least one control state; anda base circuit logically combining a first input, a second input and the masked carry bit to logically add the first input, the second input and the masked carry bit when the control circuit is in a first of control state.
  • 14. The masked ALU cell of claim 13 wherein the control circuit has four control states such that the base circuit operates to logically XNOR the first input and the second input when the control circuit is in a second control state, logically NAND the first input and the second input when the control circuit is in a third control state, and logically NOR the first input and the second input when the control circuit is in a fourth control state.
  • 15. A method for logically combining two inputs in a masked ALU cell comprising: receiving a carry bit from an adjacent upstream ALU cell;masking the carry bit by performing an exclusive—or on the carry bit with a mask bit; andcontrolling an ALU cell to logically perform one of adding two inputs and the masked carry bit in the ALU cell and performing bitwise one of a NAND and NOR on the two inputs.
Parent Case Info

This application is a continuation-in-part of application Ser. No. 11/501,305, filed Aug. 9, 2006, entitled STANDARD CELL FOR ARITHMETIC LOGIC UNIT AND CHIP CARD CONTROLLER, hereby incorporated by reference.

Continuation in Parts (1)
Number Date Country
Parent 11501305 Aug 2006 US
Child 11890966 US