FINAL OFFICE ACTION
Response to Arguments
Applicant’s arguments with respect to the claims have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
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.
The factual inquiries 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.
Claims 21, 28, 29, 36, 37, and 40 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Patent No. 9,841,908 to Zhao et al. (“Zhao”) in view of U.S. Patent No. 6,549,977 to Horst et al. (“Horst”).
Regarding claim 21, Zhao discloses:
A method for data recovery, the method comprising:
using a bucket of a plurality of buckets to rebuild data in a stripe (Zhao: Col. 5, lines 23-27, "the recovery of data from a failed storage device by determining a set of chunk groups that includes one or more stripes located on the failed storage device; reading data and parity stored in other stripes associated with the set of chunk groups"; wherein a bucket is a chunk group or groups), wherein:
each bucket of the plurality of buckets is operable to write to a different address space, and each different address space extends over a unique group of storage devices (Zhao: Col. 5, lines 23-27, "the recovery of data from a failed storage device by determining a set of chunk groups that includes one or more stripes located on the failed storage device; reading data and parity stored in other stripes associated with the set of chunk groups"; and Col. 5, lines 27-32, "reconstructing data and parity stored
in the one or more stripes located on the failed storage device based on the erasure scheme; and storing the reconstructed data and parity in at least a subset of the plurality of hot spare stripes reserved for data recovery"; wherein each chunk group consists of data written in different stripes extending over a
variety of storage devices), wherein:
rebuilding comprises regenerating lost or corrupted data using erasure coding techniques and writing the regenerated data to storage devices not previously associated with the failed data (Zhao: Col. 5, lines 27-32, "reconstructing data and parity stored in the one or more stripes located on the failed storage device based on the erasure scheme; and storing the reconstructed data and parity in at least a subset of the plurality of hot spare stripes reserved for data recovery"; wherein erasure scheme
is used to rebuild the data and then it is written to a hot spare stripe that is independent of the failed location of the data/drive), and
each address space is a logically distinct region assigned to a respective unique group of storage devices, such that data written to one address space is not accessible from another devices (Zhao: Col. 5, lines 23-27, "the recovery of data from a failed storage device by determining a set of chunk groups that includes one or more stripes located on the failed storage device; reading data and parity stored in other stripes associated with the set of chunk groups"; Col. 7, lines 12-14, "wherein the
at least one array controller is configured to store data and parity in the plurality of stripes according to a multi-level mapping table"; wherein each stripe of the chunk group is logically located in different regions, e.g. different drives, wherein the data written to these address spaces are not affected by the other drives. The controller handles the original storing of data, the drives remain independent from one another acting as redundant data for the restore process).
Zhao does not disclose expressly detecting power up after a non-scheduled power down.
Horst teaches detecting power up after a non-scheduled power down (col. 16, lns. 49-67).
Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to modify Zhao by detecting power ups as taught by Horst. A person of ordinary skill in the art would have been motivated to do so in order to reduce rebuild times after power and drive failures, as discussed by Horst (abstract and col. 13, ln. 66-col. 14, ln. 7).
Regarding claim 28, Zhao discloses all of the elements of claim 21 and further discloses:
wherein information regarding active regions is stored in nonvolatile memory (Zhao: Col. 7, lines 24-29, "the declustered, fault-tolerant array of storage devices may be configured such that the at least one array controller is configured to generate, and optionally store, the multi-level mapping table, and the generation may be based on either a balanced incomplete block design or a partial balanced incomplete block design"; Col. 16, lines 61-66, "For example, the systems and methods disclosed herein
can be applied to hard disk drives, hybrid hard drives, and the like. In addition, other forms of storage (e.g., DRAM or SRAM, battery backed-up volatile DRAM or SRAM devices, EPROM, EEPROM memory, etc.) may additionally or alternatively be used"; wherein a multi-level mapping table is information about the active regions of the memory and wherein the systems and methods can be applied to hard disk drives which is nonvolatile memory).
Regarding claim 29, Zhao/Horst discloses:
A system for data recovery, the system comprising:
a processor (Zhao: Col. 10, lines 2-11, "[t]he process 200B may be performed by an array controller, or it may be performed by a separate processor within the host machine, or it may be performed by an array controller under directions from a separate processor within the host machine or a client machine. It is to be understood that for purposes of describing this illustration, a step performed by an array controller may also be performed by or directed by a separate processor within the host machine or client machine") configured to:
detect power up after a non-scheduled power down (Horst: col. 16, lns. 49-67); and
use a bucket of a plurality of buckets to rebuild data in a stripe (Zhao: Col. 5, lines 23-27, "the recovery of data from a failed storage device by determining a set of chunk groups that includes one or more stripes located on the failed storage device; reading data and parity stored in other stripes associated with the set of chunk groups"; wherein a bucket is a chunk group or groups), wherein:
each bucket of the plurality of buckets is operable to write to a different address space, and each different address space extends over a unique group of storage devices (Zhao: Col. 5, lines 23-27, "the recovery of data from a failed storage device by determining a set of chunk groups that includes one or more stripes located on the failed storage device; reading data and parity stored in other stripes associated with the set of chunk groups"; and Col. 5, lines 27-32, "reconstructing data and parity stored
in the one or more stripes located on the failed storage device based on the erasure scheme; and storing the reconstructed data and parity in at least a subset of the plurality of hot spare stripes reserved for data recovery"; wherein each chunk group consists of data written in different stripes extending over a variety of storage devices), wherein:
rebuilding comprises regenerating lost or corrupted data using erasure coding techniques and writing the regenerated data to storage devices not previously associated with the failed data (Zhao: Col. 5, lines 27-32, "reconstructing data and parity stored in the one or more stripes located on the failed storage device based on the erasure scheme; and storing the reconstructed data and parity in at least a subset of the plurality of hot spare stripes reserved for data recovery"; wherein erasure scheme is used to rebuild the data and then it is written to a hot spare stripe that is independent of the failed location of the data/drive), and
each address space is a logically distinct region assigned to a respective unique group of storage devices, such that data written to one address space is not accessible from another (Zhao: Col. 5, lines 23-27, "the recovery of data from a failed storage device by determining a set of chunk groups that includes one or more stripes located on the failed storage device; reading data and parity stored in other stripes associated with the set of chunk groups"; Col. 7, lines 12-14, "wherein the at least one array controller is configured to store data and parity in the plurality of stripes according to a multi-level mapping table"; wherein each stripe of the chunk group is logically located in different regions, e.g. different drives, wherein the data written to these address spaces are not affected by the other drives. The controller handles the original storing of data, the drives remain independent from one another acting as redundant data for the restore process).
Regarding claim 36, Zhao discloses all of the elements of claim 29 and further discloses:
wherein the processor is configured to read information regarding the active regions from nonvolatile memory (Zhao: Col. 7, lines 24-29, "the declustered, fault-tolerant array of storage devices may be configured such that the at least one array controller is configured to generate, and optionally store, the multi-level mapping table, and the generation may be based on either a balanced incomplete block design or a partial balanced incomplete block design"; Col. 16, lines 61-66, "For example, the systems and methods disclosed herein can be applied to hard disk drives, hybrid hard drives, and the like. In addition, other forms of storage (e.g., DRAM or SRAM, battery backed-up volatile DRAM or SRAM devices, EPROM, EEPROM memory, etc.) may additionally or alternatively be used"; wherein a multi-level mapping table is information about the active regions of the memory and wherein the systems and methods can be applied to hard disk drives which is nonvolatile memory).
Regarding claim 37, Zhao discloses:
A non-transitory machine-readable storage having stored thereon, a computer program having at least one code section for data recovery in a storage system with a file system that is integrated with a protection layer, the at least one code section comprising machine executable instructions for causing a machine to perform steps (Zhao: Col. 3, lines 45-48, "The functions mapping a file system's logical block address to physical disk addresses for the corresponding data stripe units and chunk groups and the appropriate inverse mappings must be efficiently implementable; Col. 8, lines 36-
38, "an organization is one redundant storage device array connected to at least one array controller in a host machine"; Col. 16, lines 61-67, Col. 17, lines 1-2, "For example, the systems and methods disclosed herein can be applied to hard disk drives, hybrid hard drives, and the like. In addition, other forms of storage (e.g., DRAM or SRAM, battery backed-up volatile DRAM or SRAM devices, EPROM, EEPROM memory, etc.) may additionally or alternatively be used. As another example, the various components illustrated in the figures may be implemented as software and/or firmware on a processor, ASIC/FPGA, or dedicated hardware"; and wherein the memory has file systems, the software is executed on a processor, and the protection layer is the redundancy from the system) comprising:
detecting power up after a non-scheduled power down (Horst: col. 16, lns. 49-67); and
using a bucket of a plurality of buckets to rebuild data in a stripe (Zhao: Col. 5, lines 23-27, "the recovery of data from a failed storage device by determining a set of chunk groups that includes one or more stripes located on the failed storage device; reading data and parity stored in other stripes associated with the set of chunk groups"; wherein a bucket is a chunk group or groups), wherein:
each bucket of the plurality of buckets is operable to write to a different address space, and each different address space extends over a unique group of storage devices (Zhao: Col. 5, lines 23-27, "the recovery of data from a failed storage device by determining a set of chunk groups that includes one or more stripes located on the failed storage device; reading data and parity stored in other stripes associated with the set of chunk groups"; and Col. 5, lines 27-32, "reconstructing data and parity stored
in the one or more stripes located on the failed storage device based on the erasure scheme; and storing the reconstructed data and parity in at least a subset of the plurality of hot spare stripes reserved for data recovery"; wherein each chunk group consists of data written in different stripes extending over a
variety of storage devices), wherein:
rebuilding comprises regenerating lost or corrupted data using erasure coding techniques and writing the regenerated data to storage devices not previously associated with the failed data (Zhao: Col. 5, lines 27-32, "reconstructing data and parity stored in the one or more stripes located on the failed storage device based on the erasure scheme; and storing the reconstructed data and parity in at least a subset of the plurality of hot spare stripes reserved for data recovery"; wherein erasure scheme
is used to rebuild the data and then it is written to a hot spare stripe that is independent of the failed location of the data/drive), and
each address space is a logically distinct region assigned to a respective unique group of storage devices, such that data written to one address space is not accessible from another (Zhao: Col. 5, lines 23-27, "the recovery of data from a failed storage device by determining a set of chunk groups that includes one or more stripes located on the failed storage device; reading data and parity stored in other stripes associated with the set of chunk groups"; Col. 7, lines 12-14, "wherein the at least one array controller is configured to store data and parity in the plurality of stripes according to a multi-level mapping table"; wherein each stripe of the chunk group is logically located in different regions, e.g. different drives, wherein the data written to these address spaces are not affected by the other drives. The controller handles the original storing of data, the drives remain independent from one another acting as redundant data for the restore process).
Regarding claim 40, Zhao discloses all of the elements of claim 37 and further discloses:
wherein information regarding the active regions is stored in a memory (Zhao: Col. 7, lines 24-29, "the declustered, fault-tolerant array of storage devices may be configured such that the at least one array controller is configured to generate, and optionally store, the multi-level mapping table, and the generation may be based on either a balanced incomplete block design or a partial balanced incomplete block design"; Col. 16, lines 61-66, "For example, the systems and methods disclosed herein can be applied to hard disk drives, hybrid hard drives, and the like. In addition, other forms of storage (e.g., DRAM or SRAM, battery backed-up volatile DRAM or SRAM devices, EPROM, EEPROM memory, etc.) may additionally or alternatively be used"; wherein a multi-level mapping table is information about the active regions of the memory and wherein thesystems and methods can be applied to hard disk
drives which is nonvolatile memory).
Claims 22 and 25-27 are rejected under 35 U.S.C. 103 as being unpatentable over Zhao in view of Horst, and further in view of U.S. Patent Pub. No. 2006/0075289 to Forrer, Jr. et al. ("Forrer").
Regarding Claim 22, Zhao teaches each of the elements of claim 21 as discussed above, however Zhao does not appear to teach:
comprising scrubbing the stripe to identify an abnormal data block.
However, in the same field of endeavor, Forrer teaches:
comprising scrubbing the stripe to identify an abnormal data block (Forrer: Paragraph [0021], "the process shown in FIG. 3 starts when the host operating system enables the data scrubbing feature when the drive is initialized or opened. During the time the drive is not being used (i.e., receiving read or write commands) the background data scrubbing function is occurring. If an unrecoverable data error is found the drive logs this information in its internal log pages"; wherein background scrubbing can be used to identify errors in data).
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 method disclosed by Zhao by scrubbing memory to identify abnormal data blocks after rebuilding, as taught by Forrer. One of ordinary skill in the art would have been motivated to make this modification because by scrubbing and fixing abnormal data blocks, the probability of encountering an unrecoverable data error during a future rebuild process is significantly reduced. (Forrer: Paragraph [0008]).
Regarding claim 25, the Zhao/Forrer combination teaches all of the elements of claim 22 and further teaches:
wherein scrubbing occurs in a background (Forrer: Paragraph [0022], "[d]uring the time the drive is not being used (i.e., receiving read or write commands) the background data scrubbing function is occurring").
Regarding claim 26, the Zhao/Forrer combination teaches all of the elements of claim 22 and further teaches:
wherein scrubbing occurs continuously (Forrer: Paragraph [0021], "During the time the drive is not being used (i.e., receiving read or write commands) the background data scrubbing function is occurring", it occurs continuously during the time the drive is not being used; continuously as stated in the claim is broadly interpreted).
Regarding claim 27, the Zhao/Forrer combination teaches all of the elements of claim 22 and further teaches:
wherein scrubbing occurs on demand (Forrer: Paragraph [0021], "The process shown in FIG. 3 starts when the host operating system enables the data scrubbing feature when the drive is initialized or opened. During the time the drive is not being used (i.e., receiving read or write commands) the background data scrubbing function is occurring"; wherein the data scrubbing feature is enabled when the drive is initialized or opened which can be interpreted as on demand as well).
Claims 23, 24, 30-35, 38, and 39 are rejected under 35 U.S.C. 103 as being unpatentable over Zhao in view of Horst and Forrer, and further in view of U.S. Patent Pub. No. 2011/0041039 to Harari et al. ("Harari").
Regarding claim 23, the Zhao/Forrer combination teaches all of the elements of claim 22. However, the combination does not appear to teach:
wherein scrubbing comprises freeing the abnormal data block.
However, in the same field of endeavor, Harari teaches:
wherein scrubbing comprises freeing the abnormal data block (Harari: Paragraph [0145], "Read scrub copy is a method by which data is read from the disturbed block and written to another block, after correction of all data which has correctable ECC error. The original block can then be returned to the common free block pool and eventually erased and written with other data. Read scrub scan and read
scrub copy scheduling will be done in the NAND controller 300 in firmware by the processor 3040, such that the host controller 121 will not be aware of these housekeeping flash block level operations"; wherein the scrub involves freeing a disturbed or errored block for future use).
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 method disclosed by the Zhao/Forrer combination by scrubbing memory to identify abnormal data blocks after rebuilding, as taught by Harrari. One of ordinary skill in the art would have been motivated to make this modification because by freeing the abnormal data block it would assist in improving reliability of the memory significantly. (Harrari: Paragraph [0112]).
Regarding claim 24, the Zhao/Forrer combination teaches all of the elements of claim 22. However, the combination does not appear to teach:
wherein scrubbing comprises fixing an error in the abnormal data block.
However, in the same field of endeavor, Harari teaches:
wherein scrubbing comprises fixing an error in the abnormal data block (Harari: Paragraph [0145], "Read scrub copy is a method by which data is read from the disturbed block and written to another block, after correction of all data which has correctable ECC error. The original block can then be returned to the common free block pool and eventually erased and written with other data. Read scrub scan and read scrub copy scheduling will be done in the NAND controller 300 in firmware by the processor 3040, such that the host controller 121 will not be aware of these housekeeping flash block level operations"; wherein the scrub involves correction of all the data with the error).
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 method disclosed by the Zhao/Forrer combination by fixing an error in the abnormal data block, as taught by Harrari. One of ordinary skill in the art would have been motivated to make this modification because it would assist in improving reliability of the memory
significantly. (Harrari: Paragraph [0112]).
Regarding claim 30, Zhao teaches all of the elements of claim 29. However, Zhao does not appear to explicitly teach:
scrub memory of the stripe to identify an abnormal data block.
However, in the same field of endeavor, Forrer teaches:
scrub memory of the stripe to identify an abnormal data block (Forrer: Paragraph [0021], "the process shown in FIG. 3 starts when the host operating system enables the data scrubbing feature when the drive is initialized or opened. During the time the drive is not being used (i.e., receiving read or write commands) the background data scrubbing function is occurring. If an unrecoverable data error is found the drive logs this information in its internal log pages"; wherein background scrubbing can be used to
identify errors in data).
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 method disclosed by Zhao by scrubbing memory to identify abnormal data blocks after rebuilding, as taught by Forrer. One of ordinary skill in the art would have been motivated to make this modification because by scrubbing and fixing abnormal data blocks, the probability of encountering an unrecoverable data error during a future rebuild process is significantly
reduced. (Forrer: Paragraph [0008]).
However, the Zhao/Forrer combination does not appear to teach:
after rebuilding the data, scrub memory.
However, in the same field of endeavor, Harari teaches:
after rebuilding the data, scrub memory (Harari: Paragraph [0145], "Read scrub copy is a method by which data is read from the disturbed block and written to another block, after correction of all data which has correctable ECC error. The original block can then be returned to the common free block pool and eventually erased and written with other data. Read scrub scan and read scrub copy scheduling will be done in the NAND controller 300 in firmware by the processor 3040, such that the host controller 121 will not be aware of these housekeeping flash block level operations"; wherein the scrubbing can occur after the correctable ecc error is fixed).
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 method disclosed by the Zhao/Forrer combination by scrubbing memory after rebuilding the data, as taught by Harrari. One of ordinary skill in the art would have been motivated to make this modification because it would assist in improving reliability of the memory significantly. (Harrari: Paragraph [0112]).
Regarding claim 31, the Zhao/Forrer/Harari combination teaches all of the elements of claim 30 and further teaches:
wherein scrubbing memory comprises freeing the abnormal data block (Harari: Paragraph [0145], "Read scrub copy is a method by which data is read from the disturbed block and written to another block, after correction of all data which has correctable ECC error. The original block can then be returned to the common free block pool and eventually erased and written with other data. Read scrub scan and read scrub copy scheduling will be done in the NAND controller 300 in firmware by the processor 3040, such that the host controller 121 will not be aware of these housekeeping flash block level operations"; wherein the scrub involves freeing a disturbed or errored block for future use).
Regarding claim 32, the Zhao/Forrer/Harari combination teaches all of the elements of claim 30 and further teaches:
wherein scrubbing memory comprises fixing an error in the abnormal data block (Harari: Paragraph [0145], "Read scrub copy is a method by which data is read from the disturbed block and written to another block, after correction of all data which has correctable ECC error. The original block can then be returned to the common free block pool and eventually erased and written with other data. Read scrub scan and read scrub copy scheduling will be done in the NAND controller 300 in firmware by
the processor 3040, such that the host controller 121 will not be aware of these housekeeping flash block level operations"; wherein the scrub involves correction of all the data with the error).
Regarding claim 33, the Zhao/Forrer/Harari combination teaches all of the elements of claim 30 and further teaches:
wherein scrubbing memory occurs in a background (Forrer: Paragraph [0022], "[d]uring the time the drive is not being used (i.e., receiving read or write commands) the background data scrubbing function is occurring").
Regarding claim 34, the Zhao/Forrer/Harari combination teaches all of the elements of claim 30 and further teaches:
wherein scrubbing memory occurs continuously (Forrer: Paragraph [0021], "During the time the drive is not being used (i.e., receiving read or write commands) the background data scrubbing function is occurring", it occurs continuously during the time the drive is not being used; continuously as stated in the claim is broadly interpreted).
Regarding claim 35, the Zhao/Forrer/Harari combination teaches all of the elements of claim 30 and further teaches:
wherein scrubbing memory occurs on demand (Forrer: Paragraph [0021], "The process shown in FIG. 3 starts when the host operating system enables the data scrubbing feature when the drive is initialized or opened. During the time the drive is not being used (i.e., receiving read or write commands)
the background data scrubbing function is occurring"; wherein the data scrubbing feature is enabled
when the drive is initialized or opened which can be interpreted as on demand as well).
Regarding claim 38, Zhao teaches all of the elements of claim 37. However, Zhao does not appear to explicitly teach:
scrubbing memory to identify an abnormal data block.
However, in the same field of endeavor, Forrer teaches:
scrubbing memory to identify an abnormal data block (Forrer: Paragraph [0021], "the process shown in FIG. 3 starts when the host operating system enables the data scrubbing feature when the drive is initialized or opened. During the time the drive is not being used (i.e., receiving read or write commands) the background data scrubbing function is occurring. If an unrecoverable data error is found the drive logs this information in its internal log pages"; wherein background scrubbing can be used to identify errors in data).
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 method disclosed by Zhao by scrubbing memory to identify abnormal data blocks after rebuilding, as taught by Forrer. One of ordinary skill in the art would have been motivated to make this modification because by scrubbing and fixing abnormal data blocks, the probability of encountering an unrecoverable data error during a future rebuild process is significantly reduced. (Forrer: Paragraph [0008]).
However, the Zhao/Forrer combination does not appear to teach:
after rebuilding the data, scrubbing memory.
However, in the same field of endeavor, Harari teaches:
after rebuilding the data, scrubbing memory (Harari: Paragraph [0145], "Read scrub copy is a method by which data is read from the disturbed block and written to another block, after correction of all data which has correctable ECC error. The original block can then be returned to the common free block pool and eventually erased and written with other data. Read scrub scan and read scrub copy scheduling will be done in the NAND controller 300 in firmware by the processor 3040, such that the host controller 121 will not be aware of these housekeeping flash block level operations"; wherein the scrubbing can occur after the correctable ecc error is fixed).
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 method disclosed by the Zhao/Forrer combination by scrubbing memory after rebuilding the data, as taught by Harrari. One of ordinary skill in the art would have been motivated to make this modification because it would assist in improving reliability of the memory significantly. (Harrari: Paragraph [0112]).
Regarding claim 39, the Zhao/Forrer/Harari combination teaches all of the elements of claim 38 and further teaches:
wherein scrubbing memory comprises one or more of:
executing in a background (Forrer: Paragraph [0022], "[d]uring the time the drive is not being used (i.e., receiving read or write commands) the background data scrubbing function is occurring"), executing continuously (Forrer: Paragraph [0021], "During the time the drive is not being used (ie receiving read or write commands) the background data scrubbing function is occurring", it occurs continuously during the time the drive is not being used; continuously as stated in the claim is broadly interpreted), and
executing on demand (Forrer: Paragraph [0021], "The process shown in FIG. 3 starts when the host operating system enables the data scrubbing feature when the drive is initialized or opened. During the time the drive is not being used (ie receiving read or write commands) the background data scrubbing function is occurring"; wherein the data scrubbing feature is enabled when the drive is initialized or opened which can be interpreted as on demand as well).
Conclusion
Applicant's amendment necessitated the new grounds 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 Philip Guyton whose telephone number is (571)272-3807. The examiner can normally be reached M-F 8:00-4:30.
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, Bryce Bonzo can be reached at (571)272-3655. 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.
/PHILIP GUYTON/ Primary Examiner, Art Unit 2113