JP2008204487A - アウトオブオーダdramシーケンサ - Google Patents

アウトオブオーダdramシーケンサ Download PDF

Info

Publication number
JP2008204487A
JP2008204487A JP2008140086A JP2008140086A JP2008204487A JP 2008204487 A JP2008204487 A JP 2008204487A JP 2008140086 A JP2008140086 A JP 2008140086A JP 2008140086 A JP2008140086 A JP 2008140086A JP 2008204487 A JP2008204487 A JP 2008204487A
Authority
JP
Japan
Prior art keywords
memory access
memory
sequence
request
requests
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008140086A
Other languages
English (en)
Other versions
JP4742116B2 (ja
Inventor
Joseph M Jeddeloh
エム ジェデロー,ジョーゼフ
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of JP2008204487A publication Critical patent/JP2008204487A/ja
Application granted granted Critical
Publication of JP4742116B2 publication Critical patent/JP4742116B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Abstract

【課題】 有効なメモリ帯域幅を拡張させるためのメモリアクセス処理を制御するためのメモリコントローラの構成及び動作方法を提供すること。
【解決手段】 本発明では、メモリアクセスリクエストは、メモリコントローラの入力キューに連続的に受け取られる。リクエストの入力キューへの受信後、シーケンスマトリックスが再構成され、逐次的なリクエスト間のコンフリクトまたは潜在的遅延がコンフリクト検出器により特定される。コンフリクト検出器は、データバスとの間のデータフローを最適化するため、メモリコアアクセスリクエストを再構成する。例えば、バンクビジー状態または他の遅延が逐次的に受け取られたメモリリクエストにおいてコンフリクト検出器により認識されると、メモリコントローラは、可能である場合にはコンフリクトまたは遅延を解消するため、あるいはそうでない場合には、遅延を最小化するため、保留中のメモリリクエストを実行する順序を再構成する。
【選択図】 図1

Description

本発明は、有効なメモリ帯域幅を拡張させるためのメモリアクセス処理を制御するためのメモリコントローラの構成及び動作方法に関する。
大部分のコンピュータまたはデータ処理システムでは、メインとなるアクティブメモリ、すなわちランダムアクセスメモリ(RAM)は、ダイナミックランダムアクセスメモリ(DRAM)である。DRAMの構成は、一般に、複数のバンクの形式に構成された多数のメモリから構成される。各バンクは、各自が一意的なメモリアドレスに関連付けされたセルを有するメモリセルのアレイに対応している。特に、バンク内の各メモリアドレスは、行アドレスと列アドレスにより指定され、各行アドレスはメモリページとして定義される。このため、各メモリページは、当該ページ内の異なる列指定に対応する複数のメモリ位置を含む。
一連のアクセスリクエストを実行するとき、現在リクエストされているページが現在開かれている他のページを有するバンクと同じバンクにおいて検出される場合、このような状態は「ページコンフリクト(page conflict)」として知られ、この場合には、前に開かれていた当該ページがまず閉じられる、すなわち「プリチャージされる(precharged)」必要がある。プリチャージ後、リクエストされたページは開かれ、すなわち「アクティブ化(activated)」され、リード(read)またはライト(write)処理が実行される。現在リクエストされているページが開かれたページを持たないバンクにおいて検出される場合には、「ページミス(page miss)」が発生し、アクティブ化処理の実行が必要となる。現在のメモリアクセスリクエストが前のメモリアクセスリクエストからすでに開かれているページに対するものであるとき、「ページヒット(page hit)」が発生すると言われる。
ページヒットリクエストとは相対的にページコンフリクトやページミスのメモリアクセスに対して実行されねばならない追加的処理のため、これら2つの処理を実行するのに要する時間は、ページヒットリクエストに対するものよりかなり大きなものとなる。マイクロプロセッサの技術進歩の初期段階では、リード及びライト処理のためのDRAMメモリページへのアクセスリクエストは、先入先出(first in first out)原則に基づき受け取り及び実行がなされていた。このような処理はかなり非効率なものとなる傾向があり、多数のページミスとコンフリクトを発生させ、プロセッサ及び/またはメモリコントローラのリソースをメモリページのプリチャージ及びアクティブ化に使用することが必要となる。
最近では、メモリアクセスが優先度に基づくより先進的な処理方法が開発されてきた。このアクセスリクエストの優先度は、リクエストを送信する装置のタイプ、リクエストされるアクセスのタイプ、リクエストによるアクセスが所望されるメモリアドレスなどの様々な要因に基づくものであってもよい。しかしながら、優先度により厳密にメモリアクセスを提供する問題は、低い優先度のリクエストが許容できないくらい長期間にわたって拒絶アクセスとなってしまう可能性があるということである。
さらに、新たな世代のコンピュータが進化するに従い、メモリクロック速度は大きく増大する。メモリクロック速度が増大するに従い、ページミスのメモリ処理の潜在的な発生及び時間的ペナルティ、バンクのビジーコンフリクト及び他のコンフリクトがまたますます深刻になる。特に、アクセスされた各メモリ位置との情報の転送に利用されるデータバスは、プリチャージ、アクティブ化、バンクが利用可能となるための待機などの間はアイドル状態となる。
従って、上記問題点を軽減する解法が必要とされる。特に、受け取ったメモリアクセスリクエストシーケンスの順序がコンフリクトの回避または軽減のため再構成可能である場合、メモリ処理効率は大きく向上するであろう。コンフリクトの回避または軽減を行うことにより、メモリデータバスのアイドルタイムが軽減または解消されるという点で、メモリデータバスはより効率的に利用され、これにより、メモリシステムのメモリ帯域幅を効果的に増大させ、従来可能とされたものより、より多くのメモリアクセストランザクションがより短い時間で発生することを可能にする。
本発明は、上述のようなコンフリクト及び遅延を最小化するため、逐次的に受け取ったDRAMへのアクセスリクエストを再構成する一方、これらのリクエストが本来受け取られたものと同じ順序でリクエストされた情報を要求元ユニットに返すことにより、従来技術において特定された問題を解決しようとするものである。
本発明の課題は、有効なメモリ帯域幅を拡張させるためのメモリアクセス処理を制御するためのメモリコントローラの構成及び動作方法を提供することである。
本発明では、メモリアクセスリクエストは、メモリコントローラの入力キューに連続的に受け取られる。リクエストの入力キューへの受信後、シーケンスマトリックスが再構成され、逐次的なリクエスト間のコンフリクトまたは潜在的遅延がコンフリクト検出器により特定される。コンフリクト検出器は、データバスとの間のデータフローを最適化するため、メモリコアアクセスリクエストを再構成する。例えば、バンクビジー状態または他の遅延が逐次的に受け取られたメモリリクエストにおいてコンフリクト検出器により認識されると、メモリコントローラは、可能である場合にはコンフリクトまたは遅延を解消するため、あるいはそうでない場合には、遅延を最小化するため、保留中のメモリリクエストを実行する順序を再構成する。
ライトリクエストは、以前のリクエストとアドレッシングコンフリクトがない限り、アウトオブオーダ実行することができる。
再順序付けされたシーケンスは実行キューに保持され、各リクエストはもとのシーケンスにおけるそれの位置を示すためのタグが付けられ、これにより、返されたデータは入力メモリアクセスリクエストの順序に一致するようメモリコントローラにおいて適切に再順序付けすることができる。
コマンドセレクタは、実行キューから実行対象の1以上のコマンドを選択する。コマンドセレクタは、一定速度のDRAMシーケンサが複雑なクロックフェージング(clock phasing)処理を行うことなく複数のクロック速度とインタフェースをとることを可能にするインタフェースタイミング特性を含む。
リードリターンキューは、DRAMから取得されるリターンデータを追跡する。各リターンデータに関連付けされたタグに基づき、リードリターンキューは、もとの逐次的順序により読み出されたデータを各自の要求元に返す。具体的には、リードリクエストが実行されると、リターンデータに関連付けされたタグがメモリコントローラにおける最長の待ち時間を有するリードリクエストに対応する場合、リターンデータは当該データを要求したシステムユニットに返される。当該タグが最長の待ち時間を有するリードリクエストに関連付けされていない場合、より長い待ち時間を有するすべてのリードリクエストに対するリターンデータが各自の要求元に返されるまで、リターンデータはバッファに格納される。
あるいは、各リクエストは、受け取ったリクエストシーケンスに基づくバッファ位置に割り当てることができる。DRAMから取得されたリターンデータが入力キューに受け取られた最先のリードリクエストに対応するバッファ位置に配置されるとき、当該データは適切な要求元に返される。そうでない場合、入力キューに受け取られたすべての以前のリードリクエストが実行されるまで、リターンデータはバッファに保持される。このようにして、リードリターンキューは、もとの受信順序によりバッファ位置からデータを返す。
本発明によると、有効なメモリ帯域幅を拡張させるためのメモリアクセス処理を制御するためのメモリコントローラの構成及び動作方法を提供することができる。
説明の簡単化のため、本発明の好適な実施例が、ダイナミックランダムアクセスメモリ(DRAM)装置に関して利用されるものとして以下において説明される。しかしながら、本発明がDRAMに関する用途に限定されるものでないということは理解されるべきである。むしろ、本発明の方法とメモリコントローラは、スタティックRAM(SRAM)などの他のタイプのランダムアクセスメモリや、例えば、ファーストページモードDRAM(FPM DRAM)、拡張データアウトDRAM(EDO DRAM)、バーストEDO DRAM、同期DRAM(SDRAM)、ダブルデータレートDRAM(DDR DRAM)、ランバスDRAM(RDRAM)などを含む様々なDRAMの亜種と共に利用されてもよい。
図1は、入力キュー12、コマンドパーサ14、シーケンシングユニット16、シーケンスマトリックス18、コンフリクト検出器20、コマンドシーケンサ22、実行キュー24、コマンドセレクタ26、入出力バッファ28、リードリターンキュー30及びリターンデータバッファ32を有する本発明によるメモリコントローラ10を示す。
メモリアクセスリクエストがメモリコントローラ10に入力され、先入先出原則に基づき入力キュー12で受け取られる。その後、受け取ったリクエストは、メモリアドレス(MA)データ、チップセレクト(CS)コマンド(アクセス対象のリクエストされたメモリバンクを示す)、行アドレスセレクト(RAS)コマンド、列アドレスセレクト(CAS)コマンド、及びリクエストがリードまたはライト処理であるか示すライトイネーブル(WE)状態などの各リクエスト信号から該当する情報を取得するため、コマンドパーサ14により逐次的に処理される。
その後、取得された情報は、シーケンスマトリックス18で受け取られるクロック信号に従って受信したメモリアクセスリクエストをシーケンスマトリックス18に配置するシーケンシングユニット16に与えられる。ここで、当該処理の開始に応答にして、アクセスリクエストがそれらのシーケンシングユニット16での受信順序に従ってマトリックスにロードされる。
コンフリクト検出器20は、シーケンスマトリックス18における当該情報をモニタし、発生の可能性があるコンフリクトや遅延に対して、マトリックスのリクエストシーケンスがシーケンスマトリックにおける現在の順序により実行されるべきかチェックする。コンフリクト検出器20により検出されたコンフリクトまたは遅延は、シーケンシングユニット16に通知され、その後、特定されたコンフリクトや遅延によりメモリデータバスがアイドル状態となる時間を最小化あるいは解消するため、マトリックスにおけるリクエストの順序を再構成する。コンフリクト検出器20により検出される可能性のあるコンフリクトには、以下に限定するものではないが、例えば、ページコンフリクト、メモリバンクが他のリードまたはライト処理を実行するのにビジーであるバンクビジー状態などが含まれる。コンフリクト検出器により特定される遅延は、必ずしも他のメモリアクセスリクエストの実行とコンフリクトするものではないが、メモリデータバスがアイドル状態の期間中に準備ステップの実行を要求する状態である。このような遅延には、例えば、ページコンフリクト、ページミスなどが含まれる。
一般に、リード及びライト何れのタイプのメモリアクセスリクエストも、シーケンスマトリックス18において再順序付けされてもよい。しかしながら、必要な場合には、再順序付けされたシーケンスが入力キューへのより早くに受け取られたリクエストとのアドレッシングコンフリクトを生成しない程度まで、あるいはマトリックスにおける他の任意のメモリアクセスリクエストに関連して該当するメモリ位置に格納された、または格納予定のデータに干渉しない程度まで、ライトリクエストは再構成されることが好ましい。
追加的なメモリアクセスリクエストがシーケンスマトリックス18に移される一方、シーケンシングユニット16によるコンフリクトの解消または遅延の低減を行うため再構成されると、当該シーケンスの先頭にあるリクエストは、再構成されたリクエストが実行を待機する転送バッファとして用いられる実行キュー24に移される。シーケンシングユニット16で利用されるコンフリクト解消処理に依存して、クロック信号による連続ベース、所定数のアクセスリクエストのバッチ、あるいは所定の蓄積サイズのリクエストの何れかに基づき、実行キュー24に移されるようにしてもよい。好ましくは、実行キュー24のクロック(CLK)は、シーケンスマトリックス18のロード処理を誘導するものと同一のクロック(CLK)である。
コマンドシーケンサ22は、データコントロールコマンドの挿入、及び/またはデータコントロールコマンドとあるメモリアクセスリクエストのリードまたはライトコマンドとの一時的分離が必要であるかもしれないため、シーケンスマトリックス18から実行キュー24に転送される各リクエストに関する様々なコマンドを調整する。例えば、実行キュー24に送信されるリードまたはライトリクエストがプリチャージ及び/またはアクティブ化処理を必要とする場合、当該プリチャージ及び/またはアクティブ化処理を開始するデータコントロールコマンドは、当該プリチャージ及び/またはアクティブ化コマンドと関連するリードまたはライトコマンドとの間に配置された他のアクセスリクエストに関する少なくとも1つの他のリードまたはライトコマンドと共に、実行キューにおける該当するリードまたはライトコマンドの前に配置される。
本発明の1つの効果は、このようにリードまたはライトコマンドとデータコントロールコマンドとを分離することにより実現される。具体的には、上記の例では、他のメモリアクセスリクエストに対するリードまたはライトコマンドは即座に実行可能である間、プリチャージ及び/またはアクティブ化処理は実行可能である。このため、メモリデータバスは、プリチャージ及び/またはアクティブ化処理の実行中、アイドル状態である必要はない。
各リードリクエストが実行キューに転送されると、各リクエストのもとの相対的配置を入力キュー12に受け取られたものとして特定するためのタグが、当該リクエストに対するデータコントロールコマンドに一時的に追加される。あるいは、各リードリクエストは、以降において詳述されるリードバッファ32の各自のバッファ位置に割り当てられるようにしてもよい。
コマンドセレクタ26に与えられるコマンドセレクトクロック(CMD CLK)に従って、実行キュー24の先頭からの1以上のメモリアクセスリクエストが、適切なDRAMバンクにおいて実行のため選択される。例えば、コマンドセレクトクロック信号がシーケンスマトリックス18にリクエストがロードされるクロック速度の4倍である場合、キュー24の各クロック信号に対して4つのアクセスリクエストが実行キュー24から取り除かれる。この場合、コマンドセレクタ26は、キュー24から1度に選択された4つのアクセスリクエストのすべてが等しいインターバルで実行されるように、リクエスト選択プロセスを調整する。新たなリクエストがシーケンスマトリックス18に入力されるのと同じクロック速度での実行のため、コマンドが実行キューから選択される場合、コマンドセレクタ26はメモリコントローラ10から省略されてもよい。
入出力バッファ28は、各アクセスリクエストにおいて指定されるリードまたはライト処理中に使用される遷移バッファである。実行対象の現在のアクセスリクエストがライト処理である場合、選択されたメモリセルへの書き込み対象となるデータは一時的に入出力バッファ28に書き込まれる。同様に、リード処理における選択されたメモリセルから読み出されるデータは一時的に入出力バッファ28に格納される。
リクエストされたメモリアクセスの実行により、各リードリクエストがリードリターンキュー30に配置される。リードリターンキュー30は、リードリクエストの実行により、DRAMから読み出されたリクエストデータを管理し、それらが入力キューに受信された順序に従って、リクエストデータを各自の要求元に返す。DRAMから読み出されたデータは、返されたリクエストデータに関連付けされたタグまたは割り当てられたバッファ位置に依存して、要求元に直接転送されるか、あるいはリターンデータバッファ32に配置される。
図2を参照するに、リードリクエストの実行後、実行されたリードリクエストは、入出力バッファ28に一時的に保持されているリクエストにより取得されるデータと共に、リードリクエストキュー30に返される(ステップ100)。ステップ110において、リードリクエストキュー30により、返されるリードリクエストが最も現在のタグまたは最も現在に割り当てられたバッファ位置に関連付けされていると判断されると、当該リクエストにより取得されるデータは、ステップ120において要求元に返され、ステップ130において現在タグ/バッファ位置情報が更新される。
タグまたはバッファ位置は、それがメモリコントローラ10における最長の待ち時間を有するリードリクエストに割り当てられているか、あるいは関連付けされている場合に「現在」のものとされる。リードリターンキュー30は、例えば、返されたデータがそれの要求元に転送されるごとに、現在タグまたはバッファ位置を表すカウント値をインクリメントすることにより、最も現在のタグまたはバッファ位置を追跡するかもしれない。
返されるリードリクエストが現在のものでないタグまたは割り当てられたバッファ位置を有する場合、この関連付けされたタグまたはバッファ位置が現在のものとなるまで、当該データはリードデータバッファ32に配置される(ステップ140)。ステップ140において返されたデータをバッファ32に配置した後、あるいはステップ130において現在タグまたはバッファ位置を更新した後、リードリターンキュー30は、当該現在タグまたはバッファ位置に対応する返されたデータがリターンデータバッファ32において検出可能であるか判断する。「イエス」である場合、当該プロセスはステップ120に戻り、現在のリターンデータが当該データの要求元に転送され、現在タグまたはバッファ位置がステップ130において再び更新される。現在タグまたはバッファ位置に対応する返されたデータがバッファ32において検出されない場合、当該プロセスは、実行キューの次のリードリクエストの実行により取得されるリターンデータを受け取るため、ステップ100に戻る。図2に示される当該プロセスにより、リードデータは、リクエストが入力キュー12に受け取られた順序で各自の要求元に返される。
タグがリードリクエストの本来の受信順序を示すために使用される場合、タグは各リクエストのデータコントロールコマンドに一時的に挿入されるが、要求元に返されるリードデータに含まれてはいない。好ましくは、リードリターンキュー30及びリターンデータバッファ32の機能は、DRAMまたはそれの複数のものを一体化したもののクロック速度に対応するクロック速度に従って実行される。従って、リードリターンキュー30及びリターンデータバッファ32において受け取られるリターンリードリクエスト及びリターンデータは、現在タグ/バッファ位置の更新及びリターンデータの転送とそれぞれ協調されうる。
図3に示されるフローチャートを参照して、シーケンシングユニット16が検出されたコンフリクトまたは遅延によりメモリアクセスリクエストを再スケジューリングするのに利用するコンフリクト再順序付けプロセスの第1実施例が説明される。ステップ200において、パース対象の直近のメモリアクセスリクエストがシーケンスマトリックス18に配置される。ステップ210において、アクセスされることが所望されるメモリバンクの状態が、新たに届いたメモリアクセスリクエストがシーケンスマトリックス18のそれの現在位置において実行される場合に、コンフリクトや遅延が発生するか判断するためチェックされる。
シーケンシングユニット16がこの新たに届いたリクエストに関するコンフリクトまたは遅延を検出する場合、シーケンシングユニット16は、ステップ240において、それの現在位置の前にあるメモリアクセスリクエストシーケンスの中で、より適切なタイミング位置が検出可能であるか判断する。具体的には、シーケンシングユニット16はまず、解消されていないコンフリクトまたは遅延が新たなアクセスリクエストの前のシーケンスに存在するか、そして存在する場合には、当該新たなアクセスリクエストが当該時間中にコンフリクトなく実行可能であるか判断する。保留されているコンフリクトまたは遅延が存在しない場合、シーケンシングユニット16は、この新たなアクセスリクエストが、以前にスケジューリングされたリクエストにおいて新たなコンフリクトまたは遅延を発生させることなく、マトリックスの任意のポイントにおいて再スケジューリングされてもよいかチェックする。そうでない場合、本プロセスはステップ230に移り、解消されない状態により新たなアクセスリクエストは現在のタイミングシーケンスの終わりに残される。適切なタイミング位置が当該シーケンスにおける前方に検出可能である場合、新たに届いたリクエストは当該位置においてシーケンスに挿入される(ステップ250)。その後、本プロセスはステップ200に戻り、次に入力されるメモリアクセスリクエストに対して繰り返される。
他方、新たに届いたアクセスリクエストに関してコンフリクトや遅延が検出されない場合、ステップ220において、コンフリクト検出器20は次に、新たに届いたリクエストの現在位置の前に解消されていないコンフリクトまたは遅延がタイミングマトリックスに存在するか判断する。解消されていないコンフリクトまたは遅延が検出されると、本プロセスは上述のステップ240に移行する。既存のコンフリクトが検出されない場合、シーケンシングユニット16は、ステップ230においてシーケンスマトリックス18の現在位置に当該リクエストをとどめ、その後ステップ200に戻り、次に入力されるメモリアクセスリクエストに対して本プロセスを繰り返す。
本実施例では、解消されていないコンフリクトや遅延は、シーケンシングユニット16の以降の繰り返しによって、新たなアクセスリクエストの到達により以降において解消されてもよいし、そうでなくともよい。コンフリクトや遅延を軽減する適切なリクエストが届かない場合、メモリアクセスリクエストは指定された順序で処理が継続されるが、解消されていないコンフリクトや軽減されていない遅延により、メモリデータバスラインの利用に対し非効率さがあるであろう。
図4に示されるフローチャートにおいて、シーケンシングユニット16により実行されるコンフリクト再順序付けプロセスの第2実施例が示される。他のメモリアクセスリクエストがシーケンスマトリックス18から実行キュー24に移されると、ステップ300において、シーケンスマトリックスの次のラインのアクセスリクエストが第1位置に移される。ステップ310において、コンフリクト検出器20は、コンフリクトや遅延がシーケンスマトリックスの先頭にあるアクセスリクエスト(すなわち、マトリックスのリクエストの中の最先のもの)に関して存在するか判断する。コンフリクトが検出されない場合、ステップ320において、アクセスリクエストは実行キュー24にわたされ、本プロセスはステップ300に戻る。
他方、コンフリクトまたは遅延がステップ310において検出されると、コンフリクト検出器20は、シーケンスマトリックスの次のアクセスリクエストに注目し、ステップ330において、当該リクエストがコンフリクトなく当該時間位置において実行可能であるか判断する。当該時間位置において当該アクセスリクエストをスケジューリングすることにより、コンフリクトまたは遅延が生じない場合、ステップ320においてリクエストは実行キュー24に送られ、本プロセスはステップ300に戻る。コンフリクトまたは遅延が検出されると、当該時間位置において適切に実行されてもよいリクエストが検出されるまで、本プロセスはステップ330を繰り返す。
本実施例では、シーケンスマトリックスの先頭にあるリクエスト及び以降のリクエストの何れかのメモリアクセスに関して存在するコンフリクトまたは遅延が検出される場合、適切なタイムスロットがこのリクエストに対して検出されるまで、拒絶されたリクエストはシーケンスのそれらの現在位置に残される。本プロセスにより、コンフリクトまたは遅延状態により実行キュー24に送信されるメモリアクセスは存在しない。また、各リクエストには待ち時間に基づく優先度が与えられ、当該リクエストのタイミングによりコンフリクト状態が生じない最先の可能なタイムスロットにおいて実行されるであろう。
図5において、図4を参照して上述された実施例の一変形が示される。ここでは、シーケンスマトリックスの先頭のアクセスリクエストの現在のタイミング位置に関してコンフリクトまたは遅延が検出されると、不適なリクエストは、それの現在位置においてシーケンスに残されるのでなく、シーケンスの後方に送られる。具体的には、ステップ310においてコンフリクトが検出されると、ステップ420が実行され、コンフリクトまたは遅延を有するリクエストはシーケンスの後方に送られる。その後、コンフリクト検出器20は、次のラインのアクセスリクエストに移り、当該リクエストにコンフリクトまたは遅延が検出されるか判断する(ステップ430)。コンフリクトまたは遅延が検出されない場合、図4に示されたプロセスと同様に、当該リクエストは実行キュー24に送られる。コンフリクトまたは遅延が検出されると、本プロセスはステップ420に戻る。
図6を参照するに、本発明の動作により取得される結果を示すタイミングチャートが示される。本例では、リードリクエストRD、RD及びRDがこの順序で入力キューにおいて受け取られる。ページコンフリクト状態がRDに関して検出されており、RDとRDは共に他のメモリバンクにおけるページヒットであると仮定する。RD及びRDより以前にRDが完了するよう実行されることが許可される場合には遅延が生じるため、RDに対するプリチャージ処理の実行中、RD及びRDに対するリードメモリアクセスが実行されるようこれらのリクエストは再構成される。このようなコマンドの再構成により、RDに対するプリチャージ処理の実行が終了するのを待機する間に、メモリデータバスがアイドル状態となる時間を最小化し、これにより、メモリデータバスのより効率的な利用が可能となる。
RD及びRDに対するデータがDRAMから読み出された後、RDに対するアクティブ化処理が実行され、その後RDに対するリードアクセスコマンドが実行される。リードデータ「1111」及び「2222」は、リード処理の実行順序によりリターンデータバッファに転送される。しかしながら、「0000」のデータが適切なメモリセルから取得された後、当該データはRDの要求元に最初に戻される。その後、データ「1111」と「2222」がその順序で各自の要求元に返される。
図7は、本発明のメモリコントローラ10を利用する一例となる処理システム900を示す。処理システム900は、ローカルバス904に接続された1以上のプロセッサ901を有する。メモリコントローラ10とプライマリバスブリッジ903がまたローカルバス904に接続される。処理システム900は、複数のメモリコントローラ10及び/または複数のプライマリバスブリッジ903を有するようにしてもよい。メモリコントローラ10とプライマリバスブリッジ903は、単一の装置906として一体化されてもよい。
メモリコントローラ10はまた、1以上のメモリデータバス907に接続される。各メモリバスは、少なくとも1つのメモリ装置902を有するメモリコンポーネント908を受け入れる。メモリコンポーネント908は、メモリカードまたはメモリモジュールとして構成されてもよい。システム900において利用可能なメモリモジュールの例として、シングルインラインメモリモジュール(SIMM)やデュアルインラインメモリモジュール(DIMM)があげられる。メモリコンポーネント908は、1以上の追加的装置909を有するようにしてもよい。例えば、SIMMまたはDIMMでは、追加的装置909は、SPD(Serial Presence Detect)メモリなどの設定メモリであってもよい。
メモリコントローラ10はまた、キャッシュメモリ905に接続されてもよい。キャッシュメモリ905は、処理システムの唯一のキャッシュメモリであってもよい。あるいは、プロセッサ901などの他の装置がまた、キャッシュメモリ905のキャッシュ階層を構成する複数のキャッシュメモリを有するようにしてもよい。処理システム900がバスマスタであったり、あるいはDMA(Direct Memory Access)をサポートする周辺装置やコントローラを有する場合、メモリコントローラ10は、キャッシュコヒーレンシプロトコルを実現するようにしてもよい。メモリコントローラ10が複数のメモリバス907に接続される場合、キャッシュメモリバス907はパラレルに動作してもよいし、あるいは異なるアドレス範囲が異なるメモリバス907にマッピングされてもよい。
プライマリバスブリッジ903は、少なくとも1つの周辺バス910に接続される。周辺装置や追加的バスブリッジなどの各種装置が、周辺バス910に接続されてもよい。これらの装置は、格納コントローラ911、その他I/O装置914、セカンダリバスブリッジ915、マルチメディアプロセッサ918及びレガシー装置インタフェース920を有するようにしてもよい。プライマリバスブリッジ903はまた、1以上の特殊用途高速ポート922に接続されてもよい。パーソナルコンピュータでは、例えば、特殊用途ポートは、高パフォーマンスビデオカードと処理システム900とを接続するために利用されるAGP(Accelerated Graphics Port)であってもよい。
格納コントローラ911は、格納バス912を介して1以上の記憶装置913と周辺バス910とを接続する。例えば、格納コントローラ911はSCSIコントローラであり、記憶装置913はSCSIディスクであってもよい。I/O装置914は、任意の種類の周辺装置であってもよい。例えば、I/O装置914は、イーサネット(登録商標)カードなどのローカルエリアネットワークインタフェースであってもよい。セカンダリバスブリッジは、他のバスを介して追加的装置と処理システムとのインタフェースをとるのに利用されてもよい。例えば、セカンダリバスブリッジは、USB(Universal Serial Port)装置917と処理システム900とを接続するのに用いられるUSBコントローラであってもよい。マルチメディアプロセッサ918は、サウンドカード、ビデオキャプチャカードまたは他の任意のタイプのマルチメディアインタフェースであってもよく、スピーカー919などの1つの追加的装置に接続されてもよい。レガシー装置インタフェース920は、旧式のキーボードやマウスなどの従来装置と処理システム900とを接続するのに利用される。
図7に示される処理システム900は、本発明が利用可能な単なる一例となる処理システムである。図7はパーソナルコンピュータやワークステーションなどの汎用コンピュータに特に適した処理アーキテクチャを示しているが、様々な用途における利用により適するものとするため、処理システム900に周知の改良が可能であるということは認識されるべきである。例えば、処理を要する多数の電子装置は、メモリコンポーネント908及び/または記憶装置902に接続されるCPU901によるよりシンプルなアーキテクチャを用いて実現されてもよい。これらの電子装置には、以下に限定するものではないが、音声/映像プロセッサ及びレコーダ、ゲーム端末、デジタルテレビ装置、有線/無線電話、ナビゲーション装置(GPS(Global Positioning System)及び/または慣性ナビゲーションに基づくシステムを含む)、及びデジタルカメラ及び/またはレコーダが含まれてもよい。上記改良には、例えば、不要な構成要素の削除、特殊な装置または回路の追加、及び/または複数の装置の統合などが含まれてもよい。
本発明がそれの特定の実施例に関して説明されたが、他の多くの変形及び改良、そして他の利用が当業者には明らかになるであろう。従って、本発明は、ここでの特定の開示によってでなく、添付されたクレームによってのみ限定されることが好ましい。
図1は、本発明によるメモリコントローラのブロック図である。 図2は、本来のリクエストの受信順序により、リードリクエストの再順序付けされた実行により取得されるリクエストデータを各自の要求元に返すプロセスを示すフローチャートである。 図3は、現在のタイミングマトリックスにおけるコンフリクトまたは遅延の検出により、メモリコントローラなのシーケンスロード論理ユニットにより実行されるコンフリクト再順序付けプロセスの第1実施例である。 図4は、現在のタイミングマトリックスにおけるコンフリクトまたは遅延の検出により、メモリコントローラなのシーケンスロード論理ユニットにより実行されるコンフリクト再順序付けプロセスの第2実施例である。 図5は、現在のタイミングマトリックスにおけるコンフリクトまたは遅延の検出により、メモリコントローラなのシーケンスロード論理ユニットにより実行されるコンフリクト再順序付けプロセスの第3実施例である。 図6は、本発明の動作を示すタイミングチャートである。 図7は、本発明のメモリコントローラが利用される処理システムのブロック図である。
符号の説明
10 メモリコントローラ
12 入力キュー
14 コマンドパーサ
16 シーケンシングユニット
18 シーケンスマトリックス
20 コンフリクト検出器
22 コマンドシーケンサ
24 実行キュー
26 コマンドセレクタ
28 入出力バッファ
30 リードリターンキュー
32 リターンデータバッファ
900 処理システム
901 プロセッサ
902 メモリ装置

Claims (54)

  1. 複数のメモリアクセスリクエストを本来の受信順序で少なくとも1つの要求元から受け取る入力キューと、
    前記複数のメモリアクセスリクエストが構成可能であり、逐次的順序で前記複数のメモリアクセスリクエストを格納するシーケンスマトリックスと、
    前記シーケンスマトリックスにおける複数のメモリアクセスリクエストのタイミングシーケンスを構成するシーケンシングユニットと、
    前記シーケンシングユニットにより前記シーケンスマトリックスにおいて構成されたメモリアクセスリクエストのシーケンスにおいてコンフリクトまたは遅延が発生するか検出するコンフリクト検出器であって、前記シーケンスマトリックスの前記メモリアクセスリクエストの1つと、前記シーケンスマトリックスに構成される前記メモリアクセスリクエストのシーケンスの第2のメモリアクセスリクエストとの又は前記シーケンスマトリックスに以前に構成された複数の実行されていないメモリアクセスリクエストの1つとの比較の結果としてコンフリクト又は遅延が、検出されたコンフリクト又は遅延に係るメモリアクセスリクエストの前方への移動によって検出されると、前記シーケンシングユニットが前記シーケンスマトリックス内の前記リクエストの順序を再構成するように、前記シーケンシングユニットに検出されたコンフリクト又は遅延を通知するコンフリクト検出器と、
    各コマンドの実行の間のアイドル時間を回避するような実行順序によりコマンドシーケンサによって構成される複数のコマンドが、各メモリアクセスリクエストがリード若しくはライトコマンドの何れか及びデータコントロールコマンドを有する前記再構成されたメモリアクセスリクエストから前記コマンドシーケンサによって抽出されるよう構成される実行キューと、
    前記実行キューからの前記メモリアクセスリクエストの前記実行順序による実行後、前記メモリアクセスリクエストの本来の受信順序を追跡し、前記メモリアクセスリクエストの本来の受信順序でリクエストデータを前記少なくとも1つの要求元に返すリードリターンキューと、
    メモリから読み出されたリクエストデータを、該データが前記係るアクセスリクエストの要求元に返されるまで、保持するリターンデータバッファと、
    を有するメモリコントローラであって、
    当該コントローラは、複数のメモリクロックスピードを有するメモリとインタフェースをとるよう構成されるメモリコントローラ。
  2. 請求項1記載のメモリコントローラであって、さらに、
    メモリアクセスリクエストを少なくともリードまたはライトコマンド及びデータコントロールコマンドにパース処理するコマンドパーサと、
    前記実行キューの各アクセスリクエストに対して、前記データコントロールコマンドと前記リードまたはライトコマンドを構成するコマンドシーケンサと、
    を有するメモリコントローラ。
  3. 請求項2記載のメモリコントローラであって、さらに、
    実行のため、前記実行キューから一度に少なくとも1つのコマンドを選択するコマンドセレクタを有するメモリコントローラ。
  4. 請求項3記載のメモリコントローラであって、
    固定された時間インターバル中に選択されるコマンド数は、前記コマンドセレクタに与えられるコマンド選択クロック信号に依存するメモリコントローラ。
  5. 請求項1記載のメモリコントローラであって、
    前記コンフリクト検出器は、前記複数の実行されていないメモリアクセスリクエスト若しくは前記シーケンスマトリックスにおける前記メモリアクセスリクエストから生じる潜在的なバンクビジー状態を検出することが可能であるメモリコントローラ。
  6. 請求項1記載のメモリコントローラであって、
    前記コンフリクト検出器は、前記複数の実行されていないメモリアクセスリクエスト若しくは前記シーケンスマトリックスにおける前記メモリアクセスリクエストから生じる潜在的なページコンフリクト状態を検出することが可能であるメモリコントローラ。
  7. 請求項1記載のメモリコントローラであって、
    前記コンフリクト検出器は、前記複数の実行されていないメモリアクセスリクエスト若しくは前記シーケンスマトリックスにおける前記メモリアクセスリクエストから生じる潜在的なページミス状態を検出することが可能であるメモリコントローラ。
  8. 複数の要求元からリードリクエスト及び/またはライトリクエストからなる複数のメモリアクセスリクエスト信号を受け取り、該リクエストが前記要求元から受信された順序に対応するシーケンスで前記複数のメモリアクセスリクエスト信号を受け取るシーケンシングユニットと、
    前記シーケンスにおいて時間的に近接した実行されていないリクエスト間の検出されたメモリアクセスのコンフリクトに基づき、前記複数のメモリアクセスリクエスト信号のシーケンスを再構成し、これにより前記メモリアクセスリクエストの実行が、検出されたコンフリクトに係るメモリアクセスリクエストを前記シーケンスにおいて前方に移動することによって、前記再構成されたシーケンスにおいて実行されることを可能にする再構成ユニットと、
    各コマンドの実行の間のアイドル時間を回避するような実行順序により構成される複数のコマンドを、各メモリアクセスリクエストがリード若しくはライトコマンド及びデータコントロールコマンドからなる前記再構成されたメモリアクセスリクエストから抽出し、前記複数のコマンドを実行する実行ユニットと、
    実行されたリードリクエストを該リクエストの本来の受信順序に再順序付けし、これにより前記実行されたリードリクエストにより取得されたデータが前記再順序付けされたシーケンスにより前記要求元に返されることを可能にする再順序付けユニットと、
    を有するメモリコントローラであって、
    当該コントローラは、複数のメモリクロックスピードを有するメモリとインタフェースをとるよう構成されるメモリコントローラ。
  9. 請求項8記載のメモリコントローラであって、
    前記再構成ユニットは、前記シーケンスにおける時間的に近接した実行されていないリクエスト間の検出されたバンクビジー状態を回避するため、前記メモリアクセスリクエストのシーケンスを再構成するメモリコントローラ。
  10. 請求項8記載のメモリコントローラであって、
    前記再構成ユニットは、前記シーケンスにおける時間的に近接した実行されていないリクエスト間の検出されたバンクビジー状態中にメモリバンクがアクセス可能となるのを待機することにより生じる遅延を最小化するため、前記メモリアクセスリクエストのシーケンスを再構成するメモリコントローラ。
  11. 請求項8記載のメモリコントローラであって、
    前記再構成ユニットは、前記シーケンスにおける時間的に近接した実行されていないリクエスト間の検出されたページコンフリクト状態を回避するため、前記メモリアクセスリクエストのシーケンスを再構成するメモリコントローラ。
  12. 請求項8記載のメモリコントローラであって、
    前記再構成ユニットは、前記シーケンスにおける時間的に近接した実行されていないリクエスト間の検出されたページコンフリクト状態中にメモリバンクがアクセス準備されるのを待機することにより生じる遅延を最小化するため、前記メモリアクセスリクエストのシーケンスを再構成するメモリコントローラ。
  13. 請求項8記載のメモリコントローラであって、
    前記再構成ユニットは、前記シーケンスにおける時間的に近接した実行されていないリクエスト間の検出されたページミス状態中にメモリバンクがアクセス準備されるのを待機することにより生じる遅延を最小化するため、前記メモリアクセスリクエストのシーケンスを再構成するメモリコントローラ。
  14. 複数のメモリアクセスリクエストを到着順に格納する入力回路と、
    検出されたコンフリクトに係るメモリアクセスリクエストを前方に移動させることによって、前記格納されたメモリアクセスリクエストをメモリアクセスリクエストの実行順に再構成するメモリアクセスリクエスト再構成回路であって、前記格納されているメモリアクセスリクエストの順序を、前記格納されているメモリアクセスリクエストの順序において存在するメモリアクセスコンフリクトであって、各メモリアクセスリクエストがリード若しくはライトコマンド及びデータコントロールコマンドからなる前記複数のメモリアクセスリクエストの1つと第2の実行されていない格納されているメモリアクセスリクエストとの比較の結果として検出されるメモリアクセスコンフリクトの検出に基づき、前記実行順に再構成するメモリアクセスリクエスト再構成回路と、
    各コマンドの実行の間のアイドル時間を回避するため、前記再構成されたメモリアクセスリクエストからのコマンドをコマンド実行順に構成するコマンドシーケンサと、
    前記実行順によりメモリアクセスリクエストを出力する送信回路と、
    を有するメモリコントローラであって、
    前記再構成回路は、第1クロックスピードにより動作し、
    前記再構成回路により構成されるコマンドは、複数の異なるメモリクロックスピードの1つに従って実行される、メモリコントローラ。
  15. 請求項14記載のメモリコントローラであって、
    前記再構成回路は、前記実行されていない格納されているメモリアクセスリクエストから生じるバンクビジーコンフリクトの検出に基づき、前記格納されたメモリアクセスリクエストを再構成するメモリコントローラ。
  16. 請求項15記載のメモリコントローラであって、
    前記再構成回路は、前記検出されたバンクビジーコンフリクトを回避するよう前記格納されたメモリアクセスリクエストを再構成するメモリコントローラ。
  17. 請求項15記載のメモリコントローラであって、
    前記再構成回路は、前記メモリアクセスリクエストが該メモリアクセスリクエストの格納順に実行される場合、前記検出されたバンクビジーコンフリクト状態中にメモリバンクがアクセス可能になることを待機することにより生じる遅延を最小化するため、前記格納されたメモリアクセスリクエストを再構成するメモリコントローラ。
  18. 請求項14記載のメモリコントローラであって、
    前記再構成回路は、前記格納されたメモリアクセスリクエストの順序による前記実行されていない格納されているメモリアクセスリクエストから生じるページコンフリクト状態の検出に基づき、前記格納されたメモリアクセスリクエストを再構成するメモリコントローラ。
  19. 請求項18記載のメモリコントローラであって、
    前記再構成回路は、前記検出されたページコンフリクトを回避するよう前記格納されたメモリアクセスリクエストを再構成するメモリコントローラ。
  20. 請求項18記載のメモリコントローラであって、
    前記再構成回路は、前記格納されたメモリアクセスリクエストの順序により検出されたページコンフリクト状態の間に、メモリバンクがアクセス準備されるのを待機することにより生じる遅延を最小化するよう前記格納されたメモリアクセスリクエストを再構成するメモリコントローラ。
  21. 請求項14記載のメモリコントローラであって、
    前記再構成回路は、前記格納されたメモリアクセスリクエストの順序による前記実行されていない格納されているメモリアクセスリクエストから生じるページミス状態の検出に基づき、前記格納されたメモリアクセスリクエストを再構成するメモリコントローラ。
  22. 請求項21記載のメモリコントローラであって、
    前記再構成回路は、前記格納されたメモリアクセスリクエストの順序により検出されたページミス状態の間に、メモリバンクがアクセス準備されるのを待機することにより生じる遅延を最小化するよう前記格納されたメモリアクセスリクエストを再構成するメモリコントローラ。
  23. 請求項14記載のメモリコントローラであって、さらに、
    前記格納されたメモリアクセスリクエストを前記実行順に実行する実行回路と、
    実行後、前記格納されたメモリアクセスリクエストの到着順を追跡する追跡回路と、
    を有するメモリコントローラ。
  24. 請求項23記載のメモリコントローラであって、
    前記追跡回路は、各メモリアクセスリクエストを前記到着順における該リクエストの位置に対応してタグを関連付けするメモリコントローラ。
  25. 請求項23記載のメモリコントローラであって、
    前記追跡回路は、前記メモリアクセスリクエストの実行により各自のメモリ位置から読み出されたデータを構成するバッファを有し、これにより、前記バッファに構成されたデータを前記本来の到着順により前記メモリコントローラから転送することを可能にするメモリコントローラ。
  26. メモリアクセス処理の制御方法であって、
    受信シーケンスにおける複数のメモリアクセスリクエストを受信するステップと、
    前記複数のメモリアクセスリクエストの1つと第2の実行されていないメモリアクセスリクエストとを比較することによって、前記シーケンスにおける時間的に近接した実行されていないリクエスト間のメモリアクセスコンフリクトを検出するステップと、
    検出されたコンフリクトに係るメモリアクセスリクエストをシーケンスにおいて前方に移動させることによって、前記検出結果に基づき前記リクエストシーケンスを再構成されたシーケンスに再構成するステップと、
    前記メモリアクセスリクエストを前記再構成された順序により実行するステップと、
    各メモリアクセスリクエストを少なくともリード若しくはライトコマンド及びデータコントロールコマンドにパース処理するステップと、
    コマンドセレクトクロックスピードによる実行のため前記再構成されたシーケンスから一度に少なくとも1つのコマンドを選択するステップと、
    を有し、
    前記リクエストのシーケンスを再構成するステップはさらに、各コマンドの実行の間のアイドル時間を回避する実行順によりコマンドが実行されるように、前記再構成されたシーケンスの各リクエストに対して前記リード若しくはライトコマンド及び前記データコントロールコマンドを別々に構成し、
    前記メモリアクセスコンフリクトを検出するステップはさらに、実行されていないメモリアクセスリクエストから生じるコンフリクトを検出する方法。
  27. 請求項26記載の制御方法であって、
    前記複数のメモリアクセスリクエストは、指定されたメモリアドレスにデータを書き込むためのライトリクエストと、指定されたメモリアドレスからデータを読み出すためのリードリクエストとを含む方法。
  28. 請求項27記載の制御方法であって、さらに、
    前記リードリクエストの実行により前記指定されたメモリアドレスから取得されたデータを、前記受信シーケンスにおける本来の順序によりメモリコントローラから出力するステップを有する方法。
  29. 請求項27記載の制御方法であって、さらに、
    実行後、前記メモリアクセスリクエストの受信シーケンスを追跡するステップと、
    前記再構成されたシーケンスでの前記リードリクエストの実行により取得されるリクエストデータを前記リードリクエストの受信シーケンスに対応する順序により各自の要求元に転送するステップと、
    を有する方法。
  30. 請求項29記載の制御方法であって、
    前記受信シーケンスを追跡するステップは、前記リクエストのシーケンスの再構成後、前記リードリクエストが本来受信されたシーケンスを示すよう各リードリクエストにタグを関連付ける方法。
  31. 請求項29記載の制御方法であって、
    前記受信シーケンスを追跡するステップは、前記リクエストのシーケンスの再構成後、各リードリクエストの実行により取得されたデータが格納されるバッファ位置を割り当て、
    該割り当てられたバッファ位置は、前記リードリクエストが本来受信されたシーケンスを示す方法。
  32. 請求項26記載の制御方法であって、
    前記検出するステップは、前記受信シーケンスの現在位置において最も最近受信されたメモリアクセスリクエストを実行することにより、コンフリクトが生じるか検出するよう実行される方法。
  33. 請求項32記載の制御方法であって、
    前記検出するステップは、前記受信シーケンスの現在位置において最も最近受信されたメモリアクセスリクエストを実行することにより、バンクビジーコンフリクトが生じるか検出するよう実行される方法。
  34. 請求項33記載の制御方法であって、
    前記再構成するステップは、前記バンクビジーコンフリクトを回避するよう実行される方法。
  35. 請求項33記載の制御方法であって、
    前記再構成するステップは、検出されたバンクビジーコンフリクトの間にメモリバンクがアクセス可能になるのを待機することにより生じる遅延を最小化するよう実行される方法。
  36. 請求項32記載の制御方法であって、
    前記検出するステップは、前記受信シーケンスの現在位置において最も最近受信されたメモリアクセスリクエストを実行することにより、ページコンフリクトが生じるか検出するよう実行される方法。
  37. 請求項36記載の制御方法であって、
    前記再構成するステップは、前記ページコンフリクトを回避するよう実行される方法。
  38. 請求項36記載の制御方法であって、
    前記再構成するステップは、検出されたページコンフリクトの間にメモリバンクがアクセス準備されるのを待機することにより生じる遅延を最小化するよう実行される方法。
  39. 請求項26記載の制御方法であって、
    前記検出するステップは、前記受信シーケンスの現在位置において最も最近受信されたメモリアクセスリクエストを実行することにより、遅延が生じるか検出するよう実行される方法。
  40. 請求項39記載の制御方法であって、
    前記検出するステップは、前記受信シーケンスの現在位置において最も最近受信されたメモリアクセスリクエストを実行することにより、ページミスが生じるか検出するよう実行される方法。
  41. 請求項40記載の制御方法であって、
    前記再構成するステップは、検出されたページミスの間にメモリバンクがアクセス準備されるのを待機することにより生じる遅延を最小化するよう実行される方法。
  42. 請求項26記載の制御方法であって、
    前記検出するステップは、前記受信シーケンスの現在位置において最先に受信されたメモリアクセスリクエストを実行することにより、コンフリクトが生じるか検出するよう実行される方法。
  43. 請求項42記載の制御方法であって、
    前記検出するステップは、前記受信シーケンスの現在位置において最先に受信されたメモリアクセスリクエストを実行することにより、バンクビジーコンフリクトが生じるか検出するよう実行される方法。
  44. 請求項43記載の制御方法であって、
    前記再構成するステップは、前記バンクビジーコンフリクトを回避するよう実行される方法。
  45. 請求項43記載の制御方法であって、
    前記再構成するステップは、検出されたバンクビジーコンフリクトの間にメモリバンクがアクセス準備されるのを待機することにより生じる遅延を最小化するよう実行される方法。
  46. 請求項42記載の制御方法であって、
    前記検出するステップは、前記受信シーケンスの現在位置において最先に受信されたメモリアクセスリクエストを実行することにより、ページコンフリクトが生じるか検出するよう実行される方法。
  47. 請求項46記載の制御方法であって、
    前記再構成するステップは、前記ページコンフリクトを回避するよう実行される方法。
  48. 請求項46記載の制御方法であって、
    前記再構成するステップは、検出されたページコンフリクトの間にメモリバンクがアクセス準備されるのを待機することにより生じる遅延を最小化するよう実行される方法。
  49. 請求項42記載の制御方法であって、
    前記受信シーケンスの最先に受信されたメモリアクセスリクエストに関してコンフリクトが検出された場合、前記再構成するステップは、前記最先に受信されたメモリアクセスリクエストを前記シーケンスにおける最も最近に受信されたメモリアクセスリクエストに続く位置に一般に対応する前記シーケンスの終端に前記最先に受信されたメモリアクセスリクエストを移動する方法。
  50. 請求項26記載の制御方法であって、
    前記検出するステップは、前記受信シーケンスの現在位置において最先に受信されたメモリアクセスリクエストを実行することにより、遅延が生じるか検出するよう実行される方法。
  51. 請求項50記載の制御方法であって、
    前記検出するステップは、前記受信シーケンスの現在位置において最先に受信されたメモリアクセスリクエストを実行することにより、ページミスが生じるか検出するよう実行される方法。
  52. 請求項51記載の制御方法であって、
    前記再構成するステップは、検出されたページミスの間にメモリバンクがアクセス準備されるのを待機することにより生じる遅延を最小化するよう実行される方法。
  53. 請求項50記載の制御方法であって、
    前記受信シーケンスの最先に受信されたメモリアクセスリクエストに関してコンフリクトが検出された場合、前記再構成するステップは、前記最先に受信されたメモリアクセスリクエストを前記シーケンスにおける最も最近に受信されたメモリアクセスリクエストに続く位置に一般に対応する前記シーケンスの終端に前記最先に受信されたメモリアクセスリクエストを移動する方法。
  54. プロセッサと、
    前記プロセッサとデータをやりとりする少なくとも1つの記憶装置と、
    前記プロセッサから前記少なくとも1つの記憶装置へのメモリアクセスリクエストを管理するメモリコントローラと、
    を有するプロセッサシステムであって、
    前記メモリコントローラは、
    複数の要求元からリードリクエスト及び/またはライトリクエスト及びデータコントロールコマンドからなる複数のメモリアクセスリクエスト信号を受け取り、該リクエストが前記要求元から受信された順序に対応するシーケンスで前記複数のメモリアクセスリクエスト信号を受け取るシーケンシングユニットと、
    メモリアクセスリクエスト信号と実行されていないメモリアクセスリクエスト信号とを再構成ユニットが比較することによって前記シーケンスにおいて時間的に近接した実行されていないリクエスト間において検出されたメモリアクセスのコンフリクトに基づき、検出されるコンフリクトを軽減するため前記シーケンスにおいてメモリアクセスリクエスト信号を前方に移動することによって、前記複数のメモリアクセスリクエスト信号のシーケンスを再構成し、これにより前記メモリアクセスリクエストの実行が前記再構成されたシーケンスにより実行されることを可能にする再構成ユニットと、
    前記再構成されたシーケンスにより前記メモリアクセスリクエストを実行し、各メモリアクセスリクエストからのコマンドを、各コマンドの実行の間のアイドル時間を回避するよう構成する実行ユニットと、
    実行されたリードリクエストを該リクエストの本来の受信順序に再順序付けし、これにより前記実行されたリードリクエストにより取得されたデータが前記再順序付けされたシーケンスにより前記要求元に返されることを可能にする再順序付けユニットと、
    を有し、
    前記コントローラは、複数のメモリクロックスピードの1つを有するメモリとインタフェースをとるよう構成されるシステム。
JP2008140086A 2002-05-14 2008-05-28 アウトオブオーダdramシーケンサ Expired - Fee Related JP4742116B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/143,896 US7149857B2 (en) 2002-05-14 2002-05-14 Out of order DRAM sequencer
US10/143,896 2002-05-14

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004505842A Division JP2005525652A (ja) 2002-05-14 2003-05-14 アウトオブオーダdramシーケンサ

Publications (2)

Publication Number Publication Date
JP2008204487A true JP2008204487A (ja) 2008-09-04
JP4742116B2 JP4742116B2 (ja) 2011-08-10

Family

ID=29418478

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004505842A Withdrawn JP2005525652A (ja) 2002-05-14 2003-05-14 アウトオブオーダdramシーケンサ
JP2008140086A Expired - Fee Related JP4742116B2 (ja) 2002-05-14 2008-05-28 アウトオブオーダdramシーケンサ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004505842A Withdrawn JP2005525652A (ja) 2002-05-14 2003-05-14 アウトオブオーダdramシーケンサ

Country Status (9)

Country Link
US (4) US7149857B2 (ja)
EP (1) EP1540485B1 (ja)
JP (2) JP2005525652A (ja)
KR (2) KR20050005481A (ja)
CN (1) CN100527107C (ja)
AT (1) ATE456094T1 (ja)
AU (1) AU2003232136A1 (ja)
DE (1) DE60331081D1 (ja)
WO (1) WO2003098392A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013033350A (ja) * 2011-08-01 2013-02-14 Fujitsu Semiconductor Ltd プロセッサ、及びプロセッサの制御方法

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694490B2 (en) * 2002-07-10 2004-02-17 Hewlett-Packard Development Company, L.P. DIMM and method for producing a DIMM
ATE504446T1 (de) 2002-12-02 2011-04-15 Silverbrook Res Pty Ltd Totdüsenausgleich
US7418706B1 (en) * 2003-05-08 2008-08-26 Teradota Us, Inc. Rescheduling table scan transactions
US7240141B2 (en) * 2004-04-09 2007-07-03 Broadcom Corporation Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor
US20060026371A1 (en) * 2004-07-30 2006-02-02 Chrysos George Z Method and apparatus for implementing memory order models with order vectors
US7451282B2 (en) * 2005-03-09 2008-11-11 Dolphin Interconnect Solutions North America Inc. System and method for storing a sequential data stream
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US8452929B2 (en) * 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US8028186B2 (en) * 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
US8402201B2 (en) 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US8265169B2 (en) * 2006-12-29 2012-09-11 Intel Corporation Video block memory read request translation and tagging
US8028257B2 (en) * 2007-03-01 2011-09-27 International Business Machines Corporation Structure for data bus bandwidth scheduling in an FBDIMM memory system operating in variable latency mode
US11010076B2 (en) 2007-03-29 2021-05-18 Violin Systems Llc Memory system with multiple striping of raid groups and method for performing the same
US9632870B2 (en) 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
US8015375B1 (en) 2007-03-30 2011-09-06 Emc Corporation Methods, systems, and computer program products for parallel processing and saving tracking information for multiple write requests in a data replication environment including multiple storage devices
US7996599B2 (en) * 2007-04-25 2011-08-09 Apple Inc. Command resequencing in memory operations
US7925796B1 (en) 2007-05-03 2011-04-12 Emc Corporation Methods, systems, and computer program products for performing an input/output (I/O) operation that includes a virtual drain
US8145976B1 (en) 2007-05-14 2012-03-27 Marvell International Ltd. Error correcting
US8001338B2 (en) * 2007-08-21 2011-08-16 Microsoft Corporation Multi-level DRAM controller to manage access to DRAM
US7870351B2 (en) * 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8156415B1 (en) * 2007-12-26 2012-04-10 Marvell International Ltd. Method and system for command queuing in disk drives
US8180975B2 (en) * 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
CN101520749B (zh) * 2008-02-29 2012-08-29 瑞昱半导体股份有限公司 管理存储器的方法
US8370717B1 (en) 2008-04-08 2013-02-05 Marvell International Ltd. Method and apparatus for flexible buffers in an XOR engine
CN102037514A (zh) * 2008-05-21 2011-04-27 Nxp股份有限公司 包括重排网络的数据处理系统
CN101727398B (zh) * 2008-10-31 2012-07-11 西安奇维测控科技有限公司 经信息序列化实现闪存控制器管理数据存储与还原的方法
US8601205B1 (en) * 2008-12-31 2013-12-03 Synopsys, Inc. Dynamic random access memory controller
JP2010182092A (ja) * 2009-02-05 2010-08-19 Mitsubishi Electric Corp バス装置
KR101581679B1 (ko) * 2009-03-18 2015-12-31 삼성전자주식회사 저장 장치 및 저장 장치의 버퍼 메모리 관리 방법
US8199759B2 (en) * 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
WO2010144587A2 (en) 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection
WO2011019494A1 (en) 2009-08-11 2011-02-17 Marvell World Trade Ltd. Controller for reading data from non-volatile memory
US8644140B2 (en) * 2009-09-09 2014-02-04 Mellanox Technologies Ltd. Data switch with shared port buffers
CN102253917B (zh) * 2010-05-19 2014-03-19 联芯科技有限公司 一种spi控制器及数据发送方法
KR101121902B1 (ko) * 2010-06-22 2012-03-20 성균관대학교산학협력단 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법
US9021192B1 (en) * 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US8699491B2 (en) * 2011-07-25 2014-04-15 Mellanox Technologies Ltd. Network element with shared buffers
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
CN102567246B (zh) * 2011-12-29 2014-08-13 中国人民解放军国防科学技术大学 一种支持操作乱序执行的与非型快闪存储控制器
KR101721273B1 (ko) * 2012-01-16 2017-03-29 한국전자통신연구원 Sdio 인터페이스를 사용한 비순차적 데이터 전송 장치 및 방법
US20130185491A1 (en) * 2012-01-17 2013-07-18 Skymedi Corporation Memory controller and a method thereof
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9348775B2 (en) * 2012-03-16 2016-05-24 Analog Devices, Inc. Out-of-order execution of bus transactions
US8775762B2 (en) * 2012-05-07 2014-07-08 Advanced Micro Devices, Inc. Method and apparatus for batching memory requests
KR20140028618A (ko) * 2012-08-29 2014-03-10 삼성전자주식회사 쓰기 페일을 줄이는 메모리 장치, 이를 포함하는 메모리 시스템 및 그 쓰기 방법
US9047092B2 (en) * 2012-12-21 2015-06-02 Arm Limited Resource management within a load store unit
US9582440B2 (en) 2013-02-10 2017-02-28 Mellanox Technologies Ltd. Credit based low-latency arbitration with data transfer
US8989011B2 (en) 2013-03-14 2015-03-24 Mellanox Technologies Ltd. Communication over multiple virtual lanes using a shared buffer
EP2992437A4 (en) * 2013-04-30 2017-01-11 Hewlett-Packard Enterprise Development LP Coalescing memory access requests
KR102120823B1 (ko) 2013-08-14 2020-06-09 삼성전자주식회사 비휘발성 메모리 장치의 독출 시퀀스 제어 방법 및 이를 수행하는 메모리 시스템
US9641465B1 (en) 2013-08-22 2017-05-02 Mellanox Technologies, Ltd Packet switch with reduced latency
US9548960B2 (en) 2013-10-06 2017-01-17 Mellanox Technologies Ltd. Simplified packet routing
US20150199134A1 (en) * 2014-01-10 2015-07-16 Qualcomm Incorporated System and method for resolving dram page conflicts based on memory access patterns
US9325641B2 (en) 2014-03-13 2016-04-26 Mellanox Technologies Ltd. Buffering schemes for communication over long haul links
US9875185B2 (en) 2014-07-09 2018-01-23 Intel Corporation Memory sequencing with coherent and non-coherent sub-systems
US9584429B2 (en) 2014-07-21 2017-02-28 Mellanox Technologies Ltd. Credit based flow control for long-haul links
US9569119B2 (en) * 2014-09-04 2017-02-14 National Instruments Corporation Self-addressing memory
GB2550829B (en) 2014-10-14 2021-09-22 Advanced Risc Mach Ltd Transaction response modification within interconnect circuitry
KR20160049200A (ko) * 2014-10-27 2016-05-09 삼성전자주식회사 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
CN104375963B (zh) * 2014-11-28 2019-03-15 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法
US9740646B2 (en) * 2014-12-20 2017-08-22 Intel Corporation Early identification in transactional buffered memory
WO2016135618A1 (en) * 2015-02-26 2016-09-01 Strato Scale Ltd. Ordering schemes for network and storage i/o requests for minimizing workload idle time and inter-workload interference
GB2539435B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
JP2017027479A (ja) * 2015-07-24 2017-02-02 富士通株式会社 データ読出し方法及び情報処理システム
CN111475438B (zh) * 2015-08-12 2021-12-10 北京忆恒创源科技股份有限公司 提供服务质量的io请求处理方法及其装置
JP2017204170A (ja) * 2016-05-12 2017-11-16 キヤノン株式会社 画像処理装置及び画像処理方法
GB2551351B (en) * 2016-06-14 2019-05-08 Imagination Tech Ltd Executing memory requests out of order
US10353819B2 (en) * 2016-06-24 2019-07-16 Qualcomm Incorporated Next line prefetchers employing initial high prefetch prediction confidence states for throttling next line prefetches in a processor-based system
US11029881B2 (en) 2016-06-29 2021-06-08 Sony Corporation Memory controller, memory system, and information processing system
KR20180069960A (ko) * 2016-12-15 2018-06-26 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
KR20180090039A (ko) * 2017-02-02 2018-08-10 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2018205859A (ja) * 2017-05-31 2018-12-27 キヤノン株式会社 メモリコントローラとその制御方法
CN107770620B (zh) * 2017-09-21 2020-10-30 广州视源电子科技股份有限公司 请求信息响应方法、系统及可读存储介质
US10419265B2 (en) 2017-11-29 2019-09-17 Bank Of America Corporation Request processing system using a combining engine
US10425456B2 (en) 2017-11-29 2019-09-24 Bank Of America Corporation Request processing system using a splitting engine
CN108335719A (zh) * 2018-02-24 2018-07-27 上海兆芯集成电路有限公司 性能评估装置及性能评估方法
US11874782B1 (en) * 2018-07-20 2024-01-16 Robert Gezelter Fast mass storage access for digital computers
CN109683963A (zh) * 2018-12-10 2019-04-26 深圳忆联信息系统有限公司 基于多命令输入的重排序输出方法、装置和计算机设备
TWI701554B (zh) * 2018-12-13 2020-08-11 英屬維京群島商鯨鏈先進股份有限公司 適用於雜湊演算法的電路系統
US10951549B2 (en) 2019-03-07 2021-03-16 Mellanox Technologies Tlv Ltd. Reusing switch ports for external buffer network
CN110083387B (zh) 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 使用轮询机制的处理系统及其访存方法
CN110058931B (zh) 2019-04-19 2022-03-22 上海兆芯集成电路有限公司 用以任务调度的处理系统及其加速方法
CN110083388B (zh) * 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 用于调度的处理系统及其访存方法
CN110032453B (zh) 2019-04-19 2022-05-03 上海兆芯集成电路有限公司 用以任务调度与分配的处理系统及其加速方法
CN110046053B (zh) 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 用以分配任务的处理系统及其访存方法
US11093404B2 (en) * 2019-10-14 2021-08-17 EMC IP Holding Company LLC Efficient pre-fetching on a storage system
GB2588618B (en) * 2019-10-29 2022-04-20 Advanced Risc Mach Ltd Methods and apparatus for issuing memory access commands
US11481152B2 (en) * 2019-12-30 2022-10-25 Micron Technology, Inc. Execution of commands addressed to a logical block
CN113377277A (zh) * 2020-03-09 2021-09-10 伊姆西Ip控股有限责任公司 管理存储器的方法、设备和计算机程序产品
US11727421B1 (en) 2020-09-21 2023-08-15 Cboe Exchange, Inc System and method for implementing a system execution delay in response to liquidity removal for resting orders
US11558316B2 (en) 2021-02-15 2023-01-17 Mellanox Technologies, Ltd. Zero-copy buffering of traffic of long-haul links
US20230104485A1 (en) * 2021-02-18 2023-04-06 Micron Technology, Inc. Improved implicit ordered command handling
CN114036096B (zh) * 2021-11-04 2024-05-03 珠海一微半导体股份有限公司 一种基于总线接口的读控制器
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03263242A (ja) * 1990-03-14 1991-11-22 Nec Corp データ処理装置
JPH06161885A (ja) * 1992-11-26 1994-06-10 Nec Corp メモリアクセス制御装置
US5630096A (en) * 1995-05-10 1997-05-13 Microunity Systems Engineering, Inc. Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order
JPH10228417A (ja) * 1996-11-15 1998-08-25 Hyundai Electron America Inc データ処理システムにおけるメモリリクエスト再順序付け法
WO2000029959A1 (en) * 1998-11-16 2000-05-25 Infineon Technologies Ag Memory controller which increases bus utilization by reordering memory requests
JP2001154913A (ja) * 1999-11-30 2001-06-08 Hitachi Ltd 主記憶制御装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3735354A (en) 1972-04-07 1973-05-22 Sperry Rand Corp Multiplexed memory request interface
US5537572A (en) 1992-03-31 1996-07-16 Vlsi Technology, Inc. Cache controller and method for dumping contents of a cache directory and cache data random access memory (RAM)
US5461718A (en) 1992-04-24 1995-10-24 Digital Equipment Corporation System for sequential read of memory stream buffer detecting page mode cycles availability fetching data into a selected FIFO, and sending data without aceessing memory
US5664153A (en) 1993-04-21 1997-09-02 Intel Corporation Page open/close scheme based on high order address bit and likelihood of page access
US5388247A (en) 1993-05-14 1995-02-07 Digital Equipment Corporation History buffer control to reduce unnecessary allocations in a memory stream buffer
US5630099A (en) 1993-12-10 1997-05-13 Advanced Micro Devices Non-volatile memory array controller capable of controlling memory banks having variable bit widths
US5638374A (en) * 1995-03-15 1997-06-10 Hughes Electronics Enhanced transaction reservation
US5701434A (en) 1995-03-16 1997-12-23 Hitachi, Ltd. Interleave memory controller with a common access queue
US6204864B1 (en) 1995-06-07 2001-03-20 Seiko Epson Corporation Apparatus and method having improved memory controller request handler
US5692165A (en) 1995-09-12 1997-11-25 Micron Electronics Inc. Memory controller with low skew control signal
US5872822A (en) 1995-10-26 1999-02-16 Mcdata Corporation Method and apparatus for memory sequencing
US6061759A (en) 1996-02-09 2000-05-09 Apex Semiconductor, Inc. Hidden precharge pseudo cache DRAM
US5907863A (en) 1996-08-16 1999-05-25 Unisys Corporation Memory control unit using preloaded values to generate optimal timing of memory control sequences between different memory segments
JPH10191236A (ja) 1996-12-25 1998-07-21 Nec Corp 画像処理装置及び画像データメモリ配置方法
US5848025A (en) 1997-06-30 1998-12-08 Motorola, Inc. Method and apparatus for controlling a memory device in a page mode
US5983325A (en) 1997-12-09 1999-11-09 Advanced Micro Devices, Inc. Dataless touch to open a memory page
US6052134A (en) 1997-12-22 2000-04-18 Compaq Computer Corp. Memory controller and method for dynamic page management
US6052756A (en) 1998-01-23 2000-04-18 Oki Electric Industry Co., Ltd. Memory page management
US6295592B1 (en) 1998-07-31 2001-09-25 Micron Technology, Inc. Method of processing memory requests in a pipelined memory controller
US6434684B1 (en) 1998-09-03 2002-08-13 Micron Technology, Inc. Method and apparatus for coupling signals across different clock domains, and memory device and computer system using same
US6108795A (en) 1998-10-30 2000-08-22 Micron Technology, Inc. Method for aligning clock and data signals received from a RAM
US6212611B1 (en) * 1998-11-03 2001-04-03 Intel Corporation Method and apparatus for providing a pipelined memory controller
US6510474B1 (en) * 1998-11-16 2003-01-21 Infineon Technologies Ag Methods and apparatus for re-reordering command and data packets in order to restore an original order of out-of-order memory requests
US6212598B1 (en) 1998-11-30 2001-04-03 Micron Technology, Inc. Controlling a paging policy based on a requestor characteristic
US6295586B1 (en) 1998-12-04 2001-09-25 Advanced Micro Devices, Inc. Queue based memory controller
US6181638B1 (en) 1998-12-07 2001-01-30 Micron Technology, Inc. Method for receiving data from a synchronous random access memory
US6389529B1 (en) 1999-06-25 2002-05-14 International Business Machines Corporation Method for alternate preferred time delivery of load data
JP2001022529A (ja) * 1999-06-30 2001-01-26 Internatl Business Mach Corp <Ibm> ディスクドライブ装置及びその制御方法
US6330647B1 (en) 1999-08-31 2001-12-11 Micron Technology, Inc. Memory bandwidth allocation based on access count priority scheme
US6275913B1 (en) 1999-10-15 2001-08-14 Micron Technology, Inc. Method for preserving memory request ordering across multiple memory controllers
US6735677B1 (en) 2001-04-30 2004-05-11 Lsi Logic Corporation Parameterizable queued memory access system
US7242690B2 (en) 2002-03-05 2007-07-10 Hewlett-Packard Development Company, L.P. System for performing input processing on a data packet

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03263242A (ja) * 1990-03-14 1991-11-22 Nec Corp データ処理装置
JPH06161885A (ja) * 1992-11-26 1994-06-10 Nec Corp メモリアクセス制御装置
US5630096A (en) * 1995-05-10 1997-05-13 Microunity Systems Engineering, Inc. Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order
JPH10228417A (ja) * 1996-11-15 1998-08-25 Hyundai Electron America Inc データ処理システムにおけるメモリリクエスト再順序付け法
WO2000029959A1 (en) * 1998-11-16 2000-05-25 Infineon Technologies Ag Memory controller which increases bus utilization by reordering memory requests
JP2003535380A (ja) * 1998-11-16 2003-11-25 インフィネオン・テクノロジーズ・アーゲー メモリ要求の再順序付けによりバス稼働率を向上させるメモリコントローラ
JP2001154913A (ja) * 1999-11-30 2001-06-08 Hitachi Ltd 主記憶制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013033350A (ja) * 2011-08-01 2013-02-14 Fujitsu Semiconductor Ltd プロセッサ、及びプロセッサの制御方法

Also Published As

Publication number Publication date
KR100724557B1 (ko) 2007-06-04
EP1540485B1 (en) 2010-01-20
US7620789B2 (en) 2009-11-17
KR20050005481A (ko) 2005-01-13
WO2003098392A2 (en) 2003-11-27
US9904489B2 (en) 2018-02-27
US20070101075A1 (en) 2007-05-03
WO2003098392A3 (en) 2005-04-21
CN1669011A (zh) 2005-09-14
CN100527107C (zh) 2009-08-12
US20100100670A1 (en) 2010-04-22
ATE456094T1 (de) 2010-02-15
EP1540485A2 (en) 2005-06-15
AU2003232136A1 (en) 2003-12-02
KR20060108357A (ko) 2006-10-17
JP4742116B2 (ja) 2011-08-10
US20140223116A1 (en) 2014-08-07
US7149857B2 (en) 2006-12-12
JP2005525652A (ja) 2005-08-25
AU2003232136A8 (en) 2003-12-02
DE60331081D1 (de) 2010-03-11
US8639902B2 (en) 2014-01-28
US20030217239A1 (en) 2003-11-20

Similar Documents

Publication Publication Date Title
JP4742116B2 (ja) アウトオブオーダdramシーケンサ
EP2223217B1 (en) System, apparatus, and method for modifying the order of memory accesses
EP3729281B1 (en) Scheduling memory requests with non-uniform latencies
US6026464A (en) Memory control system and method utilizing distributed memory controllers for multibank memory
JP2000501536A (ja) 種々のメモリセグメント間のメモリコントロールシーケンスのタイミングを最適にするメモリコントローラユニット
US11474942B2 (en) Supporting responses for memory types with non-uniform latencies on same channel
US6160562A (en) System and method for aligning an initial cache line of data read from local memory by an input/output device
CN111684427A (zh) 高速缓存控制感知的存储器控制器
US5684978A (en) Synchronous DRAM controller with memory access commands timed for optimized use of data bus
US6549991B1 (en) Pipelined SDRAM memory controller to optimize bus utilization
JP3384770B2 (ja) コマンド・スタッキングを有する高帯域幅で狭い入出力のメモリ装置
JPH1131072A (ja) メモリ先行ロード装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110412

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

R154 Certificate of patent or utility model (reissue)

Free format text: JAPANESE INTERMEDIATE CODE: R154

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees