JP2002530742A - 外部デバイスへのアクセスを優先順序付けるための方法および装置 - Google Patents

外部デバイスへのアクセスを優先順序付けるための方法および装置

Info

Publication number
JP2002530742A
JP2002530742A JP2000582897A JP2000582897A JP2002530742A JP 2002530742 A JP2002530742 A JP 2002530742A JP 2000582897 A JP2000582897 A JP 2000582897A JP 2000582897 A JP2000582897 A JP 2000582897A JP 2002530742 A JP2002530742 A JP 2002530742A
Authority
JP
Japan
Prior art keywords
command
memory
data
queue
request
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
JP2000582897A
Other languages
English (en)
Other versions
JP4472186B2 (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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2002530742A publication Critical patent/JP2002530742A/ja
Application granted granted Critical
Publication of JP4472186B2 publication Critical patent/JP4472186B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 【解決手段】 本発明にしたがうと、外部デバイスへのアクセスを優先順序付けるための装置は、外部デバイスの任意数の要求デバイス要求を格納するように適切に構成される要求キュー(2303)と、要求キューに結合され、そこに格納された任意の要求を取り出すように適切に構成される要求キューコントローラユニット(2304)と、外部デバイスからの任意数の応答を格納するように適切に構成される応答キュー(2306)と、を備える。この装置は、また、応答キューに結合され、そこに格納された任意の要求を取り出すように適切に構成される応答キューコントローラユニット(2308)を備え、応答およびそれに関連付けられた要求のそれぞれは、要求の発信元であり対応する応答の送信先である特定グループの要求デバイスを示すグループ識別番号(150)に関連付けられており、応答キューコントローラおよび要求キューコントローラユニットは、グループ優先順序セレクタレジスタ(154)に格納された優先番号を使用し、格納された要求および応答をそれぞれ優先順序付けることによって、優先順序の高い要求または応答に優先順序の低い要求または応答をバイパスさせる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、一般に、コンピュータシステムに関する。本発明は、特に、マルチ
プロセッサコンピュータシステム等のコンピュータシステムにおいて、共用リソ
ースへのアクセスを提供することに関する。さらに特定すると、外部デバイスへ
のアクセスを優先順序付けるための方法および装置に関する。
【0002】
【従来の技術】
基本的なコンピュータシステムにおいては、中央処理機構、またはCPUが、
関連するメモリ内に記憶されている所定のプログラムまたは命令一式に従って動
作する。そのような、プロセッサの動作を規定する、記憶されている命令一式ま
たはプログラム以外にも、処理中における中央プロセッサの情報操作を容易にす
るために、メモリ空間がプロセッサメモリまたは関連する追加メモリ内に備えら
れている。追加メモリは、プロセッサによって作成される情報の記憶場所を提供
し、加えて、プログラムの処理に際してプロセッサが臨時に、すなわち“メモ帳
”代わりにして使用する情報の記憶場所を提供する。さらに、関連メモリは命令
一式を実行しているプロセッサの出力情報を設置する場所を提供し、システムの
出力装置がその情報を利用できるようにする。
【0003】 現存するメモリにアクセスするために、多くの構成部分(プロセッサ、ハード
ドライブなど)が1つの共通のバスを共同使用しなければならないシステムにお
いては、メモリへのアクセスをめぐる衝突が発生する可能性が上昇する。特にマ
ルチプロセッサコンピュータシステムなどの場合、異なるプロセッサを利用する
システムが同時に操作されるため、メモリまたは他の共用リソースへのアクセス
が複雑になる。各プロセッサまたはプロセッサシステムが同じメモリへのアクセ
スを同時に要求する可能性が高いので、プロセッサ間での衝突は一般的には回避
不可能である。基本的に、マルチプロセッサコンピュータシステムにおける2つ
以上のプロセッサまたはプロセッサシステムの動作は、結果として、共用メモリ
或いは他の共用リソースに対するメモリコマンドの断続的な重複を生じさせる。
【0004】 共用メモリに対するメモリアクセス要求の衝突という問題の解決のために採ら
れてきた従来の方策は、ある場合では、プロセッサのそれぞれに使用されるメモ
リの完全な重複や、プロセッサシステムの隔離が含まれる。しかし、メモリアク
セス要求の衝突問題を解決するためのこの方策は、しばしば、多重プロセッサシ
ステムにおいて意図された利点を無にしてしまう。そのような多重プロセッサは
、一方のプロセッサが他方のプロセッサの動作を補助しながら、同じデータでの
並行した算出動作を行うといった状況で操作される場合に最も効果的である。従
来、そのようなプロセッサシステムは、プロセッサ同士がメモリなどの共用リソ
ースへのアクセスを競い合うという時間的共用であるか、またはプロセッサシス
テムが二重のポートを有しており、各プロセッサは例えば個別にメモリバスを有
し、一方がアクセスを許可された場合には他方は待機しているといった状態であ
る。
【0005】 上記の衝突問題を回避するため様々な方策が採られてきた。ある方策では、各
プロセッサの逐次的な使用、またはプロセッサの時間的共用によって衝突の回避
が達成される。この方法では、単純に、衝突を避けるために、プロセッサが順番
に共用リソースへのアクセスを行う。一般的に利用されるこのようなシステムは
“リングパッシング”または“トークンシステム”を含み、それにより、ユーザ
ーグループでのリングの伝達と類似する所定の連続動作に従って、衝突する可能
性のあるプロセッサがシステムによってポーリングされる。
【0006】 残念ながら、プロセッサによる逐次的なアクセスの方法論は、コンピュータシ
ステムの全体的な動作に著しい制限を課すことになる。この制限は、システムが
、衝突するプロセッサをポーリングするためにかなりの時間を費やすという事実
に起因する。さらに、単独のプロセッサが作動しており、例えば共用メモリへの
アクセスを要求する場合には、システムによる連続動作の実行に伴い、共用リソ
ースへのプロセッサアクセスの間で、各メモリサイクル毎に遅延が生じる。
【0007】 衝突回避のための他の一般的な方策は、コンピュータシステム内のプロセッサ
間での優先順位付けによるものである。そのような方法では、各プロセッサに対
してシステムの重要性の階層に従った優先順位が付される。衝突が発生するたび
に、メモリコントローラは単純により高い優先順位を有するプロセッサにアクセ
スを提供する。例えば、2つのプロセッサを有するシステムの場合、共用メモリ
へは第一のプロセッサ、第二のプロセッサがアクセスする。共用メモリは、典型
的には、メモリに維持記憶されているデータの周期的なリフレッシュが必要とな
るダイナミックDRAM(DRAM)型メモリ装置などである。一般的に、DR
AM型メモリでは別の独立したリフレッシュシステムによってリフレッシュが行
われる。そのようなマルチプロセッサシステムの場合、プロセッサとリフレッシ
ュシステムとの双方が共用メモリへのアクセスを競うことになり、プロセッサお
よびリフレッシュシステムに割り当てられた優先順位に従って、システムメモリ
コントローラがメモリアクセス要求の衝突やコマンドを処理する。そのようなシ
ステムは、衝突の問題を解決し、さらに、単純な逐次的アクセスによる衝突回避
のシステムよりも効果的である反面、依然として柔軟性に欠くものである。
【0008】 衝突解消のための他の従来的な方策は、メモリコントローラ内に組み込まれた
意思決定機能である。残念ながら、メモリコントローラの意思決定部分はクロッ
クシステムによる制御およびタイミングによって操作されるため、実際に意思決
定を実行し、メモリコントローラが共用メモリへのアクセスを許可し得るように
なるまでに多くの時間を費やすことになる。
【0009】 残念なことに、この実際の意思決定の実行という問題は、従来のメモリコント
ローラが有するマルチバンク型メモリシステムへのアクセス許可能力を実質上低
下させる。マルチバンク型メモリシステムでは、実際のメモリコアは特定の領域
、すなわちバンクに区分され、読み出されるデータもそこに記憶される。より迅
速且つより効率的なメモリアクセスが提供できる反面、マルチバンクメモリ装置
に対応するために従来のメモリコントローラには複雑な仕組みが求められ、その
結果、全体的なシステムとしては、アクセススピードが全体的に著しく低下する
ことになる。
【0010】
【発明が解決しようとする課題】
以上から、外部デバイスへのアクセスを優先順序付けるための方法および装置
が必要とされていることがわかる。
【0011】
【課題を解決するための手段およびその作用・効果】
本発明にしたがって、外部デバイスへのアクセスを優先順序付けるための方法
および装置を説明する。外部デバイスへのアクセスを優先順序付けるための装置
は、要求元デバイスから外部デバイスへの任意数の要求を格納するように適切に
構成された要求キューと、要求キューに結合され、そこに格納された任意の要求
を取り出すように適切に構成された要求キューコントローラユニットと、外部デ
バイスからの任意数の応答を格納するように適切に構成された応答キューと、を
備える。この装置は、また、応答キューに結合され、そこに格納された任意の要
求を取り出すように適切に構成された応答キューコントローラユニットを備え、
応答およびそれに関連付けられた要求のそれぞれは、要求の発信元であり対応す
る応答の送信先である特定グループの要求デバイスを示すグループ識別番号に関
連付けられており、応答キューコントローラおよび要求キューコントローラユニ
ットは、グループ優先順序セレクタレジスタに格納された優先番号を使用し、格
納された要求および応答をそれぞれ優先順序付けることによって、優先順序の高
い要求または応答に優先順序の低い要求または応答をバイパスさせる。
【0012】 本発明の特質および利点については、本明細書中の以下に示される部分および
図面により、その一層の理解が達成される。
【0013】
【発明の実施の形態】
プロセッサなどの複数の装置が同じリソースを共用するシステムの場合、1つ
以上の装置が共用リソースへのアクセスを要求する際に典型的に発生する衝突を
回避するために、様々な方策が採られてきた。ある方策では、プロセッサを順番
に動作させることでその衝突を回避し、またはプロセッサの時間的な共用によっ
て衝突回避を達成する。この方法においては、衝突を避けるために、単純に、プ
ロセッサが順番に共用リソースへのアクセスを行う。一般的に利用されるこのよ
うなシステムは“リングパッシング”または“トークンシステム”を含み、それ
により、ユーザーグループでのリングの伝達と類似する所定の連続動作に従って
、衝突する可能性のあるプロセッサがシステムによってポーリングされる。
【0014】 残念ながら、このようなプロセッサによる逐次的なアクセスの方法論では、衝
突するプロセッサをシステムがポーリングするためにかなりの時間を費やすため
、コンピュータシステムの全体的な動作に著しい制限を課すことになる。
【0015】 衝突回避のための他の一般的な方策は、コンピュータシステム内のプロセッサ
間での優先順位付けによるものである。そのような方法では、各プロセッサに対
してシステムの重要性の階層に従った優先順位が付される。そのようなシステム
は衝突の問題を解決し、さらに、単純な逐次的アクセスによる衝突回避のシステ
ムよりも効果的である反面、依然として柔軟性に欠くものである。
【0016】 衝突回避のためのさらに別な一般的方策は、コントローラ型装置に組み込まれ
た意思決定ロジックを含む。残念ながら、意思決定ロジックの複雑さから、実際
の意思決定が実行されコントローラによる共用メモリへのアクセス許可が可能に
なるまでに、多くの時間を費やすこととなる。
【0017】 複雑なロジックがシステムの動作速度を低下させるこの問題は、それぞれに異
なる動作特性を有しながら相互に接続された複数のメモリ装置の間に点在するメ
モリを含むマルチチップモジュール型メモリシステムにおいてはさらに顕著であ
る。従来のロジックは、様々なメモリ装置に固有の、それぞれに異なるアクセス
特性を補うようには構成され得ないので、全体的なシステムの実行性能を低下さ
せることで解決しようとする。
【0018】 広義には、図1Aに示される通り、本発明は、それぞれがユニバーサルデバイ
スコントローラ104に結合された要求デバイス102を有するシステム100
として示すことができる。ここで、要求デバイス102は、任意の数および種類
の共用リソース108へのアクセスを提供するように適切に形成されたシステム
バス106によってユニバーサルデバイスコントローラ104に結合される。1
つの実施形態では、システムバス106は関連するシステムインターフェース層
110によってユニバーサルコントローラ104に結合され、さらには、そのユ
ニバーサルコントローラ104が共用リソースインターフェース109によって
共用リソース108に結合される。広義には、ユニバーサルコントローラ104
は、任意の要求システム102からの共用リソースへの要求および共用リソース
動作特性パラメータ113に基づき、共用リソース108の状態を判定するよう
に設定される。
【0019】 要求システム102がマルチプロセッサシステム内の1つのプロセッサであり
、同じようにそこに結合されているほかのプロセッサによっても共用されている
メモリ装置108としての共用リソース108に対するアクセスを要求する場合
、ユニバーサルコントローラ104は、所望のリソースアクセス要求を完了する
ために、実行されるべき動作の順序を決定する。例えばメモリ装置108がSD
RAMである場合、その動作は典型的にはプレチャージ、ページクローズ、ペー
ジオープン、およびページリードまたはページライトを含む。
【0020】 ある特定の動作順序が決定されると、例えばデータ衝突または他の種類の対立
を回避するために、ユニバーサルコントローラ104が順序付けられた連続動作
の間の適当な時間間隔を決定する。好ましい実施形態では、その時間間隔は、例
えばルックアップテーブルに記憶されている共用メモリ装置の動作特性に、部分
的に基づいて決定される。その後、適切に順序付けられたアクセスコマンドがユ
ニバーサルコントローラにより出力され、次いで、共用メモリによって応答され
る。
【0021】 以下に示される本発明の詳細な説明では、発明についての完全な理解を促進す
るために複数の具体的な実施形態が示される。しかし、当業者には明白となるよ
うに、本発明はこれらの特定の詳細に依らず、または他の要素あるいは工程を利
用することにより実践され得る。他の場合では、本発明の本質が不明瞭になるこ
とを避けるため、周知の工程、手順、構成要素、および回路についての詳細な説
明が割愛されている。
【0022】 以下、本発明は、プロセッサと共用メモリとの間の連絡機構として機能するよ
うに設定されたメモリコントローラの観点から説明される。しかし、本発明は、
共用であるか否かに関わらず、任意のリソースへのアクセスを制御し得るユニバ
ーサルコントローラとしても実行し得ることに留意されたい。そのようなリソー
スはメモリである必要性は無く、事実、本発明は、例えば、バスアクセスの待ち
時間を低減することによりシステムバスの効率的な帯域幅を増加させることを目
的としてマルチプロセッサ内の情報量を制御するなど、共用システムバスへのア
クセスを制御するためにも用いられ得る。
【0023】 次に、図1Bでは、プロセッサなどの要求デバイス102を有し、システムバ
ス106によってユニバーサルコントローラ104に結合されるシステム100
が示される。さらに、コントローラ104は共用リソース108に結合され、共
用リソース108は、例えば、様々な形態を採り得るメモリ108であり、DR
AM、SDRAM、SLDRAM,EDO、FPM、またはRDRAM(登録商 標)などである。例示の実施形態では、システムバス106は単方向アドレスバ ス106−1を含み、その単方向アドレスバス106−1はプロセッサ102に よって出力されるメモリアドレス要求をユニバーサルコントローラ104に伝達 する。さらにシステムバス106は単方向アドレスバス106−2も含み、その 単方向アドレスバス106−2はアドレスバス106−1と連係してメモリアド レスに関するコマンドを伝達する。例えば、プロセッサ102がメモリ108に おける特定のメモリ位置に記憶されている実行可能な命令を要求する場合、プロ セッサはコマンドバス106−2に対して読み取り要求(システムコマンドと称 す)を出力し、実質的には同時に、アドレスバス106−1に対しても対応する メモリアドレス要求(システムアドレスと称す)の出力が行われる。システムア ドレスおよびシステムコマンドの双方はコントローラ104に含まれる設定可能 なシステムインターフェース110によって受け取られる。ここで、設定可能と は、受け取ったシステムコマンドおよびシステムアドレスが、メモリ108によ って要求されるいかなる方法および形態のものでも、システムインターフェース 110がそれを処理できるように、システムインターフェース110を設定し得 るということを意味するものである。これにより、プロセッサ102が各メモリ 装置に対して個別の要求を発する必要が無くなり、プロセッサ102が必要とし ているデータを、コントローラ104に結合する任意の数および種類のメモリ装 置に格納することができる。
【0024】 例示の実施形態において、システムインターフェース110は、受け取ったシ
ステムコマンドおよびシステムアドレスをユニバーサルコマンド200と称され
るものに変換するよう設定されている。ユニバーサルコマンド200の例は図2
Aに示される。1つの実施例では、共用リソースがDRAM型メモリ装置(SL
DRAM、SDRAM、EDO DRAMなどを含む)である場合、ユニバーサ
ルコマンド200は、メモリ108の任意のメモリアクセス要求を実行するため
に必要な全ての動作を含む5つのデータフィールドから形成される。そのような
動作は、データプレチャージフィールド202によって示されているプレチャー
ジ動作を含み、このフィールドは、特定のロウを予めチャージしておく必要が有
るかどうかを表示するために用いられる、プレチャージ動作を含む。他の動作と
して、データ活性化フィールド204、データリードフィールド206、データ
ライトフィールド208およびデータリフレッシュフィールド210を含む。例
えばここで、メモリ108が、メモリバンク1において現在アクティブである(
すなわち、リードまたはライトが行われた後のオープンされている)メモリペー
ジ1を有し、且つ、続くプロセッサコマンドが、メモリバンク1のページ2上に
記憶されているデータを読み取り、プロセッサ102に出力するよう要求してい
るとする。この場合、プロセッサ102によって要求されるコマンドを実行する
ためには、ページ1がクローズされ(すなわち、ページ1がプレチャージされる
)、ページ2は活性化されなければならない。活性化が完了した後、ページ2か
らのリードが行われる。したがって、図2Bに示されるユニバーサルコマンド2
12は、データフィールド202,204,206,208,210を有するユ
ニバーサルコマンド生成部110によって生成され、そのうちのデータフィール
ド202,204,206は“関連する動作の実行”を示す“1”に設定され、
データフィールド208,210は“関連する動作の不実行”(すなわち、“N
OP”)を示す“0”に設定される。
【0025】 図1Bに戻る。メモリ108へのアクセスは複数の異なる要求デバイスによっ
て共用されているため非常に動的であり、従ってメモリ108の状態は常に変化
する。メモリの状態とは、特定のメモリ位置において特定の動作を間違いなく実
行するためには、そのメモリ位置の状態を知る必要があることを意味する。例え
ば、特定のメモリページがクローズしている場合、リード動作を実行するために
はまずそのメモリページをオープンする必要がある。従って、特定のアドレス位
置のその時点での状態を探知するために、特定のメモリ位置に対して実行された
最も新しい動作が図3に示されるリソースタグ300によって識別される。本発
明の1つの実施形態では、リソースタグ300は、特定のメモリアドレス位置を
識別するために用いられるアドレスフィールド302、そのアドレスフィールド
302によって識別されたアドレスに最後に発行されたコマンドを識別するため
に用いられる最終発行コマンドフィールド304、さらに最終コマンド発行時間
データフィールド306を含む。例えば、メモリアドレスADD5のリソースタ
グ308は時間5φ(5システムクロック周期を示す)にページリードコマンド
が発行されたことを示し、リソースタグ310は、同じメモリアドレスADD5
について、時間10φにそのメモリページにページライトが実行されることを示
している。メモリアドレスADD5の状態を観測することにより、ユニバーサル
コントローラ104はADD5におけるメモリページが既にオープンしているこ
と、従って、ページオープン操作は必要ないことを認知する。
【0026】 リソースタグバッファ114に記憶されているタグ300によって提供される
リソースの状態についての情報を元に、設定可能システムインターフェース11
0に結合されるコマンド順序付け器116は、ユニバーサルコマンド200のコ
マンド構成要素202〜210のそれぞれの間における適切な時間間隔を提示し
、それにより、図2Cに示されるような、コマンド構成要素202〜204、お
よびコマンド構成要素204〜206がそれぞれ時間間隔t1およびt2となるよ
う構成された順序付け済みコマンド220が提供される。ここで、コマンド構成
要素208〜210は“NOP”型のフィールドであるため、順序付け済みコマ
ンド220はこれらのフィールドについて如何なる参照も含んでおらず、構成要
素202〜206に必要なクロック周期と、t1+t2に実質的に等しい時間周期
と、の合計に実質的に等しい時間周期を必要とするのみである。これにより、コ
マンド順序付け器116は、プロセッサ102とメモリ108との間のコマンド
およびデータの最適な流れを提供し得る。
【0027】 発明の別の実施形態では、共用リソース108がSDRAMなどのマルチバン
ク型メモリ装置である場合、または共用リソースがマルチチップモジュールなど
のマルチ装置メモリである場合、リソースタグバッファ114は、例えば特定の
バンクまたは装置においてオープンしているページ全てについてのリソースタグ
を記憶し得る。1つの実施例では、比較器(図示せず)がシステムアドレスにお
けるバンク番号または装置識別子を探知し、ページアドレスおよびシステムアド
レスをタグバッファ114の内容と比較する。比較結果が“一致”でない場合(
すなわち、アドレスが適合しない場合)、ユニバーサルコントローラ104はタ
グバッファ114からのアドレスを用いて古いページをクローズしなければなら
ず、さらに、新しいシステムコマンドに基づき新しいページをオープンしなけれ
ばならない。
【0028】 複数の異なる装置がユニバーサルコントローラ104によって補助されている
場合、特定の装置にのみ関連する動作パラメータであって、入力されるシステム
アドレスにも関連している動作パラメータを選択し得ることが望ましい。ユニバ
ーサルコントローラが複数の異なる装置を補助している場合に、ユニバーサルコ
ントローラ104に結合されたアドレス空間コントローラ120が図1Cに示さ
れている。例示の実施形態では、アドレス空間コントローラ120は入力された
システムアドレスに関連する1つの装置を示す装置特有のパラメータのみを選択
する性能を有する。図1Dに示される具体的な実施例では、アドレス空間コント
ローラ120は比較器122を含み、その比較器122が、入力されたシステム
アドレスと、入力されたアドレスに関連する装置(または同様にして、メモリ領
域)を識別する領域アドレス範囲バッファ124の内容とを比較する。特定の装
置または領域が識別されると、装置パラメータレジスタ126および128(そ
れぞれがバッファ124に結合され、特定の装置ごとに特有のパラメータを含む
)のグループ中1つのレジスタが選択される。選択された装置パラメータレジス
タは次いでそのシステムアドレスに対応する装置についての特定の動作パラメー
タを提示する。別の実施形態では、選択された装置パラメータレジスタの内容は
LUT118に入力される。これにより、任意の数の異なる装置をユニバーサル
コントローラ104によって補助することができ、各装置の特定の動作パラメー
タが識別されて、対応するユニバーサルコマンドの最適な順序付けに用いられる
【0029】 ユニバーサルコントローラに結合された装置の1つがビジー状態で新しいコマ
ンドを受付られないといった場合に、コマンド列で待機中の任意の別のコマンド
を選択し得ることが有益であるという点に留意すべきである。発明の別の実施形
態では、装置による応答およびユニバーサルコントローラによる要求のそれぞれ
が、それぞれ関連する識別番号150を有しており、例示の実施形態では、図1
Eに示されるように、その識別番号は5ビット長のデータワードである。識別番
号150は、2ビット長のグループセレクタフィールド152および3ビット長
の要求番号フィールド153を含むように形成される。グループセレクタ(GS
)は特定のシステム要求がどのグループに属するか(例えば、プロセッサ)を判
定し、要求番号(RN)は、グループセレクタフィールド152によって識別さ
れた関連グループの要求または応答の番号を表す。その際、同一のトランシーバ
からの連続する要求は連続した要求番号を有する。
【0030】 別の実施形態では、グループ優先順位セレクタレジスタ154は応答グループ
または要求グループのそれぞれについての優先順位値を含み、より高い優先順位
値を有する応答グループまたは要求グループが低い優先順位値のグループに先行
する。これにより、優先順位値の低い要求や応答が次のクロック周期で処理され
得ない場合に、その低順位値の要求または応答に先行して高順位値の要求または
応答が処理され得る。いわゆる動ロック(ライブロック,Livelock)を防ぐため
、動ロックカウンタレジスタ156は、低優先順位値の要求(または応答)に先
行し得る、高優先順位値を有する連続する要求(または応答)の数の情報を含む
。これにより、低優先順位値の要求(または応答)はクロック周期の多くの周期
中放置されずにすむことになる。
【0031】 また別の留意点として、コマンドの流れとデータの流れの双方の制御を最適化
するために、共用リソースのそれぞれがそれぞれに動作特性一式(例えば、DR
AM型装置の場合はアクセス時間、CAS待ち時間など)を関連させている点が
あげられる。ユニバーサルコントローラ104によって1つ以上の共用リソース
が補助されている場合、共用リソースのそれぞれは異なる動作特性の一式を有し
ており、別の実施形態では、その動作特性はコマンド順序付け器116に結合す
るルックアップテーブル(LUT)118に記憶される。コマンド順序付け器1
16は、リソースタグバッファ114に記憶されるリソースタグと連係してLU
T118が提供する情報を用いて、コマンド構成要素202〜210を適切に順
序付け、順序付け済みコマンド220を形成する。これは、共用リソースが、マ
ルチチップモジュールなど、まさにそれぞれが実質的に異なる動作特性を有する
メモリ装置の集合である場合には特にあてはまる。
【0032】 次に、図4は、発明の実施形態に従ってユニバーサルコントローラが共用リソ
ースへのアクセスを図るプロセス400の詳細を示したフローチャートである。
このプロセス400はシステムが共用リソースへのアクセスを要求する402か
ら開始する。共用リソースがDRAM型メモリ装置の場合、その動作はプレチャ
ージ、リフレッシュ、クローズ、オープン、リードおよびライトを含む。例えば
、プロセッサが、システムコマンド(すなわちページリード)と、要求されてい
るページが記憶されているメモリ内の場所を示す関連のシステムアドレスとを生
成することにより、共用メモリ内に記憶されるメモリページを要求する。これは
、好ましい実施形態では、404において、例えば、共用メモリ内でのアクティ
ブなメモリ位置に関連したリソースタグを用いてリソースの状態が判定される。
次いで、406にて、共用リソース対する所望の要求を実行するために必要な、
動作の順序付けについての判定が行われる。408では、ユニバーサルコントロ
ーラが、所望の要求を実行するために必要な動作の連続順序に基づいてユニバー
サルコマンドを生成する。例えば、ページリード動作を実行するためには、前段
階でオープンされているページをクローズし、新しいページを活性化し、それか
らリード動作が実行される必要がある。その際、これら全てはユニバーサルコマ
ンド構成1つで理解される。共用リソースについてのリソースタグおよび特有の
動作特性を用いてユニバーサルコントローラがユニバーサルコマンドを形成する
と、次いで、410にて、ユニバーサルコントローラはユニバーサルコマンドの
コマンド構成要素それぞれの間の適切な時間間隔を判定する。その後、412に
おいて、順序付け済みコマンドが共用リソースに対して発行される。この際、別
の実施形態では物理ステージが用いられる。最後に414において、共用リソー
スは、例えば、システムアドレスに示される位置に記憶されているデータを提示
することなどによって、順序付け済みコマンドに応答する。
【0033】 発明の別の実施形態では、図5に示されるプロセス500を用いて、ユニバー
サルコントローラがリソースの状態(404)および実行する動作の順番(40
6)を決定する。このプロセス500は、502にてリソース区分識別子(すな
わち、メモリアドレスレジスタ)をリソース識別子(すなわち、リソースタグア
ドレスフィールド202)と比較することによって開始される。504において
“一致”の発生が確認された場合(すなわち、新しいコマンドのアドレスがその
時点でのタグアドレスフィールドと適合する場合)、続いて、506において次
のコマンドが発行される。他方、新しいコマンドアドレスがその時点でのタグア
ドレスフィールドに適合しない場合(すなわち、不一致の場合)、次いで、50
8にて、古いページがまだオープンしているか否かの判定が行われる。古いペー
ジがオープンしている場合には、510にてそのページがクローズされ、512
にて新しいページがオープンされる。しかし、508にて古いページがオープン
していないことが確認されると、次いで、512において新しいページがオープ
ンされる。どちらの場合でも、一度新しいページがオープンされると、506に
て次のコマンド(データ操作)が発行される。
【0034】 発明の別の実施形態において、ユニバーサルコントローラは、図6に示される
プロセス600に基づいて、連続動作のそれぞれの間における適切な時間間隔を
決定する(410)。このプロセス600は、602において、ユニバーサルコ
ントローラが、ある特定のリソースに対しての新しい一連のコマンドの最初のコ
マンドと、その時点までに同じリソースに対して発行されたコマンドのうち最も
新しい一連のコマンドの最後のコマンドとを比較することによって開始される。
604において、ユニバーサルコントローラは、新しいユニバーサルコマンドの
最初のコマンド構成要素と、それ以前のもののうち最も新しいコマンドの最終コ
マンド要素とを比較することによって、ユニバーサルコマンド構成要素間の時間
的な制約を判定する。別の実施形態では、ユニバーサルコントローラは表1に示
されるような2次元配列の形態をとる2指標ルックアップテーブル(LUT)を
用いる。その中で、配列の第一行は古い(すなわち今までのうちで最も新しい)
コマンドを表し、配列の第一列は新しいコマンドを表す。例えば、表1を参照し
て、古いコマンドがページリードであった場合、且つ新しいコマンドがページク
ローズであった場合、それらの、ページクローズという新しいコマンドとページ
リードという古いコマンドとの交差位置には、それら2つの動作の間で許可され
る最低時間量(すなわち、発行に要する物理的な最低限の時間)が示される。通
常、LUTに記憶される情報は共用リソースの製造者によって提供される。
【0035】
【表1】
【0036】 特定のユニバーサルコマンド構成要素についてのリソースの物理的な制約が判
定されると、606において、同じユニバーサルコマンドに更なるコマンド構成
要素が存在しているか否かの判定が行われる。更なるコマンド構成要素が存在し
ない場合、608において、ユニバーサルコマンドおよび関連する構成要素の時
間間隔に関する詳細が記憶される。他方、ユニバーサルコマンドに更なるコマン
ド構成要素が含まれている場合、制御は604に戻され、その構成要素について
、対応する物理的な時間的制約が判定される。
【0037】 しかし、例えば複数のメモリバンクを有する共用メモリ108内の物理ページ
の状態を観測するためには、非常に多くのリソースタグが必要となり、それに従
い非常に多くのキャッシュメモリがリソースタグバッファ114のために必要と
なる。これでは、それぞれが遠隔に位置するメモリの特定のメモリページについ
ての固有のリソースタグを検索するために非常に多くの時間を要することになり
、その結果、ユニバーサルコントローラ104の全体的な動作速度を低減させる
ことになる。図7Aに示される別の実施形態では、ページヒット/ミスコントロ
ーラ702がユニバーサルコントローラ104に含まれ、ページレジスタ704
の数Mがマルチバンクメモリ706内のメモリバンク数N未満になるよう設定さ
れる。これは、M個のページレジスタ704中で、全てのバンクが対応できるが
わけではないからである。この動作において、Mページレジスタ704のそれぞ
れは、オープンているページのアドレスおよび状態データを記憶する。また、ラ
ンダムページレジスタ番号生成部708は、ページレジスタに対応する無作為な
M以下の整数値を生成し、オープンしているページのアドレスと交換する。比較
器710は、入力されたシステムアドレスと、M個のすべてのレジスタのバンク
番号およびページアドレスとの比較を並行に行い、以下に示す4つの可能な結果
のいずれかを得る。
【0038】 1)比較器710がヒット(一致)を示す場合、要求されているバンクの所望
のページがオープンされ、アクセスへの準備が整う。
【0039】 2)比較器710がバンクのヒット(一致)およびページのミス(不一致)を
示す場合、ユニバーサルコントローラ104は、ページレジスタからのページア
ドレスを利用して古いページをクローズし、且つ、システムアドレスからのペー
ジアドレスを利用して新しいページをオープンする必要がある。
【0040】 3)比較器710がバンクおよびページの双方でのミスを示す場合、ユニバー
サルコントローラ104は、ランダムページレジスタ番号生成部によって提供さ
れる番号のバンクにおける任意の古いページをクローズし、且つシステムアドレ
スを利用して新しいページをオープンする必要がある。その後、所望のバンクへ
のアクセスを行う。
【0041】 4)バンクおよびページの双方がミスで、しかし少なくとも1つのページレジ
スタが未使用である場合、そのレジスタが利用されて、新しいページがオープン
される。
【0042】 別の実施形態では、図7Bに示されるように、ランダムページレジスタ番号生
成部708は、最も以前に用いられた(LRU)比較器712によって代替され
、M個のレジスタ704のうちのどれが最も長く未使用であるか(すなわち、最
も以前に用いられたか)を判定する。
【0043】 マルチバンクメモリ706における物理ページの状態の観測に加え、図8に示
されるバンクアクセスコントローラ800は、マルチバンクメモリ706に含ま
れるメモリバンク数Nに対応するN個のバンクレジスタ802を含む。関連する
バンクの情報が記憶されるバンクレジスタ802は、バンクの識別番号を規定す
るバンク番号フィールド804を含む。さらに、バンクレジスタ802は、バン
ク番号フィールド804中のバンク番号によって識別される特定のバンクの状態
を示すバンクステータスフィールド806を含む。具体的な実施形態では、バン
クステータスフィールド806は表2に示されるような値をとり得る。
【0044】
【表2】
【0045】 400〜800Mb/s/ピンの範囲の速度でバスデータを伝達するシンクロ
ナスリンクDRAM(SLDRAM)などのパケット指向型高速メモリの発展に
伴い、メモリアクセスの衝突に起因する問題は益々増加している。まず図9Aを
参照すると、発明の実施形態による、例示的なSLDRAM型マルチプロセッサ
システム900が示される。マルチプロセッサシステム900は、システムバス
906によってコントローラ904に接続されるプロセッサ902を含む。ユニ
バーサルコントローラ904は、次いで、SLDRAMバスによってシンクロナ
スリンクDRAM(SLDRAM)908およびSLDRAM910に接続され
る。SLDRAMバスは単方向コマンドバス912および双方向データバス91
4で構成されている。留意点として、図9Aには2つのSLDRAMのみが示さ
れているが、バス912および914によって、任意の数のSLDRAMがユニ
バーサルコントローラ904に接続され得ることがあげられる。別の場合では、
SLDRAMは、SLDRAM908のようなSLDRAMを任意の適切な数だ
け含むバッファ付きモジュールの形態をとり得る。ユニバーサルコントローラ9
04をSLDRAM908および910のそれぞれに接続する初期化/同期(I
/S)バス916は、ユニバーサルコントローラ904によって生成される初期
化信号および同期信号の信号経路を提供する。
【0046】 発明の別の実施形態では、ユニバーサルコントローラ904からのパケット化
されたコマンド、アドレス、および制御情報が、コマンドバス912上をSLD
RAM908および910に選択的に伝達される。データバス914は、ユニバ
ーサルコントローラ904からのパケット化されたライトデータをSLDRAM
908および910のいずれか選択された方へ伝達するよう設定される。または
、データバス914が、SLDRAM908および910のいずれか選択された
方からのパケット化されたリードデータをユニバーサルコントローラ904に送
り返すようにも形成される。留意点として、コマンドバス912およびデータバ
ス914は通常、例えば400MB/s/p、600MB/s/p、800MB
/s/pなどの互いに同一の速度で動作することがあげられる。
【0047】 ユニバーサルコントローラ904により生成され、コマンドバス912によっ
て伝達される複数の制御信号は、例えば、無差異の走行クロック信号(CCLK
)、FLAG信号、コマンドアドレス信号CA,LISTEN信号、LINKO
N信号およびRESET信号を含む。通常、パケットコマンドは4つの連続する
10ビットワードから成り、コマンドの最初のワードは、FLAG信号の最初の
ビットが“1”となっている。好ましい実施形態では、無差異の走行クロック信
号CCLKの両端は、コマンドワードをラッチするためにSLDRAM908お
よび910によって使用される。SLDRAM908および910は、入力され
たコマンドについてコマンドバス912を調べることにより、HレベルのLIS
TEN信号に応答する。または、SLDRAM908および910は、省電力ス
タンバイモードに入ることによって、LレベルのLISTEN信号に応答する。
LINKON信号およびRESET信号は、SLDRAM908および910の
いずれか選択された方を既知の所望の状態になるように停止するかまたは起動す
るためにそれぞれ使用される。
【0048】 ここで議論の残された点に関しては、SLDRAM908は、適当と考えられ
る任意の数のSLDRAMがユニバーサルコントローラに接続され得ることが、
よく理解された上でのみ論じられるであろう。上に論じた通り、SLDRAM9
08のような典型的なSLDRAMデバイスは、メモリ領域だけでなく、メモリ
バンク、カラム、ロウ、ビットによって階層的に編成されている。これらの各階
層レベルが相互に異なった動作特性を持つことが実際に認められることに注意す
べきである。そのような動作特性には、メモリアクセス時間、チップイネーブル
時間、データ検索時間等のパラメータを含むが、これらに限定はされない。領域
が、それぞれ異なるコマンド待ち時間やデータ待ち時間を持つ異なるメモリタイ
プやメモリグループといった異なるデバイスに定義されるのに対し、マルチバン
クメモリ内のバンクが通常同じ動作特性を持つことは注記されるべきである。例
えば、1つのローカルメモリグループがメモリコントローラにダイレクトに接続
でき、また、ローカルメモリグループに関するコマンド待ち時間やデータ待ち時
間を仲介するドライバが増加させるボード上に位置する第二の非ローカルメモリ
グループに接続できる。他のケースでは、マルチチップモジュールを形成する様
々なメモリチップのそれぞれは、異なるメモリ領域であると考えられる。
【0049】 図9Aのシステムに関してさらに具体的に述べると、SLDRAM908は、
コマンドバス912、データバス914、I/Sバス916によってそれぞれ個
別にアクセス可能な4つのメモリチップA、B、C、Dを持つマルチチップモジ
ュールである。メモリチップA〜Dのそれぞれは、コマンドやデータパケットを
最適にスケジューリングするために、異なった動作特性を持つことができ(通常
は製造者によって与えられる)、ユニバーサルコントローラ904は特定の階層
レベル、およびまたは、対応するメモリ領域の動作特性を使用することができる
【0050】 例として、図9Bは、図9に示されたマルチプロセッサシステムに従った代表
的SLDRAMバストランザクションの典型的タイミング図を示している。演算
の間、プロセッサは通常、例えばリードコマンド950やライトコマンド952
のように、SLDRAM908の適当なメモリバンク(複数でも可)が応答する
プロセッサコマンドパケットを生成する。通常、リードコマンド950やライト
コマンド952は、それらが生成されるプロセッサ902の特定の要求に基づい
て、システムバス906上でパイプライン化されており、SLDRAMの最適の
パフォーマンスには適していない。システムクロックCLKsys(示されていな
い)は必要なタイミング信号を与える。
【0051】 この例では、プロセッサ902aは、SLDRAM908のメモリチップAに
位置するメモリアドレスMA1を持つリードコマンド950を生成する。他方、
プロセッサ902bは、同じくSLDRAM908のメモリチップAに位置する
メモリアドレスMA2を持つリードコマンド952を生成する。この例では、リ
ードコマンド950は、ライトコマンド952の出力に優先するシステム・バス
906への出力である。ユニバーサルコントローラ904は、まずリードコマン
ド950を受け取り、続いてそのコマンド自体とコマンドアドレスMA1に基づ
いて、ユニバーサルコントローラ904内に格納された終点アドレス特定情報を
使って、コマンドの処理を始める。いったん最短発行時間が決定されると、ユニ
バーサルコントローラ904は次に、受信したプロセッサ・コマンド950に応
じて、SLDRAMコマンドパケットリード960を生成し、それをコマンドバ
ス912に送り出す。
【0052】 一般に、SLDRAMコマンドパケットは、表3に示したように、8バンク、
1024ロウアドレス、128カラムアドレスを持つ64MのSLDRAMを表
わす4つの10ビットワードとして編成されている。示されたように、バンクア
ドレス(BNK)は3ビット、ロウ・アドレス(ROW)は10ビット、カラム
・アドレス(COL)は7ビットである。他にも多くの編成や密度が可能であり
、図示された40ビットフォーマットの他、適切と規定されうる他のどんなフォ
ーマットでも収容されうる。電源が入っている間、ユニバーサルコントローラ9
04は、バンク、ロウ、カラムの番号や、その時にユニバーサルコントローラ9
04によって格納される関連付けられた動作特性などの要因についてのSLDR
AMのポーリングに基づいてコマンドパケットを編成する。
【0053】 コマンドパケットの最初のワードは、複数のチップIDビットを含む。SLD
RAMは、ローカルIDに整合しないコマンドはどれでも無視する。チップID
は電源オンとともにユニバーサルコントローラ904によって、初期化信号と同
期信号を用いて割り当てられる。このようにして、ユニバーサルコントローラ9
04は、セパレートチップイネーブル信号またはグルーロジックの生成によって
、マルチプロセッサシステム900のそれぞれのSLDRAMに一対一対応でア
ドレス指定する。
【0054】
【表3】
【0055】 リードコマンド950とライトコマンド952はパイプライン化されているの
で、ユニバーサルコントローラ904は、リードコマンド950の受け取った後
一定時間の後にライトコマンド952を受け取り(またはバッファに格納させて
おくこともできる)、次いで、ライトコマンド952に対応するSLDRAMコ
マンドパケットライト962を発行する。同一のバンク(A)が両方のコマンド
にアクセスされるので前に発行されたリードコマンド960の干渉を避けるため
に、ユニバーサルコントローラ904は、MA2の特定の特性データならびに最
短発行時間を生成させるためのリードコマンド960の発行時間(すなわち、発
行の時刻)と、ライト962のデータオフセットを使う。
【0056】 このようにして、ユニバーサルコントローラ904は少なくとも、コマンドや
データパケットのストリームの現在の状態ならびに特定の終点アドレスデバイス
の動作特性に基づいて、SLDRAMコマンドパケットの発行をダイナミックに
スケジューリングできる。
【0057】 次に、本発明の実施形態に従ったメモリコントローラ1000のブロックダイ
ヤグラムを図解した図10に言及する。メモリコントローラ1000が図1に示
されたユニバーサルコントローラ104の実施形態の1つにすぎず、したがって
本発明の限界を制限するものと捉えるべきでないことは注記すべきである。メモ
リコントローラ1000はシステム・インタフェース1002を含み、これはシ
ステム・バス906を介してプロセッサ902をメモリ・スケジューラ1006
(スケジューラと呼ぶ)に接続する。本発明の実施形態の1つにおいては、シス
テムインタフェース1002は、プロセッサ902によって生成されたメモリコ
マンドパケットとそれに関連付けられた書き込みデータパケットの両方の、メモ
リコマンドパケットスケジューラ1004への伝送に備えるために配置されてい
る。内部バッファがいっぱいで新しいコマンドが収容できないとスケジューラ1
006が表示している状況では、システムインタフェース1002はスケジュー
ラ1006が新しいコマンドを受け入れ準備完了と表示する時まで新しいコマン
ドをホールドする。
【0058】 シンクロナスリンク・メディアアクセスコントローラ(SLiMAC)100
8は、スケジューラ1006とSLDRAM908間の物理的インタフェースを
提供する。さらに具体的には、SLiMAC1008は、それぞれコマンドバス
912とデータバス914を介して、SLiMAC1008をSLDRAM90
8に接続するコマンドインタフェース1010とデータインタフェース1012
を含む。本発明の好適な実施形態では、コマンドインタフェース1010はメモ
リコマンドを、関連するコマンドクロックCCLKとともにSLiMAC100
からSLDRAM908に伝送する。いくつかの実施形態では、通常200MH
zで作動するコマンドクロック信号CCLKを生成させるために、SLiMAC
1008はインタフェースクロック信号ICLK(およそ100MHzで作動で
きる)を使うクロックダブラを組み入れている。
【0059】 本発明の実施形態の1つでは、データインタフェース1012はデータバス9
14のデータの受信、送信両方をする。データバス914の幅は、必要とされる
数のSLDRAMをサポートするのに十分な大きさにできることは注記すべきで
ある。したがって、必要な帯域幅を供給するために、必要なだけ十分のデータイ
ンタフェースがSLiMACに含まれ得る。一例として、データバス914が3
2ビット幅(例えば、SLDRAMごとに16ビット)であれば、その場合、S
LiMAC1008は、個々のSLDRAMに関連付けられた16ビットをそれ
ぞれ制御できる2つのデータインタフェースを備えることができる。このように
して、SLiMAC1008に含まれたデータインタフェースのサイズは、それ
に接続されたSLDRAMの特定の構成に厳密に適合させることができる。
【0060】 コマンド・インタフェース1010を用いるのとほぼ同じ方法で、SLiMA
C1008は、SLDRAM908からSLiMAC1008に送信されたリー
ドデータに伴うデータクロック信号DCLKを供給することができる。本発明の
実施形態の1つにおいては、データクロックDCLKは、インタフェースクロッ
クICLK周波数を約100MHzから約1000MHzに増加させるクロック
・ダブラを使うことで生成される。また、インタフェースクロック信号ICLK
、コマンドクロック信号CCLK、データクロック信号DCLKが全位相同期的
であることも注記されるべきである。
【0061】 本発明の好適な実施形態においては、スケジューラ1006は、システムコマ
ンドとそれに関連付けられたシステムアドレスデータを、接続されたシステムイ
ンタフェース1002から受信するように配列された制限ブロック1016を含
む。制限ブロック1016はSLDRAMコマンドパケットデータと関連付けら
れたタイミング情報を再順序付けブロック1018に供給する。ライトバッファ
1020はシステムインタフェース1002からリードデータを受け取る。スケ
ジューラ1006によって指示されたように、リードデータは、リードデータを
システム・インタフェース1002に供給するように配列されたデータバス91
4に接続されたリードバッファ1022を通してデータインタフェース1002
から伝送される。初期化/同期(I/S)バス914に接続されたI/Sブロッ
ク1024は、適切な初期化および/または同期信号をSLDRAM908に要
求通りに供給する。
【0062】 動作中において、スケジューラ1006は、プロセッサ902によって生成さ
れたパイプライン化されたメモリコマンドパケットを受け取る。通常、メモリコ
マンドパケットはメモリコマンドとそれに関連付けられたメモリアドレスとで構
成されている。本発明の実施形態の1つでは、スケジューラ1006は、メモリ
コマンドとそれに関連付けられたデータパケット(もしあれば)が差し向けられ
た終点アドレスを決定するために、受信された新コマンドに関連付けられたメモ
リアドレスをデコードする。いったんデコードされれば、スケジューラ1006
は、新しいSLDRAMコマンドパケットを送り出すために、そこに格納された
終点アドレス特定デバイス特性データを、直前に送り出されたメモリコマンドに
関連付けられた情報とともに使う。新しいSLDRAMコマンドパケットはコマ
ンドバス912への出力であり、最終的にはSLDRAMコマンドパケットに含
まれたチップIDによって識別されるSLDRAMへの出力である。
【0063】 スケジューリングプロセスの一部として、スケジューラ1006は、新しいコ
マンドの発行前に、直前に発行された要求されたコマンドの発行後の最短時間量
を決定する。上述のように、例えばメモリバンクなどのSLDRAMのそれぞれ
の階層レベルは、異なった動作特性を持つことができる(通常、製造者によって
与えられている)ので、スケジューラ1006は、初期化の間に、それがサービ
スするSLDRAMのそれぞれにポーリングする。いくつかの実施形態では、接
続されたメモリデバイスが動作特性を決定するためのポーリングを許さない場合
、メモリ特定パラメータ(タイミングなど)は制限ブロックレジスタ1016に
直接書き込むことができる。いったんSLDRAMがポーリングされれば、スケ
ジューラ1006は、後で適切なスケジューリングプロトコルを展開するために
使用するデバイス特定情報を格納する。このようにして、スケジューラ1006
は、ハードワイヤリングを必要とすることもなく、さらなる時間の浪費や経費の
かかる手続もなく、どんな数やタイプのSLDRAMにも適応するスケジューリ
ングサービスを供給することが可能である。
【0064】 図11は、本発明の実施形態に従った制限ブロック1100を模式的に図解し
たものである。制限ブロック1100が図10に示された制限ブロックの唯一の
可能な実施形態ではなく、したがってこれに限定されるものではないことは注記
されるべきである。制限ブロック1100は、プロセッサ902によって生成さ
れる新しいメモリコマンドに関連付けられた受信した新しいアドレス信号をデコ
ードするために配列され、システムインタフェース1002に接続されたアドレ
ス・デコーダ1102を含む。デコードされた新しいアドレス信号は、配列タグ
・レジスタ1104への入力を供給し、この配列タグレジスタには、関連するS
LDRAMメモリバンクのすべてのための、または場合によってはサブセットの
みのためのステータスや他の関連情報が格納されている。配列タグレジスタ11
04は、セレクタ1106への入力を供給し、セレクタ1106は、デコードさ
れた新しいコマンドに基づいて、選択された仮想バンクに関連するデータをルッ
クアップテーブル(LUT)1108に伝える。
【0065】 制限ブロック1100はまた、システムインタフェース1002に接続された
領域比較器1110を含んでおり、この領域比較器1110は、受信した新しい
アドレス信号を用いて、新しいコマンドアドレスが存在するメモリ領域を示す領
域識別子を供給する。このようにして、制限ブロック1100は、メモリ領域特
定特性データに少なくとも部分的には基づいて、新しいメモリコマンドのための
最善のスケジューリングプロトコルを提供することが可能である。領域比較器1
110は、新しいコマンド信号とともに、領域識別子をLUT 1108に入力
として供給する。次にLUT1108は、新しいコマンドとそれに関連付けられ
た新しいアドレスをSLDRAMコマンドパケットに変換するために使われる最
小デルタ発行時間とデータオフセットを供給する。最小デルタ発行時間が、直前
に発行された古いコマンドとの関係において新しいコマンドを発行する(クロッ
クサイクルでの)デルタ時間を示していることは注記されるべきである。データ
オフセット時間は、新しいコマンドの発行後に新しいコマンドに関連付けられた
リードデータパケットを受信するための、クロックサイクルにおけるデルタ時間
を表わしている。
【0066】 本発明の一実施形態において、制限ブロック1100は16個の配列タグバン
クレジスタを含み、LUT1108は、16個の関連付けられたレジスタを持つ
4個のタイミング領域それぞれのために4つの異なったパラメータセットを格納
可能である。
【0067】 図12は、本発明の実施形態の1つに従って、受信したプロセッサコマンドに
応答するSLDRAMバス信号のタイミング図1200である。表4が、様々な
発生信号を識別することにより、制限ブロックによって実行されるスケジューリ
ングプロセスを要約していることは注記されるべきである。また、メモリコマン
ドが{コマンド,アドレス}の形式を取り、ここでは“コマンド”は実行される
べき命令を表わし、“アドレス”は関連付けられたメモリのロケーションを表わ
していることも注記されるべきである。
【0068】 次に表4と図12に言及する。システムクロックサイクルΦ1の間、最初のコ
マンド{オープンページ,1000}がアドレスデコーダ302で受信され、並
列的に領域比較器1110で受信される。この例では、アドレスデコーダ110
2はオープンページコマンドアドレス“1000”を“100”および“400
”としてデコードし、それを領域比較器1110がメモリ領域0内に含まれるこ
とを決定する。オープンページコマンドは受信されるべき最初のコマンドなので
、仮想バンクB0−13のどれにも“ヒット”は無く、対応する置換カウンタは
“0”に設定される。この実施形態では、置換カウンタは擬似ランダムカウンテ
ィング方法に基づいて更新されるのに対し、他の実施形態では、ランダム・カウ
ンティングか他の適切な方法が使用される。最初のコマンド{オープンページ,
1000}はオープンタイプコマンドなので、関連付けられた最小デルタ発行時
間もデータオフセットも無く、したがってアドレス1000のページは最初のコ
マンドクロックサイクルΦC1で開かれる。
【0069】 次のシステムクロックサイクルΦ2の間に、{リード,1000}コマンドが
制限ブロック1100で受信され、それをアドレスデコーダ1102が100お
よび400としてデコードし(すなわち、メモリアドレスロケーション1000
に前のクロックサイクルでオープンされたページをリードすること)、これらの
値が、領域比較器1110に領域識別子を領域1に設定させる。しかしながらこ
の場合には、B0レジスタに格納されている前の、あるいは他の言い方では“古
いコマンド”がB0において“ヒット”することになり、これにより、セレクタ
は、“リード”を“古いコマンド”入力としてLUT1108に出力する。他の
入力としては、領域比較器1104により発せられた領域標識子「領域1」と、
リードである“新しいコマンド”入力とを含む。LUT1108は、格納された
特性データを用いて、3つのコマンドクロックサイクルΦ3の最小デルタ発行時
間を生成する。これは、少なくとも3つのコマンドクロックサイクルが{ページ
オープン,1000}コマンドの発行と、それに関連付けられた{リード,10
00}コマンドとを分離しなければならないということを示している。
【0070】 このようにして、制限ブロック1100において受信されたそれぞれのメモリ
コマンドパケットは、LUT1108に格納された特性データにしたがって、少
なくともある程度は直前に発行されたコマンドに基づいて処理される。
【0071】 次に、本発明の特定の実施形態に従った、制限ブロックから受信されたコマン
ドの再順序付けを説明する。図13A〜図13Cは、時刻表1302,1304
であり、単純なコマンド再順序付けの例を通して、本発明の特定の実施形態に従
ったメモリコマンドの再順序付けによって実現される利点のいくつかを例示する
のに役立つ。それぞれの時刻表は2つの異なったメモリバンクに対応する4つの
読み出しコマンドを示している。CMD0とCMD1は、関連付けられたメモリ
のバンク1に差し向けられたリードコマンドである。CMD2とCMD3は、関
連付けられたメモリのバンク2に差し向けられたリードコマンドである。時刻表
1302は、コマンドがシステムプロセッサからメモリコントローラによって受
信される順序で、メモリコントローラとメモリを接続するコマンドバス上に配置
されたメモリコマンドを示している。CMD0が時間帯0を占め、CND1が時
間帯3を占め、CMD2が時間帯4を占め、CMD3が時間帯7を占めている。
それぞれの時間帯は1つのクロックサイクルを表わしている。
【0072】 上に述べたように、同じメモリバンクへのコマンドは、前に発行されたコマン
ドの処理を行うために、発行の間に最短の遅延が必要である。これは図13Aに
、一対のコマンドの間の二つの時間帯によって表わされている。見てとれるよう
に、図13Aに示された順序で4つのリードコマンドがメモリに送られたとする
と、コマンドバスは4つの使用可能なクロックサイクル、すなわち時間帯1、2
、5、6の間は、使われずに過ぎることになる。以下で論じるように、この非効
率の少なくとも幾分かは、本発明に従ったコマンドの再順序付けによって改善さ
れるであろう。
【0073】 図13Bと図13Cの時刻表1304と1306はそれぞれ、本発明の特定の
実施形態に従った図13Aのコマンドの再順序付けと、それにより得られる利点
の少なくともいくつかを図解している。この例においては、データバスのコンフ
リクトは簡便を期して考慮されていない。しかしながら以下に論じるように、メ
モリコマンドの効果的な再順序付けのためには、そのような考慮に注意が払われ
ねばならない。CMD2とCMD3がCMD0とCMD1とは異なったメモリバ
ンクに差し向けられているという事実のため、二対のコマンドの間にあるメモリ
・アクセス待ち時間は問題とならず、無視してもよい。すなわち、コマンドは時
刻表1304に示されたように配置し直すことができ、CMD2をCMD0の直
後の時間帯1に置き、CMD3をCMD1の直後の時間帯4に置く。これは、異
なったメモリバンクに差し向けられているという事実により、CMD0とCMD
2の発行の間、CMD1とCMD3の発行の間には遅延は必要ないからである。
しかしながら、図13Cに示したように、同じバンクに差し向けられたコマンド
の対の間には最短の遅延時間、例えば2クロックサイクルが維持されねばならな
いことが理解されるだろう。すなわち、コマンドの再順序付けは同じメモリバン
クへの連続するコマンド間の遅延時間を縮減する試みは含んでいない。
【0074】 コマンドの再順序付けの結果は図13Cに示されている。ここでは4つのコマ
ンドが5クロックサイクル内に発行され、時間帯2だけが使われずに過ぎている
。もちろん、さらに別のメモリバンクに向かう5番目のメモリコマンドが時間帯
2に挿入され、コマンドバスが活用される効率をさらに極限まで増大させること
は理解されるだろう。
【0075】 図14は、本発明の特定の実施形態に従って構成されたメモリコントローラの
一部のブロックダイヤグラムである。再順序付け回路1400はシステム・プロ
セッサから入ってくるメモリコマンドシーケンス、すなわち1、2、3というコ
マンドシーケンスを受け取る。特定の実施形態によれば、メモリコマンドは制限
回路(示されていない)を介して再順序付け回路1400に伝送され、制限回路
は上述のように、選択されたコマンドに、関連付けられたメモリの同一の論理バ
ンクに差し向けられた他のコマンドに応じて、発行時間の制約を課す。コマンド
は、コマンドキュー1402内で再順序付けされ、そこからコマンドはメモリに
向けて発行される。この例においては、コマンドは1、3、2の順に再順序付け
されている。
【0076】 オリジナルのメモリコマンドシーケンス、すなわち1、2、3は、データ読み
取り回路1406内のFIFOメモリに格納される。FIFO1404内のシー
ケンスは、コマンドが元々メモリコントローラによって受け取られた順序に対応
するように、メモリから受け取ったデータを再順序付けするために使われる。し
かしながら、プロセッサのいくつかは順序通りのデータを期待するのに対し、他
のプロセッサは順序通りでないデータを期待するので、FIFO1404のスイ
ッチを必要に応じてオン、オフすることにより、いかなるタイプのデータ順序も
サポートされうることは注記されるべきである。これが必要なのは、プロセッサ
がコマンドを元々メモリコントローラに伝送した順序に対応する順序でデータを
受け取ることを“期待する”からである。
【0077】 さらに、メモリからのデータはメモリコントローラによって、プロセッサがメ
モリコマンドを伝送する元のシーケンスに対応しないシーケンスで受け取られる
かもしれないので、第3のシーケンスがデータキュー1408に格納される。こ
のシーケンス(この例では3、2、1)は、コマンドシーケンス1、3、2に対
応するデータがデータ読み取り回路1406に受け取られるであろう順序を表わ
している。データキューシーケンスは、コマンドキューシーケンスとメモリの様
々な論理バンクに関連付けされた既知の待ち時間に基づいて、再順序付け回路1
400によって算出される。メモリがデータキュー1408に格納されたシーケ
ンス(すなわち3、1、2)でメモリコントローラにデータを伝送するとき、デ
ータは読み取りデータバッファ1410に格納され、FIFO1404内の情報
とデータキュー1408に基づいて、元のコマンドシーケンスの順序に対応する
順序、すなわち1、2、3でプロセッサに伝送するように、再順序付けされる。
【0078】 図15は、本発明の特定の実施形態に従って構成されたメモリコントローラ内
の再順序付け回路1500のブロック図である。再順序付け回路1500は、シ
ステムプロセッサから受け取ったコマンドを格納し再順序付けするコマンドキュ
ー1502を含む。コマンドキュー1502は、メモリ内の同一の論理バンクに
向かうコマンドに関連付けられたコマンド発行時間制約とデータバス使用制約を
使って、それぞれのコマンドの発行時間を計算し、コマンドを発行し、発行され
たコマンドをキューから外す。
【0079】 データキュー1504は、発行されたメモリコマンドに対応するデータ発生時
刻を表わすデータ要素を格納し、キューへの新規入力それぞれに対する新しいデ
ータ発生時刻を計算し、対応するメモリトランザクションが完了したときにキュ
ーエントリを外す。
【0080】 比較器マトリクス1506は、衝突検出機能を実行する。この機能では、コマ
ンドキュー1502から発行準備のできているコマンドのデータ発生時刻(マル
チプレクサ1508を介して伝達される)が、データキュー1504に表わされ
ている前に発行されたコマンドのデータ発生時刻と比較される。衝突が検出され
れば、コマンドの発行が延期される。
【0081】 図16は、図15の再順序付け回路1500のさらに詳細なブロック・ダイヤ
グラムである。図17のダイヤグラムに示されているように、コマンドキュー1
502は、6つのコマンドキュー要素1602を含み、そのそれぞれは特定のメ
モリコマンドに関して61ビットの情報を格納している。コマンドフィールド1
702は、メモリコマンドを特定する40ビットメモリコマンドパケットを含む
。コマンド発行時間(Cd)フィールド1704は6ビットのフィールドであり
、コマンドが発行される前のクロックサイクルのデルタ時間を表示する。フィー
ルド1704の値は、上述の制限回路によって決定され、メモリ内の同一の論理
バンクに対応する最新のメモリコマンドに関係する。すなわち、Cdフィールド
の値は同一のバンクへの2つのコマンド間の待ち時間を表わす。それぞれのバン
クに必要な待ち時間に関する情報は制限回路に格納され、大部分はメモリの物理
的特性によって決定される。コマンドキュー内で、Cdフィールドはそれぞれの
クロックサイクルに対して決定されるが、いくつかの例外がある。例えば、同一
の論理バンクへの連続するコマンド間の待ち時間は変更されない。したがって、
特定のバンクに向けられたコマンドのためのCdフィールドがゼロになり発行さ
れない場合、最初のコマンドが発行されるまで、同じバンクへの他のコマンドの
Cdフィールドはデクリメントされない。
【0082】 データ発生時刻(Dd)フィールド1706は6ビットのフィールドであり、
コマンドキューからのメモリコマンドの発行と、対応するデータの転送の間のク
ロックサイクルのデルタ時間を示す。Ddフィールド1706はコマンドキュー
内では変更されてはならない。コマンドIDフィールド1708は5ビット・フ
ィールドであり、コマンドパケット1702内のコマンドを一対一対応に識別す
る。この情報は、コマンドやデータの再順序付けが効を奏するように、どれがど
のパケットか、どのデータがどのパケットに対応するか見失わないようにするた
め、FIFOの対応する情報とデータキューとともに使用される。論理バンク(
B)フィールド1710は3ビットのフィールドであり、メモリ内のどの論理バ
ンクにコマンドパケットが向けられているかを識別する。最後に、バースト標識
(Db)フィールド1712は1ビットのフィールドであり、要求された、また
は書き込まれたデータが、1つまたは2つのクロックサイクルを占めることを示
す。
【0083】 図16に戻って述べると、コマンドキューの動作はコマンドキューコントロー
ラ1604によって制御されている。コントローラ1604は、どのコマンドキ
ュー要素1602が使用可能かを見失わないようにして、空き位置識別部160
6を介して、入ってくるコマンドの特定のキュー要素への挿入を制御する。コン
トローラ1604はまた、対応するコマンドが発行されたときに、コマンドキュ
ー要素の情報をデータキュー1504に挿入するのを容易にする。特定の実施形
態によれば、コマンドバスやデータバス上の空き時間スロットの利用可能性に関
係なく、コマンドはコマンドキュー1502に挿入される。
【0084】 コマンドは、そのCdカウントがゼロで、かつ、データバス上に衝突がない場
合、マルチプレクサ1608を介して、コマンドキュー要素1602のどの1つ
からでもコマンドバスに発行されうる。すなわち、コマンドバスおよび/または
データバス上の空き時間スロットが識別されねばならない。コマンドがリードや
ライトではない場合(したがってデータバス・リソースを必要としない場合)、
コマンドバス時間スロットのみが必要とされる。コマンドがリードやライトであ
る場合には、コマンドバスとデータバス両方のスロットが必要とされる。
【0085】 コントローラ1604のゼロコンパレータ1610は、最初の決定、すなわち
Cd=0かどうかを決定するために使われる。減算器1612は、上記の例外す
なわち発行できない特定のコマンドに対してCd=0であることがない場合に、
それぞれのクロックサイクル毎に、それぞれのコマンドキュー要素1602に対
するCdカウントから“1”を減じるために使われる。その場合、キューコント
ローラ1604は、すべてのキュー要素に対するCdフィールドとBフィールド
を用いて、同一の論理バンクへの全コマンドに対するCdカウントがデクリメン
トするのを防ぐマスク信号(M)を発する。
【0086】 特定の実施形態によれば、Cd=0である2つのキュー要素があった場合、優
先順位の最も高いもの(例えば、最も古いもの)が発行される。アドレスシフタ
1614は、以下で図18を参照しつつ詳細に論じるように、キュー内のコマン
ドの優先順位を決定する。他の特定の実施形態によれば、新しいコマンドがコマ
ンドキューに到着して、そのCdカウントがすでにゼロである場合、それはマル
チプレクサ1608を介して直接メモリに伝送される。新しいコマンドは、その
Cdカウントがゼロでない場合、または優先順位が上位でCd=0でコマンドキ
ューに格納された他のコマンドがある場合、コマンドキュー要素1602に格納
される。しかしながら、コマンドキューが空の場合には、新しいコマンドはただ
ちに発行される(Cdがゼロに等しい場合)。
【0087】 リードコマンドやライトコマンドに関しては、衝突は、発行準備ができている
コマンドを含むコマンドキュー要素1602のDdフィールドとDbフィールド
を使って検出される。コマンドに対応するデータ発生時刻と持続時間はマルチプ
レクサ1508を介して比較器マトリクス1506に伝送され、マルチプレクサ
1508はキューコントローラ1604によって制御される。すなわち、キュー
コントローラ1604は、コマンド発行時間すなわちCdがゼロであるキュー要
素のデータ発生時刻と持続時間(1または2クロックサイクル)を伝送するため
に、マルチプレクサ1508を制御する。持続時間は1または2クロックサイク
ルであり、これは、加算器1616が、Dbビットをデータ発生時刻Ddに加算
することによって、Dd+1に対する“0” (1クロックサイクルを表わす)
または“1”(2クロックサイクルを表わす)を導き出すことにより得られる。
次に、データ発生時刻および持続時間は、比較器マトリクス1506で、データ
キュー1504に格納された5つの以前に発行されたコマンドのデータ発生時刻
および持続時間と比較される。特定の実施形態によれば、比較器マトリクス15
06は2×10個のパラレル比較器マトリクスを含む。
【0088】 図18は、図16のアドレスシフタ1614の特定の実施形態のブロック図で
ある。上述のように、アドレスシフタ1614はコマンドの優先順位を決定する
。これもまた上述のように、新しいコマンドは、空き位置認識部1606にした
がって、任意のフリーコマンドキュー要素1602に挿入される。新しいコマン
ドが挿入されるコマンドキュー要素1602のアドレスは、最初の空き位置(A
0〜A5)に最上位の優先順位で挿入される。結果として、アドレスシフタのA
0ポジションは、未発行の最も古いコマンド用のキュー要素アドレスを格納する
。コマンドがコマンドキューから発行されるとき、アドレスシフタ1614の対
応するエントリが外され、下位の優先順位のコマンド用のアドレスが上位の優先
順位のポジションに変更される。上述のように、コマンドキュー内のコマンドに
対するCdカウントがゼロに達したとき、コマンドは発行される。しかしながら
、Cd=0のコマンドが1つ以上ある場合には、最も古いコマンド、すなわちア
ドレスシフタ1614内のアドレスのポジションによって示される優先順位が最
上位のコマンドが発行される。
【0089】 図16のデータキュー1504は5つのキュー要素1652を含み、そのそれ
ぞれは図19によって図解されているように、以前に発行されたメモリコマンド
に関する12ビットの情報を含んでいる。データ発生時刻(Dd)フィールド1
902は、コマンドキューからのコマンドの発行と、対応するデータの受信との
間のクロックサイクルでのデルタ時間を示す6ビットのフィールドである。それ
ぞれのデータキュー要素1652に対するDdカウントは、その値がゼロに到達
するまで、減算器1654の1つを用いてクロックサイクル毎にデクリメントさ
れる。Dd=0のとき、対応するデータはデータバス上にある。したがって、任
意の時刻にDd=0を持つデータキュー要素1652はただ1つであることが理
解されるだろう。Ddカウントがゼロに到達した後、対応するデータキュー要素
内の情報はデータキュー1504から外される。
【0090】 コマンドIDフィールド1904は、データが対応する発行済みコマンドを一
対一対応に識別する5ビットのフィールドである。この情報は、コマンドがメモ
リコントローラに最初に伝送された元の順序に対応するようにデータを再順序付
けするのに役立つ。最後に、バースト標識(Db)フィールド1906は、デー
タが1つまたは2つのクロックサイクルを占めていることを示す1ビットのフィ
ールドである。
【0091】 図16に戻って論じると上述のように、データキュー要素1652のそれぞれ
に対するデータ発生時刻(Dd)および持続時間は、発行準備ができているコマ
ンド、すなわちCd=0のコマンドキュー1502内のコマンド用のDdおよび
持続時間と、比較器マトリクス1506で比較される。持続時間は、1または2
クロックサイクルであり、これは、加算器1616が、Dbビットをデータ発生
時刻Ddに加算することによって、Dd+1に対する“0” (1クロックサイ
クルを表わす)または“1”(2クロックサイクルを表わす)を導き出すことに
よって得られる。比較によりデータバス上に衝突がないことがわかれば、コマン
ドがコマンドキューから発行される。
【0092】 データキューコントローラ1658は、データキュー1504の動作を制御す
る。空き位置識別部1660は、コマンドキューコントローラ1604とともに
、データキュー要素1652内に新たなデータキュー要素情報を挿入することを
容易にする。空き位置識別部はまた、対応するメモリアクセスが完了したときに
データキュー要素1652から情報を外すのを容易にする。ゼロコンパレータ1
662とバースト識別部1664は、いつデータキュー要素1652のどれかに
対するDdがゼロになるか、そしていつデータ転送がデータバスを占有しなくな
るか、そしてそれゆえいつ対応する情報がデータキューから外されるべきかを決
定するのに使われる。
【0093】 本発明の別の特定の実施形態によれば、衝突検出は2次元配列のコンパレータ
とマルチプレクサの使用を通して、さらに複雑になる。このアプローチは、上述
の1次元アプローチよりさらにシリコン集約的で、発行準備のできたコマンドに
対する1つの要素だけでなく、コマンドキュー内の全要素を見る。これは、以前
に発行されたコマンドについてだけでなく、データバス上のデータパケットの順
序についても、コマンドのスケジューリングを行う。
【0094】 新しいコマンドを挿入するためには、コマンドパイプの発行予定部分における
2つの連続したステージのそれぞれの組み合わせが、それらの間に新しいコマン
ドを挿入できるか調べるために比較されなければならない。この比較は、コマン
ドが挿入されうる範囲を、実際に決定する。この範囲は以下に示すとおりである
【0095】 CLENX=コマンドの長さ Tcstart=tcA+CLENA (1) Tcend=tcB (2)
【0096】 ここで、tcAとtcBは、連続するパイプライン要素AとBの発行時間である。
パイプライン要素Aはパイプライン要素Bに先立ち、したがってその発行時間は
2つの中の低い方である。挿入があるとすれば、当然AとBの要素の間には少な
くとも1つのオープンスロットがなければならない。したがって:
【0097】 N=Tcend−Tcstart+1 (3) (ここで、N=エレメントAB間の発行スロットの数) LEN<=tcb−tca−CLENA (4)
【0098】 ハードウェアでは、以下の条件を単純に実装することは容易である:
【0099】 (tcB−CLENA)−(tcA+CLENA)=>0 (5)
【0100】 範囲のスタートポイントとエンドポイントも、関連付けられたデータスロット
の可能な範囲を特定する。この範囲は、オーバーラップがないかどうか、新しい
範囲がどのようになるかを調べるために、データパイプ内のそれぞれの連続する
要素と比較されなければならない。この比較には5つの異なるケースが存在する
【0101】 ケース0: このケースでは、データスロットtdAとtdBによって画される範囲は、2つの
連続する要素MとNの範囲の完全に外部にある。このケースでは、したがって:
【0102】 tdA+CLENA=>tdN (6) または、DLENX=データの長さとすると、 tdB<=tdM+DLENM (7)
【0103】 MとNのペアの間には可能なデータスロットはない。
【0104】 ケース1: このケースでは、データスロットtdAとtdBによって画される範囲は、2つの
連続する要素MとNの範囲の完全に内部にある。このケースでは、したがって:
【0105】 tdA+CLENA=>tdM+DLENM (8) かつ、 tdB−CLEN+DLEN<=tdN(ここで、CLENはスロット内の新しい
コマンドの長さ、DLENはスロット内の新しいデータの長さ) (9)
【0106】 このケースにおける最も早い可能なデータスロット時間は、対応するコマンド
の発行時間tcA+CLENAを持つtdA+LENAである。
【0107】 ケース2: このケースでは、データスロットtdAとtdBによって画される範囲は、要
素Mの長さに一致する。このケースでは、したがって:
【0108】 tdA+CLENA<tdM+DLENM (10) かつ、 tdB−CLEN+DLEN>tdM+DLENM、かつ、tdB−CLEN+DL
EN<tdM (11)
【0109】 このケースにおける最も早い可能なデータスロット時間は、対応するコマンド
の発行時間tcM+CLENM−DATA-OFFSETを持つtdM+DLENM
1である。ここでDATA-OFFSETは、コマンド発行時間とデータ占有時
間の間の時間である。
【0110】 ケース3: このケースでは、データスロットtdAとtdBによって画される範囲は、要
素Nの長さに一致する。このケースでは、したがって:
【0111】 tdA+CLENA>tdM+DLENM (12) かつ、 tdA+CLENA+DLEN<tdN (13)
【0112】 したがって、このケースにおける最も早い可能なデータスロット時間は、対応
するコマンドの発行時間tcA+CLENA+1を持つtdA+CLENMである。こ
のケースにはケース1も含まれていることは注記すべきである。
【0113】 ケース4: このケースでは、データスロットtdAとtdBによって画される範囲は、要素M
とNによって定義される範囲を包含する。このケースでは、したがって:
【0114】 tdA+CLENA<tdM+DLENM (14) かつ、 dB−LEN>CtdN (15)
【0115】 したがって、このケースにおける最も早い可能なデータスロット時間は、対応
するコマンドの発行時間tcM+CLENA+DATA-OFFSETを持つtdM
DLENMである。ここでDATA-OFFSET=tdA−tcAである。
【0116】 最も早い可能なスロットが常に選ばれるようなスケジューリングという目的に
照らすと、ケース1とケース3が同一になることは明らかである。従って、これ
らを合体したケースはケース3である。同様に、ケース2とケース4は、要求さ
れる結果がtdM+LENMであるので、同一である。このケースでは、tdMがtd A とtdBによって与えられる範囲に一致することが端的に示されねばならない。
さらに、入ってくるコマンドに対する、最も早い可能な発行時間(tc)とデー
タスロット(td)が考慮されねばならない。それぞれのコマンドパイプのペア
に対して、それぞれのデータパイプで行われなければならない比較は以下の通り
である:
【0117】
【数1】
【0118】 したがって、コマンドパイプに関して必要な演算は:
【0119】
【数2】
【0120】 同様に、データパイプに関して必要な演算は:
【0121】
【数3】
【0122】 従って、この決定ロジックは、上で定義されたコンパレータのマトリクスで構
成されている。最適の選択は最も早いコマンド発行時間であり、これは単純な優
先順位エンコーダによって決定される。
【0123】 再順序付けパイプ制御ロジックは、コマンドパイプとデータパイプのそれぞれ
の要素について、どの演算がなされるべきかをダイナミックに決定しなければな
らない。
【0124】 待機中のコマンドパイプでは、それぞれのパイプ要素は4つの動作が可能であ
る。前の要素からの読み出し(パイプは前進する)、現内容の保持(パイプはホ
ールドする)、次の要素からの読み出し(パイプはバックアップする)、入って
くるコマンドバスからの読み出しである。4つのケースによって定義されたパイ
プの様々なポイントに、多数組の条件が存在しうる。SLiMACへの発行元の
要素は、要素0と定義され、それに対し発行から最も遠い要素は要素Mと定義さ
れる。再順序付け決定ロジックが、カレントパイプラインにおける最適の挿入点
が要素N−1とNの間であることを発見した場合には、要素Nへの挿入が行われ
る。
【0125】 ケース1−ホールド: SLiMACへの発行や新しいコマンドの挿入がない場合、パイプはホールド
する。
【0126】 ケース2−ホールド&インサート: このケースでは、SLiMACへの発行はないが、新しいコマンドのパイプへ
の挿入がある。挿入が要素Nに生じるならば、パイプは要素0から要素N−1ま
でをホールドし、要素Nに挿入し、要素N+1から要素Mまでをバックアップす
る。
【0127】 ケース3−発行: このケースでは、要素0からSLiMACへの発行があり、パイプの他の部分
は、要素0が要素1の内容を、要素1が要素2の内容を、というように、要素M
−1が要素Mの内容を含むようになるまで、先送りされる。
【0128】 ケース4−発行&挿入: このケースでは、要素0からSLiMACへの発行があり、要素Nでの挿入が
ある。このケースでは、要素0からN−2では先送り動作が行われ、要素N−1
では挿入動作が行われ、要素NからMはホールドされることになる。先送りは、
直後の要素からのデータを格納することになる要素に行われ、要素Nでの挿入は
(その要素はカレントパイプの要素N−1と要素Nの間に挿入されることになる
)、実際には、挿入された要素が、更新されたパイプのN−1の位置に行くこと
を意味している。
【0129】 図20は、図15に示された衝突検出システム1500の別の実現である衝突
検出システム2000を図解している。この実施形態では、衝突検出システム2
000は、ターゲット応答制限に基づいた最適のコマンドシーケンスが得られる
ようにコマンドを再順序付けして、初期化コントローラとターゲットサブシステ
ム間のデータ転送用の最適のスロットを決定する。コマンドの再順序付けはデー
タバス上の異なったデータパケット同志の衝突を引き起こしてはならないので、
特定のコマンドに関係するコマンドデータ転送がデータコンフリクトを引き起こ
す場合この特定のコマンドの発行を差し止める衝突検出器2002が必要となる
。この実施形態では、衝突検出システム2000は、コマンドキュー2004と
結合される衝突検出器2002を備える。
【0130】 この実施形態では、衝突検出器2002は“発行予定の”コマンド(コマンド
キュー2004に格納されている)と“発行済みの”コマンド(データキュー2
006に格納されている)の間のすべての可能なデータ衝突を検出する。この実
施形態では、それぞれマルチプレクサ2008と結合されているN個のコマンド
キュー2004がある。N個のコマンドキュー2004のそれぞれは、発行予定
のそれらのコマンドと、コマンドがターゲットデバイスに発行された後、データ
転送がユニバーサルコントローラ104とターゲットデバイス(すなわち共有リ
ソース)108間のデータバス上にいつ現れるかを示す時間ファクタ“d-ti
meND”と、データ・バースト転送を示すバーストビット(bND)と、リード/
ライトビット(rwND)と、を格納するように構成されている。この実施形態で
は、データキュー2006は、すでにターゲットデバイスに発行済みの要求に対
して、データ転送がユニバーサルコントローラ104とターゲットデバイス(す
なわち共有リソース)108間のデータバス上にいつ現れるかを示す時間ファク
タ“d-timeD”を格納する。コマンドキュー2006はまた、バーストビッ
ト(bND)、リード/ライトビット(rwND)も格納する。
【0131】 より好ましい実施形態では、衝突検出システム2000は、発行予定のコマン
ドを格納し再順序付けするように構成されたキュー&リンクコントローラユニッ
ト2010を備える。キュー&コントローラユニット2010は、新しいコマン
ドの発行時間と、データがデータバス上に現れる時間も計算する。キュー&コン
トローラユニット2010はまた、コマンドキューから発行されたデータをデー
タキューに転送し、同時にコマンド発行後にコマンドキューからそれを外す。キ
ュー&コントローラユニット2010はまた、メモリへのアクセス完了後にデー
タキューからデータ要素を外す。
【0132】 図21を参照すると、ターゲットデバイスへのすべてのリード/ライトコマン
ドは、データパケット転送に関連付けられている。ターゲットデバイスへのコマ
ンド発行の前に、新しいデータパケットND(New Data)が、衝突を起
こさずにデータキューへの挿入が可能か調べるために、そのタイミング情報に従
ってチェックされる。図21に示されたこの例では、発行されたデータパケット
Dはすでにデータキューの中に位置を占めており、新しいデータパケットNDは
発行済みデータパケットDに対して比較される。発行済みデータパケットDと新
しいデータパケットNDが両方ともバーストアクセスを表わしていることには留
意されたい。したがってこの例では、データ衝突を起こさずに発行済みデータパ
ケットDに配慮して新しいデータパケットNDが位置を占める可能性が2つある
。新しいデータパケットNDは発行済みデータパケットDの左側か右側に位置を
占めることができる。
【0133】 この特定の例は、非バーストデータ転送とバーストデータ転送(すなわち4デ
ータストリーム)の両方をサポートするメモリコントローラの衝突検出を図解し
ている。データバスの双方向的性質のため、1クロックサイクルが連続するリー
ド−ライトまたはライト−リード転送の間に挿入されなければならない。
【0134】 多くの可能な結果があることは留意されるべきであり、そのいくつかを以下に
列挙する。
【0135】 1)NDがDの後または前に置かれる場合、衝突は起こらない。
【0136】 2)連続するリード−ライトまたはライト−リードデータ転送の間には、1ク
ロックサイクルが挿入されなければならない。コマンドキューとデータキューの
すべての要素は、その動作が“リードデータ”(rw=0)か“ライトデータ”
(rw=1)かを示す“rw”ビットを格納している。
【0137】 3)データパケットは、1データストリーム(非バースト転送)か4データス
トリーム(バースト転送)で構成されている。コマンドキューとデータキューの
すべての要素は、その動作が“バースト転送”(バースト=1)か“非バースト
転送”(バースト=0)かを示す“バースト”ビットを格納する。
【0138】 発行予定データパケットと発行済みデータパケットのペアのそれぞれにおいて
、発行予定コマンドについて行われるべき比較は以下のとおりである:
【0139】
【数4】
【0140】 本発明のさらに別の実施形態では、連続する2つのメモリアクセス間の時間を
予測する装置と方法が開示されている。この装置と方法は、新しいコマンドに対
する最も早い“コマンド発行時間”の高速計算を可能とするものである。図22
について述べれば、特定のページに発行された最新のコマンドとそのメモリへの
予測された次のアクセス間の時間を格納するN個のページタイマ2022を持つ
予測システム2200を図解したものである。同じページへの次のアクセスは“
クローズ”、“オープン”、“リード”、“ライト”の場合がある。入ってくる
新しいコマンド(例えば、リード)は、特定のページへのアクセスが発行前にど
のくらい待たなければならないかを表示する1つの特定のページタイマを選ぶ。
この新しいコマンドは次に、タイミングルックアップテーブル2204の中から
、このコマンド(リード)と同じページへの可能な次のアクセス(クローズ、オ
ープン、ライト、リード)の間に挿入されるべき適切な内容をら選ぶ。タイマの
解像度は1クロックサイクルである。
【0141】 タイミングルックアップテーブル−データは、コマンド発行後データバス上の
データがどのくらいのサイクル有効かを示す時間を格納する。新しいコマンドが
非アクティブの場合には、すべてのサイクル毎に、すべてのページタイマの値が
“0”に達するまでになる。
【0142】 次に図23を参照すれば、本発明のさらに別の実施形態において、本発明の実
施形態に従ったデバイスアクセス優先順位決定部2302を持つデバイスコント
ローラ2300が示されている。この実施形態では、優先順位決定部2302は
、リクエストコントローラユニット2304に結合されたデバイス要求をいくつ
でも受け取り格納するのに適したリクエストキュー2303を含む。リクエスト
コントローラユニット2304は一部には、リクエストキュー2303の任意の
位置から特定の応答をフェッチし、フェッチした応答を複数の共有デバイス10
8のうちの適切な1つに伝達するために使われる。この実施形態では、優先順位
決定部2302はまた、応答キュー2306を含む。この応答キューは、応答コ
ントローラユニット2308に結合された共有デバイス108のいずれからでも
応答を受け取り格納するように構成されており、応答コントローラユニット23
08は、格納された応答から、要求しているデバイス102に送られる特定の応
答を選択するのに利用される。
【0143】 好ましい実施形態では、図1Eに示されているように、要求とそれに関連付け
られた応答とが同じID番号150を持つように、応答と要求がID番号150
とそれぞれ関連付けられている。上述のように、ID番号150は、5つのデー
タビットを含み、その1番目と2番目のデータビットは、その特定の応答/要求
が属する要求元デバイスのグループ(マルチプロセッサコンピューティング環境
におけるプロセッサの1グループなど)を識別するグループセレクタフィールド
152である。さらに上述のように、要求番号フィールド(RN)153は、グ
ループセレクタフィールド152によって識別された要求元デバイスのグループ
に関連付けられた要求および/または応答の番号を表しており、例えば、同一の
要求デバイスからの連続する要求が連続する要求番号フィールド153を持つよ
うに表わされている。
【0144】 動作中は、リクエストコントローラ2304とレスポンスコントローラ230
8の双方は、グループ優先順位セレクタレジスタ154と、動ロックカウンタレ
ジスタ156と、再順序付けセレクタ2312とをそれぞれ組み入れている。グ
ループ優先順位セレクタレジスタ154は、RN152によって識別された特定
の要求/応答グループに関する優先順位情報を含む。それについて1つの実施形
態では、“3”という値が最上位の優先順位を表わし、“0”という値が最下位
の優先順位を表わしており、上位の優先順位の要求が優先順位の下位の要求を飛
び越えることができる。
【0145】 動ロック状況を回避するために、動ロックカウンタレジスタ156は、何個の
連続する優先順位上位の要求(または応答)が、優先順位下位の要求(または応
答)を飛び越せるかに関する情報を含んでいる。動ロックカウンタレジスタ15
6が、優先順位上位のリクエストが優先順位下位のリクエストを飛び越える状況
においてのみアクティブとなることは注記されるべきである。実際、適当なキュ
ーに優先順位下位の要求(または応答)がない場合には、動ロックカウンタレジ
スタ156は非アクティブとなる。
【0146】 以上、本発明の実施形態の幾つかを詳細に説明してきたが、本発明の趣旨と範
囲から逸脱することなく他の多くの特定の形式で本発明を実施し得ることは理解
されよう。したがって、ここに示した例は説明のためのものであり、これらに限
定されるものではない。本発明は、ここに示された細部に限定されることなく、
前記特許請求の範囲内で変形可能である。
【図面の簡単な説明】
【図1A】 本発明の実施形態によるユニバーサルコントローラの一般的な使用例を示す図
である。
【図1B】 図1Aに示されるユニバーサルコントローラの具体的な使用例を示す図である
【図1C】 本発明の実施形態によるユニバーサルコントローラに結合されたアドレス空間
コントローラを示す図である。
【図1D】 図1Cに示されるアドレス空間コントローラの具体的な使用例を示す図である
【図1E】 本発明の実施形態による例示的な要求/応答識別番号を示す図である。
【図2A】 本発明の実施形態による一般的なユニバーサルコマンドを示す図である。
【図2B】 図2Aと同種のユニバーサルコマンドで、メモリページリードコマンドに適す
る具体的なユニバーサルコマンドを示す図である。
【図2C】 図2Bの例示的なコマンドにおいて、コマンド構成要素間に適当な時間間隔を
設けることによって形成される一連のコマンドの例を示す図である。
【図3】 本発明の実施形態によるリソースタグを示す図である。
【図4】 本発明の実施形態に従って、ユニバーサルコントローラが共用リソースにアク
セスするプロセスの詳細を表すフローチャートである。
【図5】 本発明の実施形態に従って、ユニバーサルコントローラがリソースの状態およ
び実行すべき動作の順序を決定するプロセスを示す図である。
【図6】 本発明の実施形態による工程に基づき、ユニバーサルコントローラが連続する
動作の間における適切な時間間隔を決定する工程を示す図である。
【図7A】 本発明の実施形態によるページヒット/ミスコントローラを示す図である。
【図7B】 本発明の実施形態によるページヒット/ミスコントローラを示す図である。
【図8】 本発明の実施形態によるバンクアクセスコントローラを示す図である。
【図9A】 本発明の実施形態による例示的なSLDRAM型マルチプロセッサシステムを
示す図である。
【図9B】 図9Aに示されるマルチプロセッサシステムによる例示的なSLDRAMバス
の処理の流れを示すタイミング図である。
【図10】 本発明の実施形態によるメモリコントローラのブロック図である。
【図11】 本発明の実施形態による制限ブロックのブロック図である。
【図12】 本発明の実施形態による例示的なSLDRAMコマンドのタイミング図である
【図13A】 本発明の具体的な実施形態による、メモリコマンドの再順序付けの流れを示し
た図である。
【図13B】 本発明の具体的な実施形態によるメモリコマンドの再順序付けの流れを示した
図である。
【図13C】 本発明の具体的な実施形態によるメモリコマンドの再順序付けの流れを示した
図である。
【図14】 本発明の具体的な実施形態により構成されたメモリコントローラの一部を示す
ブロック図である。
【図15】 本発明の具体的な実施形態により構成された再順序付け回路のブロック図であ
る。
【図16】 図15の再順序付け回路のより詳細なブロック図である。
【図17】 本発明の具体的な実施形態によるコマンドキュー要素の内容を示す図である。
【図18】 アドレスシフタの具体的な実施形態を示すブロック図である。
【図19】 本発明の具体的な実施形態によるデータキュー要素の内容を示す図である。
【図20】 図15に示される衝突探知システムの別の実施例としての衝突探知システムを
示す図である。
【図21】 ターゲットデバイスに対するリード/ライトコマンドのそれぞれがどのように
データパケットの伝達に関連しているかを示す例示的なタイミング図である。
【図22】 特定のページに最後に発行されたコマンドとそのメモリへの予測される次期ア
クセスとの間の時間を記憶するNページタイマーを有する予測システムを示す図
である。
【図23】 本発明の実施形態によるデバイスアクセス優先順位決定器を有するデバイスコ
ントローラを示す図である。
【図24】 本発明の実施形態による制限ブロックにより実行されるスケジューリングプロ
セスを要約する表4を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 シャベルスキー・ピオトル アメリカ合衆国 カリフォルニア州95054 サンタ・クララ,ミル・クリーク・レー ン,590,アパートメント 103 Fターム(参考) 5B060 CD01 CD12 5B065 BA05 CA03 CA05 CA12 CC03 CC10 【要約の続き】 順序付けることによって、優先順序の高い要求または応 答に優先順序の低い要求または応答をバイパスさせる。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 外部デバイスへのアクセスを優先順序付けるための装置であ
    って、 要求元デバイスから前記外部デバイスへの任意数の要求を格納するように適切
    に構成された要求キューと、 前記要求キューに結合され、そこに格納された任意の要求を取り出すように適
    切に構成された要求キューコントローラユニットと、 前記外部デバイスからの任意数の応答を格納するように適切に構成された応答
    キューと、 前記応答キューに結合され、そこに格納された任意の要求を取り出すように適
    切に構成された応答キューコントローラユニットと を備え、 前記応答およびそれに関連付けられた前記要求のそれぞれは、前記要求の発信
    元であり対応する前記応答の送信先である特定グループの要求デバイスを示すグ
    ループ識別番号に関連付けられており、 前記応答キューコントローラおよび前記要求キューコントローラユニットは、
    グループ優先順序セレクタレジスタに格納された優先番号を使用し、前記格納さ
    れた要求および応答をそれぞれ優先順序付けることによって、優先順序の高い要
    求または応答に優先順序の低い要求または応答をバイパスさせる、装置。
  2. 【請求項2】 請求項1に記載の装置であって、さらに、 優先順序の高い応答または要求が優先順序の低い応答または要求をバイパスす
    る状態でアクティブにされることによって、動ロック条件を実質的に回避するよ
    うに構成された動ロックカウンタレジスタを備える、装置。
