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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
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
본 발명은 멀티 프로세서 시스템(또는, 멀티 코어 시스템)에 관한 것으로서, 더욱 상세하게는 복수의 인터럽트 소스들에서 생성되는 복수의 인터럽트들에 대한 인터럽트 스프레드 방법, 인터럽트 스프레드 장치 및 이를 구비하는 시스템 온-칩에 관한 것이다.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
일 실시예에 의하면, 상기 기 설정된 간격으로 조절하는 단계는 인접하는 제 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
제 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
인터럽트 아비터(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
한편, 인터럽트 아비터(140)는 제 1 내지 제 m 프로세서들을 액티브 상태인 프로세서들로 구성된 제 1 그룹과 인액티브 상태인 프로세서들로 구성된 제 2 그룹으로 분류하고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 중에서 제 1 그룹에 할당된 인터럽트 요청 신호들에 대해서는 기 설정된 간격으로 조절하지 않고, 제 1 내지 제 m 인터럽트 요청 신호들(nIRQ_I1, ..., nIRQ_Im) 중에서 제 2 그룹에 할당된 인터럽트 요청 신호들에 대해서만 기 설정된 간격으로 조절할 수 있다. 다만, 이에 대해서는 상술한 바 있으므로, 그에 대한 중복되는 설명은 생략하기로 한다. 이와 같이, 인터럽트 스프레드 장치(100)는 복수의 인터럽트 소스들이 짧은 시간 내에 복수의 인터럽트들을 연속적으로 출력할 때, 상기 인터럽트들에 기초하여 생성되는 복수의 인터럽트 요청 신호들 사이의 시간 간격을 기 설정된 간격 이상으로 조절함으로써, 인액티브 상태에 있는 복수의 프로세서들(또는, 멀티 코어 프로세서의 복수의 코어들)이 짧은 시간 내에 액티브 상태로 연속적으로 변경(즉, 급작스러운 웨이크-업)되는 것을 방지할 수 있다. 그 결과, 시스템 온-칩에서 복수의 프로세서들 내부에 급작스러운 웨이크-업에 의한 인러쉬 전류가 생성되는 것이 방지되어, 시스템 온-칩 및 이를 포함하는 전자 기기는 높은 동작 안정성을 확보할 수 있다. Meanwhile, the interrupt
도 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
구체적으로, 제 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,
도 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
구체적으로, 제 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
도 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
한편, 제 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
도 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-
제 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
인터럽트 스프레드 장치(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
구체적으로, 인터럽트 스프레드 장치(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
실시예에 따라, 인터럽트 스프레드 장치(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
도 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
구체적으로, 제 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
도 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
구체적으로, 제 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
도 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
구체적으로, 제 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
도 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
제 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
한편, 멀티 코어 프로세서(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
이와 같이, 멀티 코어 시스템(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
본 발명은 복수의 프로세서들(또는, 멀티 코어 프로세서)을 구비하는 멀티 프로세서 시스템에 적용될 수 있다. 예를 들어, 본 발명은 복수의 프로세서들(또는, 멀티 코어 프로세서)을 구비하는 컴퓨터, 노트북, 휴대폰, 스마트폰, 스마트패드, 보안 시스템 등에 적용될 수 있다.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.
인접하는 제 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.
기 설정된 우선순위에 따라 상기 인터럽트 요청 신호들의 출력 순서를 변경하는 단계를 더 포함하는 것을 특징으로 하는 인터럽트 스프레드 방법.5. The method of claim 4, wherein adjusting
Further comprising changing an output order of the interrupt request signals according to a predetermined priority.
상기 제 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.
기 설정된 우선순위에 따라 상기 대상 인터럽트 요청 신호들의 출력 순서를 변경하는 단계를 더 포함하는 것을 특징으로 하는 인터럽트 스프레드 방법.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.
상기 제 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 인터럽트 요청 신호들 중에서 인접하는 인터럽트 요청 신호들 사이의 시간 간격이 상기 기 설정된 간격보다 작은 경우, 상기 시간 간격을 상기 기 설정된 간격으로 조절하는 인터럽트 아비터를 포함하고,
상기 제 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.
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)
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)
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)
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 |
-
2012
- 2012-01-30 KR KR1020120008822A patent/KR101841930B1/en active IP Right Grant
- 2012-11-15 US US13/677,775 patent/US9298251B2/en active Active
-
2013
- 2013-01-21 TW TW102102239A patent/TWI578235B/en active
- 2013-01-22 JP JP2013009461A patent/JP6161301B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |