JPWO2010122613A1 - Fifoバッファ装置 - Google Patents

Fifoバッファ装置 Download PDF

Info

Publication number
JPWO2010122613A1
JPWO2010122613A1 JP2011510097A JP2011510097A JPWO2010122613A1 JP WO2010122613 A1 JPWO2010122613 A1 JP WO2010122613A1 JP 2011510097 A JP2011510097 A JP 2011510097A JP 2011510097 A JP2011510097 A JP 2011510097A JP WO2010122613 A1 JPWO2010122613 A1 JP WO2010122613A1
Authority
JP
Japan
Prior art keywords
fifo buffer
data
read
output
write
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.)
Withdrawn
Application number
JP2011510097A
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2010122613A1 publication Critical patent/JPWO2010122613A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/108Reading or writing the data blockwise, e.g. using an extra end-of-block pointer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

FIFOバッファ装置として、データ転送速度を低下させることなく、巻き戻し機能を実現する。入力データは、書き込みFIFOバッファ(11)に書き込まれるとともに、パケット化FIFOバッファ(13)によってパケット化されて、退避用メモリ(20)に形成されたバッファ用記憶領域(21)に書き込まれる。マルチプレクサ(15)は、第1モードでは書き込みFIFOバッファ(11)の出力を選択出力する一方、第2モードではバッファ用記憶領域(21)から読み出されたパケットデータを選択する。読み出しFIFOバッファ(12)がフル状態になるまでは、第1モードが選択される。

Description

本発明は、入力されたデータを一旦格納し、入力順に従って出力するFIFOバッファ装置に関するものである。
従来のFIFOバッファ装置の一例として、特許文献1には、読み出し側バッファに空き容量がなくなった場合にデータ退避を行うために、外部メモリにオーバーフロー領域を設けた構成が開示されている。
特表2002−513530号公報(図4) 特許第3810449号公報 特許第3560056号公報
最近のアプリケーションでは、FIFOバッファ装置に対して、巻き戻し機能を実現することが求められている。巻き戻しとは、データの再読み出し、すなわち、すでに出力された過去のデータを再度FIFOバッファ装置から読み出すことである。
ところが、特許文献1の構成では、オーバーフロー領域に退避されたデータについては外部メモリから再読み出しすることは可能であるが、退避されずに直接出力されたデータについては、データ履歴が外部メモリに残っていないため、再読み出しをすることはできない。
したがって、FIFOバッファ装置に対して巻き戻し機能を持たせるためには、再読み出しに備えて、全てのデータを外部メモリに退避させる必要がある。ただし、全てのデータについて、外部メモリを経由してから出力する構成とした場合、外部メモリとのデータアクセスに時間がかかるため、データ転送速度が低下することになり、好ましくない。
本発明は、FIFOバッファ装置として、データ転送速度を低下させることなく、巻き戻し機能を実現することを目的とする。
本発明の一態様は、入力されたデータを一旦格納し、入力順に従って出力するFIFOバッファ装置として、入力データを書き込むための書き込みFIFOバッファと、出力データを読み出すための読み出しFIFOバッファと、退避用メモリに形成されたバッファ用記憶領域を管理し、前記バッファ用記憶領域へのパケットデータの書き込み、および、前記バッファ用記憶領域からのパケットデータの読み出しを行うメモリインタフェースと、前記書き込みFIFOバッファと共通に前記入力データを受け、所定のサイズにパケット化し、パケットデータとして前記メモリインタフェースに出力するパケット化FIFOバッファと、前記書き込みFIFOバッファの出力と前記メモリインタフェースから出力されたパケットデータとのうちいずれか一方を選択し、前記読み出しFIFOバッファに出力するマルチプレクサと、当該FIFOバッファ装置を制御する制御部とを備え、前記制御部は、前記マルチプレクサの選択動作を制御し、前記書き込みFIFOバッファの出力が前記読み出しFIFOバッファに出力される第1モードと、前記メモリインタフェースから出力されたパケットデータが前記読み出しFIFOバッファに出力される第2モードとを切り替えるものであり、前記第1モードにおいて、前記読み出しFIFOバッファがフル状態になったとき、前記第2モードに切り替え、前記第2モードにおいて、前記バッファ用記憶領域がエンプティ状態になったとき、前記第1モードに切り替えるものである。
この態様によると、入力データは、書き込みFIFOバッファに書き込まれるとともに、パケット化FIFOバッファによってパケット化されて、退避用メモリに形成されたバッファ用記憶領域に書き込まれる。すなわち、書き込みFIFOバッファから読み出しFIFOバッファに直接データ出力される第1モードにおいても、入力データは、退避用メモリのバッファ用記憶領域に退避されることになる。このため、巻き戻し要求があったとき、退避用メモリからデータを再読み出しすることが可能である。しかも、読み出しFIFOバッファがフル状態になるまでは、第1モードにおいて、書き込みFIFOバッファから読み出しFIFOバッファに直接データ出力されるので、データ退避に起因したデータ転送速度の低下は生じない。
本発明によると、退避用メモリを介さずにそのまま出力される入力データについても、データ転送速度の低下を招くことなく、退避用メモリのバッファ用記憶領域に退避され、再読み出しが可能になる。したがって、巻き戻し機能を有し、かつ、データ転送速度が高いFIFOバッファ装置を実現可能となる。
実施形態に係るFIFOバッファ装置の構成を示すブロック図である。 バッファ用記憶領域の管理方法を説明するための図である。 バッファ用記憶領域において履歴データの破棄を行う方法を説明するための図である。 他の実施形態に係るFIFOバッファ装置の構成を示すブロック図である。
以下、本発明の実施形態を図面に基づいて詳細に説明する。
図1は実施形態に係るFIFOバッファ装置の構成を示すブロック図である。図1に示すFIFOバッファ装置10は、入力されたデータを一旦格納し、入力順に従って出力するものであり、書き込みFIFOバッファ11と、読み出しFIFOバッファ12と、パケット化FIFOバッファ13と、メモリインタフェース14と、マルチプレクサ15と、FIFOバッファ装置10を制御する制御部16とを備えている。そして、このFIFOバッファ装置10は、退避用メモリとしての外部メモリ20に、入力データをパケットデータの形式で退避可能に構成されている。
書き込みFIFOバッファ11は、書き込みマスターから送られてきたFIFOバッファ装置10の入力データを書き込むためのものであり、所定の容量を有し、書き込まれた入力データを書き込まれた順に出力する。読み出しFIFOバッファ12は、読み出しマスタに送るFIFOバッファ装置10の出力データを読み出すためのものであり、所定の容量を有し、書き込まれたデータを書き込まれた順に出力データとして出力する。メモリインタフェース14は、外部メモリ20に形成されたバッファ用記憶領域21を管理し、このバッファ用記憶領域21へのパケットデータの書き込み、および、バッファ用記憶領域21からのパケットデータの読み出しを行う。
パケット化FIFOバッファ13は、書き込みFIFOバッファ11と共通に、FIFOバッファ装置10の入力データを受ける。すなわち、パケット化FIFOバッファ13には、書き込みFIFOバッファ11と同じデータが書き込まれる。そして、パケット化FIFOバッファ13は、書き込まれたデータを所定のパケットサイズにパケット化し、得られたパケットデータをメモリインタフェース14に出力する。メモリインタフェース14は、パケット化FIFOバッファ13から送られてきたパケットデータを外部メモリ20のバッファ用記憶領域21に書き込む。また、メモリインタフェース14は、外部メモリ20のバッファ用記憶領域21からパケットデータを読み出し、マルチプレクサ15に出力する。
マルチプレクサ15は、書き込みFIFOバッファ11の出力と、メモリインタフェース14から出力されたパケットデータとのうちいずれか一方を選択し、読み出しFIFOバッファ12に出力する。このマルチプレクサ15の選択動作は、制御部16によって制御される。すなわち、制御部16は、書き込みFIFOバッファ11の出力がマルチプレクサ15を介して読み出しFIFOバッファ12に出力される第1モードと、メモリインタフェース14から出力されたパケットデータがマルチプレクサ15を介して読み出しFIFOバッファ12に出力される第2モードとを、切り替える。第1モードのときは、FIFOバッファ装置10に入力されたデータは、書き込みFIFOバッファ11および読み出しFIFOバッファ12を介して、そのまま出力される。一方、第2モードのときは、FIFOバッファ装置10に入力されたデータは、パケット化されてバッファ用記憶領域21に一旦記憶されてから、読み出しFIFOバッファ12を介して、出力される。
制御部16は、第1モードにおいて、読み出しFIFOバッファ12がフル状態になったとき、第2モードに切り替える。すなわち、入力データを書き込みFIFOバッファ11からそのまま出力している状態で、読み出しFIFOバッファ12があふれそうになったときには、書き込みFIFOバッファ11からの出力を停止する。一方、第2モードにおいて、バッファ用記憶領域21がエンプティ状態になったとき、第1モードに切り替える。すなわち、外部メモリ20に退避させていた未出力のパケットデータがなくなったときには、入力データを書き込みFIFOバッファ11からそのまま出力する状態に戻す。
本実施形態の構成によると、FIFOバッファ装置10の入力データは、書き込みFIFOバッファ11に書き込まれるとともに、パケット化FIFOバッファ13によってパケット化されて、外部メモリ20のバッファ用記憶領域21に格納される。すなわち、第1モードにおいて書き込みFIFOバッファ11からそのまま出力された入力データについても、バッファ用記憶領域21にパケットデータとして退避されている。したがって、第1モードにおける出力データについても、巻き戻し要求があったとき、バッファ用記憶領域21から再読み出しすることができる。しかも、読み出しFIFOバッファ12がフル状態にならない間は、第1モードにおいて、入力データが書き込みFIFOバッファ11を介してそのまま出力されるので、パケット化に起因するデータ転送の中断といった問題が生じることはなく、データ退避に起因したデータ転送速度の低下は生じないため、スムーズなデータ転送が実現できる。
なお、制御部16は、第2モードにおいて、パケット化FIFOバッファ13からメモリインタフェース14にパケットデータが出力されたとき、当該パケットデータに対応するデータを、書き込みFIFOバッファ11から破棄するのが好ましい。これにより、第2モードにおいて、書き込みFIFOバッファ11がフル状態になり、入力データの受け入れができなくなるという問題を回避することができる。
次に、メモリインタフェース14によるバッファ用記憶領域21の管理方法について、図2を用いて説明する。
外部メモリ20のバッファ用記憶領域21は、メモリインタフェース14によって管理される。メモリインタフェース14は、バッファ用記憶領域21を管理するために、その先頭アドレスと末尾アドレスとが設定可能に構成されている。例えば、先頭アドレスと末尾アドレスを格納するためのレジスタを備えている。メモリインタフェース14はさらに、次にデータの書き込みを行うアドレスを示すライトポインタと、次にデータの読み出しを行うアドレスを示すリードポインタと、読み出し済み履歴データの先頭アドレスを示すヒストリポインタとを備えている。
ライトポインタは、データの書き込みを行うとき、書き込みデータのサイズ分の加算が行われる。リードポインタは、データの読み出しを行うとき、読み出しデータのサイズ分の加算が行われる。ヒストリポインタは、読み出し済み履歴データが上書きされないように保護する役割を有する。ライトポインタ、リードポインタおよびヒストリポインタのいずれも、バッファ用記憶領域21の末尾アドレスに達すると、先頭アドレスに飛ぶ。
そして、ライトポインタがヒストリポインタに追いついたときは、バッファ用記憶領域21はフル状態となり、それ以上のデータ書き込みはできない。すなわち、ライトポインタはヒストリポインタを追い越すことができない。これにより、ヒストリポインタとリードポインタの間が、読み出し済みの履歴データとして保護される。また、リードポインタがライトポインタに追いついたときは、バッファ用記憶領域21はエンプティ状態となり、それ以上のデータ読み出しはできない。
データの巻き戻し要求があったときは、次のようにして、データの再読み出しが行われる。すなわち、制御部16は、巻き戻し要求を受けたとき、第2モードに設定するとともに、メモリインタフェース14に対して、再読み出しアドレスを指定して再読み出しを指示する。メモリインタフェース14は、制御部16から再読み出しを指示されたとき、リードポインタを、指定された再読み出しアドレスの位置に戻す。これにより、読み出し済み履歴データの一部が有効データとなり、再読み出しが可能となる。ただし、リードポインタは、ヒストリポインタを超えて戻すことはできない。
また、履歴破棄要求があったときは、図3に示すように、メモリインタフェース14は、ヒストリポインタの位置を、所定アドレス分あるいは指定されたアドレス分、進める。これにより、移動後のヒストリポインタの位置より上の履歴データは、保護されなくなり、実質的に破棄されたことになる。ただし、ヒストリポインタは、リードポインタを超えて進めることはできない。
図4は他の実施形態に係るFIFOバッファ装置の構成を示すブロック図である。図4において、図1と共通の構成要素には図1と同一の符号を付しており、ここではその詳細な説明を省略する。
図4のFIFOバッファ装置10Aでは、書き込みFIFOバッファ11およびパケット化FIFOバッファ13の前段に、第2のマルチプレクサ17が設けられている。第2のマルチプレクサ17は、書き込みFIFOバッファ11およびパケット化FIFOバッファ13に共通に出力するデータとして、入力データとパケット化FIFOバッファ13の出力とのうちいずれかを選択するものである。第2のマルチプレクサ17の選択動作は、制御部16Aによって制御される。
図1の構成において、バッファ用記憶領域21に退避されているパケットデータについては巻き戻し可能であるが、パケット化FIFOバッファ13内にまだパケット化されないで残っているデータについては、巻き戻し要求があった場合には、これに即座に対応することが困難となる。このため、図4の構成では、パケット化FIFOバッファ13のデータを書き込みFIFOバッファ11に再入力可能なように、第2のマルチプレクサ17を設けている。制御部16Aは、巻き戻し要求を受けたとき、再読み出しを必要とするデータがパケット化FIFOバッファ13内にまだパケット化されないで残っている場合には、第2のマルチプレクサ17を制御して、パケット化FIFOバッファ13内のデータが書き込みFIFOバッファ11に再入力されるようにする。これによって、パケット化FIFOバッファ13に残っているデータについても、巻き戻し要求に対応することが可能になる。
本発明では、巻き戻し機能を有し、かつ、データ転送速度が高いFIFOバッファ装置が実現可能となるので、例えば、映像システムにおいて可変長符号化された画像データを復号する場合に、複数の符号化データを1つの復号装置に切り替えて入力する際に、先読みされた符号化データを破棄し次回の処理時に再度読み直す場合等に用いるのに有効である。
10,10A FIFOバッファ装置
11 書き込みFIFOバッファ
12 読み出しFIFOバッファ
13 パケット化FIFOバッファ
14 メモリインタフェース
15 マルチプレクサ
16,16A 制御部
17 第2のマルチプレクサ
20 外部メモリ(退避用メモリ)
21 バッファ用記憶領域
本発明は、入力されたデータを一旦格納し、入力順に従って出力するFIFOバッファ装置に関するものである。
従来のFIFOバッファ装置の一例として、特許文献1には、読み出し側バッファに空き容量がなくなった場合にデータ退避を行うために、外部メモリにオーバーフロー領域を設けた構成が開示されている。
特表2002−513530号公報(図4) 特許第3810449号公報 特許第3560056号公報
最近のアプリケーションでは、FIFOバッファ装置に対して、巻き戻し機能を実現することが求められている。巻き戻しとは、データの再読み出し、すなわち、すでに出力された過去のデータを再度FIFOバッファ装置から読み出すことである。
ところが、特許文献1の構成では、オーバーフロー領域に退避されたデータについては外部メモリから再読み出しすることは可能であるが、退避されずに直接出力されたデータについては、データ履歴が外部メモリに残っていないため、再読み出しをすることはできない。
したがって、FIFOバッファ装置に対して巻き戻し機能を持たせるためには、再読み出しに備えて、全てのデータを外部メモリに退避させる必要がある。ただし、全てのデータについて、外部メモリを経由してから出力する構成とした場合、外部メモリとのデータアクセスに時間がかかるため、データ転送速度が低下することになり、好ましくない。
本発明は、FIFOバッファ装置として、データ転送速度を低下させることなく、巻き戻し機能を実現することを目的とする。
本発明の一態様は、入力されたデータを一旦格納し、入力順に従って出力するFIFOバッファ装置として、入力データを書き込むための書き込みFIFOバッファと、出力データを読み出すための読み出しFIFOバッファと、退避用メモリに形成されたバッファ用記憶領域を管理し、前記バッファ用記憶領域へのパケットデータの書き込み、および、前記バッファ用記憶領域からのパケットデータの読み出しを行うメモリインタフェースと、前記書き込みFIFOバッファと共通に前記入力データを受け、所定のサイズにパケット化し、パケットデータとして前記メモリインタフェースに出力するパケット化FIFOバッファと、前記書き込みFIFOバッファの出力と前記メモリインタフェースから出力されたパケットデータとのうちいずれか一方を選択し、前記読み出しFIFOバッファに出力するマルチプレクサと、当該FIFOバッファ装置を制御する制御部とを備え、前記制御部は、前記マルチプレクサの選択動作を制御し、前記書き込みFIFOバッファの出力が前記読み出しFIFOバッファに出力される第1モードと、前記メモリインタフェースから出力されたパケットデータが前記読み出しFIFOバッファに出力される第2モードとを切り替えるものであり、前記第1モードにおいて、前記読み出しFIFOバッファがフル状態になったとき、前記第2モードに切り替え、前記第2モードにおいて、前記バッファ用記憶領域がエンプティ状態になったとき、前記第1モードに切り替えるものである。
この態様によると、入力データは、書き込みFIFOバッファに書き込まれるとともに、パケット化FIFOバッファによってパケット化されて、退避用メモリに形成されたバッファ用記憶領域に書き込まれる。すなわち、書き込みFIFOバッファから読み出しFIFOバッファに直接データ出力される第1モードにおいても、入力データは、退避用メモリのバッファ用記憶領域に退避されることになる。このため、巻き戻し要求があったとき、退避用メモリからデータを再読み出しすることが可能である。しかも、読み出しFIFOバッファがフル状態になるまでは、第1モードにおいて、書き込みFIFOバッファから読み出しFIFOバッファに直接データ出力されるので、データ退避に起因したデータ転送速度の低下は生じない。
本発明によると、退避用メモリを介さずにそのまま出力される入力データについても、データ転送速度の低下を招くことなく、退避用メモリのバッファ用記憶領域に退避され、再読み出しが可能になる。したがって、巻き戻し機能を有し、かつ、データ転送速度が高いFIFOバッファ装置を実現可能となる。
実施形態に係るFIFOバッファ装置の構成を示すブロック図である。 バッファ用記憶領域の管理方法を説明するための図である。 バッファ用記憶領域において履歴データの破棄を行う方法を説明するための図である。 他の実施形態に係るFIFOバッファ装置の構成を示すブロック図である。
以下、本発明の実施形態を図面に基づいて詳細に説明する。
図1は実施形態に係るFIFOバッファ装置の構成を示すブロック図である。図1に示すFIFOバッファ装置10は、入力されたデータを一旦格納し、入力順に従って出力するものであり、書き込みFIFOバッファ11と、読み出しFIFOバッファ12と、パケット化FIFOバッファ13と、メモリインタフェース14と、マルチプレクサ15と、FIFOバッファ装置10を制御する制御部16とを備えている。そして、このFIFOバッファ装置10は、退避用メモリとしての外部メモリ20に、入力データをパケットデータの形式で退避可能に構成されている。
書き込みFIFOバッファ11は、書き込みマスターから送られてきたFIFOバッファ装置10の入力データを書き込むためのものであり、所定の容量を有し、書き込まれた入力データを書き込まれた順に出力する。読み出しFIFOバッファ12は、読み出しマスタに送るFIFOバッファ装置10の出力データを読み出すためのものであり、所定の容量を有し、書き込まれたデータを書き込まれた順に出力データとして出力する。メモリインタフェース14は、外部メモリ20に形成されたバッファ用記憶領域21を管理し、このバッファ用記憶領域21へのパケットデータの書き込み、および、バッファ用記憶領域21からのパケットデータの読み出しを行う。
パケット化FIFOバッファ13は、書き込みFIFOバッファ11と共通に、FIFOバッファ装置10の入力データを受ける。すなわち、パケット化FIFOバッファ13には、書き込みFIFOバッファ11と同じデータが書き込まれる。そして、パケット化FIFOバッファ13は、書き込まれたデータを所定のパケットサイズにパケット化し、得られたパケットデータをメモリインタフェース14に出力する。メモリインタフェース14は、パケット化FIFOバッファ13から送られてきたパケットデータを外部メモリ20のバッファ用記憶領域21に書き込む。また、メモリインタフェース14は、外部メモリ20のバッファ用記憶領域21からパケットデータを読み出し、マルチプレクサ15に出力する。
マルチプレクサ15は、書き込みFIFOバッファ11の出力と、メモリインタフェース14から出力されたパケットデータとのうちいずれか一方を選択し、読み出しFIFOバッファ12に出力する。このマルチプレクサ15の選択動作は、制御部16によって制御される。すなわち、制御部16は、書き込みFIFOバッファ11の出力がマルチプレクサ15を介して読み出しFIFOバッファ12に出力される第1モードと、メモリインタフェース14から出力されたパケットデータがマルチプレクサ15を介して読み出しFIFOバッファ12に出力される第2モードとを、切り替える。第1モードのときは、FIFOバッファ装置10に入力されたデータは、書き込みFIFOバッファ11および読み出しFIFOバッファ12を介して、そのまま出力される。一方、第2モードのときは、FIFOバッファ装置10に入力されたデータは、パケット化されてバッファ用記憶領域21に一旦記憶されてから、読み出しFIFOバッファ12を介して、出力される。
制御部16は、第1モードにおいて、読み出しFIFOバッファ12がフル状態になったとき、第2モードに切り替える。すなわち、入力データを書き込みFIFOバッファ11からそのまま出力している状態で、読み出しFIFOバッファ12があふれそうになったときには、書き込みFIFOバッファ11からの出力を停止する。一方、第2モードにおいて、バッファ用記憶領域21がエンプティ状態になったとき、第1モードに切り替える。すなわち、外部メモリ20に退避させていた未出力のパケットデータがなくなったときには、入力データを書き込みFIFOバッファ11からそのまま出力する状態に戻す。
本実施形態の構成によると、FIFOバッファ装置10の入力データは、書き込みFIFOバッファ11に書き込まれるとともに、パケット化FIFOバッファ13によってパケット化されて、外部メモリ20のバッファ用記憶領域21に格納される。すなわち、第1モードにおいて書き込みFIFOバッファ11からそのまま出力された入力データについても、バッファ用記憶領域21にパケットデータとして退避されている。したがって、第1モードにおける出力データについても、巻き戻し要求があったとき、バッファ用記憶領域21から再読み出しすることができる。しかも、読み出しFIFOバッファ12がフル状態にならない間は、第1モードにおいて、入力データが書き込みFIFOバッファ11を介してそのまま出力されるので、パケット化に起因するデータ転送の中断といった問題が生じることはなく、データ退避に起因したデータ転送速度の低下は生じないため、スムーズなデータ転送が実現できる。
なお、制御部16は、第2モードにおいて、パケット化FIFOバッファ13からメモリインタフェース14にパケットデータが出力されたとき、当該パケットデータに対応するデータを、書き込みFIFOバッファ11から破棄するのが好ましい。これにより、第2モードにおいて、書き込みFIFOバッファ11がフル状態になり、入力データの受け入れができなくなるという問題を回避することができる。
次に、メモリインタフェース14によるバッファ用記憶領域21の管理方法について、図2を用いて説明する。
外部メモリ20のバッファ用記憶領域21は、メモリインタフェース14によって管理される。メモリインタフェース14は、バッファ用記憶領域21を管理するために、その先頭アドレスと末尾アドレスとが設定可能に構成されている。例えば、先頭アドレスと末尾アドレスを格納するためのレジスタを備えている。メモリインタフェース14はさらに、次にデータの書き込みを行うアドレスを示すライトポインタと、次にデータの読み出しを行うアドレスを示すリードポインタと、読み出し済み履歴データの先頭アドレスを示すヒストリポインタとを備えている。
ライトポインタは、データの書き込みを行うとき、書き込みデータのサイズ分の加算が行われる。リードポインタは、データの読み出しを行うとき、読み出しデータのサイズ分の加算が行われる。ヒストリポインタは、読み出し済み履歴データが上書きされないように保護する役割を有する。ライトポインタ、リードポインタおよびヒストリポインタのいずれも、バッファ用記憶領域21の末尾アドレスに達すると、先頭アドレスに飛ぶ。
そして、ライトポインタがヒストリポインタに追いついたときは、バッファ用記憶領域21はフル状態となり、それ以上のデータ書き込みはできない。すなわち、ライトポインタはヒストリポインタを追い越すことができない。これにより、ヒストリポインタとリードポインタの間が、読み出し済みの履歴データとして保護される。また、リードポインタがライトポインタに追いついたときは、バッファ用記憶領域21はエンプティ状態となり、それ以上のデータ読み出しはできない。
データの巻き戻し要求があったときは、次のようにして、データの再読み出しが行われる。すなわち、制御部16は、巻き戻し要求を受けたとき、第2モードに設定するとともに、メモリインタフェース14に対して、再読み出しアドレスを指定して再読み出しを指示する。メモリインタフェース14は、制御部16から再読み出しを指示されたとき、リードポインタを、指定された再読み出しアドレスの位置に戻す。これにより、読み出し済み履歴データの一部が有効データとなり、再読み出しが可能となる。ただし、リードポインタは、ヒストリポインタを超えて戻すことはできない。
また、履歴破棄要求があったときは、図3に示すように、メモリインタフェース14は、ヒストリポインタの位置を、所定アドレス分あるいは指定されたアドレス分、進める。これにより、移動後のヒストリポインタの位置より上の履歴データは、保護されなくなり、実質的に破棄されたことになる。ただし、ヒストリポインタは、リードポインタを超えて進めることはできない。
図4は他の実施形態に係るFIFOバッファ装置の構成を示すブロック図である。図4において、図1と共通の構成要素には図1と同一の符号を付しており、ここではその詳細な説明を省略する。
図4のFIFOバッファ装置10Aでは、書き込みFIFOバッファ11およびパケット化FIFOバッファ13の前段に、第2のマルチプレクサ17が設けられている。第2のマルチプレクサ17は、書き込みFIFOバッファ11およびパケット化FIFOバッファ13に共通に出力するデータとして、入力データとパケット化FIFOバッファ13の出力とのうちいずれかを選択するものである。第2のマルチプレクサ17の選択動作は、制御部16Aによって制御される。
図1の構成において、バッファ用記憶領域21に退避されているパケットデータについては巻き戻し可能であるが、パケット化FIFOバッファ13内にまだパケット化されないで残っているデータについては、巻き戻し要求があった場合には、これに即座に対応することが困難となる。このため、図4の構成では、パケット化FIFOバッファ13のデータを書き込みFIFOバッファ11に再入力可能なように、第2のマルチプレクサ17を設けている。制御部16Aは、巻き戻し要求を受けたとき、再読み出しを必要とするデータがパケット化FIFOバッファ13内にまだパケット化されないで残っている場合には、第2のマルチプレクサ17を制御して、パケット化FIFOバッファ13内のデータが書き込みFIFOバッファ11に再入力されるようにする。これによって、パケット化FIFOバッファ13に残っているデータについても、巻き戻し要求に対応することが可能になる。
本発明では、巻き戻し機能を有し、かつ、データ転送速度が高いFIFOバッファ装置が実現可能となるので、例えば、映像システムにおいて可変長符号化された画像データを復号する場合に、複数の符号化データを1つの復号装置に切り替えて入力する際に、先読みされた符号化データを破棄し次回の処理時に再度読み直す場合等に用いるのに有効である。
10,10A FIFOバッファ装置
11 書き込みFIFOバッファ
12 読み出しFIFOバッファ
13 パケット化FIFOバッファ
14 メモリインタフェース
15 マルチプレクサ
16,16A 制御部
17 第2のマルチプレクサ
20 外部メモリ(退避用メモリ)
21 バッファ用記憶領域

Claims (6)

  1. 入力されたデータを一旦格納し、入力順に従って出力するFIFOバッファ装置であって、
    入力データを書き込むための書き込みFIFOバッファと、
    出力データを読み出すための読み出しFIFOバッファと、
    退避用メモリに形成されたバッファ用記憶領域を管理し、前記バッファ用記憶領域へのパケットデータの書き込み、および、前記バッファ用記憶領域からのパケットデータの読み出しを行うメモリインタフェースと、
    前記書き込みFIFOバッファと共通に前記入力データを受け、所定のサイズにパケット化し、パケットデータとして前記メモリインタフェースに出力するパケット化FIFOバッファと、
    前記書き込みFIFOバッファの出力と前記メモリインタフェースから出力されたパケットデータとのうちいずれか一方を選択し、前記読み出しFIFOバッファに出力するマルチプレクサと、
    当該FIFOバッファ装置を制御する制御部とを備え、
    前記制御部は、
    前記マルチプレクサの選択動作を制御し、前記書き込みFIFOバッファの出力が前記読み出しFIFOバッファに出力される第1モードと、前記メモリインタフェースから出力されたパケットデータが前記読み出しFIFOバッファに出力される第2モードとを切り替えるものであり、
    前記第1モードにおいて、前記読み出しFIFOバッファがフル状態になったとき、前記第2モードに切り替え、前記第2モードにおいて、前記バッファ用記憶領域がエンプティ状態になったとき、前記第1モードに切り替える
    ことを特徴とするFIFOバッファ装置。
  2. 請求項1記載のFIFOバッファ装置において、
    前記制御部は、
    前記第2モードにおいて、前記パケット化FIFOバッファから前記メモリインタフェースにパケットデータが出力されたとき、当該パケットデータに対応するデータを、前記書き込みFIFOバッファから破棄する
    ことを特徴とするFIFOバッファ装置。
  3. 請求項1記載のFIFOバッファ装置において、
    前記メモリインタフェースは、
    前記バッファ用記憶領域の先頭アドレスおよび末尾アドレスが設定可能であり、かつ、
    次にデータの書き込みを行うアドレスを示すライトポインタと、
    次にデータの読み出しを行うアドレスを示すリードポインタと、
    読み出し済み履歴データの先頭アドレスを示すヒストリポインタとを備えており、
    前記リードポインタが前記ライトポインタに追いついたとき、前記バッファ用メモリ領域はエンプティ状態であり、前記ライトポインタが前記ヒストリポインタに追いついたとき、前記バッファ用記憶領域はフル状態である
    ことを特徴とするFIFOバッファ装置。
  4. 請求項3記載のFIFOバッファ装置において、
    前記制御部は、
    巻き戻し要求を受けたとき、前記第2モードに設定するとともに、前記メモリインタフェースに対して、再読み出しアドレスを指定して再読み出しを指示するものであり、
    前記メモリインタフェースは、
    前記制御部から再読み出しを指示されたとき、前記リードポインタを指定された再読み出しアドレスの位置に戻して、パケットデータの読み出しを行うものである
    ことを特徴とするFIFOバッファ装置。
  5. 請求項3記載のFIFOバッファ装置において、
    前記メモリインタフェースは、
    履歴破棄要求を受けたとき、前記ヒストリポインタの位置を、所定アドレス分あるいは指定されたアドレス分、進めるものである
    ことを特徴とするFIFOバッファ装置。
  6. 請求項1記載のFIFOバッファ装置において、
    前記入力データと前記パケット化FIFOバッファの出力とのうちいずれか一方を選択し、前記書き込みFIFOバッファと前記パケット化FIFOバッファとに共通に出力する第2のマルチプレクサを備え、
    前記制御部は、
    巻き戻し要求を受けた場合において、前記パケット化FIFOバッファ内のデータを再読み出しする必要があるとき、前記第2のマルチプレクサに対して、前記パケット化FIFOバッファの出力を前記書き込みFIFOバッファと前記パケット化FIFOバッファとに共通に出力するよう、制御する
    ことを特徴とするFIFOバッファ装置。
JP2011510097A 2009-04-24 2009-10-16 Fifoバッファ装置 Withdrawn JPWO2010122613A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009106381 2009-04-24
JP2009106381 2009-04-24
PCT/JP2009/005411 WO2010122613A1 (ja) 2009-04-24 2009-10-16 Fifoバッファ装置

Publications (1)

Publication Number Publication Date
JPWO2010122613A1 true JPWO2010122613A1 (ja) 2012-10-22

Family

ID=43010751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011510097A Withdrawn JPWO2010122613A1 (ja) 2009-04-24 2009-10-16 Fifoバッファ装置

Country Status (3)

Country Link
US (1) US20110314190A1 (ja)
JP (1) JPWO2010122613A1 (ja)
WO (1) WO2010122613A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201214663D0 (en) * 2012-08-17 2012-10-03 Spencer Michael D User interaction method for input selection
JP6029433B2 (ja) * 2012-11-26 2016-11-24 ルネサスエレクトロニクス株式会社 マイコン
KR102029806B1 (ko) * 2012-11-27 2019-10-08 삼성전자주식회사 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치
JP2015069345A (ja) 2013-09-27 2015-04-13 富士通株式会社 情報処理装置,データ転送装置,およびデータ転送方法
KR20190046491A (ko) 2017-10-26 2019-05-07 삼성전자주식회사 반도체 메모리, 반도체 메모리를 포함하는 메모리 시스템, 그리고 반도체 메모리의 동작 방법
US11336757B2 (en) * 2019-03-19 2022-05-17 Texas Instruments Incorporated Sample based data transmission over low-level communication channel

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61100043A (ja) * 1984-10-23 1986-05-19 Nec Corp 同報通信用送信装置
JPH0683578A (ja) * 1992-03-13 1994-03-25 Internatl Business Mach Corp <Ibm> 処理システム、及びデータスループット制御方法
JP2778373B2 (ja) * 1992-09-04 1998-07-23 日本電気株式会社 再送機能付きバッファ装置
US5406554A (en) * 1993-10-05 1995-04-11 Music Semiconductors, Corp. Synchronous FIFO having an alterable buffer store
JP3810449B2 (ja) * 1994-07-20 2006-08-16 富士通株式会社 キュー装置
US5777987A (en) * 1995-12-29 1998-07-07 Symbios, Inc. Method and apparatus for using multiple FIFOs to improve flow control and routing in a communications receiver
US6044419A (en) * 1997-09-30 2000-03-28 Intel Corporation Memory handling system that backfills dual-port buffer from overflow buffer when dual-port buffer is no longer full
US6591316B1 (en) * 1999-05-20 2003-07-08 Marconi Communications, Inc. Avoiding fragmentation loss in high speed burst oriented packet memory interface
US6631430B1 (en) * 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6557053B1 (en) * 2000-01-04 2003-04-29 International Business Machines Corporation Queue manager for a buffer
AUPQ555700A0 (en) * 2000-02-11 2000-03-02 Canon Kabushiki Kaisha Fifo overflow management
US6987775B1 (en) * 2001-08-15 2006-01-17 Internet Machines Corp. Variable size First In First Out (FIFO) memory with head and tail caching
US6538467B2 (en) * 2001-08-20 2003-03-25 Micron Technology, Inc. Multi-access FIFO queue
US6941393B2 (en) * 2002-03-05 2005-09-06 Agilent Technologies, Inc. Pushback FIFO
JP4019757B2 (ja) * 2002-03-15 2007-12-12 富士ゼロックス株式会社 記憶装置
JP3989493B2 (ja) * 2005-02-04 2007-10-10 富士通株式会社 キュー装置
JP2007267249A (ja) * 2006-03-29 2007-10-11 Fujitsu Ltd データ送信装置、データ送信方法、およびデータ送信プログラム
US8135885B1 (en) * 2008-10-30 2012-03-13 Nvidia Corporation Data packer for packing and aligning write data

Also Published As

Publication number Publication date
WO2010122613A1 (ja) 2010-10-28
US20110314190A1 (en) 2011-12-22

Similar Documents

Publication Publication Date Title
JP4375305B2 (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
WO2010122613A1 (ja) Fifoバッファ装置
JP4991816B2 (ja) 画像処理装置
EP0714213A2 (en) MPEG2 transport decoder
JP2009134391A (ja) ストリーム処理装置、ストリーム処理方法及びデータ処理システム
WO2007063858A1 (ja) バッファ制御装置およびバッファメモリ
JP2006259898A (ja) I/oコントローラ、信号処理システム、およびデータ転送方法
US20070098272A1 (en) Reduced buffer size for JPEG encoding
JPH1091393A (ja) データバッファリング装置
JP2007164355A (ja) 不揮発性記憶装置、そのデータ読出方法及びそのデータ書込み方法
EP2183663B1 (en) Mass storage system with improved usage of buffer capacity
KR100548214B1 (ko) 복수의 인터페이스를 통해 패킷을 전송하기 위한 정보 독출을 미리 수행하여 패킷 전송을 빠르게 수행하는 패킷 포워딩 시스템 및 그 방법
JP3772569B2 (ja) 画像処理装置および画像処理方法
US8527717B2 (en) Content data storage device and its control method
JP2017117145A (ja) 半導体装置、データ処理システム及び半導体装置の制御方法
JP2007272667A (ja) リングバッファ装置
US6865654B2 (en) Device for interfacing asynchronous data using first-in-first-out
JP2002252852A (ja) 符号供給装置および半導体集積回路
KR0183831B1 (ko) 데이터 버퍼링 장치
KR0166737B1 (ko) 병렬처리형 가변장복호화장치
JP2005323089A (ja) 再生装置
JP5471311B2 (ja) 記録装置
JP2005065080A (ja) ヘッダ受信回路
KR100846406B1 (ko) 인코드 중에 추출 화상을 외부에 송신하는 비디오 인코더
JP2020077246A (ja) データ転送装置、撮像装置およびデータ転送方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130108