DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
The text of those sections of Title 35, U.S. Code not included in this action can be found in a prior Office action.
This Action is in response to communications filed 01/21/2026.
Claims 1, 9, and 17 have been amended.
Claims 1-6, 8-14, 16-22, and 24 are pending.
Claims 1-6, 8-14, 16-22, and 24 are rejected.
Response to Amendment
In the Remarks filed 01/21/2026, Applicant has amended:
The language of claims 1, 9, and 17 to address a grammar issue with a limitation within the claims. The Examiner therefore withdraws the corresponding objections made in the Office action dated 11/17/2025.
Response to Arguments
In Remarks filed on 01/21/2026, Applicant substantially argues:
On Pages 11-14, the applied references, in particular Ravimohan and Asano, fail to disclose the amended limitations of claim 1, and similarly amended claims 9 and 17, regarding only tracking the amount of data belonging to a particular logical range within a given physical storage region where the given physical storage region further contains other data that belongs to other logical storage regions which are not counted by the count value and then perform moving based on the counting result. In particular, Applicant points to Asano as only teaching counting the logical capacity already stored with data within a specific range after allocating physical storage space to this logical range across a virtual storage pool. Based on the previously identified teachings, Applicant argues the applied references do not teach as part of the folding operation any specific movement of data according to a count belonging to a specified logical range. Applicant’s arguments filed have been fully considered but they are moot in view of the current rejection made in response to Applicant’s amendments.
The applied references fail to disclose the limitation of claims 2-6, 8, 10-14, 16, 18-22, and 24 by virtue of dependency on respective independent claims 1, 9, and 17 for the reasons indicated above. Applicant’s arguments filed have been fully considered but they are moot in view of the current rejections made in response to Applicant’s amendments.
All arguments by the applicant are believed to be covered in the body of the office action; thus, this action constitutes a complete response to the issues raised in the remarks dated January 21, 2026.
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 of this title, 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.
The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103(a) are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-6, 9-14, and 17-22 are rejected under 35 U.S.C. 103 as being unpatentable over Ravimohan et al. (US 2018/0293014) in view of Acedo et al. (US 2011/0016287) and further in view of Bavishi et al. (US 2013/0326183) and still further in view of Byun (US 2019/0187900).
Regarding claim 1, Ravimohan discloses, in the italicized portions, a data writing method for a rewritable non-volatile memory module, wherein the rewritable non-volatile memory module comprises a plurality of physical units, and the data writing method comprises ([0048] FIG. 1A is a block diagram illustrating a non-volatile memory system 100. The non-volatile memory system 100 may include a controller 102 and non-volatile memory that may be made up of one or more non-volatile memory dies 104. As used herein, the term die refers to the set of non-volatile memory cells, and associated circuitry for managing the physical operation of those non-volatile memory cells, that are formed on a single semiconductor substrate. The controller 102 may interface with a host system and transmit command sequences for read, program, and erase operations to the non-volatile memory die(s) 104.): receiving a write command from a host system, wherein the write command instructs storing of first data belonging to a first logical unit, and the first logical unit belongs to a first logical range ([0077] Referring back to FIG. 2A, a host and the non-volatile memory system 100 may use different addressing schemes for managing the storage of data. For example, when a host wants to write data to the non-volatile memory system 100, the host may assign a host or logical address (also referred to as a logical block address (LBA)) to the data. Similarly, when the host wants to read data from the non-volatile memory system 100, the host may identify the data it wants read by the logical address. The host may utilize a host or logical addressing scheme in which a host file system maintains a logical address range for all LBAs assigned or recognized by the host. The logical addresses (LBAs) may be grouped into logical groups (LGs), which may further be divided or organized into units of logical sectors.); in response to the first data being first type data, store the first data in a first type physical unit, which is also configured to store third data belonging to a second logical range different from the first logical range, among the plurality of physical units according to the write command, such that the first type physical unit stores the first data belonging to the first logical range and the third data belonging to the second logical range at the same time ([0144] When the program management module 702 receives a program command to program a data set, the program management module 702 may communicate with the data type determination module 1102 to determine whether the data set as a first type data set or a second type data set. The data type determination module 1102 may utilize one or more criteria, such as a size of the data set, in order to identify the data set as being of the first type or the second type. If the data set is determined to be of the first type, then the program management module 702 may select LSDA and HSDA target locations for the data set from the LSDA and HSDA free block lists 712, 714 so that the data set is stored in the LSDA first type area 1104 and then folded into the HSDA first type area 1108. [0084] The address mapping database may be configured in various ways to track or identify where data is stored. For example, the address mapping database may include a primary address data structure (also referred to as a Group Address Table (GAT)) that provides a primary logical-physical address mapping for logical addresses included in the logical address range recognized by the host system 101. Various configurations of the mapping for the GAT are possible. In one example configuration for flash technology, the GAT keeps track of logical-physical address mapping between logical groups of logical sectors and corresponding metablocks.); updating first count information corresponding to the first logical range, wherein the first count information comprises a count value, and the count value is updated based on amount of data belonging to only the first logical range and currently stored in the first type physical unit, rather than all or any data stored in the first type physical unit; and in response to the first count information meeting a preset condition, only moving the first data belonging to the first logical range from the first type physical unit to a second type physical unit among the plurality of physical units ([0096] The folding triggering module 704 may be configured to start the folding operation in response to determining that a capacity of the LSDA target storage location has reached a threshold level. Prior to the LSDA target storage location storing a threshold amount of data of the data set, the folding triggering module 704 may determine to not yet perform the folding operation. Then, upon a threshold amount of data of the data set being stored in the LSDA target storage location, the folding triggering module 704 may determine to start the folding operation. [0097] The folding triggering module 704 may determine when the threshold has been reached in various ways. For example, the folding triggering module 704 may be configured to receive LSDA storage status information via the memory interface 130, as shown in FIG. 7. The LSDA storage status information may indicate data sets (or portions of data sets) that are stored in the LSDA target storage locations. The LSDA storage status information may be based on the program context commands sent to the memory dies and/or responses received from the memory dies 104 acknowledging that the data is stored. Alternatively, the folding triggering module 704 may be configured to communicate with the sequencer module 126 in order to determine whether the threshold has been reached. Various ways to monitor whether an LSDA target storage location has reached a threshold level are possible. [0146] At block 1202, a controller of a memory system may program (e.g., through use of a program management module 702) a first data set into a first LSDA storage location of the low storage density area. At block 1204, in response to an amount of the first data set reaching a threshold (e.g., when all of the first data set is programmed into the first LSDA storage location), the controller (e.g., through use of the folding triggering module 704) may begin a first folding operation and control a power control circuit (e.g., the power control circuit 156 of FIG. 2B) to perform a first phase of a first multi-phase programming operation to program the first data set into a first HSDA storage location.), and keeping the third data belonging to the second logical range different from the first logical range in the first type physical unit, wherein the first type physical unit is dedicated to storing data whose data amount is less than a critical data amount, and the second type physical unit is dedicated to storing data whose data amount is not less than the critical data amount. Herein Ravimohan teaches managing writes to the nonvolatile memory system received from the host. The memory is divided into a plurality of portions, each designated for storing a different type of data as designated by the data sets. The host addresses the memory using logical addresses assigned to logical groups and the nonvolatile memory contains logic for mapping logical addresses to physical addresses for accessing specified locations. The nonvolatile memory classifies where data is stored according to a data type of the write command. Additionally, the system determines when to migrate data according to a threshold level. The level is determined via a plurality of ways including receiving storage status information associated with the data sets including the amount of data or frequency of access which is directly analogous to the updating of first count information. The status information corresponds to the respective storage locations wherein data is written and then it is subsequently determined whether the threshold is met to perform the folding operation. Additionally, Paragraph [0093] discloses that blocks designated by a request in combination comprise the target storage location which thereby represents a logical range of addresses. In this manner, Ravimohan teaches the claim limitations as presented for classifying and directing write commands to storage and moving data from one location to another when meeting a preset condition. Ravimohan does not explicitly disclose that blocks first data “belonging to the first logical range” are moved based on count information updated based on the amount of data belonging to only the first logical range and stored to the first type physical unit and explicitly “keeping third data belonging to a second logical range different from the first logical range in the first type physical unit” and wherein the first type physical unit is dedicated to storing data whose data amount is less than a critical data amount and second type physical unit dedicated to storing data whose data amount is not less than the critical data amount. Regarding the moving of data based on count information aspect of the limitation, Acedo discloses in Paragraphs [0030] and [0033] “[0030] In step 330, Applicants' method determines whether the logical volume is reaching an out-of-space condition by determining if the actual logical volume utilization of step 320 is greater than the logical volume utilization threshold of step 310. For example, if the logical volume utilization threshold is set at "80%, and if a logical volume is configured to comprise 1 GB, then Applicants' method would consider the logical volume to be reaching the out-of-space condition if the actual storage usage of step 310 is 800 megabytes or greater. Although the above example provides a percentage of allocated space as the predetermined threshold value, it is to be appreciated that the predetermined threshold value could, for example, be an amount of allocated space or any other indication of an out-of-space condition. [0033] If the method determines in step 340 that configured physical space is available, then the method transitions from step 340 to step 350 wherein the method reconfigures the logical volume of step 305 to include all or a portion of the additional available configured physical space.” Herein Acedo explicitly discloses monitoring, on a per logical volume basis, used capacity to determine when to trigger a reconfiguration operation to allocate additional physical storage. The Examiner notes that Acedo does not explicitly identify that the reconfiguration involves migration of the data, but the cited technique of monitoring used logical volume capacity to trigger a maintenance operation is still applicable. In this manner, it would be obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the folding as performed in Ravimohan to occur on a per logical range basis as demonstrated in Acedo wherein managing logical volumes is discussed in order to manage particular data set migration between physical storage areas on a specified basis to target data sets. The Examiner reiterates the folding operations as performed in Ravimohan concern particular data sets to migrate between the LSDA and HSDA target storage locations and Acedo further supports this data set migration via the per address range used capacity tracking. Regarding only moving data belonging to the first logical range and keeping third data belonging to a second logical range, Bavishi discloses in Paragraphs [0058-59] “[0058] FIG. 3 depicts, in an illustrated embodiment, how sub-LUN data migration is executed according to the present invention. By use of the API, and using the illustrated exemplary command, the database application sends the exemplary command to migrate sub-LUN level data from the physical disk 1 (in this case depicted as FC 15 k drives) to a second physical location in storage pool P1 of PHY disks 1, 2, and 3 as shown (in the depicted embodiment consisting of SAS 7 k RPM drives configured in the illustrated storage pool). [0059] Turning first to FIG. 4, in a first step 400A, an initial LUN address range map (shown here addressed from 0 to n) is identified to correspond to an address range in the physical disk 1 as shown. In a second step 400B as shown in FIG. 5, following completion of a migration operation of a chunk of data to the target storage pool, a new LUN address range map is created with ranges x-y which are configured to point to the target storage pool in physical disk 2 corresponding to the chunk of data which has been migrated. The ranges 0-x and y-n are retained to point to the physical disk 1 as shown.” Herein Bavishi discloses, in the context of distributed storage, migrating specified sub-LUN data from a physical disk, analogous to a physical unit, to another physical disk. It is explicitly presented that the logical address range identified in the physical disk for migration is updated to reference the new location of the data in the destination physical disk and that other data in the physical disk is retained. As Ravimohan and Acedo above are identified at moving target storage locations from one physical address to another wherein the target storage locations are logical address ranges comprising the data subject to migration, it would be obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the migration techniques as disclosed in Bavishi of migrating a target logical address range of data and retaining the remaining data in a physical unit into the context of Ravimohan for managing data placement based on what may be considered “best fit” for the data based on access metrics (Bavishi [0062]). Ravimohan, Acedo, and Bavishi do not explicitly address the physical units being dedicated to storing data of data amounts either less or not less than a critical data amount. Regarding this aspect of the limitation, Byun discloses in Paragraphs [0102-104] “[0102] The controller 130 may then store the data segments 720 which are stored in the controller memory 144, in SLC memory blocks, for example, an SLC memory block 0, an SLC memory block 1 and an SLC memory block 2, or in MLC/TLC memory blocks, for example, an MLC/TLC memory block 0, an MLC/TLC memory block 1 and an MLC/TLC memory block 2, among the plurality of memory blocks included in the memory device 150, in correspondence to the data size and types. [0103] In other words, in the case where the size of the data corresponding to the plurality of write commands received from the host 102 are equal to or larger than a threshold value, the controller 130 stores data segments 720 stored in the controller memory 144, in the MLC/TLC memory blocks, for instance, the MLC/TLC memory block 0. [0104] In the case where the size of the data corresponding to the plurality of write commands received from the host 102 is smaller than the threshold value, the controller 130 stores data segments 720 stored in the controller memory 144, in the SLC memory blocks, for instance, the SLC memory block 0.” Herein Byun explicitly discloses that SLC/MLC/TLC/QLC memory areas may be assigned for storing data of data sizes above/below/equal to a threshold size. In view of Ravimohan which discloses migrating data between the LSDA and HSDA areas, which comprise SLC and MLC/TLC memory respectively, it would be obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to designate storage locations, or physical units, as being dedicated to a particular storage size for purposes of memory access efficiency (Byun [0104]). Ravimohan, Acedo, Bavishi and Byun are analogous art because they are from the same field of endeavor of managing storage provisioning.
Regarding claim 2, Ravimohan further teaches the data writing method according to claim 1, further comprising: in response to the first data being second type data, storing the first data in the second type physical unit according to the write command ([0144] Alternatively, if the data set is determined to be of the second type, then the program management module 702 may select LSDA and HSDA target locations for the data set from the LSDA and HSDA free block lists 712, 714 so that the data set is stored in the LSDA second type area 1106 and the folded into the HSDA second type area 1110.). Herein if the data set is determined to be a second type, it is stored to the portion designated as the second type area.
Regarding claim 3, Ravimohan further teaches the data writing method according to claim 1, further comprising: determining whether the first data belongs to the first type data or second type data according to a data amount of the first data ([0144]). Herein the amount of data in the data set is explicitly noted as contributing to the type determination which causes the data to be stored in the corresponding data type area.
Regarding claim 4, Ravimohan and Byun further teach the data writing method according to claim 1, the data writing method further comprises: determining whether the first count information meets the preset condition according to whether the count value reaches a critical value (Ravimohan [0096-97]). Herein the storage status information may contain a plurality of values and are used in comparison to a threshold to determine when to move data. The threshold is directly analogous the status information meeting the preset condition as it is a critical value which instigates the movement operation. Byun also refers to storing data based on size to either the SLC or MLC/TLC areas.
Regarding claim 5, Ravimohan and Acedo in combination further disclose the data writing method according to claim 1, wherein moving the first data from the first type physical unit to the second type physical unit comprises: moving the first data together with second data in the first type physical unit to the second type physical unit, wherein the second data belongs to a second logical unit, and the second logical unit also belongs to the first logical range (Ravimohan [0095] and Acedo [0030]). Herein Acedo identifies a logical volume subject to reconfiguration. As previously iterated that Ravimohan is concerned with migrating data sets, the data within the logical range of the data set is considered as the first and second data belonging to different logical units and within the same logical range.
Regarding claim 6, Ravimohan and Byun in combination further disclose the data writing method according to claim 1, further comprising: clearing or resetting the first count information after moving the first data from the first type physical unit to the second type physical unit (Ravimohan [0084] and Byun [0087]). Herein Byun indicates in response to program operations, metadata is updated which may include the previously allocated capacity to indicate the volume is no longer using capacity at the previous location.
Regarding claim 9, Ravimohan discloses, in the italicized portions, a memory storage device comprising: a connection interface unit for coupling to a host system; a rewritable non-volatile memory module, wherein the rewritable non-volatile memory module comprises a plurality of physical units; and a memory control circuit unit coupled to the connection interface unit and the rewritable non-volatile memory module ([0048-49]), wherein the memory control circuit unit is configured to: receive a write command from the host system, wherein the write command instructs storing of first data belonging to a first logical unit, and the first logical unit belongs to a first logical range ([0077]); in response to the first data being first type data, store the first data in a first type physical unit, which is also configured to store third data belonging to a second logical range different from the first logical range, among the plurality of physical units according to the write command, such that the first type physical unit stores the first data belonging to the first logical range and the third data belonging to the second logical range at the same time ([0144]); update first count information corresponding to the first logical range, wherein the first count information comprises a count value, and the count value is updated based on amount of data belonging to only the first logical range and currently stored in the first type physical unit, rather than all or any data stored in the first type physical unit; and in response to the first count information meeting a preset condition, only moving the first data belonging to the first logical range from the first type physical unit to a second type physical unit among the plurality of physical units ([0096-97] and [0146]), and keep the third data belonging to the second logical range different from the first logical range in the first type physical unit, wherein the first type physical unit is dedicated to storing data whose data amount is less than a critical data amount, and the second type physical unit is dedicated to storing data whose data amount is not less than the critical data amount. Herein Ravimohan teaches managing writes to the nonvolatile memory system received from the host. Ravimohan does not explicitly disclose that blocks first data “belonging to the first logical range” are moved based on count information updated based on the amount of data belonging to only the first logical range and stored to the first type physical unit and explicitly “keeping third data belonging to a second logical range different from the first logical range in the first type physical unit” and wherein the first type physical unit is dedicated to storing data whose data amount is less than a critical data amount and second type physical unit dedicated to storing data whose data amount is not less than the critical data amount. Regarding the moving of data based on count information aspect of the limitation, Acedo discloses in Paragraphs [0030] and [0033] monitoring, on a per logical volume basis, used capacity to determine when to trigger a reconfiguration operation to allocate additional physical storage. The Examiner reiterates the folding operations as performed in Ravimohan concern particular data sets to migrate between the LSDA and HSDA target storage locations and Acedo further supports this data set migration via the per address range used capacity tracking. Regarding only moving data belonging to the first logical range and keeping third data belonging to a second logical range, Bavishi discloses in Paragraphs [0058-59] migrating specified sub-LUN data from a physical disk, analogous to a physical unit, to another physical disk. It is explicitly presented that the logical address range identified in the physical disk for migration is updated to reference the new location of the data in the destination physical disk and that other data in the physical disk is retained. Ravimohan, Acedo, and Bavishi do not explicitly address the physical units being dedicated to storing data of data amounts either less or not less than a critical data amount. Regarding this aspect of the limitation, Byun discloses in Paragraphs [0102-104] that SLC/MLC/TLC/QLC memory areas may be assigned for storing data of data sizes above/below/equal to a threshold size. Claim 9 is rejected on a similar basis as claim 1.
Regarding claim 10, Ravimohan further teaches the memory storage device according to claim 9, wherein the memory control circuit unit is further configured to: in response to the first data being second type data, store the first data in the second type physical unit according to the write command ([0144]). Claim 10 is rejected on a similar basis as claim 2.
Regarding claim 11, Ravimohan further teaches the memory storage device according to claim 9, wherein the memory control circuit unit is further configured to: determine whether the first data belongs to the first type data or second type data according to a data amount of the first data ([0144]). Claim 11 is rejected on a similar basis as claim 3.
Regarding claim 12, Ravimohan and Byun further teach the memory storage device according to claim 9, the memory control circuit unit is further configured to: determine whether the first count information meets the preset condition according to whether the count value reaches a critical value (Ravimohan [0096-97]). Claim 12 is rejected on a similar basis as claim 4.
Regarding claim 13, Ravimohan and Acedo in combination further disclose the memory storage device according to claim 9, wherein the operation of the memory control circuit unit moving the first data from the first type physical unit to the second type physical unit comprises: moving the first data together with second data in the first type physical unit to the second type physical unit, wherein the second data belongs to a second logical unit, and the second logical unit also belongs to the first logical range (Ravimohan [0095] and Acedo [0030]). Claim 13 is rejected on a similar basis as claim 5.
Regarding claim 14, Ravimohan and Byun in combination further disclose the memory storage device according to claim 9, wherein the memory control circuit unit is further configured to: clear or reset the first count information after moving the first data from the first type physical unit to the second type physical unit (Ravimohan [0084] and Byun [0087]). Claim 14 is rejected on a similar basis as claim 6.
Regarding claim 17, Ravimohan teaches a memory control circuit unit for controlling a rewritable non-volatile memory module, wherein the rewritable non-volatile memory module comprises a plurality of physical units, and the memory control circuit unit comprises: a host interface for coupling to a host system; a memory interface for coupling to the rewritable non-volatile memory module; and a memory management circuit coupled to the host interface and the memory interface ([0048-49]), wherein the memory management circuit is configured to: receive a write command from the host system, wherein the write command instructs storing of first data belonging to a first logical unit, and the first logical unit belongs to a first logical range ([0077]); in response to the first data being first type data, store the first data in a first type physical unit, which is also configured to store third data belonging to a second logical range different from the first logical range, among the plurality of physical units according to the write command, such that the first type physical unit stores the first data belonging to the first logical range and the third data belonging to the second logical range at the same time ([0144]); update first count information corresponding to the first logical range, wherein the first count information comprises a count value, and the count value is updated based on amount of data belonging to only the first logical range and currently stored in the first type physical unit, rather than all or any data stored in the first type physical unit; and in response to the first count information meeting a preset condition, only moving the first data belonging to the first logical range from the first type physical unit to a second type physical unit among the plurality of physical units ([0096-97] and [0146]), and keep the third data belonging to the second logical range different from the first logical range in the first type physical unit, wherein the first type physical unit is dedicated to storing data whose data amount is less than a critical data amount, and the second type physical unit is dedicated to storing data whose data amount is not less than the critical data amount. Herein Ravimohan teaches managing writes to the nonvolatile memory system received from the host. Ravimohan does not explicitly disclose that blocks first data “belonging to the first logical range” are moved based on count information updated based on the amount of data belonging to only the first logical range and stored to the first type physical unit and explicitly “keeping third data belonging to a second logical range different from the first logical range in the first type physical unit” and wherein the first type physical unit is dedicated to storing data whose data amount is less than a critical data amount and second type physical unit dedicated to storing data whose data amount is not less than the critical data amount. Regarding the moving of data based on count information aspect of the limitation, Acedo discloses in Paragraphs [0030] and [0033] monitoring, on a per logical volume basis, used capacity to determine when to trigger a reconfiguration operation to allocate additional physical storage. The Examiner reiterates the folding operations as performed in Ravimohan concern particular data sets to migrate between the LSDA and HSDA target storage locations and Acedo further supports this data set migration via the per address range used capacity tracking. Regarding only moving data belonging to the first logical range and keeping third data belonging to a second logical range, Bavishi discloses in Paragraphs [0058-59] migrating specified sub-LUN data from a physical disk, analogous to a physical unit, to another physical disk. It is explicitly presented that the logical address range identified in the physical disk for migration is updated to reference the new location of the data in the destination physical disk and that other data in the physical disk is retained. Ravimohan, Acedo, and Bavishi do not explicitly address the physical units being dedicated to storing data of data amounts either less or not less than a critical data amount. Regarding this aspect of the limitation, Byun discloses in Paragraphs [0102-104] that SLC/MLC/TLC/QLC memory areas may be assigned for storing data of data sizes above/below/equal to a threshold size. Claim 17 is rejected on a similar basis as claim 1.
Regarding claim 18, Ravimohan further teaches the memory control circuit unit according to claim 17, wherein the memory management circuit is further configured to: in response to the first data being second type data, store the first data in the second type physical unit according to the write command ([0144]). Claim 18 is rejected on a similar basis as claim 2.
Regarding claim 19, Ravimohan further teaches the memory control circuit unit according to claim 17, wherein the memory management circuit is further configured to: determine whether the first data belongs to the first type data or second type data according to a data amount of the first data ([0144]). Claim 19 is rejected on a similar basis as claim 3.
Regarding claim 20, Ravimohan and Byun further teach the memory control circuit unit according to claim 17, wherein the first count information comprises a count value, and the memory management circuit is further configured to: determine whether the first count information meets the preset condition according to whether the count value reaches a critical value (Ravimohan [0096-97]). Claim 20 is rejected on a similar basis as claim 4.
Regarding claim 21, Ravimohan and Acedo in combination further disclose the memory control circuit unit according to claim 17, wherein the operation of the memory management circuit moving the first data from the first type physical unit to the second type physical unit comprises: moving the first data together with second data in the first type physical unit to the second type physical unit, wherein the second data belongs to a second logical unit, and the second logical unit also belongs to the first logical range (Ravimohan [0095] and Acedo [0030]). Claim 21 is rejected on a similar basis as claim 5.
Regarding claim 22, Ravimohan and Byun in combination further disclose the memory control circuit unit according to claim 17, wherein the memory management circuit is further configured to: clear or reset the first count information after moving the first data from the first type physical unit to the second type physical unit (Ravimohan [0084] and Byun [0087]). Claim 22 is rejected on a similar basis as claim 6.
Claims 8, 16, and 24 are rejected under 35 U.S.C. 103 as being unpatentable over Ravimohan in view of Acedo and further in view of Bavishi and still further in view of Byun and Veluswamy et al. (US 2020/0225863).
Regarding claim 8, Ravimohan, Acedo, Bavishi, and Byun do not explicitly disclose the data writing method according to claim 1, further comprising: detecting abnormal power failure during or after moving the first data from the first type physical unit to the second type physical unit; in response to the abnormal power failure, reconstructing first management data corresponding to the first type physical unit and second management data corresponding to the second type physical unit; and determining whether the first data in the first type physical unit is valid data according to the first management data and the second management data. Regarding this limitation, Veluswamy discloses in Paragraph [0040] “There is typically a built-in set of algorithms in flash/SSD devices generally referred to as “journaling”, which is for protecting critical data across all kinds of failures and restoring such data to a last consistency point during a recovery procedure. Typically, these journaling algorithms are used primarily to protect a few parameters critical for the device to operate. Here, the same journaling framework may be used to protect the bitmap, such as by duplicating the bitmap, maintaining consistency among duplicate bitmap copies, rebuilding the bitmap, and the like. Thus, at block 604 (and block 120) the bitmap is being dynamically built pursuant to the runtime host I/O and migration I/O flow and, at block 606, in the event of or in response to any abrupt failure (e.g., a power failure or user-induced failure such as pausing the migration) the bitmap is restored from the preconfigured journaling settings that were set at block 602.” Herein Veluswamy discloses maintaining journaling information which is used to rebuild a bitmap after a failure which is used to track data during a migration operation. The bitmap enables the system to determine which portions of data have been properly migrated and which portions of data have not been migrated. In this case, valid data may be determined on at each storage location based on the progress of the migration operation. Respectively, the portions of data which have not yet been transferred and the portions which have been transferred are determined to constitute the first and second management data. In this manner, it would be obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to maintain this information in order to recover from an interruption, such as power failure, during execution of the operation and verify the validity of the transfer process between the storage locations. Ravimohan, Acedo, Bavishi, Byun and Veluswamy are analogous art because they are from the same field of endeavor of managing storage provisioning.
Regarding claim 16, Ravimohan, Acedo, Bavishi, and Byun do not explicitly disclose the memory storage device according to claim 9, wherein the memory control circuit unit is further configured to: detect abnormal power failure during or after moving the first data from the first type physical unit to the second type physical unit; in response to the abnormal power failure, reconstruct first management data corresponding to the first type physical unit and second management data corresponding to the second type physical unit; and determine whether the first data in the first type physical unit is valid data according to the first management data and the second management data. Regarding this limitation, Veluswamy discloses in Paragraph [0040] maintaining journaling information which is used to rebuild a bitmap after a failure which is used to track data during a migration operation. Claim 16 is rejected on a similar basis as claim 8.
Regarding claim 24, Ravimohan, Acedo, Bavishi, and Byun do not explicitly disclose the memory control circuit unit according to claim 17, wherein the memory management circuit is further configured to: detect abnormal power failure during or after moving the first data from the first type physical unit to the second type physical unit; in response to the abnormal power failure, reconstruct first management data corresponding to the first type physical unit and second management data corresponding to the second type physical unit; and determine whether the first data in the first type physical unit is valid data according to the first management data and the second management data. Regarding this limitation, Veluswamy discloses in Paragraph [0040] maintaining journaling information which is used to rebuild a bitmap after a failure which is used to track data during a migration operation. Claim 24 is rejected on a similar basis as claim 8.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Bueb (US 2022/0057952) – Paragraphs [0013-14] wherein migrating or folding data of a data block according to logical capacity or physical capacity criterion is discussed.
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 ALEXANDER J YOON whose telephone number is (408)918-7629. The examiner can normally be reached on Monday-Friday 8am-3pm ET. The examiner’s email is alexander.yoon2@uspto.gov.
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, Jared Rutz can be reached on 571-272-5535. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ALEXANDER YOON/
Examiner, Art Unit 2135
/JARED I RUTZ/Supervisory Patent Examiner, Art Unit 2135