JPH1083349A - キャッシュ・メモリ・バンク制御装置 - Google Patents
キャッシュ・メモリ・バンク制御装置Info
- Publication number
- JPH1083349A JPH1083349A JP8238229A JP23822996A JPH1083349A JP H1083349 A JPH1083349 A JP H1083349A JP 8238229 A JP8238229 A JP 8238229A JP 23822996 A JP23822996 A JP 23822996A JP H1083349 A JPH1083349 A JP H1083349A
- Authority
- JP
- Japan
- Prior art keywords
- bank
- register
- cache
- task
- cache memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 164
- 230000004044 response Effects 0.000 claims description 13
- 238000000034 method Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000002542 deteriorative effect Effects 0.000 description 2
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 キャッシュ・バンクの選択および管理のため
の処理を簡素化でき、結果的にタスク切り替えに要する
時間の短縮を実現可能にする。 【解決手段】 キャッシュ・メモリ9を複数のキャッシ
ュ・メモリ・バンクから構成し、レジスタ・バンク選択
手段Aによる選択レジスタ・バンクの選択に連動して、
前記複数のキャッシュ・メモリ・バンクのうちの一つを
選択キャッシュ・メモリ・バンクとして選択する。
の処理を簡素化でき、結果的にタスク切り替えに要する
時間の短縮を実現可能にする。 【解決手段】 キャッシュ・メモリ9を複数のキャッシ
ュ・メモリ・バンクから構成し、レジスタ・バンク選択
手段Aによる選択レジスタ・バンクの選択に連動して、
前記複数のキャッシュ・メモリ・バンクのうちの一つを
選択キャッシュ・メモリ・バンクとして選択する。
Description
【0001】
【発明の属する技術分野】本発明は、キャッシュ・メモ
リ・バンク制御装置に関し、特に複数のレジスタ・バン
クを持ち、これらのレジスタ・バンクの切り替えにより
マルチ・タスクのタスク切り替えを行うキャッシュ・メ
モリ・バンク制御装置に関するものである。
リ・バンク制御装置に関し、特に複数のレジスタ・バン
クを持ち、これらのレジスタ・バンクの切り替えにより
マルチ・タスクのタスク切り替えを行うキャッシュ・メ
モリ・バンク制御装置に関するものである。
【0002】
【従来の技術】近年のコンピュータ・システムにおいて
は、高速に動作するマイクロプロセッサが使用されるよ
うになってきた。このようなシステムにおいては、大容
量のメモリを安価に構成できる低速のメモリではプロセ
ッサの処理速度に追従できないため、プロセッサのプロ
グラムの実効速度を改善できる小容量で高速のキャッシ
ュ・メモリを搭載するのが一般的である。
は、高速に動作するマイクロプロセッサが使用されるよ
うになってきた。このようなシステムにおいては、大容
量のメモリを安価に構成できる低速のメモリではプロセ
ッサの処理速度に追従できないため、プロセッサのプロ
グラムの実効速度を改善できる小容量で高速のキャッシ
ュ・メモリを搭載するのが一般的である。
【0003】このキャッシュ・メモリは、限定された個
数のデータ・ワード、あるいはインストラクション・ワ
ードを記憶しており、メモリの読み出し操作毎にキャッ
シュ・メモリ内に必要なデータ、あるいはインストラク
ションが存在するかどうかが調べられる。必要なデータ
がキャッシュ・メモリ内に存在する場合(キャッシュ・
ヒット)には、そのデータはキャッシュ・メモリから読
み出され、存在しない場合(キャッシュ・ミス)には、
メイン・メモリから読み出される。そしてメイン・メモ
リから読み出されたデータ、あるいはインストラクショ
ンはキャッシュ・メモリ内の空き領域に書き込まれる。
この際、キャッシュ・メモリ内に空き領域がない場合
は、既存の情報と置き換え(リプレース)られる。
数のデータ・ワード、あるいはインストラクション・ワ
ードを記憶しており、メモリの読み出し操作毎にキャッ
シュ・メモリ内に必要なデータ、あるいはインストラク
ションが存在するかどうかが調べられる。必要なデータ
がキャッシュ・メモリ内に存在する場合(キャッシュ・
ヒット)には、そのデータはキャッシュ・メモリから読
み出され、存在しない場合(キャッシュ・ミス)には、
メイン・メモリから読み出される。そしてメイン・メモ
リから読み出されたデータ、あるいはインストラクショ
ンはキャッシュ・メモリ内の空き領域に書き込まれる。
この際、キャッシュ・メモリ内に空き領域がない場合
は、既存の情報と置き換え(リプレース)られる。
【0004】また、最近のパイプライン方式のマイクロ
プロセッサのアーキテクチャにおいては、一つのプロセ
ッサに対して複数のレジスタからなるレジスタ・セット
をバンク形式で複数組備え、UNIX(登録商標)など
のマルチタスク・オペレーティング・システム(マルチ
タスクOS)の環境下で頻繁に行われるタスク(プロセ
ス)の切り替えに対しては、プロセッサの1命令または
数命令毎にレジスタ・バンクを切り替えることによりタ
スクを切り替え、複数のタスク(マルチタスク)を時分
割で実行する方式が広く採用されている。
プロセッサのアーキテクチャにおいては、一つのプロセ
ッサに対して複数のレジスタからなるレジスタ・セット
をバンク形式で複数組備え、UNIX(登録商標)など
のマルチタスク・オペレーティング・システム(マルチ
タスクOS)の環境下で頻繁に行われるタスク(プロセ
ス)の切り替えに対しては、プロセッサの1命令または
数命令毎にレジスタ・バンクを切り替えることによりタ
スクを切り替え、複数のタスク(マルチタスク)を時分
割で実行する方式が広く採用されている。
【0005】ところで、このようなマルチタスクOSの
環境下で頻繁に行われるタスク切り替えにおいては、キ
ャッシュ・ミスが比較的顕著に現れ、その呼び出された
タスクのデータおよびインストラクションでキャッシュ
・メモリの内容が置き換えられる。そのため、リプレー
スが多発し、さらにこのタスクを終了して元のタスクに
戻った時にも再びキャッシュ・ミスが生じ、システムの
性能が低下することが問題となっている。
環境下で頻繁に行われるタスク切り替えにおいては、キ
ャッシュ・ミスが比較的顕著に現れ、その呼び出された
タスクのデータおよびインストラクションでキャッシュ
・メモリの内容が置き換えられる。そのため、リプレー
スが多発し、さらにこのタスクを終了して元のタスクに
戻った時にも再びキャッシュ・ミスが生じ、システムの
性能が低下することが問題となっている。
【0006】図5は従来のレジスタ・バンク切り替え機
能を有するマイクロプロセッサを用いた従来のキャッシ
ュ・メモリ制御装置を示し、これが外部メモリとしての
メイン・メモリ10と、メイン・メモリ10からインス
トラクション・ワードをフェッチし、それを実行するた
めのプロセッサ(CPU)1と、プロセッサ1とメイン
・メモリ10との間でデータの授受を行うためのバス・
インタフェース・ロジック2と、四つのレジスタ・バン
ク3〜6のうちの常に一つのみを選択するためのバンク
選択レジスタ7と、バンク選択部としてのセレクタ8
と、キャッシュ・メモリ12とを備える。ここで、キャ
ッシュ・メモリ12は、タグ・メモリ12Aとデータ・
メモリ12Bとから構成されて、メイン・メモリ10の
一部のコピーを持つために用意される。
能を有するマイクロプロセッサを用いた従来のキャッシ
ュ・メモリ制御装置を示し、これが外部メモリとしての
メイン・メモリ10と、メイン・メモリ10からインス
トラクション・ワードをフェッチし、それを実行するた
めのプロセッサ(CPU)1と、プロセッサ1とメイン
・メモリ10との間でデータの授受を行うためのバス・
インタフェース・ロジック2と、四つのレジスタ・バン
ク3〜6のうちの常に一つのみを選択するためのバンク
選択レジスタ7と、バンク選択部としてのセレクタ8
と、キャッシュ・メモリ12とを備える。ここで、キャ
ッシュ・メモリ12は、タグ・メモリ12Aとデータ・
メモリ12Bとから構成されて、メイン・メモリ10の
一部のコピーを持つために用意される。
【0007】次に、図5を参照して従来のキャッシュ・
メモリ制御装置の動作について説明する。ここでは前記
のように四つのレジスタ・バンク3〜6を有し、処理す
るタスクの数も四つである場合を例とする。選択される
レジスタ・バンクの番号はバンク選択レジスタ7に示さ
れ、そのデータをセレクタ8でデコードする。そのデコ
ード出力をそれぞれレジスタ・バンク3〜6のいずれか
に接続することにより、タスクに対応する一つのレジス
タ・バンクが選択される。こうして選択されたレジスタ
・バンクのみ、汎用レジスタとして使用が可能になる。
メモリ制御装置の動作について説明する。ここでは前記
のように四つのレジスタ・バンク3〜6を有し、処理す
るタスクの数も四つである場合を例とする。選択される
レジスタ・バンクの番号はバンク選択レジスタ7に示さ
れ、そのデータをセレクタ8でデコードする。そのデコ
ード出力をそれぞれレジスタ・バンク3〜6のいずれか
に接続することにより、タスクに対応する一つのレジス
タ・バンクが選択される。こうして選択されたレジスタ
・バンクのみ、汎用レジスタとして使用が可能になる。
【0008】また、レジスタ・バンク3〜6の第1〜第
4の各番号と、第1〜第4の四つのタスクの番号をそれ
ぞれ1対1に対応させると、以下のようにタスク切り替
えおよびレジスタ・バンク切り替えを実行することがで
きる。実行中のタスク番号が使用中のレジスタ・バンク
番号となり、バンク選択レジスタに示される。すなわ
ち、割り込みの発生または専用命令の実行によるタスク
の切り替え時に、切り替え先のタスク番号をバンク選択
レジスタ7へ設定すれば、バンク選択レジスタ7の値の
デコード結果に従ってレジスタ・バンクが切り替わる。
レジスタ・バンク3〜6の各々には対応タスクの実行ア
ドレス情報が含まれているので、実行タスクが切り替わ
ることになる。
4の各番号と、第1〜第4の四つのタスクの番号をそれ
ぞれ1対1に対応させると、以下のようにタスク切り替
えおよびレジスタ・バンク切り替えを実行することがで
きる。実行中のタスク番号が使用中のレジスタ・バンク
番号となり、バンク選択レジスタに示される。すなわ
ち、割り込みの発生または専用命令の実行によるタスク
の切り替え時に、切り替え先のタスク番号をバンク選択
レジスタ7へ設定すれば、バンク選択レジスタ7の値の
デコード結果に従ってレジスタ・バンクが切り替わる。
レジスタ・バンク3〜6の各々には対応タスクの実行ア
ドレス情報が含まれているので、実行タスクが切り替わ
ることになる。
【0009】タスクおよびレジスタ・バンクの切り替え
の例を説明すると、第1のタスクの処理中に使用される
レジスタ・バンクは第1のレジスタ・バンク3である。
処理対象タスクが第1のタスクから第3のタスクに切り
替わるとレジスタ・バンクも第1のレジスタ・バンク3
から第3のレジスタ・バンク5に切り替わる。また、処
理対象タスクが第3のレジスタ・バンク5から第1のレ
ジスタ・バンク3に切り替わるため、それぞれのタスク
対応の汎用レジスタの退避/復帰の必要が無く、最初の
第1のタスクの処理時と同一の汎用レジスタの状態で第
1のタスクの処理を続けることが可能である。従って、
タスク切り替え前の使用汎用レジスタの退避/復帰が不
要となり、タスク切り替え時間を短縮することが可能で
ある。
の例を説明すると、第1のタスクの処理中に使用される
レジスタ・バンクは第1のレジスタ・バンク3である。
処理対象タスクが第1のタスクから第3のタスクに切り
替わるとレジスタ・バンクも第1のレジスタ・バンク3
から第3のレジスタ・バンク5に切り替わる。また、処
理対象タスクが第3のレジスタ・バンク5から第1のレ
ジスタ・バンク3に切り替わるため、それぞれのタスク
対応の汎用レジスタの退避/復帰の必要が無く、最初の
第1のタスクの処理時と同一の汎用レジスタの状態で第
1のタスクの処理を続けることが可能である。従って、
タスク切り替え前の使用汎用レジスタの退避/復帰が不
要となり、タスク切り替え時間を短縮することが可能で
ある。
【0010】しかし、上述したキャッシュ・メモリ12
は処理対象のタスク毎に管理されないため、キャッシュ
・メモリ12が満杯になると、処理対象タスクとは無関
係に、古いデータまたは使用頻度の少ないデータからキ
ャッシュ・メモリ12のデータがリプレースされる。こ
のため、タスク切り替えにより処理タスクを切り替えた
とき、および再び前のタスクへ切り替えたとき、キャッ
シュ・メモリ12内に必要なデータやインストラクショ
ンが存在しないためキャッシュ・ミスが発生する。
は処理対象のタスク毎に管理されないため、キャッシュ
・メモリ12が満杯になると、処理対象タスクとは無関
係に、古いデータまたは使用頻度の少ないデータからキ
ャッシュ・メモリ12のデータがリプレースされる。こ
のため、タスク切り替えにより処理タスクを切り替えた
とき、および再び前のタスクへ切り替えたとき、キャッ
シュ・メモリ12内に必要なデータやインストラクショ
ンが存在しないためキャッシュ・ミスが発生する。
【0011】上述したキャッシュ・メモリ制御装置で
は、マルチタスクOSの環境下で頻繁に行われるタスク
切り替えにおいては、キャッシュ・ミスが比較的顕著に
現れ、その呼び出されたタスクのデータおよびインスト
ラクションでキャッシュ・メモリの内容が置き換えられ
る。そのためリプレースが多発し、さらにこのタスクを
終了して元のタスクに戻った時にも再びキャッシュ・ミ
スが生じ、システムの性能が低下するという問題点があ
る。
は、マルチタスクOSの環境下で頻繁に行われるタスク
切り替えにおいては、キャッシュ・ミスが比較的顕著に
現れ、その呼び出されたタスクのデータおよびインスト
ラクションでキャッシュ・メモリの内容が置き換えられ
る。そのためリプレースが多発し、さらにこのタスクを
終了して元のタスクに戻った時にも再びキャッシュ・ミ
スが生じ、システムの性能が低下するという問題点があ
る。
【0012】この問題点を解決した実開平5―7194
8号公報記載の従来のキャッシュ・メモリ・バンク制御
装置は、キャッシュ・メモリ自体をバンク構造で構成す
ることによってタスク切り替えが起った場合においても
キャッシュのヒット率を向上させようとするものであ
る。
8号公報記載の従来のキャッシュ・メモリ・バンク制御
装置は、キャッシュ・メモリ自体をバンク構造で構成す
ることによってタスク切り替えが起った場合においても
キャッシュのヒット率を向上させようとするものであ
る。
【0013】従来のキャッシュ・メモリ・バンク制御装
置を用いたシステムを図5と共通の表現で示すととも
に、共通の構成要素には共通の参照文字,数字を付し
て、図6について説明する。この従来のキャッシュ・メ
モリ・バンク制御装置は、キャッシュ・メモリ12の代
わりに、四つのバンクから構成されるバンク形式のキャ
ッシュ・メモリ9と、実行するタスクとそのタスクが使
用するキャッシュ・メモリのバンク番号との対応関係を
表すバンク番号対応テーブル15と、バンク番号対応テ
ーブル15を含むメイン・メモリ10と、現在のタスク
が使用しているキャッシュ・バンク番号を保持するため
の使用キャッシュ・バンク指定レジスタ13と、使用キ
ャッシュ・バンク指定レジスタ13に設定されたキャッ
シュ・バンク番号により、対応するキャッシュ・バンク
を一つだけ選択するキャッシュ・バンク選択部14と、
メイン・メモリ10からインストラクション・ワードを
フェッチし、それを実行する機能とともに、実行される
プログラムに対してキャッシュ・バンク番号を前記バン
ク番号対応テーブル15に設定する機能を有するプロセ
ッサ1と、プロセッサ1とメイン・メモリ10との間で
データの授受を行うためのバス・インタフェース・ロジ
ック2とから構成される。
置を用いたシステムを図5と共通の表現で示すととも
に、共通の構成要素には共通の参照文字,数字を付し
て、図6について説明する。この従来のキャッシュ・メ
モリ・バンク制御装置は、キャッシュ・メモリ12の代
わりに、四つのバンクから構成されるバンク形式のキャ
ッシュ・メモリ9と、実行するタスクとそのタスクが使
用するキャッシュ・メモリのバンク番号との対応関係を
表すバンク番号対応テーブル15と、バンク番号対応テ
ーブル15を含むメイン・メモリ10と、現在のタスク
が使用しているキャッシュ・バンク番号を保持するため
の使用キャッシュ・バンク指定レジスタ13と、使用キ
ャッシュ・バンク指定レジスタ13に設定されたキャッ
シュ・バンク番号により、対応するキャッシュ・バンク
を一つだけ選択するキャッシュ・バンク選択部14と、
メイン・メモリ10からインストラクション・ワードを
フェッチし、それを実行する機能とともに、実行される
プログラムに対してキャッシュ・バンク番号を前記バン
ク番号対応テーブル15に設定する機能を有するプロセ
ッサ1と、プロセッサ1とメイン・メモリ10との間で
データの授受を行うためのバス・インタフェース・ロジ
ック2とから構成される。
【0014】図6を参照して従来のキャッシュ・メモリ
・バンク制御装置の動作について説明する。ここでは上
述のようにキャッシュ・メモリ9は四つのキャッシュ・
バンクから構成されており、使用キャッシュ・バンク指
定レジスタ12により示されている一つのキャッシュ・
バンクからしかメモリ・ワードの参照を行わないように
なっている。また、バンク番号対応テーブル15には、
図7に示すように、実行されるタスク番号と、使用する
キャッシュ・バンク番号との対応関係およびキャッシュ
・バンクが使用中であるか否かを示すフラグが記憶され
る。このキャッシュ・メモリ・バンク制御装置では、キ
ャッシュ・メモリ9を複数のバンクで構成することによ
り、プロセッサで実行する各タスク毎に使用するキャッ
シュ・メモリのバンクを割り当て使用する。
・バンク制御装置の動作について説明する。ここでは上
述のようにキャッシュ・メモリ9は四つのキャッシュ・
バンクから構成されており、使用キャッシュ・バンク指
定レジスタ12により示されている一つのキャッシュ・
バンクからしかメモリ・ワードの参照を行わないように
なっている。また、バンク番号対応テーブル15には、
図7に示すように、実行されるタスク番号と、使用する
キャッシュ・バンク番号との対応関係およびキャッシュ
・バンクが使用中であるか否かを示すフラグが記憶され
る。このキャッシュ・メモリ・バンク制御装置では、キ
ャッシュ・メモリ9を複数のバンクで構成することによ
り、プロセッサで実行する各タスク毎に使用するキャッ
シュ・メモリのバンクを割り当て使用する。
【0015】タスクおよびキャッシュ・バンク切り替え
の処理手順を図8に示すフローチャートを参照して説明
すると、第1のタスクの処理中に使用されるキャッシュ
・バンクは、使用キャッシュ・バンク指定レジスタ13
により指定されているものとする。まず、終了したタス
クが使用していたキャッシュ・バンクの使用フラグがリ
セットされているときに(ステップS1)、タスクの切
り替え要求が発生した場合には(ステップS2)、処理
対象タスクを切り替える時に、プログラムにてメイン・
メモリ10のバンク番号対応テーブル15を参照し、未
使用のキャッシュ・バンクが存在するか否かを確認し
(ステップS3)、存在しない場合はプライオリティの
最も低いタスクが所有するキャッシュ・バンクの使用フ
ラグをクリアし、未使用状態とする(ステップS4)。
の処理手順を図8に示すフローチャートを参照して説明
すると、第1のタスクの処理中に使用されるキャッシュ
・バンクは、使用キャッシュ・バンク指定レジスタ13
により指定されているものとする。まず、終了したタス
クが使用していたキャッシュ・バンクの使用フラグがリ
セットされているときに(ステップS1)、タスクの切
り替え要求が発生した場合には(ステップS2)、処理
対象タスクを切り替える時に、プログラムにてメイン・
メモリ10のバンク番号対応テーブル15を参照し、未
使用のキャッシュ・バンクが存在するか否かを確認し
(ステップS3)、存在しない場合はプライオリティの
最も低いタスクが所有するキャッシュ・バンクの使用フ
ラグをクリアし、未使用状態とする(ステップS4)。
【0016】次に、未使用のバンク番号をバンク番号対
応テーブル15から取り出し(ステップS5)、使用キ
ャッシュ・バンク指定レジスタ13へ設定することによ
り(ステップS6)、使用するキャッシュ・バンクを切
り替える。続いて、バンク番号対応テーブル15の切り
替えたキャッシュ・バンク番号に対応する使用中フラグ
をセットし(ステップS7)、切り替えるタスクの番号
を使用タスクとして、バンク番号対応テーブル15へセ
ットする。このあと実行タスクを切り替え要求のあった
タスクへ切り替える(ステップS8)、タスクを実行す
る(ステップS9)。こうしてタスクの実行が終了した
場合には(ステップS10)、終了したタスクがキャッ
シュ・バンクを使用したとき、それを未使用状態にセッ
トして(ステップS11)、ステップS2以下の処理を
実行する。また、タスクが終了していない場合も、ステ
ップS2以下の処理を実行する。
応テーブル15から取り出し(ステップS5)、使用キ
ャッシュ・バンク指定レジスタ13へ設定することによ
り(ステップS6)、使用するキャッシュ・バンクを切
り替える。続いて、バンク番号対応テーブル15の切り
替えたキャッシュ・バンク番号に対応する使用中フラグ
をセットし(ステップS7)、切り替えるタスクの番号
を使用タスクとして、バンク番号対応テーブル15へセ
ットする。このあと実行タスクを切り替え要求のあった
タスクへ切り替える(ステップS8)、タスクを実行す
る(ステップS9)。こうしてタスクの実行が終了した
場合には(ステップS10)、終了したタスクがキャッ
シュ・バンクを使用したとき、それを未使用状態にセッ
トして(ステップS11)、ステップS2以下の処理を
実行する。また、タスクが終了していない場合も、ステ
ップS2以下の処理を実行する。
【0017】再び元のタスクへ切り替える時にも、同様
にバンク番号対応テーブル15を参照して元のタスクに
対応するキャッシュ・バンク番号を読み出し、使用キャ
ッシュ・バンク指定レジスタ13へバンク番号を設定す
ることにより、元のキャッシュ・バンクへ切り替えるこ
とができる。このように、プロセッサにてキャッシュ・
バンク切り替えのための処理を実行することにより、キ
ャッシュ・バンク番号が設定され、それぞれのタスクに
専用に使用できるキャッシュ・バンクを持つことが可能
となり、タスクが切り替わっても、それまで使用してい
たキャッシュ・メモリの内容を保持することができ、再
び元のタスクに切り替えた時に前に使用していたキャッ
シュ・メモリの内容がある程度残っているため、キャッ
シュ・ヒット率の低下を押えることができる。
にバンク番号対応テーブル15を参照して元のタスクに
対応するキャッシュ・バンク番号を読み出し、使用キャ
ッシュ・バンク指定レジスタ13へバンク番号を設定す
ることにより、元のキャッシュ・バンクへ切り替えるこ
とができる。このように、プロセッサにてキャッシュ・
バンク切り替えのための処理を実行することにより、キ
ャッシュ・バンク番号が設定され、それぞれのタスクに
専用に使用できるキャッシュ・バンクを持つことが可能
となり、タスクが切り替わっても、それまで使用してい
たキャッシュ・メモリの内容を保持することができ、再
び元のタスクに切り替えた時に前に使用していたキャッ
シュ・メモリの内容がある程度残っているため、キャッ
シュ・ヒット率の低下を押えることができる。
【0018】
【発明が解決しようとする課題】従来のキャッシュ・メ
モリ・バンク制御装置は以上のように構成されているの
で、次のような課題があった。まず、第1の課題は、キ
ャッシュ・メモリ制御装置では、マルチタスクOSの環
境下で頻繁に行われるタスク切り替えにおいてキャッシ
ュ・ミスが比較的顕著に現れ、その呼び出されたタスク
のデータおよびインストラクションでキャッシュ・メモ
リの内容が置き換えられる。そのためリプレースが多発
し、さらにこのタスクを終了して元のタスクに戻った時
にも再びキャッシュ・ミスが生じ、システムの性能が低
下するという点である。その理由は、上述したキャッシ
ュ・メモリが、処理対象のタスク毎に管理されないた
め、キャッシュ・メモリが満杯になると、処理対象のタ
スクとは無関係に、古いデータ、または使用頻度の少な
いデータからキャッシュ・メモリのデータがリプレース
され、タスク切り替えにより処理タスクが切り替わった
とき、および再び前のタスクへ切り替えたとき、キャッ
シュ・メモリ内に必要なデータやインストラクションが
存在しないためである。
モリ・バンク制御装置は以上のように構成されているの
で、次のような課題があった。まず、第1の課題は、キ
ャッシュ・メモリ制御装置では、マルチタスクOSの環
境下で頻繁に行われるタスク切り替えにおいてキャッシ
ュ・ミスが比較的顕著に現れ、その呼び出されたタスク
のデータおよびインストラクションでキャッシュ・メモ
リの内容が置き換えられる。そのためリプレースが多発
し、さらにこのタスクを終了して元のタスクに戻った時
にも再びキャッシュ・ミスが生じ、システムの性能が低
下するという点である。その理由は、上述したキャッシ
ュ・メモリが、処理対象のタスク毎に管理されないた
め、キャッシュ・メモリが満杯になると、処理対象のタ
スクとは無関係に、古いデータ、または使用頻度の少な
いデータからキャッシュ・メモリのデータがリプレース
され、タスク切り替えにより処理タスクが切り替わった
とき、および再び前のタスクへ切り替えたとき、キャッ
シュ・メモリ内に必要なデータやインストラクションが
存在しないためである。
【0019】また、第2の課題は、キャッシュ・メモリ
を分割制御するキャッシュ・メモリ・バンク制御装置で
は、分割したキャッシュ・バンクの選択および管理のた
めのプログラム処理が複雑になり、タスク切り替えの処
理時間が長くなることによるプログラム処理効率の低下
と、プログラムのコード・サイズの増加、さらにはプロ
グラムの開発効率が悪くなるという点である。その理由
は、処理タスクを切り替える毎に、切り替えるタスクに
対応して使用するキャッシュ・バンクの番号を、バンク
番号対応テーブル15から読み出し、使用キャッシュ・
バンク指定レジスタ13に設定し、バンク番号対応テー
ブル15を更新する必要があるためである。さらに、多
数のタスクを切り替えて処理するシステムを開発する際
には、その複数のタスク番号を管理するほかに、それぞ
れのタスクが使用するキャッシュ・バンク番号、および
キャッシュ・バンクの使用状況までも管理する必要があ
る。
を分割制御するキャッシュ・メモリ・バンク制御装置で
は、分割したキャッシュ・バンクの選択および管理のた
めのプログラム処理が複雑になり、タスク切り替えの処
理時間が長くなることによるプログラム処理効率の低下
と、プログラムのコード・サイズの増加、さらにはプロ
グラムの開発効率が悪くなるという点である。その理由
は、処理タスクを切り替える毎に、切り替えるタスクに
対応して使用するキャッシュ・バンクの番号を、バンク
番号対応テーブル15から読み出し、使用キャッシュ・
バンク指定レジスタ13に設定し、バンク番号対応テー
ブル15を更新する必要があるためである。さらに、多
数のタスクを切り替えて処理するシステムを開発する際
には、その複数のタスク番号を管理するほかに、それぞ
れのタスクが使用するキャッシュ・バンク番号、および
キャッシュ・バンクの使用状況までも管理する必要があ
る。
【0020】また、第3の課題は、キャッシュ・メモリ
を分割制御するキャッシュ・メモリ・バンク制御装置の
場合は、さらに実行タスクと使用キャッシュ・バンクの
対応を管理するためのバンク番号対応テーブル用のメモ
リが必要となる点である。その理由は、処理タスク番号
と、そのタスク処理の際に使用するキャッシュ・バンク
番号を管理する必要があるためである。
を分割制御するキャッシュ・メモリ・バンク制御装置の
場合は、さらに実行タスクと使用キャッシュ・バンクの
対応を管理するためのバンク番号対応テーブル用のメモ
リが必要となる点である。その理由は、処理タスク番号
と、そのタスク処理の際に使用するキャッシュ・バンク
番号を管理する必要があるためである。
【0021】また、第4の課題は、キャッシュ・メモリ
を分割制御する従来のキャッシュ・メモリ・バンク制御
装置では、タスク処理の優先度に対応した、タスク毎の
キャッシュ・メモリ使用率を制御できないという点であ
る。その理由は、キャッシュ・メモリを分割制御する従
来のキャッシュ・メモリ・バンク制御装置の場合は、タ
スク切り替え時に、実行するタスクに対応して選択され
るキャッシュ・バンクが一つに限られるため、タスク毎
の使用キャッシュ・サイズを任意に変更することができ
ないためである。
を分割制御する従来のキャッシュ・メモリ・バンク制御
装置では、タスク処理の優先度に対応した、タスク毎の
キャッシュ・メモリ使用率を制御できないという点であ
る。その理由は、キャッシュ・メモリを分割制御する従
来のキャッシュ・メモリ・バンク制御装置の場合は、タ
スク切り替え時に、実行するタスクに対応して選択され
るキャッシュ・バンクが一つに限られるため、タスク毎
の使用キャッシュ・サイズを任意に変更することができ
ないためである。
【0022】
【課題を解決するための手段】前記目的達成のために、
請求項1の発明にかかるキャッシュ・メモリ・バンク制
御装置は、複数のタスクに対応して設けられた複数のレ
ジスタ・バンクと、これらの複数のレジスタ・バンクの
うちの一つを選択レジスタ・バンクとして選択するレジ
スタ・バンク選択手段と、メイン・メモリの一部のコピ
ーを持つために用意されたキャッシュ・メモリとを備
え、前記キャッシュ・メモリを複数のキャッシュ・メモ
リ・バンクから構成し、前記レジスタ・バンク選択手段
による前記選択レジスタ・バンクの選択に連動して、前
記複数のキャッシュ・メモリ・バンクのうちの一つを選
択キャッシュ・メモリ・バンクとして選択するようにし
たものである。
請求項1の発明にかかるキャッシュ・メモリ・バンク制
御装置は、複数のタスクに対応して設けられた複数のレ
ジスタ・バンクと、これらの複数のレジスタ・バンクの
うちの一つを選択レジスタ・バンクとして選択するレジ
スタ・バンク選択手段と、メイン・メモリの一部のコピ
ーを持つために用意されたキャッシュ・メモリとを備
え、前記キャッシュ・メモリを複数のキャッシュ・メモ
リ・バンクから構成し、前記レジスタ・バンク選択手段
による前記選択レジスタ・バンクの選択に連動して、前
記複数のキャッシュ・メモリ・バンクのうちの一つを選
択キャッシュ・メモリ・バンクとして選択するようにし
たものである。
【0023】また、請求項2の発明にかかるキャッシュ
・メモリ・バンク制御装置は、前記レジスタ・バンク選
択手段を、複数のタスクのうちの一つの処理対象タスク
対応のタスク番号を格納するバンク選択レジスタと、こ
のバンク選択レジスタへのタスク番号の設定に応答して
前記選択レジスタ・バンクおよび前記選択キャッシュ・
メモリ・バンクをそれぞれ選択する選択信号を出力する
バンク選択部とから構成したものである。
・メモリ・バンク制御装置は、前記レジスタ・バンク選
択手段を、複数のタスクのうちの一つの処理対象タスク
対応のタスク番号を格納するバンク選択レジスタと、こ
のバンク選択レジスタへのタスク番号の設定に応答して
前記選択レジスタ・バンクおよび前記選択キャッシュ・
メモリ・バンクをそれぞれ選択する選択信号を出力する
バンク選択部とから構成したものである。
【0024】また、請求項3の発明にかかるキャッシュ
・メモリ・バンク制御装置は、前記キャッシュ・メモリ
を複数のキャッシュ・メモリ・バンクから構成し、前記
レジスタ・バンク選択手段によりバンクの分割モードに
応じてあらかじめ設定された複数個のたは全てのキャッ
シュ・メモリ・バンクを選択キャッシュ・メモリ・バン
クとして選択するようにしたものである。
・メモリ・バンク制御装置は、前記キャッシュ・メモリ
を複数のキャッシュ・メモリ・バンクから構成し、前記
レジスタ・バンク選択手段によりバンクの分割モードに
応じてあらかじめ設定された複数個のたは全てのキャッ
シュ・メモリ・バンクを選択キャッシュ・メモリ・バン
クとして選択するようにしたものである。
【0025】また、請求項4の発明にかかるキャッシュ
・メモリ・バンク制御装置は、前記レジスタ・バンク選
択手段を、複数のタスクのうちの一つの処理対象タスク
対応のタスク番号を格納するバンク選択レジスタと、前
記タスク番号の供給に応答して前記選択レジスタ・バン
クおよび前記選択キャッシュ・メモリ・バンクをそれぞ
れ選択する選択信号を出力するバンク選択部とから構成
したものである。
・メモリ・バンク制御装置は、前記レジスタ・バンク選
択手段を、複数のタスクのうちの一つの処理対象タスク
対応のタスク番号を格納するバンク選択レジスタと、前
記タスク番号の供給に応答して前記選択レジスタ・バン
クおよび前記選択キャッシュ・メモリ・バンクをそれぞ
れ選択する選択信号を出力するバンク選択部とから構成
したものである。
【0026】
【発明の実施の形態】以下に、本発明の実施の一形態を
図について説明する。図1はこの発明のキャッシュ・メ
モリ・バンク制御装置を示すブロック図であり、同図に
おいて、図5および図6と共通の構成要素には共通の文
字,数字を付して説明する。このキャッシュ・メモリ・
バンク制御装置は、外部メモリとしてのメイン・メモリ
10と、メイン・メモリ10からインストラクション・
ワードをフェッチし、それを実行するためのプロセッサ
(CPU)1と、プロセッサ1とメイン・メモリ10と
の間でデータの授受を行うためのバス・インタフェース
・ロジック2と、複数のレジスタ・バンク3〜6と、複
数のバンクから構成されて、メイン・メモリ10の一部
のコピーを持つために用意されるバンク形式のキャッシ
ュ・メモリ9と、現在のタスクが使用しているレジスタ
・バンク番号を保持するためのバンク選択レジスタ7
と、バンク選択レジスタ7に設定されたレジスタ・バン
ク番号により、複数のレジスタ・バンク3〜6のうちの
常に一つを選択レジスタ・バンクとして選択するととも
に、対応するキャッシュ・バンクを一つだけ選択キャッ
シュ・メモリ・バンクとして選択するバンク選択部とし
てのセレクタ8とから構成される。
図について説明する。図1はこの発明のキャッシュ・メ
モリ・バンク制御装置を示すブロック図であり、同図に
おいて、図5および図6と共通の構成要素には共通の文
字,数字を付して説明する。このキャッシュ・メモリ・
バンク制御装置は、外部メモリとしてのメイン・メモリ
10と、メイン・メモリ10からインストラクション・
ワードをフェッチし、それを実行するためのプロセッサ
(CPU)1と、プロセッサ1とメイン・メモリ10と
の間でデータの授受を行うためのバス・インタフェース
・ロジック2と、複数のレジスタ・バンク3〜6と、複
数のバンクから構成されて、メイン・メモリ10の一部
のコピーを持つために用意されるバンク形式のキャッシ
ュ・メモリ9と、現在のタスクが使用しているレジスタ
・バンク番号を保持するためのバンク選択レジスタ7
と、バンク選択レジスタ7に設定されたレジスタ・バン
ク番号により、複数のレジスタ・バンク3〜6のうちの
常に一つを選択レジスタ・バンクとして選択するととも
に、対応するキャッシュ・バンクを一つだけ選択キャッ
シュ・メモリ・バンクとして選択するバンク選択部とし
てのセレクタ8とから構成される。
【0027】ここで、バンク選択レジスタ7およびセレ
クタ8はレジスタ・バンク選択手段Aを構成しており、
キャッシュ・メモリ9はバンク選択レジスタ7により示
されている一つのキャッシュ・バンクからしかメモリ・
ワードの参照を行わないようになっている。また、キャ
ッシュ・メモリ9の各キャッシュ・バンクは、タグ・メ
モリとデータ・メモリとから構成されている。
クタ8はレジスタ・バンク選択手段Aを構成しており、
キャッシュ・メモリ9はバンク選択レジスタ7により示
されている一つのキャッシュ・バンクからしかメモリ・
ワードの参照を行わないようになっている。また、キャ
ッシュ・メモリ9の各キャッシュ・バンクは、タグ・メ
モリとデータ・メモリとから構成されている。
【0028】次に、動作について説明する。ここでは前
記のように従来と同様の四つのレジスタ・バンク3〜6
とともに、それぞれのレジスタ・バンクと1対1で対応
する四つのキャッシュ・バンクから構成されるキャッシ
ュ・メモリ9を有し、処理するタスクの数も四つである
場合を例とする。従って、これらのタスク番号とレジス
タ・バンク番号およびキャッシュ・バンク番号とをそれ
ぞれ対応させ、処理中のタスク番号とそのとき使用して
いるレジスタ・バンクおよびキャッシュ・バンクの各々
の番号が一致しているものとする。
記のように従来と同様の四つのレジスタ・バンク3〜6
とともに、それぞれのレジスタ・バンクと1対1で対応
する四つのキャッシュ・バンクから構成されるキャッシ
ュ・メモリ9を有し、処理するタスクの数も四つである
場合を例とする。従って、これらのタスク番号とレジス
タ・バンク番号およびキャッシュ・バンク番号とをそれ
ぞれ対応させ、処理中のタスク番号とそのとき使用して
いるレジスタ・バンクおよびキャッシュ・バンクの各々
の番号が一致しているものとする。
【0029】レジスタ・バンク3〜6および第1〜第4
キャッシュ・バンクの中から一つのタスクに対して選択
される使用レジスタ・バンクおよびキャッシュ・バンク
は常に一つだけである。バンク選択レジスタ7には現在
実行中のタスク番号、すなわち、現在選択使用中のレジ
スタ・バンク3〜6およびキャッシュ・バンクの番号が
保持される。バンク選択レジスタ7の値をセレクタ8に
よりデコードし、このセレクタ8の出力信号の供給に応
答して使用レジスタ・バンクおよび複数のキャッシュ・
バンクの中からそれぞれ一つだけ選択する。ここで、セ
レクタ8は図2に示すようなデコード回路で構成されて
いる。このように選択された前記キャッシュ・バンクの
みが、キャッシュ・メモリとしてプロセッサ1からのメ
モリ・ワードの参照アクセス対象となる。
キャッシュ・バンクの中から一つのタスクに対して選択
される使用レジスタ・バンクおよびキャッシュ・バンク
は常に一つだけである。バンク選択レジスタ7には現在
実行中のタスク番号、すなわち、現在選択使用中のレジ
スタ・バンク3〜6およびキャッシュ・バンクの番号が
保持される。バンク選択レジスタ7の値をセレクタ8に
よりデコードし、このセレクタ8の出力信号の供給に応
答して使用レジスタ・バンクおよび複数のキャッシュ・
バンクの中からそれぞれ一つだけ選択する。ここで、セ
レクタ8は図2に示すようなデコード回路で構成されて
いる。このように選択された前記キャッシュ・バンクの
みが、キャッシュ・メモリとしてプロセッサ1からのメ
モリ・ワードの参照アクセス対象となる。
【0030】前記タスクの切り替え時には、切り替え先
のタスク番号をバンク選択レジスタ7へ設定することに
より、バンク選択レジスタ7の値のデコード結果に従っ
て、このタスク番号と同一番号のレジスタ・バンク3〜
6およびキャッシュ・バンクに切り替わる。前記レジス
タ・バンク3〜6には対応のタスクの実行アドレスの情
報が含まれているので、この実行アドレスも切り替わ
り、タスク切り替えが終了する。このとき、レジスタ・
バンク切り替えにより使用していた汎用レジスタの退避
/復帰が不要となると同様に、キャッシュ・バンクもプ
ログラムによる図8のような処理を行うことなく、タス
ク毎に自動的に切り替わるため、タスク処理時に使用し
ていたキャッシュ・バンクの内容が保持される。すなわ
ち、タスクが切り替わり、次にこのタスクの処理に復帰
したときにキャッシュ・メモリの内容が保持されている
ことから、キャッシュ・ミスが低減され、キャッシュ・
ヒット率が向上する。
のタスク番号をバンク選択レジスタ7へ設定することに
より、バンク選択レジスタ7の値のデコード結果に従っ
て、このタスク番号と同一番号のレジスタ・バンク3〜
6およびキャッシュ・バンクに切り替わる。前記レジス
タ・バンク3〜6には対応のタスクの実行アドレスの情
報が含まれているので、この実行アドレスも切り替わ
り、タスク切り替えが終了する。このとき、レジスタ・
バンク切り替えにより使用していた汎用レジスタの退避
/復帰が不要となると同様に、キャッシュ・バンクもプ
ログラムによる図8のような処理を行うことなく、タス
ク毎に自動的に切り替わるため、タスク処理時に使用し
ていたキャッシュ・バンクの内容が保持される。すなわ
ち、タスクが切り替わり、次にこのタスクの処理に復帰
したときにキャッシュ・メモリの内容が保持されている
ことから、キャッシュ・ミスが低減され、キャッシュ・
ヒット率が向上する。
【0031】例えば、第1タスクを実行中はバンク選択
レジスタ7に値’1’が設定されており、その値’1’
の供給に応答してセレクタ8は第1レジスタ・バンク3
と第1キャッシュ・バンクとを選択する選択信号S1を
出力する。この選択信号S1の供給に応答して、第1タ
スクの処理中に使用する第1レジスタ・バンク3および
第1キャッシュ・バンクの各々が選択される。
レジスタ7に値’1’が設定されており、その値’1’
の供給に応答してセレクタ8は第1レジスタ・バンク3
と第1キャッシュ・バンクとを選択する選択信号S1を
出力する。この選択信号S1の供給に応答して、第1タ
スクの処理中に使用する第1レジスタ・バンク3および
第1キャッシュ・バンクの各々が選択される。
【0032】次に、処理対象タスクを第1タスクから第
3タスクに切り替える場合には、バンク選択レジスタ7
に値’3’を設定する。これによりバンク選択レジスタ
7の値’3’の供給に応答してセレクタ8は第3レジス
タ・バンク5と第3キャッシュ・バンクとをそれぞれ選
択する選択信号S3を出力する。この選択信号S3の供
給に応答して、この第3タスク処理に使用する第3レジ
スタ・バンク5および第3キャッシュ・バンクの各々に
切り替わる。ここで、再び処理対象タスクが第1タスク
に復帰した場合は、同様に第1レジスタ・バンク3、第
1キャッシュ・バンクの各々に切り替わる。
3タスクに切り替える場合には、バンク選択レジスタ7
に値’3’を設定する。これによりバンク選択レジスタ
7の値’3’の供給に応答してセレクタ8は第3レジス
タ・バンク5と第3キャッシュ・バンクとをそれぞれ選
択する選択信号S3を出力する。この選択信号S3の供
給に応答して、この第3タスク処理に使用する第3レジ
スタ・バンク5および第3キャッシュ・バンクの各々に
切り替わる。ここで、再び処理対象タスクが第1タスク
に復帰した場合は、同様に第1レジスタ・バンク3、第
1キャッシュ・バンクの各々に切り替わる。
【0033】この処理対象タスクの第1タスクから第3
タスクへの切り替え、また、第3から第1タスクへの復
帰の過程において、第1キャッシュ・バンクのデータは
リプレースされずにそのまま保持されているため、対応
の汎用レジスタの退避/復帰およびプログラムによるキ
ャッシュ・バンクの切り替え処理をすることなく、第1
レジスタ・バンク3の内容のみならず第1キャッシュ・
バンクの内容も前記切り替え前の第1タスクの実行時の
状態のまま使用できる。このように、プロセッサで実行
されるタスクによりキャッシュ・バンク番号が設定さ
れ、それぞれのタスクに専用に使用できるキャッシュ・
バンクを与えることによって、タスクが切り替わった場
合のキャッシュ・ヒット率の低下を押えることができる
とともに、タスク切り替えの際に必要であったプログラ
ムによるキャッシュ・バンクり切り替え処理が不要とな
り、処理対象タスクの切り替え時間を短縮できる。
タスクへの切り替え、また、第3から第1タスクへの復
帰の過程において、第1キャッシュ・バンクのデータは
リプレースされずにそのまま保持されているため、対応
の汎用レジスタの退避/復帰およびプログラムによるキ
ャッシュ・バンクの切り替え処理をすることなく、第1
レジスタ・バンク3の内容のみならず第1キャッシュ・
バンクの内容も前記切り替え前の第1タスクの実行時の
状態のまま使用できる。このように、プロセッサで実行
されるタスクによりキャッシュ・バンク番号が設定さ
れ、それぞれのタスクに専用に使用できるキャッシュ・
バンクを与えることによって、タスクが切り替わった場
合のキャッシュ・ヒット率の低下を押えることができる
とともに、タスク切り替えの際に必要であったプログラ
ムによるキャッシュ・バンクり切り替え処理が不要とな
り、処理対象タスクの切り替え時間を短縮できる。
【0034】次に、本発明の実施の他の形態を図につい
て説明する。図3はこの実施の形態を示すキャッシュ・
メモリ・バンク制御装置を示すブロック図であり、図1
に示したキャッシュ・メモリ・バンク制御装置と同様
な、メイン・メモリ10と、メイン・メモリ10からイ
ンストラクション・ワードをフェッチし、それを実行す
るためのプロセッサ(CPU)1と、プロセッサ1とメ
イン・メモリ10との間でデータの授受を行うためのバ
ス・インターフェース・ロジック2と、複数のレジスタ
・バンク3〜6と、複数のバンクから構成されるバンク
形式のキャッシュ・メモリ9と、現在のタスクが使用し
ているレジスタ・バンク番号を保持するとともに、キャ
ッシュ・バンクの分割モードを指定するためのバンク選
択レジスタ7と、バンク選択レジスタ7に設定されたレ
ジスタ・バンク番号により、レジスタ・バンク3〜6の
うちの常に一つのレジスタ・バンクを選択するととも
に、対応するキャッシュ・バンクを一つまたは複数選択
するバンク選択部としてのセレクタ11とから構成され
る。
て説明する。図3はこの実施の形態を示すキャッシュ・
メモリ・バンク制御装置を示すブロック図であり、図1
に示したキャッシュ・メモリ・バンク制御装置と同様
な、メイン・メモリ10と、メイン・メモリ10からイ
ンストラクション・ワードをフェッチし、それを実行す
るためのプロセッサ(CPU)1と、プロセッサ1とメ
イン・メモリ10との間でデータの授受を行うためのバ
ス・インターフェース・ロジック2と、複数のレジスタ
・バンク3〜6と、複数のバンクから構成されるバンク
形式のキャッシュ・メモリ9と、現在のタスクが使用し
ているレジスタ・バンク番号を保持するとともに、キャ
ッシュ・バンクの分割モードを指定するためのバンク選
択レジスタ7と、バンク選択レジスタ7に設定されたレ
ジスタ・バンク番号により、レジスタ・バンク3〜6の
うちの常に一つのレジスタ・バンクを選択するととも
に、対応するキャッシュ・バンクを一つまたは複数選択
するバンク選択部としてのセレクタ11とから構成され
る。
【0035】次に、動作について説明する。ここでは四
つのレジスタ・バンク3〜6とともに、独立した四つの
キャッシュ・バンクから構成されるキャッシュ・メモリ
9を有する場合を例とする。この場合、一つのタスクに
対して選択される使用レジスタ・バンクは常に一つだけ
であるが、キャッシュ・バンクはバンク選択レジスタ7
に、タスク番号とともに設定されたキャッシュ・バンク
の分割モード指定により、一つのキャッシュ・バンクだ
けか、あるいは複数のキャッシュ・バンクが選択され
る。バンク選択レジスタ7には現在実行中のタスク番
号、すなわち、現在選択使用中のレジスタ・バンクの番
号の他に、キャッシュ・バンクの一つのみを選択するか
複数を選択するかを指定する値が保持される。バンク選
択レジスタ7の値をバンク選択部としてのセレクタ11
によりデコードし、このセレクタ11の出力信号の供給
に応答して使用レジスタ・バンクの中の一つと、使用キ
ャッシュ・バンクを一つかまたは複数を選択する。ここ
で、セレクタ11は図4に示すような回路で構成されて
いる。
つのレジスタ・バンク3〜6とともに、独立した四つの
キャッシュ・バンクから構成されるキャッシュ・メモリ
9を有する場合を例とする。この場合、一つのタスクに
対して選択される使用レジスタ・バンクは常に一つだけ
であるが、キャッシュ・バンクはバンク選択レジスタ7
に、タスク番号とともに設定されたキャッシュ・バンク
の分割モード指定により、一つのキャッシュ・バンクだ
けか、あるいは複数のキャッシュ・バンクが選択され
る。バンク選択レジスタ7には現在実行中のタスク番
号、すなわち、現在選択使用中のレジスタ・バンクの番
号の他に、キャッシュ・バンクの一つのみを選択するか
複数を選択するかを指定する値が保持される。バンク選
択レジスタ7の値をバンク選択部としてのセレクタ11
によりデコードし、このセレクタ11の出力信号の供給
に応答して使用レジスタ・バンクの中の一つと、使用キ
ャッシュ・バンクを一つかまたは複数を選択する。ここ
で、セレクタ11は図4に示すような回路で構成されて
いる。
【0036】従って、例えば、第1タスクを実行中はバ
ンク選択レジスタ7に値’1’が設定されており、その
値’1’の供給に応答してセレクタ11は第1レジスタ
・バンク3を選択する信号S1と第1キャッシュ・バン
クとを選択する選択信号S5を出力する。この選択信号
S1とS5の供給に応答して、第1タスクの処理中に使
用する第1レジスタ・バンク3および第1キャッシュ・
バンクの各々が選択される。
ンク選択レジスタ7に値’1’が設定されており、その
値’1’の供給に応答してセレクタ11は第1レジスタ
・バンク3を選択する信号S1と第1キャッシュ・バン
クとを選択する選択信号S5を出力する。この選択信号
S1とS5の供給に応答して、第1タスクの処理中に使
用する第1レジスタ・バンク3および第1キャッシュ・
バンクの各々が選択される。
【0037】次に、処理対象のタスクを第1タスクから
第3タスクに切り替える場合に、第3タスクのキャッシ
ュ使用率を高くして処理効率を上げるために、バンク選
択レジスタ7に値’7’を設定する。これによりバンク
選択レジスタ7の値’7’の供給に応答してセレクタ1
1は第3レジスタ・バンク5を選択する選択信号S3
と、第1から第4の全てのキャッシュ・バンクを選択す
る選択信号S5〜S8を出力する。この選択信号S3お
よび選択信号S5〜S8の供給に応答して、選択レジス
タ・バンクが第1レジスタ・バンク3からこの第3タス
ク処理に使用する第3レジスタ・バンク5に切り替わる
とともに、選択キャッシュ・バンクとして第1から第4
の全キャッシュ・バンクが選択されることにより、第3
タスク処理時のキャッシュ使用効率を上げることが可能
である。
第3タスクに切り替える場合に、第3タスクのキャッシ
ュ使用率を高くして処理効率を上げるために、バンク選
択レジスタ7に値’7’を設定する。これによりバンク
選択レジスタ7の値’7’の供給に応答してセレクタ1
1は第3レジスタ・バンク5を選択する選択信号S3
と、第1から第4の全てのキャッシュ・バンクを選択す
る選択信号S5〜S8を出力する。この選択信号S3お
よび選択信号S5〜S8の供給に応答して、選択レジス
タ・バンクが第1レジスタ・バンク3からこの第3タス
ク処理に使用する第3レジスタ・バンク5に切り替わる
とともに、選択キャッシュ・バンクとして第1から第4
の全キャッシュ・バンクが選択されることにより、第3
タスク処理時のキャッシュ使用効率を上げることが可能
である。
【0038】このように、プロセッサ1で実行されるタ
スクにより使用するキャッシュ・バンク番号が一つ、ま
たは複数設定されて、選択キャッシュ・バンクとして選
択されることにより、タスク切り替えの際のプログラム
によるキャッシュ・バンクの切り替え処理を行うことな
く、タスク切り替え時のキャッシュ・ヒット率の低下を
抑え、処理対象タスクの切り替え時間を短縮できるとと
もに、実行するタスク毎のキャッシュ使用率を制御する
ことが可能となる。
スクにより使用するキャッシュ・バンク番号が一つ、ま
たは複数設定されて、選択キャッシュ・バンクとして選
択されることにより、タスク切り替えの際のプログラム
によるキャッシュ・バンクの切り替え処理を行うことな
く、タスク切り替え時のキャッシュ・ヒット率の低下を
抑え、処理対象タスクの切り替え時間を短縮できるとと
もに、実行するタスク毎のキャッシュ使用率を制御する
ことが可能となる。
【0039】
【発明の効果】以上のように、請求項1の発明によれば
前記キャッシュ・メモリを複数のキャッシュ・メモリ・
バンクから構成し、前記レジスタ・バンク選択手段によ
る前記選択レジスタ・バンクの選択に連動して、前記複
数のキャッシュ・メモリ・バンクのうちの一つを選択キ
ャッシュ・メモリ・バンクとして選択するように構成し
たので、アクセス対象とするキャッシュ・メモリ・バン
クをソフトウェア処理により切り替える必要がなくな
り、従ってキャッシュ・バンクの選択および管理のため
の処理を簡素化でき、結果的にタスク切り替えに要する
時間の短縮を実現できる。
前記キャッシュ・メモリを複数のキャッシュ・メモリ・
バンクから構成し、前記レジスタ・バンク選択手段によ
る前記選択レジスタ・バンクの選択に連動して、前記複
数のキャッシュ・メモリ・バンクのうちの一つを選択キ
ャッシュ・メモリ・バンクとして選択するように構成し
たので、アクセス対象とするキャッシュ・メモリ・バン
クをソフトウェア処理により切り替える必要がなくな
り、従ってキャッシュ・バンクの選択および管理のため
の処理を簡素化でき、結果的にタスク切り替えに要する
時間の短縮を実現できる。
【0040】また、キャッシュ・メモリが処理対象のタ
スク毎に管理されるため、タスクを切り替えたときに、
キャッシュ・メモリ内に必要なデータやインストラクシ
ョンを残すことができ、キャッシュ・ミスの低減と、シ
ステムの性能向上を実現できるという効果が得られる。
スク毎に管理されるため、タスクを切り替えたときに、
キャッシュ・メモリ内に必要なデータやインストラクシ
ョンを残すことができ、キャッシュ・ミスの低減と、シ
ステムの性能向上を実現できるという効果が得られる。
【0041】また、タスク切り替えの際に、選択キャッ
シュ・バンクを切り替えるため複雑なプログラム処理が
必要でなくなるため、タスク切り替え時のプログラムの
オーバヘッドが発生せず、高速なタスクの切り替えが行
えるという効果が得られる。さらに、レジスタ・バンク
の選択およびキャッシュ・メモリ・バンクの選択を一つ
のバンク選択部で共用できるため、回路規模の縮小化を
実現できるという効果が得られる。
シュ・バンクを切り替えるため複雑なプログラム処理が
必要でなくなるため、タスク切り替え時のプログラムの
オーバヘッドが発生せず、高速なタスクの切り替えが行
えるという効果が得られる。さらに、レジスタ・バンク
の選択およびキャッシュ・メモリ・バンクの選択を一つ
のバンク選択部で共用できるため、回路規模の縮小化を
実現できるという効果が得られる。
【0042】また、請求項2の発明によれば前記レジス
タ・バンク選択手段を、複数のタスクのうちの一つの処
理対象タスク対応のタスク番号を格納するバンク選択レ
ジスタと、このバンク選択レジスタへのタスク番号の設
定に応答して前記選択レジスタ・バンクおよび前記選択
キャッシュ・メモリ・バンクをそれぞれ選択する選択信
号を出力するバンク選択部とから構成したので、現在の
タスクが使用しているレジスタ・バンク番号に従って、
複数の中から常に一つの選択レジスタ・バンクと対応す
る一つのキャッシュ・バンクをそれぞれ選択して、プロ
グラム処理のオーバヘッドを発生せずに、レジスタ・バ
ンクおよびキャッシュ・バンクを速やかに切り替えるこ
とができる。
タ・バンク選択手段を、複数のタスクのうちの一つの処
理対象タスク対応のタスク番号を格納するバンク選択レ
ジスタと、このバンク選択レジスタへのタスク番号の設
定に応答して前記選択レジスタ・バンクおよび前記選択
キャッシュ・メモリ・バンクをそれぞれ選択する選択信
号を出力するバンク選択部とから構成したので、現在の
タスクが使用しているレジスタ・バンク番号に従って、
複数の中から常に一つの選択レジスタ・バンクと対応す
る一つのキャッシュ・バンクをそれぞれ選択して、プロ
グラム処理のオーバヘッドを発生せずに、レジスタ・バ
ンクおよびキャッシュ・バンクを速やかに切り替えるこ
とができる。
【0043】また、請求項3の発明によれば前記キャッ
シュ・メモリを複数のキャッシュ・メモリ・バンクから
構成し、前記レジスタ・バンク選択手段によりバンクの
分割モードに応じてあらかじめ設定された複数個のたは
全てのキャッシュ・メモリ・バンクを選択キャッシュ・
メモリ・バンクとして選択するように構成したので、タ
スク毎の使用キャッシュ・メモリのサイズ(使用率)制
御が可能となり、従ってタスクのプライオリティに合っ
た処理効率の制御が可能になり、一つのタスクのみを実
行する場合に、全キャッシュ・メモリ領域を一つのタス
クが利用することも可能になるという効果がある。
シュ・メモリを複数のキャッシュ・メモリ・バンクから
構成し、前記レジスタ・バンク選択手段によりバンクの
分割モードに応じてあらかじめ設定された複数個のたは
全てのキャッシュ・メモリ・バンクを選択キャッシュ・
メモリ・バンクとして選択するように構成したので、タ
スク毎の使用キャッシュ・メモリのサイズ(使用率)制
御が可能となり、従ってタスクのプライオリティに合っ
た処理効率の制御が可能になり、一つのタスクのみを実
行する場合に、全キャッシュ・メモリ領域を一つのタス
クが利用することも可能になるという効果がある。
【0044】また、請求項4の発明によれば前記レジス
タ・バンク選択手段を、複数のタスクのうちの一つの処
理対象タスク対応のタスク番号を格納するバンク選択レ
ジスタと、前記タスク番号の供給に応答して前記選択レ
ジスタ・バンクおよび前記選択キャッシュ・メモリ・バ
ンクをそれぞれ選択する選択信号を出力するバンク選択
部とから構成したので、バンク選択レジスタが保持した
キャッシュ・バンクの選択数に応じて、バンク選択部に
より一つまたは複数のキャッシュ・バンクを選択するこ
とができ、これにより実行するタスク毎のキャッシュ・
メモリの使用効率を高めることができるという効果が得
られる。
タ・バンク選択手段を、複数のタスクのうちの一つの処
理対象タスク対応のタスク番号を格納するバンク選択レ
ジスタと、前記タスク番号の供給に応答して前記選択レ
ジスタ・バンクおよび前記選択キャッシュ・メモリ・バ
ンクをそれぞれ選択する選択信号を出力するバンク選択
部とから構成したので、バンク選択レジスタが保持した
キャッシュ・バンクの選択数に応じて、バンク選択部に
より一つまたは複数のキャッシュ・バンクを選択するこ
とができ、これにより実行するタスク毎のキャッシュ・
メモリの使用効率を高めることができるという効果が得
られる。
【図1】この発明の実施の一形態によるキャッシュ・メ
モリ・バンク制御装置を示すブロック図である。
モリ・バンク制御装置を示すブロック図である。
【図2】図1におけるバンク選択部の詳細を示す回路図
である。
である。
【図3】この発明の実施の他の形態によるキャッシュ・
メモリ・バンク制御装置を示すブロック図である。
メモリ・バンク制御装置を示すブロック図である。
【図4】図3におけるバンク選択部の詳細を示す回路図
である。
である。
【図5】従来のキャッシュ・メモリ・バンク制御装置を
示すブロック図である。
示すブロック図である。
【図6】従来の他のキャッシュ・メモリ・バンク制御装
置を示すブロック図である。
置を示すブロック図である。
【図7】図6におけるバンク番号対応テーブルを示すテ
ーブル図である。
ーブル図である。
【図8】従来のキャッシュ・メモリ・バンク制御装置に
おけるキャッシュ・バンクの切り替え手順を示すフロー
チャートである。
おけるキャッシュ・バンクの切り替え手順を示すフロー
チャートである。
3,4,5,6 レジスタ・バンク 7 バンク選択レジスタ 8,11 セレクタ(バンク選択部) 9,12 キャッシュ・メモリ 10 メイン・メモリ A レジスタ・バンク選択手段
Claims (4)
- 【請求項1】 複数のタスクに対応して設けられた複数
のレジスタ・バンクと、 これらの複数のレジスタ・バンクのうちの一つを選択レ
ジスタ・バンクとして選択するレジスタ・バンク選択手
段と、 メイン・メモリの一部のコピーを持つために用意された
キャッシュ・メモリとを備えたキャッシュ・メモリ・バ
ンク制御装置において、 前記キャッシュ・メモリが複数のキャッシュ・メモリ・
バンクから構成され、 前記レジスタ・バンク選択手段による前記選択レジスタ
・バンクの選択に連動して、 前記複数のキャッシュ・メモリ・バンクのうちの一つを
選択キャッシュ・メモリ・バンクとして選択することを
特徴とするキャッシュ・メモリ・バンク制御装置。 - 【請求項2】 前記レジスタ・バンク選択手段が、 複数のタスクのうちの一つの処理対象タスク対応のタス
ク番号を格納するバンク選択レジスタと、 このバンク選択レジスタへのタスク番号の設定に応答し
て前記選択レジスタ・バンクおよび前記選択キャッシュ
・メモリ・バンクをそれぞれ選択する選択信号を出力す
るバンク選択部とを備えたことを特徴とする請求項1記
載のキャッシュ・メモリ・バンク制御装置。 - 【請求項3】 前記キャッシュ・メモリが複数のキャッ
シュ・メモリ・バンクから構成され、 前記レジスタ・バンク選択手段がバンクの分割モードに
応じてあらかじめ設定された複数個または全てのキャッ
シュ・メモリ・バンクを選択キャッシュ・メモリ・バン
クとして選択することを特徴とする請求項1記載のキャ
ッシュ・メモリ・バンク制御装置。 - 【請求項4】 前記レジスタ・バンク選択手段が、複数
のタスクのうちの一つの処理対象タスク対応のタスク番
号を格納するバンク選択レジスタと、 前記タスク番号の供給に応答して前記選択レジスタ・バ
ンクおよび前記選択キャッシュ・メモリ・バンクをそれ
ぞれ選択する選択信号を出力するバンク選択部とを備え
たことを特徴とする請求項3記載のキャッシュ・メモリ
・バンク制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP08238229A JP3088303B2 (ja) | 1996-09-09 | 1996-09-09 | キャッシュ・メモリ・バンク制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP08238229A JP3088303B2 (ja) | 1996-09-09 | 1996-09-09 | キャッシュ・メモリ・バンク制御装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH1083349A true JPH1083349A (ja) | 1998-03-31 |
| JP3088303B2 JP3088303B2 (ja) | 2000-09-18 |
Family
ID=17027075
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP08238229A Expired - Fee Related JP3088303B2 (ja) | 1996-09-09 | 1996-09-09 | キャッシュ・メモリ・バンク制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3088303B2 (ja) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1297905C (zh) * | 2002-11-11 | 2007-01-31 | 松下电器产业株式会社 | 高速缓存控制器、高速缓存控制方法以及计算机系统 |
| KR100805974B1 (ko) * | 1999-12-06 | 2008-02-25 | 텍사스 인스트루먼츠 인코포레이티드 | 스마트 캐시 |
| US7600101B2 (en) | 2005-01-13 | 2009-10-06 | Hewlett-Packard Development Company, L.P. | Multithreaded hardware systems and methods |
| JP2009238056A (ja) * | 2008-03-28 | 2009-10-15 | Fujitsu Ltd | マイクロプロセッサおよびシグネチャ生成方法ならびに多重化システムおよび多重化実行検証方法 |
| JP2012234556A (ja) * | 2005-10-20 | 2012-11-29 | Qualcomm Inc | スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ |
| JP2014161414A (ja) * | 2013-02-22 | 2014-09-08 | Sophia Co Ltd | 遊技機 |
| JP2014161415A (ja) * | 2013-02-22 | 2014-09-08 | Sophia Co Ltd | 遊技機 |
| JP2016135434A (ja) * | 2016-05-02 | 2016-07-28 | 株式会社ソフイア | 遊技機 |
| JP2016135435A (ja) * | 2016-05-02 | 2016-07-28 | 株式会社ソフイア | 遊技機 |
-
1996
- 1996-09-09 JP JP08238229A patent/JP3088303B2/ja not_active Expired - Fee Related
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100805974B1 (ko) * | 1999-12-06 | 2008-02-25 | 텍사스 인스트루먼츠 인코포레이티드 | 스마트 캐시 |
| CN1297905C (zh) * | 2002-11-11 | 2007-01-31 | 松下电器产业株式会社 | 高速缓存控制器、高速缓存控制方法以及计算机系统 |
| US7600101B2 (en) | 2005-01-13 | 2009-10-06 | Hewlett-Packard Development Company, L.P. | Multithreaded hardware systems and methods |
| JP2012234556A (ja) * | 2005-10-20 | 2012-11-29 | Qualcomm Inc | スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ |
| JP2009238056A (ja) * | 2008-03-28 | 2009-10-15 | Fujitsu Ltd | マイクロプロセッサおよびシグネチャ生成方法ならびに多重化システムおよび多重化実行検証方法 |
| JP2014161414A (ja) * | 2013-02-22 | 2014-09-08 | Sophia Co Ltd | 遊技機 |
| JP2014161415A (ja) * | 2013-02-22 | 2014-09-08 | Sophia Co Ltd | 遊技機 |
| JP2016135434A (ja) * | 2016-05-02 | 2016-07-28 | 株式会社ソフイア | 遊技機 |
| JP2016135435A (ja) * | 2016-05-02 | 2016-07-28 | 株式会社ソフイア | 遊技機 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3088303B2 (ja) | 2000-09-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5444853A (en) | System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's | |
| US9519507B2 (en) | Executing an instruction of currently active thread before context switch upon receiving inactive context ID to be activated | |
| JPH11312122A (ja) | 使用者が構築可能なオンチッププログラムメモリシステム | |
| US20080270707A1 (en) | Data processor | |
| JPH08505965A (ja) | コンテキスト切り換え装置及び方法 | |
| JPH04308956A (ja) | 受信バッファ | |
| JP2000330806A (ja) | 計算機システム | |
| US6418489B1 (en) | Direct memory access controller and method therefor | |
| JPH06243039A (ja) | キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法 | |
| JPH05257803A (ja) | 仮想記憶空間管理方法及びアドレス計算装置 | |
| JPH11143775A (ja) | キャッシュメモリシステム | |
| JPH0863354A (ja) | コンピュータプロセッシングを行うための装置及び方法 | |
| JP2004234123A (ja) | マルチスレッドコンピュータ | |
| JP3088303B2 (ja) | キャッシュ・メモリ・バンク制御装置 | |
| JPH05257808A (ja) | マイクロプロセッサ及びその動作変換方法 | |
| US6799247B1 (en) | Remote memory processor architecture | |
| JP3964821B2 (ja) | プロセッサ、キャッシュシステム及びキャッシュメモリ | |
| US6195747B1 (en) | System and method for reducing data traffic between a processor and a system controller in a data processing system | |
| JP2004240616A (ja) | メモリコントローラ及びメモリアクセス制御方法 | |
| EP0787326B1 (en) | System and method for processing of memory data and communication system comprising such system | |
| JP3520372B2 (ja) | メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 | |
| JP3039391B2 (ja) | メモリシステム | |
| JP4034032B2 (ja) | キャッシュ内蔵マイクロコンピュータ | |
| JP2742245B2 (ja) | 並列計算機 | |
| JP3345050B2 (ja) | 二次元配列型メモリシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20000620 |
|
| LAPS | Cancellation because of no payment of annual fees |