JPH03100751A - Input/output processor - Google Patents

Input/output processor

Info

Publication number
JPH03100751A
JPH03100751A JP23804389A JP23804389A JPH03100751A JP H03100751 A JPH03100751 A JP H03100751A JP 23804389 A JP23804389 A JP 23804389A JP 23804389 A JP23804389 A JP 23804389A JP H03100751 A JPH03100751 A JP H03100751A
Authority
JP
Japan
Prior art keywords
data
output
transfer
input
bytes
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
JP23804389A
Other languages
Japanese (ja)
Other versions
JPH0831076B2 (en
Inventor
Koichi Ito
幸一 伊藤
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 JP1238043A priority Critical patent/JPH0831076B2/en
Publication of JPH03100751A publication Critical patent/JPH03100751A/en
Publication of JPH0831076B2 publication Critical patent/JPH0831076B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Transfer Systems (AREA)

Abstract

PURPOSE:To enable efficient memory access by reading and writing data to and out of a main storage device according to the transfer amount of data which are transferred to the main storage device by single-time access determined according to the amount of data held in a data buffer. CONSTITUTION:The input/output processor is equipped with the data buffer 21, an input/output port control part 20, and a data transfer control part 10 and the transfer amount of data which are transferred to the main storage device 4 by single-time access is determined according to the amount of remaining data in the data buffer and the number of bytes in a free area. There fore, sufficient data can be supplied to the data buffer 21 by single-time memory access at the time of output transfer and written in the main storage device 4 by single-time memory access according to the amount of data stored in the data buffer 21 at the time of input transfer. Consequently, the data transfer corresponding to the transfer speed of an input/output device becomes possible without interrupting the data transfer temporarily and efficient memory access is performed at the start of the data transfer.

Description

【発明の詳細な説明】[Detailed description of the invention]

技術分野 本発明は入出力処理装置に関し、特に主記憶装置と入出
力装置との間のデータ転送を制御する入出力処理装置と
主記憶装置との間のデータ転送方式に関する。 従来技術 従来、主記憶装置と入出力装置との間のデータ転送にお
いては、人力転送の場合、入出力装置から受信したデー
タが一定のバイト数に達したときに該データを所定のバ
イト数単位(通常は1ワ一ド単位)でメモリに書込み、
出力転送の場合、データバッファ内に貯えられたデータ
が入出力装置に送られてデータバッファ内に一定のバイ
ト数の空きができたときに所定のバイト数(通常は1ワ
ード)のデータを主記憶装置から読出してデータバッフ
ァに補充するという方式がとられている。 このような従来のデータ転送では、出力転送の開始時な
どにデータバッファが空きまたは空きに近い状態のとき
に、主記憶装置にデータの0(給能力があっても、1回
のメモリアクセスではデータバッファにデータを充分供
給することができず、メモリアクセスを数回繰返さなけ
ればならない。 また、入力転送の場合においても、データバッファに詰
まったデータを主記憶装置に書込むために数回のメモリ
アクセスが必要であり、結果的にデータオーバランが発
生しやすいという欠点がある。 さらに、1回のメモリアクセスで常に数ワードのデータ
の読出しまたは書込みを行うブロック転送方式では、デ
ータバッファから主記憶装置への書込みまたは主記憶装
置からデータバッファへの読出しのときに時間を要し、
データ転送が一時的に中断する可能性が高いという欠点
がある。 発明の目的 本発明は上記のような従来のものの欠点を除去すべくな
されたもので、入出力装置の転送速度に応じたデータ転
送を行うことができ、データ転送開始時に効率のよいメ
モリアクセスを行うことができる入出力処理装置の提供
を目的とする。 発明の構成 本発明による入出力処理装置は、主記憶装置と入出力装
置との間で転送されるデータを一時保持するデータバッ
ファを有する入出力処理装置であって、前記データバッ
ファに保持されたデータ量を計数する計数手段と、前記
計数手段の計数値に応じて1回のアクセスで転送される
前記主記憶装置との間のデータ転送量を決定する決定手
段と、前記決定手段により決定された前記データ転送量
に応じて前記主記憶装置に対する読出し書込みを制御す
る制御手段とを有することを特徴とする。 実施例 次に、本発明の一実施例について
TECHNICAL FIELD The present invention relates to an input/output processing device, and more particularly to a data transfer method between an input/output processing device and a main storage device that controls data transfer between the main storage device and the input/output device. Prior Art Conventionally, in the case of manual data transfer between a main storage device and an input/output device, when the data received from the input/output device reaches a certain number of bytes, the data is transferred in units of a predetermined number of bytes. (usually in units of 1 word),
In the case of output transfer, the data stored in the data buffer is sent to the input/output device, and when a certain number of bytes become available in the data buffer, a predetermined number of bytes (usually one word) of data is transferred to the input/output device. A method is used in which the data is read from the storage device and refilled in the data buffer. In this type of conventional data transfer, when the data buffer is empty or nearly empty at the start of an output transfer, data 0 is stored in the main memory (even if the main memory has the capacity to do so, it cannot be accessed in one memory access). It is not possible to supply enough data to the data buffer, and memory accesses must be repeated several times.Also, in the case of input transfer, several times are required to write the data stuck in the data buffer to main memory. The drawback is that memory access is required, and data overruns are likely to occur as a result.Furthermore, the block transfer method, in which several words of data are always read or written in one memory access, transfers data from the data buffer to the main memory. It takes time to write to the device or read from main memory to the data buffer;
The drawback is that there is a high possibility that data transfer will be temporarily interrupted. Purpose of the Invention The present invention was made in order to eliminate the drawbacks of the conventional devices as described above, and it is possible to perform data transfer according to the transfer speed of the input/output device, and to perform efficient memory access at the start of data transfer. The purpose is to provide an input/output processing device that can perform Composition of the Invention An input/output processing device according to the present invention is an input/output processing device having a data buffer that temporarily holds data transferred between a main storage device and an input/output device, wherein the data held in the data buffer is a counting means for counting the amount of data; a determining means for determining the amount of data to be transferred between the main storage device and the main storage device to be transferred in one access according to the count value of the counting means; and control means for controlling reading and writing to the main storage device according to the amount of data transferred. Example Next, an example of the present invention will be described.

【!!1面を参照して
説明する。 第1図は本発明の一実施例の構成を示すブロック図であ
り、第2図は本発明の一実施例のシステム構成を示すブ
ロック図である。これらの図において、入出力装置3は
共通部1と入出力ボート部2−1〜2−4とから構成さ
れ、共通部1は中央処理装置5に接続されている主記憶
装置4と接続され、入出力ボート部2−1〜2−4各々
は!10インタフェース100を介して入出力装置6−
1〜6−4と接続されている。 ここで、主記憶装置4は1回のアクセスにより4バイト
 (1ワード)、8バイト (2ワード)。 12バイト (3ワード)、16バイト (4ワード)
の読出しまたは書込みが可能となっている。 共通部1のデータ転送制御部10はメモリアドレスやデ
ータ長の保持更新、メモリ・インタフェース制御、人出
力ボート部2−1〜2−4とのインタフェース制御、デ
ータ転送シーケンス制御を行う。 また、データ転送制御部10は入出力処理装置3を制御
するマイクロプロセッサ(【カポせず)とインタフェー
スを介して接続されているが、本図においてはそのイン
タフェースを図示していない。 人力データレジスタ(IB)11は内部データバス13
を介して人出力ボート部2−1のデータバッファ21お
よび他の入出力ボート部2−2〜2−4から受取ったデ
ータ、すなわち主記憶装置4に書込むデータを一時的に
格納する。 出力データレジスタ(OB)12は主記憶装置4から読
出したデータを一時的に格納し、内部データバス14を
介して入出力ボート部2−1のデータバッファ21およ
び他の人出力ボート部2−2〜2−4に出力する。 優先判定回路15は入出力ボート部2−1の人出力ボー
ト制御部20および他の入出力ボート部2−2〜2−4
の人出力ボート制御部(図示せず)からのメモリリクエ
ストに対して最優先のものに許可を与え、該入出力ボー
ト部2−1〜2−4からのメモリリクエストをデータ転
送制御部10に送出するとともに、該入出力ボート部2
−1〜2−4からのアクセスバイトコードおよびその出
力データ転送フラグを選択回路16.17を介してデー
タ転送制御部10に送出するよう制御する。 人出力ボート制御部20は入出力ボート部2−1を制御
し、データ転送シーケンス制御や入出力インタフェース
制御を行う。 メモリポインタ(MP)22は主記憶装置4とのデータ
転送を制御する4ビツトのポインタである。 出力転送の場合、メモリポインタ22の値は主記憶装置
4から読出したデータを書込むべきデータバッファ21
の先頭アドレスを示し、入力転送の場合、メモリポイン
タ22の値はデータバッファ21内に格納されているデ
ータを主記憶装置4に書込むとき、データバッファ21
から読出すデータの先頭アドレスを保持し、主記憶装置
4とのデータ転送の進行に伴って更新される。 人出力インタフェースポインタ(PP)23はI10イ
ンタフェース100上のデータ転送を制御する5ビツト
のポインタである。 出力転送の場合、入出力インタフェースポインタ23の
値は入Lil力装置6−1にデータを送出するときにデ
ータバッファ21から読出すデータのアドレスを示し、
入力転送の場合、人出力インタフェースポインタ23の
値は入出力装置6−1から受I5シたデータを書込むべ
きデータバッファ21のアドレスを示し、入出力装置6
−1とのデータ転送の実行に伴って逐次更新される。 データバッファ21は16バイトからなっており、出力
データレジスタ12を介して人力される主記憶装置4か
らのデータを選択回路27を介して1バイトずつ受取り
、入出力装置6−1に出力するデータを選択回路28を
介して1バイトずつデータアウトレジスタ(DTO)3
0に出力する。 また、データバッファ21から読出されたデータはドラ
イバ29および内部データバス13を介して人力データ
レジスタ11に出力される。 データアウトレジスタ301.:i3納されたデータバ
ッファ2]からの1バイトのデータは、ドライバ32お
よびI10インタフェース+00を介して入出力装置6
−1に送出される。 チー9インLi’)ス9 (DT 1 ) 31 ニハ
I 10インタフエース100およびレシーバ33を介
して受信した入出力装置6−1からの1バイトのデータ
が格納され、そのデータは選択回路27を介してデータ
バッファ21に書込まれる。 減算器24はメモリポインタ22の値と入出力インタフ
ェースポインタ23の値との差を計算し、その計算結果
は差分ポインタ(DP)25に格納される。差分ポイン
タ25の値は入出力ボート制御部20および変換回路2
6に出力される。 人出力ボート制御部2oは差分ポインタ25の値と人出
力インタフェースポインタ23の最上位ビットの値とか
らデータバッファ21に空きがあるか否か、または格納
されているデータがあるか否かを判断し、空きがあれば
、または格納されているデータがあればメモリリクエス
トを優先判定回路15に出力して主記憶装置4に対する
データの読出しまたは書込みを要求するとともに、出力
データ転送フラグを選択回路17を介してデータ転送制
御部】0に出力する。 変換回路26は差分ポインタ25の値を2ビツトの情報
にエンコードし、該情報をアクセスバイトコードとして
選択回路16を介してデータ転送制御部10に出力する
。 上述の主記憶装W4とデータバッファ21との間のデー
タ転送は4バイトの整数倍(但し、最大16バイト)を
1単位として行われ、入出力装置6−1とデータバッフ
ァ21との間のデータ転送は1バイト単位で行われる。 尚、第1図においては入出力ボート部2−1の各回路の
みを図示しており、他の人出力ボート部2−2〜2−4
の各回路は図示していないが、他の人出カボート部2−
2〜2−4の構成は入出力ポート部2−1の構成と同じ
であり、その動作も同様である。 第3図は第1図の差分ポインタ25の値とデータバッフ
ァ21のデータ量およびアクセスバイトコードとの関係
を示す図である。図において、差分ポインタ25の値が
“0000”のときに出力転送であればデータバッファ
21のデータ量は15バイトであり、人力転送であれば
データバッファ21のデータ量は1バイトである。 差分ポインタ25の航が“0001”のときに出力転送
であればデータバッファ21のデータ量は14バイトで
あり、人力転送であればデータバッファ21のデータ量
は2バイトである。 差分ポインタ25の値が“001O”のときに出力転送
であればデータバッファ21のデータ量は13バイトで
あり、入力転送であればデータバッファ21のデータ量
は3バイトである。 上記の場合、出力転送であれば入出力1ニ一ト制御部2
0によりデータバッファ21に空きがないと14断され
、人力転送であれば入出力ポート制御部20によりデー
タバッファ21にデータが充分に格納されていないと判
断されるので、メモリリクエストの出力が抑止される。 差分ポインタ25の値が’0011”のときに出力転送
であればデータバッファ21のデータ量は12バイトで
あり、入力転送であればデータ量くツファ21のデータ
量は4バイトである。 差分ポインタ25の値が“0100”のときに出力転送
であればデータバッファ21のデータ量は11バイトで
あり、入力転送であればデータ量くツファ21のデータ
量は5バイトである。 差分ポインタ25の値が“0101“のときに出力転送
であればデータバッファ21のデータ量は10バ・fト
であり、入力転送であればデータ量(ツファ21のデー
タ量は6バイトである。 差分ポインタ25の値が“011O”のときに出力転送
であればデータバッファ21のデータ量は9バイトであ
り、入力転送であればデータ量(ツファ21のデータ量
は7バイトである。 上記の場合、出力転送であれば入出力ボート制御部20
によりデータバッファ21に空きがあると判断され、入
力転送であれば入出力ボート制御部20によりデータバ
ッファ21に充分にデータが格納されていると判断され
るので、メモリリクエストが出力されるとともに、変換
回路26からアクセスバイトコードとして“00mが出
力される。 アクセスバイトコードが′002のとき、出力転送であ
れば主記憶装置4からの4バイトのデータの読出しを示
し、入力転送であれば主記憶装置4への4バイトのデー
タの書込みを示す。 差分ポインタ25の値が“0111°のときに出力転送
であればデータバッファ21のデータ量は8バイトであ
り、入力転送であればデータバッファ21のデータ量は
8バイトである。 差分ポインタ25の値が1000”のときに出力転送で
あればデータバッファ21のデータ量は7バイトであり
、入力転送であればデータバッファ21のデータ量は9
バイトである。 差分ポインタ25の値が“1001”のときに出力転送
であればデータバッファ21のデータ量は6バイトであ
り、人力転送であればデータバッファ21のデータ量は
10バイトである。 差分ポインタ25の値が“1010”のときに出力転送
であればデータバッファ21のデータ量は5バイトであ
り、入力転送であればデータバッファ21のデータ量は
11バイトである。 上記の場合、出力転送であれば人出力ボート制御部20
によりデータバッファ21に空きがあると判断され、入
力転送であれば入出力ボート制御部20によりデータバ
ッファ21に充分にデータが格納されていると判断され
るので、メモリリクエストが出力されるとともに、変換
回路26からアクセスバイトコードとして“01°が出
力される。 アクセスバイトコードが′012のとき、出力転送であ
れば主記憶装置4からの8バイトのデータの読出しを示
し、人力転送であれば主記憶装置4への8バイトのデー
タの書込みを示す。 差分ポインタ25の値が’1011”のときに出力転送
であればデータバッファ21のデータ量は4バイトであ
り、入力転送であればデータバッファ21のデータ量は
12バイトである。 差分ポインタ25の値が’ 1100”のときに出力転
送であればデータバッファ21のデータ量は3バイトで
あり、入力転送であればデータバッファ21のデータ量
は13バイトである。 差分ポインタ25の値が“1101″のときに出力転送
であればデータバッファ21のデータ量は2バイトであ
り、入力転送であればデータバッファ21のデータ量は
14バイトである。 差分ポインタ25の値が’ 1110”のときに出力転
送であればデータバッファ21のデータ量は1バイトで
あり、入力転送であればデータバッファ21のデータ量
は15バイトである。 上記の場合、出力転送であれば人出力ボート制御部20
によりデータバッファ21に空きがあると判断され、入
力転送であれば人出力ボート制御部20によりデータバ
ッファ21に充分にデータが格納されていると判断され
るので、メモリリクエストが出力されるとともに、変換
回路26からアクセスバイトコードとして“10”が出
力される。 アクセスバイトコードが10″′のとき、出力転送であ
れば主記憶装置4からの12バイトのデータの読出しを
示し、入力転送であれば主記憶装置4への12バイトの
データの書込みを示す。 差分ポインタ25の値が“1111”で、入出力インタ
フェースポインタ23の最上位ビットが“0゜のときに
、出力転送であればデータバッファ21のデータ量は0
バイトであり、入力転送であればデータバッファ21の
データ量は16バイトである。 この場合、出力転送であれば入出力ポート制御部20に
よりデータバッファ21が空であると判断され、入力転
送であれば入出力ボート制御部20によりデータバッフ
ァ21すべてにデータが格納されていると判断されるの
で、メモリリクエストが出力されるとともに、変換「1
路26からアクセスバイトコードとして“11°が出力
される。 アクセスバイトコードが“11”のとき、出力転送であ
れば主記憶装置4からの16バイトのデータの読出しを
示し、人力転送であれば主記憶装置4への16バイトの
データの書込みを示す。 差分ポインタ25の値が“1111°で、人出力インタ
フェースポインタ23の最上位ビットが“1”のときに
、出力転送であればデータバッファ21のデータ量は1
6バイトであり、入力転送であればデータバッファ21
のデータ量は0バイトである。 この場合、出力転送であれば入出力ボート制御部20に
よりデータバッファ21ずべてにデータが格納されてい
ると判断され、入力転送であれば入出力ボート制御部2
0によりデータバッファ21が空であると判断されるの
で、メモリリクエストの出力が抑止される。 これら第1図〜第3図を用いて本発明の一実施例の動作
について説明する。 出力転送を起動しようとする場合、データ転送制御部1
0にはマイクロプログラムによりデータ長および主記憶
装置4上のアドレス(データ転送の開始アドレス)が設
定される。尚、第1図にはその設定手段を図示していな
い。 その後に、転送対象である入出力装置6−1が接続され
ている入出力ポート部2−1の人出力ボート制御部20
内の出力データ転送フラグ(図示せず)に“1”がセッ
トされるとともに、メモリポインタ22および入出力イ
ンタフェースポインタ23の全ビットに“0°がセット
される。 メモリポインタ22および入出力インタフェースポイン
タ23の全ビットに“01がセットされると、減算器2
4によりメモリポインタ22の値と人出力インタフェー
スポインタ23の値との差カリ1算され、差分ポインタ
25に“+111”がセットされる。 ここで、減算器24では「入出力、インタフェースポイ
ンタ23の下位4ビツト+メモリポインタ22の全ビッ
トの反転値」の計算が行われており、上記の場合には[
“0000”+“1111“」の計算が行われ、その計
算結果“1111”が差分ポインタ25にセットされる
。 人出力ボート制御部20は差分ボ、fシタ25の値“+
111”と、人出力インタフェースポインタ23の最上
位ビットの値“0”とからデータバッファ21が空であ
ると判断し、メモリリフニスI・を優先判定回路15に
出力して主起tα装置4がらのデータの読出しを要求す
る。 このとき、入出力ボート制御部2oがらデータ転送制御
部10に出力データ転送フラグの値“1“が出力される
とともに、差分ポインタ25の値“1111が変換回路
26でエンコードされ、アクセスバイトコードとして“
11°がデータ転送制御部10に出力される。この場合
、アクセスバイトコードが“11”なので16バイトの
データの読出しを示す。 優先判定回路15は人出力ボート制御部20がらのメモ
リリクエストが最優先のものと判定すると、該メモリリ
クエストに許可を与え、人出カポート制御部20からの
メモリリクエストをデータ転送制御部]0に伝えるとと
もに、人出力ボート部2−1からのアクセスバイトコー
ドおよびその出力データ転送フラグを選択回路1’6.
17を介してデータ転送制御部10に伝える。 データ転送制御部10は入出力ポート制御部20からの
メモリリクエストに応じて、主記憶装置4・\のメそり
リクエストを′1mとし、16バイトリードを指示する
コマンドとアドレスとを出力して主記憶装置4をアクセ
スする。 主記憶装置4は該メモリリクエストが受付は可能であれ
ば、データ転送制御部10・\のアクセプトを“1”と
し、その後に出力データレジスタ12に16バイトのデ
ータのうち最初の4バイトのデータを送出するとともに
、データ転送制御部10へのリプライを“1”としてデ
ータの受取りを指示する。 入出力処理装置3は主記憶装置4からのデータを出力デ
ータレジスタ12に一時格納し、該データを内部データ
バス14を介して選択回路27に供給する。 選択回路27は出力転送の場合に内部データバス14側
を選択出力するので、主記憶装置4からの4バイトのデ
ータがデータバッファ21に書込まれるとともに、メモ
リポインタ22の値が加算器22aにより+4され−る
。 主記憶装置4からは4バイトのデータが1マシンザイク
ル毎に次々と出力されており、この主記憶装置if4か
らの4バイトのデータがデータバッファ21に書込まれ
ると同時に、出力データレジスタ12には主記憶装置4
からの次の4バイトのデータが格納される。 以後、上述の処理動作が3回繰返され、主記憶装置4か
らの16バイトのデータがデータバッファ21に書込ま
れる。この間に主記憶装置4で異常が検出されると、主
記憶装置4からデータ転送制御部10にエラー信号が通
知される。 上記の処理動作により、主記憶装置4からの16バイト
のデータが順次データバッファ21に書込まれるとき、
メモリポインタ22は0゛から’4’、’8°、 °C
°と更新され、再び“0゜に戻る。 メモリポインタ22の値がC°から °0°に変化する
とき、入出力インタフェースポインタ23の最上位ビッ
トが“0”から“1°に反転し、差分ポインタ25の値
も再び“1111”となる。 人出力ボート制御部20は入出力インタフェースボ、イ
ンタ23の最上位ビット“1”と、差分ポインタ25の
値“+111”とからデータバッファ21ずべてにデー
タが格納されていると判断し、次のメモリリクエストの
出力を抑止する。 一方、データバッファ21にデータが格納されると、デ
ータバッファ21からのデータの読出しが行われて最初
の1バイトがデータアウトレジスタ′う0に格納され、
I10インタフェース100を介して入出力袋[6−1
への転送が開始される。 このデータバッファ21からのデータの読出しが行われ
る毎に、人出力インタフェースポインタ23の値が加算
器23aにより+1ずつされていく。 データバッファ21から4バイトのデータが入出力装置
6−1に転送されたとき、入出力インクフェースポイン
タ23の値は“10100°となるが、メモリポインタ
22の値は0゛のままなので、差分ポインタ25の値が
“0011”となる。 よって、入出力ボート制御部20はデータバッファ21
内に4バイトの空きを検出し、その4バイトのデータを
補充するためにメモリリクエストを再び優先判定回路1
5に送出する。但し、このときのアクセスバイトコード
は“00:となり、4バイトのデータの読出しを示す。 人出力ボート制御部20からのメモリリクエストは上述
の処理動作と同様に、優先判定回路15を介してデータ
転送制御部10に送られ、データ転送制御部10から4
バイトリードを指示するコマンドとアドレスとが出力さ
れて主記憶装置4がアクセスされる。 これにより、主記憶装置4から4バイトのデータが読出
されてデータバッファ21に書込まれるとともに、メモ
リポインタ22の値が加算器22aにより+4される。 よって、メモリポインタ22の値が“0100”となる
ので、差分ポインタ25の値が再び“1111”となり
、入出力ボート制御部20は再びデータバッファ21す
べてにデータが格納されていると判断し、次のメモリリ
クエストの出力を抑止する。 以上のようにしてデータ転送が実行されると、データ転
送制御部10に設定されたデータ長およびメモリアドレ
スが1回のメモリアクセス毎にアクセスバイトに応じた
値に更新され、データ長が尽きるとデータ転送が終了す
る。 人力転送の場合にも上述の処理と同様に、メモリポイン
タ22および入出力インタフェースポインタ23の全ビ
ットに“0”がセットされてデータ転送が開始され、転
送対象の入出力装置6−1からのデータがレシーバ33
およびデータインレジスタ31を介して選択回路27に
供給される。 選択回路27は人力転送の場合にデータインレジスタ3
1側を選択出力するので、入出力装置6−1からの最初
のデータがデータバッファ21の0番地に書込まれると
ともに、入出力インタフェースポインタ23の値が加算
器23aにより+1される。 この入出力装置6−1からのデータが4バイトに達する
と、入出力インタフェースポインタ23の値が“oot
oo ”となるので、差分ポインタ25の値が“001
1”となり、入出力ボート制御部20はデータバッファ
21内に格納された4バイトのデータを主記憶装置4に
書込むためにメモリリクエストを優先判定回路15に送
出する。このとき、データ転送制御部10へのアクセス
バイトコードは00”となり、4バイトのデータの書込
みを示す。 よって、メモリポインタ22が示すデータバッファ21
のアドレスから4バイトのデータが読出され、そのデー
タがドライバ29および内部データバス13を介して人
力データレジスタ11に一時格納されてから主記憶装置
4に書込まれる。 第4図は第1図の主記憶装置4の(R成を示すブロック
図であり、WS5図は第4図に示す主記憶袋W4の動作
を示すタイムチャートである。これら第4図および第5
図を用いて主起tα装置4に入出力装置6−1から送ら
れてきた16バイトのデータが書込まれる場合について
説明する。 入出力処理装置3を介して送られてきた入出力装置6−
1からの16バイトのデータを主記憶装置4に書込む場
合、入出力処理装置3からのリクエストバンク番号がリ
クエスト判定回路40に入力されると、リクエスト判定
回路40は該リクエストバンク番号に対するメモリリク
エストが受付は可能であるか否かを判断する。 ノクエスト判定回路40は該リクエストバンク番号に対
するメモリリクエストが受付は可能であれば、その旨を
制御回路49に通知するとともに、該リクエストバンク
番号をバンク番号レジスタ(BKN)42にセットする
。 このとき、入出力処理装置3から送られてきたアドレス
、コマンド、ライトマスク、ライトデータが夫々選択回
路41を介してアドレスレジスタ(ADR)45とコマ
ンドレジスタ(CM D R)46とライトマスクレジ
スタ(WMI047とライトデータレジスタ(WDR)
48とにセットされる。 制御回路49はリクエスト判定回路40からの通知と、
バンク番号レジスタ42からバンク番号レジスタ43を
介して入力されるリクエストバンク番号と、コマンドレ
ジスタ46およびライトマスクレジスタ47からのコマ
ンドおよびライトマスクとによりメモリセル53への1
6バイトライトであることを知り、メモリセル53のバ
ンク(BANK)Oにライトデータの書込みを指示する
。 メモリセル53では制御回路49により指定されたバン
ク0の、アドレスレジスタ45がらアドレスレジスタ5
0を介して送られてきたアドレスに、ECC(誤り検出
訂正符号)発生回路51てECCビットが付与され、ラ
イトデータレジスタ52を介して入力された最初の4バ
・fトのライトデータが書込まれる。 次に、制御回路49はバンク番号レジスタ43から入力
され、加算器44によって11されたリクエストバンク
番号を受取ると、メモリセル53のバンク1へのライト
データの書込みを指示し、次のライトデータがメモリセ
ル53のバンク1に書込まれる。 上述の処理動作と同様にして、メモリセル53の連続ス
るバンク2,3へのライトデータの書込みが行われると
、メモリセル53への16バイトのデータの書込みが終
了する。 入出力処理装置3が主記憶装置4から16バイトのデー
タを読出す場合も上述の処理動作と同様にして、制御回
路49の制御により連続するバンクθ〜3から順次デー
タが読出され、選択回路54を介してリードデータレジ
スタ55にセットされ、ECC訂正回路56で誤りが訂
正された後にリードデータレジスタ57を介して入出力
処理装置″うに送出される。 ここで、選択回路54はバンク番号レジスタ43から供
給されるリクエストバンク番号に応じてバンク0〜3か
らのデータを選択する。 尚、中央処理装置5からの主記憶装置4に対する読出し
または書込みも、上述の処理動作と同様にして行われる
。 このように、データバッファの残データ量または空き領
域のバ・fト数に応じて1回のアクセスで転送される主
記憶装置4との間のデータ転送量、すなわち主記憶装置
4から読出すワード数または主記憶装置4に書込むワー
ド数を決定することによって、出力転送時に1回のメモ
リアクセスでデータバッファ21にデータを充分供給す
ることができる。 また、入力転送時にデータバッファ21に格納されたデ
ータ量に応じて1回のメモリアクセスで主記憶装置4へ
の書込みを行うことができるので、メモリアクセスを繰
返す必要がなくなるとともに、データオーバランの発生
を防止することができる。 よって、データ転送を一時的に中断することなく、入出
力装置6−1〜6−4の転送速度に応じたデータ転送を
行うことが可能になるとともに、データ転送開始時に効
率のよいメモリアクセスを行うことが可能となる。 発明の詳細 な説明したように本発明によれば、データバッファに保
持されたデータ量に応じて決定された1回のアクセスで
転送される主記憶装置との間のデータ転送量により主記
憶装置に対する読出し書込みを行うようにすることによ
って、入出力装置の転送速度に応じたデータ転送を行う
ことができ、データ転送開始時に効率のよいメモリアク
セスを行うことができるという効果がある。
[! ! This will be explained with reference to page 1. FIG. 1 is a block diagram showing the configuration of one embodiment of the present invention, and FIG. 2 is a block diagram showing the system configuration of one embodiment of the present invention. In these figures, the input/output device 3 is composed of a common section 1 and input/output board sections 2-1 to 2-4, and the common section 1 is connected to a main storage device 4 which is connected to a central processing unit 5. , each of the input/output boat sections 2-1 to 2-4! 10 interface 100 to input/output device 6-
1 to 6-4. Here, the main memory 4 has 4 bytes (1 word) and 8 bytes (2 words) in one access. 12 bytes (3 words), 16 bytes (4 words)
It is possible to read or write. The data transfer control section 10 of the common section 1 performs maintenance and updating of memory addresses and data lengths, memory interface control, interface control with the human output boat sections 2-1 to 2-4, and data transfer sequence control. Further, the data transfer control unit 10 is connected via an interface to a microprocessor (without capo) that controls the input/output processing device 3, but the interface is not shown in this figure. The manual data register (IB) 11 is an internal data bus 13
It temporarily stores data received from the data buffer 21 of the human output boat section 2-1 and the other input/output boat sections 2-2 to 2-4 via the input/output boat section 2-1, that is, data to be written in the main storage device 4. An output data register (OB) 12 temporarily stores data read from the main memory 4, and transmits the data to the data buffer 21 of the input/output port section 2-1 and other output ports 2-1 via the internal data bus 14. Output to 2 to 2-4. The priority determination circuit 15 includes the human output boat control section 20 of the input/output boat section 2-1 and the other input/output boat sections 2-2 to 2-4.
Permission is given to the memory request from the human output boat control unit (not shown) with the highest priority, and memory requests from the input/output boat units 2-1 to 2-4 are sent to the data transfer control unit 10. At the same time, the input/output boat section 2
-1 to 2-4 and their output data transfer flags are controlled to be sent to the data transfer control unit 10 via selection circuits 16 and 17. The human output boat control section 20 controls the input/output boat section 2-1 and performs data transfer sequence control and input/output interface control. A memory pointer (MP) 22 is a 4-bit pointer that controls data transfer with the main storage device 4. In the case of output transfer, the value of the memory pointer 22 is set to the data buffer 21 into which the data read from the main memory 4 is to be written.
In the case of input transfer, the value of the memory pointer 22 indicates the start address of the data buffer 21 when writing the data stored in the data buffer 21 to the main storage device 4.
It holds the start address of data read from the main storage device 4, and is updated as data transfer with the main storage device 4 progresses. Person output interface pointer (PP) 23 is a 5-bit pointer that controls data transfer on I10 interface 100. In the case of output transfer, the value of the input/output interface pointer 23 indicates the address of data to be read from the data buffer 21 when sending data to the input device 6-1,
In the case of input transfer, the value of the human output interface pointer 23 indicates the address of the data buffer 21 to which data received from the input/output device 6-1 should be written, and
-1 is updated sequentially as data transfer is executed. The data buffer 21 consists of 16 bytes, and receives data from the main memory 4 that is input manually via the output data register 12 one byte at a time via the selection circuit 27, and outputs the data to the input/output device 6-1. data out register (DTO) 3 one byte at a time via the selection circuit 28.
Output to 0. Furthermore, data read from the data buffer 21 is output to the human data register 11 via the driver 29 and the internal data bus 13. Data out register 301. 1 byte of data from the data buffer 2 stored in i3 is sent to the input/output device 6 via the driver 32 and I10 interface +00.
-1. One byte of data from the input/output device 6-1 received via the interface 100 and the receiver 33 is stored, and the data is sent to the selection circuit 27. The data is written to the data buffer 21 via the data buffer 21. The subtracter 24 calculates the difference between the value of the memory pointer 22 and the value of the input/output interface pointer 23, and the calculation result is stored in the difference pointer (DP) 25. The value of the difference pointer 25 is determined by the input/output boat control unit 20 and the conversion circuit 2.
6 is output. The human output boat control unit 2o determines whether there is space in the data buffer 21 or whether there is any stored data based on the value of the difference pointer 25 and the value of the most significant bit of the human output interface pointer 23. However, if there is space or if there is data stored, a memory request is output to the priority determination circuit 15 to request reading or writing of data to the main storage device 4, and an output data transfer flag is set by the selection circuit 17. Data transfer control unit]0 is output via the data transfer control unit. The conversion circuit 26 encodes the value of the difference pointer 25 into 2-bit information, and outputs the information as an access byte code to the data transfer control section 10 via the selection circuit 16. The data transfer between the main memory W4 and the data buffer 21 described above is performed in units of integral multiples of 4 bytes (maximum 16 bytes), and the data transfer between the input/output device 6-1 and the data buffer 21 is Data transfer is performed in units of 1 byte. In addition, in FIG. 1, only each circuit of the input/output boat section 2-1 is illustrated, and other output boat sections 2-2 to 2-4 are shown.
Although each circuit is not shown in the figure, other circuits of the
The configurations of ports 2 to 2-4 are the same as that of the input/output port section 2-1, and their operations are also similar. FIG. 3 is a diagram showing the relationship between the value of the difference pointer 25 in FIG. 1, the amount of data in the data buffer 21, and the access byte code. In the figure, when the value of the difference pointer 25 is "0000", the amount of data in the data buffer 21 is 15 bytes in case of output transfer, and the amount of data in the data buffer 21 is 1 byte in case of manual transfer. When the differential pointer 25 indicates "0001", the amount of data in the data buffer 21 is 14 bytes in the case of output transfer, and the amount of data in the data buffer 21 is 2 bytes in the case of manual transfer. When the value of the difference pointer 25 is "001O", the amount of data in the data buffer 21 is 13 bytes for output transfer, and 3 bytes for input transfer. In the above case, if it is output transfer, input/output 1 unit control unit 2
0, if there is no space in the data buffer 21, the request will be disconnected, and if it is a manual transfer, the input/output port control unit 20 will determine that there is not enough data stored in the data buffer 21, so the output of the memory request will be suppressed. be done. When the value of the difference pointer 25 is '0011', the amount of data in the data buffer 21 is 12 bytes for output transfer, and the amount of data in the buffer 21 is 4 bytes for input transfer. When the value of 25 is "0100", the amount of data in the data buffer 21 is 11 bytes for output transfer, and the amount of data in buffer 21 is 5 bytes for input transfer. When the value is "0101", the amount of data in the data buffer 21 is 10 bytes if it is an output transfer, and the amount of data in the data buffer 21 is 6 bytes if it is an input transfer.Difference pointer 25 When the value of is "011O", the amount of data in the data buffer 21 is 9 bytes for output transfer, and the amount of data for input transfer (the amount of data in buffer 21 is 7 bytes. For transfer, input/output boat control unit 20
It is determined that there is space in the data buffer 21, and if it is an input transfer, the input/output boat control unit 20 determines that there is enough data stored in the data buffer 21, so a memory request is output, and "00m" is output as the access byte code from the conversion circuit 26. When the access byte code is '002, it indicates reading of 4 bytes of data from the main storage device 4 in the case of output transfer, and indicates the reading of 4 bytes of data from the main memory device 4 in the case of input transfer. This shows the writing of 4 bytes of data to the storage device 4. When the value of the difference pointer 25 is "0111°", the amount of data in the data buffer 21 is 8 bytes for output transfer, and the amount of data in the data buffer 21 is 8 bytes for input transfer. The data amount of No. 21 is 8 bytes. When the value of the difference pointer 25 is 1000'', the amount of data in the data buffer 21 is 7 bytes for output transfer, and the amount of data in the data buffer 21 is 9 bytes for input transfer.
It's a part-time job. When the value of the difference pointer 25 is "1001", the amount of data in the data buffer 21 is 6 bytes in the case of output transfer, and the amount of data in the data buffer 21 is 10 bytes in the case of manual transfer. When the value of the difference pointer 25 is "1010", the amount of data in the data buffer 21 is 5 bytes for output transfer, and 11 bytes for input transfer. In the above case, if the output is transferred, the human output boat control unit 20
It is determined that there is space in the data buffer 21, and if it is an input transfer, the input/output boat control unit 20 determines that there is enough data stored in the data buffer 21, so a memory request is output, and “01° is output as the access byte code from the conversion circuit 26. When the access byte code is '012, it indicates reading of 8 bytes of data from the main storage device 4 in case of output transfer, and in case of manual transfer, This shows the writing of 8 bytes of data to the main storage device 4. When the value of the difference pointer 25 is '1011', the amount of data in the data buffer 21 is 4 bytes for output transfer, and the amount of data for input transfer is 4 bytes. The amount of data in the buffer 21 is 12 bytes. When the value of the difference pointer 25 is '1100', the amount of data in the data buffer 21 is 3 bytes in the case of output transfer, and the amount of data in the data buffer 21 is 13 bytes in the case of input transfer. When the value is "1101", the amount of data in the data buffer 21 is 2 bytes if the transfer is an output transfer, and the amount of data in the data buffer 21 is 14 bytes if the transfer is an input transfer. ”, the amount of data in the data buffer 21 is 1 byte if the transfer is an output transfer, and the amount of data in the data buffer 21 is 15 bytes if the transfer is an input transfer. In the above case, if the output is transferred, the human output boat control unit 20
It is determined that there is space in the data buffer 21, and if it is an input transfer, the human output boat control unit 20 determines that there is enough data stored in the data buffer 21, so a memory request is output, and “10” is output from the conversion circuit 26 as the access byte code. When the access byte code is 10'', output transfer indicates reading of 12 bytes of data from main memory 4, and input transfer indicates writing of 12 bytes of data to main memory 4. When the value of the difference pointer 25 is “1111” and the most significant bit of the input/output interface pointer 23 is “0°”, the amount of data in the data buffer 21 is 0 for output transfer.
In the case of input transfer, the amount of data in the data buffer 21 is 16 bytes. In this case, if it is an output transfer, the input/output port control unit 20 determines that the data buffer 21 is empty, and if it is an input transfer, the input/output port control unit 20 determines that data is stored in all the data buffers 21. As a result, a memory request is output and the conversion “1
"11°" is output as the access byte code from path 26. When the access byte code is "11", it indicates reading of 16 bytes of data from the main storage device 4 in the case of output transfer, and in the case of manual transfer. This shows the writing of 16 bytes of data to the main memory device 4. When the value of the difference pointer 25 is "1111°" and the most significant bit of the human output interface pointer 23 is "1", if it is an output transfer, the data buffer The amount of data for 21 is 1
It is 6 bytes, and if it is an input transfer, the data buffer 21
The amount of data is 0 bytes. In this case, if it is an output transfer, the input/output boat control unit 20 determines that data is stored in all data buffers 21, and if it is an input transfer, the input/output boat control unit 20 determines that data is stored in all data buffers 21.
0, it is determined that the data buffer 21 is empty, so the output of the memory request is suppressed. The operation of one embodiment of the present invention will be explained using these FIGS. 1 to 3. When attempting to start output transfer, data transfer control unit 1
0 is set with the data length and the address on the main storage device 4 (data transfer start address) by the microprogram. Note that the setting means is not shown in FIG. After that, the human output boat control unit 20 of the input/output port unit 2-1 to which the input/output device 6-1 to be transferred is connected
The output data transfer flag (not shown) in the memory pointer 22 and the input/output interface pointer 23 is set to "1", and all bits of the memory pointer 22 and the input/output interface pointer 23 are set to "0°". When all bits of 23 are set to “01,” the subtracter 2
4, the difference between the value of the memory pointer 22 and the value of the human output interface pointer 23 is calculated by 1, and "+111" is set in the difference pointer 25. Here, the subtracter 24 calculates "input/output, lower 4 bits of the interface pointer 23 + inverted value of all bits of the memory pointer 22", and in the above case, [
The calculation “0000”+“1111”” is performed, and the calculation result “1111” is set in the difference pointer 25. The human output boat control unit 20 outputs the value of the differential position and f position 25 “+”.
111” and the value “0” of the most significant bit of the human output interface pointer 23, it is determined that the data buffer 21 is empty, and the memory refresh I is output to the priority determination circuit 15, and the main tα device 4 is At this time, the input/output boat control unit 2o outputs the value “1” of the output data transfer flag to the data transfer control unit 10, and the value “1111” of the difference pointer 25 is output to the conversion circuit 26. encoded and accessed as the access bytecode “
11° is output to the data transfer control section 10. In this case, the access byte code is "11", indicating reading of 16 bytes of data. When the priority determination circuit 15 determines that the memory request from the people output boat control unit 20 has the highest priority, it grants permission to the memory request and transfers the memory request from the people output boat control unit 20 to the data transfer control unit]0. At the same time, the access byte code from the human output boat section 2-1 and its output data transfer flag are transmitted to the selection circuit 1'6.
17 to the data transfer control unit 10. In response to the memory request from the input/output port control unit 20, the data transfer control unit 10 sets the memory request for the main memory 4. Access the storage device 4. If the memory request can be accepted, the main storage device 4 sets the accept of the data transfer control unit 10 to "1", and then stores the first 4 bytes of the 16 bytes of data in the output data register 12. At the same time, the data transfer control section 10 is sent a reply of "1" to instruct it to receive the data. The input/output processing device 3 temporarily stores data from the main memory device 4 in the output data register 12 and supplies the data to the selection circuit 27 via the internal data bus 14. Since the selection circuit 27 selects and outputs the internal data bus 14 side in the case of output transfer, 4 bytes of data from the main storage device 4 is written to the data buffer 21, and the value of the memory pointer 22 is written to the adder 22a. +4 is given. 4-byte data is output from the main memory device 4 one after another every machine cycle, and at the same time the 4-byte data from the main memory device if4 is written to the data buffer 21, it is written to the output data register 12. is main memory 4
The next 4 bytes of data are stored. Thereafter, the above processing operation is repeated three times, and 16 bytes of data from the main storage device 4 is written into the data buffer 21. If an abnormality is detected in the main storage device 4 during this time, an error signal is notified from the main storage device 4 to the data transfer control unit 10. When 16 bytes of data from the main storage device 4 are sequentially written to the data buffer 21 by the above processing operation,
Memory pointer 22 changes from 0゛ to '4', '8°, °C
° and returns to "0°" again. When the value of the memory pointer 22 changes from C° to °0°, the most significant bit of the input/output interface pointer 23 is inverted from "0" to "1°". The value of the difference pointer 25 also becomes "1111" again. The human output boat control unit 20 determines that data is stored in all data buffers 21 based on the most significant bit "1" of the input/output interface board 23 and the value "+111" of the difference pointer 25, and then Suppresses the output of memory requests. On the other hand, when data is stored in the data buffer 21, the data is read from the data buffer 21 and the first byte is stored in the data out register '0'.
Input/output bag [6-1
Transfer to will begin. Every time data is read from the data buffer 21, the value of the human output interface pointer 23 is incremented by +1 by the adder 23a. When 4 bytes of data are transferred from the data buffer 21 to the input/output device 6-1, the value of the input/output ink face pointer 23 becomes "10100°, but the value of the memory pointer 22 remains 0", so the difference The value of the pointer 25 becomes “0011”. Therefore, the input/output boat control unit 20
Priority judgment circuit 1 detects 4 bytes of free space in the memory and re-replenishes the memory request to replenish the 4 bytes of data.
Send to 5. However, the access byte code at this time is "00:", indicating reading of 4 bytes of data. Similarly to the processing operation described above, the memory request from the human output boat control unit 20 is processed as data via the priority determination circuit 15. The data is sent to the transfer control unit 10, and from the data transfer control unit 10 to 4.
A command and address instructing a byte read are output, and the main storage device 4 is accessed. As a result, 4 bytes of data are read from the main memory device 4 and written into the data buffer 21, and the value of the memory pointer 22 is incremented by 4 by the adder 22a. Therefore, since the value of the memory pointer 22 becomes "0100", the value of the difference pointer 25 becomes "1111" again, and the input/output boat control unit 20 again determines that data is stored in all data buffers 21, Suppress the output of the next memory request. When data transfer is executed as described above, the data length and memory address set in the data transfer control unit 10 are updated to a value according to the access byte for each memory access, and when the data length is exhausted, Data transfer ends. In the case of manual transfer, similarly to the process described above, all bits of the memory pointer 22 and input/output interface pointer 23 are set to "0" and data transfer is started, and the data is transferred from the input/output device 6-1 to be transferred. data is receiver 33
and is supplied to the selection circuit 27 via the data-in register 31. The selection circuit 27 selects the data in register 3 in the case of manual transfer.
Since the 1 side is selectively output, the first data from the input/output device 6-1 is written to address 0 of the data buffer 21, and the value of the input/output interface pointer 23 is incremented by 1 by the adder 23a. When the data from this input/output device 6-1 reaches 4 bytes, the value of the input/output interface pointer 23 becomes “oot”.
oo”, the value of the difference pointer 25 is “001”.
1", and the input/output boat control unit 20 sends a memory request to the priority determination circuit 15 in order to write the 4-byte data stored in the data buffer 21 to the main storage device 4. At this time, the data transfer control The access byte code to section 10 is 00'', indicating writing of 4 bytes of data. Therefore, the data buffer 21 indicated by the memory pointer 22
Four bytes of data are read from the address, and the data is temporarily stored in the human data register 11 via the driver 29 and the internal data bus 13, and then written to the main memory 4. 4 is a block diagram showing the (R configuration) of the main memory device 4 of FIG. 1, and FIG. WS5 is a time chart showing the operation of the main memory bag W4 shown in FIG. 4. 5
A case in which 16 bytes of data sent from the input/output device 6-1 to the main tα device 4 is written will be explained using the figure. The input/output device 6- sent via the input/output processing device 3
When writing 16 bytes of data starting from 1 to the main storage device 4, when the request bank number from the input/output processing device 3 is input to the request determination circuit 40, the request determination circuit 40 determines the memory request for the request bank number. determines whether acceptance is possible or not. If the memory request for the request bank number can be accepted, the noquest determination circuit 40 notifies the control circuit 49 to that effect and sets the request bank number in the bank number register (BKN) 42. At this time, the address, command, write mask, and write data sent from the input/output processing device 3 are sent via the selection circuit 41 to the address register (ADR) 45, command register (CMDR) 46, and write mask register ( WMI047 and write data register (WDR)
48. The control circuit 49 receives the notification from the request determination circuit 40,
1 to the memory cell 53 based on the request bank number input from the bank number register 42 via the bank number register 43 and the command and write mask from the command register 46 and write mask register 47.
Knowing that it is a 6-byte write, it instructs bank (BANK) O of memory cell 53 to write write data. In the memory cell 53, the address register 5 of the bank 0 designated by the control circuit 49 is
The ECC (Error Detection and Correction Code) generation circuit 51 adds an ECC bit to the address sent via 0, and the first 4 bits of write data input via the write data register 52 are written. be included. Next, when the control circuit 49 receives the request bank number inputted from the bank number register 43 and incremented by 11 by the adder 44, it instructs writing of write data to bank 1 of the memory cell 53, and the next write data is Written to bank 1 of memory cell 53. When write data is written to consecutive banks 2 and 3 of the memory cell 53 in the same manner as the above processing operation, writing of 16 bytes of data to the memory cell 53 is completed. When the input/output processing device 3 reads 16 bytes of data from the main storage device 4, the data is sequentially read from consecutive banks θ to 3 under the control of the control circuit 49 in the same manner as the above-mentioned processing operation, and the selection circuit The selection circuit 54 is set in the read data register 55 via the bank number register 54, and after the error is corrected by the ECC correction circuit 56, it is sent to the input/output processing device via the read data register 57. Data from banks 0 to 3 is selected in accordance with the request bank number supplied from the central processing unit 43. Note that reading or writing from the central processing unit 5 to the main storage device 4 is also performed in the same manner as the above-mentioned processing operation. In this way, the amount of data transferred to and from the main storage device 4 in one access, that is, the amount of data read from the main storage device 4, depends on the amount of remaining data in the data buffer or the number of bytes in the free area. By determining the number of words to be output or the number of words to be written to the main memory device 4, it is possible to supply enough data to the data buffer 21 with one memory access during output transfer. Since it is possible to write to the main storage device 4 in one memory access according to the amount of stored data, there is no need to repeat memory access, and it is possible to prevent data overrun from occurring. To enable data transfer according to the transfer speed of input/output devices 6-1 to 6-4 without temporarily interrupting data transfer, and to perform efficient memory access at the start of data transfer. As described in detail, according to the present invention, data can be transferred to and from the main memory in one access determined according to the amount of data held in the data buffer. By performing reads and writes to the main memory depending on the amount of data, data can be transferred according to the transfer speed of the input/output device, and the effect is that efficient memory access can be performed at the start of data transfer. be.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の一実施例の構成を示すブロック図、第
2図は本発明の一実施例のシステム構成を示すブロック
図、第3図は第1図の差分ポインタの6道とデータバッ
ファのデータ量およびアクセスバイトコードとの関係を
示す図、第4図は第1図の主記憶装置の構成を示すブロ
ック図、第5図は第4図に示す主記憶装置の動作を示す
タイムチャートである。 主要部分の符号の説明 1・・・・・・共通部 2−1〜2−4・・・・・・人出力ボート部3・・・・
・・入出力処理装置 4・・・・・・主記憶装置 6−1〜6−4・・・・・・入出力装置10・・・・・
・データ転送制御部 15・・・・・・優先判定回路 16.17゜ 27.28・・・・・・選択回路 20・・・・・・人出力ボート制御部 21・・・・・・データバッファ 22・・・・・・メモリポインタ 23・・・・・・入出力インタフェースポインタ24・
・・・・・減算器 25・・・・・・差分ポインタ 26・・・・・・変換回路
Fig. 1 is a block diagram showing the configuration of an embodiment of the present invention, Fig. 2 is a block diagram showing the system configuration of an embodiment of the invention, and Fig. 3 shows the six paths and data of the difference pointer in Fig. 1. Figure 4 is a block diagram showing the structure of the main memory shown in Figure 1. Figure 5 is a time diagram showing the operation of the main memory shown in Figure 4. It is a chart. Explanation of symbols of main parts 1...Common parts 2-1 to 2-4...Man output boat part 3...
...Input/output processing device 4...Main storage device 6-1 to 6-4...Input/output device 10...
・Data transfer control unit 15...Priority determination circuit 16.17゜27.28...Selection circuit 20...Person output boat control unit 21...Data Buffer 22... Memory pointer 23... Input/output interface pointer 24.
...Subtractor 25 ...Difference pointer 26 ...Conversion circuit

Claims (1)

【特許請求の範囲】[Claims] (1)主記憶装置と入出力装置との間で転送されるデー
タを一時保持するデータバッファを有する入出力処理装
置であって、前記データバッファに保持されたデータ量
を計数する計数手段と、前記計数手段の計数値に応じて
1回のアクセスで転送される前記主記憶装置との間のデ
ータ転送量を決定する決定手段と、前記決定手段により
決定された前記データ転送量に応じて前記主記憶装置に
対する読出し書込みを制御する制御手段とを有すること
を特徴とする入出力処理装置。
(1) An input/output processing device having a data buffer that temporarily holds data transferred between a main storage device and an input/output device, and a counting means for counting the amount of data held in the data buffer; determining means for determining the amount of data transferred between the main storage device and the main storage device to be transferred in one access according to the count value of the counting means; An input/output processing device comprising: control means for controlling reading and writing to a main storage device.
JP1238043A 1989-09-13 1989-09-13 I / O processor Expired - Fee Related JPH0831076B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1238043A JPH0831076B2 (en) 1989-09-13 1989-09-13 I / O processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1238043A JPH0831076B2 (en) 1989-09-13 1989-09-13 I / O processor

Publications (2)

Publication Number Publication Date
JPH03100751A true JPH03100751A (en) 1991-04-25
JPH0831076B2 JPH0831076B2 (en) 1996-03-27

Family

ID=17024318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1238043A Expired - Fee Related JPH0831076B2 (en) 1989-09-13 1989-09-13 I / O processor

Country Status (1)

Country Link
JP (1) JPH0831076B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4481458B2 (en) * 2000-08-25 2010-06-16 キヤノン株式会社 Data processing circuit of imaging device
JP2011186918A (en) * 2010-03-10 2011-09-22 Renesas Electronics Corp Data transfer circuit and method
JP2012150663A (en) * 2011-01-19 2012-08-09 Fujitsu Semiconductor Ltd Data transfer unit and data transfer method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01284950A (en) * 1988-05-12 1989-11-16 Mitsubishi Electric Corp Input/output channel system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01284950A (en) * 1988-05-12 1989-11-16 Mitsubishi Electric Corp Input/output channel system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4481458B2 (en) * 2000-08-25 2010-06-16 キヤノン株式会社 Data processing circuit of imaging device
JP2011186918A (en) * 2010-03-10 2011-09-22 Renesas Electronics Corp Data transfer circuit and method
JP2012150663A (en) * 2011-01-19 2012-08-09 Fujitsu Semiconductor Ltd Data transfer unit and data transfer method

Also Published As

Publication number Publication date
JPH0831076B2 (en) 1996-03-27

Similar Documents

Publication Publication Date Title
US5634099A (en) Direct memory access unit for transferring data between processor memories in multiprocessing systems
KR100337056B1 (en) Buffering data that flows between buses operating at different frequencies
JP3181515B2 (en) Data transfer method and data transfer device using the method
WO1997034228A1 (en) Information processor with snoop suppressing function, memory controller, and direct memory access processing method
EP0315194A2 (en) Microcomputer capable of accessing continuous addresses for a short time
JPH03100751A (en) Input/output processor
US5946707A (en) Interleaved burst XOR using a single memory pointer
JPS6226055B2 (en)
JP3190847B2 (en) Data transfer control device
JPH11184761A (en) Read modify write control system
JP2716254B2 (en) List vector processing device
JPS59123913A (en) Dma access system
JPH10143448A (en) Memory system
JP2574821B2 (en) Direct memory access controller
JP2699482B2 (en) Data transfer control device
JP2798492B2 (en) List vector processing device
JP3317819B2 (en) Control method for two-port access of single-port RAM
JPS5846423A (en) Interface circuit of direct memory access device
JPH08328995A (en) System and method for dma transfer
JPH04195563A (en) Controller for memory system
JPS63223943A (en) Direct memory access control system
JPH051491B2 (en)
JPH05165731A (en) Duplex storage device
JPH02123426A (en) Microprocessor
JPS63118960A (en) Frame memory controller

Legal Events

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