JP2000582897A 1998-11-16 1999-11-15 外部デバイスへのアクセスを優先順序付けるための方法および装置 Expired - Lifetime JP4472186B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10893098P 1998-11-16 1998-11-16
US60/108,930 1998-11-16
US09/439,860 1999-11-12
US09/439,860 US6195724B1 (en) 1998-11-16 1999-11-12 Methods and apparatus for prioritization of access to external devices
PCT/US1999/027017 WO2000029956A1 (en) 1998-11-16 1999-11-15 Methods and apparatus for prioritization of access to external devices

Publications (2)

Publication Number Publication Date
JP2002530742A true JP2002530742A (ja) 2002-09-17
JP4472186B2 JP4472186B2 (ja) 2010-06-02

Family

ID=26806435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000582897A Expired - Lifetime JP4472186B2 (ja) 1998-11-16 1999-11-15 外部デバイスへのアクセスを優先順序付けるための方法および装置

Country Status (7)

Country Link
US (2) US6195724B1 (ja)
JP (1) JP4472186B2 (ja)
KR (1) KR100667384B1 (ja)
CN (1) CN1205553C (ja)
DE (1) DE19983747T1 (ja)
GB (1) GB2358942B (ja)
WO (1) WO2000029956A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252985A (ja) * 2003-02-19 2004-09-09 Canon Inc メモリ要求の動的並べ替え
JP2004295860A (ja) * 2003-03-07 2004-10-21 Fujitsu Ltd ストレージシステム及びそのデイスク負荷バランス制御方法
JP2005011110A (ja) * 2003-06-19 2005-01-13 Hitachi Ltd 情報処理装置、情報処理装置の制御方法、プログラム、及び情報処理システム
JP2006185198A (ja) * 2004-12-28 2006-07-13 Kyocera Mita Corp メモリアクセス制御回路
JP2008276351A (ja) * 2007-04-26 2008-11-13 Hitachi Ltd 半導体装置
JP2010182092A (ja) * 2009-02-05 2010-08-19 Mitsubishi Electric Corp バス装置
WO2016098202A1 (ja) * 2014-12-17 2016-06-23 株式会社日立製作所 ストレージ装置およびその制御方法
JP2017045452A (ja) * 2015-08-27 2017-03-02 三星電子株式会社Samsung Electronics Co.,Ltd. トランザクション基盤メモリシステム及びメモリモジュール並びにマスターコントローラ及びスレーブコントローラの動作方法
JP2018152112A (ja) * 2012-03-29 2018-09-27 三星電子株式会社Samsung Electronics Co.,Ltd. メモリ装置及びメモリ装置の動作方法

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691258B1 (en) * 1998-07-30 2004-02-10 Siemens Aktiengesellschaft Bus control unit for assisted program flow monitoring in star topologies, associated program flow monitoring system and method for program flow monitoring
GB9909196D0 (en) * 1999-04-21 1999-06-16 Texas Instruments Ltd Transfer controller with hub and ports architecture
US6490674B1 (en) 2000-01-28 2002-12-03 Hewlett-Packard Company System and method for coalescing data utilized to detect data hazards
US6882649B1 (en) 2000-03-31 2005-04-19 Sun Microsystems, Inc. Least choice first arbiter
US7065580B1 (en) 2000-03-31 2006-06-20 Sun Microsystems, Inc. Method and apparatus for a pipelined network
US6975626B1 (en) 2000-03-31 2005-12-13 Sun Microsystems, Inc. Switched network for low latency communication
US7006501B1 (en) 2000-03-31 2006-02-28 Sun Microsystems, Inc. Distributed least choice first arbiter
US7020161B1 (en) 2000-03-31 2006-03-28 Sun Microsystems, Inc. Prescheduling arbitrated resources
US7395399B2 (en) * 2000-08-25 2008-07-01 Stmicroelectronics S.A. Control circuit to enable high data rate access to a DRAM with a plurality of areas
US20020112070A1 (en) * 2000-12-08 2002-08-15 The Boeing Company Network controller for digitally controlling remote devices via a common bus
US6708239B1 (en) * 2000-12-08 2004-03-16 The Boeing Company Network device interface for digitally interfacing data channels to a controller via a network
KR100656977B1 (ko) * 2001-04-26 2006-12-13 더 보잉 캄파니 버스 컨트롤러에 명령 스케줄을 프리로딩하는 시스템 및 방법
US7111100B2 (en) * 2002-04-26 2006-09-19 The Boeing Company Systems and methods for assigning an address to a network device added to an existing network
KR100615548B1 (ko) * 2001-04-26 2006-08-25 더 보잉 캄파니 네트워크 버스에서 적합한 종결 및 에러-프리 통신을유지하는 시스템 및 방법과 버스 보호 소자
KR100522388B1 (ko) * 2001-04-26 2005-10-18 더 보잉 캄파니 네트워크 버스에 의해 이벤트 트리거를 생성하기 위한시스템, 방법, 및 제어기
US6851011B2 (en) * 2001-08-09 2005-02-01 Stmicroelectronics, Inc. Reordering hardware for mass storage command queue
US6804738B2 (en) 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US6578117B2 (en) * 2001-10-12 2003-06-10 Sonics, Inc. Method and apparatus for scheduling requests using ordered stages of scheduling criteria
US7194561B2 (en) 2001-10-12 2007-03-20 Sonics, Inc. Method and apparatus for scheduling requests to a resource using a configurable threshold
US6961834B2 (en) * 2001-10-12 2005-11-01 Sonics, Inc. Method and apparatus for scheduling of requests to dynamic random access memory device
US7065583B2 (en) * 2002-02-14 2006-06-20 The Boeing Company System and associated suppression assembly for limiting electromagnetic emissions in network devices communicating via a network bus
US7010621B2 (en) * 2002-02-14 2006-03-07 The Boeing Company System having a spread-spectrum clock for further suppression of electromagnetic emissions in network devices communicating via a network bus
US7352741B2 (en) 2002-02-21 2008-04-01 Sun Microsystems, Inc. Method and apparatus for speculative arbitration
US6963962B2 (en) * 2002-04-11 2005-11-08 Analog Devices, Inc. Memory system for supporting multiple parallel accesses at very high frequencies
US7478174B2 (en) * 2002-04-26 2009-01-13 The Boeing Company Systems and methods for maintaining network stability
US7082485B2 (en) * 2002-07-24 2006-07-25 The Boeing Company Systems and methods for establishing peer-to-peer communications between network devices communicating via a common bus
US7174402B2 (en) * 2003-04-07 2007-02-06 The Boeing Company Systems, network devices and methods for highly configurable peer-to-peer communications between network devices communicating via a common bus
US7480754B2 (en) * 2003-06-27 2009-01-20 Seagate Technology, Llc Assignment of queue execution modes using tag values
US7193093B2 (en) * 2003-06-30 2007-03-20 Shell Oil Company Process for producing alkylene oxide
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US7665069B2 (en) 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
JP2005149082A (ja) * 2003-11-14 2005-06-09 Hitachi Ltd ストレージ制御装置、及びストレージ制御装置の制御方法
US7103803B2 (en) * 2004-01-08 2006-09-05 International Business Machines Corporation Method for verification of command processing in a computer system design having a multiple priority command queue
US7299329B2 (en) 2004-01-29 2007-11-20 Micron Technology, Inc. Dual edge command in DRAM
CN100442709C (zh) * 2005-06-17 2008-12-10 华为技术有限公司 一种网络管理系统中的设备操作方法
DE102006028944B3 (de) * 2006-06-23 2007-09-13 Infineon Technologies Ag Schaltungsanordnung und Verfahren zum Initialisieren eines Zufallsgenerators
JP2008046969A (ja) * 2006-08-18 2008-02-28 Fujitsu Ltd 共有メモリのアクセス監視方法及び装置
US7773621B2 (en) * 2006-09-16 2010-08-10 Mips Technologies, Inc. Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch
US7961745B2 (en) * 2006-09-16 2011-06-14 Mips Technologies, Inc. Bifurcated transaction selector supporting dynamic priorities in multi-port switch
US7990989B2 (en) * 2006-09-16 2011-08-02 Mips Technologies, Inc. Transaction selector employing transaction queue group priorities in multi-port switch
US7760748B2 (en) * 2006-09-16 2010-07-20 Mips Technologies, Inc. Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch
US8868397B2 (en) 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
KR100879463B1 (ko) * 2007-05-11 2009-01-20 삼성전자주식회사 억세스 권한 이양 시 프리차아지 스킵을 방지하는 동작을갖는 멀티패쓰 억세스블 반도체 메모리 장치
US9170844B2 (en) 2009-01-02 2015-10-27 International Business Machines Corporation Prioritization for conflict arbitration in transactional memory management
US8170166B2 (en) * 2009-02-25 2012-05-01 Freescale Semiconductor, Inc. Methods and systems for combining timing signals for transmission over a serial interface
US8959271B2 (en) * 2013-03-15 2015-02-17 Intel Corporation System and method for accessing memory
US9335934B2 (en) * 2014-04-29 2016-05-10 Futurewei Technologies, Inc. Shared memory controller and method of using same
CN111666148A (zh) * 2014-04-30 2020-09-15 华为技术有限公司 计算机,控制设备和数据处理方法
JP6372297B2 (ja) * 2014-10-16 2018-08-15 富士通株式会社 情報処理装置および情報処理装置の制御方法
KR102106541B1 (ko) * 2015-03-18 2020-05-04 삼성전자주식회사 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템
US10353747B2 (en) * 2015-07-13 2019-07-16 Futurewei Technologies, Inc. Shared memory controller and method of using same
CN105337972B (zh) * 2015-10-23 2018-05-01 上海斐讯数据通信技术有限公司 一种网络设备访问控制方法及系统
CN105204928A (zh) * 2015-10-30 2015-12-30 上海斐讯数据通信技术有限公司 一种共享资源访问方法及系统
US10628234B2 (en) * 2015-12-10 2020-04-21 Mitsubishi Electric Corporation Data processing apparatus, data processing method, and computer readable medium
JP6981290B2 (ja) * 2018-02-14 2021-12-15 オムロン株式会社 スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム
US11099778B2 (en) 2018-08-08 2021-08-24 Micron Technology, Inc. Controller command scheduling in a memory system to increase command bus utilization
CN112395011B (zh) * 2020-11-24 2022-11-29 海宁奕斯伟集成电路设计有限公司 命令响应信息的返回方法、返回控制装置和电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265257A (en) * 1990-06-22 1993-11-23 Digital Equipment Corporation Fast arbiter having easy scaling for large numbers of requesters, large numbers of resource types with multiple instances of each type, and selectable queuing disciplines
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5937205A (en) * 1995-12-06 1999-08-10 International Business Machines Corporation Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue
US5961623A (en) * 1996-08-29 1999-10-05 Apple Computer, Inc. Method and system for avoiding starvation and deadlocks in a split-response interconnect of a computer system
US5905876A (en) * 1996-12-16 1999-05-18 Intel Corporation Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252985A (ja) * 2003-02-19 2004-09-09 Canon Inc メモリ要求の動的並べ替え
JP2004295860A (ja) * 2003-03-07 2004-10-21 Fujitsu Ltd ストレージシステム及びそのデイスク負荷バランス制御方法
JP2005011110A (ja) * 2003-06-19 2005-01-13 Hitachi Ltd 情報処理装置、情報処理装置の制御方法、プログラム、及び情報処理システム
JP2006185198A (ja) * 2004-12-28 2006-07-13 Kyocera Mita Corp メモリアクセス制御回路
JP2008276351A (ja) * 2007-04-26 2008-11-13 Hitachi Ltd 半導体装置
WO2008136417A1 (ja) * 2007-04-26 2008-11-13 Elpida Memory, Inc. 半導体装置
KR101101729B1 (ko) * 2007-04-26 2012-01-05 엘피다 메모리 가부시키가이샤 반도체 장치
US8886893B2 (en) 2007-04-26 2014-11-11 Ps4 Luxco S.A.R.L. Semiconductor device
JP2010182092A (ja) * 2009-02-05 2010-08-19 Mitsubishi Electric Corp バス装置
JP2018152112A (ja) * 2012-03-29 2018-09-27 三星電子株式会社Samsung Electronics Co.,Ltd. メモリ装置及びメモリ装置の動作方法
WO2016098202A1 (ja) * 2014-12-17 2016-06-23 株式会社日立製作所 ストレージ装置およびその制御方法
JP2017045452A (ja) * 2015-08-27 2017-03-02 三星電子株式会社Samsung Electronics Co.,Ltd. トランザクション基盤メモリシステム及びメモリモジュール並びにマスターコントローラ及びスレーブコントローラの動作方法

Also Published As

Publication number Publication date
DE19983747T1 (de) 2002-01-03
GB0111920D0 (en) 2001-07-04
US6195724B1 (en) 2001-02-27
CN1205553C (zh) 2005-06-08
KR20010092746A (ko) 2001-10-26
CN1348564A (zh) 2002-05-08
GB2358942A (en) 2001-08-08
GB2358942B (en) 2003-07-09
US6430642B1 (en) 2002-08-06
JP4472186B2 (ja) 2010-06-02
WO2000029956A1 (en) 2000-05-25
KR100667384B1 (ko) 2007-01-10

Similar Documents

Publication Publication Date Title
JP4472186B2 (ja) 外部デバイスへのアクセスを優先順序付けるための方法および装置
JP4695761B2 (ja) コマンド再順序付けシステム
US6526484B1 (en) Methods and apparatus for reordering of the memory requests to achieve higher average utilization of the command and data bus
US6385708B1 (en) Using a timing-look-up-table and page timers to determine the time between two consecutive memory accesses
US6587894B1 (en) Apparatus for detecting data collision on data bus for out-of-order memory accesses with access execution time based in part on characterization data specific to memory
JP2002530743A (ja) ページタグレジスタを使用して、メモリデバイス内の物理ページの状態を追跡すること
US6510474B1 (en) Methods and apparatus for re-reordering command and data packets in order to restore an original order of out-of-order memory requests
KR100724557B1 (ko) 아웃 오브 오더 dram 시퀀서
EP2223217B1 (en) System, apparatus, and method for modifying the order of memory accesses
KR100610730B1 (ko) 메모리 액세스 대기시간을 감소시키기 위한 메모리 액세스스케쥴링 방법 및 장치
US20030188107A1 (en) External bus transaction scheduling system
US5901295A (en) Address and data bus arbiter for pipelined transactions on a split bus
US6532505B1 (en) Universal resource access controller
US6286075B1 (en) Method of speeding up access to a memory page using a number of M page tag registers to track a state of physical pages in a memory device having N memory banks where N is greater than M
JP2004171579A (ja) データ転送方法
US6378049B1 (en) Universal memory controller
US5202973A (en) Method of controlling a shared memory bus in a multiprocessor system for preventing bus collisions and for ensuring a full bus
JP2004500608A (ja) ユニバーサルリソースアクセスコントローラ
US6539440B1 (en) Methods and apparatus for prediction of the time between two consecutive memory accesses
US6360305B1 (en) Method and apparatus for optimizing memory performance with opportunistic pre-charging
US5708783A (en) Data bus arbiter for pipelined transactions on a split bus
JP2002063130A (ja) バス調停システム
JPH1131072A (ja) メモリ先行ロード装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100204

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: 20100216

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: 20100303

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

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4472186

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: 20140312

Year of fee payment: 4

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