DETAILED ACTION
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 .
CLAIM INTERPRETATION
Claims in this application are not interpreted under 35 U.S.C. §112(f).
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-6, 9, 12-17 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over US Patent Application Publication No. US 2020/0004675 A1 (Park) in view of US Patent Application Publication No. US 2021/0034130 A1 (Guim) in further view of US Patent Application Publication No. US 2023/0379682 A1 (Chen).
Regarding claim 1 and analogous claims 12 and 20:
Park teaches, a method for memory management, the method comprising: receiving, by a memory device, a host command comprising first data, the first data being associated with a first location of a non-volatile memory; (by disclosing receiving a CMD includes receiving a write command and data for writing the data into the electronic device [0021]. The received command may also include metadata and a logical block address (a first location of a non-volatile memory), and may first be buffered in a volatile memory [0041-0043] [0062]. The metadata may be associated with a name space [0064] (a first location of a non-volatile memory). The memory system may be controlled by a memory controller (110) including a processor (112) executing firmware (FW) [Fig. 2]), based on a flush request and based on the first priority information, writing, by the memory device, the first data from a volatile memory to the non-volatile memory (by teaching that in response to a sudden power off (SPO) and receiving a control signal from the processor (112) (flush request), and based on a namespace and a corresponding priority associated with that namespace, data may be preferentially flushed from the buffer (volatile memory) to the non-volatile memory based on the priority of the namespace of the data [0081-086]. The namespaces may be flushed according to a priority order because there may not be enough power in a backup power source to flush all of the namespaces [0067-0068] [0081-0086]).
Park does not explicitly disclose, but Guim teaches that a received command to store data may include an indicated priority (i.e., a host command comprising first priority information associated with first data as taught through the combination with Park) (by teaching that a level of criticality may be provided by the software stack and conveyed as part of the data payloads [0045]) storing, by the memory device, the first priority information in a priority table of the memory device (by teaching the resource (510) that may keep track in a table of memory ranges or list of ranges, an amount of power needed to flush the memory range, and a priority/criticality of the data for the memory range in a table for data that it needs to flush, such data stored in a volatile memory or cache [Fig. 5A] [0046]) accessing, by the memory device, the first priority information from the first priority table, and based on the first priority information, flushing the data (by teaching that a priority based manager can query all resources in response to a power outage to access the fields in the table indicating the priority of data and the amount of power to flush. The power manager can then allocate backup power to the resources based on the priority of the data, and the resources can perform data flushing to persistent media using allocated backup power according to a priority order of the data [0046-0050]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the flushing of namespaces according to a priority when there is not enough power to backup all namespaces in the event of a power loss as taught by Park to include receiving an associated priority with the data or application storing the data as part of the storage request, and storing the memory ranges and priorities in a table with an estimated power to flush the data so that they can be reported to a power manager to negotiate for an amount of backup power and then later used to flush the data according to a priority order as taught by Guim.
One of ordinary skill in the art would have been motivated to make this modification because it may allow an application to resume as though only interrupted and may allow for backup power to be effectively allocated according to priority as taught by Guim in [0029] [0032].
Guim does not explicitly disclose, but Chen teaches, the priority table being accessible to a host via one or more control and status registers (CSR) of the memory device (by teaching a bound memory table (735), with entries that indicate a priority level associated with the described block of memory in a memory range. A higher priority indicates cache lines that should be flushed firstly over other cache lines with a lower priority. The priority levels may be set by a host by writing to a control register (730) [0055]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the priorities in the table used to flush data from the resources according to a priority order as taught by Park in view of Guim to include being modifiable by a host write to a status register as taught by Chen.
One of ordinary skill in the art would have been motivated to make this modification because it would allow the priority levels indicating which data should be flushed firstly to be dynamically modifiable by the host as taught by Chen in [0055].
Regarding claim 2 and analogous claim 13:
The method of claim 1 is made obvious by Park in view of Guim in further view of Chen (Park-Guim-Chen).
Park further discloses, wherein: the memory device comprises a host interface ((111) [Fig. 2]) configured to receive the host command from the host via a first protocol (the host interface (111) can implement one of the various protocols listed in [0037]) and the host command comprises first location information for identifying the first location of the non-volatile memory (by teaching that a host request address may include an LBA that may be translated into a physical address for writing data to the non-volatile memory device. Furthermore, the denoted namespace may indicate a partition of the non-volatile memory [0063-0065]).
Regarding claim 3 and analogous claim 14:
The method of claim 1 is made obvious by Park-Guim-Chen.
Park further discloses, further comprising receiving, by the memory device, the flush request based on a power event (by teaching that in response to a sudden power off (SPO) and receiving a control signal from the processor (112) (flush request), and based on a namespace and a corresponding priority associated with that namespace, data may be preferentially flushed from the buffer (volatile memory) to the non-volatile memory based on the priority of the namespace of the data [0081-086]).
Regarding claim 4 and analogous claim 15:
The method of claim 1 is made obvious by Park-Guim-Chen.
Park discloses wherein the memory device comprises a cache controller for initiating, based on the flush request, flushing operations according to priority levels (by teaching the memory controller (113), which flushes the cached data cached in the buffer memory (115) into the non-volatile memory (120) according to the priority of the namespaces [Figs. 1-2] [0062] [0066-0068]).
Park does not explicitly disclose, but Guim teaches according to priority levels in the priority table (by teaching that a priority based manager can query all resources in response to a power outage to access the fields in the table indicating the priority of data and the amount of power to flush. The power manager can then allocate backup power to the resources based on the priority of the data, and the resources can perform data flushing to persistent media using allocated backup power according to a priority order of the data as indicated by the table [0046-0050]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the flushing of namespaces according to a priority when there is not enough power to backup all namespaces in the event of a power loss as taught by Park to include receiving an associated priority with the data or application storing the data as part of the storage request, and storing the memory ranges and priorities in a table with an estimated power to flush the data so that they can be reported to a power manager to negotiate for an amount of backup power and then later used to flush the data according to a priority order as taught by Guim.
One of ordinary skill in the art would have been motivated to make this modification because it may allow an application to resume as though only interrupted and may allow for backup power to be effectively allocated according to priority as taught by Guim in [0029] [0032].
Regarding claim 5 and analogous claim 16:
The method of claim 1 is made obvious by Park-Guim-Chen.
Park further discloses, further comprising: based on the flush request, accessing, by the memory device, address information associated with the first priority information (by teaching that to flush data, a host request may include an LBA, which is translated into a physical address used for storing the data to the non-volatile memory, the request is associated with a namespace, which is associated with a priority (associated with the first priority information) [0063-0067]).
Regarding claim 6 and analogous claim 17:
The method of claim 1 is made obvious by Park-Guim-Chen.
Park does not explicitly disclose, but Guim teaches, wherein: the priority table comprises second priority information associated with second data, the second data being associated with a second location of the non-volatile memory, the second priority information being different from the first priority information; and the method further comprises, based on at least one of the first priority information or the second priority information, determining a relative order for writing the first data and the second data from the volatile memory to the non-volatile memory (by teaching that the table may include a plurality of memory ranges, corresponding power needed to flush each range, and corresponding priorities of each range. The priorities may be different (i.e., critical data level 1, critical data level 2) such that a plurality of address ranges may be flushed according to a priority order [Fig. 5A] [0044-0056]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the flushing of namespaces according to a priority when there is not enough power to backup all namespaces in the event of a power loss as taught by Park to include receiving an associated priority with the data or application storing the data as part of the storage request, and storing the memory ranges and priorities in a table with an estimated power to flush the data so that they can be reported to a power manager to negotiate for an amount of backup power and then later used to flush the data according to a priority order as taught by Guim.
One of ordinary skill in the art would have been motivated to make this modification because it may allow an application to resume as though only interrupted and may allow for backup power to be effectively allocated according to priority as taught by Guim in [0029] [0032].
Regarding claim 9:
The method of claim 1 is made obvious by Park-Guim-Chen.
Park further discloses, wherein the memory device prioritizes the writing of the first data over writing second data from the volatile memory to the non-volatile memory based on the first data being associated with a higher priority level than the second data (by teaching that some namespace data are prioritized for flushing over other namespace data when there is not enough power to flush all the namespaces [0067-0068] [0081-0086]).
Claims 7-8 and 18-19 are rejected under 35 U.S.C. 103 as being unpatentable over Park-Guim-Chen in further view of US Patent Application Publication No. US 2020/0104056 A1 (Benisty).
Regarding claim 7 and analogous claim 18:
The method of claim 1 is made obvious by Park-Guim-Chen.
Park further discloses receiving a first device command associated with writing first data from the volatile memory to the non-volatile memory with a receiving a second device command associated with writing second data from the volatile memory to the non-volatile memory (by teaching that write data received from the host (110) as part of a write command is cached in the buffer memory (115). The memory device may receive a plurality of write commands, including commands associated with different namespaces, such that it would have to flush data associated with multiple namespaces [0021] [0063-0067] [0081-0085]).
Park does not explicitly disclose, but Benisty teaches that the commands may be received in first queue associated with a first priority level and by a second queue associated with a second priority level (by teaching that queues may be stored in the controller memory buffer (CMB), which may be in the RAM (116) [0046]. Additionally, there may be a plurality of namespaces, which are associated with different priorities (first and second priority level). Each namespace may have its own queue (first and second queue) [0072] [0078] [0091]. The commands are for writing data to the memory (104) [Fig 2A] [Fig. 10]. The namespaces and therefore queues are given different priority levels such that a different number of resources are allocated to the different namespaces, in this way one namespace may receive more resources than another [0072] [0078] [0091]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the write commands for the different namespaces which include write data cached in a buffer memory as taught by Park to include being received in namespace queues, where the namespaces are allocated different amounts of resources based on a namespace priority as taught by Benisty.
One of ordinary skill in the art would have been motivated to make this modification because it would allow the implementation of a QoS methodology where each queue is known to have certain performance parameters, and it allows namespaces to have guaranteed performance levels without being starved by other higher priority commands as taught by Benisty in [0072] [0078].
Regarding claim 8 and analogous claim 19:
The method of claim 7 is made obvious by Park-Guim-Chen in further view of Benisty.
Park does not explicitly disclose, but Benisty teaches, wherein the first queue and the second queue are associated with at least one of a priority scheme or an arbitration scheme configured by software (by teaching that which queue is executed from next is based on a priority arbitration scheme based on available resources as seen in [Fig. 9] and as configured by a host command (904) as implemented by software running on the controller (802) [0038] [0077-0079] [0083-0094]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the write commands for the different namespaces which include write data cached in a buffer memory as taught by Park to include being received in namespace queues, where the namespaces are allocated different amounts of resources based on a namespace priority as configured by the controller from instructions from a host as taught by Benisty.
One of ordinary skill in the art would have been motivated to make this modification because it would allow the implementation of a QoS methodology where each queue is known to have certain performance parameters, and it allows namespaces to have guaranteed performance levels without being starved by other higher priority commands as taught by Benisty in [0072] [0078].
Claims 10-11 are rejected under 35 U.S.C. 103 as being unpatentable over Park-Guim-Chen in further view of US Patent Application Publication No. US 2005/0117418 A1 (Jewell).
Regarding claim 10:
The method of claim 1 is made obvious by Park-Guim-Chen.
Park does not explicitly disclose, but Jewell teaches, wherein the priority table comprises confidence level information that is determined based on an energy level associated with the memory device (by teaching that whether or not the number of hardened pages exceeds a guarantee (whether the backup power is sufficient to backup all the pages the host/hosts believe will be backed up), the system enters an exposed state. The exposed state means that not all pages will be able to be backed up because the charge level of the secondary power supply is not sufficient. In this case, the system will need to harden the softened data to reduce the amount of hardened data to the guaranteed level. The system can allocate power to the exposed system according to a priority order [0102-0108]. The system may enter the exposed state due to re-estimating the power capacity of the battery due to aging [0101]. The system needs to inform the clients of the exposed state so that they may soften their pages as quickly as possible [0032] [0043] [0046] [0055] [0084] [0096] [0104]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the information in the priority table as taught by Park in view of Guim to include an indication of whether the pages are hardened or softened, whether the system is exposed (confidence level), and how many pages need to be written to reduce the number of pages to the guaranteed amount for hardening (confidence level) as taught by Jewell.
One of ordinary skill in the art would have been motivated to make this modification because the power manager could use this information to place the system into a read-only state so that more hardened data is not written that worsens the number of exposed pages and returns the system to a read/write state as quickly as possible, and reporting this information to the clients could allow them to soften pages to also return the system to a guaranteed state more quickly, so that the system is not exposed and they won’t need to have pages hardened in a priority order where some will lose the pages permanently in a power loss as taught by Jewell in [0096] [0105-0108].
Regarding claim 11:
The method of claim 10 is made obvious by Park-Guim-Chen in further view of Jewell.
Park does not explicitly disclose, but Jewell teaches, wherein: the confidence level information is determined based on an amount of energy that is consumed for storing the first data to the non-volatile memory; and the first priority information is determined based on the confidence level information (by teaching that whether or not the number of hardened pages exceeds a guarantee (whether the backup power is sufficient to backup all the pages the host/hosts believe will be backed up (i.e., determined based on an amount of energy that is consumed for storing the first data to the non-volatile memory)), the system enters an exposed state. The exposed state means that not all pages will be able to be backed up because the charge level of the secondary power supply is not sufficient. In this case, the system will need to harden the softened data to reduce the amount of hardened data to the guaranteed level. The system can allocate power to the exposed system according to a priority order [0102-0108]. The system may enter the exposed state due to re-estimating the power capacity of the battery due to aging [0101]. The system may also inform the clients of the exposed state so that they may soften their pages. Softening pages means that pages that were marked as being hardened (needing to be stored in non-volatile memory) are no longer required to be hardened (and accordingly do not need to be stored to volatile memory) [0032] [0043] [0046] [0055] [0084] [0096] [0104]).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the information in the priority table as taught by Park in view of Guim to include an indication of whether the pages are hardened or softened, whether the system is exposed (confidence level), and how many pages need to be written to non-volatile memory or softened (marked as no longer needing to be saved to non-volatile memory (have their priority reduced) (priority determined based on confidence level information) to reduce the number of pages to the guaranteed amount for hardening (confidence level) as taught by Jewell.
One of ordinary skill in the art would have been motivated to make this modification because the power manager could use this information to place the system into a read-only state so that more hardened data is not written that worsens the number of exposed pages and returns the system to a read/write state as quickly as possible, and reporting this information to the clients could allow them to soften pages to also return the system to a guaranteed state more quickly, so that the system is not exposed and they won’t need to have pages hardened in a priority order where some will lose the pages permanently in a power loss as taught by Jewell in [0096] [0105-0108].
Response to Amendments/Arguments
Applicant' s arguments with respect to claims 1-20 have been considered but are moot because the new ground of rejection, including Chen, does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument, which were the newly amended limitations.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US Patent Application Publication No. US 2021/0056016 A1 (Bulusu) – teaches a flush aperture that stores data marked as critical for flushing from a volatile to a non-volatile memory during a power loss event [Fig. 8]. Critical data will be flushed before non-critical data [0287]. The flushing process may include an order based on criticality [00234-247].
US Patent Application Publication No. US 2019/0227712 A1 (Katarina) – teaches that high priority data packets may be flushed first from volatile cache to non-volatile memory according to a priority/criticality of the data [0027].
US Patent No. US 10,783,048 B2 (Kumar) – teaches that memory modules are assigned a priority and during a power loss, data from each of the memory modules is preserved to a non-volatile memory according to the priority order [Fig. 8].
US Patent Application Publication No. US 2019/0042113 A1 (Li) – teaches to persist metadata from a volatile to a non-volatile memory according to a priority of the metadata [Fig. 3C] [0018].
US Patent Application Publication No. US 2018/0285260 A1 (Lu) – teaches a cache priority table includes entries of the memory side cache address space and indicates a priority of the data for restoration after a power loss [0035]. The cache data may also be persisted in response to the power loss according to a priority order or level of criticality [0038].
US Patent Application Publication No. US 2015/0293714 A1 (Matsubara) – teaches persisting data from the devices with the smallest caches first so that power may be removed from those caches, which may then be used to continue to persist data from the larger caches, which allows more data to be persisted than other orders which requires all caches to be powered for longer [Figs. 13-14] [0194-0207].
US Patent Application Publication No. US 2023/0400988 A1 (Muthiah) – recognizes the importance of saving the most important data first because not all data may be able to be persisted from a volatile to a non-volatile memory based on an available power after a power loss event [0031].
US Patent Application Publication No. US 2019/0107950 A1 (Sankaranarayanan) – teaches a criticality/save registers that indicates whether each memory range in the volatile memory is supposed to be backed up to non-volatile memory in the event of a power loss [Fig. 1] [0026].
US Patent Application Publication No. US 2021/0141433 A1 (Watt) – teaches to save more important data first as not all data may be able to be persisted from a volatile to non-volatile memory in light of a power failure [0036-0042]).
US Patent Application Publication No. US 2016/0267007 A1 (Zheng) – teaches backup priority information (730) that is used to selectively back up important data, such as dirty data, from volatile to non-volatile memory in response to a power failure [0121-0126] [0138].
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 CURTIS JAMES KORTMAN whose telephone number is (303)297-4404. The examiner can normally be reached Monday through Friday 7:30 AM through 4:00 PM MT.
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, Reginald Bragdon can be reached at (571) 272-4204. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/CURTIS JAMES KORTMAN/ Primary Examiner, Art Unit 2139