JPWO2004051492A1 - 同一の入力値を圧縮する記憶装置 - Google Patents

同一の入力値を圧縮する記憶装置 Download PDF

Info

Publication number
JPWO2004051492A1
JPWO2004051492A1 JP2004556773A JP2004556773A JPWO2004051492A1 JP WO2004051492 A1 JPWO2004051492 A1 JP WO2004051492A1 JP 2004556773 A JP2004556773 A JP 2004556773A JP 2004556773 A JP2004556773 A JP 2004556773A JP WO2004051492 A1 JPWO2004051492 A1 JP WO2004051492A1
Authority
JP
Japan
Prior art keywords
data
storage device
value
input value
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004556773A
Other languages
English (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2004051492A1 publication Critical patent/JPWO2004051492A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Transfer Systems (AREA)

Abstract

本発明は、入力処理部と、データ記憶装置と、先入れ先出しメモリと、出力処理部によって、同一の入力値を圧縮する記憶装置を提供するものである。入力処理部は、入力値に対して、データ記憶装置内の前記入力値に対応するアドレス位置のデータを調べ、前記データが無効な値の場合、初期値を前記入力値に対応するアドレス位置に記憶し、且つ、前記入力値を先入れ先出しメモリに記憶し、前記データが有効な値の場合、前記データに演算を行って前記入力値に対応するアドレス位置に書き戻す。出力処理部は、入力値が先入れ先出しメモリに記憶されており、且つ、データ記憶装置内の前記入力値に対応するアドレス位置のデータが有効な値の場合、前記入力値を出力し、且つ、前記入力値に対応するアドレス位置のデータを読み出して出力データとして出力する。

Description

本発明は、連続的なデータのシーケンスの処理を行う装置の入力に設けられた記憶装置に関連し、特に、同一の入力値を圧縮して記憶する記憶装置に関連する。
連続的なデータのシーケンスが入力されて、その処理を行う装置においては、その処理を行う装置内に設けられた、入力されたデータの処理を行う回路は、データがその装置に供給される間隔よりも、長い処理実行時間を要する場合が多い。そして、データがその処理を行う装置に供給される間隔と処理実行時間の間の、速度差を吸収するために、FIFO(ファーストインファーストアウト、先入れ先出し)メモリが、処理を行う装置の入力に設けられて、しばしば使用される。
例えば、特開平9−274599号公報には、連続する同一のデータを全てFIFOメモリに書き込む必要をなくし、メモリの有効利用を図る目的のバッファメモリ装置が開示されている。
FIFOメモリが設けられている場合でも、処理を行う装置へ供給されるデータのシーケンスの速度の方が、データの処理を行う回路の処理実行時間よりも速いと、処理を行う装置の入力に設けられたFIFOメモリが一杯となり、データのシーケンスの供給を行っているデータの供給側(入力側)の装置の処理を停止する必要が発生する。
しかし、このデータの供給側の装置の処理の停止が、複数の装置の停止を引き起こすことを防止するために、その複数の装置の各装置に、処理を待たせるための機構を追加する必要が生ずる場合がある。又は、タイムアウトのような所定の一定時間を経過すると、処理を終了してしまう装置があるような場合には、処理の停止期間が、そのタイムアウト時間以上とならないことを保証する必要もある。
また、一方では、データの供給側の装置から送られてくるデータのシーケンスは、送られてくる順序を正確に守って、FIFOメモリから処理を行う装置に出力される必要がない場合もある。更に、データの供給側の装置から送られてくるデータのシーケンスの複数の入力データを、1個にまとめてから、処理を行う装置に対して、FIFOメモリから供給しても、処理を行う装置では、正しく処理を行えるデータ形式である場合も多い。
しかし、従来の技術では、FIFOメモリのサイズを超えて、FIFOメモリにデータが入力された場合には、入力されたデータは破棄されるか、又は、破棄されたデータの再送等の処理を行って、破棄されたデータを再度FIFOメモリに送る機構が必要だった。
そして、FIFOメモリに記憶スペースがないことにより、送られてきたデータを記憶することができない時間が、上述のように、所定の一定時間を超えたり、又は、破棄されたデータの再送回数が所定の閾値を超えた場合には、システムに依存して、システムがダウンする場合もあった。更に、データの供給側の装置から送られてくるデータのシーケンスを処理する装置内で、負荷分散が出来るように、データの種類毎に処理を行う装置が分かれている場合には、従来技術のFIFOメモリを使用すると、同一の入力データが偏ると、その入力データに対する処理しか出来なくなり、負荷分散ができないという問題もある。
本発明は上記の点に鑑みてなされたもので、上記問題点を解決した、同一の入力値を圧縮する記憶装置を提供することを目的とする。
この目的を達成するために、本発明の、同一の入力値を圧縮する記憶装置は、
入力処理部と、
データ記憶装置と、
先入れ先出しメモリと、
出力処理部とを有し、
前記入力処理部は、
入力値に対して、データ記憶装置内の前記入力値に対応するアドレス位置に、有効な値を有するデータが記憶されているかどうかを決定し、
前記データが無効な値である場合には、予め定められた初期値を、前記データとして、前記データ記憶装置内の前記入力値に対応するアドレス位置に記憶し、且つ、前記入力値を、前記先入れ先出しメモリに記憶し、
前記データが無効な値以外の値の場合には、
前記データ記憶装置内の前記入力値に対応する前記データ記憶装置内のアドレス位置に記憶されている前記データに演算を行って、前記データ記憶装置内の前記入力値に対応するアドレス位置に書き戻し、且つ、前記入力値を、前記先入れ先出しメモリに記憶せず、且つ、
前記出力処理部は、
1個以上の前記入力値が、前記先入れ先出しメモリに記憶されており且つ前記入力値に対応するアドレス位置に記憶されている前記データが、無効な値以外の値の場合には、前記先入れ先出しメモリの先頭に記憶されている前記入力値を読み出して出力値としして出力し、且つ、前記データ記憶装置から、前記出力値に対応するアドレス位置から、前記データ記憶装置に記憶されている前記データを読み出して出力データとして出力し、且つ、前記データ記憶装置内の前記出力値に対応するアドレス位置には無効な値を書き戻すことを特徴とする。
本発明によれば、本発明に従った同一の入力値を圧縮する記憶装置は、データの供給側の装置から送られてくるデータのシーケンス内の、同じ種類に属する入力データに対して演算を行って圧縮することにより、有限の記憶領域を有する記憶装置内に、固定の時間で入力データを記憶する処理を行うことが出来る。
これにより、処理を行う装置にデータのシーケンスのをデータの供給側装置においては、その処理を待たせる機構が不要になったり、又は、その処理の停止期間が、タイムアウト時間以上とならないことを保証できる。更に、ある特定の種類のデータに対して、FIFOメモリからデータを出力することが偏ることもなく、常に一定時間内に出力を行うことも出来る。これにより上述のように、入力側の装置から送られてくるデータのシーケンスを処理する装置内で、負荷分散が出来るように、データの種類毎に処理を行う装置が分かれている場合であっても、同一の入力データに対する処理しか出来なくなるという問題も解消され、負荷分散が可能となる。
本発明の他の目的、特徴及び利点は、添付の図面を参照しながら以下の詳細な説明を読むことにより一層明瞭となるであろう。
図1は、本発明に従った同一の入力値を圧縮する記憶装置の原理的な構成を示す図である。
図2は、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置の基本的な構成を示す図である。
図3は、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置のデータ入力処理部の詳細な構成例を示す図である。
図4は、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置のデータ入力処理部の動作のフローチャートを示す図である。
図5は、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置のデータ出力処理部の詳細な構成例を示す図である。
図6は、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置のデータ出力処理部の動作のフローチャートを示す図である。
図7は、本発明に従った第2の実施例の同一の入力値を圧縮する記憶装置の構成を示す図である。
図8は、本発明に従った第3の実施例の同一の入力値を圧縮する記憶装置のデータ出力部の動作のフローチャートを示す図である。
図9は、本発明に従った第4の実施例を示す図である。
図10は、本発明に従った第5の実施例を示す図である。
以下に、本発明を実施するための実施の形態について、図面を用いて説明する。
図1は、本発明に従った同一のアドレス入力値を圧縮する記憶装置の原理的な構成を示す図である。
図1は、本発明に従った同一の入力値を圧縮する記憶装置100、記憶装置100に接続された処理装置110、記憶装置100が接続されたシステムバス150、システムバス150に接続されたCPU(中央処理装置)160とメモリ170を示す。記憶装置100は、入力処理部101、圧縮FIFO(ファーストインファーストアウト、先入れ先出し)メモリ102、データ数管理部103、記憶装置部104及び、出力処理部105を有する。
図1では、例えば、記憶装置100と処理装置110は、コンピュータ内部のシステムバス150に接続されたサブシステムカード上に配置され、そして、システムバス150を経由して、CPU160等から入力されるデータのストリームを、本発明に従って、同一の入力値を圧縮する記憶装置100により記憶し、記憶装置100の出力を、処理装置110に供給して、処理装置110内で処理を行うシステムを示す。本発明においては、システムバス150を経由して、CPU160等から入力されるデータのストリームを構成する入力値は、例えば、処理装置110を構成する各構成要素のアドレス値であり、このアドレス値は、CPU160から処理装置110を構成する構成要素に対する命令でもよい。
例えば、システムバス150に接続された上記カードは、その上に配置されたLSI等の処理装置内のマイクロコントローラ等により、CPU160から受けた命令を、一つずつ処理していくようなシステムである。このような場合には、そのデータの処理速度は、システムバスからの命令の入力値の入力される速度よりも遅い場合が多い。
次に、図1に示す原理的な構成例の動作を説明する、図1においては、入力処理部101は、システムバス150を経由して入力される入力値に対して、データ記憶装置104内の入力値Aに対応するアドレス位置に、有効な値を有するデータが記憶されているかどうかを決定する。そして、その記憶されているデータが、ゼロのような無効な値である場合には、例えば、1のような、予め定められた初期値を、初期データとして、データ記憶装置104内の入力値Aに対応するアドレス位置に記憶し、且つ、その入力値Aを、圧縮FIFO(先入れ先出し)メモリ102に記憶する。一方、データ記憶装置104内の入力値Aに対応するアドレス位置に、無効な値以外の値のデータが記憶されている場合には、入力値Aに対応するデータ記憶装置104内のアドレス位置に記憶されているデータに、例えば、1を加算するというような、演算を行って、データ記憶装置104内の入力値Aに対応するアドレス位置に書き戻し、且つ、この場合には、入力値Aを、圧縮FIFOメモリ102には記憶しない。以上のように動作することにより、圧縮FIFOメモリ102には、入力された入力値が記憶され、データ記憶装置104のこの入力値の示すアドレス位置には、その入力値が何回入力されたかが記憶される。
一方、出力処理部105は、1個以上の入力値Aが、圧縮FIFOメモリ102に記憶されており且つ入力値Aに対応するアドレス位置に記憶されているデータが、無効な値以外の値の場合には、圧縮FIFOメモリ102の先頭に記憶されている入力値Aを読み出してこれを、出力値Fとしして出力する。そして、更に、データ記憶装置104から、その出力値Fに対応するアドレス位置から、データ記憶装置104に記憶されているデータを読み出して出力データGとして出力する。そして、データ記憶装置104内の出力値に対応するアドレス位置には、ゼロのような無効な値を書き戻す。
以上により、本実施例に従った同一の入力値を圧縮する記憶装置は、データ供給側の装置から送られてくるデータのシーケンス内の、同じ種類に属する入力データに対して演算を行って圧縮することにより、有限の記憶領域を有する記憶装置内に、固定の時間で入力データを記憶する処理を行うことができる。
これにより、処理を行う装置にデータのシーケンスの圧縮の装置においては、その処理を待たせる機構が不要になったり、又は、その処理の停止期間が、タイムアウト時間以上とならないことを保証できる。更に、ある特定の種類のデータに対して、圧縮FIFOメモリからデータを出力することが偏ることもなく、常に一定時間内に出力を行うことも出来る。これにより上述のように、入力側の装置から送られてくるデータのシーケンスを処理する装置内で、負荷分散が出来るように、データの種類毎に処理を行う装置が分かれている場合でも、同一の入力データに対する処理しか出来なくなるという問題も解消され、負荷分散が可能となる。
本発明は、上記のような構成例に限らず、LSIチップ間の接続、バスからの入力、通信経路からの入力、LSIチップ内の機能モジュール間の接続等のような、動作速度の異なる機能単位の間で、データの授受を行う場合に適用できる。
次に、本発明の第1の実施例について以下に説明する。
図2は、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置の基本的な構成を示す図であり、図1に示す本発明に従った同一の入力値を圧縮する記憶装置の原理的な構成の中の同一の入力値を圧縮する記憶装置100の詳細な実施例を示す。図2においては、図1と同一の番号を付した構成要素は、同一の構成要素を示す。
図2において、参照番号201は演算部を示す。また、記憶装置部104は、アドレス部202、データ記憶部203及びフラグ記憶部204より構成される。フラグ記憶部は、データ記憶部203に記憶されているデータが、有効か/無効かを示すフラグ又は、ハードウェア内で何れかの形式のエラーが発生したことを示すフラグ等を、データ記憶部203にデータを記憶するときに記憶することができる。
次に、図2の動作の概要を説明する。
図2においては、入力処理部101から、図1に示すシステムバス150に、入力許可120Bが送られると、図1と同様に、入力処理部101には、システムバス150を経由して入力されるアドレス入力Aの入力値120Aが入力される。この入力値120Aに対して、入力処理部101は、データ記憶装置104内の入力値Aに対応するアドレス位置に、有効な値を有するデータが記憶されているかどうかを決定する。例えば、図2に示すように入力値102Aが0x5である場合には、入力処理部101は、0x5を、記憶装置部104のアドレス部202に送り、記憶装置部104のデータ記憶部203に記憶されているデータを読む。読み出されたデータ127は、入力処理部101に入力される。この場合には、記憶装置部104のアドレス0x5に記憶されているデータCは、0x00000002である。これは、入力処理部101が、入力値0x5を既に2回受信したことを示し、有効な値である。
従って、この場合には、データ記憶装置104内のアドレス入力Aである入力値120Aに対応するデータ記憶装置104内のアドレス位置0x5に記憶されているデータ0x00000002に、演算部201内で、例えば、1を加算するというような、演算を行って、その結果であるデータ0x00000003を、データ記憶装置104内のアドレス位置0x5に書き戻す。しかし、入力値0x5は、圧縮FIFOメモリ102内に既に存在するので、圧縮FIFOメモリ102内には、更には記憶しない。入力値0x5が既に、圧縮FIFOメモリ102内に存在するか否かは、圧縮FIFOメモリ102内をモニタすることにより検出できる。
一方、出力処理部105は、1個以上の入力値120Aが、圧縮FIFOメモリ102に記憶されているかどうかを検出する。データ数管理部103により、圧縮FIFOメモリ102内への入力と、圧縮FIFOメモリ102からの出力をモニタすることにより検出できる。また、簡単には、圧縮FIFOメモリ102のリードポインタとライトポインタのずれからも、検出できる。
本実施例では、出力処理部105は、1個以上の入力値120Aが、圧縮FIFOメモリ102に記憶されており且つ入力値120Aに対応するアドレス位置に記憶されているデータが、有効であるので、圧縮FIFOメモリ102の先頭に記憶されている入力値である0x3を読み出してこれを、アドレス出力Fである出力値129Fとしして出力する。そして、更に、データ記憶装置104から、その出力値0x3に対応するアドレス位置から、データ記憶装置104に記憶されているデータ0x00000005を読み出して、データ出力Gとして出力する。そして、データ記憶装置104内の出力値に対応するアドレス位置0x3には無効な値であることを示す値0x00000000を書き戻す。このときに、フラグ記憶部204には、データが無効であることを示すフラグを記憶してもよい。
次に、図3と図4を用いて、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置100のデータ入力部101の構成実施例を説明する。図3は、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置のデータ入力処理部101の詳細な構成例を示す図である。また、図4は、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置のデータ入力処理部101の動作のフローチャートを示す図である。
図3のデータ入力処理部101は、主に、入力管理部301、比較部302、選択部303、演算部304、データ待ち合わせ部307、ライトポインタ管理部308、及び、+1加算部309より構成される。演算部304は、更に、本実施例では、1を加算する加算部305と、選択部306により構成される。入力処理部101は、図4に示されたデータ入力処理部101の動作のフローチャートのように動作する。
図4のフローチャートでは、先ず最初に、ステップS401で、図3の入力イネーブル信号(310)が入力されて、処理が開始する。
次に、ステップS402で、入力処理部101から、システムバス150を介して、入力許可信号(311)が出力される。入力許可信号(311)を用いて、記憶装置100が、その中の入力処理部101やデータ記憶装置104へアクセスしているときは入力を待たせる。例えば、図1のシステムバス150に接続されている場合には、この入力許可信号(311)がディスエーブルのときに、アドレス入力A(312)があると、入力処理部101から図1のCPU160へ、システムバス150を介して、リトライが発生する。ただし、入力処理部101やデータ記憶装置104への書き込み処理にかかる時間よりも、入力間隔が長ければ、入力許可信号による制御は必要ない。
次に、ステップS403で、アドレス入力A(312)が入力されたかどうかが検出される。アドレス入力A(312)が入力された場合には、ステップS404に進み、それ以外の場合には、ステップS402に戻る。
次に、ステップS404で、図3のアドレス入力A(312)とアドレス出力F(313)を比較部302で比較する。アドレス入力A(312)とアドレス出力F(313)が同一の場合には、データ出力G(314)が演算部304の演算の対象となるので、ステップS413に進み、選択部303により、データC(315)のうちからデータ出力G(314)を選択する。そのようでない場合には、ステップS405に進み、記憶装置部104からデータC(315)を読み出し、選択部303により、データC(315)を選択する。
次に、ステップS406に進み、図3のデータ待ち合わせ部307により、読み出されたデータC(315)が有効か否かが判断される。ステップS406の判断では、例えば、読み出されたデータC(315)が、ゼロの場合には無効であり、そして、ゼロ以外の値の場合には有効であると判断してもよい。また、図2の、データ記憶装置104のフラグ記憶部204に記憶されている、データが有効か否かを示すフラグを、データC(315)とともに読み出して判断してもよい。
ステップS406で、データC(315)が有効であると判断された場合には、ステップS407に進み、演算部304内の加算部305により、データC(315)のような選択器303の出力に”1”が加算され、そして、選択部306により、加算結果が選択される。そして、ステップS408で、データ記憶装置104にライトアドレス(316)と前記加算結果であるライトデータ(317)を供給して、データ記憶装置104に、データC(315)に1の加算された新たなデータを書き戻す。そして、データ記憶装置104からのライト完了信号(318)を受けた後に、入力許可信号(311)をイネーブル状態に戻し、処理は、ステップS402に戻る。
一方、ステップS406で、データC(315)が無効であると判断された場合には、ステップS409に進み、演算部304内の選択部306により、”1”を選択し、データ記憶装置104にライトアドレス(316)と”1”であるライトデータ(317)を供給して、データ記憶装置104に、有効なデータを書き戻す。
次に、データ記憶装置104からのライト終了信号(318)を受けた後に、ステップS410に進み、圧縮FIFOメモリ102への、ライトアドレス(319)を発生し、ライトデータ(320)を圧縮FIFOメモリ102に書き込む。
次に、ステップS411で、ライトポインタ管理部308により、加算部309を制御してライトポインタを1だけ増加させる。
そして、次に、ステップS412で、ライトポインタ管理部308により、データ保持数を1増加させる指示(321)を、図2のデータ数管理部103に出力し、圧縮FIFOメモリ102内に記憶されているデータ数が1増加したことを記憶させる。そして、最後に、圧縮FIFOメモリ102からのライト完了信号(322)を受けた後に、入力許可信号(311)をイネーブル状態に戻し、処理は、ステップS402に戻る。
次に、図5と図6を用いて、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置100のデータ出力処理部105の実施例を説明する。図5は、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置の出力処理部105の詳細な実施例を示す図である。また、図6は、本発明に従った第1の実施例の同一の入力値を圧縮する記憶装置の出力処理部105の動作のフローチャートを示す図である。
図5の出力処理部105は、主に、データ保持数が正か否かを判断する判断ブロック501、リードポインタ管理部502、+1を加算する加算部503、出力データ準備完了制御部504及び選択部505より構成される。出力処理部105は、図6に示されたデータ出力処理部105の動作のフローチャートのように動作する。
図6のフローチャートでは、先ず最初に、ステップS601で、図1の処理装置110からの読み出し信号(509)が入力されて、処理が開始する。
次に、ステップS602では、判断ブロック501により、図2のデータ数管理部103より供給される、データ保持数(510)が、正であるか否かが判断される。データ保持数(510)が正である場合には、処理はステップS603に進む。データ保持数(510)が正でない場合には、データ保持数(510)が正となるまで、ステップS602を繰返す。
次に、ステップS603で、リードポインタ管理部502により、圧縮FIFOメモリ102にアドレス信号(511)が供給され、圧縮FIFOメモリ102により、アドレスデータE(512)が供給される。
次に、ステップS604で、圧縮FIFOメモリ102により供給されたアドレスデータE(512)を、アドレス出力F(513)として、図1の処理装置110に出力し、同時に、データ記憶装置104のリードアドレス出力(514)として、データ記憶装置104に供給し、データ記憶装置104からそのアドレス出力(514)に記憶されているデータ(515)を受信する。
次に、ステップS605で、データ記憶装置104のリードアドレス出力(514)の記憶内容に無効値を書き込んで、無効化する。このときには、データ記憶装置104内のフラグ記憶部204に無効であることを示すフラグを書き込むこともできる。
次に、ステップS606で、リードポインタ管理部502は、加算部503を使用して、圧縮FIFOメモリ102のリードポインタを1だけ増加させる。
次に、ステップS607で、出力データ準備完了制御部504により、図1の処理装置110に、データ出力Gの準備が完了したことを示す通知(516)を送る。
次に、ステップS608では、出力データ準備完了制御部504により、図1の処理装置110が、要求信号(517)を出力したかどうかが検査される。図1の処理装置110が、要求信号(517)を出力している場合には、ステップS609に進み、要求信号(517)を出力していない場合には、ステップS610へ進む。
次に、ステップS609では、選択器505を制御して、データ記憶装置104から読み出されたデータ(515)を、データ出力G(520)として、図1の処理装置110に出力する。
ステップS610では、入力処理部101に、システムバス150から、現在処理装置110に出力使用としている、アドレス出力F(513)と同一のアドレス入力A(312)があったか、どうかが検査される。同一のアドレス入力A(312)がない場合には、ステップS607に進む。同一のアドレス入力A(312)があった場合には、ステップS612に進み、図3の比較器302より供給される比較信号518により、選択器505を切り換えて、図3の出力処理のデータ置き換えのための読み出しを待っていたデータに入力を反映した値を有するデータ(519)を選択して、データ出力G(520)として、図1の処理装置110に出力する。そして、ステップS612の終了後に、ステップS607に戻る。
ステップS609では、リードポインタ管理部502が、圧縮FIFOメモリ102からデータを1つ読み出したので、図2のデータ数管理部103に、データ保持数を1つ減ずる指示(521)を送る。
次に、本発明の第2の実施例を説明する。図7は、本発明に従った第2の実施例の同一の入力値を圧縮する記憶装置の構成を示す図である。図7において、図2と同一番号を付した構成要素は同一の構成要素を示す。図2においては、入力処理部101の演算部201が、外部より制御する構成ではなく、例えば、1を加算するというような、予め定められた所定の演算を行う構成である。しかし、本実施例においては、図2に示す実施例と異なり、この演算部201の行う演算を、外部から入力するデータ入力H(120C)を用いて演算を行う構成とした。即ち、図7の実施例は、図2の実施例と同一の動作を行い、演算に際してのみ、外部から入力するデータ入力H(120C)を用いて演算を行う構成とした。
また、本実施例では、演算部201の行う演算を、加算のような予め定められた演算ではなく、データCに対して行う演算を予め定めずに、アドレス入力A、データC、外部から入力するデータ入力H(120C)、または、その組み合わせ、または外部から演算内容を設定することにより決定することができる。これにより、アドレス入力Aの全てのアドレス空間で同一のデータ操作を行わない場合や或は、処理の途中で演算内容を変えることができる。
また、図7の実施例では、ある特定のアドレス入力Aまたはあるアドレス入力Aに対する特定のデータ入力Hが入力された場合等に、対応するデータCを無効化するようにしてもよい。これは、圧縮FIFOメモリ102には、既にそのアドレス入力Aが書き込まれているので、圧縮FIFOメモリ102からその情報を消去することは難しいので、データ記憶装置104内に記憶されたデータ自体に無効であるという情報を保持させる。そして、圧縮FIFOメモリ102から、無効なデータの記憶されたアドレス入力Aが読み出された場合には、処理装置110に、このデータが無効であるという情報を付加して供給する。または、その情報を、処理装置110には供給せずに破棄して、次のデータの読み出しに移る。これは、処理装置110が、期待したタイミング以外で、処理装置110に記憶装置100からデータが供給された場合ときには、エラーとするようになっている場合において、まだデータ記憶装置104内に保持されているデータが供給されたときに、処理装置110がエラーとして扱わないように、することを保証するための機構である。
データ記憶装置104の無効化されたデータを記憶しているアドレスへ、データが入力された場合には、入力処理部101の処理は、データが既にデータ記憶装置104に記憶されている場合の処理に従う。しかし、演算は行わずに、入力データを、そのままデータ記憶装置104に書き戻す(データの扱いについてはデータ記憶装置104にデータが書かれていない場合の操作と同じとなる)。
次に、本発明の第3の実施例について説明する。図8は、本発明に従った第3の実施例の同一の入力値を圧縮する記憶装置の出力処理部105の動作のフローチャートを示す図である。
本実施例は、FIFOメモリのアドレス出力Fに対応するデータ出力Gを行わずに、アドレス出力Fを、データ記憶装置104に記憶された値を1づつ減少させながら、その回数分だけ行う構成である。これは、複数のアドレス入力Aが記憶されているが、しかし図1の処理装置110側では1個ずつしか処理を行えない場合に有効である。
図8のステップS801からS804の動作内容は、それぞれ図6のステップS601からS604と同様であり、図8のステップS814からS817の動作内容は、それぞれ図6のステップS605からS608と同様であり、そして、図8のステップS811からS813の動作内容は、それぞれ図6のステップS607からS609と同様である。
図8のフローチャートでは、ステップS801からS804の各動作は、それぞれ図6のステップS601からS604の処理と同様である。
次に、ステップS805で、データ記憶装置104内に記憶されたデータが、2以上であるかどうかが検査される。データ記憶装置104内に記憶されたデータが、2以上である場合には、ステップS806に進み、そして、2以上でない場合には、ステップS814に進む。
ステップS814からステップS817の各動作は、図6のステップS605からS608と同様である。
ステップS806では、データ記憶装置104内に記憶されたデータ値を”1”だけ減じる。そして、ステップS807で、データ記憶装置104内に、”1”だけ減じられたデータ値を書き戻す。
次に、ステップS808で、圧縮FIFOメモリ102のライトポインタの位置へ、アドレス出力Fを書き込む。
次に、ステップS809で、圧縮FIFOメモリ102のライトポインタを更新し、そして、続いてステップS810で、リードポインタを更新する。
次のステップS811からS813の各動作は、図6のそれぞれ図6のステップS607からS609と同様である。
本実施例では、ライトポインタの更新が入力処理部101と出力処理部105の両方から行う必要があるため、一時には、何れか一方のみしか行わないようにする排他処理を設ける。しかし、データ記憶装置104への書き戻しが発生した場合(データが2以上の場合)には、データを保持しているエントリ数は変化しないため、データ保持数は変化しない。
次に、本発明の第4の実施例を説明する。図9は、本発明に従った第4の実施例を示す図である。本実施例は、図7に示す、第2に実施例の演算が期待値と異なる結果が得られた場合の実施例である。
例えば、図7の入力処理部101中の演算部201の演算結果が、データC、外部から入力するデータ入力H(120C)、アドレス入力A、又は、その組み合わせから期待される値にならない場合には、そのエラー情報を、フラグ記憶部204に、保持することができる。また、データ記憶装置104のデータ記憶部203には演算結果のままのデータを記憶するする。一旦このような状態になった後に、更に、行った演算で期待する結果に戻る可能性もあるため、このエラー情報は保持しつづける。データがある所定の値以上にならないことが期待される場合や、アドレス入力Aが記録されない等の異常が無いことを検出することができる。
このフラグ記憶部204に記憶された情報は、記憶装置100からのデータの出力時に、データの一部または、データとは別の情報として、処理装置110に供給される。
この例を、図9に示す。例えば、あるアドレス入力に対するデータHについて,保持しているデータCとの間に次の関係、
データC[15:0]+データH[31:16]=データH[15:0] (1)
が成り立つことが期待されているとする。そして、このときに、データCとして保持するデータは次のように得られる。
新データC[31:16]=データC[31:16]+データH[31:16] (2)
新データC[15:0]=データH[15:0] (3)
ただし,データCが無効である場合はチェックは行われず,データCは0x00000000であったとして扱われる。ここで、[31:16]は、データがビット0から31ビットを有するとしたときの、データの第31ビットから16ビット目のデータに対応する。ここで、ビット0が最小桁ビット(LSB)である
図9に示す例では、(A)から(C)の場合には上記関係が成立するが、しかし、(D)の場合には、上述の式(1)の条件を満足しない。従って、エラー情報eを、フラグ記憶部204に保持し、そのデータがデータ記憶装置104から読み出される時に同時に読み出すことにより、処理装置110は、データが誤りであることがわかり、誤った処理を防ぐことができる。
また、データ記憶装置104からの読み出しの際に、修復不能なハードウェア的なエラーが発生した場合には、そのエラー情報をデータ記憶装置104内に合わせて保持することも可能である。演算自体は、間違っていると考えられるデータに対して実行し、そして演算結果をデータ記憶装置104内に保持する。一旦、このような状態になったあとは、このエラー情報は保持しつづける。この結果、ハードウェアのエラー発生時に、出来る限りその影響を少なくすることができる。ハードウェアのエラーが起こった場合には、処理装置110にデータ記憶装置104に保持されているエラーを通知して、エラー範囲をそのアドレス入力Aを使用しているものだけに限定することが可能となる。このデータ記憶装置104に記憶されているエラー情報は、データ記憶装置104から出力する際に、データの一部またはデータとは別の情報として、処理装置110に供給される。
次に、本発明の第5の実施例について説明する。図10は、本発明に従った第5の実施例を示す図である。図10は、図2に示す実施例のうち、入力処理部101データ記憶装置104及び出力処理部105の部分及び、そして、更にキャッシュメモリ1001を示す。本実施例では、キャッシュメモリ1001は、データ記憶装置104の出力と、入力処理部101に接続されておりそして、その両方からデータが入力され、そして、出力処理部105にデータを出力する。
本実施例は、例えば、広いアドレス空間のアドレス入力Aを記憶する等の場合には、データ記憶装置104として、アクセスレイテンシの大きなメモリを使用する場合がある。この場合には、よく使用されることが期待されるアドレス入力Aに対して記憶されるデータは、動作速度の速いメモリを使用したり、又は、最初の数回のアドレス入力Aは、データ記憶装置104内にその回数を書き込まずに、動作速度の速いメモリであるキャッシュメモリ1001に保持する。そして、再度のアドレス入力Aがあったときのデータ加算時には、データ記憶装置104とキャッシュメモリ1001のどちらに保持しているかを判断して、入力処理部101が入力を行う。これにより記憶装置へのアクセスレイテンシを小さく見えるようにすることができる。

Claims (13)

  1. 入力処理部と、
    データ記憶装置と、
    先入れ先出しメモリと、
    出力処理部とを有し、
    前記入力処理部は、
    入力値に対して、データ記憶装置内の前記入力値に対応するアドレス位置に、有効な値を有するデータが記憶されているかどうかを決定し、
    前記データが無効な値である場合には、予め定められた初期値を、前記データとして、前記データ記憶装置内の前記入力値に対応するアドレス位置に記憶し、且つ、前記入力値を、前記先入れ先出しメモリに記憶し、
    前記データが無効な値以外の値の場合には、
    前記データ記憶装置内の前記入力値に対応する前記データ記憶装置内のアドレス位置に記憶されている前記データに演算を行った結果を、前記データ記憶装置内の前記入力値に対応するアドレス位置に書き戻し、且つ、前記入力値を、前記先入れ先出しメモリに記憶せず、且つ、
    前記出力処理部は、
    1個以上の前記入力値が、前記先入れ先出しメモリに記憶されており且つ前記入力値に対応するアドレス位置に記憶されている前記データが、無効な値以外の値の場合には、前記先入れ先出しメモリの先頭に記憶されている前記入力値を読み出して出力値としして出力し、且つ、前記データ記憶装置から、前記出力値に対応するアドレス位置から、前記データ記憶装置に記憶されている前記データを読み出して出力データとして出力し、その後に、前記データ記憶装置内の前記出力値に対応するアドレス位置には無効な値を書き戻すことを特徴とする、同一の入力値を圧縮する記憶装置。
  2. 前記演算は、1を加算することである、請求項1に記載の同一の入力値を圧縮する記憶装置。
  3. 前記演算は、前記データ、前記入力値又は、前記データと前記入力値の組合せに従って、決定されることを特徴とする、請求項1に記載の同一の入力値を圧縮する記憶装置。
  4. 前記入力処理部は、
    外部より入力される演算値を保持し、
    入力値に対して、データ記憶装置内の前記入力値に対応するアドレス位置に、有効な値を有するデータが記憶されているかどうかを決定し、
    前記データが無効な値である場合には、予め定められた初期値を、前記データとして、前記データ記憶装置内の前記入力値に対応するアドレス位置に記憶し、且つ、前記入力値を、前記先入れ先出しメモリに記憶し、
    前記データが無効な値以外の値の場合には、
    前記データ記憶装置内の前記入力値に対応するアドレス位置に記憶されている前記データに、前記演算値を用いて演算した結果を、前記データ記憶装置内の前記入力値に対応するアドレス位置に書き戻し、且つ、前記入力値を、前記先入れ先出しメモリに記憶しないことを特徴とする、請求項1に記載の同一の入力値を圧縮する記憶装置。
  5. 前記演算は、前記演算値を加算することである、請求項4に記載の同一の入力値を圧縮する記憶装置。
  6. 前記演算は、前記データ、前記入力値、前記演算値、又は、前記データと前記入力値と前記演算値の組合せに従って、決定されることを特徴とする、請求項4に記載の同一の入力値を圧縮する記憶装置。
  7. 前記演算を、外部からの設定により決定する手段を更に有する請求項4に記載の同一の入力値を圧縮する記憶装置。。
  8. 前記出力処理部は、
    1個以上の前記入力値が、前記先入れ先出しメモリに記憶されており且つ前記入力値に対応する、前記データ記憶装置内のアドレス位置に記憶されている前記データが、無効な値以外の値の場合には、前記先入れ先出しメモリの先頭に記憶されている前記入力値を読み出して出力値として出力し、且つ、前記データ記憶装置から、前記出力値に対応するアドレス位置から、前記データ記憶装置に記憶されている前記データを読み出して、前記データから1を減算した結果の新たなデータを作成し、
    前記新たなデータが、前記予め定められた初期値である場合には、前記無効な値を、前記データ記憶装置内の前記出力値に対応するアドレス位置に書き込み、
    前記新たなデータが、前記予め定められた初期値以外の値ある場合には、前記新たなデータを、前記データ記憶装置内の前記出力値に対応するアドレス位置に書き戻すことを特徴とする、請求項1に記載の同一の入力値を圧縮する記憶装置。
  9. 前記データが有効であるか又は無効かであるかを示すフラグを、前記データ記憶装置内に記憶し、且つ、前記データが無効な値であるか又は無効な値以外の値であるかは、前記フラグの値に基づいて決定することを特徴とする、請求項1乃至8のうちいずれか一項に記載の同一の入力値を圧縮する記憶装置。
  10. 前記演算の結果が予め定められた条件を満たす場合には、前記データ記憶装置に記憶する前記データにフラグを付加し、且つ、前記出力データにも前記フラグを追加することを特徴とする、請求項1乃至9のうちいずれか一項に記載の同一の入力値を圧縮する記憶装置。
  11. 前記出力データを前記データ記憶装置から読み出す前に、前記データ記憶装置内に保持している前記データを無効化し、前記データが無効であることを示すフラグも前記データ記憶装置に記憶し、且つ、前記フラグを前記出力データとともに出力ことを特徴とする、請求項1乃至9のうちいずれか一項に記載の同一の入力値を圧縮する記憶装置。
  12. 前記出力データを前記データ記憶装置から読み出したときに、前記同一の入力値を圧縮する記憶装置内の何れかのハードウェアのエラーが発生した場合には、ハードウェアのエラーが発生したことを示すフラグも前記データ記憶装置に記憶し、且つ、前記フラグを前記出力データと共に出力ことを特徴とする、請求項1乃至9のうちいずれか一項に記載の同一の入力値を圧縮する記憶装置。
  13. 前記データ及び前記フラグを保持する前記データ記憶装置を、応答速度の異なる複数のデータ記憶装置から構成することを特徴とする請求項1乃至12のうちいずれか一項に記載の同一の入力値を圧縮する記憶装置。
JP2004556773A 2002-11-29 2002-11-29 同一の入力値を圧縮する記憶装置 Pending JPWO2004051492A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/012526 WO2004051492A1 (ja) 2002-11-29 2002-11-29 同一の入力値を圧縮する記憶装置

Publications (1)

Publication Number Publication Date
JPWO2004051492A1 true JPWO2004051492A1 (ja) 2006-04-06

Family

ID=32448967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004556773A Pending JPWO2004051492A1 (ja) 2002-11-29 2002-11-29 同一の入力値を圧縮する記憶装置

Country Status (3)

Country Link
US (1) US8019952B2 (ja)
JP (1) JPWO2004051492A1 (ja)
WO (1) WO2004051492A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4654650B2 (ja) * 2004-10-13 2011-03-23 日本電気株式会社 無線伝送システム、無線伝送装置及びそれに用いる無線伝送方法
US20080172238A1 (en) * 2007-01-12 2008-07-17 Yosuke Muraki Electronic system with run-time information

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57187752A (en) * 1981-05-13 1982-11-18 Nec Corp Data gathering device
JPS62241022A (ja) 1986-04-12 1987-10-21 Nec Corp 集合型入出力装置の媒体交換制御方法
CA1286420C (en) * 1987-10-14 1991-07-16 Youssef Alfred Geadah Fifo buffer controller
JPH01196652A (ja) * 1988-02-01 1989-08-08 Mitsubishi Electric Corp 伝送方式
GB8815978D0 (en) * 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
US5532694A (en) * 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
US5388074A (en) * 1992-12-17 1995-02-07 Vlsi Technology, Inc. FIFO memory using single output register
US5491659A (en) * 1995-01-13 1996-02-13 Hughes Aircraft Corp. Hazard-free circuitry for determining full and empty conditions in first-in-first-out memory
US5594702A (en) * 1995-06-28 1997-01-14 National Semiconductor Corporation Multi-first-in-first-out memory circuit
JPH09274599A (ja) * 1996-04-08 1997-10-21 Ricoh Co Ltd バッファメモリ装置
US6553448B1 (en) * 2001-03-01 2003-04-22 3Com Corporation Method for unit distance encoding of asynchronous pointers for non-power-of-two sized buffers
US7010645B2 (en) * 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data
US7174432B2 (en) * 2003-08-19 2007-02-06 Nvidia Corporation Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture

Also Published As

Publication number Publication date
US8019952B2 (en) 2011-09-13
US20050111292A1 (en) 2005-05-26
WO2004051492A1 (ja) 2004-06-17

Similar Documents

Publication Publication Date Title
KR100708128B1 (ko) 낸드 플래시 메모리 제어 장치 및 방법
KR100252570B1 (ko) 축소된요구블로킹을갖는캐시메모리
EP0203993B1 (en) Queue administration method and apparatus
US8112602B2 (en) Storage controller for handling data stream and method thereof
JPH0374986B2 (ja)
CN108733594B (zh) 存储器控制器与数据储存装置
JPH05127992A (ja) 2レベルのキヤツシユ・メモリ内の干渉を低減する装置と方法
US5966728A (en) Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
US20040186931A1 (en) Transferring data using direct memory access
JP2695017B2 (ja) データ転送方式
US7143206B2 (en) Method for controlling data transfer unit having channel control unit, storage device control unit, and DMA processor
JPWO2004051492A1 (ja) 同一の入力値を圧縮する記憶装置
US7451254B2 (en) System and method for adaptive buffer allocation in a memory device interface
JPH09134314A (ja) メモリアクセス制御装置
US8706974B2 (en) Snoop request management in a data processing system
JP3162459B2 (ja) データ処理装置
JP2005148904A (ja) リングバッファ制御装置およびリングバッファ制御方法
TW201837725A (zh) 記憶體控制器與資料儲存裝置
KR100348808B1 (ko) 메모리간의 데이타 전송장치
JP4030951B2 (ja) データ二重化装置及び方法
TWI720565B (zh) 記憶體控制器與資料儲存裝置
JP3500561B2 (ja) 共有データバッファ
JP2594611B2 (ja) Dma転送制御装置
JPH06301600A (ja) 記憶装置
KR100454652B1 (ko) 하이파이버스시스템의주기억장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081216