DETAILED ACTION
Claims 1-20 have been examined.
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 .
Specification
The title of the invention is not sufficiently descriptive. A new title is required that is clearly indicative of the invention to which the claims are directed. The examiner recommends incorporating the “shared” concept into the title. Also, applicant should clarify that the prefetcher is a hardware/circuit implementation to distinguish it from software prefetching.
The abstract of the disclosure is objected to because it is a substantial duplicate of claim 1 and, thus, has the same issues as claim 1. Further, the abstract should avoid using legal phraseology often used in patent claims. A corrected abstract of the disclosure is required and must be presented on a separate sheet, apart from any other text. See MPEP § 608.01(b).
The disclosure is objected to because of the following informalities:
In paragraph 31, replace “configure” with --configured--.
In paragraph 45, line 4, replace “date” with --data--.
In paragraph 47, replace both instances of “304A” with --304-- to match FIG.3.
In paragraph 49, the phrase in the parentheses at the end is grammatically incorrect.
In paragraph 53, remove the apostrophe from “GPGPU’s”.
In paragraph 56, replace “443” with --453-- to match FIG.4.
In paragraph 57, replace both instances of “456” with --465-- to match FIG.4.
In paragraph 58, replace “443” with --453-- to match FIG.4.
In paragraph 60, replace “Core 1 503” with --Core 1 505-- to match FIG.5.
In paragraph 63, replace “Core 0 803” with --Core 0 801-- to match FIG.8.
In paragraph 63, replace “Core1” with --Core 1--.
In paragraph 81, the 1st sentence is grammatically incorrect.
In paragraph 88, remove the apostrophe from “GPGPU’s”.
In paragraph 89, insert --computing-- after the 2nd instance of “(throughput)”.
In paragraph 91, insert --computing-- after the 2nd instance of “(throughput)”.
In paragraph 96, replace “an link” with --a link--.
In paragraph 100, “a register maps” is grammatically incorrect.
In paragraph 113, replace “a LDTR” with --an LDTR--.
In paragraph 132, replace “a SSE” with --an SSE--.
In paragraph 152, replace “a opmask” with --an opmask--.
In paragraph 152, replace “that masking” with --that masking is--.
In paragraph 152, it appears that “additional allow” should be --additionally allow--.
In paragraph 159, replace “rewritable’s” with --rewritables--.
In paragraph 170, line 2, applicant associates L1 caches with numbers 2301A-B. Please change these to 2305A-B to match FIG.23.
In paragraph 170, line 4, applicant associates L1 caches with numbers 2351A-B. Again, please change these to 2305A-B to match FIG.23.
In paragraph 174, line 4 is grammatically incorrect because applicant is saying that core 2390 (not the data) is stored in the L2 cache.
In paragraph 181, replace “2709” with --2609--.
Paragraphs 199-218 include at least substantially similar language as the claims. If the claims are fixed in response to any objection/rejection below, please also apply the fixes to these paragraphs.
Appropriate correction is required.
Drawings
FIGs.1-22 are objected to for failing to comply with 37 CFR 1.84(a)(1) and 37 CFR 1.84(l), which requires the drawings be in black, and that all drawings be made by a process which will give them satisfactory reproduction characteristics. Every line, number, and letter must be durable, clean, solid black (except for color drawings), sufficiently dense and dark, and uniformly thick and well-defined. The weight of all lines and letters must be heavy enough to permit adequate reproduction. This requirement applies to all lines however fine, to shading, and to lines representing cut surfaces in sectional views. The drawings are pixelated, likely because applicant did not use black (RGB = 000), despite the drawings appearing black to the naked eye. In such a case, the dithering used to convert applicant's grayscale image to black and white will add white pixels to try to estimate applicant's "gray" color, and the final drawings may not print properly or may print with reduced quality. Therefore, applicant must be sure to use only black and white. Applicant may perform the following process to correct the color content:
1. Open the drawings PDF file with Adobe Acrobat Pro DC (a similar Adobe product may work, but the examiner has only tested this in Adobe Acrobat Pro DC);
2. Click “File” and then click “Print”;
3. Select “Adobe PDF” as the printer. If not available, “Microsoft Print to PDF” may also work, though this has not been tested. If neither option is available, this process may not be applicable, and applicant should try to find an alternate way to print in only black and white.
4. Uncheck “Print in grayscale (black and white)”;
5. Uncheck “Save ink/toner”;
6. Click “Advanced”;
7. Under “Color Management”, for the “Color Profile” field, select “Black & White” near the bottom of the list. The examiner also had “Treat grays as K-only grays” checked, and “Preserve Black” checked.
8. Click “OK” and then click “Print”. The resulting PDF should comprise only black and white drawings. Please review the final drawings for potential unintended consequences of this process.
FIG.4 is objected to as failing to comply with 37 CFR 1.84(p)(5) because it includes the following reference number not mentioned in the description: 453.
FIG 27 is objected to for failing to comply with 37 CFR 1.84(p)(3), which states that “Numbers, letters, and reference characters…should not be placed in the drawing so as to interfere with its comprehension. Therefore, they should not cross or mingle with the lines.” Note the line incorrectly crossing reference number 2707.
FIGs.10, 25, and 28 are objected to because of the following minor informalities:
In FIG.10, steps 1001, 1003, and 1007 are grammatically incorrect and must be reworded. In 1003, it appears that the 2nd instance of “OF” should be --OR-- to match paragraph 77 (and since step 1002 is optional).
In FIG.25, replace “READ-SH” with --READ_SH-- for consistency.
In FIG.28, the examiner understands the lines under “FIG.28” as indicative of extension of the table. However, these lines should appear under the table and above “FIG.28”.
Corrected drawing sheets in compliance with 37 CFR 1.121(d) or amendment to the specification to add the reference character(s) in the description in compliance with 37 CFR 1.121(b) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. The figure or figure number of an amended drawing should not be labeled as “amended.” Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance.
Claim Objections
Claim 1 is objected to because of the following informalities:
Insert --and-- at the end of line 2.
In line 3, insert commas before and after “of the plurality of cores”.
Claim 5 is objected to because of the following informalities:
Replace “operation” with --operations-- to match claim 1.
Claim 9 is objected to because of the following informalities:
Replace “includes” with --include-- to match claim 8.
Claim 14 is objected to because of the following informalities:
Replace “operation” with --operations-- to match claim 10.
Claim 19 is objected to because of the following informalities:
Lines 1-2 are grammatically incorrect because instructions cannot be stored on a method.
Appropriate correction is required.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
The claims recite the following limitations for which there is a lack of antecedent basis:
In claim 1, line 8, “the instructions” because there are instructions in lines 2 and 4.
In claim 2, “the data” because there is data in line 2 and in claim 1, line 10.
In claim 3, “the data” for similar reasoning.
In claim 10, line 9, “the instructions” because there are instructions in lines 1, 4, and 5.
In claims 11-12, “the data” for similar reasoning given above.
In claim 17, line 7, “the instructions” because there are instructions in lines 2 and 3.
In claim 18, “the data” for similar reasoning given above.
In claim 19, “the machine”.
In claim 19, “the data” for similar reasoning given above.
Claims 2-9, 11-16, and 18-20 are rejected due to their dependence on an indefinite claim.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-6, 10-15, and 17-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Black et al. (US 2008/0155196).
Referring to claim 1, Black has taught a processor (FIG.1) comprising:
a plurality of cores to process instructions (FIG.1, cores 102-1 to 102-n, which have logic 108 to process instructions. The cores are also shown in FIGs.3-5 as 302-1 to 302-n);
a first core (e.g. FIG.5, core 302-1) of the plurality of cores comprising:
decoder circuitry to decode instructions indicating memory operations (from paragraph 17, logic 108 of a core includes decode logic. The same paragraph mentions load instructions, which are known to indicate memory operation. Such instructions would be decoded to control the system to perform the loads), including load operations of a first type with shared data hints and load operations of a second type without shared data hints (from paragraphs 17-18, a prefetch hint exists for a first type of load (streaming load that satisfies a stride pattern) when the load and another load are likely to share a page of data. Such a hint would not exist for a second type of load (non-streaming load) that doesn’t share a page with another load);
execution circuitry to execute the instructions to perform the memory operations (cores include execution circuitry to execute instructions. This circuitry is what causes a load to be performed, for instance); and
data prefetch circuitry to store tracking data in a tracking data structure responsive to the memory operations, a portion of the tracking data associated with the first type of load operations (from paragraphs 17-18, the logic 108 in a core may include prefetch circuitry, which would track streaming load data, e.g. confidence/probability, stride, etc.),
the data prefetch circuitry to detect memory access patterns using the tracking data, the data prefetch circuitry to responsively issue one or more prefetch operations using shared data hints based, at least in part, on the portion of the tracking data associated with the first type of load operations (from paragraphs 17-18 and 27, for instance, a prefetch confidence may be generated based on stride patterns for a streaming load, and this confidence may result in a shared hint that causes a shared page to be transferred to cache 306-1 and/or 502).
Referring to claim 2, Black has taught the processor of claim 1 wherein issuing the one or more prefetch operations using the shared data hints comprises loading data from memory and storing the data in a cache of the first core in a shared state (from paragraph 27, data may be pre-fetched into L2 cache 306-1 of a core. Because it is shared page data, the data is in a shared state).
Referring to claim 3, Black has taught the processor of claim 2 further comprising: cache controller circuitry to store the data in at least a first cacheline of a Level-2 (L2) or Level-1(L1) cache associated with the first core (again, from paragraph 27, a first cacheline of an L2 cache will be filled with a prefetched cacheline).
Referring to claim 4, Black has taught the processor of claim 1 wherein the tracking data structure comprises a plurality of entries, each entry to store information for a single stream of addresses within a single page of memory (see paragraphs 17 and 28. The prefetching is instruction pointer (IP)- and stride-based, meaning that there are different entries tracking different strides corresponding to a stream of addresses within a single page. In other words, there would be an entry for stride detection for a first page, another entry for stride detection for a second page, and so on).
Referring to claim 5, Black has taught the processor of claim 1 wherein the portion of the tracking data associated with the first type of load operation comprises a first field of each entry to indicate a shared data hint (from paragraphs 17-19 and 28, there is a confidence field indicating low, medium, or high. If high, for instance, this is a hint that page data is shared and should be prefetched).
Referring to claim 6, Black has taught the processor of claim 5 wherein the first field is to store a first value to indicate a shared data hint and is to store a second value to indicate no shared data hint (e.g. from paragraphs 18, 28, and 30, a high value represents “shared” (and prefetching) whereas “low” would represent “not shared” (and no prefetching)).
Claim 10 is mostly rejected for similar reasoning as claim 1. Black has further taught a non-transitory machine-readable medium having instructions stored thereon which when processed by a machine, cause the machine to perform the claimed operations (e.g. paragraph 35).
Claims 11-15 and 17-20 are rejected for similar reason as claims 2-6 and 1-4, respectively.
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 7 and 16 are rejected under 35 U.S.C. 103 as being unpatentable over Black in view of Sander et al. (US 6,571,318).
Referring to claim 7, Black has taught the processor of claim 4 wherein each entry of the tracking data structure further includes one or more confidence fields indicating a level of confidence in a sequence of addresses associated with each corresponding entry (again, the first field is a confidence field indicating a level of confidence). Black has not explicitly taught that the confidence field is a counter field. However, first note that the last sentence of paragraph 28 states that any scheme may be used to indicate the level of confidence. Sander provides a similar predictor, wherein each entry is used to detect a stride pattern. Each time another address in the pattern is detected, a confidence counter is incremented to increase the confidence in the pattern. See the abstract. A counter is a known simplistic component that could be easily incremented to adjust the confidence. As a result, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Black such that each entry of the tracking data structure further includes one or more confidence fields indicating a level of confidence in a sequence of addresses associated with each corresponding entry.
Clai 16 is rejected for similar reasoning as claim 7.
Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Black in view of Sander and the examiner’s taking of Official Notice.
Referring to claim 8, Black, as modified, has taught the processor of claim 7 wherein the one or more confidence counter fields include a hint confidence counter field to store a hint confidence counter value (again, it is obvious for the confidence in Black to be implemented via counter so it can be incremented to transition from low to medium to high confidence), the hint confidence counter value to be incremented in response to load operations of the first type accessing a corresponding memory page (when loads satisfy the stride pattern of a page (first type of load), the counter will be incremented).
Black, as modified, has not taught that the hint confidence counter value is to be decremented in response to load operations of the second type accessing the corresponding memory page (that is, Sander does not mention decrementing to decrease the strength of the confidence). However, Official Notice is taken that such was well-known in the art before applicant's invention (e.g. for branch prediction). Allowing for decrementing as well as incrementing would allow the system to adjust from higher confidences to lower confidences when the system experiences a string of loads not satisfying a tracked pattern, thereby allowing the system to reduce power consumption by not prefetching as much when it isn’t as useful. As a result, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Black such that the hint confidence counter value is to be decremented in response to load operations of the second type accessing the corresponding memory page.
Allowable Subject Matter
Claim 9 is objected to as being dependent upon a rejected base claim, but would be allowable over the prior art if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Conclusion
The following prior art made of record and not relied upon is considered pertinent to applicant's disclosure:
Isaac (US 6,976,147) has taught a stride-based prefetcher using a prediction confidence value.
Wang (US 2005/0027941) has taught a hint to execute a ld.acq instruction that loads data into private cache in a shared state. This data would be provided to another core if the other core experiences a cache miss for the same data.
Alam (US 2022/0197808) has taught prefetching physical pages where a shared cache memory receives prefetch requests with a page prefetch hint.
Hughes (US 2023/0101512) has taught an instruction that performs a prefetch with a hint that the data to be prefetched will be shared by other threads (paragraphs 32-33).
Kahle (US 6,460,115) has taught prefetching data to multiple levels of cache using a software hint to override a hardware prefetcher.
Li (US 2024/0385966) has taught page address range-based memory hints for a prefetcher.
Anantaraman (US 2015/0378919) has taught hint vectors corresponding to cache lines.
Kiss (WO 2023/073337) has taught prefetch requests based on a hint to prefetch data to be loaded into cache in a shared state (e.g. FIG.4, S124, S126, S128).
Vanderwiel has taught “Data Prefetch Mechanism” including software prefetching based on “hints to the memory system as to how the prefetched block will be used. Such information may be useful in multiprocessors where data can be prefetched in different sharing states, for example” (section 3).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to David J. Huisman whose telephone number is 571-272-4168. The examiner can normally be reached on Monday-Friday, 9:00 am-5:30 pm.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Jyoti Mehta, can be reached at 571-270-3995. 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.
/David J. Huisman/Primary Examiner, Art Unit 2183