Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4585647B2 - パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート - Google Patents
[go: Go Back, main page]

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

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

Info

Publication number
JP4585647B2
JP4585647B2 JP2000081045A JP2000081045A JP4585647B2 JP 4585647 B2 JP4585647 B2 JP 4585647B2 JP 2000081045 A JP2000081045 A JP 2000081045A JP 2000081045 A JP2000081045 A JP 2000081045A JP 4585647 B2 JP4585647 B2 JP 4585647B2
Authority
JP
Japan
Prior art keywords
load
data
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.)
Expired - Lifetime
Application number
JP2000081045A
Other languages
English (en)
Other versions
JP2000293436A (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.)
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

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)

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はそれぞれ、複数の命令を含むストリームを受け取り、特定のデータ項目に対して、指定された処理を実行する。実行エンジン106および108は、演算処理およびデータ移動処理を含む中央処理装置(CPU)の機能を実行する。実行エンジン106および108は、それぞれレジスタファイル110および112を含むことに留意すべきである。レジスタファイル110および112は、それぞれ実行エンジン106および108によって処理されるデータ項目を格納するために用いられる。但し、本発明の別の実施形態においては、実行エンジン106および108は、実行エンジン106と108とで共有されるオーバーラップレジスタにアクセスする。
【0037】
実行エンジン106および108は、それぞれ、命令フェッチユニット128および126から命令ストリームを受け取る。より具体的には、命令フェッチユニット128は、ランダムアクセスメモリ(RAM)150から命令ストリームを受け取る。この命令ストリームは、メモリインターフェース132、内部バスインターフェースユニット(BIU)118、および命令キャッシュ127を通って、命令フェッチユニット128に送られる。命令フェッチユニット128は、受け取った命令ストリームをパイプライン制御ユニット124を介して実行エンジン106へと送る。同様に、命令フェッチユニット126は、ランダムアクセスメモリ(RAM)150から命令ストリームを受け取る。この命令ストリームは、メモリインターフェース132、内部バスインターフェースユニット118、および命令キャッシュ125を通って、命令フェッチユニット126に送られる。命令フェッチユニット126は、受け取った命令ストリームをパイプライン制御ユニット122を介して実行エンジン108へと送る。
【0038】
RAM150は、コンピュータシステムのメインメモリを構成するものであり、コードおよび/またはデータを格納するランダムアクセス可能なコンピュータメモリのあらゆるタイプを含む。命令キャッシュ127および125は、それぞれ実行エンジン106および108によって実行される命令を格納できるあらゆるタイプのキャッシュメモリを含む。命令フェッチユニット128および126は、命令に対するアクセスを調整し、パイプライン制御ユニット124および122は、それぞれ、これらの命令をパイプライン方式で実行できるように、スケジューリングの調整を行う。
【0039】
実行エンジン106および108は、それぞれ、ロード格納ユニット102および104からデータを受け取る。ロード格納ユニット102および104は、データキャッシュ114、バスインターフェイス120および136、周辺バスインターフェイス134、メモリインターフェイス132、ならびにジオメトリデコンプレッサ130を含む多数のソースに対するデータの送受信を調整する。
【0040】
図示した実施形態において、周辺バスインターフェイス134は、ディスク148に接続されたバス138に接続されている。ディスク148は、ディスクまたはテープドライブのような、コンピュータデータ用のあらゆるタイプの不揮発性記憶装置を含む二次記憶装置である。ディスク148はまた、周辺バス138に取り付けられるあらゆるタイプの周辺装置を含み得る。図示した実施形態の改変例においては、バス138はPCIバスを含む。
【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、バスインターフェース120、バスインターフェース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コントローラ250の制御下で動作する。
【0046】
ロードバッファ210は、アライナ(aligner)207、データキャッシュレジスタ204、MUX206、レジスタ208およびアレイ216を含む複数の構成要素を有する。MUX206は、内部バスインターフェースユニット118およびバスインターフェース120の出力のうちの一方を選択してレジスタ208への入力とする。アライナ207は、データキャッシュ114以外の複数のソースから受け取った複数ワードのデータに対してバイトアラインメント処理を行う。データキャッシュ114から受け取ったデータは、データキャッシュ114内の回路によってアライン(align)される。アレイ216は、5つのロードアドレスについてのエントリ(例えば、ロードアドレスエントリ211、212、213、214および215)を有する。これらの5つのロードアドレスにより、最大5つの未処理ロード要求のアドレスを格納できる。これらのロード要求は、ロード格納ユニット102に接続されたデータソース(ターゲット)(例えば、データキャッシュ114、バスインターフェース120、メモリインターフェース132、周辺バスインターフェース134、バスインターフェース136およびジオメトリデコンプレッサ130)のいずれに対するものであり得る。例えば、3つのアドレスがデータキャッシュ114への未処理要求に関連付けられたものであり、2つのアドレスがRAM150への未処理要求に関連付けられたものであり得る。
【0047】
ロードバッファ210内の回路は、アレイ216内の各エントリについて別々の状態マシンを有するLSUコントローラ250の制御下で動作する。ロードバッファ210内の回路は、概ね以下のように動作する。ロード要求を受け取ると、システムは、そのロード要求のアドレスを、アレイ216内のエントリ内にある追加状態情報と共に格納する。次に、システムは、指定されたデータソースに対するロード要求を出す。要求されたデータがデータキャッシュ114から返されると、そのデータはデータキャッシュレジスタ204内に記録される。そのデータは、データキャッシュレジスタ204から、実行エンジン106(図1参照)内のレジスタファイル110内にある指定されたレジスタ内に送られる。要求されたデータが他のソースから返された場合、そのデータは、MUX206およびアライナ207を介してレジスタ208内に送られる。そのデータは、レジスタ208から、実行エンジン106内のレジスタファイル110内にある指定されたレジスタ内に送られる。データが返されると、アドレスアレイ216内の対応するエントリが、新たなロード要求のために再使用できるように無効化される。
【0048】
データキャッシュ114に対する要求は、「異常」を返す場合がある。本システムをこのように設計している理由は、要求によっては、キャッシュフォールトを生じて非常に長い処理時間を要するものもあるからである。一部の要求が「異常」を返すことを可能にすることによって、キャッシュヒットを生じる要求が、キャッシュミスを生じる要求を待つ必要がなくなる。但し、データキャッシュ114以外のデバイスに対する要求は、「正常」に返されなければならないことに留意されたい。これは、ある所与のデバイスについて、そのデバイスが出した全ての要求が「正常」に返されることを意味する。但し、デバイス間においては、要求が「異常」を返してもよい。
【0049】
格納処理は、格納データバッファ230および格納アドレスバッファ220を用いて行われる。格納データバッファ230は、アレイ240およびアライナ239を有する。アレイ240は、最大8個の未処理格納要求のデータ(例えば、格納データ231、232、233、234、235、236、237および238)を格納する8個のエントリを有する。格納アドレスバッファ220は、対応するアドレスと、これらの格納要求に関連付けられた他の状態情報とを有する。格納アドレスバッファ220は、格納アドレスバッファ221、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を含む。さらに、アドレス310は、ロード要求のアドレスを有する。
【0052】
(ロードアドレスバッファエントリの状態マシン)
図4は、本発明のある実施形態によるロードバッファ210内の所与のエントリについての状態図である。本システムは、通常、アイドル状態402から始まる。実行エンジン106から新たなロード命令が到着すると、システムは、以下に示す2つの選択肢の一方を選択する。即ち、あるロード要求がその時点でキューに入っている場合、システムは、ロード要求が到着したが、データキャッシュ114または内部バスインターフェースユニット118には送られていない状態である状態404に移行する。その時点でキューにロード要求が全く入っておらず且つそのアクセスがキャッシュ可能である場合、システムは、直接、データキャッシュアクセスが開始される状態である状態406に移行する。その時点でキューにロード要求が全く入っておらず且つそのアクセスがキャッシュ可能ではない場合、システムは、状態412に移行する。
【0053】
状態404において、そのアクセスがキャッシュ可能である場合、システムは、データキャッシュアクセスが開始される状態である状態406に移行し、そのアクセスがキャッシュ可能でない場合には、状態412に移行して、内部バスインターフェースユニット118へのアクセス待ちとなる。
【0054】
状態406において、システムは、データキャッシュアクセスを開始する。キャッシュヒットがあれば、そのデータ項目がデータキャッシュによって直ちに生成され、そのロード要求の処理が完了する。その後、システムは、アイドル状態402に戻り、新たなロード要求を受ける。キャッシュミスがあった場合、システムが状態408に進んでデータキャッシュアクセスが終了し、システムは次にメインメモリへのアクセスを開始して状態412に進む。状態412において、メインメモリアクセスが開始され、内部バスインターフェースユニット118へのアクセス待ちとなる。アクセスが、同じキャッシュラインに対する最近のキャッシュミスによって、現在メインメモリから検索中のキャッシュラインである場合、システムは状態410に移行して、その未処理キャッシュアクセスが完了するのを待つ。その未処理キャッシュアクセスが完了すると、システムは、状態406に戻ってキャッシュアクセスを継続する。
【0055】
状態412において、システムは、内部バスインターフェースユニット118へのアクセス待ち状態である。このアクセスは、(キャッシュ可能アクセスの場合)メインメモリに対するアクセスであってもよいし、あるいは、(非キャッシュ可能アクセスの場合)内部バスインターフェースユニット118に接続された別のターゲットに対するアクセスであってもよい。状態412において、システムは、内部バスインターフェースユニット118へのアクセス待ち状態である。アクセスが許可されると、システムは、システムが内部バスインターフェースユニット118を介してアクセス要求を出して要求したデータが返されるのを待つ状態である状態414に進む。システムは、次に、要求したデータを受け取る状態である状態416に進む。要求されたデータが複数のワードにまたがっている場合もあるので、データの受信は複数のデータ転送を必要とし得る。
【0056】
最後に、システムは、ロード処理を完了し、アイドル状態402に戻る。但し、新たなロード要求が未処理である場合、システムは、アイドル状態402をスキップして、状態404に直接進んで新たなロード処理を開始する。
【0057】
ロード格納ユニット102は、データキャッシュ114、内部バスインターフェースユニット118およびバスインターフェース120に接続される3つの別々のポートを有する。これにより、システム状態マシンが平行ディスパッチをサポートしていれば、ロード格納ユニット102が、3つの要求を平行にディスパッチすることが可能になる。ロード格納ユニット104も同様に、データキャッシュ114、内部バスインターフェースユニット118およびバスインターフェース120に接続される3つの別々のポートを有する。
【0058】
(格納アドレスバッファエントリの状態マシン)
図5は、本発明のある実施形態による格納アドレスバッファ内の所与のエントリについての状態図である。本システムは、通常、アイドル状態502から始まる。新たな格納命令が到着すると、システムは、システムが格納データバッファ230および格納アドレスバッファ220内にある格納要求をロードする状態である状態504に進む。
【0059】
状態504において、そのアクセスがキャッシュ可能アクセスである場合、システムは、データキャッシュアクセスが開始される状態である状態506に移行し、そのアクセスがキャッシュ可能アクセスでない場合には、システムは状態514に移行して、内部バスインターフェースユニット118へのアクセス待ちとなる。
【0060】
状態506において、システムは、データキャッシュアクセスを開始する。キャッシュヒットがあれば、システムは、アイドル状態502に戻る前に、データをキャッシュに書き出す状態である状態510に進む。キャッシュミスがあった場合、システムが状態508に進んでデータキャッシュアクセスが終了し、システムは次にメインメモリへのアクセスを開始して状態514に進む。状態514において、メインメモリアクセスが開始され、内部バスインターフェースユニット118へのアクセス待ちとなる。アクセスが、同じキャッシュラインに対する最近のキャッシュミスによって、現在メインメモリから検索中のキャッシュラインである場合、システムは状態512に移行して、その未処理キャッシュアクセスが完了するのを待つ。その未処理キャッシュアクセスが完了すると、システムは、状態506に戻ってキャッシュアクセスを継続する。
【0061】
状態514において、システムは、内部バスインターフェースユニット118へのアクセス待ち状態である。このアクセスは、(キャッシュ可能アクセスの場合)メインメモリに対するアクセスであってもよいし、あるいは、(非キャッシュ可能アクセスの場合)内部バスインターフェースユニット118に接続された別のターゲットに対するアクセスであってもよい。状態514において、システムは、内部バスインターフェースユニット118を介してアクセス要求を出して、内部バスインターフェースユニット118へのアクセスが許可されるのを待つ。アクセスが許可されると、システムは、状態516に進み、要求されたデータが返されるのを待つ。次に、システムは、状態518に進み、要求されたデータが受け取られる。実際には、データキャッシュ114内のコントローラは、ロード格納ユニット102によって格納すべきデータと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コントローラ

Claims (17)

  1. データキャッシュを含むコンピュータシステムにおいて、複数のデータソースに対する実行エンジンからの複数の未処理ロード要求をサポートする装置であって、
    該装置は、
    該実行エンジン、第1のデータソースおよび第2のデータソースに結合されたロード格納ユニットであって、該第1のデータソースは該データキャッシュである、ロード格納ユニットと、
    該ロード格納ユニット内にあるロードアドレスバッファであって、複数の未処理ロード要求アドレスを含むロードアドレスバッファと、
    1つのロード要求の間に該ロード格納ユニットに受け取られ、かつ、該実行エンジンに送られたデータを格納するためのレジスタファイルであって、該実行エンジンに含まれるレジスタファイルと、
    ロードアドレスバッファ、該レジスタファイル、該第1のデータソースおよび該第2のデータソース間のデータフローを調節するように構成されたコントローラであって、該ロードアドレスバッファ内の各エントリは、該ロード要求のターゲットを示す状態情報に関連付けられており、該ターゲットは、該第1のデータソースおよび該第2のデータソースのうちの1つを含み得る、コントローラと
    含む、装置。
  2. 複数の未処理格納要求のアドレスを含む格納アドレスバッファと、
    該複数の未処理格納要求のデータを含む格納データバッファと
    さらに含み
    記第1のデータソースおよび前記第2のデータソースの両方について、複数の格納要求が同時に未処理状態となり得るように、前記コントローラは、該第1のデータソース、該第2のデータソース、該格納アドレスバッファおよび該格納データバッファ間のデータフローを調整するように構成されている、請求項1に記載の装置。
  3. 前記ロード格納ユニットはさらに第3のデータソースに結合されており、前記コントローラは、前記第1のデータソース、前記第2のデータソースおよび該第3のデータソースについて、複数のロード要求が同時に未処理状態となり得るように、データフローを調整するように構成されている、請求項1または請求項2に記載の装置。
  4. 前記ロード格納ユニットは、第1の通信経路を介して前記データキャッシュに結合されているとともに、該第1の通信経路とは別の第2の通信経路を介して前記第2のデータソースに結合されている、請求項1〜3のいずれか一項に記載の装置。
  5. ロード要求が出された順序と異なる順序でデータを返し得るデータキャッシュに対して出された該ロード要求に対応するデータを除いて、データソースに対してロード要求が出された順序で、該データソースに対して出された該ロード要求に対応するデータが返されるように前記コントローラが構成されている、請求項1〜4のいずれか一項に記載の装置。
  6. 前記ロード要求が出された順序と異なる順序で、複数のデータソースに対して出された該ロード要求に対応するデータが返され得るように前記コントローラが構成されている、請求項5に記載の装置。
  7. 同じクロックサイクルにおいて異なるデータソースに複数のロード要求が送られ得るように前記コントローラが構成されている、請求項1〜6のいずれか一項に記載の装置。
  8. 前記コントローラは、前記ロードアドレスバッファ内の各エントリについて別々の状態マシンを含む、請求項1〜7のいずれか一項に記載の装置。
  9. コンピュータシステムバスへのインターフェースと、
    ランダムアクセス半導体メモリと、
    二次記憶装置と、
    コンピュータグラフィックスアクセラレータ、プロセッサおよびブリッジチップのうちの1つと
    のうちの1つを前記第2のデータソースが含む、請求項1〜8のいずれか一項に記載の装置。
  10. 前記ロードアドレスバッファ内の各エントリは、関連するロード要求中に受け取ったデータがキャッシュ可能であるかどうかを示す状態情報、関連するロード要求の状態を示す状態情報、または関連するロード要求のデスティネーションレジスタを示す状態情報に関連付けられている、請求項1〜9のいずれか一項に記載の装置。
  11. 前記ロード要求中に受け取ったデータを、前記レジスタファイル内に格納する前に、アラインするアラインメント回路をさらに含む、請求項1〜10のいずれか一項に記載の装置。
  12. データキャッシュを含むコンピュータシステムにおいて、複数のデータソースに対する実行エンジンからの複数の未処理ロード要求をサポートする方法であって、
    該方法は、
    該実行エンジンに結合されるロード格納ユニットが、第1のデータソースおよび第2のデータソースのうちの1つを指定するロード要求を該実行エンジンから受け取ることと、
    該ロード格納ユニット内のロード格納ユニットコントローラが、ロードアドレスバッファのエントリ内に該ロード要求からのアドレスを格納することであって、該ロードアドレスバッファは複数の未処理ロード要求のアドレスを含む、ことと、
    該ロード格納ユニットが、該第1のデータソースおよび該第2のデータソースのうちの1つに該ロード要求を送ることであって、該第1のデータソースは該データキャッシュである、ことと、
    該ロード要求に応答して、該ロード格納ユニットが、該第1のデータソースおよび該第2のデータソースのうちの1つから、該実行エンジンに含まれるレジスタファイル内に送られるデータを受け取ることと、
    該ロード格納ユニットコントローラが、該ロードアドレスバッファ内の該エントリと該ロード要求のターゲットを示す状態情報とを関連付けることであって、該ターゲットは、該第1のデータソースおよび該第2のデータソースのうちの1つを含み得る、ことと
    を含む、方法。
  13. 前記ロード格納ユニットが、前記実行エンジンから格納要求を受け取ることと、
    前記ロード格納ユニットコントローラが、該格納要求からのアドレスを格納アドレスバッファ内に格納することであって、該格納アドレスバッファは、複数の未処理格納要求のアドレスを含む、ことと、
    該ロード格納ユニットが、該格納要求からのデータを格納データバッファ内に格納することであって、該格納データバッファは、該複数の未処理格納要求からのデータを含む、ことと
    をさらに含む、請求項12に記載の方法。
  14. 前記ロード要求は、さらに第3のデータソースにも向けられ得るものであり、前記第1のデータソース、前記第2のデータソースおよび該第3のデータソースについて、複数のロード要求が同時に未処理状態となり得る、請求項12または請求項13に記載の方法。
  15. 前記ロード格納ユニットが、前記第1のデータソースおよび前記第2のデータソースのうちの1つに前記ロード要求を送ることは、該ロード格納ユニットが、第1の通信経路を介して該第1のデータソースに、および第2の通信経路を介して該第2のデータソースに、該ロード要求を送ることを含み、該第2の通信経路は該第1の通信経路とは別である、請求項12〜14のいずれか一項に記載の方法。
  16. 前記ロード格納ユニットが、前記第1のデータソースおよび前記第2のデータソースのうちの1つから前記データを受け取ることは、該ロード格納ユニットが、該第2のデータソースに対してロード要求が出された順序で、該第2のデータソースから該データを受け取ることと、該ロード格納ユニットが、該第1のデータソースに対してロード要求が出された順序と異なる順序で、該第1のデータソースから該データを受け取ることとを含む、請求項12〜15のいずれか一項に記載の方法。
  17. 前記ロード格納ユニットが、前記第1のデータソースおよび前記第2のデータソースのうちの1つから前記データを受け取ることは、該ロード格納ユニットが、第3のデータソースから該データを受け取ることを含み、該データは、該第2のデータソースおよび該第3のデータソースに対してロード要求が出される順序と異なる順序で、該第2のデータソースおよび該第3のデータソースから受け取られ得る、請求項16に記載の方法。
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 US6237066B1 (en) 1999-03-22 1999-03-22 Supporting multiple outstanding requests to multiple targets in a pipelined memory system
US09/273.850 1999-03-22

Publications (2)

Publication Number Publication Date
JP2000293436A JP2000293436A (ja) 2000-10-20
JP4585647B2 true 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
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
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
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
WO2007147435A1 (en) * 2006-06-20 2007-12-27 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
US20110055521A1 (en) * 2006-09-22 2011-03-03 Ecole Polytechnique Federale De Lausanne (Epfl) 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

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61220047A (ja) * 1985-03-27 1986-09-30 Hitachi Ltd メモリ制御方式
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
GB2234613B (en) * 1989-08-03 1993-07-07 Sun Microsystems Inc Method and apparatus for switching context of state elements in a microprocessor
JP2779044B2 (ja) * 1990-06-05 1998-07-23 株式会社日立製作所 バッファ記憶制御方法
KR100309566B1 (ko) * 1992-04-29 2001-12-15 리패치 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치
JP3644959B2 (ja) 1992-09-29 2005-05-11 セイコーエプソン株式会社 マイクロプロセッサシステム
JP3505728B2 (ja) * 1993-01-13 2004-03-15 株式会社日立製作所 記憶制御装置
JPH0756815A (ja) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> キャッシュ動作方法及びキャッシュ
JPH0793216A (ja) * 1993-09-27 1995-04-07 Hitachi Ltd キャッシュ記憶制御装置
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
JPH08272608A (ja) * 1995-03-31 1996-10-18 Hitachi Ltd パイプライン処理装置
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
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4585647B2 (ja) パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート
CN100549992C (zh) 可减少延迟的数据传送与接收方法与系统
US7620749B2 (en) Descriptor prefetch mechanism for high latency and out of order DMA device
US5222223A (en) Method and apparatus for ordering and queueing multiple memory requests
US6496902B1 (en) Vector and scalar data cache for a vector multiprocessor
EP1247168B1 (en) Memory shared between processing threads
US20240419358A1 (en) Hardware management of direct memory access commands
US6944850B2 (en) Hop method for stepping parallel hardware threads
US7590774B2 (en) Method and system for efficient context swapping
US7610451B2 (en) Data transfer mechanism using unidirectional pull bus and push bus
JPH06149731A (ja) マイクロコンピュータシステム
US6101589A (en) High performance shared cache
US20060179277A1 (en) System and method for instruction line buffer holding a branch target buffer
JPH02239331A (ja) データ処理システム及びその命令実行を促進する方法
US6738837B1 (en) Digital system with split transaction memory access
JPH01237835A (ja) 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法
JP2002287957A (ja) キャッシュのような構造を使用してcpu設計におけるオペランド・アクセス・ステージを高速化するための方法及び装置
US7386642B2 (en) IO direct memory access system and method
US9779044B2 (en) Access extent monitoring for data transfer reduction
EP1069511B1 (en) Data Transfer Controller with Plural Ports
JPH02242429A (ja) パイプライン浮動小数点ロード・インストラクシヨン回路
JP2001188745A (ja) 制御装置及び制御方法
US7650483B2 (en) Execution of instructions within a data processing apparatus having a plurality of processing units
JPH01243123A (ja) 情報処理装置
JPS61220047A (ja) メモリ制御方式

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 Request for written amendment filed

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