JP2008065370A - スーパースカラープロセッサ及びキャッシュメモリのアクセス方法 - Google Patents
スーパースカラープロセッサ及びキャッシュメモリのアクセス方法 Download PDFInfo
- Publication number
- JP2008065370A JP2008065370A JP2006239201A JP2006239201A JP2008065370A JP 2008065370 A JP2008065370 A JP 2008065370A JP 2006239201 A JP2006239201 A JP 2006239201A JP 2006239201 A JP2006239201 A JP 2006239201A JP 2008065370 A JP2008065370 A JP 2008065370A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- load
- store
- cache memory
- unit
- 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】キャッシュメモリに対するロード、ストアに関する命令を、チップ面積の増大を招くことなく同時に2つの実行を可能とする。
【解決手段】キャッシュメモリ3、ラインバッファ4、ラインバッファを介してキャッシュメモリからデータを読み出す第1のロード命令、又はデータをキャッシュメモリに書き戻す第1のストア命令を実行する第1のロードストアユニット2a、第2のロード命令又は第2のストア命令を実行する第2のロードストアユニット2b、第1のロード命令又は第1のストア命令を第1のロードストアユニットに、第2のロード命令又は第2のストア命令を第2のロードストアユニットに割り当てて実行させるディスパッチユニット13とを備え、ディスパッチユニットは第1のロード命令又は第1のストア命令と、第2のロード命令又は第2のストア命令とが同一ラインをアクセスするものである場合同時実行させる。
【選択図】図1
【解決手段】キャッシュメモリ3、ラインバッファ4、ラインバッファを介してキャッシュメモリからデータを読み出す第1のロード命令、又はデータをキャッシュメモリに書き戻す第1のストア命令を実行する第1のロードストアユニット2a、第2のロード命令又は第2のストア命令を実行する第2のロードストアユニット2b、第1のロード命令又は第1のストア命令を第1のロードストアユニットに、第2のロード命令又は第2のストア命令を第2のロードストアユニットに割り当てて実行させるディスパッチユニット13とを備え、ディスパッチユニットは第1のロード命令又は第1のストア命令と、第2のロード命令又は第2のストア命令とが同一ラインをアクセスするものである場合同時実行させる。
【選択図】図1
Description
本発明は、スーパースカラープロセッサ及びキャッシュメモリのアクセス方法に関するものである。
従来の殆どのスーパースカラープロセッサでは、キャッシュメモリに対するロード、ストアに関する命令は、同時に1つしか実行することはできなかった。即ち、2つのロード命令、又は2つのストア命令、あるいは1つのロード命令及び1つのストア命令を同時に実行することができなかった。
また、2つの命令を同時に実行することができるプロセッサであっても、キャッシュメモリ側が2組の入出力ポート、即ちストア又はロード用の入出力ポート0を2つ有する必要があった。この場合には、チップ面積の増大や動作周波数の低下を招くこととなり、その結果コストが増加するという問題があった。
以下に、従来のスーパースカラープロセッサを開示した文献名を記載する。
特開平9−146770号公報
本発明は、キャッシュメモリに対するロード、ストアに関する命令を同時に2つ実行することが可能であり、かつチップ面積の増大、動作周波数の低下を抑制することが可能なスーパースカラープロセッサ及びキャッシュメモリのアクセス方法を提供することを目的とする。
本発明の一態様によるスーパースカラープロセッサは、
複数ラインを有し、各ライン毎に2nビットのデータを格納するキャッシュメモリと、前記キャッシュメモリからいずれか一ラインのデータを与えられて格納し、あるいは前記キャッシュメモリに2nビットのデータを転送して前記キャッシュメモリの一ラインに書き戻すラインバッファと、前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第1のロード命令、又はデータを前記キャッシュメモリに書き戻す第1のストア命令を実行する第1のロードストアユニットと、前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第2のロード命令、又はデータを前記キャッシュメモリに書き戻す第2のストア命令を実行する第2のロードストアユニットと、
前記第1のロード命令又は前記第1のストア命令を前記第1のロードストアユニットに割り当て、前記第2のロード命令又は前記第2のストア命令を前記第2のロードストアユニットに割り当てて実行させるディスパッチユニットとを備え、前記ディスパッチユニットは、前記第1のロード命令又は前記第1のストア命令と、前記第2のロード命令又は前記第2のストア命令とが、前記キャッシュメモリにおける同一ラインをアクセスするものである場合に、前記第1のロードストアユニットと前記第2のロードストアユニットとに同時に実行させることを特徴とする。
複数ラインを有し、各ライン毎に2nビットのデータを格納するキャッシュメモリと、前記キャッシュメモリからいずれか一ラインのデータを与えられて格納し、あるいは前記キャッシュメモリに2nビットのデータを転送して前記キャッシュメモリの一ラインに書き戻すラインバッファと、前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第1のロード命令、又はデータを前記キャッシュメモリに書き戻す第1のストア命令を実行する第1のロードストアユニットと、前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第2のロード命令、又はデータを前記キャッシュメモリに書き戻す第2のストア命令を実行する第2のロードストアユニットと、
前記第1のロード命令又は前記第1のストア命令を前記第1のロードストアユニットに割り当て、前記第2のロード命令又は前記第2のストア命令を前記第2のロードストアユニットに割り当てて実行させるディスパッチユニットとを備え、前記ディスパッチユニットは、前記第1のロード命令又は前記第1のストア命令と、前記第2のロード命令又は前記第2のストア命令とが、前記キャッシュメモリにおける同一ラインをアクセスするものである場合に、前記第1のロードストアユニットと前記第2のロードストアユニットとに同時に実行させることを特徴とする。
また本発明の一態様によるスーパースカラープロセッサにおけるキャッシュメモリのアクセス方法は、複数ラインを有し、各ライン毎に2nビットのデータを格納するキャッシュメモリと、前記キャッシュメモリからいずれか一ラインのデータを与えられて格納し、あるいは前記キャッシュメモリに2nビットのデータを転送して前記キャッシュメモリの一ラインに書き戻すラインバッファと、前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第1のロード命令、又はデータを前記キャッシュメモリに書き戻す第1のストア命令を実行する第1のロードストアユニットと、前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第2のロード命令、又はデータを前記キャッシュメモリに書き戻す第2のストア命令を実行する第2のロードストアユニットと、前記第1のロード命令又は前記第1のストア命令を前記第1のロードストアユニットに割り当て、前記第2のロード命令又は前記第2のストア命令を前記第2のロードストアユニットに割り当てて実行させるディスパッチユニットとを備えたスーパースカラープロセッサにおけるキャッシュメモリのアクセス方法であって、前記ディスパッチユニットにより、前記第1のロード命令又は前記第1のストア命令と、前記第2のロード命令又は前記第2のストア命令とが、前記キャッシュメモリにおける同一ラインをアクセスするものである場合に、前記第1のロードストアユニットと前記第2のロードストアユニットとに同時に実行させることを特徴とする。
本発明のスーパースカラープロセッサ及びキャッシュメモリのアクセス方法によれば、キャッシュメモリに対するロード、ストアに関する命令を同時に2つ実行することができるとともに、チップ面積の増大、動作周波数の低下を抑制することが可能である。
以下、本発明の一実施の形態によるスーパースカラープロセッサ及びキャッシュメモリのアクセス方法について図面を参照して説明する。
図1に、本実施の形態によるスーパースカラープロセッサの構成を示す。このプロセッサ1は、キャッシュメモリ3、ラインバッファ4、命令キャッシュメモリ11、命令デコーダ12、ディスパッチユニット13、算術論理演算ユニット(Arithmetic and logical Unit、以下、ALUという)14a、14b、ロードストアユニット(Load Store Unit、以下、LSUという)2a、2b、浮動小数点数演算装置(Floating point number Processing Unit、以下、FPUという)15、レジスタファイル16を備える。
キャッシュメモリ3は、図示されていないメインメモリへのアクセス回数を減らすため、プロセッサ3内に設けられたより高速アクセスが可能なものである。そして、このキャッシュメモリ3は幅広く用いられているものと同様に、一つのアクセスポートを有するものとする。
ラインバッファ4は、キャッシュメモリ3におけるいずれか一つのラインのデータを保持する一時的なキャッシュに相当し、キャッシュメモリ3から4ダブルワード(1ダブルワードは64ビット)、即ち256ビットの1ラインのデータを読み出して格納し、あるいは格納されたデータをキャッシュメモリ3の1ラインに書き戻す。
命令キャッシュメモリ11は、実行すべき命令が格納されたメモリである
命令デコーダ12は、命令キャッシュメモリ11から読み出された命令のデコードを行う。
命令デコーダ12は、命令キャッシュメモリ11から読み出された命令のデコードを行う。
ディスパッチユニット13は、命令デコーダ12によりデコードされた命令を、ALU14a、14b、LSU2a、2b、FPU15のいずれかにそれぞれ割り振る。
ALU14a、14bは、演算に関する命令を与えられて演算を実行するユニットである。
LSU2a、2bは、ラインバッファ4を介して、キャッシュメモリ3からのデータの読み出し、あるいはデータをキャッシュメモリ3に格納するロード又はストア命令を実行するユニットである。LSU2aは、ロード命令(LOAD0)又はストア命令(STORE0)を実行する。LSU2bは、ロード命令(LOAD1)又はストア命令(STORE1)を実行する。
FPU15は、実数演算に関する命令を与えられて実数演算のみを行う浮動小数点演算ユニットである。
レジスタファイル16は、ALU14a、14bが演算を実行する際に必要なデータの書き込みを行う。
ここで、ディスパッチユニット13は、LSU2aにロード命令(LOAD0)又はストア命令(STORE0)の命令、LSU2bにロード命令(LOAD1)又はストア命令(STORE1)を割り振る際に、後述する所定の条件を満たす場合には、LSU2aとLSU2bとに1つずつ与えた命令を同時に実行させるように割り振る。
即ち、LSU2aがロード命令(LOAD0)、LSU2bがロード命令(LOAD1)を同時に行い、又はLSU2aがストア命令(STORE0)、LSU2bがストア命令(STORE1)を同時に行い、又はLSU2aがロード命令(LOAD0)、LSU2bがストア命令(STORE1)を同時に行い、あるいはLSU2aがストア命令(STORE0)、LSU2bがロード命令(LOAD1)を同時に行う。
ここで、LSU2aとLSU2bとが同時に命令を実行する所定の条件とは、以下のようである。
(条件)2つの命令が、キャッシュメモリ3における同一ラインに対するロード又はストア命令であること
この条件を満たしているか否かの判断は、ディスパッチユニット13が行う。そこで、ディスパッチユニット13が上記条件を判断することが可能なように、以下のように条件aを満たし、かつ条件bを満たす場合に、上記条件を満たすものであるとする。
この条件を満たしているか否かの判断は、ディスパッチユニット13が行う。そこで、ディスパッチユニット13が上記条件を判断することが可能なように、以下のように条件aを満たし、かつ条件bを満たす場合に、上記条件を満たすものであるとする。
(条件a)2つの命令にそれぞれ含まれるベースレジスタ番号が同一であること
以下に、ロード命令の一例を示す。
ld $9,0xc($8)
以下に、ロード命令の一例を示す。
ld $9,0xc($8)
この命令は、アドレスのオフセット値を格納するベースレジスタ、ここでは番号8のレジスタに格納されている値に、オフセット値(16進数のc)を加算して得られたアドレスに格納されているデータをメモリから読み出し、そのデータを番号9のレジスタに格納する、というものである。
さらに、ストア命令の一例を示す。
sd $9,0xc($8)
sd $9,0xc($8)
この命令は、番号8のレジスタに格納されている値に、オフセット値(16進数のc)を加算して得られたメモリのアドレスに、番号9のレジスタに格納されている値を格納する、というものである。
LSU2aに与えるロード命令(LOAD0)又はストア命令(STORE0)と、LSU2bに与えるロード命令(LOAD1)又はストア命令(STORE1)とにおけるそれぞれのベースレジスタの番号が、先ず一致している必要がある。これは、以下の理由に基づくものである。
ディスパッチユニット13は、各命令におけるベースレジスタの番号は認識できるが、ベースレジスタに格納されている値にオフセット値を加算してアドレスを求める演算は行わない。このアドレス演算は、LSU2a、2bにおいて行われる。従って、ディスパッチユニット13が判断する際に、ベースレジスタの番号が異なる場合には、キャッシュメモリ3において同一のラインにアクセスするものであることが保証されないことになる。そこで、上記条件aを満たす必要がある。
(条件b)2つの命令にそれぞれ含まれるオフセットの下位1ビット目から5ビット目([4:0])までは同一である必要はないが、6ビット目以上(オフセットが16ビットの場合、[15:5])が同一であること
ロード命令、ストア命令におけるベースレジスタの値は、通常ダブルワードアラインされている。即ち、キャッシュメモリ3において、1バイト、即ちメモリセル8ビット毎に1つのアドレスが割り当てられている。このため、アドレスが8増加すると、8バイト、即ち64ビットメモリセルが増加することになる。
ロード命令、ストア命令におけるベースレジスタの値は、通常ダブルワードアラインされている。即ち、キャッシュメモリ3において、1バイト、即ちメモリセル8ビット毎に1つのアドレスが割り当てられている。このため、アドレスが8増加すると、8バイト、即ち64ビットメモリセルが増加することになる。
よって、例えば0から7ビット目のメモリセルには0番のアドレス、8から15ビット目までのメモリセルには1番のアドレス、16から23ビット目までのメモリセルには2番のアドレス、24から31ビット目までのメモリセルには3番のアドレス、…、248から255ビット目までのメモリセルには、31番のアドレスが割り振られる。
即ち、キャッシュメモリ3における1ラインに含まれる0から255ビット目までのメモリセルには、8ビットずつ0番から31番のアドレスが割り振られていることになる。
31番目のアドレスは、二進数で「0000000000011111」である。よって、0番目から31番目までのアドレスが変化した場合には、1ビット目から5ビット目([4:0])までの間で変化するが、6ビット目以降([16:5])は全て一致することになる。
従って、二つの命令において、ベースレジスタの番号が同一であり、かつオフセットの下位6ビット目以上(ここでは、[15:5])が同一であれば、この二つの命令はキャッシュメモリ3における同一ラインをアクセスするものであることが保証される。
そこで、ディスパッチユニット13において、キャッシュメモリ3に対するロード又はストアに関する二つの命令が上記条件(条件a及び条件b)を満たすと判断した場合に、同時に実行するようにLSU2a、2bにそれぞれ当該二つの命令を割り当てる。
LSU2aは、割り当てられたロード命令(LOAD0)又はストア命令(STORE0)、LSU2bは割り当てられたロード命令(LOAD1)又はストア命令(STORE1)を同時に実行する。
このような本実施の形態によるスーパースカラープロセッサにおける動作について、以下に説明する。
先ず、命令キャッシュメモリ11に格納されている命令が命令デコーダ12に与えられ、デコードされる。
デコードされた命令がディスパッチユニット13に与えられ、命令に応じてALU14a、14b、LSU2a、2b、FPU15に割り当てる。
ここで、ディスパッチユニット13は、LSU2aに割り当てたロード命令(LOAD0)又はストア命令(STORE0)と、LSU2bに割り当てたロード命令(LOAD1)又はストア命令(STORE1)との間に、上記条件a、bがともに成立するか否かを判断する。ともに成立する場合はLSU2a、2bに同時に実行するように命令を与え、少なくともいずれか一方が成立しない場合は同時実行なしで命令を与える。
キャッシュメモリ3の一ラインに含まれる0ビット目から255ビット目までの256ビットのデータが読み出され、ラインバッファ4に転送されて一旦格納される。
LSU2aは、ラインバッファ4に格納された256ビットのデータに対し、ロード命令(LOAD0)が与えられている場合であって、例えばダブルワード(64ビット)アクセスの場合、0ビット目から63ビット目のデータ、64ビット目から127ビット目のデータ、128ビット目から191ビット目のデータ、192ビット目から255ビット目のデータのいずれか1つのデータを取り込む。ストア命令(STORE0)が与えられている場合は、64ビットのいずれかのデータを、キャッシュメモリ3に書き込むべきデータに更新し、ラインバッファ4にキャッシュメモリ3に書き戻させる。但し、ロード命令がダブルワードアクセスとは限らず、バイトアクセス、ハーフワードアクセス、ワードアクセスの場合もある。
同様にLSU2bは、ラインバッファ4に格納された256ビットのデータに対し、ロード命令(LOAD1)が与えられている場合は、64ビットのいずれかのデータを取り込む。ストア命令(STORE1)が与えられている場合は、64ビットのいずれかのデータを更新し、ラインバッファ4にキャッシュメモリ3に書き戻させる。
ここで、LSU2aがロード命令(LOAD0)又はストア命令(STORE0)、LSU2bがロード命令(LOAD1)又はストア命令(STORE1)を実行する際のラインバッファ4とLSU2a、2bとの間の接続構成、及びラインバッファ4とキャッシュメモリ3との接続構成、並びに命令を実行するときの動作について図2を参照して説明する。
キャッシュメモリ3は通常のキャッシュメモリと同様に、単一の入出力ポートPORT0を有し、この入出力ポートPORT0を介してラインバッファ4と接続されている。
LSU2aがストア命令(STORE0)を実行し、同時にLSU2bがキャッシュメモリ3における同一ラインに対するストア命令(STORE1)を実行する場合を考える。先ず、キャッシュメモリ3の一ラインにおける256ビットのデータがラインバッファ4に転送されて格納される。
LSU2a、2bがそれぞれ、重複しない64ビットのデータ、例えばLSU2aが0〜63ビットのデータ、LSU2bが64〜127ビットのデータを、ラインバッファ4に与えて新しいデータに更新する。
ラインバッファ4は、この更新された0〜63ビットのデータ、64〜127のデータを含む256ビットのデータをキャッシュメモリ3に転送し、該当するラインに書き戻すことで、ストア命令が完了する。
また、LSU2aがロード命令(LOAD0)を実行し、同時にLSU2bがキャッシュメモリ3における同一ラインに対するロード命令(LOAD1)を実行する場合を考える。先ず、キャッシュメモリ3の一ラインにおける256ビットのデータがラインバッファ4に転送されて格納される。
LSU2a、2bがそれぞれラインバッファ4から、重複しない64ビットのデータ、例えばLSU2aが0〜63ビットのデータ、LSU2bが128〜191ビットのデータを、マルチプレクサMUXを介して取り込むことで、ロード命令が完了する。
あるいは、LSU2aがストア命令(STORE0)を実行し、同時にLSU2bがキャッシュメモリ3における同一ラインに対するロード命令(LOAD1)を実行する場合を考える。先ず、キャッシュメモリ3の一ラインにおける256ビットのデータがラインバッファ4に転送されて格納される。
LSU2aが例えば0〜63ビットのデータを、OR回路ORを介してラインバッファ4に与えて新しいデータに更新する。一方、LSU2bは、これと重複しない例えば192〜255ビットのデータをラインバッファ4から取り込むことで、ロード命令(LOAD0)が完了する。
ラインバッファ4は、更新された0〜63ビットのデータを含む256ビットのデータをキャッシュメモリ3に転送し、該当するラインに書き戻すことで、ストア命令(STORE1)が完了する。
尚、LSU2a、LSU2bにそれぞれ与えられた二つの命令で用いるレジスタに依存関係が存在する場合には、通常のプロセッサと同様に必然的に同時に実行することはできない。
即ち、2つの命令において、レジスタに関してシーケンシャルな処理が必要な場合は、同時処理は不可能である。
例えば、一方の命令が、9番目のレジスタのデータと8番目のレジスタのデータとを加算した値を10番目のレジスタに格納するものであり、他方の命令が、5番目のレジスタのデータと6番目のレジスタのデータとを加算した値を9番目のレジスタに格納するものであるとする。
このような場合には、他方の命令を先に実行して9番目のレジスタのデータを更新した後に、一方の命令を実行して9番目のレジスタのデータを用いる必要があるので、同時実行は不可能となる。よって、このような場合には従来と同様に同時実行は行われない。
上述のように、本実施の形態によるスーパースカラープロセッサは、一つのアクセスポートを有するキャッシュメモリ3を用いながら、ラインバッファ4を備えた点、さらにディスパッチユニット13において、LSU2a、2bがそれぞれの命令を同時に実行可能であるか否かを上記条件a、bに従って判断するものである。
一方、比較例によるスーパースカラープロセッサの構成を図3に示す。上記実施の形態と異なり、キャッシュメモリ103が2つの入出力ポートPORT0とPORT1とを有する。ロード命令(LOAD0)又はストア命令(STORE0)を実行するLSU102aとキャッシュメモリ103とが入出力ポートPORT0を介して接続され、ロード命令(LOAD1)又はストア命令(STORE1)を実行するLSU2bとキャッシュメモリ103とが入出力ポートPORT1を介して接続されている。
この場合は、キャッシュメモリ103が二つの入出力ポートPORT0、PORT1を備えるためにチップ面積が増大し、また動作周波数の低下を招いて、コスト増加を招くこととなる。
これに対し、上記実施の形態のスーパースカラー及びキャッシュメモリのアクセス方法によれば、同時実行するロード、ストア命令に所定の条件を定め、この条件を満たす命令に対しては同時に実行するように制御することで、チップ面積の増大を防止するとともに、動作周波数の低下を抑制し、コスト低減を実現することができる。
上述した実施の形態はいずれも一例であって、本発明を限定するものではなく、本発明の技術的範囲内において様々に変形することが可能である。
1 プロセッサ
2a、2b LSU
3 キャッシュメモリ
4 ラインバッファ
11 命令キャッシュ
12 命令デコード
13 ディスパッチユニット
2a、2b LSU
3 キャッシュメモリ
4 ラインバッファ
11 命令キャッシュ
12 命令デコード
13 ディスパッチユニット
Claims (5)
- 複数ラインを有し、各ライン毎に2n(nは1以上の整数)ビットのデータを格納するキャッシュメモリと、
前記キャッシュメモリからいずれか一ラインのデータを与えられて格納し、あるいは前記キャッシュメモリに2nビットのデータを転送して前記キャッシュメモリの一ラインに書き戻すラインバッファと、
前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第1のロード命令、又はデータを前記キャッシュメモリに書き戻す第1のストア命令を実行する第1のロードストアユニットと、
前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第2のロード命令、又はデータを前記キャッシュメモリに書き戻す第2のストア命令を実行する第2のロードストアユニットと、
前記第1のロード命令又は前記第1のストア命令を前記第1のロードストアユニットに割り当て、前記第2のロード命令又は前記第2のストア命令を前記第2のロードストアユニットに割り当てて実行させるディスパッチユニットと、
を備え、
前記ディスパッチユニットは、前記第1のロード命令又は前記第1のストア命令と、前記第2のロード命令又は前記第2のストア命令とが、前記キャッシュメモリにおける同一ラインをアクセスするものである場合に、前記第1のロードストアユニットと前記第2のロードストアユニットとに同時に実行させることを特徴とするスーパースカラープロセッサ。 - 前記ディスパッチユニットは、
前記第1のロード命令又は前記第1のストア命令に含まれる第1のベースレジスタの番号と、前記第2のロード命令又は前記第2のストア命令に含まれる第2のベースレジスタの番号とが同一であり、かつレジスタの値がダブルワードアラインされており、かつ前記第1のロード命令又は前記第1のストア命令に含まれる第1のオフセットの(n−2)ビット目以降の値と、前記第2のロード命令又は前記第2のストア命令に含まれる第2のオフセットの(n−2)ビット目以降の値とが同一である場合に、前記第1のロードストアユニットと前記第2のロードストアユニットとに同時に実行させることを特徴とする請求項1記載のスーパースカラープロセッサ。 - 前記キャッシュメモリは、前記ラインバッファがアクセスするための入出力ポートを1つ備えることを特徴とする請求項1又は2記載のスーパースカラープロセッサ。
- 複数ラインを有し、各ライン毎に2n(nは1以上の整数)ビットのデータを格納するキャッシュメモリと、
前記キャッシュメモリからいずれか一ラインのデータを与えられて格納し、あるいは前記キャッシュメモリに2nビットのデータを転送して前記キャッシュメモリの一ラインに書き戻すラインバッファと、
前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第1のロード命令、又はデータを前記キャッシュメモリに書き戻す第1のストア命令を実行する第1のロードストアユニットと、
前記ラインバッファを介して、前記キャッシュメモリからデータを読み出す第2のロード命令、又はデータを前記キャッシュメモリに書き戻す第2のストア命令を実行する第2のロードストアユニットと、
前記第1のロード命令又は前記第1のストア命令を前記第1のロードストアユニットに割り当て、前記第2のロード命令又は前記第2のストア命令を前記第2のロードストアユニットに割り当てて実行させるディスパッチユニットと、
を備えたスーパースカラープロセッサにおけるキャッシュメモリのアクセス方法であって、
前記ディスパッチユニットにより、前記第1のロード命令又は前記第1のストア命令と、前記第2のロード命令又は前記第2のストア命令とが、前記キャッシュメモリにおける同一ラインをアクセスするものである場合に、前記第1のロードストアユニットと前記第2のロードストアユニットとに同時に実行させることを特徴とするスーパースカラープロセッサにおけるキャッシュメモリのアクセス方法。 - 前記第1のロード命令又は前記第1のストア命令に含まれる第1のベースレジスタの番号と、前記第2のロード命令又は前記第2のストア命令に含まれる第2のベースレジスタの番号とが同一であり、かつ
前記第1のロード命令又は前記第1のストア命令に含まれる第1のオフセットの(n−2)ビット目以降の値と、前記第2のロード命令又は前記第2のストア命令に含まれる第2のオフセットの(n−2)ビット目以降の値とが同一である場合に、前記第1のロードストアユニットと前記第2のロードストアユニットとに同時に実行させることを特徴とする請求項4記載のスーパースカラープロセッサにおけるキャッシュメモリのアクセス方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006239201A JP2008065370A (ja) | 2006-09-04 | 2006-09-04 | スーパースカラープロセッサ及びキャッシュメモリのアクセス方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006239201A JP2008065370A (ja) | 2006-09-04 | 2006-09-04 | スーパースカラープロセッサ及びキャッシュメモリのアクセス方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008065370A true JP2008065370A (ja) | 2008-03-21 |
Family
ID=39288071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006239201A Pending JP2008065370A (ja) | 2006-09-04 | 2006-09-04 | スーパースカラープロセッサ及びキャッシュメモリのアクセス方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008065370A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11625331B2 (en) | 2020-07-08 | 2023-04-11 | Fujitsu Limited | Cache control apparatus and cache system control method |
-
2006
- 2006-09-04 JP JP2006239201A patent/JP2008065370A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11625331B2 (en) | 2020-07-08 | 2023-04-11 | Fujitsu Limited | Cache control apparatus and cache system control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7882332B1 (en) | Memory mapped register file | |
JP6143872B2 (ja) | 装置、方法、およびシステム | |
US7020763B2 (en) | Computer processing architecture having a scalable number of processing paths and pipelines | |
JP4829541B2 (ja) | マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置 | |
US11183225B2 (en) | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size | |
US6631439B2 (en) | VLIW computer processing architecture with on-chip dynamic RAM | |
US20200336421A1 (en) | Optimized function assignment in a multi-core processor | |
USRE40883E1 (en) | Methods and apparatus for dynamic instruction controlled reconfigurable register file with extended precision | |
US10127043B2 (en) | Implementing conflict-free instructions for concurrent operation on a processor | |
US10355975B2 (en) | Latency guaranteed network on chip | |
US10678541B2 (en) | Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions | |
JP2001256105A (ja) | 非整列循環アドレス指定を用いるマイクロプロセッサ | |
US9317285B2 (en) | Instruction set architecture mode dependent sub-size access of register with associated status indication | |
US20090037688A1 (en) | Communicating between Partitions in a Statically Partitioned Multiprocessing System | |
US8898436B2 (en) | Method and structure for solving the evil-twin problem | |
US7340591B1 (en) | Providing parallel operand functions using register file and extra path storage | |
US11451241B2 (en) | Setting values of portions of registers based on bit values | |
US10020037B2 (en) | Capacity register file | |
US5752271A (en) | Method and apparatus for using double precision addressable registers for single precision data | |
JP2008065370A (ja) | スーパースカラープロセッサ及びキャッシュメモリのアクセス方法 | |
JP2006527436A (ja) | データ処理装置及びレジスタ・ファイルとメモリとの間でデータ値を転送する方法 | |
US6304958B1 (en) | Microcomputer having data execution units mounted thereon | |
JP5068597B2 (ja) | プロセッサ及びプロセッサによるデータ読み出し方法 | |
US7085973B1 (en) | Testing address lines of a memory controller | |
US20020032849A1 (en) | VLIW computer processing architecture having the program counter stored in a register file register |