US20130198545A1 - Methods of spreading plurality of interrupts, interrupt request signal spreader circuits, and systems-on-chips having the same - Google Patents
Methods of spreading plurality of interrupts, interrupt request signal spreader circuits, and systems-on-chips having the same Download PDFInfo
- Publication number
- US20130198545A1 US20130198545A1 US13/677,775 US201213677775A US2013198545A1 US 20130198545 A1 US20130198545 A1 US 20130198545A1 US 201213677775 A US201213677775 A US 201213677775A US 2013198545 A1 US2013198545 A1 US 2013198545A1
- Authority
- US
- United States
- Prior art keywords
- request signal
- interrupt request
- wakeup request
- output
- wakeup
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/3243—Power saving in microcontroller unit
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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
- Example embodiments relate generally to multi-processor and/or multi-core systems, for example, methods of spreading a plurality of interrupts, interrupt request signal spreader circuits, and systems-on-chips (SOCs) having the same.
- SOCs systems-on-chips
- a conventional electric device includes an interrupt controller for interrupt handling operations.
- the interrupt controller may set priorities for the interrupts, and provide interrupt request signals to processors.
- the interrupt request signals are generated based on the interrupts.
- SOCs may include a plurality of intellectual property (IP) blocks and a plurality of processors (or a processor having a plurality of cores).
- IP intellectual property
- processors frequently enter a low-power mode to reduce power consumption.
- the processors wake-up from the low-power mode in response to receiving respective interrupt request signals.
- interrupt request signals are generated based on the interrupts generated by a plurality of interrupt sources.
- the processors substantially wake-up from the low-power mode at the same or substantially the same time e.g., sometimes referred to as a sudden wake-up
- in-rush currents may result in the processors.
- One or more example embodiments provide methods of spreading a plurality of interrupt request signals capable of suppressing and/or preventing modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state (e.g., a power-down state, a power-off state, etc.) to an active state (e.g., a power-on state, etc.) within a relatively small time period even when a plurality of interrupts are continuously generated by a plurality of interrupt sources within a relatively small time period.
- an inactive state e.g., a power-down state, a power-off state, etc.
- an active state e.g., a power-on state, etc.
- One or more other example embodiments provide interrupt request signal spreader circuits capable of suppressing and/or preventing modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state (e.g., a power-down state, a power-off state, etc.) to an active state (e.g., a power-on state, etc.) within a relatively small time period even when a plurality of interrupts are continuously generated by a plurality of interrupt sources within a relatively small time period.
- an inactive state e.g., a power-down state, a power-off state, etc.
- an active state e.g., a power-on state, etc.
- Example embodiments also provide systems-on-chips having interrupt request signal spreader circuits.
- methods of spreading a plurality of interrupt request signals may suppress and/or prevent modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state (e.g., a power-down state, a power-off state, etc.) to an active state (e.g., a power-on state, etc.) within a relatively small time period even when the interrupts are continuously generated by a plurality of interrupt sources within a relatively small time period.
- in-rush currents in the processors may be suppressed and/or prevented.
- an interrupt request signal spreader circuit may suppress and/or prevent modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state (e.g., a power-down state, a power-off state, etc.) to an active state (e.g., a power-on state, etc.) within a relatively small time period even when the interrupts are continuously generated by a plurality of interrupt sources within a relatively small time period.
- an inactive state e.g., a power-down state, a power-off state, etc.
- an active state e.g., a power-on state, etc.
- Systems-on-chips may include an interrupt request signal spreader circuit.
- systems-on-chips may achieve relatively high operational reliability by suppressing and/or preventing modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state (e.g., a power-down state, a power-off state, etc.) to an active state (e.g., a power-on state, etc.) within a relatively small time period.
- an inactive state e.g., a power-down state, a power-off state, etc.
- an active state e.g., a power-on state, etc.
- At least one example embodiment provides a method of power control for a system-on-chip.
- the method includes: controlling output of at least one of a first wakeup request signal and a second wakeup request signal such that a time interval between the output of the first wakeup request signal and the output of the second wakeup request signal is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- At least one other example embodiment provides a method of power control for a system-on-chip.
- the method includes: comparing a first priority of a first wakeup request signal with a second priority of a second wakeup request signal; and controlling output of at least one of the first wakeup request signal and the second wakeup request signal based on the comparison between the first priority and the second priority such that a time difference between the output of the first wakeup request signal and the output of the second wakeup request signal is greater than or equal to a time interval threshold.
- At least one other example embodiment provides a method of power control for a system-on-chip.
- the method includes: controlling output of at least one of a first wakeup request signal to a first processor in an inactive state and a second wakeup request signal to a second processor in the inactive state such that a time interval between the output of the first wakeup request signal to the first processor and the output of the second wakeup request signal to the second processor is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- At least one other example embodiment provides a method of power control for a system-on-chip.
- the method includes: comparing a first priority of a first wakeup request signal with a second priority of a second wakeup request signal, each of the first wakeup request signal and the second wakeup request signal being associated with a function block in an inactive state; and controlling output of at least one of the first wakeup request signal and the second wakeup request signal based on the comparison between the first priority and the second priority such that a time difference between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold.
- At least one other example embodiment provides a system-on-chip including: wakeup request signal spreading circuit configured to control an output of at least one of a first wakeup request signal to a first function block and a second wakeup request signal to a second function block such that a time interval between output of the first wakeup request signal to the first function block and output of the second wakeup request signal to the second function block is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- At least one other example embodiment provides a system-on-chip including: a wakeup request signal spreading circuit configured to compare a first priority of a first wakeup request signal with a second priority of a second wakeup request signal, the wakeup request signal spreading circuit being further configured to control output of at least one of the first wakeup request signal and the second wakeup request signal based on the comparison between the first priority and the second priority such that a time difference between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold.
- At least one other example embodiment provides a system-on-chip including: a wakeup request signal spreading circuit configured to control output of at least one of a first wakeup request signal to a first function block in an inactive state and a second wakeup request signal to a second function block in an inactive state such that a time interval between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- a wakeup request signal spreading circuit configured to control output of at least one of a first wakeup request signal to a first function block in an inactive state and a second wakeup request signal to a second function block in an inactive state such that a time interval between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- At least one other example embodiment provides a system-on-chip including: a wakeup request signal spreading circuit configured to compare a first priority of a first wakeup request signal with a second priority of a second wakeup request signal, each of the first wakeup request signal and the second wakeup request signal being associated with a function block in an inactive state, the wakeup request signal spreading circuit being further configured to control output of at least one of the first wakeup request signal and the second wakeup request signal based on the comparison between the first priority and the second priority such that a time difference between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold.
- At least one other example embodiment provides a system-on-chip including: a plurality of wakeup request signal sources configured to generate at least first and second wakeup signals; a wakeup signal controller configured to generate at least a first and a second wakeup request signal based on the first and second wakeup signals; a plurality of processors configured to transition from an inactive state to an active state based on the first and second wakeup request signals; and a wakeup request signal spreading circuit configured to control an output of at least one of the first wakeup request signal to a first of the plurality of processors and the second wakeup request signal to a second of the plurality of processors such that a time interval between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- At least one other example embodiment provides a multi-core system comprising: a plurality of wakeup signal sources configured to generate at least first and second wakeup signals; a wakeup signal controller configured to generate at least first and second wakeup request signals based on the first and second wakeup signals; a multicore processor including at least a first core and a second core, the first core being configured to receive the first wakeup request signal, and the second core being configured to receive the second wakeup request signal; a wakeup request signal spreading circuit configured to control an output of at least one of the first wakeup request signal to the first core and the second wakeup request signal to the second core such that a time interval between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals; and at least one memory device configured to interface with the plurality of wakeup signal sources and the multi-core processor via a system bus.
- FIG. 1 is a block diagram illustrating a system-on-chip according to an example embodiment.
- FIG. 2 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to an example embodiment.
- FIGS. 3A and 3B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method of FIG. 2 .
- FIGS. 4A and 4B are diagrams illustrating another example in which a plurality of interrupt request signals are spread according to the method of FIG. 2 .
- FIGS. 5A and 5B are diagrams illustrating still another example in which a plurality of interrupt request signals are spread according to the method of FIG. 2 .
- FIG. 6 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to another example embodiment.
- FIGS. 7A and 7B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method of FIG. 6 .
- FIG. 8 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to another example embodiment.
- FIGS. 9A and 9B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method of FIG. 8 .
- FIG. 10 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to another example embodiment.
- FIG. 11 is a diagram illustrating a plurality of processors in an active state and a plurality of processors in an inactive state.
- FIG. 12 is a block diagram illustrating an interrupt request signal spreader circuit according to an example embodiment.
- FIG. 13 is a diagram illustrating a state machine implementation of the interrupt request signal holder shown in FIG. 12 .
- FIG. 14 is a diagram illustrating a state machine implementation of the interrupt request signal arbiter shown in FIG. 12 .
- FIG. 15 is a timing diagram illustrating example operation of the interrupt request signal spreader circuit of FIG. 12 .
- FIG. 16 is a block diagram illustrating an interrupt request signal spreader circuit according to another example embodiment.
- FIG. 17 is a diagram illustrating example operation of the interrupt request signal spreader circuit shown in FIG. 1 .
- FIG. 18 is a diagram illustrating another example operation of the interrupt request signal spreader circuit shown in FIG. 1 .
- FIG. 19 is a diagram illustrating still another example operation of the interrupt request signal spreader circuit shown in FIG. 1 .
- FIG. 20 is a block diagram illustrating a multi-core system according to an example embodiment.
- FIG. 21 is a diagram illustrating an example in which a multi-core system of FIG. 20 is implemented as a smart phone.
- FIG. 1 is a block diagram illustrating a system-on-chip according to an example embodiment.
- the system-on-chip 500 includes first through (n)th interrupt sources 520 _ 1 through 520 — n , an interrupt controller 540 , an interrupt request signal spreader circuit 560 , and first through (m)th processors 580 _ 1 through 580 — m .
- the interrupt request signal spreader circuit 560 may be referred to as a wakeup request signal spreading circuit and/or an interrupt request signal spreading circuit.
- An interrupt request signal may be referred to as a wakeup request signal.
- the interrupt controller 540 may be referred to as a wakeup signal controller and an interrupt may be referred to as a wakeup signal.
- the number of interrupt sources 520 _ 1 through 520 — n may be greater than the number of processors 580 _ 1 through 580 — m . In other example embodiments, however, the number of interrupt sources 520 _ 1 through 520 — n may be less than or equal to the number of processors 580 _ 1 through 580 — m .
- the first through (m)th processors 580 _ 1 through 580 — m may correspond to separate processors or a plurality of cores of a multi-processor.
- the multi-processor may be referred to as a dual-core processor if m is 2, may be referred to as a quad-core processor if m is 4, etc.
- the first through (n)th interrupt sources 520 _ 1 through 520 — n generate first through (n)th interrupts INT_R 1 through INT_Rn, respectively.
- the first through (n)th interrupt sources 520 _ 1 through 520 — n are intellectual property (IP) blocks that perform specific operations in the multi-processor system (or the multi-core system).
- the first through (n)th interrupt sources 520 _ 1 through 520 — n may correspond to components of a system-on-chip (SOC) such as a video module, a sound module, a display module, a memory module, a communication module, a camera module, etc.
- SOC system-on-chip
- the interrupt controller 540 generates first through (m) th interrupt request signals nIRQ_I 1 through nIRQ_Im based on the first through (n)th interrupts INT_R 1 through INT_Rn from the first through (n)th interrupt sources 520 _ 1 through 520 — n , respectively.
- the interrupt request signal spreader circuit 560 outputs first through (m) th interrupt request signals nIRQ_O 1 through nIRQ_Om to the first through (m)th processors 580 _ 1 through 580 — m , respectively, based on the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im and at time intervals that are greater than or equal to a time interval threshold.
- the time interval threshold may be a given, desired or predetermined time interval determined according to empirical data or set by a user or design engineer.
- the time interval threshold may be a time interval in a range in which the in-rush currents are not generated in the processors when modes of the processors are changed (e.g., continuously changed) from an inactive state to an active state.
- the first through (m)th processors 580 _ 1 through 580 — m perform interrupt handling operations for the first through (n)th interrupt sources 520 _ 1 through 520 — n in response to the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om, respectively.
- the interrupt controller 540 generates the first through (m) th interrupt request signals nIRQ_I 1 through nIRQ_Im based on the first through (n)th interrupts INT_R 1 through INT_Rn generated by the first through (n)th interrupt sources 520 _ 1 through 520 — n .
- the interrupt controller 540 receives the first through (n)th interrupts INT_R 1 through INT_Rn from the first through (n)th interrupt sources 520 _ 1 through 520 — n , and assigns the first through (n)th interrupts INT_R 1 through INT_Rn to the first through (m)th processors 580 _ 1 through 580 — m .
- the interrupt controller 540 may assign the first through (n)th interrupts INT_R 1 through INT_Rn to the first through (m) th processors 580 _ 1 through 580 — m by timely and/or spatially distributing the first through (n) th interrupts INT_R 1 through INT_Rn.
- the interrupt request signal spreader circuit 560 controls the time intervals between output of the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im (e.g., a time interval between output of adjacent interrupt request signals) input from the interrupt controller 540 to be greater than or equal to the time interval threshold.
- the time interval threshold may be within a range in which in-rush currents are not generated in the first through (m)th processors 580 _ 1 through 580 — m when modes of the first through (m)th processors 580 _ 1 through 580 — m are changed (e.g., continuously changed) from an inactive state to an active state.
- the interrupt request signal spreader circuit 560 includes first through (m)th interrupt request signal holders and an interrupt request signal arbiter.
- the first through (m)th interrupt request signal holders receive the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im, and output the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om to the first through (m)th processors 580 _ 1 through 580 — m , respectively, at time intervals that are greater than or equal to the time interval threshold.
- the interrupt request signal arbiter controls the time interval between output of each of the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im to be greater than or equal to the time interval threshold. For example, if a time interval between adjacent ones of the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im is smaller than the time interval threshold, then the interrupt request signal arbiter controls the time interval between output of the adjacent interrupt request signals such that the time interval is greater than or equal to the time interval threshold.
- time intervals between (e.g., adjacent) interrupt request signals refers to time intervals between receipt of (e.g., adjacent) interrupt request signals at, for example, the interrupt request signal spreader circuit.
- the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im may be input to the first through (m)th interrupt request signal holders, respectively, and the first through (m)th interrupt request signal holders may be coupled to the first through (m)th processors 580 _ 1 through 580 — m , respectively.
- the first through (m)th interrupt request signal holders and the interrupt request signal arbiter may operate in about one clock domain.
- a request/acknowledge handshaking operation may be performed between the first through (m)th interrupt request signal holders and the interrupt request signal arbiter.
- the interrupt request signal spreader circuit 560 may control time intervals between output of the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im to be greater than or equal to the time interval threshold by delaying output of a (k+1)th interrupt request signal that follows a (k)th interrupt request signal (in this example, k is an integer greater than or equal to 1) until a (k)th time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal becomes at least the same or substantially the same as the time interval threshold (e.g., when the (k)th time interval is greater than 0).
- the interrupt request signal spreader circuit 560 may delay output of the (k)th interrupt request signal or output of the (k+1) interrupt request signal by the time interval threshold (e.g., when the (k)th time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is equal or substantially equal to 0).
- the interrupt request signal spreader circuit 560 may change an output order for the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om based on given, desired or predetermined priorities associated with the interrupts and/or interrupt request signals, so that an output order for the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om is different from an input order for the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im.
- the interrupt request signal spreader circuit 560 may divide or group the first through (m)th processors 580 _ 1 through 580 — m into a first group including processors in an active state and a second group including processors in an inactive state. Then, among the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im, the interrupt request signal spreader circuit 560 may not control time intervals between output of the interrupt request signals assigned to the first group to be at least the time interval threshold, but may control the time intervals between output of the interrupt request signals assigned to the second group to be at least the time interval threshold.
- the system-on-chip 500 may suppress and/or prevent modes of the first through (m)th processors 580 _ 1 through 580 — m from being changed (e.g., continuously changed) from an inactive state to an active state within a relatively small time window (sometimes referred to as a sudden wake-up) even when the interrupts are continuously generated by the interrupt sources 520 _ 1 through 520 — n within a relatively small time window.
- the system-on-chip 500 may achieve relatively high operational reliability by suppressing and/or preventing in-rush currents due to a sudden wake-up of a plurality of processors (or, a plurality of cores in a multi-core processor).
- FIG. 2 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to an example embodiment. For clarity, the method shown in FIG. 2 will be described with regard to the SOC shown in FIG. 1 . However, it should be understood that example embodiments should not be limited to this implementation.
- the interrupt request signal spreader circuit 560 receives a plurality of interrupt request signals.
- the interrupt request signal spreader circuit 560 checks whether the time intervals between (e.g., receipt of) the interrupt request signals (e.g., time intervals between adjacent interrupt request signals) are smaller than a time interval threshold.
- the interrupt request signal spreader circuit 560 controls the time interval between output of the interrupt request signals to be greater than or equal to the time interval threshold at S 160 .
- the interrupt request signal spreader circuit 560 then outputs the interrupt request signals to a plurality of processors, respectively, at S 180 .
- the interrupt request signal spreader circuit 560 maintains (e.g., does not adjust) the time interval between output of the interrupt request signals at S 165 .
- the interrupt request signal spreader circuit 560 then outputs the interrupt request signals to the plurality of processors, respectively, at S 180 .
- the processors may correspond to separate processors, or a plurality of cores in a multi-core processor (e.g., a dual-core processor, a quad-core processor, etc.).
- a multi-core processor e.g., a dual-core processor, a quad-core processor, etc.
- the processors are described as being in an active state or an inactive state.
- the active state corresponds to a normal operation mode such as a power-on state, etc.
- the inactive state corresponds to a low-power mode such as a power-down state, a power-off state, etc.
- FIG. 2 will be described in more detail with regard to the SOC shown in FIG. 1 .
- the interrupt request signal spreader circuit 560 sequentially receives the interrupt request signals at S 120 .
- the interrupt request signals may be generated based on a plurality of interrupts output from a plurality of interrupt sources, and may be assigned to respective processors.
- the interrupt sources are intellectual property (IP) blocks that perform specific operations in the multi-core system (or the multi-processor system).
- the interrupt sources may correspond to components of a system-on-chip (SOC) such as a video module, a sound module, a display module, a memory module, a communication module, a camera module, etc.
- SOC system-on-chip
- the interrupt request signals may be generated based on the interrupts, and then provided to respective processors.
- a SOC may include a plurality of IP blocks and a plurality of processors or a processor having a plurality of cores.
- the processors may more frequently enter a low-power mode to reduce power consumption, and may wake-up from the low-power mode in response to receiving respective interrupt request signals.
- processors substantially wake-up from the low-power mode at the same or substantially the same time sometimes referred to as a sudden wake-up
- in-rush currents may be caused in the processors.
- the in-rush currents may cause electric devices having SOCs to malfunction.
- it is relatively difficult for the SOCs to achieve relatively high operational reliability because in-rush currents are also caused by dynamic current changes in the SOC.
- the interrupt request signal spreader circuit 560 checks whether the time intervals between the interrupt request signals are smaller than the time interval threshold at S 140 .
- the time interval threshold may be determined to be within a range in which the in-rush currents are not generated in the processors when modes of the processors are continuously changed from an inactive state to an active state.
- the interrupt request signal spreader circuit 560 controls the time interval between output of the interrupt request signals to be at least equal to the time interval threshold at S 160 .
- the interrupt request signal spreader circuit 560 controls the time interval to be at least equal to the time interval threshold by delaying output of a (k+1)th interrupt request signal that follows a (k)th interrupt request signal (where k is an integer greater than or equal to 1) until a (k)th time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal becomes at least the same or substantially the same as the time interval threshold when the (k)th time interval is greater than 0 (non-zero).
- the (k)th interrupt request signal and the (k+1)th interrupt request signal are adjacent (e.g., consecutive or sequentially input).
- two processors may sequentially wake-up within a relatively small time window (sometimes referred to as a sudden wake-up), and as a result, in-rush currents may be caused in two processors if the (k)th interrupt request signal and the (k+1)th interrupt request signal are output to the two processors without controlling the (k)th time interval when the (k)th time interval is smaller than the time interval threshold.
- the interrupt request signal spreader circuit 560 controls the (k)th time interval between the (k) th interrupt request signal and the (k+1)th interrupt request signal to be the time interval threshold by delaying output of the (k+1)th interrupt request signal that follows the (k) th interrupt request signal.
- the interrupt request signal spreader circuit 560 delays output of the (k)th interrupt request signal or the (k+1) interrupt request signal by at least the time interval threshold when the (k)th time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is equal or substantially equal to 0 (the interrupt request signals are concurrently or simultaneously input).
- in-rush currents may be suppressed and/or prevented in two processors because the (k)th time interval is controlled to be at least the time interval threshold by using the method of FIG. 2 when the (k)th interrupt request signal and the (k+1)th interrupt request signal are input at the same or substantially the same time.
- the interrupt request signal spreader circuit 506 may change an output order of the interrupt request signals based on given, desired or predetermined priorities associated with the interrupts and/or interrupt request signals when a time interval between the interrupt request signals is controlled to be greater than or equal to the time interval threshold.
- a (k)th interrupt request signal, a (k+1)th interrupt request signal, and a (k+2) interrupt request signal are sequentially input in that order. If a (k)th time interval between the (k)th interrupt request signal and the (k+1) interrupt request signal and a (k+1)th time interval between the (k+1)th interrupt request signal and the (k+2)th interrupt request signal are smaller than the time interval threshold, then the interrupt request signal spreader circuit 560 controls the (k)th time interval to be greater than or equal to the time interval threshold by delaying output of the (k+1)th interrupt request signal that follows the (k)th interrupt request signal, and then controls the (k+1)th time interval to be greater than or equal to the time interval threshold by delaying output of the (k+2)th interrupt request signal that follows the (k+1)th interrupt request signal.
- the interrupt request signal spreader circuit 560 may change an output order of the (k)th interrupt request signal, the (k+1)th interrupt request signal, and the (k+2)th interrupt request signal based on given, desired or predetermined priorities of the interrupts.
- the interrupt request signal spreader circuit 560 sequentially outputs the (k)th interrupt request signal, the (k+2)th interrupt request signal, and the (k+1)th interrupt request signal in that order based on given, desired or predetermined priorities of the interrupts and/or interrupt request signals.
- a mode of the processor changes from an inactive state to an active state. Then, the processor performs interrupt handling operations (or interrupt services) in response to the interrupt request signal corresponding to an interrupt generated by an interrupt source.
- interrupt handling operations or interrupt services
- in-rush currents may result because a plurality of transistors included in the processor suddenly operate.
- a low-power processor may include a plurality of clock gating circuits in order to reduce consumption power in an inactive state. Hence, most clocks do not toggle in an inactive state.
- in-rush currents may result because most clocks toggle concurrently or simultaneously.
- the method of FIG. 2 may suppress and/or prevent modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state to an active state within a relatively small time even when the interrupts are continuously generated by a plurality of interrupt sources within a relatively small time window.
- a SOC employing the method of FIG. 2 may achieve relatively high operational reliability by suppressing and/or preventing in-rush currents due to the sudden wake-up of a plurality of processors (or a plurality of cores in a multi-core processor).
- the method of FIG. 2 may be performed for a plurality of interrupt request signals input to a plurality of processors in an inactive state.
- the interrupt request signal spreader circuit 560 then outputs the interrupt request signals to a plurality of processors, respectively, at S 180 .
- the interrupt request signal spreader circuit 560 maintains (does not adjust) that time interval between output the interrupt request signals at S 165 .
- the interrupt request signal spreader circuit 560 then outputs the interrupt request signals to a plurality of processors, respectively, at S 180 .
- the interrupt request signal spreader circuit 560 outputs the interrupt request signals to the processors, respectively, by controlling a time interval between output of interrupt request signals to be at least equal to the time interval threshold if the time interval among the interrupt request signals is smaller than the time interval threshold.
- the interrupt request signal spreader circuit 560 outputs the interrupt request signals to the processors, respectively, without controlling (or adjusting) the time intervals if the time interval between the interrupt request signals is greater than or equal to the time interval threshold.
- the interrupt request signals may be provided to the processors, respectively, at a time interval that is greater than or equal to the time interval threshold.
- FIGS. 3A and 3B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method of FIG. 2 .
- FIG. 3A shows an example in which first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are sequentially input
- FIG. 3B shows an example in which the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are sequentially output to first through fourth processors, respectively, according to the method of FIG. 2 .
- a first time interval S 1 between the first interrupt request signal nIRQ_ 1 and the second interrupt request signal nIRQ_ 2 is smaller than a time interval threshold PS
- a second time interval S 2 between the second interrupt request signal nIRQ_ 2 and the third interrupt request signal nIRQ_ 3 is smaller than the time interval threshold PS
- a third time interval S 3 between the third interrupt request signal nIRQ_ 3 and the fourth interrupt request signal nIRQ_ 4 is also smaller than the time interval threshold PS.
- output of the second interrupt request signal nIRQ_ 2 is delayed such that the first time interval 51 is at least equal or substantially equal to the time interval threshold PS.
- output of the third interrupt request signal nIRQ_ 3 is delayed such that the second time interval S 2 is at least equal or substantially equal to the time interval threshold PS.
- output of the fourth interrupt request signal nIRQ_ 4 is delayed such that the third time interval S 3 is at least equal or substantially equal to the time interval threshold PS.
- the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 may be sequentially output to the first through fourth processors, respectively, at time intervals corresponding to the time interval threshold PS.
- FIGS. 4A and 4B are diagrams illustrating another example in which a plurality of interrupt request signals are spread according to the method of FIG. 2 .
- FIG. 4A shows an example in which first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are sequentially input
- FIG. 4B shows an example in which the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are sequentially output to first through fourth processors, respectively, according to the method of FIG. 2 .
- a first time interval 51 between the first interrupt request signal nIRQ_ 1 and the second interrupt request signal nIRQ_ 2 is greater than a time interval threshold PS
- a second time interval S 2 between the second interrupt request signal nIRQ_ 2 and the third interrupt request signal nIRQ_ 3 is smaller than the time interval threshold PS
- a third time interval S 3 between the third interrupt request signal nIRQ_ 3 and the fourth interrupt request signal nIRQ_ 4 is also smaller than the time interval threshold PS.
- the first time interval S 1 between the first interrupt request signal nIRQ_ 1 and the second interrupt request signal nIRQ_ 2 is maintained and not adjusted, whereas output of the third interrupt request signal nIRQ_ 3 is delayed such that the second time interval S 2 is greater than or equal to the time interval threshold PS, and output of the fourth interrupt request signal nIRQ_ 4 is delayed such that the third time interval S 3 is greater than or equal to the time interval threshold PS.
- the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are output sequentially to the first through fourth processors, respectively, at time intervals that are greater than or equal to the time interval threshold PS.
- FIGS. 5A and 5B are diagrams illustrating still another example in which a plurality of interrupt request signals are spread according to the method of FIG. 2 .
- FIG. 5A shows an example in which first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are sequentially input
- FIG. 5B shows an example in which the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are sequentially output to first through fourth processors, respectively, according to the method of FIG. 2 .
- a first time interval S 1 between the first interrupt request signal nIRQ_ 1 and the second interrupt request signal nIRQ_ 2 is smaller than a time interval threshold PS
- a second time interval S 2 between the second interrupt request signal nIRQ_ 2 and the third interrupt request signal nIRQ_ 3 is smaller than the time interval threshold PS
- a third time interval S 3 between the third interrupt request signal nIRQ_ 3 and the fourth interrupt request signal nIRQ_ 4 is also smaller than the time interval threshold PS.
- in-rush currents may not be caused in two processors even when two processors wakeup simultaneously or concurrently, or sequentially within a relatively small time window, whereas in-rush currents may be caused in three processors when three processors wake-up simultaneously or concurrently, or sequentially within a relatively small time window.
- two processors may be allowed to sequentially wake-up within a relatively small time window, but more than two processors may not.
- the first time interval 51 between the first interrupt request signal nIRQ_ 1 and the second interrupt request signal nIRQ_ 2 is maintained (not adjusted) even though the first time interval 51 is smaller than the time interval threshold PS.
- a given, desired or predetermined number of processors e.g., two processors are allowed to sequentially wake-up within a relatively small time window.
- output of the third interrupt request signal nIRQ_ 3 is delayed such that the second time interval S 2 is greater than or equal to the time interval threshold PS. Consequently, according to the method of FIG. 2 , three processors are suppressed and/or prevented from sequentially waking-up within a relatively small time window. Then, as shown in FIG. 5B , the third time interval S 3 between the third interrupt request signal nIRQ_ 3 and the fourth interrupt request signal nIRQ_ 4 is maintained and not adjusted even though the third time interval S 3 is smaller than the time interval threshold PS.
- FIG. 6 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to another example embodiment. As with FIG. 2 , for clarity the method shown in FIG. 6 will be described with regard to the SOC shown in FIG. 1 . However, it should be understood that example embodiments should not be limited to this implementation.
- the interrupt request signal spreader circuit 560 receives a (k) th interrupt request signal at S 210 , and then receives a (k+1)th interrupt request signal at S 220 .
- the interrupt request signal spreader circuit 560 checks whether a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is greater than 0.
- the interrupt request signal spreader circuit 560 delays output of the (k)th interrupt request signal at S 240 until the time interval becomes at least the same or substantially the same as the time interval threshold.
- the interrupt request signal spreader circuit 560 delays output of the (k)th interrupt request signal or output of the (k+1)th interrupt request signal by at least the time interval threshold based on given, desired or predetermined priorities associated with the interrupts and/or interrupt request signals.
- the (k)th interrupt request signal and the (k+1)th interrupt request signal are sequentially input so that a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is greater than 0.
- the (k)th interrupt request signal and the (k+1)th interrupt request signal may be input at the same or substantially the same time (e.g., simultaneously or concurrently).
- the interrupt request signal spreader circuit 560 checks whether a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is greater than 0.
- the interrupt request signal spreader circuit 560 delays output of the (k)th interrupt request signal until the time interval becomes at least the same or substantially the same as the time interval threshold.
- the interrupt request signal spreader circuit 560 delays output of the (k)th interrupt request signal or output of the (k+1)th interrupt request signal by at least the time interval threshold based on the given, desired or predetermined priorities associated with the interrupts and/or interrupt request signals.
- the (k)th interrupt request signal and the (k+1)th interrupt request signal are output to a (k)th processor and a (k+1)th processor, respectively, at a time interval corresponding to at least the time interval threshold even when the (k)th interrupt request signal and the (k+1)th interrupt request signal are input at the same or substantially the same time (e.g., simultaneously or concurrently).
- the method of FIG. 6 may suppress and/or prevent modes of a plurality of processors included in a SOC from continuously being changed from an inactive state to an active state within a relatively small time window (sometimes referred to as a sudden wake-up).
- FIGS. 7A and 7B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method of FIG. 6 .
- FIG. 7A shows an example in which first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are sequentially input
- FIG. 7B shows an example in which the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are sequentially output to first through fourth processors, respectively, according to the method of FIG. 6 .
- adjacent interrupt request signals nIRQ_ 3 and nIRQ_ 4 are input at the same or substantially the same time (e.g., simultaneously or concurrently), whereas the interrupt request signals nIRQ_ 1 and nIRQ_ 2 are input sequentially.
- a first time interval S 1 between the first interrupt request signal nIRQ_ 1 and the second interrupt request signal nIRQ_ 2 is smaller than a time interval threshold PS
- a second time interval S 2 between the second interrupt request signal nIRQ_ 2 and the third interrupt request signal nIRQ_ 3 (or, the fourth interrupt request signal nIRQ_ 4 ) is smaller than the time interval threshold PS
- a time interval between the third interrupt request signal nIRQ_ 3 and the fourth interrupt request signal nIRQ_ 4 is equal or substantially equal to 0.
- a priority of the fourth interrupt request signal nIRQ_ 4 is higher than a priority of the third interrupt request signal nIRQ_ 3 .
- Output of the second interrupt request signal nIRQ_ 2 is delayed such that the first time interval 51 between the first interrupt request signal nIRQ_ 1 and the second interrupt request signal nIRQ_ 2 is greater than or equal to the time interval threshold PS.
- output of the fourth interrupt request signal nIRQ_ 4 is delayed such that the second time interval S 2 between the second interrupt request signal nIRQ_ 2 and the fourth interrupt request signal nIRQ_ 4 is greater than or equal to the time interval threshold PS.
- output of the third interrupt request signal nIRQ_ 3 is delayed by the time interval threshold PS after output of the fourth interrupt request signal nIRQ_ 4 .
- the fourth interrupt request signal nIRQ_ 4 is output prior to the third interrupt request signal nIRQ_ 3 because a priority of the fourth interrupt request signal nIRQ_ 4 is higher than a priority of the third interrupt request signal nIRQ_ 3 .
- the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are output to the first through fourth processors, respectively, at time intervals corresponding to the time interval threshold PS based on given, desired or predetermined priorities when adjacent interrupt request signals (e.g., the third interrupt request signal nIRQ_ 3 and the fourth interrupt request signal nIRQ_ 4 ) are input at the same or substantially the same time (e.g., simultaneously or concurrently).
- FIG. 8 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to another example embodiment. As with FIG. 2 , for clarity the method shown in FIG. 8 will be described with regard to the SOC shown in FIG. 1 . However, it should be understood that example embodiments should not be limited to this implementation.
- the interrupt request signal spreader circuit 560 receives a (k) th interrupt request signal at S 310 , and then receives a (k+1)th interrupt request signal at S 320 .
- this example embodiment is described with regard to the (k)th interrupt request signal and the (k+1)th interrupt request signal being received sequentially, example embodiments may be equally applicable to interrupt request signals received concurrently or simultaneously.
- the interrupt request signal spreader circuit 560 then checks whether a priority of the (k)th interrupt request signal is higher than a priority of the (k+1)th interrupt request signal at S 330 .
- the interrupt request signal spreader circuit 560 delays output of the (k+1)th interrupt request signal at S 340 .
- the interrupt request signal spreader circuit 560 delays output of the (k)th interrupt request signal at S 350 .
- the interrupt request signal spreader circuit 560 may sequentially receive the (k)th interrupt request signal and the (k+1)th interrupt request signal, and check whether a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is smaller than the time interval threshold. The interrupt request signal spreader circuit 560 also checks whether a priority of the (k) th interrupt request signal is higher than a priority of the (k+1)th interrupt request signal.
- the interrupt request signal spreader circuit 560 determines an output order for the (k) th interrupt request signal and the (k+1)th interrupt request signal based on given, desired or predetermined priorities associated with the interrupt request signals, regardless or independent of an input order for the (k)th interrupt request signal and the (k+1)th interrupt request signal.
- the interrupt request signal spreader circuit 560 delays output of the (k+1)th interrupt request signal when a priority of the (k)th interrupt request signal is higher than a priority of the (k+1)th interrupt request signal.
- the interrupt request signal spreader circuit 560 delays output of the (k)th interrupt request signal when a priority of the (k)th interrupt request signal is lower than a priority of the (k+1)th interrupt request signal.
- the (k)th interrupt request signal and the (k+1)th interrupt request signal are output to a (k)th processor and a (k+1)th processor, respectively, at a time interval corresponding to at least the time interval threshold based on given, desired or predetermined priorities.
- the method of FIG. 8 may suppress and/or prevent modes of a plurality of processors included in a SOC from continuously being changed from an inactive state to an active state within a relatively small time period (sometimes referred to as a sudden wake-up).
- FIGS. 9A and 9B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method of FIG. 8 .
- FIG. 9A shows an example in which first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are sequentially input
- FIG. 9B shows an example in which the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are output to first through fourth processors, respectively, based on given, desired or predetermined priorities according to the method of FIG. 8 .
- a first time interval S 1 between the first interrupt request signal nIRQ_ 1 and the second interrupt request signal nIRQ_ 2 is smaller than a time interval threshold PS
- a second time interval S 2 between the second interrupt request signal nIRQ_ 2 and the third interrupt request signal nIRQ_ 3 is smaller than the time interval threshold PS
- a third time interval S 3 between the third interrupt request signal nIRQ_ 3 and the fourth interrupt request signal nIRQ_ 4 is smaller than the time interval threshold PS.
- an output order for the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 may need to be different from an input order for the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 .
- an output order for the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 may be changed based on given, desired or predetermined priorities associated with the interrupt request signals nIRQ_ 1 through nIRQ_ 4 .
- a wake-up order for first through fourth processors that perform interrupt handling operations in response to the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 may be adjusted by changing an output order for the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 based on the given, desired or predetermined priorities.
- the interrupt request signal spreader circuit outputs first interrupt request signal nIRQ_ 1 , the third interrupt request signal nIRQ_ 3 , the fourth interrupt request signal nIRQ_ 4 , and the second interrupt request signal nIRQ_ 2 based on the given, desired or predetermined priorities, regardless or independent of an input order of the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 .
- the time intervals between the first interrupt request signal nIRQ_ 1 , the third interrupt request signal nIRQ_ 3 , the fourth interrupt request signal nIRQ_ 4 , and the second interrupt request signal nIRQ_ 2 are controlled to be greater than or equal to the time interval threshold PS.
- the first through fourth interrupt request signals nIRQ_ 1 through nIRQ_ 4 are output to first through fourth processors, respectively, at a time interval corresponding to at least the time interval threshold PS based on the given, desired or predetermined priorities.
- FIG. 10 is a flow chart illustrating a method of spreading a plurality of interrupts according to another example embodiment
- FIG. 11 is a diagram illustrating a plurality of processors in an active state and a plurality of processors in an inactive state. The method shown in FIG. 10 will be described with regard to the SOC shown in FIG. 1 and the processors shown in FIG. 11 .
- the interrupt request signal spreader circuit 560 sequentially receives a plurality of interrupt request signals.
- the interrupt request signal spreader circuit 560 divides or groups the interrupt request signals into target interrupt request signals and non-target interrupt request signals.
- the target interrupt request signals are interrupt request signals assigned to (e.g., scheduled to be output to) processors TP_ 1 through TP_ 4 in an inactive state
- the non-target interrupt request signals are interrupt request signals assigned to processors NTP_ 1 and NTP_ 2 in an active state.
- the interrupt request signal spreader circuit 560 immediately outputs the non-target interrupt request signals to the processors NTP_ 1 and NTP_ 2 in an active state, respectively. Meanwhile, the interrupt request signal spreader circuit 560 checks whether the time intervals between the target interrupt request signals (e.g., time intervals between adjacent target interrupt request signals) are smaller than a time interval threshold at S 440 .
- the interrupt request signal spreader circuit 560 controls a time interval between output of the target interrupt request signals to be greater than or equal to the time interval threshold at S 450 .
- the interrupt request signal spreader circuit 560 then outputs the target interrupt request signals to the processors TP_ 1 through TP_ 4 in an inactive state, respectively, at S 480 .
- the interrupt request signal spreader circuit 560 maintains (does not adjust) the time interval between output of the target interrupt request signals at S 460 .
- the interrupt request signal spreader circuit 560 then outputs the target interrupt request signals to the processors TP_ 1 through TP_ 4 in an inactive state, respectively, at S 480 .
- time intervals between the non-target interrupt request signals are not controlled because the processors NTP_ 1 and NTP_ 2 are in an active state and need not wake-up.
- time intervals between target interrupt request signals assigned to the processors TP_ 1 through TP_ 4 in the inactive state are controlled to be greater than or equal to the time interval threshold.
- a SOC employing the method of FIG. 10 may operate at higher speeds because the number of interrupt request signals (e.g., loads) being handled is reduced.
- FIG. 12 is a block diagram illustrating an interrupt request signal spreader circuit according to an example embodiment.
- the interrupt request signal spreader circuit shown in FIG. 12 may serve as the interrupt request signal spreader circuit 560 shown in FIG. 1 .
- the interrupt request signal spreader circuit 100 includes an interrupt request signal arbiter 140 and first through (m)th interrupt request signal holders 120 _ 1 through 120 — m .
- m is an integer greater than or equal to 2.
- the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m are configured to receive first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im, respectively, and to output first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om to first through (m)th processors (not illustrated in FIG. 12 ), respectively, at time intervals greater than or equal to a time interval threshold.
- the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im are generated based on a plurality of interrupts output from a plurality of interrupt sources (not illustrated in FIG. 12 ).
- the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im are input to the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m , respectively.
- the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m are coupled to the first through (m)th processors, respectively.
- first through (m)th interrupt request signal holders 120 _ 1 through 120 — m output the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om to the first through (m)th processors, respectively, at time intervals greater than or equal to the time interval threshold.
- the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m receive the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im, respectively, the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m send respective output-request signals RS 1 through RSm to the interrupt request signal arbiter 140 .
- the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m receive respective output-acknowledge signals AS 1 through ASm from the interrupt request signal arbiter 140 , the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m output the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om to the first through (m)th processors, respectively.
- each of the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m may be implemented by a state machine having an idle-state, a wait-state, and an assert-state.
- a state machine having an idle-state, a wait-state, and an assert-state.
- the interrupt request signal arbiter 140 is configured to control time intervals between output of the first through (m)th interrupt request signals (e.g., a time interval between output of adjacent interrupt request signals) to be greater than or equal to a time interval threshold when the time intervals between the first through (m)th interrupt request signals are smaller than the time interval threshold.
- the time interval threshold may be a given, desired or predetermined time interval within a range in which in-rush currents are not caused in the first through (m)th processors when modes of the processors are continuously changed from an inactive state to an active state.
- the interrupt request signal arbiter 140 receives the output-request signals RS 1 through RSm from the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m , respectively. Then, the interrupt request signal arbiter 140 controls the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m to output the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om to the first through (m)th processors, respectively, at time intervals that are greater than or equal to the time interval threshold by outputting the output-acknowledge signals AS 1 through ASm to the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m , respectively, at time intervals that are greater than or equal to the time interval threshold.
- the interrupt request signal arbiter 140 may be implemented by a state machine having an idle-state and a wait-state. An example state machine implementation will be described in more detail below with regard to FIG. 14 .
- the interrupt request signal arbiter 140 may change an output order of the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om based on given, desired or predetermined priorities associated with the interrupt request signals nIRQ_O 1 through nIRQ_Om.
- an input order of the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im that are input to the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m may be different from an output order of the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om that are output from the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m.
- the interrupt request signal arbiter 140 may divide or group the first through (m)th processors into a first group including processors in an active state and a second group including processors in an inactive state.
- the interrupt request signal arbiter 140 may not control time intervals between interrupt request signals assigned to the first group to be the time interval threshold, but may control each time interval among interrupt request signals assigned to the second group to be greater than or equal to the time interval threshold.
- the interrupt request signal spreader circuit 100 may suppress and/or prevent modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state to an active state within a relatively small time period (sometimes referred to as a sudden wake-up) even when the interrupts are continuously generated by a plurality of interrupt sources within a relatively small time window.
- a SOC including the interrupt request signal spreader circuit 100 may achieve relatively high operational reliability by suppressing and/or preventing the in-rush currents due to a sudden wake-up of a plurality of processors (or a plurality of cores in a multi-core processor).
- FIG. 13 is a diagram illustrating an example state machine implementation of the interrupt request signal holder shown in FIG. 12 .
- One or more of the first through (m) th interrupt request signal holders 120 _ 1 through 120 — m may be implemented by a state machine such as that shown in FIG. 13 .
- example embodiments are not limited to this implementation.
- FIG. 13 will be described with regard to the (n)th interrupt request signal holder 120 — n and the (n)th interrupt request signal nIRQ_In.
- each of the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m may operate in the same or substantially the same manner.
- the state machine 200 includes an idle-state 220 , a wait-state 240 , and an assert-state 260 .
- the idle-state 220 indicates that the interrupt request signal holder 120 — n has not received the interrupt request signal nIRQ_In.
- the wait-state 240 indicates that the interrupt request signal holder 120 — n is waiting for the output-acknowledge signal ASn from the interrupt request signal arbiter 140 .
- the assert-state 260 indicates that the interrupt request signal holder 120 — n has output or is outputting the interrupt request signal nIRQ_Onto the (n) the processor 580 — n .
- the idle-state 220 corresponds to a default-state for the interrupt request signal holder 120 — n.
- the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m stay in the idle-state 220 until receiving the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im, respectively.
- the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m enter the wait-state 240 or the assert-state 260 .
- the interrupt request signal holder 120 — n when the interrupt request signal holder 120 — n receives an interrupt request signal nIRQ_In, the interrupt request signal holder 120 — n sends an output-request signal RSn to the interrupt request signal arbiter 140 . If the interrupt request signal arbiter 140 outputs an output-acknowledge signal ASn to the interrupt request signal holder 120 — n immediately, then the interrupt request signal holder 120 — n enters the assert-state 260 (RA). However, if the interrupt request signal arbiter 140 does not output an output-acknowledge signal ASn to the interrupt request signal holder 120 — n immediately, then the interrupt request signal holder 120 — n enters the wait-state 240 (RNA). In this case, the interrupt request signal arbiter 140 delays output of the output-acknowledge signal ASn to control a time interval between output of interrupt request signals (e.g., a time interval between output of adjacent interrupt request signals).
- a time interval between output of interrupt request signals
- the interrupt request signal holder 120 — n receives the output-acknowledge signal ASn from the interrupt request signal arbiter 140 while in the wait-state 240 .
- the interrupt request signal holder 120 — n enters the assert-state 260 (AR).
- each of the first through (m)th interrupt request signal holders 120 _ 1 through 120 — m may be implemented by a state machine having a relatively simple structure.
- FIG. 14 is a diagram illustrating an example state machine implementation of the interrupt request signal arbiter shown in FIG. 12 .
- the state machine 300 includes an idle-state 320 and a wait-state 340 .
- the idle-state 320 indicates that none of the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om is being output to the first through (m) th processors.
- the wait-state 340 indicates that at least one of the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om is being output to the first through (m) th processors.
- the idle-state 320 corresponds to a default-state for the interrupt request signal arbiter 140 .
- the interrupt request signal arbiter 140 may remain in the idle-state 320 until receiving any of the output-request signals RS 1 through RSm from the first through (m) th interrupt request signal holders 120 _ 1 through 120 — m .
- the interrupt request signal arbiter 140 enters the wait-state 340 (REQ), and immediately outputs an output-acknowledge signal ASn to the interrupt request signal holder 120 — n .
- the interrupt request signal arbiter 140 remains in the wait-state 340 during a given, desired or predetermined time interval (e.g., the time interval threshold).
- the interrupt request signal arbiter 140 returns to the idle-state 320 (EXP).
- the interrupt request signal arbiter 140 does not output other output-acknowledge signals to other interrupt request signal holders even when other interrupt request signal holders send their output-request signals to the interrupt request signal arbiter 140 .
- the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om are output to the first through (m)th processors, respectively, at time intervals that are greater than or equal to the time interval threshold.
- the interrupt request signal arbiter 140 may be implemented by a state machine having a relatively simple structure.
- FIG. 15 is a timing diagram illustrating example operation of the interrupt request signal spreader circuit of FIG. 12 .
- the interrupt request signal arbiter 140 when an (i)th interrupt request signal nIRQ_Ii is input to the (i)th interrupt request signal holder 120 — i in the interrupt request signal spreader circuit 100 , the (i)th interrupt request signal holder 120 — i outputs an output-request signal RSi REQ to the interrupt request signal arbiter 140 . Because the interrupt request signal arbiter 140 is in an idle-state IDLE (no previous interrupt request signal exists), the interrupt request signal arbiter 140 outputs an output-acknowledge signal ASi ACK to the (i)th interrupt request signal holder 120 — i immediately.
- the (i)th interrupt request signal holder 120 — i transitions from the idle-state IDLE to an assert-state ASSERT, and the interrupt request signal arbiter 140 transitions from the idle-state IDLE to a wait-state WAIT.
- the (i)th interrupt request signal nIRQ_Oi is output to the (i)th processor.
- the interrupt request signal spreader circuit 140 While the interrupt request signal spreader circuit 140 is in the wait-state WAIT, if the (j)th interrupt request signal holder 120 — j outputs an output request signal RSj REQ to the interrupt request signal arbiter 140 in response to receiving a (j)th interrupt request signal nIRQ_Ij, then the interrupt request signal arbiter 140 does not output an output-acknowledge signal ASj ACK to the (j)th interrupt request signal holder 120 j .
- the time period during which the interrupt request signal arbiter 140 stays in the wait-state WAIT may be determined by considering various conditions such as physical characteristics, etc., and may be adjusted by a circuit such as a counter, etc.
- the (j)th interrupt request signal holder 120 j may transition from the idle-state IDLE to a wait-state WAIT, rather than an assert-state ASSERT.
- the interrupt request signal arbiter 140 After the interrupt request signal arbiter 140 enters the idle-state IDLE from a wait-state WAIT, when a time interval between the (i)th interrupt request signal nIRQ_Oi and the (j)th interrupt request signal nIRQ_Oj becomes at least the same or substantially the same as the time interval threshold, the interrupt request signal arbiter 140 outputs an output-acknowledge signal ASj ACK to the (j)th interrupt request signal holder 120 j .
- the (j)th interrupt request signal holder 120 j transitions from the wait-state WAIT to the assert-state ASSERT, and outputs the (j)th interrupt request signal nIRQ_Oj to the (j)th processor.
- the (i)th interrupt request signal nIRQ_Oi and the (j) th interrupt request signal nIRQ_Oj may be output to the (i)th processor and the (j)th processor, respectively, at a time interval that is greater than or equal to the time interval threshold.
- the interrupt request signal spreader circuit 100 may suppress and/or prevent modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state to an active state within a relatively small time period (sometimes referred to as a sudden wake-up) even when the interrupts are continuously generated by a plurality of interrupt sources within a relatively small time period.
- a relatively small time period sometimes referred to as a sudden wake-up
- FIG. 16 is a block diagram illustrating an example software implementation of an interrupt request signal spreader circuit according to an example embodiment.
- the interrupt request signal spreader circuit shown in FIG. 16 may serve as the interrupt request signal spreader circuit 560 shown in FIG. 1 .
- the interrupt request signal spreader circuit includes a plurality of level detectors LD 1 , LD 2 , LD 3 , . . . , LDm.
- m is an integer greater than or equal to 2.
- the plurality of level detectors LD 1 through LDm detect changes in respective ones of the plurality of interrupt request signals nIRQ_I 1 through nIRQ_Im in order to identify/detect new interrupts (and/or interrupt requests) for the main processor.
- the microcontroller interrupt controller 1302 notifies the microcontroller 1308 via a bus 1306 .
- the microcontroller 1308 controls output of the new interrupt requests (e.g., new interrupt requests from among the interrupt request signals nIRQ_I 1 through nIRQ_Im) such that the time intervals between the output of the interrupt request signals (e.g., ones of the nIRQ_O 1 through nIRQ_Om corresponding to the new interrupt requests) is greater than or equal to the time interval threshold.
- the microcontroller 1308 may delay the new interrupt request for a given or desired time period (e.g., by storing the interrupt request in random access memory (RAM) 1310 ), and then output the interrupt request signal through the general purpose I/O circuit 1304 .
- RAM random access memory
- the RAM 1310 and/or the read only memory (ROM) 1312 shown in FIG. 16 are configured to store interrupt requests during the above-discussed delay, and/or store an indication as to the action to be taken in response to the detected interrupt signal.
- the microcontroller 1308 updates the physical signals on the interrupt output lines nIRQ_O 1 through nIRQ_Om via the general purpose I/O circuit 1304 .
- the microcontroller 1308 communicates with the general purpose I/O circuit 1304 via the bus 1306 . Because general purpose I/O circuits such as that shown in FIG. 16 are well-known, a detailed discussion is omitted.
- the signals are output to, for example, processors 580 _ 1 through 580 — m in the same or substantially the same manner as discussed above with regard to at least some other example embodiments.
- FIG. 16 is separate from the interrupt controller 540 shown in FIG. 1 .
- FIG. 17 is a diagram illustrating example operation of an interrupt request signal spreader circuit for the SOC of FIG. 1 .
- FIG. 17 shows an example in which the first through (m)th interrupt request signal holders 562 _ 1 through 562 — m of the interrupt request signal spreader circuit 560 are controlled by an interrupt request signal arbiter (not illustrated) of the interrupt request signal spreader circuit 560 in the SOC 500 .
- the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im may be output to the first through (m)th processors 580 _ 1 through 580 — m as the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om, respectively, at time intervals corresponding to the time interval threshold PS.
- m is 4.
- the interrupt controller 540 when the first through (n)th interrupt sources 520 _ 1 through 520 — n output the first through (n)th interrupts INT_R 1 through INT_Rn, the interrupt controller 540 generates the first through fourth interrupt request signals nIRQ_I 1 through nIRQ_I 4 based on the first through (n)th interrupts INT_R 1 through INT_Rn. As illustrated in FIG.
- the first interrupt request signal nIRQ_I 1 , the third interrupt request signal nIRQ_I 3 , the second interrupt request signal nIRQ_I 2 , and the fourth interrupt request signal nIRQ_I 4 are sequentially received by the first request signal holder 562 _ 1 , the third interrupt request signal holder 562 _ 3 , the second interrupt request signal holder 562 _ 2 and the fourth interrupt request signal holder 562 _ 4 , respectively.
- the first interrupt request signal holder 562 _ 1 outputs the first interrupt request signal nIRQ_O 1 to the first processor 580 _ 1 immediately because no previous interrupt request signal prior to the first interrupt request signal nIRQ_I 1 exists.
- the third interrupt request signal holder 562 _ 3 delays the output of the third interrupt request signal nIRQ_I 3 by a time period DL 1 because a time interval between the first interrupt request signal nIRQ_I 1 and the third interrupt request signal nIRQ_I 3 is smaller than the time interval threshold PS.
- the third interrupt request signal holder 562 _ 3 then outputs the third interrupt request signal nIRQ_O 3 to the third processor 580 _ 3
- the second interrupt request signal holder 562 _ 2 delays output of the second interrupt request signal nIRQ_I 2 by a time period DL 2 , and then outputs the second interrupt request signal nIRQ_O 2 to the second processor 580 _ 2 .
- the fourth interrupt request signal holder 562 _ 4 delays output of the fourth interrupt request signal nIRQ_I 4 by a time period DL 3 , and then outputs the fourth interrupt request signal nIRQ_O 4 to the fourth processor 580 _ 4 .
- in-rush currents due to a sudden wake-up of the first through fourth processors 580 _ 1 through 580 _ 4 may be suppressed and/or prevented because the first through fourth processors 580 _ 1 through 580 _ 4 receive the first through fourth interrupt request signals nIRQ_O 1 through nIRQ_O 4 , respectively, at a time interval corresponding to at least the time interval threshold PS.
- FIG. 18 is a diagram illustrating another example operation of an interrupt request signal spreader circuit for the SOC of FIG. 1 .
- FIG. 18 shows an example in which the first through (m)th interrupt request signal holders 562 _ 1 through 562 — m of the interrupt request signal spreader circuit 560 are controlled by an interrupt request signal arbiter (not illustrated in FIG. 18 ) of the interrupt request signal spreader circuit 560 in the system-on-chip 500 .
- the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im are output to the first through (m)th processors 580 _ 1 through 580 — m as the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om, respectively, at time intervals that are greater than or equal to the time interval threshold PS.
- m is 4.
- the interrupt controller 540 when the first through (n)th interrupt sources 520 _ 1 through 520 — n output the first through (n)th interrupts INT_R 1 through INT_Rn, the interrupt controller 540 generates the first through fourth interrupt request signals nIRQ_I 1 through nIRQ_I 4 based on the first through (n)th interrupts INT_R 1 through INT_Rn. As illustrated in FIG.
- the first interrupt request signal nIRQ_I 1 , the second interrupt request signal nIRQ_I 2 , the fourth interrupt request signal nIRQ_I 4 , and the third interrupt request signal nIRQ_I 3 are sequentially received by the first interrupt request signal holder 562 _ 1 , the second interrupt request signal holder 562 _ 2 , the fourth interrupt request signal holder 562 _ 4 , and the third interrupt request signal holder 562 _ 3 , respectively.
- the first interrupt request signal holder 562 _ 1 outputs the first interrupt request signal nIRQ_O 1 to the first processor 580 _ 1 immediately because no previous interrupt request signal prior to the first interrupt request signal nIRQ_I 1 exists.
- the second interrupt request signal holder 562 _ 2 also outputs the second interrupt request signal nIRQ_O 2 to the second processor 580 _ 2 immediately because a time interval S 1 between the first interrupt request signal nIRQ_I 1 and the second interrupt request signal nIRQ_I 2 is greater than the time interval threshold PS.
- the fourth interrupt request signal holder 562 _ 4 delays output for the fourth interrupt request signal nIRQ_O 4 by a time period DL 1 because a time interval between the second interrupt request signal nIRQ_I 2 and the fourth interrupt request signal nIRQ_I 4 is smaller than the time interval threshold PS.
- the fourth interrupt request signal holder 562 _ 4 then outputs the fourth interrupt request signal nIRQ_O 4 to the fourth processor 580 _ 4 .
- the third interrupt request signal holder 562 _ 3 delays output of the third interrupt request signal nIRQ_O 3 by a time period DL 2 after the second interrupt request signal nIRQ_O 3 is output, and then outputs the third interrupt request signal nIRQ_O 3 to the third processor 580 _ 3 .
- in-rush currents due to a sudden wake-up of the first through fourth processors 580 _ 1 through 580 _ 4 may be suppressed and/or prevented because the first through fourth processors 580 _ 1 through 580 _ 4 receive the first through fourth interrupt request signals nIRQ_O 1 through nIRQ_O 4 , respectively, at a time interval that is greater than or equal to the time interval threshold PS.
- FIG. 19 is a diagram illustrating still another example operation of an interrupt request signal spreader circuit for the SOC of FIG. 1 .
- FIG. 19 shows an example in which the first through (m)th interrupt request signal holders 562 _ 1 through 562 — m of the interrupt request signal spreader circuit 560 are controlled by an interrupt request signal arbiter (not illustrated in FIG. 19 ) of the interrupt request signal spreader circuit 560 in the SOC 500 .
- the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im are output to the first through (m)th processors 580 _ 1 through 580 — m as the first through (m)th interrupt request signals nIRQ_O 1 through nIRQ_Om, respectively, at time intervals corresponding to the time interval threshold PS.
- m is 4.
- the interrupt controller 540 When the first through (n)th interrupt sources 520 _ 1 through 520 — n output the first through (n)th interrupts INT_R 1 through INT_Rn, the interrupt controller 540 generates the first through fourth interrupt request signals nIRQ_I 1 through nIRQ_I 4 based on the first through (n)th interrupts INT_R 1 through INT_Rn. As illustrated in FIG. 19 , the first interrupt request signal nIRQ_I 1 and the second interrupt request signal nIRQ_I 2 are simultaneously or concurrently received by the first interrupt request signal holder 562 _ 1 and the second interrupt request signal holder 562 _ 2 , respectively.
- the fourth interrupt request signal nIRQ_I 4 and the third interrupt request signal nIRQ_I 3 are sequentially received by the fourth interrupt request signal holder 562 _ 4 and the third interrupt request signal holders 562 _ 3 , respectively.
- a priority of the first interrupt request signal nIRQ_I 1 is higher than a priority of the second interrupt request signal nIRQ_I 2 .
- the first interrupt request signal holder 562 _ 1 outputs the first interrupt request signal nIRQ_O 1 to the first processor 580 _ 1 immediately.
- the second interrupt request signal holder 562 _ 2 delays output of the second interrupt request signal nIRQ_I 2 by a time period DL 1 (e.g., by the time interval threshold PS), and then outputs the second interrupt request signal nIRQ_O 2 to the second processor 580 _ 2 .
- the fourth interrupt request signal nIRQ_O 4 and the third interrupt request signal nIRQ_O 3 are output to the fourth processor 580 _ 4 and the third processor 580 _ 3 , respectively, regardless or independent of the input order of the fourth interrupt request signal nIRQ_I 4 and the third interrupt request signal nIRQ_I 3 .
- a priority of the third interrupt request signal nIRQ_I 3 is higher than a priority of the fourth interrupt request signal nIRQ_I 4 .
- the third interrupt request signal holder 562 _ 3 delays output of the third interrupt request signal nIRQ_O 3 by a time period DL 2 , and then outputs the third interrupt request signal nIRQ_O 3 to the third processor 580 _ 3 .
- the fourth interrupt request signal holder 562 _ 4 delays output of the fourth interrupt request signal nIRQ_O 4 by a time period DL 3 , and then outputs the fourth interrupt request signal nIRQ_O 4 to the fourth processor 580 _ 4 .
- in-rush currents due to a sudden wake-up of the first through fourth processors 580 _ 1 through 580 _ 4 may be suppressed and/or prevented because the first through fourth processors 580 _ 1 through 580 _ 4 receive the first through fourth interrupt request signals nIRQ_O 1 through nIRQ_O 4 , respectively, at time intervals corresponding to the time interval threshold PS.
- FIG. 20 is a block diagram illustrating a multi-core system according to example embodiments
- FIG. 21 is a diagram illustrating an example in which a multi-core system of FIG. 20 is implemented as a smart phone.
- the multi-core system 600 includes first through (n) th interrupt sources 610 _ 1 through 610 — n , an interrupt controller 620 , an interrupt request signal spreader circuit 630 , a multi-core processor 640 , a bus interface 645 , a random access memory (RAM) device 650 , a read only memory (ROM) device 660 , a storage device 670 , a system bus 680 , etc.
- the multi-core processor 640 includes first through (m)th cores P 1 through Pm.
- the multi-processor may be referred to as a dual-core processor if m is 2, may be referred to as a quad-core processor if m is 4, etc.
- the multi-core system 600 may be implemented as a smart-phone 700 .
- the multi-core system 600 is not limited thereto.
- the multi-core system 600 may be implemented as an electric device such as a smart-television, a smart-pad, a cellular phone, etc.
- the multi-core system 600 corresponds to a system that includes a multi-core processor having a plurality of cores, or a system that includes a plurality of processors, each having one or more cores.
- the first through (n)th interrupt sources 610 _ 1 through 610 — n may generate and output first through (n)th interrupts INT_R 1 through INT_Rn, respectively.
- the first through (n)th interrupt sources 610 _ 1 through 610 — n may correspond to components of a system-on-chip (SOC) such as a video module, a sound module, a display module, a memory module, a communication module, a camera module, etc. That is, for example, the first through (n)th interrupt sources 610 _ 1 through 610 — n may be intellectual property (IP) blocks that perform specific operations for the multi-core system 600 .
- IP intellectual property
- the interrupt controller 620 generates first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im based on the first through (n)th interrupts INT_R 1 through INT_Rn output from the first through (n)th interrupt sources 610 _ 1 through 610 — n .
- the interrupt request signal spreader circuit 630 controls time intervals between the first through (m)th interrupt request signals nIRQ_I 1 through nIRQ_Im (e.g., a time interval between adjacent interrupt request signals) output from the interrupt controller 620 to be greater than or equal to the time interval threshold.
- the interrupt request signal spreader circuit 630 includes first through (m)th interrupt request signal holders, and an interrupt request signal arbiter for controlling the first through (m)th interrupt request signal holders. Because the interrupt request signal spreader circuit 630 is described in detail above, a duplicate description is omitted below.
- the multi-core processor 640 is coupled to other components via a system bus 680 using a bus interface 645 .
- the multi-core processor 640 is configured to communicate with the intellectual property (IP) blocks 610 _ 1 through 610 — n , the RAM device 650 , the ROM device 660 , the storage device 670 , etc., via a system bus 680 such as an address bus, a control bus, a data bus, etc.
- the storage device 670 may include a hard disk drive (HDD), a solid state drive (SSD), a redundant array of independent disk (RAID), etc.
- the multi-core processor 640 may be coupled to an extended bus such as peripheral component interconnect (PCI) bus.
- PCI peripheral component interconnect
- the multi-core system 600 may further include at least one non-volatile memory device and/or at least one volatile memory device.
- the non-volatile memory device may correspond to an erasable programmable read-only memory (EPROM) device, an electrically erasable programmable read-only memory (EEPROM) device, a flash memory device, a phase change random access memory (PRAM) device, a resistance random access memory (RRAM) device, a nano floating gate memory (NFGM) device, a polymer random access memory (PoRAM) device, a magnetic random access memory (MRAM) device, a ferroelectric random access memory (FRAM) device, etc.
- the volatile memory device may correspond to a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, a mobile DRAM device, etc.
- DRAM dynamic random access memory
- SRAM static random access memory
- the multi-core system 600 includes a system bus path for transferring (receiving and transmitting) data and an interrupt path for handling interrupts output from the intellectual property (IP) blocks 610 _ 1 through 610 — n .
- the multi-core processor 640 may perform specific operations for the intellectual property (IP) blocks 610 _ 1 through 610 — n based on the system bus path.
- the multi-core processor 640 may perform interrupt handling operations for the intellectual property (IP) blocks 610 _ 1 through 610 — n based on the interrupt path.
- the multi-core system 600 may be implemented by various packages such as Package on Package (PoP), Ball grid arrays (BGAs), Chip scale packages (CSPs), Plastic Leaded Chip Carrier (PLCC), Plastic Dual In-Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flat-Pack (TQFP), Small Outline Integrated Circuit (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline Package (TSOP), Thin Quad Flat-Pack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP), Wafer-Level Processed Stack Package (WSP).
- PoP Package on Package
- BGAs Ball grid arrays
- CSPs Chip scale packages
- PLCC Plastic Leaded Chip Carrier
- PDIP Plastic Dual In-Line Package
- COB Chip On Board
- CERDIP Ceramic Dual In-Line
- Example embodiments may be applied to electric devices including a plurality of processors (or a multi-core processor). For example, at least some example embodiments may be applied to electric devices such as cellular phones, smart phones, computers, laptops, workstations, smart-pads, security systems, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Bus Control (AREA)
- Microcomputers (AREA)
- Power Sources (AREA)
Abstract
Description
- This application claims priority under 35 USC §119 to Korean Patent Application No. 10-2012-0008822, filed on Jan. 30, 2012 in the Korean Intellectual Property Office (KIPO), the contents of which are incorporated herein in their entirety by reference.
- 1. Technical Field
- Example embodiments relate generally to multi-processor and/or multi-core systems, for example, methods of spreading a plurality of interrupts, interrupt request signal spreader circuit circuits, and systems-on-chips (SOCs) having the same.
- 2. Description of the Related Art
- A conventional electric device includes an interrupt controller for interrupt handling operations. When a plurality of interrupt sources generate a plurality of interrupts, the interrupt controller may set priorities for the interrupts, and provide interrupt request signals to processors. The interrupt request signals are generated based on the interrupts.
- Recently, a system-on-chip (SOC) has been more widely used in electric devices as electric devices become smaller and lighter. Here, SOCs may include a plurality of intellectual property (IP) blocks and a plurality of processors (or a processor having a plurality of cores).
- In a SOC, processors frequently enter a low-power mode to reduce power consumption. The processors wake-up from the low-power mode in response to receiving respective interrupt request signals. As described above, interrupt request signals are generated based on the interrupts generated by a plurality of interrupt sources. However, if the processors substantially wake-up from the low-power mode at the same or substantially the same time (e.g., sometimes referred to as a sudden wake-up), then in-rush currents may result in the processors.
- One or more example embodiments provide methods of spreading a plurality of interrupt request signals capable of suppressing and/or preventing modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state (e.g., a power-down state, a power-off state, etc.) to an active state (e.g., a power-on state, etc.) within a relatively small time period even when a plurality of interrupts are continuously generated by a plurality of interrupt sources within a relatively small time period.
- One or more other example embodiments provide interrupt request signal spreader circuits capable of suppressing and/or preventing modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state (e.g., a power-down state, a power-off state, etc.) to an active state (e.g., a power-on state, etc.) within a relatively small time period even when a plurality of interrupts are continuously generated by a plurality of interrupt sources within a relatively small time period.
- Example embodiments also provide systems-on-chips having interrupt request signal spreader circuits.
- By controlling time intervals between output of interrupt request signals (e.g., time intervals between output of adjacent interrupt request signals) to be greater than or equal to a time interval threshold, where the interrupt request signals are generated based on a plurality of interrupts, methods of spreading a plurality of interrupt request signals according to example embodiments may suppress and/or prevent modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state (e.g., a power-down state, a power-off state, etc.) to an active state (e.g., a power-on state, etc.) within a relatively small time period even when the interrupts are continuously generated by a plurality of interrupt sources within a relatively small time period. As a result, in-rush currents in the processors may be suppressed and/or prevented.
- In addition, by controlling time intervals between a plurality of interrupt request signals (e.g., time intervals between adjacent interrupt request signals) to be greater than or equal to a time interval threshold, wherein the interrupt request signals are generated based on a plurality of interrupts, an interrupt request signal spreader circuit according to one or more example embodiments may suppress and/or prevent modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state (e.g., a power-down state, a power-off state, etc.) to an active state (e.g., a power-on state, etc.) within a relatively small time period even when the interrupts are continuously generated by a plurality of interrupt sources within a relatively small time period. As a result, in-rush currents in the processors may be suppressed and/or prevented.
- Systems-on-chips according to example embodiments may include an interrupt request signal spreader circuit. Hence, systems-on-chips may achieve relatively high operational reliability by suppressing and/or preventing modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state (e.g., a power-down state, a power-off state, etc.) to an active state (e.g., a power-on state, etc.) within a relatively small time period.
- At least one example embodiment provides a method of power control for a system-on-chip. According to at least this example embodiment, the method includes: controlling output of at least one of a first wakeup request signal and a second wakeup request signal such that a time interval between the output of the first wakeup request signal and the output of the second wakeup request signal is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- At least one other example embodiment provides a method of power control for a system-on-chip. According to at least this example embodiment, the method includes: comparing a first priority of a first wakeup request signal with a second priority of a second wakeup request signal; and controlling output of at least one of the first wakeup request signal and the second wakeup request signal based on the comparison between the first priority and the second priority such that a time difference between the output of the first wakeup request signal and the output of the second wakeup request signal is greater than or equal to a time interval threshold.
- At least one other example embodiment provides a method of power control for a system-on-chip. According to at least this example embodiment, the method includes: controlling output of at least one of a first wakeup request signal to a first processor in an inactive state and a second wakeup request signal to a second processor in the inactive state such that a time interval between the output of the first wakeup request signal to the first processor and the output of the second wakeup request signal to the second processor is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- At least one other example embodiment provides a method of power control for a system-on-chip. According to at least this example embodiment, the method includes: comparing a first priority of a first wakeup request signal with a second priority of a second wakeup request signal, each of the first wakeup request signal and the second wakeup request signal being associated with a function block in an inactive state; and controlling output of at least one of the first wakeup request signal and the second wakeup request signal based on the comparison between the first priority and the second priority such that a time difference between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold.
- At least one other example embodiment provides a system-on-chip including: wakeup request signal spreading circuit configured to control an output of at least one of a first wakeup request signal to a first function block and a second wakeup request signal to a second function block such that a time interval between output of the first wakeup request signal to the first function block and output of the second wakeup request signal to the second function block is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- At least one other example embodiment provides a system-on-chip including: a wakeup request signal spreading circuit configured to compare a first priority of a first wakeup request signal with a second priority of a second wakeup request signal, the wakeup request signal spreading circuit being further configured to control output of at least one of the first wakeup request signal and the second wakeup request signal based on the comparison between the first priority and the second priority such that a time difference between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold.
- At least one other example embodiment provides a system-on-chip including: a wakeup request signal spreading circuit configured to control output of at least one of a first wakeup request signal to a first function block in an inactive state and a second wakeup request signal to a second function block in an inactive state such that a time interval between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- At least one other example embodiment provides a system-on-chip including: a wakeup request signal spreading circuit configured to compare a first priority of a first wakeup request signal with a second priority of a second wakeup request signal, each of the first wakeup request signal and the second wakeup request signal being associated with a function block in an inactive state, the wakeup request signal spreading circuit being further configured to control output of at least one of the first wakeup request signal and the second wakeup request signal based on the comparison between the first priority and the second priority such that a time difference between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold.
- At least one other example embodiment provides a system-on-chip including: a plurality of wakeup request signal sources configured to generate at least first and second wakeup signals; a wakeup signal controller configured to generate at least a first and a second wakeup request signal based on the first and second wakeup signals; a plurality of processors configured to transition from an inactive state to an active state based on the first and second wakeup request signals; and a wakeup request signal spreading circuit configured to control an output of at least one of the first wakeup request signal to a first of the plurality of processors and the second wakeup request signal to a second of the plurality of processors such that a time interval between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals.
- At least one other example embodiment provides a multi-core system comprising: a plurality of wakeup signal sources configured to generate at least first and second wakeup signals; a wakeup signal controller configured to generate at least first and second wakeup request signals based on the first and second wakeup signals; a multicore processor including at least a first core and a second core, the first core being configured to receive the first wakeup request signal, and the second core being configured to receive the second wakeup request signal; a wakeup request signal spreading circuit configured to control an output of at least one of the first wakeup request signal to the first core and the second wakeup request signal to the second core such that a time interval between output of the first wakeup request signal and output of the second wakeup request signal is greater than or equal to a time interval threshold, the first wakeup request signal and the second wakeup request signal being one of concurrent and consecutive wakeup request signals; and at least one memory device configured to interface with the plurality of wakeup signal sources and the multi-core processor via a system bus.
- Illustrative, non-limiting example embodiments will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings.
-
FIG. 1 is a block diagram illustrating a system-on-chip according to an example embodiment. -
FIG. 2 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to an example embodiment. -
FIGS. 3A and 3B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method ofFIG. 2 . -
FIGS. 4A and 4B are diagrams illustrating another example in which a plurality of interrupt request signals are spread according to the method ofFIG. 2 . -
FIGS. 5A and 5B are diagrams illustrating still another example in which a plurality of interrupt request signals are spread according to the method ofFIG. 2 . -
FIG. 6 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to another example embodiment. -
FIGS. 7A and 7B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method ofFIG. 6 . -
FIG. 8 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to another example embodiment. -
FIGS. 9A and 9B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method ofFIG. 8 . -
FIG. 10 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to another example embodiment. -
FIG. 11 is a diagram illustrating a plurality of processors in an active state and a plurality of processors in an inactive state. -
FIG. 12 is a block diagram illustrating an interrupt request signal spreader circuit according to an example embodiment. -
FIG. 13 is a diagram illustrating a state machine implementation of the interrupt request signal holder shown inFIG. 12 . -
FIG. 14 is a diagram illustrating a state machine implementation of the interrupt request signal arbiter shown inFIG. 12 . -
FIG. 15 is a timing diagram illustrating example operation of the interrupt request signal spreader circuit ofFIG. 12 . -
FIG. 16 is a block diagram illustrating an interrupt request signal spreader circuit according to another example embodiment. -
FIG. 17 is a diagram illustrating example operation of the interrupt request signal spreader circuit shown inFIG. 1 . -
FIG. 18 is a diagram illustrating another example operation of the interrupt request signal spreader circuit shown inFIG. 1 . -
FIG. 19 is a diagram illustrating still another example operation of the interrupt request signal spreader circuit shown inFIG. 1 . -
FIG. 20 is a block diagram illustrating a multi-core system according to an example embodiment. -
FIG. 21 is a diagram illustrating an example in which a multi-core system ofFIG. 20 is implemented as a smart phone. - Various example embodiments will be described more fully hereinafter with reference to the accompanying drawings, in which some example embodiments are shown. Inventive concepts may, however, be embodied in many different forms and should not be construed as limited to the example embodiments set forth herein. Rather, these example embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of inventive concepts to those skilled in the art. In the drawings, the sizes and relative sizes of layers and regions may be exaggerated for clarity. Like numerals refer to like elements throughout.
- It will be understood that, although the terms first, second, third etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are used to distinguish one element from another. Thus, a first element discussed below could be termed a second element without departing from the teachings of inventive concepts. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
- It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. In contrast, when an element is referred to as being “directly connected” or “directly coupled” to another element, there are no intervening elements present. Other words used to describe the relationship between elements should be interpreted in a like fashion (e.g., “between” versus “directly between,” “adjacent” versus “directly adjacent,” etc.).
- The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of inventive concepts. As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
- Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which inventive concepts belong. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
-
FIG. 1 is a block diagram illustrating a system-on-chip according to an example embodiment. - Referring to
FIG. 1 , the system-on-chip 500 includes first through (n)th interrupt sources 520_1 through 520 — n, an interruptcontroller 540, an interrupt requestsignal spreader circuit 560, and first through (m)th processors 580_1 through 580 — m. As discussed herein, the interrupt requestsignal spreader circuit 560 may be referred to as a wakeup request signal spreading circuit and/or an interrupt request signal spreading circuit. An interrupt request signal may be referred to as a wakeup request signal. Similarly, the interruptcontroller 540 may be referred to as a wakeup signal controller and an interrupt may be referred to as a wakeup signal. - In at least some example embodiments, the number of interrupt sources 520_1 through 520 — n may be greater than the number of processors 580_1 through 580 — m. In other example embodiments, however, the number of interrupt sources 520_1 through 520 — n may be less than or equal to the number of processors 580_1 through 580 — m. In addition, the first through (m)th processors 580_1 through 580 — m may correspond to separate processors or a plurality of cores of a multi-processor. In one example, the multi-processor may be referred to as a dual-core processor if m is 2, may be referred to as a quad-core processor if m is 4, etc.
- The first through (n)th interrupt sources 520_1 through 520 — n generate first through (n)th interrupts INT_R1 through INT_Rn, respectively. In this example, the first through (n)th interrupt sources 520_1 through 520 — n are intellectual property (IP) blocks that perform specific operations in the multi-processor system (or the multi-core system). The first through (n)th interrupt sources 520_1 through 520 — n may correspond to components of a system-on-chip (SOC) such as a video module, a sound module, a display module, a memory module, a communication module, a camera module, etc.
- Still referring to
FIG. 1 , the interruptcontroller 540 generates first through (m) th interrupt request signals nIRQ_I1 through nIRQ_Im based on the first through (n)th interrupts INT_R1 through INT_Rn from the first through (n)th interrupt sources 520_1 through 520 — n, respectively. - The interrupt request
signal spreader circuit 560 outputs first through (m) th interrupt request signals nIRQ_O1 through nIRQ_Om to the first through (m)th processors 580_1 through 580 — m, respectively, based on the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im and at time intervals that are greater than or equal to a time interval threshold. According to at least some example embodiments, the time interval threshold may be a given, desired or predetermined time interval determined according to empirical data or set by a user or design engineer. In at least one example embodiment, the time interval threshold may be a time interval in a range in which the in-rush currents are not generated in the processors when modes of the processors are changed (e.g., continuously changed) from an inactive state to an active state. - Still referring to
FIG. 1 , the first through (m)th processors 580_1 through 580 — m perform interrupt handling operations for the first through (n)th interrupt sources 520_1 through 520 — n in response to the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om, respectively. - As mentioned above, the interrupt
controller 540 generates the first through (m) th interrupt request signals nIRQ_I1 through nIRQ_Im based on the first through (n)th interrupts INT_R1 through INT_Rn generated by the first through (n)th interrupt sources 520_1 through 520 — n. In at least one example embodiment, the interruptcontroller 540 receives the first through (n)th interrupts INT_R1 through INT_Rn from the first through (n)th interrupt sources 520_1 through 520 — n, and assigns the first through (n)th interrupts INT_R1 through INT_Rn to the first through (m)th processors 580_1 through 580 — m. If the number of the first through (m)th processors 580_1 through 580 — m is smaller than the number of the first through (n)th interrupt sources 520_1 through 520 — m, then the interruptcontroller 540 may assign the first through (n)th interrupts INT_R1 through INT_Rn to the first through (m) th processors 580_1 through 580 — m by timely and/or spatially distributing the first through (n) th interrupts INT_R1 through INT_Rn. - The interrupt request
signal spreader circuit 560 controls the time intervals between output of the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im (e.g., a time interval between output of adjacent interrupt request signals) input from the interruptcontroller 540 to be greater than or equal to the time interval threshold. In one example, the time interval threshold may be within a range in which in-rush currents are not generated in the first through (m)th processors 580_1 through 580 — m when modes of the first through (m)th processors 580_1 through 580 — m are changed (e.g., continuously changed) from an inactive state to an active state. - As will be discussed in more detail below with regard to
FIG. 12 , in at least one example embodiment the interrupt requestsignal spreader circuit 560 includes first through (m)th interrupt request signal holders and an interrupt request signal arbiter. In this example, the first through (m)th interrupt request signal holders receive the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im, and output the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om to the first through (m)th processors 580_1 through 580 — m, respectively, at time intervals that are greater than or equal to the time interval threshold. - If necessary, the interrupt request signal arbiter controls the time interval between output of each of the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im to be greater than or equal to the time interval threshold. For example, if a time interval between adjacent ones of the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im is smaller than the time interval threshold, then the interrupt request signal arbiter controls the time interval between output of the adjacent interrupt request signals such that the time interval is greater than or equal to the time interval threshold.
- As discussed herein, time intervals between (e.g., adjacent) interrupt request signals refers to time intervals between receipt of (e.g., adjacent) interrupt request signals at, for example, the interrupt request signal spreader circuit.
- In one example, the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im may be input to the first through (m)th interrupt request signal holders, respectively, and the first through (m)th interrupt request signal holders may be coupled to the first through (m)th processors 580_1 through 580 — m, respectively. In one example embodiment, the first through (m)th interrupt request signal holders and the interrupt request signal arbiter may operate in about one clock domain. A request/acknowledge handshaking operation may be performed between the first through (m)th interrupt request signal holders and the interrupt request signal arbiter.
- The interrupt request
signal spreader circuit 560 may control time intervals between output of the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im to be greater than or equal to the time interval threshold by delaying output of a (k+1)th interrupt request signal that follows a (k)th interrupt request signal (in this example, k is an integer greater than or equal to 1) until a (k)th time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal becomes at least the same or substantially the same as the time interval threshold (e.g., when the (k)th time interval is greater than 0). In addition, the interrupt requestsignal spreader circuit 560 may delay output of the (k)th interrupt request signal or output of the (k+1) interrupt request signal by the time interval threshold (e.g., when the (k)th time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is equal or substantially equal to 0). - According to at least some example embodiments, the interrupt request
signal spreader circuit 560 may change an output order for the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om based on given, desired or predetermined priorities associated with the interrupts and/or interrupt request signals, so that an output order for the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om is different from an input order for the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im. - In at least some example embodiments, the interrupt request
signal spreader circuit 560 may divide or group the first through (m)th processors 580_1 through 580 — m into a first group including processors in an active state and a second group including processors in an inactive state. Then, among the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im, the interrupt requestsignal spreader circuit 560 may not control time intervals between output of the interrupt request signals assigned to the first group to be at least the time interval threshold, but may control the time intervals between output of the interrupt request signals assigned to the second group to be at least the time interval threshold. By controlling time intervals between the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im, which are generated based on the first through (n)th interrupts INT_R1 through INT_Rn, to be greater than or equal to the time interval threshold, the system-on-chip 500 may suppress and/or prevent modes of the first through (m)th processors 580_1 through 580 — m from being changed (e.g., continuously changed) from an inactive state to an active state within a relatively small time window (sometimes referred to as a sudden wake-up) even when the interrupts are continuously generated by the interrupt sources 520_1 through 520 — n within a relatively small time window. As a result, the system-on-chip 500 may achieve relatively high operational reliability by suppressing and/or preventing in-rush currents due to a sudden wake-up of a plurality of processors (or, a plurality of cores in a multi-core processor). -
FIG. 2 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to an example embodiment. For clarity, the method shown inFIG. 2 will be described with regard to the SOC shown inFIG. 1 . However, it should be understood that example embodiments should not be limited to this implementation. - Referring to
FIG. 2 , at S120 the interrupt requestsignal spreader circuit 560 receives a plurality of interrupt request signals. At S140, the interrupt requestsignal spreader circuit 560 checks whether the time intervals between (e.g., receipt of) the interrupt request signals (e.g., time intervals between adjacent interrupt request signals) are smaller than a time interval threshold. - If a time interval between interrupt request signals is smaller than the time interval threshold, then the interrupt request
signal spreader circuit 560 controls the time interval between output of the interrupt request signals to be greater than or equal to the time interval threshold at S160. The interrupt requestsignal spreader circuit 560 then outputs the interrupt request signals to a plurality of processors, respectively, at S180. - Returning to S140, if a time interval between the interrupt request signals is greater than or equal to the time interval threshold, then the interrupt request
signal spreader circuit 560 maintains (e.g., does not adjust) the time interval between output of the interrupt request signals at S165. The interrupt requestsignal spreader circuit 560 then outputs the interrupt request signals to the plurality of processors, respectively, at S180. - According to at least some example embodiments, the processors may correspond to separate processors, or a plurality of cores in a multi-core processor (e.g., a dual-core processor, a quad-core processor, etc.). For convenience, the processors are described as being in an active state or an inactive state. However, it should be understood that the active state corresponds to a normal operation mode such as a power-on state, etc., and that the inactive state corresponds to a low-power mode such as a power-down state, a power-off state, etc. Hereinafter, the method shown in
FIG. 2 will be described in more detail with regard to the SOC shown inFIG. 1 . - Referring to
FIGS. 1 and 2 , as mentioned above the interrupt requestsignal spreader circuit 560 sequentially receives the interrupt request signals at S120. The interrupt request signals may be generated based on a plurality of interrupts output from a plurality of interrupt sources, and may be assigned to respective processors. In this example, the interrupt sources are intellectual property (IP) blocks that perform specific operations in the multi-core system (or the multi-processor system). The interrupt sources may correspond to components of a system-on-chip (SOC) such as a video module, a sound module, a display module, a memory module, a communication module, a camera module, etc. When the interrupts are generated by the interrupt sources, the interrupt request signals may be generated based on the interrupts, and then provided to respective processors. The processors may then perform interrupt handling operations in response to the interrupt request signals, respectively. Recently, SOCs have been more widely used for electric devices as electric devices become smaller and lighter. As described above, a SOC may include a plurality of IP blocks and a plurality of processors or a processor having a plurality of cores. In this example, the processors may more frequently enter a low-power mode to reduce power consumption, and may wake-up from the low-power mode in response to receiving respective interrupt request signals. When processors substantially wake-up from the low-power mode at the same or substantially the same time (sometimes referred to as a sudden wake-up), in-rush currents may be caused in the processors. The in-rush currents may cause electric devices having SOCs to malfunction. As sizes of SOCs become smaller, it is relatively difficult for the SOCs to achieve relatively high operational reliability because in-rush currents are also caused by dynamic current changes in the SOC. - Returning to
FIG. 2 , in response to receiving the interrupt request signals, the interrupt requestsignal spreader circuit 560 checks whether the time intervals between the interrupt request signals are smaller than the time interval threshold at S140. As mentioned above, in at least one example embodiment, the time interval threshold may be determined to be within a range in which the in-rush currents are not generated in the processors when modes of the processors are continuously changed from an inactive state to an active state. - If a time interval between interrupt request signals is smaller than the time interval threshold, then the interrupt request
signal spreader circuit 560 controls the time interval between output of the interrupt request signals to be at least equal to the time interval threshold at S160. - In more detail, at S160 the interrupt request
signal spreader circuit 560 controls the time interval to be at least equal to the time interval threshold by delaying output of a (k+1)th interrupt request signal that follows a (k)th interrupt request signal (where k is an integer greater than or equal to 1) until a (k)th time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal becomes at least the same or substantially the same as the time interval threshold when the (k)th time interval is greater than 0 (non-zero). In this example, the (k)th interrupt request signal and the (k+1)th interrupt request signal are adjacent (e.g., consecutive or sequentially input). - For example, two processors may sequentially wake-up within a relatively small time window (sometimes referred to as a sudden wake-up), and as a result, in-rush currents may be caused in two processors if the (k)th interrupt request signal and the (k+1)th interrupt request signal are output to the two processors without controlling the (k)th time interval when the (k)th time interval is smaller than the time interval threshold. Thus, the interrupt request
signal spreader circuit 560 controls the (k)th time interval between the (k) th interrupt request signal and the (k+1)th interrupt request signal to be the time interval threshold by delaying output of the (k+1)th interrupt request signal that follows the (k) th interrupt request signal. - In addition, the interrupt request
signal spreader circuit 560 delays output of the (k)th interrupt request signal or the (k+1) interrupt request signal by at least the time interval threshold when the (k)th time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is equal or substantially equal to 0 (the interrupt request signals are concurrently or simultaneously input). As a result, in-rush currents may be suppressed and/or prevented in two processors because the (k)th time interval is controlled to be at least the time interval threshold by using the method ofFIG. 2 when the (k)th interrupt request signal and the (k+1)th interrupt request signal are input at the same or substantially the same time. - According to at least some example embodiments, the interrupt request signal spreader circuit 506 may change an output order of the interrupt request signals based on given, desired or predetermined priorities associated with the interrupts and/or interrupt request signals when a time interval between the interrupt request signals is controlled to be greater than or equal to the time interval threshold.
- For example, assume that a (k)th interrupt request signal, a (k+1)th interrupt request signal, and a (k+2) interrupt request signal are sequentially input in that order. If a (k)th time interval between the (k)th interrupt request signal and the (k+1) interrupt request signal and a (k+1)th time interval between the (k+1)th interrupt request signal and the (k+2)th interrupt request signal are smaller than the time interval threshold, then the interrupt request
signal spreader circuit 560 controls the (k)th time interval to be greater than or equal to the time interval threshold by delaying output of the (k+1)th interrupt request signal that follows the (k)th interrupt request signal, and then controls the (k+1)th time interval to be greater than or equal to the time interval threshold by delaying output of the (k+2)th interrupt request signal that follows the (k+1)th interrupt request signal. However, in at least some example embodiments, the interrupt requestsignal spreader circuit 560 may change an output order of the (k)th interrupt request signal, the (k+1)th interrupt request signal, and the (k+2)th interrupt request signal based on given, desired or predetermined priorities of the interrupts. - For example, assume that the (k)th interrupt request signal, the (k+1)th interrupt request signal, and the (k+2) interrupt request signal are sequentially input, and that the (k) th interrupt request signal has the highest priority and the (k+1) interrupt request signal has the lowest priority. In this case, if a (k)th time interval between the (k)th interrupt request signal and the (k+1) interrupt request signal and a (k+1)th time interval between the (k+1)th interrupt request signal and the (k+2)th interrupt request signal are smaller than the time interval threshold, then the interrupt request
signal spreader circuit 560 sequentially outputs the (k)th interrupt request signal, the (k+2)th interrupt request signal, and the (k+1)th interrupt request signal in that order based on given, desired or predetermined priorities of the interrupts and/or interrupt request signals. - Generally, when a processor receives an interrupt request signal, a mode of the processor changes from an inactive state to an active state. Then, the processor performs interrupt handling operations (or interrupt services) in response to the interrupt request signal corresponding to an interrupt generated by an interrupt source. Here, in-rush currents may result because a plurality of transistors included in the processor suddenly operate. In particular, a low-power processor may include a plurality of clock gating circuits in order to reduce consumption power in an inactive state. Hence, most clocks do not toggle in an inactive state. When a mode of the processor is changed from an inactive state to an active state, in-rush currents may result because most clocks toggle concurrently or simultaneously. Further, in the case of a system-on-chip having a plurality of processors, when the processors wake-up from the low-power mode at the same or substantially the same time (sometimes referred to as a sudden wake-up), all in-rush currents caused in the processors are added so that the in-rush currents may cause an electric device having the SOC to malfunction.
- By controlling time intervals between output of a plurality of interrupt request signals to be greater than or equal to the time interval threshold, the method of
FIG. 2 may suppress and/or prevent modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state to an active state within a relatively small time even when the interrupts are continuously generated by a plurality of interrupt sources within a relatively small time window. As a result, a SOC employing the method ofFIG. 2 may achieve relatively high operational reliability by suppressing and/or preventing in-rush currents due to the sudden wake-up of a plurality of processors (or a plurality of cores in a multi-core processor). According to at least some example embodiments, the method ofFIG. 2 may be performed for a plurality of interrupt request signals input to a plurality of processors in an inactive state. - Returning to
FIG. 2 , the interrupt requestsignal spreader circuit 560 then outputs the interrupt request signals to a plurality of processors, respectively, at S180. - Returning to S140 in
FIG. 2 , if a time interval between the interrupt request signals is greater than the time interval threshold, then the interrupt requestsignal spreader circuit 560 maintains (does not adjust) that time interval between output the interrupt request signals at S165. The interrupt requestsignal spreader circuit 560 then outputs the interrupt request signals to a plurality of processors, respectively, at S180. - According to at least the example embodiment shown in
FIG. 2 , the interrupt requestsignal spreader circuit 560 outputs the interrupt request signals to the processors, respectively, by controlling a time interval between output of interrupt request signals to be at least equal to the time interval threshold if the time interval among the interrupt request signals is smaller than the time interval threshold. The interrupt requestsignal spreader circuit 560 outputs the interrupt request signals to the processors, respectively, without controlling (or adjusting) the time intervals if the time interval between the interrupt request signals is greater than or equal to the time interval threshold. As a result, the interrupt request signals may be provided to the processors, respectively, at a time interval that is greater than or equal to the time interval threshold. -
FIGS. 3A and 3B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method ofFIG. 2 .FIG. 3A shows an example in which first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially input, andFIG. 3B shows an example in which the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially output to first through fourth processors, respectively, according to the method ofFIG. 2 . - As illustrated in
FIG. 3A , a first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is smaller than a time interval threshold PS, a second time interval S2 between the second interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 is smaller than the time interval threshold PS, and a third time interval S3 between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 is also smaller than the time interval threshold PS. - As illustrated in
FIG. 3B , output of the second interrupt request signal nIRQ_2 is delayed such that the first time interval 51 is at least equal or substantially equal to the time interval threshold PS. In addition, output of the third interrupt request signal nIRQ_3 is delayed such that the second time interval S2 is at least equal or substantially equal to the time interval threshold PS. Further, output of the fourth interrupt request signal nIRQ_4 is delayed such that the third time interval S3 is at least equal or substantially equal to the time interval threshold PS. As described above, the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 may be sequentially output to the first through fourth processors, respectively, at time intervals corresponding to the time interval threshold PS. -
FIGS. 4A and 4B are diagrams illustrating another example in which a plurality of interrupt request signals are spread according to the method ofFIG. 2 .FIG. 4A shows an example in which first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially input, andFIG. 4B shows an example in which the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially output to first through fourth processors, respectively, according to the method ofFIG. 2 . - In more detail, as illustrated in
FIG. 4A , a first time interval 51 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is greater than a time interval threshold PS, a second time interval S2 between the second interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 is smaller than the time interval threshold PS, and a third time interval S3 between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 is also smaller than the time interval threshold PS. - As illustrated in
FIG. 4B , according to the method ofFIG. 2 , the first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is maintained and not adjusted, whereas output of the third interrupt request signal nIRQ_3 is delayed such that the second time interval S2 is greater than or equal to the time interval threshold PS, and output of the fourth interrupt request signal nIRQ_4 is delayed such that the third time interval S3 is greater than or equal to the time interval threshold PS. The first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are output sequentially to the first through fourth processors, respectively, at time intervals that are greater than or equal to the time interval threshold PS. -
FIGS. 5A and 5B are diagrams illustrating still another example in which a plurality of interrupt request signals are spread according to the method ofFIG. 2 .FIG. 5A shows an example in which first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially input, andFIG. 5B shows an example in which the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially output to first through fourth processors, respectively, according to the method ofFIG. 2 . - As illustrated in
FIG. 5A , a first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is smaller than a time interval threshold PS, a second time interval S2 between the second interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 is smaller than the time interval threshold PS, and a third time interval S3 between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 is also smaller than the time interval threshold PS. - According to performance of a SOC in an electric device, in-rush currents may not be caused in two processors even when two processors wakeup simultaneously or concurrently, or sequentially within a relatively small time window, whereas in-rush currents may be caused in three processors when three processors wake-up simultaneously or concurrently, or sequentially within a relatively small time window.
- As illustrated in
FIGS. 5A and 5B , according to the method ofFIG. 2 , two processors may be allowed to sequentially wake-up within a relatively small time window, but more than two processors may not. For example, as shown inFIGS. 5A and 5B , the first time interval 51 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is maintained (not adjusted) even though the first time interval 51 is smaller than the time interval threshold PS. In this example, a given, desired or predetermined number of processors (e.g., two processors) are allowed to sequentially wake-up within a relatively small time window. However, output of the third interrupt request signal nIRQ_3 is delayed such that the second time interval S2 is greater than or equal to the time interval threshold PS. Consequently, according to the method ofFIG. 2 , three processors are suppressed and/or prevented from sequentially waking-up within a relatively small time window. Then, as shown inFIG. 5B , the third time interval S3 between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 is maintained and not adjusted even though the third time interval S3 is smaller than the time interval threshold PS. -
FIG. 6 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to another example embodiment. As withFIG. 2 , for clarity the method shown inFIG. 6 will be described with regard to the SOC shown inFIG. 1 . However, it should be understood that example embodiments should not be limited to this implementation. - Referring to
FIG. 6 , the interrupt requestsignal spreader circuit 560 receives a (k) th interrupt request signal at S210, and then receives a (k+1)th interrupt request signal at S220. - At S230, the interrupt request
signal spreader circuit 560 checks whether a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is greater than 0. - If the time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is greater than 0, then the interrupt request
signal spreader circuit 560 delays output of the (k)th interrupt request signal at S240 until the time interval becomes at least the same or substantially the same as the time interval threshold. - Returning to S230, if a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is equal to 0, then at S250 the interrupt request
signal spreader circuit 560 delays output of the (k)th interrupt request signal or output of the (k+1)th interrupt request signal by at least the time interval threshold based on given, desired or predetermined priorities associated with the interrupts and/or interrupt request signals. - Generally, the (k)th interrupt request signal and the (k+1)th interrupt request signal are sequentially input so that a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is greater than 0. However, according to at least some example embodiments, the (k)th interrupt request signal and the (k+1)th interrupt request signal may be input at the same or substantially the same time (e.g., simultaneously or concurrently). In this example, the interrupt request
signal spreader circuit 560 checks whether a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is greater than 0. - If a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is greater than 0, but less than the time interval threshold, then the interrupt request
signal spreader circuit 560 delays output of the (k)th interrupt request signal until the time interval becomes at least the same or substantially the same as the time interval threshold. - On the other hand, if a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is equal to 0, then the interrupt request
signal spreader circuit 560 delays output of the (k)th interrupt request signal or output of the (k+1)th interrupt request signal by at least the time interval threshold based on the given, desired or predetermined priorities associated with the interrupts and/or interrupt request signals. As a result, the (k)th interrupt request signal and the (k+1)th interrupt request signal are output to a (k)th processor and a (k+1)th processor, respectively, at a time interval corresponding to at least the time interval threshold even when the (k)th interrupt request signal and the (k+1)th interrupt request signal are input at the same or substantially the same time (e.g., simultaneously or concurrently). Thus, the method ofFIG. 6 may suppress and/or prevent modes of a plurality of processors included in a SOC from continuously being changed from an inactive state to an active state within a relatively small time window (sometimes referred to as a sudden wake-up). -
FIGS. 7A and 7B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method ofFIG. 6 .FIG. 7A shows an example in which first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially input, andFIG. 7B shows an example in which the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially output to first through fourth processors, respectively, according to the method ofFIG. 6 . - In the example shown in
FIG. 7A , adjacent interrupt request signals nIRQ_3 and nIRQ_4 are input at the same or substantially the same time (e.g., simultaneously or concurrently), whereas the interrupt request signals nIRQ_1 and nIRQ_2 are input sequentially. A first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is smaller than a time interval threshold PS, a second time interval S2 between the second interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 (or, the fourth interrupt request signal nIRQ_4) is smaller than the time interval threshold PS, and a time interval between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 is equal or substantially equal to 0. - As illustrated in
FIG. 7B , it is assumed that a priority of the fourth interrupt request signal nIRQ_4 is higher than a priority of the third interrupt request signal nIRQ_3. Output of the second interrupt request signal nIRQ_2 is delayed such that the first time interval 51 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is greater than or equal to the time interval threshold PS. In addition, output of the fourth interrupt request signal nIRQ_4 is delayed such that the second time interval S2 between the second interrupt request signal nIRQ_2 and the fourth interrupt request signal nIRQ_4 is greater than or equal to the time interval threshold PS. Further, output of the third interrupt request signal nIRQ_3 is delayed by the time interval threshold PS after output of the fourth interrupt request signal nIRQ_4. - In the example shown in
FIGS. 7A and 7B , the fourth interrupt request signal nIRQ_4 is output prior to the third interrupt request signal nIRQ_3 because a priority of the fourth interrupt request signal nIRQ_4 is higher than a priority of the third interrupt request signal nIRQ_3. The first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are output to the first through fourth processors, respectively, at time intervals corresponding to the time interval threshold PS based on given, desired or predetermined priorities when adjacent interrupt request signals (e.g., the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4) are input at the same or substantially the same time (e.g., simultaneously or concurrently). -
FIG. 8 is a flow chart illustrating a method of spreading a plurality of interrupt request signals according to another example embodiment. As withFIG. 2 , for clarity the method shown inFIG. 8 will be described with regard to the SOC shown inFIG. 1 . However, it should be understood that example embodiments should not be limited to this implementation. - Referring to
FIG. 8 , the interrupt requestsignal spreader circuit 560 receives a (k) th interrupt request signal at S310, and then receives a (k+1)th interrupt request signal at S320. Although this example embodiment is described with regard to the (k)th interrupt request signal and the (k+1)th interrupt request signal being received sequentially, example embodiments may be equally applicable to interrupt request signals received concurrently or simultaneously. - The interrupt request
signal spreader circuit 560 then checks whether a priority of the (k)th interrupt request signal is higher than a priority of the (k+1)th interrupt request signal at S330. - If the priority of the (k)th interrupt request signal is higher than the priority of the (k+1)th interrupt request signal, then the interrupt request
signal spreader circuit 560 delays output of the (k+1)th interrupt request signal at S340. - Returning to S330, if a priority of the (k)th interrupt request signal is lower than the priority of the (k+1)th interrupt request signal, then the interrupt request
signal spreader circuit 560 delays output of the (k)th interrupt request signal at S350. - In the example embodiment shown in
FIG. 8 , it is assumed that a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is smaller than the time interval threshold. - In accordance with the method of
FIG. 8 , the interrupt requestsignal spreader circuit 560 may sequentially receive the (k)th interrupt request signal and the (k+1)th interrupt request signal, and check whether a time interval between the (k)th interrupt request signal and the (k+1)th interrupt request signal is smaller than the time interval threshold. The interrupt requestsignal spreader circuit 560 also checks whether a priority of the (k) th interrupt request signal is higher than a priority of the (k+1)th interrupt request signal. Then, the interrupt requestsignal spreader circuit 560 determines an output order for the (k) th interrupt request signal and the (k+1)th interrupt request signal based on given, desired or predetermined priorities associated with the interrupt request signals, regardless or independent of an input order for the (k)th interrupt request signal and the (k+1)th interrupt request signal. - In more detail, for example, the interrupt request
signal spreader circuit 560 delays output of the (k+1)th interrupt request signal when a priority of the (k)th interrupt request signal is higher than a priority of the (k+1)th interrupt request signal. On the other hand, the interrupt requestsignal spreader circuit 560 delays output of the (k)th interrupt request signal when a priority of the (k)th interrupt request signal is lower than a priority of the (k+1)th interrupt request signal. As a result, the (k)th interrupt request signal and the (k+1)th interrupt request signal are output to a (k)th processor and a (k+1)th processor, respectively, at a time interval corresponding to at least the time interval threshold based on given, desired or predetermined priorities. Thus, the method ofFIG. 8 may suppress and/or prevent modes of a plurality of processors included in a SOC from continuously being changed from an inactive state to an active state within a relatively small time period (sometimes referred to as a sudden wake-up). -
FIGS. 9A and 9B are diagrams illustrating an example in which a plurality of interrupt request signals are spread according to the method ofFIG. 8 .FIG. 9A shows an example in which first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially input, andFIG. 9B shows an example in which the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are output to first through fourth processors, respectively, based on given, desired or predetermined priorities according to the method ofFIG. 8 . - As illustrated in
FIG. 9A , a first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is smaller than a time interval threshold PS, a second time interval S2 between the second interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 is smaller than the time interval threshold PS, and a third time interval S3 between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 is smaller than the time interval threshold PS. In at least one example embodiment, according to required conditions for a SOC in an electric device, an output order for the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 may need to be different from an input order for the first through fourth interrupt request signals nIRQ_1 through nIRQ_4. Hence, an output order for the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 may be changed based on given, desired or predetermined priorities associated with the interrupt request signals nIRQ_1 through nIRQ_4. - By utilizing the method of
FIG. 8 , a wake-up order for first through fourth processors that perform interrupt handling operations in response to the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 may be adjusted by changing an output order for the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 based on the given, desired or predetermined priorities. - As illustrated in
FIG. 9B , the interrupt request signal spreader circuit outputs first interrupt request signal nIRQ_1, the third interrupt request signal nIRQ_3, the fourth interrupt request signal nIRQ_4, and the second interrupt request signal nIRQ_2 based on the given, desired or predetermined priorities, regardless or independent of an input order of the first through fourth interrupt request signals nIRQ_1 through nIRQ_4. Meanwhile, the time intervals between the first interrupt request signal nIRQ_1, the third interrupt request signal nIRQ_3, the fourth interrupt request signal nIRQ_4, and the second interrupt request signal nIRQ_2 are controlled to be greater than or equal to the time interval threshold PS. As a result, the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are output to first through fourth processors, respectively, at a time interval corresponding to at least the time interval threshold PS based on the given, desired or predetermined priorities. -
FIG. 10 is a flow chart illustrating a method of spreading a plurality of interrupts according to another example embodiment, andFIG. 11 is a diagram illustrating a plurality of processors in an active state and a plurality of processors in an inactive state. The method shown inFIG. 10 will be described with regard to the SOC shown inFIG. 1 and the processors shown inFIG. 11 . - Referring to
FIGS. 1 , 10 and 11, at S410 the interrupt requestsignal spreader circuit 560 sequentially receives a plurality of interrupt request signals. At S420, the interrupt requestsignal spreader circuit 560 divides or groups the interrupt request signals into target interrupt request signals and non-target interrupt request signals. - According to at least this example embodiment, the target interrupt request signals are interrupt request signals assigned to (e.g., scheduled to be output to) processors TP_1 through TP_4 in an inactive state, whereas the non-target interrupt request signals are interrupt request signals assigned to processors NTP_1 and NTP_2 in an active state.
- Returning to
FIG. 10 , at S430 the interrupt requestsignal spreader circuit 560 immediately outputs the non-target interrupt request signals to the processors NTP_1 and NTP_2 in an active state, respectively. Meanwhile, the interrupt requestsignal spreader circuit 560 checks whether the time intervals between the target interrupt request signals (e.g., time intervals between adjacent target interrupt request signals) are smaller than a time interval threshold at S440. - If a time interval between target interrupt request signals is smaller than the time interval threshold, then the interrupt request
signal spreader circuit 560 controls a time interval between output of the target interrupt request signals to be greater than or equal to the time interval threshold at S450. The interrupt requestsignal spreader circuit 560 then outputs the target interrupt request signals to the processors TP_1 through TP_4 in an inactive state, respectively, at S480. - Returning to S440, if a time interval between target interrupt request signals is greater than or equal to the time interval threshold, then the interrupt request
signal spreader circuit 560 maintains (does not adjust) the time interval between output of the target interrupt request signals at S460. The interrupt requestsignal spreader circuit 560 then outputs the target interrupt request signals to the processors TP_1 through TP_4 in an inactive state, respectively, at S480. - According to the method of
FIG. 10 , time intervals between the non-target interrupt request signals are not controlled because the processors NTP_1 and NTP_2 are in an active state and need not wake-up. However, time intervals between target interrupt request signals assigned to the processors TP_1 through TP_4 in the inactive state are controlled to be greater than or equal to the time interval threshold. As a result, a SOC employing the method ofFIG. 10 may operate at higher speeds because the number of interrupt request signals (e.g., loads) being handled is reduced. -
FIG. 12 is a block diagram illustrating an interrupt request signal spreader circuit according to an example embodiment. The interrupt request signal spreader circuit shown inFIG. 12 may serve as the interrupt requestsignal spreader circuit 560 shown inFIG. 1 . - Referring to
FIG. 12 , the interrupt requestsignal spreader circuit 100 includes an interruptrequest signal arbiter 140 and first through (m)th interrupt request signal holders 120_1 through 120 — m. In this example, m is an integer greater than or equal to 2. - The first through (m)th interrupt request signal holders 120_1 through 120 — m are configured to receive first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im, respectively, and to output first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om to first through (m)th processors (not illustrated in
FIG. 12 ), respectively, at time intervals greater than or equal to a time interval threshold. - The first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im are generated based on a plurality of interrupts output from a plurality of interrupt sources (not illustrated in
FIG. 12 ). In addition, the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im are input to the first through (m)th interrupt request signal holders 120_1 through 120 — m, respectively. Meanwhile, the first through (m)th interrupt request signal holders 120_1 through 120 — m are coupled to the first through (m)th processors, respectively. In addition, the first through (m)th interrupt request signal holders 120_1 through 120 — m output the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om to the first through (m)th processors, respectively, at time intervals greater than or equal to the time interval threshold. - In more detail with regard to
FIG. 12 , when the first through (m)th interrupt request signal holders 120_1 through 120 — m receive the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im, respectively, the first through (m)th interrupt request signal holders 120_1 through 120 — m send respective output-request signals RS1 through RSm to the interruptrequest signal arbiter 140. When the first through (m)th interrupt request signal holders 120_1 through 120 — m receive respective output-acknowledge signals AS1 through ASm from the interruptrequest signal arbiter 140, the first through (m)th interrupt request signal holders 120_1 through 120 — m output the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om to the first through (m)th processors, respectively. - For this operation, each of the first through (m)th interrupt request signal holders 120_1 through 120 — m may be implemented by a state machine having an idle-state, a wait-state, and an assert-state. An example state machine implementation will be described in more detail below with regard to
FIG. 13 . - The interrupt
request signal arbiter 140 is configured to control time intervals between output of the first through (m)th interrupt request signals (e.g., a time interval between output of adjacent interrupt request signals) to be greater than or equal to a time interval threshold when the time intervals between the first through (m)th interrupt request signals are smaller than the time interval threshold. In this example, the time interval threshold may be a given, desired or predetermined time interval within a range in which in-rush currents are not caused in the first through (m)th processors when modes of the processors are continuously changed from an inactive state to an active state. - Still referring to
FIG. 12 , the interruptrequest signal arbiter 140 receives the output-request signals RS1 through RSm from the first through (m)th interrupt request signal holders 120_1 through 120 — m, respectively. Then, the interruptrequest signal arbiter 140 controls the first through (m)th interrupt request signal holders 120_1 through 120 — m to output the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om to the first through (m)th processors, respectively, at time intervals that are greater than or equal to the time interval threshold by outputting the output-acknowledge signals AS1 through ASm to the first through (m)th interrupt request signal holders 120_1 through 120 — m, respectively, at time intervals that are greater than or equal to the time interval threshold. For this operation, the interruptrequest signal arbiter 140 may be implemented by a state machine having an idle-state and a wait-state. An example state machine implementation will be described in more detail below with regard toFIG. 14 . - In at least one example embodiment, the interrupt
request signal arbiter 140 may change an output order of the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om based on given, desired or predetermined priorities associated with the interrupt request signals nIRQ_O1 through nIRQ_Om. As a result, an input order of the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im that are input to the first through (m)th interrupt request signal holders 120_1 through 120 — m may be different from an output order of the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om that are output from the first through (m)th interrupt request signal holders 120_1 through 120 — m. - In at least one example embodiment, the interrupt
request signal arbiter 140 may divide or group the first through (m)th processors into a first group including processors in an active state and a second group including processors in an inactive state. Among the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im, the interruptrequest signal arbiter 140 may not control time intervals between interrupt request signals assigned to the first group to be the time interval threshold, but may control each time interval among interrupt request signals assigned to the second group to be greater than or equal to the time interval threshold. - As described above, by controlling time intervals between output a plurality of interrupt request signals, which are generated based on a plurality of interrupts, to be greater than or equal to the time interval threshold, the interrupt request
signal spreader circuit 100 may suppress and/or prevent modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state to an active state within a relatively small time period (sometimes referred to as a sudden wake-up) even when the interrupts are continuously generated by a plurality of interrupt sources within a relatively small time window. As a result, a SOC including the interrupt requestsignal spreader circuit 100 may achieve relatively high operational reliability by suppressing and/or preventing the in-rush currents due to a sudden wake-up of a plurality of processors (or a plurality of cores in a multi-core processor). -
FIG. 13 is a diagram illustrating an example state machine implementation of the interrupt request signal holder shown inFIG. 12 . One or more of the first through (m) th interrupt request signal holders 120_1 through 120 — m may be implemented by a state machine such as that shown inFIG. 13 . However, example embodiments are not limited to this implementation. For the sake of clarity,FIG. 13 will be described with regard to the (n)th interrupt request signal holder 120 — n and the (n)th interrupt request signal nIRQ_In. However, it should be understood that each of the first through (m)th interrupt request signal holders 120_1 through 120 — m may operate in the same or substantially the same manner. - Referring to
FIG. 13 , thestate machine 200 includes an idle-state 220, a wait-state 240, and an assert-state 260. The idle-state 220 indicates that the interrupt request signal holder 120 — n has not received the interrupt request signal nIRQ_In. The wait-state 240 indicates that the interrupt request signal holder 120 — n is waiting for the output-acknowledge signal ASn from the interruptrequest signal arbiter 140. The assert-state 260 indicates that the interrupt request signal holder 120 — n has output or is outputting the interrupt request signal nIRQ_Onto the (n) the processor 580 — n. In this example, the idle-state 220 corresponds to a default-state for the interrupt request signal holder 120 — n. - In more detail with regard to
FIG. 13 , the first through (m)th interrupt request signal holders 120_1 through 120 — m stay in the idle-state 220 until receiving the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im, respectively. In response to receiving the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im, the first through (m)th interrupt request signal holders 120_1 through 120 — m enter the wait-state 240 or the assert-state 260. - For example, when the interrupt request signal holder 120 — n receives an interrupt request signal nIRQ_In, the interrupt request signal holder 120 — n sends an output-request signal RSn to the interrupt
request signal arbiter 140. If the interruptrequest signal arbiter 140 outputs an output-acknowledge signal ASn to the interrupt request signal holder 120 — n immediately, then the interrupt request signal holder 120 — n enters the assert-state 260 (RA). However, if the interruptrequest signal arbiter 140 does not output an output-acknowledge signal ASn to the interrupt request signal holder 120 — n immediately, then the interrupt request signal holder 120 — n enters the wait-state 240 (RNA). In this case, the interruptrequest signal arbiter 140 delays output of the output-acknowledge signal ASn to control a time interval between output of interrupt request signals (e.g., a time interval between output of adjacent interrupt request signals). - Subsequently, the interrupt request signal holder 120 — n receives the output-acknowledge signal ASn from the interrupt
request signal arbiter 140 while in the wait-state 240. In response to the output-acknowledge signal ASn, the interrupt request signal holder 120 — n enters the assert-state 260 (AR). - After the interrupt request signal holder 120 — n outputs the interrupt request signal nIRQ_On to the (n)th processor while in the assert-
state 260, the interrupt request signal holder 120 — n returns to the idle-state 220 (AL). As described above, each of the first through (m)th interrupt request signal holders 120_1 through 120 — m may be implemented by a state machine having a relatively simple structure. -
FIG. 14 is a diagram illustrating an example state machine implementation of the interrupt request signal arbiter shown inFIG. 12 . - Referring to
FIG. 14 , thestate machine 300 includes an idle-state 320 and a wait-state 340. The idle-state 320 indicates that none of the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om is being output to the first through (m) th processors. The wait-state 340 indicates that at least one of the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om is being output to the first through (m) th processors. In this example, the idle-state 320 corresponds to a default-state for the interruptrequest signal arbiter 140. - The interrupt
request signal arbiter 140 may remain in the idle-state 320 until receiving any of the output-request signals RS1 through RSm from the first through (m) th interrupt request signal holders 120_1 through 120 — m. In response to receiving an output request signal (e.g., RSn from the interrupt request signal holder 120 — n), the interruptrequest signal arbiter 140 enters the wait-state 340 (REQ), and immediately outputs an output-acknowledge signal ASn to the interrupt request signal holder 120 — n. The interruptrequest signal arbiter 140 remains in the wait-state 340 during a given, desired or predetermined time interval (e.g., the time interval threshold). Then, the interruptrequest signal arbiter 140 returns to the idle-state 320 (EXP). According to at least this example embodiment, while the interruptrequest signal arbiter 140 is in the wait-state 340, the interruptrequest signal arbiter 140 does not output other output-acknowledge signals to other interrupt request signal holders even when other interrupt request signal holders send their output-request signals to the interruptrequest signal arbiter 140. As a result, the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om are output to the first through (m)th processors, respectively, at time intervals that are greater than or equal to the time interval threshold. As described above, the interruptrequest signal arbiter 140 may be implemented by a state machine having a relatively simple structure. -
FIG. 15 is a timing diagram illustrating example operation of the interrupt request signal spreader circuit ofFIG. 12 . - Referring to
FIG. 15 , when an (i)th interrupt request signal nIRQ_Ii is input to the (i)th interrupt request signal holder 120 — i in the interrupt requestsignal spreader circuit 100, the (i)th interrupt request signal holder 120 — i outputs an output-request signal RSi REQ to the interruptrequest signal arbiter 140. Because the interruptrequest signal arbiter 140 is in an idle-state IDLE (no previous interrupt request signal exists), the interruptrequest signal arbiter 140 outputs an output-acknowledge signal ASi ACK to the (i)th interrupt request signal holder 120 — i immediately. - In response to the output-acknowledge signal ASi ACK, the (i)th interrupt request signal holder 120 — i transitions from the idle-state IDLE to an assert-state ASSERT, and the interrupt
request signal arbiter 140 transitions from the idle-state IDLE to a wait-state WAIT. Thus, the (i)th interrupt request signal nIRQ_Oi is output to the (i)th processor. - While the interrupt request
signal spreader circuit 140 is in the wait-state WAIT, if the (j)th interrupt request signal holder 120 — j outputs an output request signal RSj REQ to the interruptrequest signal arbiter 140 in response to receiving a (j)th interrupt request signal nIRQ_Ij, then the interruptrequest signal arbiter 140 does not output an output-acknowledge signal ASj ACK to the (j)th interrupt request signal holder 120 j. The time period during which the interruptrequest signal arbiter 140 stays in the wait-state WAIT may be determined by considering various conditions such as physical characteristics, etc., and may be adjusted by a circuit such as a counter, etc. - According to at least some example embodiments, the (j)th interrupt request signal holder 120 j may transition from the idle-state IDLE to a wait-state WAIT, rather than an assert-state ASSERT. After the interrupt
request signal arbiter 140 enters the idle-state IDLE from a wait-state WAIT, when a time interval between the (i)th interrupt request signal nIRQ_Oi and the (j)th interrupt request signal nIRQ_Oj becomes at least the same or substantially the same as the time interval threshold, the interruptrequest signal arbiter 140 outputs an output-acknowledge signal ASj ACK to the (j)th interrupt request signal holder 120 j. In response to the output-acknowledge signal ASj ACK, the (j)th interrupt request signal holder 120 j transitions from the wait-state WAIT to the assert-state ASSERT, and outputs the (j)th interrupt request signal nIRQ_Oj to the (j)th processor. - As illustrated in
FIG. 15 , the (i)th interrupt request signal nIRQ_Oi and the (j) th interrupt request signal nIRQ_Oj may be output to the (i)th processor and the (j)th processor, respectively, at a time interval that is greater than or equal to the time interval threshold. - As described above, by controlling time intervals between a plurality of interrupt request signals (e.g., a time interval between adjacent interrupt request signals) to be greater than or equal to the time interval threshold, the interrupt request
signal spreader circuit 100 may suppress and/or prevent modes of a plurality of processors (or a plurality of cores in a multi-core processor) from being continuously changed from an inactive state to an active state within a relatively small time period (sometimes referred to as a sudden wake-up) even when the interrupts are continuously generated by a plurality of interrupt sources within a relatively small time period. -
FIG. 16 is a block diagram illustrating an example software implementation of an interrupt request signal spreader circuit according to an example embodiment. The interrupt request signal spreader circuit shown inFIG. 16 may serve as the interrupt requestsignal spreader circuit 560 shown inFIG. 1 . - Referring to
FIG. 16 , the interrupt request signal spreader circuit includes a plurality of level detectors LD1, LD2, LD3, . . . , LDm. In this example, m is an integer greater than or equal to 2. The plurality of level detectors LD1 through LDm detect changes in respective ones of the plurality of interrupt request signals nIRQ_I1 through nIRQ_Im in order to identify/detect new interrupts (and/or interrupt requests) for the main processor. When new interrupts and/or interrupt requests for the main processor are detected, the microcontroller interruptcontroller 1302 notifies themicrocontroller 1308 via abus 1306. - The
microcontroller 1308 controls output of the new interrupt requests (e.g., new interrupt requests from among the interrupt request signals nIRQ_I1 through nIRQ_Im) such that the time intervals between the output of the interrupt request signals (e.g., ones of the nIRQ_O1 through nIRQ_Om corresponding to the new interrupt requests) is greater than or equal to the time interval threshold. For example, themicrocontroller 1308 may delay the new interrupt request for a given or desired time period (e.g., by storing the interrupt request in random access memory (RAM) 1310), and then output the interrupt request signal through the general purpose I/O circuit 1304. - The
RAM 1310 and/or the read only memory (ROM) 1312 shown inFIG. 16 are configured to store interrupt requests during the above-discussed delay, and/or store an indication as to the action to be taken in response to the detected interrupt signal. - The
microcontroller 1308 updates the physical signals on the interrupt output lines nIRQ_O1 through nIRQ_Om via the general purpose I/O circuit 1304. Themicrocontroller 1308 communicates with the general purpose I/O circuit 1304 via thebus 1306. Because general purpose I/O circuits such as that shown inFIG. 16 are well-known, a detailed discussion is omitted. - The signals are output to, for example, processors 580_1 through 580 — m in the same or substantially the same manner as discussed above with regard to at least some other example embodiments.
- According to at least this example embodiment, the microcontroller interrupt
controller 1302 shown inFIG. 16 is separate from the interruptcontroller 540 shown inFIG. 1 .FIG. 17 is a diagram illustrating example operation of an interrupt request signal spreader circuit for the SOC ofFIG. 1 . -
FIG. 17 shows an example in which the first through (m)th interrupt request signal holders 562_1 through 562 — m of the interrupt requestsignal spreader circuit 560 are controlled by an interrupt request signal arbiter (not illustrated) of the interrupt requestsignal spreader circuit 560 in theSOC 500. Thus, the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im may be output to the first through (m)th processors 580_1 through 580 — m as the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om, respectively, at time intervals corresponding to the time interval threshold PS. As illustrated inFIG. 17 , for convenience it is assumed that m is 4. - In more detail, when the first through (n)th interrupt sources 520_1 through 520 — n output the first through (n)th interrupts INT_R1 through INT_Rn, the interrupt
controller 540 generates the first through fourth interrupt request signals nIRQ_I1 through nIRQ_I4 based on the first through (n)th interrupts INT_R1 through INT_Rn. As illustrated inFIG. 17 , the first interrupt request signal nIRQ_I1, the third interrupt request signal nIRQ_I3, the second interrupt request signal nIRQ_I2, and the fourth interrupt request signal nIRQ_I4 are sequentially received by the first request signal holder 562_1, the third interrupt request signal holder 562_3, the second interrupt request signal holder 562_2 and the fourth interrupt request signal holder 562_4, respectively. - The first interrupt request signal holder 562_1 outputs the first interrupt request signal nIRQ_O1 to the first processor 580_1 immediately because no previous interrupt request signal prior to the first interrupt request signal nIRQ_I1 exists. The third interrupt request signal holder 562_3 delays the output of the third interrupt request signal nIRQ_I3 by a time period DL1 because a time interval between the first interrupt request signal nIRQ_I1 and the third interrupt request signal nIRQ_I3 is smaller than the time interval threshold PS. The third interrupt request signal holder 562_3 then outputs the third interrupt request signal nIRQ_O3 to the third processor 580_3
- The second interrupt request signal holder 562_2 delays output of the second interrupt request signal nIRQ_I2 by a time period DL2, and then outputs the second interrupt request signal nIRQ_O2 to the second processor 580_2.
- The fourth interrupt request signal holder 562_4 delays output of the fourth interrupt request signal nIRQ_I4 by a time period DL3, and then outputs the fourth interrupt request signal nIRQ_O4 to the fourth processor 580_4.
- According to at least this example embodiment, in-rush currents due to a sudden wake-up of the first through fourth processors 580_1 through 580_4 may be suppressed and/or prevented because the first through fourth processors 580_1 through 580_4 receive the first through fourth interrupt request signals nIRQ_O1 through nIRQ_O4, respectively, at a time interval corresponding to at least the time interval threshold PS.
-
FIG. 18 is a diagram illustrating another example operation of an interrupt request signal spreader circuit for the SOC ofFIG. 1 . -
FIG. 18 shows an example in which the first through (m)th interrupt request signal holders 562_1 through 562 — m of the interrupt requestsignal spreader circuit 560 are controlled by an interrupt request signal arbiter (not illustrated inFIG. 18 ) of the interrupt requestsignal spreader circuit 560 in the system-on-chip 500. In this example, the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im are output to the first through (m)th processors 580_1 through 580 — m as the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om, respectively, at time intervals that are greater than or equal to the time interval threshold PS. As illustrated inFIG. 18 , for convenience it is assumed that m is 4. - In more detail, when the first through (n)th interrupt sources 520_1 through 520 — n output the first through (n)th interrupts INT_R1 through INT_Rn, the interrupt
controller 540 generates the first through fourth interrupt request signals nIRQ_I1 through nIRQ_I4 based on the first through (n)th interrupts INT_R1 through INT_Rn. As illustrated inFIG. 18 , the first interrupt request signal nIRQ_I1, the second interrupt request signal nIRQ_I2, the fourth interrupt request signal nIRQ_I4, and the third interrupt request signal nIRQ_I3 are sequentially received by the first interrupt request signal holder 562_1, the second interrupt request signal holder 562_2, the fourth interrupt request signal holder 562_4, and the third interrupt request signal holder 562_3, respectively. - The first interrupt request signal holder 562_1 outputs the first interrupt request signal nIRQ_O1 to the first processor 580_1 immediately because no previous interrupt request signal prior to the first interrupt request signal nIRQ_I1 exists.
- The second interrupt request signal holder 562_2 also outputs the second interrupt request signal nIRQ_O2 to the second processor 580_2 immediately because a time interval S1 between the first interrupt request signal nIRQ_I1 and the second interrupt request signal nIRQ_I2 is greater than the time interval threshold PS.
- The fourth interrupt request signal holder 562_4 delays output for the fourth interrupt request signal nIRQ_O4 by a time period DL1 because a time interval between the second interrupt request signal nIRQ_I2 and the fourth interrupt request signal nIRQ_I4 is smaller than the time interval threshold PS. The fourth interrupt request signal holder 562_4 then outputs the fourth interrupt request signal nIRQ_O4 to the fourth processor 580_4.
- The third interrupt request signal holder 562_3 delays output of the third interrupt request signal nIRQ_O3 by a time period DL2 after the second interrupt request signal nIRQ_O3 is output, and then outputs the third interrupt request signal nIRQ_O3 to the third processor 580_3.
- According to at least this example embodiment, in-rush currents due to a sudden wake-up of the first through fourth processors 580_1 through 580_4 may be suppressed and/or prevented because the first through fourth processors 580_1 through 580_4 receive the first through fourth interrupt request signals nIRQ_O1 through nIRQ_O4, respectively, at a time interval that is greater than or equal to the time interval threshold PS.
-
FIG. 19 is a diagram illustrating still another example operation of an interrupt request signal spreader circuit for the SOC ofFIG. 1 . -
FIG. 19 shows an example in which the first through (m)th interrupt request signal holders 562_1 through 562 — m of the interrupt requestsignal spreader circuit 560 are controlled by an interrupt request signal arbiter (not illustrated inFIG. 19 ) of the interrupt requestsignal spreader circuit 560 in theSOC 500. Thus, the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im are output to the first through (m)th processors 580_1 through 580 — m as the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om, respectively, at time intervals corresponding to the time interval threshold PS. As illustrated inFIG. 19 , for convenience it is assumed that m is 4. - When the first through (n)th interrupt sources 520_1 through 520 — n output the first through (n)th interrupts INT_R1 through INT_Rn, the interrupt
controller 540 generates the first through fourth interrupt request signals nIRQ_I1 through nIRQ_I4 based on the first through (n)th interrupts INT_R1 through INT_Rn. As illustrated inFIG. 19 , the first interrupt request signal nIRQ_I1 and the second interrupt request signal nIRQ_I2 are simultaneously or concurrently received by the first interrupt request signal holder 562_1 and the second interrupt request signal holder 562_2, respectively. Then, the fourth interrupt request signal nIRQ_I4 and the third interrupt request signal nIRQ_I3 are sequentially received by the fourth interrupt request signal holder 562_4 and the third interrupt request signal holders 562_3, respectively. Here, it is assumed that a priority of the first interrupt request signal nIRQ_I1 is higher than a priority of the second interrupt request signal nIRQ_I2. Thus, in this example the first interrupt request signal holder 562_1 outputs the first interrupt request signal nIRQ_O1 to the first processor 580_1 immediately. - The second interrupt request signal holder 562_2 delays output of the second interrupt request signal nIRQ_I2 by a time period DL1 (e.g., by the time interval threshold PS), and then outputs the second interrupt request signal nIRQ_O2 to the second processor 580_2.
- The fourth interrupt request signal nIRQ_O4 and the third interrupt request signal nIRQ_O3 are output to the fourth processor 580_4 and the third processor 580_3, respectively, regardless or independent of the input order of the fourth interrupt request signal nIRQ_I4 and the third interrupt request signal nIRQ_I3. Here, it is assumed that a priority of the third interrupt request signal nIRQ_I3 is higher than a priority of the fourth interrupt request signal nIRQ_I4. The third interrupt request signal holder 562_3 delays output of the third interrupt request signal nIRQ_O3 by a time period DL2, and then outputs the third interrupt request signal nIRQ_O3 to the third processor 580_3. The fourth interrupt request signal holder 562_4 delays output of the fourth interrupt request signal nIRQ_O4 by a time period DL3, and then outputs the fourth interrupt request signal nIRQ_O4 to the fourth processor 580_4.
- According to at least this example embodiment, in-rush currents due to a sudden wake-up of the first through fourth processors 580_1 through 580_4 may be suppressed and/or prevented because the first through fourth processors 580_1 through 580_4 receive the first through fourth interrupt request signals nIRQ_O1 through nIRQ_O4, respectively, at time intervals corresponding to the time interval threshold PS.
-
FIG. 20 is a block diagram illustrating a multi-core system according to example embodiments, andFIG. 21 is a diagram illustrating an example in which a multi-core system ofFIG. 20 is implemented as a smart phone. - Referring to
FIGS. 20 and 21 , themulti-core system 600 includes first through (n) th interrupt sources 610_1 through 610 — n, an interruptcontroller 620, an interrupt requestsignal spreader circuit 630, amulti-core processor 640, abus interface 645, a random access memory (RAM)device 650, a read only memory (ROM)device 660, astorage device 670, asystem bus 680, etc. Here, themulti-core processor 640 includes first through (m)th cores P1 through Pm. In one example, the multi-processor may be referred to as a dual-core processor if m is 2, may be referred to as a quad-core processor if m is 4, etc. - As illustrated in
FIG. 21 , themulti-core system 600 may be implemented as a smart-phone 700. However, themulti-core system 600 is not limited thereto. For example, themulti-core system 600 may be implemented as an electric device such as a smart-television, a smart-pad, a cellular phone, etc. Further, it should be understood that themulti-core system 600 corresponds to a system that includes a multi-core processor having a plurality of cores, or a system that includes a plurality of processors, each having one or more cores. - The first through (n)th interrupt sources 610_1 through 610 — n may generate and output first through (n)th interrupts INT_R1 through INT_Rn, respectively. The first through (n)th interrupt sources 610_1 through 610 — n may correspond to components of a system-on-chip (SOC) such as a video module, a sound module, a display module, a memory module, a communication module, a camera module, etc. That is, for example, the first through (n)th interrupt sources 610_1 through 610 — n may be intellectual property (IP) blocks that perform specific operations for the
multi-core system 600. - The interrupt
controller 620 generates first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im based on the first through (n)th interrupts INT_R1 through INT_Rn output from the first through (n)th interrupt sources 610_1 through 610 — n. The interrupt requestsignal spreader circuit 630 controls time intervals between the first through (m)th interrupt request signals nIRQ_I1 through nIRQ_Im (e.g., a time interval between adjacent interrupt request signals) output from the interruptcontroller 620 to be greater than or equal to the time interval threshold. - As illustrated in
FIG. 20 , the first through (m)th interrupt request signals nIRQ_O1 through nIRQ_Om are output to the first through (m)th cores P1 through Pm of themulti-core processor 640, respectively. For this operation, the interrupt requestsignal spreader circuit 630 includes first through (m)th interrupt request signal holders, and an interrupt request signal arbiter for controlling the first through (m)th interrupt request signal holders. Because the interrupt requestsignal spreader circuit 630 is described in detail above, a duplicate description is omitted below. - The
multi-core processor 640 is coupled to other components via asystem bus 680 using abus interface 645. Themulti-core processor 640 is configured to communicate with the intellectual property (IP) blocks 610_1 through 610 — n, theRAM device 650, theROM device 660, thestorage device 670, etc., via asystem bus 680 such as an address bus, a control bus, a data bus, etc. Thestorage device 670 may include a hard disk drive (HDD), a solid state drive (SSD), a redundant array of independent disk (RAID), etc. According to at least some example embodiments, themulti-core processor 640 may be coupled to an extended bus such as peripheral component interconnect (PCI) bus. - Although not illustrated in
FIG. 20 , themulti-core system 600 may further include at least one non-volatile memory device and/or at least one volatile memory device. For example, the non-volatile memory device may correspond to an erasable programmable read-only memory (EPROM) device, an electrically erasable programmable read-only memory (EEPROM) device, a flash memory device, a phase change random access memory (PRAM) device, a resistance random access memory (RRAM) device, a nano floating gate memory (NFGM) device, a polymer random access memory (PoRAM) device, a magnetic random access memory (MRAM) device, a ferroelectric random access memory (FRAM) device, etc. In addition, the volatile memory device may correspond to a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, a mobile DRAM device, etc. - As illustrated in
FIG. 20 , themulti-core system 600 includes a system bus path for transferring (receiving and transmitting) data and an interrupt path for handling interrupts output from the intellectual property (IP) blocks 610_1 through 610 — n. Themulti-core processor 640 may perform specific operations for the intellectual property (IP) blocks 610_1 through 610 — n based on the system bus path. In addition, themulti-core processor 640 may perform interrupt handling operations for the intellectual property (IP) blocks 610_1 through 610 — n based on the interrupt path. Themulti-core system 600 may be implemented by various packages such as Package on Package (PoP), Ball grid arrays (BGAs), Chip scale packages (CSPs), Plastic Leaded Chip Carrier (PLCC), Plastic Dual In-Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flat-Pack (TQFP), Small Outline Integrated Circuit (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline Package (TSOP), Thin Quad Flat-Pack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP), Wafer-Level Processed Stack Package (WSP). - Example embodiments may be applied to electric devices including a plurality of processors (or a multi-core processor). For example, at least some example embodiments may be applied to electric devices such as cellular phones, smart phones, computers, laptops, workstations, smart-pads, security systems, etc.
- The foregoing is illustrative of example embodiments and is not to be construed as limiting thereof. Although a few example embodiments have been described, those skilled in the art will readily appreciate that many modifications are possible in the example embodiments without materially departing from the novel teachings and advantages of inventive concepts. Accordingly, all such modifications are intended to be included within the scope of inventive concepts as defined in the claims. Therefore, it is to be understood that the foregoing is illustrative of various example embodiments and is not to be construed as limited to the specific example embodiments disclosed, and that modifications to the disclosed example embodiments, as well as other example embodiments, are intended to be included within the scope of the appended claims.
Claims (26)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102012112363A DE102012112363A1 (en) | 2012-01-30 | 2012-12-17 | Method for controlling power of chip system of multi-core system, involves comparing time interval between receipt of former and latter wake-up request signals and controlling output of wake-up request signal based on the comparison |
TW102102239A TWI578235B (en) | 2012-01-30 | 2013-01-21 | System-on-chip and power control method thereof, and multi-core system |
JP2013009461A JP6161301B2 (en) | 2012-01-30 | 2013-01-22 | Interrupt spread method, interrupt request signal spreader circuit, and system-on-chip including the same |
CN201310036955.8A CN103226494B (en) | 2012-01-30 | 2013-01-30 | Spread the method, interrupt request singal distribution circuit and on-chip system of multiple interruptions |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2012-0008822 | 2012-01-30 | ||
KR1020120008822A KR101841930B1 (en) | 2012-01-30 | 2012-01-30 | Method of spreading a plurality of interrupts, interrupt spreader, and system on-chip having the same |
Publications (2)
Publication Number | Publication Date |
---|---|
US20130198545A1 true US20130198545A1 (en) | 2013-08-01 |
US9298251B2 US9298251B2 (en) | 2016-03-29 |
Family
ID=48871384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/677,775 Active 2034-04-12 US9298251B2 (en) | 2012-01-30 | 2012-11-15 | Methods of spreading plurality of interrupts, interrupt request signal spreader circuits, and systems-on-chips having the same |
Country Status (4)
Country | Link |
---|---|
US (1) | US9298251B2 (en) |
JP (1) | JP6161301B2 (en) |
KR (1) | KR101841930B1 (en) |
TW (1) | TWI578235B (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140310439A1 (en) * | 2013-04-11 | 2014-10-16 | Saeed Bshara | Low latency interrupt with existence of interrupt moderation |
US9183896B1 (en) * | 2014-06-30 | 2015-11-10 | International Business Machines Corporation | Deep sleep wakeup of multi-bank memory |
US20160147532A1 (en) * | 2014-11-24 | 2016-05-26 | Junghi Min | Method for handling interrupts |
US20170364137A1 (en) * | 2016-06-21 | 2017-12-21 | Alexander Gendler | Processor Having Concurrent Core And Fabric Exit From A Low Power State |
US9900390B2 (en) | 2015-05-21 | 2018-02-20 | Nxp Usa, Inc. | Method and apparatus for controlling wake events in a data processing system |
US20190187769A1 (en) * | 2014-12-04 | 2019-06-20 | Samsung Electronics Co., Ltd. | Method of operating semiconductor device |
CN110050453A (en) * | 2016-12-14 | 2019-07-23 | 华为技术有限公司 | A kind of method and relevant device of terminal communication |
US20210318740A1 (en) * | 2020-04-10 | 2021-10-14 | Marvell Asia Pte, Ltd. (Registration No. 199702379M) | Power management and staggering transitioning from idle mode to operational mode |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547546B2 (en) * | 2012-03-12 | 2017-01-17 | Nxp Usa, Inc. | Interrupt supervision system, processing system and method for interrupt supervision |
US9622069B2 (en) * | 2014-05-21 | 2017-04-11 | Qualcomm Incorporated | Systems and methods for multiple network access by mobile computing devices |
KR20180083688A (en) * | 2017-01-13 | 2018-07-23 | 삼성전자주식회사 | Application Processor and Integrated Circuit Including Interrupt Controller |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265215A (en) * | 1991-04-22 | 1993-11-23 | International Business Machines Corporation | Multiprocessor system and interrupt arbiter thereof |
US5708814A (en) * | 1995-11-21 | 1998-01-13 | Microsoft Corporation | Method and apparatus for reducing the rate of interrupts by generating a single interrupt for a group of events |
US20060069833A1 (en) * | 2004-09-27 | 2006-03-30 | Ruemmler Christopher P | Batch processing of interrupts |
US20100122099A1 (en) * | 2008-11-12 | 2010-05-13 | Samsung Electronics Co. Ltd. | Apparatus and method for controlling power consumption in a multi modem system |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR940001878B1 (en) | 1990-03-08 | 1994-03-10 | 가부시끼가이샤 히다찌세이사꾸쇼 | Multiprocessor system and apparatus for interrupt control thereof |
US5894577A (en) * | 1993-09-22 | 1999-04-13 | Advanced Micro Devices, Inc. | Interrupt controller with external in-service indication for power management within a computer system |
US5918057A (en) | 1997-03-20 | 1999-06-29 | Industrial Technology Research Institute | Method and apparatus for dispatching multiple interrupt requests simultaneously |
JPH11149459A (en) * | 1997-11-17 | 1999-06-02 | Nec Corp | Multiprocessor system |
US7328294B2 (en) * | 2001-12-03 | 2008-02-05 | Sun Microsystems, Inc. | Methods and apparatus for distributing interrupts |
TW550908B (en) * | 2002-05-21 | 2003-09-01 | Rdc Semiconductor Co Ltd | System and method for flexibly interrupting data processing |
JP3981059B2 (en) | 2003-09-26 | 2007-09-26 | 京セラミタ株式会社 | Image processing apparatus, control method thereof, and control program thereof |
US20060112208A1 (en) | 2004-11-22 | 2006-05-25 | International Business Machines Corporation | Interrupt thresholding for SMT and multi processor systems |
US20060136642A1 (en) | 2004-12-21 | 2006-06-22 | Ooi Ping C | Interrupt distribution for multiprocessor system |
TWI317468B (en) | 2006-02-20 | 2009-11-21 | Ite Tech Inc | Method for controlling power consumption and multi-processor system using the same |
JP2008176360A (en) | 2007-01-16 | 2008-07-31 | Renesas Technology Corp | Multiprocessor system |
US7991992B2 (en) | 2007-03-13 | 2011-08-02 | Intel Corporation | Power reduction for system on chip |
JP4659008B2 (en) * | 2007-09-13 | 2011-03-30 | ルネサスエレクトロニクス株式会社 | Peripheral circuit with host load adjustment function |
US7685347B2 (en) | 2007-12-11 | 2010-03-23 | Xilinx, Inc. | Interrupt controller for invoking service routines with associated priorities |
CN101354664B (en) | 2008-08-19 | 2011-12-28 | 中兴通讯股份有限公司 | Method and apparatus for interrupting load equilibrium of multi-core processor |
JP5283078B2 (en) * | 2009-01-13 | 2013-09-04 | セイコーインスツル株式会社 | Detection circuit and sensor device |
KR101610828B1 (en) | 2009-09-23 | 2016-04-08 | 삼성전자주식회사 | Apparatus and method for managing interrupts On/Off for multi-core processor |
-
2012
- 2012-01-30 KR KR1020120008822A patent/KR101841930B1/en active IP Right Grant
- 2012-11-15 US US13/677,775 patent/US9298251B2/en active Active
-
2013
- 2013-01-21 TW TW102102239A patent/TWI578235B/en active
- 2013-01-22 JP JP2013009461A patent/JP6161301B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265215A (en) * | 1991-04-22 | 1993-11-23 | International Business Machines Corporation | Multiprocessor system and interrupt arbiter thereof |
US5708814A (en) * | 1995-11-21 | 1998-01-13 | Microsoft Corporation | Method and apparatus for reducing the rate of interrupts by generating a single interrupt for a group of events |
US20060069833A1 (en) * | 2004-09-27 | 2006-03-30 | Ruemmler Christopher P | Batch processing of interrupts |
US20100122099A1 (en) * | 2008-11-12 | 2010-05-13 | Samsung Electronics Co. Ltd. | Apparatus and method for controlling power consumption in a multi modem system |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10614006B2 (en) * | 2013-04-11 | 2020-04-07 | Amazon Technologies, Inc. | Low latency interrupt with existence of interrupt moderation |
US9697149B2 (en) * | 2013-04-11 | 2017-07-04 | Said Bshara | Low latency interrupt with existence of interrupt moderation |
US20140310439A1 (en) * | 2013-04-11 | 2014-10-16 | Saeed Bshara | Low latency interrupt with existence of interrupt moderation |
US20170270064A1 (en) * | 2013-04-11 | 2017-09-21 | Amazon Technologies, Inc. | Low latency interrupt with existence of interrupt moderation |
US9251869B2 (en) * | 2014-06-30 | 2016-02-02 | International Business Machines Corporation | Deep sleep wakeup of multi-bank memory |
US9183896B1 (en) * | 2014-06-30 | 2015-11-10 | International Business Machines Corporation | Deep sleep wakeup of multi-bank memory |
US20160147532A1 (en) * | 2014-11-24 | 2016-05-26 | Junghi Min | Method for handling interrupts |
US10969855B2 (en) * | 2014-12-04 | 2021-04-06 | Samsung Electronics Co., Ltd | Method of operating semiconductor device |
US11543874B2 (en) * | 2014-12-04 | 2023-01-03 | Samsung Electronics Co., Ltd | Method of operating semiconductor device |
US20190187769A1 (en) * | 2014-12-04 | 2019-06-20 | Samsung Electronics Co., Ltd. | Method of operating semiconductor device |
US9900390B2 (en) | 2015-05-21 | 2018-02-20 | Nxp Usa, Inc. | Method and apparatus for controlling wake events in a data processing system |
US20170364137A1 (en) * | 2016-06-21 | 2017-12-21 | Alexander Gendler | Processor Having Concurrent Core And Fabric Exit From A Low Power State |
US10289188B2 (en) * | 2016-06-21 | 2019-05-14 | Intel Corporation | Processor having concurrent core and fabric exit from a low power state |
EP3547632A4 (en) * | 2016-12-14 | 2019-11-20 | Huawei Technologies Co., Ltd. | Method for terminal communication and related device |
US20200112989A1 (en) * | 2016-12-14 | 2020-04-09 | Huawei Technologies Co., Ltd. | Terminal Communication Method and Related Device |
CN110050453A (en) * | 2016-12-14 | 2019-07-23 | 华为技术有限公司 | A kind of method and relevant device of terminal communication |
US20210318740A1 (en) * | 2020-04-10 | 2021-10-14 | Marvell Asia Pte, Ltd. (Registration No. 199702379M) | Power management and staggering transitioning from idle mode to operational mode |
US11994925B2 (en) * | 2020-04-10 | 2024-05-28 | Marvell Asia Pte Ltd | Power management and staggering transitioning from idle mode to operational mode |
Also Published As
Publication number | Publication date |
---|---|
JP2013156984A (en) | 2013-08-15 |
JP6161301B2 (en) | 2017-07-12 |
TW201331845A (en) | 2013-08-01 |
KR101841930B1 (en) | 2018-03-26 |
TWI578235B (en) | 2017-04-11 |
KR20130087735A (en) | 2013-08-07 |
US9298251B2 (en) | 2016-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9298251B2 (en) | Methods of spreading plurality of interrupts, interrupt request signal spreader circuits, and systems-on-chips having the same | |
CN110109527B (en) | Dynamic voltage margin recovery | |
CN110059048B (en) | Impedance compensation based on detection sensor data | |
US8271812B2 (en) | Hardware automatic performance state transitions in system on processor sleep and wake events | |
US10175905B2 (en) | Systems and methods for dynamically switching memory performance states | |
US9753771B2 (en) | System-on-chip including multi-core processor and thread scheduling method thereof | |
TWI596468B (en) | Power management for memory accesses in a system-on-chip | |
US8726055B2 (en) | Multi-core power management | |
US20130191677A1 (en) | Regional Clock Gating and Dithering | |
KR20160003833A (en) | Dynamic voltage and frequency management based on active processors | |
US10133336B2 (en) | Dynamically entering low power states during active workloads | |
US9229816B2 (en) | Hybrid system architecture for random access memory | |
US20120185703A1 (en) | Coordinating Performance Parameters in Multiple Circuits | |
WO2007024435A2 (en) | Dynamic memory sizing for power reduction | |
US10241560B2 (en) | Control scheme to temporarily raise supple voltage in response to sudden change in current demand | |
TW201312336A (en) | Dynamic frequency control using coarse clock gating | |
US10572183B2 (en) | Power efficient retraining of memory accesses | |
US20160070323A1 (en) | Supply voltage node coupling using a switch | |
CN103226494B (en) | Spread the method, interrupt request singal distribution circuit and on-chip system of multiple interruptions | |
US10303241B2 (en) | System and method for fine-grained power control management in a high capacity computer cluster | |
US20220179797A1 (en) | Memory transaction queue bypass based on configurable address and bandwidth conditions | |
US9354694B2 (en) | Controlling processor consumption using on-off keying having a maximum off time | |
CN115904694A (en) | Resource management controller | |
US10270434B2 (en) | Power saving with dynamic pulse insertion | |
US9529405B2 (en) | Subsystem idle aggregation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEE, JAE-GON;KIM, DONG-KEUN;KIM, SI-YOUNG;AND OTHERS;REEL/FRAME:029352/0219 Effective date: 20121112 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
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 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |