KR20040102335A - 싱글 프로세서용 운영 체제에 의한 병렬 처리 시스템에있어서의 전원 관리 시스템 및 전원 관리 프로그램 - Google Patents

싱글 프로세서용 운영 체제에 의한 병렬 처리 시스템에있어서의 전원 관리 시스템 및 전원 관리 프로그램 Download PDF

Info

Publication number
KR20040102335A
KR20040102335A KR1020040037473A KR20040037473A KR20040102335A KR 20040102335 A KR20040102335 A KR 20040102335A KR 1020040037473 A KR1020040037473 A KR 1020040037473A KR 20040037473 A KR20040037473 A KR 20040037473A KR 20040102335 A KR20040102335 A KR 20040102335A
Authority
KR
South Korea
Prior art keywords
processor
power management
request
function
parallel processing
Prior art date
Application number
KR1020040037473A
Other languages
English (en)
Other versions
KR100708952B1 (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 KR20040102335A publication Critical patent/KR20040102335A/ko
Application granted granted Critical
Publication of KR100708952B1 publication Critical patent/KR100708952B1/ko

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B07SEPARATING SOLIDS FROM SOLIDS; SORTING
    • B07BSEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
    • B07B4/00Separating solids from solids by subjecting their mixture to gas currents
    • B07B4/02Separating solids from solids by subjecting their mixture to gas currents while the mixtures fall
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B07SEPARATING SOLIDS FROM SOLIDS; SORTING
    • B07BSEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
    • B07B1/00Sieving, screening, sifting, or sorting solid materials using networks, gratings, grids, or the like
    • B07B1/28Moving screens not otherwise provided for, e.g. swinging, reciprocating, rocking, tilting or wobbling screens
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B07SEPARATING SOLIDS FROM SOLIDS; SORTING
    • B07BSEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
    • B07B1/00Sieving, screening, sifting, or sorting solid materials using networks, gratings, grids, or the like
    • B07B1/42Drive mechanisms, regulating or controlling devices, or balancing devices, specially adapted for screens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3246Power saving characterised by the action undertaken by software initiated power-off
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

멀티 프로세서상에서 싱글 프로세서용 OS 및 기존의 어플리케이션을 동작시키고, 어플리케이션에 대해 멀티 프로세서에 의한 병렬 처리를 실현하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템상에서, 제 1의 프로세서측의 프로세서가, 어느 하나의 프로세서상의 처리 단위로부터의 프로세서의 기동 또는 정지의 요구를 접수하고, 싱글 프로세서용 OS의 전원 관리 디바이스를 제어함에 의해, 요구된 프로세서의 기동 또는 정지를 행함과 함께, 기동 또는 정지의 요구를 받은 프로세서가, 제 1의 프로세서측으로부터의 통지에 의거하여 기동 또는 정지를 위해 필요한 처리를 행한다.

Description

싱글 프로세서용 운영 체제에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템 및 전원 관리 프로그램{POWER SUPPLY MANAGEMENT SYSTEM IN PARALLEL PROCESSING SYSTEM BY OS FOR SINGLE PROCESSORS AND POWER SUPPLY MANAGEMENT PROGRAM THEREFOR}
발명의 배경
발명의 분야
본 발명은, 멀티 프로세서에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템에 관한 것으로, 특히, 멀티 프로세서상에서 싱글 프로세서용 OS 및 기존의어플리케이션을 동작시키고, 어플리케이션에 대해 멀티 프로세서에 의한 병렬 처리를 실현하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템에 관한 것이다.
종래기술의 설명
휴대 전화 및 휴대 PC를 포함하는 휴대 단말 등의 데이터 처리 장치에서는, 기본적으로 싱글 프로세서상에서 싱글 프로세서용 오퍼레이팅 시스템(이하, 싱글 프로세서용 OS) 및 싱글 프로세서용의 어플리케이션(이하, 단지 어플리케이션이라고 칭한다)을 실행시키고 있는 것이 현재의 상태이다.
이와 같은 상황에 있어서, 멀티 프로세서 베이스에서 상기 어플리케이션 그대로를 사용하고 싶는 경우에는, 상기 싱글 프로세서용 OS 대신에 멀티 프로세서용 OS상에서 어플리케이션을 실행시킬 필요가 있다.
상기한 바와 같은 멀티 프로세서 시스템상에서 멀티 프로세서용 OS와 어플리케이션의 실행을 제어하는 시스템으로서는 예를 들면 특개평3-257652호 공보, 특개평3-113563호 공보에 개시된 종래 기술이 있다.
특개평3-257652호 공보(문헌 1)에서는 복수의 프로세서 엘리먼트로 이루어지는 멀티 프로세서 시스템에 있어서의 각 프로세서 엘리먼트 사이의 인터럽트 제어 방법을 개시한다.
특개평3-113563호 공보(문헌 2)에서는, 멀티 프로세서 시스템에 있어서의 복수의 프로세서에 할당하는 프로세스의 스케줄링 방법을 개시한다.
또한 특개2003-058515호 공보(문헌 3)에서는 복수의 프로세서 엘리먼트로 개별의 프로세스를 실행하기 위한 방법을 개시하고 있다.
그러나, 종래와 같이, 멀티 프로세서용 OS상에서 기존의 어플리케이션을 동작시키는 경우, 어플리케이션은 복수의 프로세서중의 하나밖에 사용하지 않음에도 불구하고, 멀티 프로세서용 OS가 멀티 프로세서용의 서비스를 행하거나, 다른 어플리케이션이 동작하고 있지 않는데도 다른 프로세서와의 배타 처리를 속행하기 때문에, 그 여분의 처리가 오버 헤드로 되어 버리고, 또한 상기 어플리케이션을 멀티 프로세서용으로 개조하는데도, 개조에 상당히 수고와 비용이 걸린다는 문제점이 있다.
특히, 휴대 전화 및 휴대 PC를 포함하는 휴대 단말 등의 소형 데이터 처리 장치에 있어서 멀티 프로세서에 의한 병렬 처리 시스템을 실현하는 경우, 멀티 프로세서용 OS의 처리의 오버 헤드, 어플리케이션의 개조가 큰 장애로 된다.
이와 같은 상황에 있어서, 어플리케이션이 그대로 기존의 싱글 프로세서용 OS상에서 이용되고 있는 경우에는, 기존의 어플리케이션을 그대로 멀티 프로세서상에서 동작시키는 것이 가능한 병렬 처리 시스템의 실현이 요망되고 있다.
또한, 휴대 전화 및 휴대 PC를 포함하는 휴대 단말 등의 소형 데이터 처리 장치에 있어서 멀티 프로세서에 의한 병렬 처리 시스템을 실현하는 경우, 소비 전력을 극력 적게 하기 위해 전원 관리를 행하는 것이 필수로 된다.
종래의 멀티 프로세서용 OS의 병렬 처리 시스템에 있어서의 전원 관리에 있어서는, 각 프로세서에 기능적으로 대칭인 전원 관리를 위한 부(部)를 마련하고 전원 관리를 행하고 있기 때문에, 각 프로세서의 전원 상태를 전 프로세서 사이에서파악하면서 관리할 필요가 있다. 이 때문에, 어느 특정의 프로세서를 기동하거나 또는 정지하는 등의 전원 상태의 변경을 행하는 경우는, 시스템 전체로서 일관성을 유지하기 위해, 프로세서 사이에서 배타적인 제어를 행하는 것이 필요해지고, 제어가 매우 복잡하게 된다.
멀티 프로세서의 각 프로세서상에서 싱글 프로세서용 OS를 동작시키는 시스템에 있어서, 멀티 프로세서용 OS에 의한 병렬 처리 시스템의 복잡한 전원 관리를 적용하는 것은, 싱글 프로세서용 OS 그 자체를 대폭으로 개조할 필요가 있고 수고와 비용이 걸려 버림과 함께, 매우 복잡한 제어가 네크가 되어 멀티 프로세서에 의한 병렬 처리를 행하는 의의도 잃어버려 버린다.
또한, 멀티 프로세서에 있어서의 전원 관리를 행하는 종래 기술로서는, 예를 들면 미국 특허 제5142684호 명세서(문헌 4)에 기재된 기술이 있다. 이 문헌 4에서의 전원 관리에서는, 처리 스피드가 다른 2종류의 프로세서를 가지며, 실행하는 처리에 응하여 프로세서를 선택하고, 또한 선택한 프로세서에 필요한 전원을 제어하여 공급하는 것이다. 이 문헌 4에 의한 기술에서는, 능력이 다른 2종류의 프로세서의 전원 제어를 행하는 것으로, 전용의 하드웨어가 필요함과 함께, 멀티 프로세서의 각 프로세서상에서 싱글 프로세서용 OS를 동작시키는 시스템을 고려하고 있지 않다.
본 발명의 목적은, 멀티 프로세서상에서 싱글 프로세서용 OS와 기존의 어플리케이션을 그것들에 개조를 가하는 일 없이 동작시키고, 그 기존의 어플리케이션에 대해 멀티 프로세서에 의한 병렬 처리를 실현할 수 있도록 한 싱글 프로세서용 OS에 의한 병렬 처리 시스템상에서, 프로세서의 전원 관리를 간단한 제어로 실현하는 것을 가능하게 하는 전원 관리 시스템 및 전원 관리 프로그램을 제공하는 것에 있다.
상기 목적을 달성하기 위한 본 발명은, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 상기 멀티 프로세서를 논리적으로, 제 1의 프로세서측과 제 2의 프로세서측의 2개로 나누고, 상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를, 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 제 1의 프로세서측의 프로세서가, 어느 하나의 프로세서상의 처리 단위로부터의 프로세서의 기동 또는 정지의 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 기동 또는 정지를 행함과 함께, 상기 기동 또는 정지의 요구를 받은 프로세서가, 상기 제 1의 프로세서측으로부터의 통지에 의거하여 상기 기동 또는 정지를 위해 필요한 처리를 행한다.
본 발명의 바람직한 양태에 의하면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서, 상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고, 상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비한다.
본 발명의 다른 바람직한 양태에 의하면, 상기 프로세서의 기동 또는 정지의 요구가, boot 요구 또는 halt 요구이다.
본 발명의 다른 바람직한 양태에 의하면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서, 상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고, 상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고, 상기 프로세서의 기동 또는 정지의 요구가, boot 요구 또는 halt 요구이다.
본 발명의 다른 바람직한 양태에 의하면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서, 상기 제 1의 프로세서측의 상기 싱글 프로세서용 OS에, 상기 싱글 프로세서용 OS의 디바이스로서 탑재되고, 상기 제 2의 프로세서의 전원 상태를 관리함과 함께, 싱글 프로세서용 OS에 미리 구비되어 있는 디바이스 관리를 위한 소정의 요구를, 전원 관리를 위한 요구로서 이용하고 전원 상태의 변경 요구를 행하는 주전원 관리부를 마련하고, 상기 제 2의 프로세서측의 상기 싱글 프로세서용 OS에, 상기 기동 또는 정지를 위해 필요한 처리를행함과 함께, 기동시에 상기 주전원 관리부에 대해 기동 메시지를 송신하는 기능을 갖는 부전원 관리부를 구비한다.
본 발명의 다른 바람직한 양태에 의하면, 상기 주전원 관리부를, 제 2의 프로세서측의 각 프로세서에 대응시켜서 복수 마련한다.
본 발명의 다른 바람직한 양태에 의하면, 디바이스 관리를 위한 소정의 요구인 probe 또는 remove 요구를, 상기 프로세서의 기동 또는 정지 요구로서 바꾸어 읽는다.
본 발명의 다른 바람직한 양태에 의하면, 상기 주전원 관리부를, 제 2의 프로세서측의 각 프로세서에 대응시켜서 복수 마련하고, 디바이스 관리를 위한 소정의 요구인 probe 또는 remove 요구를, 상기 프로세서의 기동 또는 정지 요구로서 바꾸어 읽는다.
본 발명의 다른 바람직한 양태에 의하면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서, 상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고, 상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고, 상기 제 1 프로세서측의 프로세서 및 상기 제 2 프로세서측의 프로세서상의 처리 단위 사이에 있어서의, 동기적인 처리 및 데이터 수수를 가능하게 하는 프로세스간 통신부를, 상기제 1 프로세서측의 프로세서 및 상기 제 2 프로세서측의 프로세서에 구비하고, 상기 프로세스간 통신부에 의해, 상기 주전원 관리부와 상기 부전원 관리부 사이에 있어서의, 전원 관리를 위한 동기적인 처리를 행한다.
본 발명의 다른 바람직한 양태에 의하면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서, 상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고, 상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고, 상기 주전원 관리부 및 상기 부전원 관리부를 모듈화하여 조립한다.
본 발명의 다른 바람직한 양태에 의하면, 상기 기동 또는 정지의 요구가 이루어진 상기 프로세서가, 기동 도중 상태 또는 정지 도중 상태인 경우에, 상기 도중 상태가 확정될 때까지 상기 요구를 대기시킨다.
본 발명의 다른 바람직한 양태에 의하면, 상기 기동 또는 정지의 요구가 이루어진 상기 프로세서가, 기동 도중 상태 또는 정지 도중 상태인 경우에, 상기 요구를 무시한다.
본 발명의 다른 바람직한 양태에 의하면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서, 상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고, 상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고, 상기 프로세서의 기동 요구에 있어서, 요구를 받은 상기 주전원 관리부가, 요구된 프로세서를 기동함과 함께, 기동된 프로세서의 상기 부전원 관리부로부터의 기동 완료의 통지를 수리함에 의해, 상기 기동된 프로세서의 전원 상태를 기동 상태로 변경한다.
본 발명의 다른 바람직한 양태에 의하면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서, 상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고, 상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고, 상기 프로세서의 정지 요구에 있어서, 요구를 받은 상기 주전원 관리부가, 요구된 프로세서의 상기 부전원 관리부에 대해, 정지에 필요한 처리를 요구하고, 상기 프로세서로부터의 처리 완료의 통지를 수리함에 의해, 상기 요구된 프로세서를 정지시키고, 상기 기동된 프로세서의 전원 상태를 정지 상태로 변경한다.
본 발명의 다른 바람직한 양태에 의하면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서, 상기 제 1의 프로세서측에, 각프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고, 상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고, 모든 프로세서의 정지 요구에 있어서, 요구를 받은 상기 주전원 관리부가, 다른 프로세서의 상기 부전원 관리부에 대해, 정지에 필요한 처리를 요구하고, 상기 다른 프로세서로부터의 처리 완료의 통지를 수리함에 의해, 상기 다른 프로세서를 정지시키고, 그 후, 상기 싱글 프로세서용 OS의 디바이스를 제어하고 자신 프로세서를 정지시킨다.
본 발명의 다른 바람직한 양태에 의하면, 프로세서의 기동 또는 정지에 더하여, 프로세서의 휴지(休止) 또는 복귀의 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 휴지 또는 복귀를 행함과 함께, 상기 휴지 또는 복귀의 요구를 받은 프로세서가, 상기 제 1의 프로세서측으로부터의 통지에 의거하여 상기 휴지 또는 복귀를 위해 필요한 처리를 행한다.
본 발명의 다른 바람직한 양태에 의하면, 프로세서의 기동 또는 정지에 더하여, 프로세서의 전원 전압 또는 클록 주파수의 변경 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 전원 전압 또는 클록 주파수의 변경을 행함과 함께, 상기 전원 전압 또는 클록 주파수의 변경을 받은 프로세서가, 상기 제 1의 프로세서측으로부터의 통지에 의거하여 상기 전원 전압 또는 클록 주파수의 변경을 위해 필요한 처리를 행한다.
다른 본 발명은, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램으로서, 하기 기능을 갖는다. 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 상기 멀티 프로세서를 논리적으로, 제 1의 프로세서측과 제 2의 프로세서측의 2개로 나누고, 상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를, 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 제 1의 프로세서측의 프로세서가, 어느 하나의 프로세서상의 처리 단위로부터의 프로세서의 기동 또는 정지의 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 기동 또는 정지를 행하는 기능을 실행하고, 상기 기동 또는 정지의 요구를 받은 프로세서가, 상기 하나의 프로세서로부터의 통지에 의거하여 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능을 실행한다.
본 발명의 다른 목적, 특징 및 이점은 하기에 상세히 설명될 것이다.
도 1은 본 발명을 적용하는 제 1 예의 병렬 처리 시스템의 구성을 도시한 블록도.
도 2는 제 1 예의 병렬 처리 시스템의 병렬 처리부에 의한 병렬 처리 기동의 동작을 설명하기 위한 도면.
도 3은 병렬 처리 시스템의 병렬 처리부에 의한 병렬 처리 기동에 있어서 요구를 행하기 위한 메시지의 구성을 도시한 도면.
도 4는 제 1 예의 병렬 처리 시스템에 있어서의 제 2 프로세서측의 태스크로부터의 파일 액세스 요구에 대한 OS 서비스부의 동작을 설명하는 도면.
도 5는 제 1 프로세서측의 순차 태스크로부터의 파일 액세스 요구에 대한 동작을 설명하는 도면.
도 6은 제 1 예의 병렬 처리 시스템에 있어서의 제어 처리 중계부의 내부 구성을 도시한 블록도.
도 7은 제 1 예의 병렬 처리 시스템에 있어서의 제어 처리 중계부의 처리 동작을 설명하는 도면.
도 8은 제 1 예의 병렬 처리 시스템에 있어서의 대리부에 의한 시그널 통지 처리 동작을 설명하는 도면.
도 9는 제 1 예의 병렬 처리 시스템에 있어서의 제 2 프로세서측에 있어서의 태스크 상호의 연휴 동작을 실현하기 위한 구성을 도시한 블록도.
도 10은 제 1 예의 병렬 처리 시스템에 있어서의 제 2 프로세서측에 있어서의 태스크 상호의 연휴 동작을 설명하는 도면.
도 11은 병렬 처리 시스템에 있어서의 적용예로서의 멀티 프로세서의 휴대 단말에 있어서 어플리케이션을 동작시키는 경우의 예를 설명하는 도면.
도 12는 본 발명을 적용하는 제 2 예의 병렬 처리 시스템의 구성을 도시한 블록도.
도 13은 제 2 예의 병렬 처리 시스템에 있어서의 프로세스의 동기적인 병렬 처리 기동의 동작을 설명하기 위한 도면.
도 14는 제 2 예의 병렬 처리 시스템에 있어서의 프로세스의 비동기적인 병렬 처리 기동의 동작을 설명하기 위한 도면.
도 15는 제 2 예의 병렬 처리 시스템에 있어서의 제어 처리 중계부의 내부 구성을 도시한 블록도.
도 16은 제 2 예의 병렬 처리 시스템에 있어서의 제어 처리 중계부의 처리 동작을 설명하는 도면.
도 17은 본 발명을 적용하는 제 3 예의 병렬 처리 시스템의 구성을 도시한블록도.
도 18은 제 3 예의 병렬 처리 시스템에 있어서, 프로세서 내의 프로세스가 프로세스간 통신부에 의한 세마포어 방식을 이용하여 세마포어 up 또는 down을 행하는 경우의 동작을 설명하기 위한 도면.
도 19는 제 3 예의 병렬 처리 시스템에 있어서, 프로세서 내의 프로세스가 프로세스간 통신부에 의한 세마포어 방식을 이용하여 세마포어 down을 행하는 경우의 동작을 설명하기 위한 도면.
도 20은제 3 예의 병렬 처리 시스템에 있어서, 동일 프로세서 내의 프로세스간에서 프로세스간 통신부에 의한 세마포어 방식을 이용하여 세마포어 up을 행하는 경우의 동작을 설명하기 위한 도면.
도 21은 제 3 예의 병렬 처리 시스템에 있어서, 다른 프로세서 상호의 프로세스간에서 프로세스간 통신부에 의한 세마포어 방식을 이용하여 세마포어 up을 행하는 경우의 동작을 설명하기 위한 도면.
도 22는 제 3 예의 병렬 처리 시스템에 있어서, 프로세서 내의 프로세스가 프로세스간 통신부에 의한 메시지 큐 방식을 이용하여 메시지의 수신을 행하는 경우의 동작을 설명하기 위한 도면.
도 23은 제 3 예의 병렬 처리 시스템에 있어서, 프로세서 내의 프로세스가 프로세스간 통신부에 의한 메시지 큐 방식을 이용하여 메시지의 수신을 행하는 경우의 동작을 설명하기 위한 도면.
도 24는 제 3 예의 병렬 처리 시스템에 있어서, 프로세서 내의 프로세스가프로세스간 통신부에 의한 메시지 큐 방식을 이용하여 메시지의 송신을 행하는 경우의 동작을 설명하기 위한 도면.
도 25는 제 3 예의 병렬 처리 시스템에 있어서, 동일 프로세서 내의 프로세스간에서 프로세스간 통신부에 의한 메시지 큐 방식을 이용하여 메시지의 송수신을 행하는 경우의 동작을 설명하기 위한 도면.
도 26은 제 3 예의 병렬 처리 시스템에 있어서, 다른 프로세서 상호의 프로세스간에서 프로세스간 통신부에 의한 메시지 큐 방식을 이용하여 메시지의 송수신을 행하는 경우의 동작을 설명하기 위한 도면.
도 27은 제 3 예의 병렬 처리 시스템에 있어서, 세마포어 방식 및 메시지 큐 방식을 이용한 프로세스간 통신의 구체적인 예를 설명하기 위한 도면.
도 28은 도 27의 구체적인 예에 있어서의 브라우저 화면의 표시 내용을 설명하는 도면.
도 29는 본 발명을 적용하는 제 4 예의 병렬 처리 시스템의 구성을 도시한 블록도.
도 30은 본 발명의 제 1의 실시예에 의한 병렬 처리 시스템의 전원 관리 시스템의 구성을 도시한 블록도.
도 31은 본 발명의 제 1의 실시예에 있어서의 프로세서를 boot하는 경우의 동작을 설명하기 위한 도면.
도 32는 본 발명의 제 1의 실시예에 있어서의 프로세서를 halt하는 경우의 동작을 설명하기 위한 도면.
도 33은 본 발명의 제 1의 실시예에 있어서 모든 프로세서의 halt를 행하는 경우의 동작을 설명하기 위한 도면.
도 34는 3개의 프로세서로 구성되는 병렬 처리 시스템에 제 1의 실시예에 의한 전원 관리 시스템을 적용한 경우에 있어서의 전원 제어의 상태 천이를 도시한 도면.
도 35는 본 발명의 제 2의 실시예에 의한 병렬 처리 시스템의 전원 관리 시스템의 구성을 도시한 블록도.
도 36은 본 발명의 제 2의 실시예에 있어서의 프로세서를 기동하는 경우의 동작을 설명하기 위한 도면.
도 37은 본 발명의 제 2의 실시예에 있어서의 프로세서를 정지하는 경우의 동작을 설명하기 위한 도면.
도 38은 본 발명의 제 2의 실시예에 있어서의 프로세서 자신이 정지하는 경우의 동작을 설명하기 위한 도면.
본 발명의 양호한 실시예가 첨부된 도면을 참조로 상세히 설명될 것이다. 하기의 설명에 있어서, 다수의 특정 상세는 본 발명의 전반적인 이해를 돕기 위한 것이다. 그러나, 이들 특정 상세 없이도 본 발명이 실행될 수 있음이 당업자에게는 명백할 것이다. 다른 예에서, 널리 공지된 구조는 본 발명의 불필요한 모호성을 제거하기 위해 상세히 도시되지 않는다.
우선, 본 발명의 전원 관리 시스템을 적용하는 병렬 처리 시스템에 관해 설명한다. 이하에서 설명하는병렬 처리 시스템에서는, 종래의 싱글 프로세서용 OS에 대해 일체의 개조를 가하는 일 없이, 복수의 프로세서에의 처리를 의뢰하는 기구나 복수의 프로세서에의 OS 서비스의 제공에 있어서의 크리티컬 섹션의 보호 기구를 부가함에 의해, 멀티 프로세서상에서의 병렬 처리를 실행한다.
도 1은 제 1 예로서의 병렬 처리 시스템의 구성을 도시한 블록도이다.
도 1에 도시한 바와 같이, 제 1 예의 병렬 처리 시스템은, 시스템 버스(91)로 접속되는 복수의 프로세서(CPU)(P0 내지 Pn)(n은 1 이상의 정수)로 이루어지는 멀티 프로세서를, 논리적으로 제 1 프로세서측(10)과 제 2 프로세서측(20)의 2세트로 나누고, 제 1 프로세서측(10)의 프로세서(P0)상에서 동작하는 싱글 프로세서용 OS(30)를 실장하고, 또한 제 1 프로세서측(10)의 프로세서(P0) 및 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)의 각각에, 병렬 처리를 행하기 위한 병렬 처리부(40P0 내지 40Pn) 및 OS 서비스를 처리하기 위한 OS 서비스부(50P0 내지 50Pn)를 실장하고 구성된다. 또한, 시스템 버스(91)에는, 각 프로세서(P0 내지 Pn)가 공유하는 공유 메모리로서의 주기억 장치(92) 및 디스크 장치 등 외부 기억 장치(93)가 접속된다.
또한 상기 멀티 프로세서에는 동일 종류의 프로세서를 복수 구비하는 구성뿐만 아니라 DSP나 시큐어러티 엔진 등의 이종의 처리 장치를 복수 구비하는 구성도 포함한다.
또한, 제 1 프로세서측(10)과 제 2 프로세서측(20) 사이에서, 제어 신호나데이터의 교환을 행하기 위한 제어 처리 중계부(60)가 독자적으로 마련되고, 또한 제 1 프로세서측(10)에는, 싱글 프로세서용 OS(30)가 제 2 프로세서측(20)에서 실행되는 태스크와 통신하기 위한 대리부(70)가 마련되어 있다.
상기 제 1 프로세서측(10)의 프로세서는, 반드시 단일일 필요는 없고 복수의 프로세서로 되어 있어서도 좋다. 예를 들면, 제 1 프로세서측(10)을 2개의 프로세서로 하여, 각각에 다른 싱글 프로세서용 OS를 실장하는 구성으로 하는 것도 가능하다.
또한, 제 1 프로세서측(10)의 프로세서로 기동되는 싱글 프로세서용 OS(30)로서는, 기존의 OS가 이용된다. 예를 들면, 리얼타임 OS나 UNIX(R) OS가 그대로 이용된다.
본 명세서에서 사용하는 태스크란, UNIX(R) OS에서의 프로세스나 스레드, 리얼타임 OS에 있어서의 태스크 등의 병렬 처리를 행하기 위한 처리 단위를 의미하고 있다.
본 병렬 처리 시스템에서는, 제 1 프로세서측(10)의 싱글 프로세서용 OS상에서 어플리케이션이 동작하고, 그 어플리케이션의 처리 단위중, 병렬화를 행할 수 없는 태스크(순차 태스크)를 제 1 프로세서측(10)의 프로세서(P0)로 처리하고, 어플리케이션 내에서 병렬화를 행할 수 있는 태스크를 제 2 프로세서측(20)에서 새로운 태스크로서 생성하여 병렬 처리를 시킨다.
병렬 처리부(40P0) 및 병렬 처리부(40P1 내지 40Pn)는, 태스크의 생성, 기동, 정지, 종료, 삭제, 및 그 밖의 태스크에 관한 제어를 행하는 기능을 갖는다.여기서는, 제 1 프로세서측(10)의 병렬 처리부(40P0)로부터 제 2 프로세서측(20)의 각 프로세서(P1 내지 Pn)의 병렬 처리부(40P1 내지 40Pn)에 대해, 제어 처리 중계부(60)를 통하여 태스크의 생성, 기동, 정지, 종료, 삭제 등의 처리를 행한다. 또한, 시그널 통지에 관해서는, 병렬 처리부(40P0)와 병렬 처리부(40P1 내지 40Pn)의 쌍방향으로부터 처리된다.
OS 서비스부(50P0) 및 OS 서비스부(50P1 내지 50Pn)는, 외부 기기에의 각종의 액세스와 제어를 행하기 위한 인터페이스, 태스크 끼리가 공유하는 리소스에의 각종 액세스와 제어를 행하기 위한 인터페이스로서 기능을 갖는다.
제어 처리 중계부(60)는, 제 1 프로세서측(10)과 제 2 프로세서측(20) 사이에서, 제어 신호나 데이터의 교환을 행하기 위한 부로서, 복수의 프로세서로 병렬 처리되는 복수의 태스크 사이의 제어에 사용된다.
대리부(70)는, 제 2 프로세서측(20)에서 실행되는 태스크(일부 또는 전부)에 대응되고, 제 2 프로세서측(20)의 태스크와 싱글 프로세서용 OS(30) 사이에 있어서의 시그널 통지(태스크를 제어하기 위한 각종 제어 신호의 통지)를 위해 실장되어 있다.
이하, 상기한 바와 같이 구성된 제 1 예의 병렬 처리 시스템의 동작에 관해, 도면을 참조하여 상세하게 설명한다.
여기서는, 제 1 프로세서측(10)의 싱글 프로세서용 OS상에서 어플리케이션이 동작하고, 그 어플리케이션의 처리 단위중, 제 1 프로세서측(10)의 프로세서(P0)로 처리하는 처리 단위를 순차 태스크(sequential task; ST)라고 하고, 어플리케이션내에서 병렬화를 행할 수 있는 태스크로서, 제 2 프로세서측(20)에 대해 태스크(PT-1 내지 PT-n)로서 병렬 처리를 시키는 처리 단위를 병렬화 태스크(PT)라고 한다.
우선, 병렬 처리부(40P0, 40P1 내지 40Pn)에 의한 병렬 처리 기동의 동작에 관해, 도 2와 도 3을 이용하여 설명한다.
(1) 제 1 프로세서측(10)의 병렬화 태스크(PT)를, 제 2 프로세서측(20)의 태스크(PT-1 내지 PT-n)의 어느 하나로서 기동시키는 경우, 병렬 처리부(40P0)에 대해, 제 2 프로세서측(20)에서 기동시키는 처리 단위로서의 태스크(PT-1 내지 PT-n)의 어느 하나의 생성을 요구한다.
병렬 처리부(40P0), 병렬 처리부(40P1 내지 40Pn)로부터의 요구(command)로서는, 예를 들면, 이하와 같은 것이 있다. create(태스크의 생성), delete(태스크의 삭제), activate(태스크의 기동), terminate(태스크의 종료), signal(시그널 요구) 등이 있다. 이 중, create(태스크의 생성), delete(태스크의 삭제), activate(태스크의 기동), terminate(태스크의 종료)에 관해서는, 제 1 프로세서측(10)으로부터 제 2 프로세서측(20)에 보내지는 요구이고, signal(시그널 요구)은, 제 1 프로세서측(10)과 제 2 프로세서측(20) 사이에서 쌍방향으로부터 보내진다.
이 요구는, 도 3에 도시한 바와 같은 메시지에 의해 행하여진다. 즉, 요구한 내용(이 경우는, 태스크 생성)을 나타내는 요구 내용(201), 태스크를 처리시키는 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)를 지정하는 프로세서 번호(202), 새롭게 생성하는 태스크(PT-1 내지 PT-n)를 나타내는 태스크 번호, 태스크 생성을 요구하는 병렬화 태스크(PT)를 나타내는 원(元)태스크 번호로 이루어지는 메시지를 병렬 처리부(40P0)에 대해 송신함으로써, 태스크 생성의 요구를 행한다. 또한, 태스크 생성 이외의 요구에 대해서도, 도 3에 도시한 메시지에 따른 요구가 보내진다.
(2) 이에 대해, 병렬 처리부(40P0)는, 생성하는 태스크(PT-1 내지 PT-n)에 대응하는 대리부(70)를 기동한다. 이 대리부(70)는, 제 1 프로세서측(10)과 제 2 프로세서측(20)에서 태스크의 관리 내용을 공유하지 않도록 하기 위해, 또한 배타 처리를 제 1 프로세서측(10)에서 완결시키기 위해 기동된다. 이 때, 대리부(70)에는 태스크(PT-1 내지 PT-n)의 태스크 번호가 보존된다.
(3) 또한, 병렬 처리부(40P0)는, 상술한 태스크 번호 및 요구 내용(제 2 프로세서측(20)의 프로세서(P1 내지 Pn)에의 태스크 생성)이라는 태스크 생성에 필요한 데이터와, 「병렬 처리」를 지정하는 통신 이유 정보를 제어 처리 중계부(60)에 설정한다.
이로써, 제어 처리 중계부(60)에 대해, 후술하는 주기억 장치(92)(공유 메모리)에의 통신 내용의 설정과 프로세서 사이 인터럽트를 위한 처리가 행하여진다.
여기서, 통신 이유 정보란, 제어 처리 중계부(60)에 인도한 데이터의 수취처(취득처)를 나타내는 것이고, 상기한 경우, 지정된 프로세서(P1 내지 Pn)의 병렬 처리부(40P1 내지 40Pn)에 의해, 제어 처리 중계부(60)에 설정된 데이터가 취득되는 것으로 된다.
(4) 제 2 프로세서측(20)의 지정된 프로세서(P1 내지 Pn)상의 병렬처리부(40P1 내지 40Pn)는, 제어 처리 중계부(60)로부터 통신 이유 정보가 「병렬 처리」인 요구 내용(태스크 제어에 필요한 데이터)을 취득한다.
(5) 그리고, 병렬 처리부(40P1 내지 40Pn)는, 취득한 요구 내용에 의거하여 프로세서(P1 내지 Pn)상에서 태스크(PT-1 내지 PT-n)를 생성·기동한다.
이상에 의해, 제 1 프로세서측(10)의 싱글 프로세서용 OS상에서 동작하는 어플리케이션의 처리 단위인 병렬화 태스크(PT)의 처리 단위를, 제 2 프로세서측(20)상에 태스크(PT-1 내지 PT-n)로서 병렬 처리를 시키는 것이 가능해진다.
또한, 상기한 동작에서는, 병렬 처리부(40P1 내지 40Pn)는, 취득한 요구 내용에 의거하여 프로세서(P1 내지 Pn)상에서 태스크(PT-1 내지 PT-n)를 생성하고 기동하는 경우에 관해 기술하였지만, 제 1 프로세서측(10)의 병렬화 태스크(PT)를, 미리 제 2 프로세서측(20)의 태스크(PT-1 내지 PT-n)의 어느 하나로서 생성하여 두고, 병렬 처리부(40P1 내지 40Pn)가, 취득한 요구 내용에 의거하여 프로세서(P1 내지 Pn)상에서 태스크(PT-1 내지 PT-n)를 기동하도록 할 수도 있다.
다음에, OS 서비스부(50P0, 50P1 내지 50Pn)에 의한 OS 서비스 처리 동작에 관해 설명한다.
OS 서비스부(50P0, 50P1 내지 50Pn)는, 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)상에 생성한 태스크(PT-1 내지 PT-n)로부터의 요구에 의거하여, 싱글 프로세서용 OS(30)에 의한 서비스인, 외부 기기에의 각종 액세스와 제어, 다른 태스크와 공용하는 리소스에의 각종 액세스와 제어에 관한 서비스를 제공하기 위한 기능을 갖는다. 싱글 프로세서용 OS(30)에 의한 서비스에는, 통상의 OS가 제공하는 시스템 콜이나 API에 상당하는 것이 주된 대상으로 된다.
제 2 프로세서측(20)의 프로세서(P1 내지 Pn)상의 태스크(PT-1 내지 PT-n)로부터의 파일 액세스(예를 들면, 외부 기억 장치(93)상의 파일에 대한 각종의 처리) 요구에 대한 OS 서비스부(50P0, 50P1 내지 50Pn)의 동작을 도 4를 참조하여 설명한다.
여기서, 파일 액세스에는, open(파일의 오픈), close(파일의 클로즈), read(파일이 판독), write(파일이 기록), seek(파일 기록 위치의 이동), remove(파일의 삭제), rename(파일의 명칭 변경) 등의 처리가 포함된다.
(1) 제 2 프로세서측(20)의 태스크(PT-1 내지 PT-n)에 있어서 파일 액세스 처리의 필요가 발생하면, 태스크(PT-1 내지 PT-n)가, 제 2 프로세서측(20)의 OS 서비스부(50P1 내지 50Pn)에 대해 파일 액세스를 위한 서비스를 요구한다. 이 파일 액세스의 서비스 요구에 있어서는, 예를 들면, OS 서비스부(50P1 내지 50Pn)의 파일에의 기록 처리로서 정의된 write 함수나 파일의 판독 처리로서 정의된 read 함수 등이 호출된다.
여기서, OS 서비스부(50P1 내지 50Pn)는, 제 1 프로세서측(10)의 처리(싱글 프로세서용 OS(30)에 의한 파일 액세스 처리)에 필요한 데이터를 설정한다. 여기서, 필요한 데이터에는, 요구 내용(예를 들면, write request), 액세스하는 파일의 기술자(file descriptor), 문자렬에의 포인터, 문자렬의 길이, 태스크 번호 등의 정보가 포함된다.
(2) OS 서비스부(50P1 내지 50Pn)는, 통신 이유 정보를 「OS 서비스」로 하고, 요구 내용을 포함하는 필요한 데이터를 제어 처리 중계부(60)에 대해 설정함으로써, 제 1 프로세서측(10)에 대해 파일 액세스 요구를 발행한다.
그 후, 파일 액세스의 서비스 요구를 행한 태스크(PT-1 내지 PT-n)는, 대기 상태로 되고, 대응하는 프로세서(P1 내지 Pn)에서는 병렬 처리부(40P1 내지 40Pn)에 의해 다른 태스크로 처리가 전환된다(태스크의 switch : 스위치).
(3) 제 1 프로세서측(10)의 OS 서비스부(50P0)는, 제어 처리 중계부(60)로부터 「OS 서비스」라는 통신 이유 정보의 상기 파일 액세스 요구를 취득한다.
(4) 제 1 프로세서측(10)의 OS 서비스부(50P0)는, 취득한 요구 내용에 따라 싱글 프로세서용 OS(30)에 대해 파일 액세스를 요구한다.
(5) 이로써, 싱글 프로세서용 OS(30)는, 요구에 의거하여 외부 기억 장치(93) 등에 대한 파일 액세스(write나 read 등)를 행한다. 이 파일 액세스 처리는, 싱글 프로세서용 OS(30)가 본래 구비하고 있는 파일 액세스 서비스를 그대로 이용하여 실행된다.
(6) 요구된 파일 액세스 처리가 종료되면, 싱글 프로세서용 OS(30)는, 제 1 프로세서측(10)의 OS 서비스부(50P0)에 파일 액세스 요구에 대한 반려치를 반려하고, 처리를 되돌린다.
(7) 또한, OS 서비스부(50P0)는, 그 반려치와 파일 액세스 요구를 행한 태스크(PT-1 내지 PT-n)의 태스크 번호를 포함하는 데이터인 통신 내용을, 「OS 서비스」를 통신 이유 정보로서 제어 처리 중계부(60)에 설정함에 의해, 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)에 대해 파일 액세스의 완료를 통지한다.
(8) 대응하는 프로세서(P1 내지 Pn)의 OS 서비스부(50P1 내지 50Pn)는, 제어 처리 중계부(60)로부터 상기 설정된 반려치과 완료 통지를 수취한다.
(9) 그리고, 제 2 프로세서측(20)의 OS 서비스부(50P1 내지 50Pn)는, 병렬 처리부(40P1 내지 40Pn)에 대해 파일 액세스 요구를 행한 태스크(PT-1 내지 PT-n)를 기동하도록 의뢰한다.
이로써, 대기 상태로 되어 있던 태스크(PT-1 내지 PT-n)로 처리가 전환된다.
(10) 병렬 처리부(40P1 내지 40Pn)로부터 기동된 태스크(PT-1 내지 PT-n)는, OS 서비스부(50P1 내지 50Pn)로부터 파일 액세스의 반려치를 수취하고, 처리를 계속한다.
이상에 의해, 제 2 프로세서측(20)에 개별적으로 파일 액세스를 위한 처리부를 마련한 일 없이, 제 2 프로세서측(20)에 있어서의 태스크(PT-1 내지 PT-n)는 싱글 프로세서용 OS(30)의 서비스를 그대로 이용하여 파일 액세스가 가능해진다. 또한, 이로써, 파일 액세스를 위한 배타 처리에 관해서는, 제 1 프로세서측(10)에서 완결되기 때문에, 멀티 프로세서용 OS상에서 어플리케이션을 동작시키는 경우와 같은 배타 처리에 의한 오버 헤드가 발생하는 일 없이, 병렬 처리를 실현할 수 있다.
또한, 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)상의 태스크(PT-1 내지 PT-n)가, 예를 들면 외부 기억 장치(93)상의 리드온리(read only)의 데이터를 파일 액세스하는 경우에는, 상기한 바와 같이 OS 서비스부(50P1 내지 50Pn)에 의한 처리를 경유하는 일 없이, 각 프로세서(P1 내지 Pn)로부터 외부 기억 장치(93)에 직접 액세스하도록 하여도 좋다.
여기서, 제 1 프로세서측(10)의 프로세서(P0)상의 순차 태스크(ST)로부터의 파일 액세스 요구에 관해서는, OS 서비스부에 의하는 일 없이, 직접 싱글 프로세서용 OS(30)에 의해 처리가 이루어진다. 이하, 도 5를 참조하여 설명한다.
(1) 프로세서(P0)상의 순차 태스크(ST)는, 싱글 프로세서용 OS(30)에 대해 파일 액세스를 요구한다.
(2) 이로써, 싱글 프로세서용 OS(30)는, 요구에 의거하여 외부 기억 장치(93) 등에 대한 파일 액세스(write나 read 등)를 행한다. 이 파일 액세스 처리는, 싱글 프로세서용 OS(30)가 본래 구비하고 있는 파일 액세스 서비스를 그대로 이용하여 실행된다.
(3) 파일 액세스 처리가 종료되면, 싱글 프로세서용 OS(30)는, 순차 태스크(ST)에 대해 파일 액세스 요구에 대한 반려치를 반려하고, 처리를 되돌린다.
순차 태스크(ST)로부터의 OS 서비스 요구에 대해서는 배타 제어 등의 필요가 없기 때문에, 쓸데없은 오버 헤드가 발생하지 않는다.
제어 처리 중계부(60)에 의한 처리 동작에 관해, 도 6 및 도 7을 참조하여 설명한다.
우선, 제어 처리 중계부(60)의 구성을 도 6에 도시한다. 도시한 바와 같이, 제어 처리 중계부(60)는, 각 프로세서(P0 내지 Pn)에 대응한 인터럽트 제어 장치(61P0 내지 61Pn)와, 각 프로세서(P0 내지 Pn)에 대응한 통신 영역(62P0 내지 62Pn)을 구비하고 구성된다. 여기서, 통신 영역(62P0 내지 62Pn)은, 주기억 장치(92) 내에 확보된다.
또한, 인터럽트 장치(61P0 내지 61Pn)는, 다른 프로세서에 대해 인터럽트를 지시하는 인터럽트 지시부(61a), 인터럽트의 지시에 의해 인터럽트가 있은 취지의 정보를 보존하는 인터럽트 상태 유지부(61b), 인터럽트를 클리어하는 인터럽트 취소부(61c)에 의해 구성된다.
또한, 통신 영역(62P0 내지 62Pn)은, 통신원의 프로세서로부터의 통신 이유 정보를 보존하는 통신 이유 보존 영역(62a), 통신하기 위한 통신 데이터를 보존하는 통신 데이터 보존 영역(62b), 통신을 확보하기 위해 통신 영역에 대해 로크를 걸기 위한 배타 제어 영역(62c)에 의해 구성된다.
여기서, 통신 데이터 보존 영역(62b)에는, 통신하는 통신 데이터(요구 내용을 포함하는 필요 데이터)가 격납되는 주기억 장치(92)에의 포인터가 격납되는 것으로 된다.
제 1 프로세서측(10)의 병렬 처리부(40P0)로부터 제 2 프로세서측(20)의 프로세서(P1)에의 통신 처리를 예로 들고, 도 7을 참조하여 그 동작을 설명한다.
(1) 병렬 처리부(40P0)는, 프로세서(P1)용의 통신 영역(62P1)의 배타 제어 영역(62c)에 로크를 건다. 구체적으로는, 배타 제어 영역(62c)에 격납된다 lock 변수를 로크 상태로 함에 의해, 해당 프로세서(P1)용의 통신 영역(62P1)이 다른 프로세서에서 사용되는 것을 배제한다.
다른 프로세서에 의해 이미 로크되어 있는 경우에는, 로크가 해제되는 것을 기다린다.
(2) 통신 영역(62P1)의 로크가 취득할 수 있었던 경우, 병렬 처리부(40P0)는, 통신 이유 정보와 통신 데이터(요구 내용을 포함하는 필요 데이터)를, 통신 영역(62P1)의 통신 이유 보존 영역(62a)과 통신 데이터 보존 영역(62b)의 각각에 격납한다.
격납된 통신 이유 정보로서는, 상술한 바와 같이 태스크 생성을 위한 통신 처리라면, 「병렬 처리」를 나타내는 정보(예를 들면, 병렬 처리에 대응하여 미리 정해져 있는 수치 등의 데이터)가 격납된다.
(3) 병렬 처리부(40P0)는, 자신의 인터럽트 제어 장치(61P0)의 인터럽트 지시부(61a)에 대해, 프로세서(P1)에의 인터럽트를 지시한다.
(4) 인터럽트 제어 장치(61P0)의 인터럽트 지시부(61a)는, 프로세서(P1)에 대응하는 인터럽트 제어 장치(61P1)의 인터럽트 상태 유지부(61b)에, 인터럽트를 나타내는 정보를 세트한다. 이로써, 프로세서(P1)가 인터럽트 상태로 된다.
(5) 프로세서(P1)의 병렬 처리부(40P1)는, 제어 처리 중계부(60)의 인터럽트 제어 장치(61P1)의 인터럽트 상태 유지부(61b)의 상태로부터, 인터럽트가 세트된 것을 판별한다.
(6) 프로세서(P1)의 병렬 처리부(40P1)는, 제어 처리 중계부(60)의 자신의 인터럽트 상태 유지부(61b)의 인터럽트 정보를 클리어함에 의해, 자신의 인터럽트 상태를 해제한다.
(7) 프로세서(P1)의 병렬 처리부(40P1)는, 또한, 제어 처리 중계부(60)의 자신의 통신 영역(62P1)의 통신 이유 보존 영역(62a)과 통신 데이터 보존 영역(62b)으로부터, 통신 이유 정보와 통신 데이터(요구 내용을 포함하는 필요 데이터)를 각각 취득한다.
(8) 프로세서(P1)의 병렬 처리부(40P1)는, 다음의 통신을 수리할 수 있게 된 후, 자신의 통신 영역(62P1)의 배타 제어 영역(62c)의 로크를 해제한다. 구체적으로는, 배타 제어 영역(62c)에 격납되는 lock 변수를 언로크 상태로 함에 의해, 해당 프로세서(P1)용의 통신 영역(62P1)이 다른 프로세서로부터 사용할 수 있도록 해방한다.
이상과 같이, 제어 처리 중계부(60)를 이용함에 의해, 제 1 프로세서측(10)과 제 2 프로세서측(20) 사이에서, 제어 신호나 데이터의 교환이 실현된다.
또한, 대리부(70)에 의한 시그널 통지 처리 동작에 관해, 도 8을 참조하여 설명한다.
대리부(70)는, 싱글 프로세서용 OS(30)가 제 2 프로세서측(20)에 생성한 태스크(PT-1 내지 PT-n)와 시그널(제어 신호)에 의한 통신을 행하기 위한 기능을 갖는다. 이 대리부(70)에는, 대응하는 태스크(PT-1 내지 PT-n)의 태스크 번호가 보존되어 있다.
또한, 복수의 태스크(PT-1 내지 PT-n)에 1대1로 대리부(70)를 관련시켜도 좋고, 하나의 대리부(70)에 복수의 태스크(PT-1 내지 PT-n)를 관련시켜도 좋다.
(1) 제 1 프로세서측(10)의 순차 태스크(ST)가, 싱글 프로세서용 OS(30)에 대해 시그널 통지의 서비스를 요구한다. 이 시그널 통지에 의해 통신되는 시그널은, 싱글 프로세서용 OS(30)가 본래 갖는 서비스 기능에 의해, 제 2 프로세서측(20)의 각 프로세서(P1 내지 Pn)상에서 기동되어 있는 태스크(PT-1 내지PT-n)를 제어하기 위한 제어 신호이다.
(2) 싱글 프로세서용 OS(30)는, 시그널을 대응하는 대리부(70)에 통지한다.
(3) 대리부(70)는, 통지된 시그널을 제어 처리 중계부(60)를 통하여, 자신에게 대응하는 제 2 프로세서측(20)의 태스크(PT-1)가 존재하는 프로세서(P1 내지 Pn)에 통지한다. 여기서, 통신 이유 정보로서는, 「병렬 처리」가 설정된다.
(4) 제어 처리 중계부(60)에의 통신 이유 정보가 「병렬 처리」이기 때문에, 제 2 프로세서측(20)의 대응하는 프로세서의 병렬 처리부(40P1 내지 40Pn)는, 제어 처리 중계부(60)로부터 시그널 통지 요구를 취득한다.
(5) 시그널 통지 요구를 취득한 병렬 처리부(40P1 내지 40Pn)는, 대응하는 태스크(PT-1 내지 PT-n)에 대해 시그널(제어 신호)을 통지한다.
이상에 의해, 대리부(70)가 제 2 프로세서측(20)의 프로세서(P0 내지 Pn)상의 태스크(PT-1 내지 PT-n)와 태스크 번호에 의해 연관되어 있기 때문에, 제 1 프로세서측(10)에서는 태스크(PT-1 내지 PT-n)에 대해 싱글 프로세서용 OS(30)에 의한 시그널 통지의 서비스를 실행하는 것이 가능해진다.
최후로, 제 2 프로세서측(20)에 있어서의 태스크 상호의 연휴 동작에 관해, 도 9와 도 10을 참조하여 설명한다.
태스크 사이의 제휴를 취하기 위한 병렬 처리부(40P1 내지 40Pn)의 구성을 도 9에 도시한다. 도시한 바와 같이, 병렬 처리부(40P1 내지 40Pn)는, 상호 배타부(41P1 내지 41Pn)를 구비하고 있다.
또한, 태스크가 제휴를 하기 때문에, 주기억 장치(92) 내에는, 배타 제어 영역(43)과 태스크 관리 내용 보존 영역(44)을 갖는다.
(1) 프로세서(P1)상의 태스크(PT-1)는, 자신의 병렬 처리부(40P1)에 대해 소망하는 병렬 처리를 요구한다.
(2) 프로세서(P1)의 병렬 처리부(40P1)는, 상호 배타부(41P1)에 병렬 처리에 이용하는 자원의 확보를 위해 로크 취득을 요구한다.
(3) 상호 배타부(41P1)는, 주기억 장치(92)의 배타 제어 영역(43)을 이용하여 로크를 취득한다.
(4) 상호 배타부(41P1)는, 병렬 처리부(40P1)에 대해 로크 취득이 이루어진 취지를 통지한다.
(5) 병렬 처리부(40P1)는, 태스크 관리 내용 보존 영역(44)에 프로세서(P1)상의 병렬 처리를 요구한 태스크(PT-1)의 관리 내용(요구 내용, 태스크 번호 그 밖의 필요한 데이터)을 보존한다.
(6) 병렬 처리부(40P1)는, 우선도가 낮은 태스크를 실행하고 있는 다른 프로세서(P2 내지 Pn)에 인터럽트를 건다. 여기서는, 프로세서(Pn)에의 인터럽트가 걸린 것으로 한다.
(7) 병렬 처리부(40P1)는, 상호 배타부(41P1)에 대해 상기 확보한 로크의 해제를 요구한다.
(8) 상호 배타부(41P1)는, 주기억 장치(92)의 배타 제어 영역(43)의 로크를 해제한다.
(9) 상호 배타부(41P1)는, 병렬 처리부(40P1)에 대해 로크의 해제 완료를 통지한다.
(10) 병렬 처리부(40P1)는, 태스크(PT-1)로 처리를 되돌린다.
(11) 프로세서(Pn)의 병렬 처리부(40Pn)는, 상호 배타부(41Pn)에 대해 병렬 처리에 이용하는 자원의 확보를 위한 로크 취득을 요구한다.
(12) 상호 배타부(41Pn)는, 주기억 장치(92)의 배타 제어 영역(43)을 이용하여 로크를 취득한다.
(13) 상호 배타부(41Pn)는, 병렬 처리부(40Pn)에 대해 로크의 취득 완료를 통지한다.
(14) 병렬 처리부(40Pn)는, 태스크 관리 내용 보존 영역(44) 내에 격납되어 있는 태스크 관리 내용을 취득한다.
(15) 병렬 처리부(40Pn)는, 태스크 관리 내용에 의거하여 새로운 태스크를 생성 기동한다.
(16) 병렬 처리부(40Pn)는, 상호 배타부(41Pn)에 대해 상기 확보한 로크의 해제를 요구한다.
(17) 상호 배타부(41Pn)는, 주기억 장치(92)의 배타 제어 영역(43)의 로크를 해제한다.
(18) 상호 배타부(41Pn)는, 병렬 처리부(40Pn)에 대해 로크의 해제 완료를 통지한다.
이상의 태스크 연휴 동작에 의해, 어떤 프로세서(P1 내지 Pn)에서 기동하고 있는 태스크(PT-1 내지 PT-n)가, 자신의 처리 단위를 다른 프로세서에 대해 병렬처리시키는 것이 가능해진다.
상기한 바와 같이 구성되는 병렬 처리 시스템에 있어서의 적용예로서는, 예를 들면 멀티 프로세서의 휴대 단말에 있어서, 어플리케이션을 동작시키는 경우를 설명한다.
여기서, 어플리케이션이 휴대 단말상에서 영상(동화)과 음성을 동시에 재생하는 기능을 가지며, 그 중 음성 출력 처리를 순차 태스크(A)로 하고, 영상 출력 처리를 병렬화 태스크(B)로 하여 제 1 프로세서측(10)의 프로세서(P0)상에서 동작시키는 경우를 상정하고, 도 11을 참조하여 설명한다.
병렬화 태스크(B)는, 상술한 병렬 처리부에 의해, 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)의 어느 하나에 태스크(C)로서 생성되고 기동된다.
생성된 태스크(C)는, OS 서비스부의 파일 액세스 처리에 의해 영상의 화면 출력을 실행한다.
또한, 순차 태스크(A)에 의한 음성 출력은, 싱글 태스크(OS)(30)의 서비스에 의해 음성의 출력이 실행된다.
음성과 영상의 동기를 정기적으로 취하는 경우에는, 상술한 대리부(70)에 의한 시그널 통지 동작에 의해 순차 태스크(A)와 태스크(C) 사이의 시그널 통지를 행하는 것으로 동기를 취한다.
또한, 태스크(C)에 있어서, 영상에 편집을 가하는 처리를 실행하는 경우에는, 그 편집 처리를 태스크 연휴 처리에 의해 다른 프로세서상에 태스크(D)로서 생성 기동한다.
태스크(C)에 의한 영상 출력 처리가 종료된 경우에는, 태스크(C)로부터 파일 액세스 동작에 의해 싱글 프로세서용 OS에 종료 통지를 행한다.
본 병렬 처리 시스템에서는, 병렬 처리부(40P0 내지 40Pn), OS 서비스부(50P0 내지 50Pn), 제어 처리 중계부(60) 및 대리부(70)에 관해서는, 모듈로서 실장함에 의해, 싱글 프로세서용 OS(30) 및 프로세서(P0)상에서 실행되는 어플리케이션에 개조를 가하는 일 없이, 멀티 프로세서의 시스템 구성상에서, 싱글 프로세서용 OS(30) 및 어플리케이션을 오버 헤드 없이 동작시킬 수 있음과 함께, 멀티 프로세서에 의한 병렬 처리의 혜택을 받는 것이 가능해진다.
다음에, 본 발명을 적용하는 제 2 예의 병렬 처리 시스템에 관해, 도 12 이하를 참조하여 설명한다. 도 12는, 이 제 2 예의 형태에 의한 병렬 처리 시스템의 구성을 도시한 블록도이고, 도 1과 공통의 구성 요소에 대해서는 같은 부호를 이용하고 있다. 도 12에 도시한 제 2 예에서는, 제 1 예에 있어서의 병렬 처리부(40P0 내지 40Pn)를, 각각 병렬 처리 통신부(400P0 내지 400Pn)와 제어 대리부(500P0 내지 500Pn)로 구성한 경우를 나타내고 있다.
도 12에 도시한 바와 같이, 본 예의 병렬 처리 시스템에 있어서, 시스템 버스(91)로 접속되는 복수의 프로세서(CPU)(P0 내지 Pn)(n은 1 이상의 정수)로 이루어지는 멀티 프로세서를, 논리적으로 제 1 프로세서측(100)과 제 2 프로세서측(200)의 2세트로 나누어 구성하고 있는 점에 관해서는, 제 1 예와 마찬가지이다.
이 제 2 예에서는, 제 1 프로세서측(100)의 프로세서(P0) 및 제 2프로세서(200)의 프로세서(CPU)(P0 내지 Pn)의 각 프로세서상에서 동작하은 싱글 프로세서용 OS(300P0 내지 300Pn)를 실장하고 있다.
또한, 제 1 프로세서측(100)의 프로세서(P0) 및 제 2 프로세서측(200)의 프로세서(P1 내지 Pn)의 각각에, 병렬 처리를 행하기 위한 병렬 처리 통신부(400P0 내지 400Pn)와 제어 대리부(500P0 내지 500Pn)를 실장하고 구성된다. 또한, 시스템 버스(91)에는, 각 프로세서(P0 내지 Pn)가 공유한 공유 메모리로서의 주기억 장치(92) 및 디스크 장치 등 외부 기억 장치(93)가 접속되어 있다.
또한, 제 1 프로세서측(100)과 제 2 프로세서측(200) 사이에서, 제어 신호나 데이터의 교환을 행하기 위한 제어 처리 중계부(600)가 독자적으로 마련되어 있다.
또한, 이 제 2 예에서는, 제 1 예에서 나타낸 제 1 프로세서측(100)의 싱글 프로세서용 OS(300P0)가 제 2 프로세서측(200)에서 실행되는 프로세스와 통신하기 위한 대리부(70)에 관해서는 제 1 예와 완전히 같은 기능을 실행하기 때문에 편의상 생략하고 있다.
또한 제 1 예에서는 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)상의 태스크로부터의 파일 액세스 요구에 대해 태스크의 switch(스위치)가 이루어지는 것을 설명하였지만 본 예에서도 제 2 프로세서측(200)으로부터의 파일 액세스가 가능하고, 파일아쿠세스 요구를 행한 제 2 프로세서측(200)의 프로세스(PP-1 내지 PP-n)는 제 2 프로세서측(200)의 싱글 프로세서용 OS(300P1 내지 300Pn)에 의해 프로세스의 switch(스위치)가 행하여진다.
상기 각 프로세서(P0 내지 Pn)에 실장되는 싱글 프로세서용 OS(300P0 내지300Pn)에 관해서는, 리얼타임 OS와 같은 메모리 보호 기능을 실현하는 가상 기억 기구를 갖지 않는 OS만이 아니라, 기존의 OS인 Linux나 Windows(R) 등이라는 가상 기억 기구를 구비하는 OS도 이용하는 것이 가능하고, 각 프로세서(P0 내지 Pn)의 전부, 또는 일부에서 메모리 보호 기구의 실현이 가능한 점에서 제 1 예라고 상위하다.
또한, 싱글 프로세서용 OS(300P0 내지 300Pn)는, 전부가 같은 종류의 OS일 필요는 없고, 서로 다른 종류의 OS라도 좋다.
이 예에서는, 병렬 처리를 행하기 위한 처리 단위인 태스크가 서로의 프로세서 사이에서 메모리 보호받고 있고, 그러한 의미에서 제 1 예의 태스크와 구별하기 위해 프로세스라고 칭하기로 한다.
본예에 의한 병렬 처리 시스템에서는, 제 1 프로세서측(100)의 싱글 프로세서용 OS(300P0)상에서 동작하는 어플리케이션의 처리 단위중, 병렬화를 행할 수 없는 프로세스(순차 프로세스(SP))를 제 1 프로세서측(100)의 프로세서(P0)에서 처리하고, 어플리케이션 내에서 병렬화를 행할 수 있는 태스크를 제 2 프로세서측(200)에서 새로운 프로세스(PP-1 내지 PP-n)로서 생성하고 병렬 처리를 시킨다.
병렬 처리 통신부(400P0) 및 병렬 처리 통신부(400P1 내지 400Pn)는, 프로세스와 싱글 프로세서용 OS(300P0 내지 300Pn)와의 사이에서, 프로세스의 생성, 기동, 정지, 종료, 삭제, 및 그 밖의 프로세스에 관한 제어 정보의 수수를 행하는 기능을 갖는다.
여기서, 제 1 프로세서측(100)과 제 2 프로세서측(200) 사이에서는, 제어 처리 중계부(600)를 통하여 태스크의 생성, 기동, 정지, 종료, 삭제 등에 관한 제어 정보나 데이터를 교환한다.
또한, 제어 대리부(500P0) 및 제어 대리부(500P1 내지 500Pn)는, 싱글 프로세서용 OS(300P0 내지 300Pn)로부터 프로세스에의 처리 요구를 입수하고 프로세스를 기동하는 기능을 갖는다.
제어 처리 중계부(600)는, 제 1 프로세서측(10)과 제 2 프로세서측(20) 사이에서, 제어 신호나 데이터의 교환을 행하기 위한 부이고, 복수의 프로세서에서 병렬 처리되는 복수의 프로세스간의 제어에 사용된다.
이하, 상기한 바와 같이 구성되는 제 2 예의 병렬 처리 시스템의 동작에 관해, 도면을 참조하여 상세하게 설명한다.
여기서는, 제 1 프로세서측(100)의 싱글 프로세서용 OS(300P0)상에서 어플리케이션이 동작하고, 그 어플리케이션의 처리 단위중, 제 1 프로세서측(100)의 프로세서(P0)에서 처리하는 처리 단위를 순차 프로세스(SP)라고 하고, 어플리케이션 내에서 병렬화를 행할 수 있는 프로세스이고, 제 2 프로세서측(200)에 대해 태스크(PP-1 내지 PP-n)로서 병렬 처리를 시키는 처리 단위를 병렬화 프로세스(PP)라고 한다.
이 제 2 예의 병렬 처리 시스템에서는, 어떤 프로세스(태스크)를 기동한 후에, 호출측의 프로세스(태스크)인 병렬화 프로세스(PP)가, 기동한 프로세스(PP-1 내지 PP-n)의 종료를 대기시키는 병렬 처리의 동기 기동과, 호출측의 프로세스(태스크)인 병렬화 프로세스(PP)가, 기동한 프로세스(PP-1 내지 PP-n)의 종료를 대기시키지 않아도 좋은 병렬 처리의 비동기 기동이 가능하다.
우선, 프로세스의 병렬 처리의 동기 기동의 동작에 관해, 도 13을 참조하여 설명한다.
여기서는, 제 1 프로세서측(100)의 병렬화 프로세스(PP)가, 제 2 프로세서측(200)의 프로세서(Pk)(1≤k≤n)에서, 제 2 프로세서측(200)에서 기동시키는 처리 단위인 프로세스(PP-k)로서 미리 생성되어 있는 것으로 한다.
(1) 제 2 프로세서측(200)의 프로세서(Pk)(1≤k≤n)상의 프로세스(PP-k)가, 병렬 처리 통신부(400Pk)에 대해, 자(自) 프로세스에 속하는 처리의 정보를 등록한다. 이로써, 프로세스(PP-k)는 대기 상태로 되어 있다.
(2) 병렬 처리 통신부(400Pk)는, 싱글 프로세서용 OS(300Pk) 경유로 주기억 장치(92)(공유 메모리)상에 필요한 데이터를 액세스하는 요구를 행한다.
(3) 이로써, 프로세스(PP-k)에 속하는 처리의 정보가 주기억 장치(92)(공유 메모리)에 격납된다.
(4) 프로세서(P0)상의 프로세스(PP)는, 병렬 처리 통신부(400P0)에 대해 동기적인 처리를 의뢰한다. 그 후, 프로세스(PP)는 대기 상태로 된다.
(5) 의뢰를 받은 병렬 처리 통신부(400P0)는, 싱글 프로세서용 OS(300P0) 경유로 주기억 장치(92)(공유 메모리)상의 데이터에 대한 액세스 요구를 행한다.
(6) 싱글 프로세서용 OS(300P0)에 의해 주기억 장치(92)(공유 메모리)가 액세스된다.
(7) 병렬 처리 통신부(400P0)는, 주기억 장치(92)(공유 메모리)로부터 프로세스(PP-k)에 속하는 처리의 정보를 취득한다. 이로써, 프로세스(PP-k)를 실행하는 프로세서 번호와 프로세스 번호가 취득된다.
(8) 병렬 처리 통신부(400P0)는, 싱글 프로세서용 OS(300P0) 경유로 주기억 장치(92)(공유 메모리)로부터 취득한 정보에 의거하여 통신 의뢰를 요구한다.
(9) 싱글 프로세서용 OS(300P0)에 의해, 통신에 필요한 정보가 제어 처리 중계부(600)에 설정된다.
(10) 이로써, 제어 처리 중계부(600)로부터 프로세서(Pk)의 싱글 프로세서용 OS(300Pk)에 대해 처리 요구가 송신된다.
(11) 프로세서(Pk)의 제어 대리부(500Pk)는, 싱글 프로세서용 OS(300Pk) 경유로 송신된 처리 요구를 입수한다.
(12) 그리고, 제어 대리부(500Pk)는, 입수한 처리 요구에 의해 프로세스(PP-k)를 기동한다.
(13) 이로써, 대기 상태에 있던 프로세스(PP-k)는 처리를 실행한다.
(14) 처리가 종료한 후, 프로세스(PP-k)는, 그 취지의 정보를 병렬 처리 통신부(400Pk)에 통지한다.
(15) 통지를 받은 병렬 처리 통신부(400Pk)는, 싱글 프로세서용 OS(300Pk) 경유로 통지된 정보에 의거하여 통신 의뢰를 요구한다.
(16) 싱글 프로세서용 OS(300Pk)에 의해, 통신에 필요한 정보가 제어 처리 중계부(600)에 설정된다.
(17) 이로써, 제어 처리 중계부(600)로부터 프로세서(P0)의 싱글 프로세서용OS(300P0)에 대해 처리 요구가 송신된다.
(18) 프로세서(P0)의 제어 대리부(500P0)는, 싱글 프로세서용 OS(300P0) 경유로 송신된 처리 요구를 입수한다.
(19) 그리고, 제어 대리부(500P0)는, 입수한 처리 요구에 의해 프로세스(PP)를 기동한다.
이상에 의해, 제 1 프로세서측(100)의 프로세서(P0)상의 프로세스(PP)와 제 2 프로세서측(200)의 프로세서(PP-k)와의 사이에서의 동기적인 처리가 실현된다.
다음에, 프로세스의 병렬 처리의 비동기 기동의 동작에 관해, 도 14를 참조하여 설명한다.
여기서도, 제 1 프로세서측(100)의 병렬화 프로세스(PP)가, 제 2 프로세서측(200)의 프로세서(Pk)(1≤k≤n)에서, 제 2 프로세서측(200)에서 기동시키는 처리 단위인 프로세스(PP-k)로서 미리 생성되어 있는 것으로 한다.
(1) 처리를 행하고 있던 제 2 프로세서측(200)의 프로세서(Pk)(1≤k≤n)상의 프로세스(PP-k)가, 병렬 처리 통신부(400Pk)에 대해, 자 프로세스에 속하는 처리의 정보를 등록한다. 이로써, 프로세스(PP-k)는 대기 상태로 된다.
(2) 병렬 처리 통신부(400Pk)는, 싱글 프로세서용 OS(300Pk) 경유로 주기억 장치(92)(공유 메모리)상에 필요한 데이터를 액세스하는 요구를 행한다.
(3) 이로써, 프로세스(PP-k)에 속하는 처리의 정보가 주기억 장치(92)(공유 메모리)에 격납된다.
(4) 프로세서(P0)상의 프로세스(PP)는, 병렬 처리 통신부(400P0)에 대해 비동기적인 처리를 의뢰한다. 이 경우, 프로세스(PP)는 대기 상태로 되는 일 없이, 그 후도 처리를 계속한다.
(5) 의뢰를 받은 병렬 처리 통신부(400P0)는, 싱글 프로세서용 OS(300P0) 경유로 주기억 장치(92)(공유 메모리)상의 데이터에 대한 액세스 요구를 행한다.
(6) 싱글 프로세서용 OS(300P0)에 의해 주기억 장치(92)(공유 메모리)가 액세스된다.
(7) 병렬 처리 통신부(400P0)는, 주기억 장치(92)(공유 메모리)로부터 프로세스(PP-k)에 속하는 처리의 정보를 취득한다. 이로써, 프로세스(PP-k)를 실행하는 프로세서 번호와 프로세스 번호가 취득된다.
(8) 병렬 처리 통신부(400P0)는, 싱글 프로세서용 OS(300P0) 경유로 주기억 장치(92)(공유 메모리)로부터 취득한 정보에 의거하여 통신 의뢰를 요구한다.
(9) 싱글 프로세서용 OS(300P0)에 의해, 통신에 필요한 정보가 제어 처리 중계부(600)에 설정된다.
(10) 이로써, 제어 처리 중계부(600)로부터 프로세서(Pk)의 싱글 프로세서용 OS(300Pk)에 대해 처리 요구가 송신된다.
(11) 프로세서(Pk)의 제어 대리부(500Pk)는, 싱글 프로세서용 OS(300Pk) 경유로 송신된 처리 요구를 입수한다.
(12) 그리고, 제어 대리부(500Pk)는, 입수한 처리 요구에 의해 프로세스(PP-k)를 기동한다.
(13) 이로써, 대기 상태에 있던 프로세스(PP-k)는 처리를 실행한다.
이상에 의해, 제 1 프로세서측(100)의 프로세서(P0)상의 프로세스(PP)와 제 2 프로세서측(200)의 프로세서(PP-k)와의 사이에서의 비동기적인 처리가 실현된다.
또한, 제 2 예의 병렬 처리 시스템에 있어서의 제어 처리 중계부(600)에 의한 처리 동작에 관해, 도 15 및 도 16을 참조하여 설명한다.
우선, 제어 처리 중계부(600)의 구성을 도 15에 도시한다. 도시한 바와 같이, 제어 처리 중계부(600)는, 각 프로세서(P0 내지 Pn)에 대응한 인터럽트 제어 장치(601P0 내지 601Pn)와, 각 프로세서(P0 내지 Pn)에 대응한 통신 영역(602P0 내지 602Pn)을 구비하고 구성된다. 여기서, 통신 영역(602P0 내지 602Pn)은, 주기억 장치(92) 내에 확보된다.
상기 인터럽트 제어 장치(601P0 내지 601Pn)에 관해서는, 도 6에 도시한 제 1 예의 제어 처리 중계부(60)의 구성과 마찬가지로서, 인터럽트 지시부(601a), 인터럽트 상태 유지부(601b), 인터럽트 취소부(601c)에 의해 구성된다.
또한, 통신 영역(602P0 내지 602Pn)에 대해서도, 도 6에 도시한 제 1 예와 기본적으로 같은 구성이고, 도 6의 통신 이유 보존 영역(62a)과 통신 데이터 보존 영역(62b)을 조합시킨 통신 큐(602a)와, 배타 제어 영역(602c)에 의해 구성된다.
제 1 프로세서측(100)의 병렬 처리 통신부(400P0)로부터 제 2 프로세서측(20)의 프로세서(Pn)에의 통신 처리를 예로 들고, 도 16을 참조하여 그 동작을 설명한다.
(1) 병렬 처리 통신부(400P0)는, 프로세서(P1)용의 통신 영역(602Pn)의 배타 제어 영역(602b)에 로크를 건다. 구체적으로는, 배타 제어 영역(602b)에 격납되는lock 변수를 로크 상태로 함에 의해, 해당 프로세서(Pn)용의 통신 영역(602Pn)이 다른 프로세서로 사용되는 것을 배제한다.
(2) 병렬 처리 통신부(400P0)는, 통신 이유 정보와 통신 데이터(요구 내용을 포함하는 필요 데이터)를, 통신 영역(602Pn)의 통신 큐(602a)에 격납한다.
격납된 통신 이유 정보로서는, 상술한 바와 같이 프로세스의 생성 기동을 위한 통신 처리라면, 「프로세스 기동」을 나타내는 정보(예를 들면, 병렬 처리에 대응하여 미리 정해져 있는 수치 등의 데이터)가 격납된다.
(3) (1)의 시점에서 통신 영역(602Pn)의 통신 큐(602a)가 비여 있은 경우, 병렬 처리 통신부(400P0)는, 자신의 인터럽트 제어 장치(601P0)의 인터럽트 지시부(601a)에 대해, 프로세서(Pn)에의 인터럽트를 지시한다.
(4) 프로세서(P0)의 병렬 처리 통신부(400P0)는, 프로세서(Pn)용의 통신 영역(602Pn)의 배타 제어 영역(602b)을 언로크 상태로 한다. (1)의 시점에서 통신 영역(602Pn)의 통신 큐(602a)가 비여 있지 않은 경우에는, 인터럽트의 필요가 없기 때문에, 여기서 처리를 종료한다.
(5) 인터럽트 제어 장치(601P0)의 인터럽트 지시부(601a)는, 프로세서(Pn)에 대응하는 인터럽트 제어 장치(601Pn)의 인터럽트 상태 유지부(601b)에, 인터럽트를 나타내는 정보를 세트한다. 이로써, 프로세서(Pn)가 인터럽트 상태로 된다.
(6) 프로세서(Pn)의 싱글 프로세서용 OS(300Pn)는, 프로세서(Pn)용의 인터럽트 제어 장치(601Pn)의 인터럽트 상태 유지부(601b)의 상태로부터, 인터럽트를 수리한다.
(7) 프로세서(Pn)의 싱글 프로세서용 OS(300Pn)는, 인터럽트 제어 장치(601Pn)의 인터럽트 취소부(601c)에 의해 자신의 인터럽트 상태 유지부(601b)의 인터럽트 정보를 클리어함에 의해, 자신의 인터럽트 상태를 해제한다.
(8) 프로세서(Pn)의 싱글 프로세서용 OS(300Pn)는, 자신의 제어 대리부(500Pn)를 기동한다.
(9) 프로세서(Pn)의 제어 대리부(500Pn)는, 자신의 통신 영역(602Pn)의 배타 제어 영역(602b)에 로크를 세트한다.
(10) 프로세서(Pn)의 제어 대리부(500Pn)는, 또한, 자신의 통신 영역(602Pn)의 통신 큐(602a)로부터, 통신 이유 정보와 통신 데이터를 각각 삭제한다.
(11) 프로세서(Pn)의 제어 대리부(500Pn)가, 프로세서(Pn)용의 통신 영역(602Pn)의 배타 제어 영역(602b)을 언로크로 한다. 이로써, 해당 프로세서(Pn)용의 통신 영역(602Pn)이 다른 프로세서로부터 사용할 수 있게 된다.
이상과 같이, 제어 처리 중계부(600)를 이용함에 의해, 제 1 프로세서측(100)과 제 2 프로세서측(200) 사이에서, 제어 신호나 데이터의 교환이 실현된다.
다음에, 본 발명을 적용하는 제 3 예에 의한 병렬 처리 시스템에 관해, 도 17 이하를 참조하여 설명한다. 도 17은, 이 제 3 예의 병렬 처리 시스템의 구성을 도시한 블록도로서, 도 13과 공통의 구성 요소에 대해서는 같은 부호를 이용하고 있다.
상기 설명한 제 2 예에 있어서의 동기적인 처리에서는, 프로세스 상호에 있어서, 한쪽의 프로세스가 다른쪽의 프로세스에 의해 주기억 장치(92)상의 데이터가 갱신되었는지의 여부의 체크를 반복할 필요가 있고, 그 반복하는 분만큼 쓸데없은 처리가 발생하고 있지만, 본 예에서는, 그러한 쓸데없은 처리를 필요로 하지 않는 고성능의 프로세스간의 동기와 데이터 수수를 가능하게 하는 것이다.
도 17에 도시한 바와 같이, 제 3 예의 병렬 처리 시스템에서는, 제 2 예와 마찬가지로 시스템 버스(91)로 접속되는 복수의 프로세서(CPU)(P0 내지 Pn)(n은 1 이상의 정수)로 이루어지는 멀티 프로세서를, 논리적으로 제 1 프로세서측(100)과 제 2 프로세서측(200)의 2세트로 나누어 구성하고 제 1 프로세서측(100)의 프로세서(P0) 및 제 2 프로세서(200)의 프로세서(CPU)(P0 내지 Pn)의 각 프로세서상에서 동작하는 싱글 프로세서용 OS(300P0 내지 300Pn)를 실장하고 있다.
이 제 3 예에서는 제 2 예에 있어서 제 1 프로세서측(100)의 프로세서(P0) 및 제 2 프로세서측(200)의 프로세서(P1 내지 Pn)의 병렬 처리를 행하기 위한 병렬 처리 통신부(400P0 내지 400Pn)와 제어 대리부(500P0 내지 500Pn)에 더하여 제 1 프로세서측(100)의 프로세서(P0) 및 제 2 프로세서측(200)의 프로세서(P1 내지 Pn)상에서 실행되는 각 프로세스간에서의 통신을 실현하기 위한 프로세스간 통신부(1000P0 내지 1000Pn)를 새롭게 구비한 점을 특징으로 하고 있다.
즉, 본 예에서는, 지금까지 멀티 프로세서용 OS에 실장되어 있던 프로세스간 통신의 기능을 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키는 싱글 프로세서용 OS에 의한 병렬 처리 시스템상에서 실현하는 것으로서, 유저 레벨에 의한 프로세스간 통신 기능의 실장을 가능하게 하고 있다.
또한, 이 예에서도, 제 1 예에서 나타낸 제 1 프로세서측(100)의 싱글 프로세서용 OS(300P0)가 제 2 프로세서측(200)에서 실행되는 프로세스와 통신하기 위한 대리부(70)에 관해서는 제 1 예와 완전히 같은 기능을 실행하기 때문에 적절히 생략하고 있다.
상기 프로세스간 통신부(1000P0 내지 1000Pn) 이외의 구성 요소에 관한 구성 및 동작에 관해서는, 상술한 제 2 예와 완전히 같기 때문에 프로세스간 통신부(1000P0 내지 1000Pn)에 관해서만 설명하기로 한다.
상기 프로세스간 통신부(1000P0 내지 1000Pn)는 세마포어(semaphore)나 메시지 큐 등의 방식을 이용함에 의해 프로세서(P1 내지 Pn)상에서 실행되는 각 프로세스간에서의 통신을 실현하는 것이다.
여기서는 프로세스간 통신부(1000P0 내지 1000Pn)가 세마포어 방식을 이용하여 프로세스간 통신을 행하는 경우에 관해 설명한다.
도 18에 도시한 바와 같이, 제 2 프로세서측(200)의 프로세서(Pm)와 프로세서(Pn)상에서 각각 프로세스(PP-m)와 프로세스(PP-n)가 실행되고 있는 경우에 있어서, 프로세스(PP-m)와 프로세스(PP-n)가 프로세스간 통신부(1000Pm와 1000Pn)에 의한 세마포어 방식을 이용하여 통신을 행하는 경우에 관해 설명한다.
세마포어 방식이란, 복수의 프로세스가 동시 실행되는 멀티 태스크(OS)에 있어서, 복수 프로세스간에서 통신하여 동기를 취하기 위한 방식으로서, 세마포어는 일종의 공유 플래그(카운터)이고, 동기를 취하는 프로세스 끼리가 이 카운터에 주목하고, 카운터의 변화에 응하여 처리를 행하도록 함으로써 통신(동기)을 실현한다.
우선, 도 18에 있어서, 프로세서(Pm)상의 프로세스(PP-m)가 주기억 장치(92)의 세마포어 정보 영역(공유 플래그)을 up 또는 down하는 경우의 동작을 설명한다. 여기서 세마포어 up은 세마포어 정보 영역의 카운터 값을 잉크리먼트하고 세마포어 down은 세마포어 정보 영역의 카운터 값을 데크리먼트한다. 세마포어 down할 수 없는 경우 해당 프로세스는 슬립(sleep) 하여 대기 상태로 되고 세마포어 up에 의해 웨이크업 된다.
(1) 프로세서(Pm)상의 프로세스(PP-m)가 세마포어(세마포어 카운타)를 up 또는 down하는 경우, 프로세스간 통신부(1000Pm)에 그 취지를 요구한다.
(2) 요구를 받은 프로세스간 통신부(1000Pm)는, 주기억 장치(92)에 확보되어 있는 세마포어 번호로 구별되는 공유 플래그로서의 세마포어 정보 영역(#N)(이 세마포어 정보 영역은 시스템에 의해 미리 결정되는 수만큼 확보된다)에 액세스함에 의해, 세마포어를 up 또는 down할 수 있음을 판명한다.
다음에, 도 19에 있어서, 프로세서(Pm)상의 프로세스(PP-m)가 세마포어(세마포어후라구)를 down하는 경우의 동작을 설명한다.
(1) 프로세서(Pm)상의 프로세스(PP-m)가 세마포어(세마포어후라구)를 down하고자 프로세스간 통신부(1000Pm)에 요구한다.
(2) 요구를 받은 프로세스간 통신부(1000Pm)는, 주기억 장치(92)에 확보되어 있는 세마포어 정보 영역(#N)에 액세스한다. 여기서는, 세마포어 정보 영역(#N)에는 세마포어의 카운터 값으로서 초기치 「0」이 설정되어 있고, down하려고 하여도down할 수 없도록 미리 정해져 있다. 따라서, 세마포어를 down할 수 없음이 판명된다.
(3) 프로세스간 통신부(1000Pm)는, 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 상기 프로세스(PP-m)를 슬립 시키도록 요구한다.
(4) 싱글 프로세서용 OS(300Pm)는 시스템 콜을 이용하여 프로세스(PP-m)를 슬립 시키고, 런 큐로부터 제외한다.
즉, 상기한 경우, 프로세스(PP-m)는 세마포어를 down할 수 업기 때문에 슬립 한다.
또한, 도 20에 있어서, 상기한 바와 같이 프로세스(PP-m)가 슬립 한 상태에서, 같은 프로세서(Pm)상의 프로세스(PP-m1)가 세마포어를 up하는 경우의 동작을 설명한다.
(1) 프로세스(PP-m1)가 세마포어의 up을 프로세스간 통신부(1000Pm)에 요구한다.
(2) 프로세스간 통신부(1000Pm)는, 주기억 장치(92)에 확보되어 있는 세마포어 정보 영역(#N)에 액세스함에 의해 세마포어 대기의 프로세스(PP-m)가 존재하는 것을 판명한다.
(3) 또한, 프로세스간 통신부(1000Pm)는, 제어 처리 중계부(600)에 대해 메시지(제어 메시지)를 송신함으로써, 프로세스(PP-m)의 웨이크업을 요구한다.
(4) 제어 대리부(500Pm)가, 제어 처리 중계부(600)로부터 메시지를 수신한다. 이 제어 처리 중계부(600)에 의한 메시지의 중계는, 도 15, 도 16에서 설명한동작에 의거하여 행하여진다.
(5) 제어 대리부(500Pm)는, 메시지로부터 세마포어 대기의 프로세스의 웨이크업 요구라고 판단하고, 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 대기 상태의 상기 프로세스(PP-m)를 웨이크업 시키도록 요구한다.
(6) 싱글 프로세서용 OS(300Pm)는, 시스템 콜을 이용하여 요구된 프로세스(PP-m)를 웨이크업 하고, 런 큐에 연결한다. 이 경우, 웨이크업 된 프로세스(PP-m)는 재차 세마포어를 down하고자 시도한다.
또한 상기 처리(3), (4)에 있어서의 제어 처리 중계부(600)에 의한 제어 메시지의 중계를 이용하는 일 없이, 싱루프로세서용 OS(300Pm)의 통신 기능을 이용하여, 프로세스간 통신부(1000Pm)로부터 제어 대리부(500Pm)에 대해 직접 프로세스(PP-m)의 웨이크업을 요구하도록 하면, 처리(3), (4)가 간략되고 고속화가 가능하다.
도 21에 있어서, 상기한 바와 같이 프로세서(Pm)상의 프로세스(PP-m)가 슬립 한 상태에서, 다른 프로세서(Pn)상의 프로세스(PP-n)가 세마포어를 up하는 경우의 동작을 설명한다.
(1) 프로세서(Pn)상의 프로세스(PP-n)가 세마포어의 up을 자 프로세서(Pn)의 프로세스간 통신부(1000Pn)에 요구한다.
(2) 프로세스간 통신부(1000Pn)는, 주기억 장치(92)에 확보되어 있는 세마포어 정보 영역(#N)에 액세스함에 의해 세마포어 대기의 프로세스(PP-m)가 존재하는 것을 판명한다.
(3) 또한, 프로세스간 통신부(1000Pn)는, 제어 처리 중계부(600)에 대해 메시지(제어 메시지)를 송신함으로써, 프로세스(PP-m)의 웨이크업을 요구한다.
(4) 뒤이어, 프로세서(Pm)의 제어 대리부(500Pm)가, 제어 처리 중계부(600)로부터 메시지를 수신한다. 이 제어 처리 중계부(600)에 의한 메시지의 중계는, 도 15, 도 16에서 설명한 동작에 의거하여 행하여진다.
(5) 제어 대리부(500Pm)는, 메시지로부터 세마포어 대기의 프로세스의 웨이크업 요구라고 판단하고, 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 대기 상태의 상기 프로세스(PP-m)를 웨이크업 시키도록 요구한다.
(6) 싱글 프로세서용 OS(300Pm)는, 시스템 콜을 이용하여 요구된 프로세스(PP-m)를 웨이크업 하고, 런 큐에 연결한다. 이 경우, 웨이크업 된 프로세스(PP-m)는 재차 세마포어를 down하고자 시도한다.
다음에, 도 22에 도시한 바와 같이, 제 2 프로세서측(200)의 프로세서(Pm)와 프로세서(Pn)상에서 각각 프로세스(PP-m)와 프로세스(PP-n)가 실행되고 있는 경우에 있어서, 프로세스(PP-m)와 프로세스(PP-n)가 프로세스간 통신부(1000Pm와 1000Pn)에 의한 메시지 큐 방식을 이용하여 통신을 행하는 경우에 관해 설명한다.
메시지 큐 방식이란, 복수의 프로세스간에서 통신을 행하는 방법으로서, 이름 그대로 「큐」를 작성하고, 거기에 정보로서의 메시지(프로세스 상호간에 교환되는 처리 데이터)를 격납하여 가는 방식이다. 메시지 큐 방식에서는, 인수측의 프로세스는 그 메시지를 임의의 순번으로 수취할 수 있다. 또한, 메시지를 어느 하나의 프로세스가 수취하면 그 메시지는 큐로부터 사라진다.
도 22에 있어서, 프로세서(Pm)상의 프로세스(PP-m)가 메시지 큐 방식에 의해 메시지를 수신하는 경우의 동작을 설명한다. 여기서는 취득하여야 할 메시지가 주기억 장치(92)에 확보되어 있는 큐 번호로 구별되는 큐 정보 영역(#N)(이 큐 정보 영역은 시스템에 의해 미리 결정된 수만큼 확보되다)에 존재하는 경우이다.
(1) 프로세서(Pm)상의 프로세스(PP-m)가 메시지의 수신을 하기 위해 프로세스간 통신부(1000Pm)에 그 취지를 요구한다.
(2) 요구를 받은 프로세스간 통신부(1000Pm)는, 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)을 액세스하고, 메시지를 수신한다.
(3) 그리고 프로세스간 통신부(1000Pm)는, 수신한 메시지를 요구원인 프로세스(PP-m)에 카피한다. 이 시점에서 해당 메시지는 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)으로부터 소거된다.
다음에, 도 23에 있어서, 프로세서(Pm)상의 프로세스(PP-m)가 메시지 큐 방식에 의해 메시지를 수신하는 경우의 제 2의 동작을 설명한다. 여기서는 취득하여야 할 메시지가 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에 존재하지 않는 경우이다.
(1) 프로세서(Pm)상의 프로세스(PP-m)가 메시지의 수신을 하기 위해 프로세스간 통신부(1000Pm)에 그 취지를 요구한다.
(2) 요구를 받은 프로세스간 통신부(1000Pm)는, 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에 액세스한다. 이 경우 취득하여야 할 메시지가 확보되어 있는 큐 정보 영역(#N)에 존재하지 않고, 메시지를 수신할 수 없는 것이 판명된다.
(3) 프로세스간 통신부(1000Pm)는, 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 상기 프로세스(PP-m)를 슬립 시키도록 요구한다.
(4) 싱글 프로세서용 OS(300Pm)는 시스템 콜을 이용하여 프로세스(PP-m)를 슬립 시키고, 런 큐로부터 제외한다.
즉, 상기한 경우, 프로세스(PP-m)는 메시지를 수신할 수 없기 때문에 슬립 한다.
도 24에 있어서, 프로세서(Pm)상의 프로세스(PP-m)가 메시지 큐 방식에 의해 메시지를 송신하는 경우의 동작을 설명한다. 여기서는 송신하고자 하는 메시지 대기의 프로세스가 존재하지 않고, 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에의 메시지의 송신만을 행하는 경우이다.
(1) 프로세서(Pm)상의 프로세스(PP-m)가 메시지의 송신을 위해 프로세스간 통신부(1000Pm)에 그 취지를 요구한다.
(2) 요구를 받은 프로세스간 통신부(1000Pm)는, 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에 액세스하고, 프로세스(PP-m)로부터의 메시지를 격납한다.
또한, 도 25에 있어서, 프로세서(Pm)상의 프로세스가 메시지 큐 방식에 의해 메시지를 송신하는 경우의 동작을 설명한다. 여기서는 송신하고자 하는 메시지 대기의 프로세스가 존재하는 경우이다. 즉 도 23의 예와 같이 프로세스(PP-m)가 메시지를 수신할 수 없고 슬립 하고 있는 상태에서 프로세스(PP-m1)로부터 메시지가 송신되는 경우이다.
(1) 프로세스(PP-m1)가 메시지의 송신을 프로세스간 통신부(1000Pm)에 요구한다.
(2) 프로세스간 통신부(1000Pm)는, 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에 액세스하고, 프로세스(PP-m1)로부터의 메시지를 격납한다. 여기서, 메시지 대기의 프로세스(PP-m)가 존재하는 것이 판명된다.
(3) 또한, 프로세스간 통신부(1000Pm)는, 제어 처리 중계부(600)에 대해 제어 메시지를 송신함으로써, 프로세스(PP-m)의 웨이크업을 요구한다.
(4) 제어 대리부(500Pm)가, 제어 처리 중계부(600)로부터 제어 메시지를 수신한다.
(5) 제어 대리부(500Pm)는, 제어 메시지로부터 메시지 대기의 프로세스의 웨이크업 요구라고 판단하고, 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 대기 상태의 상기 프로세스(PP-m)를 웨이크업 시키도록 요구한다.
(6) 싱글 프로세서용 OS(300Pm)는, 시스템 콜을 이용하여 요구된 프로세스(PP-m)를 웨이크업 하고, 런 큐에 연결한다.
이 경우, 웨이크업 된 프로세스(PP-m)는 재차 메시지의 수신을 시도한다. 이로써, 프로세스(PP-m1)로부터의 메시지가 프로세스(PP-m)에서 수신된다.
또한 상기 처리(3), (4)에 있어서의 제어 처리 중계부(600)에 의한 제어 메시지의 중계를 이용하는 일 없이, 싱루프로세서용 OS(300Pm)의 통신 기능을 이용하여 프로세스간 통신부(1000Pm)로부터 제어 대리부(500Pm)에 대해 직접 프로세스(PP-m)의 웨이크업을 요구하도록 하면, 처리(3), (4)가 간략되고 고속화가 가능하다.
도 26에 있어서, 도 23에 도시한 바와 같이 프로세서(Pm)상의 프로세스(PP-m)가 슬립 하여 메시지 대기의 상태에서, 다른 프로세서(Pn)상의 프로세스(PP-n)가 메시지를 송신하는 경우의 동작을 설명한다.
(1) 프로세서(Pn)상의 프로세스(PP-n)가 메시지의 송신을 자 프로세서(Pn)의 프로세스간 통신부(1000Pn)에 요구한다.
(2) 프로세스간 통신부(1000Pn)는, 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에 액세스하고, 프로세스(PP-n)로부터의 메시지를 격납한다. 여기서, 메시지 대기의 프로세스(PP-m)가 존재하는 것이 판명된다.
(3) 또한, 프로세스간 통신부(1000Pn)는, 제어 처리 중계부(600)에 대해 제어 메시지를 송신함으로써, 프로세스(PP-m)의 웨이크업을 요구한다.
(4) 뒤이어, 프로세서(Pm)의 제어 대리부(500Pm)가, 제어 처리 중계부(600)로부터 제어 메시지를 수신한다.
(5) 제어 대리부(500Pm)는, 제어 메시지로부터 메시지 대기의 프로세스의 웨이크업 요구라고 판단하고, 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 대기 상태의 상기 프로세스(PP-m)를 웨이크업 시키도록 요구한다.
(6) 싱글 프로세서용 OS(300Pm)는, 시스템 콜을 이용하여 요구된 프로세스(PP-m)를 웨이크업 하여, 런 큐에 연결한다.
이 경우, 웨이크업 된 프로세스(PP-m)는 재차 메시지의 수신을 시도한다. 이로써, 프로세스(PP-n)로부터의 메시지가 프로세스(PP-m)에서 수신되고, 다른 프로세서 상호간에 프로세스간의 통신이 실행된다.
본 예의 병렬 처리 시스템에 의하면, 상기한 바와 같이 프로세스간 통신부(1000P0 내지 Pn)에 의해, 세마포어 방식 또는 메시지 큐 방식을 이용한 동일 프로세서 내 또는 다른 프로세서 사이의 프로세스 통신(동기 또는 메시지의 송수)을 행함에 의해, 프로세스 전환 등의 프로세스 제어나 데이터의 교환을 행하는 것이 가능해진다.
싱글 프로세서용 OS에 의한 프로세스간 통신은, 동일 프로세서 내의 프로세스간에 한정되고, 다른 프로세서 사이에서의 프로세스 통신은 처리가 무거운 네트워크 등을 이용하고 행할 필요가 있지만, 네트워크 통신에 비하여 처리가 고속인 제어 처리 중계부(600)와 프로세스간 통신부(1000P0 내지 Pn)에 의한 세마포어 방식 또는 메시지 큐 방식을 이용함으로써, 싱글 프로세서용 OS를 실장하는 멀티 프로세서 시스템에서도, 처리가 빠른 프로세스간 통신이 실현할 수 있다.
동일 프로세서 내의 프로세스간 통신에 관해서는, 싱글 프로세서용 OS에 의한 프로세스의 슬립으로부터 웨이크업에 필요로 하는 처리 성능과 거의 동등한 성능을 얻을 수 있다.
또한, 멀티 프로세서용 OS와 다르고, 프로세서마다 다른 싱글 프로세서용 OS를 실장하고 있어서도 프로세서 상호간의 프로세스간 통신이 가능하게 되는 이점이 있다.
다음에, 상기 프로세스간 통신부(1000P0 내지 1000Pn)에 의한 세마포어 방식 및 메시지 큐 방식을 이용한 프로세스간 통신의 구체적인 예에 관해, 도 27을 참조하여 설명한다.
도 27에 있어서, 프로세서(P0)상에서 프로세스(PP-0)가, 프로세서(Pj)상에서 프로세스(PP-j)가, 프로세서(Pk)상에서 프로세스(PP-k)가 각각 실행되고 있다. 여기서는, 프로세스(PP-0)가 브라우저, 프로세스(PP-j)가 java 애플릿, 프로세스(PP-k)가 MPEG4 어플리케이션으로서 동작하고, 도 28에 도시한 바와 같이, 프로세스(PP-0)에 의한 브라우저(1100)에 매입된 윈도우 내에서, 프로세스(PP-j)에 의한 java 애플릿의 컨텐츠(1200)와, 프로세스(PP-k)에 의한 MPEG4 영상 컨텐츠(1300)가 동기하여 표시된다.
이 예에서는, 제 1 프로세서측(100)의 싱글 프로세서용 OS(300P0)상에서 동작하는 어플리케이션의 처리 단위중, 프로세스(PP-0)를 프로세서(P0)상에서 동작시키고, 어플리케이션 내에서 병렬화를 행하는 프로세스인 프로세스(PP-j)와 프로세스(PP-k)를 제 2 프로세서측(200)의 프로세서(Pj)와 프로세서(Pk)에서 병렬 처리하는 경우이다.
도 27에 있어서, java 애플릿(프로세스(PP-j))과 MPEG4 어플리케이션(프로세스(PP-k))은 기동되면, 함께 브라우저(프로세스(PP-0))로부터의 java 어플리케이션 데이터 및 MPEG4 영상 데이터의 수신을 기다린다(스텝 S101, S201).
여기서, 프로세서(P0)의 프로세스(PP-0)로부터 프로세스간 통신부(1000P0)에 의한 메시지 송신을 이용하여, java 어플리케이션 데이터 및 MPEG4 영상 데이터가 메시지로서 송신되고, java 애플릿(프로세스(PP-j)) 및 MPEG4 어플리케이션(프로세스(PP-k))으로 수신된다.
이로써, java 애플릿(프로세스(PP-j))에 의한 동작이 시작되고(스텝 S102),MPEG4 어플리케이션(프로세스(PP-k))에 의한 디코드 처리가 시작된다(스텝 S202).
이 예에서는, java 애플릿(프로세스(PP-j))에 의한 동작의 쪽이 MPEG4 어플리케이션(프로세스(PP-k))에 의한 디코드 처리보다 빨리 종료한 것을 미리 알고 있고, java 애플릿(프로세스(PP-j))은 동작 종료 후에, MPEG4 어플리케이션(프로세스(PP-k))의 처리 완료를 기다리도록, 세마포어의 카운터의 초기치를 「0」으로 설정하고, 빨리 종료한 java 애플릿(프로세스(PP-j))이 세마포어 down할 수 없도록 되어 있다. 또한, MPEG4 어플리케이션(프로세스(PP-k))은 처리 종료 후에 세마포어 up하도록 정의되어 있다.
java 애플릿(프로세스(PP-j))은, 세마포어 down하려고 하지만(스텝 S103), 카운터의 초기치가 「0」이기 때문에에 down할 수 없고에 슬립되고, 세마포어 대기의 상태로 된다.
MPEG4 어플리케이션(프로세스(PP-k))이 처리가 종료되면(스텝 S203), 세마포어 up을 요구한다(스텝 S204). 이로써, 세마포어 대기의 java 애플릿(프로세스(PP-j))이 웨이크업 되고, 세마포어 down이 가능하게 된다.
이상의 동작을, 프레임마다 반복함에 의해, 프로세스(PP-0)에 의한 브라우저(1100)에 매입된 윈도우 내에서, 프로세스(PP-j)에 의한 java 애플릿의 컨텐츠(1200)와, 프로세스(PP-k)에 의한 MPEG4 영상 컨텐츠(1300)가 동기하여 표시된다.
다음에, 본 발명의 제 4 예의 병렬 처리 시스템에 관해, 도 29 이하를 참조하여 설명한다. 도 29는, 이 제 4 예의 병렬 처리 시스템의 구성을 도시한 블록도이고, 도 13과 공통의 구성 요소에 대해서는 같은 부호를 이용하고 있다.
도 29에 도시한 바와 같이, 제 4 예의 병렬 처리 시스템에서는, 시스템 버스(91)로 접속되는 복수의 프로세서(CPU)(P1 내지 Pn)(n은 2 이상의 정수)로 이루어지는 멀티 프로세서를 구성하고 있고, 프로세서(P1 내지 Pn)의 각 프로세서상에서 동작하는싱글 프로세서용 OS(300P1 내지 300Pn)를 실장하고 있다.
즉, 멀티 프로세서를, 논리적으로 제 1 프로세서측과 제 2 프로세서측의 2세트로 나누는 구성을 취하고 있지 않는 점이, 제 1 예부터 제 3 예와 상위하다.
이 제 4 예에서는 상기 제 3 예와 마찬가지로, 프로세서(P1 내지 Pn)의 병렬 처리를 행하기 위한 병렬 처리 통신부(400P1 내지 400Pn)와 제어 대리부(500P1 내지 500Pn)에 더하여 프로세서(P1 내지 Pn)상에서 실행되는 각 프로세스간에서의 통신을 실현하기 위한 프로세스간 통신부(1000P1 내지 1000Pn)를 구비하고 있다.
한편, 제 1 예와 같은 OS 서비스부(50P1 내지 50Pn)나 제 1 예부터 제 3 예와 같은 병렬 처리 통신부(400P1 내지 400Pn)를 구비하는 일 없이, 각 프로세서(P1 내지 Pn)상의 프로세스 제어가 가능하다. 또한 각 프로세서(P1 내지 Pn)상의 싱글 프로세서용 OS(300P1 내지 300Pn)에 관해서는 같은 OS일 필요는 없고 서로 달라도 좋다.
즉, 본 예에서도, 지금까지 멀티 프로세서용 OS에 실장되어 있던 프로세스간 통신의 기능을, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키는 싱글 프로세서용 OS에 의한 병렬 처리 시스템상에서 실현한 것이고, 유저 레벨에 의한 프로세스간 통신 기능의 실장을 가능하게 하고 있다.
이 각 프로세서(P1) 내지 프로세서(Pn) 내에 있어서의 각 프로세스의 실행에 관해서는, 다른 프로세서와의 배타 제어를 필요로 한 일 없이, 행하여진다.
개개의 프로세서(P1) 내지 프로세서(Pn) 내에 있어서의 프로세스간 통신 및 프로세서 상호의 프로세스간 통신에 관해서는, 제 3 예에서 설명한 바와 같이, 프로세스간 통신부(1000P1 내지 1000Pn)에 의한 세마포어 방식 및 메시지 큐 방식을 이용하여 행하여지고, 프로세스 상호의 동기 처리 및 데이터의 수수가 실행된다.
상기 병렬 처리 시스템에 적용되는 본 발명의 전원 관리 시스템에 관해 도 30을 참조하여 설명한다. 여기서는, 제 3 예에서 나타낸 병렬 처리 시스템에 대해 본 발명의 전원 관리 시스템을 적용하는 제 1의 실시예에 관해 설명한다.
제 1의 실시예에 의한 전원 관리 시스템은, 도 17에 도시한 병렬 처리 시스템의 프로세서(P0)에, 주전원 관리부(2000m)를 구비하고, 프로세서(P1 내지 Pn)에, 각각 부전원 관리부(2000s)를 구비하여 구성되어 있다. 또한, 각 프로세서(P0 내지 Pn)의 전원의 ON, OFF를 행하기 위한 전원 관리 디바이스(3000A)와, 싱글 프로세서용 OS(300P0 내지 Pn)로부터 인터럽트 제어를 하기 위한 인터럽트 디바이스(3000B)가 구비된다. 이 전원 관리 디바이스(3000A)와 인터럽트 디바이스(3000B)는, 싱글 프로세서용 OS에 구비되는 드라이버에 의해 제어 가능한 디바이스이다.
주전원 관리부(2000m)는, 병렬 처리 시스템을 구성하는 각 프로세서의 전원 관리에 관한 것으로, 다른 프로세서(P1 내지 Pn)의 전원 상태를 소프트웨어적으로 관리하는 기능과, 전원 상태의 변경 요구를 행하는 기능의 2개의 기능을 갖는다.
주전원 관리부(2000m)의 전원의 관리기능에서는, 다른 프로세서(P1 내지 Pn)에 관해 기동, 정지, 기동 도중(기동 시작부터 기동 상태가 안정되기 까지의 상태), 정지 도중(정지 시작로부터 정지 상태가 안정되기 까지의 상태)의 4개의 상태의 어느 상태에 있는가를 관리한다. 기동시에 주전원 관리부(2000m)는, 어느 프로세서(P1 내지 Pn)가 기동하고 있고, 부전원 관리부가 동작하고 있는가를 체크한다.
주전원 관리부(2000m)의 전원 상태의 변경 요구에서는, 다른 프로세서(P1 내지 Pn)의 일부 또는 전부에 관한 boot 요구(전원을 온으로 하여 시스템을 기동하기 위한 처리)나 halt 요구(시스템을 정지하고, 전원을 끄는 상태로 천이하기 위한 처리), 모든 프로세서의 halt 요구를 행한다.
부전원 관리부(2000s)는, 자신의 프로세서의 halt 처리를 행하는 기능, 기동시에 주전원 관리부(2000m)에 대해 기동 메시지를 송신하는 기능, 다른 프로세서의 boot 또는 halt를 주전원 관리부(2000m)에 요구하는 기능을 갖는다. 이하에서는, 시스템을 정지하고 전원을 끄는 상태로 천이하기 위한 처리로서의 halt 처리에 관해 설명하지만, halt 처리 이외에 시프트 다운 처리나 서스펜드 처리를 행하는 경우에 있어서도 마찬가지로 적용할 수 있다.
우선, 프로세서(P0)상의 프로세스가 다른 프로세서(Pn)를 boot하는 경우의 동작에 관해 도 31을 참조하여 설명한다.
(1) 프로세서(P0)상의 프로세스가 주전원 관리부(2000m)에 대해 프로세서(Pn)의 boot 요구를 행한다. 이 boot 요구에 있어서는, boot의 대상이 되는 프로세서인 프로세서(Pn)를 지정한다.
(2) 기동시의 상태 확인에 있어서, 프로세서(Pn)가 정지 상태라면, 주전원 관리부(2000m)는, 싱글 프로세서용 OS(300P0)를 경유하여 OS의 전원 관리 디바이스(3000A)를 액세스함에 의해, 프로세서(Pn)의 전원을 ON 한다. 그리고, 프로세서(Pn)의 상태를 기동 도중 상태로 변경한다.
(3) 프로세서(Pn)의 전원이 ON 되면, 그 싱글 프로세서용 OS(300Pn)가 기동하고, 부전원 관리부(2000s)도 기동한다.
(4) 뒤이어, 프로세서(Pn)의 부전원 관리부(2000s)가, 자신의 프로세스간 통신부(1000Pn)에 대해 boot한 취지를 나타내는 boot 완료 메시지를 송신한다.
(5) 프로세서(Pn)상의 프로세스간 통신부(1000Pn)는, 제어 처리 중계부(600)를 경유하여, 프로세서(P0)상의 프로세스간 통신부(1000P0)에 상기 boot 완료 메시지를 중계한다.
(6) 프로세서(P0)의 주전원 관리부(2000m)는, 프로세스간 통신부(1000P0)로부터 boot 완료 메시지를 수리함에 의해, 프로세서(Pn)의 상태를 기동 상태로 변경한다.
또한, 프로세서(Pn)가 정지 상태가 아니라, 정지 도중 상태인 경우, 처리(6)에서 정지 상태로 천이할 때까지 처리를 기다리고, 정지 상태로 된 시점에서 처리(2)부터 처리를 재실행한다.
또한, 처리(6)의 후에, boot 요구를 행한 프로세서(P0)의 프로세스에 대해, boot가 완료된 취지의 통지를 행하는 것도 가능하다. 예를 들면, 상기한 예에 있어서, 프로세서(Pn)의 boot가 완료될 때까지, 프로세서(P0)의 프로세스에 의한 처리가 대기 상태로 되는 경우에는, boot가 완료된 취지의 통지를 행함으로써 프로세서(P0)의 프로세스에 의한 처리를 재개할 수 있다.
또한, 프로세서(Pn)가 기동 상태 또는 기동 도중 상태인 경우에는, boot 요구를 무시한다.
이상에 의해, 프로세서(P0)상의 프로세스가 프로세서(Pn)를 boot하는 처리가 종료된다.
다음에, 프로세서(P0)상의 프로세스가 다른 프로세서(Pn)를 halt하는 경우의 동작에 관해 도 32를 참조하여 설명한다.
(1) 프로세서(P0)상의 프로세스가 주전원 관리부(2000m)에 대해 프로세서(Pn)의 halt 처리를 요구한다.
(2) 기동시의 상태 확인에 있어서, 프로세서(Pn)가 기동 상태라면, 주전원 관리부(2000m)는, 프로세스간 통신부(1000P0)에 halt 요구 메시지를 송신한다. 또한, 프로세서(Pn)의 상태를 정지 도중 상태로 변경한다.
(3) 프로세서(P0)의 프로세스간 통신부(1000P0)는, 제어 처리 중계부(600)를 경유하여, 프로세서(Pn)상의 프로세스간 통신부(1000Pn)에 상기 halt 요구 메시지를 중계한다.
(4) 프로세서(Pn)의 부전원 관리부(2000s)는, 프로세스간 통신부(1000Pn)로부터 상기 halt 요구 메시지를 수리한다.
(5) 뒤이어, 프로세서(Pn)상의 부전원 관리부(2000s)는, halt 요구라고 판단하고, halt 처리를 싱글 프로세서용 OS(300Pn)에 통지한다.
(6) 통지를 받은 싱글 프로세서용 OS(300Pn)는, halt 처리의 완료 후에, OS가 인터럽트 디바이스(3000B)에 의한 인터럽트를 사용하여 프로세서(P0)에 처리의 완료를 통지한다.
(7) 프로세서(P0)상의 싱글 프로세서용 OS(300P0)의 전원 관리 디바이스(3000A)용의 디바이스 드라이버가 해당 인터럽트를 수리하고, 주전원 관리부(2000m)에 통지한다.
(8) 통지를 받은 주전원 관리부(2000m)는, 싱글 프로세서용 OS(300P0)의 전원 관리 디바이스(3000A)를 경유하여 프로세서(Pn)의 전원을 OFF 하고, 프로세서(Pn)의 상태를 정지 상태로 변경한다.
여기서, halt 요구시에 프로세서(Pn)가 기동 상태가 아니라, 기동 도중 상태인 경우, 처리(8)에서 기동 상태로 천이할 때까지 처리를 기다리고, 기동 상태로 된 시점에서 처리(2)로부터 처리를 재실행한다.
또한, 프로세서(Pn)가 정지 상태 또는 정지 도중 상태인 경우에는, halt 요구를 무시한다.
이상에 의해, 프로세서(P0)상의 프로세스가 프로세서(Pn)를 halt하는 처리가 종료된다.
이상의 설명에서는, 프로세서(P0)의 프로세스로부터 다른 하나의 프로세서(Pn)의 boot 처리와 halt 처리를 행하는 경우에 관해 설명하였지만, 모든 다른 프로세서(P1 내지 Pn) 또는 일부(복수)의 다른 프로세서의 boot 요구 또는 halt 요구에 의거하여 상기 boot 처리 및 halt 처리를 각 프로세서마다 병렬로 실행하는 것이 가능하다.
또한, 상기 설명에 있어서, 프로세서(P0)의 프로세스로부터 프로세서(Pn)의 boot 요구 및 halt 요구를 행하는 경우를 설명하였지만, 다른 프로세서상의 프로세스로부터 boot 요구 및 halt 요구를 프로세서(P0)의 주전원 관리부(2000m)에 대해 송신하는 것도 가능하다. 이 경우의 boot 요구 및 halt 요구의 송신은, 프로세스간 통신부(1000P1 내지 1000Pn)에 의해 행한다.
또한, 처리(8)의 후에, halt 요구를 행한 프로세서(P0)의 프로세스에 대해, halt가 완료된 취지의 통지를 행하는 것도 가능하다. 예를 들면, 상기한 예에 있어서, 프로세서(Pn)의 halt가 완료될 때까지, 프로세서(P0)의 프로세스에 의한 처리가 대기 상태로 되는 경우에는, halt가 완료된 취지의 통지를 행함으로써 프로세서(P0)의 프로세스에 의한 처리를 재개할 수 있다.
이하, 제 1의 프로세서(P0)를 포함하는 모든 프로세서(P0 내지 Pn)의 halt를 행하는 경우의 동작에 관해 도 33을 참조하여 설명한다.
(1) 프로세서(P0)상의 프로세스가 주전원 관리부(2000m)에 대해 모든 프로세서의 halt를 요구한다.
(2) 기동시의 상태 확인에 있어서, 기동 상태의 프로세서가 있으면, 주전원 관리부(2000m)는, 프로세스간 통신부(1000P0)에 해당 기동 상태의 프로세서(대상의 프로세서)의 halt 요구 메시지를 송신한다. 또한, 해당 프로세서의 상태를 정지 도중 상태로 변경한다.
(3) 프로세서(P0)의 주전원 관리부(2000m)는, 싱글 프로세서용 OS(300P0)에halt 처리를 의뢰하고, 대상의 프로세서의 halt 완료를 기다린다.
(4) 프로세서(P0)의 프로세스간 통신부(1000P0)는, 제어 처리 중계부(600)를 경유하여, 대상의 프로세서상의 프로세스간 통신부에 상기 halt 요구 메시지를 중계한다.
(5) 대상의 프로세서의 부전원 관리부(2000s)는, 프로세스간 통신부로부터 상기 halt 요구 메시지를 수리한다.
(6) 뒤이어, 대상의 프로세서상의 부전원 관리부(2000s)는, halt 요구라고 판단하고, halt 처리를 싱글 프로세서용 OS에 통지한다.
(7) 통지를 받은 싱글 프로세서용 OS는, halt 처리의 완료 후에, OS의 인터럽트 디바이스(3000B)에 의한 인터럽트를 사용하여 프로세서(P0)에 처리의 완료를 통지한다.
(8) 프로세서(P0)상의 싱글 프로세서용 OS(300P0)의 전원 관리 디바이스(3000A)용의 디바이스 드라이버가 해당 인터럽트를 수리하고, 인터럽트원의 프로세서의 halt 처리의 완료를 인식한다.
(9) 그리고, 싱글 프로세서용 OS(300P0)의 전원 관리 디바이스(3000A)를 경유하여 대상의 프로세서의 전원을 OFF 한다.
(10) 전 프로세서로부터의 전halt 처리의 완료를 전원 관리 디바이스(3000A)용의 디바이스 드라이버가 인식하면, 해당 전원 관리 디바이스(3000A)를 경유하여 프로세서(P0)의 전원을 OFF 한다.
여기서, halt 요구시에 프로세서가 기동 상태가 아니라, 기동 도중 상태인경우, 기동 상태로 천이할 때까지 처리를 기다리고, 기동 상태로 된 시점에서 처리(2)부터 처리를 재실행한다.
또한, 프로세서가 정지 상태 또는 정지 도중 상태인 경우에는, halt 요구를 무시한다.
도 34는, 제 1 프로세서(P0)와 다른 프로세서(P1, P2)의 3개의 프로세서로 구성되는 병렬 처리 시스템에 제 1 실시예에 의한 전원 관리 시스템을 적용한 경우에 있어서의 전원 제어의 상태 천이를 도시하고 있다.
또한, 상기에서는 halt 요구와 boot 요구에 의거하여 프로세서의 전원을 OFF 또는 ON 한 경우를 설명하였지만, 전원의 OFF와 ON 대신에, suspend(서스펜드 : 프로세서의 중지)와 resume(리줌 : 프로세서의 복귀)을 행하도록 하여도 좋다.
또한, 전 프로세서의 halt 요구시 이외에 있어서는, 이상과 같이 suspend(서스펜드 : 프로세서의 중지)와 resume(리줌 : 프로세서의 복귀)을 행하고, 전 프로세서의 halt 요구시에 전원의 OFF를 행하도록 하는 것도 가능하다.
제 1의 실시예에 의한 전원 관리 시스템으로서, 상기한 바와 같이 boot, halt 요구에 의거하여, 전원 관리 디바이스(3000A)에 의해 프로세서의 전원의 ON과 OFF를 행하는 경우를 설명하였지만, 각 프로세서의 전원 전압이나 클록 주파수의 변경 요구를, 상술한 boot 요구 또는 halt 요구에 대한 처리와 같은 처리에 의해 실행하는 것도 가능하다. 예를 들면, 프로세서의 전원 전압을 0볼트로부터 임의의 볼트로 변경하는 요구인 경우에 boot 요구로서 처리하고, 전원 전압을 임의의 볼트로부터 0볼트로 변경하는 요구인 경우에 halt 요구로서 처리할 수 있다.
다음에, 병렬 처리 시스템에 적용되는 전원 관리 시스템의 제 2의 실시예에 관해, 도 35를 참조하여 설명한다.
본 실시예에 의한 전원 관리 시스템에 있어서 주전원 관리부에 관해서는, 제 1의 실시 예와 같이, 독자적인 프로세스로서 주전원 관리부(2000m)를 구비하는 것이 아니라, 제 1의 프로세서(P0)의 싱글 프로세서용 OS(300P0)에 구비하고 있는 전원 관리기능을 유효하게 활용하여 각 프로세서의 전원 상태를 관리하는 디바이스 드라이버로서 각 프로세서에 대응한 주전원 관리부(2000m0 내지 2000mn)를 마련하고 있다.
이들의 주전원 관리부(2000m0 내지 2000mn)는, 싱글 프로세서용 OS(300P0)의 디바이스 드라이버로서 탑재되고, 싱글 프로세서용 OS(300P0)에 미리 구비되어 있는 디바이스 관리를 위한 소정의 커맨드(요구)를, 전원 관리를 위한 커맨드(요구)로서 바꾸어 읽어서 이용함에 의해, 전원 상태의 변경 요구를 행하는 것이다,
예를 들면, 싱글 프로세서용 OS(300P0)에 미리 구비되어 있는 디바이스 관리를 위한 소정의 커맨드인 「probe」, 「remove」의 커맨드를, 각각 프로세서의 기동과 정지를 행하기 위한 커맨드로서 이용한다.
부전원 관리부에 관해서는, 다른 프로세서(P1 내지 Pn)의 싱글 프로세서용 OS(P1 내지 Pn)에 구비되어 있는 커널(K1 내지 Kn)의 하부조직으로서 실현되어 있고, 상기 프로세서(P0)에 마련된 주전원 관리부(2000m1 내지 2000mn)에 대응한 부전원 관리부(2000s1 내지 2000sn)가 각각 프로세서(P1 내지 Pn)에 구비되어 있다. 이들 부전원 관리부(2000s1 내지 2000sn)는, 대응하는 주전원 관리부(2000m0 내지2000mn)로부터의 요구 커맨드에 따라 전원 상태 변경을 위한 처리를 행한다.
뒤이어, 제 2의 실시예에 의한 전원 관리 시스템의 동작에 관해 설명한다.
우선, 프로세서(P0)상의 프로세스로부터 프로세서(Pn)를 기동하는 경우의 동작을 도 36을 참조하여 설명한다.
(1) 프로세서(P0)상의 프로세스가 싱글 프로세서용 OS(300P0)의 커널(K0) 경유로 디바이스로서의 프로세서(Pn)의 probe를 요구한다.
(2) 커널(K0)는, 프로세서(Pn)에 대응하는 주전원 관리부(2000mn)의 probe 함수를 호출한다.
(3) 주전원 관리부(2000mn)는, 전원 관리 디바이스(3000A)를 액세스함에 의해, 프로세서(Pn)의 전원을 ON으로 한다. 여기서, 주전원 관리부(2000mn)는, 디바이스의 상태(프로세서(Pn)의 상태)를 기동중으로 변경한다.
(4) 그리고, 주전원 관리부(2000mn)는, probe 함수의 처리를 마치고, 커널(K0)에 대해 처리를 되돌린다.
(5) 프로세서(Pn)의 전원 ON에 의해 프로세서(Pn)상의 커널(Kn)와 부전원 관리부(2000sn)가 기동한다.
(6) 커널(Kn)는 디바이스인 부전원 관리부(2000sn)의 초기화 함수를 호출한다.
(7) 부전원 관리부(2000sn)는, 초기화 함수에 의해 인터럽트 디바이스(3000B)에 액세스하고, 프로세서(P0)에 대해 기동 완료를 통지한다.
(8) 주전원 관리부(2000mn)는, 인터럽트를 수리하고, 디바이스의 상태(프로세서(Pn)의 상태)를 기동으로 변경한다.
상기한 동작에 있어서, 프로세서(Pn)의 기동 시간이 빠른 경우에는, 주전원 관리부(2000mn)가, 곧바로 처리(4)를 행하지 않고, 처리(5)로부터 처리(8)의 완료를 기다리고 나서 처리(4)를 행하는 것도 가능하다. 또한, 프로세서(Pn)의 상태가 기동 도중이면 해당 요구를 무시하고, 정지 도중이면 처리를 중단하고, 상태가 정지로 변경된 시점에서 처리를 재개한다.
이상의 설명에서는, 프로세서(P0)의 프로세스로부터 다른 하나의 프로세서(Pn)의 probe 처리와 remove 처리를 행하는 경우에 관해 설명하였지만, 모든 다른 프로세서(P1 내지 Pn) 또는 일부(복수)의 다른 프로세서의 boot 요구 또는 halt 요구에 의거하여 상기 boot 처리 및 halt 처리를 각 프로세서마다 병렬로 실행하는 것이 가능하다.
또한, 상기 설명에서는, probe 요구에 의해 프로세서를 기동하는 경우를 설명하였지만, 예를 들면 resume 요구에 의해 휴지(休止) 상태의 프로세서를 복귀시키는 경우도 「probe」를 「resume」로 변경함에 의해 상기한 바와 마찬가지 처리로 달성할 수 있다.
다음에, 프로세서(P0)상의 프로세스로부터 프로세서(Pn)를 정지하는 경우의 동작을 도 37을 참조하여 설명한다.
(1) 프로세서(P0)상의 프로세스가 싱글 프로세서용 OS(300P0)의 커널(K0) 경유로 디바이스로서의 프로세서(Pn)의 remove를 요구한다.
(2) 커널(K0)는, 프로세서(Pn)에 대응하는 주전원 관리부(2000mn)의 remove함수를 호출한다.
(3) 주전원 관리부(2000mn)는, 제어 처리 중계부(600)에 remove 요구를 송신한다. 여기서, 주전원 관리부(2000mn)는, 디바이스의 상태(프로세서(Pn)의 상태)를 정지중으로 변경한다.
(4) 그리고, 주전원 관리부(2000mn)는, remove 함수의 처리를 마치고, 커널(K0)에 대해 처리를 되돌린다.
(5) 프로세서(Pn)의 부전원 관리부(2000sn)가, 제어 처리 중계부(600)로부터 remove 요구를 수리한다.
(6) 디바이스인 부전원 관리부(2000sn)는, remove 요구에 필요한 처리를 행하고, 인터럽트 디바이스(3000B)에 액세스하고, 프로세서(P0)에 대해 정지 완료를 통지한다.
(7) 주전원 관리부(2000mn)는, 인터럽트를 수리하고, 디바이스의 상태(프로세서(Pn)의 상태)를 정지로 변경함과 함께, 전원 관리 디바이스(3000A)에 액세스하고 프로세서(Pn)의 전원을 OFF 한다.
상기한 동작에 있어서, 프로세서(Pn)의 정지 시간이 빠른 경우에는, 주전원 관리부(2000mn)가, 곧바로 처리(4)를 행하지 않고, 처리(5)부터 처리(7)의 완료를 기다리고 나서 처리(4)를 행하는 것도 가능하다.
상기 설명에서는, remove 요구에 의해 프로세서를 정지하는 경우를 설명하였지만, 예를 들면 suspend 요구에 의해 기동 상태의 프로세서를 휴지시키는 경우도 「remove」를 「suspend」로 변경함에 의해 상기한 바와 마찬가지의 처리로 달성할수 있다.
이상의 설명에서는, 프로세서(P0)의 프로세스로부터 다른 하나의 프로세서(Pn)의 probe 처리와 remove 처리를 행하는 경우에 관해 설명하였지만, 모든 다른 프로세서(P1 내지 Pn) 또는 일부(복수)의 다른 프로세서의 probe 요구 또는 remove 요구에 의거하여 상기 probe 처리 및 remove 처리를 각 프로세서마다 병렬로 실행하는 것이 가능하다.
또한, 프로세서(P0) 자신을 정지하는 경우의 동작에 관해 도 38을 참조하여 설명한다.
(1) 프로세서(P0)상의 프로세스가 커널(K0) 경유로 디바이스로서의 프로세서(P0)의 remove를 요구한다.
(2) 커널(K0)는, 주전원 관리부(2000m0)의 remove 함수를 호출한다.
(3) 주전원 관리부(2000m0)는, 다른 주전원 관리부가 전부 remove 처리를 종료하고 정지 상태로 되어 있는 것을 확인하고(대응하는 프로세서(P1 내지 Pn)의 전원이 OFF로 되어 있는 것의 확인), 디바이스의 상태(프로세서(P0)의 상태)를 정지중으로 변경하고, remove에 필요한 처리를 행한다.
(4) 주전원 관리부(2000m0)는, 디바이스의 상태(프로세서(P0)의 상태)를 정지로 변경하고, 전원 관리 디바이스(3000A)에 액세스하고 프로세서(P0)의 전원을 OFF 한다.
또한, probe 요구 및 remove 요구시에, 대상의 프로세서가 상태 도중에 있는 경우에는, 그러한 요구를 전부 수리하지 않고 무시하도록 할 수도 있고, 또한,probe 요구 및 remove 요구를 대기 상태로 하고, 프로세서의 전원 상태가 확정된 후에 그들의 요구를 처리하도록 하여도 좋다.
전 프로세서의 remove 요구에 대해서는, 프로세서(P1 내지 Pn)에 대해 도 37에 의한 remove 처리를 행함과 함께, 프로세서(P0)에 대해서는 도 38에 의한 처리를 행한다.
제 2의 실시예에 의한 전원 관리 시스템으로서는, 상기한 바와 같이 probe, remove, suspend, resume 요구 이외에, scale 요구를 사용하여 각 프로세서의 전원 전압이나 클록 주파수의 변경을 행하도록 하여도 좋다.
또한, 상기 설명한 제 1의 실시예 및 제 2의 실시예는, 제 3 예의 병렬 처리 시스템 이외에 마찬가지로 적용할 수 있다. 제 1 예 및 제 2의 예의 병렬 처리 시스템에 대해 본 발명의 제 1의 실시예 및 제 2의 실시예에 의한 전원 관리 시스템을 적용하는 경우에는, 프로세스간에서의 통신을 실현하기 위한 프로세스간 통신부(1000P0 내지 1000Pn)를 각 프로세서에 구비함으로써 마찬가지로 실현하는 것이 가능하다.
또한, 상기 각 실시 예의 병렬 처리 시스템은, 병렬 처리부, OS 서비스부, 제어 처리 중계부, 대리부, 프로세스간 통신부의 각 기능을 갖는 병렬 처리 프로그램에 의해 실현할 수 있고, 전원 관리 시스템에 대해서도, 주전원 관리부 및 부전원 관리부의 기능을 갖는 전원 관리 프로그램에 의해 실현할 수 있다. 이들의 프로그램은, 자기 디스크, 반도체 메모리 그 밖의 기록 매체에 격납되고, 그 기록 매체로부터 컴퓨터 처리 장치에 로드되고, 컴퓨터 처리 장치의 동작을 제어함에 의해,상술한 각 기능을 실현한다.
이상 바람직한 실시예 및 구체적인 예를 들어 본 발명을 설명하였지만, 본 발명은 반드시 상기 실시예 및 구체적인 예로 한정되는 것이 아니고, 그 기술적 사상의 범위 내에서 다양하게 변형하여 실시할 수 있다.
이상 설명한 바와 같이 본 발명에 의하면 멀티 프로세서상에서 싱글 프로세서용 OS와 기존의 어플리케이션을 그들에 개조를 가하는 일 없이 동작시키고, 그 기존의 어플리케이션에 대해 멀티 프로세서에 의한 병렬 처리를 실현할 수 있도록 한 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서, 멀티 프로세서용 OS에 의한 병렬 처리 시스템과 같은 복잡한 제어를 필요로 한 일 없이, 또한 OS의 대폭적인 개조도 행하는 일 없이, 간단한 제어로 전원 관리를 행하는 것이 가능해진다.
본 발명이 그 예시적인 실시예를 통해 설명되고 상술되었지만, 본 발명의 취지와 범위를 벗어나지 않으면서, 상기 실시예 및 여러 다른 변경예, 수정 및 부가예가 수행될 수 있음을 당업자는 주지해야 한다. 따라서, 본 발명은 상기 특정 실시예에 제한되는 것이 아니라, 첨부된 특허청구범위에 포괄되는 범위 및 그 등가의 의미 내에서 구현될 수 있는 모든 가능한 실시예를 포함하는 것으로 이해되어져야 한다.
본 발명에 따르면, 멀티 프로세서상에서 싱글 프로세서용 OS와 기존의 어플리케이션을 그것들에 개조를 가하는 일 없이 동작시키고, 그 기존의 어플리케이션에 대해 멀티 프로세서에 의한 병렬 처리를 실현할 수 있도록 한 싱글 프로세서용OS에 의한 병렬 처리 시스템상에서, 프로세서의 전원 관리를 간단한 제어로 실현하는 것을 가능하게 하는 전원 관리 시스템 및 전원 관리 프로그램을 제공하는 것이 가능하다.

Claims (33)

  1. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    상기 멀티 프로세서를 논리적으로, 제 1의 프로세서측과 제 2의 프로세서측의 2개로 나누고,
    상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를, 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 제 1의 프로세서측의 프로세서가, 어느 하나의 프로세서상의 처리 단위로부터의 프로세서의 기동 또는 정지의 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 기동 또는 정지를 행함과 함께,
    상기 기동 또는 정지의 요구를 받은 프로세서가, 상기 제 1의 프로세서측으로부터의 통지에 의거하여 상기 기동 또는 정지를 위해 필요한 처리를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  2. 제 1항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  3. 제 1항에 있어서,
    상기 프로세서의 기동 또는 정지의 요구가, boot 요구 또는 halt 요구인 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  4. 제 1항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고,
    상기 프로세서의 기동 또는 정지의 요구가, boot 요구 또는 halt 요구인 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  5. 제 1항에 있어서,
    상기 제 1의 프로세서측의 상기 싱글 프로세서용 OS에, 상기 싱글 프로세서용 OS의 디바이스로서 탑재되고, 상기 제 2의 프로세서의 전원 상태를 관리함과 함께, 싱글 프로세서용 OS에 미리 구비되어 있는 디바이스 관리를 위한 소정의 요구를, 전원 관리를 위한 요구로서 이용하여 전원 상태의 변경 요구를 행하는 주전원 관리부를 마련하고,
    상기 제 2의 프로세서측의 상기 싱글 프로세서용 OS에, 상기 기동 또는 정지를 위해 필요한 처리를 행함과 함께, 기동시에 상기 주전원 관리부에 대해 기동 메시지를 송신하는 기능을 갖는 부전원 관리부를 구비하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  6. 제 5항에 있어서,
    상기 주전원 관리부를, 제 2의 프로세서측의 각 프로세서에 대응시켜서 복수 마련하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  7. 제 5항에 있어서,
    디바이스 관리를 위한 소정의 요구인 probe 또는 remove 요구를, 상기 프로세서의 기동 또는 정지 요구로서 바꾸어 읽는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  8. 제 5항에 있어서,
    상기 주전원 관리부를, 제 2의 프로세서측의 각 프로세서에 대응시켜서 복수 마련하고,
    디바이스 관리를 위한 소정의 요구인 probe 또는 remove 요구를, 상기 프로세서의 기동 또는 정지 요구로서 바꾸어 읽는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  9. 제 1항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고,
    상기 제 1 프로세서측의 프로세서 및 상기 제 2 프로세서측의 프로세서상의처리 단위 사이에 있어서의, 동기적인 처리 및 데이터 수수를 가능하게 하는 프로세스간 통신부를, 상기 제 1 프로세서측의 프로세서 및 상기 제 2 프로세서측의 프로세서에 구비하고,
    상기 프로세스간 통신부에 의해, 상기 주전원 관리부와 상기 부전원 관리부 사이에 있어서의, 전원 관리를 위한 동기적인 처리를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  10. 제 1항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고,
    상기 주전원 관리부 및 상기 부전원 관리부를 모듈화하여 조립하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  11. 제 1항에 있어서,
    상기 기동 또는 정지의 요구가 이루어진 상기 프로세서가, 기동 도중 상태또는 정지 도중 상태인 경우에, 상기 도중 상태가 확정될 때까지 상기 요구를 대기시키는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  12. 제 1항에 있어서,
    상기 기동 또는 정지의 요구가 이루어진 상기 프로세서가, 기동 도중 상태 또는 정지 도중 상태인 경우에, 상기 요구를 무시하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  13. 제 1항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고,
    상기 프로세서의 기동 요구에 있어서, 요구를 받은 상기 주전원 관리부가, 요구된 프로세서를 기동함과 함께,
    기동된 프로세서의 상기 부전원 관리부로부터의 기동 완료의 통지를 수리함에 의해, 상기 기동된 프로세서의 전원 상태를 기동 상태로 변경하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  14. 제 1항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고,
    상기 프로세서의 정지 요구에 있어서, 요구를 받은 상기 주전원 관리부가, 요구된 프로세서의 상기 부전원 관리부에 대해, 정지에 필요한 처리를 요구하고,
    상기 프로세서로부터의 처리 완료의 통지를 수리함에 의해, 상기 요구된 프로세서를 정지시키고, 상기 기동된 프로세서의 전원 상태를 정지 상태로 변경하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  15. 제 1항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리부를 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리부에 요구하는 기능을 갖는 부전원 관리부를 구비하고,
    모든 프로세서의 정지 요구에 있어서, 요구를 받은 상기 주전원 관리부가, 다른 프로세서의 상기 부전원 관리부에 대해, 정지에 필요한 처리를 요구하고, 상기 다른 프로세서로부터의 처리 완료의 통지를 수리함에 의해, 상기 다른 프로세서를 정지시키고, 그 후, 상기 싱글 프로세서용 OS의 디바이스를 제어하여 자신 프로세서를 정지시키는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  16. 제 1항에 있어서,
    프로세서의 기동 또는 정지에 더하여, 프로세서의 휴지 또는 복귀의 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 휴지 또는 복귀를 행함과 함께,
    상기 휴지 또는 복귀의 요구를 받은 프로세서가, 상기 제 1의 프로세서측으로부터의 통지에 의거하여 상기 휴지 또는 복귀를 위해 필요한 처리를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  17. 제 1항에 있어서,
    프로세서의 기동 또는 정지에 더하여, 프로세서의 전원 전압 또는 클록 주파수의 변경 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 전원 전압 또는 클록 주파수의 변경을 행함과 함께,
    상기 전원 전압 또는 클록 주파수의 변경을 받은 프로세서가, 상기 제 1의 프로세서측으로부터의 통지에 의거하여 상기 전원 전압 또는 클록 주파수의 변경을 위해 필요한 처리를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템.
  18. 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    상기 멀티 프로세서를 논리적으로, 제 1의 프로세서측과 제 2의 프로세서측의 2개로 나누고,
    상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를, 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 제 1의 프로세서측의 프로세서가, 어느 하나의 프로세서상의 처리 단위로부터의 프로세서의 기동 또는 정지의 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 기동 또는 정지를 행하는 기능을 실행하고,
    상기 기동 또는 정지의 요구를 받은 프로세서가, 상기 하나의 프로세서로부터의 통지에 의거하여 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능을 실행하는
    기능을 갖는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  19. 제 18항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리 프로그램을 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리 프로그램에 요구하는 기능을 갖는 부전원 관리 프로그램을 구비하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  20. 제 18항에 있어서,
    상기 프로세서의 기동 또는 정지의 요구가, boot 요구 또는 halt 요구인 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  21. 제 18항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리 프로그램을 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리 프로그램에 요구하는 기능을 갖는 부전원 관리 프로그램을 구비하고,
    상기 프로세서의 기동 또는 정지의 요구가, boot 요구 또는 halt 요구인 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  22. 제 18항에 있어서,
    상기 제 1의 프로세서측의 상기 싱글 프로세서용 OS에, 상기 싱글 프로세서용 OS의 디바이스로서 탑재되고, 상기 제 2의 프로세서의 전원 상태를 관리함과 함께, 싱글 프로세서용 OS에 미리 구비되어 있는 디바이스 관리를 위한 소정의 요구를, 전원 관리를 위한 요구로서 이용하여 전원 상태의 변경 요구를 행하는 주전원 관리 프로그램을 마련하고,
    상기 제 2의 프로세서측의 상기 싱글 프로세서용 OS에, 상기 기동 또는 정지를 위해 필요한 처리를 행함과 함께, 기동시에 상기 주전원 관리 프로그램에 대해 기동 메시지를 송신하는 기능을 갖는 부전원 관리 프로그램을 구비하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  23. 제 22항에 있어서,
    디바이스 관리를 위한 소정의 요구인 probe 또는 remove 요구를, 상기 프로세서의 기동 또는 정지 요구로서 바꾸어 읽는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  24. 제 18항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리 프로그램을 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리 프로그램에 요구하는 기능을 갖는 부전원 관리 프로그램을 구비하고,
    상기 제 1 프로세서측의 프로세서 및 상기 제 2 프로세서측의 프로세서상의 처리 단위 사이에 있어서의, 동기적인 처리 및 데이터 수수를 가능하게 하는 프로세스간 통신부를, 상기 제 1 프로세서측의 프로세서 및 상기 제 2 프로세서측의 프로세서에 구비하고,
    상기 프로세스간 통신부에 의해, 상기 주전원 관리 프로그램과 상기 부전원관리 프로그램 사이에 있어서의, 전원 관리를 위한 동기적인 처리를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  25. 제 18항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리 프로그램을 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리 프로그램에 요구하는 기능을 갖는 부전원 관리 프로그램을 구비하고,
    상기 주전원 관리 프로그램 및 상기 부전원 관리 프로그램을 모듈화하여 조립하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  26. 제 18항에 있어서,
    상기 기동 또는 정지의 요구가 이루어진 상기 프로세서가, 기동 도중 상태 또는 정지 도중 상태인 경우에, 상기 도중 상태가 확정될 때까지 상기 요구를 대기시키는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  27. 제 18항에 있어서,
    상기 기동 또는 정지의 요구가 이루어진 상기 프로세서가, 기동 도중 상태 또는 정지 도중 상태인 경우에, 상기 요구를 무시하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  28. 제 18항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리 프로그램을 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리 프로그램에 요구하는 기능을 갖는 부전원 관리 프로그램을 구비하고,
    상기 프로세서의 기동 요구에 있어서, 요구를 받은 상기 주전원 관리 프로그램이, 요구된 프로세서를 기동함과 함께,
    기동된 프로세서의 상기 부전원 관리 프로그램으로부터의 기동 완료의 통지를 수리함에 의해, 상기 기동된 프로세서의 전원 상태를 기동 상태로 변경하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  29. 제 18항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리 프로그램을 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리 프로그램에 요구하는 기능을 갖는 부전원 관리 프로그램을 구비하고,
    상기 프로세서의 정지 요구에 있어서, 요구를 받은 상기 주전원 관리 프로그램이, 요구된 프로세서의 상기 부전원 관리 프로그램에 대해, 정지에 필요한 처리를 요구하고,
    상기 프로세서로부터의 처리 완료의 통지를 수리함에 의해, 상기 요구된 프로세서를 정지시키고, 상기 기동된 프로세서의 전원 상태를 정지 상태로 변경하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  30. 제 18항에 있어서,
    상기 제 1의 프로세서측에, 각 프로세서의 전원 관리에 관한 것으로, 상기 제 2의 프로세서의 전원 상태를 관리하는 기능과, 상기 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 기능을 갖는 주전원 관리 프로그램을 구비하고,
    상기 제 2의 프로세서측에, 상기 기동 또는 정지를 위해 필요한 처리를 행하는 기능, 다른 프로세서의 기동 또는 정지를 상기 주전원 관리 프로그램에 요구하는 기능을 갖는 부전원 관리 프로그램을 구비하고,
    모든 프로세서의 정지 요구에 있어서, 요구를 받은 상기 주전원 관리 프로그램이, 다른 프로세서의 상기 부전원 관리 프로그램에 대해, 정지에 필요한 처리를 요구하고, 상기 다른 프로세서로부터의 처리 완료의 통지를 수리함에 의해, 상기 다른 프로세서를 정지시키고, 그 후, 상기 싱글 프로세서용 OS의 디바이스를 제어하여 자신 프로세서를 정지시키는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  31. 제 18항에 있어서,
    프로세서의 기동 또는 정지에 더하여, 프로세서의 휴지 또는 복귀의 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 휴지 또는 복귀를 행함과 함께,
    상기 휴지 또는 복귀의 요구를 받은 프로세서가, 상기 제 1의 프로세서측으로부터의 통지에 의거하여 상기 휴지 또는 복귀를 위해 필요한 처리를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  32. 제 18항에 있어서,
    프로세서의 기동 또는 정지에 더하여, 프로세서의 전원 전압 또는 클록 주파수의 변경 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 전원 전압 또는 클록 주파수의 변경을 행함과 함께,
    상기 전원 전압 또는 클록 주파수의 변경을 받은 프로세서가, 상기 제 1의 프로세서측으로부터의 통지에 의거하여 상기 전원 전압 또는 클록 주파수의 변경을 위해 필요한 처리를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 프로그램.
  33. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리 시스템으로서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를, 다른 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 하나의 프로세서가, 어느 하나의 프로세서상의 처리 단위로부터의 프로세서의 기동 또는 정지의 요구를 접수하고, 상기 싱글 프로세서용 OS의 디바이스를 제어함에 의해, 요구된 프로세서의 기동 또는 정지를 행함과 함께,
    상기 기동 또는 정지의 요구를 받은 프로세서가, 상기 하나의 프로세서로부터의 통지에 의거하여 상기 기동 또는 정지를 위해 필요한 처리를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서의 전원 관리시스템.
KR1020040037473A 2003-05-27 2004-05-25 병렬 처리 시스템, 병렬 처리 프로그램을 기록하는 컴퓨터 판독가능한 기록 매체 및 병렬 처리 방법 KR100708952B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003149859A JP4196333B2 (ja) 2003-05-27 2003-05-27 並列処理システム及び並列処理プログラム
JPJP-P-2003-00149859 2003-05-27

Publications (2)

Publication Number Publication Date
KR20040102335A true KR20040102335A (ko) 2004-12-04
KR100708952B1 KR100708952B1 (ko) 2007-04-18

Family

ID=32677674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040037473A KR100708952B1 (ko) 2003-05-27 2004-05-25 병렬 처리 시스템, 병렬 처리 프로그램을 기록하는 컴퓨터 판독가능한 기록 매체 및 병렬 처리 방법

Country Status (5)

Country Link
US (1) US7325148B2 (ko)
JP (1) JP4196333B2 (ko)
KR (1) KR100708952B1 (ko)
CN (1) CN100485583C (ko)
GB (1) GB2402519B (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4051703B2 (ja) * 2003-03-31 2008-02-27 日本電気株式会社 シングルプロセッサ向けosによる並列処理システム、並列処理プログラム
JP4062441B2 (ja) * 2003-07-18 2008-03-19 日本電気株式会社 並列処理システム及び並列処理プログラム
US7398403B2 (en) * 2004-07-01 2008-07-08 Matsushita Electric Industrial Co., Ltd. Multiprocessor control apparatus, control method thereof, and integrated circuit
US8020141B2 (en) 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US20060294401A1 (en) * 2005-06-24 2006-12-28 Dell Products L.P. Power management of multiple processors
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US7778822B2 (en) * 2006-05-19 2010-08-17 Sony Ericsson Mobile Communications Ab Allocating audio processing among a plurality of processing units with a global synchronization pulse
US7739528B2 (en) * 2006-06-09 2010-06-15 Broadcom Corporation Method for managing and controlling the low power modes for an integrated circuit device
US8032898B2 (en) * 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
JP4748057B2 (ja) * 2006-12-28 2011-08-17 ソニー株式会社 情報処理装置、起動方法、およびプログラム
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US20080244507A1 (en) * 2007-03-30 2008-10-02 Microsoft Corporation Homogeneous Programming For Heterogeneous Multiprocessor Systems
US8086885B2 (en) * 2007-12-14 2011-12-27 Nokia Corporation Runtime control of system performance
US8171321B2 (en) * 2007-12-26 2012-05-01 Intel Corporation Method and apparatus for cost and power efficient, scalable operating system independent services
US7984317B2 (en) * 2008-03-24 2011-07-19 Apple Inc. Hardware-based power management of functional blocks
JP2009266178A (ja) * 2008-04-30 2009-11-12 Fujitsu Ltd 中継装置および中継システム
JP4934642B2 (ja) * 2008-06-11 2012-05-16 株式会社日立製作所 計算機システム
JP4868012B2 (ja) * 2009-03-09 2012-02-01 日本電気株式会社 コンピュータシステム、コンピュータシステムの制御方法、及びプログラム
JP2011086061A (ja) * 2009-10-14 2011-04-28 Mitsubishi Electric Corp 並列信号処理装置
US9501705B2 (en) * 2009-12-15 2016-11-22 Micron Technology, Inc. Methods and apparatuses for reducing power consumption in a pattern recognition processor
KR101155202B1 (ko) 2009-12-24 2012-06-13 포항공과대학교 산학협력단 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
JP2011170709A (ja) * 2010-02-19 2011-09-01 Ricoh Co Ltd ネットワーク制御装置、画像形成装置、画像形成システム、省エネ制御方法、及び省エネ制御プログラム
US20130173901A1 (en) * 2010-11-01 2013-07-04 Raphael Gay Multi-processor computer systems and methods
US8862905B2 (en) * 2011-02-17 2014-10-14 Oracle International Corporation Collecting and analysing telemetry data to dynamically cap power and temperature of a computer system by specifying virtual duty cycles for processes executing on a processor
WO2012120654A1 (ja) * 2011-03-08 2012-09-13 富士通株式会社 タスクスケジューリング方法およびマルチコアシステム
US8972763B2 (en) * 2011-12-05 2015-03-03 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US9619240B2 (en) 2012-02-04 2017-04-11 Empire Technology Development Llc Core-level dynamic voltage and frequency scaling in a chip multiprocessor
WO2013117225A1 (en) * 2012-02-09 2013-08-15 Telefonaktiebolaget L M Ericsson (Publ) Distributed mechanism for minimizing resource consumption
JP6380261B2 (ja) 2015-06-29 2018-08-29 京セラドキュメントソリューションズ株式会社 電子機器および給電制御プログラム
EP3611615A4 (en) * 2017-04-19 2020-04-29 Guangdong Oppo Mobile Telecommunications Corp., Ltd. METHOD AND DEVICE FOR ACCELERATED START-UP OF AN APPLICATION AND TERMINAL
US10528118B2 (en) * 2017-04-21 2020-01-07 Intel Corporation Dynamically power on/off register files during execution

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2570852B1 (fr) * 1984-09-21 1989-12-15 Trace Reseau d'ordinateurs pilotes
JPH0778785B2 (ja) * 1986-03-29 1995-08-23 株式会社東芝 プロセッサ選択方法
US5142684A (en) 1989-06-23 1992-08-25 Hand Held Products, Inc. Power conservation in microprocessor controlled devices
JP2769367B2 (ja) 1989-09-28 1998-06-25 株式会社日立製作所 マルチプロセッサスケジューリング方法
JP2831083B2 (ja) 1990-03-08 1998-12-02 株式会社日立製作所 マルチプロセッサシステムおよび割り込み制御装置
JPH07219913A (ja) * 1994-01-28 1995-08-18 Fujitsu Ltd マルチプロセッサシステムの制御方法及び装置
KR100326156B1 (ko) * 1995-04-13 2002-06-29 윤종용 듀얼프로세서간인터페이스장치
US5940785A (en) * 1996-04-29 1999-08-17 International Business Machines Corporation Performance-temperature optimization by cooperatively varying the voltage and frequency of a circuit
JPH1027043A (ja) * 1996-07-09 1998-01-27 I S A:Kk ネットワーク機能を有する起動停止制御装置
US5790817A (en) * 1996-09-25 1998-08-04 Advanced Micro Devices, Inc. Configurable digital wireless and wired communications system architecture for implementing baseband functionality
KR19980027320A (ko) * 1996-10-15 1998-07-15 김광호 멀티 프로세서 컴퓨터 시스템
US6192391B1 (en) * 1997-05-30 2001-02-20 Nec Corporation Process stop method and apparatus for a distributed memory multi-processor system
KR100258080B1 (ko) * 1997-12-17 2000-06-01 이계철 입출력 동작 비교에 의한 이중화 제어장치
JPH11202988A (ja) 1998-01-13 1999-07-30 Hitachi Ltd システム消費電力制御方法
US6141762A (en) * 1998-08-03 2000-10-31 Nicol; Christopher J. Power reduction in a multiprocessor digital signal processor based on processor load
JP2001109729A (ja) * 1999-10-12 2001-04-20 Nec Corp マルチプロセッサシステムにおける消費電力制御装置および方法
JP2002099433A (ja) * 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
US6993571B2 (en) * 2001-08-16 2006-01-31 International Business Machines Corporation Power conservation in a server cluster
JP2003058515A (ja) 2001-08-21 2003-02-28 Nippon Telegr & Teleph Corp <Ntt> プロセッサ間コマンド処理装置、疎結合マルチプロセッサ装置およびコマンド処理方法
US7065641B2 (en) * 2002-06-13 2006-06-20 Intel Corporation Weighted processor selection apparatus and method for use in multiprocessor systems

Also Published As

Publication number Publication date
GB2402519A (en) 2004-12-08
GB0411814D0 (en) 2004-06-30
US20040268171A1 (en) 2004-12-30
US7325148B2 (en) 2008-01-29
JP2004355153A (ja) 2004-12-16
CN1573656A (zh) 2005-02-02
JP4196333B2 (ja) 2008-12-17
GB2402519B (en) 2006-04-26
CN100485583C (zh) 2009-05-06
KR100708952B1 (ko) 2007-04-18

Similar Documents

Publication Publication Date Title
KR100708952B1 (ko) 병렬 처리 시스템, 병렬 처리 프로그램을 기록하는 컴퓨터 판독가능한 기록 매체 및 병렬 처리 방법
JP4062441B2 (ja) 並列処理システム及び並列処理プログラム
JP4051703B2 (ja) シングルプロセッサ向けosによる並列処理システム、並列処理プログラム
US8443377B2 (en) Parallel processing system running an OS for single processors and method thereof
KR101551321B1 (ko) 휴대용 컴퓨팅 디바이스에서 요청들을 스케쥴링하기 위한 방법 및 시스템
JP2000330806A (ja) 計算機システム
US8745629B2 (en) System and method of controlling power in an electronic device
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
US20110265093A1 (en) Computer System and Program Product
CN101876926A (zh) 一种非对称结构的软件三机热备容错方法
JP2000215072A (ja) プログラム実行装置及びそのプロセス移動方法並びにプロセス移動制御プログラムを格納した記憶媒体
WO2012016472A1 (zh) 多核CPU加载Linux操作系统的方法及系统
KR20040087898A (ko) 프로그램 처리 시스템 및 프로그램 처리 방법, 및컴퓨터·프로그램
JP3969308B2 (ja) シングルプロセッサ向けosによる並列処理システム
WO2022022185A1 (zh) 内核重启方法
JPH09319653A (ja) 情報処理装置、情報処理システム及びその制御方法
WO2023206693A1 (zh) 系统休眠方法及装置、系统唤醒方法及装置
JPS603027A (ja) コンピユ−タ処理システムにおける資源管理方式
GB2434008A (en) Inter-processor communication in a parallel processing system running an OS for single processors
JP2000105708A (ja) タスク管理方法およびマルチタスクos
JP2000235553A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100412

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee