KR101841930B1 - Method of spreading a plurality of interrupts, interrupt spreader, and system on-chip having the same - Google Patents

Method of spreading a plurality of interrupts, interrupt spreader, and system on-chip having the same Download PDF

Info

Publication number
KR101841930B1
KR101841930B1 KR1020120008822A KR20120008822A KR101841930B1 KR 101841930 B1 KR101841930 B1 KR 101841930B1 KR 1020120008822 A KR1020120008822 A KR 1020120008822A KR 20120008822 A KR20120008822 A KR 20120008822A KR 101841930 B1 KR101841930 B1 KR 101841930B1
Authority
KR
South Korea
Prior art keywords
interrupt
interrupt request
processors
nirq
request signal
Prior art date
Application number
KR1020120008822A
Other languages
Korean (ko)
Other versions
KR20130087735A (en
Inventor
이재곤
김동근
김시영
허정훈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020120008822A priority Critical patent/KR101841930B1/en
Priority to US13/677,775 priority patent/US9298251B2/en
Priority to DE102012112363A priority patent/DE102012112363A1/en
Priority to TW102102239A priority patent/TWI578235B/en
Priority to JP2013009461A priority patent/JP6161301B2/en
Priority to CN201310036955.8A priority patent/CN103226494B/en
Publication of KR20130087735A publication Critical patent/KR20130087735A/en
Application granted granted Critical
Publication of KR101841930B1 publication Critical patent/KR101841930B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

인터럽트 스프레드 방법은 복수의 인터럽트 요청 신호들을 수신하고, 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단하며, 상기 시간 간격이 기 설정된 간격보다 작은 경우 상기 시간 간격을 기 설정된 간격으로 조절하고, 인터럽트 요청 신호들을 복수의 프로세서들에 각각 출력할 수 있다. 이에, 인터럽트 스프레드 방법은 짧은 시간 내에 연속적으로 생성되는 인터럽트들에 의하여 프로세서들이 급작스러운 웨이크-업을 하는 것을 방지할 수 있다.The interrupt spread method includes receiving a plurality of interrupt request signals, determining whether each time interval between interrupt request signals is less than a predetermined interval, and if the time interval is smaller than the predetermined interval, And output the interrupt request signals to the plurality of processors, respectively. Thus, the interrupt spread method can prevent processors from suddenly waking up due to interrupts generated continuously in a short time.

Description

인터럽트 스프레드 방법, 인터럽트 스프레드 장치 및 이를 구비하는 시스템 온-칩 {METHOD OF SPREADING A PLURALITY OF INTERRUPTS, INTERRUPT SPREADER, AND SYSTEM ON-CHIP HAVING THE SAME}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an interrupt spread method, an interrupt spread device, and a system on-chip having the interrupt spread device,

본 발명은 멀티 프로세서 시스템(또는, 멀티 코어 시스템)에 관한 것으로서, 더욱 상세하게는 복수의 인터럽트 소스들에서 생성되는 복수의 인터럽트들에 대한 인터럽트 스프레드 방법, 인터럽트 스프레드 장치 및 이를 구비하는 시스템 온-칩에 관한 것이다.The present invention relates to a multiprocessor system (or multicore system), and more particularly, to an interrupt spread method for a plurality of interrupts generated in a plurality of interrupt sources, an interrupt spread device, and a system on- .

일반적으로, 전자 기기는 인터럽트 처리를 위한 인터럽트 컨트롤러를 구비하고, 인터럽트 소스들이 복수의 인터럽트들을 생성하면, 인터럽트들에 우선순위를 부여하여 프로세서에 출력할 수 있다. 최근에는 전자 기기의 소형화 및 경량화 추세에 따라 시스템 온-칩(System On-Chip; SOC)이 널리 사용되고, 시스템 온-칩에는 모듈 형태의 복수의 아이피(Intellectual Property; IP)들 및 복수의 프로세서들(또는, 복수의 코어(core)들을 가진 프로세서)이 실장될 수 있다.Generally, an electronic device has an interrupt controller for interrupt processing, and when the interrupt sources generate a plurality of interrupts, the interrupts can be prioritized and output to the processor. In recent years, system on-chip (SOC) has been widely used in accordance with the trend of downsizing and lightening of electronic devices, and a plurality of Intellectual Property (IP) (Or a processor having a plurality of cores) can be mounted.

한편, 시스템 온-칩에 실장되는 복수의 프로세서들은 전력 소모를 줄이기 위하여 저전력 모드로 빈번하게 진입을 하게 되고, 인터럽트 소스들로부터 인터럽트들이 생성되어 인터럽트 요청 신호가 입력되면 저전력 모드에서 각각 탈출할 수 있다. 이 때, 시스템 온-칩에 실장되는 복수의 프로세서들이 저전력 모드에서 동시에 탈출하게 되는 경우, 급작스러운 웨이크-업(wake-up)으로 인하여 상기 프로세서들 내부에 인러쉬 전류(in-rush current)가 생성될 수 있다.On the other hand, a plurality of processors mounted on the system on-chip frequently enter the low-power mode to reduce power consumption, and when interrupts are generated from the interrupt sources and an interrupt request signal is input, . In this case, when a plurality of processors mounted on the system-on-chip are simultaneously escaping in the low power mode, an in-rush current is generated in the processors due to sudden wake-up Lt; / RTI >

본 발명의 일 목적은 복수의 인터럽트 소스들에서 짧은 시간 내에 연속적으로 생성되는 복수의 인터럽트들에 의하여 인액티브 상태(예를 들어, 파워 다운 상태, 파워 오프 상태 등)에 있는 복수의 프로세서들(또는, 멀티 코어 프로세서의 복수의 코어들)이 짧은 시간 내에 액티브 상태(예를 들어, 파워 온 상태 등)로 연속적으로 변경되는 것(즉, 급작스러운 웨이크-업)을 방지할 수 있는 인터럽트 스프레드 방법을 제공하는 것이다.It is an object of the present invention to provide a system and method for a plurality of processors (or processors) in an inactive state (e.g., a power down state, a power off state, etc.) by a plurality of interrupts consecutively generated in a short time in a plurality of interrupt sources (I.e., a sudden wake-up) in a short period of time (for example, a plurality of cores of a multi-core processor), an active state .

본 발명의 다른 목적은 복수의 인터럽트 소스들에서 짧은 시간 내에 연속적으로 생성되는 복수의 인터럽트들에 의하여 인액티브 상태(예를 들어, 파워 다운 상태, 파워 오프 상태 등)에 있는 복수의 프로세서들(또는, 멀티 코어 프로세서의 복수의 코어들)이 짧은 시간 내에 액티브 상태(예를 들어, 파워 온 상태 등)로 연속적으로 변경되는 것(즉, 급작스러운 웨이크-업)을 방지할 수 있는 인터럽트 스프레드 장치를 제공하는 것이다.It is another object of the present invention to provide a system and method for a plurality of processors (or processors) in an inactive state (e.g., a power down state, a power off state, etc.) by a plurality of interrupts consecutively generated in a short time in a plurality of interrupt sources , An interrupt spread device capable of preventing continuous change (i.e., abrupt wake-up) of an active state (e.g., a plurality of cores of a multicore processor) in an active state .

본 발명의 또 다른 목적은 상기 인터럽트 스프레드 장치를 구비하는 시스템 온-칩을 제공하는 것이다.It is still another object of the present invention to provide a system on-chip having the interrupt spread device.

다만, 본 발명의 해결하고자 하는 과제는 상기 언급된 과제에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.It is to be understood, however, that the present invention is not limited to the above-described embodiments and various modifications may be made without departing from the spirit and scope of the invention.

본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 인터럽트 스프레드 방법은 복수의 인터럽트 요청 신호들을 수신하는 단계, 상기 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단하는 단계, 상기 시간 간격이 상기 기 설정된 간격보다 작은 경우 상기 시간 간격을 상기 기 설정된 간격으로 조절하는 단계, 및 상기 인터럽트 요청 신호들을 복수의 프로세서들에 각각 출력하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided an interrupt spread method including receiving a plurality of interrupt request signals, determining whether each of the interrupt request signals is less than a predetermined interval Adjusting the time interval to a predetermined interval when the time interval is smaller than the preset interval, and outputting the interrupt request signals to the plurality of processors, respectively .

일 실시예에 의하면, 상기 인터럽트 요청 신호들은 복수의 인터럽트 소스(source)들로부터 출력되는 복수의 인터럽트들에 기초하여 생성되고, 상기 인터럽트 요청 신호들 각각은 상기 프로세서들에 각각 할당될 수 있다.According to one embodiment, the interrupt request signals are generated based on a plurality of interrupts output from a plurality of interrupt sources, and each of the interrupt request signals may be respectively assigned to the processors.

일 실시예에 의하면, 상기 기 설정된 간격은 상기 프로세서들이 인액티브(inactive) 상태에서 액티브(active) 상태로 변경될 때, 상기 프로세서들 내부에 인러쉬 전류가 생성되지 않는 범위 내에서 결정될 수 있다.According to one embodiment, the predetermined interval may be determined within a range in which an inrush current is not generated in the processors when the processors are changed from an inactive state to an active state.

일 실시예에 의하면, 상기 기 설정된 간격으로 조절하는 단계는 제 k(단, k는 1이상인 정수) 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격이 0보다 큰 경우, 상기 제 k 시간 간격이 상기 기 설정된 간격으로 될 때까지 상기 제 k+1 인터럽트 요청 신호의 출력을 지연시키는 단계를 포함할 수 있다.According to an embodiment of the present invention, the step of adjusting at the predetermined interval may include: when kth time interval between the k-th (k is an integer equal to or greater than 1) interrupt request signal and the (k + And delaying the output of the (k + 1) -th interrupt request signal until the k-th time interval becomes the predetermined interval.

일 실시예에 의하면, 상기 기 설정된 간격으로 조절하는 단계는 기 설정된 우선순위에 따라 상기 인터럽트 요청 신호들의 출력 순서를 변경하는 단계를 더 포함할 수 있다.According to an embodiment of the present invention, the adjusting step may further include changing an output order of the interrupt request signals according to a predetermined priority.

일 실시예에 의하면, 상기 기 설정된 간격으로 조절하는 단계는 상기 제 k 시간 간격이 0인 경우, 상기 기 설정된 우선순위에 따라 상기 제 k 인터럽트 요청 신호와 상기 제 k+1 인터럽트 요청 신호 중에서 하나의 출력을 상기 기 설정된 간격만큼 지연시키는 단계를 더 포함할 수 있다.According to an embodiment of the present invention, when the k-th time interval is 0, the controlling of the k-th interrupt request signal and the (k + 1) And delaying the output by the predetermined interval.

본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 인터럽트 스프레드 방법은 복수의 인터럽트 요청 신호들을 수신하는 단계, 상기 인터럽트 요청 신호들이 각각 출력될 복수의 프로세서들을 액티브(active) 상태인 프로세서들과 인액티브(inactive) 상태인 프로세서들로 분류하는 단계, 상기 인터럽트 요청 신호들 중에서 상기 액티브 상태인 프로세서들에 출력될 비대상(non-target) 인터럽트 요청 신호들을 상기 액티브 상태인 프로세서들에 각각 출력하는 단계, 상기 인터럽트 요청 신호들 중에서 상기 인액티브 상태인 프로세서들에 출력될 대상(target) 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단하는 단계, 상기 시간 간격이 상기 기 설정된 간격보다 작은 경우 상기 시간 간격을 상기 기 설정된 간격으로 조절하는 단계, 및 상기 대상 인터럽트 요청 신호들을 상기 인액티브 상태인 프로세서들에 각각 출력하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided an interrupt spread method comprising: receiving a plurality of interrupt request signals; The method of claim 1, further comprising the steps of: classifying the interrupt request signals into processors that are inactive with the processors and non-target interrupt request signals to be output to the active processors among the interrupt request signals, Determining whether a time interval between target interrupt request signals to be output to the inactive processors among the interrupt request signals is less than a predetermined interval, When the interval is smaller than the preset interval, And outputting the target interrupt request signals to the processors in the inactive state, respectively.

일 실시예에 의하면, 상기 기 설정된 간격으로 조절하는 단계는 인접하는 제 k(단, k는 1이상인 정수) 대상 인터럽트 요청 신호와 제 k+1 대상 인터럽트 요청 신호 사이의 제 k 시간 간격이 0보다 큰 경우, 상기 제 k 시간 간격이 상기 기 설정된 간격으로 될 때까지 상기 제 k+1 대상 인터럽트 요청 신호의 출력을 지연시키는 단계를 포함할 수 있다.According to an embodiment of the present invention, the step of adjusting at the predetermined interval may include a step of setting a k-th time interval between the k-th target interrupt request signal and the k-th target interrupt request signal of the k-th contiguous k And if the kth time interval is greater than the predetermined time, delaying the output of the (k + 1) th target interrupt request signal until the kth time interval becomes the predetermined interval.

일 실시예에 의하면, 상기 기 설정된 간격으로 조절하는 단계는 기 설정된 우선순위에 따라 상기 대상 인터럽트 요청 신호들의 출력 순서를 변경하는 단계를 더 포함할 수 있다.According to an embodiment of the present invention, the adjusting step may further include changing an output order of the target interrupt request signals according to a predetermined priority.

일 실시예에 의하면, 상기 기 설정된 간격으로 조절하는 단계는 상기 제 k 시간 간격이 0인 경우, 상기 기 설정된 우선순위에 따라 상기 제 k 대상 인터럽트 요청 신호와 상기 제 k+1 대상 인터럽트 요청 신호 중에서 하나의 출력을 상기 기 설정된 간격만큼 지연시키는 단계를 더 포함할 수 있다.According to an embodiment of the present invention, when the k-th time interval is 0, the controlling of the k-th target interrupt request signal and the (k + 1) th target interrupt request signal And delaying one output by the predetermined interval.

본 발명의 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 인터럽트 스프레드 장치는 제 1 내지 제 m(단, m은 2이상의 정수) 인터럽트 요청 신호들을 수신하고, 상기 제 1 내지 제 m 인터럽트 요청 신호들을 적어도 기 설정된 간격 이상을 두어 제 1 내지 제 m 프로세서들에 각각 출력하는 제 1 내지 제 m 인터럽트 홀더들, 및 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 인접하는 인터럽트 요청 신호들 사이의 시간 간격이 상기 기 설정된 간격보다 작은 경우 상기 시간 간격을 상기 기 설정된 간격으로 조절하는 인터럽트 아비터를 포함할 수 있다.According to another aspect of the present invention, there is provided an interrupt spreading apparatus for receiving first to m-th (m is an integer of 2 or more) interrupt request signals, First to m-th interrupt holders for outputting request signals to the first to m-th processors while leaving request signals at least over a predetermined interval, and first to m-th interrupt holders for outputting the interrupt request signals among adjacent interrupt request signals And an interrupt arbiter for adjusting the time interval to a predetermined interval when the time interval is smaller than the predetermined interval.

일 실시예에 의하면, 상기 제 1 내지 제 m 인터럽트 요청 신호들은 복수의 인터럽트 소스들로부터 출력되는 복수의 인터럽트들에 기초하여 생성되고, 상기 제 1 내지 제 m 인터럽트 요청 신호들은 상기 제 1 내지 제 m 인터럽트 홀더들에 각각 수신될 수 있다.According to an embodiment, the first to m-th interrupt request signals are generated based on a plurality of interrupts output from a plurality of interrupt sources, and the first to m-th interrupt request signals are generated by the first to m- Interrupt holders, respectively.

일 실시예에 의하면, 상기 제 1 내지 제 m 인터럽트 홀더들은 상기 제 1 내지 제 m 프로세서들에 각각 연결되고, 상기 제 1 내지 제 m 인터럽트 요청 신호들을 적어도 상기 기 설정된 간격 이상을 두어 상기 제 1 내지 제 m 프로세서들에 각각 출력할 수 있다.According to an embodiment, the first through the m-th interrupt holders are connected to the first through m-th processors, respectively, and the first through m-th interrupt request signals are connected to the first through m- Lt; RTI ID = 0.0 > m processors. ≪ / RTI >

일 실시예에 의하면, 상기 기 설정된 간격은 상기 제 1 내지 제 m 프로세서들이 인액티브 상태에서 액티브 상태로 변경될 때, 상기 제 1 내지 제 m 프로세서들 내부에 인러쉬 전류가 생성되지 않는 범위 내에서 결정될 수 있다.According to an embodiment of the present invention, the predetermined interval is set to a value within a range in which an inrush current is not generated in the first to mth processors when the first to mth processors are changed from an inactive state to an active state Can be determined.

일 실시예에 의하면, 상기 제 1 내지 제 m 인터럽트 홀더들은 상기 제 1 내지 제 m 인터럽트 요청 신호들을 각각 수신하면, 상기 인터럽트 아비터에 출력 요청 신호를 송신하고, 상기 인터럽트 아비터로부터 출력 허가 신호를 수신하면, 상기 제 1 내지 제 m 인터럽트 요청 신호들을 상기 제 1 내지 제 m 프로세서들에 각각 출력할 수 있다.According to an embodiment, when the first to m-th interrupt holders receive the first to m-th interrupt request signals, they transmit an output request signal to the interrupt arbiter, and when they receive the output enable signal from the interrupt arbitrator And output the first to m-th interrupt request signals to the first to m-th processors, respectively.

일 실시예에 의하면, 상기 제 1 내지 제 m 인터럽트 홀더들 각각은 상기 제 1 내지 제 m 인터럽트 요청 신호들이 수신되지 않았음을 나타내는 아이들 스테이트(idle state), 상기 인터럽트 아비터로부터 상기 출력 허가 신호를 기다리고 있음을 나타내는 웨이트 스테이트(wait state) 및 상기 제 1 내지 제 m 인터럽트 요청 신호들이 상기 제 1 내지 제 m 프로세서들에 출력하고 있음을 나타내는 어서트 스테이트(assert state)로 구성된 스테이트 머신(state machine)으로 구현될 수 있다.According to an embodiment, each of the first through m-th interrupt holders may wait for the output permission signal from the interrupt arbiter in an idle state indicating that the first through the m-th interrupt request signals are not received, And an assert state indicating that the first to the m-th interrupt request signals are output to the first to m-th processors, respectively, and a state machine Can be implemented.

일 실시예에 의하면, 상기 인터럽트 아비터는 상기 제 1 내지 제 m 인터럽트 홀더들로부터 각각 상기 출력 요청 신호를 수신하면, 상기 제 1 내지 제 m 인터럽트 홀더들에 상기 출력 허가 신호를 순차적으로 출력하여, 상기 제 1 내지 제 m 인터럽트 요청 신호들이 적어도 상기 기 설정된 간격 이상으로 상기 제 1 내지 제 m 프로세서들에 각각 출력되도록 제어할 수 있다.According to an embodiment, the interrupt arbiter sequentially outputs the output permission signal to the first through m-th interrupt holders when receiving the output request signal from the first through m-th interrupt holders, And to control the first through m-th interrupt request signals to be output to the first through m-th processors at least over the predetermined interval.

일 실시예에 의하면, 상기 인터럽트 아비터는 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 어느 하나도 상기 제 1 내지 제 m 프로세서들에 출력되고 있지 않음을 나타내는 아이들 스테이트, 및 상기 제 1 내지 제 n 인터럽트 요청 신호들 중에서 적어도 하나 이상이 상기 제 1 내지 제 m 프로세서들에 출력되고 있음을 나타내는 웨이트 스테이트로 구성된 스테이트 머신으로 구현될 수 있다.According to an embodiment, the interrupt arbiter includes an idle state indicating that any one of the first through m-th interrupt request signals is not output to the first through m-th processors, And a weight state indicating that at least one of the signals is being output to the first to m-th processors.

일 실시예에 의하면, 상기 인터럽트 아비터는 기 설정된 우선순위에 따라 상기 제 1 내지 제 m 인터럽트 요청 신호들의 출력 순서를 변경할 수 있다.According to an embodiment, the interrupt arbiter may change the output order of the first to m-th interrupt request signals according to a predetermined priority.

일 실시예에 의하면, 상기 인터럽트 아비터는 상기 제 1 내지 제 m 프로세서들을 액티브 상태인 프로세서들로 구성된 제 1 그룹과 인액티브 상태인 프로세서들로 구성된 제 2 그룹으로 분류하고, 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 상기 제 1 그룹에 할당된 인터럽트 요청 신호들에 대해서는 상기 기 설정된 간격으로 조절하지 않고, 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 상기 제 2 그룹에 할당된 인터럽트 요청 신호들에 대해서만 상기 기 설정된 간격으로 조절할 수 있다.According to one embodiment, the interrupt arbiter classifies the first through m-th processors into a first group composed of processors in an active state and a second group composed of processors in an inactive state, and the first through m- The interrupt request signals allocated to the first group among the interrupt request signals are not adjusted at the predetermined intervals and the interrupt request signals allocated to the second group among the first to the m- Can be adjusted at the predetermined interval.

본 발명의 또 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 시스템 온-칩은 복수의 인터럽트들을 생성하는 복수의 인터럽트 소스들, 상기 인터럽트들에 기초하여 제 1 내지 제 m(단, m은 2이상의 정수) 인터럽트 요청 신호들을 생성하는 인터럽트 컨트롤러, 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 인접하는 인터럽트 요청 신호들 사이의 시간 간격을 적어도 기 설정된 간격 이상으로 조절하는 인터럽트 스프레드 장치, 및 상기 제 1 내지 제 m 인터럽트 요청 신호들에 응답하여 상기 인터럽트 소스들을 위한 인터럽트 처리를 각각 수행하는 제 1 내지 제 m 프로세서들을 포함할 수 있다.According to still another aspect of the present invention, there is provided a system on-chip comprising a plurality of interrupt sources for generating a plurality of interrupts, first to m-th m is an integer greater than or equal to 2) interrupt request signals; an interrupt spread device for adjusting a time interval between adjacent interrupt request signals among the first to the m-th interrupt request signals to at least a predetermined interval; And first to m-th processors for performing interrupt processing for the interrupt sources in response to the first to m-th interrupt request signals, respectively.

일 실시예에 의하면, 상기 인터럽트 스프레드 장치는 상기 제 1 내지 제 m 인터럽트 요청 신호들을 수신하고, 상기 제 1 내지 제 m 인터럽트 요청 신호들을 적어도 상기 기 설정된 간격 이상을 두어 상기 제 1 내지 제 m 프로세서들에 각각 출력하는 제 1 내지 제 m 인터럽트 홀더들, 및 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 상기 인접하는 인터럽트 요청 신호들 사이의 상기 시간 간격이 상기 기 설정된 간격보다 작은 경우 상기 시간 간격을 상기 기 설정된 간격으로 조절하는 인터럽트 아비터를 포함할 수 있다.According to an embodiment, the interrupt spread device receives the first through m-th interrupt request signals and transmits the first through m-th interrupt request signals to the first through m- And outputting the interrupt request signals to the first to mth interrupt holders when the time interval between the adjacent interrupt request signals is less than the preset interval, And an interrupt arbiter for adjusting the interrupt interval at a predetermined interval.

일 실시예에 의하면, 상기 제 1 내지 제 m 인터럽트 요청 신호들은 상기 제 1 내지 제 m 인터럽트 홀더들에 각각 수신되고, 상기 제 1 내지 제 m 인터럽트 홀더들은 상기 제 1 내지 제 m 프로세서들에 각각 연결될 수 있다.According to an embodiment, the first to the m-th interrupt request signals are received in the first to m-th interrupt holders, respectively, and the first to m-th interrupt holders are connected to the first to m- .

일 실시예에 의하면, 상기 인터럽트 아비터는 기 설정된 우선순위에 따라 상기 제 1 내지 제 m 인터럽트 요청 신호들의 출력 순서를 변경할 수 있다.According to an embodiment, the interrupt arbiter may change the output order of the first to m-th interrupt request signals according to a predetermined priority.

일 실시예에 의하면, 상기 인터럽트 아비터는 상기 제 1 내지 제 m 프로세서들을 액티브 상태인 프로세서들로 구성된 제 1 그룹과 인액티브 상태인 프로세서들로 구성된 제 2 그룹으로 분류하고, 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 상기 제 1 그룹에 할당된 인터럽트 요청 신호들에 대해서는 상기 기 설정된 간격으로 조절하지 않고, 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 상기 제 2 그룹에 할당된 인터럽트 요청 신호들에 대해서만 상기 기 설정된 간격으로 조절할 수 있다.According to one embodiment, the interrupt arbiter classifies the first through m-th processors into a first group composed of processors in an active state and a second group composed of processors in an inactive state, and the first through m- The interrupt request signals allocated to the first group among the interrupt request signals are not adjusted at the predetermined intervals and the interrupt request signals allocated to the second group among the first to the m- Can be adjusted at the predetermined interval.

일 실시예에 의하면, 상기 시스템 온-칩은 휴대폰, 스마트폰, 스마트패드 등과 같은 모바일 기기에 구비될 수 있다.According to one embodiment, the system on-chip may be provided in a mobile device such as a mobile phone, a smart phone, a smart pad, and the like.

본 발명의 또 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 인터럽트 처리 방법은 복수의 프로세서들 중에서 일부가 액티브(active) 상태이고, 다른 일부는 인액티브(inactive) 상태인 상황에서, 복수의 인터럽트 소스들이 복수의 인터럽트들을 생성하면, 상기 프로세서들로 하여금 상기 인터럽트들을 처리할 수 있다. 구체적으로, 상기 인터럽트 처리 방법은 인터럽트 컨트롤러로 하여금 상기 인터럽트 소스들로부터 상기 인터럽트들을 수신하고, 상기 인터럽트들을 기 설정된 방식에 따라 상기 프로세서들 각각에 할당하여 복수의 인터럽트 요청 신호들을 출력하게 하고, 인터럽트 스프레더로 하여금 상기 인터럽트 컨트롤러로부터 상기 인터럽트 요청 신호들을 수신하고, 상기 인터럽트 요청 신호들을 상기 액티브 상태인 프로세서들에 출력될 비대상 인터럽트 요청 신호들과 상기 인액티브 상태인 프로세서들에 출력될 대상 인터럽트 요청 신호들로 분류하게 하며, 상기 인터럽트 스프레더로 하여금 상기 비대상 인터럽트 요청 신호들을 각각 상기 액티브 상태인 프로세서들에 바로 출력하게 하고, 상기 인터럽트 스프레더가 상기 대상 인터럽트 요청 신호들 사이의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단하고, 상기 시간 간격이 상기 기 설정된 간격보다 작은 경우, 상기 시간 간격을 상기 기 설정된 간격으로 조절하게 하며, 상기 인터럽트 스프레더가 상기 대상 인터럽트 요청 신호들을 각각 상기 인액티브 상태인 프로세서들에 순차적으로 출력하게 할 수 있다.According to another aspect of the present invention, there is provided an interrupt processing method, wherein in a state where a part of a plurality of processors is in an active state and another part is in an inactive state, When a plurality of interrupt sources generate a plurality of interrupts, the processors can process the interrupts. Specifically, the interrupt processing method may include causing the interrupt controller to receive the interrupts from the interrupt sources, to allocate the interrupts to each of the processors according to a predetermined method to output a plurality of interrupt request signals, For receiving the interrupt request signals from the interrupt controller and outputting the interrupt request signals to non-target interrupt request signals to be output to the active processors and target interrupt request signals to be output to the inactive processors And causes the interrupt spreader to output the non-target interrupt request signals directly to the processors in the active state, and the interrupt spreader may cause the interrupt spreader to output the non- Determines whether the time interval is smaller than a predetermined interval, and adjusts the time interval to the predetermined interval when the time interval is smaller than the preset interval, and the interrupt spreader sets the target interrupt request signals And sequentially output the information to processors in the inactive state.

본 발명의 실시예들에 따른 인터럽트 스프레드 방법은 복수의 인터럽트 소스들이 짧은 시간 내에 복수의 인터럽트들을 연속적으로 출력할 때, 상기 인터럽트들에 기초하여 생성되는 복수의 인터럽트 요청 신호들 사이의 각각의 시간 간격을 적어도 기 설정된 간격 이상으로 조절함으로써, 인액티브 상태(예를 들어, 파워 다운 상태, 파워 오프 상태 등)에 있는 복수의 프로세서들(또는, 멀티 코어 프로세서의 복수의 코어들)이 짧은 시간 내에 액티브 상태(예를 들어, 파워 온 상태 등)로 연속적으로 변경되는 것(즉, 급작스러운 웨이크-업)을 방지할 수 있다. 이에, 상기 프로세서들 내부에 인러쉬 전류가 생성되는 것을 방지할 수 있다.An interrupt spreading method according to embodiments of the present invention is a method for interrupting a plurality of interrupt sources in a short time when successively outputting a plurality of interrupts in a short time, (Or a plurality of cores of a multicore processor) in an inactive state (e.g., a power down state, a power off state, etc.) can be activated It is possible to prevent a continuous change (i.e., abrupt wake-up) to a state (e.g., power-on state, etc.). Accordingly, an inrush current can be prevented from being generated in the processors.

본 발명의 실시예들에 따른 인터럽트 스프레드 장치는 복수의 인터럽트 소스들이 짧은 시간 내에 복수의 인터럽트들을 연속적으로 출력할 때, 상기 인터럽트들에 기초하여 생성되는 복수의 인터럽트 요청 신호들 사이의 각각의 시간 간격을 적어도 기 설정된 간격 이상으로 조절함으로써, 인액티브 상태(예를 들어, 파워 다운 상태, 파워 오프 상태 등)에 있는 복수의 프로세서들(예를 들어, 멀티 코어 프로세서의 복수의 코어들)이 짧은 시간 내에 액티브 상태(예를 들어, 파워 온 상태 등)로 연속적으로 변경되는 것(즉, 급작스러운 웨이크-업)을 방지할 수 있다. 이에, 상기 프로세서들 내부에 인러쉬 전류가 생성되는 것을 방지할 수 있다.An interrupt spread device according to embodiments of the present invention includes a plurality of interrupt sources for generating a plurality of interrupts in succession when a plurality of interrupt sources continuously output a plurality of interrupts in a short time, (E.g., a plurality of cores of a multicore processor) in an inactive state (e.g., power-down state, power-off state, etc.) (I.e., sudden wake-up) in an active state (e.g., a power-on state, etc.) Accordingly, an inrush current can be prevented from being generated in the processors.

본 발명의 실시예들에 따른 시스템 온-칩은 상기 인터럽트 스프레드 장치를 구비함으로써, 인액티브 상태(예를 들어, 파워 다운 상태, 파워 오프 상태 등)에 있는 복수의 프로세서들(예를 들어, 멀티 코어 프로세서의 복수의 코어들)이 짧은 시간 내에 액티브 상태(예를 들어, 파워 온 상태 등)로 연속적으로 변경됨(즉, 급작스러운 웨이크-업)에 따른 오동작을 방지하여 높은 동작 안정성을 확보할 수 있다.The system on-chip according to embodiments of the present invention may be provided with the interrupt spread device so that a plurality of processors in an inactive state (for example, a power-down state, a power-off state, (I.e., a plurality of cores of the core processor) are continuously changed in an active state (for example, a power-on state, etc.) within a short time (that is, sudden wake-up) have.

다만, 본 발명의 효과는 상기 언급한 효과에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.However, the effects of the present invention are not limited to the above-mentioned effects, and may be variously expanded without departing from the spirit and scope of the present invention.

도 1은 본 발명의 일 실시예에 따른 인터럽트 스프레드 방법을 나타내는 순서도이다.
도 2a 및 도 2b는 도 1의 인터럽트 스프레드 방법이 수행되는 일 예를 나타내는 도면들이다.
도 3a 및 도 3b는 도 1의 인터럽트 스프레드 방법이 수행되는 다른 예를 나타내는 도면들이다.
도 4a 및 도 4b는 도 1의 인터럽트 스프레드 방법이 수행되는 또 다른 예를 나타내는 도면들이다.
도 5는 본 발명의 다른 실시예에 따른 인터럽트 스프레드 방법을 나타내는 순서도이다.
도 6a 및 도 6b는 도 5의 인터럽트 스프레드 방법이 수행되는 일 예를 나타내는 도면들이다.
도 7은 본 발명의 또 다른 실시예에 따른 인터럽트 스프레드 방법을 나타내는 순서도이다.
도 8a 및 도 8b는 도 7의 인터럽트 스프레드 방법이 수행되는 일 예를 나타내는 도면들이다.
도 9는 본 발명의 또 다른 실시예에 따른 인터럽트 스프레드 방법을 나타내는 순서도이다.
도 10은 도 9의 인터럽트 스프레드 방법을 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 인터럽트 스프레드 장치를 나타내는 블록도이다.
도 12는 도 11의 인터럽트 스프레드 장치에 구비된 인터럽트 홀더의 스테이트 머신을 나타내는 도면이다.
도 13은 도 11의 인터럽트 스프레드 장치에 구비된 인터럽트 아비터의 스테이트 머신을 나타내는 도면이다.
도 14는 도 11의 인터럽트 스프레드 장치가 동작하는 일 예를 나타내는 타이밍도이다.
도 15는 본 발명의 일 실시예에 따른 시스템 온-칩을 나타내는 블록도이다.
도 16은 도 15의 시스템 온-칩에서 인터럽트 스프레드 장치가 동작하는 일 예를 나타내는 도면이다.
도 17은 도 15의 시스템 온-칩에서 인터럽트 스프레드 장치가 동작하는 다른 예를 나타내는 도면이다.
도 18은 도 15의 시스템 온-칩에서 인터럽트 스프레드 장치가 동작하는 또 다른 예를 나타내는 도면이다.
도 19는 임의의 시스템 온-칩이 인터럽트 스프레드 장치를 구비하고 있는지 여부를 검증하는 방법의 일 예를 나타내는 순서도이다.
도 20은 임의의 시스템 온-칩이 인터럽트 스프레드 장치를 구비하고 있는지 여부를 검증하는 방법의 일 예를 설명하기 위한 도면이다.
도 21은 임의의 시스템 온-칩이 인터럽트 스프레드 장치를 구비하고 있는지 여부를 검증하는 방법의 다른 예를 나타내는 순서도이다.
도 22는 본 발명의 일 실시예에 따른 멀티 코어 시스템을 나타내는 블록도이다.
도 23은 도 22의 멀티 코어 시스템이 스마트폰으로 구현되는 일 예를 나타내는 도면이다.
1 is a flowchart illustrating an interrupt spread method according to an embodiment of the present invention.
FIGS. 2A and 2B are diagrams illustrating an example in which the interrupt spread method of FIG. 1 is performed.
FIGS. 3A and 3B are diagrams showing another example in which the interrupt spread method of FIG. 1 is performed. FIG.
4A and 4B are diagrams showing still another example in which the interrupt spread method of FIG. 1 is performed.
5 is a flowchart illustrating an interrupt spread method according to another embodiment of the present invention.
6A and 6B are diagrams illustrating an example in which the interrupt spread method of FIG. 5 is performed.
7 is a flowchart showing an interrupt spread method according to another embodiment of the present invention.
8A and 8B are diagrams illustrating an example in which the interrupt spread method of FIG. 7 is performed.
9 is a flowchart showing an interrupt spread method according to another embodiment of the present invention.
10 is a diagram for explaining the interrupt spread method of FIG.
11 is a block diagram showing an interrupt spread device according to an embodiment of the present invention.
12 is a diagram showing a state machine of an interrupt holder provided in the interrupt spread device of FIG.
13 is a diagram showing a state machine of an interrupt arbiter provided in the interrupt spread device of FIG.
14 is a timing chart showing an example of the operation of the interrupt spread device of FIG.
15 is a block diagram illustrating a system on-chip according to one embodiment of the present invention.
16 is a diagram showing an example in which the interrupt spread device operates in the system on-chip of FIG.
17 is a diagram showing another example of the operation of the interrupt spread device in the system on-chip of FIG.
FIG. 18 is a diagram showing another example in which the interrupt spread device operates in the system on-chip of FIG.
19 is a flowchart showing an example of a method for verifying whether or not any system on-chip has an interrupt spread device.
FIG. 20 is a diagram for explaining an example of a method for verifying whether or not an arbitrary system on-chip has an interrupt spread device.
Fig. 21 is a flowchart showing another example of a method for verifying whether or not any system on-chip has an interrupt spread device.
22 is a block diagram illustrating a multicore system in accordance with an embodiment of the present invention.
23 is a diagram showing an example in which the multicore system of FIG. 22 is implemented as a smartphone.

본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.For the embodiments of the invention disclosed herein, specific structural and functional descriptions are set forth for the purpose of describing an embodiment of the invention only, and it is to be understood that the embodiments of the invention may be practiced in various forms, The present invention should not be construed as limited to the embodiments described in Figs.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention is capable of various modifications and various forms, and specific embodiments are illustrated in the drawings and described in detail in the text. It is to be understood, however, that the invention is not intended to be limited to the particular forms disclosed, but on the contrary, is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprise", "having", and the like are intended to specify the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, , Steps, operations, components, parts, or combinations thereof, as a matter of principle.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be construed as meaning consistent with meaning in the context of the relevant art and are not to be construed as ideal or overly formal in meaning unless expressly defined in the present application .

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 본 발명의 일 실시예에 따른 인터럽트 스프레드 방법을 나타내는 순서도이다.1 is a flowchart illustrating an interrupt spread method according to an embodiment of the present invention.

도 1을 참조하면, 도 1의 인터럽트 스프레드 방법은 복수의 인터럽트 요청 신호들을 수신(Step S120)하고, 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단(Step S140)할 수 있다. 이 때, 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작으면, 도 1의 인터럽트 스프레드 방법은 인터럽트 요청 신호들 사이의 각각의 시간 간격을 기 설정된 간격으로 조절(Step S160)할 수 있다. 반면에, 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 크면, 도 1의 인터럽트 스프레드 방법은 인터럽트 요청 신호들 사이의 각각의 시간 간격을 그대로 유지(Step S165)시킬 수 있다. 이후, 도 1의 인터럽트 스프레드 방법은 인터럽트 요청 신호들을 복수의 프로세서들에 각각 출력(Step S180)할 수 있다. 한편, 복수의 프로세서들 각각은 독립적인 프로세서들에 상응할 수 있고, 멀티 코어 프로세서(예를 들어, 듀얼 코어 프로세서, 쿼드 코어 프로세서 등)의 복수의 코어(core)들에 상응할 수도 있다. 한편, 설명의 편의를 위하여, 본 명세서에서는 액티브(active) 상태와 인액티브(inactive) 상태로 구분하였지만, 인액티브 상태는 파워 다운 상태(power-down state), 파워 오프 상태(power-off state)와 같은 저전력 모드의 다양한 상태들을 모두 포함하는 개념으로 해석되어야 한다. 이하, 도 1의 인터럽트 스프레드 방법에 대하여 구체적으로 설명하기로 한다.Referring to FIG. 1, the interrupt spread method of FIG. 1 receives a plurality of interrupt request signals (Step S120) and determines whether each time interval between interrupt request signals is smaller than a preset interval (Step S140) can do. In this case, if each time interval between the interrupt request signals is smaller than the predetermined interval, the interrupt spread method of FIG. 1 can adjust each time interval between the interrupt request signals at a predetermined interval (Step S160) have. On the other hand, if each time interval between the interrupt request signals is larger than the predetermined interval, the interrupt spread method of FIG. 1 can maintain the respective time intervals between the interrupt request signals (Step S165). Then, the interrupt spread method of FIG. 1 may output the interrupt request signals to the plurality of processors, respectively (Step S180). On the other hand, each of the plurality of processors may correspond to independent processors and may correspond to a plurality of cores of a multicore processor (e.g., a dual core processor, a quad core processor, etc.). Although the active state is divided into an active state and an inactive state in this specification, the inactive state is a power-down state, a power-off state, Such as < RTI ID = 0.0 > a < / RTI > low power mode. Hereinafter, the interrupt spread method of FIG. 1 will be described in detail.

도 1의 인터럽트 스프레드 방법은 인터럽트 요청 신호들을 순차적으로 수신(Step S120)할 수 있다. 일 실시예에서, 인터럽트 요청 신호들은 인터럽트 소스(interrupt source)들로부터 출력되는 인터럽트들에 기초하여 생성될 수 있고, 인터럽트 요청 신호들은 프로세서들에 각각 할당될 수 있다. 인터럽트 소스들은 각각 멀티 코어 시스템(또는, 멀티 프로세서 시스템) 내에서 소정의 동작을 수행하는 아이피(Intellectual Property; IP)들로서, 시스템 온-칩(System On-Chip; SOC)을 구성하는 여러 구성 요소들 예를 들어, 비디오 모듈, 사운드 모듈, 디스플레이 모듈, 메모리 모듈, 통신 모듈, 카메라 모듈 등과 같은 소정의 모듈들에 상응할 수 있다. 일반적으로, 인터럽트 소스들은 하나의 시스템 온-칩 내에 대략 수십 내지 수백 개 정도가 실장될 수 있다. 이러한 인터럽트 소스들이 인터럽트들을 발생시키면, 상기 인터럽트들에 기초하여 생성된 인터럽트 요청 신호들이 프로세서들에 각각 입력될 수 있고, 상기 프로세서들은 인터럽트 요청 신호들에 응답하여 상기 인터럽트 소스들을 위한 인터럽트 처리를 각각 수행할 수 있다. 최근, 전자 기기의 소형화 및 경량화 추세에 따라, 복수의 아이피들과 복수의 프로세서들이 하나의 칩에 실장되는 시스템 온-칩이 널리 사용되고 있고, 시스템 온-칩 내부의 프로세서들은 전력 소모를 줄이기 위하여 저전력 모드로 빈번하게 진입을 하기 때문에, 상기 인터럽트 소스들로부터 생성된 인터럽트들에 기초하여 복수의 프로세서들이 저전력 모드에서 동시에 탈출(즉, 급작스러운 웨이크-업)하게 되면, 상기 프로세서들 내부에 인러쉬 전류(in-rush current)가 생성되어 인러쉬 전류에 의한 오동작이 야기될 수 있다. 특히, 시스템 온-칩의 사이즈가 점점 작아짐에 따라 다이나믹 전류(dynamic current)의 변화에 따른 인러쉬 전류의 발생은 시스템 온-칩의 동작 안정성에 큰 문제가 되고 있다.The interrupt spread method of FIG. 1 may sequentially receive interrupt request signals (Step S120). In one embodiment, interrupt request signals may be generated based on interrupts output from interrupt sources, and interrupt request signals may be assigned to processors, respectively. Each of the interrupt sources is an Intellectual Property (IP) that performs a predetermined operation in a multicore system (or a multiprocessor system), and includes various components constituting a system on-chip (SOC) For example, it may correspond to certain modules such as a video module, a sound module, a display module, a memory module, a communication module, a camera module, and the like. Generally, the interrupt sources can be implemented in a single system on-chip, in the order of tens to hundreds. When these interrupt sources generate interrupts, interrupt request signals generated based on the interrupts can be input to the processors, respectively, and the processors perform interrupt processing for the interrupt sources in response to the interrupt request signals, respectively can do. In recent years, system-on-chips where a plurality of IPs and a plurality of processors are mounted on a single chip have been widely used in order to miniaturize and lighten electronic devices. In order to reduce power consumption, Mode, so that when a plurality of processors simultaneously escape (i.e., abruptly wake up) in a low power mode based on interrupts generated from the interrupt sources, an inrush current an in-rush current may be generated, which may cause malfunction due to the inrush current. Particularly, as the size of the system on-chip becomes smaller, the generation of the inrush current due to the change of the dynamic current becomes a serious problem in the operation stability of the system on-chip.

이에, 도 1의 인터럽트 스프레드 방법은 인터럽트 요청 신호들이 수신되면, 이러한 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단(Step S140)할 수 있다. 일 실시예에서, 기 설정된 간격은 복수의 프로세서들이 인액티브 상태에서 액티브 상태로 변경될 때, 상기 프로세서들 내부에 인러쉬 전류가 생성되지 않는 범위 내에서 결정될 수 있다. 이 때, 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작으면, 도 1의 인터럽트 스프레드 방법은 인터럽트 요청 신호들 사이의 각각의 시간 간격을 기 설정된 간격으로 조절(Step S160)할 수 있다. 반면에, 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 크면, 도 1의 인터럽트 스프레드 방법은 인터럽트 요청 신호들 사이의 각각의 시간 간격을 그대로 유지(Step S165)시킬 수 있다. 다시 말하면, 도 1의 인터럽트 스프레드 방법은 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작은 경우에만, 그 시간 간격을 기 설정된 간격으로 조절하여 프로세서들에 각각 출력하고, 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 큰 경우에는, 그 시간 간격을 조절하지 않은 채 프로세서들에 각각 출력할 수 있다. 그 결과, 인터럽트 요청 신호들은 기 설정된 간격 이상을 두어 프로세서들에 각각 입력될 수 있다.In the interrupt spread method of FIG. 1, when the interrupt request signals are received, it is determined whether each time interval between the interrupt request signals is smaller than a predetermined interval (Step S140). In one embodiment, the predetermined interval may be determined within a range in which an inrush current is not generated within the processors when a plurality of processors are changed from an inactive state to an active state. In this case, if each time interval between the interrupt request signals is smaller than the predetermined interval, the interrupt spread method of FIG. 1 can adjust each time interval between the interrupt request signals at a predetermined interval (Step S160) have. On the other hand, if each time interval between the interrupt request signals is larger than the predetermined interval, the interrupt spread method of FIG. 1 can maintain the respective time intervals between the interrupt request signals (Step S165). In other words, in the case of the interrupt spread method of FIG. 1, only when each time interval between interrupt request signals is smaller than a predetermined interval, the time interval is adjusted to a predetermined interval and output to each of the processors, Can be output to the processors without adjusting the time interval, respectively. As a result, the interrupt request signals can be input to the processors with a predetermined interval or more.

구체적으로, 도 1의 인터럽트 스프레드 방법은, 인터럽트 요청 신호들 사이의 각각의 시간 간격을 기 설정된 간격으로 조절(Step S160)함에 있어서, 순차적으로 입력되고 인접하는 제 k(단, k는 1이상인 정수) 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격이 0보다 큰 경우, 상기 제 k 시간 간격이 기 설정된 간격으로 될 때까지 제 k+1 인터럽트 요청 신호의 출력을 지연시킬 수 있다. 즉, 순차적으로 입력되고 인접하는 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격이 기 설정된 간격보다 작음에도 불구하고, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호가 그대로 두 개의 프로세서들에 각각 출력되면, 두 개의 프로세서들이 짧은 시간 내에 급작스러운 웨이크-업을 하게 되므로, 상기 프로세서들 내부에 인러쉬 전류가 생성될 수 있다. 그러므로, 도 1의 인터럽트 스프레드 방법은 제 k+1 인터럽트 요청 신호의 출력을 지연시킴으로써 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격이 기 설정된 간격이 되도록 조절하는 것이다. 한편, 도 1의 인터럽트 스프레드 방법은 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격이 0인 경우(즉, 동시에 입력되는 경우)에는, 기 설정된 우선순위에 따라 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 중에서 하나의 출력을 기 설정된 간격만큼 지연시킬 수 있다. 그 결과, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호가 동시에 입력되더라도, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격이 기 설정된 간격이 되므로, 상기 프로세서들 내부에 인러쉬 전류가 생성되지 않게 된다.Specifically, in the interrupt spread method of FIG. 1, each time interval between interrupt request signals is adjusted at a predetermined interval (Step S160). In step S160, K interrupt request signal until the k-th time interval becomes a predetermined interval when the k-th time interval between the interrupt request signal and the (k + 1) -th interrupt request signal is greater than zero have. That is, even though the k-th time interval between the k-th interrupt request signal and the k-th interrupt request signal that are sequentially input and adjacent to each other is smaller than a preset interval, the k-th interrupt request signal and the (k + 1) Is directly output to the two processors, an inrush current can be generated in the processors because the two processors are caused to suddenly wake up in a short time. Therefore, the interrupt spread method of FIG. 1 delays the output of the (k + 1) -th interrupt request signal so that the k-th time interval between the k-th interrupt request signal and the (k + 1) -th interrupt request signal becomes a predetermined interval. 1, when the k-th time interval between the k-th interrupt request signal and the (k + 1) -th interrupt request signal is 0 (i.e., simultaneously input), the interrupt spread method It is possible to delay one output from the interrupt request signal and the (k + 1) -th interrupt request signal by a predetermined interval. As a result, even though the k-th interrupt request signal and the (k + 1) -th interrupt request signal are input simultaneously, the k-th time interval between the k-th interrupt request signal and the (k + An in-rush current is not generated inside.

나아가, 도 1의 인터럽트 스프레드 방법은, 인터럽트 요청 신호들 사이의 각각의 시간 간격을 기 설정된 간격으로 조절(Step S160)함에 있어서, 기 설정된 우선순위에 따라 인터럽트 요청 신호들의 출력 순서를 변경할 수 있다. 예를 들어, 제 k 인터럽트 요청 신호, 제 k+1 인터럽트 요청 신호 및 제 k+2 인터럽트 요청 신호가 순차적으로 입력되고, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격 및 제 k+1 인터럽트 요청 신호와 제 k+2 인터럽트 요청 신호 사이의 제 k+1 시간 간격이 모두 기 설정된 간격보다 작은 경우에, 도 1의 인터럽트 스프레드 방법은 상기 제 k 시간 간격이 기 설정된 간격이 되도록 제 k+1 인터럽트 요청 신호의 출력을 지연시킨 후, 상기 제 k+1 시간 간격이 기 설정된 간격이 되도록 제 k+2 인터럽트 요청 신호의 출력을 지연시키게 된다. 그러나, 도 1의 인터럽트 스프레드 방법은 요구되는 조건에 따라 제 k 인터럽트 요청 신호, 제 k+1 인터럽트 요청 신호 및 제 k+2 인터럽트 요청 신호의 출력을 기 설정된 우선순위에 기초하여 비순차적으로 지연시킬 수 있다. 예를 들어, 제 k 인터럽트 요청 신호, 제 k+1 인터럽트 요청 신호 및 제 k+2 인터럽트 요청 신호가 순차적으로 입력되고, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격 및 제 k+1 인터럽트 요청 신호와 제 k+2 인터럽트 요청 신호 사이의 제 k+1 시간 간격이 모두 기 설정된 간격보다 작은 경우에, 제 k 인터럽트 요청 신호의 우선순위가 가장 높고 제 k+1 인터럽트 요청 신호의 우선순위가 가장 낮다면, 도 1의 인터럽트 스프레드 방법은 제 k 인터럽트 요청 신호, 제 k+2 인터럽트 요청 신호 및 제 k+1 인터럽트 요청 신호 순으로 출력시킬 수 있다.In addition, the interrupt spread method of FIG. 1 may change the output order of the interrupt request signals according to a predetermined priority in adjusting the time interval between the interrupt request signals at predetermined intervals (Step S160). For example, the k-th interrupt request signal, the k + 1-th interrupt request signal, and the (k + 2) -th interrupt request signal are sequentially input, And the (k + 1) -th time interval between the k + 1-th interrupt request signal and the (k + 2) -th interrupt request signal are all less than a predetermined interval, the interrupt spread method of FIG. 1 interrupt request signal to delay the output of the (k + 1) -th interrupt request signal so that the (k + 1) -th time interval becomes a predetermined interval. However, the interrupt spread method of FIG. 1 may delay the outputs of the k-th interrupt request signal, the (k + 1) -th interrupt request signal, and the (k + 2) -th interrupt request signal in a non- . For example, the k-th interrupt request signal, the k + 1-th interrupt request signal, and the (k + 2) -th interrupt request signal are sequentially input, And the (k + 1) -th time interval between the k + 1-th interrupt request signal and the (k + 2) -th interrupt request signal are all less than a predetermined interval, If the priority of the request signal is the lowest, the interrupt spread method of FIG. 1 may output the k-th interrupt request signal, the (k + 2) -th interrupt request signal, and the (k + 1) -th interrupt request signal.

일반적으로, 프로세서는 인터럽트 요청 신호가 수신되면, 인액티브 상태에서 액티브 상태로 변경된 후, 인터럽트 처리(즉, 인터럽트 서비스)를 수행하게 된다. 이 때, 프로세서 내부를 구성하는 다수의 트랜지스터들이 갑작스럽게 동작을 시작하면서 인러쉬 전류가 생성되게 된다. 특히, 저전력 프로세서의 경우에는, 인액티브 상태에서 소모 전력을 줄이기 위해 다수의 클럭 게이팅 회로(clock gating circuit)를 구비하기 때문에, 인액티브 상태에서 대부분의 클럭들이 토글(toggle)하지 않다가, 저전력 프로세서가 인액티브 상태에서 액티브 상태로 변경되면, 대부분의 클럭들이 토글을 동시에 시작하게 되어 인러쉬 전류가 크게 생성될 수 있다. 이 때, 복수의 프로세서들이 짧은 시간 내에 급작스러운 웨이크-업을 하게 되면, 복수의 프로세서들에서 생성된 인러쉬 전류가 더해져서, 주변 회로의 전력 공급이 불안정하게 됨으로써 오동작이 발생할 수 있다. 이에, 도 1의 인터럽트 스프레드 방법은 복수의 인터럽트 소스들이 짧은 시간 내에 복수의 인터럽트들을 연속적으로 출력할 때, 상기 인터럽트들에 기초하여 생성되는 복수의 인터럽트 요청 신호들 사이의 시간 간격을 적어도 기 설정된 간격 이상으로 조절함으로써, 인액티브 상태에 있는 복수의 프로세서들(예를 들어, 멀티 코어 프로세서 등)이 짧은 시간 내에 액티브 상태로 연속적으로 변경되는 것(즉, 급작스러운 웨이크-업)을 방지할 수 있다. 그 결과, 시스템 온-칩에서 복수의 프로세서들(또는, 멀티 코어 프로세서의 복수의 코어들) 내부에 급작스러운 웨이크-업에 의한 인러쉬 전류가 생성되는 것이 방지되어, 시스템 온-칩 및 이를 포함하는 전자 기기는 높은 동작 안정성을 확보할 수 있다. 한편, 도 1에서는 복수의 프로세서들이 액티브 상태인지 인액티브 상태인지 여부와 상관없이, 모든 프로세서들에 입력되는 인터럽트 요청 신호들에 대하여 도 1의 인터럽트 스프레드 방법이 적용되는 것으로 설명되었지만, 인액티브 상태인 프로세서들에 입력되는 인터럽트 요청 신호들에 대해서만 도 1의 인터럽트 스프레드 방법이 적용될 수도 있다.Generally, when an interrupt request signal is received, the processor changes from an inactive state to an active state, and then performs an interrupt processing (i.e., an interrupt service). At this time, the inrush current is generated while the plurality of transistors constituting the inside of the processor suddenly start operating. Particularly, in the case of a low-power processor, since most clocks are not toggled in the inactive state because a plurality of clock gating circuits are provided to reduce power consumption in an inactive state, Is changed from the inactive state to the active state, most of the clocks start the toggle at the same time, so that the inrush current can be largely generated. At this time, if a plurality of processors suddenly wake up within a short time, an inrush current generated by a plurality of processors is added, and the power supply of the peripheral circuit becomes unstable, so that malfunction may occur. The interrupt spread method of FIG. 1 is characterized in that when a plurality of interrupt sources successively output a plurality of interrupts in a short time, a time interval between a plurality of interrupt request signals generated based on the interrupts is set to at least a predetermined interval , It is possible to prevent a plurality of processors (e.g., multicore processors, etc.) in an inactive state from being continuously changed to an active state in a short time (i.e., sudden wake-up) . As a result, an inrush current due to a sudden wake-up in a plurality of processors (or a plurality of cores of a multicore processor) is prevented from being generated in the system on-chip, The electronic device can secure high operation stability. 1, the interrupt spread method of FIG. 1 is applied to the interrupt request signals input to all processors irrespective of whether the plurality of processors are in an active state or an active state. However, The interrupt spread method of FIG. 1 may be applied only to the interrupt request signals input to the processors.

도 2a 및 도 2b는 도 1의 인터럽트 스프레드 방법이 수행되는 일 예를 나타내는 도면들이다.FIGS. 2A and 2B are diagrams illustrating an example in which the interrupt spread method of FIG. 1 is performed.

도 2a 및 도 2b를 참조하면, 도 2a는 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 순차적으로 입력되는 것을 보여주고 있고, 도 2b는 도 1의 인터럽트 스프레드 방법에 의하여 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 제 1 내지 제 4 프로세서들에 순차적으로 출력되는 것을 보여주고 있다.Referring to FIGS. 2A and 2B, FIG. 2A shows that the first to fourth interrupt request signals nIRQ_1,..., NIRQ_4 are sequentially input. FIG. The first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4 are sequentially output to the first to fourth processors.

구체적으로, 도 1의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)을 순차적으로 수신할 수 있다. 도 2a에 도시된 바와 같이, 제 1 인터럽트 요청 신호(nIRQ_1)와 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 제 1 시간 간격(S1)은 기 설정된 간격(PS)보다 작고, 제 2 인터럽트 요청 신호(nIRQ_2)와 제 3 인터럽트 요청 신호(nIRQ_3) 사이의 제 2 시간 간격(S2)도 기 설정된 간격(PS)보다 작으며, 제 3 인터럽트 요청 신호(nIRQ_3)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 3 시간 간격(S3)도 기 설정된 간격(PS)보다 작다. 이에, 도 2b에 도시된 바와 같이, 도 1의 인터럽트 스프레드 방법은 제 1 인터럽트 요청 신호(nIRQ_1)와 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 제 1 시간 간격(S1)이 기 설정된 간격(PS)이 되도록 제 2 인터럽트 요청 신호(nIRQ_2)의 출력을 지연시키고, 제 2 인터럽트 요청 신호(nIRQ_2)와 제 3 인터럽트 요청 신호(nIRQ_3) 사이의 제 2 시간 간격(S2)이 기 설정된 간격(PS)이 되도록 제 3 인터럽트 요청 신호(nIRQ_3)의 출력을 지연시키며, 제 3 인터럽트 요청 신호(nIRQ_3)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 3 시간 간격(S3)이 기 설정된 간격(PS)이 되도록 제 4 인터럽트 요청 신호(nIRQ_4)의 출력을 지연시킬 수 있다. 이와 같이, 도 1의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)을 기 설정된 간격(PS)을 두어 제 1 내지 제 4 프로세서들에 순차적으로 출력할 수 있다.Specifically, the interrupt spread method of FIG. 1 can sequentially receive the first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4. 2A, the first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is smaller than the predetermined interval PS and the second interrupt request signal nIRQ_2 is smaller than the predetermined interval PS, the second time interval S2 between the third interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 is also smaller than the predetermined interval PS and the second time interval S2 between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 The third time interval S3 is also smaller than the predetermined interval PS. 1, the first interrupt interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is set to a predetermined interval PS, And the second interval S2 between the second interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 delays the output of the second interrupt request signal nIRQ_2 to a predetermined interval PS The output of the third interrupt request signal nIRQ_3 is delayed so that the third time interval S3 between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 becomes a predetermined interval PS It is possible to delay the output of the fourth interrupt request signal nIRQ_4. 1, the first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4 may be sequentially output to the first to fourth processors with a predetermined interval PS have.

도 3a 및 도 3b는 도 1의 인터럽트 스프레드 방법이 수행되는 다른 예를 나타내는 도면들이다.FIGS. 3A and 3B are diagrams showing another example in which the interrupt spread method of FIG. 1 is performed. FIG.

도 3a 및 도 3b를 참조하면, 도 3a는 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 순차적으로 입력되는 것을 보여주고 있고, 도 3b는 도 1의 인터럽트 스프레드 방법에 의하여 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 제 1 내지 제 4 프로세서들에 순차적으로 출력되는 것을 보여주고 있다.3A and 3B, FIG. 3A shows that first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially input. FIG. 3B illustrates an interrupt spreading method of FIG. The first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4 are sequentially output to the first to fourth processors.

구체적으로, 도 1의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)을 순차적으로 수신할 수 있다. 도 3a에 도시된 바와 같이, 제 1 인터럽트 요청 신호(nIRQ_1)와 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 제 1 시간 간격(S1)은 기 설정된 간격(PS)보다 크고, 제 2 인터럽트 요청 신호(nIRQ_2)와 제 3 인터럽트 요청 신호(nIRQ_3) 사이의 제 2 시간 간격(S2)은 기 설정된 간격(PS)보다 작으며, 제 3 인터럽트 요청 신호(nIRQ_3)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 3 시간 간격(S3)은 기 설정된 간격(PS)보다 작다. 이에, 도 3b에 도시된 바와 같이, 도 1의 인터럽트 스프레드 방법은 제 1 인터럽트 요청 신호(nIRQ_1)와 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 제 1 시간 간격(S1)은 그대로 유지시키고, 제 2 인터럽트 요청 신호(nIRQ_2)와 제 3 인터럽트 요청 신호(nIRQ_3) 사이의 제 2 시간 간격(S2)이 기 설정된 간격(PS)이 되도록 제 3 인터럽트 요청 신호(nIRQ_3)의 출력을 지연시키며, 제 3 인터럽트 요청 신호(nIRQ_3)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 3 시간 간격(S3)이 기 설정된 간격(PS)이 되도록 제 4 인터럽트 요청 신호(nIRQ_4)의 출력을 지연시킬 수 있다. 이와 같이, 도 1의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)을 기 설정된 간격(PS) 이상을 두어 제 1 내지 제 4 프로세서들에 순차적으로 출력할 수 있다.Specifically, the interrupt spread method of FIG. 1 can sequentially receive the first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4. 3A, a first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is greater than a predetermined interval PS, and a second interrupt request signal the second time interval S2 between the third interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 is smaller than the predetermined interval PS and the third interrupt request signal nIRQ_2 is between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4. The third time interval S3 is less than the predetermined interval PS. As shown in FIG. 3B, the interrupt spread method of FIG. 1 maintains the first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 as it is, The output of the third interrupt request signal nIRQ_3 is delayed so that the second time interval S2 between the interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 becomes the predetermined interval PS, The output of the fourth interrupt request signal nIRQ_4 may be delayed such that the third time interval S3 between the request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 becomes the predetermined interval PS. In this way, the interrupt spread method of FIG. 1 sequentially outputs the first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4 to the first to fourth processors with a predetermined interval (PS) or more .

도 4a 및 도 4b는 도 1의 인터럽트 스프레드 방법이 수행되는 또 다른 예를 나타내는 도면들이다.4A and 4B are diagrams showing still another example in which the interrupt spread method of FIG. 1 is performed.

도 4a 및 도 4b를 참조하면, 도 4a는 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 순차적으로 입력되는 것을 보여주고 있고, 도 4b는 도 1의 인터럽트 스프레드 방법에 의하여 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 제 1 내지 제 4 프로세서들에 순차적으로 출력되는 것을 보여주고 있다.Referring to FIGS. 4A and 4B, FIG. 4A shows sequentially inputting first through fourth interrupt request signals nIRQ_1,..., NIRQ_4, FIG. 4B illustrates an interrupt spread method The first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4 are sequentially output to the first to fourth processors.

구체적으로, 도 1의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)을 순차적으로 수신할 수 있다. 도 4a에 도시된 바와 같이, 제 1 인터럽트 요청 신호(nIRQ_1)와 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 제 1 시간 간격(S1)은 기 설정된 간격(PS)보다 작고, 제 2 인터럽트 요청 신호(nIRQ_2)와 제 3 인터럽트 요청 신호(nIRQ_3) 사이의 제 2 시간 간격(S2)은 기 설정된 간격(PS)보다 작으며, 제 3 인터럽트 요청 신호(nIRQ_3)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 3 시간 간격(S3)도 기 설정된 간격(PS)보다 작다. 그러나, 시스템 온-칩의 성능에 따라, 2개의 프로세서들이 짧은 시간 내에 연속적으로 웨이크-업을 하더라도, 2개의 프로세서들 내부에 인러쉬 전류가 생성되지 않을 수 있고, 3개의 프로세서들이 짧은 시간 내에 연속적으로 웨이크-업을 하더라도, 3개의 프로세서들 내부에 인러쉬 전류가 생성되지 않을 수 있다. 이하, 도 4a 및 도 4b에서는 2개의 프로세서들이 짧은 시간 내에 연속적으로 웨이크-업하는 것을 허용하나, 3개의 프로세서들이 짧은 시간 내에 연속적으로 웨이크-업하는 것은 허용하지 않는 것으로 가정하고 설명하기로 한다. 예를 들어, 도 4b에 도시된 바와 같이, 도 1의 인터럽트 스프레드 방법은 기 설정된 개수(즉, 2개)의 프로세서들이 짧은 시간 내에 연속적으로 웨이크-업을 하는 것을 허용하고 있으므로, 제 1 인터럽트 요청 신호(nIRQ_1)와 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 제 1 시간 간격(S1)이 기 설정된 간격(PS)보다 작더라도, 제 1 인터럽트 요청 신호(nIRQ_1)와 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 제 1 시간 간격(S1)을 그대로 유지시킬 수 있다. 그러나, 도 1의 인터럽트 스프레드 방법은 3개의 프로세서들이 짧은 시간 내에 연속적으로 웨이크-업을 하는 것을 허용하지 않으므로, 제 2 인터럽트 요청 신호(nIRQ_2)와 제 3 인터럽트 요청 신호(nIRQ_3) 사이의 제 2 시간 간격(S2)이 기 설정된 간격(PS)보다 작기 때문에, 상기 제 2 시간 간격(S2)이 기 설정된 간격(PS)이 되도록 제 3 인터럽트 요청 신호(nIRQ_3)의 출력을 지연시킬 수 있다. 이후, 도 1의 인터럽트 스프레드 방법은 2개의 프로세서들이 짧은 시간 내에 연속적으로 웨이크-업을 하는 것을 허용하고 있으므로, 제 3 인터럽트 요청 신호(nIRQ_3)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 3 시간 간격(S3)이 기 설정된 간격(PS)보다 작더라도, 제 3 인터럽트 요청 신호(nIRQ_3)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 3 시간 간격(S3)을 그대로 유지시킬 수 있다.Specifically, the interrupt spread method of FIG. 1 can sequentially receive the first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4. 4A, the first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is smaller than the predetermined interval PS and the second interrupt request signal nIRQ_2 is smaller than the predetermined interval PS, the second time interval S2 between the third interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 is smaller than the predetermined interval PS and the third interrupt request signal nIRQ_2 is between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4. The third time interval S3 is also smaller than the predetermined interval PS. However, depending on the performance of the system on-chip, even if two processors continuously wake up in a short time, an inrush current may not be generated within the two processors, and three processors may be continuously The inrush current may not be generated in the three processors. 4A and 4B, it is assumed that the two processors allow continuous wake-up in a short time, but do not allow the three processors to successively wake up in a short time. For example, as shown in FIG. 4B, the interrupt spread method of FIG. 1 allows a predetermined number (i.e., two) of processors to continuously wake up in a short time, The first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 are set to the same value even if the first time interval S1 between the signal nIRQ_1 and the second interrupt request signal nIRQ_2 is smaller than the predetermined interval PS, The first time interval S1 can be maintained as it is. However, since the interrupt spread method of FIG. 1 does not allow the three processors to continuously wake up in a short time, a second time between the second interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 The output of the third interrupt request signal nIRQ_3 may be delayed so that the second time interval S2 becomes the predetermined interval PS since the interval S2 is smaller than the predetermined interval PS. Since the interrupt spread method of Fig. 1 allows the two processors to continuously wake up in a short time, a third time between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 The third time interval S3 between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 can be maintained as it is even if the interval S3 is smaller than the predetermined interval PS.

