Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Detailed Action
The instant application having Application No. 19/056,656 has claims 1-20 pending filed on 2/18/2025; there are 3 independent claims and 17 dependent claims, all of which are ready for examination by the examiner.
Information Concerning Oath/Declaration
Oath/Declaration
The applicant’s oath/declaration has been reviewed by the examiner and is found to conform to the requirements prescribed in 37 C.F.R. 1.63.
Status Of Claim for Priority In The Application
This instant application claims priority to Chinese Application No. 202410851884.5 filed on Jun. 27, 2024.
Information Concerning Drawings
Drawings
The applicant’s drawings submitted on 2/18/2025 are accepted for examination purposes.
Acknowledgement Of References Cited By Applicant
As required by M.P.E.P. 609(C), the applicant’s submission of the Information Disclosure Statements dated February 18 2025, June 6 2025 and October 10 2025 are acknowledged by the examiner and the cited references have been considered in the examination of the claims now pending. As required by M.P.E.P 609 C (2), copy of the PTOL-1449 initialed and dated by the examiner are attached to the instant office action.
CLAIM INTERPRETATION
The following is a quotation of 35 U.S.C. 112(f):
(f) ELEMENT IN CLAIM FOR A COMBINATION. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as "configured to" or "so that"; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
The claim limitations in this application that use the word "means" (or "step") are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word "means" (or "step") are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Such claim limitation(s) is/are: component in claims 11-19.
Because this/these claim limitation(s) is/are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, it/they is/are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof.
If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
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-2, 6-12 and 16-20 are rejected under 35 U.S.C. 103 as being unpatentable over Honda et al (US PGPUB 20250199685) in view of Feng et al (CN 109376100 A).
As per claim 1:
Honda teaches:
“A method for garbage collection of a zoned storage device, comprising” (Paragraph [0024] and Paragraph [0028] (a control method called a zoned storage, manages a plurality of zones and in response to receiving a first command from the host device, the first command requesting a zone which is to be garbage collected iuncludes))
“determining, according to file object metadata cached in a memory, valid data segments in a source zone to be collected in the zoned storage device, wherein file objects corresponding to the file object metadata are stored in the zoned storage device” (Paragraph [0040], Paragraph [0080] and Paragraph [0129] (the buffer memory (cache memory) is used to temporarily store tables and lists for management of the memory system including a lookup table (LUT), a zone status management table and a garbage collection (GC) recommended zone list, the zone to be garbage collected is also referred to as a Victim zone, the Victim segment determination unit determines as a Victim segment the valid data stored in the determined Victim zone, the metadata includes an identifier indicating a zone to which the user data is written and the host device refers to the metadata to manage whether user data in each zone is valid or not))
“reading each valid data segment from the source zone” (Paragraph [0051] (If the host device specifies a zone to be performed garbage collection, the host device transmits, to the memory system, a read command for reading data from a zone to be performed garbage collection))
“writing, according to file objects to which the valid data segments belong, the read valid data segments into cache pools corresponding to the file objects to which the valid data segments belong in the memory” (Paragraph [0040] and Paragraph [0051] (the host device transmits, to the memory system, a write command for writing the read valid data to another zone i.e. the host device may transmit, to the memory system, a read/write command for copying valid data stored in a zone to be performed garbage collection to another zone and the buffer memory is used as a write/read buffer for temporarily storing data read from the nonvolatile memory and data to be written to the nonvolatile memory))
“and determining a target cache pool to be written into the zoned storage device from all the cache pools” (Paragraph [0141] (the host device 1transmits to the memory system a write command to write the valid data which are read from the zones 5 and 6 to the zone 7 (all the cache pools) and based on the write command received from the host device, the memory system writes the valid data to the zone 7(zoned storage device)))
“writing, based on a sequential writing mechanism, the valid aggregated data segment in the target cache pool into a target zone in the zoned storage device” (Paragraph [0051] and Paragraph [0072] (if the host device specifies a zone to be performed garbage collection, it performs, as garbage collection, an operation of rewriting valid data (the valid aggregated data segment) stored in the specified zone to another zone (in the target cache pool into a target zone), in the data write based on the zone command, a logical address to which data is to be written is determined by the controller of the memory system such that data is sequentially written to the zone))
“and collecting storage space of the source zone after all the valid data segments in the source zone are read” (Paragraph [0052] (upon receiving the zone reset command, the memory system causes the zone specified by the zone reset command to transition to empty, the zone of the empty is a zone capable of being performed the data erase operation and the memory system can perform the data erase operation on the zone that is caused to transition to the empty)).
Honda does not EXPLICITLY teaches: and aggregating the valid data segments in a same cache pool into a valid aggregated data segment.
However, in an analogous art, Feng teaches:
“and aggregating the valid data segments in a same cache pool into a valid aggregated data segment” (Page 2 Lines 56-57 and Page 3 Lines 1-6 (the polymerization is carried out to the target strip file to obtain an aggregated data block, comprising, determining the list of each file segment in the target stripe file, creating the data block and the data of each file segment into the data block to obtain the aggregated data block)).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Feng and apply them on teachings of Honda for the method “and aggregating the valid data segments in a same cache pool into a valid aggregated data segment”. One would be motivated as the method provides reducing the number of HDDs, reducing addressing time, accelerate the data writing speed, the cache data in the SSD to HDD, it can fully uses the fast read-write performance of the SSD, it can improve the write performance of the storage system and improve the user experience (Fengi, Page 4 Lines 17-21]).
As per claim 2:
Honda and Feng teach the method of claim 1 above.
Honda further teaches:
“wherein the file object metadata comprises a mapping relation between each data segment of the file object and an identifier of a zone in which each data segment is located in the zoned storage device” (Paragraph [0042] and Paragraph [0049] (the data is written to the nonvolatile memory based on a write command received from the host device, mapping between a physical address indicating the storage location to which the data is written, a logical address specified by the write command is recorded in the lookup table (file object metadata), if the memory system is controlled using a control method called zoned storage, the CPU manages a plurality of zones and a zone corresponds to part of the logical address range within a logical address space) )
“and correspondingly, determining, according to the file object metadata cached in the memory, the valid data segments in the source zone to be collected in the zoned storage device comprises” (Paragraph [0036] and Paragraph [0040] (a part of the storage area of the buffer memory (cache memory) may be used to temporarily store tables and lists for management of the memory system (metadata) which may include a lookup table (LUT), a zone status management table and a garbage collection (GC) recommended zone list, the host controller manages whether or not data stored in each zone is valid data and the host controller may use metadata as data for managing the correspondence between the information specifying data and the segment))
“querying, according to an identifier of the source zone, data segments corresponding to the identifier of the source zone in each data segment of the file object from the file object metadata cached in the memory as the valid data segments in the source zone” (Paragraph [0080] (the victim segment determination unit determines valid data to be moved by garbage collection based on information indicating a zone to be garbage collected, which is provided from the memory system, the victim segment determination unit determines a zone to be garbage collected, the zone to be garbage collected is also referred to as a victim zone (source zone) and the victim segment determination unit determines as a victim segment the valid data stored in the determined victim zone (source zone))).
As per claim 6:
Honda and Feng teach the method of claim 1 above.
Honda further teaches:
“wherein determining the target cache pool to be written into the zoned storage device from all the cache pools comprises” (Paragraph [0141] (the host device 1transmits to the memory system a write command to write the valid data which are read from the zones 5 and 6 to the zone 7 (all the cache pools) and based on the write command received from the host device, the memory system writes the valid data to the zone 7(zoned storage device)))
“in response to determining that a data volume in any cache pool exceeds a third data volume threshold, determining the any cache pool as the target cache pool to be written into the zoned storage device” (Paragraph [0099] (the garbage collection operation is started, for example, when the free capacity of the memory system falls below a threshold value, when fragmentation is detected by writing data to the memory system))
“or determining all the cache pools as the target cache pool to be written into the zoned storage device in response to determining that a total data volume in all the cache pools exceeds a second preset proportion of total capacity of all the cache pools” (Paragraph [0101] (the GC recommended zone acquisition unit selects a superblock in which a ratio of the full zones is lower than a threshold value, among the superblocks composed of only the full zone and the empty zone)).
As per claim 7:
Honda and Feng teach the method of claim 1 above.
Honda further teaches:
“wherein writing, based on the sequential writing mechanism, the valid aggregated data segment in the target cache pool into the target zone in the zoned storage device comprises” (Paragraph [0051] and Paragraph [0072] (if the host device specifies a zone to be performed garbage collection, it performs, as garbage collection, an operation of rewriting valid data (the valid aggregated data segment) stored in the specified zone to another zone (in the target cache pool into a target zone), in the data write based on the zone command, a logical address to which data is to be written is determined by the controller of the memory system such that data is sequentially written to the zone) includes))
“determining, according to a data volume of a sector of the zoned storage device, a data volume of internal metadata in the sector, and a data volume of the valid aggregated data segment in the target cache pool, a target data volume to be written into the target zone in the valid aggregated data segment in the target cache pool” (Paragraph [0051] and Paragraph [0090] (If the host device specifies a zone to be performed garbage collection, an operation of rewriting valid data stored in the specified zone to another zone, the zone to which data is written may be a newly opened zone or an already opened zone to which data is being written and based on a zone to which the logical address of the write destination belongs, the memory translation layer can determine a storage location in a storage area to which the zone is assigned))
“and acquiring a data segment of the target data volume from the valid aggregated data segment in the target cache pool as a data segment to be written, and writing, based on the sequential writing mechanism, the data segment to be written into the target zone in the zoned storage device” (Paragraph [0072] and Paragraph [0141] (a write command to write the valid data which are read from the zones 5 and 6 to the zone 7 (aggregated data), based on the write command received from the host device, the memory system writes the valid data to the zone 7, in data write based on the zone append command, a logical address to which data is to be written is determined by the controller of the memory system such that data is sequentially written to the zone (target zone))).
As per claim 8:
Honda and Feng teach the method of claim 7 above.
Honda further teaches:
“determining, according to a data volume of the sector of the zoned storage device, a data volume of internal metadata in the sector, and a data volume of the valid aggregated data segment in the target cache pool, a target data volume to be written into the target zone in the valid aggregated data segment in the target cache pool comprises” (Paragraph [0051] and Paragraph [0090] (If the host device specifies a zone to be performed garbage collection, an operation of rewriting valid data stored in the specified zone to another zone, the zone to which data is written may be a newly opened zone or an already opened zone to which data is being written and based on a zone to which the logical address of the write destination belongs, the memory translation layer can determine a storage location in a storage area to which the zone is assigned includes))
“determining a target number of sectors required according to the data volume of the valid aggregated data segment in the target cache pool and the data volume of the sector” (Paragraph [0129] (the metadata includes, for example, an identifier indicating a zone to which the user data is written, an offset from the start location of the zone, and a size of the user data where the size of the user data may be, for example, the number of segments or number of sectors and the host device refers to the metadata to manage whether user data in each zone is valid or not))
“and determining a first product of the data volume of the sector and the target number and a second product of the data volume of the internal metadata in the sector and the target number, and determining a difference between the first product and the second product as the target data volume, so that there is no residual space in each sector occupied after the data segment to be written of the target data volume is written into the target zone” (Paragraph [0156], Paragraph [0157] and Paragraph [0158] (a zone status management table (metadata) used in the memory system that stores a correspondence between zones and superblocks and the status of each of the zones, the zone status management table is a table that manages empty or full zones, it identifies a zone, information that identifies a superblock to which the zone belongs, information indicating the status of the zone and when a certain zone becomes full by completion of writing of data to the zone, the controller of the memory system adds an entry related to the zone to the zone status management table)).
As per claim 9:
Honda and Feng teach the method of claim 1 above.
Honda further teaches:
“wherein writing, based on the sequential writing mechanism, the valid aggregated data segment in the target cache pool into the target zone in the zoned storage device comprises” (Paragraph [0051] and Paragraph [0072] (if the host device specifies a zone to be performed garbage collection, it performs, as garbage collection, an operation of rewriting valid data (the valid aggregated data segment) stored in the specified zone to another zone (in the target cache pool into a target zone), in the data write based on the zone command, a logical address to which data is to be written is determined by the controller of the memory system such that data is sequentially written to the zone) includes))
“sequentially writing the valid aggregated data segment into each sector of the target zone, and recording internal metadata in each sector, wherein the internal metadata is configured to record a file object to which a current sector belongs and position information in the file object to which the current sector belongs” (Paragraph [0072] and Paragraph [0156] (in the data write based on the zone command, a logical address to which data is to be written is determined by the controller of the memory system such that data is sequentially written to the zone) and a zone status management table used in the memory system that stores a correspondence between zones and superblocks and the status of each of the zones)).
As per claim 10:
Honda and Feng teach the method of claim 1 above.
Honda further teaches:
“determining whether a current data segment belongs to the same file object as an adjacent preceding data segment in the zone in a case that any current data segment is written into any zone of the zoned storage device” (Paragraph [0029] (based on an identifier specifying a zone, which is included in a write command received from the host, the memory system determines a storage area corresponding to the specified zone as a storage area of a write destination where the data associated with write commands specifying the same zone are stored in the same storage area and among the data hierarchized by the host, data of the same hierarchy are managed as data of the same zone and thus stored in the same storage area in the memory system)).
Also Feng teachges:
“and merging metadata of the current data segment and metadata of a previous data segment in response to the current data segment belonging to the same file object as the adjacent preceding data segment in the zone.” (Page 3 Lines 22-25 (when the writing request corresponding to the writing data into the SSD, records the write request corresponding to a stripe file and offset (metadata); adjacent or overlapped by the offset file fragments are merged into one file segment)).
As per claim 11:
Honda teaches:
“An electronic device, comprising” (Paragraph [0027] (the memory system is a storage device connectable to the host device))
“at least one processor and a memory, wherein the memory stores a computer-executable instruction” (Paragraph [0034] and Paragraph [0035] (the host device includes a host controller and a host memory where the host controller may include one or more processors))
“and the computer-executable instruction, when executed by the at least one processor, causes the at least one processor to” (Paragraph [0035] (the host controller executes software (the computer-executable instruction) loaded into the host memory from the memory system or another storage device connected to the host device to perform))
“determine, according to file object metadata cached in a memory, valid data segments in a source zone to be collected in the zoned storage device, wherein file objects corresponding to the file object metadata are stored in the zoned storage device” (Paragraph [0040], Paragraph [0080] and Paragraph [0129] (the buffer memory (cache memory) is used to temporarily store tables and lists for management of the memory system including a lookup table (LUT), a zone status management table and a garbage collection (GC) recommended zone list, the zone to be garbage collected is also referred to as a Victim zone, the Victim segment determination unit determines as a Victim segment the valid data stored in the determined Victim zone, the metadata includes an identifier indicating a zone to which the user data is written and the host device refers to the metadata to manage whether user data in each zone is valid or not))
“read each valid data segment from the source zone” (Paragraph [0051] (If the host device specifies a zone to be performed garbage collection, the host device transmits, to the memory system, a read command for reading data from a zone to be performed garbage collection))
“writing, according to file objects to which the valid data segments belong, the read valid data segments into cache pools corresponding to the file objects to which the valid data segments belong in the memory” (Paragraph [0040] and Paragraph [0051] (the host device transmits, to the memory system, a write command for writing the read valid data to another zone i.e. the host device may transmit, to the memory system, a read/write command for copying valid data stored in a zone to be performed garbage collection to another zone and the buffer memory is used as a write/read buffer for temporarily storing data read from the nonvolatile memory and data to be written to the nonvolatile memory))
“and determine a target cache pool to be written into the zoned storage device from all the cache pools” (Paragraph [0141] (the host device 1transmits to the memory system a write command to write the valid data which are read from the zones 5 and 6 to the zone 7 (all the cache pools) and based on the write command received from the host device, the memory system writes the valid data to the zone 7(zoned storage device)))
“write, based on a sequential writing mechanism, the valid aggregated data segment in the target cache pool into a target zone in the zoned storage device” (Paragraph [0051] and Paragraph [0072] (if the host device specifies a zone to be performed garbage collection, it performs, as garbage collection, an operation of rewriting valid data (the valid aggregated data segment) stored in the specified zone to another zone (in the target cache pool into a target zone), in the data write based on the zone command, a logical address to which data is to be written is determined by the controller of the memory system such that data is sequentially written to the zone))
“and collect storage space of the source zone after all the valid data segments in the source zone are read” (Paragraph [0052] (upon receiving the zone reset command, the memory system causes the zone specified by the zone reset command to transition to empty, the zone of the empty is a zone capable of being performed the data erase operation and the memory system can perform the data erase operation on the zone that is caused to transition to the empty)).
Honda does not EXPLICITLY teaches: and aggregate the valid data segments in a same cache pool into a valid aggregated data segment.
However, in an analogous art, Feng teaches:
“and aggregate the valid data segments in a same cache pool into a valid aggregated data segment” (Page 2 Lines 56-57 and Page 3 Lines 1-6 (the polymerization is carried out to the target strip file to obtain an aggregated data block, comprising, determining the list of each file segment in the target stripe file, creating the data block and the data of each file segment into the data block to obtain the aggregated data block)).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Feng and apply them on teachings of Honda for the device “and aggregate the valid data segments in a same cache pool into a valid aggregated data segment”. One would be motivated as the method provides reducing the number of HDDs, reducing addressing time, accelerate the data writing speed, the cache data in the SSD to HDD, it can fully uses the fast read-write performance of the SSD, it can improve the write performance of the storage system and improve the user experience (Fengi, Page 4 Lines 17-21]).
As per claim 12, the claim is rejected based upon the same rationale given for the parent claim 11 and the claim 2 above.
As per claim 16, the claim is rejected based upon the same rationale given for the parent claim 11 and the claim 6 above.
As per claim 17, the claim is rejected based upon the same rationale given for the parent claim 11 and the claim 7 above.
As per claim 18, the claim is rejected based upon the same rationale given for the parent claim 17 and the claim 8 above.
As per claim 19, the claim is rejected based upon the same rationale given for the parent claim 11 and the claim 9 above.
As per claim 20:
Honda teaches:
“A non-transitory computer-readable storage medium, storing a computer-executable instruction” (Paragraph [0035] (the software or host software loaded into the host memory (a non-transitory computer-readable storage medium) from the memory system or another storage device connected to the host device))
“wherein the computer-executable instruction, when executed by the at least one processor, causes the at least one processor to” (Paragraph [0035] (the host controller executes software (the computer-executable instruction) loaded into the host memory from the memory system to perform))
“determine, according to file object metadata cached in a memory, valid data segments in a source zone to be collected in the zoned storage device, wherein file objects corresponding to the file object metadata are stored in the zoned storage device” (Paragraph [0040], Paragraph [0080] and Paragraph [0129] (the buffer memory (cache memory) is used to temporarily store tables and lists for management of the memory system including a lookup table (LUT), a zone status management table and a garbage collection (GC) recommended zone list, the zone to be garbage collected is also referred to as a Victim zone, the Victim segment determination unit determines as a Victim segment the valid data stored in the determined Victim zone, the metadata includes an identifier indicating a zone to which the user data is written and the host device refers to the metadata to manage whether user data in each zone is valid or not))
“read each valid data segment from the source zone” (Paragraph [0051] (If the host device specifies a zone to be performed garbage collection, the host device transmits, to the memory system, a read command for reading data from a zone to be performed garbage collection))
“writing, according to file objects to which the valid data segments belong, the read valid data segments into cache pools corresponding to the file objects to which the valid data segments belong in the memory” (Paragraph [0040] and Paragraph [0051] (the host device transmits, to the memory system, a write command for writing the read valid data to another zone i.e. the host device may transmit, to the memory system, a read/write command for copying valid data stored in a zone to be performed garbage collection to another zone and the buffer memory is used as a write/read buffer for temporarily storing data read from the nonvolatile memory and data to be written to the nonvolatile memory))
“and determine a target cache pool to be written into the zoned storage device from all the cache pools” (Paragraph [0141] (the host device 1transmits to the memory system a write command to write the valid data which are read from the zones 5 and 6 to the zone 7 (all the cache pools) and based on the write command received from the host device, the memory system writes the valid data to the zone 7(zoned storage device)))
“write, based on a sequential writing mechanism, the valid aggregated data segment in the target cache pool into a target zone in the zoned storage device” (Paragraph [0051] and Paragraph [0072] (if the host device specifies a zone to be performed garbage collection, it performs, as garbage collection, an operation of rewriting valid data (the valid aggregated data segment) stored in the specified zone to another zone (in the target cache pool into a target zone), in the data write based on the zone command, a logical address to which data is to be written is determined by the controller of the memory system such that data is sequentially written to the zone))
“and collect storage space of the source zone after all the valid data segments in the source zone are read” (Paragraph [0052] (upon receiving the zone reset command, the memory system causes the zone specified by the zone reset command to transition to empty, the zone of the empty is a zone capable of being performed the data erase operation and the memory system can perform the data erase operation on the zone that is caused to transition to the empty)).
Honda does not EXPLICITLY teaches: and aggregate the valid data segments in a same cache pool into a valid aggregated data segment.
However, in an analogous art, Feng teaches:
“and aggregate the valid data segments in a same cache pool into a valid aggregated data segment” (Page 2 Lines 56-57 and Page 3 Lines 1-6 (the polymerization is carried out to the target strip file to obtain an aggregated data block, comprising, determining the list of each file segment in the target stripe file, creating the data block and the data of each file segment into the data block to obtain the aggregated data block)).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Feng and apply them on teachings of Honda for the non-transitory computer-readable storage medium “and aggregate the valid data segments in a same cache pool into a valid aggregated data segment”. One would be motivated as the method provides reducing the number of HDDs, reducing addressing time, accelerate the data writing speed, the cache data in the SSD to HDD, it can fully uses the fast read-write performance of the SSD, it can improve the write performance of the storage system and improve the user experience (Fengi, Page 4 Lines 17-21]).
Claims 3, 5, 13 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Honda et al (US PGPUB 20250199685) in view of Feng et al (CN 109376100 A)) and in further view of Atkisson et al (US PGPUB 20130166816).
As per claim 3:
Honda and Feng teach the method of claim 1 above.
Honda further teaches:
“wherein reading each valid data segment from the source zone comprises” (Paragraph [0074] (the data to be copied is read from the storage location corresponding to the copy source logical address among a plurality of storage locations included in a storage area corresponding to a copy source zone includes))
“ or determining, according to a data volume of each adjacent valid data segment and a data volume of an invalid data segment between adjacent valid data segments in the source zone, at least two adjacent valid data segments and the invalid data segment between the at least two valid data segments as an aggregated data segment, and reading the aggregated data segment in one shot from the source zone” (Paragraph [0036] and Paragraph [0124] (the data stored in a segment associated with the information specifying data is valid data, on the other hand, data stored in a segment that is not associated with the information specifying data is invalid data, the GC processing unit may determine the Victim zone by referring not only to the GC recommended zone list received but also to metadata indicating valid data (a data volume of each adjacent valid data segment and a data volume of an invalid data segment between adjacent valid data segments) in each zone managed by the host device))).
Honda and Feng do not EXPLICITLY teach: in response to a data volume of any valid data segment in the source zone exceeding a first data volume threshold, directly reading the any valid data segment from the source zone.
However, in an analogous art, Atkisson teaches:
“in response to a data volume of any valid data segment in the source zone exceeding a first data volume threshold, directly reading the any valid data segment from the source zone” (Paragraph [0322] (the read request module may store the data in the cache, adding the data to a read pool, in response to the read request count satisfying a read request threshold number of read requests)).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Atkisson and apply them on teachings of Honda and Feng for the method “in response to a data volume of any valid data segment in the source zone exceeding a first data volume threshold, directly reading the any valid data segment from the source zone”. One would be motivated as the garbage collector bypass allows packets to be read into the read data pipeline and then transferred directly to the write data pipeline without being routed out of the solid-state storage controller, is part of a system that operates within the cache which allows the cache to manage data so that data is systematically spread throughout the solid-state storage media and to improve performance, data reliability and to avoid overuse and underuse of any one location or area of the solid-state storage media (Atkisson, Paragraph [145]).
As per claim 5:
Honda, Feng and Atkisson teach the method of claim 3 above.
Honda further teaches:
“wherein writing the read valid data segments into the cache pools corresponding to the file objects to which the valid data segments belong in the memory comprises” (Paragraph [0040] and Paragraph [0051] (the host device transmits, to the memory system, a write command for writing the read valid data to another zone i.e. the host device may transmit, to the memory system, a read/write command for copying valid data stored in a zone to be performed garbage collection to another zone and the buffer memory is used as a write/read buffer for temporarily storing data read from the nonvolatile memory and data to be written to the nonvolatile memory includes))
“acquiring valid data segments from the aggregated data segment” (Paragraph [0139] (the host device transmits to the memory system read commands to read the valid data, upon receiving the read commands, the memory system reads the valid data and transmits them to the host device))
“and writing the valid data segments into the cache pools corresponding to the file objects to which the valid data segments belong in the memory respectively in a case that the aggregated data segment is read in one shot from the source zone” (Paragraph [0141] (the host device transmits to the memory system a write command to write the valid data which are read from the zones 5 and 6 to the zone 7 and based on the write command received from the host device, the memory system writes the valid data to the zone 7)).
As per claim 13, the claim is rejected based upon the same rationale given for the parent claim 11 and the claim 3 above.
As per claim 15, the claim is rejected based upon the same rationale given for the parent claim 13 and the claim 5 above.
Claims 4 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Honda et al (US PGPUB 20250199685) in view of Feng et al (CN 109376100 A)) and in further view of Atkisson et al (US PGPUB 20130166816) and . Mori et al (US PGPUB 20230297275)
As per claim 4:
Honda, Feng and Atkisson teach the method of claim 3 above.
Honda further teaches:
“wherein determining, according to the data volume of each adjacent valid data segment and the data volume of the invalid data segment between the adjacent valid data segments in the source zone, the at least two adjacent valid data segments and the invalid data segment between the at least two valid data segments as the aggregated data segment comprises” (Paragraph [0036] and Paragraph [0124] (the data stored in a segment associated with the information specifying data is valid data, on the other hand, data stored in a segment that is not associated with the information specifying data is invalid data, the GC processing unit may determine the Victim zone by referring not only to the GC recommended zone list received but also to metadata indicating valid data (a data volume of each adjacent valid data segment and a data volume of an invalid data segment between adjacent valid data segments) in each zone managed by the host device includes)).
Also, Feng further teaches:
“and a proportion of a total data volume of invalid data segments is less than a first preset proportion in a case that the first adjacent valid data segment and the first adjacent invalid data segment after the first valid data segment are added into the aggregated data segment” (Page 3 Lines 1-6 and Page 3 Lines 29-30 (the polymerization is carried out to the target strip file to obtain an aggregated data block, including determining the list of each file segment (first adjacent valid data segment and the first adjacent invalid data segment after the first valid data segment) in the target stripe file, the data of each file segment into the data block to obtain the aggregated data block and judging whether the empty section (invalid data segment) between each of the file segment in the target stripe file whether is less than the preset range threshold value)).
Honda, Feng and Atkisson do not EXPLICITLY teach: after adding any first valid data segment into the aggregated data segment, adding a first adjacent valid data segment and a first adjacent invalid data segment after the first valid data segment into the aggregated data segment in response to determining that a data volume of the first adjacent invalid data segment after the first valid data segment is less than a second data volume threshold.
However, in an analogous art, Mori teaches:
“ after adding any first valid data segment into the aggregated data segment, adding a first adjacent valid data segment and a first adjacent invalid data segment after the first valid data segment into the aggregated data segment in response to determining that a data volume of the first adjacent invalid data segment after the first valid data segment is less than a second data volume threshold” (Paragraph [0108] (while the physical block stores a certain data segment (first data segment), when receiving a second data segment from the host with a designation of a logical address of the same value as a logical address designated for the first data segment, the memory controller regards the first data segment as invalid and the second data segment as valid, the memory controller causes the host write processor to write the second data segment to the NAND memory and thus, the user data stored in the NAND memory may include not only a valid data segment but also an invalid data segment))).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Mori and apply them on teachings of Honda, Feng and Atkisson for the method “after adding any first valid data segment into the aggregated data segment, adding a first adjacent valid data segment and a first adjacent invalid data segment after the first valid data segment into the aggregated data segment in response to determining that a data volume of the first adjacent invalid data segment after the first valid data segment is less than a second data volume threshold”. One would be motivated as the host read processor can determine whether or not to perform a prefetch operation based on a result of such an accurate determination as to whether the user data segments are being read in the same order as the writing order, the host read processor can improve the effect of the prefetch operation to improve the read performance (Mori, Paragraph [105]).
As per claim 14, the claim is rejected based upon the same rationale given for the parent claim 13 and the claim 4 above.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Merrill et al, (US PGPUB 20140380317), a parallel processing unit (PPU) subdivides a list of inputs into sequentially-ordered segments and assigns each segment to a streaming multiprocessor (SM) included in the PPU. Notably, the SMs may operate in parallel. Each SM executes write operations on a segment descriptor that includes the status, aggregate, and inclusive-prefix associated with the assigned segment. Further, each SM may execute read operations on segment descriptors associated with other segments. In operation, each SM may perform reduction operations to determine a segment-wide aggregate, may perform look-back operations across multiple preceding segments to determine an exclusive-prefix, and may perform a scan seeded with the exclusive prefix to generate output data.
Sokolov et al, (US PGPUB 20170220264), various zone forwarding management techniques disclosed herein generally provide efficient methods of data caching, steering, mapping, and migration to reduce write amplification and command latency. In one implementation, a zone-forward storage medium management method includes receiving commands to write data sets to target LBAs included in a consecutive sequence of LBAs, selectively mapping the sequence of LBAs to a plurality of contiguous physical zones, and selectively writing the data sets to the physical zone.
Zhang et al, (US PGPUB 20160179386), data being stored in a block of flash memory system may be characterized as being frequently modified or infrequently modified (hot/cold) based on a heuristic. When performing garbage collection, if the data from hot blocks is consolidated and data from cold blocks is separately consolidated by writing the data to different free blocks, the number of write operations to perform the garbage collection may be reduced. The lower “write amplification” contributes to increasing the lifetime of the memory circuit.
Blount et al, (US PGPUB 20190138517), a method, a computing device, and a non-transitory machine-readable medium for assessing data segments for garbage collection is provided. In some embodiments, the method includes identifying a plurality of data segments. A first rate at which data within each of the plurality of data segments has been invalidated since a first point in time is determined, and a second rate at which data within each of the plurality of data segments has been invalidated since a second point in time subsequent to the first point in time is determined. The second rate is compared to the first rate for each of the plurality of data segments, and a garbage collection score is assigned to the respective data segment based on the comparison.
Karr et al, (US PGPUB 20220156087), a system and method for efficient use of zones in a storage system. The method includes: building a frontier set comprising one or more zones of one or more storage devices for writing to; writing data to at least one zone of the one or more zones included in the frontier set; and during a bootup sequence: accessing a frontier set list to identify the one or more zones in the frontier set.
Xie et al, (US PGPUB 20220404996), a data storage device includes a memory device and a controller coupled to the memory device. The data storage device supports zoned namespace. The controller is configured to maintain a zone timestamp table that includes a corresponding timestamp for each zone and add a timestamp to each garbage collection block of the memory device. The controller is further configured to scan a garbage collection block from a last physical block address (PBA) entry to a first PBA entry, determine a zone timestamp for the scanned PBA entry, and compare the zone timestamp to a timestamp of the garbage collection block.
Sela et al, (US PGPUB 20230384966), a storage system uses blocks of memory that are sized larger than a size of a zone. This means that the storage system stores multiple zones in a given block. Storing zones with different one properties in a given block can be problematic, so the storage system obtains zone property information for each zone and stores zones with similar zone properties in a given block.
Lin Chong-jian, (Chinese Patent CN 107315543 A), a read-write method and device data of the EC memory, said method comprises writing operation, the writing operation comprises: respectively setting the index section and a plurality of data segments in the memory, wherein several data blocks are set to store data in the segment of data, the index section is set in a plurality of index block, the index block corresponding to the data block, when writing data into the memory, according to the index of the index block data written on the corresponding the data sectors of the data block.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KAMAL K DEWAN whose telephone number is (571) 272-2196. The examiner can normally be reached on Mon-Fri 8:00 AM – 5:00 PM (EST). If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, TONY MAHMOUDI can be reached on 571-272-4078. 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 Patent Center. Status information for published applications may be obtained from Patent Center. Status information for unpublished applications is available through Patent Center to authorized users only. Should you have questions about access to Patent Center, 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.
/Kamal K Dewan/
Examiner, Art Unit 2163
/TONY MAHMOUDI/Supervisory Patent Examiner, Art Unit 2163