JPH0628247A - 動的に再配置されるメモリバンク待ち行列 - Google Patents

動的に再配置されるメモリバンク待ち行列

Info

Publication number
JPH0628247A
JPH0628247A JP4017642A JP1764292A JPH0628247A JP H0628247 A JPH0628247 A JP H0628247A JP 4017642 A JP4017642 A JP 4017642A JP 1764292 A JP1764292 A JP 1764292A JP H0628247 A JPH0628247 A JP H0628247A
Authority
JP
Japan
Prior art keywords
queue
bank
memory
entry
queuing
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
JP4017642A
Other languages
English (en)
Other versions
JPH0812635B2 (ja
Inventor
Chitta L Rao
チッタ、ラクシミナライナ、ラオ
Steven W White
スティーブン、ウェイン、ホワイト
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0628247A publication Critical patent/JPH0628247A/ja
Publication of JPH0812635B2 publication Critical patent/JPH0812635B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

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

Abstract

(57)【要約】 【目的】 個別のFIFOバンク待ち行列に機能上等価
でありながら、単一のBSMバンク待ち行列方式よりも
ごくわずかに多くのハードウエアを要するにすぎないよ
うな待ち行列構造を提供する。 【構成】 本発明の待ち行列構造は、待ち行列位置と所
与のBSM内のバンクとの間に1対1対応が存在する、
(BSM当たり1の)「自己前進」WAITING待ち
行列を使用する。しかし、位置/バンクの関係は、位置
がビジーバンクについてだけ存在するように動的に管理
され、それにより、BSM当たり1の待ち行列を維持し
ながら、事実上、バンク当たりのFIFO待ち行列を付
与する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データプロセッサメモ
リのアーキテクチャ、より詳しくは、単一の基本記憶モ
ジュール待ち行列と近似的なコストで個々のバンク待ち
行列の性能を付与する待ち行列構造に関する。
【0002】
【従来の技術およびその課題】ほとんどの大型データ処
理システムでは、プロセッサの速度はメモリのサイクル
時間の数倍も高速である。メモリの平均待ち時間を低減
するために、メモリは通常、さらに多数のバンクに部分
分割される基本記憶モジュール(BSM)に区分化され
ている。BSMの有効数が、プロセッササイクル当たり
の可能な記憶アクセス数を限定する。BSM内のバンキ
ングの程度は、メモリ対プロセッサのサイクル時間の比
によって決定される。例えば、各個が128バンクを備
えた64のBSMが存在するかもしれない。
【0003】大半の高性能設計では、アドレスビットは
以下のフィールドに分割されている。
【0004】|チップ選択・チップ内アドレス|バンク
選択|BSM選択|バイトインデックス| 上記の最初の3のフィールドはメモリワードを選択し、
最低位の数ビットはワード内のバイトを選択する。記憶
要求のBSMユニット全体にわたる均一な分配を得よう
とする場合、BSM選択フィールドは、通常、ワードを
選択する最低位数ビットである。バンク選択ビットは、
その次に高位のビット集合である。残りのビットは、チ
ップ内のロケーションおよびバンク内のチップを選択す
る。例示のために、4バイトワード、64のBSMおよ
び各BSMで128バンクを使用する基本メモリ設計を
前提とする。
【0005】多数の別個のバンクが存在するので、所与
の要求はまず間違いなく「レディ」バンクに向けられ
る。待ち行列は、以前の要求によりまだビジー(アクテ
ィブ)であるバンクのメモリ要求をバッファするために
維持されている。IBM S/370のアーキテクチャ
要求条件は、記憶参照シーケンスに関して、各バンクの
前に個別の先入れ先出し方式(FIFO)待ち行列を置
くことによって満たすことができた。(64のBSMの
それぞれで128バンクといった)極めて多数のバンク
を備えたシステムでは、ハードウエアのコストのために
そうした個別のバンク待ち行列は非実際的なものとな
る。従って、通常は、BSMにつき単一のFIFO待ち
行列が実施されており、それにより性能を犠牲にしてハ
ードウエアのコストを大幅に低減している。先頭エント
リがその要求バンクがアクティブであるために待たなけ
ればならない場合、その待ち行列にある以降の全部のメ
モリ要求も待たされることになる。BSM当たり多数の
バンクを持っているシステムでは、待機している要求の
ほとんどはレディとなっているバンクに対するものであ
る。しかし、プロセッサのサイクルの点から、メモリア
クセス時間を高めるという傾向のために、待ち行列の先
頭にある単一のブロック化エントリは、多数のサイクル
の間、多数の要求を遅らせるかもしれない。
【0006】従って、本発明の目的は、個別のFIFO
バンク待ち行列に機能上等価でありながら、単一BSM
待ち行列方式よりもごくわずかに多くのハードウエアを
要するにすぎないような待ち行列構造を提供することで
ある。
【0007】
【課題を解決するための手段及び作用】本発明に従え
ば、待ち行列位置と所与のBSM内のバンクとの間に1
対1対応が存在する、(BSM当たり1の)「自己前
進」WAITING待ち行列を使用する待ち行列構造が
付与される。しかし、位置/バンクの関係は、(待ち行
列を必要とする唯一のバンクである)ビジーバンクにつ
いて(有効)位置だけが存在するように動的に管理さ
れ、それにより、BSM当たり1の16エレメント待ち
行列(例えば、128バンク)を維持しながら、事実
上、バンク当たりのFIFO待ち行列を与えることにな
る。
【0008】システム性能は、本発明の実施の原動力で
ある。スイッチ、メモリおよび関係する待ち行列の集約
的なコンピュータモデル化は、(BSM入力での)提起
した待ち行列構造の使用がアプリケーションのクラスに
ついてメモリ平均待ち時間を著しく(約30%)低減す
ることを示している。
【0009】
【実施例】図面について説明する。図1は、各個が互い
に独立してかつ並列で動作する多数の中央処理装置(C
PU)10を含む、高性能データ処理システムを示す。
CPU 10の各個は、複数のメモリデバイス(すなわ
ちBSM)12の1つに対するアクセスを時に応じて要
求する。各CPU 10は経路14を有しており、各メ
モリデバイス12は経路16を有する。メモリデバイス
12にアクセスを要求するCPU 10は、自己の経路
14を、交換網18によって、要求されたメモリデバイ
ス12の経路16に接続させる。
【0010】アドレスは、BSM番号およびBSM内ア
ドレスに区分できる。このBSM番号は、正しい接続を
決定するために交換網18によって使用される。「BS
M内アドレス」は、まったく修正されることなく交換網
18を通じて渡される。現在のシステムでは、BSM値
は単に1群のアドレスビットである。残りのビットが
「BSM内アドレス」である。これは、大幅に修正され
たモジュロ2n計算に等しい。
【0011】図1に示すように、スイッチ18からのB
SM内アドレスおよびデータは、選択されたBSM 1
2内のBSM待ち行列論理22に供給される。アドレス
は、Mのバンク24のうちの1バンクを選択するアドレ
ス解読/バンク選択論理22に渡され、BSM待ち行列
論理からのデータは選択されたバンクに読み込まれる。
逆に、選択されたBSMから読み出されるデータは、同
様にアドレス指定されるが、そのデータはスイッチ18
に直接読み出され、要求側プロセッサ10に供給され
る。
【0012】図2は、128バンク記憶装置の通常のB
SM待ち行列論理20を例示する。この待ち行列論理
は、16段から成るFIFOレジスタ26および、待ち
行列に入れられた要求を128バンク記憶装置に供給す
るための制御論理を含む。レジスタ26に図示した番号
は、現在その待ち行列にある要求に対するバンクの番号
を表している。待ち行列制御論理28は、特定のバンク
への要求がその待ち行列に入れられた順序で(バンク2
4に対応する)記憶装置29に要求を行う。これらの要
求は受け入れられるか拒絶されるかのいずれかであり、
要求の受入れまたは拒絶はBSM待ち行列に返信され
る。BSM待ち行列の先頭エントリが受け入れられた場
合、その待ち行列の他の全エントリは1位置ずつ前進す
る。BSM待ち行列の先頭エントリが拒絶された場合
(バンクビジー)、その次のサイクルで再試行される。
【0013】図3は、本発明の好ましい実施例に従っ
た、BSM待ち行列論理20の代替となる待ち行列構造
を示す。現在アクティブであるバンクへのメモリ要求
は、「WAITING待ち行列」30に経路指定され
る。「WAITING待ち行列」の位置の数は、メモリ
サイクルにおけるプロセッササイクル数と同じである。
以下の説明のために、メモリ/プロセッサのサイクルは
16とする。この前提により、後述する図4の実施例に
おける要求順序を維持するために使用される各レジスタ
には、4ビットが必要であることが決まる。
【0014】WAITING待ち行列30内のメモリ要
求の位置は、要求されたバンクのビジーサイクルで残っ
ているサイクル数を指示する。各サイクルにおいて、W
AITING待ち行列30のエントリは、1サイクルず
つ右側に桁送りされ、1サイクルずつレディに近づくに
つれてそのエントリによって要求されたバンクをマーク
する。本発明の第1の実施例では、「ブックキーピン
グ」回路33の4:16デコーダ32が、ホールド/ロ
ード回路34に入力される16の出力SELECT0〜
SELECT15のいずれかを生成する。どの出力がア
クティブであるかに応じて、NEW待ち行列36の先頭
エントリの全ビットは、ホールド/ロード回路34を介
してWAITING待ち行列30の対応する位置に読み
込まれる。デコーダ32は、128の4ビットカウンタ
38から、4カウンタビットおよび1有効ビットから成
る5ビットカウンタ出力をその入力として受信し、カウ
ンタ38は逆にNEW待ち行列36からの8カウンタ選
択ビットによって制御される。この8ビットは7ビット
のデータおよび1有効ビットから成る。
【0015】上述のように、当該位置の要求の存在を指
示する「有効」ビットが各エントリと関係する。WAI
TING待ち行列30の有効エントリが右端の位置(ス
ロット0)まで進むと、そのバンクが要求に対しレディ
となっていることが保証され、その要求はそのメモリに
ディスパッチされる。右端のスロットまで進んだエント
リがFALSE有効ビットを持っている場合、WAIT
ING待ち行列によって要求されたバンクのいずれもレ
ディとならない。従って、有効な「新しい」ビットが使
用可能であり、デコーダ32からのSELECT0によ
ってTRUEであると指示された場合、その新しい要求
はただちにサービスされることが可能となる。
【0016】マルチプレクサ35は、WAITING待
ち行列30の先頭エントリからのその有効ビットを使用
して、そのエントリまたはNEW待ち行列36からの先
頭エントリのいずれをメモリバンクに供給すべきかを選
択する。ホールド/ロード回路34内で、SELECT
0は、ビジーバンクに指定された要求が処理されないよ
うにするために、NEW待ち行列36の先頭エントリの
有効ビットと論理積をとることができる(図示せず)。
しかし、WAITING待ち行列30がレディである要
求を持っている場合、有効な「新しい」エントリが「ホ
ールド/ロード」回路34からHOLD信号を生成し、
これがNEW待ち行列36に次のサイクルで再試行させ
るようにする。
【0017】HOLD信号が生成される他の条件は、N
EWエントリが待ち行列に入れられなければならず(す
なわち、そのバンクがアクティブである)、WAITI
NG待ち行列30がそのNEWエントリが置換されるは
ずの位置に有効エントリをすでに持っている場合であ
る。これは、第1の要求がメモリがアクティブである要
求であり、第2の要求がWAITING待ち行列にあ
り、第3の要求がHOLD条件を生じるといった、バン
クのビジー時間内において同一のバンクに対して3の要
求を必要とする場合なので、ほとんどない例である。
【0018】この設計の鍵は、WAITING待ち行列
30における要求の位置と要求されたバンクのビジーサ
イクルで残っているサイクル数との間の関係を維持でき
ることである。カウンタセル40の集合を用いて必要な
ブックキーピング情報を維持する方法は、図4に示され
ており、そのカウンタの1つが4ビットカウンタ42を
含むものとして詳細に図示されている。これらのカウン
タは、Signetics 74F191またはTex
as Instruments SN74191と同様
の設計の通常の4ビット可逆バイナリカウンタとするこ
とができる。各サイクルで、非ゼロ値を持つカウンタは
すべて、ANDゲート44を通じてプロセッサによって
減分される。ANDゲート44は、カウンタ42の非ゼ
ロ値を検出するORゲート46によってイネーブルにさ
れる。従って、カウンタの値がゼロである場合は、減分
は生じない。値15(バンクが開始されたサイクル後に
残っているビジーサイクル数)は、LOADiがTRU
Eである場合にカウンタに非同期でロードされる。LO
ADiはバンクiの要求が記憶装置によって受け入れら
れた場合にデコーダ48によって表明される。カウンタ
42とバンクとの間には、不変の1対1対応がある。従
って、Nのバンクを持ったシステムの場合は、Nのカウ
ンタが必要になる。メモリ要求がレディバンクにディス
パッチされると、バンク選択ビットがカウンタに経路指
定される。このバンク番号は対応するカウンタを選択す
るために使用される。その値は、その関係するバンクが
15の付加サイクルでアクティブになることを指示する
ために15に設定される。メモリサイクルがMプロセッ
ササイクルであれば、初期カウンタ値は、ゼロに達する
ためにM−1の減分が必要となるように設定される。い
ずれの時点でも、カウンタ42は、対応するバンクのビ
ジーサイクルに残っているサイクル数を指示する。ゼロ
値は、その関係するバンクがアクティブではないという
特殊な意味を有する。カウンタセル40のうちのいずれ
かの4ビット出力は、4ビット幅x128マルチプレク
サ49によって選択される。マルチプレクサ49を制御
する8のバンク選択ビットは、NEW待ち行列36(図
3)から得られる。この8ビットは、7選択ビットと1
有効ビットに分けられる。有効ビットは、マルチプレク
サ49をイネーブルにするために使用され、また、図3
のデコーダ32に入力される5ビットカウンタ出力を供
給するためにマルチプレクサの4ビット出力と結合され
る。
【0019】前述のように、プロセッサにより生成され
たメモリ要求は、図1に示したスイッチ18によって適
切なBSMに経路指定される。正しいBSMは、通常、
アドレスビットのうちの少数を調べることによって決定
される。アドレスビットの類似フィールドは、バンクを
選択するためにBSM内で使用される。スイッチ18に
よってBSMに経路指定された新しいメモリ要求は、初
めに、NEW待ち行列36に入れられる。要求は、待ち
行列が空であれば先頭エントリに置かれる。先頭エント
リについてHOLD信号が生成されていない限り、NE
W待ち行列36の各エントリは各サイクルごとに前進す
ることができる。先頭エントリのバンク選択ビットは、
関係するカウンタ値を選択するために使用される。カウ
ンタ値は、デコーダ32により、16の選択線の(多く
ても)いずれかに復号される。要求されたバンクがその
ビジーサイクルに2サイクルを残している場合、SEL
ECT2がTRUEになる。WAITING待ち行列の
右側エントリから3番目のエントリが空である場合、N
EW待ち行列からの先頭エントリがこのスロットにゲー
トされる。そのスロットが埋まっていれば、NEW待ち
行列36の先頭エントリは保留され、再試行される。T
RUEである特定のSELECT線が、新しいエントリ
をWAITING待ち行列30のどの位置に置くかを決
定する。SELECT0は、その新しいエントリがレデ
ィバンクの対象となっている、特殊な例として扱われ
る。WAITING待ち行列30が右端のスロットに有
効エントリを持っていない場合、新エントリはそのバン
クにディスパッチされる。そうでなければ、NEW待ち
行列の先頭エントリは保留され、次のサイクルで再試行
される。
【0020】ブックキーピング/SELECT線生成の
さらに効率的な実施が、図5の「タグ」シフトレジスタ
50およびコンパレータの集合52である。図3のホー
ルド/ロード回路34、WAITING待ち行列30お
よびマルチプレクサ35が記憶装置に供給する要求を選
択すると、そのバンク番号(タグ)がシフトレジスタ5
0の左端位置に置かれる。シフトレジスタ50は、メモ
リバンクのビジーサイクルのサイクル数と同じ段数を有
するように規定される。シフトレジスタは各サイクルご
とに1位置ずつ右側に桁送りさせる。しかし、WAIT
ING待ち行列30と同様に、このTAGシフトレジス
タ50のタグ(すなわちバンク番号)の位置は、関係す
るメモリバンクのビジーサイクルで残っているサイクル
数を指示する。例えば、図示の例では値「67」が第6
の位置にあるので、バンク番号「67」はさらに6サイ
クルの間ビジーである。従って、選択線生成は単に、N
EW待ち行列36の先頭エントリからのバンク選択ビッ
トとシフトレジスタ50のタグの全部を比較するという
ことになる。位置Nのエントリとの一致があった場合、
その要求はさらにNサイクルの間ビジーであるバンクに
指定される。従って、SELECTNはTRUEとして
表明されるはずである。NEW待ち行列36、HOLD
/LOAD回路34、NEW待ち行列36およびその他
のハードウエアは、図4のカウンタ/デコーダ回路をT
AGシフトレジスタ50およびコンパレータ52に代替
させることによって影響されない。ブックキーピングお
よびSELECT線生成のこれらの2形式への入出力は
同一である。
【0021】「ホールド/ロード」回路34は、図6に
例示するが、NEW待ち行列36(図3)の先頭エント
リのHOLD信号を生成し、NEWエントリがWAIT
ING待ち行列30の有効エントリの上位にロードされ
ないようにする。通常、SELECT線は新エントリを
WAITING待ち行列30にロードするために使用さ
れるが、1のTRUE値SELECT線が、すでに有効
エントリを持っているWAITING待ち行列の位置に
対応する場合には、そのSELECT線はNEW待ち行
列エントリをWAITING待ち行列にロードすること
を禁止される。この場合、TRUE値はHOLD線に置
かれる。
【0022】図6について説明すれば、「ホールド/ロ
ード」回路34は、デコーダ32からの16の復号SE
LECT信号を受け入れ、SELECT1〜SELEC
T15を使用してNEW待ち行列36のエントリをWA
ITING待ち行列30にロードする。これはANDゲ
ート621〜6215によって行われるが、これらのう
ちの1だけがSELECT線によってイネーブルにされ
る。ANDゲート621〜6215はまた、各自のイン
バータ631〜6315を介して対応するWAITIN
G待ち行列位置への有効ビットを入力として受信するこ
とにも留意されたい。従って、特定のWAITING待
ち行列位置iの有効ビットがTRUEである場合、対応
するANDゲート62iは抑止され、NEW待ち行列エ
ントリのWAITING待ち行列へのロードを防止す
る。
【0023】SELECT線および有効ビットはまた、
ANDゲート641〜6415を通じても供給され、そ
の出力は、WAITING待ち行列位置の矛盾を指示す
るHOLD信号を生成するためにORゲート65によっ
て結合される。別のANDゲート66は、SELECT
0信号およびWAITING待ち行列の先頭エントリか
らの有効ビットを入力として受信し、上述と同様、2の
レディ要求間の矛盾を指示するHOLD信号を生成す
る。2のHOLD信号は、NEW待ち行列への単一のH
OLD信号出力を供給するために第2のORゲート67
で結合される。
【0024】本発明に従ったこの待ち行列構造は、個別
のFIFOバンク待ち行列と機能的に等価である。所与
のバンクに対する全要求のFIFO方式の取扱いは、要
求が他の要求を「渡す」ことができる唯一の方法がWA
ITING待ち行列に入れられた要求を妨げることによ
ることであるという点を認めることによって認識でき
る。WAITING待ち行列の(迂回されるかもしれな
い)いずれのエントリの場合も、関係するバンクカウン
タ(またはタグシフトレジスタの位置)は非ゼロであ
る。従って、(WAITING待ち行列にある要求と同
一のバンクに対する)新しい要求がWAITING待ち
行列エントリを迂回しようとした場合、非ゼロのカウン
タ/タグ値が認められ、その非ゼロ値は、そのカウンタ
に関係するバンクについて待機している要求のWAIT
ING待ち行列の位置を指示する。新エントリは、同一
バンクに向かうエントリをすでに有するWAITING
待ち行列の位置に送られるので、ホールド/ロード回路
は新エントリのロードを防止し、HOLD信号を生成す
る。この例外は、新エントリがWAITING待ち行列
30の先頭エントリと同一のバンクに向かう場合であ
る。ゼロのカウンタ値が存在するが、WAITING待
ち行列の先頭エントリは(マルチプレクサ35によっ
て)優先権を与えられており、新エントリは保留され、
それによりWAITING待ち行列エントリを迂回する
ことを妨げられる。従って、提起した待ち行列機構は、
非ビジーバンクでの待ち行列のログ(上述の例では所与
の時間に128バンクのうち多くて16がビジーとなり
得る)または関係する多重化/経路指定回路の全部を必
要とせずに、各バンクの個別のFIFO待ち行列と同じ
機能を付与する。
【0025】上述の実施例は、各BSMに対して1サイ
クル当たり1要求だけが行われることを前提としてい
る。1サイクル当たり2の要求が可能な場合、図示した
ハードウエアの全部(4ビットカウンタを除く)が単に
複製されるだけである。BSM待ち行列領域との間の
(1サイクル当たり)2の要求の入出力は、各個が各自
のWAITING待ち行列を備えたストリームとしてみ
なすことができる。NEW待ち行列36の先頭エントリ
間の7ビット比較は、NEW待ち行列が同一バンクに向
けられた2の要求を同時に供給しないようにするために
行わなければならない。また、WAITING待ち行列
に向かうNEWエントリと他のWAITING待ち行列
の対応するエントリとの間の7ビット比較も、その2の
WAITING待ち行列が共に所与のバンクが「予約さ
れている」と「考える」要求を持たないようにするため
に行わなければならない。これは、そうした矛盾が生じ
た場合、他方の現在エントリの位置が必ずアクティブの
SELECT線によって指示されていることがわかるの
で、容易に行える検査である。
【0026】本発明は、各バンクの前にFIFO待ち行
列を機能的に置くことにより所与のワードに対する要求
順序を維持しながらも、BSM当たり単一待ち行列方式
に比べて最低限のハードウエアの増量のみを必要とする
メモリアーキテクチャを提供する。WAITING待ち
行列のエントリ位置と、関係するバンクが使用可能とな
るまでの残りのサイクル数との間の1対1対応によっ
て、FIFO順序は所与のバンクについての全要求内で
維持できる。しかし、待ち行列エントリ位置と実際のバ
ンク番号との間の関係の一定の変化によって、WAIT
ING待ち行列エントリは、事実上、ビジーであるバン
クだけの前に置かれるFIFO待ち行列として動作する
ように動的に再配置される。
【図面の簡単な説明】
【図1】各BSMがMバンクを備えたNのBSMを含む
メモリサブシステムのブロック図。
【図2】通常のBSM待ち行列を例示するブロック図。
【図3】本発明の好ましい実施例に従ったメモリ待ち行
列のブロック図。
【図4】図3に示すカウンタのブロック図。
【図5】ブックキーピングおよびSELECT線生成機
能の効率的な実施の論理図。
【図6】図3に示すメモリ待ち行列で使用される「ホー
ルド/ロード」回路の論理図。
【符号の説明】
30 WAITING待ち行列 34 HOLD/LOAD回路 33 「ブックキーピング」回路 32 3:16デコーダ 38 128の4ビットカウンタ 36 NEW待ち行列 35 マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スティーブン、ウェイン、ホワイト アメリカ合衆国テキサス州、オースチン、 ウェストカーク、ドライブ、9104

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】基本記憶モジュールの各個がさらにメモリ
    バンクに分割されている多数の基本記憶モジュールを有
    するデータ処理メモリシステムにおいて、単一の基本記
    憶モジュール待ち行列とほぼ同じコストで個別バンク待
    ち行列の性能を付与する改良された待ち行列構造であっ
    て、 対応する記憶モジュールの現在アクティブなメモリバン
    クのメモリ要求を格納するための前記基本記憶モジュー
    ルの数と等しい数の多数のWAITING待ち行列手段
    であり、前記メモリ要求は各プロセッササイクルごとに
    前記WAITING待ち行列手段内を進められるもので
    ある前記WAITING待ち行列手段と、 メモリバンクに供給されるかまたは前記WAITING
    待ち行列手段に入れられるメモリ要求を受信するための
    NEW待ち行列手段であり、前記メモリ要求はバンク選
    択ビットを含むものである前記NEW待ち行列手段と、 選択されたバンクに対応するSELECT出力を生成す
    るための前記NEW待ち行列手段の先頭エントリから前
    記バンク選択ビットを受け取るブックキーピング手段
    と、 選択された位置がすでに占有されている場合は前記WA
    ITING待ち行列手段の選択位置にメモリ要求をロー
    ドするか、または、メモリバンクに要求を供給するか、
    または、前記選択位置で矛盾が検出された場合は前記N
    EW待ち行列手段へのHOLD信号を生成するための前
    記SELECT出力に応答するホールド/ロード回路で
    あり、前記NEW待ち行列手段は次のプロセッササイク
    ルで再試行するために前記HOLD信号に応答するもの
    である前記ホールド/ロード回路とを含むことを特徴と
    する待ち行列構造。
  2. 【請求項2】請求項1記載の待ち行列構造であって、前
    記ブックキーピング手段が、 前記WAITING待ち行列の各個のための基本記憶モ
    ジュール内の前記メモリバンクの数と等しい数の多数の
    カウンタであり、前記カウンタのいずれかがカウント出
    力を供給するために前記バンク選択ビットによって選択
    されるものである前記多数のカウンタと、 前記SELECT出力を生成するために前記カウント出
    力に応答するデコーダ手段とを含むことを特徴とする待
    ち行列構造。
  3. 【請求項3】請求項1記載の待ち行列構造であって、前
    記ブックキーピング手段が、 要求がメモリバンクに供給されるために選択された時に
    バンク番号を受信するためのTAGシフトレジスタ手段
    と、 前記SELECT出力を生成するために前記NEW待ち
    行列手段からの前記バンク選択ビットと前記段の内容と
    を比較するための前記TAGシフトレジスタの段と等し
    い数の多数のコンパレータ手段とを含むことを特徴とす
    る待ち行列構造。
JP4017642A 1991-03-04 1992-02-03 動的に再配置されるメモリバンク待ち行列 Expired - Lifetime JPH0812635B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/664,252 US5276838A (en) 1991-03-04 1991-03-04 Dynamically repositioned memory bank queues
US664252 1991-03-04

Publications (2)

Publication Number Publication Date
JPH0628247A true JPH0628247A (ja) 1994-02-04
JPH0812635B2 JPH0812635B2 (ja) 1996-02-07

Family

ID=24665251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4017642A Expired - Lifetime JPH0812635B2 (ja) 1991-03-04 1992-02-03 動的に再配置されるメモリバンク待ち行列

Country Status (2)

Country Link
US (1) US5276838A (ja)
JP (1) JPH0812635B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5335326A (en) * 1992-10-01 1994-08-02 Xerox Corporation Multichannel FIFO device channel sequencer
JP3010947B2 (ja) * 1992-11-26 2000-02-21 日本電気株式会社 メモリアクセス制御装置
JPH06314264A (ja) * 1993-05-06 1994-11-08 Nec Corp セルフ・ルーティング・クロスバー・スイッチ
US5687390A (en) * 1995-11-14 1997-11-11 Eccs, Inc. Hierarchical queues within a storage array (RAID) controller
US5822772A (en) * 1996-03-22 1998-10-13 Industrial Technology Research Institute Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties
US20010032307A1 (en) * 1998-12-30 2001-10-18 Joseph Rohlman Micro-instruction queue for a microprocessor instruction pipeline
US6601151B1 (en) * 1999-02-08 2003-07-29 Sun Microsystems, Inc. Apparatus and method for handling memory access requests in a data processing system
US7299324B2 (en) * 2003-11-05 2007-11-20 Denali Software, Inc. Reactive placement controller for interfacing with banked memory storage
TWI256555B (en) * 2003-12-12 2006-06-11 Via Tech Inc An apparatus and a method of request priority queue arbitration
US9092156B1 (en) * 2013-05-30 2015-07-28 Marvell International Ltd. Methods and apparatus for managing storage device commands
US9569385B2 (en) * 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
US9911477B1 (en) * 2014-04-18 2018-03-06 Altera Corporation Memory controller architecture with improved memory scheduling efficiency
KR102420897B1 (ko) * 2016-03-17 2022-07-18 에스케이하이닉스 주식회사 메모리 모듈, 이를 포함하는 메모리 시스템 및 그의 동작 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4293910A (en) * 1979-07-02 1981-10-06 International Business Machines Corporation Reconfigurable key-in-storage means for protecting interleaved main storage
GB2103397A (en) * 1981-07-31 1983-02-16 Philips Electronic Associated Digital data aparatus with memory selection
JPS58225432A (ja) * 1982-06-24 1983-12-27 Toshiba Corp 要求バツフア装置
US4725945A (en) * 1984-09-18 1988-02-16 International Business Machines Corp. Distributed cache in dynamic rams
US4758993A (en) * 1984-11-19 1988-07-19 Fujitsu Limited Random access memory device formed on a semiconductor substrate having an array of memory cells divided into sub-arrays
US4636986B1 (en) * 1985-01-22 1999-12-07 Texas Instruments Inc Separately addressable memory arrays in a multiple array semiconductor chip
JPS63175287A (ja) * 1987-01-16 1988-07-19 Hitachi Ltd 記憶装置
US5050066A (en) * 1988-10-14 1991-09-17 Intel Corporation Apparatus with a single memory and a plurality of queue counters for queuing requests and replies on a pipelined packet bus

Also Published As

Publication number Publication date
JPH0812635B2 (ja) 1996-02-07
US5276838A (en) 1994-01-04

Similar Documents

Publication Publication Date Title
US6944731B2 (en) Dynamic random access memory system with bank conflict avoidance feature
US4354232A (en) Cache memory command buffer circuit
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
AU598857B2 (en) Move-out queue buffer
US6173378B1 (en) Method for ordering a request for access to a system memory using a reordering buffer or FIFO
US6601151B1 (en) Apparatus and method for handling memory access requests in a data processing system
EP1374072B1 (en) Apparatus and method for efficiently sharing memory bandwidth in a network processor
US6820165B2 (en) System and method for increasing the count of outstanding split transactions
EP1047996A1 (en) Method and apparatus for enforcing ordered execution of reads and writes across a memory interface
US7418540B2 (en) Memory controller with command queue look-ahead
JPH0628247A (ja) 動的に再配置されるメモリバンク待ち行列
JP2561261B2 (ja) バッファ記憶アクセス方法
US5287480A (en) Cache memory for independent parallel accessing by a plurality of processors
US5825788A (en) Data ordering for cache data transfer
US20040199704A1 (en) Apparatus for use in a computer system
US6625700B2 (en) Arbitration and select logic for accessing a shared memory
US20030051103A1 (en) Shared memory system including hardware memory protection
US7028116B2 (en) Enhancement of transaction order queue
US5748920A (en) Transaction queue in a graphics controller chip
US8094819B1 (en) Method and apparatus for high agility cryptographic key manager
US5774653A (en) High-throughput data buffer
JP2853652B2 (ja) プロセッサ間通信におけるパケット送信方法およびその装置
US6335903B2 (en) Memory system
US11829643B2 (en) Memory controller system and a method of pre-scheduling memory transaction for a storage device
US20020056032A1 (en) Pipelined multi-access memory apparatus and method