(57)【要約】【課題】キャッシュメモリに対するロード、ストアに関する命令を、チップ面積の増大を招くことなく同時に２つの実行を可能とする。【解決手段】キャッシュメモリ３、ラインバッファ４、ラインバッファを介してキャッシュメモリからデータを読み出す第１のロード命令、又はデータをキャッシュメモリに書き戻す第１のストア命令を実行する第１のロードストアユニット２ａ、第２のロード命令又は第２のストア命令を実行する第２のロードストアユニット２ｂ、第１のロード命令又は第１のストア命令を第１のロードストアユニットに、第２のロード命令又は第２のストア命令を第２のロードストアユニットに割り当てて実行させるディスパッチユニット１３とを備え、ディスパッチユニットは第１のロード命令又は第１のストア命令と、第２のロード命令又は第２のストア命令とが同一ラインをアクセスするものである場合同時実行させる。【選択図】図１
2008065370.tif 000002
【特許請求の範囲】
【請求項１】
複数ラインを有し、各ライン毎に２ｎ（ｎは１以上の整数）ビットのデータを格納するキャッシュメモリと、
前記キャッシュメモリからいずれか一ラインのデータを与えられて格納し、あるいは前記キャッシュメモリに２ｎビットのデータを転送して前記キャッシュメモリの一ラインに書き戻すラインバッファと、
前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第１のロード命令、又はデータを前記キャッシュメモリに書き戻す第１のストア命令を実行する第１のロードストアユニットと、
前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第２のロード命令、又はデータを前記キャッシュメモリに書き戻す第２のストア命令を実行する第２のロードストアユニットと、
前記第１のロード命令又は前記第１のストア命令を前記第１のロードストアユニットに割り当て、前記第２のロード命令又は前記第２のストア命令を前記第２のロードストアユニットに割り当てて実行させるディスパッチユニットと、
を備え、
前記ディスパッチユニットは、前記第１のロード命令又は前記第１のストア命令と、前記第２のロード命令又は前記第２のストア命令とが、前記キャッシュメモリにおける同一ラインをアクセスするものである場合に、前記第１のロードストアユニットと前記第２のロードストアユニットとに同時に実行させることを特徴とするスーパースカラープロセッサ。
【請求項２】
前記ディスパッチユニットは、
前記第１のロード命令又は前記第１のストア命令に含まれる第１のベースレジスタの番号と、前記第２のロード命令又は前記第２のストア命令に含まれる第２のベースレジスタの番号とが同一であり、かつレジスタの値がダブルワードアラインされており、かつ前記第１のロード命令又は前記第１のストア命令に含まれる第１のオフセットの（ｎ−２）ビット目以降の値と、前記第２のロード命令又は前記第２のストア命令に含まれる第２のオフセットの（ｎ−２）ビット目以降の値とが同一である場合に、前記第１のロードストアユニットと前記第２のロードストアユニットとに同時に実行させることを特徴とする請求項１記載のスーパースカラープロセッサ。
【請求項３】
前記キャッシュメモリは、前記ラインバッファがアクセスするための入出力ポートを１つ備えることを特徴とする請求項１又は２記載のスーパースカラープロセッサ。
【請求項４】
複数ラインを有し、各ライン毎に２ｎ（ｎは１以上の整数）ビットのデータを格納するキャッシュメモリと、
前記キャッシュメモリからいずれか一ラインのデータを与えられて格納し、あるいは前記キャッシュメモリに２ｎビットのデータを転送して前記キャッシュメモリの一ラインに書き戻すラインバッファと、
前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第１のロード命令、又はデータを前記キャッシュメモリに書き戻す第１のストア命令を実行する第１のロードストアユニットと、
前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第２のロード命令、又はデータを前記キャッシュメモリに書き戻す第２のストア命令を実行する第２のロードストアユニットと、
前記第１のロード命令又は前記第１のストア命令を前記第１のロードストアユニットに割り当て、前記第２のロード命令又は前記第２のストア命令を前記第２のロードストアユニットに割り当てて実行させるディスパッチユニットと、
を備えたスーパースカラープロセッサにおけるキャッシュメモリのアクセス方法であって、
前記ディスパッチユニットにより、前記第１のロード命令又は前記第１のストア命令と、前記第２のロード命令又は前記第２のストア命令とが、前記キャッシュメモリにおける同一ラインをアクセスするものである場合に、前記第１のロードストアユニットと前記第２のロードストアユニットとに同時に実行させることを特徴とするスーパースカラープロセッサにおけるキャッシュメモリのアクセス方法。
【請求項５】
前記第１のロード命令又は前記第１のストア命令に含まれる第１のベースレジスタの番号と、前記第２のロード命令又は前記第２のストア命令に含まれる第２のベースレジスタの番号とが同一であり、かつ
前記第１のロード命令又は前記第１のストア命令に含まれる第１のオフセットの（ｎ−２）ビット目以降の値と、前記第２のロード命令又は前記第２のストア命令に含まれる第２のオフセットの（ｎ−２）ビット目以降の値とが同一である場合に、前記第１のロードストアユニットと前記第２のロードストアユニットとに同時に実行させることを特徴とする請求項４記載のスーパースカラープロセッサにおけるキャッシュメモリのアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スーパースカラープロセッサ及びキャッシュメモリのアクセス方法に関するものである。
【背景技術】
【０００２】
従来の殆どのスーパースカラープロセッサでは、キャッシュメモリに対するロード、ストアに関する命令は、同時に１つしか実行することはできなかった。即ち、２つのロード命令、又は２つのストア命令、あるいは１つのロード命令及び１つのストア命令を同時に実行することができなかった。
【０００３】
また、２つの命令を同時に実行することができるプロセッサであっても、キャッシュメモリ側が２組の入出力ポート、即ちストア又はロード用の入出力ポート０を２つ有する必要があった。この場合には、チップ面積の増大や動作周波数の低下を招くこととなり、その結果コストが増加するという問題があった。
【０００４】
以下に、従来のスーパースカラープロセッサを開示した文献名を記載する。
【特許文献１】特開平９−１４６７７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、キャッシュメモリに対するロード、ストアに関する命令を同時に２つ実行することが可能であり、かつチップ面積の増大、動作周波数の低下を抑制することが可能なスーパースカラープロセッサ及びキャッシュメモリのアクセス方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様によるスーパースカラープロセッサは、
複数ラインを有し、各ライン毎に２ｎビットのデータを格納するキャッシュメモリと、前記キャッシュメモリからいずれか一ラインのデータを与えられて格納し、あるいは前記キャッシュメモリに２ｎビットのデータを転送して前記キャッシュメモリの一ラインに書き戻すラインバッファと、前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第１のロード命令、又はデータを前記キャッシュメモリに書き戻す第１のストア命令を実行する第１のロードストアユニットと、前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第２のロード命令、又はデータを前記キャッシュメモリに書き戻す第２のストア命令を実行する第２のロードストアユニットと、
前記第１のロード命令又は前記第１のストア命令を前記第１のロードストアユニットに割り当て、前記第２のロード命令又は前記第２のストア命令を前記第２のロードストアユニットに割り当てて実行させるディスパッチユニットとを備え、前記ディスパッチユニットは、前記第１のロード命令又は前記第１のストア命令と、前記第２のロード命令又は前記第２のストア命令とが、前記キャッシュメモリにおける同一ラインをアクセスするものである場合に、前記第１のロードストアユニットと前記第２のロードストアユニットとに同時に実行させることを特徴とする。
【０００７】
また本発明の一態様によるスーパースカラープロセッサにおけるキャッシュメモリのアクセス方法は、複数ラインを有し、各ライン毎に２ｎビットのデータを格納するキャッシュメモリと、前記キャッシュメモリからいずれか一ラインのデータを与えられて格納し、あるいは前記キャッシュメモリに２ｎビットのデータを転送して前記キャッシュメモリの一ラインに書き戻すラインバッファと、前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第１のロード命令、又はデータを前記キャッシュメモリに書き戻す第１のストア命令を実行する第１のロードストアユニットと、前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第２のロード命令、又はデータを前記キャッシュメモリに書き戻す第２のストア命令を実行する第２のロードストアユニットと、前記第１のロード命令又は前記第１のストア命令を前記第１のロードストアユニットに割り当て、前記第２のロード命令又は前記第２のストア命令を前記第２のロードストアユニットに割り当てて実行させるディスパッチユニットとを備えたスーパースカラープロセッサにおけるキャッシュメモリのアクセス方法であって、前記ディスパッチユニットにより、前記第１のロード命令又は前記第１のストア命令と、前記第２のロード命令又は前記第２のストア命令とが、前記キャッシュメモリにおける同一ラインをアクセスするものである場合に、前記第１のロードストアユニットと前記第２のロードストアユニットとに同時に実行させることを特徴とする。
【発明の効果】
【０００８】
本発明のスーパースカラープロセッサ及びキャッシュメモリのアクセス方法によれば、キャッシュメモリに対するロード、ストアに関する命令を同時に２つ実行することができるとともに、チップ面積の増大、動作周波数の低下を抑制することが可能である。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の一実施の形態によるスーパースカラープロセッサ及びキャッシュメモリのアクセス方法について図面を参照して説明する。
【００１０】
図１に、本実施の形態によるスーパースカラープロセッサの構成を示す。このプロセッサ１は、キャッシュメモリ３、ラインバッファ４、命令キャッシュメモリ１１、命令デコーダ１２、ディスパッチユニット１３、算術論理演算ユニット（Arithmetic and logical Unit、以下、ＡＬＵという）１４ａ、１４ｂ、ロードストアユニット（Load Store Unit、以下、ＬＳＵという）２ａ、２ｂ、浮動小数点数演算装置（Floating point number Processing Unit、以下、ＦＰＵという）１５、レジスタファイル１６を備える。
【００１１】
キャッシュメモリ３は、図示されていないメインメモリへのアクセス回数を減らすため、プロセッサ３内に設けられたより高速アクセスが可能なものである。そして、このキャッシュメモリ３は幅広く用いられているものと同様に、一つのアクセスポートを有するものとする。
【００１２】
ラインバッファ４は、キャッシュメモリ３におけるいずれか一つのラインのデータを保持する一時的なキャッシュに相当し、キャッシュメモリ３から４ダブルワード（１ダブルワードは６４ビット）、即ち２５６ビットの１ラインのデータを読み出して格納し、あるいは格納されたデータをキャッシュメモリ３の１ラインに書き戻す。
【００１３】
命令キャッシュメモリ１１は、実行すべき命令が格納されたメモリである
命令デコーダ１２は、命令キャッシュメモリ１１から読み出された命令のデコードを行う。
【００１４】
ディスパッチユニット１３は、命令デコーダ１２によりデコードされた命令を、ＡＬＵ１４ａ、１４ｂ、ＬＳＵ２ａ、２ｂ、ＦＰＵ１５のいずれかにそれぞれ割り振る。
【００１５】
ＡＬＵ１４ａ、１４ｂは、演算に関する命令を与えられて演算を実行するユニットである。
【００１６】
ＬＳＵ２ａ、２ｂは、ラインバッファ４を介して、キャッシュメモリ３からのデータの読み出し、あるいはデータをキャッシュメモリ３に格納するロード又はストア命令を実行するユニットである。ＬＳＵ２ａは、ロード命令（ＬＯＡＤ０）又はストア命令（ＳＴＯＲＥ０）を実行する。ＬＳＵ２ｂは、ロード命令（ＬＯＡＤ１）又はストア命令（ＳＴＯＲＥ１）を実行する。
【００１７】
ＦＰＵ１５は、実数演算に関する命令を与えられて実数演算のみを行う浮動小数点演算ユニットである。
【００１８】
レジスタファイル１６は、ＡＬＵ１４ａ、１４ｂが演算を実行する際に必要なデータの書き込みを行う。
【００１９】
ここで、ディスパッチユニット１３は、ＬＳＵ２ａにロード命令（ＬＯＡＤ０）又はストア命令（ＳＴＯＲＥ０）の命令、ＬＳＵ２ｂにロード命令（ＬＯＡＤ１）又はストア命令（ＳＴＯＲＥ１）を割り振る際に、後述する所定の条件を満たす場合には、ＬＳＵ２ａとＬＳＵ２ｂとに１つずつ与えた命令を同時に実行させるように割り振る。
【００２０】
即ち、ＬＳＵ２ａがロード命令（ＬＯＡＤ０）、ＬＳＵ２ｂがロード命令（ＬＯＡＤ１）を同時に行い、又はＬＳＵ２ａがストア命令（ＳＴＯＲＥ０）、ＬＳＵ２ｂがストア命令（ＳＴＯＲＥ１）を同時に行い、又はＬＳＵ２ａがロード命令（ＬＯＡＤ０）、ＬＳＵ２ｂがストア命令（ＳＴＯＲＥ１）を同時に行い、あるいはＬＳＵ２ａがストア命令（ＳＴＯＲＥ０）、ＬＳＵ２ｂがロード命令（ＬＯＡＤ１）を同時に行う。
【００２１】
ここで、ＬＳＵ２ａとＬＳＵ２ｂとが同時に命令を実行する所定の条件とは、以下のようである。
【００２２】
（条件）２つの命令が、キャッシュメモリ３における同一ラインに対するロード又はストア命令であること
この条件を満たしているか否かの判断は、ディスパッチユニット１３が行う。そこで、ディスパッチユニット１３が上記条件を判断することが可能なように、以下のように条件ａを満たし、かつ条件ｂを満たす場合に、上記条件を満たすものであるとする。
【００２３】
（条件ａ）２つの命令にそれぞれ含まれるベースレジスタ番号が同一であること
以下に、ロード命令の一例を示す。
ｌｄ  ＄９，０ｘｃ（＄８）
【００２４】
この命令は、アドレスのオフセット値を格納するベースレジスタ、ここでは番号８のレジスタに格納されている値に、オフセット値（１６進数のｃ）を加算して得られたアドレスに格納されているデータをメモリから読み出し、そのデータを番号９のレジスタに格納する、というものである。
【００２５】
さらに、ストア命令の一例を示す。
ｓｄ  ＄９，０ｘｃ（＄８）
【００２６】
この命令は、番号８のレジスタに格納されている値に、オフセット値（１６進数のｃ）を加算して得られたメモリのアドレスに、番号９のレジスタに格納されている値を格納する、というものである。
【００２７】
ＬＳＵ２ａに与えるロード命令（ＬＯＡＤ０）又はストア命令（ＳＴＯＲＥ０）と、ＬＳＵ２ｂに与えるロード命令（ＬＯＡＤ１）又はストア命令（ＳＴＯＲＥ１）とにおけるそれぞれのベースレジスタの番号が、先ず一致している必要がある。これは、以下の理由に基づくものである。
【００２８】
ディスパッチユニット１３は、各命令におけるベースレジスタの番号は認識できるが、ベースレジスタに格納されている値にオフセット値を加算してアドレスを求める演算は行わない。このアドレス演算は、ＬＳＵ２ａ、２ｂにおいて行われる。従って、ディスパッチユニット１３が判断する際に、ベースレジスタの番号が異なる場合には、キャッシュメモリ３において同一のラインにアクセスするものであることが保証されないことになる。そこで、上記条件ａを満たす必要がある。
【００２９】
（条件ｂ）２つの命令にそれぞれ含まれるオフセットの下位１ビット目から５ビット目（［４：０］）までは同一である必要はないが、６ビット目以上（オフセットが１６ビットの場合、［１５：５］）が同一であること
ロード命令、ストア命令におけるベースレジスタの値は、通常ダブルワードアラインされている。即ち、キャッシュメモリ３において、１バイト、即ちメモリセル８ビット毎に１つのアドレスが割り当てられている。このため、アドレスが８増加すると、８バイト、即ち６４ビットメモリセルが増加することになる。
【００３０】
よって、例えば０から７ビット目のメモリセルには０番のアドレス、８から１５ビット目までのメモリセルには１番のアドレス、１６から２３ビット目までのメモリセルには２番のアドレス、２４から３１ビット目までのメモリセルには３番のアドレス、…、２４８から２５５ビット目までのメモリセルには、３１番のアドレスが割り振られる。
【００３１】
即ち、キャッシュメモリ３における１ラインに含まれる０から２５５ビット目までのメモリセルには、８ビットずつ０番から３１番のアドレスが割り振られていることになる。
【００３２】
３１番目のアドレスは、二進数で「０００００００００００１１１１１」である。よって、０番目から３１番目までのアドレスが変化した場合には、１ビット目から５ビット目（［４：０］）までの間で変化するが、６ビット目以降（［１６：５］）は全て一致することになる。
【００３３】
従って、二つの命令において、ベースレジスタの番号が同一であり、かつオフセットの下位６ビット目以上（ここでは、［１５：５］）が同一であれば、この二つの命令はキャッシュメモリ３における同一ラインをアクセスするものであることが保証される。
【００３４】
そこで、ディスパッチユニット１３において、キャッシュメモリ３に対するロード又はストアに関する二つの命令が上記条件（条件ａ及び条件ｂ）を満たすと判断した場合に、同時に実行するようにＬＳＵ２ａ、２ｂにそれぞれ当該二つの命令を割り当てる。
【００３５】
ＬＳＵ２ａは、割り当てられたロード命令（ＬＯＡＤ０）又はストア命令（ＳＴＯＲＥ０）、ＬＳＵ２ｂは割り当てられたロード命令（ＬＯＡＤ１）又はストア命令（ＳＴＯＲＥ１）を同時に実行する。
【００３６】
このような本実施の形態によるスーパースカラープロセッサにおける動作について、以下に説明する。
【００３７】
先ず、命令キャッシュメモリ１１に格納されている命令が命令デコーダ１２に与えられ、デコードされる。
【００３８】
デコードされた命令がディスパッチユニット１３に与えられ、命令に応じてＡＬＵ１４ａ、１４ｂ、ＬＳＵ２ａ、２ｂ、ＦＰＵ１５に割り当てる。
【００３９】
ここで、ディスパッチユニット１３は、ＬＳＵ２ａに割り当てたロード命令（ＬＯＡＤ０）又はストア命令（ＳＴＯＲＥ０）と、ＬＳＵ２ｂに割り当てたロード命令（ＬＯＡＤ１）又はストア命令（ＳＴＯＲＥ１）との間に、上記条件ａ、ｂがともに成立するか否かを判断する。ともに成立する場合はＬＳＵ２ａ、２ｂに同時に実行するように命令を与え、少なくともいずれか一方が成立しない場合は同時実行なしで命令を与える。
【００４０】
キャッシュメモリ３の一ラインに含まれる０ビット目から２５５ビット目までの２５６ビットのデータが読み出され、ラインバッファ４に転送されて一旦格納される。
【００４１】
ＬＳＵ２ａは、ラインバッファ４に格納された２５６ビットのデータに対し、ロード命令（ＬＯＡＤ０）が与えられている場合であって、例えばダブルワード（６４ビット）アクセスの場合、０ビット目から６３ビット目のデータ、６４ビット目から１２７ビット目のデータ、１２８ビット目から１９１ビット目のデータ、１９２ビット目から２５５ビット目のデータのいずれか１つのデータを取り込む。ストア命令（ＳＴＯＲＥ０）が与えられている場合は、６４ビットのいずれかのデータを、キャッシュメモリ３に書き込むべきデータに更新し、ラインバッファ４にキャッシュメモリ３に書き戻させる。但し、ロード命令がダブルワードアクセスとは限らず、バイトアクセス、ハーフワードアクセス、ワードアクセスの場合もある。
【００４２】
同様にＬＳＵ２ｂは、ラインバッファ４に格納された２５６ビットのデータに対し、ロード命令（ＬＯＡＤ１）が与えられている場合は、６４ビットのいずれかのデータを取り込む。ストア命令（ＳＴＯＲＥ１）が与えられている場合は、６４ビットのいずれかのデータを更新し、ラインバッファ４にキャッシュメモリ３に書き戻させる。
【００４３】
ここで、ＬＳＵ２ａがロード命令（ＬＯＡＤ０）又はストア命令（ＳＴＯＲＥ０）、ＬＳＵ２ｂがロード命令（ＬＯＡＤ１）又はストア命令（ＳＴＯＲＥ１）を実行する際のラインバッファ４とＬＳＵ２ａ、２ｂとの間の接続構成、及びラインバッファ４とキャッシュメモリ３との接続構成、並びに命令を実行するときの動作について図２を参照して説明する。
【００４４】
キャッシュメモリ３は通常のキャッシュメモリと同様に、単一の入出力ポートＰＯＲＴ０を有し、この入出力ポートＰＯＲＴ０を介してラインバッファ４と接続されている。
【００４５】
ＬＳＵ２ａがストア命令（ＳＴＯＲＥ０）を実行し、同時にＬＳＵ２ｂがキャッシュメモリ３における同一ラインに対するストア命令（ＳＴＯＲＥ１）を実行する場合を考える。先ず、キャッシュメモリ３の一ラインにおける２５６ビットのデータがラインバッファ４に転送されて格納される。
【００４６】
ＬＳＵ２ａ、２ｂがそれぞれ、重複しない６４ビットのデータ、例えばＬＳＵ２ａが０〜６３ビットのデータ、ＬＳＵ２ｂが６４〜１２７ビットのデータを、ラインバッファ４に与えて新しいデータに更新する。
【００４７】
ラインバッファ４は、この更新された０〜６３ビットのデータ、６４〜１２７のデータを含む２５６ビットのデータをキャッシュメモリ３に転送し、該当するラインに書き戻すことで、ストア命令が完了する。
【００４８】
また、ＬＳＵ２ａがロード命令（ＬＯＡＤ０）を実行し、同時にＬＳＵ２ｂがキャッシュメモリ３における同一ラインに対するロード命令（ＬＯＡＤ１）を実行する場合を考える。先ず、キャッシュメモリ３の一ラインにおける２５６ビットのデータがラインバッファ４に転送されて格納される。
【００４９】
ＬＳＵ２ａ、２ｂがそれぞれラインバッファ４から、重複しない６４ビットのデータ、例えばＬＳＵ２ａが０〜６３ビットのデータ、ＬＳＵ２ｂが１２８〜１９１ビットのデータを、マルチプレクサＭＵＸを介して取り込むことで、ロード命令が完了する。
【００５０】
あるいは、ＬＳＵ２ａがストア命令（ＳＴＯＲＥ０）を実行し、同時にＬＳＵ２ｂがキャッシュメモリ３における同一ラインに対するロード命令（ＬＯＡＤ１）を実行する場合を考える。先ず、キャッシュメモリ３の一ラインにおける２５６ビットのデータがラインバッファ４に転送されて格納される。
【００５１】
ＬＳＵ２ａが例えば０〜６３ビットのデータを、ＯＲ回路ＯＲを介してラインバッファ４に与えて新しいデータに更新する。一方、ＬＳＵ２ｂは、これと重複しない例えば１９２〜２５５ビットのデータをラインバッファ４から取り込むことで、ロード命令（ＬＯＡＤ０）が完了する。
【００５２】
ラインバッファ４は、更新された０〜６３ビットのデータを含む２５６ビットのデータをキャッシュメモリ３に転送し、該当するラインに書き戻すことで、ストア命令（ＳＴＯＲＥ１）が完了する。
【００５３】
尚、ＬＳＵ２ａ、ＬＳＵ２ｂにそれぞれ与えられた二つの命令で用いるレジスタに依存関係が存在する場合には、通常のプロセッサと同様に必然的に同時に実行することはできない。
【００５４】
即ち、２つの命令において、レジスタに関してシーケンシャルな処理が必要な場合は、同時処理は不可能である。
【００５５】
例えば、一方の命令が、９番目のレジスタのデータと８番目のレジスタのデータとを加算した値を１０番目のレジスタに格納するものであり、他方の命令が、５番目のレジスタのデータと６番目のレジスタのデータとを加算した値を９番目のレジスタに格納するものであるとする。
【００５６】
このような場合には、他方の命令を先に実行して９番目のレジスタのデータを更新した後に、一方の命令を実行して９番目のレジスタのデータを用いる必要があるので、同時実行は不可能となる。よって、このような場合には従来と同様に同時実行は行われない。
【００５７】
上述のように、本実施の形態によるスーパースカラープロセッサは、一つのアクセスポートを有するキャッシュメモリ３を用いながら、ラインバッファ４を備えた点、さらにディスパッチユニット１３において、ＬＳＵ２ａ、２ｂがそれぞれの命令を同時に実行可能であるか否かを上記条件ａ、ｂに従って判断するものである。
【００５８】
一方、比較例によるスーパースカラープロセッサの構成を図３に示す。上記実施の形態と異なり、キャッシュメモリ１０３が２つの入出力ポートＰＯＲＴ０とＰＯＲＴ１とを有する。ロード命令（ＬＯＡＤ０）又はストア命令（ＳＴＯＲＥ０）を実行するＬＳＵ１０２ａとキャッシュメモリ１０３とが入出力ポートＰＯＲＴ０を介して接続され、ロード命令（ＬＯＡＤ１）又はストア命令（ＳＴＯＲＥ１）を実行するＬＳＵ２ｂとキャッシュメモリ１０３とが入出力ポートＰＯＲＴ１を介して接続されている。
【００５９】
この場合は、キャッシュメモリ１０３が二つの入出力ポートＰＯＲＴ０、ＰＯＲＴ１を備えるためにチップ面積が増大し、また動作周波数の低下を招いて、コスト増加を招くこととなる。
【００６０】
これに対し、上記実施の形態のスーパースカラー及びキャッシュメモリのアクセス方法によれば、同時実行するロード、ストア命令に所定の条件を定め、この条件を満たす命令に対しては同時に実行するように制御することで、チップ面積の増大を防止するとともに、動作周波数の低下を抑制し、コスト低減を実現することができる。
【００６１】
上述した実施の形態はいずれも一例であって、本発明を限定するものではなく、本発明の技術的範囲内において様々に変形することが可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施の形態によるスーパースカラープロセッサの構成を示すブロック図。
【図２】同スーパースカラープロセッサにおけるラインバッファとＬＳＵとの間の接続構成、ラインバッファとキャッシュメモリとの接続構成、並びに命令を実行するときの動作を示す説明図。
【図３】参考例によるスーパースカラープロセッサの構成を示すブロック図。
【符号の説明】
【００６３】
１  プロセッサ
２ａ、２ｂ  ＬＳＵ
３  キャッシュメモリ
４  ラインバッファ
１１  命令キャッシュ
１２  命令デコード
１３  ディスパッチユニット
【図１】
2008065370.tif 000003
【図２】
2008065370.tif 000004
【図３】
2008065370.tif 000005