本発明は、アクセス競合を監視する情報処理システムに関する。
近年、1つのシステム内に、複数のコアを有するマルチコアプロセッサシステムの形態を採用する情報処理システムが増加している。マルチコアプロセッサシステムにおけるバスには、複数のコアからによる様々なパターンのデータが流れる。具体的には、CPU(Central Processing Unit)、DMA(Direct Memory Access)コントローラ、DSP(Digital Signal Processor)等から発生したデータがバスに流れる。CPUからメモリに対するアクセスは、1サイクルで転送するデータ量である転送単位が小さいアクセスとなり、DMAコントローラ、DSPなどの高速転送デバイスからメモリに対するアクセスは、転送単位が大きいアクセスとなる。
このように、転送単位にばらつきのあるアクセスに対して、情報処理システム設計時には、アクセスの総量がオーバーフローしないように設計される。しかし、入出力対象のI/Oが1ポート、またはポート数が限られている場合に、そのポートでアクセス競合が発生することがあった。
アクセス競合を解消する技術として、バス幅、クロック周波数を大きくし、さらなる高速化を行って、アクセス競合を解消するという技術が存在する(以下、「従来技術1」と称する。)。また、他の技術として、メモリの入出力を制御するメモリコントローラがアクセス要求を一時的に保留するキューイングシステムを有することで、アクセス競合の影響を最小化する技術が存在する(以下、「従来技術2」と称する。)。
また、他のアクセス競合を解消する技術として、メモリコントローラがキャッシュミスを監視し、キャッシュミス回数が閾値以上となったときに、DMAのサイクルスチールモードにおける転送単位を小さくする技術が開示されている(たとえば、下記特許文献1を参照。)。
しかしながら、上述した従来技術において、従来技術1にかかる技術では、アクセス競合発生時以外であっても処理能力が増大するために、消費電力が増大し利用効率が下がるという問題があった。また、従来技術2にかかる技術を適用しても、アクセス要求に対する応答の遅延が発生するという問題があった。
また、特許文献1にかかる技術では、CPU、DMAコントローラ、DSP等からのアクセスについて、どのアクセスがCPUからのアクセスであるか特定することが困難であるという問題があった。また、特許文献1にかかる技術にて、リアルタイム制約がある処理を実行中の場合に、DMAコントローラの転送単位を小さくすると、DMAコントローラの転送効率が低下し、リアルタイム制約に違反してしまう可能性が高くなるという問題があった。
本発明は、上述した従来技術による問題点を解消するため、消費電力を抑えつつ、アクセス競合を解消できる情報処理システムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示の情報処理システムは、バスに接続されるCPUと、バスに接続されるデバイスと、CPUまたはデバイスにアクセスされるメモリと、消費電力モードを設定するパワーモード制御回路と、を含み、パワーモード制御回路は、CPU内のキャッシュメモリのキャッシュヒット若しくはキャッシュミスを示す第1情報とデバイスの活性化状態若しくは非活性化状態を示す第2情報とに基づいて、消費電力モードを設定する。
本情報処理システムによれば、メモリアクセス競合時にはオーバークロックに設定しアクセス競合を回避し、アクセスがないときにはクロック供給を停止させ消費電力を削減できるという効果を奏する。
実施の形態にかかる情報処理システム100のハードウェアを示すブロック図である。
生成部123と設定部118の動作を示す説明図である。
情報処理システム100が状態1の場合の動作を示す説明図である。
情報処理システム100が状態2の場合の動作を示す説明図である。
情報処理システム100が状態3の場合の動作を示す説明図である。
情報処理システム100が状態4の場合の動作を示す説明図である。
情報処理システム100が状態5−1の場合の動作を示す説明図である。
情報処理システム100が状態5−2の場合の動作を示す説明図である。
以下に添付図面を参照して、開示の情報処理システムの好適な実施の形態を詳細に説明する。
(情報処理システム100のハードウェア)
図1は、実施の形態にかかる情報処理システム100のハードウェアを示すブロック図である。図1において、情報処理システム100は、CPU101と、CPU102と、DMAコントローラ103と、DMAコントローラ104とを含む。さらに、情報処理システム100は、メモリコントローラ105と、共用リソース106と、パワーモード制御回路(以下、PMU(Power Management Unit)と呼称する)107と、バスコントローラ108と、を含む。また、各部はバス109によってそれぞれ接続されている。また、ユーザやその他の機器との入出力装置として情報処理システム100は、ディスプレイ、キーボード等が接続されていてもよい。
CPU101、CPU102は、情報処理システム100の全体の制御を司る。このように、情報処理システム100は、複数のコアを含むマルチコアプロセッサシステムの形態をとる。また、情報処理システム100は、コアが一つであるシングルコアプロセッサシステムであってもよい。また、マルチコアプロセッサシステムとは、コアが複数搭載されたプロセッサを含むコンピュータのシステムである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。
また、CPU101は、CPUのレジスタ群の一つである、CPU101の状態であるステータス情報を格納するステータスレジスタ110、キャッシュメモリ111を有する。同様に、CPU102は、ステータスレジスタ112、キャッシュメモリ113を有する。ステータスレジスタ110、ステータスレジスタ112が格納するステータス情報として、たとえば、演算結果の正負、オーバーフローの発生、などといった、プログラム実行に伴う状態である。
また、ステータスレジスタ110、ステータスレジスタ112は、CPU101、CPU102が共用リソース106にアクセスを行ったか否かの情報を、ステータス情報の一つとして格納している。CPU101、CPU102による共用リソース106のデータ転送をPIO(Programmed I/O)転送とする。なお、PIO転送が発生する場合としては、CPU101、CPU102がキャッシュメモリ111、キャッシュメモリ113内のデータを検索し、検索後要求されたデータが存在しなかった結果、共用リソース106にアクセスした場合である。以下の説明では、キャッシュメモリ111、キャッシュメモリ113にデータが存在した場合をキャッシュヒットと呼称し、データが存在しなかった場合をキャッシュミスと呼称する。
なお、PIO転送が発生する別の場合として、CPU101、CPU102がキャッシュメモリ111、キャッシュメモリ113内のデータを検索せずに、共用リソース106にアクセスする場合もある。この動作も、前述にて定義したキャッシュミスに含めることとする。したがって、ステータスレジスタ110、ステータスレジスタ112を参照することで、CPU101、CPU102がキャッシュヒット若しくはキャッシュミスをしたことが判断できる。
DMAコントローラ103、DMAコントローラ104は、CPU101、CPU102を介さず、共用リソース106に対してデータ転送を行う装置である。また、DMAコントローラ103は、値を設定することでDMAコントローラ103を制御可能な制御レジスタ114を有する。同様に、DMAコントローラ104は、制御レジスタ115を有する。なお、制御レジスタ114、制御レジスタ115には、DMAコントローラ103、DMAコントローラ104のステータス情報を格納するフィールドも含まれる。
DMAコントローラ103、DMAコントローラ104は、1サイクルで転送するデータ量である転送単位が変更できてもよい。たとえば、DMAコントローラ103、DMAコントローラ104は、転送単位がバス109のバス幅と一致していてもよいし、転送単位がバス109のバス幅より小さくてもよい。転送単位がバス109のバス幅と一致している場合、DMAコントローラ103、DMAコントローラ104は、最も効率よくデータ転送することができる。以下、転送単位がバス109のバス幅と一致する場合を高密度転送、転送単位がバス109のバス幅より小さい場合を低密度転送と呼称する。
メモリコントローラ105は、CPU101〜DMAコントローラ104による共用リソース106へのアクセス権の競合を調停する装置である。また、メモリコントローラ105は、メモリコントローラ105の状態を格納するステータスレジスタ116を有する。なお、本実施の形態にかかる情報処理システム100は、携帯型の端末といったリソースの限られた組み込み機器を想定しており、共用リソース106も1つで充分であることを想定している。しかし、もし共用リソース106が複数存在する場合、メモリコントローラ105は、複数存在してもよい。
共用リソース106は、CPU101〜DMAコントローラ104がアクセスするメモリである。メモリは、たとえば、ROM(Read‐Only Memory)、RAM(Random Access Memory)、フラッシュROMなどである。
PMU107は、情報処理システム100の消費電力を管理する。たとえば、PMU107がバス109へのクロックを停止させることで、情報処理システム100の消費電力が低くなる低消費電力モードになる。または、PMU107がバス109へのクロックを所定値に設定することで、通常モードになる。または、PMU107がバス109へのクロックを所定値より大きいクロックに設定することで、情報処理システム100の消費電力が大きくなるオーバークロックモードになる。また、PMU107は、値を設定することでPMU107を制御可能な制御レジスタ117と、制御レジスタ117に基づいて消費電力モードを設定する設定部118を有する。
バスコントローラ108は、CPU101〜メモリコントローラ105のステータス情報を監視し、DMAコントローラ103、DMAコントローラ104、PMU107の設定を変更する。また、バスコントローラ108は、キャッシュミス検出部119、高速I/O検出部120、アクセス競合検出部121、設定レジスタ122、生成部123を含む。
キャッシュミス検出部119は、ステータスレジスタ110、ステータスレジスタ112に格納されている情報の一つである、キャッシュヒット若しくはキャッシュミスを示す第1情報を検出する機能を有する。なお、キャッシュミス検出部119は、ステータスレジスタ110、ステータスレジスタ112の少なくとも何れか一方が、キャッシュミスを示した場合、第1情報をキャッシュミスとして検出する。
高速I/O検出部120は、バス109に接続されるデバイスの活性化状態若しくは非活性化状態を示す第2情報を検出する機能を有する。ここで、デバイスとは、DSP(Digital Signal Processor)や、DMAコントローラといった、共用リソース106にアクセスするデバイスを指している。本実施の形態にかかる高速I/O検出部120では、制御レジスタ114、制御レジスタ115に格納されている情報の一つである、DMAコントローラ103、DMAコントローラ104が使用中か否かという情報を第2情報として検出する。
具体的には、高速I/O検出部120は、DMAコントローラ103、DMAコントローラ104が使用中の状態を活性化状態、未使用の状態を非活性化状態として第2情報を検出する。なお、高速I/O検出部120は、DMAコントローラ103、DMAコントローラ104の少なくとも何れか一方が使用中となった場合、第2情報を活性化状態として検出する。
アクセス競合検出部121は、ステータスレジスタ116に格納されている情報の一つである、共用リソース106に対するアクセス競合状態若しくは非競合状態を示す第3情報を検出する機能を有する。
設定レジスタ122は、バスコントローラ108の動作を設定するレジスタである。たとえば、設定レジスタ122は、キャッシュミス検出部119〜アクセス競合検出部121を機能させるか否かが設定可能となっていてもよい。また、設定レジスタ122は、CPU101、CPU102で実行されているOS(Operating System)によって、情報処理システム100にリアルタイム制約があるか否かという第4情報が設定されてもよい。なお、リアルタイム制約とは、CPU101、CPU102で実行される処理に対して、応答時間が設定されている状態を示す。また、第4情報は、情報処理システム100の起動時に設定されてもよいし、起動後に途中で値が変更されてもよい。
生成部123は、キャッシュミス検出部119〜設定レジスタ122の値に基づいて、DMAコントローラ103、DMAコントローラ104、PMU107に対する設定信号を生成する。設定信号には、PMU107に対するPMU設定信号と、DMAコントローラ103、DMAコントローラ104に対するDMA設定信号と、が含まれる。
具体的に、生成される情報として、生成部123は、PMU107に対して、キャッシュミス検出部119〜設定レジスタ122の各情報を1ビットとした少なくとも4ビットのPMU設定信号を生成する。また、生成部123は、DMAコントローラ103、DMAコントローラ104に対して、キャッシュミス検出部119〜設定レジスタ122の値の組み合わせにより決定される1ビットのDMA設定信号を生成する。さらに詳細なPMU設定信号、DMA設定信号の内容については、図2にて後述する。
図2は、生成部123と設定部118の動作を示す説明図である。設定部118は、生成部123によって生成されるキャッシュミス検出部119〜設定レジスタ122の4つの値によるPMU設定信号に応じて、PMU107の動作を設定する。また、図2では、生成部123によって生成されるDMA設定信号に応じたDMAコントローラ103、104の動作についても、併せて説明を行う。
また、図2で示す表201、表202は、PMU設定信号に応じた生成部123と設定部118の動作を示している。具体的に、表201は、第1情報、第2情報の組み合わせによる生成部123と設定部118の動作について図示しており、表202は、さらに、第3情報、第4情報との組み合わせによる生成部123と設定部118の動作について図示している。
生成部123は、LSB(Least Significant Bit)となる0ビット目が第2情報を示し、1ビット目が第3情報を示し、2ビット目が第1情報を示し、3ビット目が第4情報を示すPMU設定信号を生成する。以下、第2情報を示す0ビット目が“0”であれば非活性化状態を示し、“1”であれば活性化状態を示すこととする。同様に、第3情報を示す1ビット目が“0”であれば非競合状態を示し、“1”であれば競合状態を示す。また、第1情報を示す2ビット目が“0”であればキャッシュヒットを示し、“1”であればキャッシュミスを示す。また、第4情報を示す3ビット目が“0”であればリアルタイム制約がないことを示し、“1”であればリアルタイム制約があることを示す。
始めに表201の1行1項目について説明を行う。生成部123は、第1情報がキャッシュヒットを示すとともに第2情報が非活性化状態を示すときに、PMU107を低消費電力モードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュヒットであり、かつ、第2情報が非活性化状態である情報処理システム100の状態を、状態1と呼称する。また、生成部123は、情報処理システム100が状態1の場合、DMA設定信号を生成しない。
具体的に、情報処理システム100が状態1の場合、生成部123は、PMU設定信号として0ビット目が“0”、1ビット目が“0”、2ビット目が“0”、3ビット目が“0”となる”0000”を生成する。生成されたPMU設定信号は、制御レジスタ117に設定される。
設定部118は、第1情報がキャッシュヒットを示すとともに第2情報が非活性化状態を示すときに、低消費電力モードを設定してもよい。たとえば、CPU101、CPU102のいずれもキャッシュヒットをしており、DMAコントローラ103、DMAコントローラ104のいずれも未使用である状態1の場合を想定する。このとき、設定部118は、制御レジスタ117より“0000”を読み取り、低消費電力モードを設定する。低消費電力モードとなった場合、PMU107は、バス109へのクロックを停止させる。このとき、共用リソース106のうち、DRAMに関するリフレッシュクロックの供給は継続される。なお、状態1に関する情報処理システム100の詳細な動作に関しては、図3にて後述する。
次に、表201の2行1項目について説明を行う。また、生成部123は、第1情報がキャッシュヒットを示すとともに第2情報が活性化状態を示すときに、PMU107を通常モードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュヒットであり、かつ第2情報が活性化状態である情報処理システム100の状態を、状態2と呼称する。また、生成部123は、情報処理システム100が状態2の場合、DMA設定信号として、高密度転送を示す“1”を生成する。
具体的に、情報処理システム100が状態2の場合、生成部123は、PMU設定信号として0ビット目が“1”、1ビット目が“0”、2ビット目が“0”、3ビット目が“0”となる”0001”を生成する。
また、設定部118は、第1情報がキャッシュヒットを示すとともに第2情報が活性化状態を示すときに、通常モードを設定してもよい。たとえば、CPU101、CPU102のいずれもキャッシュヒットをしており、DMAコントローラ103、DMAコントローラ104の何れか一方が使用中である状態2である場合を想定する。このとき、設定部118は、制御レジスタ117より“0001”を読み取り、通常モードを設定する。なお、状態2に関する情報処理システム100の詳細な動作に関しては、図4にて後述する。
次に、表201の1行2項目について説明を行う。生成部123は、第1情報がキャッシュミスを示すとともに第2情報が非活性化状態を示すときに、PMU107を通常モードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュミスであり、かつ第2情報が非活性化状態である情報処理システム100の状態を、状態3と呼称する。また、生成部123は、情報処理システム100が状態3の場合、DMA設定信号を生成しない。具体的に、情報処理システム100が状態3の場合、生成部123は、PMU設定信号として0ビット目が“0”、1ビット目が“0”、2ビット目が“1”、3ビット目が“0”となる”0100”を生成する。
また、設定部118は、第1情報がキャッシュミスを示すとともに第2情報が非活性化状態を示すときに、通常モードを設定してもよい。たとえば、CPU101、CPU102の何れか一方がキャッシュミスをしており、DMAコントローラ103、DMAコントローラ104のいずれも未使用である状態3である場合を想定する。このとき、設定部118は、制御レジスタ117より“0100”を読み取り、通常モードを設定する。
また、設定部118は、情報処理システム100がメモリアクセスレイテンシのある回路である場合に、CPU/メモリのクロック比率を変更する。なお、メモリアクセスレイテンシのある回路とは、メモリアクセスの発行命令からメモリアクセスまで2サイクル以上かかる回路のことである。なお、状態3に関する情報処理システム100の詳細な動作に関しては、図5にて後述する。
次に、表201の2行2項目について説明を行う。キャッシュミス検出部119と高速I/O検出部120が2行2項目に当てはまる場合、生成部123、設定部118は、表202の条件に従う。始めに、表202の1行目について説明する。生成部123は、第1情報がキャッシュミスを示すとともに第2情報が活性化状態を示し、さらに第3情報がアクセス非競合状態を示すときに、PMU107を通常モードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュミスであり、かつ第2情報が活性化状態であり、かつ第3情報がアクセス非競合状態である情報処理システム100の状態を、状態4と呼称する。また、生成部123は、情報処理システム100が状態4の場合、DMA設定信号として、高密度転送を示す“1”を生成する。
具体的に、情報処理システム100が状態4の場合、生成部123は、PMU設定信号として0ビット目が“1”、1ビット目が“0”、2ビット目が“1”、3ビット目が“0”となる”0101”を生成する。
また、設定部118は、第1情報がキャッシュミスを示すとともに第2情報が活性化状態を示し、さらに第3情報がアクセス非競合状態を示すときに、通常モードを設定してもよい。たとえば、CPU101、CPU102の少なくとも何れか一方がキャッシュミスをしており、DMAコントローラ103、DMAコントローラ104の少なくとも何れか一方が使用中であり、メモリコントローラ105が非競合状態である場合を想定する。このとき、設定部118は、制御レジスタ117より“0101”を読み取り、通常モードを設定する。なお、状態4に関する情報処理システム100の詳細な動作に関しては、図6にて後述する。
次に、表202の2行1項目について説明する。生成部123は、第3情報がアクセス競合状態を示すとともに第4情報がリアルタイム制約ありを示すときに、PMU107をオーバークロックモードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュミスであり、かつ第2情報が活性化状態であり、かつ第3情報がアクセス非競合状態であり、かつ第4情報がリアルタイム制約ありの状態となる情報処理システム100の状態を、状態5−1と呼称する。また、生成部123は、情報処理システム100が状態5−1の場合、DMA設定信号として、高密度転送を示す“1”を生成する。
具体的に、情報処理システム100が状態5−1の場合、生成部123は、PMU設定信号として0ビット目が“1”、1ビット目が“1”、2ビット目が“1”、3ビット目が“1”となる”1111”を生成する。
また、設定部118は、第1情報がキャッシュミスを示すとともに第2情報が活性化状態を示し、さらに第3情報がアクセス競合状態を示し、さらに第4情報がリアルタイム制約ありを示すときに、オーバークロックモードを設定してもよい。たとえば、CPU101、CPU102の少なくとも何れか一方がキャッシュミスをしており、DMAコントローラ103、DMAコントローラ104の少なくとも何れか一方が使用中である。さらに、共用リソース106が競合状態であり、リアルタイム制約ありの場合を想定する。このとき、設定部118は、制御レジスタ117より“1111”を読み取り、オーバークロックモードを設定する。なお、状態5−1に関する情報処理システム100の詳細な動作に関しては、図7にて後述する。
最後に、表202の2行2項目について説明する。生成部123は、第3情報がアクセス競合状態を示すとともに第4情報がリアルタイム制約なしを示すときに、PMU107を通常モードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュミスであり、かつ第2情報が活性化状態であり、かつ第3情報がアクセス競合状態であり、かつ第4情報がリアルタイム制約なしの状態となる情報処理システム100の状態を、状態5−2と呼称する。また、生成部123は、情報処理システム100が状態5−2の場合、DMA設定信号として、低密度転送を示す“0”を生成する。
具体的に、情報処理システム100が状態5−2の場合、生成部123は、PMU設定信号として0ビット目が“1”、1ビット目が“1”、2ビット目が“1”、3ビット目が“0”となる”0111”を生成する。
また、設定部118は、第1情報がキャッシュミスを示すとともに第2情報が活性化状態を示し、さらに第3情報がアクセス競合状態を示し、さらに第4情報がリアルタイム制約なしを示すときに、通常モードを設定してもよい。たとえば、CPU101、CPU102の少なくとも何れか一方がキャッシュミスをしており、DMAコントローラ103、DMAコントローラ104の少なくとも何れか一方が使用中である。さらに、共用リソース106が競合状態であり、リアルタイム制約なしの場合を想定する。このとき、設定部118は、制御レジスタ117より“0111”を読み取り、通常モードを設定する。なお、状態5−2に関する情報処理システム100の詳細な動作に関しては、図8にて後述する。
図2にて説明を行った状態1〜状態5−2について、図3〜図8にて具体例を記述する。なお、図3〜図8における情報処理システム100の性能は下記の通りである。バス109は、バス幅が64[ビット]、クロック周波数が所定値である500[MHz]で動作する。CPU101、CPU102のバス幅が32[ビット]、クロック周波数が1[GHz]で動作する。共用リソース106の一つであるメモリについては、以下2つの設定が可能であると想定する。1つ目の設定が、バス幅が64[ビット]、クロック周波数が1[GHz]で動作するCPUとメモリのクロック比が1:1となる設定である。2つ目の設定が、バス幅が64[ビット]、クロック周波数が500[MHz]で動作するCPUとメモリのクロック比が2:1となる設定である。
また、DMAコントローラ103、DMAコントローラ104は、転送単位がワード転送、またはダブルワード転送という2つの転送方法の何れかで動作する。特に設定の変更がない場合、DMAコントローラ103、DMAコントローラ104は、ダブルワード転送を行う。また、本実施の形態では、1ワードを32ビットであると想定する。したがって、ワード転送では、1クロックにて32[ビット]のデータ量を転送し、ダブルワード転送では1クロックにて64[ビット]のデータ量を転送する。また、情報処理システム100が実行する処理の一つである通信着信は、リアルタイム制約となるQoS(Quality of Service)時間として10[ミリ秒]以内の応答が要求される。
なお、説明の簡略化のため、図3〜図8にて、キャッシュミスが発生したCPUは、CPU101であると想定する。同様に、使用中となったDMAコントローラは、DMAコントローラ103であると想定する。
図3は、情報処理システム100が状態1の場合の動作を示す説明図である。図3に示す情報処理システム100は、CPU101、CPU102のいずれもキャッシュヒットをしており、DMAコントローラ103、DMAコントローラ104のいずれも未使用である状態1の場合である。なお、情報処理システム100が状態1となる具体例としては、ユーザが情報処理システム100を操作しない状態で、カーネルプロセスなどが周期的に動作し、かつ常にキャッシュヒットしている状態で動作している場合である。
このとき、バスコントローラ108は、“0000”=0HというPMU設定信号を生成し、PMU107に送信する。なお、3ビット目である第4情報について、設定レジスタ122にリアルタイム制約がありと設定されていても、0ビット目〜2ビット目全てが“1”でないと判断基準として利用されない。したがって、バスコントローラ108は、リアルタイム制約なしを示す“0”を設定する。または、バスコントローラ108は、“1000”というPMU設定信号を生成し、設定部118は、0ビット目〜2ビット目全てが“1”でないことから、3ビット目を無効として扱ってもよい。この動作は、状態2〜状態4についても同様である。
PMU設定信号が設定されたPMU107は、低消費電力モードとして、共用リソース106のうち、DRAMに関するリフレッシュクロック以外となるバス109のクロックの供給を停止させる。このように、状態1における情報処理システム100では、バス109が使用されていないため、クロックの供給を止めることができ、消費電力を削減することができる。
図4は、情報処理システム100が状態2の場合の動作を示す説明図である。図4に示す情報処理システム100は、CPU101、CPU102のいずれもキャッシュヒットをしており、DMAコントローラ103が使用中である状態2の場合である。なお、情報処理システム100が状態2となる具体例としては、DMAコントローラ103を使用したダウンロード処理を行っており、ユーザが情報処理システム100を操作せず、カーネルプロセスが常にキャッシュヒットの状態で動作している場合である。
このとき、バスコントローラ108は、“0001”=1HというPMU設定信号を生成し、PMU107に送信する。PMU設定信号が設定されたPMU107は、通常モードとして、バス109へのクロックの供給を500[MHz]に設定する。また、バスコントローラ108は、高密度転送を示す“1”というDMA設定信号を生成し、DMAコントローラ103、DMAコントローラ104に送信する。DMA設定信号が設定されたDMAコントローラ103、DMAコントローラ104は、高密度転送となるダブルワード転送を行う。
図5は、情報処理システム100が状態3の場合の動作を示す説明図である。図5に示す情報処理システム100は、CPU101がキャッシュミスをしており、DMAコントローラ103、DMAコントローラ104がいずれも未使用である状態3の場合である。なお、情報処理システム100が状態3となる具体例としては、情報処理システム100内のデータを検索している場合である。
このとき、バスコントローラ108は、“0100”=4HというPMU設定信号を生成し、PMU107に送信する。PMU設定信号が設定されたPMU107は、通常モードとして、バス109へのクロックの供給を500[MHz]に設定する。また、情報処理システム100はメモリアクセスレイテンシがある回路であることを想定しているため、CPU/メモリのクロック比率を2:1に設定する。図5の例では、メモリのクロック数を500[MHz]に減ずる。
なお、クロック比率を2:1に設定する理由として、情報処理システム100が状態3では、共用リソース106のメモリに対してDMAコントローラ103、DMAコントローラ104からのアクセスが存在しない。したがって、クロック比率の設定については、CPU101、CPU102からのアクセスに対して考慮すればよい。CPU101、CPU102のバス幅は32[ビット]であり、メモリのバス幅64[ビット]の半分の値であるため、メモリのクロック数をCPU101、CPU102の半分の設定にしても、CPU101、CPU102からのアクセスに対応することができる。
このように、状態3における情報処理システム100は、共用リソース106のメモリに対してCPU101、CPU102からのアクセスに限定することで、メモリのクロック数を下げることができ、消費電力を削減することができる。
図6は、情報処理システム100が状態4の場合の動作を示す説明図である。図6に示す情報処理システム100は、CPU101がキャッシュミスをしており、DMAコントローラ103が使用中である状態4の場合である。なお、情報処理システム100が状態4となる具体例としては、バックグラウンドでダウンロード処理を行っており、ユーザのメニュー操作によるイベント受信を受けた場合である。
このとき、メニュー操作により階層メニューを初めて読み込んだ際に、CPU101は、キャッシュメモリ111に対して、新たな階層メニューのデータが存在するか検索する。階層メニューは初めて読み込まれるため、キャッシュメモリ111に存在せず、CPU101は、共用リソース106にアクセスすることになる。階層メニューが読み込まれた後、CPU101は、キャッシュメモリ111に格納されたデータを元にメニュー操作に対応するデータの処理を行う。このように、図6での具体例となっている情報処理システム100は、CPU101にてキャッシュミスが発生するが、連続したPIOが発生していないため、共用リソース106に対するアクセス競合が発生しない状態である。
このとき、バスコントローラ108は、“0101”=5HというPMU設定信号を生成し、PMU107に送信する。PMU設定信号が設定されたPMU107は、通常モードとして、バス109へのクロックの供給を500[MHz]に設定する。また、バスコントローラ108は、高密度転送を示す“1”というDMA設定信号を生成し、DMAコントローラ103、DMAコントローラ104に送信する。DMA設定信号が設定されたDMAコントローラ103、DMAコントローラ104は、高密度転送となるダブルワード転送を行う。
図7は、情報処理システム100が状態5−1の場合の動作を示す説明図である。図7に示す情報処理システム100は、CPU101がキャッシュミスをしており、DMAコントローラ103が使用中であり、共用リソース106に対するアクセス競合を検出中であり、リアルタイム制約がある状態5−1の場合である。なお、情報処理システム100が状態5−1となる具体例としては、情報処理システム100がデータタウンロードを行い、かつ、情報処理システム100内のデータを検索しており、かつ、通信着信が発生するような場合である。通信着信にはリアルタイム制約があるため、一定時間以内に応答することが求められる。
このとき、バスコントローラ108は、“1111”=fHというPMU設定信号を生成し、PMU107に送信する。PMU設定信号が設定されたPMU107は、オーバークロックモードとして、バスのクロックの供給を1[GHz]に設定し、メモリのクロック周波数を1.5[GHz]に設定する。情報処理システム100の性能を高めることで、情報処理システム100はリアルタイム制約となるQoS時間10[ミリ秒]以内に通信着信を応答することができる。このように、状態5−1における情報処理システム100は、アクセス競合状態となっても、アクセス競合を解消し、リアルタイム制約の時間内に処理を実行することができる。
また、バスコントローラ108は、高密度転送を示す“1”というDMA設定信号を生成し、DMAコントローラ103、DMAコントローラ104に送信する。DMA設定信号が設定されたDMAコントローラ103、DMAコントローラ104は、高密度転送となるダブルワード転送を行う。
図8は、情報処理システム100が状態5−2の場合の動作を示す説明図である。図8に示す情報処理システム100は、CPU101がキャッシュミスをしており、DMAコントローラ103が使用中であり、共用リソース106に対するアクセス競合を検出中であり、リアルタイム制約がない状態5−2の場合である。なお、情報処理システム100が状態5−1となる具体例としては、情報処理システム100がデータタウンロードを行い、かつ、情報処理システム100内のデータを検索しているような場合である。
このとき、バスコントローラ108は、“0111”=7HというPMU設定信号を生成し、PMU107に送信する。PMU設定信号が設定されたPMU107は、通常モードとして、バス109へのクロックの供給を500[MHz]に設定する。また、バスコントローラ108は、低密度転送を示す“0”というDMA設定信号を生成し、DMAコントローラ103、DMAコントローラ104に送信する。DMA設定信号が設定されたDMAコントローラ103、DMAコントローラ104は、低密度転送となるワード転送を行う。
これにより、バス109のバス幅64[ビット]のうち、ダブルワード転送からワード転送に切り替わって使用されなくなった32[ビット]分のデータに、CPU101によるPIO転送が入りやすくなる。このように、状態5−2における情報処理システム100は、メモリに対するアクセス競合が発生した際に、消費電力を増大せずに、DMA転送を行いつつも、CPU101、CPU102によるPIO転送も行えるようにすることができる。
以上説明したように、情報処理システムによれば、CPUによる第1情報であるキャッシュヒットか若しくはキャッシュミスかという情報と第2情報であるDMA使用中か否かという情報に応じてPMUがクロックを変更する。これにより、情報処理システムは、メモリアクセス競合時にはオーバークロックに設定し競合を解消し、アクセスがないときにはクロック供給を停止させ消費電力を削減できる。また、本実施の形態にかかる情報処理システムは、DMAコントローラ、メモリコントローラに改版を行わないため、対応にかかるコストが少なくて済む。
また、アクセス競合を解消する方法として、シミュレーションによって競合が発生するか否かを判断し、ソフトウェアのスケジューラを操作することで、アクセス競合を解消することが可能である。しかしながら、ソフトウェアのスケジューラの操作方法とは、ソフトウェアのアクセス順序を入れ替えることでアクセス競合を解決しており、アクセス順序を入れ替えてもアクセス競合の解消を行えない場合も存在する。本実施の形態における情報処理システムでは、アクセス順序を入れ替えてもアクセス競合の解消を行えない場合であっても、アクセス競合を解消することができる。また、本実施の形態における情報処理システムはソフトウェアに対する改版も行わないため、対応にかかるコストが小さく、また、OSのバージョンアップ等による対応も行わなくてよい。
また、情報処理システムは、第1情報がキャッシュヒットを示すとともに、第2情報が未使用である状態1を示す場合、PMUがバスのクロックを低消費電力モードに設定してもよい。これにより、情報処理システムは、消費電力を削減することができる。
また、情報処理システムは、第1情報がキャッシュヒットを示すとともに、第2情報が使用中である状態2を示す場合、PMUがバスのクロックを通常モードに設定してもよい。これにより、情報処理システムは、たとえば、CPUとDMAコントローラとによるアクセス競合状態が解消し、DMAコントローラのみのアクセスとなった場合に、バスのクロックを通常に戻すことで、消費電力を削減することができる。
また、情報処理システムは、状態2を示す場合、DMAコントローラを高密度転送に設定してもよい。情報処理システムが状態2の時は、PIO転送が発生していないため、DMAコントローラを高密度転送に設定することで、効率のよいデータ転送を行うことができる。
また、情報処理システムは、第1情報がキャッシュミスを示すとともに第2情報が未使用である状態3を示す場合、PMUがバスのクロックを通常モードに設定してもよい。これにより、情報処理システムは、たとえば、CPUとDMAコントローラとによるアクセス競合状態が解消し、CPUのみのアクセスとなった場合に、バスのクロックを通常に戻すことで、消費電力を削減することができる。
また、情報処理システムは、第1情報がキャッシュミスを示すとともに第2情報が未使用である場合、アクセス競合状態か否かを示す第3情報に基づいて、消費電力モードを設定してもよい。これにより、情報処理システムは、メモリアクセス競合時にはオーバークロックに設定しアクセス競合を解消できる。
また、情報処理システムは、第3情報がアクセス非競合状態を示す状態4では、PMUがバスのクロックを通常モードに設定し、第3情報がアクセス競合状態を示すときには、PMUがバスのクロックをオーバークロックモードに設定してもよい。これにより、情報処理システムは、アクセス競合の発生中に限りオーバークロックに設定するため、最低限の消費電力増で済ませることができる。
また、情報処理システムは、状態4を示す場合、DMAコントローラを高密度転送に設定してもよい。情報処理システムが状態4のときは、PIO転送が単発で発生している状態であり、PIO転送の発生頻度が低い状態となるため、DMAコントローラを高密度転送に設定することで、効率のよいデータ転送を行うことができる。
また、情報処理システムは、第3情報がアクセス競合状態を示すとき、CPUで実行する処理に時間制約があるか否かを示す第4情報に基づいて、消費電力モードを設定してもよい。これにより、情報処理システムは、時間制約があるリアルタイム応答時に限り、オーバークロックに設定しアクセス競合を解消できる。
また、情報処理システムは、第4情報が時間制約のあることを示す状態5−1のときは、PMUがバスのクロックをオーバークロックモードに設定し、第4情報が時間制約のないことを示す状態5−2のときは、通常モードに設定してもよい。これにより、情報処理システムは、アクセス競合の発生中で、かつリアルタイム制約があるときに限りオーバークロックに設定するため、最低限の消費電力増で済ませることができる。
また、情報処理システムは、状態5−1を示す場合、DMAコントローラを高密度転送に設定し、状態5−2を示す場合、DMAコントローラを低密度転送に設定してもよい。これにより、情報処理システムは、状態5−1のときに、リアルタイム制約があるため効率のよいデータ転送が行え、リアルタイム制約を順守することができる。また、情報処理システムは、状態5−2のときに、低密度転送を行うことで、PIO転送が行いやすくなるため、アクセス競合を解消することができる。
また、本実施の形態で説明したバスコントローラ108は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述したバスコントローラ108の機能(キャッシュミス検出部119〜生成部123)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、バスコントローラ108を製造することができる。
100 情報処理システム
101、102 CPU
103、104 DMAコントローラ
105 メモリコントローラ
106 共用リソース
107 PMU
108 バスコントローラ
109 バス
110、112、116 ステータスレジスタ
111、113 キャッシュメモリ
114、115、117 制御レジスタ
118 設定部
119 キャッシュミス検出部
120 高速I/O検出部
121 アクセス競合検出部
122 設定レジスタ
123 生成部
本発明は、アクセス競合を監視する情報処理システムに関する。
近年、1つのシステム内に、複数のコアを有するマルチコアプロセッサシステムの形態を採用する情報処理システムが増加している。マルチコアプロセッサシステムにおけるバスには、複数のコアからによる様々なパターンのデータが流れる。具体的には、CPU(Central Processing Unit)、DMA(Direct Memory Access)コントローラ、DSP(Digital Signal Processor)等から発生したデータがバスに流れる。CPUからメモリに対するアクセスは、1サイクルで転送するデータ量である転送単位が小さいアクセスとなり、DMAコントローラ、DSPなどの高速転送デバイスからメモリに対するアクセスは、転送単位が大きいアクセスとなる。
このように、転送単位にばらつきのあるアクセスに対して、情報処理システム設計時には、アクセスの総量がオーバーフローしないように設計される。しかし、入出力対象のI/Oが1ポート、またはポート数が限られている場合に、そのポートでアクセス競合が発生することがあった。
アクセス競合を解消する技術として、バス幅、クロック周波数を大きくし、さらなる高速化を行って、アクセス競合を解消するという技術が存在する(以下、「従来技術1」と称する。)。また、他の技術として、メモリの入出力を制御するメモリコントローラがアクセス要求を一時的に保留するキューイングシステムを有することで、アクセス競合の影響を最小化する技術が存在する(以下、「従来技術2」と称する。)。
また、他のアクセス競合を解消する技術として、メモリコントローラがキャッシュミスを監視し、キャッシュミス回数が閾値以上となったときに、DMAのサイクルスチールモードにおける転送単位を小さくする技術が開示されている(たとえば、下記特許文献1を参照。)。
しかしながら、上述した従来技術において、従来技術1にかかる技術では、アクセス競合発生時以外であっても処理能力が増大するために、消費電力が増大し利用効率が下がるという問題があった。また、従来技術2にかかる技術を適用しても、アクセス要求に対する応答の遅延が発生するという問題があった。
また、特許文献1にかかる技術では、CPU、DMAコントローラ、DSP等からのアクセスについて、どのアクセスがCPUからのアクセスであるか特定することが困難であるという問題があった。また、特許文献1にかかる技術にて、リアルタイム制約がある処理を実行中の場合に、DMAコントローラの転送単位を小さくすると、DMAコントローラの転送効率が低下し、リアルタイム制約に違反してしまう可能性が高くなるという問題があった。
本発明は、上述した従来技術による問題点を解消するため、消費電力を抑えつつ、アクセス競合を解消できる情報処理システムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示の情報処理システムは、バスに接続されるCPUと、バスに接続されるデバイスと、CPUまたはデバイスにアクセスされるメモリと、消費電力モードを設定するパワーモード制御回路と、を含み、パワーモード制御回路は、CPU内のキャッシュメモリのキャッシュヒット若しくはキャッシュミスを示す第1情報とデバイスの活性化状態若しくは非活性化状態を示す第2情報とに基づいて、消費電力モードを設定する。
本情報処理システムによれば、メモリアクセス競合時にはオーバークロックに設定しアクセス競合を回避し、アクセスがないときにはクロック供給を停止させ消費電力を削減できるという効果を奏する。
実施の形態にかかる情報処理システム100のハードウェアを示すブロック図である。
生成部123と設定部118の動作を示す説明図である。
情報処理システム100が状態1の場合の動作を示す説明図である。
情報処理システム100が状態2の場合の動作を示す説明図である。
情報処理システム100が状態3の場合の動作を示す説明図である。
情報処理システム100が状態4の場合の動作を示す説明図である。
情報処理システム100が状態5−1の場合の動作を示す説明図である。
情報処理システム100が状態5−2の場合の動作を示す説明図である。
以下に添付図面を参照して、開示の情報処理システムの好適な実施の形態を詳細に説明する。
(情報処理システム100のハードウェア)
図1は、実施の形態にかかる情報処理システム100のハードウェアを示すブロック図である。図1において、情報処理システム100は、CPU101と、CPU102と、DMAコントローラ103と、DMAコントローラ104とを含む。さらに、情報処理システム100は、メモリコントローラ105と、共用リソース106と、パワーモード制御回路(以下、PMU(Power Management Unit)と呼称する)107と、バスコントローラ108と、を含む。また、各部はバス109によってそれぞれ接続されている。また、ユーザやその他の機器との入出力装置として情報処理システム100は、ディスプレイ、キーボード等が接続されていてもよい。
CPU101、CPU102は、情報処理システム100の全体の制御を司る。このように、情報処理システム100は、複数のコアを含むマルチコアプロセッサシステムの形態をとる。また、情報処理システム100は、コアが一つであるシングルコアプロセッサシステムであってもよい。また、マルチコアプロセッサシステムとは、コアが複数搭載されたプロセッサを含むコンピュータのシステムである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。
また、CPU101は、CPUのレジスタ群の一つである、CPU101の状態であるステータス情報を格納するステータスレジスタ110、キャッシュメモリ111を有する。同様に、CPU102は、ステータスレジスタ112、キャッシュメモリ113を有する。ステータスレジスタ110、ステータスレジスタ112が格納するステータス情報として、たとえば、演算結果の正負、オーバーフローの発生、などといった、プログラム実行に伴う状態である。
また、ステータスレジスタ110、ステータスレジスタ112は、CPU101、CPU102が共用リソース106にアクセスを行ったか否かの情報を、ステータス情報の一つとして格納している。CPU101、CPU102による共用リソース106のデータ転送をPIO(Programmed I/O)転送とする。なお、PIO転送が発生する場合としては、CPU101、CPU102がキャッシュメモリ111、キャッシュメモリ113内のデータを検索し、検索後要求されたデータが存在しなかった結果、共用リソース106にアクセスした場合である。以下の説明では、キャッシュメモリ111、キャッシュメモリ113にデータが存在した場合をキャッシュヒットと呼称し、データが存在しなかった場合をキャッシュミスと呼称する。
なお、PIO転送が発生する別の場合として、CPU101、CPU102がキャッシュメモリ111、キャッシュメモリ113内のデータを検索せずに、共用リソース106にアクセスする場合もある。この動作も、前述にて定義したキャッシュミスに含めることとする。したがって、ステータスレジスタ110、ステータスレジスタ112を参照することで、CPU101、CPU102がキャッシュヒット若しくはキャッシュミスをしたことが判断できる。
DMAコントローラ103、DMAコントローラ104は、CPU101、CPU102を介さず、共用リソース106に対してデータ転送を行う装置である。また、DMAコントローラ103は、値を設定することでDMAコントローラ103を制御可能な制御レジスタ114を有する。同様に、DMAコントローラ104は、制御レジスタ115を有する。なお、制御レジスタ114、制御レジスタ115には、DMAコントローラ103、DMAコントローラ104のステータス情報を格納するフィールドも含まれる。
DMAコントローラ103、DMAコントローラ104は、1サイクルで転送するデータ量である転送単位が変更できてもよい。たとえば、DMAコントローラ103、DMAコントローラ104は、転送単位がバス109のバス幅と一致していてもよいし、転送単位がバス109のバス幅より小さくてもよい。転送単位がバス109のバス幅と一致している場合、DMAコントローラ103、DMAコントローラ104は、最も効率よくデータ転送することができる。以下、転送単位がバス109のバス幅と一致する場合を高密度転送、転送単位がバス109のバス幅より小さい場合を低密度転送と呼称する。
メモリコントローラ105は、CPU101〜DMAコントローラ104による共用リソース106へのアクセス権の競合を調停する装置である。また、メモリコントローラ105は、メモリコントローラ105の状態を格納するステータスレジスタ116を有する。なお、本実施の形態にかかる情報処理システム100は、携帯型の端末といったリソースの限られた組み込み機器を想定しており、共用リソース106も1つで充分であることを想定している。しかし、もし共用リソース106が複数存在する場合、メモリコントローラ105は、複数存在してもよい。
共用リソース106は、CPU101〜DMAコントローラ104がアクセスするメモリである。メモリは、たとえば、ROM(Read‐Only Memory)、RAM(Random Access Memory)、フラッシュROMなどである。
PMU107は、情報処理システム100の消費電力を管理する。たとえば、PMU107がバス109へのクロックを停止させることで、情報処理システム100の消費電力が低くなる低消費電力モードになる。または、PMU107がバス109へのクロックを所定値に設定することで、通常モードになる。または、PMU107がバス109へのクロックを所定値より大きいクロックに設定することで、情報処理システム100の消費電力が大きくなるオーバークロックモードになる。また、PMU107は、値を設定することでPMU107を制御可能な制御レジスタ117と、制御レジスタ117に基づいて消費電力モードを設定する設定部118を有する。
バスコントローラ108は、CPU101〜メモリコントローラ105のステータス情報を監視し、DMAコントローラ103、DMAコントローラ104、PMU107の設定を変更する。また、バスコントローラ108は、キャッシュミス検出部119、高速I/O検出部120、アクセス競合検出部121、設定レジスタ122、生成部123を含む。
キャッシュミス検出部119は、ステータスレジスタ110、ステータスレジスタ112に格納されている情報の一つである、キャッシュヒット若しくはキャッシュミスを示す第1情報を検出する機能を有する。なお、キャッシュミス検出部119は、ステータスレジスタ110、ステータスレジスタ112の少なくとも何れか一方が、キャッシュミスを示した場合、第1情報をキャッシュミスとして検出する。
高速I/O検出部120は、バス109に接続されるデバイスの活性化状態若しくは非活性化状態を示す第2情報を検出する機能を有する。ここで、デバイスとは、DSP(Digital Signal Processor)や、DMAコントローラといった、共用リソース106にアクセスするデバイスを指している。本実施の形態にかかる高速I/O検出部120では、制御レジスタ114、制御レジスタ115に格納されている情報の一つである、DMAコントローラ103、DMAコントローラ104が使用中か否かという情報を第2情報として検出する。
具体的には、高速I/O検出部120は、DMAコントローラ103、DMAコントローラ104が使用中の状態を活性化状態、未使用の状態を非活性化状態として第2情報を検出する。なお、高速I/O検出部120は、DMAコントローラ103、DMAコントローラ104の少なくとも何れか一方が使用中となった場合、第2情報を活性化状態として検出する。
アクセス競合検出部121は、ステータスレジスタ116に格納されている情報の一つである、共用リソース106に対するアクセス競合状態若しくは非競合状態を示す第3情報を検出する機能を有する。
設定レジスタ122は、バスコントローラ108の動作を設定するレジスタである。たとえば、設定レジスタ122は、キャッシュミス検出部119〜アクセス競合検出部121を機能させるか否かが設定可能となっていてもよい。また、設定レジスタ122は、CPU101、CPU102で実行されているOS(Operating System)によって、情報処理システム100にリアルタイム制約があるか否かという第4情報が設定されてもよい。なお、リアルタイム制約とは、CPU101、CPU102で実行される処理に対して、応答時間が設定されている状態を示す。また、第4情報は、情報処理システム100の起動時に設定されてもよいし、起動後に途中で値が変更されてもよい。
生成部123は、キャッシュミス検出部119〜設定レジスタ122の値に基づいて、DMAコントローラ103、DMAコントローラ104、PMU107に対する設定信号を生成する。設定信号には、PMU107に対するPMU設定信号と、DMAコントローラ103、DMAコントローラ104に対するDMA設定信号と、が含まれる。
具体的に、生成される情報として、生成部123は、PMU107に対して、キャッシュミス検出部119〜設定レジスタ122の各情報を1ビットとした少なくとも4ビットのPMU設定信号を生成する。また、生成部123は、DMAコントローラ103、DMAコントローラ104に対して、キャッシュミス検出部119〜設定レジスタ122の値の組み合わせにより決定される1ビットのDMA設定信号を生成する。さらに詳細なPMU設定信号、DMA設定信号の内容については、図2にて後述する。
図2は、生成部123と設定部118の動作を示す説明図である。設定部118は、生成部123によって生成されるキャッシュミス検出部119〜設定レジスタ122の4つの値によるPMU設定信号に応じて、PMU107の動作を設定する。また、図2では、生成部123によって生成されるDMA設定信号に応じたDMAコントローラ103、104の動作についても、併せて説明を行う。
また、図2で示す表201、表202は、PMU設定信号に応じた生成部123と設定部118の動作を示している。具体的に、表201は、第1情報、第2情報の組み合わせによる生成部123と設定部118の動作について図示しており、表202は、さらに、第3情報、第4情報との組み合わせによる生成部123と設定部118の動作について図示している。
生成部123は、LSB(Least Significant Bit)となる0ビット目が第2情報を示し、1ビット目が第3情報を示し、2ビット目が第1情報を示し、3ビット目が第4情報を示すPMU設定信号を生成する。以下、第2情報を示す0ビット目が“0”であれば非活性化状態を示し、“1”であれば活性化状態を示すこととする。同様に、第3情報を示す1ビット目が“0”であれば非競合状態を示し、“1”であれば競合状態を示す。また、第1情報を示す2ビット目が“0”であればキャッシュヒットを示し、“1”であればキャッシュミスを示す。また、第4情報を示す3ビット目が“0”であればリアルタイム制約がないことを示し、“1”であればリアルタイム制約があることを示す。
始めに表201の1行1項目について説明を行う。生成部123は、第1情報がキャッシュヒットを示すとともに第2情報が非活性化状態を示すときに、PMU107を低消費電力モードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュヒットであり、かつ、第2情報が非活性化状態である情報処理システム100の状態を、状態1と呼称する。また、生成部123は、情報処理システム100が状態1の場合、DMA設定信号を生成しない。
具体的に、情報処理システム100が状態1の場合、生成部123は、PMU設定信号として0ビット目が“0”、1ビット目が“0”、2ビット目が“0”、3ビット目が“0”となる”0000”を生成する。生成されたPMU設定信号は、制御レジスタ117に設定される。
設定部118は、第1情報がキャッシュヒットを示すとともに第2情報が非活性化状態を示すときに、低消費電力モードを設定してもよい。たとえば、CPU101、CPU102のいずれもキャッシュヒットをしており、DMAコントローラ103、DMAコントローラ104のいずれも未使用である状態1の場合を想定する。このとき、設定部118は、制御レジスタ117より“0000”を読み取り、低消費電力モードを設定する。低消費電力モードとなった場合、PMU107は、バス109へのクロックを停止させる。このとき、共用リソース106のうち、DRAMに関するリフレッシュクロックの供給は継続される。なお、状態1に関する情報処理システム100の詳細な動作に関しては、図3にて後述する。
次に、表201の2行1項目について説明を行う。また、生成部123は、第1情報がキャッシュヒットを示すとともに第2情報が活性化状態を示すときに、PMU107を通常モードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュヒットであり、かつ第2情報が活性化状態である情報処理システム100の状態を、状態2と呼称する。また、生成部123は、情報処理システム100が状態2の場合、DMA設定信号として、高密度転送を示す“1”を生成する。
具体的に、情報処理システム100が状態2の場合、生成部123は、PMU設定信号として0ビット目が“1”、1ビット目が“0”、2ビット目が“0”、3ビット目が“0”となる”0001”を生成する。
また、設定部118は、第1情報がキャッシュヒットを示すとともに第2情報が活性化状態を示すときに、通常モードを設定してもよい。たとえば、CPU101、CPU102のいずれもキャッシュヒットをしており、DMAコントローラ103、DMAコントローラ104の何れか一方が使用中である状態2である場合を想定する。このとき、設定部118は、制御レジスタ117より“0001”を読み取り、通常モードを設定する。なお、状態2に関する情報処理システム100の詳細な動作に関しては、図4にて後述する。
次に、表201の1行2項目について説明を行う。生成部123は、第1情報がキャッシュミスを示すとともに第2情報が非活性化状態を示すときに、PMU107を通常モードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュミスであり、かつ第2情報が非活性化状態である情報処理システム100の状態を、状態3と呼称する。また、生成部123は、情報処理システム100が状態3の場合、DMA設定信号を生成しない。具体的に、情報処理システム100が状態3の場合、生成部123は、PMU設定信号として0ビット目が“0”、1ビット目が“0”、2ビット目が“1”、3ビット目が“0”となる”0100”を生成する。
また、設定部118は、第1情報がキャッシュミスを示すとともに第2情報が非活性化状態を示すときに、通常モードを設定してもよい。たとえば、CPU101、CPU102の何れか一方がキャッシュミスをしており、DMAコントローラ103、DMAコントローラ104のいずれも未使用である状態3である場合を想定する。このとき、設定部118は、制御レジスタ117より“0100”を読み取り、通常モードを設定する。
また、設定部118は、情報処理システム100がメモリアクセスレイテンシのある回路である場合に、CPU/メモリのクロック比率を変更する。なお、メモリアクセスレイテンシのある回路とは、メモリアクセスの発行命令からメモリアクセスまで2サイクル以上かかる回路のことである。なお、状態3に関する情報処理システム100の詳細な動作に関しては、図5にて後述する。
次に、表201の2行2項目について説明を行う。キャッシュミス検出部119と高速I/O検出部120が2行2項目に当てはまる場合、生成部123、設定部118は、表202の条件に従う。始めに、表202の1行目について説明する。生成部123は、第1情報がキャッシュミスを示すとともに第2情報が活性化状態を示し、さらに第3情報がアクセス非競合状態を示すときに、PMU107を通常モードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュミスであり、かつ第2情報が活性化状態であり、かつ第3情報がアクセス非競合状態である情報処理システム100の状態を、状態4と呼称する。また、生成部123は、情報処理システム100が状態4の場合、DMA設定信号として、高密度転送を示す“1”を生成する。
具体的に、情報処理システム100が状態4の場合、生成部123は、PMU設定信号として0ビット目が“1”、1ビット目が“0”、2ビット目が“1”、3ビット目が“0”となる”0101”を生成する。
また、設定部118は、第1情報がキャッシュミスを示すとともに第2情報が活性化状態を示し、さらに第3情報がアクセス非競合状態を示すときに、通常モードを設定してもよい。たとえば、CPU101、CPU102の少なくとも何れか一方がキャッシュミスをしており、DMAコントローラ103、DMAコントローラ104の少なくとも何れか一方が使用中であり、メモリコントローラ105が非競合状態である場合を想定する。このとき、設定部118は、制御レジスタ117より“0101”を読み取り、通常モードを設定する。なお、状態4に関する情報処理システム100の詳細な動作に関しては、図6にて後述する。
次に、表202の2行1項目について説明する。生成部123は、第3情報がアクセス競合状態を示すとともに第4情報がリアルタイム制約ありを示すときに、PMU107をオーバークロックモードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュミスであり、かつ第2情報が活性化状態であり、かつ第3情報がアクセス非競合状態であり、かつ第4情報がリアルタイム制約ありの状態となる情報処理システム100の状態を、状態5−1と呼称する。また、生成部123は、情報処理システム100が状態5−1の場合、DMA設定信号として、高密度転送を示す“1”を生成する。
具体的に、情報処理システム100が状態5−1の場合、生成部123は、PMU設定信号として0ビット目が“1”、1ビット目が“1”、2ビット目が“1”、3ビット目が“1”となる”1111”を生成する。
また、設定部118は、第1情報がキャッシュミスを示すとともに第2情報が活性化状態を示し、さらに第3情報がアクセス競合状態を示し、さらに第4情報がリアルタイム制約ありを示すときに、オーバークロックモードを設定してもよい。たとえば、CPU101、CPU102の少なくとも何れか一方がキャッシュミスをしており、DMAコントローラ103、DMAコントローラ104の少なくとも何れか一方が使用中である。さらに、共用リソース106が競合状態であり、リアルタイム制約ありの場合を想定する。このとき、設定部118は、制御レジスタ117より“1111”を読み取り、オーバークロックモードを設定する。なお、状態5−1に関する情報処理システム100の詳細な動作に関しては、図7にて後述する。
最後に、表202の2行2項目について説明する。生成部123は、第3情報がアクセス競合状態を示すとともに第4情報がリアルタイム制約なしを示すときに、PMU107を通常モードに設定させるPMU設定信号を生成してもよい。なお、第1情報がキャッシュミスであり、かつ第2情報が活性化状態であり、かつ第3情報がアクセス競合状態であり、かつ第4情報がリアルタイム制約なしの状態となる情報処理システム100の状態を、状態5−2と呼称する。また、生成部123は、情報処理システム100が状態5−2の場合、DMA設定信号として、低密度転送を示す“0”を生成する。
具体的に、情報処理システム100が状態5−2の場合、生成部123は、PMU設定信号として0ビット目が“1”、1ビット目が“1”、2ビット目が“1”、3ビット目が“0”となる”0111”を生成する。
また、設定部118は、第1情報がキャッシュミスを示すとともに第2情報が活性化状態を示し、さらに第3情報がアクセス競合状態を示し、さらに第4情報がリアルタイム制約なしを示すときに、通常モードを設定してもよい。たとえば、CPU101、CPU102の少なくとも何れか一方がキャッシュミスをしており、DMAコントローラ103、DMAコントローラ104の少なくとも何れか一方が使用中である。さらに、共用リソース106が競合状態であり、リアルタイム制約なしの場合を想定する。このとき、設定部118は、制御レジスタ117より“0111”を読み取り、通常モードを設定する。なお、状態5−2に関する情報処理システム100の詳細な動作に関しては、図8にて後述する。
図2にて説明を行った状態1〜状態5−2について、図3〜図8にて具体例を記述する。なお、図3〜図8における情報処理システム100の性能は下記の通りである。バス109は、バス幅が64[ビット]、クロック周波数が所定値である500[MHz]で動作する。CPU101、CPU102のバス幅が32[ビット]、クロック周波数が1[GHz]で動作する。共用リソース106の一つであるメモリについては、以下2つの設定が可能であると想定する。1つ目の設定が、バス幅が64[ビット]、クロック周波数が1[GHz]で動作するCPUとメモリのクロック比が1:1となる設定である。2つ目の設定が、バス幅が64[ビット]、クロック周波数が500[MHz]で動作するCPUとメモリのクロック比が2:1となる設定である。
また、DMAコントローラ103、DMAコントローラ104は、転送単位がワード転送、またはダブルワード転送という2つの転送方法の何れかで動作する。特に設定の変更がない場合、DMAコントローラ103、DMAコントローラ104は、ダブルワード転送を行う。また、本実施の形態では、1ワードを32ビットであると想定する。したがって、ワード転送では、1クロックにて32[ビット]のデータ量を転送し、ダブルワード転送では1クロックにて64[ビット]のデータ量を転送する。また、情報処理システム100が実行する処理の一つである通信着信は、リアルタイム制約となるQoS(Quality of Service)時間として10[ミリ秒]以内の応答が要求される。
なお、説明の簡略化のため、図3〜図8にて、キャッシュミスが発生したCPUは、CPU101であると想定する。同様に、使用中となったDMAコントローラは、DMAコントローラ103であると想定する。
図3は、情報処理システム100が状態1の場合の動作を示す説明図である。図3に示す情報処理システム100は、CPU101、CPU102のいずれもキャッシュヒットをしており、DMAコントローラ103、DMAコントローラ104のいずれも未使用である状態1の場合である。なお、情報処理システム100が状態1となる具体例としては、ユーザが情報処理システム100を操作しない状態で、カーネルプロセスなどが周期的に動作し、かつ常にキャッシュヒットしている状態で動作している場合である。
このとき、バスコントローラ108は、“0000”=0HというPMU設定信号を生成し、PMU107に送信する。なお、3ビット目である第4情報について、設定レジスタ122にリアルタイム制約がありと設定されていても、0ビット目〜2ビット目全てが“1”でないと判断基準として利用されない。したがって、バスコントローラ108は、リアルタイム制約なしを示す“0”を設定する。または、バスコントローラ108は、“1000”というPMU設定信号を生成し、設定部118は、0ビット目〜2ビット目全てが“1”でないことから、3ビット目を無効として扱ってもよい。この動作は、状態2〜状態4についても同様である。
PMU設定信号が設定されたPMU107は、低消費電力モードとして、共用リソース106のうち、DRAMに関するリフレッシュクロック以外となるバス109のクロックの供給を停止させる。このように、状態1における情報処理システム100では、バス109が使用されていないため、クロックの供給を止めることができ、消費電力を削減することができる。
図4は、情報処理システム100が状態2の場合の動作を示す説明図である。図4に示す情報処理システム100は、CPU101、CPU102のいずれもキャッシュヒットをしており、DMAコントローラ103が使用中である状態2の場合である。なお、情報処理システム100が状態2となる具体例としては、DMAコントローラ103を使用したダウンロード処理を行っており、ユーザが情報処理システム100を操作せず、カーネルプロセスが常にキャッシュヒットの状態で動作している場合である。
このとき、バスコントローラ108は、“0001”=1HというPMU設定信号を生成し、PMU107に送信する。PMU設定信号が設定されたPMU107は、通常モードとして、バス109へのクロックの供給を500[MHz]に設定する。また、バスコントローラ108は、高密度転送を示す“1”というDMA設定信号を生成し、DMAコントローラ103、DMAコントローラ104に送信する。DMA設定信号が設定されたDMAコントローラ103、DMAコントローラ104は、高密度転送となるダブルワード転送を行う。
図5は、情報処理システム100が状態3の場合の動作を示す説明図である。図5に示す情報処理システム100は、CPU101がキャッシュミスをしており、DMAコントローラ103、DMAコントローラ104がいずれも未使用である状態3の場合である。なお、情報処理システム100が状態3となる具体例としては、情報処理システム100内のデータを検索している場合である。
このとき、バスコントローラ108は、“0100”=4HというPMU設定信号を生成し、PMU107に送信する。PMU設定信号が設定されたPMU107は、通常モードとして、バス109へのクロックの供給を500[MHz]に設定する。また、情報処理システム100はメモリアクセスレイテンシがある回路であることを想定しているため、CPU/メモリのクロック比率を2:1に設定する。図5の例では、メモリのクロック数を500[MHz]に減ずる。
なお、クロック比率を2:1に設定する理由として、情報処理システム100が状態3では、共用リソース106のメモリに対してDMAコントローラ103、DMAコントローラ104からのアクセスが存在しない。したがって、クロック比率の設定については、CPU101、CPU102からのアクセスに対して考慮すればよい。CPU101、CPU102のバス幅は32[ビット]であり、メモリのバス幅64[ビット]の半分の値であるため、メモリのクロック数をCPU101、CPU102の半分の設定にしても、CPU101、CPU102からのアクセスに対応することができる。
このように、状態3における情報処理システム100は、共用リソース106のメモリに対してCPU101、CPU102からのアクセスに限定することで、メモリのクロック数を下げることができ、消費電力を削減することができる。
図6は、情報処理システム100が状態4の場合の動作を示す説明図である。図6に示す情報処理システム100は、CPU101がキャッシュミスをしており、DMAコントローラ103が使用中である状態4の場合である。なお、情報処理システム100が状態4となる具体例としては、バックグラウンドでダウンロード処理を行っており、ユーザのメニュー操作によるイベント受信を受けた場合である。
このとき、メニュー操作により階層メニューを初めて読み込んだ際に、CPU101は、キャッシュメモリ111に対して、新たな階層メニューのデータが存在するか検索する。階層メニューは初めて読み込まれるため、キャッシュメモリ111に存在せず、CPU101は、共用リソース106にアクセスすることになる。階層メニューが読み込まれた後、CPU101は、キャッシュメモリ111に格納されたデータを元にメニュー操作に対応するデータの処理を行う。このように、図6での具体例となっている情報処理システム100は、CPU101にてキャッシュミスが発生するが、連続したPIOが発生していないため、共用リソース106に対するアクセス競合が発生しない状態である。
このとき、バスコントローラ108は、“0101”=5HというPMU設定信号を生成し、PMU107に送信する。PMU設定信号が設定されたPMU107は、通常モードとして、バス109へのクロックの供給を500[MHz]に設定する。また、バスコントローラ108は、高密度転送を示す“1”というDMA設定信号を生成し、DMAコントローラ103、DMAコントローラ104に送信する。DMA設定信号が設定されたDMAコントローラ103、DMAコントローラ104は、高密度転送となるダブルワード転送を行う。
図7は、情報処理システム100が状態5−1の場合の動作を示す説明図である。図7に示す情報処理システム100は、CPU101がキャッシュミスをしており、DMAコントローラ103が使用中であり、共用リソース106に対するアクセス競合を検出中であり、リアルタイム制約がある状態5−1の場合である。なお、情報処理システム100が状態5−1となる具体例としては、情報処理システム100がデータタウンロードを行い、かつ、情報処理システム100内のデータを検索しており、かつ、通信着信が発生するような場合である。通信着信にはリアルタイム制約があるため、一定時間以内に応答することが求められる。
このとき、バスコントローラ108は、“1111”=fHというPMU設定信号を生成し、PMU107に送信する。PMU設定信号が設定されたPMU107は、オーバークロックモードとして、バスのクロックの供給を1[GHz]に設定し、メモリのクロック周波数を1.5[GHz]に設定する。情報処理システム100の性能を高めることで、情報処理システム100はリアルタイム制約となるQoS時間10[ミリ秒]以内に通信着信を応答することができる。このように、状態5−1における情報処理システム100は、アクセス競合状態となっても、アクセス競合を解消し、リアルタイム制約の時間内に処理を実行することができる。
また、バスコントローラ108は、高密度転送を示す“1”というDMA設定信号を生成し、DMAコントローラ103、DMAコントローラ104に送信する。DMA設定信号が設定されたDMAコントローラ103、DMAコントローラ104は、高密度転送となるダブルワード転送を行う。
図8は、情報処理システム100が状態5−2の場合の動作を示す説明図である。図8に示す情報処理システム100は、CPU101がキャッシュミスをしており、DMAコントローラ103が使用中であり、共用リソース106に対するアクセス競合を検出中であり、リアルタイム制約がない状態5−2の場合である。なお、情報処理システム100が状態5−1となる具体例としては、情報処理システム100がデータタウンロードを行い、かつ、情報処理システム100内のデータを検索しているような場合である。
このとき、バスコントローラ108は、“0111”=7HというPMU設定信号を生成し、PMU107に送信する。PMU設定信号が設定されたPMU107は、通常モードとして、バス109へのクロックの供給を500[MHz]に設定する。また、バスコントローラ108は、低密度転送を示す“0”というDMA設定信号を生成し、DMAコントローラ103、DMAコントローラ104に送信する。DMA設定信号が設定されたDMAコントローラ103、DMAコントローラ104は、低密度転送となるワード転送を行う。
これにより、バス109のバス幅64[ビット]のうち、ダブルワード転送からワード転送に切り替わって使用されなくなった32[ビット]分のデータに、CPU101によるPIO転送が入りやすくなる。このように、状態5−2における情報処理システム100は、メモリに対するアクセス競合が発生した際に、消費電力を増大せずに、DMA転送を行いつつも、CPU101、CPU102によるPIO転送も行えるようにすることができる。
以上説明したように、情報処理システムによれば、CPUによる第1情報であるキャッシュヒットか若しくはキャッシュミスかという情報と第2情報であるDMA使用中か否かという情報に応じてPMUがクロックを変更する。これにより、情報処理システムは、メモリアクセス競合時にはオーバークロックに設定し競合を解消し、アクセスがないときにはクロック供給を停止させ消費電力を削減できる。また、本実施の形態にかかる情報処理システムは、DMAコントローラ、メモリコントローラに改版を行わないため、対応にかかるコストが少なくて済む。
また、アクセス競合を解消する方法として、シミュレーションによって競合が発生するか否かを判断し、ソフトウェアのスケジューラを操作することで、アクセス競合を解消することが可能である。しかしながら、ソフトウェアのスケジューラの操作方法とは、ソフトウェアのアクセス順序を入れ替えることでアクセス競合を解決しており、アクセス順序を入れ替えてもアクセス競合の解消を行えない場合も存在する。本実施の形態における情報処理システムでは、アクセス順序を入れ替えてもアクセス競合の解消を行えない場合であっても、アクセス競合を解消することができる。また、本実施の形態における情報処理システムはソフトウェアに対する改版も行わないため、対応にかかるコストが小さく、また、OSのバージョンアップ等による対応も行わなくてよい。
また、情報処理システムは、第1情報がキャッシュヒットを示すとともに、第2情報が未使用である状態1を示す場合、PMUがバスのクロックを低消費電力モードに設定してもよい。これにより、情報処理システムは、消費電力を削減することができる。
また、情報処理システムは、第1情報がキャッシュヒットを示すとともに、第2情報が使用中である状態2を示す場合、PMUがバスのクロックを通常モードに設定してもよい。これにより、情報処理システムは、たとえば、CPUとDMAコントローラとによるアクセス競合状態が解消し、DMAコントローラのみのアクセスとなった場合に、バスのクロックを通常に戻すことで、消費電力を削減することができる。
また、情報処理システムは、状態2を示す場合、DMAコントローラを高密度転送に設定してもよい。情報処理システムが状態2の時は、PIO転送が発生していないため、DMAコントローラを高密度転送に設定することで、効率のよいデータ転送を行うことができる。
また、情報処理システムは、第1情報がキャッシュミスを示すとともに第2情報が未使用である状態3を示す場合、PMUがバスのクロックを通常モードに設定してもよい。これにより、情報処理システムは、たとえば、CPUとDMAコントローラとによるアクセス競合状態が解消し、CPUのみのアクセスとなった場合に、バスのクロックを通常に戻すことで、消費電力を削減することができる。
また、情報処理システムは、第1情報がキャッシュミスを示すとともに第2情報が未使用である場合、アクセス競合状態か否かを示す第3情報に基づいて、消費電力モードを設定してもよい。これにより、情報処理システムは、メモリアクセス競合時にはオーバークロックに設定しアクセス競合を解消できる。
また、情報処理システムは、第3情報がアクセス非競合状態を示す状態4では、PMUがバスのクロックを通常モードに設定し、第3情報がアクセス競合状態を示すときには、PMUがバスのクロックをオーバークロックモードに設定してもよい。これにより、情報処理システムは、アクセス競合の発生中に限りオーバークロックに設定するため、最低限の消費電力増で済ませることができる。
また、情報処理システムは、状態4を示す場合、DMAコントローラを高密度転送に設定してもよい。情報処理システムが状態4のときは、PIO転送が単発で発生している状態であり、PIO転送の発生頻度が低い状態となるため、DMAコントローラを高密度転送に設定することで、効率のよいデータ転送を行うことができる。
また、情報処理システムは、第3情報がアクセス競合状態を示すとき、CPUで実行する処理に時間制約があるか否かを示す第4情報に基づいて、消費電力モードを設定してもよい。これにより、情報処理システムは、時間制約があるリアルタイム応答時に限り、オーバークロックに設定しアクセス競合を解消できる。
また、情報処理システムは、第4情報が時間制約のあることを示す状態5−1のときは、PMUがバスのクロックをオーバークロックモードに設定し、第4情報が時間制約のないことを示す状態5−2のときは、通常モードに設定してもよい。これにより、情報処理システムは、アクセス競合の発生中で、かつリアルタイム制約があるときに限りオーバークロックに設定するため、最低限の消費電力増で済ませることができる。
また、情報処理システムは、状態5−1を示す場合、DMAコントローラを高密度転送に設定し、状態5−2を示す場合、DMAコントローラを低密度転送に設定してもよい。これにより、情報処理システムは、状態5−1のときに、リアルタイム制約があるため効率のよいデータ転送が行え、リアルタイム制約を順守することができる。また、情報処理システムは、状態5−2のときに、低密度転送を行うことで、PIO転送が行いやすくなるため、アクセス競合を解消することができる。
また、本実施の形態で説明したバスコントローラ108は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述したバスコントローラ108の機能(キャッシュミス検出部119〜生成部123)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、バスコントローラ108を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)バスに接続されるCPUと、
バスに接続されるデバイスと、
前記CPUまたは前記デバイスにアクセスされるメモリと、
消費電力モードを設定するパワーモード制御回路と、
を含み、
前記パワーモード制御回路は、前記CPU内のキャッシュメモリのキャッシュヒット若しくはキャッシュミスを示す第1情報と前記デバイスの活性化状態若しくは非活性化状態を示す第2情報とに基づいて、前記消費電力モードを設定すること
を特徴とする情報処理システム。
(付記2)前記パワーモード制御回路は、
前記第1情報がキャッシュメモリのキャッシュヒットを示すとともに前記第2情報が非活性化状態を示すときに、低消費電力モードを設定すること
を特徴とする付記1に記載の情報処理システム。
(付記3)前記パワーモード制御回路は、
前記第1情報がキャッシュメモリのキャッシュヒットを示すとともに前記第2情報が活性化状態を示すときに、通常モードを設定すること
を特徴とする付記1または付記2に記載の情報処理システム。
(付記4)前記第1情報がキャッシュメモリのキャッシュミスを示すとともに前記第2情報が非活性化状態を示すときに、通常モードを設定すること
を特徴とする付記1乃至付記3の何れか一の付記に記載の情報処理システム。
(付記5)前記パワーモード制御回路は、
前記第1情報がキャッシュメモリのキャッシュミスを示すとともに前記第2情報が活性化状態を示すとき、前記バスのアクセス競合状態若しくは非競合状態を示す第3情報に基づいて、前記消費電力モードを設定すること
を特徴とする付記1乃至付記4の何れか一の付記に記載の情報処理システム。
(付記6)前記パワーモード制御回路は、
前記第3情報が前記バスのアクセス非競合状態を示すときは通常モードに設定し、前記第3情報が前記バスのアクセス競合状態を示すときはオーバークロックモードに設定すること
を特徴とする付記1乃至付記5の何れか一の付記に記載の情報処理システム。
(付記7)前記デバイスはDMAコントローラを含み、DMA転送モードが設定されること
を特徴とする付記3または付記5に記載の情報処理システム。
(付記8)前記パワーモード制御回路は、
前記第3情報が前記バスのアクセス競合状態を示すとき、前記CPUで実行する処理に時間制約があるか否かを示す第4情報に基づいて、前記消費電力モードを設定すること
を特徴とする付記5に記載の情報処理システム。
(付記9)前記パワーモード制御回路は、
前記第4情報が時間制約のあることを示すときはオーバークロックモードに設定し、前記第4情報が時間制約のないことを示すときは通常モードに設定すること
を特徴とする付記8に記載の情報処理システム。
(付記10)前記デバイスはDMAコントローラを含み、前記第4情報が時間制約のあることを示すときは前記DMAコントローラの転送単位が前記バスのバス幅に設定され、前記第4情報が時間制約のないことを示すときは前記転送単位が前記バスのバス幅より小さい値に設定されること
を特徴とする付記8に記載の情報処理システム。
(付記11)バスに接続されるCPUと、
バスに接続されるデバイスと、
前記バスを介して前記CPUおよび前記デバイスの接続されるメモリと、
前記バスのアクセスを監視するバスコントローラと、
前記バスコントローラからの設定信号に基づいて消費電力モードを設定するパワーモード制御回路と、
を含み、
前記バスコントローラは、
前記CPU内のキャッシュメモリのキャッシュヒット若しくはキャッシュミスを示す第1情報を検出する第1回路と、
前記デバイスの活性化状態若しくは非活性化状態を示す第2情報を検出する第2回路と
を含むことを特徴とする情報処理システム。
(付記12)前記バスコントローラは、前記CPUが前記メモリに連続アクセスを行うか否かの第3情報を検出する第3回路を含むこと
を特徴とする付記11に記載の情報処理システム。
(付記13)前記バスコントローラは、前記CPUが実行する処理に時間制約があるか否かを示す第4情報を記憶する第4回路を含むこと
を特徴とする付記11に記載の情報処理システム。
(付記14)前記第1回路から出力される第1情報と前記第2回路から出力される第2情報とに基づいて前記設定信号を生成する第5回路を含むこと
を特徴とする付記11または付記12に記載の情報処理システム。
(付記15)前記第1回路は、前記CPU内のステータスレジスタの出力に基づいて前記第1情報を検出し、
前記第2回路は、前記デバイス内の制御レジスタの出力に基づいて前記第2情報を検出すること
を特徴とする付記11乃至付記14の何れか一の付記に記載の情報処理システム。
(付記16)前記第3回路は、前記メモリを制御するメモリコントローラ内のステータスレジスタの出力に基づいて前記第3情報を検出すること
を特徴とする付記12に記載の情報処理システム。
100 情報処理システム
101、102 CPU
103、104 DMAコントローラ
105 メモリコントローラ
106 共用リソース
107 PMU
108 バスコントローラ
109 バス
110、112、116 ステータスレジスタ
111、113 キャッシュメモリ
114、115、117 制御レジスタ
118 設定部
119 キャッシュミス検出部
120 高速I/O検出部
121 アクセス競合検出部
122 設定レジスタ
123 生成部