KR20070054138A - 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램 - Google Patents

정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20070054138A
KR20070054138A KR1020067010317A KR20067010317A KR20070054138A KR 20070054138 A KR20070054138 A KR 20070054138A KR 1020067010317 A KR1020067010317 A KR 1020067010317A KR 20067010317 A KR20067010317 A KR 20067010317A KR 20070054138 A KR20070054138 A KR 20070054138A
Authority
KR
South Korea
Prior art keywords
physical
processor
logical
address
physical processor
Prior art date
Application number
KR1020067010317A
Other languages
English (en)
Other versions
KR101222823B1 (ko
Inventor
아쯔시 도가와
겐이찌 무라따
Original Assignee
소니 가부시끼 가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Publication of KR20070054138A publication Critical patent/KR20070054138A/ko
Application granted granted Critical
Publication of KR101222823B1 publication Critical patent/KR101222823B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

최적의 논리 프로세서와 물리 프로세서의 대응을 설정한 데이터 처리를 실현하는 장치 및 방법을 제공한다. 논리 프로세서를 물리 프로세서에 대응지어 데이터 처리를 행하는 구성에서, 논리 파티션 어드레스(가상 물리 어드레스) 공간을 물리 어드레스 공간으로 변환하는 제1 변환 테이블과, 가상 어드레스 공간을 물리 어드레스 공간으로 변환하는 제2 변환 테이블을 적용하여, 테이블의 엔트리 설정, 및 갱신 처리를 실행함으로써, 논리 프로세서와 물리 프로세서와의 대응 관계를 변경한다. 본 구성에 의해, 하드웨어의 부하, 데이터 처리 프로그램의 양태를 고려한 최적의 논리 프로세서와 물리 프로세서의 대응을 설정한 데이터 처리가 가능하게 된다.
논리 프로세스, 물리 프로세스, 변환 테이블, 물리 어드레스

Description

정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램{INFORMATION PROCESSING DEVICE, PROCESS CONTROL METHOD, AND COMPUTER PROGRAM}
본 발명은, 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램에 관한 것이다. 더 상세하게는, 복수의 오퍼레이션 시스템(OS)이 동시에 동작하는 시스템에서, 각 OS에 대하여 설정되는 논리 파티션에 대응하여 설정되는 논리 프로세서에, 물리 프로세서를 시분할로 대응지어 데이터 처리를 행하는 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램에 관한 것이다.
하나의 시스템 내에 복수의 오퍼레이팅 시스템(OS)을 탑재한 멀티 OS 시스템에서는, 각 OS는 각각 서로 다른 프로세스가 실행 가능하여, 시스템에서 공통의 하드웨어, 즉 CPU나 메모리 등을 시계열로 순차적으로 절환하여 이용한 처리가 행해진다.
복수 OS 각각의 실행 프로세스(태스크)의 스케쥴링은, 예를 들면 파티션 관리 소프트웨어에 의해서 실행된다. 하나의 시스템에 OS(α)와 OS(β)의 2개의 오퍼레이팅 시스템이 병존하는 경우, OS(α)의 처리를 파티션 A로 하고, OS(β)의 처리를 파티션 B라고 하면, 파티션 관리 소프트웨어는, 파티션 A와 파티션 B의 실행 스케줄을 결정하고, 결정한 스케줄에 기초하여, 하드웨어 자원을 할당하여 각 OS에 서의 처리를 실행한다.
멀티 OS형의 시스템에서의 태스크 관리를 개시한 종래 기술로서, 예를 들면, 특허 문헌 1이 있다. 특허 문헌 1에는, 복수의 OS 각각에서 실행되는 태스크 관리에서, 긴급성이 높은 처리를 우선적으로 처리시키기 위한 태스크 스케쥴링 방법을 개시하고 있다.
이러한 멀티 OS 시스템에서, 각종 데이터 처리의 실행 주체는 예를 들면 파티션으로서 설정된다. 구체적으로는, 시스템 내의 자원 분배를 받는 주체로서의 논리 파티션이 설정되고, 논리 파티션에 대하여, 물리 프로세서 유닛의 사용 시간이나, 가상 어드레스 공간, 또한 메모리 공간 등의 여러가지 리소스가 배분되고, 배분된 리소스를 적용한 처리가 실행된다. 논리 파티션에는, 어느 하나의 물리 프로세서에 대응하는 논리적인 프로세서가 설정되고, 논리 프로세서에 기초하는 데이터 처리가 실행된다. 논리 프로세서와 물리 프로세서는 반드시 일대일의 관계는 아니며, 1개의 논리 프로세서에 복수의 물리 프로세서가 대응지어지는 경우도 있고, 복수의 논리 프로세서에 하나의 물리 프로세서가 대응지어지는 경우도 있다.
논리 프로세서를 적용한 복수의 처리가 병렬로 실행되는 경우, 물리 프로세서는, 복수의 논리 프로세서에 의해서 스케쥴링되어 사용되는 것으로 된다. 즉, 복수의 논리 프로세서는, 타임 셰어링에 의한 물리 프로세서의 사용을 행하는 것으로 된다.
복수의 논리 프로세서에 의한 데이터 처리를 복수의 물리 프로세서를 적용하여 실행하는 경우에는, 논리 프로세서와 물리 프로세서와의 최적의 대응 관계의 설 정 및 갱신을 행하는 것이 데이터 처리 효율을 높이기 위한 하나의 방법이다. 또한, 하나의 물리 프로세서를 장시간에 걸쳐 사용하면, 발열에 의해서 고온으로 된다고 하는 문제가 발생한다. 따라서, 복수의 물리 프로세서가, 존재하는 경우에는, 적절하게, 이들을 절환하여 이용하는 구성으로 하는 것이 바람직하다.
[특허 문헌 1] 일본 특개 2003-345612호 공보
<발명의 개시>
<발명이 해결하고자 하는 과제>
본 발명은, 복수의 논리 프로세서에 의한 데이터 처리를 복수의 물리 프로세서를 적용하여 실행하는 데이터 처리 구성에서, 논리 프로세서와 물리 프로세서와의 최적의 대응 관계의 설정 및 갱신을 가능하게 하여, 효율적인 데이터 처리, 물리 프로세서의 지나친 계속 이용의 방지를 실현하는 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
본 발명은, 가상 어드레스 공간과, 논리 파티션 어드레스(가상 물리 어드레스) 공간과, 물리 어드레스 공간과의 서로 다른 어드레스 공간의 어드레스 변환에 적용하는 테이블을 설정하고, 이것을 적절하게, 갱신하는 처리를 실행함으로써, 최적의 논리 프로세서와 물리 프로세서와의 대응의 설정, 갱신을 행하여, 효율적인 데이터 처리를 실현하는 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
<과제를 해결하기 위한 수단>
본 발명의 제1 측면은,
정보 처리 장치로서,
논리 프로세서를 시분할로 물리 프로세서에 대응짓는 처리를 실행하는 제어 OS와,
논리 프로세서의 적용 주체로서의 논리 파티션의 설정 대상인 게스트 OS
를 갖고,
상기 제어 OS는,
논리 프로세서와 물리 프로세서의 대응 관계를 결정하는 어드레스 변환 테이블로서,
논리 파티션 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제1 변환 테이블과, 게스트 OS측에 설정되는 가상 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제2 변환 테이블의 2개의 어드레스 변환 테이블의 설정 및 갱신 처리를 실행함으로써, 논리 프로세서와 물리 프로세서의 대응 관계의 설정 및 갱신을 행하는 구성인 것을 특징으로 하는 정보 처리 장치에 있다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 제어 OS는, 논리 파티션 어드레스에 기초하여 결정되는 상기 제1 변환 테이블의 인덱스에 대응하는 물리 어드레스를 취득함과 함께, 가상 어드레스에 기초하여 결정되는 상기 제2 변환 테이블의 인덱스에 대응하는 물리 어드레스의 갱신 처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 제어 OS는, 논리 프로세서와 물리 프로세서의 대응 관계의 절환 시에, 물리 프로세서에 대응지어진 논리 프로세서에 대응하는 상기 제1 변환 테이블의 인덱스로부터 구해지는 물리 어드레스를 취득하고, 취득한 물리 어드레스를 유지하는 상기 제2 변환 테이블의 모든 엔트리를 무효화하는 처리를 실행함과 함께, 물리 프로세서를 새롭게 대응지어지는 논리 프로세서에 대응하는 상기 제1 변환 테이블의 인덱스를 취득하고, 그 취득 인덱스에 대응하는 물리 어드레스로서, 대응지음을 행하는 물리 프로세서의 물리 어드레스 정보를 저장하는 처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 물리 어드레스는, 물리 프로세서의 MMIO 레지스터의 물리 어드레스인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 제어 OS는, 하나의 물리 프로세서를 적용한 처리의 계속 시간이, 미리 정한 임계값 시간에 이른 것을 조건으로 하여, 논리 프로세서와 물리 프로세서와의 대응 변경 처리를 실행하여, 물리 프로세서의 절환을 행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 제어 OS는, 물리 프로세서의 온도가, 미리 정한 임계값 온도에 이른 것을 조건으로 하여, 논리 프로세서와 물리 프로세서와의 대응 변경 처리를 실행하여, 물리 프로세서의 절환을 행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 제어 OS는, 병렬로 동작 상태로 되는 복수의 물리 프로세서가 동일한 전력 공급 라인에 접속된 물리 프로세서군으로서 설정되도록 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 제어 OS는, 정보 처리 장치 내의 서로 다른 위치에 설정된 메모리에 대한 물리 프로세서의 액세스 상황에 기초하여 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 구성 이며, 물리 프로세서에 의해 가까운 위치에 있는 메모리의 액세스 빈도가 높게 되도록, 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 제2 측면은,
논리 프로세서를 물리 프로세서에 대응지어 데이터 처리를 행하는 구성에 있어서의 프로세스 제어 방법으로서,
논리 프로세서의 적용 주체로서의 게스트 OS측에 논리 파티션을 설정하는 스텝과,
논리 파티션 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제1 변환 테이블과, 상기 게스트 OS 측에 설정되는 가상 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제2 변환 테이블의 2개의 어드레스 변환 테이블의 설정 또는 갱신을 실행하는 테이블 갱신 스텝
를 갖는 것을 특징으로 하는 프로세스 제어 방법에 있다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에서, 상기 테이블 갱신 스텝은, 논리 파티션 어드레스에 기초하여 결정되는 상기 제1 변환 테이블의 인덱스에 대응지어진 물리 어드레스를 취득하는 스텝과, 가상 어드레스에 기초하여 결정되는 상기 제2 변환 테이블의 인덱스에 대응하는 물리 어드레스의 갱신 처리를 실행하는 스텝을 포함하는 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에서, 상기 프로세스 제어 방법은, 또한, 논리 프로세서와 물리 프로세서의 대응 관계의 절환 시에, 물리 프로세서에 대응된 논리 프로세서에 대응하는 상기 제1 변환 테이블의 인덱스로부터 구해지는 물리 어드레스를 취득하고, 취득한 물리 어드레스를 유지하는 상기 제2 변환 테이블의 모든 엔트리를 무효화하는 처리를 실행하는 스텝과, 물리 프로세서를 새롭게 대응짓는 논리 프로세서에 대응하는 상기 제1 변환 테이블의 인덱스를 취득하고, 그 취득 인덱스에 대응하는 물리 어드레스로서, 대응지음을 행하는 물리 프로세서의 물리 어드레스 정보를 저장하는 처리를 실행하는 스텝을 갖는 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에서, 상기 물리 어드레스는, 물리 프로세서의 MMIO 레지스터의 물리 어드레스인 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에서, 상기 프로세스 제어 방법은, 또한, 하나의 물리 프로세서를 적용한 처리의 계속 시간이, 미리 정한 임계값 시간에 이른 것을 조건으로 하여, 논리 프로세서와 물리 프로세서와의 대응 변경 처리를 실행하여, 물리 프로세서의 절환을 행하는 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에서, 상기 프로세스 제어 방법은, 또한, 물리 프로세서의 온도가, 미리 정한 임계값 온도에 이른 것을 조건으로 하여, 논리 프로세서와 물리 프로세서와의 대응 변경 처리를 실행하여, 물리 프로세서의 절환을 행하는 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에서, 상기 프로세스 제어 방법은, 또한, 병렬로 동작 상태로 되는 복수의 물리 프로세서가 동일한 전력 공급 라인에 접속된 물리 프로세서군으로서 설정되도록 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 처리를 실행하는 스텝을 갖는 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에서, 상기 프로세스 제어 방법은, 정보 처리 장치 내의 서로 다른 위치에 설정된 메모리에 대한 물리 프로세서의 액세스 상황에 기초하여 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 스텝을 더 갖고, 물리 프로세서에 의해 가까운 위치에 있는 메모리의 액세스 빈도가 높게 되도록, 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 처리를 실행하는 것을 특징으로 한다.
또한, 본 발명의 제3 측면은,
논리 프로세서를 물리 프로세서에 대응지어 데이터 처리를 행하는 구성에 있어서의 프로세스 제어를 실행하는 컴퓨터 프로그램으로서,
논리 프로세서의 적용 주체로서의 게스트 OS측에 논리 파티션을 설정하는 스텝과,
논리 파티션 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제1 변환 테이블과, 상기 게스트 OS측에 설정되는 가상 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제2 변환 테이블의 2개의 어드레스 변환 테이블의 설정 또는 갱신을 실행하는 테이블 갱신 스텝
을 갖는 것을 특징으로 하는 컴퓨터 프로그램에 있다.
또한, 본 발명의 컴퓨터 프로그램은, 예를 들면, 여러가지 프로그램 코드를 실행 가능한 범용 컴퓨터 시스템에 대하여, 컴퓨터 판독 가능한 형식으로 제공하는 기억 매체, 통신 매체, 예를 들면, CD나 FD, MO 등의 기억 매체, 혹은, 네트워크 등의 통신 매체에 의해서 제공 가능한 컴퓨터 프로그램이다. 이러한 프로그램을 컴퓨터 판독 가능한 형식으로 제공함으로써, 컴퓨터 시스템 상에서 프로그램에 따른 처리가 실현된다.
본 발명의 또 다른 목적, 특징이나 이점은, 후술하는 본 발명의 실시예나 첨부하는 도면에 기초한, 보다 상세한 설명에 의해 명백해질 것이다. 또한, 본 명세서에서 시스템이란, 복수의 장치의 논리적 집합 구성으로, 각 구성의 장치가 동일 케이싱 내에 있는 것으로는 한하지 않는다.
<발명의 효과>
본 발명의 일 실시예의 구성에 따르면, 논리 프로세서를 물리 프로세서에 대응지어 데이터 처리를 행하는 구성에서, 가상 어드레스 공간과, 논리 파티션 어드레스(가상 물리 어드레스) 공간과, 물리 어드레스 공간과의 서로 다른 어드레스 공간의 어드레스 변환에 적용하는 테이블을 설정하고, 이것을 적절하게, 갱신하는 처리를 실행함으로써, 최적의 논리 프로세서와 물리 프로세서와의 대응의 설정, 갱신을 행하여, 효율적인 데이터 처리가 실현된다.
본 발명의 일 실시예의 구성에 따르면, 제어 OS가 2개의 어드레스 변환 테이블, 즉, 논리 파티션 어드레스(가상 물리 어드레스) 공간을 물리 어드레스 공간으로 변환하는 제1 변환 테이블과, 가상 어드레스 공간을 물리 어드레스 공간으로 변 환하는 제2 변환 테이블을 적용하여, 테이블의 엔트리 설정, 및 갱신 처리를 실행함으로써, 논리 프로세서와 물리 프로세서와의 대응 관계를 변경하는 구성이기 때문에, 상황에 따라서, 논리 프로세서-물리 프로세서의 대응 관계의 설정, 변경이 가능해지고, 데이터 처리 시퀀스에 따른 물리 프로세서의 타임 셰어링에 의한 데이터 처리가 가능하며, 하드웨어의 부하, 데이터 처리 프로그램의 양태를 고려한 최적의 데이터 처리가 실행 가능해진다.
본 발명의 일 실시예의 구성에 따르면, 예를 들면 물리 프로세서의 로테이션 처리, 즉 마이그레이션을 제어 OS에 의한 변환 테이블의 갱신에 의해서 실현하는 것이 가능해지고, 물리 프로세서의 계속적인 사용에 의한 발열의 억제가 가능해진다.
또한, 본 발명의 일 실시예의 구성에 따르면, 예를 들면 서로 다른 전원 공급 라인에 접속된 물리 프로세서군이 설정되어 있는 구성에서, 복수의 논리 프로세서가 각각 상이한 물리 프로세서에 대응지어져 병렬로 실행되는 프로세스가 있는 경우, 하나의 전원 공급 라인에 접속된 물리 프로세서에 대하여 논리 프로세서를 각각 할당함으로써 아이들 상태에 있는 물리 프로세서군에 대한 전원 공급을 정지하는 것이 가능해져, 소비 전력을 저감하는 것이 가능해진다.
또한, 본 발명의 일 실시예의 구성에 따르면, 장치 내에서의 물리적 위치가 상이한 복수의 메모리를 갖는 구성에서, 액세스 빈도가 높은 쪽의 메모리에 가까운 위치에 있는 물리 프로세서를, 각 프로세스에 대응하는 논리 프로세서에 대하여 대응짓도록 어드레스 변환 테이블의 갱신을 실행한다. 이 프로세서 대응지음 처리에 의해서, 데이터 액세스의 고속화가 실현되어, 보다 높은 효율에서의 데이터 처리가 가능하게 된다.
도 1은 본 발명의 정보 처리 장치의 구성예를 도시하는 도면.
도 2는 프로세서 모듈의 구성예를 도시하는 도면.
도 3은 본 발명의 정보 처리 장치의 오퍼레이션 시스템 구성을 설명하는 도면.
도 4는 타임 셰어링에 의한 논리 프로세서와 물리 프로세서와의 대응지음 처리에 대하여 설명하는 도면.
도 5는 논리 프로세서와 물리 프로세서와의 대응지음 처리에 대하여 설명하는 도면.
도 6은 본 발명의 정보 처리 장치에서 적용되는 어드레스 공간 및 어드레스 변환 기구로서의 변환 테이블에 대하여 설명하는 도면.
도 7은 본 발명의 정보 처리 장치에서 적용되는 제1 변환 테이블의 구성예에 대하여 설명하는 도면.
도 8은 본 발명의 정보 처리 장치에서 적용되는 제2 변환 테이블의 구성예에 대하여 설명하는 도면.
도 9는 변환 테이블의 엔트리의 갱신 처리의 수순을 설명하는 플로우차트를 도시하는 도면.
도 10은 변환 테이블의 엔트리의 갱신 처리의 구체적 처리를 설명하는 도면.
도 11은 논리 프로세서-물리 프로세서의 대응 관계의 갱신 처리의 수순을 설명하는 플로우차트를 도시하는 도면.
도 12는 논리 프로세서-물리 프로세서의 대응 관계의 갱신 처리의 구체적 처리를 설명하는 도면.
도 13은 논리 프로세서-물리 프로세서의 대응 관계의 갱신 처리의 구체적 처리를 설명하는 도면.
도 14는 논리 프로세서-물리 프로세서의 대응 관계의 갱신 처리의 구체적 처리를 설명하는 도면.
도 15는 논리 프로세서-물리 프로세서의 대응 관계의 갱신 처리의 구체적 처리를 설명하는 도면.
도 16은 타이머 및 온도 센서를 갖는 프로세서 모듈의 구성예를 도시하는 도면.
도 17은 시간 의존형의 논리 프로세서-물리 프로세서 대응 관계의 절환 처리 구성을 설명하는 도면.
도 18은 온도 의존형의 논리 프로세서-물리 프로세서 대응 관계의 절환 처리 구성을 설명하는 도면.
도 19는 초기부터 혹은 후발적으로 불량하게 된 물리 프로세서를, 논리 프로세서의 대응지음의 대상으로부터 제외하는 구성예에 대하여 설명하는 도면.
도 20은 물리 프로세서와 이용 전원과의 관계에 기초하여 논리 프로세서와 물리 프로세서와의 대응을 결정하는 구성예에 대하여 설명하는 도면.
도 21은 물리 프로세서의 액세스 양태에 기초하는 논리 프로세서와 물리 프로세서와의 대응지음 결정예에 대하여 설명하는 도면.
도 22는 물리 프로세서의 액세스 양태에 기초하는 논리 프로세서와 물리 프로세서와의 대응지음 결정예에 대하여 설명하는 도면.
도 23은 물리 프로세서의 액세스 양태에 기초하는 논리 프로세서와 물리 프로세서와의 대응지음 결정예에 대하여 설명하는 도면.
<발명을 실시하기 위한 최량의 형태>
이하, 도면을 참조하면서, 본 발명의 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램의 상세 내용에 대하여 설명한다.
우선, 도 1을 참조하여, 본 발명의 정보 처리 장치의 하드웨어 구성예에 대하여 설명한다. 프로세서 모듈(101)은, 복수의 프로세서(Processing Unit)로 구성된 모듈로서, ROM(Read Only Memory)(104), HDD(123) 등에 기억되어 있는 프로그램에 따라서, 오퍼레이팅 시스템(OS: Operating System), OS 대응의 어플리케이션 프로그램 등, 각종 프로그램에 따른 데이터 처리를 실행한다. 프로세서 모듈(101)의 상세 내용에 대해서는, 또한, 후단에서, 도 2를 참조하여 설명한다.
그래픽 엔진(102)은, 프로세서 모듈(101)로부터 입력되는 지시에 따라, 출력부(122)를 구성하는 표시 디바이스에 화면 출력하기 위한 데이터 생성, 예를 들면 3D 그래픽 묘화 처리를 실행한다. 메인 메모리(DRAM)(103)에는, 프로세서 모듈(101)에서 실행하는 프로그램이나 그 실행에서 적절하게 변화하는 파라미터 등을 저장한다. 이들은 CPU 버스 등으로 구성되는 호스트 버스(111)에 의해 서로 접속 되어 있다.
호스트 버스(111)는, 브릿지(105)를 통하여, PCI(Peripheral Component Interconnect/Interface) 버스 등의 외부 버스(112)에 접속되어 있다. 브릿지(105)는, 호스트 버스(111), 외부 버스(112) 사이, 및 컨트롤러(106), 메모리 카드(107), 그 밖의 디바이스와의 데이터 입출력 제어를 실행한다.
입력부(121)는, 키보드, 포인팅 디바이스 등의 유저에 의해 조작되는 입력 디바이스로부터의 입력 정보를 입력한다. 출력부(122)는, 액정 표시 장치나 CRT(Cathode Ray Tube) 등의 화상 출력부와 스피커 등으로 이루어지는 음성 출력부로 구성된다.
HDD(Hard Disk Drive)(123)는, 하드디스크를 내장하고, 하드 디스크를 구동하여, 프로세서 모듈(101)에 의해서 실행하는 프로그램이나 정보를 기록 또는 재생시킨다.
드라이브(124)는, 장착되어 있는 자기 디스크, 광 디스크, 광 자기 디스크, 또는 반도체 메모리 등의 리무버블 기록 매체(127)에 기록되어 있는 데이터 또는 프로그램을 판독하고, 그 데이터 또는 프로그램을, 인터페이스(113), 외부 버스(112), 브릿지(105), 및 호스트 버스(111)를 통하여 접속되어 있는 메인 메모리(DRAM)(103)에 공급한다.
접속 포트(125)는, 외부 접속 기기(128)를 접속하는 포트로서, USB, IEEE1394 등의 접속부를 갖는다. 접속 포트(125)는, 인터페이스(113), 외부 버스(112), 브릿지(105), 및 호스트 버스(111)를 통하여 프로세서 모듈(101) 등에 접 속되어 있다. 통신부(126)는, 네트워크에 접속되어, 프로세서 모듈(101)이나, HDD(123) 등으로부터 제공되는 데이터의 송신, 외부로부터의 데이터 수신을 실행한다.
다음으로, 프로세서 모듈의 구성예에 대하여, 도 2를 참조하여 설명한다. 도 2에 도시한 바와 같이, 프로세서 모듈(200)은, 복수의 메인 프로세서로 이루어지는 메인 프로세서 그룹(201), 복수의 서브 프로세서로 이루어지는 복수의 서브 프로세서 그룹(202∼20n)에 의해 구성되어 있다. 각각에 메모리 컨트롤러, 2차 캐쉬가 설치되어 있다. 각 프로세서 그룹(201∼20n)의 각각은 예를 들면 8개의 프로세서 유닛을 갖고, 크로스바 아키텍처, 혹은 패킷 교환식 네트워크 등에 의해 접속되어 있다. 메인 프로세서 그룹(201)의 메인 프로세서의 지시 하에, 복수의 서브 프로세서 그룹(202∼20n)의 1 이상의 서브 프로세서가 선택되어, 소정의 프로그램이 실행된다.
각 서브 프로세서 그룹에 설치된 메모리 플로우 컨트롤러는, 도 1에 도시하는 메인 메모리(103)와의 데이터 입출력 제어를 실행하고, 2차 캐쉬는, 각 프로세서 그룹에서의 처리용 데이터의 기억 영역으로서 이용된다.
다음으로, 도 3을 참조하여, 본 발명의 정보 처리 장치에서의 오퍼레이팅 시스템(OS) 구성을 설명한다. 본 발명의 정보 처리 장치는 복수의 오퍼레이팅 시스템(OS)이 공존하는 멀티 OS 구성을 갖는다. 도 3에 도시한 바와 같이, 논리적인 계층 구성을 갖는 복수의 오퍼레이팅 시스템(OS)을 갖는다.
도 3에 도시한 바와 같이, 하위 레이어에 제어 OS(301)를 갖고, 상위 레이어 에 복수의 게스트 OS(302, 303), 및 시스템 제어 OS(304)가 설정된다. 제어 OS(301)는, 시스템 제어 OS(304)와 함께 도 1, 도 2를 참조하여 설명한 프로세서 모듈에서 실행하는 1 이상의 프로세스에 의해 적용되는 논리 파티션을 실현하여, 시스템 내의 하드웨어 자원(계산기 자원으로서의 메인 프로세서, 서브 프로세서, 메모리, 디바이스 등)을 각 논리 파티션에 할당하는 처리를 실행한다.
게스트 OS(302, 303)는, 예를 들면 게임 OS나 Windows(등록상표), Linux(등록상표) 등의 각종 OS로서, 제어 OS(301)의 제어 하에 동작하는 OS이다. 또한, 도 3에는, 게스트 OS(302, 303)의 2개의 게스트 OS만을 도시하고 있지만, 게스트 OS는 임의의 수로 설정하는 것이 가능하다.
게스트 OS(302, 303)는, 제어 OS(301) 및 시스템 제어 OS(304)에 의해 설정된 논리 파티션 내에서 동작하고, 그 논리 파티션에 할당된 메인 프로세서, 서브 프로세서, 메모리, 디바이스 등의 하드웨어 자원을 적용하여 각종 데이터 처리를 실행한다.
예를 들면, 게스트 OS(a)(302)는, 제어 OS(301) 및 시스템 제어 OS(304)에 의해 설정된 논리 파티션2에 할당된 메인 프로세서, 서브 프로세서, 메모리, 디바이스 등의 하드웨어 자원을 적용하여, 게스트 OS(a)(302) 대응의 어플리케이션 프로그램(305)을 실행한다. 또한, 게스트 OS(b)(303)는, 논리 파티션n에 할당된 메인 프로세서, 서브 프로세서, 메모리, 디바이스 등의 하드웨어 자원을 적용하여, 게스트 OS(b)(303) 대응의 어플리케이션 프로그램(306)을 실행한다. 제어 OS(301)는, 게스트 OS의 실행에 필요한 인터페이스로서 게스트 OS 프로그래밍 인터페이스 를 제공한다.
시스템 제어 OS(304)는, 논리 파티션 관리 정보를 포함하는 시스템 제어 프로그램(307)을 생성하고, 시스템 제어 프로그램(307)에 기초하는 시스템의 동작 제어를 제어 OS(301)와 함께 실행한다. 시스템 제어 프로그램(307)은, 시스템 제어 프로그램·프로그래밍 인터페이스를 이용하여 시스템의 폴리시를 제어하는 프로그램이다. 시스템 제어 프로그램·프로그래밍 인터페이스는, 제어 OS(301)로부터 시스템 제어 OS(304)에 제공된다. 예를 들면 리소스 배분의 상한값을 설정하는 등, 프로그램에 의한 유연한 커스터마이즈를 위한 수단을 제공하는 것이 시스템 제어 프로그램(307)의 역할이다.
시스템 제어 프로그램(307)은 시스템 제어 프로그램·프로그래밍 인터페이스를 이용하여 시스템의 행동을 제어할 수 있다. 예를 들면, 새롭게 논리 파티션을 작성하고, 그 논리 파티션에 의해 새로운 게스트 OS를 기동할 수 있다. 복수의 게스트 OS가 동작하는 시스템에서는, 이들 게스트 OS는 시스템 제어 프로그램에 미리 프로그램된 순서로 기동되게 된다. 또한, 게스트 OS로부터 제출된 자원 할당 요구를 제어 OS(301)가 수리하기 전에 검사하여, 시스템의 폴리시에 따라 수정하거나, 요구 그 자체를 거부하거나 할 수 있다. 이에 의해, 특정한 게스트 OS만이 자원을 독점하지 않도록 할 수 있다. 이와 같이, 시스템의 폴리시를 프로그램으로서 실현한 것이 시스템 제어 프로그램이다.
제어 OS(301)는 시스템 제어 OS(304)를 위해 특별한 논리 파티션(도면에서는논리 파티션1)을 할당한다. 제어 OS(301)는, 하이퍼바이저 모드에서 동작한다. 게스트 OS는 슈퍼바이저 모드에서 동작한다. 시스템 제어 OS, 어플리케이션 프로그램은 프로그램 모드(유저 모드)에서 동작한다.
논리 파티션은 시스템 내의 자원 분배를 받는 주체이다. 예를 들면 메인 메모리(103)(도 1 참조)는 몇개의 영역으로 분할되고, 각각의 영역의 사용권이 논리 파티션에 대하여 부여된다. 논리 파티션에 분배되는 자원의 종별에는 이하의 것이 있다.
a) 물리 프로세서 유닛 사용 시간
b) 가상 어드레스 공간
c) 논리 파티션 내에서 동작하는 프로그램이 액세스할 수 있는 메모리
d) 제어 OS가 논리 파티션의 관리를 위해 이용하는 메모리
e) 이벤트 포트
f) 디바이스의 사용권
g) 캐쉬 파티션
h) 버스 사용권
상술한 바와 같이, 게스트 OS는 논리 파티션 내에서 동작한다. 게스트 OS는 논리 파티션에 할당된 자원을 독점하여 각종 데이터 처리를 실행한다. 대부분의 경우, 시스템 상에서 동작하는 개개의 게스트 OS마다 1개의 논리 파티션이 작성된다. 각 논리 파티션에는 유니크한 식별자가 제공된다. 시스템 제어 OS(304)는, 논리 파티션 관리 정보로서 생성하는 시스템 제어 프로그램에 식별자를 대응지어 관리한다.
논리 파티션은, 제어 OS(301) 및 시스템 제어 OS(304)에 의해 생성된다. 생성 직후의 논리 파티션은 어떠한 자원도 갖지 않고, 사용 자원의 제한도 설정되어 있지 않다. 논리 파티션에는 활동 상태와 종료 상태라는 2개의 상태가 있다. 생성 직후의 논리 파티션은 활동 상태에 있다. 논리 파티션 내에서 동작하는 게스트 OS의 요구에 기초하여 논리 파티션은 종료 상태로 천이하여, 논리 파티션에 할당되어 있는 모든 논리 프로세서가 정지한다.
또한, 논리 프로세서는, 논리 파티션에 할당되는 논리적인 프로세서로서, 어느 하나의 물리 프로세서, 즉, 도 2에 도시하는 프로세서 그룹 내의 프로세서에 대응한다. 단, 논리 프로세서와 물리 프로세서는 반드시 일대일의 관계는 아니며, 1개의 논리 프로세서에 복수의 물리 프로세서가 대응지어지는 경우도 있으며, 복수의 논리 프로세서에 1개의 물리 프로세서가 대응지어지는 경우도 있다. 논리 프로세서와 물리 프로세서의 대응지음은, 제어 OS(301)가 결정한다.
제어 OS(3O1)는, 각 논리 파티션이 사용하는 자원의 양을 제한하는 기능을 구비하고 있다. 게스트 OS(302, 303)가 시스템 제어 OS(304)와의 통신을 행하지 않고 할당/해방을 행할 수 있는 자원에 대해서는 사용량의 제한이 가능하게 되어 있다.
각 논리 파티션은 제어 시그널 포트를 구비하고 있다. 이 포트에는 논리 파티션간의 데이터 교환/공유에 필요한 다양한 제어 시그널이 도착한다. 제어 시그널의 예를 이하에 든다.
a) 논리 파티션간 이벤트 포트의 접속 의뢰
b) 논리 파티션간 메시지 채널의 접속 의뢰
c) 공유 메모리 영역에의 접속 의뢰
각 논리 파티션에 도착한 제어 시그널은 제어 시그널 포트에서 큐잉된다. 큐의 깊이는, 메모리 자원이 허용하는 범위이면, 제한은 없다. 큐잉에 필요한 메모리 자원은 제어 시그널을 보낸 논리 파티션으로부터 확보된다. 이 포트로부터 제어 시그널을 취출하기 위해서는, 게스트 OS 프로그래밍 인터페이스를 호출한다. 빈 제어 시그널 포트에 제어 시그널이 도착하였을 때에, 임의의 이벤트 포트에 이벤트를 송신하는 것이 가능하다. 이벤트 포트의 지정은 게스트 OS 프로그래밍 인터페이스를 호출함으로써 행할 수 있다.
제어 OS는 논리 파티션에 대하여, 물리 서브 프로세서를 추상화한 논리 서브 프로세서를 리소스(계산기 자원)로서 제공한다. 상술한 바와 같이 물리 서브 프로세서와 논리 서브 프로세서는 일대일로 대응지어져 있지 않으며, 또한 수가 동일할 필요도 없다. 이것을 실현하기 위해, 제어 OS는 필요에 따라 하나의 물리 서브 프로세서를 복수의 논리 서브 프로세서에 대응지을 수 있도록 되어 있다.
논리 서브 프로세서의 수가 물리 서브 프로세서의 수보다 많은 경우, 제어 OS는 물리 서브 프로세서를 시분할하여 처리한다. 이 때문에 논리 서브 프로세서는, 시간의 경과에 수반하여 동작 정지나 동작 재개를 반복할 가능성이 있다. 게스트 OS는 이들 상태의 변화를 관측할 수 있다.
데이터 처리의 실행 시에는, 시스템 내의 자원 분배를 받는 주체로서의 논리 파티션이 설정되며, 논리 파티션에 대하여, 물리 프로세서 유닛의 사용 시간이나, 가상 어드레스 공간, 또한 메모리 공간 등의 다양한 리소스가 배분되며, 배분된 리소스를 적용한 처리가 실행된다. 논리 파티션에는, 어느 하나의 물리 프로세서에 대응하는 논리적인 프로세서가 설정되어, 논리 프로세서에 기초하는 데이터 처리가 실행된다. 논리 프로세서와 물리 프로세서는 반드시 일대일의 관계는 아니며, 1개의 논리 프로세서에 복수의 물리 프로세서가 대응지어지는 경우도 있고, 복수의 논리 프로세서에 1개의 물리 프로세서가 대응지어지는 경우도 있다.
논리 프로세서를 적용한 복수의 처리가 병렬로 실행되는 경우, 물리 프로세서는, 복수의 논리 프로세서에 의해 스케쥴링되어 사용되게 된다. 즉, 복수의 논리 프로세서는, 타임 셰어링에 의한 물리 프로세서의 사용을 행하게 된다.
도 4를 참조하여, 타임 셰어링에 의한 물리 프로세서의 사용 형태에 대하여 설명한다. 도 4의 (a)는, 1개의 물리 프로세서에 대하여, 어느 하나의 OS에 대응하는 1개의 논리 프로세서가 할당되어 있는 처리 형태이다. 논리 프로세서(ア)가 물리 프로세서(1)를 점유하여 이용하고, 논리 프로세서(イ)가 물리 프로세서(2)를 점유하여 이용하고 있다.
도 4의 (b)는 1개의 물리 프로세서에 대하여 복수의 논리 프로세서가 할당되어, 타임 셰어링에 의한 처리를 실행하고 있는 처리 형태를 도시하고 있다. 물리 프로세서1은, 논리 프로세서(ウ)→(ア)→(ウ)→(ア)→(イ)→(ウ)→(イ)의 순으로 타임 셰어링되어, 각각의 논리 프로세서, 즉 어느 하나의 OS에 대응하는 처리가 실행된다. 물리 프로세서2는, 논리 프로세서 (イ)→(エ)→(イ)→(エ)→(ウ)→(エ)→(ア)의 순으로 타임 셰어링되어, 각각의 논리 프로세서, 즉 어느 하나의 OS에 대 응하는 처리가 실행된다.
다음으로, 도 5를 참조하여, 물리 프로세서와 논리 프로세서와의 대응에 대하여 설명한다. 도 5에는 1개의 메인 프로세서(401)와, 4개의 물리 서브 프로세서(411∼414)의 물리 프로세서 구성을 도시하고, 또한, 2개의 물리 서브 프로세서, 즉 물리 서브 프로세서(2)와, 물리 서브 프로세서(4)의 시분할 처리에 의해 동작하는 논리 서브 프로세서의 타임 시퀀스를 도시하고 있다.
도 5의 예에서는, 물리 서브 프로세서(2)는,
시간 ta0∼ta1 : 논리 서브 프로세서(ア)
시간 ta1∼ta2 : 논리 서브 프로세서(イ)
시간 ta2∼ta3 : 논리 서브 프로세서(ウ)
시간 ta3∼ : 논리 서브 프로세서(ア)
의 시분할에 의해 각 논리 서브 프로세서가 할당되고, 각각의 할당 시간에서, 각 논리 서브 프로세서는 물리 서브 프로세서(2)를 적용한 처리를 실행하고 있다.
또한, 물리 서브 프로세서(4)는,
시간 tb0∼tb1 ; 논리 서브 프로세서(イ)
시간 tb1∼tb2 : 논리 서브 프로세서(ウ)
시간 tb2∼tb3 : 논리 서브 프로세서(ア)
시간 tb3∼ : 논리 서브 프로세서(イ)
의 시분할에 의해 각 논리 서브 프로세서가 할당되고, 각각의 할당 시간에서, 각 논리 서브 프로세서는 물리 서브 프로세서(4)를 적용한 처리를 실행하고 있다.
각 논리 서브 프로세서가 시분할에 의해 물리 서브 프로세서를 이용한 처리를 실행하고, 또한 다음 할당 기간에서 물리 서브 프로세서를 적용한 데이터 처리를 재개하기 위해, 데이터 처리 중단 시의 하드웨어 상태 등의 상태 정보를 유지해 두는 것이 필요하게 된다. 이 상태 정보에는, 도면에 도시하는 각 물리 서브 프로세서에 대응하는 로컬 스토리지(Local Storage) 정보, MMIO(메모리 맵드 IO) 레지스터 정보가 포함된다. MMIO(메모리 맵드 IO)는, 메모리 맵핑에 의한 하드웨어의 제어를 행하는 입출력 제어 기구로서, 특정한 메모리 위치를 이용한 기입 처리 또는 판독 처리에 의해, 하드웨어의 제어를 가능하게 하고 있다.
논리 서브 프로세서가 물리 서브 프로세서에 할당되어 있는 기간은, 그 논리 서브 프로세서에 대응하는 논리 파티션 어드레스 공간 내의 영역에, 논리 서브 프로세서의 상태를 반영한 물리 서브 프로세서의 MMIO 영역과 로컬 스토리지(Local Storage) 영역이 맵되게 된다.
다음으로, 도 6을 참조하여, 본 발명의 정보 처리 장치에서 정의되는 어드레스 공간과, 어드레스 변환 기구(맵핑)에 대하여 설명한다.
도 6에는, 논리 파티션 어드레스(가상 물리 어드레스) 공간(501), 가상 어드레스 공간(502), 물리 어드레스 공간(503)과, 각 어드레스 공간의 어드레스 변환 기구로서의 변환 테이블로서, 논리 파티션 어드레스(가상 물리 어드레스) 공간(501)을 물리 어드레스 공간(503)으로 변환하는 제1 변환 테이블(521), 가상 어드레스 공간(502)을 물리 어드레스 공간(503)으로 변환하는 제2 변환 테이블(522)을 도시하고 있다.
논리 파티션 어드레스(가상 물리 어드레스) 공간(501)은, 물리 어드레스 공간(503)을 추상화한 어드레스 공간으로서, 시스템 제어 프로그램이 논리 파티션을 생성할 때에 동시에 만들어진다. 논리 파티션 어드레스(가상 물리 어드레스) 공간(501)에는 논리 프로세서가 액세스 가능한 영역이 포함된다. 논리 파티션 어드레스(가상 물리 어드레스) 공간(501)은, 먼저 도 3을 참조하여 설명한, 예를 들면 게스트 OS에 대응하여 설정되는 논리 파티션마다 설정된다.
가상 어드레스 공간(502)은, 예를 들면, 게스트 OS에 의해, 직접 이용되는 가상적인 어드레스 공간이다. 게스트 OS는, 필요에 따라 새로운 가상 어드레스 공간을 생성할 수 있으며, 필요하면 논리 파티션 내에 복수의 가상 어드레스 공간을 생성하는 것도 가능하다. 물리 어드레스 공간(503)은, 리얼 어드레스 공간이다. 이 어드레스는, 버스 상에서 액세스 대상을 지정하기 위해 이용된다.
각 어드레스 공간의 어드레스 변환에는, 어드레스 변환 테이블(521, 522)이 적용된다. 제1 변환 테이블(521)은, 논리 파티션 어드레스(가상 물리 어드레스) 공간을 물리 어드레스 공간(503)으로 변환한다. 제1 변환 테이블의 구성예를 도 7을 참조하여 설명한다.
제1 변환 테이블은, 도 7에 도시한 바와 같이, 논리 파티션 어드레스(가상 물리 어드레스) 공간의 페이지 번호를 인덱스로 하여, 대응하는 물리 어드레스 공간의 페이지를 참조 가능한 구성을 갖는 테이블로서 설정된다. 물리 어드레스 공간의 페이지 번호로서는, 물리 서브 프로세서의 MMIO 레지스터의 물리 어드레스 등이 설정되며, 설정된 물리 어드레스에 기초하여 특정한 물리 서브 프로세서를 특정 할 수 있다. 한편, 인덱스로서의 논리 파티션 어드레스(가상 물리 어드레스) 공간의 페이지 번호는, 논리 서브 프로세서로부터 액세스 가능하고, 제1 변환 테이블의 대응에 기초하여, 논리 서브 프로세서와 물리 서브 프로세서는 대응지어진다.
인덱스(논리 파티션 어드레스(가상 물리 어드레스) 공간의 페이지 번호)에 기초하여 참조 가능한 물리 어드레스 공간의 페이지 번호(물리 서브 프로세서의 MMIO 레지스터의 물리 어드레스)는, 유효한 물리 어드레스, 혹은 엔트리가 무효인 것을 나타내는 값(null)이 설정되며, 이 값은, 제어 OS의 제어에 의해 수시로 갱신된다.
다음으로, 제2 변환 테이블의 구성에 대하여, 도 8을 참조하여 설명한다. 제2 변환 테이블은, 가상 어드레스 공간(502)을 물리 어드레스 공간(503)으로 변환하는 테이블로서, 가상 어드레스 공간의 페이지 번호를 인덱스로 하여, 대응하는 물리 어드레스 공간의 페이지를 참조 가능한 구성을 갖는 테이블로서 설정된다. 물리 어드레스 공간의 페이지 번호로서는, 물리 서브 프로세서의 MMIO 레지스터의 물리 어드레스 등이 설정되며, 설정된 물리 어드레스에 기초하여 특정한 물리 서브 프로세서를 특정할 수 있다. 한편, 인덱스로서의 가상 어드레스 공간의 페이지 번호는, 게스트 OS로부터 액세스 가능하고, 제2 변환 테이블의 대응에 기초하여 특정되는 물리 서브 프로세서에 의한 처리가 실행된다.
인덱스(가상 어드레스 공간의 페이지 번호)에 기초하여 참조 가능한 물리 어드레스 공간의 페이지 번호(물리 서브 프로세서의 MMIO 레지스터의 물리 어드레스)는, 유효한 물리 어드레스, 혹은 엔트리가 무효인 것을 나타내는 값(null)이 설정 되며, 이 값은, 제어 OS의 제어에 의해 수시로 갱신된다.
다음으로, 도 9, 도 10을 참조하여, 제어 OS가 실행하는 제1 변환 테이블, 제2 변환 테이블의 엔트리의 갱신 처리 시퀀스에 대하여 설명한다. 이 갱신 처리에 의해, 논리 파티션에 대응하는 논리 프로세서와 물리 프로세서의 대응 관계가 설정되게 된다.
도 9의 플로우에 따라 테이블의 엔트리의 갱신 처리 시퀀스에 대하여 설명한다. 우선, 스텝 S101에서, 논리 파티션 어드레스(가상 물리 어드레스)로부터 제1 변환 테이블의 인덱스를 계산한다. 논리 파티션 어드레스(가상 물리 어드레스)는, 앞서 도 3을 참조하여 설명한, 예를 들면 게스트 OS에 대응하여 설정되는 논리 파티션마다 설정되는 어드레스 공간에서의 어드레스로서, 이 어드레스에 대응하는 제1 변환 테이블의 인덱스를 구한다. 스텝 S102에서는, 구한 인덱스에 기초하여 제1 변환 테이블로부터 물리 어드레스를 구한다.
도 10을 참조하여, 이 처리에 대하여 설명한다. 논리 파티션 어드레스(가상 물리 어드레스)(610)로부터 제1 변환 테이블(620)의 인덱스 [qqqqq](621)를 구하고, 이 인덱스 [qqqqq](621)에 대응지어진 물리 어드레스 [uuuuu](622)를 얻는다. 논리 파티션 어드레스(가상 물리 어드레스)(610)는, 예를 들면 도 3에 도시하는 게스트 OS의 1개에 설정된 논리 파티션에 대응하는 어드레스 공간의 어드레스로서, 논리 파티션에 대응하는 논리 서브 프로세서(600)의 이용 가능한 어드레스이다.
다음으로, 스텝 S103에서, 가상 어드레스로부터 제2 변환 테이블의 인덱스를 계산하고, 스텝 S104에서, 제2 변환 테이블을 갱신한다.
도 10을 참조하여, 이 처리에 대하여 설명한다. 가상 어드레스(630)로부터 제2 변환 테이블(640)의 인덱스 [aaaaa](641)를 구하고, 이 인덱스 [aaaaa](641)에 대응지어진 물리 어드레스를 [uuuuu](642)로 갱신한다. 결과적으로, 논리 파티션 어드레스(가상 물리 어드레스)(610)로부터 액세스 가능한 물리 서브 프로세서와, 가상 어드레스로부터 액세스 가능한 물리 서브 프로세서는, 도 10에 도시한 바와 같이, 동일한 물리 서브 프로세서(650)로서 설정된다. 가상 어드레스(630)도, 예를 들면 도 3에 도시하는 게스트 OS의 1개에 설정된 논리 파티션에서 설정된 가상 어드레스 공간의 어드레스로서, 논리 파티션에 대응하는 논리 서브 프로세서(600)의 이용 가능한 어드레스이다.
이 변환 테이블의 갱신에 의해, 논리 서브 프로세서와, 물리 서브 프로세서와의 대응이 설정되며, 논리 파티션에 대응지어진 논리 서브 프로세서는, 제1 변환 테이블, 제2 변환 테이블에 의해 관련지어진 물리 서브 프로세서를 적용한 처리가 실행 가능하게 된다.
다음으로, 논리 서브 프로세서의 절환 처리에 대하여, 도 11의 플로우 및, 도 12, 도 13에 도시한 구체적 처리예를 참조하여 설명한다. 이 처리는, 예를 들면, 도 3에 도시하는 게스트 OS 대응의 논리 파티션에서의 데이터 처리를 실행하는 논리 프로세서에 대응하는 물리 프로세서에 대하여, 논리 프로세서-물리 프로세서의 대응을 해소하고, 새로운 물리 프로세서를 다른 논리 프로세서에 대응짓는 처리로서 실행된다. 즉, 논리 프로세서와 물리 프로세서와의 대응 관계를 변경하는 처리로서 실행하는 처리이다. 또한, 이 처리는, 제어 OS에 의해 실행된다.
우선, 스텝 S201에서, 대응 관계를 변경하는 물리 서브 프로세서가 할당되어 있는 논리 서브 프로세서에 대응하는 제1 변환 테이블의 인덱스를 취득하고, 스텝 S202에서, 취득 인덱스에 기초하여 물리 어드레스를 취득한다.
이 처리에 대하여, 도 12를 참조하여 설명한다. 대응 관계를 변경하는 물리 서브 프로세서를 물리 서브 프로세서a(701)로 한다. 물리 서브 프로세서a(701)가 할당되어 있는 논리 서브 프로세서α(702)에 대응하는 제1 변환 테이블(703)의 인덱스는, 인덱스 [qqqqq](704)이다. 스텝 S201에서는, 이 인덱스 [qqqqq](704)를 취득하고, 스텝 S202에서는, 취득 인덱스 [qqqqq](704)에 기초하여 물리 어드레스[uuuuu](705)를 취득한다.
다음으로, 스텝 S203에서, 제2 변환 테이블 중에서, 해당 물리 어드레스, 즉 물리 어드레스 [uuuuu]를 유지하고 있는 전체 엔트리를 모두 무효 [null]로 한다. 도 12를 참조하여 설명한다. 제2 변환 테이블(710) 중에서, 해당 물리 어드레스, 즉 물리 어드레스 [uuuuu]를 유지하고 있는 엔트리(711)를 무효 [null]로 설정한다. 또한, 도 12에서는, 물리 어드레스 [uuuuu]를 유지하고 있는 엔트리를 1개만 도시하고 있지만, 이 엔트리는, 복수 존재하는 경우가 있으며, 복수 존재하는 경우에는, 모든 엔트리를 무효 [null]로 설정한다. 이 처리에 의해, 논리 서브 프로세서α(702)에 의한 데이터 처리에서, 물리 서브 프로세서a(701)를 적용할 수는 없게 된다.
다음으로, 스텝 S204에서, 새롭게 물리 서브 프로세서를 할당하고자 하는 논리 서브 프로세서에 대응하는 제1 변환 테이블의 인덱스를 취득하고, 스텝 S205에 서, 제1 변환 테이블에, 새롭게 할당을 행하는 물리 서브 프로세서의 MMIO 레지스터의 물리 어드레스를 저장한다.
이 처리에 대하여, 도 13을 참조하여 설명한다. 물리 서브 프로세서a(701)를 논리 서브 프로세서β(721)에 새롭게 할당하고자 하는 것으로 한다. 스텝 S204의 처리는, 논리 서브 프로세서β(721)에 대응하는 제1 변환 테이블(703)의 인덱스, 즉, 인덱스 [rrrrr](722)을 취득하는 처리이다. 스텝 S205의 처리는, 제1 변환 테이블(703)에, 물리 서브 프로세서a(701)의 MMIO 레지스터의 물리 어드레스 [uuuuu](723)를 저장하는 처리이다.
이 처리에 의해, 물리 서브 프로세서a(701)는, 논리 서브 프로세서β(721)에 대응 관계가 설정되어, 논리 서브 프로세서β(721)에 의한 처리가 계속해서 실행되게 된다.
이 후, 도 11을 참조하여 설명한 엔트리의 갱신을 실행한다. 도 14를 참조하여, 이 처리에 대하여 설명한다. 가상 어드레스(830)로부터 제2 변환 테이블(840)의 인덱스 [bbbbb](841)를 구하고, 이 인덱스 [bbbbb](841)에 대응지어진 물리 어드레스를 [uuuuu](842)로 갱신한다. 결과적으로, 논리 파티션 어드레스(가상 물리 어드레스)(810)로부터 액세스 가능한 물리 서브 프로세서와, 가상 어드레스로부터 액세스 가능한 물리 서브 프로세서는, 도 14에 도시한 바와 같이, 동일한 물리 서브 프로세서a(701)로서 설정된다.
이상, 물리 프로세서를 현재 할당되어 있는 논리 프로세서와는 상이한 논리 프로세에 할당하는 경우의 설명을 하였지만, 반대로, 논리 프로세서에 대하여 현재 할당되어 있는 물리 프로세서와는 상이한 물리 프로세서를 할당할 수 있다. 도 15에 도시한 바와 같이, 제1 변환 테이블(620)에 물리 서브 프로세서b(651)의 MMIO 레지스터의 물리 어드레스 [vvvvv](622)를 저장함으로써, 물리 서브 프로세서b(651)를 논리 서브 프로세서α(600)에 할당할 수 있다.
또한, 이러한 물리 프로세서의 절환은, 예를 들면, 1개의 물리 프로세서를 적용한 데이터 처리가 계속해서 실행된 경우의 과열을 방지하기 위한 프로세서 절환 제어 처리로서 실행된다. 제어 OS는, 1개의 물리 프로세서의 계속 사용 시간이, 미리 설정된 최대 계속 프로세서 사용 시간에 이른 경우에, 도 15를 참조하여 설명한 프로세서 절환 처리를 실행하여, 논리-물리 프로세서의 대응 관계를 변경하여, 새로운 물리 프로세서를 적용한 처리를 행하는 구성으로 할 수 있다.
예를 들면, 도 16에 도시하는 프로세서 모듈(200)과 같이, 각 서브 프로세서 그룹(202∼20n)마다 타이머 유닛(252∼25n)을 갖는 구성으로 하고, 타이머 유닛(252∼25n)에 의해, 각 서브 프로세서 그룹(202∼20n)의 서브 프로세서 유닛으로서의 물리 프로세서에서 실행되는 처리의 처리 시간 계측을 행하고, 일정 시간이 경과하면 논리 프로세서와 물리 프로세서의 대응 관계를 변경하도록 해도 된다. 도 16에 도시하는 각 서브 프로세서 유닛을 구성하는 각 물리 프로세서의 근방에 온도 센서(271∼273, 281∼283)를 설치하고, 각 프로세서의 온도 상승을 검지하여, 미리 정한 임계값 온도에 이른 경우에 논리 프로세서와 물리 프로세서의 대응 관계를 절환하는 처리에 의해, 과도한 온도 상승을 방지할 수 있다.
논리 프로세서와 물리 프로세서의 대응 관계를 절환하는 처리 구성으로서는, 각 서브 프로세서 그룹(202∼20n)마다 설정된 타이머 유닛(252∼25n)에 의한 시간 계측에 기초하여, 일정 시간마다 절환하는 구성으로 한 시간 의존형의 프로세서 절환 처리 구성과, 각 서브 프로세서 유닛을 구성하는 각 물리 프로세서의 근방에 설치한 온도 센서(271∼273, 281∼283)에 의해 각 프로세서의 온도 상승을 검지하여, 미리 정한 임계값 온도에 이른 경우에, 논리 프로세서와 물리 프로세서의 대응을 절환하는 구성으로 한 온도 의존형의 프로세서 절환 처리 구성 중 어느 하나, 혹은 양자를 병행하여 실행하는 구성이 가능하다. 논리 프로세서와 물리 프로세서의 대응 관계를 절환하는 것은, 도 15를 참조하여 설명한 프로세서 절환에 의해 실행된다.
도 17에, 일정 시간마다 논리 프로세서와 물리 프로세서의 대응 관계를 절환하는 시간 의존형의 프로세서 절환 처리를 설명하는 개념도를 도시한다. 도 17의 (a)∼(c)는, 각각, 미리 설정된 시간 간격(ti)마다 절환되는 논리 프로세서와 물리 프로세서의 대응 관계를 도시하고 있다. 예를 들면,
(a) 시간 T0에서의 논리 프로세서와 물리 프로세서의 대응 관계
논리 프로세서α=물리 프로세서a
논리 프로세서β=물리 프로세서b
논리 프로세서γ=물리 프로세서c
(b) 시간 T0부터 시간 ti 경과 후의 시간 T1에서의 논리 프로세서와 물리 프로세서의 대응 관계
논리 프로세서γ=물리 프로세서a
논리 프로세서α=물리 프로세서b
논리 프로세서β=물리 프로세서c
(c) 시간 T1부터 시간 ti 경과 후의 시간 T2에서의 논리 프로세서와 물리 프로세서의 대응 관계
논리 프로세서β=물리 프로세서a
논리 프로세서γ=물리 프로세서b
논리 프로세서α=물리 프로세서c
를 나타내고 있다. 그 후에도 (a)→(b)→(c)를, 시간(ti) 경과마다, 반복하여 대응 관계를 절환하는 처리가 실행된다.
도 18은 각 서브 프로세서 유닛을 구성하는 각 물리 프로세서의 근방에 설치한 온도 센서(271∼273, 281∼283)(도 16 참조)에 의해 각 프로세서의 온도 상승을 검지하여, 미리 정한 임계값 온도에 이른 경우에, 논리 프로세서와 물리 프로세서의 대응을 절환하는 구성으로 한 온도 의존형의 프로세서 절환 처리를 설명하는 개념도를 도시한다. 도 18의 (a)∼(c)는, 각각, 프로세서의 온도에 따라 절환되는 논리 프로세서와 물리 프로세서의 대응 관계를 도시하고 있다.
예를 들면, (a)에 도시한 바와 같이, 논리 프로세서와 물리 프로세서의 대응 관계가,
논리 프로세서α=물리 프로세서a
논리 프로세서β=물리 프로세서b
논리 프로세서γ=물리 프로세서c
로서 설정되어 있는 경우, 물리 서브 프로세서a가 미리 설정한 임계값 온도 이상의 고온으로 된 경우, 가장 온도가 높은 물리 서브 프로세서a와 대응 관계에 있는 논리 서브 프로세서α와, 가장 온도가 낮은 물리 서브 프로세서b와 대응 관계에 있는 논리 서브 프로세서β의 대응지음을 교환하여, (b)에 도시한 바와 같이, 논리 프로세서와 물리 프로세서의 대응 관계를,
논리 프로세서β=물리 프로세서a
논리 프로세서α=물리 프로세서b
논리 프로세서γ=물리 프로세서c
의 설정으로 변경한다. 이 처리에 의해, 처리 부하가 높은 프로세스를 실행하고 있을 것으로 예측되는 논리 프로세서α 대응의 처리가 물리 프로세서a로부터 물리 프로세서b로 절환되어 실행되게 되어, 논리 프로세서α 대응의 처리를 계속해서 1개의 물리 프로세서에서 실행하는 것에 의한 과도한 온도 상승을 방지할 수 있다.
또한, 온도 센서에 의한 프로세서의 온도 상승의 검지를 계기로 대응지음의 변경을 행하는 것이 아니라, 상기한 타이머 유닛을 이용하여, 일정 시간마다, 가장 온도가 높은 물리 서브 프로세서와, 가장 온도가 낮은 물리 서브 프로세서 사이에서 대응지음을 교환하도록 해도 된다. 이러한 프로세서 절환 처리(마이그레이션 처리)에 의해, 1개의 프로세서를 장기간에 걸쳐 사용하는 것에 의한 온도의 과대한 상승이 방지된다.
본 발명의 구성에서는, 상술한 바와 같이 제어 OS가 2개인 어드레스 변환 테이블, 즉, 논리 파티션 어드레스(가상 물리 어드레스) 공간을 물리 어드레스 공간 으로 변환하는 제1 변환 테이블과, 가상 어드레스 공간을 물리 어드레스 공간으로 변환하는 제2 변환 테이블을 적용하여, 테이블의 엔트리 설정, 및 갱신 처리를 실행함으로써, 논리 프로세서와 물리 프로세서와의 대응 관계를 변경하는 구성이기 때문에, 상황에 따라, 논리 프로세서-물리 프로세서의 대응 관계의 설정, 변경이 가능해지고, 데이터 처리 시퀀스에 따른 물리 프로세서의 타임 셰어링에 의한 데이터 처리가 가능하여, 하드웨어의 부하, 데이터 처리 프로그램의 양태를 고려한 최적의 데이터 처리가 실행 가능하게 된다.
또한, 게스트 OS 등에 대응하여 설정되는 논리 파티션측으로부터 본 경우에는, 변환 테이블의 변경에 의해, 물리 프로세서가 변경되어도, 논리 파티션측의 처리를 계속해서 실행하는 것이 가능하고, 게스트 OS측에서는 가상적으로 1개의 물리 프로세서를 적용한 처리를 계속해서 실행하고 있는 것과 마찬가지의 처리 환경에서의 데이터 처리가 가능하게 된다.
다음으로, 도 19를 참조하여 논리 프로세서와 물리 프로세서를 대응지을 때, 초기부터 혹은 후발적으로 불량하게 된 물리 프로세서를, 논리 프로세서의 대응지음의 대상으로부터 제외하는 구성으로 한 예에 대하여 설명한다.
복수의 물리 프로세서를 탑재하는 장치에서, 당초부터 데이터 처리의 실행을 할 수 없는 불량한 물리 프로세서가 포함되게 되는 경우나, 후발적으로 데이터 처리의 실행이 불가능하게 되는 불량한 물리 프로세서가 포함되는 경우가 있다. 이러한 불량 물리 프로세서를, 논리 프로세서의 대응지음의 대상으로부터 제외한다.
도 19에는, 4개의 물리 프로세서a∼d가 탑재된 장치예를 도시하고 있다. 이 들 물리 프로세서에 대하여, 논리 프로세서가 할당되어 처리가 실행된다. 여기서 물리 프로세서c가, 초기적 혹은 후발적으로 불량하게 되어 데이터 처리 기능이 결락 혹은 저하된 것으로 한다.
이 경우, 논리 프로세서α∼δ의 대응지음 대상으로서의 물리 프로세서를 물리 프로세스a, b, d만으로 하는 설정으로 하고, 물리 프로세서c를, 논리 프로세서의 대응지음의 대상으로부터 제외한다. 상술한 바와 같이 물리 프로세서와 논리 프로세서는 일대일로 대응지어질 필요는 없으며, 수가 동일할 필요도 없다.
논리 프로세서를 물리 프로세서에 대응짓는 처리를 실행하는 제어 OS는, 불량한 물리 프로세서를 대응지음 대상으로부터 제외하고, 상술한 논리 프로세서와 물리 프로세서와의 대응 관계를 결정하는 어드레스 변환 테이블을 구성하여, 정상적인 물리 프로세서만을 논리 프로세서에 대응짓는다. 초기적인 불량을 갖는 물리 프로세서를 포함하는 경우에는, 당초부터 불량한 물리 프로세서를 대응지음 대상으로부터 제외한 어드레스 변환 테이블의 설정으로 하고, 후발적으로 물리 프로세서의 불량이 발생한 경우에는, 어드레스 변환 테이블의 갱신을 실행하여, 후발적인 불량을 발생시킨 물리 프로세서를 논리 프로세서와의 대응지음 대상으로부터 제외한 어드레스 변환 테이블의 설정으로 변경한다.
이와 같이, 불량한 물리 프로세서를 사용하지 않고, 정상적인 물리 프로세서만을 사용하는 구성으로 함으로써, 데이터 처리에서의 에러를 발생시키지 않는 장치가 실현된다. 또한, 예를 들면 n개의 물리 프로세서를 탑재한 칩을 장착한 장치에서, m개의 물리 프로세서(n>m)만을 논리 프로세서와의 대응지음 대상으로 함으로 써, 정상적인 m개의 프로세서를 구비한 장치로서 보일 수 있다.
또한, 복수의 물리 프로세서에서 소정의 비율로 불량한 물리 프로세서가 포함되는 것이 상정되는 경우에는, n개의 물리 프로세서를 탑재한 장치에서 실행하는 데이터 처리 프로그램을, 예를 들면 m개(n>m)의 프로세서만을 적용한 처리로서 실행 가능한 프로그램을 설계하는 것이 바람직하다. 이 구성으로 함으로써 n-m개의 불량 프로세서가 초기적으로 혹은 후발적으로 발생한 경우, 문제없이 데이터 처리를 실행하는 것이 가능하게 된다.
다음으로, 도 20을 참조하여, 논리 프로세서와 물리 프로세서와의 대응을, 각 물리 프로세서와 이용 전원과의 관계에 기초하여 설정하는 구성예에 대하여 설명한다. 복수의 물리 프로세서를 구비한 장치에서, 전원으로부터의 전력 공급 라인이 공통되는 물리 프로세서군이 설정되는 경우가 있다. 예를 들면 도 20의 (A)에 도시하는 예에서는, 물리 프로세서a와, 물리 프로세서b가 1개의 전력 공급 라인(901)을 통하여 전원A로부터의 전력 공급을 받고, 물리 프로세서c와, 물리 프로세서d가 또 하나의 전력 공급 라인(902)을 통하여 전원B로부터의 전력 공급을 받는 구성으로 되어 있다.
이러한 장치 구성에서, 예를 들면 임의의 데이터 처리의 시간에서, 논리 프로세서에 대응지어진 물리 프로세서b와 물리 프로세서d가 동시에 데이터 처리를 실행하고, 물리 프로세서a와 물리 프로세서c가 아이들링 상태인 경우, 전원A, B의 쌍방으로부터 전력 공급 라인(901, 902)을 통하여 전력 공급을 행하는 것이 필요하게 된다.
이와 같이, 전원 및 전력 공급 라인을 쌍방 모두 이용한 경우, 한쪽만의 전력 공급 라인을 이용한 경우에 비해 소비 전력이 많아진다. 따라서, 이상적으로는, 동시에 동작하는 물리 프로세서의 수가 적은 경우, 이용하는 전원이나 전력 공급 라인의 수를 가능한 한 적게 하는 것이 소비 전력의 저하를 위해 바람직한 설정이다.
논리 프로세서를 물리 프로세서에 대응짓는 처리를 실행하는 제어 OS는, 각 물리 프로세서의 이용하는 전원과의 관계에 기초하여, 각 논리 프로세서에 대응짓는 물리 프로세서를 결정하여, 상술한 어드레스 변환 테이블의 설정, 갱신 처리를 실행한다. 예를 들면 도 20의 (B)에 도시한 바와 같이, 서로 다른 전력 공급 라인(901, 902)에 접속된 물리 프로세서a∼d를 갖고, 2개의 물리 프로세서a, b가 1개의 전원 및 전력 공급 라인(901)에 접속되며, 2개의 물리 프로세서c, d가 또 하나의 전원 및 전력 공급 라인(902)에 접속되어 있는 구성에서, 논리 프로세서에 대응지어져 동시에 동작하는 것이 필요하게 되는 물리 프로세서가 2개뿐인 경우, 논리 프로세서를 한쪽의 전력 공급 라인에 접속된 물리 프로세서에만 대응짓는다.
도면에 도시하는 예에서는, 논리 프로세서를 물리 프로세서c와 물리 프로세서d에 대응지어 데이터 처리를 행하는 구성으로 한다. 이 설정에 의해, 물리 프로세서a, b는 아이들링 상태, 즉 비동작 상태로 되어, 전력 공급을 행할 필요가 없어져, 전력 공급 라인(902)만을 통하여 전력 공급을 행하는 것만으로 데이터 처리가 가능해져, 소비 전력을 저감시킬 수 있다.
논리 프로세서를 물리 프로세서에 대응짓는 처리를 실행하는 제어 OS는, 미 리 메모리에 기억한 각 물리 프로세서와 전원과의 대응 관계 테이블을 참조하여, 각 처리 시간에서 ON으로 하는 전원이나, 전력 공급 라인수를, 가능한 한 적은 설정으로 하도록 논리 프로세서와 물리 프로세서와의 대응 관계를 결정하는 어드레스 변환 테이블을 설정 또는 갱신을 행한다. 이러한 제어를 행함으로써, 소비 전력의 저감이 실현된다.
다음으로, 도 21∼도 23을 참조하여, 논리 프로세서가 대응지어진 물리 프로세서에서의 데이터 처리에서 이용하는 메모리와, 물리 프로세서와의 위치 관계에 기초하여, 논리 프로세서와 물리 프로세서와의 대응을 설정하는 구성예에 대하여 설명한다.
도 21에 도시하는 장치는, 임의의 정보 처리 장치가 갖는 4개의 물리 프로세서a∼d와, 장치 내의 메모리X, 메모리Y를 나타내고 있다. 각 물리 프로세서a∼d 에서의 데이터 처리에서, 각 프로세서는, 필요에 따라 메모리X, 메모리Y에 대한 액세스를 행한다. 메모리X와 메모리Y는, 정보 처리 장치 내에서, 각각 이격한 위치에 있으며, 각 물리 프로세서는, 메모리X, 메모리Y에 저장하는 데이터 혹은 판독 데이터의 데이터 전송을 장치 내의 버스(911)를 통하여 행한다.
메모리 액세스 처리나, 버스를 통한 데이터 전송 처리에 대하여 고찰한 경우, 물리 프로세서와 메모리와의 거리가 물리적으로 가까운 쪽이, 버스의 효율적 이용이 실현되어, 액세스 시간, 처리 시간의 단축이 실현된다.
논리 프로세서를 물리 프로세서에 대응짓는 처리를 실행하는 제어 OS는, 논리 프로세서가 대응지어져, 다양한 프로세스를 실행하는 물리 프로세서의 메모리 액세스 상황을 검출한다. 제어 OS는, 액세스 상황에 따라, 액세스 빈도가 높은 쪽의 메모리에 가까운 위치에 있는 물리 프로세서를, 각 프로세스에 대응하는 논리 프로세서에 대하여 대응짓는다.
모니터부(921)는, 다양한 프로세스에 대응하여 설정되는 논리 프로세서와, 논리 프로세서에 대응하는 프로세스를 실행하는 물리 프로세서의 대응 관계와, 각 물리 프로세서의 메모리 액세스 상황을 모니터한다. 또한, 도면에는, 모니터부(921)를 1개의 블록으로서 도시하고 있지만, 모니터링 처리는, 각 물리 프로세서 개별로 설정된 하드웨어에 의해 카운트되는 메모리 액세스 횟수를, 제어 OS가 실행하는 감시 프로그램에 의해 취득하는 처리로서 실행된다. 구체예에 대하여, 도 22를 참조하여 설명한다.
도 22의 (B)는, 임의의 데이터 처리 시퀀스에서 실행된 논리 프로세서와 물리 프로세서의 대응지음과, 물리 프로세서의 메모리 액세스 양태를 도시하고 있다. 각 물리 프로세서a∼d는, 각각 메모리X, 메모리Y에 액세스를 실행하고 있다. 메모리X와 메모리Y는, 장치 내의 이격한 물리 위치에 배치된 메모리이다. 메모리X는, 물리 프로세서a, b에 가까운 위치에 있고, 메모리Y는, 물리 프로세서c, d에 가까운 위치에 배치되어 있다.
도 22의 (A)는, 도 22의 (B)에 도시한 바와 같이 논리 프로세서와 물리 프로세서의 대응지어진 데이터 처리에서 제어 OS가 실행하는 모니터링 처리, 즉 모니터부(921)의 모니터링의 실행 결과로서 취득한 데이터예를 도시하고 있다. 모니터 데이터는, 물리 프로세서와 논리 프로세서의 대응 관계와, 각 물리 프로세서가 실 행한 메모리X와 메모리Y에 대한 액세스 횟수의 기록 데이터를 포함한다.
예를 들면, 물리 프로세서a는, 논리 프로세서α에 대응지어져 논리 프로세서α 대응의 프로세스를 실행하고, 이 프로세스 실행 처리에서 메모리X에 20회, 메모리Y에 7회의 액세스를 행한 것이 기록된다. 다른 물리 프로세서에 대해서도 마찬가지로, 대응지어진 논리 프로세서와, 각 메모리에 대한 액세스수가 각각 기록된다. 또한, 모니터링을 실행하는 기간은, 다양한 설정이 가능하여, 특정한 프로세스의 실행 기간, 혹은, 미리 설정한 시간 등의 설정이 가능하다.
도 22의 (B)를 참조하여 설명한 바와 같이, 물리 프로세서a와 물리 프로세서b는, 메모리X와의 물리적 거리가, 메모리Y와의 물리적 거리보다 가깝고, 한편, 물리 프로세서c와 물리 프로세서d는, 메모리Y와의 물리적 거리가, 메모리X와의 물리적 거리보다 가깝다. 버스의 효율적 이용, 액세스 시간, 처리 시간의 단축 등을 실현하기 위해서는, 각 물리 프로세스는, 액세스수가 많은 메모리가 가까운 위치에 설정되는 것이 바람직하다.
도 22의 (A)에 도시하는 모니터 결과에서는, 논리 프로세서α에 대응지어진 물리 프로세서a는, 메모리X의 액세스수가 [20], 메모리Y의 액세스수가 [7]로, 물리 프로세서a에 가까운 X에 대한 액세스수가, 먼 메모리Y에 대한 액세스수보다 많게 되어 있어, 논리 프로세서α를 물리 프로세서a에 대응지어 프로세스를 실행함으로써, 효율적인 처리가 실행된다고 할 수 있다.
그러나, 논리 프로세서γ에 대응지어진 물리 프로세서b는, 메모리X의 액세스수가 [2], 메모리Y의 액세스수가 [25]로, 물리 프로세서b에 가까운 메모리X에 대한 액세스수가, 먼 메모리Y에 대한 액세스수보다 적게 되어 있어, 논리 프로세서γ를 물리 프로세서b에 대응지어 프로세스를 실행함으로써, 효율이 저하되어 있다고 추측된다.
또한, 논리 프로세서β에 대응지어진 물리 프로세서c는, 메모리X의 액세스수가 [5], 메모리Y의 액세스수가 [30]으로, 물리 프로세서c에 가까운 메모리Y에 대한 액세스수가, 먼 메모리X에 대한 액세스수보다 많게 되어 있어, 논리 프로세서β를 물리 프로세서c에 대응지어 프로세스를 실행함으로써, 효율적인 처리가 실행된다고 할 수 있다.
또한, 논리 프로세서δ에 대응지어진 물리 프로세서d는, 메모리X의 액세스수가 [12], 메모리Y의 액세스수가 [5]로, 물리 프로세서d에 가까운 메모리Y에 대한 액세스수가, 먼 메모리X에 대한 액세스수보다 적게 되어 있어, 논리 프로세서b를 물리 프로세서d에 대응지어 프로세스를 실행함으로써, 효율이 저하되어 있다고 추측된다.
제어 OS는, 이들 모니터 결과에 기초하여, 다음의 동일 프로세스의 실행 시에는, 논리 프로세서와 물리 프로세서와의 대응지음을 변경한다. 즉, 물리 프로세서의 메모리 액세스 상황에 따라, 액세스 빈도가 높은 쪽의 메모리에 가까운 위치에 있는 물리 프로세서를, 각 프로세스에 대응하는 논리 프로세서에 대하여 대응짓는 갱신을 행한다. 상술한 바와 같이, 제어 OS는, 어드레스 변환 테이블의 갱신에 의해, 논리 프로세서와 물리 프로세서와의 대응 관계를 임의로 설정 가능하고, 모니터 결과에 기초하여, 액세스 빈도가 높은 쪽의 메모리에 가까운 위치에 있는 물 리 프로세서를, 각 프로세스에 대응하는 논리 프로세서에 대하여 대응짓도록 어드레스 변환 테이블의 갱신을 실행한다.
도 22의 (A)에 도시하는 모니터 결과로부터,
물리 프로세서a : 논리 프로세서α
물리 프로세서c : 논리 프로세서β
는 문제없는 대응지음이지만,
물리 프로세서b : 논리 프로세서γ
물리 프로세서d : 논리 프로세서δ
의 대응지음은, 데이터 전송 등의 처리 효율 저하를 초래하고 있는 대응지음이라고 판정할 수 있다. 제어 OS는, 어드레스 변환 테이블의 갱신에 의해, 이들 논리 프로세서와 물리 프로세서와의 대응 관계를 변경하여, 액세스 빈도가 높은 쪽의 메모리에 가까운 위치에 있는 물리 프로세서를, 각 프로세스에 대응하는 논리 프로세서에 대하여 대응짓는다.
도 23을 참조하여, 갱신 처리 후의 논리 프로세서와 물리 프로세서와의 대응 관계와, 메모리 액세스 빈도와의 관계에 대하여 설명한다. 제어 OS는, 어드레스 변환 테이블의 갱신에 의해, 논리 프로세서와 물리 프로세서와의 대응 관계를 변경한다. 즉, 액세스 빈도가 높은 쪽의 메모리에 가까운 위치에 있는 물리 프로세서를, 각 프로세스에 대응하는 논리 프로세서에 대하여 대응짓도록 어드레스 변환 테이블의 갱신을 실행한다.
이 처리에 의해, 도 23의 (C)에 도시한 바와 같이,
물리 프로세서a : 논리 프로세서α
물리 프로세서b : 논리 프로세서δ
물리 프로세서c : 논리 프로세서β
물리 프로세서d : 논리 프로세서γ
의 각 대응지음을 행한다.
이 대응지음에서 도 22를 참조하여 설명한 프로세스와 동일 프로세스를 실행한 경우, 각 물리 프로세서의 메모리 액세스의 모니터 결과는, 도 23의 (D)에 도시하는 결과로 되며,
논리 프로세서α에 대응지어진 물리 프로세서a와,
논리 프로세서δ에 대응지어진 물리 프로세서b
의 각 물리 프로세서는, 보다 가까운 위치에 있는 메모리X에 대한 액세스수가, 먼 위치의 메모리Y에 대한 액세스수보다 많아져, 높은 처리 효율에서의 처리가 실현된다.
마찬가지로,
논리 프로세서β에 대응지어진 물리 프로세서c와,
논리 프로세서γ에 대응지어진 물리 프로세서d
의 각 물리 프로세서는, 보다 가까운 위치에 있는 메모리Y에 대한 액세스수가, 먼 위치의 메모리X에 대한 액세스수보다 많아져, 높은 처리 효율에서의 처리가 실현된다.
이와 같이, 논리 프로세서를 물리 프로세서에 대응짓는 처리를 실행하는 제 어 OS가, 논리 프로세서의 대응지어진 각 물리 프로세서에 대한 메모리 액세스 상황에 따라 어드레스 변환 테이블의 갱신을 실행하여 논리 프로세서와 물리 프로세서와의 대응 관계를 변경한다. 즉, 액세스 빈도가 높은 쪽의 메모리에 가까운 위치에 있는 물리 프로세서를, 각 프로세스에 대응하는 논리 프로세서에 대하여 대응짓도록 어드레스 변환 테이블의 갱신을 실행한다. 이 처리에 의해, 데이터 액세스의 고속화가 실현되어, 보다 높은 효율에서의 데이터 처리가 가능하게 된다.
이상, 특정한 실시예를 참조하면서, 본 발명에 대하여 상해해 왔다. 그러나, 본 발명의 요지를 일탈하지 않는 범위에서 당업자가 그 실시예의 수정이나 대용을 할 수 있는 것은 자명하다. 즉, 예시라는 형태로 본 발명을 개시한 것으로, 한정적으로 해석되어서는 안된다. 본 발명의 요지를 판단하기 위해서는, 특허 청구 범위의 란을 참작하여야 한다.
또한, 명세서 내에서 설명한 일련의 처리는 하드웨어, 또는 소프트웨어, 혹은 양자의 복합 구성에 의해 실행하는 것이 가능하다. 소프트웨어에 의한 처리를 실행하는 경우에는, 처리 시퀀스를 기록한 프로그램을, 전용의 하드웨어에 내장된 컴퓨터 내의 메모리에 인스톨하여 실행시키거나, 혹은, 각종 처리가 실행 가능한 범용 컴퓨터에 프로그램을 인스톨하여 실행시키는 것이 가능하다.
예를 들면, 프로그램은 기록 매체로서의 하드디스크나 ROM(Read Only Memory)에 미리 기록해 둘 수 있다. 혹은, 프로그램은 플렉시블 디스크, CD- ROM(Compact Disc Read Only Memory), MO(Magneto Optical) 디스크, DVD(Digital Versatile Disc), 자기 디스크, 반도체 메모리 등의 리무버블 기록 매체에, 일시적 혹은 영속적으로 저장(기록)해 둘 수 있다. 이러한 리무버블 기록 매체는, 소위 패키지 소프트웨어로서 제공할 수 있다.
또한, 프로그램은, 상술한 바와 같은 리무버블 기록 매체로부터 컴퓨터에 인스톨하는 것 외에, 다운로드 사이트로부터, 컴퓨터에 무선 전송하거나, LAN(Local Area Network), 인터넷 등의 네트워크를 통해, 컴퓨터에 유선으로 전송하고, 컴퓨터에서는, 그와 같이 하여 전송되어 오는 프로그램을 수신하여, 내장하는 하드디스크 등의 기록 매체에 인스톨할 수 있다.
또한, 명세서에 기재된 각종 처리는, 기재에 따라 시계열로 실행될 뿐만 아니라, 처리를 실행하는 장치의 처리 능력 혹은 필요에 따라 병렬적으로 혹은 개별로 실행되어도 된다. 또한, 본 명세서에서 시스템이란, 복수의 장치의 논리적 집합 구성이며, 각 구성의 장치가 동일 케이스 내에 있는 것에 한정되지는 않는다.
이상, 설명한 바와 같이, 본 발명의 일 실시예의 구성에 따르면, 논리 프로세서를 물리 프로세서에 대응지어 데이터 처리를 행하는 구성에서, 가상 어드레스 공간과, 논리 파티션 어드레스(가상 물리 어드레스) 공간과, 물리 어드레스 공간의 서로 다른 어드레스 공간의 어드레스 변환에 적용하는 테이블을 설정하고, 이것을 적절하게, 갱신하는 처리를 실행함으로써, 최적의 논리 프로세서와 물리 프로세서와의 대응의 설정, 갱신을 행하여, 효율적인 데이터 처리가 실현된다.
본 발명의 일 실시예의 구성에 따르면, 제어 OS가 2개의 어드레스 변환 테이블, 즉, 논리 파티션 어드레스(가상 물리 어드레스) 공간을 물리 어드레스 공간으 로 변환하는 제1 변환 테이블과, 가상 어드레스 공간을 물리 어드레스 공간으로 변환하는 제2 변환 테이블을 적용하여, 테이블의 엔트리 설정, 및 갱신 처리를 실행함으로써, 논리 프로세서와 물리 프로세서와의 대응 관계를 변경하는 구성이기 때문에, 상황에 따라, 논리 프로세서-물리 프로세서의 대응 관계의 설정, 변경이 가능해지고, 데이터 처리 시퀀스에 따른 물리 프로세서의 타임 셰어링에 의한 데이터 처리가 가능하여, 하드웨어의 부하, 데이터 처리 프로그램의 양태를 고려한 최적의 데이터 처리가 실행 가능해진다.
본 발명의 일 실시예의 구성에 따르면, 예를 들면 물리 프로그램의 로테이션 처리, 즉 마이그레이션을 제어 OS에 의한 변환 테이블의 갱신에 의해 실현하는 것이 가능해져, 물리 프로세서의 계속적인 사용에 의한 발열의 억제가 가능하게 된다.
또한, 본 발명의 일 실시예의 구성에 따르면, 예를 들면 서로 다른 전원 공급 라인에 접속된 물리 프로세서군이 설정되어 있는 구성에서, 복수의 논리 프로세서가 각각 서로 다른 물리 프로세서에 대응지어져 병렬로 실행되는 프로세스가 있는 경우, 1개의 전원 공급 라인에 접속된 물리 프로세서에 대하여 논리 프로세서를 각각 할당함으로써, 아이들 상태에 있는 물리 프로세서군에 대한 전원 공급을 정지하는 것이 가능해져, 소비 전력을 저감하는 것이 가능하게 된다.
또한, 본 발명의 일 실시예의 구성에 따르면, 장치 내에서의 물리적 위치가 서로 다른 복수의 메모리를 갖는 구성에서, 액세스 빈도가 높은 쪽의 메모리에 가까운 위치에 있는 물리 프로세서를, 각 프로세스에 대응하는 논리 프로세서에 대하 여 대응짓도록 어드레스 변환 테이블의 갱신을 실행한다. 이 프로세서 대응지음 처리에 의해, 데이터 액세스의 고속화가 실현되어, 보다 높은 효율에서의 데이터 처리가 가능하게 된다.

Claims (17)

  1. 정보 처리 장치로서,
    논리 프로세서를 시분할로 물리 프로세서에 대응짓는 처리를 실행하는 제어 OS와,
    논리 프로세서의 적용 주체로서의 논리 파티션의 설정 대상인 게스트 OS를 갖고,
    상기 제어 OS는,
    논리 프로세서와 물리 프로세서의 대응 관계를 결정하는 어드레스 변환 테이블로서,
    논리 파티션 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제1 변환 테이블과, 게스트 OS측에 설정되는 가상 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제2 변환 테이블의 2개의 어드레스 변환 테이블의 설정 및 갱신 처리를 실행함으로써, 논리 프로세서와 물리 프로세서의 대응 관계의 설정 및 갱신을 행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  2. 제1항에 있어서,
    상기 제어 OS는,
    논리 파티션 어드레스에 기초하여 결정되는 상기 제1 변환 테이블의 인텍스에 대응하는 물리 어드레스를 취득함과 함께, 가상 어드레스에 기초하여 결정되는 상기 제2 변환 테이블의 인덱스에 대응하는 물리 어드레스의 갱신 처리를 실행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  3. 제1항에 있어서,
    상기 제어 OS는,
    논리 프로세서와 물리 프로세서의 대응 관계의 절환 시에,
    물리 프로세서에 대응지어진 논리 프로세서에 대응하는 상기 제1 변환 테이블의 인덱스로부터 구해지는 물리 어드레스를 취득하고, 취득한 물리 어드레스를 유지하는 상기 제2 변환 테이블의 모든 엔트리를 무효화하는 처리를 실행함과 함께,
    물리 프로세서를 새롭게 대응짓는 논리 프로세서에 대응하는 상기 제1 변환 테이블의 인덱스를 취득하고, 그 취득 인덱스에 대응하는 물리 어드레스로서, 대응지음을 행하는 물리 프로세서의 물리 어드레스 정보를 저장하는 처리를 실행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 물리 어드레스는, 물리 프로세서의 MMIO 레지스터의 물리 어드레스인 것을 특징으로 하는 정보 처리 장치.
  5. 제1항에 있어서,
    상기 제어 OS는,
    1개의 물리 프로세서를 적용한 처리의 계속 시간이, 미리 정한 임계값 시간에 이른 것을 조건으로 하여, 논리 프로세서와 물리 프로세서와의 대응 변경 처리를 실행하여, 물리 프로세서의 절환을 행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  6. 제1항에 있어서,
    상기 제어 OS는,
    물리 프로세서의 온도가, 미리 정한 임계값 온도에 이른 것을 조건으로 하여, 논리 프로세서와 물리 프로세서와의 대응 변경 처리를 실행하여, 물리 프로세서의 절환을 행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  7. 제1항에 있어서,
    상기 제어 OS는,
    병렬로 동작 상태로 되는 복수의 물리 프로세서가 동일한 전력 공급 라인에 접속된 물리 프로세서군으로서 설정되도록 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 처리를 실행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  8. 제1항에 있어서,
    상기 제어 OS는,
    정보 처리 장치 내의 서로 다른 위치에 설정된 메모리에 대한 물리 프로세서의 액세스 상황에 기초하여 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 구성이며,
    물리 프로세서에 의해 가까운 위치에 있는 메모리의 액세스 빈도가 높아지도록, 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 처리를 실행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  9. 논리 프로세서를 물리 프로세서에 대응지어 데이터 처리를 행하는 구성에서의 프로세스 제어 방법으로서,
    논리 프로세서의 적용 주체로서의 게스트 OS측에 논리 파티션을 설정하는 스텝과,
    논리 파티션 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제1 변환 테이블과, 상기 게스트 OS측에 설정되는 가상 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제2 변환 테이블의 2개의 어드레스 변환 테이블의 설정 또는 갱신을 실행하는 테이블 갱신 스텝
    을 갖는 것을 특징으로 하는 프로세스 제어 방법.
  10. 제9항에 있어서,
    상기 테이블 갱신 스텝은,
    논리 파티션 어드레스에 기초하여 결정되는 상기 제1 변환 테이블의 인덱스 에 대응하는 물리 어드레스를 취득하는 스텝과,
    가상 어드레스에 기초하여 결정되는 상기 제2 변환 테이블의 인덱스에 대응하는 물리 어드레스의 갱신 처리를 실행하는 스텝
    을 포함하는 것을 특징으로 하는프로세스 제어 방법.
  11. 제9항에 있어서,
    상기 프로세스 제어 방법은,
    논리 프로세서와 물리 프로세서의 대응 관계의 절환 시에,
    물리 프로세서에 대응지어진 논리 프로세서에 대응하는 상기 제1 변환 테이블의 인덱스로부터 구해지는 물리 어드레스를 취득하고, 취득한 물리 어드레스를 유지하는 상기 제2 변환 테이블의 모든 엔트리를 무효화하는 처리를 실행하는 스텝과,
    물리 프로세서를 새롭게 대응짓는 논리 프로세서에 대응하는 상기 제1 변환 테이블의 인덱스를 취득하고, 그 취득 인덱스에 대응하는 물리 어드레스로서, 대응지음을 행하는 물리 프로세서의 물리 어드레스 정보를 저장하는 처리를 실행하는 스텝
    을 더 갖는 것을 특징으로 하는 프로세스 제어 방법.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 물리 어드레스는, 물리 프로세서의 MMIO 레지스터의 물리 어드레스인 것을 특징으로 하는 프로세스 제어 방법.
  13. 제9항에 있어서,
    상기 프로세스 제어 방법은, 또한,
    1개의 물리 프로세서를 적용한 처리의 계속 시간이, 미리 정한 임계값 시간에 이른 것을 조건으로 하여, 논리 프로세서와 물리 프로세서와의 대응 변경 처리를 실행하여, 물리 프로세서의 절환을 행하는 것을 특징으로 하는 프로세스 제어 방법.
  14. 제9항에 있어서,
    상기 프로세스 제어 방법은, 또한,
    물리 프로세서의 온도가, 미리 정한 임계값 온도에 이른 것을 조건으로 하여, 논리 프로세서와 물리 프로세스와의 대응 변경 처리를 실행하여, 물리 프로세서의 절환을 행하는 것을 특징으로 하는 프로세스 제어 방법.
  15. 제9항에 있어서,
    상기 프로세스 제어 방법은,
    병렬로 동작 상태로 되는 복수의 물리 프로세서가 동일한 전력 공급 라인에 접속된 물리 프로세서군으로서 설정되도록 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 처리를 실행하는 스텝을 더 갖는 것을 특징으로 하는 프로세스 제어 방법.
  16. 제9항에 있어서,
    상기 프로세스 제어 방법은,
    정보 처리 장치 내의 서로 다른 위치에 설정된 메모리에 대한 물리 프로세서의 액세스 상황에 기초하여 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 스텝을 더 갖고,
    물리 프로세서에 의해 가까운 위치에 있는 메모리의 액세스 빈도가 높아지도록, 논리 프로세서와 물리 프로세서와의 대응 관계를 설정하는 처리를 실행하는 것을 특징으로 하는 프로세스 제어 방법.
  17. 논리 프로세서를 물리 프로세서에 대응지어 데이터 처리를 행하는 구성에서의 프로세스 제어를 실행하는 컴퓨터 프로그램으로서,
    논리 프로세서의 적용 주체로서의 게스트 OS측에 논리 파티션을 설정하는 스텝과,
    논리 파티션 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제1 변환 테이블과, 상기 게스트 OS측에 설정되는 가상 어드레스 공간과 물리 어드레스 공간의 대응 관계를 설정한 제2 변환 테이블의 2개의 어드레스 변환 테이블의 설정 또는 갱신을 실행하는 테이블 갱신 스텝
    를 갖는 것을 특징으로 하는 컴퓨터 프로그램.
