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 .
Claims 1- 18 are presented for examination.
DETAILED ACTION
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, 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-18 are rejected under 35 U.S.C. 103 as being unpatentable over Chieh (U.S Patent Application Publication 2007/0074054; Reference cited as prior art in previous office action) in view of Mcdonnell et.al. (U.S Patent Application Publication 2019/0042331; hereinafter “Mcdonnell”; Reference cited as prior art in previous office action))
Regarding Claims 1, 7, 13, Chieh discloses A network interface controller comprising[“ The computing device 100 may comprise .. a processor 150..”, 0016; .Fig.1]:
interface circuitry to receive data to be transmitted in a network packet by the network interface controller[“The network interface 130 may provide an interface between the computing device 100 and a network to facility data communication between the computing device 100 and other devices coupled to a network. In particular, the network interface 110 may comprise analog circuitry, digital circuitry, antennae, and/or other components that provide physical, electrical, and protocol interfaces to transfer packets between the computing device 100 and a wired and/or wireless network.”, 0017; “a processor 150”,0016; Fig.1 ; (Processor corresponds to the Network Interface controller)]; and
packet processing pipeline circuitry including network device pipeline stage circuitry including idleness detection circuitry to monitor instructions received by the network device pipeline stage [0017; “The processor 150 may comprise one or more pipelines 160 to process instructions…The pipeline 160 may execute or process a single instruction in a series of pipeline stages 170.sub.0, 170.sub.1 . . . 170.sub.N such as stages, 10 stages, 20 stages,”, 0019; [0017; “The processor 150 may comprise one or more pipelines 160 to process instructions…The pipeline 160 may execute or process a single instruction in a series of pipeline stages 170.sub.0, 170.sub.1 . . . 170.sub.N such as stages, 10 stages, 20 stages,”, 0019; 0021; The stages 170 may also assert an idle signal id to indicate an idle condition of the pipeline 160. For example, the stages 170 in one embodiment may assert the idle signal id in response to a swap instruction that causes the processor 150 to change to another thread of instructions at a time when no other thread is ready to be executed. Other components may also assert the idle signal id. ..”, 0022;( i.e. the device pipeline stage circuitry including an idleness detection circuitry to generate an idle signal at a time when there are no instructions/ threads to execute by a stage.)]and to send an idle detection signal to a clock subsystem to reduce a clock frequency of a stage clock for the network device pipeline stage circuitry upon detecting no received data packets in the network device pipeline stage circuitry for a time period[ [ “The stages 170 may be driven by a clock signal clk of the oscillator 120 or a gated clock signal gclk derived from the clock signal of the oscillator 120 in order to control the flow of an instruction from one stage 170.sub.X to the next stage 170.sub.X+1. Due to interdependencies between stages 170, the frequency of the clock signal may be based upon the stage 170 having the longest execution time to ensure each stage 170 completes its phase of an instruction before processing its phase of the next instruction in the pipeline 160…”, 0020;” However, due to flushing of the pipeline 160 in clock cycle T.sub.3, each of stages 170.sub.1, 170.sub.2, 170.sub.3, 170.sub.4 have no instruction to process and thus each is idle in clock cycle T.sub.4. ….”, 0025; “the processor 150 may comprise gated clock logic 180 to gate pipeline stages 160 that have no instruction to execute from the clock signal clk of the oscillator 120. ..The gated clock logic 600 may comprise pipeline clock logic 230, local clock logic 250 and decision logic 620...” ; Fig.6;0033; ( i.e the gated clock logic including the decision, local clock logic and pipeline logic corresponds to the clock subsystem)]; “The decision logic 620 may comprise circuitry such as, for example, the depicted AND gate and latches of FIG. 6 that determine based upon an idle signal id and a local clock signal lclk (i) which stages 170 have instructions and are active, and (ii) which stages 170 do not have instructions and are idle. ..The decision logic 620 may generate control signals ctrl.sub.0, ctrl.sub.1, ctrl.sub.2, and ctrl.sub.3 that cause the pipeline clock logic 230 to gate or prevent the clock signal clk of the oscillator 120 from driving idle stages 170 and that cause the pipeline clock logic 230 to allow or permit the clock signal clk to drive active or non-idle stages 170.”, 0034; Fig.2, 7; ( i.e. based on the idle signal id received by the gated clock logic from a pipeline stage, that indicates that there are no instructions to execute for a time period , clock signal from the oscillator is gated / prevented from driving the corresponding idle pipeline stage . Therefore, the gated clock logic reduces the clock frequency by not driving the clock for a pipeline stage for a time period)];
wherein:
the clock frequency of the stage clock for the network device pipeline stage circuitry is selectable at least in part, based upon configurable control data [0026; “The decision logic 220 may comprise circuitry such as, for example, the depicted AND gate, OR gates, and latches of FIG. 3 that determine based upon a kill signal k and a local clock signal lclk (i) which stages 170 have instructions and are active, and (ii) which stages 170 do not have instructions and are idle. However, other embodiments may implement the decision logic 220 using circuitry components other than the components depicted in FIG. 3. The decision logic 220 may generate control signals ctrl.sub.0, ctrl.sub.1, ctrl.sub.2, and ctrl.sub.3 that cause the pipeline clock logic 230 to gate or prevent the clock signal clk of the oscillator 120 or derived from the oscillator 120 from driving idle stages 170 and that cause the pipeline clock logic 230 to allow or permit the clock signal clk to drive active or non-idle stages 170.”, 0027;( i.e. based on the control signals configured, selectively allowing or gating the clock for the respective stages)];
the configurable control data is configurable to enable and/or disable, at least in part, operation of the idleness detection circuitry[ “..determine based upon an idle signal id and a local clock signal lclk (i) which stages 170 have instructions and are active, and (ii) which stages 170 do not have instructions and are idle..”, 0027;” determine to sequentially assert each control signals ctrl in response to the idle signal id being asserted and may determine to sequentially de-assert each control signal ctrl in response to the idle signal id being de-asserted. s depicted in FIG. 7, the idle signal id is asserted in clock cycle T.sub.1 and de-asserted in clock cycle T.sub.6. Accordingly, the decision logic 620 may determine to sequentially assert each control signal ctrl in clock cycle T.sub.1 and may determine to sequentially de-assert each control signal ctrl in clock cycle T.sub.6. As depicted, the decision logic 620 may sequentially assert one control signal ctrl per a clock cycle in response to the as…”, 0035; “.. the decision logic 220, 620 may determine based upon an a local clock signal lclk, a kill signal k, and an idle signal id which stages 170 are idle and which stages 170 are active. Further, the decision logic 220, 620 may generate control signals ctrl indicative of which stages 170 are active and which stages 170 are idle”, 0036; ( i.e. Configuring the control signals to enable or disable the clock for the respective stages based on assertion or de-assertion of the idle signal id generated by the idleness detection circuitry of the pipeline stage)]
However, Chieh does not expressly disclose monitor data packets and detecting no received data packets. Specifically, Chieh discloses monitoring the idle time of a pipeline stage based on whether there are no instructions to be executed by the processing / pipeline stage and generating an idle signal id.. Chieh does not expressly disclose monitoring whether the packets or received or not.
In the same field of endeavor ( e.g. packet distribution among processor cores based on the network traffic and transitioning the worker cores to low power mode when there are no packets available to process by monitoring their respective consumer queues), Mcdonnell teaches ,
monitor data packets and detecting no received data packets [ “..application 160 is a packet processing application… circuitry 120 such as processing cores 122-1 to 122-m, ..and application 160 are executed by one or more processing cores 122-1 to 122-m.”, 0021; ” 0024; “hardware queue manager (HQM) 180 to assist in managing queues of data units. ..HQM 180 is part of circuitry 120”, 0026;” uncore 182 includes a plurality of consumer queues CQ 1 204, CQ 2 206, . . . CQ N 208, ..In an embodiment, a block of metadata is a packet descriptor including information describing a packet. ..“, 0028; HQM 180 distributes packet processing tasks to enabled worker cores 210, 212, . . . 214 by adding packet descriptors to consumer queues CQ 1 204, CQ 2 206, . . . CQ N 208 in uncore 182. …”, 0029; ( i.e each core corresponds to a processing stage to process the packets received form the network); 0035; “At block 706, each worker queue independently polls the worker core's associated consumer queue (or consumer queues, if a worker core is associated with multiple consumer queues). If the consumer queue is not empty at block 708, the worker core gets and processes the next packet descriptor (i.e., a new packet descriptor) in the consumer queue. Processing loops back to block 708. If the consumer queue is empty at block 708, the worker core enters a low power state at block 712 to pend on a next available (e.g., new) consumer queue entry. That is, the worker core will not process any more packet descriptors until a next available packet descriptor is added to the worker core's consumer queue by HQM 180. In an embodiment, the worker core enters a low power state by executing a MWAIT instruction.”, 0039; ( i.e each core monitors whether the packet descriptors are added or empty for the respective consumer queues . If the consumer queue is empty the core enters a low power / sleep state to reduce the power consumption)].
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Chieh with Mcdonnell. Mcdonnell’s teaching of power aware load balancing among processor cores based on the network traffic and transitioning the worker cores to low power mode when there are no packets available to process will substantially improve Chieh’s system to reduce power consumption and increase efficiency by allowing the cores that are not required to process the packets to be redirected to other tasks and only required when recalled by monitoring their dedicated consumer queue[0003-0004].
Regarding Claims 2, 8, 14, Chieh discloses wherein the idleness detection circuitry [0022]
Mcdonnell, monitor a number of received data packets stored in an input First In First Out (FIFO) queue[ 0030; 0033]
Regarding Claims 3,9, 15, Chieh discloses wherein the clock frequency of the network device pipeline stage circuitry is idle mode while the idle detection signal is asserted [ 0022] .
Regarding Claims 4, 10, 16, Chieh discloses, wherein the clock frequency of the network device pipeline stage circuitry is normal mode while the idle detection signal is not asserted [0022; 0034; “the decision logic 220 may ..determine to sequentially de-assert each control signal ctrl in response to the idle signal id being de-asserted. ..”, 0035; ( i.e. determining whether the stages are active and have instructions to execute, accordingly allowing the clock from the oscillator to drive the non-idle stages when the idle signal is de-asserted)] .
Regarding Claim 5, 11, 17, Chieh discloses wherein a first subset of the network device pipeline stage circuitry shares a first idle detection signal [ 0025; Fig.2, 5].
Regarding Claim 6, 12, 18, Chieh discloses wherein each network device pipeline circuitry has an idle detection signal [0022; 0033-0034; Fig.6].
Response to Arguments
Applicant’s arguments with respect to the amended limitations for claim(s) 1,7, 13 have been considered but are moot because the arguments do not apply to Chieh in view of Mcdonnell references as set forth in the current rejection.
Conclusion
Applicant's amendment necessitated the new ground(s) 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.
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Chong et al., U.S Patent Application Publication 2011/0148887, teaches a controller circuit may include a policy module to generate a power reduction policy output based on a processor power state input. The power reduction policy output may also be generated based on a graphics render engine idleness input. The circuit can also include a clock masking cell to apply a clock masking configuration to a graphics render clock trunk based on the power reduction policy output.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to GAYATHRI SAMPATH whose telephone number is (571)272-5489. The examiner can normally be reached on 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, Jaweed Abbaszadeh can be reached on 5712701640. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/GAYATHRI SAMPATH/ Examiner, Art Unit 2176
/JAWEED A ABBASZADEH/ Supervisory Patent Examiner, Art Unit 2176