(57)【特許請求の範囲】
【請求項１】
内部または外部の周辺装置を制御するための情報処理装置であって、
動作状態および停止状態の少なくとも２つの状態を取り得るメインＣＰＵと、
動作状態および停止状態の少なくとも２つの状態を取り得るサブＣＰＵと、
前記周辺装置からの要求に関する処理を、前記メインＣＰＵに実行させるか、それとも前記サブＣＰＵに実行させるかを判定する処理要求判定部とを備え、
前記処理要求判定部は、前記メインＣＰＵが停止状態であるかそれとも動作状態であるかを判断し、前記メインＣＰＵが停止状態である場合、前記サブＣＰＵに前記処理を実行させることができるか否かを判断し、前記メインＣＰＵが動作状態である場合、前記メインＣＰＵに前記処理を実行させることができるか否かを判断し、判断結果に応じて、前記メインＣＰＵまたは前記サブＣＰＵに前記処理を実行させることを特徴とする、情報処理装置。
【請求項２】
前記処理要求判定部は、
前記メインＣＰＵが停止状態である場合、前記サブＣＰＵに前記処理を実行させ、
前記メインＣＰＵが動作状態である場合、前記メインＣＰＵに前記処理を実行させることを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記処理要求判定部は、
前記メインＣＰＵが停止状態である場合、前記サブＣＰＵが前記処理を受付可能であるか否かを判断し、受付可能である場合、前記サブＣＰＵに前記処理を実行させ、受付可能でない場合、前記メインＣＰＵに前記処理を実行させ、
前記メインＣＰＵが動作状態である場合、前記メインＣＰＵに前記処理を実行させることを特徴とする、請求項１に記載の情報処理装置。
【請求項４】
前記処理要求判定部は、
前記メインＣＰＵが停止状態である場合、前記サブＣＰＵが前記処理を受付可能であるか否かを判断し、受付可能である場合、前記サブＣＰＵに前記処理を実行させ、受付可能でない場合、前記メインＣＰＵに前記処理を実行させ、
前記メインＣＰＵが動作状態である場合、前記メインＣＰＵが前記処理を受付可能であるか否かを判断し、受付可能である場合、前記メインＣＰＵに前記処理を実行させ、受付可能でない場合、前記サブＣＰＵに前記処理を実行させることができるか否かを判断することを特徴とする、請求項１に記載の情報処理装置。
【請求項５】
前記周辺装置での処理に対応させて、指定ＣＰＵ情報として、当該処理を実行して欲しい所望のＣＰＵを予め定義している処理要求先指定部をさらに備え、
前記処理要求判定部は、前記処理要求先指定部の前記指定ＣＰＵ情報によって指定されているＣＰＵが前記メインＣＰＵである場合、前記メインＣＰＵが停止状態であるかそれとも動作状態であるかを判断することを特徴とする、請求項１に記載の情報処理装置。
【請求項６】
前記処理要求先指定部は、他ＣＰＵ使用可否情報として、前記指定ＣＰＵ情報に定義されているＣＰＵ以外のＣＰＵを用いて前記処理が実行されてもよいか否かをさらに定義しており、
前記処理要求判定部は、
前記メインＣＰＵが停止状態である場合、前記他ＣＰＵ使用可否情報を参照して、前記サブＣＰＵに前記処理を実行させてもよいか否かを判断し、
前記サブＣＰＵに前記処理を実行させてもよい場合、前記サブＣＰＵに前記処理を実行させると決定し、
前記サブＣＰＵに前記処理を実行させてはいけない場合、前記メインＣＰＵに前記処理を実行させると決定することを特徴とする、請求項５に記載の情報処理装置。
【請求項７】
前記処理要求判定部は、
前記メインＣＰＵが動作状態である場合、前記メインＣＰＵが前記処理を受付可能であるか否かを判断し、
前記メインＣＰＵが前記処理を受付可能である場合、前記メインＣＰＵに前記処理を実行させると決定し、
前記メインＣＰＵが前記処理を受付可能でない場合、前記他ＣＰＵ使用可否情報を参照して、前記サブＣＰＵに前記処理を実行させてもよいか否かを判断し、
前記サブＣＰＵに前記処理を実行させてもよい場合、前記サブＣＰＵに前記処理を実行させると決定し、
前記サブＣＰＵに前記処理を実行させてはいけない場合、前記メインＣＰＵに前記処理を実行させると決定することを特徴とする、請求項６に記載の情報処理装置。
【請求項８】
前記処理要求判定部は、前記処理要求先指定部の前記指定ＣＰＵ情報によって指定されているＣＰＵが前記サブＣＰＵである場合、前記サブＣＰＵが停止状態であるかそれとも動作状態であるかを判断して、前記処理を前記メインＣＰＵに実行させるかそれとも前記サブＣＰＵに実行させるかを決定することを特徴とする、請求項５に記載の情報処理装置。
【請求項９】
前記処理要求先指定部は、他ＣＰＵ使用可否情報として、前記指定ＣＰＵ情報に定義されているＣＰＵ以外のＣＰＵを用いて前記処理が実行されてもよいか否かをさらに定義しており、
前記処理要求判定部は、
前記サブＣＰＵが停止状態の場合、前記他ＣＰＵ使用可否情報を参照して、前記メインＣＰＵに前記処理を実行させてよいか否かを判断し、
前記メインＣＰＵに前記処理を実行させてもよい場合、前記メインＣＰＵに前記処理を実行させると決定し、
前記メインＣＰＵに前記処理を実行させてはいけない場合、前記サブＣＰＵに前記処理を実行させると決定することを特徴とする、請求項８に記載の情報処理装置。
【請求項１０】
前記処理要求判定部は、
前記サブＣＰＵが動作状態である場合、前記サブＣＰＵが前記処理を受付可能であるか否かを判断し、
前記サブＣＰＵが前記処理を受付可能である場合、前記サブＣＰＵに前記処理を実行させると決定し、
前記サブＣＰＵが前記処理を受付可能でない場合、前記他ＣＰＵ使用可否情報を参照して、前記メインＣＰＵに前記処理を実行させてもよいか否かを判断し、
前記メインＣＰＵに前記処理を実行させてもよい場合、前記メインＣＰＵに前記処理を実行させると決定し、
前記メインＣＰＵに前記処理を実行させてはいけない場合、前記サブＣＰＵに前記処理を実行させると決定することを特徴とする、請求項９に記載の情報処理装置。
【請求項１１】
前記周辺装置での処理に対応させて、指定ＣＰＵ情報として、当該処理を実行して欲しい所望のＣＰＵを予め定義している処理要求先指定部をさらに備え、
前記処理要求判定部は、
前記メインＣＰＵが停止状態である場合、前記指定ＣＰＵ情報を参照して、前記サブＣＰＵに前記処理を実行させてもよいか否かを判断し、
前記サブＣＰＵに前記処理を実行させてもよい場合、前記サブＣＰＵに前記処理を実行させ、
前記サブＣＰＵに前記処理を実行させてはいけない場合、前記メインＣＰＵに前記処理を実行させることを特徴とする、請求項１に記載の情報処理装置。
【請求項１２】
前記処理要求判定部は、
前記メインＣＰＵが動作状態である場合、前記メインＣＰＵが前記処理を受付可能であるか否かを判断し、
前記メインＣＰＵが前記処理を受付可能である場合、前記指定ＣＰＵ情報を参照して、前記メインＣＰＵに前記処理を実行させてもよいか否かを判断し、
前記メインＣＰＵに前記処理を実行させてもよい場合、前記メインＣＰＵに前記処理を実行させ、
前記メインＣＰＵに前記処理を実行させてはいけない場合、前記サブＣＰＵに前記処理を実行させ、
前記メインＣＰＵが前記処理を受付可能でない場合、前記サブＣＰＵに前記処理を実行させることを特徴とする、請求項１１に記載の情報処理装置。
【請求項１３】
前記サブＣＰＵに前記処理を実行させている間に、前記メインＣＰＵに対する起動要求がなされれば、前記サブＣＰＵおよび前記メインＣＰＵは、前記サブＣＰＵで実行されていた処理を前記メインＣＰＵに引き継がせるための処理を実行することを特徴とする、請求項１に記載の情報処理装置。
【請求項１４】
動作状態および停止状態の少なくとも２つの状態を取り得るメインＣＰＵと、前記メインＣＰＵよりも消費電力が少なく、動作状態および停止状態の少なくとも２つの状態を取り得るサブＣＰＵとを備える、内部または外部の周辺装置を制御するための情報処理装置での処理方法であって、
前記メインＣＰＵが停止状態であるかそれとも動作状態であるかを判断し、
前記メインＣＰＵが停止状態である場合、前記サブＣＰＵに前記周辺装置からの要求に関する処理を実行させることができるか否かを判断し、
前記メインＣＰＵが動作状態である場合、前記メインＣＰＵに前記処理を実行させることができるか否かを判断し、
判断結果に応じて、前記メインＣＰＵまたは前記サブＣＰＵに前記処理を実行させることを特徴とする、方法。
【請求項１５】
動作状態および停止状態の少なくとも２つの状態を取り得るメインＣＰＵと、前記メインＣＰＵよりも消費電力が少なく、動作状態および停止状態の少なくとも２つの状態を取り得るサブＣＰＵとを用いて、内部または外部の周辺装置を制御するための集積回路であって、
前記メインＣＰＵが停止状態であるかそれとも動作状態であるかを判断し、
前記メインＣＰＵが停止状態である場合、前記サブＣＰＵに前記周辺装置からの要求に関する処理を実行させることができるか否かを判断し、
前記メインＣＰＵが動作状態である場合、前記メインＣＰＵに前記処理を実行させることができるか否かを判断し、
判断結果に応じて、前記メインＣＰＵまたは前記サブＣＰＵに前記処理を実行させることを特徴とする、集積回路。
【請求項１６】
動作状態および停止状態の少なくとも２つの状態を取り得るメインＣＰＵと、前記メインＣＰＵよりも消費電力が少なく、動作状態および停止状態の少なくとも２つの状態を取り得るサブＣＰＵとに、内部または外部の周辺装置を制御させるためのコンピュータ装置で実行されるプログラムであって、
前記メインＣＰＵが停止状態であるかそれとも動作状態であるかを前記コンピュータ装置に判断させ、
前記メインＣＰＵが停止状態である場合、前記サブＣＰＵに前記周辺装置からの要求に関する処理を実行させることができるか否かを前記コンピュータ装置に判断させ、
前記メインＣＰＵが動作状態である場合、前記メインＣＰＵに前記処理を実行させることができるか否かを前記コンピュータ装置に判断させ、
判断結果に応じて、前記コンピュータ装置を用いて、前記メインＣＰＵまたは前記サブＣＰＵに前記処理を実行させることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、より特定的には、消費電力の低減化を図ることができる情報処理装置に関する。
【背景技術】
【０００２】
近年、移動可能な情報処理装置は、目覚ましく普及している。携帯型電話装置、携帯型パーソナルコンピュータ、携帯型電子手帳などが、その代表である。これら携帯型端末装置は、いずれもバッテリー駆動によって連続的に動作する。したがって、より長時間の使用が可能となるように、消費電力を削減するための開発が行われてきた。
【０００３】
とりわけ、携帯型電話装置では、搭載機能が豊富になる（以下、搭載機能のリッチ化という）と共に、ＣＰＵの性能も飛躍的に向上してきている。そのため、年々、装置全体に占めるＣＰＵの消費電力の割合が増大しており、ＣＰＵの省電力技術が必要となってきている。また、搭載機能のリッチ化は、同時に、システム要件において、高い要件と低い要件との格差を生んでいる。
【０００４】
たとえば、携帯型電話装置での待ち受け画面のための処理や、時計表示の処理など、従来から存在する処理は、システム要件が低い。一方、動画表示のための処理や、テレビ電話などの新規追加機能のための処理は、システム要件が高い。これらの例から明らかなように、システム要件が低い処理のＣＰＵ処理量とシステム要件が高い処理のＣＰＵ処理量との差は、大きい。ＣＰＵは、システム要件が高い処理も低い処理も実行できなければならないので、全てのシステム要件を満たしうる性能を持っていなければならない。しかし、ＣＰＵの性能を使い切る機能は、システム全体の中で、ほんの一握りである。
【０００５】
そのため、メインＣＰＵと、メインＣＰＵよりも消費電力が少ないサブＣＰＵとを具備する情報処理装置が提案されている（特許文献１参照）。特許文献１に記載の従来の情報処理装置において、メインＣＰＵとメインＣＰＵが担当する周辺装置とが直接結線され、サブＣＰＵとサブＣＰＵが担当する周辺装置とが直接結線されている。これにより、従来の情報処理装置は、たとえば、ユーザのキー入力待ちやタイマイベントのような負荷の小さな処理をサブＣＰＵに実行させることができる。したがって、負荷の小さな処理が実行されている間、メインＣＰＵは無駄に実行されないので、消費電力の削減が図られることとなる。
【特許文献１】特開平４−３０９１１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載の従来技術では、各ＣＰＵと各ＣＰＵが担当する周辺装置とが直接結線されているので、周辺装置の処理を担当するＣＰＵが固定的であり、装置の状態に合わせて、柔軟に、２つのＣＰＵリソースを有効に活用することができなかった。また、ハードウェア構成が異なる毎に、どのＣＰＵとどの周辺装置とを結線しなければならないかを再度設計する必要があった。
【０００７】
それゆえ、本発明の目的は、低消費電力化を実現しつつ、周辺装置からの処理要求をメインＣＰＵまたはサブＣＰＵのどちらに実行させるかが固定的でない情報処理装置を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、以下のような特徴を有する。本発明の第１の局面は、内部または外部の周辺装置を制御するための情報処理装置であって、動作状態および停止状態の少なくとも２つの状態を取り得るメインＣＰＵと、動作状態および停止状態の少なくとも２つの状態を取り得るサブＣＰＵと、周辺装置からの要求に関する処理を、メインＣＰＵに実行させるか、それともサブＣＰＵに実行させるかを判定する処理要求判定部とを備え、処理要求判定部は、メインＣＰＵが停止状態であるかそれとも動作状態であるかを判断し、メインＣＰＵが停止状態である場合、サブＣＰＵに処理を実行させることができるか否かを判断し、メインＣＰＵが動作状態である場合、メインＣＰＵに処理を実行させることができるか否かを判断し、判断結果に応じて、メインＣＰＵまたはサブＣＰＵに処理を実行させることを特徴とする。
【０００９】
本発明の第１の局面によれば、メインＣＰＵが停止状態である場合、サブＣＰＵに処理を実行させることができるか否かが判断されるので、サブＣＰＵに処理を実行させることができる場合、サブＣＰＵによって処理が実行される。したがって、メインＣＰＵを長時間停止状態にしておくことができるので、消費電力が低減されることとなる。一方、メインＣＰＵが動作状態である場合、メインＣＰＵに処理を実行させることができるか否かが判断されるので、メインＣＰＵに処理を実行させることができる場合、メインＣＰＵによって処理が実行される。したがって、応答速度が向上することとなる。このように、低消費電力化を実現しつつ、周辺装置からの処理要求をメインＣＰＵまたはサブＣＰＵのどちらに実行させるかが固定的でない情報処理装置が提供されることとなる。
【００１０】
好ましくは、処理要求判定部は、メインＣＰＵが停止状態である場合、サブＣＰＵに処理を実行させ、メインＣＰＵが動作状態である場合、メインＣＰＵに処理を実行させるとよい。
【００１１】
これにより、メインＣＰＵが停止状態である場合、必ずサブＣＰＵが処理を実行し、メインＣＰＵが動作状態である場合、必ずメインＣＰＵが処理を実行することとなる。
【００１２】
好ましくは、処理要求判定部は、メインＣＰＵが停止状態である場合、サブＣＰＵが処理を受付可能であるか否かを判断し、受付可能である場合、サブＣＰＵに処理を実行させ、受付可能でない場合、メインＣＰＵに処理を実行させ、メインＣＰＵが動作状態である場合、メインＣＰＵに処理を実行させるとよい。
【００１３】
これにより、サブＣＰＵが処理を受付可能でない場合、メインＣＰＵによって処理が実行されることとなるので、応答速度が向上することとなる。
【００１４】
好ましくは、処理要求判定部は、メインＣＰＵが停止状態である場合、サブＣＰＵが処理を受付可能であるか否かを判断し、受付可能である場合、サブＣＰＵに処理を実行させ、受付可能でない場合、メインＣＰＵに処理を実行させ、メインＣＰＵが動作状態である場合、メインＣＰＵが処理を受付可能であるか否かを判断し、受付可能である場合、メインＣＰＵに処理を実行させ、受付可能でない場合、サブＣＰＵに処理を実行させることができるか否かを判断するとよい。
【００１５】
これにより、メインＣＰＵが動作状態である場合、メインＣＰＵが処理を受付可能であるか否かが判断され、受付可能でない場合、サブＣＰＵに処理を実行させることができるか否かが判断されることとなる。したがって、メインＣＰＵとサブＣＰＵとで並列的に処理を実行することができるので、消費電力低減を図りながらも、応答速度を向上させることができる。
【００１６】
好ましくは、周辺装置での処理に対応させて、指定ＣＰＵ情報として、当該処理を実行して欲しい所望のＣＰＵを予め定義している処理要求先指定部をさらに備え、処理要求判定部は、処理要求先指定部の指定ＣＰＵ情報によって指定されているＣＰＵがメインＣＰＵである場合、メインＣＰＵが停止状態であるかそれとも動作状態であるかを判断するとよい。
【００１７】
これにより、メインＣＰＵでの処理が指定されている場合に、メインＣＰＵが停止状態であるかそれとも動作状態であるかが判断されることとなる。
【００１８】
好ましくは、処理要求先指定部は、他ＣＰＵ使用可否情報として、指定ＣＰＵ情報に定義されているＣＰＵ以外のＣＰＵを用いて処理が実行されてもよいか否かをさらに定義しており、処理要求判定部は、メインＣＰＵが停止状態である場合、他ＣＰＵ使用可否情報を参照して、サブＣＰＵに処理を実行させてもよいか否かを判断し、サブＣＰＵに処理を実行させてもよい場合、サブＣＰＵに処理を実行させると決定し、サブＣＰＵに処理を実行させてはいけない場合、メインＣＰＵに処理を実行させると決定するとよい。
【００１９】
これにより、メインＣＰＵが停止状態の場合、状況に応じては、サブＣＰＵに処理を実行させることができるので、消費電力の低減を図ることができる。
【００２０】
好ましくは、処理要求判定部は、メインＣＰＵが動作状態である場合、メインＣＰＵが処理を受付可能であるか否かを判断し、メインＣＰＵが処理を受付可能である場合、メインＣＰＵに処理を実行させると決定し、メインＣＰＵが処理を受付可能でない場合、他ＣＰＵ使用可否情報を参照して、サブＣＰＵに処理を実行させてもよいか否かを判断し、サブＣＰＵに処理を実行させてもよい場合、サブＣＰＵに処理を実行させると決定し、サブＣＰＵに処理を実行させてはいけない場合、メインＣＰＵに処理を実行させると決定するとよい。
【００２１】
これにより、メインＣＰＵが動作状態である場合においても、状況に応じては、サブＣＰＵを動作させることができるので、消費電力の低減を図ることができる。
【００２２】
好ましくは、処理要求判定部は、処理要求先指定部の指定ＣＰＵ情報によって指定されているＣＰＵがサブＣＰＵである場合、サブＣＰＵが停止状態であるかそれとも動作状態であるかを判断して、処理をメインＣＰＵに実行させるかそれともサブＣＰＵに実行させるかを決定するとよい。
【００２３】
これにより、サブＣＰＵの使用が指定されている状況において、サブＣＰＵが停止状態の場合、サブＣＰＵを使用するか、メインＣＰＵを使用するかが選択されることとなる。
【００２４】
好ましくは、処理要求先指定部は、他ＣＰＵ使用可否情報として、指定ＣＰＵ情報に定義されているＣＰＵ以外のＣＰＵを用いて処理が実行されてもよいか否かをさらに定義しており、処理要求判定部は、サブＣＰＵが停止状態の場合、他ＣＰＵ使用可否情報を参照して、メインＣＰＵに処理を実行させてよいか否かを判断し、メインＣＰＵに処理を実行させてもよい場合、メインＣＰＵに処理を実行させると決定し、メインＣＰＵに処理を実行させてはいけない場合、サブＣＰＵに処理を実行させると決定するとよい。
【００２５】
これにより、サブＣＰＵが停止状態の場合、状況によっては、メインＣＰＵが使用されることとなるので、応答速度が向上することとなる。
【００２６】
好ましくは、処理要求判定部は、サブＣＰＵが動作状態である場合、サブＣＰＵが処理を受付可能であるか否かを判断し、サブＣＰＵが処理を受付可能である場合、サブＣＰＵに処理を実行させると決定し、サブＣＰＵが処理を受付可能でない場合、他ＣＰＵ使用可否情報を参照して、メインＣＰＵに処理を実行させてもよいか否かを判断し、メインＣＰＵに処理を実行させてもよい場合、メインＣＰＵに処理を実行させると決定し、メインＣＰＵに処理を実行させてはいけない場合、サブＣＰＵに処理を実行させると決定するとよい。
【００２７】
これにより、サブＣＰＵが受付不可能である場合、状況によっては、メインＣＰＵが使用されることとなるので、並列処理が可能となり、応答速度が向上することとなる。
【００２８】
好ましくは、周辺装置での処理に対応させて、指定ＣＰＵ情報として、当該処理を実行して欲しい所望のＣＰＵを予め定義している処理要求先指定部をさらに備え、処理要求判定部は、メインＣＰＵが停止状態である場合、指定ＣＰＵ情報を参照して、サブＣＰＵに処理を実行させてもよいか否かを判断し、サブＣＰＵに処理を実行させてもよい場合、サブＣＰＵに処理を実行させ、サブＣＰＵに処理を実行させてはいけない場合、メインＣＰＵに処理を実行させるとよい。
【００２９】
これにより、メインＣＰＵが停止状態の場合、サブＣＰＵに処理を実行させてもよいか否かが判断されることとなる。
【００３０】
好ましくは、処理要求判定部は、メインＣＰＵが動作状態である場合、メインＣＰＵが処理を受付可能であるか否かを判断し、メインＣＰＵが処理を受付可能である場合、指定ＣＰＵ情報を参照して、メインＣＰＵに処理を実行させてもよいか否かを判断し、メインＣＰＵに処理を実行させてもよい場合、メインＣＰＵに処理を実行させ、メインＣＰＵに処理を実行させてはいけない場合、サブＣＰＵに処理を実行させ、メインＣＰＵが処理を受付可能でない場合、サブＣＰＵに処理を実行させるとよい。
【００３１】
これにより、メインＣＰＵが動作状態の場合、メインＣＰＵに処理を実行させてもよいか否かが判断されることとなる。
【００３２】
好ましくは、サブＣＰＵに処理を実行させている間に、メインＣＰＵに対する起動要求がなされれば、サブＣＰＵおよびメインＣＰＵは、サブＣＰＵで実行されていた処理をメインＣＰＵに引き継がせるための処理を実行するとよい。
【００３３】
これにより、サブＣＰＵでの処理をメインＣＰＵが引き継ぐことが可能となる。
【００３４】
本発明の第２の局面は、動作状態および停止状態の少なくとも２つの状態を取り得るメインＣＰＵと、メインＣＰＵよりも消費電力が少なく、動作状態および停止状態の少なくとも２つの状態を取り得るサブＣＰＵとを備える、内部または外部の周辺装置を制御するための情報処理装置での処理方法であって、メインＣＰＵが停止状態であるかそれとも動作状態であるかを判断し、メインＣＰＵが停止状態である場合、サブＣＰＵに周辺装置からの要求に関する処理を実行させることができるか否かを判断し、メインＣＰＵが動作状態である場合、メインＣＰＵに処理を実行させることができるか否かを判断し、判断結果に応じて、メインＣＰＵまたはサブＣＰＵに処理を実行させることを特徴とする。
【００３５】
本発明の第３の局面は、動作状態および停止状態の少なくとも２つの状態を取り得るメインＣＰＵと、メインＣＰＵよりも消費電力が少なく、動作状態および停止状態の少なくとも２つの状態を取り得るサブＣＰＵとを用いて、内部または外部の周辺装置を制御するための集積回路であって、メインＣＰＵが停止状態であるかそれとも動作状態であるかを判断し、メインＣＰＵが停止状態である場合、サブＣＰＵに周辺装置からの要求に関する処理を実行させることができるか否かを判断し、メインＣＰＵが動作状態である場合、メインＣＰＵに処理を実行させることができるか否かを判断し、判断結果に応じて、メインＣＰＵまたはサブＣＰＵに処理を実行させることを特徴とする。
【００３６】
本発明の第４の局面は、動作状態および停止状態の少なくとも２つの状態を取り得るメインＣＰＵと、メインＣＰＵよりも消費電力が少なく、動作状態および停止状態の少なくとも２つの状態を取り得るサブＣＰＵとに、内部または外部の周辺装置を制御させるためのコンピュータ装置で実行されるプログラムであって、メインＣＰＵが停止状態であるかそれとも動作状態であるかをコンピュータ装置に判断させ、メインＣＰＵが停止状態である場合、サブＣＰＵに周辺装置からの要求に関する処理を実行させることができるか否かをコンピュータ装置に判断させ、メインＣＰＵが動作状態である場合、メインＣＰＵに処理を実行させることができるか否かをコンピュータ装置に判断させ、判断結果に応じて、コンピュータ装置を用いて、メインＣＰＵまたはサブＣＰＵに処理を実行させることを特徴とする。
【発明の効果】
【００３７】
本発明の情報処理装置によれば、頻繁に発生するイベントのうち、システム全体の中で比較的処理量が少ない処理は、消費電力の小さなサブＣＰＵを用いて低周波数動作によって行われることとなるので、消費電力の大きなメインＣＰＵをより長時間停止状態とすることができる。また、メインＣＰＵが動作状態である間は、サブＣＰＵを補助的なＣＰＵとして利用することもできるので、情報処理装置のＣＰＵを効果的に使用し、かつ、消費電力を低減することが可能である。このように、本発明によれば、低消費電力化を実現しつつ、周辺装置からの処理要求をメインＣＰＵまたはサブＣＰＵのどちらに実行させるかが固定的でない情報処理装置が提供されることとなる。
【００３８】
本発明のこれらおよび他の目的、特徴、局面、効果は、添付図面と照合して、以下の詳細な説明から一層明らかになるであろう。
【発明を実施するための最良の形態】
【００３９】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る情報処理装置１００のハードウェア構成を示すブロック図である。図１において、情報処理装置１００は、メインＣＰＵ（Ｍ１）と、サブＣＰＵ（Ｍ２）と、アクセス調停回路（Ｍ３）と、割り込みコントローラ（Ｍ４）と、周辺装置（Ｍ５〜Ｍ７）と、ＲＡＭ（Ｍ８〜Ｍ９）とを備える。周辺装置（Ｍ５〜Ｍ７）およびＲＡＭ（Ｍ８〜Ｍ９）の数は、図１に示す例に限定されない。
【００４０】
メインＣＰＵ（Ｍ１）は、動作状態および停止状態の２つの状態を取り得るＣＰＵである。サブＣＰＵ（Ｍ２）は、メインＣＰＵ（Ｍ１）よりも消費電力が少なく、動作状態および停止状態の２つの状態を取り得るＣＰＵである。アクセス調停回路（Ｍ３）は、メインＣＰＵ（Ｍ１）およびサブＣＰＵ（Ｍ２）から、バスに対するアクセスが同時に発生した場合、競合調停を管理する。ＲＡＭ（Ｍ８，Ｍ９）は、設定によって、メインＣＰＵ（Ｍ１）およびサブＣＰＵ（Ｍ２）からのアクセスを制限することができる。周辺装置（Ｍ５〜Ｍ７）は、たとえばＨＤＤやタイマ、キーボード、ボタンスイッチ、液晶ディスプレイ、ＭＰＥＧデコーダ等であって、メインＣＰＵ（Ｍ１）およびサブＣＰＵ（Ｍ２）にバスを介して接続されている。図１では、周辺装置（Ｍ５〜Ｍ７）は、情報処理装置１００の内部に設けられた装置であるように示したが、情報処理装置１００の外部に設けられた装置であってもよい。
【００４１】
メインＣＰＵ（Ｍ１）およびサブＣＰＵ（Ｍ２）は、両方とも、周辺装置（Ｍ５〜Ｍ７）にアクセスすることができる。周辺装置（Ｍ５〜Ｍ７）は、ある処理を実行したい場合、割り込み信号を、割り込みコントローラ（Ｍ４）に送信する。割り込みコントローラ（Ｍ４）は、周辺装置（Ｍ５〜Ｍ７）からの割り込み信号を受け付けると、メインＣＰＵ（Ｍ１）の状態に基づいて、メインＣＰＵ（Ｍ１）が停止状態の場合はサブＣＰＵ（Ｍ２）に割込み信号を送出し、メインＣＰＵ（Ｍ１）が動作状態の場合はメインＣＰＵ（Ｍ１）に割り込み信号を送出する。なお、先述のように、メインＣＰＵ（Ｍ１）の状態には、動作状態と停止状態とがある。割り込みコントローラ（Ｍ４）は、メインＣＰＵ（Ｍ１）の状態が変化する度に、割り込みコントローラ（Ｍ４）内のレジスタ（メインＣＰＵ状態判定レジスタ）に状態を書き込む。
【００４２】
図２は、本発明の第１の実施形態に係る情報処理装置１００の機能的構成を示すブロック図である。図２において、情報処理装置１００は、メインＣＰＵ１と、サブＣＰＵ２と、処理要求判定部３と、周辺装置４１〜４３とを備える。メインＣＰＵ１は、図１におけるメインＣＰＵ（Ｍ１）に対応する。サブＣＰＵ２は、図１におけるサブＣＰＵ（Ｍ２）に対応する。処理要求判定部３は、図１における割り込みコントローラ（Ｍ４）に対応する。周辺装置４１〜４３は、図１における周辺装置（Ｍ５〜Ｍ７）に対応する。
【００４３】
メインＣＰＵ１は、割り込み判定部１１を含む。サブＣＰＵ２は、割り込み判定部２１を含む。処理要求判定部３は、メインＣＰＵ状態判定レジスタ３１と、割り込み要求レジスタ３２と、サブＣＰＵ状態判定レジスタ３３とを含む。
【００４４】
メインＣＰＵ１は、動作状態および停止状態の２つの状態を取り得る。メインＣＰＵ１は、停止状態であるか、動作状態であるかの通知をメインＣＰＵ状態判定レジスタ３１に送る。メインＣＰＵ状態判定レジスタ３１は、メインＣＰＵ１が停止状態であるか、それとも、動作状態であるかを記憶する。メインＣＰＵ状態判定レジスタ３１は、メインＣＰＵ１からの書き込み処理によってフラグの値を変更し、メインＣＰＵ１が停止状態に遷移する際に停止フラグ、動作状態に遷移する際に動作フラグを書き込む。
【００４５】
サブＣＰＵ２は、動作状態および停止状態の２つの状態を取り得る。サブＣＰＵ２は、停止状態であるか、動作状態であるかの通知をサブＣＰＵ状態判定レジスタ３３に送る。サブＣＰＵ状態判定レジスタ３３は、サブＣＰＵ２が停止状態であるか、それとも、動作状態であるかを記憶する。サブＣＰＵ状態判定レジスタ３３は、サブＣＰＵ２からの書き込み処理によってフラグの値を変更し、サブＣＰＵ２が停止状態に遷移する際に停止フラグ、動作状態に遷移する際に動作フラグを書き込む。
【００４６】
メインＣＰＵ１およびサブＣＰＵ２は、周辺装置４１〜４３を、それぞれ制御することができる。
【００４７】
メインＣＰＵ１およびサブＣＰＵ２は、必要な処理が終了すると自動的に停止状態になる。メインＣＰＵ１は、処理要求判定部３から割り込み信号が割り込み判定部１１に送出されると、動作状態となるための処理を行い、動作状態となると、メインＣＰＵ状態判定レジスタ３１に動作フラグを書き込む。
【００４８】
割り込み要求レジスタ３２は、周辺装置４１〜４３からの割り込み信号を受け付け、当該割り込み信号を記憶する。処理要求判定部３は、周辺装置４１〜４３から割り込み信号が送られてきた場合、メインＣＰＵ１またはサブＣＰＵ２のどちらに処理を実行させるか判断し、メインＣＰＵ１の割り込み判定部１１またはサブＣＰＵ２の割り込み判定部２１に、当該割り込み信号を送る。割り込み判定部１１は、処理要求判定部３からの割り込み信号を検出する。割り込み判定部２１は、処理要求判定部３からの割り込み信号を検出する。
【００４９】
図３は、第１の実施形態に係る情報処理装置１００の動作を示すフローチャートである。以下、図３を参照しながら、第１の実施形態に係る情報処理装置１００の動作について説明する。
【００５０】
周辺装置４１、４２、４３のいずれかによって割り込み信号が送出されると、処理要求判定部３は、割り込み信号が発生したことを、割り込み要求レジスタ３２における周辺装置４１、４２、４３に対応する箇所にフラグを立てることによって記憶する（ステップＳ１）。
【００５１】
次に、処理要求判定部３は、メインＣＰＵ状態判定レジスタ３１を参照し、メインＣＰＵ１が停止状態であるか否かを判断する（ステップＳ２）。
【００５２】
メインＣＰＵ１が停止状態である場合、処理要求判定部３は、サブＣＰＵ状態判定レジスタ３３を参照して、サブＣＰＵ２が停止状態であるか否かを判断する（ステップＳ３）。サブＣＰＵ２が停止状態である場合、処理要求判定部３は、サブＣＰＵ２を動作状態に遷移させ、サブＣＰＵ状態判定レジスタ３３にサブＣＰＵ２が動作状態である旨を記憶させ（ステップＳ４）、ステップＳ５の動作に進む。一方、サブＣＰＵ２が動作状態である場合、処理要求判定部３は、ステップＳ５の動作に進む。
【００５３】
ステップＳ５において、処理要求判定部３は、サブＣＰＵ２の割り込み判定部２１に割り込み信号を送出する（ステップＳ５）。それに応じて、サブＣＰＵ２は、送出された割り込み信号に対応した割り込み処理を実行し（ステップＳ６）、ステップＳ７の動作に進む。
【００５４】
ステップＳ７において、サブＣＰＵ２は、ステップＳ６の実行中に、新たな割り込みがサブＣＰＵ２に対して要求されているか否かを確認する。新たな割り込みが要求されている場合、サブＣＰＵ２は、ステップＳ６の動作に戻り、新たな割り込み処理を実行する。一方、新たな割り込みが要求されていない場合、サブＣＰＵ２は、停止状態に遷移する（ステップＳ８）。サブＣＰＵ２は、停止状態に遷移した旨をサブＣＰＵ状態判定レジスタ３３に通知する。それに応じて、サブＣＰＵ状態判定レジスタ３３は、サブＣＰＵ２が停止状態である旨を記憶する。
【００５５】
ステップＳ２において、メインＣＰＵ１が停止状態でない、すなわち動作状態であると判断した場合、処理要求判定部３は、メインＣＰＵ１の割り込み判定部１１に割り込み信号を送出する（ステップＳ９）。メインＣＰＵ１は、送出された割り込み信号に対応した割り込み処理を実行し（ステップＳ１０）、ステップＳ１１の動作に進む。
【００５６】
ステップＳ１１において、メインＣＰＵ１は、ステップＳ１０の実行中に、新たな割り込みがメインＣＰＵ１に対して要求されているか否かを確認する。新たな割り込みが要求されている場合、メインＣＰＵ１は、ステップＳ１０の動作に戻り、新たな割り込み処理を実行する。一方、新たな割り込みが要求されていない場合、メインＣＰＵ１は、停止状態に遷移する（ステップＳ１２）。メインＣＰＵ１は、停止状態に遷移した旨をメインＣＰＵ状態判定レジスタ３１に通知する。それに応じて、メインＣＰＵ状態判定レジスタ３１は、メインＣＰＵ１が停止状態である旨を記憶する。
【００５７】
このように、第１の実施形態によれば、情報処理装置１００は、周辺装置によって割り込み信号が送出されると、メインＣＰＵ１が停止状態であるか否かを判断する。メインＣＰＵ１が停止状態である場合、情報処理装置１００は、サブＣＰＵ２に割り込み処理を実行させることができると判断して、サブＣＰＵ２に割り込み処理を実行させる。したがって、メインＣＰＵ１が停止状態であれば、情報処理装置１００は、メインＣＰＵ１を立ち上げることなく割り込み処理を実行することができるので、メインＣＰＵ１を長時間停止状態にしておくことができ、消費電力を低減することができる。一方、メインＣＰＵ１が動作状態である場合、情報処理装置１００は、メインＣＰＵ１に割り込み処理を実行させることができると判断して、メインＣＰＵ１に割り込み処理を実行させる。したがって、割り込み処理の応答速度が向上することとなる。このように、本実施形態では、メインＣＰＵ１の動作状態に応じて、使用されるＣＰＵが選択されるので、消費電力の低減を実現しつつ、周辺機器からの要求を処理するＣＰＵが固定的に割り当てられていない情報処理装置１００が提供されることとなる。本実施形態では、周辺装置からの処理要求をどちらのＣＰＵで処理するかをＣＰＵの動作状態に応じて判断すればよいので、従来のように、各ＣＰＵと周辺装置とを直接結線して、対応関係を明確にしておく必要がない。よって、ハードウェア構成が異なる情報処理装置においても、本実施形態に係る処理要求判定部３を用いれば、低消費電力化を実現しつつ、周辺装置からの処理要求をメインＣＰＵまたはサブＣＰＵのどちらに実行させるかが固定的でない情報処理装置を提供することができる。
【００５８】
なお、第１の実施形態において、割り込み判定部１１、２１は、ＣＰＵ内にあってもよいし、処理要求判定部３内にあってもよい。また、メインＣＰＵ状態判定レジスタ３１およびサブＣＰＵ状態判定レジスタ３３も、ＣＰＵ内にあってもよいし、処理要求判定部３内にあってもよい。
【００５９】
なお、割り込み要求レジスタ３２における割り込み信号の記録方式は、上述のような記録方式以外であってもよい。
【００６０】
（第２の実施形態）
本発明の第２の実施形態において、情報処理装置のハードウェア構成は、第１の実施形態と同様であるので、図１を援用する。図４は、本発明の第２の実施形態に係る情報処理装置２００の機能的構成を示すブロック図である。図４において、情報処理装置２００は、メインＣＰＵ１と、サブＣＰＵ２ａと、処理要求判定部３ａと、周辺装置４１〜４３とを備える。図４において、第１の実施形態と同様の機能を有する部分については、同一の参照符号を付し、説明を省略する。処理要求判定部３ａは、メインＣＰＵ状態判定レジスタ３１と、割り込み要求レジスタ３２と、サブＣＰＵ状態判定レジスタ３３と、サブＣＰＵ処理要求完了判定レジスタ３４とを含む。
【００６１】
サブＣＰＵ処理要求完了判定レジスタ３４は、サブＣＰＵ２ａが割り込み禁止であるか否かを記憶する。サブＣＰＵ２ａは、割り込み要求を受け付けると、サブＣＰＵ２ａが割り込み処理中であることを表すフラグをサブＣＰＵ処理要求完了判定レジスタ３４に書き込む。サブＣＰＵ２ａは、サブＣＰＵ２ａが割り込み処理を終了すると、サブＣＰＵ２ａが割り込み処理を行っていないことを表すフラグをサブＣＰＵ処理要求完了判定レジスタ３４に書き込む。
【００６２】
図５は、本発明の第２の実施形態に係る情報処理装置２００の動作を示すフローチャートである。以下、図５を参照しながら、本発明の第２の実施形態に係る情報処理装置２００の動作について説明する。
【００６３】
周辺装置４１、４２、４３のいずれかによって割り込み信号が送出されると、処理要求判定部３ａは、割り込み信号が発生したことを、割り込み要求レジスタ３２における周辺装置４１、４２、４３に対応する箇所にフラグを立てることによって記憶する（ステップＳ２１）。
【００６４】
次に、処理要求判定部３ａは、メインＣＰＵ状態判定レジスタ３１を参照し、メインＣＰＵ１が停止状態であるか否かを判断する（ステップＳ２２）。
【００６５】
メインＣＰＵ１が動作状態の場合、処理要求判定部３ａは、ステップＳ３２の動作に進む。一方、メインＣＰＵ１が停止状態の場合、処理要求判定部３ａは、サブＣＰＵ状態判定レジスタ３３を参照し、サブＣＰＵ２ａが停止状態であるか否かを判断する（ステップＳ２３）。サブＣＰＵ２ａが停止状態である場合、処理要求判定部３ａは、サブＣＰＵ２ａを動作状態に遷移させ、サブＣＰＵ状態判定レジスタ３３を書換え（ステップＳ２４）、ステップＳ２５の動作に進む。一方、サブＣＰＵ２ａが動作状態である場合、処理要求判定部３ａは、ステップＳ２５の動作に進む。
【００６６】
ステップＳ２５において、処理要求判定部３ａは、サブＣＰＵ処理要求完了判定レジスタ３４を参照し、サブＣＰＵ２ａが割り込み要求を受付可能であるか否かの判断する。サブＣＰＵ２ａが割り込み要求を受付可能でない場合、すなわち、サブＣＰＵ２ａが割り込み要求を実行中である場合、処理要求判定部３ａは、ステップＳ２６の動作に進む。一方、サブＣＰＵ２ａが割り込み要求を受付可能である場合、すなわち、サブＣＰＵ２ａが割り込み要求を実行中でない場合、処理要求判定部３ａは、ステップＳ２７の動作に進む。
【００６７】
ステップＳ２６において、処理要求判定部３ａは、メインＣＰＵ１が停止状態であるか否かを判断する。メインＣＰＵ１が停止状態である場合、処理要求判定部３ａは、メインＣＰＵ１を動作状態に遷移させて、メインＣＰＵ状態判定レジスタを書換え（ステップＳ３１）、ステップＳ３２の動作に進む。一方、メインＣＰＵ１が動作状態である場合、処理要求判定部３ａは、ステップＳ３２の動作に進む。
【００６８】
ステップＳ２７において、処理要求判定部３ａは、割り込み判定部２１に割り込み信号を送出し、ステップＳ２８の動作に進む。
【００６９】
ステップＳ２８において、サブＣＰＵ２ａは、割り込み処理を実行する。ステップＳ２８における割り込み処理の開始時、サブＣＰＵ２ａは、サブＣＰＵ２ａが割り込み処理中であることを表すフラグをサブＣＰＵ処理要求完了判定レジスタ３４に書き込む。ステップＳ２８における割り込み処理の終了時、サブＣＰＵ２ａは、サブＣＰＵ２ａが割り込み処理を行っていないことを表すフラグをサブＣＰＵ処理要求完了判定レジスタ３４に書き込む。当該割り込み処理終了後、ステップＳ２８中に再び割り込みがサブＣＰＵ２ａに対して発生しているか否かを確認し（ステップＳ２９）、再び割り込み信号が割り込み判定部２１によって検出されたら、ステップＳ２８に戻り、なければ停止状態に遷移する（ステップＳ３０）。サブＣＰＵ２ａは、停止状態に遷移した旨をサブＣＰＵ状態判定レジスタ３３に通知する。それに応じて、サブＣＰＵ状態判定レジスタ３３は、サブＣＰＵ２ａが停止状態である旨を記憶する。
【００７０】
ステップＳ３２において、処理要求判定部３ａは、メインＣＰＵ１の割り込み判定部１１に割り込み信号を送出する。次に、メインＣＰＵ１は、送出された割り込み信号に対応した割り込み処理を実行し（ステップＳ３３）、ステップＳ３４の動作に進む。ステップＳ３４において、メインＣＰＵ１は、ステップＳ３３の実行中に、新たな割り込みがメインＣＰＵ１に対して要求されているか否かを確認する。新たな割り込みが要求されている場合、メインＣＰＵ１は、ステップＳ３３の動作に戻り、新たな割り込み処理を実行する。一方、新たな割り込みが要求されていない場合、メインＣＰＵ１は、停止状態に遷移する（ステップＳ３５）。メインＣＰＵ１は、停止状態に遷移した旨をメインＣＰＵ状態判定レジスタ３１に通知する。それに応じて、メインＣＰＵ状態判定レジスタ３１は、メインＣＰＵ１が停止状態である旨を記憶する。
【００７１】
このように、第２の実施形態によれば、情報処理装置２００は、周辺装置によって割り込み信号が送出されると、メインＣＰＵ１が停止状態であるか否かを判断する。メインＣＰＵ１が停止状態である場合、情報処理装置２００は、サブＣＰＵ２ａに割り込み処理を実行させることができるか否かを判断する。サブＣＰＵ２ａに割り込み処理を実行させることが可能な場合、情報処理装置２００は、割り込み処理をサブＣＰＵ２ａに実行させる。したがって、メインＣＰＵ１が停止状態であり、かつサブＣＰＵ２ａが割り込み処理を実行可能であれば、メインＣＰＵ１を立ち上げることなく割り込み処理を実行することができるので、メインＣＰＵ１を長時間停止状態にしておくことができ、消費電力を低減することができる。一方、メインＣＰＵ１が停止状態であり、かつサブＣＰＵ２ａが割り込み処理を実行不可能な場合、情報処理装置２００は、メインＣＰＵ１を動作状態に遷移させて、割り込み処理をメインＣＰＵ１に実行させる。また、メインＣＰＵ１が動作状態であれば、情報処理装置２００は、メインＣＰＵ１に割り込み処理を実行させることができると判断して、メインＣＰＵ１に割り込み処理を実行させる。したがって、割り込み処理の応答速度が向上することとなる。このように、本実施形態では、メインＣＰＵ１およびサブＣＰＵ２ａの動作状態に応じて、使用されるＣＰＵが選択されるので、消費電力の低減を実現しつつ、周辺機器からの要求を処理するＣＰＵが固定的に割り当てられていない情報処理装置２００が提供されることとなる。本実施形態では、周辺装置からの処理要求をどちらのＣＰＵで処理するかをＣＰＵの動作状態に応じて判断すればよいので、従来のように、各ＣＰＵと周辺装置とを直接結線して、対応関係を明確にしておく必要がない。よって、ハードウェア構成が異なる情報処理装置においても、本実施形態に係る処理要求判定部３ａを用いれば、低消費電力化を実現しつつ、周辺装置からの処理要求をメインＣＰＵまたはサブＣＰＵのどちらに実行させるかが固定的でない情報処理装置を提供することができる。
【００７２】
なお、第２の実施形態において、割り込み判定部１１、２１は、ＣＰＵ内にあってもよいし、処理要求判定部３ａ内にあってもよい。また、メインＣＰＵ状態判定レジスタ３１、サブＣＰＵ状態判定レジスタ３３も、ＣＰＵ内にあってもよいし、処理要求判定部３ａ内にあってもよい。サブＣＰＵ処理要求完了判定レジスタ３４も、ＣＰＵ内にあってもよいし、処理要求判定部３内にあってもよい。
【００７３】
なお、割り込み要求レジスタ３２における割り込み信号の記録方式は、図２に示すような記録方式以外であってもよい。
【００７４】
（第３の実施形態）
本発明の第３の実施形態において、情報処理装置のハードウェア構成は、第１の実施形態と同様であるので、図１を援用する。図６は、本発明の第３の実施形態に係る情報処理装置３００の機能的構成を示すブロック図である。図６において、情報処理装置３００は、メインＣＰＵ１ｂと、サブＣＰＵ２ｂと、処理要求判定部３ｂと、周辺装置４１〜４３と、メインＣＰＵ起動要求送出部４４と、記憶領域判定部５１と、記憶領域６１とを備える。図６において、第１および第２の実施形態と同様の機能を有する部分については、同一の参照符号を付し、詳しい説明を省略する。
【００７５】
記憶領域６１は、メインＣＰＵ１ｂおよびサブＣＰＵ２ｂが参照可能な記憶領域である。記憶領域６１は、図１におけるＲＡＭ（Ｍ８，Ｍ９）に対応する。
【００７６】
記憶領域判定部５１は、記憶領域６１がサブＣＰＵ２ｂによって使用されているか否かを記憶する。記憶領域判定部５１は、サブＣＰＵ２ｂによる記憶領域６１の使用状況を、Ｌｏｃｋ変数によって、管理している。記憶領域判定部５１は、図１におけるＲＡＭ（Ｍ８，Ｍ９）に対応する。記憶領域判定部５１は、記憶領域６１がサブＣＰＵ２ｂで参照されている間、参照中である旨のフラグをＬｏｃｋ変数内に記憶する。なお、当該フラグは、サブＣＰＵ２ｂが記憶領域６１を参照する際、サブＣＰＵ２ｂによって設定される。当該フラグが設定されている場合、Ｌｏｃｋ変数は、ロックされているものとする。当該フラグが設定されていない場合、Ｌｏｃｋ変数は解放されているとする。
【００７７】
メインＣＰＵ起動要求送出部４４は、メインＣＰＵ１ｂを動作状態にするための割り込み信号を送出する。
【００７８】
メインＣＰＵ１ｂおよびサブＣＰＵ２ｂは、記憶領域判定部５１および記憶領域６１にアクセス可能ある点を除いては、第１および第２の実施形態に係るメインＣＰＵ１およびサブＣＰＵ２，２ａと同様の機能を有する。
【００７９】
なお、記憶領域６１とそれに対応する記憶領域判定部５１とは、図６では、１組だけ示しているが、何組存在していてもかまわない。
【００８０】
図７Ａ〜図７Ｄは、本発明の第３の実施形態に係る情報処理装置３００の動作を示すフローチャートである。以下、図７Ａ〜図７Ｄを参照しながら、本発明の第３の実施形態に係る情報処理装置３００の動作について説明する。
【００８１】
周辺装置４１、４２、４３のいずれかによって割り込み信号が送出されると、処理要求判定部３ｂは、割り込み信号が発生したことを、割り込み要求レジスタ３２における周辺装置４１、４２、４３に対応する箇所にフラグを立てることによって記憶する（ステップＳ４１）。
【００８２】
次に、処理要求判定部３ｂは、メインＣＰＵ状態判定レジスタ３１を参照し、メインＣＰＵ１ｂが停止状態であるか否かを判断する（ステップＳ４２）。
【００８３】
メインＣＰＵ１ｂが動作状態の場合、処理要求判定部３ｂは、ステップＳ４９の動作に進む。一方、メインＣＰＵ１ｂが停止状態の場合、処理要求判定部３ｂは、サブＣＰＵ状態判定レジスタ３３を参照し、サブＣＰＵ２ｂが停止状態であるか否かを判断する（ステップＳ４３）。サブＣＰＵ２ｂが停止状態である場合、処理要求判定部３ｂは、サブＣＰＵ２ｂを動作状態に遷移させ、サブＣＰＵ状態判定レジスタ３３を書換え（ステップＳ４４）、ステップＳ４５の動作に進む。一方、サブＣＰＵ２ｂが動作状態である場合、処理要求判定部３ｂは、ステップＳ４５の動作に進む。
【００８４】
ステップＳ４５において、処理要求判定部３ｂは、サブＣＰＵ処理要求完了判定レジスタ３４を参照し、サブＣＰＵ２ｂが割り込み要求を受付可能であるか否かの判断する。サブＣＰＵ２ｂが割り込み要求を受付可能でない場合、処理要求判定部３ｂは、ステップＳ４７の動作に進む。一方、サブＣＰＵ２ｂが割り込み要求を受け付け可能である場合、処理要求判定部３ｂは、ステップＳ４６の動作に進む。
【００８５】
ステップＳ４７において、処理要求判定部３ｂは、メインＣＰＵ１ｂが停止状態であるか否かを判断する。メインＣＰＵ１ｂが停止状態である場合、処理要求判定部３ｂは、メインＣＰＵ１ｂを動作状態に遷移させて、メインＣＰＵ状態判定レジスタを書換え（ステップＳ４８）、ステップＳ４９の動作に進む。一方、メインＣＰＵ１ｂが動作状態である場合、処理要求判定部３ｂは、ステップＳ４９の動作に進む。
【００８６】
ステップＳ４６において、処理要求判定部３ｂは、サブＣＰＵ２ｂの割り込み判定部２１に割り込み信号を送出し、ステップＳ１００の動作に進む。
【００８７】
ステップＳ４９において、処理要求判定部３ｂは、メインＣＰＵ１ｂの割り込み判定部１１に割り込み信号を送出し、ステップＳ２００の動作に進む。
【００８８】
図７Ｂは、図７ＡのステップＳ１００における情報処理装置３００の動作を示すフローチャートである。以下、図７Ｂを参照しながら、図７ＡのステップＳ１００における情報処理装置３００の動作について説明する。
【００８９】
サブＣＰＵ２ｂは、割り込み信号の検出によってサブＣＰＵ割り込みルーチンを開始し（ステップＳ１０１）、サブＣＰＵ処理要求完了判定レジスタ３４に割り込み禁止フラグを書き込み（ステップＳ１０２）、割り込み処理を実行する（ステップＳ１０３）。次に、処理要求判定部３ｂは、サブＣＰＵ２ｂによる割り込み処理の実行中、メインＣＰＵ１ｂの起動要求がなされたか否かを判断する（ステップＳ１０４）。メインＣＰＵ１ｂの起動要求がなされた場合、処理要求判定部３ｂは、処理交代ルーチンを実行し（ステップＳ３００）、ステップＳ１０５の動作に進む。一方、メインＣＰＵ１ｂの起動要求がなされていない場合、処理要求判定部３ｂは、当該割り込み処理終了後、サブＣＰＵ処理要求完了判定レジスタ３４に割り込み許可フラグを書き込み（ステップＳ１０５）、ステップＳ１０６の動作に進む。
【００９０】
ステップＳ１０６において、処理要求判定部３ｂは、割り込み処理の間に、新たな割り込み要求がサブＣＰＵ２に対して発生しているか否かを判断する。新たな割り込み要求が発生している場合、処理要求判定部３ｂは、ステップＳ１０２の動作に戻る。一方、新たな割り込み要求が発生していない場合、処理要求判定部３ｂは、サブＣＰＵ２ｂを停止状態に遷移させ（ステップＳ１０７）、サブＣＰＵ割り込みルーチンを終了する（ステップＳ１０８）。
【００９１】
図１７Ｃは、ステップＳ２００における情報処理装置３００の動作を示すフローチャートである。メインＣＰＵ１ｂは、割り込み判定部１１によって割り込み信号を検出すると、メインＣＰＵ割り込みルーチンを開始する（ステップＳ２０１）。次に、メインＣＰＵ１ｂは、割り込み信号に対応した割り込み処理を実行する（ステップＳ２０２）。メインＣＰＵ１ｂは、ステップＳ２０２中に、メインＣＰＵ１ｂに対する新たな割り込み要求が発生しているか否かを判断する（ステップＳ２０３）。新たな割り込み要求が発生している場合、メインＣＰＵ１ｂは、ステップＳ２０２に戻り、当該新たな割り込み要求を処理する。一方、新たな割り込み要求が発生していない場合、メインＣＰＵ１ｂは、停止状態に遷移し、その旨をメインＣＰＵ状態判定レジスタに通知し（ステップＳ２０４）、メインＣＰＵ割り込みルーチンを終了する（ステップＳ２０５）。
【００９２】
図１７Ｄは、ステップＳ３００における情報処理装置３００の動作を示すフローチャートである。まず、サブＣＰＵ２ｂは、処理交代ルーチンが開始すると（ステップＳ３０１）、メインＣＰＵ起動要求送出部４４に対して、サブＣＰＵ２ｂが現在受け付けている割り込み処理の番号（以下、割り込み番号という）を送信する（ステップＳ３０２）。次に、メインＣＰＵ起動要求送出部４４は、処理要求判定部３ｂに対して、当該割り込み番号を含む割り込み信号を送出する（ステップＳ３０３）。次に、処理要求判定部３ｂは、メインＣＰＵ１ｂに、当該割り込み信号を送出する（ステップＳ３０４）。当該割り込み信号に応じて、メインＣＰＵ１ｂは、記憶領域判定部５１からＬｏｃｋ変数を取得できるまでビジーループし（ステップＳ３０５）、Ｌｏｃｋ変数を取得したら、サブＣＰＵ２ｂの続きの処理を開始し（ステップＳ３０６）、処理交代ルーチンを終了する（ステップＳ３０７）。
【００９３】
図８は、サブＣＰＵ２ｂからメインＣＰＵ１ｂへの処理の引き継ぎ方法の一例を詳しく示すシーケンス図である。まず、メインＣＰＵ１ｂは、停止状態であるとする（ステップＳ４０１）。サブＣＰＵ２ｂは、送られてくる割り込み信号（ステップＳ５０１）に応じて、割り込み処理を実行し（ステップＳ５０２）、記憶領域判定部５１からＬｏｃｋ変数を取得する（ステップＳ５０３）。次に、サブＣＰＵ２ｂは、メインＣＰＵ起動要求送出部４４に、メインＣＰＵ１ｂへの起動要求を送信する（ステップＳ５０４）。これに応じて、メインＣＰＵ起動要求送出部４４がメインＣＰＵ１ｂへの割り込み信号を送出し、メインＣＰＵ１ｂの起動割り込みが実行される（ステップＳ５０５）。
【００９４】
メインＣＰＵ１ｂは、当該割り込み信号に応じて、動作状態になるための起動処理を実行する（ステップＳ４０２）。メインＣＰＵ１ｂは、起動処理が完了したら、メインＣＰＵ状態判定レジスタ３１を動作状態に設定する。メインＣＰＵ状態判定レジスタ３１が動作状態になったら、処理要求判定部３ｂは、メインＣＰＵ１ｂに割り込み信号を送出する（ステップＳ６０１）と共に、サブＣＰＵ２ｂに対して起動完了トリガーとしてメインＣＰＵ起動完了割り込み信号を送出する（ステップＳ４０３）。
【００９５】
サブＣＰＵ２ｂは、起動完了トリガーに応じて、記憶領域６１に記憶されているキャッシュデータをフラッシュし（ステップＳ５０６）、レジスタ情報を記憶領域６１にストアする（ステップＳ５０７）。
【００９６】
Ｌｏｃｋ変数が解放されるまでの間、メインＣＰＵ１ｂは、Ｌｏｃｋ変数を取得するためのビジーループを実行している（ステップＳ４０４）。サブＣＰＵ２ｂによってＬｏｃｋ変数が解放されると（ステップＳ５０８）、メインＣＰＵ１ｂは、ビジーループから抜け、Ｌｏｃｋ変数を取得し（ステップＳ４０５）、サブＣＰＵ２ｂがストアしたレジスタ情報を記憶領域６１から取得して（ステップＳ４０６）、サブＣＰＵ２ｂで実行されていた割り込み処理の続きを開始する（ステップＳ４０７）。ここで、上記の例で説明したメインＣＰＵ１ｂの起動完了トリガーは、メインＣＰＵ状態判定レジスタ３１が変更されたことによって実現された。しかし、起動完了トリガーのためのイベントは、当該イベントをサブＣＰＵ２ｂに通知するための専用の周辺装置によって実行されてもよい。
【００９７】
このように、第３の実施形態によれば、情報処理装置３００は、周辺装置によって割り込み信号が送出されると、メインＣＰＵ１ｂが停止状態であるか否かを判断する。メインＣＰＵ１が停止状態である場合、情報処理装置３００は、サブＣＰＵ２ｂに割り込み処理を実行させることができるか否かを判断する。サブＣＰＵ２ｂに割り込み処理を実行させることが可能な場合、情報処理装置３００は、割り込み処理をサブＣＰＵ２ｂに実行させる。したがって、メインＣＰＵ１ｂが停止状態であり、かつサブＣＰＵ２ｂが割り込み処理を実行可能であれば、メインＣＰＵ１ｂを立ち上げることなく割り込み処理を実行することができるので、メインＣＰＵ１ｂを長時間停止状態にしておくことができ、消費電力を低減することができる。一方、メインＣＰＵ１ｂが停止状態であり、かつサブＣＰＵ２ｂが割り込み処理を実行不可能な場合、情報処理装置３００は、メインＣＰＵ１ｂを動作状態に遷移させて、割り込み処理をメインＣＰＵ１ｂに実行させる。また、メインＣＰＵ１ｂが動作状態であれば、情報処理装置３００は、メインＣＰＵ１ｂに割り込み処理を実行させる。したがって、割り込み処理の応答速度が向上することとなる。さらに、サブＣＰＵ２ｂによって割り込み処理が実行中の場合に、メインＣＰＵ１ｂに対する起動要求がなされたら、情報処理装置３００は、サブＣＰＵ２ｂでの処理の続きをメインＣＰＵ１ｂで実行するように動作する。したがって、割り込み処理の応答速度がさらに向上することとなる。このように、本実施形態では、メインＣＰＵ１ｂおよびサブＣＰＵ２ｂの動作状態に応じて、使用されるＣＰＵが選択されるので、消費電力の低減を実現しつつ、周辺機器からの要求を処理するＣＰＵが固定的に割り当てられていない情報処理装置３００が提供されることとなる。本実施形態では、周辺装置からの処理要求をどちらのＣＰＵで処理するかをＣＰＵの動作状態に応じて判断すればよいので、従来のように、各ＣＰＵと周辺装置とを直接結線して、対応関係を明確にしておく必要がない。よって、ハードウェア構成が異なる情報処理装置においても、本実施形態に係る処理要求判定部３ｂを用いれば、低消費電力化を実現しつつ、周辺装置からの処理要求をメインＣＰＵまたはサブＣＰＵのどちらに実行させるかが固定的でない情報処理装置を提供することができる。
【００９８】
なお、第３の実施形態において、割り込み判定部１１、２１は、ＣＰＵ内にあってもよいし、処理要求判定部３ｂ内にあってもよい。また、メインＣＰＵ状態判定レジスタ３１、サブＣＰＵ状態判定レジスタ３３も、ＣＰＵ内にあってもよいし、処理要求判定部３ｂ内にあってもよい。サブＣＰＵ処理要求完了判定レジスタ３４も、ＣＰＵ内にあってもよいし、処理要求判定部３ｂ内にあってもよい。
【００９９】
なお、割り込み要求レジスタ３２における割り込み信号の記録方式は、図６に示すような記録方式以外であってもよい。
【０１００】
（第４の実施形態）
本発明の第４の実施形態において、情報処理装置のハードウェア構成は、第１の実施形態と同様であるので、図１を援用する。図９は、本発明の第４の実施形態に係る情報処理装置４００の機能的構成を示すブロック図である。図９において、情報処理装置４００は、メインＣＰＵ１ｃと、サブＣＰＵ２ａと、処理要求判定部３ｃと、周辺装置４１〜４３とを備える。図９において、第２の実施形態と同様の機能を有する部分については、同一の参照符号を付し、説明を省略する。処理要求判定部３ｃは、メインＣＰＵ状態判定レジスタ３１と、メインＣＰＵ処理要求完了判定レジスタ３５と、割り込み要求レジスタ３２と、サブＣＰＵ状態判定レジスタ３３と、サブＣＰＵ処理要求完了判定レジスタ３４とを含む。
【０１０１】
メインＣＰＵ処理要求完了判定レジスタ３５は、メインＣＰＵ１ｃが割り込み禁止であるか否かを記憶する。メインＣＰＵ１ｃは、割り込み要求を受け付けると、メインＣＰＵ１ｃが割り込み処理中であることを表すフラグをメインＣＰＵ処理要求完了判定レジスタ３５に書き込む。メインＣＰＵ１ｃは、メインＣＰＵ１ｃが割り込み処理を終了すると、メインＣＰＵ１ｃが割り込み処理を行っていないことを表すフラグをメインＣＰＵ処理要求完了判定レジスタ３５に書き込む。このように、第４の実施形態に係る情報処理装置４００は、第２の実施形態に係る情報処理装置２００に、メインＣＰＵ処理要求完了判定レジスタ３５が加わった構成となっている。
【０１０２】
図１０は、本発明の第４の実施形態に係る情報処理装置４００の動作を示すフローチャートである。以下、図１０を参照しながら、本発明の第４の実施形態に係る情報処理装置４００の動作について説明する。
【０１０３】
情報処理装置４００の動作は、第２の実施形態に係る情報処理装置２００の動作と、重複する箇所が多い。図１０のフローチャートにおけるステップにおいて、第２の実施形態に係る情報処理装置２００と同様の動作を行うステップに関しては、図５と同様のステップ番号を付し、説明を省略する。
【０１０４】
図１０に示すフローチャートにおいて、ステップＳ２２からステップＳ３２へ遷移する途中に、ステップＳ５１の動作が加わった点が、第２の実施形態に係る図５に示すフローチャートと異なる。ステップＳ２２において、メインＣＰＵ１ｃが動作状態であると判断した場合、処理要求判定部３ｃは、ステップＳ５１の動作を実行する。ステップＳ５１において、処理要求判定部３ｃは、メインＣＰＵ処理要求完了判定レジスタ３５に記憶されているレジスタを参照して、メインＣＰＵ１ｃが割り込み受付可能であるか否かを判断する。メインＣＰＵ１ｃが割り込み受付可能でない場合、情報処理装置４００は、ステップＳ２３の動作に進む。一方、メインＣＰＵ１ｃが割り込み受付可能である場合、情報処理装置４００は、ステップＳ３２の動作に進む。その後の処理手順は、第２の実施形態と同様である。
【０１０５】
このように、第４の実施形態によれば、メインＣＰＵ１ｃが停止状態である場合、サブＣＰＵ２ａが割り込み処理を実行することとなるので、メインＣＰＵ１ｃを長時間停止状態にすることができる。一方、メインＣＰＵ１ｃが動作状態である場合、サブＣＰＵ２ａも割り込み処理を並列処理することができるので、第２の実施形態と比較して、情報処理装置４００の応答速度が向上することとなる。したがって、消費電力の低減を図りながらも、応答速度を向上させることができる情報処理装置が提供されることとなる。
【０１０６】
（第５の実施形態）
本発明の第５の実施形態において、情報処理装置のハードウェア構成は、第１の実施形態と同様であるので、図１を援用する。図１１は、本発明の第５の実施形態に係る情報処理装置５００の機能的構成を示すブロック図である。図１１において、情報処理装置５００は、メインＣＰＵ１ｃと、サブＣＰＵ２ａと、処理要求判定部３ｄと、周辺装置４１〜４３とを備える。図１１において、第４の実施形態と同様の機能を有する部分については、同一の参照符号を付し、説明を省略する。処理要求判定部３ｄは、メインＣＰＵ状態判定レジスタ３１と、メインＣＰＵ処理要求完了判定レジスタ３５と、割り込み要求レジスタ３２と、サブＣＰＵ状態判定レジスタ３３と、サブＣＰＵ処理要求完了判定レジスタ３４と、処理要求先指定部３６とを含む。
【０１０７】
処理要求先指定部３６は、割り込み番号に対応させて、メインＣＰＵ１ｃまたはサブＣＰＵ２ａのどちらに割り込み信号を処理要求判定部３ｄが送出すべきかに関する情報（以下、指定ＣＰＵ情報という）と、指定ＣＰＵ以外のＣＰＵを使用しても良いか否かに関する情報（他ＣＰＵ使用可否情報）とを記憶している。
【０１０８】
図１２は、処理要求先指定部３６に記憶されている情報の一例を示す図である。図１２では、たとえば、割り込み番号として、周辺装置４１からの割り込み処理が割り当てられている場合、処理要求判定部３ｄは、メインＣＰＵ１ｃに割り込み信号を送出すべきであることが定義されており、サブＣＰＵ２ａに割り込み信号を送出してもよい旨が定義されている。また、たとえば、割り込み番号として、周辺装置４２（または４３）からの割り込み処理が割り当てられている場合、処理要求判定部３ｄは、サブＣＰＵ２ａに割り込み死因号を送出すべきであることが定義されており、メインＣＰＵ１ｃに割り込み信号を送出してはいけない旨が定義されている。
【０１０９】
処理要求先指定部３６の定義内容は、たとえば、情報処理装置５００の起動時に定義される。
【０１１０】
図１３Ａ〜図１３Ｄは、本発明の第５の実施形態に係る情報処理装置５００の動作を示すフローチャートである。以下、図１３Ａ〜図１３Ｄを参照しながら、本発明の第５の実施形態に係る情報処理装置５００の動作について説明する。
【０１１１】
周辺装置４１、４２、４３のいずれかによって割り込み信号が送出されると、処理要求判定部３ｄは、割り込み信号が発生したことを、割り込み要求レジスタ３２における周辺装置４１、４２、４３に対応する箇所にフラグを立てることによって記憶する（ステップＳ６１）。
【０１１２】
次に、処理要求判定部３ｄは、処理要求先決定関数を実行して、割り込み処理を実行すべきＣＰＵを決定する（ステップＳ７００）。
【０１１３】
ステップＳ７００において、割り込み処理を実行するＣＰＵとしてサブＣＰＵ２ａが指定された場合、処理要求判定部３ｄは、サブＣＰＵ状態判定レジスタ３３を参照して、サブＣＰＵ２ａが停止状態であるか否かを判断する（ステップＳ６２）。サブＣＰＵ２ａが停止状態である場合、処理要求判定部３ｄは、サブＣＰＵ２ａを動作状態に遷移させて（ステップＳ６３）、ステップＳ６４の動作に進む。一方、サブＣＰＵ２ａが動作状態である場合、処理要求判定部３ｄは、ステップＳ６４の動作に進む。ステップＳ６４において、処理要求判定部３ｄは、サブＣＰＵ処理要求完了判定レジスタ３４を参照して、サブＣＰＵ２ａが割り込み処理を受付可能であるか否かを判断する。サブＣＰＵ２ａが割り込み処理を受付可能でない場合、処理要求判定部３ｄは、ステップＳ６４の動作に戻る。一方、サブＣＰＵ２ａが割り込み処理を受付可能である場合、処理要求判定部３ｄは、割り込み判定部２１に割り込み信号を送出して（ステップＳ６５）、サブＣＰＵ割り込み処理ルーチン（ステップＳ９００）を実行する。
【０１１４】
ステップＳ７００において、割り込み処理を実行するＣＰＵとしてメインＣＰＵ１ｃが指定された場合、処理要求判定部３ｄは、メインＣＰＵ状態判定レジスタ３１を参照して、メインＣＰＵ１ｃが停止状態であるか否かを判断する（ステップＳ６６）。メインＣＰＵ１ｃが停止状態である場合、処理要求判定部３ｄは、メインＣＰＵ１ｃを動作状態に遷移させて（ステップＳ６７）、ステップＳ６８の動作に進む。一方、メインＣＰＵ１ｃが動作状態である場合、処理要求判定部３ｄは、ステップＳ６８の動作に進む。ステップＳ６８において、処理要求判定部３ｄは、メインＣＰＵ処理要求完了判定レジスタ３５を参照して、メインＣＰＵ１ｃが割り込み処理を受付可能であるか否かを判断する。メインＣＰＵ１ｃが割り込み処理を受付可能でない場合、処理要求判定部３ｄは、ステップＳ６８の動作に戻る。一方、メインＣＰＵ１ｃが割り込み処理を受付可能である場合、処理要求判定部３ｄは、割り込み判定部１１に割り込み信号を送出して（ステップＳ６９）、メインＣＰＵ割り込み処理ルーチン（ステップＳ８００）を実行する。
【０１１５】
図１３Ｂは、図１３ＡにおけるステップＳ７００での処理の詳細を示すフローチャートである。以下、図１３Ｂを参照しながら、図１３ＡにおけるステップＳ７００での処理の詳細について説明する。
【０１１６】
処理要求関数が開始されると（ステップＳ７０１）、処理要求判定部３ｄは、処理要求先指定部３６の指定ＣＰＵ情報を参照して、当該割り込み信号に対して、どちらのＣＰＵが指定されているかを確認する（ステップＳ７０２）。
【０１１７】
指定されているＣＰＵがメインＣＰＵ１ｃの場合、処理要求判定部３ｄは、メインＣＰＵ状態判定レジスタ３１を参照して、メインＣＰＵ１ｃが停止状態であるか否かを判断する（ステップＳ７０７）。メインＣＰＵ１ｃが動作状態である場合、処理要求判定部３ｄは、ステップＳ７０９の動作に進む。一方、メインＣＰＵ１ｃが停止状態である場合、処理要求判定部３ｄは、処理要求先指定部３６の他ＣＰＵ使用可否情報を参照して、サブＣＰＵ２ａへ割り込み信号を送出してもよいか否かを判断する（ステップＳ７０８）。サブＣＰＵ２ａへ割り込み信号を送出してもよい場合、処理要求判定部３ｄは、処理要求先ＣＰＵとして、サブＣＰＵ２ａを選択し、処理要求先決定関数を終了する（ステップＳ７１１）。一方、サブＣＰＵ２ａへ割り込み信号を送出してはいけない場合、処理要求判定部３ｄは、ステップＳ７０９の動作に進む。
【０１１８】
ステップＳ７０９において、処理要求判定部３ｄは、メインＣＰＵ処理要求完了判定レジスタ３５を参照して、メインＣＰＵ１ｃが割り込み受付可能であるか否かを判断する。メインＣＰＵ１ｃが割り込み受付可能である場合、処理要求判定部３ｄは、処理要求先ＣＰＵとして、メインＣＰＵ１ｃを選択し、処理要求先決定関数を終了する（ステップＳ７１２）。一方、メインＣＰＵ１ｃが割り込み受付可能でない場合、処理要求判定部３ｄは、ステップＳ７０８と同様にして、サブＣＰＵ２ａへ割り込み信号を送出してもよいか否かを判断する（ステップＳ７１０）。サブＣＰＵ２ａへ割り込み信号を送出してもよい場合、処理要求判定部３ｄは、処理要求先ＣＰＵとして、サブＣＰＵ２ａを選択し、処理要求先決定関数を終了する（ステップＳ７１１）。一方、サブＣＰＵ２ａへ割り込み信号を送出してはいけない場合、処理要求判定部３ｄは、処理要求先ＣＰＵとして、メインＣＰＵ１ｃを選択し、処理要求先決定関数を終了する（ステップＳ７１２）。
【０１１９】
ステップＳ７０２において、指定されているＣＰＵがサブＣＰＵ２ａの場合、処理要求判定部３ｄは、サブＣＰＵ状態判定レジスタ３３を参照して、サブＣＰＵ２ａが停止状態であるか否かを判断する（ステップＳ７０３）。サブＣＰＵ２ａが動作状態である場合、処理要求判定部３ｄは、ステップＳ７０５の動作に進む。一方、サブＣＰＵ２ａが停止状態である場合、処理要求判定部３ｄは、処理要求先指定部３６の他ＣＰＵ使用可否情報を参照して、メインＣＰＵ１ｃへ割り込み信号を送出してもよいか否かを判断する（ステップＳ７０４）。メインＣＰＵ１ｃへ割り込み信号を送出してもよい場合、処理要求判定部３ｄは、処理要求先ＣＰＵとして、メインＣＰＵ１ｃを選択し、処理要求先決定関数を終了する（ステップＳ７１２）。一方、メインＣＰＵ１ｃへ割り込み信号を送出してはいけない場合、処理要求判定部３ｄは、ステップＳ７０５の動作に進む。
【０１２０】
ステップＳ７０５において、処理要求判定部３ｄは、サブＣＰＵ処理要求完了判定レジスタ３４を参照して、サブＣＰＵ２ａが割り込み受付可能であるか否かを判断する。サブＣＰＵ２ａが割り込み受付可能である場合、処理要求判定部３ｄは、処理要求先ＣＰＵとして、サブＣＰＵ２ａを選択し、処理要求先決定関数を終了する（ステップＳ７１１）。一方、サブＣＰＵ２ａが割り込み受付可能でない場合、処理要求判定部３ｄは、ステップＳ７０４と同様にして、メインＣＰＵ１ｃへ割り込み信号を送出してもよいか否かを判断する（ステップＳ７０６）。メインＣＰＵ１ｃへ割り込み信号を送出してもよい場合、処理要求判定部３ｄは、処理要求先ＣＰＵとして、メインＣＰＵ１ｃを選択し、処理要求先決定関数を終了する（ステップＳ７１２）。一方、メインＣＰＵ１ｃへ割り込み信号を送出してはいけない場合、処理要求判定部３ｄは、処理要求先ＣＰＵとして、サブＣＰＵ２ａを選択し、処理要求先決定関数を終了する（ステップＳ７１１）。
【０１２１】
図１３Ｃは、図１３ＡにおけるステップＳ８００でのメインＣＰＵ割り込み処理ルーチンの詳細を示すフローチャートである。以下、図１３Ｃを参照しながら、図１３ＡにおけるステップＳ８００でのメインＣＰＵ割り込み処理ルーチンの詳細について説明する。
【０１２２】
メインＣＰＵ割り込み処理ルーチンが開始され、割り込み判定部１１によって割り込み信号が検出されると（ステップＳ８０１）、メインＣＰＵ１ｃは、メインＣＰＵ処理要求完了判定レジスタ３５に割り込み禁止フラグを書き込み（ステップＳ８０２）、割り込み番号に対応した割り込み処理を実行する（ステップＳ８０３）。割り込み処理が終了したら、メインＣＰＵ１ｃは、メインＣＰＵ処理要求完了判定レジスタ３５に割り込み許可フラグを書き込む（ステップＳ８０４）。次に、メインＣＰＵ１ｃは、割り込み判定部１１を参照して、割り込み要求があるか否かを判断する（ステップＳ８０５）。割り込み要求がある場合、メインＣＰＵ１ｃは、ステップＳ８０２の動作に戻る。一方、割り込み要求がない場合、メインＣＰＵ１ｃは、停止状態に遷移し（ステップＳ８０６）、メインＣＰＵ割り込み処理ルーチンを終了する（ステップＳ８０７）。
【０１２３】
図１３Ｄは、図１３ＡにおけるステップＳ９００でのサブＣＰＵ割り込み処理ルーチンの詳細を示すフローチャートである。以下、図１３Ｄを参照しながら、図１３ＡにおけるステップＳ９００でのサブＣＰＵ割り込み処理ルーチンの詳細について説明する。
【０１２４】
サブＣＰＵ割り込み処理ルーチンが開始され、割り込み判定部２１によって割り込み信号が検出されると（ステップＳ９０１）、サブＣＰＵ２ａは、サブＣＰＵ処理要求完了判定レジスタ３４に割り込み禁止フラグを書き込み（ステップＳ９０２）、割り込み番号に対応した割り込み処理を実行する（ステップＳ９０３）。割り込み処理が終了したら、サブＣＰＵ２ａは、サブＣＰＵ処理要求完了判定レジスタ３４に割り込み許可フラグを書き込む（ステップＳ９０４）。次に、サブＣＰＵ２ａは、割り込み判定部２１を参照して、割り込み要求があるか否かを判断する（ステップＳ９０５）。割り込み要求がある場合、サブＣＰＵ２ａは、ステップＳ９０２の動作に戻る。一方、割り込み要求がない場合、サブＣＰＵ２ａは、停止状態に遷移し（ステップＳ９０６）、サブＣＰＵ割り込み処理ルーチンを終了する（ステップＳ９０７）。
【０１２５】
このように、第５の実施形態によれば、割り込み単位で、どちらのＣＰＵに処理させるのかを柔軟に決定することができ、処理量が比較的少なく短周期で実行されるイベントはサブＣＰＵ２ａへ、それ以外はメインＣＰＵ１ｃへなどという設定が可能になるので、消費電力を削減することが可能である。また、第５の実施形態において、処理要求先指定部３６によって、メインＣＰＵ１ｃが指定されている場合、情報処理装置５００は、まず、メインＣＰＵ１ｃが停止状態であるか否かを判断する（図１３ＢのステップＳ７０７参照）。メインＣＰＵ１ｃが停止状態である場合、情報処理装置５００は、サブＣＰＵ２ａに割り込み処理を実行させることができるか否かを判断する（図１３ＢのステップＳ７０８参照）。サブＣＰＵ２ａに割り込み処理を実行させることが可能な場合、情報処理装置５００は、割り込み処理をサブＣＰＵ２ａに実行させる。したがって、メインＣＰＵ１ｃが停止状態であり、かつサブＣＰＵ２ａが割り込み処理を実行可能であれば、メインＣＰＵ１ｃを立ち上げることなく割り込み処理を実行することができるので、メインＣＰＵ１ｃを長時間停止状態にしておくことができ、消費電力を低減することができる。一方、メインＣＰＵ１ｃが動作状態である場合、処理要求判定部３ｄは、メインＣＰＵ１ｃによって割り込み処理を実行することができるか否かを判断する。メインＣＰＵ１ｃによって割り込み処理を実行することができる場合、割り込み処理は、メインＣＰＵ１ｃによって実行されるので、応答速度が向上することとなる。
【０１２６】
なお、第５の実施形態において、割り込み判定部１１、２１は、ＣＰＵ内にあってもよいし、処理要求判定部３ｄ内にあってもよい。また、メインＣＰＵ状態判定レジスタ３１、サブＣＰＵ状態判定レジスタ３３も、ＣＰＵ内にあってもよいし、処理要求判定部３ｄ内にあってもよい。サブＣＰＵ処理要求完了判定レジスタ３４も、ＣＰＵ内にあってもよいし、処理要求判定部３ｄ内にあってもよい。
【０１２７】
なお、割り込み要求レジスタ３２における割り込み信号の記録方式は、図１１に示すような記録方式以外であってもよい。
【０１２８】
なお、第５の実施形態では、割り込み受付可能になるまでの処理として、図１３ＡのステップＳ６４およびＳ６８に示すように、ビジーループを用いることとした。しかし、処理要求判定部３ｄは、割り込み処理をキューのようなデータ構造に時系列で並べて蓄積しておき、割り込み判定部１１および２１を監視しながら、以降の割り込み信号を送出してもよい。
【０１２９】
なお、第５の実施形態においても、第３の実施形態と同様、サブＣＰＵ２ａでの処理をメインＣＰＵ１ｃへ引き継ぐような機構を導入することも可能である。この実現可能方法は、第３の実施形態の図７Ｂ〜図７Ｄ、および図８より明らかである。
【０１３０】
なお、図１３Ｂに示すフローチャートにおいて、ステップＳ７０９、Ｓ７０３、またはＳ７０５の少なくとも１つの処理は、なくてもよい。
【０１３１】
（第６の実施形態）
本発明の第６の実施形態に係る情報処理装置の構成要素は、第５の実施形態と同様であるので、図１、図１１および図１２を援用することとする。
【０１３２】
図１４は、本発明の第６の実施形態に係る情報処理装置の動作を示すフローチャートである。以下、図１４を参照しながら、本発明の第６の実施形態に係る情報処理装置の動作について説明する。
【０１３３】
周辺装置４１、４２、４３のいずれかによって割り込み信号が送出されると、処理要求判定部３ｄは、割り込み信号が発生したことを、割り込み要求レジスタ３２における周辺装置４１、４２、４３に対応する箇所にフラグを立てることによって記憶する（ステップＳ７１）。
【０１３４】
次に、処理要求判定部３ｄは、メインＣＰＵ状態判定レジスタ３１を参照して、メインＣＰＵ１が停止状態であるか否かを判断する（ステップＳ７２）。
【０１３５】
ステップＳ７２において、メインＣＰＵ１が動作状態であると判断した場合、処理要求判定部３ｄは、メインＣＰＵ処理要求完了判定レジスタ３５を参照して、メインＣＰＵ１ｃが割り込み受付可能であるか否かを判断する（ステップＳ７３）。割り込み受付可能である場合、処理要求判定部３ｄは、処理要求先指定部３６に定義されているテーブルにおける指定ＣＰＵ情報を参照して、指定ＣＰＵとして、メインＣＰＵ１ｃが指定されているか否かに基づいて、メインＣＰＵ１ｃに割り込み信号を送出してもよいか否かを判断する（ステップＳ７４）。ここで、処理要求先指定部３６に定義されているテーブルの例として、図１２の他、図１５に示すように、割り込み番号に対応して、指定ＣＰＵ情報のみが定義されているテーブルが用いられてもよい。
【０１３６】
ステップＳ７４において、メインＣＰＵ１ｃに割り込み信号を送出してはいけない場合、処理要求判定部３ｄは、ステップＳ７５の動作に進む。一方、メインＣＰＵ１ｃに割り込み信号を送出してもよい場合、処理要求判定部３ｄは、ステップＳ８１の動作に進む。
【０１３７】
ステップＳ７５において、処理要求判定部３ｄは、サブＣＰＵ状態判定レジスタ３３を参照して、サブＣＰＵ２ａが停止状態であるか否かを判断する。
【０１３８】
サブＣＰＵ２ａが停止状態である場合、処理要求判定部３ｄは、サブＣＰＵ２ａを動作状態に遷移させ（ステップＳ７６）、ステップＳ７７の動作に進む。一方、サブＣＰＵ２ａが停止状態でない場合、処理要求判定部３ｄは、ステップＳ７７の動作に進む。
【０１３９】
ステップＳ７７において、処理要求判定部３ｄは、サブＣＰＵ処理要求完了判定レジスタ３４を参照して、サブＣＰＵ２ａが割り込み信号を受付可能であるか否かを判断する。
【０１４０】
サブＣＰＵ２ａが割り込み受付可能でない場合、処理要求判定部３ｄは、ステップＳ７７の動作に戻り、割り込み受付不可能と判断されている間、ビジーループを行い、割り込み受付可能になるまでウェイトする。サブＣＰＵ２ａが割り込み信号受付可能である場合、処理要求判定部３ｄは、割り込み判定部２１に割り込み信号を送出し（ステップＳ７８）、サブＣＰＵ割り込み処理ルーチンを実行する（ステップＳ９００）。サブＣＰＵ割り込み処理ルーチンは、第５の実施形態と同様であるので、図１３Ｄを援用して、説明を省略する。
【０１４１】
ステップＳ７２において、メインＣＰＵ１ｃが停止状態であると判断した場合、処理要求判定部３ｄは、処理要求先指定部３６に定義されているテーブルの指定ＣＰＵ情報を参照して、サブＣＰＵ２ａに割り込み信号を送出してもよいか否かを判断する（ステップＳ７９）。サブＣＰＵ２ａに割り込み信号を送出してもよい場合、処理要求判定部３ｄは、ステップＳ７５の動作に進む。一方、サブＣＰＵ２ａに割り込み信号を送出してはいけないと判断した場合、処理要求判定部３ｄは、メインＣＰＵ１ｃを動作状態に遷移させ（ステップＳ８０）、ステップＳ８１の動作に進む。
【０１４２】
ステップＳ８１において、処理要求判定部３ｄは、メインＣＰＵ処理要求完了判定レジスタ３５を参照して、メインＣＰＵ１ｃが割り込み受付可能であるか否かを判断する。メインＣＰＵ１ｃが割り込み受付可能でない場合、処理要求判定部３ｄは、ステップＳ８１の動作に戻り、割り込み受付可能になるまでビジーウェイトを行う。割り込み受付可能である場合、処理要求判定部３ｄは、割り込み判定部１１に割り込み信号を送出し（ステップＳ８２）、メインＣＰＵ割り込み処理ルーチンを実行する（ステップＳ８００）。メインＣＰＵ割り込み処理ルーチンは、第５の実施形態と同様であるので、図１３Ｃを援用して、説明を省略する。
【０１４３】
このように、第６の実施形態によれば、割り込み単位で、どちらのＣＰＵに処理させるのかを柔軟に決定することができ、処理量が比較的少なく短周期で実行されるイベントはサブＣＰＵ２ａへ、それ以外はメインＣＰＵ１ｃへなどという設定が可能になるのでで、消費電力を削減することが可能である。また、第６の実施形態において、情報処理装置は、まず、メインＣＰＵ１ｃが停止状態であるか否かを判断する（図１４のステップＳ７２参照）。メインＣＰＵ１ｃが停止状態である場合で、サブＣＰＵ２ａに割り込み処理を実行させることができるか否かを判断する（図１４のステップＳ７９参照）。サブＣＰＵ２ａに割り込み処理を実行させることが可能な場合、情報処理装置は、割り込み処理をサブＣＰＵ２ａに実行させる。したがって、メインＣＰＵ１ｃが停止状態であり、かつサブＣＰＵ２ａが割り込み処理を実行可能であれば、メインＣＰＵ１ｃを立ち上げることなく割り込み処理を実行することができるので、メインＣＰＵ１ｃを長時間停止状態にしておくことができ、消費電力を低減することができる。一方、メインＣＰＵ１ｃが動作状態である場合、メインＣＰＵ１ｃに割り込み処理を実行させることができるか否かが判断される（図１４のステップＳ７４）。メインＣＰＵ１ｃに割り込み処理を実行させることが可能な場合、情報処理装置は、割り込み処理をメインＣＰＵ１ａに実行させる。したがって、応答速度が向上する。
【０１４４】
なお、第６の実施形態において、割り込み判定部１１、２１は、ＣＰＵ内にあってもよいし、処理要求判定部３ｄ内にあってもよい。また、メインＣＰＵ状態判定レジスタ３１、サブＣＰＵ状態判定レジスタ３３も、ＣＰＵ内にあってもよいし、処理要求判定部３ｄ内にあってもよい。サブＣＰＵ処理要求完了判定レジスタ３４も、ＣＰＵ内にあってもよいし、処理要求判定部３ｄ内にあってもよい。
【０１４５】
なお、割り込み要求レジスタ３２における割り込み信号の記録方式は、図１１に示すような記録方式以外であってもよい。
【０１４６】
なお、第６の実施形態では、割り込み受付可能になるまでの処理として、図１４のステップＳ７７およびＳ８１に示すように、ビジーループを用いることとした。しかし、処理要求判定部３ｄは、割り込み処理をキューのようなデータ構造に時系列で並べて蓄積しておき、割り込み判定部１１および２１を監視しながら、以降の割り込み信号を送出してもよい。
【０１４７】
なお、第６の実施形態においても、第３の実施形態と同様、サブＣＰＵ２ａでの処理をメインＣＰＵ１ｃへ引き継ぐような機構を導入することも可能である。この実現可能方法は、第３の実施形態の図７Ｂ〜図７Ｄ、および図８より明らかである。
【０１４８】
なお、割り込みコントローラ（Ｍ４）をマイコン等の汎用のコンピュータ装置として、記憶装置に格納されたプログラムを当該コンピュータ装置に読み込んで、上記実施形態に示した動作を当該コンピュータ装置に実行させて、処理要求判定部を実現してもよい。当該プログラムは、予め情報処理装置内に内蔵されていてもよいし、後から、情報処理装置にインストールされてもよい。
【０１４９】
なお、本発明の情報処理装置を実現するために必要な機能ブロック（たとえば、処理要求判定部）は、集積回路であるＬＳＩとして実現されてもよい。これらの機能ブロックは、１チップ化されていてもよいし、一部又は全てを含むように１チップ化されていてもよい。ここでは、ＬＳＩといったが、集積度の違いによっては、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと称呼されることもある。また、集積回路化の手法は、ＬＳＩに限られるものではなく、専用回路または汎用プロセッサで集積回路化を行ってもよい。また、ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを用いてもよい。さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックを集積化してもよい。バイオ技術の適応等が可能性としてあり得る。
【０１５０】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【産業上の利用可能性】
【０１５１】
本発明に係る情報処理装置は、高性能な消費電力の大きいメインＣＰＵを頻繁に動作状態にさせることなく、低消費電力なサブＣＰＵを用いて処理を行うことが可能となる。したがって、本発明に係る情報処置装置は、バッテリー駆動する移動体端末装置などで有用である。また、本発明に係る情報処理装置は、移動体端末装置のみならず、電力削減効果を期待するような各種家電機器、情報処理機器、産業機器などでも利用可能である。
【図面の簡単な説明】
【０１５２】
【図１】本発明の第１の実施形態に係る情報処理装置１００のハードウェア構成を示すブロック図
【図２】本発明の第１の実施形態に係る情報処理装置１００の機能的構成を示すブロック図
【図３】第１の実施形態に係る情報処理装置１００の動作を示すフローチャート
【図４】本発明の第２の実施形態に係る情報処理装置２００の機能的構成を示すブロック図
【図５】本発明の第２の実施形態に係る情報処理装置２００の動作を示すフローチャート
【図６】本発明の第３の実施形態に係る情報処理装置３００の機能的構成を示すブロック図
【図７Ａ】本発明の第３の実施形態に係る情報処理装置３００の動作を示すフローチャート
【図７Ｂ】本発明の第３の実施形態に係る情報処理装置３００の動作を示すフローチャート
【図７Ｃ】本発明の第３の実施形態に係る情報処理装置３００の動作を示すフローチャート
【図７Ｄ】本発明の第３の実施形態に係る情報処理装置３００の動作を示すフローチャート
【図８】サブＣＰＵ２ｂからメインＣＰＵ１ｂへの処理の引き継ぎ方法の一例を詳しく示すシーケンス図
【図９】本発明の第４の実施形態に係る情報処理装置４００の機能的構成を示すブロック図
【図１０】本発明の第４の実施形態に係る情報処理装置４００の動作を示すフローチャート
【図１１】本発明の第５の実施形態に係る情報処理装置５００の機能的構成を示すブロック図
【図１２】処理要求先指定部３６に記憶されている情報の一例を示す図
【図１３Ａ】本発明の第５の実施形態に係る情報処理装置５００の動作を示すフローチャート
【図１３Ｂ】本発明の第５の実施形態に係る情報処理装置５００の動作を示すフローチャート
【図１３Ｃ】本発明の第５の実施形態に係る情報処理装置５００の動作を示すフローチャート
【図１３Ｄ】本発明の第５の実施形態に係る情報処理装置５００の動作を示すフローチャート
【図１４】本発明の第６の実施形態に係る情報処理装置の動作を示すフローチャート
【図１５】処理要求先指定部３６に定義されているテーブルの他の例を示す図
【符号の説明】
【０１５３】
１００，２００，３００，４００，５００  情報処理装置
Ｍ１，１，１ｂ，１ｃ  メインＣＰＵ
Ｍ２，２，２ａ，２ｂ  サブＣＰＵ
Ｍ３  アクセス調停回路
Ｍ４  割り込みコントローラ
Ｍ５〜Ｍ７，４１〜４３  周辺装置
Ｍ８，Ｍ９  ＲＡＭ
１１  割り込み判定部
２１  割り込み判定部
３，３ａ  処理要求判定部
３１  メインＣＰＵ状態判定レジスタ
３２  割り込み要求レジスタ
３３  サブＣＰＵ状態判定レジスタ
３４  サブＣＰＵ処理要求完了判定レジスタ
３５  メインＣＰＵ処理要求完了判定レジスタ
３６  処理要求先指定部
４４  メインＣＰＵ起動要求送出部
５１  記憶領域判定部
６１  記憶領域
【図１】
0004607884.tif 000002
【図２】
0004607884.tif 000003
【図３】
0004607884.tif 000004
【図４】
0004607884.tif 000005
【図５】
0004607884.tif 000006
【図６】
0004607884.tif 000007
【図７Ａ】
0004607884.tif 000008
【図７Ｂ】
0004607884.tif 000009
【図７Ｃ】
0004607884.tif 000010
【図７Ｄ】
0004607884.tif 000011
【図８】
0004607884.tif 000012
【図９】
0004607884.tif 000013
【図１０】
0004607884.tif 000014
【図１１】
0004607884.tif 000015
【図１２】
0004607884.tif 000016
【図１３Ａ】
0004607884.tif 000017
【図１３Ｂ】
0004607884.tif 000018
【図１３Ｃ】
0004607884.tif 000019
【図１３Ｄ】
0004607884.tif 000020
【図１４】
0004607884.tif 000021
【図１５】
0004607884.tif 000022