JPH06161893A - メモリアクセス方法およびシステム - Google Patents
メモリアクセス方法およびシステムInfo
- Publication number
- JPH06161893A JPH06161893A JP5206635A JP20663593A JPH06161893A JP H06161893 A JPH06161893 A JP H06161893A JP 5206635 A JP5206635 A JP 5206635A JP 20663593 A JP20663593 A JP 20663593A JP H06161893 A JPH06161893 A JP H06161893A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- memory
- line
- address
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 全体的なシステムパフォーマンスを改善す
る。 【構成】 キャッシュを有するデータ処理システムのパ
フォーマンスを改善する方法および装置。1キャッシュ
ラインからのデータはそのキャッシュ内の別のキャッシ
ュラインに容易にかつ直ちにコピーされる。好ましい実
施例では、このコピーキャッシュラインオペレーション
は、中央処理装置の命令セットのオペコードを用いて開
始される。従って、データ処理システム上でランするソ
フトウェアは、このCPU命令を実行することにより、
このキャッシュラインコピーを呼び出すことができる。
別の特徴は、再び、オペレーションを開始するCPU命
令を用いて、キャッシュラインをリネームする機能であ
る。よって、物理的なコピーを行わずに、キャッシュデ
ータが論理的にコピーされる。
る。 【構成】 キャッシュを有するデータ処理システムのパ
フォーマンスを改善する方法および装置。1キャッシュ
ラインからのデータはそのキャッシュ内の別のキャッシ
ュラインに容易にかつ直ちにコピーされる。好ましい実
施例では、このコピーキャッシュラインオペレーション
は、中央処理装置の命令セットのオペコードを用いて開
始される。従って、データ処理システム上でランするソ
フトウェアは、このCPU命令を実行することにより、
このキャッシュラインコピーを呼び出すことができる。
別の特徴は、再び、オペレーションを開始するCPU命
令を用いて、キャッシュラインをリネームする機能であ
る。よって、物理的なコピーを行わずに、キャッシュデ
ータが論理的にコピーされる。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータおよびデ
ータ処理システムの分野に関し、特に、メモリアクセス
および制御の分野に関する。特に、本発明は、データ処
理システムのキャッシュ操作機構に関する。
ータ処理システムの分野に関し、特に、メモリアクセス
および制御の分野に関する。特に、本発明は、データ処
理システムのキャッシュ操作機構に関する。
【0002】なお、本明細書の記述は本件出願の優先権
の基礎たる米国特許出願第07/950,351号(1
992年9月24日出願)の明細書の記載に基づくもの
であって、当該米国特許出願の番号を参照することによ
って当該米国特許出願の明細書の記載内容が本明細書の
一部分を構成するものとする。
の基礎たる米国特許出願第07/950,351号(1
992年9月24日出願)の明細書の記載に基づくもの
であって、当該米国特許出願の番号を参照することによ
って当該米国特許出願の明細書の記載内容が本明細書の
一部分を構成するものとする。
【0003】
【従来の技術】記憶階層を有するデータ処理するシステ
ムでは、プロセッサにより高速アクセスするため、主記
憶に記憶されているデータの選択されたラインがキャッ
シュと呼ばれる高速バッファにコピーされる。プロセッ
サによりデータが要求されるか、あるいはプロセッサが
実行命令を必要とすると、常に、システムはまずキャッ
シュを検査し、データまたは命令がそのキャッシュから
獲得できるか否かを判定する。判定した結果、キャッシ
ュから獲得できる場合は、キャッシュに存在するデータ
/命令は直ちにプロセッサに供給される。他方、キャッ
シュから獲得できない場合は、データ/命令は主記憶か
ら取り出されるが、その取り出しはキャッシュからより
も遅い。キャッシュディレクトリに直接アクセスするに
は、変換された絶対アドレスではなく、非変換論理アド
レスの一部が、各プロセッサ要求で、よく用いられる。
というのは、データ/命令の変換されたアドレスを待つ
ため、システムパフォーマンスが著しく低下するからで
ある。代表的なキャッシュシステムは米国特許第5,113,
508 号(発明者:Groves他,出願人:本出願と同一)に
記載されている。ここに、特許番号を付して本明細書の
一部とする。また、代表的なキャッシュシステムは"IBM
RISC SYSTEM/6000 Technology",First Edition, 1990,
IBM order number SA23-2619 に記載されている。ここ
に、マニュアル名を付して本明細書の一部とする。
ムでは、プロセッサにより高速アクセスするため、主記
憶に記憶されているデータの選択されたラインがキャッ
シュと呼ばれる高速バッファにコピーされる。プロセッ
サによりデータが要求されるか、あるいはプロセッサが
実行命令を必要とすると、常に、システムはまずキャッ
シュを検査し、データまたは命令がそのキャッシュから
獲得できるか否かを判定する。判定した結果、キャッシ
ュから獲得できる場合は、キャッシュに存在するデータ
/命令は直ちにプロセッサに供給される。他方、キャッ
シュから獲得できない場合は、データ/命令は主記憶か
ら取り出されるが、その取り出しはキャッシュからより
も遅い。キャッシュディレクトリに直接アクセスするに
は、変換された絶対アドレスではなく、非変換論理アド
レスの一部が、各プロセッサ要求で、よく用いられる。
というのは、データ/命令の変換されたアドレスを待つ
ため、システムパフォーマンスが著しく低下するからで
ある。代表的なキャッシュシステムは米国特許第5,113,
508 号(発明者:Groves他,出願人:本出願と同一)に
記載されている。ここに、特許番号を付して本明細書の
一部とする。また、代表的なキャッシュシステムは"IBM
RISC SYSTEM/6000 Technology",First Edition, 1990,
IBM order number SA23-2619 に記載されている。ここ
に、マニュアル名を付して本明細書の一部とする。
【0004】キャッシュシノニム(cache synonym) は非
変換論理アドレスを用いて生成され、そのキャッシュに
アクセスする。所定のデータ/命令項目はキャッシュ内
の複数記憶場所に存在することができ、2つ以上の名前
でアクセスすることができる。米国特許第 4,400,770号
および米国特許第 4,797,814号に記載されているよう
に、シノニムは次の場合に柔軟性を有する。すなわち、
複数プロセスが所定のキャッシュラインを異なる論理
(仮想)アドレスを用いてアクセスするか、任意の時点
で、論理(仮想)または物理(実)アドレスのいずれか
を用いてキャッシュラインにアクセスする機能が存在す
るときに、柔軟性を有する。米国特許第 4,400,770号お
よび米国特許第 4,797,814号の番号を付して本明細書の
一部とする。
変換論理アドレスを用いて生成され、そのキャッシュに
アクセスする。所定のデータ/命令項目はキャッシュ内
の複数記憶場所に存在することができ、2つ以上の名前
でアクセスすることができる。米国特許第 4,400,770号
および米国特許第 4,797,814号に記載されているよう
に、シノニムは次の場合に柔軟性を有する。すなわち、
複数プロセスが所定のキャッシュラインを異なる論理
(仮想)アドレスを用いてアクセスするか、任意の時点
で、論理(仮想)または物理(実)アドレスのいずれか
を用いてキャッシュラインにアクセスする機能が存在す
るときに、柔軟性を有する。米国特許第 4,400,770号お
よび米国特許第 4,797,814号の番号を付して本明細書の
一部とする。
【0005】このようなシノニムを用いた結果、種々の
スキーマ、例えば、Brenza, J.G.,IBM Technical Discl
osure Bulletin, June 1991, pp377-381に記載されてい
るスキーマは、キャッシュシノニムが異なるキャッシュ
ライン記憶場所に対するエントリがないように設計され
ている。
スキーマ、例えば、Brenza, J.G.,IBM Technical Discl
osure Bulletin, June 1991, pp377-381に記載されてい
るスキーマは、キャッシュシノニムが異なるキャッシュ
ライン記憶場所に対するエントリがないように設計され
ている。
【0006】しかし、その従来例では、キャッシュ内の
データを、キャッシュラインからキャッシュラインに、
効率的にコピーするか、あるいは移動する必要性または
要望を取り扱っていない。このような機能がある場合、
キャッシュ管理のシステムスループットが改善されるこ
とになる。すなわち、システムスループットは、主記憶
からの複数のロード/ストアを実行しデータをコピーす
るか、あるいは移動する要件を削除し、そのキャッシュ
に複製エントリを作成し、そのキャッシュと主記憶の間
に余分のトラフィックを生成することにより改善するこ
とができる。
データを、キャッシュラインからキャッシュラインに、
効率的にコピーするか、あるいは移動する必要性または
要望を取り扱っていない。このような機能がある場合、
キャッシュ管理のシステムスループットが改善されるこ
とになる。すなわち、システムスループットは、主記憶
からの複数のロード/ストアを実行しデータをコピーす
るか、あるいは移動する要件を削除し、そのキャッシュ
に複製エントリを作成し、そのキャッシュと主記憶の間
に余分のトラフィックを生成することにより改善するこ
とができる。
【0007】また、従来例では、キャッシュディレクト
リのキャッシュラインを容易にリネームする機能を取り
扱っていない。この機能がある場合は、データ項目を1
キャッシュラインごとに論理的にコピーするのが望まし
く、その上、1つのキャッシュラインを用いるだけで論
理的にコピーするのが望ましい。
リのキャッシュラインを容易にリネームする機能を取り
扱っていない。この機能がある場合は、データ項目を1
キャッシュラインごとに論理的にコピーするのが望まし
く、その上、1つのキャッシュラインを用いるだけで論
理的にコピーするのが望ましい。
【0008】従って、本発明の目的は、データ処理シス
テムの全体的なシステムパフォーマンスを改善すること
にある。
テムの全体的なシステムパフォーマンスを改善すること
にある。
【0009】本発明の他の目的は、データ処理システム
のメモリアクセスラテンシ(latency) を改善することに
ある。
のメモリアクセスラテンシ(latency) を改善することに
ある。
【0010】本発明のさらに他の目的は、データ処理シ
ステムのキャッシュを管理する改善された方法を提供す
ることにある。
ステムのキャッシュを管理する改善された方法を提供す
ることにある。
【0011】本発明のさらにまた他の目的は、データ処
理システムのキャッシュパフォーマンスを改善すること
にある。
理システムのキャッシュパフォーマンスを改善すること
にある。
【0012】本発明の他の目的は、主記憶からのリロー
ドを最小限にすることにある。
ドを最小限にすることにある。
【0013】本発明のさらに他の目的は、データ処理シ
ステムキャッシュのヒット率を向上させることにある。
ステムキャッシュのヒット率を向上させることにある。
【0014】
【課題を解決するための手段】本発明は、キャッシュを
有するデータ処理システムのパフォーマンスを向上させ
る方法および装置を提供する。1つのキャッシュライン
からのデータを、そのキャッシュ内の別のキャッシュラ
インに、容易にしかも高速にコピーすることができる。
好ましい実施例では、このコピーキャッシュラインオペ
レーションは、中央処理装置の命令セットのオペコード
を用いて開始される。従って、データ処理システムでラ
ンしているソフトウェアは、このCPU命令を実行し
て、このキャッシュラインコピーを呼び出す。
有するデータ処理システムのパフォーマンスを向上させ
る方法および装置を提供する。1つのキャッシュライン
からのデータを、そのキャッシュ内の別のキャッシュラ
インに、容易にしかも高速にコピーすることができる。
好ましい実施例では、このコピーキャッシュラインオペ
レーションは、中央処理装置の命令セットのオペコード
を用いて開始される。従って、データ処理システムでラ
ンしているソフトウェアは、このCPU命令を実行し
て、このキャッシュラインコピーを呼び出す。
【0015】他の機能はキャッシュラインをリネームす
る機能であり、そのオペレーションを開始するのにCP
U命令を再び用いる。このようにすると、物理的にコピ
ーすることなく、キャッシュデータが論理的にコピーさ
れる。
る機能であり、そのオペレーションを開始するのにCP
U命令を再び用いる。このようにすると、物理的にコピ
ーすることなく、キャッシュデータが論理的にコピーさ
れる。
【0016】次のようにすることができる。
【0017】1)本発明に係るデータ処理システムのメ
モリアクセス方法であって、複数のデータバイトを前記
データ処理システムのメモリからキャッシュの第1のラ
インにロードするステップと、前記複数のデータバイト
を前記キャッシュの第2のラインに前記メモリに、再ア
クセスすることなくストアするステップとを備えたこと
を特徴とする。
モリアクセス方法であって、複数のデータバイトを前記
データ処理システムのメモリからキャッシュの第1のラ
インにロードするステップと、前記複数のデータバイト
を前記キャッシュの第2のラインに前記メモリに、再ア
クセスすることなくストアするステップとを備えたこと
を特徴とする。
【0018】2) 上記1)に記載の方法において、前
記ストアするステップは、前記ロードステップと実質的
に同一に起こることを特徴とする。
記ストアするステップは、前記ロードステップと実質的
に同一に起こることを特徴とする。
【0019】3) 上記1)に記載の方法において、前
記ロードステップおよびストアステップは、中央処理装
置 (CPU)命令により開始されることを特徴とする。
記ロードステップおよびストアステップは、中央処理装
置 (CPU)命令により開始されることを特徴とする。
【0020】4) 上記1)に記載の方法において、前
記キャッシュはキャッシュアレイとキャッシュリロード
バッファを備えたことを特徴とする。
記キャッシュはキャッシュアレイとキャッシュリロード
バッファを備えたことを特徴とする。
【0021】5) 上記4)に記載の方法において、前
記複数のデータバイトは前記キャッシュの前記キャッシ
ュリロードバッファにロードされることを特徴とする。
記複数のデータバイトは前記キャッシュの前記キャッシ
ュリロードバッファにロードされることを特徴とする。
【0022】6) 上記5)に記載の方法において、前
記キャッシュリロードバッファの前記複数のデータバイ
トは、キャッシュミスの結果として、前記キャッシュア
レイに転送されることを特徴とする。
記キャッシュリロードバッファの前記複数のデータバイ
トは、キャッシュミスの結果として、前記キャッシュア
レイに転送されることを特徴とする。
【0023】7) 本発明に係るデータ処理システムの
メモリアクセス方法において、キャッシュの第1のキャ
ッシュラインに前記データ処理システムのメモリにスト
アされたデータをロードするステップと、第2のキャッ
シュラインに前記第1キャッシュラインにストアされた
データをロードするステップとを備えたことを特徴とす
る。
メモリアクセス方法において、キャッシュの第1のキャ
ッシュラインに前記データ処理システムのメモリにスト
アされたデータをロードするステップと、第2のキャッ
シュラインに前記第1キャッシュラインにストアされた
データをロードするステップとを備えたことを特徴とす
る。
【0024】8) 上記7)に記載の方法において、前
記第2のキャッシュラインにロードするステップは、中
央処理装置(CPU) 命令により開始されることを特徴とす
る。
記第2のキャッシュラインにロードするステップは、中
央処理装置(CPU) 命令により開始されることを特徴とす
る。
【0025】9) 上記7)に記載の方法において、前
記第1のキャッシュおよび第2のキャッシュが中央処理
装置(CPU) 命令により開始されることを特徴とする。
記第1のキャッシュおよび第2のキャッシュが中央処理
装置(CPU) 命令により開始されることを特徴とする。
【0026】10) 上記9)に記載の方法において、
前記データは前記CPU命令により指定されることを特
徴とする。
前記データは前記CPU命令により指定されることを特
徴とする。
【0027】11) 上記9)に記載の方法において、
前記第2のキャッシュラインは前記CPU命令により指
定されることを特徴とする。
前記第2のキャッシュラインは前記CPU命令により指
定されることを特徴とする。
【0028】12) 上記7)に記載の方法において、
前記キャッシュはキャッシュアレイとキャッシュリロー
ドバッファを備えたことを特徴とする。
前記キャッシュはキャッシュアレイとキャッシュリロー
ドバッファを備えたことを特徴とする。
【0029】13) 上記7)に記載の方法において、
前記第2のキャッシュラインはキャッシュミスの結果と
してロードされることを特徴とする。
前記第2のキャッシュラインはキャッシュミスの結果と
してロードされることを特徴とする。
【0030】14) 上記12)に記載の方法におい
て、前記キャッシュリロードバッファは前記第1のキャ
ッシュラインを備えたことを特徴とする。
て、前記キャッシュリロードバッファは前記第1のキャ
ッシュラインを備えたことを特徴とする。
【0031】15) 上記12)に記載の方法におい
て、前記キャッシュアレイは前記第2のキャッシュライ
ンを備えたことを特徴とする。
て、前記キャッシュアレイは前記第2のキャッシュライ
ンを備えたことを特徴とする。
【0032】16) 本発明に係るデータ処理システム
のメモリアクセス方法において、キャッシュディレクト
リにディレクトリエントリを有するキャッシュラインを
前記データ処理システムのメモリにストアされたデータ
からロードするステップと、前記キャッシュラインのデ
ィレクトリエントリをリネームするステップとを備えた
ことを特徴とする。
のメモリアクセス方法において、キャッシュディレクト
リにディレクトリエントリを有するキャッシュラインを
前記データ処理システムのメモリにストアされたデータ
からロードするステップと、前記キャッシュラインのデ
ィレクトリエントリをリネームするステップとを備えた
ことを特徴とする。
【0033】17) 上記16)に記載の方法におい
て、キャッシュラインをロードするステップは、中央処
理装置(CPU) 命令により開始されることを特徴とする。
て、キャッシュラインをロードするステップは、中央処
理装置(CPU) 命令により開始されることを特徴とする。
【0034】18) 上記17)に記載の方法におい
て、前記データは前記CPU命令のオペランドにより指
定されることを特徴とする。
て、前記データは前記CPU命令のオペランドにより指
定されることを特徴とする。
【0035】19) 上記17)に記載の方法におい
て、前記ディレクトリエントリは前記CPU命令のオペ
ランドにより指定された値にリネームされることを特徴
とする。 20) 上記16)に記載の方法において、前記キャッ
シュはキャッシュアレイとキャッシュリロードバッファ
を備えたことを特徴とする。
て、前記ディレクトリエントリは前記CPU命令のオペ
ランドにより指定された値にリネームされることを特徴
とする。 20) 上記16)に記載の方法において、前記キャッ
シュはキャッシュアレイとキャッシュリロードバッファ
を備えたことを特徴とする。
【0036】21) 本発明に係るデータ処理システム
のメモリをアクセスするシステムであって、複数のデー
タバイトを、前記データ処理システムのメモリから、キ
ャッシュの第1のラインにロードする手段と、前記複数
のデータバイトを前記キャッシュの第2のラインに、前
記メモリに再アクセスせずにストアする手段とを備えた
ことを特徴とする。
のメモリをアクセスするシステムであって、複数のデー
タバイトを、前記データ処理システムのメモリから、キ
ャッシュの第1のラインにロードする手段と、前記複数
のデータバイトを前記キャッシュの第2のラインに、前
記メモリに再アクセスせずにストアする手段とを備えた
ことを特徴とする。
【0037】22) 上記21)に記載のシステムにお
いて、前記ストアは前記ロードと実質的に同時に起こる
ことを特徴とする。
いて、前記ストアは前記ロードと実質的に同時に起こる
ことを特徴とする。
【0038】23) 上記21)に記載のシステムにお
いて、前記キャッシュはキャッシュアレイとキャッシュ
リロードバッファを備えたことを特徴とする。
いて、前記キャッシュはキャッシュアレイとキャッシュ
リロードバッファを備えたことを特徴とする。
【0039】24) 上記19)に記載のシステムにお
いて、前記複数のデータバイトは前記キャッシュの前記
キャッシュリロードバッファにロードされることを特徴
とする。
いて、前記複数のデータバイトは前記キャッシュの前記
キャッシュリロードバッファにロードされることを特徴
とする。
【0040】25) 上記24)に記載の方法におい
て、前記キャッシュリロードバッファの前記複数のデー
タバイトは、キャッシュミスの結果として、前記キャッ
シュアレイに転送されることを特徴とする。
て、前記キャッシュリロードバッファの前記複数のデー
タバイトは、キャッシュミスの結果として、前記キャッ
シュアレイに転送されることを特徴とする。
【0041】26) 本発明に係るデータ処理システム
のメモリをアクセスするシステムであって、キャッシュ
の第1のキャッシュラインに前記データ処理システムの
メモリにストアされたデータをロードする手段と、第2
のキャッシュラインに前記第1キャッシュラインにスト
アされたデータをロードする手段とを備えたことを特徴
とする。
のメモリをアクセスするシステムであって、キャッシュ
の第1のキャッシュラインに前記データ処理システムの
メモリにストアされたデータをロードする手段と、第2
のキャッシュラインに前記第1キャッシュラインにスト
アされたデータをロードする手段とを備えたことを特徴
とする。
【0042】27) 上記26)に記載のシステムにお
いて、前記データは前記CPU命令により指定されるこ
とを特徴とする。
いて、前記データは前記CPU命令により指定されるこ
とを特徴とする。
【0043】28) 上記26)に記載のシステムにお
いて、前記第2のキャッシュラインはキャッシュミスの
結果としてロードされることを特徴とする。
いて、前記第2のキャッシュラインはキャッシュミスの
結果としてロードされることを特徴とする。
【0044】29) 上記26)に記載のシステムにお
いて、前記キャッシュはキャッシュアレイとキャッシュ
リロードバッファを備えたことを特徴とする。
いて、前記キャッシュはキャッシュアレイとキャッシュ
リロードバッファを備えたことを特徴とする。
【0045】30) 上記26)に記載のシステムにお
いて、前記第2のキャッシュラインはキャッシュミスの
結果としてロードされることを特徴とする。
いて、前記第2のキャッシュラインはキャッシュミスの
結果としてロードされることを特徴とする。
【0046】31) 上記23)に記載のシステムにお
いて、前記キャッシュリロードバッファは前記第1のキ
ャッシュラインを備えたことを特徴とする。
いて、前記キャッシュリロードバッファは前記第1のキ
ャッシュラインを備えたことを特徴とする。
【0047】32) 上記23)に記載のシステムにお
いて、前記キャッシュアレイは前記第2のキャッシュラ
インを備えたことを特徴とする。
いて、前記キャッシュアレイは前記第2のキャッシュラ
インを備えたことを特徴とする。
【0048】33) 本発明に係るデータ処理システム
のメモリをアクセスするシステムであって、キャッシュ
ディレクトリにディレクトリエントリを有するキャッシ
ュラインに前記データ処理システムのメモリにストアさ
れたデータをロードする手段と、前記キャッシュライン
のディレクトリエントリをリネームする手段とを備えた
ことを特徴とする。
のメモリをアクセスするシステムであって、キャッシュ
ディレクトリにディレクトリエントリを有するキャッシ
ュラインに前記データ処理システムのメモリにストアさ
れたデータをロードする手段と、前記キャッシュライン
のディレクトリエントリをリネームする手段とを備えた
ことを特徴とする。
【0049】34) 上記33)に記載のシステムにお
いて、前記データは前記CPU命令により指定されるこ
とを特徴とする。
いて、前記データは前記CPU命令により指定されるこ
とを特徴とする。
【0050】35) 上記33)に記載のシステムにお
いて、前記ディレクトリエントリはCPU命令のオペラ
ンドにより指定された値にリネームされることを特徴と
する。 36) 上記33)に記載のシステムにおいて、前記キ
ャッシュはキャッシュアレイとキャッシュリロードバッ
ファを備えたことを特徴とする。
いて、前記ディレクトリエントリはCPU命令のオペラ
ンドにより指定された値にリネームされることを特徴と
する。 36) 上記33)に記載のシステムにおいて、前記キ
ャッシュはキャッシュアレイとキャッシュリロードバッ
ファを備えたことを特徴とする。
【0051】37) 本発明に係るデータ処理システム
のメモリをアクセスするシステムであって、CPUと、
該CPUに結合され、複数のデータバイトを、前記デー
タ処理システムのメモリから、キャッシュの第1ライン
にロードする手段と、前記CPUに結合され、前記複数
のデータバイトを、前記キャッシュの第2のラインに、
前記メモリを再アクセスせずにストアする手段とを備え
たことを特徴とする。
のメモリをアクセスするシステムであって、CPUと、
該CPUに結合され、複数のデータバイトを、前記デー
タ処理システムのメモリから、キャッシュの第1ライン
にロードする手段と、前記CPUに結合され、前記複数
のデータバイトを、前記キャッシュの第2のラインに、
前記メモリを再アクセスせずにストアする手段とを備え
たことを特徴とする。
【0052】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
に説明する。
【0053】AIX カーネルには、データをコピーする速
度に非常に敏感なオペレーションが種々存在する。AIX
はInternational Business Machines Corporation の商
標である。(AIX はAT&TおよびUniversity of Berkeley
により開発されたUNIXオペレーティングシステムのIBM
バージョンである。)UINXはUnix System Laboratorie
s, Inc.の商標である。これらのオペレーションのうち
の最も重要なものは、'fork'システムコールである。こ
のシステムコールにより、親プロセスと並行して実行す
る子プロセスが生成(spawn) される。その子プロセスは
親プロセスのデータ領域のコピーを必要とする。種々の
スキームを用いて、AIX およびMachでそれぞれ用いられ
る'copy-on-read','copy-on-write'のようなスキームで
必要とする実際のコピーの実際の量を減少させた。この
ように適正化させた場合でも、ページをコピーするに
は、依然、大幅なシステムタイムを必要とする。そし
て、ページをより効率的にコピーする方法が切に望まれ
ている。
度に非常に敏感なオペレーションが種々存在する。AIX
はInternational Business Machines Corporation の商
標である。(AIX はAT&TおよびUniversity of Berkeley
により開発されたUNIXオペレーティングシステムのIBM
バージョンである。)UINXはUnix System Laboratorie
s, Inc.の商標である。これらのオペレーションのうち
の最も重要なものは、'fork'システムコールである。こ
のシステムコールにより、親プロセスと並行して実行す
る子プロセスが生成(spawn) される。その子プロセスは
親プロセスのデータ領域のコピーを必要とする。種々の
スキームを用いて、AIX およびMachでそれぞれ用いられ
る'copy-on-read','copy-on-write'のようなスキームで
必要とする実際のコピーの実際の量を減少させた。この
ように適正化させた場合でも、ページをコピーするに
は、依然、大幅なシステムタイムを必要とする。そし
て、ページをより効率的にコピーする方法が切に望まれ
ている。
【0054】1つの非常に効率的な方法は、"copy data
cache line"命令を供給することである。その命令が遅
い場合でも、この命令は、ページをコピーする現在の方
法よりも著しく速い。次に、代表的なデータ処理マシー
ンがコピーすることができるサイクル当たりのバイト数
と比較する。
cache line"命令を供給することである。その命令が遅
い場合でも、この命令は、ページをコピーする現在の方
法よりも著しく速い。次に、代表的なデータ処理マシー
ンがコピーすることができるサイクル当たりのバイト数
と比較する。
【0055】 バイト/サイクル マシーン 2 RS/6000 Model 530 - 固定小数点 4 RS/6000 Model 530 - 浮動少数点 このため、4サイクルコピーキャッシュラインは、浮動
少数点レジスタ(32バイト/キャッシュラインとす
る)を用いて、2倍だけ速くデータを移動させることに
なる。コピーキャッシュライン命令はメモリからの'to
adress' を取り出すことはない。このことは、コピーキ
ャッシュライン命令はキャッシュミスの少なくとも1/2
を保管し、従って、ヒット率を改善するという点で、さ
らに別のパフォーマンスの効果である。
少数点レジスタ(32バイト/キャッシュラインとす
る)を用いて、2倍だけ速くデータを移動させることに
なる。コピーキャッシュライン命令はメモリからの'to
adress' を取り出すことはない。このことは、コピーキ
ャッシュライン命令はキャッシュミスの少なくとも1/2
を保管し、従って、ヒット率を改善するという点で、さ
らに別のパフォーマンスの効果である。
【0056】キャッシュラインコピーをRISC型プロセッ
サにインプリメントするのに、3つの公知の任意指定が
存在する。
サにインプリメントするのに、3つの公知の任意指定が
存在する。
【0057】1)2つのメモリアドレス、すなわち、RA
+ RB と(RA + 1) + RB を有する命令を有する。2つの
メモリアドレスのうちの一方はソースを指し、他方はデ
スティネーションを指す。ただし、RA + 1はRAの直後の
レジスタである。これは、ソフトウェアに対する簡単な
インタフェースであり、一般的に有用であるが、インプ
リメントは非常に複雑である。というのは、他のRISC型
命令は2つのメモリアドレスを有するからである。
+ RB と(RA + 1) + RB を有する命令を有する。2つの
メモリアドレスのうちの一方はソースを指し、他方はデ
スティネーションを指す。ただし、RA + 1はRAの直後の
レジスタである。これは、ソフトウェアに対する簡単な
インタフェースであり、一般的に有用であるが、インプ
リメントは非常に複雑である。というのは、他のRISC型
命令は2つのメモリアドレスを有するからである。
【0058】2)ソースアドレスまたはターゲットアド
レスのいずれかを含む新しい特定のレジスタを規定し、
しかも、RA + RB からその特定のレジスタのアドレスに
コピーし、その特定のレジスタのアドレスからRA + RB
にコピーする新しい命令を規定する。これもインプリメ
ントするのは複雑である。さらに、ソフトウェアはこの
新しいレジスタをどのようにハンドルするかに気を配ら
なければならない(すなわち、そのレジスタが新たにプ
ロセス状態の一部となるか、あるいは、割り込みをデセ
ーブルにしてランするのにこのコードを必要とする順次
使用可能なレジスタになるかのいずれかである)。
レスのいずれかを含む新しい特定のレジスタを規定し、
しかも、RA + RB からその特定のレジスタのアドレスに
コピーし、その特定のレジスタのアドレスからRA + RB
にコピーする新しい命令を規定する。これもインプリメ
ントするのは複雑である。さらに、ソフトウェアはこの
新しいレジスタをどのようにハンドルするかに気を配ら
なければならない(すなわち、そのレジスタが新たにプ
ロセス状態の一部となるか、あるいは、割り込みをデセ
ーブルにしてランするのにこのコードを必要とする順次
使用可能なレジスタになるかのいずれかである)。
【0059】3)2つの新しい特権命令を規定する。第
1の特権命令はdcmtrb(Data Cache Move to Reload Buf
fer;データキャッシュのリロードバッファへの移動 )で
ある。第2の特権命令はdcrrb(Data Cache Rename Relo
ad Buffer;データキャッシュリネームリロードバッファ
)である。CRB (Cache Reload Buffer; キャッシュリ
ロードバッファ)はインプリメンテーションレジスタで
あり、このレジスタは現在リロードされているラインを
含むデータキャッシュの1ライン追加セットのようにア
クトする。レジスタをこのようにソフトウェアにエクス
ポーズすることにより、コピーキャッシュライン機能を
ソフトウェアでパフォームすることができる。
1の特権命令はdcmtrb(Data Cache Move to Reload Buf
fer;データキャッシュのリロードバッファへの移動 )で
ある。第2の特権命令はdcrrb(Data Cache Rename Relo
ad Buffer;データキャッシュリネームリロードバッファ
)である。CRB (Cache Reload Buffer; キャッシュリ
ロードバッファ)はインプリメンテーションレジスタで
あり、このレジスタは現在リロードされているラインを
含むデータキャッシュの1ライン追加セットのようにア
クトする。レジスタをこのようにソフトウェアにエクス
ポーズすることにより、コピーキャッシュライン機能を
ソフトウェアでパフォームすることができる。
【0060】データキャッシュ移動およびリネームをイ
ンプリメントする好ましい例を説明する。図1を説明す
る。標準の中央処理装置(CPU) 10はアドレス信号とデ
ータ信号を生成し、バス12上に出力する。このバスは
CPU10をシステムメモリ50と、データキャッシュ
アレイ20と、タグアレイ30と、CRB タグアレイ60
とに接続され、同様に、タグマッチングロジック70
と、CRB タグマッチングロジック80とに接続されてい
る。さらに、CPU10はバス14を介してマルチプレ
クサ16およびマルチプレクサ22に接続されている。
マルチプレクサ16はキャッシュリロードバッファ(CR
B) 18にアクセスし、マルチプレクサ22はデータキ
ャッシュアレイ20にアクセスする。CPU10による
キャッシュリロードバッファとデータキャッシュアレイ
への特定のアクセス例を次に説明する。
ンプリメントする好ましい例を説明する。図1を説明す
る。標準の中央処理装置(CPU) 10はアドレス信号とデ
ータ信号を生成し、バス12上に出力する。このバスは
CPU10をシステムメモリ50と、データキャッシュ
アレイ20と、タグアレイ30と、CRB タグアレイ60
とに接続され、同様に、タグマッチングロジック70
と、CRB タグマッチングロジック80とに接続されてい
る。さらに、CPU10はバス14を介してマルチプレ
クサ16およびマルチプレクサ22に接続されている。
マルチプレクサ16はキャッシュリロードバッファ(CR
B) 18にアクセスし、マルチプレクサ22はデータキ
ャッシュアレイ20にアクセスする。CPU10による
キャッシュリロードバッファとデータキャッシュアレイ
への特定のアクセス例を次に説明する。
【0061】データキャッシュアレイ20は当業者に公
知の高速read/writeメモリの慣用のアレイであり、CP
U10に対するデータキャッシュとして用いられる。デ
ータの完全なキャッシュライン(好ましい例では、32
バイト)がそのキャッシュに書き込み実行可能になるま
で、システムメモリ50からのバッファデータに対し
て、キャッシュリロードバッファ18が用いられる。タ
グアレイ30は1キャッシュラインごとに1エントリを
データキャッシュアレイ20に含む。その1エントリは
所定のキャッシュライン記憶場所のシステムメモリアド
レスの値を備えている。CRB タグアレイ60は、データ
キャッシュアレイ20に書き込む予定のデータに対応す
るアドレスをキャッシュリロードバッファ18に一時的
にストアするためのバッファである。キャッシュリロー
ドバッファ18のデータがデータキャッシュアレイ20
内の記憶場所に転送される場合、CRB タグアレイ60に
ストアされた値は、タグアレイ30の対応する記憶場所
に転送される。次に、CRB タグアレイとタグアレイ30
の間でデータ転送をし、同様に、キャッシュリロードバ
ッファ18とデータキャッシュアレイ20の間でのデー
タ転送は、さらに図2ないし図5を参照して説明する。
知の高速read/writeメモリの慣用のアレイであり、CP
U10に対するデータキャッシュとして用いられる。デ
ータの完全なキャッシュライン(好ましい例では、32
バイト)がそのキャッシュに書き込み実行可能になるま
で、システムメモリ50からのバッファデータに対し
て、キャッシュリロードバッファ18が用いられる。タ
グアレイ30は1キャッシュラインごとに1エントリを
データキャッシュアレイ20に含む。その1エントリは
所定のキャッシュライン記憶場所のシステムメモリアド
レスの値を備えている。CRB タグアレイ60は、データ
キャッシュアレイ20に書き込む予定のデータに対応す
るアドレスをキャッシュリロードバッファ18に一時的
にストアするためのバッファである。キャッシュリロー
ドバッファ18のデータがデータキャッシュアレイ20
内の記憶場所に転送される場合、CRB タグアレイ60に
ストアされた値は、タグアレイ30の対応する記憶場所
に転送される。次に、CRB タグアレイとタグアレイ30
の間でデータ転送をし、同様に、キャッシュリロードバ
ッファ18とデータキャッシュアレイ20の間でのデー
タ転送は、さらに図2ないし図5を参照して説明する。
【0062】制御ロジック40は図1に示す全体的なデ
ータフローを制御する。制御ロジック40はCPU10
と、CRB マルチプレクサ16と、CRB 18と、データキ
ャッシュアレイマルチプレクサ22と、データキャッシ
ュアレイ20とに結合される。さらに、制御ロジックは
タグマッチングロジック70と、CRB タグマッチングロ
ジック80とに結合されている。タグマッチングロジッ
ク70および80はバス12上に存在するアドレス間で
いつマッチングがとれたかを検知する。しかも、タグア
レイ30またはCRB タグアレイ60のいずれかにストア
されたアドレス間でいつマッチングがとれたかを検知す
る。
ータフローを制御する。制御ロジック40はCPU10
と、CRB マルチプレクサ16と、CRB 18と、データキ
ャッシュアレイマルチプレクサ22と、データキャッシ
ュアレイ20とに結合される。さらに、制御ロジックは
タグマッチングロジック70と、CRB タグマッチングロ
ジック80とに結合されている。タグマッチングロジッ
ク70および80はバス12上に存在するアドレス間で
いつマッチングがとれたかを検知する。しかも、タグア
レイ30またはCRB タグアレイ60のいずれかにストア
されたアドレス間でいつマッチングがとれたかを検知す
る。
【0063】慣用のキャッシュシステムでは、CPU1
0はバス12を介してデータにアクセスする。そのパフ
ォーマンスの場合、キャッシュ20を用いて、CPU1
0にデータを直ちに供給する。そのキャッシュはシステ
ムメモリ50に駐在するデータの一部を局所的にコピー
する。そのキャッシュは、前のCPU命令でCPU10
により最近(recently)にアクセスされたデータに、近い
か、あるいは近接するデータを備えている。従って、C
PU10によりアクセスされる次のデータが、システム
メモリ50にのみに駐在するより、(比較的速いアクセ
スタイムを有する)キャッシュ20に駐在する確率の方
が高い。
0はバス12を介してデータにアクセスする。そのパフ
ォーマンスの場合、キャッシュ20を用いて、CPU1
0にデータを直ちに供給する。そのキャッシュはシステ
ムメモリ50に駐在するデータの一部を局所的にコピー
する。そのキャッシュは、前のCPU命令でCPU10
により最近(recently)にアクセスされたデータに、近い
か、あるいは近接するデータを備えている。従って、C
PU10によりアクセスされる次のデータが、システム
メモリ50にのみに駐在するより、(比較的速いアクセ
スタイムを有する)キャッシュ20に駐在する確率の方
が高い。
【0064】CPU10はアドレスをバス12に入れ
て、このようなアドレスからデータを読み出すと、タグ
マッチングロジック70は、タグアレイ30のアドレス
と比較することにより、そのアドレスがデータキャッシ
ュアレイに現在存在するキャッシュラインのアドレスと
一致するか否かを判定する。このタグアレイ30がその
キャッシュにストアされた対応するデータラインのアド
レスを備えていると、このタグマッチングロジック70
はバス12上のアドレスと、タグアレイ30に記憶され
た値とを比較することができる。一致した場合、すなわ
ち、データキャッシュアレイ20がCPU10によりシ
ークされたデータ項目を含む場合、CPU10は要求さ
れたデータをキャッシュ20から取り出す。このこと
は、タグマッチングロジック70が信号線24を介して
制御ロジック40に、一致が検出されたことをシグナル
するので分かる。そして、制御ロジックは信号線26を
介してキャッシュアレイ20をイネーブルにし、そのキ
ャッシュアレイ20に含まれる要求されたデータを信号
線28を介してCPU10に転送する。一致が検出され
ない場合、すなわち、データキャッシュアレイがCPU
10によりシークされたデータ項目を含まない場合は、
タグマッチングロジックが検査され、要求されたデータ
が既にキャッシュリロードバッファ(CRB) 18にバッフ
ァリングされており、キャッシュ20へのストアを待つ
(図2を参照して詳細に説明する)。このことは、バス
12上のアドレスをCRB タグアレイ60にストアされた
値と比較することにより行われる。その検査の結果は、
信号線25を介して制御ロジック40に転送される。一
致が検出された場合、制御ロジック40により、CRB 1
8からのデータは信号線29を介してCPU10に転送
される。一致がタグマッチングロジック70および80
により検出された場合は、ミスが生じる。これは、キャ
ッシュラインを、システムメモリ50からのデータを用
いて、データキャッシュにロードしなければならないこ
とを意味する。多分、隣接データ、またはごく隣接した
データが実質的にCPUから要求されるので、キャッシ
ュラインは要求された実際のデータを超えるデータを含
む。従って、キャッシュラインに要求された実際のデー
タがロードされ、同様に、システムメモリ50にストア
されたデータの隣接するバイト/ワードがロードされ
る。再び、(ミスのため)キャッシュラインをロードす
るこの必要性は、タグマッチングロジック70および8
0を用いて検出される。そのことは、信号線24および
25を介して制御ロジック40に次のことをシグナルす
る。すなわち、タグアレイ30またはCRB タグアレイ6
0にストアされたアドレスが、バス12上に存在するア
ドレスに等しくないことをシグナルする。この時点で、
データはパス13上のシステムメモリ50から読み出さ
れ、制御ロジック40により制御されたマルチプレクサ
16を介して、パス17上のキャッシュリロードバッフ
ァ18にバッファリングされる。データ分の完全なキャ
ッシュラインがパス21上のデータキャッシュアレイ2
0にストア可能になるまで、このキャッシュリロードバ
ッファを用いて、システムメモリ50から受信されるデ
ータをバッファリングする。CRB 18が一杯になると、
制御ロジック40はマルチプレクサ22をイネーブルに
してCRB 18からのデータをキャッシュ20の特定の記
憶場所にロードする。このことは、次の利用可能なサイ
クルの間に生じるか、あるいは、その後のキャッシュミ
スが生じるまで延期される。次に、このことを説明す
る。
て、このようなアドレスからデータを読み出すと、タグ
マッチングロジック70は、タグアレイ30のアドレス
と比較することにより、そのアドレスがデータキャッシ
ュアレイに現在存在するキャッシュラインのアドレスと
一致するか否かを判定する。このタグアレイ30がその
キャッシュにストアされた対応するデータラインのアド
レスを備えていると、このタグマッチングロジック70
はバス12上のアドレスと、タグアレイ30に記憶され
た値とを比較することができる。一致した場合、すなわ
ち、データキャッシュアレイ20がCPU10によりシ
ークされたデータ項目を含む場合、CPU10は要求さ
れたデータをキャッシュ20から取り出す。このこと
は、タグマッチングロジック70が信号線24を介して
制御ロジック40に、一致が検出されたことをシグナル
するので分かる。そして、制御ロジックは信号線26を
介してキャッシュアレイ20をイネーブルにし、そのキ
ャッシュアレイ20に含まれる要求されたデータを信号
線28を介してCPU10に転送する。一致が検出され
ない場合、すなわち、データキャッシュアレイがCPU
10によりシークされたデータ項目を含まない場合は、
タグマッチングロジックが検査され、要求されたデータ
が既にキャッシュリロードバッファ(CRB) 18にバッフ
ァリングされており、キャッシュ20へのストアを待つ
(図2を参照して詳細に説明する)。このことは、バス
12上のアドレスをCRB タグアレイ60にストアされた
値と比較することにより行われる。その検査の結果は、
信号線25を介して制御ロジック40に転送される。一
致が検出された場合、制御ロジック40により、CRB 1
8からのデータは信号線29を介してCPU10に転送
される。一致がタグマッチングロジック70および80
により検出された場合は、ミスが生じる。これは、キャ
ッシュラインを、システムメモリ50からのデータを用
いて、データキャッシュにロードしなければならないこ
とを意味する。多分、隣接データ、またはごく隣接した
データが実質的にCPUから要求されるので、キャッシ
ュラインは要求された実際のデータを超えるデータを含
む。従って、キャッシュラインに要求された実際のデー
タがロードされ、同様に、システムメモリ50にストア
されたデータの隣接するバイト/ワードがロードされ
る。再び、(ミスのため)キャッシュラインをロードす
るこの必要性は、タグマッチングロジック70および8
0を用いて検出される。そのことは、信号線24および
25を介して制御ロジック40に次のことをシグナルす
る。すなわち、タグアレイ30またはCRB タグアレイ6
0にストアされたアドレスが、バス12上に存在するア
ドレスに等しくないことをシグナルする。この時点で、
データはパス13上のシステムメモリ50から読み出さ
れ、制御ロジック40により制御されたマルチプレクサ
16を介して、パス17上のキャッシュリロードバッフ
ァ18にバッファリングされる。データ分の完全なキャ
ッシュラインがパス21上のデータキャッシュアレイ2
0にストア可能になるまで、このキャッシュリロードバ
ッファを用いて、システムメモリ50から受信されるデ
ータをバッファリングする。CRB 18が一杯になると、
制御ロジック40はマルチプレクサ22をイネーブルに
してCRB 18からのデータをキャッシュ20の特定の記
憶場所にロードする。このことは、次の利用可能なサイ
クルの間に生じるか、あるいは、その後のキャッシュミ
スが生じるまで延期される。次に、このことを説明す
る。
【0065】図2を説明する。図2はアドレス1からの
ロードミスの間のキャッシュオペレーションに対する一
方法を示す。再び、ロードミスとは、CPU10がアド
レス1からのデータをロードしようと試みたことを意味
し、このデータはデータキャッシュアレイ20に現在存
在しないが、(図1に示す)より遅いシステムメモリ5
0に存在する。従って、データキャッシュアレイ20に
システムメモリ50からのデータが新たに供給されなけ
ればならない。図2はCRB 18と、データキャッシュア
レイ20と、CRB タグアレイ60と、タグアレイ30と
を示す。CRB 18はデータキャッシュアレイ20にスト
アされる1ラインのデータを含む。このデータキャッシ
ュアレイ20は複数次元のアレイであり、そのアレイに
複数ラインのデータを、例えば、記憶場所32および3
4に、ストアすることができる。各記憶場所には、好ま
しい実施例では、完全なキャッシュラインが含まれる。
しかし、他の構成、例えば、全キャッシュラインに対し
て2つ以上の記憶場所を必要とする構成は、本発明の精
神および範囲を逸脱しないで可能である。CRB タグアレ
イ60はタグアレイ30にロードされるアドレス(アド
レス1)を含む。このアドレスはCRB 18に存在するデ
ータと一致する。タグアレイ30は複数記憶場所、例え
ば、記憶場所36および38を含む。ここで、キャッシ
ュアレイ20にストアされたデータに一致するアドレス
がストアされる。例えば、32で示すキャッシュライン
にストアされたデータは36で示すタグアレイ30にス
トアされるアドレスを有する。図2に示すように、(C
PU10により要求された)アドレス1の1ラインのデ
ータは、18で示すCRB にバッファリングされる。アド
レス1はCRB タグアレイ60にバッファリングされる。
このデータおよびアドレス情報は、対応するデータキャ
ッシュアレイ20およびタグ記憶場所30にストアされ
ることになる。その情報は空の記憶場所34および38
にストアするか、あるいは空の記憶場所が存在しない場
合は最近アクセスされた(recently accessed) 記憶場所
のいずれかにストアされる。一例では、CRB 18および
CRB タグアレイ60がその後のロードまたはストアミス
により必要とされるまで、データおよびアドレスがキャ
ッシュおよびタグに転送されない。他の例では、CRB デ
ータおよびCRB タグの場合は、CRB データおよびCRB タ
グを、キャッシュへのアクセスを必要としないシステム
サイクルの間、キャッシュアレイおよびタグに転送する
ことができる。従って、システムスループットの遅延が
軽減される。
ロードミスの間のキャッシュオペレーションに対する一
方法を示す。再び、ロードミスとは、CPU10がアド
レス1からのデータをロードしようと試みたことを意味
し、このデータはデータキャッシュアレイ20に現在存
在しないが、(図1に示す)より遅いシステムメモリ5
0に存在する。従って、データキャッシュアレイ20に
システムメモリ50からのデータが新たに供給されなけ
ればならない。図2はCRB 18と、データキャッシュア
レイ20と、CRB タグアレイ60と、タグアレイ30と
を示す。CRB 18はデータキャッシュアレイ20にスト
アされる1ラインのデータを含む。このデータキャッシ
ュアレイ20は複数次元のアレイであり、そのアレイに
複数ラインのデータを、例えば、記憶場所32および3
4に、ストアすることができる。各記憶場所には、好ま
しい実施例では、完全なキャッシュラインが含まれる。
しかし、他の構成、例えば、全キャッシュラインに対し
て2つ以上の記憶場所を必要とする構成は、本発明の精
神および範囲を逸脱しないで可能である。CRB タグアレ
イ60はタグアレイ30にロードされるアドレス(アド
レス1)を含む。このアドレスはCRB 18に存在するデ
ータと一致する。タグアレイ30は複数記憶場所、例え
ば、記憶場所36および38を含む。ここで、キャッシ
ュアレイ20にストアされたデータに一致するアドレス
がストアされる。例えば、32で示すキャッシュライン
にストアされたデータは36で示すタグアレイ30にス
トアされるアドレスを有する。図2に示すように、(C
PU10により要求された)アドレス1の1ラインのデ
ータは、18で示すCRB にバッファリングされる。アド
レス1はCRB タグアレイ60にバッファリングされる。
このデータおよびアドレス情報は、対応するデータキャ
ッシュアレイ20およびタグ記憶場所30にストアされ
ることになる。その情報は空の記憶場所34および38
にストアするか、あるいは空の記憶場所が存在しない場
合は最近アクセスされた(recently accessed) 記憶場所
のいずれかにストアされる。一例では、CRB 18および
CRB タグアレイ60がその後のロードまたはストアミス
により必要とされるまで、データおよびアドレスがキャ
ッシュおよびタグに転送されない。他の例では、CRB デ
ータおよびCRB タグの場合は、CRB データおよびCRB タ
グを、キャッシュへのアクセスを必要としないシステム
サイクルの間、キャッシュアレイおよびタグに転送する
ことができる。従って、システムスループットの遅延が
軽減される。
【0066】図1を説明する。CPUストアオペレーシ
ョンを説明する。CPU10はストアオペレーションを
開始すると、ロードオペレーションを説明する際に既に
説明した方法と同様にして、タグマッチングロジック7
0および80を用いて、タグアレイ30およびCRB タグ
アレイ60をバス12上のアドレスに対して検査しなけ
ればならない。キャッシュヒットがタグアレイ30で検
知されると(アドレスのマッチングがタグアレイ30で
検知され、しかも、データキャッシュアレイ20が書き
込まれるデータのコピーを含む)、制御ロジック40は
信号線21′を介してマルチプレクサ22にディレクト
し、CPU10からのデータをデータパス14および1
7′を介してデータキャッシュアレイ20にストアす
る。キャッシュヒットがCRB タグアレイ60上で検知さ
れると(アドレスマッチングがCRBタグアレイ60で検
知され、CRB 18が書き込まれるデータのコピーを含む
とき)、制御ロジック40は信号線19上のマルチプレ
クサ16をディレクトし、CPU10からのデータをデ
ータパス14および15を介してCRB 18にストアす
る。タグ30またはCRB タグアレイ60のいずれかに対
してヒットがない場合、ストアミスが生じる。
ョンを説明する。CPU10はストアオペレーションを
開始すると、ロードオペレーションを説明する際に既に
説明した方法と同様にして、タグマッチングロジック7
0および80を用いて、タグアレイ30およびCRB タグ
アレイ60をバス12上のアドレスに対して検査しなけ
ればならない。キャッシュヒットがタグアレイ30で検
知されると(アドレスのマッチングがタグアレイ30で
検知され、しかも、データキャッシュアレイ20が書き
込まれるデータのコピーを含む)、制御ロジック40は
信号線21′を介してマルチプレクサ22にディレクト
し、CPU10からのデータをデータパス14および1
7′を介してデータキャッシュアレイ20にストアす
る。キャッシュヒットがCRB タグアレイ60上で検知さ
れると(アドレスマッチングがCRBタグアレイ60で検
知され、CRB 18が書き込まれるデータのコピーを含む
とき)、制御ロジック40は信号線19上のマルチプレ
クサ16をディレクトし、CPU10からのデータをデ
ータパス14および15を介してCRB 18にストアす
る。タグ30またはCRB タグアレイ60のいずれかに対
してヒットがない場合、ストアミスが生じる。
【0067】図3はアドレス2に対するストアミスを示
す。ストアミスとは、CPU10がアドレス2に対する
データストアを開始するが、キャッシュ20もCRB 18
(データキャッシュアレイ20を拡張したものである)
もアドレス2データの局所的なコピーを含まない。
す。ストアミスとは、CPU10がアドレス2に対する
データストアを開始するが、キャッシュ20もCRB 18
(データキャッシュアレイ20を拡張したものである)
もアドレス2データの局所的なコピーを含まない。
【0068】前にロードされたデータは、アドレス1か
らキャッシュアレイ20に転送され、対応するタグエン
トリは記憶場所38に存在する。アドレス2にストアさ
れるデータは、CRB 18に一時的に駐在し、対応するCR
B タグバッファ60に駐在する。空の記憶場所か、ある
いはLRU(least recently used)記憶場所が42で示すキ
ャッシュアレイに存在し、対応するタグは記憶場所44
に存在する。
らキャッシュアレイ20に転送され、対応するタグエン
トリは記憶場所38に存在する。アドレス2にストアさ
れるデータは、CRB 18に一時的に駐在し、対応するCR
B タグバッファ60に駐在する。空の記憶場所か、ある
いはLRU(least recently used)記憶場所が42で示すキ
ャッシュアレイに存在し、対応するタグは記憶場所44
に存在する。
【0069】図4を説明する。キャッシュアレイ20は
アドレス1からのデータを記憶場所34に含む。このデ
ータは(図2を参照して上述したような)前のロードコ
マンドにより得られる。このキャッシュライン34に対
する対応するタグアドレスは、記憶場所38にストアさ
れる。アドレス1からアドレス2に1ページのデータを
コピーするロード/ストアオペレーションは、実行され
ているCPU命令のストリームが非常に良く似ているの
が典型的であり、しかも、キャッシュアレイ20にスト
アする前にキャッシュラインをバッファリングするのに
CRB 18を用いることが典型的である場合、その命令列
はアドレス1からのデータをロードし、そのデータをア
ドレス2にストアし、図4に示す状態にする。CRB 18
はアドレス1からのデータを、そのデータをコピーする
ストア命令の結果として含む。これは通常生じることで
はない。それは、1ページのデータが記憶場所(例え
ば、アドレス1)から記憶場所(アドレス2)にコピー
されるとき、同一のデータを用いて、ロード/ストアの
シーケンスが生じるからである。システムフォーク(for
k)オペレーションが生じるとき、Unixオペレーティング
システムでは、頻繁に、ページをこのようにコピーする
必要がある。このフォークにより子が生成(spawn) さ
れ、しかも、その子はそのフォークオペレーションの前
に親が保持した環境の複製コピーを必要とする。
アドレス1からのデータを記憶場所34に含む。このデ
ータは(図2を参照して上述したような)前のロードコ
マンドにより得られる。このキャッシュライン34に対
する対応するタグアドレスは、記憶場所38にストアさ
れる。アドレス1からアドレス2に1ページのデータを
コピーするロード/ストアオペレーションは、実行され
ているCPU命令のストリームが非常に良く似ているの
が典型的であり、しかも、キャッシュアレイ20にスト
アする前にキャッシュラインをバッファリングするのに
CRB 18を用いることが典型的である場合、その命令列
はアドレス1からのデータをロードし、そのデータをア
ドレス2にストアし、図4に示す状態にする。CRB 18
はアドレス1からのデータを、そのデータをコピーする
ストア命令の結果として含む。これは通常生じることで
はない。それは、1ページのデータが記憶場所(例え
ば、アドレス1)から記憶場所(アドレス2)にコピー
されるとき、同一のデータを用いて、ロード/ストアの
シーケンスが生じるからである。システムフォーク(for
k)オペレーションが生じるとき、Unixオペレーティング
システムでは、頻繁に、ページをこのようにコピーする
必要がある。このフォークにより子が生成(spawn) さ
れ、しかも、その子はそのフォークオペレーションの前
に親が保持した環境の複製コピーを必要とする。
【0070】図5は図4の結果を示す。これは、CRB お
よびCRB タグ情報が、アドレス3に対するミスの結果と
して(CRB の使用をプロンプトして、キャッシュにミス
データをロードする)、キャッシュアレイ20およびキ
ャッシュタグ30に転送されている。理解できることで
あるが、このため、データのコピーがキャッシュアレイ
の記憶場所34(図5参照)および42に記憶される。
ストア命令により、アドレス2からのデータがアドレス
1からのデータにより実質的に置換されたとしても、ア
ドレス2からのデータを転送するのに、さらにシステム
サイクルが必要である。
よびCRB タグ情報が、アドレス3に対するミスの結果と
して(CRB の使用をプロンプトして、キャッシュにミス
データをロードする)、キャッシュアレイ20およびキ
ャッシュタグ30に転送されている。理解できることで
あるが、このため、データのコピーがキャッシュアレイ
の記憶場所34(図5参照)および42に記憶される。
ストア命令により、アドレス2からのデータがアドレス
1からのデータにより実質的に置換されたとしても、ア
ドレス2からのデータを転送するのに、さらにシステム
サイクルが必要である。
【0071】このアプローチは、RISC System/6000のよ
うなシステムにページをコピーする技術の現状を示す。
これには主に2つの不都合がある。1)コピーされたデー
タはデータキャッシュアレイ内に2ライン分を占有し、
データキャッシュがより非効率的に使用され、しかも、
キャッシュミス率が増加する。2)アドレス2からのデー
タが不必要にCRB 18にコピーされ、従って、システム
メモリバンド幅およびCPUサイクルが消費される。
うなシステムにページをコピーする技術の現状を示す。
これには主に2つの不都合がある。1)コピーされたデー
タはデータキャッシュアレイ内に2ライン分を占有し、
データキャッシュがより非効率的に使用され、しかも、
キャッシュミス率が増加する。2)アドレス2からのデー
タが不必要にCRB 18にコピーされ、従って、システム
メモリバンド幅およびCPUサイクルが消費される。
【0072】図6を説明する。図6は、図2に示す命令
と同様のdcmtrb命令を実行することにより生じるミスを
示す。アドレス1からのデータ、すなわち、キャッシュ
にその前に存在しないデータが、CRB 18にバッファリ
ングされる。アドレス1からのデータはCRB 60にスト
アされたアドレス1のアドレスを有する。dcmtrb命令
は、LRU キャッシュラインを選択して、データキャッシ
ュアレイ30に空のスロットを作成する必要がない。と
いうのは、dcmtrb命令は、このエントリがデータキャッ
シュアレイ30に転送されず、従って、そのキャッシュ
で1ラインだけ省かれることになるからである。
と同様のdcmtrb命令を実行することにより生じるミスを
示す。アドレス1からのデータ、すなわち、キャッシュ
にその前に存在しないデータが、CRB 18にバッファリ
ングされる。アドレス1からのデータはCRB 60にスト
アされたアドレス1のアドレスを有する。dcmtrb命令
は、LRU キャッシュラインを選択して、データキャッシ
ュアレイ30に空のスロットを作成する必要がない。と
いうのは、dcmtrb命令は、このエントリがデータキャッ
シュアレイ30に転送されず、従って、そのキャッシュ
で1ラインだけ省かれることになるからである。
【0073】dcrrb 命令を実行した結果は図7から充分
理解することができる。1ページのデータをコピーする
のに用いられる前のロード/ストアシーケンスに対し
て、dcrrb 命令により、CRB タグアレイ60にストアさ
れたアドレス値のみを修正することができる。CRB に対
するその後のオペレーションにより、アドレス2からの
データをCRB にロードする必要はない。
理解することができる。1ページのデータをコピーする
のに用いられる前のロード/ストアシーケンスに対し
て、dcrrb 命令により、CRB タグアレイ60にストアさ
れたアドレス値のみを修正することができる。CRB に対
するその後のオペレーションにより、アドレス2からの
データをCRB にロードする必要はない。
【0074】最後に、dcmtrb/dcrrb対を供給した結果は
図5よりも図8から明らかである。図8は、図7からの
CRB およびCRB タグ情報が、アドレス3に対するミスの
結果として(よって、CRB の使用をプロンプトし、その
伝送がトリガされる)、キャッシュアレイ20およびタ
グ30にどのように転送されたかを示す。アドレス1か
らのデータ、すなわち、図7に18で示すCRB に存在す
るデータは、キャッシュアレイ20のキャッシュライン
42に今移動される。対応するアドレス(アドレス
2)、すなわち、図7に60で示すCRB タグに存在する
アドレスは、タグアレイ30の記憶場所44に移動され
る。記憶場所46および48は空のままであり、アドレ
ス3からのデータおよびアドレスの受信が実行可能であ
る。アドレス1からのデータ(図5の34)の複製コピ
ーは、このアプローチを用いて存在せず、データのこの
ような複製を除去することによりキャッシュの利用が改
善される。全体的なシステムパフォーマンスがキャッシ
ュアレイのサイズによりインパクトされると、高速アク
セスのため、キャッシュはシステムメモリに対して比較
的高価であるので、このアプローチを用いたシステムの
コスト/パフォーマンスは大幅に改善される。
図5よりも図8から明らかである。図8は、図7からの
CRB およびCRB タグ情報が、アドレス3に対するミスの
結果として(よって、CRB の使用をプロンプトし、その
伝送がトリガされる)、キャッシュアレイ20およびタ
グ30にどのように転送されたかを示す。アドレス1か
らのデータ、すなわち、図7に18で示すCRB に存在す
るデータは、キャッシュアレイ20のキャッシュライン
42に今移動される。対応するアドレス(アドレス
2)、すなわち、図7に60で示すCRB タグに存在する
アドレスは、タグアレイ30の記憶場所44に移動され
る。記憶場所46および48は空のままであり、アドレ
ス3からのデータおよびアドレスの受信が実行可能であ
る。アドレス1からのデータ(図5の34)の複製コピ
ーは、このアプローチを用いて存在せず、データのこの
ような複製を除去することによりキャッシュの利用が改
善される。全体的なシステムパフォーマンスがキャッシ
ュアレイのサイズによりインパクトされると、高速アク
セスのため、キャッシュはシステムメモリに対して比較
的高価であるので、このアプローチを用いたシステムの
コスト/パフォーマンスは大幅に改善される。
【0075】ハードウェアフローを記述したので、その
ハードウェアをドライブするのに用いられるソフトウェ
アオペレーションを記述する。データキャッシュのリロ
ードバッファへの移動(dcmtrb)と呼ばれる命令は、デー
タをキャッシュリロードバッファに移動するのに供給さ
れる。図9を説明する。命令62は、オペコード64
と、一時レジスタ66と、レジスタA 68と、レジス
タB 72と、拡張オペコード74とを有する。dcmtrb
オペコード64を有する命令62に対して、CRBに移動
されるキャッシュラインのアドレスは、レジスタA(RA)
68の内容とレジスタB(RB)72を加算することにより
計算される。このアドレスによりアドレスされるバイト
を含むラインは、データキャッシュに既に存在する場
合、キャッシュリロードバッファにコピーされる。この
アドレスによりアドレスされるバイトを含むラインは、
データキャッシュラインに既に存在しない場合、置換の
ために1ラインを選択せずに、キャッシュリロードバッ
ファに直接コピーされる。
ハードウェアをドライブするのに用いられるソフトウェ
アオペレーションを記述する。データキャッシュのリロ
ードバッファへの移動(dcmtrb)と呼ばれる命令は、デー
タをキャッシュリロードバッファに移動するのに供給さ
れる。図9を説明する。命令62は、オペコード64
と、一時レジスタ66と、レジスタA 68と、レジス
タB 72と、拡張オペコード74とを有する。dcmtrb
オペコード64を有する命令62に対して、CRBに移動
されるキャッシュラインのアドレスは、レジスタA(RA)
68の内容とレジスタB(RB)72を加算することにより
計算される。このアドレスによりアドレスされるバイト
を含むラインは、データキャッシュに既に存在する場
合、キャッシュリロードバッファにコピーされる。この
アドレスによりアドレスされるバイトを含むラインは、
データキャッシュラインに既に存在しない場合、置換の
ために1ラインを選択せずに、キャッシュリロードバッ
ファに直接コピーされる。
【0076】また、データキャッシュリネームリロード
バッファ(dcrrb) が供給される。dcrrb オペコード64
を有する命令62を図9を参照して説明する。CRB がリ
ネームされるアドレスがレジスタA(RA)68とレジスタ
B(RB)72の内容を加算することにより計算される。デ
ータキャッシュアレイの1ラインがこのアドレスにより
アドレスされたバイトを含む場合は、そのラインは無効
である。キャッシュリロードバッファのディレクトリエ
ントリにマークが付けられ、アドレスされたバイトを含
む記憶のキャッシュラインサイズのブロックのデータを
含み、しかも、1ラインが置換のために選択されること
を、このキャッシュラインにより示される。
バッファ(dcrrb) が供給される。dcrrb オペコード64
を有する命令62を図9を参照して説明する。CRB がリ
ネームされるアドレスがレジスタA(RA)68とレジスタ
B(RB)72の内容を加算することにより計算される。デ
ータキャッシュアレイの1ラインがこのアドレスにより
アドレスされたバイトを含む場合は、そのラインは無効
である。キャッシュリロードバッファのディレクトリエ
ントリにマークが付けられ、アドレスされたバイトを含
む記憶のキャッシュラインサイズのブロックのデータを
含み、しかも、1ラインが置換のために選択されること
を、このキャッシュラインにより示される。
【0077】R2により指されたページをR3により指され
たページにコピーするコードは、表1のようになる。
たページにコピーするコードは、表1のようになる。
【0078】
【表1】 load r4,0 インデックスレジスタをクリア loop: dcmtrb (r2,r4) ラインをcrb にロード dcrrb (r3,r40 リネーム addi r4,r4,32 インデックスをキャッシュラインサイズだけイン クリメント bdn loop 分岐およびカウンタのデクリメント R2は第1キャッシュラインのアドレスをソースページに
含み、R3は第1キャッシュラインのアドレスをデスティ
ネーションページに含む。R4はインデックスレジスタと
して用いられる。(分岐およびデクリメント(bdn) 命令
により用いられる)カウンタは、ライン数をそのページ
に含む。
含み、R3は第1キャッシュラインのアドレスをデスティ
ネーションページに含む。R4はインデックスレジスタと
して用いられる。(分岐およびデクリメント(bdn) 命令
により用いられる)カウンタは、ライン数をそのページ
に含む。
【0079】繰り返すため、キャッシュラインをリネー
ムする機能が果たされる。データを記憶場所から記憶場
所にコピーするのに、慣用のオペレーティングによりパ
フォームされたロード/ストアシーケンスは、データが
一度ストアされると、データからコピーされたものは必
要としない。しかし、慣用的なアプローチはこのデータ
を必要としないが、キャッシュに保持されているデータ
の複製コピーが得られる。我々は、データの複製を認識
し除去することにより、キャッシュベースシステムのコ
スト/パフォーマンスを大幅に改善した。従って、キャ
ッシュストア非効率を最小にし、同様に、キャッシュと
のデータトラフィックを最小にすることができる。
ムする機能が果たされる。データを記憶場所から記憶場
所にコピーするのに、慣用のオペレーティングによりパ
フォームされたロード/ストアシーケンスは、データが
一度ストアされると、データからコピーされたものは必
要としない。しかし、慣用的なアプローチはこのデータ
を必要としないが、キャッシュに保持されているデータ
の複製コピーが得られる。我々は、データの複製を認識
し除去することにより、キャッシュベースシステムのコ
スト/パフォーマンスを大幅に改善した。従って、キャ
ッシュストア非効率を最小にし、同様に、キャッシュと
のデータトラフィックを最小にすることができる。
【0080】以上、本発明の実施例を説明したが、本発
明の精神および範囲を逸脱することなく種々の変更を行
うことができることは、当業者にとって当然のことであ
る。
明の精神および範囲を逸脱することなく種々の変更を行
うことができることは、当業者にとって当然のことであ
る。
【0081】
【発明の効果】以上説明したように、本発明によれば、
上記のように構成したので、データ処理システムの全体
的なシステムパフォーマンスを改善することができる。
上記のように構成したので、データ処理システムの全体
的なシステムパフォーマンスを改善することができる。
【図1】キャッシュを有するデータ処理システムのシス
テムデータフローを示すブロック図である。
テムデータフローを示すブロック図である。
【図2】ロードミスが生じた後のキャッシュの状態と対
応するデータタグを示す図である。
応するデータタグを示す図である。
【図3】ストアミスが生じた後のキャッシュの状態と対
応するタグを示す図である。
応するタグを示す図である。
【図4】CPU命令のロード/ストアシーケンスが生じ
た後のキャッシュの状態と対応するタグを示す図であ
る。
た後のキャッシュの状態と対応するタグを示す図であ
る。
【図5】CPU命令のロード/ストアシーケンスの後に
ミスが生じた場合のキャッシュの状態と、対応するタグ
を示す図である。
ミスが生じた場合のキャッシュの状態と、対応するタグ
を示す図である。
【図6】ロードミスが生じた後のキャッシュの状態と、
対応するタグを示す図である。
対応するタグを示す図である。
【図7】リネームCRB命令が生じた後のキャッシュの
状態と、対応するタグを示す図である。
状態と、対応するタグを示す図である。
【図8】CPU命令のロード/リネームシーケンスの後
にミスが生じた場合のキャッシュの状態と、対応するタ
グを示す図である。
にミスが生じた場合のキャッシュの状態と、対応するタ
グを示す図である。
【図9】dcmtrbおよびdcrrb 命令のフォーマットを示す
図である。
図である。
10 CPU 12,14 バス 16,22 マルチプレクサ 18 キャッシュリロードバッファ 20 データキャッシュアレイ 30 タグアレイ 40 制御ロジック 50 システムメモリ 60 CRB タグアレイ 70 タグマッチングロジック 80 CRB タグマッチングロジック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン トーマス オークィン ザ セカ ンド アメリカ合衆国 78727 テキサス州 オ ースチン ハローデン ドライブ 2700
Claims (7)
- 【請求項1】 データ処理システムのメモリアクセス方
法であって、 複数のデータバイトを前記データ処理システムのメモリ
からキャッシュの第1のラインにロードするステップ
と、 前記複数のデータバイトを前記キャッシュの第2のライ
ンに、前記メモリに再アクセスすることなくストアする
ステップとを備えたことを特徴とする方法。 - 【請求項2】 データ処理システムのメモリアクセス方
法において、キャッシュの第1のキャッシュラインに前
記データ処理システムのメモリにストアされたデータを
ロードするステップと、 第2のキャッシュラインに前記第1キャッシュラインに
ストアされたデータをロードするステップとを備えたこ
とを特徴とする方法。 - 【請求項3】 データ処理システムのメモリアクセス方
法において、 キャッシュディレクトリにディレクトリエントリを有す
るキャッシュラインに、前記データ処理システムのメモ
リにストアされたデータをロードするステップと、 前記キャッシュラインのディレクトリエントリをリネー
ムするステップとを備えたことを特徴とする方法。 - 【請求項4】 データ処理システムのメモリにアクセス
するシステムであって、 複数のデータバイトを、前記データ処理システムのメモ
リから、キャッシュの第1のラインにロードする手段
と、 前記複数のデータバイトを前記キャッシュの第2のライ
ンに、前記メモリに再アクセスせずにストアする手段と
を備えたことを特徴とするシステム。 - 【請求項5】 データ処理システムのメモリにアクセス
するシステムであって、 キャッシュの第1のキャッシュラインに前記データ処理
システムのメモリにストアされたデータをロードする手
段と、 第2のキャッシュラインに前記第1キャッシュラインに
ストアされたデータをロードする手段とを備えたことを
特徴とするシステム。 - 【請求項6】 データ処理システムのメモリをアクセス
するシステムであって、 キャッシュディレクトリにディレクトリエントリを有す
るキャッシュラインに前記データ処理システムのメモリ
にストアされたデータをロードする手段と、 前記キャッシュラインのディレクトリエントリをリネー
ムする手段とを備えたことを特徴とするシステム。 - 【請求項7】 データ処理システムのメモリにアクセス
するシステムであって、 CPUと、 該CPUに結合され、複数のデータバイトを、前記デー
タ処理システムのメモリから、キャッシュの第1ライン
にロードする手段と、 前記CPUに結合され、前記複数のデータバイトを、前
記キャッシュの第2のラインに、前記メモリを再アクセ
スせずにストアする手段とを備えたことを特徴とするシ
ステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US95035192A | 1992-09-24 | 1992-09-24 | |
US950351 | 1992-09-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06161893A true JPH06161893A (ja) | 1994-06-10 |
JP2737820B2 JP2737820B2 (ja) | 1998-04-08 |
Family
ID=25490318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5206635A Expired - Lifetime JP2737820B2 (ja) | 1992-09-24 | 1993-08-20 | メモリアクセス方法およびシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5555400A (ja) |
EP (1) | EP0589661A1 (ja) |
JP (1) | JP2737820B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011211711A (ja) * | 2010-03-29 | 2011-10-20 | Intel Corp | 通信プロトコルにおけるパケット・サイズの削減 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3078204B2 (ja) * | 1995-06-01 | 2000-08-21 | 株式会社東芝 | 磁気ディスク装置及び磁気ディスク装置におけるバッファ管理方法 |
US6658552B1 (en) * | 1998-10-23 | 2003-12-02 | Micron Technology, Inc. | Processing system with separate general purpose execution unit and data string manipulation unit |
US7111125B2 (en) * | 2002-04-02 | 2006-09-19 | Ip-First, Llc | Apparatus and method for renaming a data block within a cache |
US6901483B2 (en) * | 2002-10-24 | 2005-05-31 | International Business Machines Corporation | Prioritizing and locking removed and subsequently reloaded cache lines |
EP1544742A1 (en) * | 2003-12-17 | 2005-06-22 | Alcatel | Method for reducing the processing time of a data processing device |
CN101546282B (zh) * | 2008-03-28 | 2011-05-18 | 国际商业机器公司 | 用于在处理器中执行写拷贝的方法和设备 |
US9652387B2 (en) | 2014-01-03 | 2017-05-16 | Red Hat, Inc. | Cache system with multiple cache unit states |
US10126952B2 (en) | 2015-11-05 | 2018-11-13 | International Business Machines Corporation | Memory move instruction sequence targeting a memory-mapped device |
US9996298B2 (en) | 2015-11-05 | 2018-06-12 | International Business Machines Corporation | Memory move instruction sequence enabling software control |
US10241945B2 (en) | 2015-11-05 | 2019-03-26 | International Business Machines Corporation | Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions |
US10331373B2 (en) * | 2015-11-05 | 2019-06-25 | International Business Machines Corporation | Migration of memory move instruction sequences between hardware threads |
US10042580B2 (en) | 2015-11-05 | 2018-08-07 | International Business Machines Corporation | Speculatively performing memory move requests with respect to a barrier |
US10140052B2 (en) | 2015-11-05 | 2018-11-27 | International Business Machines Corporation | Memory access in a data processing system utilizing copy and paste instructions |
US10346164B2 (en) | 2015-11-05 | 2019-07-09 | International Business Machines Corporation | Memory move instruction sequence targeting an accelerator switchboard |
US10152322B2 (en) * | 2015-11-05 | 2018-12-11 | International Business Machines Corporation | Memory move instruction sequence including a stream of copy-type and paste-type instructions |
US10067713B2 (en) | 2015-11-05 | 2018-09-04 | International Business Machines Corporation | Efficient enforcement of barriers with respect to memory move sequences |
CN108572926B (zh) * | 2017-03-13 | 2022-02-22 | 阿里巴巴集团控股有限公司 | 一种用于同步中央处理器所属缓存的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02141846A (ja) * | 1988-11-24 | 1990-05-31 | Hitachi Ltd | バッファメモリ制御方式 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4028675A (en) * | 1973-05-14 | 1977-06-07 | Hewlett-Packard Company | Method and apparatus for refreshing semiconductor memories in multi-port and multi-module memory system |
JPS5730179A (en) * | 1980-07-29 | 1982-02-18 | Fujitsu Ltd | Buffer memory control system |
US4400770A (en) * | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
ATE63011T1 (de) * | 1987-02-16 | 1991-05-15 | Siemens Ag | Verfahren zur steuerung des datenaustausches zwischen verarbeitungseinheiten und einem speichersystem mit cachespeicher in datenverarbeitungsanlagen, sowie ein entsprechend arbeitender cachespeicher. |
EP0348628A3 (en) * | 1988-06-28 | 1991-01-02 | International Business Machines Corporation | Cache storage system |
US5313613A (en) * | 1988-12-30 | 1994-05-17 | International Business Machines Corporation | Execution of storage-immediate and storage-storage instructions within cache buffer storage |
US5226169A (en) * | 1988-12-30 | 1993-07-06 | International Business Machines Corp. | System for execution of storage-immediate and storage-storage instructions within cache buffer storage |
EP0375883A3 (en) * | 1988-12-30 | 1991-05-29 | International Business Machines Corporation | Cache storage system |
JPH02213960A (ja) * | 1989-02-14 | 1990-08-27 | Hitachi Ltd | キャッシュメモリ |
JPH0661068B2 (ja) * | 1989-07-18 | 1994-08-10 | 株式会社日立製作所 | 記憶再配置方法および階層化記憶システム |
US5170476A (en) * | 1990-01-22 | 1992-12-08 | Motorola, Inc. | Data processor having a deferred cache load |
US5197144A (en) * | 1990-02-26 | 1993-03-23 | Motorola, Inc. | Data processor for reloading deferred pushes in a copy-back data cache |
US5261066A (en) * | 1990-03-27 | 1993-11-09 | Digital Equipment Corporation | Data processing system and method with small fully-associative cache and prefetch buffers |
US5179682A (en) * | 1990-05-15 | 1993-01-12 | Sun Microsystems, Inc. | Method and apparatus for improved current window cache with switchable address in, out, and local cache registers |
US5313609A (en) * | 1991-05-23 | 1994-05-17 | International Business Machines Corporation | Optimum write-back strategy for directory-based cache coherence protocols |
-
1993
- 1993-08-20 JP JP5206635A patent/JP2737820B2/ja not_active Expired - Lifetime
- 1993-09-20 EP EP93307432A patent/EP0589661A1/en not_active Withdrawn
-
1995
- 1995-02-08 US US08/385,217 patent/US5555400A/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02141846A (ja) * | 1988-11-24 | 1990-05-31 | Hitachi Ltd | バッファメモリ制御方式 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011211711A (ja) * | 2010-03-29 | 2011-10-20 | Intel Corp | 通信プロトコルにおけるパケット・サイズの削減 |
Also Published As
Publication number | Publication date |
---|---|
JP2737820B2 (ja) | 1998-04-08 |
US5555400A (en) | 1996-09-10 |
EP0589661A1 (en) | 1994-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4831520A (en) | Bus interface circuit for digital data processor | |
US5636374A (en) | Method and apparatus for performing operations based upon the addresses of microinstructions | |
US4985825A (en) | System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer | |
US4701844A (en) | Dual cache for independent prefetch and execution units | |
JP2737820B2 (ja) | メモリアクセス方法およびシステム | |
US5465336A (en) | Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system | |
US5202972A (en) | Store buffer apparatus in a multiprocessor system | |
US5375216A (en) | Apparatus and method for optimizing performance of a cache memory in a data processing system | |
JP5120832B2 (ja) | 効率的かつ柔軟なメモリ・コピー動作 | |
US5249286A (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
US4851991A (en) | Central processor unit for digital data processing system including write buffer management mechanism | |
KR100308682B1 (ko) | 다중방향연관외부마이크로프로세서캐쉬 | |
EP0303648B1 (en) | Central processor unit for digital data processing system including cache management mechanism | |
JPH0526215B2 (ja) | ||
JP2007172610A (ja) | 半同期メモリ・コピー動作において用いられるアドレス範囲の妥当性 | |
JPH02190930A (ja) | ソフトウエア命令実行装置 | |
JPS63193230A (ja) | 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法 | |
EP1782184B1 (en) | Selectively performing fetches for store operations during speculative execution | |
US5091845A (en) | System for controlling the storage of information in a cache memory | |
US5119484A (en) | Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction | |
US6237066B1 (en) | Supporting multiple outstanding requests to multiple targets in a pipelined memory system | |
US5325520A (en) | Invoking hardware recovery actions via action latches | |
EP0459233A2 (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
US6338128B1 (en) | System and method for invalidating an entry in a translation unit | |
US5841999A (en) | Information handling system having a register remap structure using a content addressable table |