KR20070095395A - 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 - Google Patents

멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR20070095395A
KR20070095395A KR1020077018140A KR20077018140A KR20070095395A KR 20070095395 A KR20070095395 A KR 20070095395A KR 1020077018140 A KR1020077018140 A KR 1020077018140A KR 20077018140 A KR20077018140 A KR 20077018140A KR 20070095395 A KR20070095395 A KR 20070095395A
Authority
KR
South Korea
Prior art keywords
semaphore
request
unit
acquisition
processor
Prior art date
Application number
KR1020077018140A
Other languages
English (en)
Inventor
아키나리 도도로키
가츠야 다나카
Original Assignee
세이코 엡슨 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세이코 엡슨 가부시키가이샤 filed Critical 세이코 엡슨 가부시키가이샤
Publication of KR20070095395A publication Critical patent/KR20070095395A/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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/376Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

복수의 단위 프로세서를 구비한 멀티 프로세서 시스템은 리소스에 대응하는 복수의 세마포어를 식별 가능하게 설정하는 HW 세마포어부(13)를 갖고, 단위 프로세서(P0)가 HW 세마포어부(13)에 대해서 세마포어의 취득 요구를 한 경우, 이 요구가 단위 프로세서 P1에 의해서 취득되고 있는 세마포어인 취득 중 세마포어를 요구하는 것인지의 여부를 판단하고, 이 요구가 취득 중 세마포어를 요구하는 것이라고 판단된 경우에 단위 프로세서(P0)의 요구를 대기시키는 한편, 요구가 취득 중 세마포어 이외의 세마포어를 요구하는 것이라고 판단된 경우, 프로그램 제어부(105)가 요구된 세마포어의 취득을 허가한다.

Description

멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램{MULTI-PROCESSOR SYSTEM AND PROGRAM FOR COMPUTER TO CARRY OUT A CONTROL METHOD OF INTERRUPTING MULTI-PROCESSOR SYSTEM}
본 발명은 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램에 관한 것으로, 특히 외부의 기기로부터의 인터럽트 처리를 접수하면서 병렬로 프로그램의 처리를 실행하는 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램에 관한 것이다.
특정한 장치에 이용되는 프로세서는 임베디드 시스템(Embedded system)이라 칭해지고 있다. 최근에는, 임베디드 시스템에 멀티 프로세서나 멀티 스레드 프로세서가 채용되는 경우도 많다.
멀티 프로세서의 채용은 장치의 저클록화나 응답성의 향상에 유리하다. 또한, 특히 휴대형의 장치에서는 소비 전력을 저감하는 것에도 유리하기 때문에 멀티 프로세서를 채용하는 것이 요구되고 있다.
그러나, 새롭게 개발한 프로세서가 정상적으로 동작하는지의 여부의 판단에 시간 및 비용이 든다. 이 때문에, 소프트웨어의 분야에서는 사용한 결과 실적이 있는 프로세서가 유용 가능하다면, 이것을 유용하는 것이 바람직하다고 여겨지고 있다. 따라서, 임베디드 시스템을 멀티 프로세서화하는 경우, 먼저 사용되고 있던 싱글 프로세서의 소프트웨어를 유용하는 요구가 있다.
싱글 프로세서를 멀티 프로세서에 유용하는 종래 기술로서 예를 들어, 특허 문헌 1이 있다. 특허 문헌 1의 발명은, μITRON(등록상표)을 베이스로 한 싱글 프로세서용 오퍼레이팅 시스템(OS : Operating System)을 멀티 프로세서에 이식하는 것이다.
특허 문헌 1 : 일본 공개특허 평8-297581호 공보
그러나, 싱글 프로세서에서는 프로세서가 프로그램을 소정의 단위(태스크)로 실행하는 동안, 태스크측에서 프로세서를 인터럽트 금지로 설정한다. 또한, 싱글 프로세서에서는 인터럽트 레벨이 비교적 낮은 인터럽트 처리에 있어서, 처리의 실행 중의 인터럽트가 금지되는 일이 있다. 또한, 싱글 프로세서에서는 OS를 호출하는 서비스 콜을 발행하는 경우, 서비스 콜의 발행으로부터 OS의 해방까지의 전체 기간 인터럽트 처리가 금지될 필요가 있었다.
상기한 사양을 멀티 프로세서에 유용한 경우, 멀티 프로세서가 복수의 프로세서부를 가짐에도 불구하고 인터럽트 처리와 태스크 처리를 병렬로 실행할 수 없다.
또한, 우선도에 관련없이 인터럽트 처리가 대기 상태가 되는 기간이 발생하기 때문에 프로그램의 처리 효율이 저하된다는 결점이 있다.
도 11은 인터럽트 처리가 대기 상태가 되는 종래 기술을 설명하기 위한 도면이다. 저우선도의 태스크의 실행 중, 이 태스크는 보다 우선도가 높은 태스크나 인터럽트 처리에 의해서 중단하는 것을 막기 위해 프로세서를 인터럽트 금지 상태로 설정한다. 이 결과, 후의 태스크나 인터럽트 처리는 저우선도의 태스크가 종료할 때까지 기동하지 않고 대기된다.
본 발명은, 이러한 점을 감안하여 이루어진 것으로, 멀티 프로세서 시스템에 있어서 태스크 및 인터럽트 처리의 병렬 처리를 가능하게 하고, 또한 태스크 등의 대기 시간을 단축할 수 있어 병렬 처리의 처리 효율이 높은 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 제공하는 것을 목적으로 한다.
이상의 과제를 해결하기 위해, 본 발명의 멀티 프로세서 시스템은 복수의 단위 프로세서를 구비한 멀티 프로세서 시스템으로서, 리소스의 경합에 대해 우선적인 권리를 나타내는 세마포어를 복수의 리소스 각각에 대응시켜 복수의 세마포어를 식별 가능하게 설정하는 세마포어 설정 수단과, 상기 단위 프로세서 중 제1 단위 프로세서가 상기 세마포어 설정 수단으로 설정되어 있는 세마포어의 취득 요구를 한 경우, 해당 요구가 제2 단위 프로세서에 의해서 취득되고 있는 세마포어인 취득 중 세마포어를 요구하는 것인지의 여부를 판단하는 세마포어 요구 판단 수단과, 상기 세마포어 요구 판단 수단에 의해 상기 요구가 취득 중 세마포어를 요구하는 것이라고 판단된 경우에 제1 단위 프로세서의 요구를 대기시키는 한편, 상기 요구가 취득 중 세마포어 이외의 세마포어를 요구하는 것이라고 판단된 경우에는 요구된 세마포어의 취득을 허가하는 배타 제어 수단을 구비하는 것을 특징으로 한다.
또한, 본 발명의 멀티 프로세서 시스템은 세마포어의 취득이 허가된 제1 단위 프로세서에 대한 디스패치에 의한 태스크 스위치, 외부로부터 요구되는 인터럽트 처리, 다른 단위 프로세서에 의해서 요구되는 인터럽트 처리 중의 적어도 1개를 금지하는 인터럽트 금지 수단을 구비하는 것을 특징으로 한다.
또한, 본 발명의 멀티 프로세서 시스템은 단위 프로세서가 멀티 프로세서의 내부에서 발생한 태스크 및 외부에서 발생한 핸들러를 처리하기 위해서 세마포어의 취득을 요구하고, 상기 배타 제어 수단은 태스크 처리를 위한 세마포어 취득 요구끼리, 태스크 처리를 위한 세마포어 취득 요구와 핸들러 처리를 위한 세마포어 취득 요구 사이, 핸들러 처리를 위한 세마포어 취득 요구끼리로 세마포어의 취득을 대기 또는 허가하는 것을 특징으로 한다.
또한, 본 발명의 멀티 프로세서 시스템은 상기 배타 제어 수단이 상기 제1 단위 프로세서에 의해서 요구된 세마포어의 취득을 허가한 경우, 상기 제1 단위 프로세서를 스핀 록하는 것을 특징으로 한다.
또한, 본 발명의 멀티 프로세서 시스템은 상기 세마포어 설정 수단이 복수의 세마포어의 각각에 식별 정보를 부여함으로써 식별 가능하게 설정함과 함께 복수의 세마포어의 적어도 일부의 세마포어에 공통의 식별 정보를 부여하여 공통의 상기 식별 정보가 부여된 복수의 세마포어의 각각에 관리 영역을 설정하고, 상기 세마포어 요구 판단 수단이 식별 정보에 따라 제1 단위 프로세서가 취득 요구를 한 세마포어가 제2 단위 프로세서에 의해서 취득되고 있는 취득 중 세마포어인지의 여부를 관리 영역마다 판단하는 것을 특징으로 한다.
또한, 본 발명의 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램은, 복수의 단위 프로세서를 구비한 멀티 프로세서 시스템에 적용되는 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램으로서, 상기 단위 프로세서 중 제1 단위 프로세서가 식별 가능하게 설정되어 있는 세마포어의 취득 요구를 한 경우, 해당 요구가 제2 단위 프로세서에 의해서 취득되고 있는 세마포어인 취득 중 세마포어를 요구하는 것인지의 여부를 판단하는 세마포어 요구 판단 단계와, 상기 세마포어 요구 판단 단계에 있어서 상기 요구가 취득 중 세마포어를 요구하는 것이라고 판단된 경우에는 제1 단위 프로세서의 요구를 대기시키는 한편, 상기 요구가 취득 중 세마포어 이외의 세마포어를 요구하는 것이라고 판단된 경우에는 요구된 세마포어의 취득을 허가하는 배타 제어 단계와, 상기 배타 제어 단계에 있어서 세마포어의 취득이 허가된 단위 프로세서를 인터럽트 금지로 설정하는 인터럽트 금지 단계를 포함하는 것을 특징으로 한다.
도 1은 일반적인 멀티 프로세서 시스템에서의 단위 프로세서의 결합의 예를 나타낸 도면이다.
도 2는 본 발명의 일 실시형태의 멀티 프로세서가 적용되는 휴대 전화의 기능 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시형태의 멀티 프로세서를 설명하기 위한 도면이다.
도 4는 본 실시 형태의 멀티 프로세서 시스템의 인터럽트 제어 방법을 설명하기 위한 흐름도이다.
도 5는 도 4의 흐름도에 나타낸 HW 세마포어 취득의 성공 여부에 대해 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시형태의 프로그램 제어부에 의해서 이루어지는 HW 세마포어 취득의 처리를 설명하기 위한 흐름도이다.
도 7은 도 6에 나타낸 흐름도에 의해서 실현되는 병렬 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시형태의 프로그램 제어부가 HW 세마포어를 해방하는 처리를 설명하기 위한 흐름도이다.
도 9는 본 발명의 일 실시형태의 HW 세마포어부(13)가 HW 세마포어를 해방하는 처리를 설명하기 위한 흐름도이다.
도 10은 본 발명의 일 실시형태의 HW 세마포어 해방을 설명하기 위한 도면이다.
도 11은 인터럽트 처리가 대기 상태가 되는 종래 기술을 설명하기 위한 도면이다.
<도면의 주요부분에 대한 부호의 설명>
11 : 인터럽트 제어부,
12 : 메모리 제어부,
13 : 하드웨어 세마포어부,
30 : 메모리,
105 : 프로그램 제어부,
106 : 방출 금지 플래그,
230 : PC,
305 : PSR,
P0, P1, P2, P3 : 단위 프로세서
이하, 도면을 참조하여 본 발명에 따른 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램의 일 실시형태를 설명한다.
본 실시 형태는 본 실시 형태의 멀티 프로세서 시스템을 휴대 전화에 적용되는 임베디드 시스템으로서 구성한 것으로 한다. 멀티 프로세서 시스템은 복수의 프로세서(단위 프로세서)를 결합하여 구성된다. 일반적인 멀티 프로세서 시스템에서의 단위 프로세서의 결합의 예를 도 1에 나타낸다.
도 1a, 도 1b에 나타낸 멀티 프로세서는 모두 대칭형 멀티 프로세서(SMP : symmetric multi-processor)로 불리는 구성이며, 복수의 단위 프로세서 Pu를 메모리를 공유하도록 결합하여 구성되어 있다. 도 1a에 나타낸 구성은 멀티 프로세서로 불리고 있다. 또한, 도 1b에 나타낸 구성은 멀티 스레드 프로세서라 불리고 있다. 멀티 스레드 프로세서는 멀티 프로세서보다도 연산기를 공유하고 있는 점에서 단위 프로세서 Pu는 조밀하게 결합하고 있다고 한다.
본 실시 형태에서는 멀티 프로세서 시스템을 멀티 프로세서로서 구성한 예를 들어 설명하는 것으로 한다. 또한, 본 실시 형태는 멀티 프로세서, 멀티 스레드 프로세서 중 어느 것으로서도 구성 가능하다.
도 2는, 본 발명의 일 실시형태의 멀티 프로세서 시스템이 적용되는 휴대 전화(1)의 기능 구성을 나타내는 블록도이다. 도 2에 있어서, 휴대 전화(1)는 CPU(Central Processing Unit : 10)와 플래쉬 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)로부터 입력되는 각종의 지시 신호에 따라 메모리(30)에 기억된 오퍼레이팅 시스템 프로그램(OS : Operating System)이나 각종 응용 프로그램을 독출하여 실행하고, 무선부(50), 오디오부(70) 또는 카메라부(120) 등의 주변 칩으로부터 입력되는 인터럽트 신호에 따라 인터럽트 핸들러를 실행한다. 또한, OS는 멀티 프로세서에 대응하는 OS이다.
또한, CPU(10)는 각종 처리 결과를 플래쉬 ROM(20) 또는 메모리(30)에 저장 한다
도 3은 도 2 중에 CPU(10)로서 나타낸 본 실시 형태의 멀티 프로세서를 설명하기 위한 도면이다. 본 실시 형태의 멀티 프로세서는 복수의 단위 프로세서(P0, P1, P2, P3)를 조합하여, 복수의 상기 단위 프로세서를 복수의 오퍼레이팅 시스템으로 동작시키는 멀티 프로세서이다. 도 3에 나타낸 바와 같이, 멀티 프로세서는 복수의 단위 프로세서(P0~P3)와 인터럽트 제어부(11)와 메모리 제어부(12)와 하드웨어 세마포어(이하 HW 세마포어)부(13)를 포함하여 구성된다.
HW 세마포어부(13)는 경합하는 처리(본 실시 형태에서는 하드웨어 리소스를 점유하는 처리)를 어느 하나의 단위 프로세서가 우선적으로 실행하는 권리인 HW 세마포어를 설정하는 구성이다. 본 실시 형태에서는, HW 세마포어부(13)에 하드웨어 리소스에 따른 복수의 HW 세마포어를 식별 가능하게 설정하고 있다. 식별을 위해, 복수의 HW 세마포어의 각각에는 식별 정보(ID)가 부여되어 있다. HW 세마포어를 요구하는 서비스 콜은 HW 세마포어의 ID를 지정하여 행해진다.
이 서비스 콜에 의해서 HW 세마포어가 취득된 단위 프로세서만이 이 HW 세마포어에 대응하는 하드웨어 리소스를 사용하여 처리를 실행할 수 있다. 또한, 본 실시 형태에서는 HW 세마포어를 취득한 단위 프로세서에 대한 인터럽트를 필요한 기간 금지한다.
HW 세마포어부(13)는 후술하는 프로그램 제어부(105)와 협동하여 단위 프로세서 중 제1 단위 프로세서(예를 들어 단위 프로세서(P0))가 HW 세마포어부(13)에 설정되어 있는 세마포어의 취득 요구를 한 경우, 이 요구가 제2 단위 프로세서(예 를 들어 단위 프로세서(P1))에 의해서 취득되고 있는 세마포어(취득 중 세마포어)를 요구하는 것인지의 여부를 판단한다.
또한, 프로그램 제어부(105)는 HW 세마포어부(13)에 의해서 세마포어 취득의 요구가 취득 중 세마포어를 요구하는 것이라고 판단된 경우, 단위 프로세서(P0)의 요구를 대기시킨다. 한편, 이 요구가 취득 중 세마포어 이외의 세마포어를 요구하는 것이라고 판단된 경우에는 요구된 세마포어의 취득을 허가한다. 또한, 세마포어의 취득이 허가된 단위 프로세서(P0)를 인터럽트 금지로 설정한다.
이상의 구성에 있어서, HW 세마포어부(13)는 세마포어 설정 수단, HW 세마포어부(13) 및 프로그램 제어부(105)는 세마포어 요구 판단 수단, 배타 제어 수단, 인터럽트 제어 수단에 상당한다.
프로그램 관리부(105)는 ID에 따라, 요구된 HW 세마포어가 이미 다른 단위 프로세서에 의해서 사용되고 있는지의 여부를 관리 영역마다 판단한다. 이렇게 하면, 1개의 HW 세마포어를 사용하여 복수의 단위 프로세서를 배타 제어할 수 있다.
또한, 본 실시 형태에서는 ID의 부여에 있어서 HW 세마포어부(13)가 복수의 HW 세마포어의 적어도 일부의 세마포어에 공통의 ID를 부여한다. 또한, 공통의 ID가 부여된 복수의 HW 세마포어의 각각에 관리 영역을 설정한다. 그리고, 프로그램 관리부(105)가 상기한 바와 같이, 요구된 HW 세마포어가 이미 다른 단위 프로세서에 의해서 사용되고 있는지의 여부를 관리 영역마다 판단하므로, 하드웨어 리소스가 적은 경우에도 많은 세마포어를 제어하여 단위 프로세서를 배타 제어하는 것이 가능해진다.
즉, 본 실시 형태에서는 HW 세마포어 0~HW 세마포어 7의 합계 8개의 HW 세마포어를 정의하여 ID를 255개 설정 가능하게 하였다. 이 때문에, HW 세마포어 0~6에는 각각 1대1로 ID가 대응되고, HW 세마포어 7에는 8~255의 ID가 대응된다. 그리고, 예를 들어 메모리(30)에 있어서 8~255의 ID에 대응한 관리 영역을 설치하는 것으로 한다.
또한, 단위 프로세서(P0~P3)는 멀티 프로세서의 내부에서 발생한 태스크 및 외부에서 발생한 핸들러를 처리하기 위해서 세마포어의 취득을 요구한다. 인터럽트 제어부(11) 및 프로그램 제어부(105)는 태스크 처리를 위한 세마포어 취득 요구끼리, 또한, 태스크 처리를 위한 세마포어 취득 요구와 핸들러 처리를 위한 세마포어 취득 요구 사이에서, 또한 핸들러 처리를 위한 세마포어 취득 요구끼리로 세마포어의 취득을 대기 또는 허가하고 있다.
이러한 구성에 의하면, 본 실시 형태의 멀티 프로세서는 태스크 처리끼리, 태스크 처리와 외부 인터럽트에 의한 처리, 외부 인터럽트에 의한 처리끼리를 병렬로 처리하여 필요에 따라서 배타 제어할 수 있다.
즉, HW 세마포어부(13)는 단위 프로세서(P0~P3)로부터 세마포어 취득 요구가 있었을 때, 단위 프로세서(P0~P3)가 지정한 HW 세마포어가 이미 획득되어 있는 상태이면, 새로운 요구에 대해서 지정된 HW 세마포어의 획득 실패를 통지한다. 한편, 그 이전에 HW 세마포어가 획득된 상태가 아니면, 지정된 HW 세마포어 취득 성공의 통지를 단위 프로세서에 회답하는 기능을 갖고 있다.
이러한 HW 세마포어는 복수의 단위 프로세서가 동시에 동일한 하드웨어 리소 스를 사용하는 것을 막을 수 있다. 이 때문에, OS에 의해서 사용되는 메모리(30)의 소정의 영역이 동시에 액세스되었기 때문에 처리가 중단되는 등의 문제를 막을 수 있다.
또한, 본 실시 형태의 프로세서는 단위 프로세서(P0~P3)의 공유 영역이 되는 메모리(30)와, 메모리(30)를 제어하는 메모리 제어부(12)를 구비하고 있다. 본 실시 형태에서는, 하드웨어 리소스와 HW 세마포어의 ID를 대응시키는 정보를 메모리(30)에 보존한다.
다음에, 각 단위 프로세서(P0~P3)의 내부 구성에 대해 설명한다. 또한, 단위 프로세서(P0~P3)는 동일하게 구성되어 있기 때문에, 단위 프로세서(P0)의 내부 구성에 대해서만 설명하고, 다른 단위 프로세서의 설명을 대신하는 것으로 한다.
단위 프로세서(P0)는 페치부(101)와 디코드부(102)와 ALU(Arithmetic and Logical Unit : 103)와 레지스터 파일(104)과 프로그램 제어부(105)를 포함하여 구성된다. 페치부(101)는 후술하는 프로그램 제어부(105)의 프로그램 카운터가 나타내는 메모리 어드레스로부터 명령 코드를 독출하고 디코드부(102)에 출력한다.
디코드부(102)는 페치부(101)에 의해서 입력된 명령 코드를 디코드하여, 디코드 결과(명령 내용 및 소스 레지스터, 데스티네이션 레지스터의 어드레스 등)를 ALU(103)에 출력한다.
ALU(103)는 디코드부(102)에 의해서 입력된 디코드 결과에 따라 소정의 연산을 행하여, 연산 결과를 레지스터 파일(104)에 기록하거나, 또는 분기 명령 등의 연산 결과인 브랜치처(先)의 어드레스를 프로그램 제어부(105)에 출력한다.
레지스터 파일(104)은 로드 명령에 따라서 메모리(30)로부터 독출된 데이터나, ALU(103)의 연산 결과인 데이터를 기억하는 레지스터군이다. 후술하는 바와 같이, 레지스터 파일(103)은 범용 레지스터군과 특수 레지스터군을 포함하고 있고, 특수 레지스터군은 본 실시 형태의 부트 처리를 위한 어드레스가 기입되는 영역이다.
프로그램 제어부(105)는 단위 프로세서(P0) 전체를 제어하는 것이고, 단위 프로세서(P0)의 스테이터스(예를 들어, 인터럽트의 가부 상태, 단위 프로세서(P0)에서의 오버플로우의 발생 상태 등)를 기억하는 스테이터스 레지스터(PSR : 305)와 단위 프로세서(P0)가 다음에 실행해야 할 명령이 저장된 메모리 어드레스를 기억하는 프로그램 카운터(PC : 230)을 포함하여 구성된다. 그리고, 프로그램 제어부(105)는 단위 프로세서(P0)가 인터럽트 처리에 이행하는 시점에서, PSR(305)의 값을 인터럽트 처리의 금지 상태로 변경하거나 분기 명령이 실행된 경우에, 프로그램 카운터의 값을 분기처의 어드레스로 변경하거나 한다.
또한, 프로그램 제어부(105)는 실행 중인 태스크에 의해서 HW 세마포어의 취득 요구가 출력된 경우, 먼저, HW 세마포어의 취득 결과를 수취하고, 스테이터스 레지스터에서의 HW 세마포어의 취득 결과를 나타내는 영역에 있어서, HW 세마포어의 취득에 성공한 것을 나타내는 플래그를 갱신한다. 한편, 세마포어 취득에 실패한 경우, HW 세마포어의 취득에 실패한 것을 나타내는 플래그를 갱신하고, HW 세마포어의 취득을 일단 정지하여 대기 상태로부터 이탈한다.
또한, 프로그램 제어부(105)는 방출 금지 플래그(106)를 구비하고 있다. 방 출 금지 플래그(106)는 자체의 단위 프로세서에 있어서 태스크의 전환이나 외부 인터럽트가 발생하여, 태스크가 단위 프로세서로부터 방출되는 것을 금지하기 위한 기구이다. 방출 금지 플래그(106)를 1로 함으로써 현재 단위 프로세서에 있는 태스크나 인터럽트 처리가, 다른 태스크나 인터럽트 처리로 전환되는 것이 금지된다.
단위 프로세서에서의 태스크의 방출이 금지된 상태를 록 상태라고 하고, 본 실시 형태에서는 스핀 록에 의해서 록 상태를 실현한다.
스핀 록이란, 단위 프로세서 사이에서 동일한 자원(본 실시 형태에서는 하드웨어 리소스)을 사용하는 경우, 그 자원의 해방을 기다려 비지웨이트(busy waiting)하는 방법이다. 단위 프로세서간의 통신을 이용한 배타 제어에 비하여, 단위 프로세서끼리의 동기를 위한 오버헤드가 적은 점에서 유리하다. 스핀 록은 자원을 이용하고 있는 배타 구간이 짧은 경우에 적합한 방식이다.
인터럽트 제어부(11)는 무선부(50) 등의 주변 칩으로부터 외부 인터럽트의 인터럽트 신호가 입력된 경우에, 인터럽트 신호를 조정한 다음, 소정의 인터럽트 신호를 단위 프로세서(P0~P3) 중 지정된 단위 프로세서에 출력한다. 메모리 제어부(12)는 CPU(10)와 메모리(30) 사이에 구비되고, CPU(10)로부터 메모리(30)에 대한 데이터의 독출 및 기입이 행해지는 경우에, 메모리(30)를 제어하여 데이터의 입출력을 행하고 있다.
다음에, 이상 설명한 멀티 프로세서의 동작을 설명한다.
도 4는 본 실시 형태의 멀티 프로세서 시스템의 인터럽트 제어 방법을 설명하기 위한 흐름도로서, 프로그램 제어부(105) 및 하드웨어 구성인 HW 세마포어 부(13)에 의해서 실행되는 처리를 설명하기 위한 도면이다.
배타해야 할 처리가 발생하면, HW 세마포어부(13)는 단위 프로세서측의 소프트웨어의 요구에 의해서 HW 세마포어 취득의 요구를 접수한다(S401). HW 세마포어의 취득은 TEST&SET 방식으로 행해진다. TEST&SET 방식은 1개의 기계어 명령으로 행해지기 때문에, 처리의 도중에 다른 태스크 등에 인터럽트되어 경합 상태가 되는 일이 없다.
또한, HW 세마포어부(13)는 HW 세마포어의 취득이 성공했는지의 여부를 판단한다(S402). 이 판단의 결과, HW 세마포어의 취득이 성공한 경우(S402 : Yes), 프로그램 제어부(105)가 HW 세마포어를 취득한 단위 프로세서(요구원 프로세서)에 대한 인터럽트를 금지한다(S403). 이 인터럽트 금지는 요구원 프로세서에 대해서 외부로부터 요구되는 인터럽트 처리, 다른 단위 프로세서에 의해서 요구되는 인터럽트 처리의 외에, 디스패치에 의한 태스크 스위치를 금지하는 것이다.
또한, 프로그램 제어부(105)는 HW 세마포어가 취득된 것을 요구원 프로세서의 스테이터스 레지스터로 설정함으로써 요구원 프로세서에 통지한다(S404).
또한, 본 실시 형태에서는 HW 세마포어의 취득이 성공한 경우에는 요구원 프로세서의 방출 금지 플래그(106)도 동시에 설정하여 스핀 록하는 것으로 하였다. 한편, 단계 S402에 있어서 HW 세마포어가 취득되지 않았다고 판단된 경우(S402 : No), 요구원 프로세서의 스테이터스 레지스터에 HW 세마포어가 취득되지 않은 것을 설정한다(S404).
도 5a, 5b는 HW 세마포어 취득의 성공 여부에 대해 설명하기 위한 도면이다. 도 5a, 5b에 나타낸 바와 같이, 요구원 프로세서가 되는 단위 프로세서는 HW 세마포어를 제어하는 HW(HW 세마포어부(13))에 대해, HW 세마포어를 취득하기 위해 TEST&SET를 실행한다. 또한, TEST&SET의 실행으로부터 PSR로 결과를 기록할 때까지의 처리는 1사이클분으로 완료한다.
HW 세마포어가 취득된 경우, HW 세마포어부(13)는 요구원 프로세서의 PSR(305)에 HW 세마포어가 취득된 것을 기록한다. HW 세마포어 취득의 통지를 받은 요구원 프로세서는 스핀 록 상태를 확보한다. 또한, HW 세마포어가 취득되지 않은 경우, HW 세마포어부(13)는 요구원 프로세서의 PSR(305)에 HW 세마포어가 취득되지 않은 것을 기입한다. HW 세마포어가 취득되지 않은 경우, 요구원 프로세서는 HW 세마포어가 취득될 때까지 HW 세마포어 취득의 처리를 반복한다.
도 6은, 요구원 프로세서의 프로그램 제어부(105)에 의해서 이루어지는 HW 세마포어 취득의 처리를 설명하기 위한 흐름도이다. 요구원 프로세서는, 먼저, 메모리(30)에 보존되어 있는 HW 세마포어와 ID의 대응 정보를 참조하여, 취득하고자 하는 HW 세마포어의 ID를 식별한다(S601). 그리고, ID가 8 미만인 경우, ID와 HW 세마포어는 1대 1로 대응되어 있기 때문에 ID에 대응하는 HW 세마포어의 취득을 HW 세마포어부(13)에 요구한다(S613). 그리고, 이 결과가 기록된 PSR의 값을 리턴값에 반영하여 프로그램에 결과를 되돌려준다(S614).
또한, 단계 S601에 있어서 ID가 8 이상이라고 판단된 경우(S601 : Yes), HW 세마포어 7에 HW 세마포어부의 취득을 요구한다(S602). 그리고, PSR에 기입된 값이 HW 세마포어가 획득된 것을 나타내는 경우(S603 : Yes), ID에 대응하는 HW 세마 포어의 관리 영역을 TEST&SET한다(S604).
이와 같이, 1개의 HW 세마포어 7에 복수의 ID를 부여한 경우, 본 실시 형태는 1개의 HW를 복수의 단위 프로세서가 동시에, 또한 서로 영향을 주지 않고 사용하여 처리를 실행할 수 있다.
또한, 프로그램 제어부(105)는 TEST&SET에 의해서 세마포어가 획득되었는지의 여부를 판단하고(S605), HW 세마포어 7에 HW 세마포어의 해방을 요구한다(S606).
또한, 요구원 프로세서에 인터럽트 금지를 설정하고(S607), 자체의 프로세서에 대한 태스크 인터럽트, 외부 인터럽트, 나아가서는 태스크 스위치를 금지한다. 이상의 처리의 후, HW 세마포어 취득의 결과가 기록된 PSR의 값을 리턴값에 반영하여 프로그램에 결과를 되돌려준다(S608).
또한, 프로그램 제어부(105)는 HW 세마포어가 취득되지 않은 경우(S612 : No), HW 세마포어 취득 실패를 나타내는 PSR의 값을 리턴값에 반영하여 프로그램에 결과를 되돌려준다(S614). 또한, TEST&SET에 의해서 세마포어가 획득되지 않은 경우에도(S605 : No), HW 세마포어 7에 HW 세마포어의 해방을 요구한 후, PSR의 값을 리턴값에 반영하여 프로그램에 결과를 되돌려준다(S611).
이상의 처리를 하기 위해 본 실시 형태에서는 이하의 4개의 서비스 콜을 설정하였다
·loc_spn
태스크측으로부터 HW 세마포어의 취득을 행하는 서비스 콜이다. 단위 프로 세서는 HW 세마포어를 취득할 수 있을 때까지 서비스 콜로부터는 복귀하지 않는다. 태스크를 처리하는 단위 프로세서가 loc_spn 상태인 경우, unl_spn 이외의 서비스 콜은 금지함과 함께 이 단위 프로세서로의 인터럽트 및 태스크 스위치도 금지된다.
·iloc_spn
인터럽트 핸들러측으로부터 HW 세마포어의 취득을 행하는 서비스 콜이다. 단위 프로세서는 HW 세마포어를 취득할 수 있을 때까지 서비스 콜로부터는 복귀하지 않는다. 인터럽트 핸들러를 실행하는 단위 프로세서가 iloc_spn 상태인 경우에는, iunl_spn 이외의 서비스 콜은 금지함과 함께 이 단위 프로세서로의 인터럽트 및 태스크 스위치가 금지된다.
·unl_spn
태스크측으로부터 HW 세마포어의 해방을 행하는 서비스 콜이다. HW 세마포어 획득을 기다리는 단위 프로세서가 있는 경우, 이 단위 프로세서는 unl_spn의 타이밍에서 스핀 록을 취득할 수 있다.
·iunl_spn
인터럽트 핸들러측으로부터 HW 세마포어의 해방을 행하는 서비스 콜이다. HW 세마포어 획득을 기다리는 단위 프로세서가 있는 경우, 이 단위 프로세서는 iunl_spn의 타이밍에서 스핀 록을 취득할 수 있다.
도 7은, 도 6에 나타낸 흐름도에 의해서 실현되는 병렬 동작을 설명하기 위한 도면이다. 도 7a에 나타낸 바와 같이, 본 실시 형태는 우선도가 비교적 낮은 태스크의 실행 중, 이 태스크를 실행하는 단위 프로세서가 태스크의 종료까지 OS에 의해서 스핀 록된다. 이 동안, 본 실시 형태의 멀티 프로세서는 인터럽트 금지로 설정되지 않고, 실행 중인 태스크가 취득한 HW 세마포어와는 관계없이 실행되는 태스크나 인터럽트 처리는 다른 단위 프로세서에 있어서 병렬로 동작할 수 있다.
또한, 도 7b에 나타낸 바와 같이, 병렬 동작 중의 단위 프로세서에 있어서, 병렬 처리되고 있는 태스크나 인터럽트 처리가 이미 취득되어 있는 HW 세마포어의 취득을 요구한 경우, 요구한 HW 세마포어가 해방될 때까지 태스크 등이 대기하게 된다.
도 8은, 프로그램 제어부(105)가 HW 세마포어를 해방하는 처리를 설명하기 위한 흐름도이다. 프로그램 제어부(105)는 해인터럽트야 할 HW 세마포어의 ID가 8 이상인지의 여부를 판정한다(S801). 판단의 결과, ID가 8 미만인 경우(S801 : No), ID에 대응하는 HW 세마포어의 해방을 HW 세마포어부(13)에 요구한다(S803). 한편, ID가 8 이상인 경우(S801 : Yes), OS 내의 ID에 대응하는 세마포어 관리 영역에 기록된 정보를 소거하고(S802) 처리를 종료한다.
도 9는, HW 세마포어부(13)가 HW 세마포어를 해방하는 처리를 설명하기 위한 흐름도이다. HW 세마포어부(13)는 해인터럽트야 할 ID의 HW 세마포어에 대해서 해방 요구(CLEAR)를 한다(S901).
그리고, 요구원 프로세서의 인터럽트 금지를 해제하고(S902), 요구원 프로세서의 PSR(305)에 HW 세마포어를 해방한 것을 나타내는 값을 설정하여 통지한다(S903).
도 10은 HW 세마포어 해방을 설명하기 위한 도면이다. HW 세마포어 해방의 요구원 프로세서가 되는 단위 프로세서는 HW 세마포어 해방의 통지를 수취한 후에 스핀 록 상태로부터 해방된다.
또한, 도 4, 도 6, 도 8, 도 9에서 설명한 본 실시 형태의 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램은, 인스톨 가능한 형식 또는 실행 가능한 형식의 파일로 CD-ROM, 플로피(등록상표) 디스크(FD), DVD 등의 컴퓨터로 판독 가능한 기록 매체에 기록되어 제공된다. 또한, 본 실시 형태의 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을, 인터넷 등의 네트워크에 접속된 컴퓨터 상에 저장하고, 네트워크 경유로 다운로드시킴으로써 제공하도록 구성해도 된다.
또한, 이상 설명한 본 실시 형태의 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램은 컴퓨터로 판독 가능한 ROM, 플래쉬 메모리, 메모리 카드, USB 접속형 플래쉬 메모리 등의 메모리 디바이스에 기록되어 제공해도 된다.
이상 설명한 본 실시 형태에 의하면, 8개의 HW 세마포어를 식별 가능하게 설정하고, 태스크 처리나 인터럽트 핸들러가 사용하는 HW 리소스에 따른 HW 세마포어를 지정하여 취득을 요구한다. 이 때문에, 경합하지 않는 태스크나 인터럽트 처리에 대해서는 병렬로 동작시킬 수 있다.
또한, 먼저 취득되어 있는 HW 세마포어의 취득이 요구된 경우, 요구한 단위 프로세서는 처리를 기다리게 된다. 이 때문에, 병렬 처리 중에 동일한 HW 리소스가 사용되지 않고, 처리의 경합에 의한 데드 록 등이 발생하는 것을 막을 수 있다.
이러한 본 실시 형태의 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법은, 앞서 도 11에서 나타낸 종래예의 구성에 비해 태스크 등이 대기하는 기간이 짧은 것이 분명하다. 대기 시간이 짧고, 병렬 처리의 처리 효율을 높일 수 있다.
본 발명에 의하면, 리소스에 대응시켜 복수의 세마포어를 식별 가능하게 설정할 수 있다. 그리고, 단위 프로세서 중 제1 단위 프로세서가 세마포어 설정 수단으로 설정되어 있는 세마포어의 취득 요구를 한 경우, 세마포어를 식별하여 요구가 제2 단위 프로세서에 의해서 취득되고 있는 세마포어인 취득 중 세마포어를 요구하는 것인지의 여부를 판단한다. 요구가 취득 중 세마포어를 요구하는 것이라고 판단된 경우, 제1 단위 프로세서의 요구를 대기시키는 한편, 요구가 취득 중 세마포어 이외의 세마포어를 요구하는 것이라고 판단된 경우에는 요구된 세마포어의 취득을 허가할 수 있다.
이 때문에, 요구된 세마포어가 이미 취득 중인 경우를 제외하고 제1 단위 프로세서가 대기 상태가 되는 일이 없고, 제2 단위 프로세서와 병행하여 동작할 수 있다.
본 발명은, 단위 프로세서가 대기 상태가 되는 시간을 단축하여 병렬 동작 가능한 기간을 늘릴 수 있다. 이러한 본 발명은 병렬 처리의 처리 효율이 높은 멀티 프로세서 시스템을 제공할 수 있다.
또한, 제1 단위 프로세서에 처리 종료까지 인터럽트 처리가 발생하지 않고, 데드 록 등이 발생할 가능성을 저감할 수 있다.
또한, 태스크 처리, 태스크 처리와 핸들러 처리, 핸들러 처리끼리를 병렬 처리할 수 있다.
또한, 대기 상태의 다른 단위 프로세서가 제1 단위 프로세서에 의한 세마포어의 해방을 주기적으로 검출할 수 있다. 이 때문에, 제1 단위 프로세서의 세마포어 해방을 즉시 검출하여 해방된 세마포어를 취득하고 대기 상태로부터 벗어날 수 있다.
또한, 하드웨어 리소스가 적은 경우에도 많은 세마포어를 제어하는 것이 가능하게 된다.
또한, 본 발명에 의하면 단위 프로세서 중 제1 단위 프로세서가 식별 가능하게 설정되어 있는 세마포어의 취득 요구를 한 경우, 세마포어를 식별하여 요구가 제2 단위 프로세서에 의해서 취득되고 있는 세마포어인 취득 중 세마포어를 요구하는 것인지의 여부를 판단한다. 요구가 취득 중 세마포어를 요구하는 것이라고 판단된 경우, 제1 단위 프로세서의 요구를 대기시키는 한편, 요구가 취득 중 세마포어 이외의 세마포어를 요구하는 것이라고 판단된 경우에는 요구된 세마포어의 취득을 허가할 수 있다.
이 때문에, 요구된 세마포어가 이미 취득 중인 경우를 제외하고 제1 단위 프로세서가 대기 상태가 되는 일이 없고, 제2 단위 프로세서와 병행하여 동작할 수 있다. 본 발명은, 단위 프로세서가 대기 상태가 되는 시간을 단축하여 병렬 동작 가능한 기간을 늘릴 수 있다. 이러한 본 발명은, 병렬 처리의 처리 효율이 높은 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 제공할 수 있다.

