JPH0719222B2 - ストアバッフア - Google Patents

ストアバッフア

Info

Publication number
JPH0719222B2
JPH0719222B2 JP1080043A JP8004389A JPH0719222B2 JP H0719222 B2 JPH0719222 B2 JP H0719222B2 JP 1080043 A JP1080043 A JP 1080043A JP 8004389 A JP8004389 A JP 8004389A JP H0719222 B2 JPH0719222 B2 JP H0719222B2
Authority
JP
Japan
Prior art keywords
request
data
store
address
load
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.)
Expired - Lifetime
Application number
JP1080043A
Other languages
English (en)
Other versions
JPH02257343A (ja
Inventor
孝三 山野
師人 中込
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP1080043A priority Critical patent/JPH0719222B2/ja
Priority to FR9004014A priority patent/FR2645297A1/fr
Priority to US07/501,905 priority patent/US5163157A/en
Publication of JPH02257343A publication Critical patent/JPH02257343A/ja
Publication of JPH0719222B2 publication Critical patent/JPH0719222B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置において使用されるキャッシュメ
モリ装置におけるストアバッファに関する。
〔従来の技術〕
今日の情報処理装置の多くは、メモリ・アクセスタイム
の向上を図るため、キャッシュメモリ装置を採用してい
る。また、そのうち、パイプライン方式を採用している
ものの多くは、ストア要求にかかるアドレスやデータを
一時的にキャッシュメモリとは独立に保持しておくスト
アバッファと呼ばれる記憶手段を有する。ストアバッフ
ァが必要な理由は、1つには、ストアアドレスの生成と
ストアデータの作成とに時間的なずれがある為それを調
整する必要があること、もう1つは、ストア要求はロー
ド要求よりも低い優先度が与えられており、待ち合わせ
を行わなければならないことによる。すなわち、ロード
要求とストア要求との間では原則としてロード要求が優
先され、ストア要求についてはストアバッファに格納さ
れた後に、ロード要求がキャッシュメモリや主記憶とア
クセスを行っていない間をぬって処理され、主記憶やキ
ャッシュメモリに対してデータの書き込みが行われる。
但し、後続のロード要求が未だ処理されていない先行す
るストア要求にかかるデータを必要とする場合には、ロ
ード要求を優先すると古いデータを要求基に返すことに
なるので、この場合にはストア要求をロード要求より優
先的に処理するようにしている。すなわち、ストアバッ
ファに蓄積されている全ての未処理のストア要求を主記
憶およびキャッシュメモリに反映した後、ロード要求を
処理する。
〔発明が解決しようとする課題〕
上述したように従来においては、先行するストア要求と
競合するロード要求が出現すると、ストアバッファに蓄
積された全ての未処理のストア要求を優先的に処理した
後にロード要求を処理している。これによって、データ
に矛盾が生じることを防止することが可能であるが、ス
トアバッファ内の未処理のストア要求が全て処理される
まで、更にロード要求が処理されてキャッシュメモリや
主記憶がアクセスされて所望のロードデータが得られる
までの長い時間、ロード要求元はリプライ待ちになると
いう問題点があった。
そこで本発明の目的は、先行するストア要求と競合する
ロード要求が出現した場合においてもデータの無矛盾性
を確保しつつ極力速やかにロード要求基にリプライを返
すことのできるストアバッファを提供することにある。
〔課題を解決するための手段〕
本発明は上記の目的を達成するために、ストア要求を直
ちにキャッシュメモリおよび主記憶に反映せずに一時バ
ッファリングする複数エントリを含むストアバッファに
おいて、ストアすべきデータが未到着な最新の未処理の
ストア要求にかかるアドレスを保持するレジスタと、ロ
ード要求にかかるアドレスと前記レジスタに保持された
アドレスとに基づいて、前記ロード要求が前記ストア要
求にかかるデータと同一データをロード対象データして
いるか否かを検出する検出手段と、該検出手段で同一デ
ータを対象にしていることが検出された場合、前記スト
アすべきデータが到着することにより、該データをスト
アデータバッファをバイパスさせて前記ロード要求の要
求元へ返送するバイパス手段とを有している。
また、本発明の好ましい実施例においては、前記レジス
タはストアすべきデータが未到着な最新の未処理のスト
ア要求にかかるアドレスに加えてデータ位置情報も保持
し、前記検出手段は、ロード要求にかかるアドレスおよ
びデータ位置情報と前記レジスタに保持されたアドレス
およびデータ位置情報とに基づいて、前記ロード要求が
前記ストア要求にかかるデータと同一データをロード対
象データとしているか否かを検出するようにしている。
〔作用〕
本発明のストアバッファにおいては、レジスタが、スト
アすべきデータが未到着な最新の未処理のストア要求に
かかるアドレスを保持し、検出手段が、ロード要求にか
かるアドレスと前記レジスタに保持されたアドレスとに
基づいて、ロード要求がストア要求にかかるデータと同
一データをロード対象データとしているか否かを調べ、
同一データを対象としている場合、バイパス手段が、ス
トアすべきデータが到着することにより、そのデータを
ストアデータバッファをバイパスさせてロード要求の要
求元へ返送する。
〔実施例〕
次に、本発明の実施例について図面を参照して詳細に説
明する。
第1図は、本発明の一実施例のストアバッファの要部ブ
ロック図である。この実施例のストアバッファは、リク
エストコードレジスタ(以下RQRと称す)1,リクエスト
アドレスレジスタ(以下RARと称す)2,最新ストアアド
レスレジスタ(以下SBAと称す)3,ストアリクエストコ
ードバッファ(以下SCBと称す)4,ストアアドレスバッ
ファ(以下SABと称す)5,ストアデータバッファ(以下S
DBと称す)6,SAB有効ビットF/F(以下Vと称す)7,デー
タ位置情報F/F(以下SFEと称する)8,制御回路(以下CT
Lと称す)9およびバイパスレジスタ(以下BPR)10を備
えている。各要素の構成ないし機能は次の通りである。
・PAR2 アクセス要求元からのリクエストアドレスを保持する。
・RQR1 アクセス要求元からのリクエストコードを保持する。こ
こで、リクエストコードには、アクセス要求の種別,指
示内容,データ幅,バウンダリをそれぞれ指示するデー
タが含まれる。
データ幅を指示するデータは本実施例の場合たとえば1
ビットで構成され、たとえば8バイトのデータに対し、
全バイトを実際のアクセス対象とするときには論理値
“1"が、前半あるいは後半の4バイトを実際のアクセス
対象とするときには論理値“0"が、それぞれ設定され
る。
また、バウンダリを指示するデータは本実施例の場合た
とえば1ビットで構成され、たとえば8バイトのデータ
の4バイト目をバウンダリとするときには論理値“1"
が、8バイト目(あるいは0バイト目)をバウンダリと
するときには論理値“0"が、それぞれ設定される。
なお、データ幅を指示するデータとバウンダリを指示す
るデータとを総称してデータ位置情報と呼んでいる。
・SCB4 未処理のストア要求にかかるリクエストコードを登録し
ておくバッファであり、複数のエントリを含む。
・SAB5 未処理のストア要求にかかるアドレスを登録しておくバ
ッファであり、複数のエントリを含む。
・SDB6 未処理のストア要求にかかるデータを登録しておくバッ
ファであり、複数のエントリを含む。
・SBA3 最新のストア要求にかかるアドレスを保持するレジスタ
である。
・V7 最新のストア要求にかかるアドレスがSBA3に保持された
ときにONにされ、そのストア要求にかかるデータが演算
部から到着してSDB6に格納された時点でOFFされるフリ
ップフロップを含む。
・SFE8 最新のストア要求にかかるリクエストコード中のデータ
位置情報を保持するフリップフロップ群である。
・BPR10 演算部から到着したストア要求にかかるデータをCTL9か
らの指示に応答してSDB6とは独立に保持し、ロード要求
の要求元へ送出するレジスタである。
・CTL9 RQR1,V7,SFE8,SBA3,RAR2の各出力を入力とし、当該スト
アバッファの制御を司る手段である。特に本実施例で
は、SBA3およびSFE8に保持された最新の未処理ストア要
求にかかるアドレスおよびデータ位置情報とRAR2および
RQR1に保持されたロード要求にかかるアドレスおよびデ
ータ位置情報とに基づいて、最新のストア要求の書込デ
ータ幅および書込データバウンダリが後続のロード要求
の読出しデータ幅および読出しデータバウンダリに一致
するか否かを検出する検出回路90を有する。そして、CT
L9は、RQR1にロード要求にかかるリクエストコードが格
納されたときにV7がON状態であれば、検出回路90で一致
が検出されたか否かを判別し、一致が検出されていると
きは、SBA3に保持されたストア要求にかかるアドレスに
対応するストアデータが演算部から到着したとき、その
データをSDB6に登録すると共にBPR10に格納してロード
要求基に返送する、つまりSDB6やキャッシュメモリ,主
記憶をバイパスして返送する。
第2図は、本実施例において上記のようにしてバイパス
を行い得る最新ストア要求,後続ロード要求のパターン
例を示している。同図(a),(b),(c)とも8バ
イトバウンダリは一致している。同図(a)は、最新ス
トア要求8バイトストア(データ幅=“1",バウンダリ
=“0")で、後続ロード要求が8バイトロード(データ
幅“1",バウンダリ=“0")の場合、同図(b)は、最
新ストア要求が後半4バイトストア(データ幅=“0",
バウンダリ=“1")で、後続ロード要求が後半4バイト
ロード(データ幅=“0",バウンダリ=“1")の場合、
同図(c)は、最新ストア要求が前半4バイトストア
(データ幅=“0",バウンダリ=“0")で、後続ロード
要求が前半4バイトロード(データ幅=“0",バウンダ
リ=“0")の場合を、それぞれ示す。
次に、このように構成された本実施例の動作を説明す
る。
アクセス要求元から、アクセス要求にかかるリクエスト
コード,リクエストアドレスが送られてくると、リクエ
ストコードはRQR1に、リクエストアドレスはRAR2にそれ
ぞれ格納される。CTL9はRQR1に格納されたリクエストコ
ードを解読して所望の制御動作を行う。即ち、CTL9はロ
ード要求のリクエストコードであれば、RQR1に保持され
たリクエストコードおよびRAR2に保持されたリクエスト
アドレスをキャッシュメモリ,主記憶へ送出する。また
ストア要求のリクエストコードであれば、RQR1に保持さ
れたリクエストコードをSCb4にRAR2に保持されたリクエ
ストアドレスをSAB5にそれぞれ登録すると同時に、RAR2
に保持されたリクエストアドレスをSBA3に、RQR1に保持
されたリクエストコード中のデータ位置情報をSFE8にそ
れぞれ格納すると共に、V7をON状態にし、演算部からの
当該ストア要求にかかるデータの待ち合わせをする。
今、或るストア要求αがあって、そのリクエストコード
がSCB4に、そのリクエストアドレスがSAB3およびSAB5
に、そのリクエストアドレス中のデータ位置情報がSFE8
にそれぞれ格納され、またV7がONにされた後、次にロー
ド要求βがあった場合を想定する。このとき、CTL9で
は、ロード要求βにかかるリクエストコードがRQR1に格
納された時点でV7がONになっているので、検出回路90に
おいてSBA3およびSFE8に保持されたストア要求αのアド
レスおよびデータ位置情報とRAR2およびRQR1に保持され
たロード要求βにかかるアドレスおよびデータ位置情報
とに基づいて、ロード要求βがストア要求αにかかるデ
ータと同一データをロード対象データとしているか否か
が検出される。そして、検出回路90において両データが
一致すると検出されると即ち第2図のパターンの何れか
であると、CTL9は、SBA3に保持されたストア要求αのア
ドレスに対応するストアデータが演算部から到着したと
き、そのデータをSDB6に登録すると共にBPR10に格納
し、リプライデータとしてロード要求βの要求元へ返
す。この結果、ロード要求βについてはキャッシュメモ
リや主記憶へのアクセス無しにその処理が終了する。
他方、検出回路90において両データの不一致が検出され
ると、CTL9は上述したような処理は行わない。この場
合、当該ロード要求βは従来と同様に処理される。
なお、演算部で生成されたストアデータがSDB6に登録さ
れると、V7がOFFにされる。また、ストア要求にかかる
リクエストコード,リクエストアドレス,データが揃っ
たので、主記憶やキャッシュメモリが受付可能状態にな
ると、そのリクエストコード,リクエストアドレス,デ
ータが主記憶とキャッシュメモリの両方に送出され、ス
トア要求の反映が行われる。
〔発明の効果〕
以上説明したように、本実施例のストアバッファにおい
ては、先行するストア要求と競合するロード要求が出現
した場合においても、それらのデータ幅およびバウンダ
リが一致していれば、データの無矛盾性を保証しつつ、
上記のストア要求にかかるデータが到着した時点でそれ
を上記のロード要求の要求基に速やかに返すことが可能
となる。この結果、ストアバッファに蓄積された全ての
未処理のストア要求を処理し更にその後にロード要求を
処理していた従来に比べて、ロード要求の処理を高速化
することができる効果がある。また、ストアデータバッ
ファをバイパスさせるため、ストアデータバッファに一
旦書き込んだ後、それを読み出してキャッシュをバイパ
スさせて要求元に返送する構成に比べても、ロード要求
の処理を高速化できる。
【図面の簡単な説明】
第1図は本発明の一実施例の要部ブロック図、 第2図はロード要求を高速処理し得るパターン例を示す
図である。 図において、 1…RQR(リクエストコードレジスタ) 2…RAR(リクエストアドレスレジスタ) 3…SBA(最新ストアアドレスレジスタ) 4…SCB(ストアリクエストコードバッファ) 5…SAB(ストアアドレスバッファ) 6…SDB(ストアデータバッファ) 7…V(SBA有効ビットF/F) 8…SFE(データ位置情報F/F) 9…CTL(制御回路) 90…検出回路 10…BPR(バイパスレジスタ)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】ストア要求を直ちにキャッシュメモリおよ
    び主記憶に反映せずに一時バッファリングする複数エン
    トリを含むストアバッファにおいて、 ストアすべきデータが未到着な最新の未処理のストア要
    求にかかるアドレスを保持するレジスタと、 ロード要求にかかるアドレスと前記レジスタに保持され
    たアドレスとに基づいて、前記ロード要求が前記ストア
    要求にかかるデータと同一データをロード対象データと
    しているか否かを検出する検出手段と、 該検出手段で同一データを対象にしていることが検出さ
    れた場合、前記ストアすべきデータが到着することによ
    り、該データをストアデータバッファをバイパスさせて
    前記ロード要求の要求元へ返送するバイパス手段とを具
    備したことを特徴とするストアバッファ。
  2. 【請求項2】ストア要求を直ちにキャッシュメモリおよ
    び主記憶に反映せずに一時バッファリングする複数エン
    トリを含むストアバッファにおいて、 ストアすべきデータが未到着な最新の未処理のストア要
    求にかかるアドレスおよびデータ位置情報を保持するレ
    ジスタと、 ロード要求にかかるアドレスおよびデータ位置情報と前
    記レジスタに保持されたアドレスおよびデータ位置情報
    とに基づいて、前記ロード要求が前記ストア要求にかか
    るデータと同一データをロード対象データとしているか
    否かを検出する検出手段と、 該検出手段で同一データを対象にしていることが検出さ
    れた場合、前記ストアすべきデータが到着することによ
    り、該データをストアデータバッファをバイパスさせて
    前記ロード要求の要求元へ返送するバイパス手段とを具
    備したことを特徴とするストアバッファ。
JP1080043A 1989-03-30 1989-03-30 ストアバッフア Expired - Lifetime JPH0719222B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP1080043A JPH0719222B2 (ja) 1989-03-30 1989-03-30 ストアバッフア
FR9004014A FR2645297A1 (fr) 1989-03-30 1990-03-29 Ordinateur de transfert avec un trajet de derivation pour le renvoi de donnees a une source de commandes
US07/501,905 US5163157A (en) 1989-03-30 1990-03-30 Pipeline computer with bypass route for returning data to request source

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1080043A JPH0719222B2 (ja) 1989-03-30 1989-03-30 ストアバッフア

Publications (2)

Publication Number Publication Date
JPH02257343A JPH02257343A (ja) 1990-10-18
JPH0719222B2 true JPH0719222B2 (ja) 1995-03-06

Family

ID=13707216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1080043A Expired - Lifetime JPH0719222B2 (ja) 1989-03-30 1989-03-30 ストアバッフア

Country Status (3)

Country Link
US (1) US5163157A (ja)
JP (1) JPH0719222B2 (ja)
FR (1) FR2645297A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522052A (en) * 1991-07-04 1996-05-28 Matsushita Electric Industrial Co. Ltd. Pipeline processor for processing instructions having a data dependence relationship
MX9206002A (es) * 1991-10-29 1993-04-01 Ericsson Telefon Ab L M Ahorro de tiempo en la lectura de variables de datos almacenados en un dispositivo de memoria y disminucion de la carta de un dispositivo indicador
US5435001A (en) * 1993-07-06 1995-07-18 Tandem Computers Incorporated Method of state determination in lock-stepped processors
DE69415126T2 (de) * 1993-10-21 1999-07-08 Sun Microsystems Inc., Mountain View, Calif. Gegenflusspipelineprozessor
US6243770B1 (en) * 1998-07-21 2001-06-05 Micron Technology, Inc. Method for determining status of multiple interlocking FIFO buffer structures based on the position of at least one pointer of each of the multiple FIFO buffers
US6851044B1 (en) * 2000-02-16 2005-02-01 Koninklijke Philips Electronics N.V. System and method for eliminating write backs with buffer for exception processing
US6862677B1 (en) * 2000-02-16 2005-03-01 Koninklijke Philips Electronics N.V. System and method for eliminating write back to register using dead field indicator

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor
JPS5621242A (en) * 1979-07-28 1981-02-27 Fujitsu Ltd Pipeline control method for computer operation
JPS5848146A (ja) * 1981-09-18 1983-03-22 Toshiba Corp 命令先取り方式
JPH063584B2 (ja) * 1983-12-19 1994-01-12 株式会社日立製作所 情報処理装置
US4695943A (en) * 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
JPH0754461B2 (ja) * 1985-02-08 1995-06-07 株式会社日立製作所 情報処理装置
JPS62174846A (ja) * 1986-01-28 1987-07-31 Nec Corp ストアチエツク方式
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures

Also Published As

Publication number Publication date
JPH02257343A (ja) 1990-10-18
FR2645297A1 (fr) 1990-10-05
US5163157A (en) 1992-11-10

Similar Documents

Publication Publication Date Title
EP0533427A1 (en) Computer memory control system
JPH0719222B2 (ja) ストアバッフア
JP2829115B2 (ja) ファイル共用方法
JPH0756808A (ja) データキャッシュバッファ及び記憶方法
JP3100807B2 (ja) キャッシュメモリ装置
US6401144B1 (en) Method and apparatus for managing data transfers between peripheral devices by encoding a start code in a line of data to initiate the data transfers
JPH0830568A (ja) 分散メモリ型並列計算機のキャッシュ制御方式
JPS6113261B2 (ja)
JP3256558B2 (ja) 電子計算機におけるアドレス変換方式
JPH06103477B2 (ja) 並列キャッシュメモリ
JPH01251248A (ja) スタックデータ構造用キャッシュ制御方式
JPS63240651A (ja) キヤツシユメモリ
JPS5922977B2 (ja) 入出力装置によるペ−ジメモリ呼び出し方法
JPS6138504B2 (ja)
JPH02101552A (ja) アドレス変換バッファ処理方式
JPS5854478A (ja) 主記憶制御方法
JPH04107634A (ja) メモリデータバイパス制御方式
JPH0322053A (ja) ムーブ・イン・バッファ制御方式
JP2618096B2 (ja) キャッシュ管理方法
JPH056706B2 (ja)
JPH0752423B2 (ja) デ−タ転送制御方式
JPS5842546B2 (ja) ストア制御方式
JPS60123944A (ja) 情報処理装置におけるバツフアメモリ制御方式
JPH05120134A (ja) キヤツシユメモリ実装方式
JPH087663B2 (ja) コンピユータ・システムおよびその記憶装置アクセス方法