KR20060049835A - 정보 처리 장치 및 정보 처리 방법과 프로그램 - Google Patents

정보 처리 장치 및 정보 처리 방법과 프로그램 Download PDF

Info

Publication number
KR20060049835A
KR20060049835A KR1020050060010A KR20050060010A KR20060049835A KR 20060049835 A KR20060049835 A KR 20060049835A KR 1020050060010 A KR1020050060010 A KR 1020050060010A KR 20050060010 A KR20050060010 A KR 20050060010A KR 20060049835 A KR20060049835 A KR 20060049835A
Authority
KR
South Korea
Prior art keywords
information processing
information
abnormality
processing
temperature
Prior art date
Application number
KR1020050060010A
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 KR20060049835A publication Critical patent/KR20060049835A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • 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]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

온도의 이상이 검출되었을 때, 분산 처리를 제어하기 위해, 단계 S21에 있어서, 타이머 인터럽트가 들어왔다고 판단된 경우, 단계 S22에 있어서, 온도 정보가 취득되고, 단계 S23에 있어서, 온도 관리 테이블이 갱신된다. 단계 S24에 있어서, 온도 정보에 이상값이 있었다고 판단된 경우, 단계 S25에 있어서, 인터럽트가 걸려, 어플리케이션 프로그램의 처리가 정지되고, 단계 S26에 있어서, 이상 발생시의 처리 1이 실행되어, 분산 처리가 제어된다. 단계 S27에 있어서, 단계 S26에 있어서 실행된 이상 발생시의 처리 1에 기초하여, 필요에 따라 논리 쓰레드(thread) 관리에 관한 테이블이 갱신되고, 단계 S28에 있어서, 어플리케이션 프로그램의 처리에 대한 인터럽트가 해제되고, 처리는 단계 S21로 되돌아가, 그 이후의 처리가 반복된다.
서브 프로세서, 로컬 스토리지, 정보 처리 컨트롤러, 어플리케이션 프로그램, 메인 메모리

Description

정보 처리 장치 및 정보 처리 방법과 프로그램{INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD AND PROGRAM}
도 1은 본 발명을 적용한 통신 시스템의 일 실시 형태를 도시하는 도면.
도 2는 전원부의 구성에 대하여 설명하기 위한 도면.
도 3은 메인 메모리를 설명하는 도면.
도 4는 서브 프로세서의 로컬 스토리지를 설명하는 도면.
도 5는 키 관리 테이블을 설명하는 도면.
도 6은 소프트웨어 셀의 구성의 예를 도시하는 도면.
도 7은 DMA 커맨드가 스테이터스 회신 커맨드인 경우에 있어서의 소프트웨어 셀의 데이터 영역의 구조를 도시하는 도면.
도 8은 도 1의 정보 처리 컨트롤러의 메인 메모리가 기억하는 소프트웨어의 구성을 도시하는 도면.
도 9는 본 발명을 적용한 정보 처리 장치의 구성을 도시하는 도면.
도 10은 도 9의 정보 처리 컨트롤러의 칩 내의 구성에 대하여 설명하기 위한 도면.
도 11은 도 9의 정보 처리 컨트롤러의 메인 메모리가 기억하는 소프트웨어의 구성을 도시하는 도면.
도 12는 도 9의 정보 처리 컨트롤러가 실행 가능한 기능에 대하여 설명하기 위한 기능 블록도.
도 13은 온도 관리 테이블에 대하여 설명하기 위한 도면.
도 14는 어플리케이션 프로그램 실행 처리 1에 대하여 설명하기 위한 플로우차트.
도 15는 온도 정보 관리 처리 1에 대하여 설명하기 위한 플로우차트.
도 16은 이상 발생시의 처리 1에 대하여 설명하기 위한 플로우차트.
도 17은 처리의 이동에 대하여 설명하기 위한 도면.
도 18은 본 발명을 적용한 정보 처리 컨트롤러의 구성을 도시하는 도면.
도 19는 도 18의 정보 처리 장치의 칩 내의 구성에 대하여 설명하기 위한 도면.
도 20은 도 18의 정보 처리 컨트롤러의 메인 메모리가 기억하는 소프트웨어의 구성을 도시하는 도면.
도 21은 도 18의 정보 처리 컨트롤러가 제1 패턴에 있어서 실행 가능한 기능에 대하여 설명하기 위한 기능 블록도.
도 22는 마스터 장치의 온도 정보 관리 처리에 대하여 설명하기 위한 플로우차트.
도 23은 이상 발생시의 처리 2에 대하여 설명하기 위한 플로우차트.
도 24는 슬레이브 장치의 온도 정보 관리 처리에 대하여 설명하기 위한 플로우차트.
도 25는 도 18의 정보 처리 컨트롤러가 제2 패턴에 있어서 실행 가능한 기능에 대하여 설명하기 위한 기능 블록도.
도 26은 온도 정보 회신 커맨드에 대하여 설명하기 위한 도면.
도 27은 온도 정보 관리 처리 2에 대하여 설명하기 위한 플로우차트.
도 28은 이상 발생시의 처리 3에 대하여 설명하기 위한 플로우차트.
도 29는 도 18의 정보 처리 컨트롤러가 제3 패턴에 있어서 실행 가능한 기능에 대하여 설명하기 위한 기능 블록도.
도 30은 서브 프로세서 프로그램 이동 요구 커맨드에 대하여 설명하기 위한 도면.
도 31은 서브 프로세서 프로그램 이동 회신 커맨드에 대하여 설명하기 위한 도면.
도 32는 온도 정보 관리 처리 3에 대하여 설명하기 위한 플로우차트.
도 33은 이상 발생시의 처리 4에 대하여 설명하기 위한 플로우차트.
도 34는 본 발명을 적용한 복수의 정보 처리 컨트롤러를 구비하는 정보 처리 장치의 구성을 도시하는 도면.
도 35는 본 발명을 적용한 정보 처리 컨트롤러의 구성을 도시하는 도면.
도 36은 전력 측정부의 전력 측정 방법에 대하여 설명하기 위한 도면.
도 37은 도 35의 정보 처리 컨트롤러의 메인 메모리가 기억하는 소프트웨어의 구성을 도시하는 도면.
도 38은 도 35의 정보 처리 컨트롤러가 제1 패턴에 있어서 실행 가능한 기능 에 대하여 설명하기 위한 기능 블록도.
도 39는 전력 정보 회신 커맨드에 대하여 설명하기 위한 도면.
도 40은 전력 관리 정보에 대하여 설명하기 위한 도면.
도 41은 어플리케이션 프로그램 실행 처리 2에 대하여 설명하기 위한 플로우차트.
도 42는 마스터 장치의 전력 정보 관리 처리에 대하여 설명하기 위한 플로우차트.
도 43은 이상 발생시의 처리 5에 대하여 설명하기 위한 플로우차트.
도 44는 슬레이브 장치의 전력 정보 관리 처리에 대하여 설명하기 위한 플로우차트.
도 45는 도 35의 정보 처리 컨트롤러가 제2 패턴에 있어서 실행 가능한 기능에 대하여 설명하기 위한 기능 블록도.
도 46은 전력 정보 관리 처리 1에 대하여 설명하기 위한 플로우차트.
도 47은 이상 발생시의 처리 6에 대하여 설명하기 위한 플로우차트.
도 48은 도 35의 정보 처리 컨트롤러가 제3 패턴에 있어서 실행 가능한 기능에 대하여 설명하기 위한 기능 블록도.
도 49는 전력 정보 관리 처리 2에 대하여 설명하기 위한 플로우차트.
도 50은 이상 발생시의 처리 7에 대하여 설명하기 위한 플로우차트.
도 51은 본 발명을 적용한 복수의 정보 처리 컨트롤러를 구비하는 정보 처리 장치의 구성을 도시하는 도면.
도 52는 본 발명을 적용한 복수의 정보 처리 컨트롤러를 구비하고, 네트워크에 접속되어 있는 정보 처리 장치의 구성을 도시하는 도면.
도 53은 본 발명을 적용한 정보 처리 컨트롤러의 구성을 도시하는 도면.
도 54는 도 53의 정보 처리 컨트롤러의 메인 메모리가 기억하는 소프트웨어의 구성을 도시하는 도면.
도 55는 도 53의 정보 처리 컨트롤러가 실행 가능한 기능에 대하여 설명하기 위한 기능 블록도.
도 56은 어플리케이션 프로그램 실행 처리 3에 대하여 설명하기 위한 플로우차트.
도 57은 마스터 장치의 온도·전력 정보 관리 처리에 대하여 설명하기 위한 플로우차트.
도 58은 이상 발생시의 처리 8에 대하여 설명하기 위한 플로우차트.
도 59는 이상 발생시의 처리 8에 대하여 설명하기 위한 플로우차트.
도 60은 슬레이브 장치의 온도·전력 정보 관리 처리에 대하여 설명하기 위한 플로우차트.
<도면의 주요 부분에 대한 부호의 설명>
1 : 정보 처리 장치
2 : 네트워크
3 : 정보 처리 장치
11 : 정보 처리 컨트롤러
12 : 메인 메모리
15 : 조작 입력부
16 : 통신부
19 : 전원부
42 : 메인 프로세서
43 : 서브 프로세서
51 : 로컬 스토리지
101 : 정보 처리 장치
111 : 정보 처리 컨트롤러
121 : 온도 검출부
122 : 온도 모니터 처리부
161 : 연산 처리부
163 : 논리 쓰레드 관리 처리부
164 : 온도 정보 취득부
165 : 인터럽트 제어부
167 : 온도 관리 테이블
168 : 온도 상승 검출부
169 : 온도 이상 대응 처리 제어부
181 : 연산 처리부
185 : 인터럽트 제어부
186 : 쓰레드 교환 처리부
187 : 코드 영역
188, 189 : 데이터 영역
190 : 스택 영역
211 : MS 매니지먼트 처리부
212 : 능력 교환 처리부
213 : 기억부
214 : 온도 정보 송수신 제어부
215 : 온도 관리 테이블
216 : 온도 이상 대응 처리 제어부
231 : 기억부
232 : 온도 정보 송수신 제어부
233 : 온도 관리 테이블
234 : 온도 이상 대응 처리 제어부
251 : 온도 정보 송수신 제어부
252 : 온도 이상 대응 처리 제어부
301 : 정보 처리 장치
311 : 정보 처리 컨트롤러
321 : 전력 측정부
331 : 전력 관리 처리부
351 : 전력 정보 취득부
352 : 인터럽트 제어부
354 : 전력 관리 테이블
355 : 전력 상승 검출부
356 : 전력 이상 대응 처리부
357 : 논리 쓰레드 관리 처리부
358 : 전력 관리 정보 송수신 제어부
371 : 기억부
372 : 전력 관리 정보 송수신 제어부
373 : 전력 관리 테이블
374 : 전력 이상 대응 처리 제어부
391 : 전력 관리 정보 송수신 제어부
392 : 전력 이상 대응 처리 제어부
401 : 정보 처리 장치
411 : 정보 처리 컨트롤러
421 : 온도 전력 관리 처리부
451 : 온도·전력 정보 취득부
452 : 온도·전력 관리 테이블
453 : 이상 검출부
455 : 이상 대응 처리 제어부
456 : 온도·전력 관리 정보 송수신 제어부
457 : 논리 쓰레드 관리 처리부
[특허 문헌1] 일본국 특개 2002-342165호 공보
[특허 문헌2] 일본국 특개 2002-351850호 공보
[특허 문헌3] 일본국 특개 2002-358289호 공보
[특허 문헌4] 일본국 특개 2002-366533호 공보
[특허 문헌5] 일본국 특개 2002-366534호 공보
[특허 문헌6] 일본국 특개평 9-34601호 공보
[특허 문헌7] 일본국 특개 2002-304232호 공보
[특허 문헌8] 일본국 특표 2001-526809호 공보
[특허 문헌9] 일본국 특개 2000-112559호 공보
[특허 문헌10] 일본국 특개 2001-145174호 공보
본 발명은, 정보 처리 장치 및 정보 처리 방법과 프로그램에 관한 것으로, 특히, 복수의 프로세서에 의한 분산 처리가 실행되는 경우에 이용하기에 적합한, 정보 처리 장치 및 정보 처리 방법과 프로그램에 관한 것이다.
최근, 복수의 프로세서 또는 컴퓨터를 이용하여, 처리를 분산하여 실행시키 는, 분산 처리가 주목받고 있다. 분산 처리를 행하는 방법으로서는, 통신망을 통하여 접속되어 있는 복수의 컴퓨터에 처리를 실행시키는 방법, 1개의 컴퓨터에 설치된, 복수의 프로세서에 처리를 실행시키는 방법, 및 상술한 2개의 방법을 조합하여 처리를 실행시키는 방법이 있다.
분산 처리의 실행을 요구(지시)하는 장치 또는 프로세서는, 분산 처리를 실행하기 위해 필요한 데이터 및 프로그램을, 분산 처리를 실행시키는 다른 장치 또는 다른 프로세서쪽으로 송신한다. 분산 처리를 실행하기 위해 필요한 데이터 및 프로그램을 수신한 장치 또는 프로세서는, 요구된 처리를 실행하고, 요구된 처리를 실시한 데이터를, 분산 처리의 요구원인 장치 또는 프로세서쪽으로 송신한다.
분산 처리의 요구원인 장치 또는 프로세서는, 분산 처리를 실행시키는 다른 장치 또는 다른 프로세서로부터 송신되어 온 데이터를 수신하고, 수신한 데이터에 기초하여, 소정의 처리를 행하거나, 수신한 데이터를 기록한다.
종래, 상술한 바와 같이, 균일한 모듈러 구조, 공통의 컴퓨팅 모듈, 및 균일한 소프트웨어 셀을 이용하여 분산 처리를 실행시키는 것에 의해, 고속 처리용 컴퓨터 아키텍처를 실현하는 기술이 있다(예를 들면, 특허 문헌1 내지 특허 문헌5)
또한, 최근, 정보 처리 장치의 클럭 속도의 향상과 집적도의 향상에 의해, 매우 고속인 프로세서를 동일한 칩상에 복수 집적하는 것이 가능하게 되었기 때문에, 복수의 프로세서에 의한 분산 처리는, 대형의 장치를 이용하지 않고 실현 가능하게 되어 있다.
상술한 특허 문헌에 있어서, 기본으로 되는 처리용 모듈은 프로세서 엘리먼 트(PE)이다. PE는, 처리 유닛(PU), 다이렉트 메모리 액세스 컨트롤러(DMAC) 및 복수의 부가 처리 유닛(APU), 즉, 메인 프로세서에 대한 복수의 서브 프로세서를 구비하도록 이루어져 있다.
또한, 종래의 프로세서 시스템에 있어서의 전력 제어 방식에는, 네트워크 및 시스템 컨트롤러를 항상 가동시키고, 각 프로세서의 동작을 정지·재개시켜 전력 제어를 행할 수 있는 것(예를 들면, 특허 문헌6), 부하에 따라서, 동작 주파수와 전원 전압을 제어하는 것(예를 들면, 특허 문헌7), 폴트 톨러런트(fault tolerant) 시스템을 이용하여, 고장난 CPU의 전력을 차단하는 것에 의해 시스템 전력 제어를 행하는 것(예를 들면, 특허 문헌8), 멀티플렉서 시스템에 있어서 부하가 없는 상태를 자동적으로 검지하고, 클럭 주파수를 제어함으로써 전력 제어를 행하는 것(예를 들면, 특허 문헌9), 환경이나 상황의 변화에 적응시켜, 적절하게 기기의 제휴 동작을 제어함으로써 전력 제어를 행하는 것(예를 들면, 특허 문헌10) 등이 있다.
최근, 정보 처리 장치의 클럭 속도의 향상과 집적도의 향상에 의해, 매우 고속인 프로세서를 동일한 칩상에 복수 집적할 수 있도록 되었다. 이 때문에, 1개의 칩에 집적된 복수의 프로세서를 이용하여, 각각의 프로세서에 독립된 프로그램을 실행시키고, 논리적으로 1개의 기능(논리 쓰레드)으로서 결과를 구하는 처리를 실행시킨 경우, 이 칩 내에서 기능하고 있는 프로세서에 대응하는 위치에 있어서 발생하는 열량은, 종래와 비교하여 매우 높아지고 있다(프로세서의 열 밀도가 높게 되어 있다).
따라서, 종래에 있어서는 고려할 필요가 없었던 칩 상의 각각의 프로세서의 배치에 대응하는 부분의 온도 상승을 고려하지 않으면, 열 폭주나 고장 등이 발생할 염려가 있다. 그러나, 종래의 분산 처리 시스템에 있어서는, 칩 상의 각각의 프로세서의 배치에 대응하는 부분이, 정상 동작할 수 있는 온도 범위 내에서 동작하고 있는 것을 보증하고, 소자의 열화를 방지하면서, 신뢰성이 높은 정보 처리를 각각의 프로세서에 실행시킬 수 없었다.
또한, 종래의 분산 처리 시스템에 있어서는, 칩의 온도 상승이 고려되어 있지 않았기 때문에, 어느 하나의 프로세서에 대응하는 부분의 온도 상승의 상태에 대응시켜, 복수의 프로세서간에 있어서의 처리(쓰레드)를 이동시키거나, 교환시키는 기술은 없었다. 바꾸어 말하면, 분산 처리 시스템에 있어서의 논리 쓰레드의 배분이나, 처리(쓰레드)의 이동처 또는 교환처로 되는 프로세서의 선택에 있어서, 프로세서의 동작 상황, 칩 상의 온도, 칩 상의 서브 프로세서의 배치는 고려되어 있지 않았다.
또한, 정보 처리 장치의 클럭 속도의 향상과 집적도의 향상에 의해, 처리에 필요한 소비 전력도, 종래와 비교하여 매우 높아지고 있지만, 종래의 프로세서 시스템에 있어서의 전력 제어 방식은, 그 장치가 행해야 될 처리에 필용(必用)한 전력 이외를 어떻게 작게 할 것인가라는 목적으로 행해지고 있었다. 그 때문에, 종래, 분산 처리 시스템을 실행하는 것이 가능한 정보 처리 장치에 있어서는, 클럭 속도의 향상과 집적도의 향상에 수반하여, 프로세서(또는 프로세서군)에 공급되는 전력이 부족하게 되는 경우나, 프로세서(또는 프로세서군)의 소비 전력을 일정값 이하로 억제하면서, 동작을 계속시키고자 하는 경우에 대하여, 고려되는 바는 없었다.
본 발명은 이러한 상황을 감안하여 이루어진 것으로, 분산 처리 실행 중인 어느 하나의 프로세서의 온도 상승 또는 전력 공급량이 이상 상태에 빠지더라도, 논리 쓰레드로서 동작하고 있는 기능을 정상 상태로 유지하여, 소자의 열화를 방지하면서, 신뢰성이 높은 정보 처리를 실행시키도록 할 수 있게 하는 것이다.
본 발명의 제1 정보 처리 장치는, 제1 정보 처리 수단과, 복수의 제2 정보 처리 수단과, 제1 정보 처리 장치 및 제2 정보 처리 수단의 근방의 온도를 각각 검출하는 복수의 온도 검출 수단을 구비하고, 제1 정보 처리 수단은, 어플리케이션 프로그램의 실행을 제어하는 어플리케이션 프로그램 실행 제어 수단과, 어플리케이션 프로그램 실행 제어 수단의 처리에 의해 실행이 제어되는 어플리케이션 프로그램에 의해서, 복수의 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 처리 단위에 대응하는 기능을 제공하기 위한 분산 처리를 제어하는 분산 처리 제어 수단과, 온도 검출 수단에 의해 검출된 온도에 관한 제1 정보, 및, 제2 정보 처리 수단에 의한 처리의 실행에 관한 제2 정보를 기록하는 기록 수단과, 온도 검출 수단에 의해 검출된 온도의 이상을 검출하는 이상 검출 수단과, 이상 검출 수단에 의해 온도의 이상이 검출된 경우, 분산 처리 제어 수단에 의한 분산 처리를 제어하는 이상시 제어 수단을 구비하고, 이상시 제어 수단은, 이상 검출 수단에 의해 온도의 이상이 검출된 경우, 기록 수단에 의 해 기록되어 있는 제1 정보 및 제2 정보에 기초하여, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리 제어 수단을 제어하는 것을 특징으로 한다.
이상시 제어 수단에는, 온도의 이상이 검출되어 있지 않은 다른 제2 정보 처리 수단 중의 어느 하나를 선택시키도록 할 수 있고, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리가, 선택된 다른 제2 정보 처리 수단에 의해 실행됨으로써, 처리의 할당이 변경되도록 분산 처리 제어 수단을 제어시키도록 할 수 있다.
이상시 제어 수단에는, 기록 수단에 의해 기록되어 있는 제1 정보에 기초하여, 온도 검출 수단에 의해 검출된 근방의 온도가 낮은 제2 정보 처리 수단을 우선적으로 처리의 할당처로서 선택시키도록 할 수 있다.
이상시 제어 수단에는, 기록 수단에 의해 기록되어 있는 제2 정보에 기초하여, 근방의 다른 제2 정보 처리 수단에 있어서 처리가 실행되고 있지 않은 제2 정보 처리 수단을 우선적으로 처리의 할당처로서 선택시키도록 할 수 있다.
이상시 제어 수단에는, 온도의 이상이 검출되어 있지 않은 다른 제2 정보 처리 수단 중의 어느 하나를 선택시키도록 할 수 있고, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리와, 선택된 다른 제2 정보 처리 수단에 의해 실행되고 있는 처리가 교환되어 실행됨으로써, 처리의 할당이 변경되도록 분산 처리 제어 수단을 제어시키도록 할 수 있다.
이상시 제어 수단에는, 기록 수단에 의해 기록되어 있는 제1 정보에 기초하 여, 온도 검출 수단에 의해 검출된 근방의 온도가 낮은 제2 정보 처리 수단을 우선적으로 처리의 교환처로서 선택시키도록 할 수 있다.
이상시 제어 수단에는, 기록 수단에 의해 기록되어 있는 제2 정보에 기초하여, 근방의 다른 제2 정보 처리 수단에 있어서 처리가 실행되고 있지 않은 제2 정보 처리 수단을 우선적으로 처리의 교환처로서 선택시키도록 할 수 있다.
다른 정보 처리 장치와 정보를 통신하는 통신 수단을 더 구비시키도록 할 수 있다.
통신 수단에 의해 통신 가능한 적어도 1개의 다른 정보 처리 장치로 구성되는 네트워크 시스템에 있어서, 자기 자신이 마스터 장치인 경우, 통신 수단에는, 다른 정보 처리 장치로부터, 다른 정보 처리 장치에 있어서의 제1 정보 및 제2 정보를 수신시키도록 할 수 있고, 기록 수단에는, 통신 수단에 의해 수신된 제1 정보 및 제2 정보를 더 기록시키도록 할 수 있고, 이상 검출 수단에는, 기록 수단에 의해 기록된 제1 정보에 기초하여, 통신 수단에 의해 통신 가능한 다른 정보 처리 장치에 있어서 발생한 온도의 이상을 더 검출시키도록 할 수 있고, 이상시 제어 수단에는, 이상 검출 수단에 의해 온도의 이상이 검출된 경우, 기록 수단에 의해 기록되어 있는 자기 자신 및 다른 정보 처리 장치의 제1 정보 및 제2 정보에 기초하여, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리 제어 수단을 제어시키도록 할 수 있고, 네트워크 시스템에 있어서, 자기 자신이 슬레이브 장치인 경우, 통신 수단에는, 기록 수단에 의해 기록되어 있는 제1 정보 및 제2 정보를, 네트워크 시스템에 있어서의 마스터 장치로 송 신시키도록 할 수 있다.
이상시 제어 수단에는, 이상 검출 수단에 의해 온도의 이상이 검출된 경우, 통신 수단에 의해 통신 가능한 다른 정보 처리 장치에, 다른 정보 처리 장치에 있어서의 제1 정보 및 제2 정보의 송신을 요구하는 제1 신호를 생성시키도록 할 수 있고, 통신 수단에는, 제1 신호를 다른 정보 처리 장치로 송신시키도록 할 수 있음과 함께, 다른 정보 처리장치로부터, 제1 정보 및 제2 정보에 대응하는 제2 신호를 수신시키도록 할 수 있고, 이상시 제어 수단에는, 통신 수단에 의해 수신된 제2 신호에 기초하여, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리 제어 수단을 제어시키도록 할 수 있다.
이상시 제어 수단에는, 이상 검출 수단에 의해 온도의 이상이 검출된 경우, 통신 수단에 의해 통신 가능한 다른 정보 처리 장치에, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 실행을 요구하는 제1 신호를 생성시키도록 할 수 있고, 통신 수단에는, 제1 신호를 다른 정보 처리 장치로 송신함과 함께, 다른 정보 처리장치로부터, 제1 신호에 대한 회신인 제2 신호를 수신시키도록 할 수 있고, 이상시 제어 수단에는, 통신 수단에 의해 수신된 제2 신호에 기초하여, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리 제어 수단을 제어시키도록 할 수 있다.
제1 정보 처리 수단 및 제2 정보 처리 수단을 포함하는 정보 처리 유닛을 복수 포함하는 것으로 할 수 있다.
제1 정보 처리 수단 및 제2 정보 처리 수단을 포함하는 정보 처리 유닛의 소 비 전력을 측정하는 전력 측정 수단을 더 구비시키도록 할 수 있고, 기록 수단에는, 전력 측정 수단에 의해 측정된 소비 전력에 관한 정보를 더 기록시키도록 할 수 있고, 이상 검출 수단에는, 전력 측정 수단에 의해 측정된 소비 전력의 이상을 더 검출시키도록 할 수 있고, 이상시 제어 수단에는, 이상 검출 수단에 의해 온도의 이상 또는 소비 전력의 이상이 검출된 경우, 분산 처리 제어 수단에 의한 분산 처리를 제어시키도록 할 수 있다.
본 발명의 제1 정보 처리 방법은, 제1 정보 처리 수단과, 복수의 제2 정보 처리 수단을 구비하는 정보 처리 장치의 정보 처리 방법으로서, 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행에 의해서, 복수의 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 처리 단위에 대응하는 기능을 제공하기 위한 분산 처리의 개시를 요구하는 분산 처리 개시 요구 단계와, 제1 정보 처리 수단 또는 제2 정보 처리 수단 근방에 발생하는 온도 정보를 취득하는 온도 정보 취득 단계와, 온도 정보 취득 단계의 처리에 의해 취득된 온도 정보의 이상을 검출하는 이상 검출 단계와, 이상 검출 단계의 처리에 의해 검출된 온도의 이상은, 제1 정보 처리 수단 또는 제2 정보 처리 수단 중의 어느 근방에서 발생했는지를 판단하는 판단 단계와, 온도 정보 취득 단계의 처리에 의해 취득된 온도 정보 및 판단 단계의 처리에 의한 판단 수단에 의한 판단 결과에 기초하여, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리를 제어하는 분산 처리 제어 단계를 포함하는 것을 특징으로 한다.
본 발명의 제1 프로그램은, 제1 정보 처리 수단과, 복수의 제2 정보 처리 수단을 이용한 분산 처리를 제어하는 컴퓨터가 실행 가능한 프로그램으로서, 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행에 의해서, 복수의 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 처리 단위에 대응하는 기능을 제공하기 위한 분산 처리의 개시를 요구하는 분산 처리 개시 요구 단계와, 제1 정보 처리 수단 또는 제2 정보 처리 수단 근방에 발생하는 온도 정보를 취득하는 온도 정보 취득 단계와, 온도 정보 취득 단계의 처리에 의해 취득된 온도 정보의 이상을 검출하는 이상 검출 단계와, 이상 검출 단계의 처리에 의해 검출된 온도의 이상은, 제1 정보 처리 수단 또는 제2 정보 처리 수단 중의 어느 근방에서 발생했는지를 판단하는 판단 단계와, 온도 정보 취득 단계의 처리에 의해 취득된 온도 정보 및 판단 단계의 처리에 의한 판단 수단에 의한 판단 결과에 기초하여, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리를 제어하는 분산 처리 제어 단계를 포함하는 것을 특징으로 하는 처리를 컴퓨터에 실행시킨다.
본 발명의 제1 정보 처리 장치 및 정보 처리 방법과 프로그램에 있어서는, 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행에 의해서, 분산 처리의 개시가 요구되고, 제1 정보 처리 수단 또는 제2 정보 처리 수단 근방에 발생하는 온도 정보가 취득되고, 온도 정보의 이상이 검출되고, 검출된 온도의 이상은, 제1 정보 처리 수단 또는 제2 정보 처리 수단 중의 어느 근방에서 발생했는지가 판단되고, 온도 정보 및 판단 결과에 기초하여, 온도의 이상이 검출된 제2 정보 처리 수 단에 의해 실행되고 있는 처리의 할당이 변경되도록, 분산 처리가 제어된다.
본 발명의 제2 정보 처리 장치는, 제1 정보 처리 수단과, 복수의 제2 정보 처리 수단과, 제1 정보 처리 수단 및 제2 정보 처리 수단을 포함하는 정보 처리 유닛이 소비하는 전력을 측정하는 전력 측정 수단과, 다른 정보 처리 장치와 정보를 통신하는 통신 수단을 구비하고, 제1 정보 처리 수단은, 어플리케이션 프로그램의 실행을 제어하는 어플리케이션 프로그램 실행 제어 수단과, 어플리케이션 프로그램 실행 제어 수단의 처리에 의해 실행이 제어되는 어플리케이션 프로그램에 의해서, 복수의 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 처리 단위에 대응하는 기능을 제공하기 위한 분산 처리를 제어하는 분산 처리 제어 수단과, 전력 측정 수단에 의해 측정된 전력에 관한 제1 정보 및 제2 정보 처리 수단에 의한 처리의 실행에 관한 제2 정보를 기록하는 기록 수단과, 전력 측정 수단에 의해 측정된 전력의 이상을 검출하는 이상 검출 수단과, 이상 검출 수단에 의해 전력의 이상이 검출된 경우, 분산 처리 제어 수단에 의한 분산 처리를 제어하는 이상시 제어 수단을 구비하고, 이상시 제어 수단은, 이상 검출 수단에 의해 전력의 이상이 검출된 경우, 기록 수단에 의해 기록되어 있는 제1 정보 및 제2 정보에 기초하여, 전력의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리 제어 수단을 제어하는 것을 특징으로 한다.
통신 수단에 의해 통신 가능한 적어도 1개의 다른 정보 처리 장치로 구성되는 네트워크 시스템에 있어서, 자기 자신이 마스터 장치인 경우, 통신 수단에는, 다른 정보 처리장치로부터, 다른 정보 처리 장치에 있어서의 제1 정보 및 제2 정보를 수신시키도록 할 수 있고, 기록 수단에는, 통신 수단에 의해 수신된 제1 정보 및 제2 정보를 더 기록시키도록 할 수 있고, 이상 검출 수단에는, 기록 수단에 의해 기록된 제1 정보에 기초하여, 통신 수단에 의해 통신 가능한 다른 정보 처리 장치에 있어서 발생한 전력의 이상을 더 검출시키도록 할 수 있고, 이상시 제어 수단에는, 이상 검출 수단에 의해 전력의 이상이 검출된 경우, 기록 수단에 의해 기록되어 있는 자기 자신 및 다른 정보 처리 장치의 제1 정보 및 제2 정보에 기초하여, 전력의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리 제어 수단을 제어시키도록 할 수 있고, 네트워크 시스템에 있어서, 자기 자신이 슬레이브 장치인 경우, 통신 수단에는, 기록 수단에 의해 기록되어 있는 제1 정보 및 제2 정보를 네트워크 시스템에 있어서의 마스터 장치로 송신시키도록 할 수 있다.
이상시 제어 수단에는, 이상 검출 수단에 의해 전력의 이상이 검출된 경우, 통신 수단에 의해 통신 가능한 다른 정보 처리 장치에, 다른 정보 처리 장치에 있어서의 제1 정보 및 제2 정보의 송신을 요구하는 제1 신호를 생성시키도록 할 수 있고, 통신 수단에는, 제1 신호를 다른 정보 처리 장치로 송신함과 함께, 다른 정보 처리장치로부터, 제1 정보 및 제2 정보에 대응하는 제2 신호를 수신시키도록 할 수 있고, 이상시 제어 수단에는, 통신 수단에 의해 수신된 제2 신호에 기초하여, 전력의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리 제어 수단을 제어시키도록 할 수 있다.
이상시 제어 수단에는, 이상 검출 수단에 의해 전력의 이상이 검출된 경우, 통신 수단에 의해 통신 가능한 다른 정보 처리 장치에, 전력의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 실행을 요구하는 제1 신호를 생성시키도록 할 수 있고, 통신 수단에는, 제1 신호를 다른 정보 처리 장치로 송신함과 함께, 다른 정보 처리장치로부터, 제1 신호에 대한 회신인 제2 신호를 수신시키도록 할 수 있고, 이상시 제어 수단에는, 통신 수단에 의해 수신된 제2 신호에 기초하여, 전력의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리 제어 수단을 제어시키도록 할 수 있다.
이상시 제어 수단에는, 전력의 이상이 검출되어 있지 않은 다른 정보 처리 유닛 중의 어느 하나를 선택하고, 전력의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리가, 선택된 다른 정보 처리 유닛에 의해 실행됨으로써, 처리의 할당이 변경되도록, 분산 처리 제어 수단을 제어시키도록 할 수 있다.
이상시 제어 수단에는, 전력 검출 수단에 의해 검출된 전력이 적은 정보 처리 유닛을 우선적으로 처리의 할당처로서 선택시키도록 할 수 있다.
이상시 제어 수단에는, 전력원으로서 전지 또는 배터리를 이용하고 있는 정보 처리 유닛보다, 전력원으로서 AC 전원을 이용하고 있는 정보 처리 유닛을 우선적으로 처리의 할당처로서 선택시키도록 할 수 있다.
이상시 제어 수단에는, 전력의 이상이 검출되어 있지 않은 다른 정보 처리 유닛 중의 어느 하나를 선택시키도록 할 수 있고, 전력의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리와, 선택된 다른 정보 처리 유닛에 의해 실행 되고 있는 처리가 교환되어 실행됨으로써, 처리의 할당이 변경되도록, 분산 처리 제어 수단을 제어시키도록 할 수 있다.
이상시 제어 수단에는, 전력 검출 수단에 의해 검출된 전력이 적은 정보 처리 유닛을 우선적으로 처리의 교환처로서 선택시키도록 할 수 있다.
이상시 제어 수단에는, 전력원으로서 전지 또는 배터리를 이용하고 있는 정보 처리 유닛보다, 전력원으로서 AC 전원을 이용하고 있는 정보 처리 유닛을 우선적으로 처리의 교환처로서 선택시키도록 할 수 있다.
정보 처리 유닛은 복수 구비되어 있는 것으로 할 수 있다.
본 발명의 제2 정보 처리 방법은, 제1 정보 처리 수단과, 복수의 제2 정보 처리 수단을 구비하는 정보 처리 장치의 정보 처리 방법으로서, 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행에 의해서, 복수의 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 처리 단위에 대응하는 기능을 제공하기 위한 분산 처리의 개시를 요구하는 분산 처리 개시 요구 단계와, 제1 정보 처리 수단 및 제2 정보 처리 수단을 포함하는 정보 처리 유닛이 소비하는 전력에 관한 정보를 취득하는 전력 정보 취득 단계와, 전력 정보 취득 단계의 처리에 의해 취득된 전력에 관한 정보의 이상을 검출하는 이상 검출 단계와, 전력 정보 취득 단계의 처리에 의해 취득된 전력 정보에 기초하여, 전력의 이상이 검출된 정보 처리 유닛의 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리를 제어하는 분산 처리 제어 단계를 포함하는 것을 특징으로 한다.
본 발명의 제2 프로그램은, 제1 정보 처리 수단과, 복수의 제2 정보 처리 수단을 이용한 분산 처리를 컴퓨터에 실행시키기 위한 프로그램으로서, 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행에 의해서, 복수의 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 처리 단위에 대응하는 기능을 제공하기 위한 분산 처리의 개시를 요구하는 분산 처리 개시 요구 단계와, 제1 정보 처리 수단 및 제2 정보 처리 수단을 포함하는 정보 처리 유닛이 소비하는 전력에 관한 정보를 취득하는 전력 정보 취득 단계와, 전력 정보 취득 단계의 처리에 의해 취득된 전력에 관한 정보의 이상을 검출하는 이상 검출 단계와, 전력 정보 취득 단계의 처리에 의해 취득된 전력 정보에 기초하여, 전력의 이상이 검출된 정보 처리 유닛의 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리를 제어하는 분산 처리 제어 단계를 포함하는 것을 특징으로 하는 처리를 컴퓨터에 실행시킨다.
본 발명의 제2 정보 처리 장치 및 정보 처리 방법과 프로그램에 있어서는, 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행에 의해서, 분산 처리의 개시가 요구되고, 제1 정보 처리 수단 및 제2 정보 처리 수단을 포함하는 정보 처리 유닛이 소비하는 전력에 관한 정보가 취득되고, 취득된 전력에 관한 정보의 이상이 검출되고, 전력 정보에 기초하여, 전력의 이상이 검출된 정보 처리 유닛의 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당이 변경되도록, 분산 처리가 제어된다.
<실시예>
이하에 본 발명의 실시 형태를 설명하는데, 본 명세서에 기재된 발명과 발명의 실시 형태와의 대응 관계를 예시하면, 다음과 같이 된다. 이 기재는, 본 명세서에 기재되어 있는 발명을 서포트하는 실시 형태가, 본 명세서에 기재되어 있는 것을 확인하기 위한 것이다. 따라서, 발명의 실시 형태 중에는 기재되어 있지만, 발명에 대응하는 것으로서, 여기에는 기재되어 있지 않은 실시 형태가 있었다고 해도, 그것은, 그 실시 형태가, 그 발명에 대응하는 것이 아니라는 것을 의미하는 것은 아니다. 반대로, 실시 형태가 발명에 대응하는 것으로서 여기에 기재되어 있었다고 해도, 그것은, 그 실시 형태가, 그 발명 이외의 발명에는 대응하지 않는 것이라는 것을 의미하는 것도 아니다.
또한, 이 기재는, 본 명세서에 기재되어 있는 발명의 전체를 의미하는 것도 아니다. 바꾸어 말하면, 이 기재는, 본 명세서에 기재되어 있는 발명으로서, 이 출원에서는 청구되어 있지 않은 발명의 존재, 즉, 장래, 분할 출원되거나, 보정에 의해 출현, 추가되는 발명의 존재를 부정하는 것은 아니다.
본 발명의 제1 양태에 따른 정보 처리 장치는, 제1 정보 처리 수단(예를 들면, 메인 프로세서(42))과, 복수의 제2 정보 처리 수단(예를 들면, 서브 프로세서(43))과, 제1 정보 처리 장치 및 제2 정보 처리 수단의 근방의 온도를 각각 검출하는 복수의 온도 검출 수단(예를 들면, 온도 검출부(121))을 구비하고, 제1 정보 처리 수단은, 어플리케이션 프로그램의 실행을 제어하는 어플리케이션 프로그램 실행 제어 수단(예를 들면, 연산 처리부(161))과, 어플리케이션 프로그램 실행 제어 수단의 처리에 의해 실행이 제어되는 어플리케이션 프로그램에 의해서, 복수의 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 처리 단위에 대응하는 기능을 제공하기 위한 분산 처리를 제어하는 분산 처리 제어 수단(예를 들면, 논리 쓰레드 관리 처리부(163), 논리 쓰레드 관리 처리부(217) 또는 논리 쓰레드 관리 처리부(457))과, 온도 검출 수단에 의해 검출된 온도에 관한 제1 정보 및 제2 정보 처리 수단에 의한 처리의 실행에 관한 제2 정보를 기록하는 기록 수단(예를 들면, 온도 관리 테이블(167), 온도 관리 테이블(215), 온도 관리 테이블(233) 또는 온도·전력 관리 테이블(452))과, 온도 검출 수단에 의해 검출된 온도의 이상을 검출하는 이상 검출 수단(예를 들면, 온도 상승 검출부(168) 또는 이상 검출부(453))과, 이상 검출 수단에 의해 온도의 이상이 검출된 경우, 분산 처리 제어 수단에 의한 분산 처리를 제어하는 이상시 제어 수단(예를 들면, 온도 이상 대응 처리 제어부(169), 온도 이상 대응 처리 제어부(216), 온도 이상 대응 처리 제어부(234), 온도 이상 대응 처리 제어부(252) 또는 이상 대응 처리 제어부(455))을 구비하고, 이상시 제어 수단은, 이상 검출 수단에 의해 온도의 이상이 검출된 경우, 기록 수단에 의해 기록되어 있는 제1 정보 및 제2 정보에 기초하여, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리 제어 수단을 제어하는 것을 특징으로 한다.
다른 정보 처리 장치와 정보를 통신하는 통신 수단(예를 들면, 통신부(16))를 더 구비할 수 있다.
제1 정보 처리 수단 및 제2 정보 처리 수단을 포함하는 정보 처리 유닛(예를 들면, 정보 처리 컨트롤러)를 복수 포함할 수 있다.
제1 정보 처리 수단 및 제2 정보 처리 수단을 포함하는 정보 처리 유닛(예를 들면, 정보 처리 컨트롤러)의 소비 전력을 측정하는 전력 측정 수단(예를 들면, 전력 측정부(321))을 더 구비할 수 있고, 기록 수단(예를 들면, 온도·전력 관리 테이블(452))은, 전력 측정 수단에 의해 측정된 소비 전력에 관한 정보를 더 기록할 수 있고, 이상 검출 수단(예를 들면, 이상 검출부(453))은, 전력 측정 수단에 의해 측정된 소비 전력의 이상을 더 검출할 수 있고, 이상시 제어 수단(예를 들면, 이상 대응 처리 제어부(455))은, 이상 검출 수단에 의해 온도의 이상 또는 소비 전력의 이상이 검출된 경우, 분산 처리 제어 수단에 의한 분산 처리를 제어할 수 있다.
본 발명의 제2 양태에 따른 정보 처리 방법은, 제1 정보 처리 수단(예를 들면, 메인 프로세서(42))와, 복수의 제2 정보 처리 수단(예를 들면, 서브 프로세서(43))을 구비하는 정보 처리 장치의 정보 처리 방법으로서, 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행에 의해서, 복수의 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 처리 단위에 대응하는 기능을 제공하기 위한 분산 처리의 개시를 요구하는 분산 처리 개시 요구 단계(예를 들면, 도 14의 단계 S1 또는 도 56의 단계 S451의 처리)와, 제1 정보 처리 수단 또는 제2 정보 처리 수단 근방에 발생하는 온도 정보를 취득하는 온도 정보 취득 단계(예를 들면, 도 15의 단계 S22, 도 22의 단계 S73, 도 24의 단계 S122, 도 27의 단계 S142, 도 32의 단계 S212, 도 57의 단계 S473의 처리 또는 도 60의 단계 S562)와, 온도 정보 취득 단계의 처리에 의해 취득된 온도 정보의 이상을 검출하는 이상 검출 단계(예를 들면, 도 15의 단계 S24, 도 22의 단계 S75, 도 27의 단계 S144, 도 32의 단계 S214 또는 도 57의 단계 S475의 처리)와, 이상 검출 단계의 처리에 의해 검출된 온도의 이상은, 제1 정보 처리 수단 또는 제2 정보 처리 수단 중의 어느 근방에서 발생했는지를 판단하는 판단 단계(예를 들면, 도 16의 단계 S41, 도 23의 단계 S91, 도 28의 단계 S181, 도 33의 단계 S231 또는 도 58의 단계 S502의 처리)와, 온도 정보 취득 단계의 처리에 의해 취득된 온도 정보 및 판단 단계의 처리에 의한 판단 수단에 의한 판단 결과에 기초하여, 온도의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리를 제어하는 분산 처리 제어 단계(예를 들면, 도 16의 단계 S42 내지 단계 S54, 도 23의 단계 S92 내지 단계 S107, 도 28의 단계 S182 내지 단계 S196, 도 33의 단계 S232 내지 단계 S246 또는 도 58의 단계 S503 내지 단계 S518의 처리)를 포함하는 것을 특징으로 한다.
또한, 본 발명의 제3 양태에 따른 프로그램에 있어서도, 각 단계가 대응하는 실시 형태(단지 일례)는, 청구항 14에 기재된 정보 처리 방법과 마찬가지이다.
본 발명으 제4 양태에 따른 정보 처리 장치는, 제1 정보 처리 수단(예를 들면, 메인 프로세서(42))과, 복수의 제2 정보 처리 수단(예를 들면, 서브 프로세서(43))과, 제1 정보 처리 수단 및 제2 정보 처리 수단을 포함하는 정보 처리 유닛(예를 들면, 정보 처리 컨트롤러)이 소비하는 전력을 측정하는 전력 측정 수단(예를 들면, 전력 측정부(321))과, 다른 정보 처리 장치와 정보를 통신하는 통신 수단(예를 들면, 통신부(16))을 구비하고, 제1 정보 처리 수단은, 어플리케이션 프로그램의 실행을 제어하는 어플리케이션 프로그램 실행 제어 수단(예를 들면, 연산 처리 부(161))과, 어플리케이션 프로그램 실행 제어 수단의 처리에 의해 실행이 제어되는 어플리케이션 프로그램에 의해서, 복수의 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 처리 단위에 대응하는 기능을 제공하기 위한 분산 처리를 제어하는 분산 처리 제어 수단(예를 들면, 논리 쓰레드 관리 처리부(357) 또는 논리 쓰레드 관리 처리부(457))과, 전력 측정 수단에 의해 측정된 전력에 관한 제1 정보 및 제2 정보 처리 수단에 의한 처리의 실행에 관한 제2 정보를 기록하는 기록 수단(예를 들면, 전력 관리 테이블(354), 전력 관리 테이블(373) 또는 온도·전력 관리 테이블(452))과, 전력 측정 수단에 의해 측정된 전력의 이상을 검출하는 이상 검출 수단(예를 들면, 전력 상승 검출부(355) 또는 이상 검출부(453))과, 이상 검출 수단에 의해 전력의 이상이 검출된 경우, 분산 처리 제어 수단에 의한 분산 처리를 제어하는 이상시 제어 수단(예를 들면, 전력 이상 대응 처리 제어부(356), 전력 이상 대응 처리 제어부(374), 전력 이상 대응 처리 제어부(392) 또는 이상 대응 처리 제어부(455))를 구비하고, 이상시 제어 수단은, 이상 검출 수단에 의해 전력의 이상이 검출된 경우, 기록 수단에 의해 기록되어 있는 제1 정보 및 제2 정보에 기초하여, 전력의 이상이 검출된 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리 제어 수단을 제어하는 것을 특징으로 한다.
본 발명의 제5 양태에 따른 정보 처리 방법은, 제1 정보 처리 수단(예를 들면, 메인 프로세서(42))과, 복수의 제2 정보 처리 수단(예를 들면, 서브 프로세서(43))을 구비하는 정보 처리 장치의 정보 처리 방법으로서, 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행에 의해서, 복수의 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 처리 단위에 대응하는 기능을 제공하기 위한 분산 처리의 개시를 요구하는 분산 처리 개시 요구 단계(예를 들면, 도 41의 단계 S301 또는 도 56의 단계 S451의 처리)와, 제1 정보 처리 수단 및 제2 정보 처리 수단을 포함하는 정보 처리 유닛(예를 들면, 정보 처리 컨트롤러)이 소비하는 전력에 관한 정보를 취득하는 전력 정보 취득 단계(예를 들면, 도 42의 단계 S323, 도 44의 단계 S328, 도 46의 단계 S402, 도 49의 단계 S462, 도 57의 단계 S473 또는 도 60의 단계 S562의 처리)와, 전력 정보 취득 단계의 처리에 의해 취득된 전력에 관한 정보의 이상을 검출하는 이상 검출 단계(예를 들면, 도 42의 단계 S325, 도 46의 단계 S404, 도 49의 단계 S464 또는 도 57의 단계 S475의 처리)와, 전력 정보 취득 단계의 처리에 의해 취득된 전력 정보에 기초하여, 전력의 이상이 검출된 정보 처리 유닛의 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 분산 처리를 제어하는 분산 처리 제어 단계(예를 들면, 도 43, 도 47, 도 50을 이용하여 설명한 처리, 또는 도 59의 단계 S520 내지 단계 S530의 처리)를 포함하는 것을 특징으로 한다.
또한, 본 발명의 제6 양태에 따른 프로그램에 있어서도, 각 단계가 대응하는 실시 형태(단지 일례)는, 본 발명의 제5 양태에 따른 정보 처리 방법과 마찬가지이다.
이하, 도면을 참조하여, 본 발명의 실시 형태에 대하여 설명한다.
도 1은, 분산 처리를 실행하는 것이 가능한, 통신 시스템의 일 실시 형태를 도시하는 도면이다. 이 통신 시스템에서는, 예를 들면, 홈 네트워크, LAN(Local Area Network), WAN(Wide Area Network) 또는 인터넷 등의 광역 네트워크 등에 대응하는 네트워크(2)를 통하여, 정보 처리 장치(1-1) 내지 정보 처리 장치(1-n)가 서로 접속되어 있다.
정보 처리 장치(1-1)는, 복수의 정보 처리 장치에 의한 분산 처리의 실행을 지시받으면, 요구된 처리를 실행하기 위해 필요한 데이터 및 프로그램을 포함하는 소프트웨어 셀을 생성하고, 생성한 소프트웨어 셀을, 네트워크(2)를 통하여, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n) 중의 어느 하나의 장치쪽으로 송신한다.
정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)는, 각각 정보 처리 장치(1-1)로부터 송신되어 온 소프트웨어 셀을 수신하고, 수신한 소프트웨어 셀에 기초하여 요구된 처리를 실행한다. 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)는, 각각 요구된 처리를 실행하고 나서, 요구된 처리의 결과 얻어진 데이터를, 네트워크(2)를 통하여 정보 처리 장치(1-1)쪽으로 송신한다. 이하, 정보 처리 장치(1-1) 내지 정보 처리 장치(1-n)를 개개로 구별할 필요가 없을 때, 단지 정보 처리 장치(1)라고 칭한다.
정보 처리 장치(1-1)는, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n) 중의 어느 하나로부터 송신되어 온 데이터를 수신하고, 수신한 데이터에 기초하여, 소정의 처리를 실행하거나, 수신한 데이터를 기록한다.
정보 처리 장치(1-1)는, 적어도 1개의 정보 처리 컨트롤러(11), 메인 메모리(12), 기록부(13-1), 기록부(13-2), 버스(14), 조작 입력부(15), 통신부(16), 표시 부(17), 및 드라이브(18)를 포함하도록 구성된다.
정보 처리 컨트롤러(11)는, 메인 메모리(12)에 기록되어 있는 각종 프로그램을 실행하여, 정보 처리 장치(1-1) 전체를 제어한다. 정보 처리 컨트롤러(11)는, 소프트웨어 셀을 생성하고, 생성한 소프트웨어 셀을 버스(14)를 통하여 통신부(16)로 공급한다. 정보 처리 컨트롤러(11)는, 통신부(16)로부터 공급된 데이터를 기록부(13-1) 또는 기록부(13-2)에 공급한다. 정보 처리 컨트롤러(11)는, 조작 입력부(15)로부터 입력되는 유저의 명령에 기초하여, 지정된 데이터를, 메인 메모리(12), 기록부(13-1) 또는 기록부(13-2)로부터 취득하고, 취득한 데이터를 버스(14)를 통하여 통신부(16)에 공급한다.
또한, 정보 처리 컨트롤러(11)에는, 정보 처리 장치(1-1)를, 네트워크(2) 전체를 통해서 일의적으로 특정할 수 있는 정보 처리 장치 ID가 할당되어 있다.
정보 처리 컨트롤러(11)는, 버스(41), 메인 프로세서(42), 서브 프로세서(43-1) 내지 서브 프로세서(43-m), DMAC(Direct Memory Access Controller)(44), 키 관리 테이블 기록부(45), 및 DC(Disk Controller)(46)를 구비하고 있다.
메인 프로세서(42), 서브 프로세서(43-1) 내지 서브 프로세서(43-m), DMAC(44), 키 관리 테이블 기록부(45) 및 DC(46)는, 버스(41)를 통하여 서로 접속되어 있다. 또한, 메인 프로세서(42)에는, 메인 프로세서(42)를 특정하기 위한 메인 프로세서 ID가 식별자로서 할당된다. 마찬가지로, 서브 프로세서(43-1) 내지 서브 프로세서(43-m)의 각각에는, 서브 프로세서(43-1) 내지 서브 프로세서(43-m)의 각각을 특정하기 위한 서브 프로세서 ID의 각각이 식별자로서 할당된다.
메인 프로세서(42)는, 네트워크(2)를 통하여 접속되어 있는, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)에 분산 처리를 실행시키는 경우, 소프트웨어 셀을 생성하고, 생성한 소프트웨어 셀을 버스(41) 및 버스(14)를 통하여 통신부(16)에 공급한다. 또한, 메인 프로세서(42)는, 관리를 위한 프로그램 이외의 프로그램을 실행하도록 구성할 수도 있다. 이 경우, 메인 프로세서(42)는, 서브 프로세서로서 기능한다.
메인 프로세서(42)는, 서브 프로세서(43-1) 내지 서브 프로세서(43-m)에 대하여, 각각의 서브 프로세서에 독립된 프로그램을 실행시켜, 논리적으로 1개의 기능(논리 쓰레드)으로서 결과를 구하도록 할 수 있다. 즉, 메인 프로세서(42)는, 서브 프로세서(43-1) 내지 서브 프로세서(43-m)에 의한 프로그램의 실행의 스케줄 관리 및 정보 처리 컨트롤러(11)(정보 처리 장치(1-1))의 전체의 관리를 행한다.
메인 프로세서(42)는, 로컬 스토리지(51-1)를 구비하고, 메인 메모리(12)로부터 로드한 데이터 및 프로그램을 로컬 스토리지(51-1)에 일시적으로 기억시킨다. 메인 프로세서(42)는, 로컬 스토리지(51-1)로부터 데이터 및 프로그램을 판독하고, 판독한 데이터 및 프로그램에 기초하여 각종 처리를 실행한다.
서브 프로세서(43-1) 내지 서브 프로세서(43-m)는, 메인 프로세서(42)의 제어에 기초하여, 병렬적이고 또한 독립적으로 프로그램을 실행하여, 데이터를 처리한다. 또한, 필요에 따라, 메인 프로세서(42)가 실행하는 프로그램이, 서브 프로세서(43-1) 내지 서브 프로세서(43-m)의 각각이 실행하는 프로그램의 각각과 제휴해서 동작하도록 구성하는 것도 가능하다.
서브 프로세서(43-1) 내지 서브 프로세서(43-m)의 각각은, 로컬 스토리지(51-2) 내지 로컬 스토리지(51-(m+1))의 각각을 구비한다. 서브 프로세서(43-1) 내지 서브 프로세서(43-m)의 각각은, 로컬 스토리지(51-2) 내지 로컬 스토리지(51-(m+1))의 각각에, 필요에 따라, 데이터 및 프로그램을 일시적으로 기억시킨다. 서브 프로세서(43-1) 내지 서브 프로세서(43-m)의 각각은, 로컬 스토리지(51-2) 내지 로컬 스토리지(51-(m+1))의 각각으로부터 데이터 및 프로그램을 판독하고, 판독한 데이터 및 프로그램에 기초하여 각종 처리를 실행한다.
이하, 서브 프로세서(43-1) 내지 서브 프로세서(43-m)의 각각을 개개로 구별할 필요가 없을 때, 단지 서브 프로세서(43)라고 칭한다. 마찬가지로, 이하, 로컬 스토리지(51-1) 내지 로컬 스토리지(51-(m+1))의 각각을 개개로 구별할 필요가 없을 때, 단지 로컬 스토리지(51)라고 칭한다.
DMAC(44)는, 키 관리 테이블 기록부(45)에 기록되어 있는, 메인 프로세서 키, 서브 프로세서 키, 및 액세스 키에 기초하여, 메인 프로세서(42) 및 서브 프로세서(43)로부터의 메인 메모리(12)에 기억되어 있는 프로그램 및 데이터로의 액세스를 관리한다.
키 관리 테이블 기록부(45)는, 메인 프로세서 키, 서브 프로세서 키 및 액세스 키를 기록하고 있다. 또한, 메인 프로세서 키, 서브 프로세서 키 및 액세스 키의 상세 내용은 후술한다.
DC(46)는, 메인 프로세서(42) 및 서브 프로세서(43)로부터의 기록부(13-1) 및 기록부(13-2)로의 액세스를 관리한다.
또한, 여기서는, 정보 처리 장치(1-1)에, 정보 처리 컨트롤러(11)가 1개만 구비되어 있는 것으로서 설명했지만, 정보 처리 컨트롤러(11)는, 정보 처리 장치(1-1)에 복수개 구비되어 있도록 해도 좋다.
메인 메모리(12)는, 예를 들면, RAM으로 구성된다. 메인 메모리(12)는, 메인 프로세서(42) 및 서브 프로세서(43)가 실행하는 각종 프로그램 및 데이터를 일시적으로 기억하고 있다.
기록부(13-1) 및 기록부(13-2)는, 각각 예를 들면 하드디스크 등에 의해 구성된다. 기록부(13-1) 및 기록부(13-2)는, 메인 프로세서(42) 및 서브 프로세서(43)가 실행하는 각종의 프로그램 및 데이터를 기록하고 있다. 또한, 기록부(13-1) 및 기록부(13-2)는, 정보 처리 컨트롤러(11)로부터 공급된 데이터를 기록한다. 이하, 기록부(13-1) 및 기록부(13-2)를 개개로 구별할 필요가 없을 때, 단지 기록부(13)라고 칭한다.
또한, 정보 처리 컨트롤러(11)에는, 버스(14)를 통하여 조작 입력부(15), 통신부(16), 표시부(17) 및 드라이브(18)가 접속되어 있다. 조작 입력부(15)는, 예를 들면, 키, 버튼, 터치 패드, 마우스 등으로 이루어지고, 유저에 의한 조작 입력을 받아, 조작 입력에 대응하는 정보를, 버스(14)를 통하여 정보 처리 컨트롤러(11)에 공급한다.
통신부(16)는, 정보 처리 컨트롤러(11)로부터 공급된 소프트웨어 셀을, 네트워크(2)를 통하여 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)쪽으로 송신한다. 또한, 통신부(16)는, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)로부터 송신되 어 온 데이터를, 버스(14)를 통하여 정보 처리 컨트롤러(11)에 공급한다.
표시부(17)는, 예를 들면, CRT(cathode ray tube)나 LCD(Liquid Crystal Display) 등으로 구성되어 있고, 버스(14)를 통하여 공급된 정보 처리 컨트롤러(11)의 처리에 의해 생성된 정보(예를 들면, 어플리케이션 프로그램의 실행에 의해 생성된 데이터나, 어플리케이션 프로그램의 실행에 필요한 유저에의 통지 등의 정보를 포함한다)를 표시시킨다.
드라이브(18)는, 자기 디스크(61), 광 디스크(62), 광 자기 디스크(63), 혹은 반도체 메모리(64) 등이 장착되었을 때, 이들을 구동하여, 거기에 기록되어 있는 프로그램이나 데이터 등을 취득한다. 취득된 프로그램이나 데이터는, 필요에 따라, 버스(14)를 통하여 정보 처리 컨트롤러(11)에 전송되고, 정보 처리 컨트롤러(11)에 의해서 기록부(13)에 기록된다.
또한, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)는, 정보 처리 장치(1-1)와 마찬가지로 구성되므로, 그 설명은 생략한다. 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)는 상술한 구성에 한정되지 않고, 필요에 따라, 기능을 추가하거나 삭제하거나 하는 것은 가능하고, 그 기능에 대응한 구성을 갖는 것이 가능하다.
또한, 정보 처리 장치(1)에는, 정보 처리 장치(1)의 전체에 전원공급을 행하기 위해, 전원부(19)가 설치되어 있다. 도 2에 전원부(19)의 구성을 도시한다.
전원부(19)는, 상용 전원(AC 입력)을 취득하여, AC(교류)를, DC(직류)로 변환하는 AC/DC 컨버터(71), AC 입력에 의해 전원 회로(76)에 전원이 공급되고 있는 것을 검출하는 AC 입력 검출부(72), 소정의 위치에 장착되어, 전력을 미리 저장해 놓는(충전하는) 것에 의해, 정보 처리 장치(1)에 전력을 공급하는 배터리(73), 배터리(73)에 의해 전원이 공급되고 있는 것을 검출하는 배터리 검출부(74), 배터리(73)에 AC/DC 컨버터(71)에 의해 직류로 변환된 전력을 충전하기 위한 충전 회로(75) 및 정보 처리 장치(1)의 각 부에 전원을 공급하기 위한 전원 회로(76)에 의해 구성되어 있다. 전원 회로(76)에의 전력 공급원으로서는, 교류 전원 등의 AC 전원이나 배터리(73) 이외에, 예를 들면, 전지 등을 이용하도록 해도 좋고, 정보 처리 장치(1)의 전원부(19)는, 필요에 따라, 이들 중의 어느 하나 1개, 또는 이들의 모든 입력에 대응하도록 이루어져 있다. 또한, 정보 처리 장치(1) 내의 각 유닛은, 각각 동작 전압이 다르게 되어 있어도 좋고, 전원 회로(76)가 복수의 출력 전압에 대응할 수 있도록 해도 좋고, 출력 전압마다 전원 회로(76)를 설치하도록 해도 좋다.
다음으로, 도 3 내지 도 5를 참조하여, 서브 프로세서(43)가 메인 메모리(12)로 액세스하는 경우의 처리에 대하여 설명한다.
도 3에 나타내어지는 바와 같이, 메인 메모리(12)에는, 복수의 어드레스를 지정할 수 있는 메모리 로케이션이 배치된다. 각 메모리 로케이션에 대해서는, 데이터의 상태를 나타내는 정보를 저장하기 위한 추가 세그먼트가 할당된다. 추가 세그먼트는, F/E 비트, 서브 프로세서 ID 및 LS 어드레스(로컬 스토리지 어드레스)를 포함한다. 또한, 각 메모리 로케이션에는, 후술하는 액세스 키가 할당된다.
"0"인 F/E 비트는, 서브 프로세서(43)에 의해서 판독되고 있는 처리 중의 데이터, 또는 빈 상태이기 때문에 최신 데이터가 아닌 무효 데이터이고, 그 메모리 로케이션으로부터 판독 불가인 것을 나타낸다. 또한,"0"인 F/E 비트는, 그의 메모리 로케이션에 데이터 기입 가능한 것을 나타내고, 데이터가 기입되면, F/E 비트는 "1"로 설정된다.
"1"인 F/E 비트는, 그 메모리 로케이션의 데이터가 서브 프로세서(43)에 의해서 판독되어 있지 않고, 미처리의 최신 데이터인 것을 나타낸다. F/E 비트가 "1"인 메모리 로케이션의 데이터는 판독 가능하고, 서브 프로세서(43)에 의해서 판독되고 나서, F/E 비트는 "0"으로 설정된다. 또한,"1"인 F/E 비트는, 메모리 로케이션이 데이터 기입 불가인 것을 나타낸다.
또한, F/E 비트가 "0"(판독 불가/기입 가능)인 상태에 있어서, 메모리 로케이션에 대하여 판독 예약을 설정하는 것이 가능하다. F/E 비트가 "0"인 메모리 로케이션에 대하여 판독 예약을 행하는 경우에는, 서브 프로세서(43)는, 판독 예약을 행하는 메모리 로케이션의 추가 세그먼트에, 판독 예약 정보로서 서브 프로세서(43)의 서브 프로세서 ID 및 LS 어드레스를 기입한다. 그리고, 데이터를 기입하는 서브 프로세서(43)에 의해서, 판독 예약된 메모리 로케이션에 데이터가 기입되고, F/E 비트가 "1"(판독 가능/기입 불가)로 설정되었을 때, 미리 판독 예약 정보로서 추가 세그먼트에 기입되어 있는 서브 프로세서 ID 및 LS 어드레스에 의해서 특정되는 로컬 스토리지(51)에 판독된다.
복수의 서브 프로세서(43)에 의해서 데이터를 다단계로 처리할 필요가 있는 경우, 이와 같이 각 메모리 로케이션의 데이터의 판독 및 기입을 제어함으로써, 전단계의 처리를 행하는 서브 프로세서(43)가, 처리 완료된 데이터를 메인 메모리 (12)에 있어서의 소정의 어드레스에 기입한 후에 바로, 이후 단계의 처리를 행하는 다른 서브 프로세서(43)가 전처리후의 데이터를 판독하는 것이 가능하게 된다.
또한, 도 4에 나타내어지는 바와 같이, 서브 프로세서(43)의 로컬 스토리지(51)는, 복수의 어드레스를 지정할 수 있는 메모리 로케이션에 의해서 구성된다. 각 메모리 로케이션에 대해서는, 마찬가지로 추가 세그먼트가 할당된다. 추가 세그먼트는 비지 비트를 포함한다.
서브 프로세서(43)가 메인 메모리(12)에 기억되어 있는 데이터를 서브 프로세서(43)의 로컬 스토리지(51)의 메모리 로케이션에 판독할 때에는, 대응하는 비지 비트를 "1"로 설정하여 예약한다. 비지 비트가 "1"인 메모리 로케이션에는 다른 데이터를 저장할 수 없다. 로컬 스토리지(51)의 메모리 로케이션에 데이터가 판독되면, 비지 비트는 "0"으로 설정되어, 다른 데이터를 저장 할 수 있게 된다.
또한, 도 3에 나타내는 바와 같이, 정보 처리 컨트롤러(11)에 접속되어 있는 메인 메모리(12)에는, 복수의 샌드 박스가 포함된다. 샌드 박스는, 메인 메모리(12) 내의 영역을 획정하는 것이고, 각 샌드 박스는, 각 서브 프로세서(43)에 할당되고, 할당받은 서브 프로세서(43)가 배타적으로 사용할 수 있다. 즉, 서브 프로세서(43)는 할당된 샌드 박스를 사용할 수 있지만, 이 영역을 넘어 데이터에 액세스할 수는 없다.
메인 메모리(12)는, 복수의 메모리 로케이션으로 구성되는데, 샌드 박스는 이들 메모리 로케이션의 집합이다.
또한, 메인 메모리(12)의 배타적인 제어를 실현하기 위해, 도 5에 나타내어 지는 키 관리 테이블이 이용된다. 키 관리 테이블은, 키 관리 테이블 기록부(45)에 기록되어, DMAC(44)와 관련지어진다. 키 관리 테이블 내의 각 엔트리에는, 서브 프로세서 ID, 서브 프로세서 키 및 키 마스크가 포함된다.
서브 프로세서(43)가 메인 메모리(12)로 액세스하는 경우, 서브 프로세서(43)는 DMAC(44)에, 판독 또는 기입의 커맨드를 출력한다. 이 커맨드에는, 서브 프로세서(43)를 특정하는 서브 프로세서 ID 및 액세스 요구처인 메인 메모리(12)의 어드레스가 포함된다.
DMAC(44)는, 서브 프로세서(43)로부터 공급된 커맨드를 실행하는 경우, 키 관리 테이블을 참조하여, 액세스 요구원의 서브 프로세서(43)의 서브 프로세서 키를 조사한다. 그리고, DMAC(44)는, 조사한 액세스 요구원의 서브 프로세서 키와, 액세스 요구처인 메인 메모리(12)의 메모리 로케이션에 할당된 액세스 키를 비교하여, 2개의 키가 일치한 경우에만 서브 프로세서(43)로부터 공급된 커맨드를 실행한다.
도 5에 나타내어지는 키 관리 테이블에 기록되어 있는 키 마스크는, 그 임의의 비트가 "1"로 되는 것에 의해서, 그 키 마스크와 관련지어진 서브 프로세서 키의 대응하는 비트를 "0" 또는 "1"로 할 수 있다.
예를 들면, 서브 프로세서 키가 "1010"인 것으로 한다. 통상적으로, 이 서브 프로세서 키에 의해서 "1010"의 액세스 키를 갖는 샌드 박스로의 액세스만이 가능하게 된다. 그러나, 이 서브 프로세서 키와 관련지어진 키 마스크가 "0101"로 설정되어 있는 경우에는, 키 마스크의 비트가 "1"로 설정된 자릿수에 대해서만, 서 브 프로세서 키와 액세스 키의 일치 판정이 마스크되고(키 마스크의 비트가 "1"로 설정된 자릿수에 대하여, 판정되지 않고), 이 서브 프로세서 키"1010"에 의해서 액세스 키가 "1010" 또는 "1011"중 어느 하나인 액세스 키를 갖는 샌드 박스로의 액세스가 가능하게 된다.
이상과 같이 해서, 메인 메모리(12)의 샌드 박스의 배타성이 실현된다. 즉, 복수의 서브 프로세서(43)에 의해서 데이터를 다단계로 처리할 필요가 있는 경우, 이상과 같이 구성함으로써, 전단계의 처리를 행하는 서브 프로세서(43)와, 이후 단계의 처리를 행하는 서브 프로세서(43)만이, 메인 메모리(12)의 소정의 어드레스로 액세스할 수 있게 되어, 데이터를 보호할 수 있다.
예를 들면, 키 마스크의 값은, 이하와 같이 변경되는 것이 고려된다. 우선, 정보 처리 장치(1-1)의 기동 직후에 있어서는, 키 마스크의 값은 모두 "0"이다. 메인 프로세서(42)에 로드된 프로그램이 실행되고, 서브 프로세서(43)에 로드된 프로그램과 제휴 동작하는 것으로 한다. 서브 프로세서(43-1)에 의해 출력된 처리 결과 데이터를 메인 메모리(12)에 기억시키고, 메인 메모리(12)에 기억시킨 처리 결과 데이터를 서브 프로세서(43-2)에 입력하고 싶을 때에는, 서브 프로세서(43-1)에 의해 출력된 처리 결과 데이터를 기억하고 있는 메인 메모리(12)의 영역은, 서브 프로세서(43-1) 및 서브 프로세서(43-2)로부터 액세스 가능할 필요가 있다. 그와 같은 경우에, 메인 프로세서(42)는 키 마스크의 값을 적절하게 변경하여, 복수의 서브 프로세서(43)로부터 액세스할 수 있는 메인 메모리의 영역을 설치함으로써, 서브 프로세서(43)에 의한 다단계적인 처리를 가능하게 한다.
보다 구체적으로는, 예를 들면, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)로부터 송신되어 온 데이터에 기초하여, 서브 프로세서(43-1)가 소정의 처리를 실행하고, 처리가 실시된 데이터를 메인 메모리(12)의 제1 영역에 기억시킨다. 그리고, 서브 프로세서(43-2)는, 메인 메모리(12)의 제1 영역으로부터 기억되어 있는 데이터를 판독하고, 판독한 데이터에 기초하여 소정의 처리를 실행하고, 처리가 실시된 데이터를 메인 메모리(12)의 제1 영역과는 다른 제2 영역에 기억시킨다.
여기서, 서브 프로세서(43-1)의 서브 프로세서 키가 "0100"이고, 메인 메모리(12)의 제1 영역의 액세스 키가 “0100”이고, 서브 프로세서(43-2)의 서브 프로세서 키가 "0101"이고, 메인 메모리(12)의 제2 영역의 액세스 키가 "0101" 인 경우, 서브 프로세서(43-2)는, 메인 메모리(12)의 제1 영역으로 액세스할 수 없다. 따라서, 서브 프로세서(43-2)의 키 마스크를 "0101"로 하는 것에 의해서, 서브 프로세서(43-2)는, 메인 메모리(12)의 제1 영역으로 액세스할 수 있게 된다.
다음으로, 도 6 및 도 7을 참조하여, 정보 처리 장치(1-1)가 소프트웨어 셀을 생성하고, 생성한 소프트웨어 셀에 기초하여, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)에 분산 처리를 실행시키는 경우의 처리에 대하여 설명한다.
정보 처리 장치(1-1)의 메인 프로세서(42)는, 처리를 실행하기 위해 필요한 커맨드, 프로그램 및 데이터를 포함하는 소프트웨어 셀을 생성하고, 네트워크(2)를 통하여 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)쪽으로 송신한다.
도 6은, 소프트웨어 셀의 구성의 예를 도시하는 도면이다.
소프트웨어 셀은, 송신원 ID, 송신처 ID, 응답처 ID, 셀 인터페이스, DMA 커 맨드, 프로그램 및 데이터를 포함하도록 구성된다.
송신원 ID에는, 소프트웨어 셀의 송신원인 정보 처리 장치(1-1)의 네트워크 어드레스 및 정보 처리 장치(1-1)의 정보 처리 컨트롤러(11)의 정보 처리 장치 ID, 그리고 정보 처리 장치(1-1)의 정보 처리 컨트롤러(11)가 구비하는 메인 프로세서(42) 및 서브 프로세서(43)의 식별자(메인 프로세서 ID 및 서브 프로세서 ID)가 포함된다.
송신처 ID에는, 소프트웨어 셀의 송신처인 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 네트워크 어드레스, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 정보 처리 컨트롤러의 정보 처리 장치 ID, 및 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 정보 처리 컨트롤러가 구비하는 메인 프로세서 및 서브 프로세서의 식별자가 포함된다.
또한, 응답처 ID에는, 소프트웨어 셀의 실행 결과의 응답처인 정보 처리 장치(1-1)의 네트워크 어드레스, 정보 처리 장치(1-1)의 정보 처리 컨트롤러(11)의 정보 처리 장치 ID, 및 정보 처리 컨트롤러(11)가 구비하는 메인 프로세서(42) 및 서브 프로세서(43)의 식별자가 포함된다.
셀 인터페이스는, 소프트웨어 셀의 이용에 필요한 정보로서, 글로벌 ID, 필요한 서브 프로세서의 정보, 샌드 박스 사이즈 및 이전회의 소프트웨어 셀 ID 로 구성된다.
글로벌 ID는, 네트워크(2) 전체를 통해서 소프트웨어 셀을 일의적으로 식별할 수 있는 것으로, 송신원 ID, 및 소프트웨어 셀의 생성 또는 송신의 일시(날짜 및 시각)에 기초하여, 생성된다.
필요한 서브 프로세서의 정보에는, 소프트웨어 셀의 실행에 필요한 서브 프로세서의 수 등이 설정된다. 샌드 박스 사이즈에는, 소프트웨어 셀의 실행에 필요한 메인 메모리 및 서브 프로세서의 로컬 스토리지의 메모리량이 설정된다.
이전회의 소프트웨어 셀 ID는, 스트리밍 데이터 등의 시퀀셜한 실행을 요구하는 1개의 그룹을 구성하는 소프트웨어 셀 내의, 이전회의 소프트웨어 셀의 식별자이다.
소프트웨어 셀의 실행 섹션은, DMA 커맨드, 프로그램 및 데이터로 구성된다. DMA 커맨드에는, 프로그램의 기동에 필요한 일련의 DMA 커맨드가 포함되고, 프로그램에는, 서브 프로세서에 의해서 실행되는 서브 프로세서 프로그램이 포함된다. 여기에서의 데이터는, 이 서브 프로세서 프로그램을 포함하는 프로그램에 의해서 처리되는 데이터이다.
또한, DMA 커맨드에는 로드 커맨드, 킥 커맨드, 기능 프로그램 실행 커맨드, 스테이터스 요구 커맨드, 및 스테이터스 회신 커맨드가 포함된다.
로드 커맨드는, 메인 메모리(12)에 기억되어 있는 정보를 서브 프로세서의 로컬 스토리지에 로드시키는 커맨드이고, 로드 커맨드 이외에, 메인 메모리 어드레스, 서브 프로세서 ID 및 LS 어드레스를 포함한다. 메인 메모리 어드레스는, 정보의 로드원인 메인 메모리의 소정의 영역의 어드레스를 나타낸다. 서브 프로세서 ID 및 LS 어드레스는, 정보의 로드처인 서브 프로세서의 식별자 및 로컬 스토리지의 어드레스를 나타낸다.
킥 커맨드는 프로그램의 실행을 개시하는 커맨드이고, 킥 커맨드 이외에, 서브 프로세서 ID 및 프로그램 카운터를 포함한다. 서브 프로세서 ID는 킥 대상의 서브 프로세서를 식별하고, 프로그램 카운터는 프로그램 실행용 프로그램 카운터를 위한 어드레스를 부여한다.
기능 프로그램 실행 커맨드는, 임의의 장치(예를 들면, 정보 처리 장치(1-1))가 다른 장치(예를 들면, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n) 중의 어느 하나)에 대하여, 기능 프로그램의 실행을 요구하는 커맨드이다. 기능 프로그램 실행 커맨드를 수신한 장치(예를 들면, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n) 중의 어느 하나)의 정보 처리 컨트롤러는, 기능 프로그램 ID에 의해서 기동해야 할 기능 프로그램을 식별한다.
스테이터스 요구 커맨드는, 송신처 ID로 나타내어지는 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 현재의 동작 상태(상황)에 관한 장치 정보를, 응답처 ID로 나타내어지는 정보 처리 장치(1-1)쪽에 송신 요구하는 커맨드이다.
스테이터스 회신 커맨드는, 스테이터스 요구 커맨드를 수신한 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)가, 장치 정보를 스테이터스 요구 커맨드에 포함되는 응답처 ID로 나타내어지는 정보 처리 장치(1-1)에 응답하는 커맨드이다. 스테이터스 회신 커맨드는, 실행 섹션의 데이터 영역에 장치 정보를 저장한다.
도 7은, DMA 커맨드가 스테이터스 회신 커맨드인 경우에 있어서의 소프트웨어 셀의 데이터 영역의 구조를 도시하는 도면이다.
정보 처리 장치 ID는, 정보 처리 컨트롤러를 구비하는 정보 처리 장치(1)를 식별하기 위한 식별자로서, 스테이터스 회신 커맨드를 송신하는 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 ID를 나타낸다. 정보 처리 장치 ID는, 예를 들면, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 각각의 전원이 온되었을 때, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(42)에 의해서, 전원이 온되었을 때의 일시, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 네트워크 어드레스, 및 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 정보 처리 컨트롤러(11)에 포함되는 서브 프로세서(43)의 수 등에 기초하여 생성된다.
정보 처리 장치 종별 ID에는, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 특징을 나타내는 값이 포함된다. 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 특징이라 함은, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)가 어떠한 장치인지를 나타내는 정보로서, 예를 들면, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)가, 하드디스크 레코더, PDA(Personal Digital Assistants), 포터블 CD(Compact Disc) 플레이어 등인 것을 나타내는 정보이다. 또한, 정보 처리 장치 종별 ID는, 영상 음성 기록, 영상 음성 재생 등, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)가 갖는 기능을 나타내는 것이어도 된다. 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 특징이나 기능을 나타내는 값은 미리 결정되어 있는 것으로 하고, 스테이터스 회신 커맨드를 수신한 정보 처리 장치(1-1)는, 정보 처리 장치 종별 ID를 판독하는 것에 의해, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)의 특징이나 기능을 파악할 수 있다.
MS(마스터/슬레이브) 스테이터스는, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)가 마스터 장치 또는 슬레이브 장치 중 어느 것으로 동작하고 있는지를 나타내는 것으로, 이것이 0으로 설정되어 있는 경우에는 마스터 장치로서 동작하고 있는 것을 나타내고, 1로 설정되어 있는 경우에는 슬레이브 장치로서 동작하고 있는 것을 나타낸다.
메인 프로세서 동작 주파수는, 정보 처리 컨트롤러(11)의 메인 프로세서(42)의 동작 주파수를 나타낸다. 메인 프로세서 사용율은, 메인 프로세서(42)에서 현재 동작하고 있는 모든 프로그램에 대한, 메인 프로세서(42)에서의 사용율을 나타낸다. 메인 프로세서 사용율은, 메인 프로세서(42)의 전체 처리 능력에 대한 사용 중인 처리 능력의 비율을 나타낸 값으로, 예를 들면, 프로세서 처리 능력 평가를 위한 단위인 MIPS를 단위로 해서 산출되거나, 또는 단위 시간 당의 프로세서 사용 시간에 기초하여 산출된다.
서브 프로세서 수는, 정보 처리 컨트롤러(11)가 구비하는 서브 프로세서(43)의 수를 나타낸다. 서브 프로세서 ID는, 정보 처리 컨트롤러(11)의 서브 프로세서(43)를 식별하기 위한 식별자이다.
서브 프로세서 스테이터스는, 서브 프로세서(43)의 상태를 나타내는 것으로, "unused", "reserved", 및 "busy" 등의 상태가 있다. "unused"는 서브 프로세서(43)가 현재 사용되고 있지 않고, 사용 예약도 되어 있지 않은 것을 나타낸다. "reserved"는 현재는 사용되고 있지 않지만, 예약되어 있는 상태를 나타낸다. "busy"는 현재 사용 중인 것을 나타낸다.
서브 프로세서 사용율은, 서브 프로세서(43)에서 현재 실행하고 있거나, 또는 서브 프로세서(43)에 실행이 예약되어 있는 프로그램에 대한, 서브 프로세서(43)에서의 사용율을 나타낸다. 즉, 서브 프로세서 사용율은, 서브 프로세서 스테이터스가 "busy"인 경우에는 현재의 사용율을 나타내고, 서브 프로세서 스테이터스가 "reserved"인 경우에는 후에 사용될 예정의 추정 사용율을 나타낸다.
서브 프로세서 ID, 서브 프로세서 스테이터스 및 서브 프로세서 사용율은, 1개의 서브 프로세서(43)에 대하여 1조 설정되고, 1개의 정보 처리 컨트롤러(11)의 서브 프로세서(43)에 대응하는 조의 수가 설정된다.
메인 메모리 총 용량 및 메인 메모리 사용량은, 각각 정보 처리 컨트롤러(11)에 접속되어 있는 메인 메모리(12)의 총 용량 및 현재 사용 중인 용량을 나타낸다.
기록부수는, 정보 처리 컨트롤러(11)에 접속되어 있는 기록부(13)의 수를 나타낸다. 기록부 ID는, 정보 처리 컨트롤러(11)에 접속되어 있는 기록부(13)를 일의적으로 식별하는 정보이다. 기록부 종별 ID는, 기록부(13)의 종류(예를 들면, 하드디스크, CD±RW, DVD±RW, 메모리 디스크, SRAM, ROM 등)을 나타내는 정보이다.
기록부 총 용량 및 기록부 사용량은, 각각 기록부 ID에 의해서 식별되는 기록부(13)의 총 용량 및 현재 사용 중인 용량을 나타낸다.
기록부 ID, 기록부 종별 ID, 기록부 총 용량 및 기록부 사용량은, 1개의 기록부(13)에 대하여 1조 설정되는 것이고, 정보 처리 컨트롤러(11)에 접속되어 있는 기록부(13)의 수의 조 수만큼 설정된다. 즉, 1개의 정보 처리 컨트롤러(11)에 복수의 기록부(13)가 접속되어 있는 경우, 각각의 기록부(13)에는 다른 기록부 ID가 할당되고, 기록부 종별 ID, 기록부 총 용량 및 기록부 사용량도 개별로 관리된다.
이와 같이 해서, 정보 처리 장치(1-1)는, 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)에 분산 처리를 실행시키는 경우, 소프트웨어 셀을 생성하고, 생성한 소프트웨어 셀을 네트워크(2)를 통하여 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)쪽으로 송신한다.
또한, 이하, 정보 처리 장치(1-1)로부터 정보 처리 장치(1-2) 내지 정보 처리 장치(1-n)쪽으로 송신되는 각종 데이터는, 소프트웨어 셀에 저장되어 송신되는 것으로 하고, 반복되므로, 그 설명은 생략한다.
정보 처리 장치(1-2) 내지 정보 처리 장치(1-n) 중의 어느 하나의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(42)는, 이상과 같은 구성의 소프트웨어 셀을 생성하고, 네트워크(2)를 통하여 다른 정보 처리 장치(1)의 정보 처리 컨트롤러(11)에, 생성된 소프트웨어 셀을 송신한다. 송신원인 정보 처리 장치(1), 송신처인 정보 처리 장치(1), 응답처인 정보 처리 장치(1) 및 각각에 설치되어 있는 정보 처리 컨트롤러(11)는, 각각 상술한 송신원 ID, 송신처 ID 및 응답처 ID에 의해서 식별된다.
소프트웨어 셀을 수신한 정보 처리 장치(1)의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(42)는, 그 소프트웨어 셀을 메인 메모리(12)에 저장한다. 또한, 송신처인 메인 프로세서(42)는 소프트웨어 셀을 판독하고, 그것에 포함되는 DMA 커맨드를 처리한다.
구체적으로, 송신처인 메인 프로세서(42)는, 우선 로드 커맨드를 실행한다. 이에 의해, 메인 메모리(12)의, 로드 커맨드로 지시된 어드레스로부터, 로드 커맨드에 포함되는 서브 프로세서 ID 및 LS 어드레스로 특정되는 서브 프로세서(43)의 로컬 스토리지(51)의 소정 영역에 정보가 로드된다. 여기서 로드되는 정보는, 수신한 소프트웨어 셀에 포함되는 서브 프로세서 프로그램이나 프로그램의 실행에 필요한 데이터 또는 그 밖의 지시된 데이터이다.
다음으로, 메인 프로세서(42)는, 킥 커맨드를, 이것에 포함되는 서브 프로세서 ID로 지시된 서브 프로세서(43)에, 마찬가지로 킥 커맨드에 포함되는 프로그램 카운터와 동시에 출력한다.
지시된 서브 프로세서는, 그 킥 커맨드 및 프로그램 카운터에 따라서 서브 프로세서 프로그램을 실행한다. 그리고, 실행 결과를 메인 메모리(12)에 저장한 후, 실행을 완료한 것을 메인 프로세서(42)에 통지한다.
또한, 송신처인 정보 처리 장치(1)의 정보 처리 컨트롤러(11)에 있어서, 소프트웨어 셀을 실행하는 프로세서는, 서브 프로세서(43)에 한정되지 않아도 되고, 메인 프로세서(42)를 소프트웨어 셀에 포함되는 기능 프로그램 등을 실행하는 프로세서로서 지정하는 것도 가능하다.
이 경우에는, 송신원인 정보 처리 장치(1)는, 송신처인 정보 처리 장치(1)앞으로, 서브 프로세서 프로그램 대신에, 메인 메모리용 프로그램 및 그 메인 메모리용 프로그램에 의해서 처리되는 데이터를 포함하고, 또한, DMA 커맨드가 로드 커맨 드인 소프트웨어 셀을 송신하고, 메인 메모리(12)에 메인 메모리용 프로그램 및 그것에 의하여 처리되는 데이터를 기억시킨다. 다음으로, 송신원인 정보 처리 장치(1)는, 송신처인 정보 처리 장치(1)앞으로, 송신처인 정보 처리 장치(1)의 정보 처리 컨트롤러(11)에 대한 메인 프로세서 ID, 메인 메모리 어드레스, 메인 메모리용 프로그램을 식별하기 위한 기능 프로그램 ID 등의 식별자 및 프로그램 카운터를 포함하고, 또한, DMA 커맨드가 킥 커맨드 또는 기능 프로그램 실행 커맨드인 소프트웨어 셀을 송신하여, 메인 프로세서(42)에 메인 메모리용 프로그램을 실행시키도록 할 수 있다.
이상과 같이, 본 발명을 적용한 네트워크 시스템에서는, 소프트웨어 셀의 송신원인 정보 처리 장치(1)는, 서브 프로세서 프로그램 또는 메인 메모리용 프로그램을 소프트웨어 셀에 의해서 송신처인 정보 처리 장치(1)로 송신함과 함께, 서브 프로세서 프로그램을, 송신처인 정보 처리 장치(1)의 정보 처리 컨트롤러(11)에 설치되어 있는 서브 프로세서(43)에 로드시킴으로써, 서브 프로세서 프로그램 또는 메인 메모리용 프로그램을 송신처인 정보 처리 장치(1)에 실행시킬 수 있다.
소프트웨어 셀의 송신처인 정보 처리 장치(1)의 정보 처리 컨트롤러(11)에서는, 수신한 소프트웨어 셀에 포함되는 프로그램이 서브 프로세서 프로그램인 경우, 이 서브 프로세서 프로그램을 지정된 서브 프로세서(43)에 로드시킨다. 그리고, 지정된 서브 프로세서(43)에, 소프트웨어 셀에 포함되는 서브 프로세서 프로그램 또는 메인 메모리용 프로그램을 실행시킨다.
따라서, 유저는, 소프트웨어 셀의 송신처인 정보 처리 장치(1)를 조작하지 않고, 자동적으로, 서브 프로세서 프로그램 또는 메인 메모리용 프로그램이, 소프트웨어 셀의 송신원인 정보 처리 장치(1)로부터 송신처인 정보 처리 장치(1)에 할당되고, 소프트웨어 셀의 송신처인 정보 처리 장치(1)의 정보 처리 컨트롤러(11)에 의해 실행시킬 수 있다. 또한, 각각의 서브 프로세서(43) 사이에서는, DMA 방식에 의해 데이터 전송이 행해지고, 상술한 샌드 박스를 사용함으로써, 1개의 정보 처리 컨트롤러(11)에 있어서, 데이터를 다단계로 처리할 필요가 있는 경우에 있어서도, 고속이고 또한 고시큐러티로 처리를 실행할 수 있다.
도 8에, 개개의 정보 처리 컨트롤러(11)의 메인 메모리(12)가 기억하는 소프트웨어의 구성을 도시한다. 이들의 소프트웨어(프로그램)는, 정보 처리 장치(1)에 전원이 투입되기 전에 있어서는, 정보 처리 컨트롤러(11)에 접속되는 기록부(13)에 기록되어 있는 것이다.
각 프로그램은, 기능 또는 특징에 따라서, 제어 프로그램, 기능 프로그램 및 디바이스 드라이버로 카테고라이즈된다.
제어 프로그램은, 각각의 정보 처리 컨트롤러(11)가 동일한 것을 구비하고, 각각의 정보 처리 컨트롤러(11)의 메인 프로세서(42)가 실행하는 것이다. 예를 들면, 복수의 정보 처리 장치(1)에 있어서 분산 처리를 실행하는 것이 가능하도록 이루어져 있는 경우, 제어 프로그램에는, 후술하는 MS(마스터/슬레이브) 매니저 및 능력 교환 프로그램이 포함된다.
기능 프로그램은, 메인 프로세서(42)가 실행하는, 소위 어플리케이션 프로그램에 대응하는 것으로, 예를 들면, 기록용, 재생용, 소재 검색용 등, 정보 처리 컨 트롤러(11)마다 정보 처리 장치(1)가 갖는 기능에 따른 것이 구비되도록 이루어져 있다.
디바이스 드라이버는, 정보 처리 컨트롤러(11) 또는 정보 처리 장치(1)에의 데이터의 입출력(송수신) 기능을 실행하기 위한 드라이버로서, 예를 들면, 방송 수신, 모니터 출력, 비트 스트림 입출력, 네트워크 입출력 등, 정보 처리 컨트롤러(11)마다, 정보 처리 장치(1)가 갖는 기능에 따른 것이 구비되도록 이루어져 있다.
도 8에 도시되는 각 프로그램의 메인 메모리(12)에의 로드에 대하여 설명한다.
도시하지 않은 접속 케이블 등에 의해서 정보 처리 장치(1)가 물리적으로 네트워크(2)에 접속된 상태에서, 정보 처리 장치(1)에 주전원이 투입되어, 정보 처리 장치(1)가 전기적 및 기능적으로 네트워크(2)에 접속되면, 그 정보 처리 장치(1)의 정보 처리 컨트롤러(11)의 메인 프로세서(42)는, 제어 프로그램에 속하는 각 프로그램 및 디바이스 드라이버에 속하는 각 프로그램을 메인 메모리(12)에 로드한다.
구체적으로는, 메인 프로세서(42)는, 우선 DC(46)에 판독 명령을 실행시키는 것에 의해, 기록부(13)로부터 로드하는 프로그램을 판독하고, 다음으로, DMAC(44)에 기입 명령을 실행시키는 것에 의해, 그 프로그램을 메인 메모리(12)에 기입시킴으로써, 제어 프로그램에 속하는 각 프로그램 및 디바이스 드라이버에 속하는 각 프로그램을 메인 메모리(12)에 로드할 수 있다.
또한, 기능 프로그램에 속하는 각 프로그램에 대해서는, 메인 프로세서(42)의 제어에 기초하여, 필요할 때에 필요한 프로그램만이 로드되도록 해도 되고, 또 는 다른 카테고리에 속하는 프로그램과 마찬가지로, 주전원 투입 직후에 각 프로그램이 로드되도록 해도 된다.
또한, 기능 프로그램에는, 프로그램마다 프로그램을 일의적으로 식별할 수 있는 식별자가, 기능 프로그램 ID로서 할당된다. 기능 프로그램 ID는, 기능 프로그램의 작성 단계에서, 작성 일시나 정보 처리 장치 ID 등으로부터 결정된다.
여기서, 기능 프로그램에 속하는 각 프로그램은, 네트워크(2)에 접속된 모든 정보 처리 장치(1)의 기록부(13)에 기록되어 있을 필요는 없고, 어느 1개의 정보 처리 장치(1)의 기록부(13)에 기록되어 있으면, 상술한 방법에 의해서, 필요에 따라, 각각의 정보 처리 장치(1) 사이에서 기능 프로그램을 수수할 수 있다. 따라서, 네트워크(2)에 접속되어 있는 복수의 정보 처리 장치(1)를 가상적인 1대의 정보 처리 장치로서 동작시켜, 기능 프로그램을 실행시킬 수 있다.
다음으로, MS 매니저 및 능력 교환 프로그램에 대하여 설명한다.
MS 매니저는, 정보 처리 장치(1)가 네트워크(2)에 접속되어 있는 것을 검지하면, 동일한 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(1)의 존재를 확인한다. 여기에서의 「접속」 또는 「존재」는, 정보 처리 장치(1)가 물리적으로 네트워크(2)에 접속되어 있을 뿐만 아니라, 전기적 및 기능적으로 네트워크(2)에 접속되어 있는 것에 대응한다.
구체적으로는, MS 매니저는, 동일한 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(1)의 존재를 확인하기 위해, DMA 커맨드가 스테이터스 요구 커맨드이고, 송신원 ID 및 응답처 ID가 자기 자신이고, 송신처 ID를 특정하지 않는 소프트웨어 셀을 생성하고, 생성한 소프트웨어 셀을 네트워크(2)에 송신하여, 네트워크 접속 확인용의 타이머를 설정한다. 타이머의 타임아웃 시간은 예를 들면 10분으로 한다.
각각의 정보 처리 장치(1)의 메인 프로세서(42)는, 장치 정보(동작 상태에 관한 정보)를 저장하기 위한 영역을 메인 메모리(12)에 확보하고, 예를 들면, 정보 처리 장치 ID, 정보 처리 장치 종별 ID, 서브 프로세서 ID, 기록부 ID, 기록부수, 기록부 총 용량 등의 정보를 장치 정보 테이블로서 기록하고 있다.
따라서, 네트워크(2)에 다른 정보 처리 장치(1)가 접속되어 있는 경우, 접속되어 있는 다른 정보 처리 장치(1)로부터는, DMA 커맨드가 스테이터스 회신 커맨드이고, 또한, 다른 정보 처리 장치(1)의 메인 메모리(12)에 기록되어 있는 장치 정보를 데이터로서 포함하는, 소프트웨어 셀이 회신된다. MS 매니저는, 타이머가 타임아웃할 때까지, 스테이터스 회신 커맨드의 소프트웨어 셀의 수신을 감시한다. 그 결과, MS 스테이터스=0(마스터 장치)을 나타내는 스테이터스 회신 커맨드가 수신된 경우, MS 매니저는, 자기 자신의 장치 정보 테이블에 있어서의 MS 스테이터스를 1로 설정한다. 이것에 의해서, MS 매니저는, 자기 자신을 슬레이브 장치라고 인식한다. 한편, 타이머가 타임아웃할 때까지의 동안에, 스테이터스 회신 커맨드가 전혀 수신되지 않은 경우, 또는 MS 스테이터스=0(마스터 장치)을 나타내는 스테이터스 회신 커맨드가 수신되지 않은 경우, MS 매니저는, 자기 자신의 장치 정보 테이블에 있어서의 MS 스테이터스를 0으로 설정한다. 이것에 의해서, MS 매니저는 자기 자신이 마스터 장치라고 인식한다.
또한, MS 매니저는, 자기 자신이, 마스터 장치 또는 슬레이브 장치 중 어느 것이든, 정기적으로 스테이터스 요구 커맨드를 네트워크(2)에 송신하여 스테이터스 정보를 조회하는 것에 의해, 다른 장치의 상황을 감시한다. 그 결과, 네트워크(2)의 접속 상태에 변화가 있었던 경우에는, 그 정보를 후술하는 능력 교환 프로그램에 통지한다.
그리고, 능력 교환 프로그램은, 자기 자신이 마스터 장치인 경우, 네트워크(2)에 접속되어 있는 모든 다른 정보 처리 장치(1)의 장치 정보, 즉 각 슬레이브 장치의 장치 정보를 취득한다.
슬레이브 장치의 장치 정보의 취득은, 상술한 바와 같이, DMA 커맨드가 스테이터스 요구 커맨드인 소프트웨어 셀을 생성하여 네트워크(2)에 송신하고, 그 후, DMA 커맨드가 스테이터스 회신 커맨드이고 또한 데이터로서 슬레이브 장치의 장치 정보를 포함하는 소프트웨어 셀을 수신하는 것에 의해서 행해진다.
능력 교환 프로그램은, 마스터 장치인 자기 자신의 장치 정보 테이블과 마찬가지로, 네트워크(2)에 접속되어 있는 모든 슬레이브 장치의 장치 정보를 저장하기 위한 영역을 자(自)장치의 메인 메모리(12)에 확보하고, 이들 정보를 슬레이브 장치의 장치 정보 테이블로서 기록한다.
즉, 마스터 장치의 메인 메모리(12)에는, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(1)의 장치 정보가 장치 정보 테이블로서 기록된다.
한편, 능력 교환 프로그램은, 자기 자신이 슬레이브 장치인 경우, 마찬가지로 해서, 네트워크(2)에 접속되어 있는 모든 다른 정보 처리 장치의 장치 정보를 취득하고, 이들 장치 정보에 포함되는 정보 처리 장치 ID 및 MS 스테이터스를 메인 메모리(12)에 기록한다. 즉, 슬레이브 장치의 메인 메모리(12)에는, 자기 자신의 장치 정보가 장치 정보 테이블로서 기록됨과 함께, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(1)(마스터 장치 및 슬레이브 장치)에 대한 정보 처리 장치 ID 및 MS 스테이터스가 기록된다.
또한, 능력 교환 프로그램은, 자기 자신이 마스터 장치 또는 슬레이브 장치 중 어느 것이든, 새롭게 네트워크(2)에 정보 처리 장치(1)가 접속되거나, 접속되어 있는 정보 처리 장치(1) 중의 어느 하나가 네트워크(2)로부터 절단된 것이 통지된 경우, 상술한 바와 같이, MS 매니저로부터, 네트워크(2)의 접속 상태에 변화가 있었던 것을 나타내는 정보를 취득하여, 메인 메모리(12)에 기록되어 있는 정보를 갱신한다.
또한, MS 매니저 및 능력 교환 프로그램은, 메인 프로세서(42)에서 실행되는 것에 한정하지 않고, 어느 하나의 서브 프로세서(43)에서 실행되어도 된다. 또한, MS 매니저 및 능력 교환 프로그램은, 정보 처리 장치의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주(常駐) 프로그램인 것이 바람직하다.
또한, 분산 처리에 있어서의 마스터 장치는, 유저의 조작 및 슬레이브 장치의 동작 상태를 파악할 필요가 있다. 유저가 네트워크(2)에 접속되어 있는 어느 하나의 정보 처리 장치(1)를 조작한 경우, 조작 대상이 마스터 장치이면, 그 조작 정보는 마스터 장치에 있어서 직접 파악되고, 조작 대상이 슬레이브 장치이면, 그 조작 정보는 조작된 슬레이브장치로부터 마스터 장치로 송신된다. 즉, 유저의 조 작 대상이 마스터 장치와 슬레이브 장치 중 어느 것인가에 관계없이, 그 조작 정보는 항상 마스터 장치에 있어서 파악되도록 이루어진다. 조작 정보의 송신은, 예를 들면 DMA 커맨드가 조작 정보 송신 커맨드인 소프트웨어 셀에 의해서 행해진다.
그리고, 마스터 장치의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(42)는, 그 조작 정보에 따라서 실행하는 기능 프로그램을 선택한다. 마스터 장치의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(42)는, 상술한 바와 같이, 자기 자신의 기록부(13)로부터, 또는 다른 정보 처리 장치(1)(즉, 슬레이브 장치)로부터 메인 메모리(12)에 기능 프로그램을 로드한다.
기능 프로그램에는, 그 실행 단위마다 필요로 되는, 정보 처리 장치 종별 ID, 메인 프로세서 또는 서브 프로세서의 처리 능력, 메인 메모리 사용량, 외부 기록부에 관한 조건 등의, 장치에 관한 요구 스펙이 규정되어 있다. 마스터 장치의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(42)는, 각 기능 프로그램에 대하여 필요로 되는 요구 스펙을 판독함과 함께, 능력 교환 프로그램에 의해서 메인 메모리(12)에 미리 기록되어 있는 장치 정보 테이블을 참조하여, 네트워크(2)에 접속되어 있는 각각의 정보 처리 장치(1)의 장치 정보를 판독한다.
그리고, 마스터 장치의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(42)는, 네트워크(2) 상에 접속된 각 정보 처리 장치(1)의 장치 정보와, 기능 프로그램 실행에 필요로 되는 요구 스펙을 순차적으로 비교하여, 예를 들면, 기능 프로그램이 녹화 기능을 필요로 하는 경우, 정보 처리 장치 종별 ID에 기초하여 녹화 기능을 갖는 정보 처리 장치(1)만을 특정하여 추출하는 등, 기능 프로그램을 실행 하기 위해 필요한 메인 프로세서 또는 서브 프로세서의 처리 능력, 메인 메모리 사용량, 외부 기록부에 관한 조건을 확보할 수 있는 슬레이브 장치를 실행 요구 후보 장치로서 특정한다. 여기서, 복수의 실행 요구 후보 장치가 특정된 경우, 이들의 후보장치로부터 1개의 실행 요구 후보 장치가 선택된다.
마스터 장치 내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(42)는, 실행 요구 후보 장치로서 특정된 슬레이브 장치에 대하여, 자기 자신의 메인 메모리(12)에 기록되어 있는 장치 정보 테이블을 갱신한다. 또한, 메인 프로세서(42)는, DMA 커맨드가 로드 커맨드 및 킥 커맨드인 소프트웨어 셀을 생성하고, 기능 프로그램에 관한 필요한 서브 프로세서의 정보 및 샌드 박스 사이즈를 설정하여, 실행 요구 후보 장치로서 특정된 슬레이브 장치로 송신한다.
기능 프로그램의 실행을 요구받은 슬레이브 장치는, 그 기능 프로그램을 실행함과 함께, 자기 자신에 기록되어 있는 장치 정보 테이블을 갱신한다. 슬레이브 장치의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(42)는, 그 때, 필요하다면, 상술한 바와 같이, 자기 자신의 기록부(13)로부터, 또는 다른 정보 처리 장치(1)로부터 메인 메모리(12)에 기능 프로그램을 로드한다.
또한, 메인 메모리용 프로그램과 마찬가지로, 서브 프로세서 프로그램도, 필요하다면, 소프트웨어 셀에 의해서 다른 정보 처리 장치(1)로 송신시키고, 다른 정보 처리 장치(1)의 서브 프로세서(43)에 로드시켜, 다른 정보 처리 장치(1)에 실행시킬 수 있다.
기능 프로그램의 실행 종료 후, 기능 프로그램을 실행한 슬레이브 장치의 정 보 처리 컨트롤러(11)의 메인 프로세서(42)는, 종료 통지를 마스터 장치의 정보 처리 컨트롤러(11)의 메인 프로세서(42)에 송신함과 함께, 자기 자신이 기억하고 있는 장치 정보 테이블을 갱신한다. 마스터 장치의 정보 처리 컨트롤러(11)의 메인 프로세서(42-1)는, 슬레이브 장치에 의해 송신된 기능 프로그램의 실행의 종료 통지를 수신하여, 자기 자신이 기억하고 있는 장치 정보 테이블 중, 기능 프로그램을 실행한 슬레이브 장치에 대응하는 부분을 갱신한다.
또한, 가상적인 1대의 정보 처리 장치로서 기능 프로그램이 실행되는 경우, 마스터 장치가, 유저의 조작 및 슬레이브 장치의 동작 상태를 파악해 둘 필요가 있기 때문에, 네트워크(2)로부터 차단된 정보 처리 장치(1)가 마스터 장치인 경우, 예를 들면, 네트워크(2)로부터 차단되어 있지 않은 정보 처리 장치(1) 중, 가장 작은 값의 정보 처리 장치 ID를 갖는 정보 처리 장치(1)를 마스터 장치로 하도록 하면 된다.
또한, 본 발명을 적용한 정보 처리 컨트롤러는, 복수의 서브 프로세서를 포함하는 전체의 구성을 원 칩 IC(집적 회로)로서 구성하도록 해도 된다. 복수의 서브 프로세서를 포함하는 정보 처리 컨트롤러를 원 칩 IC로서 구성한 경우, 동일한 처리를 행하는 다른 프로세서와 비교하여, 열밀도가 높아지는 것을 피할수 없다. 그래서, 메인 프로세서(42) 및 각각의 서브 프로세서(43)에 온도 센서 등에 의한 온도 검출부를 설치하고, 정상 동작 가능한 온도 범위 내에서 동작하도록 관리하는 것에 의해, 소자의 열화를 방지함과 함께 신뢰성이 높은 정보 처리 컨트롤러 및 정보 처리 장치를 실현할 수 있다. 또한, 본 발명을 적용한 정보 처리 컨트롤러는, 1개 또는 복수의 정보 처리 장치 내의 서브 프로세서 사이에서 온도 상승에 따른 처리의 이동 또는 교환을 행함으로써, 열 폭주 등에 의한 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
도 9 내지 도 17을 이용하여, 본 발명을 적용한 정보 처리 장치의 정보 처리 컨트롤러에 있어서, 프로세서의 온도 상승에 따른 분산 처리를 실현하는 경우에 있어서의 제1 실시 형태에 대하여 설명한다.
도 9는, 메인 프로세서(42) 및 각각의 서브 프로세서(43)에 온도 검출부가 설치되어 있는 정보 처리 장치(101)의 구성을 도시하는 블록도이다.
또한, 도 1에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 도 9에 도시되는 정보 처리 장치(101)는, 정보 처리 컨트롤러(11) 대신에 정보 처리 컨트롤러(111)가 구비되고, 1칩으로 구성되어 있는 정보 처리 컨트롤러(111)의 온도를 검출하기 위한 온도 검출부(121-(m+2))(m은, 정보 처리 컨트롤러(111)에 설치되어 있는 서브 프로세서(43)의 수와 동일한 값이다)가 새롭게 설치되어 있는 것 이외에는, 기본적으로 도 1을 이용하여 설명한 정보 처리 장치(1)와 마찬가지의 구성을 갖고 있다.
또한, 정보 처리 컨트롤러(111)는, 새롭게 서브 프로세서(43-1) 내지 서브 프로세서(43-m)의 온도를 계측하기 위한 온도 검출부(121-1) 내지 온도 검출부(121-m), 및 메인 프로세서(42)의 온도를 계측하기 위한 온도 검출부(121-(m+1)), 및 온도 검출부(121-1) 내지 온도 검출부(121-(m+2))에 의해 계측된 온도의 측정 결과를 모니터링하고, 그 결과를, 버스(41)를 통하여 메인 프로세서(42)에 공급하 는 온도 모니터 처리부(122)가 설치되어 있는 것 이외에는, 기본적으로 도 1을 이용하여 설명한 정보 처리 컨트롤러(11)와 마찬가지의 구성을 갖는 것이다.
정보 처리 장치(101)는, 제1 실시 형태에 있어서는, 네트워크(2)에 접속되어 있지 않고, 스탠드 얼론으로 처리를 실행하도록 이루어져 있다. 즉, 제1 실시 형태의 정보 처리 장치(101)에 의한 분산 처리는, 정보 처리 컨트롤러(111)의 서브 프로세서(43-1) 내지 서브 프로세서(43-m)에서만 실행되는 것이다.
다음으로, 도 10을 참조하여, 정보 처리 컨트롤러(111)의 칩 구성(칩 상에 있어서의 소자 등의 배치)에 대하여 설명한다. 또한, 도 10에 있어서는, DMAC(44), 키 관리 테이블(45), DC(46) 및 온도 모니터 처리부(122)의 배치에 대해서는 생략한다.
정보 처리 컨트롤러(111)의 칩에는, 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 8개의 서브 프로세서와, 이들에 대응하는 로컬 스토리지(51-2) 내지 로컬 스토리지(51-9)가, 버스(41)를 중심으로 4개씩(4×2의 배열로) 설치되고, 메인 프로세서(42)와 버스(41)를 통하여 서로 고속의 데이터 전송을 행하기 위해, 인접해서 배치되도록 이루어져 있다. 도 10에 있어서는, 메인 프로세서(42)에 접속되어 있는 버스(41)의 한쪽에, 서브 프로세서(43-1) 내지 서브 프로세서(43-4)가, 서브 프로세서(43-1)가 가장 메인 프로세서(42)에 가깝게 되고, 그 이후, 번호순으로, 메인 프로세서(42)로부터 멀어지도록 설치되어 있고, 버스(41)의 다른 쪽에, 서브 프로세서(43-5) 내지 서브 프로세서(43-8)가, 서브 프로세서(43-5)가 가장 메인 프로세서(42)에 가깝게 되고, 그 이후, 번호순으로, 메인 프로세서(42)로부터 멀어지도록 설치되어 있다. 또한, 정보 처리 컨트롤러(111)의 칩에는, 방열을 위한 히트싱크(141)가 설치되어 있다.
그리고, 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 각각의 근방에 온도 센서 등의 온도 검출부(121-1) 내지 온도 검출부(121-8)가 설치되고, 메인 프로세서(42)의 근방에, 온도 검출부(121-9)가 설치되고, 히트싱크(141)의 근방에 온도 검출부(121-10)가 설치되어 있다.
도 11에, 온도 상승을 이용하여 제어를 행할 수 있는, 제1 실시 형태의 정보 처리 컨트롤러(111)에 의해서 실행되는 소프트웨어의 구성을 나타낸다. 이들의 소프트웨어(프로그램)는, 정보 처리 장치에 전원이 투입되기 전에 있어서는, 정보 처리 컨트롤러(111)에 접속되는 기록부(13)에 기록되어 있는 것이다.
또한, 도 8에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 제1 실시 형태에 있어서의 정보 처리 컨트롤러(111)의 메인 메모리(12)가 기억하는 소프트웨어의 구성은, 새롭게 제어 프로그램에 온도 관리 프로그램이 추가되고, 제어 프로그램으로부터 MS 매니저 및 능력 교환 프로그램이 생략되어 있는 것 이외에는, 기본적으로 도 8을 이용하여 설명한 경우와 마찬가지이다. 또한, 온도 관리 프로그램은, 정보 처리 장치(101)의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주 프로그램인 것이 바람직하다.
온도 관리 프로그램은, 정보 처리 장치(101)의 온도 검출부(121-1) 내지 온도 검출부(121-10)에 의해 측정되고, 온도 모니터 처리부(122)에 의해 모니터링되는 온도 정보를 수집하여, 관리함과 함께, 이들의 온도 정보에 기초하여, 메인 프 로세서(42)에 의해 실행되는 처리의 제어, 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서 필요에 따라 실행되는 처리의 이동 또는 교환을 제어한다.
도 12는, 정보 처리 장치(101)가 실행 가능한 기능, 바꾸어 말하면, 도 11을 이용하여 설명한 소프트웨어가 실행됨으로써 실현되는 기능에 대하여 설명하기 위한 기능 블록도이다.
도 12에 있어서, 연산 처리부(161), 기억부(162), 논리 쓰레드 관리 처리부(163), 및 온도 이상 대응 처리 제어부(169)의 기능은, 기본적으로, 정보 처리 장치(101)의 메인 프로세서(42)에 의해 실현되는 기능이다. 또한, 도 12에 있어서, 온도 정보 취득부(164), 인터럽트 제어부(165), 타이머(166), 온도 관리 테이블(167), 온도 상승 검출부(168)의 기능은, 기본적으로, 정보 처리 장치(101)의 온도 모니터 처리부(122)에 의해 실현되는 기능이다.
또한, 도 12에 있어서, 연산 처리부(181), 레지스터(182), 부동 소수점 레지스터(183), 프로그램 카운터(184), 인터럽트 제어부(185) 및 쓰레드 이동·교환 처리부(186)는, 기본적으로, 정보 처리 장치(101)의 서브 프로세서(43)에 의해 실현되는 기능이고, 코드 영역(187), 데이터 영역(188), 데이터 영역(189) 및 스택 영역(190)은, 로컬 스토리지(51)의 보존 영역 중의 적어도 일부에 대응하는 것이다. 또한, 도 12에 있어서는, 1조의 서브 프로세서(43) 및 온도 검출부(121)만이 도시되어 있지만, 정보 처리 컨트롤러(111) 내의 모든 서브 프로세서(43) 및 온도 검출부(121)에 대해서도, 마찬가지로 접속되어 있는 것으로 한다.
연산 처리부(161)는, 소정의 어플리케이션 프로그램을 실행하기 위한 연산 처리를 실행한다. 기억부(162)는, 로컬 스토리지(51-1)의 기억 영역 중의 적어도 일부에 대응하고, 연산 처리부(161)에 의해 실행되는 프로그램이나, 프로그램의 실행에 필요한 데이터 등을 기억한다. 또한, 연산 처리부(161)는, 서브 프로세서(43) 중의 어느 하나에 분산 처리를 실행시키는 경우, 논리 쓰레드 관리 처리부(163)에, 논리 쓰레드의 설정 정보를 공급하여, 논리 쓰레드의 생성을 요구한다. 논리 쓰레드라 함은, 복수의 서브 프로세서(43)의 각각에 필요에 따라 할당된 복수의 프로그램(이들 프로그램은, 동일한 어플리케이션 프로그램에 대응하는 것이어도 되고, 서로 다른 어플리케이션 프로그램에 대응하는 것이어도 됨)을 통합하여 하나의 기능을 제공하는 처리 단위로 정의한 것이다. 바꾸어 말하면, 복수의 서브 프로세서(43)의 각각에 필요에 따라 할당된 복수의 프로그램은, 메인 메모리(12)의 소정의 기억 영역에 기억되어 있는 프로그램으로서, 연산 처리부(161)에 의해 실행이 제어되고 있는 어플리케이션 프로그램의 요구에 의해, 메인 메모리(12)로부터 대응하는 서브 프로세서(43)의 로컬 스토리지(51)에 로드되어 실행되는 것이다.
논리 쓰레드 관리 처리부(163)는, 연산 처리부(161)에 의해 실행되는 어플리케이션 프로그램에 대응하는 논리 쓰레드의 생성 및 삭제를 행함과 함께, 생성한 논리 쓰레드의 상태 감시와 동작 제어를 행한다. 논리 쓰레드 관리 처리부(163)는, 정보 처리 컨트롤러(111)의 전체의 관리 정보가 기재된 테이블과, 실행되는 논리 쓰레드마다 논리 쓰레드의 실행에 필요한 정보가 기재된 테이블을 작성하고, 필요에 따라, 테이블의 정보를 참조하여 갱신하는 것에 의해, 논리 쓰레드의 실행을 제어한다.
온도 정보 취득부(164)는, 인터럽트 제어부(165)의 처리에 의해 제어되는 타이밍에서, 온도 검출부(121)로부터 공급되는 온도 정보를 취득하여, 관리 정보 테이블(167)을 갱신한다. 인터럽트 제어부(165)는, 타이머(166)를 참조하여, 온도 정보 취득부(164)에 대하여 타이머 인터럽트가 걸림과 함께, 온도 상승 검출부(168)로부터 공급되는 정보에 기초하여, 연산 처리부(161) 및 온도 이상 대응 처리 제어부(169)에 인터럽트가 걸린다.
온도 관리 테이블(167)은, 정보 처리 컨트롤러(111)에 있어서의 온도 관리를 행하기 위한 정보가 기재되는 테이블로서, 도 13에 도시되는 바와 같이, 정보 처리 컨트롤러(111)를 식별하기 위한 컨트롤러 ID, 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 동작 상태를 나타내는 정보, 히트싱크(141), 메인 프로세서(42) 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서의 최신의 온도 검출 결과(즉, 온도 검출부(121-1) 내지 온도 검출부(121-10)의 각각의 최신의 온도 검출 결과), 히트싱크(141), 메인 프로세서(42) 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서의 상한 온도의 설정값(즉, 온도 검출부(121-1) 내지 온도 검출부(121-10)의 각각이 검출하는 온도가 이 이상높은 경우에는, 이상(異常)값이라고 판별하기 위한 설정값), 및 칩 내의 서브 프로세서의 배치 정보가 기재되어 있다.
도 13에 있어서, 상한 온도라 함은, 정보 처리 컨트롤러(111) 또는 정보 처리 장치(101)의 설계시에 있어서, 미리 설정된 정상적인 동작을 행하기 위해 요구되는 온도의 상한값이다. 상한 온도는, 정상이고 또한 효율적인 동작을 행하기 위해 바람직한 온도 상한값이어도 좋다. 또한, 서브 프로세서(43-1) 내지 서브 프로 세서(43-8)의 동작 상태를 나타내는 정보라 함은, 각각이 동작 중인지의 여부를 나타내는, 예를 들면, RUN 또는 STOP의 스테이터스이다. 그리고, 서브 프로세서 배치 정보라 함은, 정보 처리 컨트롤러(111) 또는 정보 처리 장치(101)의 설계시에 있어서 미리 설정된, 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 배치를 나타내는 정보로서, 예를 들면, 도 10을 이용하여 설명한 경우에 있어서는, 서브 프로세서(43-1) 내지 서브 프로세서(43-8)가 세로 2행×가로 4열로 배치되어 있는 것을 나타내는 정보 및 이들의 배치와 서브 프로세서 ID와의 대응을 나타내는 정보가 기재되어 있다.
온도 상승 검출부(168)는, 온도 관리 테이블(167)을 참조하여, 온도 검출부(121-1) 내지 온도 검출부(121-10)에 의해 검출된 온도 검출 결과 중, 미리 설정되어 있는 상한 온도를 초과한 것이 있었던 경우, 인터럽트 제어부(165)에 이상 온도 상승이 검출된 것을 통지하여, 연산 처리부(161) 및 온도 이상 대응 처리 제어부(169)에 인터럽트를 걸게 한다.
온도 이상 대응 처리 제어부(169)는, 인터럽트 제어부(165)에 의해 인터럽트가 걸린 경우, 온도 관리 테이블(167)을 참조하여, 이상 온도 상승이 검출된 온도 검출부(121)에 대응하는 것이, 정보 처리 컨트롤러(111)인지, 메인 프로세서(42)인지, 또는 서브 프로세서(43) 중의 어느 것인지를 검출하고, 논리 쓰레드 관리 처리부(163)를 제어하고, 필요에 따라, 실행되고 있는 처리를 일단 정지시키거나, 이상 온도 상승이 검출된 서브 프로세서(43)와 정상 서브 프로세서(43) 중 어느 하나와의 실행되고 있는 쓰레드의 이동 또는 교환을 제어한다.
다음으로, 연산 처리부(181)는, 메인 프로세서(42)에 의해 할당된 프로그램(쓰레드)을, 논리 쓰레드 관리 처리부(163)의 제어에 기초하여 실행한다. 레지스터(182) 및 부동 소수점 레지스터(183)는, 연산 처리부(181)에 의해 실행되는 프로그램의 실행에 이용되는 레지스터이고, 프로그램 카운터(184)는, 연산 처리부(181)에 의해 현재 실행되고 있는 명령이 저장되어 있는 어드레스를 나타내는 카운터이다.
인터럽트 제어부(185)는, 논리 쓰레드 관리 처리부(163)의 제어에 기초하여, 인터럽트가 이루어진 경우, 연산 처리부(181)의 처리를 정지시키거나, 인터럽트가 해제된 경우, 연산 처리부(181)의 처리를 재개시킨다. 쓰레드 이동·교환 처리부(186)는, 논리 쓰레드 관리 처리부(163)의 제어에 기초하여, 자기 자신이 실행하고 있는 프로그램을 다른 서브 프로세서(43)로 이동시키는 경우, 또는 다른 서브 프로세서(43)가 실행하고 있는 프로그램과 교환시키는 경우에, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시키고, 스택 영역(190)과 데이터 영역(189)의 내용을, 프로그램의 처리의 이동처 또는 교환처로서 선택된 서브 프로세서(43)의 로컬 스토리지(51)로 전송시키는 처리를 제어한다.
또한, 코드 영역(187)은 각 서브 프로세서 공통의 코드를 기억하는 영역이고, 데이터 영역(188)은 고정 데이터를 기억하는 영역이고, 데이터 영역(189)은 서브 프로세서(43)에 의해서 상이한 데이터를 기억하는 영역이고, 스택 영역(190)은 자기 자신이 실행하고 있는 프로그램을 다른 서브 프로세서(43)로 이동시키는 경우 또는 다른 서브 프로세서(43)가 실행하고 있는 프로그램과 교환시키는 경우에, 실 행 중인 프로그램의 콘텍스트를 퇴피시키기 위한 영역이다.
다음으로, 도 12의 기능 블록을 이용하여 설명한 기능을 갖는 정보 처리 컨트롤러(11)가 실행하는 처리의 구체예에 대하여 설명한다.
예를 들면, 3차원 그래픽스를 처리하기 위한 어플리케이션 프로그램이 실행되는 경우, 1 화면분의 처리를 화소마다 분할하여, 동일한 프로그램, 동일한 모델 데이터에 기초하여, 복수의 프로세서에서 병렬로 연산시키도록 할 수 있다. 즉, 연산 처리부(161)에 있어서, 3차원 그래픽스를 처리하기 위한 어플리케이션 프로그램이 실행되는 경우, 화소마다 분할된 처리가 복수의 서브 프로세서(43)에 각각 할당되고, 병렬해서 연산되도록 할 수 있다.
연산 처리부(161)는, 논리 쓰레드 관리 처리부(163)에 논리 쓰레드의 생성을 요구할 때, 이 논리 쓰레드에 있어서 사용하는 서브 프로세서(43)의 총수를 미리 정해 놓고, 논리 쓰레드의 설정 정보로서 논리 쓰레드 관리 처리부(163)에 공급한다. 여기서는, 사용하는 서브 프로세서(43)의 총수를, 2개인 것으로 한다. 그리고, 논리 쓰레드 관리 처리부(163)는, 처리에 필요한, 공통으로 사용하는 프로그램과 모델 데이터를, 분산 처리를 할당한 서브 프로세서(43)의 코드 영역(187) 및 데이터 영역(188)(로컬 스토리지(51))에 로드시킨다.
또한, 이 때, 처리에 필요한, 공통으로 사용하는 프로그램과 모델 데이터를, 분산 처리가 할당되어 있지 않은 서브 프로세서(43)의 로컬 스토리지(51)에도 미리 공급해 두도록 해도 좋다. 그것에 의해, 후술하는 처리에 있어서, 온도 상승 때문에, 현재 분산 처리가 할당되어 있지 않은 서브 프로세서(43)에, 대응하는 논리 쓰 레드의 처리가 새롭게 할당되었을(처리가 이동되었을, 또는 교환되었을) 때, 새롭게 프로그램과 모델 데이터를 로드할 필요가 없어지기 때문에, 바람직하다.
예를 들면, 분산 처리가 할당된 서브 프로세서(43)가, 서브 프로세서(43-1) 및 서브 프로세서(43-2)일 때, 서브 프로세서(43-1)의 연산 처리부(81)는, 화면 상의 좌표(2x, y)의 위치의 휘도값의 연산 처리를 행하고, 서브 프로세서(43-2)의 연산 처리부(81)는, 화면 상의 좌표(2x+1, y)의 위치의 휘도값의 연산 처리를 행하는 것으로 한다.
인터럽트 제어부(165)는, 정보 처리 장치(101)가 동작 중인 경우, 항상 타이머(166)를 참조하여, 소정의 일정 시간마다 온도 정보 취득부(164)에 인터럽트를 걸고, 온도 검출부(121-1) 내지 온도 검출부(121-10)에 의해 검출된 온도 정보를 취득시켜, 온도 관리 테이블(167)의 온도 검출 결과의 값을 갱신시킨다.
서브 프로세서(43-1) 및 서브 프로세서(43-2)는, 연산 처리부(161)에 의해 처리되고 있는 어플리케이션 프로그램의 요구에 의해 할당된 쓰레드를, 각각 순차적으로 처리한다. 서브 프로세서(43-1) 및 서브 프로세서(43-2)는, 연산 처리의 실행에 수반하여, 고속으로 스위칭하는 트랜지스터의 비율에 따라서 발열한다. 또한, 메인 프로세서(42) 및 분산 처리가 할당된 서브 프로세서(43)의 발열은, 자기 자신의 트랜지스터의 스위칭 뿐만 아니라, 인접한 프로세서의 발열의 영향을 받는다. 즉, 고속으로 스위칭하는 프로세서가 인접해서 존재한 경우, 이들의 프로세서의 온도는 현저히 상승한다.
온도 상승 검출부(168)는, 온도 관리 테이블(167)을 참조하여, 온도 검출부 (121-1) 내지 온도 검출부(121-10)에 의해 검출된 온도 검출 결과 중, 미리 설정되어 있는 상한 온도를 초과한 것이 있었던 경우, 인터럽트 제어부(165)에 이상 온도 상승이 검출된 것을 통지한다. 인터럽트 제어부(165)는, 온도 상승 검출부(168)의 통지를 받고, 연산 처리부(161) 및 온도 이상 대응 처리 제어부(169)에 인터럽트를 건다.
인터럽트 제어부(165)에 의해 인터럽트가 걸린 연산 처리부(161)는, 실행 중인 어플리케이션 프로그램의 처리를 일단 정지시킨다. 또한, 인터럽트 제어부(165)에 의해 인터럽트가 걸린 온도 이상 대응 처리 제어부(169)는, 온도 관리 테이블(167)을 참조하여, 이상 온도 상승이 검출된 온도 검출부(121)에 대응하는 것이, 정보 처리 컨트롤러(111)인지, 메인 프로세서(42)인지, 또는 서브 프로세서(43) 중의 어느 것인지를 검출하고, 논리 쓰레드 관리 처리부(163)를 제어하고, 필요에 따라, 처리를 일단 정지시키거나, 이상 온도 상승이 검출된 서브 프로세서(43)와 정상 서브 프로세서(43) 중 어느 하나와의 실행되고 있는 쓰레드의 이동 또는 교환을 제어한다.
구체적으로는, 온도 이상 대응 처리 제어부(169)는, 온도 관리 테이블(167)을 참조하여, 이상 온도 상승이 검출된 온도 검출부(121)에 대응하는 것이, 서브 프로세서(43-1)인 것을 검출한 경우, 온도 관리 테이블(167)을 참조하여, 서브 프로세서(43-1)가 실행하고 있던 쓰레드의 처리가 새롭게 할당되는, 즉, 처리의 이동처로 되는 서브 프로세서(43)를 선택할 수 있는지의 여부를 판단한다.
이동처인 서브 프로세서(43)는, 현재 동작 중인 서브 프로세서(43)에 인접하 지 않는 것이고 또한 정지 상태인 서브 프로세서(43) 중, 온도 검출 결과가 가장 낮은 것을 선택되고, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우에는, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것이 선택된다. 또한, 현재 동작 중인 서브 프로세서(43)에 인접하지 않는, 정지 상태인 서브 프로세서(43)가 존재하지 않는 경우, 정지 상태의 서브 프로세서(43) 중, 온도 검출 결과가 가장 낮은 것이 선택되고, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우에는, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것이 선택된다.
또한, 정지 상태의 서브 프로세서(43)가 존재하지 않는 경우, 처리의 이동이 아니고, 처리의 교환이 행하여진다. 처리의 교환처로서, 온도 검출 결과가 가장 낮은 것이 선택되고, 이 조건을 충족시키는 서브 프로세서가 복수 있는 경우에는, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것이 선택된다.
또한, 처리에 필요한, 공통으로 사용하는 프로그램과 모델 데이터가, 분산 처리가 할당되어 있지 않은 서브 프로세서(43)의 로컬 스토리지(51) 중의 어느 하나에 미리 공급되어 있는 경우, 공통으로 사용하는 프로그램과 모델 데이터가 로컬 스토리지(51)에 보존되어 있는 서브 프로세서(43)가 우선해서 선택되도록해도 좋다.
여기서, 온도 이상 대응 처리 제어부(169)는, 온도 관리 테이블(167)을 참조하고, 동작 실행 중인 서브 프로세서(43-1) 및 서브 프로세서(43-2) 중, 이상 온도 상승이 검출된 온도 검출부(121)에 대응하는 것이, 서브 프로세서(43-1)인 것을 검출한 경우, 온도 관리 테이블(167)을 참조하여, 정지 중인 서브 프로세서(43-3) 내 지 서브 프로세서(43-8) 중 상술한 조건에 합치한 것으로서, 예를 들면 서브 프로세서(43-4)를 선택하는 것으로 한다.
온도 이상 대응 처리 제어부(169)는, 서브 프로세서(43-1)의 처리의 이동처로서 서브 프로세서(43-4)가 선택된 것을 논리 쓰레드 관리 처리부(163)에 통지한다. 논리 쓰레드 관리 처리부(163)는, 서브 프로세서(43-1)가 실행하고 있는 처리의 콘텍스트를 퇴피시켜, 처리를 정지시키고, 퇴피시킨 콘텍스트를 서브 프로세서(43-4)에 로드시키기 위해서 서브 프로세서(43-1)를 제어함과 함께, 온도 관리 테이블(167)의 서브 프로세서(43-1)의 동작 상태를 나타내는 스테이터스를 STOP으로 변경한다.
서브 프로세서(43-1)의 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨다. 그리고, 쓰레드 이동·교환 처리부(186)는, 이동처인 서브 프로세서(43-4)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에, 스택 영역(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(163)가 관리하는 도시하지 않은 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
논리 쓰레드 관리 처리부(163)는, 퇴피된 데이터(이동처인 서브 프로세서(43-4)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에, 스택 영역(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터)를, 이동처인 서브 프로세서(43-4)에 공급하고, 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억시킨다.
그리고, 인터럽트 처리부(165)는, 연산 처리부(161)에 대한 인터럽트를 해제한다. 연산 처리부(161)는, 논리 쓰레드 관리 처리부(163)에 의한 논리 쓰레드의 실행을 재차 요구하므로, 논리 쓰레드 관리 처리부(163)는 서브 프로세서(43-2) 및 서브 프로세서(43-4)에 분산 처리를 개시시킨다.
또한, 온도 이상 대응 처리 제어부(169)는, 온도 관리 테이블(167)을 참조하여, 이상 온도 상승이 검출된 온도 검출부(121)에 대응하는 것이, 정보 처리 컨트롤러(111) 또는 메인 프로세서(42)인 것을 검출한 경우, 논리 쓰레드 관리 처리부(163)를 제어하여, 연산 처리부(161)에 의해 실행되고 있는 어플리케이션 프로그램을 일시 정지시키는 등하여, 항상 동작하는 상주 프로그램 등이 실행하는 일부의 필요한 처리를 제외하고, 메인 프로세서(42)의 처리를 일시 중단시켜, 발열량을 저하시킨다. 그리고, 온도 이상 대응 처리 제어부(169)는, 온도 관리 테이블(167)을 참조하여, 이상 온도 상승이 검출되지 않게 될 때까지 대기하여, 온도 상태가 정상 상태로 되돌아온 경우, 또는 미리 정해진 소정의 온도 이하로 된 경우, 메인 프로세서(42)의 처리, 즉 연산 처리부(161)에 의해 실행되고 있는 어플리케이션 프로그 램의 처리를 재개시킨다.
또한, 도 12에 있어서는, 연산 처리부(161), 기억부(162), 논리 쓰레드 관리 처리부(163) 및 온도 이상 대응 처리 제어부(169)의 기능이, 기본적으로, 정보 처리 장치(101)의 메인 프로세서(42)에 의해 실현되는 기능이고, 온도 정보 취득부(164), 인터럽트 제어부(165), 타이머(166), 온도 관리 테이블(167), 온도 상승 검출부(168)의 기능이, 기본적으로, 정보 처리 장치(101)의 온도 모니터 처리부(122)에 의해 실현되는 기능인 것으로서 설명했지만, 이들의 기능을 실현하는 하드웨어가, 상술하는 바와 같지 않은 경우, 예를 들면, 메인 프로세서(42)에 의해 실현되는 기능 중의 일부가 온도 모니터 처리부(122)에 의해 실현되거나, 온도 모니터 처리부(122)에 의해 실현되는 기능 중의 일부가 메인 프로세서(42)에 의해 실현되는 경우나, 이들의 기능이 각각 상이한 하드웨어에 의해 실현되는 경우 등도, 본 발명은 적용 가능한 것은 물론이다.
다음으로, 도 14의 플로우차트를 참조하여, 도 9에 도시되는 제1 실시 형태의 정보 처리 장치(101)가 실행하는 어플리케이션 프로그램 실행 처리 1에 대하여 설명한다. 여기서는, 온도 관리 프로그램이, 정보 처리 장치(101)의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주 프로그램인 것으로서 설명한다.
단계 S1에 있어서, 연산 처리부(161)는, 유저에 의해 어플리케이션 프로그램의 실행이 명령되었는지의 여부를 판단한다. 즉, 단계 S1에 있어서, 메인 프로세서(42)는, 조작 입력부(15)로부터, 버스(14) 및 버스(41)를 통하여 공급되는 신호에 기초하여, 어플리케이션 프로그램의 실행이 명령되었는지의 여부를 판단한다. 단계 S1에 있어서, 어플리케이션 프로그램의 실행이 명령되지 않았다고 판단된 경우, 어플리케이션 프로그램의 실행이 명령되었다고 판단될 때까지 단계 S1의 처리가 반복된다.
단계 S1에 있어서, 어플리케이션 프로그램의 실행이 명령되었다고 판단된 경우, 단계 S2에 있어서, 연산 처리부(161)는, 논리 쓰레드의 서브 프로세서에의 할당 등을 설정하고, 논리 쓰레드의 설정 정보를 논리 쓰레드 관리 처리부(163)에 공급한다.
단계 S3에 있어서, 논리 쓰레드 관리 처리부(163)는, 논리 쓰레드가 할당된 서브 프로세서(43)의 로컬 스토리지(51)의 코드 영역(187) 및 데이터 영역(188)에, 할당된 처리를 실행하기 위한 프로그램이나 데이터를 로드시킨다.
단계 S4에 있어서, 연산 처리부(161) 및 논리 쓰레드 관리 처리부(163)는, 서브 프로세서(43)에 의한 처리를 포함시킨, 어플리케이션 프로그램의 실행을 제어한다. 서브 프로세서(43)의 연산 처리부(181)는, 할당된 처리를 실행한다.
그런데, 온도 관리 프로그램은, 정보 처리 장치(101)의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주 프로그램이기 때문에, 단계 S1 내지 단계 S4의 처리가 실행되고 있는 동안에도 처리가 실행되고 있다. 온도 관리 프로그램에 의한 온도 정보 관리 처리 1에 대해서는, 도 15의 플로우차트를 이용하여 후술한다.
단계 S5에 있어서, 연산 처리부(161)는, 인터럽트 제어부(165)에 의해, 온도 이상 발생을 위한 인터럽트가 있는지의 여부를 판단한다. 단계 S5에 있어서, 온도 이상 발생을 위한 인터럽트가 없다고 판단된 경우, 처리는 후술하는 단계 S8로 진 행한다.
단계 S5에 있어서, 온도 이상 발생을 위한 인터럽트가 있었다고 판단된 경우, 인터럽트에 의해 실행 중인 처리가 정지되므로, 단계 S6에 있어서, 연산 처리부(161)는, 인터럽트가 해제되었는지의 여부를 판단한다. 단계 S6에 있어서, 인터럽트가 해제되지 않았다고 판단된 경우, 인터럽트가 해제되었다고 판단될 때까지 단계 S6의 처리가 반복된다.
단계 S6에 있어서, 인터럽트가 해제되었다고 판단된 경우, 단계 S7에 있어서, 연산 처리부(161)는, 필요에 따라 논리 쓰레드의 설정 정보를, 재차 논리 쓰레드 관리 처리부(163)에 공급하기 때문에, 논리 쓰레드 관리 처리부(163)는 논리 쓰레드 관리에 관한 테이블을 갱신한다.
단계 S5에 있어서, 온도 이상 발생을 위한 인터럽트가 없다고 판단된 경우 또는 단계 S7의 처리의 종료 후, 단계 S8에 있어서, 연산 처리부(161)는, 어플리케이션 프로그램의 처리가 종료되었는지의 여부를 판단한다. 단계 S8에 있어서, 어플리케이션 프로그램의 처리가 종료되지 않았다고 판단된 경우, 처리는 단계 S4로 되돌아가, 그 이후의 처리가 반복된다. 단계 S8에 있어서, 어플리케이션 프로그램의 처리가 종료되었다고 판단된 경우, 처리가 종료된다.
이러한 처리에 의해, 메인 프로세서(42)에 의해 실행되는 어플리케이션 프로그램에 대응하는 분산 처리가, 서브 프로세서(43) 중의 선택된 것에 의해 실행된다.
다음으로, 도 15의 플로우차트를 참조하여, 도 9의 정보 처리 장치(101)가 실행하는(구체적으로는, 도 11의 온도 관리 프로그램이 실행하는) 온도 정보 관리 처리 1에 대하여 설명한다.
단계 S21에 있어서, 온도 정보 취득부(164)는, 인터럽트 제어부(165)로부터 타이머 인터럽트가 들어왔는지의 여부를 판단한다. 단계 S21에 있어서, 타이머 인터럽트가 들어오지 않았다고 판단된 경우, 타이머 인터럽트가 들어왔다고 판단될 때까지 단계 S21의 처리가 반복된다.
단계 S21에 있어서, 타이머 인터럽트가 들어왔다고 판단된 경우, 단계 S22에 있어서, 온도 정보 취득부(164)는 온도 검출부(121)의 각각으로부터 온도 정보를 취득한다.
단계 S23에 있어서, 온도 정보 취득부(164)는, 단계 S22에 있어서 취득된 온도 정보에 기초하여 온도 관리 테이블(167)을 갱신한다.
단계 S24에 있어서, 온도 상승 검출부(168)는, 온도 관리 테이블(167)을 참조하여, 온도 정보에 이상값이 있는지의 여부, 즉, 온도 검출부(121)의 각각에 의해 검출된 온도 검출 결과 중, 미리 설정되어 있는 상한 온도를 초과한 것이 있는지의 여부를 판단한다. 단계 S24에 있어서, 온도 정보에 이상값이 없다고 판단된 경우, 처리는 단계 S21로 되돌아가, 그 이후의 처리가 반복된다.
단계 S24에 있어서, 온도 정보에 이상값이 있었다고 판단된 경우, 단계 S25에 있어서, 온도 상승 검출부(168)는, 인터럽트 제어부(165)에 이상 온도 상승이 검출된 것을 통지하여, 연산 처리부(161) 및 온도 이상 대응 처리 제어부(169)에 인터럽트를 걸게 한다. 인터럽트 제어부(165)는, 온도 이상 대응 처리 제어부 (169) 및 연산 처리부(161)에 대하여 인터럽트를 걸어, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리를 정지시킴과 함께, 온도 이상 대응 처리 제어부(169)에 대하여 이상 발생시의 처리를 개시시킨다.
단계 S26에 있어서, 도 16을 이용하여 후술하는 이상 발생시의 처리 1이 실행된다.
단계 S27에 있어서, 온도 이상 대응 처리 제어부(169)는, 단계 S26에 있어서 실행된 이상 발생시의 처리 1에 기초하여 논리 쓰레드 관리 처리부(163)를 제어하고, 필요에 따라 논리 쓰레드 관리에 관한 테이블을 갱신시킨다.
단계 S28에 있어서, 인터럽트 제어부(165)는, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리에 대한 인터럽트를 해제하고, 처리는 단계 S21로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 온도 검출부(121)의 각각에 의해 검출된 온도 정보가 취득되고, 검출된 온도 정보에 의해 갱신되는 온도 관리 테이블(167)에 기초하여, 이상 발생시의 인터럽트 처리가 실행되는지의 여부가 판단된다.
다음으로, 도 16의 플로우차트를 참조하여, 도 15의 단계 S26에 있어서 실행되는 이상 발생시의 처리 1에 대하여 설명한다.
단계 S41에 있어서, 온도 이상 대응 처리 제어부(169)는, 온도 관리 테이블(167)을 참조하여, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)인지의 여부, 바꾸어 말하면, 미리 설정되어 있는 상한 온도를 초과한 온도 검출 결과를 얻은 것이, 온도 검출부(121-9) 또는 온도 검출부(121-10) 중 의 어느 것인지의 여부를 판단한다. 단계 S41에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)라고 판단된 경우, 처리는 후술하는 단계 S53으로 진행한다.
단계 S41에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가 아닌, 즉, 서브 프로세서(43) 중의 어느 하나라고 판단된 경우, 단계 S42에 있어서, 온도 이상 대응 처리 제어부(169)는, 온도 관리 테이블(167)을 참조하여, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능한지의 여부, 바꾸어 말하면, 온도의 이상이 발생한 서브 프로세서(43) 이외의 서브 프로세서(43) 중의 어느 것이 정지 상태인지의 여부를 판단한다. 단계 S42에 있어서, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능하지 않았다고 판단된 경우, 처리는 후술하는 단계 S47로 진행한다.
단계 S42에 있어서, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능하다고 판단된 경우, 단계 S43에 있어서, 온도 이상 대응 처리 제어부(169)는, 처리의 이동처인 서브 프로세서(43)를 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(163)에 공급한다. 구체적으로는, 온도 이상 대응 처리 제어부(169)는, 현재 동작 중인 서브 프로세서(43)에 인접하지 않는 것이고 또한 정지 상태인 서브 프로세서(43) 중, 온도 검출 결과가 가장 낮은 것을 이동처인 서브 프로세서(43)로서 우선적으로 선택하도록 이루어져 있다. 또한, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우, 온도 이상 대응 처리 제어부(169)는, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택한다. 또한, 현재 동작 중인 서 브 프로세서(43)에 인접하지 않는, 정지 상태의 서브 프로세서(43)가 존재하지 않는 경우, 온도 이상 대응 처리 제어부(169)는, 정지 상태의 서브 프로세서(43) 중, 온도 검출 결과가 가장 낮은 것을 선택하고, 또한, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우에는, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(163)에 공급한다.
예를 들면, 도 17의 (A)에 도시되는 바와 같이, 동작 실행 중인 서브 프로세서가 서브 프로세서(43-1) 및 서브 프로세서(43-2)이고, 이 중, 이상 온도 상승이 검출된 온도 검출부(121)에 대응하는 것이 서브 프로세서(43-1)였던 경우, 온도 이상 대응 처리 제어부(169)는, 온도 관리 테이블(167)을 참조하여, 정지 중인 서브 프로세서(43-3) 내지 서브 프로세서(43-8) 중, 상술한 조건에 합치한 것으로서, 도 17의 (B)에 도시되는 바와 같이 예를 들면 서브 프로세서(43-4)를 선택할 수 있다.
단계 S44에 있어서, 논리 쓰레드 관리 처리부(163)는, 온도 상한값을 초과한 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다. 온도 상한값을 초과한 서브 프로세서(43)의 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(163)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S45에 있어서, 논리 쓰레드 관리 처리부(163)는, 온도 상한값을 초과한 서브 프로세서(43)의 동작을 정지시킨다.
단계 S46에 있어서, 논리 쓰레드 관리 처리부(163)는, 이동처인 서브 프로세서로서 선택된 서브 프로세서(43)에, 단계 S44의 처리에 의해 퇴피된 콘텍스트를 리스토어한다. 이동처인 서브 프로세서로서 선택된 서브 프로세서(43)에 있어서는, 공급된 콘텍스트를 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억하고, 처리는 도 15의 단계 S26으로 되돌아가, 단계 S27로 진행한다.
단계 S42에 있어서, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능하지 않았다고 판단된 경우, 단계 S47에 있어서, 온도 이상 대응 처리 제어부(169)는, 처리의 교환처인 서브 프로세서(43)를 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(163)에 공급한다. 구체적으로는, 온도 이상 대응 처리 제어부(169)는, 온도 검출 결과가 가장 낮은 것을 이동처인 서브 프로세서(43)로서 우선적으로 선택하도록 이루어져 있고, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택하도록 이루어져 있다.
단계 S48에 있어서, 논리 쓰레드 관리 처리부(163)는, 온도 상한값을 초과한 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다. 온 도 상한값을 초과한 서브 프로세서(43)의 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(163)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S49에 있어서, 논리 쓰레드 관리 처리부(163)는, 온도 상한값을 초과한 서브 프로세서(43)의 동작을 정지시킨다.
단계 S50에 있어서, 논리 쓰레드 관리 처리부(163)는, 처리의 교환처로서 선택된 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다. 처리의 교환처로서 선택된 서브 프로세서(43)의 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택 (190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(163)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S51에 있어서, 논리 쓰레드 관리 처리부(163)는, 처리의 교환처로서 선택된 서브 프로세서(43)의 동작을 정지시킨다.
단계 S52에 있어서, 논리 쓰레드 관리 처리부(163)는, 퇴피된 2개의 서브 프로세서(43)의 콘텍스트를 교환하여 리스토어시킨다. 즉, 논리 쓰레드 관리 처리부(163)는, 처리의 교환처인 서브 프로세서로서 선택된 서브 프로세서(43)에, 단계 S48의 처리에 의해 퇴피된 콘텍스트를 리스토어시킴과 함께, 온도 상한값을 초과한 서브 프로세서(43)에, 단계 S50의 처리에 의해 퇴피된 콘텍스트를 리스토어시킨다. 그리고, 각각의 서브 프로세서(43)는, 공급된 콘텍스트를 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억하고, 처리는 도 15의 단계 S26으로 되돌아가, 단계 S27로 진행한다.
단계 S41에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)라고 판단된 경우, 단계 S53에 있어서, 온도 이상 대응 처리 제어부(169)는, 논리 쓰레드 관리 처리부(163)를 제어하여, 연산 처리부(161)에 의해 실행되고 있는 어플리케이션 프로그램을 일시 정지시키는 등하여, 항상 동작하는 상주 프로그램 등이 실행하는 일부의 필요한 처리를 제외하고, 메인 프로세서(42)의 처리를 일시 중단시킨다.
단계 S54에 있어서, 온도 이상 대응 처리 제어부(169)는, 온도 관리 테이블(167)을 참조하여, 온도 상태가 정상으로 되돌아왔는지의 여부를 판단한다. 단계 S54에 있어서, 온도 상태가 정상으로 되돌아오지 않았다고 판단된 경우, 온도 상태가 정상으로 되돌아왔다고 판단될 때까지 단계 S54의 처리가 반복된다. 단계 S54에 있어서, 온도 상태가 정상으로 되돌아왔다고 판단된 경우, 처리는 도 15의 단계 S26으로 되돌아가, 단계 S27로 진행한다.
이러한 처리에 의해, 온도 이상의 발생 개소, 그 때의 칩 내의 동작 및 각각의 프로세서의 온도 검출값에 기초하여, 처리가 정지되는지, 분산 처리 중의 일부가 이동되는지, 또는 분산 처리 중의 일부가 교환되는지가 판단되고, 처리의 이동처 또는 교환처가 선택되도록 이루어져 있다.
이상 설명한 처리에 의해, 메인 프로세서(42) 및 각각의 서브 프로세서(43)에 온도 검출부(121)가 설치되고, 네트워크(2)에 접속되어 있지 않고, 스탠드 얼론으로 처리를 실행하도록 이루어져 있는, 본 발명의 제1 실시 형태의 정보 처리 장치(101)에 있어서, 온도 이상이 있는지의 여부가 감시되고, 온도 이상이 검출된 경우, 온도 이상의 발생 개소, 그 때의 칩 내의 동작 및 각각의 프로세서의 온도 검출값에 기초하여, 처리가 정지되는지, 분산 처리 중의 일부가 이동되는지, 또는 분산 처리 중의 일부가 교환되는지가 판단되고, 필요에 따라, 처리의 이동처 또는 교환처가 선택되어, 처리가 이동 또는 교환되도록 이루어져 있으므로, 실행 중인 처리를 정지시키는 것을 최소한으로 억제하면서, 열 폭주 등에 의한 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
도 9 내지 도 17을 이용하여 설명한 처리에 있어서는, 정보 처리 장치(101)가 네트워크(2)에 접속되어 있지 않고, 스탠드 얼론으로 처리를 실행하도록 이루어져 있는 것으로서 설명했지만, 예를 들면, 도 18에 도시되는 바와 같이, 정보 처리 장치(101)가 네트워크(2)에 복수개 접속되어 있는 경우에 있어서도, 본 발명은 적용 가능하다.
다음으로, 도 18 내지 도 33을 이용하여, 본 발명을 적용한 정보 처리 장치의 정보 처리 컨트롤러에 있어서, 프로세서의 온도 상승에 따른 분산 처리를 실현하는 경우에 있어서의 제2 실시 형태에 대하여 설명한다.
도 18은, 온도에 따른 분산 처리를, 복수의 정보 처리 장치(101) 사이에서 실현하기 위한 네트워크 시스템이다. 또한, 정보 처리 장치(101-1) 내지 정보 처리 장치(101-n)의 하드웨어 구성에 대해서는, 도 9를 이용하여 설명한 정보 처리 장치(101)의 하드웨어 구성과 기본적으로 마찬가지이고, 또한, 정보 처리 장치(101-1) 내지 정보 처리 장치(101-n)의 정보 처리 컨트롤러(111)는, 도 10을 이용하여 설명한 경우와 마찬가지의 프로세서의 배치를 갖는 1칩으로 구성되므로, 이들의 설명은 생략한다.
즉, 도 19에 도시되는 바와 같이, 도 10을 이용하여 설명한 경우와 마찬가지의 칩 구성(칩 상에 있어서의 소자 등의 배치)을 갖는 정보 처리 컨트롤러(111)가, 각각 버스(14) 및 통신부(16)를 통하여 네트워크(2)에 접속되어 있다. 따라서, 정보 처리 장치(101-1) 내지 정보 처리 장치(101-n)에 있어서는, 도 1 내지 도 8을 이용하여 설명한 경우와 마찬가지로 하여, 어느 하나가 마스터 장치로서 인식되고, 그 이외의 것이 슬레이브 장치로서 인식되고 있다.
도 20에, 온도 상승을 이용하여 제어를 행할 수 있다, 제2 실시 형태의 정보 처리 컨트롤러(111)에 의해서 실행되는 소프트웨어의 구성을 나타낸다. 이들의 소프트웨어(프로그램)는, 정보 처리 장치에 전원이 투입되기 전에 있어서는, 정보 처리 컨트롤러(111)에 접속되는 기록부(13)에 기록되어 있는 것이다.
또한, 도 8에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 제2 실시 형태에 있어서의 정보 처리 컨트롤러(111)의 메인 메모리(12)가 기억하는 소프트웨어의 구성은, 제어 프로그램에, 새롭게 온도 관리 프로그램이 추가되어 있는 것 이외에는, 기본적으로 도 8을 이용하여 설명한 경우와 마찬가지이다. 온도 관리 프로그램은, 정보 처리 장치(101)의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주 프로그램인 것이 바람직하다.
도 20의 온도 관리 프로그램은 제1 실시 형태(도 11)에 있어서의 경우와 기본적으로 마찬가지의 처리를 실행하고, 정보 처리 장치(101)의 온도 검출부(121-1) 내지 온도 검출부(121-10)에 의해 측정되고, 온도 모니터 처리부(122)에 의해 모니터링되는 온도 정보를 수집하여, 관리함과 함께, 이들의 온도 정보에 기초하여, 메인 프로세서(42)에 의해 실행되는 처리의 제어 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서 필요에 따라 실행되는, 처리의 이동 또는 교환을 제어하지만, 또 네트워크(2)를 통하여 접속되어 있는 다른 정보 처리 장치(101)와 온도 정보를 교환하여, 메인 프로세서(42)에 의해 실행되는 처리의 제어 및 서브 프로세 서(43-1) 내지 서브 프로세서(43-8)에 있어서 필요에 따라 실행되는, 처리의 이동 또는 교환을 제어한다.
네트워크(2)를 통하여 접속되어 있는 다른 정보 처리 장치(101)와의 온도 정보 및 처리의 이동 또는 교환의 제어에는, 3개의 패턴이 있다.
제1 패턴은, 예를 들면, 정보 처리 장치(101-1)가 마스터 장치인 경우, 정보 처리 장치(101-1)가, 자기 자신의 온도 관리 테이블 뿐만 아니라, 네트워크(2)에 접속되어 있는 슬레이브 장치인 정보 처리 장치(101-2) 내지 정보 처리 장치(101-n)의 각각의 온도 관리 테이블을 관리하는 것이다. 즉, 슬레이브 장치인 정보 처리 장치(101-2) 내지 정보 처리 장치(101-n)는, 소정의 시간마다 갱신된 최신의 온도 관리 테이블을 마스터 장치인 정보 처리 장치(101-1)로 수시로 송신하도록 이루어져 있다. 그리고, 마스터 장치인 정보 처리 장치(101-1)는, 네트워크(2)에 접속되어 있는 정보 처리 장치(101-1) 내지 정보 처리 장치(101-n)의 모든 온도 정보를 감시하여, 정보 처리 장치(101-1) 내지 정보 처리 장치(101-n) 중의 어느 하나에 있어서, 온도 상승의 이상이 검출된 경우, 예를 들면, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 정보 처리 컨트롤러(111)에 포함되는 모든 서브 프로세서(43)로부터, 처리의 이동 또는 교환처로서 최적인 서브 프로세서(43)를 선택하고, 선택된 서브 프로세서(43)로 이상이 발생한 프로세서(43)의 처리를 이동시키거나, 또는 각각의 처리를 교환하는 등의 처리를 제어한다.
제2 패턴은, 각각의 정보 처리 장치(101)가, 자기 자신의 온도 관리 테이블에 기초하여 온도 정보를 감시하여, 온도 상승의 이상을 검출한 경우, 네트워크(2) 에 접속되어 있는 다른 정보 처리 장치(101) 전체에 대하여, 온도 정보의 송신을 요구하는 커맨드를 송신하는 것이다. 즉, 온도 상승의 이상을 검출하지 않은 상태의 정보 처리 장치(101)는, 다른 정보 처리 장치(101)로부터, 온도 정보의 송신을 요구하는 커맨드를 수신했을 때, 자기 자신의 온도 관리 테이블에 기초하여 온도 정보를 회신하는 커맨드를 생성하고, 온도 정보 요구 커맨드의 송신원인 정보 처리 장치(101)로, 생성된 온도 정보를 회신하는 커맨드를 송신한다. 그리고, 온도 정보를 회신하는 커맨드를 수신한 정보 처리 장치(101)는, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(101)의 정보 처리 컨트롤러(111)에 포함되는 모든 서브 프로세서(43)로부터, 처리의 이동 또는 교환처로서 최적인 서브 프로세서(43)를 선택하고, 선택된 서브 프로세서(43)로 이상이 발생한 프로세서(43)의 처리를 이동시키거나, 또는 각각의 처리를 교환하는 등의 처리를 제어한다.
제3 패턴은, 각각의 정보 처리 장치(101)가, 자기 자신의 온도 관리 테이블에 기초하여 온도 정보를 감시하여, 온도 상승의 이상을 검출한 경우, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101) 전체에 대하여, 서브 프로세서 프로그램의 이동을 요구하는 커맨드를 송신하는 것이다. 즉, 온도 상승의 이상을 검출하지 않은 상태의 정보 처리 장치(101)는, 다른 정보 처리 장치(101)로부터 서브 프로세서 프로그램의 이동을 요구하는 커맨드를 수신했을 때, 자기 자신의 온도 관리 테이블에 기초하여, 서브 프로세서 프로그램의 이동처로 되는 것이 가능한지의 여부를 나타내는 회신 커맨드를 생성하고, 서브 프로세서 프로그램의 이동을 요구하는 커맨드의 송신원인 정보 처리 장치(101)에, 생성한 회신 커맨드를 송신한다. 그리고, 회신 커맨드를 수신한 정보 처리 장치(101)는, 회신 커맨드에 기초하여, 처리의 이동 또는 교환처로서 최적인 서브 프로세서(43)를 선택하고, 선택된 서브 프로세서(43)로 이상이 발생한 프로세서(43)의 처리를 이동시키거나, 또는 각각의 처리를 교환하는 등의 처리를 제어한다.
도 21에, 제2 실시 형태의 제1 패턴에 있어서의 정보 처리 컨트롤러(111)가 실행 가능한 기능을 설명하기 위한 기능 블록도를 나타낸다. 또한, 도 12에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 도 21에 도시되는 제2 실시 형태의 제1 패턴에 있어서의 정보 처리 컨트롤러(111) 중, 메인 프로세서(42)가 실행 가능한 기능에 있어서는, MS 매니지먼트 처리부(211), 능력 교환 처리 제어부(212), 기억부(213) 및 온도 관리 정보 송수신 제어부(214)가 새롭게 설치되고, 온도 이상 대응 처리 제어부(169) 대신에 온도 이상 대응 처리 제어부(216)가 설치되고, 논리 쓰레드 관리 처리부(163) 대신에 논리 쓰레드 관리 처리부(217)가 설치되어 있는 것 이외에는, 기본적으로 도 12를 이용하여 설명한 경우와 마찬가지이고, 온도 모니터 처리부(122)가 실현 가능한 기능은, 온도 관리 테이블(167) 대신에 온도 관리 테이블(215)이 설치되어 있는 것 이외에는, 도 12를 이용하여 설명한 경우와 마찬가지이다.
또한, 도 21에 있어서, 이들의 기능을 실현하는 하드웨어가 상술하는 바와 같지 않은 경우, 예를 들면, 메인 프로세서(42)에 의해 실현되는 기능 중의 일부가 온도 모니터 처리부(122)에 의해 실현되거나, 온도 모니터 처리부(122)에 의해 실현되는 기능 중의 일부가 메인 프로세서(42)에 의해 실현되는 경우나, 이들의 기능 이 각각 상이한 하드웨어에 의해 실현되는 경우 등도, 본 발명은 적용 가능한 것은 물론이다.
MS 매니지먼트 처리부(211)는, 자기 자신이 네트워크(2)에 접속되어 있는 것을 검지하면, DMA 커맨드가 스테이터스 요구 커맨드이고, 송신원 ID 및 응답처 ID가 자기 자신이고, 송신처 ID를 특정하지 않는 소프트웨어 셀을 생성하고, 생성한 소프트웨어 셀을 통신부(16)를 통하여 네트워크(2)로 송신하고, DMA 커맨드가 스테이터스 회신 커맨드이고 또한, 다른 정보 처리 장치(1)의 메인 메모리(12)에 기록되어 있는 장치 정보를 데이터로서 포함하는 소프트웨어 셀을 수신하는 것에 의해, 동일한 네트워크(2)에 접속되어 있는 정보 처리 장치(101) 중, 자기 자신이 마스터 장치인지, 슬레이브 장치인지를 인식한다. 능력 교환 처리 제어부(212)는, 자기 자신이 마스터 장치인 경우, 네트워크(2)에 접속되어 있는 모든 다른 정보 처리 장치(101)의 장치 정보, 즉 각 슬레이브 장치의 장치 정보를 취득하여 기억부(213)에 기억시키고, 자기 자신이 슬레이브 장치인 경우, 네트워크(2)에 접속되어 있는 모든 다른 정보 처리 장치(101)의 장치 정보에 포함되는 정보 처리 장치 ID 및 MS 스테이터스를 취득하여 기억부(213)에 기억시킨다.
기억부(213)는, 메인 메모리(12) 중의 적어도 일부의 기억 영역에 대응하고, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 장치 정보 또는 장치 정보 중의 일부의 정보를 기억한다. 온도 관리 정보 송수신 제어부(214)는, 온도 이상 대응 처리 제어부(216)의 제어에 기초하여, 통신부(16)를 통하여 온도 관리 테이블 또는 온도 관리를 위해 생성된 각종 커맨드(소프트웨어 셀)의, 네트워크(2)에 접속 되어 있는 다른 정보 처리 장치(101)로의 송신을 제어함과 함께, 통신부(16)를 통하여, 다른 정보 처리 장치(101)의 온도 관리 테이블 또는 온도 관리를 위한 각종 커맨드(소프트웨어 셀) 등의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101)로부터의 수신을 제어한다. 이하, 온도 관리 테이블 또는 온도 관리를 위해 생성된 각종 커맨드(소프트웨어 셀) 등, 네트워크(2)에 의해서 접속된 복수의 정보 처리 장치(101)의 온도 관리와 온도 관리의 결과 실행되는 분산 처리의 제어에 관계되는 정보를 개개로 구별할 필요가 없는 경우, 온도 관리 정보라고 총칭하는 것으로 한다.
온도 관리 테이블(215)은, 자기 자신이 마스터 장치인 경우, 온도 정보 취득부(164)에 의해 취득된 정보에 기초하여 갱신되는 자기 자신의 온도 관리 테이블 뿐만 아니라, 온도 관리 정보 송수신 제어부(214)의 처리에 의해 수신이 제어된, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101)로부터 송신된 온도 관리 테이블을 기억하고, 자기 자신이 슬레이브 장치인 경우, 온도 정보 취득부(164)에 의해 취득된 정보에 기초하여 갱신되는 자기 자신의 온도 관리 테이블을 기억한다.
온도 이상 대응 처리 제어부(216)는, 자기 자신이 마스터 장치이고, 인터럽트 제어부(165)에 의해 인터럽트가 걸린 경우, 온도 관리 테이블(215)을 참조하여, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(101) 중, 이상 온도 상승이 검출된 온도 검출부(121)에 대응하는 것은, 어느 정보 처리 장치(101)가 구비하는 것인지, 및 정보 처리 컨트롤러(111)인지, 메인 프로세서(42)인지, 또는 서브 프로세서(43) 중의 어느 것인지를 검출하고, 검출 결과에 기초하여 논리 쓰레드 관리 처 리부(217)를 제어하고, 필요에 따라, 처리를 일단 정지시키거나, 서브 프로세서(43) 중 어느 하나와의 실행되고 있는 쓰레드의 이동 또는 교환을 제어한다.
논리 쓰레드 관리 처리부(217)는, 연산 처리부(161)에 의해 실행되는 어플리케이션 프로그램에 대응하는 논리 쓰레드의 생성 및 삭제를 행함과 함께, 자기 자신이 마스터 장치인 경우, 네트워크(2)에 접속되어 있는 정보 처리 장치(101) 중의 어느 하나에 있어서 실행되는 분산 처리에 대응하는 논리 쓰레드의 상태 감시와 동작 제어를 행한다. 논리 쓰레드 관리 처리부(217)는, 자기 자신이 마스터 장치인 경우, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(101)의 관리 정보가 기재된 테이블과, 실행되는 논리 쓰레드마다 논리 쓰레드의 실행에 필요한 정보가 기재된 테이블을 작성하여, 필요에 따라, 테이블의 정보를 참조하여 갱신하는 것에 의해, 논리 쓰레드의 실행을 제어한다.
또한, 논리 쓰레드 관리 처리부(217)는, 자기 자신이 마스터 장치인 경우, 필요에 따라, 다른 정보 처리 장치(101)에 있어서 실행되고 있는 쓰레드의 처리를 제어하기 위한 소프트웨어 셀을 생성하고, 통신부(16)를 통하여 생성된 소프트웨어 셀을 송신한다. 그리고 또한, 논리 쓰레드 관리 처리부(217)는, 자기 자신이 슬레이브 장치인 경우, 통신부(16)를 통하여, 마스터 장치인 정보 처리 장치(101)로부터 송신된 소프트웨어 셀의 공급을 받아, 소프트웨어 셀의 내용에 기초한 분산 처리를 서브 프로세서(43)에 실행시킴과 함께, 필요에 따라, 회신이나 응답에 대응하는 소프트웨어 셀을 생성하고, 통신부(16)를 통하여, 생성된 소프트웨어 셀을 송신한다. 또한, 논리 쓰레드 관리 처리부(217)는, 자기 자신이 마스터 장치인지 슬레 이브 장치인지에 상관없이, 필요에 따라, 통신부(16)에 의해 수신된 다른 정보 처리 장치(101)에 있어서 실행된 쓰레드에 관한 정보를 취득한다.
다음으로, 도 22 내지 도 24의 플로우차트를 참조하여, 제2 실시 형태의 제1 패턴에 있어서의 동작을 설명한다. 제2 실시 형태에 있어서도, 어플리케이션 프로그램 실행 처리는 도 14를 이용하여 설명한 제1 실시 형태에 있어서의 경우와 기본적으로 마찬가지이므로, 그 설명은 생략한다.
도 22의 플로우차트를 참조하여, 마스터 장치의 온도 정보 관리 처리에 대하여 설명한다.
단계 S71에 있어서, 온도 정보 취득부(164)는, 인터럽트 제어부(165)로부터 타이머 인터럽트가 들어왔는지의 여부를 판단한다.
단계 S71에 있어서, 타이머 인터럽트가 들어오지 않았다고 판단된 경우, 단계 S72에 있어서, 온도 관리 정보 송수신 제어부(214)는, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101)로부터 온도 관리 테이블을 수신했는지의 여부를 판단한다. 단계 S72에 있어서, 온도 관리 테이블을 수신하지 않았다고 판단된 경우, 처리는 단계 S71로 되돌아가, 그 이후의 처리가 반복된다. 단계 S72에 있어서, 온도 관리 테이블을 수신했다고 판단된 경우, 처리는 후술하는 단계 S74로 진행한다.
단계 S71에 있어서, 타이머 인터럽트가 들어왔다고 판단된 경우, 단계 S73에 있어서, 온도 정보 취득부(164)는, 온도 검출부(121)의 각각으로부터 온도 정보를 취득한다.
단계 S72에 있어서, 온도 관리 테이블을 수신했다고 판단된 경우 또는 단계 S73의 처리의 종료 후, 단계 S74에 있어서, 온도 정보 취득부(164)는, 단계 S72에 있어서 수신된 다른 정보 처리 장치(101)의 온도 관리 테이블 또는 단계 S73에 있어서 취득된 자기 자신의 온도 정보에 기초하여, 온도 관리 테이블(215)을 갱신한다.
단계 S75에 있어서, 온도 상승 검출부(168)는, 온도 관리 테이블(215)을 참조하여, 온도 정보에 이상값이 있는지의 여부, 즉, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)에 설치되어 있는 모든 온도 검출부(121)에 의해 검출된 온도 검출 결과 중, 미리 설정되어 있는 상한 온도를 초과한 것이 있는지의 여부를 판단한다. 단계 S75에 있어서, 온도 정보에 이상값이 없다고 판단된 경우, 처리는 단계 S71로 되돌아가, 그 이후의 처리가 반복된다.
단계 S75에 있어서, 온도 정보에 이상값이 있었다고 판단된 경우, 단계 S76에 있어서, 온도 상승 검출부(168)는, 인터럽트 제어부(165)에 이상 온도 상승이 검출된 것을 통지하여, 연산 처리부(161) 및 온도 이상 대응 처리 제어부(216)에 인터럽트를 걸게 한다. 인터럽트 제어부(165)는, 온도 이상 대응 처리 제어부(216) 및 연산 처리부(161)에 대하여 인터럽트를 걸어, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리를 정지시킴과 함께, 온도 이상 대응 처리 제어부(216)에 대하여 이상 발생시의 처리를 개시시킨다.
단계 S77에 있어서, 도 23을 이용하여 후술하는 이상 발생시의 처리 2가 실행된다.
단계 S78에 있어서, 온도 이상 대응 처리 제어부(216)는, 단계 S77에 있어서 실행된 이상 발생시의 처리 2에 기초하여 논리 쓰레드 관리 처리부(217)를 제어하고, 필요에 따라 논리 쓰레드 관리에 관한 테이블을 갱신시킨다.
단계 S79에 있어서, 인터럽트 제어부(165)는, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리에 대한 인터럽트를 해제하고, 처리는 단계 S71로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 각각에 있어서, 온도 검출부(121)의 각각에 의해 검출된 온도 정보에 기초하여 갱신된 온도 관리 테이블을 마스터 장치가 취득하여, 온도 관리 테이블(215)로서 관리할 수 있게 이루어지고, 마스터 장치에 있어서 기억되어 있는 온도 관리 테이블(215)에 기초하여, 이상 발생시의 인터럽트 처리가 실행되는지의 여부가 판단된다.
다음으로, 도 23의 플로우차트를 참조하여, 도 22의 단계 S77에 있어서 실행되는 이상 발생시의 처리 2에 대하여 설명한다.
단계 S91에 있어서, 온도 이상 대응 처리 제어부(216)는, 온도 관리 테이블(215)을 참조하여, 온도의 이상이 발생한 것이, 네트워크(2)에 접속되어 있는 어느 하나의 정보 처리 장치(101)의 메인 프로세서(42), 또는 정보 처리 컨트롤러(111)인지의 여부를 판단한다. 단계 S91에 있어서, 온도의 이상이 발생한 것이, 네트워크(2)에 접속되어 있는 어느 하나의 정보 처리 장치(101)의 메인 프로세서(42), 또는 정보 처리 컨트롤러(111)라고 판단된 경우, 처리는 후술하는 단계 S103으로 진행한다.
단계 S91에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정 보 처리 컨트롤러(111)가 아닌, 즉, 네트워크(2)에 접속되어 있는 어느 하나의 정보 처리 장치(101)의 서브 프로세서(43) 중의 어느 하나라고 판단된 경우, 단계 S92에 있어서, 온도 이상 대응 처리 제어부(216)는, 온도 관리 테이블(215)을 참조하여, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능한지의 여부, 바꾸어 말하면, 온도의 이상이 발생한 서브 프로세서(43) 이외의 서브 프로세서(43) 중의 어느 하나에, 정지 상태의 것이 있는지의 여부를 판단한다. 단계 S92에 있어서, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능하지 않았다고 판단된 경우, 처리는 후술하는 단계 S97로 진행한다.
단계 S92에 있어서, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능하다고 판단된 경우, 단계 S93에 있어서, 온도 이상 대응 처리 제어부(216)는, 온도 관리 테이블(215)을 참조하여, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 정보 처리 컨트롤러(111)의 서브 프로세서(43) 중으로부터, 처리의 이동처인 서브 프로세서(43)를 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(217)에 공급한다. 구체적으로는, 온도 이상 대응 처리 제어부(216)는, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 정보 처리 컨트롤러(111)의 서브 프로세서(43) 중으로부터, 현재 동작 중인 서브 프로세서(43)에 인접하지 않는 것이고 또한 정지 상태인 서브 프로세서(43) 중, 온도 검출 결과가 가장 낮은 것을 이동처인 서브 프로세서(43)로서 우선적으로 선택하도록 이루어져 있다. 또한, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우, 온도 이상 대응 처리 제어부(216)는, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택한다. 또한, 현재 동작 중인 서브 프로세서(43)에 인접하지 않는, 정지 상태인 서브 프로세서(43)가 존재하지 않는 경우, 온도 이상 대응 처리 제어부(216)는, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 정보 처리 컨트롤러(111)의 서브 프로세서(43) 중으로부터, 정지 상태의 서브 프로세서(43) 중, 온도 검출 결과가 가장 낮은 것을 선택하고, 또한, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우에는, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(217)에 공급한다.
단계 S94에 있어서, 논리 쓰레드 관리 처리부(217)는, 온도 상한값을 초과한 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다.
온도 상한값을 초과한 서브 프로세서(43)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(217)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 온도 상한값을 초과한 서브 프로세서(43)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16) 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(101)의 논리 쓰레드 관리 처리부(217)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S95에 있어서, 논리 쓰레드 관리 처리부(217)는, 온도 상한값을 초과한 서브 프로세서(43)의 동작을 정지시킨다.
단계 S96에 있어서, 논리 쓰레드 관리 처리부(217)는, 이동처인 서브 프로세서로서 선택된 서브 프로세서(43)에, 단계 S94의 처리에 의해 퇴피된 콘텍스트를 리스토어한다. 즉, 논리 쓰레드 관리 처리부(217)는, 처리의 이동처인 서브 프로세서(43)가 마스터 장치 내의 서브 프로세서(43)일 때, 버스(41)를 통하여, 이동처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트를 공급하고, 처리의 이동처인 서브 프로세서(43)가 슬레이브 장치 내의 서브 프로세서(43)일 때, 버스(41), 버스(14), 및 통신부(16) 및 네트워크(2)를 통 하여, 슬레이브 장치로서 동작하고 있는 정보 처리 장치(101)에 포함되는 이동처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트를 공급한다. 이동처인 서브 프로세서로서 선택된 서브 프로세서(43)에 있어서는, 공급된 콘텍스트를 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억하고, 처리는 도 22의 단계 S77로 되돌아가, 단계 S78로 진행한다.
단계 S92에 있어서, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능하지 않았다고 판단된 경우, 단계 S97에 있어서, 온도 이상 대응 처리 제어부(216)는, 온도 관리 테이블(215)을 참조하여, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 정보 처리 컨트롤러(111)의 서브 프로세서(43) 중으로부터, 처리의 교환처인 서브 프로세서(43)를 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(217)에 공급한다. 구체적으로는, 온도 이상 대응 처리 제어부(216)는, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 정보 처리 컨트롤러(111)의 서브 프로세서(43) 중으로부터, 온도 검출 결과가 가장 낮은 것을 이동처인 서브 프로세서(43)로서 우선적으로 선택하도록 이루어져 있고, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택하도록 이루어져 있다.
단계 S98에 있어서, 논리 쓰레드 관리 처리부(217)는, 온도 상한값을 초과한 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다.
온도 상한값을 초과한 서브 프로세서(43)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령 을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(217)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 온도 상한값을 초과한 서브 프로세서(43)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(101)의 논리 쓰레드 관리 처리부(217)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S99에 있어서, 논리 쓰레드 관리 처리부(217)는, 온도 상한값을 초과한 서브 프로세서(43)의 동작을 정지시킨다.
단계 S100에 있어서, 논리 쓰레드 관리 처리부(217)는, 처리의 교환처로서 선택된 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다.
처리의 교환처로서 선택된 서브 프로세서(43)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(217)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 처리의 교환처로서 선택된 서브 프로세서(43)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후 , 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(101)의 논리 쓰레드 관리 처리부(217)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S101에 있어서, 논리 쓰레드 관리 처리부(217)는, 처리의 교환처로서 선택된 서브 프로세서(43)의 동작을 정지시킨다.
단계 S102에 있어서, 논리 쓰레드 관리 처리부(217)는, 퇴피된 2개의 서브 프로세서(43)의 콘텍스트를 교환하여 리스토어시킨다. 즉, 논리 쓰레드 관리 처리부(217)는, 처리의 교환처인 서브 프로세서로서 선택된 서브 프로세서(43)에, 단계 S98의 처리에 의해 퇴피된 콘텍스트를 리스토어함과 함께, 온도 상한값을 초과한 서브 프로세서(43)에, 단계 S100의 처리에 의해 퇴피된 콘텍스트를 리스토어한다. 구체적으로는, 논리 쓰레드 관리 처리부(217)는, 온도 상한값을 초과한 서브 프로세서(43) 또는 처리의 교환처인 서브 프로세서(43)가 마스터 장치 내의 서브 프로세서(43)일 때, 버스(41)를 통하여, 교환처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트 중 대응하는 것을 공급하고, 온도 상한값을 초과한 서브 프로세서(43) 또는 처리의 교환처인 서브 프로세서(43)가 슬레이브 장치 내의 서브 프로세서(43)일 때, 버스(41), 버스(14), 및 통신부 (16), 및 네트워크(2)를 통하여, 슬레이브 장치로서 동작하고 있는 정보 처리 장치(101)에 포함되는 교환처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트 중 대응하는 것을 공급한다. 각각의 서브 프로세서(43)에는, 공급된 콘텍스트를 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억하고, 처리는 도 22의 단계 S77로 되돌아가, 단계 S78로 진행한다.
단계 S91에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)라고 판단된 경우, 단계 S103에 있어서, 온도 이상 대응 처리 제어부(216)는, 온도의 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가, 마스터 장치인 정보 처리 장치(101)에 포함되는지의 여부를 판단한다. 단계 S103에 있어서, 온도의 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가 마스터 장치인 정보 처리 장치(101)에 포함된다고 판단된 경우, 처리는 후술하는 단계 S106으로 진행한다.
단계 S103에 있어서, 온도의 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가, 마스터 장치인 정보 처리 장치(101)에 포함되지 않는, 즉, 온도의 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가, 슬레이브 장치인 정보 처리 장치(101)에 포함된다고 판단된 경우, 단계 S104에 있어서, 온도 이상 대응 처리 제어부(216)는, 온도 관리 테이블(215)을 참조하여, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가 포함되는 정보 처리 장치(101)의 정보 처리 컨트롤러(111) 전체의 처리가 이동 가능한지의 여부를 판단한다. 단계 S104에 있어서, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러 (111)가 포함되는 정보 처리 장치(101)의 정보 처리 컨트롤러(111) 전체의 처리가 이동 가능하다고 판단된 경우, 처리는 단계 S93으로 진행한다.
단계 S104에 있어서, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가 포함되는 정보 처리 장치(101)의 정보 처리 컨트롤러 전체의 처리가 이동 가능하지 않았다고 판단된 경우, 단계 S105에 있어서, 온도 이상 대응 처리 제어부(216)는, 온도 관리 테이블(215)을 참조하여, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가 포함되는 정보 처리 장치(101)의 정보 처리 컨트롤러(111) 전체의 처리의 교환이 가능한지의 여부를 판단한다. 단계 S105에 있어서, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가 포함되는 정보 처리 장치(101)의 정보 처리 컨트롤러(111) 전체의 처리의 교환이 가능하다고 판단된 경우, 처리는 단계 S97로 진행한다.
단계 S103에 있어서, 온도의 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)는, 마스터 장치인 정보 처리 장치(101)에 포함된다고 판단된 경우, 또는 단계 S105에 있어서, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가 포함되는 정보 처리 장치(101)의 정보 처리 컨트롤러 전체의 처리의 교환이 가능하지 않았다고 판단된 경우, 단계 S106에 있어서, 온도 이상 대응 처리 제어부(216)는, 논리 쓰레드 관리 처리부(217)를 제어하여, 연산 처리부(161)에 의해 실행되고 있는 어플리케이션 프로그램을 일시 정지시키는 등하여, 항상 동작하는 상주 프로그램 등이 실행하는 일부의 필요한 처리를 제외하고, 메인 프로세서(42)의 처리를 일시 중단시킨다.
단계 S107에 있어서, 온도 이상 대응 처리 제어부(216)는, 온도 관리 테이블(215)을 참조하여, 온도 상태가 정상으로 되돌아왔는지의 여부를 판단한다. 단계 S107에 있어서, 온도 상태가 정상으로 되돌아오지 않았다고 판단된 경우, 온도 상태가 정상으로 되돌아왔다고 판단될 때까지 단계 S107의 처리가 반복된다. 단계 S107에 있어서, 온도 상태가 정상으로 되돌아왔다고 판단된 경우, 처리는 도 22의 단계 S77로 되돌아가, 단계 S78로 진행한다.
이러한 처리에 의해, 온도 이상의 발생 개소, 그 때의 칩 내의 동작 및 각각의 프로세서의 온도 검출값에 기초하여, 처리가 일시 정지되는지, 분산 처리 중의 적어도 일부가 이동되는지, 또는 분산 처리 중의 적어도 일부가 교환되는지가 판단되고, 처리의 이동처 또는 교환처가 선택되도록 이루어져 있다.
다음으로, 도 24의 플로우차트를 참조하여, 도 22를 이용하여 설명한 마스터 장치의 온도 정보 관리 처리와 병행하여 실행되는, 슬레이브 장치의 온도 정보 관리 처리에 대하여 설명한다.
단계 S121에 있어서, 슬레이브 장치로서 동작하고 있는 정보 처리 장치(101)의 온도 정보 취득부(164)는, 인터럽트 제어부(165)로부터, 타이머 인터럽트가 들어왔는지의 여부를 판단한다. 단계 S121에 있어서, 타이머 인터럽트가 들어오지 않았다고 판단된 경우, 타이머 인터럽트가 들어왔다고 판단될 때까지 단계 S121의 처리가 반복된다.
단계 S121에 있어서, 타이머 인터럽트가 들어왔다고 판단된 경우, 단계 S122에 있어서, 온도 정보 취득부(164)는, 온도 검출부(121)의 각각으로부터 온도 정보 를 취득한다.
단계 S123에 있어서, 온도 정보 취득부(164)는, 단계 S122에 있어서 취득된 온도 정보에 기초하여, 온도 관리 테이블(215)을 갱신한다.
단계 S124에 있어서, 온도 관리 정보 송수신 제어부(214)는, 단계 S123에 있어서 갱신된 온도 관리 테이블(215)을, 통신부(16) 및 네트워크(2)를 통하여 마스터 장치로서 동작하고 있는 정보 처리 장치(101)로 송신하고, 처리는 단계 S121로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 슬레이브 장치의 온도 관리 테이블이 마스터 장치로 송신된다. 송신된 각각의 슬레이브 장치의 온도 관리 테이블은, 마스터 장치에 있어서 관리된다.
도 21 내지 도 24를 이용하여 설명한 처리에 의해, 메인 프로세서(42) 및 각각의 서브 프로세서(43)에 온도 검출부(121)가 설치되어 있는 정보 처리 컨트롤러(111)를 갖는 정보 처리 장치(101)가 복수개 네트워크(2)에 접속되어 있는 제2 실시 형태에 있어서, 제1 패턴의 온도 정보 및 처리의 이동 또는 교환의 제어를 이용하여, 실행 중인 처리를 정지시키는 것을 최소한으로 억제하면서, 열 폭주 등에 의한 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
다음으로, 도 25에, 제2 실시 형태의 제2 패턴에 있어서의 정보 처리 컨트롤러(111)가 실행 가능한 기능을 설명하기 위한 기능 블록도를 나타낸다. 또한, 도 21에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 도 25에 도시되는 제2 실시 형태의 제2 패턴에 있어서의 정보 처리 컨트롤러(111) 중, 메인 프로세서(42)가 실행 가능한 기능에 있어서는, 기억부(213), 온도 관리 정보 송수신 제어부(214) 및 온도 이상 대응 처리 제어부(216) 대신에, 기억부(231), 온도 관리 정보 송수신 제어부(232) 및 온도 이상 대응 처리 제어부(234)가 설치되어 있는 것 이외에는, 기본적으로 도 21을 이용하여 설명한 경우와 마찬가지이고, 온도 모니터 처리부(122)가 실현 가능한 기능은, 온도 관리 테이블(215) 대신에, 온도 관리 테이블(233)이 설치되어 있는 것 이외에는, 도 21을 이용하여 설명한 경우와 마찬가지이다.
또한, 도 25에 있어서, 이들의 기능을 실현하는 하드웨어가 상술하는 바와 같지 않은 경우, 예를 들면, 메인 프로세서(42)에 의해 실현되는 기능 중의 일부가 온도 모니터 처리부(122)에 의해 실현되거나, 온도 모니터 처리부(122)에 의해 실현되는 기능 중의 일부가 메인 프로세서(42)에 의해 실현되는 경우나, 이들의 기능이 각각 상이한 하드웨어에 의해 실현되는 경우 등도, 본 발명은 적용 가능한 것은 물론이다.
기억부(231)는, 메인 메모리(12) 중의 적어도 일부의 기억 영역에 대응하고, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 장치 정보 또는 장치 정보 중의 일부의 정보를 기억함과 함께, 온도 관리 정보 송수신 제어부(232)가 수신한, 다른 정보 처리 장치(101)에 있어서의 온도 관리 테이블을 일시 기억한다. 온도 관리 정보 송수신 제어부(232)는, 온도 이상 대응 처리 제어부(234)의 제어에 기초하여, 통신부(16)를 통하여, 온도 관리 정보 또는 온도 관리를 위해 생성된 각종 커맨드(소프트웨어 셀)의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101) 로의 송신을 제어함과 함께, 통신부(16)를 통하여, 다른 정보 처리 장치(101)로부터 송신된 온도 관리 정보 또는 온도 관리를 위한 각종 커맨드(소프트웨어 셀) 등의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101)로부터의 수신을 제어한다.
온도 이상 대응 처리 제어부(234)는, 자기 자신의 온도 정보 취득부(164)에 의해 취득된 정보에 기초하여, 온도 상승 검출부(168)에 의해 온도 이상의 발생이 검출되고, 인터럽트 제어부(165)에 의해 인터럽트 처리가 실행된 경우, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101) 전체에 대하여, 온도 관리 정보의 송신을 요구하는 커맨드를 생성하고, 온도 관리 정보 송수신 제어부(232)를 제어하여, 생성한 커맨드를 송신시킨다. 또한, 온도 이상 대응 처리 제어부(234)는, 온도 관리 정보 송수신 제어부(232)가, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101)로부터 온도 관리 정보의 송신을 요구하는 커맨드를 수신한 경우, 온도 관리 테이블(233)에 기억되어 있는 온도 관리 테이블에 기초하여, 도 26에 도시되는 온도 정보 회신 커맨드를 생성하고, 온도 관리 정보 송수신 제어부(232)를 제어하여, 생성한 온도 정보 회신 커맨드를 송신시킨다.
온도 정보 회신 커맨드에는, 온도 관리 테이블(233)에 기억되어 있는 온도 관리 테이블에 기초하여, 히트싱크(141), 메인 프로세서(42) 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서의 최신의 온도 검출 결과(즉, 온도 검출부(121-1) 내지 온도 검출부(121-10)의 각각의 최신의 온도 검출 결과), 히트싱크(141), 메인 프로세서(42) 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있 어서의 상한 온도의 설정값(즉, 온도 검출부(121-1) 내지 온도 검출부(121-10)의 각각이 검출하는 온도가 이 이상 높은 경우에는, 이상값이라고 판별하기 위한 설정값), 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 동작 상태를 나타내는 정보, 및 칩 내의 서브 프로세서의 배치 정보가 기재되어 있다.
온도 관리 테이블(233)은, 자기 자신이 마스터 장치인지 슬레이브 장치인지에 상관없이, 자기 자신의 온도 정보 취득부(164)에 의해 취득된 정보에 기초하여 갱신되는 자기 자신의 온도 관리 테이블을 기억한다.
다음으로, 도 27 및 도 28의 플로우차트를 참조하여, 제2 실시 형태의 제2 패턴에 있어서의 동작을 설명한다. 제2 실시 형태에 있어서도, 어플리케이션 프로그램 실행 처리는 도 14를 이용하여 설명한 제1 실시 형태에 있어서의 경우와 기본적으로 마찬가지이므로, 그 설명은 생략한다.
도 27의 플로우차트를 참조하여, 온도 정보 관리 처리 2에 대하여 설명한다.
단계 S141 내지 단계 S144에 있어서, 도 15의 단계 S21 내지 단계 S24와 기본적으로 마찬가지의 처리가 실행된다. 즉, 타이머 인터럽트가 들어왔다고 판단된 경우, 온도 정보 취득부(164)는, 온도 검출부(121)의 각각으로부터 온도 정보를 취득하여, 온도 관리 테이블(233)을 갱신한다. 그리고, 온도 상승 검출부(168)는, 온도 관리 테이블(233)을 참조하여, 온도 정보에 이상값이 있는지의 여부를 판단한다.
단계 S144에 있어서, 온도 정보에 이상값이 없다고 판단된 경우, 단계 S145에 있어서, 온도 이상 대응 처리 제어부(234)는, 온도 관리 정보 송수신 제어부 (232)가, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101)로부터 온도 관리 정보의 송신을 요구하는 커맨드를 수신했는지의 여부를 판단한다. 단계 S145에 있어서, 다른 정보 처리 장치(101)로부터 온도 관리 정보의 송신을 요구하는 커맨드를 수신하지 않았다고 판단된 경우, 처리는 단계 S141로 되돌아가, 그 이후의 처리가 반복된다.
단계 S145에 있어서, 다른 정보 처리 장치(101)로부터 온도 관리 정보의 송신을 요구하는 커맨드를 수신했다고 판단된 경우, 단계 S146에 있어서, 온도 이상 대응 처리 제어부(234)는, 온도 관리 테이블(233)에 기억되어 있는 온도 관리 테이블에 기초하여, 도 26에 도시되는 온도 정보 회신 커맨드를 생성하고, 온도 관리 정보 송수신 제어부(232)를 제어하여, 생성한 온도 정보 회신 커맨드를 송신시키고, 처리는 단계 S141로 되돌아가, 그 이후의 처리가 반복된다.
단계 S144에 있어서, 온도 정보에 이상값이 있었다고 판단된 경우, 단계 S147에 있어서, 온도 상승 검출부(168)는, 인터럽트 제어부(165)에, 이상 온도 상승이 검출된 것을 통지하여, 연산 처리부(161) 및 온도 이상 대응 처리 제어부(234)에 인터럽트를 걸게 한다. 인터럽트 제어부(165)는, 온도 이상 대응 처리 제어부(234) 및 연산 처리부(161)에 대하여 인터럽트를 걸어, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리를 정지시킴과 함께, 온도 이상 대응 처리 제어부(234)에 대하여 이상 발생시의 처리를 개시시킨다.
단계 S148에 있어서, 도 28을 이용하여 후술하는 이상 발생시의 처리 3이 실행된다.
단계 S149에 있어서, 온도 이상 대응 처리 제어부(234)는, 단계 S148에 있어서 실행된 이상 발생시의 처리 3에 기초하여 논리 쓰레드 관리 처리부(217)를 제어하고, 필요에 따라 논리 쓰레드 관리에 관한 테이블을 갱신시킨다.
단계 S150에 있어서,인터럽트 제어부(165)는, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리에 대한 인터럽트를 해제하고, 처리는 단계 S141로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 각각이, 마스터 장치인지 슬레이브 장치인지에 상관없이, 자기 자신의 온도 검출부(121)의 각각에 의해 검출된 온도 정보에 기초하여 갱신된 온도 관리 테이블에 기초하여, 자기 자신의 온도 이상을 검출하고, 이상 발생시에는, 인터럽트 처리가 실행되고, 후술하는 이상 발생시의 처리 3이 실행된다. 또한, 네트워크(2)에 접속되어 있는 다른 정보 처리장치로부터 온도 정보의 송신 요구를 받은 경우, 도 26에 도시되는 온도 정보 회신 커맨드가 생성되어, 송신 요구원의 정보 처리 장치(101)로 송신된다.
다음으로, 도 28의 플로우차트를 참조하여, 도 27의 단계 S148에 있어서 실행되는 이상 발생시의 처리 3에 대하여 설명한다.
단계 S181에 있어서, 온도 이상 대응 처리 제어부(234)는, 온도 관리 테이블(233)을 참조하여, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)인지의 여부, 바꾸어 말하면, 미리 설정되어 있는 상한 온도를 초과한 온도 검출 결과를 얻은 것이, 온도 검출부(121-9) 또는 온도 검출부(121-10) 중 의 어느 것인지의 여부를 판단한다. 단계 S181에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)라고 판단된 경우, 처리는 후술하는 단계 S195로 진행한다.
단계 S181에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)가 아닌, 즉, 서브 프로세서(43) 중의 어느 하나라고 판단된 경우, 단계 S182에 있어서, 온도 이상 대응 처리 제어부(234)는, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101) 전체에 대하여, 온도 관리 정보의 송신을 요구하는 커맨드를 생성하고, 온도 관리 정보 송수신 제어부(232)를 제어하여, 생성한 커맨드를 송신시킨다. 온도 관리 정보 송수신 제어부(232)는, 온도 관리 정보의 송신을 요구하는 커맨드를, 통신부(16) 및 네트워크(2)를 통하여 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101) 전체에 송신한다.
단계 S183에 있어서, 온도 관리 정보 송수신 제어부(232)는, 도 26을 이용하여 설명한 온도 정보 회신 커맨드를 수신하여, 온도 이상 대응 처리 제어부(234)에 공급한다.
단계 S184에 있어서, 온도 이상 대응 처리 제어부(234)는, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101) 전체로부터 송신된 온도 정보 회신 커맨드에 기초하여, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능한지의 여부를 판단한다.
단계 S184에 있어서, 처리의 이동이 가능하다고 판단된 경우, 단계 S185 내지 단계 S188에 있어서, 도 23의 단계 S93 내지 단계 S96과 기본적으로 마찬가지의 처리가 실행된다. 즉, 온도 관리 테이블(233)이 참조되어, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 정보 처리 컨트롤러(111)의 서브 프로세서(43) 중으로부터, 처리의 이동처인 서브 프로세서(43)가 선택되고, 온도 상한값을 초과한 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 온도 상한값을 초과한 서브 프로세서(43)의 동작이 정지되고, 퇴피된 콘텍스트가 이동처인 서브 프로세서에 리스토어된다.
단계 S188의 처리의 종료 후, 처리는 도 27의 단계 S148로 되돌아가, 단계 S149로 진행한다.
단계 S184에 있어서, 처리의 이동이 가능하지 않았다고 판단된 경우, 단계 S189 내지 단계 S194에 있어서, 도 23의 단계 S97 내지 단계 S102와 기본적으로 마찬가지의 처리가 실행된다. 즉, 온도 관리 테이블(233)이 참조되어, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 정보 처리 컨트롤러(111)의 서브 프로세서(43) 중으로부터, 처리의 교환처인 서브 프로세서(43)가 선택되고, 온도 상한값을 초과한 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 온도 상한값을 초과한 서브 프로세서(43)의 동작이 정지된다.
그리고, 처리의 교환처로서 선택된 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 처리의 교환처로서 선택된 서브 프로세서(43)의 동작이 정지되고, 퇴피된 2개의 서브 프로세서(43)의 콘텍스트가 교환되어 리스토어된다.
단계 S194의 처리의 종료 후, 처리는 도 27의 단계 S148로 되돌아가, 단계 S149로 진행한다.
단계 S181에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)라고 판단된 경우, 단계 S195 및 단계 S196에 있어서, 도 16의 단계 S53 및 단계 S54와 기본적으로 마찬가지의 처리가 실행된다. 즉, 논리 쓰레드 관리 처리부(217)가 제어되어, 연산 처리부(161)에 의해 실행되고 있는 어플리케이션 프로그램이 일시 정지되고, 항상 동작하는 상주 프로그램 등이 실행하는 일부의 필요한 처리를 제외하고, 메인 프로세서(42)의 처리가 일시 중단되고, 온도 관리 테이블(233)이 참조되어, 온도 상태가 정상으로 되돌아왔는지의 여부가 판단되고, 온도 상태가 정상으로 되돌아오지 않았다고 판단된 경우, 온도 상태가 정상으로 되돌아왔다고 판단될 때까지 단계 S196의 처리가 반복된다.
단계 S196에 있어서, 온도 상태가 정상으로 되돌아왔다고 판단된 경우, 처리는 도 27의 단계 S148로 되돌아가, 단계 S149로 진행한다.
이러한 처리에 의해, 온도 이상이 발생한 경우, 다른 장치에 온도 정보의 송신을 요구하고, 온도 이상의 발생 개소, 네트워크(2)에 접속되어 있는 각각의 정보 처리 컨트롤러(111)의 그 때의 동작 및 각각의 프로세서의 온도 검출값에 기초하여, 처리가 정지되는지, 분산 처리 중의 일부가 이동되는지, 또는 분산 처리 중의 일부가 교환되는지가 판단되고, 처리의 이동처 또는 교환처가 선택되도록 이루어져 있다.
도 25 내지 도 28을 이용하여 설명한 처리에 의해, 메인 프로세서(42) 및 각각의 서브 프로세서(43)에 온도 검출부(121)가 설치되어 있는 정보 처리 컨트롤러 (111)를 갖는 정보 처리 장치(101)가 복수개 네트워크(2)에 접속되어 있는 제2 실시 형태에 있어서, 제2 패턴의 온도 정보 및 처리의 이동 또는 교환의 제어를 이용하여, 실행 중인 처리를 정지시키는 것을 최소한으로 억제하면서, 열 폭주 등에 의한 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
다음으로, 도 29에, 제2 실시 형태의 제3 패턴에 있어서의 정보 처리 컨트롤러(111)가 실행 가능한 기능을 설명하기 위한 기능 블록도를 나타낸다. 또한, 도 21에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 도 29에 도시되는 제2 실시 형태의 제3 패턴에 있어서의 정보 처리 컨트롤러(111) 중, 메인 프로세서(42)가 실행 가능한 기능에 있어서는, 온도 관리 정보 송수신 제어부(214) 및 온도 이상 대응 처리 제어부(216) 대신에, 온도 관리 정보 송수신 제어부(251) 및 온도 이상 대응 처리 제어부(252)가 설치되어 있는 것 이외에는, 기본적으로 도 21을 이용하여 설명한 경우와 마찬가지이고, 온도 모니터 처리부(122)가 실현 가능한 기능은, 온도 관리 테이블(215) 대신에, 도 25를 이용하여 설명한 온도 관리 테이블(233)이 설치되어 있는 것 이외에는, 도 21을 이용하여 설명한 경우와 마찬가지이다.
또한, 도 29에 있어서, 이들의 기능을 실현하는 하드웨어가 상술하는 바와 같지 않은 경우, 예를 들면, 메인 프로세서(42)에 의해 실현되는 기능 중의 일부가 온도 모니터 처리부(122)에 의해 실현되거나, 온도 모니터 처리부(122)에 의해 실현되는 기능 중의 일부가 메인 프로세서(42)에 의해 실현되는 경우나, 이들의 기능이 각각 상이한 하드웨어에 의해 실현되는 경우 등도, 본 발명은 적용 가능한 것은 물론이다.
온도 관리 정보 송수신 제어부(251)는, 온도 이상 대응 처리 제어부(252)의 제어에 기초하여, 통신부(16)를 통하여, 온도 관리 정보 또는 온도 관리를 위해 생성된 각종 커맨드(소프트웨어 셀)의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101)로의 송신을 제어함과 함께, 통신부(16)를 통하여, 다른 정보 처리 장치(101)로부터 송신된 온도 관리 정보 또는 온도 관리를 위한 각종 커맨드(소프트웨어 셀) 등의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101)로부터의 수신을 제어한다.
온도 이상 대응 처리 제어부(252)는, 자기 자신의 온도 정보 취득부(164)에 의해 취득된 정보에 기초하여, 온도 상승 검출부(168)에 의해 온도 이상의 발생이 검출되고, 인터럽트 제어부(165)에 의해 인터럽트 처리가 실행된 경우, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101) 전체에 대하여, 현재 실행 중인 논리 쓰레드에 대응하는 처리의 이동 또는 교환을 요구하기 위해, 도 30에 도시되는 서브 프로세서 프로그램 이동 요구 커맨드를 생성하고, 온도 관리 정보 송수신 제어부(251)를 제어하여, 생성한 커맨드를 송신시킨다. 또한, 온도 이상 대응 처리 제어부(252)는, 온도 관리 정보 송수신 제어부(251)가, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101)로부터, 도 30에 도시되는 서브 프로세서 프로그램 이동 요구 커맨드를 수신한 경우, 온도 관리 테이블(233)에 기억되어 있는 온도 관리 테이블에 기초하여, 도 31에 도시되는 서브 프로세서 프로그램 이동 회신 커맨드를 생성하고, 온도 관리 정보 송수신 제어부(251)를 제어하여, 생성한 서브 프로세서 프로그램 이동 회신 커맨드를 송신시킨다.
서브 프로세서 프로그램 이동 요구 커맨드에는, 온도 이상이 발생한 서브 프로세서에 있어서 실행되고 있는 처리(쓰레드)에 의한 서브 프로세서 사용율과, 로컬 스토리지 용량이 기재되어 있다.
또한, 서브 프로세서 프로그램 이동 회신 커맨드에는, 서브 프로세서 프로그램의 이동 요구를 받을지의 여부를 나타내는 정보(이동이 OK인가, 교환이면 OK인가, 또는 모두 NG인가)와, 서브 프로세서 프로그램의 이동 요구를 받는 경우에는, 서브 프로세서 프로그램의 이동 요구를 받는 서브 프로세서 ID가 포함된다. 온도 이상 대응 처리 제어부(252)는, 서브 프로세서 프로그램의 이동 요구를 받을지, 교환을 받을지, 또는 모두 거부할지를, 서브 프로세서 프로그램 이동 요구 커맨드에 기재되어 있는, 온도 이상이 발생한 서브 프로세서에 있어서 실행되고 있는 처리(쓰레드)에 의한 서브 프로세서 사용율 및 로컬 스토리지 용량의 정보와, 자기 자신의 온도 관리 테이블(233)에 기억되어 있는 온도 관리 테이블을 기초로 판단한다.
온도 관리 테이블(233)은, 도 25를 이용하여 설명한 경우와 마찬가지로, 자기 자신이 마스터 장치인지 슬레이브 장치인지에 상관없이, 자기 자신의 온도 정보 취득부(164)에 의해 취득된 정보에 기초하여 갱신되는 자기 자신의 온도 관리 테이블을 기억한다.
다음으로, 도 32 및 도 33의 플로우차트를 참조하여, 제2 실시 형태의 제3 패턴에 있어서의 동작을 설명한다. 제2 실시 형태에 있어서도, 어플리케이션 프로그램 실행 처리는, 도 14를 이용하여 설명한 제1 실시 형태에 있어서의 경우와 기 본적으로 마찬가지이므로, 그 설명은 생략한다.
도 32의 플로우차트를 참조하여, 온도 정보 관리 처리 2에 대하여 설명한다.
단계 S211 내지 단계 S214에 있어서, 도 15의 단계 S21 내지 단계 S24와 기본적으로 마찬가지의 처리가 실행된다. 즉, 타이머 인터럽트가 들어왔다고 판단된 경우, 온도 정보 취득부(164)는, 온도 검출부(121)의 각각으로부터 온도 정보를 취득하여, 온도 관리 테이블(233)을 갱신한다. 그리고, 온도 상승 검출부(168)는, 온도 관리 테이블(233)을 참조하여, 온도 정보에 이상값이 있는지의 여부를 판단한다.
단계 S214에 있어서, 온도 정보에 이상값이 없다고 판단된 경우, 단계 S215에 있어서, 온도 이상 대응 처리 제어부(252)는, 온도 관리 정보 송수신 제어부(251)가, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101)로부터, 도 30를 이용하여 설명한 서브 프로세서 프로그램 이동 요구 커맨드를 수신했는지의 여부를 판단한다. 단계 S215에 있어서, 다른 정보 처리 장치(101)로부터 서브 프로세서 프로그램 이동 요구 커맨드를 수신하지 않았다고 판단된 경우, 처리는 단계 S211로 되돌아가, 그 이후의 처리가 반복된다.
단계 S215에 있어서, 다른 정보 처리 장치(101)로부터 서브 프로세서 프로그램 이동 요구 커맨드를 수신했다고 판단된 경우, 단계 S216에 있어서, 온도 이상 대응 처리 제어부(252)는, 수신한 서브 프로세서 프로그램 이동 요구 커맨드에 기재되어 있는, 온도 이상이 발생한 서브 프로세서에 있어서 실행되고 있는 처리(쓰레드)에 의한 서브 프로세서 사용율과, 로컬 스토리지 용량과, 온도 관리 테이블 (233)에 기억되어 있는 자기 자신의 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 동작 상태를 나타내는 정보, 히트싱크(141), 메인 프로세서(42) 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서의 최신의 온도 검출 결과, 및 칩 내의 서브 프로세서의 배치 정보에 기초하여, 서브 프로세서 프로그램의 이동 요구를 받을지의 여부를 결정하여, 도 31에 도시되는 온도 정보 회신 커맨드를 생성하고, 온도 관리 정보 송수신 제어부(251)를 제어하여, 생성한 온도 정보 회신 커맨드를 송신시키고, 처리는 단계 S211로 되돌아가, 그 이후의 처리가 반복된다.
단계 S214에 있어서, 온도 정보에 이상값이 있었다고 판단된 경우, 단계 S217에 있어서, 온도 상승 검출부(168)는, 인터럽트 제어부(165)에, 이상 온도 상승이 검출된 것을 통지하여, 연산 처리부(161) 및 온도 이상 대응 처리 제어부(252)에 인터럽트를 걸게 한다. 인터럽트 제어부(165)는, 온도 이상 대응 처리 제어부(252) 및 연산 처리부(161)에 대하여 인터럽트를 걸어, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리를 정지시킴과 함께, 온도 이상 대응 처리 제어부(252)에 대하여 이상 발생시의 처리를 개시시킨다.
단계 S218에 있어서, 도 33을 이용하여 후술하는 이상 발생시의 처리 4가 실행된다.
단계 S219에 있어서, 온도 이상 대응 처리 제어부(252)는, 단계 S218에 있어서 실행된 이상 발생시의 처리 4에 기초하여 논리 쓰레드 관리 처리부(217)를 제어하고, 필요에 따라 논리 쓰레드 관리에 관한 테이블을 갱신시킨다.
단계 S220에 있어서, 인터럽트 제어부(165)는, 연산 처리부(161)에 의해 제 어되는 어플리케이션 프로그램의 처리에 대한 인터럽트를 해제하고, 처리는 단계 S211로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 각각이, 마스터 장치인지 슬레이브 장치인지에 상관없이, 자기 자신의 온도 검출부(121)의 각각에 의해 검출된 온도 정보에 기초하여 갱신된 온도 관리 테이블에 기초하여, 자기 자신의 온도 이상을 검출하고, 이상 발생시에는, 인터럽트 처리가 실행되고, 후술하는 이상 발생시의 처리 4가 실행된다. 또한, 네트워크(2)에 접속되어 있는 다른 정보 처리장치로부터, 도 30에 도시되는 서브 프로세서 프로그램 이동 요구 커맨드가 수신된 경우, 도 31에 도시되는 온도 정보 회신 커맨드가 생성되어, 요구원의 정보 처리 장치(101)로 송신된다.
다음으로, 도 33의 플로우차트를 참조하여, 도 32의 단계 S218에 있어서 실행되는 이상 발생시의 처리 4에 대하여 설명한다.
단계 S231에 있어서, 온도 이상 대응 처리 제어부(252)는, 온도 관리 테이블(233)을 참조하여, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)인지의 여부, 바꾸어 말하면, 미리 설정되어 있는 상한 온도를 초과한 온도 검출 결과를 얻은 것이, 온도 검출부(121-9) 또는 온도 검출부(121-10) 중의 어느 하나인지의 여부를 판단한다. 단계 S231에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)라고 판단된 경우, 처리는 후술하는 단계 S245로 진행한다.
단계 S231에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정 보 처리 컨트롤러(111)가 아닌, 즉, 서브 프로세서(43) 중의 어느 하나라고 판단된 경우, 단계 S232에 있어서, 온도 이상 대응 처리 제어부(252)는, 도 30을 이용하여 설명한 서브 프로세서 프로그램 이동 요구 커맨드를 생성하고, 온도 관리 정보 송수신 제어부(251)를 제어하여, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101) 전체에 대하여, 생성한 커맨드를 송신시킨다. 온도 관리 정보 송수신 제어부(251)는, 서브 프로세서 프로그램 이동 요구 커맨드를, 통신부(16) 및 네트워크(2)를 통하여 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(101) 전체에 송신한다.
단계 S233에 있어서, 온도 관리 정보 송수신 제어부(251)는, 도 31에 도시되는 서브 프로세서 프로그램 이동 요구 커맨드를 수신하여, 온도 이상 대응 처리 제어부(252)에 공급한다.
단계 S234에 있어서, 온도 이상 대응 처리 제어부(252)는, 단계 S233에 있어서 수신된 온도 정보 회신 커맨드에 기초하여, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능한지의 여부를 판단한다.
단계 S234에 있어서, 처리의 이동이 가능하다고 판단된 경우, 단계 S235 내지 단계 S238에 있어서, 도 23의 단계 S93 내지 단계 S96과 기본적으로 마찬가지의 처리가 실행된다. 즉, 온도 관리 테이블(233)이 참조되어, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 정보 처리 컨트롤러(111)의 서브 프로세서(43) 중으로부터, 처리의 이동처인 서브 프로세서(43)가 선택되고, 온도 상한값을 초과한 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 온도 상한값을 초과한 서브 프로세서(43)의 동작이 정지되고, 퇴피된 콘텍스트가 이동처인 서브 프로세서에 리스토어된다.
단계 S238의 처리의 종료 후, 처리는 도 32의 단계 S218로 되돌아가, 단계 S219로 진행한다.
단계 S234에 있어서, 처리의 이동이 가능하지 않았다고 판단된 경우, 단계 S239 내지 단계 S244에 있어서, 도 23의 단계 S97 내지 단계 S102와 기본적으로 마찬가지의 처리가 실행된다. 즉, 온도 관리 테이블(233)이 참조되어, 네트워크(2)에 접속되어 있는 정보 처리 장치(101)의 정보 처리 컨트롤러(111)의 서브 프로세서(43) 중으로부터, 처리의 교환처인 서브 프로세서(43)가 선택되고, 온도 상한값을 초과한 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 온도 상한값을 초과한 서브 프로세서(43)의 동작이 정지된다.
그리고, 처리의 교환처로서 선택된 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 처리의 교환처로서 선택된 서브 프로세서(43)의 동작이 정지되고, 퇴피된 2개의 서브 프로세서(43)의 콘텍스트가 교환되어 리스토어된다.
단계 S244의 처리의 종료 후, 처리는 도 32의 단계 S218로 되돌아가, 단계 S219로 진행한다.
단계 S231에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(111)라고 판단된 경우, 단계 S245 및 단계 S246에 있어서, 도 16의 단계 S53 및 단계 S54와 기본적으로 마찬가지의 처리가 실행된다. 즉, 논리 쓰 레드 관리 처리부(217)가 제어되어, 연산 처리부(161)에 의해 실행되고 있는 어플리케이션 프로그램이 일시 정지되고, 항상 동작하는 상주 프로그램 등이 실행하는 일부의 필요한 처리를 제외하고, 메인 프로세서(42)의 처리가 일시 중단되고, 온도 관리 테이블(233)이 참조되어, 온도 상태가 정상으로 되돌아왔는지의 여부가 판단되고, 온도 상태가 정상으로 되돌아오지 않았다고 판단된 경우, 온도 상태가 정상으로 되돌아왔다고 판단될 때까지 단계 S246의 처리가 반복된다.
단계 S246에 있어서, 온도 상태가 정상으로 되돌아왔다고 판단된 경우, 처리는 도 32의 단계 S218로 되돌아가, 단계 S219로 진행한다.
이러한 처리에 의해, 온도 이상이 발생한 경우, 서브 프로세서 프로그램 이동 요구 커맨드가 송신되고, 그 회신 커맨드가 수신되고, 온도 이상의 발생 개소, 네트워크(2)에 접속되어 있는 각각의 정보 처리 컨트롤러(111)의 그 때의 동작 및 각각의 프로세서의 온도 검출값에 기초하여, 처리가 정지되는지, 분산 처리 중의 일부가 이동되는지, 또는 분산 처리 중의 일부가 교환되는지가 판단되고, 처리의 이동처 또는 교환처가 선택되도록 이루어져 있다.
도 29 내지 도 33을 이용하여 설명한 처리에 의해, 메인 프로세서(42) 및 각각의 서브 프로세서(43)에 온도 검출부(121)가 설치되어 있는 정보 처리 컨트롤러(111)를 갖는 정보 처리 장치(101)가 복수개 네트워크(2)에 접속되어 있는 제2 실시 형태에 있어서, 제3 패턴의 온도 정보 및 처리의 이동 또는 교환의 제어를 이용하여, 실행 중인 처리를 정지시키는 것을 최소한으로 억제하면서, 열 폭주 등에 의한 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
또한, 도 34에 도시되는 바와 같이, 1개의 정보 처리 장치(281-1)에, 복수의 정보 처리 컨트롤러(111-1) 내지 정보 처리 컨트롤러(111-p)(p는 양의 정수)가 설치되어 있는 경우, 통신부(16) 및 네트워크(2)를 통하여 복수의 정보 처리 컨트롤러(111)가 수수하고 있던 각종 정보를, 버스(14)를 통하여 수수하도록 하는 것에 의해, 제2 실시 형태에 있어서의 경우와 마찬가지로 하여, 본 발명이 적용 가능한 것은 물론이다.
이 때, 1개의 정보 처리 장치(281-1)에 구비되어 있는, 복수의 정보 처리 컨트롤러(111-1) 내지 정보 처리 컨트롤러(111-p) 중 어느 하나가 정보 처리 장치(281-1) 내의 마스터로서 동작하고, 다른 정보 처리 컨트롤러가 슬레이브로서 동작하도록 이루어진다. 그리고, 상술한 제2 실시 형태의 제1 내지 제3 패턴 중 어느 하나와 마찬가지의 처리가 이용되어, 복수의 정보 처리 컨트롤러(111-1) 내지 정보 처리 컨트롤러(111-p) 중 어느 하나에 있어서의 온도 이상의 발생이 검출되고, 버스(14)에 접속되어 있는 각각의 정보 처리 컨트롤러(111)의 그 때의 동작 및 각각의 프로세서의 온도 검출값에 기초하여, 처리가 정지되는지, 분산 처리 중의 일부가 이동되는지, 또는 분산 처리 중의 일부가 교환되는지가 판단되고, 처리의 이동처 또는 교환처가 선택되도록 할 수 있게 이루어져 있다.
또한, 정보 처리 장치(281-1)가 네트워크(2)에 접속되고, 네트워크(2)에, 정보 처리 장치(281-1)와 마찬가지의 구성을 갖는 정보 처리 장치(281-2)나, 상술한 복수의 정보 처리 장치(101)(도 34에 있어서는, 정보 처리 장치(101-1) 및 정보 처리 장치(101-2))가 접속되어 있는 경우, 정보 처리 장치(281-1)의 정보 처리 컨트 롤러(111-1) 내지 정보 처리 컨트롤러(111-p) 중 어느 하나에 있어서의 온도 이상의 발생이 검출되었지만, 버스(14)에 접속되어 있는 각각의 정보 처리 컨트롤러(111)에 처리의 이동처 또는 교환처가 발견되지 않은 경우, 상술한 제2 실시 형태의 제1 내지 제3 패턴 중 어느 하나와 마찬가지의 처리가 이용되어, 네트워크(2)를 통하여 접속되어 있는 정보 처리 장치(281-2)나, 상술한 복수의 정보 처리 장치(101)에 포함되는 서브 프로세서(43) 중의 어느 하나로부터, 처리의 이동처 또는 교환처가 선택되도록 해도 좋다.
또한, 본 발명을 적용한 정보 처리 컨트롤러는, 온도 센서 등에 의한 온도 검출부를 설치하고, 정상 동작 가능한 온도 범위 내에서 동작하도록 관리할 뿐만 아니라, 정보 처리 컨트롤러에 공급되는 전력량을 감시하여, 이상 전력량이 1개의 정보 처리 컨트롤러에서 소비되는 것을 방지하는 것에 의해, 소자의 열화를 방지함과 함께 신뢰성이 높은 정보 처리를 실현할 수 있다. 또한, 본 발명을 적용한 정보 처리 컨트롤러는, 1개 또는 복수의 정보 처리 장치 내의 서브 프로세서 사이에서, 소비 전력량의 증가에 따른 처리의 이동 또는 교환을 행함으로써, 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
도 35 내지 도 52를 이용하여, 본 발명을 적용한 정보 처리 장치의 정보 처리 컨트롤러에 있어서, 프로세서의 소비 전력량의 증가에 따른 분산 처리를 실현하는 경우에 있어서의 제3 실시 형태에 대하여 설명한다.
도 35는, 정보 처리 컨트롤러의 소비 전력을 측정하는 전력 측정부가 설치되고, 정보 처리 컨트롤러에, 전원부(19)의 상태를 취득하고, 전력 측정부의 측정 결 과를 취득하는 전력 관리 처리부가 설치되어 있는 정보 처리 장치(301-1)의 구성을 도시하는 블록도이다.
또한, 도 1에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 도 35에 도시되는 정보 처리 장치(301-1)는, 정보 처리 컨트롤러(11) 대신에, 전원부(19)의 상태를 취득하고, 전력 측정부(321)의 측정 결과를 취득하는 전력 관리 처리부(331)가 설치되어 있는 정보 처리 컨트롤러(311)가 구비되고, 1칩으로 구성되어 있는 정보 처리 컨트롤러(311)의 소비 전력을 측정하는 전력 측정부(321)가 새롭게 설치되어 있는 것 이외에는, 기본적으로 도 1을 이용하여 설명한 정보 처리 장치(1)와 마찬가지의 구성을 갖고 있다.
또한, 네트워크(2)에 접속되어 있는 정보 처리 장치(301-2) 내지 정보 처리 장치(301-n)는, 기본적으로 정보 처리 장치(301-1)와 마찬가지의 구성을 갖는 것이기 때문에, 그 설명은 생략한다. 이하, 정보 처리 장치(301-1) 내지 정보 처리 장치(301-n)를 개개로 구별할 필요가 없을 때, 단순히 정보 처리 장치(301)라고 칭한다.
도 36을 이용하여, 동기 정류 방식의 전력 측정부(321)의 구성에 대하여 설명한다. 출력 인덕터의 직류 저항 Rdc은, 설계시에 미리 정해지는 유한의 값이기 때문에, 출력 인덕터 양단의 전위차 Vdrop를, 전압 계측 회로(341)에 의해 계측함으로써, 정보 처리 컨트롤러(311)에 공급되는 전류값 Iout을 알 수 있다. 전류값 Iout은 전원부(19)의 출력에 접속된 부하로 되는 장치인 정보 처리 컨트롤러(311) 의 소비 전류에 상당하며, 출력 인덕터의 직류 저항 Rdc는 통상 전원 회로 출력단으로부터 본 부하 임피던스에 대하여 충분히 작은 값이고, 소비 전력은 (부하 임피던스)×(소비 전류)의 제곱으로 계산되기 때문에, 출력 인덕터 양단의 전위차 Vdrop를, 전압 계측 회로(341)에 의해 계측함으로써, 정보 처리 컨트롤러(311)의 소비 전력을 간접적으로 감시하는 것이 가능하게 된다.
도 37에, 소비 전력량을 이용하여 분산 처리의 할당의 제어를 행하는, 제3 실시 형태의 정보 처리 컨트롤러(311)에 의해서 실행되는 소프트웨어의 구성을 나타낸다. 이들 소프트웨어(프로그램)는, 정보 처리 장치에 전원이 투입되기 전에 있어서는, 정보 처리 컨트롤러(311)에 접속되는 기록부(13)에 기록되어 있는 것이다.
또한, 도 8에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 제3 실시 형태에 있어서의 정보 처리 컨트롤러(311)의 메인 메모리(12)가 기억하는 소프트웨어의 구성은, 새롭게 제어 프로그램에 전력 관리 프로그램이 추가되어 있는 것 이외에는, 기본적으로 도 8을 이용하여 설명한 경우와 마찬가지이다. 또한, 전력 관리 프로그램은, 정보 처리 장치(301)의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주 프로그램인 것이 바람직하다.
전력 관리 프로그램은, 정보 처리 장치(301)의 전력 측정부(321)에 의해 측정되는 전력 정보를 수집하고, 전력 관리 처리부(331)에 의해 관리함과 함께, 이들의 전력 정보에 기초하여, 메인 프로세서(42)에 의해 실행되는 처리의 제어, 및 서 브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서 필요에 따라 실행되는 처리의 이동 또는 교환을 제어하지만, 또한, 네트워크(2)를 통하여 접속되어 있는 다른 정보 처리 장치(301)와 전력 정보를 교환하여, 메인 프로세서(42)에 의해 실행되는 처리의 제어, 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서 필요에 따라 실행되는 처리의 이동 또는 교환을 제어한다.
네트워크(2)를 통하여 접속되어 있는 다른 정보 처리 장치(301)와의 전력 정보, 및 처리의 이동 또는 교환의 제어에는 3개의 패턴이 있다.
제1 패턴은, 예를 들면, 정보 처리 장치(301-1)가 마스터 장치인 경우, 정보 처리 장치(301-1)가, 자기 자신의 전력 관리 테이블뿐만 아니라, 네트워크(2)에 접속되어 있는 슬레이브 장치인 정보 처리 장치(301-2) 내지 정보 처리 장치(301-n)의 각각의 전력 관리 테이블을 관리하는 것이다. 즉, 슬레이브 장치인 정보 처리 장치(301-2) 내지 정보 처리 장치(301-n)는, 소정의 시간마다 갱신된 최신의 전력 관리 테이블을, 마스터 장치인 정보 처리 장치(301-1)에 수시로 송신하도록 이루어져 있다. 그리고, 마스터 장치인 정보 처리 장치(301-1)는, 네트워크(2)에 접속되어 있는 정보 처리 장치(301-1) 내지 정보 처리 장치(301-n)의 모든 전력 정보를 감시하여, 정보 처리 장치(301-1) 내지 정보 처리 장치(301-n) 중의 어느 하나에 있어서, 소비 전력량의 이상이 검출된 경우, 예를 들면, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 정보 처리 컨트롤러(311)로부터, 처리의 이동 또는 교환처로서 최적인 정보 처리 컨트롤러(311)를 선택하고, 선택된 정보 처리 컨트롤러(311)의 서브 프로세서(43)로 이상이 발생한 프로세서(43)의 처리를 이동시키거나 또는 각각의 처리를 교환하는 등의 처리를 제어한다.
제2 패턴은, 각각의 정보 처리 장치(301)가, 자기 자신의 전력 관리 테이블에 기초하여 전력 정보를 감시하여, 소비 전력량의 이상을 검출한 경우, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301) 전체에 대하여, 전력 정보의 송신을 요구하는 커맨드를 송신하는 것이다. 즉, 소비 전력량의 이상을 검출하지 않은 상태의 정보 처리 장치(301)는, 다른 정보 처리 장치(301)로부터, 전력 정보의 송신을 요구하는 커맨드를 수신했을 때, 자기 자신의 전력 관리 테이블에 기초하여, 도 39에 도시되는 전력 정보 회신 커맨드를 생성하고, 전력 정보 요구 커맨드의 송신원인 정보 처리 장치(301)에, 생성된 전력 정보를 회신하는 커맨드를 송신한다.
전력 정보 회신 커맨드에는, AC를 전원으로 하고 있을 때의 소비 전력 상한, 배터리를 전원으로 하고 있을 때의 소비 전력 상한, 전지를 전원으로 하고 있을 때의 소비 전력 상한, AC, 배터리, 전지 등 중, 어느 전원이 접속되어 있는지를 나타내는 전원 접속 정보, 및 현재의 처리에 있어서의 소비 전력의 값 등의 정보가 포함되어 있다. AC 전원을 전원으로 하고 있을 때의 소비 전력 상한은, AC 전원 사용시에 정상적인 동작을 행하기 위해 요구되는 소비 전력의 상한값이고, 정보 처리 장치의 설계시에 미리 설정되는 것이다. AC 전원시의 소비 전력 상한은, 정상이고 또한 효율적인 동작을 행하기 위해 바람직한 소비 전력 상한값이어도 된다. 배터리를 전원으로 하고 있을 때의 소비 전력 상한, 및 전지를 전원으로 하고 있을 때의 소비 전력 상한에 대해서도 마찬가지다. 또한, 전원 접속 정보는, 정보 처리 장치(301)의 설계시에 미리 설정되는 경우도 있고, 정보 처리 장치(301)가 복수의 전원 소스에 대응하고 있는 경우에는, 적절하게 변화하는 경우도 있을 수 있다. 현재의 소비 전력은, 전력 측정부(321)에 의해 측정된 소비 전력이고, 당연히 정보 처리 장치의 동작 상황에 따라서 변동하는 값이다.
그리고, 전력 정보를 회신하는 커맨드를 수신한 정보 처리 장치(301)는, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(301)의 정보 처리 컨트롤러(311)에 포함되는 모든 서브 프로세서(43)로부터, 처리의 이동 또는 교환처로서 최적인 정보 처리 컨트롤러(311)를 선택하고, 선택된 정보 처리 컨트롤러(311)의 서브 프로세서(43)로 이상이 발생한 프로세서(43)의 처리를 이동시키거나 또는 각각의 처리를 교환하는 등의 처리를 제어한다.
제3 패턴은, 각각의 정보 처리 장치(301)가, 자기 자신의 전력 관리 테이블에 기초하여 전력 정보를 감시하여, 소비 전력량의 이상을 검출한 경우, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301) 전체에 대하여, 서브 프로세서 프로그램의 이동을 요구하는 커맨드를 송신하는 것이다. 즉, 소비 전력량의 이상을 검출하지 않은 상태의 정보 처리 장치(301)는, 다른 정보 처리 장치(301)로부터 서브 프로세서 프로그램의 이동을 요구하는 커맨드를 수신했을 때, 자기 자신의 전력 관리 테이블에 기초하여, 서브 프로세서 프로그램의 이동처로 되는 것이 가능한지의 여부를 나타내는 회신 커맨드를 생성하고, 서브 프로세서 프로그램의 이동을 요구하는 커맨드의 송신원인 정보 처리 장치(301)에, 생성한 회신 커맨드를 송신한다. 그리고, 회신 커맨드를 수신한 정보 처리 장치(301)는, 회신 커맨드에 기초하여, 처리의 이동 또는 교환처로서 최적인 정보 처리 컨트롤러(311)를 선택하고, 선 택된 정보 처리 컨트롤러(311)의 서브 프로세서(43)로 이상이 발생한 프로세서(43)의 처리를 이동시키거나 또는 각각의 처리를 교환하는 등의 처리를 제어한다.
도 38에, 제3 실시 형태의 제1 패턴에 있어서의 정보 처리 컨트롤러(311)가 실행 가능한 기능을 설명하기 위한 기능 블록도를 나타낸다. 또한, 도 21에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 도 38에 도시되는 제3 실시 형태의 제1 패턴에 있어서의 정보 처리 컨트롤러(311) 중, 메인 프로세서(42)가 실행 가능한 기능에 있어서는, 온도 이상 대응 처리 제어부(216) 대신에, 전력 이상 대응 처리 제어부(356)가 설치되고, 논리 쓰레드 관리 처리부(217) 대신에, 논리 쓰레드 관리 처리부(357)가 설치되고, 온도 관리 정보 송수신 제어부(214) 대신에, 전력 관리 정보 송수신 제어부(358)가 설치되어 있는 것 이외에는, 기본적으로 도 21을 이용하여 설명한 경우와 마찬가지이다. 또한, 제3 실시 형태의 제1 패턴에 있어서의 정보 처리 컨트롤러(311)가 실행 가능한 기능에 있어서는, 도 21을 이용하여 설명한 온도 모니터 처리부(122)가 실현 가능한 기능 대신에, 전력 관리 처리부(331)가 실행 가능한 기능인, 전력 정보 취득부(351), 인터럽트 제어부(352), 타이머(353), 전력 관리 테이블(354) 및, 전력 상승 검출부(355)가 설치되어 있다.
전력 정보 취득부(351)는, 인터럽트 제어부(352)의 처리에 의해 제어되는 타이밍에서, 전력 측정부(321)로부터 공급되는 전력 정보를 취득하여, 전력 정보 테이블(354)을 갱신한다. 인터럽트 제어부(352)는, 타이머(353)를 참조하여, 전력 정보 취득부(351)에 대하여 타이머 인터럽트를 거는 것과 함께, 전력 상승 검출부 (355)로부터 공급되는 정보에 기초하여, 연산 처리부(161) 및 전력 이상 대응 처리 제어부(356)에 인터럽트를 건다.
전력 관리 정보 송수신 제어부(214)는, 전력 이상 대응 처리 제어부(356)의 제어에 기초하여, 통신부(16)를 통하여, 전력 관리 테이블 또는 전력 관리를 위해 생성된 각종 커맨드(소프트웨어 셀)의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로의 송신을 제어함과 함께, 통신부(16)를 통하여, 다른 정보 처리 장치(301)의 전력 관리 테이블 또는 전력 관리를 위한 각종 커맨드(소프트웨어 셀) 등의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로부터의 수신을 제어한다. 이하, 전력 관리 테이블 또는 전력 관리를 위해 생성된 각종 커맨드(소프트웨어 셀) 등, 네트워크(2)에 의해서 접속된 복수의 정보 처리 장치(301)의 전력 관리와 전력 관리의 결과 실행되는 분산 처리의 제어에 관계되는 정보를 개개로 구별할 필요가 없는 경우, 전력 관리 정보라고 총칭하는 것으로 한다.
전력 관리 테이블(354)은, 정보 처리 컨트롤러(311)에 있어서의 소비 전력 관리를 행하기 위한 정보가 기재되는 테이블로서, 자기 자신이 슬레이브 장치일 때, 자기 자신의 전력 정보를 기록하고, 자기 자신이 마스터 장치일 때, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(301)에 있어서의 전력 정보를 기록하고 있다. 전력 정보는, 도 40에 도시되는 바와 같이, 정보 처리 컨트롤러(311)를 식별하기 위한 컨트롤러 ID, AC를 전원으로 하고 있을 때의 소비 전력 상한, 배터리를 전원으로 하고 있을 때의 소비 전력 상한, 전지를 전원으로 하고 있을 때의 소비 전력 상한, AC 전원, 배터리(73), 전지 등 중, 어느 전원이 접속되어 있는지를 나 타내는 전원 접속 정보, 및 현재의 처리에 있어서의 소비 전력의 값 등의 정보를 포함하는 것이다. AC 전원을 전원으로 하고 있을 때의 소비 전력 상한은, AC 전원 사용시에 정상적인 동작을 행하기 위해 요구되는 소비 전력의 상한값이고, 정보 처리 장치의 설계시에 미리 설정되는 것이다. 또한, AC 전원시의 소비 전력 상한은, 정상이고 또한 효율적인 동작을 행하기 위해 바람직한 소비 전력 상한값이어도 좋다. 배터리(73)를 전원으로 하고 있을 때의 소비 전력 상한, 및 전지를 전원으로 하고 있을 때의 소비 전력 상한에 대해서도 마찬가지다. 또한, 전원 접속 정보는, 정보 처리 장치(301)의 설계시에 미리 설정되는 경우도 있고, 정보 처리 장치(301)가 복수의 전원 소스에 대응하고 있는 경우에는, 적절하게 변화하는 경우도 있을 수 있다. 현재의 소비 전력은, 전력 측정부(321)에 의해 측정된 소비 전력이고, 당연히 정보 처리 장치의 동작 상황에 따라서 변동하는 값이다.
전력 상승 검출부(355)는, 자기 자신이 마스터 장치인 경우, 전력 관리 테이블(354)을 참조하여, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(301)의 전력 검출 결과 중, 설정되어 있는 상한값을 초과한 것이 있었던 경우, 인터럽트 제어부(352)에 소비 전력량의 이상이 검출된 것을 통지하여, 연산 처리부(161) 및 전력 이상 대응 처리 제어부(356)에 인터럽트를 걸게 한다.
전력 이상 대응 처리 제어부(356)는, 자기 자신이 마스터 장치이고, 인터럽트 제어부(352)에 의해 인터럽트가 걸린 경우, 전력 관리 테이블(354)을 참조하여, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(301) 중 소비 전력량의 이상이 검출된 것이, 어느 정보 처리 장치(301)인지를 검출하고, 검출 결과에 기초하여 논 리 쓰레드 관리 처리부(357)를 제어하고, 필요에 따라, 처리를 일단 정지시키거나, 서브 프로세서(43) 중 어느 하나와의 실행되고 있는 쓰레드의 이동 또는 교환을 제어한다.
논리 쓰레드 관리 처리부(357)는, 연산 처리부(161)에 의해 실행되는 어플리케이션 프로그램에 대응하는 논리 쓰레드의 생성 및 삭제를 행함과 함께, 자기 자신이 마스터 장치인 경우, 네트워크(2)에 접속되어 있는 정보 처리 장치(301) 중의 어느 하나에 있어서 실행되는 분산 처리에 대응하는 논리 쓰레드의 상태 감시와 동작 제어를 행한다. 논리 쓰레드 관리 처리부(357)는, 자기 자신이 마스터 장치인 경우, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(301)의 관리 정보가 기재된 테이블과, 실행되는 논리 쓰레드마다 논리 쓰레드의 실행에 필요한 정보가 기재된 테이블을 작성하고, 필요에 따라 테이블의 정보를 참조하여 갱신하는 것에 의해, 논리 쓰레드의 실행을 제어한다.
또한, 논리 쓰레드 관리 처리부(357)는, 자기 자신이 마스터 장치인 경우, 필요에 따라 다른 정보 처리 장치(301)에 있어서 실행되고 있는 쓰레드의 처리를 제어하기 위한 소프트웨어 셀을 생성하고, 통신부(16)를 통하여 생성된 소프트웨어 셀을 송신한다. 또한, 논리 쓰레드 관리 처리부(357)는, 자기 자신이 슬레이브 장치인 경우, 통신부(16)를 통하여 마스터 장치인 정보 처리 장치(301)로부터 송신된 소프트웨어 셀의 공급을 받아, 소프트웨어 셀의 내용에 기초한 분산 처리를 서브 프로세서(43)에 실행시킴과 함께, 필요에 따라 회신이나 응답에 대응하는 소프트웨어 셀을 생성하고, 통신부(16)를 통하여 생성된 소프트웨어 셀을 송신한다. 또한, 논리 쓰레드 관리 처리부(357)는, 자기 자신이 마스터 장치인지 슬레이브 장치인지에 상관없이, 필요에 따라, 통신부(16)에 의해 수신된 다른 정보 처리 장치(101)에 있어서 실행된 쓰레드에 관한 정보를 취득한다.
또한, 도 38에 있어서, 이들의 기능을 실현하는 하드웨어가 상술하는 바와 같지 않은 경우, 예를 들면, 메인 프로세서(42)에 의해 실현되는 기능 중의 일부가 전력 관리 처리부(331)에 의해 실현되거나, 전력 관리 처리부(331)에 의해 실현되는 기능 중의 일부가 메인 프로세서(42)에 의해 실현되는 경우나, 이들의 기능이 각각 상이한 하드웨어에 의해 실현되는 경우 등도, 본 발명은 적용 가능한 것은 물론이다.
다음으로, 도 41 내지 도 44의 플로우차트를 참조하여, 제3 실시 형태의 제1 패턴에 있어서의 동작을 설명한다.
도 41의 플로우차트를 참조하여, 도 38에 도시되는 제3 실시 형태의 정보 처리 장치(301)가 실행하는 어플리케이션 프로그램 실행 처리 2에 대하여 설명한다. 여기서는, 전력 관리 프로그램이, 정보 처리 장치(301)의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주 프로그램인 것으로서 설명한다.
단계 S301에 있어서, 연산 처리부(161)는, 유저에 의해, 어플리케이션 프로그램의 실행이 명령되었는지의 여부를 판단한다. 즉, 단계 S301에 있어서, 메인 프로세서(42)는, 조작 입력부(15)로부터 버스(14) 및 버스(41)를 통하여 공급되는 신호에 기초하여, 어플리케이션 프로그램의 실행이 명령되었는지의 여부를 판단한다. 단계 S301에 있어서, 어플리케이션 프로그램의 실행이 명령되지 않았다고 판 단된 경우, 어플리케이션 프로그램의 실행이 명령되었다고 판단될 때까지 단계 S301의 처리가 반복된다.
단계 S301에 있어서, 어플리케이션 프로그램의 실행이 명령되었다고 판단된 경우, 단계 S302에 있어서, 연산 처리부(161)는, 논리 쓰레드의 서브 프로세서에의 할당 등을 설정하고, 논리 쓰레드의 설정 정보를 논리 쓰레드 관리 처리부(357)에 공급한다.
단계 S303에 있어서, 논리 쓰레드 관리 처리부(357)는, 논리 쓰레드가 할당된 서브 프로세서(43)의 로컬 스토리지(51)의 코드 영역(187) 및 데이터 영역(188)에, 할당된 처리를 실행하기 위한 프로그램이나 데이터를 로드시킨다.
단계 S304에 있어서, 연산 처리부(161) 및 논리 쓰레드 관리 처리부(357)는, 서브 프로세서(43)에 의한 처리를 포함시킨 어플리케이션 프로그램의 실행을 제어한다. 서브 프로세서(43)의 연산 처리부(181)는, 할당된 처리를 실행한다.
그런데, 전력 관리 프로그램은, 정보 처리 장치(301)의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주 프로그램이기 때문에, 단계 S301 내지 단계 S304의 처리가 실행되고 있는 동안에도 처리가 실행되고 있다. 전력 관리 프로그램에 의한 마스터 장치의 전력 정보 관리 처리에 대해서는 도 42의 플로우차트를 이용하고, 또한 슬레이브 장치의 전력 정보 관리 처리에 대해서는 도 44의 플로우차트를 참조하여, 각각 후술한다.
단계 S305에 있어서, 연산 처리부(161)는, 인터럽트 제어부(352)에 의해, 소비 전력량의 이상 발생을 위한 인터럽트가 있는지의 여부를 판단한다. 단계 S5에 있어서, 소비 전력량의 이상 발생을 위한 인터럽트가 없다고 판단된 경우, 처리는 후술하는 단계 S308로 진행한다.
단계 S305에 있어서, 소비 전력량의 이상 발생을 위한 인터럽트가 있었다고 판단된 경우, 인터럽트에 의해 실행 중인 처리가 정지되므로, 단계 S306에 있어서, 연산 처리부(161)는, 인터럽트가 해제되었는지의 여부를 판단한다. 단계 S306에 있어서, 인터럽트가 해제되지 않았다고 판단된 경우, 인터럽트가 해제되었다고 판단될 때까지 단계 S306의 처리가 반복된다.
단계 S306에 있어서, 인터럽트가 해제되었다고 판단된 경우, 단계 S307에 있어서, 연산 처리부(161)는, 필요에 따라 논리 쓰레드의 설정 정보를 재차 논리 쓰레드 관리 처리부(357)에 공급하기 때문에, 논리 쓰레드 관리 처리부(357)는 논리 쓰레드 관리에 관한 테이블을 갱신한다.
단계 S305에 있어서, 소비 전력량의 이상 발생을 위한 인터럽트가 없다고 판단된 경우 또는 단계 S307의 처리의 종료 후, 단계 S308에 있어서, 연산 처리부(161)는 어플리케이션 프로그램의 처리가 종료되었는지의 여부를 판단한다. 단계 S308에 있어서, 어플리케이션 프로그램의 처리가 종료되지 않았다고 판단된 경우, 처리는 단계 S304로 되돌아가, 그 이후의 처리가 반복된다. 단계 S308에 있어서, 어플리케이션 프로그램의 처리가 종료되었다고 판단된 경우, 처리가 종료된다.
이러한 처리에 의해, 메인 프로세서(42)에 의해 실행되는 어플리케이션 프로그램에 대응하는 분산 처리가, 서브 프로세서(43) 중의 선택된 것에 의해 실행된다.
다음으로, 도 42의 플로우차트를 참조하여, 마스터 장치의 전력 정보 관리 처리에 대하여 설명한다.
단계 S321에 있어서, 전력 정보 취득부(351)는, 인터럽트 제어부(352)로부터 타이머 인터럽트가 들어왔는지의 여부를 판단한다.
단계 S321에 있어서, 타이머 인터럽트가 들어오지 않았다고 판단된 경우, 단계 S322에 있어서, 전력 관리 정보 송수신 제어부(358)는, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로부터, 전력 관리 테이블을 수신했는지의 여부를 판단한다. 단계 S322에 있어서, 전력 관리 테이블을 수신하지 않았다고 판단된 경우, 처리는 단계 S321로 되돌아가, 그 이후의 처리가 반복된다. 단계 S322에 있어서, 전력 관리 테이블을 수신했다고 판단된 경우, 처리는 후술하는 단계 S324로 진행한다.
단계 S321에 있어서, 타이머 인터럽트가 들어왔다고 판단된 경우, 단계 S323에 있어서, 전력 정보 취득부(351)는, 전력 측정부(321)로부터, 전력의 측정 결과를 나타내는 정보를 취득한다.
단계 S322에 있어서, 전력 관리 테이블을 수신했다고 판단된 경우 또는 단계 S323의 처리의 종료 후, 단계 S324에 있어서, 전력 정보 취득부(351)는, 단계 S322에 있어서 수신된 다른 정보 처리 장치(301)의 전력 관리 테이블 또는 단계 S323에 있어서 취득된 자기 자신의 전력 정보에 기초하여, 전력 관리 테이블(354)을 갱신한다.
단계 S325에 있어서, 전력 상승 검출부(355)는, 전력 관리 테이블(354)을 참 조하여, 전력 정보에 이상값이 있는지의 여부, 즉, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)에 설치되어 있는 전력 측정부(321)에 의해 검출된 전력 검출 결과 중, 미리 설정되어 있는 상한값을 초과한 것이 있는지의 여부를 판단한다. 단계 S325에 있어서, 전력 정보에 이상값이 없다고 판단된 경우, 처리는 단계 S321로 되돌아가, 그 이후의 처리가 반복된다.
단계 S325에 있어서, 전력 정보에 이상값이 있었다고 판단된 경우, 단계 S326에 있어서, 전력 상승 검출부(355)는, 인터럽트 제어부(352)에, 이상 전력의 상승이 검출된 것을 통지하여, 연산 처리부(161) 및 전력 이상 대응 처리 제어부(356)에 인터럽트를 걸게 한다. 인터럽트 제어부(352)는, 전력 이상 대응 처리 제어부(356) 및 연산 처리부(161)에 대하여 인터럽트를 걸어, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리를 정지시킴과 함께, 전력 이상 대응 처리 제어부(356)에 대하여 이상 발생시의 처리를 개시시킨다.
단계 S327에 있어서, 도 43을 이용하여 후술하는 이상 발생시의 처리 5가 실행된다.
단계 S328에 있어서, 전력 이상 대응 처리 제어부(356)는, 단계 S327에 있어서 실행된 이상 발생시의 처리 5에 기초하여 논리 쓰레드 관리 처리부(357)를 제어하고, 필요에 따라 논리 쓰레드 관리에 관한 테이블을 갱신시킨다.
단계 S329에 있어서, 인터럽트 제어부(352)는, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리에 대한 인터럽트를 해제하고, 처리는 단계 S321로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 네트워크(2)에 접속되어 있는 마스터 장치인 정보 처리 장치(301)에 있어서, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(301)의 전력 측정부(321)에 의해 검출된 전력 정보에 기초하여 갱신된 전력 관리 테이블을 취득하여, 전력 관리 테이블(354)로서 관리할 수 있게 이루어지고, 마스터 장치에 있어서 기억되어 있는 전력 관리 테이블(354)에 기초하여, 이상 발생시의 인터럽트 처리가 실행되는지의 여부가 판단된다.
다음으로, 도 43의 플로우차트를 참조하여, 도 42의 단계 S327에 있어서 실행되는 이상 발생시의 처리 5에 대하여 설명한다.
단계 S341에 있어서, 전력 이상 대응 처리 제어부(356)는, 전력 관리 테이블(354)를 참조하여, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(311)에 포함되는 모든 서브 프로세서(43)의 처리의 이동이 가능한지의 여부를 판단한다. 단계 S341에 있어서, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(311)에 포함되는 모든 서브 프로세서(43)의 처리의 이동이 가능하지 않았다고 판단된 경우, 처리는 후술하는 단계 S346으로 진행한다.
단계 S341에 있어서, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(311)에 포함되는 모든 서브 프로세서(43)의 처리의 이동이 가능하다고 판단된 경우, 단계 S342에 있어서, 전력 이상 대응 처리 제어부(356)는, 전력 관리 테이블(354)을 참조하여, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 정보 처리 컨트롤러(311) 중으로부터, 처리의 이동처인 정보 처리 컨트롤러(311)를 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(357)에 공급한다. 구체적으로는, 전력 이상 대응 처리 제어부(356)는, 전력 관리 테이블(354)을 참조하여, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 정보 처리 컨트롤러(311) 중, 현재 동작 중인 서브 프로세서(43)의 처리를 실행 가능한 정보 처리 컨트롤러(311)로서, 현재 가장 전력 소비량이 적은 정보 처리 컨트롤러(311)를 선택하도록 이루어져 있다. 또한, 이 조건을 충족시키는 정보 처리 컨트롤러(311)가 복수 있는 경우, 전력 이상 대응 처리 제어부(356)는, 예를 들면, 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택하도록 해도 좋다. 또한, 전력 이상 대응 처리 제어부(356)는, 배터리 또는 전지로 동작하고 있는 다른 정보 처리 장치(301)의 정보 처리 컨트롤러(311)보다도, AC 전원으로 동작하고 있는 다른 정보 처리 장치(301)의 정보 처리 컨트롤러(311)를 우선적으로 처리의 이동처로서 선택하도록 해도 좋다.
또한, 처리의 이동처로서 선택된 정보 처리 컨트롤러(311)에 있어서, 어느 서브 프로세서(43)에 분산 처리가 할당될지는, 처리의 이동처로서 선택된 정보 처리 컨트롤러(311)의 메인 프로세서(42)의 논리 쓰레드 관리 처리부(357)가 결정한다.
단계 S343에 있어서, 논리 쓰레드 관리 처리부(357)는, 전력 상한값을 초과한 정보 처리 컨트롤러(311)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다.
전력 상한값을 초과한 정보 처리 컨트롤러(311)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리 부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(357)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 전력 상한값을 초과한 정보 처리 컨트롤러(311)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(301)의 논리 쓰레드 관리 처리부(357)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S344에 있어서, 논리 쓰레드 관리 처리부(357)는, 전력 상한값을 초과 한 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 동작을 정지시킨다.
단계 S345에 있어서, 논리 쓰레드 관리 처리부(357)는, 이동처인 정보 처리 컨트롤러(311)의 서브 프로세서로서 선택된 서브 프로세서(43)에, 단계 S343의 처리에 의해 퇴피된 콘텍스트를 리스토어한다. 즉, 논리 쓰레드 관리 처리부(357)는, 처리의 이동처인 서브 프로세서(43)가 마스터 장치 내의 서브 프로세서(43)일 때, 버스(41)를 통하여, 이동처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트를 공급하고, 처리의 이동처인 서브 프로세서(43)가 슬레이브 장치 내의 서브 프로세서(43)일 때, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 슬레이브 장치로서 동작하고 있는 정보 처리 장치(301)에 포함되는 이동처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트를 공급한다. 이동처인 서브 프로세서로서 선택된 서브 프로세서(43)에 있어서는, 공급된 콘텍스트를 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억하고, 처리는 도 42의 단계 S327로 되돌아가, 단계 S328로 진행한다.
단계 S341에 있어서, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(311)에 포함되는 모든 서브 프로세서(43)의 처리의 이동이 가능하지 않았다고 판단된 경우, 단계 S346에 있어서, 전력 이상 대응 처리 제어부(356)는, 전력 관리 테이블(354)을 참조하여, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 정보 처리 컨트롤러(311)의 서브 프로세서(43) 중으로부터, 처리의 교환처로 되는 정보 처리 컨트롤러(311)의 서브 프로세서(43)를 선택하고, 선택 결과를 논리 쓰레드 관리 처 리부(357)에 공급한다. 구체적으로는, 전력 이상 대응 처리 제어부(356)는, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 정보 처리 컨트롤러(311) 중으로부터, 전력 측정 결과가 가장 낮은 것을 교환처인 정보 처리 컨트롤러(311)로서 우선적으로 선택하거나, 또는 배터리 또는 전지로 동작하고 있는 다른 정보 처리 장치(301)의 정보 처리 컨트롤러(311)보다도, AC 전원으로 동작하고 있는 다른 정보 처리 장치(301)의 정보 처리 컨트롤러(311)를 우선적으로 처리의 교환처로서 선택하도록 이루어져 있고, 이 조건을 충족시키는 정보 처리 컨트롤러(311)가 복수 있는 경우, 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택하도록 이루어져 있다.
또한, 처리에 필요한, 공통으로 사용하는 프로그램과 모델 데이터가, 분산 처리가 할당되어 있지 않은 서브 프로세서(43)의 로컬 스토리지(51) 중의 어느 하나에 미리 공급되어 있는 경우, 공통으로 사용하는 프로그램과 모델 데이터가 로컬 스토리지(51)에 보존되어 있는 서브 프로세서(43)를 갖는 정보 처리 컨트롤러(311)가 우선해서 선택되도록 해도 좋다.
또한, 처리의 교환처로서 선택된 정보 처리 컨트롤러(311)에 있어서, 어느 서브 프로세서(43)에 분산 처리가 할당될지는, 처리의 교환처로서 선택된 정보 처리 컨트롤러(311)의 메인 프로세서(42)의 논리 쓰레드 관리 처리부(357)가 결정한다.
단계 S347에 있어서, 논리 쓰레드 관리 처리부(357)는, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(311)의 서브 프로세서(43)에 의해 실행되고 있던 처 리에 관한 콘텍스트를 퇴피시킨다.
소비 전력량의 이상이 발생한 정보 처리 컨트롤러(311)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우, 스택 영역(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(357)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(311)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역 (187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(301)의 논리 쓰레드 관리 처리부(357)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S348에 있어서, 논리 쓰레드 관리 처리부(357)는, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 동작을 정지시킨다.
단계 S349에 있어서, 논리 쓰레드 관리 처리부(357)는, 처리의 교환처로서 선택된 정보 처리 컨트롤러(311)의 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다.
처리의 교환처로서 선택된 정보 처리 컨트롤러(311)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(357)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 처리의 교환처로서 선택된 정보 처리 컨트롤러(311)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(301)의 논리 쓰레드 관리 처리부(357)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S350에 있어서, 논리 쓰레드 관리 처리부(357)는, 처리의 교환처로서 선택된 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 동작을 정지시킨다.
단계 S351에 있어서, 논리 쓰레드 관리 처리부(357)는, 퇴피된 2개의 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 콘텍스트를 교환하여 리스토어시킨다. 즉, 논리 쓰레드 관리 처리부(357)는, 처리의 교환처로서 선택된 정보 처리 컨트롤러(311)의 서브 프로세서(43)에, 단계 S347의 처리에 의해 퇴피된 콘텍스트를 리스토어함과 함께, 전력 상한값을 초과한 정보 처리 컨트롤러(311)의 서브 프로세서(43)에, 단계 S349의 처리에 의해 퇴피된 콘텍스트를 리스토어한다. 즉, 논리 쓰 레드 관리 처리부(357)는, 전력 상한값을 초과한 정보 처리 컨트롤러(311) 또는 처리의 이동처인 정보 처리 컨트롤러(311)가 마스터 장치 내의 정보 처리 컨트롤러(311)일 때, 버스(41)를 통하여, 이동처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트 중 대응하는 것을 공급하고, 전력 상한값을 초과한 정보 처리 컨트롤러(311) 또는 처리의 이동처인 정보 처리 컨트롤러(311)가 슬레이브 장치 내의 정보 처리 컨트롤러(311)일 때, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 슬레이브 장치로서 동작하고 있는 정보 처리 장치(301)에 포함되는 이동처인 정보 처리 컨트롤러(311)의 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트 중 대응하는 것을 공급한다. 각각의 정보 처리 컨트롤러(311)의 서브 프로세서(43)에는, 공급된 콘텍스트를 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억하고, 처리는 도 42의 단계 S327로 되돌아가, 단계 S78로 진행한다.
이러한 처리에 의해, 소비 전력량의 이상의 발생 개소와, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 각각의 정보 처리 컨트롤러(311)에 있어서의 동작 및 전력 측정값에 기초하여, 분산 처리 중의 일부가 이동되는지, 또는 분산 처리 중의 일부가 교환되는지가 판단되고, 처리의 이동처 또는 교환처가 선택되도록 이루어져 있다.
다음으로, 도 44의 플로우차트를 참조하여, 도 42를 이용하여 설명한 마스터 장치의 전력 정보 관리 처리와 병행하여 실행되는, 슬레이브 장치의 전력 정보 관리 처리에 대하여 설명한다.
단계 S381에 있어서, 슬레이브 장치로서 동작하고 있는 정보 처리 장치(301)의 전력 정보 취득부(351)는, 인터럽트 제어부(352)로부터, 타이머 인터럽트가 들어왔는지의 여부를 판단한다. 단계 S381에 있어서, 타이머 인터럽트가 들어오지 않았다고 판단된 경우, 타이머 인터럽트가 들어왔다고 판단될 때까지 단계 S381의 처리가 반복된다.
단계 S381에 있어서, 타이머 인터럽트가 들어왔다고 판단된 경우, 단계 S382에 있어서, 전력 정보 취득부(351)는, 전력 측정부(321)의 각각으로부터 전력 정보를 취득한다.
단계 S383에 있어서, 전력 정보 취득부(351)는, 단계 S382에 있어서 취득된 전력 정보에 기초하여 전력 관리 테이블(354)을 갱신한다.
단계 S384에 있어서, 전력 관리 정보 송수신 제어부(358)는, 단계 S383에 있어서 갱신된 전력 관리 테이블(354)을, 통신부(16) 및 네트워크(2)를 통하여 마스터 장치로서 동작하고 있는 정보 처리 장치(301)로 송신하고, 처리는 단계 S381로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 슬레이브 장치의 전력 관리 테이블이 마스터 장치로 송신된다. 송신된 각각의 슬레이브 장치의 전력 관리 테이블은, 마스터 장치에서 관리된다.
도 41 내지 도 44를 이용하여 설명한 처리에 의해, 정보 처리 컨트롤러(311)의 소비 전력을 측정하는 전력 측정부(321)가 설치되어 있는 정보 처리 장치(301)가 복수개 네트워크(2)에 접속되어 있는 제3 실시 형태에 있어서, 제1 패턴의 전력 정보 및 처리의 이동 또는 교환의 제어를 이용하여, 실행 중인 처리를 정지시키는 것을 최소한으로 억제하면서, 열 폭주 등에 의한 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
다음으로, 도 45에, 제3 실시 형태의 제2 패턴에 있어서의 정보 처리 컨트롤러(311)가 실행 가능한 기능을 설명하기 위한 기능 블록도를 나타낸다. 또한, 도 38에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 도 45에 도시되는 제3 실시 형태의 제2 패턴에 있어서의 정보 처리 컨트롤러(311) 중, 메인 프로세서(42)가 실행 가능한 기능에 있어서는, 기억부(213), 전력 관리 정보 송수신 제어부(358) 및 전력 이상 대응 처리 제어부(356) 대신에, 기억부(371), 전력 관리 정보 송수신 제어부(372) 및 전력 이상 대응 처리 제어부(374)가 설치되어 있는 것 이외에는, 기본적으로 도 38을 이용하여 설명한 경우와 마찬가지이고, 전력 관리 처리부(331)이 실현 가능한 기능은, 전력 관리 테이블(354) 대신에, 전력 관리 테이블(373)이 설치되어 있는 것 이외에는, 도 38을 이용하여 설명한 경우와 마찬가지이다.
또한, 도 45에 있어서, 이들 기능을 실현하는 하드웨어가 상술하는 바와 같지 않은 경우, 예를 들면, 메인 프로세서(42)에 의해 실현되는 기능 중의 일부가 전력 관리 처리부(331)에 의해 실현되거나, 전력 관리 처리부(331)에 의해 실현되는 기능 중의 일부가 메인 프로세서(42)에 의해 실현되는 경우나, 이들의 기능이 각각 상이한 하드웨어에 의해 실현되는 경우 등도, 본 발명은 적용 가능한 것은 물론이다.
기억부(371)는, 메인 메모리(12) 중의 적어도 일부의 기억 영역에 대응하고, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 장치 정보 또는 장치 정보 중의 일부의 정보를 기억함과 함께, 전력 관리 정보 송수신 제어부(372)가 수신한 다른 정보 처리 장치(301)에 있어서의 전력 관리 테이블을 일시 기억한다. 전력 관리 정보 송수신 제어부(372)는, 전력 이상 대응 처리 제어부(374)의 제어에 기초하여, 통신부(16)를 통하여, 전력 관리 정보 또는 전력 관리를 위해 생성된 각종 커맨드(소프트웨어 셀)의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로의 송신을 제어함과 함께, 통신부(16)를 통하여, 다른 정보 처리 장치(301)로부터 송신된 전력 관리 정보 또는 전력 관리를 위한 각종 커맨드(소프트웨어 셀) 등의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로부터의 수신을 제어한다.
전력 이상 대응 처리 제어부(374)는, 자기 자신의 전력 정보 취득부(351)에 의해 취득된 정보에 기초하여, 전력 상승 검출부(355)에 의해 전력 이상 대응 처리의 발생이 검출되고, 인터럽트 제어부(352)에 의해 인터럽트 처리가 실행된 경우, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301) 전체에 대하여, 전력 관리 정보의 송신을 요구하는 커맨드를 생성하고, 전력 관리 정보 송수신 제어부(372)를 제어하여, 생성한 커맨드를 송신시킨다. 또한, 전력 이상 대응 처리 제어부(374)는, 전력 관리 정보 송수신 제어부(372)가, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로부터 전력 관리 정보의 송신을 요구하는 커맨드를 수신한 경우, 전력 관리 테이블(373)에 기억되어 있는 전력 관리 테이블에 기초하여, 도 39를 이용하여 설명한 전력 정보 회신 커맨드를 생성하고, 전력 관리 정보 송수신 제 어부(372)를 제어하여, 생성한 전력 정보 회신 커맨드를 송신시킨다.
전력 관리 테이블(373)은, 자기 자신이 마스터 장치인지 슬레이브 장치인지에 상관없이, 자기 자신의 전력 정보 취득부(351)에 의해 취득된 정보에 기초하여 갱신되는 자기 자신의 전력 관리 테이블을 기억한다.
다음으로, 도 46 및 도 47의 플로우차트를 참조하여, 제3 실시 형태의 제2 패턴에 있어서의 동작을 설명한다. 제2 패턴에 있어서도, 어플리케이션 프로그램 실행 처리는 도 41을 이용하여 설명한 제1 패턴에 있어서의 경우와 기본적으로 마찬가지이므로, 그 설명은 생략한다.
도 46의 플로우차트를 참조하여, 전력 정보 관리 처리 2에 대하여 설명한다.
단계 S401에 있어서, 전력 정보 취득부(351)는, 인터럽트 제어부(352)로부터, 타이머 인터럽트가 들어왔는지의 여부를 판단한다. 단계 S401에 있어서, 타이머 인터럽트가 들어오지 않았다고 판단된 경우, 타이머 인터럽트가 들어왔다고 판단될 때까지 단계 S401의 처리가 반복된다.
단계 S401에 있어서, 타이머 인터럽트가 들어왔다고 판단된 경우, 단계 S402 내지 단계 S404에 있어서, 도 42의 단계 S323 내지 단계 S325와 기본적으로 마찬가지의 처리가 실행된다. 즉, 타이머 인터럽트가 들어왔다고 판단된 경우, 전력 정보 취득부(351)는, 전력 측정부(321)로부터, 전력의 측정값을 취득하여, 전력 관리 테이블(373)을 갱신한다. 그리고, 전력 상승 검출부(355)는, 전력 관리 테이블(373)을 참조하여, 전력 측정값을 나타내는 정보에 이상값이 있는지의 여부를 판단한다.
단계 S404에 있어서, 전력 측정값를 나타내는 정보에 이상값이 없다고 판단된 경우, 단계 S405에 있어서, 전력 이상 대응 처리 제어부(374)는, 전력 관리 정보 송수신 제어부(372)가, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로부터 전력 관리 정보의 송신을 요구하는 커맨드를 수신했는지의 여부를 판단한다. 단계 S405에 있어서, 다른 정보 처리 장치(301)로부터 전력 관리 정보의 송신을 요구하는 커맨드를 수신하지 않았다고 판단된 경우, 처리는 단계 S401로 되돌아가, 그 이후의 처리가 반복된다.
단계 S405에 있어서, 다른 정보 처리 장치(301)로부터 전력 관리 정보의 송신을 요구하는 커맨드를 수신했다고 판단된 경우, 단계 S406에 있어서, 전력 이상 대응 처리 제어부(374)는, 전력 관리 테이블(373)에 기억되어 있는 전력 관리 테이블에 기초하여, 도 39를 이용하여 설명한 전력 정보 회신 커맨드를 생성하고, 전력 관리 정보 송수신 제어부(372)를 제어하여, 생성한 전력 정보 회신 커맨드를 송신시키고, 처리는 단계 S401로 되돌아가, 그 이후의 처리가 반복된다.
단계 S404에 있어서, 전력 측정값를 나타내는 정보에 이상값이 있었다고 판단된 경우, 단계 S407에 있어서, 전력 상승 검출부(355)는, 인터럽트 제어부(352)에, 이상 전력 측정값의 상승이 검출된 것을 통지하여, 연산 처리부(161) 및 전력 이상 대응 처리 제어부(374)에 인터럽트를 걸게 한다. 인터럽트 제어부(352)는, 전력 이상 대응 처리 제어부(374) 및 연산 처리부(161)에 대하여 인터럽트를 걸어, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리를 정지시킴과 함께, 전력 이상 대응 처리 제어부(374)에 대하여 이상 발생시의 처리를 개시시킨다.
단계 S408에 있어서, 도 47를 이용하여 후술하는 이상 발생시의 처리 6이 실행된다.
단계 S409에 있어서, 전력 이상 대응 처리 제어부(374)는, 단계 S408에 있어서 실행된 이상 발생시의 처리 6에 기초하여 논리 쓰레드 관리 처리부(357)를 제어하고, 필요에 따라 논리 쓰레드 관리에 관한 테이블을 갱신시킨다.
단계 S410에 있어서, 인터럽트 제어부(352)는, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리에 대한 인터럽트를 해제하고, 처리는 단계 S401로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 각각이, 마스터 장치인지 슬레이브 장치인지에 상관없이, 자기 자신의 전력 측정부(321)의 각각에 의해 검출된 전력 정보에 기초하여 갱신된 전력 관리 테이블에 기초하여, 자기 자신의 소비 전력의 측정값의 이상을 검출하고, 이상 발생시에는, 인터럽트 처리가 실행되고, 후술하는 이상 발생시의 처리 6이 실행된다. 또한, 네트워크(2)에 접속되어 있는 다른 정보 처리장치로부터 전력 정보의 송신 요구를 받은 경우, 도 39를 이용하여 설명한 전력 정보 회신 커맨드가 생성되어, 송신 요구원의 정보 처리 장치(301)로 송신된다.
다음으로, 도 47의 플로우차트를 참조하여, 도 46의 단계 S408에 있어서 실행되는 이상 발생시의 처리 6에 대하여 설명한다.
단계 S431에 있어서, 전력 이상 대응 처리 제어부(374)는, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301) 전체에 대하여, 전력 관리 정보의 송신을 요구하는 커맨드를 생성하고, 전력 관리 정보 송수신 제어부(372)를 제어하여, 생성한 커맨드를 송신시킨다. 전력 관리 정보 송수신 제어부(372)는, 전력 관리 정보의 송신을 요구하는 커맨드를, 통신부(16) 및 네트워크(2)를 통하여 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301) 전체에 송신한다.
단계 S432에 있어서, 전력 관리 정보 송수신 제어부(372)는, 도 39을 이용하여 설명한 전력 정보 회신 커맨드를 수신하여, 전력 이상 대응 처리 제어부(374)에 공급한다.
단계 S433에 있어서, 전력 이상 대응 처리 제어부(374)는, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301) 전체로부터 송신된 전력 정보 회신 커맨드에 기초하여, 소비 전력값의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능한지의 여부를 판단한다.
단계 S433에 있어서, 처리의 이동이 가능하다고 판단된 경우, 단계 S434 내지 단계 S437에 있어서, 도 43의 단계 S342 내지 단계 S345와 기본적으로 마찬가지의 처리가 실행된다. 즉, 전력 관리 테이블(373)이 참조되어, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 정보 처리 컨트롤러(311) 중으로부터, 처리의 이동처인 정보 처리 컨트롤러(311)가 선택되고, 소비 전력의 상한값을 초과한 정보 처리 컨트롤러(311)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 소비 전력의 상한값을 초과한 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 동작이 정지되고, 퇴피된 콘텍스트가 이동처인 정보 처리 컨트롤러(311)의 서브 프로세서에 리스토어된다.
단계 S437의 처리의 종료 후, 처리는 도 46의 단계 S408로 되돌아가, 단계 S409로 진행한다.
단계 S433에 있어서, 처리의 이동이 가능하지 않았다고 판단된 경우, 단계 S438 내지 단계 S443에 있어서, 도 43의 단계 S346 내지 단계 S351과 기본적으로 마찬가지의 처리가 실행된다. 즉, 전력 관리 테이블(373)이 참조되어, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 정보 처리 컨트롤러(311) 중으로부터, 처리의 교환처인 정보 처리 컨트롤러(311)가 선택되고, 소비 전력의 상한값을 초과한 정보 처리 컨트롤러(311)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 소비 전력의 상한값을 초과한 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 동작이 정지된다.
그리고, 처리의 교환처로서 선택된 정보 처리 컨트롤러(311)의 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 처리의 교환처로서 선택된 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 동작이 정지되고, 퇴피된 2개의 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 콘텍스트가 교환되어 리스토어된다.
단계 S443의 처리의 종료 후, 처리는 도 46의 단계 S408로 되돌아가, 단계 S409로 진행한다.
이러한 처리에 의해, 소비 전력값의 이상이 발생한 정보 처리 컨트롤러(311)에 있어서, 네트워크(2)에 접속되어 있는 각각의 정보 처리 컨트롤러(311)의 그 때의 동작 및 각각의 프로세서의 전력 측정값에 관한 정보가 취득되고, 취득된 정보 에 기초하여, 분산 처리 중의 일부가 이동되는지, 또는 분산 처리 중의 일부가 교환되는지가 판단되고, 처리의 이동처 또는 교환처가 선택되도록 이루어져 있다.
도 45 내지 도 47를 이용하여 설명한 처리에 의해, 정보 처리 컨트롤러(311)에 전력 측정부(321)가 설치되어 있는 정보 처리 장치(301)가 복수개 네트워크(2)에 접속되어 있는 제3 실시 형태에 있어서, 제2 패턴의 전력 정보 및 처리의 이동 또는 교환의 제어를 이용하여, 열 폭주 등에 의한 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
다음으로, 도 48에, 제3 실시 형태의 제3 패턴에 있어서의 정보 처리 컨트롤러(311)가 실행 가능한 기능을 설명하기 위한 기능 블록도를 나타낸다. 또한, 도 38에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 도 48에 도시되는 제3 실시 형태의 제3 패턴에 있어서의 정보 처리 컨트롤러(311) 중, 메인 프로세서(42)가 실행 가능한 기능에 있어서는, 전력 관리 정보 송수신 제어부(385) 및 전력 이상 대응 처리 제어부(356) 대신에, 전력 관리 정보 송수신 제어부(391) 및 전력 이상 대응 처리 제어부(392)가 설치되어 있는 것 이외에는, 기본적으로, 도 21을 이용하여 설명한 경우와 마찬가지이고, 전력 관리 처리부(331)이 실현 가능한 기능은, 온도 관리 테이블(354) 대신에, 도 45를 이용하여 설명한 전력 관리 테이블(373)이 설치되어 있는 것 이외에는, 도 38을 이용하여 설명한 경우와 마찬가지이다.
또한, 도 48에 있어서, 이들의 기능을 실현하는 하드웨어가 상술하는 바와 같지 않은 경우, 예를 들면, 메인 프로세서(42)에 의해 실현되는 기능 중의 일부가 전력 관리 처리부(331)에 의해 실현되거나, 전력 관리 처리부(331)에 의해 실현되는 기능 중의 일부가 메인 프로세서(42)에 의해 실현되는 경우나, 이들의 기능이 각각 상이한 하드웨어에 의해 실현되는 경우 등도, 본 발명은 적용 가능한 것은 물론이다.
전력 관리 정보 송수신 제어부(391)는, 전력 이상 대응 처리 제어부(392)의 제어에 기초하여, 통신부(16)를 통하여, 전력 관리 정보 또는 전력 관리를 위해 생성된 각종 커맨드(소프트웨어 셀)의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로의 송신을 제어함과 함께, 통신부(16)를 통하여, 다른 정보 처리 장치(301)로부터 송신된 전력 관리 정보 또는 전력 관리를 위한 각종 커맨드(소프트웨어 셀) 등의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로부터의 수신을 제어한다.
전력 이상 대응 처리 제어부(392)는, 자기 자신의 전력 정보 취득부(351)에 의해 취득된 정보에 기초하여, 전력 상승 검출부(355)에 의해 소비 전력량의 이상의 발생이 검출되고, 인터럽트 제어부(352)에 의해 인터럽트 처리가 실행된 경우, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301) 전체에 대하여, 자기 자신의 서브 프로세서(43)에 있어서 실행되고 있는 논리 쓰레드의 이동 또는 교환을 요구하는 서브 프로세서 프로그램 이동 요구 커맨드를 생성하고, 전력 관리 정보 송수신 제어부(391)를 제어하여, 생성한 커맨드를 송신시킨다. 또한, 전력 이상 대응 처리 제어부(392)는, 전력 관리 정보 송수신 제어부(391)가, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로부터, 서브 프로세서 프로그램 이동 요구 커맨드를 수신한 경우, 전력 관리 테이블(373)에 기억되어 있는 전력 관리 테이블에 기초하여, 서브 프로세서 프로그램 이동 회신 커맨드를 생성하고, 전력 관리 정보 송수신 제어부(391)를 제어하여, 생성한 서브 프로세서 프로그램 이동 회신 커맨드를 송신시킨다.
서브 프로세서 프로그램 이동 요구 커맨드에는, 소비 전력량의 이상이 발생한 서브 프로세서에 있어서 실행되고 있는 처리(쓰레드)에 의한 서브 프로세서 사용율과, 로컬 스토리지 용량이 기재되어 있다.
또한, 서브 프로세서 프로그램 이동 회신 커맨드에는, 서브 프로세서 프로그램의 이동 요구를 받을지의 여부를 나타내는 정보(이동이 OK인가, 교환이면 OK인가, 또는 모두 NG인가)와, 서브 프로세서 프로그램의 이동 요구를 받는 경우에는, 서브 프로세서 프로그램의 이동 요구를 받는 서브 프로세서 ID가 포함된다. 전력 이상 대응 처리 제어부(392)는, 서브 프로세서 프로그램의 이동 요구를 받을지, 교환을 받을지, 또는 모두 거부할지를, 서브 프로세서 프로그램 이동 요구 커맨드에 기재되어 있는, 소비 전력량의 이상이 발생한 서브 프로세서에 있어서 실행되고 있는 처리(쓰레드)에 의한 서브 프로세서 사용율 및 로컬 스토리지 용량의 정보와, 자기 자신의 전력 관리 테이블(373)에 기억되어 있는 전력 관리 테이블을 기초로 판단한다.
전력 관리 테이블(373)은, 자기 자신이 마스터 장치인지 슬레이브 장치인지에 상관없이, 자기 자신의 전력 정보 취득부(351)에 의해 취득된 정보에 기초하여 갱신되는 자기 자신의 전력 관리 테이블을 기억한다.
다음으로, 도 49 및 도 50의 플로우차트를 참조하여, 제3 실시 형태의 제3 패턴에 있어서의 동작을 설명한다. 제3 패턴에 있어서도, 어플리케이션 프로그램 실행 처리는 도 41을 이용하여 설명한 제1 패턴에 있어서의 경우와 기본적으로 마찬가지이므로, 그 설명은 생략한다.
도 49의 플로우차트를 참조하여, 전력 정보 관리 처리 2에 대하여 설명한다.
단계 S461 내지 단계 S464에 있어서, 도 46의 단계 S401 내지 단계 S404와 기본적으로 마찬가지의 처리가 실행된다. 즉, 타이머 인터럽트가 들어왔다고 판단된 경우, 전력 정보 취득부(351)는, 전력 측정부(321)의 각각으로부터, 전력 정보를 취득하여, 전력 관리 테이블(373)을 갱신한다. 그리고, 전력 상승 검출부(355)는, 전력 관리 테이블(373)을 참조하여, 전력 정보에 이상값이 있는지의 여부를 판단한다.
단계 S464에 있어서, 전력 정보에 이상값이 없다고 판단된 경우, 단계 S465에 있어서, 전력 이상 대응 처리 제어부(392)는, 전력 관리 정보 송수신 제어부(391)가, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301)로부터, 서브 프로세서 프로그램 이동 요구 커맨드를 수신했는지의 여부를 판단한다. 단계 S465에 있어서, 다른 정보 처리 장치(301)로부터 서브 프로세서 프로그램 이동 요구 커맨드를 수신하지 않았다고 판단된 경우, 처리는 단계 S461로 되돌아가, 그 이후의 처리가 반복된다.
단계 S465에 있어서, 다른 정보 처리 장치(301)로부터 서브 프로세서 프로그램 이동 요구 커맨드를 수신했다고 판단된 경우, 단계 S466에 있어서, 전력 이상 대응 처리 제어부(392)는, 수신한 서브 프로세서 프로그램 이동 요구 커맨드에 기재되어 있는, 소비 전력량의 이상이 발생한 서브 프로세서에 있어서 실행되고 있는 처리(쓰레드)에 의한 서브 프로세서 사용율과, 로컬 스토리지 용량과, 전력 관리 테이블(373)에 기억되어 있는 자기 자신의 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 동작 상태를 나타내는 정보에 기초하여, 서브 프로세서 프로그램의 이동 요구를 받을지의 여부를 결정하여, 전력 정보 회신 커맨드를 생성하고, 전력 관리 정보 송수신 제어부(391)를 제어하여, 생성한 전력 정보 회신 커맨드를 송신시키고, 처리는 단계 S461로 되돌아가, 그 이후의 처리가 반복된다.
단계 S464에 있어서, 전력 정보에 이상값이 있었다고 판단된 경우, 단계 S467에 있어서, 전력 상승 검출부(355)는, 인터럽트 제어부(352)에, 이상 소비 전력의 상승이 검출된 것을 통지하여, 연산 처리부(161) 및 전력 이상 대응 처리 제어부(392)에 인터럽트를 걸게 한다. 인터럽트 제어부(352)는, 전력 이상 대응 처리 제어부(392) 및 연산 처리부(161)에 대하여 인터럽트를 걸어, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리를 정지시킴과 함께, 전력 이상 대응 처리 제어부(392)에 대하여 이상 발생시의 처리를 개시시킨다.
단계 S468에 있어서, 도 50을 이용하여 후술하는 이상 발생시의 처리 7이 실행된다.
단계 S469에 있어서, 전력 이상 대응 처리 제어부(392)는, 단계 S468에 있어서 실행된 이상 발생시의 처리 7에 기초하여 논리 쓰레드 관리 처리부(357)를 제어하고, 필요에 따라 논리 쓰레드 관리에 관한 테이블을 갱신시킨다.
단계 S470에 있어서, 인터럽트 제어부(352)는, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리에 대한 인터럽트를 해제하고, 처리는 단계 S461로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 각각이, 마스터 장치인지 슬레이브 장치인지에 상관없이, 자기 자신의 전력 측정부(321)의 각각에 의해 검출된 전력 정보에 기초하여 갱신된 전력 관리 테이블에 기초하여, 자기 자신의 전력 이상 대응 처리를 검출하고, 이상 발생시에는, 인터럽트 처리가 실행되고, 후술하는 이상 발생시의 처리 7이 실행된다. 또한, 네트워크(2)에 접속되어 있는 다른 정보 처리장치로부터, 서브 프로세서 프로그램 이동 요구 커맨드가 수신된 경우 전력에 정보 회신 커맨드가 생성되어, 송신 요구원의 정보 처리 장치(301)로 송신된다.
다음으로, 도 50의 플로우차트를 참조하여, 도 49의 단계 S468에 있어서 실행되는 이상 발생시의 처리 7에 대하여 설명한다.
단계 S481에 있어서, 전력 이상 대응 처리 제어부(392)는, 전력 관리 테이블(373)을 참조하여, 서브 프로세서 프로그램 이동 요구 커맨드를 생성하고, 전력 관리 정보 송수신 제어부(391)를 제어하여, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301) 전체에 대하여, 생성한 커맨드를 송신시킨다. 전력 관리 정보 송수신 제어부(391)는, 서브 프로세서 프로그램 이동 요구 커맨드를, 통신부(16) 및 네트워크(2)를 통하여, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(301) 전체에 송신한다.
단계 S482에 있어서, 전력 관리 정보 송수신 제어부(391)는, 서브 프로세서 프로그램 이동 회신 커맨드를 수신하여, 전력 이상 대응 처리 제어부(392)에 공급한다.
단계 S483에 있어서, 전력 이상 대응 처리 제어부(392)는, 단계 S482에 있어서 수신된 전력 정보 회신 커맨드에 기초하여, 소비 전력량의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능한지의 여부를 판단한다.
단계 S483에 있어서, 처리의 이동이 가능하다고 판단된 경우, 단계 S484 내지 단계 S487에 있어서, 도 47의 단계 S434 내지 단계 S437와 기본적으로 마찬가지의 처리가 실행된다. 즉, 전력 관리 테이블(373)이 참조되어, 네트워크(2)에 접속되어 있는 정보 처리 장치(301)의 정보 처리 컨트롤러(311)의 서브 프로세서(43) 중으로부터, 처리의 이동처인 정보 처리 컨트롤러(311)가 선택되고, 소비 전력의 상한값을 초과한 정보 처리 컨트롤러(311)의 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 소비 전력의 상한값을 초과한 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 동작이 정지되고, 퇴피된 콘텍스트가 이동처인 정보 처리 컨트롤러(311)의 서브 프로세서에 리스토어된다.
단계 S487의 처리의 종료 후, 처리는 도 49의 단계 S468로 되돌아가, 단계 S469로 진행한다.
단계 S483에 있어서, 처리의 이동이 가능하지 않았다고 판단된 경우, 단계 S488 내지 단계 S493에 있어서, 도 47의 단계 S438 내지 단계 S443과 기본적으로 마찬가지의 처리가 실행된다. 즉, 전력 관리 테이블(373)이 참조되어, 네트워크 (2)에 접속되어 있는 정보 처리 장치(301)의 정보 처리 컨트롤러(311)의 서브 프로세서(43) 중으로부터, 처리의 교환처인 정보 처리 컨트롤러(311)가 선택되고, 소비 전력의 상한값을 초과한 정보 처리 컨트롤러(311)의 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 소비 전력의 상한값을 초과한 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 동작이 정지된다.
그리고, 처리의 교환처로서 선택된 정보 처리 컨트롤러(311)의 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트가 퇴피되고, 처리의 교환처로서 선택된 정보 처리 컨트롤러(311)의 서브 프로세서(43)의 동작이 정지되고, 퇴피된 2개의 서브 프로세서(43)의 콘텍스트가 교환되어 리스토어된다.
단계 S493의 처리의 종료 후, 처리는 도 49의 단계 S468로 되돌아가, 단계 S469로 진행한다.
이러한 처리에 의해, 소비 전력의 이상이 발생한 정보 처리 컨트롤러(311)에 있어서, 서브 프로세서 프로그램 이동 요구 커맨드가 송신되고, 그 회신 커맨드에 기초하여, 처리의 이동처 또는 교환처가 선택되도록 이루어져 있다.
도 48 내지 도 50를 이용하여 설명한 처리에 의해, 전력 측정부(321)가 설치되어 있는 정보 처리 컨트롤러(311)를 갖는 정보 처리 장치(301)가 복수개 네트워크(2)에 접속되어 있는 제3 실시 형태에 있어서, 제3 패턴의 전력 정보 및 처리의 이동 또는 교환의 제어를 이용하여, 실행 중인 처리를 정지시키는 것을 최소한으로 억제하면서, 열 폭주 등에 의한 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
또한, 도 51에 도시되는 바와 같이, 1개의 정보 처리 장치(395)에, 복수의 정보 처리 컨트롤러(311-1) 내지 정보 처리 컨트롤러(311-p)(p는 양의 정수)가 설치되어 있는 경우, 통신부(16) 및 네트워크(2)를 통하여, 복수의 정보 처리 컨트롤러(311)가 수수하고 있던 각종 정보를, 버스(14)를 통하여 수수하도록 하는 것에 의해, 제2 실시 형태에 있어서의 경우와 마찬가지로 하여, 본 발명이 적용 가능한 것은 물론이다.
이 때, 1개의 정보 처리 장치(395)에 구비되어 있는, 복수의 정보 처리 컨트롤러(311-1) 내지 정보 처리 컨트롤러(311-p) 중 어느 하나가, 정보 처리 장치(395) 내의 마스터로서 동작하고, 다른 정보 처리 컨트롤러가, 슬레이브로서 동작하도록 이루어진다. 그리고, 상술한 제3 실시 형태의 제1 내지 제3 패턴 중 어느 하나와 마찬가지의 처리가 이용되어, 복수의 정보 처리 컨트롤러(311-1) 내지 정보 처리 컨트롤러(311-p) 중 어느 하나에 있어서의 소비 전력값의 이상의 발생이 검출되고, 버스(14)에 접속되어 있는 각각의 정보 처리 컨트롤러(311)의 그 때의 동작 및 각각의 프로세서의 전력 측정값에 기초하여, 처리가 정지되는지, 분산 처리 중의 일부가 이동되는지, 또는 분산 처리 중의 일부가 교환되는지가 판단되고, 처리의 이동처 또는 교환처가 선택되도록 할 수 있게 이루어져 있다.
또한, 도 52에 도시되는 바와 같이, 도 51을 이용하여 설명한 정보 처리 장치(395)와 마찬가지의 구성을 갖는 정보 처리 장치(395-1)가 네트워크(2)에 접속되고, 네트워크(2)에, 정보 처리 장치(395-1)와 마찬가지의 구성을 갖는 정보 처리 장치(395-2)나, 상술한 복수의 정보 처리 장치(301)(도 52에서는, 정보 처리 장치 (301-1) 및 정보 처리 장치(301-2))가 접속되어 있는 경우, 정보 처리 장치(395-1)의 정보 처리 컨트롤러(311-1) 내지 정보 처리 컨트롤러(311-p) 중 어느 하나에 있어서의 소비 전력값의 이상의 발생이 검출되었지만, 버스(14)에 접속되어 있는 각각의 정보 처리 컨트롤러(311)에 처리의 이동처 또는 교환처가 발견되지 않은 경우, 상술한 제3 실시 형태의 제1 내지 제3 패턴 중 어느 하나와 마찬가지의 처리가 이용되어, 네트워크(2)를 통하여 접속되어 있는 정보 처리 장치(395-2)나, 상술한 복수의 정보 처리 장치(301)에 포함되는 정보 처리 컨트롤러(311) 중의 어느 하나로부터, 처리의 이동처 또는 교환처가 선택되도록해도 좋다. 이 때, 다른 조건이 동일하면, 배터리 또는 전지로 동작하고 있는 다른 정보 처리 장치(395-2) 또는 정보 처리 장치(301)보다도, AC 전원으로 동작하고 있는 다른 정보 처리 장치(395-2) 또는 정보 처리 장치(301)가 우선적으로 처리의 이동, 교환처로서 선택되도록 해도 좋다.
또한, 본 발명을 적용한 정보 처리 컨트롤러는, 복수의 서브 프로세서를 포함하는 전체의 구성을 원 칩 IC(집적 회로)로서 구성하고, 온도 센서 등에 의한 온도 검출부를 설치하고, 정상 동작 가능한 온도 범위 내에서 동작하도록 관리함과 함께, 정보 처리 컨트롤러에 공급되는 전력량을 감시하여, 이상 전력량이 1개의 정보 처리 컨트롤러에서 소비되는 것을 방지하는 것에 의해, 소자의 열화를 방지함과 함께, 보다 신뢰성이 높은 정보 처리 컨트롤러 및 정보 처리 장치를 실현할 수 있다. 또한, 본 발명을 적용한 정보 처리 컨트롤러는, 1개 또는 복수의 정보 처리 장치 내의 서브 프로세서 사이에서, 온도 상승 및 소비 전력량의 증가에 따른 처리 의 이동 또는 교환을 행함으로써, 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
도 53 내지 도 60를 이용하여, 본 발명을 적용한 정보 처리 장치의 정보 처리 컨트롤러에 있어서, 프로세서의 온도 상승 및 소비 전력량의 증가에 따른 분산 처리를 실현하는 경우의 실시의 일 형태에 대하여 설명한다.
도 53은, 정보 처리 컨트롤러의 각 부의 온도를 계측하는 온도 검출부가 설치됨과 함께, 정보 처리 컨트롤러의 소비 전력을 측정하는 전력 측정부가 설치되고, 정보 처리 컨트롤러에, 온도 검출부에 의해 검출된 온도 정보를 취득함과 함께, 전원부(19)의 상태를 취득하고, 전력 측정부의 측정 결과를 취득하는 온도 전력 관리 처리부가 설치되어 있는 정보 처리 장치(401-1)의 구성을 도시하는 블록도이다.
또한, 도 1에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 도 53에 도시되는 정보 처리 장치(401-1)는, 정보 처리 컨트롤러(11) 대신에, 서브 프로세서(43-1) 내지 서브 프로세서(43-m)의 온도를 계측하기 위한 온도 검출부(121-1) 내지 온도 검출부(121-m), 및 메인 프로세서(42)의 온도를 계측하기 위한 온도 검출부(121-(m+1)), 및 온도 검출부(121)에 의해 검출된 온도 상태를 취득하고, 전원부(19)의 상태를 취득하고, 또한, 전력 측정부(321)의 측정 결과를 취득하는 온도 전력 관리 처리부(421)가 설치되어 있는 정보 처리 컨트롤러(311)가 구비되고, 1칩으로 구성되어 있는 정보 처리 컨트롤러(411)의 소비 전력을 측정하는 전력 측정부(321)가 새롭게 설치되어 있는 것 이외에는, 기본적으로 도 1을 이용하여 설명한 정보 처리 장치(1)와 마찬가지의 구성을 갖고 있다.
또한, 네트워크(2)에 접속되어 있는 정보 처리 장치(401-2) 내지 정보 처리 장치(401-n)는, 기본적으로 정보 처리 장치(401-1)와 마찬가지의 구성을 갖는 것이기 때문에, 그 설명은 생략한다. 이하, 정보 처리 장치(401-1) 내지 정보 처리 장치(401-n)를 개개로 구별할 필요가 없을 때, 단지 정보 처리 장치(401)라고 칭한다.
도 54에, 온도 상승 및 소비 전력량의 증가를 검출하는 것에 의해서 분산 처리의 할당을 제어하는 정보 처리 컨트롤러(411)에 의해서 실행되는 소프트웨어의 구성을 나타낸다. 이들의 소프트웨어(프로그램)는, 정보 처리 장치에 전원이 투입되기 전에 있어서는, 정보 처리 컨트롤러(411)에 접속되는 기록부(13)에 기록되어 있는 것이다.
또한, 도 8에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 정보 처리 컨트롤러(411)의 메인 메모리(12)가 기억하는 소프트웨어의 구성은, 새롭게 제어 프로그램에, 온도·전력 관리 프로그램이 추가되어 있는 것 이외에는, 기본적으로 도 8을 이용하여 설명한 경우와 마찬가지이다. 또한, 온도·전력 관리 프로그램은, 정보 처리 장치(101)의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주 프로그램인 것이 바람직하다.
온도·전력 관리 프로그램은, 정보 처리 장치(401)의 온도 검출부(121-1) 내지 온도 검출부(121-(m+2))에 의해 측정된 온도 정보 및 전력 측정부(321)에 의해 측정되는 온도 정보를 수집하고, 이들의 온도 정보 및 전력 정보에 기초하여, 메인 프로세서(42)에 의해 실행되는 처리의 제어 및 서브 프로세서(43-1) 내지 서브 프로세서(43-m)에 있어서 필요에 따라 실행되는, 자기 자신 중에 있어서의 처리의 이동 또는 교환을 제어함과 함께, 네트워크(2)를 통하여 접속되어 있는 다른 정보 처리 장치(401)와 온도 정보를 교환하여, 메인 프로세서(42)에 의해 실행되는 처리의 제어 및 서브 프로세서(43-1) 내지 서브 프로세서(43-m)에 있어서 필요에 따라 실행되는, 처리의 이동 또는 교환을 제어한다.
네트워크(2)를 통하여 접속되어 있는 다른 정보 처리 장치(401)와의 전력 정보, 온도 정보의 수수, 및 처리의 이동 또는 교환의 제어에는 3개의 패턴이 있다.
제1 패턴은, 예를 들면, 정보 처리 장치(401-1)이 마스터 장치인 경우, 정보 처리 장치(401-1)가, 자기 자신의 온도·전력 관리 테이블 뿐만 아니라, 네트워크(2)에 접속되어 있는 슬레이브 장치인 정보 처리 장치(401-2) 내지 정보 처리 장치(401-n)의 각각의 온도·전력 관리 테이블을 관리하는 것이다. 즉, 슬레이브 장치인 정보 처리 장치(401-2) 내지 정보 처리 장치(401-n)는, 소정의 시간마다 갱신된 최신의 온도·전력 관리 테이블을, 마스터 장치인 정보 처리 장치(401-1)에 수시로 송신하도록 이루어져 있다. 그리고, 마스터 장치인 정보 처리 장치(401-1)는, 네트워크(2)에 접속되어 있는 정보 처리 장치(401-1) 내지 정보 처리 장치(401-n)의 모든 전력 정보를 감시하여, 정보 처리 장치(401-1) 내지 정보 처리 장치(401-n) 중의 어느 하나에 있어서, 온도 상승의 이상 또는 소비 전력량의 이상이 검출된 경우, 예를 들면, 네트워크(2)에 접속되어 있는 정보 처리 장치(401)의 정보 처리 컨 트롤러(411)에 포함되는 모든 서브 프로세서(43)로부터, 처리의 이동 또는 교환처로서 최적인 서브 프로세서(43)를 선택하고, 선택된 서브 프로세서(43)로 이상이 발생한 프로세서(43)의 처리를 이동시키거나, 또는 각각의 처리를 교환하는 등의 처리를 제어한다.
제2 패턴은, 각각의 정보 처리 장치(401)가, 자기 자신의 온도·전력 관리 테이블에 기초하여 온도 정보 및 전력 정보를 감시하여, 온도 상승의 이상 또는 소비 전력량의 이상을 검출한 경우, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(401) 전체에 대하여, 온도·전력 정보의 송신을 요구하는 커맨드를 송신하는 것이다. 즉, 온도 상승의 이상 또는 소비 전력량의 이상을 검출하지 않은 상태의 정보 처리 장치(401)는, 다른 정보 처리 장치(401)로부터, 온도·전력 정보의 송신을 요구하는 커맨드를 수신했을 때, 자기 자신의 온도·전력 관리 테이블에 기초하여, 온도·전력 정보를 회신하는 커맨드를 생성하여, 온도·전력 정보 요구 커맨드의 송신원인 정보 처리 장치(401)에, 생성된 온도·전력 정보를 회신하는 커맨드를 송신한다.
온도·전력 정보 회신 커맨드에는, 히트싱크(141), 메인 프로세서(42) 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서의 최신의 온도 검출 결과(즉, 온도 검출부(121-1) 내지 온도 검출부(121-10)의 각각의 최신의 온도 검출 결과), 히트싱크(141), 메인 프로세서(42), 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서의 상한 온도의 설정값(즉, 온도 검출부(121-1) 내지 온도 검출부(121-10)의 각각이 검출하는 온도가 이 이상 높은 경우에는, 이상값이라고 판별하 기 위한 설정값), 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 동작 상태를 나타내는 정보, 칩 내의 서브 프로세서의 배치 정보, AC를 전원으로 하고 있을 때의 소비 전력 상한, 배터리를 전원으로 하고 있을 때의 소비 전력 상한, 전지를 전원으로 하고 있을 때의 소비 전력 상한, AC, 배터리, 전지 등 중, 어느 전원이 접속되어 있는지를 나타내는 전원 접속 정보, 및 현재의 처리에 있어서의 소비 전력의 값 등의 정보가 포함되어 있다.
그리고, 온도·전력 정보를 회신하는 커맨드를 수신한 정보 처리 장치(401)는, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(401)의 정보 처리 컨트롤러(411)에 포함되는 모든 서브 프로세서(43)로부터, 처리의 이동 또는 교환처로서 최적인 서브 프로세서(43)를 선택하고, 선택된 서브 프로세서(43)로 이상이 발생한 프로세서(43)의 처리를 이동시키거나, 또는 각각의 처리를 교환하는 등의 처리를 제어한다.
제3 패턴은, 각각의 정보 처리 장치(401)가, 자기 자신의 온도·전력 관리 테이블에 기초하여 온도·전력 정보를 감시하여, 온도 상승의 이상 또는 소비 전력량의 이상을 검출한 경우, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(401) 전체에 대하여, 서브 프로세서 프로그램의 이동을 요구하는 커맨드를 송신하는 것이다. 즉, 소비 전력량의 이상을 검출하지 않은 상태의 정보 처리 장치(401)는, 다른 정보 처리 장치(401)로부터 서브 프로세서 프로그램의 이동을 요구하는 커맨드를 수신했을 때, 자기 자신의 온도·전력 관리 테이블에 기초하여, 서브 프로세서 프로그램의 이동처로 되는 것이 가능한지의 여부를 나타내는 회신 커맨드를 생 성하고, 서브 프로세서 프로그램의 이동을 요구하는 커맨드의 송신원인 정보 처리 장치(401)에, 생성한 회신 커맨드를 송신한다. 그리고, 회신 커맨드를 수신한 정보 처리 장치(401)는, 회신 커맨드에 기초하여, 처리의 이동 또는 교환처로서 최적인 서브 프로세서(43)를 선택하고, 선택된 서브 프로세서(43)로 이상이 발생한 프로세서(43)의 처리를 이동시키거나, 또는 각각의 처리를 교환하는 등의 처리를 제어한다.
또한, 이 3개의 패턴에 있어서, 특히, 온도 상승에 이상이 있었던 경우, 처리의 이동 또는 교환처로서 선택되는 서브 프로세서로서, 자기 자신에게 포함되는 서브 프로세서(43)의 우선 순위를 높게 하도록 해도 좋다.
도 55에, 온도 상승 및 소비 전력량의 증가를 검출함으로써 분산 처리의 할당을 제어하는 정보 처리 컨트롤러(411)가 제1 패턴에 있어서 실행 가능한 기능을 설명하기 위한 기능 블록도를 나타낸다. 또한, 도 21에 있어서의 경우와 대응하는 부분에는 동일한 부호를 붙이고 있고, 그 설명은 적절하게 생략한다. 즉, 도 55에 도시되는, 온도 상승 및 소비 전력량의 증가를 검출함으로써 분산 처리의 할당을 제어하는 정보 처리 컨트롤러(411)가 제1 패턴에 있어서 실현 가능한 기능은, 메인 프로세서(42)가 실행 가능한 기능에 있어서는, 온도 이상 대응 처리 제어부(216) 대신에, 온도·전력 이상 대응 처리 제어부(455)가 설치되고, 논리 쓰레드 관리 처리부(217) 대신에, 논리 쓰레드 관리 처리부(457)가 설치되고, 온도 관리 정보 송수신 제어부(214) 대신에, 온도·전력 관리 정보 송수신 제어부(456)가 설치되어 있는 것 이외에는, 기본적으로 도 21을 이용하여 설명한 경우와 마찬가지이다. 또 한, 도 21을 이용하여 설명한 온도 모니터 처리부(122)가 실현 가능한 기능 대신에, 온도·전력 관리 처리부(421)가 실행 가능한 기능인, 온도·전력 정보 취득부(451), 인터럽트 제어부(165), 타이머(166), 온도·전력 관리 테이블(452) 및 이상 검출부(453)가 새롭게 설치되어 있다.
온도·전력 정보 취득부(451)는, 인터럽트 제어부(165)의 처리에 의해 제어되는 타이밍에서, 온도 검출부(121) 및 전력 측정부(321)로부터 공급되는 온도 정보 및 전력 정보를 취득하여, 온도·전력 정보 테이블(456)을 갱신한다. 인터럽트 제어부(165)는, 타이머(166)를 참조하여, 온도·전력 정보 취득부(451)에 대하여 타이머 인터럽트를 거는 것과 함께, 이상 검출부(453)로부터 공급되는 정보에 기초하여, 연산 처리부(161) 및 온도·전력 이상 대응 처리 제어부(455)에 인터럽트를 건다.
온도·전력 관리 정보 송수신 제어부(456)는, 온도·전력 이상 대응 처리 제어부(455)의 제어에 기초하여, 통신부(16)를 통하여, 온도·전력 전력 관리 테이블 또는 온도 관리 및 전력 관리를 위해 생성된 각종 커맨드(소프트웨어 셀)의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(401)에의 송신을 제어함과 함께, 통신부(16)를 통하여, 다른 정보 처리 장치(401)의 온도·전력 관리 테이블 또는 온도 관리 및 전력 관리를 위한 각종 커맨드(소프트웨어 셀) 등의, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(401)로부터의 수신을 제어한다. 이하, 온도·전력 전력 관리 테이블 또는 온도 관리 및 전력 관리를 위해 생성된 각종 커맨드(소프트웨어 셀) 등, 네트워크(2)에 의해서 접속된 복수의 정보 처리 장치(401)의 전 력 관리와 전력 관리의 결과 실행되는 분산 처리의 제어에 관계되는 정보를 개개로 구별할 필요가 없는 경우, 온도·전력 관리 정보라고 총칭하는 것으로 한다.
온도·전력 관리 테이블(452)은, 정보 처리 컨트롤러(411)에 있어서의 온도 관리 및 소비 전력 관리를 행하기 위한 정보가 기재되는 테이블로서, 자기 자신이 슬레이브 장치일 때, 자기 자신의 온도 관리 정보 및 전력 정보를 기록하고, 자기 자신이 마스터 장치일 때, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(401)에 있어서의 온도 관리 정보 및 전력 정보를 기록하고 있다. 온도 정보에는, 도 13을 이용하여 설명한 경우와 마찬가지로, 정보 처리 컨트롤러(411)를 식별하기 위한 컨트롤러 ID, 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 동작 상태를 나타내는 정보, 히트싱크(141), 메인 프로세서(42) 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서의 최신의 온도 검출 결과(즉, 온도 검출부(121-1) 내지 온도 검출부(121-10)의 각각의 최신의 온도 검출 결과), 히트싱크(141), 메인 프로세서(42) 및 서브 프로세서(43-1) 내지 서브 프로세서(43-8)에 있어서의 상한 온도의 설정값(즉, 온도 검출부(121-1) 내지 온도 검출부(121-10)의 각각이 검출하는 온도가 이 이상 높은 경우에는, 이상값이라고 판별하기 위한 설정값), 및 칩 내의 서브 프로세서의 배치 정보가 기재되어 있다. 또한, 전력 정보에는, 도 40을 이용하여 설명한 경우와 마찬가지로, 정보 처리 컨트롤러(411)를 식별하기 위한 컨트롤러 ID, AC를 전원으로 하고 있을 때의 소비 전력 상한, 배터리를 전원으로 하고 있을 때의 소비 전력 상한, 전지를 전원으로 하고 있을 때의 소비 전력 상한, AC, 배터리(73), 전지 등 중, 어느 전원이 접속되어 있는지를 나타내는 전원 접속 정보, 및 현재의 처리에 있어서의 소비 전력의 값 등의 정보를 포함하는 정보가 기재되어 있다.
또한, 상한 온도라 함은, 정보 처리 컨트롤러(411) 또는 정보 처리 장치(401)의 설계시에 있어서, 미리 설정된 정상적인 동작을 행하기 위해 요구되는 온도의 상한값이다. 상한 온도는, 정상이고 또한 효율적인 동작을 행하기 위해 바람직한 온도 상한값이어도 좋다. 또한, 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 동작 상태를 나타내는 정보라 함은, 각각이 동작 중인지의 여부를 나타내는, 예를 들면, RUN 또는 STOP의 스테이터스이다. 그리고, 서브 프로세서 배치 정보라 함은, 정보 처리 컨트롤러(411) 또는 정보 처리 장치(401)의 설계시에 있어서 미리 설정된, 서브 프로세서(43-1) 내지 서브 프로세서(43-8)의 배치를 나타내는 정보이다.
또한, AC 전원을 전원으로 하고 있을 때의 소비 전력 상한은, AC 전원 사용시에 정상적인 동작을 행하기 위해 요구되는 소비 전력의 상한값으로, 정보 처리 장치의 설계시에 미리 설정되는 것이다. 또한, AC 전원시의 소비 전력 상한은, 정상이고 또한 효율적인 동작을 행하기 위해 바람직한 소비 전력 상한값이어도 좋다. 배터리(73)를 전원으로 하고 있을 때의 소비 전력 상한 및 전지를 전원으로 하고 있을 때의 소비 전력 상한에 대해서도 마찬가지다. 또한, 전원 접속 정보는, 정보 처리 장치(401)의 설계시에 미리 설정되는 경우도 있고, 정보 처리 장치(401)가 복수의 전원 소스에 대응하고 있는 경우에는, 적절하게 변화하는 경우도 있을 수 있다. 현재의 소비 전력은, 전력 측정부(321)에 의해 측정된 소비 전력이고, 당연히 정보 처리 장치의 동작 상황에 따라서 변동하는 값이다.
이상 검출부(453)는, 자기 자신이 마스터 장치인 경우, 온도·전력 관리 테이블(452)을 참조하여, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(401)의 온도 측정 결과 또는 전력 검출 결과 중, 설정되어 있는 상한값을 초과한 것이 있었던 경우, 인터럽트 제어부(165)에, 온도 또는 소비 전력량의 이상이 검출된 것을 통지하여, 연산 처리부(161) 및 이상 대응 처리 제어부(455)에 인터럽트를 걸게 한다.
이상 대응 처리 제어부(455)는, 자기 자신이 마스터 장치이고, 인터럽트 제어부(165)에 의해 인터럽트가 걸린 경우, 온도·전력 관리 테이블(452)을 참조하여, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(401) 중의 어느 하나의 온도 정보 또는 소비 전력량의 이상의 발생 정보를 취득하고, 이것에 기초하여 논리 쓰레드 관리 처리부(457)를 제어하고, 필요에 따라, 처리를 일단 정지시키거나, 서브 프로세서(43) 중 어느 하나와의, 실행되고 있는 쓰레드의 이동 또는 교환을 제어한다.
논리 쓰레드 관리 처리부(457)는, 연산 처리부(161)에 의해 실행되는 어플리케이션 프로그램에 대응하는 논리 쓰레드의 생성 및 삭제를 행함과 함께, 자기 자신이 마스터 장치인 경우, 네트워크(2)에 접속되어 있는 정보 처리 장치(401) 중의 어느 하나에 있어서 실행되는 분산 처리에 대응하는 논리 쓰레드의 상태 감시와 동작 제어를 행한다. 논리 쓰레드 관리 처리부(457)는, 자기 자신이 마스터 장치인 경우, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(401)의 관리 정보가 기재 된 테이블과, 실행되는 논리 쓰레드마다 논리 쓰레드의 실행에 필요한 정보가 기재된 테이블을 작성하고, 필요에 따라, 테이블의 정보를 참조하여 갱신하는 것에 의해, 논리 쓰레드의 실행을 제어한다.
또한, 논리 쓰레드 관리 처리부(457)는, 자기 자신이 마스터 장치인 경우, 필요에 따라, 다른 정보 처리 장치(401)에 있어서 실행되고 있는 쓰레드의 처리를 제어하기 위한 소프트웨어 셀을 생성하고, 통신부(16)를 통하여, 생성된 소프트웨어 셀을 송신한다. 또한, 논리 쓰레드 관리 처리부(457)는, 자기 자신이 슬레이브 장치인 경우, 통신부(16)를 통하여, 마스터 장치인 정보 처리 장치(401)로부터 송신된 소프트웨어 셀의 공급을 받아, 소프트웨어 셀의 내용에 기초한 분산 처리를 서브 프로세서(43)에 실행시킴과 함께, 필요에 따라, 회신이나 응답에 대응하는 소프트웨어 셀을 생성하고, 통신부(16)를 통하여, 생성된 소프트웨어 셀을 송신한다. 또한, 논리 쓰레드 관리 처리부(457)는, 자기 자신이 마스터 장치인지 슬레이브 장치인지에 상관없이, 필요에 따라, 통신부(16)에 의해 수신된, 다른 정보 처리 장치(101)에 있어서 실행된 쓰레드에 관한 정보를 취득한다.
또한, 도 55에 있어서, 이들의 기능을 실현하는 하드웨어가 상술하는 바와 같지 않은 경우, 예를 들면, 메인 프로세서(42)에 의해 실현되는 기능 중의 일부가 온도 전력 관리 처리부(421)에 의해 실현되거나, 온도 전력 관리 처리부(421)에 의해 실현되는 기능 중의 일부가 메인 프로세서(42)에 의해 실현되는 경우나, 이들의 기능이 각각 상이한 하드웨어에 의해 실현되는 경우 등도, 본 발명은 적용 가능한 것은 물론이다.
다음으로, 도 56 내지 도 60의 플로우차트를 참조하여, 온도 및 전력에 기초하여 분산 처리를 제어하는 경우의 제1 패턴에 있어서의 동작을 설명한다.
도 56의 플로우차트를 참조하여, 도 55에 도시되는 정보 처리 장치(401)가 실행하는 어플리케이션 프로그램 실행 처리 3에 대하여 설명한다. 여기서는, 온도·전력 관리 프로그램이, 정보 처리 장치(401)의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주 프로그램인 것으로서 설명한다.
단계 S451에 있어서, 연산 처리부(161)는, 유저에 의해, 어플리케이션 프로그램의 실행이 명령되었는지의 여부를 판단한다. 즉, 단계 S451에 있어서, 메인 프로세서(42)는, 조작 입력부(15)로부터, 버스(14) 및 버스(41)를 통하여 공급되는 신호에 기초하여, 어플리케이션 프로그램의 실행이 명령되었는지의 여부를 판단한다. 단계 S451에 있어서, 어플리케이션 프로그램의 실행이 명령되지 않았다고 판단된 경우, 어플리케이션 프로그램의 실행이 명령되었다고 판단될 때까지 단계 S451의 처리가 반복된다.
단계 S451에 있어서, 어플리케이션 프로그램의 실행이 명령되었다고 판단된 경우, 단계 S452에 있어서, 연산 처리부(161)는, 논리 쓰레드의 서브 프로세서에의 할당 등을 설정하고, 논리 쓰레드의 설정 정보를 논리 쓰레드 관리 처리부(457)에 공급한다.
단계 S453에 있어서, 논리 쓰레드 관리 처리부(457)는, 논리 쓰레드가 할당된 서브 프로세서(43)의 로컬 스토리지(51)의 코드 영역(187) 및 데이터 영역(188)에, 할당된 처리를 실행하기 위한 프로그램이나 데이터를 로드시킨다.
단계 S454에 있어서, 연산 처리부(161) 및 논리 쓰레드 관리 처리부(457)는, 서브 프로세서(43)에 의한 처리를 포함시킨, 어플리케이션 프로그램의 실행을 제어한다. 서브 프로세서(43)의 연산 처리부(181)는, 할당된 처리를 실행한다.
그런데, 온도·전력 관리 프로그램은, 정보 처리 장치(401)의 주전원이 투입되고 있는 동안에는 항상 동작하는 상주 프로그램이기 때문에, 단계 S451 내지 단계 S454의 처리가 실행되고 있는 동안에도 처리가 실행되고 있다. 온도·전력 관리 프로그램에 의한 마스터 장치의 온도·전력 정보 관리 처리에 대해서는 도 57의 플로우차트를 이용하여, 또 슬레이브 장치의 온도·전력 관리 처리에 대해서는 도 60을 이용하여 각각 후술한다.
단계 S455에 있어서, 연산 처리부(161)는, 인터럽트 제어부(165)에 의해, 온도 상승 또는 소비 전력량의 이상 발생을 위한 인터럽트가 있는지의 여부를 판단한다. 단계 S5에 있어서, 온도 상승 또는 소비 전력량의 이상 발생을 위한 인터럽트가 없다고 판단된 경우, 처리는 후술하는 단계 S458로 진행한다.
단계 S455에 있어서, 온도 상승 또는 소비 전력량의 이상 발생을 위한 인터럽트가 있었다고 판단된 경우, 인터럽트에 의해 실행 중인 처리가 정지되므로, 단계 S456에 있어서, 연산 처리부(161)는, 인터럽트가 해제되었는지의 여부를 판단한다. 단계 S456에 있어서, 인터럽트가 해제되지 않았다고 판단된 경우, 인터럽트가 해제되었다고 판단될 때까지 단계 S456의 처리가 반복된다.
단계 S456에 있어서, 인터럽트가 해제되었다고 판단된 경우, 단계 S457에 있어서, 연산 처리부(161)는, 필요에 따라 논리 쓰레드의 설정 정보를 재차 논리 쓰 레드 관리 처리부(457)에 공급하기 때문에, 논리 쓰레드 관리 처리부(457)는 논리 쓰레드 관리에 관한 테이블을 갱신한다.
단계 S455에 있어서, 소비 전력량의 이상 발생을 위한 인터럽트가 없다고 판단된 경우 또는 단계 S457의 처리의 종료 후, 단계 S458에 있어서, 연산 처리부(161)는 어플리케이션 프로그램의 처리가 종료되었는지의 여부를 판단한다. 단계 S458에 있어서, 어플리케이션 프로그램의 처리가 종료되지 않았다고 판단된 경우, 처리는 단계 S454로 되돌아가, 그 이후의 처리가 반복된다. 단계 S458에 있어서, 어플리케이션 프로그램의 처리가 종료되었다고 판단된 경우, 처리가 종료된다.
이러한 처리에 의해, 메인 프로세서(42)에 의해 실행되는 어플리케이션 프로그램에 대응하는 분산 처리가, 서브 프로세서(43) 중의 선택된 것에 의해 실행된다.
다음으로, 도 57의 플로우차트를 참조하여, 마스터 장치의 온도·전력 정보 관리 처리에 대하여 설명한다.
단계 S471에 있어서, 온도·전력 정보 취득부(451)는, 인터럽트 제어부(165)로부터 타이머 인터럽트가 들어왔는지의 여부를 판단한다.
단계 S471에 있어서, 타이머 인터럽트가 들어오지 않았다고 판단된 경우, 단계 S472에 있어서, 온도·전력 관리 정보 송수신 제어부(456)는, 네트워크(2)에 접속되어 있는 다른 정보 처리 장치(401)로부터 온도·전력 관리 테이블을 수신했는지의 여부를 판단한다. 단계 S472에 있어서, 온도·전력 관리 테이블을 수신하지 않았다고 판단된 경우, 처리는 단계 S471로 되돌아가, 그 이후의 처리가 반복된다. 단계 S472에 있어서, 전력 관리 테이블을 수신했다고 판단된 경우, 처리는 후술하는 단계 S474로 진행한다.
단계 S471에 있어서, 타이머 인터럽트가 들어왔다고 판단된 경우, 단계 S473에 있어서, 온도·전력 정보 취득부(451)는, 전력 측정부(321)로부터 전력의 측정 결과를 나타내는 정보를 취득함과 함께, 온도 검출부(121)로부터 온도의 검출 결과를 나타내는 정보를 취득한다.
단계 S472에 있어서, 온도·전력 관리 테이블을 수신했다고 판단된 경우 또는 단계 S473의 처리의 종료 후, 단계 S474에 있어서, 온도·전력 정보 취득부(451)는, 단계 S472에 있어서 수신된 다른 정보 처리 장치(401)의 온도·전력 관리 테이블 또는 단계 S473에 있어서 취득된 자기 자신의 온도 정보 및 전력 정보에 기초하여, 온도·전력 관리 테이블(452)을 갱신한다.
단계 S475에 있어서, 이상 검출부(453)는, 온도·전력 관리 테이블(452)을 참조하여, 온도 정보 또는 전력 정보에 이상값이 있는지의 여부, 즉, 네트워크(2)에 접속되어 있는 정보 처리 장치(401)에 설치되어 있는 온도 검출부(121) 또는 전력 측정부(321)에 의해 검출된 온도 검출 결과 또는 전력 검출 결과 중, 미리 설정되어 있는 상한값을 초과한 것이 있는지의 여부를 판단한다. 단계 S475에 있어서, 온도 정보 또는 전력 정보 중 어디에도 이상값이 없다고 판단된 경우, 처리는 단계 S471로 되돌아가, 그 이후의 처리가 반복된다.
단계 S475에 있어서, 온도 정보 또는 전력 정보에 이상값이 있었다고 판단된 경우, 단계 S476에 있어서, 이상 검출부(453)는, 인터럽트 제어부(165)에 이상 온 도 상승 또는 소비 전력의 상승이 검출된 것을 통지하여, 연산 처리부(161) 및 이상 대응 처리 제어부(455)에 인터럽트를 걸게 한다. 인터럽트 제어부(165)는, 이상 대응 처리 제어부(455) 및 연산 처리부(161)에 대하여 인터럽트를 걸어, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리를 정지시킴과 함께, 이상 대응 처리 제어부(455)에 대하여 이상 발생시의 처리를 개시시킨다.
단계 S477에 있어서, 도 58 및 도 59을 이용하여 후술하는 이상 발생시의 처리 8이 실행된다.
단계 S478에 있어서, 이상 대응 처리 제어부(455)는, 단계 S477에 있어서 실행된 이상 발생시의 처리 8에 기초하여 논리 쓰레드 관리 처리부(457)를 제어하고, 필요에 따라 논리 쓰레드 관리에 관한 테이블을 갱신시킨다.
단계 S479에 있어서, 인터럽트 제어부(165)는, 연산 처리부(161)에 의해 제어되는 어플리케이션 프로그램의 처리에 대한 인터럽트를 해제하고, 처리는 단계 S471로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 네트워크(2)에 접속되어 있는, 마스터 장치인 정보 처리 장치(401)에 있어서, 네트워크(2)에 접속되어 있는 모든 정보 처리 장치(401)의 온도 검출부(121) 또는 전력 측정부(321)에 의해 검출된 온도 검출 결과 또는 전력 검출 결과에 기초하여 갱신된 온도 관리 테이블을 취득하여, 온도·전력 관리 테이블(452)로서 관리할 수 있게 이루어지고, 마스터 장치에 있어서 기억되어 있는 온도·전력 관리 테이블(452)에 기초하여, 이상 발생시의 인터럽트 처리가 실행되는지의 여부가 판단된다.
다음으로, 도 58 및 도 59의 플로우차트를 참조하여, 도 57의 단계 S477에 있어서 실행되는 이상 발생시의 처리 8에 대하여 설명한다.
단계 S501에 있어서, 이상 대응 처리 제어부(455)는, 온도·전력 관리 테이블(452)을 참조하여, 온도에 이상이 발생했는지의 여부를 판단한다. 단계 S501에 있어서, 온도에 이상이 발생하지 않았다고 판단된 경우, 처리는 단계 S519로 진행한다.
단계 S501에 있어서, 온도에 이상이 발생했다고 판단된 경우, 단계 S502에 있어서, 이상 대응 처리 제어부(455)는, 온도·전력 관리 테이블(452)을 참조하여, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)인지의 여부, 바꾸어 말하면, 미리 설정되어 있는 상한 온도를 초과한 온도 검출 결과를 얻은 것이, 온도 검출부(121-9) 또는 온도 검출부(121-10) 중의 어느 하나인지의 여부를 판단한다. 단계 S502에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)라고 판단된 경우, 처리는 후술하는 단계 S514로 진행한다.
단계 S502에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)가 아닌, 즉, 서브 프로세서(43) 중의 어느 하나라고 판단된 경우, 단계 S503에 있어서, 이상 대응 처리 제어부(455)는, 온도·전력 관리 테이블(452)을 참조하여, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능한지의 여부, 바꾸어 말하면, 온도의 이상이 발생한 서브 프로세서(43) 이외의 서브 프로세서(43) 중의 어느 하나가 정지 상태인지의 여부를 판단한다. 단계 S503에 있어서, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능하지 않았다고 판단된 경우, 처리는 후술하는 단계 S508로 진행한다.
단계 S503에 있어서, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능하다고 판단된 경우, 단계 S504에 있어서, 이상 대응 처리 제어부(455)는, 처리의 이동처인 서브 프로세서(43)를 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(457)에 공급한다. 구체적으로는, 이상 대응 처리 제어부(455)는, 네트워크(2)에 접속되어 있는 정보 처리 장치(401)의 정보 처리 컨트롤러(411)에 포함되는 서브 프로세서(43) 중, 현재 동작 중인 서브 프로세서(43)에 인접하지 않는 것이고 또한 정지 상태인 서브 프로세서(43) 중, 온도 검출 결과가 가장 낮은 것을 이동처인 서브 프로세서(43)로서 우선적으로 선택하도록 이루어져 있다. 또한, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우, 이상 대응 처리 제어부(455)는, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택한다. 또한, 현재 동작 중인 서브 프로세서(43)에 인접하지 않는, 정지 상태인 서브 프로세서(43)가 존재하지 않는 경우, 이상 대응 처리 제어부(455)는, 정지 상태의 서브 프로세서(43) 중, 온도 검출 결과가 가장 낮은 것을 선택하고, 또한, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우에는, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택하고, 선택 결과가 논리 쓰레드 관리 처리부(457)에 공급된다.
단계 S505에 있어서, 논리 쓰레드 관리 처리부(457)는, 온도 상한값을 초과한 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다. 온도 상한값을 초과한 서브 프로세서(43)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택 영역(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 온도 상한값을 초과한 서브 프로세서(43)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택 영역(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(401)의 논리 쓰레드 관 리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S506에 있어서, 논리 쓰레드 관리 처리부(457)는, 온도 상한값을 초과한 서브 프로세서(43)의 동작을 정지시킨다.
단계 S507에 있어서, 논리 쓰레드 관리 처리부(457)는, 이동처인 서브 프로세서로서 선택된 서브 프로세서(43)에, 단계 S505의 처리에 의해 퇴피된 콘텍스트를 리스토어한다. 즉, 논리 쓰레드 관리 처리부(457)는, 처리의 이동처인 서브 프로세서(43)가 마스터 장치 내의 서브 프로세서(43)일 때, 버스(41)를 통하여, 이동처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트를 공급하고, 처리의 이동처인 서브 프로세서(43)가 슬레이브 장치 내의 서브 프로세서(43)일 때, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 슬레이브 장치로서 동작하고 있는 정보 처리 장치(401)에 포함되는 이동처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트를 공급한다. 이동처인 서브 프로세서로서 선택된 서브 프로세서(43)에 있어서는, 공급된 콘텍스트를 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억하고, 처리는 단계 S519로 진행한다.
단계 S503에 있어서, 온도의 이상이 발생한 서브 프로세서(43)의 처리의 이동이 가능하지 않았다고 판단된 경우, 단계 S508에 있어서, 이상 대응 처리 제어부(455)는, 처리의 교환처인 서브 프로세서(43)를 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(457)에 공급한다. 구체적으로는, 이상 대응 처리 제어부(455)는, 네트워크(2)에 접속되어 있는 정보 처리 장치(401)의 정보 처리 컨트롤러(411)의 서브 프로세서(43) 중으로부터, 온도 검출 결과가 가장 낮은 것을 이동처인 서브 프로세서(43)로서 우선적으로 선택하도록 이루어져 있고, 이 조건을 충족시키는 서브 프로세서(43)가 복수 있는 경우, 서브 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택하도록 이루어져 있다.
단계 S509에 있어서, 논리 쓰레드 관리 처리부(457)는, 온도 상한값을 초과한 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다. 온도 상한값을 초과한 서브 프로세서(43)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 처리의 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택 영역(190)과 데이터 영역(189)의 내용을, 처리의 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 온도 상한값을 초과한 서브 프로세서(43)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터 럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 처리의 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 처리의 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및, 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(401)의 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S510에 있어서, 논리 쓰레드 관리 처리부(457)는, 온도 상한값을 초과한 서브 프로세서(43)의 동작을 정지시킨다.
단계 S511에 있어서, 논리 쓰레드 관리 처리부(457)는, 처리의 교환처로서 선택된 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다. 처리의 교환처로서 선택된 서브 프로세서(43)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 처 리의 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 처리의 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 처리의 교환처로서 선택된 서브 프로세서(43)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 처리의 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 처리의 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(401)의 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S512에 있어서, 논리 쓰레드 관리 처리부(457)는, 처리의 교환처로서 선택된 서브 프로세서(43)의 동작을 정지시킨다.
단계 S513에 있어서, 논리 쓰레드 관리 처리부(457)는, 퇴피된 2개의 서브 프로세서(43)의 콘텍스트를 교환하여 리스토어시킨다. 즉, 논리 쓰레드 관리 처리부(457)는, 처리의 교환처인 서브 프로세서로서 선택된 서브 프로세서(43)에, 단계 S509의 처리에 의해 퇴피된 콘텍스트를 리스토어시킴과 함께, 온도 상한값을 초과한 서브 프로세서(43)에, 단계 S511의 처리에 의해 퇴피된 콘텍스트를 리스토어시킨다. 구체적으로는, 논리 쓰레드 관리 처리부(217)는, 온도 상한값을 초과한 서브 프로세서(43) 또는 처리의 교환처인 서브 프로세서(43)가 마스터 장치 내의 서브 프로세서(43)일 때, 버스(41)를 통하여, 온도 상한값을 초과한 또는 교환처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트 중 대응하는 것을 공급하고, 온도 상한값을 초과한 서브 프로세서(43) 또는 처리의 교환처인 서브 프로세서(43)가 슬레이브 장치 내의 서브 프로세서(43)일 때, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 슬레이브 장치로서 동작하고 있는 정보 처리 장치(401)에 포함되는 온도 상한값을 초과한 또는 교환처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트 중 대응하는 것을 공급한다. 각각의 서브 프로세서(43)에는, 공급된 콘텍스트를 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억하고, 처리는 단계 S519로 진행한다.
단계 S502에 있어서, 온도의 이상이 발생한 것이 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)라고 판단된 경우, 단계 S514에 있어서, 이상 대응 처리 제 어부(455)는, 온도의 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)가, 마스터 장치인 정보 처리 장치(401)에 포함되는지의 여부를 판단한다. 단계 S514에 있어서, 온도의 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)가, 마스터 장치인 정보 처리 장치(401)에 포함된다고 판단된 경우, 처리는 후술하는 단계 S517로 진행한다.
단계 S514에 있어서, 온도의 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)는, 마스터 장치인 정보 처리 장치(401)에 포함되지 않는, 즉, 온도의 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)가, 슬레이브 장치인 정보 처리 장치(401)에 포함된다고 판단된 경우, 단계 S515에 있어서, 이상 대응 처리 제어부(455)는, 온도·전력 관리 테이블(452)을 참조하여, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)가 포함되는 정보 처리 장치(401)의 정보 처리 컨트롤러 전체의 처리가 이동 가능한지의 여부를 판단한다. 단계 S515에 있어서, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)가 포함되는 정보 처리 장치(401)의 정보 처리 컨트롤러 전체의 처리가 이동 가능하다고 판단된 경우, 처리는 단계 S504로 진행한다.
단계 S515에 있어서, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)가 포함되는 정보 처리 장치(401)의 정보 처리 컨트롤러 전체의 처리가 이동 가능하지 않았다고 판단된 경우, 단계 S516에 있어서, 이상 대응 처리 제어부(455)는, 온도·전력 관리 테이블(452)을 참조하여, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)가 포함되는 정보 처리 장치(401)의 정보 처리 컨트롤러 전체의 처리의 교환이 가능한지의 여부를 판단한다. 단계 S516에 있어서, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)가 포함되는 정보 처리 장치(401)의 정보 처리 컨트롤러 전체의 처리의 교환이 가능하다고 판단된 경우, 처리는 단계 S508로 진행한다.
단계 S514에 있어서, 온도의 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)는, 마스터 장치인 정보 처리 장치(401)에 포함된다고 판단된 경우, 또는 단계 S516에 있어서, 이상이 발생한 메인 프로세서(42) 또는 정보 처리 컨트롤러(411)가 포함되는 정보 처리 장치(401)의 정보 처리 컨트롤러 전체의 처리의 교환이 가능하지 않았다고 판단된 경우, 단계 S517에 있어서, 이상 대응 처리 제어부(455)는, 논리 쓰레드 관리 처리부(457)를 제어하여, 연산 처리부(161)에 의해 실행되고 있는 어플리케이션 프로그램을 일시 정지시키는 등하여, 항상 동작하는 상주 프로그램 등이 실행하는 일부의 필요한 처리를 제외하고, 메인 프로세서(42)의 처리를 일시 중단시킨다.
단계 S518에 있어서, 이상 대응 처리 제어부(455)는, 온도·전력 관리 테이블(452)을 참조하여, 온도 상태가 정상으로 되돌아왔는지의 여부를 판단한다. 단계 S518에 있어서, 온도 상태가 정상으로 되돌아오지 않았다고 판단된 경우, 온도 상태가 정상으로 되돌아왔다고 판단될 때까지 단계 S518의 처리가 반복된다.
단계 S501에 있어서, 온도에 이상이 발생하지 않았다고 판단된 경우, 단계 S507의 처리의 종료 후, 단계 S513의 처리의 종료 후, 또는 단계 S518에 있어서 온도 상태가 정상으로 되돌아왔다고 판단된 경우, 단계 S519에 있어서, 이상 대응 처 리 제어부(455)는, 전력의 이상이 발생했는지의 여부를 판단한다. 단계 S519에 있어서, 이상 대응 처리 제어부(455)는, 전력의 이상이 발생하지 않았다고 판단된 경우, 처리는 도 57의 단계 S477로 되돌아가, 단계 S478로 진행한다.
단계 S519에 있어서, 이상 대응 처리 제어부(455)는, 전력의 이상이 발생했다고 판단된 경우, 단계 S520에 있어서, 이상 대응 처리 제어부(455)는, 온도·전력 관리 테이블(452)을 참조하여, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(411)에 포함되는 모든 서브 프로세서(43)의 처리의 이동이 가능한지의 여부를 판단한다. 단계 S341에 있어서, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(411)에 포함되는 모든 서브 프로세서(43)의 처리의 이동이 가능하지 않았다고 판단된 경우, 처리는 후술하는 단계 S525로 진행한다.
단계 S520에 있어서, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(411)에 포함되는 모든 서브 프로세서(43)의 처리의 이동이 가능하다고 판단된 경우, 단계 S521에 있어서, 이상 대응 처리 제어부(455)는, 온도·전력 관리 테이블(452)을 참조하여, 네트워크(2)에 접속되어 있는 정보 처리 장치(401)의 정보 처리 컨트롤러(411) 중에 있어서, 처리의 이동처인 정보 처리 컨트롤러(411)를 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(457)에 공급한다. 구체적으로는, 이상 대응 처리 제어부(455)는, 온도·전력 관리 테이블(452)을 참조하여, 네트워크(2)에 접속되어 있는 정보 처리 장치(401)의 정보 처리 컨트롤러(411) 중, 현재 동작 중인 서브 프로세서(43)의 처리를 실행 가능한 정보 처리 컨트롤러(411)로서, 현재 가장 전력 소비량이 적은 정보 처리 컨트롤러(411)를 선택하거나, 배터리 또는 전지로 동작하 고 있는 다른 정보 처리 장치(401)의 정보 처리 컨트롤러(411)보다도, AC 전원으로 동작하고 있는 다른 정보 처리 장치(401)의 정보 처리 컨트롤러(411)를, 우선적으로 처리의 이동처로서 선택하도록 이루어져 있고, 이 조건을 충족시키는 정보 처리 컨트롤러(411)가 복수 있는 경우, 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것이 선택되도록 이루어져 있다.
또한, 처리의 이동처로서 선택된 정보 처리 컨트롤러(411)에 있어서, 어느 서브 프로세서(43)에 분산 처리가 할당될지는, 처리의 이동처로서 선택된 정보 처리 컨트롤러(411)의 메인 프로세서(42)의 논리 쓰레드 관리 처리부(457)가 결정한다.
단계 S522에 있어서, 논리 쓰레드 관리 처리부(457)는, 전력 상한값을 초과한 정보 처리 컨트롤러(411)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다.
온도 상한값을 초과한 정보 처리 컨트롤러(411)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 온도 상한값을 초과한 정보 처리 컨트롤러(411)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 이동처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(401)의 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S523에 있어서, 논리 쓰레드 관리 처리부(457)는, 전력 상한값을 초과한 정보 처리 컨트롤러(411)의 서브 프로세서(43)의 동작을 정지시킨다.
단계 S524에 있어서, 논리 쓰레드 관리 처리부(457)는, 이동처인 정보 처리 컨트롤러(411)의 서브 프로세서로서 선택된 서브 프로세서(43)에, 단계 S522의 처리에 의해 퇴피된 콘텍스트를 리스토어한다. 즉, 논리 쓰레드 관리 처리부(457)는, 처리의 이동처인 서브 프로세서(43)가 마스터 장치 내의 서브 프로세서(43)일 때, 버스(41)를 통하여, 이동처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트를 공급하고, 처리의 이동처인 서브 프로세서(43)가 슬레이브 장치 내의 서브 프로세서(43)일 때, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 슬레이브 장치로서 동작하고 있는 정보 처리 장치(401)에 포함되는 이동처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트를 공급한다. 이동처인 서브 프로세서로서 선택된 서브 프로세서(43)에 있어서는, 공급된 콘텍스트를 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억하고, 처리는 도 57의 단계 S477로 되돌아가, 단계 S478로 진행한다.
단계 S520에 있어서, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(411)에 포함되는 모든 서브 프로세서(43)의 처리의 이동이 가능하지 않았다고 판단된 경우, 단계 S525에 있어서, 이상 대응 처리 제어부(455)는, 온도·전력 관리 테이블(452)을 참조하여, 네트워크(2)에 접속되어 있는 정보 처리 장치(401)의 정보 처리 컨트롤러(411)의 서브 프로세서(43) 중으로부터, 처리의 교환처로 되는 정보 처리 컨트롤러(411)의 서브 프로세서(43)를 선택하고, 선택 결과를 논리 쓰레드 관리 처리부(457)에 공급한다. 구체적으로는, 이상 대응 처리 제어부(455)는, 네트워크(2)에 접속되어 있는 정보 처리 장치(401)의 정보 처리 컨트롤러(411) 중으로부터, 전력 측정 결과가 가장 낮은 것을 교환처의 정보 처리 컨트롤러(411)로서 우선적으로 선택하거나, 또는 배터리 또는 전지로 동작하고 있는 다른 정보 처리 장치(401)의 정보 처리 컨트롤러(411)보다도, AC 전원으로 동작하고 있는 다른 정보 처리 장 치(401)의 정보 처리 컨트롤러(411)를, 우선적으로 처리의 교환처로서 선택하도록 이루어져 있고, 이 조건을 충족시키는 정보 처리 컨트롤러(411)가 복수 있는 경우, 프로세서 ID로서 할당되어 있는 번호가 가장 빠른 것을 선택하도록 이루어져 있다.
또한, 처리에 필요한, 공통으로 사용하는 프로그램과 모델 데이터가, 분산 처리가 할당되어 있지 않은 서브 프로세서(43)의 로컬 스토리지(51) 중의 어느 하나에 미리 공급되어 있는 경우, 공통으로 사용하는 프로그램과 모델 데이터가 로컬 스토리지(51)에 보존되어 있는 서브 프로세서(43)를 갖는 정보 처리 컨트롤러(411)가 우선해서 선택되도록 해도 좋다.
또한, 처리의 교환처로서 선택된 정보 처리 컨트롤러(411)에 있어서, 어느 서브 프로세서(43)에 분산 처리가 할당될지는, 처리의 교환처로서 선택된 정보 처리 컨트롤러(411)의 메인 프로세서(42)의 논리 쓰레드 관리 처리부(457)가 결정한다.
단계 S526에 있어서, 논리 쓰레드 관리 처리부(457)는, 전력 상한값을 초과한, 즉, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(411)의 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다.
소비 전력량의 이상이 발생한 정보 처리 컨트롤러(411)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후 , 처리의 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 처리의 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(411)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 처리의 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 처리의 교환처인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(401)의 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S527에 있어서, 논리 쓰레드 관리 처리부(457)는, 전력 상한값을 초과 한, 즉, 소비 전력량의 이상이 발생한 정보 처리 컨트롤러(411)의 서브 프로세서(43)의 동작을 정지시킨다.
단계 S528에 있어서, 논리 쓰레드 관리 처리부(457)는, 처리의 교환처로서 선택된 정보 처리 컨트롤러(411)의 서브 프로세서(43)에 의해 실행되고 있던 처리에 관한 콘텍스트를 퇴피시킨다.
처리의 교환처로서 선택된 정보 처리 컨트롤러(411)가 마스터 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 처리의 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 처리의 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
또한, 처리의 교환처로서 선택된 정보 처리 컨트롤러(411)가 슬레이브 장치였던 경우, 인터럽트 제어부(185)는, 실행하고 있는 처리의 콘텍스트의 퇴피를 명령하는 인터럽트 명령을 받아, 연산 처리부(181)의 처리를 정지시키고, 쓰레드 이동·교환 처리부(186)는, 실행 중인 프로그램의 콘텍스트(레지스터(182), 부동 소 수점 레지스터(183) 및 프로그램 카운터(184)의 각각의 값)를 스택 영역(190)에 퇴피시킨 후, 처리의 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 미리 보유하고 있는 경우에 스택(190)과 데이터 영역(189)의 내용을, 처리의 교환원인 서브 프로세서(43)가, 공통으로 사용하는 프로그램과 모델 데이터를 보유하고 있지 않은 경우에 코드 영역(187) 내지 스택 영역(190)의 데이터를, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 마스터 장치로서 동작하고 있는 정보 처리 장치(401)의 논리 쓰레드 관리 처리부(457)가 관리하는 정보 기억 영역(메인 프로세서(42)의 로컬 스토리지(51)의 기억 영역 중의 일부)으로 전송한다.
단계 S529에 있어서, 논리 쓰레드 관리 처리부(457)는, 처리의 교환처로서 선택된 정보 처리 컨트롤러(411)의 서브 프로세서(43)의 동작을 정지시킨다.
단계 S530에 있어서, 논리 쓰레드 관리 처리부(457)는, 퇴피된 2개의 정보 처리 컨트롤러(411)의 서브 프로세서(43)의 콘텍스트를 교환하여 리스토어시킨다. 즉, 논리 쓰레드 관리 처리부(457)는, 처리의 교환처로서 선택된 정보 처리 컨트롤러(411)의 서브 프로세서(43)에, 단계 S526의 처리에 의해 퇴피된 콘텍스트를 리스토어함과 함께, 전력 상한값을 초과한 정보 처리 컨트롤러(411)의 서브 프로세서(43)에, 단계 S528의 처리에 의해 퇴피된 콘텍스트를 리스토어한다. 구체적으로는, 논리 쓰레드 관리 처리부(457)는, 전력 상한값을 초과한 정보 처리 컨트롤러(411) 또는 처리의 이동처인 정보 처리 컨트롤러(411)가 마스터 장치 내의 정보 처리 컨트롤러(411)일 때, 버스(41)를 통하여, 전력 상한값을 초과한 또는 이동처인 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트 중 대응하는 것을 공급하고, 온도 상한값을 초과한 정보 처리 컨트롤러(411) 또는 처리의 이동처인 정보 처리 컨트롤러(411)가 슬레이브 장치 내의 정보 처리 컨트롤러(411)일 때, 버스(41), 버스(14), 및 통신부(16), 및 네트워크(2)를 통하여, 슬레이브 장치로서 동작하고 있는 정보 처리 장치(401)에 포함되는 전력 상한값을 초과한 또는 이동처인 정보 처리 컨트롤러(411)의 서브 프로세서(43)에, 자기 자신이 관리하는 정보 기억 영역에 기억되어 있는 콘텍스트 중 대응하는 것을 공급한다. 각각의 정보 처리 컨트롤러(411)의 서브 프로세서(43)에는, 공급된 콘텍스트를 코드 영역(187) 내지 스택 영역(190)의 대응하는 부분에 기억하고, 처리는 도 57의 단계 S477로 되돌아가, 단계 S478로 진행한다.
이러한 처리에 의해, 소비 전력량의 이상의 발생 개소와, 네트워크(2)에 접속되어 있는 정보 처리 장치(401)의 각각의 정보 처리 컨트롤러(411)에 있어서의 동작 및 온도 계측값 또는 전력 측정값에 기초하여, 분산 처리 중의 일부가 이동되는지, 또는 분산 처리 중의 일부가 교환되는지가 판단되고, 처리의 이동처 또는 교환처가 선택되도록 이루어져 있다.
다음으로, 도 60의 플로우차트를 참조하여, 도 57를 이용하여 설명한 마스터 장치의 전력 정보 관리 처리와 병행해서 실행되는, 슬레이브 장치의 온도·전력 정보 관리 처리에 대하여 설명한다.
단계 S561에 있어서,슬레이브 장치로서 동작하고 있는 정보 처리 장치(401)의 온도·전력 정보 취득부(451)는, 인터럽트 제어부(165)로부터 타이머 인터럽트 가 들어왔는지의 여부를 판단한다. 단계 S561에 있어서, 타이머 인터럽트가 들어오지 않았다고 판단된 경우, 타이머 인터럽트가 들어왔다고 판단될 때까지 단계 S561의 처리가 반복된다.
단계 S561에 있어서, 타이머 인터럽트가 들어왔다고 판단된 경우, 단계 S562에 있어서, 온도·전력 정보 취득부(451)는, 온도 검출부(121) 및 전력 측정부(321)의 각각으로부터 전력 정보를 취득한다.
단계 S563에 있어서, 온도·전력 정보 취득부(451)는, 단계 S562에 있어서 취득된 온도 정보 및 전력 정보에 기초하여, 온도·전력 관리 테이블(452)을 갱신한다.
단계 S564에 있어서, 온도·전력 관리 정보 송수신 제어부(456)는, 단계 S563에 있어서 갱신된 온도·전력 관리 테이블(452)을, 통신부(16) 및 네트워크(2)를 통하여 마스터 장치로서 동작하고 있는 정보 처리 장치(401)에 송신하고, 처리는 단계 S561로 되돌아가, 그 이후의 처리가 반복된다.
이러한 처리에 의해, 슬레이브 장치의 온도·전력 관리 테이블이 마스터 장치로 송신된다. 송신된 각각의 슬레이브 장치의 온도·전력 관리 테이블은, 마스터 장치에 있어서 관리된다.
도 56 내지 도 60를 이용하여 설명한 처리에 의해, 정보 처리 컨트롤러(411)의 각 부의 온도를 계측하는 온도 검출부(121) 및 소비 전력을 측정하는 전력 측정부(321)가 설치되어 있는 정보 처리 장치(401)가, 복수개 네트워크(2)에 접속되어 있는 경우의 제1 패턴의 전력 정보 및 처리의 이동 또는 교환의 제어를 이용하여, 실행 중인 처리를 정지시키는 것을 최소한으로 억제하면서, 열 폭주 등에 의한 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
또한, 여기서는, 온도 정보 및 전력 정보를 이용하여, 분산 처리를 제어하는 실시 형태의 제1 패턴에 있어서의 경우만을 설명했지만, 제2 패턴 및 제3 패턴에 있어서도, 온도 정보를 이용하여 분산 처리를 제어하는 경우, 또는 전력 정보를 이용하여 분산 처리를 제어하는 경우와 마찬가지로 하여, 온도·전력 정보 송신 커맨드와 온도·전력 정보 회신 커맨드와의 수수, 또는 서브 프로세서 프로그램 이동 요구 커맨드와 서브 프로세서 프로그램 이동 회신 커맨드와의 수수에 의해, 온도 정보 및 전력 정보를 이용하여 분산 처리를 제어하고, 실행 중인 처리를 정지시키는 것을 최소한으로 억제하면서, 열 폭주 등에 의한 소자의 파괴나 처리 속도의 저하를 방지하도록 할 수 있다.
또한, 1개의 정보 처리 장치에, 도 53을 이용하여 설명한 정보 처리 컨트롤러(411)가 복수 설치되어 있는 경우, 또는 도 53을 이용하여 설명한 정보 처리 컨트롤러(411)가 복수 설치되어 있는 정보 처리 장치가 네트워크(2)에 접속되어 있는 경우에도, 본 발명은 적용 가능한 것은 물론이다.
상술한 일련의 처리는, 소프트웨어에 의해 실행할 수도 있다. 그 소프트웨어는, 그 소프트웨어를 구성하는 프로그램이 전용의 하드웨어에 조립되어 있는 컴퓨터 또는 각종 프로그램을 인스톨함으로써, 각종 기능을 실행하는 것이 가능한, 예를 들면 범용의 퍼스널 컴퓨터 등에 기록 매체로부터 인스톨된다.
이 기록 매체는, 도 1 등에 도시하는 바와 같이, 컴퓨터와는 별도로, 유저에 게 프로그램을 제공하기 위해 배포되는, 프로그램이 기록되어 있는 자기 디스크(61)(플렉시블 디스크를 포함한다), 광 디스크(62)(CD-ROM(Compact Disk-Read Only Memory), DVD(Digital Versatile Disk)를 포함한다), 광 자기 디스크(63)(MD(Mini-Disk)(상표)를 포함한다), 혹은 반도체 메모리(64) 등으로 이루어지는 패키지 미디어 등에 의해 구성된다.
또한, 본 명세서에 있어서, 기록 매체에 기록되는 프로그램을 기술하는 단계는, 기재된 순서를 따라 시계열적으로 행해지는 처리는 물론, 반드시 시계열적으로 처리되지 않더라도, 병렬적 혹은 개별로 실행되는 처리도 포함하는 것이다.
또한, 본 명세서에 있어서, 시스템이라 함은 복수의 장치에 의해 구성되는 장치 전체를 나타내는 것이다.
본 발명에 따르면, 분산 처리를 실행시킬 수 있다. 특히, 프로세서의 온도 정보가 취득되어, 온도에 이상이 발생한 경우, 처리의 할당이 변경되도록 분산 처리가 제어되므로, 논리 쓰레드로서 동작하고 있는 기능을 정상 상태로 유지하여, 소자의 열화를 방지하면서, 신뢰성이 높은 정보 처리를 실행시키도록 할 수 있다.
또한, 다른 본 발명에 따르면, 분산 처리를 실행시킬 수 있다. 특히, 프로세서가 소비하는 전력에 관한 정보가 취득되어, 소비 전력량에 이상이 발생한 경우, 처리의 할당이 변경되도록 분산 처리가 제어되므로, 논리 쓰레드로서 동작하고 있는 기능을 정상 상태로 유지하여, 소자의 열화를 방지하면서, 신뢰성이 높은 정보 처리를 실행시키도록 할 수 있다.

Claims (28)

  1. 제1 정보 처리 수단과,
    복수의 제2 정보 처리 수단과,
    상기 제2 정보 처리 수단의 근방의 온도를 각각 검출하는 복수의 온도 검출 수단을 구비하고,
    상기 제1 정보 처리 수단은,
    어플리케이션 프로그램의 실행을 제어하는 어플리케이션 프로그램 실행 제어 수단과,
    상기 어플리케이션 프로그램 실행 제어 수단에 의해 상기 어플리케이션 프로그램이 실행 제어될 때에, 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 상기 처리 단위에 대응하는 상기 기능을 제공하기 위해서 복수의 상기 제2 정보 처리 수단에 처리를 할당하는 분산 처리를 제어하는 분산 처리 제어 수단과,
    상기 온도 검출 수단에 의해 검출된 상기 온도에 관한 제1 정보 및 상기 제2 정보 처리 수단에 의한 처리의 실행에 관한 제2 정보를 기록하는 기록 수단과,
    상기 온도 검출 수단에 의해 검출된 상기 온도의 이상을 검출하는 이상 검출 수단과,
    상기 이상 검출 수단에 의해 상기 온도의 이상이 검출된 경우, 상기 분산 처리 제어 수단에 의한 상기 분산 처리를 제어하는 이상시 제어 수단을 구비하고,
    상기 이상시 제어 수단은, 상기 이상 검출 수단에 의해 상기 온도의 이상이 검출된 경우, 상기 기록 수단에 의해 기록되어 있는 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 온도의 이상이 검출된 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리 제어 수단을 제어하는 것을 특징으로 하는 정보 처리 장치.
  2. 제1항에 있어서,
    상기 이상시 제어 수단은, 상기 온도의 이상이 검출되어 있지 않은 다른 상기 제2 정보 처리 수단 중의 어느 하나를 선택하고, 상기 온도의 이상이 검출된 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리를, 선택된 다른 상기 제2 정보 처리 수단이 실행하도록, 처리의 할당을 변경하도록, 상기 분산 처리 제어 수단을 제어하는 것을 특징으로 하는 정보 처리 장치.
  3. 제2항에 있어서,
    상기 이상시 제어 수단은, 상기 기록 수단에 의해 기록되어 있는 상기 제1 정보에 기초하여, 상기 온도 검출 수단에 의해 검출된 상기 근방의 온도가 낮은 상기 제2 정보 처리 수단을 우선적으로 처리의 할당처로서 선택하는 것을 특징으로 하는 청구항 2에 기재된 정보 처리 장치.
  4. 제2항에 있어서,
    상기 이상시 제어 수단은, 상기 기록 수단에 의해 기록되어 있는 상기 제2 정보에 기초하여, 처리가 실행되고 있지 않은 상기 다른 제2 정보 처리 수단을 우선적으로 처리의 할당처로서 선택하는 것을 특징으로 하는 정보 처리 장치.
  5. 제1항에 있어서,
    상기 이상시 제어 수단은, 상기 온도의 이상이 검출되어 있지 않은 다른 상기 제2 정보 처리 수단 중의 어느 하나를 선택하고, 상기 온도의 이상이 검출된 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리와, 선택된 다른 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리가 교환되어 실행됨으로써, 처리의 할당이 변경되도록, 상기 분산 처리 제어 수단을 제어하는 것을 특징으로 하는 정보 처리 장치.
  6. 제5항에 있어서,
    상기 이상시 제어 수단은, 상기 기록 수단에 의해 기록되어 있는 상기 제1 정보에 기초하여, 상기 온도 검출 수단에 의해 검출된 상기 근방의 온도가 낮은 상기 제2 정보 처리 수단을 우선적으로 처리의 교환처로서 선택하는 것을 특징으로 하는 정보 처리 장치.
  7. 제5항에 있어서,
    상기 이상시 제어 수단은, 상기 기록 수단에 의해 기록되어 있는 상기 제2 정보에 기초하여, 처리가 실행되고 있지 않은 다른 상기 제2 정보 처리 수단을 우선적으로 처리의 교환처로서 선택하는 것을 특징으로 하는 정보 처리 장치.
  8. 제1항에 있어서,
    다른 정보 처리 장치와 정보를 통신하는 통신 수단을 더 구비하는 것을 특징으로 하는 정보 처리 장치.
  9. 제8항에 있어서,
    상기 통신 수단에 의해 통신 가능한 적어도 1개의 상기 다른 정보 처리 장치로 구성되는 네트워크 시스템에서, 자기 자신이 마스터 장치인 경우,
    상기 통신 수단은, 상기 다른 정보 처리장치로부터, 상기 다른 정보 처리 장치에서의 상기 제1 정보 및 상기 제2 정보를 수신하고,
    상기 기록 수단은, 상기 통신 수단에 의해 수신된 상기 다른 정보 처리 장치의 상기 제1 정보 및 상기 제2 정보를 더 기록하고,
    상기 이상 검출 수단은, 상기 기록 수단에 의해 기록된 상기 다른 정보 처리 장치의 상기 제1 정보에 기초하여, 상기 통신 수단에 의해 통신 가능한 상기 다른 정보 처리 장치에서 발생한 온도의 이상을 더 검출하고,
    상기 이상시 제어 수단은, 상기 이상 검출 수단에 의해 상기 온도의 이상이 검출된 경우, 상기 기록 수단에 의해 기록되어 있는 자기 자신 및 상기 다른 정보 처리 장치의 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 온도의 이상이 검 출된 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리 제어 수단을 제어하고,
    상기 네트워크 시스템에서, 자기 자신이 슬레이브 장치인 경우,
    상기 통신 수단은, 상기 기록 수단에 의해 기록되어 있는 상기 제1 정보 및 상기 제2 정보를, 상기 네트워크 시스템에서의 마스터 장치로 송신하는 것을 특징으로 하는 정보 처리 장치.
  10. 제8항에 있어서,
    상기 이상시 제어 수단은, 상기 이상 검출 수단에 의해 상기 온도의 이상이 검출된 경우, 상기 통신 수단에 의해 통신 가능한 상기 다른 정보 처리 장치에, 상기 다른 정보 처리 장치에서의 상기 제1 정보 및 상기 제2 정보의 송신을 요구하는 제1 신호를 생성하고,
    상기 통신 수단은, 상기 제1 신호를 상기 다른 정보 처리 장치로 송신함과 함께, 상기 다른 정보 처리장치로부터, 상기 제1 정보 및 상기 제2 정보에 대응하는 제2 신호를 수신하고,
    상기 이상시 제어 수단은, 상기 통신 수단에 의해 수신된 상기 제2 신호에 기초하여, 상기 온도의 이상이 검출된 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리 제어 수단을 제어하는 것을 특징으로 하는 정보 처리 장치.
  11. 제8항에 있어서,
    상기 이상시 제어 수단은, 상기 이상 검출 수단에 의해 상기 온도의 이상이 검출된 경우, 상기 통신 수단에 의해 통신 가능한 상기 다른 정보 처리 장치에, 상기 온도의 이상이 검출된 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 실행을 요구하는 제1 신호를 생성하고,
    상기 통신 수단은, 상기 제1 신호를 상기 다른 정보 처리 장치로 송신함과 함께, 상기 다른 정보 처리장치로부터, 상기 제1 신호에 대한 회신인 제2 신호를 수신하고,
    상기 이상시 제어 수단은, 상기 통신 수단에 의해 수신된 상기 제2 신호에 기초하여, 상기 온도의 이상이 검출된 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리 제어 수단을 제어하는 것을 특징으로 하는 정보 처리 장치.
  12. 제1항에 있어서,
    상기 제1 정보 처리 수단 및 상기 제2 정보 처리 수단을 포함하는 정보 처리 유닛을 복수 포함하는 것을 특징으로 하는 정보 처리 장치.
  13. 제1항에 있어서,
    상기 제1 정보 처리 수단 및 상기 제2 정보 처리 수단을 포함하는 정보 처리 유닛의 소비 전력을 측정하는 전력 측정 수단을 더 구비하고,
    상기 기록 수단은, 상기 전력 측정 수단에 의해 측정된 상기 소비 전력에 관한 정보를 더 기록하고,
    상기 이상 검출 수단은, 상기 전력 측정 수단에 의해 측정된 상기 소비 전력의 이상을 더 검출하고,
    상기 이상시 제어 수단은, 상기 이상 검출 수단에 의해 상기 온도의 이상 또는 상기 소비 전력의 이상이 검출된 경우, 상기 분산 처리 제어 수단에 의한 상기 분산 처리를 제어하는 것을 특징으로 하는 정보 처리 장치.
  14. 제1 정보 처리 수단과,
    복수의 제2 정보 처리 수단을 구비하는 정보 처리 장치의 정보 처리 방법으로서,
    상기 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행 제어에 의해서, 복수의 상기 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 상기 처리 단위에 대응하는 상기 기능을 제공하기 위한 분산 처리의 개시를 요구하는 분산 처리 개시 요구 단계와,
    상기 제2 정보 처리 수단 근방에 발생하는 온도 정보를 취득하는 온도 정보 취득 단계와,
    상기 온도 정보 취득 단계의 처리에 의해 취득된 상기 온도 정보의 이상을 검출하는 이상 검출 단계와,
    상기 이상 검출 단계의 처리에 의해 검출된 상기 온도의 이상은, 복수의 상 기 제2 정보 처리 수단 중의 어느 근방에서 발생했는지를 판단하는 판단 단계와,
    상기 온도 정보 취득 단계의 처리에 의해 취득된 상기 온도 정보 및 상기 판단 단계의 처리에 의한 판단 수단에 의한 판단 결과에 기초하여, 상기 온도의 이상이 검출된 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리를 제어하는 분산 처리 제어 단계를 포함하는 것을 특징으로 하는 정보 처리 방법.
  15. 제1 정보 처리 수단과,
    복수의 제2 정보 처리 수단을 이용한 분산 처리를 제어하는 컴퓨터가 실행 가능한 프로그램으로서,
    상기 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행 제어에 의해서, 복수의 상기 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 상기 처리 단위에 대응하는 상기 기능을 제공하기 위한 분산 처리의 개시를 요구하는 분산 처리 개시 요구 단계와,
    상기 제2 정보 처리 수단 근방에 발생하는 온도 정보를 취득하는 온도 정보 취득 단계와,
    상기 온도 정보 취득 단계의 처리에 의해 취득된 상기 온도 정보의 이상을 검출하는 이상 검출 단계와,
    상기 이상 검출 단계의 처리에 의해 검출된 상기 온도의 이상은, 복수의 상기 제2 정보 처리 수단 중의 어느 근방에서 발생했는지를 판단하는 판단 단계와,
    상기 온도 정보 취득 단계의 처리에 의해 취득된 상기 온도 정보 및 상기 판단 단계의 처리에 의한 판단 수단에 의한 판단 결과에 기초하여, 상기 온도의 이상이 검출된 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리를 제어하는 분산 처리 제어 단계를 포함하는 것을 특징으로 하는 처리를 컴퓨터에 실행시키기 위한 프로그램.
  16. 제1 정보 처리 수단과,
    복수의 제2 정보 처리 수단과,
    상기 제1 정보 처리 수단 및 상기 제2 정보 처리 수단을 포함하는 정보 처리 유닛이 소비하는 전력을 측정하는 전력 측정 수단과,
    다른 정보 처리 장치와 정보를 통신하는 통신 수단을 구비하고,
    상기 제1 정보 처리 수단은,
    어플리케이션 프로그램의 실행을 제어하는 어플리케이션 프로그램 실행 제어 수단과,
    상기 어플리케이션 프로그램 실행 제어 수단에 의해 상기 어플리케이션 프로그램이 실행 제어될 때에, 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 상기 처리 단위에 대응하는 상기 기능을 제공하기 위해서 복수의 상기 제2 정보 처리 수단에 처리를 할당하는 분산 처리를 제어하는 분산 처리 제어 수단과,
    상기 전력 측정 수단에 의해 측정된 상기 전력에 관한 제1 정보 및 상기 제2 정보 처리 수단에 의한 처리의 실행에 관한 제2 정보를 기록하는 기록 수단과,
    상기 전력 측정 수단에 의해 측정된 상기 전력의 이상을 검출하는 이상 검출 수단과,
    상기 이상 검출 수단에 의해 상기 전력의 이상이 검출된 경우, 상기 분산 처리 제어 수단에 의한 상기 분산 처리를 제어하는 이상시 제어 수단을 구비하고,
    상기 이상시 제어 수단은, 상기 이상 검출 수단에 의해 상기 전력의 이상이 검출된 경우, 상기 기록 수단에 의해 기록되어 있는 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 전력의 이상이 검출된 상기 정보 처리 유닛에 포함되는 복수의 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리 제어 수단을 제어하는 것을 특징으로 하는 정보 처리 장치.
  17. 제16항에 있어서,
    상기 통신 수단에 의해 통신 가능한 적어도 1개의 상기 다른 정보 처리 장치로 구성되는 네트워크 시스템에서, 자기 자신이 마스터 장치인 경우,
    상기 통신 수단은, 상기 다른 정보 처리장치로부터, 상기 다른 정보 처리 장치에서의 상기 제1 정보 및 상기 제2 정보를 수신하고,
    상기 기록 수단은, 상기 통신 수단에 의해 수신된 상기 다른 정보 처리 장치의 상기 제1 정보 및 상기 제2 정보를 더 기록하고,
    상기 이상 검출 수단은, 상기 기록 수단에 의해 기록된 상기 다른 정보 처리 장치의 상기 제1 정보에 기초하여, 상기 통신 수단에 의해 통신 가능한 상기 다른 정보 처리 장치에서 발생한 전력의 이상을 더 검출하고,
    상기 이상시 제어 수단은, 상기 이상 검출 수단에 의해 상기 전력의 이상이 검출된 경우, 상기 기록 수단에 의해 기록되어 있는 자기 자신 및 상기 다른 정보 처리 장치의 상기 제1 정보 및 상기 제2 정보에 기초하여, 상기 전력의 이상이 검출된 상기 정보 처리 유닛에 포함되는 복수의 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리 제어 수단을 제어하고,
    상기 네트워크 시스템에서, 자기 자신이 슬레이브 장치인 경우,
    상기 통신 수단은, 상기 기록 수단에 의해 기록되어 있는 상기 제1 정보 및 상기 제2 정보를, 상기 네트워크 시스템에서의 마스터 장치로 송신하는 것을 특징으로 하는 정보 처리 장치.
  18. 제16항에 있어서,
    상기 이상시 제어 수단은, 상기 이상 검출 수단에 의해 상기 전력의 이상이 검출된 경우, 상기 통신 수단에 의해 통신 가능한 상기 다른 정보 처리 장치에, 상기 다른 정보 처리 장치에서의 상기 제1 정보 및 상기 제2 정보의 송신을 요구하는 제1 신호를 생성하고,
    상기 통신 수단은, 상기 제1 신호를 상기 다른 정보 처리 장치로 송신함과 함께, 상기 다른 정보 처리 장치로부터, 상기 제1 정보 및 상기 제2 정보에 대응하는 제2 신호를 수신하고,
    상기 이상시 제어 수단은, 상기 통신 수단에 의해 수신된 상기 제2 신호에 기초하여, 상기 전력의 이상이 검출된 상기 정보 처리 유닛에 포함되는 복수의 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리 제어 수단을 제어하는 것을 특징으로 하는 정보 처리 장치.
  19. 제16항에 있어서,
    상기 이상시 제어 수단은, 상기 이상 검출 수단에 의해 상기 전력의 이상이 검출된 경우, 상기 통신 수단에 의해 통신 가능한 상기 다른 정보 처리 장치에, 상기 전력의 이상이 검출된 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 실행을 요구하는 제1 신호를 생성하고,
    상기 통신 수단은, 상기 제1 신호를 상기 다른 정보 처리 장치로 송신함과 함께, 상기 다른 정보 처리장치로부터, 상기 제1 신호에 대한 회신인 제2 신호를 수신하고,
    상기 이상시 제어 수단은, 상기 통신 수단에 의해 수신된 상기 제2 신호에 기초하여, 상기 전력의 이상이 검출된 상기 정보 처리 유닛에 포함되는 복수의 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리 제어 수단을 제어하는 것을 특징으로 하는 정보 처리 장치.
  20. 제16항에 있어서,
    상기 이상시 제어 수단은, 상기 전력의 이상이 검출되어 있지 않은 다른 정보 처리 유닛 중의 어느 하나를 선택하고, 상기 전력의 이상이 검출된 상기 정보 처리 유닛에 포함되는 복수의 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리가, 선택된 다른 상기 정보 처리 유닛에 포함되는 복수의 상기 제2 정보 처리 수단에 의해 실행됨으로써, 처리의 할당이 변경되도록, 상기 분산 처리 제어 수단을 제어하는 것을 특징으로 하는 정보 처리 장치.
  21. 제20항에 있어서,
    상기 이상시 제어 수단은, 상기 전력 검출 수단에 의해 검출된 상기 전력이 적은 상기 정보 처리 유닛을 우선적으로 처리의 할당처로서 선택하는 것을 특징으로 하는 정보 처리 장치.
  22. 제20항에 있어서,
    상기 이상시 제어 수단은, 전력원으로서 전지 또는 배터리를 이용하고 있는 상기 정보 처리 유닛보다, 전력원으로서 AC 전원을 이용하고 있는 상기 정보 처리 유닛을 우선적으로 처리의 할당처로서 선택하는 것을 특징으로 하는 정보 처리 장치.
  23. 제16항에 있어서,
    상기 이상시 제어 수단은, 상기 전력의 이상이 검출되어 있지 않은 다른 상기 정보 처리 유닛 중의 어느 하나를 선택하고, 상기 전력의 이상이 검출된 상기 정보 처리 유닛에 포함되는 복수의 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리와, 선택된 다른 상기 정보 처리 유닛에 포함되는 복수의 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리가 교환되어 실행됨으로써, 처리의 할당이 변경되도록, 상기 분산 처리 제어 수단을 제어하는 것을 특징으로 하는 정보 처리 장치.
  24. 제23항에 있어서,
    상기 이상시 제어 수단은, 상기 전력 검출 수단에 의해 검출된 상기 전력이 적은 상기 정보 처리 유닛을 우선적으로 처리의 교환처로서 선택하는 것을 특징으로 하는 정보 처리 장치.
  25. 제23항에 있어서,
    상기 이상시 제어 수단은, 전력원으로서 전지 또는 배터리를 이용하고 있는 상기 정보 처리 유닛보다, 전력원으로서 AC 전원을 이용하고 있는 상기 정보 처리 유닛을 우선적으로 처리의 교환처로서 선택하는 것을 특징으로 하는 정보 처리 장치.
  26. 제16항에 있어서,
    상기 정보 처리 유닛은 복수 구비되어 있는 것을 특징으로 하는 정보 처리 장치.
  27. 제1 정보 처리 수단과,
    복수의 제2 정보 처리 수단과,
    다른 정보 처리 장치와 정보를 통신하는 통신 수단을 구비하는 정보 처리 장치의 정보 처리 방법으로서,
    상기 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행 제어에 의해서, 복수의 상기 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 상기 처리 단위에 대응하는 상기 기능을 제공하기 위한 분산 처리의 개시를 요구하는 분산 처리 개시 요구 단계와,
    상기 제1 정보 처리 수단 및 상기 제2 정보 처리 수단을 포함하는 정보 처리 유닛이 소비하는 전력에 관한 정보를 취득하는 전력 정보 취득 단계와,
    상기 전력 정보 취득 단계의 처리에 의해 취득된 상기 전력에 관한 정보의 이상을 검출하는 이상 검출 단계와,
    상기 전력 정보 취득 단계의 처리에 의해 취득된 상기 전력 정보에 기초하여, 상기 전력의 이상이 검출된 상기 정보 처리 유닛의 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리를 제어하는 분산 처리 제어 단계를 포함하는 것을 특징으로 하는 정보 처리 방법.
  28. 제1 정보 처리 수단과,
    복수의 제2 정보 처리 수단과,
    다른 정보 처리 장치와 정보를 통신하는 통신 수단을 이용한 분산 처리를 제어하는 컴퓨터가 실행 가능한 프로그램으로서,
    상기 제1 정보 처리 수단에 의한 어플리케이션 프로그램의 실행 제어에 의해서, 복수의 상기 제2 정보 처리 수단에 할당되는 복수의 처리를 통합하여 하나의 기능을 제공하는 처리 단위로 하고, 상기 처리 단위에 대응하는 상기 기능을 제공하기 위한 분산 처리의 개시를 요구하는 분산 처리 개시 요구 단계와,
    상기 제1 정보 처리 수단 및 상기 제2 정보 처리 수단을 포함하는 정보 처리 유닛이 소비하는 전력에 관한 정보를 취득하는 전력 정보 취득 단계와,
    상기 전력 정보 취득 단계의 처리에 의해 취득된 상기 전력에 관한 정보의 이상을 검출하는 이상 검출 단계와,
    상기 전력 정보 취득 단계의 처리에 의해 취득된 상기 전력 정보에 기초하여, 상기 전력의 이상이 검출된 상기 정보 처리 유닛의 상기 제2 정보 처리 수단에 의해 실행되고 있는 처리의 할당을 변경하도록, 상기 분산 처리를 제어하는 분산 처리 제어 단계를 포함하는 것을 특징으로 하는 처리를 컴퓨터에 실행시키기 위한 프로그램.
KR1020050060010A 2004-07-05 2005-07-05 정보 처리 장치 및 정보 처리 방법과 프로그램 KR20060049835A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004198300A JP4465598B2 (ja) 2004-07-05 2004-07-05 集積回路およびその処理制御方法、並びに、プログラム
JPJP-P-2004-00198300 2004-07-05

Publications (1)

Publication Number Publication Date
KR20060049835A true KR20060049835A (ko) 2006-05-19

Family

ID=35149503

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050060010A KR20060049835A (ko) 2004-07-05 2005-07-05 정보 처리 장치 및 정보 처리 방법과 프로그램

Country Status (6)

Country Link
US (2) US7536229B2 (ko)
EP (1) EP1615134A3 (ko)
JP (1) JP4465598B2 (ko)
KR (1) KR20060049835A (ko)
CN (1) CN100383707C (ko)
TW (1) TWI289764B (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4465598B2 (ja) * 2004-07-05 2010-05-19 ソニー株式会社 集積回路およびその処理制御方法、並びに、プログラム
US20060107262A1 (en) * 2004-11-03 2006-05-18 Intel Corporation Power consumption-based thread scheduling
US9063785B2 (en) * 2004-11-03 2015-06-23 Intel Corporation Temperature-based thread scheduling
US8433770B2 (en) * 2005-07-29 2013-04-30 Broadcom Corporation Combined local and network storage interface
US20070038749A1 (en) * 2005-07-29 2007-02-15 Broadcom Corporation Combined local and network storage interface
US8812169B2 (en) * 2005-10-31 2014-08-19 Hewlett-Packard Development Company, L.P. Heat sink verification
JP2007172359A (ja) * 2005-12-22 2007-07-05 Hitachi Ltd コンピュータシステム
US8051276B2 (en) * 2006-07-07 2011-11-01 International Business Machines Corporation Operating system thread scheduling for optimal heat dissipation
JP5046322B2 (ja) 2006-11-09 2012-10-10 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP2010066785A (ja) * 2006-12-08 2010-03-25 Nec Corp 半導体集積回路、半導体集積回路制御装置、負荷分散方法、負荷分散プログラムおよび電子装置
US8615767B2 (en) 2007-02-06 2013-12-24 International Business Machines Corporation Using IR drop data for instruction thread direction
JP2009025950A (ja) * 2007-07-18 2009-02-05 Koyo Electronics Ind Co Ltd Cpu搭載電子装置のcpu冷却方法および該cpu搭載電子装置
US7729296B1 (en) * 2007-09-07 2010-06-01 Force 10 Networks, Inc. Distributed BPDU processing for spanning tree protocols
JP2009193385A (ja) * 2008-02-15 2009-08-27 Nec Corp コンピュータシステム
US8275825B2 (en) * 2009-06-03 2012-09-25 International Business Machines Corporation Thermal management using distributed computing systems
US8479215B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
JP5392848B2 (ja) * 2010-01-06 2014-01-22 エヌイーシーコンピュータテクノ株式会社 情報処理装置及びその制御方法
US20110225593A1 (en) * 2010-03-11 2011-09-15 International Business Machines Corporation Interface-based environmentally sustainable computing
JP5895840B2 (ja) * 2010-05-26 2016-03-30 日本電気株式会社 マルチプロセッサシステム、実行制御方法、実行制御プログラム
US9697009B2 (en) * 2010-06-25 2017-07-04 AVG Netherlands B.V. Method for improving the performance of computers
US8843774B2 (en) 2010-08-20 2014-09-23 Qualcomm Incorporated Method and apparatus for managing battery power in response to an indication of an application being scheduled for immediate execution
KR101181803B1 (ko) 2010-09-10 2012-09-11 에스비리모티브 주식회사 이차 전지
US9152218B2 (en) * 2010-12-22 2015-10-06 Intel Corporation Framework for runtime power monitoring and management
KR101885857B1 (ko) 2012-01-04 2018-08-06 삼성전자주식회사 온도 관리 회로, 이를 포함하는 시스템 온 칩 및 온도 관리 방법
JP5962304B2 (ja) * 2012-07-31 2016-08-03 富士通株式会社 電源装置、処理装置、情報処理システム、及び電源制御方法
JP6256904B2 (ja) * 2013-04-18 2018-01-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 処理の要求を振り分ける装置及び方法
US9411642B2 (en) * 2014-01-17 2016-08-09 Nvidia Corporation Using high priority thread to boost CPU clock rate
JP5820001B2 (ja) * 2014-02-24 2015-11-24 ファナック株式会社 Cpuの異常検出機能を備えた制御装置
JPWO2015151548A1 (ja) * 2014-04-03 2017-04-13 ソニー株式会社 電子機器および記録媒体
US9652022B2 (en) * 2014-08-28 2017-05-16 Qualcomm Incorporated System and method for providing dynamic quality of service levels based on coprocessor operation
CN105760280B (zh) * 2014-12-18 2020-11-06 深圳富泰宏精密工业有限公司 耗电监控系统及方法
WO2016132586A1 (ja) * 2015-02-17 2016-08-25 三菱電機株式会社 電力変換システム
US9921754B2 (en) * 2015-07-28 2018-03-20 Futurewei Technologies, Inc. Dynamic coding algorithm for intelligent coded memory system
KR102465543B1 (ko) 2016-02-19 2022-11-10 삼성전자 주식회사 어플리케이션 및 컴포넌트를 제어하는 방법 및 전자장치
JP6784291B2 (ja) * 2016-04-15 2020-11-11 日本電気株式会社 ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラム
JP6724635B2 (ja) * 2016-07-28 2020-07-15 富士通株式会社 プログラム、管理方法、管理装置および情報処理システム
CN106642883B (zh) * 2016-11-23 2019-05-03 青岛海尔股份有限公司 冰箱及其制冷方法
CN109062759B (zh) * 2018-07-20 2021-07-16 郑州云海信息技术有限公司 一种温度获取方法、装置、设备及介质
US10831503B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Saving and restoring machine state between multiple executions of an instruction
US10831502B2 (en) * 2018-11-06 2020-11-10 International Business Machines Corporation Migration of partially completed instructions
KR102649351B1 (ko) * 2018-11-06 2024-03-20 삼성전자주식회사 세분화된 상태들에 기초한 그래픽스 프로세서 및 그래픽스 처리 방법
US10831478B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Sort and merge instruction for a general-purpose processor
CN112752315B (zh) * 2019-10-31 2022-12-27 北京小米移动软件有限公司 降低终端温度的方法、降低终端温度的装置及存储介质
US11281474B2 (en) 2020-03-31 2022-03-22 International Business Machines Corporation Partial computer processor core shutoff
WO2022230116A1 (ja) * 2021-04-28 2022-11-03 日本電信電話株式会社 電源供給制御装置、電源供給制御方法、及び電源供給制御プログラム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635871A (ja) * 1992-07-21 1994-02-10 Hitachi Ltd マルチプロセッサシステム
JPH0816531A (ja) * 1994-06-28 1996-01-19 Hitachi Ltd プロセススケジュール方式
US5727221A (en) * 1994-12-22 1998-03-10 Texas Instruments Incorporated Computer system power management interconnection circuitry and systems
US5692197A (en) 1995-03-31 1997-11-25 Sun Microsystems, Inc. Method and apparatus for reducing power consumption in a computer network without sacrificing performance
JPH09311839A (ja) * 1996-05-21 1997-12-02 Hitachi Ltd データ共用方式
US5859838A (en) * 1996-07-30 1999-01-12 Qualcomm Incorporated Load monitoring and management in a CDMA wireless communication system
US5923830A (en) 1997-05-07 1999-07-13 General Dynamics Information Systems, Inc. Non-interrupting power control for fault tolerant computer systems
JPH11296488A (ja) * 1998-04-09 1999-10-29 Hitachi Ltd 電子機器
US6091255A (en) * 1998-05-08 2000-07-18 Advanced Micro Devices, Inc. System and method for tasking processing modules based upon temperature
JP3570905B2 (ja) 1998-10-06 2004-09-29 日本電気株式会社 マルチプロセッサ及びマルチプロセッサの制御方法
JP3275871B2 (ja) * 1999-02-24 2002-04-22 日本電気株式会社 プリンタシステム及びそれに用いるプリンタ
JP4240695B2 (ja) 1999-11-12 2009-03-18 株式会社日立製作所 機器間協調制御方法及びシステム
JP2001290697A (ja) * 2000-04-06 2001-10-19 Hitachi Ltd 情報処理システム
JP2002108839A (ja) * 2000-09-28 2002-04-12 Mitsubishi Electric Corp 通信ネットワークシステム、ジョブ割当方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US7174194B2 (en) * 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
US6826662B2 (en) * 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
JP2002304232A (ja) 2001-04-03 2002-10-18 Sony Corp 演算処理システム及び演算処理制御方法、並びに記憶媒体
JPWO2003083693A1 (ja) * 2002-04-03 2005-08-04 富士通株式会社 分散処理システムにおけるタスクスケジューリング装置
US7086058B2 (en) * 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
JP2004126968A (ja) * 2002-10-03 2004-04-22 Fujitsu Ltd 並列計算機のジョブスケジューリング装置
JP4027219B2 (ja) 2002-12-19 2007-12-26 理研計器株式会社 赤外線式ガス検知装置
JP4224690B2 (ja) 2002-12-27 2009-02-18 ソニー株式会社 記録方法、記録装置、再生方法、再生装置および撮像装置
US7337334B2 (en) * 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
JP4465598B2 (ja) * 2004-07-05 2010-05-19 ソニー株式会社 集積回路およびその処理制御方法、並びに、プログラム
US7895455B2 (en) * 2007-06-25 2011-02-22 Hewlett-Packard Development Company, L.P. Dynamic converter control for efficient operation

Also Published As

Publication number Publication date
TWI289764B (en) 2007-11-11
EP1615134A3 (en) 2011-11-30
US20090083557A1 (en) 2009-03-26
EP1615134A2 (en) 2006-01-11
CN1760804A (zh) 2006-04-19
US20060005097A1 (en) 2006-01-05
TW200613999A (en) 2006-05-01
JP4465598B2 (ja) 2010-05-19
US8086880B2 (en) 2011-12-27
US7536229B2 (en) 2009-05-19
JP2006018758A (ja) 2006-01-19
CN100383707C (zh) 2008-04-23

Similar Documents

Publication Publication Date Title
KR20060049835A (ko) 정보 처리 장치 및 정보 처리 방법과 프로그램
US8103771B2 (en) Distributing processing apparatus, method, and system
CN101946235B (zh) 用于在共享处理器分区环境中移动线程的方法及装置
JP5134915B2 (ja) 記憶領域の構成最適化方法、計算機システム及び管理計算機
US20050283673A1 (en) Information processing apparatus, information processing method, and program
US20090254702A1 (en) Recording medium storing data allocation control program, data allocation control device, data allocation control method, and multi-node storage-system
EP2932812B1 (en) Energy conservation and hardware usage management for data centers
JP5385458B2 (ja) 計算機システムおよびその更改方法
JP5545108B2 (ja) ストレージシステム、制御装置および制御方法
KR20060042959A (ko) 네트워크 시스템, 분산 처리 방법, 및 정보 처리 장치
JP2006127398A (ja) ストレージシステム
JP2005275829A (ja) ストレージシステム
JP2016200923A (ja) 並列計算制御装置、並列計算システムおよびマイグレーション時間推定プログラム
US7401196B2 (en) Storage system and storage control method for access exclusion control of each storage area unit comprising storage area of storage device
US9342133B2 (en) Information processing apparatus and power saving control method
JP2010128985A (ja) ストレージ管理サーバ、ストレージ構成の再配置方法
US10310466B2 (en) Managing energy consumption of a building in an interconnected wide area management system
US20220237120A1 (en) Transfer of cachelines in a processing system based on transfer costs
WO2013128490A1 (en) Method for reusing resource and storage sub-system using the same
US9146799B2 (en) Storage system and method for controlling storage system
US8909825B2 (en) System for determining a maximum multiplicity set for communication lines between a plurality of devices using a calculated rate received from the plurality of devices
JP5130764B2 (ja) ストレージシステムおよびその省電力化方法ならびにプログラム
JP5942014B2 (ja) 管理計算機及び更改方法
JP6701846B2 (ja) 管理装置、バックアップシステム、バックアップ管理方法、プログラム
JP2007156590A (ja) 障害回復方法、情報管理サーバおよび計算機システム

Legal Events

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