DETAILED ACTION
Response to Amendment
Claims 1-20 are pending.
Response to Arguments
Applicant’s arguments filed 03/18/2026 have been fully considered.
The objection to claim 9 has been withdrawn in view of the amendment.
The rejections of claims 10-20 under 35 U.S.C. 112 have been withdrawn in view of the amendment.
Regarding the rejection of claim 1 under 35 U.S.C. 103 as being unpatentable over Shiota et al. (US20150156021A1) in view of Gueta (US20240249757A1), Applicants argue on page 12 that that neither Shiota nor Gueta teach or suggest "configuring the number of memory cells to be read only."
Applicants’ arguments are persuasive. In view of the amendment and after further search and consideration, claim 1 is rejected under 35 U.S.C. 103 as being unpatentable over Shiota in view of Gueta and Chang et al. (US20250105173A1, also Provisional application No. 63/584,220, filed on Sep. 21, 2023), wherein Chang is relied upon to disclose "configuring the number of memory cells to be read only" as discussed below.
Regarding the rejection of claim 5 under 35 U.S.C. 103 as being unpatentable over Shiota in view of Gueta, further in view of Gebara et al. (US8495431B2), firstly, applicants note on page 13 that Vdd refers to a positive supply voltage in circuits using field effect transistors (FETs), while (Vt) is the minimum gate-to-source (Vgs) voltage needed to create a conducting path through transistor between the source and drain terminals. Next, applicants argue on page 14 that Gebara fails to teach or suggest: 1) determining an upper threshold voltage (VT +Δ); 2) determining a lower threshold voltage (VT -Δ); or 3) performing at least two successive bitmap readouts of the number of allocated memory cells, including one at VT +Δ and one at VT -Δ.
Applicant’s arguments are persuasive. Claims 5-6, 13-15 and 19-20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Regarding independent claims 10 and 20, in view of the amendments and after further search and consideration, claims 10 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Shiota in view of Gueta and Chang under the same rationale as independent claim 1.
As to any argument not specifically addressed, they are the same as those discussed above.
Claim Objections
Claims 11 and 17 are objected to because of the following informalities: Claims 11 and 17 recite “to regenerate the PUF to identity the memory device”. Appropriate correction is required.
For the purpose of examination claims 11 and 17 are interpreted as requiring “to regenerate the PUF to identify the memory device.”
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-3, 7-11 and 16-17 are rejected under 35 U.S.C. 103 as being unpatentable over Shiota et al. (US20150156021A1) in view of Gueta (US20240249757A1) and Chang et al. (US20250105173A1, also Provisional application No. 63/584,220, filed on Sep. 21, 2023).
Regarding claim 1, Shiota discloses a method comprising (para [0059] shows PUF (Physical Unclonable Function) is a technique that generates unique codes for the respective ICs and further makes the ICs unclonable):
perform a plurality of read operations to generate a plurality of Binary Entropy Strings [unique code UC(a)], each comprising a plurality of binary bits (para [0062] shows the unique code UC(a) generated in the unique code generation unit 11 contains three types of bits: (1) bits with a stable value, (2) bits with high variability (i.e. bits with a relatively large variation in value) and (3) bits with low variability (i.e. bits with a relatively small variation in value); para [0062] shows the unique code UC(a) has different values each time generated depending on external factors such as temperature and voltage; para [0069] shows in order to extract a bit with high variability contained in the unique code UC( a), reading of the unique code UC(a) is performed a plurality of times);
identifying a number of unstable bits [bit with high variability] in the plurality of Binary Entropy Strings (para [0062] shows the unique code UC(a) has different values each time generated; para [0063] shows the bit with high variability can be found; para [0069] shows in order to extract a bit with high variability contained in the unique code UC(a) read from the unique code generation unit 11, reading of the unique code UC(a) is performed a plurality of times);
generating a mask associated with the number of unstable bits, the mask operable to cause the number of unstable bits to be ignored on subsequent bitmap readouts (para [0063] shows the bit with high variability can be found; mask data to mask the bit with high variability can be created. By masking the unique code UC(a) using the mask data, the bit with high variability contained in the unique code UC(a) can be eliminated. Because the position of the bit with high variability differs from device to device, the mask data is data unique to the semiconductor device);
mathematically combining the mask and one of the plurality of Binary Entropy Strings [unique code UC(a)] from one of the plurality of bitmap readouts to generate a Physical Unclonable Function (PUF) [masked unique code UC(a)′] comprising a Binary String of stable bits [bits with a stable value and bits with low variability] (para [0063] shows mask data to mask the bit with high variability can be created. By masking the unique code UC(a) generated in the unique code generation unit 11 using the mask data, the bit with high variability contained in the unique code UC(a) can be eliminated; para [0188] shows this technique is called PUF (Physical Unclonable Function), and it is a technique that generates unique codes for the respective ICs and further makes the ICs unclonable; para [0202] shows the masked unique code UC(a)′ (i.e. the unique code containing bits with a stable value and bits with low variability));
executing an error correcting algorithm on the Binary String of stable bits [masked unique code UC(a)′] to generate Error Correction Code (ECC) data (para [0156] shows the correction data generation unit 132 masks the unique code UC(a) using the mask data generated in Step S62 and eliminates the bit with high variability. It then generates an ECC code for correcting the error of the masked unique code UC(a)′ (i.e. the unique code containing bits with a stable value and bits with low variability) (Step S63). The ECC code is BCH code or Reed-Solomon code, for example); and
storing the mask and ECC data in the memory device (para [0157] shows the mask code, the ECC code are stored in the storage unit 12.)
Shiota fails to show:
allocating a number of memory cells in a memory device;
configuring the number of memory cells to be read only;
perform a plurality of read operations to generate bitmap readouts of the number of allocated memory cells at a median of a native threshold voltages (VT) distribution of the number of allocated memory cells;
generating a mask of memory cell addresses associated with the number of unstable bits, the mask operable to cause the number of unstable bits to be ignored on subsequent bitmap readouts of the number of allocated memory cells.
However Gueta, in an analogous art (para [0002] shows Physical unclonable functions (PUFs) are unique physical features or elements of a semiconductor device, such as, for example, a non-volatile memory device), discloses:
allocating a number of memory cells in a memory device (para [0005] shows in order to generate the true random number using PUF, an identified page of a memory die of the non-volatile memory may be programmed or erased such that all (or substantially all) of the memory cells of the page are in the same state);
perform a plurality of read operations to generate bitmap readouts of the number of allocated memory cells at a median [approximately fifty percent] of a native threshold voltages (VT) distribution of the number of allocated memory cells ([Abstract] shows a soft sense or soft read operation applies various different read threshold voltages to the memory cells until approximately half of the memory cells of the identified page are read as being in one state while the approximately other half of the memory cells of the identified page are read as being in another state; para [0005] shows once the identified page has either been programmed or erased, a read threshold voltage is determined (e.g., using a trial and error method approach or a brute force approach) that causes approximately half (e.g., approximately fifty percent) of the memory cells of the identified page to be read as one state while the approximately other half of the memory cells of the identified page are read as another state-regardless of whether the memory cells associated with the identified page were initially in an erased state or programmed state); and
bitmap readouts of the number of allocated memory cells (para [0005] shows the identified page may then be read or sensed using the determined read threshold voltage. Raw data, which represents a true random number, is then provided to a controller or other requesting computing device).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the teaching of Shiota with the teaching of Gueta in order for a semiconductor device to generate a unique identifier or random number without requiring extra circuitry and without subsequently storing the unique identifier or random number (Gueta; para [0004]).
Shiota-Gueta as combined fails to teach configuring the number of memory cells to be read only.
However, Chang discloses configuring the number of memory cells to be read only [e.g., blown fuse] (para [0009] shows generating a physically unclonable function (PUF) bit based on the memory array; para [0025] shows the memory array 102 includes a plurality of memory cells (or otherwise storage units) 103. The memory array 102 includes a number of rows, each of the rows may include a corresponding word line (WL); para [0031] shows the efuse memory cells 103A and 103B are coupled to WL0 disposed in row R0, and the efuse memory cells 103C and 103D are coupled to WL1 disposed in row R1; para [0082] shows in the programming process, the memory cell 103 is configured to randomly present a first logic state (e.g., logic 1) when the first fuse resistor 310 is blown, or a second logic state (e.g., logic 0) when the second fuse resistor 320 is blown. As such, either the first logic state or the second logic state functions as a bit (logic 1 or logic 0) of a PUF signature for the memory cell 103, and thus a bit of the PUF signature for the memory cell 103 is generated.)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the teaching of Shiota-Gueta with the teaching of Chang in order to randomly generate the logic state (i.e., the PUF bit), which advantageously increases security of the memory system since the logic state is randomly determined based on the process variations of the pair of fuse resistors (Chang; para [0057]).
Regarding claim 2, Shiota-Gueta-Chang as applied to claim 1 discloses identifying the number of unstable bits comprises comparing the plurality of Binary Entropy Strings and identifying as an unstable bit any bit read from an allocated memory cell that has a binary value different from that in a preceding bitmap readout (Shiota; para [0062] shows the unique code UC(a) contains three types of bits: (1) bits with a stable value, (2) bits with high variability (i.e. bits with a relatively large variation in value) and (3) bits with low variability (i.e. bits with a relatively small variation in value); para [0069] shows in order to extract a bit with high variability contained in the unique code UC(a) read from the unique code generation unit 11, reading of the unique code UC(a) is performed a plurality of times. Gueta; para [0005] shows once the identified page has either been programmed or erased, a read threshold voltage is determined (e.g., using a trial and error method approach or a brute force approach) that causes approximately half (e.g., approximately fifty percent) of the memory cells of the identified page to be read as one state while the approximately other half of the memory cells of the identified page are read as another state-regardless of whether the memory cells associated with the identified page were initially in an erased state or programmed state.)
Regarding claim 3, Shiota-Gueta-Chang as applied to claim 2 discloses performing the plurality of bitmap readouts comprises performing a predetermined number of bitmap readouts (Gueta; para [0005] shows once the identified page has either been programmed or erased, a read threshold voltage is determined (e.g., using a trial and error method approach or a brute force approach) that causes approximately half (e.g., approximately fifty percent) of the memory cells of the identified page to be read as one state while the approximately other half of the memory cells of the identified page are read as another state-regardless of whether the memory cells associated with the identified page were initially in an erased state or programmed state.)
Regarding claim 7, Shiota-Gueta-Chang as applied to claim 1 discloses generating the mask comprises generating a mask string comprising a plurality of binary bits, equal to a number of the plurality of bits in the plurality of Binary Entropy Strings [unique code UC(a)] (Shiota; para [0062] shows the unique code UC(a) generated in the unique code generation unit 11 contains three types of bits: (1) bits with a stable value, (2) bits with high variability (i.e. bits with a relatively large variation in value) and (3) bits with low variability (i.e. bits with a relatively small variation in value; para [0063] shows the bit with high variability can be found; mask data to mask the bit with high variability can be created. By masking the unique code UC(a) generated in the unique code generation unit 11 using the mask data, the bit with high variability contained in the unique code UC(a) can be eliminated),
wherein the binary bits in the mask string corresponding to the number of unstable bits are set to ‘0’, and wherein mathematically combining the mask and one of the plurality of Binary Entropy Strings comprises multiplying the binary bits of the mask string with corresponding bits in the Binary Entropy String (Shiota; para [0066] shows the mask data is data for masking a bit with a high error rate having a variable bit value among the bits of the unique code UC(a). In the example shown in FIG. 4, because the error rate of the first bit and the sixth bit of the unique code UC(a) is high, the mask data is “0”. Because the other bits are bits with a low error rate or bits with a stable value, the mask data is “1”. In other words, the mask data for the bit that needs to be masked is “0”, and the mask data for the bit that does not need to be masked is “1”. By masking the unique code UC(a) using the mask data, masked unique code UC(a)′ in which the first bit and the sixth bit of the unique code UC(a) are eliminated can be obtained.)
Regarding claim 8, Shiota-Gueta-Chang as applied to claim 1 discloses determining that the number of unstable bits is less than a first predetermined number, and the PUF comprises a Binary String of stable bits of a second predetermined number or more (Gueta; para [0027-0028] shows the read threshold voltage is a read voltage or a sense voltage that, when applied to the memory cells of the identified page during a soft read operation or a soft sensing operation, causes approximately forty-nine percent of the memory cells of the identified page to be read as having the opposite state (e.g., read as “0” when the actual value of a particular memory cell is “1”).)
Regarding claim 9, Shiota-Gueta-Chang as applied to claim 1 discloses regenerating the PUF to identity the memory device to a host processing system, wherein said regenerating [ICa (210) and ICz generate the common key CK(a) based on the same rule] includes (Shiota; para [0008] shows it is necessary to verify whether the semiconductor device is a proper semiconductor device; para [0059] shows the unique code generation unit 11 generates a unique code (first unique code) UC(a) having a value unique to the semiconductor device 10 and containing a random error and outputs it to the common key generation unit 13. This technique is called PUF (Physical Unclonable Function), and it is a technique that generates unique codes for the respective ICs and further makes the ICs unclonable; para [0061] shows the common key generation unit 13 generates the common key CK(a) using the unique code UC(a) output from the unique code generation unit 11 and the correction data CD(a) stored in the storage unit 12; para [0212] shows it is thus guaranteed that the semiconductor device ICa (210) and the semiconductor device ICz (220) generate the common key CK(a) based on the same rule, so that the security to add the semiconductor device ICz (220) to the secure network including the semiconductor device ICa (210) is guaranteed):
performing a subsequent bitmap readout of the allocated memory cells after storing the mask and ECC data in the memory device (para [0199] shows the mask code, the ECC code and the operation parameter contained in the correction data CD(a); para [0157] shows the mask code, the ECC code are stored in the storage unit 12; para [0077] shows the semiconductor device 10 using the correction data CD(a) stored in the storage unit 12; para [0069] shows reading of the unique code UC(a) is performed);
mathematically combining the Binary Entropy String resulting from the subsequent bitmap readout with the stored mask to regenerate the PUF (para [0061] shows the common key generation unit 13 using the unique code UC(a) output and the correction data CD(a) stored in the storage unit 12; para [0063] shows by masking the unique code UC(a) using the mask data, the bit with high variability contained in the unique code UC(a) can be eliminated); and
identifying and correcting any changed bits in the regenerated PUF using the ECC data (para [0067] shows using the ECC code (error correction code) contained in the correction data CD(a), the common key generation unit 13 makes a correction to remove the error of the bit with a low degree of variability contained in the masked unique code UC(a)′, thereby obtaining a unique code UC(a)″.)
Regarding claims 10-11, claims 10-11 are directed to a memory device. Claims 10-11 require limitations that are similar to those recited in the method claims 1 and 9 to carry out the method steps. And since the references of Shiota-Gueta-Chang combined teach the method including limitations required to carry out the method steps, therefore claims 10-11 would have also been obvious in view of the method disclosed in Shiota-Gueta-Chang combined.
Furthermore, Shiota-Gueta-Chang as combined discloses an array of memory cells including a number of memory cells allocated for generating a Physical Unclonable Function (PUF) (Gueta; para [0005]); and a microcontroller (Shiota; para [0087]).
Regarding claims 16-17, claims 16-17 are system claims. These system claims require limitations that are similar to those recited in the method claims 1 and 9 to carry out the method steps. And since the references of Shiota-Gueta-Chang combined teach the method including limitations required to carry out the method steps, therefore claims 16-17 would have also been obvious in view of the method disclosed in Shiota-Gueta-Chang combined.
Furthermore, Shiota-Gueta-Chang as combined discloses a secure memory device (Shiota; para [0189]), and a microcontroller (Shiota; para [0087]); and a host processing system including a processor, memory and an interface operable to communicate with the secure memory device (Chang; para [0035]).
Claims 4, 12 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Shiota in view of Gueta and Chang, further in view of Gebara et al. (US8495431B2).
Regarding claims 4, 12 and 18, Shiota-Gueta-Chang as applied to claims 1, 10 and 16 discloses the unique code UC(a) containing bit values that vary depending on external factors during generation of the unique code, such as temperature and voltage (Shiota; para [0062]), but fails to teach:
performing the plurality of bitmap readouts comprises performing at least a first number of bitmap readouts at a first temperature and a second number of bitmap readouts at a second temperature, wherein the first and second temperatures are different.
However, Gebara discloses performing the plurality of bitmap readouts comprises performing at least a first number of bitmap readouts at a first temperature and a second number of bitmap readouts at a second temperature, wherein the first and second temperatures are different ([Abstract] shows a method for generating device fingerprints uses initial states of internal storage cells; [col 2 lines 63-65] shows the identifier may be generated as a bit string having fields corresponding to pairs of values for each cell; Claim 3 shows the repeating repeats the
reading for exactly two temperatures, a first temperature substantially near a lower operating temperature limit of the electronic device and a second temperature substantially near an upper operating temperature limit of the electronic device).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the teaching of Shiota-Gueta with the teaching of Gebara in order to collect the states of the static storage cells for multiple temperatures (Gebara; [col 2 lines 54-59]).
Allowable Subject Matter
Claims 5-6, 13-15 and 19-20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Gueta discloses in para [0005] a read threshold voltage is determined (e.g., using a trial and error method approach or a brute force approach) that causes approximately half (e.g., approximately fifty percent) of the memory cells of the identified page to be read as one state while the approximately other half of the memory cells of the identified page are read as another state-regardless of whether the memory cells associated with the identified page were initially in an erased state or programmed state. Gueta fails to teach claims 5-6, 13-15 and 19-20.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to TAN DOAN whose telephone number is (571)270-0162. The examiner can normally be reached Monday - Friday 8am - 5pm ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Oscar Louie can be reached at (571) 270-1684. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/TAN DOAN/Primary Examiner, Art Unit 2445