STORAGE DEVICE FOR GENERATING IDENTITY CODE AND IDENTITY CODE GENERATING METHOD
20220359016 · 2022-11-10
Inventors
Cpc classification
G11C2029/4002
PHYSICS
G06F21/73
PHYSICS
G11C16/3459
PHYSICS
G11C7/24
PHYSICS
H04L9/0866
ELECTRICITY
G11C16/102
PHYSICS
G11C2029/4402
PHYSICS
G11C2213/53
PHYSICS
G11C7/1006
PHYSICS
International classification
G11C16/34
PHYSICS
Abstract
A storage device for generating an identity code and an identity code generating method are disclosed. The storage device includes a first storage circuit, a second storage circuit and a reading circuit. The first storage circuit stores a plurality of first data and the first data have a plurality of bits. The second storage circuit stores a plurality of second data and the second data have a plurality of bits. The reading circuit reads the second data from the second storage circuit to form a first sequence, selects a first portion of the first data according to the first sequence, reads the first portion of the first data from the first storage circuit to form a target sequence and outputs the target sequence to serve as an identity code.
Claims
1. A storage device for generating an identity code, comprising: a first storage circuit for storing a plurality of first data, the first data having a plurality of bits; a second storage circuit for storing a plurality of second data, the second data having a plurality of bits; and a reading circuit for reading the second data from the second storage circuit to form a first sequence, selecting a first portion of the first data according to the first sequence, reading the first portion of the first data from the first storage circuit to form a target sequence, outputting the target sequence to serve as an identity code, wherein, logical values of the bits of the first data are randomly distributed, and logical values of the bits of the second data are pre-defined by a user or randomly distributed.
2. The storage device according to claim 1, wherein the first data further comprises a second portion, and the reading circuit discards error bits in the second portion of the first data.
3. The storage device according to claim 1, wherein, the logical values of the bits of the second data are pre-defined by the user, bits of logic value “1” of the first sequence are pre-defined by the user, and the reading circuit selects the first portion of the first data according to an address of the bits of logic value “1” of the first sequence.
4. The storage device according to claim 1, wherein, the logical values of the bits of the second data are re-programmed, the reading circuit reads the second data from the second storage circuit to form a re-programmed first sequence and re-selects a first portion of the first data according to the first sequence, and reads the re-selected first portion of the first data to form the target sequence.
5. The storage device according to claim 1, wherein, the logical values of the bits of the second data are randomly distributed, bits of logic value “1” of the first sequence are randomly distributed, and the reading circuit selects the first portion of the first data according to the address of the bits of logic value “1” of the first sequence.
6. A storage device for generating an identity code, comprising: a first storage circuit for storing a plurality of first data, the first data having a plurality of bits; a second storage circuit for storing a plurality of second data, the second data having a plurality of bits; and a reading circuit for reading the second data from the second storage circuit to form a first sequence, and simultaneously reading the first data from the first storage circuit to form a second sequence, the reading circuit further comprises: a processing circuit for simultaneously receiving the first sequence and the second sequence, selecting a first portion of the second sequence to form a target sequence according to the first sequence, and outputting the target sequence to serve as an identity code, wherein, logical values of the bits of the first data are randomly distributed, and logical values of the bits of the second data are pre-defined by a user or randomly distributed.
7. The storage device according to claim 6, wherein the second sequence further comprises a second portion, and the processing circuit discards error bits in the second portion of the second sequence.
8. The storage device according to claim 6, wherein, the logical values of the bits of the second data are pre-defined by the user, bits of logic value “1” of the first sequence are pre-defined by the user, and the processing circuit selects the first portion of the second sequence according to an address of the bits of logic value “1” of the first sequence.
9. The storage device according to claim 6, wherein, the logical values of the bits of the second data are re-programmed, the reading circuit reads the second data from the second storage circuit to form a re-programmed first sequence, the processing circuit re-selects a first portion of the second sequence according to the first sequence, the re-selected first portion of the second sequence forms the target sequence.
10. The storage device according to claim 6, wherein, the logical values of the bits of the second data are randomly distributed, bits of logic value “1” of the first sequence are randomly distributed, and the processing circuit selects the first portion of the second sequence according to the address of the bits of logic value “1” of the first sequence.
11. An identity code generating method, which is applied to a first storage circuit and a second storage circuit, the first storage circuit storing a plurality of first data, the second storage circuit storing a plurality of second data, the identity code generating method comprising: reading the second data from the second storage circuit to form a first sequence, wherein the second data have a plurality of bits, logic values of the bits are pre-defined by a user or randomly distributed; selecting a first portion of the first data according to the first sequence, wherein the first data have a plurality of bits, logic values of the bits are randomly distributed; reading the first portion of the first data from the first storage circuit to form a target sequence; and outputting the target sequence to serve as an identity code.
12. The identity code generating method according to claim 11, wherein, the first data further comprises a second portion, the identity code generating method further comprises: discarding error bits in the second portion of the first data.
13. The identity code generating method according to claim 11, further comprises: pre-defining the logical values of the bits of the second data, and making bits of logic value “1” of the first sequence pre-defined; and selecting the first portion of the first data according to an address of bits of logic value “1” of the first sequence.
14. The identity code generating method according to claim 11, further comprises: re-programming the logic values of the bits of the second data; reading the second data from the second storage circuit to form a re-programmed first sequence; re-selecting a first portion of the first data according to the first sequence; and reading the re-selected first portion of the first data to form the target sequence.
15. The identity code generating method according to claim 11, wherein, the logical values of the bits of the second data are randomly distributed, the identity code generating method further comprises: selecting the first portion of the first data according to the address of the bits of logic value “1” of the first sequence, wherein bits of logical value “1” of the first sequence are randomly distributed.
16. An identity code generating method, which is applied to a first storage circuit and a second storage circuit, the first storage circuit storing a plurality of first data, the second storage circuit storing a plurality of second data, the identity code generating method comprises: reading the second data from the second storage circuit to form a first sequence, wherein the second data have a plurality of bits, logic values of the bits are pre-defined by a user or randomly distributed; reading the first data from the first storage circuit to form a second sequence, wherein the first data have a plurality of bits, logic values of the bits are randomly distributed; transmitting the first sequence and the second sequence to a processing circuit simultaneously; selecting, using the processing circuit, a first portion of the second sequence according to the first sequence; and outputting the target sequence to serve as an identity code.
17. The identity code generating method according to claim 16, wherein, the second sequence further comprises a second portion, the identity code generating method further comprises: discarding error bits in the second portion of the second sequence.
18. The identity code generating method according to claim 16, further comprises: pre-defining the logical values of the bits of the second data, and making bits of logic value “1” of the first sequence pre-defined; and selecting the first portion of the second sequence according to an address of bits of logic value “1” of the first sequence.
19. The identity code generating method according to claim 16, further comprises: re-programming the logic values of the bits of the second data; reading the second data from the second storage circuit to form a re-programmed first sequence; re-selecting, using the processing circuit, a first portion of the second sequence according to the first sequence; and forming the re-selected first portion of the second sequence as the target sequence.
20. The identity code generating method according to claim 16, wherein, the logical values of the bits of the second data are randomly distributed, the identity code generating method further comprises: selecting the first portion of the second sequence, using the processing circuit, according to the address of the bits of logic value “1” of the first sequence, wherein bits of logical value “1” of the first sequence are randomly distributed.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022] In the following detailed description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed embodiments. It will be apparent, however, that one or more embodiments may be practiced without these specific details. In other instances, well-known structures and devices are schematically shown in order to simplify the drawing.
DETAILED DESCRIPTION
[0023]
[0024] More particularly,
[0025] On the other hand, the memory array 31 of the second storage circuit 30 refers to a programmable memory array. The logic values stored in memory cells of the memory array 31 can be programmed according to user's definition. The memory array 31 of the second storage circuit 30 may refer to a RAM array of a type of one transistor and one resistor (1T1R, 1Transistor+1Re).
[0026] Memory types of the first storage circuit 20 and the second storage circuit 30 may also include static random access memory (SRAM) or read-only memory (ROM), such as mask ROM, fuse ROM, and anti-fuse ROM. Or, may include high precision NVM, charge storage memory, floating gate memory (FG), charge trapping memory, Silicon-Oxide-Nitride-Oxide-Silicon memory (SONOS), variable resistive memory (ReRAM), phase change memory (PCM), magnetic resistive random access memory (MRAM), ferroelectric tunneling memory (FTJ) and Ferroelectric random access memory (FeRAM), etc.
[0027]
[0028] In contrast to the usage of the first data 104 as “information”, the second data 106 may serve as “address”. According to the address provided by the second data 106, the first portion of the first data 104 may be selected to form the final identity code 102. In the first storage device 10A of the first embodiment, the first data 104 may be stored in the first storage circuit 20, while the second data 106 may be stored in the second storage circuit 30. In other words, the first data 104 and the second data 106 are stored in different storage circuits, physically. The quantity of the second data 106 may be equal to that of the first data 104. The second data 106 may also include sixteen bits of binary logic values. The sixteen bits of the second data 106 may be {1,0,0,1,0,1,0,0,0,0,1,0,1,1,0,0}. Similarly, the second data 106 may be sequentially stored in 4×4 memory cells of the memory array 31 of the second storage circuit 30, in order. The sixteen bits of the second data 106 may correspond to the sixteen bits of the first data 104 in a manner of one-to-one correspondence. Logic “1” bits of the second data 106 may correspond to selected bits of the first data 104. On the other hand, the bits of the first data 104, which correspond to logic “0” bits of the second data 106, are not selected. The selected portion of the first data 104 may refer to “first portion”, and the un-selected portion of the first data 104 may refer to “second portion”.
[0029] In the operation of the storage device 10A of the first embodiment, the reading circuit 40 may read the second data 106 from the second storage circuit 30. The read-out second data 106 may form a first sequence A. The first sequence A may be expressed as {1,0,0,1,0,1,0,0,0,0,1,0,1,1,0,0}, and bits of logic value “1” in the first sequence A may serve as selecting addresses. Also referring to
[0030] Next, bits of the first portion of the first data 104 may be selected according to the bits of logic value “1” of the first sequence A. On the other hand, bits of the second portion of the first data 104, which correspond to addressed of bits of logic value “0” of the first sequence A, may be discarded and not selected. For example, bits of logic value “1” of the first sequence A are bits a1, a4, a6, a11, a13 and a14. Furthermore, bits b1, b4, b6, b11, b13 and b14 of the first portion of the first data 104 are selected, which correspond to address of the bits a1, a4, a6, a11, a13 and a14 of the first sequence A. Also referring to
[0031] Next, the reading circuit 40 may read bits b1, b4, b6, b11, b13 and b14 of the first portion of the first data 104 from the first storage circuit 20 to form a target sequence P. The target sequence P may be expressed as {1,1,0,1,0,1}, and the target sequence P may serve as the final identity code 102. Also referring to
[0032] In contrast to bits b1, b4, b6, b11, b13 and b14 of the selected first portion of the first data 104, on the other hand, the other bits b2, b3, b5, b7, b8, b9, b10, b12, b15, b16 of the second portion of the first data 104 may be discarded and not selected.
[0033] For the storage device 10A of the first embodiment, logic value stored in the second storage circuit 30 may be programed by user in advance, so as to pre-define bits of logic value “1” in the second data 106. In other words, the user may pre-define address to select which bits of the first data 104 and take these selected bits as the final identity code 102.
[0034] Variations may appear in the physical characteristics of the hardware components of the first storage circuit 20. For example, if the hardware components of the first storage circuit 20 are static random access memory, variations due to mismatch between NMOS transistors and PMOS transistors. If the hardware component of the first storage circuit 20 is a non-volatile memory (e.g., variable resistance memory, phase change memory or floating gate memory), the programming state of the memory is unpredictable. Based on the variations of the hardware components of the first storage circuit 20, logical value of each bit of the first data 104 stored in the first storage circuit 20 is randomly distributed, therefore the logical value of each bit of the first data 104 will not be the same as that of another storage device. Hence, the target sequence P={1,1,0,1,0,1} obtained by selecting the first portion of the first data 104 may achieve uniqueness and can serve as the identity code. The identity code 102 may be also expressed as {1,1,0,1,0,1}.
[0035] In an example of another aspect, referring to
[0036]
[0037] As shown in
[0038] On the other hand, as shown in
[0039] In the simulation settings related to
[0040]
[0041]
[0042] Moreover, the reading circuit 40 of the third embodiment further includes a processing circuit 41. The first data 104 and second data 106 may be simultaneously transmitted to the processing circuit 41 for performing calculation.
[0043] Next, referring to
[0044] Next, the first sequence A and the second sequence B are simultaneously transmitted to the processing circuit 41 to execute computation. This operation corresponds to the step 804 of the identity code generating method 800: transmitting the first sequence A and the second sequence B to the processing circuit 41 simultaneously.
[0045] In the processing circuit 41, bits of the first portion of the second sequence B are selected according to address of bits of logic value “1” of the first sequence A. On the other hand, bits of the second portion of the second sequence B correspond to bits of logic value “0” of the first sequence A, therefore the processing circuit 41 discards and not select bits of the second portion of the sequence B. As shown in
[0046] Next, the processing circuit 41 outputs the selected bits b1,b4,b6,b11,b13 and b14 of the first portion of the second sequence B to form the target sequence P. The target sequence P may be expressed as {1,1,0,1,0,1} to serve as the final identity code 102. This operation corresponds to step 808 of identity code generating method 800: outputting selected bits b1, b4, b6, b11, b13 and b14 of the first portion of the second sequence B to form the target sequence P, which serves as the final identity code 102.
[0047] As mentioned above, the operation of the storage device 10c of the third embodiment (corresponding to the identity code generating method 800 of the third embodiment) is different from the operation of the storage device 10A of the first embodiment (corresponding to the identity code generating method 700 of the first embodiment) in that: in the identity code generating method 700 of the first embodiment, the second data 106 is read from the second storage circuit 30 to form the first sequence A, thereafter, bits of the first portion of the first data 104 are selected according to address of bits of logic value “1” of the first sequence A. Then, selected bits of the first portion of the first data 104 are read from the first storage device 20, which serves as the final identity code 102. Unlike the first embodiment, in the identity code generating method 800 of the third embodiment, the second data 106 and the first data 104 are simultaneously read from the second storage circuit 30 and the first storage circuit 20, which form the first sequence A and the second sequence B. Thereafter, the first portion of the second sequence B is selected to be the final identity code 102.
[0048]
[0049]
[0050]
[0051] According to the technical solutions of the above-mentioned embodiments of the present disclosure, the first portion of the first data 104 is selected with the aid of the address provided by the first sequence A formed by the second data 106, so as to generate the final identity code 102. In addition, the second portion of the first data 104 is discarded, so that error bits in the second portion of the first data 104 may be tolerated, and hence uniqueness of the final identity code 102 may be further ensured. The first sequence A formed by the second data 106 can be pre-defined by the user or randomly distributed, and furthermore, the second sequence can also be re-programmed and re-defined by the user during process, so that coding mechanism of the identity code 102 may be more flexible, and uniqueness of the identity code 102 may be ensured. The above refers to technical effects achieved by the technical solution of the present disclosure.
[0052] It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed embodiments. It is intended that the specification and examples be considered as exemplary only, with a true scope of the disclosure being indicated by the following claims and their equivalents.