DETAILED ACTION
Claims 1-11 and 20 are present for examination.
Claims 1 and 20 have been amended.
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 .
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 (i.e., changing from AIA to pre-AIA ) 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.
Election/Restrictions
Applicant’s election without traverse of Species I (claims 1-11 and 20) in the reply filed on 09/19/2025 is acknowledged.
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 07/31/2026 has been entered.
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.
Claim(s) 1 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Abe et al. (US 5,906,000) in view of Yin et al. (US 2021/0182216).
With respect to claim 1, Abe et al. teaches a processor configured to input and output commands for data to an outside (see Fig. 5; column 4, lines 66-67 and column 5, lines 1-2; CPU 10 supplies the CPU bus 12 with a request for access; the cache controller 14 detects the request for access);
a data memory configured to store the data as cache data (see Fig. 5 column 3, line 67 and column 4, lines 1-3; cache memory 18 has a data area for storing data items);
a tag memory configured to store a replacement priority with respect to replacement of the cache data (see Fig. 5 column 3, line 67 and column 4, lines 1-3; cache memory 18 has a tag area for storing information. Also in column 5, lines 38-67; cache controller 14 determines that one of the cache blocks in which data replacement should be performed (step S8), and compares a priority stored in the tag of the one cache block, with the priority of the new data to be written… if the priority stored in the tag is lower, i.e. if the priority of the newly read data is higher, the cache controller 14 erases data stored in the cache block in the cache memory, thereby writing the newly read data into the cache block (step S12)); and
a cache controller (see Fig. 5 and column 5, lines 20-21; controller 14)
Abe et al. does not teach wherein the cache controller is configured to determine the replacement priority based on a history of types of the commands having a sequence of types of a preceding command and a following command with respect to the data stored as the cache data.
However, Yin et al. teaches during a profiling phase, the cache controller determines which access type caused a lowest number of demand hits from among a plurality of access types. Then during replacement, the cache controller attempts to evict cache lines that have a recorded last access type that matches the access type with the least number of demand hits from among the plurality of access types. In other words, the cache controller dynamically determines a type of access that is most likely to precede a load hit or store hit to a cache line. Then, the cache controller protects cache lines that were most recently accessed by the access type that is most likely to precede a load hit or store hit (see paragraph 14)… When a request received by the cache results in a demand hit (e.g., load hit, store hit), the last access type field corresponding to the hit cache line is retrieved (block 510). Next, the counter corresponding to the access type specified by the retrieved last access type field is incremented (block 515). If fewer than a threshold number of cache accesses have been made (conditional block 520, “no” leg), then method 500 returns to block 510. If the number of caches accesses has reached the threshold number (conditional block 520, “yes” leg), then the access type counters are sorted in descending order and priorities are assigned to the access types based on the sorted order (block 525). Next, the priorities are used in determining the replacement policy for selecting cache lines to evict (i.e., preceding access/last access command type and the following access command are used to determine replacement policy) (see paragraph 28).
It would have been obvious to a person having ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to have modified the storage controller taught by Abe et al. to include the above mentioned to improve system performance and reduce energy consumption. (see Yin, paragraph 12).
With respect to claim 20, Abe et al. teaches a host device configured to execute an application and provide an input/output commands with respect to data based on execution of the application (see Figs. 1 and 5 and column 4, lines 48-67 and column 5, lines 1-2; CPU 10 supplies the CPU bus 12 with a request for access; the cache controller 14 detects the request for access); and
a storage device comprising: a non-volatile memory device configured to store the data according to the input/output commands (see Fig. 1 and column 4, lines 4-5; main storage 20 consist, for example, of a DRAM, and stores data to be accessed by the CPU 10); and
a cache memory (see Figs 1 and 5; column 3, lines 65-67 and column 4, lines 1-3; cache memory 18) configured to:
store the data as cache data (see Fig. 5 column 3, line 67 and column 4, lines 1-3; cache memory 18 has a data area for storing data items),
store a replacement priority with respect to replacement of the cache data (see Fig. 5 column 3, line 67 and column 4, lines 1-3; cache memory 18 has a tag area for storing information. Also in column 5, lines 38-67; cache controller 14 determines that one of the cache blocks in which data replacement should be performed (step S8), and compares a priority stored in the tag of the one cache block, with the priority of the new data to be written… if the priority stored in the tag is lower, i.e. if the priority of the newly read data is higher, the cache controller 14 erases data stored in the cache block in the cache memory, thereby writing the newly read data into the cache block (step S12)).
Abe et al. does not teach determine the replacement priority based on the application, a history of types of the input/output commands having a sequence types of a preceding command and a following command for the data stored as the cache data.
However, Yin et al. teaches during a profiling phase, the cache controller determines which access type caused a lowest number of demand hits from among a plurality of access types. Then during replacement, the cache controller attempts to evict cache lines that have a recorded last access type that matches the access type with the least number of demand hits from among the plurality of access types. In other words, the cache controller dynamically determines a type of access that is most likely to precede a load hit or store hit to a cache line. Then, the cache controller protects cache lines that were most recently accessed by the access type that is most likely to precede a load hit or store hit (see paragraph 14)… When a request received by the cache results in a demand hit (e.g., load hit, store hit), the last access type field corresponding to the hit cache line is retrieved (block 510). Next, the counter corresponding to the access type specified by the retrieved last access type field is incremented (block 515). If fewer than a threshold number of cache accesses have been made (conditional block 520, “no” leg), then method 500 returns to block 510. If the number of caches accesses has reached the threshold number (conditional block 520, “yes” leg), then the access type counters are sorted in descending order and priorities are assigned to the access types based on the sorted order (block 525). Next, the priorities are used in determining the replacement policy for selecting cache lines to evict (i.e., preceding access/last access command type and the following access command are used to determine replacement policy) (see paragraph 28).
It would have been obvious to a person having ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to have modified the system taught by Abe et al. to include the above mentioned to improve system performance and reduce energy consumption. (see Yin, paragraph 12).
Claim(s) 10-11 is/are rejected under 35 U.S.C. 103 as being unpatentable over Abe et al. (US 5,906,000) and Yin et al. (US 2021/0182216) as applied to claim 1 above, and further in view of Usui (US2009/0063777).
With respect to claim 10, Abe et al. and Yin et al. do not teach wherein the data memory is further configured to store the cache data in a full-associative method.
However, Usui teaches wherein the data memory is further configured to store the cache data in a full-associative method (see paragraph 27; cache 20 is classified into any of a plurality of types, i.e., a direct cache, set-associative cache, and full-associative cache, in accordance with the associative. However, the object of this embodiment is a set-associative cache or full-associative cache).
It would have been obvious to a person having ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to have modified the storage controller taught by Abe et al. and Yin et al. to include the above mentioned to improve performance and reliability of the device (see Usui, paragraphs 23).
With respect to claim 11, Abe et al. does not explicitly teach wherein the data comprises a first data and a second data different from the first data, and wherein the cache controller is further configured to, based on the first data being stored in the data memory as a first cache data, the second data being stored in a cache memory and the data memory being full, remove the first cache data based on the priority.
However, Abe et al. teaches wherein if, a cache miss occurs (i.e. if the cache memory 18 does not store the data to be accessed), the cache controller 14 reads the to-be-accessed data from another storage. While the newly read data is output to the CPU 10, the cache controller 14 performs caching of the newly read data… If, on the other hand, the data area of the cache memory 18 has no empty cache block and new data must be written into an occupied cache block, i.e. if it is necessary to replace old data with new one in one of cache blocks (step S6), the cache controller 14 determines that one of the cache blocks in which data replacement should be performed… if the priority stored in the tag is lower, i.e. if the priority of the newly read data is higher, the cache controller 14 erases data stored in the cache block in the cache memory 18, thereby writing the newly read data into the cache block (see column 5, lines 8-66).
It would have been obvious to a person having ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to have modified the storage controller to include the above mentioned to increase the overall operation speed of the computer (see Abe, column6, lines 46-56).
Allowable Subject Matter
Claims 2-9 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
The following is a statement of reasons for the indication of allowable subject matter: No prior art or combination of prior art teaches or suggest wherein the priority table comprises a priority setting list, and wherein the priority setting list comprises a preceding command, a following command sequentially generated for one cache data, and a priority value corresponding to a type of the preceding command and a type of the following command as recited in claim 2.
Yin et al. (US 2021/0182216) teaches wherein when a request received by the cache results in a demand hit (e.g., load hit, store hit), the last access type field corresponding to the hit cache line is retrieved (block 510). Next, the counter corresponding to the access type specified by the retrieved last access type field is incremented (block 515). If fewer than a threshold number of cache accesses have been made (conditional block 520, “no” leg), then method 500 returns to block 510. If the number of caches accesses has reached the threshold number (conditional block 520, “yes” leg), then the access type counters are sorted in descending order and priorities are assigned to the access types based on the sorted order (block 525). Next, the priorities are used in determining the replacement policy for selecting cache lines to evict (i.e., preceding access/last access command type and the following access command are used to determine replacement policy) (see paragraph 28).
However, Yin does not teach wherein the priority table comprises a priority setting list, and wherein the priority setting list comprises a preceding command, a following command sequentially generated for one cache data, and a priority value corresponding to a type of the preceding command and a type of the following command as recited in claim 2.
Response to Arguments
Applicant’s arguments, see pages 9-11, filed 07/31/2026, with respect to the rejection(s) of claim(s) 1 and 20 under 35 U.S.C. 103 have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of Yin et al. (US 2012/0182216).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ARACELIS RUIZ whose telephone number is (571)270-1038. The examiner can normally be reached Monday-Friday 11:00am-7:30pm.
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 G. 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.
/ARACELIS RUIZ/Primary Examiner, Art Unit 2139