US20160344820A1 - Method and apparatus for controlling wake events in a data processing system - Google Patents
Method and apparatus for controlling wake events in a data processing system Download PDFInfo
- Publication number
- US20160344820A1 US20160344820A1 US14/718,826 US201514718826A US2016344820A1 US 20160344820 A1 US20160344820 A1 US 20160344820A1 US 201514718826 A US201514718826 A US 201514718826A US 2016344820 A1 US2016344820 A1 US 2016344820A1
- Authority
- US
- United States
- Prior art keywords
- wake
- signal
- staggered
- event
- distributing
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 134
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000004044 response Effects 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims description 5
- 241001522296 Erithacus rubecula Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002618 waking effect Effects 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3209—Monitoring remote activity, e.g. over telephone lines or network connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/40—Constructional details, e.g. power supply, mechanical construction or backplane
- H04L49/405—Physical details, e.g. power supply, mechanical construction or backplane of ATM switches
-
- H04L65/4076—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Definitions
- This disclosure relates generally to data processing, and more specifically, to a method and apparatus for controlling wake events in a data processing system.
- portions of the system may be put in a quiescent, or sleep, state when appropriate to save power.
- a mechanism must be put in place to wake up the sleeping portions.
- waking significantly sized components of the system simultaneously will create a large and detrimental power surge.
- the power surge (large in-rush current) will create significant voltage droop, potential data corruption, decreased maximum operating frequency, and increased cost in board design and/or expensive power supplies.
- the waking process does not wake the entire system at the same time, but in a staggered manner to reduce the power surge. However, during a staggered wake-up in response to a first wake-up request, a subsequent second wake-up request may not be detected by some of the elements in the system.
- FIG. 1 illustrates, in block diagram form, a data processing system in accordance with an embodiment.
- FIG. 2 illustrates a flow chart of a method for controlling wake events in a data processing system.
- the data processing system includes multiple processing elements and wake-up staggering logic.
- the wake-up staggering logic receives a first broadcast wake event and determines a staggering order for distributing a first event signal to the processing elements in response to the first broadcast wake event. If a second broadcast wake event is received before the first event signal is distributed, the wake-up staggering logic determines if a predetermined staggering policy requires the delivery of the first event signal to be restarted or continued. After the first event signal is restarted or continued, then a staggering order for the second broadcast wake event is determined and a set of staggered events is provided to the processing elements. Also, each time a wake event signal is broadcast, an order for distributing the broadcast wake event signal is changed. Any technique may be used to change the order, such as for example, a rotating order such as round robin, or randomly.
- Restarting the staggered distribution of the event signals insures that all of the processing elements receives the wake up event. Also, by changing the order of the staggered wake events, each processing element is insured of having an opportunity to acquire, for example, a semaphore necessary for the processing element to continue processing.
- a method for controlling wake events in a data processing system comprising: determining a broadcast wake-up signal staggering order in response to a first wake event; distributing a first staggered broadcast wake-up signal to a plurality of processing elements based on the broadcast wake-up signal staggering order; changing the broadcast wake-up signal staggering order in response to a second wake event; and distributing a second staggered broadcast wake-up signal to a plurality of processing elements based on the changed broadcast wake-up signal staggering order.
- the method may further comprise determining which processing elements in the plurality receive the first staggered broadcast wake-up signal
- the second wake event may occur during distributing the first staggered broadcast wake-up signal
- distributing the second broadcast wake-up signal may further comprise distributing the second staggered broadcast wake-up signal to the plurality of processing elements after stopping the distributing of the first staggered broadcast wake-up signal to the plurality of processing elements during the process of distributing the first staggered broadcast wake-up signal.
- Distributing the first staggered broadcast wake-up signal may include distributing a set of staggered broadcast wake-up signals, each signal in the set staggered according to a programmable delay.
- the broadcast wake-up signal staggering order may be based on a rotating policy.
- Distributing a second staggered broadcast wake-up signal may include distributing the second staggered broadcast wake-up signal to the processing elements in the plurality which received the first staggered broadcast wake-up signal before the second wake event.
- the first wake event or the second wake event may be provided by one of the processing elements in the plurality.
- the first wake event or the second wake event may be an indication of a semaphore availability.
- the first staggered broadcast wake-up signal and the second staggered broadcast wake-up signal may be a pulsed signal provided to at least one of the processing elements in the plurality. At least one of the processing elements may be in a low power state when receiving the first staggered broadcast wake-up signal or the second staggered broadcast wake-up signal.
- a method for controlling wake events in a data processing system comprising: receiving a first wake event; distributing a first staggered broadcast wake-up signal to a plurality of processing elements in response to the first wake event; receiving a second wake event during the distributing of the first staggered broadcast wake-up signal; and distributing a second staggered broadcast wake-up signal to the plurality of processing elements in response to the second wake event.
- Distributing a second staggered broadcast wake-up signal to the plurality of processing elements in response to the second wake event may comprise distributing the second staggered broadcast wake-up signal to the processing elements of the plurality which are awakened by receiving the first staggered broadcast wake-up signal.
- Distributing a second staggered broadcast wake-up signal to the plurality of processing elements in response to the second wake event may comprise distributing the second staggered broadcast wake-up signal to the plurality of processing elements after all of the processing elements in the plurality received the first staggered broadcast wake-up signal.
- the first wake event or the second wake event may be provided by one of the processing elements in the plurality.
- Distributing a first staggered broadcast wake-up signal includes distributing a set of staggered broadcast wake-up signals, each signal in the set being staggered according to a programmable delay.
- the first wake event or the second wake event may be an indication of a semaphore availability.
- Distributing a second broadcast wake-up signal may further comprise distributing the second staggered broadcast wake-up signal to the plurality of processing elements after stopping the distributing of the first staggered broadcast wake-up signal to the plurality of processing elements during the process of distributing the first staggered broadcast wake-up signal.
- a data processing system comprising: a plurality of processing elements, each processing element of the plurality having an input to receive a wake-up signal; a staggering unit having an input for receiving a wake event signal and a set of outputs, each output of the set coupled to a corresponding processing element input, the staggering unit for distributing a first staggered broadcast wake-up signal via the set of outputs to the plurality of processing elements based on a first broadcast wake-up signal staggering order determined in response to a first wake event received at the input of the staggering unit; and wherein the staggering unit distributes a second staggered broadcast wake-up signal to the plurality of processing elements based on a second broadcast wake-up signal staggering order determined in response to a second wake event received at the input of the staggering unit, the second wake event occurring during the distributing of the first staggered broadcast wake-up signal.
- the staggering unit may include a delay unit coupled to a counter unit for staggering each staggered signal according to a predetermined delay.
- the second staggered broadcast wake-up signal to the plurality of processing elements may be based on a second broadcast wake-up signal staggering order determined in response to the second wake event.
- FIG. 1 illustrates, in block diagram form, a data processing system 10 in accordance with an embodiment.
- data processing system 10 is a system-on-a-chip (SoC) implemented on a single integrated circuit.
- SoC system-on-a-chip
- Data processing system 10 may be implemented differently.
- Data processing system 10 includes communication bus 12 , processing elements 14 , 16 , 18 , and 20 , memory 22 , and wake-up staggering unit 24 .
- Wake-up staggering unit 24 includes staggering logic 25 , staggering policy 26 , programmable delay 27 , and counter 28 .
- Processing elements 14 , 16 , 18 , and 20 are circuit portions that receive events such as interrupts, wake events, debug events, or reset. There can be any number of processing elements.
- processing elements 14 , 16 , 18 , and 20 are each central processing units. In another embodiment, processing elements 14 , 16 , 18 , and 20 are modules in a central processing unit. Also, a processing element may include multiple modules or multiple central processing units or a combination of modules and central processing units. In addition, processing elements 14 , 16 , 18 , and 20 may be control circuitry or other circuitry other than central processing units that have a low power state.
- bus 12 is a conventional bus having a plurality of conductors for communicating address, data, and control information.
- bus 12 may be an interconnect structure such as for example, a cross-bar switch or other form of SoC interconnect system. Examples of SoC interconnect systems include ARM's CCN-504 interconnect or ARM's CCI-400 interconnect.
- Memory 22 is bi-directionally coupled to bus 12 for providing and receiving data from the processing elements 14 , 16 , 18 , and 20 .
- Memory 22 may be main memory or a hierarchal cache structure for use by the various blocks of data processing system 10 .
- wake events are events that trigger one or more processing elements to transition from a lower power operating state to a higher power operating state. Some events are provided to individual processing elements and some events are broadcast to some or all of the processing elements.
- staggering logic 25 in wake-up staggering unit 24 receives a broadcast wake event input signal WAKE EVENT INPUT and in response, distributes a staggered event signal EVENT to each of processing elements 14 , 16 , 18 , and 20 one at a time over a time period.
- Each of the processing elements receives the same broadcast staggered event signal EVENT.
- the WAKE EVENT INPUT signal may be a pulse received from a source external to data processing system 10 , or from one of the processing elements on data processing system 10 .
- the staggered EVENT signals are based on the WAKE EVENT INPUT signal.
- the EVENT signal is a pulse that is broadcast to each of the processing elements over a dedicated conductor.
- the EVENT signal may be a multi-bit signal transmitted over, for example, a bus or network.
- the distributed EVENT signal will cause a receiving processing element that is in a low power state, such as a sleep state, to exit the low power state.
- the processing element may exit the low power state by resetting its state.
- the amount of time required to distribute the staggered EVENT signals is determined by predetermined delay block 27 and counter 28 by setting the time between each EVENT signal.
- Staggering logic 25 provides a trigger signal labeled “TRIGGER” to start a delay period when the set of staggered event signals is provided. Staggering the distribution of events prevents the large in-rush current present when some or all of the processing elements wake-up simultaneously. However, if a second, or subsequent, WAKE EVENT INPUT signal is received while the first EVENT signal is being distributed, the receipt of the second EVENT signal may cause one or more of the processing elements to not receive the first EVENT signal.
- the problem of processing elements not receiving the first EVENT signal may be caused when subsequent processing elements to receive the staggered EVENT signal are starved of information they require to continue. Therefore, in the illustrated embodiment, if a second staggered EVENT signal is caused to be distributed in response to a broadcast WAKE EVENT INPUT signal before completion of the distribution of a first staggered EVENT signal, then the status of the second event is held, and the distribution of some portion or all of the first staggered EVENT signal sequence is repeated to insure all of the processing elements are notified of the wake event.
- staggered EVENT signals can be delivered when the second EVENT signal occurs during the distribution of the first staggered wake event signal.
- the staggered EVENT signal distribution can be repeated after the distribution of the first staggered EVENT signal is complete.
- Another way is to stop the first staggered event before completion and immediately start the second staggered event.
- Yet another way is to only repeat the delivery of the first EVENT signal to the one or more processing elements that did not receive the second EVENT signal. Repeating delivery of the first staggered event signals insures that all of the processing elements receive the broadcast event signals.
- the last processing elements to receive the broadcast events have a lower probability of having access to shared resources of data processing system 10 , for example, a semaphore.
- a staggering order of the distribution of the wake event signals is changed so that a different processing element is first to in the distribution of the staggered wake event signals.
- the order that processing elements 14 , 16 , 18 , and 20 receives the EVENT signals is determined by staggering policy block 26 .
- the ordering is based on a rotating policy such as “round robin”.
- the ordering may be based on a different policy, such as for example, a random order.
- a broadcast wake event signal is considered to be broadcast to all of processing elements 14 , 16 , 18 , and 20 , however in other embodiments the broadcast wake event signals are considered broadcast if they are distributed to more than one of the processing elements.
- FIG. 2 illustrates a flow chart of a method 30 for controlling wake events in a data processing system.
- Method 30 begins at step 32 .
- wake-up staggering block 24 receives a first broadcast WAKE EVENT INPUT signal.
- the WAKE EVENT INPUT signal is provided to staggering logic 25 .
- the wake event may be, for example, a power management wake-up condition, an interrupt, or a reset operation.
- a staggering order is determined by staggering policy 26 for providing the first set of staggered wake EVENT signals to processing elements 14 , 16 , 18 , and 20 .
- a delay period is chosen for the set of staggered wake EVENTS. The delay period may be user programmable, and determines the length of time required for the staggered wake EVENT signals to the distributed.
- a second broadcast WAKE EVENT INPUT signal received subsequent to the first broadcast WAKE EVENT INPUT signal, is received by wake-up staggering block 24 .
- step 50 it is determined which processing elements need to be scheduled to receive an event signal EVENT. In the illustrated embodiment, all of processing elements 14 , 16 , 18 , and 20 need to be scheduled to receive an event signal EVENT.
- step 52 a staggering order of the processing elements is determined for receipt of the EVENT signal in response to the second WAKE EVENT INPUT signal. Any method for choosing an order may be used, such as for example, a rotating, round robin, or random method.
- step 54 the second set of staggered EVENT signals are provided to processing elements 14 , 16 , 18 , and 20 according the programmable delay of delay 27 .
- step 42 if all of the first set of staggered EVENT signals has not been delivered, then the second WAKE EVENT INPUT signal was received during delivery of the first set of staggered EVENT signals, and the NO path is taken from decision step 42 to decision step 44 .
- decision step 44 it is determined if the staggering policy 26 requires delivery of the first set of staggered EVENTS to be restarted. If the staggering policy does require the delivery to restart, then the YES path is taken to step 36 .
- step 36 a staggering order is determined by staggering policy 26 for restarting delivery of the first set of staggered wake EVENT signals to processing elements 14 , 16 , 18 , and 20 .
- a delay period is chosen for the set of staggered wake EVENTS.
- the delay period determines the length of time required between the staggered wake EVENT signals to be distributed.
- the delay period may be different for the re-delivery.
- another broadcast WAKE EVENT INPUT signal may be received subsequent to the re-delivery of first broadcast WAKE EVENT INPUT signal. Any subsequent broadcast WAKE EVENT INPUT signal is handled as described above for the second broadcast WAKE EVENT INPUT signal when the second WAKE EVENT INPUT is received before delivery of the first staggered set of EVENT signals is complete.
- step 46 it is determined which processing elements need to be scheduled to receive an event.
- step 48 a staggering order for the processing elements is determined. Then steps 38 , 40 , and 42 are repeated as described above.
- the described embodiment insures that all processing elements receive a wake event, and provides a fairness policy for access to shared resources, such as a semaphore, when broadcast wake events are staggered to reduce a power surge.
- Coupled is not intended to be limited to a direct coupling or a mechanical coupling.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
Abstract
Description
- 1. Field
- This disclosure relates generally to data processing, and more specifically, to a method and apparatus for controlling wake events in a data processing system.
- 2. Related Art
- To reduce power consumption in a data processing system, portions of the system may be put in a quiescent, or sleep, state when appropriate to save power. A mechanism must be put in place to wake up the sleeping portions. In a large system, waking significantly sized components of the system simultaneously will create a large and detrimental power surge. The power surge (large in-rush current) will create significant voltage droop, potential data corruption, decreased maximum operating frequency, and increased cost in board design and/or expensive power supplies. To reduce the power surge, the waking process does not wake the entire system at the same time, but in a staggered manner to reduce the power surge. However, during a staggered wake-up in response to a first wake-up request, a subsequent second wake-up request may not be detected by some of the elements in the system.
- Therefore, there exists a need for a method and system that solves the above problems.
- The present invention is illustrated by way of example and is not limited by the accompanying figures, in which like references indicate similar elements. Elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale.
-
FIG. 1 illustrates, in block diagram form, a data processing system in accordance with an embodiment. -
FIG. 2 illustrates a flow chart of a method for controlling wake events in a data processing system. - Generally, there is provided, a method for controlling wake events in a data processing system. The data processing system includes multiple processing elements and wake-up staggering logic. The wake-up staggering logic receives a first broadcast wake event and determines a staggering order for distributing a first event signal to the processing elements in response to the first broadcast wake event. If a second broadcast wake event is received before the first event signal is distributed, the wake-up staggering logic determines if a predetermined staggering policy requires the delivery of the first event signal to be restarted or continued. After the first event signal is restarted or continued, then a staggering order for the second broadcast wake event is determined and a set of staggered events is provided to the processing elements. Also, each time a wake event signal is broadcast, an order for distributing the broadcast wake event signal is changed. Any technique may be used to change the order, such as for example, a rotating order such as round robin, or randomly.
- Restarting the staggered distribution of the event signals insures that all of the processing elements receives the wake up event. Also, by changing the order of the staggered wake events, each processing element is insured of having an opportunity to acquire, for example, a semaphore necessary for the processing element to continue processing.
- In one embodiment, there is provided, a method for controlling wake events in a data processing system, the method comprising: determining a broadcast wake-up signal staggering order in response to a first wake event; distributing a first staggered broadcast wake-up signal to a plurality of processing elements based on the broadcast wake-up signal staggering order; changing the broadcast wake-up signal staggering order in response to a second wake event; and distributing a second staggered broadcast wake-up signal to a plurality of processing elements based on the changed broadcast wake-up signal staggering order. The method may further comprise determining which processing elements in the plurality receive the first staggered broadcast wake-up signal The second wake event may occur during distributing the first staggered broadcast wake-up signal, and wherein distributing the second broadcast wake-up signal may further comprise distributing the second staggered broadcast wake-up signal to the plurality of processing elements after stopping the distributing of the first staggered broadcast wake-up signal to the plurality of processing elements during the process of distributing the first staggered broadcast wake-up signal. Distributing the first staggered broadcast wake-up signal may include distributing a set of staggered broadcast wake-up signals, each signal in the set staggered according to a programmable delay. The broadcast wake-up signal staggering order may be based on a rotating policy. Distributing a second staggered broadcast wake-up signal may include distributing the second staggered broadcast wake-up signal to the processing elements in the plurality which received the first staggered broadcast wake-up signal before the second wake event. The first wake event or the second wake event may be provided by one of the processing elements in the plurality. The first wake event or the second wake event may be an indication of a semaphore availability. The first staggered broadcast wake-up signal and the second staggered broadcast wake-up signal may be a pulsed signal provided to at least one of the processing elements in the plurality. At least one of the processing elements may be in a low power state when receiving the first staggered broadcast wake-up signal or the second staggered broadcast wake-up signal.
- In another embodiment, there is provided, a method for controlling wake events in a data processing system, the method comprising: receiving a first wake event; distributing a first staggered broadcast wake-up signal to a plurality of processing elements in response to the first wake event; receiving a second wake event during the distributing of the first staggered broadcast wake-up signal; and distributing a second staggered broadcast wake-up signal to the plurality of processing elements in response to the second wake event. Distributing a second staggered broadcast wake-up signal to the plurality of processing elements in response to the second wake event may comprise distributing the second staggered broadcast wake-up signal to the processing elements of the plurality which are awakened by receiving the first staggered broadcast wake-up signal. Distributing a second staggered broadcast wake-up signal to the plurality of processing elements in response to the second wake event may comprise distributing the second staggered broadcast wake-up signal to the plurality of processing elements after all of the processing elements in the plurality received the first staggered broadcast wake-up signal. The first wake event or the second wake event may be provided by one of the processing elements in the plurality. Distributing a first staggered broadcast wake-up signal includes distributing a set of staggered broadcast wake-up signals, each signal in the set being staggered according to a programmable delay. The first wake event or the second wake event may be an indication of a semaphore availability. Distributing a second broadcast wake-up signal may further comprise distributing the second staggered broadcast wake-up signal to the plurality of processing elements after stopping the distributing of the first staggered broadcast wake-up signal to the plurality of processing elements during the process of distributing the first staggered broadcast wake-up signal.
- In yet another embodiment, there is provided, a data processing system, comprising: a plurality of processing elements, each processing element of the plurality having an input to receive a wake-up signal; a staggering unit having an input for receiving a wake event signal and a set of outputs, each output of the set coupled to a corresponding processing element input, the staggering unit for distributing a first staggered broadcast wake-up signal via the set of outputs to the plurality of processing elements based on a first broadcast wake-up signal staggering order determined in response to a first wake event received at the input of the staggering unit; and wherein the staggering unit distributes a second staggered broadcast wake-up signal to the plurality of processing elements based on a second broadcast wake-up signal staggering order determined in response to a second wake event received at the input of the staggering unit, the second wake event occurring during the distributing of the first staggered broadcast wake-up signal. The staggering unit may include a delay unit coupled to a counter unit for staggering each staggered signal according to a predetermined delay. The second staggered broadcast wake-up signal to the plurality of processing elements may be based on a second broadcast wake-up signal staggering order determined in response to the second wake event.
-
FIG. 1 illustrates, in block diagram form, adata processing system 10 in accordance with an embodiment. In the illustrated embodiment,data processing system 10 is a system-on-a-chip (SoC) implemented on a single integrated circuit. In another embodiment,data processing system 10 may be implemented differently.Data processing system 10 includescommunication bus 12,processing elements memory 22, and wake-up staggeringunit 24. Wake-up staggeringunit 24 includes staggeringlogic 25, staggeringpolicy 26,programmable delay 27, andcounter 28.Processing elements processing elements processing elements processing elements - Each of
processing elements communication bus 12. In one embodiment,bus 12 is a conventional bus having a plurality of conductors for communicating address, data, and control information. In other embodiments,bus 12 may be an interconnect structure such as for example, a cross-bar switch or other form of SoC interconnect system. Examples of SoC interconnect systems include ARM's CCN-504 interconnect or ARM's CCI-400 interconnect.Memory 22 is bi-directionally coupled tobus 12 for providing and receiving data from theprocessing elements Memory 22 may be main memory or a hierarchal cache structure for use by the various blocks ofdata processing system 10. - In
data processing system 10, wake events are events that trigger one or more processing elements to transition from a lower power operating state to a higher power operating state. Some events are provided to individual processing elements and some events are broadcast to some or all of the processing elements. When events are broadcast to some or all ofprocessing elements logic 25 in wake-upstaggering unit 24 receives a broadcast wake event input signal WAKE EVENT INPUT and in response, distributes a staggered event signal EVENT to each ofprocessing elements data processing system 10, or from one of the processing elements ondata processing system 10. The staggered EVENT signals are based on the WAKE EVENT INPUT signal. In one embodiment, the EVENT signal is a pulse that is broadcast to each of the processing elements over a dedicated conductor. In another embodiment, the EVENT signal may be a multi-bit signal transmitted over, for example, a bus or network. The distributed EVENT signal will cause a receiving processing element that is in a low power state, such as a sleep state, to exit the low power state. The processing element may exit the low power state by resetting its state. - The amount of time required to distribute the staggered EVENT signals is determined by
predetermined delay block 27 and counter 28 by setting the time between each EVENT signal. Staggeringlogic 25 provides a trigger signal labeled “TRIGGER” to start a delay period when the set of staggered event signals is provided. Staggering the distribution of events prevents the large in-rush current present when some or all of the processing elements wake-up simultaneously. However, if a second, or subsequent, WAKE EVENT INPUT signal is received while the first EVENT signal is being distributed, the receipt of the second EVENT signal may cause one or more of the processing elements to not receive the first EVENT signal. The problem of processing elements not receiving the first EVENT signal may be caused when subsequent processing elements to receive the staggered EVENT signal are starved of information they require to continue. Therefore, in the illustrated embodiment, if a second staggered EVENT signal is caused to be distributed in response to a broadcast WAKE EVENT INPUT signal before completion of the distribution of a first staggered EVENT signal, then the status of the second event is held, and the distribution of some portion or all of the first staggered EVENT signal sequence is repeated to insure all of the processing elements are notified of the wake event. - There are several ways staggered EVENT signals can be delivered when the second EVENT signal occurs during the distribution of the first staggered wake event signal. For example, the staggered EVENT signal distribution can be repeated after the distribution of the first staggered EVENT signal is complete. Another way is to stop the first staggered event before completion and immediately start the second staggered event. Yet another way is to only repeat the delivery of the first EVENT signal to the one or more processing elements that did not receive the second EVENT signal. Repeating delivery of the first staggered event signals insures that all of the processing elements receive the broadcast event signals.
- When broadcast events are distributed to processing
elements data processing system 10, for example, a semaphore. To increase the probability that all of the processing elements have an opportunity to access shared resources, a staggering order of the distribution of the wake event signals is changed so that a different processing element is first to in the distribution of the staggered wake event signals. The order that processingelements policy block 26. In one embodiment, the ordering is based on a rotating policy such as “round robin”. In another embodiment, the ordering may be based on a different policy, such as for example, a random order. - For purposes of describing the embodiment, a broadcast wake event signal is considered to be broadcast to all of
processing elements -
FIG. 2 illustrates a flow chart of amethod 30 for controlling wake events in a data processing system.Method 30 begins atstep 32. Atstep 32, wake-upstaggering block 24 receives a first broadcast WAKE EVENT INPUT signal. The WAKE EVENT INPUT signal is provided tostaggering logic 25. Atstep 34, it is determined from the WAKE EVENT INPUT signal that a set of staggered wake EVENT signals is to be broadcast to all ofprocessing elements step 36, a staggering order is determined by staggeringpolicy 26 for providing the first set of staggered wake EVENT signals toprocessing elements step 38, a delay period is chosen for the set of staggered wake EVENTS. The delay period may be user programmable, and determines the length of time required for the staggered wake EVENT signals to the distributed. Atstep 40, a second broadcast WAKE EVENT INPUT signal, received subsequent to the first broadcast WAKE EVENT INPUT signal, is received by wake-upstaggering block 24. Atdecision step 42, it is determined if the entire first set of staggered wake EVENT signals have been delivered. If all of the first set of staggered wake EVENT signals has been delivered, then the second broadcast WAKE EVENT INPUT signal is not being received during delivery of the first set of staggered EVENT signals, and the YES path is taken to step 50. Atstep 50, it is determined which processing elements need to be scheduled to receive an event signal EVENT. In the illustrated embodiment, all ofprocessing elements step 52, a staggering order of the processing elements is determined for receipt of the EVENT signal in response to the second WAKE EVENT INPUT signal. Any method for choosing an order may be used, such as for example, a rotating, round robin, or random method. Atstep 54 the second set of staggered EVENT signals are provided toprocessing elements delay 27. - Returning to
decision step 42, if all of the first set of staggered EVENT signals has not been delivered, then the second WAKE EVENT INPUT signal was received during delivery of the first set of staggered EVENT signals, and the NO path is taken fromdecision step 42 todecision step 44. Atdecision step 44, it is determined if thestaggering policy 26 requires delivery of the first set of staggered EVENTS to be restarted. If the staggering policy does require the delivery to restart, then the YES path is taken to step 36. Atstep 36, a staggering order is determined by staggeringpolicy 26 for restarting delivery of the first set of staggered wake EVENT signals toprocessing elements step 38, a delay period is chosen for the set of staggered wake EVENTS. The delay period determines the length of time required between the staggered wake EVENT signals to be distributed. The delay period may be different for the re-delivery. Atstep 40, another broadcast WAKE EVENT INPUT signal may be received subsequent to the re-delivery of first broadcast WAKE EVENT INPUT signal. Any subsequent broadcast WAKE EVENT INPUT signal is handled as described above for the second broadcast WAKE EVENT INPUT signal when the second WAKE EVENT INPUT is received before delivery of the first staggered set of EVENT signals is complete. - Returning to
decision step 44, if it is determined that the staggering policy does not require delivery of the first set of staggered EVENT signals to be restarted, then the NO path is taken to step 46. Atstep 46, it is determined which processing elements need to be scheduled to receive an event. Atstep 48, a staggering order for the processing elements is determined. Then steps 38, 40, and 42 are repeated as described above. - The described embodiment insures that all processing elements receive a wake event, and provides a fairness policy for access to shared resources, such as a semaphore, when broadcast wake events are staggered to reduce a power surge.
- Because the apparatus implementing the present invention is, for the most part, composed of electronic components and circuits known to those skilled in the art, circuit details will not be explained in any greater extent than that considered necessary as illustrated above, for the understanding and appreciation of the underlying concepts of the present invention and in order not to obfuscate or distract from the teachings of the present invention.
- Although the invention is described herein with reference to specific embodiments, various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present invention. Any benefits, advantages, or solutions to problems that are described herein with regard to specific embodiments are not intended to be construed as a critical, required, or essential feature or element of any or all the claims.
- The term “coupled,” as used herein, is not intended to be limited to a direct coupling or a mechanical coupling.
- Moreover, the terms “front,” “back,” “top,” “bottom,” “over,” “under” and the like in the description and in the claims, if any, are used for descriptive purposes and not necessarily for describing permanent relative positions. It is understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the invention described herein are, for example, capable of operation in other orientations than those illustrated or otherwise described herein.
- Furthermore, the terms “a” or “an,” as used herein, are defined as one or more than one. Also, the use of introductory phrases such as “at least one” and “one or more” in the claims should not be construed to imply that the introduction of another claim element by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an.” The same holds true for the use of definite articles.
- Unless stated otherwise, terms such as “first” and “second” are used to arbitrarily distinguish between the elements such terms describe. Thus, these terms are not necessarily intended to indicate temporal or other prioritization of such elements.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/718,826 US9900390B2 (en) | 2015-05-21 | 2015-05-21 | Method and apparatus for controlling wake events in a data processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/718,826 US9900390B2 (en) | 2015-05-21 | 2015-05-21 | Method and apparatus for controlling wake events in a data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160344820A1 true US20160344820A1 (en) | 2016-11-24 |
US9900390B2 US9900390B2 (en) | 2018-02-20 |
Family
ID=57325793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/718,826 Active 2036-05-17 US9900390B2 (en) | 2015-05-21 | 2015-05-21 | Method and apparatus for controlling wake events in a data processing system |
Country Status (1)
Country | Link |
---|---|
US (1) | US9900390B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681836A (en) * | 2016-12-28 | 2017-05-17 | 华为技术有限公司 | Creating method and device of signal quantity |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583419A (en) * | 1994-06-18 | 1996-12-10 | Smiths Industries Public Limited Company | Power supply systems |
US6449488B1 (en) * | 1999-08-25 | 2002-09-10 | Lucent Technologies Inc. | Quality of service based CDMA broadcast scheduler |
US20030237008A1 (en) * | 2002-06-24 | 2003-12-25 | Compaq Information Technologies Group, L.P. | Multiple server in-rush current reduction |
US6717690B1 (en) * | 1999-11-29 | 2004-04-06 | Xerox Corporation | Method and apparatus for managing job contention for system resources in an electrographic reproduction system where images are multibanded |
US20040103231A1 (en) * | 2002-11-22 | 2004-05-27 | Divio, Inc. | Hierarchical bus arbitration |
US6910212B2 (en) * | 2000-12-04 | 2005-06-21 | International Business Machines Corporation | System and method for improved complex storage locks |
US20070097895A1 (en) * | 2005-10-31 | 2007-05-03 | Robert Bosch Gmbh | Node control in wireless sensor networks |
US20080028238A1 (en) * | 2006-07-30 | 2008-01-31 | Ibm Corporation | Selective power-on of hard disk drives within and across multiple drive enclosures and power supply domains |
US20090204834A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | System and method for using inputs as wake signals |
US20120280788A1 (en) * | 2011-05-05 | 2012-11-08 | Juergen Nowottnick | Communications apparatus and method therefor |
US20140281614A1 (en) * | 2013-03-14 | 2014-09-18 | Rackspace Us, Inc. | System and method of rack management |
US20140351374A1 (en) * | 2013-05-24 | 2014-11-27 | Qualcomm Incorporated | Delayed actions for a decentralized system of learning devices |
US20160080140A1 (en) * | 2013-05-29 | 2016-03-17 | Freescale Semiconductor, Inc. | A network receiver for a network using distributed clock synchronization and a method of adjusting a frequency of an internal clock of the network receiver |
US9313455B1 (en) * | 2014-04-09 | 2016-04-12 | Arkansas State University—Jonesboro | Automated audio/video distribution system |
US20160118988A1 (en) * | 2014-10-28 | 2016-04-28 | Xilinx, Inc. | Circuits for and methods of controlling power within an integrated circuit |
US20160294281A1 (en) * | 2013-12-20 | 2016-10-06 | Intel Corporation | Apparatus for charge recovery during low power mode |
US9671846B1 (en) * | 2015-03-11 | 2017-06-06 | Pure Storage, Inc. | Power sequencing for optimal system load at start up |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547596B2 (en) | 2009-12-24 | 2017-01-17 | Arm Limited | Handling of a wait for event operation within a data processing apparatus |
KR101841930B1 (en) | 2012-01-30 | 2018-03-26 | 삼성전자주식회사 | Method of spreading a plurality of interrupts, interrupt spreader, and system on-chip having the same |
US9112721B2 (en) | 2012-05-28 | 2015-08-18 | Freescale Semiconductor, Inc. | System and methods for enabling a controller area network (CAN) device to operate in different power modes based upon the payload of a wake-up message |
-
2015
- 2015-05-21 US US14/718,826 patent/US9900390B2/en active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583419A (en) * | 1994-06-18 | 1996-12-10 | Smiths Industries Public Limited Company | Power supply systems |
US6449488B1 (en) * | 1999-08-25 | 2002-09-10 | Lucent Technologies Inc. | Quality of service based CDMA broadcast scheduler |
US6717690B1 (en) * | 1999-11-29 | 2004-04-06 | Xerox Corporation | Method and apparatus for managing job contention for system resources in an electrographic reproduction system where images are multibanded |
US6910212B2 (en) * | 2000-12-04 | 2005-06-21 | International Business Machines Corporation | System and method for improved complex storage locks |
US20030237008A1 (en) * | 2002-06-24 | 2003-12-25 | Compaq Information Technologies Group, L.P. | Multiple server in-rush current reduction |
US20040103231A1 (en) * | 2002-11-22 | 2004-05-27 | Divio, Inc. | Hierarchical bus arbitration |
US20070097895A1 (en) * | 2005-10-31 | 2007-05-03 | Robert Bosch Gmbh | Node control in wireless sensor networks |
US20080028238A1 (en) * | 2006-07-30 | 2008-01-31 | Ibm Corporation | Selective power-on of hard disk drives within and across multiple drive enclosures and power supply domains |
US20090204834A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | System and method for using inputs as wake signals |
US20120280788A1 (en) * | 2011-05-05 | 2012-11-08 | Juergen Nowottnick | Communications apparatus and method therefor |
US20140281614A1 (en) * | 2013-03-14 | 2014-09-18 | Rackspace Us, Inc. | System and method of rack management |
US20140351374A1 (en) * | 2013-05-24 | 2014-11-27 | Qualcomm Incorporated | Delayed actions for a decentralized system of learning devices |
US20160080140A1 (en) * | 2013-05-29 | 2016-03-17 | Freescale Semiconductor, Inc. | A network receiver for a network using distributed clock synchronization and a method of adjusting a frequency of an internal clock of the network receiver |
US20160294281A1 (en) * | 2013-12-20 | 2016-10-06 | Intel Corporation | Apparatus for charge recovery during low power mode |
US9313455B1 (en) * | 2014-04-09 | 2016-04-12 | Arkansas State University—Jonesboro | Automated audio/video distribution system |
US20160118988A1 (en) * | 2014-10-28 | 2016-04-28 | Xilinx, Inc. | Circuits for and methods of controlling power within an integrated circuit |
US9671846B1 (en) * | 2015-03-11 | 2017-06-06 | Pure Storage, Inc. | Power sequencing for optimal system load at start up |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681836A (en) * | 2016-12-28 | 2017-05-17 | 华为技术有限公司 | Creating method and device of signal quantity |
CN106681836B (en) * | 2016-12-28 | 2021-03-05 | 华为技术有限公司 | Semaphore creation method and semaphore creation device |
Also Published As
Publication number | Publication date |
---|---|
US9900390B2 (en) | 2018-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11630499B2 (en) | Power over Ethernet (PoE) power management | |
US7849247B2 (en) | Interrupt controller for accelerated interrupt handling in a data processing system and method thereof | |
CN103324546B (en) | A kind of method and device of watchdog service delay | |
TWI578235B (en) | System-on-chip and power control method thereof, and multi-core system | |
US10614006B2 (en) | Low latency interrupt with existence of interrupt moderation | |
US11422960B2 (en) | Interrupt monitoring systems and methods for failure detection for a semiconductor device | |
KR20040060727A (en) | Dynamic Voltage Transitions | |
EP2580657A1 (en) | Information processing device and method | |
US8112645B2 (en) | System and method for power management | |
US10712800B2 (en) | Aligning active and idle phases in a mixed workload computing platform | |
CN112041779B (en) | PDN resonance aware wake-up control | |
US10228744B2 (en) | Method and apparatus for detecting and managing overcurrent events | |
US8892923B2 (en) | Data processing apparatus and method for maintaining a time count value in normal and power saving modes of operation | |
US10719331B2 (en) | Stand-by mode of an electronic circuit | |
US20060075061A1 (en) | Management of microcode lock in a shared computing resource | |
TW201342031A (en) | Power management using reward-based sleep state selection | |
US9900390B2 (en) | Method and apparatus for controlling wake events in a data processing system | |
US20180196679A1 (en) | Initialization method for use in i2c system and master device | |
US20070220281A1 (en) | Entry into a low power mode upon application of power at a processing device | |
US8806233B2 (en) | Power delivery noise reduction on a memory channel | |
US9940140B2 (en) | Systems and methods of resetting a processor | |
US11537545B2 (en) | Deadlock condition avoidance in a data processing system with a shared slave | |
US6222900B1 (en) | Counter device | |
US7899956B2 (en) | System and method of reducing the rate of interrupts generated by a device in microprocessor based systems | |
CN111092922B (en) | Information sending method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HOLLOWAY, DAVID C.;ECKERMANN, BENJAMIN C.;GERGEN, JOSEPH P.;AND OTHERS;SIGNING DATES FROM 20150507 TO 20150519;REEL/FRAME:035692/0465 |
|
AS | Assignment |
Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YORK Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0339 Effective date: 20150724 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YORK Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0363 Effective date: 20150724 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YORK Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0105 Effective date: 20150724 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YOR Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0339 Effective date: 20150724 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YOR Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0363 Effective date: 20150724 Owner name: CITIBANK, N.A., AS NOTES COLLATERAL AGENT, NEW YOR Free format text: SUPPLEMENT TO IP SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:036284/0105 Effective date: 20150724 |
|
AS | Assignment |
Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: PATENT RELEASE;ASSIGNOR:CITIBANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:037357/0859 Effective date: 20151207 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:037565/0510 Effective date: 20151207 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:037565/0527 Effective date: 20151207 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: SUPPLEMENT TO THE SECURITY AGREEMENT;ASSIGNOR:FREESCALE SEMICONDUCTOR, INC.;REEL/FRAME:039138/0001 Effective date: 20160525 |
|
AS | Assignment |
Owner name: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC., NETHERLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:040925/0001 Effective date: 20160912 Owner name: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC., NE Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:040925/0001 Effective date: 20160912 |
|
AS | Assignment |
Owner name: NXP B.V., NETHERLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:040928/0001 Effective date: 20160622 |
|
AS | Assignment |
Owner name: NXP USA, INC., TEXAS Free format text: CHANGE OF NAME;ASSIGNOR:FREESCALE SEMICONDUCTOR INC.;REEL/FRAME:040626/0683 Effective date: 20161107 |
|
AS | Assignment |
Owner name: NXP USA, INC., TEXAS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME;ASSIGNOR:FREESCALE SEMICONDUCTOR INC.;REEL/FRAME:041414/0883 Effective date: 20161107 Owner name: NXP USA, INC., TEXAS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016;ASSIGNORS:NXP SEMICONDUCTORS USA, INC. (MERGED INTO);FREESCALE SEMICONDUCTOR, INC. (UNDER);SIGNING DATES FROM 20161104 TO 20161107;REEL/FRAME:041414/0883 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: NXP B.V., NETHERLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:050744/0097 Effective date: 20190903 |
|
AS | Assignment |
Owner name: NXP B.V., NETHERLANDS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVEAPPLICATION 11759915 AND REPLACE IT WITH APPLICATION11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITYINTEREST;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:052915/0001 Effective date: 20160622 |
|
AS | Assignment |
Owner name: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC., NETHERLANDS Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVEAPPLICATION 11759915 AND REPLACE IT WITH APPLICATION11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITYINTEREST;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:052917/0001 Effective date: 20160912 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |