(57)【要約】情報処理装置は、少なくとも二つのアドレス生成元情報が用いられて生成されるアドレスが属するアドレス空間に対応するメモリにアクセスするアクセス手段を制御する装置であって、一つの前記アドレス生成元情報を用いて、アクセス対象のアドレスが属する可能性を有する一つ又は複数のアドレス空間を予測する予測手段と、前記予測手段によって予測された全部のアドレス空間に対応するメモリへの前記アクセス手段によるアクセスを起動させる起動手段と、前記少なくとも二つのアドレス生成元情報を用いて生成される前記アクセス対象のアドレスが属するアドレス空間を判定する判定手段と、前記起動手段の制御によって起動したアクセスのうちの、前記判定手段によって判定されたアドレス空間に対応するアクセス以外の前記アクセス手段によるアクセスを停止させるアクセス停止手段とを備える。【特許請求の範囲】
【請求項１】
少なくとも二つのアドレス生成元情報が用いられて生成されるアドレスが属するアドレス空間に対応するメモリにアクセスするアクセス手段を制御する装置であって、
一つの前記アドレス生成元情報を用いて、アクセス対象のアドレスが属する可能性を有する一つ又は複数のアドレス空間を予測する予測手段と、
前記予測手段によって予測された全部のアドレス空間に対応するメモリへの前記アクセス手段によるアクセスを起動させる起動手段と、
前記少なくとも二つのアドレス生成元情報を用いて生成される前記アクセス対象のアドレスが属するアドレス空間を判定する判定手段と、
前記起動手段の制御によって起動したアクセスのうちの、前記判定手段によって判定されたアドレス空間に対応するアクセス以外の前記アクセス手段によるアクセスを停止させるアクセス停止手段と
を備える情報処理装置。
【請求項２】
前記アクセス対象のアドレスが属するアドレス空間は、前記アクセス対象のアドレスの所定のフィールドの値によって決定され、
前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドの値が属するアドレス空間を判定するとともに、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する
請求項１記載の情報処理装置。
【請求項３】
前記アクセス対象のアドレスは、前記少なくとも二つのアドレス生成元情報の加算又は減算を行なうことによって生成され、
前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記一つのアドレス生成元情報の前記所定のフィールドの最下位の桁が変化するか否かを判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する
請求項２記載の情報処理装置。
【請求項４】
更に、前記一つのアドレス生成元情報の所定のフィールドの値が属するアドレス空間を特定する空間特定情報を保持する保持手段を備え、
前記アクセス対象のアドレスが属するアドレス空間は、前記アクセス対象のアドレスの前記所定のフィールドの値によって決定され、
前記予測手段は、前記保持手段によって保持されている前記空間特定情報を用いるとともに、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する
請求項１記載の情報処理装置。
【請求項５】
前記アクセス対象のアドレスは、前記少なくとも二つのアドレス生成元情報の加算又は減算を行なうことによって生成され、
前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記一つのアドレス生成元情報の前記所定のフィールドの最下位の桁が変化するか否かを判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する
請求項４記載の情報処理装置。
【請求項６】
更に、
前記予測手段によって予測された全部のアドレス空間に対応するメモリへクロックを供給する供給手段と、
前記判定手段によって判定されたアドレス空間に対応するメモリ以外のメモリへの前記供給手段によるクロックの供給を停止させるクロック停止手段と
を備える請求項１記載の情報処理装置。
【請求項７】
少なくとも二つのアドレス生成元情報が用いられて生成されるアドレスが属するアドレス空間に対応するメモリにアクセスするアクセス手段を制御する方法であって、
一つの前記アドレス生成元情報を用いて、アクセス対象のアドレスが属する可能性を有する一つ又は複数のアドレス空間を予測する予測ステップと、
前記予測ステップにおいて予測した全部のアドレス空間に対応するメモリへの前記アクセス手段によるアクセスを起動させる起動ステップと、
前記少なくとも二つのアドレス生成元情報を用いて生成される前記アクセス対象のアドレスが属するアドレス空間を判定する判定ステップと、
前記起動ステップにおける制御によって起動したアクセスのうちの、前記判定ステップにおいて判定したアドレス空間に対応するアクセス以外の前記アクセス手段によるアクセスを停止させるアクセス停止ステップと
を含むメモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、メモリにアクセスするマイクロプロセッサ等の情報処理装置に関する。
【背景技術】
【０００２】  映像や音声を扱う多くの機器には、高性能なプロセッサが実装されている。プロセッサには、複数のデータを短時間で処理したり、高品質の映像や音声の信号を処理することが求められ、それを実現する手段として動作周波数を向上させる方法がある。【０００３】  一般的に、動作周波数の向上を達成する手段として、パイプラインの段数を増加させる方法がある。しかしながら、パイプラインの段数が多くなると、分岐命令を実行する際のペナルティが大きくなる等のデメリットも増加する。【０００４】  パイプラインの段数は、メモリにアクセスするために必要なステージの数や、各ステージで実行する処理の種類等によって決定される。その決定の際に重要となるのが、アクセスしようとするメモリのアドレスの生成からそのメモリへのアクセスの起動までの回路遅延である。【０００５】  一般的に、メモリへのアクセスはアドレスの生成からそのメモリに対するアクセス制御の起動までを含む。アドレスの生成には加算器等の論理段数が多い回路が必要となり、その回路における処理時間が全体の動作速度を向上させる際の制限となる。【０００６】  アドレスが属する空間毎にその空間に対応するメモリへのアクセスを制御するプロセッサやメモリアクセス制御回路においては、アドレスが属する空間をデコードする必要がある。アドレスが確定する時間と、そのアドレスが属する空間をデコードする時間とが必要であるので、クロックサイクルを向上させることは容易ではない。【０００７】  以下に、メモリへの従来のアクセス方法を、７段パイプラインのＣＰＵと、複数のアドレス空間それぞれに対応する複数のメモリと、各メモリへのアクセスを制御する複数のメモリ制御部とを有するシステムを用いて、図１から図３を参照して説明する。【０００８】  図１はＣＰＵのパイプライン動作を示す。具体的には、図１はメモリアクセス命令であるｌｄ命令１１０が各ステージに投入される様子を示す。【０００９】  パイプラインは、Ｆ１ステージ１２、Ｆ２ステージ１３、Ｄ１ステージ１４、Ｄ２ステージ１５、Ｅ１ステージ１６、Ｅ２ステージ１７、及びＥ３ステージ１８で構成される。【００１０】  Ｆ１ステージ１２及びＦ２ステージ１３では命令のフェッチが行なわれ、Ｄ１ステージ１４及びＤ２ステージ１５では命令のデコードが行なわれる。Ｄ２ステージ１５ではアクセスアドレスの生成も行なわれる。Ｅ１ステージ１６及びＥ２ステージ１７ではメモリへのアクセスが行なわれる。【００１１】  メモリアクセス命令であるｌｄ命令１１０は、パイプラインが止まる要因がない場合、図１に示すように、クロック１１毎に各ステージに投入され、各ステージにおいて処理が実行される。【００１２】  図２に従来の情報処理装置の構成を示す。図２では、説明の簡単化のため、上記のＤ２ステージ１５、Ｅ１ステージ１６、及びＥ２ステージ１７に対応する各構成のみを示す。【００１３】  ＣＰＵ２１は、アクセスアドレス２１２とメモリアクセス要求２１４とをメモリ制御部２２に出力する。【００１４】  メモリ制御部２２はアドレス空間毎に異なるメモリアクセス制御を行なうものであって、図２は、キャッシュ、ＳＲＡＭ、及び、ＢＣＵを介して設けられている外部メモリ���アクセスするメモリ制御部２２の構成を示している。ＳＲＡＭ及びキャッシュへのアクセスはＥ１ステージから開始され、ＢＣＵを介して設けられている外部メモリへのアクセスはＥ２ステージから開始される。【００１５】  ＣＰＵ２１は、レジスタＡ２０７からの出力値２０８とレジスタＢ２０９からの出力値２１０とを加算器２１１により加算することにより、アクセスアドレス２１２を生成する。【００１６】  アクセスアドレス２１２はメモリ制御部２２の空間判定部２１６に入力される。空間判定部２１６は、アクセスアドレス２１２が属するアドレス空間を判定し、判定結果に応じて、キャッシュ空間判定信号２１７、ＳＲＡＭ空間判定信号２１８、又はＢＣＵ空間判定信号２１９を、起動要求生成部２１５に出力する。【００１７】  起動要求生成部２１５は、メモリアクセス要求２１４に基づいてＥ１メモリ制御起動要求２２０をＥ１メインメモリ制御部２２３へ出力すると同時に、ＳＲＡＭ空間判定信号２１８が入力された場合にはＥ１ＳＲＡＭ制御起動要求２２１をＥ１ＳＲＡＭ制御部２２４に出力し、キャッシュ空間判定信号２１７が入力された場合にはＥ１キャッシュ制御起動要求２２２をＥ１キャッシュ制御部２２５に出力する。【００１８】  図３にキャッシュ空間にアクセスする場合の各処理のタイミングを示す。【００１９】  サイクル３１においてｌｄ命令１１０がＤ２ステージ１５に入ると、出力遅延時間ｔＲ３０２の後にレジスタＡ出力２０８及びレジスタＢ出力２１０が出力される。次に、時間ｔａｄｄ３０３で、レジスタＡ出力２０８とレジスタＢ出力２１０とが加算されてアクセスアドレス２１２が生成される。更に、アクセスアドレス２１２が時間ｔｄｅｃ３０４でデコードされてアクセスアドレス空間が判定される。【００２０】  すなわち、サイクル３１において、アドレス空間を判定するためには、「ｔＲ３０２＋ｔａｄｄ３０３＋ｔｄｅｃ３０４」の時間（遅延時間）が必要になる。その時間（遅延時間）経過後に、Ｅ１ステージ１６の各種起動信号が生成される。【００２１】  一般的なＣＰＵにおいて、レジスタファイルや、加算器の出力が確定するのに要する時間は比較的長いので、アドレスを生成する時間がクロックサイクルの上限を決定する主要因となり、高速化のボトルネックとなる。【００２２】  この課題を解決するために、以下に示す方法が特許文献１により開示されている。すなわち、生成されたアドレスの一部を利用してメモリへのアクセスを起動し、並行してアドレス空間をデコードする。次のサイクルで、起動したアクセスに対応するアドレス空間とデコードしたアドレス空間とが一致する場合、そのアクセスを続行する。
【特許文献１】特開２００１−５６６３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】  しかしながら、上記特許文献１の方法では、起動したアクセスに対応するアドレス空間とデコードしたアドレス空間とが異なる場合、起動したアクセスを中断し、アドレスが属する正しい空間へのアクセスを再実行することとなり、ペナルティが発生する。【００２４】  本発明は、上記課題を考慮し、メモリへのアクセスを繰り返すというペナルティを発生させることなく、メモリへのアクセス時間を短縮する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００２５】  上記目的を達成するために、本発明の情報処理装置は、少なくとも二つのアドレス生成元情報が用いられて生成されるアドレスが属するアドレス空間に対応するメモリにアクセスするアクセス手段を制御する装置であって、一つの前記アドレス生成元情報を用いて、アクセス対象のアドレスが属する可能性を有する一つ又は複数のアドレス空間を予測する予測手段と、前記予測手段によって予測された全部のアドレス空間に対応するメモリへの前記アクセス手段によるアクセスを起動させる起動手段と、前記少なくとも二つのアドレス生成元情報を用いて生成される前記アクセス対象のアドレスが属するアドレス空間を判定する判定手段と、前記起動手段の制御によって起動したアクセスのうちの、前記判定手段によって判定されたアドレス空間に対応するアクセス以外の前記アクセス手段によるアクセスを停止させるアクセス停止手段とを備える。【００２６】  このように、本発明の情報処理装置は、アクセスアドレスを生成した後に空間判定を行ない、その後にメモリへのアクセスの制御を起動するのではなく、アクセスアドレスの生成時に、アクセスアドレスを生成する元の値から、生成後のアクセスアドレスが属する空間を予測する。そして、本発明の情報処理装置は、予測した一つ又は複数の空間に対応するメモリ全部へのアクセスを起動し、その後に生成後のアクセスアドレスから正しいアドレス空間を判定し、前記複数起動したアクセスのうち、正しいものだけを継続し、予測がはずれたものは中断する。これにより、本発明の情報処理装置は、メモリへのアクセスを繰り返すというペナルティを発生させることなく、メモリへのアクセス時間を短縮することができる。【００２７】  なお、本発明の情報処理装置は、空間予測を行なう際、予測したアドレス空間の中に必ず正しいアドレス空間が含まれるように、空間予測を行なう。【００２８】  本発明の情報処理装置では、例えば、前記アクセス対象のアドレスが属するアドレス空間は、前記アクセス対象のアドレスの所定のフィールドの値によって決定され、前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドの値が属するアドレス空間を判定するとともに、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する。【００２９】  また例えば、前記アクセス対象のアドレスは、前記少なくとも二つのアドレス生成元情報の加算又は減算を行なうことによって生成され、前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記一つのアドレス生成元情報の前記所定のフィールドの最下位の桁が変化するか否かを判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する。【００３０】  本発明の情報処理装置は、更に、前記一つのアドレス生成元情報の所定のフィールドの値が属するアドレス空間を特定する空間特定情報を保持する保持手段を備え、前記アクセス対象のアドレスが属するアドレス空間は、前記アクセス対象のアドレスの前記所定のフィールドの値によって決定され、前記予測手段は、前記保持手段によって保持されている前記空間特定情報を用いるとともに、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測してもよい。【００３１】  例えば、前記アクセス対象のアドレスは、前記少なくとも二つのアドレス生成元情報の加算又は減算を行なうことによって生成され、前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記一つのアドレス生成元情報の前記所定のフィールドの最下位の桁が変化するか否かを判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する。【００３２】  本発明の情報処理装置は、更に、前記予測手段によって予測された全部のアドレス空間に対応するメモリへクロックを供給する供給手段と、前記判定手段によって判定されたアドレス空間に対応するメモリ以外のメモリへの前記供給手段によるクロックの供給を停止させるクロック停止手段とを備えてもよい。【００３３】  本発明のメモリアクセス制御方法は、少なくとも二つのアドレス生成元情報が用いられて生成されるアドレスが属するアドレス空間に対応するメモリにアクセスするアクセス手段を制御する方法であって、一つの前記アドレス生成元情報を用いて、アクセス対象のアドレスが属する可能性を有する一つ又は複数のアドレス空間を予測する予測ステップと、前記予測ステップにおいて予測した全部のアドレス空間に対応するメモリへの前記アクセス手段によるアクセスを起動させる起動ステップと、前記少なくとも二つのアドレス生成元情報を用いて生成される前記アクセス対象のアドレスが属するアドレス空間を判定する判定ステップと、前記起動ステップにおける制御によって起動したアクセスのうちの、前記判定ステップにおいて判定したアドレス空間に対応するアクセス以外の前記アクセス手段によるアクセスを停止させるアクセス停止ステップとを含む。
【発明の効果】
【００３４】  本発明は、メモリへのアクセスを繰り返すというペナルティを発生させることなく、メモリへのアクセス時間を短縮する情報処理装置を提供することができる。【００３５】  すなわち、本発明により、情報処理装置全体のクロックサイクル時間を短くすることが可能となり、情報処理装置における動作周波数を向上させることが可能となる。
【図面の簡単な説明】
【００３６】
【図１】図１は、ＣＰＵのパイプライン動作を示す図である。
【図２】図２は、従来の情報処理装置の構成を示す図である。
【図３】図３は、キャッシュ空間にアクセスする場合の各処理のタイミングを示す図である。
【図４】図４は、実施の形態１の情報処理装置の構成図である。
【図５】図５は、アドレス空間を示す図である。
【図６】図６は、第一の空間予測のフローを示す図である。
【図７】図７は、第二の空間予測のフローを示す図である。
【図８】図８は、最終の空間予測のフローを示す図である。
【図９】図９は、実施の形態１における各処理のタイミングを示す図である。
【図１０】図１０は、実施の形態２の情報処理装置の構成図である。
【図１１】図１１は、実施の形態２におけるＳＲＡＭアクセス時の各処理のタイミングを示す図である。
【図１２】図１２は、実施の形態２におけるＣａｃｈｅアクセス時の各処理のタイミングを示す図である。
【図１３】図１３は、実施の形態３の情報処理装置の構成図である。
【図１４】図１４は、実施の形態３における各処理のタイミングを示す図である。
【符号の説明】
【００３７】    １１  クロック
１２  Ｆ１ステージ
１３  Ｆ２ステージ
１４  Ｄ１ステージ
１５  Ｄ２ステージ
１６  Ｅ１ステージ
１７  Ｅ２ステージ
１８  Ｅ３ステージ
１１０  ｌｄ命令
２１  ＣＰＵ
２２  メモリ制御部
２３  キャッシュタグメモリ
２４  キャッシュデータメモリ
２０７  レジスタＡ
２０８  レジスタＡ出力
２０９  レジスタＢ
２１０  レジスタＢ出力
２１１  加算器
２１２  アクセスアドレス
２１３  メモリアクセス要求生成部
２１４  メモリアクセス要求
２１５  起動要求生成部
２１６  空間判定部
２１７  キャッシュ空間判定信号
２１８  ＳＲＡＭ空間判定信号
２１９  ＢＣＵ空間判定信号
２２０  Ｅ１メモリ制御起動要求
２２１  Ｅ１ＳＲＡＭ制御起動要求
２２２  Ｅ１キャッシュ制御起動要求
２２３  Ｅ１メインメモリ制御部
２２４  Ｅ１ＳＲＡＭ制御部
２２５  Ｅ１キャッシュ制御部
２２６  タグ制御部
２２７  タグ起動要求
２２８  タグ終了信号
２２９  ＳＲＡＭ終了信号
２３０  キャッシュ終了信号
２３１  Ｅ２メモリ制御起動要求
２３２  Ｅ２ＳＲＡＭ制御起動要求
２３３  Ｅ２キャッシュ制御起動要求
２３４  Ｅ２ＢＣＵ制御起動要求
２３５  Ｅ２メインメモリ制御部
２３６  Ｅ２キャッシュ制御部
２３７  キャッシュデータ制御部
２３８  Ｅ２ＳＲＡＭ制御部
２３９  Ｅ２ＢＣＵ制御部
３１  サイクル
３０２  ｔＲ
３０３  ｔａｄｄ
３０４  ｔｄｅｃ
４０１  空間予測部
４０２  ＳＲＡＭ空間予測信号
４０３  キャッシュ空間予測信号
４０４  ＢＣＵ空間予測信号
４０５  Ｅ１ステージアドレス保持部
４０６  Ｅ１ステージアドレス
４０７  Ｅ１ステージ空間判定部
４０８  Ｅ１ステージＳＲＡＭ空間判定信号
４０９  Ｅ１ステージキャッシュ空間判定信号
４１０  Ｅ１ステージＢＣＵ空間判定信号
４１１  キャッシュ制御中断信号
４１２  ＳＲＡＭ制御中断信号
４１３  起動要求生成部
４１４  Ｅ１メインメモリ制御部
８０１  タグクロック許可信号
８０２  タグクロック
８０３  クロック制御部
１１１  レジスタＡ書き込みデータ生成部
１１２  レジスタＡ書き込みデータ
１１３  デコード部
１１４  デコード結果
１１５  レジスタＡ空間属性保持部
１１６  レジスタＡ空間属性
７１  Ｅ１メインメモリ制御ステート
７２  Ｅ１キャッシュ制御ステート
７３  Ｅ１ＳＲＡＭ制御ステート
７４  Ｅ２メインメモリ制御ステート
７５  Ｅ２Ｃａｓｈｅ制御ステート
７６  Ｃａｓｈｅ制御ステート
７７  ＢＣＵ制御ステート
【発明を実施するための最良の形態】
【００３８】  以下に、本発明を実施するための最良の形態について、図面を参照して説明する。【００３９】  （実施の形態１）
まず、実施の形態１の情報処理装置を説明する。【００４０】  図４に実施の形態１の情報処理装置の構成を示す。【００４１】  実施の形態１では、ＣＰＵ２１が行なうメモリアクセス命令は、レジスタＡ２０７の値とレジスタＢ２０９の値とを加算することによって生成されるアクセスアドレスでメモリアクセスを行なうことを指示する命令である場合を想定する。また、上記の加算によってアドレスが生成される場合、レジスタＡ２０７の３２ビットの値と、レジスタＢ２０９の下位１６ビットの値とが加算されてアドレスが生成される場合を想定する。【００４２】  レジスタＡ２０７からの出力であるレジスタＡ出力２０８が、空間予測部４０１に入力される。【００４３】  空間予測部４０１は、レジスタＡ出力２０８の値に基づいて、アクセスアドレス２１２が属するアドレス空間がどの空間であるのかを予測する。【００４４】  空間予測部４０１は、予測結果に基づいて、ＳＲＡＭ空間予測信号４０２、キャッシュ空間予測信号４０３、及びＢＣＵ空間予測信号４０４の一部を、メモリ制御部２２の起動要求生成部４１３に出力する。【００４５】  起動要求生成部４１３は、メモリアクセス要求２１４と、ＳＲＡＭ空間予測信号４０２、キャッシュ空間予測信号４０３、及びＢＣＵ空間予測信号４０４の一部とから、Ｅ１メモリ制御起動要求２２０、Ｅ１ＳＲＡＭ制御起動要求２２１、及びＥ１キャッシュ制御起動要求２２２の一部を生成して出力する。起動要求は予測結果によっては複数生成され出力される。【００４６】  パイプラインがＥ１ステージに進む際、アクセスアドレス２１２はＥ１ステージアドレス保持部４０５に入り、Ｅ１ステージでのメモリアクセス命令実行中保持される。【００４７】  メモリ制御部２２は、Ｅ１ステージアドレス４０６を用いてＥ１ステージ空間判定部４０７により、アクセスアドレス２１２が属する正しいアドレス空間を判定する。Ｅ１ステージ空間判定部４０７は、判定結果として、Ｅ１ステージＳＲＡＭ空間判定信号４０８、Ｅ１ステージキャッシュ空間判定信号４０９、又はＥ１ステージＢＣＵ空間判定信号４１０を、Ｅ１メインメモリ制御部４１４に出力する。【００４８】  Ｅ１メインメモリ制御部４１４は、Ｅ１ステージ空間判定部４０７からの空間判定信号に基づいて、Ｅ１ステージアドレス４０６（アクセスアドレス２１２）が属する空間以外の空間に対応する制御部に対して、アクセスの中断信号を出力する。例えば、Ｅ１ステージアドレス４０６がＳＲＡＭ空間に属する場合、Ｅ１メインメモリ制御部４１４は、キャッシュ制御中断信号４１１をＥ１キャッシュ制御部２２５に出力する。Ｅ１ステージアドレス４０６がキャッシュ空間に属する場合、Ｅ１メインメモリ制御部４１４は、ＳＲＡＭ制御中断信号４１２をＥ１ＳＲＡＭ制御部２２４に出力する。Ｅ１ステージアドレス４０６がＢＣＵ空間に属する場合、Ｅ１メインメモリ制御部４１４は、ＳＲＡＭ制御中断信号４１２と、キャッシュ制御中断信号４１１とをアクティブにする。【００４９】  Ｅ１ＳＲＡＭ制御部２２４は、ＳＲＡＭ制御中断信号４１２がアクティブになると、Ｅ１ステージのＳＲＡＭアクセス制御を中断する。【００５０】  Ｅ１キャッシュ制御部２２５は、キャッシュ��御中断信号４１１がアクティブになると、Ｅ１ステージのキャッシュアクセス制御を中断する。【００５１】  すなわち、メモリアクセス命令がＤ２ステージにあるとき、空間予測部４０１により、アクセスアドレス２１２が属する可能性がある複数のアクセス空間が予測され、Ｅ１ステージにメモリアクセス命令が入るときに、Ｅ１ステージにおいて、アクセスアドレス２１２が属する可能性があると予測された複数のアクセス空間それぞれに対応する制御部が起動する。【００５２】  Ｅ１ステージにメモリアクセス命令があるとき、アクセスアドレス２１２が属する正しいアドレス空間に対応する制御部によるメモリへのアクセスのみが実行され、予測がはずれたアドレス空間に対応する制御部によるメモリへのアクセスは中断する。そして、Ｅ２ステージにメモリアクセス命令が投入される。【００５３】  Ｄ２ステージにおいて、空間予測部４０１は、アクセスアドレス２１２が属する正しいアドレス空間が含まれるように、アクセスアドレス２１２が属する可能性がある複数のアクセス空間を予測する。これにより、Ｅ１ステージにおける正しいアドレス空間へのアクセス制御を再起動する必要がなくなるため、同じ種類の処理を再度繰り返すというペナルティは発生しない。以下では、空間予測部４０１が行なう予測を「空間予測」という。【００５４】  以下に、Ｄ２ステージにおいて空間予測部４０１が行なう空間予測の方法について説明する。【００５５】  図５に、ＣＰＵのアドレス空間を示す。【００５６】  アドレス“０ｘ００００００００”から“０ｘ３ｆｆｆｆｆｆｆ”まではＳＲＡＭにアクセスする「ＳＲＡＭ空間」のアドレスであり、アドレス“０ｘ４０００００００”から“０ｘ５ｆｆｆｆｆｆｆ”まではキャッシュにアクセスする「キャッシュ空間」のアドレスであり、アドレス“０ｘ６０００００００”以降はＢＣＵを通じて外部デバイスにアクセスする「ＢＣＵ空間」のアドレスである。【００５７】  図６から図８は空間予測部４０１が行なう空間予測のフローを示す。図６から図８に示すように、空間予測部４０１は、第一の予測（図６参照）と、第二の予測（図７参照）とを行ない、それぞれの結果から最終的な予測を行なう（図８参照）。【００５８】  空間予測部４０１は、第一の予測では、レジスタＡ２０７からの出力値であるレジスタＡ出力２０８の値がどのアドレス空間に属するのかを判定する。【００５９】  すなわち、空間予測部４０１は、まず、レジスタＡ出力２０８の値がＳＲＡＭ空間に属するか否かを判定する（図６のＳ６１）。空間予測部４０１は、ＳＲＡＭ空間に属さないと判定した場合（Ｓ６１でｎｏ）、レジスタＡ出力２０８の値がキャッシュ空間に属するか否かを判定する（図６のＳ６２）。空間予測部４０１は、キャッシュ空間に属さないと判定した場合（Ｓ６２でｎｏ）、レジスタＡ出力２０８の値がＢＣＵ空間に属すると判定する。【００６０】  空間予測部４０１は、第一の予測と並行して第二の予測を行なう。【００６１】  空間予測部４０１は、第二の予測では、レジスタＡ２０７の値が図５の隣接するアドレス空間の境界付近のアドレスかどうかを判断し、加算器２１１によって得られるアクセスアドレス２１２がどのアドレス空間に属す���のかを予測する。【００６２】  上述したように、ＣＰＵ２１は、レジスタＡ２０７の値と、レジスタＢ２０９の値とを加算することによりアクセスアドレス２１２を生成する。このとき、レジスタＢ２０９の値のうち下位１６ビットのみが利用される。アドレス空間を判定するフィールドがビット２８からビット３１までのフィールドである場合を想定する。この場合、レジスタＡ２０７の値が属する空間と、アクセスアドレス２１２が属する空間とが異なるのは、加算によりビット２８からビット３１までのフィールドの値が変化する場合、すなわちレジスタＡ２０７の値のビット２７が「１」である場合である。空間予測部４０１は、第二の予測では、レジスタＡ２０７の値のビット２７が「１」であるか否かを判定する。【００６３】  すなわち、空間予測部４０１は、まず、レジスタＡ２０７の値がＳＲＡＭ空間に属するか否かを判定する（図７のＳ７１）。レジスタＡ２０７の値がＳＲＡＭ空間に属する場合（Ｓ７１でｙｅｓ）、空間予測部４０１は、レジスタＡ２０７の値のビット２７の値が「１」であるか否かを判定する（Ｓ７２）。ビット２７の値が「１」である場合（Ｓ７２でｙｅｓ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がキャッシュ空間であると予測する。ビット２７の値が「０」である場合（Ｓ７２でｎｏ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がＳＲＡＭ空間であると予測する。【００６４】  Ｓ７１でレジスタＡ２０７の値がＳＲＡＭ空間に属すると判定しなかった場合（Ｓ７１でｎｏ）、空間予測部４０１は、レジスタＡ２０７の値がキャッシュ空間に属するか否かを判定する（Ｓ７３）。レジスタＡ２０７の値がキャッシュ空間に属する場合（Ｓ７３でｙｅｓ）、空間予測部４０１は、レジスタＡ２０７の値のビット２７が「１」であるか否かを判定する（Ｓ７４）。ビット２７が「１」である場合（Ｓ７４でｙｅｓ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がＢＣＵ空間であると予測する。ビット２７が「０」である場合（Ｓ７４でｎｏ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がキャッシュ空間であると予測する。【００６５】  更に、Ｓ７３でレジスタＡ２０７の値がキャッシュ空間に属すると判定しなかった場合（Ｓ７３でｎｏ）、空間予測部４０１は、レジスタＡ２０７の値のビット２７が「１」であるか否かを判定する（Ｓ７５）。ビット２７が「１」である場合（Ｓ７５でｙｅｓ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がＳＲＡＭ空間であると予測する。ビット２７が「０」である場合（Ｓ７５でｎｏ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がＢＣＵ空間であると予測する。【００６６】  空間予測部４０１は、第一の予測と第二の予測とを終了すると、最終的な予測を行ない、その予測結果にしたがって、各空間に対する制御中断信号をアクティブにする。【００６７】  空間予測部４０１は、最終予測では、第一の予測又は第二の予測により予測結果としてＳＲＡＭ空間を得た場合（図８のＳ８１）、ＳＲＡＭ空間予測信号４０２���アクティブにする。空間予測部４０１は、第一の予測又は第二の予測により予測結果としてキャッシュ空間を得た場合（Ｓ８２）、キャッシュ空間予測信号４０３をアクティブにする。空間予測部４０１は、第一の予測又は第二の予測により予測結果としてＢＣＵ空間を得た場合（Ｓ８２）、ＢＣＵ空間予測信号４０４をアクティブにする。【００６８】  上記のフローに従うと、例えば、レジスタＡ２０７の値が“０ｘ３０００００００”である場合、空間予測部４０１はＳＲＡＭ空間予測信号４０２のみを出力し、レジスタＡ２０７の値が“０ｘ３ｆｆｆｆｆｆ０”である場合、空間予測部４０１はＳＲＡＭ空間予測信号４０２とキャッシュ空間予測信号４０３とを出力する。【００６９】  図９は、レジスタＡ２０７の値が“０ｘ３ｆｆｆｆｆｆ０”であり、レジスタＢ２０９の値が“０ｘ１０００”である場合の各処理が実行されるタイミングを示す。図９の場合、アクセスアドレス２１２は“０ｘ４００００ｆｆ０”となり、アクセスすべき空間はキャッシュ空間である。【００７０】  図９は、Ｅ１ステージでなんらかの要因でキャッシュへのアクセスに２サイクルかかった場合を示している。【００７１】  空間予測部４０１はレジスタＡ２０７の値を用いて第一の予測を行なう。図９の場合、空間予測部４０１は第一の予測結果としてＳＲＡＭ空間を得る。【００７２】  また、空間予測部４０１は、レジスタＡ２０７の値がＳＲＡＭ空間に属し、かつ、ビット２７が「１」であるため、第二の予測結果としてキャッシュ空間を得る。【００７３】  空間予測部４０１は、第一の予測と第二の予測とから、最終的な予測結果として、ＳＲＡＭ空間とキャッシュ空間とを得る。そのため、空間予測部４０１は、ＳＲＡＭ空間予測信号４０２と、キャッシュ空間予測信号４０３とを出力する。【００７４】  これらの信号の出力遅延は、レジスタＡ２０７の値の読み出しに要する時間であるｔＲ３０２と、レジスタＡ２０７の値の上位４ビット及びビット２７をデコードする時間であるｔｐｒｅ７０８との合計である。ｔｐｒｅ７０８は３２ビットの加算器の出力遅延であるｔａｄｄ３０３より短い。また、出力遅延には、加算結果のデコード時間ｔｄｅｃ３０４は含まれない。そのため、ＳＲＡＭ空間予測信号４０２及びキャッシュ空間予測信号４０３が出力されるまでの遅延は、加算結果がデコードされて出力されるまでの遅延より短い。よって、Ｅ１ステージの開始を、Ｄ２ステージにおいてアドレスをデコードしてアドレス空間を判定する場合よりも早く実行することが可能になる。【００７５】  ｌｄ命令１１０がＥ１ステージに入った時点でＥ１ステージアドレス４０６の空間が判定される。図９の場合、Ｅ１ステージアドレス４０６は“０ｘ４００００ｆｆ０”であるためキャッシュ空間である。そのため、Ｅ１ＳＲＡＭ制御部２２４に対してのＳＲＡＭ制御中断信号４１２がアクティブになる。ＳＲＡＭ制御中断信号４１２の出力タイミングは、アドレスをデコードするのに要する時間であるｔｄｅｃ３０４の直後である。【００７６】  Ｅ１ＳＲＡＭ制御部２２４は、ＳＲＡＭ制御中断信号４１２を受けて、ＳＲＡＭ制御を中断する。【００７７】  他方、Ｅ１キャッシュ制御部２２５は制御を継続し、Ｅ��メインメモリ制御部４１４はタグ制御部２２６からのタグ終了信号２２８を受けたサイクル７１１でＥ２ＳＲＡＭ制御起動要求２３２をアクティブにする。同時にｌｄ命令１１０はＥ２ステージでの処理に進む。【００７８】  上述したように、実施の形態１の情報処理装置は、Ｄ２ステージでの処理遅延を短縮し、クロックサイクルを短縮することができる。すなわち、動作周波数を向上させることが可能となる。【００７９】  また、空間予測部４０１は、空間予測を行なうとき、アクセスアドレス２１２が属する正しい空間を含むように予測することが可能となる。すなわち、Ｅ１ステージで複数起動した制御のうち一つは正しい。予測された制御のうちで、正しい制御のみが継続し、予測がはずれた制御は中断することで、Ｅ１ステージでの制御の再起動の必要性をなくすことが可能となる。【００８０】  したがって、実施の形態１の情報処理装置は、ペナルティを増加させずにクロックサイクルを向上させることが可能となる。【００８１】  なお、メモリアクセス要求生成部２１３がメモリアクセス要求２１４を出力すると、Ｅ１ＳＲＡＭ制御部２２４、Ｅ１キャッシュ制御部２２５、及びＥ２ＢＣＵ制御部２３９の全部が対応するメモリへのアクセスの制御を起動することにより、ペナルティを発生させずにクロックサイクルを向上させることが可能となる。しかしながらこの場合、消費電力は大きくなる。それに対して、実施の形態１の情報処理装置は、全部の制御部のメモリアクセス制御が行なわれるのではないので、消費電力を抑えることができる。【００８２】  また、実施の形態１では、アクセスアドレス２１２のうちのアドレス空間を判定するフィールドが、ビット２８からビット３１までのフィールドである場合を想定した。しかしながら、アドレス空間を判定するフィールドは、ビット２８からビット３１までのフィールドである場合に限定されない。したがって、第二の予測では、空間予測部４０１は、レジスタＡ２０７の値において、アドレス空間を判定するフィールドの一つ下のビットの値が「１」であるのか「０」であるのかを判定する。【００８３】  また、実施の形態１では、アクセスアドレス２１２は、レジスタＡ２０７の値とレジスタＢ２０９の値とを加算することによって生成される場合を想定したが、アクセスアドレス２１２は、レジスタＡ２０７の値からレジスタＢ２０９の値を減算することによって生成されてもよい。この場合、第二の予測では、レジスタＡ２０７の値において、アドレス空間を判定するフィールドの一つ下のビットの値が「１」であるのか「０」であるのかに応じて判定される空間が、上述した実施の形態１の場合の反対となる。【００８４】  更に、実施の形態１では、空間予測部４０１は本発明の情報処理装置の予測手段の一例である。起動要求生成部４１３は本発明の情報処理装置の起動手段の一例である。Ｅ１ステージ空間判定部４０７は本発明の情報処理装置の判定手段の一例である。Ｅ１メインメモリ制御部４１４は本発明の情報処理装置のアクセス停止手段の一例である。【００８５】  （実施の形態２）
次に、実施の形態２の情報処理装置を説明する。【００８６】  図１０に実施の形態２の情報処理装置の構成を示す。【００８７】  実施の形態２の情報処理装置は、キャッシュタグメモリ２３に対してのクロックの供給を制御することが可能な装置であって、タグクロック許可信号８０１によりクロック制御部８０３がキャッシュタグメモリ２３へのクロックの供給を停止する装置である。【００８８】  実施の形態２では、実施の形態１の場合と同様に、空間予測部４０１が空間予測を行なうことによってメモリへのアクセスを制御するとともに、キャッシュタグメモリ２３へのクロックの供給も制御する。【００８９】  Ｅ１キャッシュ制御部２２５は、キャッシュに対するアクセスを制御する場合のみ、タグクロック許可信号８０１をクロック制御部８０３に供給する。すなわち、Ｅ１キャッシュ制御部２２５が「アクセス中」の状態である場合のみ、タグクロック許可信号８０１はアクティブになる。【００９０】  図１１はＳＲＡＭ空間へアクセスされる場合の各処理が実行されるタイミングを示す図である。図１１は、レジスタＡ２０７の値が“０ｘ３０００００００”であり、レジスタＢ２０９の値が“０ｘ００００１０００”である場合の各処理が実行されるタイミングを示す。【００９１】  空間予測及びその予測結果に基づくメモリへのアクセスの制御は、実施の形態１と同様に行なわれる。図１１の場合、最終的に得られる空間予測はＳＲＡＭ空間のみとなり、ＳＲＡＭ空間予測信号４０２のみがアクティブになる。この場合、Ｅ１キャッシュ制御部２２５は起動しないため、タグクロック許可信号８０１はアクティブにならず、タグクロック８０２はキャッシュタグメモリ２３には供給されない。【００９２】  図１２はキャッシュ空間へアクセスされる場合の各処理が実行されるタイミングを示す図である。図１２はレジスタＡ２０７の値が“０ｘ３ｆｆｆｆｆｆｆ０”であり、レジスタＢ２０９の値が“０ｘ００００１０００”である場合の各処理が実行されるタイミングを示す。【００９３】  空間予測及びその予測結果に基づくメモリへのアクセスの制御は、実施の形態１と同様に行なわれる。図１２の場合、最終的に得られる空間予測はＳＲＡＭ空間とキャッシュ空間となり、ＳＲＡＭ空間予測信号４０２と、キャッシュ空間予測信号４０３とがアクティブになる。しかしながら、Ｅ１ステージにおいて、ＳＲＡＭ制御中断信号４１２が出力され、Ｅ１ＳＲＡＭ制御部２２４は中断される。Ｅ１キャッシュ制御部２２５は予測結果が正しいため処理を継続する。また、キャッシュ空間予測信号４０３にしたがってＥ１キャッシュ制御起動要求２２２、及びタグ起動要求２２７が出力されるため、Ｅ１キャッシュ制御部２２５はタグクロック許可信号８０１をクロック制御部８０３に供給し、クロック制御部８０３はタグクロック８０２をキャッシュタグメモリ２３へ供給する。【００９４】  他方、最終的に得られる空間予測がＳＲＡＭ空間とキャッシュ空間とであって、アクセスアドレス２１２が属する正しいアドレス空間がＳＲＡＭ空間である場合、以下に示す動作が行なわれる。すなわち、最終的に得られる空間予測によって、ＳＲＡＭ空間予測信号４０２とキャッシュ空間予測信号４０３とがアクティブになり、Ｅ１ＳＲＡＭ制御部２２４により、図示されていないＳＲＡＭ用のクロック制御部は図示されていないＳＲＡＭクロックをＳＲＡＭに供給する。また、Ｅ１キャッシュ制御部２２５はタグクロック許可信号８０１をクロック制御部８０３に供給し、クロック制御部８０３はタグクロック８０２をキャッシュタグメモリ２３へ供給する。そして、正しいアドレス空間がＳＲＡＭ空間であるので、Ｅ１キャッシュ制御部２２５は、タグクロック停止信号をクロック制御部８０３に供給することにより、クロック制御部８０３がキャッシュタグメモリ２３へタグクロック８０２を供給することを停止させる。【００９５】  一般的にクロック制御において、クロックの供給を制御する手段（ブロック）はクロックツリーの上位側に配置されることが多く、クロック供給信号を生成する手段（ブロック）はクロックツリーの下位側に配置されることが多い。そのためクロック供給信号は１サイクル中の早い時点で出力されることが望ましい。【００９６】  Ｅ１ステージ空間判定部４０７により得られる、アクセスアドレス２１２に基づく空間判定結果を用いる場合、Ｅ１ステージにおいて、キャッシュへのアクセスのためにタグクロック許可信号８０１を生成するタイミングが遅くなり、全体のクロックサイクルの向上を図ることができない。【００９７】  実施の形態２の情報処理装置は、空間予測部４０１によって得られる空間予測結果を利用することにより、タグクロック許可信号８０１を生成するためクロックサイクルを向上させることが可能となる。【００９８】  （実施の形態３）
次に、実施の形態３の情報処理装置を説明する。【００９９】  図１３に実施の形態３の情報処理装置の構成を示す。【０１００】  実施の形態３の情報処理装置は空間予測を高速に行なう。【０１０１】  図１３の情報処理装置は、レジスタＡ２０７に値を書き込む際に、レジスタＡ２０７の値がメモリへアクセスするためのアクセスアドレスの生成に用いられた場合にどの空間に属するのかを示す判定結果を別の保持部に保持しておき、その判定結果をＤ２ステージでの空間予測時に用いる。【０１０２】  レジスタＡ書き込みデータ生成部１１１は、レジスタＡ２０７への書き込みデータであるレジスタＡ書き込みデータ１１２を生成する。レジスタＡ書き込みデータ１１２は、レジスタＡ２０７へ入力されるのみならず、それ自身がアドレスとして使用された場合にどのアドレス空間に属するのかを判定するデコード部１１３にも入力される。【０１０３】  デコード部１１３によって得られる空間判定結果（デコード結果）１１４は、レジスタＡ２０７へのレジスタＡ書き込みデータ１１２の書き込みが行なわれた時と同じ時に、レジスタＡ空間属性保持部１１５に保持される。すなわち、レジスタＡ空間属性保持部１１５へのデータの入力は、レジスタＡ２０７へのデータの入力と同期する。【０１０４】  デコード部１１３によって得られる空間判定結果であるレジスタＡ空間属性１１６は空間予測部４０１に入力され、空間予測部４０１は実施の形態１と同様の予測を行なう。この際、空間予測部４０１は、実施の形態１ではレジスタＡ出力２０８からレジスタＡ２０７の値が属する空間を判定するが、実施の形態３ではレジスタＡ空間属性保持部１１５からの情報であるレジスタＡ空間属性１１６を使用し、レジスタＡ２０７の値のビット２７のみを参照する。【０１０５】  そのため、レジスタＡ２０７の複数のビットから空間を判定する処理が消滅し、空間予測部４０１は、実施の形態１の場合よりもより早く空間予測結果を得ることが可能となる。すなわち、情報処理装置全体のクロックサイクルを向上させることが可能となる。
【産業上の利用可能性】
【０１０６】  本発明は、クロック同期で動作する情報処理装置に有用であり、特にアドレス空間毎に異なる種別のアクセス方法を行なうメモリシステムを有するマイクロプロセッサ、デジタル信号処理回路、及びシステムＬＳＩ等に有用である。
【図１】
2007004323.tif 000002
【図２】
2007004323.tif 000003
【図３】
2007004323.tif 000004
【図４】
2007004323.tif 000005
【図５】
2007004323.tif 000006
【図６】
2007004323.tif 000007
【図７】
2007004323.tif 000008
【図８】
2007004323.tif 000009
【図９】
2007004323.tif 000010
【図１０】
2007004323.tif 000011
【図１１】
2007004323.tif 000012
【図１２】
2007004323.tif 000013
【図１３】
2007004323.tif 000014
【図１４】
2007004323.tif 000015
【手続補正書】
【提出日】平成19年4月4日(2007.4.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも二つのアドレス生成元情報が用いられて生成されるアドレスが属するアドレス空間に対応するメモリにアクセスするアクセス手段を制御する装置であって、
一つの前記アドレス生成元情報を用いて、アクセス対象のアドレスが属する可能性を有する一つ又は複数のアドレス空間を予測する予測手段と、
前記予測手段によって予測された全部のアドレス空間に対応するメモリへの前記アクセス手段によるアクセスを起動させる起動手段と、
前記少なくとも二つのアドレス生成元情報を用いて生成される前記アクセス対象のアドレスが属するアドレス空間を判定する判定手段と、
前記起動手段の制御によって起動したアクセスのうちの、前記判定手段によって判定されたアドレス空間に対応するアクセス以外の前記アクセス手段によるアクセスを停止させるアクセス停止手段と
を備える情報処理装置。
【請求項２】
前記アクセス対象のアドレスが属するアドレス空間は、前記アクセス対象のアドレスの所定のフィールドの値によって決定され、
前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドの値が属するアドレス空間を判定するとともに、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する
請求項１記載の情報処理装置。
【請求項３】
前記アクセス対象のアドレスは、前記少なくとも二つのアドレス生成元情報の加算又は減算を行なうことによって生成され、
前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記一つのアドレス生成元情報の前記所定のフィールドの最下位の桁が変化するか否かを判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する
請求項２記載の情報処理装置。
【請求項４】
更に、前記一つのアドレス生成元情報の所定のフィールドの値が属するアドレス空間を特定する空間特定情報を保持する保持手段を備え、
前記アクセス対象のアドレスが属するアドレス空間は、前記アクセス対象のアドレスの前記所定のフィールドの値によって決定され、
前記予測手段は、前記保持手段によって保持されている前記空間特定情報を用いるとともに、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する
請求項１記載の情報処理装置。
【請求項５】
前記アクセス対象のアドレスは、前記少なくとも二つのアドレス生成元情報の加算又は減算を行なうことによって生成され、
前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記一つのアドレス生成元情報の前記所定のフィールドの最下位の桁が変化するか否かを判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する
請求項４記載の情報処理装置。
【請求項６】
更に、
前記予測手段によって予測された全部のアドレス空間に対応するメモリへクロックを供給する供給手段と、
前記判定手段によって判定されたアドレス空間に対応するメモリ以外のメモリへの前記供給手段によるクロックの供給を停止させるクロック停止手段と
を備える請求項１記載の情報処理装置。
【請求項７】
少なくとも二つのアドレス生成元情報が用いられて生成されるアドレスが属するアドレス空間に対応するメモリにアクセスするアクセス手段を制御する方法であって、
一つの前記アドレス生成元情報を用いて、アクセス対象のアドレスが属する可能性を有する一つ又は複数のアドレス空間を予測する予測ステップと、
前記予測ステップにおいて予測した全部のアドレス空間に対応するメモリへの前記アクセス手段によるアクセスを起動させる起動ステップと、
前記少なくとも二つのアドレス生成元情報を用いて生成される前記アクセス対象のアドレスが属するアドレス空間を判定する判定ステップと、
前記起動ステップにおける制御によって起動したアクセスのうちの、前記判定ステップにおいて判定したアドレス空間に対応するアクセス以外の前記アクセス手段によるアクセスを停止させるアクセス停止ステップと
を含むメモリアクセス制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリにアクセスするマイクロプロセッサ等の情報処理装置に関する。
【背景技術】
【０００２】
映像や音声を扱う多くの機器には、高性能なプロセッサが実装されている。プロセッサには、複数のデータを短時間で処理したり、高品質の映像や音声の信号を処理することが求められ、それを実現する手段として動作周波数を向上させる方法がある。
【０００３】
一般的に、動作周波数の向上を達成する手段として、パイプラインの段数を増加させる方法がある。しかしながら、パイプラインの段数が多くなると、分岐命令を実行する際のペナルティが大きくなる等のデメリットも増加する。
【０００４】
パイプラインの段数は、メモリにアクセスするために必要なステージの数や、各ステージで実行する処理の種類等によって決定される。その決定の際に重要となるのが、アクセスしようとするメモリのアドレスの生成からそのメモリへのアクセスの起動までの回路遅延である。
【０００５】
一般的に、メモリへのアクセスはアドレスの生成からそのメモリに対するアクセス制御の起動までを含む。アドレスの生成には加算器等の論理段数が多い回路が必要となり、その回路における処理時間が全体の動作速度を向上させる際の制限となる。
【０００６】
アドレスが属する空間毎にその空間に対応するメモリへのアクセスを制御するプロセッサやメモリアクセス制御回路においては、アドレスが属する空間をデコードする必要がある。アドレスが確定する時間と、そのアドレスが属する空間をデコードする時間とが必要であるので、クロックサイクルを向上させることは容易ではない。
【０００７】
以下に、メモリへの従来のアクセス方法を、７段パイプラインのＣＰＵと、複数のアドレス空間それぞれに対応する複数のメモリと、各メモリへのアクセスを制御する複数のメモリ制御部とを有するシステムを用いて、図１から図３を参照して説明する。
【０００８】
図１はＣＰＵのパイプライン動作を示す。具体的には、図１はメモリアクセス命令であるｌｄ命令１１０が各ステージに投入される様子を示す。
【０００９】
パイプラインは、Ｆ１ステージ１２、Ｆ２ステージ１３、Ｄ１ステージ１４、Ｄ２ステージ１５、Ｅ１ステージ１６、Ｅ２ステージ１７、及びＥ３ステージ１８で構成される。
【００１０】
Ｆ１ステージ１２及びＦ２ステージ１３では命令のフェッチが行なわれ、Ｄ１ステージ１４及びＤ２ステージ１５では命令のデコードが行なわれる。Ｄ２ステージ１５ではアクセスアドレスの生成も行なわれる。Ｅ１ステージ１６及びＥ２ステージ１７ではメモリへのアクセスが行なわれる。
【００１１】
メモリアクセス命令であるｌｄ命令１１０は、パイプラインが止まる要因がない場合、図１に示すように、クロック１１毎に各ステージに投入され、各ステージにおいて処理が実行される。
【００１２】
図２に従来の情報処理装置の構成を示す。図２では、説明の簡単化のため、上記のＤ２ステージ１５、Ｅ１ステージ１６、及びＥ２ステージ１７に対応する各構成のみを示す。
【００１３】
ＣＰＵ２１は、アクセスアドレス２１２とメモリアクセス要求２１４とをメモリ制御部２２に出力する。
【００１４】
メモリ制御部２２はアドレス空間毎に異なるメモリアクセス制御を行なうものであって、図２は、キャッシュ、ＳＲＡＭ、及び、ＢＣＵを介して設けられている外部メモリにアクセスするメモリ制御部２２の構成を示している。ＳＲＡＭ及びキャッシュへのアクセスはＥ１ステージから開始され、ＢＣＵを介して設けられている外部メモリへのアクセスはＥ２ステージから開始される。
【００１５】
ＣＰＵ２１は、レジスタＡ２０７からの出力値２０８とレジスタＢ２０９からの出力値２１０とを加算器２１１により加算することにより、アクセスアドレス２１２を生成する。
【００１６】
アクセスアドレス２１２はメモリ制御部２２の空間判定部２１６に入力される。空間判定部２１６は、アクセスアドレス２１２が属するアドレス空間を判定し、判定結果に応じて、キャッシュ空間判定信号２１７、ＳＲＡＭ空間判定信号２１８、又はＢＣＵ空間判定信号２１９を、起動要求生成部２１５に出力する。
【００１７】
起動要求生成部２１５は、メモリアクセス要求２１４に基づいてＥ１メモリ制御起動要求２２０をＥ１メインメモリ制御部２２３へ出力すると同時に、ＳＲＡＭ空間判定信号２１８が入力された場合にはＥ１ＳＲＡＭ制御起動要求２２１をＥ１ＳＲＡＭ制御部２２４に出力し、キャッシュ空間判定信号２１７が入力された場合にはＥ１キャッシュ制御起動要求２２２をＥ１キャッシュ制御部２２５に出力する。
【００１８】
図３にキャッシュ空間にアクセスする場合の各処理のタイミングを示す。
【００１９】
サイクル３１においてｌｄ命令１１０がＤ２ステージ１５に入ると、出力遅延時間ｔＲ３０２の後にレジスタＡ出力２０８及びレジスタＢ出力２１０が出力される。次に、時間ｔａｄｄ３０３で、レジスタＡ出力２０８とレジスタＢ出力２１０とが加算されてアクセスアドレス２１２が生成される。更に、アクセスアドレス２１２が時間ｔｄｅｃ３０４でデコードされてアクセスアドレス空間が判定される。
【００２０】
すなわち、サイクル３１において、アドレス空間を判定するためには、「ｔＲ３０２＋ｔａｄｄ３０３＋ｔｄｅｃ３０４」の時間（遅延時間）が必要になる。その時間（遅延時間）経過後に、Ｅ１ステージ１６の各種起動信号が生成される。
【００２１】
一般的なＣＰＵにおいて、レジスタファイルや、加算器の出力が確定するのに要する時間は比較的長いので、アドレスを生成する時間がクロックサイクルの上限を決定する主要因となり、高速化のボトルネックとなる。
【００２２】
この課題を解決するために、以下に示す方法が特許文献１により開示されている。すなわち、生成されたアドレスの一部を利用してメモリへのアクセスを起動し、並行してアドレス空間をデコードする。次のサイクルで、起動したアクセスに対応するアドレス空間とデコードしたアドレス空間とが一致する場合、そのアクセスを続行する。
【特許文献１】特開２００１−５６６３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、上記特許文献１の方法では、起動したアクセスに対応するアドレス空間とデコードしたアドレス空間とが異なる場合、起動したアクセスを中断し、アドレスが属する正しい空間へのアクセスを再実行することとなり、ペナルティが発生する。
【００２４】
本発明は、上記課題を考慮し、メモリへのアクセスを繰り返すというペナルティを発生させることなく、メモリへのアクセス時間を短縮する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００２５】
上記目的を達成するために、本発明の情報処理装置は、少なくとも二つのアドレス生成元情報が用いられて生成されるアドレスが属するアドレス空間に対応するメモリにアクセスするアクセス手段を制御する装置であって、一つの前記アドレス生成元情報を用いて、アクセス対象のアドレスが属する可能性を有する一つ又は複数のアドレス空間を予測する予測手段と、前記予測手段によって予測された全部のアドレス空間に対応するメモリへの前記アクセス手段によるアクセスを起動させる起動手段と、前記少なくとも二つのアドレス生成元情報を用いて生成される前記アクセス対象のアドレスが属するアドレス空間を判定する判定手段と、前記起動手段の制御によって起動したアクセスのうちの、前記判定手段によって判定されたアドレス空間に対応するアクセス以外の前記アクセス手段によるアクセスを停止させるアクセス停止手段とを備える。
【００２６】
このように、本発明の情報処理装置は、アクセスアドレスを生成した後に空間判定を行ない、その後にメモリへのアクセスの制御を起動するのではなく、アクセスアドレスの生成時に、アクセスアドレスを生成する元の値から、生成後のアクセスアドレスが属する空間を予測する。そして、本発明の情報処理装置は、予測した一つ又は複数の空間に対応するメモリ全部へのアクセスを起動し、その後に生成後のアクセスアドレスから正しいアドレス空間を判定し、前記複数起動したアクセスのうち、正しいものだけを継続し、予測がはずれたものは中断する。これにより、本発明の情報処理装置は、メモリへのアクセスを繰り返すというペナルティを発生させることなく、メモリへのアクセス時間を短縮することができる。
【００２７】
なお、本発明の情報処理装置は、空間予測を行なう際、予測したアドレス空間の中に必ず正しいアドレス空間が含まれるように、空間予測を行なう。
【００２８】
本発明の情報処理装置では、例えば、前記アクセス対象のアドレスが属するアドレス空間は、前記アクセス対象のアドレスの所定のフィールドの値によって決定され、前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドの値が属するアドレス空間を判定するとともに、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する。
【００２９】
また例えば、前記アクセス対象のアドレスは、前記少なくとも二つのアドレス生成元情報の加算又は減算を行なうことによって生成され、前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記一つのアドレス生成元情報の前記所定のフィールドの最下位の桁が変化するか否かを判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する。
【００３０】
本発明の情報処理装置は、更に、前記一つのアドレス生成元情報の所定のフィールドの値が属するアドレス空間を特定する空間特定情報を保持する保持手段を備え、前記アクセス対象のアドレスが属するアドレス空間は、前記アクセス対象のアドレスの前記所定のフィールドの値によって決定され、前記予測手段は、前記保持手段によって保持されている前記空間特定情報を用いるとともに、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測してもよい。
【００３１】
例えば、前記アクセス対象のアドレスは、前記少なくとも二つのアドレス生成元情報の加算又は減算を行なうことによって生成され、前記予測手段は、前記一つのアドレス生成元情報の前記所定のフィールドより一つ下の桁の値を判定することにより、前記一つのアドレス生成元情報の前記所定のフィールドの最下位の桁が変化するか否かを判定して、前記アクセス対象のアドレスが属する可能性を有するアドレス空間を予測する。
【００３２】
本発明の情報処理装置は、更に、前記予測手段によって予測された全部のアドレス空間に対応するメモリへクロックを供給する供給手段と、前記判定手段によって判定されたアドレス空間に対応するメモリ以外のメモリへの前記供給手段によるクロックの供給を停止させるクロック停止手段とを備えてもよい。
【００３３】
本発明のメモリアクセス制御方法は、少なくとも二つのアドレス生成元情報が用いられて生成されるアドレスが属するアドレス空間に対応するメモリにアクセスするアクセス手段を制御する方法であって、一つの前記アドレス生成元情報を用いて、アクセス対象のアドレスが属する可能性を有する一つ又は複数のアドレス空間を予測する予測ステップと、前記予測ステップにおいて予測した全部のアドレス空間に対応するメモリへの前記アクセス手段によるアクセスを起動させる起動ステップと、前記少なくとも二つのアドレス生成元情報を用いて生成される前記アクセス対象のアドレスが属するアドレス空間を判定する判定ステップと、前記起動ステップにおける制御によって起動したアクセスのうちの、前記判定ステップにおいて判定したアドレス空間に対応するアクセス以外の前記アクセス手段によるアクセスを停止させるアクセス停止ステップとを含む。
【発明の効果】
【００３４】
本発明は、メモリへのアクセスを繰り返すというペナルティを発生させることなく、メモリへのアクセス時間を短縮する情報処理装置を提供することができる。
【００３５】
すなわち、本発明により、情報処理装置全体のクロックサイクル時間を短くすることが可能となり、情報処理装置における動作周波数を向上させることが可能となる。
【発明を実施するための最良の形態】
【００３６】
以下に、本発明を実施するための最良の形態について、図面を参照して説明する。
【００３７】
（実施の形態１）
まず、実施の形態１の情報処理装置を説明する。
【００３８】
図４に実施の形態１の情報処理装置の構成を示す。
【００３９】
実施の形態１では、ＣＰＵ２１が行なうメモリアクセス命令は、レジスタＡ２０７の値とレジスタＢ２０９の値とを加算することによって生成されるアクセスアドレスでメモリアクセスを行なうことを指示する命令である場合を想定する。また、上記の加算によってアドレスが生成される場合、レジスタＡ２０７の３２ビットの値と、レジスタＢ２０９の下位１６ビットの値とが加算されてアドレスが生成される場合を想定する。
【００４０】
レジスタＡ２０７からの出力であるレジスタＡ出力２０８が、空間予測部４０１に入力される。
【００４１】
空間予測部４０１は、レジスタＡ出力２０８の値に基づいて、アクセスアドレス２１２が属するアドレス空間がどの空間であるのかを予測する。
【００４２】
空間予測部４０１は、予測結果に基づいて、ＳＲＡＭ空間予測信号４０２、キャッシュ空間予測信号４０３、及びＢＣＵ空間予測信号４０４の一部を、メモリ制御部２２の起動要求生成部４１３に出力する。
【００４３】
起動要求生成部４１３は、メモリアクセス要求２１４と、ＳＲＡＭ空間予測信号４０２、キャッシュ空間予測信号４０３、及びＢＣＵ空間予測信号４０４の一部とから、Ｅ１メモリ制御起動要求２２０、Ｅ１ＳＲＡＭ制御起動要求２２１、及びＥ１キャッシュ制御起動要求２２２の一部を生成して出力する。起動要求は予測結果によっては複数生成され出力される。
【００４４】
パイプラインがＥ１ステージに進む際、アクセスアドレス２１２はＥ１ステージアドレス保持部４０５に入り、Ｅ１ステージでのメモリアクセス命令実行中保持される。
【００４５】
メモリ制御部２２は、Ｅ１ステージアドレス４０６を用いてＥ１ステージ空間判定部４０７により、アクセスアドレス２１２が属する正しいアドレス空間を判定する。Ｅ１ステージ空間判定部４０７は、判定結果として、Ｅ１ステージＳＲＡＭ空間判定信号４０８、Ｅ１ステージキャッシュ空間判定信号４０９、又はＥ１ステージＢＣＵ空間判定信号４１０を、Ｅ１メインメモリ制御部４１４に出力する。
【００４６】
Ｅ１メインメモリ制御部４１４は、Ｅ１ステージ空間判定部４０７からの空間判定信号に基づいて、Ｅ１ステージアドレス４０６（アクセスアドレス２１２）が属する空間以外の空間に対応する制御部に対して、アクセスの中断信号を出力する。例えば、Ｅ１ステージアドレス４０６がＳＲＡＭ空間に属する場合、Ｅ１メインメモリ制御部４１４は、キャッシュ制御中断信号４１１をＥ１キャッシュ制御部２２５に出力する。Ｅ１ステージアドレス４０６がキャッシュ空間に属する場合、Ｅ１メインメモリ制御部４１４は、ＳＲＡＭ制御中断信号４１２をＥ１ＳＲＡＭ制御部２２４に出力する。Ｅ１ステージアドレス４０６がＢＣＵ空間に属する場合、Ｅ１メインメモリ制御部４１４は、ＳＲＡＭ制御中断信号４１２と、キャッシュ制御中断信号４１１とをアクティブにする。
【００４７】
Ｅ１ＳＲＡＭ制御部２２４は、ＳＲＡＭ制御中断信号４１２がアクティブになると、Ｅ１ステージのＳＲＡＭアクセス制御を中断する。
【００４８】
Ｅ１キャッシュ制御部２２５は、キャッシュ制御中断信号４１１がアクティブになると、Ｅ１ステージのキャッシュアクセス制御を中断する。
【００４９】
すなわち、メモリアクセス命令がＤ２ステージにあるとき、空間予測部４０１により、アクセスアドレス２１２が属する可能性がある複数のアクセス空間が予測され、Ｅ１ステージにメモリアクセス命令が入るときに、Ｅ１ステージにおいて、アクセスアドレス２１２が属する可能性があると予測された複数のアクセス空間それぞれに対応する制御部が起動する。
【００５０】
Ｅ１ステージにメモリアクセス命令があるとき、アクセスアドレス２１２が属する正しいアドレス空間に対応する制御部によるメモリへのアクセスのみが実行され、予測がはずれたアドレス空間に対応する制御部によるメモリへのアクセスは中断する。そして、Ｅ２ステージにメモリアクセス命令が投入される。
【００５１】
Ｄ２ステージにおいて、空間予測部４０１は、アクセスアドレス２１２が属する正しいアドレス空間が含まれるように、アクセスアドレス２１２が属する可能性がある複数のアクセス空間を予測する。これにより、Ｅ１ステージにおける正しいアドレス空間へのアクセス制御を再起動する必要がなくなるため、同じ種類の処理を再度繰り返すというペナルティは発生しない。以下では、空間予測部４０１が行なう予測を「空間予測」という。
【００５２】
以下に、Ｄ２ステージにおいて空間予測部４０１が行なう空間予測の方法について説明する。
【００５３】
図５に、ＣＰＵのアドレス空間を示す。
【００５４】
アドレス“０ｘ００００００００”から“０ｘ３ｆｆｆｆｆｆｆ”まではＳＲＡＭにアクセスする「ＳＲＡＭ空間」のアドレスであり、アドレス“０ｘ４０００００００”から“０ｘ５ｆｆｆｆｆｆｆ”まではキャッシュにアクセスする「キャッシュ空間」のアドレスであり、アドレス“０ｘ６０００００００”以降はＢＣＵを通じて外部デバイスにアクセスする「ＢＣＵ空間」のアドレスである。
【００５５】
図６から図８は空間予測部４０１が行なう空間予測のフローを示す。図６から図８に示すように、空間予測部４０１は、第一の予測（図６参照）と、第二の予測（図７参照）とを行ない、それぞれの結果から最終的な予測を行なう（図８参照）。
【００５６】
空間予測部４０１は、第一の予測では、レジスタＡ２０７からの出力値であるレジスタＡ出力２０８の値がどのアドレス空間に属するのかを判定する。
【００５７】
すなわち、空間予測部４０１は、まず、レジスタＡ出力２０８の値がＳＲＡＭ空間に属するか否かを判定する（図６のＳ６１）。空間予測部４０１は、ＳＲＡＭ空間に属さないと判定した場合（Ｓ６１でｎｏ）、レジスタＡ出力２０８の値がキャッシュ空間に属するか否かを判定する（図６のＳ６２）。空間予測部４０１は、キャッシュ空間に属さないと判定した場合（Ｓ６２でｎｏ）、レジスタＡ出力２０８の値がＢＣＵ空間に属すると判定する。
【００５８】
空間予測部４０１は、第一の予測と並行して第二の予測を行なう。
【００５９】
空間予測部４０１は、第二の予測では、レジスタＡ２０７の値が図５の隣接するアドレス空間の境界付近のアドレスかどうかを判断し、加算器２１１によって得られるアクセスアドレス２１２がどのアドレス空間に属するのかを予測する。
【００６０】
上述したように、ＣＰＵ２１は、レジスタＡ２０７の値と、レジスタＢ２０９の値とを加算することによりアクセスアドレス２１２を生成する。このとき、レジスタＢ２０９の値のうち下位１６ビットのみが利用される。アドレス空間を判定するフィールドがビット２８からビット３１までのフィールドである場合を想定する。この場合、レジスタＡ２０７の値が属する空間と、アクセスアドレス２１２が属する空間とが異なるのは、加算によりビット２８からビット３１までのフィールドの値が変化する場合、すなわちレジスタＡ２０７の値のビット２７が「１」である場合である。空間予測部４０１は、第二の予測では、レジスタＡ２０７の値のビット２７が「１」であるか否かを判定する。
【００６１】
すなわち、空間予測部４０１は、まず、レジスタＡ２０７の値がＳＲＡＭ空間に属するか否かを判定する（図７のＳ７１）。レジスタＡ２０７の値がＳＲＡＭ空間に属する場合（Ｓ７１でｙｅｓ）、空間予測部４０１は、レジスタＡ２０７の値のビット２７の値が「１」であるか否かを判定する（Ｓ７２）。ビット２７の値が「１」である場合（Ｓ７２でｙｅｓ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がキャッシュ空間であると予測する。ビット２７の値が「０」である場合（Ｓ７２でｎｏ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がＳＲＡＭ空間であると予測する。
【００６２】
Ｓ７１でレジスタＡ２０７の値がＳＲＡＭ空間に属すると判定しなかった場合（Ｓ７１でｎｏ）、空間予測部４０１は、レジスタＡ２０７の値がキャッシュ空間に属するか否かを判定する（Ｓ７３）。レジスタＡ２０７の値がキャッシュ空間に属する場合（Ｓ７３でｙｅｓ）、空間予測部４０１は、レジスタＡ２０７の値のビット２７が「１」であるか否かを判定する（Ｓ７４）。ビット２７が「１」である場合（Ｓ７４でｙｅｓ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がＢＣＵ空間であると予測する。ビット２７が「０」である場合（Ｓ７４でｎｏ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がキャッシュ空間であると予測する。
【００６３】
更に、Ｓ７３でレジスタＡ２０７の値がキャッシュ空間に属すると判定しなかった場合（Ｓ７３でｎｏ）、空間予測部４０１は、レジスタＡ２０７の値のビット２７が「１」であるか否かを判定する（Ｓ７５）。ビット２７が「１」である場合（Ｓ７５でｙｅｓ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がＳＲＡＭ空間であると予測する。ビット２７が「０」である場合（Ｓ７５でｎｏ）、空間予測部４０１は、第二の予測では、アクセスアドレス２１２が属する空間がＢＣＵ空間であると予測する。
【００６４】
空間予測部４０１は、第一の予測と第二の予測とを終了すると、最終的な予測を行ない、その予測結果にしたがって、各空間に対する制御中断信号をアクティブにする。
【００６５】
空間予測部４０１は、最終予測では、第一の予測又は第二の予測により予測結果としてＳＲＡＭ空間を得た場合（図８のＳ８１）、ＳＲＡＭ空間予測信号４０２をアクティブにする。空間予測部４０１は、第一の予測又は第二の予測により予測結果としてキャッシュ空間を得た場合（Ｓ８２）、キャッシュ空間予測信号４０３をアクティブにする。空間予測部４０１は、第一の予測又は第二の予測により予測結果としてＢＣＵ空間を得た場合（Ｓ８２）、ＢＣＵ空間予測信号４０４をアクティブにする。
【００６６】
上記のフローに従うと、例えば、レジスタＡ２０７の値が“０ｘ３０００００００”である場合、空間予測部４０１はＳＲＡＭ空間予測信号４０２のみを出力し、レジスタＡ２０７の値が“０ｘ３ｆｆｆｆｆｆ０”である場合、空間予測部４０１はＳＲＡＭ空間予測信号４０２とキャッシュ空間予測信号４０３とを出力する。
【００６７】
図９は、レジスタＡ２０７の値が“０ｘ３ｆｆｆｆｆｆ０”であり、レジスタＢ２０９の値が“０ｘ１０００”である場合の各処理が実行されるタイミングを示す。図９の場合、アクセスアドレス２１２は“０ｘ４００００ｆｆ０”となり、アクセスすべき空間はキャッシュ空間である。
【００６８】
図９は、Ｅ１ステージでなんらかの要因でキャッシュへのアクセスに２サイクルかかった場合を示している。
【００６９】
空間予測部４０１はレジスタＡ２０７の値を用いて第一の予測を行なう。図９の場合、空間予測部４０１は第一の予測結果としてＳＲＡＭ空間を得る。
【００７０】
また、空間予測部４０１は、レジスタＡ２０７の値がＳＲＡＭ空間に属し、かつ、ビット２７が「１」であるため、第二の予測結果としてキャッシュ空間を得る。
【００７１】
空間予測部４０１は、第一の予測と第二の予測とから、最終的な予測結果として、ＳＲＡＭ空間とキャッシュ空間とを得る。そのため、空間予測部４０１は、ＳＲＡＭ空間予測信号４０２と、キャッシュ空間予測信号４０３とを出力する。
【００７２】
これらの信号の出力遅延は、レジスタＡ２０７の値の読み出しに要する時間であるｔＲ３０２と、レジスタＡ２０７の値の上位４ビット及びビット２７をデコードする時間であるｔｐｒｅ７０８との合計である。ｔｐｒｅ７０８は３２ビットの加算器の出力遅延であるｔａｄｄ３０３より短い。また、出力遅延には、加算結果のデコード時間ｔｄｅｃ３０４は含まれない。そのため、ＳＲＡＭ空間予測信号４０２及びキャッシュ空間予測信号４０３が出力されるまでの遅延は、加算結果がデコードされて出力されるまでの遅延より短い。よって、Ｅ１ステージの開始を、Ｄ２ステージにおいてアドレスをデコードしてアドレス空間を判定する場合よりも早く実行することが可能になる。
【００７３】
ｌｄ命令１１０がＥ１ステージに入った時点でＥ１ステージアドレス４０６の空間が判定される。図９の場合、Ｅ１ステージアドレス４０６は“０ｘ４００００ｆｆ０”であるためキャッシュ空間である。そのため、Ｅ１ＳＲＡＭ制御部２２４に対してのＳＲＡＭ制御中断信号４１２がアクティブになる。ＳＲＡＭ制御中断信号４１２の出力タイミングは、アドレスをデコードするのに要する時間であるｔｄｅｃ３０４の直後である。
【００７４】
Ｅ１ＳＲＡＭ制御部２２４は、ＳＲＡＭ制御中断信号４１２を受けて、ＳＲＡＭ制御を中断する。
【００７５】
他方、Ｅ１キャッシュ制御部２２５は制御を継続し、Ｅ１メインメモリ制御部４１４はタグ制御部２２６からのタグ終了信号２２８を受けたサイクル７１１でＥ２ＳＲＡＭ制御起動要求２３２をアクティブにする。同時にｌｄ命令１１０はＥ２ステージでの処理に進む。
【００７６】
上述したように、実施の形態１の情報処理装置は、Ｄ２ステージでの処理遅延を短縮し、クロックサイクルを短縮することができる。すなわち、動作周波数を向上させることが可能となる。
【００７７】
また、空間予測部４０１は、空間予測を行なうとき、アクセスアドレス２１２が属する正しい空間を含むように予測することが可能となる。すなわち、Ｅ１ステージで複数起動した制御のうち一つは正しい。予測された制御のうちで、正しい制御のみが継続し、予測がはずれた制御は中断することで、Ｅ１ステージでの制御の再起動の必要性をなくすことが可能となる。
【００７８】
したがって、実施の形態１の情報処理装置は、ペナルティを増加させずにクロックサイクルを向上させることが可能となる。
【００７９】
なお、メモリアクセス要求生成部２１３がメモリアクセス要求２１４を出力すると、Ｅ１ＳＲＡＭ制御部２２４、Ｅ１キャッシュ制御部２２５、及びＥ２ＢＣＵ制御部２３９の全部が対応するメモリへのアクセスの制御を起動することにより、ペナルティを発生させずにクロックサイクルを向上させることが可能となる。しかしながらこの場合、消費電力は大きくなる。それに対して、実施の形態１の情報処理装置は、全部の制御部のメモリアクセス制御が行なわれるのではないので、消費電力を抑えることができる。
【００８０】
また、実施の形態１では、アクセスアドレス２１２のうちのアドレス空間を判定するフィールドが、ビット２８からビット３１までのフィールドである場合を想定した。しかしながら、アドレス空間を判定するフィールドは、ビット２８からビット３１までのフィールドである場合に限定されない。したがって、第二の予測では、空間予測部４０１は、レジスタＡ２０７の値において、アドレス空間を判定するフィールドの一つ下のビットの値が「１」であるのか「０」であるのかを判定する。
【００８１】
また、実施の形態１では、アクセスアドレス２１２は、レジスタＡ２０７の値とレジスタＢ２０９の値とを加算することによって生成される場合を想定したが、アクセスアドレス２１２は、レジスタＡ２０７の値からレジスタＢ２０９の値を減算することによって生成されてもよい。この場合、第二の予測では、レジスタＡ２０７の値において、アドレス空間を判定するフィールドの一つ下のビットの値が「１」であるのか「０」であるのかに応じて判定される空間が、上述した実施の形態１の場合の反対となる。
【００８２】
更に、実施の形態１では、空間予測部４０１は本発明の情報処理装置の予測手段の一例である。起動要求生成部４１３は本発明の情報処理装置の起動手段の一例である。Ｅ１ステージ空間判定部４０７は本発明の情報処理装置の判定手段の一例である。Ｅ１メインメモリ制御部４１４は本発明の情報処理装置のアクセス停止手段の一例である。
【００８３】
（実施の形態２）
次に、実施の形態２の情報処理装置を説明する。
【００８４】
図１０に実施の形態２の情報処理装置の構成を示す。
【００８５】
実施の形態２の情報処理装置は、キャッシュタグメモリ２３に対してのクロックの供給を制御することが可能な装置であって、タグクロック許可信号８０１によりクロック制御部８０３がキャッシュタグメモリ２３へのクロックの供給を停止する装置である。
【００８６】
実施の形態２では、実施の形態１の場合と同様に、空間予測部４０１が空間予測を行なうことによってメモリへのアクセスを制御するとともに、キャッシュタグメモリ２３へのクロックの供給も制御する。
【００８７】
Ｅ１キャッシュ制御部２２５は、キャッシュに対するアクセスを制御する場合のみ、タグクロック許可信号８０１をクロック制御部８０３に供給する。すなわち、Ｅ１キャッシュ制御部２２５が「アクセス中」の状態である場合のみ、タグクロック許可信号８０１はアクティブになる。
【００８８】
図１１はＳＲＡＭ空間へアクセスされる場合の各処理が実行されるタイミングを示す図である。図１１は、レジスタＡ２０７の値が“０ｘ３０００００００”であり、レジスタＢ２０９の値が“０ｘ００００１０００”である場合の各処理が実行されるタイミングを示す。
【００８９】
空間予測及びその予測結果に基づくメモリへのアクセスの制御は、実施の形態１と同様に行なわれる。図１１の場合、最終的に得られる空間予測はＳＲＡＭ空間のみとなり、ＳＲＡＭ空間予測信号４０２のみがアクティブになる。この場合、Ｅ１キャッシュ制御部２２５は起動しないため、タグクロック許可信号８０１はアクティブにならず、タグクロック８０２はキャッシュタグメモリ２３には供給されない。
【００９０】
図１２はキャッシュ空間へアクセスされる場合の各処理が実行されるタイミングを示す図である。図１２はレジスタＡ２０７の値が“０ｘ３ｆｆｆｆｆｆｆ０”であり、レジスタＢ２０９の値が“０ｘ００００１０００”である場合の各処理が実行されるタイミングを示す。
【００９１】
空間予測及びその予測結果に基づくメモリへのアクセスの制御は、実施の形態１と同様に行なわれる。図１２の場合、最終的に得られる空間予測はＳＲＡＭ空間とキャッシュ空間となり、ＳＲＡＭ空間予測信号４０２と、キャッシュ空間予測信号４０３とがアクティブになる。しかしながら、Ｅ１ステージにおいて、ＳＲＡＭ制御中断信号４１２が出力され、Ｅ１ＳＲＡＭ制御部２２４は中断される。Ｅ１キャッシュ制御部２２５は予測結果が正しいため処理を継続する。また、キャッシュ空間予測信号４０３にしたがってＥ１キャッシュ制御起動要求２２２、及びタグ起動要求２２７が出力されるため、Ｅ１キャッシュ制御部２２５はタグクロック許可信号８０１をクロック制御部８０３に供給し、クロック制御部８０３はタグクロック８０２をキャッシュタグメモリ２３へ供給する。
【００９２】
他方、最終的に得られる空間予測がＳＲＡＭ空間とキャッシュ空間とであって、アクセスアドレス２１２が属する正しいアドレス空間がＳＲＡＭ空間である場合、以下に示す動作が行なわれる。すなわち、最終的に得られる空間予測によって、ＳＲＡＭ空間予測信号４０２とキャッシュ空間予測信号４０３とがアクティブになり、Ｅ１ＳＲＡＭ制御部２２４により、図示されていないＳＲＡＭ用のクロック制御部は図示されていないＳＲＡＭクロックをＳＲＡＭに供給する。また、Ｅ１キャッシュ制御部２２５はタグクロック許可信号８０１をクロック制御部８０３に供給し、クロック制御部８０３はタグクロック８０２をキャッシュタグメモリ２３へ供給する。そして、正しいアドレス空間がＳＲＡＭ空間であるので、Ｅ１キャッシュ制御部２２５は、タグクロック停止信号をクロック制御部８０３に供給することにより、クロック制御部８０３がキャッシュタグメモリ２３へタグクロック８０２を供給することを停止させる。
【００９３】
一般的にクロック制御において、クロックの供給を制御する手段（ブロック）はクロックツリーの上位側に配置されることが多く、クロック供給信号を生成する手段（ブロック）はクロックツリーの下位側に配置されることが多い。そのためクロック供給信号は１サイクル中の早い時点で出力されることが望ましい。
【００９４】
Ｅ１ステージ空間判定部４０７により得られる、アクセスアドレス２１２に基づく空間判定結果を用いる場合、Ｅ１ステージにおいて、キャッシュへのアクセスのためにタグクロック許可信号８０１を生成するタイミングが遅くなり、全体のクロックサイクルの向上を図ることができない。
【００９５】
実施の形態２の情報処理装置は、空間予測部４０１によって得られる空間予測結果を利用することにより、タグクロック許可信号８０１を生成するためクロックサイクルを向上させることが可能となる。
【００９６】
（実施の形態３）
次に、実施の形態３の情報処理装置を説明する。
【００９７】
図１３に実施の形態３の情報処理装置の構成を示す。
【００９８】
実施の形態３の情報処理装置は空間予測を高速に行なう。
【００９９】
図１３の情報処理装置は、レジスタＡ２０７に値を書き込む際に、レジスタＡ２０７の値がメモリへアクセスするためのアクセスアドレスの生成に用いられた場合にどの空間に属するのかを示す判定結果を別の保持部に保持しておき、その判定結果をＤ２ステージでの空間予測時に用いる。
【０１００】
レジスタＡ書き込みデータ生成部１１１は、レジスタＡ２０７への書き込みデータであるレジスタＡ書き込みデータ１１２を生成する。レジスタＡ書き込みデータ１１２は、レジスタＡ２０７へ入力されるのみならず、それ自身がアドレスとして使用された場合にどのアドレス空間に属するのかを判定するデコード部１１３にも入力される。
【０１０１】
デコード部１１３によって得られる空間判定結果（デコード結果）１１４は、レジスタＡ２０７へのレジスタＡ書き込みデータ１１２の書き込みが行なわれた時と同じ時に、レジスタＡ空間属性保持部１１５に保持される。すなわち、レジスタＡ空間属性保持部１１５へのデータの入力は、レジスタＡ２０７へのデータの入力と同期する。
【０１０２】
デコード部１１３によって得られる空間判定結果であるレジスタＡ空間属性１１６は空間予測部４０１に入力され、空間予測部４０１は実施の形態１と同様の予測を行なう。この際、空間予測部４０１は、実施の形態１ではレジスタＡ出力２０８からレジスタＡ２０７の値が属する空間を判定するが、実施の形態３ではレジスタＡ空間属性保持部１１５からの情報であるレジスタＡ空間属性１１６を使用し、レジスタＡ２０７の値のビット２７のみを参照する。
【０１０３】
そのため、レジスタＡ２０７の複数のビットから空間を判定する処理が消滅し、空間予測部４０１は、実施の形態１の場合よりもより早く空間予測結果を得ることが可能となる。すなわち、情報処理装置全体のクロックサイクルを向上させることが可能となる。
【産業上の利用可能性】
【０１０４】
本発明は、クロック同期で動作する情報処理装置に有用であり、特にアドレス空間毎に異なる種別のアクセス方法を行なうメモリシステムを有するマイクロプロセッサ、デジタル信号処理回路、及びシステムＬＳＩ等に有用である。
【図面の簡単な説明】
【０１０５】
【図１】図１は、ＣＰＵのパイプライン動作を示す図である。
【図２】図２は、従来の情報処理装置の構成を示す図である。
【図３】図３は、キャッシュ空間にアクセスする場合の各処理のタイミングを示す図である。
【図４】図４は、実施の形態１の情報処理装置の構成図である。
【図５】図５は、アドレス空間を示す図である。
【図６】図６は、第一の空間予測のフローを示す図である。
【図７】図７は、第二の空間予測のフローを示す図である。
【図８】図８は、最終の空間予測のフローを示す図である。
【図９】図９は、実施の形態１における各処理のタイミングを示す図である。
【図１０】図１０は、実施の形態２の情報処理装置の構成図である。
【図１１】図１１は、実施の形態２におけるＳＲＡＭアクセス時の各処理のタイミングを示す図である。
【図１２】図１２は、実施の形態２におけるＣａｃｈｅアクセス時の各処理のタイミングを示す図である。
【図１３】図１３は、実施の形態３の情報処理装置の構成図である。
【図１４】図１４は、実施の形態３における各処理のタイミングを示す図である。
【符号の説明】
【０１０６】
１１  クロック
１２  Ｆ１ステージ
１３  Ｆ２ステージ
１４  Ｄ１ステージ
１５  Ｄ２ステージ
１６  Ｅ１ステージ
１７  Ｅ２ステージ
１８  Ｅ３ステージ
１１０  ｌｄ命令
２１  ＣＰＵ
２２  メモリ制御部
２３  キャッシュタグメモリ
２４  キャッシュデータメモリ
２０７  レジスタＡ
２０８  レジスタＡ出力
２０９  レジスタＢ
２１０  レジスタＢ出力
２１１  加算器
２１２  アクセスアドレス
２１３  メモリアクセス要求生成部
２１４  メモリアクセス要求
２１５  起動要求生成部
２１６  空間判定部
２１７  キャッシュ空間判定信号
２１８  ＳＲＡＭ空間判定信号
２１９  ＢＣＵ空間判定信号
２２０  Ｅ１メモリ制御起動要求
２２１  Ｅ１ＳＲＡＭ制御起動要求
２２２  Ｅ１キャッシュ制御起動要求
２２３  Ｅ１メインメモリ制御部
２２４  Ｅ１ＳＲＡＭ制御部
２２５  Ｅ１キャッシュ制御部
２２６  タグ制御部
２２７  タグ起動要求
２２８  タグ終了信号
２２９  ＳＲＡＭ終了信号
２３０  キャッシュ終了信号
２３１  Ｅ２メモリ制御起動要求
２３２  Ｅ２ＳＲＡＭ制御起動要求
２３３  Ｅ２キャッシュ制御起動要求
２３４  Ｅ２ＢＣＵ制御起動要求
２３５  Ｅ２メインメモリ制御部
２３６  Ｅ２キャッシュ制御部
２３７  キャッシュデータ制御部
２３８  Ｅ２ＳＲＡＭ制御部
２３９  Ｅ２ＢＣＵ制御部
３１  サイクル
３０２  ｔＲ
３０３  ｔａｄｄ
３０４  ｔｄｅｃ
４０１  空間予測部
４０２  ＳＲＡＭ空間予測信号
４０３  キャッシュ空間予測信号
４０４  ＢＣＵ空間予測信号
４０５  Ｅ１ステージアドレス保持部
４０６  Ｅ１ステージアドレス
４０７  Ｅ１ステージ空間判定部
４０８  Ｅ１ステージＳＲＡＭ空間判定信号
４０９  Ｅ１ステージキャッシュ空間判定信号
４１０  Ｅ１ステージＢＣＵ空間判定信号
４１１  キャッシュ制御中断信号
４１２  ＳＲＡＭ制御中断信号
４１３  起動要求生成部
４１４  Ｅ１メインメモリ制御部
８０１  タグクロック許可信号
８０２  タグクロック
８０３  クロック制御部
１１１  レジスタＡ書き込みデータ生成部
１１２  レジスタＡ書き込みデータ
１１３  デコード部
１１４  デコード結果
１１５  レジスタＡ空間属性保持部
１１６  レジスタＡ空間属性
７１  Ｅ１メインメモリ制御ステート
７２  Ｅ１キャッシュ制御ステート
７３  Ｅ１ＳＲＡＭ制御ステート
７４  Ｅ２メインメモリ制御ステート
７５  Ｅ２Ｃａｓｈｅ制御ステート
７６  Ｃａｓｈｅ制御ステート
７７  ＢＣＵ制御ステート
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2007004323.tif 000016
【図２】
2007004323.tif 000017
【図３】
2007004323.tif 000018
【図４】
2007004323.tif 000019
【図５】
2007004323.tif 000020
【図６】
2007004323.tif 000021
【図７】
2007004323.tif 000022
【図８】
2007004323.tif 000023
【図９】
2007004323.tif 000024
【図１０】
2007004323.tif 000025
【図１１】
2007004323.tif 000026
【図１２】
2007004323.tif 000027
【図１３】
2007004323.tif 000028
【図１４】
2007004323.tif 000029
【国際調査報告】
2007004323.tif 000030
2007004323.tif 000031