도 5는 본 발명의 다른 실시예에 따른 인터럽트 스프레드 방법을 나타내는 순서도이다.5 is a flowchart illustrating an interrupt spread method according to another embodiment of the present invention.

도 5를 참조하면, 도 5의 인터럽트 스프레드 방법은 제 k 인터럽트 요청 신호를 수신(Step S210)하고, 제 k+1 인터럽트 요청 신호를 수신(Step S220)한 후, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 0보다 큰지 여부를 판단(Step S230)할 수 있다. 이 때, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 0보다 큰 경우, 상기 시간 간격이 기 설정된 간격으로 될 때까지 제 k 인터럽트 요청 신호의 출력을 지연(Step S240)시키고, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 0인 경우, 기 설정된 우선순위에 따라 제 k 인터럽트 요청 신호 또는 제 k+1 인터럽트 요청 신호의 출력을 기 설정된 간격만큼 지연(Step S250)시킬 수 있다. 다만, 도 5에서는 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 기 설정된 간격보다 작은 것으로 가정되어 있다.5, the interrupt spread method receives a k-th interrupt request signal (Step S210), receives a (k + 1) -th interrupt request signal (Step S220) It can be determined whether the time interval between the +1 interrupt request signals is greater than 0 (Step S230). At this time, if the time interval between the k-th interrupt request signal and the k + 1-th interrupt request signal is greater than 0, the output of the k-th interrupt request signal is delayed (Step S240) K interrupt request signal and the (k + 1) -th interrupt request signal at a predetermined interval according to a predetermined priority when the time interval between the k-th interrupt request signal and the k + (Step S250). In FIG. 5, it is assumed that the time interval between the k-th interrupt request signal and the (k + 1) -th interrupt request signal is smaller than a predetermined interval.

도 5의 인터럽트 스프레드 방법은 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호를 순차적으로 수신하고, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단함에 있어서, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 0보다 큰지 여부까지 판단한다. 즉, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호가 순차적으로 입력된다고 보면, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격은 0보다 큰 것이 일반적이나, 실시예에 따라 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호가 실질적으로 동시에 입력될 수도 있으므로, 도 5의 인터럽트 스프레드 방법은 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 0보다 큰지 여부까지 판단하는 것이다. 이 때, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 0보다 큰 경우, 도 5의 인터럽트 스프레드 방법은 상기 시간 간격이 기 설정된 간격으로 될 때까지 제 k 인터럽트 요청 신호의 출력을 지연시킬 수 있고, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 0인 경우, 도 5의 인터럽트 스프레드 방법은 기 설정된 우선순위에 따라 제 k 인터럽트 요청 신호 또는 제 k+1 인터럽트 요청 신호의 출력을 기 설정된 간격만큼 지연시킬 수 있다. 그 결과, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호가 동시에 입력되는 경우에도 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호가 기 설정된 간격을 두어 각각 제 k 프로세서와 제 k+1 프로세서에 출력되기 때문에, 도 5의 인터럽트 스프레드 방법은 시스템 온-칩에서 짧은 시간 내에 복수의 프로세서들이 인액티브 상태에서 액티브 상태로 변경(즉, 급작스러운 웨이크-업)되는 것을 방지할 수 있다.The interrupt spread method of FIG. 5 sequentially receives the k-th interrupt request signal and the (k + 1) -th interrupt request signal, and determines whether the time interval between the k-th interrupt request signal and the (k + 1) -th interrupt request signal is less than It is determined whether the time interval between the k-th interrupt request signal and the (k + 1) -th interrupt request signal is greater than zero. In other words, when the k-th interrupt request signal and the (k + 1) -th interrupt request signal are sequentially input, the time interval between the k-th interrupt request signal and the (k + Therefore, the time interval between the k-th interrupt request signal and the (k + 1) -th interrupt request signal is greater than 0 because the k-th interrupt request signal and the k + 1-th interrupt request signal may be input substantially simultaneously. It is judged whether it is big or not. If the time interval between the k < th > interrupt request signal and the (k + 1) -th interrupt request signal is greater than 0, the interrupt spread method of FIG. And if the time interval between the k < th > interrupt request signal and the (k + 1) -th interrupt request signal is 0, the interrupt spread method of FIG. 5 may delay the output of the k & The output of the +1 interrupt request signal may be delayed by a predetermined interval. As a result, even if the k-th interrupt request signal and the (k + 1) -th interrupt request signal are inputted at the same time, the k-th interrupt request signal and the (k + 1) The interrupt spread method of FIG. 5 can prevent a plurality of processors from changing from an inactive state to an active state (i. E., Sudden wake-up) in a short time on a system on-chip.

도 6a 및 도 6b는 도 5의 인터럽트 스프레드 방법이 수행되는 일 예를 나타내는 도면들이다.6A and 6B are diagrams illustrating an example in which the interrupt spread method of FIG. 5 is performed.

도 6a 및 도 6b를 참조하면, 도 6a는 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 순차적으로 입력되는 것을 보여주고 있고, 도 6b는 도 5의 인터럽트 스프레드 방법에 의하여 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 제 1 내지 제 4 프로세서들에 순차적으로 출력되는 것을 보여주고 있다.Referring to FIGS. 6A and 6B, FIG. 6A shows that the first to fourth interrupt request signals nIRQ_1,..., NIRQ_4 are sequentially input. FIG. 6B shows an interrupt spread method The first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4 are sequentially output to the first to fourth processors.

구체적으로, 도 5의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)을 순차적으로 수신할 수 있는데, 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4) 중에서 인접하는 인터럽트 요청 신호들이 실질적으로 동시에 입력될 수 있다. 예를 들어, 도 6a에 도시된 바와 같이, 제 1 인터럽트 요청 신호(nIRQ_1)와 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 제 1 시간 간격(S1)은 기 설정된 간격(PS)보다 작고, 제 2 인터럽트 요청 신호(nIRQ_2)와 제 3 인터럽트 요청 신호(nIRQ_3) 사이의 제 2 시간 간격(S2)도 기 설정된 간격(PS)보다 작으며, 제 3 인터럽트 요청 신호(nIRQ_3)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 3 시간 간격(S3)은 0에 상응한다. 따라서, 제 4 인터럽트 요청 신호(nIRQ_4)의 우선순위가 제 3 인터럽트 요청 신호(nIRQ_3)의 우선순위보다 높다고 가정하면, 도 6b에 도시된 바와 같이, 도 5의 인터럽트 스프레드 방법은 제 1 인터럽트 요청 신호(nIRQ_1)와 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 제 1 시간 간격(S1)이 기 설정된 간격(PS)이 되도록 제 2 인터럽트 요청 신호(nIRQ_2)의 출력을 지연시키고, 제 2 인터럽트 요청 신호(nIRQ_2)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 2 시간 간격(S2)이 기 설정된 간격(PS)이 되도록 제 4 인터럽트 요청 신호(nIRQ_4)의 출력을 지연시키며, 제 3 인터럽트 요청 신호(nIRQ_3)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 3 시간 간격(S3)은 기 설정된 간격(PS)이 되도록 제 3 인터럽트 요청 신호(nIRQ_3)의 출력을 지연시킬 수 있다. 이 때, 제 4 인터럽트 요청 신호(nIRQ_4)의 우선순위가 제 3 인터럽트 요청 신호(nIRQ_3)의 우선순위보다 높기 때문에, 제 3 인터럽트 요청 신호(nIRQ_3)보다 제 4 인터럽트 요청 신호(nIRQ_4)가 먼저 출력된 것이다. 이와 같이, 도 5의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_I4) 중에서 인접하는 인터럽트 요청 신호들이 실질적으로 동시에 입력되더라도, 기 설정된 우선순위에 따라 기 설정된 간격(PS)을 두어, 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)을 제 1 내지 제 4 프로세서들에 순차적으로 출력할 수 있다.5 may sequentially receive the first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4. The first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4 may be sequentially received. ., nIRQ_4) can be input at substantially the same time. 6A, the first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 is smaller than the predetermined interval PS, The second time interval S2 between the interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 is also smaller than the predetermined interval PS and the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_3, lt; RTI ID = 0.0 > nIRQ_4 < / RTI > Accordingly, assuming that the priority of the fourth interrupt request signal nIRQ_4 is higher than that of the third interrupt request signal nIRQ_3, as shown in FIG. 6B, the interrupt spread method of FIG. the output of the second interrupt request signal nIRQ_2 is delayed so that the first time interval S1 between the first interrupt request signal nIRQ_1 and the second interrupt request signal nIRQ_2 becomes the predetermined interval PS, the output of the fourth interrupt request signal nIRQ_4 is delayed so that the second time interval S2 between the fourth interrupt request signal nIRQ_2 and the fourth interrupt request signal nIRQ_4 becomes the predetermined interval PS, And the fourth interrupt request signal nIRQ_4 may delay the output of the third interrupt request signal nIRQ_3 to a predetermined interval PS. At this time, since the priority of the fourth interrupt request signal nIRQ_4 is higher than that of the third interrupt request signal nIRQ_3, the fourth interrupt request signal nIRQ_4 is outputted first than the third interrupt request signal nIRQ_3 . 5, even if adjacent interrupt request signals among the first to fourth interrupt request signals nIRQ_I1, ..., nIRQ_I4 are input substantially simultaneously, the interrupt spread method of FIG. (NIRQ_1, ..., nIRQ_4) sequentially to the first to fourth processors by placing the first to fourth interrupt request signals (PS).

도 7은 본 발명의 또 다른 실시예에 따른 인터럽트 스프레드 방법을 나타내는 순서도이다.7 is a flowchart showing an interrupt spread method according to another embodiment of the present invention.

도 7을 참조하면, 도 7의 인터럽트 스프레드 방법은 제 k 인터럽트 요청 신호를 수신(Step S310)하고, 제 k+1 인터럽트 요청 신호를 수신(Step S320)한 후, 제 k 인터럽트 요청 신호가 제 k+1 인터럽트 요청 신호보다 우선순위가 높은지 여부를 판단(Step S330)할 수 있다. 이 때, 도 7의 인터럽트 스프레드 방법은 제 k 인터럽트 요청 신호의 우선순위가 제 k+1 인터럽트 요청 신호의 우선순위보다 높으면, 제 k+1 인터럽트 요청 신호를 지연(Step S340)시킬 수 있고, 제 k 인터럽트 요청 신호의 우선순위가 제 k+1 인터럽트 요청 신호의 우선순위보다 낮으면, 제 k 인터럽트 요청 신호를 지연(Step S345)시킬 수 있다. 다만, 도 7에서는 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 기 설정된 간격보다 작은 것으로 가정되어 있다.Referring to FIG. 7, the interrupt spread method of FIG. 7 receives a kth interrupt request signal (Step S310), receives a k + 1 interrupt request signal (Step S320) It can be determined whether the priority is higher than that of the +1 interrupt request signal (Step S330). In this case, if the priority of the k-th interrupt request signal is higher than that of the (k + 1) -th interrupt request signal, the interrupt spread method of FIG. 7 can delay the k + If the priority of the k-th interrupt request signal is lower than the priority of the (k + 1) -th interrupt request signal, the k-th interrupt request signal may be delayed (Step S345). However, it is assumed in FIG. 7 that the time interval between the k-th interrupt request signal and the (k + 1) -th interrupt request signal is smaller than a predetermined interval.

도 7의 인터럽트 스프레드 방법은 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호를 순차적으로 수신하고, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단함에 있어서, 제 k 인터럽트 요청 신호가 제 k+1 인터럽트 요청 신호보다 우선순위가 높은지 여부까지 판단할 수 있다. 이에, 도 7의 인터럽트 스프레드 방법은 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호의 입력 순서와는 별개로, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호의 출력 순서를 결정할 수 있다. 구체적으로, 도 7의 인터럽트 스프레드 방법은 제 k 인터럽트 요청 신호의 우선순위가 제 k+1 인터럽트 요청 신호의 우선순위보다 높으면, 제 k+1 인터럽트 요청 신호를 지연시킬 수 있고, 제 k 인터럽트 요청 신호의 우선순위가 제 k+1 인터럽트 요청 신호의 우선순위보다 낮으면, 제 k 인터럽트 요청 신호를 지연시킬 수 있다. 그 결과, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호가 순차적으로 입력되는 경우에도, 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호가 기 설정된 우선순위에 따라 비순차적으로 출력되고, 그 때에도 제 k+1 인터럽트 요청 신호와 제 k 인터럽트 요청 신호가 기 설정된 간격을 두어 각각 제 k 프로세서와 제 k+1 프로세서에 출력되기 때문에, 도 7의 인터럽트 스프레드 방법은 시스템 온-칩에서 짧은 시간 내에 복수의 프로세서들이 인액티브 상태에서 액티브 상태로 변경(즉, 급작스러운 웨이크-업)되는 것을 방지할 수 있다.The interrupt spread method of FIG. 7 sequentially receives the k-th interrupt request signal and the (k + 1) -th interrupt request signal and determines whether the time interval between the k-th interrupt request signal and the (k + 1) -th interrupt request signal is less than It is possible to determine whether the k < th > interrupt request signal has a higher priority than the (k + 1) -th interrupt request signal. 7, the output order of the k-th interrupt request signal and the k + 1-th interrupt request signal can be determined independently of the input order of the k-th interrupt request signal and the (k + 1) -th interrupt request signal . 7 can delay the (k + 1) -th interrupt request signal if the priority of the k-th interrupt request signal is higher than that of the (k + 1) -th interrupt request signal, K interrupt request signal if the priority of the (k + 1) -th interrupt request signal is lower than the priority of the (k + 1) -th interrupt request signal. As a result, even when the k-th interrupt request signal and the (k + 1) -th interrupt request signal are sequentially input, the k-th interrupt request signal and the (k + 1) -th interrupt request signal are output in a non- Since the (k + 1) -th interrupt request signal and the k-th interrupt request signal are output to the k-th processor and (k + 1) -th processor at predetermined intervals, respectively, the interrupt spread method of FIG. It is possible to prevent a plurality of processors from changing from an inactive state to an active state (i.e., sudden wake-up).

도 8a 및 도 8b는 도 7의 인터럽트 스프레드 방법이 수행되는 일 예를 나타내는 도면들이다.8A and 8B are diagrams illustrating an example in which the interrupt spread method of FIG. 7 is performed.

도 8a 및 도 8b를 참조하면, 도 8a는 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 순차적으로 입력되는 것을 보여주고 있고, 도 8b는 도 7의 인터럽트 스프레드 방법에 의하여 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 기 설정된 우선순위에 따라 제 1 내지 제 4 프로세서들에 각각 출력되는 것을 보여주고 있다.8A and 8B show that the first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are sequentially input. FIG. 8B illustrates an interrupt spreading method of FIG. The first through fourth interrupt request signals nIRQ_1 through nIRQ_4 are output to the first through fourth processors, respectively, according to a predetermined priority.

구체적으로, 도 7의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)을 순차적으로 수신할 수 있다. 도 8a에 도시된 바와 같이, 제 1 인터럽트 요청 신호(nIRQ_1)와 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 제 1 시간 간격(S1)은 기 설정된 간격(PS)보다 작고, 제 2 인터럽트 요청 신호(nIRQ_2)와 제 3 인터럽트 요청 신호(nIRQ_3) 사이의 제 2 시간 간격(S2)도 기 설정된 간격(PS)보다 작으며, 제 3 인터럽트 요청 신호(nIRQ_3)와 제 4 인터럽트 요청 신호(nIRQ_4) 사이의 제 3 시간 간격(S3)도 기 설정된 간격(PS)보다 작다. 이 때, 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)이 제 1 내지 제 4 프로세서들에 각각 출력됨에 있어서, 요구되는 조건에 따라, 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)의 입력 순서와는 다르게, 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)의 출력 순서가 변경될 필요도 있다. 따라서, 도 7의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)의 출력 순서를 기 설정된 우선순위에 따라 변경시킴으로써, 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)에 응답하여 인터럽트 처리를 수행하는 제 1 내지 제 4 프로세서들의 웨이크-업 순서를 변경시킬 수 있다. 예를 들어, 도 8b에 도시된 바와 같이, 도 7의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_1, ..., nIRQ_4)을 제 1 인터럽트 요청 신호(nIRQ_1), 제 3 인터럽트 요청 신호(nIRQ_3), 제 4 인터럽트 요청 신호(nIRQ_4) 및 제 2 인터럽트 요청 신호(nIRQ_2) 순으로 출력할 수 있다. 마찬가지로, 제 1 인터럽트 요청 신호(nIRQ_1), 제 3 인터럽트 요청 신호(nIRQ_3), 제 4 인터럽트 요청 신호(nIRQ_4) 및 제 2 인터럽트 요청 신호(nIRQ_2) 사이의 각각의 시간 간격은 기 설정된 간격(PS)으로 조절된다. 이와 같이, 도 7의 인터럽트 스프레드 방법은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_I4)을 기 설정된 우선순위에 따라 출력 순서를 결정하여 제 1 내지 제 4 프로세서들에 각각 출력할 수 있다.Specifically, the interrupt spread method of FIG. 7 can sequentially receive the first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4. 8A, 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 predetermined interval PS and a second interrupt request signal the second time interval S2 between the third interrupt request signal nIRQ_2 and the third interrupt request signal nIRQ_3 is also smaller than the predetermined interval PS and the second time interval S2 between the third interrupt request signal nIRQ_3 and the fourth interrupt request signal nIRQ_4 The third time interval S3 is also smaller than the predetermined interval PS. At this time, when the first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4 are respectively output to the first to fourth processors, the first to fourth interrupt request signals the output order of the first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4 may need to be changed, unlike the input order of the nIRQ_1, ..., nIRQ_4. Accordingly, the interrupt spread method of FIG. 7 changes the output order of the first to fourth interrupt request signals nIRQ_1, ..., nIRQ_4 according to a predetermined priority, thereby outputting the first to fourth interrupt request signals up sequence of the first to fourth processors for performing the interrupt processing in response to the nIRQ_1, nIRQ_1, ..., nIRQ_4. For example, as shown in FIG. 8B, the interrupt spread method of FIG. 7 includes first to fourth interrupt request signals nIRQ_1 to nIRQ_4 as a first interrupt request signal nIRQ_1, The request signal nIRQ_3, the fourth interrupt request signal nIRQ_4, and the second interrupt request signal nIRQ_2. Similarly, each time interval 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 is a predetermined interval PS, . 7, the output order of the first to fourth interrupt request signals nIRQ_I1, ..., nIRQ_I4 is determined according to a predetermined priority, and the output order is output to the first to fourth processors can do.

도 9는 본 발명의 또 다른 실시예에 따른 인터럽트 스프레드 방법을 나타내는 순서도이고, 도 10은 도 9의 인터럽트 스프레드 방법을 설명하기 위한 도면이다.FIG. 9 is a flowchart illustrating an interrupt spread method according to another embodiment of the present invention, and FIG. 10 is a diagram for explaining an interrupt spread method of FIG.

도 9 및 도 10을 참조하면, 도 9의 인터럽트 스프레드 방법은 인터럽트 요청 신호들을 순차적으로 수신(Step S410)하면, 상기 인터럽트 요청 신호들을 대상(target) 인터럽트 요청 신호들과 비대상(non-target) 인터럽트 요청 신호들로 구분(Step S420)할 수 있다. 구체적으로, 대상 인터럽트 요청 신호들은 인액티브 상태인 프로세서들(TP_1, ..., TP_4)에 출력될 인터럽트 요청 신호들을 의미하고, 비대상 인터럽트 요청 신호들은 액티브 상태인 프로세서들(NTP_1, NTP_2)에 출력될 인터럽트 요청 신호들을 의미한다. 이후, 도 9의 인터럽트 스프레드 방법은 비대상 인터럽트 요청 신호들을 액티브 상태인 프로세서들(NTP_1, NTP_2)에 각각 출력(Step S430)할 수 있다. 한편, 도 9의 인터럽트 스프레드 방법은 대상 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단(Step S440)하여, 대상 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작은 경우, 상기 시간 간격을 기 설정된 간격으로 조절(Step S450)할 수 있고, 대상 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 큰 경우, 상기 시간 간격을 그대로 유지(Step S460)시킬 수 있다. 이후, 도 9의 인터럽트 스프레드 방법은 대상 인터럽트 요청 신호들을 인액티브 상태인 프로세서들(TP_1, ..., TP_4)에 각각 출력(Step S470)할 수 있다. 일반적으로, 인러쉬 전류는 짧은 시간 내에 복수의 프로세서들이 인액티브 상태에서 액티브 상태로 연속적으로 변경(즉, 급작스러운 웨이크-업)될 때 생성되므로, 도 9의 인터럽트 스프레드 방법은 웨이크-업이 필요 없는 액티브 상태인 프로세서들(NTP_1, NTP_2)에 출력되는 비대상 인터럽트 요청 신호들에 대해서는 그 시간 간격을 기 설정된 간격으로 조절하지 않는다. 그 결과, 도 9의 인터럽트 스프레드 방법은 인액티브 상태인 프로세서들(TP_1, ..., TP_4)에 출력되는 대상 인터럽트 요청 신호들에 대해서만 그 시간 간격을 기 설정된 간격으로 조절하기 때문에, 대상이 되는 인터럽트 요청 신호들이 상대적으로 감소(즉, 상대적으로 로드(load)가 감소)하여 고속으로 동작할 수 있다.9 and 10, the interrupt spread method of FIG. 9 sequentially receives interrupt request signals (Step S410) and sequentially transmits the interrupt request signals to target interrupt request signals and non- Interrupt request signals (step S420). Specifically, the target interrupt request signals are interrupt request signals to be output to the inactive processors TP_1, ..., TP_4, and the non-target interrupt request signals are transmitted to the active processors NTP_1 and NTP_2 Interrupt request signals to be output. Thereafter, the interrupt spread method of FIG. 9 may output the non-target interrupt request signals to the active processors NTP_1 and NTP_2, respectively (step S430). 9, it is determined whether each time interval between the target interrupt request signals is smaller than a preset interval (step S440). If it is determined that the respective time intervals between the target interrupt request signals have been set If the time interval between the target interrupt request signals is greater than the predetermined interval, the time interval is maintained (Step S460) ). 9, the target interrupt request signals may be output to the inactive processors TP_1, ..., TP_4, respectively (step S470). Generally, since the in-rush current is generated when a plurality of processors are continuously changed (i.e., abruptly woken up) from the inactive state to the active state in a short time, the interrupt spread method of FIG. 9 requires a wake- The non-target interrupt request signals output to the non-active processors NTP_1 and NTP_2 are not adjusted at predetermined intervals. As a result, since the interrupt spread method of FIG. 9 adjusts the time interval of the target interrupt request signals output to the inactive processors TP_1, ..., TP_4 at predetermined intervals, The interrupt request signals can be relatively reduced (i.e., relatively reduced in load) to operate at high speed.

도 11은 본 발명의 일 실시예에 따른 인터럽트 스프레드 장치를 나타내는 블록도이다.11 is a block diagram showing an interrupt spread device according to an embodiment of the present invention.

도 11을 참조하면, 인터럽트 스프레드 장치(100)는 제 1 내지 제 m(단, m은 2이상의 정수) 인터럽트 홀더들(120_1, ..., 120_m) 및 인터럽트 아비터(140)를 포함할 수 있다.11, the interrupt spread device 100 may include first to m-th (where m is an integer greater than or equal to 2) interrupt holders 120_1 to 120_m and an interrupt arbiter 140 .

제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m)은 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)을 각각 수신하고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)을 기 설정된 간격 이상을 두어 제 1 내지 제 m 프로세서들(미도시)에 각각 출력할 수 있다. 도 11에 도시된 바와 같이, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)은 복수의 인터럽트 소스들(미도시)로부터 출력되는 복수의 인터럽트들에 기초하여 생성되고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)은 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m)에 각각 수신될 수 있다. 한편, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m)은 제 1 내지 제 m 프로세서들에 각각 연결되고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)을 기 설정된 간격 이상을 두어 제 1 내지 제 m 프로세서들에 각각 출력할 수 있다. 구체적으로, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각은 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)을 수신하면, 인터럽트 아비터(140)에 출력 요청 신호(RS1, ..., RSm)를 송신하고, 인터럽트 아비터(140)로부터 출력 허가 신호(AS1, ..., ASm)를 수신하면, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)을 제 1 내지 제 m 프로세서들에 각각 출력할 수 있다. 이를 위하여, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각은 아이들 스테이트(idle state), 웨이트 스테이트(wait state) 및 어서트 스테이트(assert state)로 구성된 스테이트 머신(state machine)으로 구현될 수 있는데, 이에 대해서는 도 12를 참조하여 후술하기로 한다.The first to mth interrupt holders 120_1 to 120_m receive first to mth interrupt request signals nIRQ_I1 to nIRQ_Im respectively and output first to mth interrupt request signals (nIRQ_O1, ..., nIRQ_Om) to the first to mth processors (not shown) with a predetermined interval or more. 11, the first through the m-th interrupt request signals nIRQ_I1, ..., nIRQ_Im are generated based on a plurality of interrupts output from a plurality of interrupt sources (not shown) 1 to m-th interrupt request signals nIRQ_I1, ..., nIRQ_Im may be received in the first to mth interrupt holders 120_1, ..., and 120_m, respectively. The first through m-th interrupt holders 120_1 through 120_m are connected to the first through m-th processors, respectively. The first through m-th interrupt request signals nIRQ_O1 through nIRQ_Om, To the first to the m-th processors, respectively, at a predetermined interval or more. Each of the first through m-th interrupt holders 120_1 through 120_m receives the first through the m-th interrupt request signals nIRQ_I1 through to nIRQ_Im to the interrupt arbiter 140 ..., ASm from the interrupt arbiter 140 and outputs the first through the m-th interrupt request signals nIRQ_O1, ..., ..., nIRQ_Om) to the first to m processors, respectively. To this end, each of the first through m-th interrupt holders 120_1, ..., and 120_m is connected to a state machine (not shown) having an idle state, a wait state and an assert state. ), Which will be described later with reference to FIG.

