JP2002287959A - ロード・ストアキュー - Google Patents

ロード・ストアキュー

Info

Publication number
JP2002287959A
JP2002287959A JP2001093994A JP2001093994A JP2002287959A JP 2002287959 A JP2002287959 A JP 2002287959A JP 2001093994 A JP2001093994 A JP 2001093994A JP 2001093994 A JP2001093994 A JP 2001093994A JP 2002287959 A JP2002287959 A JP 2002287959A
Authority
JP
Japan
Prior art keywords
store
load
instruction
address
queue
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
Application number
JP2001093994A
Other languages
English (en)
Other versions
JP3497832B2 (ja
Inventor
Hidehiko Tanaka
英彦 田中
Shuichi Sakai
修一 坂井
Shusuke Tsuji
秀典 辻
Yuichiro Yasujima
雄一郎 安島
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.)
Semiconductor Technology Academic Research Center
Original Assignee
Semiconductor Technology Academic Research Center
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 Semiconductor Technology Academic Research Center filed Critical Semiconductor Technology Academic Research Center
Priority to JP2001093994A priority Critical patent/JP3497832B2/ja
Priority to US10/092,989 priority patent/US7058049B2/en
Publication of JP2002287959A publication Critical patent/JP2002287959A/ja
Application granted granted Critical
Publication of JP3497832B2 publication Critical patent/JP3497832B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/3834Maintaining memory consistency

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)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 高速処理が可能であり、大規模なエントリを
有するテーブルを小規模な回路により構成することが困
難であった。 【解決手段】 ストア命令のイン・オーダー・情報をイ
ン・オーダー・ステイトキュー101に格納し、ストア
・アドレス及びストア値はアドレスをインデックスとす
るテンポラル・ストアキャッシュ102に格納してい
る。このため、ロード命令とアドレスが一致するストア
命令の検索を従来に比べて高速化できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えばプロセッサ
に適用されるロード・ストアキューに関する。
【0002】
【従来の技術】プロセッサにおける命令の実行手順の1
つとして、アウト・オブ・オーダー(out-of-order)実
行がある。このアウト・オブ・オーダー実行は先行命令
と依存関係にない後続命令を順不同に実行する方式であ
る。
【0003】ロード・ストアキューは、アウト・オブ・
オーダー実行を行うプロセッサにおいて、アウト・オブ
・オーダーに処理されるロード・ストア命令に対して、
メモリを介したデータ依存関係を維持するために利用さ
れる。
【0004】具体的には、ロード・ストアキューは、メ
モリアクセス命令の順番を把握し、アウト・オブ・オー
ダーに発行されるメモリアクセス命令の順序を管理す
る。したがって、アウト・オブ・オーダー実行によるメ
モリアクセスの追い越しを回避できる。
【0005】図2は、ロード・ストアキューとプロセッ
サ及びデータ・キャッシュとの関係を示している。
【0006】図2において、ロード・ストアキュー11
は、プロセッサ(プロセッサの実行機構)12と、デー
タ・キャッシュ13の間に配置されている。このロード
・ストアキュー11は、プロセッサからアウト・オブ・
オーダーに発行されるストア要求とロード要求を全て受
取り、イン・オーダー(in-order)を保証したストア命
令をデータ・キャッシュ13に書き込み、イン・オーダ
ーを保証したロード値をマルチプレクサ(MUX)14
を介してプロセッサ(プロセッサの実行ユニット)11
に返す。ロード・ストアキュー11は、アウト・オブ・
オーダーに発行されるストア命令を保持する図示せぬテ
ーブルと、アウト・オブ・オーダーに発行されるロード
命令の値を読み出し、選択する機構により構成されてい
る。
【0007】次に、図2に示すロード・ストアキュー、
プロセッサ及びデータ・キャッシュの動作について概略
的に説明する。ロード・ストアキューの動作は次の4つ
に分けられる。
【0008】1.(イン・オーダー情報の取得処理) プロセッサ12により、ストア命令がデコードされた時
点(アウト・オブ・オーダーに処理される前)におい
て、ロード・ストアキュー11はプロセッサ12からイ
ン・オーダーにストア命令のデコード情報(21)を受
け取る。これにより、ストア命令のイン・オーダー情報
を確保する。
【0009】2.(ストア要求の処理) プロセッサ12内で、ストア命令のアドレスと値が確定
した時点で、ロード・ストアキュー11はプロセッサ1
2からストア要求(22)を受け取り、ロード・ストア
キュー11の中にストア命令のアドレスと値を保持す
る。この値は、ストア命令がアウト・オブ・オーダーの
状態の間、つまり、ストア命令がリタイアしてイン・オ
ーダーが確定するまで保持される。
【0010】3.(ロード要求の処理) ロード・ストアキュー11は、プロセッサ12からのロ
ード要求(25)に応じて、ロード命令のアドレスを受
け取り、ロード命令を処理する。仮に、このロード命令
がロード・ストアキュー11内にあるストア値(イン・
オーダーが確定してない当該ロード命令に先行するスト
ア値)に対するものであった場合、ロード・ストアキュ
ー11の当該ロード命令の値を持つストア命令から値を
取り出す。該当するストア命令がなければデータ・キャ
ッシュ13よりロード値(26)を読み込む。
【0011】実際の動作において、プロセッサ12は、
該当するロード要求(25)をデータ・キャッシュ13
とロード・ストアキュー11に対して発行する。ロード
・ストアキュー11にこのロード命令に先行するストア
値がある場合、ロード・ストアキュー11からデータが
存在する旨を示すヒット信号(28)がマルチプレクサ
14に供給される。マルチプレクサ14はヒット信号
(28)が供給された場合、ロード・ストアキュー11
からのロード値(27)を選択する。また、先行するス
トア値がなくヒット信号(28)が供給されない場合、
マルチプレクサ14は、データ・キャッシュ13からの
ロード値(26)を選択する。このようにしてマルチプ
レクサ14により選択されたロード値(29)はプロセ
ッサ12に供給される。
【0012】4.(ストア命令のリタイア処理) ストア命令が確定し、イン・オーダー順が確定した場
合、プロセッサ(プロセッサの実行機構)12からリタ
イア情報(23)が出力される。ロード・ストアキュー
11はリタイア情報(23)を受け取り、ロード・スト
アキュー11内にあるストア命令をデータ・キャッシュ
13に書き戻し(24)、ロード・ストアキュー11内
のエントリを削除する。
【0013】図3は、従来のロード・ストアキューの構
成を示している。従来のロード・ストアキューは、タグ
情報及びアドレスにより連想検索可能なキューとして実
装されている。
【0014】すなわち、図3に示すロード・ストアキュ
ー11は、例えば連想検索が可能なテーブル30と、キ
ューの先頭を表すポインタ31と末尾を表すポインタ3
2、複数のセレクタ33、34、35、36、比較器3
7、38、39、40及びマルチプレクサ41により構
成されている。
【0015】上記構成において、前述した4つの動作に
ついて説明する。
【0016】1.(イン・オーダー情報の取得処理) この処理は、デコード時のイン・オーダー情報として、
ストア命令のタグ情報(イン・オーダーに与えられるプ
ロセッサ内で一意な番号)を受け取り、キュー内にイン
・オーダーにエントリを確保する。
【0017】すなわち、先ず、デコード時のイン・オー
ダー情報としてストア命令のタグ情報(ストアタグ(5
1))がプロセッサから出力される。このストアタグ
(51)は、セレクタ34に供給される。
【0018】ポインタ32はキューの末尾に対応するテ
ーブル30のエントリを指定する(52)。セレクタ3
4はポインタ32により指定されたエントリにタグ情報
を供給する。このタグ情報は指定されたエントリに書き
込まれ、これとともに、バリッドが有効とされる(5
3)。
【0019】このとき、ロード・ストアキュー11のス
トア命令のアドレス、ストア値のエントリは空のままで
ある。また、ポインタ32が指し示すエントリは、スト
アタグ(51)の入力タイミングに応じて例えば“+
1”されて変更される。
【0020】2.(ストア要求の処理) この処理は、ストア命令のタグ情報、ストア命令のアド
レス、ストア値を受け取り、すでに確保されている(タ
グ情報が一致する)エントリに書き込む。
【0021】すなわち、ストア要求として、ストア命令
のタグ情報(ストアタグ(54))、ストア命令のアド
レス(ストア・アドレス(55))、ストア値(56)
がプロセッサから出力される。前記ストアタグ(54)
は比較器37に供給され、ストア・アドレス(55)、
ストア値(56)はセレクタ35、36にそれぞれ供給
される。
【0022】比較器37はテーブル30のバリッドエン
トリを検索して有効なタグを取り出す(57)。これと
ともに、テーブル30のタグエントリからストアタグ
(54)と一致するエントリを検索する(58)。この
ようにして、ストア・アドレス(55)、ストア値(5
6)の書き込み先エントリを検索する。
【0023】セレクタ35、36は、検索されたエント
リ(59)にストア・アドレス(55)及びストア値
(56)を供給する。このようにして、テーブル30に
確保されているエントリにストア・アドレス(55)、
ストア値(56)が書き込まれる。
【0024】3.(ロード要求の処理) この処理は、ロード命令のタグ情報と、ロード命令のア
ドレスを受け取り、先行するストア命令(タグ情報によ
り検索)のうちアドレスが一致する(アドレスにより検
索)ストア命令を検索する。該当するストア命令が存在
する場合、その旨を知らせるヒット信号を出力するとと
もに、ロード値としてアドレスが一致するストア命令の
値を出力する(ストアからロードへの値のフォワーディ
ング)。
【0025】すなわち、ロード要求として、ロード命令
のタグ情報(ロードタグ(62))及びロード命令のア
ドレス(ロード・アドレス(63))がプロセッサより
出力される。比較器38、39はロードタグ(62)及
びロード・アドレス(63)を受け取る。
【0026】比較器38は、テーブル30のバリッドエ
ントリを検索して有効なタグを取り出す(64)。これ
と同時に、テーブル30のタグエントリを検索すること
により、ロードタグ(62)に先行した位置にあるスト
ア命令(65)を検索する。
【0027】比較器39は、テーブル30のアドレス・
エントリを検索してロード・アドレス(63)と一致す
るストア命令のエントリを検索する(66)。
【0028】比較器40は、比較器38、39の出力信
号に基づき、ロード命令に先行し、かつアドレスが一致
するストア命令のエントリが存在するかどうか調べる。
この結果、このようなストア命令が存在する場合、ヒッ
ト信号(67)を出力する。さらに、マルチプレクサ4
1は、比較器40の出力信号に応じて該当するエントリ
を選択し、そのエントリの値をロード値(68)として
出力する。
【0029】4.(ストア命令のリタイア処理) この処理は、リタイア情報として、リタイアするストア
命令のタグ情報を受け取り、該当するストア命令のエン
トリをキューから削除する。
【0030】すなわち、リタイア情報として、リタイア
するストア命令のタグ情報(ストアタグ(69))がプ
ロセッサから出力される。セレクタ33はこのストアタ
グ(69)を受ける。
【0031】ポインタ31はキューの先頭に対応する削
除すべきテーブルのエントリを指定する(70)。前記
セレクタ33はポインタ31により指定されたエントリ
にストアタグ(69)を供給する。これに応じて、テー
ブル30の指定されたエントリのストア・アドレスと値
はデータ・キャッシュに出力され(71)、そのエント
リが削除される。前記ポインタ31が指し示すエントリ
は前記ストアタグ(69)の入力タイミングに応じて例
えば“+1”され、変更される。
【0032】
【発明が解決しようとする課題】ところで、上記従来の
ロード・ストアキューは、ロード・ストアキューに対す
るストア要求処理の際、イン・オーダーに確保されたテ
ーブル30に対し、ストア命令のアドレスと値をテーブ
ル30の該当エントリに書き込む必要がある。このた
め、ストア命令のアドレスと値を書き込むエントリを検
索するために、テーブル30の全タグエントリがストア
タグに一致しているかどうかを検索して、書き込み先を
特定しなければならない。このため、検索に長時間を要
し、高速処理が困難であった。
【0033】また、ロード・ストアキューに対するロー
ド要求処理の際、ロード命令に先行するストア命令を検
索するとともに、ロード命令とアドレスが一致する命令
を検索する必要がある。すなわち、従来は、先行するス
トア命令のエントリを読み出した後、その中からアドレ
スが一致するものを検索する必要がある。したがって、
ロード要求処理においても、処理の高速化が困難であっ
た。
【0034】さらに、ストア要求処理とロード要求処理
において、ストア・アドレス、ロード・アドレスによ
り、テーブル30の全エントリを検索する必要がある。
このため、大規模なエントリを有するテーブルを構成し
ようとした場合、処理速度が低下するとともに、回路構
成が複雑化し実現が困難であった。
【0035】本発明は、上記課題を解決するためになさ
れたものであり、その目的とするところは、高速処理が
可能であるとともに、大規模なエントリを有するテーブ
ルを小規模な回路により構成することが可能なロード・
ストアキューを提供しようとするものである。
【0036】
【課題を解決するための手段】本発明のロード・ストア
キューは、上記課題を解決するため、ストア命令のイン
・オーダー情報を格納する第1のテーブルと、ストア命
令のストア・アドレスとストア値を保持し、アドレスを
インデックスとして検索することが可能な第2のテーブ
ルと、ロード命令のタグ情報に応じて、前記第1のテー
ブル内に格納されたストア命令から、前記ロード命令に
先行するストア命令を検索する第1の検索手段と、前記
ロード命令のアドレスに応じて前記第2のテーブルから
読み出されたストア命令と前記第1の検索手段により検
索されたストア命令が一致した場合、一致信号を出力す
る第2の検索手段とを具備している。
【0037】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して説明する。
【0038】図1は、本発明に係るロード・ストアキュ
ーの一実施形態を示している。
【0039】図3に示す、従来のロード・ストアキュー
11は、ストア命令のイン・オーダー情報とストア命令
のアドレスと値を同じテーブル30により管理してい
た。これに対して、本発明のロード・ストアキューは、
ストア命令のイン・オーダー情報を格納するテーブル
と、ストア命令のアドレスと値を保持するテーブルを分
離している。
【0040】すなわち、図1に示す本発明のロード・ス
トアキュー100は、イン・オーダー・ステイトキュー
101、テンポラル・ストアキャッシュ102、ポイン
タ103、ポインタ104、セレクタ105、106、
及び比較器107、108を有している。
【0041】前記イン・オーダー・ステイトキュー10
1は、タグにより連想検索が可能なテーブルである。イ
ン・オーダー・ステイトキュー101は、複数のタグエ
ントリと、これらタグエントリに対応されたバリッドエ
ントリを有している。但し、イン・オーダー・ステイト
キュー101の構成はこれに限定されるものではない。
このイン・オーダー・ステイトキュー101は、プロセ
ッサにより、例えばロード命令、或いはストア命令がデ
コードされた時点でエントリが確保される。
【0042】一方、前記テンポラル・ストアキャッシュ
102はアドレスをインデックスとして検索することが
可能なテーブルである。このこのテンポラル・ストアキ
ャッシュ102は、複数のアドレス・エントリと、これ
らアドレス・エントリに対応されたバリッドエントリ、
タグエントリ、バリューエントリを有している。ストア
命令は、例えばアドレスが計算された時点で、ストア・
アドレスを用いてテンポラル・ストアキャッシュ102
にストア値が書き込まれる。
【0043】前記ポインタ103は、イン・オーダー・
ステイトキュー101内の先頭、すなわち、実行中のロ
ード・ストア命令の中で最も古いものを指し示してい
る。ポインタ104は、イン・オーダー・ステイトキュ
ー101内の末尾、すなわち、実行中のロード・ストア
命令の中で最も新しいものを指し示している。前記セレ
クタ105は、例えばリタイア情報を受け、セレクタ1
06は、例えばデコード情報を受ける。
【0044】比較器107は、イン・オーダー・ステイ
トキュー101に対応して配置されている。この比較器
107には、ロード要求処理時に、ロード命令のタグ情
報(ロードタグ)が供給される。この比較器107は、
供給されたロードタグに応じて、このロード命令に先行
するストア命令がイン・オーダー・ステイトキュー10
1内にあるかどうか検索する。この結果、先行するスト
ア命令がある場合、そのストア命令のタグ情報をターゲ
ットタグとして出力する。
【0045】比較器108は、テンポラル・ストアキャ
ッシュ102に対応して配置されるともに、前記比較器
107に接続されている。この比較器108は、テンポ
ラル・ストアキャッシュ102内のタグを検索するとと
もに、検出したタグが比較器107から供給されるター
ゲットタグと一致するかどうかを比較する機能を有して
いる。
【0046】次に、上記構成のロード・ストアキューの
動作について説明する。
【0047】1.(イン・オーダー情報の取得) デコード時のイン・オーダー情報としてストア命令のタ
グ情報(ストアタグ(121))がプロセッサから出力
される。このストアタグ(121)は、セレクタ106
に供給される。
【0048】ポインタ104は、イン・オーダー・ステ
イトキュー101の末尾のエントリを示しており、この
ポインタ104により、イン・オーダー・ステイトキュ
ー101を書き込むエントリが指定される(122)。
【0049】セレクタ106は、ポインタ104により
指定されたイン・オーダー・ステイトキュー101の末
尾のエントリに、前記入力されたストアタグ(121)
を供給する。このストアタグ(121)は指定されたエ
ントリに書き込まれ、このストアタグに対応するバリッ
ドが有効とされる(123)。
【0050】前記ポインタ104の内容は、前記ストア
タグ(121)の入力タイミングに応じて例えば“+
1”され、変更される。
【0051】2.(ストア要求の処理) 次に、ストア要求として、ストア命令のタグ情報(スト
アタグ(125))、ストア命令のアドレス(ストア・
アドレス(124))、ストア値(126)がプロセッ
サから出力される。
【0052】前述したように、テンポラル・ストアキャ
ッシュ102は、アドレスをインデックスとしてエント
リを指定することが可能なテーブルである。すなわち、
テンポラル・ストアキャッシュ102のエントリは、ス
トア・アドレス(124)をインデックスとして指定さ
れ、この指定されたエントリにストアタグ(125)、
ストア値(126)が書き込まれる。
【0053】3.(ロード要求の処理) 次に、ロード要求として、ロード命令のタグ情報(ロー
ドタグ(127))及びロード命令のアドレス(ロード
・アドレス(128))がプロセッサより出力される。
前記ロードタグ(127)は比較器107に供給され
る。この比較器107は、このロードタグ(127)に
応じて、先行するストア命令を検索する。すなわち、比
較器107は、イン・オーダー・ステイトキュー101
のバリッドエントリを検索して有効なタグ情報を取り出
す(129)。これとともに、このタグ情報に従ってタ
グエントリを検索することにより、入力されたロードタ
グ(127)に先行する位置にあるストア命令を検索
(130)する。この検索されたストア命令はターゲッ
トタグ(131)として比較器108に供給される。
【0054】一方、前記ロード・アドレス(128)は
テンポラル・ストアキャッシュ102にインデックスと
して供給される。テンポラル・ストアキャッシュ102
は、インデックスとしてのロード・アドレス(128)
と一致する有効なストアタグ(132)と、これに対応
する値を読み出す。この読み出されたストアタグ(13
2)とバリッドデータ(133)は、比較器108に供
給される。
【0055】比較器108は、テンポラル・ストアキャ
ッシュ102から供給されたストアタグ(132)が、
前記比較器107から供給されるロード命令に先行する
ストア命令のタグと一致するかどうかを比較する。この
結果、これらが一致する場合、比較器108はヒット信
号を出力(134)を出力する。これとともに、前記テ
ンポラル・ストアキャッシュ102から読み出されたス
トア値は、ロード値(135)として出力される。
【0056】4.(ストア命令のリタイア処理) ストア命令のリタイア処理において、先ず、リタイアす
るストア命令のタグ情報(ストアタグ)及びストア・ア
ドレス(136)がプロセッサから出力される。セレク
タ105はこのストアタグ及びストア・アドレス(13
6)を受ける。
【0057】ポインタ103はキューの先頭に対応する
イン・オーダー・ステイトキュー101のエントリを指
定する。前記セレクタ105はポインタ103により指
定されたエントリに前記ストアタグ(136)を供給す
る。これに応じて、指定されたバリッドエントリ及びタ
グエントリを削除する(137)。
【0058】さらに、セレクタ105は入力された前記
ストア・アドレス(136)をインデックスとして、テ
ンポラル・ストアキャッシュ102のエントリを指定し
(138)、この指定したエントリのストア・アドレス
とストア値を図示せぬデータ・キャッシュに出力する
(139)。それとともに、そのエントリの内容を削除
する。
【0059】また、前記ポインタ103の内容は、前記
ストアタグ(136)の入力タイミングに応じて例えば
“+1”され、変更される。
【0060】上記実施形態によれば、ストア命令のイン
・オーダー・情報をイン・オーダー・ステイトキュー1
01に格納し、ストア命令のアドレス及びストア値は、
アドレスをインデックスとするテンポラル・ストアキャ
ッシュ102に格納している。このため、ストア処理要
求を高速に処理できる。すなわち、従来の方式では、書
き込むエントリを検索するために、テーブルの全タグエ
ントリがストアタグに一致しているかどうかを検索し、
書き込み先を特定する必要を有していた。これに対し
て、本実施形態の場合、ストア・アドレスをインデック
スとしてテンポラル・ストアキャッシュ102を検索で
き、ストアタグの検索なしにエントリを特定できる。し
たがって、高速にストア処理を実行できる。
【0061】また、本実施形態によれば、ロード要求処
理において、ロード命令とアドレスが一致するストア命
令の検索を従来に比べて高速化できる。すなわち、従来
の方式では、先行するストア命令のエントリを読み出
し、この読み出したエントリの中からアドレスが一致す
るものを検索していたため処理に長時間を要していた。
これに対して、本実施形態の場合、ロード要求処理にお
いて、先行するストア命令の検索と、アドレスが一致す
るストア命令の読み出しを並行して実行でき、両者が一
致するかどうかを比較するだけでロード命令とアドレス
が一致するストア命令を検索することができる。したが
って、高速な処理が可能である。
【0062】しかも、テンポラル・ストアキャッシュ1
02は、アドレスをインデックスとしてアクセスできる
ため、ストア・アドレスによりストアタグを検索するこ
となくエントリを特定できる。したがって、高速な処理
が可能である。
【0063】また、従来の構成の場合、ストア要求とロ
ード要求の際にアドレスによるエントリの全検索が必要
である。このため、ロード・ストアキューのエントリを
増やした場合処理速度が低下するため、ロード・ストア
キューのエントリを増化することが困難である。これに
対して、本実施形態の場合、テンポラル・ストアキャッ
シュ102はアドレスをインデックスとしたテーブルに
より構成されている。このため、従来のように、アドレ
スによるエントリの全検索が不要であるため、テンポラ
ル・ストアキャッシュ102の大規模化が可能であり、
規模が従来と同様であれば、従来の方式より高速化が可
能である。
【0064】さらに、従来の方式の場合、先行するスト
ア命令のエントリを読み出し、この読み出したエントリ
の中からアドレスが一致するものを検索していた。この
ため多くの比較器を必要としていた。これに対して、本
実施形態の場合、ロード要求処理において、先行するス
トア命令をイン・オーダー・ステイトキュー101から
検索するための比較器107、及びこの比較器107か
らの出力と、テンポラル・ストアキャッシュ102から
読み出したストア命令とを比較する比較器108だけで
よい。このため、比較器の数を削減することができ回路
構成を簡単化できる利点を有している。
【0065】尚、ストア命令のイン・オーダー情報を格
納するイン・オーダー・ステイトキュー101の構成
は、イン・オーダー情報が検索できるテーブルであれ
ば、どのような形でもよい。
【0066】また、ストア値を保持するテンポラル・ス
トアキャッシュ102は、アドレスをインデックスとし
ているが、アドレス空間の広さと用意するエントリによ
って、アドレス・エントリのマッピング方法は任意に変
えてもよい。このため、テンポラル・ストアキャッシュ
102は、アドレスをインデックスとした従来の殆どの
キャッシュの構成を適用できる。
【0067】その他、本発明の要旨を変えない範囲にお
いて種々変形実施可能なことは勿論である。
【0068】
【発明の効果】以上、詳述したように本発明によれば、
高速処理が可能であるとともに、大規模なエントリを有
するテーブルを小規模な回路により構成することが可能
なロード・ストアキューを提供できる。
【図面の簡単な説明】
【図1】本発明の実施形態を示す構成図。
【図2】ロード・ストアキューとプロセッサ及びデータ
・キャッシュとの関係を示す構成図。
【図3】従来のロード・ストアキューを示す構成図。
【符号の説明】
100…ロード・ストアキュー、 101…イン・オーダー・ステイトキュー、 102…テンポラル・ストアキャッシュ、 103、104…ポインタ、 105、106…セレクタ、 107、108…比較器。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 安島 雄一郎 千葉県船橋市前原東6−22−4 Fターム(参考) 5B005 JJ11 KK12 MM03 MM23 NN73 PP03 5B013 AA12 CC00 DD00 5B060 CB01 CB09

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 ストア命令のイン・オーダー情報を格納
    する第1のテーブルと、 ストア命令のストア・アドレスとストア値を保持し、ア
    ドレスをインデックスとして検索することが可能な第2
    のテーブルと、 ロード命令のタグ情報に応じて、前記第1のテーブル内
    に格納されたストア命令から、前記ロード命令に先行す
    るストア命令を検索する第1の検索手段と、 前記ロード命令のアドレスに応じて前記第2のテーブル
    から読み出されたストア命令と前記第1の検索手段によ
    り検索されたストア命令が一致した場合、一致信号を出
    力する第2の検索手段とを具備することを特徴とするロ
    ード・ストアキュー。
  2. 【請求項2】 前記第1のテーブル内のキューの先頭を
    示す第1のポインタと、前記第1のテーブル内のキュー
    の末尾を示す第2のポインタをさらに具備することを特
    徴とする請求項1記載のロード・ストアキュー。
  3. 【請求項3】 前記第2のテーブルは、前記ロード命令
    のアドレスに応じてストア値を出力することを特徴とす
    る請求項1記載のロード・ストアキュー。
  4. 【請求項4】 リタイアするストア命令のタグ情報に応
    じて、前記第1のテーブルのエントリを削除するととも
    に、前記リタイアするストア命令のアドレスに応じて前
    記第2のテーブルからストア・アドレスとストア値を読
    み出すリタイア処理手段をさらに具備することを特徴と
    する請求項1記載のロード・ストアキュー。
JP2001093994A 2001-03-28 2001-03-28 ロード・ストアキュー Expired - Fee Related JP3497832B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001093994A JP3497832B2 (ja) 2001-03-28 2001-03-28 ロード・ストアキュー
US10/092,989 US7058049B2 (en) 2001-03-28 2002-03-08 Load store queue applied to processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001093994A JP3497832B2 (ja) 2001-03-28 2001-03-28 ロード・ストアキュー

Publications (2)

Publication Number Publication Date
JP2002287959A true JP2002287959A (ja) 2002-10-04
JP3497832B2 JP3497832B2 (ja) 2004-02-16

Family

ID=18948261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001093994A Expired - Fee Related JP3497832B2 (ja) 2001-03-28 2001-03-28 ロード・ストアキュー

Country Status (2)

Country Link
US (1) US7058049B2 (ja)
JP (1) JP3497832B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007527563A (ja) * 2003-07-08 2007-09-27 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド インデックス付ルックアップを使用したストア−ロードフォーワード(stl)バッファ
JP2007536626A (ja) * 2004-05-05 2007-12-13 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ロードオペレーションの投機的な結果をレジスタ値にリンクするメモリファイルを検証するためのシステムおよび方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117392B2 (en) * 2003-10-22 2012-02-14 Intel Corporation Method and apparatus for efficient ordered stores over an interconnection network
US20060129764A1 (en) * 2004-12-09 2006-06-15 International Business Machines Corporation Methods and apparatus for storing a command
US7343434B2 (en) * 2005-03-31 2008-03-11 Intel Corporation Buffer management within SLS (simple load store) apertures for inter-endpoint communication in advanced switching fabric
US7600099B2 (en) * 2007-03-08 2009-10-06 International Business Machines Corporation System and method for predictive early allocation of stores in a microprocessor
US9170962B2 (en) * 2007-12-21 2015-10-27 International Business Machines Corporation Dynamic designation of retirement order in out-of-order store queue
US8930680B2 (en) * 2007-12-21 2015-01-06 International Business Machines Corporation Sync-ID for multiple concurrent sync dependencies in an out-of-order store queue
US8533438B2 (en) * 2009-08-12 2013-09-10 Via Technologies, Inc. Store-to-load forwarding based on load/store address computation source information comparisons
EP2862062B1 (en) * 2012-06-15 2024-03-06 Intel Corporation A virtual load store queue having a dynamic dispatch window with a distributed structure
CN104823154B (zh) * 2012-06-15 2017-12-29 英特尔公司 包括虚拟加载存储队列的处理器和系统
KR101993562B1 (ko) 2012-06-15 2019-09-30 인텔 코포레이션 Load store 재정렬 및 최적화를 구현하는 명령어 정의
KR101818967B1 (ko) 2012-06-15 2018-01-16 인텔 코포레이션 명확화 없는 비순차 load store 큐
KR101825585B1 (ko) 2012-06-15 2018-02-05 인텔 코포레이션 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들
WO2013188701A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. A method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization
US11113056B2 (en) * 2019-11-27 2021-09-07 Advanced Micro Devices, Inc. Techniques for performing store-to-load forwarding

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5467473A (en) * 1993-01-08 1995-11-14 International Business Machines Corporation Out of order instruction load and store comparison
DE69506623T2 (de) * 1994-06-03 1999-07-22 Motorola Inc Datenprozessor mit einer Ausführungseinheit zur Durchführung von Ladebefehlen und Verfahren zu seinem Betrieb
US5809275A (en) * 1996-03-01 1998-09-15 Hewlett-Packard Company Store-to-load hazard resolution system and method for a processor that executes instructions out of order
JPH10262063A (ja) * 1997-03-19 1998-09-29 Fujitsu Ltd セルスイッチング方法及びセル交換システム
US6185671B1 (en) * 1998-03-31 2001-02-06 Intel Corporation Checking data type of operands specified by an instruction using attributes in a tagged array architecture
US6266747B1 (en) * 1998-10-30 2001-07-24 Telefonaktiebolaget Lm Ericsson (Publ) Method for writing data into data storage units
US6269427B1 (en) * 1999-03-18 2001-07-31 International Business Machines Corporation Multiple load miss handling in a cache memory system
US6266767B1 (en) * 1999-04-22 2001-07-24 International Business Machines Corporation Apparatus and method for facilitating out-of-order execution of load instructions
US6901500B1 (en) * 2000-07-28 2005-05-31 Silicon Graphics, Inc. Method and apparatus for prefetching information and storing the information in a stream buffer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007527563A (ja) * 2003-07-08 2007-09-27 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド インデックス付ルックアップを使用したストア−ロードフォーワード(stl)バッファ
JP2007536626A (ja) * 2004-05-05 2007-12-13 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ロードオペレーションの投機的な結果をレジスタ値にリンクするメモリファイルを検証するためのシステムおよび方法

Also Published As

Publication number Publication date
US7058049B2 (en) 2006-06-06
JP3497832B2 (ja) 2004-02-16
US20020141426A1 (en) 2002-10-03

Similar Documents

Publication Publication Date Title
KR100278328B1 (ko) 캐시 미스 버퍼
JP3497832B2 (ja) ロード・ストアキュー
US10146545B2 (en) Translation address cache for a microprocessor
KR100955433B1 (ko) 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법
KR20040033029A (ko) 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치
JP2000242545A (ja) データ処理システムにおいてメモリ・アクセス要求を処理するための装置および方法
US5781923A (en) Adding a field to the cache tag in a computer system to indicate byte ordering
US20120173843A1 (en) Translation look-aside buffer including hazard state
JPH0630075B2 (ja) キャッシュメモリを有するデータ処理装置
JP2001184211A (ja) 処理システムにおいてスタックのポップおよびプッシュ動作を行なうための装置および方法
JP3729545B2 (ja) キャッシュメモリへのアクセス
US6862670B2 (en) Tagged address stack and microprocessor using same
CN114756287B (zh) 一种重排序缓冲区的数据处理方法、装置及存储介质
US7111127B2 (en) System for supporting unlimited consecutive data stores into a cache memory
JP2009199384A (ja) データ処理装置
EP0502211A1 (en) System equipped with processor and method of converting addresses in said system
US6671781B1 (en) Data cache store buffer
JPH0552539B2 (ja)
JP2001195301A (ja) パイプラインキャッシュメモリの更新回路
CN115712392A (zh) 一种基于Buffer的Cache控制器及工作方法
JPS61136145A (ja) キヤツシユメモリ制御回路
JP2001022581A (ja) データ処理装置及びコンピュータ読み取り可能な記憶媒体
JPH04225429A (ja) データ処理装置
JPH04255995A (ja) 命令キャッシュ
JPH11242594A (ja) 情報処理装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071128

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081128

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081128

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091128

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091128

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101128

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101128

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131128

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees