DETAILED ACTION
This action responds to Application No. 19/008363, filed 01/02/2025.
Claims 1-19 are presented for examination.
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 statements (IDS) submitted on 04/08/2025 and 01/02/2025 are in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statements are being considered by the examiner.
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 13-16 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 limitation “the request packet” (e.g. claim 13, line 2) has insufficient antecedent basis in the claims. Parent claim 11 contains a plurality of request packets, so it is unclear which one is “the” request packet.
Claims 14-19 are rejected as being dependent upon rejected claim 13 above.
Appropriate correction is required.
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 (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.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-2 and 10 are rejected under 35 U.S.C. 103 as being unpatentable over Beard et al (US 2018/0293169 A1).
Re claim 1, Beard discloses the following:
A data sharing method of a memory controller in an environment including a plurality of operation devices, the data sharing method comprising: (Fig. 2; ¶ 91). The environment contains a plurality of core devices (operation devices) (Fig. 2, devices 202 and 204) which contain various memory related controllers (Fig. 2, cache control 210 and 214, link control 222, coherence control 216);
determining whether a request packet corresponds to a predetermined operation device (¶ 73). The link controller (part of the memory controller) determines for a request (request packet) that an address corresponds to a producer buffer address (and the corresponding producer associated with it);
determining whether an address included in the request packet corresponds to a predetermined address (¶ 73). The link controller determines that the request address corresponds to a corresponding producer buffer address (predetermined address);
obtaining a tag line corresponding to the request packet (Fig. 3; ¶ 45, 61, and 73). The process of transferring a cache line between a producer and consumer involves obtaining the cache line (¶ 45 and 73). The cache line includes metadata including a bit tag and status bits (collectively a tag line, as it is tag info for a cache line) (Fig. 3, bit tag 304, status bits 306). Furthermore, it is noted that while in the primary embodiment the bit tag and status bit metadata (tag line) is in-line with the cache data, there is an alternative embodiment where the tag structures may be separated from the data and placed in a tag array, such that when a matching entry (tag line) in the tag array is found, it provides the location of the corresponding data element (¶ 61);
determining whether the request packet is serviceable based on a service bit included in the tag line (Fig. 3, status bits 306; ¶ 59-60). The status bits (service bit) indicate the MESI state of the data, including whether it is valid or invalid (e.g. if the data is invalid, then the request packet is not serviceable).
Beard discloses the individual claimed elements above; however, it is not clear whether each element appears in a single embodiment; nevertheless, it would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to combine the various elements into a single embodiment, as Beard suggests modifying the primary embodiment by separating the tag and data structures to yield the secondary embodiment (¶ 61). Furthermore, it would have been obvious to combine the embodiments, as it would be obvious to make the embodiments integral (MPEP § 2144.04(V)(B)).
Re claim 2, Beard discloses the method of claim 1, and further discloses that the memory controller comprises at least one of a dynamic random-access memory (DRAM) controller and a cache controller (Fig. 2, cache control 210 and 214, link control 222, coherence control 216). These control elements (controllers) all manage cache operation, and thus are cache controllers.
Re claim 10, Beard discloses the method of claim 1; accordingly, it also discloses computer-readable storage media storing instructions that implement that method, as in claim 10 (¶ 111).
Claims 3-6 are rejected under 35 U.S.C. 103 as being unpatentable over Beard in view of Jones (US 2013/0014118 A1).
Re claim 3, Beard discloses the method of claim 1, and further discloses the following:
based on determining that the request packet is serviceable (¶ 59-60). The status bits of the metadata (tag line) include information about whether the data is valid or invalid, and/or its permissions; these permissions determine whether the data requested by the request (request packet) is serviceable;
updating the tag line (¶ 59-60) the status bits in the metadata (tag line) reflect the MESI status and/or whether the data is to be accessed as a producer or consumer link buffer; accordingly, when these statuses change, the metadata (tag line) would be updated. However, while Beard discloses that these status bits in the metadata (tag line) reflect the status of said data, and thus if the status were to change, the bits would also obviously change, it does not explicitly disclose the act of performing the change itself in response to determining that a request is serviceable (which is a prerequisite to performing the request). Accordingly, Examiner has provided Jones, which more clearly discloses this.
Jones discloses that based on determining that the request packet is serviceable, updating the [metadata] (¶ 4). The section (line) uses a valid bit (metadata) which indicates whether data is ready to be produced or consumed; after data is produced by the producer, it is set, and after it is consumed, it is cleared (updated).
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to modify the producer/consumer method of Beard to set a bit during producer writing and clear the bit during consumer reading, as in Jones, because Jones suggests that this ensures that only valid data is ready by consumer threads (¶ 4).
Re claim 4, Beard and Jones disclose the method of claim 3, and Beard further discloses metadata in the tag line (Fig. 3).
Jones further discloses that updating the [metadata] comprises, based on the request packet being a producer packet, updating the service bit of the [metadata] from a first value to a second value (¶ 4). If the request is a producer packet, the data is written and the valid bit (service bit of the metadata) is set (set from a first value to a second value).
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to combine Beard and Jones, for the reasons noted in claim 3 above.
Re claim 5, Beard and Jones disclose the method of claim 3, and Beard further discloses metadata in the tag line (Fig. 3).
Jones further discloses that updating the [metadata] comprises, based on the request packet being a consumer packet, updating the service bit of the [metadata] from a second value to a first value (¶ 4). If the request is a consumer packet, the data is read and the valid bit (service bit of the metadata) is cleared (set from a second value to a first value).
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to combine Beard and Jones, for the reasons noted in claim 3 above.
Re claim 6, Beard discloses the method of claim 1, and further discloses determining whether the request packet is serviceable (Fig. 3, status bits 306; ¶ 59-60).
Beard discloses status bits to indicate that “a line is to be accessed as a producer” or “as a consumer”. However, it is not explicitly stated whether these bits indicate that the consumer packet is actually capable of reading data, or merely indicating the intent to do so. Accordingly, Examiner has provided Jones.
Jones discloses that the determining whether the request packet is serviceable comprises: based on the request packet being a consumer packet and the service bit being a second value, determining that the consumer packet is capable of reading data (¶ 4). The valid bit (service bit) being in a set state indicates that the consumer is ready to read the data (capable of reading the data).
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to combine Beard and Jones, for the reasons noted in claim 3 above.
Claim 7 is rejected under 35 U.S.C. 103 as being unpatentable over Beard in view of Eilebrecht (US 2010/0192161 A1).
Re claim 7, Beard discloses the method of claim 1, and further discloses adding a request packet to a request queue (¶ 68). However, it does not explicitly disclose adding a request packet to a request queue based on determining that the request packet is not serviceable.
Eilebrecht discloses adding the request packet to a request queue of the memory controller based on determining that the request packet is not serviceable (¶ 27). The producer/consumer system contains a queue (request queue), and when consumer processes are too busy to consume a work request (request packet is not serviceable), the work request (request packet) is added to the queue.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to modify the producer/consumer system of Beard such that work items (request packets) are added to a queue when they are not serviceable, as in Eilebrecht, because Eilebrecht suggests that doing so would allow multiple work items to be buffered and released as consumers become available, allowing for multiple consumer threads to execute in parallel, yielding significant performance improvements (¶ 25-27).
Claims 8-9 are rejected under 35 U.S.C. 103 as being unpatentable over Beard or, alternatively, over Beard in view of Akin et al (US 2020/0026513 A1).
Re claim 8, Beard discloses the method of claim 1. Additionally, the limitation “based on a number of a plurality of producer packets being greater than or equal to a predetermined number of a plurality of consumer packets” is a conditional limitation in a method claim, which is subject to interpretation under 35 USC § 2111.04(II). Because the condition is not positively recited as actually occurring, it is possible that it will not occur at all, and as such, the limitation is optional. Nonetheless, in the interest of furthering compact prosecution, Examiner has provided Akin.
Akin discloses that based on a number of a plurality of producer packets being greater than or equal to a predetermined number in comparison with a number of a plurality of consumer packets, requesting a producer operation device corresponding to a producer packet from among the plurality of producer packets to reduce bandwidth (¶ 29). Producer and consumer processors (devices) utilize memory bandwidth balancing, such that if an excessive number of write (producer) requests are performed relative to read (consumer) requests, producer processors are throttled (requested to reduce bandwidth) in order to bring it into balance.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to modify the producer/consumer method of Beard such that when there are excessive producer operations, one or more producers throttles to reduce its bandwidth, as in Akin, because it would be applying a known technique to improve a similar method in the same way. Beard discloses a producer/consumer method. Akin also discloses a producer/consumer method, which has been improved in a similar way to the claimed invention, to utilize load balancing to throttle excessive production or consumption. It would have been obvious to integrate the throttling of Akin into the producer/consumer method of Beard, because it would yield a predictable improvement by insuring that the rate at which data is consumed is matched by the rate at which is produced.
Re claim 9, Beard discloses the method of claim 1. Additionally, the limitation “based on a number of a plurality of consumer packets being greater than or equal to a predetermined number of a plurality of producer packets” is a conditional limitation in a method claim, which is subject to interpretation under 35 USC § 2111.04(II). Because the condition is not positively recited as actually occurring, it is possible that it will not occur at all, and as such, the limitation is optional. Nonetheless, in the interest of furthering compact prosecution, Examiner has provided Akin.
Akin discloses that based on a number of a plurality of consumer packets being greater than or equal to a predetermined number in comparison with a number of a plurality of producer packets, requesting a producer operation device corresponding to a consumer packet from among the plurality of consumer packets to reduce bandwidth (¶ 29). Producer and consumer processors (devices) utilize memory bandwidth balancing, such that if an excessive number of write (producer) requests are performed relative to read (consumer) requests, producer processors are throttled (requested to reduce bandwidth) in order to bring it into balance.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to combine Beard and Akin, for the reasons noted in claim 8 above.
Claims 11-12 are rejected under 35 U.S.C. 103 as being unpatentable over Beard in view of Palermo et al (US 20210075730 A1).
Re claim 11, Beard discloses the following:
A memory controller comprising: (Fig. 2). The environment contains various memory related controllers (Fig. 2, cache control 210 and 214, link control 222, coherence control 216);
a request queue configured to store a plurality of request packets (¶ 41). Requests are stored in a queue like data buffer (request queue);
a tag memory configured to store a tag line comprising a service bit indicating whether a request packet from among the plurality of request packets is serviceable (Fig. 3; ¶ 45, 59-61, and 73). See claim 1 above.
Beard does not specifically disclose a queue arbiter.
Palermo discloses a request queue configured to store a plurality of request packets; a queue arbiter configured to determine priority information corresponding to the plurality of request packets based on at least one of producer operation device information, consumer operation device information, and address information corresponding to a shared buffer; and (¶ 155 and 164). The arbitration logic (queue arbiter) arbitrates requests going into the queue (request queue) based on, among other things, the priority of the producers or consumers (producer operation device information, consumer operation device information).
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to modify the producer/consumer system of Beard to utilize a queue arbiter, as in Palermo, because Palermo suggests that doing so would allow high priority requests to expeditiously be processed over lower priority requests (¶ 54, 57, and 164).
Re claim 12, Beard and Palermo disclose discloses the controller of claim 11, and Beard further discloses that the memory controller comprises at least one of a dynamic random-access memory (DRAM) controller and a cache controller (Fig. 2, cache control 210 and 214, link control 222, coherence control 216). See claim 2 above.
Claims 13-16 are rejected under 35 U.S.C. 103 as being unpatentable over Beard in view of Palermo, further in view of Jones.
Re claim 13, Beard and Palermo disclose the controller of claim 11, and Beard further discloses the following:
a tag updater configured to, based on determining that the request packet is serviceable (¶ 59-60). See claim 3 above;
update the tag line (¶ 59-60). See claim 3 above.
Jones discloses a tag update configured to, based on determining that the request packet is serviceable, update the [metadata] (¶ 4). See claim 3 above.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to modify the producer/consumer method of Beard (combined with Palermo) to set a bit during producer writing and clear the bit during consumer reading, as in Jones, because Jones suggests that this ensures that only valid data is ready by consumer threads (¶ 4).
Re claim 14, Beard, Palermo, and Jones disclose the controller of claim 13, and Beard further discloses metadata in the tag line (Fig. 3).
Jones further discloses that the tag updater is further configured to, based on the request packet being a producer packet, update the service bit of the [metadata] from a first value to a second value (¶ 4). See claim 4 above.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to combine Beard, Palermo, and Jones, for the reasons noted in claim 13 above.
Re claim 15, Beard, Palermo, and Jones disclose the controller of claim 13, and Beard further discloses metadata in the tag line (Fig. 3).
Jones further discloses that the tag updater is further configured to, based on the request packet being a consumer packet, update the service bit of the [metadata] from a second value to a first value (¶ 4). See claim 15 above.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to combine Beard, Palermo, and Jones, for the reasons noted in claim 13 above.
Re claim 16, Beard, Palermo, and Jones disclose the controller of claim 13, and Jones further discloses that the determining whether the request packet is serviceable comprises: based on the request packet being a consumer packet and the service bit being a second value, determining that the consumer packet is capable of reading data (¶ 4). The valid bit (service bit) being in a set state indicates that the consumer is ready to read the data (capable of reading the data).
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to combine Beard, Palermo, and Jones, for the reasons noted in claim 13 above.
Claim 17 is rejected under 35 U.S.C. 103 as being unpatentable over Beard in Palermo, further in view of Jones, and further in view of Eilebrecht.
Re claim 17, Beard, Palermo, and Jones disclose the controller of claim 11, and Beard further discloses adding a request packet to a request queue (¶ 68). However, Beard, Palermo, and Jones do not explicitly disclose adding a request packet to a request queue based on determining that the request packet is not serviceable.
Eilebrecht discloses adding the request packet to a request queue of the memory controller based on determining that the request packet is not serviceable (¶ 27). The producer/consumer system contains a queue (request queue), and when consumer processes are too busy to consume a work request (request packet is not serviceable), the work request (request packet) is added to the queue.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to modify the producer/consumer system of Beard (combined with Palermo and Jones) such that work items (request packets) are added to a queue when they are not serviceable, as in Eilebrecht, because Eilebrecht suggests that doing so would allow multiple work items to be buffered and released as consumers become available, allowing for multiple consumer threads to execute in parallel, yielding significant performance improvements (¶ 25-27).
Claims 18-19 are rejected under 35 U.S.C. 103 as being unpatentable over Beard in view of Palermo, further in view of Jones, and further in view of Akin et al (US 2020/0026513 A1).
Re claim 18, Beard, Palermo, and Jones disclose the controller of claim 13, but do not specifically disclose requesting a producer to reduce bandwidth if there are more producer requests than consumer requests.
Akin discloses that based on a number of a plurality of producer packets being greater than or equal to a predetermined number in comparison with a number of a plurality of consumer packets, the memory controller is further configured to request a producer operation device corresponding to a producer packet from among the plurality of producer packets to reduce bandwidth (¶ 29). Producer and consumer processors (devices) utilize memory bandwidth balancing, such that if an excessive number of write (producer) requests are performed relative to read (consumer) requests, producer processors are throttled (requested to reduce bandwidth) in order to bring it into balance.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to modify the producer/consumer method of Beard (combined with Palermo and Jones) such that when there are excessive producer operations, one or more producers throttles to reduce its bandwidth, as in Akin, because it would be applying a known technique to improve a similar method in the same way. Beard (combined with Palermo and Jones) discloses a producer/consumer method. Akin also discloses a producer/consumer method, which has been improved in a similar way to the claimed invention, to utilize load balancing to throttle excessive production or consumption. It would have been obvious to integrate the throttling of Akin into the producer/consumer method of Beard (combined with Palermo and Jones), because it would yield a predictable improvement by insuring that the rate at which data is consumed is matched by the rate at which is produced.
Re claim 19, Beard, Palermo, and Jones disclose the controller of claim 13, but do not specifically disclose requesting a consumer to reduce bandwidth if there are more consumer requests than producer requests.
Akin discloses that based on a number of a plurality of consumer packets being greater than or equal to a predetermined number in comparison with a number of a plurality of producer packets, the memory controller is further configured to request a consumer operation device corresponding to a consumer packet from among the plurality of consumer packets to reduce bandwidth (¶ 29). Producer and consumer processors (devices) utilize memory bandwidth balancing, such that if an excessive number of write (producer) requests are performed relative to read (consumer) requests, producer processors are throttled (requested to reduce bandwidth) in order to bring it into balance.
It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention (AIA ) to combine Beard, Palermo, Jones, and Akin, for the reasons noted in claim 18 above.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure:
Wang et al (US 2016/0188474 A1). Discloses a flag used to prevent consumers and producers from over-running each other (¶ 48).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CRAIG S GOLDSCHMIDT whose telephone number is (571)270-3489. The examiner can normally be reached M-F 10-6.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Hosain Alam can be reached at 571-272-3978. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/CRAIG S GOLDSCHMIDT/Primary Examiner, Art Unit 2132