인터럽트 아비터(140)는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 중에서 인접하는 인터럽트 요청 신호들 사이의 시간 간격이 기 설정된 간격보다 작은 경우, 상기 시간 간격을 기 설정된 간격으로 조절할 수 있다. 이 때, 상기 기 설정된 간격은 제 1 내지 제 m 프로세서들이 인액티브 상태에서 액티브 상태로 변경될 때, 제 1 내지 제 m 프로세서들 내부에 인러쉬 전류가 생성되지 않는 범위 내에서 결정될 수 있다. 구체적으로, 인터럽트 아비터(140)는 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m)로부터 각각 출력 요청 신호(RS1, ..., RSm)를 수신하면, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m)에 출력 허가 신호(AS1, ..., ASm)를 순차적으로 출력함으로써, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)이 기 설정된 간격 이상으로 제 1 내지 제 m 프로세서들에 각각 출력되게 할 수 있다. 이를 위하여, 인터럽트 아비터(140)는 아이들 스테이트 및 웨이트 스테이트로 구성된 스테이트 머신으로 구현될 수 있는데, 이에 대해서는 도 13을 참조하여 후술하기로 한다. 일 실시예에서, 인터럽트 아비터(140)는 기 설정된 우선순위에 따라 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)의 출력 순서를 변경할 수 있다. 그 결과, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m)에 입력되는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)의 입력 순서와 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m)로부터 출력되는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)의 출력 순서는 서로 상이할 수 있다.If the time interval between adjacent interrupt request signals among the first to mth interrupt request signals nIRQ_I1, ..., nIRQ_Im is smaller than a preset interval, the interrupt arbiter 140 sets the time interval to a predetermined interval . At this time, the predetermined interval may be determined within a range in which an inrush current is not generated in the first to m-th processors when the first to m-th processors are changed from the inactive state to the active state. Specifically, when the interrupt arbiter 140 receives the output request signals RS1 through RSm from the first through m-th interrupt holders 120_1 through 120m, The first to the m-th interrupt request signals nIRQ_O1, ..., nIRQ_Om are outputted to the holders 120_1, ..., and 120_m sequentially by outputting the output enable signals AS1, And may be output to the first to m-th processors at a predetermined interval or more. For this purpose, the interrupt arbiter 140 may be implemented as a state machine composed of an idle state and a wait state, which will be described later with reference to FIG. In one embodiment, the interrupt arbiter 140 may change the output order of the first through the m-th interrupt request signals nIRQ_O1, ..., nIRQ_Om according to a predetermined priority. As a result, the input order of the first to m-th interrupt request signals nIRQ_I1, ..., nIRQ_Im input to the first to mth interrupt holders 120_1 to 120_m and the first to mth interrupt request signals The output order of the first to mth interrupt request signals nIRQ_O1, ..., nIRQ_Om output from the interrupt holders 120_1, ..., and 120_m may be different from each other.

한편, 인터럽트 아비터(140)는 제 1 내지 제 m 프로세서들을 액티브 상태인 프로세서들로 구성된 제 1 그룹과 인액티브 상태인 프로세서들로 구성된 제 2 그룹으로 분류하고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 중에서 제 1 그룹에 할당된 인터럽트 요청 신호들에 대해서는 기 설정된 간격으로 조절하지 않고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 중에서 제 2 그룹에 할당된 인터럽트 요청 신호들에 대해서만 기 설정된 간격으로 조절할 수 있다. 다만, 이에 대해서는 상술한 바 있으므로, 그에 대한 중복되는 설명은 생략하기로 한다. 이와 같이, 인터럽트 스프레드 장치(100)는 복수의 인터럽트 소스들이 짧은 시간 내에 복수의 인터럽트들을 연속적으로 출력할 때, 상기 인터럽트들에 기초하여 생성되는 복수의 인터럽트 요청 신호들 사이의 시간 간격을 기 설정된 간격 이상으로 조절함으로써, 인액티브 상태에 있는 복수의 프로세서들(또는, 멀티 코어 프로세서의 복수의 코어들)이 짧은 시간 내에 액티브 상태로 연속적으로 변경(즉, 급작스러운 웨이크-업)되는 것을 방지할 수 있다. 그 결과, 시스템 온-칩에서 복수의 프로세서들 내부에 급작스러운 웨이크-업에 의한 인러쉬 전류가 생성되는 것이 방지되어, 시스템 온-칩 및 이를 포함하는 전자 기기는 높은 동작 안정성을 확보할 수 있다. Meanwhile, the interrupt arbiter 140 classifies the first through m-th processors into a first group consisting of processors in an active state and a second group composed of processors in an inactive state, , nIRQ_Im among the first to the m-th interrupt request signals (nIRQ_I1, ..., nIRQ_Im) without adjusting the interrupt request signals allocated to the first group among the nIRQ_I1, Only the interrupt request signals assigned to the second group can be adjusted at predetermined intervals. However, since this has been described above, a duplicate description thereof will be omitted. As described above, when the plurality of interrupt sources successively output a plurality of interrupts in a short time, the interrupt spread device 100 divides a time interval between a plurality of interrupt request signals generated based on the interrupts into a predetermined interval (Or a plurality of cores of a multicore processor) in an inactive state can be prevented from continuously changing (i. E., Abruptly waking up) to an active state within a short time have. As a result, generation of an inrush current due to sudden wake-up in a plurality of processors in the system on-chip is prevented, and the system on chip and the electronic apparatus including the system on-chip can secure high operation stability .

도 12는 도 11의 인터럽트 스프레드 장치에 구비된 인터럽트 홀더의 스테이트 머신을 나타내는 도면이다.12 is a diagram showing a state machine of an interrupt holder provided in the interrupt spread device of FIG.

도 12를 참조하면, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각의 스테이트 머신(200)은 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)이 수신되지 않았음을 나타내는 아이들 스테이트(220), 인터럽트 아비터(140)로부터 출력 허가 신호(AS1, ..., ASm)를 기다리고 있음을 나타내는 웨이트 스테이트(240) 및 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)이 제 1 내지 제 m 프로세서들에 출력되고 있음을 나타내는 어서트 스테이트(260)를 포함할 수 있다. 이 때, 아이들 스테이트(220)는 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각의 디폴트 스테이트(default state)에 해당할 수 있다. 따라서, 아이들 스테이트(220)는 인터럽트가 발생하지 않은 초기 상태를 의미하고, 웨이트 스테이트(240)는 다른 인터럽트로 인한 인러쉬 전류가 사라지기를 기다리는 상태를 의미하며, 어서트 스테이트(260)는 프로세서로 향하는 인터럽트 요청 신호를 갱신하는 상태를 의미하는 것으로 해석할 수 있다.12, the state machine 200 of each of the first through m-th interrupt holders 120_1 through to 120_m receives first through mth interrupt request signals nIRQ_I1 through nIRQ_Im A wait state 240 indicating that the output enable signals AS1 through ASm are waiting for the interrupt arbiter 140 and a first wait state 240 indicating that the first through mth interrupt request signals (nIRQ_O1, ..., nIRQ_Om) are being output to the first to mth processors. At this time, the idle state 220 may correspond to a default state of each of the first through m-th interrupt holders 120_1, ..., and 120_m. Accordingly, the idle state 220 indicates an initial state in which an interrupt has not occurred, the wait state 240 indicates a state in which an inrush current due to another interrupt is waited for, and the assert state 260 indicates a state The interrupt request signal can be interpreted to mean a state in which the interrupt request signal is updated.

구체적으로, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)이 수신되지 않은 경우에 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각은 아이들 스테이트(220)에 머물러 있다. 이후, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)이 수신되면, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각은 웨이트 스테이트(240) 또는 어서트 스테이트(260)에 진입할 수 있다. 예를 들어, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)이 수신되었을 때, 인터럽트 아비터(140)가 출력 허가 신호(AS1, ..., ASm)를 바로 송신하는 경우, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각은 어서트 스테이트(260)에 바로 진입(RA)할 수 있다. 그러나, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)이 수신되었을 때, 인터럽트 아비터(140)가 이전 인터럽트 요청 신호와의 시간 간격을 기 설정된 간격을 조절하기 위하여 출력 허가 신호(AS1, ..., ASm)를 송신하지 않는 경우, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각은 웨이트 스테이트(240)에 진입(RNA)할 수 있다. 이후, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각은 웨이트 스테이트(240)에 머물러 있는 중에 인터럽트 아비터(140)로부터 출력 허가 신호(AS1, ..., ASm)를 수신하면, 어서트 스테이트(260)로 진입(AR)할 수 있다. 나아가, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각은 어서트 스테이트(260)에 머물러 있는 중에, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)의 출력이 완료되면, 아이들 스테이트(220)로 진입(AL)할 수 있다. 이와 같이, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 각각은 간단한 구조의 스테이트 머신(200)으로 구현됨으로써, 소형으로 제조되면서도 저전력으로 동작할 수 있다.The first through m-th interrupt holders 120_1, ..., and 120_m each receive the idle state 220 (n) ). Each of the first through m-th interrupt holders 120_1 through 120_m receives the first through m-th interrupt request signals nIRQ_I1 through nIRQ_Im, State 260 can be entered. For example, when the first to m-th interrupt request signals nIRQ_I1, ..., nIRQ_Im are received, when the interrupt arbiter 140 directly transmits the output enable signals AS1, ..., ASm Each of the first through m-th interrupt holders 120_1, ..., and 120_m may directly enter the assert state 260 (RA). However, when the first to the m-th interrupt request signals nIRQ_I1, ..., nIRQ_Im are received, the interrupt arbiter 140 sets the time interval with the previous interrupt request signal to the output enable signal Each of the first through m-th interrupt holders 120_1, ..., and 120_m may enter the wait state 240 (RNA). Each of the first to mth interrupt holders 120_1 to 120_m receives the output permission signals AS1 to ASm from the interrupt arbitrator 140 while staying in the wait state 240 (AR) to the assert state 260. [0054] FIG. Each of the first through m-th interrupt holders 120_1 through 120_m holds the first through the m-th interrupt request signals nIRQ_O1 through nIRQ_Om while staying in the assert state 260, (AL) to the idle state 220 when the output of the idle state 220 is completed. Each of the first through m-th interrupt holders 120_1, ..., and 120_m is implemented as a state machine 200 having a simple structure, so that it can be manufactured at a small size and operate at low power.

도 13은 도 11의 인터럽트 스프레드 장치에 구비된 인터럽트 아비터의 스테이트 머신을 나타내는 도면이다.13 is a diagram showing a state machine of an interrupt arbiter provided in the interrupt spread device of FIG.

도 13을 참조하면, 인터럽트 아비터(140)의 스테이트 머신(300)은 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om) 중에서 어느 하나도 제 1 내지 제 m 프로세서들에 출력되고 있지 않음을 나타내는 아이들 스테이트(320) 및 제 1 내지 제 n 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om) 중에서 적어도 하나 이상이 제 1 내지 제 m 프로세서들에 출력되고 있음을 나타내는 웨이트 스테이트(340)를 포함할 수 있다. 이 때, 아이들 스테이트(320)는 인터럽트 아비터(140)의 디폴트 스테이트에 해당할 수 있다. 따라서, 아이들 스테이트(320)는 어떠한 인터럽트도 존재하지 않은 상태를 의미하고, 웨이트 스테이트(340)는 어떠한 인터럽트가 발생하여 이를 프로세서에 전달하였고, 그로 인한 인러쉬 전류가 사라지기를 기다리는 상태를 의미하는 것으로 해석될 수 있다.13, the state machine 300 of the interrupt arbiter 140 outputs any one of the first to the m-th interrupt request signals nIRQ_O1, ..., nIRQ_Om to the first to mth processors (NIRQ_O1, ..., nIRQ_Om) are output to the first to m-th processors, and an idle state 340 indicating that at least one of the first to the n-th interrupt request signals . ≪ / RTI > At this time, the idle state 320 may correspond to the default state of the interrupt arbiter 140. [ Thus, the idle state 320 means a state in which no interrupt is present, and the wait state 340 means a state in which some interrupt occurs and is transmitted to the processor, thereby waiting for the inrush current to disappear Can be interpreted.

구체적으로, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m)이 출력 요청 신호(RS1, ..., RSm)를 송신하지 않으면, 인터럽트 아비터(140)는 아이들 스테이트(320)에 머물러 있다. 이후, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 중에서 어느 하나가 출력 요청 신호(RS1, ..., RSm)를 송신하면, 인터럽트 아비터(140)는 웨이트 스테이트(340)에 진입(REQ)하고, 해당 인터럽트 홀더에 출력 허가 신호(AS1, ..., ASm)를 출력할 수 있다. 이후, 인터럽트 아비터(140)는 기 설정된 간격만큼 웨이트 스테이트(340)에 머물러 있은 후, 아이들 스테이트(320)로 진입(EXP)할 수 있다. 이 때, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 중에서 어느 하나가 출력 요청 신호(RS1, ..., RSm)를 송신하여, 인터럽트 아비터(140)가 웨이트 스테이트(340)에 머물러 있는 경우에, 제 1 내지 제 m 인터럽트 홀더들(120_1, ..., 120_m) 중에서 다른 하나가 출력 요청 신호(RS1, ..., RSm)를 송신하더라도, 인터럽트 아비터(140)는 해당 인터럽트 홀더에 출력 허가 신호(AS1, ..., ASm)를 송신하지 않는다. 따라서, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)이 기 설정된 간격 이상을 두어 제 1 내지 제 m 프로세서들에 각각 출력될 수 있는 것이다. 이와 같이, 인터럽트 아비터(140)도 간단한 구조의 스테이트 머신(300)으로 구현됨으로써, 소형으로 제조되면서도 저전력으로 동작할 수 있다.Specifically, when the first through m-th interrupt holders 120_1 through 120_m do not transmit the output request signals RS1 through RSm, the interrupt arbiter 140 outputs the output request signals RS1 through RSm to the idle state 320 Stay. When one of the first to mth interrupt holders 120_1 to 120_m transmits the output request signals RS1 to RSm, the interrupt arbiter 140 receives the output request signals RS1 to RSm, (REQ), and output enable signals AS1, ..., ASm to the corresponding interrupt holders. Thereafter, the interrupt arbiter 140 may enter the idle state 320 after entering the wait state 340 by a predetermined interval. At this time, any one of the first through m-th interrupt holders 120_1, ..., and 120_m transmits the output request signals RS1 through RSm to the interrupt arbiter 140, , The interrupt arbiter 140 can not output the output request signals RS1, ..., RSm even if the other one of the first through m-th interrupt holders 120_1 through 120m transmits the output request signals RS1 through RSm. And does not transmit the output enable signals AS1, ..., ASm to the corresponding interrupt holders. Accordingly, the first to m-th interrupt request signals nIRQ_O1, ..., nIRQ_Om may be output to the first to m-th processors with a predetermined interval or more. In this manner, the interrupt arbiter 140 is also implemented as the state machine 300 of a simple structure, so that it can be manufactured at a small size and operate at low power.

도 14는 도 11의 인터럽트 스프레드 장치가 동작하는 일 예를 나타내는 타이밍도이다.14 is a timing chart showing an example of the operation of the interrupt spread device of FIG.

도 14를 참조하면, 인터럽트 스프레드 장치(100)에서 제 i 인터럽트 요청 신호(nIRQ_Ii)가 제 i 인터럽트 홀더(120_i)에 입력되면, 제 i 인터럽트 홀더(120_i)는 인터럽트 아비터(140)에 출력 요청 신호(RSi, req)를 출력할 수 있다. 이 때, 인터럽트 아비터(140)는 이전 인터럽트 요청 신호가 없어 아이들 스테이트(IDLE)에 머무르고 있었으므로, 제 i 인터럽트 홀더(120_i)에 바로 출력 허가 신호(ASi, ack)를 출력할 수 있다. 그 결과, 제 i 인터럽트 홀더(120_i)는 아이들 스테이트(IDLE)에서 어서트 스테이트(ASSERT)로 진입하게 되고, 인터럽트 아비터(140)는 아이들 스테이트(IDLE)에서 웨이트 스테이트(WAIT)로 진입하게 되어, 제 i 인터럽트 요청 신호(nIRQ_Oi)가 제 i 프로세서로 출력될 수 있다.14, when the i-th interrupt request signal nIRQ_Ii is input to the i-th interrupt holder 120_i in the interrupt spread device 100, the i-th interrupt holder 120_i outputs an output request signal (RSi, req). At this time, the interrupt arbiter 140 can output the output enable signal ASi, ack directly to the i-th interrupt holder 120_i because the interrupt arbiter 140 has been in the idle state since there is no previous interrupt request signal. As a result, the i-th interrupt holder 120_i enters the assert state ASSERT from the idle state IDLE, and the interrupt arbiter 140 enters the wait state WAIT from the idle state IDLE, The i-th interrupt request signal nIRQ_Oi may be output to the i-th processor.

한편, 제 i 인터럽트 홀더(120_i)가 어서트 스테이트(ASSERT)로 머물러 있는 동안에, 제 j 인터럽트 요청 신호(nIRQ_Ij)가 제 j 인터럽트 홀더(120_j)에 입력되면, 제 j 인터럽트 홀더(120_j)는 인터럽트 아비터(140)에 출력 요청 신호(RSj, req)를 출력할 수 있다. 이 때, 인터럽트 아비터(140)는 웨이트 스테이트(WAIT)에 머무르고 있으므로, 제 j 인터럽트 홀더(120_j)에 출력 허가 신호(ASj, ack)를 출력하지 않는다. 인터럽트 아비터(140)가 웨이트 스테이트(WAIT)에 머무르는 시간은 미리 정해져 있으며(예를 들어, 물리적인 특성 값에 의해 결정), 카운터 등과 같은 회로 등을 이용하여 상기 시간을 조절할 수 있다. 이에, 제 j 인터럽트 홀더(120_j)는 아이들 스테이트(IDLE)에서 어서트 스테이트(ASSERT)가 아닌 웨이트 스테이트(WAIT)로 진입할 수 있다. 이후, 인터럽트 아비터(140)는 제 i 인터럽트 요청 신호(nIRQ_Oi)와 제 j 인터럽트 요청 신호(nIRQ_Oj)가 기 설정된 간격을 가지게 되는 시점에 웨이트 스테이트(WAIT)에서 아이들 스테이트(IDLE)로 진입하고, 제 j 인터럽트 홀더(120_j)에 출력 허가 신호(ASj, ack)를 출력할 수 있다. 따라서, 제 j 인터럽트 홀더(120_j)는 상기 출력 허가 신호(ASj, ack)에 기초하여 웨이트 스테이트(WAIT)에서 어서트 스테이트(ASSERT)로 진입할 수 있고, 제 j 인터럽트 요청 신호(nIRQ_Oj)는 제 j 프로세서에 출력될 수 있다. 그 결과, 인터럽트 스프레드 장치(100)에 의하여 제 i 인터럽트 요청 신호(nIRQ_Oi)와 제 j 인터럽트 요청 신호(nIRQ_Oj)는 기 설정된 간격을 두어 각각 제 i 프로세서와 제 j 프로세서에 각각 출력될 수 있다. 이와 같이, 인터럽트 스프레드 장치(100)는 짧은 시간 내에 복수의 인터럽트 소스들에서 복수의 인터럽트들을 생성되더라도, 상기 인터럽트들에 기초하여 생성되는 복수의 인터럽트 요청 신호들 사이의 각각의 시간 간격을 기 설정된 간격 이상으로 조절함으로써, 인액티브 상태에 있는 복수의 프로세서들(또는, 멀티 코어 프로세서의 복수의 코어들)이 짧은 시간 내에 액티브 상태로 연속적으로 변경(즉, 급작스러운 웨이크-업)되는 것을 방지할 수 있다.On the other hand, when the i-th interrupt request signal nIRQ_Ij is input to the j-th interrupt holder 120_j while the i-th interrupt holder 120_i is staying in the assert state ASSERT, the j-th interrupt holder 120_ And outputs the output request signal RSj, req to the arbiter 140. [ At this time, since the interrupt arbiter 140 remains in the wait state (WAIT), the output enable signal ASj, ack is not output to the jth interrupt holder 120_j. The time during which the interrupt arbiter 140 stays in the wait state WAIT is predetermined (for example, determined by a physical characteristic value), and the time can be adjusted using a circuit such as a counter or the like. Thus, the jth interrupt holder 120_j can enter the wait state (WAIT) instead of the assert state ASSERT in the idle state IDLE. Thereafter, the interrupt arbiter 140 enters the idle state (IDLE) in the wait state (WAIT) at the time when the i-th interrupt request signal nIRQ_Oi and the j-th interrupt request signal nIRQ_Oj have a predetermined interval, j output enable signal ASj, ack to the j interrupt holder 120_j. Therefore, the j-th interrupt holder 120_j can enter the assert state ASSERT in the wait state WAIT based on the output enable signal ASj, ack, and the j-th interrupt request signal nIRQ_Oj lt; / RTI > processor. As a result, 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 predetermined intervals by the interrupt spread device 100. As described above, even if the interrupt spread device 100 generates a plurality of interrupts at a plurality of interrupt sources within a short time, each interrupt time interval between a plurality of interrupt request signals generated based on the interrupts is maintained at a predetermined interval (Or a plurality of cores of a multicore processor) in an inactive state can be prevented from continuously changing (i. E., Abruptly waking up) to an active state within a short time have.

도 15는 본 발명의 일 실시예에 따른 시스템 온-칩을 나타내는 블록도이다.15 is a block diagram illustrating a system on-chip according to one embodiment of the present invention.

도 15를 참조하면, 시스템 온-칩(500)은 제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n), 인터럽트 컨트롤러(540), 인터럽트 스프레드 장치(560) 및 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)을 포함할 수 있다. 일반적으로, 시스템 온-칩(500)에서 프로세서들(580_1, ..., 580_m)의 개수보다 인터럽트 소스들(520_1, ..., 520_n)의 개수가 많으므로, n이 m보다 큰 것이 일반적이나 그에 한정되지는 않는다. 한편, 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)이라고 명명하였지만, 제 1 내지 제 m 프로세서들(580_1, ..., 580_m) 각각은 독립적인 프로세서들에 상응할 수 있고, 멀티 코어 프로세서(예를 들어, 듀얼 코어 프로세서, 쿼드 코어 프로세서 등)의 복수의 코어들에 상응할 수도 있다.15, the system on-chip 500 includes first to n-th interrupt sources 520_1, ..., and 520_n, an interrupt controller 540, an interrupt spread device 560, Processors 580_1, ..., 580_m. Generally, since the number of interrupt sources 520_1, ..., 520_n is greater than the number of processors 580_1, ..., 580_m in the system on-chip 500, But is not limited thereto. Each of the first through m-th processors 580_1, ..., 580_m may correspond to independent processors, while the first through m-th processors 580_1, ..., And may correspond to a plurality of cores of a multicore processor (e.g., a dual core processor, a quad core processor, etc.).

