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 .
This Office Action is responsive to amendment filed on 02/20/2026. Claim 4 was canceled before. Claims 1-3 and 5-20 have been examined and are pending in this application.
Response to Arguments
Applicant's arguments filed 02/20/2026 have been fully considered but they are not persuasive.
Applicant argues, page 10 of the remarks, “Xu fails to teach or suggest that each of its descriptors includes a command index associated with the command, as recited in the pending claims.”
The Examiner respectfully disagrees. Table 1 (following paragraph [0130]) of Xu describes “Firmware Descriptor Fields”. Control field SC1 is used for RAID control and may include a command RAID_CMD and an identifier RAID_ID. “The host interface module may create an identification for the command (referred to herein as a command index).” Paragraph [0001] of the instant filed specification. Xu’s control field SC1 may include a command RAID_CMD which is mapped to the command index.
Applicant argues, page 11 of the remarks, “O’Shea fails to teach or suggest that when an error occurs in processing the current descriptor for a command, its descriptor ring manager generates a termination flag for the command index associated with the command and flags the command index and as an error command index to prevent the remaining descriptors associated with the command from being processed. Although O’Shea terminates the user data transfer, it does so in a different way, i.e., it does so by generating another descriptor (i.e., a response descriptor that is placed on a response descriptor ring to be processed and terminate the user data transfer).”
The Examiner respectfully disagrees. O’Shea teaches “the ring manager 504 immediately generates a response descriptor and places it on the response ring 217 (FIG. 2) to terminate the IO (i.e., the user data transfer).” col 25 lines 12-18 of O’Shea. The generation of a response descriptor by O’Shea notifies that the IO request for user data transfer is terminated.
In view of the foregoing remarks, independent claims 1, 13, and 16 are not in a condition for allowance. Claims depending therefrom, either directly or indirectly, are also not in a condition for allowance.
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, 5-8, 10-11, 13, 15-16, and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Xu et al. US 2014/0195727 (“Xu”) in view of O’Shea et al. US 8,645,623 (“O’Shea”).
As per independent claim 1, Xu teaches A storage device (“FIG. 1 shows a non-volatile semiconductor memory (NVSM) storage system 10.” Para 0048 and FIG. 1) communicatively coupled to a host device (“The NVSM storage system 10 includes a host 13” Para 0049 and FIG. 1) that transmits commands to access data on the storage device (“The host control module 16 transmits and receives host data to and from the NVSM drive 14 via the host interface 18.” Para 0052 and FIG. 1), the storage device comprising:
a first memory device to store data (“The NVSM control module 27 controls data transfers to and from the NVSM 12.” Para 0049 and FIG. 1);
a host interface module to (“NVSM control module 27”, para 0065 and FIG. 1): receive, from the host device, a command to access data on the first memory device (“During a data transfer event, the NVSM control module 27 … receives the access request signals 30.” Para 0065 and FIG. 1);
generate one or more descriptors for the command (“NVSM control module 27 generates the descriptors 84 … based on the access request signals 30.” Para 0065 and FIG. 1. “The descriptors may indicate, for example, whether a read operation or a program (i.e. write) operation is to be performed, the amount of data to be transferred, and the addresses to access in the NVSM.” Para 0007), wherein each descriptor includes a command index associated with the command (“The descriptors generated based on the template 550 may be generic and/or flexible descriptors. Each of the descriptors may include source control fields SRC_CTRL … The values in the fields … are input parameter index values, which may be obtained from the firmware descriptor and may replace corresponding values in the template.” Para 0146. See Table 1. To clarify further the content of Table 1 (following paragraph [0130]), SC1 is a source control field. This field may include a command RAID_CMD);
load a current descriptor for the command in a second memory device on the storage device and process the current descriptor (“The descriptors 84 are stored in a second non-volatile memory 94” para 0065 and FIG. 1).
Xu discloses all of the claim limitations from above and additionally teaches “to reaccess NVSM 12 as a result of errors that occur during access of the NVSM 12.” Para 0048. That is, Xu, instead of terminating the descriptor processing, attempts to reaccess the non-volatile memory in response to an error. Therefore, Xu does not explicitly teach “determine that an error occurred when processing the current descriptor for the command and generate a termination flag for the command index associated with the command” and “flag the command index as an error command index and prevent remaining descriptors associated with the command and including the command index from being processed”.
However, in an analogous art in the same field of endeavor, O’Shea teaches determine that an error occurred when processing the current descriptor for the command (“the ring manager 504 logically parses the request descriptor ring 215 (FIG. 2) for common programming errors. … if any errors are detected in the parsing stage, the ring manager 504 immediately generates a response descriptor” col 25 lines 12-18) and generate a termination flag for the command index associated with the command (“the ring manager 504 immediately generates a response descriptor and places it on the response ring 217 (FIG. 2)” col 25 lines 12-18);
flag the command index as an error command index (“the ring manager 504 immediately generates a response descriptor and places it on the response ring 217 (FIG. 2)” col 25 lines 12-18) and prevent remaining descriptors associated with the command and including the command index from being processed (“the ring manager 504 immediately generates a response descriptor and places it on the response ring 217 (FIG. 2) to terminate the IO (i.e., the user data transfer).” col 25 lines 12-18).
Given the teaching of O’Shea, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to further modify the scope of the invention of Xu with “determine that an error occurred when processing the current descriptor for the command and generate a termination flag for the command index associated with the command” and “flag the command index as an error command index and prevent remaining descriptors associated with the command and including the command index from being processed”. The motivation would be that the invention can be implemented in a low cost structured ASIC design since protocol complexity is minimal, col 2 lines 37-38 of O’Shea.
As per dependent claim 5, Xu in combination with O’Shea discloses the device of claim 1. Xu may not explicitly disclose, but O’Shea teaches wherein the host interface module prevents the remaining descriptors from being processed by preventing the remaining descriptors from being written in the second memory (“the ring manager 504 immediately generates a response descriptor and places it on the response ring 217 (FIG. 2) to terminate the IO (i.e., the user data transfer).” col 25 lines 12-18).
The same motivation that was utilized for combining Xu and O’Shea as set forth in claim 1 is equally applicable to claim 5.
As per dependent claim 6, Xu in combination with O’Shea discloses the device of claim 1. Xu teaches wherein the host interface module includes: a host interface adapter to exchange information with the host device (“The host control module 16 transmits and receives host data to and from the NVSM drive 14 via the host interface 18.” Para 0052 and FIG. 1);
at least one accelerator to process the command (“the descriptor generating module 103 may include logic devices and/or a processor, which may execute firmware for descriptor generation.” Para 0080 and FIG. 1) and forward the command to a data transfer module (“The NVSM control module 27 may generate a descriptor command signal to generate hardware descriptors and forward the descriptor command signal to the descriptor generating module 103.” Para 0081 and FIG. 1).
the data transfer module to generate the one or more descriptors for the command (“The command management module 60 communicates with the descriptor generating module 103 and may receive and/or execute descriptors (e.g., hardware descriptors) received from the descriptor generating module 103.” Para 0084 and FIG. 1. “The descriptors may indicate, for example, whether a read operation or a program (i.e. write) operation is to be performed, the amount of data to be transferred, and the addresses to access in the NVSM.” Para 0007).
As per dependent claim 7, Xu in combination with O’Shea discloses the device of claim 6. Xu teaches wherein the host interface adapter performs a primary check when the command is received from the host device, creates the command index, and sends the command to an accelerator for further processing (“The NVSM control module 27 may generate a descriptor command signal to generate hardware descriptors and forward the descriptor command signal to the descriptor generating module 103.” Para 0081 and FIG. 1).
As per dependent claim 8, Xu in combination with O’Shea discloses the device of claim 6. Xu teaches wherein the data transfer module transmits a descriptor index for the current descriptor to the host interface adapter and loads the current descriptor in the second memory device (“In executing the firmware 92, the NVSM control module 27 generates the descriptors 84 (referred to below as FW descriptors) based on the access request signals 30. The descriptors 84 are stored in a second non-volatile memory 94” para 0065 and FIG. 1).
As per dependent claim 10, Xu in combination with O’Shea discloses the device of claim 6. Xu teaches wherein the host interface adapter is communicatively coupled to the data transfer module to receive and transmit information in queues (“The NVSM control module 27 may generate a descriptor command signal to generate hardware descriptors and forward the descriptor command signal to the descriptor generating module 103. The descriptor command signals may be stored in a first-in-first-out (FIFO) memory 104 in the descriptor generating module 103.” Para 0081 and FIG. 1).
As per dependent claim 11, Xu in combination with O’Shea discloses the device of claim 6. Xu may not explicitly disclose, but O’Shea teaches wherein the host interface adapter generates a completed descriptor for a completed transaction and transmits a completed descriptor index for the completed descriptor to the data transfer module (“Each request descriptor produced by the CPU Section 204 in FIG. 2, has a corresponding response descriptor produced by the ring manager 504 once a user data transfer or ‘IO’ has completed. This response descriptor typically displays status information of the user data transfer and is placed on a response ring in local memory by the ring manager.” Col 21 lines 38-43).
The same motivation that was utilized for combining Xu and O’Shea as set forth in claim 6 is equally applicable to claim 11.
As per claims 13 and 15, these claims are respectively rejected based on arguments provided above for similar rejected claims 1 and 5.
As per claims 16 and 19-20, these claims are respectively rejected based on arguments provided above for similar rejected claims 1 and 10-11.
Claims 2-3 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Xu in view of O’Shea and in further view of Kang et al. US 2016/0371034 (“Kang”).
As per dependent claim 2, Xu in combination with O’Shea discloses the device of claim 1. Xu teaches wherein in processing the current descriptor, the host interface module writes the current descriptor in the second memory (“The descriptors 84 are stored in a second non-volatile memory 94” para 0065 and FIG. 1).
Xu and O’Shea may not explicitly disclose, but in an analogous art in the same field of endeavor, Kang teaches and, using a descriptor index associated with the current descriptor, reads the current descriptor from the second memory (“generate a command index for facilitating command queuing and … allocate the first command to a first slot corresponding to the command index among a plurality of slots …” para 0009).
Given the teaching of Kang, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to further modify the scope of the invention of Xu and O’Shea with “and, using a descriptor index associated with the current descriptor, reads the current descriptor from the second memory”. The motivation would be that the command queueing method of the invention improves performance of a storage device, para 0286 of Kang.
As per dependent claim 3, Xu in combination with O’Shea discloses the device of claim 1. Xu teaches and the command index to identify the command (“SC8 This control field may be referred to as a command group identifier (ID) and used to identify a group of firmware descriptors stored in the memory 94.” Table 1).
Xu and O’Shea may not explicitly disclose, but in an analogous art in the same field of endeavor, Kang teaches wherein the current descriptor includes a descriptor index to identify a location in the second memory device where the current descriptor is stored (“generate a command index for facilitating command queuing and … allocate the first command to a first slot corresponding to the command index among a plurality of slots …” para 0009).
Given the teaching of Kang, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to further modify the scope of the invention of Xu and O’Shea with “wherein the current descriptor includes a descriptor index to identify a location in the second memory device where the current descriptor is stored”. The motivation would be that the command queueing method of the invention improves performance of a storage device, para 0286 of Kang.
As per dependent claim 14, this claim is rejected based on arguments provided above for similar rejected dependent claim 2.
Claims 9 and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Xu in view of O’Shea and in further view of Lee US 2024/0319920 (“Lee”).
As per dependent claim 9, Xu in combination with O’Shea discloses the device of claim 6. Xu and O’Shea may not explicitly disclose, but in an analogous art in the same field of endeavor, Lee teaches wherein the host interface adapter generates an error message when the command information in the current descriptor is associated with the termination flag and transmits the error message to the data transfer module, wherein the data transfer module stops loading the remaining descriptors associated with the command in the second memory based on the error message (“Before the descriptor is prefetched into the descriptor buffer 1361, the descriptor corresponding to the abort target command may be found in the submission queue 1350. The abort processor 1370 may store information indicating that the command corresponding to the descriptor corresponding to the abort target command is aborted.” Para 0157 and FIG. 23. Also see paras 0158-0159).
Given the teaching of Lee, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to further modify the scope of the invention of Xu and O’Shea with “wherein the host interface adapter generates an error message when the command information in the current descriptor is associated with the termination flag and transmits the error message to the data transfer module, wherein the data transfer module stops loading the remaining descriptors associated with the command in the second memory based on the error message”. The motivation would be that the invention improves performance, power efficiency, and area of a storage device, para 0006 of Lee.
As per dependent claim 17, this claim is rejected based on arguments provided above for similar rejected claim 9.
Claims 12 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Xu in view of O’Shea and in further view of Tsai et al. US 2016/0364179 (“Tsai”).
As per dependent claim 12, Xu in combination with O’Shea discloses the device of claim 1. Xu and O’Shea may not explicitly disclose, but in an analogous art in the same field of endeavor, Tsai teaches wherein the host interface module determines one of that the command index is associated with the termination flag when an error occurs while processing the current descriptor in the second memory device and if the command is an abort command received from the host (“the task management function request command can also be sent from the host 202 to the memory system 204 with an indication to abort the command queue, whereby each of the commands in the command queue are aborted by the memory system 204.” Para 0029 and FIG. 2).
Given the teaching of Tsai, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to further modify the scope of the invention of Xu and O’Shea with “wherein the host interface module determines one of that the command index is associated with the termination flag when an error occurs while processing the current descriptor in the second memory device and if the command is an abort command received from the host”. The motivation would be that the invention discloses “concurrent command execution”, para 0014 of Tsai, which improves efficiency of a storage device.
As per dependent claim 18, this claim is rejected based on arguments provided above for similar rejected dependent claim 12.
Conclusion
THIS ACTION IS MADE FINAL. 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 ZUBAIR AHMED whose telephone number is (571)272-1655. The examiner can normally be reached 7:30AM - 5:00PM EST.
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, HOSAIN T. ALAM can be reached at (571) 272-3978. 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.
/ZUBAIR AHMED/Examiner, Art Unit 2132
/HOSAIN T ALAM/Supervisory Patent Examiner, Art Unit 2132