KR20060087409A - 프로세서 및 정보처리 방법 - Google Patents

프로세서 및 정보처리 방법 Download PDF

Info

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
Application number
KR1020060002758A
Other languages
English (en)
Other versions
KR100746796B1 (ko
Inventor
아키히코 다무라
가츠야 다나카
Original Assignee
세이코 엡슨 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세이코 엡슨 가부시키가이샤 filed Critical 세이코 엡슨 가부시키가이샤
Publication of KR20060087409A publication Critical patent/KR20060087409A/ko
Application granted granted Critical
Publication of KR100746796B1 publication Critical patent/KR100746796B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J50/00Circuit arrangements or systems for wireless supply or distribution of electric power
    • H02J50/10Circuit arrangements or systems for wireless supply or distribution of electric power using inductive coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task 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

프로세서 및 정보처리 방법{PROCESSOR AND INFORMATION PROCESSING METHOD}
도 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항에 있어서,
    상기 전용 프로세서부는, 상기 우선도가 높은 소정 처리가 발생한 경우에 처리중인 프로그램의 파기가 가능한 처리를 상기 우선도가 높은 소정 처리의 백그라운드 처리로서 실행하는 것을 특징으로 하는 프로세서.
  3. 제 2항에 있어서,
    상기 백그라운드 처리를 행하는 모드와, 그 백그라운드 처리를 행하지 않는 모드를 절환 가능한 것을 특징으로 하는 프로세서.
  4. 제 1항에 있어서,
    상기 우선도가 높은 소정 처리는, 인터럽트 처리인 것을 특징으로 하는 프로세서.
  5. 태스크 혹은 스레드를 처리하는 프로세서부를 복수 구비하는 프로세서에서의 정보처리 방법으로서,
    우선도가 높은 소정 처리를 소정 프로세서부에서 전용으로 처리시키고, 그 우선도가 높은 소정 처리 이외의 처리를 상기 소정 프로세서부 이외의 프로세서부에서 행하게 하는 것을 특징으로 하는 정보처리 방법.
  6. 제 5항에 있어서,
    상기 소정 프로세서부에서, 상기 우선도가 높은 소정 처리가 발생한 경우에 처리중인 프로그램의 파기가 가능한 처리를 상기 우선도가 높은 소정 처리의 백그라운드 처리로서 실행시키는 것을 특징으로 하는 정보처리 방법.
  7. 제 6항에 있어서,
    상기 백그라운드 처리를 행하는 모드와, 그 백그라운드 처리를 행하지 않는 모드를 절환 가능하게 한 것을 특징으로 하는 정보처리 방법.
  8. 제 5항에 있어서,
    상기 우선도가 높은 소정 처리는 인터럽트 처리인 것을 특징으로 하는 정보처리방법.
KR1020060002758A 2005-01-28 2006-01-10 프로세서 및 정보처리 방법 KR100746796B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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