JP5379075B2 - Data input / output device, data storage method and program - Google Patents

Data input / output device, data storage method and program Download PDF

Info

Publication number
JP5379075B2
JP5379075B2 JP2010120469A JP2010120469A JP5379075B2 JP 5379075 B2 JP5379075 B2 JP 5379075B2 JP 2010120469 A JP2010120469 A JP 2010120469A JP 2010120469 A JP2010120469 A JP 2010120469A JP 5379075 B2 JP5379075 B2 JP 5379075B2
Authority
JP
Japan
Prior art keywords
data
stored
storage area
series
output
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.)
Expired - Fee Related
Application number
JP2010120469A
Other languages
Japanese (ja)
Other versions
JP2011248585A (en
Inventor
孝 青木
晃 小野澤
典彦 前田
悠介 関原
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010120469A priority Critical patent/JP5379075B2/en
Publication of JP2011248585A publication Critical patent/JP2011248585A/en
Application granted granted Critical
Publication of JP5379075B2 publication Critical patent/JP5379075B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To suppress increase in storage capacity for storing data, achieve data first-in first-out for each data series, and re-output output data. <P>SOLUTION: A data input-output device can receive two or more data inputs that belong to any of two or more data series one by one, output received data for each two or more data series by a data first-in first-out method, and re-output output data. The data input-output device includes two or more storage areas and a controller. When data belonging to the same data series as the received data are not stored, the controller stores the data in one of empty storage areas where no data is stored, sets the empty storage area as a leading storage area in the data series, and reads out and output data from the leading storage area in the data series to be output. When receiving reception confirmation for output data, the controller sets the storage area where the data is stored as an empty leading storage area. <P>COPYRIGHT: (C)2012,JPO&amp;INPIT

Description

本発明は、出力したデータを再出力することが可能なデータ入出力装置、データ記憶方法及びプログラムに関する。   The present invention relates to a data input / output device, a data storage method, and a program capable of re-outputting output data.

高信頼性を確保しつつ、データの入出力を行うためには、データの出力元は、データの出力先がそのデータを正しく受け付けたことを確認できない場合、そのデータを再出力する必要がある。   In order to input / output data while ensuring high reliability, the data output source must re-output the data if the data output destination cannot confirm that the data has been correctly received. .

一方、低速かつ等時性のない複数のデータ系列のいずれかに属する複数のデータのそれぞれを、データ系列毎に所定のデータ量になるまで記憶し、記憶されたデータに対して一度に高速な処理を施すためには、データの先入れ先出しを複数のデータ系列毎に実現する必要がある。   On the other hand, each of a plurality of data belonging to any one of a plurality of low-speed and non-isochronous data series is stored until a predetermined data amount is reached for each data series, and the stored data can be quickly processed at a time. In order to perform processing, it is necessary to realize first-in first-out data for each of a plurality of data series.

図16は、データの先入れ先出しを複数のデータ系列毎に実現するとともに、出力したデータの再出力が可能なデータ入出力装置の構成を説明するための図である。   FIG. 16 is a diagram for explaining a configuration of a data input / output device that realizes first-in first-out data for each of a plurality of data series and can re-output the output data.

入力バッファ114は、複数のデータの入力を1つずつ受け付ける。なお、入力バッファ114にて受け付けられる複数のデータのそれぞれは、複数のデータ系列のいずれかに属している。複数のデータのそれぞれには、データ系列を識別するための系列番号が付与されている。   The input buffer 114 receives input of a plurality of data one by one. Each of the plurality of data received by the input buffer 114 belongs to one of a plurality of data series. A series number for identifying a data series is assigned to each of the plurality of data.

キュー112−1〜112−nのそれぞれは、複数のデータ系列のそれぞれと固定的に対応付けられ、入力バッファ114にて受け付けられた複数のデータのそれぞれをデータ系列毎に記憶する。例えば、データ系列の数がN個であれば、キューもN個必要となる。   Each of the queues 112-1 to 112-n is fixedly associated with each of the plurality of data series, and stores each of the plurality of data received by the input buffer 114 for each data series. For example, if the number of data series is N, N queues are required.

再出力用キュー113−1〜113−nのそれぞれは、キューと同様に、複数のデータ系列のそれぞれと固定的に対応付けられ、キュー112−1〜112−nのそれぞれから出力されたデータを、所定の条件が満足されるまで記憶する。所定の条件とは例えば、データの出力先から、そのデータを受け付けたことを示す受信確認が受け付けられた場合等である。再出力用キューもキューと同様に、例えば、データ系列の数がN個であれば、N個必要となる。   Each of the re-output queues 113-1 to 113-n is fixedly associated with each of a plurality of data series in the same manner as the queue, and the data output from each of the queues 112-1 to 112-n , Until a predetermined condition is satisfied. The predetermined condition is, for example, a case where a reception confirmation indicating that the data has been received is received from the data output destination. Similarly to the queue, for example, if the number of data series is N, N re-output queues are required.

制御部111は、入力バッファ114にて受け付けられた複数のデータのそれぞれに付与された系列番号を抽出し、キュー112−1〜112−nのうち、抽出した系列番号のデータ系列に対応するキューに、そのデータを記憶させる。そして、制御部111は、キュー112−1〜112−nのうち、出力対象のデータ系列に対応するキューに記憶されたデータを読み出して出力する。そして、制御部111は、再出力用キュー113−1〜113−nのうち、出力したデータが属するデータ系列に対応する再出力用キューに、上述したような所定の条件が満足されるまで、出力したデータを記憶させる。   The control unit 111 extracts the sequence number assigned to each of the plurality of data received by the input buffer 114, and among the queues 112-1 to 112-n, the queue corresponding to the data sequence of the extracted sequence number To store the data. Then, the control unit 111 reads and outputs the data stored in the queue corresponding to the data series to be output among the queues 112-1 to 112-n. And the control part 111 is until the predetermined conditions as mentioned above are satisfied in the re-output queue corresponding to the data series to which the output data belongs among the re-output queues 113-1 to 113-n. Store the output data.

なお、データの再出力に関する技術が例えば、非特許文献1に開示されている。   A technique related to data re-output is disclosed in Non-Patent Document 1, for example.

http://www.atmarkit.co.jp/fwin2k/network/baswinlan014/baswinlan014_03.htmlhttp://www.atmarkit.co.jp/fwin2k/network/baswinlan014/baswinlan014_03.html

上述したように、図16に示したようなデータ入出力装置においては、データの先入れ先出しをデータ系列毎に実現するとともに、出力したデータの再出力を可能とするために、複数のキュー及び再出力用キューのそれぞれが複数のデータ系列のそれぞれと固定的に対応付けられている。   As described above, in the data input / output device as shown in FIG. 16, first-in first-out of data is realized for each data series, and a plurality of queues and re-outputs are provided to enable re-output of the output data. Each of the use queues is fixedly associated with each of the plurality of data series.

このとき、例えば所定の条件において、ある1つのデータ系列に属するデータが、受け付けられるデータの大部分を占める場合であったとしても、そのデータ系列に属するデータを他のデータ系列に対応付けられたキューに記憶させることはできない。   At this time, for example, even if the data belonging to one data series occupies most of the accepted data under a predetermined condition, the data belonging to the data series is associated with another data series. It cannot be stored in the queue.

また、ある1つのデータ系列に対応付けられたキューに記憶されたデータの出力が完了した後でも、そのキューに他のデータ系列に属するデータを記憶させることはできない。   Further, even after the output of data stored in a queue associated with a certain data series is completed, data belonging to another data series cannot be stored in that queue.

同様に、ある1つのデータ系列に対応付けられた再出力用キューに記憶されたデータを記憶する必要がなくなった場合でも、その再出力用キューに他のデータ系列に属するデータを記憶させることはできない。   Similarly, even when it becomes unnecessary to store the data stored in the re-output queue associated with a certain data series, it is possible to store data belonging to other data series in the re-output queue. Can not.

この場合、データ系列の数が多くなればなるほど、データを記憶するために必要な記憶容量が増大してしまうという問題点がある。   In this case, there is a problem that the storage capacity necessary for storing data increases as the number of data series increases.

本発明は、データを記憶するための記憶容量の増大を抑制しつつ、データの先入れ先出しをデータ系列毎に実現するとともに、出力したデータの再出力が可能なデータ入出力装置、データ記憶方法及びプログラムを提供することを目的とする。   The present invention provides a data input / output device, a data storage method, and a program capable of realizing first-in first-out data for each data series and re-outputting output data while suppressing an increase in storage capacity for storing data The purpose is to provide.

上記目的を達成するために本発明のデータ入出力装置は、複数のデータ系列のいずれかに属する複数のデータの入力を1つずつ受け付け、該受け付けたデータを前記複数のデータ系列毎に先入れ先出し方式で出力し、該出力したデータを再出力可能なデータ入出力装置であって、
前記受け付けた複数のデータを1つずつ記憶する複数の記憶領域と、
前記複数の記憶領域へのデータの入出力を管理する制御部と、を有し、
前記制御部は、
前記データ系列毎に、当該データ系列において次に出力されるデータが受け付けられた順番を示す先頭番号を記憶する先頭番号表と、前記データ系列毎に、当該データ系列に属する再出力可能なデータのうち、最も早く受け付けられたデータが受け付けられた順番を示す再出力可能番号を記憶する再出力可能番号表とを設定し、前記複数の記憶領域のうち、前記データが記憶されていない記憶領域を空き記憶領域として設定し、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されていない場合、前記空き記憶領域として設定された記憶領域の1つに当該データを記憶させ、当該記憶領域を、当該データ系列において最初に受け付けたデータが記憶された先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表および前記再出力可能番号表に記憶される前記先頭番号および前記再出力可能番号をそれぞれ1に設定し、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されている場合、当該データ系列において当該データの1つ前に受け付けたデータが記憶された記憶領域と、前記空き記憶領域として設定された記憶領域の1つとを対応付け、当該記憶領域に当該データを記憶させ、
前記複数のデータ系列のうち、出力の対象となるデータ系列において前記先頭記憶領域として設定された記憶領域からデータを読み出し、当該データ系列の前記先頭番号表から抽出された前記先頭番号を付与して出力し、当該記憶領域と対応付けられた記憶領域を当該データ系列における新たな前記先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表に記憶される前記先頭番号に1を加算し
記出力されたデータを受け付けたことを示す受信確認を受け付けた場合、当該データが記憶された記憶領域を前記空き記憶領域として設定するとともに、当該データ系列の前記再出力可能番号表に記憶される前記再出力可能番号を当該データ系列の前記先頭番号表に記憶される前記先頭番号で更新する
In order to achieve the above object, a data input / output device according to the present invention receives input of a plurality of data belonging to one of a plurality of data series one by one, and the received data is a first-in first-out method for each of the plurality of data series And a data input / output device capable of re-outputting the output data,
A plurality of storage areas for storing the received plurality of data one by one;
A control unit for managing input / output of data to / from the plurality of storage areas,
The controller is
For each data series, a head number table that stores a head number indicating the order in which data to be output next in the data series is received, and for each data series, re-outputtable data belonging to the data series Among them, a re-outputtable number table that stores a re-outputtable number indicating the order in which the earliest received data is received is set, and a storage area in which the data is not stored among the plurality of storage areas Set as free storage space,
When data belonging to the same data series as the received data is not stored in the plurality of storage areas, the data is stored in one of the storage areas set as the free storage area, and the storage area is Set as the first storage area in which data received first in the data series is stored, and the first number and the re-outputtable number stored in the first number table and the re-outputtable number table of the data series, respectively Set to 1 ,
When data belonging to the same data series as the received data is stored in the plurality of storage areas, a storage area in which the data received immediately before the data in the data series is stored, and the free storage area Is associated with one of the storage areas set as, and the data is stored in the storage area,
Among the plurality of data series, data is read from the storage area set as the top storage area in the data series to be output, and the top number extracted from the top number table of the data series is assigned. Output and set the storage area associated with the storage area as the new start storage area in the data series, and add 1 to the start number stored in the start number table of the data series ,
When receiving a reception confirmation indicating receipt of the previous SL output data, and sets the storage area where the data is stored as the free memory space, is stored in the re-output can number table of the data series The re-outputtable number is updated with the head number stored in the head number table of the data series .

また、上記目的を達成するために本発明のデータ記憶方法は、複数の記憶領域を有し、複数のデータ系列のいずれかに属する複数のデータの入力を1つずつ受け付け、該受け付けた複数のデータを前記複数の記憶領域に1つずつ記憶させ、該記憶されたデータを前記複数のデータ系列毎に先入れ先出し方式で出力し、該出力したデータを再出力可能なデータ入出力装置におけるデータ記憶方法であって、
前記データ系列毎に、当該データ系列において次に出力されるデータが受け付けられた順番を示す先頭番号を記憶する先頭番号表と、前記データ系列毎に、当該データ系列に属する再出力可能なデータのうち、最も早く受け付けられたデータが受け付けられた順番を示す再出力可能番号を記憶する再出力可能番号表とを設定し、前記複数の記憶領域のうち、前記データが記憶されていない記憶領域を空き記憶領域として設定する処理と、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されていない場合、前記空き記憶領域として設定された記憶領域の1つに当該データを記憶させ、当該記憶領域を、当該データ系列において最初に受け付けたデータが記憶された先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表および前記再出力可能番号表に記憶される前記先頭番号および前記再出力可能番号をそれぞれ1に設定する処理と、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されている場合、当該データ系列において当該データの1つ前に受け付けたデータが記憶された記憶領域と、前記空き記憶領域として設定された記憶領域の1つとを対応付け、当該記憶領域に当該データを記憶させる処理と、
前記複数のデータ系列のうち、出力の対象となるデータ系列において前記先頭記憶領域として設定された記憶領域からデータを読み出し、当該データ系列の前記先頭番号表から抽出された前記先頭番号を付与して出力する処理と、
当該記憶領域と対応付けられた記憶領域を当該データ系列における新たな前記先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表に記憶される前記先頭番号に1を加算する処理と、
前記出力されたデータを受け付けたことを示す受信確認を受け付けた場合、当該データが記憶された記憶領域を前記空き記憶領域として設定するとともに、当該データ系列の前記再出力可能番号表に記憶される前記再出力可能番号を当該データ系列の前記先頭番号表に記憶される前記先頭番号で更新する処理と、を有する。
In order to achieve the above object, the data storage method of the present invention has a plurality of storage areas, accepts input of a plurality of data belonging to any of a plurality of data series, one by one, Data storage method in a data input / output device capable of storing data one by one in the plurality of storage areas, outputting the stored data in a first-in first-out manner for each of the plurality of data series, and re-outputting the output data Because
For each data series, a head number table that stores a head number indicating the order in which data to be output next in the data series is received, and for each data series, re-outputtable data belonging to the data series Among them, a re-outputtable number table that stores a re-outputtable number indicating the order in which the earliest received data is received is set, and a storage area in which the data is not stored among the plurality of storage areas Processing to set as free storage area;
When data belonging to the same data series as the received data is not stored in the plurality of storage areas, the data is stored in one of the storage areas set as the free storage area, and the storage area is Set as the first storage area in which data received first in the data series is stored, and the first number and the re-outputtable number stored in the first number table and the re-outputtable number table of the data series, respectively Processing to set to 1 ,
When data belonging to the same data series as the received data is stored in the plurality of storage areas, a storage area in which the data received immediately before the data in the data series is stored, and the free storage area A process of associating with one of the storage areas set as and storing the data in the storage area;
Among the plurality of data series, data is read from the storage area set as the top storage area in the data series to be output, and the top number extracted from the top number table of the data series is assigned. Processing to output,
A process of setting a storage area associated with the storage area as a new start storage area in the data series and adding 1 to the start number stored in the start number table of the data series ;
When a reception confirmation indicating that the output data has been received is received, a storage area in which the data is stored is set as the free storage area and is stored in the re-outputtable number table of the data series And a process of updating the re-outputtable number with the head number stored in the head number table of the data series .

また、上記目的を達成するために本発明のプログラムは、複数の記憶領域を有し、複数のデータ系列のいずれかに属する複数のデータの入力を1つずつ受け付け、該受け付けた複数のデータを前記複数の記憶領域に1つずつ記憶させ、該記憶されたデータを前記複数のデータ系列毎に先入れ先出し方式で出力し、該出力したデータを再出力可能なコンピュータに、
前記データ系列毎に、当該データ系列において次に出力されるデータが受け付けられた順番を示す先頭番号を記憶する先頭番号表と、前記データ系列毎に、当該データ系列に属する再出力可能なデータのうち、最も早く受け付けられたデータが受け付けられた順番を示す再出力可能番号を記憶する再出力可能番号表とを設定し、前記複数の記憶領域のうち、前記データが記憶されていない記憶領域を空き記憶領域として設定する機能と、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されていない場合、前記空き記憶領域として設定された記憶領域の1つに当該データを記憶させ、当該記憶領域を、当該データ系列において最初に受け付けたデータが記憶された先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表および前記再出力可能番号表に記憶される前記先頭番号および前記再出力可能番号をそれぞれ1に設定する機能と、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されている場合、当該データ系列において当該データの1つ前に受け付けたデータが記憶された記憶領域と、前記空き記憶領域として設定された記憶領域の1つとを対応付け、当該記憶領域に当該データを記憶させる機能と、
前記複数のデータ系列のうち、出力の対象となるデータ系列において前記先頭記憶領域として設定された記憶領域からデータを読み出し、当該データ系列の前記先頭番号表から抽出された前記先頭番号を付与して出力する機能と、
当該記憶領域と対応付けられた記憶領域を当該データ系列における新たな前記先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表に記憶される前記先頭番号に1を加算する機能と、
前記出力されたデータを受け付けたことを示す受信確認を受け付けた場合、当該データが記憶された記憶領域を前記空き記憶領域として設定するとともに、当該データ系列の前記再出力可能番号表に記憶される前記再出力可能番号を当該データ系列の前記先頭番号表に記憶される前記先頭番号で更新する機能と、を実現させる。
In order to achieve the above object, the program of the present invention has a plurality of storage areas, accepts input of a plurality of data belonging to any of a plurality of data series one by one, and accepts the received plurality of data. Each of the plurality of storage areas is stored one by one, the stored data is output in a first-in first-out manner for each of the plurality of data series, and the output data is re-outputted to a computer,
For each data series, a head number table that stores a head number indicating the order in which data to be output next in the data series is received, and for each data series, re-outputtable data belonging to the data series Among them, a re-outputtable number table that stores a re-outputtable number indicating the order in which the earliest received data is received is set, and a storage area in which the data is not stored among the plurality of storage areas A function to set as a free storage area,
When data belonging to the same data series as the received data is not stored in the plurality of storage areas, the data is stored in one of the storage areas set as the free storage area, and the storage area is Set as the first storage area in which data received first in the data series is stored, and the first number and the re-outputtable number stored in the first number table and the re-outputtable number table of the data series, respectively The function set to 1 ,
When data belonging to the same data series as the received data is stored in the plurality of storage areas, a storage area in which the data received immediately before the data in the data series is stored, and the free storage area A function of associating one of the storage areas set as and storing the data in the storage area;
Among the plurality of data series, data is read from the storage area set as the top storage area in the data series to be output, and the top number extracted from the top number table of the data series is assigned. A function to output,
A function of setting a storage area associated with the storage area as a new start storage area in the data series and adding 1 to the start number stored in the start number table of the data series ;
When a reception confirmation indicating that the output data has been received is received, a storage area in which the data is stored is set as the free storage area and is stored in the re-outputtable number table of the data series And a function of updating the re-outputtable number with the head number stored in the head number table of the data series .

本発明は以上説明したように構成されているので、データの先入れ先出しをデータ系列毎に実現するとともに、出力したデータの再出力を可能とするために、複数のデータ系列のそれぞれと複数のキュー及び再出力用キューのそれぞれとを固定的に対応付ける必要がない。   Since the present invention is configured as described above, in order to realize first-in first-out data for each data series, and to enable re-output of the output data, each of a plurality of data series and a plurality of queues and There is no need to permanently associate each of the re-output queues.

従って、データを記憶するための記憶容量の増大を抑制しつつ、データの先入れ先出しをデータ系列毎に実現するとともに、出力したデータの再出力が可能となる。   Therefore, it is possible to realize first-in first-out data for each data series and re-output the output data while suppressing an increase in storage capacity for storing data.

本発明のデータ入出力装置の実施の一形態の構成を示すブロック図である。It is a block diagram which shows the structure of one Embodiment of the data input / output device of this invention. 図1に示したポインタリストメモリとデータメモリとの間の対応関係の一例を示す図である。It is a figure which shows an example of the correspondence between the pointer list memory and data memory which were shown in FIG. 図1に示したポインタリストメモリと先頭ポインタ表との間の対応関係の一例を示す図である。It is a figure which shows an example of the correspondence between the pointer list memory and head pointer table shown in FIG. 図1に示したポインタリストメモリと末尾ポインタ表との間の対応関係の一例を説明するための図である。It is a figure for demonstrating an example of the correspondence between the pointer list memory shown in FIG. 1, and a tail pointer table | surface. 図1に示したポインタリストメモリとデータメモリとの間の対応関係の他の例を示す図である。It is a figure which shows the other example of the correspondence between the pointer list memory and data memory which were shown in FIG. 図1に示したデータメモリが初期化されたときの状態の一例を示す図であり、(a)はポインタリストメモリを示す図、(b)は再出力可能ポインタ表、再出力可能番号表及び先頭番号表を示す図、(c)は先頭ポインタ表及び末尾ポインタ表を示す図である。FIG. 2 is a diagram showing an example of a state when the data memory shown in FIG. 1 is initialized, (a) shows a pointer list memory, (b) shows a re-outputtable pointer table, a re-outputtable number table, and The figure which shows a head number table, (c) is a figure which shows a head pointer table and a tail pointer table. 図1に示したデータ入出力装置においてデータを記憶する動作を説明するためのフローチャートである。3 is a flowchart for explaining an operation of storing data in the data input / output device shown in FIG. 1. 図6に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリを示す図、(b)は再出力可能ポインタ表、再出力可能番号表及び先頭番号表を示す図、(c)は先頭ポインタ表及び末尾ポインタ表を示す図である。FIG. 7 is a diagram illustrating an example of a state after the state illustrated in FIG. 6, where (a) illustrates a pointer list memory, and (b) illustrates a re-outputtable pointer table, a re-outputable number table, and a head number table. FIG. 4C is a diagram showing a head pointer table and a tail pointer table. 図8に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリを示す図、(b)は再出力可能ポインタ表、再出力可能番号表及び先頭番号表を示す図、(c)は先頭ポインタ表及び末尾ポインタ表を示す図である。FIG. 9 is a diagram illustrating an example of a state after the state illustrated in FIG. 8, where (a) illustrates a pointer list memory, and (b) illustrates a re-outputtable pointer table, a re-outputable number table, and a head number table. FIG. 4C is a diagram showing a head pointer table and a tail pointer table. 図9に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリを示す図、(b)は再出力可能ポインタ表、再出力可能番号表及び先頭番号表を示す図、(c)は先頭ポインタ表及び末尾ポインタ表を示す図である。FIG. 10 is a diagram illustrating an example of a state after the state illustrated in FIG. 9, where (a) illustrates a pointer list memory, and (b) illustrates a re-outputable pointer table, a re-outputable number table, and a head number table. FIG. 4C is a diagram showing a head pointer table and a tail pointer table. 図1に示したデータ入出力装置において記憶されたデータを出力する動作を説明するためのフローチャートである。2 is a flowchart for explaining an operation of outputting stored data in the data input / output device shown in FIG. 1. 図10に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリを示す図、(b)は再出力可能ポインタ表、再出力可能番号表及び先頭番号表を示す図、(c)は先頭ポインタ表及び末尾ポインタ表を示す図である。FIG. 11 is a diagram illustrating an example of a state after the state illustrated in FIG. 10, where (a) illustrates a pointer list memory, and (b) illustrates a re-outputable pointer table, a re-outputable number table, and a head number table. FIG. 4C is a diagram showing a head pointer table and a tail pointer table. 図1に示したデータ入出力装置の動作を説明するためのフローチャートであり、(a)は受信確認を受け付けた場合の動作を示すフローチャート、(b)は受信確認を受け付けない場合の動作を示すフローチャートである。2 is a flowchart for explaining the operation of the data input / output device shown in FIG. 1, (a) is a flowchart showing an operation when reception confirmation is accepted, and (b) is an operation when reception confirmation is not accepted. It is a flowchart. 図12に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリを示す図、(b)は再出力可能ポインタ表、再出力可能番号表及び先頭番号表を示す図、(c)は先頭ポインタ表及び末尾ポインタ表を示す図である。FIG. 13 is a diagram illustrating an example of a state after the state illustrated in FIG. 12, where (a) illustrates a pointer list memory, and (b) illustrates a re-outputtable pointer table, a re-outputable number table, and a head number table. FIG. 4C is a diagram showing a head pointer table and a tail pointer table. 図12に示した状態の後の状態の他の例を示す図であり、(a)はポインタリストメモリを示す図、(b)は再出力可能ポインタ表、再出力可能番号表及び先頭番号表を示す図、(c)は先頭ポインタ表及び末尾ポインタ表を示す図である。FIG. 13 is a diagram showing another example of the state after the state shown in FIG. 12, (a) shows a pointer list memory, and (b) shows a re-outputable pointer table, a re-outputable number table, and a head number table. (C) is a figure which shows a head pointer table and a tail pointer table. データの先入れ先出しを複数のデータ系列毎に実現するとともに、出力したデータの再出力が可能なデータ入出力装置の構成を説明するための図である。It is a figure for demonstrating the structure of the data input / output device which implement | achieves data first-in first-out for every several data series, and can re-output the output data.

以下に、本発明の実施の形態について図面を参照して説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図1は、本発明のデータ入出力装置の実施の一形態の構成を示すブロック図である。   FIG. 1 is a block diagram showing a configuration of an embodiment of a data input / output device of the present invention.

本実施形態のデータ入出力装置10は図1に示すように、制御部11と、データメモリ12と、入力バッファ13と、ポインタリストメモリ14と、先頭ポインタ表51と、末尾ポインタ表52と、先頭番号表53と、再出力可能ポインタ表54と、再出力可能番号表55とを備えている。   As shown in FIG. 1, the data input / output device 10 of this embodiment includes a control unit 11, a data memory 12, an input buffer 13, a pointer list memory 14, a head pointer table 51, a tail pointer table 52, A head number table 53, a re-outputtable pointer table 54, and a re-outputtable number table 55 are provided.

入力バッファ13は、複数のデータの入力を1つずつ受け付ける。なお、入力バッファ13にて受け付けられる複数のデータのそれぞれは、複数のデータ系列のいずれかに属している。複数のデータのそれぞれには、データ系列を識別するための系列番号が付与されている。ここでは、系列番号は1以上の整数とする。   The input buffer 13 receives a plurality of data inputs one by one. Each of the plurality of data received by the input buffer 13 belongs to one of a plurality of data series. A series number for identifying a data series is assigned to each of the plurality of data. Here, the sequence number is an integer of 1 or more.

データメモリ12は、所定の長さの連続する複数の記憶領域から構成される。   The data memory 12 is composed of a plurality of continuous storage areas having a predetermined length.

制御部11は、ポインタリストメモリ14と、先頭ポインタ表51及び末尾ポインタ表52とを用い、データメモリ12の複数の記憶領域のうちデータが記憶されていない記憶領域である空き記憶領域に、入力バッファ13にて受け付けられた複数のデータのそれぞれを記憶させる(書き込む)。また、制御部11は、ポインタリストメモリ14と、先頭ポインタ表51及び末尾ポインタ表52とを用い、データメモリ12の複数の記憶領域のそれぞれに記憶されたデータのうち、出力対象のデータ系列のデータを読み出して出力する。また、制御部11は、出力したデータを受け付けたことを示す受信確認を、そのデータの出力先から受け付けた場合、受け付けた受信確認が示す内容に応じて再出力可能ポインタ表54等の設定内容を更新する。一方、制御部11は、受信確認を受け付けない場合には、そのデータを再出力するための動作を行う。制御部11が、データメモリ12の複数の記憶領域にデータを記憶させる動作、及び、記憶されたデータを読み出して出力する動作の詳細については、後述する動作フローにおいて説明する。また、制御部11が、受信確認を受け付けた場合、及び、受け付けない場合の動作の詳細についても、後述する動作フローにおいて説明する。   The control unit 11 uses the pointer list memory 14, the head pointer table 51 and the tail pointer table 52, and inputs them to a free storage area that is a storage area in which no data is stored among the plurality of storage areas of the data memory 12. Each of the plurality of data received by the buffer 13 is stored (written). Further, the control unit 11 uses the pointer list memory 14, the head pointer table 51 and the tail pointer table 52, and among the data stored in each of the plurality of storage areas of the data memory 12, Read and output data. In addition, when the control unit 11 receives a reception confirmation indicating that the output data has been received from the output destination of the data, the setting contents of the re-outputable pointer table 54 and the like according to the content indicated by the received reception confirmation Update. On the other hand, when the reception confirmation is not accepted, the control unit 11 performs an operation for re-outputting the data. Details of the operation in which the control unit 11 stores data in a plurality of storage areas of the data memory 12 and the operation of reading and outputting the stored data will be described in an operation flow described later. Details of the operation when the control unit 11 accepts reception confirmation and when it does not accept will also be described in the operation flow described later.

ここで、図1に示したポインタリストメモリ14とデータメモリ12との間の対応関係について説明する。   Here, the correspondence between the pointer list memory 14 and the data memory 12 shown in FIG. 1 will be described.

図2は、図1に示したポインタリストメモリ14とデータメモリ12との間の対応関係の一例を示す図である。   FIG. 2 is a diagram illustrating an example of a correspondence relationship between the pointer list memory 14 and the data memory 12 illustrated in FIG.

データメモリ12とポインタリストメモリ14との間の対応関係は系列番号毎に存在する。図2は、ある1つの系列番号における対応関係を示している。また、ポインタリストメモリ14においては、系列番号を識別するための見出し付けがされている。図2においては、図中の黒丸が系列番号を識別するための見出しを表している。   The correspondence between the data memory 12 and the pointer list memory 14 exists for each sequence number. FIG. 2 shows the correspondence in one certain sequence number. In the pointer list memory 14, a heading for identifying the sequence number is provided. In FIG. 2, black circles in the figure represent headings for identifying the sequence numbers.

データメモリ12とポインタリストメモリ14とは、ポインタリストメモリ14のアドレスaから、1つのxに対して値が1つに定まる関数f(x)を用いることにより、データメモリ12の複数の記憶領域のいずれかを特定するポインタf(a)を得るという対応関係にある。   The data memory 12 and the pointer list memory 14 are a plurality of storage areas of the data memory 12 by using a function f (x) in which one value is determined for one x from the address a of the pointer list memory 14. There is a correspondence relationship that a pointer f (a) specifying any of the above is obtained.

つまり、ポインタリストメモリ14のアドレスのそれぞれとデータメモリ12の複数の記憶領域のそれぞれとが1対1で対応付けられていることとなる。なお、ポインタf(a)は例えば、データメモリ12の複数の記憶領域のいずれかの先頭アドレスである。また、関数f(x)の一例としては、xを256倍する(8ビットシフトする)関数がある。   That is, each address of the pointer list memory 14 and each of the plurality of storage areas of the data memory 12 are associated with each other on a one-to-one basis. Note that the pointer f (a) is, for example, the start address of one of the plurality of storage areas of the data memory 12. Further, as an example of the function f (x), there is a function of multiplying x by 256 (shifting by 8 bits).

図2では例えば、ポインタリストメモリ14のアドレス「0100」が、データメモリ12の複数の記憶領域のうち、先頭アドレスが「010000」の記憶領域と対応付けられている。   In FIG. 2, for example, the address “0100” of the pointer list memory 14 is associated with the storage area having the head address “010000” among the plurality of storage areas of the data memory 12.

また、図2に示すように、ポインタリストメモリ14のそれぞれのアドレスには値が記憶されている。ポインタリストメモリ14のアドレスaに記憶された値をbとした場合、f(a)が特定する記憶領域に記憶されたデータは、f(b)が特定する記憶領域に記憶されたデータと同じデータ系列に属し、f(b)が特定する記憶領域に記憶されたデータの1つ前に受け付けられたデータである。つまり、ポインタリストメモリ14により、受け付けられたデータと、そのデータが属するデータ系列に属し、そのデータの1つ前に受け付けられたデータとが対応付けられることとなる。   In addition, as shown in FIG. 2, a value is stored in each address of the pointer list memory 14. When the value stored in the address a of the pointer list memory 14 is b, the data stored in the storage area specified by f (a) is the same as the data stored in the storage area specified by f (b). This is data received before the data belonging to the data series and stored in the storage area specified by f (b). That is, the received data and the data that belongs to the data series to which the data belongs and are received immediately before the data are associated by the pointer list memory 14.

図2においては、ポインタリストメモリ14のアドレス「0100」に記憶されたデータは「0120」である。ここで、「0100」及び「0120」から関数f(x)を用いて得られる値が「010000」及び「012000」である場合、データメモリ12の「010000」を先頭アドレスとする記憶領域に記憶されたデータは、データメモリ12の「012000」を先頭アドレスとする記憶領域に記憶されたデータと同じデータ系列に属し、そのデータの1つ前に受け付けられたデータである。   In FIG. 2, the data stored at the address “0100” of the pointer list memory 14 is “0120”. Here, when the values obtained by using the function f (x) from “0100” and “0120” are “010000” and “012000”, they are stored in the storage area of the data memory 12 with “010000” as the head address. The received data belongs to the same data series as the data stored in the storage area having “012000” as the start address of the data memory 12 and is data received immediately before the data.

このように、ポインタリストメモリ14では、データメモリ12においてデータが記憶された記憶領域を特定するポインタが、複数のデータ系列毎に連鎖(片方向リスト)を構成している。   As described above, in the pointer list memory 14, pointers that specify the storage areas in which data is stored in the data memory 12 form a chain (one-way list) for each of a plurality of data series.

なお、複数のデータ系列のそれぞれにおいて最後に受け付けられたデータが記憶された記憶領域に対応するアドレスに記憶される値は、そのデータ系列におけるデータの終了を表す特殊な値であり、ここではその値を“END”とする。   The value stored at the address corresponding to the storage area in which the data received last in each of the plurality of data series is a special value indicating the end of data in the data series. The value is “END”.

上記の説明においては、関数f(x)を用いることにより、ポインタリストメモリ14のアドレスと、データメモリ12の複数の記憶領域のそれぞれとを1対1に対応付けた。しかし、ポインタリストメモリ14のアドレスと、データメモリ12の複数の記憶領域のそれぞれとを1対1に対応付けられれば、必ずしも関数f(x)を用いる必要はない。   In the above description, the function f (x) is used to associate the address of the pointer list memory 14 with each of the plurality of storage areas of the data memory 12 on a one-to-one basis. However, if the address of the pointer list memory 14 and each of the plurality of storage areas of the data memory 12 are associated one-to-one, the function f (x) is not necessarily used.

次に、ポインタリストメモリ14と先頭ポインタ表51及び末尾ポインタ表52との間の対応関係について説明する。   Next, the correspondence between the pointer list memory 14 and the head pointer table 51 and the tail pointer table 52 will be described.

まず、ポインタリストメモリ14と先頭ポインタ表51との間の対応関係について説明する。   First, the correspondence between the pointer list memory 14 and the head pointer table 51 will be described.

図3は、図1に示したポインタリストメモリ14と先頭ポインタ表51との間の対応関係の一例を示す図である。   FIG. 3 is a diagram showing an example of a correspondence relationship between the pointer list memory 14 and the leading pointer table 51 shown in FIG.

先頭ポインタ表51では、系列番号を識別するための見出し付けがされている。図3においては、図中の黒丸及び黒三角が見出しを表している。   The head pointer table 51 has a heading for identifying the sequence number. In FIG. 3, black circles and black triangles in the figure represent headings.

先頭ポインタ表51には、見出しによって識別された系列番号のデータ系列のポインタリストメモリ14のアドレスを示す値が記憶される。図3の図中の黒丸及び黒三角の右側の値が、当該系列番号のデータ系列におけるポインタリストメモリ14のアドレスを示している。以降、この値のことを先頭ポインタの値という。先頭ポインタの値は、当該系列番号のデータ系列において最初に受け付けられたデータが記憶されたデータメモリ12の記憶領域である先頭記憶領域に対応するアドレスを示す。   The head pointer table 51 stores a value indicating the address of the pointer list memory 14 of the data series of the series number identified by the heading. The values on the right side of the black circles and black triangles in FIG. 3 indicate the addresses of the pointer list memory 14 in the data series of the relevant series number. Hereinafter, this value is referred to as the value of the head pointer. The value of the head pointer indicates an address corresponding to the head storage area that is the storage area of the data memory 12 in which the first received data is stored in the data sequence of the sequence number.

なお、データメモリ12の複数の記憶領域にデータが1つも記憶されていないデータ系列については、先頭ポインタの値は、特別な値“empty”をとるものとする。   For the data series in which no data is stored in the plurality of storage areas of the data memory 12, the value of the head pointer assumes a special value “empty”.

次に、ポインタリストメモリ14と末尾ポインタ表52メモリとの間の対応関係について説明する。   Next, the correspondence between the pointer list memory 14 and the tail pointer table 52 memory will be described.

図4は、図1に示したポインタリストメモリ14と末尾ポインタ表52との間の対応関係の一例を説明するための図である。   FIG. 4 is a diagram for explaining an example of the correspondence between the pointer list memory 14 and the end pointer table 52 shown in FIG.

末尾ポインタ表52では、先頭ポインタ表51と同様に、系列番号を識別するための見出し付けがされている。図4においては、図中の黒丸及び黒三角が見出しを表している。   In the tail pointer table 52, as in the head pointer table 51, a heading for identifying the sequence number is provided. In FIG. 4, black circles and black triangles in the figure represent headings.

末尾ポインタ表52には、先頭ポインタ表51と同様に、見出しによって識別された系列番号のデータ系列のポインタリストメモリ14のアドレスを示す値が記憶される。図4の図中の黒丸及び黒三角の右側の値が、当該系列番号のデータ系列におけるポインタリストメモリ14のアドレスを示している。以降、この値のことを末尾ポインタの値という。末尾ポインタの値は、当該系列番号のデータ系列において最後に受け付けられたデータが記憶されたデータメモリ12の記憶領域に対応するアドレスを示す。   Similar to the head pointer table 51, the tail pointer table 52 stores a value indicating the address of the pointer list memory 14 of the data series of the series number identified by the heading. The values on the right side of the black circle and black triangle in the diagram of FIG. 4 indicate the address of the pointer list memory 14 in the data series of the series number. Hereinafter, this value is referred to as a tail pointer value. The value of the tail pointer indicates an address corresponding to the storage area of the data memory 12 in which the data received last in the data series having the series number is stored.

なお、データメモリ12の複数の記憶領域にデータが1つも記憶されていないデータ系列については、末尾ポインタの値は、先頭ポインタの値と同様に、特別な値“empty”をとるものとする。   For a data series in which no data is stored in a plurality of storage areas of the data memory 12, the value of the tail pointer is assumed to be a special value “empty”, similar to the value of the head pointer.

ここで、上述したように、データメモリ12の複数の記憶領域のうちデータが記憶された記憶領域は、ポインタリストメモリ14のアドレスと対応付けられる。そのため、制御部11は、データメモリに記憶されたデータをデータ系列毎に認識することができる。しかし、データメモリ12の複数の記憶領域のうち、空き記憶領域を特定できなければ、制御部11は、入力バッファ13にて受け付けられたデータをデータメモリ12のどの記憶領域に記憶させればよいかがわからない。   Here, as described above, the storage area in which data is stored among the plurality of storage areas of the data memory 12 is associated with the address of the pointer list memory 14. Therefore, the control unit 11 can recognize the data stored in the data memory for each data series. However, if a free storage area cannot be specified among the plurality of storage areas of the data memory 12, the control unit 11 may store the data received by the input buffer 13 in any storage area of the data memory 12. I don't know how.

図5は、図1に示したポインタリストメモリ14とデータメモリ12との間の対応関係の他の例を示す図である。   FIG. 5 is a diagram showing another example of the correspondence relationship between the pointer list memory 14 and the data memory 12 shown in FIG.

図5に示すポインタリストメモリ14では、図2に示したデータ系列毎のポインタリストメモリ14と同様に、ポインタリストメモリ14のアドレスと記憶領域とが対応付けられている。但し、図5では、ポインタメモリのアドレスと、データメモリ12の複数の記憶領域のうちの空き記憶領域とが対応付けられている。そして、空き記憶領域を特定するポインタが連鎖(片方向リスト)を構成している。   In the pointer list memory 14 shown in FIG. 5, the address and storage area of the pointer list memory 14 are associated with each other as in the pointer list memory 14 for each data series shown in FIG. However, in FIG. 5, the address of the pointer memory is associated with the free storage area among the plurality of storage areas of the data memory 12. The pointers that specify the free storage area form a chain (one-way list).

以降、空き記憶領域には系列番号0のデータが記憶されているとみなし、系列番号0のデータ系列のことを空き系列という。   Hereinafter, it is assumed that data with sequence number 0 is stored in the free storage area, and the data sequence with sequence number 0 is referred to as a free sequence.

なお、ポインタリストメモリ14のアドレスが、空き系列(系列番号0)に属するデータが記憶された記憶領域に対応付けられることと、いずれかのデータ系列(系列番号1〜)に属するデータが記憶された記憶領域に対応付けられることとは排他的事象である。従って、空き系列のためにポインタリストメモリを別途用意する必要はない。   Note that the address of the pointer list memory 14 is associated with a storage area in which data belonging to an empty sequence (sequence number 0) is stored, and data belonging to any data sequence (sequence number 1 to) is stored. Corresponding to the storage area is an exclusive event. Therefore, it is not necessary to prepare a pointer list memory separately for the empty series.

また、図3及び図4に示した先頭ポインタ表51及び末尾ポインタ表52に空き系列の先頭ポインタ及び末尾ポインタの値を記憶させることができる。   Also, the values of the head pointer and tail pointer of the empty series can be stored in the head pointer table 51 and tail pointer table 52 shown in FIGS.

次に、図1に示した再出力可能ポインタ表54、先頭番号表53及び再出力可能番号表55について説明する。   Next, the re-outputtable pointer table 54, the head number table 53, and the re-outputtable number table 55 shown in FIG. 1 will be described.

再出力可能ポインタ表54の構成は、図3に示した先頭ポインタ表及び図4に示した末尾ポインタ表と同様の構成である。そのため、ここでは図示を省略するが、再出力可能ポインタ表54には、見出しによって識別された系列番号のデータ系列のポインタリストメモリ14のアドレスを示す値が記憶される。以降、この値のことを再出力可能ポインタの値という。再出力可能ポインタの値は、当該系列番号のデータ系列に属する再出力可能なデータのうち、入力バッファ13にて最も早く受け付けられたデータが記憶されたデータメモリ12の記憶領域に対応するポインタリストメモリ14のアドレスを示す。   The re-outputable pointer table 54 has the same configuration as the head pointer table shown in FIG. 3 and the tail pointer table shown in FIG. Therefore, although not shown here, the re-outputtable pointer table 54 stores a value indicating the address of the pointer list memory 14 of the data series of the series number identified by the heading. Hereinafter, this value is referred to as a re-outputtable pointer value. The value of the re-outputtable pointer is a pointer list corresponding to the storage area of the data memory 12 in which the data received earliest in the input buffer 13 among the re-outputtable data belonging to the data sequence of the sequence number is stored. The address of the memory 14 is shown.

先頭番号表53には、系列番号毎に値が記憶される。この値は、当該系列番号のデータ系列において次に出力されるデータが入力バッファ13にて受け付けられた順番を示している。従って、先頭番号は1以上の整数となる。   The head number table 53 stores a value for each sequence number. This value indicates the order in which the data output next in the data sequence of the sequence number is received by the input buffer 13. Therefore, the head number is an integer of 1 or more.

再出力可能番号表55には、系列番号毎に値が記憶される。この値は、当該系列番号のデータ系列に属する再出力可能なデータのうち、入力バッファ13にて最も早く受け付けられたデータが受け付けられた順番を示している。従って、再出力可能番号は1以上の整数となる。   In the re-outputtable number table 55, a value is stored for each sequence number. This value indicates the order in which the data received earliest in the input buffer 13 among the re-outputtable data belonging to the data sequence of the sequence number is received. Therefore, the re-output possible number is an integer of 1 or more.

以下に、上記のように構成されたデータ入出力装置10の動作について説明する。   Hereinafter, the operation of the data input / output device 10 configured as described above will be described.

まず、データ入出力装置10においてデータを記憶する動作について説明するが、その前にデータメモリ12が初期化されたときの状態について説明する。   First, the operation of storing data in the data input / output device 10 will be described. Before that, the state when the data memory 12 is initialized will be described.

図6は、図1に示したデータメモリ12が初期化されたときの状態の一例を示す図であり、(a)はポインタリストメモリ14を示す図、(b)は再出力可能ポインタ表54、再出力可能番号表55及び先頭番号表53を示す図、(c)は先頭ポインタ表51及び末尾ポインタ表52を示す図である。なお、ここでは、データ系列の数が8つあり、それぞれのデータ系列の系列番号を0〜7とする。系列番号0のデータ系列は、上述したように空き系列である。   6 is a diagram showing an example of a state when the data memory 12 shown in FIG. 1 is initialized. (A) is a diagram showing the pointer list memory 14, and (b) is a re-outputtable pointer table 54. FIG. 5C is a diagram showing a re-outputtable number table 55 and a head number table 53, and FIG. 5C is a diagram showing a head pointer table 51 and a tail pointer table 52. Here, the number of data series is eight, and the series number of each data series is 0-7. The data series with sequence number 0 is an empty series as described above.

データメモリ12が初期化された直後には、データメモリ12の複数の記憶領域には1つもデータが記憶されていない。つまり、複数の記憶領域の全てに、系列番号0のデータが記憶されているとみなされる。   Immediately after the data memory 12 is initialized, no data is stored in the plurality of storage areas of the data memory 12. That is, it is considered that data of sequence number 0 is stored in all of the plurality of storage areas.

従って、制御部11は、ポインタリストメモリ14の全てのアドレスを単一のリストとなるように連鎖させる。これは、例えば図6(a)に示すように、ポインタリストメモリ14の全てのアドレスに記憶される値を、次のアドレスを示す値とすることによって実現できる。これを、擬似コードで表すと以下のようになる。
# for(i=0; i++; i<(n-1)) L(i)=i+1;
# L(n-1)=END
上記の擬似コードにおいて、iはポインタリストメモリ14のアドレスを示し、L(i)はポインタリストメモリ14のアドレスiに記憶された値を示す。これらは、以降の説明においても同様である。
Therefore, the control unit 11 chains all the addresses in the pointer list memory 14 so as to form a single list. For example, as shown in FIG. 6A, this can be realized by setting values stored in all addresses of the pointer list memory 14 to values indicating the next address. This can be expressed in pseudo code as follows.
# for (i = 0; i ++; i <(n-1)) L (i) = i + 1;
# L (n-1) = END
In the above pseudo code, i indicates the address of the pointer list memory 14, and L (i) indicates the value stored at the address i of the pointer list memory 14. The same applies to the following description.

また、制御部11は、空き系列(系列番号0)の先頭ポインタの値としてポインタリストメモリ14の最初のアドレスを先頭ポインタ表51に設定する。ここでは、図6(c)に示すように、空き系列の先頭ポインタの値として“0”が先頭ポインタ表51に設定される。さらに、制御部11は、空き系列の末尾ポインタの値としてポインタリストメモリ14の最後のアドレスを末尾ポインタ表52に設定する。ここでは、図6(c)に示すように、空き系列の末尾ポインタの値として“7”が末尾ポインタ表52に設定される。これらを擬似コードで示すと以下のようになる。なお、以下に示す擬似コードにおいて、P_head(j)は系列番号jの先頭ポインタの値であり、P_tail(j)は系列番号jの末尾ポインタの値である。これらは、以降の説明においても同様である。
# P_head(0)=0;
# P_tail(0)=n-1;
また、制御部11は、空き系列以外のデータ系列(系列番号1〜7)の先頭ポインタ及び末尾ポインタの値として“empty”を先頭ポインタ表51及び末尾ポインタ表52に設定する。これを擬似コードで示すと以下のようになる。
# for(j=1; j++; j<n) P_head(j)=empty;
# for(j=1; j++; i<n) P_tail(j)=empty;
さらに、制御部11は、再出力可能ポインタ表54、再出力可能番号表55及び先頭番号表53において、全てのデータ系列(系列番号0〜7)の値を“null”という特殊な値に設定する。
Further, the control unit 11 sets the first address of the pointer list memory 14 in the head pointer table 51 as the value of the head pointer of the empty series (sequence number 0). Here, as shown in FIG. 6C, “0” is set in the head pointer table 51 as the value of the head pointer of the empty series. Further, the control unit 11 sets the last address of the pointer list memory 14 in the tail pointer table 52 as the value of the tail pointer of the empty series. Here, as shown in FIG. 6C, “7” is set in the tail pointer table 52 as the value of the tail pointer of the empty series. These are shown in pseudo code as follows. In the pseudo code shown below, P_head (j) is the value of the start pointer of sequence number j, and P_tail (j) is the value of the end pointer of sequence number j. The same applies to the following description.
# P_head (0) = 0;
# P_tail (0) = n-1;
Further, the control unit 11 sets “empty” in the head pointer table 51 and the tail pointer table 52 as the values of the head pointer and tail pointer of the data series (sequence numbers 1 to 7) other than the empty series. This is shown in pseudo code as follows.
# for (j = 1; j ++; j <n) P_head (j) = empty;
# for (j = 1; j ++; i <n) P_tail (j) = empty;
Further, the control unit 11 sets the values of all data series (sequence numbers 0 to 7) to special values “null” in the re-outputtable pointer table 54, the re-outputtable number table 55, and the head number table 53. To do.

次に、データ入出力装置10においてデータを記憶する動作について説明する。ここでは、複数のデータが同時に入力されることはないものとする。また、データの長さは一定である必要はないが、ここでは、説明を簡単にするため、データの長さを一定とし、データメモリの複数の記憶領域のそれぞれは、データの長さと同じ長さであるものとする。   Next, an operation for storing data in the data input / output device 10 will be described. Here, it is assumed that a plurality of data are not input simultaneously. The length of the data need not be constant, but for the sake of simplicity, the length of the data is constant, and each of the storage areas of the data memory has the same length as the data. It is assumed that

図7は、図1に示したデータ入出力装置10においてデータを記憶する動作を説明するためのフローチャートである。ここでは、図6に示した状態の後、系列番号1のデータ系列に属する最初のデータを受け付けた場合について説明する。   FIG. 7 is a flowchart for explaining an operation of storing data in data input / output device 10 shown in FIG. Here, a case will be described in which the first data belonging to the data sequence of sequence number 1 is received after the state shown in FIG.

まず、入力バッファ13がデータの入力を受け付ける(ステップS1)。   First, the input buffer 13 receives data input (step S1).

制御部11は、ステップS1にて受け付けたデータに付与された系列番号jを抽出する(ステップS2)。ここでは、“1”が抽出される。   The control unit 11 extracts the sequence number j given to the data received in step S1 (step S2). Here, “1” is extracted.

次に、制御部11は、抽出した系列番号jの末尾ポインタの値(P_tail(j))を末尾ポインタ表52から取得する(ステップS3)。ここでは、“empty”が抽出されるため、系列番号1のデータがデータメモリ12に記憶されていないことがわかる。   Next, the control unit 11 obtains the value of the tail pointer (P_tail (j)) of the extracted sequence number j from the tail pointer table 52 (step S3). Here, since “empty” is extracted, it can be seen that data of sequence number 1 is not stored in the data memory 12.

次に、制御部11は、抽出した系列番号jの先頭ポインタの値を、空き系列の先頭ポインタの値に更新する(ステップS4)。ここでは、系列番号1の先頭ポインタの値が、“empty”から“0”に更新される。つまり、空き系列の先頭ポインタが示すポインタリストメモリ14のアドレスに対応する記憶領域が、系列番号1のデータ系列における先頭記憶領域として設定されたこととなる。   Next, the control unit 11 updates the value of the head pointer of the extracted sequence number j to the value of the head pointer of the empty sequence (step S4). Here, the value of the head pointer of sequence number 1 is updated from “empty” to “0”. That is, the storage area corresponding to the address of the pointer list memory 14 indicated by the free sequence head pointer is set as the head storage area in the data series of sequence number 1.

次に、制御部11は、抽出した系列番号jの末尾ポインタの値を、空き系列の先頭ポインタの値に更新する(ステップS5)。ここでは、系列番号1の末尾ポインタの値が、“empty”から“0”に更新される。   Next, the control unit 11 updates the value of the end pointer of the extracted sequence number j to the value of the start pointer of the empty sequence (step S5). Here, the value of the tail pointer of sequence number 1 is updated from “empty” to “0”.

次に、制御部11は、空き系列の先頭ポインタの値が示すポインタリストメモリ14のアドレスに記憶された値を抽出する(ステップS6)。ここでは、“1”が抽出される。   Next, the control unit 11 extracts the value stored at the address of the pointer list memory 14 indicated by the value of the head pointer of the empty series (step S6). Here, “1” is extracted.

次に、制御部11は、空き系列の先頭ポインタの値が示すポインタリストメモリ14のアドレスに記憶された値を“END”に更新する(ステップS7)。   Next, the control unit 11 updates the value stored at the address of the pointer list memory 14 indicated by the value of the free sequence head pointer to “END” (step S7).

次に、制御部11は、空き系列の先頭ポインタの値をステップS6にて抽出した値に更新する(ステップS8)。ここでは、空き系列の先頭ポインタの値が、“0”から“1”に変更される。   Next, the control unit 11 updates the value of the free sequence head pointer to the value extracted in step S6 (step S8). Here, the value of the leading pointer of the empty sequence is changed from “0” to “1”.

次に、制御部11は、抽出した系列番号jの再出力可能ポインタの値を、当該系列番号jの先頭ポインタの値で更新する(ステップS9)。ここでは、系列番号1の再出力可能ポインタの値が、“null”から“0”に更新される。   Next, the control unit 11 updates the value of the re-outputtable pointer of the extracted sequence number j with the value of the head pointer of the sequence number j (step S9). Here, the value of the sequence number 1 re-outputtable pointer is updated from “null” to “0”.

そして、制御部11は、抽出した系列番号jの再出力可能番号及び先頭番号を更新する(ステップS10)。ここでは、系列番号1の再出力可能番号及び先頭番号が“null”から“1”に更新される。これは、ステップS1にて受け付けたデータが、系列番号1のデータ系列において最初に受け付けられたデータであるからである。   And the control part 11 updates the re-outputtable number and head number of the extracted sequence number j (step S10). Here, the re-outputtable number of sequence number 1 and the leading number are updated from “null” to “1”. This is because the data received in step S1 is the first data received in the data sequence of sequence number 1.

なお、上述したステップS4、ステップS9及びステップS10の動作を擬似コードで表すと以下のようになる。なお、以下に示す擬似コードにおいて、P_ret(j)は系列番号jの再出力可能ポインタの値である。また、S_head(j)は系列番号jの先頭番号であり、S_ret(j)は系列番号jの再出力可能番号である。これらは、以降の説明においても同様である。
j=1
P_head(j)=0 /* P_head(0) */
P_ret(j)=0 /* P_head(0) */
S_head(j)=1
S_ret(j)=1
そして、制御部11は、データメモリ12の複数の記憶領域のうち、抽出した系列番号jの末尾ポインタの値が示すアドレスに対応するデータメモリ12の記憶領域に、ステップS1にて受け付けたデータを記憶させる(ステップS11)。ここでは、ポインタリストメモリ14のアドレス0に対応するデータメモリ12の記憶領域に、系列番号1のデータが記憶される。
The operations in steps S4, S9, and S10 described above are represented by pseudo code as follows. In the pseudo code shown below, P_ret (j) is the value of the re-outputtable pointer of sequence number j. S_head (j) is the leading number of sequence number j, and S_ret (j) is the re-outputtable number of sequence number j. The same applies to the following description.
j = 1
P_head (j) = 0 / * P_head (0) * /
P_ret (j) = 0 / * P_head (0) * /
S_head (j) = 1
S_ret (j) = 1
Then, the control unit 11 stores the data received in step S1 in the storage area of the data memory 12 corresponding to the address indicated by the value of the tail pointer of the extracted sequence number j among the plurality of storage areas of the data memory 12. Store (step S11). Here, data of sequence number 1 is stored in the storage area of the data memory 12 corresponding to address 0 of the pointer list memory 14.

図8は、図6に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリ14を示す図、(b)は再出力可能ポインタ表54、再出力可能番号表55及び先頭番号表53を示す図、(c)は先頭ポインタ表51及び末尾ポインタ表52を示す図である。なお、図8は、図6に示した状態の後、図7を参照しながら説明した動作が行われた後の状態を示している。   FIG. 8 is a diagram illustrating an example of a state after the state illustrated in FIG. 6, where (a) illustrates the pointer list memory 14, and (b) illustrates the re-outputable pointer table 54 and the re-outputable number table. 55 is a diagram showing the head number table 53 and (c) is a diagram showing the head pointer table 51 and the tail pointer table 52. FIG. 8 shows a state after the state shown in FIG. 6 and after the operation described with reference to FIG. 7 is performed.

図8(c)に示すように、系列番号1の先頭ポインタ及び末尾ポインタの値は共に“0”となっている。さらに、先頭ポインタ表51においては、空き系列の先頭ポインタの値が“1”となっており、ポインタリストメモリ14のアドレス1を示している。また、ポインタリストメモリ14では図8(a)に示すように、アドレス0に記憶されている値が“END”となっている。また、図8(b)に示すように、系列番号1の再出力可能ポインタの値は、系列番号1の先頭ポインタの値と同じ“0”であり、系列番号1の再出力可能番号及び先頭番号はともに“1”となっている。   As shown in FIG. 8C, the values of the head pointer and tail pointer of the sequence number 1 are both “0”. Further, in the head pointer table 51, the value of the head pointer of the empty series is “1”, indicating the address 1 of the pointer list memory 14. In the pointer list memory 14, as shown in FIG. 8A, the value stored at address 0 is "END". Further, as shown in FIG. 8B, the value of the sequence number 1 re-outputtable pointer is “0”, which is the same as the value of the sequence number 1 head pointer. The numbers are both “1”.

図9は、図8に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリ14を示す図、(b)は再出力可能ポインタ表54、再出力可能番号表55及び先頭番号表53を示す図、(c)は先頭ポインタ表51及び末尾ポインタ表52を示す図である。なお、図9は、図8に示した状態の後、系列番号2の最初のデータが記憶され、その後、系列番号1の2番目のデータの記憶が記憶されたときの状態を示している。   FIG. 9 is a diagram illustrating an example of a state after the state illustrated in FIG. 8, where (a) illustrates the pointer list memory 14, and (b) illustrates the re-outputable pointer table 54 and the re-outputable number table. 55 is a diagram showing the head number table 53 and (c) is a diagram showing the head pointer table 51 and the tail pointer table 52. FIG. FIG. 9 shows a state when the first data of sequence number 2 is stored after the state shown in FIG. 8, and then the storage of the second data of sequence number 1 is stored.

図8と図9とを比較すると、系列番号1の先頭ポインタの値は、“0”のまま変化していない。また、図9(b)に示すように、系列番号1の先頭番号は、“1”のまま変化していない。これらは、系列番号1のデータは未だ1つも出力されていないためである。   Comparing FIG. 8 with FIG. 9, the value of the head pointer of sequence number 1 remains “0” and has not changed. Further, as shown in FIG. 9B, the leading number of sequence number 1 remains “1” and does not change. This is because none of the data of sequence number 1 has been output yet.

また、図9に示す状態では系列番号2の最初のデータが記憶されているため、系列番号2の先頭ポインタの値が“empty”から“1”に更新されている。そのため、系列番号2の再出力可能ポインタの値も“null”から“1”に更新されている。また、系列番号2の再出力可能番号及び先頭番号も“nullから“1”に更新されている。これらの更新は、制御部11にて実行されるが、擬似コードで表すと以下のようになる。
j=2
P_head(j)=1 /* P_head(0) */
P_ret(j)=1 /* P_head(0) */
S_head(j)=1
S_ret(j)=1
図10は、図9に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリ14を示す図、(b)は再出力可能ポインタ表54、再出力可能番号表55及び先頭番号表53を示す図、(c)は先頭ポインタ表51及び末尾ポインタ表52を示す図である。なお、図10は、図9に示した状態の後、系列番号5の最初のデータが記憶されたときの状態を示している。
In the state shown in FIG. 9, since the first data of the sequence number 2 is stored, the value of the head pointer of the sequence number 2 is updated from “empty” to “1”. Therefore, the value of the sequence number 2 re-outputtable pointer is also updated from “null” to “1”. Further, the re-outputtable number and the leading number of the sequence number 2 are also updated from “null to“ 1. ”These updates are executed by the control unit 11, but are represented in pseudo code as follows: Become.
j = 2
P_head (j) = 1 / * P_head (0) * /
P_ret (j) = 1 / * P_head (0) * /
S_head (j) = 1
S_ret (j) = 1
FIG. 10 is a diagram illustrating an example of a state after the state illustrated in FIG. 9, (a) is a diagram illustrating the pointer list memory 14, and (b) is a reprintable pointer table 54, a reprintable number table. 55 is a diagram showing the head number table 53 and (c) is a diagram showing the head pointer table 51 and the tail pointer table 52. FIG. FIG. 10 shows a state when the first data of sequence number 5 is stored after the state shown in FIG.

図9と図10とを比較すると、図10に示す状態では系列番号5の最初のデータが記憶されているため、系列番号5の先頭ポインタの値に値が“empty”から“3”に更新されている。そのため、系列番号5の再出力可能ポインタの値も“null”から“3”に更新されている。また、系列番号5の再出力可能番号及び先頭番号は“nullから“1”に更新されている。これらの更新は、制御部11にて実行されるが、擬似コードで表すと以下のようになる。
j=5
P_head(j)=3 /* P_head(0) */
P_ret(j)=3 /* P_head(0) */
S_head(j)=1
S_ret(j)=1
次に、データ入出力装置10において記憶されたデータを出力する動作について説明する。なお、出力対象のデータ系列は別途決定されるものとして、ここでは、図10に示す状態から系列番号1のデータが出力される場合の動作について説明する。
Comparing FIG. 9 and FIG. 10, since the first data of the sequence number 5 is stored in the state shown in FIG. 10, the value of the first pointer of the sequence number 5 is updated from “empty” to “3”. Has been. Therefore, the value of the sequence number 5 re-outputtable pointer is also updated from “null” to “3”. In addition, the re-outputtable number and the leading number of the sequence number 5 are updated from “null to“ 1 ”. These updates are executed by the control unit 11, but are expressed in pseudo code as follows: Become.
j = 5
P_head (j) = 3 / * P_head (0) * /
P_ret (j) = 3 / * P_head (0) * /
S_head (j) = 1
S_ret (j) = 1
Next, an operation of outputting stored data in the data input / output device 10 will be described. Here, assuming that the data series to be output is determined separately, here, the operation when data of series number 1 is output from the state shown in FIG. 10 will be described.

図11は、図1に示したデータ入出力装置10において記憶されたデータを出力する動作を説明するためのフローチャートである。   FIG. 11 is a flowchart for explaining an operation of outputting stored data in data input / output device 10 shown in FIG.

制御部11は、出力対象のデータ系列の系列番号jの先頭ポインタの値を抽出する(ステップS21)。ここでは、系列番号1の先頭ポインタの値が抽出される。図10(c)に示すように系列番号1の先頭ポインタの値は“0”である。従って、ここでは、“0”が抽出される。   The control unit 11 extracts the value of the head pointer of the sequence number j of the data sequence to be output (step S21). Here, the value of the head pointer of sequence number 1 is extracted. As shown in FIG. 10C, the value of the head pointer of sequence number 1 is “0”. Therefore, “0” is extracted here.

次に、制御部11は、当該系列番号jの先頭番号を抽出する(ステップS22)。ここでは、“1”が抽出される。   Next, the control unit 11 extracts the top number of the sequence number j (step S22). Here, “1” is extracted.

次に、制御部11は、ステップS21にて抽出した値が示すポインタリストメモリ14のアドレスに対応する記憶領域に記憶されたデータを読み出す(ステップS23)。ここでは、データメモリ12の複数の記憶領域のうち、ポインタリストメモリ14のアドレス0に対応する記憶領域からデータが読み出される。   Next, the control part 11 reads the data memorize | stored in the memory area corresponding to the address of the pointer list memory 14 which the value extracted in step S21 shows (step S23). Here, data is read from the storage area corresponding to address 0 of the pointer list memory 14 among the plurality of storage areas of the data memory 12.

次に、制御部11は、ステップS23にて読み出したデータに、ステップS22にて抽出した先頭番号をシーケンス番号として付与するとともに当該系列番号jを付与する。なお、シーケンス番号は、データの出力先がデータの順序を認識するための番号である。ここでは、シーケンス番号として“1”が付与され、系列番号として“1”が付与される。   Next, the control unit 11 assigns the sequence number j to the data read in step S23 as the sequence number with the head number extracted in step S22. The sequence number is a number for the data output destination to recognize the data order. Here, “1” is assigned as the sequence number, and “1” is assigned as the sequence number.

そして、制御部11は、シーケンス番号及び系列番号jが付与されたデータを出力する(ステップS24)。   And the control part 11 outputs the data provided with the sequence number and the sequence number j (step S24).

次に、制御部11は、当該系列番号jの先頭ポインタの値を、ステップS21にて抽出した値が示すアドレスに記憶された値に更新する(ステップS25)。ここでは、系列番号1の先頭ポインタの値が“0”から“2”に更新される。つまり、ポインタリストメモリ14のアドレス2に対応する記憶領域が、系列番号1のデータ系列における新たな先頭記憶領域として設定されたこととなる。   Next, the control unit 11 updates the value of the head pointer of the sequence number j to the value stored at the address indicated by the value extracted in step S21 (step S25). Here, the value of the head pointer of sequence number 1 is updated from “0” to “2”. That is, the storage area corresponding to the address 2 of the pointer list memory 14 is set as a new head storage area in the data series of series number 1.

そして、制御部11は、当該系列番号jの先頭番号を更新する(ステップS26)。ここでは、系列番号1の先頭番号が“1”から“2”に更新される。   And the control part 11 updates the head number of the said sequence number j (step S26). Here, the leading number of sequence number 1 is updated from “1” to “2”.

このように、データを出力した場合には、先頭ポインタの値及び先頭番号は更新されるが、再出力可能ポインタの値及び再出力可能番号は更新されない。   As described above, when data is output, the value of the start pointer and the start number are updated, but the value of the re-outputtable pointer and the re-outputtable number are not updated.

なお、上述したデータを出力する動作のうち、先頭ポインタの値、再出力可能ポインタの値、先頭番号及び再出力可能番号の更新を擬似コードで表すと以下のようになる。
j=1
P_head(j)=2 /* L(P_head(j)) */
S_head(j)=2 /* 1++ */
/* P_ret(j)更新しない */
/* S_ret(j)更新しない */
図12は、図10に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリ14を示す図、(b)は再出力可能ポインタ表54、再出力可能番号表55及び先頭番号表53を示す図、(c)は先頭ポインタ表51及び末尾ポインタ表52を示す図である。なお、図12は、図10に示した状態の後、図11を参照しながら説明した動作が行われた後の状態を示している。
Of the operations for outputting the data described above, the update of the value of the start pointer, the value of the re-outputtable pointer, the start number, and the re-outputtable number is represented by pseudo code as follows.
j = 1
P_head (j) = 2 / * L (P_head (j)) * /
S_head (j) = 2 / * 1 ++ * /
/ * Do not update P_ret (j) * /
/ * Do not update S_ret (j) * /
FIG. 12 is a diagram illustrating an example of a state after the state illustrated in FIG. 10, where (a) illustrates the pointer list memory 14, and (b) illustrates the re-outputable pointer table 54 and the re-outputable number table. 55 is a diagram showing the head number table 53 and (c) is a diagram showing the head pointer table 51 and the tail pointer table 52. FIG. FIG. 12 shows a state after the state shown in FIG. 10 and after the operation described with reference to FIG. 11 is performed.

図10と図12とを比較すると、系列番号1の先頭ポインタの値及び先頭番号が更新されていることがわかる。   Comparing FIG. 10 with FIG. 12, it can be seen that the value of the head pointer of sequence number 1 and the head number are updated.

次に、データ入出力装置10が、出力したデータの受信確認を受け付けた場合の動作と、受け付けない場合の動作とについて説明する。   Next, an operation when the data input / output device 10 accepts reception confirmation of the output data and an operation when it does not accept will be described.

図13は、図1に示したデータ入出力装置10の動作を説明するためのフローチャートであり、(a)は受信確認を受け付けた場合の動作を示すフローチャート、(b)は受信確認を受け付けない場合の動作を示すフローチャートである。   FIG. 13 is a flowchart for explaining the operation of the data input / output device 10 shown in FIG. 1, (a) is a flowchart showing the operation when reception confirmation is accepted, and (b) does not accept reception confirmation. It is a flowchart which shows operation | movement in the case.

まず、図13(a)を参照しながら、図12に示した状態の後、出力したデータに対する受信確認を受け付けた場合について説明する。なお、受信確認には、系列番号が付与されている。   First, with reference to FIG. 13A, a case will be described in which reception confirmation for output data is received after the state shown in FIG. A series number is assigned to the reception confirmation.

制御部11は、受け付けた受信確認に付与された系列番号jを抽出する(ステップS41)。図12の状態において出力されたデータは、系列番号1のデータなので、ここでは、“1”が抽出される。   The control unit 11 extracts the sequence number j given to the received reception confirmation (step S41). Since the data output in the state of FIG. 12 is data of sequence number 1, “1” is extracted here.

次に、制御部11は、抽出した系列番号jのデータ系列の再出力可能ポインタの値を抽出する(ステップS42)。ここでは、“0”が抽出される。   Next, the control unit 11 extracts the value of the re-outputtable pointer of the extracted data sequence of the sequence number j (step S42). Here, “0” is extracted.

次に、制御部11は、ステップS42にて抽出した値が示すアドレスに記憶された値を“END”に更新する(ステップS43)。ここでは、ポインタリストメモリ14のアドレス0に記憶された値が“2”から“END”に更新される。   Next, the control unit 11 updates the value stored at the address indicated by the value extracted in step S42 to “END” (step S43). Here, the value stored at address 0 of the pointer list memory 14 is updated from “2” to “END”.

次に、制御部11は、空き系列の末尾ポインタの値が示すアドレスに記憶された値を“END”から、ステップS42にて抽出した値に更新する(ステップS44)。ここでは、ポインタリストメモリのアドレス7に記憶された値が“END”から“0”に更新される。   Next, the control unit 11 updates the value stored at the address indicated by the value of the end pointer of the empty sequence from “END” to the value extracted in step S42 (step S44). Here, the value stored at address 7 of the pointer list memory is updated from “END” to “0”.

次に、制御部11は、空き系列の末尾ポインタの値を、ステップS42にて抽出した値に更新する(ステップS45)。ここでは、空き系列の末尾ポインタの値が“7”から“0”に更新される。   Next, the control unit 11 updates the value of the end pointer of the empty series with the value extracted in step S42 (step S45). Here, the value of the end pointer of the empty series is updated from “7” to “0”.

次に、制御部11は、抽出した系列番号jの先頭ポインタの値で、当該系列番号jの再出力可能ポインタの値を更新する(ステップS46)。ここでは、系列番号1の再出力可能ポインタの値が“0”から“2”に更新される。   Next, the control unit 11 updates the value of the re-printable pointer of the sequence number j with the extracted value of the start pointer of the sequence number j (step S46). Here, the value of the re-outputtable pointer of sequence number 1 is updated from “0” to “2”.

そして、制御部11は、抽出した系列番号jの先頭番号で、当該系列番号jの再出力可能番号を更新する(ステップS47)。ここでは、系列番号1の再出力可能番号が“1”から“2”に更新される。   And the control part 11 updates the re-output possible number of the said sequence number j with the head number of the extracted sequence number j (step S47). Here, the re-outputtable number of sequence number 1 is updated from “1” to “2”.

上述した動作により、ポインタリストメモリ14のアドレス0に対応する記憶領域が空き記憶領域として設定されたこととなる。   Through the above-described operation, the storage area corresponding to address 0 of the pointer list memory 14 is set as an empty storage area.

なお、上述した動作のうちステップS46及びステップS47の動作を擬似コードで表すと以下のようになる。
j=1
P_ret(j)=P_head(j)
S_ret(j)=S_head(j)
図14は、図12に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリ14を示す図、(b)は再出力可能ポインタ表54、再出力可能番号表55及び先頭番号表53を示す図、(c)は先頭ポインタ表51及び末尾ポインタ表52を示す図である。図14は、図12に示した状態の後、図13(a)を参照しながら説明した動作が行われた後の状態を示している。
Of the above-described operations, the operations of step S46 and step S47 are expressed in pseudo code as follows.
j = 1
P_ret (j) = P_head (j)
S_ret (j) = S_head (j)
FIG. 14 is a diagram illustrating an example of a state after the state illustrated in FIG. 12, (a) is a diagram illustrating the pointer list memory 14, and (b) is a reprintable pointer table 54, a reprintable number table. 55 is a diagram showing the head number table 53 and (c) is a diagram showing the head pointer table 51 and the tail pointer table 52. FIG. FIG. 14 shows a state after the operation shown in FIG. 13A is performed after the state shown in FIG.

図12と図14とを比較すると、系列番号1の再出力可能ポインタの値及び再出力可能番号が更新されていることがわかる。また、空き系列の末尾ポインタの値が更新されていることもわかる。   Comparing FIG. 12 and FIG. 14, it can be seen that the value of the re-printable pointer of sequence number 1 and the re-printable number are updated. It can also be seen that the value of the end pointer of the empty series has been updated.

次に、図13(b)を参照しながら、図12に示した状態の後、出力したデータの受信確認を受け付けない場合について説明する。なお、出力したデータの受信確認を受け付けない場合とは例えば、データの出力後、所定の時間が経過しても受信確認を受け付けない場合である。この場合、制御部11は、タイマーを備え、データを出力すると、そのタイマーを起動させる。そして、制御部11は、タイマーの経過時間が所定の時間となった場合に、「受信確認を受け付けない」と判断することとなる。   Next, with reference to FIG. 13B, a case where the reception confirmation of the output data is not accepted after the state shown in FIG. 12 will be described. The case where the reception confirmation of the output data is not accepted is, for example, the case where the reception confirmation is not accepted even after a predetermined time has elapsed after the output of the data. In this case, the control unit 11 includes a timer, and when the data is output, activates the timer. Then, when the elapsed time of the timer reaches a predetermined time, the control unit 11 determines that “reception confirmation is not accepted”.

制御部11は、出力したデータが属するデータ系列の系列番号jの再出力可能ポインタの値で、当該系列番号jの先頭ポインタの値を更新する(ステップS61)。図12の状態において出力されたデータは、系列番号1のデータなので、ここでは、系列番号1の先頭ポインタの値が“2”から“0”に更新される。これにより、ポインタリストメモリ14のアドレス0に対応する記憶領域が、系列番号1のデータ系列における新たな先頭記憶領域として設定されたこととなる。   The control unit 11 updates the value of the start pointer of the sequence number j with the value of the re-outputtable pointer of the sequence number j of the data sequence to which the output data belongs (step S61). Since the data output in the state of FIG. 12 is data of sequence number 1, the value of the head pointer of sequence number 1 is updated from “2” to “0” here. As a result, the storage area corresponding to the address 0 of the pointer list memory 14 is set as a new head storage area in the data series of series number 1.

そして、制御部11は、当該系列番号の再出力可能番号で、当該系列番号の先頭番号を更新する(ステップS62)。ここでは、系列番号1の先頭番号が“2”から“1”に変更される。   And the control part 11 updates the head number of the said sequence number with the re-outputtable number of the said sequence number (step S62). Here, the leading number of sequence number 1 is changed from “2” to “1”.

上述したステップS62及びステップS63の動作を擬似コードで表すと以下のようになる。
j=1
P_head(j)=P_ret(j)
S_head(j)=S_ret(j)
図15は、図12に示した状態の後の状態の他の例を示す図であり、(a)はポインタリストメモリ14を示す図、(b)は再出力可能ポインタ表54、再出力可能番号表55及び先頭番号表53を示す図、(c)は先頭ポインタ表51及び末尾ポインタ表52を示す図である。図15は、図12に示した状態の後、図13(b)を参照しながら説明した動作が行われた後の状態を示している。
The operations in steps S62 and S63 described above are expressed in pseudo code as follows.
j = 1
P_head (j) = P_ret (j)
S_head (j) = S_ret (j)
FIG. 15 is a diagram illustrating another example of the state after the state illustrated in FIG. 12, (a) is a diagram illustrating the pointer list memory 14, and (b) is a re-outputtable pointer table 54, re-output is possible. The figure which shows the number table 55 and the head number table 53, (c) is a figure which shows the head pointer table 51 and the tail pointer table 52. FIG. 15 shows a state after the operation shown in FIG. 13B is performed after the state shown in FIG.

図12と図15とを比較すると、系列番号1の先頭ポインタの値及び先頭番号が更新されていることがわかる。また、系列番号1の先頭ポインタの値が更新されていることもわかる。   Comparing FIG. 12 and FIG. 15, it can be seen that the value of the head pointer and the head number of sequence number 1 are updated. It can also be seen that the value of the first pointer of sequence number 1 has been updated.

なお、系列番号jのデータ系列において入力バッファ13にてk番目に受け付けられたデータを再出力する場合に、そのデータがデータメモリ12に記憶されているかどうかは、系列番号jの再出力可能番号と先頭番号との間にkが含まれているかどうかを確認すればよい。   Note that, when the kth data received by the input buffer 13 in the data sequence of the sequence number j is output again, whether or not the data is stored in the data memory 12 depends on the re-outputtable number of the sequence number j It is sufficient to check whether k is included between the first number and the first number.

また、図13(b)を参照しながら説明した動作フローにおいては、再出力可能ポインタの値で先頭ポインタの値を更新した。つまり、系列番号jのデータ系列に属するデータを再出力する際、系列番号jのデータ系列において再出力可能なデータの全てを再出力する場合を想定していた。   In the operation flow described with reference to FIG. 13B, the value of the head pointer is updated with the value of the re-outputtable pointer. In other words, when re-outputting data belonging to the data sequence of sequence number j, it is assumed that all data that can be re-output in the data sequence of sequence number j is re-output.

ここで、系列番号jのデータ系列において入力バッファ13にてk番目以降に受け付けられたデータだけを再出力する場合を考えてみる。これは、制御部11が、系列番号jとともに、(k-1)を示す受信済番号が付与された受信確認を受け付けた場合を想定している。受信済番号とは、制御部11がデータを出力する際に付与したシーケンス番号に対応する番号である。例えば、データ入出力装置10が複数のデータを出力した場合、それらのデータの出力先が、その複数のデータのうち、シーケンス番号として(k-1)が付与されたデータまでを受け付けると、データの出力先は、受信済番号として(k-1)が付与された受信確認を出力する。   Here, consider a case where only the data received after the k-th in the input buffer 13 in the data series of the series number j is re-output. This assumes a case where the control unit 11 receives a reception confirmation to which a received number indicating (k-1) is given together with the sequence number j. The received number is a number corresponding to the sequence number assigned when the control unit 11 outputs data. For example, when the data input / output device 10 outputs a plurality of data, when the output destination of the data receives up to the data assigned with the sequence number (k-1), the data Output the reception confirmation with (k-1) as the received number.

制御部11は、受信済番号として(k-1)が付与された受信確認を受け付けると、以下の擬似コードで表される動作を行う。なお、以下の擬似コードは、系列番号1のデータ系列の場合を表している。
j=1;
S_head(j)=k;
P=P_ret(j);
for(t ; t<(k-S_ret(j)) ; t++)P=L(P);
P_head(j)=P;
P_ret(j)=P;
S_ret(j)=k;
制御部11が系列番号1においてシーケンス番号として1〜5を付与した5つのデータを出力し、その後、制御部11が受信済番号として1〜3が付与された受信確認を受け付けた場合(k=4の場合)を一例として、上記の擬似コードを説明する。なお、この場合、制御部11が受信確認を受け付ける直前において、系列番号1の再出力可能番号(S_ret(j))は“1”である。
When the control unit 11 accepts the reception confirmation assigned (k-1) as the received number, the control unit 11 performs an operation represented by the following pseudo code. Note that the following pseudo code represents the case of the data sequence of sequence number 1.
j = 1;
S_head (j) = k;
P = P_ret (j);
for (t; t <(k-S_ret (j)); t ++) P = L (P);
P_head (j) = P;
P_ret (j) = P;
S_ret (j) = k;
When the control unit 11 outputs five data assigned 1 to 5 as sequence numbers in the sequence number 1, and then the control unit 11 accepts a reception confirmation assigned 1 to 3 as received numbers (k = The above pseudo code will be described by taking 4) as an example. In this case, immediately before the control unit 11 accepts the reception confirmation, the re-outputtable number (S_ret (j)) of the sequence number 1 is “1”.

まず、制御部11は、系列番号1の先頭番号を“4”に設定する。   First, the control unit 11 sets the top number of sequence number 1 to “4”.

次に、制御部11は、系列番号1の再出力可能ポインタの値を“P”とし、“P”が示すポインタリストメモリ14のアドレスに記憶された値を新たな“P”とする。これを2回繰り返す。2回繰り返すのは、kとS_ret(j)との差が3であるためである。   Next, the control unit 11 sets the value of the re-outputtable pointer of sequence number 1 as “P” and sets the value stored at the address of the pointer list memory 14 indicated by “P” as a new “P”. Repeat this twice. The reason for repeating twice is that the difference between k and S_ret (j) is 3.

そして、制御部11は、系列番号1の先頭ポインタの値及び再出力可能ポインタの値を上記の繰り返し後のPとする。また、制御部11は、系列番号1の再出力可能番号を4に設定する。   Then, the control unit 11 sets the value of the first pointer of sequence number 1 and the value of the re-outputtable pointer as P after the above repetition. Further, the control unit 11 sets the re-outputtable number of sequence number 1 to 4.

これにより、系列番号1のデータ系列において入力バッファ13にて4番目に受け付けられたデータが記憶された記憶領域が、系列番号1のデータ系列における新たな先頭記憶領域として設定されたこととなる。   As a result, the storage area in which the data received in the input buffer 13 in the data sequence of sequence number 1 is stored is set as a new head storage region in the data sequence of sequence number 1.

このように本実施形態においては、受け付けられたデータが属するデータ系列のデータがデータメモリ12に記憶されていない場合、空き記憶領域の1つに当該データが記憶されるとともに、当該記憶領域が、当該データ系列において最初に受け付けられたデータが記憶された先頭記憶領域として設定される。一方、受け付けられたデータが属するデータ系列のデータがデータメモリ12に記憶されている場合、当該データ系列において当該データの1つ前に受け付けられたデータが記憶された記憶領域と、空き記憶領域の1つとが対応付けられ、当該空き記憶領域に当該データが記憶される。   As described above, in this embodiment, when the data series to which the received data belongs is not stored in the data memory 12, the data is stored in one of the free storage areas, and the storage area It is set as the first storage area in which data received first in the data series is stored. On the other hand, when data of the data series to which the received data belongs is stored in the data memory 12, a storage area in which the data received immediately before the data in the data series is stored, and an empty storage area The data is stored in the empty storage area.

そして、複数のデータ系列のうち、出力の対象となるデータ系列において先頭記憶領域として設定された記憶領域からデータが読み出されて出力され、当該記憶領域と対応付けられた記憶領域が当該データ系列における新たな先頭記憶領域として設定される。その後、出力されたデータを受け付けたことを示す受信確認を受け付けた場合、当該データが記憶された記憶領域が空き記憶領域として設定される。   The data is read from the storage area set as the first storage area in the data series to be output among the plurality of data series and output, and the storage area associated with the storage area is the data series Is set as a new head storage area. Thereafter, when a reception confirmation indicating that the output data has been received is received, the storage area in which the data is stored is set as a free storage area.

これにより、データの先入れ先出しをデータ系列毎に実現するとともに、出力したデータの再出力を可能とするために、複数のデータ系列のそれぞれと複数のキュー及び再出力用キューのそれぞれとを固定的に対応付ける必要がない。   As a result, first-in first-out of data is realized for each data series, and in order to enable re-output of the output data, each of the plurality of data series and each of the plurality of queues and each of the re-output queues are fixed. There is no need to associate it.

また、任意のデータ系列において大量のデータの再出力が必要となった場合であっても、先頭ポインタ表等の少数の変数を書き換えるだけで対応できるため、再出力の対象となるデータを速やかに準備することが可能となる。   In addition, even if it is necessary to re-output a large amount of data in an arbitrary data series, it is possible to cope with it by simply rewriting a small number of variables such as the head pointer table. It becomes possible to prepare.

なお、本実施形態においては、ポインタリストメモリ14とデータメモリ12とが別々のメモリとして実装されている場合について説明したが、これらは、1つのメモリに組み合わせて実装されていてもよい。   In the present embodiment, the case where the pointer list memory 14 and the data memory 12 are mounted as separate memories has been described, but these may be mounted in combination in one memory.

また、本発明においては、データ入出力装置内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムをデータ入出力装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをデータ入出力装置に読み込ませ、実行するものであっても良い。データ入出力装置にて読取可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、データ入出力装置に内蔵されたHDDなどを指す。また、この記録媒体に記録されたプログラムをネットワークを介して提供することも可能である。   In the present invention, the processing in the data input / output device is not realized by the dedicated hardware described above, but a program for realizing the function is recorded on a recording medium readable by the data input / output device. The program may be recorded, and the program recorded on the recording medium may be read by the data input / output device and executed. The recording medium readable by the data input / output device refers to a transfer medium such as a flexible disk, a magneto-optical disk, a DVD, and a CD, as well as an HDD incorporated in the data input / output device. It is also possible to provide the program recorded on this recording medium via a network.

10 データ入出力装置
11 制御部
12 データメモリ
13 入力バッファ
14 ポインタリストメモリ
51 先頭ポインタ表
52 末尾ポインタ表
53 先頭番号表
54 再出力可能ポインタ表
55 再出力可能番号表
DESCRIPTION OF SYMBOLS 10 Data input / output device 11 Control part 12 Data memory 13 Input buffer 14 Pointer list memory 51 First pointer table 52 Last pointer table 53 First number table 54 Re-outputtable pointer table 55 Re-outputable number table

Claims (5)

複数のデータ系列のいずれかに属する複数のデータの入力を1つずつ受け付け、該受け付けたデータを前記複数のデータ系列毎に先入れ先出し方式で出力し、該出力したデータを再出力可能なデータ入出力装置であって、
前記受け付けた複数のデータを1つずつ記憶する複数の記憶領域と、
前記複数の記憶領域へのデータの入出力を管理する制御部と、を有し、
前記制御部は、
前記データ系列毎に、当該データ系列において次に出力されるデータが受け付けられた順番を示す先頭番号を記憶する先頭番号表と、前記データ系列毎に、当該データ系列に属する再出力可能なデータのうち、最も早く受け付けられたデータが受け付けられた順番を示す再出力可能番号を記憶する再出力可能番号表とを設定し、前記複数の記憶領域のうち、前記データが記憶されていない記憶領域を空き記憶領域として設定し、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されていない場合、前記空き記憶領域として設定された記憶領域の1つに当該データを記憶させ、当該記憶領域を、当該データ系列において最初に受け付けたデータが記憶された先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表および前記再出力可能番号表に記憶される前記先頭番号および前記再出力可能番号をそれぞれ1に設定し、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されている場合、当該データ系列において当該データの1つ前に受け付けたデータが記憶された記憶領域と、前記空き記憶領域として設定された記憶領域の1つとを対応付け、当該記憶領域に当該データを記憶させ、
前記複数のデータ系列のうち、出力の対象となるデータ系列において前記先頭記憶領域として設定された記憶領域からデータを読み出し、当該データ系列の前記先頭番号表から抽出された前記先頭番号を付与して出力し、当該記憶領域と対応付けられた記憶領域を当該データ系列における新たな前記先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表に記憶される前記先頭番号に1を加算し
記出力されたデータを受け付けたことを示す受信確認を受け付けた場合、当該データが記憶された記憶領域を前記空き記憶領域として設定するとともに、当該データ系列の前記再出力可能番号表に記憶される前記再出力可能番号を当該データ系列の前記先頭番号表に記憶される前記先頭番号で更新する、データ入出力装置。
Data input / output that accepts input of a plurality of data belonging to one of a plurality of data series one by one, outputs the accepted data in a first-in first-out manner for each of the plurality of data series, and re-outputs the output data A device,
A plurality of storage areas for storing the received plurality of data one by one;
A control unit for managing input / output of data to / from the plurality of storage areas,
The controller is
For each data series, a head number table that stores a head number indicating the order in which data to be output next in the data series is received, and for each data series, re-outputtable data belonging to the data series Among them, a re-outputtable number table that stores a re-outputtable number indicating the order in which the earliest received data is received is set, and a storage area in which the data is not stored among the plurality of storage areas Set as free storage space,
When data belonging to the same data series as the received data is not stored in the plurality of storage areas, the data is stored in one of the storage areas set as the free storage area, and the storage area is Set as the first storage area in which data received first in the data series is stored, and the first number and the re-outputtable number stored in the first number table and the re-outputtable number table of the data series, respectively Set to 1 ,
When data belonging to the same data series as the received data is stored in the plurality of storage areas, a storage area in which the data received immediately before the data in the data series is stored, and the free storage area Is associated with one of the storage areas set as, and the data is stored in the storage area,
Among the plurality of data series, data is read from the storage area set as the top storage area in the data series to be output, and the top number extracted from the top number table of the data series is assigned. Output and set the storage area associated with the storage area as the new start storage area in the data series, and add 1 to the start number stored in the start number table of the data series ,
When receiving a reception confirmation indicating receipt of the previous SL output data, and sets the storage area where the data is stored as the free memory space, is stored in the re-output can number table of the data series The data input / output device updates the re-outputtable number with the head number stored in the head number table of the data series .
請求項1に記載のデータ入出力装置において、
前記制御部は、
前記受信確認を受け付けない場合、当該データが記憶された記憶領域を、当該データが属するデータ系列における新たな前記先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表に記憶される前記先頭番号を当該データ系列の前記再出力可能番号表に記憶される前記再出力可能番号で更新する、データ入出力装置。
The data input / output device according to claim 1,
The controller is
When the reception confirmation is not accepted, the storage area in which the data is stored is set as the new head storage area in the data series to which the data belongs, and the head stored in the head number table of the data series A data input / output device that updates a number with the re-outputtable number stored in the re-outputtable number table of the data series .
複数の記憶領域を有し、複数のデータ系列のいずれかに属する複数のデータの入力を1つずつ受け付け、該受け付けた複数のデータを前記複数の記憶領域に1つずつ記憶させ、該記憶されたデータを前記複数のデータ系列毎に先入れ先出し方式で出力し、該出力したデータを再出力可能なデータ入出力装置におけるデータ記憶方法であって、
前記データ系列毎に、当該データ系列において次に出力されるデータが受け付けられた順番を示す先頭番号を記憶する先頭番号表と、前記データ系列毎に、当該データ系列に属する再出力可能なデータのうち、最も早く受け付けられたデータが受け付けられた順番を示す再出力可能番号を記憶する再出力可能番号表とを設定し、前記複数の記憶領域のうち、前記データが記憶されていない記憶領域を空き記憶領域として設定する処理と、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されていない場合、前記空き記憶領域として設定された記憶領域の1つに当該データを記憶させ、当該記憶領域を、当該データ系列において最初に受け付けたデータが記憶された先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表および前記再出力可能番号表に記憶される前記先頭番号および前記再出力可能番号をそれぞれ1に設定する処理と、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されている場合、当該データ系列において当該データの1つ前に受け付けたデータが記憶された記憶領域と、前記空き記憶領域として設定された記憶領域の1つとを対応付け、当該記憶領域に当該データを記憶させる処理と、
前記複数のデータ系列のうち、出力の対象となるデータ系列において前記先頭記憶領域として設定された記憶領域からデータを読み出し、当該データ系列の前記先頭番号表から抽出された前記先頭番号を付与して出力する処理と、
当該記憶領域と対応付けられた記憶領域を当該データ系列における新たな前記先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表に記憶される前記先頭番号に1を加算する処理と、
前記出力されたデータを受け付けたことを示す受信確認を受け付けた場合、当該データが記憶された記憶領域を前記空き記憶領域として設定するとともに、当該データ系列の前記再出力可能番号表に記憶される前記再出力可能番号を当該データ系列の前記先頭番号表に記憶される前記先頭番号で更新する処理と、を有するデータ記憶方法。
It has a plurality of storage areas, receives input of a plurality of data belonging to any of a plurality of data series one by one, stores the received plurality of data one by one in the plurality of storage areas, and stores the stored data A data storage method in a data input / output device capable of outputting the output data in a first-in first-out manner for each of the plurality of data series and re-outputting the output data,
For each data series, a head number table that stores a head number indicating the order in which data to be output next in the data series is received, and for each data series, re-outputtable data belonging to the data series Among them, a re-outputtable number table that stores a re-outputtable number indicating the order in which the earliest received data is received is set, and a storage area in which the data is not stored among the plurality of storage areas Processing to set as free storage area;
When data belonging to the same data series as the received data is not stored in the plurality of storage areas, the data is stored in one of the storage areas set as the free storage area, and the storage area is Set as the first storage area in which data received first in the data series is stored, and the first number and the re-outputtable number stored in the first number table and the re-outputtable number table of the data series, respectively Processing to set to 1 ,
When data belonging to the same data series as the received data is stored in the plurality of storage areas, a storage area in which the data received immediately before the data in the data series is stored, and the free storage area A process of associating with one of the storage areas set as and storing the data in the storage area;
Among the plurality of data series, data is read from the storage area set as the top storage area in the data series to be output, and the top number extracted from the top number table of the data series is assigned. Processing to output,
A process of setting a storage area associated with the storage area as a new start storage area in the data series and adding 1 to the start number stored in the start number table of the data series ;
When a reception confirmation indicating that the output data has been received is received, a storage area in which the data is stored is set as the free storage area and is stored in the re-outputtable number table of the data series Updating the re-outputtable number with the head number stored in the head number table of the data series .
請求項3に記載のデータ記憶方法において、
前記受信確認を受け付けない場合、当該データが記憶された記憶領域を、当該データが属するデータ系列における新たな前記先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表に記憶される前記先頭番号を当該データ系列の前記再出力可能番号表に記憶される前記再出力可能番号で更新する処理をさらに有するデータ記憶方法。
The data storage method according to claim 3,
When the reception confirmation is not accepted, the storage area in which the data is stored is set as the new head storage area in the data series to which the data belongs, and the head stored in the head number table of the data series A data storage method further comprising a process of updating a number with the re-outputtable number stored in the re-outputtable number table of the data series .
複数の記憶領域を有し、複数のデータ系列のいずれかに属する複数のデータの入力を1つずつ受け付け、該受け付けた複数のデータを前記複数の記憶領域に1つずつ記憶させ、該記憶されたデータを前記複数のデータ系列毎に先入れ先出し方式で出力し、該出力したデータを再出力可能なコンピュータを、請求項1または請求項2に記載のデータ入出力装置として機能させるためのプログラム。   It has a plurality of storage areas, receives input of a plurality of data belonging to any of a plurality of data series one by one, stores the received plurality of data one by one in the plurality of storage areas, and stores the stored data A program for causing a computer capable of outputting the output data in a first-in first-out manner for each of the plurality of data series and re-outputting the output data as a data input / output device according to claim 1.
JP2010120469A 2010-05-26 2010-05-26 Data input / output device, data storage method and program Expired - Fee Related JP5379075B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010120469A JP5379075B2 (en) 2010-05-26 2010-05-26 Data input / output device, data storage method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010120469A JP5379075B2 (en) 2010-05-26 2010-05-26 Data input / output device, data storage method and program

Publications (2)

Publication Number Publication Date
JP2011248585A JP2011248585A (en) 2011-12-08
JP5379075B2 true JP5379075B2 (en) 2013-12-25

Family

ID=45413770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010120469A Expired - Fee Related JP5379075B2 (en) 2010-05-26 2010-05-26 Data input / output device, data storage method and program

Country Status (1)

Country Link
JP (1) JP5379075B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5938968B2 (en) * 2012-03-19 2016-06-22 富士通株式会社 Information processing apparatus, information processing program, and information processing method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06224933A (en) * 1993-01-22 1994-08-12 Toshiba Corp Buffer memory device
JP3720133B2 (en) * 1996-08-09 2005-11-24 株式会社日立国際電気 Multimedia multiplexing communication system

Also Published As

Publication number Publication date
JP2011248585A (en) 2011-12-08

Similar Documents

Publication Publication Date Title
JP6535253B2 (en) Method and apparatus for utilizing multiple linked memory lists
JP2020510892A5 (en)
JP7074839B2 (en) Packet processing
US9569291B1 (en) Systems and methods for inter-process messaging
US10038571B2 (en) Method for reading and writing forwarding information base, and network processor
CN102395958B (en) Concurrent processing method and device for data packet
CN101615145A (en) A kind of method and apparatus that improves reliability of data caching of memorizer
WO2011015055A1 (en) Method and system for storage management
CN109032533A (en) A kind of date storage method, device and equipment
WO2016202113A1 (en) Queue management method, apparatus, and storage medium
US8812787B2 (en) Router and many-core system
JP5379075B2 (en) Data input / output device, data storage method and program
TWI397285B (en) Packet forwarding method
CN109491807A (en) Data exchange method, device and system
JP2011248586A (en) Data input-output device and method and program for storing data
US9544229B2 (en) Packet processing apparatus and packet processing method
US9727512B1 (en) Identical packet multicast packet ready command
JP4391464B2 (en) Device for storing binary tree structure information and device for storing heap structure information
US20100082864A1 (en) Selection circuit and packet processing apparatus
CN106528598B (en) A kind of management method and physical equipment of chain
JP5354606B2 (en) Data storage device and method and program, and data search device and method and program
JP2011254149A (en) Information processor, information processing method, and program
CN109783021A (en) Data-storage system and data storage, read method, device, electronic equipment
US10341246B1 (en) Update packet sequence number packet ready command
CN102325091B (en) Memory release method and routing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120831

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20130304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130823

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130926

R150 Certificate of patent or registration of utility model

Ref document number: 5379075

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees