JP3235578B2 - メモリアクセス制御方式 - Google Patents

メモリアクセス制御方式

Info

Publication number
JP3235578B2
JP3235578B2 JP36760298A JP36760298A JP3235578B2 JP 3235578 B2 JP3235578 B2 JP 3235578B2 JP 36760298 A JP36760298 A JP 36760298A JP 36760298 A JP36760298 A JP 36760298A JP 3235578 B2 JP3235578 B2 JP 3235578B2
Authority
JP
Japan
Prior art keywords
memory
control method
arbitration
access control
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP36760298A
Other languages
English (en)
Other versions
JP2000194601A (ja
Inventor
晋樹 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP36760298A priority Critical patent/JP3235578B2/ja
Publication of JP2000194601A publication Critical patent/JP2000194601A/ja
Application granted granted Critical
Publication of JP3235578B2 publication Critical patent/JP3235578B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はCPUやI/Oデバ
イスの要求に応じてメモリにアクセスするメモリアクセ
ス制御方式に関する。
【0002】
【従来の技術】近年、コンピュータ・システムの処理速
度の高速化手法の一つとして、プロセッサの動作周波数
の高速化や、メイン・メモリやI/Oとプロセッサを繋
ぐシステム・バスの動作周波数の高速化などが行われて
いる。
【0003】これに伴い、処理速度の遅いメイン・メモ
リもDRAM(Dynamic Random Access Memory)からED
O DRAM(Extended Data Out DRAM)、そして現在で
はSDRAM(Synchronous DRAM)やRDRAM(Rambus
DRAM)(商標登録番号第3053413号)へとより高
速にメモリ・アクセスが可能なものへと変化している。
【0004】なお、SDRAMの規格は、JEDEC規
格21−Cで定められている。
【0005】
【発明が解決しようとする課題】しかし、依然としてプ
ロセッサ処理速度とメモリ処理速度間には大きなギャッ
プが存在しており、コンピュータ・システムの処理速度
向上には、メモリ・アクセスの高速化が必須条件となっ
ている。
【0006】例えば、特開平1−231145号公報で
は、メモリ・アクセスの際、アクセスすべきメモリ・モ
ジュールがビジーの状態である場合はビジー状態でない
モジュールに対して先にアクセスを行うことによりメモ
リ・アクセスの高速化を図っている。
【0007】しかし、従来のこの技術ではモジュールの
ビジー検出のための方法及びアクセス順序変更の方法な
どが明記されておらず、メモリ・アクセスに対する順序
変更の方法によっては、最も早く発行されたメモリ・リ
クエストが順序変更により待たされ続ける可能性もあ
り、実現性と具体性に欠ける。
【0008】また、アクセス順序変更においても、近年
のシステムでは、必ずIn-Orderでのアクセス順を要求す
るもの、Out-of-Orderでのアクセスを許すもの等、一様
にアクセス順序を変更することも出来ない状況がある。
【0009】このように多くのプロセッサを搭載するマ
ルチ・プロセッサ・システムや、I/Oからのメモリア
クセスが多発する近年のコンピュータ・システムにおい
てはメモリ・アクセスの高速化を妨げる要因が多様化し
ており、新しい高速化手法が必要とされている。
【0010】本発明は、メイン・メモリにSDRAMの
ようなシステム・クロックに同期したメモリ・モジュー
ルを採用するマルチ・プロセッサ・コンピュータ・シス
テムにおいて、プロセッサやI/OからのDMAその他
のメイン・メモリに対するアクセスに関して、各メモリ
・モジュールのバンク・ビジー状況の管理方法と、メモ
リ・アクセス順序の制御方式、インターリーブ化などの
最適化方式を中心に、メモリのスループットを向上させ
る方式を提供する。
【0011】
【課題を解決するための手段】本発明によるメモリアク
セス制御方式は、メモリへのアクセスを制御するメモリ
アクセス制御方式において、メモリ空間を、大グループ
に分割し、該大グループを小グループに分割し、前記メ
モリへの複数のアクセス要求を、大グループ間で第1の
調停をする第1の調停手段と、該第1の調停手段による
調停により選択された前記大グループ内の複数のアクセ
ス要求を前記小グループ間で第2の調停をする第2の調
停手段と、を備え、前記第2の調停手段により選択され
た小グループ内のアドレスへアクセスすることを特徴と
する。
【0012】また、本発明によるメモリアクセス制御方
式は、上記のメモリアクセス制御方式において、前記第
1の調停手段は、データ線のオーナーチェンジ頻度が少
なくなるように前記第1の調停をすることを特徴とす
る。
【0013】更に、本発明によるメモリアクセス制御方
式は、上記のメモリアクセス制御方式において、前記第
1の調停手段は、データ線のオーナーチェンジに要する
時間が少なくなるように前記第1の調停をすることを特
徴とする。
【0014】更に、本発明によるメモリアクセス制御方
式は、上記のメモリアクセス制御方式において、前記第
2の調停手段は、前記第1の調停手段による調停により
選択された前記大グループ内に互いに異なった小グルー
プの複数の小グループがあるときに、異なった小グルー
プが連続するように前記第2の調停をすることを特徴と
する。
【0015】更に、本発明によるメモリアクセス制御方
式は、上記のメモリ制御方式において、アクセスが所定
の回数待たされている最先の前記アクセス要求を検出す
る手段と、前記第2の調停手段により選択された小グル
ープのアドレスへのアクセスに優先させて、前記アクセ
スが所定の時間待たされている最先のアクセス要求のア
クセス先へアクセスする手段と、を更に備えることを特
徴とする。
【0016】更に、本発明によるメモリアクセス制御方
式は、上記のメモリ制御方式において、外部から設定し
た前記所定の回数を保持する手段を更に備えることを特
徴とする。
【0017】更に、本発明によるメモリアクセス制御方
式は、上記のメモリアクセス制御方式において、前記複
数のアクセス要求を前記小グループ毎に蓄積する第1の
待ち行列を更に備えることを特徴とする。
【0018】更に、本発明によるメモリアクセス制御方
式は、上記のメモリアクセス制御方式において、アクセ
ス順序の変更を禁止する前記複数のアクセス要求を蓄積
する第2の待ち行列と、該第2の待ち行列から前記第1
の待ち行列への前記アクセス順序の変更を禁止する複数
のアクセス要求の転送を制御する手段を更に備えること
を特徴とする。
【0019】更に、本発明によるメモリアクセス制御方
式は、上記のメモリアクセス制御方式において、前記メ
モリ空間はデータ線のオーナーチェンジが少なくなるよ
うに複数組に分割された上で、前記大グループに分割さ
れていることを特徴とする。
【0020】更に、本発明によるメモリアクセス制御方
式は、上記のメモリアクセス制御方式において、1又は
2以上の前記大グループが他の1又は2以上の前記大グ
ループと異なった位相のクロック位相で駆動されること
を特徴とする。
【0021】
【発明の実施の形態】本発明によるメモリ制御方式は、
SDRAMをメイン・メモリとして採用するコンピュー
タ・システムにおいて、プロセッサによるアクセス、I
/O DMAその他のメイン・メモリに対するアクセス
に関して、各メモリ・モジュールのバンク・ビジー状況
の管理と、メモリ・アクセス順序制御、インターリーブ
化などの最適化方式を用い、メモリのスループットを向
上させるものである。
【0022】複数のバンクを持つタイプのメモリ・モジ
ュールを複数使用してメイン・メモリを構成する場合、
ページオープンとして同一バンクへ連続して複数のアク
セスを行うより、異なった行アドレス(ROW)、異な
ったバンクに対するアクセスを連続させた方が動作の並
列度を上げやすく、結果として高バンド幅を維持しやす
い。
【0023】本発明はこのスキームを基本原理とし、D
IMM(Double Inline Memory Module)には複数のバン
クがあるが、1バンクを1Wayとして可能な限りのメ
モリ・アクセス多重並列動作を目指した多Wayのイン
ターリーブ方式と、その実現に必要なリクエスト順序制
御方式を提供する。
【0024】図10に単一のDIMMにアクセスする際
の、タイミング図を示す。図10(a)に示すように、
リードコマンドとコラムアドレスをDIMMに与えてか
ら2T(Tは、1クロック周期)後にデータのアクセス
が可能となる。図10(b)に示すように、単一のDI
MMの同一のバンクに連続してアクセスする場合、オー
トプリチャージが終了してから次のコマンドとアドレス
をDIMMに与えるので、4Tだけの非アクセス時間が
生じてしまう。図10(c)に示すように、単一のDI
MMの異なったバンクに連続してアクセス(バンク間で
インターリーブしてアクセス)すれば、非アクセス時間
は生じない。図10(d)も、単一のDIMMの異なっ
たバンクに連続してアクセスすれば、非アクセス時間が
生じないことを示す。
【0025】プロセッサやI/Oからのメイン・メモリ
・アクセスの際は、そのアドレスと実際に実装されてい
るDIMMのタイプや容量から簡単な変換によって、ア
クセスのターゲットとなるDIMMのロケーションを示
すメモリグループ、バンクを算出する。
【0026】図1を参照すると、メモリ・アクセス要求
はキュー163に保持され、インターリーブ管理のため
のCS−Bank Registrationテーブル
165にリクエスト要求を示すbitを立てる。
【0027】一方、Bank Busyテーブル166
は、DIMMに対するアクセスを開始すると該当するb
itが立てられ、データの受信、SDRAMへのプリチ
ャージが完了するとbitが消されるといった、現在の
DIMMのバンク・ビジー状況を示すテーブルである。
このBank Busyテーブル166は発行制御部1
64の内部で制御する。
【0028】CS−Bank Registratio
nテーブル16とBank Busyテーブル166
の論理反転を論理積したIssuable Reque
stテーブル167は、結果としてバンク・ビジーでは
ないアクセス要求を示すテーブル、つまり発行可能なリ
クエストを示すテーブルとなる。
【0029】このテーブルよりDIMM間のアービトレ
ーション(第1の調停)及びラウンド・ロビンなどのア
ービトレーション(第2の調停)を行い、最終的にDI
MMに発行するアドレスを決定する。
【0030】このテーブルを用いた管理法により、多W
ayのインターリーブ制御が可能となる。
【0031】なおこのアクセス順序最適化の際、最も早
く発行されたリクエストが待たされ続けることのないよ
う、最も古いリクエストがWait Periodレジ
スタ174で設定される期間待たされた場合は、アービ
トレーション結果を用いず、古いリクエストが優先的に
発行される。
【0032】また、上記ではアービトレーションにより
メモリへのアクセス順序の変更が発生するが、これを許
さない状況においては、In−Order/Overf
low FIFO193(図5参照)を用いて、それ以
前のメモリ・アクセスが全てDIMMに対して発行し終
えるまでバンク・キュー163にセットしない制御を行
う。
【0033】以上のハードウェア、またはハードウェア
に組み入られたアルゴリズムにより、メモリ・アクセス
の多Wayインターリーブを行うことによりメモリに対
するスループットの向上が可能となる。
【0034】さらに、Wait Periodレジスタ
174により、スループットの向上とレイテンシの向上
とのトレードオフをレジスタ設定によって行うことが出
来る。
【0035】図2に実施形態としてシステム全体の構成
を示す。
【0036】システム・バス600には、複数のプロセ
ッサ(以下、「CPU」という。)710,720,7
30と、システム・バス600とメイン・メモリ300
間のアドレス系信号を制御するアドレス制御チップ(以
下、「ADC」という。)100とシステム・バス60
0とメイン・メモリ300間のデータ系信号を制御する
データ制御チップ(以下、「DTC」という。)200
とが接続され、I/Oデバイス500を制御するI/O
制御チップ(以下、「IOC」という。)400はAD
C100、DTC200に接続され、マルチ・プロセッ
サ・システムを構成している。
【0037】ADC100はCPU710〜730から
のメモリ・アクセスと、IOC400を介してアクセス
されるI/Oデバイス500からのDMAのリクエスト
・アドレスを受信し、メイン・メモリ300へのアクセ
スを行う。DTC200はCPU710〜730及びI
/Oデバイス500からのライト・データと、メモリか
らのレスポンス・データを受信する。
【0038】なお、近年のシステム・バス信号線の増加
に対応するため、本実施形態ではアドレス系信号とデー
タ系信号の制御に別のチップを用いているが、信号本数
に余裕があるのであればADC100とDTC200は
統合しても構わない。IOC400についても同様であ
る。
【0039】図3はADC100、DTC200及びメ
イン・メモリ300を構成するDIMMとの接続例を示
したものである。
【0040】メイン・メモリ300に対するリクエスト
はメモリ・グループ・セレクト制御部190を介して、
そのリクエスト・アドレスからメモリ・グループ1制御
部160またはメモリ・グループ2制御部180へ転送
される。メモリ・グループ1制御部160及びメモリ・
グループ2制御部180から出力されたDIMMアドレ
ス175,176,195,196は、複数のメモリ・デ
ータ・バッファ・チップ(以下、「MDB」という。)
110〜113で受信され、アドレス信号130〜13
7を介して各DIMM120へ送られる。
【0041】ライト・データはDTC200からデータ
・インタフェース150を介してMDB110〜113
へ送られ、データ線140〜147を介してDIMM1
20に送信される。
【0042】リード・リプライは逆にDIMM120か
らMDB110〜113へ転送され、データ・インタフ
ェースを介してDTC200へ送られる。
【0043】MDB110〜113は単なるライト/リ
ード・データバッファとして機能し、特に特徴を持たな
いので本発明では詳しく説明しない。従って、ピン数に
余裕があればレイテンシ向上のためにMDBを用いない
ことも可能である。なお、MDB1〜4の接続関係の構
成例を図4に示す。メモリ・制御グループからのアドレ
ス175,176はF/Fを介してDIMMへのアドレス信
号130,131へ出力される。DTCからのデータ線
150はバッファを介してDIMMのデータ線140,
141と接続される。
【0044】本実施形態では、データ64bitとEC
C8bitを格納する72bitの標準的なSDRAM
で構成されたDIMMを用いており、一度に読み出せる
サイズとして4枚のDIMM120を1Blockと定
義し、32byte(64bit×4枚/8)の処理を
行う。なお、SDRAMのバースト長を設定して、より
多くのデータを一度に処理することも可能であり、本実
施例はバースト長が2であることを想定している。
【0045】また、本発明の基本原理はメモリ・アクセ
スを多重並列動作させることにあるため、ADC/DT
C(100,200)とDIMM120とはこの基本原
理を考慮して接続する必要がある。
【0046】図3を参照してADC/DTC(100,
200)とMDB110〜113、DIMM120との
接続について説明する。
【0047】1Blockは4枚のDIMM120で構
成され、例えば、DIMM01−A,DIMM01−
B,DIMM01−C,DIMM01−Dの4枚でDa
ta256bit + ECC 32bitを構成す
る。
【0048】DIMM01−Aにはアドレス線130が
接続され、データ線140のMDB1(符号110)に
接続される。同様にDIMM01−Bにはアドレス線1
30、データ線142のMDB2(符号111)、DI
MM01−Cはアドレス線134、データ線144のM
DB3(符号112)、DIMM01−Dはアドレス線
134、データ線146のMDB4(符号113)に接
続される。なお、アドレス線130とアドレス線134
にはADC100のMemGroup1制御部160か
ら入力した同一のアドレスが現れる。
【0049】このようにDIMMナンバーに付けられた
A〜DのデータはMDB1〜MDB4に対応している。
【0050】同様に01から08までの8Block分
のDIMMが図3に示すとおり接続される。この接続に
おいては、DIMMナンバーの奇数と偶数ではデータ線
を共用していない。
【0051】つまり、CPU710〜730からの命令
フェッチやデータ・リードにおける、あるメモリ空間の
近傍に対する連続したメモリ・アクセスが発生した場合
にも、出来るだけDIMMのデータ線のChange
Ownerが発生しない様考慮した接続になっている。
【0052】アドレス側の並列度向上によるスループッ
トの改善より、データ側のコンフリクトの方が致命的な
遅延をもたらす要因となる。
【0053】従って、ADC100側でこの接続を考慮
したDIMMアクセス順の最適化を行うことで、データ
線のOwner Changeやコンフリクトを避ける
ことが可能になる。
【0054】また、一般的にDIMMに与えられるクロ
ックは、近年の標準的なPC100規格などのSDRA
Mでは100MHzである。一方、ADCやMDBとい
った制御チップのインタフェース部はその2倍の200
MHzで動作させることが可能である。
【0055】この動作周波数差を利用して、データ線を
共用するDIMM01,DIMM05の100MHzク
ロックとDIMM03,DIMM07の100MHzク
ロックの位相を180度ずらすことによりデータ線14
0のChange Ownerのためのサイクルを半分
に縮めることが可能となる。
【0056】図11に異なったDIMMにアクセスが移
行する場合のタイミングチャートを示す。図11(a)
に示すように、通常は、アクセスするDIMMを変更す
る場合、データ線に1T(符号1101で示す)の間隔
が空くようにタイミング制御しなければならない。とこ
ろが、図11(b)に示すように、位相が180度ずれ
た(逆位相の)クロックのグループに分割することによ
り、アクセスするDIMMを変更する場合、データ間隔
を0.5T(符号1102で示す)に短縮することがで
きる。
【0057】図3中の網掛け部のDIMMはその他のD
IMMに対し180度位相のずらしたクロックを供給
し、アドレス線、データ線に関しても180度位相のず
らしたタイミングで使用される。
【0058】図5はADC100内のメモリに対するリ
クエストのインターリーブ化、アクセス順序の最適化を
行う回路を示したものである。
【0059】メモリ・グループ・セレクト制御部190
は、CPU710〜730からのメモリアクセスとIO
C400からのDMAをシリアライズ化し、どのDIM
Mへアクセスを行うかを算出するシリアライズ回路19
1と、メモリ・リクエストの情報を登録するnエントリ
の容量を持つMemory Queue 192 と、
リクエストの発行順序変更を許さないIn−Order
のリクエスト、またはこれ以下のキュー(MemGro
upQueue161、BankQueue163)が
フル状態の場合に格納されるnエントリの容量を持つI
n−Order/OverFlow FIFO 193
と、そのFIFOを制御するFIFO制御部194か
ら構成される。
【0060】各キュー、FIFOは図7に示す内容が登
録される。
【0061】メモリ・キュー192にはコマンドCM
D、DIMMの行アドレスROW、列アドレスCOL、
リプライの際のIDとキューのエントリの有効/有効を
示すVが格納される。
【0062】In−Order/OverFlow F
IFO193にはDIMMナンバーDN、バンク・ナン
バーBANK、メモリ・キュー番号MQENT、In−
Order指示を示すORDRが格納される。
【0063】メモリ・グループ1制御部160又はメモ
リ・グループ2制御部180は、追い越し制御を可能と
するmエントリの容量を持つメモリ・グループ・キュー
161と、キューの制御部162、8個のDIMMのバ
ンク数に対応して分けられたバンク・キュー163、リ
クエストの発行順序を制御する発行制御部164によっ
て構成される。本実施形態では実装するDIMMの最大
バンク数は8とする。
【0064】メモリ・グループ・キュー161にはIn
−Order/OverFlowFIFO193と同様
に、DIMMナンバーDN、バンク・ナンバーBAN
K、メモリ・キュー番号MQENTが格納される。
【0065】メモリ・リクエストはIn−Order/
OverFlow FIFO193にリクエストが存在
する場合はそのFIFOから、それ以外はシリアライズ
回路191から、メモリ・グループ1制御部160また
はメモリ・グループ2制御部180へ転送される。
【0066】メモリ・グループ1制御部160はDIM
Mナンバーが奇数であるDIMMに対するアクセスを制
御し、メモリ・グループ2制御部180はDIMMナン
バーが偶数であるDIMMに対するアクセスを制御す
る。
【0067】DIMMナンバーが奇数と偶数ではデータ
線の共用がないためメモリ・グループ・セレクト制御部
190から各メモリ・グループ制御部160又は180
へ分岐したメモリ・リクエストは以降、完全に独立して
並列処理される。
【0068】図1に、バンク・キュー163と発行制御
部164の詳細な構成を示す。
【0069】バンク・キュー163は2個のエントリを
もつキューであって、DIMMの1Bankに対応して
おり、メモリ・キュー192のエントリ番号MQENT
とDIMMナンバーDNを格納し、最大8バンクをサポ
ートするため同様のものが他に7個存在する。なお本実
施例ではバンク・キュー163は2個としたが、システ
ムに合わせ、何個実装しても構わない。
【0070】発行制御部164は、バンク・キュー16
3にリクエストが登録される際、DIMMナンバーとバ
ンク・ナンバーから該当する部位にbitが立つCS−
Bankレジストレーション・テーブル165と現在の
全DIMMのバンク・ビジー状況を示すBank Bu
syテーブル166と、CS−Bankレジストレーシ
ョン・テーブルとBank Busyテーブルの論理反
転の論理積であり、バンク・ビジーではないアクセス要
求を示すテーブルIssueable Request
テーブル167と、バンク・キューへ登録された順序を
保持する16エントリの容量を持つDimm Numb
er Orderキュー168とそのキュー168を管
理制御するDIMM・ナンバー・オーダー・キュー制御
部(以下、「DNOQ制御部」という。)169と、最
も古いリクエストの待ち許容時間を設定するWait
Periodレジスタ174と、4×8マトリックスの
Issueable Requestテーブル167に
対してアービトレーションを行い、メモリへ発行するリ
クエストを決定するアービター(第1と第2の調停手
段)170と、バンク・キュー163内のメモリ・キュ
ー・エントリ番号MQENTをDIMMの行アドレスR
OWへ変換するQENT−ROW変換部171と、RO
Wを発行した後、列アドレスを発行制御するCOLアド
レス制御部172と、DIMMへのリクエスト発行前に
タイミング調整を行う発行タイミング制御部173から
構成される。MDBへのアドレス線175,176は、
位相の違うクロックで動作するDIMMを考慮して、そ
れぞれのクロック位相に合わせたアドレス線である。
【0071】なお、これらは片方(DIMMナンバーが
奇数)のメモリ・グループを制御するために構成されて
おり、同様のもの(DIMMナンバーが偶数の制御部)
が他に一つ存在する。
【0072】次に、図5の回路の動作について、同図な
どを参照して説明する。
【0073】CPU710〜730によるアクセスやI
OC400によるDMAといったメモリに対するリクエ
ストはシリアライズ回路191において順序化され、同
時にそのアドレスからどのDIMMに対するアクセスか
を算出する。
【0074】例えば、図6に示す様にアドレスをある場
所で区切り、バンク、DIMMナンバー、ROWアドレ
ス、COLアドレスを決定しても構わない。但し、この
区切り位置は実装されるDIMMのタイプ(Bank
数)、総容量等に依存するため、レジスタなどを設けて
区切り位置や算出法を動的に変化させる。また、もちろ
ん本発明のスキームに準じた並列アクセスを考慮した算
出方法を採る必要がある訳だが、本発明において算出法
は本質ではないためここでは詳しく論じない。
【0075】シリアライズ回路191を通ったメモリ・
リクエストは全て、nエントリ(nは自然数)の容量を
持つメモリ・キュー192へ格納される。このキューは
図7に示すとおりコマンド、行アドレス、列アドレス、
リクエストIDが格納され、以後の処理においては、メ
モリ・キュー格納時のエントリ番号MQENTを持ち回
り、実際にDIMMに対してリクエストを発行する際に
MQENTを介して参照される。
【0076】メモリ・リクエストは、DIMMナンバー
が奇数であればメモリ・グループ1160、偶数であれ
ばメモリ・グループ2 180 へ振り分けられ、メモ
リ・グループ・キュー161へ図7で示すようにDIM
Mナンバー(DN)、バンク(BANK)、メモリ・キ
ュー・エントリ番号(MEQNT)が格納される。
【0077】メモリ・リクエストにはロック処理など、
複数のCPU間排他制御のためのセマフォ管理に関する
Read−Write−Read等の一連のシーケンス
など、アクセス順序の変更を許さないものがある。一般
的にこのような状況の場合、CPU710〜730はロ
ック、もしくはIn−Orderでの処理を望むリクエ
ストであることを、信号線やリクエスト・コマンドなど
を用いて明示的に示す。
【0078】In−Orderのメモリ・リクエストで
あることが検知されると、そのメモリ・リクエストはI
n−Order/Over Flow FIFO193
へ図7に示すDIMMナンバー(DN)、バンク(BA
NK)、メモリ・キュー・エントリ番号(MQENT)
とIn−Orderリクエストであることを示す1をセ
ットされたオーダー指示(ORDR)を格納する。
【0079】また、その名の通り、In−Order/
Over Flow FIFO193は、メモリ・グル
ープ・キュー161がフルの状態においても一時的な格
納場所として用いられ、この場合はオーダー指示(OR
DR)はセットされない。
【0080】一度In−Order/Over Flo
w FIFO193にリクエストが格納されると、シリ
アライズ回路191からの後続の如何なるリクエストも
In−Order/Over Flow FIFO19
3へ貯められ、メモリ・グループ制御部160及び18
0へのルートはIn−Order/Over Flow
FIFO193からのもののみとなり、決してリクエ
ストの追い越しを許さない。
【0081】FIFO制御部194はIn−Order
/Over Flow FIFO193の先頭のリクエ
ストとメモリ・グループ制御部160及び180の全て
のキュー161、163を監視しており、FIFO19
3先頭のリクエストにORDR bitがセットされて
いる場合は、メモリ・グループ制御部160及び180
内の全てのバンク・キュー161、163が空になるま
で、メモリ・リクエストをメモリ・グループ制御部16
0及び180へ転送するのを抑止する。
【0082】メモリ・グループ制御部160及び180
内の全てのバンク・キュー161、163が空になる
と、先頭のIn−Orderリクエストのみを転送し、
最終的にDIMMに対してIn−Orderリクエスト
が発行されたのを確認してから転送抑止を解除する。
【0083】これによりIn−Orderリクエストは
1発ずつシリアルに発行されるため、発行順序の変更を
防ぐことが可能である。
【0084】ORDR bitがセットされていない、
メモリ・グループ・キュー161のフルが原因で格納さ
れたリクエストは特に抑止されず、メモリ・グループ制
御部160又は180へ転送される。
【0085】メモリ・グループ・キュー161はmエン
トリ(mは自然数)のキューであり、DIMM番号(D
N)が奇数/偶数に振り分けられたリクエストが登録さ
れ、メモリ・グループ・キュー161の内容は、バンク
番号によりさらに8個あるバンク・キュー部163の一
つへ転送される。
【0086】バンク・キュー部163はサポートするD
IMMの最大バンク数と同じ分だけ用意する必要があ
る。実施形態ではバンク8個のDIMMをサポートして
いる。
【0087】メモリー・グループ・キュー161は比較
的エントリ数の小さいバンク・キューの詰まりによっ
て、リクエスト転送が滞らないよう、メモリ・グループ
・キュー(MGQ)制御部162によってリクエストの
追い越し制御が行われる。なお、ここでいうメモリ・グ
ループ・キュー161は追い越し読み出し可能なキュー
である。
【0088】図1にDIMMナンバー奇数側のメモリ・
グループ1制御部160の詳細を示す。なお、DIMM
ナンバー偶数側のメモリ・グループ2制御部180も同
様である。
【0089】バンク・キュー163は2エントリのキュ
ーで、メモリ・キュー・エントリ番号(MQENT)、
DIMMナンバー(DN)が格納される。この2個のエ
ントリ間に発行の際の優先順はなくフラットな関係であ
る。
【0090】バンク・キュー163にリクエストが登録
される際は、8バンク×2エントリ=16エントリの容
量を持つDIMMナンバー・オーダー・キュー168に
バンク・キュー163へセットされた順番にDIMMナ
ンバー(DN)とバンク番号(BANK)が登録され
る。また、CS−Bankレジストレーション・テーブ
ル165にはDIMMナンバー(DN)とバンク番号
(BANK)を示すビットを立て、リクエストの存在を
示す。
【0091】バンク・ビジー・テーブル166は現在の
各DIMM、各バンクのビジー状況を示すテーブルであ
る。DIMMに対し、ROWアドレスを発行の際にビジ
ーを示す1がセットされ、その後COLアドレス発行、
レスポンス・データ受信、オートプリチャージ完了に至
るまでセットされ続ける。
【0092】Issueableリクエスト・テーブル
167はCS−Bankレジストレーション・テーブル
とバンク・ビジー・テーブルの論理反転との論理積を示
すテーブルである。このテーブルは、現在バンクがビジ
ーでないアクセス可能なDIMMを示している。実際の
DIMMへ発行するリクエストの決定は、Issuea
bleリクエスト・テーブル167と、DIMMナンバ
ー・オーダー・キューを制御するDNOQ制御部169
間とのアービトレーションによってなされる。
【0093】アービター170は、DIMMナンバー4
行とバンク8列の32の要素を持つマトリックス・テー
ブルであるIssueableリクエスト・テーブル1
67に対するアービトレーションを行う。
【0094】アービトレーション・ルールはまず、DI
MMナンバーを示す行方向から行われ、図3で示すDI
MM120とADC100との接続を考慮し、図8で示
すルールが用いられる。
【0095】優先順位の一番高い、現在のDIMMナン
バー・ポインタと同一のDIMMナンバーは、同一のD
IMMで、バンクが異なっていることを示している。こ
のパタンは同じDIMMへのアクセスであることからデ
ータ線のChange Ownerも必要なく、最も効
率的に並列度を上げることが可能である。
【0096】次に優先度の高い異位相クロックのDIM
Mは、データ線のChange Ownerに要する期
間が半クロックで済むことから、同一アドレス線を共有
するDIMMより優先度が高い。
【0097】以上のアービトレーション・ルールにより
DIMMにアクセスすべきリクエストを含むDIMMナ
ンバーが決定され、さらに発行バンクに対するラウンド
・ロビンによるアービトレーションが行われる。
【0098】しかしながら、リクエスト発行の全てをア
ービトレーションに依存してしまうと、CPU710〜
730やIOC400から、本来時間的に早い時期に発
行されたリクエストが、状況によっては長時間後回しに
される可能性がある。そこで、DNOQ制御部169に
よって、ある程度発行順序の重み付けを行う。
【0099】DNOQ制御部169は、図9に示される
ように、バンク・キューに登録された順序を保持してい
るDIMM・ナンバー・オーダー・キューから、実際に
DIMMに発行されたリクエストを消去すると共に、常
にバンク・キュー登録順を維持する。
【0100】また、DIMM・ナンバー・オーダー・キ
ューに登録された最も古いリクエストに関して、アービ
トレーション毎に値をカウントアップさせるカウンター
を持ち、最も古いリクエストが何回アービトレーション
に負けたか、つまりリクエスト発行をどれほど待たされ
ているかをカウントする。
【0101】最も古いリクエストがある回数(図の例で
は3回)待たされると、アービターは図8のアービトレ
ーション・ルールを無視し、DNOQ制御部169が指
示する最も古いリクエストを発行リクエストとして決定
する。
【0102】以上の制御により最も古いリクエストの待
ち許容時間を設定するレジスタであるWait Per
iod Register174を設けることにより、
スループット向上のためのリクエス順序最適化とレイテ
ンシの向上化の両面に対するトレード・オフをレジスタ
で設定させることが可能となる。
【0103】アービターで決定されたメモリ・リクエス
トにより、MQENT−ROW変換部171でキュー・
エントリ番号から、追い越し読み出し可能なメモリ・キ
ュー192のキュー・エントリ内を参照し、コマンド、
ROWアドレスを得て、発行タイミング制御部173
で、各DIMMへのリクエスト発行の周波数変換などを
行い、まずDIMMにROWアドレスが発行される。同
時にCOLアドレス制御部172へROW発行が通知さ
れるとメモリ・キュー192を参照しCOLアドレスを
得、適当なタイミングでDIMMに対しCOLアドレス
を発行する。
【0104】
【発明の効果】以上説明したように、本発明によれば以
下の効果が奏される。
【0105】第一の効果は、SDRAMを用いたDIM
Mに対するスループットを向上させることが可能であ
る。
【0106】その理由は、DIMMを効果的に結線しそ
の接続構造に特化した制御と、DIMMのバンクによる
多Wayのインターリーブ制御を行っていることにあ
る。
【0107】さらに、半数のDIMMを位相の異なるク
ロックで駆動することにより、データ線のOwner
Changeのための期間を半減させていることも挙げ
られる。
【0108】第二の効果は、スループット向上と、レイ
テンシ向上の関係をレジスタ設定によりトレードオフが
可能となっていることである。
【0109】その理由は、リクエスト順序最適化のアー
ビトレーション・ルールと、リクエスト待ち時間許容レ
ジスタへの設定値によるリクエスト順序優先といった両
面からの制御により、この2要素に対する重み付けを可
能にしていることにある。
【図面の簡単な説明】
【図1】図5のバンク・キュー163と発行制御部16
4の構成を示すブロック図である。
【図2】本発明によるメモリアクセス制御方式及び該方
式を利用するCPU、I/ODeviceなどを含むブ
ロック図である。
【図3】本発明によるメモリアクセス制御方式の構成を
示すブロック図である。
【図4】図3のMDB1〜4の構成例を示す回路図であ
る。
【図5】図3のアドレス制御チップ(ADC)の構成を
示すブロック図である。
【図6】本発明の実施形態によるアドレスをバンク、D
IMMナンバー、ROWアドレス、COLアドレスに分
割した図である。
【図7】図5のメモリ・グループ・キュー161、メモ
リ・キュー192及びイン・オーダー/オーバーフロー
FIFOが記憶する内容を示す図である。
【図8】図1のアービタ170の動作例を示す図であ
る。
【図9】図1のアービタ170の別の動作例を示す図で
ある。
【図10】単一のDIMMの動作タイミングチャートで
ある。
【図11】複数のDIMMの動作タイミングチャートで
ある。
【符号の説明】 100 アドレス制御チップ(ADC) 163 Bank Queue 167 Issuable Request Table 170 アービタ 193 In-order/Overflow FIFO 200 データ制御チップ(DTC 300 メインメモリ 400 I/Oコントローラ(IOC) 500 I/O Device 600 システムバス 710、720、730 CPU
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平9−282223(JP,A) 特開 平11−24984(JP,A) 特開 昭60−120449(JP,A) 特開 平4−237347(JP,A) 特開 平4−54544(JP,A) 特開 平8−272672(JP,A) 特開 平4−190435(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 - 12/06 G06F 13/16 - 13/18

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】 メモリへのアクセスを制御するメモリア
    クセス制御方式において、 メモリ空間を、メモリモジュール毎の大グループに分割
    し、 該大グループをバンク毎の小グループに分割し、 前記メモリへの複数のアクセス要求を、大グループ間で
    第1の調停をする第1の調停手段と、 該第1の調停手段による調停により選択された前記大グ
    ループ内の複数のアクセス要求を前記小グループ間で第
    2の調停をする第2の調停手段と、 を備え、前記第2の調停手段により選択された小グルー
    プ内のアドレスへアクセスすることを特徴とするメモリ
    アクセス制御方式。
  2. 【請求項2】 請求項1に記載のメモリアクセス制御方
    式において、前記第1の調停手段は、メモリに接続され
    データ線を使用するメモリモジュールの変更の頻度が
    少なくなるように前記第1の調停をすることを特徴とす
    るメモリアクセス制御方式。
  3. 【請求項3】 請求項1又は2に記載のメモリアクセス
    制御方式において、前記第1の調停手段は、メモリに接
    続されるデータ線を使用するメモリモジュールの変更
    要する時間が少なくなるように前記第1の調停をするこ
    とを特徴とするメモリアクセス制御方式。
  4. 【請求項4】 請求項1乃至3のいずれか1項に記載の
    メモリアクセス制御方式において、前記第2の調停手段
    は、前記第1の調停手段による調停により選択された前
    記大グループ内に互いに異なった小グループの複数の小
    グループがあるときに、異なった小グループが連続する
    ように前記第2の調停をすることを特徴とするメモリア
    クセス制御方式。
  5. 【請求項5】 請求項1乃至4のいずれか1項に記載の
    メモリアクセス制御方式において、 アクセスが所定の回数待たされている最先の前記アクセ
    ス要求を検出する手段と、 前記第2の調停手段により選択された小グループのアド
    レスへのアクセスに優先させて、前記アクセスが所定の
    時間待たされている最先のアクセス要求のアクセス先へ
    アクセスする手段と、を更に備えることを特徴とするメ
    モリアクセス制御方式。
  6. 【請求項6】 請求項5に記載のメモリアクセス制御方
    式において、外部から設定した前記所定の回数を保持す
    る手段を更に備えることを特徴とするメモリアクセス制
    御方式。
  7. 【請求項7】 請求項1乃至6のいずれか1項に記載の
    メモリアクセス制御方式において、前記複数のアクセス
    要求を前記小グループ毎に蓄積する第1の待ち行列を更
    に備えることを特徴とするメモリアクセス制御方式。
  8. 【請求項8】 請求項7に記載のメモリアクセス制御方
    式において、アクセス順序の変更を禁止する前記複数の
    アクセス要求を蓄積する第2の待ち行列と、該第2の待
    ち行列から前記第1の待ち行列への前記アクセス順序の
    変更を禁止する複数のアクセス要求の転送を制御する手
    段を更に備えることを特徴とするメモリアクセス制御方
    式。
  9. 【請求項9】 請求項1乃至8のいずれか1項に記載の
    メモリアクセス制御方式において、前記メモリ空間は
    メモリに接続されるデータ線を使用するメモリモジュー
    ルの変更の頻度連続アドレスアクセス時に少なくなる
    ように、別々のデータ線に接続される複数組に分割され
    た上で、各組で前記大グループに分割されていることを
    特徴とするメモリアクセス制御方式。
  10. 【請求項10】 請求項1乃至9のいずれか1項に記載
    のメモリアクセス制御方式において、1又は2以上の前
    記大グループが他の1又は2以上の前記大グループと異
    なった位相のクロック位相で駆動されることを特徴とす
    るメモリアクセス制御方式。
JP36760298A 1998-12-24 1998-12-24 メモリアクセス制御方式 Expired - Fee Related JP3235578B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36760298A JP3235578B2 (ja) 1998-12-24 1998-12-24 メモリアクセス制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36760298A JP3235578B2 (ja) 1998-12-24 1998-12-24 メモリアクセス制御方式

Publications (2)

Publication Number Publication Date
JP2000194601A JP2000194601A (ja) 2000-07-14
JP3235578B2 true JP3235578B2 (ja) 2001-12-04

Family

ID=18489725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36760298A Expired - Fee Related JP3235578B2 (ja) 1998-12-24 1998-12-24 メモリアクセス制御方式

Country Status (1)

Country Link
JP (1) JP3235578B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4593220B2 (ja) * 2004-09-29 2010-12-08 エヌイーシーコンピュータテクノ株式会社 メモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法
US9026744B2 (en) * 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing

Also Published As

Publication number Publication date
JP2000194601A (ja) 2000-07-14

Similar Documents

Publication Publication Date Title
US5581734A (en) Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
EP1345125B1 (en) Dynamic random access memory system with bank conflict avoidance feature
US6026464A (en) Memory control system and method utilizing distributed memory controllers for multibank memory
US6532525B1 (en) Method and apparatus for accessing memory
US7574573B2 (en) Reactive placement controller for interfacing with banked memory storage
US6006307A (en) Computer system employing a mirrored memory system for providing prefetch bandwidth
US7650453B2 (en) Information processing apparatus having multiple processing units sharing multiple resources
US6507886B1 (en) Scheduler for avoiding bank conflicts in issuing concurrent requests to main memory
KR100724557B1 (ko) 아웃 오브 오더 dram 시퀀서
US6393512B1 (en) Circuit and method for detecting bank conflicts in accessing adjacent banks
JP4786209B2 (ja) メモリアクセス装置
US8095744B2 (en) Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages
US6963516B2 (en) Dynamic optimization of latency and bandwidth on DRAM interfaces
EP1269330B1 (en) Bus bridge including a memory controller having an improved memory request arbitration mechanism
JP3290650B2 (ja) メモリ制御装置
JPH06231075A (ja) ゼロ潜伏性ループアービトレーションの方法及び装置
US5353416A (en) CPU lock logic for corrected operation with a posted write array
JPH03147037A (ja) 記憶装置
US6360285B1 (en) Apparatus for determining memory bank availability in a computer system
US6502173B1 (en) System for accessing memory and method therefore
JP2001134542A (ja) 集合的メモリを共有する複数のプロセッサの配列
US6360305B1 (en) Method and apparatus for optimizing memory performance with opportunistic pre-charging
US5802581A (en) SDRAM memory controller with multiple arbitration points during a memory cycle
JP3235578B2 (ja) メモリアクセス制御方式
US5996042A (en) Scalable, high bandwidth multicard memory system utilizing a single memory controller

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees