WO2016144368A1 - Frequency of a clock signal - Google Patents

Frequency of a clock signal Download PDF

Info

Publication number
WO2016144368A1
WO2016144368A1 PCT/US2015/020280 US2015020280W WO2016144368A1 WO 2016144368 A1 WO2016144368 A1 WO 2016144368A1 US 2015020280 W US2015020280 W US 2015020280W WO 2016144368 A1 WO2016144368 A1 WO 2016144368A1
Authority
WO
WIPO (PCT)
Prior art keywords
frequency
workload
processors
processor
predefined
Prior art date
Application number
PCT/US2015/020280
Other languages
French (fr)
Inventor
John A WICKERAAD
Original Assignee
Hewlett Packard Enterprise Development Lp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development Lp filed Critical Hewlett Packard Enterprise Development Lp
Priority to PCT/US2015/020280 priority Critical patent/WO2016144368A1/en
Publication of WO2016144368A1 publication Critical patent/WO2016144368A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • An electronic device may include a number of processors processing data simultaneously.
  • the amount of data being processed by each processor may be nonuniform and different processors may experience peak workloads at different times. Accordingly, at a given point in time, some processors may be busy (e.g., working at their capacity) while others may be idle or have small workloads.
  • FIG. 1 is a block diagram of an example electronic device
  • FIG. 2 is a block diagram of another example electronic device.
  • FIG. 3 is a flowchart of an example method for changing a frequency of a clock signal.
  • an electronic device may include a number of processors that may sometimes process data in parallel.
  • the processors may be similar or different in type, function, and processing power.
  • Some processors may be arranged in pipeline configuration where an output of one processor is connected to an input of another processor. Accordingly, in some examples, a workload of one processor may change over time, and at a given point of time workloads of different processors may be different.
  • the speed at which each processor operates and processes data may be determined, at least in part, by a frequency of a clock signal driving the processor.
  • a higher clock frequency may increase a processor's performance and computational capacity, allowing the processor to process more data per unit of time, and to avoid loss of data and other undesirable effects during peak workloads. However, a higher clock frequency may also cause higher power consumption and heat generation by the processor.
  • the electronic device may include, among other things, a plurality of processors and a clock generator.
  • the clock generator may provide a clock signal to the plurality of processors, and obtain workload information indicative of workloads of each of the plurality of processors. Based on the workload information, the clock generator may determine whether to change a frequency of the clock signal, where changing the frequency may include increasing or decreasing the frequency. The clock generator may then change the frequency based on the determination.
  • FIG. 1 is a block diagram of an example electronic device 100.
  • Electronic device 100 may include any type of electronic devices or combinations thereof.
  • electronic device 100 may be a network device (e.g., a network switch, a network router, etc.) to receive and/or send network packets from and/or to one or more networks.
  • network device e.g., a network switch, a network router, etc.
  • Other examples of electronic device 100 include a server, a desktop computer, a notebook computer, a tablet computer, a mobile phone, a smartphone, a gaming device, a printing device, and so forth.
  • electronic device 100 may include a plurality of (e.g., two or more) processors 120.
  • electronic device 100 includes N processors 120, referred to as processors 120-1 - 120-N.
  • processors 120 may include one or multiple processors, such as central processing units (CPUs), semiconductor-based microprocessors, hardware state machines, graphics processing units (GPUs), field-programmable gate arrays (FPGAs), or other electronic circuitry, which may be integrated in a single device or distributed across devices.
  • each processor 120 may also be implemented as a combination of hardware and programming, as will be further discussed below. Any two processors 120 may be similar or different in terms of their type, function, processing power, and other characteristics.
  • one processor 120 may be dedicated to communicating with and receiving data (e.g., network packets) from other electronic devices; another processor 120 may be dedicated to processing (e.g., checking for errors, updating the data and/or its header information, etc.) the received data; another processor 120 may be dedicated to obtaining the processed data and to communicating with and sending the processed data to other electronic devices; and so forth.
  • one or more processors 120 may be dedicated to implementing routing protocols, scanning data for viruses, performing Quality of Service (QoS), performing Access Control Lists (ACLs) lookups, and the like.
  • QoS Quality of Service
  • ACLs Access Control Lists
  • any processor 120 may be coupled to one or more other processors 120, and may transfer information to and/or from one or more other processors 120.
  • one or more processors 120 may be able to receive input data from one or more other electronic devices through one or more input ports of electronic device 100, and/or to send output data to one or more other electronic devices through one or more output ports of electronic device 100.
  • some or all processors 120 may be working and processing data simultaneously.
  • electronic device 100 may include a clock generator 1 10.
  • Clock generator 1 10 may include any type of circuitry capable of generating one or more clock signals, where each clock signal may be characterized by a particular frequency.
  • clock generator 1 10 may include or be coupled to one or more phase-locked loop (PLL) modules.
  • PLL phase-locked loop
  • clock generator 1 10 may also be implemented as a combination of hardware and programming, as will be further discussed below.
  • clock generator 1 10 may generate and provide a clock signal 140 to a plurality of processors 120, where the plurality may include two or more, or all of processors 120 within electronic device 100. Specifically, in some examples, a clock output of clock generator 1 10 may be electronically coupled (e.g., via a wire) to clock inputs of a plurality of processors 120. In other examples, clock generator 1 10 may generate and provide different clock signals to different groups of processors 120.
  • Clock signal 140 may have a certain frequency that, in some examples, may be changed by clock generator 1 10.
  • clock generator 1 10 may increase or decrease the frequency of clock signal 140, as will be discussed below.
  • clock generator 1 10 may set or change the frequency of clock signal 140 to any frequency from a plurality of (e.g., two or more) predefined frequencies.
  • the plurality of predefined frequencies may be stored, for example, in one or more volatile and/or non-volatile memories.
  • the predefined frequencies may be stored in a plurality of registers accessible by clock generator 140.
  • the plurality of predefined frequencies may be modified, for example, by one or more processors 120.
  • the plurality of predefined frequencies may include a maximum frequency (e.g., 2GHz) and frequencies corresponding to the maximum frequency being divided by whole numbers (dividers).
  • the plurality of predefined frequencies may include the following frequencies: 2GHz, 1 GHz, 666.66MHz, 500MHz, 400MHz, 333.33MHz, 285.71 MHz, 250Mhz, 222.22MHz, 200MHz, etc.
  • each processor 120 may have a particular workload.
  • a processor's workload may represent, for example, what amount or percentage of the processor's resources (e.g., memory, processing power, etc.) is being utilized at a given point in time.
  • the workload may also represent, for example, the amount of data that is ready to be processed by the processor, e.g., the amount of unprocessed data being stored in the processor's input queue (e.g., a first-in-first-out (FIFO) buffer) or the input queue's level of fullness.
  • FIFO first-in-first-out
  • the workload may also represent, for example, the amount of data stored in the processor's output queue (e.g., a FIFO buffer) or the output queue's level of fullness.
  • the workload may be measured, for example, in a number of bytes, data packets, average size of a data packet, a ratio of used memory to total memory, a ratio of non-idle processing cycles to a total number of processing cycles, or using any other suitable measure.
  • each processor 120 may be associated with a predefined workload threshold.
  • the workload threshold may be expressed in absolute values or as a percentage of the maximum workload (e.g., of total capacity) of the respective processor 120.
  • the workload threshold may represent, for example, a level of workload (e.g., 90% of the total capacity) that is so close to the maximum capacity of the processor, that the processor is likely to soon reach the maximum capacity, which may cause various undesirable effects, such as data being delayed, corrupted, or lost.
  • different processors 120 may be associated with different workload thresholds.
  • all processors 120 may be associated with the same workload threshold.
  • the workload threshold associated with each processor 120 may be hard-wired in circuitry or stored in a volatile and/or non-volatile memory, in which case the threshold may be configurable and modifiable.
  • each processor 120 may be associated with a plurality of (e.g., two or more) predefined workload thresholds. For example, each processor 120 may be associated with a "non-critical" workload threshold (e.g., 80% of the maximum capacity) and a "critical" workload threshold (e.g., 95% of the maximum capacity). In these examples, too, each processor 120 may be associated with the same plurality of thresholds or with a different plurality of thresholds, and the thresholds may be hard-wired or stored in a memory.
  • a non-critical workload threshold e.g., 80% of the maximum capacity
  • critical e.g. 95% of the maximum capacity
  • clock generator 1 10 may obtain workload information associated with each processor 120.
  • the workload information may include, for example, the current (real-time) workload of each processor 120; the maximum capacity of each processor 120; the ratio of the workload to the maximum capacity, the availability of each processor 120 (e.g., reversely related to its workload); the workload threshold(s) associated with each processor 120; whether or not the some processors' workloads have reached or exceeded any of their thresholds; or any combination of these and other parameters related to and describing workloads of processors 120.
  • clock generator 1 10 may obtain some or all of the workload information directly from processors 120.
  • clock generator 1 10 may be electronically coupled via a workload signal 130 (e.g., 130-1 , 130-2, ... 130-N) to each processor 120 (e.g., 120-1 , 120-2, ... 120-N, respectively).
  • Each workload signal may include, for example, one or more wires carrying digital or analog signals.
  • each processor 120 may send some or all of the workload information to clock generator 1 10.
  • the workload signal may indicate (e.g., using one wire) whether or not the workload of the respective processor 120 has reached or exceeded a particular (e.g., "critical" or "non-critical") predefined threshold.
  • the workload signal may represent the ratio of the processor's workload to the processor's maximum capacity.
  • the workload signal may indicate whether or not a clock frequency provided to the respective processor 120 needs to be increased (e.g., increased to the next frequency from the plurality of predefined frequencies).
  • the workload signal may indicate whether or not a clock frequency provided to the respective processor 120 needs to be maximized (e.g., increased to the highest frequency from the plurality of predefined frequencies).
  • the workload signal may indicate whether or not a clock frequency provided to the respective processor 120 may be decreased (e.g., decreased to one frequency below the present frequency in the plurality of frequencies).
  • some or all of the workload information may be sent from processors 120 to clock generator 1 10 via other modules (not shown in FIG. 1 for brevity).
  • some or all of the workload information may be stored and periodically updated in a volatile and/or non-volatile memory (e.g., by processors 120 or other modules monitoring workloads of processors 120), and clock generator 1 10 may read the workload information from the memory.
  • clock generator 1 10 may, in some examples, determine whether to change (e.g., increase or decrease) the frequency of clock signal 140, and then to change it in accordance with the determination.
  • clock generator 1 10 may increase the frequency when the workload information indicates that at least one processor 120 has a workload that equals or exceeds a predefined workload threshold associated with that processor.
  • workload information of each processor 120 may explicitly indicate (e.g., via a dedicated signal or bit) that the threshold is reached or exceeded and/or that the clock frequency needs to be increased.
  • the workload information may indicate the amount of workload, the workload threshold, the maximum capacity, and include other information based on which clock generator 1 10 may determine that the workload threshold was reached or exceeded.
  • clock generator 1 10 may increase the frequency of clock signal 140 to the next frequency from the set of predefined frequencies. Increasing the frequency may help reduce the workload of all processors 120, including the processor whose workload reached the threshold. Sometimes, however, increasing the frequency may not reduce the workload of that processor to a level below the workload threshold, or may not reduce it sufficiently fast. Accordingly, in some examples, after increasing the frequency, clock generator 1 10 may receive another (updated) workload information indicating that the workload of the processor is still above the threshold. Upon receiving such information, clock generator 1 10 may increase the frequency to the next level again.
  • clock generator 1 10 may wait a predefined interval of time (e.g., 10 s, 100 s, 1 ms, etc.) before determining again whether the frequency needs to be increased again.
  • the predefined interval of time may be configurable, and may be stored, for example, in a register or any other type of volatile or non-volatile memory.
  • clock generator 1 10 may increase the frequency of clock signal 140 to the maximum possible frequency, such as the highest frequency among the plurality of predefined frequencies. This may help address a situation in which the workload of a processor increased rapidly and is close to reaching the processor's capacity or has already reached it, in which case increasing the frequency gradually, one level at a time (as discussed above), may not resolve the situation as quickly as maximizing the frequency may.
  • clock generator 1 10 may also determine that the frequency of clock signal 140 may be decreased, and decrease the frequency based on the determination. For example, clock generator 1 10 may determine that the frequency may be decreased after a predefined period of time (e.g., 1 second) during which no processor 120 had a workload exceeding a predefined threshold (e.g., a non-critical workload threshold) associated therewith. Based on that determination, in some examples, clock generator 1 10 may decrease the frequency of clock signal 140 by one level, e.g., to the nearest lower frequency among the plurality of predefined frequencies.
  • a predefined period of time e.g. 1 second
  • a predefined threshold e.g., a non-critical workload threshold
  • FIG. 2 illustrates another example of electronic device 100.
  • electronic device 100 also includes a plurality of data ports 150.
  • Each port 150 may be an input and/or output port, a digital port (e.g., an Ethernet port, a USB port, etc.), an analog port, or any other type of port capable of receiving and/or transmitting data.
  • Ports 150 may be connected to inputs or outputs of any processor(s) 120. In the example illustrated in FIG. 2, all ports 150 are connected at least to processor 120-1 .
  • each data port 150 may be associated with a data speed.
  • the data speed associated with the port may correspond to that port's predefined maximum speed (e.g., 1 Gb/s, 10Gb/s, 40Gb/s, 100Gb/s, etc.) at which the port is capable of operating.
  • the data speed associated with port 150 may correspond to a speed that is lower than the ports maximum speed.
  • the data speed of a particular port 150 may correspond to the speed that was established (agreed upon) during a handshake protocol between electronic device 100 and another device connected to the particular port 150.
  • each port 150 may be associated with a state, such as an active state and an inactive state.
  • port 150 is active when it is connected to another device and is inactive when it is not connected to another device.
  • the port may be considered active when it is not in a "sleep" mode (irrespective of whether it is connected to another device), and is considered inactive when it is in a "sleep” mode.
  • EEE Energy-Efficient Ethernet
  • ports 150 may be divided into groups 160, such that each port 150 may be associated with a group of one or more ports 150.
  • groups 160 such the combined maximum speeds of all ports within the group do not exceed a predefined speed threshold.
  • all data ports 150 of electronic device 100 may be associated with one group.
  • clock generator 1 10 may determine a minimum frequency below which the frequency of clock signal 140 may not be decreased. In some examples, the minimum frequency may be determined by clock generator 1 10 based on the data speeds of one or more data ports 150. For example, clock generator 1 10 may determine, for each group 160, a combined data speed of all active (or not inactive) ports 150 within the group at a given time. It is appreciated that the combined data speed for a certain group 160 may change when an active port 150 within that group becomes inactive or when an inactive port 150 within that group becomes active. After determining the combined data speed for each group 160, clock generator 1 10 may determine the maximum combined data speed among all groups 160.
  • Clock generator 1 10 may then translate the maximum combined data speed into the minimum frequency, for example, using one or more predefined (e.g., configurable) look-up tables, and/or using one or more predefined formula. In some examples, higher maximum combined data speeds may be translated into higher minimum frequencies, and vice versa.
  • predefined e.g., configurable
  • clock generator 1 10 may maintain the frequency of clock signal 140 at least at the determined minimum frequency. For example, when clock generator 1 10 determines based on the workload information that the frequency of clock signal 140 may be decreased (as discussed above) to a lower frequency, clock generator 1 10 may compare the lower frequency to the minimum frequency and change the frequency of clock signal 140 to the lower frequency only if the lower frequency is equal or above the minimum frequency.
  • clock generator 1 10 may calculate a new minimum frequency either periodically or whenever any of ports 150 change their status from active to inactive or vice versa. After calculating the new minimum frequency, clock generator may determine whether the current frequency of clock signal 140 is at or above the new minimum frequency, and if it is not, clock generator 1 10 may increase the frequency of clock signal 140 to the new minimum frequency. In some examples, the above-discussed functionality of determining the maximum combined data speed and/or translating it into the minimum frequency may be performed by one or more modules (not shown) other than clock generator 1 10, and the module(s) may provide the resulting minimum frequency to clock generator 1 10 and provide the updated minimum frequency when it changes.
  • processors 120 and clock generator 1 10 may each be implemented as any combination of hardware and programming.
  • the programming may include processor executable instructions stored on a tangible, non-transitory computer readable medium and the hardware may include a processing resource for executing those instructions.
  • the processing resource may include one or multiple processors (e.g., central processing units (CPUs), semiconductor-based microprocessors, graphics processing units (GPUs), field-programmable gate arrays (FPGAs) configured to retrieve and execute instructions, or other electronic circuitry), which may be integrated in a single device or distributed across devices.
  • the computer readable medium can be said to store program instructions that when executed by the processor resource implement the functionality of the respective component.
  • the computer readable medium may be integrated in the same device as the processor resource or it may be separate but accessible to that device and the processor resource.
  • the program instructions can be part of an installation package that when installed can be executed by the processor resource to implement the corresponding component.
  • the computer readable medium may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed.
  • the program instructions may be part of an application or applications already installed, and the computer readable medium may include integrated memory such as a hard drive, solid state drive, or the like.
  • FIG. 3 is a flowchart of an example method 300 for changing a frequency of a clock signal.
  • Method 300 may be described below as being executed or performed by a computing device, for example, electronic device 100. Other suitable systems and/or computing devices may be used as well.
  • Method 300 may be implemented in the form of executable instructions stored on at least one non- transitory machine-readable storage medium of the computing device and executed by at least one processor of the client device.
  • method 300 may be implemented in the form of electronic circuitry (e.g., hardware).
  • one or more or blocks of method 300 may be executed substantially concurrently or in a different order than shown in FIG. 3.
  • method 300 may include more or less blocks than are shown in FIG. 3.
  • one or more of the blocks of method 300 may, at certain times, be ongoing and/or may repeat.
  • method 300 may obtain data via one or more data ports of an electronic device. As discussed above, in some examples the data may include a plurality of network packets. At block 320, the method may process the data by a plurality of processors coupled to and driven by a clock signal. At block 330, the method may process the data by the plurality of processors. At block 340, the method may monitor workloads associated with each of the plurality of processors. At block 350, the method may increase a frequency of the clock signal based on a determination that a workload associated with at least one of the plurality of processors exceeds a predefined workload threshold.
  • the method may also decrease the frequency of the clock signal based on a determination that workloads of all of the plurality of processors did not exceed the predefined workload threshold for a predefined period of time.
  • each data port may be associated with a data speed, and the method may also obtain a minimum frequency associated with a combined data speed of data ports that are active, and maintain the frequency of the clock signal at least at the minimum frequency.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Abstract