제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n)은 각각 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)을 생성할 수 있다. 이 때, 제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n)은 각각 멀티 프로세서 시스템(또는, 멀티 코어 시스템) 내에서 소정의 동작을 수행하는 아이피(IP)들로서, 시스템 온-칩을 구성하는 여러 구성 요소들 예를 들어, 비디오 모듈, 사운드 모듈, 디스플레이 모듈, 메모리 모듈, 통신 모듈, 카메라 모듈 등과 같은 소정의 모듈들에 상응할 수 있다. 제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n)이 각각 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)을 발생시키면, 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)에 기초하여 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)이 생성되고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)은 기 설정된 간격 이상으로 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)에 각각 입력될 수 있다. 그 결과, 제 1 내지 제 m 프로세서들(580_1, ..., 580_m) 각각은 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)에 응답하여 상기 제 1 내지 제 n 소스들을 위한 인터럽트 처리를 수행할 수 있다.The first to nth interrupt sources 520_1, ..., and 520_n may generate first to nth interrupts INT_R1, ..., INT_Rn, respectively. The first through n-th interrupt sources 520_1, ..., and 520_n are IPs that perform predetermined operations in a multiprocessor system (or a multicore system) For example, a video module, a sound module, a display module, a memory module, a communication module, a camera module, and the like. When the first to nth interrupt sources 520_1 to 520_n respectively generate the first to the nth interrupts INT_R1 to INT_Rn, the first to nth interrupts INT_R1,. The first through the m-th interrupt request signals nIRQ_I1 through nIRQ_Im are generated based on the first to mth interrupt request signals nIRQ_O1, ..., nIRQ_Om, May be input to the first to mth processors 580_1, ..., and 580_m at a predetermined interval or more. As a result, each of the first through m-th processors 580_1 through 580_m outputs the first through the n-th sources in response to the first through the m-th interrupt request signals nIRQ_O1 through nIRQ_Om, Can be performed.

인터럽트 컨트롤러(540)는 제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n)에서 생성된 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)에 기초하여 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)을 생성할 수 있다. 일 실시예에서, 인터럽트 컨트롤러(540)는 제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n)로부터 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)을 입력받은 후, 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)이 각각 수행되는 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)을 결정할 수 있다. 즉, 인터럽트 컨트롤러(540)는 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)을 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)에 할당시킬 수 있다. 일반적으로, 시스템 온-칩(500)에서 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)의 개수는 제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n)의 개수보다 작기 때문에, 인터럽트 컨트롤러(540)는 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)을 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)에 시간적으로 및/또는 공간적으로 적절하게 할당할 수 있다.The interrupt controller 540 generates first to m-th interrupts INT_R1 to INT_Rn based on the first to the n-th interrupts INT_R1 to INT_Rn generated in the first to nth interrupt sources 520_1 to 520_n. Interrupt request signals nIRQ_I1, ..., nIRQ_Im. In one embodiment, the interrupt controller 540 receives first through n-th interrupts INT_R1, ..., INT_Rn from the first through n-th interrupt sources 520_1 through 520_n, The first to mth processors 580_1, ..., and 580_m in which the first to nth interrupts INT_R1, ..., INT_Rn are respectively performed can be determined. That is, the interrupt controller 540 may allocate the first to the nth interrupts INT_R1, ..., INT_Rn to the first to m processors 580_1, ..., 580_m. In general, the number of first to mth processors 580_1, ..., 580_m in the system on-chip 500 is larger than the number of first to nth interrupt sources 520_1, ..., 520_n The interrupt controller 540 outputs the first to the n-th interrupts INT_R1 to INT_Rn to the first to the m processors 580_1 to 580_m in a temporal and / or spatial manner Can be properly allocated.

인터럽트 스프레드 장치(560)는 인터럽트 컨트롤러(540)로부터 입력되는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 중에서 인접하는 인터럽트 요청 신호들 사이의 시간 간격을 기 설정된 간격 이상으로 조절할 수 있다. 이 때, 상기 기 설정된 간격은 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)이 인액티브 상태에서 액티브 상태로 변경될 때, 제 1 내지 제 m 프로세서들(580_1, ..., 580_m) 내부에 인러쉬 전류가 생성되지 않는 범위 내에서 결정될 수 있다. 일 실시예에서, 인터럽트 스프레드 장치(560)는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)을 수신하고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)을 기 설정된 간격 이상을 두어 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)에 각각 출력하는 제 1 내지 제 m 인터럽트 홀더들, 및 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 중에서 인접하는 인터럽트 요청 신호들 사이의 시간 간격이 기 설정된 간격보다 작은 경우 상기 시간 간격을 기 설정된 간격으로 조절하는 인터럽트 아비터를 포함할 수 있다. 즉, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)은 제 1 내지 제 m 인터럽트 홀더들에 각각 수신되고, 제 1 내지 제 m 인터럽트 홀더들은 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)에 각각 연결될 수 있다. 일 실시예에서, 인터럽트 홀더들 및 인터럽트 아비터는 하나의 클럭 도메인(clock domain) 상에서 동작하며, 인터럽트 홀더들과 인터럽트 아비터 사이에 요청/응답 핸드쉐이킹 동작(request/acknowledge handshaking operation)이 수행될 수 있다.The interrupt spread device 560 outputs a time interval between adjacent interrupt request signals among the first to mth interrupt request signals nIRQ_I1, ..., nIRQ_Im inputted from the interrupt controller 540 at a predetermined interval or more Can be adjusted. When the first to the m-th processors 580_1 to 580_m are changed from the inactive state to the active state, the first to the m-th processors 580_1, 580_m) in which no inrush current is generated. In one embodiment, the interrupt spread device 560 receives the first to the m-th interrupt request signals nIRQ_I1, ..., nIRQ_Im and outputs the first to the mth interrupt request signals nIRQ_O1, first to mth interrupt holders for outputting first to mth interrupt request signals nIRQ_Om to the first to mth processors 580_1 to 580_m with a predetermined interval or more, , ..., nIRQ_Im) of the interrupt request signal is smaller than a preset interval, the interrupt arbiter may adjust the time interval to a predetermined interval. That is, the first to mth interrupt request signals (nIRQ_I1, ..., nIRQ_Im) are respectively received by the first to mth interrupt holders, and the first to mth interrupt holders are connected to the first to mth processors 580_1, ..., and 580_m, respectively. In one embodiment, the interrupt holders and the interrupt arbiter operate on one clock domain, and a request / acknowledge handshaking operation may be performed between the interrupt holders and the interrupt arbiter .

구체적으로, 인터럽트 스프레드 장치(560)는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 사이의 각각의 시간 간격을 기 설정된 간격으로 조절함에 있어서, 인접하는 제 k(단, k는 1이상인 정수) 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격이 0보다 큰 경우, 상기 제 k 시간 간격이 기 설정된 간격으로 될 때까지 제 k+1 인터럽트 요청 신호의 출력을 지연시킬 수 있다. 또한, 인터럽트 스프레드 장치(560)는 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격이 0인 경우(즉, 동시에 입력되는 경우), 기 설정된 우선순위에 따라 제 k 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 중에서 하나의 출력을 기 설정된 간격만큼 지연시킬 수 있다. 나아가, 인터럽트 스프레드 장치(560)는 기 설정된 우선순위에 따라 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)의 입력 순서와 다르게, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)의 출력 순서를 변경할 수도 있다. 예를 들어, 인터럽트 스프레드 장치(560)는 제 k 인터럽트 요청 신호, 제 k+1 인터럽트 요청 신호 및 제 k+2 인터럽트 요청 신호를 순차적으로 입력받은 경우에도, 제 k 인터럽트 요청 신호, 제 k+1 인터럽트 요청 신호 및 제 k+2 인터럽트 요청 신호를 기 설정된 우선순위에 기초하여 비순차적으로 출력시킬 수 있다.In detail, the interrupt spread device 560 controls each of the first to the m-th interrupt request signals (nIRQ_I1, ..., nIRQ_Im) k is an integer equal to or greater than 1) k-th interrupt request signal is greater than 0, the k-th interrupt request signal is transmitted until the k-th time interval becomes a predetermined interval Output can be delayed. In addition, the interrupt spreading device 560 may interrupt the k-th interrupt request signal according to the predetermined priority when the k-th time interval between the k-th interrupt request signal and the (k + 1) -th interrupt request signal is 0 And may delay one of the request signal and the (k + 1) -th interrupt request signal by a predetermined interval. Further, the interrupt spread device 560 outputs first to m-th interrupt request signals nIRQ_O1 (nIRQ_O1, ..., nIRQ_Im) different from the input order of the first to mth interrupt request signals , ..., nIRQ_Om). For example, even when the interrupt spread device 560 sequentially receives the k-th interrupt request signal, the (k + 1) -th interrupt request signal and the (k + 2) -th interrupt request signal, The interrupt request signal and the (k + 2) -th interrupt request signal on the basis of the predetermined priority.

실시예에 따라, 인터럽트 스프레드 장치(560)는 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)을 액티브 상태인 프로세서들로 구성된 제 1 그룹과 인액티브 상태인 프로세서들로 구성된 제 2 그룹으로 분류하고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 중에서 액티브 상태인 프로세서들로 구성된 제 1 그룹에 할당된 인터럽트 요청 신호들에 대해서는 기 설정된 간격으로 조절하지 않고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 중에서 인액티브 상태인 프로세서들로 구성된 제 2 그룹에 할당된 인터럽트 요청 신호들에 대해서만 기 설정된 간격으로 조절할 수 있다. 이와 같이, 시스템 온-칩(500)은 인터럽트 스프레드 장치(560)를 구비함으로써, 제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n)로부터 출력되는 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)에 기초하여 생성되는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 사이의 각각의 시간 간격을 기 설정된 간격 이상으로 조절함으로써, 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)이 짧은 시간 내에 액티브 상태로 연속적으로 변경되는 것(즉, 급작스러운 웨이크-업)을 방지할 수 있다. 그 결과, 시스템 온-칩(500)은 복수의 프로세서들(또는, 멀티 코어 프로세서의 복수의 코어들) 내부에 급작스러운 웨이크-업에 의한 인러쉬 전류가 생성되는 것이 방지할 수 있어 높은 동작 안정성을 확보할 수 있다.In accordance with an embodiment, the interrupt spreading unit 560 includes first to mth processors 580_1, ..., and 580_m, a first group of processors in an active state and a second group of processors in an inactive state, And interrupt request signals assigned to the first group of processors in the active state among the first to m-th interrupt request signals nIRQ_I1, ..., nIRQ_Im are not adjusted at predetermined intervals , And the first to mth interrupt request signals (nIRQ_I1, ..., nIRQ_Im), which are active in the active state, of the interrupt request signals. As described above, the system on-chip 500 includes the interrupt spread device 560, so that the first through n-th interrupts INT_R1 (520_n) output from the first through n-th interrupt sources , NIRQ_Im) of the first to the m-th interrupt request signals (nIRQ_I1, ..., nIRQ_Im) generated based on the first to the m- It is possible to prevent the processors 580_1, ..., 580_m from continuously changing to the active state within a short time (i.e., sudden wake-up). As a result, the system on-chip 500 can prevent generation of an inrush current due to a sudden wake-up in a plurality of processors (or a plurality of cores of a multicore processor) .

도 16은 도 15의 시스템 온-칩에서 인터럽트 스프레드 장치가 동작하는 일 예를 나타내는 도면이다.16 is a diagram showing an example in which the interrupt spread device operates in the system on-chip of FIG.

도 16을 참조하면, 도 16은 시스템 온-칩(500) 내에서 인터럽트 스프레드 장치(560) 내의 제 1 내지 제 m 인터럽트 홀더들(562_1, ..., 562_m)이 인터럽트 아비터(미도시)에 의하여 제어됨으로써, 제 1 내지 제 m 인터럽트 홀더들(562_1, ..., 562_m)에 입력되는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ... nIRQ_Im)이 기 설정된 간격을 두어 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)에 출력되는 일 예를 보여주고 있다. 다만, 설명의 편의를 위하여, 도 16에서는 m이 4라고 가정한다.16, the first through m-th interrupt holders 562_1, ..., and 562_m in the interrupt spread device 560 in the system on-chip 500 are connected to an interrupt arbiter (not shown) The first through the m-th interrupt request signals nIRQ_I1 through nIRQ_Im input to the first through the m-th interrupt holders 562_1 through to the mth interrupt holders 562_1 through to the mth interrupt holders 562_m, M processors 580_1, ..., and 580_m, respectively. However, for convenience of explanation, it is assumed that m is 4 in Fig.

구체적으로, 제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n)이 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)을 출력하면, 인터럽트 컨트롤러(540)는 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)에 기초하여 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_I4)을 생성할 수 있다. 도 16에 도시된 바와 같이, 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_I4)은 제 1 인터럽트 요청 신호(nIRQ_I1), 제 3 인터럽트 요청 신호(nIRQ_I3), 제 2 인터럽트 요청 신호(nIRQ_I2), 제 4 인터럽트 요청 신호(nIRQ_I4) 순으로 입력될 수 있다. 이 때, 제 1 인터럽트 홀더(562_1)는 제 1 인터럽트 요청 신호(nIRQ_I1)보다 이전의 인터럽트 요청 신호가 없기 때문에 제 1 인터럽트 요청 신호(nIRQ_O1)를 바로 제 1 프로세서(580_1)에 출력할 수 있다. 이후, 제 3 인터럽트 홀더(562_3)는 제 1 인터럽트 요청 신호(nIRQ_I1)와 제 3 인터럽트 요청 신호(nIRQ_I3) 사이의 시간 간격이 기 설정된 간격(PS)보다 작으므로, 제 3 인터럽트 요청 신호(nIRQ_I3)를 소정의 시간(DL1)만큼 지연시킨 후, 제 3 인터럽트 요청 신호(nIRQ_O3)를 제 3 프로세서(580_3)에 출력할 수 있다. 이후, 제 2 인터럽트 홀더(562_2)는 제 3 인터럽트 요청 신호(nIRQ_I3)와 제 2 인터럽트 요청 신호(nIRQ_I2) 사이의 시간 간격이 기 설정된 간격(PS)보다 작으므로, 제 2 인터럽트 요청 신호(nIRQ_I2)를 소정의 시간(DL2)만큼 지연시킨 후, 제 2 인터럽트 요청 신호(nIRQ_O2)를 제 2 프로세서(580_2)에 출력할 수 있다. 이후, 제 4 인터럽트 홀더(562_4)는 제 2 인터럽트 요청 신호(nIRQ_I2)와 제 4 인터럽트 요청 신호(nIRQ_I4) 사이의 시간 간격이 기 설정된 간격(PS)보다 작으므로, 제 4 인터럽트 요청 신호(nIRQ_I4)를 소정의 시간(DL3)만큼 지연시킨 후, 제 4 인터럽트 요청 신호(nIRQ_O4)를 제 4 프로세서(580_4)에 출력할 수 있다. 그 결과, 제 1 내지 제 4 프로세서들(580_1, ..., 580_4)은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_O1, ... nIRQ_O4)을 기 설정된 간격(PS)을 두어 수신할 수 있으므로, 제 1 내지 제 4 프로세서들(580_1, ..., 580_4) 내부에 급작스러운 웨이크-업에 의한 인러쉬 전류가 생성되는 것을 방지할 수 있다.When the first to n-th interrupt sources 520_1 to 520_n output the first to the nth interrupts INT_R1 to INT_Rn, the interrupt controller 540 controls the first to n- It is possible to generate the first to fourth interrupt request signals nIRQ_I1, ..., nIRQ_I4 based on the n-th interrupts INT_R1, ..., INT_Rn. 16, the first to fourth interrupt request signals nIRQ_I1, ..., nIRQ_I4 include a first interrupt request signal nIRQ_I1, a third interrupt request signal nIRQ_I3, (nIRQ_I2), and the fourth interrupt request signal (nIRQ_I4). At this time, the first interrupt holder 562_1 can output the first interrupt request signal nIRQ_O1 directly to the first processor 580_1 since there is no interrupt request signal prior to the first interrupt request signal nIRQ_I1. Since the time interval between the first interrupt request signal nIRQ_I1 and the third interrupt request signal nIRQ_I3 is smaller than the predetermined interval PS, the third interrupt request signal nIRQ_I3 is generated in the third interrupt holder 562_3. And outputs the third interrupt request signal nIRQ_O3 to the third processor 580_3 after delaying the first interrupt request signal nIRQ_O3 by the predetermined time DL1. Since the time interval between the third interrupt request signal nIRQ_I3 and the second interrupt request signal nIRQ_I2 is smaller than the predetermined interval PS, the second interrupt holder 562_2 outputs the second interrupt request signal nIRQ_I2, And outputs the second interrupt request signal nIRQ_O2 to the second processor 580_2 after delaying the first interrupt request signal nIRQ_O2 by a predetermined time DL2. Since the time interval between the second interrupt request signal nIRQ_I2 and the fourth interrupt request signal nIRQ_I4 is smaller than the predetermined interval PS, the fourth interrupt holder 562_4 outputs the fourth interrupt request signal nIRQ_I4, And outputs the fourth interrupt request signal nIRQ_O4 to the fourth processor 580_4 after delaying the fourth interrupt request signal nIRQ_O4 by a predetermined time DL3. As a result, the first to fourth processors 580_1, ..., 580_4 can receive the first to fourth interrupt request signals nIRQ_O1, ..., nIRQ_O4 with a predetermined interval PS , It is possible to prevent an inrush current due to sudden wake-up from occurring in the first to fourth processors 580_1, ..., 580_4.

도 17은 도 15의 시스템 온-칩에서 인터럽트 스프레드 장치가 동작하는 다른 예를 나타내는 도면이다.17 is a diagram showing another example of the operation of the interrupt spread device in the system on-chip of FIG.

도 17을 참조하면, 도 17은 시스템 온-칩(500) 내에서 인터럽트 스프레드 장치(560) 내의 제 1 내지 제 m 인터럽트 홀더들(562_1, ..., 562_m)이 인터럽트 아비터(미도시)에 의하여 제어됨으로써, 제 1 내지 제 m 인터럽트 홀더들(562_1, ..., 562_m)에 입력되는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ... nIRQ_Im)이 기 설정된 간격을 두어 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)에 출력되는 다른 예를 보여주고 있다. 다만, 설명의 편의를 위하여, 도 17에서는 m이 4라고 가정한다.17, the first through m-th interrupt holders 562_1, ..., and 562_m in the interrupt spread device 560 in the system on-chip 500 are connected to an interrupt arbiter (not shown) The first through the m-th interrupt request signals nIRQ_I1 through nIRQ_Im input to the first through the m-th interrupt holders 562_1 through to the mth interrupt holders 562_1 through to the mth interrupt holders 562_m, M processors 580_1, ..., and 580_m, respectively. However, for convenience of explanation, it is assumed that m is 4 in Fig.

구체적으로, 제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n)이 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)을 출력하면, 인터럽트 컨트롤러(540)는 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)에 기초하여 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_I4)을 생성할 수 있다. 도 17에 도시된 바와 같이, 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_I4)은 제 1 인터럽트 요청 신호(nIRQ_I1), 제 2 인터럽트 요청 신호(nIRQ_I2), 제 4 인터럽트 요청 신호(nIRQ_I4), 제 3 인터럽트 요청 신호(nIRQ_I3) 순으로 입력될 수 있다. 이 때, 제 1 인터럽트 홀더(562_1)는 제 1 인터럽트 요청 신호(nIRQ_I1)보다 이전의 인터럽트 요청 신호가 없기 때문에 제 1 인터럽트 요청 신호(nIRQ_O1)를 바로 제 1 프로세서(580_1)에 출력할 수 있다. 이후, 제 2 인터럽트 홀더(562_2)는 제 1 인터럽트 요청 신호(nIRQ_I1)와 제 2 인터럽트 요청 신호(nIRQ_I2) 사이의 시간 간격이 기 설정된 간격(PS)보다 크므로, 제 2 인터럽트 요청 신호(nIRQ_O2)를 바로 제 2 프로세서(580_2)에 출력할 수 있다. 이후, 제 4 인터럽트 홀더(562_4)는 제 2 인터럽트 요청 신호(nIRQ_I2)와 제 4 인터럽트 요청 신호(nIRQ_I4) 사이의 시간 간격이 기 설정된 간격(PS)보다 작으므로, 제 4 인터럽트 요청 신호(nIRQ_I4)를 소정의 시간(DL1)만큼 지연시킨 후, 제 4 인터럽트 요청 신호(nIRQ_O4)를 제 4 프로세서(580_4)에 출력할 수 있다. 이후, 제 3 인터럽트 홀더(562_3)는 제 4 인터럽트 요청 신호(nIRQ_I4)와 제 3 인터럽트 요청 신호(nIRQ_I4) 사이의 시간 간격이 기 설정된 간격(PS)보다 작으므로, 제 3 인터럽트 요청 신호(nIRQ_I3)를 소정의 시간(DL2)만큼 지연시킨 후, 제 3 인터럽트 요청 신호(nIRQ_O3)를 제 3 프로세서(580_3)에 출력할 수 있다. 그 결과, 제 1 내지 제 4 프로세서들(580_1, ..., 580_4)은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_O1, ... nIRQ_Om)을 기 설정된 간격 이상을 두어 수신할 수 있으므로, 제 1 내지 제 4 프로세서들(580_1, ..., 580_4) 내부에 급작스러운 웨이크-업에 의한 인러쉬 전류가 생성되는 것을 방지할 수 있다.When the first to n-th interrupt sources 520_1 to 520_n output the first to the nth interrupts INT_R1 to INT_Rn, the interrupt controller 540 controls the first to n- It is possible to generate the first to fourth interrupt request signals nIRQ_I1, ..., nIRQ_I4 based on the n-th interrupts INT_R1, ..., INT_Rn. 17, the first to fourth interrupt request signals nIRQ_I1, ..., nIRQ_I4 include a first interrupt request signal nIRQ_I1, a second interrupt request signal nIRQ_I2, (nIRQ_I4), and the third interrupt request signal (nIRQ_I3). At this time, the first interrupt holder 562_1 can output the first interrupt request signal nIRQ_O1 directly to the first processor 580_1 since there is no interrupt request signal prior to the first interrupt request signal nIRQ_I1. Since the time interval between the first interrupt request signal nIRQ_I1 and the second interrupt request signal nIRQ_I2 is greater than the predetermined interval PS, the second interrupt holder 562_2 receives the second interrupt request signal nIRQ_O2, To the second processor 580_2. Since the time interval between the second interrupt request signal nIRQ_I2 and the fourth interrupt request signal nIRQ_I4 is smaller than the predetermined interval PS, the fourth interrupt holder 562_4 outputs the fourth interrupt request signal nIRQ_I4, And outputs the fourth interrupt request signal nIRQ_O4 to the fourth processor 580_4 after delaying the first interrupt request signal nIRQ_O4 by a predetermined time DL1. Since the time interval between the fourth interrupt request signal nIRQ_I4 and the third interrupt request signal nIRQ_I4 is smaller than the predetermined interval PS, the third interrupt holder 562_3 outputs the third interrupt request signal nIRQ_I3, And outputs the third interrupt request signal nIRQ_O3 to the third processor 580_3 after delaying the first interrupt request signal nIRQ_O3 by a predetermined time DL2. As a result, since the first to fourth processors 580_1, ..., 580_4 can receive the first to fourth interrupt request signals nIRQ_O1, ..., nIRQ_Om with a predetermined interval or more, It is possible to prevent an inrush current due to sudden wake-up from occurring in the first to fourth processors 580_1, ..., and 580_4.

도 18은 도 15의 시스템 온-칩에서 인터럽트 스프레드 장치가 동작하는 또 다른 예를 나타내는 도면이다.FIG. 18 is a diagram showing another example in which the interrupt spread device operates in the system on-chip of FIG.

