METHOD AND APPARATUS FOR OPERATING MASKABLE MEMORY CELLS
A plurality of masked memory cells organized in at least two groups, each group using an individual mask signal, is operated by providing a logically valid mask signal only for a selected group comprising the memory cell to be accessed while a logically invalid mask signal are used for all groups other than the selected group.
Latest INFINEON TECHNOLOGIES AG Patents:
Several embodiments described herein relate to a method and an apparatus for operating maskable memories and, in particular, to read-out strategies and apparatuses for operating those memory elements in an energy and semiconductor area efficient manner.
In the field of security applications, for memory circuitry in particular, various methods of attack are known from which memory circuitry is to be protected. The differential power analysis (DPA) is a common technique for attacking ICs (IC=integrated circuit) and/or memory circuitry. These attacks also serve for assessing the sensitivity of packages to security applications with respect to deliberate attacks on “confidential” information such as passwords or cryptographic keys. For a given program or a given algorithm, in these attacks, power profiles measured by statistical methods and/or their charge integrals calculated over one or more clock cycles are evaluated wherein, for a multitude of program executions, conclusions to the information to be protected may be drawn from the correlation of systematic data variation and a respective charge integral.
One way to at least substantially impede DPA attacks consists in exchanging or transferring data among subsystems of an IC encrypted, as far as this is possible. One possible cryptosystem for this purpose, as it is proven safe, is the so-called one-time-pad encryption. In this method, plain texts m=(m1, m2, . . . ) encoded as a bit sequence are encrypted with keys k=(k1, k2, . . . ) obtained from truly random sequences, according to c=e(k,m)=(k1Γm1,k2Γm2, . . . ), that is, a bit cj of the ciphertext c=e(m,k) results from the XOR operation kjΓmj of the corresponding bits of key k and plaintext m. Due to kΓk=0 and 0Γk=k, kjΓcj=mj holds true, that is, the decryption of c so as to restore the plaintext m, takes place according to the same bitwise XOR operation.
In the one-time-pad cryptosystem, it is important that each key sequence be used only once each for the encryption and the decryption, as otherwise information on plaintexts may be determined by means of statistical methods.
For the following considerations, one exemplary memory cell 160 of the memory cell array of
In the following Figures, the logic elements are predominantly realized by n-channel and p-channel FETs. Their control signals are indicated in small letters. For reasons of clarity, the introduction of additional reference numerals for all devices is omitted. Signals implemented in dual-rail logic are indicated by small letters such as m and bl in
The connection represented in
During readout, the bit-line pair (bl,blq), for an activated word line, wl=1, and with the masking values (m,mq)=(0,1), is brought from its precharge state (1,1) to the state (0,1), whereas for (m,mq)=(1,0), the denotations of bl and blq are interchanged as (bl,blq) then assumes the state (1,0). Sufficiently frequent interchanging of (m,mq) also each time interchanges the denotations of bl and blq. The risk of a DPA attack may thus be reduced and probing is also substantially impeded.
In order to operate an array of maskable memory cells, a suitable access logic is required, as shortly summarized below.
The block diagram in
The control block 860 further coordinates the precharge states of the individual components. The address latch 810 is externally provided with address inputs mAdr having a width of a bits, which are masked with a mask resulting from a further input signal mask having a width of m bits. From these two input signals, the address latch 810 may forward the mAdr_msb (msb=most significant bit) highest-order addresses with a width of a_msb bits to the masked address decoder 820 for selection, which, based on a mask mask_msb with a width of m_msb bits performs a demasking thereof.
The mask signal mask_msb results from the input signal mask.
The masked address decoder 820 may now forward the signals mask_Wl with a width of m_mWl bits to the word-line driver 830 for the demasking of the signals mWl with a bit width of a_mWl. The word-line driver 830 is capable of extracting, from these signals, the word-line signals with a width of a_mWl bits, which are present as plaintext. Based on these signals, the masked ROM cell 840 may now read an address area and provide same to the masked bit-line multiplexer 850 with a width of d_mbl bits in a signal mBl. The masked bit-line multiplexer 850 further receives, from the address latch 810, the signals mAdr_lsb (lsb=least significant bit) with a width of a_lsb bits and the signal mask_lsb with a width of m_lsb bits for the masking thereof. Based on these signals, the masked bit-line multiplexer 850 may extract the desired data from the data area provided by the masked ROM cell field 840 and provide same at the output as mDo with a width of d bits. The mask bit-line multiplexer further receives, from the address latch, the signal mask_dbl, which same forwards to the masked ROM cell field 840, and on the basis of which the data areas may be masked, that is, these signals allow the bitwise switching between normal and complementary representation of the data area.
That is mAdr stands for the a-bit-wide masked address inputs, mask represents the m-bit-wide masks for at least mAdr and mDo, the d-bit-wide outputs masked with mask. The signals mAdr_msb, which are a_msb bits wide, comprise the highest-order (dual-rail) addresses for the selection of a_mWl masked word lines mWl, mask_msb and mask_WI comprise the corresponding m_msb-bit or m_mWl-bit-wide masks, respectively. The signals wl comprise the a_mWl-bit-wide word lines and in general several mROM cell fields, which may be read in parallel and are present as plaintext in the embodiment considered. The signal mbl comprises the d_mbl-bit-wide bit-line pairs masked with the m_mbl-bit-wide masks of generally several mROM cell fields, from which the d-bit-wide data outputs mDo are selected with the mnAdr_lsb-bit-wide lowest order and with the m_lsb (the a_lsb-bit-wide lowest-order dual-rail addresses masked with the m_lsb-bit-wide masks mask_lsb).
As becomes apparent from the previously described implementations, masking and dual rail implementations use complex memory cells and operating circuitry, to fulfill the enhanced security requirements.
SUMMARYSeveral embodiments subsequently discussed will decrease the complexity of the layout of the memory cells of the circuitry used to operate the masked memory cells, by reducing the number of required components or bit lines, and thus simultaneously decrease the energy consumption as well as chip-area required to implement high-security memories using masked storage cells and transport paths.
In the following, preferred embodiments are explained in greater detail referring to the accompanying drawings, in which:
According to some of the subsequently described embodiments, the access to masked memory cells can be implemented and operated with increased efficiency, since the mask bit lines, which are present, are utilized for addressing memory cells. This may be achieved by only providing logically valid mask signals for a selected group of memory cells affecting only the memory cell which are to be accessed. The remaining memory cells are provided with logically invalid mask signals, i.e. with mask signals, having equal logical states applied to both bit lines used for the provision of the masked signal ([0,0] or [1,1]). This may, as detailed in
However, according to this embodiment, the column to be accessed is also selected within the access cycle, utilizing the mask bit lines, such that the masked memory cell array does no longer deliver the content of all columns associated to the selected row, but only of the particular columns indicated by the least significant bits of the memory address. That is, some bit lines carrying data of all columns to mask bit line block 850 of
To this end, an embodiment of the masked bit line readout circuitry 900 allowing to select only those memory cells which are to be accessed (i.e. those memory cells indicated by the relevant least significant bits of the memory address) requires an LSB address decoder to identify the columns to be addressed. It furthermore requires a masked-bit-line “Muxor”, being a circuitry selecting the column to be accessed while suppressing information of the columns, which are not to be accessed. Furthermore, a data latch may be implemented, to provide the masked data 910 stored within the memory cell to be accessed, potentially already converted to a single rail signal.
One embodiment providing the feature of internally selecting and multiplexing the columns of the memory array, will be described in more detail for the exemplary circuitry of
Furthermore, a full dual-rail implementation is assumed, such that four masked bit-line pairs 930 are connected to the masked bit-line Muxor 940, implementing, as detailed in
Although the subsequent discussion will describe one particular embodiment with full dual-rail logic, i.e. having a complementary bit-line pair, the masked bit-line periphery subsequently described may also be used in an implementation having single-rail logic, i.e. only one bit line for each column.
In
The respective four-bit-wide complementary bit lines are connected to the respective masked bit-line Muxor 940 comprising masked bit-line periphery 941 and wired OR circuitry 942. As detailed in
In this particular embodiment, while precharging, the bit lines are connected to the referenced potential VDD. At the end of the bit lines, the wired OR circuitry 942 comprises a plurality of inverters 942a and 942b drive pull-down transistors 944a and 944b (please note that due to the high symmetry, only one particular embodiment, i.e. one particular bit-line pair is discussed here). That is, while a bit line is low, the pull-down transistor 944a or 944b switches a precharged dual-rail data output (mD and mDq) from VDD to ground, such that their respective potentials are pulled down from a state representing a logical “1” to a state representing a logical “0”.
With this respect, it may be noted that in the herein described figures, the positive supply potential VDD is associated to the logical “high state”. However, in alternative embodiments, it is, of course, also possible to associate the negative supply potential VSS (in the embodiments detailed in the figures, the negative supply potential VSS is the ground potential).
However, switching such circuitry in parallel for all bit lines implements a so-called wired-Or-Network. The wired-OR multiplexing network of
In order to achieve the scenario of having only one bit-line pair being in a valid state (i.e. a state defined by complementary signals at either bit lines), the mask bit lines, which are for the sake of clarity not shown in
That is:
mask_blj<3:0>=enBl<j>mask_bl<3:0>,
maskq_blj<3:0>=enBl<j>maskq_bl<3:0>, j=3 . . . 0,
wherein enBl<j> is the decoded column address (one-out-of-four address), which can be provided according to the following formula:
enBl<3>=enAd(mAdr—lsb<1>Γmask—lsb<1>)·(mAdr—lsb<0>Γmask—lsb<0>),
enBl<2>=enAd(mAdr—lsb<1>Γmask—lsb<1>)·(
enBl<1>=enAd(
enBl<0>=enAd(
wherein enAd is an externally provided enable signal, switching the address decoder on (when enAd=1). That is, when enAd=1, precisely one of the enBl<j>=1, whereas the remaining column-specific enable signals are 0. If this is the case, only one of the four possible mask-bit-line pairs
mask_blj<3:0>, mask_bl_j<3:0>,
becomes logically valid, i.e. is set to complementary logical states. The remaining mask bit lines have an unaltered state, i.e. they remain in their respective precharge condition, that is in (0,0).
Consequently, the respective masking transistors (see, for example, transistors 180 and 190 of
mask_bl_msb<3>=mask_bl—3<3>,
mask_bl_msb<2>=mask_bl—2<3>,
mask_bl_msb<1>=mask_bl—1<3>,
mask_bl_msb<0>=mask_bl—0<3>,
mask_bl_msb−1<3>=mask_bl—3<2>,
mask_bl_msb−1<2>=mask_bl—2<2>,
mask_bl_msb−1<1>=mask_bl—1<2>,
mask_bl_msb−1<0>=mask_bl—0<2>,
mask_bl_lsb+1<3>=mask_bl—3<1>,
mask_bl_lsb+1<2>=mask_bl—2<1>,
mask_bl_lsb+1<1>=mask_bl—1<1>,
mask_bl_lsb+1<0>=mask_bl—0<1>,
mask_bl_lsb<3>=mask_bl—3<0>,
mask_bl_lsb<2>=mask_bl—2<0>,
mask_bl_lsb<1>=mask_bl—1<0>,
mask_bl_lsb<0>=mask_bl—0<0>,
One particular example shall illustrate the possibility to only select one particular bit-line output by providing only mask signals for the respective column.
It is assumed, that the decoding of the LSB-address (and thus column to be accessed) results in:
enBL<3:0>=(0,0,1,0),
and the respective bit-line masks also provided to the mask bit-line periphery circuitry 900 may be defined as follows:
mask_bl<3:0>=(m3,m2,m1,m0),
maskq_bl<3:0>=(m3q,m2q,m1q,m0q), with mjq=not(mj).
Thus, only the respective mask bit lines of single sub-arrays are provided with the externally provided mask:
mask_bl_msb<3>=0,
mask_bl_msb<2>=0,
mask_bl_msb<1>=mask_bl—1<3>=m3,
mask_bl_msb<0>=0
mask_bl_msb−1<3>=0,
mask_bl_msb−1<2>=0,
mask_bl_msb−1<1>=mask_bl—1<2>=m2,
mask_bl_msb−1<0>=0,
mask_bl_lsb+1<3>=0,
mask_bl_lsb+1<2>=0,
mask_bl_lsb+1<1>=mask_bl—1<1>=m1,
mask_bl_lsb+1<0>=0,
mask_bl_lsb<3>=0,
mask_bl_lsb<2>=0,
mask_bl_lsb<1>=mask_bl—1<0>=m0,
mask_bl_lsb<0>=0,
and
maskq_bl_msb<3>=0,
maskq_bl_msb<2>=0,
maskq_bl_msb<1>=0, maskq_bl—1<3>=m3q,
maskq_bl_msb<0>=0,
maskq_bl_msb−1<3>=0,
maskq_bl_msb−1<2>=0,
maskq_bl_msb−1<1>=maskq_bl—1<2>=m2q,
maskq_bl_msb−1<0>=0,
maskq_bl_lsb+1<3>=0,
maskq_bl_lsb+1<2>=0,
maskq_bl_lsb+1<1>=maskq_bl—1<1>=m1q,
maskq_bl_lsb+1<0>=0,
maskq_bl_lsb<3>=0,
maskq_bl_lsb<2>=0,
maskq_bl_lsb<1>=maskq_bl—1<0>=m0q,
maskqk_bl_lsb<0>=0,
Summarizing in short, in each of the four-bit-wide memory sub-arrays 940a to 940d, the bit-line-pair corresponding to the memory cell to be accessed is selected via the mask-signal bit lines. Such, only the corresponding bit line (bl<1>, blq<1>) in the particular example previously described, carries a logically valid state, which is defined by the particular memory cell to be accessed.
This may lead to a significant reduction in required circuitry elements and/or signal lines in particular memory implementations. Furthermore, signal run times and/or the overall power consumption may be reduced, since only the particular bit- and mask-bit lines need to be charged, which carry or the addressed information. As for to the above example with four columns, the precharge and recharge of three bit lines may be saved.
One particular example of a LSB-decoder for selecting the respective column, that is for providing a valid mask signal (being composed of two complementary logical states) to the particular column of interest, is shown in
Upon receipt of a global enable signal enad 960, which enables a decision circuit 970 to provide an enable signal at its output 975 indicating whether the mask signal bit lines associated to the address decoder correspond to the column to be addressed, the enable signal is generated. To this end, the mask-address decoder receives the masked address (a0 and a1) together with the corresponding address mask (m0 and m1), such as to decide whether the column in question, i.e. the column to which the mask-address decoder is associated, is the column to be accessed. To this end, the decision circuit 970 performs the following calculation:
As a result, the decision circuit 970 generates an enable signal 975 (enBL), which is logically high, when the column to which the mask-address decoder is associated corresponds to the column to be accessed. In that particular case only, the two AND-gates 980a and 980b forward the mask signal (array mask signals m_i<3:0 and mq_i<3:0>) to the respective mask-signal output 995 of the mask address decoder. Thus, only the mask bit lines, which correspond to the column to be accessed are brought into a logically valid state.
When being able to selectively use the mask bit lines of a memory cell array of the masked memory cells, by, for example, implementing the previous access logic, one may furthermore save semiconductor area using memory cells organized or layouted in accordance with the embodiment of
In other words,
The array of masked memory cells further comprises a word line for enabling access to multiple memory cells, each of the multiple memory cells associated to a different column of the memory array.
The array of masked memory cells further comprises a pair of mask-signal bit lines for each column, adapted to provide the binary mask signal to each mask memory cell within one column.
The array of masked memory cells may comprise ROM cells or RAM cells.
Utilizing a memory arrangement as described in
However, the area and number of circuitry elements required by masked memories may be further reduced, irrespective of the capability of selectively using the masked bit lines.
For example,
One may define a convention, determining which state is to be assumed as logically high, for example according to the following table:
bl=0 with (m,mq)=(0,1) for a cell programmed to “0”;
bl=1 with (m,mq)=(1,0) for a cell programmed to “0”;
bl=1 with (m,mq)=(0,1) for a cell programmed to “1”;
bl=0 with (m,mq)=(1,0) for a cell programmed to “1”.
Thus, the memory cell 1110 having a reduced number of circuit elements, represents a logical “0”, whereas the other illustrated memory cell having a gate terminal of the masking transistor coupled to mask bit line 1102a represents a logical “1”. Using the masked memory cell of
In other words,
In other words,
However, memory cell 1300 differs from the previously discussed memory cells in that a precharge state of the mask bit lines 1102a and 1102b prior to an access to the memory cell is to be (1,1). The precharge state of the bit line is, however, still (1). Thus, masked logical values can be stored utilizing only one single transistor, still implementing the high security feature of masked signal transport.
In other words,
Using the embodiment of
This normally does not only mean a reduction in semiconductor area but may also lead to a decrease in signal run-times and energy consumption of the cells. It may be emphasized that in order to provide an even more efficient implementation, the embodiments implementing the integrated multiplexing (according to, for example,
In other words,
Embodiments implementing the memory cells illustrated in
It may be noted, that, using the previous convention, a logically “0” programmed masked memory cell of the embodiments of
bl<-m
whereas a logically “1” programmed memory cell may be characterized by:
bl<-mq.
In short, the maskable memory cells of
a first and a second input for a binary mask signal, wherein the maskable memory cell is capable of being accessed, so as to output, depending on the binary mask signal, a first binary value or a second binary value at its bit-line output.
These maskable memory cells are configured to accept a pair of complementary logical signals as a valid mask signal.
Although the embodiments previously discussed are implemented using particular FETs and corresponding voltage levels together with a particular convention, as to what state is to be interpreted as a logical “1” and “0”, further embodiments are, of course, not restricted to those presumptions. In particular, the mapping between the physical states and the corresponding logical states may be chosen differently.
Furthermore, the technology implementing the embodiments and the switching elements previously discussed are not restricted to one particular implementation. Instead, further active switching elements may be used, such as, for example, n-channel or p-channel FETs, bipolar transistors or other switching elements. The logical elements previously described are not restricted to a specific implementation. Instead, an inverter, OR- or XOR- or AND-gates, or XOR-functionalities may be implemented in differing technologies and circuitry, yielding the same results.
Furthermore, particular examples or techniques previously discussed may be combined in order to increase the efficiency of the implementation.
Depending on certain implementation requirements, further embodiments can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, in particular a disk, DVD or a CD having electronically readable control signals stored thereon, which cooperate with a programmable computer system such that embodiments of the methods are performed. Generally, some embodiments can, therefore, be a computer program product with a program code stored on a machine readable carrier, the program code being operative for performing the embodiments when the computer program product runs on a computer. In other words, some embodiments are, therefore, a computer program having a program code for performing at least one of the methods when the computer program runs on a computer.
While the foregoing has been particularly shown and described with reference to particular embodiments thereof, it will be understood by those skilled in the art that various other changes in the form and details may be made without departing from the spirit and scope thereof. It is to be understood that various changes may be made in adapting to different embodiments without departing from the broader concepts disclosed herein and comprehended by the claims that follow.
Claims
1. A method for operating a plurality of masked memory cells organized in at least two groups, each group using an individual mask signal, the method comprising:
- providing a logically valid mask signal for a selected group comprising a memory cell to be accessed; and
- providing a logically invalid mask signal for all groups other than the selected group.
2. The method for operating a plurality of masked memory cells in accordance with claim 1, further comprising:
- providing a signal comprising two logically complementary sub-signals as the logically valid mask signal; and
- providing a signal comprising two logically identical sub-signals as the logically invalid mask signal.
3. The method in accordance with claim 1, further comprising:
- applying the logically valid mask signal to a mask bit line pair associated with the selected group; and
- applying the logically invalid mask signal to further mask bit line pairs associated with all groups other than the selected group.
4. An apparatus for operating a plurality of masked memory cells organized in at least two groups, each group using an individual mask signal, the apparatus comprising:
- a mask signal generator configured to provide a logically valid mask signal for a selected group comprising a memory cell to be accessed, and to provide a logically invalid mask signal for all groups other than the selected group.
5. The apparatus in accordance with claim 4, wherein the mask-signal generator is adapted to provide a signal comprising two logically complementary sub-signals as the logically valid mask signal and to provide a signal comprising two logically identical sub-signals as the logically invalid mask signal.
6. The apparatus in accordance with claim 4, further comprising a mask bit-line interface, adapted to apply the logical valid mask signal to a mask bit line pair associated with the selected group, and adapted to apply the logically invalid mask signal to further mask bit line pairs associated with all groups other than the selected group.
7. A masked address decoder associated with mask signal bit lines of a column of masked memory cells of a memory cell array adapted to provide a mask signal for the mask signal bit lines, the mask address decoder comprising:
- an input interface adapted to receive an array mask signal for the memory cell array and a column-address signal indicative of a column of the array to be accessed;
- a decision circuit adapted to generate, using the column-address signal, an enable signal indicating whether the mask signal bit lines correspond to the column to be accessed; and
- a mask signal interface adapted to use the array mask signal as a mask signal at the presence of an enable signal indicating the correspondence of the mask signal bit lines and the column to be accessed.
8. The masked address decoder in accordance with claim 7, wherein the input interface is adapted to receive an array mask signal comprising two sub signals, each of one of two possible logical states.
9. The masked address decoder in accordance with claim 8, wherein the decision circuit is adapted to use the array mask signal and to generate an enable signal indicating the correspondence of the mask signal bit lines and the column to be accessed only when the array mask signal comprises two logically complementary sub signals.
10. The masked address decoder in accordance with claim 9, wherein the decision circuit is operative to generate an enable signal of a logical “high” state, when the mask signal bit lines correspond to the column to be accessed, and wherein the mask signal generator is adapted to generate the mask signal performing a logical “AND” operation using the enable signal and the array mask signal as inputs.
11. The masked address decoder in accordance with claim 7, further comprising an output interface adapted to apply the mask signal to the mask signal bit lines.
12. A method for providing a mask signal for mask signal bit lines of a column of masked memory cells of a memory cell array, comprising:
- receiving an array mask signal for the memory cell array and a column-address signal indicative of a column of the array to be accessed;
- generating, using the column-address signal, an enable signal indicating whether the mask signal bit lines correspond to the column to be accessed; and
- using the array mask signal as a mask signal at the presence of an enable signal indicating the correspondence of the mask signal bit lines and the column to be accessed.
13. The method in accordance with claim 12, wherein an array mask signal comprising two sub signals, each of one of two possible logical states, is received.
14. The method in accordance with claim 13, wherein an enable signal indicating the correspondence of the mask signal bit lines and the column to be accessed is generated only when the array mask signal comprises two logically complementary sub signals.
15. The method in accordance with claim 14, wherein an enable signal having a logical “high” state is generated when the mask signal bit lines correspond to the column to be accessed, and wherein the mask signal is generated forming a logical “AND” operation using the enable signal and the array mask signal as inputs.
16. The method in accordance with claim 12, further comprising applying the mask signal to the mask signal bit lines of a column of a memory array.
17. A controller for controlling access to masked memory cells organized in at least two groups, each group using an individual mask signal, comprising:
- means for providing a logically valid mask signal for a selected group comprising a memory cell to be accessed; and
- means for providing logically invalid mask signals for all groups other than the selected group.
18. The controller for controlling access to masked memory cells in accordance with claim 17, wherein the means for providing mask signals is adapted to provide a signal comprising two logically complementary sub-signals as the logically valid mask signal and a signal comprising two logically identical sub-signals as the logically invalid mask signal.
19. The controller for controlling access to masked memory cells in accordance with claim 17, further comprising:
- means for applying the logically valid mask signal for the selected group to mask bit lines associated with the selected group; and
- means for applying the logically invalid mask signal to mask bit lines associated with all groups other than the selected group.
Type: Application
Filed: Apr 21, 2008
Publication Date: Oct 22, 2009
Patent Grant number: 7826299
Applicant: INFINEON TECHNOLOGIES AG (Neubiberg)
Inventors: Thomas KUENEMUND (Munich), Artur WROBLEWSKI (Munich)
Application Number: 12/106,931
International Classification: G11C 8/10 (20060101); H04K 1/00 (20060101); G11C 8/00 (20060101);