Examples disclosed herein relate, in one aspect, to an electronic device. The electronic device may include a plurality of processors and a clock generator. The clock generator may provide a clock signal to the plurality of processors, and obtain workload information indicative of workloads of each of the plurality of processors. Based on the workload information, the clock generator may determine whether to change a frequency of the clock signal, where changing the frequency may include increasing or decreasing the frequency. The clock generator may then change the frequency based on the determination.

Description

FREQUENCY OF A CLOCK SIGNAL
BACKGROUND
[0001 ] An electronic device may include a number of processors processing data simultaneously. The amount of data being processed by each processor may be nonuniform and different processors may experience peak workloads at different times. Accordingly, at a given point in time, some processors may be busy (e.g., working at their capacity) while others may be idle or have small workloads.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The following detailed description references the drawings, wherein:
[0003] FIG. 1 is a block diagram of an example electronic device;
[0004] FIG. 2 is a block diagram of another example electronic device; and
[0005] FIG. 3 is a flowchart of an example method for changing a frequency of a clock signal.
DETAILED DESCRIPTION
[0006] As mentioned above, an electronic device may include a number of processors that may sometimes process data in parallel. The processors may be similar or different in type, function, and processing power. Some processors may be arranged in pipeline configuration where an output of one processor is connected to an input of another processor. Accordingly, in some examples, a workload of one processor may change over time, and at a given point of time workloads of different processors may be different. The speed at which each processor operates and processes data may be determined, at least in part, by a frequency of a clock signal driving the processor. A higher clock frequency may increase a processor's performance and computational capacity, allowing the processor to process more data per unit of time, and to avoid loss of data and other undesirable effects during peak workloads. However, a higher clock frequency may also cause higher power consumption and heat generation by the processor.
[0007] Examples disclosed herein describe, among other things, an electronic device. The electronic device may include, among other things, a plurality of processors and a clock generator. The clock generator may provide a clock signal to the plurality of processors, and obtain workload information indicative of workloads of each of the plurality of processors. Based on the workload information, the clock generator may determine whether to change a frequency of the clock signal, where changing the frequency may include increasing or decreasing the frequency. The clock generator may then change the frequency based on the determination.
[0008] FIG. 1 is a block diagram of an example electronic device 100. Electronic device 100 may include any type of electronic devices or combinations thereof. For example, electronic device 100 may be a network device (e.g., a network switch, a network router, etc.) to receive and/or send network packets from and/or to one or more networks. Other examples of electronic device 100 include a server, a desktop computer, a notebook computer, a tablet computer, a mobile phone, a smartphone, a gaming device, a printing device, and so forth.
[0009] In some examples, electronic device 100 may include a plurality of (e.g., two or more) processors 120. In the example illustrated in FIG. 1 , electronic device 100 includes N processors 120, referred to as processors 120-1 - 120-N. Each processor 120 may include one or multiple processors, such as central processing units (CPUs), semiconductor-based microprocessors, hardware state machines, graphics processing units (GPUs), field-programmable gate arrays (FPGAs), or other electronic circuitry, which may be integrated in a single device or distributed across devices. In some examples, each processor 120 may also be implemented as a combination of hardware and programming, as will be further discussed below. Any two processors 120 may be similar or different in terms of their type, function, processing power, and other characteristics. For example, one processor 120 may be dedicated to communicating with and receiving data (e.g., network packets) from other electronic devices; another processor 120 may be dedicated to processing (e.g., checking for errors, updating the data and/or its header information, etc.) the received data; another processor 120 may be dedicated to obtaining the processed data and to communicating with and sending the processed data to other electronic devices; and so forth. In some examples, one or more processors 120 may be dedicated to implementing routing protocols, scanning data for viruses, performing Quality of Service (QoS), performing Access Control Lists (ACLs) lookups, and the like.
[0010] Accordingly, any processor 120 may be coupled to one or more other processors 120, and may transfer information to and/or from one or more other processors 120. In some examples, one or more processors 120 may be able to receive input data from one or more other electronic devices through one or more input ports of electronic device 100, and/or to send output data to one or more other electronic devices through one or more output ports of electronic device 100. As mentioned above, in some examples, some or all processors 120 may be working and processing data simultaneously.
[001 1 ] In some examples, electronic device 100 may include a clock generator 1 10. Clock generator 1 10 may include any type of circuitry capable of generating one or more clock signals, where each clock signal may be characterized by a particular frequency. In some examples, clock generator 1 10 may include or be coupled to one or more phase-locked loop (PLL) modules. In some examples, clock generator 1 10 may also be implemented as a combination of hardware and programming, as will be further discussed below.
[0012] In some examples, clock generator 1 10 may generate and provide a clock signal 140 to a plurality of processors 120, where the plurality may include two or more, or all of processors 120 within electronic device 100. Specifically, in some examples, a clock output of clock generator 1 10 may be electronically coupled (e.g., via a wire) to clock inputs of a plurality of processors 120. In other examples, clock generator 1 10 may generate and provide different clock signals to different groups of processors 120.
[0013] Clock signal 140 may have a certain frequency that, in some examples, may be changed by clock generator 1 10. For example, clock generator 1 10 may increase or decrease the frequency of clock signal 140, as will be discussed below. In some examples, clock generator 1 10 may set or change the frequency of clock signal 140 to any frequency from a plurality of (e.g., two or more) predefined frequencies. The plurality of predefined frequencies may be stored, for example, in one or more volatile and/or non-volatile memories. For example, the predefined frequencies may be stored in a plurality of registers accessible by clock generator 140. In some examples, the plurality of predefined frequencies may be modified, for example, by one or more processors 120. In some examples, the plurality of predefined frequencies may include a maximum frequency (e.g., 2GHz) and frequencies corresponding to the maximum frequency being divided by whole numbers (dividers). To illustrate, the plurality of predefined frequencies may include the following frequencies: 2GHz, 1 GHz, 666.66MHz, 500MHz, 400MHz, 333.33MHz, 285.71 MHz, 250Mhz, 222.22MHz, 200MHz, etc.
[0014] In some examples, at any given point in time, each processor 120 may have a particular workload. A processor's workload may represent, for example, what amount or percentage of the processor's resources (e.g., memory, processing power, etc.) is being utilized at a given point in time. The workload may also represent, for example, the amount of data that is ready to be processed by the processor, e.g., the amount of unprocessed data being stored in the processor's input queue (e.g., a first-in-first-out (FIFO) buffer) or the input queue's level of fullness. The workload may also represent, for example, the amount of data stored in the processor's output queue (e.g., a FIFO buffer) or the output queue's level of fullness. The workload may be measured, for example, in a number of bytes, data packets, average size of a data packet, a ratio of used memory to total memory, a ratio of non-idle processing cycles to a total number of processing cycles, or using any other suitable measure.
[0015] In some examples, each processor 120 may be associated with a predefined workload threshold. The workload threshold may be expressed in absolute values or as a percentage of the maximum workload (e.g., of total capacity) of the respective processor 120. The workload threshold may represent, for example, a level of workload (e.g., 90% of the total capacity) that is so close to the maximum capacity of the processor, that the processor is likely to soon reach the maximum capacity, which may cause various undesirable effects, such as data being delayed, corrupted, or lost. In some examples, different processors 120 may be associated with different workload thresholds. In other examples, all processors 120 may be associated with the same workload threshold. The workload threshold associated with each processor 120 may be hard-wired in circuitry or stored in a volatile and/or non-volatile memory, in which case the threshold may be configurable and modifiable.
[0016] In some examples, each processor 120 may be associated with a plurality of (e.g., two or more) predefined workload thresholds. For example, each processor 120 may be associated with a "non-critical" workload threshold (e.g., 80% of the maximum capacity) and a "critical" workload threshold (e.g., 95% of the maximum capacity). In these examples, too, each processor 120 may be associated with the same plurality of thresholds or with a different plurality of thresholds, and the thresholds may be hard-wired or stored in a memory.
[0017] In some examples, clock generator 1 10 may obtain workload information associated with each processor 120. The workload information may include, for example, the current (real-time) workload of each processor 120; the maximum capacity of each processor 120; the ratio of the workload to the maximum capacity, the availability of each processor 120 (e.g., reversely related to its workload); the workload threshold(s) associated with each processor 120; whether or not the some processors' workloads have reached or exceeded any of their thresholds; or any combination of these and other parameters related to and describing workloads of processors 120.
[0018] In some examples, clock generator 1 10 may obtain some or all of the workload information directly from processors 120. For example, clock generator 1 10 may be electronically coupled via a workload signal 130 (e.g., 130-1 , 130-2, ... 130-N) to each processor 120 (e.g., 120-1 , 120-2, ... 120-N, respectively). Each workload signal may include, for example, one or more wires carrying digital or analog signals. Using the workload signal, each processor 120 may send some or all of the workload information to clock generator 1 10. For example, the workload signal may indicate (e.g., using one wire) whether or not the workload of the respective processor 120 has reached or exceeded a particular (e.g., "critical" or "non-critical") predefined threshold. Alternatively or in addition, the workload signal may represent the ratio of the processor's workload to the processor's maximum capacity. Alternatively or in addition, the workload signal may indicate whether or not a clock frequency provided to the respective processor 120 needs to be increased (e.g., increased to the next frequency from the plurality of predefined frequencies). Alternatively or in addition, the workload signal may indicate whether or not a clock frequency provided to the respective processor 120 needs to be maximized (e.g., increased to the highest frequency from the plurality of predefined frequencies). Alternatively or in addition, the workload signal may indicate whether or not a clock frequency provided to the respective processor 120 may be decreased (e.g., decreased to one frequency below the present frequency in the plurality of frequencies).
[0019] In some examples, some or all of the workload information may be sent from processors 120 to clock generator 1 10 via other modules (not shown in FIG. 1 for brevity). In some examples, some or all of the workload information may be stored and periodically updated in a volatile and/or non-volatile memory (e.g., by processors 120 or other modules monitoring workloads of processors 120), and clock generator 1 10 may read the workload information from the memory. [0020] Based on the workload information, clock generator 1 10 may, in some examples, determine whether to change (e.g., increase or decrease) the frequency of clock signal 140, and then to change it in accordance with the determination. In some examples, clock generator 1 10 may increase the frequency when the workload information indicates that at least one processor 120 has a workload that equals or exceeds a predefined workload threshold associated with that processor. As discussed above, workload information of each processor 120 may explicitly indicate (e.g., via a dedicated signal or bit) that the threshold is reached or exceeded and/or that the clock frequency needs to be increased. Alternatively or in addition, the workload information may indicate the amount of workload, the workload threshold, the maximum capacity, and include other information based on which clock generator 1 10 may determine that the workload threshold was reached or exceeded.
[0021 ] In some examples, when clock generator 1 10 determines that a "non- critical" workload threshold of at least one processor 120 was reached or exceeded (but the "critical" workload was not), clock generator 1 10 may increase the frequency of clock signal 140 to the next frequency from the set of predefined frequencies. Increasing the frequency may help reduce the workload of all processors 120, including the processor whose workload reached the threshold. Sometimes, however, increasing the frequency may not reduce the workload of that processor to a level below the workload threshold, or may not reduce it sufficiently fast. Accordingly, in some examples, after increasing the frequency, clock generator 1 10 may receive another (updated) workload information indicating that the workload of the processor is still above the threshold. Upon receiving such information, clock generator 1 10 may increase the frequency to the next level again. It is therefore appreciated that the mechanism described above may be repeated until no processors 120 have workloads above their respective thresholds or until the frequency reaches its maximum possible value. Because the reduction in workload may not be instantaneous, in some examples, clock generator 1 10 may wait a predefined interval of time (e.g., 10 s, 100 s, 1 ms, etc.) before determining again whether the frequency needs to be increased again. The predefined interval of time may be configurable, and may be stored, for example, in a register or any other type of volatile or non-volatile memory.
[0022] Alternatively or in addition, in some examples, when clock generator 1 10 determines that a "critical" workload threshold of at least one processor 120 was reached or exceeded, clock generator 1 10 may increase the frequency of clock signal 140 to the maximum possible frequency, such as the highest frequency among the plurality of predefined frequencies. This may help address a situation in which the workload of a processor increased rapidly and is close to reaching the processor's capacity or has already reached it, in which case increasing the frequency gradually, one level at a time (as discussed above), may not resolve the situation as quickly as maximizing the frequency may.
[0023] In some examples, clock generator 1 10 may also determine that the frequency of clock signal 140 may be decreased, and decrease the frequency based on the determination. For example, clock generator 1 10 may determine that the frequency may be decreased after a predefined period of time (e.g., 1 second) during which no processor 120 had a workload exceeding a predefined threshold (e.g., a non-critical workload threshold) associated therewith. Based on that determination, in some examples, clock generator 1 10 may decrease the frequency of clock signal 140 by one level, e.g., to the nearest lower frequency among the plurality of predefined frequencies.
[0024] FIG. 2 illustrates another example of electronic device 100. In the example illustrated in FIG. 2, electronic device 100 also includes a plurality of data ports 150. Each port 150 may be an input and/or output port, a digital port (e.g., an Ethernet port, a USB port, etc.), an analog port, or any other type of port capable of receiving and/or transmitting data. Ports 150 may be connected to inputs or outputs of any processor(s) 120. In the example illustrated in FIG. 2, all ports 150 are connected at least to processor 120-1 . [0025] In some examples, each data port 150 may be associated with a data speed. The data speed associated with the port may correspond to that port's predefined maximum speed (e.g., 1 Gb/s, 10Gb/s, 40Gb/s, 100Gb/s, etc.) at which the port is capable of operating. In some examples, the data speed associated with port 150 may correspond to a speed that is lower than the ports maximum speed. For example, the data speed of a particular port 150 may correspond to the speed that was established (agreed upon) during a handshake protocol between electronic device 100 and another device connected to the particular port 150.
[0026] In some examples, each port 150 may be associated with a state, such as an active state and an inactive state. In some examples, port 150 is active when it is connected to another device and is inactive when it is not connected to another device. In other examples, e.g., if port 150 is an Energy-Efficient Ethernet (EEE) port, the port may be considered active when it is not in a "sleep" mode (irrespective of whether it is connected to another device), and is considered inactive when it is in a "sleep" mode.
[0027] In some examples, ports 150 may be divided into groups 160, such that each port 150 may be associated with a group of one or more ports 150. In FIG. 2, for example, two ports 150 are in group 160A and three other ports 150 are in group 160B. In some examples, ports 150 are associated with groups 160 such the combined maximum speeds of all ports within the group do not exceed a predefined speed threshold. In some examples, all data ports 150 of electronic device 100 may be associated with one group.
[0028] In some examples, clock generator 1 10 may determine a minimum frequency below which the frequency of clock signal 140 may not be decreased. In some examples, the minimum frequency may be determined by clock generator 1 10 based on the data speeds of one or more data ports 150. For example, clock generator 1 10 may determine, for each group 160, a combined data speed of all active (or not inactive) ports 150 within the group at a given time. It is appreciated that the combined data speed for a certain group 160 may change when an active port 150 within that group becomes inactive or when an inactive port 150 within that group becomes active. After determining the combined data speed for each group 160, clock generator 1 10 may determine the maximum combined data speed among all groups 160. Clock generator 1 10 may then translate the maximum combined data speed into the minimum frequency, for example, using one or more predefined (e.g., configurable) look-up tables, and/or using one or more predefined formula. In some examples, higher maximum combined data speeds may be translated into higher minimum frequencies, and vice versa.
[0029] As discussed above, in some examples, clock generator 1 10 may maintain the frequency of clock signal 140 at least at the determined minimum frequency. For example, when clock generator 1 10 determines based on the workload information that the frequency of clock signal 140 may be decreased (as discussed above) to a lower frequency, clock generator 1 10 may compare the lower frequency to the minimum frequency and change the frequency of clock signal 140 to the lower frequency only if the lower frequency is equal or above the minimum frequency.
[0030] In some examples, clock generator 1 10 may calculate a new minimum frequency either periodically or whenever any of ports 150 change their status from active to inactive or vice versa. After calculating the new minimum frequency, clock generator may determine whether the current frequency of clock signal 140 is at or above the new minimum frequency, and if it is not, clock generator 1 10 may increase the frequency of clock signal 140 to the new minimum frequency. In some examples, the above-discussed functionality of determining the maximum combined data speed and/or translating it into the minimum frequency may be performed by one or more modules (not shown) other than clock generator 1 10, and the module(s) may provide the resulting minimum frequency to clock generator 1 10 and provide the updated minimum frequency when it changes.
[0031 ] As mentioned above, in some examples, processors 120 and clock generator 1 10 may each be implemented as any combination of hardware and programming. The programming may include processor executable instructions stored on a tangible, non-transitory computer readable medium and the hardware may include a processing resource for executing those instructions. The processing resource, for example, may include one or multiple processors (e.g., central processing units (CPUs), semiconductor-based microprocessors, graphics processing units (GPUs), field-programmable gate arrays (FPGAs) configured to retrieve and execute instructions, or other electronic circuitry), which may be integrated in a single device or distributed across devices. The computer readable medium can be said to store program instructions that when executed by the processor resource implement the functionality of the respective component. The computer readable medium may be integrated in the same device as the processor resource or it may be separate but accessible to that device and the processor resource. In one example, the program instructions can be part of an installation package that when installed can be executed by the processor resource to implement the corresponding component. In this case, the computer readable medium may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed. In another example, the program instructions may be part of an application or applications already installed, and the computer readable medium may include integrated memory such as a hard drive, solid state drive, or the like.
[0032] FIG. 3 is a flowchart of an example method 300 for changing a frequency of a clock signal. Method 300 may be described below as being executed or performed by a computing device, for example, electronic device 100. Other suitable systems and/or computing devices may be used as well. Method 300 may be implemented in the form of executable instructions stored on at least one non- transitory machine-readable storage medium of the computing device and executed by at least one processor of the client device. Alternatively or in addition, method 300 may be implemented in the form of electronic circuitry (e.g., hardware). In alternate examples of the present disclosure, one or more or blocks of method 300 may be executed substantially concurrently or in a different order than shown in FIG. 3. In alternate examples of the present disclosure, method 300 may include more or less blocks than are shown in FIG. 3. In some examples, one or more of the blocks of method 300 may, at certain times, be ongoing and/or may repeat.
[0033] At block 310, method 300 may obtain data via one or more data ports of an electronic device. As discussed above, in some examples the data may include a plurality of network packets. At block 320, the method may process the data by a plurality of processors coupled to and driven by a clock signal. At block 330, the method may process the data by the plurality of processors. At block 340, the method may monitor workloads associated with each of the plurality of processors. At block 350, the method may increase a frequency of the clock signal based on a determination that a workload associated with at least one of the plurality of processors exceeds a predefined workload threshold.
In some examples, as discussed above, the method may also decrease the frequency of the clock signal based on a determination that workloads of all of the plurality of processors did not exceed the predefined workload threshold for a predefined period of time. In some examples, as discussed above, each data port may be associated with a data speed, and the method may also obtain a minimum frequency associated with a combined data speed of data ports that are active, and maintain the frequency of the clock signal at least at the minimum frequency.

Claims

1 . An electronic device comprising:
a plurality of processors; and
a clock generator to:
provide a clock signal to the plurality of processors,
obtain workload information indicative of workloads of each of the plurality of processors,
based on the workload information, determine whether to change a frequency of the clock signal, wherein changing the frequency comprises one of increasing the frequency and decreasing the frequency, and
change the frequency based on the determination.
2. The electronic device of claim 1 , wherein the clock generator is to increase the frequency based on a determination that the workload of at least one processor from the plurality of processors exceeds a predefined workload threshold associated with the processor.
3. The electronic device of claim 2, wherein the clock generator is to decrease the frequency based on a determination that workloads of all of the plurality of processors have not exceeded their respective predefined workload thresholds for a predefined period of time.
4. The electronic device of claim 2, wherein the processor comprises a memory buffer, and wherein the workload represents at least a fullness level of the buffer.
5. The electronic device of claim 1 , the clock generator is to: increase the frequency to a first frequency value based on a deternnination that the workload of at least one processor from the plurality of processors exceeds a first predefined workload threshold associated with the processor, and
increase the frequency to a predefined maximum frequency value based on a determination that the workload of at least one processor from the plurality of processors exceeds a second predefined workload threshold associated with the processor, wherein the first frequency value is lower than the second frequency value, and the first predefined workload threshold is lower than the second predefined workload threshold.
6. The electronic device of claim 1 , further comprising a plurality of data ports, each data port being associated with a data speed, wherein the clock generator is further to:
obtain a minimum frequency associated with a combined data speed of all active data ports within the plurality of data ports; and
maintain the frequency of the clock signal at least at the minimum frequency.
7. The electronic device of claim 1 , wherein at least one of the processors is to process network packets.
8. A method comprising:
obtaining data via one or more data ports of an electronic device comprising a plurality of processors, wherein the plurality of processors are driven to a clock signal;
processing the data by the plurality of processors;
monitoring workloads associated with each of the plurality of processors; and based on a determination that a workload associated with at least one of the plurality of processors exceeds a predefined workload threshold, increasing a frequency of the clock signal.
9. The method of claim 8, further comprising:
based on a determination that workloads of all of the plurality of processors did not exceed the predefined workload threshold for a predefined period of time, decreasing the frequency of the clock signal;
10. The method of claim 8, wherein the data comprises a plurality of network packets.
1 1 . The method of claim 8, wherein each data port is associated with a data speed, the method further comprising:
obtaining a minimum frequency associated with a combined data speed of data ports that are active; and
maintaining the frequency of the clock signal at least at the minimum frequency.
12. An electronic device comprising:
a plurality of processors, each processor comprising a clock input; and a clock generator comprising a clock output coupled to the clock inputs of the plurality of processors, and a plurality of workload inputs, each workload input being coupled to one of the plurality of processors, wherein the clock generator is to:
provide a clock signal to the clock output,
obtain, at each workload input, a workload signal associated with a workload of the processor coupled to the workload input,
based at least on the workload signals, determine whether a frequency of the clock signal is to be increased, and increase the frequency of the clock signal based on the determination.
13. The electronic device of claim 12, wherein the clock generator is further to:
based at least on the workload signals, determine whether the frequency of the clock signal is to be decreased; and
decrease the frequency of the clock signal based on the determination.
14. The electronic device of claim 12, wherein each workload signal indicates whether a workload of the processor coupled to the workload input through which the workload signal was received exceeds a predefined workload threshold associated with the processor.
15. The electronic device of claim 12, wherein the clock generator is to:
increase the frequency to a first frequency based on a determination that a workload of at least one processor from the plurality of processors exceeds a first predefined threshold; and
increase the frequency to a second frequency based on a determination that a workload of at least one processor from the plurality of processors exceeds a second predefined threshold, wherein the first frequency is lower than the second frequency and the first predefined threshold is lower than the second predefined threshold.
PCT/US2015/020280 2015-03-12 2015-03-12 Frequency of a clock signal WO2016144368A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2015/020280 WO2016144368A1 (en) 2015-03-12 2015-03-12 Frequency of a clock signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/020280 WO2016144368A1 (en) 2015-03-12 2015-03-12 Frequency of a clock signal

Publications (1)

Publication Number Publication Date
WO2016144368A1 true WO2016144368A1 (en) 2016-09-15

Family

ID=56878648

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/020280 WO2016144368A1 (en) 2015-03-12 2015-03-12 Frequency of a clock signal

Country Status (1)

Country Link
WO (1) WO2016144368A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721129B2 (en) * 2002-09-30 2010-05-18 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
US7921313B2 (en) * 2005-05-03 2011-04-05 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints
US20110154321A1 (en) * 2009-12-22 2011-06-23 Kun Tian Virtual-cpu based frequency and voltage scaling
US20120005513A1 (en) * 2010-06-30 2012-01-05 International Business Machines Corporation Performance control of frequency-adapting processors by voltage domain adjustment
US20120297232A1 (en) * 2011-05-16 2012-11-22 Bircher William L Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721129B2 (en) * 2002-09-30 2010-05-18 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
US7921313B2 (en) * 2005-05-03 2011-04-05 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints
US20110154321A1 (en) * 2009-12-22 2011-06-23 Kun Tian Virtual-cpu based frequency and voltage scaling
US20120005513A1 (en) * 2010-06-30 2012-01-05 International Business Machines Corporation Performance control of frequency-adapting processors by voltage domain adjustment
US20120297232A1 (en) * 2011-05-16 2012-11-22 Bircher William L Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value

Similar Documents

Publication Publication Date Title
CN107003905B (en) Techniques to dynamically allocate resources for local service chains of configurable computing resources
US10303618B2 (en) Power savings via dynamic page type selection
JP6224244B2 (en) Power balancing to increase working density and improve energy efficiency
US8924753B2 (en) Apparatus and method for adaptive frequency scaling in digital system
US10346326B2 (en) Adaptive interrupt moderation
US9292465B2 (en) Dynamic link width adjustment
TWI526843B (en) Adaptive interrupt coalescing for energy efficient mobile platforms
US20150098469A1 (en) Tcp segmentation offload in a server on a chip
US9569383B2 (en) Method of handling network traffic through optimization of receive side scaling
CN116018790A (en) Receiver-based precise congestion control
CN113411262B (en) Method and device for setting large-scale receiving and unloading functions
US11757802B2 (en) Technologies for dynamic batch size management
US20220311711A1 (en) Congestion control based on network telemetry
CN114124426A (en) Protection against network-initiated attacks
US8635486B2 (en) Apparatus and method of controlling a processor clock frequency
CN117581518A (en) Congestion control
CN115729864A (en) Storage device, electronic device, and method for operating electronic device
US10003542B2 (en) Data streaming scheduler for dual chipset architectures that includes a high performance chipset and a low performance chipset
KR20180075760A (en) System on chip using dynamic voltage frequency scaling and operating method thereof
US8279790B2 (en) Packet buffering based at least in part upon packet receipt time interval weighted moving average
US11243603B2 (en) Power management of an event-based processing system
JP2007074607A (en) Data processing circuit for reducing power consumption by using clock control
WO2016144368A1 (en) Frequency of a clock signal
US20140301199A1 (en) Methods, systems, and computer program products for processing a packet
Abujoda et al. Profiling packet processing workloads on commodity servers

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15884887

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15884887

Country of ref document: EP

Kind code of ref document: A1