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 .
Information Disclosure Statement
The information disclosure statement filed 8/12/26 fails to comply with the provisions of 37 CFR 1.97, 1.98 and MPEP § 609 because it does not follow the proper format for an IDS. It has been placed in the application file, but the information referred to therein has not been considered as to the merits. Applicant is advised that the date of any re-submission of any item of information contained in this information disclosure statement or the submission of any missing element(s) will be the date of submission for purposes of determining compliance with the requirements based on the time of filing the statement, including all certification requirements for statements under 37 CFR 1.97(e). See MPEP § 609.05(a).
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory obviousness-type double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); and In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on a non-statutory double patenting ground provided the conflicting application or patent either is shown to be commonly owned with this application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement.
Effective January 1, 1994, a registered attorney or agent of record may sign a terminal disclaimer. A terminal disclaimer signed by the assignee must fully comply with 37 CFR 3.73(b).
Claims 1-20 are rejected on the ground of non-statutory double patenting as being unpatentable over claims 1-16 of US Patent No. 11288180. Although the claims at issue are not identical, they are not patentably distinct from each other. Claim 1 of the US Patent, as an example, anticipates claim 1 of the instant application. Claim 1 of the instant application therefore is not patently distinct from the US Patent’s claim 1 and as such is unpatentable for obvious-type double patenting.
Claims 2-9, 12-18 and 20 of the instant application are anticipated by various limitations as recited in claims 1-16 of the US Patent and are rejected on the ground of non-statutory obviousness-type double patenting on the same rationale as claim 1 above.
Instant
Pat 11288180
1. A computer system, comprising: a storage device having: a host interface; a controller; non-volatile storage media; and firmware; and a plurality of accounts; and wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account; wherein the storage device stores a namespace map that defines a mapping between: logical addresses in a namespace identified by the namespace identifier; and logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; and wherein the firmware includes instructions which when executed by the controller, cause the controller to convert the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account
1. A computer system, comprising: a storage device having: a host interface; a controller; non-volatile storage media; and firmware; and a plurality of accounts; and wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account; wherein the storage device stores a namespace map that defines a mapping between: logical addresses in a namespace identified by the namespace identifier, wherein the respective account accesses the portion of the non-volatile storage media via the logical addresses in the namespace; and logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; wherein the firmware includes instructions which when executed by the controller, cause the controller to convert, using the namespace map, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account; wherein the namespace map includes a contiguous indicator having a value indicating a list of blocks, identified via block identifiers starting at a starting address in an array of the namespace map, is allocated from non-contiguous regions in the mapped logical address space.
2. The computer system of claim 1, wherein entire storage resources allocated for user data in the respective account are identified by the namespace identifier.
2. The computer system of claim 1, wherein entire storage resources allocated for user data in the respective account are identified by the namespace identifier.
3. The computer system of claim 2, wherein a size of the namespace corresponds to a quota of the entire storage resources allocated for user data in the respective account.
3. The computer system of claim 2, wherein a size of the namespace corresponds to a quota of the entire storage resources allocated for user data in the respective account.
4. The computer system of claim 3, wherein a size of the portion of the non-volatile storage media allocated to the respective account is smaller than the quota
4. The computer system of claim 3, wherein a size of the portion of the non-volatile storage media allocated to the respective account is smaller than the quota.
5. The computer system of claim 4, wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account based on usage of the portion of the non-volatile storage media allocated to the respective account.
5. The computer system of claim 4, wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account based on usage of the portion of the non-volatile storage media allocated to the respective account.
6. The computer system of claim 4, wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account in response to a determination that an unused portion, allocated from the non-volatile storage media to the respective account, is smaller than a threshold
6. The computer system of claim 4, wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account in response to a determination that an unused portion, allocated from the non-volatile storage media to the respective account, is smaller than a threshold.
7. The computer system of claim 4, wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account by adjusting the namespace map.
7. The computer system of claim 4, wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account by adjusting the namespace map.
8. The computer system of claim 2, wherein the controller of the storage device is configured by the firmware to adjust the size of the namespace in response to a change in the quota for the respective account.
8. The computer system of claim 2, wherein the controller of the storage device is configured by the firmware to adjust the size of the namespace in response to a change in the quota for the respective account.
9. The computer system of claim 8, wherein the controller of the storage device is configured by the firmware to adjust the size of the namespace by adjusting the namespace map.
The examiner notes that while “adjust a size” is taught by “increasing a size”
7. The computer system of claim 4, wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account by adjusting the namespace map.
12. The computer system of claim 11, wherein the predetermined size is a power of two.
9. The computer system of claim 1, wherein the predetermined size is a power of two.
13. The computer system of claim 1, wherein the storage device has a register storing a crypto key of the namespace during data access performed in the namespace.
10. The computer system of claim 1, wherein the storage device has a register storing a crypto key of the namespace during data access performed in the namespace.
14. The computer system of claim 1, wherein the host interface implements single root I/O virtualization.
11. The computer system of claim 1, wherein the host interface implements single root I/O virtualization.
15. The computer system of claim 14, wherein the namespace is attached to a virtual function of the storage device implemented via the single root I/O virtualization.
12. The computer system of claim 11, wherein the namespace is attached to a virtual function of the storage device implemented via the single root I/O virtualization.
16. The computer system of claim 1, wherein the each respective account in the plurality of accounts is configured with a single namespace identifier for identifying storage resources available to store user data in the each respective account.
13. The computer system of claim 1, wherein the each respective account in the plurality of accounts is configured with a single namespace identifier for identifying storage resources available to store user data in the each respective account.
17. A method implemented in a computer system, the method comprising: connecting a storage device to a host, the storage device having: a host interface; a controller; non-volatile storage media; and firmware; and configuring, in the host, a plurality of accounts, wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account; storing, in the storage device, a namespace map that defines a mapping between: logical addresses in a namespace identified by the namespace identifier; and logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; and converting, by the controller executing the firmware, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account.
14. A method implemented in a computer system, the method comprising: connecting a storage device to a host, the storage device having: a host interface; a controller; non-volatile storage media; and firmware; and configuring, in the host, a plurality of accounts, wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account; storing, in the storage device, a namespace map that defines a mapping between: logical addresses in a namespace identified by the namespace identifier, wherein the respective account accesses the portion of the non-volatile storage media via the logical addresses in the namespace; and logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; converting, by the controller executing the firmware and using at least the namespace map, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account; wherein the namespace map includes a contiguous indicator having a value indicating a list of blocks, identified via block identifiers starting at a starting address in an array of the namespace map, is allocated from non-contiguous regions in the mapped logical address space.
18. The method of claim 17, further comprising :monitoring, by the controller of the storage device, usage of the namespace; and adjusting, by the controller of the storage device, a size of the namespace based on the usage of the namespace in accordance with a quota of storage resources allocated to the account.
15. The method of claim 14, further comprising: monitoring, by the controller of the storage device, usage of the namespace; and adjusting, by the controller of the storage device, a size of the namespace based on the usage of the namespace in accordance with a quota of storage resources allocated to the account.
20. A non-transitory computer storage medium storing instructions which, when executed by a computer system, cause the computer system to perform a method, the method comprising: configuring, in a host coupled to a storage device, a plurality of accounts, the storage device having :a host interface; a controller; non-volatile storage media; and firmware; wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account; storing, in the storage device, a namespace map that defines a mapping between: logical addresses in a namespace identified by the namespace identifier; and logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; and converting, by the controller executing the firmware, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account.
16. A non-transitory computer storage medium storing instructions which, when executed by a computer system, cause the computer system to perform a method, the method comprising: configuring, in a host coupled to a storage device, a plurality of accounts, the storage device having: a host interface; a controller; non-volatile storage media; and firmware; wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account; storing, in the storage device, a namespace map that defines a mapping between: logical addresses in a namespace identified by the namespace identifier, wherein the respective account accesses the portion of the non-volatile storage media via the logical addresses in the namespace; logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; and converting, by the controller executing the firmware and using at least the namespace map, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account; wherein the namespace map includes a contiguous indicator having a value indicating a list of blocks, identified via block identifiers starting at a starting address in an array of the namespace map, is allocated from non-contiguous regions in the mapped logical address space.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claim(s) 1-5, 7-12 16-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Asano et al. 20180260334 herein Asano in view of Geml et al. 20180004559 herein Geml.
Per claim 1, Asano discloses: a host interface; (fig, 1 120) a controller; (fig. 1 130)non-volatile storage media; (fig.1 140) and firmware; and a plurality of accounts; (fig. 1 110) and wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account; (¶0036 and ¶0039; plurality of hosts wherein each host has NSID) wherein the storage device stores a namespace map that defines a mapping between: logical addresses in a namespace identified by the namespace identifier, (fig. 1 comp 132 and 134) wherein the respective account accesses the portion of the non-volatile storage media via the logical addresses in the namespace; (¶0038 and ¶0041) and logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; (¶0038 and ¶0041) and wherein the firmware includes instructions which when executed by the controller, cause the controller to convert, using the namespace map, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account (¶0038 and ¶0042).
Asano discloses multiple host comprising a dedicated namespace and name space ID wherein the plurality of host represent a logical construct of an account but does not explicitly disclose configuring in the host a plurality of accounts: a plurality of accounts; (fig. 1 110) and wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account.
However, Geml discloses: a plurality of accounts; and wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account (¶0011; In examples using the NVMe protocol, a logical unit of the storage device may be referred to as a namespace, such that the storage device may be logically divided into one or more namespaces. The host device may include multiple users and may control which namespaces of the data storage device each user may access.).
It would have been obvious to one having ordinary skill in the art at the effective filing date of the invention to combine the teachings of Asano and Geml’s authorized access control to hide namespaces from other VM/accounts. Geml prevents unauthorized access of virtual machines to namespaces. (¶0011).
Per claim 2, Asano discloses: wherein entire storage resources allocated for user data in the respective account are identified by the namespace identifier (¶0039).
Per claim 3, Asano discloses: wherein a size of the namespace corresponds to -- 59 --Patent ApplicationAttorney Docket No. 120426-129000/US a quota of the entire storage resources allocated for user data in the respective account (fig. 6, ¶0039 and ¶0043).
Per claim 4, Asano discloses: wherein a size of the portion of the non-volatile storage media allocated to the respective account is smaller than the quota (fig. 6, ¶0043).
Per claim 5, Asano discloses: wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account based on usage of the portion of the non-volatile storage media allocated to the respective account (fig. 7, ¶0053).
Per claim 7, Asano discloses: wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account by adjusting the namespace map (¶0052)
Per claim 8, Asano discloses: wherein the controller of the storage device is configured by the firmware to adjust the size of the namespace in response to a change in the quota for the respective account (¶0052)
Per claim 9, Asano discloses: wherein the controller of the storage device is configured by the firmware to adjust the size of the namespace by adjusting the namespace map (¶0052)
Per claim 10, Asano discloses: wherein the adjusting of the namespace map is performed by adding or removing an identifier of a block of logical addresses in the capacity of the storage device (¶0052)
Per claim 11, Asano discloses: wherein the block has a predetermined size (¶0052)
Per claim 12, Asano discloses: wherein the predetermined size is a power of two (¶0052)
Per claim 16, Asano discloses: wherein the each respective account in the plurality of accounts is configured with a single namespace identifier for identifying storage resources available to store user data in the each respective account (¶0039)
Claims 17-19 are the method claim corresponding to the system claim 1, and 5-8, and are rejected under the same reasons set forth in connection with the rejection of claims1 and 5-8. The rejection to claim 1 is silent to the host configuring accounts but Geml discloses it in ¶0011.
Claim 20 is the method claim corresponding to the system claim 1 and is rejected under the same reasons set forth in connection with the rejection of claim 1. The rejection to claim 1 is silent to the host configuring accounts but Geml discloses it in ¶0011.
Claims 6 and 13 is/are rejected under 35 U.S.C. 103 as being unpatentable over Asano et al. 20180260334 herein Asano and Geml et al. 20180004559 herein Geml in view of Lewis et al. 20170339158 herein Lewis.
Per claim 6, the combined teaching of Asano and Geml does not specifically disclose: wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account in response to a determination that an unused portion, allocated from the non-volatile storage media to the respective account, is smaller than a threshold.
However, Lewis in an analogous art discloses: wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account in response to a determination that an unused portion, allocated from the non-volatile storage media to the respective account, is smaller than a threshold (¶0015).
It would have been obvious to one having ordinary skill in the art at the time was filed to combine the teachings of Asano, Geml and Lewis because Lewis’s increase/decrease of resources because it improves dynamic scaling (¶0018)
Per claim 13 Lewis discloses: wherein the storage device has a register storing a crypto key of the namespace during data access performed in the namespace (¶0028; key for each service interface)
Claims 14-15 is/are rejected under 35 U.S.C. 103 as being unpatentable over Asano et al. 20180260334 herein Asano, Geml et al. 20180004559 herein Geml and Lewis et al. 20170339158 herein Lewis in view of Wysocki e al. 20180188985 herein Wysocki.
Per claim 14 the combined teachings of Asano, Geml and Lewis do not specifically disclose: wherein the host interface implements single root 1/O virtualization.
However, Wysocki in an analogous art discloses: wherein the host interface implements single root 1/O virtualization (¶0034).
It would have been obvious to one having ordinary skill in the art at the time was filed to combine the teachings of Asano, Geml, Lewis and Wysocki because Wysocki’s virtualized cache using the sr vio improve throughput and performance (¶0034).
Per claim 15, Wysocki discloses: wherein the namespace is attached to a virtual function of the storage device implemented via the single root 1/O virtualization (¶0034).
Remark
Examiner respectfully requests, in response to this Office action, support be shown for language added to any original claims on amendment and any new claims. That is, indicate support for newly added claim language by specifically pointing to page(s) and line number(s) in the specification and/or drawing figure(s). This will assist Examiner in prosecuting the application.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BABOUCARR FAAL whose telephone number is (571)270-5073. The examiner can normally be reached on M-F 8:30-5:30 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, Tim VO can be reached on 5712723642. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
BABOUCARR . FAAL
Primary Examiner
Art Unit 2138
/BABOUCARR FAAL/Primary Examiner, Art Unit 2131