JP2000207133A - メモリアクセスシステム及びメモリアクセス方法 - Google Patents
メモリアクセスシステム及びメモリアクセス方法Info
- Publication number
- JP2000207133A JP2000207133A JP11011088A JP1108899A JP2000207133A JP 2000207133 A JP2000207133 A JP 2000207133A JP 11011088 A JP11011088 A JP 11011088A JP 1108899 A JP1108899 A JP 1108899A JP 2000207133 A JP2000207133 A JP 2000207133A
- Authority
- JP
- Japan
- Prior art keywords
- read
- instruction
- data
- memory
- input
- 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
Links
Abstract
(57)【要約】
【課題】 データをより効率良く読出すことのできるメ
モリアクセスシステムを実現する。 【解決手段】 単一のメモリ#0に対して実行すべきア
クセス命令を順にキューイングし、そのメモリ#0から
読出したデータをデータバッファAに一時保持する。そ
のメモリ#0に対する読出しアクセス命令が連続して命
令キューにキューイングされかつメモリの読出すべきア
ドレスの少なくとも一部が読出しアクセス命令において
共通するときには、その共通するアドレスのデータをデ
ータバッファAに書込み、読出し命令のうちの一方を実
行する際にデータバッファAからデータを読出す。 【効果】 同一領域をアクセスする回数を減らし、コン
トローラとメモリユニットとの間のデータ転送効率を向
上させることができる。
モリアクセスシステムを実現する。 【解決手段】 単一のメモリ#0に対して実行すべきア
クセス命令を順にキューイングし、そのメモリ#0から
読出したデータをデータバッファAに一時保持する。そ
のメモリ#0に対する読出しアクセス命令が連続して命
令キューにキューイングされかつメモリの読出すべきア
ドレスの少なくとも一部が読出しアクセス命令において
共通するときには、その共通するアドレスのデータをデ
ータバッファAに書込み、読出し命令のうちの一方を実
行する際にデータバッファAからデータを読出す。 【効果】 同一領域をアクセスする回数を減らし、コン
トローラとメモリユニットとの間のデータ転送効率を向
上させることができる。
Description
【0001】
【発明の属する技術分野】本発明はメモリアクセスシス
テムに関し、特にアクセス命令を順にキューイングし、
単一のメモリに対して順にアクセスを行うメモリアクセ
スシステムに関する。
テムに関し、特にアクセス命令を順にキューイングし、
単一のメモリに対して順にアクセスを行うメモリアクセ
スシステムに関する。
【0002】
【従来の技術】従来、この種のメモリアクセスシステム
は、図7に示されているように、外部記憶装置100
と、その装置をアクセスするためのホストコンピュータ
200とから構成されている。そして、外部記憶装置1
00は、複数のメモリ#0〜#mから構成されるメモリ
ユニット100−1と、それら複数のメモリ#0〜#m
に対応して設けられた入出力命令キュー101−0〜1
01−mを含むコントローラ100−2とから構成され
ている。各入出力命令キュー101−0〜101−m
は、キューQUEUE0〜QUEUEnから構成されて
いる。また、コントローラ100−2内には、各入出力
命令キューの制御を行うためのマイクロプログラム10
2が設けられている。
は、図7に示されているように、外部記憶装置100
と、その装置をアクセスするためのホストコンピュータ
200とから構成されている。そして、外部記憶装置1
00は、複数のメモリ#0〜#mから構成されるメモリ
ユニット100−1と、それら複数のメモリ#0〜#m
に対応して設けられた入出力命令キュー101−0〜1
01−mを含むコントローラ100−2とから構成され
ている。各入出力命令キュー101−0〜101−m
は、キューQUEUE0〜QUEUEnから構成されて
いる。また、コントローラ100−2内には、各入出力
命令キューの制御を行うためのマイクロプログラム10
2が設けられている。
【0003】つまり、外部記憶装置100は、複数メモ
リユニットとそれらを制御する1つのコントローラによ
り構成される外部記憶装置である。コントローラ100
−2はマイクロプログラムにより動作を制御するもの
で、ホストコンピュータからの入出力命令をメモリユニ
ットごとにキューイングする機能を持っている。
リユニットとそれらを制御する1つのコントローラによ
り構成される外部記憶装置である。コントローラ100
−2はマイクロプログラムにより動作を制御するもの
で、ホストコンピュータからの入出力命令をメモリユニ
ットごとにキューイングする機能を持っている。
【0004】あるメモリユニットに対して、入出力命令
0と入出力命令1とがキューイングされている時の動作
を例として説明する。なお、入出力命令は受取った順に
キューに格納され、受取った順に実行されるものとす
る。
0と入出力命令1とがキューイングされている時の動作
を例として説明する。なお、入出力命令は受取った順に
キューに格納され、受取った順に実行されるものとす
る。
【0005】今、入出力命令0、入出力命令1、という
順番で受取ったとするとキューの内容は図8のようにな
る。それぞれの入出力命令の内容は以下の通りであるも
のとする。
順番で受取ったとするとキューの内容は図8のようにな
る。それぞれの入出力命令の内容は以下の通りであるも
のとする。
【0006】入出力命令0:x番のメモリユニットの5
0番地から200ワード分データを読出す。
0番地から200ワード分データを読出す。
【0007】入出力命令1:x番のメモリユニットの1
50番地から200ワード分データを読出す。
50番地から200ワード分データを読出す。
【0008】これらの入出力命令を順次実行すると、図
9に示されているようにx番のメモリユニットの同一部
分(斜線部分)を2度読出すことになる。すなわち、x
番のメモリユニットの150番地から250番地につい
て連続して(重複して)読出すことになる。
9に示されているようにx番のメモリユニットの同一部
分(斜線部分)を2度読出すことになる。すなわち、x
番のメモリユニットの150番地から250番地につい
て連続して(重複して)読出すことになる。
【0009】
【発明が解決しようとする課題】上述したように、メモ
リユニットの共通部分を連続して読出すことは無駄であ
る。特に磁気ディスク装置のように目的のデータが格納
されている位置までヘッドを移動させる、といったよう
な機械的動作を伴う場合にはインパクトが大きいという
欠点がある。
リユニットの共通部分を連続して読出すことは無駄であ
る。特に磁気ディスク装置のように目的のデータが格納
されている位置までヘッドを移動させる、といったよう
な機械的動作を伴う場合にはインパクトが大きいという
欠点がある。
【0010】本発明は上述した従来技術の欠点を解決す
るためになされたものであり、その目的はデータをより
効率良く読出すことのできるメモリアクセスシステムを
提供することである。
るためになされたものであり、その目的はデータをより
効率良く読出すことのできるメモリアクセスシステムを
提供することである。
【0011】
【課題を解決するための手段】本発明によるメモリアク
セスシステムは、単一のメモリに対して実行すべきアク
セス命令を順にキューイングする命令キューと、前記メ
モリから読出したデータを一時保持するデータバッファ
と、前記メモリに対する第1及び第2の読出しアクセス
命令が連続して前記命令キューにキューイングされかつ
前記メモリの読出すべきアドレスの少なくとも一部が前
記第1及び第2の読出しアクセス命令において共通する
ときその共通するアドレスのデータを前記データバッフ
ァに書込む制御部とを含み、前記第1及び第2の読出し
命令のうちの一方を実行する際に前記データバッファか
らデータを読出すようにしたことを特徴とする。また、
前記制御部は、前記第1のアクセス読出し命令と前記第
2のアクセス読出し命令との間に前記メモリに対する書
込みアクセス命令が前記命令キューにキューイングされ
ている場合には、前記データバッファからのデータの読
出しを抑止することを特徴とする。さらにまた、前記デ
ータバッファの使用状態を示すフラグを更に含み、この
フラグにより前記データバッファが使用中でないことが
示されたときに前記メモリから読出したデータを該デー
タバッファに保持するようにしたことを特徴とする。
セスシステムは、単一のメモリに対して実行すべきアク
セス命令を順にキューイングする命令キューと、前記メ
モリから読出したデータを一時保持するデータバッファ
と、前記メモリに対する第1及び第2の読出しアクセス
命令が連続して前記命令キューにキューイングされかつ
前記メモリの読出すべきアドレスの少なくとも一部が前
記第1及び第2の読出しアクセス命令において共通する
ときその共通するアドレスのデータを前記データバッフ
ァに書込む制御部とを含み、前記第1及び第2の読出し
命令のうちの一方を実行する際に前記データバッファか
らデータを読出すようにしたことを特徴とする。また、
前記制御部は、前記第1のアクセス読出し命令と前記第
2のアクセス読出し命令との間に前記メモリに対する書
込みアクセス命令が前記命令キューにキューイングされ
ている場合には、前記データバッファからのデータの読
出しを抑止することを特徴とする。さらにまた、前記デ
ータバッファの使用状態を示すフラグを更に含み、この
フラグにより前記データバッファが使用中でないことが
示されたときに前記メモリから読出したデータを該デー
タバッファに保持するようにしたことを特徴とする。
【0012】一方、本発明によるメモリアクセス方法
は、単一のメモリに対して実行すべきアクセス命令を順
にキューイングするキューイングステップと、前記メモ
リから読出したデータをデータバッファに一時保持する
保持ステップと、前記メモリに対する第1及び第2の読
出しアクセス命令が連続して前記命令キューにキューイ
ングされかつ前記メモリの読出すべきアドレスの少なく
とも一部が前記第1及び第2の読出しアクセス命令にお
いて共通するときその共通するアドレスのデータを前記
データバッファに書込む書込みステップと、前記第1及
び第2の読出し命令のうちの一方を実行する際に前記デ
ータバッファからデータを読出す読出し制御ステップと
を含むことを特徴とする。前記読出し制御ステップにお
いては、前記第1のアクセス読出し命令と前記第2のア
クセス読出し命令との間に前記メモリに対する書込みア
クセス命令が前記命令キューにキューイングされている
場合には、前記データバッファからのデータの読出しを
抑止することを特徴とする。前記保持ステップにおいて
は、前記データバッファの使用状態を示すフラグにより
前記データバッファが使用中でないことが示されたとき
に前記メモリから読出したデータを該データバッファに
保持するようにしたことを特徴とする。
は、単一のメモリに対して実行すべきアクセス命令を順
にキューイングするキューイングステップと、前記メモ
リから読出したデータをデータバッファに一時保持する
保持ステップと、前記メモリに対する第1及び第2の読
出しアクセス命令が連続して前記命令キューにキューイ
ングされかつ前記メモリの読出すべきアドレスの少なく
とも一部が前記第1及び第2の読出しアクセス命令にお
いて共通するときその共通するアドレスのデータを前記
データバッファに書込む書込みステップと、前記第1及
び第2の読出し命令のうちの一方を実行する際に前記デ
ータバッファからデータを読出す読出し制御ステップと
を含むことを特徴とする。前記読出し制御ステップにお
いては、前記第1のアクセス読出し命令と前記第2のア
クセス読出し命令との間に前記メモリに対する書込みア
クセス命令が前記命令キューにキューイングされている
場合には、前記データバッファからのデータの読出しを
抑止することを特徴とする。前記保持ステップにおいて
は、前記データバッファの使用状態を示すフラグにより
前記データバッファが使用中でないことが示されたとき
に前記メモリから読出したデータを該データバッファに
保持するようにしたことを特徴とする。
【0013】要するに、メモリアクセスの際、連続して
アクセスの対象となるデータをデータバッファに一時保
持し、このデータバッファから読出すことにより、複数
の読出し命令がメモリユニット上の同一領域をアクセス
する回数を減らしているのである。こうすることによっ
て、コントローラとメモリユニットとの間のデータ転送
効率を向上させることができるのである。
アクセスの対象となるデータをデータバッファに一時保
持し、このデータバッファから読出すことにより、複数
の読出し命令がメモリユニット上の同一領域をアクセス
する回数を減らしているのである。こうすることによっ
て、コントローラとメモリユニットとの間のデータ転送
効率を向上させることができるのである。
【0014】
【発明の実施の形態】次に、本発明の実施の一形態につ
いて図面を参照して説明する。なお、以下の説明におい
て参照する各図においては、他の図と同等部分には同一
符号が付されている。
いて図面を参照して説明する。なお、以下の説明におい
て参照する各図においては、他の図と同等部分には同一
符号が付されている。
【0015】図1は本発明によるメモリアクセスシステ
ムの実施の一形態を示すブロック図である。同図におい
て、図7と同等部分は同一符号により示されており、そ
の部分の詳細な説明は省略する。図1に示されているよ
うに、本システムは、マイクロプログラム102によっ
て書込み予約、読出し及び書込み等の命令を出力するバ
ッファ制御部Bと、このバッファ制御部Bによって読出
し及び書込みの制御がなされるバッファAと、バッファ
制御部Bによって切替え制御されるセレクタSとが追加
された構成である。
ムの実施の一形態を示すブロック図である。同図におい
て、図7と同等部分は同一符号により示されており、そ
の部分の詳細な説明は省略する。図1に示されているよ
うに、本システムは、マイクロプログラム102によっ
て書込み予約、読出し及び書込み等の命令を出力するバ
ッファ制御部Bと、このバッファ制御部Bによって読出
し及び書込みの制御がなされるバッファAと、バッファ
制御部Bによって切替え制御されるセレクタSとが追加
された構成である。
【0016】なお、同図においては、メモリ#0につい
てのみの構成が示されているが、他のメモリ#1〜#m
(図示せず)についてもバッファ及びセレクタが設けら
れ、マイクロプログラム102によって制御されるもの
とする。また、入出力命令キューも、他のメモリ#1〜
#mに対応して設けられ、マイクロプログラム102に
よって制御されるものとする。
てのみの構成が示されているが、他のメモリ#1〜#m
(図示せず)についてもバッファ及びセレクタが設けら
れ、マイクロプログラム102によって制御されるもの
とする。また、入出力命令キューも、他のメモリ#1〜
#mに対応して設けられ、マイクロプログラム102に
よって制御されるものとする。
【0017】つまり、本システムでは、図2に示されて
いるように、コントローラ側に、共通読出し領域のデー
タを数十あるいは数百ワード格納できるバッファAとバ
ッファ制御部Bとを設けているのである。バッファ制御
部Bはマイクロプログラムから“nワード読出す”又は
“転送データの残レングスがmワードになったらnワー
ド書込む”という指示を受取ると、バッファAの先頭か
らnワード読出す、又は転送データの残レングスがmワ
ードになるとバッファAの先頭からnワード書込む制御
を行う。さらに、バッファAが使用中かどうか判断する
ためのフラグ(バッファA使用中フラグ)を持ち、その
管理を行う。バッファA使用中フラグは、マイクロプロ
グラムからバッファA書込み予約指示(入出力命令キュ
ーイング処理にて共通読出し領域を共有すること決まっ
たときに行う)を受取ることにより“1”、バッファA
の内容が読出されたとき“0”にする。また、入出力命
令をキューに格納する際、図3に示されているように、
以下のフラグを付加する。すなわち、 共通領域データバッファ格納フラグ 共通領域データバッファ参照フラグ である。
いるように、コントローラ側に、共通読出し領域のデー
タを数十あるいは数百ワード格納できるバッファAとバ
ッファ制御部Bとを設けているのである。バッファ制御
部Bはマイクロプログラムから“nワード読出す”又は
“転送データの残レングスがmワードになったらnワー
ド書込む”という指示を受取ると、バッファAの先頭か
らnワード読出す、又は転送データの残レングスがmワ
ードになるとバッファAの先頭からnワード書込む制御
を行う。さらに、バッファAが使用中かどうか判断する
ためのフラグ(バッファA使用中フラグ)を持ち、その
管理を行う。バッファA使用中フラグは、マイクロプロ
グラムからバッファA書込み予約指示(入出力命令キュ
ーイング処理にて共通読出し領域を共有すること決まっ
たときに行う)を受取ることにより“1”、バッファA
の内容が読出されたとき“0”にする。また、入出力命
令をキューに格納する際、図3に示されているように、
以下のフラグを付加する。すなわち、 共通領域データバッファ格納フラグ 共通領域データバッファ参照フラグ である。
【0018】これらのフラグについて、読出しデータの
流れを示す図4を参照して説明する。まず、共通領域デ
ータバッファ格納フラグが有効となる条件は、共通読出
し領域検出 かつ バッファA使用中フラグ=0 かつ
比較する読出し命令の間に書込み命令がある場合は、
共通読出し領域に書込まれないである。本フラグが
“1”の場合、メモリユニットから読出したデータをパ
スP1でホストコンピュータに送ると同時に、パスP2
よりバッファAにそのデータを格納する(マイクロプロ
グラムの指示に従う)。“0”の場合、メモリユニット
から読出したデータはバッファAに格納しない。
流れを示す図4を参照して説明する。まず、共通領域デ
ータバッファ格納フラグが有効となる条件は、共通読出
し領域検出 かつ バッファA使用中フラグ=0 かつ
比較する読出し命令の間に書込み命令がある場合は、
共通読出し領域に書込まれないである。本フラグが
“1”の場合、メモリユニットから読出したデータをパ
スP1でホストコンピュータに送ると同時に、パスP2
よりバッファAにそのデータを格納する(マイクロプロ
グラムの指示に従う)。“0”の場合、メモリユニット
から読出したデータはバッファAに格納しない。
【0019】次に、共通領域データバッファ参照フラグ
が有効になる条件は、共通読出し領域検出 かつ バッ
ファA使用中フラグ=0 かつ 比較する読出し命令の
間に書込み命令がある場合は、共通読出し領域に書込ま
れないである。本フラグが“1”の場合、パスP3を使
ってバッファAに格納してある必要なデータ(マイクロ
プログラムの指示に従う)をホストコンピュータに送っ
た後、パスP1を使ってメモリユニットから読出したデ
ータをホストコンピュータへ送る。“0”の場合、バッ
ファAのデータは使用しない。
が有効になる条件は、共通読出し領域検出 かつ バッ
ファA使用中フラグ=0 かつ 比較する読出し命令の
間に書込み命令がある場合は、共通読出し領域に書込ま
れないである。本フラグが“1”の場合、パスP3を使
ってバッファAに格納してある必要なデータ(マイクロ
プログラムの指示に従う)をホストコンピュータに送っ
た後、パスP1を使ってメモリユニットから読出したデ
ータをホストコンピュータへ送る。“0”の場合、バッ
ファAのデータは使用しない。
【0020】以上の構成を追加し、以下の動作を実現す
る。すなわち、入出力キューに複数の入出力命令が存在
する時、連続する読出し命令同士の比較を行う。そし
て、最初の読出し命令の実行時に、共通読出し領域のデ
ータをバッファAに格納しておき、次の読出し命令実行
時、共通読出し領域のデータはバッファAに格納されて
いるものを使用し、メモリユニットに対する処理は行わ
ない。
る。すなわち、入出力キューに複数の入出力命令が存在
する時、連続する読出し命令同士の比較を行う。そし
て、最初の読出し命令の実行時に、共通読出し領域のデ
ータをバッファAに格納しておき、次の読出し命令実行
時、共通読出し領域のデータはバッファAに格納されて
いるものを使用し、メモリユニットに対する処理は行わ
ない。
【0021】ここで、図5を参照してキューイング処理
について説明する。同図に示されているように、まず、
入出力命令が読出し命令であるかどうか判断する(ステ
ップS51)。読出し命令でない場合には、その入出力
命令をキューに格納してキューイング処理は終了となる
(ステップS51→S61)。
について説明する。同図に示されているように、まず、
入出力命令が読出し命令であるかどうか判断する(ステ
ップS51)。読出し命令でない場合には、その入出力
命令をキューに格納してキューイング処理は終了となる
(ステップS51→S61)。
【0022】ステップS51において、入出力命令が読
出し命令である場合には、バッファA使用中フラグが
“0”であるかどうかを判断する(ステップS51→S
52)。バッファA使用中フラグが“0”である場合に
は、前にキューイングされている読出し命令があるかど
うかを判断する(ステップS52→S53)。前にキュ
ーイングされている読出し命令がある場合には、アドレ
ス及びレングスを比較する(ステップS53→S5
4)。
出し命令である場合には、バッファA使用中フラグが
“0”であるかどうかを判断する(ステップS51→S
52)。バッファA使用中フラグが“0”である場合に
は、前にキューイングされている読出し命令があるかど
うかを判断する(ステップS52→S53)。前にキュ
ーイングされている読出し命令がある場合には、アドレ
ス及びレングスを比較する(ステップS53→S5
4)。
【0023】この比較の後、読出し領域が重なっている
かどうか判断する(ステップS54→S55)。読出し
領域が重なっている場合には、比較する読出し命令の間
に書込み命令があるかどうかを判断する(ステップS5
5→S56)。読出し命令の間に書込み命令がある場
合、共通読出し領域にデータを書込まないかどうかを判
断する(ステップS56→S57)。共通読出し領域に
データを書込まない場合には、比較する入出力命令に、
共通領域データバッファ格納フラグ“0”、共通領域デ
ータバッファ参照フラグ“1”を付加する(ステップS
58)。次に、比較される入出力命令の共通領域データ
バッファ格納フラグを“1”とする(ステップS5
9)。そして、バッファA制御部Bに書込み予約指示を
行い(ステップS60)、その入出力命令をキューに格
納してキューイング処理は終了となる(ステップS60
→S61)。
かどうか判断する(ステップS54→S55)。読出し
領域が重なっている場合には、比較する読出し命令の間
に書込み命令があるかどうかを判断する(ステップS5
5→S56)。読出し命令の間に書込み命令がある場
合、共通読出し領域にデータを書込まないかどうかを判
断する(ステップS56→S57)。共通読出し領域に
データを書込まない場合には、比較する入出力命令に、
共通領域データバッファ格納フラグ“0”、共通領域デ
ータバッファ参照フラグ“1”を付加する(ステップS
58)。次に、比較される入出力命令の共通領域データ
バッファ格納フラグを“1”とする(ステップS5
9)。そして、バッファA制御部Bに書込み予約指示を
行い(ステップS60)、その入出力命令をキューに格
納してキューイング処理は終了となる(ステップS60
→S61)。
【0024】なお、ステップS52〜S57において、
判断結果がNoであれば、入出力命令に共通領域データ
バッファ格納フラグ“0”共通領域データバッファ参照
フラグ“0”を付加し(ステップS62)、その入出力
命令をキューに格納してキューイング処理は終了となる
(ステップS60→S61)。
判断結果がNoであれば、入出力命令に共通領域データ
バッファ格納フラグ“0”共通領域データバッファ参照
フラグ“0”を付加し(ステップS62)、その入出力
命令をキューに格納してキューイング処理は終了となる
(ステップS60→S61)。
【0025】次に図6を参照してデータ読出し動作につ
いて説明する。同図に示されているように、まず、共通
領域データバッファ参照フラグが“1”であるかどうか
を判断する(ステップS61)、共通領域データバッフ
ァ参照フラグが“1”である場合は、バッファAから必
要なデータを読出し、ホストコンピュータへ送る(ステ
ップS61→S62)。その後、入出力命令のアドレ
ス、レングスに従ってメモリユニットからデータを読出
し、ホストコンピュータへ送る(ステップS62→6
3)。一方、共通領域データバッファ参照フラグが
“0”である場合は、バッファAをアクセスせずに、入
出力命令のアドレス、レングスに従ってメモリユニット
からデータを読出し、ホストコンピュータへ送る(ステ
ップS61→63)。
いて説明する。同図に示されているように、まず、共通
領域データバッファ参照フラグが“1”であるかどうか
を判断する(ステップS61)、共通領域データバッフ
ァ参照フラグが“1”である場合は、バッファAから必
要なデータを読出し、ホストコンピュータへ送る(ステ
ップS61→S62)。その後、入出力命令のアドレ
ス、レングスに従ってメモリユニットからデータを読出
し、ホストコンピュータへ送る(ステップS62→6
3)。一方、共通領域データバッファ参照フラグが
“0”である場合は、バッファAをアクセスせずに、入
出力命令のアドレス、レングスに従ってメモリユニット
からデータを読出し、ホストコンピュータへ送る(ステ
ップS61→63)。
【0026】以下、メモリに対するより具体的なアクセ
ス動作例を説明する。 (例1)ある外部記憶装置において、入出力命令0、入
出力命令1の順で受取った場合の動作について説明す
る。入出力命令キューは空、バッファAは100ワード
のデータが格納できるものとする。
ス動作例を説明する。 (例1)ある外部記憶装置において、入出力命令0、入
出力命令1の順で受取った場合の動作について説明す
る。入出力命令キューは空、バッファAは100ワード
のデータが格納できるものとする。
【0027】入出力命令0及び入出力命令1の内容は、 入出力命令0:読出し命令 アドレス=50番地 レングス=200ワード 入出力命令1:読出し命令 アドレス=150番地 レングス=200ワード とする。
【0028】入出力命令0を受取ったとき、読出し命令
で、かつ、以前にキューイングされている入出力命令が
ないので以下の内容をキューに格納する。
で、かつ、以前にキューイングされている入出力命令が
ないので以下の内容をキューに格納する。
【0029】共通領域データバッファ格納フラグ=0 共通領域データバッファ参照フラグ=0 入力出力命令0:読出し命令 アドレス=50番地 レングス=200ワード 入出力命令1を受取ったとき、読出し命令であり、か
つ、バッファAの使用中フラグ=0で、かつ、以前に入
出力命令0がキューイングされているので、入出力命令
0と入出力命令1とのアドレス及びレングスを比較する
その結果、アドレス150番地から100ワード重な
っていることがわかる。よって、入出力命令1について
以下の内容をキューに格納する。
つ、バッファAの使用中フラグ=0で、かつ、以前に入
出力命令0がキューイングされているので、入出力命令
0と入出力命令1とのアドレス及びレングスを比較する
その結果、アドレス150番地から100ワード重な
っていることがわかる。よって、入出力命令1について
以下の内容をキューに格納する。
【0030】共通領域データバッファ格納フラグ=0 共通領域データバッファ参照フラグ=1 入出力命令1:読出し命令 アドレス=250番地 レングス=100ワード この時、入出力命令1のアドレスを150→250番
地、レングスを200ワード→100ワードに変更す
る。アドレス150番地から100ワードのデータバッ
ファはバッファAのデータを使用するため、メモリユニ
ットから読出す必要がないからである。
地、レングスを200ワード→100ワードに変更す
る。アドレス150番地から100ワードのデータバッ
ファはバッファAのデータを使用するため、メモリユニ
ットから読出す必要がないからである。
【0031】さらに、入出力命令0のキューイング内容
について、共通領域データバッファ格納フラグ=1、バ
ッファAの使用中フラグを“1”にする。
について、共通領域データバッファ格納フラグ=1、バ
ッファAの使用中フラグを“1”にする。
【0032】入出力命令0を実行したとき、バッファA
にはメモリユニットの150番地から100ワードのデ
ータが格納される。
にはメモリユニットの150番地から100ワードのデ
ータが格納される。
【0033】入出力命令1の実行においては、バッファ
Aのデータをホストコンピュータへ送った後、キューに
格納された入出力命令1によってメモリユニットから読
出されたデータ(アドレス250番地から100ワー
ド)がホストコンピュータへ送る。
Aのデータをホストコンピュータへ送った後、キューに
格納された入出力命令1によってメモリユニットから読
出されたデータ(アドレス250番地から100ワー
ド)がホストコンピュータへ送る。
【0034】以上により入出力命令1の実行において、
メモリユニットから100ワードのデータを読出す処理
が省略できた。 (例2)ある外部記憶装置において、入出力命令0、入
出力命令1、入出力命令2の順で受取った場合の動作に
ついて説明する。入出力命令キューは空、バッファAは
100ワードのデータが格納できるものとする。
メモリユニットから100ワードのデータを読出す処理
が省略できた。 (例2)ある外部記憶装置において、入出力命令0、入
出力命令1、入出力命令2の順で受取った場合の動作に
ついて説明する。入出力命令キューは空、バッファAは
100ワードのデータが格納できるものとする。
【0035】入出力命令0、入出力命令1、入出力命令
2の内容は、 入出力命令0:読出し命令 アドレス=50番地 レングス=200ワード 入出力命令1:読出し命令 アドレス=150番地 レングス=200ワード 入出力命令2:読出し命令 アドレス=300番地 レングス=200ワード とする。
2の内容は、 入出力命令0:読出し命令 アドレス=50番地 レングス=200ワード 入出力命令1:読出し命令 アドレス=150番地 レングス=200ワード 入出力命令2:読出し命令 アドレス=300番地 レングス=200ワード とする。
【0036】入出力命令0、入出力命令1のキューイン
グ及び読出し処理については、(例1)と同じ。以下に
入出力命令2について説明する。
グ及び読出し処理については、(例1)と同じ。以下に
入出力命令2について説明する。
【0037】入出力命令2を受取ったとき、読出し命令
ではあるが、バッファAの使用中フラグ=1である。よ
って、入出力命令2について以下の内容をキューに格納
する。
ではあるが、バッファAの使用中フラグ=1である。よ
って、入出力命令2について以下の内容をキューに格納
する。
【0038】共通領域データバッファ格納フラグ=0 共通領域データバッファ参照フラグ=0 入出力命令2:読出し命令 アドレス=300番地 レングス=200ワード 命令の実行においては、キューに格納されたアドレス、
レングスに従ってメモリユニットからデータが読出され
る。バッファAにデータは格納されない。 (例3)ある外部記憶装置において、入出力命令0、入
出力命令1、入出力命令2、の順で受取った場合の動作
について説明する。入出力命令キューは空、バッファA
は100ワードのデータが格納できるものとする。
レングスに従ってメモリユニットからデータが読出され
る。バッファAにデータは格納されない。 (例3)ある外部記憶装置において、入出力命令0、入
出力命令1、入出力命令2、の順で受取った場合の動作
について説明する。入出力命令キューは空、バッファA
は100ワードのデータが格納できるものとする。
【0039】入出力命令0、入出力命令1、入出力命令
2の内容は、 入出力命令0:読出し命令 アドレス=50番地 レングス=200ワード 入出力命令1:読出し命令 アドレス=0番地 レングス=30ワード 入出力命令2:読出し命令 アドレス=150番地 レングス=200ワード とする。
2の内容は、 入出力命令0:読出し命令 アドレス=50番地 レングス=200ワード 入出力命令1:読出し命令 アドレス=0番地 レングス=30ワード 入出力命令2:読出し命令 アドレス=150番地 レングス=200ワード とする。
【0040】入出力命令0を受取ったとき、読出し命令
であり、かつ、以前にキューイングされている入出力命
令がないので、以下の内容をキューに格納する。
であり、かつ、以前にキューイングされている入出力命
令がないので、以下の内容をキューに格納する。
【0041】共通領域データバッファ格納フラグ=0 共通領域データバッファ参照フラグ=0 入出力命令0:読出し命令 アドレス=50番地 レングス=200ワード 入出力命令1を受取ったとき、書込み命令であるので以
下の内容をキューに格納する。
下の内容をキューに格納する。
【0042】入出力命令1:読出し命令 アドレス=0番地 レングス=30ワード 入出力命令1を受取ったとき、読出し命令で、かつ、バ
ッファAの使用中フラグ=0で、かつ、以前に読出し命
令である入出力命令0がキューイングされているので、
入出力命令0と入出力命令1とのアドレス及びレングス
を比較する。その結果、アドレス150番地から100
ワード重なっていることが判る。しかし、入出力命令0
と入出力命令2との間に書込み命令である入出力命令1
が存在するため、それによりアドレス150番地から1
00ワードのデータの領域が書換えられるかチェックす
る。
ッファAの使用中フラグ=0で、かつ、以前に読出し命
令である入出力命令0がキューイングされているので、
入出力命令0と入出力命令1とのアドレス及びレングス
を比較する。その結果、アドレス150番地から100
ワード重なっていることが判る。しかし、入出力命令0
と入出力命令2との間に書込み命令である入出力命令1
が存在するため、それによりアドレス150番地から1
00ワードのデータの領域が書換えられるかチェックす
る。
【0043】本例の場合、書換えられないので、入出力
命令2について以下の内容をキューに格納する。
命令2について以下の内容をキューに格納する。
【0044】共通領域データバッファ格納フラグ=0 共通領域データバッファ参照フラグ=1 入出力命令1:読出し命令 アドレス=250番地 レングス=100ワード さらに、入出力命令0のキューイング内容について、共
通領域データバッファ格納フラグ=1、バッファAの使
用中フラグを“1”にする。
通領域データバッファ格納フラグ=1、バッファAの使
用中フラグを“1”にする。
【0045】読出し処理については(例1)と同じなの
で、説明を省略する。 (例4)ある外部記憶装置において、入出力命令0、入
出力命令1、入出力命令2の順で受取った場合の動作に
ついて説明する。入出力命令キューは空、バッファAは
100ワードのデータが格納できるものとする。
で、説明を省略する。 (例4)ある外部記憶装置において、入出力命令0、入
出力命令1、入出力命令2の順で受取った場合の動作に
ついて説明する。入出力命令キューは空、バッファAは
100ワードのデータが格納できるものとする。
【0046】入出力命令0、入出力命令1、入出力命令
2の内容は、 入出力命令0:読出し命令 アドレス=50番地 レングス=200ワード 入出力命令1:読出し命令 アドレス=100番地 レングス=200ワード 入出力命令2:読出し命令 アドレス=150番地 レングス=200ワード とする。
2の内容は、 入出力命令0:読出し命令 アドレス=50番地 レングス=200ワード 入出力命令1:読出し命令 アドレス=100番地 レングス=200ワード 入出力命令2:読出し命令 アドレス=150番地 レングス=200ワード とする。
【0047】入出力命令0を受取ったとき、読出し命令
で、かつ、以前にキューイングされている入出力命令が
ないので以下の内容をキューに格納する。
で、かつ、以前にキューイングされている入出力命令が
ないので以下の内容をキューに格納する。
【0048】共通領域データバッファ格納フラグ=0 共通領域データバッファ参照フラグ=0 入出力命令0:読出し命令 アドレス=50番地 レングス=200ワード 入出力命令1を受取ったとき、書込み命令であるので以
下の内容をキューに格納する。
下の内容をキューに格納する。
【0049】入出力命令1:書込み命令 アドレス=100番地 レングス=200ワード 入出力命令1を受取ったとき、読出し命令で、かつ、バ
ッファAの使用中フラグ=0で、かつ、以前に読出し命
令である入出力命令0がキューイングされているので、
入出力命令0と入出力命令1とのアドレス及びレングス
を比較する。その結果、アドレス150番地から100
ワード重なっていることが判る。しかし、入出力命令0
と入出力命令2との間に書込み命令である入出力命令1
が存在するため、それによりアドレス150番地から1
00ワードのデータの領域が書換えられるかチェックす
る。
ッファAの使用中フラグ=0で、かつ、以前に読出し命
令である入出力命令0がキューイングされているので、
入出力命令0と入出力命令1とのアドレス及びレングス
を比較する。その結果、アドレス150番地から100
ワード重なっていることが判る。しかし、入出力命令0
と入出力命令2との間に書込み命令である入出力命令1
が存在するため、それによりアドレス150番地から1
00ワードのデータの領域が書換えられるかチェックす
る。
【0050】本例の場合、書換えられてしまうので、入
出力命令2について以下の内容をキューに格納する。
出力命令2について以下の内容をキューに格納する。
【0051】共通領域データバッファ格納フラグ=0 共通領域データバッファ参照フラグ=0 入出力命令1:読出し命令 アドレス=150番地 レングス=200ワード実行においては入出力命令0、
入出力命令2共に、キューに格納されたアドレス、レン
グスに従ってメモリユニットからデータが読出される。
バッファAにデータは格納されない。
入出力命令2共に、キューに格納されたアドレス、レン
グスに従ってメモリユニットからデータが読出される。
バッファAにデータは格納されない。
【0052】ここで、本システムにおいては、単一のメ
モリに対して実行すべきアクセス命令を順にキューイン
グし、そのメモリから読出したデータをデータバッファ
に一時保持し、そのメモリに対する第1及び第2の読出
しアクセス命令が連続して命令キューにキューイングさ
れかつメモリの読出すべきアドレスの少なくとも一部が
第1及び第2の読出しアクセス命令において共通すると
きその共通するアドレスのデータをデータバッファに書
込み、第1及び第2の読出し命令のうちの一方を実行す
る際にデータバッファからデータを読出すというメモリ
アクセス方法が実行されていることになる。このよう
に、複数の読出し命令がメモリユニット上の同一領域を
アクセスする回数を減らすことによって、コントローラ
とメモリユニットとの間のデータ転送効率を向上させる
ことができるのである。
モリに対して実行すべきアクセス命令を順にキューイン
グし、そのメモリから読出したデータをデータバッファ
に一時保持し、そのメモリに対する第1及び第2の読出
しアクセス命令が連続して命令キューにキューイングさ
れかつメモリの読出すべきアドレスの少なくとも一部が
第1及び第2の読出しアクセス命令において共通すると
きその共通するアドレスのデータをデータバッファに書
込み、第1及び第2の読出し命令のうちの一方を実行す
る際にデータバッファからデータを読出すというメモリ
アクセス方法が実行されていることになる。このよう
に、複数の読出し命令がメモリユニット上の同一領域を
アクセスする回数を減らすことによって、コントローラ
とメモリユニットとの間のデータ転送効率を向上させる
ことができるのである。
【0053】
【発明の効果】以上説明したように本発明は、単一のメ
モリに対して実行すべきアクセス命令を順にキューイン
グし、そのメモリから読出したデータをデータバッファ
に一時保持し、そのメモリに対する読出しアクセス命令
が連続して命令キューにキューイングされかつメモリの
読出すべきアドレスの少なくとも一部がそれら読出しア
クセス命令において共通するときその共通するアドレス
のデータをデータバッファに書込み、それら読出し命令
のうちの一方を実行する際にデータバッファからデータ
を読出すことにより、同一領域をアクセスする回数を減
らすことによって、コントローラとメモリユニットとの
間のデータ転送効率を向上させることができるという効
果がある。
モリに対して実行すべきアクセス命令を順にキューイン
グし、そのメモリから読出したデータをデータバッファ
に一時保持し、そのメモリに対する読出しアクセス命令
が連続して命令キューにキューイングされかつメモリの
読出すべきアドレスの少なくとも一部がそれら読出しア
クセス命令において共通するときその共通するアドレス
のデータをデータバッファに書込み、それら読出し命令
のうちの一方を実行する際にデータバッファからデータ
を読出すことにより、同一領域をアクセスする回数を減
らすことによって、コントローラとメモリユニットとの
間のデータ転送効率を向上させることができるという効
果がある。
【図1】本発明の実施の一形態によるメモリアクセスシ
ステムの構成を示すブロック図である。
ステムの構成を示すブロック図である。
【図2】図1中のバッファとバッファ制御部との関係を
示す図である。
示す図である。
【図3】図1のメモリアクセスシステムにおける入出力
命令の形式を示す図である。
命令の形式を示す図である。
【図4】図1中のバッファとセレクタとの関係を示す図
である。
である。
【図5】図1のメモリアクセスシステムにおけるキュー
イング処理を示すフローチャートである。
イング処理を示すフローチャートである。
【図6】図1のメモリアクセスシステムにおけるデータ
読出し動作を示すフローチャートである。
読出し動作を示すフローチャートである。
【図7】従来のメモリアクセスシステムの構成を示すブ
ロック図である。
ロック図である。
【図8】入出力命令のキューイング状態を示す図であ
る。
る。
【図9】メモリに対するアクセス領域が重複する状態を
示す図である。
示す図である。
100 外部記憶装置 100−1 メモリユニット 100−2 コントローラ 101−0〜101−m 入出力命令キュー 102 マイクロプログラム 200 ホストコンピュータ A バッファ B バッファ制御部
Claims (6)
- 【請求項1】 単一のメモリに対して実行すべきアクセ
ス命令を順にキューイングする命令キューと、前記メモ
リから読出したデータを一時保持するデータバッファ
と、前記メモリに対する第1及び第2の読出しアクセス
命令が連続して前記命令キューにキューイングされかつ
前記メモリの読出すべきアドレスの少なくとも一部が前
記第1及び第2の読出しアクセス命令において共通する
ときその共通するアドレスのデータを前記データバッフ
ァに書込む制御部とを含み、前記第1及び第2の読出し
命令のうちの一方を実行する際に前記データバッファか
らデータを読出すようにしたことを特徴とするメモリア
クセスシステム。 - 【請求項2】 前記制御部は、前記第1のアクセス読出
し命令と前記第2のアクセス読出し命令との間に前記メ
モリに対する書込みアクセス命令が前記命令キューにキ
ューイングされている場合には、前記データバッファか
らのデータの読出しを抑止することを特徴とする請求項
1記載のメモリアクセスシステム。 - 【請求項3】 前記データバッファの使用状態を示すフ
ラグを更に含み、このフラグにより前記データバッファ
が使用中でないことが示されたときに前記メモリから読
出したデータを該データバッファに保持するようにした
ことを特徴とする請求項1又は2記載のメモリアクセス
システム。 - 【請求項4】 単一のメモリに対して実行すべきアクセ
ス命令を順にキューイングするキューイングステップ
と、前記メモリから読出したデータをデータバッファに
一時保持する保持ステップと、前記メモリに対する第1
及び第2の読出しアクセス命令が連続して前記命令キュ
ーにキューイングされかつ前記メモリの読出すべきアド
レスの少なくとも一部が前記第1及び第2の読出しアク
セス命令において共通するときその共通するアドレスの
データを前記データバッファに書込む書込みステップ
と、前記第1及び第2の読出し命令のうちの一方を実行
する際に前記データバッファからデータを読出す読出し
制御ステップとを含むことを特徴とするメモリアクセス
方法。 - 【請求項5】 前記読出し制御ステップにおいては、前
記第1のアクセス読出し命令と前記第2のアクセス読出
し命令との間に前記メモリに対する書込みアクセス命令
が前記命令キューにキューイングされている場合には、
前記データバッファからのデータの読出しを抑止するこ
とを特徴とする請求項4記載のメモリアクセス方法。 - 【請求項6】 前記保持ステップにおいては、前記デー
タバッファの使用状態を示すフラグにより前記データバ
ッファが使用中でないことが示されたときに前記メモリ
から読出したデータを該データバッファに保持するよう
にしたことを特徴とする請求項4又は5記載のメモリア
クセス方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11011088A JP2000207133A (ja) | 1999-01-19 | 1999-01-19 | メモリアクセスシステム及びメモリアクセス方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11011088A JP2000207133A (ja) | 1999-01-19 | 1999-01-19 | メモリアクセスシステム及びメモリアクセス方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000207133A true JP2000207133A (ja) | 2000-07-28 |
Family
ID=11768240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11011088A Withdrawn JP2000207133A (ja) | 1999-01-19 | 1999-01-19 | メモリアクセスシステム及びメモリアクセス方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000207133A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005122235A (ja) * | 2003-10-14 | 2005-05-12 | Hitachi Ltd | 通信バッファ予約機能を備えるストレージ装置およびシステム |
-
1999
- 1999-01-19 JP JP11011088A patent/JP2000207133A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005122235A (ja) * | 2003-10-14 | 2005-05-12 | Hitachi Ltd | 通信バッファ予約機能を備えるストレージ装置およびシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7277982B2 (en) | DRAM access command queuing structure | |
JP2012128644A (ja) | メモリシステム | |
JP2008511904A (ja) | 単方向データバスを有するメモリシステムおよび方法 | |
JP5287301B2 (ja) | ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法 | |
JP2001216194A (ja) | 演算処理装置 | |
US7165126B2 (en) | Direct memory access device | |
JP4373255B2 (ja) | ダイレクトメモリアクセス制御装置および方法 | |
JP2010146084A (ja) | キャッシュメモリ制御部を備えるデータ処理装置 | |
US8533368B2 (en) | Buffering device and buffering method | |
JP2000207133A (ja) | メモリアクセスシステム及びメモリアクセス方法 | |
JP2005182538A (ja) | データ転送装置 | |
JPH06103225A (ja) | チェーン式dma方式及びそのためのdmaコントローラ | |
JP2001176272A (ja) | 複数ラインバッファ型メモリlsi | |
JPH11184761A (ja) | リードモディファイライト制御システム | |
JP2000227895A (ja) | 画像データ転送装置および画像データ転送方法 | |
JP5403665B2 (ja) | データ転送方法 | |
JP3467188B2 (ja) | 多重化バスの順序保証システム | |
US7779083B2 (en) | Message transmitting queue and associated method | |
JP2000040057A (ja) | 計算機システム、バッファ制御装置及び転送方法 | |
JPH05242009A (ja) | 直接メモリアクセス装置 | |
JPH1011387A (ja) | 情報処理装置 | |
JPH0474215A (ja) | データバッファ制御方式 | |
JP2000066946A (ja) | メモリコントローラ | |
JPH04361348A (ja) | データ転送方法 | |
JPH03158943A (ja) | バッファ記憶・転送方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060404 |