JPH0784875A - ライトバッファ制御機構 - Google Patents

ライトバッファ制御機構

Info

Publication number
JPH0784875A
JPH0784875A JP5253735A JP25373593A JPH0784875A JP H0784875 A JPH0784875 A JP H0784875A JP 5253735 A JP5253735 A JP 5253735A JP 25373593 A JP25373593 A JP 25373593A JP H0784875 A JPH0784875 A JP H0784875A
Authority
JP
Japan
Prior art keywords
data
write buffer
memory
address
entry
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.)
Pending
Application number
JP5253735A
Other languages
English (en)
Inventor
Masatoshi Hotta
正利 堀田
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP5253735A priority Critical patent/JPH0784875A/ja
Publication of JPH0784875A publication Critical patent/JPH0784875A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 連続したデータを高速アクセスモードで転送
することを可能とする。 【構成】 プロセッサ制御部1からライトバッファ11
にデータを書き込む際、そのデータに連続するデータが
ライトバッファ11に格納されているか否かを、連想メ
モリ22を検索して調べる。即ち、連想メモリ22はラ
イトバッファ11に格納されているデータのアドレスの
次のメモリアドレスを格納しているので、書き込もうと
するデータのメモリアドレスをこれと比較してデータの
連続性を調べられる。データが連続するときは、ライト
バッファ制御部15内のレジスタ16にその旨を格納す
る。一方、ライトバッファ11からメモリ30にデータ
を転送するときは、ライトバッファ制御部15により連
続するデータを高速アクセスモードで転送する。また、
連続しないデータは転送単位ごとに転送する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機のプロセッサに
おけるライトバッファ制御機構に関するものである。
【0002】
【従来の技術】従来、計算機において、プロセッサがデ
ータをメモリに格納する際には、以下の理由によりライ
トバッファを介して格納するようにしていた。一般に、
プロセッサのサイクル時間とメモリのサイクル時間で
は、後者の方が長い。このため、プロセッサはメモリに
データを格納する際、その実行を止めてメモリへのデー
タの格納が終るまで待たなければならない。従って、プ
ロセッサはメモリへのデータの格納時に長時間待たさ
れ、実行効率が落ちる。これを防止するために、サイク
ル時間がプロセッサのサイクル時間に近いライトバッフ
ァを設ける。そして、プロセッサはデータを直接メモリ
に格納するのではなく、ライトバッファに一時的に格納
した後、ライトバッファからメモリにデータを格納する
ようにする。これにより、プロセッサはメモリへのデー
タの格納が終ることを待つことなく、次の処理を行なう
ことが可能となる。
【0003】図2に、従来のライトバッファ制御機構の
構成を示す。プロセッサ制御部31は、制御線32、3
3でライトバッファ制御部35に接続されており、ま
た、セレクタ37にデータ線34で接続されている。一
方、ライトバッファ制御部35は、制御線36でセレク
タ37に接続されている。セレクタ37に接続されたラ
イトバッファ38は、データ線39に接続されている。
プロセッサ制御部31はデータをライトバッファ38に
出力する際は制御線32でライトバッファ制御部35に
データの書き込みを要求する。ライトバッファ制御部3
5はライトバッファ38がFIFO(First In First O
ut)バッファを構成するように制御する。即ち、ライト
バッファ制御部35は、ヘッドポインタ51、テイルポ
インタ52、カウンタ53を備えている。ヘッドポイン
タ51は、ライトバッファ38内の先頭データを指す。
テイルポインタ52は、ライトバッファ38内の最後の
データを指す。これらの状態を図3(a)に示す。カウ
ンタ53は、ライトバッファ38内に現在保持されてい
るデータの数(エントリ数)を示す。
【0004】プロセッサ制御部31からライトバッファ
38にデータ書き込み要求があると、ライトバッファ制
御部35は、まず、カウンタ53の示す値を調べる。こ
れにより、ライトバッファ38が満杯か否かを調べる。
ライトバッファ38が満杯でなければ、ライトバッファ
制御部35は、制御線33を通じてプロセッサ制御部3
1に書き込みを許可する。同時に、ライトバッファ制御
部35はカウンタ53を“1”増加し、図3(b)に示
すように、テイルポインタ52を“1”進める。そし
て、テイルポインタ52の値を制御線36を通じてセレ
クタ37に通知する。セレクタ37は、制御線36を通
じて入力される信号で制御され、プロセッサ制御部31
からデータ線34を通じて送られてくるメモリ40の書
き込みアドレスとデータをライトバッファ38内のテイ
ルポインタ52の指すエントリに格納する。
【0005】一方、ライトバッファ38からメモリ40
にデータを書き込む際には、ライトバッファ制御部35
がカウンタ53を“1”減少させ、図3(c)に示すよ
うに、ヘッドポインタを“1”進め、そのヘッドポイン
タの値を制御線36を通じてセレクタ37に通知する。
そして、データ線39を通じてメモリ40にアドレス及
びデータを出力する。
【0006】
【発明が解決しようとする課題】しかしながら、上述し
た従来の技術には、次のような問題があった。即ち、上
述した従来の機構においては、データがライトバッファ
38に入力された順にメモリ40にアドレスが出力さ
れ、データが書き込まれる。従って、アドレスが連続す
るデータを格納する場合にも、ライトバッファ38から
メモリ40へのデータ転送単位毎にアドレスが出力され
る。このため、DRAM等の高速アクセスモードを使用
することができず、データ転送効率が悪くなるという問
題があった。
【0007】本発明は、以上の点に着目してなされたも
ので、ライトバッファに格納されているデータが連続し
ている場合にそれらを連続して出力して高速アクセスモ
ードを使用することを可能としたライトバッファ制御機
構を提供することを目的とするものである。
【0008】
【課題を解決するための手段】本発明のライトバッファ
制御機構は、メモリ内の複数の領域に格納される予定の
データを一時的に格納するライトバッファと、当該ライ
トバッファ内の前記メモリ内で連続するアドレスのデー
タを検出する連想メモリと、当該連想メモリにより検出
されたデータを前記ライトバッファから前記メモリに高
速アクセスモードで出力するライトバッファ制御部とを
備えたことを特徴とするものである。
【0009】
【作用】本発明のライトバッファ制御機構においては、
プロセッサ制御部からライトバッファにデータを書き込
む際、そのデータに連続するデータがライトバッファに
格納されているか否かを調べる。これは、ライトバッフ
ァ制御部が連想メモリを検索することにより行なわれ
る。そして、連続するデータがあるときは、ライトバッ
ファ制御部内のレジスタにその旨を格納する。一方、ラ
イトバッファからメモリにデータを転送するときは、ラ
イトバッファ制御部により連続するデータを高速アクセ
スモードで転送する。また、連続しないデータは転送単
位ごとに転送する。
【0010】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。図1は、本発明のライトバッファ制御機構
の一実施例のブロック図である。プロセッサ制御部1の
出力は、データ線2、5によって加算器6に接続され、
データ線5によってセレクタ12とセレクタ10に接続
される。また、プロセッサ制御部1とライトバッファ制
御部15は、制御線3、4により相互に接続されてい
る。加算器6の出力は、信号線7によりラッチ8に接続
され、ラッチ8の出力は信号線9によりセレクタ12に
接続されている。セレクタ12の出力は、データ線13
によりセレクタ20に接続され、制御線14でライトバ
ッファ制御部15と接続されている。
【0011】セレクタ10は、制御線18によってライ
トバッファ制御部15と接続されている。そして、セレ
クタ10の出力は、ライトバッファ11に接続されてい
る。このライトバッファ11は、データ線19を介して
メモリ30に接続されている。メモリ30は、DRAM
(ダイナミック・ランダム・アクセス・メモリ)等から
成る。メモリ30の動作は、周知の通りであるが、図4
(a)に示すように、あるサイクルでアドレスを入力
し、次のサイクルで前のサイクルで指定されたアドレス
にデータを書き込むようになる。DRAMの場合は、ア
ドレスが行列とされるため、2サイクルが使われる。一
方、高速アクセスモードでは、図4(b)に示すよう
に、次のサイクルでもデータを入力し、そのデータを前
のサイクルでデータを書き込んだアドレスの次のアドレ
スに書き込む。
【0012】セレクタ20は、制御線21によりライト
バッファ制御部15と接続されている。そして、セレク
タ20の出力は、連想メモリ22と接続されている。こ
の連想メモリ22の出力は、データ線23によりライト
バッファ制御部15に接続されている。ライトバッファ
制御部15は、レジスタ16とレジスタ17とを有す
る。ライトバッファ11、レジスタ17、連想メモリ2
2は、同数のエントリを持つ。各エントリには、エント
リアドレスが付されており、同じエントリアドレス同士
のエントリが対応付けられる。ライトバッファ11は、
メモリに書き込むデータとそのメモリアドレスを保持す
る2つのフィールドaddr、dataから成る。
【0013】レジスタ16は、ライトバッファ11のエ
ントリアドレス(即ち、レジスタ17及び連想メモリ2
2のエントリアドレス)を保持し、ポインタとして機能
する。このレジスタ16のポインタには、空きヘッドポ
インタehead 、空きテイルポインタetail 、有効ヘッド
ポインタvhead 、有効テイルポインタvtail 、カレント
ポインタcur が含まれる。空きヘッドポインタは、デー
タが保持されていない先頭のエントリを指す。空きテイ
ルポインタは、データが保持されていない最終のエント
リを指す。
【0014】有効ヘッドポインタは、データが保持され
ている先頭のエントリを指す。有効テイルポインタは、
データが保持されている最終のエントリを指す。カレン
トポインタは、ライトバッファ制御部15が現在処理し
ているエントリを指す。また、レジスタ16は、カウン
タcount も含む。このカウンタは、ライトバッファ11
に保持されているデータの個数を格納する。レジスタ1
7は、NフィールドとNRフィールドの2つのフィール
ドから成り、ライトバッファ11の各エントリの状態を
保持する。Nフィールドは、当該エントリに対応するラ
イトバッファ11のエントリに、連続するメモリ書き込
みアドレスを持つデータが格納されていることを示す。
NRフィールドは、当該エントリに続くエントリのエン
トリアドレスを格納する。
【0015】これらのレジスタ16とレジスタ17とを
用いて、ライトバッファ11はデータが保持されている
エントリのリストとデータが保持されていないエントリ
のリストの2種類のリストで管理される。連想メモリ2
2は、NAフィールドとCフィールドの2つのフィール
ドを有する。NAフィールドは、当該エントリに対応す
るライトバッファ11に書き込まれているデータのメモ
リアドレスの次のメモリアドレスを格納する。Cフィー
ルドは、連想メモリ22の当該エントリが今までにヒッ
トしたか否かを示す。
【0016】本発明では、新しくライトバッファ11に
書き込まれるデータが既にライトバッファ11に格納さ
れているデータとメモリ30の書き込みアドレスが連続
するか否かを連想メモリ22により検出する。そして、
ライトバッファ11のデータの状態をライトバッファ制
御部15のレジスタ16とレジスタ17によりデータが
入っているリストとデータが入っていないリストの2つ
のリストをつくる。そして、レジスタ17の付加ビット
Nを用いることによりこれらのリストに入っているデー
タのメモリアドレスが連続するか否かを判断する。連続
する場合は、図4(b)に示すような高速アクセスモー
ドでライトバッファ11からメモリ30へのデータ転送
を行ない、連続しない場合は、図4(a)に示すような
通常のアクセスモードでこれを行なう。
【0017】次に、上述した装置の動作を説明する。プ
ロセッサ制御部1は、データをライトバッファ11に書
き込む際に、制御線3を通じてライトバッファ制御部1
5に書き込み要求を出力する。ライトバッファ制御部1
5はカウンタがライトバッファ11のエントリ数より小
さければ、制御線4を通じてプロセッサ制御部1に書き
込みの許可を出力し、カウンタを“1”増やす。
【0018】その後、プロセッサ制御部1は、データ線
5にデータとメモリアドレスを出力する。加算器6及び
セレクタ12には、メモリアドレスが出力され、セレク
タ10にはデータとメモリアドレスの両方が出力され
る。セレクタ12は、ライトバッファ制御部15からの
制御線14によりデータ線5側に切替えられている。こ
れにより、データ線5のメモリアドレスがデータ線13
を通じてセレクタ20に送られる。また、データ線5を
通じてセレクタ10に送られたメモリアドレスとデータ
は、ライトバッファ制御部15が空きヘッドポインタの
値を制御線18を通じてセレクタ10に出力しているた
め、セレクタ10を介して空きヘッドポインタの指すラ
イトバッファ11のエントリに書き込まれる。これと同
時にカレントポインタに空きヘッドポインタの値が書き
込まれ、空きヘッドポインタの値は空きヘッドポインタ
が指すレジスタ17のエントリのNRフィールドの値に
書換えられる。
【0019】また、セレクタ20は、ライトバッファ制
御部15によって制御線21を通じて制御され、これに
より、データ線13を通じてプロセッサ制御部1から送
られてきたアドレスと一致するアドレスが連想メモリ2
2の中に存在するか否かが検出される。この際にアドレ
スの一致するエントリは存在したが、そのエントリのC
ビットがアクティブである場合はアドレスが不一致であ
るとして扱われる。このような意味も含めてアドレスが
一致した場合は、そのエントリアドレスとヒット信号が
データ線23を通じてライトバッファ制御部15に送ら
れると同時に当該エントリのCビットがアクティブにさ
れる。ライトバッファ制御部15は、送られてきたエン
トリアドレスのレジスタ17のエントリのNRフィール
ドをカレントポインタの指すレジスタ17のNRフィー
ルドに書き込む。そして、送られてきたエントリアドレ
スのレジスタ17のエントリのNRフィールドには、カ
レントポインタの値を書き込み、Nフィールドをアクテ
ィブにする。これにより、次のデータが連続なメモリア
ドレスを持つことを示す。
【0020】メモリアドレスが一致しなかった場合は、
その旨がデータ線23を通じてライトバッファ制御部1
5に伝えられ、有効テイルポインタの指すレジスタ17
のエントリのNRフィールドはカレントポインタの値に
書換えられ、有効テイルポインタはカレントポインタの
値に書換えられる。一方、データ線2には、プロセッサ
制御部1から出力されたデータのバイト数(バイトなら
“1”、ワードなら“4”)が出力される。加算器6
は、データ線5に出力されているメモリアドレスとデー
タ線2に出力されているバイト数を加算して現在のデー
タの次のアドレスを計算する。この結果はラッチ8に保
持され、前述した連想メモリ22での検索が終った後に
ライトバッファ制御部15によって制御されたセレクタ
12を通じて連想メモリ22に書き込まれる。このとき
に書き込まれるエントリは、ライトバッファ制御部15
によって制御線21を通じて通知されるカレントポイン
タの値によって指定される。
【0021】この結果、ライトバッファ等の格納状態
は、例えば、図5に示すようになる。図5に示す例で
は、ライトバッファの3番目のエントリにアドレスA及
びデータD1が格納され、ライトバッファの5番目のエ
ントリにアドレスAの次のアドレスA+1及びD1に続
くデータD2が格納される。このとき、レジスタ3番目
のエントリのNフィールドはアクティブにされ、NRフ
ィールドにはエントリアドレス“5”が格納される。ま
た、連想メモリの3番目のエントリのNAフィールドに
はアドレスAの次のアドレスA+1が格納され、5番目
のエントリのNAフィールドにはアドレスA+1の次の
アドレスA+2が格納される。このように、例えば4番
目のエントリを飛ばして3番目と5番目のエントリに連
続したデータを格納することができる。
【0022】ライトバッファ11からメモリ30へデー
タを出力する際には、ライトバッファ制御部15が有効
ヘッドポインタの値を制御線18を通じてライトバッフ
ァ11に伝え、当該エントリのアドレス及びデータをデ
ータ線19に出力する。続いて有効ヘッドポインタの指
すレジスタ17のエントリのNRフィールドの値が制御
線18に出力されることになるが、この時Nフィールド
がアクティブであれば、メモリアドレスは連続している
ので、ライトバッファ11からメモリアドレスが出力さ
れる必要はない。従って、Nフィールドの値によって制
御線18を制御する。この制御手順を図6に簡単に示
す。即ち、ライトバッファ制御部15は図5に示すライ
トバッファの3番目のエントリのデータをメモリに転送
する際、レジスタのNフィールドがアクティブか否かを
判定する(ステップS1)。この場合、その判定結果は
肯定となり、高速アクセスモードに設定される(ステッ
プS2)。そして、5番目のエントリのデータを高速ア
クセスモードでメモリに転送する。一方、5番目のエン
トリのNフィールドはアクティブでないので、5番目の
エントリの次のエントリのデータは通常モードで転送す
る(ステップS3)。これにより、メモリの高速アクセ
スモードが使用可能となり、データ転送効率を向上させ
ることができる。
【0023】ライトバッファ11からのデータの出力が
1つ終了すると、カウンタは、“1”減らされる。空き
テイルポインタの指すレジスタ17のエントリのNRフ
ィールドは有効ヘッドポインタの値を書き込まれ、空き
テイルポインタには有効ヘッドポインタの値が書き込ま
れる。また、有効ヘッドポインタの指すレジスタ17の
エントリのNRフィールドはクリアされ、有効ヘッドポ
インタは有効ヘッドポインタの指すレジスタ17のエン
トリのNRフィールドの値に書換えられる。尚、前述し
たように、有効ヘッドポインタのNフィールドが有効な
間は高速アクセスモードによりライトバッファ11の次
のエントリからの出力はデータのみとなるが、Nフィー
ルドが有効であるにもかかわらず、出力がバスの調停な
どでとぎれる場合は、改めてメモリアドレスを出力し直
さなければならないので、高速アクセスモードとしない
よう、Nフィールドをクリアする。
【0024】尚、上述した実施例においては、プロセッ
サからメモリにデータを書き込む際のライトバッファに
ついて説明したが、本発明はこれに限定されることな
く、メモリからディスク装置等の外部メモリにデータを
書き込む際のバッファにも適用することができる。
【0025】
【発明の効果】以上説明したように、本発明のライトバ
ッファ制御機構によれば、メモリ上で連続するデータを
検出し、ライトバッファからメモリへのデータ転送時に
連続したアドレスを転送できるようにしたので、DRA
M等の高速アクセスモードを使用する頻度を高くするこ
とが可能となり、バストラフィックを低減し、データ転
送効率を向上させることができる。従って、スループッ
トの向上を図ることができる。
【図面の簡単な説明】
【図1】本発明のライトバッファ制御機構の一実施例の
ブロック図である。
【図2】従来のライトバッファ制御機構の一例のブロッ
ク図である。
【図3】従来のライトバッファ制御部の動作の説明図で
ある。
【図4】アクセスモードの説明図である。
【図5】ライトバッファ等の格納状態の一例の説明図で
ある。
【図6】メモリのアクセス手順の説明図である。
【符号の説明】
1 プロセッサ制御部 11 ライトバッファ 15 ライトバッファ制御部 22 連想メモリ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 メモリ内の複数の領域に格納される予定
    のデータを一時的に格納するライトバッファと、 当該ライトバッファ内の前記メモリ内で連続するアドレ
    スのデータを検出する連想メモリと、 当該連想メモリにより検出されたデータを前記ライトバ
    ッファから前記メモリに高速アクセスモードで出力する
    ライトバッファ制御部とを備えたことを特徴とするライ
    トバッファ制御機構。
JP5253735A 1993-09-16 1993-09-16 ライトバッファ制御機構 Pending JPH0784875A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5253735A JPH0784875A (ja) 1993-09-16 1993-09-16 ライトバッファ制御機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5253735A JPH0784875A (ja) 1993-09-16 1993-09-16 ライトバッファ制御機構

Publications (1)

Publication Number Publication Date
JPH0784875A true JPH0784875A (ja) 1995-03-31

Family

ID=17255416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5253735A Pending JPH0784875A (ja) 1993-09-16 1993-09-16 ライトバッファ制御機構

Country Status (1)

Country Link
JP (1) JPH0784875A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016085515A (ja) * 2014-10-23 2016-05-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016085515A (ja) * 2014-10-23 2016-05-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
US9620215B2 (en) 2014-10-23 2017-04-11 International Business Machines Corporation Efficiently accessing shared memory by scheduling multiple access requests transferable in bank interleave mode and continuous mode

Similar Documents

Publication Publication Date Title
US7028159B2 (en) Processing device with prefetch instructions having indicator bits specifying cache levels for prefetching
US6718441B2 (en) Method to prefetch data from system memory using a bus interface unit
US6151658A (en) Write-buffer FIFO architecture with random access snooping capability
JPH04306748A (ja) 情報処理装置
US5530835A (en) Computer memory data merging technique for computers with write-back caches
JPH06309230A (ja) バススヌ−プ方法
JPH1196072A (ja) メモリアクセス制御回路
US5813030A (en) Cache memory system with simultaneous access of cache and main memories
JPH0410102B2 (ja)
EP0437712B1 (en) Tandem cache memory
JPH0784875A (ja) ライトバッファ制御機構
JPH02110646A (ja) メモリの先行読出し装置
JPH0212358A (ja) データ転送方式
JPH07152650A (ja) キャッシュ制御装置
JPH06110780A (ja) バッファ記憶装置
JP2001229074A (ja) メモリ制御装置と情報処理装置及びメモリ制御チップ
JPH02307123A (ja) 計算機
JP3299147B2 (ja) キャッシュ制御回路
JPH03116345A (ja) データ処理装置
JPS60142450A (ja) 記憶システム
JPH0769863B2 (ja) データ処理装置
JPH0376501B2 (ja)
JPH07253923A (ja) メモリ制御回路
JPH10293718A (ja) バッファ制御装置
JPH02226447A (ja) コンピユータ・システムおよびその記憶装置アクセス方法