JP5491282B2 - データ入出力装置、データ記憶方法及びプログラム - Google Patents
データ入出力装置、データ記憶方法及びプログラム Download PDFInfo
- Publication number
- JP5491282B2 JP5491282B2 JP2010120470A JP2010120470A JP5491282B2 JP 5491282 B2 JP5491282 B2 JP 5491282B2 JP 2010120470 A JP2010120470 A JP 2010120470A JP 2010120470 A JP2010120470 A JP 2010120470A JP 5491282 B2 JP5491282 B2 JP 5491282B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- stored
- memory
- series
- storage area
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
前記受け付けた複数のデータを1つずつ記憶する複数の記憶領域と、
前記複数の記憶領域のうち、前記データが記憶されていない記憶領域を空き記憶領域として設定し、前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されていない場合、前記空き記憶領域として設定された記憶領域の1つに当該データを記憶させるとともに、当該記憶領域を、当該データ系列において最初に受け付けたデータが記憶された先頭記憶領域として設定し、前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されている場合、当該データ系列において当該データの1つ前に受け付けたデータが記憶された記憶領域と、前記空き記憶領域として設定された記憶領域の1つとを対応付け、当該記憶領域に当該データを記憶させる制御部と、を有する。
前記複数の記憶領域のうち、前記データが記憶されていない記憶領域を空き記憶領域として設定する処理と、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されていない場合、前記空き記憶領域として設定された記憶領域の1つに当該データを記憶させるとともに、当該記憶領域を、当該データ系列において最初に受け付けたデータが記憶された先頭記憶領域として設定する処理と、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されている場合、当該データ系列において当該データの1つ前に受け付けたデータが記憶された記憶領域と、前記空き記憶領域として設定された記憶領域の1つとを対応付け、当該記憶領域に当該データを記憶させる処理と、を有する。
前記複数の記憶領域のうち、前記データが記憶されていない記憶領域を空き記憶領域として設定する機能と、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されていない場合、前記空き記憶領域として設定された記憶領域の1つに当該データを記憶させるとともに、当該記憶領域を、当該データ系列において最初に受け付けたデータが記憶された先頭記憶領域として設定する機能と、
前記受け付けたデータと同じデータ系列に属するデータが前記複数の記憶領域に記憶されている場合、当該データ系列において当該データの1つ前に受け付けたデータが記憶された記憶領域と、前記空き記憶領域として設定された記憶領域の1つとを対応付け、当該記憶領域に当該データを記憶させる機能と、を実現させる。
# for(i=0; i++; i<(n-1)) L(i)=i+1;
# L(n-1)=END
上記の擬似コードにおいて、iはポインタリストメモリ14のアドレスを示し、L(i)はポインタリストメモリ14のアドレスiに記憶された値を示す。これらは、以降の説明においても同様である。
# 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;
次に、データ入出力装置10においてデータを記憶する動作について説明する。ここでは、複数のデータが同時に入力されることはないものとする。また、データの長さは一定である必要はないが、ここでは、説明を簡単にするため、データの長さを一定とし、データメモリの複数の記憶領域のそれぞれは、データの長さと同じ長さであるものとする。
次に、制御部11は、空き系列の先頭ポインタの値が示すポインタリストメモリ14のアドレスに記憶された値を“END”に更新する(ステップS8)。
if(not(P_tail(j==empty)) L(P_tail(j))=P_head(0);
P_tail(j)=P_head(0);
swap=L(P_head(0));
L(P_head(0))=END
P_head(0)=swap
そして、制御部11は、データメモリ上の複数の記憶領域のうち、ステップS2にて抽出した系列番号jの末尾ポインタの値が示すアドレスに対応するデータメモリ12の記憶領域に、ステップS1にて受け付けたデータを記憶させる(ステップS10)。
// j=1;
swap=P_head(j); /* swap=0 */
P_head(j)=L(P_head(j)); /* P_head(1)=2 <- 0 */
L(P_head(j))=END; /* L(0)=END <- 2 */
L(P_tail(0))=swap; /* L(7)=0 <- END */
P_tail(0)=swap; /* P_tail(0)=0 */
なお、ここでは、系列番号1のデータを出力した場合について説明したが、他のデータ系列のデータを出力した場合でも、上述したのと同様の動作により、出力されたデータが記憶されていた記憶領域を空き記憶領域として設定することができる。
// i=5;
swap=P_head(i); /* swap=3 */
tmp=L(P_head(i)); /* tmp=END */
if(tmp==END){
P_head(i)=empty;
P_tail(i)=empty;
} /* P_head(5)=END <- END */
else{
P_head(i)=tmp;
L(P_head(i))=END; /* L(P_head(i))=END <- END */
} /* P_head(5)=END <- END */
L(P_tail(0))=swap; /* L(7)=0 <- END */
P_tail(0)=swap; /* P_tail(0)=0 */
図14は、図13に示した状態の後の状態の一例を示す図であり、(a)はポインタリストメモリ14を示す図、(b)は先頭ポインタ表51及び末尾ポインタ表52を示す図である。図14は、図13に示した状態の後、系列番号5のデータが出力されたときの状態を示している。
11 制御部
12 データメモリ
13 入力バッファ
14 ポインタリストメモリ
51 先頭ポインタ表
52 末尾ポインタ表
Claims (5)
- 複数のデータ系列のいずれかに属する複数のデータの入力を1つずつ受け付け、該受け付けたデータを前記複数のデータ系列毎に先入れ先出し方式で出力するデータ入出力装置であって、
前記受け付けた複数のデータを1つずつ記憶する複数の記憶領域からなるデータメモリと、
前記記憶領域を特定するアドレス毎に、当該記憶領域に記憶されたデータと同じデータ系列に属する1つ後に受け付けたデータがある場合は、当該1つ後に受け付けたデータが記憶された記憶領域を特定するアドレスを表す値を対応付けて記憶し、当該1つ後に受け付けたデータがない場合は、当該データ系列におけるデータの終了を表す終了値を対応付けて記憶するポインタリストメモリと、
前記データ系列毎に、当該データ系列に属するデータが前記データメモリに記憶されている場合は、当該データ系列に属する最初に受け付けたデータが記憶された前記記憶領域を特定するアドレスを表す値を対応付けて記憶する先頭ポインタ表と、
前記データ系列毎に、当該データ系列に属するデータが前記データメモリに記憶されている場合は、当該データ系列に属する最後に受け付けたデータが記憶された前記記憶領域を特定するアドレスを表す値を対応付けて記憶する末尾ポインタ表と、
前記データメモリにデータを記憶させる動作、または前記データメモリに記憶されたデータを読み出して出力する動作を制御する制御部と、を有し、
前記制御部は、
前記複数の記憶領域のうち、前記データが記憶されていない記憶領域を空き記憶領域として設定し、
前記データを受け付けた場合に、
前記末尾ポインタ表に基づいて、当該データと同じデータ系列に属するデータが前記データメモリに記憶されているか否かを判断し、
当該データと同じデータ系列に属するデータが前記データメモリに記憶されていなければ、
前記データメモリにおいて、前記空き記憶領域の1つに当該データを記憶させ、
前記ポインタリストメモリにおいて、当該データを記憶させた記憶領域を特定するアドレスに対応付けて、前記終了値を記憶させ、
前記先頭ポインタ表および前記末尾ポインタ表において、当該データ系列に対応付けて、当該データを記憶させた記憶領域を特定するアドレスを表す値を記憶させ、
当該データと同じデータ系列に属するデータが前記データメモリに記憶されていれば、
前記ポインタリストメモリにおいて、当該データ系列に属する当該データの1つ前に受け付けたデータが記憶された記憶領域を特定するアドレスに対応付けて、前記空き記憶領域の1つを特定するアドレスの値を記憶させ、当該空き記憶領域を特定するアドレスに対応付けて、前記終了値を記憶させ、
前記末尾ポインタ表において、当該データ系列に対応付けて、当該空き記憶領域を特定するアドレスを表す値を記憶させ、
前記データメモリにおいて、当該空き記憶領域に当該データを記憶させる、データ入出力装置。 - 請求項1に記載のデータ入出力装置において、
前記制御部は、
前記データを出力する場合に、
前記先頭ポインタ表において、当該データが属するデータ系列に対応付けられた値を抽出し、
前記データメモリにおいて、前記先頭ポインタ表で抽出された値が表すアドレスが特定する前記記憶領域から当該データを読み出して出力するとともに、当該記憶領域を前記空き記憶領域として設定し、
前記ポインタリストメモリにおいて、前記先頭ポインタ表で抽出された値が表すアドレスに対応付けられた値を抽出するとともに、当該アドレスに対応付けられた値を前記終了値に更新し、
前記先頭ポインタ表において、当該データ系列に対応付けられた値を前記ポインタリストメモリで抽出された値に更新する、データ入出力装置。 - 複数の記憶領域からなるデータメモリと、ポインタリストメモリと、先頭ポインタ表と、末尾ポインタ表と、制御部とを有し、複数のデータ系列のいずれかに属する複数のデータの入力を1つずつ受け付け、前記制御部の制御に従って、該受け付けた複数のデータを前記複数の記憶領域に1つずつ記憶させ、該記憶されたデータを前記複数のデータ系列毎に先入れ先出し方式で出力するデータ入出力装置におけるデータ記憶方法であって、
前記ポインタリストメモリが、前記記憶領域を特定するアドレス毎に、当該記憶領域に記憶されたデータと同じデータ系列に属する1つ後に受け付けたデータがある場合は、当該1つ後に受け付けたデータが記憶された記憶領域を特定するアドレスを表す値を対応付けて記憶し、当該1つ後に受け付けたデータがない場合は、当該データ系列におけるデータの終了を表す終了値を対応付けて記憶し、
前記先頭ポインタ表が、前記データ系列毎に、当該データ系列に属するデータが前記データメモリに記憶されている場合は、当該データ系列に属する最初に受け付けたデータが記憶された前記記憶領域を特定するアドレスを表す値を対応付けて記憶し、
前記末尾ポインタ表が、前記データ系列毎に、当該データ系列に属するデータが前記データメモリに記憶されている場合は、当該データ系列に属する最後に受け付けたデータが記憶された前記記憶領域を特定するアドレスを表す値を対応付けて記憶し、
前記制御部が、
前記複数の記憶領域のうち、前記データが記憶されていない記憶領域を空き記憶領域として設定する処理と、
前記データを受け付けた場合に、
前記末尾ポインタ表に基づいて、当該データと同じデータ系列に属するデータが前記データメモリに記憶されているか否かを判断する処理と、
当該データと同じデータ系列に属するデータが前記データメモリに記憶されていなければ、
前記データメモリにおいて、前記空き記憶領域の1つに当該データを記憶させる処理と、
前記ポインタリストメモリにおいて、当該データを記憶させた記憶領域を特定するアドレスに対応付けて、前記終了値を記憶させる処理と、
前記先頭ポインタ表および前記末尾ポインタ表において、当該データ系列に対応付けて、当該データを記憶させた記憶領域を特定するアドレスを表す値を記憶させる処理と、
当該データと同じデータ系列に属するデータが前記データメモリに記憶されていれば、
前記ポインタリストメモリにおいて、当該データ系列に属する当該データの1つ前に受け付けたデータが記憶された記憶領域を特定するアドレスに対応付けて、前記空き記憶領域の1つを特定するアドレスの値を記憶させ、当該空き記憶領域を特定するアドレスに対応付けて、前記終了値を記憶させる処理と、
前記末尾ポインタ表において、当該データ系列に対応付けて、当該空き記憶領域を特定するアドレスを表す値を記憶させる処理と、
前記データメモリにおいて、当該空き記憶領域に当該データを記憶させる処理と、を実行するデータ記憶方法。 - 請求項3に記載のデータ記憶方法において、
前記制御部が、
前記データを出力する場合に、
前記先頭ポインタ表において、当該データが属するデータ系列に対応付けられた値を抽出する処理と、
前記データメモリにおいて、前記先頭ポインタ表で抽出された値が表すアドレスが特定する前記記憶領域から当該データを読み出して出力するとともに、当該記憶領域を前記空き記憶領域として設定する処理と、
前記ポインタリストメモリにおいて、前記先頭ポインタ表で抽出された値が表すアドレスに対応付けられた値を抽出するとともに、当該アドレスに対応付けられた値を前記終了値に更新する処理と、
前記先頭ポインタ表において、当該データ系列に対応付けられた値を前記ポインタリストメモリで抽出された値に更新する処理と、を実行するデータ記憶方法。 - 複数の記憶領域からなるデータメモリと、ポインタリストメモリと、先頭ポインタ表と、末尾ポインタ表と、制御部とを有するコンピュータを、複数のデータ系列のいずれかに属する複数のデータの入力を1つずつ受け付け、前記制御部の制御に従って、該受け付けた複数のデータを前記複数の記憶領域に1つずつ記憶させ、該記憶されたデータを前記複数のデータ系列毎に先入れ先出し方式で出力するデータ入出力装置として機能させるためのプログラムであって、
前記ポインタリストメモリに、前記記憶領域を特定するアドレス毎に、当該記憶領域に記憶されたデータと同じデータ系列に属する1つ後に受け付けたデータがある場合は、当該1つ後に受け付けたデータが記憶された記憶領域を特定するアドレスを表す値を対応付けて記憶させ、当該1つ後に受け付けたデータがない場合は、当該データ系列におけるデータの終了を表す終了値を対応付けて記憶させ、
前記先頭ポインタ表に、前記データ系列毎に、当該データ系列に属するデータが前記データメモリに記憶されている場合は、当該データ系列に属する最初に受け付けたデータが記憶された前記記憶領域を特定するアドレスを表す値を対応付けて記憶させ、
前記末尾ポインタ表に、前記データ系列毎に、当該データ系列に属するデータが前記データメモリに記憶されている場合は、当該データ系列に属する最後に受け付けたデータが記憶された前記記憶領域を特定するアドレスを表す値を対応付けて記憶させ、
前記制御部に、請求項3または請求項4に記載の各処理を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010120470A JP5491282B2 (ja) | 2010-05-26 | 2010-05-26 | データ入出力装置、データ記憶方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010120470A JP5491282B2 (ja) | 2010-05-26 | 2010-05-26 | データ入出力装置、データ記憶方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011248586A JP2011248586A (ja) | 2011-12-08 |
JP5491282B2 true JP5491282B2 (ja) | 2014-05-14 |
Family
ID=45413771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010120470A Expired - Fee Related JP5491282B2 (ja) | 2010-05-26 | 2010-05-26 | データ入出力装置、データ記憶方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5491282B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016163294A1 (ja) * | 2015-04-10 | 2016-10-13 | 日立マクセル株式会社 | 映像投射装置 |
JP7516784B2 (ja) * | 2020-03-06 | 2024-07-17 | 三菱ケミカル株式会社 | 積層フィルム、それを用いたフィルム積層体 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3169511B2 (ja) * | 1994-03-10 | 2001-05-28 | 三菱電機株式会社 | メモリ装置及びメモリ管理方法 |
JP3287529B2 (ja) * | 1995-08-02 | 2002-06-04 | 日本電信電話株式会社 | トラヒックシェイピング装置 |
JPWO2004077299A1 (ja) * | 2003-02-27 | 2006-06-08 | 富士通株式会社 | キャッシュメモリ |
US7802032B2 (en) * | 2006-11-13 | 2010-09-21 | International Business Machines Corporation | Concurrent, non-blocking, lock-free queue and method, apparatus, and computer program product for implementing same |
JP5207374B2 (ja) * | 2008-10-01 | 2013-06-12 | 日本電信電話株式会社 | データ処理装置 |
-
2010
- 2010-05-26 JP JP2010120470A patent/JP5491282B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011248586A (ja) | 2011-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3786789A1 (en) | Data read/write method and device, and circular queue | |
US20150186068A1 (en) | Command queuing using linked list queues | |
JP5842768B2 (ja) | 重複除去装置、重複除去方法及び重複除去プログラム | |
EP3206123B1 (en) | Data caching method and device, and storage medium | |
JP2010027032A (ja) | Fifo装置及びfifoバッファへのデータ格納方法 | |
JP7074839B2 (ja) | パケット処理 | |
CN106502922B (zh) | 一种fifo数据缓存器的数据读写方法及数据缓存器 | |
WO2016070668A1 (zh) | 一种实现数据格式转换的方法、装置及计算机存储介质 | |
WO2016082362A1 (zh) | 数据位宽转换方法、装置和设备 | |
US8812787B2 (en) | Router and many-core system | |
JP2008033721A (ja) | Dma転送制御装置 | |
JP5491282B2 (ja) | データ入出力装置、データ記憶方法及びプログラム | |
KR101481898B1 (ko) | Ssd의 명령어 큐 스케줄링 장치 및 방법 | |
US20020169900A1 (en) | Direct memory access controller, and direct memory access control method | |
JP2010092107A (ja) | 故障情報監視装置及び故障情報監視方法 | |
US20170003890A1 (en) | Device, program, recording medium, and method for extending service life of memory | |
US8473649B2 (en) | Command management device configured to store and manage received commands and storage apparatus with the same | |
CN103746940A (zh) | 一种网络设备以及解包输出报文的方法 | |
JP5379075B2 (ja) | データ入出力装置、データ記憶方法及びプログラム | |
WO2017043140A1 (ja) | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 | |
JP5982148B2 (ja) | 半導体記憶装置 | |
CN111414148A (zh) | 面向高性能处理器的混合型fifo数据存储方法及装置 | |
US10331369B2 (en) | Array control program, array control method, and array control apparatus | |
JP2007140858A (ja) | メモリアクセス方法及びメモリアクセス装置 | |
JPWO2008099472A1 (ja) | データスイッチ方法及び回路 |
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 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131210 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140203 |
|
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: 20140225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5491282 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |