(57)【要約】【課題】省面積化に寄与しつつ、複数のプロセッサと、複数のプロセッサで共用されるキャッシュメモリとが１チップに集積された演算装置を提供する。【解決手段】１チップに集積された演算装置１０１は、複数のタスクを並列で実行可能なプロセッサ１０２−１，１０２−２と、プロセッサ１０２−１，１０２−２で共用されるキャッシュメモリ１０３とを備え、キャッシュメモリ１０３は、シングルポートメモリ１０５−１〜１０５−ｎと、読み出しデータ選択部１０７−１，１０７−２とを備え、シングルポートメモリ１０５−１〜１０５−ｎの各々は、データ出力ポートが１ポートであり、読み出しデータ選択部１０７−１，１０７−２の各々は、プロセッサ１０２−１，１０２−２の各々と一対一で対応付けられ、対応付けられたプロセッサに読み出されるデータを記憶しているシングルポートメモリを、シングルポートメモリ１０５−１〜１０５−ｎの中から選択する。【選択図】図１
2008097572.tif 000002
【特許請求の範囲】
【請求項１】
１チップに集積された演算装置であって、
複数のタスクを並列で実行可能な複数のプロセッサと、
前記複数のプロセッサで共用されるキャッシュメモリとを備え、
前記キャッシュメモリは、複数のデータ記憶部と、複数の読み出しデータ選択部とを備え、
前記複数のデータ記憶部の各々は、データ出力ポートが１ポートであり、
前記複数の読み出しデータ選択部の各々は、前記複数のプロセッサの各々と一対一で対応付けられ、対応付けられたプロセッサに読み出されるデータを記憶しているデータ記憶部を、前記複数のデータ記憶部の中から選択する
ことを特徴とする演算装置。
【請求項２】
前記複数のデータ記憶部の各々は、メモリアクセス要求入力ポートとデータ入力ポートとのそれぞれが１ポートであり、
前記キャッシュメモリは、複数のメモリアクセス要求選択部を備え、
前記複数のメモリアクセス要求選択部の各々は、前記複数のデータ記憶部の各々と一対一で対応付けられ、対応付けられたデータ記憶部に対して割り付けられたタスクを実行しているプロセッサから出力されたメモリアクセス要求を、前記複数のプロセッサから個別に出力されたメモリアクセス要求の中から選択する
ことを特徴とする請求項１に記載の演算装置。
【請求項３】
前記複数のデータ記憶部の各々は、前記複数のデータ記憶部における１以上のデータ記憶部から各々が構成されている複数のデータ記憶領域のいずれか１つに分類されており、
前記キャッシュメモリは、
前記複数のデータ記憶領域における所定のデータ記憶領域に対して所定のタスクが割り付けられたことが示される割付情報を、前記所定のデータ記憶領域と対応付けて保持する割付情報保持部と、
前記所定のタスクに対してリフィルが生じた場合は、リフィル可能なデータ記憶領域として、前記割付情報保持部で保持されている割付情報に基づいて、前記複数のデータ記憶領域の中から前記所定のデータ記憶領域を特定する特定部とを備える
ことを特徴とする請求項１に記載の演算装置。
【請求項４】
前記キャッシュメモリは、ｎ（ｎは自然数である。）ウェイセットアソシエイティブ方式のキャッシュメモリであり、
前記複数のデータ記憶部の各々は、前記ｎウェイの各々と一対一で対応付けられている
ことを特徴とする請求項１に記載の演算装置。
【請求項５】
請求項３に記載の演算装置と、
割付プログラムを記憶している主記憶装置とを備え、
前記割付プログラムを実行した前記演算装置は、前記所定のタスクが生成されたときに、前記複数のデータ記憶領域の中から、前記所定のタスクに対して前記所定のデータ記憶領域を割り付け、前記割付情報を前記所定のデータ記憶領域と対応付けて前記割付情報保持部に登録する
ことを特徴とするコンピュータシステム。
【請求項６】
前記割付プログラムを実行した前記演算装置は、前記複数のデータ記憶領域の各々に対するタスクの割り付けを管理し、前記複数のデータ記憶領域の中から、タスクごとに異なるデータ記憶領域を割り付け、タスクごとに異なる割付情報を、タスクごとに異なるデータ記憶領域と対応付けて前記割付情報保持部に登録する
ことを特徴とする請求項５に記載のコンピュータシステム。
【請求項７】
前記割付プログラムを実行した前記演算装置は、前記複数のプロセッサの各々と一対一で各々が対応付けられている複数のキャッシュ領域のいずれか１つに前記複数のデータ記憶領域の各々を分類して前記複数のデータ記憶領域の各々に対するタスクの割り付けを管理し、前記複数のプロセッサにおける所定のプロセッサで実行されるタスクについては、前記複数のキャッシュ領域において前記所定のプロセッサと対応付けられている所定のキャッシュ領域の中からデータ記憶領域を割り付け、前記所定のプロセッサで実行される複数のタスクが個別に識別される複数の割付情報を前記所定のキャッシュ領域と対応付けて前記割付情報保持部に登録する
ことを特徴とする請求項５に記載のコンピュータシステム。
【請求項８】
前記割付プログラムを実行した前記演算装置は、前記所定のキャッシュ領域を構成する複数のデータ記憶領域の各々を、１つのタスクだけに割り付け可能なデータ記憶領域から構成される第１の部分キャッシュ領域と、複数のタスクに割り付け可能なデータ記憶領域から構成される第２の部分キャッシュ領域とのいずれか１つに分類し、前記所定のプロセッサで実行されるタスクが所定の種類のタスクである場合は、前記第１の部分キャッシュ領域の中からデータ記憶領域を割り付け、前記所定のプロセッサで実行されるタスクが所定の種類のタスクでない場合は、前記第２の部分キャッシュ領域の中からデータ記憶領域を割り付ける
ことを特徴とする請求項７に記載のコンピュータシステム。
【請求項９】
前記複数のプロセッサは、第１の動作速度で動作する第１のプロセッサと、前記第１の動作速度よりも低速である第２の動作速度で動作する第２のプロセッサとを備え、
前記複数の読み出しデータ選択部は、前記第１のプロセッサに対応する第１の読み出しデータ選択部と、前記第２のプロセッサに対応する第２の読み出しデータ選択部とを備え、
前記キャッシュメモリは、前記第１のプロセッサの動作速度と前記第２のプロセッサの動作速度との速度差に合わせて、前記第２の読み出しデータ選択部から出力されたデータが前記第２のプロセッサに入力する時機を調整する速度差調整部を備える
ことを特徴とする請求項１に記載の演算装置。
【請求項１０】
前記第１の動作速度は、前記第２の動作速度のｋ（ｋは自然数である。）倍であり、
前記キャッシュメモリの動作クロックは、前記第１のプロセッサの動作クロックと同一であり、
前記速度差調整部は、前記キャッシュメモリの動作クロックで換算して、前記第２の読み出しデータ選択部から出力されたデータが前記第２のプロセッサに入力する時機を、前記第１の読み出しデータ選択部から出力されたデータが前記第１のプロセッサに入力する時機に対して、ｋ−１クロック遅延させる遅延回路を備える
ことを特徴とする請求項９に記載の演算装置。
【請求項１１】
前記第２のプロセッサで実行可能な命令セットは、前記第１のプロセッサで実行可能な命令セットと同一である
ことを特徴とする請求項９に記載の演算装置。
【請求項１２】
前記第１のプロセッサは、動作モードが第１のモードであるときは、前記第１の動作速度で動作し、動作モードが第２のモードであるときは、前記第２の動作速度で動作し、
前記速度差調整部は、前記第１のモードであるときは、前記第２のプロセッサに入力する時機を調整し、前記第２のモードであるときは、前記第２のプロセッサに入力する時機を調整しない
ことを特徴とする請求項９に記載の演算装置。
【請求項１３】
請求項１に記載の演算装置と、
音声データをデコードする音声デコードプログラムと、画像データをデコードする画像デコードプログラムとを記憶している主記憶装置と、
音声デコード結果に基づいて音声を出力する音声出力装置と、
画像デコード結果に基づいて画像を出力する画像出力装置とを備え、
前記複数のプロセッサのうち、前記画像デコードプログラムを実行したプロセッサは、画像データをデコードして得られた画像デコード結果を前記画像出力装置に出力し、
前記複数のプロセッサのうち、前記音声デコードプログラムを実行したプロセッサは、音声データをデコードして得られた音声デコード結果を前記音声出力装置に出力する
ことを特徴とする携帯機器。
【請求項１４】
複数のタスクを並列で実行可能な複数のプロセッサと、前記複数のプロセッサで共用されるキャッシュメモリとが１チップに集積された演算装置を制御する制御方法であって、
所定のタスクが生成されたときに、前記キャッシュメモリにおける複数のデータ記憶領域の中から、前記所定のタスクに対して所定のデータ記憶領域を割り付ける割付ステップと、
前記複数のプロセッサにおいて前記所定のタスクを実行している所定のプロセッサに読み出されるデータを記憶しているデータ記憶領域を、前記複数のデータ記憶領域の中から選択する選択ステップとを含む
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサが１チップに集積された演算装置に関し、特に、複数のプロセッサで共用されるキャッシュメモリも一緒に集積された演算装置に関する。
【背景技術】
【０００２】
近年、複数のプロセッサが１チップに集積された演算装置に関する技術開発が活発化している。そして、このような演算装置でも、処理性能を上げるために、キャッシュメモリも一緒に集積されているのが一般的である。このため、複数のプロセッサでキャッシュメモリを活用することが重要になる。これに対して、従来、複数のプロセッサでキャッシュメモリを共用する技術が色々と提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平１−２８０８６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記キャッシュメモリは、複数のプロセッサで共用するために、プロセッサごとにデータポートを有し、データポート数分のデータ線を必要とする。ここで、データポートとは、キャッシュメモリからデータが読み出される出力ポートと、キャッシュメモリにデータが書き込まれる入力ポートとの総称である。
【０００４】
例えば、１２８ｂｉｔのデータを読み書き可能なキャッシュメモリを２つのプロセッサで共用される場合を例にする。この場合において、データ線は、少なくとも１２８ｂｉｔ分の信号線を２組必要とする。このため、キャッシュメモリの容量が同じであっても、データポートがマルチポートであるキャッシュメモリは、データポートがシングルポートであるキャッシュメモリと比べれば、回路面積が大きくなるという問題がある。さらに、プロセッサの数が増えれば、データポートの数も増える。このため、プロセッサの数が増えれば増えるほど、上記問題が顕著になる。
【０００５】
そこで、本発明は上記問題に鑑みてなされたものであり、省面積化に寄与しつつ、複数のプロセッサと、複数のプロセッサで共用されるキャッシュメモリとが１チップに集積された演算装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明に係わる演算装置は、（ａ）１チップに集積された演算装置であって、（ａ１）複数のタスクを並列で実行可能な複数のプロセッサと、（ａ２）前記複数のプロセッサで共用されるキャッシュメモリとを備え、（ａ３）前記キャッシュメモリは、複数のデータ記憶部と、複数の読み出しデータ選択部とを備え、（ａ３−１）前記複数のデータ記憶部の各々は、データ出力ポートが１ポートであり、（ａ３−２）前記複数の読み出しデータ選択部の各々は、前記複数のプロセッサの各々と一対一で対応付けられ、対応付けられたプロセッサに読み出されるデータを記憶しているデータ記憶部を、前記複数のデータ記憶部の中から選択する。
【０００７】
これによって、データ記憶部とプロセッサとを接続する部分を、読み出しデータ選択部のような単純な選択回路で構成することで、少ないハードウェア量で複数のプロセッサを備える演算装置を構成することができる。さらに、データ記憶部のデータ出力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【０００８】
さらに、（ｂ）（ｂ１）前記複数のデータ記憶部の各々は、メモリアクセス要求入力ポートとデータ入力ポートとのそれぞれが１ポートであり、（ｂ２）前記キャッシュメモリは、複数のメモリアクセス要求選択部を備え、（ｂ２−１）前記複数のメモリアクセス要求選択部の各々は、前記複数のデータ記憶部の各々と一対一で対応付けられ、対応付けられたデータ記憶部に対して割り付けられたタスクを実行しているプロセッサから出力されたメモリアクセス要求を、前記複数のプロセッサから個別に出力されたメモリアクセス要求の中から選択するとしてもよい。
【０００９】
これによって、同時に複数のプロセッサから同一のデータ記憶部に対してアクセスがされなくなるので、データ記憶部のメモリアクセス要求入力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。さらに、同時に複数のプロセッサから同一のデータ記憶部に対して、データが書き込まれたり、読み出されたりすることがなくなるので、データ記憶部のデータ入力ポートとデータ出力ポートとも複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。また、同一のデータ記憶部に対するアクセス競合を回避することができるので、アクセス競合による調停を必要としない分、処理性能の向上に寄与する。
【００１０】
または、（ｃ）（ｃ１）前記複数のデータ記憶部の各々は、前記複数のデータ記憶部における１以上のデータ記憶部から各々が構成されている複数のデータ記憶領域のいずれか１つに分類されており、（ｃ２）前記キャッシュメモリは、（ｃ２−１）前記複数のデータ記憶領域における所定のデータ記憶領域に対して所定のタスクが割り付けられたことが示される割付情報を、前記所定のデータ記憶領域と対応付けて保持する割付情報保持部と、（ｃ２−２）前記所定のタスクに対してリフィルが生じた場合は、リフィル可能なデータ記憶領域として、前記割付情報保持部で保持されている割付情報に基づいて、前記複数のデータ記憶領域の中から前記所定のデータ記憶領域を特定する特定部とを備えるとしてもよい。
【００１１】
これによって、所定のタスクの実行に伴い生じたリフィルによって、他のタスクに割り付けられたデータ記憶部が不用意に書き換わることを回避することができる。そして、所定のタスクについては、所定のデータ記憶部にアクセスが制限されるので、同一のデータ記憶部に対するアクセス競合を回避することができる。さらに、同時に複数のプロセッサから同一のデータ記憶部に対してアクセスがされなくなるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【００１２】
または、（ｄ）（ｄ１）前記キャッシュメモリは、ｎ（ｎは自然数である。）ウェイセットアソシエイティブ方式のキャッシュメモリであり、（ｄ２）前記複数のデータ記憶部の各々は、前記ｎウェイの各々と一対一で対応付けられているとしてもよい。
【００１３】
これによって、各データ記憶部の管理を、ウェイごとに存在するチップセレクトで容易に実現することができる。
【００１４】
また、本発明に係わるコンピュータシステムは、（ｅ）（ｅ１）上記演算装置と、（ｅ２）割付プログラムを記憶している主記憶装置とを備え、（ｅ３）前記割付プログラムを実行した前記演算装置は、前記所定のタスクが生成されたときに、前記複数のデータ記憶領域の中から、前記所定のタスクに対して前記所定のデータ記憶領域を割り付け、前記割付情報を前記所定のデータ記憶領域と対応付けて前記割付情報保持部に登録する。
【００１５】
これによって、複数のプロセッサで複数のタスクが同時に実行される場合でも、各タスクが各データ記憶領域と対応付けられて管理されるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これから、データ記憶領域を構成する１以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【００１６】
さらに、（ｆ）前記割付プログラムを実行した前記演算装置は、前記複数のデータ記憶領域の各々に対するタスクの割り付けを管理し、前記複数のデータ記憶領域の中から、タスクごとに異なるデータ記憶領域を割り付け、タスクごとに異なる割付情報を、タスクごとに異なるデータ記憶領域と対応付けて前記割付情報保持部に登録するとしてもよい。
【００１７】
これによって、任意のプロセッサで任意のタスクが実行される場合でも、タスクごとに異なるデータ記憶領域を割り付けるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これから、データ記憶領域を構成する１以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【００１８】
または、（ｇ）前記割付プログラムを実行した前記演算装置は、前記複数のプロセッサの各々と一対一で各々が対応付けられている複数のキャッシュ領域のいずれか１つに前記複数のデータ記憶領域の各々を分類して前記複数のデータ記憶領域の各々に対するタスクの割り付けを管理し、前記複数のプロセッサにおける所定のプロセッサで実行されるタスクについては、前記複数のキャッシュ領域において前記所定のプロセッサと対応付けられている所定のキャッシュ領域の中からデータ記憶領域を割り付け、前記所定のプロセッサで実行される複数のタスクが個別に識別される複数の割付情報を前記所定のキャッシュ領域と対応付けて前記割付情報保持部に登録するとしてもよい。
【００１９】
これによって、所定のキャッシュ領域に分類されたデータ記憶領域の数が、所定のプロセッサで実行されるタスクの数より少ない場合でも、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これは、プロセッサごとにアクセス可能なデータ記憶領域が制限されるので、同時に複数のプロセッサから同一のデータ記憶領域に対してアクセスがされないことによる。これから、データ記憶領域を構成する１以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【００２０】
さらに、（ｈ）前記割付プログラムを実行した前記演算装置は、前記所定のキャッシュ領域を構成する複数のデータ記憶領域の各々を、１つのタスクだけに割り付け可能なデータ記憶領域から構成される第１の部分キャッシュ領域と、複数のタスクに割り付け可能なデータ記憶領域から構成される第２の部分キャッシュ領域とのいずれか１つに分類し、前記所定のプロセッサで実行されるタスクが所定の種類のタスクである場合は、前記第１の部分キャッシュ領域の中からデータ記憶領域を割り付け、前記所定のプロセッサで実行されるタスクが所定の種類のタスクでない場合は、前記第２の部分キャッシュ領域の中からデータ記憶領域を割り付けるとしてもよい。
【００２１】
これによって、所定のキャッシュ領域に分類されたデータ記憶領域の数が、所定のプロセッサで実行されるタスクの数より少ない場合でも、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これは、プロセッサごとにアクセス可能なデータ記憶領域が制限されるので、同時に複数のプロセッサから同一のデータ記憶領域に対してアクセスがされないことによる。これから、データ記憶領域を構成する１以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【００２２】
さらに、所定のプロセッサで実行される複数のタスクについては、タスクに応じて、タスクごとに異なるデータ記憶領域を割り付けたり、複数のタスクで共用されるデータ記憶領域を割り付けたりすることができるので、タスク切り替えによるキャッシュミスを低減しつつ、処理性能の向上に寄与する。これは、次の例からも容易に理解されることである。
【００２３】
例えば、所定のプロセッサで実行される複数のタスクに対して同一のデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しやすくなる。
【００２４】
一方、これらのタスクに対して異なるデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができなくなる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しにくくなる。
【００２５】
また、本発明に係わる演算装置は、（ｉ）（ｉ１）前記複数のプロセッサは、第１の動作速度で動作する第１のプロセッサと、前記第１の動作速度よりも低速である第２の動作速度で動作する第２のプロセッサとを備え、（ｉ２）前記複数の読み出しデータ選択部は、前記第１のプロセッサに対応する第１の読み出しデータ選択部と、前記第２のプロセッサに対応する第２の読み出しデータ選択部とを備え、（ｉ３）前記キャッシュメモリは、前記第１のプロセッサの動作速度と前記第２のプロセッサの動作速度との速度差に合わせて、前記第２の読み出しデータ選択部から出力されたデータが前記第２のプロセッサに入力する時機を調整する速度差調整部を備えるとしてもよい。
【００２６】
さらに、（ｊ）（ｊ１）前記第１の動作速度は、前記第２の動作速度のｋ（ｋは自然数である。）倍であり、（ｊ２）前記キャッシュメモリの動作クロックは、前記第１のプロセッサの動作クロックと同一であり、（ｊ３）前記速度差調整部は、前記キャッシュメモリの動作クロックで換算して、前記第２の読み出しデータ選択部から出力されたデータが前記第２のプロセッサに入力する時機を、前記第１の読み出しデータ選択部から出力されたデータが前記第１のプロセッサに入力する時機に対して、ｋ−１クロック遅延させる遅延回路を備えるとしてもよい。
【００２７】
これによって、動作速度の異なる複数のプロセッサがキャッシュメモリを共用する場合でも、複数のプロセッサの各プロセッサは、プロセッサ間の動作速度差を意識することなく、それぞれ同様のシーケンスで同時にアクセスすることができる。さらに、動作速度差を調整することができるので、データ記憶部のデータ出力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【００２８】
さらに、（ｋ）（ｋ１）前記第１のプロセッサは、動作モードが第１のモードであるときは、前記第１の動作速度で動作し、動作モードが第２のモードであるときは、前記第２の動作速度で動作し、（ｋ２）前記速度差調整部は、前記第１のモードであるときは、前記第２のプロセッサに入力する時機を調整し、前記第２のモードであるときは、前記第２のプロセッサに入力する時機を調整しないとしてもよい。
【００２９】
これによって、動作速度の異なる複数のプロセッサがキャッシュメモリを共用する場合でも、複数のプロセッサの各プロセッサは、プロセッサ間の動作速度差を意識することなく、かつ動作速度の切り替わりのタイミングを意識することなく、それぞれ同様のシーケンスで同時にアクセスすることができる。さらに、動作速度差を調整することができるので、データ記憶部のデータ出力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【００３０】
なお、本発明は、演算装置として実現されるだけではなく、演算装置を制御する演算装置制御方法などとして実現されるとしてもよい。また、演算装置の機能が組み込まれたＬＳＩ（Large Scale Integration）、その機能をＦＰＧＡ（Field Programmable Gate Array）、ＣＰＬＤ（Complex Programmable Logic Device）などのプログラマブル・ロジック・デバイスに形成するＩＰ（Intellectual Property）コア、そのＩＰコアを記録した記録媒体などとして実現されるとしてもよい。また、演算装置を備えるコンピュータシステム、そのコンピュータシステムを制御する方法、その方法を演算装置に実行させるプログラム、そのプログラムを記録した記録媒体などとして実現されるとしてもよい。また、そのコンピュータシステムを備える携帯機器、その携帯機器を制御する方法、その方法を携帯機器に実行させるプログラム、そのプログラムを記録した記録媒体などとして実現されるとしてもよい。
【発明の効果】
【００３１】
本発明の演算装置によれば、同一のデータ記憶部に対するアクセス競合を回避することができる。さらに、所定のタスクの実行に伴い生じたリフィルによって、他のタスクに割り付けられたデータ記憶部が不用意に書き換わることを回避することができる。このため、所定のタスクについては、所定のデータ記憶部にアクセスが制限されるので、同一のデータ記憶部に対するアクセス競合を回避することができる。
【００３２】
これから、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【００３３】
さらに、データ記憶部とプロセッサとを接続する部分を、読み出しデータ選択部のような単純な選択回路で構成することで、少ないハードウェア量で複数のプロセッサを備える演算装置を構成することができる。
【００３４】
さらに、同一のデータ記憶部に対するアクセス競合を回避することができるので、アクセス競合による調停を必要としない分、処理性能の向上に寄与する。
【００３５】
さらに、各データ記憶部の管理を、ウェイごとに存在するチップセレクトで容易に実現することができる。
【００３６】
また、本発明のコンピュータシステムによれば、複数のプロセッサで複数のタスクが同時に実行される場合でも、各タスクが各データ記憶領域と対応付けられて管理されるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。
【００３７】
これから、データ記憶領域を構成する１以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【００３８】
また、任意のプロセッサで任意のタスクが実行される場合でも、タスクごとに異なるデータ記憶領域を割り付けるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。
【００３９】
また、所定のキャッシュ領域に分類されたデータ記憶領域の数が、所定のプロセッサで実行されるタスクの数より少ない場合でも、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これは、プロセッサごとにアクセス可能なデータ記憶領域が制限されるので、同時に複数のプロセッサから同一のデータ記憶領域に対してアクセスがされないことによる。
【００４０】
さらに、所定のプロセッサで実行される複数のタスクに対して異なるデータ記憶領域を割り付けるので、タスク切り替えによるキャッシュミスを低減し、処理性能の向上に寄与する。これは、例えば、所定のプロセッサで実行される複数のタスクに対して同一のデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しやすくなる。一方、これらのタスクに対して異なるデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができなくなる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しにくくなるためである。
【００４１】
このように、本発明によれば、複数のプロセッサで複数のタスクが同時に実行される場合でも、各タスクは、キャッシュメモリの各データ記憶領域と対応付けられて管理されるので、キャッシュメモリの同一のデータ記憶領域に対してアクセスが競合することなく、タスクを実行することができる。結果、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。さらに、アクセスが競合して調停が必要となる場合に比べれば、性能向上に寄与する。
【発明を実施するための最良の形態】
【００４２】
（実施の形態１）
以下、本発明に係わる実施の形態１について、図面を参照しながら説明する。
【００４３】
本実施の形態における演算装置は、下記（ａ）〜（ｄ）に示される特徴を備える。
（ａ）１チップに集積された演算装置であって、（ａ１）複数のタスクを並列で実行可能な複数のプロセッサと、（ａ２）複数のプロセッサで共用されるキャッシュメモリとを備え、（ａ３）キャッシュメモリは、複数のデータ記憶部と、複数の読み出しデータ選択部とを備え、（ａ３−１）各データ記憶部は、データ出力ポートが１ポートであり、（ａ３−２）各読み出しデータ選択部は、各プロセッサと一対一で対応付けられ、対応付けられたプロセッサに読み出されるデータを記憶しているデータ記憶部を、複数のデータ記憶部の中から選択する。
【００４４】
（ｂ）（ｂ１）各データ記憶部は、メモリアクセス要求入力ポートとデータ入力ポートとのそれぞれが１ポートであり、（ｂ２）キャッシュメモリは、複数のメモリアクセス要求選択部を備え、（ｂ２−１）各メモリアクセス要求選択部は、各データ記憶部と一対一で対応付けられ、対応付けられたデータ記憶部に対して割り付けられたタスクを実行しているプロセッサから出力されたメモリアクセス要求を、複数のプロセッサから個別に出力されたメモリアクセス要求の中から選択する。
【００４５】
（ｃ）（ｃ１）各データ記憶部は、１以上のデータ記憶部から各データ記憶領域が構成されている複数のデータ記憶領域のいずれか１つに分類されており、（ｃ２）キャッシュメモリは、（ｃ２−１）所定のデータ記憶領域に対して所定のタスクが割り付けられたことが示される割付情報を、所定のデータ記憶領域と対応付けて保持する割付情報保持部と、（ｃ２−２）所定のタスクに対してリフィルが生じた場合は、リフィル可能なデータ記憶領域として、割付情報保持部で保持されている割付情報に基づいて、複数のデータ記憶領域の中から所定のデータ記憶領域を特定する特定部とを備える。
【００４６】
（ｄ）（ｄ１）キャッシュメモリは、ｎ（ｎは自然数である。）ウェイセットアソシエイティブ方式のキャッシュメモリであり、（ｄ２）各データ記憶部は、各ウェイと一対一で対応付けられている。
【００４７】
また、本実施の形態における演算装置を備えるコンピュータシステムは、下記（ｅ），（ｆ）に示される特徴を備える。
【００４８】
（ｅ）（ｅ１）上記演算装置と、（ｅ２）割付プログラムを記憶している主記憶装置とを備え、（ｅ３）割付プログラムを実行した演算装置は、所定のタスクが生成されたときに、複数のデータ記憶領域の中から、所定のタスクに対して所定のデータ記憶領域を割り付け、割付情報を所定のデータ記憶領域と対応付けて割付情報保持部に登録する。
【００４９】
（ｆ）割付プログラムを実行した演算装置は、各データ記憶領域に対するタスクの割り付けを管理し、複数のデータ記憶領域の中から、タスクごとに異なるデータ記憶領域を割り付け、タスクごとに異なる割付情報を、タスクごとに異なるデータ記憶領域と対応付けて割付情報保持部に登録する。
【００５０】
以上の点を踏まえて、本実施の形態における演算装置を備えるコンピュータシステムを例にして説明する。
【００５１】
先ず、本実施の形態におけるコンピュータシステムの構成について説明する。
図１は、本実施の形態におけるコンピュータシステムの構成を示す図である。図１に示されるように、コンピュータシステム１００は、プロセッサ１０２−１，１０２−２、キャッシュメモリ１０３などが１チップに集積された演算装置１０１を備える。さらに、タスクＡ１７１、タスクＢ１７２、オペレーティングシステム１８１などが記憶されているメインメモリ１１０を備える。
【００５２】
プロセッサ１０２−１は、あらかじめ、オペレーティングシステム１８１の制御下において、タスクＡ１７１、タスクＢ１７２のように、タスクを生成する。このとき、ウェイ割付プログラム１８２を実行する。これに伴い、ウェイ割付プログラム１８２を実行中のプロセッサ１０２−１は、ウェイ管理テーブル１８３を参照し、生成したタスクに割り付け可能なウェイを決定する。決定したウェイと生成したタスクとを関連付けたウェイ指定情報を生成する。そして、生成したウェイ指定情報を、信号線１６３−１を介してキャッシュメモリ１０３に出力する。ここで、ウェイ指定情報には、タスクの識別情報（以下、タスクＩＤと呼称する。）とウェイの識別情報（以下、ウェイ番号と呼称する。）とが含まれる。
【００５３】
その後、プロセッサ１０２−１は、タスクを実行するときに、実行するタスクに割り当てられたタスクＩＤを、信号線１５４−１を介してキャッシュメモリ１０３に出力する。タスクを実行している最中にキャッシュメモリ１０３にアクセスするときに、アクセス先のアドレスを含むメモリアクセス要求を、信号線１５１−１を介してキャッシュメモリ１０３に出力する。このとき、アクセス要求が書き込みを目的とする場合は、信号線１５２−１を介してキャッシュメモリ１０３にデータを書き込む。アクセス要求が読み出しを目的とする場合は、信号線１５３−１を介してキャッシュメモリ１０３からデータを読み出す。ここで、信号線１５２−１と信号線１５３−１とは、データの転送サイズに応じた信号線の本数が必要である。
【００５４】
なお、プロセッサ１０２−２については、プロセッサ１０２−１と同様の構成のため説明を省略する。また、命令セットがプロセッサ１０２−１と同一とする。
【００５５】
キャッシュメモリ１０３は、ｎ（ｎは正の整数である。）ウェイセットアソシエイティブ方式のキャッシュメモリである。ここでは、一例として、タグメモリ１０４、データメモリ１０５、メモリアクセス要求・書き込みデータ選択部１０６−１〜１０６−ｎ、読み出しデータ選択部１０７−１，１０７−２、領域管理部１０８、キャッシュヒット判定部１０９−１〜１０９−２ｎなどを備える。
【００５６】
タグメモリ１０４は、マルチポートメモリ１０４−１〜１０４−ｎから構成される。マルチポートメモリ１０４−１〜１０４−ｎは、ウェイ１〜ｎに個別に対応するマルチポートメモリである。
【００５７】
マルチポートメモリは、独立にアクセス可能なポートを複数有するメモリである。ここでは、一例として、タグリクエスト入力ポートおよびタグ出力ポートの各ポート数がプロセッサの数と同数であるメモリとする。ここで、タグリクエスト入力ポートとは、プロセッサから出力されたタグリクエストが入力されるポートである。タグ出力ポートとは、入力されたタグリクエストに対応するタグが出力されるポートである。
【００５８】
例えば、マルチポートメモリ１０４−１においては、信号線１５１−１と接続されているポートおよび信号線１５１−２と接続されているポートの各ポートがタグリクエスト入力ポートにあたる。また、信号線１５６−１と接続されているポートおよび信号線１５６−２と接続されているポートの各ポートがタグ出力ポートにあたる。
【００５９】
データメモリ１０５は、シングルポートメモリ１０５−１〜１０５−ｎから構成される。シングルポートメモリ１０５−１〜１０５−ｎは、ウェイ１〜ｎに個別に対応するシングルポートメモリである。
【００６０】
シングルポートメモリは、独立にアクセス可能なポートを１つしか有しないメモリである。ここでは、一例として、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートの各ポート数が１つであるメモリとする。ここで、メモリアクセス要求入力ポートとは、プロセッサから出力されたメモリアクセス要求が入力されるポートである。データ入力ポートとは、プロセッサから書き込まれるデータが入力されるポートである。データ出力ポートとは、プロセッサに読み出されるデータが出力されるポートである。
【００６１】
例えば、シングルポートメモリ１０５−１においては、信号線１５７−１と接続されているポートがメモリアクセス要求入力ポートにあたる。信号線１５８−１と接続されているポートがデータ入力ポートにあたる。信号線１５９−１と接続されているポートがデータ出力ポートにあたる。
【００６２】
シングルポートメモリ１０５−１には、ウェイ１と対応付けられたタスクに読み出されるデータや、そのタスクから書き込まれたデータが格納される。マルチポートメモリ１０４−１には、シングルポートメモリ１０５−１に格納されているデータと関連付けられたタグが格納される。
【００６３】
なお、シングルポートメモリ１０５−２〜１０５−ｎについては、シングルポートメモリ１０５−１と同様の構成により説明を省略する。マルチポートメモリ１０４−２〜１０４−ｎについては、マルチポートメモリ１０４−１と同様の構成により説明を省略する。
【００６４】
ここで、タグメモリ１０４に格納されるタグのサイズに比べれば、データメモリ１０５に格納されるデータのサイズの方が遥かに大きい。このため、データメモリ１０５だけシングルポートメモリで構成しても、回路面積の省面積化に大きく寄与することができる。
【００６５】
メモリアクセス要求・書き込みデータ選択部１０６−１〜１０６−ｎは、各メモリアクセス要求・書き込みデータ選択部が、シングルポートメモリ１０５−１〜１０５−ｎの各シングルポートメモリと一対一で対応付けられ、対応付けられたシングルポートメモリに対して割り付けられたタスクを実行しているプロセッサから出力されたメモリアクセス要求を、プロセッサ１０２−１，１０２−２から個別に出力されたメモリアクセス要求の中から選択する。
【００６６】
読み出しデータ選択部１０７−１，１０７−２は、各読み出しデータ選択部が、プロセッサ１０２−１，１０２−２の各プロセッサと一対一で対応付けられ、対応付けられたプロセッサに読み出されるデータを記憶しているシングルポートメモリを、シングルポートメモリ１０５−１〜１０５−ｎの中から選択する。
【００６７】
領域管理部１０８は、所定のウェイに対して所定のタスクが割り付けられたことが示されるウェイ情報を、所定のウェイと対応付けて保持し、所定のタスクに対してリフィルが生じた場合は、リフィル可能なウェイとして、保持しているウェイ情報に基づいて、ｎウェイの中から所定のウェイを特定する。
【００６８】
キャッシュヒット判定部１０９−１には、タグメモリ１０４−１から信号線１５６−１を介してタグが入力される。プロセッサ１０２−１から信号線１５１−１を介してメモリアクセス要求が入力される。
【００６９】
キャッシュヒット判定部１０９−１は、入力されたタグと、入力されたメモリアクセス要求に含まれるアドレスとを比較する。比較した結果をキャッシュヒット情報として出力する。例えば、キャッシュヒット判定部１０９−１は、タグとアドレスとが一致した場合、すなわち、キャッシュがヒットした場合は、キャッシュヒット情報として０を出力する。一方、タグとアドレスとが一致しなかった場合、すなわち、ヒットしなかった場合は、キャッシュヒット情報として１を出力する。
【００７０】
キャッシュヒット判定部１０９−２には、タグメモリ１０４−１から信号線１５６−２を介してタグが入力される。プロセッサ１０２−２から信号線１５１−２を介してメモリアクセス要求が入力される。
【００７１】
キャッシュヒット判定部１０９−２は、入力されたタグと、入力されたメモリアクセス要求に含まれるアドレスとを比較する。比較した結果をキャッシュヒット情報として出力する。例えば、キャッシュヒット判定部１０９−２は、タグとアドレスとが一致した場合、すなわち、キャッシュがヒットした場合は、キャッシュヒット情報として０を出力する。一方、タグとアドレスとが一致しなかった場合、すなわち、ヒットしなかった場合は、キャッシュヒット情報として１を出力する。
【００７２】
なお、キャッシュヒット判定部１０９−３〜１０９−（２ｎ−１）については、キャッシュヒット判定部１０９−１と同様の構成により説明を省略する。キャッシュヒット判定部１０９−４〜１０９−２ｎについては、キャッシュヒット判定部１０９−２と同様の構成により説明を省略する。
【００７３】
メインメモリ１１０には、キャッシュメモリ１０３から信号線１６１を介してアドレスとアクセス要求とが入力される。
【００７４】
メインメモリ１１０は、メモリコントローラ（不図示）を備える。メモリコントローラ（不図示）は、アクセス要求が書き込み要求である場合は、キャッシュメモリ１０３から信号線１６２を介して入力されたデータをアドレスから書き込む。アクセス要求が読み出し要求である場合は、アドレスから読み出したデータを、信号線１６２を介してキャッシュメモリ１０３に出力する。
【００７５】
図２は、本実施の形態におけるメモリアクセス要求・書き込みデータ選択部１０６−１〜１０６−ｎの構成を示す図である。図２に示されるように、メモリアクセス要求・書き込みデータ選択部１０６−１は、メモリアクセス信号選択回路１１１−１、書き込みデータ選択回路１１２−１などを備える。
【００７６】
メモリアクセス信号選択回路１１１−１には、信号線１５５−１を介してキャッシュヒット判定部１０９−１から出力されたキャッシュヒット情報（以下、第１のキャッシュヒット情報と呼称する。）が制御信号として入力される。信号線１５５−２を介してキャッシュヒット判定部１０９−２から出力されたキャッシュヒット情報（以下、第２のキャッシュヒット情報と呼称する。）が制御信号として入力される。
【００７７】
メモリアクセス信号選択回路１１１−１は、入力された第１のキャッシュヒット情報と第２のキャッシュヒット情報とに応じて、入力源を選択する。選択した入力源からメモリアクセス要求が入力されると、信号線１５７−１を介してシングルポートメモリ１０５−１に、入力されたメモリアクセス要求を出力する。
【００７８】
例えば、メモリアクセス信号選択回路１１１−１に入力された第１のキャッシュヒット情報が０であり、第２のキャッシュヒット情報が１であるとする。さらに、プロセッサ１０２−１から出力されたメモリアクセス要求（以下、第１のメモリアクセス要求と呼称する。）が信号線１５１−１を介して入力されたとする。この場合において、メモリアクセス信号選択回路１１１−１は、信号線１５７−１を介してシングルポートメモリ１０５−１に第１のメモリアクセス要求を出力する。
【００７９】
また、メモリアクセス信号選択回路１１１−１に入力された第１のキャッシュヒット情報が１であり、第２のキャッシュヒット情報が０であるとする。さらに、プロセッサ１０２−２から出力されたメモリアクセス要求（以下、第２のメモリアクセス要求と呼称する。）が信号線１５１−２を介して入力されたとする。この場合において、メモリアクセス信号選択回路１１１−１は、信号線１５７−１を介してシングルポートメモリ１０５−１に第２のメモリアクセス要求を出力する。
【００８０】
なお、メモリアクセス信号選択回路１１１−１に入力された第１のキャッシュヒット情報が１であり、第２のキャッシュヒット情報が１であるとする。この場合において、メモリアクセス信号選択回路１１１−１は、第１のメモリアクセス要求および第２のメモリアクセス要求のいずれも出力しない。
【００８１】
また、メモリアクセス信号選択回路１１１−１に入力された第１のキャッシュヒット情報が０であり、第２のキャッシュヒット情報が０であるとする。この場合において、メモリアクセス信号選択回路１１１−１は、第１のメモリアクセス要求および第２のメモリアクセス要求のいずれも出力しない。
【００８２】
書き込みデータ選択回路１１２−１には、キャッシュヒット判定部１０９−１から出力されたキャッシュヒット情報（以下、第１のキャッシュヒット情報と呼称する。）が信号線１５５−１を介して制御信号として入力される。また、キャッシュヒット判定部１０９−２から出力されたキャッシュヒット情報（以下、第２のキャッシュヒット情報と呼称する。）が信号線１５５−２を介して制御信号として入力される。
【００８３】
書き込みデータ選択回路１１２−１は、入力された第１のキャッシュヒット情報と第２のキャッシュヒット情報とに応じて、入力源を選択する。選択した入力源から書き込みデータが入力されると、信号線１５８−１を介してシングルポートメモリ１０５−１に、入力された書き込みデータを出力する。
【００８４】
例えば、書き込みデータ選択回路１１２−１に入力された第１のキャッシュヒット情報が０であり、第２のキャッシュヒット情報が１であるとする。さらに、プロセッサ１０２−１から出力された書き込みデータ（以下、第１の書き込みデータと呼称する。）が信号線１５２−１を介して入力されたとする。この場合において、書き込みデータ選択回路１１２−１は、信号線１５８−１を介してシングルポートメモリ１０５−１に第１の書き込みデータを出力する。
【００８５】
また、書き込みデータ選択回路１１２−１に入力された第１のキャッシュヒット情報が１であり、第２のキャッシュヒット情報が０であるとする。さらに、プロセッサ１０２−２から出力された書き込みデータ（以下、第２の書き込みデータと呼称する。）が信号線１５２−２を介して入力されたとする。この場合において、書き込みデータ選択回路１１２−１は、信号線１５８−１を介してシングルポートメモリ１０５−１に第２の書き込みデータを出力する。
【００８６】
なお、書き込みデータ選択回路１１２−１に入力された第１のキャッシュヒット情報が１であり、第２のキャッシュヒット情報が１であるとする。この場合において、書き込みデータ選択回路１１２−１は、第１の書き込みデータおよび第２の書き込みデータのいずれも出力しない。
【００８７】
また、書き込みデータ選択回路１１２−１に入力された第１のキャッシュヒット情報が０であり、第２のキャッシュヒット情報が０であるとする。この場合において、書き込みデータ選択回路１１２−１は、第１の書き込みデータおよび第２の書き込みデータのいずれも出力しない。
【００８８】
なお、メモリアクセス要求・書き込みデータ選択部１０６−２〜１０６−ｎについては、メモリアクセス要求・書き込みデータ選択部１０６−１と同様の構成により説明を省略する。
【００８９】
図３は、本実施の形態における読み出しデータ選択部１０７−１，１０７−２の構成を示す図である。図３に示されるように、読み出しデータ選択部１０７−１は、読み出しデータ選択回路１１３−１などを備える。
【００９０】
読み出しデータ選択回路１１３−１には、キャッシュヒット判定部１０９−１〜１０９−（２ｎ−１）から個別に出力されたキャッシュヒット情報（以下、第１のキャッシュヒット情報、・・・、第２ｎ−１のキャッシュヒット情報と呼称する。）が信号線１５５−１〜１５５−（２ｎ−１）を介して制御信号として個別に入力される。
【００９１】
読み出しデータ選択回路１１３−１は、個別に入力された第１のキャッシュヒット情報、・・・、第２ｎ−１のキャッシュヒット情報に応じて、入力源を選択する。選択した入力源から読み出しデータが入力されると、信号線１５３−１を介してプロセッサ１０２−１に、入力された読み出しデータを出力する。
【００９２】
例えば、読み出しデータ選択回路１１３−１に個別に入力された第１のキャッシュヒット情報、・・・、第２ｎ−１のキャッシュヒット情報のうち、第ｉのキャッシュヒット情報が０であり、それ以外のキャッシュヒット情報が１であるとする。さらに、シングルポートメモリ１０５−ｉから出力された読み出しデータ（以下、第ｉの読み出しデータと呼称する。）が、信号線１５９−１〜１５９−ｎのうち、信号線１５９−ｉを介して入力されたとする。この場合において、読み出しデータ選択回路１１３−１は、信号線１５３−１を介してプロセッサ１０２−１に第ｉの読み出しデータを出力する。
【００９３】
なお、読み出しデータ選択回路１１３−１に個別に入力された第１のキャッシュヒット情報、・・・、第２ｎ−１のキャッシュヒット情報のうち、複数のキャッシュヒット情報が０であるとする。この場合において、読み出しデータ選択回路１１３−１は、いずれの読み出しデータも出力しない。
【００９４】
また、読み出しデータ選択回路１１３−１に個別に入力された第１のキャッシュヒット情報、・・・、第２ｎ−１のキャッシュヒット情報のうち、全てのキャッシュヒット情報が１であるとする。この場合において、読み出しデータ選択回路１１３−１は、いずれの読み出しデータも出力しない。
【００９５】
なお、読み出しデータ選択部１０７−２については、読み出しデータ選択部１０７−１と同様の構成により説明を省略する。
【００９６】
図４は、本実施の形態における領域管理部１０８の構成を示す図である。図４に示されるように、領域管理部１０８は、ウェイ情報保持部１１４、比較器１１５−１〜１１５−２ｎ、ウェイ決定部１１６−１，１１６−２、ＮＡＮＤ回路１１８−１，１１８−２、調停部１１９、タスクＩＤ入力レジスタ１２０−１，１２０−２などを備える。
【００９７】
ウェイ情報保持部１１４は、ウェイ情報保持領域１１４−１〜１１４−ｎからなる。ウェイ情報保持領域１１４−１〜１１４−ｎには、ウェイ１〜ｎに対応するウェイ情報が個別に保持される。各ウェイ情報保持領域には、０からｍ（ｍは正の整数である。）までのタスクＩＤに対して、ｅｎａｂｌｅおよびｄｉｓａｂｌｅのいずれかの割付情報が個別に設定される。なお、初期値としてｄｉｓａｂｌｅが設定されている。
【００９８】
そして、タスクが生成されたときに、ウェイ割付プログラム１８２によって、生成されたタスクに対して割り付けられたウェイに対応付けられたウェイ情報保持領域に、生成されたタスクが割り付けられたことが示される割付情報（ｅｎａｂｌｅ）が登録される。また、タスクが消滅したときに、ウェイ割付プログラム１８２によって、消滅したタスクに対して割り付けられていたウェイに対応付けられたウェイ情報保持領域から、消滅したタスクが割り付けられていたことが示される割付情報（ｅｎａｂｌｅ）が削除される。なお、ｅｎａｂｌｅが削除されると、ｄｉｓａｂｌｅになる。
【００９９】
ウェイ情報保持領域１１４−１には、マルチポートメモリ１０４−１とシングルポートメモリ１０５−１とが含まれるウェイ１に関するウェイ情報が保持されている。そのウェイ情報には、ウェイ１に割り付けられたタスクＩＤに対しては、ｅｎａｂｌｅが設定され、それ以外のタスクＩＤに対しては、ｄｉｓａｂｌｅが設定される。なお、ウェイ情報保持領域１１４−２〜１１４−ｎについては、ウェイ情報保持領域１１４−１と同様の構成により説明を省略する。
【０１００】
さらに、ウェイ情報保持部１１４には、プロセッサ１０２−１，１０２−２から信号線１６３−１，１６３−２を介してウェイ情報が個別に入力される。
【０１０１】
ウェイ情報保持部１１４は、個別に入力されたウェイ情報を該当するウェイ情報保持領域に保持する。
【０１０２】
比較器１１５−１には、ウェイ情報保持領域１１４−１から信号線１６２−１を介してウェイ情報が入力される。タスクＩＤレジスタ１２０−１から信号線１６４−１を介してタスクＩＤが入力される。
【０１０３】
比較器１１５−１は、入力されたウェイ情報と、入力されたタスクＩＤとを比較する。比較した結果をウェイ一致情報として出力する。
【０１０４】
比較器１１５−２には、ウェイ情報保持領域１１４−１から信号線１６２−１を介してウェイ情報が入力される。タスクＩＤレジスタ１２０−２から信号線１６４−２を介してタスクＩＤが入力される。
【０１０５】
比較器１１５−２は、入力されたウェイ情報と、入力されたタスクＩＤとを比較する。比較した結果をウェイ一致情報として出力する。
【０１０６】
なお、比較器１１５−３〜１１５−（２ｎ−１）については、比較器１１５−１と同様の構成により説明を省略する。比較器１１５−４〜１１５−２ｎについては、比較器１１５−２と同様の構成により説明を省略する。
【０１０７】
ウェイ決定部１１６−１には、比較器１１５−１〜１１５−（２ｎ−１）から信号線１６５−１〜１６５−（２ｎ−１）を介してウェイ一致情報が個別に入力される。
【０１０８】
ウェイ決定部１１６−１は、個別に入力されたウェイ一致情報に基づいて、リフィル対象のウェイを決定する。決定したウェイに関する情報をリフィルウェイ情報として出力する。
【０１０９】
なお、ウェイ決定部１１６−２については、ウェイ決定部１１６−１と同様の構成により説明を省略する。
【０１１０】
ＮＡＮＤ回路１１８−１には、キャッシュヒット判定部１０９−１〜１０９−（２ｎ−１）から信号線１５５−１〜１５５−（２ｎ−１）を介してキャッシュヒット情報が個別に入力される。
【０１１１】
ＮＡＮＤ回路１１８−１は、個別に入力されたキャッシュヒット情報が全て１である場合は、制御情報として０を出力する。それ以外の場合は、制御情報として１を出力する。なお、ＮＡＮＤ回路１１８−２については、ＮＡＮＤ回路１１８−１と同様の構成により説明を省略する。
【０１１２】
調停部１１９は、ＮＡＮＤ回路１１８−１から出力された制御情報が信号線１６１−１を介して入力されると、入力された制御情報に基づいて、プロセッサ１０２−１に割り付けられているウェイをリフィルする必要があるか否かを判定する。
【０１１３】
例えば、調停部１１９に入力された制御情報が１であるとする。この場合において、調停部１１９は、キャッシュがヒットしているので、プロセッサ１０２−１に割り付けられたウェイに対してリフィルする必要がないと判定する。
【０１１４】
一方、調停部１１９に入力された制御情報が０であるとする。この場合において、調停部１１９は、キャッシュがヒットしていないので、プロセッサ１０２−１に割り付けられたウェイに対してリフィルする必要があると判定する。そして、プロセッサ１０２−１に割り付けられたウェイに対してリフィルすることを指示するリフィルウェイ指示を、信号線１６０を介してタグメモリ１０４とデータメモリ１０５とに出力する。このとき、信号線１６６−１を介してウェイ決定部１１６−１から出力されたリフィルウェイ情報によって、プロセッサ１０２−１に割り付けられたウェイが特定される。
【０１１５】
同様に、調停部１１９は、ＮＡＮＤ回路１１８−２から出力された制御情報が信号線１６１−２を介して入力されると、入力された制御情報に基づいて、プロセッサ１０２−２に割り付けられているウェイをリフィルする必要があるか否かを判定する。
【０１１６】
例えば、調停部１１９に入力された制御情報が１であるとする。この場合において、調停部１１９は、キャッシュがヒットしていると判定し、プロセッサ１０２−２に割り付けられたウェイに対してリフィルする必要がないと判定する。一方、調停部１１９に入力された制御情報が０であるとする。この場合において、調停部１１９は、キャッシュがヒットしていないと判定し、プロセッサ１０２−２に割り付けられたウェイに対してリフィルする必要があると判定する。
【０１１７】
そして、調停部１１９は、プロセッサ１０２−２に割り付けられたウェイに対してリフィルすることを指示するリフィルウェイ指示を、信号線１６０を介してタグメモリ１０４とデータメモリ１０５とに出力する。このとき、ウェイ決定部１１６−２から信号線１６６−２を介して調停部１１９に入力されたリフィルウェイ情報によって、プロセッサ１０２−２に割り付けられたウェイが特定される。
【０１１８】
そして、タグメモリ１０４とデータメモリ１０５とを制御するキャッシュコントローラ（不図示）は、領域管理部１０８から出力されたリフィルウェイ指示が信号線１６０を介して入力されると、入力されたリフィルウェイ指示に基づいて、リフィルするウェイを特定する。また、メインメモリ１１０からデータを読み出し、読み出したデータを特定したウェイに書き込む。なお、リフィル対象のウェイが複数存在する場合は、ＬＲＵ（Least Recently Used）方式、ＦＩＦＯ（First In First Out）方式、ランダム方式などによって、リフィルするウェイを特定する。
【０１１９】
タスクＩＤ入力レジスタ１２０−１には、プロセッサ１０２−１から信号線１５４−１を介してタスクＩＤが入力される。
【０１２０】
タスクＩＤ入力レジスタ１２０−１は、入力されたタスクＩＤを保持する。なお、タスクＩＤ入力レジスタ１２０−１については、タスクＩＤ入力レジスタ１２０−１と同様の構成により説明を省略する。
【０１２１】
次に、本実施の形態におけるウェイ管理テーブルのデータ構造について説明する。
図５は、本実施の形態におけるウェイ管理テーブルのデータ構造を示す図である。図５に示されるように、ウェイ管理テーブル１８３は、ウェイとタスクとが対応付けられているテーブルである。各タスクＩＤにおいて、そのタスクＩＤのタスクに割り付け可能なウェイについては、ｅｎａｂｌｅが設定されている。そのタスクＩＤのタスクに割り付け不可能なウェイについては、ｄｉｓａｂｌｅが設定されている。例えば、タスクＩＤが０のタスクについては、ウェイ１が割り付け可能である。
【０１２２】
例えば、ウェイ管理テーブル１８３のウェイ１に関する行のウェイ情報がウェイ情報保持領域１１４−１に保持されている。同様に、ウェイ管理テーブル１８３のウェイｎに関する行のウェイ情報がウェイ情報保持領域１１４−ｎに保持されている。
【０１２３】
次に、本実施の形態におけるウェイ割付プログラムによって実行されるウェイ割付処理について説明する。
【０１２４】
図６は、本実施の形態におけるウェイ割付処理のフローチャートを示す図である。図６に示されるように、オペレーティングシステム１８１の制御下において、タスクが生成されると（Ｓ１０１：Ｙｅｓ）、プロセッサ１０２−１，１０２−２のいずれかにおいてウェイ割付プログラム１８２が実行される。具体的には、ウェイ割付プログラム１８２を実行したプロセッサは、ウェイ管理テーブル１８３を参照し（Ｓ１０２）、参照したウェイ管理テーブル１８３から割り付け可能なウェイを決定する（Ｓ１０３）。このとき、タスクごとに異なるウェイを選択する。
【０１２５】
そして、割り付け可能なウェイを選択した後、ウェイ情報保持部１１４を構成するウェイ情報保持領域のうち、選択したウェイに対応するウェイ情報保持領域に、生成されたタスクが割り付けられたことが示される割付情報（ｅｎａｂｌｅ）を登録する（Ｓ１０４）。ウェイ情報保持部１１４を更新する（Ｓ１０５）。
【０１２６】
また、タスクが消滅すると（Ｓ１０６）、ウェイ管理テーブル１８３を参照する（Ｓ１０７）。解放されるウェイを特定する（Ｓ１０８）。ウェイ情報保持部１１４を構成するウェイ情報保持領域のうち、特定したウェイに対応するウェイ情報保持領域から、消滅したタスクが割り付けられていたことが示される割付情報（ｅｎａｂｌｅ）を削除する（Ｓ１０９）。ウェイ情報保持部１１４を更新する（Ｓ１１０）。
【０１２７】
以上、本実施の形態における演算装置１０１によれば、データ記憶部とプロセッサとを接続する部分を、読み出しデータ選択部のような単純な選択回路で構成することで、少ないハードウェア量で複数のプロセッサを備える演算装置を構成することができる。
【０１２８】
さらに、所定のタスクの実行に伴い生じたリフィルによって、他のタスクに割り付けられたデータ記憶部が不用意に書き換わることを回避することができる。そして、所定のタスクについては、所定のデータ記憶部にアクセスが制限されるので、同一のデータ記憶部に対するアクセス競合を回避することができる。
【０１２９】
さらに、同時に複数のプロセッサから同一のデータ記憶部に対してアクセスがされなくなるので、データ記憶部のメモリアクセス要求入力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。
【０１３０】
さらに、同時に複数のプロセッサから同一のデータ記憶部に対して、データが書き込まれたり、読み出されたりすることがなくなるので、データ記憶部のデータ入力ポートとデータ出力ポートとも複数のプロセッサで共用することができる。
【０１３１】
これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。さらに、同一のデータ記憶部に対するアクセス競合を回避することができるので、アクセス競合による調停を必要としない分、処理性能の向上に寄与する。
【０１３２】
また、本実施の形態におけるコンピュータシステム１００によれば、複数のプロセッサで複数のタスクが同時に実行される場合でも、各タスクが各データ記憶領域と対応付けられて管理されるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。
【０１３３】
さらに、任意のプロセッサで任意のタスクが実行される場合でも、タスクごとに異なるデータ記憶領域を割り付けるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。
【０１３４】
これから、データ記憶領域を構成する１以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【０１３５】
なお、本実施の形態では、演算装置１０１の構成を２個のプロセッサで示したが、２個のプロセッサに限定されるものではなく、３個以上のプロセッサでも適用可能である。
【０１３６】
また、本実施の形態では、タスクごとに異なるデータ記憶領域を割り付けている。しかし、リフィルが発生することによる処理性能の低下が許容される場合は、一部の複数のタスクについては、同一のデータ記憶領域を割り付けることも可能である。
【０１３７】
さらに、本実施の形態では、１つのタスクに対して１つのウェイを割り付けている。しかし、１つのタスクに対して複数のウェイを割り付けるとしてもよい。例えば、１以上のウェイから各データ記憶領域が構成されている複数のデータ記憶領域のいずれか１つに各ウェイが分類されているとする。そして、ウェイ割付プログラム１８２を実行した演算装置１０１は、タスクが生成されたときに、複数のデータ記憶領域の中から、生成されたタスクに対してデータ記憶領域を割り付け、ウェイ情報を、そのデータ記憶領域と対応付けてウェイ情報保持部１１４に登録する。
【０１３８】
（実施の形態２）
次に、本発明に係わる実施の形態２について、図面を参照しながら説明する。
【０１３９】
本実施の形態におけるコンピュータシステムは、下記（ｇ）に示される特徴を備える。
（ｇ）割付プログラムを実行した演算装置は、各プロセッサと一対一で各キャッシュ領域が対応付けられている複数のキャッシュ領域のいずれか１つに各データ記憶領域を分類して各データ記憶領域に対するタスクの割り付けを管理し、複数のプロセッサにおける所定のプロセッサで実行されるタスクについては、複数のキャッシュ領域において所定のプロセッサと対応付けられている所定のキャッシュ領域の中からデータ記憶領域を割り付け、所定のプロセッサで実行される複数のタスクが個別に識別される複数の割付情報を所定のキャッシュ領域と対応付けて割付情報保持部に登録する。
【０１４０】
以上の点を踏まえて、本実施の形態におけるコンピュータシステムについて説明する。なお、実施の形態１における構成と同一の構成については、同一の参照符号を付して説明を省略する。
【０１４１】
先ず、本実施の形態におけるコンピュータシステムの構成について説明する。
図７は、本実施の形態におけるコンピュータシステムの構成を示す図である。図７に示されるように、コンピュータシステム２００は、実施の形態１におけるコンピュータシステム１００と比べて（例えば、図１参照。）、メインメモリ１１０の代わりに、メインメモリ２１０を備える。さらに、メインメモリ２１０には、オペレーティングシステム１８１の代わりに、オペレーティングシステム２８１が展開されている。オペレーティングシステム２８１は、ウェイ割付プログラム１８２、ウェイ管理テーブル１８３の代わりに、ウェイ割付プログラム２８２、ウェイ管理テーブル２８３を有する点が異なる。
【０１４２】
プロセッサ１０２−１，１０２−２のいずれかにおいてウェイ割付プログラム２８２が実行されるとする。ウェイ１〜ｎは、第１のキャッシュ領域と第２のキャッシュ領域とに分類されるとする。第１のキャッシュ領域とは、プロセッサ１０２−１で実行されるタスクに割り付けられるウェイが属する領域である。第２のキャッシュ領域は、プロセッサ１０２−２で実行されるタスクに割り付けられるウェイが属する領域である。
【０１４３】
この場合において、ウェイ割付プログラム２８２を実行したプロセッサは、複数のタスクのうち、プロセッサ１０２−１で実行されるタスクと、プロセッサ１０２−２で実行されるタスクとに分類する。プロセッサ１０２−１で実行されるタスクについては、第１のキャッシュ領域からウェイを割り付ける。プロセッサ１０２−２で実行されるタスクについては、第２のキャッシュ領域からウェイを割り付ける。
【０１４４】
次に、本実施の形態におけるウェイ管理テーブルのデータ構造について説明する。
図８は、本実施の形態におけるウェイ管理テーブルのデータ構造を示す図である。図８に示されるように、ウェイ管理テーブル２８３は、実行プロセッサとウェイとタスクとが対応付けられているテーブルである。各タスクＩＤにおいて、そのタスクＩＤのタスクに割り付け可能なウェイについては、ｅｎａｂｌｅが設定されている。そのタスクＩＤのタスクに割り付け不可能なウェイについては、ｄｉｓａｂｌｅが設定されている。例えば、タスクＩＤが０，１のタスクについては、ウェイ１，２（以下、第１のキャッシュ領域と呼称する。）が割り付け可能である。タスクＩＤが２〜ｍのタスクについては、ウェイ３〜ｎ（以下、第２のキャッシュ領域と呼称する。）が割り付け可能である。さらに、各タスクＩＤにおいて、そのタスクＩＤのタスクが実行されるプロセッサについては、プロセッサ１０２−１，１０２−２のいずれかが設定されている。例えば、タスクＩＤが０，１のタスクについては、プロセッサ１０２−１で実行される。タスクＩＤが２〜ｍのタスクについては、プロセッサ１０２−２で実行される。
【０１４５】
すなわち、ウェイ割付プログラム２８２を実行したプロセッサによって、プロセッサ１０２−１で実行されるタスク（タスクＩＤが０，１のタスク）については、第１のキャッシュ領域からウェイが割り付けられる。プロセッサ１０２−２で実行されるタスク（タスクＩＤが２〜ｍのタスク）については、第２のキャッシュ領域からウェイが割り付けられる。
【０１４６】
次に、本実施の形態におけるウェイ割付プログラムによって実行されるウェイ割付処理について説明する。
【０１４７】
図９は、本実施の形態におけるウェイ割付処理のフローチャートを示す図である。図９に示されるように、オペレーティングシステム２８１の制御下において、タスクが生成されると（Ｓ１０１：Ｙｅｓ）、プロセッサ１０２−１，１０２−２のいずれかにおいてウェイ割付プログラム２８２が実行される。具体的には、ウェイ割付プログラム２８２を実行したプロセッサは、ウェイ管理テーブル２８３を参照し（Ｓ１０２）、参照したウェイ管理テーブル２８３から割り付け可能なウェイを決定する（Ｓ２０３）。
【０１４８】
このとき、プロセッサ１０２−１で実行されるタスクについては、第１のキャッシュ領域から選択する。また、プロセッサ１０２−２で実行されるタスクについては、第２のキャッシュ領域から選択する。
【０１４９】
そして、割り付け可能なウェイを選択した後、ウェイ情報保持部１１４を構成するウェイ情報保持領域のうち、選択したウェイに対応するウェイ保持領域に、生成されたタスクが割り付けられたことが示される割付情報（ｅｎａｂｌｅ）を登録する（Ｓ１０４）。ウェイ情報保持部１１４を更新する（Ｓ１０５）。
【０１５０】
また、タスクが消滅すると（Ｓ１０６）、ウェイ管理テーブル２８３を参照する（Ｓ１０７）。解放されるウェイを特定する（Ｓ１０８）。特定したウェイに対応するウェイ情報保持領域から、消滅したタスクが割り付けられていたことが示される割付情報（ｅｎａｂｌｅ）を削除する（Ｓ１０９）。ウェイ情報保持部１１４を更新する（Ｓ１１０）。
【０１５１】
以上、本実施の形態におけるコンピュータシステム２００によれば、所定のキャッシュ領域に分類されたデータ記憶領域の数が、所定のプロセッサで実行されるタスクの数より少ない場合でも、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これは、プロセッサごとにアクセス可能なデータ記憶領域が制限されるので、同時に複数のプロセッサから同一のデータ記憶領域に対してアクセスがされないことによる。
【０１５２】
これから、データ記憶領域を構成する１以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【０１５３】
これは、実施の形態１におけるコンピュータシステム１００では、全てのタスクが異なるウェイに割り当てられる必要があり、演算装置１０１の持つウェイの数ｎが、タスクの数ｍに比べ少ない場合は、そのままでは使えないという問題がある。
【０１５４】
これに対して、本実施の形態におけるコンピュータシステム２００によれば、このような問題を解消することができる。
【０１５５】
あらかじめ設定されたプロセッサ１０２−１，１０２−２でタスクが実行される場合、同時に実行されるタスクが同一の記憶領域に対するアクセス競合を発生させることはなく、一方のプロセッサのキャッシュアクセスにより他方のプロセッサのアクセスが待たされる場合に対し、処理性能の向上が可能となる。また、本実施の形態では複数のウェイからなる記憶領域を割り当てたが、各記憶領域は１つ以上のウェイから構成されればよく、従って本実施の形態に必要なウェイの数は、プロセッサの個数だけあればよい。
【０１５６】
（実施の形態３）
次に、本発明に係わる実施の形態３について、図面を参照しながら説明する。
【０１５７】
本実施の形態におけるコンピュータシステムは、下記（ｈ）に示される特徴を備える。
（ｈ）割付プログラムを実行した演算装置は、所定のキャッシュ領域を構成する各データ記憶領域を、１つのタスクだけに割り付け可能なデータ記憶領域から構成される第１の部分キャッシュ領域と、複数のタスクに割り付け可能なデータ記憶領域から構成される第２の部分キャッシュ領域とのいずれか１つに分類し、所定のプロセッサで実行されるタスクが所定の種類のタスクである場合は、第１の部分キャッシュ領域の中からデータ記憶領域を割り付け、所定のプロセッサで実行されるタスクが所定の種類のタスクでない場合は、第２の部分キャッシュ領域の中からデータ記憶領域を割り付ける。
【０１５８】
以上の点を踏まえて、本実施の形態におけるコンピュータシステムについて説明する。なお、実施の形態２における構成と同一の構成については、同一の参照符号を付して説明を省略する。
【０１５９】
図１０は、本実施の形態におけるコンピュータシステムの構成を示す図である。図１０に示されるように、コンピュータシステム３００は、実施の形態２におけるコンピュータシステム２００と比べて（例えば、図７参照。）、メインメモリ２１０の代わりに、メインメモリ３１０を備える。さらに、メインメモリ３１０には、オペレーティングシステム２８１の代わりに、オペレーティングシステム３８１が展開されている。オペレーティングシステム３８１は、ウェイ割付プログラム２８２、ウェイ管理テーブル２８３の代わりに、ウェイ割付プログラム３８２、ウェイ管理テーブル３８３を有する点が異なる。
【０１６０】
プロセッサ１０２−１，１０２−２のいずれかにおいてウェイ割付プログラム３８２が実行されるとする。ウェイ１〜ｎは、第１のキャッシュ領域と第２のキャッシュ領域とに分類されるとする。第１のキャッシュ領域とは、プロセッサ１０２−１で実行されるタスクに割り付けられるウェイが属する領域である。第２のキャッシュ領域は、プロセッサ１０２−２で実行されるタスクに割り付けられるウェイが属する領域である。
【０１６１】
この場合において、ウェイ割付プログラム３８２を実行したプロセッサは、複数のタスクのうち、プロセッサ１０２−１で実行されるタスクと、プロセッサ１０２−２で実行されるタスクとに分類する。プロセッサ１０２−１で実行されるタスクについては、第１のキャッシュ領域からウェイを割り付ける。プロセッサ１０２−２で実行されるタスクについては、第２のキャッシュ領域からウェイを割り付ける。さらに、所定のタスクに対しては、所定のウェイを割り付ける。
【０１６２】
図１１は、本実施の形態におけるウェイ管理テーブルのデータ構造を示す図である。図１１に示されるように、ウェイ管理テーブル３８３は、実行プロセッサとウェイとタスクとが対応付けられているテーブルである。各タスクＩＤにおいて、そのタスクＩＤのタスクに割り付け可能なウェイについては、ｅｎａｂｌｅが設定されている。そのタスクＩＤのタスクに割り付け不可能なウェイについては、ｄｉｓａｂｌｅが設定されている。例えば、タスクＩＤが０，１のタスクについては、ウェイ１（以下、第１のキャッシュ領域と呼称する。）が割り付け可能である。タスクＩＤが２のタスクについては、ウェイ２〜ｎ（以下、第２のキャッシュ領域と呼称する。）のうちウェイ２のみが割り付け可能である。タスクＩＤが３，４のタスクについては、第２のキャッシュ領域のうちウェイ３，４のみが割り付け可能である。タスクＩＤがｍのタスクについては、第２のキャッシュ領域のうちウェイｎのみが割り付け可能である。
【０１６３】
さらに、各タスクＩＤにおいて、そのタスクＩＤのタスクが実行されるプロセッサについては、プロセッサ１０２−１，１０２−２のいずれかが設定されている。例えば、タスクＩＤが０，１のタスクについては、プロセッサ１０２−１で実行される。タスクＩＤが２〜ｍのタスクについては、プロセッサ１０２−２で実行される。
【０１６４】
ここでは、一例として、プロセッサ１０２−２で実行されるタスクの中で、プロセッサの占有時間の長いタスク（高負荷のタスク）のように、ウェイを占有で使用したいタスクについては、タスクＩＤとして２やｍなどが設定されているとする。さらに、プロセッサの占有時間の短いタスク（低負荷のタスク）のように、ウェイを共有で使用しても支障の少ないタスクについては、タスクＩＤとして３や４などが設定されているとする。
【０１６５】
すなわち、ウェイ割付プログラム３８２を実行したプロセッサによって、プロセッサ１０２−１で実行されるタスク（タスクＩＤが０，１のタスク）については、第１のキャッシュ領域からウェイが割り付けられる。プロセッサ１０２−２で実行されるタスク（タスクＩＤが２〜ｍのタスク）については、第２のキャッシュ領域からウェイが割り付けられる。
【０１６６】
さらに、第２のキャッシュ領域については、第２のキャッシュ領域を構成する各ウェイが、１つのタスクだけに割り付け可能なウェイから構成される第１の部分キャッシュ領域と、複数のタスクに割り付け可能なウェイから構成される第２の部分キャッシュ領域とのいずれか１つに分類されている。そして、プロセッサ１０２−２で実行されるタスクが所定の種類のタスク（高負荷のタスク）である場合は、第１の部分キャッシュ領域の中からウェイが割り付けられる。一方、プロセッサ１０２−２で実行されるタスクが所定の種類のタスク（高負荷のタスク）でない場合は、第２の部分キャッシュ領域の中からウェイが割り付けられる。
【０１６７】
つまり、実施の形態２におけるウェイ割付プログラム２８２では、ウェイ管理テーブル２８３により、第１のキャッシュ領域（第２のキャッシュ領域）に属するウェイであれば、第１のキャッシュ領域（第２のキャッシュ領域）から、どれでも割り付け可能であった。しかし、本実施の形態におけるウェイ割付プログラム３８２では、ウェイ管理テーブル３８３により、第１のキャッシュ領域（第２のキャッシュ領域）に属するウェイであっても、タスクによって割り付け可能なウェイが限定されている点が異なる。
【０１６８】
図１２は、本実施の形態におけるウェイ割付処理のフローチャートを示す図である。図１２に示されるように、オペレーティングシステム３８１の制御下において、タスクが生成すると（Ｓ１０１：Ｙｅｓ）、プロセッサ１０２−１，１０２−２のいずれかにおいてウェイ割付プログラム３８２が実行される。具体的には、ウェイ割付プログラム３８２を実行したプロセッサは、ウェイ管理テーブル３８３を参照し（Ｓ１０２）、参照したウェイ管理テーブル３８３から割り付け可能なウェイを決定する（Ｓ３０３）。
【０１６９】
このとき、プロセッサ１０２−１で実行されるタスクについては、第１のキャッシュ領域から選択する。また、プロセッサ１０２−２で実行されるタスクについては、第２のキャッシュ領域から選択する。なお、各キャッシュ領域から選択するにあたり、タスクによって限定されている中から選択する。
【０１７０】
そして、割り付け可能なウェイを選択した後、ウェイ情報保持部１１４を構成するウェイ情報保持領域のうち、選択したウェイに対応するウェイ保持領域に、生成されたタスクが割り付けられたことが示される割付情報（ｅｎａｂｌｅ）を登録する（Ｓ１０４）。ウェイ情報保持部１１４を更新する（Ｓ１０５）。
【０１７１】
また、タスクが消滅すると（Ｓ１０６）、ウェイ管理テーブル３８３を参照する（Ｓ１０７）。解放されるウェイを特定する（Ｓ１０８）。特定したウェイに対応するウェイ情報保持領域から、消滅したタスクが割り付けられていたことが示される割付情報（ｅｎａｂｌｅ）を削除する（Ｓ１０９）。ウェイ情報保持部１１４を更新する（Ｓ１１０）。
【０１７２】
以上、本実施の形態におけるコンピュータシステム３００によれば、所定のキャッシュ領域に分類されたデータ記憶領域の数が、所定のプロセッサで実行されるタスクの数より少ない場合でも、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これは、プロセッサごとにアクセス可能なデータ記憶領域が制限されるので、同時に複数のプロセッサから同一のデータ記憶領域に対してアクセスがされないことによる。
【０１７３】
これから、データ記憶領域を構成する１以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【０１７４】
さらに、所定のプロセッサで実行される複数のタスクに対して異なるデータ記憶領域を割り付けるので、タスク切り替えによるキャッシュミスを低減し、処理性能の向上に寄与する。
【０１７５】
これは、例えば、所定のプロセッサで実行される複数のタスクに対して同一のデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しやすくなる。
【０１７６】
一方、これらのタスクに対して異なるデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができなくなる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しにくくなるためである。
【０１７７】
実施の形態２におけるコンピュータシステム２００では、同時に実行されるタスク間での同一の記憶領域へのアクセス競合は回避できるが、プロセッサごとに実行されるタスクが切り替わると、それ以前に実行されていたタスクが使用していた記憶領域を使用するため、プロセッサ上で実行されるタスクが切り替わるごとにキャッシュミスが発生し、キャッシュヒット時の処理性能に比べ性能が劣化する可能性がある。
【０１７８】
これに対して、本実施の形態におけるコンピュータシステム３００によれば、このような問題を解消することができる。
【０１７９】
そして、あらかじめ設定されたプロセッサ１０２−１，１０２−２でタスクが実行される場合、同時に実行されるタスクが同一の記憶領域に対するアクセス競合を発生させることはなく、一方のプロセッサのキャッシュアクセスにより他方のプロセッサのアクセスが待たされる性能劣化を回避することができる。また、タスク２が割り当てられるウェイ２については、タスク２が実行されるプロセッサ１０２−２で実行される他のタスクによって使用されることはなく、同時実行されるタスクおよびプロセッサ１０２−２でのタスク切り替えのいずれによっても更新されることはない。
【０１８０】
このように、各プロセッサで実行されるタスクごとに異なるキャッシュ領域を割り当てることで、実施の形態２と同様に、同時実行されるタスクによるアクセス競合による性能劣化を回避可能である。さらに一部のタスクに対してのみ、キャッシュ領域内で他のタスクと異なる記憶領域を割り当てることで、全てのタスク数より少ないウェイ数であっても、タスク切り替えによるキャッシュミスを低減し、処理性能を向上することができる。
【０１８１】
（実施の形態４）
次に、本発明に係わる実施の形態４について、図面を参照しながら説明する。
【０１８２】
本実施の形態における演算装置は、下記（ｉ）〜（ｋ）に示される特徴を備える。
（ｉ）（ｉ１）複数のプロセッサは、第１の動作速度で動作する第１のプロセッサと、第１の動作速度よりも低速である第２の動作速度で動作する第２のプロセッサとを備え、（ｉ２）複数の読み出しデータ選択部は、第１のプロセッサに対応する第１の読み出しデータ選択部と、第２のプロセッサに対応する第２の読み出しデータ選択部とを備え、（ｉ３）キャッシュメモリは、第１のプロセッサの動作速度と第２のプロセッサの動作速度との速度差に合わせて、第２の読み出しデータ選択部から出力されたデータが第２のプロセッサに入力する時機を調整する速度差調整部を備える。
【０１８３】
（ｊ）（ｊ１）第１の動作速度は、第２の動作速度のｋ（ｋは自然数である。）倍であり、（ｊ２）キャッシュメモリの動作クロックは、第１のプロセッサの動作クロックと同一であり、（ｊ３）速度差調整部は、キャッシュメモリの動作クロックで換算して、第２の読み出しデータ選択部から出力されたデータが第２のプロセッサに入力する時機を、第１の読み出しデータ選択部から出力されたデータが第１のプロセッサに入力する時機に対して、ｋ−１クロック遅延させる遅延回路を備える。
【０１８４】
（ｋ）第２のプロセッサで実行可能な命令セットは、第１のプロセッサで実行可能な命令セットと同一である。
【０１８５】
以上の点を踏まえて、本実施の形態における演算装置を備えるコンピュータシステムを例にして説明する。なお、実施の形態３における構成と同一の構成については、同一の参照符号を付して説明を省略する。
【０１８６】
先ず、本実施の形態におけるコンピュータシステムの構成について説明する。
図１３は、本実施の形態におけるコンピュータシステムの構成を示す図である。図１３に示されるように、コンピュータシステム４００は、実施の形態３におけるコンピュータシステム３００と比べて（例えば、図１０参照。）、演算装置１０１の代わりに、高速プロセッサ４２１、低速プロセッサ４２２、キャッシュメモリ４０３などが１チップに集積された演算装置４０１を備える。
【０１８７】
高速プロセッサ４２１は、あらかじめ、オペレーティングシステム３８１の制御下において、タスクＡ１７１、タスクＢ１７２のように、タスクを生成する。このとき、ウェイ割付プログラム３８２を実行する。これに伴い、ウェイ割付プログラム３８２を実行中の高速プロセッサ４２１は、ウェイ管理テーブル３８３を参照し、生成したタスクに割り付け可能なウェイを決定する。決定したウェイと生成したタスクとを関連付けたウェイ指定情報を生成する。そして、生成したウェイ指定情報を、信号線１６３−１を介してキャッシュメモリ４０３に出力する。ここで、ウェイ指定情報には、タスクＩＤとウェイ番号とが含まれる。
【０１８８】
その後、高速プロセッサ４２１は、タスクを実行するときに、実行するタスクに割り当てられたタスクＩＤを、信号線１５４−１を介してキャッシュメモリ４０３に出力する。タスクを実行している最中にキャッシュメモリ４０３にアクセスするときに、アクセス先のアドレスを含むメモリアクセス要求を、信号線１５１−１を介してキャッシュメモリ４０３に出力する。このとき、アクセス要求が書き込みを目的とする場合は、信号線１５２−１を介してキャッシュメモリ４０３にデータを書き込む。アクセス要求が読み出しを目的とする場合は、信号線４６８−１を介してキャッシュメモリ４０３からデータを読み出す。ここで、信号線１５２−１と信号線４６８−１とは、データの転送サイズに応じた信号線の本数が必要である。
【０１８９】
また、高速プロセッサ４２１は、低速プロセッサ４２２のｋ倍の動作速度で動作する。ここでは、一例として、ｋ＝２として説明する。
【０１９０】
低速プロセッサ４２２は、高速プロセッサ４２１の動作速度より低速の動作に限定したプロセッサである。また、高速プロセッサ４２１と比べて、消費電力および面積を低減させたプロセッサである。なお、低速プロセッサ４２２は、低速の動作に限定するため、プロセッサを構成するトランジスタの閾値電圧を上げたり、トランジスタのサイズを小さくしたりすることができる。また、バッファの段数を減らすこともできる。これらによって、高速プロセッサ４２１と比べて、消費電力および面積を低減させることができる。
【０１９１】
また、低速プロセッサ４２２は、命令セットが高速プロセッサ４２１と同一のプロセッサである。
【０１９２】
なお、低速プロセッサ４２２のタスク生成、ウェイ割付処理については、高速プロセッサ４２１と同様とし、説明を省略する。
【０１９３】
キャッシュメモリ４０３は、ｎ（ｎは正の整数である。）ウェイセットアソシエイティブ方式のキャッシュメモリである。ここでは、一例として、高速プロセッサ４２１と同一の速度で動作するものとする。また、キャッシュメモリ１０３と比べて、新たに、タグ速度差調整部４２３−１〜４２３−ｎ、読み出しデータ速度差調整部４２４などを備える点が異なる。
【０１９４】
図１４は、本実施の形態におけるタグ速度差調整部の構成を示す図である。図１４に示されるように、タグ速度差調整部４２３−１は、遅延回路４２５−１などを備える。
【０１９５】
タグ速度差調整部４２３−１には、タグメモリ１０４−１から信号線１５６−１を介して高速プロセッサ４２１用タグ情報が入力される。タグメモリ１０４−１から信号線１５６−２を介して低速プロセッサ４２２用タグ情報が入力される。タグ速度差調整部４２３−１は、信号線１５６−１を介して入力された高速プロセッサ４２１用タグ情報を、そのまま、信号線４６７−１を介して高速プロセッサ４２１に出力する。信号線１５６−２を介して入力された低速プロセッサ４２２用タグ情報を、遅延回路４２５−１で（ｋ−１）段分遅延させ、遅延させた低速プロセッサ４２２用タグ情報を、信号線４６７−２を介して低速プロセッサ４２２に出力する。
【０１９６】
ここでは、ｋ＝２としているので、低速プロセッサ４２２用タグ情報は、遅延回路４２５−１で１段分遅延させられる。
【０１９７】
なお、タグ速度差調整部４２３−２〜４２３−ｎについては、タグ速度差調整部４２３−１と同様の構成により説明を省略する。
【０１９８】
図１５は、本実施の形態における読み出しデータ速度差調整部の構成を示す図である。図１５に示されるように、読み出しデータ速度差調整部４２４は、遅延回路４２６などを備える。
【０１９９】
読み出しデータ速度差調整部４２４には、読み出しデータ選択部１０７−１から信号線１５３−１を介して高速プロセッサ４２１用読み出しデータが入力される。読み出しデータ選択部１０７−２から信号線１５３−２を介して低速プロセッサ４２２用読み出しデータが入力される。
【０２００】
読み出しデータ速度差調整部４２４は、信号線１５３−１を介して入力された高速プロセッサ４２１用読み出しデータを、そのまま、信号線４６８−１を介して高速プロセッサ４２１に出力する。信号線１５３−２を介して入力された低速プロセッサ４２２用読み出しデータを、遅延回路４２６で（ｋ−１）段分遅延させ、遅延させた低速プロセッサ４２２用読み出しデータを、信号線４６８−２を介して低速プロセッサ４２２に出力する。
【０２０１】
ここでは、ｋ＝２としているので、低速プロセッサ４２２用読み出しデータは、遅延回路４２６で１段分遅延させられる。
【０２０２】
図１６、図１７は、本実施の形態における動作例を示すタイミングチャートである。
例えば、図１６に示されるように、高速プロセッサ４２１から信号線１５１−１を介してキャッシュメモリ４０３に、タグリクエストＱＡ０およびエントリアドレスＡＡ０が出力され、ウェイ１がヒットしたとする。このとき、ウェイ１に対応するタグメモリ１０４−１から、タグリクエストＱＡ０およびエントリアドレスＡＡ０によって特定されたタグＴＡ０が出力される。ウェイ１に対応するシングルポートメモリ１０５−１から、タグＴＡ０に対応する読み出しデータＤＡ０が出力される。キャッシュメモリ４０３から信号線４６８−１を介して高速プロセッサ４２１に、読み出しデータＤＡ０が出力されたとする。
【０２０３】
この場合において、タグメモリ１０４−１にエントリアドレスＡＡ０が入力されてから、タグ速度差調整部４２３−１にタグＴＡ０が入力されるまでに、キャッシュメモリ４０３のクロックで１クロックの時間を要する。これは、図中におけるウェイ１のタグメモリの高速プロセッサ用入力ポート（信号線１５１−１）と、ウェイ１のタグ速度差調整部の高速プロセッサ用入力ポート（信号線１５６−１）とから示される。
【０２０４】
ここで、タグ速度差調整部４２３−１は、タグメモリ１０４−１から信号線１５６−１を介して入力されたタグＴＡ０を遅延させずに、そのまま、信号線４６７−１を介してキャッシュヒット判定部１０９−１に出力する。このため、タグ速度差調整部４２３−１にタグＴＡ０が入力されてから、キャッシュヒット判定部１０９−１にタグＴＡ０が入力されるまでが、同一のクロックサイクル内で行われる。これは、図中におけるウェイ１のタグ速度差調整部の高速プロセッサ用入力ポート（信号線１５６−１）と、ウェイ１のタグ速度差調整部の高速プロセッサ用出力ポート（信号線４６７−１）とから示される。
【０２０５】
さらに、シングルポートメモリ１０５−１にメモリアクセス要求ＲＡ０が入力されてから、読み出しデータ速度差調整部４２４に読み出しデータＤＡ０が入力されるまでに、キャッシュメモリ４０３のクロックで１クロックの時間を要する。これは、図中におけるウェイ１のデータメモリのメモリアクセス要求入力ポート（信号線１５７−１）と、読み出しデータ速度差調整部の高速プロセッサ用入力ポート（信号線１５３−１）とから示される。
【０２０６】
ここで、読み出しデータ速度差調整部４２４は、読み出しデータ選択部１０７−１から信号線１５３−１を介して入力された読み出しデータＤＡ０を遅延させずに、そのまま信号線４６８−１を介して高速プロセッサ４２１に出力する。このため、読み出しデータ速度差調整部４２４に読み出しデータＤＡ０が入力されてから、高速プロセッサ４２１に読み出しデータＤＡ０が入力されるまでが、同一のクロックサイクル内で行われる。これは、図中における読み出しデータ速度差調整部の高速プロセッサ用入力ポート（信号線１５３−１）と、読み出しデータ速度差調整部の高速プロセッサ用出力ポート（４６８−１）とから示される。
【０２０７】
これから、高速プロセッサ４２１は、タグリクエストＱＡ０をキャッシュメモリ４０３に出力してから、キャッシュメモリ４０３のクロックで２クロック後に、読み出しデータＤＡ０をキャッシュメモリ４０３から取得する。ここで、キャッシュメモリ４０３のクロックで２クロックということは、高速プロセッサ４２１のクロックで換算すると、２サイクルに相当する。これによって、タグリクエストの２サイクル後に、読み出しデータを取得することができる。
【０２０８】
なお、タグリクエストＱＡ１〜ＱＡ７に対する動作は、タグリクエストＱＡ０と同様の動作により説明を省略する。
【０２０９】
一方、図１７に示されるように、低速プロセッサ４２２から信号線１５１−２を介してキャッシュメモリ４０３に、タグリクエストＱＢ０およびエントリアドレスＡＢ０が出力され、ウェイ１がヒットしたとする。このとき、ウェイ１に対応するタグメモリ１０４−１から、タグリクエストＱＢ０およびエントリアドレスＡＢ０によって特定されたタグＴＢ０が出力される。ウェイ１に対応するシングルポートメモリ１０５−１から、タグＴＢ０に対応する読み出しデータＤＢ０が出力される。キャッシュメモリ４０３から信号線４６８−２を介して低速プロセッサ４２２に、読み出しデータＤＢ０が出力されたとする。
【０２１０】
この場合において、タグメモリ１０４−１にエントリアドレスＡＢ０が入力されてから、タグ速度差調整部４２３−１にタグＴＢ０が入力されるまでに、キャッシュメモリ４０３のクロックで１クロックの時間を要する。これは、図中におけるウェイ１のタグメモリの低速プロセッサ用入力ポート（信号線１５１−２）と、ウェイ１のタグ速度差調整部の低速プロセッサ用入力ポート（信号線１５６−２）とから示される。
【０２１１】
ここで、タグ速度差調整部４２３−１は、タグメモリ１０４−１から信号線１５６−２を介して入力されたタグＴＢ０を１段遅延させ、遅延させたタグＴＢ０を、信号線４６７−２を介してキャッシュヒット判定部１０９−２に出力する。このため、タグ速度差調整部４２３−１にタグＴＢ０が入力されてから、キャッシュヒット判定部１０９−２にタグ値ＴＢ０が入力されるまでに、キャッシュメモリ４０３のクロックで１クロックの時間を要する。これは、図中におけるウェイ１のタグ速度差調整部の低速プロセッサ用入力ポート（信号線１５６−２）と、ウェイ１のタグ速度差調整部の低速プロセッサ用出力ポート（信号線４６７−２）とから示される。
【０２１２】
さらに、シングルポートメモリ１０５−１にメモリアクセス要求ＲＢ０が入力されてから、読み出しデータ速度差調整部４２４に読み出しデータＤＢ０が入力されるまでに、キャッシュメモリ４０３のクロックで１クロックの時間を要する。これは、図中におけるウェイ１のデータメモリのメモリアクセス要求入力ポート（信号線１５７−１）と、読み出しデータ速度差調整部の低速プロセッサ用入力ポート（信号線１５３−２）とから示される。
【０２１３】
ここで、読み出しデータ速度差調整部４２４は、読み出しデータ選択部１０７−２から信号線１５３−２を介して入力された低速プロセッサ４２２用読み出しデータＤＢ０を１段遅延させ、遅延させた読み出しデータＤＢ０を、信号線４６８−２を介して低速プロセッサ４２２に出力する。このため、読み出しデータ速度差調整部４２４に読み出しデータＤＢ０が入力されてから、低速プロセッサ４２２に読み出しデータＤＢ０が入力されるまでに、キャッシュメモリ４０３のクロックで１クロックの時間を要する。これは、図中における読み出しデータ速度差調整部の低速プロセッサ用入力ポート（信号線１５３−２）と、読み出しデータ速度差調整部の低速プロセッサ用出力ポート（４６８−２）とから示される。
【０２１４】
これから、低速プロセッサ４２２は、タグリクエストＱＢ０をキャッシュメモリ４０３に出力してから、キャッシュメモリ４０３のクロックで４クロック後に、読み出しデータＤＢ０を取得する。ここで、キャッシュメモリ４０３のクロックで４クロックということは、低速プロセッサ４２２のクロックで換算すると、２サイクルに相当する。これによって、低速プロセッサ４２２でも高速プロセッサ４２１と同様に、タグリクエストの２サイクル後に、読み出しデータを取得することができる。
【０２１５】
なお、タグリクエストＱＢ１〜ＱＢ３に対する動作は、タグリクエストＱＢ０と同様の動作により説明を省略する。
【０２１６】
以上、本実施の形態における演算装置４０１によれば、動作速度の異なる複数のプロセッサがキャッシュメモリを共用する場合でも、複数のプロセッサの各プロセッサは、プロセッサ間の動作速度差を意識することなく、それぞれ同様のシーケンスで同時にアクセスすることができる。
【０２１７】
さらに、動作速度差を調整することができるので、データ記憶部のデータ出力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【０２１８】
（実施の形態５）
次に、本発明に係わる実施の形態５について、図面を参照しながら説明する。
【０２１９】
本実施の形態における演算装置は、下記（ｌ）に示される特徴を備える。
（ｌ）（ｌ１）第１のプロセッサは、動作モードが第１のモードであるときは、第１の動作速度で動作し、動作モードが第２のモードであるときは、第２の動作速度で動作し、（ｌ２）速度差調整部は、第１のモードであるときは、第２のプロセッサに入力する時機を調整し、第２のモードであるときは、第２のプロセッサに入力する時機を調整しない。
【０２２０】
以上の点を踏まえて、本実施の形態における演算装置を備えるコンピュータシステムを例にして説明する。なお、実施の形態４における構成と同一の構成については、同一の参照符号を付して説明を省略する。
【０２２１】
先ず、本実施の形態におけるコンピュータシステムの構成について説明する。
図１８は、本実施の形態におけるコンピュータシステムの構成を示す図である。図１８に示されるように、コンピュータシステム５００は、実施の形態４におけるコンピュータシステム４００と比べて（例えば、図１３参照。）、演算装置４０１の代わりに、高速プロセッサ５２１、低速プロセッサ５２２、キャッシュメモリ５０３などが１チップに集積された演算装置５０１を備える。さらに、動作モード端子５２９を有する。また、キャッシュメモリ５０３は、キャッシュメモリ４０３と比べて、タグ速度差調整部４２３−１〜４２３−ｎ、読み出しデータ速度差調整部４２４の代わりに、タグ速度差調整部５２３−１〜５２３−ｎ、読み出しデータ速度差調整部５２４を備える点が異なる。
【０２２２】
高速プロセッサ５２１は、あらかじめ、オペレーティングシステム３８１の制御下において、タスクＡ１７１、タスクＢ１７２のように、タスクを生成する。このとき、ウェイ割付プログラム３８２を実行する。これに伴い、ウェイ割付プログラム３８２を実行中の高速プロセッサ５２１は、ウェイ管理テーブル３８３を参照し、生成したタスクに割り付け可能なウェイを決定する。決定したウェイと生成したタスクとを関連付けたウェイ指定情報を生成する。そして、生成したウェイ指定情報を、信号線１６３−１を介してキャッシュメモリ５０３に出力する。ここで、ウェイ指定情報には、タスクＩＤとウェイ番号とが含まれる。
【０２２３】
その後、高速プロセッサ５２１は、タスクを実行するときに、実行するタスクに割り当てられたタスクＩＤを、信号線１５４−１を介してキャッシュメモリ５０３に出力する。タスクを実行している最中にキャッシュメモリ５０３にアクセスするときに、アクセス先のアドレスを含むメモリアクセス要求を、信号線１５１−１を介してキャッシュメモリ５０３に出力する。このとき、アクセス要求が書き込みを目的とする場合は、信号線１５２−１を介してキャッシュメモリ５０３にデータを書き込む。アクセス要求が読み出しを目的とする場合は、信号線４６８−１を介してキャッシュメモリ５０３からデータを読み出す。ここで、信号線１５２−１と信号線４６８−１とは、データの転送サイズに応じた信号線の本数が必要である。
【０２２４】
また、高速プロセッサ５２１には、動作モード端子５２９から信号線５６８を介して動作モード信号が入力される。高速プロセッサ５２１は、動作モード信号がｍｏｄｅ１のときは、低速プロセッサ５２２のｋ倍の動作速度で動作し、動作モード信号がｍｏｄｅ２のときは、低速プロセッサ５２２と同一の速度で動作するものとする。ここでは、一例として、ｋ＝２として説明する。
【０２２５】
低速プロセッサ５２２は、高速プロセッサ５２１の最高動作速度より低速の最高動作速度を有する低消費電力のプロセッサである。また、高速プロセッサ５２１と比べて、消費電力および面積を低減させたプロセッサである。なお、低速プロセッサ５２２は、低速の動作に限定するため、プロセッサを構成するトランジスタの閾値電圧を上げたり、トランジスタのサイズを小さくしたりすることができる。また、バッファの段数を減らすこともできる。これらによって、高速プロセッサ５２１と比べて、消費電力および面積を低減させることができる。
【０２２６】
また、低速プロセッサ５２２は、命令セットが高速プロセッサ５２１と同一のプロセッサである。
【０２２７】
なお、低速プロセッサ５２２のタスク生成、ウェイ割付処理については、高速プロセッサ５２１と同様とし、説明を省略する。
【０２２８】
なお、低速プロセッサ５２２で実行可能な命令セットは、高速プロセッサ５２１で実行可能な命令セットと同一であるとする。
【０２２９】
キャッシュメモリ５０３は、ｎ（ｎは正の整数である。）ウェイセットアソシエイティブ方式のキャッシュメモリである。ここでは、一例として、動作モード端子５２９から信号線５６８を介して動作モード信号が入力され、入力された動作モード信号に応じて高速プロセッサ５２１と同一の速度で動作するものとする。また、キャッシュメモリ４０３と比べて、タグ速度差調整部４２３−１〜４２３−ｎ、読み出しデータ速度差調整部４２４の代わりに、タグ速度差調整部５２３−１〜５２３−ｎ、読み出しデータ速度差調整部５２４を備える点が異なる。
【０２３０】
図１９は、本実施の形態におけるタグ速度差調整部の構成を示す図である。図１９に示されるように、タグ速度差調整部５２３−１は、遅延回路５２５−１、選択回路５２７−１などを備える。
【０２３１】
タグ速度差調整部５２３−１には、タグメモリ１０４−１から信号線１５６−１を介して高速プロセッサ５２１用タグ情報が入力される。タグメモリ１０４−１から信号線１５６−２を介して低速プロセッサ５２２用タグ情報が入力される。動作モード端子５２９から信号線５６８を介して動作モード信号が入力される。
【０２３２】
タグ速度差調整部５２３−１は、信号線１５６−１を介して入力された高速プロセッサ５２１用タグ情報を、そのまま、信号線４６７−１を介して高速プロセッサ５２１に出力する。
【０２３３】
また、タグ速度差調整部５２３−１は、動作モード信号がｍｏｄｅ１であるときは、選択回路５２７−１で信号線５６９−１が入力源として選択され、選択された入力源を介して入力された低速プロセッサ５２２用タグ情報、すなわち、遅延回路５２５−１で（ｋ−１）段分遅延させた低速プロセッサ５２２用タグ情報を、信号線４６７−２を介して低速プロセッサ５２２に出力する。
【０２３４】
ここでは、ｋ＝２としているので、低速プロセッサ５２２用タグ情報は、遅延回路５２５−１で１段分遅延させられる。
【０２３５】
また、タグ速度差調整部５２３−１は、動作モード信号がｍｏｄｅ２であるときは、選択回路５２７−１で信号線１５６−２が入力源として選択され、選択された入力源を介して入力された低速プロセッサ５２２用タグ情報を、信号線４６７−２を介して低速プロセッサ５２２に出力する。
【０２３６】
なお、タグ速度差調整部５２３−２〜５２３−ｎについては、タグ速度差調整部５２３−１と同様の構成により説明を省略する。
【０２３７】
図２０は、本実施の形態における読み出しデータ速度差調整部の構成を示す図である。図２０に示されるように、読み出しデータ速度差調整部５２４は、遅延回路５２６、選択回路５２８などを備える。
【０２３８】
読み出しデータ速度差調整部５２４には、読み出しデータ選択部１０７−１から信号線１５３−１を介して高速プロセッサ５２１用読み出しデータが入力される。読み出しデータ選択部１０７−２から信号線１５３−２を介して低速プロセッサ５２２用読み出しデータが入力される。動作モード端子５２９から信号線５６８を介して動作モード信号が入力される。
【０２３９】
読み出しデータ速度差調整部５２４は、信号線１５３−１を介して入力された高速プロセッサ５２１用読み出しデータを、そのまま、信号線４６８−１を介して高速プロセッサ５２１に出力する。
【０２４０】
また、読み出しデータ速度差調整部５２４は、動作モード信号がｍｏｄｅ１であるときは、選択回路５２８で信号線５７０が入力源として選択され、選択された入力源を介して入力された低速プロセッサ５２２用読み出しデータ、すなわち、遅延回路５２６で（ｋ−１）段分遅延させた低速プロセッサ５２２用読み出しデータを、信号線４６８−２を介して低速プロセッサ５２２に出力する。
【０２４１】
ここでは、ｋ＝２としているので、低速プロセッサ５２２用読み出しデータは、遅延回路５２６で１段分遅延させられる。
【０２４２】
また、読み出しデータ速度差調整部５２４は、動作モード信号がｍｏｄｅ２であるときは、選択回路５２８で信号線１５３−２が入力源として選択され、選択された入力源を介して入力された低速プロセッサ５２２用読み出しデータを、信号線４６８−２を介して低速プロセッサ５２２に出力する。
【０２４３】
図２１は、本実施の形態における動作例を示すタイミングチャートである。図２１に示されるように、まず、動作モードがｍｏｄｅ１であるときの動作について説明する。このとき、例えば、低速プロセッサ５２２から信号線１５１−２を介してキャッシュメモリ５０３に、タグリクエストＱＤ０およびエントリアドレスＡＤ０が出力され、ウェイ１がヒットしたとする。これに伴い、ウェイ１に対応するタグメモリ１０４−１から、タグリクエストＱＤ０およびエントリアドレスＡＤ０によって特定されたタグＴＤ０が出力される。ウェイ１に対応するシングルポートメモリ１０５−１から、タグＴＤ０に対応する読み出しデータＤＤ０が出力される。キャッシュメモリ５０３から信号線４６８−２を介して低速プロセッサ５２２に、読み出しデータＤＤ０が出力されたとする。
【０２４４】
この場合において、タグメモリ１０４−１にエントリアドレスＡＤ０が入力されてから、タグ速度差調整部５２３−１にタグＴＤ０が入力されるまでに、キャッシュメモリ５０３のクロックで１クロックの時間を要する。これは、図中におけるウェイ１のタグメモリの低速プロセッサ用入力ポート（信号線１５１−２）と、ウェイ１のタグ速度差調整部の低速プロセッサ用入力ポート（信号線１５６−２）とから示される。
【０２４５】
ここで、タグ速度差調整部５２３−１は、選択回路５２７−１で信号線５６９−２が入力源として選択され、遅延回路５２５−１で１段遅延させられたタグＴＤ０を、信号線４６７−２を介してキャッシュヒット判定部１０９−２に出力する。このため、タグ速度差調整部５２３−１にタグＴＤ０が入力されてから、キャッシュヒット判定部１０９−２にタグＴＤ０が入力されるまでに、キャッシュメモリ５０３のクロックで１クロックの時間を要する。これは、図中におけるウェイ１のタグ速度差調整部の低速プロセッサ用入力ポート（信号線１５６−２）と、ウェイ１のタグ速度差調整部の低速プロセッサ用出力ポート（信号線４６７−２）とから示される。
【０２４６】
さらに、シングルポートメモリ１０５−１にメモリアクセス要求ＲＤ０が入力されてから、読み出しデータ速度差調整部５２４に読み出しデータＤＤ０が入力されるまでに、キャッシュメモリ５０３のクロックで１クロックの時間を要する。これは、図中におけるウェイ１のデータメモリのメモリアクセス要求入力ポート（信号線１５７−１）と、読み出しデータ速度差調整部の低速プロセッサ用入力ポート（信号線１５３−２）とから示される。
【０２４７】
ここで、読み出しデータ速度差調整部５２４は、選択回路５２８で信号線５７０が入力源として選択され、遅延回路５２６で１段遅延させた低速プロセッサ５２２用読み出しデータＤＤ０を、信号線４６８−２を介して低速プロセッサ５２２に出力する。このため、読み出しデータ速度差調整部５２４に読み出しデータＤＤ０が入力されてから、低速プロセッサ５２２に読み出しデータＤＤ０が入力されるまでに、キャッシュメモリ５０３のクロックで１クロックの時間を要する。これは、図中における読み出しデータ速度差調整部の低速プロセッサ用入力ポート（信号線１５３−２）と、読み出しデータ速度差調整部の低速プロセッサ用出力ポート（４６８−２）とから示される。
【０２４８】
次に、動作モードがｍｏｄｅ２であるときの動作について説明する。このとき、例えば、低速プロセッサ５２２から信号線１５１−２を介してキャッシュメモリ５０３に、タグリクエストＱＤ２およびエントリアドレスＡＤ２が出力され、ウェイ１がヒットしたとする。これに伴い、ウェイ１に対応するタグメモリ１０４−１から、タグリクエストＱＤ２およびエントリアドレスＡＤ２によって特定されたタグＴＤ２が出力される。ウェイ１に対応するシングルポートメモリ１０５−１で、タグＴＤ２に対応する読み出しデータＤＤ２が出力される。キャッシュメモリ５０３から信号線４６８−２を介して低速プロセッサ５２２に、読み出しデータＤＤ２が出力されたとする。
【０２４９】
この場合において、タグメモリ１０４−１にエントリアドレスＡＤ２が入力されてから、タグ速度差調整部５２３−１にタグＴＤ０が入力されるまでに、キャッシュメモリ５０３のクロックで１クロックの時間を要する。これは、図中におけるウェイ１のタグメモリの低速プロセッサ用入力ポート（信号線１５１−２）と、ウェイ１のタグ速度差調整部の低速プロセッサ用入力ポート（信号線１５６−２）とから示される。
【０２５０】
ここで、タグ速度差調整部５２３−１は、選択回路５２７−１で信号線１５６−２が入力源として選択され、遅延させずにそのままタグＴＤ２を、信号線４６７−２を介してキャッシュヒット判定部１０９−２に出力する。このため、タグ速度差調整部５２３−１にタグＴＤ２が入力されてから、キャッシュヒット判定部１０９−２にタグＴＤ２が入力されるまでが、同一のクロックサイクル内で行われる。これは、図中におけるウェイ１のタグ速度差調整部の低速プロセッサ用入力ポート（信号線１５６−２）と、ウェイ１のタグ速度差調整部の低速プロセッサ用出力ポート（信号線４６７−２）とから示される。
【０２５１】
さらに、シングルポートメモリ１０５−１にメモリアクセス要求ＲＤ２が入力されてから、読み出しデータ速度差調整部５２４に読み出しデータＤＤ２が入力されるまでに、キャッシュメモリ５０３のクロックで１クロックの時間を要する。ただし、ｍｏｄｅ２のときは、ｍｏｄｅ１のときと比べれば、２倍の時間を要する。これは、図中におけるウェイ１のデータメモリのメモリアクセス要求入力ポート（信号線１５７−１）と、読み出しデータ速度差調整部の低速プロセッサ用入力ポート（信号線１５３−２）とから示される。
【０２５２】
ここで、読み出しデータ速度差調整部５２４は、選択回路５２８で信号線１５３−２が入力源として選択され、遅延させずにそのまま低速プロセッサ５２２用読み出しデータＤＤ２を、信号線４６８−２を介して低速プロセッサ５２２に出力する。このため、読み出しデータ速度差調整部５２４に読み出しデータＤＤ２が入力されてから、低速プロセッサ５２２に読み出しデータＤＤ２が入力されるまでが、同一のクロックサイクル内で行われる。これは、図中における読み出しデータ速度差調整部の低速プロセッサ用入力ポート（信号線１５３−２）と、読み出しデータ速度差調整部の低速プロセッサ用出力ポート（４６８−２）とから示される。
【０２５３】
これから、高速プロセッサ５２１は、読み出しデータを取得するにあたって、ｍｏｄｅ２のときは、ｍｏｄｅ１のときと比べて２倍の時間を要する。しかし、ｍｏｄｅ１のときと同じように、タグリクエストの２サイクル後に、読み出しデータを取得することができる。
【０２５４】
これに対して、低速プロセッサ５２２は、読み出しデータを取得するにあたって、ｍｏｄｅ２のときは、ｍｏｄｅ１のときと比べて同じである。このため、ｍｏｄｅ１のときと同じように、タグリクエストの２サイクル後に、読み出しデータを取得することができる。
【０２５５】
なお、動作モードの切り替わり前後のタイミングにおいても、タグ速度差調整部５２３−１の選択回路５２７−１および読み出しデータ速度差調整部５２４の選択回路５２８を動作モード信号によって切り替えるとしてもよい。これによって、連続してキャッシュメモリにアクセスすることができる。
【０２５６】
以上、本実施の形態における演算装置５０１によれば、動作速度の異なる複数のプロセッサがキャッシュメモリを共用する場合でも、複数のプロセッサの各プロセッサは、プロセッサ間の動作速度差を意識することなく、かつ動作速度の切り替わりのタイミングを意識することなく、それぞれ同様のシーケンスで同時にアクセスすることができる。
【０２５７】
さらに、動作速度差を調整することができるので、データ記憶部のデータ出力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
【０２５８】
また、本実施の形態において、高速プロセッサ５２１がヒットする場合の動作については、動作モードの切り替えに依存することなく高速プロセッサ５２１とキャッシュメモリ５０３が同一の速度で動作するので同様のシーケンスでアクセスすることが可能であり、説明は省略する。
【０２５９】
実施の形態４に比較して、動作させるプロセッサと動作モードの組合せによって、より多くの処理性能と消費電力の選択が可能となり、さまざまな処理に対して適切な処理性能・消費電力を有するコンピュータシステムが実現可能となる。
【０２６０】
（実施の形態６）
次に、本発明に係わる実施の形態６について、図面を参照しながら説明する。
【０２６１】
なお、本実施の形態では、実施の形態１〜５のいずれかにおけるコンピュータシステムを備える携帯機器について説明する。
【０２６２】
本実施の形態における携帯機器は、下記（ｍ）に示される特徴を備える。
（ｍ）（ｍ１）実施の形態１〜５のいずれかの演算装置と、（ｍ２）音声データをデコードする音声デコードプログラムと、画像データをデコードする画像デコードプログラムとを記憶している主記憶装置と、（ｍ３）音声デコード結果に基づいて音声を出力する音声出力装置と、（ｍ４）画像デコード結果に基づいて画像を出力する画像出力装置とを備え、（ｍ５）複数のプロセッサのうち、画像デコードプログラムを実行したプロセッサは、画像データをデコードして得られた画像デコード結果を画像出力装置に出力し、（ｍ６）複数のプロセッサのうち、音声デコードプログラムを実行したプロセッサは、音声データをデコードして得られた音声デコード結果を音声出力装置に出力する。
【０２６３】
以上の点を踏まえて、本実施の形態における携帯機器について説明する。なお、ここでは、一例として、実施の形態１におけるコンピュータシステム１００を備える携帯機器について説明する。
【０２６４】
図２２は、本実施の形態における携帯機器の構成を示す図である。図２２に示されるように、携帯機器６３１は、コンピュータシステム１００、音声出力制御装置６３３、画像出力制御装置６３４、データバス６３５、音声出力装置６３６、画像出力装置６３７などを備える。
【０２６５】
ここでは、一例として、タスクＡ１７１として音声データをデコードするタスク（プログラム）とする。また、タスクＢ１７２として画像データをデコードするタスク（プログラム）とする。
【０２６６】
演算装置１０１は、タスクＡ１７１とタスクＢ１７２とを並列で実行する。例えば、タスクＡ１７１をプロセッサ１０２−２で実行する。タスクＢ１７２をプロセッサ１０２−１で実行する。これに伴い、音声データをデコードして得られた音声デコード結果を、データバス６３５を介して音声出力制御装置６３３に出力する。また、画像データをデコードして得られた画像デコード結果を、データバス６３５を介して画像出力制御装置６３４に出力する。
【０２６７】
なお、各プロセッサでは、画像デコードプログラムおよび音声デコードプログラムのいずれかに限定されて実行される訳ではない。
【０２６８】
音声出力制御装置６３３は、演算装置１０１からデータバス６３５を介して入力された音声デコード結果を受信し、受信した音声デコード結果を音声出力装置６３６に順次転送する。
【０２６９】
画像出力制御装置６３４は、演算装置１０１からデータバス６３５を介して入力された画像デコード結果を受信し、受信した画像デコード結果を画像出力装置６３７に順次転送する。
【０２７０】
音声出力装置６３６は、音声出力制御装置６３３から順次転送される音声デコード結果に基づいて、音声を出力する。
【０２７１】
画像出力装置６３７は、画像出力制御装置６３４から順次転送される画像デコード結果に基づいて、画像を出力する。
【０２７２】
携帯機器６３１は、一般的にバッテリによって動作が主となるため、消費電力の抑制が求められる。一方、動画・音声の同時再生においては、高い処理性能が必要となる。このため、低負荷での低消費電力と高負荷での高性能の両方に対応した演算装置が要求される。そこで、実施の形態１におけるコンピュータシステム１００の演算装置１０１を適用することにより、プログラムの処理量（タスク数）に応じてプロセッサの動作数を変化させることができ、低消費電力と高性能を両立した携帯機器を実現することができる。また、複数のプロセッサを備えつつ省面積化された演算装置によって、携帯機器の小型化が可能である。さらに、同一のデータ記憶部に対するアクセス競合を回避することができるので、携帯機器の処理性能向上に寄与する。
【０２７３】
（その他）
なお、本発明に係わる演算装置とメインメモリとが１チップに集積されているとしてもよい。
【０２７４】
なお、本発明に係わる演算装置は、演算装置の各機能が組み込まれたＬＳＩによって実現されるとしてもよい。
【０２７５】
なお、ＬＳＩは、フルカスタムＬＳＩ、ＡＳＩＣ（Application Specific Integrated Circuit）などのようなセミカスタムＬＳＩ、ＦＰＧＡやＣＰＬＤなどのようなプログラマブル・ロジック・デバイス、動的に回路構成が書き換え可能なダイナミック・リコンフィギュラブル・デバイスに形成されるとしてもよい。
【０２７６】
さらに、演算装置の各機能をＬＳＩに形成する設計データは、ハードウェア記述言語によって記述されたプログラム（以下、ＨＤＬプログラムと呼称する。）としてもよい。さらに、ＨＤＬプログラムを論理合成して得られるゲート・レベルのネットリストとしてもよい。また、ゲート・レベルのネットリストに、配置情報、プロセス条件等を付加したマクロセル情報としてもよい。また、寸法、タイミング等が規定されたマスクデータとしてもよい。ここで、ハードウェア記述言語として、ＶＨＤＬ（Very high speed integrated circuit Hardware Description Language）、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＳｙｓｔｅｍＣがある。
【０２７７】
さらに、設計データは、汎用のコンピュータシステム、組み込みシステムなどのようなハードウェアシステムに読み取り可能な記録媒体に記録されているとしてもよい。さらに、記録媒体を介して他のハードウェアシステムに読み出されて実行されるとしてもよい。そして、これらの記録媒体を介して他のハードウェアシステムに読み取られた設計データが、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてもよい。ここで、汎用のコンピュータシステムで読み取り可能な記録媒体として、光学記録媒体（例えば、ＣＤ−ＲＯＭなど。）、磁気記録媒体（例えば、ハードディスクなど。）、光磁気記録媒体（例えば、ＭＯなど。）、半導体メモリ（例えば、メモリカードなど。）などがある。
【０２７８】
または、設計データは、インターネット、ローカルエリアネットワークなどのようなネットワークに接続されているハードウェアシステムに保持されているとしてもよい。さらに、ネットワークを介して他のハードウェアシステムにダウンロードされて実行されるとしてもよい。そして、これらのネットワークを介して他のハードウェアシステムに取得された設計データが、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてよい。ここで、ネットワークとして、地上放送網、衛星放送網、ＰＬＣ（Power Line Communication）、移動電話網、有線通信網（例えば、ＩＥＥＥ８０２．３など。）、無線通信網（例えば、ＩＥＥＥ８０２．１１など。）がある。
【０２７９】
または、設計データは、通電時にＦＰＧＡに転送され得るように、シリアルＲＯＭに記録しておくとしてもよい。そして、シリアルＲＯＭに記録された設計データは、通電時に、直接、ＦＰＧＡにダウンロードされるとしてもよい。
【０２８０】
または、設計データは、通電時に、マイクロプロセッサによって生成されて、ＦＰＧＡにダウンロードされるとしてもよい。
【産業上の利用可能性】
【０２８１】
本発明は、複数のプロセッサによって共用されるキャッシュメモリを有するコンピュータシステムなどとして、利用することができる。
【図面の簡単な説明】
【０２８２】
【図１】本発明に係わる実施の形態１におけるコンピュータシステムの構成を示す図
【図２】本発明に係わる実施の形態１におけるメモリアクセス要求・書き込みデータ選択部の構成を示す図
【図３】本発明に係わる実施の形態１における読み出しデータ選択部の構成を示す図
【図４】本発明に係わる実施の形態１における領域管理部の構成を示す図
【図５】本発明に係わる実施の形態１におけるウェイ管理テーブルのデータ構造を示す図
【図６】本発明に係わる実施の形態１におけるウェイ割付処理のフローチャートを示す図
【図７】本発明に係わる実施の形態２におけるコンピュータシステムの構成を示す図
【図８】本発明に係わる実施の形態２におけるウェイ管理テーブルのデータ構造を示す図
【図９】本発明に係わる実施の形態２におけるウェイ割付処理のフローチャートを示す図
【図１０】本発明に係わる実施の形態３におけるコンピュータシステムの構成を示す図
【図１１】本発明に係わる実施の形態３におけるウェイ管理テーブルのデータ構造を示す図
【図１２】本発明に係わる実施の形態３におけるウェイ割付処理のフローチャートを示す図
【図１３】本発明に係わる実施の形態４におけるコンピュータシステムの構成を示す図
【図１４】本発明に係わる実施の形態４におけるタグ速度差調整部の構成を示す図
【図１５】本発明に係わる実施の形態４におけるデータメモリ出力速度調整部の構成を示す図
【図１６】本発明に係わる実施の形態４における動作波形を示すタイミングチャート
【図１７】本発明に係わる実施の形態４における動作波形を示すタイミングチャート
【図１８】本発明に係わる実施の形態５におけるコンピュータシステムの構成を示す図
【図１９】本発明に係わる実施の形態５におけるタグ出力速度差調整部の構成を示す図
【図２０】本発明に係わる実施の形態５におけるデータ出力速度調整部の構成を示す図
【図２１】本発明に係わる実施の形態５における動作波形を示すタイミングチャート
【図２２】本発明に係わる実施の形態６における携帯機器の構成を示す図
【符号の説明】
【０２８３】
１００〜５００  コンピュータシステム
１０１，４０１，５０１  演算装置
１０２−１，１０２−２  プロセッサ
１０３  キャッシュメモリ
１０４  タグメモリ
１０５  データメモリ
１０６−１〜１０６−ｎ  メモリアクセス要求・書き込みデータ選択部
１０７−１，１０７−２  読み出しデータ選択部
１０８  領域管理部
１０９−１〜１０９−（２ｎ−１）  キャッシュヒット判定部
１０９−２〜１０９−２ｎ  キャッシュヒット判定部
１１０〜３１０  メインメモリ
１１１−１  メモリアクセス信号選択回路
１１２−１  書き込みデータ選択回路
１１３−１  読み出しデータ選択回路
１１４  ウェイ情報保持部
１７１  タスクＡ
１７２  タスクＢ
１８１，２８１，３８１  オペレーティングシステム
１８２，２８２，３８２  ウェイ割付プログラム
１８３，２８３，３８３  ウェイ管理テーブル
４０３  キャッシュメモリ
４２１  高速プロセッサ
４２２  低速プロセッサ
４２３−１〜４２３−ｎ  タグ速度差調整部
４２４  読み出しデータ速度差調整部
４２５−１〜４２５−ｎ  遅延回路
４２６  遅延回路
５０３  キャッシュメモリ
５２１  高速プロセッサ
５２２  低速プロセッサ
５２３−１〜５２３−ｎ  タグ速度差調整部
５２４  読み出しデータ速度差調整部
５２５−１〜５２５−ｎ  遅延回路
５２６  遅延回路
５２７−１〜５２７−ｎ  選択回路
５２８  選択回路
６３１  携帯機器
６３３  音声出力制御装置
６３４  画像出力制御装置
６３５  データバス
６３６  音声出力装置
６３７  画像出力装置
【図１】
2008097572.tif 000003
【図２】
2008097572.tif 000004
【図３】
2008097572.tif 000005
【図４】
2008097572.tif 000006
【図５】
2008097572.tif 000007
【図６】
2008097572.tif 000008
【図７】
2008097572.tif 000009
【図８】
2008097572.tif 000010
【図９】
2008097572.tif 000011
【図１０】
2008097572.tif 000012
【図１１】
2008097572.tif 000013
【図１２】
2008097572.tif 000014
【図１３】
2008097572.tif 000015
【図１４】
2008097572.tif 000016
【図１５】
2008097572.tif 000017
【図１６】
2008097572.tif 000018
【図１７】
2008097572.tif 000019
【図１８】
2008097572.tif 000020
【図１９】
2008097572.tif 000021
【図２０】
2008097572.tif 000022
【図２１】
2008097572.tif 000023
【図２２】
2008097572.tif 000024