Claims (6)

  1. 복수의 단위 프로세서를 구비한 멀티 프로세서 시스템으로서,
    리소스의 경합에 대하여 우선적인 권리를 나타내는 세마포어를 복수의 리소스 각각에 대응시켜 식별 가능하게 설정하는 세마포어 설정 수단과,
    상기 단위 프로세서 중 제1 단위 프로세서가 상기 세마포어 설정 수단으로 설정되어 있는 세마포어의 취득 요구를 한 경우, 해당 요구가 제2 단위 프로세서에 의해서 취득되고 있는 세마포어인 취득 중 세마포어를 요구하는 것인지의 여부를 판단하는 세마포어 요구 판단 수단과,
    상기 세마포어 요구 판단 수단에 의해 상기 요구가 취득 중 세마포어를 요구하는 것이라고 판단된 경우에 제1 단위 프로세서의 요구를 대기시키는 한편, 상기 요구가 취득 중 세마포어 이외의 세마포어를 요구하는 것이라고 판단된 경우에는 요구된 세마포어의 취득을 허가하는 배타 제어 수단을 구비하는 것을 특징으로 하는 멀티 프로세서 시스템.
  2. 청구항 1에 있어서, 세마포어의 취득이 허가된 제1 단위 프로세서에 대한 디스패치에 의한 태스크 스위치, 외부로부터 요구되는 인터럽트 처리, 다른 단위 프로세서에 의해서 요구되는 인터럽트 처리 중의 적어도 1개를 금지하는 인터럽트 금지 수단을 구비하는 것을 특징으로 하는 멀티 프로세서 시스템.
  3. 청구항 1 또는 청구항 2에 있어서, 단위 프로세서가 멀티 프로세서의 내부에서 발생한 태스크 및 외부에서 발생한 핸들러를 처리하기 위해서 세마포어의 취득을 요구하고, 상기 배타 제어 수단은 태스크 처리를 위한 세마포어 취득 요구끼리, 태스크 처리를 위한 세마포어 취득 요구와 핸들러 처리를 위한 세마포어 취득 요구, 핸들러 처리를 위한 세마포어 취득 요구끼리의 사이에서 세마포어의 취득을 대기시키거나 또는 허가하는 것을 특징으로 하는 멀티 프로세서 시스템.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서, 상기 배타 제어 수단이 상기 제1 단위 프로세서에 의해서 요구된 세마포어의 취득을 허가한 경우, 상기 제1 단위 프로세서를 스핀 록하는 것을 특징으로 하는 멀티 프로세서 시스템.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서, 상기 세마포어 설정 수단은 복수의 세마포어의 각각에 식별 정보를 부여함으로써 식별 가능하게 설정함과 함께 복수의 세마포어의 적어도 일부의 세마포어에 공통의 식별 정보를 부여하여 공통의 상기 식별 정보가 부여된 복수의 세마포어의 각각에 관리 영역을 설정하고,
    상기 세마포어 요구 판단 수단은 식별 정보에 따라 제1 단위 프로세서가 취득 요구를 한 세마포어가 제2 단위 프로세서에 의해서 취득되고 있는 취득 중 세마포어인지의 여부를 관리 영역마다 판단하는 것을 특징으로 하는 멀티 프로세서 시스템.
  6. 복수의 단위 프로세서를 구비한 멀티 프로세서 시스템에 적용되는 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램으로서,
    상기 단위 프로세서 중 제1 단위 프로세서가 식별 가능하게 설정되어 있는 세마포어의 취득 요구를 한 경우, 해당 요구가 제2 단위 프로세서에 의해서 취득되고 있는 세마포어인 취득 중 세마포어를 요구하는 것인지의 여부를 판단하는 세마포어 요구 판단 단계와,
    상기 세마포어 요구 판단 단계에서 상기 요구가 취득 중 세마포어를 요구하는 것이라고 판단된 경우에는 제1 단위 프로세서의 요구를 대기시키는 한편, 상기 요구가 취득 중 세마포어 이외의 세마포어를 요구하는 것이라고 판단된 경우에는 요구된 세마포어의 취득을 허가하는 배타 제어 단계와,
    상기 배타 제어 단계에서 세마포어의 취득이 허가된 단위 프로세서를 인터럽트 금지로 설정하는 인터럽트 금지 단계를 포함하는 것을 특징으로 하는 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램.
KR1020077018140A 2006-01-16 2007-01-16 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 KR20070095395A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006007301A JP3976065B2 (ja) 2006-01-16 2006-01-16 マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
JPJP-P-2006-00007301 2006-01-16

Publications (1)

Publication Number Publication Date
KR20070095395A true KR20070095395A (ko) 2007-09-28

Family

ID=38256431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077018140A KR20070095395A (ko) 2006-01-16 2007-01-16 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체

Country Status (6)

Country Link
US (1) US7877753B2 (ko)
EP (1) EP1855204A4 (ko)
JP (1) JP3976065B2 (ko)
KR (1) KR20070095395A (ko)
CN (1) CN101213519A (ko)
WO (1) WO2007081029A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101222800B1 (ko) * 2008-01-18 2013-01-16 쿠카 로보테르 게엠베하 컴퓨터 시스템, 기계용, 특히 산업용 로봇용 제어 장치, 및 산업용 로봇

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4222370B2 (ja) * 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
JP5227604B2 (ja) * 2008-02-14 2013-07-03 株式会社日立製作所 情報処理システム、ファイルの排他制御方法、及び排他制御プログラム
JP2009251802A (ja) * 2008-04-03 2009-10-29 Panasonic Corp マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法
US8346975B2 (en) 2009-03-30 2013-01-01 International Business Machines Corporation Serialized access to an I/O adapter through atomic operation
JP2011107799A (ja) * 2009-11-13 2011-06-02 Renesas Electronics Corp 非対称型マルチプロセッサの割込み制御方法、非対称型マルチプロセッサ
CN102770846B (zh) * 2010-12-21 2016-08-31 松下电器(美国)知识产权公司 虚拟计算机系统控制装置及虚拟计算机系统控制方法
JP5745868B2 (ja) 2011-01-18 2015-07-08 トヨタ自動車株式会社 マルチプロセッサシステム
US9792112B2 (en) 2013-08-28 2017-10-17 Via Technologies, Inc. Propagation of microcode patches to multiple cores in multicore microprocessor
US9507404B2 (en) 2013-08-28 2016-11-29 Via Technologies, Inc. Single core wakeup multi-core synchronization mechanism
US9465432B2 (en) 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
CN104239272B (zh) * 2013-08-28 2019-05-24 威盛电子股份有限公司 微处理器及其操作方法
CN104268105B (zh) * 2014-09-23 2017-06-30 天津国芯科技有限公司 处理器局部总线互斥存取的扩展结构及操作方法
JP2019067289A (ja) * 2017-10-04 2019-04-25 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH036654A (ja) 1989-06-02 1991-01-14 Nippon Telegr & Teleph Corp <Ntt> 相互排除方式
JPH064323A (ja) 1992-06-23 1994-01-14 Mitsubishi Electric Corp マルチプロセッサシステム
JPH08297581A (ja) 1995-02-28 1996-11-12 Nec Corp リアルタイム・オペレーティングシステムにおける割り込み管理方式
KR19990053528A (ko) 1997-12-24 1999-07-15 전주범 실시간 시스템의 다수 자원 공유 방법
US6874049B1 (en) * 2001-02-02 2005-03-29 Cradle Technologies, Inc. Semaphores with interrupt mechanism
US7058948B2 (en) 2001-08-10 2006-06-06 Hewlett-Packard Development Company, L.P. Synchronization objects for multi-computer systems
US6779090B2 (en) 2002-05-21 2004-08-17 International Business Machines Corporation Spinlock for shared memory
US7904907B2 (en) * 2003-12-31 2011-03-08 Intel Corporation Processing architecture having passive threads and active semaphores
TWI256553B (en) * 2004-12-17 2006-06-11 Ind Tech Res Inst Apparatus and method for hardware semaphore
JP4068106B2 (ja) * 2005-08-05 2008-03-26 三菱電機株式会社 リアルタイム組込み簡易モニタプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101222800B1 (ko) * 2008-01-18 2013-01-16 쿠카 로보테르 게엠베하 컴퓨터 시스템, 기계용, 특히 산업용 로봇용 제어 장치, 및 산업용 로봇

Also Published As

Publication number Publication date
CN101213519A (zh) 2008-07-02
WO2007081029A1 (ja) 2007-07-19
JP3976065B2 (ja) 2007-09-12
US20070168592A1 (en) 2007-07-19
JP2007188397A (ja) 2007-07-26
EP1855204A4 (en) 2010-03-03
EP1855204A1 (en) 2007-11-14
US7877753B2 (en) 2011-01-25

Similar Documents

Publication Publication Date Title
KR20070095395A (ko) 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 인터럽트 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN108920267B (zh) 任务处理装置
JP5479416B2 (ja) スレッドレベルの投機実行を拡張するためのプリミティブ
EP3048527B1 (en) Sharing idled processor execution resources
CN107003896B (zh) 具有共享事务处理资源的装置和数据处理方法
US8413163B2 (en) Program control device including per-timeslot switching of thread execution
JP2010140290A (ja) マルチプロセッサシステム及びその排他制御の調停方法
JP4033215B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム
US8869172B2 (en) Method and system method and system for exception-less system calls for event driven programs
JP2014182507A (ja) 計算機及び排他制御方法及び排他制御プログラム
US7702836B2 (en) Parallel processing device and exclusive control method
JP3598282B2 (ja) コンピュータ、その制御方法及びその制御方法を記録した記録媒体
WO2011114495A1 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
KR100506254B1 (ko) 임베디드 시스템의 비특권 모드에서 인터럽트 처리를 위한장치 및 방법
CN114327828B (zh) 一种共享数据的无锁并发访问方法、装置、设备及介质
JP2007172145A (ja) プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム
JP2007172311A (ja) プロセッサ
JPH06223047A (ja) 排他制御方式
CN115774574A (zh) 一种操作系统内核切换方法和装置
JP2003248592A (ja) マルチタスク型構内交換機におけるタスク実行制御方法及びコンピュータにこの方法を実行させるためのプログラムとこのプログラムによりマルチタスク処理を行う構内交換機
JP2000235553A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application