JPS61240355A - I/o data processing system - Google Patents

I/o data processing system

Info

Publication number
JPS61240355A
JPS61240355A JP8276585A JP8276585A JPS61240355A JP S61240355 A JPS61240355 A JP S61240355A JP 8276585 A JP8276585 A JP 8276585A JP 8276585 A JP8276585 A JP 8276585A JP S61240355 A JPS61240355 A JP S61240355A
Authority
JP
Japan
Prior art keywords
entry
data
pointer
input
buffer
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
JP8276585A
Other languages
Japanese (ja)
Inventor
Hajime Takagi
一 高木
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 JP8276585A priority Critical patent/JPS61240355A/en
Publication of JPS61240355A publication Critical patent/JPS61240355A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To accomplish setting of a data buffer in the software area by separating I/O instruction from a read-instruction, and by controlling the state of vacancy of a data buffer whose output control device is set in the main storage. CONSTITUTION:Every time a new data is inputted from a peripheral equipment DEV4-1, an entry in free state is found, and its buffer address pointer is transferred to a buffer 30 of an MMU 3 and stored there. The link pointer of the entry which is pointed out until now by the first tail entry pointer, points the newly found entry, furthermore, the first fail entry pointer itself is renewed so as to point this newly found entry.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は入出力データ処理方式、とくにマイクロプログ
ラム制御型データ処理システムにおける周辺装置と記憶
装置との間のデータ転送制御を行なう入出力データ処理
方式に関するものである。
[Detailed Description of the Invention] [Field of Industrial Application] The present invention relates to an input/output data processing method, particularly an input/output data processing method for controlling data transfer between a peripheral device and a storage device in a microprogram-controlled data processing system. It is related to the method.

〔従来の技術〕[Conventional technology]

従来、データ処理システムに接続される周辺装置(例え
ば磁気テープ装置、フロッピィディスク装置等)で発生
するデータを入力し主記憶に格納するためには、ソフト
ウェアから出された入出力命令(リード命令)を入出力
制御装置が解釈し、周辺装置に対しリード指令を発行す
ることにより、周辺装置が磁気テープ媒体に記録されて
いるデータを読取り、入出力制御装置を介して主記憶に
転送していた。すなわち、ソフトウェアから出される入
出力命令中に、指令の種類、データ転送長。
Conventionally, in order to input data generated by peripheral devices connected to a data processing system (e.g. magnetic tape device, floppy disk device, etc.) and store it in main memory, input/output commands (read commands) issued by software have been used. The input/output controller interprets the data and issues a read command to the peripheral device, which causes the peripheral device to read the data recorded on the magnetic tape medium and transfer it to main memory via the input/output controller. . In other words, during the input/output commands issued by the software, the type of command, data transfer length.

データ転送アドレスが設定されており、入出力制御装置
は入出力命令がソフトウェアより出されてから周辺装置
内で発生するデータのデータ転送を行なっていた。
A data transfer address is set, and the input/output control device transfers data generated within the peripheral device after an input/output command is issued by software.

また、通信回線に接続される端末装置のように非同期に
データ入力があるような周辺装置に対しては、ソフトウ
ェアは常にリード指令のための入出力命令を入出力制御
装置に発行し、いつでも端末装置からのデータ入力が可
能となるような制御を行なっていた。しかし通信回線が
高速化され、入力されたデータの処理が、次のデータ入
力までの間に処理ができなくなると、データオーバラン
が発生し、データが失なわれてしまうようなことも起る
ようになった。このような問題に対しては、入出力制御
装置内に複数個のデータバッファを設け、ソフトウェア
による入力データの処理時間に関係なくデータ入力を可
能とさせる制御方法が考えられた。
In addition, for peripheral devices that receive data input asynchronously, such as terminal devices connected to communication lines, the software always issues input/output commands for read commands to the input/output control device, and Control was performed to enable data input from the device. However, as communication lines become faster and input data cannot be processed before the next data input, data overruns may occur and data may be lost. Became. To solve this problem, a control method has been devised in which a plurality of data buffers are provided in the input/output control device and data input is possible regardless of the processing time of the input data by software.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

しかしながらこの方法は、入出力装置内にデータバッフ
ァ用記憶域が必要となり、入出力制御装置の複雑化とコ
スト高を招くという欠点があった。
However, this method requires a data buffer storage area within the input/output device, which has the disadvantage of complicating the input/output control device and increasing cost.

本発明の目的は、上述の欠点を除去して、複数個のデー
タ転送格納アドレスを設定するための入出力命令を、従
来存在していたデータ転送制御型入出力命令(例えばリ
ード命令)から分離し、かつ入出力制御装置が主記憶内
に設定されたデータバッファの空き状態を管理すること
により、従来技術においては入出力制御装置内に確保し
ていたデータバッファを直接ノアトウエアがアクセスす
ることが可能である主記憶中のソフトウェアエリアに設
定することを可能とさせることによシ効率のよいデータ
転送制御方式を提供することにある。
An object of the present invention is to eliminate the above-mentioned drawbacks and separate input/output instructions for setting multiple data transfer storage addresses from conventional data transfer control type input/output instructions (for example, read instructions). In addition, by having the input/output control device manage the free status of the data buffer set in the main memory, it is possible for no-toware to directly access the data buffer that was reserved in the input/output control device in the conventional technology. An object of the present invention is to provide an efficient data transfer control method by making it possible to set data in a software area in main memory where possible.

〔問題点を解決するための手段〕[Means for solving problems]

本発明の方式は、マイクロプログラム制御型データ処理
システムにおける周辺装置と記憶装置との間のデータ転
送制御において、前記データ処理システムは前記周辺装
置で発生するデータを前記記憶装置を介して入力処理す
るためのリード命令と入力されたデータを転送格納する
ため前記記憶装置中に設定された複数個のデータバッフ
ァのそれぞれのアドレス情報を含むデータ転送アドレス
設定命令とを含む入出力命令を有し、前記データ処理シ
ステムを構成する入出力制御装置は前記データ転送アド
レス設定命令に応じ前記記憶装置中に設定されたそれぞ
れの前記データバッファに対応し対応する前記データバ
ッファの占有状態を指示する識別子と対応する前記デー
タバッファのアドレスをポイントするバッフ丁アドレス
ポインタと対応する前記データバラフチへのデータの格
納順序に関する情報を保持するリンクポインタとを格納
するためのそれぞれのフィールドを有する各エントリと
、前記各エントリの中から選出されたエントリで構成さ
れる待行列の先頭のエントリをポイントするためのヘッ
ドエントリポインタと、前記待行列の最後尾のエントリ
をポイントするためのテールエントリポインタとを前記
入出力制御装置のローカルメモリ内に設定初期値化し、
前記入出力制御装置が前記周辺装置からのデータの入力
を認識すると前記識別子が空き状態を指示している前記
エントリの一つを選出しこのエントリの前記バッフ丁ア
ドレスポインタがポイントする前記記憶装置内のデータ
バッフ丁に前述の入力したデータを転送格納し、これと
ともにこのエントリの前記識別子を占有状態を指示する
ように更新し、さらに前記テールエントリポインタがこ
のエントリをポイントするようにする更新と前記ヘッド
エントリポインタと前記リンクポインタとに対する必要
な更新とによってこのエントリを前記待行列に登録し、
前記リード命令が発行されると前記ヘッドエントリポイ
ンタの指示するエントリを前記ヘッドエントリポインタ
の更新と前記テールエントリポインタと前記リンクポイ
ンタとに対する必要な更新とによって前記待行列から取
りはずし、さらにこのエントリの前記識別子を空き状態
を指示するように更新する。
In the method of the present invention, in data transfer control between a peripheral device and a storage device in a microprogram-controlled data processing system, the data processing system inputs and processes data generated in the peripheral device via the storage device. and a data transfer address setting instruction including address information of each of a plurality of data buffers set in the storage device for transferring and storing input data; The input/output control device constituting the data processing system corresponds to each of the data buffers set in the storage device in response to the data transfer address setting command, and corresponds to an identifier indicating the occupation state of the corresponding data buffer. each entry having respective fields for storing a buffer address pointer pointing to the address of the data buffer and a link pointer holding information regarding the order in which data is stored in the corresponding data buffer; The input/output control device includes a head entry pointer for pointing to the head entry of a queue consisting of entries selected from among the entries, and a tail entry pointer for pointing to the last entry of the queue. Initializes the settings in the local memory of
When the input/output control device recognizes data input from the peripheral device, it selects one of the entries for which the identifier indicates an empty state, and selects one of the entries whose identifier indicates an empty state, and stores data in the storage device pointed to by the buffer address pointer of this entry. transfers and stores the input data in the data buffer of , updates the identifier of this entry to indicate the occupied state, and updates the tail entry pointer to point to this entry. registering this entry in the queue with a head entry pointer and any necessary updates to the link pointer;
When the read command is issued, the entry pointed to by the head entry pointer is removed from the queue by updating the head entry pointer and necessary updates to the tail entry pointer and link pointer; Update the identifier to indicate free status.

〔実施例〕〔Example〕

次に、本発明について図面を参照して説明する。 Next, the present invention will be explained with reference to the drawings.

第1図は本発明の一実施例を示すプルツク図でおる。本
実施例は、演算処理装置1(以下EPUI)、入出力制
御装置2(以下l0P2)、主記憶装置3(以下MMU
3)および周辺装置4−1.4−2(以下DEV4−1
 、 DEV4−2 )  を含んでいる。
FIG. 1 is a pull diagram showing one embodiment of the present invention. This embodiment includes an arithmetic processing unit 1 (hereinafter referred to as EPUI), an input/output control unit 2 (hereinafter referred to as 10P2), a main storage device 3 (hereinafter referred to as MMU
3) and peripheral device 4-1.4-2 (hereinafter referred to as DEV4-1)
, DEV4-2).

第2図にとのl0P2の詳細を示す。Figure 2 shows details of l0P2.

l0P2は入出力ポート21、マイクロプログラム実行
制御部22、システムバス制御部23、ローカルメモリ
24およびデータ転送制御部25を含んでいる。この中
で入出力ボート21およびデータ転送制御部25は、接
続されるDEV 4−1 およびDEV4−2に対応し
て設けられている。
l0P2 includes an input/output port 21, a microprogram execution control section 22, a system bus control section 23, a local memory 24, and a data transfer control section 25. Among them, the input/output boat 21 and the data transfer control section 25 are provided corresponding to the connected DEV 4-1 and DEV 4-2.

次に第3図は、このl0P2のローカルメモリ24内に
設定され、DEV4−1.DEV4−2に対するデータ
転送動作を制御するためのも植のパラメータを格納する
レジスタ類を示す図である。
Next, as shown in FIG. 3, data is set in the local memory 24 of this l0P2, and DEV4-1. FIG. 4 is a diagram showing registers that store parameters for controlling data transfer operations to the DEV4-2.

これらのレジスタ類は、それぞれ、第1ヘツドエントリ
ポインタ241−1、第2ヘッドエントリポインタ24
1−2.第1テールエントリポインタ242−1.第2
テールエントリポインタ242−2、およびN個のエン
トリとして、エントリ243−1〜243−Nを含んで
いる。
These registers are the first head entry pointer 241-1 and the second head entry pointer 24, respectively.
1-2. First tail entry pointer 242-1. Second
It includes a tail entry pointer 242-2 and N entries 243-1 to 243-N.

これらの各エントリは、第4図に示すように、ビジー/
7リー識別子を格納するフィールドDと、バッフ丁アド
レスポインタを格納するフィールドBとリンクポインタ
を格納するフィールドLとを有している。
Each of these entries has a busy/busy entry, as shown in Figure 4.
It has a field D that stores a 7-key identifier, a field B that stores a buffer address pointer, and a field L that stores a link pointer.

次に第5図にデータ転送アドレス設定命令の命令形式を
示す。この命令は、指示コード部、データ長部およびデ
ータアドレス部のフィールドを含み、指令コード部には
この命令がデータ転送アドレス設定命令であることを示
す指令コードが含まれ、データ長部にはこの命令でI(
JP2のローカルメモリ24内に転送設定すべきデータ
長が指示され、またデータアドレス部にはこの命令によ
ってI(JP2のローカルメモリ2千内に転送設定すべ
きデータが格納されているMMU3のアドレスが含まれ
ている。
Next, FIG. 5 shows the command format of the data transfer address setting command. This instruction includes fields for an instruction code section, a data length section, and a data address section. I (with command)
The data length to be transferred and set in the local memory 24 of JP2 is specified, and the data address field is filled with I (the address of the MMU 3 in which the data to be transferred and set is stored in the local memory 24 of JP2). include.

さて、本実施例の動作は下記の通りである。Now, the operation of this embodiment is as follows.

EPUIは、MMUB内にあるソフトウェア命令f:読
出して実行するが、命令が入出力命令C以下I10命令
)であれば指定されたl0P2に対しI10命令を発行
する。EPUIから発行されたI10命令は、システム
10000を介してl0P2  のシステムバス制御部
23に伝えられ、l0P2  のマイクロプログラム実
行制御部22により解読され、対応するマイクロプログ
ラムを実行することにより処理されるら 本実施例においてH1DEV4−1 、1)EV4−2
  との間のデータ転送を実施するに先だち(例えばシ
ステムの立ち上げ時に)、EPUIは、MMU3のバッ
7ア領域30にN個の独立したデータバッファを設定確
保し、これに対応する前述のデータ転送アドレス設定命
令を発行する。この命令は上述のようにしてIOP 2
のマイクロプログラム実行制御部22に供給され、ここ
で走行しているマイクログログ2ムによって解読される
。この命令を解読するとマイクロプログラムは、このデ
ータ転送アドレス設定命令のデータアドレス部で指定さ
れる主記憶3のアドレス領域から、データ長部で指定さ
れる長さの予め設定されているデータを転送してl0P
2のローカルメモリ24の中の予め定めたアドレス領域
に設定する。この結果、ローカルメモリ24には以下の
ように、前述の各種レジスタ類が設定初期値化される。
The EPUI reads and executes the software instruction f in MMUB, but if the instruction is an input/output instruction C or below (I10 instruction), it issues an I10 instruction to the specified I0P2. The I10 instruction issued from the EPUI is transmitted to the system bus control unit 23 of l0P2 via the system 10000, decoded by the microprogram execution control unit 22 of l0P2, and processed by executing the corresponding microprogram. In this example, H1DEV4-1, 1) EV4-2
Prior to performing data transfer between the Issue a transfer address setting command. This instruction executes IOP 2 as described above.
The data is supplied to the microprogram execution control unit 22 of the computer, and is decoded by the microprogram 2 running there. When this instruction is decoded, the microprogram transfers the preset data of the length specified by the data length section from the address area of the main memory 3 specified by the data address section of this data transfer address setting instruction. te l0P
2 to a predetermined address area in the local memory 24 of No. 2. As a result, the various registers described above are set to initial values in the local memory 24 as follows.

すなわち、第1および第2のヘッドエントリポインタ2
41−1 、241−2、第1および第2のテールエン
トリポインタ242−1.242−2がそれぞれ設定さ
れずべてOに初期値化される。次に前述のλWU3のバ
ッファ領域30に設定確保された独立のN個のデータバ
ッファのそれぞれに対応し第4図に示したような各フィ
ールドを有するN個のエントリが設定され、各エントリ
の識別子を格納するフィールドDはすべて′″0”(7
リー状態]に初期値化され、また各エントリのバッファ
アドレスポインタを格納するフィールドBにはMMU3
のバッファ領域3゜に設定されたこのエントリに対応す
るデータバッファの開始アドレスをポイントするバッフ
ァアドレスポインタの値が設定され、また各エントリの
リンクポインタを格納するフィールドLはすべて0に初
期値化される。
That is, the first and second head entry pointers 2
41-1, 241-2, and the first and second tail entry pointers 242-1 and 242-2 are not set and are initialized to O, respectively. Next, N entries having respective fields as shown in FIG. 4 are set corresponding to each of the N independent data buffers set and secured in the buffer area 30 of the λWU3 mentioned above, and each entry has an identifier. All fields D that store ``0'' (7
field B, which stores the buffer address pointer of each entry, contains MMU3.
The value of the buffer address pointer that points to the start address of the data buffer corresponding to this entry set in the buffer area 3° of is set, and the field L that stores the link pointer of each entry is all initialized to 0. Ru.

さて、以上のように初期設定された状態において、DE
V4−1 からのデータ入力をl0P2  のマイクロ
プログラム実行制御部22が認識すると、l0PZ内の
入力データ処理のマイクロプログラムは、各エントリ2
43−1〜243−Nの識別子フィールドDの内容(以
、後識別子)を順番に判別し、フリー状態(フィールド
Dの内容が10″]のエントリを見出すと、最初に見出
されたこのフリー状態のエントリのバッファアドレスポ
インタがポイントするMMU3のバッファ領域30に設
定されたデータバッファに、人力したデータを転送格納
するための指示を入出力ポート21内のデータ転送制御
部25に対して発行してこの転送を実行し、このエント
リの識別子を11”すなわちビジー(占有)状態にセッ
トし、ついで第1ヘッドエントリポインタ241−1お
よび第1テールエントリポインタ242−1が、ともに
このエントリ(現在の場合第にントリ243−1になる
)をポイントするように更新する。
Now, with the initial settings as above, the DE
When the microprogram execution control unit 22 of l0P2 recognizes the data input from V4-1, the input data processing microprogram in l0PZ executes each entry 2.
The contents of the identifier field D of 43-1 to 243-N (hereinafter referred to as identifier) are determined in order, and when an entry in the free state (the contents of field D is 10'') is found, this free Issues an instruction to the data transfer control unit 25 in the input/output port 21 to transfer and store the manually input data to the data buffer set in the buffer area 30 of the MMU 3 to which the buffer address pointer of the status entry points. The lever transfer is executed and the identifier of this entry is set to 11”, that is, the busy (occupied) state, and then the first head entry pointer 241-1 and the first tail entry pointer 242-1 are both set to this entry (current 243-1).

さて、このような状態のときに、さらにDEV4−1か
らのデータ人力’1I(JP2のマイクロプログラム実
行制御部22が認識すると、l0PZ内の入力データ処
理のマイクロプログラムは、前と同様に、各エントリ2
43−1〜243−Nの識別子を順番に判別し、最初に
7り一状態のエントリを見出すと、このエントリのバッ
ファアドレスポインタがポイントする思ル3のバッファ
領域30に設定されたデータバッファに、入力したデー
タを前述のようにして転送格納し、さらKこのエントリ
の識別子を′″1″とし、ついで第1テールエントリポ
インタ242−1が今までポイントしていたエントリの
リンクポインタおよび第1テールエントリポインタ24
2−1の両方が、この新らしく見出でれたエントリをポ
イントするように更新する。
Now, in this state, when the microprogram execution control unit 22 of JP2 recognizes the data input from DEV4-1, the input data processing microprogram in 10PZ executes each input data as before. Entry 2
The identifiers 43-1 to 243-N are sequentially determined, and when an entry in the 7-ri-1 state is first found, the data buffer set in the buffer area 30 of memory 3 pointed to by the buffer address pointer of this entry is , the input data is transferred and stored as described above, and the identifier of this entry is set to ``1'', and then the first tail entry pointer 242-1 transfers the link pointer and the first Tail entry pointer 24
2-1 are both updated to point to this newly found entry.

かくして、DEV4−1 から新らしいデータが入力さ
れるごとに、7リー状態のエントリが見出され、この見
出されたエントリのバッファアドレスポインタがポイン
トするMMU3のデータバッファに、入力したデータが
転送格納てれ、今まで第1テールエントリポインタ24
2−1でポイントされていたエントリのリンクポインタ
が次の順番のエントリとしてこの新らしく見出されたエ
ントリをポイントシ、さらに第1テールエントリーポイ
ンタ242−1それ自身がこの新らしく見出されたエン
トリをポイントするように更新される。
Thus, every time new data is input from DEV4-1, an entry in the 7-lead state is found, and the input data is transferred to the data buffer of MMU3 pointed to by the buffer address pointer of the found entry. Store it, until now the first tail entry pointer 24
The link pointer of the entry pointed to in 2-1 points to this newly found entry as the next sequential entry, and the first tail entry pointer 242-1 itself points to this newly found entry. Updated to point to the entry.

かくして7リー状態のエントリが見出されるかぎり、入
力したデータは、ン7トウエアの処理を待つことなく、
このエントリに対応するMMtl 3のバッファ領域3
0に設定されたデータバッファに転送格納され、これに
対応してこのエントリは、第にントリポインタ241−
1.中間のエントリの各リンクポインタ、および第1テ
ールエントリポインタ242−1で指定される一連の待
行列の最後尾(テール)に新たなエントリとして登録さ
れる。
Thus, as long as an entry in the seven-lead state is found, the input data will be processed without waiting for the software to process it.
Buffer area 3 of MMtl 3 corresponding to this entry
The entry is transferred and stored in the data buffer set to 0, and correspondingly this entry is stored in the data buffer set to 0.
1. It is registered as a new entry at the end (tail) of the series of queues specified by each link pointer of the intermediate entry and the first tail entry pointer 242-1.

さて、第1ヘツドエントリポインタ241−1が上述の
ようにして初期設定値の0以外の値をとると、マイクロ
プログラムは、ソフトウェアに対して処理すべきデータ
があること示す割込みをかけ、この割込においてマイク
ロプログラムは、第1ヘツドエントリポインタ241−
1がポイントするエントリのバッフ7アドレスポインタ
の値をン7トウ丹アに通報する。
Now, when the first head entry pointer 241-1 takes a value other than the initial setting value of 0 as described above, the microprogram issues an interrupt to the software indicating that there is data to be processed. In this process, the microprogram sets the first head entry pointer 241-
The value of the buffer 7 address pointer of the entry pointed to by 1 is reported to the buffer 7 address pointer.

ソフトウェアがこの割込みを受けつけて、通報されたバ
ッファアドレスポインタの値でポイントされるMU3の
バッファ領域30に設けられたデータバッファから、転
送格納されたDEV4−1 からの入力データを取り出
し、このデータの読込み処理が終了すると、ソフトウェ
アは次のDEV4−1からのデータを処理するためのリ
ード命令をl0P2に対して発行する。
The software accepts this interrupt, retrieves the transferred and stored input data from DEV4-1 from the data buffer provided in the buffer area 30 of MU3, which is pointed to by the value of the notified buffer address pointer, and stores this data. When the read process is completed, the software issues a read command to l0P2 to process data from the next DEV4-1.

このリード命令を受けるとIUP20マイクロプログラ
ムは、現在の第1ヘツドエントリポインタ241−1の
ポイントするエントリの識別子を頴”にしてこのエント
リが7リー状態を示すようにし、第1ヘツドエントリポ
インタ241−1kこのエントリのリンクポインタがポ
イントする上述の待行列の仄のエントリ(これが存在し
ない場合にはO)を指示するように更新し、さらにこの
エントリのリンクポインタをOとしてこのエントリを待
行列から取りはずし完全に7リー状態とする。
Upon receiving this read command, the IUP 20 microprogram changes the identifier of the entry currently pointed to by the first head entry pointer 241-1 to ``零'' so that this entry indicates the 7-lead state, and then returns the first head entry pointer 241-1 to 1k Update this entry's link pointer to point to the other entry in the above queue (O if it does not exist), and set this entry's link pointer to O to remove this entry from the queue. Completely set to 7 li.

かくして、更新された第1ペツドエントリポインタ24
1−1がOにならない場合(つまりまだ待行列に登録さ
れているエントリがおる場合)には、マイクロプログラ
ムは再びソフトウェアに対して処理すべきデータがある
ことを示す割込みをかけ、この割込において前述のよう
に、第1ヘツドエントリポインタ241−1が現在ポイ
ントするエントリのバッファアドレスポインタの[−ソ
フトウェアに通報する。
Thus, the updated first pet entry pointer 24
If 1-1 does not become O (that is, there are still entries registered in the queue), the microprogram again interrupts the software to indicate that there is data to process, and this interrupt As described above, the first head entry pointer 241-1 notifies the software of the buffer address pointer of the entry currently pointed to.

こうして割込みを受けたソフトウェアが、この割込みを
受けつけて、この割込で通報されたバッファアドレスポ
インタでポイントされるMMU3のバッファ領域30に
6るデータバッファから、入力転送されたデータを取出
し処理し、この処理が終了するごとにソフトウェアのリ
ード命令が発行され、このリード命令を受けたマイクロ
プログラムは、現在の第1ヘツドエントリポインタ24
1−1のポイントするエントリを上述のようにして待行
列から取りはずし、第1ヘツドエントリポイン4241
−1?侍行列の次のエントリを指示するように(つまシ
取υはずしたエントリのリンクポインタの値に)更新す
る。そしてもし次のエントリが待行列に存在すれば(更
新された第1ヘツドエントリポインタ241−1が0で
なければ)、再びソフトウェアに対する割込みを発生し
この割込みで新らしいエントリのバッファアドレスポイ
ンタの値を通報する。またもし次のエントリが存在しな
い場合には、第1ヘッドエントリポインタ241−1の
内容はOになシ、次のデータ入力により待行列が再び構
成されるまで、ソフトウェアに対する上述の割込みは停
止される。
The software that received the interrupt in this way accepts this interrupt, retrieves the input transferred data from the data buffer in the buffer area 30 of the MMU 3 pointed to by the buffer address pointer notified by this interrupt, and processes it. Each time this process is completed, a software read command is issued, and the microprogram that receives this read command returns the current first head entry pointer 24.
The entry pointed to by 1-1 is removed from the queue as described above, and the entry point 4241 is moved to the first head entry point 4241.
-1? It is updated to point to the next entry in the samurai matrix (to the value of the link pointer of the entry from which the pick was removed). If the next entry exists in the queue (unless the updated first head entry pointer 241-1 is 0), an interrupt to the software is generated again, and this interrupt uses the value of the buffer address pointer of the new entry. Report. Also, if the next entry does not exist, the contents of the first head entry pointer 241-1 are set to O, and the above-mentioned interrupts to the software are stopped until the queue is reconfigured by the next data input. Ru.

以上のように本実施例によると、DEV4−1からの入
力があるごとに、フリー状態のエントリがおるかぎり、
ソフトウェアの処理とは無関係に、人力したデータは直
ちにこのフリー状態のエントリに対応するデータバッフ
ァに転送格納され、それに従ってこのエントリは待行列
の最後尾に登録される。そしてこの待行列は、ソフトウ
ェアの処理能力に応じて先入れ先出しの規則に従って待
行列の先頭処理されてゆく。しかも本実施例によると、
実際のデータバッファは、ソフトウェアが直接アクセス
できしかも大容量のMMU3の、バッファ領域30に設
定され、l0P2のローカルメモリ24には、上述のよ
うにこのデータ転送を制御するためのパラメータ類を設
定するだけでよいので大容量を必要としないという特徴
を有している。
As described above, according to this embodiment, whenever there is an input from DEV4-1, as long as there is an entry in the free state,
Regardless of software processing, the manually entered data is immediately transferred and stored in the data buffer corresponding to this free entry, and this entry is accordingly registered at the end of the queue. The queue is processed according to the first-in, first-out rule according to the processing capacity of the software. Moreover, according to this example,
The actual data buffer is set in the buffer area 30 of the MMU 3 which can be directly accessed by software and has a large capacity, and the parameters for controlling this data transfer are only set in the local memory 24 of the 10P2 as described above. It has the characteristic that it does not require a large capacity.

なお、以上の説明においてはDEV4−1 からのデー
タ入力があった場合についてだけを詳述したが、DEV
4−2からのデータ入力があった場合には、l0P2の
入力データ処理のマイクロプログラムは上述の第1ヘツ
ドエントリポインタ241−1および第1テールエント
リポインタ242−1のかわシに、それぞれ第2ヘツド
エントリポインタ241−2および第2テールエントリ
ポインタ242−2を用いて上述と全く同様な処理を行
なう。
In addition, in the above explanation, only the case where there was data input from DEV4-1 was detailed, but
When there is data input from 4-2, the input data processing microprogram of 10P2 inputs the second input pointer to the first head entry pointer 241-1 and the first tail entry pointer 242-1, respectively. Exactly the same process as described above is performed using the head entry pointer 241-2 and the second tail entry pointer 242-2.

この場合に、第2ヘツドエントリポインタ241−2が
0でない場合に出す処理すべきデータがあることを示す
ソフトウェアに対する割込みと、第1ヘッドエントリポ
インタ241−1が0でない場合に出す処理すべiデー
タがあることを示すソフトウェアに対する割込みとは、
異なる優先レベルを有する割込みが使用され、これによ
って両者からともに割込要求があった場合にソフトウェ
アがどちらの待行列の処理を先にすべきかを区別できる
ようにしている。またソフトウェアからのリード命令に
おいては、DEV4−1  に対するリード命令と、D
EV4−2に対するリード命令とを区別できるようにし
、これによってl0P2のマイクロプログラムが、発行
されたリード命令に対して、第1ヘツドエントリポイン
タ241−1および第1テールエントリポインタ242
−1で指定される])EV4−1 からのデータに対す
る待行列側の処理かまたFi、第2ヘツドエントリポイ
ンタ241−2および第2テールエントリポインタ24
2−2で指定されるDEV4−2からのデータに対する
待行列側の処理かを区別するようにしている。
In this case, if the second head entry pointer 241-2 is not 0, an interrupt is issued to the software indicating that there is data to be processed, and if the first head entry pointer 241-1 is not 0, all data to be processed is issued. An interrupt to software that indicates that
Interrupts with different priority levels are used to allow software to distinguish which queue should be serviced first if interrupt requests are received from both. In addition, read commands from software include read commands for DEV4-1 and DEV4-1.
This enables the l0P2 microprogram to distinguish between the read command for EV4-2 and the first head entry pointer 241-1 and the first tail entry pointer 242 in response to the issued read command.
-1]) Processing on the queue side for data from EV4-1 Also, Fi, the second head entry pointer 241-2 and the second tail entry pointer 24
A distinction is made between processing on the queue side for data from DEV 4-2 designated by 2-2.

本実施例によると、各エントリ243−1〜243−N
と、これらの各エントリに対応する凹30バッフ丁領域
30に設けられた各データバッファとは、7リー状態で
あるかぎり、いずれの使用としても全く自由に何等の制
限なく混合して使用することができる几め1.柔軟性に
富んだ高効率のバッフ丁利用が可能になるという特徴を
有している。
According to this embodiment, each entry 243-1 to 243-N
The data buffers provided in the 30-concave buffer area 30 corresponding to each of these entries may be used in any way freely and mixedly without any restrictions as long as they are in the 7-lead state. Strategies for doing this 1. It has the feature of allowing highly flexible and highly efficient use of the buff.

なお、以上は本発明の一実施例を示したもので本発明は
以上の実施例に限定されるものではない。
Note that the above is an example of the present invention, and the present invention is not limited to the above example.

例えば、上述の実施例においては、周辺装置(DBV4
)の数を2個とし、これに対応してヘッドエントリポイ
ンタ241およびテールエントリポインタ242を2組
としたが、これらの数はこれ以外にも自由に選べること
は明らかである。例えは周辺装置の数を子側とし、この
中の3個は同じ種類の周辺装置とし、他の1個は優先度
の高い周辺装置とした場合に、同じ種類の3個からのデ
ータ入力に対しては、これらの入力データをすべて第1
ヘツドエントリポインタと第1テールエントリポイント
ヲ用いた第1の待行列に登録して先入れ先出しの規則に
従って平等に取り扱かい、第4の周辺装置からの入力デ
ータに対しては、第2ヘツドエントリポインタと第2テ
ールエントリポインタとを用いた第2の待行列に登録し
て高い優先レベルで取扱うようにすることもできる。
For example, in the above embodiment, the peripheral device (DBV4
) is set to two, and correspondingly, two sets of head entry pointers 241 and tail entry pointers 242 are set, but it is clear that these numbers can be freely selected other than this. For example, if the number of peripheral devices is the child side, three of them are of the same type, and the other one is a high priority peripheral, data input from three of the same type For example, all these input data are
They are registered in a first queue using a head entry pointer and a first tail entry point and treated equally according to the first-in, first-out rule, and for input data from a fourth peripheral, a second head entry pointer is used. and a second tail entry pointer, and can be treated with a high priority level.

また本実施例においては、各エントリのフィールドとし
て、識別子用のフィールドD、バッフ丁アドレスポイン
タ用のフィールドBおよびリンクポインタ用のフィール
ドLだけについて説明したが、必要に応じてこの他に転
送データのデータ長を指定するフィールドを各エントリ
に入れるようにすることもできる。
In addition, in this embodiment, only the field D for the identifier, the field B for the buffer address pointer, and the field L for the link pointer have been described as the fields of each entry. Each entry can also include a field specifying the data length.

〔発明の効果〕〔Effect of the invention〕

本発明は以上に説明したように、マイクロプログ2ム制
御型データ処理システムにおける周辺装置と記憶装置と
の間のデータ転送制御において、非同期に仄々とデータ
が入力されるような周辺装置からのデータを、データ処
理システムを構成する入出力制御装置内にデータバッフ
ァを確保することなく、マイクロプログラムという非常
に柔軟性に富んだ手段を用いることにより、最小のハー
ドウェアの追加により効率の良いデータ転送制御を可能
とするものである@ このような方式をとることによって、設定すべきデータ
バッファの数は、データ処理システム内のソフトウェア
の処理能力、あるいは周辺装置からの転送能力に応じて
自由に設定することがハードウェアの変更なしで可能で
あり、さらにまた複数の待行列を有する複数の周辺装置
に対してデータバッファを共用することが可能となシ、
これによって一層柔軟性に富み高効率の入出力データ処
理方式を提供できる。
As described above, the present invention provides data transfer control between a peripheral device and a storage device in a microprogram-controlled data processing system, in which data from a peripheral device is inputted asynchronously and gradually. By using a highly flexible means called a microprogram, without allocating a data buffer in the input/output control device that makes up the data processing system, efficient data transfer can be achieved with minimal addition of hardware. By using this method, the number of data buffers to be set can be freely set according to the processing capacity of the software in the data processing system or the transfer capacity from peripheral devices. It is possible to do this without any hardware changes, and it is also possible to share data buffers for multiple peripherals with multiple queues.
This makes it possible to provide a more flexible and highly efficient input/output data processing method.

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

第1図は本発明の一実施例を示すブロック図、第2図は
この実施例の入出力制御装置の詳細を示すブロック図、
第3図はこの入出力制御装置のローカルメモリ中に設定
される各種のパラメータを格納するレジスタ類を説明す
るための図、第4図は各エントリに含まれるフィールド
を説明するための図および第5図は本実施例で使用され
るデータ転送アドレス設定命令の形式を説明するための
図である。 図において、 1・・・・・・演算処理装置(EPU)、2・・・・・
・入出力制御装置(IOP)、3・・・・・・主記憶装
置(MMU)、4−1 、4−2・・−・−周辺装ff
(DEV)、21−1.21−2・・・、・・・入出力
ボート、22・・・・・・マイクロプログラム実行制御
部、23・・・・・・システムバス制御部、24・・・
・・・ローカルメモリ、25・・・・・・データ転送制
御部、30・・・・・・バッフ丁領域、241−1・・
・・・・第1ヘツドエントリポインタ、241−2・・
・・・・第2ヘッドエントリポイン’j、242−1・
・・・・・第1テールエントリポインタ、242−2・
・・・・・第2テールエントリポインタ、243−1〜
243−N・・・・・・エントリ、D・・・・・・ビジ
ー/7リー識別子フイールド、A・・・・・・バッファ
アドレスポインタフィールド、L・・・・・・リンクポ
インタフィールド。 竿 2 図 革4 図 一募 5 図
FIG. 1 is a block diagram showing one embodiment of the present invention, FIG. 2 is a block diagram showing details of the input/output control device of this embodiment,
Figure 3 is a diagram for explaining the registers that store various parameters set in the local memory of this input/output control device, and Figure 4 is a diagram for explaining the fields included in each entry. FIG. 5 is a diagram for explaining the format of the data transfer address setting command used in this embodiment. In the figure, 1... Arithmetic processing unit (EPU), 2...
・Input/output control unit (IOP), 3...Main memory unit (MMU), 4-1, 4-2...-Peripheral equipment ff
(DEV), 21-1.21-2...I/O port, 22...Microprogram execution control unit, 23...System bus control unit, 24...・
... Local memory, 25 ... Data transfer control unit, 30 ... Buffer area, 241-1 ...
...First head entry pointer, 241-2...
...Second head entry point 'j, 242-1.
...First tail entry pointer, 242-2.
...Second tail entry pointer, 243-1~
243-N... Entry, D... Busy/7 Lee identifier field, A... Buffer address pointer field, L... Link pointer field. Rod 2 Illustrations 4 Illustrations 5 Illustrations

Claims (1)

【特許請求の範囲】 マイクロプログラム制御型データ処理システムにおける
周辺装置と記憶装置との間のデータ転送制御において、 前記データ処理システムは前記周辺装置で発生するデー
タを前記記憶装置を介して入力処理するためのリード命
令と入力されたデータを転送格納するため前記記憶装置
中に設定された複数個のデータバッファのそれぞれのア
ドレス情報を含むデータ転送アドレス設定命令とを含む
入出力命令を有し、 前記データ処理システムを構成する入出力制御装置は前
記データ転送アドレス設定命令に応じ前記記憶装置中に
設定されたそれぞれの前記データバッファに対応し対応
する前記データバッファの占有状態を指示する識別子と
対応する前記データバッファのアドレスをポイントする
バッファアドレスポインタと対応する前記データバッフ
ァへのデータの格納順序に関する情報を保持するリンク
ポインタとを格納するためのそれぞれのフィールドを有
する各エントリと、前記各エントリの中から選出された
エントリで構成される待行列の先頭のエントリをポイン
トするためのヘッドエントリポインタと、前記待行列の
最後尾のエントリをポイントするためのテールエントリ
ポインタとを前記入出力制御装置のローカルメモリ内に
設定初期値化し、 前記入出力制御装置が前記周辺装置からのデータの入力
を認識すると前記識別子が空き状態を指示している前記
エントリの一つを選出しこのエントリの前記バッファア
ドレスポインタがポイントする前記記憶装置内のデータ
バッファに前述の入力したデータを転送格納し、これと
ともにこのエントリの前記識別子を占有状態を指示する
ように更新し、さらに前記テールエントリポインタがこ
のエントリをポイントするようにする更新と前記ヘッド
エントリポインタと前記リンクポインタとに対する必要
な更新とによってこのエントリを前記待行列に登録し、 前記リード命令が発行されると前記ヘッドエントリポイ
ンタの指示するエントリを、前記ヘッドエントリポイン
タの更新と前記テールエントリポインタと前記リンクポ
インタとに対する必要な更新とによって前記待行列から
取りはずし、さらにこのエントリの前記識別子を空手状
態を指示するように更新するようにしたことを特徴とす
る入出力データ処理方式。
[Claims] In data transfer control between a peripheral device and a storage device in a microprogram-controlled data processing system, the data processing system inputs and processes data generated by the peripheral device via the storage device. and a data transfer address setting instruction including address information for each of a plurality of data buffers set in the storage device for transferring and storing input data; The input/output control device constituting the data processing system corresponds to each of the data buffers set in the storage device in response to the data transfer address setting command, and corresponds to an identifier indicating the occupation state of the corresponding data buffer. each entry having respective fields for storing a buffer address pointer pointing to the address of the data buffer and a link pointer holding information regarding the order in which data is stored in the corresponding data buffer; A head entry pointer for pointing to the head entry of a queue consisting of entries selected from the queue, and a tail entry pointer for pointing to the last entry of the queue, are connected to the input/output controller's local The settings are initialized in memory, and when the input/output control device recognizes data input from the peripheral device, it selects one of the entries whose identifier indicates an empty state and uses the buffer address pointer of this entry. transfers and stores the input data in the data buffer in the storage device pointed to by the input data, updates the identifier of this entry to indicate the occupied state, and further points the tail entry pointer to this entry. register this entry in the queue by updating the head entry pointer and the link pointer as necessary; and when the read command is issued, the entry pointed to by the head entry pointer is registered in the head The entry pointer is updated and necessary updates are made to the tail entry pointer and the link pointer to remove the entry from the queue, and further update the identifier of this entry to indicate an empty state. Input/output data processing method.
JP8276585A 1985-04-18 1985-04-18 I/o data processing system Pending JPS61240355A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8276585A JPS61240355A (en) 1985-04-18 1985-04-18 I/o data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8276585A JPS61240355A (en) 1985-04-18 1985-04-18 I/o data processing system

Publications (1)

Publication Number Publication Date
JPS61240355A true JPS61240355A (en) 1986-10-25

Family

ID=13783530

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8276585A Pending JPS61240355A (en) 1985-04-18 1985-04-18 I/o data processing system

Country Status (1)

Country Link
JP (1) JPS61240355A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03103954A (en) * 1989-09-19 1991-04-30 Fuji Electric Co Ltd Duplicated system for input/output device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5462741A (en) * 1977-10-28 1979-05-21 Fujitsu Ltd Control system for data buffer region
JPS6159538A (en) * 1984-08-30 1986-03-27 Toshiba Corp Queue control system between tasks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5462741A (en) * 1977-10-28 1979-05-21 Fujitsu Ltd Control system for data buffer region
JPS6159538A (en) * 1984-08-30 1986-03-27 Toshiba Corp Queue control system between tasks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03103954A (en) * 1989-09-19 1991-04-30 Fuji Electric Co Ltd Duplicated system for input/output device

Similar Documents

Publication Publication Date Title
US4956771A (en) Method for inter-processor data transfer
US4543626A (en) Apparatus and method for controlling digital data processing system employing multiple processors
EP0644487B1 (en) Scalable system interrupt structure for a multiprocessing system
US5031091A (en) Channel control system having device control block and corresponding device control word with channel command part and I/O command part
JP3335172B2 (en) Data processing system and input / output processor for use therein
EP0489504B1 (en) Bidirectional FIFO buffer for interfacing between two buses
KR100766732B1 (en) Device and method for performing high-speed low overhead context switch
EP2097828B1 (en) Dmac to handle transfers of unknown lengths
EP0550163A1 (en) Circuit architecture for supporting multiple-channel DMA operations
JPH09128252A (en) Control method for execution of task with priority and data processor
WO2000075789A1 (en) A method and apparatus for automatically transferring i/o blocks between a host system and a host adapter
EP0644489A2 (en) Method and apparatus for signalling interrupt information in a data processing system
JPH0752418B2 (en) Data reception system
US5070477A (en) Port adapter system including a controller for switching channels upon encountering a wait period of data transfer
JPS61240355A (en) I/o data processing system
JPS6138510B2 (en)
CN114911581A (en) Data communication method and related product
JPS623361A (en) Status report system
JPH04288638A (en) Computer system
EP0319132A2 (en) Interrupt handling in a parallel data processing
US6633928B2 (en) Fast process context switching buffer
JPH02310649A (en) Reception frame transfer system and communication controller
JP3982077B2 (en) Multiprocessor system
JPS59108134A (en) Input/output controlling method
JPH0736806A (en) Dma system