KR20060087409A - 프로세서 및 정보처리 방법 - Google Patents
프로세서 및 정보처리 방법 Download PDFInfo
- Publication number
- KR20060087409A KR20060087409A KR1020060002758A KR20060002758A KR20060087409A KR 20060087409 A KR20060087409 A KR 20060087409A KR 1020060002758 A KR1020060002758 A KR 1020060002758A KR 20060002758 A KR20060002758 A KR 20060002758A KR 20060087409 A KR20060087409 A KR 20060087409A
- Authority
- KR
- South Korea
- Prior art keywords
- processing
- processor
- unit
- high priority
- interrupt
- 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
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02J—CIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
- H02J50/00—Circuit arrangements or systems for wireless supply or distribution of electric power
- H02J50/10—Circuit arrangements or systems for wireless supply or distribution of electric power using inductive coupling
-
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Power Engineering (AREA)
- Telephone Function (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Exchange Systems With Centralized Control (AREA)
- Mobile Radio Communication Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
멀티프로세서에서, 우선도가 높은 처리를 효율적이면서 높은 응답성으로 처리하는 것.
휴대전화(1)에서는, 인터럽트 처리를 실행하는 단위 프로세서가 단위 프로세서(P0)에 고정적으로 설정된다. 그 때문에, 인터럽트 처리가 발생한 경우에, 즉시 단위 프로세서(PO)에 의해 인터럽트 처리의 실행을 개시할 수 있다. 따라서, 태스크 스위치를 행하지 않고, 신속히 인터럽트 처리의 실행을 개시할 수 있으므로, 인터럽트 처리를 효율적이면서 높은 응답성으로 처리할 수 있다.
Description
도 1은 본 발명에 관한 휴대전화(1)의 기능 구성을 나타내는 블록도이다.
도 2는 CPU(10)의 내부 구성을 나타내는 블록도이다.
도 3은 휴대전화(1)의 전원 투입시에서의 동작을 나타내는 도면이다.
도 4는 백그라운드 처리 모드에서의 동작을 나타내는 플로차트이다.
도 5는 본 발명과 종래의 기술에서의 인터럽트 처리시의 동작을 비교하여 설명하는 도면이다.
도 6은 본 발명의 적용 대상이 되는 멀티프로세서의 구성예를 나타내는 도면이다.
〈도면의 주요부분에 대한 부호의 설명〉
1 : 휴대전화 10 : CPU
11 : 인터럽트 제어부 12 : 메모리 제어부
20 : 플래시 ROM 30 : 메모리
40 : 버퍼 50 : 무선부
60 : IrDA부 70 : 오디오부
80 : 타이머 90 : USB 인터페이스부
100 : 키 조작부 110 : LCD
120 : 카메라부 P0∼P3 : 단위 프로세서
101 : 페치부 102 : 디코드부
103 : ALU 104 : 레지스터
105 : 프로그램 제어부
본 발명은 복수의 태스크 혹은 스레드를 병렬적으로 처리하는 프로세서 및 그 정보처리 방법에 관한 것이다.
근래, 내장 기기 등에서, 복수의 태스크 혹은 스레드를 병렬적으로 처리 가능한 멀티태스크 프로세서 혹은 멀티스레드 프로세서라 불리는 프로세서(이하, 이들을 총칭하여 「멀티프로세서」라 한다.)가 이용된다.
종래의 휴대기기에서는 싱글 프로세서에 의한 처리가 행해지고 있던바, 휴대기기의 고기능화에 따라 처리가 복잡화되어, 싱글 프로세서에 의한 처리가 곤란해지고 있다.
즉, 싱글 프로세서에 의해 고기능을 실현하고자 한 경우, 높은 클록 주파수로 동작시킬 필요가 있고, 그에 따라 소비전력도 증대된다. 또한, 예를 들면, 휴대전화에서 동화상의 재생중에 전화의 착신이 있었던 경우의 처리 등, 실시간(real time)으로 응답할 필요가 있는 경우의 대응이 곤란해진다.
한편, 멀티프로세서를 이용함으로써, 장치를 저클록화하는 것이 가능해지고, 그에 의해 저소비 전력화를 실현할 수 있다. 또한, 복수의 태스크 등을 병렬로 처리할 수 있기 때문에, 실시간 응답성의 관점으로부터도 유효한 것이 된다.
또, 멀티태스크를 병렬적으로 처리하는 장치에서, 실시간 응답을 실현하기 위한 기술이 특허문헌 1에 기재되어 있다.
(특허문헌 1) 일본국 특허 공개공보 평 10-228385호
그러나, 특허문헌 1에 기재된 기술을 포함하여 종래의 기술에서는, 멀티프로세서를 적절히 제어하는 오퍼레이팅 시스템이 구축되어 있지 않고, 특히, 1칩 상에 복수의 프로세서 코어를 탑재하여 하나의 멀티프로세서로서 기능시키는, 이른바 밀(密)결합형 멀티프로세서에 적절히 대응하는 오퍼레이팅 시스템이 구축되어 있지 않은 것이 현상이다.
그 때문에, 통상의 처리를 실행하고 있을 때에 인터럽트 처리 등, 우선도가 높고 실시간으로 응답할 필요가 있는 처리(이하, 「고우선도 처리」라 한다.)가 발생한 경우, 멀티프로세서를 구성하는 각 프로세서가 빈 상태가 아니면, 고우선도 처리에 대한 응답성이 저하되는 사태가 생길 수 있다. 이러한 경우, 실시간 응답을 실현하는 것이 곤란해지는 문제가 있다.
또한, 발생한 고우선도 처리를 실행하기 위해, 태스크 스위치가 빈번히 발생할 가능성이 있고, 오버헤드가 증대하기 때문에, 처리 효율의 저하를 초래하게 된다.
본 발명의 과제는, 멀티프로세서에서 우선도가 높은 처리를 효율적이면서 높 은 응답성으로 처리하는 것이다.
이상의 과제를 해결하기 위해, 본 발명은, 태스크 혹은 스레드를 처리하는 프로세서부(예를 들면, 도 2의 단위 프로세서(P0∼P3))를 복수 구비하는 프로세서로, 우선도가 높은 소정 처리(예를 들면, 인터럽트 처리)를 전용으로 처리하는 전용 프로세서부(예를 들면, 도 2의 단위 프로세서(P0))와, 상기 우선도가 높은 소정 처리 이외의 처리(예를 들면, 애플리케이션의 처리)를 행하는 범용 프로세서부(예를 들면, 도 2의 단위 프로세서(P1∼P3))와, 상기 우선도가 높은 소정 처리를 상기 전용 프로세서부에 처리시키는 고우선도 처리 제어부(예를 들면, 도 2의 인터럽트 제어부(11))를 포함하는 것을 특징으로 한다.
이러한 구성에 의해, 인터럽트 처리 등의 우선도가 높은 처리를 실행할 필요가 생긴 경우에, 즉시 전용 프로세서부에 의해 처리의 실행을 개시할 수 있다.
따라서, 태스크 등의 스위치를 행하지 않고, 신속히 우선도가 높은 처리의 실행을 개시할 수 있으므로, 우선도가 높은 처리를 효율적이면서 높은 응답성으로 처리할 수 있다.
또한, 상기 전용 프로세서부는, 상기 우선도가 높은 소정 처리가 발생한 경우에 처리중인 프로그램의 파기가 가능한 처리(예를 들면, 실시간성이 요구되지 않는 처리)를 상기 우선도가 높은 소정 처리의 백그라운드 처리로서 실행하는 것을 특징으로 한다.
이러한 구성에 의해, 전용 프로세서부의 가동률을 향상시킬 수 있기 때문에, 더 효율적인 처리를 행하는 것이 가능해진다.
또한, 상기 백그라운드 처리를 행하는 모드와, 그 백그라운드 처리를 행하지 않는 모드를 절환 가능한 것을 특징으로 한다.
이러한 구성에 의해, 프로세서의 처리부하 등에 따라, 우선도가 낮은 처리 등을 백그라운드 처리로 하는 경우와, 통상의 처리로 하는 경우를 적절히 절환할 수 있어, 보다 효율적으로 처리를 행하는 것이 가능해진다.
또한, 상기 우선도가 높은 소정 처리는 인터럽트 처리인 것을 특징으로 한다.
이러한 구성에 의해, 빈번히 인터럽트 처리가 발생하는 경우에도, 인터럽트 처리를 효율적이면서 높은 응답성으로 처리할 수 있다.
또한, 본 발명은 태스크 혹은 스레드를 처리하는 프로세서부를 복수 구비하는 프로세서에서의 정보처리 방법으로, 우선도가 높은 소정 처리를 소정 프로세서부에서 전용으로 처리시키고, 그 우선도가 높은 소정 처리 이외의 처리를 상기 소정 프로세서부 이외의 프로세서부에서 행하게 하는 것을 특징으로 한다.
또한, 상기 소정 프로세서부에서, 상기 우선도가 높은 소정 처리가 발생한 경우에 처리중인 프로그램의 파기(破棄)가 가능한 처리를, 상기 우선도가 높은 소정 처리의 백그라운드 처리로서 실행시키는 것을 특징으로 한다.
또한, 상기 백그라운드 처리를 행하는 모드와, 그 백그라운드 처리를 행하지 않는 모드를 절환 가능하게 한 것을 특징으로 한다.
또한, 상기 우선도가 높은 소정 처리는, 인터럽트 처리인 것을 특징으로 한다.
이와 같이, 본 발명에 의하면, 멀티프로세서에서 우선도가 높은 처리를 효율적이면서 높은 응답성으로 처리하는 것이 가능해진다.
이하, 도면을 참조하여 본 발명에 관한 프로세서의 실시형태를 설명한다.
본 발명에 관한 프로세서는 태스크 혹은 스레드 등, 프로그램을 그 실행 단위로 병렬적으로 처리하는 것이며, 본 발명에 관한 프로세서 내에 태스크 등을 실행하는 프로세서(이하, 「단위 프로세서」라 한다.)가 실질적으로 복수 구비된 하드웨어 구성을 갖는다.
그리고, 복수의 단위 프로세서 중, 고우선도 처리(인터럽트 처리 등)를 실행하는 단위 프로세서를 고정적으로 정함으로써, 고우선도 처리에 대해 높은 응답성을 확보한다.
또한, 고우선도 처리를 실행하는 단위 프로세서에서, 고우선도 처리가 실행되고 있지 않은 경우에는, 그 실행중에 고우선도 처리가 발생하더라도 처리중인 프로그램(즉, 그 프로그램에 의해 처리중인 데이터)을 파기 가능한, 우선도가 낮은 처리를 백그라운드 처리한다.
이에 의해, 고우선도 처리를 실행하는 단위 프로세서의 가동률이 저하되는 것이 방지된다.
이와 같이, 본 발명에 관한 프로세서는, 우선도가 높은 처리를 효율적이면서 높은 응답성으로 처리하는 것을 가능하게 한다.
우선, 구성을 설명한다.
여기서는, 본 발명에 관한 프로세서를 휴대전화에 내장한 경우를 예로 들어, 고우선도 처리로서 인터럽트 처리를 상정한 경우에 관해 설명한다. 또, 이하의 설명에서, 스레드 등, 프로그램의 실행 단위를 총칭하여 「태스크」라 한다.
도 1은 본 발명에 관한 휴대전화(1)의 기능 구성을 나타내는 블록도이다.
도 1에서, 휴대전화(1)는 CPU(Central Processing Unit)(1O)와, 플래시 ROM(20)과, 메모리(30)와, 버퍼(40)와, 무선부(50)와, IrDA(Infrared Data Association)부(60)와, 오디오(Audio)부(70)와, 타이머(Timer)(80)와, USB(Universal Serial Bus) 인터페이스부(90)와, 키(KEY) 조작부(100)와, LCD(Liquid Crystal Display)(110)와, 카메라(Camera)부(120)를 포함하여 구성되고, CPU(10), 플래시 ROM(20), 메모리(30) 및 버퍼(40)는 버스에 의해 접속된다. 또한, 무선부(50), IrDA부(60), 오디오부(70), 타이머(80), USB 인터페이스부(90), 키 조작부(100), LCD(110) 및 카메라부(120)는 CPU(10)와 직접 접속된다.
CPU(10)는, 복수의 태스크를 병렬적으로 처리하면서 휴대전화(1) 전체를 제어하는 것으로, 키 조작부(100)로부터 입력되는 각종의 지시 신호에 따라 플래시 ROM(30)에 기억된 오퍼레이팅 시스템 프로그램(OS)이나 각종 애플리케이션 프로그램을 판독하여 실행하거나, 무선부(50), 오디오부(70) 혹은 카메라부(120) 등의 주변 칩으로부터 입력되는 인터럽트 신호에 따라 인터럽트 핸들러를 실행하거나 한다.
예를 들면, CPU(10)는 0S에 의해 생성된 태스크와, 애플리케이션에 의해 생성된 태스크를 병행하여 처리하고, 또, 주변 칩으로부터 인터럽트 신호가 입력된 경우, 인터럽트 핸들러를 실행함으로써 인터럽트 신호에 대응하는 애플리케이션을 기동한다. 또, 애플리케이션에 의한 처리는 0S의 태스크 스케쥴러에 의해 관리되는 태스크로서 실행되기 때문에 OS의 서비스 콜을 호출할 수 있으며, 한편, 인터럽트 처리는 태스크 스케쥴러에 의해 관리되지 않는 처리(비태스크 처리)이기 때문에 OS의 서비스 콜을 호출할 수는 없다.
또한, CPU(10)는 각종 처리 결과를 플래시 ROM(20) 혹은 메모리(30)에 저장한다.
여기서, CPU(10)의 내부 구성에 대해 설명한다.
도 2는 CPU(10)의 내부 구성을 나타내는 블록도이다.
도 2에서, CPU(10)는 복수의 단위 프로세서(P0∼P3)와, 인터럽트 제어부(11)와, 메모리 제어부(l2)를 포함하여 구성된다.
단위 프로세서(P0∼P3)는 각각이 병렬하여 태스크를 처리 가능한 프로세서이고, 단위 프로세서(P0∼P3) 중, 본 실시형태에서는 단위 프로세서(P0)가 인터럽트 처리를 실행하는 전용의 프로세서로 되어 있다. 그 때문에, 주변 칩에서 인터럽트 신호가 발생한 경우, 인터럽트 신호는 단위 프로세서(P0)에 입력된다.
또, 단위 프로세서(P0∼P3)의 내부 구성으로서는 동일한 것이 되기 때문에, 대표로 단위 프로세서(P0)의 내부 구성에 대해 설명한다.
단위 프로세서(PO)는, 페치부(101)와, 디코드부(102)와, ALU(Arithmetic and Logical Unit)(103)과, 레지스터(104)와, 프로그램 제어부(105)를 더 포함하여 구성된다.
페치부(101)는, 후술하는 프로그램 제어부(105)의 프로그램 카운터가 나타내는 메모리 어드레스로부터 명령 코드를 판독하고, 디코드부(102)에 출력한다.
디코드부(102)는, 페치부(101)에 의해 입력된 명령 코드를 디코드하고, 디코드 결과(명령 내용 및 소스 레지스터, 데스티네이션 레지스터(destination register)의 어드레스 등)를 ALU(103)에 출력한다.
ALU(103)는, 디코드부(102)에 의해 입력된 디코드 결과에 따라 소정의 연산을 행하고, 연산 결과를 레지스터(104)에 기입하거나, 분기명령 등의 연산 결과인 분기(branch)처의 어드레스를 프로그램 제어부(105)에 출력하거나 한다.
레지스터(104)는, 로드 명령에 의해 메모리(30)로부터 판독된 데이터나, ALU(103)의 연산 결과인 데이터를 기억하는 레지스터군이다.
프로그램 제어부(105)는 단위 프로세서(P0) 전체를 제어하는 것으로, 단위 프로세서(P0)의 스테이터스(예를 들면, 인터럽트의 가부(可否) 상태, 실행되고 있는 처리가 백그라운드 처리인지의 여부를 나타내는 상태, 단위 프로세서(PO)에서의 오버플로의 발생 상태 등)를 기억하는 스테이터스 레지스터(PSR)와, 단위 프로세서(P0)가 다음에 실행해야 할 명령이 저장된 메모리 어드레스를 기억하는 프로그램 카운터(PC)를 포함하여 구성된다. 그리고, 프로그램 제어부(105)는 단위 프로세서(P0)가 인터럽트 처리를 실행하는 동안, 스테이터스 레지스터의 값을 인터럽트 처리의 금지를 나타내는 값으로 변경하거나, 분기 명령이 실행된 경우에, 프로그램 카운터의 값을 분기처의 어드레스로 변경하거나 한다.
인터럽트 제어부(11)는, 무선부(50) 등의 주변 칩으로부터 인터럽트 신호가 입력된 경우에, 인터럽트 신호를 조정한 다음, 소정의 인터럽트 신호를 단위 프로세서(PO)에 출력한다.
메모리 제어부(12)는 CPU(10)와 메모리(30) 사이에 구비되고, CPU(10)로부터 메모리(30)에 대한 데이터의 판독 및 기입이 행해지는 경우에, 메모리(30)를 제어하여 데이터의 입출력을 행한다.
또, 본 실시형태에서는 상술과 같이, 인터럽트 처리가 단위 프로세서(P0)에 의해 처리되고, 다른 단위 프로세서는 주로 애플리케이션에 의해 생성된 태스크를 처리한다.
구체적으로는, 단위 프로세서(P0)는 휴대전화(1)의 전원 투입시에서의 BOOT처리, 0S의 초기화 처리, 서비스 콜에 대응하는 OS의 처리, 인터럽트 핸들러에 의한 처리, 인터럽트 처리에 대한 백그라운드 처리(예를 들면, 플래시 ROM(20)으로의 기입처리 혹은 실시간성이 요구되지 않는 처리(메모리의 불필요 정보정리(garbage collection), 배터리의 잔량 표시, 하드웨어의 모니터 처리 등))를 실행한다. 이들 중, BOOT 처리 및 OS의 초기화 처리는 기동시에만 실행되고, 인터럽트 처리와 동시에 발생하지 않으며, 백그라운드 처리는 인터럽트 처리가 발생한 경우에는 처리중인 데이터를 파기하는 것이 허용되는 정도의 우선도가 낮은 처리이다. 또한, 서비스 콜에 대응하는 OS의 처리는, 백그라운드 처리에서 적절히 호출되는 서비스 콜에 대응하여 실행되는 것이다. 또, 상술과 같이, 인터럽트 처리(비태스크 처리)에서는, 0S의 서비스 콜을 호출할 수는 없다.
또한, 단위 프로세서(P1∼P3)는, 애플리케이션에 의해 생성된 태스크를 0S의 태스크 스케쥴러에 의해 결정된 순서로 실행하고, 그 처리에서 OS의 서비스 콜을 적절히 호출한다.
도 1로 되돌아가, 플래시 ROM(20)은 휴대전화(1)에서 실행되는 오퍼레이팅 시스템 프로그램 및 각종 애플리케이션 프로그램을 기억한다.
메모리(30)는 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory) 혹은 SDRAM(Synchronous DRAM)의 반도체 메모리에 의해 구성되고, CPU(10)가 처리를 실행할 때에 워크 영역(work area)을 형성함과 동시에 그 처리결과를 기억한다.
버퍼(40)는 외부로부터 휴대전화(1)에 입력된 데이터 혹은 휴대전화(1)에서 발생된 데이터를 일시적으로 유지하는 버퍼이다.
무선부(50)는 휴대전화(1)와 휴대전화 시스템의 기지국 사이에서의 무선 통신을 행하는 것이다. 예를 들면, 무선부(50)는 기지국으로부터 휴대전화(1)에 대한 착신을 나타내는 신호를 수신한 경우, CPU(10)에 대해 인터럽트 신호를 출력하고, 착신 신호의 수신을 통지한다. 또한, 무선부(50)는 CPU(10)로부터 발신을 지시하는 신호가 입력된 경우, 기지국에 대해 발신 요구를 나타내는 신호를 송신한다.
IrDA부(60)는 IrDA에 근거하는 통신을 행하는 인터페이스이고, 외부로부터 IrDA에 근거하는 무선 신호를 수신한 경우, CPU(10)에 대해 인터럽트 신호를 출력하고, IrDA 신호의 수신을 통지한다.
오디오부(70)는 휴대전화(1)에서 입출력되는 음성신호를 처리하는 것이고, 통화에서의 마이크 및 스피커를 이용한 음성의 입출력, 혹은 음악 등의 재생의 처 리를 행한다.
타이머(80)는 휴대전화(1)의 클록 신호를 토대로 시간을 계측하고, 예를 들면 1ms마다 등, 소정 시간마다 CPU(10)에 대해 인터럽트 신호를 출력한다.
USB 인터페이스부(90)는 USB에 의한 통신을 행하기 위한 인터페이스이고, USB 케이블이 접속된 경우나 USB 케이블로부터 신호를 수신한 경우 등에, CPU(10)에 대해 인터럽트 신호를 출력한다.
키 조작부(100)는, 휴대전화(1)에 대한 지시 입력을 행하기 위한 각종 키를 구비하고, 이들 키가 눌러진 경우에, CPU(l0)에 대한 인터럽트 신호를 출력한다.
LCD(110)는 CPU(10)에 의해 입력된 문자 혹은 화상 등의 드로잉(描畵) 명령에 따라, 소정 화면을 표시하는 표시장치이다.
카메라부(120)는 CCD (Charge Coupled Devices) 혹은 CMOS(Complementary Metal Oxide Semiconductor) 센서 등의 촬상 소자를 구비하고, 화상을 촬영한 경우에, CPU(10)에 대해 인터럽트 신호를 출력한다.
다음으로, 동작을 설명한다.
도 3은 휴대전화(1)의 전원 투입시에서의 동작을 나타내는 도면이다.
도 3에서, 휴대전화(1)의 전원이 투입되면, 단위 프로세서(P0)에서 BOOT 처리(각 하드웨어의 초기화, 프로그램의 로드 및 기동, OS의 초기화 처리)가 실행된다(단계 S1). 또, 도면 중의 실선 부분은 각 단위 프로세서가 처리의 실행 상태인 것을 나타내고, 점선 부분은 처리가 행해지고 있지 않은 것을 나타낸다.
그리고, 단위 프로세서(P0)는 단위 프로세서(P1∼P3)를 기동하고, 실행이 지 시되고 있는 애플리케이션(예를 들면, 동화상의 재생처리 등)의 태스크를 실행시킨다(단계 S2).
이 다음, 단위 프로세서(P0)는 유휴(idle) 상태가 되고, 단위 프로세서(P1∼P3)는 애플리케이션의 태스크를 실행하는 상태가 된다.
여기서, 휴대전화(1)에서 인터럽트(예를 들면, 전화의 착신신호의 수신 등)가 발생했다고 한다(단계 S3).
그러면, CPU(10)의 인터럽트 제어부(11)가 인터럽트 신호를 단위 프로세서(PO)에 출력한다(단계 S4). 또, 이때 복수의 주변 칩으로부터 인터럽트 신호가 입력되는 경우, 인터럽트 제어부(11)가 그들을 조정한 다음, 가장 우선도가 높은 인터럽트 신호가 단위 프로세서(PO)에 출력된다.
인터럽트 신호를 수신한 단위 프로세서(PO)는, 즉시 인터럽트 핸들러를 실행하고, 인터럽트 처리를 개시한다(단계 S5).
이에 의해, 태스크 스위치를 행하지 않고, 인터럽트 처리를 효율적이면서 높은 응답성으로 처리할 수 있다.
또한, 인터럽트 처리의 발생시에 백그라운드 처리가 실행되고 있던 경우, 단위 프로세서(P0)는 일단 HALT 상태로 이행하고, 이후, 인터럽트 처리만을 실행한다.
이때, 백그라운드 처리에 관한 처리중인 데이터는 파기되게 된다.
다음으로, 백그라운드 처리에 관한 동작에 관해 설명한다.
백그라운드 처리는, CPU(10)가 백그라운드 처리 모드로 이행함으로써 실행 가능해지고, 백그라운드 처리 모드에 관한 서비스 콜로서 백그라운드 처리를 개시하는 "bak_sta()", 백그라운드 처리를 정지하는 "bak_stp()", 백그라운드 처리에 대해 커맨드를 통지하는 "bak_cmd()"가 준비된다.
백그라운드 처리는, 단위 프로세서(P1∼P3)가 서비스 콜 "bak_sta()"을 호출함으로써 개시된다.
또, "bak_sta()"의 호출 후, 단위 프로세서(PO)에서의 OS의 타이머 인터럽트의 기동 타이밍(1ms마다 등)으로 백그라운드 처리 모드의 개시 지시가 인식되고, 그 후, 최초로 발생한 인터럽트 처리를 트리거로 하여, 실제로 백그라운드 처리 모드로 이행한다.
도 4는 백그라운드 처리 모드에서의 동작을 나타내는 플로차트이다.
백그라운드 처리 모드로 이행하면, 단위 프로세서(P0)는 폴링에 의해 "bak_cmd()"에서 통지된 커맨드를 취득함으로써, 백그라운드 처리해야 할 이벤트의 감시를 행하고(단계 S101), 백그라운드 처리해야 할 이벤트의 유무를 판정한다(단계 S102).
단계 S102에서, 백그라운드 처리해야 할 이벤트가 있다고 판정한 경우, 단위 프로세서(PO)는 "bak_cmd()"에 의해 통지된 커맨드를 취득한다(단계 S103). 이에 의해, 백그라운드 처리가 실행된다.
그리고, 단위 프로세서(PO)는 "bak_sta()"의 호출처인 포인터로 다시 이행하고(단계 S104), 단계 S101로 되돌아간다.
또한, 단계 S102에서, 백그라운드 처리해야 할 이벤트가 없다고 판정한 경 우, 단위 프로세서(P0)는 단계 S104의 처리로 이행한다.
그리고, "bak_sta()"를 호출한 단위 프로세서(P1∼P3)로부터 "bak_stp()"가 호출되면, 단위 프로세서(P0)는 일단 HALT 상태로 이행한 후, 백그라운드 처리를 종료한다. 그 후, 단위 프로세서(P0)는 백그라운드 처리를 행하지 않고, 인터럽트 처리만을 실행하는 상태가 된다.
이와 같이, 프로그램에서 "bak_sta()" 및 "bak_stp()"를 호출함으로써, 백그라운드 처리를 행하는 모드와 행하지 않는 모드로 적절히 절환하는 것이 가능하다.
이상과 같이, 본 실시형태에 관한 휴대전화(1)에서는, CPU(10)에서 인터럽트 처리를 실행하는 단위 프로세서가 단위 프로세서(P0)에 고정적으로 설정된다.
그 때문에, 인터럽트 처리가 발생한 경우에, 즉시 단위 프로세서(PO)에 의해 인터럽트 처리의 실행을 개시할 수 있다.
따라서, 태스크 스위치를 행하지 않고, 신속히 인터럽트 처리의 실행을 개시할 수 있으므로, 인터럽트 처리를 효율적이면서 높은 응답성으로 처리할 수 있다.
예를 들면, 도 5(a)에 도시하는 바와 같이, 종래의 기술에서는 태스크의 처리 중에 인터럽트가 발생한 경우, 태스크 처리의 컨텍스트를 퇴피한 후에 인터럽트 처리가 실행되고, 인터럽트 처리의 종료 후, 태스크 처리의 컨텍스트를 복귀시켜 태스크 처리를 계속하는 순서가 된다.
한편, 본 발명에서는 도 5(b)에 도시하는 바와 같이, 인터럽트 처리의 발생 후, 즉시 인터럽트 처리의 실행으로 이행할 수 있어, 컨텍스트의 퇴피·복귀 등을 행할 필요가 없고, 효율적이면서 높은 응답성으로 처리할 수 있게 된다.
또, 본 발명은 멀티스레드 프로세서 혹은 멀티태스크 프로세서라 불리는 각종 실장(實裝) 형태의 프로세서에 적용가능한데, 예를 들면, 1칩 상에 복수의 프로세서 코어가 실장되고, 프로세서의 구성 요소의 적어도 일부를 이들 복수의 프로세서 코어가 공용하는 형태의 멀티프로세서(이른바 밀결합형 멀티태스크 프로세서)에서, 특히 유효해진다.
도 6은 본 발명의 적용 대상이 되는 멀티프로세서의 구성예를 나타내는 도면이다.
도 6에 나타내는 멀티프로세서에는, 메모리 제어부 및 ALU를 복수의 프로세서 코어가 공용하는 형태이고, 각각의 프로세서 코어에 프로그램 카운터 및 스테이터스 레지스터 등의 제어용 레지스터가 구비됨과 동시에, 멀티프로세서 전체를 제어하기 위한 프로그램 제어부 및 제어용 레지스터도 별도 구비된다. 또, 도 6에 도시하는 바와 같이, 각 프로세서 코어에서 공용하는 컨텍스트 캐쉬 등을 구비해도 된다.
이러한 구성의 멀티프로세서의 경우, 각 프로세서 코어가 본 실시형태에서의 단위 프로세서의 기능을 실현하는 것이 된다.
이러한 구성에 의하여, 태스크 스위치를 행하지 않고, 신속히 인터럽트 처리의 실행을 개시할 수 있으므로, 인터럽트 처리를 효율적이면서 높은 응답성으로 처리할 수 있다.
Claims (8)
- 태스크 혹은 스레드를 처리하는 프로세서부를 복수 구비하는 프로세서로서,우선도가 높은 소정 처리를 전용으로 처리하는 전용 프로세서부와,상기 우선도가 높은 소정 처리 이외의 처리를 행하는 범용 프로세서부와,상기 우선도가 높은 소정 처리를 상기 전용 프로세서부에서 처리시키는 고우선도 처리 제어부를 포함하는 것을 특징으로 하는 프로세서.
- 제 1항에 있어서,상기 전용 프로세서부는, 상기 우선도가 높은 소정 처리가 발생한 경우에 처리중인 프로그램의 파기가 가능한 처리를 상기 우선도가 높은 소정 처리의 백그라운드 처리로서 실행하는 것을 특징으로 하는 프로세서.
- 제 2항에 있어서,상기 백그라운드 처리를 행하는 모드와, 그 백그라운드 처리를 행하지 않는 모드를 절환 가능한 것을 특징으로 하는 프로세서.
- 제 1항에 있어서,상기 우선도가 높은 소정 처리는, 인터럽트 처리인 것을 특징으로 하는 프로세서.
- 태스크 혹은 스레드를 처리하는 프로세서부를 복수 구비하는 프로세서에서의 정보처리 방법으로서,우선도가 높은 소정 처리를 소정 프로세서부에서 전용으로 처리시키고, 그 우선도가 높은 소정 처리 이외의 처리를 상기 소정 프로세서부 이외의 프로세서부에서 행하게 하는 것을 특징으로 하는 정보처리 방법.
- 제 5항에 있어서,상기 소정 프로세서부에서, 상기 우선도가 높은 소정 처리가 발생한 경우에 처리중인 프로그램의 파기가 가능한 처리를 상기 우선도가 높은 소정 처리의 백그라운드 처리로서 실행시키는 것을 특징으로 하는 정보처리 방법.
- 제 6항에 있어서,상기 백그라운드 처리를 행하는 모드와, 그 백그라운드 처리를 행하지 않는 모드를 절환 가능하게 한 것을 특징으로 하는 정보처리 방법.
- 제 5항에 있어서,상기 우선도가 높은 소정 처리는 인터럽트 처리인 것을 특징으로 하는 정보처리방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2005-00020830 | 2005-01-28 | ||
JP2005020830A JP4148223B2 (ja) | 2005-01-28 | 2005-01-28 | プロセッサおよび情報処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060087409A true KR20060087409A (ko) | 2006-08-02 |
KR100746796B1 KR100746796B1 (ko) | 2007-08-06 |
Family
ID=36603026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060002758A KR100746796B1 (ko) | 2005-01-28 | 2006-01-10 | 프로세서 및 정보처리 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060174246A1 (ko) |
EP (1) | EP1686474A3 (ko) |
JP (1) | JP4148223B2 (ko) |
KR (1) | KR100746796B1 (ko) |
CN (1) | CN100380329C (ko) |
TW (1) | TWI297852B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7877535B2 (en) | 2008-11-04 | 2011-01-25 | Samsung Electronics Co., Ltd. | Processor and interrupt handling method |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005084800A (ja) * | 2003-09-05 | 2005-03-31 | Fanuc Ltd | プログラマブルコントローラ |
US20070204268A1 (en) * | 2006-02-27 | 2007-08-30 | Red. Hat, Inc. | Methods and systems for scheduling processes in a multi-core processor environment |
JP5243711B2 (ja) | 2006-11-10 | 2013-07-24 | セイコーエプソン株式会社 | プロセッサ |
JP2008146148A (ja) * | 2006-12-06 | 2008-06-26 | Mitsubishi Electric Corp | 計算機システム |
JP2008192128A (ja) * | 2007-01-11 | 2008-08-21 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
US8645668B2 (en) | 2007-01-11 | 2014-02-04 | Sony Corporation | Information processing apparatus, information processing method and computer program |
JP2008242948A (ja) * | 2007-03-28 | 2008-10-09 | Toshiba Corp | 情報処理装置および同装置の動作制御方法 |
JP5167844B2 (ja) * | 2008-02-05 | 2013-03-21 | 日本電気株式会社 | プロセッサ、電子機器、割込み制御方法及び割込み制御プログラム |
WO2009110084A1 (ja) * | 2008-03-06 | 2009-09-11 | 富士通株式会社 | プロセス制御方法 |
JP5673672B2 (ja) | 2010-03-30 | 2015-02-18 | 富士通株式会社 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
JP5792722B2 (ja) * | 2010-06-25 | 2015-10-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 計算機システム |
US9063775B2 (en) | 2011-09-01 | 2015-06-23 | Microsoft Technology Licensing, Llc | Event aggregation for background work execution |
US9032413B2 (en) * | 2011-09-01 | 2015-05-12 | Microsoft Technology Licensing, Llc | Decoupling background work and foreground work |
US20140223061A1 (en) * | 2011-12-19 | 2014-08-07 | Keng Lai Yap | System and deterministic method for servicing msi interrupts using direct cache access |
KR101867960B1 (ko) * | 2012-01-05 | 2018-06-18 | 삼성전자주식회사 | 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법 |
US9164803B2 (en) | 2012-01-20 | 2015-10-20 | Microsoft Technology Licensing, Llc | Background task resource control |
US9489236B2 (en) | 2012-10-31 | 2016-11-08 | Microsoft Technology Licensing, Llc | Application prioritization |
US9817673B2 (en) * | 2015-03-03 | 2017-11-14 | Intel Corporation | Technologies for fast low-power startup of a computing device |
JP2016178570A (ja) * | 2015-03-20 | 2016-10-06 | 株式会社リコー | ワークフロー実行処理装置、ワークフロー実行システム、ワークフロー実行システムの制御方法、及びプログラム |
US11068274B2 (en) * | 2017-12-15 | 2021-07-20 | International Business Machines Corporation | Prioritized instructions in an instruction completion table of a simultaneous multithreading processor |
GB2579617B (en) * | 2018-12-06 | 2021-01-27 | Advanced Risc Mach Ltd | An apparatus and method for handling exception causing events |
KR20210003370A (ko) | 2019-07-02 | 2021-01-12 | 삼성전자주식회사 | 하드웨어 로직을 이용하여 통신 오버헤드를 감소시킨 스토리지 장치 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4498136A (en) * | 1982-12-15 | 1985-02-05 | Ibm Corporation | Interrupt processor |
US5109329A (en) * | 1987-02-06 | 1992-04-28 | At&T Bell Laboratories | Multiprocessing method and arrangement |
US4959781A (en) * | 1988-05-16 | 1990-09-25 | Stardent Computer, Inc. | System for assigning interrupts to least busy processor that already loaded same class of interrupt routines |
US5095526A (en) * | 1990-01-26 | 1992-03-10 | Apple Computer, Inc. | Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status |
US5630143A (en) * | 1992-03-27 | 1997-05-13 | Cyrix Corporation | Microprocessor with externally controllable power management |
US5301324A (en) * | 1992-11-19 | 1994-04-05 | International Business Machines Corp. | Method and apparatus for dynamic work reassignment among asymmetric, coupled processors |
EP0602858A1 (en) * | 1992-12-18 | 1994-06-22 | International Business Machines Corporation | Apparatus and method for servicing interrupts in a multiprocessor system |
CA2123447C (en) * | 1993-09-20 | 1999-02-16 | Richard L. Arndt | Scalable system interrupt structure for a multiprocessing system |
KR960042387A (ko) * | 1995-05-31 | 1996-12-21 | 유기범 | 하이파이플러스 인터럽트버스 중재방법 |
US6205467B1 (en) * | 1995-11-14 | 2001-03-20 | Advanced Micro Devices, Inc. | Microprocessor having a context save unit for saving context independent from interrupt requests |
US5799188A (en) * | 1995-12-15 | 1998-08-25 | International Business Machines Corporation | System and method for managing variable weight thread contexts in a multithreaded computer system |
US6003129A (en) * | 1996-08-19 | 1999-12-14 | Samsung Electronics Company, Ltd. | System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture |
JP3037182B2 (ja) * | 1997-02-17 | 2000-04-24 | 日本電気株式会社 | タスク管理方式 |
US6098090A (en) * | 1997-09-05 | 2000-08-01 | Novell, Inc. | Methods and system for providing a background processing thread which manages the background tasks of external threads |
US5968159A (en) * | 1997-09-12 | 1999-10-19 | Infineon Technologies Corporation | Interrupt system with fast response time |
US5923892A (en) * | 1997-10-27 | 1999-07-13 | Levy; Paul S. | Host processor and coprocessor arrangement for processing platform-independent code |
US6418496B2 (en) * | 1997-12-10 | 2002-07-09 | Intel Corporation | System and apparatus including lowest priority logic to select a processor to receive an interrupt message |
US6834386B1 (en) * | 1999-07-16 | 2004-12-21 | Microsoft Corporation | Method and system for regulating background tasks using performance measurements |
US6983301B1 (en) * | 2000-02-02 | 2006-01-03 | Siemens Communications, Inc. | Background processing deferment for computer telephony |
WO2003003232A2 (en) * | 2001-06-29 | 2003-01-09 | Koninklijke Philips Electronics N.V. | Data processing apparatus and a method of synchronizing a first and a second processing means in a data processing apparatus |
JP3708853B2 (ja) * | 2001-09-03 | 2005-10-19 | 松下電器産業株式会社 | マルチプロセッサシステムおよびプログラム制御方法 |
US7487339B2 (en) * | 2001-10-12 | 2009-02-03 | Mips Technologies, Inc. | Method and apparatus for binding shadow registers to vectored interrupts |
KR100456630B1 (ko) | 2001-12-11 | 2004-11-10 | 한국전자통신연구원 | 프로세서간 통신을 위한 인터럽트 중계 장치 및 방법 |
JP2004157730A (ja) * | 2002-11-06 | 2004-06-03 | Renesas Technology Corp | マイクロコンピュータ |
JP2004206389A (ja) * | 2002-12-25 | 2004-07-22 | Denso Corp | Risc型cpu,コンパイラ,マイクロコンピュータ及び補助演算装置 |
CN1301473C (zh) * | 2003-09-17 | 2007-02-21 | 中兴通讯股份有限公司 | 多处理器系统共享引导模块的方法 |
CN1329857C (zh) * | 2003-10-23 | 2007-08-01 | 华为技术有限公司 | 多处理单元环境下统一输入输出方法 |
US7383137B2 (en) * | 2004-02-27 | 2008-06-03 | Intel Corporation | Method and apparatus for measuring absolute and net power consumption for computer systems |
US7603673B2 (en) * | 2004-10-28 | 2009-10-13 | Intel Corporation | Method and system for reducing context switch times |
-
2005
- 2005-01-28 JP JP2005020830A patent/JP4148223B2/ja not_active Expired - Fee Related
- 2005-12-08 TW TW094143439A patent/TWI297852B/zh not_active IP Right Cessation
- 2005-12-30 EP EP05258121A patent/EP1686474A3/en not_active Withdrawn
-
2006
- 2006-01-10 KR KR1020060002758A patent/KR100746796B1/ko not_active IP Right Cessation
- 2006-01-25 US US11/338,835 patent/US20060174246A1/en not_active Abandoned
- 2006-01-25 CN CNB2006100069977A patent/CN100380329C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7877535B2 (en) | 2008-11-04 | 2011-01-25 | Samsung Electronics Co., Ltd. | Processor and interrupt handling method |
Also Published As
Publication number | Publication date |
---|---|
TW200630878A (en) | 2006-09-01 |
EP1686474A3 (en) | 2007-08-01 |
CN100380329C (zh) | 2008-04-09 |
CN1811718A (zh) | 2006-08-02 |
EP1686474A2 (en) | 2006-08-02 |
JP4148223B2 (ja) | 2008-09-10 |
KR100746796B1 (ko) | 2007-08-06 |
US20060174246A1 (en) | 2006-08-03 |
TWI297852B (en) | 2008-06-11 |
JP2006209479A (ja) | 2006-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100746796B1 (ko) | 프로세서 및 정보처리 방법 | |
KR100746797B1 (ko) | 프로세서 및 정보처리 방법 | |
JP5323828B2 (ja) | 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路 | |
US7853743B2 (en) | Processor and interrupt controlling method | |
JP4609113B2 (ja) | プロセッサ | |
JP5673672B2 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 | |
JP2006260377A (ja) | 並列処理装置および情報処理方法 | |
US7797515B2 (en) | System and method for limiting the number of unit processors for which suspension of processing is prohibited | |
WO2006059444A1 (ja) | マルチプロセッサシステムとそのシステムにおけるプログラム実行方法 | |
US7702836B2 (en) | Parallel processing device and exclusive control method | |
JP4389797B2 (ja) | プロセッサおよび情報処理方法 | |
JP4797422B2 (ja) | プロセッサおよびディスパッチ制御方法 | |
JP5017784B2 (ja) | プロセッサ及びこのプロセッサ適用される割込み処理制御方法 | |
JP4143632B2 (ja) | 組込みシステムおよびプログラム、並びに、キー割込み制御方法 | |
JP2005519393A (ja) | 仮想直接メモリ・アクセスのための方法及び装置 | |
JP2002132395A (ja) | データ処理装置およびシステム | |
JP2004118412A (ja) | 割込み管理装置、割込み管理方法、プログラム開発支援装置及びプログラム開発支援方法 | |
JP2002149290A (ja) | マイクロコンピュータ | |
JPH04107672A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130701 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140716 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150630 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |