JP2000293436A - パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート - Google Patents

パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート

Info

Publication number
JP2000293436A
JP2000293436A JP2000081045A JP2000081045A JP2000293436A JP 2000293436 A JP2000293436 A JP 2000293436A JP 2000081045 A JP2000081045 A JP 2000081045A JP 2000081045 A JP2000081045 A JP 2000081045A JP 2000293436 A JP2000293436 A JP 2000293436A
Authority
JP
Japan
Prior art keywords
data
load
data source
storage
requests
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
JP2000081045A
Other languages
English (en)
Other versions
JP4585647B2 (ja
Inventor
Bi-Yu Pan
パン ビ−ユ
Marc Tremblay
トレンブレイ マーク
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2000293436A publication Critical patent/JP2000293436A/ja
Application granted granted Critical
Publication of JP4585647B2 publication Critical patent/JP4585647B2/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

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

Abstract

(57)【要約】 【課題】 既存のメモリシステムにおけるパフォーマン
スの制限を克服するメモリシステムを提供する。 【解決手段】 データキャッシュを有するコンピュータ
システムにおいて、複数のデータソースに対する実行エ
ンジンからの複数の未処理ロード要求をサポートする装
置であって、該実行エンジン、第1のデータソースおよ
び第2のデータソースに接続されたロード格納ユニット
であって、該第1のデータソースは該データキャッシュ
である、ロード格納ユニットと、該ロード格納ユニット
内にあるロードアドレスバッファであって、複数の未処
理ロード要求についてのアドレスを有するロードアドレ
スバッファと、1つのロード要求の間に該ロード格納ユ
ニットが受け取ったデータを格納するためのレジスタフ
ァイルと、該第1のデータソースおよび該第2のデータ
ソースの両方について、複数のロード要求が同時に未処
理状態となれるように、該ロードアドレスバッファ、該
レジスタファイル、該第1のデータソースおよび該第2
のデータソース間のデータフローを調節するように構成
されたコントローラと、を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムの設計に関する。特に、本発明は、複数のターゲッ
トへの同時未処理要求をサポートするコンピュータシス
テム用ロード格納ユニットの設計に関する。
【0002】
【従来の技術】最近のプロセッサ設計は、複数のパイプ
ライン機能ユニットを並列動作させることにより、高い
性能を実現している。これにより、ある所与のクロック
サイクルに対して、複数の演算処理を完了することがで
きる。そのようなプロセッサ設計に遅れを取らないため
に、メモリシステムは、複数のメモリアクセスをパイプ
ライン処理できるように改変されてきた。これにより、
既に出されたメモリアクセスが戻って来る前に、次のメ
モリアクセスを出すことが可能になる。これにより、全
体のメモリシステムスループットを大幅に高めることが
できる。
【0003】
【発明が解決しようとする課題】しかしながら、プログ
ラムの実行中にコンピュータプログラムがデータソース
(ターゲット)を変更すると、通常、このようなパイプ
ライン式メモリシステムは停止してしまい、システムパ
フォーマンスが大幅に悪化することがある。例えば、プ
ログラムが、メインメモリに対する複数のパイプライン
式アクセス間に、グラフィックスコプロセッサにアクセ
スを行うと、メインメモリへのアクセスは停止する。こ
れは、多くの異なるデータソース(ターゲット)へのイ
ンターリーブアクセスをサポートするプロセッサ設計に
とっては重大な問題となり得る。例えば、ある所与のプ
ロセッサは、データキャッシュ、メインメモリ、グラフ
ィックスコプロセッサおよび様々なバスインターフェイ
スのデータにアクセス可能であり得る。
【0004】さらに、このようなパイプライン式メモリ
システムが、ある所与のクロックサイクルについて出す
アクセス要求の数は、通常、最大1つである。これは、
複数の要求が複数のパイプライン式機能ユニットにより
同時に発生する場合、あるいは、リソースコンフリクト
に起因して複数の要求が1つのバッファに貯まっている
場合に、パフォーマンスを制限し得る。
【0005】既存のメモリシステムにおけるこのような
パフォーマンスの制限を克服するメモリシステム設計が
必要とされている。
【0006】
【課題を解決するための手段】本発明による装置は、デ
ータキャッシュを有するコンピュータシステムにおい
て、複数のデータソースに対する実行エンジンからの複
数の未処理ロード要求をサポートする装置であって、前
記実行エンジン、第1のデータソースおよび第2のデー
タソースに接続されたロード格納ユニットであって、前
記第1のデータソースは前記データキャッシュである、
ロード格納ユニットと、前記ロード格納ユニット内にあ
るロードアドレスバッファであって、複数の未処理ロー
ド要求についてのアドレスを有するロードアドレスバッ
ファと、1つのロード要求の間に前記ロード格納ユニッ
トが受け取ったデータを格納するためのレジスタファイ
ルと、前記第1のデータソースおよび前記第2のデータ
ソースの両方について、複数のロード要求が同時に未処
理状態となれるように、前記ロードアドレスバッファ、
前記レジスタファイル、前記第1のデータソースおよび
前記第2のデータソース間のデータフローを調節するよ
うに構成されたコントローラとを備えており、これによ
り、上記目的が達成される。
【0007】ある実施形態によれば、この装置は、複数
の未処理格納要求のアドレスを有する格納アドレスバッ
ファと、前記複数の未処理格納要求のデータを有する格
納データバッファとをさらに備え、前記コントローラ
は、前記第1のデータソースおよび前記第2のデータソ
ースの両方について、複数の格納要求が同時に未処理状
態となれるように、前記第1のデータソース、前記第2
のデータソース、前記格納アドレスバッファおよび前記
格納データバッファ間のデータフローを調整するように
構成されていてもよい。
【0008】ある実施形態によれば、前記ロード格納ユ
ニットはさらに第3のデータソースに接続されており、
前記コントローラは、前記第1のデータソース、前記第
2のデータソースおよび前記第3のデータソースについ
て、複数のロード要求が同時に未処理状態となれるよう
に、データフローを調整するように構成されていてもよ
い。
【0009】ある実施形態によれば、前記ロード格納ユ
ニットは、第1の通信経路を介して前記データキャッシ
ュに接続されているとともに、前記第1の通信経路とは
別の第2の通信経路を介して前記第2のデータソースに
接続されていてもよい。
【0010】ある実施形態によれば、「異常」を返すこ
とができるデータキャッシュに向けられたロード要求を
除いて、前記コンピュータシステムにおける前記複数の
データソースのそれぞれについて、ロード要求が「正
常」を返すように前記コントローラが構成されていても
よい。
【0011】ある実施形態によれば、ロード要求が他の
データソースからのロード要求に関しては「異常」を返
すことができるように前記コントローラが構成されてい
てもよい。
【0012】ある実施形態によれば、同じクロックサイ
クルにおいて複数のロード要求を異なるデータソースに
送ることができるように前記コントローラが構成されて
いてもよい。
【0013】ある実施形態によれば、前記コントローラ
は、前記ロードアドレスバッファ内の各エントリについ
て別々の状態マシンを含んでいてもよい。
【0014】ある実施形態によれば、前記第2のデータ
ソースは、コンピュータシステムバスへのインターフェ
ースを含んでいてもよい。
【0015】ある実施形態によれば、前記第2のデータ
ソースは、ランダムアクセス半導体メモリを含んでいて
もよい。
【0016】ある実施形態によれば、前記第2のデータ
ソースは、二次記憶装置を含んでいてもよい。
【0017】ある実施形態によれば、前記第2のデータ
ソースは、コンピュータグラフィックスアクセラレー
タ、プロセッサおよびブリッジチップのうちの1つを含
んでいてもよい。
【0018】ある実施形態によれば、前記ロードアドレ
スバッファ内の各エントリは、前記ロード要求のターゲ
ットを示す状態情報に関連付けられており、前記ターゲ
ットは、前記第1のデータソースおよび前記第2のデー
タソースのうちの1つを含んでいてもよい。
【0019】ある実施形態によれば、前記ロードアドレ
スバッファ内の各エントリは、関連するロード要求中に
受け取ったデータがキャッシュ可能であるかどうかを示
す状態情報に関連付けられていてもよい。
【0020】ある実施形態によれば、前記ロードアドレ
スバッファ内の各エントリは、関連するロード要求の状
態を示す状態情報に関連付けられていてもよい。
【0021】ある実施形態によれば、前記ロードアドレ
スバッファ内の各エントリは、関連するロード要求のデ
スティネーションレジスタを示す状態情報に関連付けら
れていてもよい。
【0022】ある実施形態によれば、前記ロード要求中
に受け取ったデータを、前記レジスタファイル内に格納
する前に、アラインするアラインメント回路をさらに備
えていてもよい。
【0023】本発明による、別の装置は、データキャッ
シュを有するコンピュータシステムにおいて、複数のデ
ータソースに対する実行エンジンからの複数の未処理ロ
ードおよび格納要求をサポートする装置であって、前記
実行エンジン、第1のデータソースおよび第2のデータ
ソースに接続されたロード格納ユニットであって、前記
第1のデータソースは前記データキャッシュである、ロ
ード格納ユニットと、前記ロード格納ユニット内にある
ロードアドレスバッファであって、複数の未処理ロード
要求についてのアドレスを有するロードアドレスバッフ
ァと、1つのロード要求の間に前記ロード格納ユニット
が受け取ったデータを格納するためのレジスタファイル
と、複数の未処理格納要求のアドレスを有する格納アド
レスバッファと、前記複数の未処理格納要求のデータを
有する格納データバッファと、前記第1のデータソース
および前記第2のデータソースの両方について、複数の
ロード要求が同時に未処理状態となれるように、前記ロ
ードアドレスバッファ、前記レジスタファイル、前記第
1のデータソースおよび前記第2のデータソース間のデ
ータフローを調節するように構成されたコントローラと
を備え、前記コントローラはさらに、前記第1のデータ
ソースおよび前記第2のデータソースの両方について、
複数の格納要求が同時に未処理状態となれるように、前
記第1のデータソース、前記第2のデータソース、前記
格納アドレスバッファおよび前記格納データバッファ間
のデータフローを調整するように構成されており、これ
により、上記目的が達成される。
【0024】ある実施形態によれば、前記ロード格納ユ
ニットはさらに第3のデータソースに接続されており、
前記コントローラは、前記第1のデータソース、前記第
2のデータソースおよび前記第3のデータソースについ
て、複数のロード要求が同時に未処理状態となれるよう
に、データフローを調整するように構成されていてもよ
い。
【0025】ある実施形態によれば、前記ロード格納ユ
ニットは、第1の通信経路を介して前記データキャッシ
ュに接続されているとともに、前記第1の通信経路とは
別の第2の通信経路を介して前記第2のデータソースに
接続されていてもよい。
【0026】ある実施形態によれば、「異常」を返すこ
とができるデータキャッシュに向けられたロード要求を
除いて、前記コンピュータシステムにおける前記複数の
データソースのそれぞれについて、ロード要求が「正
常」を返すように前記コントローラが構成されていても
よい。
【0027】ある実施形態によれば、ロード要求が他の
データソースからのロード要求に関しては「異常」を返
すことができるように前記コントローラが構成されてい
てもよい。
【0028】本発明による方法は、データキャッシュを
有するコンピュータシステムにおいて、複数のデータソ
ースに対する実行エンジンからの複数の未処理ロード要
求をサポートする方法であって、前記実行エンジンから
ロード要求を受け取るステップであって、前記ロード要
求は、第1のデータソースおよび第2のデータソースの
うちの1つを指定する、ステップと、前記ロード要求の
アドレスをロードアドレスバッファ内に格納するステッ
プであって、前記第1のデータソースおよび前記第2の
データソースの両方について、複数のロード要求が同時
に未処理状態となれるように、前記ロードアドレスバッ
ファは複数の未処理ロード要求のアドレスを有する、ス
テップと、前記ロード要求を前記第1のデータソースお
よび前記第2のデータソースのうちの1つに送るステッ
プであって、前記第1のデータソースは前記データキャ
ッシュである、ステップと、前記ロード要求に応答し
て、前記第1のデータソースおよび前記第2のデータソ
ースのうちの1つからのデータをレジスタファイル内に
受け取るステップとを包含しており、これにより、上記
目的が達成される。
【0029】ある実施形態によれば、この方法は、前記
実行エンジンから格納要求を受け取るステップと、前記
格納要求のアドレスを格納アドレスバッファ内に格納す
るステップであって、前記第1のデータソースおよび前
記第2のデータソースの両方について、複数の格納要求
が同時に未処理状態となれるように、前記格納アドレス
バッファは複数の未処理格納要求のアドレスを有する、
ステップと、前記格納要求のデータを格納データバッフ
ァ内に格納するステップであって、前記格納データバッ
ファは前記複数の未処理格納要求のデータを有する、ス
テップとをさらに包含してもよい。
【0030】ある実施形態によれば、前記ロード要求
は、さらに第3のデータソースにも向けられ得るもので
あり、前記第1のデータソース、前記第2のデータソー
スおよび前記第3のデータソースについて、複数のロー
ド要求が同時に未処理状態となれるものであってもよ
い。
【0031】ある実施形態によれば、前記ロード要求を
前記第1のデータソースおよび前記第2のデータソース
のうちの1つに送るステップは、前記ロード要求を、第
1の通信経路を介して前記第1のデータソースに、そし
て、第2の通信経路を介して前記第2のデータソースに
送るステップを含み、前記第2の通信経路は前記第1の
通信経路とは別であってもよい。
【0032】ある実施形態によれば、前記第1のデータ
ソースおよび前記第2のデータソースのうちの1つから
前記データを受け取るステップは、前記第2のデータソ
ースからデータ「正常」を受け取り、前記第1のデータ
ソースからデータ「異常」を受け取るステップを含んで
いてもよい。
【0033】ある実施形態によれば、前記第1のデータ
ソースおよび前記第2のデータソースのうちの1つから
前記データを受け取るステップは、前記データを第3の
データソースから受け取るステップを含み、前記第2の
データソースおよび前記第3のデータソース間では前記
データが「異常」として受け取られ得るようになってい
てもよい。
【0034】
【発明の実施の形態】以下の説明は、当業者に対して本
発明を生産および使用するために、特定の用途およびそ
の用途に関する要件のコンテキストにおいてなされるも
のである。本発明の精神および範囲を逸脱することな
く、当業者であれば、本明細書中に開示した実施形態の
様々な改変例が可能であり、また、本明細書中に示す一
般的原則を、他の実施形態および他の用途に応用するこ
とができる。従って、本発明の範囲は、ここに示す実施
形態の範囲に限定されるものではなく、本明細書中に開
示する原理および特徴によって規定される最も広い範囲
が本発明の範囲である。
【0035】(コンピュータシステム)図1は、本発明
のある実施形態におけるコンピュータシステムを示す。
このコンピュータシステムの回路の大部分は、半導体チ
ップ152内に設けられている。
【0036】コンピュータシステムは、2つの実行エン
ジン106および108を含むことに留意すべきであ
る。実行エンジン106および108はそれぞれ、複数
の命令を含むストリームを受け取り、特定のデータ項目
に対して、指定された処理を実行する。実行エンジン1
06および108は、演算処理およびデータ移動処理を
含む中央処理装置(CPU)の機能を実行する。実行エ
ンジン106および108は、それぞれレジスタファイ
ル110および112を含むことに留意すべきである。
レジスタファイル110および112は、それぞれ実行
エンジン106および108によって処理されるデータ
項目を格納するために用いられる。但し、本発明の別の
実施形態においては、実行エンジン106および108
は、実行エンジン106と108とで共有されるオーバ
ーラップレジスタにアクセスする。
【0037】実行エンジン106および108は、それ
ぞれ、命令フェッチユニット128および126から命
令ストリームを受け取る。より具体的には、命令フェッ
チユニット128は、ランダムアクセスメモリ(RA
M)150から命令ストリームを受け取る。この命令ス
トリームは、メモリインターフェース132、内部バス
インターフェースユニット(BIU)118、および命
令キャッシュ127を通って、命令フェッチユニット1
28に送られる。命令フェッチユニット128は、受け
取った命令ストリームをパイプライン制御ユニット12
4を介して実行エンジン106へと送る。同様に、命令
フェッチユニット126は、ランダムアクセスメモリ
(RAM)150から命令ストリームを受け取る。この
命令ストリームは、メモリインターフェース132、内
部バスインターフェースユニット118、および命令キ
ャッシュ125を通って、命令フェッチユニット126
に送られる。命令フェッチユニット126は、受け取っ
た命令ストリームをパイプライン制御ユニット122を
介して実行エンジン108へと送る。
【0038】RAM150は、コンピュータシステムの
メインメモリを構成するものであり、コードおよび/ま
たはデータを格納するランダムアクセス可能なコンピュ
ータメモリのあらゆるタイプを含む。命令キャッシュ1
27および125は、それぞれ実行エンジン106およ
び108によって実行される命令を格納できるあらゆる
タイプのキャッシュメモリを含む。命令フェッチユニッ
ト128および126は、命令に対するアクセスを調整
し、パイプライン制御ユニット124および122は、
それぞれ、これらの命令をパイプライン方式で実行でき
るように、スケジューリングの調整を行う。
【0039】実行エンジン106および108は、それ
ぞれ、ロード格納ユニット102および104からデー
タを受け取る。ロード格納ユニット102および104
は、データキャッシュ114、バスインターフェイス1
20および136、周辺バスインターフェイス134、
メモリインターフェイス132、ならびにジオメトリデ
コンプレッサ130を含む多数のソースに対するデータ
の送受信を調整する。
【0040】図示した実施形態において、周辺バスイン
ターフェイス134は、ディスク148に接続されたバ
ス138に接続されている。ディスク148は、ディス
クまたはテープドライブのような、コンピュータデータ
用のあらゆるタイプの不揮発性記憶装置を含む二次記憶
装置である。ディスク148はまた、周辺バス138に
取り付けられるあらゆるタイプの周辺装置を含み得る。
図示した実施形態の改変例においては、バス138はP
CIバスを含む。
【0041】バスインターフェイス136は、ホストシ
ステム146に接続されたバス140に接続される。こ
れにより、ホストシステム146を操作するユーザが、
演算タスクを実行エンジン106および108にダウン
ロードすることが可能となる。また、バスインターフェ
イス120は、グラフィックスアクセラレータ144に
接続されたバス142に接続されることに留意された
い。グラフィックスアクセラレータ144は、グラフィ
ックス演算を行うあらゆるタイプの回路であり得る。ジ
オメトリデコンプレッサ130もまた、グラフィックス
アクセラレータである。但し、ジオメトリデコンプレッ
サ130内の回路は、圧縮された形式で受け取られるグ
ラフィックスデータを解凍する特定のタスクを行うよう
に設計されている。
【0042】ロード格納ユニット102は、別々のデー
タパスを介してデータキャッシュ114およびインター
フェイス120に接続されている。これにより、データ
キャッシュ114およびバスインターフェース120に
同時にアクセスすることが可能になる。同様に、ロード
格納ユニット104は、別々のデータパスを介してデー
タキャッシュ114およびバスインターフェース120
に接続されている。このシステムは、ロード格納ユニッ
ト102および104の両方に接続された単一のデュア
ルポートデータキャッシュ114を含むことに留意され
たい。データキャッシュ114は、実行エンジン106
および108によって処理されるデータを格納できるあ
らゆるタイプのキャッシュメモリを含み得る。
【0043】内部バスインターフェースユニット118
は、半導体チップ152内に複数のデータパスおよびス
イッチング回路を有し、これにより、ロード格納ユニッ
ト102および104を複数のデータソース(ターゲッ
ト)に接続する。より具体的には、内部バスインターフ
ェースユニット118は、ロード格納ユニット102お
よび104を、メモリインターフェース132、周辺バ
スインターフェース134、バスインターフェース12
0、バスインターフェース136およびジオメトリデコ
ンプレッサ130に接続する。
【0044】図1に示すシステムの動作時の処理は概ね
以下の通りである。上記のように、RAM150から、
メモリインターフェース132および内部バスインター
フェースユニット118を介して、各命令フェッチユニ
ット128および126にそれぞれ命令ストリームが読
み出される。これらの命令ストリームは、それぞれ、パ
イプライン制御ユニット124および122を介して実
行エンジン106および108に送られる。これらの命
令ストリームを実行する際、実行エンジン106および
108は、それぞれ、ロード格納ユニット102および
104と、各実行エンジン106および108内のレジ
スタファイル110および112との間でデータを転送
する。ロード格納ユニット102および104は、デー
タキャッシュ114、バスインターフェース120、メ
モリインターフェース132、周辺バスインターフェー
ス134、バスインターフェース136およびジオメト
リデコンプレッサ130を含む複数のソースからデータ
を受け取る。
【0045】(ロード格納ユニット)図2は、本発明の
ある実施形態によるロード格納ユニット102の内部構
造の一部を示す。ロード格納ユニット102は、ロード
バッファ210、格納データバッファ230および格納
アドレスバッファ220を含む複数の機能ユニットを有
する。これらの機能ユニットは、LSUコントローラ2
50の制御下で動作する。
【0046】ロードバッファ210は、アライナ(al
igner)207、データキャッシュレジスタ20
4、MUX206、レジスタ208およびアレイ216
を含む複数の構成要素を有する。MUX206は、内部
バスインターフェースユニット118およびバスインタ
ーフェース120の出力のうちの一方を選択してレジス
タ208への入力とする。アライナ207は、データキ
ャッシュ114以外の複数のソースから受け取った複数
ワードのデータに対してバイトアラインメント処理を行
う。データキャッシュ114から受け取ったデータは、
データキャッシュ114内の回路によってアライン(a
lign)される。アレイ216は、5つのロードアド
レスについてのエントリ(例えば、ロードアドレスエン
トリ211、212、213、214および215)を
有する。これらの5つのロードアドレスにより、最大5
つの未処理ロード要求のアドレスを格納できる。これら
のロード要求は、ロード格納ユニット102に接続され
たデータソース(ターゲット)(例えば、データキャッ
シュ114、バスインターフェース120、メモリイン
ターフェース132、周辺バスインターフェース13
4、バスインターフェース136およびジオメトリデコ
ンプレッサ130)のいずれに対するものであり得る。
例えば、3つのアドレスがデータキャッシュ114への
未処理要求に関連付けられたものであり、2つのアドレ
スがRAM150への未処理要求に関連付けられたもの
であり得る。
【0047】ロードバッファ210内の回路は、アレイ
216内の各エントリについて別々の状態マシンを有す
るLSUコントローラ250の制御下で動作する。ロー
ドバッファ210内の回路は、概ね以下のように動作す
る。ロード要求を受け取ると、システムは、そのロード
要求のアドレスを、アレイ216内のエントリ内にある
追加状態情報と共に格納する。次に、システムは、指定
されたデータソースに対するロード要求を出す。要求さ
れたデータがデータキャッシュ114から返されると、
そのデータはデータキャッシュレジスタ204内に記録
される。そのデータは、データキャッシュレジスタ20
4から、実行エンジン106(図1参照)内のレジスタ
ファイル110内にある指定されたレジスタ内に送られ
る。要求されたデータが他のソースから返された場合、
そのデータは、MUX206およびアライナ207を介
してレジスタ208内に送られる。そのデータは、レジ
スタ208から、実行エンジン106内のレジスタファ
イル110内にある指定されたレジスタ内に送られる。
データが返されると、アドレスアレイ216内の対応す
るエントリが、新たなロード要求のために再使用できる
ように無効化される。
【0048】データキャッシュ114に対する要求は、
「異常」を返す場合がある。本システムをこのように設
計している理由は、要求によっては、キャッシュフォー
ルトを生じて非常に長い処理時間を要するものもあるか
らである。一部の要求が「異常」を返すことを可能にす
ることによって、キャッシュヒットを生じる要求が、キ
ャッシュミスを生じる要求を待つ必要がなくなる。但
し、データキャッシュ114以外のデバイスに対する要
求は、「正常」に返されなければならないことに留意さ
れたい。これは、ある所与のデバイスについて、そのデ
バイスが出した全ての要求が「正常」に返されることを
意味する。但し、デバイス間においては、要求が「異
常」を返してもよい。
【0049】格納処理は、格納データバッファ230お
よび格納アドレスバッファ220を用いて行われる。格
納データバッファ230は、アレイ240およびアライ
ナ239を有する。アレイ240は、最大8個の未処理
格納要求のデータ(例えば、格納データ231、23
2、233、234、235、236、237および2
38)を格納する8個のエントリを有する。格納アドレ
スバッファ220は、対応するアドレスと、これらの格
納要求に関連付けられた他の状態情報とを有する。格納
アドレスバッファ220は、格納アドレスバッファ22
1、222、223、224、225、226、227
および228を有する。
【0050】格納データバッファ230および格納アド
レスバッファ220は、格納アドレスバッファ220内
の各エントリについて別々の状態マシンを有するLSU
コントローラ250の制御下で動作する。格納データバ
ッファ230および格納アドレスバッファ220内の回
路は、概ね以下のように動作する。格納要求を受け取る
と、システムは、その格納要求のアドレスを、格納アド
レスバッファ220内のエントリ内にある追加状態情報
と共に格納する。この格納要求に関連付けられたデータ
は、格納データバッファ230内のアレイ240内にあ
る対応するエントリ内にロードされる。次に、システム
は、指定されたターゲットに格納要求を出す。最終的に
データがターゲットに書き出されると、格納データバッ
ファ230および格納アドレスバッファ220内にある
対応するエントリが、新たな格納要求のために再使用で
きるように無効化される。
【0051】(ロードアドレスバッファエントリ)図3
は、本発明のある実施形態によるロードバッファ210
内のアレイ216内にある所与のエントリにおいて保持
される情報の一部を示す。本実施形態において、エント
リは、ある特定エントリの状態を示す3または4ビット
の状態情報を含む。この状態情報は、対応するロード要
求の進行にともなって更新される。以下、図4を参照し
ながら、ある所与のエントリについての状態図を説明す
る。エントリは、そのロード要求についてのターゲット
(データソース)304を指定するための4ビットをも
含む。例えば、ターゲットは、図1に示したデータキャ
ッシュ114またはジオメトリデコンプレッサ130で
あり得る。エントリは、その特定のエントリがデータキ
ャッシュ114に格納すべきデータに対応するかどうか
を示すキャッシュ可能ビット306をも含む。さらに、
エントリは、その特定のエントリがその時点で使用中で
あるかどうかを特定する「使用中」ビット308を含
む。さらに、エントリは、ロード要求に対して、実行エ
ンジン106内のデスティネーションレジスタを指定す
るレジスタ指定子309を含む。さらに、アドレス31
0は、ロード要求のアドレスを有する。
【0052】(ロードアドレスバッファエントリの状態
マシン)図4は、本発明のある実施形態によるロードバ
ッファ210内の所与のエントリについての状態図であ
る。本システムは、通常、アイドル状態402から始ま
る。実行エンジン106から新たなロード命令が到着す
ると、システムは、以下に示す2つの選択肢の一方を選
択する。即ち、あるロード要求がその時点でキューに入
っている場合、システムは、ロード要求が到着したが、
データキャッシュ114または内部バスインターフェー
スユニット118には送られていない状態である状態4
04に移行する。その時点でキューにロード要求が全く
入っておらず且つそのアクセスがキャッシュ可能である
場合、システムは、直接、データキャッシュアクセスが
開始される状態である状態406に移行する。その時点
でキューにロード要求が全く入っておらず且つそのアク
セスがキャッシュ可能ではない場合、システムは、状態
412に移行する。
【0053】状態404において、そのアクセスがキャ
ッシュ可能である場合、システムは、データキャッシュ
アクセスが開始される状態である状態406に移行し、
そのアクセスがキャッシュ可能でない場合には、状態4
12に移行して、内部バスインターフェースユニット1
18へのアクセス待ちとなる。
【0054】状態406において、システムは、データ
キャッシュアクセスを開始する。キャッシュヒットがあ
れば、そのデータ項目がデータキャッシュによって直ち
に生成され、そのロード要求の処理が完了する。その
後、システムは、アイドル状態402に戻り、新たなロ
ード要求を受ける。キャッシュミスがあった場合、シス
テムが状態408に進んでデータキャッシュアクセスが
終了し、システムは次にメインメモリへのアクセスを開
始して状態412に進む。状態412において、メイン
メモリアクセスが開始され、内部バスインターフェース
ユニット118へのアクセス待ちとなる。アクセスが、
同じキャッシュラインに対する最近のキャッシュミスに
よって、現在メインメモリから検索中のキャッシュライ
ンである場合、システムは状態410に移行して、その
未処理キャッシュアクセスが完了するのを待つ。その未
処理キャッシュアクセスが完了すると、システムは、状
態406に戻ってキャッシュアクセスを継続する。
【0055】状態412において、システムは、内部バ
スインターフェースユニット118へのアクセス待ち状
態である。このアクセスは、(キャッシュ可能アクセス
の場合)メインメモリに対するアクセスであってもよい
し、あるいは、(非キャッシュ可能アクセスの場合)内
部バスインターフェースユニット118に接続された別
のターゲットに対するアクセスであってもよい。状態4
12において、システムは、内部バスインターフェース
ユニット118へのアクセス待ち状態である。アクセス
が許可されると、システムは、システムが内部バスイン
ターフェースユニット118を介してアクセス要求を出
して要求したデータが返されるのを待つ状態である状態
414に進む。システムは、次に、要求したデータを受
け取る状態である状態416に進む。要求されたデータ
が複数のワードにまたがっている場合もあるので、デー
タの受信は複数のデータ転送を必要とし得る。
【0056】最後に、システムは、ロード処理を完了
し、アイドル状態402に戻る。但し、新たなロード要
求が未処理である場合、システムは、アイドル状態40
2をスキップして、状態404に直接進んで新たなロー
ド処理を開始する。
【0057】ロード格納ユニット102は、データキャ
ッシュ114、内部バスインターフェースユニット11
8およびバスインターフェース120に接続される3つ
の別々のポートを有する。これにより、システム状態マ
シンが平行ディスパッチをサポートしていれば、ロード
格納ユニット102が、3つの要求を平行にディスパッ
チすることが可能になる。ロード格納ユニット104も
同様に、データキャッシュ114、内部バスインターフ
ェースユニット118およびバスインターフェース12
0に接続される3つの別々のポートを有する。
【0058】(格納アドレスバッファエントリの状態マ
シン)図5は、本発明のある実施形態による格納アドレ
スバッファ内の所与のエントリについての状態図であ
る。本システムは、通常、アイドル状態502から始ま
る。新たな格納命令が到着すると、システムは、システ
ムが格納データバッファ230および格納アドレスバッ
ファ220内にある格納要求をロードする状態である状
態504に進む。
【0059】状態504において、そのアクセスがキャ
ッシュ可能アクセスである場合、システムは、データキ
ャッシュアクセスが開始される状態である状態506に
移行し、そのアクセスがキャッシュ可能アクセスでない
場合には、システムは状態514に移行して、内部バス
インターフェースユニット118へのアクセス待ちとな
る。
【0060】状態506において、システムは、データ
キャッシュアクセスを開始する。キャッシュヒットがあ
れば、システムは、アイドル状態502に戻る前に、デ
ータをキャッシュに書き出す状態である状態510に進
む。キャッシュミスがあった場合、システムが状態50
8に進んでデータキャッシュアクセスが終了し、システ
ムは次にメインメモリへのアクセスを開始して状態51
4に進む。状態514において、メインメモリアクセス
が開始され、内部バスインターフェースユニット118
へのアクセス待ちとなる。アクセスが、同じキャッシュ
ラインに対する最近のキャッシュミスによって、現在メ
インメモリから検索中のキャッシュラインである場合、
システムは状態512に移行して、その未処理キャッシ
ュアクセスが完了するのを待つ。その未処理キャッシュ
アクセスが完了すると、システムは、状態506に戻っ
てキャッシュアクセスを継続する。
【0061】状態514において、システムは、内部バ
スインターフェースユニット118へのアクセス待ち状
態である。このアクセスは、(キャッシュ可能アクセス
の場合)メインメモリに対するアクセスであってもよい
し、あるいは、(非キャッシュ可能アクセスの場合)内
部バスインターフェースユニット118に接続された別
のターゲットに対するアクセスであってもよい。状態5
14において、システムは、内部バスインターフェース
ユニット118を介してアクセス要求を出して、内部バ
スインターフェースユニット118へのアクセスが許可
されるのを待つ。アクセスが許可されると、システム
は、状態516に進み、要求されたデータが返されるの
を待つ。次に、システムは、状態518に進み、要求さ
れたデータが受け取られる。実際には、データキャッシ
ュ114内のコントローラは、ロード格納ユニット10
2によって格納すべきデータとRAM150から受け取
るキャッシュラインとを組み合わせることに留意された
い。
【0062】最後に、システムは格納処理を完了し、ア
イドル状態502に戻る。但し、新たな格納要求が未処
理である場合、システムは、アイドル状態502をスキ
ップして、状態504に直接進んで新たな格納処理を開
始する。
【0063】ロード格納ユニット102および104
は、(データキャッシュ114、内部バスインターフェ
ースユニット118およびバスインターフェース120
に接続される)3つの別々のポートを有するが、レジス
タファイル110および112へのリターンは、実際に
は、シリアル化される。また、アクセスの優先順位は、
データキャッシュ114へのアクセスが1番目であり、
内部バスインターフェースユニット118へのアクセス
が2番目であり、そして、バスインターフェース120
へのアクセスが3番目である。
【0064】本発明のある実施形態は、コンピュータシ
ステムにおいて、複数のデータソースに対する実行エン
ジンからの複数の未処理ロードおよび/または格納要求
をサポートする装置を提供する。本装置は、前記実行エ
ンジン、第1のデータソースおよび第2のデータソース
に接続されたロード格納ユニットを含む。ロード格納ユ
ニットは、ロードアドレスバッファを含む。ロードアド
レスバッファは、複数の未処理ロード要求についてのア
ドレスを有する。ロード格納ユニットはまた、前記第1
のデータソースおよび前記第2のデータソースの両方に
ついて、複数のロード要求が同時に未処理状態となれる
ように、前記ロードアドレスバッファ、前記レジスタフ
ァイル、前記第1のデータソースおよび前記第2のデー
タソース間のデータフローを調節するように構成された
コントローラを含む。これらのロード要求は、「異常」
を返すことができるデータキャッシュに向けられたロー
ド要求を除いて、前記コンピュータシステムにおける前
記複数のデータソースのそれぞれについて、ロード要求
が「正常」を返す。ロード要求は、他のデータソースか
らのロード要求に関しては「異常」を返すことができ
る。本発明のある局面によれば、ロード格納ユニット
は、複数の未処理格納要求のアドレスを有する格納アド
レスバッファと、前記複数の未処理格納要求のデータを
有する格納データバッファとをさらに含む。前記コント
ローラは、さらに、前記第1のデータソースおよび前記
第2のデータソースの両方について、複数の格納要求が
同時に未処理状態となれるように、前記第1のデータソ
ース、前記第2のデータソース、前記格納アドレスバッ
ファおよび前記格納データバッファ間のデータフローを
調整するように構成されている。
【0065】本発明の実施形態に関する上記の記載は、
例示および説明のためになされたものであり、本発明の
実施形態はこれだけではなく、上記の記載によって、本
明細書中に開示された形態のみに本発明が限定されるわ
けではない。当業者であれば、多数の改変例および変形
例をなすことが可能である。さらに、上記の開示内容
は、本発明の範囲を限定するものではなく、本発明の範
囲は、上掲の特許請求の範囲によって規定されるもので
ある。
【0066】
【発明の効果】したがって、上述した本発明により、既
存のメモリシステムにおけるパフォーマンスの制限を克
服するメモリシステムが提供される。
【図面の簡単な説明】
【図1】本発明のある実施形態よるコンピュータシステ
ムを示す。
【図2】本発明のある実施形態によるロード格納ユニッ
トの内部構造の一部を示す。
【図3】本発明のある実施形態によるロードバッファ内
の所与のエントリについて保持される情報の一部を示
す。
【図4】本発明のある実施形態によるロードバッファ内
の所与のエントリについての状態図である。
【図5】本発明のある実施形態による格納アドレスバッ
ファ内の所与のエントリについての状態図である。
【符号の説明】
102 ロード格納ユニット 104 ロード格納ユニット 106 実行エンジン 108 実行エンジン 110 レジスタファイル 112 レジスタファイル 114 データキャッシュ 118 内部バスインターフェースユニット 120 バスインターフェイス 122 パイプライン制御ユニット 124 パイプライン制御ユニット 125 命令キャッシュ 126 命令フェッチユニット 127 命令キャッシュ 128 命令フェッチユニット 130 ジオメトリデコンプレッサ 132 メモリインターフェース 134 周辺バスインターフェース 136 バスインターフェース 138 バス 140 バス 142 バス 144 グラフィックスアクセラレータ 146 ホスト 148 ディスク 150 RAM 152 半導体チップ 204 データキャッシュレジスタ 206 MUX 208 レジスタ 210 ロードバッファ 211〜215 ロードアドレスエントリ 216 アレイ 220〜228 格納アドレスバッファ 230 格納データバッファ 231〜218 格納データ 239 アライナ 240 アレイ 250 LSUコントローラ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ビ−ユ パン アメリカ合衆国 カリフォルニア 95014, カパーチノ, メリット ドライブ 19961 (72)発明者 マーク トレンブレイ アメリカ合衆国 カリフォルニア 94025, メンロ パーク, ハンナ ウェイ 140

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】 データキャッシュを有するコンピュータ
    システムにおいて、複数のデータソースに対する実行エ
    ンジンからの複数の未処理ロード要求をサポートする装
    置であって、 該実行エンジン、第1のデータソースおよび第2のデー
    タソースに接続されたロード格納ユニットであって、該
    第1のデータソースは該データキャッシュである、ロー
    ド格納ユニットと、 該ロード格納ユニット内にあるロードアドレスバッファ
    であって、複数の未処理ロード要求についてのアドレス
    を有するロードアドレスバッファと、 1つのロード要求の間に該ロード格納ユニットが受け取
    ったデータを格納するためのレジスタファイルと、 該第1のデータソースおよび該第2のデータソースの両
    方について、複数のロード要求が同時に未処理状態とな
    れるように、該ロードアドレスバッファ、該レジスタフ
    ァイル、該第1のデータソースおよび該第2のデータソ
    ース間のデータフローを調節するように構成されたコン
    トローラと、を備えた、装置。
  2. 【請求項2】 複数の未処理格納要求のアドレスを有す
    る格納アドレスバッファと、 該複数の未処理格納要求のデータを有する格納データバ
    ッファと、をさらに備え、 前記コントローラは、前記第1のデータソースおよび前
    記第2のデータソースの両方について、複数の格納要求
    が同時に未処理状態となれるように、該第1のデータソ
    ース、該第2のデータソース、該格納アドレスバッファ
    および該格納データバッファ間のデータフローを調整す
    るように構成されている、請求項1に記載の装置。
  3. 【請求項3】 前記ロード格納ユニットはさらに第3の
    データソースに接続されており、前記コントローラは、
    前記第1のデータソース、前記第2のデータソースおよ
    び該第3のデータソースについて、複数のロード要求が
    同時に未処理状態となれるように、データフローを調整
    するように構成されている、請求項1に記載の装置。
  4. 【請求項4】 前記ロード格納ユニットは、第1の通信
    経路を介して前記データキャッシュに接続されていると
    ともに、該第1の通信経路とは別の第2の通信経路を介
    して前記第2のデータソースに接続されている、請求項
    1に記載の装置。
  5. 【請求項5】 「異常」を返すことができるデータキャ
    ッシュに向けられたロード要求を除いて、前記コンピュ
    ータシステムにおける前記複数のデータソースのそれぞ
    れについて、ロード要求が「正常」を返すように前記コ
    ントローラが構成されている、請求項1に記載の装置。
  6. 【請求項6】 ロード要求が他のデータソースからのロ
    ード要求に関しては「異常」を返すことができるように
    前記コントローラが構成されている、請求項5に記載の
    装置。
  7. 【請求項7】 同じクロックサイクルにおいて複数のロ
    ード要求を異なるデータソースに送ることができるよう
    に前記コントローラが構成されている、請求項1に記載
    の装置。
  8. 【請求項8】 前記コントローラは、前記ロードアドレ
    スバッファ内の各エントリについて別々の状態マシンを
    含む、請求項1に記載の装置。
  9. 【請求項9】 前記第2のデータソースは、コンピュー
    タシステムバスへのインターフェースを含む、請求項1
    に記載の装置。
  10. 【請求項10】 前記第2のデータソースは、ランダム
    アクセス半導体メモリを含む、請求項1に記載の装置。
  11. 【請求項11】 前記第2のデータソースは、二次記憶
    装置を含む、請求項1に記載の装置。
  12. 【請求項12】 前記第2のデータソースは、コンピュ
    ータグラフィックスアクセラレータ、プロセッサおよび
    ブリッジチップのうちの1つを含む、請求項1に記載の
    装置。
  13. 【請求項13】 前記ロードアドレスバッファ内の各エ
    ントリは、前記ロード要求のターゲットを示す状態情報
    に関連付けられており、該ターゲットは、前記第1のデ
    ータソースおよび前記第2のデータソースのうちの1つ
    を含み得る、請求項1に記載の装置。
  14. 【請求項14】 前記ロードアドレスバッファ内の各エ
    ントリは、関連するロード要求中に受け取ったデータが
    キャッシュ可能であるかどうかを示す状態情報に関連付
    けられている、請求項1に記載の装置。
  15. 【請求項15】 前記ロードアドレスバッファ内の各エ
    ントリは、関連するロード要求の状態を示す状態情報に
    関連付けられている、請求項1に記載の装置。
  16. 【請求項16】 前記ロードアドレスバッファ内の各エ
    ントリは、関連するロード要求のデスティネーションレ
    ジスタを示す状態情報に関連付けられている、請求項1
    に記載の装置。
  17. 【請求項17】 前記ロード要求中に受け取ったデータ
    を、前記レジスタファイル内に格納する前に、アライン
    するアラインメント回路をさらに備えた、請求項1に記
    載の装置。
  18. 【請求項18】 データキャッシュを有するコンピュー
    タシステムにおいて、複数のデータソースに対する実行
    エンジンからの複数の未処理ロードおよび格納要求をサ
    ポートする装置であって、 該実行エンジン、第1のデータソースおよび第2のデー
    タソースに接続されたロード格納ユニットであって、該
    第1のデータソースは該データキャッシュである、ロー
    ド格納ユニットと、 該ロード格納ユニット内にあるロードアドレスバッファ
    であって、複数の未処理ロード要求についてのアドレス
    を有するロードアドレスバッファと、 1つのロード要求の間に該ロード格納ユニットが受け取
    ったデータを格納するためのレジスタファイルと、 複数の未処理格納要求のアドレスを有する格納アドレス
    バッファと、 該複数の未処理格納要求のデータを有する格納データバ
    ッファと、 該第1のデータソースおよび該第2のデータソースの両
    方について、複数のロード要求が同時に未処理状態とな
    れるように、該ロードアドレスバッファ、該レジスタフ
    ァイル、該第1のデータソースおよび該第2のデータソ
    ース間のデータフローを調節するように構成されたコン
    トローラと、を備え、 該コントローラはさらに、該第1のデータソースおよび
    該第2のデータソースの両方について、複数の格納要求
    が同時に未処理状態となれるように、該第1のデータソ
    ース、該第2のデータソース、該格納アドレスバッファ
    および該格納データバッファ間のデータフローを調整す
    るように構成されている、装置。
  19. 【請求項19】 前記ロード格納ユニットはさらに第3
    のデータソースに接続されており、前記コントローラ
    は、前記第1のデータソース、前記第2のデータソース
    および該第3のデータソースについて、複数のロード要
    求が同時に未処理状態となれるように、データフローを
    調整するように構成されている、請求項18に記載の装
    置。
  20. 【請求項20】 前記ロード格納ユニットは、第1の通
    信経路を介して前記データキャッシュに接続されている
    とともに、該第1の通信経路とは別の第2の通信経路を
    介して前記第2のデータソースに接続されている、請求
    項18に記載の装置。
  21. 【請求項21】 「異常」を返すことができるデータキ
    ャッシュに向けられたロード要求を除いて、前記コンピ
    ュータシステムにおける前記複数のデータソースのそれ
    ぞれについて、ロード要求が「正常」を返すように前記
    コントローラが構成されている、請求項18に記載の装
    置。
  22. 【請求項22】 ロード要求が他のデータソースからの
    ロード要求に関しては「異常」を返すことができるよう
    に前記コントローラが構成されている、請求項18に記
    載の装置。
  23. 【請求項23】 データキャッシュを有するコンピュー
    タシステムにおいて、複数のデータソースに対する実行
    エンジンからの複数の未処理ロード要求をサポートする
    方法であって、 該実行エンジンからロード要求を受け取るステップであ
    って、該ロード要求は、第1のデータソースおよび第2
    のデータソースのうちの1つを指定する、ステップと、 該ロード要求のアドレスをロードアドレスバッファ内に
    格納するステップであって、該第1のデータソースおよ
    び該第2のデータソースの両方について、複数のロード
    要求が同時に未処理状態となれるように、該ロードアド
    レスバッファは複数の未処理ロード要求のアドレスを有
    する、ステップと、 該ロード要求を該第1のデータソースおよび該第2のデ
    ータソースのうちの1つに送るステップであって、該第
    1のデータソースは該データキャッシュである、ステッ
    プと、 該ロード要求に応答して、該第1のデータソースおよび
    該第2のデータソースのうちの1つからのデータをレジ
    スタファイル内に受け取るステップと、を包含する、方
    法。
  24. 【請求項24】 前記実行エンジンから格納要求を受け
    取るステップと、 該格納要求のアドレスを格納アドレスバッファ内に格納
    するステップであって、前記第1のデータソースおよび
    前記第2のデータソースの両方について、複数の格納要
    求が同時に未処理状態となれるように、該格納アドレス
    バッファは複数の未処理格納要求のアドレスを有する、
    ステップと、 該格納要求のデータを格納データバッファ内に格納する
    ステップであって、該格納データバッファは該複数の未
    処理格納要求のデータを有する、ステップと、をさらに
    包含する、請求項23に記載の方法。
  25. 【請求項25】 前記ロード要求は、さらに第3のデー
    タソースにも向けられ得るものであり、前記第1のデー
    タソース、前記第2のデータソースおよび該第3のデー
    タソースについて、複数のロード要求が同時に未処理状
    態となれる、請求項23に記載の方法。
  26. 【請求項26】 前記ロード要求を前記第1のデータソ
    ースおよび前記第2のデータソースのうちの1つに送る
    ステップは、該ロード要求を、第1の通信経路を介して
    該第1のデータソースに、そして、第2の通信経路を介
    して該第2のデータソースに送るステップを含み、該第
    2の通信経路は該第1の通信経路とは別である、請求項
    23に記載の方法。
  27. 【請求項27】 前記第1のデータソースおよび前記第
    2のデータソースのうちの1つから前記データを受け取
    るステップは、該第2のデータソースからデータ「正
    常」を受け取り、該第1のデータソースからデータ「異
    常」を受け取るステップを含む、請求項23に記載の方
    法。
  28. 【請求項28】 前記第1のデータソースおよび前記第
    2のデータソースのうちの1つから前記データを受け取
    るステップは、該データを第3のデータソースから受け
    取るステップを含み、該第2のデータソースおよび該第
    3のデータソース間では該データが「異常」として受け
    取られ得る、請求項27に記載の方法。
JP2000081045A 1999-03-22 2000-03-22 パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート Expired - Lifetime JP4585647B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/273.850 1999-03-22
US09/273,850 US6237066B1 (en) 1999-03-22 1999-03-22 Supporting multiple outstanding requests to multiple targets in a pipelined memory system

Publications (2)

Publication Number Publication Date
JP2000293436A true JP2000293436A (ja) 2000-10-20
JP4585647B2 JP4585647B2 (ja) 2010-11-24

Family

ID=23045676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000081045A Expired - Lifetime JP4585647B2 (ja) 1999-03-22 2000-03-22 パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート

Country Status (5)

Country Link
US (1) US6237066B1 (ja)
EP (1) EP1039377B1 (ja)
JP (1) JP4585647B2 (ja)
KR (1) KR100618248B1 (ja)
DE (1) DE60030794D1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473832B1 (en) * 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Load/store unit having pre-cache and post-cache queues for low latency load memory operations
US6266744B1 (en) 1999-05-18 2001-07-24 Advanced Micro Devices, Inc. Store to load forwarding using a dependency link file
US6473837B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Snoop resynchronization mechanism to preserve read ordering
US6728843B1 (en) * 1999-11-30 2004-04-27 Hewlett-Packard Development Company L.P. System and method for tracking and processing parallel coherent memory accesses
US6499077B1 (en) * 1999-12-30 2002-12-24 Intel Corporation Bus interface unit for reflecting state information for a transfer request to a requesting device
US7197629B2 (en) * 2002-11-22 2007-03-27 Sun Microsystems, Inc. Computing overhead for out-of-order processors by the difference in relative retirement times of instructions
US7003628B1 (en) * 2002-12-27 2006-02-21 Unisys Corporation Buffered transfer of data blocks between memory and processors independent of the order of allocation of locations in the buffer
GB2411019B (en) * 2004-02-16 2007-03-07 Advanced Risc Mach Ltd Data accesses in data processing
DE102005048581B4 (de) 2005-10-06 2022-06-09 Robert Bosch Gmbh Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
US7984210B2 (en) * 2006-06-20 2011-07-19 Freescale Semiconductor, Inc. Method for transmitting a datum from a time-dependent data storage means
EP2038744B1 (en) * 2006-06-22 2018-08-08 NXP USA, Inc. Method and system of grouping interrupts from a time-dependent data storage means
US20080065685A1 (en) * 2006-08-04 2008-03-13 Metacarta, Inc. Systems and methods for presenting results of geographic text searches
WO2008035317A2 (en) * 2006-09-22 2008-03-27 Ecole Polytechnique Federale De Lausanne (Epfl) A microprocessor having at least one application specific functional unit and method to design same
US7870314B2 (en) * 2008-02-15 2011-01-11 International Business Machines Corporation Method and system for implementing store buffer allocation
US9021228B2 (en) 2013-02-01 2015-04-28 International Business Machines Corporation Managing out-of-order memory command execution from multiple queues while maintaining data coherency
US10282109B1 (en) * 2016-09-15 2019-05-07 Altera Corporation Memory interface circuitry with distributed data reordering capabilities
US10331446B2 (en) * 2017-05-23 2019-06-25 International Business Machines Corporation Generating and verifying hardware instruction traces including memory data contents

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08504977A (ja) * 1992-09-29 1996-05-28 セイコーエプソン株式会社 スーパースカラ・マイクロプロセサにおけるロード及び/又はストア動作を扱うシステム及び方法
US5737547A (en) * 1995-06-07 1998-04-07 Microunity Systems Engineering, Inc. System for placing entries of an outstanding processor request into a free pool after the request is accepted by a corresponding peripheral device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148536A (en) 1988-07-25 1992-09-15 Digital Equipment Corporation Pipeline having an integral cache which processes cache misses and loads data in parallel
US5689670A (en) * 1989-03-17 1997-11-18 Luk; Fong Data transferring system with multiple port bus connecting the low speed data storage unit and the high speed data storage unit and the method for transferring data
KR100309566B1 (ko) * 1992-04-29 2001-12-15 리패치 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치
JPH0756815A (ja) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> キャッシュ動作方法及びキャッシュ
US5465336A (en) * 1994-06-30 1995-11-07 International Business Machines Corporation Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system
US5745729A (en) * 1995-02-16 1998-04-28 Sun Microsystems, Inc. Methods and apparatuses for servicing load instructions
KR100231852B1 (ko) * 1996-11-06 1999-12-01 김영환 듀얼 파이프라인 프로세서에서 로드 명령의 병렬 수행 장치
US6076159A (en) * 1997-09-12 2000-06-13 Siemens Aktiengesellschaft Execution of a loop instructing in a loop pipeline after detection of a first occurrence of the loop instruction in an integer pipeline

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08504977A (ja) * 1992-09-29 1996-05-28 セイコーエプソン株式会社 スーパースカラ・マイクロプロセサにおけるロード及び/又はストア動作を扱うシステム及び方法
US5737547A (en) * 1995-06-07 1998-04-07 Microunity Systems Engineering, Inc. System for placing entries of an outstanding processor request into a free pool after the request is accepted by a corresponding peripheral device

Also Published As

Publication number Publication date
DE60030794D1 (de) 2006-11-02
EP1039377A1 (en) 2000-09-27
JP4585647B2 (ja) 2010-11-24
EP1039377B1 (en) 2006-09-20
US6237066B1 (en) 2001-05-22
KR20010014592A (ko) 2001-02-26
KR100618248B1 (ko) 2006-09-04

Similar Documents

Publication Publication Date Title
JP2000293436A (ja) パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート
JPH0642225B2 (ja) Dma機能を有する計算機システム
JP5131188B2 (ja) データ処理装置
JP2002117002A (ja) 共用型ペリフェラルアーキテクチャ
US7610451B2 (en) Data transfer mechanism using unidirectional pull bus and push bus
US6584529B1 (en) Intermediate buffer control for improving throughput of split transaction interconnect
US7130932B1 (en) Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device
WO2023076591A1 (en) Hardware management of direct memory access commands
US20170147345A1 (en) Multiple operation interface to shared coprocessor
US10705993B2 (en) Programming and controlling compute units in an integrated circuit
JPH0997184A (ja) 効率的な割込み処理を含む情報処理システム
US9286129B2 (en) Termination of requests in a distributed coprocessor system
JPH10283304A (ja) 割り込み要求を処理する方法及びシステム
US6735677B1 (en) Parameterizable queued memory access system
EP1069511B1 (en) Data Transfer Controller with Plural Ports
US20030041190A1 (en) System and method for efficiently performing a command swapping procedure
US6219761B1 (en) Load/store assist engine
JP2001188745A (ja) 制御装置及び制御方法
US6910119B1 (en) Instruction pipe and stall therefor to accommodate shared access to return stack buffer
JPH09218859A (ja) マルチプロセッサ制御システム
JPH1185673A (ja) 共有バスの制御方法とその装置
JPH0340169A (ja) 多重プロセツサシステムおよび複数の処理装置を制御する方法
JPH056333A (ja) マルチプロセサシステム
JPH09305536A (ja) バス転送方法及びそのための情報処理装置
EP1193606A2 (en) Apparatus and method for a host port interface unit in a digital signal processing unit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100514

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100810

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100826

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100906

R150 Certificate of patent or registration of utility model

Ref document number: 4585647

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term