KR1020067010317A 2004-09-29 2005-09-26 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록 매체 KR101222823B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00283533 2004-09-29
JP2004283533 2004-09-29
JPJP-P-2005-00167911 2005-06-08
JP2005167911A JP4982971B2 (ja) 2004-09-29 2005-06-08 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
PCT/JP2005/017649 WO2006035731A1 (ja) 2004-09-29 2005-09-26 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
KR20070054138A true KR20070054138A (ko) 2007-05-28
KR101222823B1 KR101222823B1 (ko) 2013-01-15

Family

ID=36118876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067010317A KR101222823B1 (ko) 2004-09-29 2005-09-26 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록 매체

Country Status (9)

Country Link
US (1) US8286161B2 (ko)
EP (1) EP1679594A4 (ko)
JP (1) JP4982971B2 (ko)
KR (1) KR101222823B1 (ko)
BR (1) BRPI0506384A (ko)
MY (1) MY142170A (ko)
RU (1) RU2397536C2 (ko)
TW (1) TWI287717B (ko)
WO (1) WO2006035731A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101416890B1 (ko) * 2013-05-03 2014-07-08 주식회사 엘지유플러스 데이터 처리 방법 및 장치

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4946102B2 (ja) * 2006-03-10 2012-06-06 ソニー株式会社 不揮発性メモリシステムおよび不揮発性メモリの管理方法
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
JP4671041B2 (ja) * 2006-03-27 2011-04-13 日本電気株式会社 モジュール化物理リソース群特定方法、その装置及びプログラム
JP4923990B2 (ja) * 2006-12-04 2012-04-25 株式会社日立製作所 フェイルオーバ方法、およびその計算機システム。
US7685401B2 (en) * 2006-12-27 2010-03-23 Intel Corporation Guest to host address translation for devices to access memory in a partitioned system
US8180997B2 (en) * 2007-07-05 2012-05-15 Board Of Regents, University Of Texas System Dynamically composing processor cores to form logical processors
JP5433837B2 (ja) * 2007-12-05 2014-03-05 株式会社日立製作所 仮想計算機システム、仮想計算機の制御方法及びプログラム
JP2009223842A (ja) * 2008-03-19 2009-10-01 Fujitsu Ltd 仮想計算機制御プログラム及び仮想計算機システム
US8171236B2 (en) 2008-06-06 2012-05-01 International Business Machines Corporation Managing migration of a shared memory logical partition from a source system to a target system
CN102112967B (zh) 2008-08-04 2014-04-30 富士通株式会社 多处理器系统、多处理器系统用管理装置以及方法
US10083407B2 (en) 2008-11-19 2018-09-25 International Business Machines Corporation Ad hoc task creation and process modification
US20100198947A1 (en) * 2009-02-04 2010-08-05 Raytheon Company System and Method for Dynamically Processing Electronic Data Between Multiple Data Sources
US8090911B2 (en) * 2009-04-16 2012-01-03 International Business Machines Corporation Selecting a target number of pages for allocation to a partition
US8418187B2 (en) * 2010-03-01 2013-04-09 Arm Limited Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system
JP5178778B2 (ja) * 2010-06-02 2013-04-10 株式会社日立製作所 仮想計算機およびcpu割り当て方法
JP5354108B2 (ja) * 2010-09-01 2013-11-27 富士通株式会社 情報処理プログラム、情報処理装置及び情報処理方法
US8560584B2 (en) * 2010-12-15 2013-10-15 Teradata Us, Inc. Database partition management
JP5681527B2 (ja) * 2011-02-28 2015-03-11 パナソニックIpマネジメント株式会社 電力制御装置及び電力制御方法
US8910177B2 (en) * 2011-04-14 2014-12-09 Advanced Micro Devices, Inc. Dynamic mapping of logical cores
US9183030B2 (en) 2011-04-27 2015-11-10 Microsoft Technology Licensing, Llc Virtual processor allocation techniques
US8756601B2 (en) * 2011-09-23 2014-06-17 Qualcomm Incorporated Memory coherency acceleration via virtual machine migration
US8924952B1 (en) * 2012-06-27 2014-12-30 Amazon Technologies, Inc. Updating software utilizing multiple partitions
US8830716B2 (en) * 2012-09-29 2014-09-09 Intel Corporation Intelligent far memory bandwith scaling
RU2547636C1 (ru) * 2013-12-30 2015-04-10 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" Устройство для преобразования виртуальных адресов в физические адреса
JP5820001B2 (ja) 2014-02-24 2015-11-24 ファナック株式会社 Cpuの異常検出機能を備えた制御装置
US9286105B1 (en) 2015-03-16 2016-03-15 AO Kaspersky Lab System and method for facilitating joint operation of multiple hypervisors in a computer system
US10514915B2 (en) * 2015-04-24 2019-12-24 Optimum Semiconductor Technologies Inc. Computer processor with address register file
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
TWI705374B (zh) 2017-01-23 2020-09-21 威鋒電子股份有限公司 電子裝置及其操作方法
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
US10437503B2 (en) 2017-08-02 2019-10-08 Mastercard International Incorporated Systems and methods for redundant array data alignment
KR20210066288A (ko) * 2019-11-28 2021-06-07 한국전자통신연구원 전자 장치, 인터럽트 설정 제어 방법 및 저장 매체
WO2024013828A1 (ja) * 2022-07-11 2024-01-18 日本電信電話株式会社 信号処理リソース切替装置、信号処理リソース切替システム、信号処理リソース切替方法およびプログラム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5619153A (en) * 1979-07-25 1981-02-23 Fujitsu Ltd Virtual computer system
JP2977688B2 (ja) * 1992-12-18 1999-11-15 富士通株式会社 マルチプロセッシング装置、方法、及びこれらに使用するプロセッサ
US5784706A (en) * 1993-12-13 1998-07-21 Cray Research, Inc. Virtual to logical to physical address translation for distributed memory massively parallel processing systems
US5692193A (en) * 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
US5835743A (en) * 1994-06-30 1998-11-10 Sun Microsystems, Inc. Application binary interface and method of interfacing binary application program to digital computer
JPH09138716A (ja) * 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
US5815686A (en) 1996-09-12 1998-09-29 Silicon Graphics, Inc. Method and apparatus for address space translation using a TLB
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6542926B2 (en) * 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6260068B1 (en) * 1998-06-10 2001-07-10 Compaq Computer Corporation Method and apparatus for migrating resources in a multi-processor computer system
US6332180B1 (en) * 1998-06-10 2001-12-18 Compaq Information Technologies Group, L.P. Method and apparatus for communication in a multi-processor computer system
US6226734B1 (en) * 1998-06-10 2001-05-01 Compaq Computer Corporation Method and apparatus for processor migration from different processor states in a multi-processor computer system
US6381682B2 (en) * 1998-06-10 2002-04-30 Compaq Information Technologies Group, L.P. Method and apparatus for dynamically sharing memory in a multiprocessor system
US6633916B2 (en) * 1998-06-10 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for virtual resource handling in a multi-processor computer system
US6199179B1 (en) * 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US20020016891A1 (en) * 1998-06-10 2002-02-07 Karen L. Noel Method and apparatus for reconfiguring memory in a multiprcessor system with shared memory
JP4634548B2 (ja) 1997-11-04 2011-02-16 ヒューレット・パッカード・カンパニー マルチプロセッサコンピュータシステム及びその動作方法
US6647508B2 (en) 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
JP2000215189A (ja) * 1998-11-04 2000-08-04 Digital Equip Corp <Dec> 多数のオペレーティングシステムインスタンス及びソフトウェア制御式リソース割り当てを伴うマルチプロセッサコンピュータアーキテクチャ
JP4123621B2 (ja) * 1999-02-16 2008-07-23 株式会社日立製作所 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
FR2795196B1 (fr) * 1999-06-21 2001-08-10 Bull Sa Processus de liberation de pages physiques pour mecanisme d'adressage virtuel
US6725289B1 (en) * 2002-04-17 2004-04-20 Vmware, Inc. Transparent address remapping for high-speed I/O
JP2003345612A (ja) 2002-05-28 2003-12-05 Sony Corp 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム
US6895491B2 (en) * 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
EP1678617A4 (en) * 2003-10-08 2008-03-26 Unisys Corp COMPUTER SYSTEM PARAVIRTUALIZATION BY USING A HYPERVISOR IMPLEMENTED IN A PARTITION OF THE HOST SYSTEM
US7194641B2 (en) * 2004-01-22 2007-03-20 International Business Machines Corporation Method and apparatus for managing power and thermal alerts transparently to an operating system in a data processing system with increased granularity in reducing power usage and thermal generation
US7222221B1 (en) * 2004-02-06 2007-05-22 Vmware, Inc. Maintaining coherency of derived data in a computer system
US7200734B2 (en) * 2004-07-31 2007-04-03 Hewlett-Packard Development Company, L.P. Operating-system-transparent distributed memory
US20060048160A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Method, apparatus, and computer program product for providing a self-tunable parameter used for dynamically yielding an idle processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101416890B1 (ko) * 2013-05-03 2014-07-08 주식회사 엘지유플러스 데이터 처리 방법 및 장치

Also Published As

Publication number Publication date
TW200622676A (en) 2006-07-01
US20060075207A1 (en) 2006-04-06
WO2006035731A1 (ja) 2006-04-06
JP2006127462A (ja) 2006-05-18
RU2006118704A (ru) 2007-12-20
US8286161B2 (en) 2012-10-09
TWI287717B (en) 2007-10-01
MY142170A (en) 2010-10-15
BRPI0506384A (pt) 2006-12-26
EP1679594A4 (en) 2011-03-02
JP4982971B2 (ja) 2012-07-25
KR101222823B1 (ko) 2013-01-15
RU2397536C2 (ru) 2010-08-20
EP1679594A1 (en) 2006-07-12

Similar Documents

Publication Publication Date Title
KR101222823B1 (ko) 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록 매체
JP4322232B2 (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US10423435B1 (en) Page swapping in virtual machine environment
US7987464B2 (en) Logical partitioning and virtualization in a heterogeneous architecture
KR20070057692A (ko) 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램
US9619287B2 (en) Methods and system for swapping memory in a virtual machine environment
US8799892B2 (en) Selective memory donation in virtual real memory environment
US20180165166A1 (en) Maintaining high availability during n-node failover
US9852008B2 (en) Computer-readable recording medium storing execution information notification program, information processing apparatus, and information processing system
US20060085794A1 (en) Information processing system, information processing method, and program
WO2015169145A1 (zh) 内存管理方法和设备
US8201167B2 (en) On-demand allocation of virtual asynchronous services interfaces
US8489797B2 (en) Hardware resource arbiter for logical partitions
WO2015024475A1 (en) Detection of hot pages for partition hibernation
JP4692912B2 (ja) リソース割り当てシステム、及びリソース割り当て方法
US20060143204A1 (en) Method, apparatus and system for dynamically allocating sequestered computing resources
CN114063894A (zh) 一种协程执行方法及装置
JP4862770B2 (ja) 仮想計算機システムにおけるメモリ管理方式及びその方法、およびプログラム
JP2008165318A (ja) 計算機システム
JP2006099333A (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
WO2016088220A1 (ja) 計算機及び論理プロセッサの制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee