JP5379075B2 - Data input / output device, data storage method and program - Google Patents
Data input / output device, data storage method and program Download PDFInfo
- 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
Links
Images
Abstract
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
キュー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
再出力用キュー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
なお、データの再出力に関する技術が例えば、非特許文献1に開示されている。
A technique related to data re-output is disclosed in
上述したように、図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.
以下に、本発明の実施の形態について図面を参照して説明する。 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 /
入力バッファ13は、複数のデータの入力を1つずつ受け付ける。なお、入力バッファ13にて受け付けられる複数のデータのそれぞれは、複数のデータ系列のいずれかに属している。複数のデータのそれぞれには、データ系列を識別するための系列番号が付与されている。ここでは、系列番号は1以上の整数とする。
The
データメモリ12は、所定の長さの連続する複数の記憶領域から構成される。
The
制御部11は、ポインタリストメモリ14と、先頭ポインタ表51及び末尾ポインタ表52とを用い、データメモリ12の複数の記憶領域のうちデータが記憶されていない記憶領域である空き記憶領域に、入力バッファ13にて受け付けられた複数のデータのそれぞれを記憶させる(書き込む)。また、制御部11は、ポインタリストメモリ14と、先頭ポインタ表51及び末尾ポインタ表52とを用い、データメモリ12の複数の記憶領域のそれぞれに記憶されたデータのうち、出力対象のデータ系列のデータを読み出して出力する。また、制御部11は、出力したデータを受け付けたことを示す受信確認を、そのデータの出力先から受け付けた場合、受け付けた受信確認が示す内容に応じて再出力可能ポインタ表54等の設定内容を更新する。一方、制御部11は、受信確認を受け付けない場合には、そのデータを再出力するための動作を行う。制御部11が、データメモリ12の複数の記憶領域にデータを記憶させる動作、及び、記憶されたデータを読み出して出力する動作の詳細については、後述する動作フローにおいて説明する。また、制御部11が、受信確認を受け付けた場合、及び、受け付けない場合の動作の詳細についても、後述する動作フローにおいて説明する。
The
ここで、図1に示したポインタリストメモリ14とデータメモリ12との間の対応関係について説明する。
Here, the correspondence between the
図2は、図1に示したポインタリストメモリ14とデータメモリ12との間の対応関係の一例を示す図である。
FIG. 2 is a diagram illustrating an example of a correspondence relationship between the
データメモリ12とポインタリストメモリ14との間の対応関係は系列番号毎に存在する。図2は、ある1つの系列番号における対応関係を示している。また、ポインタリストメモリ14においては、系列番号を識別するための見出し付けがされている。図2においては、図中の黒丸が系列番号を識別するための見出しを表している。
The correspondence between the
データメモリ12とポインタリストメモリ14とは、ポインタリストメモリ14のアドレスaから、1つのxに対して値が1つに定まる関数f(x)を用いることにより、データメモリ12の複数の記憶領域のいずれかを特定するポインタf(a)を得るという対応関係にある。
The
つまり、ポインタリストメモリ14のアドレスのそれぞれとデータメモリ12の複数の記憶領域のそれぞれとが1対1で対応付けられていることとなる。なお、ポインタf(a)は例えば、データメモリ12の複数の記憶領域のいずれかの先頭アドレスである。また、関数f(x)の一例としては、xを256倍する(8ビットシフトする)関数がある。
That is, each address of the
図2では例えば、ポインタリストメモリ14のアドレス「0100」が、データメモリ12の複数の記憶領域のうち、先頭アドレスが「010000」の記憶領域と対応付けられている。
In FIG. 2, for example, the address “0100” of the
また、図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
図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
このように、ポインタリストメモリ14では、データメモリ12においてデータが記憶された記憶領域を特定するポインタが、複数のデータ系列毎に連鎖(片方向リスト)を構成している。
As described above, in the
なお、複数のデータ系列のそれぞれにおいて最後に受け付けられたデータが記憶された記憶領域に対応するアドレスに記憶される値は、そのデータ系列におけるデータの終了を表す特殊な値であり、ここではその値を“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
次に、ポインタリストメモリ14と先頭ポインタ表51及び末尾ポインタ表52との間の対応関係について説明する。
Next, the correspondence between the
まず、ポインタリストメモリ14と先頭ポインタ表51との間の対応関係について説明する。
First, the correspondence between the
図3は、図1に示したポインタリストメモリ14と先頭ポインタ表51との間の対応関係の一例を示す図である。
FIG. 3 is a diagram showing an example of a correspondence relationship between the
先頭ポインタ表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
なお、データメモリ12の複数の記憶領域にデータが1つも記憶されていないデータ系列については、先頭ポインタの値は、特別な値“empty”をとるものとする。
For the data series in which no data is stored in the plurality of storage areas of the
次に、ポインタリストメモリ14と末尾ポインタ表52メモリとの間の対応関係について説明する。
Next, the correspondence between the
図4は、図1に示したポインタリストメモリ14と末尾ポインタ表52との間の対応関係の一例を説明するための図である。
FIG. 4 is a diagram for explaining an example of the correspondence between the
末尾ポインタ表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
なお、データメモリ12の複数の記憶領域にデータが1つも記憶されていないデータ系列については、末尾ポインタの値は、先頭ポインタの値と同様に、特別な値“empty”をとるものとする。
For a data series in which no data is stored in a plurality of storage areas of the
ここで、上述したように、データメモリ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
図5は、図1に示したポインタリストメモリ14とデータメモリ12との間の対応関係の他の例を示す図である。
FIG. 5 is a diagram showing another example of the correspondence relationship between the
図5に示すポインタリストメモリ14では、図2に示したデータ系列毎のポインタリストメモリ14と同様に、ポインタリストメモリ14のアドレスと記憶領域とが対応付けられている。但し、図5では、ポインタメモリのアドレスと、データメモリ12の複数の記憶領域のうちの空き記憶領域とが対応付けられている。そして、空き記憶領域を特定するポインタが連鎖(片方向リスト)を構成している。
In the
以降、空き記憶領域には系列番号0のデータが記憶されているとみなし、系列番号0のデータ系列のことを空き系列という。
Hereinafter, it is assumed that data with
なお、ポインタリストメモリ14のアドレスが、空き系列(系列番号0)に属するデータが記憶された記憶領域に対応付けられることと、いずれかのデータ系列(系列番号1〜)に属するデータが記憶された記憶領域に対応付けられることとは排他的事象である。従って、空き系列のためにポインタリストメモリを別途用意する必要はない。
Note that the address of the
また、図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
先頭番号表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
再出力可能番号表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
以下に、上記のように構成されたデータ入出力装置10の動作について説明する。
Hereinafter, the operation of the data input /
まず、データ入出力装置10においてデータを記憶する動作について説明するが、その前にデータメモリ12が初期化されたときの状態について説明する。
First, the operation of storing data in the data input /
図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
データメモリ12が初期化された直後には、データメモリ12の複数の記憶領域には1つもデータが記憶されていない。つまり、複数の記憶領域の全てに、系列番号0のデータが記憶されているとみなされる。
Immediately after the
従って、制御部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
# 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
また、制御部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
# P_head (0) = 0;
# P_tail (0) = n-1;
Further, the
# for (j = 1; j ++; j <n) P_head (j) = empty;
# for (j = 1; j ++; i <n) P_tail (j) = empty;
Further, the
次に、データ入出力装置10においてデータを記憶する動作について説明する。ここでは、複数のデータが同時に入力されることはないものとする。また、データの長さは一定である必要はないが、ここでは、説明を簡単にするため、データの長さを一定とし、データメモリの複数の記憶領域のそれぞれは、データの長さと同じ長さであるものとする。
Next, an operation for storing data in the data input /
図7は、図1に示したデータ入出力装置10においてデータを記憶する動作を説明するためのフローチャートである。ここでは、図6に示した状態の後、系列番号1のデータ系列に属する最初のデータを受け付けた場合について説明する。
FIG. 7 is a flowchart for explaining an operation of storing data in data input /
まず、入力バッファ13がデータの入力を受け付ける(ステップS1)。
First, the
制御部11は、ステップS1にて受け付けたデータに付与された系列番号jを抽出する(ステップS2)。ここでは、“1”が抽出される。
The
次に、制御部11は、抽出した系列番号jの末尾ポインタの値(P_tail(j))を末尾ポインタ表52から取得する(ステップS3)。ここでは、“empty”が抽出されるため、系列番号1のデータがデータメモリ12に記憶されていないことがわかる。
Next, the
次に、制御部11は、抽出した系列番号jの先頭ポインタの値を、空き系列の先頭ポインタの値に更新する(ステップS4)。ここでは、系列番号1の先頭ポインタの値が、“empty”から“0”に更新される。つまり、空き系列の先頭ポインタが示すポインタリストメモリ14のアドレスに対応する記憶領域が、系列番号1のデータ系列における先頭記憶領域として設定されたこととなる。
Next, the
次に、制御部11は、抽出した系列番号jの末尾ポインタの値を、空き系列の先頭ポインタの値に更新する(ステップS5)。ここでは、系列番号1の末尾ポインタの値が、“empty”から“0”に更新される。
Next, the
次に、制御部11は、空き系列の先頭ポインタの値が示すポインタリストメモリ14のアドレスに記憶された値を抽出する(ステップS6)。ここでは、“1”が抽出される。
Next, the
次に、制御部11は、空き系列の先頭ポインタの値が示すポインタリストメモリ14のアドレスに記憶された値を“END”に更新する(ステップS7)。
Next, the
次に、制御部11は、空き系列の先頭ポインタの値をステップS6にて抽出した値に更新する(ステップS8)。ここでは、空き系列の先頭ポインタの値が、“0”から“1”に変更される。
Next, the
次に、制御部11は、抽出した系列番号jの再出力可能ポインタの値を、当該系列番号jの先頭ポインタの値で更新する(ステップS9)。ここでは、系列番号1の再出力可能ポインタの値が、“null”から“0”に更新される。
Next, the
そして、制御部11は、抽出した系列番号jの再出力可能番号及び先頭番号を更新する(ステップS10)。ここでは、系列番号1の再出力可能番号及び先頭番号が“null”から“1”に更新される。これは、ステップS1にて受け付けたデータが、系列番号1のデータ系列において最初に受け付けられたデータであるからである。
And the
なお、上述したステップ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
図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
図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
図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
図8と図9とを比較すると、系列番号1の先頭ポインタの値は、“0”のまま変化していない。また、図9(b)に示すように、系列番号1の先頭番号は、“1”のまま変化していない。これらは、系列番号1のデータは未だ1つも出力されていないためである。
Comparing FIG. 8 with FIG. 9, the value of the head pointer of
また、図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
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
図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
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 /
図11は、図1に示したデータ入出力装置10において記憶されたデータを出力する動作を説明するためのフローチャートである。
FIG. 11 is a flowchart for explaining an operation of outputting stored data in data input /
制御部11は、出力対象のデータ系列の系列番号jの先頭ポインタの値を抽出する(ステップS21)。ここでは、系列番号1の先頭ポインタの値が抽出される。図10(c)に示すように系列番号1の先頭ポインタの値は“0”である。従って、ここでは、“0”が抽出される。
The
次に、制御部11は、当該系列番号jの先頭番号を抽出する(ステップS22)。ここでは、“1”が抽出される。
Next, the
次に、制御部11は、ステップS21にて抽出した値が示すポインタリストメモリ14のアドレスに対応する記憶領域に記憶されたデータを読み出す(ステップS23)。ここでは、データメモリ12の複数の記憶領域のうち、ポインタリストメモリ14のアドレス0に対応する記憶領域からデータが読み出される。
Next, the
次に、制御部11は、ステップS23にて読み出したデータに、ステップS22にて抽出した先頭番号をシーケンス番号として付与するとともに当該系列番号jを付与する。なお、シーケンス番号は、データの出力先がデータの順序を認識するための番号である。ここでは、シーケンス番号として“1”が付与され、系列番号として“1”が付与される。
Next, the
そして、制御部11は、シーケンス番号及び系列番号jが付与されたデータを出力する(ステップS24)。
And the
次に、制御部11は、当該系列番号jの先頭ポインタの値を、ステップS21にて抽出した値が示すアドレスに記憶された値に更新する(ステップS25)。ここでは、系列番号1の先頭ポインタの値が“0”から“2”に更新される。つまり、ポインタリストメモリ14のアドレス2に対応する記憶領域が、系列番号1のデータ系列における新たな先頭記憶領域として設定されたこととなる。
Next, the
そして、制御部11は、当該系列番号jの先頭番号を更新する(ステップS26)。ここでは、系列番号1の先頭番号が“1”から“2”に更新される。
And the
このように、データを出力した場合には、先頭ポインタの値及び先頭番号は更新されるが、再出力可能ポインタの値及び再出力可能番号は更新されない。 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
図10と図12とを比較すると、系列番号1の先頭ポインタの値及び先頭番号が更新されていることがわかる。
Comparing FIG. 10 with FIG. 12, it can be seen that the value of the head pointer of
次に、データ入出力装置10が、出力したデータの受信確認を受け付けた場合の動作と、受け付けない場合の動作とについて説明する。
Next, an operation when the data input /
図13は、図1に示したデータ入出力装置10の動作を説明するためのフローチャートであり、(a)は受信確認を受け付けた場合の動作を示すフローチャート、(b)は受信確認を受け付けない場合の動作を示すフローチャートである。
FIG. 13 is a flowchart for explaining the operation of the data input /
まず、図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
次に、制御部11は、抽出した系列番号jのデータ系列の再出力可能ポインタの値を抽出する(ステップS42)。ここでは、“0”が抽出される。
Next, the
次に、制御部11は、ステップS42にて抽出した値が示すアドレスに記憶された値を“END”に更新する(ステップS43)。ここでは、ポインタリストメモリ14のアドレス0に記憶された値が“2”から“END”に更新される。
Next, the
次に、制御部11は、空き系列の末尾ポインタの値が示すアドレスに記憶された値を“END”から、ステップS42にて抽出した値に更新する(ステップS44)。ここでは、ポインタリストメモリのアドレス7に記憶された値が“END”から“0”に更新される。
Next, the
次に、制御部11は、空き系列の末尾ポインタの値を、ステップS42にて抽出した値に更新する(ステップS45)。ここでは、空き系列の末尾ポインタの値が“7”から“0”に更新される。
Next, the
次に、制御部11は、抽出した系列番号jの先頭ポインタの値で、当該系列番号jの再出力可能ポインタの値を更新する(ステップS46)。ここでは、系列番号1の再出力可能ポインタの値が“0”から“2”に更新される。
Next, the
そして、制御部11は、抽出した系列番号jの先頭番号で、当該系列番号jの再出力可能番号を更新する(ステップS47)。ここでは、系列番号1の再出力可能番号が“1”から“2”に更新される。
And the
上述した動作により、ポインタリストメモリ14のアドレス0に対応する記憶領域が空き記憶領域として設定されたこととなる。
Through the above-described operation, the storage area corresponding to address 0 of the
なお、上述した動作のうちステップ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
図12と図14とを比較すると、系列番号1の再出力可能ポインタの値及び再出力可能番号が更新されていることがわかる。また、空き系列の末尾ポインタの値が更新されていることもわかる。
Comparing FIG. 12 and FIG. 14, it can be seen that the value of the re-printable pointer of
次に、図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
制御部11は、出力したデータが属するデータ系列の系列番号jの再出力可能ポインタの値で、当該系列番号jの先頭ポインタの値を更新する(ステップS61)。図12の状態において出力されたデータは、系列番号1のデータなので、ここでは、系列番号1の先頭ポインタの値が“2”から“0”に更新される。これにより、ポインタリストメモリ14のアドレス0に対応する記憶領域が、系列番号1のデータ系列における新たな先頭記憶領域として設定されたこととなる。
The
そして、制御部11は、当該系列番号の再出力可能番号で、当該系列番号の先頭番号を更新する(ステップS62)。ここでは、系列番号1の先頭番号が“2”から“1”に変更される。
And the
上述したステップ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
図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
なお、系列番号jのデータ系列において入力バッファ13にてk番目に受け付けられたデータを再出力する場合に、そのデータがデータメモリ12に記憶されているかどうかは、系列番号jの再出力可能番号と先頭番号との間にkが含まれているかどうかを確認すればよい。
Note that, when the kth data received by the
また、図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
制御部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
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
まず、制御部11は、系列番号1の先頭番号を“4”に設定する。
First, the
次に、制御部11は、系列番号1の再出力可能ポインタの値を“P”とし、“P”が示すポインタリストメモリ14のアドレスに記憶された値を新たな“P”とする。これを2回繰り返す。2回繰り返すのは、kとS_ret(j)との差が3であるためである。
Next, the
そして、制御部11は、系列番号1の先頭ポインタの値及び再出力可能ポインタの値を上記の繰り返し後のPとする。また、制御部11は、系列番号1の再出力可能番号を4に設定する。
Then, the
これにより、系列番号1のデータ系列において入力バッファ13にて4番目に受け付けられたデータが記憶された記憶領域が、系列番号1のデータ系列における新たな先頭記憶領域として設定されたこととなる。
As a result, the storage area in which the data received in the
このように本実施形態においては、受け付けられたデータが属するデータ系列のデータがデータメモリ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
そして、複数のデータ系列のうち、出力の対象となるデータ系列において先頭記憶領域として設定された記憶領域からデータが読み出されて出力され、当該記憶領域と対応付けられた記憶領域が当該データ系列における新たな先頭記憶領域として設定される。その後、出力されたデータを受け付けたことを示す受信確認を受け付けた場合、当該データが記憶された記憶領域が空き記憶領域として設定される。 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
また、本発明においては、データ入出力装置内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムをデータ入出力装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをデータ入出力装置に読み込ませ、実行するものであっても良い。データ入出力装置にて読取可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、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
Claims (5)
前記受け付けた複数のデータを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 .
前記制御部は、
前記受信確認を受け付けない場合、当該データが記憶された記憶領域を、当該データが属するデータ系列における新たな前記先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表に記憶される前記先頭番号を当該データ系列の前記再出力可能番号表に記憶される前記再出力可能番号で更新する、データ入出力装置。 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を加算する処理と、
前記出力されたデータを受け付けたことを示す受信確認を受け付けた場合、当該データが記憶された記憶領域を前記空き記憶領域として設定するとともに、当該データ系列の前記再出力可能番号表に記憶される前記再出力可能番号を当該データ系列の前記先頭番号表に記憶される前記先頭番号で更新する処理と、を有するデータ記憶方法。 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 .
前記受信確認を受け付けない場合、当該データが記憶された記憶領域を、当該データが属するデータ系列における新たな前記先頭記憶領域として設定するとともに、当該データ系列の前記先頭番号表に記憶される前記先頭番号を当該データ系列の前記再出力可能番号表に記憶される前記再出力可能番号で更新する処理をさらに有するデータ記憶方法。 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 .
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)
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)
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 |
-
2010
- 2010-05-26 JP JP2010120469A patent/JP5379075B2/en not_active Expired - Fee Related
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 |