JP6772007B2 - 情報処理装置及びその制御方法、コンピュータプログラム - Google Patents

情報処理装置及びその制御方法、コンピュータプログラム Download PDF

Info

Publication number
JP6772007B2
JP6772007B2 JP2016177865A JP2016177865A JP6772007B2 JP 6772007 B2 JP6772007 B2 JP 6772007B2 JP 2016177865 A JP2016177865 A JP 2016177865A JP 2016177865 A JP2016177865 A JP 2016177865A JP 6772007 B2 JP6772007 B2 JP 6772007B2
Authority
JP
Japan
Prior art keywords
processor
power
processors
control
information processing
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2016177865A
Other languages
English (en)
Other versions
JP2018045310A (ja
Inventor
昌敬 深田
昌敬 深田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2016177865A priority Critical patent/JP6772007B2/ja
Priority to US15/696,463 priority patent/US11209885B2/en
Publication of JP2018045310A publication Critical patent/JP2018045310A/ja
Application granted granted Critical
Publication of JP6772007B2 publication Critical patent/JP6772007B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/461Saving or restoring of program or task context
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

本発明は、情報処理装置及びその制御方法、コンピュータプログラムに関する。
近年、様々な情報処理装置において低消費電力化が求められている。一方で、様々な組み込み機器やPCにおいて、処理の高速化が求められており、複数のプロセッサ、あるいは複数のコアを搭載したマルチプロセッサ/マルチコアシステムにより、並列、パイプライン処理を行うことで高速な処理が実現されている。
複数のプロセッサを利用して高速な処理を実現しつつ、消費電力を削減するための構成として、リソースの競合が発生して待ち状態にあるプロセッサの動作周波数を低減する手法が知られている(特許文献1)。この構成では、リソースの競合が発生していない場合には、複数のプロセッサが並列処理ないしパイプライン処理をすることで高速に処理を行い、リソースの競合発生時には動作周波数を低下させることで消費電力を低減させている。
他方で、機器の主要機能が動作していない待ち受け時の消費電力を低減させるために、通常のアプリケーション処理を行う通常モードとは別に、通常モードよりも消費電力を低減させた省電力モードを有する機器が増加している。省電力モード時の動作には様々なものがあるが、機器を構成する一部の回路または装置の動作電圧を低下させたり、あるいは電源の供給を停止することにより、消費電力の低減を図ることが実現されている。これにより、機器の一部機能を利用していない場合や、待機時などにおいて、機器を省電力モードにすることで効果的に消費電力を低減することができる。
省電力モード時における消費電力を低減する構成として、省電力モード時において動作電圧の低いメモリに配置したプログラムを実行し、その他のメモリを省電力の状態にすることが知られている(特許文献2参照)。
これらの従来の構成では、通常モードにおいてはSDRAM等の主記憶に配置されたプログラム及びデータを用いて実行する。そして省電力モード時においては、主記憶にはアクセスせずに、主記憶よりも動作電圧の低いSRAM等の内部メモリに配置されたプログラムおよびデータのみを使用して省電力モード用のプログラムを実行する。このように利用するメモリを切り替えて動作することで、省電力モード時における消費電力を低減することができる。ここで、SDRAMとはSynchronous Dynamic Random Access Memoryの略称であり、SRAMとはStatic Random Access Memoryの略称である。
一方で、省電力モード時において求められる機能が近年増加してきているだけでなく、益々、消費電力の低減が求められており、今後この傾向は続いていくものとみられる。例えば通信機能を備えた情報処理装置においては、省電力モードにおいて通信機能を維持して外部のリモートコントローラからのネットワーク通信に対する応答を返すことが知られている。また、ネットワーク通信により起動要求を受信したことに応じて、通常モードに復帰することも知られている。このような情報処理装置では、IPv4による通信待ち受けに加えてIPv6による通信待ち受けを行うことが求められている。また省電力モード時に、リモートコントローラからのネットワーク通信に対する応答を返すパケット種別が増加することや、ネットワーク通信での起動要求のパケット種別が増加している。このような機能追加の要求の一方で、エコデザイン指令やENERGY STARに代表される省電力規制は年々厳しくなっている。
特開2008−077640号公報 特開2000−105639号公報
省電力動作をさせる場合にSDRAM等の主記憶の電源をオフにして、SRAM等の内部メモリに配置されたプログラムおよびデータのみを使用してプログラムを実行すると、省電力効果を得られる一方で、利用可能なメモリ容量は限られる。
他方で情報処理装置は通常モード中に並列、高速に処理するため複数のプロセッサを保持することが増えている。これらプロセッサは個別にキャッシュ等の専用の内蔵メモリを備えていることが一般的となっている。省電力動作させる場合には並列処理や高速処理が求められないため、1つのプロセッサ処理によりSRAM等の内蔵メモリやこれらプロセッサ専用の内蔵メモリにプログラムおよびデータを格納して動作させる。
しかし、機能の増加によって、プログラム及びデータが増大すると内蔵のSRAMや1つのプロセッサの専用メモリだけでは容量が足りなくなる場合があり得る。そこで複数のプロセッサにまたがった動作において、複数のプロセッサ毎に専用で保持する内蔵メモリを利用することで、メモリ容量を確保することが考えられる。しかし、省電力モード中に複数のプロセッサが動作すると消費電力が増大してしまうだけでなく、パフォーマンスや並列動作が求められていない場合であっても複数のプロセッサが同時に動作することとなる。また、特許文献1の構成のようにリソースが競合している場合に消費電力を低減する手法だと、リソースが競合していない場合は並列実行を求められていない場合でも複数のプロセッサは同時に動作して多く電力を消費してしまう。そのため省電力モード中のようなパフォーマンスを求められていない場合において、無駄に電力を消費してしまっているという課題があった。
本発明は上記課題に鑑みなされたものであり、複数のプロセッサと複数の専用の内蔵メモリを備えた情報処理装置において、より小さな消費電力で省電力動作をすることが可能な技術を提供することを目的とする。
上記目的を達成するため、本発明による情報処理装置は以下の構成を備える。即ち、
第1の電力モードと、当該第1の電力モードよりも消費電力が少ない第2の電力モードとを切り替えて動作可能な情報処理装置であって、
複数のプロセッサと、
前記複数のプロセッサに対応して設けられた複数のメモリと、
前記複数のプロセッサ及び対応する前記複数のメモリに供給する電力を制御する電力制御手段と
を備え、
前記第2の電力モードで動作する場合に、
前記複数のプロセッサおよび前記複数のメモリを動的に切り替えて動作させ、
前記複数のメモリの各々は、当該メモリに対応するプロセッサが読み込むべきプログラムを記憶し、
前記電力制御手段は、前記複数のプロセッサのうちのいずれかのプロセッサ及び対応する前記メモリが動作している場合に、当該プロセッサ及びメモリ以外のプロセッサ及びメモリに対する電力の供給を制限する。

本発明によれば、複数のプロセッサと複数の専用の内蔵メモリを備えた情報処理装置において、より小さな消費電力で省電力動作をすることが可能である。
情報処理装置のハードウェア構成を示したブロック図 情報処理装置の消費電力状態の遷移を示した図 MainCPUの省電力モード移行処理を示した図 電力制御部の省電力モード移行処理フローを示した図 制御プロセッサの省電力モード開始時の処理フローを示した図 アプリプロセッサの省電力モード開始時の処理フローを示した図 制御プロセッサの省電力モード動作処理フローを示した図 制御プロセッサの省電力モード動作終了時の動作フローを示した図 アプリプロセッサの省電力モード動作処理フローを示した図
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
<実施形態1>
(情報処理装置の構成)
本発明の第一の実施形態(実施形態1)に係る情報処理装置101のハードウェア構成の例について図1を用いて説明する。情報処理装置101はメインシステム部102、ネットワークサブシステム部103、電力制御部A104を有している。
●ネットワークサブシステム部
ネットワークサブシステム部103のローカルバス116には、ネットワーク122に接続してフレームの送受信を行う通信制御部105、ネットワークサブシステム部103内の処理における一時記憶装置であるローカルRAM107が接続される。RAMはRandom Access Memory(書込み可能メモリ)の略称である。またネットワークサブシステム部の処理に関わるプログラム(コンピュータプログラム)を実行するプロセッサA110、プロセッサB112、プロセッサC114が接続される。各プロセッサにはキャッシュや命令RAM、データRAM等で構成される専用メモリA111、専用メモリB113、専用メモリC115が接続される。さらに、ネットワークサブシステム部103内に接続されるプロセッサA110、プロセッサB112、プロセッサC114及び、その他各ハードウェアの電力を個別に制御する電力制御部B108が接続される。電力制御部B108は各ハードウェアに対して電源投入制御、ハードウェアリセット制御、ネットワークサブシステム部103全体が安全に起動・停止するためのシーケンス制御を行う。また、ネットワークサブシステム部103が起動中に、個別にプロセッサA110、プロセッサB112、プロセッサC114及び、その他各ハードウェアのクロックの供給・停止を行う。さらに、ネットワークサブシステム部103内の処理におけるタイマー処理を行うタイマー109が接続される。
情報処理装置101が接続するネットワーク122は、通信制御部105に接続する。なお、ネットワーク122は、例えば有線のイーサネット(登録商標)が想定できるが、無線ネットワークや、光ファイバーネットワークや、あるいは、インターネット等の公衆通信網等であってもよい。また、情報処理装置101を操作するリモートコントローラ(リモコン、不図示)は、ネットワーク122を介してTCP/IPプロトコルを用いた通信を行えるものとする。TCPはTransmission Control Protocolの略称であり、IPはInternet Protocolの略称である。
通信制御部105は、ネットワーク122に対して伝送フレームの送受信を行う。例えばネットワーク122がイーサネット(登録商標)の場合、通信制御部105は、イーサネット(登録商標)のMAC処理(伝送メディア制御処理)や、伝送フレームの送受信を行う。
プロセッサA110、プロセッサB112、プロセッサC114は通常電力モードにおいては、汎用的なTCP/IPプロトコルの通信処理を行う。より具体的にはIPv4、IPv6、IPsec、ICMP、UDP、TCPの各通信処理プロトコル処理や、送信フロー制御や輻輳制御、通信エラー制御等を行う。ICMPはInternet Control Message Protocolの略称であり、UDPはUser Datagram Protocolの略称である。プロセッサによる処理と一部の機能をハードウェアによるアクセラレーションを行う構成としてもよい。これらはそれぞれ独立に電源制御可能な構成とすることが望ましい。これらプロセッサは専用メモリA111、専用メモリB、専用メモリCをメインシステム部102内のRAM120に用意されたプログラムの一次キャッシュとして利用したり、命令RAM、データRAMとして利用する。またこれらプロセッサは並列、パイプライン処理により通信処理を高速に実行する。
また、プロセッサA110、プロセッサB112、プロセッサC114は、省電力モード動作においては通常電力モード中に行う処理の一部を、電力を制御しながら逐次処理で順番に処理し、省電力待ち受け処理を行う。さらに、通常電力モードにおいてMainCPU118やアプリケーション機能部117が行っている処理の一部を処理し、リモートコントローラからの遠隔起動や、代理応答処理、また周期的なパケットの送信処理制御を行う。
ローカルRAM107は、通信制御部105やプロセッサA110、プロセッサB112、プロセッサC114の処理におけるデータの一時記憶領域に使用される。また動作時のプログラムの格納領域として用いてもよい。後述するように、ローカルRAM107は、省電力モード状態において複数のプロセッサ110、112、114が読み込むべきプログラムを記憶する、各プロセッサがそれぞれアクセスすることが可能な共有メモリとして機能する。ローカルRAM107はメモリサイズの異なる複数のメモリチップで構成し、必要となるサイズに応じて切り替える構成であってもよい。
ネットワークサブシステム部103は、ローカルバス116と、メインシステム部102のシステムバス119との間のデータ転送を可能とするバスブリッジ回路106を有する。即ち、ネットワークサブシステム部103と、メインシステム部102とは、それぞれのバス回路が相互に接続されており、通信データの入出力においてバス間転送が行われる仕組みになっている。
●メインシステム部
メインシステム部102のシステムバス119には、MainCPU118、システムプログラムが格納されているROM121、システムソフトウェアやアプリケーションソフトウェアの実行時に使用される一時記憶装置であるRAM120が接続される。CPUはCentral Processing Unit(中央演算処理装置)の略称であり、ROMはRead Only Memory(読出し専用メモリ)の略称である。ROM121からRAM120にソフトウェアプログラムが読み込まれ、通常モード時にMainCPU118、ネットワークサブシステム部内のプロセッサA110、プロセッサB112、プロセッサC114によって実行される。
また、同じくシステムバス119に接続されているアプリケーション機能部117は、情報処理装置101の特徴的なアプリケーション機能を実現するために使用するハードウェア処理部を表している。
●電力制御部
電力制御部A104は、ネットワークサブシステム部103及びメインシステム部102の電力供給を独立に制御する電力制御部である。電力制御部A104は、各装置に対して、電源投入の制御、ハードウェアリセット制御、さらに情報処理装置101全体が安全に起動・停止するためのシーケンス制御を行う。また、電力制御部A104は、制御信号線でネットワークサブシステム部103及びメインシステム部102と接続されており、通常電力状態及び省電力モード状態の各状態のモード移行動作制御を行う。
情報処理装置101の主要な機能は、メインシステム部102で実現される。また、MainCPU118で実行されるアプリケーションプログラムは、ネットワーク通信を行うことが可能である。アプリケーションによる通信は、TCP/IPプロトコルをベースとした通信である。前述のように、このTCP/IPプロトコル処理は、ネットワークサブシステム部103において実行される。
省電力モード状態において電力制御部B108は、複数のプロセッサA、B、Cのうちのいずれかのプロセッサ及び対応する専用メモリが動作している場合に、当該プロセッサ及び専用メモリ以外のプロセッサ及び専用メモリに対する電力の供給を制限する。これにより、複数のプロセッサと複数の専用のメモリを備えた構成において、動作に必要な最低限のプロセッサないしメモリにしか電力が供給されないため、省電力化を図ることが可能となる。
(消費電力状態)
上記のような構成を有する情報処理装置101は、主要機能が非動作であるアイドル状態において、省電力モード状態に移行することを可能とする。これについて、図2を用いて説明する。図2は、情報処理装置101の消費電力状態の遷移図である。
201は通常電力状態であり、202は省電力モード状態を示す。情報処理装置101の主要機能が動作中である間は通常電力状態201を維持する(203)。通常電力状態201では、メインシステム部102を含む情報処理装置101全体に電力が供給される。通常電力状態201において主要機能が実行していないアイドル状態になると、省電力モード状態202へ移行することが可能となる。
一方、省電力モード状態202は、ネットワークサブシステム部103と電力制御部A(省電力モード制御部)104にだけ電力が供給される。さらにネットワークサブシステム部103は動作モードに応じて、必要となるハードウェア資源にのみ電力を供給するように、電力制御部A104によって細かく制御を行う。これにより、省電力モード状態202は、通常電力状態よりも消費電力が少ない電力モードとなる。メインシステム部102は電源がオフの状態であるため、システムバス119、MainCPU118、RAM120、ROM121は停止していることになる。省電力モード状態202から通常電力状態201への切り替えは、例えば、情報処理装置101がネットワーク122からシステムの起動要求を受信した場合(205)である。また電力制御部A104には、ユーザから操作可能な外部のスイッチと接続され、スイッチの押下によっても省電力モード状態202から通常電力状態201への移行を行うようにしてもよい。省電力モード状態202は、ユーザの設定やネットワークの使用状況に応じて動作する複数のモードを備える。
(MainCPUの省電力モード移行処理)
ここで図3を用いて通常電力状態201から省電力モード状態202へ遷移する際の、情報処理装置101におけるMainCPU118が省電力モードへ移行する処理(省電力モード移行処理)について説明する。図3は、MainCPU118の省電力モード移行処理の処理手順を示すフローチャートである。以下の各ステップは、MainCPU118の制御に基づき実行される。
S301においてMainCPU118はメインシステム部102の制御によって情報処理装置101が省電力モードへ移行してよいことを検知したか否かを判定する。省電力モードへ移行してはならない場合(S301でNO)は通常電力モードの処理を継続し、省電力モードへ移行してよい条件を検知するまで情報処理装置101は通常電力モードで動作する。省電力モードへの移行を検知した場合(S301でYES)、MainCPU118は省電力モード移行処理を開始し、S302へ進む。
S302においてMainCPU118は通常電力モードで実施している処理の停止を行い安全に省電力モードへ移行するための準備を行う。MainCPU118は通信処理を実施するためのソケット等が存在している場合はネットワークサブシステム部103に対してソケットの終了指示を行う。そしてネットワークサブシステム部103の動作を停止する。またアプリケーション機能部117が実施している処理がある場合は、MainCPU118はアプリケーション機能部117に対して処理の終了要求を行う。通常電力モードで実施している処理の終了準備が整うとS303へ進む。
S303において、MainCPU118は省電力モードにおいてネットワークサブシステム部103内のプロセッサA110、プロセッサB112、プロセッサC114が実行する省電力モード動作用のファームウェアをROM121からRAM120に読み込んで、展開する。
S304において、MainCPU118は通常電力モードにおけるシステムの情報を省電力モード動作へ引き継ぐため、RAM120に格納されたシステム情報をネットワークサブシステム部103内のローカルRAM107へ設定する。また、その他省電力モード動作として必要になる省電力モードからの起動条件や省電力モード時にファームウェアが必要とする各種パラメータをローカルRAM107へ設定する。本システム情報には、例えばIPアドレスやMACアドレスといった機器の情報や、起動条件となるパケット種別やポート番号といった情報が含まれる。また、その他省電力モード用ファームウェアがアプリケーション処理に必要となるパラメータや、システムの動的に決定される情報として必要なパラメータ、データ、キャッシュ等を設定する。
S305において、MainCPU118はネットワークサブシステム部103の省電力モード用の起動指示を行う。省電力モード中に省電力モード全体の制御プロセッサとして動作させるネットワークサブシステム部103内のプロセッサA110に対して省電力モード用の起動指示を行う。なお、本実施形態ではプロセッサA110を制御プロセッサとして全体の制御を集約し、アプリプロセッサとしてプロセッサB112、プロセッサC114を割り当てる例を説明するが、どのようにソフトウェアを構成してもよい。すなわち、プロセッサB112又はプロセッサC114が制御プロセッサとして機能するようにしてもよいし、あるいは、複数のプロセッサが協働して制御プロセッサとして動作するようにしてもよい。ネットワークサブシステム部103の起動を行うと、図5及び図6を参照して後述する省電力モード動作の初期化処理が完了するのをS306にて待ち受ける。ネットワークサブシステム部103の省電力モード動作の初期化処理が完了すると(S306でYES)S307へ進む。
S307においてMainCPU118は電力制御部A104に対して省電力モード用の電力低減制御指示を行い、処理を終える。以上のフローで省電力モードへ移行するための処理を行う。
(省電力制御部の省電力モード移行処理)
次に図4を用いて、図3のS307においてMainCPU118から指示を受け付けた電力制御部A104が、情報処理装置101を省電力モード動作へ移行させるための処理(省電力モード移行処理)について説明する。図4は、電力制御部A104の省電力モード移行処理の処理手順を示すフローチャートである。以下の各ステップは、電力制御部A104の制御に基づき実行される。
S401において電力制御部A104は、MainCPU118、RAM120、ROM121、アプリケーション機能部117を含むメインシステム部102全体の電源を遮断する。
S402において、電力制御部A104はネットワークサブシステム部103の動作クロックの低減を行う。
次に、S403において、電力制御部A104はネットワークサブシステム部103内の制御プロセッサとして動作するプロセッサA110に対して動作の開始指示を行い、処理を終了する。以上のフローで省電力モードへの切り替え処理を行う。
(制御プロセッサの省電力モード開始処理)
次に図5を用いて、制御プロセッサとして動作するプロセッサA110が、省電力モードを開始する処理(省電力モード開始処理)について説明する。図5は制御プロセッサの省電力モード開始処理の処理手順を示すフローチャートである。図5の処理は、図4のS403において、プロセッサA110が電力制御部A104から省電力モードの開始指示を受けたことに応じて開始される。以下の各ステップは、プロセッサA110の制御に基づき実行される。
S501において、プロセッサA110は省電力モード用ファームウェアのうち制御プロセッサとして動作するプロセッサA110のプログラム及びデータを、キャッシュ等の専用メモリA111にプリフェッチする。前述のように、プロセッサA110が使用するプログラムやデータ、キャッシュ等は、図3のS304において、ローカルRAM107に設定されている。そこで、S501では、ローカルRAM107からこれらの情報を読み出して、専用メモリA111にプリフェッチする処理を行う。このようにプロセッサA110は、通常電力状態201から省電力モード状態202への切り替えに応じて、省電力モード状態202におけるプロセッサAの動作を規定するプログラムをローカルRAM107から取得して専用メモリA111に記憶させる。その結果、省電力モード状態においては、制御プロセッサに対応する専用メモリには、制御プロセッサが読み込むべきプログラムが記憶されることになる。この際、プロセッサA110が実行するプログラムはすべて専用メモリA111に収まることが望ましいが、収まらない場合はローカルRAM107を一部利用してもよい。その場合、省電力モード中にプログラムのロードが発生する場合はプログラムの読み込み先はローカルRAM107である必要がある。省電力モード用ファームウェアのプリフェッチが完了すると、S502へ進む。
S502では、プロセッサA110は制御プロセッサ処理の省電力モード初期化処理を行う。これは専用メモリの実行時に使用される記憶領域の初期化処理やプロセッサA110に関するハードウェアの初期化、制御プロセッサプログラム動作の初期化処理である。
次にS503において、プロセッサA110はネットワークサブシステム部103全体の省電力モード初期化処理を行う。これはネットワークサブシステム部103内のタイマー109や、通信制御部105、ローカルRAM107、電力制御部B108の省電力モード動作設定、プロセッサ間の同期設定等である。
次にS504において、プロセッサA110はアプリプロセッサとして動作するプロセッサB112、プロセッサC114へ起動指示を行う。本実施形態では制御プロセッサがアプリプロセッサの起動指示を行う例を説明する。もっとも、プロセッサ間の同期やその他処理の初期化において整合性の取れる手法であれば、省電力モード動作開始指示を行う際に一度に起動指示を行ってもよいし、異なる順序で行ってもよい。
S505において、プロセッサA110はアプリプロセッサからの同期通知の受信の有無を確認して、全てのアプリプロセッサについて同期が完了したか否かを判定する。図6を参照して後述するように、各アプリプロセッサは、省電力モード開始処理において初期化処理が完了したことを同期通知により制御プロセッサへ通知する。プロセッサA110は同期が完了していない場合(S505でNO)は完了通知が来るまで待ち、完了している場合(S505でYES)はS506へ進む。
S506において、プロセッサA110は自プロセッサの電力低減指示を電力制御部B108に対して行い、省電力モード開始指示が電力制御部A104から行われるまでプロセッサAのクロックを停止してS507で待機する。省電力モード開始指示が電力制御部A104から行われると電力制御部B108からクロックの供給が再開され、プロセッサA110は処理を開始しS508へ進む。
S508においてプロセッサA110は省電力モード制御を開始するための処理を行う。これはタイマー109の開始指示や、アプリプロセッサ(上記の例ではプロセッサB112、プロセッサC114)への開始指示、その他省電力モード動作を開始するにあたっての処理を行う。
そしてS509へ進んで、プロセッサA110は制御プロセッサの省電力モード動作を実行する。省電力モード動作の終了指示があると処理を終了する。本動作については図7を用いて後述する。以上のフローで制御プロセッサの省電力モード動作前の初期化等の開始処理を行う。
(アプリプロセッサの省電力モード開始処理)
次に、図6を用いてアプリプロセッサとして動作をするプロセッサB112及びプロセッサC114の省電力モード開始処理について説明する。図6は、アプリプロセッサの省電力モード開始処理の処理手順を示すフローチャートである。図6の処理は、図5のS504において、制御プロセッサがアプリプロセッサに起動指示を行ったことに応じて開始される。また、図6の各ステップは、アプリプロセッサとして動作するプロセッサの制御に基づき実行される。プロセッサB112の省電力モード開始処理と、プロセッサC114の省電力モード開始処理とは対象となるプログラムをプリフェッチする部分が異なるのみであるため、ここではプロセッサB112がアプリプロセッサとして動作する例を説明する。
S601において、アプリプロセッサは省電力モード用ファームウェアのうちアプリプロセッサとして動作するプロセッサB112のプログラム及びデータをキャッシュ等の専用メモリB113にプリフェッチする。前述のように、プロセッサB112が使用するプログラムやデータ、キャッシュ等は、図3のS304においてローカルRAM107に設定されているので、S601ではローカルRAM107からこれらの情報を読み出してプリフェッチする。このように各アプリプロセッサは、通常電力状態201から省電力モード状態202への切り替えに応じて、省電力モード状態202におけるアプリプロセッサの動作を規定するプログラムをローカルRAM107から取得して対応する専用メモリに記憶させる。その結果、省電力モード状態においては、アプリプロセッサに対応する各専用メモリには、各アプリプロセッサが読み込むべきプログラムが記憶されることになる。この際、動作するプログラムおよびデータはプロセッサB112用のアプリプロセッサプログラムである。プロセッサB112が実行するプログラムはすべて専用メモリB113に収まることが望ましいが、収まらない場合はローカルRAM107を一部利用してもよい。その場合、省電力モード中にプログラムのロードが発生する場合はプログラムの読み込み先はローカルRAM107である必要がある。省電力モード用ファームウェアのプリフェッチが完了するとS602へ進む。
S602では、アプリプロセッサはアプリプロセッサ処理の省電力モード初期化処理を行う。これは実行時に使用される専用メモリB113の記憶領域の初期化処理やプロセッサB112に関するハードウェアの初期化、アプリプロセッサプログラム動作の初期化処理である。
S603において、アプリプロセッサはアプリケーションでの周期時間処理に関する初期化を行う。これは制御プロセッサであるプロセッサA110へ周期時間を通知する設定も含まれる。ここで、周期時間とは、一定時間おきに所定の処理を行うアプリケーションにおける、処理の実行間隔である。なお通知する手法としては、ローカルRAM107を利用してもよいし、別途プロセッサ間通信を用いてもよい。
次にS604において、アプリプロセッサはアプリケーションに通知するパケット処理の初期化を行う。本実施形態では図3のS304において、省電力モードへ移行する際のMainCPU118からの設定としてアプリケーション処理を行うパケット種別やポート番号を設定する例を説明したが、本ステップで実施してもよい。
S605において、アプリプロセッサはプロセッサ間の同期のため制御プロセッサであるプロセッサA110へ初期化処理が完了したことを通知する。なお本実施形態では制御プロセッサにのみ通知を行い同期するようにしたが、他のアプリプロセッサ(例えば、プロセッサC114)との同期を行ってもよいし、同期をしなくても安全に動作可能であれば同期を行う必要はない。
次にS606において、アプリプロセッサは自プロセッサの電力低減指示を電力制御部B108に行い、省電力モード開始指示が電力制御部A104から行われるまでプロセッサB112のクロックを停止して、S607で待機する。省電力モード開始指示が電力制御部A104から行われると(S606でYES)電力制御部B108からクロックの供給が再開され、プロセッサB112は処理を開始してS608へ進む。なお、本実施形態では電力制御部A104から開始指示を受ける動作例を説明しているが、制御プロセッサとなるプロセッサA110がアプリプロセッサに対して開始の指示を行ってもよい。
S608では、アプリプロセッサの省電力モード動作を実行する。省電力モード動作の詳細は図9を参照して後述する。
なお、アプリプロセッサは制御プロセッサからの通知により動作を行う。そのため、図5のS504において開始指示(起動指示)を受け付けた直後には、図9を参照して後述するS803により、再度、自プロセッサの電力低減制御指示を電力制御部B108に対して行う。これによりアプリプロセッサは省電力モードでの動作中は制御プロセッサからの指示があるまでクロックを停止して待機する。また本実施形態ではアプリプロセッサの開始指示後の開始処理はないが、制御プロセッサ処理同様に、アプリケーションの処理として初期化処理の他に開始指示後に行う処理がある場合は別途ステップを追加してもよい。以上のフローで各アプリプロセッサの省電力モード動作前の初期化等の開始処理を行う。
(制御プロセッサの省電力モード動作処理)
次に省電力モード動作中の制御プロセッサであるプロセッサA110の動作処理について図7を用いて説明する。図7は、制御プロセッサの省電力モード動作処理の処理手順を示すフローチャートである。以下の各ステップは、制御プロセッサ(上記例ではプロセッサA110)の制御に基づき実行される。
本実施形態では、制御プロセッサは、イベントの発生に応じて、当該イベントを処理するために制御プロセッサを除いた複数のプロセッサ(アプリプロセッサ)の動作が必要であるか否かを判定する。必要であるときは、いずれかのアプリプロセッサにイベントの発生を通知するとともに、当該プロセッサへの電力の供給の開始と制御プロセッサへの電力の供給の停止を電力制御部B108に指示する。これにより、同時に動作するプロセッサの個数を制限して、消費電力を低減させる。なお、後述するように、イベントには、タイマーのタイムアウトと、パケットの受信との少なくともいずれかが含まれる。
図7において、S716〜S722は、アプリケーションにより所定周期に実行される処理を実行するための処理手順を示している。S708〜S714は、受信パケットが特定アプリケーションを対象としたものである場合に、そのアプリケーションを実行しているアプリプロセッサにパケットを渡して処理を行わせるための処理手順を示している。ここで、アプリプロセッサが処理を完了するまで、制御プロセッサへの電力供給は停止される。S702、S703は、通常動作モードに復帰するための処理手順を示している。
省電力モード動作が開始されると、S701において、制御プロセッサは省電力モード終了の信号を受信して検知しているかを判定する。終了の信号を検知していた場合(S701でYES)はS702へ進み、検知していない場合(S701でNO)はS704へ進む。ここでは情報処理装置101のボタン操作や、ネットワーク122を経由してリモコン等による操作等に応じて、省電力モード終了の信号を電力制御部A104から受信しているかの確認を行う。
S704において、制御プロセッサは通信制御部105に接続されているネットワーク122のリンク状態の変化があるかどうかをチェックする。具体的には、例えば、Ethernetで接続されている場合にネットワーク122を介して直接接続される機器とのリンクの状態や、通信リンクスピード等に変化があったかなどの物理層(PHY)の状態変化を検知する。なお、本実施形態では省電力モード中に動作するプロセッサはポーリング処理を行う例を想定しているため本ステップで直接状態に変化があったかを確認しているが、割り込み制御により実現してもよいし、通信制御部105の制御によって実施してもよい。
次にS705において、制御プロセッサはネットワーク122を介して接続されたリモートコントローラからパケットを受信しているかを確認する。パケットを受信していた場合(S705でYES)はS706へ進み、受信していない場合(S705でNO)はS716へ進む。なおS704同様、本実施形態では割り込みによる検知ではなくポーリングによる確認でパケットの受信確認を行ったが、割り込みによる確認であってもよい。
S716において、制御プロセッサはタイマー109から時刻情報を取得し、S717においてアプリプロセッサが指定したアプリケーションの周期処理時間が経過しているかを判定する。なお、本実施形態では制御プロセッサであるプロセッサA110が時間の経過を確認するようにしたが、タイマー109からの通知によって周期時間の経過を検知して制御プロセッサに通知するようにしてもよい。また前記と同様にタイマー109からの割り込みによって時間の経過を通知してもよい。S717においてアプリプロセッサが指定した時間が経過していた場合(S717でYES)はS718へ進み、経過していない場合(S717でNO)はS722へ進む。S722においては、すべてのアプリプロセッサ分の周期時間経過確認が完了したかを判定する。チェックが完了していない場合(S722でNO)はS717へ進み、S717とS722をすべてのチェックが完了するまで繰り返し実行する。そしてすべてのチェックが完了した場合(S722でYES)はS701へ進む。
以上のように、本実施形態では、S701からS722の処理を継続的に実行して情報処理装置101の省電力モード中のイベントのチェックをポーリングによって行う。
なお、本実施形態では制御プロセッサはポーリング処理を継続するためイベントを検知するまでは動き続ける動作例を説明した。もっとも、ネットワークサブシステム部103内の電力制御部B108やハードウェアの支援によりプロセッサA110がイベントを確認する条件が成立した場合にのみ動作し、その他の時間は電力制御部B108への指示でクロックを停止して待機してもよい。例えば、パケットの受信を通信制御部105が検知した場合に電力制御部B108へ通知を行い、これに応じて電力制御部B108がプロセッサA110へのクロック供給を開始し、プロセッサAは受信パケットの確認を行うようにしてもよい。また周期時間については、タイマー109が最小分解能時間の経過する毎に電力制御部B108に通知を行い、プロセッサA110へクロックの供給を行うようにしてもよい。その際はプロセッサA110の制御によって自プロセッサの動作停止指示を電力制御部B108に行うようにしてもよいし、一つの要因でクロック供給を行った場合、該当のイベントの確認を行ったら再度クロックの停止を指示してもよい。このように省電力モード中に動作するハードウェアの支援によってイベントの検知漏れがないように動作可能であれば、プロセッサA110のクロックを供給し続けて動作を継続しなくてもよい。
次に、各イベントを検知した場合の処理手順について説明する。まずS701において省電力モード終了を検知した場合(S701でYES)、S702において、省電力モード終了に至った要因の情報をローカルRAM107へ書き込む。この終了要因の情報は、通常電力モードへの復帰の際に、電力制御部A104やMainCPU118、アプリケーション機能部がローカルRAM107から読み出し、通常電力モード開始時における処理の判定に利用することができる。そしてS703において、制御プロセッサの省電力モード終了処理を行い、処理を終える。ここで図8を用いてS703における制御プロセッサの省電力モード終了処理について説明する。図8は、制御プロセッサが省電力モードを終了する処理の手順を示すフローチャートである。以下の各ステップは、制御プロセッサ(上記例ではプロセッサA110)の制御に基づき実行される。
S901において、制御プロセッサはアプリプロセッサへ省電力モードの終了通知を行う。これによって安全にアプリプロセッサであるプロセッサB、プロセッサCが終了できるように制御を行う。なお、本通知はすべてのプロセッサB、プロセッサCへ一度に行ってもよいし、順次行ってもよく、安全に通常電力モードへ移行できるフローであればよい。
次にS902において、制御プロセッサの動作の終了処理を行う。これはネットワークサブシステム部103内のハードウェアの停止処理や、制御プロセッサプログラムの終了処理である。
次にS903において、制御プロセッサは省電力モードの終了通知を行った全てのアプリプロセッサ(上記の例では、プロセッサB、プロセッサC)から終了処理が完了した通知が来ているかを判定し、通知が来るまで待機する。これによって安全に省電力モードが終了できるように同期処理を行う。全てのプロセッサから完了通知を受け取ったことを確認すると(S903でYES)S904へ進む。なお完了通知はどのような手法によって行ってもよく、例えば、ローカルRAM107を用いて通知を行ってもよいし、プロセッサに通知のためのキューを備えてもよいし、その他にネットワークサブシステム部103内のハードウェアの支援を受けてもよい。
そしてS904において、制御プロセッサは通常モード用の電力供給制御指示を電力制御部A104に対して行い、処理を終了する。これに応じて、電力制御部A104はメインシステム部102を起動して、省電力モード状態202から通常電力状態201へ移行する処理を行う。通常電力状態201においては、メインメモリとしてのRAM120に配置された実行プログラムに基づき、複数のプロセッサ110、112、114は動作することができる。例えば、専用メモリA、B、Cは、実行プログラムを一時的に格納するキャッシュとして機能し、複数のプロセッサは、実行プログラムに基づき並列して動作するようにしてもよい。これにより、通常電力状態201においては、高速な演算処理を実行することが可能となる。
一方、S705において制御プロセッサがパケットの受信を検知した場合(S705でYES)、S706へ進む。S706において、受信パケットのプロトコル処理を行う。具体的には、本処理では、制御プロセッサが、受信したパケットを通信制御部105からローカルRAM107へ取り出して、ヘッダを解析し、パケットの整合性の確認を行うことや、自装置宛であるかを確認する。またARPやPing、ICMPv6による問い合わせであった場合は、応答するパケット生成し、リモートコントローラに対してネットワーク122を介して送信する。
次に、S707において、制御プロセッサは受信パケットに対してまだ処理の継続が必要かを判定し、処理の継続が不要であった場合(S707でNO)はS715においてパケットを破棄してS716へ進む。処理の継続が必要であった場合(S707でYES)はS708へ進む。
S708では、制御プロセッサは受信したパケットが省電力モード移行時にMainCPU118により設定したパケットの種別ないしポート番号であるかを確認して判定する。通常電力モードへ復帰する要因となるパケットであった場合(S708でYES)はS702へ進み、受信パケットを保持するとともに復帰要因をローカルRAMに記録して、情報処理装置101は通常電力モードへの復帰処理を行う。復帰要因のパケットではなかった場合(S708でNO)は、S709へ進む。
S709においては、制御プロセッサはアプリケーションに通知を行うパケット(アプリプロセッサ通知パケット)であるかを判定する。本処理では省電力モード移行時にMainCPUによって設定した条件またはアプリプロセッサの初期化処理によって設定した条件に該当するかを判定して、アプリプロセッサ通知パケットに該当するかを判定する。該当する場合(S709でYES)はS710へ進み、該当しない場合(S709でNO)はS715へ進み受信パケットを破棄する。
一方、S710〜S714では、制御プロセッサが、アプリプロセッサに処理を行わせる処理を行う。本実施形態では、アプリプロセッサには、処理を行う順序が予め割り当てられている。制御プロセッサは、最初の順番のアプリプロセッサに処理権限を渡して、制御プロセッサへの電力供給を停止させる。アプリプロセッサの処理が終了したら、制御プロセッサへの電力供給を再開して、処理可能な状態に戻る。これにより、同時に電力を供給するプロセッサの数を制限して、省電力化を可能にする。
S710において、制御プロセッサは、まず、受信パケットの処理をアプリプロセッサ処理に受け渡すため、あらかじめ決められたアプリプロセッサの処理順序が最初のアプリプロセッサへパケット受信通知を送信する。本実施形態では最初にプロセッサBへ通知を行う例を説明する。なお、受信パケットの受け渡しは、ローカルRAM107に格納されたままアドレス情報のみを受け渡すなど、プロセッサBへパケットを受け渡せるならばどのような手法を用いて行ってもよい。また受信パケット処理通知のイベント通知はローカルRAM107を介して行ってもよいし、プロセッサにあらかじめキューを備えておき、そのキューを介して行ってもよい。このように、イベントを通知できるならばどのような手法を用いても構わない。
次に、制御プロセッサは、S711においてパケット受信通知を行うプロセッサB112の動作を開始するためのクロック供給指示を電力制御部B108に対して行うとともに、S712において自プロセッサの動作停止指示を行う。このようにしてプロセッサB112のクロック供給を開始する場合はプロセッサA110のクロック停止を行い、同時に動作するプロセッサ数を制限するように制御する。そのため、無駄な電力消費を低減することができる。なお本実施形態では、受信パケットの処理をどのアプリプロセッサで実施してもよいように、各アプリプロセッサに順番にパケットの受信通知を受け渡していくようにした例を説明しているが、これに限られない。例えば、あらかじめ受信パケット種別に応じてどのプロセッサが処理する必要があるかが判明している場合は、直接その特定のアプリプロセッサへ通知するようにしてもよい。例えばプロセッサB112はIPv6パケットの処理を行い、プロセッサC114はIPv4パケットの処理をするといったように、IPのバージョンごとに処理をするアプリプロセッサを定めておくことが考えられる。このような場合は、パケットのIPバージョンを確認して、そのバージョンに対応するアプリプロセッサへ直接受信通知を行うようにしてもよい。そして、処理を行った特定のアプリプロセッサは、イベントの処理を完了したことに応じて、制御プロセッサに通知するとともに、制御プロセッサへの電力の供給の開始と当該アプリプロセッサへの電力の供給の停止を電力制御部B108に指示する。
また、アプリプロセッサごとに役割が予め定められている場合でもパケット受信通知を順番に受け渡していき、アプリプロセッサにおける判定によって次のプロセッサへ受け渡すか自身で処理するかをアプリプロセッサが判定するようにしてもよい。例えば、プロセッサBはIPv6パケットを処理し、プロセッサCはIPv4パケットを処理するように役割が定められている場合も、アプリプロセッサへ順にパケット受信通知を送信してもよい。
また、本実施形態では、順番に処理を通知していくため、受信パケット処理の順序にプロセッサBとプロセッサCの前後関係がある場合は、優先順位の高いプロセッサに先に通知が行くようにプログラムを配置する。もっとも、アプリプロセッサ間の連携によって処理を行き来させて、複数のアプリプロセッサが処理を分担して実行するようにしてもよい。
次にS713において、制御プロセッサは受信パケットの処理完了通知をアプリプロセッサから受信するまで待機する。その際、完了通知と合わせてクロックの供給も再開するように制御するため、実際は本ステップでは動作を停止して待ち受けていることとなる。なお、受信パケットについて、プロセッサB112、プロセッサC114へと順番に通知する処理を行うため、その場合はプロセッサC114から完了通知が行われる。但し、プロセッサB112で処理が完結した場合は、プロセッサB112から完了通知が行われることとなる。完了通知を受信すると(S713でYES)、S714へ進む。
S714において、制御プロセッサは、アプリプロセッサからの完了通知情報を確認し、アプリプロセッサの処理によって通常電力モードへ復帰する必要があるかを判定する。例えば、アプリプロセッサの処理の結果負荷が大きい処理を行う必要が生じた場合、省電力モード中に処理を完結できない場合、省電力モード中に動作可能なハードウェアだけでは処理を完結できない場合等は、通常電力モードに復帰する必要があると判定する。通常電力モードへ復帰する場合(S714でYES)はS702へ進み、復帰しない場合(S714でNO)はS715へ進む。
一方、S717において制御プロセッサがアプリプロセッサの周期処理時間の経過を検知した場合(S717でYES)はS718へ進み、周期経過を検知したアプリプロセッサへ周期イベント処理通知を行う。次に、S719において、制御プロセッサは周期イベント処理通知を行ったプロセッサの動作開始のために、クロック供給開始指示を電力制御部B108に行う。次に、S720において、制御プロセッサは自プロセッサのクロック停止指示を電力制御部B108へ行う。このようにして、他のプロセッサのクロック供給を開始する場合はプロセッサAのクロック停止を行い、同時に動作するプロセッサ数を制限するように制御を行う。これにより消費電力を低減することができる。
次にS721において制御プロセッサは周期処理完了通知をアプリプロセッサから受信するまで待機する。その際、完了通知と合わせてクロックの供給も再開されるように制御するため、実際は本ステップでは動作を停止して待ち受けていることとなる。クロック供給が再開して周期処理完了通知を受け取ると(S721でYES)S722へ進む。
本実施形態ではこのようにして周期イベントのアプリプロセッサ通知を行う。そのため複数のプロセッサで同時に周期イベント時間が経過した場合は、プロセッサBへ通知を行った後、プロセッサAが完了を検知し、その後プロセッサCへ処理通知を行うというフローとなる。したがって、プロセッサBとプロセッサCの処理の順序が予め定められている場合はその順序どおりになるようにプログラムを配置するか、優先順位を付けて通知を行えるようにしてもよい。また、ひとつの周期イベント処理が複数のプロセッサにまたがって行うプログラムであった場合、複数のアプリプロセッサ間の連携によって処理を行うようにしてもよい。
以上、本実施形態では制御プロセッサによって情報処理装置101の省電力動作中の制御フローを示したが、省電力動作可能に同時動作するプロセッサを制限するように制御できるフローであればよい。
(アプリプロセッサの省電力モード動作処理)
次に図9を用いて、アプリプロセッサであるプロセッサB及びプロセッサCの省電力モード動作処理について説明する。図9はアプリプロセッサの省電力モード動作処理の処理手順を示すフローチャートである。以下の各ステップは、アプリプロセッサの制御に基づき実行される。
S801において、アプリプロセッサは省電力モード終了通知を受信したかを判定する。終了通知を検知した場合(S801でYES)はS802へ進み、検知していない場合(S801でNO)はS803へ進む。
S803においては、アプリプロセッサは自プロセッサの電力低減制御が可能かを判定する。低減制御が可能な場合(S803でYES)はS804へ進み、低減制御できない場合(S803でNO)はS805へ進む。
S805においては、アプリプロセッサは周知イベント通知を受信したかを判定する。周期イベント通知を受信していた場合(S805でYES)はS806へ進み、受信していない場合(S805でNO)はS809へ進む。
S809においては、アプリプロセッサは受信パケット処理通知を制御プロセッサから受信して検知したか否かを判定する。受信パケット処理通知を検知している場合(S809でYES)はS810へ進み、検知していない場合(S809でNO)はS801へ進む。
このようにS801からS809のポーリング処理を行うが、実際はクロックを停止して待ち受けているため、いずれかのイベント通知が来た場合にのみポーリングによる確認を行う。
アプリプロセッサは省電力モード終了を検知すると(S801でYES)S802へ進み、アプリプロセッサの省電力モード終了処理を行い、処理を終える。本ステップでは安全に通常電力モードへ移行するためのプロセッサの終了処理を行う。
一方、S803でアプリプロセッサは自プロセッサの電力低減制御可能と判断すると(S803でYES)、S804において、電力制御部B108に対して自プロセッサのクロックを停止するための指示を行う。本実施形態では本ステップで電力低減制御を行う例を説明しているが、他のプロセッサへの通知を行い、通知を行ったプロセッサのクロック供給の開始を指示すると同時に行うようにしてもよい。このように、同時で動作するプロセッサ数を制限できるように制御できるならば、どのような手法を用いても構わない。
S805においてアプリプロセッサは周期イベント通知を検知すると(S805でYES)、S806において、アプリケーション処理によって周期イベント処理を行う。具体的には、本処理では、一定時間ごとにリモートコントローラへパケットを送信したり、アプリケーションの状態を更新するといった処理を行う。また、その他一定時間ごとに必要なアプリケーションの処理を実施する。
次に、S807においてアプリプロセッサは制御プロセッサであるプロセッサA110へ周期イベントの完了通知を行い、S808において電力制御部BへプロセッサA110のクロック供給開始を行う。その後、本フローではS809、S801の確認を行った後にS803での判定を経由して、S804で自プロセッサの電力低減指示を行う。本実施形態ではこのようなフローとしたが、S808と同時に電力低減処理を行うようにしてもよい。
一方、S809においてアプリプロセッサはパケット受信処理を検知すると(S809でYES)、S810において受信パケットの処理を行う。具体的には、本ステップではアプリケーション処理における応答パケットの送信や、リモートコントローラからの指示による状態の更新処理、また通常電力モードへ復帰するためのアプリケーション処理を行う。なお、本実施形態では同時に動作するプロセッサを制限しているため、他のプロセッサがパケットを送受信しているという状況を想定しなくて済むため、通信制御部105へのパケット転送の排他制御は不要である。
次に、S811においてアプリプロセッサはアプリケーション処理がすべて完了しているかを判定する。完了している場合(S811でYES)はS813へ進み、後続するアプリプロセッサの有無に関わらず制御プロセッサへパケット受信処理完了通知を行う。完了していない場合(S811でNO)は、S812へ進み、後続のアプリプロセッサへパケット受信処理をリレーする。本実施形態ではプロセッサB112、プロセッサC114の順に処理を行った場合、プロセッサB112において後続の処理がある場合は、プロセッサC114へ通知する。他方、プロセッサC114は後続のプロセッサが存在しないため、プロセッサAへ通知を行う。またプロセッサB112でアプリケーション処理が完了した場合は、プロセッサCへは通知を行わずプロセッサAへ通知を行う。なお、アプリケーション処理が完了している場合でも、必ずすべてのプロセッサへ通知を行うようにしてもよい。S812またはS813において通知を行うとS814において通知を行ったプロセッサの電力供給制御指示を電力制御部B108に対して行い、S801、S803を経由して、S804において自プロセッサの電力低減制御指示を行う。
以上のフローでアプリケーションプロセッサの省電力モード中の動作を行う。
なお、本実施形態ではアプリプロセッサとして動作を行うプロセッサはプロセッサB、プロセッサCとして説明したが、制御プロセッサとして動作を行うプロセッサAが自らアプリケーション処理も行うようにしてもよい。また、プロセッサの個数は本実施形態の個数である必要はなく、省電力モード中の動作を分割して各プロセッサに配置し、同時に動作するプロセッサ数をプログラム制御で明示的に制限をして消費電力を抑える構成であればよい。
本実施形態によれば、情報処理装置101において省電力モード動作において大部分のハードウェアの電源供給を遮断することで消費電力を削減する。また複数のプロセッサで処理を分割して動作し、同時に動作するプロセッサを制限して動作する。すなわち、各プロセッサが保持している専用メモリに省電力モード中のプログラムを配置して動作することでプログラム領域を確保するとともに、同時に動作するプロセッサを制限する。これにより、複数のプロセッサにまたがった動作でも消費電力を抑えることができる。また複数のプロセッサで動作する場合でもリソースの排他制御が不要となり、1つのプロセッサ処理を行っている場合に他のプロセッサによるリソースの競合を意識した実装が不要となる。このようにして消費電力を低減しつつ、リソースを有効に活用して動作可能となる。
また、パケット受信時にアプリプロセッサに順次処理を受け渡していくことで、どのプロセッサに処理を配置しても処理が可能となる。また順次通知していく中で処理が完了した場合は、すべてのアプリプロセッサへ順次通知する前に制御プロセッサに完了通知をすることで効率的に処理が可能となる。同様に周期時間が経過すると該当のアプリプロセッサに直接通知を行うことで、どのプロセッサが処理するか判明している場合にはプロセッサ間の受け渡しを削減でき効率的に処理が可能となる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101:マルチプロセッサシステム、102:メインシステム部、103:ネットワークサブシステム部、104:電力制御部A、105:通信制御部、106:バスブリッジ、107:ローカルRAM、108:電力制御部B、109:タイマー、110:プロセッサA、111:専用メモリA、112:プロセッサB、113:専用メモリB、114:プロセッサC、115:専用メモリC、116:ローカルバス

Claims (12)

  1. 第1の電力モードと、当該第1の電力モードよりも消費電力が少ない第2の電力モードとを切り替えて動作可能な情報処理装置であって、
    複数のプロセッサと、
    前記複数のプロセッサに対応して設けられた複数のメモリと、
    前記複数のプロセッサ及び対応する前記複数のメモリに供給する電力を制御する電力制御手段と
    を備え、
    前記第2の電力モードで動作する場合に、
    前記複数のプロセッサおよび前記複数のメモリを動的に切り替えて動作させ、
    前記複数のメモリの各々は、当該メモリに対応するプロセッサが読み込むべきプログラムを記憶し、
    前記電力制御手段は、前記複数のプロセッサのうちのいずれかのプロセッサ及び対応する前記メモリが動作している場合に、当該プロセッサ及びメモリ以外のプロセッサ及びメモリに対する電力の供給を制限する
    ことを特徴とする情報処理装置。
  2. 前記第2の電力モードにおいて前記複数のプロセッサが読み込むべきプログラムを記憶する、前記複数のプロセッサがそれぞれアクセスすることが可能な共有メモリをさらに備え、
    前記複数のプロセッサの各々は、前記第1の電力モードから前記第2の電力モードへの切り替えに応じて、前記第2の電力モードにおける当該プロセッサの動作を規定するプログラムを前記共有メモリから取得して当該プロセッサに対応する前記メモリに記憶させる
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2の電力モードにおいて、前記複数のプロセッサのうちのいずれかのプロセッサは制御プロセッサとして、イベントの発生に応じて、当該イベントを処理するために前記制御プロセッサを除いた前記複数のプロセッサの動作が必要であるか否かを判定し、
    前記制御プロセッサを除いた前記複数のプロセッサの動作が必要であると判定されたときは、前記制御プロセッサを除いた前記複数のプロセッサのうちのいずれかのプロセッサに前記イベントの発生を通知するとともに、当該プロセッサへの電力の供給の開始と前記制御プロセッサへの電力の供給の停止を前記電力制御手段に指示する
    ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記制御プロセッサを除いた前記複数のプロセッサは処理を行う順序が予め定められており、
    前記第2の電力モードにおいて、前記制御プロセッサは、前記イベントを処理するために前記制御プロセッサを除いた前記複数のプロセッサの動作が必要であると判定されたときは、前記制御プロセッサを除いた前記複数のプロセッサのうちの前記順序が最初のプロセッサに前記イベントの発生を通知するとともに、当該プロセッサへの電力の供給の開始を前記電力制御手段に指示する
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記イベントの発生が通知された前記プロセッサは、
    前記イベントの処理を行い、
    前記イベントの処理を行った後に、
    前記通知されたプロセッサに後続するプロセッサが存在するときは、当該後続するプロセッサに処理をリレーするとともに、当該後続するプロセッサへの電力の供給の開始と前記通知されたプロセッサへの電力の供給の停止を前記電力制御手段に指示し、
    前記通知されたプロセッサに後続するプロセッサが存在しないときは、前記制御プロセッサに通知するとともに、前記制御プロセッサへの電力の供給の開始と前記通知されたプロセッサへの電力の供給の停止を前記電力制御手段に指示する
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 前記イベントの発生が通知された前記プロセッサは、
    前記イベントの処理を行い、
    前記イベントの処理が完了した場合は、前記通知されたプロセッサに後続するプロセッサの有無に関わらず、前記制御プロセッサに通知するとともに、前記制御プロセッサへの電力の供給の開始と前記通知されたプロセッサへの電力の供給の停止を前記電力制御手段に指示する
    ことを特徴とする請求項5に記載の情報処理装置。
  7. 前記第2の電力モードにおいて、前記イベントを処理するために必要なプロセッサが判明しているときは、
    前記制御プロセッサは、前記順序にかかわらず、当該必要な他のプロセッサに前記イベントの発生を通知するとともに、当該必要なプロセッサへの電力の供給の開始と前記制御プロセッサへの電力の供給の停止を前記電力制御手段に指示し、
    前記必要なプロセッサは、前記イベントの処理を完了したことに応じて、前記制御プロセッサに通知するとともに、前記制御プロセッサへの電力の供給の開始と当該必要なプロセッサへの電力の供給の停止を前記電力制御手段に指示する
    ことを特徴とする請求項4から6のいずれか1項に記載の情報処理装置。
  8. 前記イベントには、タイマーのタイムアウトと、パケットの受信との少なくともいずれかが含まれることを特徴とする請求項3から7のいずれか1項に記載の情報処理装置。
  9. 前記第2の電力モードにおいて、前記複数のプロセッサのうち同時に動作するプロセッサは1つに制限されることを特徴とする請求項1から8のいずれか1項に記載の情報処理装置。
  10. 前記第1の電力モードにおいて、
    前記複数のプロセッサの実行プログラムがメインメモリに配置され、
    前記複数のメモリは、前記実行プログラムを一時的に格納するキャッシュとして機能し、
    前記複数のプロセッサは、前記実行プログラムに基づき並列して動作する
    ことを特徴とする請求項1から9のいずれか1項に記載の情報処理装置。
  11. 複数のプロセッサと、当該複数のプロセッサに対応して設けられた複数のメモリを備え、第1の電力モードと、当該第1の電力モードよりも消費電力が少ない第2の電力モードとを切り替えて動作可能な情報処理装置の制御方法であって、
    前記第2の電力モードで動作する場合に、
    前記複数のプロセッサおよび前記複数のメモリを動的に切り替えて動作させ、
    前記複数のメモリの各々は、当該メモリに対応するプロセッサが読み込むべきプログラムを記憶し、
    前記複数のプロセッサ及び対応する前記複数のメモリに供給する電力を制御する電力制御手段は、前記複数のプロセッサのうちのいずれかのプロセッサ及び対応する前記メモリが動作している場合に、当該プロセッサ及びメモリ以外のプロセッサ及びメモリに対する電力の供給を制限する
    ことを特徴とする情報処理装置の制御方法。
  12. コンピュータを請求項1から10のいずれか1項に記載の情報処理装置が備える各手段として機能させるためのコンピュータプログラム。
JP2016177865A 2016-09-12 2016-09-12 情報処理装置及びその制御方法、コンピュータプログラム Active JP6772007B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016177865A JP6772007B2 (ja) 2016-09-12 2016-09-12 情報処理装置及びその制御方法、コンピュータプログラム
US15/696,463 US11209885B2 (en) 2016-09-12 2017-09-06 Information processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016177865A JP6772007B2 (ja) 2016-09-12 2016-09-12 情報処理装置及びその制御方法、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2018045310A JP2018045310A (ja) 2018-03-22
JP6772007B2 true JP6772007B2 (ja) 2020-10-21

Family

ID=61559859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016177865A Active JP6772007B2 (ja) 2016-09-12 2016-09-12 情報処理装置及びその制御方法、コンピュータプログラム

Country Status (2)

Country Link
US (1) US11209885B2 (ja)
JP (1) JP6772007B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6772007B2 (ja) * 2016-09-12 2020-10-21 キヤノン株式会社 情報処理装置及びその制御方法、コンピュータプログラム
US10884481B2 (en) * 2018-03-30 2021-01-05 Konica Minolta Laboratory U.S.A., Inc. Apparatus and method for improving power savings by accelerating device suspend and resume operations
JP7210238B2 (ja) * 2018-11-15 2023-01-23 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
US11023379B2 (en) 2019-02-13 2021-06-01 Google Llc Low-power cached ambient computing
JP7283191B2 (ja) * 2019-04-05 2023-05-30 富士フイルムビジネスイノベーション株式会社 情報処理システム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202468A (ja) * 1995-01-27 1996-08-09 Hitachi Ltd マルチプロセッサシステム
JP2000105639A (ja) 1998-09-29 2000-04-11 Sony Corp 省電力化回路
JP4157063B2 (ja) * 2004-03-24 2008-09-24 京セラミタ株式会社 節電管理装置
GB2414573B (en) * 2004-05-26 2007-08-08 Advanced Risc Mach Ltd Control of access to a shared resource in a data processing apparatus
JP2006031525A (ja) * 2004-07-20 2006-02-02 Sony Corp 情報処理装置および情報処理方法、並びに、プログラム
US7882379B2 (en) * 2006-09-22 2011-02-01 Sony Computer Entertainment Inc. Power consumption reduction in a multiprocessor system
JP5214262B2 (ja) * 2008-01-30 2013-06-19 株式会社東芝 半導体集積回路及び電源制御方法
JP5229326B2 (ja) * 2008-09-24 2013-07-03 富士通株式会社 マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム
JP5094666B2 (ja) 2008-09-26 2012-12-12 キヤノン株式会社 マルチプロセッサシステム及びその制御方法、並びに、コンピュータプログラム
JP2014078899A (ja) * 2012-10-12 2014-05-01 Ricoh Co Ltd 情報処理装置、画像処理装置、および情報処理装置の制御方法
US9442559B2 (en) * 2013-03-14 2016-09-13 Intel Corporation Exploiting process variation in a multicore processor
US9891927B2 (en) * 2013-08-28 2018-02-13 Via Technologies, Inc. Inter-core communication via uncore RAM
US20150149800A1 (en) * 2013-11-27 2015-05-28 Alexander Gendler Performing an operating frequency change using a dynamic clock control technique
US10073718B2 (en) * 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US10606339B2 (en) * 2016-09-08 2020-03-31 Qualcomm Incorporated Coherent interconnect power reduction using hardware controlled split snoop directories
JP6772007B2 (ja) * 2016-09-12 2020-10-21 キヤノン株式会社 情報処理装置及びその制御方法、コンピュータプログラム

Also Published As

Publication number Publication date
JP2018045310A (ja) 2018-03-22
US20180074566A1 (en) 2018-03-15
US11209885B2 (en) 2021-12-28

Similar Documents

Publication Publication Date Title
JP6772007B2 (ja) 情報処理装置及びその制御方法、コンピュータプログラム
JP5138100B2 (ja) 複数の通信インターフェイスを有する情報処理装置、該情報処理装置の制御方法
JP5310588B2 (ja) 通信装置
JP5741022B2 (ja) 通信装置
JP2011068038A (ja) 通信制御装置、通信制御装置のジョブ処理方法およびプログラム
JP5377091B2 (ja) 情報処理装置及びその制御方法
JP6192284B2 (ja) 通信装置及びその制御方法
US20120137150A1 (en) Data processing apparatus, method for controlling data processing apparatus, and storage medium storing program
JP6057593B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
JP5360114B2 (ja) 通信装置
JP2014137681A (ja) 管理装置、管理方法、および管理プログラム
JP6176058B2 (ja) ダイレクトメモリアクセス制御装置、その制御方法、及び情報処理システム
WO2013073522A1 (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP5505266B2 (ja) 無線通信装置及びプログラム、並びに、通信システム
US10587428B2 (en) Communication apparatus, method for controlling communication apparatus, and storage medium
JP2011173378A (ja) 印刷装置
JP7424479B2 (ja) 電源管理装置、電源管理システム、電源管理方法、および、電源管理プログラム
US20170150439A1 (en) Information Processing Device That Controls Wireless Network Function to Reduce Power Consumption, and Recording Medium Therefor
JP7110573B2 (ja) 情報処理装置、情報処理プログラム及び情報処理方法
JP2014113731A (ja) 画像形成装置、制御方法及びプログラム
JP6642990B2 (ja) 通信装置、制御方法、および、プログラム
JP6376108B2 (ja) 情報処理装置及びプログラム
JP2020174288A (ja) 情報処理装置及びパケットパターン生成プログラム
JP2014104684A (ja) 印刷装置、印刷装置の制御方法、及びプログラム
JP2012038156A (ja) ネットワーク装置、ネットワーク装置の省電力方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200709

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200930

R151 Written notification of patent or utility model registration

Ref document number: 6772007

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151