도 18을 참조하면, 도 18은 시스템 온-칩(500) 내에서 인터럽트 스프레드 장치(560) 내의 제 1 내지 제 m 인터럽트 홀더들(562_1, ..., 562_m)이 인터럽트 아비터(미도시)에 의하여 제어됨으로써, 제 1 내지 제 m 인터럽트 홀더들(562_1, ..., 562_m)에 입력되는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ... nIRQ_Im)이 기 설정된 간격을 두어 제 1 내지 제 m 프로세서들(580_1, ..., 580_m)에 출력되는 또 다른 예를 보여주고 있다. 다만, 설명의 편의를 위하여, 도 18에서는 m이 4라고 가정한다.18, the first through m-th interrupt holders 562_1, ..., and 562_m in the interrupt spread device 560 in the system on-chip 500 are connected to an interrupt arbiter (not shown) The first through the m-th interrupt request signals nIRQ_I1 through nIRQ_Im input to the first through the m-th interrupt holders 562_1 through to the mth interrupt holders 562_1 through to the mth interrupt holders 562_m, M processors 580_1, ..., and 580_m, respectively. However, for convenience of explanation, it is assumed that m is 4 in Fig.

구체적으로, 제 1 내지 제 n 인터럽트 소스들(520_1, ..., 520_n)이 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)을 출력하면, 인터럽트 컨트롤러(540)는 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)에 기초하여 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_I4)을 생성할 수 있다. 도 18에 도시된 바와 같이, 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_I4)은 제 1 인터럽트 요청 신호(nIRQ_I1)와 제 2 인터럽트 요청 신호(nIRQ_I2)가 동시에 입력된 이후, 제 4 인터럽트 요청 신호(nIRQ_I4)와 제 3 인터럽트 요청 신호(nIRQ_I3)가 순차적으로 입력될 수 있다. 이 때, 제 1 인터럽트 요청 신호(nIRQ_I1)와 제 2 인터럽트 요청 신호(nIRQ_I2)가 동시에 입력되기 때문에, 제 1 인터럽트 홀더(562_1)는 제 2 인터럽트 요청 신호(nIRQ_O2)보다 우선순위가 높은 제 1 인터럽트 요청 신호(nIRQ_O1)를 바로 제 1 프로세서(580_1)에 출력할 수 있다. 반면에, 제 2 인터럽트 홀더(562_2)는 제 1 인터럽트 요청 신호(nIRQ_I1)보다 우선순위가 낮은 제 2 인터럽트 요청 신호(nIRQ_I2)를 기 설정된 간격만큼 지연(DL1)시킨 후, 제 2 인터럽트 요청 신호(nIRQ_O2)를 제 2 프로세서(580_2)에 출력할 수 있다. 이후, 제 4 인터럽트 요청 신호(nIRQ_I4)와 제 3 인터럽트 요청 신호(nIRQ_I3)가 순차적으로 입력되지만, 제 4 인터럽트 요청 신호(nIRQ_I4)와 제 3 인터럽트 요청 신호(nIRQ_I3)는 기 설정된 우선순위에 기초하여 비순차적으로 출력될 수 있다. 예를 들어, 우선순위가 높은 제 3 인터럽트 요청 신호(nIRQ_03)가 우선순위가 낮은 제 4 인터럽트 요청 신호(nIRQ_04)보다 먼저 출력될 수 있다. 즉, 제 3 인터럽트 홀더(562_3)가 제 2 인터럽트 요청 신호(nIRQ_I2)와 제 3 인터럽트 요청 신호(nIRQ_I3) 사이의 시간 간격이 기 설정된 간격(PS)보다 작으므로, 제 3 인터럽트 요청 신호(nIRQ_I3)를 소정의 시간(DL2)만큼 지연시킨 후, 제 3 인터럽트 요청 신호(nIRQ_O3)를 제 3 프로세서(580_3)에 출력할 수 있다. 이후, 제 4 인터럽트 홀더(562_4)는 제 4 인터럽트 요청 신호(nIRQ_I4)를 소정의 시간(DL3)만큼 지연시킨 후, 제 4 인터럽트 요청 신호(nIRQ_O4)를 제 4 프로세서(580_4)에 출력할 수 있다. 그 결과, 제 1 내지 제 4 프로세서들(580_1, ..., 580_4)은 제 1 내지 제 4 인터럽트 요청 신호들(nIRQ_O1, ... nIRQ_Om)을 기 설정된 간격을 두어 수신할 수 있으므로, 제 1 내지 제 4 프로세서들(580_1, ..., 580_4) 내부에 급작스러운 웨이크-업에 의한 인러쉬 전류가 생성되는 것을 방지할 수 있다.When the first to n-th interrupt sources 520_1 to 520_n output the first to the nth interrupts INT_R1 to INT_Rn, the interrupt controller 540 controls the first to n- It is possible to generate the first to fourth interrupt request signals nIRQ_I1, ..., nIRQ_I4 based on the n-th interrupts INT_R1, ..., INT_Rn. 18, after the first interrupt request signal nIRQ_I1 and the second interrupt request signal nIRQ_I2 are inputted simultaneously, the first to fourth interrupt request signals nIRQ_I1, ..., nIRQ_I4, The fourth interrupt request signal nIRQ_I4 and the third interrupt request signal nIRQ_I3 may be sequentially input. At this time, since the first interrupt request signal nIRQ_I1 and the second interrupt request signal nIRQ_I2 are input simultaneously, the first interrupt holder 562_1 receives the first interrupt request signal nIRQ_O2 having a higher priority than the second interrupt request signal nIRQ_O2 And can output the request signal nIRQ_O1 directly to the first processor 580_1. On the other hand, the second interrupt holder 562_2 delays the second interrupt request signal nIRQ_I2 having a lower priority than the first interrupt request signal nIRQ_I1 by a predetermined interval, nIRQ_O2) to the second processor 580_2. The fourth interrupt request signal nIRQ_I4 and the third interrupt request signal nIRQ_I3 are sequentially inputted based on the predetermined priority although the fourth interrupt request signal nIRQ_I4 and the third interrupt request signal nIRQ_I3 are sequentially input. Can be output in a non-sequential manner. For example, the third interrupt request signal nIRQ_03 having a higher priority may be output before the fourth interrupt request signal nIRQ_04 having a lower priority. That is, since the third interrupt holder 562_3 has the third interrupt request signal nIRQ_I3 because the time interval between the second interrupt request signal nIRQ_I2 and the third interrupt request signal nIRQ_I3 is less than the predetermined interval PS, And outputs the third interrupt request signal nIRQ_O3 to the third processor 580_3 after delaying the first interrupt request signal nIRQ_O3 by a predetermined time DL2. The fourth interrupt holder 562_4 may delay the fourth interrupt request signal nIRQ_I4 by a predetermined time DL3 and then output the fourth interrupt request signal nIRQ_O4 to the fourth processor 580_4 . As a result, the first to fourth processors 580_1, ..., 580_4 can receive the first to fourth interrupt request signals nIRQ_O1, ..., nIRQ_Om at predetermined intervals, It is possible to prevent an inrush current caused by sudden wake-up from occurring in the first to fourth processors 580_1, ..., 580_4.

도 19는 임의의 시스템 온-칩이 인터럽트 스프레드 장치를 구비하고 있는지 여부를 검증하는 방법의 일 예를 나타내는 순서도이고, 도 20은 임의의 시스템 온-칩이 인터럽트 스프레드 장치를 구비하고 있는지 여부를 검증하는 방법의 일 예를 설명하기 위한 도면이다.FIG. 19 is a flowchart showing an example of a method for verifying whether any system on-chip is equipped with an interrupt spread device, and FIG. 20 is a flowchart for verifying whether or not any system on- Fig. 2 is a view for explaining an example of a method for performing the above method.

도 19 및 도 20을 참조하면, 도 19의 검증하는 방법은 복수의 인터럽트들에 상응하는 복수의 인터럽트 요청 신호들(IAT)을 제 1 시간 간격(ATP)으로 복수의 프로세서들에 순차적으로 인가(Step S510)하고, 상기 프로세서들이 웨이크-업(TOT)되는 제 2 시간 간격(ETP)을 검출(Step S520)하며, 상기 제 1 시간 간격(ATP)이 0이 되었는지 여부를 판단(Step S530)할 수 있다. 이 때, 상기 제 1 시간 간격(ATP)이 0이 되지 않은 경우, 도 19의 검증하는 방법은 상기 제 1 시간 간격(ATP)을 감소(Step S540)시킨 후, 상기 단계들(Step S510, Step S520, Step S530)을 반복할 수 있다. 반면에, 상기 제 1 시간 간격(ATP)이 0이 된 경우, 도 19의 검증하는 방법은 상기 제 2 시간 간격(ETP)이 일정한 값으로 수렴했는지 여부를 판단(Step S550)할 수 있다. 그 결과, 상기 제 2 시간 간격(ETP)이 일정한 값으로 수렴한 경우, 도 19의 검증하는 방법은 임의의 시스템 온-칩에 본 발명의 실시예들에 따른 인터럽트 스프레드 장치 및 방법이 적용된 것으로 판단(Step S560)할 수 있고, 상기 제 2 시간 간격(ETP)이 일정한 값으로 수렴하지 않고 계속적으로 작아진 경우, 도 19의 검증하는 방법은 임의의 시스템 온-칩에 본 발명의 실시예들에 따른 인터럽트 스프레드 장치 및 방법이 적용되지 않은 것으로 판단(Step S570)할 수 있다. 즉, 상기 제 2 시간 간격(ETP)이 일정한 값으로 수렴한다는 것은, 복수의 인터럽트 요청 신호들(IAT) 사이의 제 1 시간 간격(ATP)이 일정한 값 이하로 작아지더라도, 복수의 인터럽트 요청 신호들(IAT)이 제 2 시간 간격(ETP)(즉, 기 설정된 간격)을 두어 복수의 프로세서들에 입력되고 있는 것을 의미하므로, 임의의 시스템 온-칩에 본 발명의 실시예들에 따른 인터럽트 스프레드 장치 및 방법이 적용된 것으로 판단될 수 있다. 다만, 도 19의 검증하는 방법은 하나의 예시로서, 요구되는 조건에 따라 다양한 방법으로 실시될 수 있다.19 and 20, the verification method of FIG. 19 includes sequentially applying a plurality of interrupt request signals IAT corresponding to a plurality of interrupts to a plurality of processors at a first time interval ATP Step S510), the processors detect a second time interval (ETP) to be woken up (step S520), and it is determined whether the first time interval ATP has become 0 (step S530) . In this case, if the first time interval ATP does not become zero, the verification method of FIG. 19 may reduce the first time interval ATP (Step S540) and then perform the steps (Step S510, Step S520, and Step S530) may be repeated. On the other hand, when the first time interval ATP is 0, the verification method of FIG. 19 may determine whether the second time interval ETP has converged to a predetermined value (Step S550). As a result, when the second time interval ETP converges to a predetermined value, the verification method of FIG. 19 determines that the interrupt spread device and method according to the embodiments of the present invention are applied to an arbitrary system on-chip (Step S560), and if the second time interval ETP does not converge to a constant value and continuously decreases, the verification method of FIG. 19 may be applied to any system on-chip in embodiments of the present invention It is determined that the interrupt spreading apparatus and method are not applied (step S570). That is, the convergence of the second time interval ETP to a constant value means that even if the first time interval ATP between the plurality of interrupt request signals IAT becomes smaller than a predetermined value, (IAT) is being input to a plurality of processors with a second time interval (ETP) (i.e., a predetermined interval), so that any system on-chip can be provided with an interrupt spread It can be judged that the apparatus and method are applied. However, the verification method of FIG. 19 can be implemented in various ways according to the required conditions, as an example.

도 21은 임의의 시스템 온-칩이 인터럽트 스프레드 장치를 구비하고 있는지 여부를 검증하는 방법의 다른 예를 나타내는 순서도이다.Fig. 21 is a flowchart showing another example of a method for verifying whether or not any system on-chip has an interrupt spread device.

도 21을 참조하면, 도 21의 검증하는 방법은 복수의 인터럽트들에 상응하는 복수의 인터럽트 요청 신호들을 제 1 시간 간격으로 복수의 프로세서들에 순차적으로 인가(Step S610)하고, 공급 전압의 전압 강하(voltage drop)를 측정(Step S620)하며, 상기 제 1 시간 간격이 0이 되었는지 여부를 판단(Step S630)할 수 있다. 이 때, 상기 제 1 시간 간격이 0이 되지 않은 경우, 도 21의 검증하는 방법은 상기 제 1 시간 간격을 감소(Step S640)시킨 후, 상기 단계들(Step S610, Step S620, Step S630)을 반복할 수 있다. 반면에, 상기 제 1 시간 간격이 0이 된 경우, 도 21의 검증하는 방법은 상기 공급 전압의 전압 강하가 일정한 값으로 수렴했는지 여부를 판단(Step S650)할 수 있다. 그 결과, 상기 공급 전압의 전압 강하가 일정한 값으로 수렴한 경우, 도 21의 검증하는 방법은 임의의 시스템 온-칩에 본 발명의 실시예들에 따른 인터럽트 스프레드 장치 및 방법이 적용된 것으로 판단(Step S660)할 수 있고, 상기 공급 전압의 전압 강하가 일정한 값으로 수렴하지 않고 계속적으로 커진 경우, 도 21의 검증하는 방법은 임의의 시스템 온-칩에 본 발명의 실시예들에 따른 인터럽트 스프레드 장치 및 방법이 적용되지 않은 것으로 판단(Step S670)할 수 있다. 즉, 상기 공급 전압의 전압 강하가 일정한 값으로 수렴한다는 것은, 복수의 인터럽트 요청 신호들 사이의 제 1 시간 간격이 일정한 값 이하로 작아지더라도, 복수의 인터럽트 요청 신호들이 기 설정된 간격을 두어 복수의 프로세서들에 입력되고 있는 것을 의미하므로, 임의의 시스템 온-칩에 본 발명의 실시예들에 따른 인터럽트 스프레드 장치 및 방법이 적용된 것으로 판단될 수 있다. 도 21의 검증하는 방법은 도 19의 검증하는 방법과 함께 수행됨으로써, 본 발명의 실시예들에 따른 인터럽트 스프레드 장치 및 방법이 적용 여부에 대하여 보다 정확한 판단을 가능하게 할 수 있다.Referring to FIG. 21, the verification method of FIG. 21 sequentially applies a plurality of interrupt request signals corresponding to a plurality of interrupts to a plurality of processors at a first time interval (step S610) (step S620), and it may be determined whether the first time interval is 0 (step S630). If the first time interval does not become 0, the verification method of FIG. 21 may reduce the first time interval (Step S640), and then perform the steps (Step S610, Step S620, Step S630) It can be repeated. On the other hand, if the first time interval is 0, the verification method of FIG. 21 can determine whether the voltage drop of the supply voltage has converged to a predetermined value (Step S650). As a result, when the voltage drop of the supply voltage converges to a predetermined value, the verification method of FIG. 21 determines that the interrupt spread device and method according to the embodiments of the present invention are applied to an arbitrary system on-chip S660). If the voltage drop of the supply voltage does not converge to a constant value but continuously increases, the method of verifying in FIG. 21 may be applied to any system on-chip, such as an interrupt spread device It is judged that the method is not applied (Step S670). That is, the convergence of the voltage drop of the supply voltage to a constant value means that even if the first time interval between the plurality of interrupt request signals becomes smaller than a predetermined value, a plurality of interrupt request signals Processors, it can be determined that an arbitrary system on-chip is applied to the interrupt spreading apparatus and method according to the embodiments of the present invention. The verification method of FIG. 21 is performed together with the verification method of FIG. 19, thereby making it possible to make a more accurate determination as to whether or not the interrupt spread apparatus and method according to the embodiments of the present invention are applicable.

도 22는 본 발명의 일 실시예에 따른 멀티 코어 시스템을 나타내는 블록도이고, 도 23은 도 21의 멀티 코어 시스템이 스마트폰으로 구현되는 일 예를 나타내는 도면이다.FIG. 22 is a block diagram illustrating a multicore system according to an embodiment of the present invention, and FIG. 23 is a diagram illustrating an example in which the multicore system of FIG. 21 is implemented as a smartphone.

도 22 및 도 23을 참조하면, 멀티 코어 시스템(600)은 제 1 내지 제 n 인터럽트 소스들(610_1, ..., 610_n), 인터럽트 컨트롤러(620), 인터럽트 스프레드 장치(630), 멀티 코어 프로세서(640), 버스 인터페이스(645), 램(Random Access Memory; RAM) 디바이스(650), 롬(Read Only Memory; ROM) 디바이스(660), 스토리지 디바이스(670), 시스템 버스(680) 등을 포함할 수 있다. 이 때, 멀티 코어 프로세서(640)는 제 1 내지 제 m 코어들(P1, ..., Pm)을 포함할 수 있는데, m이 2인 경우 듀얼 코어 프로세서, m이 4인 경우 쿼드 코어 프로세서 등으로 명명될 수 있다. 이 때, 멀티 코어 시스템(600)은 스마트폰(700)에 상응할 수 있으나, 그에 한정되는 것은 아니다. 예를 들어, 멀티 코어 시스템(600)은 스마트패드, 휴대폰 등과 같은 모바일 기기 및 스마트 텔레비전 등과 같은 전자 기기로 구현될 수 있다. 나아가, 멀티 코어 시스템(600)은 복수의 코어들을 가진 멀티 코어 프로세서를 구비하는 시스템뿐 만 아니라, 단일의 코어를 가진 복수의 프로세서들을 구비하는 멀티 프로세서 시스템으로도 해석되어야 한다.22 and 23, the multicore system 600 includes first to nth interrupt sources 610_1, ..., 610_n, an interrupt controller 620, an interrupt spread device 630, (RAM) device 650, a ROM (Read Only Memory) device 660, a storage device 670, a system bus 680, and the like can do. In this case, the multi-core processor 640 may include the first through m-th cores P1, ..., Pm. If m is 2, a dual core processor, m is 4, . ≪ / RTI > At this time, the multicore system 600 may correspond to the smartphone 700, but is not limited thereto. For example, the multi-core system 600 may be implemented with electronic devices such as smart pads, mobile devices such as mobile phones, and smart televisions. Further, the multicore system 600 should be interpreted not only as a system having a multicore processor with a plurality of cores, but also as a multiprocessor system having a plurality of processors with a single core.

제 1 내지 제 n 인터럽트 소스들(610_1, ..., 610_n)은 각각 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)을 생성할 수 있다. 이 때, 제 1 내지 제 n 인터럽트 소스들(610_1, ..., 610_n)은 각각 멀티 코어 시스템(600) 내에서 소정의 동작을 수행하는 아이피들(610_1, ..., 610_n)로서, 시스템 온-칩을 구성하는 여러 구성 요소들 예를 들어, 비디오 모듈, 사운드 모듈, 디스플레이 모듈, 메모리 모듈, 통신 모듈, 카메라 모듈 등과 같은 소정의 모듈들에 상응할 수 있다. 인터럽트 컨트롤러(620)는 제 1 내지 제 n 인터럽트 소스들(610_1, ..., 610_n)로부터 출력되는 제 1 내지 제 n 인터럽트들(INT_R1, ..., INT_Rn)에 기초하여 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im)을 생성할 수 있다. 인터럽트 스프레드 장치(630)는 인터럽트 컨트롤러(620)로부터 입력되는 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 중에서 인접하는 인터럽트 요청 신호들 사이의 시간 간격을 적어도 기 설정된 간격 이상으로 조절할 수 있다. 도 21에 도시된 바와 같이, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_O1, ..., nIRQ_Om)은 멀티 코어 프로세서(640) 내부의 제 1 내지 제 m 코어들(P1, ..., Pm)에 각각 출력될 수 있다. 이를 위하여, 인터럽트 스프레드 장치(630)는 제 1 내지 제 m 인터럽트 홀더들 및 상기 제 1 내지 제 m 인터럽트 홀더들을 제어하기 위한 인터럽트 아비터를 포함할 수 있다. 다만, 이에 대해서는 상술한 바 있으므로, 그에 대한 중복되는 설명은 생략하기로 한다.The first to nth interrupt sources 610_1 to 610_n may generate first to nth interrupts INT_R1 to INT_Rn, respectively. In this case, the first to nth interrupt sources 610_1, ..., and 610_n are IPs 610_1, ..., and 610_n that perform a predetermined operation in the multicore system 600, For example, a video module, a sound module, a display module, a memory module, a communication module, a camera module, and the like. The interrupt controller 620 generates first to m-th interrupts INT_R1 to INT_Rn based on the first to n-th interrupts INT_R1 to INT_Rn output from the first to nth interrupt sources 610_1 to 610_n, Interrupt request signals nIRQ_I1, ..., nIRQ_Im. The interrupt spreading unit 630 is configured to interrupt a time interval between adjacent interrupt request signals among the first to mth interrupt request signals nIRQ_I1, ..., nIRQ_Im input from the interrupt controller 620 by at least a predetermined interval . The first to mth interrupt request signals nIRQ_O1 to nIRQ_Om are input to the first to mth cores P1 to Pm in the multicore processor 640, Respectively. To this end, the interrupt spread device 630 may include first to m-th interrupt holders and an interrupt arbiter for controlling the first to m-th interrupt holders. However, since this has been described above, a duplicate description thereof will be omitted.

한편, 멀티 코어 프로세서(640)는 버스 인터페이스(645)를 통해 시스템 버스(680)에 연결되어 다른 구성요소들과 데이터를 송수신할 수 있다. 즉, 멀티 코어 프로세서(640)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus) 등과 같은 시스템 버스(680)를 통하여 복수의 아이피들(610_1, ..., 610_n), 램 디바이스(650), 롬 디바이스(660), 스토리지 디바이스(670) 등과 통신을 수행할 수 있다. 이 때, 스토리지 장치(670)는 하드 디스크 드라이브(Hard Disk Drive; HDD), 솔리드 스테이트 드라이브(Solid State Drive; SSD), 레이드(Redundant Array of Independent Disk; RAID) 등일 수 있다. 실시예에 따라, 멀티 코어 프로세서(640)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다. 한편, 도 21에는 도시되지 않았지만, 멀티 코어 시스템(600)은 비휘발성 메모리 장치 및/또는 휘발성 메모리 장치를 더 포함할 수 있다. 이 때, 비휘발성 메모리 장치는 EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(Flash Memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등으로 구현될 수 있고, 휘발성 메모리 장치는 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), 모바일 DRAM 등으로 구현될 수 있다.Meanwhile, the multicore processor 640 may be connected to the system bus 680 via the bus interface 645 to transmit and receive data to and from other components. That is, the multi-core processor 640 is connected to the plurality of IP addresses 610_1, ..., 610_n (610_1, ..., 610_n) via a system bus 680 such as an address bus, a control bus, and a data bus ), The RAM device 650, the ROM device 660, the storage device 670, and the like. At this time, the storage device 670 may be a hard disk drive (HDD), a solid state drive (SSD), a RAID (Redundant Array of Independent Disk), or the like. In accordance with an embodiment, the multicore processor 640 may also be coupled to an expansion bus, such as a Peripheral Component Interconnect (PCI) bus. Meanwhile, although not shown in FIG. 21, the multicore system 600 may further include a non-volatile memory device and / or a volatile memory device. In this case, the nonvolatile memory device may be an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a flash memory, a phase change random access memory (PRAM) A volatile memory device may be implemented as a dynamic random access memory (DRAM), a nonvolatile memory device such as a dynamic random access memory (DRAM), a nonvolatile random access memory (NAM), a nano floating gate memory (NFGM), a polymer random access memory (PoRAM), a magnetic random access memory Memory, an SRAM (Static Random Access Memory), a mobile DRAM, or the like.

이와 같이, 멀티 코어 시스템(600)은 크게 데이터를 송수신하기 위한 시스템 버스 경로(system bus path)와 인터럽트를 처리하기 위한 인터럽트 경로(interrupt path)를 가질 수 있고, 멀티 코어 프로세서(640)는 상기 시스템 버스 경로 및 인터럽트 경로를 통해 복수의 아이피들(610_1, ..., 610_n)로 하여금 소정의 동작을 수행하게 하고, 상기 아이피들(610_1, ..., 610_n)이 소정의 동작을 수행함에 따른 인터럽트 처리를 수행할 수 있다. 한편, 멀티 코어 시스템(600)은 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들어, PoP(Package on Package), BGAs(Ball grid arrays), CSPs(Chip scale packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-Line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-Line Package), MQFP(Plastic Metric Quad Flat Pack), TQFP(Thin Quad Flat-Pack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline Package), TQFP(Thin Quad Flat-Pack), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등과 같은 패키지들이 이용될 수 있다.As such, the multicore system 600 may have a system bus path for transmitting / receiving data and an interrupt path for processing interrupts, and the multicore processor 640 may have a system bus path 610_n through a bus path and an interrupt path to perform a predetermined operation and to cause the plurality of IPs 610_1, ..., 610_n to perform predetermined operations Interrupt processing can be performed. Meanwhile, the multicore system 600 may be implemented using various types of packages. For example, the package on package (PoP), ball grid arrays (BGAs), chip scale packages (CSPs), plastic leaded chip carriers (PLCC), plastic dual in-line packages (PDIP) (SMIC) chip, a chip on board (COB), a ceramic dual in-line package (CERDIP), a plastic metric quad flat pack (MQFP), a thin quad flat pack (TQFP), a small outline integrated circuit (SOIC) Outline Package), Thin Small Outline Package (TSOP), Thin Quad Flat-Pack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP) Stack Package) and the like can be used.

본 발명은 복수의 프로세서들(또는, 멀티 코어 프로세서)을 구비하는 멀티 프로세서 시스템에 적용될 수 있다. 예를 들어, 본 발명은 복수의 프로세서들(또는, 멀티 코어 프로세서)을 구비하는 컴퓨터, 노트북, 휴대폰, 스마트폰, 스마트패드, 보안 시스템 등에 적용될 수 있다.The present invention can be applied to a multiprocessor system having a plurality of processors (or multicore processors). For example, the present invention can be applied to a computer having a plurality of processors (or a multicore processor), a notebook computer, a mobile phone, a smart phone, a smart pad, a security system, and the like.

이상에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention as defined in the following claims. It can be understood that it is possible.

100: 인터럽트 스프레드 장치 120: 인터럽트 홀더
140: 인터럽트 아비터 500: 시스템 온-칩
520: 인터럽트 소스 540: 인터럽트 컨트롤러
560: 인터럽트 스프레드 장치 580: 프로세서
100: Interrupt spread device 120: Interrupt holder
140: Interruption arbiter 500: System on-chip
520: Interrupt source 540: Interrupt controller
560: Interrupt spread device 580: Processor

Claims (26)

인터럽트 스프레드 장치가 복수의 인터럽트 요청 신호들을 수신하는 단계;
상기 인터럽트 스프레드 장치가 상기 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단하는 단계;
상기 인터럽트 스프레드 장치가 상기 시간 간격이 상기 기 설정된 간격보다 작은 경우, 상기 시간 간격을 상기 기 설정된 간격으로 조절하는 단계; 및
상기 인터럽트 스프레드 장치가 상기 인터럽트 요청 신호들을 복수의 프로세서들에 각각 출력하는 단계를 포함하고,
상기 인터럽트 요청 신호들은 복수의 인터럽트 소스(source)들로부터 출력되는 복수의 인터럽트들에 기초하여 생성되고, 상기 인터럽트 요청 신호들은 상기 프로세서들에 각각 할당되며,
상기 기 설정된 간격은 상기 프로세서들이 인액티브(inactive) 상태에서 액티브(active) 상태로 변경될 때, 상기 프로세서들 내부에 인러쉬 전류가 생성되지 않는 범위 내에서 결정되는 것을 특징으로 하는 인터럽트 스프레드 방법.
The interrupt spread device receiving a plurality of interrupt request signals;
The interrupt spread device determining whether each time interval between the interrupt request signals is less than a predetermined interval;
Adjusting the time interval to a predetermined interval if the time interval is shorter than the predetermined interval; And
And the interrupt spread device outputs the interrupt request signals to the plurality of processors, respectively,
Wherein the interrupt request signals are generated based on a plurality of interrupts output from a plurality of interrupt sources, the interrupt request signals are respectively assigned to the processors,
Wherein the predetermined interval is determined within a range in which an inrush current is not generated in the processors when the processors are changed from an inactive state to an active state.
삭제delete 삭제delete 제 1 항에 있어서, 상기 기 설정된 간격으로 조절하는 단계는
인접하는 제 k(단, k는 1이상인 정수) 인터럽트 요청 신호와 제 k+1 인터럽트 요청 신호 사이의 제 k 시간 간격이 0보다 큰 경우, 상기 제 k 시간 간격이 상기 기 설정된 간격으로 될 때까지 상기 제 k+1 인터럽트 요청 신호의 출력을 지연시키는 단계를 포함하는 것을 특징으로 하는 인터럽트 스프레드 방법.
2. The method of claim 1, wherein adjusting
When the kth time interval between the k-th adjacent interrupt request signal (where k is an integer equal to or greater than 1) and the (k + 1) -th interrupt request signal is greater than 0, until the kth time interval becomes the predetermined interval And delaying the output of the (k + 1) -th interrupt request signal.
제 4 항에 있어서, 상기 기 설정된 간격으로 조절하는 단계는
기 설정된 우선순위에 따라 상기 인터럽트 요청 신호들의 출력 순서를 변경하는 단계를 더 포함하는 것을 특징으로 하는 인터럽트 스프레드 방법.
5. The method of claim 4, wherein adjusting
Further comprising changing an output order of the interrupt request signals according to a predetermined priority.
제 5 항에 있어서, 상기 기 설정된 간격으로 조절하는 단계는
상기 제 k 시간 간격이 0인 경우, 상기 기 설정된 우선순위에 따라 상기 제 k 인터럽트 요청 신호와 상기 제 k+1 인터럽트 요청 신호 중에서 하나의 출력을 상기 기 설정된 간격만큼 지연시키는 단계를 더 포함하는 것을 특징으로 하는 인터럽트 스프레드 방법.
6. The method of claim 5, wherein adjusting
And delaying one of the k-th interrupt request signal and the (k + 1) -th interrupt request signal by the predetermined interval according to the predetermined priority when the k-th time interval is 0 The interrupt spread method.
인터럽트 스프레드 장치가 복수의 인터럽트 요청 신호들을 수신하는 단계;
상기 인터럽트 스프레드 장치가 상기 인터럽트 요청 신호들이 각각 출력될 복수의 프로세서들을 액티브(active) 상태인 프로세서들과 인액티브(inactive) 상태인 프로세서들로 분류하는 단계;
상기 인터럽트 스프레드 장치가 상기 인터럽트 요청 신호들 중에서 상기 액티브 상태인 프로세서들에 출력될 비대상(non-target) 인터럽트 요청 신호들을 상기 액티브 상태인 프로세서들에 각각 출력하는 단계;
상기 인터럽트 스프레드 장치가 상기 인터럽트 요청 신호들 중에서 상기 인액티브 상태인 프로세서들에 출력될 대상(target) 인터럽트 요청 신호들 사이의 각각의 시간 간격이 기 설정된 간격보다 작은지 여부를 판단하는 단계;
상기 인터럽트 스프레드 장치가 상기 시간 간격이 상기 기 설정된 간격보다 작은 경우, 상기 시간 간격을 상기 기 설정된 간격으로 조절하는 단계; 및
상기 인터럽트 스프레드 장치가 상기 대상 인터럽트 요청 신호들을 상기 인액티브 상태인 프로세서들에 각각 출력하는 단계를 포함하고,
상기 기 설정된 간격으로 조절하는 단계는
인접하는 제 k(단, k는 1이상인 정수) 대상 인터럽트 요청 신호와 제 k+1 대상 인터럽트 요청 신호 사이의 제 k 시간 간격이 0보다 큰 경우, 상기 제 k 시간 간격이 상기 기 설정된 간격으로 될 때까지 상기 제 k+1 대상 인터럽트 요청 신호의 출력을 지연시키는 단계를 포함하는 것을 특징으로 하는 인터럽트 스프레드 방법.
The interrupt spread device receiving a plurality of interrupt request signals;
Classifying the plurality of processors to which the interrupt request signals are to be output respectively into processors that are in an active state and processors that are in an inactive state;
Outputting non-target interrupt request signals to be output to the active processors among the interrupt request signals to the processors in the active state, respectively;
Determining whether a time interval between target interrupt request signals to be output to the inactive processors among the interrupt request signals is less than a predetermined interval;
Adjusting the time interval to a predetermined interval if the time interval is shorter than the predetermined interval; And
And the interrupt spread device outputs the target interrupt request signals to the inactive processors, respectively,
The step of adjusting at the predetermined interval
If the kth time interval between adjacent kth (k is an integer greater than or equal to 1) target interrupt request signal and the (k + 1) th target interrupt request signal is greater than 0, the kth time interval may be the predetermined interval And delaying the output of the (k + 1) th interrupt request signal until the (k + 1) th interrupt request signal.
삭제delete 제 7 항에 있어서, 상기 기 설정된 간격으로 조절하는 단계는
기 설정된 우선순위에 따라 상기 대상 인터럽트 요청 신호들의 출력 순서를 변경하는 단계를 더 포함하는 것을 특징으로 하는 인터럽트 스프레드 방법.
8. The method of claim 7, wherein adjusting
Further comprising changing an output order of the target interrupt request signals according to a predetermined priority.
제 9 항에 있어서, 상기 기 설정된 간격으로 조절하는 단계는
상기 제 k 시간 간격이 0인 경우, 상기 기 설정된 우선순위에 따라 상기 제 k 대상 인터럽트 요청 신호와 상기 제 k+1 대상 인터럽트 요청 신호 중에서 하나의 출력을 상기 기 설정된 간격만큼 지연시키는 단계를 더 포함하는 것을 특징으로 하는 인터럽트 스프레드 방법.
10. The method of claim 9, wherein adjusting
And delaying one output of the k-th target interrupt request signal and the (k + 1) -th target interrupt request signal by the predetermined interval according to the predetermined priority when the k-th time interval is 0 And the interrupt spread method.
제 1 내지 제 m(단, m은 2이상의 정수) 인터럽트 요청 신호들을 수신하고, 상기 제 1 내지 제 m 인터럽트 요청 신호들을 적어도 기 설정된 간격 이상을 두어 제 1 내지 제 m 프로세서들에 각각 출력하는 제 1 내지 제 m 인터럽트 홀더들; 및
상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 인접하는 인터럽트 요청 신호들 사이의 시간 간격이 상기 기 설정된 간격보다 작은 경우, 상기 시간 간격을 상기 기 설정된 간격으로 조절하는 인터럽트 아비터를 포함하고,
상기 제 1 내지 제 m 인터럽트 요청 신호들은 복수의 인터럽트 소스들로부터 출력되는 복수의 인터럽트들에 기초하여 생성되고, 상기 제 1 내지 제 m 인터럽트 요청 신호들은 상기 제 1 내지 제 m 인터럽트 홀더들에 각각 수신되며,
상기 제 1 내지 제 m 인터럽트 홀더들은 상기 제 1 내지 제 m 프로세서들에 각각 연결되고, 상기 제 1 내지 제 m 인터럽트 요청 신호들을 적어도 상기 기 설정된 간격 이상을 두어 상기 제 1 내지 제 m 프로세서들에 각각 출력하고,
상기 기 설정된 간격은 상기 제 1 내지 제 m 프로세서들이 인액티브 상태에서 액티브 상태로 변경될 때, 상기 제 1 내지 제 m 프로세서들 내부에 인러쉬 전류가 생성되지 않는 범위 내에서 결정되는 것을 특징으로 하는 인터럽트 스프레드 장치.
(M is an integer equal to or greater than 2) interrupt request signals, and outputting the first to the m-th interrupt request signals to the first to the m-th processors, respectively, 1 to m < th > interrupt holders; And
And an interrupt arbiter for adjusting the time interval to a predetermined interval when a time interval between adjacent interrupt request signals among the first to mth interrupt request signals is smaller than the predetermined interval,
The first through the m-th interrupt request signals are generated based on a plurality of interrupts output from the plurality of interrupt sources, and the first through m-th interrupt request signals are respectively received And,
Wherein the first to mth interrupt holders are connected to the first to the m processors, respectively, and the first to the m-th interrupt request signals are provided to the first to the m processors, respectively, And outputs,
Wherein the predetermined interval is determined within a range in which an inrush current is not generated in the first to mth processors when the first to mth processors are changed from an inactive state to an active state, Interrupt spread device.
삭제delete 삭제delete 삭제delete 제 11 항에 있어서, 상기 제 1 내지 제 m 인터럽트 홀더들은 상기 제 1 내지 제 m 인터럽트 요청 신호들을 각각 수신하면, 상기 인터럽트 아비터에 출력 요청 신호를 송신하고, 상기 인터럽트 아비터로부터 출력 허가 신호를 수신하면, 상기 제 1 내지 제 m 인터럽트 요청 신호들을 상기 제 1 내지 제 m 프로세서들에 각각 출력하는 것을 특징으로 하는 인터럽트 스프레드 장치.The method of claim 11, wherein the first to m-th interrupt holders transmit the output request signal to the interrupt arbiter upon receiving the first to the m-th interrupt request signals, respectively, and receive an output enable signal from the interrupt arbitrator And outputs the first to the m-th interrupt request signals to the first to m-th processors, respectively. 제 15 항에 있어서, 상기 제 1 내지 제 m 인터럽트 홀더들 각각은 상기 제 1 내지 제 m 인터럽트 요청 신호들이 수신되지 않았음을 나타내는 아이들 스테이트(idle state), 상기 인터럽트 아비터로부터 상기 출력 허가 신호를 기다리고 있음을 나타내는 웨이트 스테이트(wait state) 및 상기 제 1 내지 제 m 인터럽트 요청 신호들이 상기 제 1 내지 제 m 프로세서들에 출력되고 있음을 나타내는 어서트 스테이트(assert state)로 구성된 스테이트 머신(state machine)으로 구현되는 것을 특징으로 하는 인터럽트 스프레드 장치.16. The method of claim 15, wherein each of the first through m-th interrupt holders is in an idle state indicating that the first through the m-th interrupt request signals are not received, waiting for the output enable signal from the interrupt arbiter And an assert state indicating that the first to the m-th interrupt request signals are being output to the first to m-th processors, respectively, and a state machine And the interrupt spread device is implemented. 제 15 항에 있어서, 상기 인터럽트 아비터는 상기 제 1 내지 제 m 인터럽트 홀더들로부터 각각 상기 출력 요청 신호를 수신하면, 상기 제 1 내지 제 m 인터럽트 홀더들에 상기 출력 허가 신호를 순차적으로 출력하여, 상기 제 1 내지 제 m 인터럽트 요청 신호들이 적어도 상기 기 설정된 간격 이상으로 상기 제 1 내지 제 m 프로세서들에 각각 출력되도록 제어하는 것을 특징으로 하는 인터럽트 스프레드 장치.The method of claim 15, wherein the interrupt arbiter sequentially outputs the output enable signal to the first through m-th interrupt holders when receiving the output request signal from the first through m-th interrupt holders, And the first to mth interrupt request signals are output to the first to the m processors at least over the predetermined interval. 제 17 항에 있어서, 상기 인터럽트 아비터는 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 어느 하나도 상기 제 1 내지 제 m 프로세서들에 출력되고 있지 않음을 나타내는 아이들 스테이트, 및 상기 제 1 내지 제 n 인터럽트 요청 신호들 중에서 적어도 하나 이상이 상기 제 1 내지 제 m 프로세서들에 출력되고 있음을 나타내는 웨이트 스테이트로 구성된 스테이트 머신으로 구현되는 것을 특징으로 하는 인터럽트 스프레드 장치.The method of claim 17, wherein the interrupt arbiter comprises: an idle state indicating that any one of the first through m-th interrupt request signals is not output to the first through m-th processors; And a wait state indicating that at least one of the signals is being output to the first through m-th processors. 제 11 항에 있어서, 상기 인터럽트 아비터는 기 설정된 우선순위에 따라 상기 제 1 내지 제 m 인터럽트 요청 신호들의 출력 순서를 변경하는 것을 특징으로 하는 인터럽트 스프레드 장치.12. The interrupt spread device of claim 11, wherein the interrupt arbiter changes the output order of the first through m-th interrupt request signals according to a predetermined priority. 제 11 항에 있어서, 상기 인터럽트 아비터는 상기 제 1 내지 제 m 프로세서들을 액티브 상태인 프로세서들로 구성된 제 1 그룹과 인액티브 상태인 프로세서들로 구성된 제 2 그룹으로 분류하고, 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 상기 제 1 그룹에 할당된 인터럽트 요청 신호들에 대해서는 상기 기 설정된 간격으로 조절하지 않고, 상기 제 1 내지 제 m 인터럽트 요청 신호들 중에서 상기 제 2 그룹에 할당된 인터럽트 요청 신호들에 대해서만 상기 기 설정된 간격으로 조절하는 것을 특징으로 하는 인터럽트 스프레드 장치.The apparatus of claim 11, wherein the interrupt arbiter classifies the first through m-th processors into a first group of processors in an active state and a second group of processors in an inactive state, The interrupt request signals allocated to the first group among the interrupt request signals are not adjusted at the predetermined intervals and the interrupt request signals allocated to the second group among the first to the m- Wherein the interrupt spread controller adjusts the interrupt interval by the predetermined interval. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020120008822A 2012-01-30 2012-01-30 Method of spreading a plurality of interrupts, interrupt spreader, and system on-chip having the same KR101841930B1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
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
US13/677,775 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
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 (1)

Application Number Priority Date Filing Date Title
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
KR20130087735A KR20130087735A (en) 2013-08-07
KR101841930B1 true KR101841930B1 (en) 2018-03-26

Family

ID=48871384

Family Applications (1)

Application Number Title Priority Date Filing Date
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

Country Status (4)

Country Link
US (1) US9298251B2 (en)
JP (1) JP6161301B2 (en)
KR (1) KR101841930B1 (en)
TW (1) TWI578235B (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
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
US9697149B2 (en) * 2013-04-11 2017-07-04 Said Bshara Low latency interrupt with existence of interrupt moderation
US9622069B2 (en) * 2014-05-21 2017-04-11 Qualcomm Incorporated Systems and methods for multiple network access by mobile computing devices
US9183896B1 (en) * 2014-06-30 2015-11-10 International Business Machines Corporation Deep sleep wakeup of multi-bank memory
KR20160061726A (en) * 2014-11-24 2016-06-01 삼성전자주식회사 Method for handling interrupts
KR102325453B1 (en) * 2014-12-04 2021-11-11 삼성전자주식회사 Method for 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
US10289188B2 (en) * 2016-06-21 2019-05-14 Intel Corporation Processor having concurrent core and fabric exit from a low power state
US20200112989A1 (en) * 2016-12-14 2020-04-09 Huawei Technologies Co., Ltd. Terminal Communication Method and Related Device
KR20180083688A (en) * 2017-01-13 2018-07-23 삼성전자주식회사 Application Processor and Integrated Circuit Including Interrupt Controller
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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5765003A (en) * 1993-09-22 1998-06-09 Advanced Micro Devices, Inc. Interrupt controller optimized for power management in a computer system or subsystem
US20030105798A1 (en) * 2001-12-03 2003-06-05 Ted Kim Methods and apparatus for distributing interrupts
JP2005100237A (en) 2003-09-26 2005-04-14 Kyocera Mita Corp Image processing apparatus, and control method and control program thereof

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940001878B1 (en) 1990-03-08 1994-03-10 가부시끼가이샤 히다찌세이사꾸쇼 Multiprocessor system and apparatus for interrupt control thereof
JP2625589B2 (en) * 1991-04-22 1997-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション Multiprocessor 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
TW550908B (en) * 2002-05-21 2003-09-01 Rdc Semiconductor Co Ltd System and method for flexibly interrupting data processing
US7149831B2 (en) * 2004-09-27 2006-12-12 Hewlett-Packard Development Company, L.P. Batch processing of interrupts
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
KR101501156B1 (en) * 2008-11-12 2015-03-11 삼성전자주식회사 Apparatus and method for controlling power consumption in multi modem system
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765003A (en) * 1993-09-22 1998-06-09 Advanced Micro Devices, Inc. Interrupt controller optimized for power management in a computer system or subsystem
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
US20030105798A1 (en) * 2001-12-03 2003-06-05 Ted Kim Methods and apparatus for distributing interrupts
JP2005100237A (en) 2003-09-26 2005-04-14 Kyocera Mita Corp Image processing apparatus, and control method and control program thereof

Also Published As

Publication number Publication date
JP6161301B2 (en) 2017-07-12
US9298251B2 (en) 2016-03-29
TWI578235B (en) 2017-04-11
KR20130087735A (en) 2013-08-07
TW201331845A (en) 2013-08-01
US20130198545A1 (en) 2013-08-01
JP2013156984A (en) 2013-08-15

Similar Documents

Publication Publication Date Title
KR101841930B1 (en) Method of spreading a plurality of interrupts, interrupt spreader, and system on-chip having the same
US9285860B2 (en) Apparatus and methods employing variable clock gating hysteresis for a communications port
KR102114453B1 (en) Mobile device and control method thereof
EP3189394B1 (en) Supply voltage node coupling using a switch
US20160062798A1 (en) System-on-chip including multi-core processor and thread scheduling method thereof
JP2013097790A (en) Power switch acceleration mechanism for high speed wakeup
US9864647B2 (en) System and method for dynamic bandwidth throttling based on danger signals monitored from one more elements utilizing shared resources
US8793421B2 (en) Queue arbitration using non-stalling request indication
EP3805937B1 (en) Memory device including interface circuit and method of operating the same
JP5414350B2 (en) Memory control circuit and control method thereof
CN103226494B (en) Spread the method, interrupt request singal distribution circuit and on-chip system of multiple interruptions
US10802742B2 (en) Memory access control
JP2008009817A (en) Semiconductor device and data transfer method
US20090216960A1 (en) Multi Port Memory Controller Queuing
US20160127259A1 (en) System and method for managing safe downtime of shared resources within a pcd
JP2014059866A (en) Techniques for continuously delivering data while conserving energy
US5548797A (en) Digital clock pulse positioning circuit for delaying a signal input by a fist time duration and a second time duration to provide a positioned clock signal
JP2023536056A (en) Memory calibration system and method
JP2012084123A (en) Memory control device and memory control method
US9292295B2 (en) Voltage droop reduction by delayed back-propagation of pipeline ready signal
US9543951B2 (en) Semiconductor apparatus
US10270434B2 (en) Power saving with dynamic pulse insertion
CN114706449B (en) Frequency control method, circuit and chip based on self-adaptive clock
KR20240033030A (en) In-band communication interface power management fencing

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant