(57)【特許請求の範囲】
【請求項１】
プリフェッチ機能を有し、複数のモードで処理を行い、前記各モードによってデコードする情報が変わり、ダイナミックにモードを切り替える命令によって現在のモードを示すビットを含むレジスタにライト動作を行うプロセッサにおいて、
前記現在のモードを示すビットを含むレジスタにライト動作を行わせるタイミングで、イシュー回路から出力されたデータが前記ダイナミックにモードを切り替える命令であることを直接判定し、判定結果が前記ダイナミックにモードを切り替える命令であったときに、前記現在のモードを示すビットの値が変化したか否かにかかわらず、キャッシュパージ信号を出力することにより、プリフェッチされていたデータをキャッシュパージする機構を具備することを特徴とするプロセッサ。
【請求項２】
プリフェッチ機能を有し、複数のモードで処理を行い、前記各モードによってデコードする情報が変わり、ダイナミックにモードを切り替える命令によって現在のモードを示すビットを含むレジスタにライト動作を行うプロセッサにおいて、
前記現在のモードを示すビットを含むレジスタにライト動作を行わせるタイミングで、キャッシュメモリから出力されたデータが前記ダイナミックにモードを切り替える命令であることを直接判定し、判定結果が前記ダイナミックにモードを切り替える命令であったときに、前記現在のモードを示すビットの値が変化したか否かにかかわらず、キャッシュパージ信号を出力することにより、プリフェッチされていたデータをキャッシュパージする機構を具備することを特徴とするプロセッサ。
【請求項３】
プリフェッチ機能を有し、複数のモードで処理を行い、前記各モードによってデコードする情報が変わり、ダイナミックにモードを切り替える命令によって現在のモードを示すビットを含むレジスタにライト動作を行うプロセッサにおいて、
前記現在のモードを示すビットを含むレジスタにライト動作したとき、前記現在のモードを示すビットの値が変化したか否かを判定し、ビット値の変化が検出されたときに、キャッシュパージ信号を出力することにより、プリフェッチされた命令をキャッシュパージする機構を具備することを特徴とするプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリフェッチ機能を有し、複数のモードで処理を行い、前記各モードによってデコードする情報が変わり、ダイナミックにモードを切り替える命令を有するプロセッサに関するものである。
【０００２】
【従来の技術】
従来より、プロセッサにおけるキャッシュフェッチに関する技術が数多く提案されている。このようなキャッシュフェッチを行うプロセッサに関する技術として、複数のモードで処理を行う機構を設ける技術が提案されている。この機構を有するプロセッサでは、モードが切り替わると、同じデータ列であっても、異なる命令にデコードされる。
【０００３】
図１は従来のソフトウエアによる複数モード間での切り替え制御を示す。すなわち、モードを切り替える命令が発生する（ステップＳ１１）と、トラップ処理を起こし（ステップＳ１２）、イリーガルな命令でないことを確認して（ステップＳ１３）から、モードを切り替える命令を実行して（ステップＳ１４）、以後切り替わったモードで命令を実行する。
【０００４】
【発明が解決しようとする課題】
上記のように、従来の複数のモード間での切り替え操作は、ソフトウエアで制御されており、ハードウェア的に実現する方法はなかった。このため、処理が低速で行われ、モード切り替え時に、切り替え前にプリフェッチしていた命令が誤ったモードで実行されるという問題が生じかねない。
【０００５】
本発明は、プリフェッチ機能を有し、複数のモードで処理を行い、各モードによってデコードする情報が変わり、ダイナミックにモードを切り替える命令を有するプロセッサにおいて、モード切り替え時に、切り替え前にプリフェッチしていた命令を実行することによって生じる誤動作を、ソフトウエア制御よりも高速に阻止することを目的とするものである。
【０００６】
【課題を解決するための手段】
本発明は、上記のような問題を解決するためになされたものである。
本発明においては、プリフェッチ機能を有し、複数のモードで処理を行い、前記各モードによってデコードする情報が変わり、ダイナミックにモードを切り替える命令によって現在のモードを示すビットを含むレジスタにライト動作を行うプロセッサにおいて、前記現在のモードを示すビットを含むレジスタにライト動作を行わせるタイミングで、イシュー回路から出力されたデータが前記ダイナミックにモードを切り替える命令であることを直接判定し、判定結果が前記ダイナミックにモードを切り替える命令であったときに、前記現在のモードを示すビットの値が変化したか否かにかかわらず、キャッシュパージ信号を出力する。
【０００７】
これにより、モード切り替え信号がレジスタにライトされた場合は、キャッシュメモリに対してキャッシュパージ信号が出力される。したがって、プリフェッチされたキャッシュデータのバリッドがオフとなって、異なるモードでプリフェッチされたデータが、異なるモードでデコードされることがなくなり、モード切り替え後の動作を正常に行わせることができる。
【０００８】
本発明においては、デコードサイクルにおいてデコードされた結果を参照する代わりに、イシューサイクルにおいてイシューした結果を参照することによっても同様の効果を得ることができる。
さらに、本発明においては、レジスタにライト動作をしたとき、レジスタのモードを示すビットの値が変化したか否かを判定し、ビット値の変化が検出されたときに、キャッシュパージ信号を出力するようにすることによっても同様の効果を得ることができる。
【０００９】
【発明の実施の形態】
本発明の実施形態について図を用いて説明する。
図２は、本発明のキャッシュパージ制御機構を有するプロセッサの全体構成を示す。
図において、プロセッサ１は、キャッシュメモリ２及びキャッシュ制御部３を有する。プロセッサ１は、処理に必要なデータ５をメインメモリ４からリードすると、それをキャッシュメモリ２に格納しておく。メインメモリ４に格納されたデータは、モードを示すビットを含む。
【００１０】
プロセッサ１は、進行中の処理と並行して、必要と思われるデータ５を予めキャッシュメモリ２からプリフェッチする。したがって、モード切り替えが実行されたときは、プリフェッチされたデータが異なるモードでデコードされることを防止するため、データのバリッドをオフにしなければならない。本実施形態においては、進行中の処理がモードの切り替えの命令である場合、又は、データ中のモードを示すビットが切り替わった場合に、プリフェッチされたデータ５のバリッドをオフにする。
【００１１】
（実施形態１）
図３は、キャッシュパージ制御回路の第１の実施形態を示す。
現在の処理のデータを書き込むレジスタ１１が用意される。このレジスタ１１に書き込まれるデータは、現在のモードの状態を示すビット１２を含む。レジスタ１１のデータを書き換えるときには、ライト信号がレジスタ１１に入力される。
【００１２】
このライト信号は、パージ判定回路１３にも入力され、パージ判定回路１３は、ライト信号入力時にパージ判定を行う。その詳細については後述する。
レジスタ１１の書換えが行われると、キャッシュメモリ２に格納されたデータから、現在の処理のキャッシュデータ１４（レジスタ１１に書き込まれたデータと同一）がイシュー回路１５により読み出される。イシュー回路１５は、キャッシュデータ１４のバリッド１６をチェックし、バリッドがオンであれば、データ１４を、パージ判定回路１３とデコード回路１７に渡す。
【００１３】
図４は、パージ判定回路１３の具体例を示す。
パージ判定回路１３は、イシュー回路１５からの出力とライト信号が入力される。図示の例は、イシュー回路１５からの出力が４ビット（bit[0],bit[1],bit[2],bit[3] ）であり、全ての４ビットの値が「１」のとき、モード切り替え命令に相当するデータであるとしている。このとき、ライト信号のタイミングで、４ビットの情報がフリップフロップ（以下、「ＦＦ」と略称する。）１８に保持される。そして、ＡＮＤ回路２０により４つのＦＦ１８の値のＡＮＤをとり、ＦＦ１９に記憶させる。このＦＦ１９の値がパージ信号として使用される。
【００１４】
図３に戻ると、ＦＦ１９の値が「１」のとき、パージ判定回路１３からパージ信号がキャッシュメモリ２に出力され、キャッシュデータのバリッド１６をオフにする。
これにより、モード切り替えを意味する命令が解読されたときは、モードの切り替えが行われると同時に、キャッシュメモリ２にプリフェッチされていたデータがパージされ、以後のモード切り替え後の処理において、誤ったデコードがされることがない。また、モード切り替え命令がなければ、キャッシュメモリ２のパージは行われず、通常の処理が継続される。
【００１５】
したがって、本例では、以後のモード切り替え後の処理において、誤ったデコードがされることがない。また、図４に示すように、パージ判定回路１３がハードウェアにより構成されるため、その判定処理が高速で行われ、確実に誤動作を防止することができる。
（実施形態２）
図５は、キャッシュパージ制御回路の第２の実施形態を示す。
【００１６】
上記の実施形態１では、デコードサイクルにおけるデコード結果を参照してキャッシュパージを行っている。これに対して、イシューサイクルにおいてイシューした結果を参照してキャッシュパージを行うこともできる。
図５では、パージ判定回路１３は、キャッシュメモリ２とイシュー回路１５の間に設けられる。パージ判定回路１３としては、既に説明した図４に示す回路が使用される。その他の点については、図３及び図４を用いて説明したとおりであるので、重複する説明は省略する。
【００１７】
（実施形態３）
以上説明した実施形態１及び２は、レジスタ１１に対してライト動作を行ったとき、モードの状態を示すビットの値が変化したかどうかに関わらず、モード切り替え信号を参照してキャッシュデータのバリッドの値を設定する。これに対し、モードの状態を示すビットの値が変化したか否かを判定することもできる。以下にこの例を説明する。
【００１８】
図６は、キャッシュパージ制御回路の第３の実施形態を示す。
本例では、パージ判定回路２３には、ライト信号が入力され、レジスタ１１のモードを示すビット１２の値が入力される。その他の点は上記の実施形態１の図３と同様であるので、重複する説明は省略する。
図７は、図６の回路におけるパージ判定回路２３の具体例を示す。ここでは仮にモードが２つのバリッドについて述べる。
【００１９】
パージ判定回路は、レジスタ１１からのモード信号とライト信号が入力される。現在のモードを示すビットの信号をモード信号とし、ライト信号によってあるタイミングでＦＦ２８に値を保持させる。さらに、排他的論理和回路２６により、ＦＦ２８に保持されたモード信号と保持される前のモード信号の排他的論理和をとり、ＡＮＤ回路２７により、ライト信号のタイミングでＦＦ２９に値を保持させ、これをパージ信号とする。このパージ信号の値が「１」のとき、キャッシュデータのバリッドをオフにし、パージする。
【００２０】
【発明の効果】
本発明によれば、プリフェッチ機能を有し、複数のモードで処理を行い、現在のモードを示すレジスタを保持し、モードによってデコードする情報が変わり、ダイナミックにモードを切り替える命令があるプロセッサにおいて、上記のような制御機構を持ち合わせることによって、ソフトウエアで制御されているときよりも、高速に誤ってプリフェッチされていた命令をパージし、複数モードの切り替えを行うことができる。
【図面の簡単な説明】
【図１】従来のキャッシュフェッチ制御方法を示すフローチャート。
【図２】本発明のキャッシュパージ制御機構が適用されるプロセッサの全体構成を示す図。
【図３】本発明の第１の実施形態を示す回路図。
【図４】図３のパージ判定回路を示す図。
【図５】本発明の第２の実施形態を示す回路図。
【図６】本発明の第３の実施形態を示す回路図。
【図７】図６のパージ判定回路を示す図。
【符号の説明】
１…プロセッサ
２…キャッシュメモリ
３…キャッシュ制御部
４…メインメモリ
５…データ
１１…レジスタ
１２…モードを示すビット
１３…パージ判定回路
１４…キャッシュデータ
１５…イシュー回路
１６…バリッド
１７…デコーダ
１８，１９…ＦＦ
２０…アンド回路
２３…パージ判定回路
２６…排他的論理和回路
２７…ＡＮＤ回路
２８，２９…ＦＦ
【図１】
0003710341.tif 000002
【図２】
0003710341.tif 000003
【図３】
0003710341.tif 000004
【図４】
0003710341.tif 000005
【図５】
0003710341.tif 000006
【図６】
0003710341.tif 000007
【図７】
0003710341.tif 000008