JP2002532779A - キューに基づくメモリコントローラ - Google Patents

キューに基づくメモリコントローラ

Info

Publication number
JP2002532779A
JP2002532779A JP2000587266A JP2000587266A JP2002532779A JP 2002532779 A JP2002532779 A JP 2002532779A JP 2000587266 A JP2000587266 A JP 2000587266A JP 2000587266 A JP2000587266 A JP 2000587266A JP 2002532779 A JP2002532779 A JP 2002532779A
Authority
JP
Japan
Prior art keywords
queue
memory
request
basic
read
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.)
Withdrawn
Application number
JP2000587266A
Other languages
English (en)
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2002532779A publication Critical patent/JP2002532779A/ja
Withdrawn 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/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)
  • Dram (AREA)

Abstract

(57)【要約】 コンピュータメモリ(70)のためのメモリコントローラ(230)はメモリ要求を個々の基本メモリ動作にデコードし次いでそれらを別個の動作キュー(340、350、360)に入れる。動作キュー(340、350、360)は独立してそれらのキューに入れられた基本メモリ動作をメモリ(70)に対して出すことによりそのメモリ要求を開始する。動作キュー(340、350、360)はキューに入っている基本メモリ動作と既にメモリ(70)に送信された基本メモリ動作との間のタイミングおよび順序付け従属性を監視し、固守する。一旦基本メモリ動作がメモリに送信されるとそれは対応の動作キュー(340、350、360)から外される。制御キュー(365)はメモリ(70)に送信された基本メモリ動作の進行状況を監視し、開始されたメモリ要求を完了し、タイミングおよび順序付け従属性データを動作キュー(340、350、360)に与える。

Description

【発明の詳細な説明】
【0001】
【技術分野】
この発明は、コンピュータシステムに関し、より特定的にはコンピュータシス
テム内で用いられるメモリ制御メカニズムおよび技術に関する。この発明はまた
、コンピュータシステムに関するメモリ制御メカニズムの性能向上および最適化
に関する。
【0002】
【背景技術】
コンピュータシステムの全体的な処理速度を高めるために、種々の技術が開発
されている。サブミクロン処理能力といった集積回路処理技術の改良により、集
積回路そのものの大幅な高速化が可能になっているが、これ以外の、コンピュー
タシステムのアーキテクチャおよびバス転送メカニズムの進歩も、性能の改良に
つながっている。こうした進歩の例には、キャッシュメモリサブシステムの組込
みおよびコンピュータシステム内での符号先取りメカニズムが含まれる。
【0003】 実際、典型的なコンピュータシステムにおけるメモリアクセス(読出または書
込)は、離散的動作からなる。ダイナミックランダムアクセスメモリ(DRAM
)(代わりとしては同期DRAM(SDRAM)またはSynchDRAM)へ
のメモリアクセスの一例を以下で説明する。CPUは、何らかのデータをメモリ
に書込むまたはメモリから読出す必要があると判断する。なお、DRAMに基づ
くメモリは、チップ選択(CS)、バンクおよび行で組織される。CS信号は、
メモリにおけるアクセスのために特定のメモリチップ群を活性化する唯一の信号
である。バンクおよび行は、チップそのものの物理的設計/組織のことである。
どんなアクセスでも、特定のCS、バンクおよび行(この組合せはページとして
も知られている)を選択することにより行なわれなければならない。さらに、D
RAM型のメモリチップは、現在アクセスされているデータを保持する行バッフ
ァ(バンク1つにつき1つ)を設ける。この例の説明を続けると、CPUは、要
求をアドレスとともにメモリ制御論理にディスパッチし、所望のデータを取出す
。メモリ制御論理は、以下で述べるように、このアドレスをCS、バンクおよび
行からなる物理的記憶場所に変換してメモリアクセスを開始する。
【0004】 メモリの特定の行にアクセスするには、もしこの行がまだ活性でなければ(以
下参照)、その行を含むバンクをプリチャージしなければならない。実際は、プ
リチャージにより、全ビット線(各バンクの行を行バッファに接続するワイヤ)
が論理1を表わす電圧に上昇する。ページが活性化されると(またはビット線に
接続される)、このページ中の論理0を含むビットによりそれぞれのビット線が
論理0に降下する。こうして、ビット線を論理0に初期化しページ中の論理1を
表わすビットがそれぞれのビット線を昇圧する時間が省かれる。また、プリチャ
ージ動作により、以前のバンクアクセスから現在活性である行が行バッファから
メモリアレイに書戻されるので、データが失われれない(以下参照)。CSまた
はバンクのプリチャージにはいくつかの方法がある。メモリが初期化されると、
プリチャージは、CSに対するリフレッシュがあるとき、または、メモリ制御論
理がプリチャージ動作をそのCSまたはバンクにディスパッチするときは常に発
生する。バンクが現在プリチャージされていない場合、メモリ制御論理は、所望
のCSにプリチャージ動作を発行し、そのCSの所望のバンク(またはすべての
バンクの場合もある)のビット線をプリチャージする。
【0005】 次に、所望のCSおよびバンクに、活性化動作が行アドレスとともに送られ、
特定のページをビット線上に活性化しデータのページをバンクの行バッファに転
送する。なお、DRAMメモリの性質上、活性化動作は、メモリアレイのある行
の内容を、この内容を行バッファに移動させるプロセス中に、破壊する。この内
容をメモリアレイに戻して置換え、この内容が失われないようにするには、プリ
チャージ動作(先に述べたもの)を、別の行を行バッファに活性化する前に行な
うことが必要である。行バッファにページが入ると、適切な読出または書込動作
を、読出すまたは書込むビットを識別する列アドレスとともにディスパッチでき
る。これらの動作によりメモリ要求が開始される。次に、メモリ要求は、データ
をメモリにまたはメモリから転送することにより終了する。なお、行が一旦活性
化されると、行バッファで、メモリ制御論理はその行に対し、さらなるプリチャ
ージまたは活性化動作を行なわずに、数多くの読出および書込を行なうことがで
きる。
【0006】 この例からわかるように、メモリへのアクセス開始は、プリチャージ、活性化
および読出/書込という基本動作に分割できる。一旦開始されると、メモリへの
またはメモリからのデータ転送を完了しなければならない。すなわち、読出につ
いてはデータをメモリから取込んでリクエスタに戻さねばならず、書込について
は書込むべきデータをメモリに送らねばならない。
【0007】 当該技術では、ステートマシン論理を構成してアクセスのデコード、基本動作
のディスパッチ、およびデータ転送終了の制御を効率的に行なうことにより、メ
モリの使用を最適化できることは周知である。しかしながら、こうした動作を行
ない、動作間の従属性を追跡し、動作を並列にディスパッチおよび終了するのに
必要なステートマシン論理は、複雑なことが多い。結果として、より多くのゲー
トを実現することが必要でかつ理解および検証が困難な複雑な設計になる。
【0008】 さらに、通常複雑な設計は動作が遅い。コンピュータ論理は典型的に、コンピ
ュータ内の動作の同期を保つクロック信号を中心として設計される。典型的な設
計には論理段があり、各段は入力ラッチ、出力ラッチおよび組合せ論理を含む。
入力ラッチは組合せ論理の入力に接続される。入力ラッチは入力信号をラッチし
これを定常に保ち、一方、組合せ論理はこれらに対して動作を行なう。出力ラッ
チは組合せ論理の出力をラッチする。入力ラッチおよび出力ラッチはクロック信
号にも接続される。組合せ論理は、論理関数を実施するように配置および接続さ
れたNANDまたはNORゲートなどの論理ゲートからなる。
【0009】 クロック信号の各パルスで、入力ラッチは、入力信号をラッチしてこの入力信
号を組合せ論理が利用できるようにし、出力ラッチは、組合せ論理の出力をラッ
チする。論理段は、組合せ論理のゲートを構成する回路の伝搬遅延により、入力
信号がラッチされる時と組合せ論理関数の結果が計算される時との間に遅延が生
じることを利用する。論理段は、組合せ論理が、(すべての信号が伝搬した)計
算を、次のクロックパルスが出力ラッチにヒットする前に終えるように設計され
る。このようにして、各クロックパルスで、組合せ論理への入力が変化し、出力
ラッチが先行する入力の結果をラッチする。出力ラッチは次の論理段のための入
力ラッチも形成するため、データは論理のある段から次の段へと移動する。
【0010】 なお、論理段の入力および出力ラッチ間に置くことができるゲートの数は一部
がコンピュータのクロック周波数の関数である。クロック周波数が速いほど、信
号がゲートを伝搬するのに残される時間は短い。設計が複雑になるほど、入力お
よび出力ラッチ間により多くのゲートが必要であり、より遅いクロックを要する
。したがって、設計者は、高速クロックおよび複雑な論理設計の兼合いを図らな
ければならないことが多い。
【0011】 このように、メモリへのアクセスの性能を最適化し向上させる一方で、メモリ
制御論理の設計を単純化することが必要である。さらに、メモリ制御論理の論理
的な複雑性を減じ、結果としてゲートの総数、設計時間/コストおよび設計誤り
の数を減じる必要がある。これはさらに論理段間のゲート遅延数の減少を見込ん
でおり、その結果全体として動作が高速化されるであろう。
【0012】
【発明の概要】
上記の問題点は、この発明に従う、メモリ要求をコンピュータメモリ(70)
に送るための装置および方法により解決される。この発明の1局面においてメモ
リコントローラ(230)が与えられ、このメモリコントローラは、メモリ要求
を受けて基本メモリ動作にデコードする要求デコーダ(310)と、要求デコー
ダ(310)に結合され基本メモリ動作を格納するよう動作する動作キュー(3
40、350、360)とを含む。メモリコントローラ(230)はマルチプレ
クサ(370)をさらに含み、このマルチプレクサは、キュー(340、350
、360)およびコンピュータメモリ(70)に結合され、キュー(340、3
50、360)から1つの基本メモリ動作を選択し選択した動作をコンピュータ
メモリ(70)に送ってメモリ要求を開始するよう動作する。キュー(340、
350、360)はさらに、選択された基本メモリ動作がマルチプレクサ(37
0)により送られると、この選択された基本メモリ動作をクリアするよう動作す
る。メモリコントローラ(230)はまた、動作キュー(340、350、36
0)およびコンピュータメモリ(70)に結合され、コンピュータメモリ(70
)において開始されているメモリ要求を終了させる制御キュー(450、455
)を含む。
【0013】 この発明はさらに、コンピュータメモリ(70)へのメモリ要求をメモリコン
トローラ(230)を用いて実行するための方法を意図しており、この方法は、
メモリ要求発生器からのメモリ要求を受付けるステップ(520)と、このメモ
リ要求を1つ以上の基本メモリ動作にデコードするステップ(530)と、この
基本メモリ動作を1つ以上の動作キューに入れるステップ(580、590、6
00)と、キューに入れられた基本メモリ動作のうち1つを選択してメモリ(7
0)に送るステップと、キューに入れられた基本メモリ動作をメモリ(70)に
送りメモリ要求を開始するステップと、キューに入れられた基本メモリ動作を、
基本メモリ動作がメモリ(70)に送られたときにキューから出すステップと、
制御データを1つ以上の制御キュー(450、455)に入れ、これによりコン
ピュータメモリ(70)におけるメモリ要求を終了するステップと、メモリ要求
が終了すると制御データをキューから出すステップとを含む。
【0014】 この発明の結果、メモリアクセスが最適化され、メインメモリの性能が向上す
る。これらの利点が得られる一方で、メモリアクセス制御論理の設計が簡素化さ
れその論理的複雑度が減少する。これが結果としてゲートの総数、設計時間/コ
ストおよび設計誤り数の減少につながる。加えて、論理段間のゲート遅延数が減
少する結果、全体的に動作が高速化される。この発明はまた、種々のタイプのメ
モリに使用でき、適応し易い構造を提供する。
【0015】
【発明を実施するためのモード】
次に図面を参照して、図1は、具体例としてのコンピュータシステム10の選
択された構成要素を示し、この構成要素は、マザーボード20、中央処理装置(
CPU)30、アドバンスドグラフィックスポート(AGP)40、チップセッ
ト45、メモリ70、CPUバス80、AGPバス90、メモリバス100およ
びPCIバス110を含む。CPU30、バス90、100、110およびマザ
ーボード20は当該技術で周知であることが理解されるであろう。さらに、AG
P40はコンピュータシステム10に含まれる典型的な入出力(I/O)装置の
一例にすぎず、コンピュータシステム10が当該技術では周知の種々の入出力装
置を含み得ることが理解されるであろう。
【0016】 チップセット45は、コンピュータシステム10の上記構成要素すべてを相互
接続する。好ましい実施例では、チップセット45は、当該産業で「ノースブリ
ッジ(Northbridge)」60および「サウスブリッジ(Southbridge)」50とし
て知られている2つのチップを含む。その代わりとして、チップセット45が他
のチップを含むことが可能で、かつ、ノースブリッジ60およびサウスブリッジ
50それ自体が2つ以上のチップを含むことが可能である。例として挙げたノー
スブリッジ60は、カリフォルニア州サニーベイルのAMDが製造するアイロン
ゲートノースブリッジ(Irongate Northbridge)チップである。例として挙げた
ノースブリッジ60は、マザーボード20のシステムバスクロック速度100M
Hzで働くように設計されているが、より高速のクロック速度を用いることが可
能である。ノースブリッジ60は、コンピュータシステム10においてメモリ7
0をメモリ70にアクセスする必要がある他のデバイスと相互接続するように設
計されている。典型的には、これらのデバイスは、CPU30、および、AGP
40またはサウスブリッジ50を含めPCIバス110に接続された入出力装置
などの、新規技術の入出力装置を含む。これらデバイスは、メモリリクエスタ2
10としても知られており、ノースブリッジ60に対しメモリ要求を行ないノー
スブリッジ60はこのメモリ70への要求を実行し終了する(詳細は以下で説明
する)。サウスブリッジ50は、通常古い技術による入出力デバイスとの遺産互
換性を与えるように設計され、これらのデバイスおよびPCIバス110間をイ
ンターフェイスする。例として挙げたノースブリッジ60は、CPUバス80を
用いてCPU30に接続し、専用AGPバス90を用いてAGP40に接続し、
専用メモリバス100を用いてメモリ70に接続し、PCIバス110を用いて
その他すべてのデバイスに接続するように設計される。ノースブリッジが他のバ
ストポロジを利用してマザーボード20上の種々の構成要素と相互接続できるこ
とがわかるであろう。
【0017】 ノースブリッジチップはメモリコントローラ(MCT)200を含み、MCT
200は、メモリバス100上でのメモリリクエスタ210およびメモリ70間
のデータの流れを制御し指示する。MCT200は、メモリ要求アービタ(MR
A)220およびSDRAMメモリコントローラ(SMC)230を含む。MC
T200は、メモリ70に対する動作の発生、優先度決定および管理を処理する
(以下で説明)。本明細書に引用により援用する、同時係属中で同一の譲受人に
譲渡される、1998年12月4日出願の出願番号第09/205,456号「
METHOD AND APPARATUS FOR OPTIMIZING MEMORY PERFORMANCE WITH OPPORTUNISTI
C PRE-CHARGING」および1998年12月4日出願の出願番号第09/205,
978号「METHOD AND APPARATUS FOR OPTIMIZING MEMORY PERFORMANCE WITH OP
PORTUNISTIC REFRESHING」には、メモリ要求を完了させるためのMCT200の
動作についてさらに説明されている。
【0018】 好ましくは、メモリ70は、デュアルインラインメモリモジュール(DIMM
)74を受けるためにマザーボード20に装着された数個のソケット72を含む
。好ましい実施例では、マザーボード20は、各々が1つのDIMM74を保持
できる3つのソケット72を含む。その代わりとして、単体のインラインメモリ
モジュールまたは他の形式のメモリキャリアを用いることができる。このソケッ
ト72により、DIMM74およびメモリバス100間が接続される。メモリバ
ス100は、メモリ70をノースブリッジ60と相互接続する。各DIMM74
は、各側に1つ以上のメモリチップがはんだ付けされたプリント回路板を含む。
好ましい実施例では、これらメモリチップは同期ダイナミックランダムアクセス
メモリ(SDRAM)チップを含むが、他のタイプのDRAMメモリチップを用
いることができる。DIMM74の各側を以降CS76と呼ぶ。
【0019】 SDRAMチップは、当該技術においてはDRAM型メモリの派生形として知
られている。SDRAMチップはその動作をコンピュータシステム10の残り部
分に同期させることによって、従来のDRAMよりも高速のクロックで実行でき
る。さらに、SDRAMチップはバーストアクセスモードも提供し、これによっ
てメモリ70へのアクセス時間がより速くなるという利点が得られる。バースト
アクセスモードでは、ノースブリッジ60はより多くのデータを各アクセスでメ
モリ70から取出すことができる。これによって、メモリ70に送る必要のある
要求の数が減少し、メモリバス100上の帯域幅が減じられる。SDRAMチッ
プは、所望のバーストデータサイズに初期化可能なモードレジスタを含む。モー
ドレジスタが一旦セットされると、メモリ70への各アクセスによってSDRA
Mチップが設定量のデータをダンプする。たとえば、好ましい実施例において、
メモリバス70は64ビット幅である。バーストデータサイズが8クワッドワー
ド(QW)または64バイトに設定されていれば、ノースブリッジ60は第1の
QWのアドレスをディスパッチし次に後続の8クロックサイクル期間でメモリ7
0は1サイクル当り1QWをメモリバス100で送り、ノースブリッジ60から
のさらなる要求なしで要求を満たすことができる。
【0020】 物理的には、コンピュータシステムのメインメモリは典型的に各CSにより分
割される。各CS76は、メモリバス100上のチップセレクト(CS)信号に
接続され、ノースブリッジ60はCS信号を用いてそのメモリチップのみを活性
化する。ノースブリッジ60が個別に各CS76をアドレス指定できるようにす
るため、各CS76に対するCS信号は1つのみである。CS76がアクセスさ
れると、そのCSの一部であるすべてのメモリチップがあたかも単体であるかの
ように同時にアクセスされる。これはインタリーブアクセスを見込んだもので、
1つのCS76がある要求の処理中であれば、ノースブリッジ60は別の要求を
別のCS76に送ることができ、最初の要求の終了を待つ必要はない。
【0021】 より高いメモリ帯域幅にするために、各CS76は典型的に、独立アクセス可
能な別々のバンクに分割される。これは、特定のCS76内でのインタリーブさ
れたメモリアクセスを見込んでいる。バンクの数は、DIMM74で用いられる
メモリチップの製造者次第である。各メモリチップの各バンク内のメモリ記憶回
路の物理的なレイアウトは通常、格子配置(行/列)であり、SDRAMは、こ
の格子へのアクセスのために行アドレスおよび列アドレスのための入力を設けて
いる。したがって、メモリ70内のどの場所にアクセスするにしても、コンピュ
ータシステム10は、特定のCS、バンク、行アドレスおよび列アドレスを選択
するだけでよい。好ましい実施例では、各DIMM74は2つのCS76を備え
、各CS76は4個までのバンク、8192(8K)までの行および2048(
2K)までの列を備える。特定のCS76、バンクおよび行を特定するための組
合せは、本明細書においてページとも呼ばれる。
【0022】 加えて、SDRAMメモリチップは、SDRAM行バッファ(行バッファ)と
呼ばれるバッファ記憶を設ける。通常1バンク当り1つの行バッファがある。ペ
ージが選択されると(活性化動作としても知られている)、SDRAMは選択さ
れた行をバンクの行バッファに移動させる。行バッファから、列アドレスを用い
て、所望のデータを読出または書込動作のために選択する。ある行が行バッファ
に活性化されると、メモリ制御論理は、行バッファの内容が、異なる行を行バッ
ファに移動させる前に、必ずメモリアレイに戻って格納されるようにしなければ
ならない(これについては以下で説明する)。
【0023】 例として挙げたノースブリッジ60について、メモリ70へのメモリ要求は3
つのシナリオに分類できる。また、これらのシナリオを用いて、MCT200が
要求開始のためにメモリ70に送らねばならない基本動作(プリチャージ、活性
化および読出/書込)を識別する。第1のシナリオは、メモリ要求が特定のCS
76およびバンクの行バッファにおいて既に活性化されているページに向けられ
ているときの、ページヒット(PH)と呼ばれる。このタイプのトランザクショ
ンのレイテンシは最も低い。なぜなら、読出/書込動作および適切な列アドレス
のみをディスパッチしてメモリ要求を開始すればよいからである。ここで生じる
唯一の遅延は、メモリ70の、要求を終了させるために適切なデータを返送する
またはデータを行バッファに書込むためのターンアラウンドタイム(送受反転時
間)である。
【0024】 第2のシナリオはページコンフリクト(PC)と呼ばれる。PCは、メモリ要
求の対象のCS76およびバンクの行バッファに現在活性ページがあるがこの要
求が異なる行に向けられているときに発生する。このシナリオは最長レイテンシ
を伴う。その理由は、バンクをプリチャージし、次に、新たなページを、読出/
書込動作をディスパッチして要求を開始できるようになる前に、行バッファに活
性化しなければならないからである。加えて、現在のページを行バッファに入れ
る要求がまだ終了していない場合、さらなる遅延が生じる。この場合、新たなペ
ージに対する要求を停止しなければならない。PCが発生すると、MCT200
はSDRAMにプリチャージ、活性化および読出/書込動作をディスパッチする
必要がある。
【0025】 第3のシナリオはページミス(PM)と呼ばれる。PMは、現在の要求が向け
られたバンクのSDRAMバッファに現在活性ページがないときに生じる。PM
には2つのタイプがある。第1のタイプはPMcであり、現在の要求は最も最近
アクセスされたCS76と異なるCS76に向けられている。第2のタイプはP
Mbであり、現在の要求は最も最近アクセスされたCS76に向けられているが
そのCS76で既に活性であるバンクと異なるバンクに向けられている。PMで
は、MCT200は、活性動作をディスパッチして所望のページを行バッファに
移動させ、続けて読出/書込動作を行ない要求を開始するだけでよい。PMcに
ついては、活性の行をメモリアレイに書戻すために、プリチャージ動作も最後に
アクセスされたバンクに送られる。なお、この態様でのプリチャージにより、P
Mが既にプリチャージされたバンクに対するものであることが保証される。バン
クがまだプリチャージされていなければ、行バッファに既に活性の行があること
を意味し、PCシナリオとなる。
【0026】 さらに、例として挙げたコンピュータシステム10では、プリチャージ、活性
化および読出/書込動作には、終了に一定の時間が必要である。特定のCS76
への別の動作のディスパッチは、先行する動作が完了するまで待たなければなら
ない。これらの遅延はタイミング従属性とも呼ばれる。たとえば、具体例として
ミクロンテクノロジー社(Micron Technology, Inc.)のSDRAMを利用する
と、CS76への典型的なプリチャージ動作は30ナノ秒(または100MHz
システムバスで3サイクル)を要する。この遅延はTrpとも呼ばれる。これは
、MCT200が、後続の活性化動作をCS76に送るまでTrp待たなければ
ならないことを意味する。さらに、活性化動作が送られると、行がSDRAM行
バッファに移動するのに30ナノ秒(または100MHzシステムバスで3サイ
クル)かかる。この遅延はTrcdと呼ばれる。このことは、MCT200が、
読出または書込動作をディスパッチするのにTrcd待たなければならないこと
を意味する。なお、活性化に続く次の動作がプリチャージであれば、プリチャー
ジを送る前の遅延はTdplと呼ばれ、Trcdとは異なるかもしれない。さら
に、1つのCS76の1つのバンクのみが所与の時間にデータをメモリバス10
0で送るまたは受けることができる。バンクがMCT200へのデータ送信また
はMCT200からのデータ受信を開始すると、いずれかのCS76への後続の
読出および書込動作(他のバンクへの活性化またはプリチャージではない)は、
データ転送の完了を待たなければならない。こうした動作/タイミング従属性は
、1つのCS76および/またはバンクでのみ生じる。2つ以上のCS76また
は異なるバンクへの要求は、並列にまたはインタリーブの態様でディスパッチで
きる。
【0027】 次に図2を参照して、MRA220およびSMC230のより詳細な図が示さ
れる。MRA220は、キュー制御論理300および要求デコーダ310を含む
。SMC230は、活性化動作キュー(AQ)340、プリチャージ動作キュー
(PQ)350、読出/書込動作キュー(RWQ)360、読出/書込制御キュ
ー(RWCQ)365、SDRAM優先度マルチプレクサ(SPM)370、お
よびデータ経路制御論理380を含む。SMC230はまた、MRA220にお
ける要求デコーダ310からの、次のメモリ要求を構成するデコードされた基本
メモリ動作を受けるための次要求入力400を含む。さらに、SMC230は、
MRA220に対し、AQ340、PQ350またはRWQ360に利用可能な
エントリがあるかどうかを示す、キュー状態出力420を含む。SMC230は
また、メモリバス100に接続されたSDRAMコマンドバス出力430および
データ経路制御論理380に接続されたデータバス制御出力435を含む。例と
して挙げたSMC230において、AQ340およびPQ350は各々1エント
リキューであり、RWQ360は3エントリキューである。なお、PQ350は
また、さらなる2つのキューエントリ475を有し、これは、最後に発行された
2つのプリチャージ動作を記憶している。これらのエントリを用いて、以下で説
明し図4−13に詳細に示すようにタイミング従属性を決定する。
【0028】 AQ340はまた、2組のカウンタ480および485を含み、これらを用い
て、特定のバンクまたはCS76への最後の活性化動作からのサイクル数を測定
する。第1組のカウンタ480は、現在活性であるCS76の各バンクへの最後
の活性化からのサイクル数をカウントする4つのカウンタを含む。これらのカウ
ンタは、新規CS76へのアクセスが発生するときは常にリセットされる。第2
組のカウンタ485は、各CS76への最後の活性化からのサイクル数をカウン
トする6つのカウンタを含む。これらのカウンタの組480および485双方を
用いて、以下で説明し図4−13に詳細に示すようにキュー間のタイミング従属
性を決定する。
【0029】 メモリリクエスタ210は、メモリ70にアクセスするために種々の要求をM
RA220の入力に行なう。MRA220は、SMC230に送るべき1つの要
求を選択する。キュー制御論理300は、SMC230からのキュー状態出力4
20に接続され、要求をSMC230に送ることができるかどうか判断する(以
下で説明)。要求をSMC230に送ることができるのであれば、MRA220
が選択した要求が要求デコーダ310に送られる。要求デコーダ310は、その
要求を基本メモリ動作にデコードして、SMC230の動作キュー340、35
0および360に、次要求入力400を介して送る。例として挙げたSMC23
0では、要求デコーダ310は組合せ論理で実現される。
【0030】 次に図3を参照して、キュー制御論理300および要求デコーダ310が実行
するステップの詳細なフローチャートが示される。MRA220は、メモリリク
エスタ210から、SMC230に送る1つのメモリ要求を選択する(ステップ
500)。キュー制御論理は継続的に、AQ340、PQ350およびRWQ3
60が満杯かどうか検査する(ステップ510)。動作キューは、所与のメモリ
要求について、少なくとも1つのキューエントリが、各動作キューにおいてその
要求のために必要な基本メモリ動作に利用できるならば、満杯ではない。動作キ
ューが満杯であれば、制御はステップ500に戻る。キューが満杯でなければ、
要求デコーダ310は次の要求を受付ける(ステップ520)。次に、要求デコ
ーダ310は、次の要求を必要な基本動作にデコードし(ステップ530)、適
切な基本動作を次要求入力400を介してAQ340、PQ350およびRWQ
360に入れる(ステップ540−570)。次要求がPMcならば(ステップ
540)、活性化動作を発生してAQ340に格納し(ステップ580)、プリ
チャージ動作を発生してPQ350に格納し(ステップ590)、読出/書込動
作を発生してRWQ360に格納する(ステップ600)。次要求がPMbであ
れば(ステップ550)、活性化動作を発生してAQ340に格納し(ステップ
580)、読出/書込動作を発生してRWQ360に格納する(ステップ600
)。次要求がPHであれば(ステップ560)、読出/書込動作を発生してRW
Q360に格納する(ステップ600)。次要求がプリチャージであれば(ステ
ップ570)、プリチャージ動作を発生してPQ350に格納する(ステップ5
90)。加えて、ダミープレースホルダRWQ360エントリを、RWQ360
に格納する(ステップ600)(以下参照)。適切な動作すべてを発生して格納
した後、制御はステップ500に戻る。
【0031】 再び図2を参照して、動作キューAQ340、PQ350およびRWQ360
は各々、SPM370に接続される。PQ350およびRWQ360はRWCQ
365にも接続される。各動作キュー340、350、360は、独立して動作
し、自身の、キューに入れられた動作を試行しメモリバス100上に発行して、
メモリ要求を開始する。さらに、各動作キュー340、350、360は、タイ
ミングおよび順序従属性に厳密に従わねばならず、この従属性に適合するときし
か動作を発行できない。SPM370は、メモリ70に送るべき動作を選択し、
ディスパッチする。2つ以上のキューが動作を送ろうとしているとき、SPM3
70は1つの動作を選択しなければならない。例として挙げたSMC230では
、SPM370は、優先度に基づく選択を実現する。この場合、hi優先度でマ
ークされたPQ350エントリは(以下参照)RWQ360エントリに優先し、
RWQ360エントリはAQ340エントリに優先し、AQ340エントリは通
常のPQ350エントリに優先する。動作キュー340、350および360は
相互接続されかつRWCQ365に接続され、相互にタイミングおよび順序従属
性のある動作キュー340、350および360に現在ある動作を追跡し適切に
発行する。メモリ要求が開始されると、RWCQ365は、メモリ70に既に送
られている未処理の読出または書込動作を追跡しなければならない。RWCQ3
65はまた、動作キュー340、350および360に接続され、動作キューが
、タイミングおよび順序従属性が過去の動作に関していつ適合したかを判断でき
るように、履歴動作に関する必要情報を提供しする。
【0032】 RWCQ365は、有効読出キュー(VRd)450、有効書込キュー(VW
r)455および制御論理460を含む。例として挙げたSMC230では、V
Rd450の深さは12エントリであり、VWrキュー455の深さは8エント
リである。これらのキューは、それぞれのエントリを各クロックサイクルでシフ
トダウンし、ボトムエントリはシフトされてキューから外れる。VRd450も
、さらなる2つのキュースロット465を設けて最後にキューから外された2つ
のエントリを記憶し、VWrはさらなる1つのキュースロット470を設けて最
後にキューから外されたエントリを記憶する。これらのエントリは、以下で説明
し図4−13に詳細に示すように、動作キュー340、350および360が何
らかの従属性の問題を解決するのに用いるために、与えられる。たとえば、PQ
350は、プリチャージ動作を送る前に、さらなる第2のVRdキュースロット
465およびさらなるVWrキュースロット470に注目し、現在使用されてい
るCS76またはバンクをプリチャージしないようにする。
【0033】 読出動作がSPM370によりメモリ70にディスパッチされたとき、制御論
理465は、VRd450に、将来、データが戻り始めたときに使用するための
制御信号をロードする。書込動作がSPM370によりメモリ70にディスパッ
チされたとき、制御論理465は、VWr455に、将来、書込むべきデータを
受ける準備がメモリにできているときに使用するための制御信号をロードする。
各キューのボトムエントリは、現在のサイクルにおけるSDRAMバス100の
状態およびその状態を処理するのに必要な制御信号を表わす。各サイクルで、V
Rd450およびVWr455がシフトダウンすると、現在のサイクルについて
適切な制御信号はボトムキューエントリに入りディスパッチされて、SMC23
0およびデータ経路制御論理380における適切なアクションを制御する。1つ
の例は、8クワッドワード読出動作であり、この場合、SDRAM CASレイ
テンシは3サイクルである。SPM370による読出動作のディスパッチの際、
VRd450の上部8エントリは、制御論理465により、読出データの各クワ
ッドワードをメモリ70から入り始めたときに処理するための適切な制御信号が
ロードされる。次の3つのエントリは、活性を示さない制御信号で設定される。
最後のエントリはボトムエントリであり、これは、現在起こっているどのような
動作でも保持する。各サイクルでエントリはシフトダウンする。CASレイテン
シが3の場合、データが読出動作のディスパッチに続いてメモリから入り始める
までに3サイクルかかる。これら3サイクルの間、活性を示さない制御信号はシ
フトされて出される。3サイクル後、読出制御信号はボトムキューエントリ内に
シフトされ、データがメモリ70から届いたときにはこのデータに対する準備が
整っている。その後の各サイクルで、各クワッドワードが入ると、適切な制御信
号が利用できる。このようにして、RWCQ365は、動作キュー340、35
0および360が開始したメモリ要求を終了させる。
【0034】 表1は、メモリ70に動作を送るときに各動作キューが固守しなければならな
いSDRAMタイミング変数および従属性をリスト化したものである。この表に
は、タイミング変数と、どの動作キューがこのタイミング要件を満たすことを担
うかと、予期されるレイテンシと、その要件の説明とが示される。予期されるレ
イテンシ値は、2サイクルおよび3サイクルのコラムアドレスストローブ(CA
SまたはTcel)に対して示される。これらのタイミング変数は、製造業者に
よって与えられるとおりのメモリ70に設置される特定のSDRAMチップのア
クセス特性付近にすべて基づいている。たとえば、AQ 340はプリチャージ
に続いて活性化を送る前にTrpの間待機することを担う。Trpは、SDRA
Mチップによって必要とされる、バンクをプリチャージすることとその後次いで
その同じバンクを活性化することとの間における遅延である。
【0035】 表2は、各動作キューのハイレベル順序付け従属性をリスト化し、各キューが
探さなければならない履歴上の動作をリスト化したものである。この表には、要
求カテゴリ(またはシナリオ)PH、PMb、PMcまたはPreが示される。
各カテゴリごとに、表は、要求が履歴上の(以前に送信された)プリチャージ、
活性化または読出/書込動作に従属しているかどうかを示す。さらに、このテー
ブルには、どのような基本動作が各カテゴリに対しキューに入れられるかも示さ
れる。
【0036】 表3には、キュー順序付け従属性のより詳細なリストが示される。この表は、
各動作キューに対する従属性をリスト化し、次いで、その動作キューがその従属
性をどのように解決して従属動作を送信するかをリスト化している。たとえば、
プリチャージ動作は、完了されたCSに対し読出/書込動作に先んずることに従
属している。PQ 350は、この従属性の解決を、プリチャージがPQ 35
0にキューに入れられるときにMRA 220にある要求デコーダ310によっ
てダミー読出/書込動作をRWQ 360に入れさせることにより行なう。プリ
チャージ動作はこのダミー読出/書込に結び付けられ、RWQ 360がダミー
動作を送ろうと試みる(それは何も行なうことなくキューから単に外される)ま
で出されない。RWQ 360はキューに入れられた読出/書込動作を順に送信
し、したがって一旦RWQ 360がダミー読出/書込動作をクリアするとPQ
350は、すべての先行する読出/書込が完了されているので、自由にプリチ
ャージを送る。
【0037】 表4〜10は各キューが発生する重要な信号と、各キューごとの各キューエン
トリのフィールドとをリスト化したものである。各フィールドごとに、図4、6
、8および10は、フィールド名とそのフィールドに記憶される情報の説明とを
リスト化している。各動作キューごとに、図5、図7および図9は、各動作キュ
ーが発生する信号と、その信号の目的と、その信号がどのように生成されるかと
をリスト化している。たとえば、RWQ 360はPQ 350に対しRWQ_
Preと呼ばれる信号を発生するが、この信号はPQ 350に対しいつそのダ
ミー読出/書込エントリが当該キューの最後に達したかを知らせる。これはPQ
350読出/書込順序付け従属性を解決し、したがってそれはプリチャージ動
作を送り得る。この信号は最後のRWQ 360キューエントリのPREおよび
DMcフィールドの「or」関数によって生成される。キューにおけるいくつか
のフィールドは、実際には、あるタイミング従属性を解決するべく用いられるカ
ウンタである。たとえば、RWQ 360には、Trcd_Cntと呼ばれるフ
ィールドがある。このフィールドはAQdepフィールドに応答する。これらの
フィールドは、ともに組合せられることにより、活性化動作を必要とする読出/
書込動作に対し、読出/書込のメモリに対する送信が必要な活性化動作の完了前
に行なわれないようにすることを保証する。Trcd_CntはRWQ 360
エントリがキューに入れられるとTrcdの値をロードされるカウントダウンカ
ウンタであり、RWQ 360エントリの送出をそのカウントの値が0を超えて
いる限り行なわないようにする。AQdepフィールドがアサートされる限り、
Trcd_Cntはカウントを行なわず、SPM 370がAQ 340から活
性化動作を受付けるとAQdepはクリアされる。一旦カウントが0になるとT
rcd従属性は活性化に続いて満たされており、読出/書込動作が送り出される
ことによりデータ転送が開始される。
【0038】
【表1】
【0039】
【表2】
【0040】
【表3】
【0041】
【表4】
【0042】
【表5】
【0043】
【表6】
【0044】
【表7】
【0045】
【表8】
【0046】
【表9】
【0047】
【表10】
【0048】 動作キュー340、350、360の各々は動作リクエスタである。動作リク
エスタによって、それが、タイミングおよび順序付け従属性が満たされた動作を
有する、と判断されるごとに、そのリクエスタはある信号をSPM 370に対
しアサートする。この信号は、SPM 370に対し、送られる用意がある動作
が存在することを知らせる。複数の動作リクエスタがある動作を送る準備がある
場合、SPM 370は最も高い優先度を有する1つの動作を選択する。SPM
370はある信号をその受入れられたリクエスタに送り返すことによりその動
作が受付けられたことおよびそのリクエスタがその動作をキューから外し得るこ
とを示す。一旦受付けられると、その動作はメモリ70にメモリバス100を介
して送信される。
【0049】 読出または書込動作がRWQ 360から出されると、RWCQ 365が適
切にロードされることにより現在の動作が反映されしたがってそれは適切に完了
され得る。先に論じたように、RWCQ 365は継続してそのエントリのシフ
トを下方向およびそのキューから、最後のエントリがメモリバス100の現在の
状態に対し適切な制御信号を保持する状態で行なう。
【0050】 かくして、各動作キューはタイミングおよび順序付け従属性を解決し動作を独
立して送出することによりメモリ要求を開始することができる。さらに、制御キ
ューは、メモリ要求の完了を、将来の活動に対する制御情報を予めセットし単純
なシフティングキュー構造を利用して適切な制御信号を適切なときに発すること
により容易に行ない得る。これは、メモリバスの最適な利用を介しての最大限の
パフォーマンスを見込む。さらには、単純なキュー構造の結果設計がより複雑で
なくなり、したがって、ゲート数、設計時間/コストおよび設計誤りの数が低減
されその一方で論理の速度が増大する。加えて、この単純なキュー構造は、さま
ざまなメモリアーキテクチャとともに機能することが可能な柔軟な設計を、キュ
ーのサイズまたはキューのエントリのフィールドの内容を単純に変えることによ
って与える。
【0051】 前述の詳細な記載は例示的なものであって限定的なものではないこと、および
すべての等価物を含む前掲の特許請求の範囲はこの発明の範囲を規定するよう意
図されることが理解されることが意図される。
【図面の簡単な説明】
【図1】 好ましい実施例に従うメモリコントローラに用いるコンピュータ
システムの一例のブロック図である。
【図2】 図1のメモリコントローラのMRAおよびSMCユニットを示す
ブロック図である。
【図3】 図2に示したMRAユニットが実施する方法を示すフローチャー
トである。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年11月13日(2000.11.13)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項1
【補正方法】変更
【補正の内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0027
【補正方法】変更
【補正の内容】
【0027】 次に図2を参照して、MRA220およびSMC230のより詳細な図が示さ
れる。MRA220は、キュー制御論理300および要求デコーダ310を含む
。SMC230は、活性化動作キュー(AQ)340、プリチャージ動作キュー
(PQ)350、読出/書込動作キュー(RWQ)360、読出/書込制御キュ
ー(RWCQ)365、SDRAM優先度マルチプレクサ(SPM)370、お
よびデータ経路制御論理380を含む。SMC230はまた、MRA220にお
ける要求デコーダ310からの、次のメモリ要求を構成するデコードされた基本
メモリ動作を受けるための次要求入力400を含む。さらに、SMC230は、
MRA220に対し、AQ340、PQ350またはRWQ360に利用可能な
エントリがあるかどうかを示す、キュー状態出力420を含む。SMC230は
また、メモリバス100に接続されたSDRAMコマンドバス出力430および
データ経路制御論理380に接続されたデータバス制御出力435を含む。例と
して挙げたSMC230において、AQ340およびPQ350は各々1エント
リキューであり、RWQ360は3エントリキューである。なお、PQ350は
また、さらなる2つのキューエントリ475を有し、これは、最後に発行された
2つのプリチャージ動作を記憶している。これらのエントリを用いて、以下で説
明し表1−10に詳細に示すようにタイミング従属性を決定する。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0032
【補正方法】変更
【補正の内容】
【0032】 RWCQ365は、有効読出キュー(VRd)450、有効書込キュー(VW
r)455および制御論理460を含む。例として挙げたSMC230では、V
Rd450の深さは12エントリであり、VWrキュー455の深さは8エント
リである。これらのキューは、それぞれのエントリを各クロックサイクルでシフ
トダウンし、ボトムエントリはシフトされてキューから外れる。VRd450も
、さらなる2つのキュースロット465を設けて最後にキューから外された2つ
のエントリを記憶し、VWrはさらなる1つのキュースロット470を設けて最
後にキューから外されたエントリを記憶する。これらのエントリは、以下で説明
し表1−10に詳細に示すように、動作キュー340、350および360が何
らかの従属性の問題を解決するのに用いるために、与えられる。たとえば、PQ
350は、プリチャージ動作を送る前に、さらなる第2のVRdキュースロット
465およびさらなるVWrキュースロット470に注目し、現在使用されてい
るCS76またはバンクをプリチャージしないようにする。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0033
【補正方法】変更
【補正の内容】
【0033】 読出動作がSPM370によりメモリ70にディスパッチされたとき、制御論
理460は、VRd450に、将来、データが戻り始めたときに使用するための
制御信号をロードする。書込動作がSPM370によりメモリ70にディスパッ
チされたとき、制御論理460は、VWr455に、将来、書込むべきデータを
受ける準備がメモリにできているときに使用するための制御信号をロードする。
各キューのボトムエントリは、現在のサイクルにおけるSDRAMバス100の
状態およびその状態を処理するのに必要な制御信号を表わす。各サイクルで、V
Rd450およびVWr455がシフトダウンすると、現在のサイクルについて
適切な制御信号はボトムキューエントリに入りディスパッチされて、SMC23
0およびデータ経路制御論理380における適切なアクションを制御する。1つ
の例は、8クワッドワード読出動作であり、この場合、SDRAM CASレイ
テンシは3サイクルである。SPM370による読出動作のディスパッチの際、
VRd450の上部8エントリは、制御論理460により、読出データの各クワ
ッドワードをメモリ70から入り始めたときに処理するための適切な制御信号が
ロードされる。次の3つのエントリは、活性を示さない制御信号で設定される。
最後のエントリはボトムエントリであり、これは、現在起こっているどのような
動作でも保持する。各サイクルでエントリはシフトダウンする。CASレイテン
シが3の場合、データが読出動作のディスパッチに続いてメモリから入り始める
までに3サイクルかかる。これら3サイクルの間、活性を示さない制御信号はシ
フトされて出される。3サイクル後、読出制御信号はボトムキューエントリ内に
シフトされ、データがメモリ70から届いたときにはこのデータに対する準備が
整っている。その後の各サイクルで、各クワッドワードが入ると、適切な制御信
号が利用できる。このようにして、RWCQ365は、動作キュー340、35
0および360が開始したメモリ要求を終了させる。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0037
【補正方法】変更
【補正の内容】
【0037】 表4〜10は各キューが発生する重要な信号と、各キューごとの各キューエン
トリのフィールドとをリスト化したものである。各フィールドごとに、表1、3
、5および7は、フィールド名とそのフィールドに記憶される情報の説明とをリ
スト化している。各動作キューごとに、表2、4および6は、各動作キューが発
生する信号と、その信号の目的と、その信号がどのように生成されるかとをリス
ト化している。たとえば、RWQ 360はPQ 350に対しRWQ_Pre
と呼ばれる信号を発生するが、この信号はPQ 350に対しいつそのダミー読
出/書込エントリが当該キューの最後に達したかを知らせる。これはPQ 35
0読出/書込順序付け従属性を解決し、したがってそれはプリチャージ動作を送
り得る。この信号は最後のRWQ 360キューエントリのPREおよびDMc
フィールドの「or」関数によって生成される。キューにおけるいくつかのフィ
ールドは、実際には、あるタイミング従属性を解決するべく用いられるカウンタ
である。たとえば、RWQ 360には、Trcd_Cntと呼ばれるフィール
ドがある。このフィールドはAQdepフィールドに応答する。これらのフィー
ルドは、ともに組合せられることにより、活性化動作を必要とする読出/書込動
作に対し、読出/書込のメモリに対する送信が必要な活性化動作の完了前に行な
われないようにすることを保証する。Trcd_CntはRWQ 360エント
リがキューに入れられるとTrcdの値をロードされるカウントダウンカウンタ
であり、RWQ 360エントリの送出をそのカウントの値が0を超えている限
り行なわないようにする。AQdepフィールドがアサートされる限り、Trc
d_Cntはカウントを行なわず、SPM 370がAQ 340から活性化動
作を受付けるとAQdepはクリアされる。一旦カウントが0になるとTrcd
従属性は活性化に続いて満たされており、読出/書込動作が送り出されることに
よりデータ転送が開始される。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成13年1月26日(2001.1.26)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ノバック,スティーブン・ティ アメリカ合衆国、78741 テキサス州、オ ースティン、エム/エス・イー12−ディ ー・シィ、イースト・ベン・ホワイト・ブ ールバード、5204 (72)発明者 ウォルドロン,スコット アメリカ合衆国、94002 カリフォルニア 州、ベルモント、シックスス・アベニュ、 1524 (72)発明者 ペック,ジョン・シィ,ジュニア アメリカ合衆国、94107 カリフォルニア 州、サン・フランシスコ、テキサス・スト リート、368 Fターム(参考) 5B060 CA05 CD01

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータメモリ(70)に対しメモリ要求を実行する装
    置であって、 メモリ要求を受取り前記メモリ要求を少なくとも1つの基本メモリ動作にデコ
    ードするよう動作する要求デコーダ(310)と、 前記要求デコーダ310に結合され、前記少なくとも1つの基本メモリ動作を
    記憶して前記コンピュータメモリ(70)に送信するよう動作する少なくとも1
    つの動作キュー(340、350、360)と、 前記少なくとも1つの動作キュー(340、350、360)と前記コンピュ
    ータメモリ(70)とに結合され、前記少なくとも1つの基本メモリ動作を前記
    少なくとも1つの動作キュー(340、350、360)から外し前記少なくと
    も1つの基本メモリ動作を前記コンピュータ(70)に送信することにより前記
    メモリ要求を開始するマルチプレクサ(370)と、 前記少なくとも1つの動作キュー(340、350、360)および前記コン
    ピュータメモリ(70)に結合され前記メモリ要求を完了するよう動作する少な
    くとも1つの制御キュー(365)とを含む装置。
  2. 【請求項2】 前記少なくとも1つの動作キュー(340、350、360
    )はさらにレディ信号を前記マルチプレクサ(370)に対して発生するよう動
    作して前記少なくとも1つの動作キュー(340、350、360)が前記少な
    くとも1つの基本メモリ動作を前記コンピュータメモリ(70)に送信する準備
    ができている旨を示し、さらに前記マルチプレクサ(370)は前記レディ信号
    に応答する、請求項1に記載の装置。
  3. 【請求項3】 前記少なくとも1つの基本メモリ動作は従属する順序付けデ
    ータを含み、さらに前記少なくとも1つの動作キュー(340、350、360
    )は前記レディ信号を前記従属する順序付けデータから発生させる、請求項2に
    記載の装置。
  4. 【請求項4】 前記少なくとも1つの制御キュー(365)は、さらに、従
    属性信号を前記少なくとも1つの動作キュー(340、350、360)に対し
    て発生するよう動作し、さらに前記少なくとも1つの動作キュー(340、35
    0、360)は前記レディ信号を前記従属性信号から発生させる、請求項3に記
    載の装置。
  5. 【請求項5】 前記少なくとも1つの動作キュー(340、350、360
    )と前記マルチプレクサ(370)と前記少なくとも1つの制御キュー(365
    )とを相互接続することにより動作従属性データを共有し、さらに前記少なくと
    も1つの動作キュー(340、350、360)および前記マルチプレクサ(3
    70)は前記動作従属性データに応答する、請求項1に記載の装置。
  6. 【請求項6】 前記マルチプレクサ(370)は優先度選択に基づく前記少
    なくとも1つの基本メモリ動作を選択する、請求項1に記載の装置。
  7. 【請求項7】 前記少なくとも1つの基本メモリ動作は、活性化、読出/書
    込、およびプリチャージを含む、請求項1に記載の装置。
  8. 【請求項8】 前記少なくとも1つの動作キュー(340、350、360
    )は、活性化キュー(340)と、読出/書込キュー(350)と、プリチャー
    ジキュー(360)とを含む、請求項7に記載の装置。
  9. 【請求項9】 前記少なくとも1つの制御キュー(365)は読出制御キュ
    ー(450)と書込制御キュー(455)とを含む、請求項8に記載の装置。
  10. 【請求項10】 前記読出制御キュー(450)および前記書込制御キュー
    (455)は前記読出/書込キュー(350)に応答し、読出/書込制御データ
    の記憶を前記読出/書込基本メモリ動作が前記コンピュータメモリ(70)に送
    信された後に行なうよう動作する、請求項9に記載の装置。
  11. 【請求項11】 前記活性化キュー(340)は1のキュー深さを有し、前
    記読出/書込キュー(350)は3のキュー深さを有し、前記プリチャージキュ
    ー(360)は1のキュー深さを有する、請求項9に記載の装置。
  12. 【請求項12】 前記読出制御キュー(450)は12のキュー深さを有し
    、前記書込制御キュー(455)は8のキュー深さを有する、請求項9に記載の
    装置。
  13. 【請求項13】 前記要求デコーダ(310)は組合せ論理として実現され
    る、請求項1に記載の装置。
  14. 【請求項14】 前記要求デコーダ(310)は、論理に結合され、前記メ
    モリ要求を少なくとも1つの基本メモリ動作にデコードし前記少なくとも1つの
    基本メモリ動作を前記少なくとも1つのキュー(340、350、360)に記
    憶するよう動作する少なくとも1つのレジスタを含む、請求項1に記載の装置。
  15. 【請求項15】 コンピュータメモリ(70)へのメモリ要求を実行するた
    めの方法であって、 メモリ要求(520)を受付けるステップと、 前記メモリ要求を少なくとも1つの基本メモリ動作(530)にデコードする
    ステップと、 前記少なくとも1つの基本メモリ動作(580、590、600)を少なくと
    も1つの動作キュー(340、350、360)に入れるステップと、 前記少なくとも1つの基本メモリ動作を前記少なくとも1つの動作キュー(3
    40、350、360)から選択して前記コンピュータメモリ(70)に送信す
    るステップと、 前記少なくとも1つの基本メモリ動作を前記少なくとも1つの動作キュー(3
    40、350、360)から外すステップと、 前記少なくとも1つの基本メモリ動作を前記コンピュータメモリ(70)に送
    信することにより前記メモリ要求を開始するステップと、 制御データを少なくとも1つの制御キュー(365)に入れるステップと、 前記コンピュータメモリ(365)への前記メモリ要求を完了するステップと
    、 前記メモリ要求が完了したとして前記制御データをキューから外すステップと
    を含む、方法。
  16. 【請求項16】 前記少なくとも1つの基本メモリ動作および前記制御デー
    タは動作間従属性を含み、前記選択して送信するステップはすべての動作間従属
    性が満たされたことを確認するステップをさらに含む、請求項15に記載の方法
  17. 【請求項17】 前記少なくとも1つの基本メモリ動作はプリチャージと活
    性化と読出/書込とを含み、さらに前記少なくとも1つの動作キューはプリチャ
    ージキュー(350)と活性化キュー(340)と読出/書込キュー(360)
    とを含む、請求項15に記載の方法。
  18. 【請求項18】 前記少なくとも1つの制御キュー(365)は読出制御キ
    ュー(450)と書込制御キュー(455)とを含む、請求項15に記載の方法
  19. 【請求項19】 前記プリチャージキュー(350)は1つのキューエント
    リを含み、前記活性化キュー(340)は1つのキューエントリを含み、前記読
    出/書込キュー(360)は3つのキューエントリを含む、請求項17に記載の
    方法。
  20. 【請求項20】 前記少なくとも1つの動作キュー(340、350、36
    0)の少なくとも1つのキューエントリが利用可能であることを検出するステッ
    プをさらに含み、前記少なくとも1つの基本メモリ動作をキューに入れるステッ
    プは利用可能なキューエントリに対するチェックを行なうステップをさらに含む
    、請求項19に記載の方法。
  21. 【請求項21】 メモリ要求を受取りコンピュータメモリ(70)への前記
    メモリ要求を完了するための、キューに基づくメモリコントローラ(230)で
    あって、 少なくとも1つの基本メモリ動作を保持するよう少なくとも1つのキューエン
    トリを含む少なくとも1つの動作キュー(340、350、360)と、 前記メモリ要求を受取り前記メモリ要求を前記少なくとも1つの基本メモリ動
    作にデコードするよう動作し、さらに、前記少なくとも1つの基本メモリ動作を
    前記少なくとも1つの動作キュー(340、350、360)に記憶するよう動
    作する要求デコーダ(310)と、 前記少なくとも1つの動作キュー(340、350、360)および前記コン
    ピュータメモリ(70)に結合され、前記少なくとも1つの基本メモリ動作を前
    記少なくとも1つの動作キュー(340、350、360)から選択して前記コ
    ンピュータメモリ(70)に送信することにより前記メモリ要求を開始するよう
    動作し、さらに前記選択された少なくとも1つの基本メモリ動作をキューから外
    すよう動作するマルチプレクサ(370)と、 前記少なくとも1つの動作キュー(340、350、360)および前記コン
    ピュータメモリ(70)に結合され制御データを記憶するよう動作する少なくと
    も1つの制御キュー(365)とを含み、前記制御データは前記メモリ(70)
    における前記メモリ要求の完了を制御するよう動作する、キューに基づくメモリ
    コントローラ(230)。
  22. 【請求項22】 前記少なくとも1つの動作キュー(340、350、36
    0)はさらに前記少なくとも1つのキューエントリに対し従属性データを含み、
    前記要求デコーダ(310)は前記従属性データをセットするようさらに動作し
    、さらに前記マルチプレクサ(370)は前記少なくとも1つの基本メモリ動作
    を選択して送信する際に前記従属性データに応答する、請求項21に記載のキュ
    ーに基づくメモリコントローラ(230)。
  23. 【請求項23】 前記従属性データは動作タイミング従属性と動作順序付け
    従属性とを含む、請求項22に記載のキューに基づくメモリコントローラ(23
    0)。
  24. 【請求項24】 前記少なくとも1つの制御キュー(365)および前記少
    なくとも1つの動作キュー(340、350、360)は従属性データ信号を発
    生するようさらに動作し、前記少なくとも1つの動作キュー(340、350、
    360)は、前記従属性データ信号にさらに応答する、請求項23に記載のキュ
    ーに基づくメモリコントローラ(230)。
  25. 【請求項25】 前記少なくとも1つの基本メモリ動作は、プリチャージ、
    活性化および読出/書込を含む、請求項21に記載のキューに基づくメモリコン
    トローラ(230)。
  26. 【請求項26】 前記少なくとも1つのキューは、プリチャージキュー(3
    50)と、活性化キュー(340)と、読出/書込キュー(360)とを含む、
    請求項25に記載のキューに基づくメモリコントローラ(230)。
  27. 【請求項27】 前記プリチャージキュー(350)は1のキュー深さを有
    し、前記活性化キュー(340)は1のキュー深さを有し、前記読出/書込キュ
    ー(360)は3のキュー深さを有する、請求項26に記載のキューに基づくメ
    モリコントローラ(230)。
  28. 【請求項28】 前記要求デコーダ(310)は組合せ論理によって実施さ
    れる、請求項21に記載のキューに基づくメモリコントローラ(230)。
  29. 【請求項29】 前記要求デコーダ(310)は、論理に結合され、前記メ
    モリ要求を少なくとも1つの基本メモリ動作にデコードし前記少なくとも1つの
    基本メモリ動作を前記少なくとも1つのキュー(340、350、360)に記
    憶するよう動作する少なくとも1つのレジスタを含む、請求項21に記載のキュ
    ーに基づくメモリコントローラ(230)。
JP2000587266A 1998-12-04 1999-10-01 キューに基づくメモリコントローラ Withdrawn JP2002532779A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/205,665 US6295586B1 (en) 1998-12-04 1998-12-04 Queue based memory controller
US09/205,665 1998-12-04
PCT/US1999/022997 WO2000034875A1 (en) 1998-12-04 1999-10-01 Queue based memory controller

Publications (1)

Publication Number Publication Date
JP2002532779A true JP2002532779A (ja) 2002-10-02

Family

ID=22763138

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000587266A Withdrawn JP2002532779A (ja) 1998-12-04 1999-10-01 キューに基づくメモリコントローラ

Country Status (6)

Country Link
US (3) US6295586B1 (ja)
EP (1) EP1137995B1 (ja)
JP (1) JP2002532779A (ja)
KR (1) KR20010080682A (ja)
DE (1) DE69904508T2 (ja)
WO (1) WO2000034875A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002189629A (ja) * 2000-08-23 2002-07-05 Nintendo Co Ltd 機能拡張型メモリコントローラを備えるグラフィックス処理システム
JP2006164099A (ja) * 2004-12-10 2006-06-22 Ricoh Co Ltd メモリ制御装置
JP2008521128A (ja) * 2004-11-19 2008-06-19 グージー、ジェームス、ディ. マイクロプロセッサを備えるコンピュータシステムとともに用いられる再構成可能なコアロジックを備えるロジックデバイス

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295586B1 (en) * 1998-12-04 2001-09-25 Advanced Micro Devices, Inc. Queue based memory controller
US6757679B1 (en) * 1999-06-25 2004-06-29 International Business Machines Corporation System for building electronic queue(s) utilizing self organizing units in parallel to permit concurrent queue add and remove operations
TW515949B (en) * 2000-06-08 2003-01-01 Via Tech Inc Method for scheduling run sequence of read and write requests
US6662265B1 (en) * 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Mechanism to track all open pages in a DRAM memory system
US6591349B1 (en) * 2000-08-31 2003-07-08 Hewlett-Packard Development Company, L.P. Mechanism to reorder memory read and write transactions for reduced latency and increased bandwidth
US6622225B1 (en) * 2000-08-31 2003-09-16 Hewlett-Packard Development Company, L.P. System for minimizing memory bank conflicts in a computer system
US6549991B1 (en) * 2000-08-31 2003-04-15 Silicon Integrated Systems Corp. Pipelined SDRAM memory controller to optimize bus utilization
JP3506175B2 (ja) * 2000-10-05 2004-03-15 日本電気株式会社 メモリ制御回路とメモリ制御方法
US6647456B1 (en) * 2001-02-23 2003-11-11 Nvidia Corporation High bandwidth-low latency memory controller
US6694410B1 (en) 2001-04-30 2004-02-17 Lsi Logic Corporation Method and apparatus for loading/storing multiple data sources to common memory unit
US6735677B1 (en) * 2001-04-30 2004-05-11 Lsi Logic Corporation Parameterizable queued memory access system
US7107386B1 (en) 2001-08-08 2006-09-12 Pasternak Solutions, Llc Memory bus arbitration using memory bank readiness
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) * 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) * 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US7149226B2 (en) * 2002-02-01 2006-12-12 Intel Corporation Processing data packets
TW561349B (en) * 2002-03-01 2003-11-11 Via Tech Inc Scheduling method and device of read/write request in control chip
US7149857B2 (en) 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7051175B2 (en) * 2003-01-17 2006-05-23 Hewlett-Packard Development Company, L.P. Techniques for improved transaction processing
US7117520B2 (en) * 2003-02-24 2006-10-03 Thomson Licensing System and method for voice/data transmission over cable networks
US6754726B1 (en) * 2003-03-11 2004-06-22 Inventec Corporation Versatile memory chip programming device and method
US6954387B2 (en) * 2003-07-15 2005-10-11 International Business Machines Corporation Dynamic random access memory with smart refresh scheduler
US7127584B1 (en) * 2003-11-14 2006-10-24 Intel Corporation System and method for dynamic rank specific timing adjustments for double data rate (DDR) components
WO2005059764A1 (en) * 2003-12-09 2005-06-30 Thomson Licensing Memory controller
KR100546403B1 (ko) * 2004-02-19 2006-01-26 삼성전자주식회사 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러
US7363406B2 (en) * 2004-12-08 2008-04-22 Motorola, Inc. Dynamic access scheduling memory controller
US8082396B2 (en) * 2005-04-28 2011-12-20 International Business Machines Corporation Selecting a command to send to memory
US7721011B1 (en) 2005-05-09 2010-05-18 Oracle America, Inc. Method and apparatus for reordering memory accesses to reduce power consumption in computer systems
US20060265485A1 (en) * 2005-05-17 2006-11-23 Chai Sek M Method and apparatus for controlling data transfer in a processing system
US7603492B2 (en) * 2005-09-20 2009-10-13 Motorola, Inc. Automatic generation of streaming data interface circuit
US7496777B2 (en) * 2005-10-12 2009-02-24 Sun Microsystems, Inc. Power throttling in a memory system
US7533212B1 (en) 2005-10-20 2009-05-12 Sun Microsystems, Inc. System memory board subsystem using DRAM with integrated high speed point to point links
US7523282B1 (en) 2005-10-27 2009-04-21 Sun Microsystems, Inc. Clock enable throttling for power savings in a memory subsystem
US7409491B2 (en) * 2005-12-14 2008-08-05 Sun Microsystems, Inc. System memory board subsystem using DRAM with stacked dedicated high speed point to point links
US20070150671A1 (en) * 2005-12-23 2007-06-28 Boston Circuits, Inc. Supporting macro memory instructions
US7673111B2 (en) * 2005-12-23 2010-03-02 Intel Corporation Memory system with both single and consolidated commands
US20080120497A1 (en) * 2006-11-20 2008-05-22 Motorola, Inc. Automated configuration of a processing system using decoupled memory access and computation
US20080282050A1 (en) * 2007-05-07 2008-11-13 On Demand Microelectronics Methods and arrangements for controlling memory operations
US20110161217A1 (en) * 2008-08-14 2011-06-30 Searete Llc Conditionally obfuscating one or more secret entities with respect to one or more billing statements
US20100325333A1 (en) * 2008-10-14 2010-12-23 Texas Instruments Incorporated Method Allowing Processor with Fewer Pins to Use SDRAM
US9285865B2 (en) 2012-06-29 2016-03-15 Oracle International Corporation Dynamic link scaling based on bandwidth utilization
KR20140028618A (ko) 2012-08-29 2014-03-10 삼성전자주식회사 쓰기 페일을 줄이는 메모리 장치, 이를 포함하는 메모리 시스템 및 그 쓰기 방법
US10514855B2 (en) * 2012-12-19 2019-12-24 Hewlett Packard Enterprise Development Lp NVRAM path selection
KR102098248B1 (ko) 2013-06-03 2020-04-07 삼성전자 주식회사 온도에 따라 완화된 타이밍 요건으로 사용되는 메모리 장치 및 이를 이용하는 메모리 콘트롤러
US9281046B2 (en) 2013-10-08 2016-03-08 Advanced Micro Devices, Inc. Data processor with memory controller for high reliability operation and method
US9576637B1 (en) * 2016-05-25 2017-02-21 Advanced Micro Devices, Inc. Fine granularity refresh
US10684969B2 (en) 2016-07-15 2020-06-16 Advanced Micro Devices, Inc. Command arbitration for high speed memory interfaces
US10037150B2 (en) 2016-07-15 2018-07-31 Advanced Micro Devices, Inc. Memory controller with virtual controller mode
US10402120B2 (en) 2016-07-15 2019-09-03 Advanced Micro Devices, Inc. Memory controller arbiter with streak and read/write transaction management
US10679722B2 (en) 2016-08-26 2020-06-09 Sandisk Technologies Llc Storage system with several integrated components and method for use therewith
TWI701554B (zh) * 2018-12-13 2020-08-11 英屬維京群島商鯨鏈先進股份有限公司 適用於雜湊演算法的電路系統
US11226816B2 (en) 2020-02-12 2022-01-18 Samsung Electronics Co., Ltd. Systems and methods for data placement for in-memory-compute
US11960400B2 (en) 2022-04-26 2024-04-16 Cadence Design Systems, Inc. Managing multiple cache memory circuit operations

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4366538A (en) * 1980-10-31 1982-12-28 Honeywell Information Systems Inc. Memory controller with queue control apparatus
US4451880A (en) 1980-10-31 1984-05-29 Honeywell Information Systems Inc. Memory controller with interleaved queuing apparatus
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5649157A (en) * 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
US5625778A (en) * 1995-05-03 1997-04-29 Apple Computer, Inc. Method and apparatus for presenting an access request from a computer system bus to a system resource with reduced latency
US5842038A (en) * 1996-10-10 1998-11-24 Unisys Corporation Optimized input/output memory access request system and method
US5907857A (en) * 1997-04-07 1999-05-25 Opti, Inc. Refresh-ahead and burst refresh preemption technique for managing DRAM in computer system
US6128746A (en) * 1997-08-26 2000-10-03 International Business Machines Corporation Continuously powered mainstore for large memory subsystems
US5948081A (en) 1997-12-22 1999-09-07 Compaq Computer Corporation System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed
US6128749A (en) 1998-11-03 2000-10-03 Intel Corporation Cross-clock domain data transfer method and apparatus
US6295586B1 (en) * 1998-12-04 2001-09-25 Advanced Micro Devices, Inc. Queue based memory controller

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002189629A (ja) * 2000-08-23 2002-07-05 Nintendo Co Ltd 機能拡張型メモリコントローラを備えるグラフィックス処理システム
JP2012089158A (ja) * 2000-08-23 2012-05-10 Nintendo Co Ltd 機能拡張型メモリコントローラを備えるグラフィックス処理システム
JP2008521128A (ja) * 2004-11-19 2008-06-19 グージー、ジェームス、ディ. マイクロプロセッサを備えるコンピュータシステムとともに用いられる再構成可能なコアロジックを備えるロジックデバイス
JP2006164099A (ja) * 2004-12-10 2006-06-22 Ricoh Co Ltd メモリ制御装置

Also Published As

Publication number Publication date
DE69904508D1 (de) 2003-01-23
EP1137995B1 (en) 2002-12-11
DE69904508T2 (de) 2003-11-13
US6496906B1 (en) 2002-12-17
US6295586B1 (en) 2001-09-25
WO2000034875A1 (en) 2000-06-15
EP1137995A1 (en) 2001-10-04
US6393531B1 (en) 2002-05-21
KR20010080682A (ko) 2001-08-22

Similar Documents

Publication Publication Date Title
US6496906B1 (en) Queue based memory controller
US6026464A (en) Memory control system and method utilizing distributed memory controllers for multibank memory
US5729709A (en) Memory controller with burst addressing circuit
JP4782830B2 (ja) 非dramインジケータ及びdramアレイに格納されていないデータにアクセスする方法
US5819105A (en) System in which processor interface snoops first and second level caches in parallel with a memory access by a bus mastering device
KR920010950B1 (ko) 컴퓨터 시스템과 정보 판독 및 데이타 전송방법
US5652856A (en) Memory controller having all DRAM address and control singals provided synchronously from a single device
US5218686A (en) Combined synchronous and asynchronous memory controller
US5537555A (en) Fully pipelined and highly concurrent memory controller
US5623638A (en) Memory control unit with programmable edge generator to minimize delay periods for critical DRAM timing parameters
US5986677A (en) Accelerated graphics port read transaction merging
US6269433B1 (en) Memory controller using queue look-ahead to reduce memory latency
EP0468786A2 (en) Processor which performs memory access in parallel with cache access and method employed thereby
US6026451A (en) System for controlling a dispatch of requested data packets by generating size signals for buffer space availability and preventing a dispatch prior to a data request granted signal asserted
EP0427425A2 (en) Improved paged memory controller
US6594748B1 (en) Methods and structure for pipelined read return control in a shared RAM controller
US6519689B2 (en) Method and system for processing pipelined memory commands
JPH0756813A (ja) データ処理システム及びデータ・ストア方法
JPH07504773A (ja) マルチ幅のメモリ・サブシステムをサポートするためのシステム並びに方法
US6651148B2 (en) High-speed memory controller for pipelining memory read transactions
JP4891405B2 (ja) バリア操作の条件付き伝搬のための方法および装置
JP2949162B2 (ja) 隠れプリチャージ式疑似キャッシュdram
JPH02223091A (ja) コンピュータメモリシステム
US5822768A (en) Dual ported memory for a unified memory architecture
JP2000506301A (ja) 高速コマンド入力を有する簡単化されたクロックドdram

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20061205