JP2010027032A - Fifo装置及びfifoバッファへのデータ格納方法 - Google Patents

Fifo装置及びfifoバッファへのデータ格納方法 Download PDF

Info

Publication number
JP2010027032A
JP2010027032A JP2009072033A JP2009072033A JP2010027032A JP 2010027032 A JP2010027032 A JP 2010027032A JP 2009072033 A JP2009072033 A JP 2009072033A JP 2009072033 A JP2009072033 A JP 2009072033A JP 2010027032 A JP2010027032 A JP 2010027032A
Authority
JP
Japan
Prior art keywords
transfer request
combined
generation unit
write
transfer
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
JP2009072033A
Other languages
English (en)
Inventor
Masatoshi Nara
正俊 奈良
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2009072033A priority Critical patent/JP2010027032A/ja
Priority to US12/457,282 priority patent/US7925804B2/en
Publication of JP2010027032A publication Critical patent/JP2010027032A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Abstract

【課題】FIFO装置において、受け付ける転送要求が結合できる場合、複数の転送要求を取りまとめた転送要求を保持し、FIFOバッファへ格納するFIFO装置を提供する。
【解決手段】FIFO装置21は、バス14から転送される、ライトアドレス、データサイズ及びライトデータを含む転送要求を保持し、バス15へ出力するFIFOバッファ1〜3と、第1の転送要求と、第1の転送要求より後に第2の転送要求を、バス14から受け付け、第1の転送要求のライトアドレス及びデータサイズと、第2の転送要求のライトアドレス及びデータサイズとを用いて第2の転送要求を第1の転送要求に結合できるか否かを判定し、結合できると判定した場合、第1の転送要求と第2の転送要求とを結合した結合転送要求を保持し、FIFOバッファ1〜3へ格納する転送要求生成部20を備える。
【選択図】図1

Description

本発明は、バス間のデータを転送するFIFO(First-In First-Out)バッファに関する。
バス間のデータを転送する際に、FIFOバッファが用いられている。FIFOバッファでは、要求を受け付けた順番に、データ転送要求を格納する。データ転送要求は、各処理装置によって実行される。このため、一つの転送要求のデータサイズは、必ずしもバス幅に適応しているわけではなかった。また、FIFOバッファにおいて、一つにまとめられる転送要求をまとめていなかった。従って、転送要求の数が増えると、バスへのアクセス回数が増えるため、転送効率の向上を妨げていた。
図11にFIFO装置の構成例を示す。図11のFIFO装置90は、ライトアドレスを格納するFIFOバッファ91と、ライトデータのストローブを格納するFIFOバッファ92と、ライトデータを格納するFIFOバッファ93とを備える。FIFO装置90は、バス14から転送要求として、ライトアドレス、ライトデータのストローブ、ライトデータを受け付け、それぞれFIFOバッファ91〜93に格納する。FIFO装置90は、格納された転送要求を受け付けた順にバス15に出力する。
図11に示すFIFO装置90では、バス14からの転送要求を逐次バス15に転送している。このため、連続してバス15への転送が実行される場合、バスに負荷がかかりやすい状態となっていた。
特許文献1には、データ読取転送およびデータ書込転送に関してバス使用量を最適化する技術が開示されている。特許文献1では、データ転送のタイプを決定し、データを、決定された転送のタイプに応じてデバイスのバスの間でFIFOを使用して非同期に転送している。しかし、この技術は、FIFOに格納するデータを結合するものではなかった。
また、特許文献2から4には、ダイレクトメモリアクセス(DMA)のデータ転送においては、データ転送回数を少なくして転送時間を短縮する技術が開示されている。DMAの技術では、連続したデータを取り扱うことが前提であり、FIFO装置が受け付ける複数の転送要求に適用することができなかった。
特開2002−149591号公報 特開2006−4340号公報 特開2000−132497号公報 特開昭63−292356号公報
上述したように、FIFO装置において、一つのバスから受け付ける転送要求を逐次他のバスへ転送していたため、転送の効率の低下を招いているという問題があった。
本発明に係るFIFO装置の一態様は、第一バスから転送される、ライトアドレス、データサイズ及びライトデータを含む転送要求を保持し、第二バスへ出力するFIFO(First-In First-Out)装置であって、第1の転送要求と、前記第1の転送要求に後続する第2の転送要求を、前記第一バスから受け付け、前記第1の転送要求のライトアドレス及びデータサイズと、前記第2の転送要求のライトアドレス及びデータサイズとに基づいて第1の転送要求と前記第2の転送要求とを結合できるか否かを判定し、結合できると判定した場合、前記第1の転送要求と前記第2の転送要求とを結合した結合転送要求を前記第1の転送要求に置き換えて保持し、出力する転送要求生成部と、前記転送要求生成部が出力する転送要求を保持し、前記第二バスへ出力するFIFOバッファと、を備える。複数の転送要求を結合させて転送することにより、FIFOバッファへ格納する転送要求数を削減することができる。
また、本発明に係るFIFOバッファへのデータ格納方法は、ライトアドレス、データサイズ及びライトデータを含み、第二バスへ転送させる第1の転送要求を第一バスから受け付けて保持し、第2の転送要求をさらに前記第一バスから受け付け、前記第1の転送要求のライトアドレス及びデータサイズと、前記第2の転送要求のライトアドレス及びデータサイズとに基づいて前記第1の転送要求と前記第2の転送要求とを結合できるか否かを判定し、前記判定結果が結合できるという判定であった場合、前記第1の転送要求と前記第2の転送要求とを結合した結合転送要求を前記第1の転送要求と置き換えて保持し、前記判定結果が結合できないという判定であった場合、前記第1の転送要求をFIFOバッファに格納する。
本発明によれば、FIFO装置において、受け付ける転送要求が結合できる場合、複数の転送要求を取りまとめた転送要求を保持するFIFO装置を提供することが可能となる。
本発明の実施形態1に係るFIFO装置の構成例を示す図である。 ライトデータを格納するレジスタの構成例を示す図である。 ライトアドレスが連続する場合、転送要求を結合する例を示すタイミングチャートである。 ライトアドレスが連続する場合、転送要求を結合する例を示すタイミングチャートである。 転送要求がレジスタで使用していない領域に収まる場合、転送要求を結合する例を示すタイミングチャートである。 転送要求がレジスタで使用していない領域に収まる場合、転送要求を結合可能な例を示すタイミングチャートである。 本発明の実施形態2に係るFIFO装置の構成例を示す図である。 実施形態2のFIFO装置の転送要求生成部と制御部との関係を示す図である。 実施形態2のFIFO装置において、転送要求を結合する例を示すタイミングチャートである。 実施形態2のFIFO装置において、転送要求を結合する例を示すタイミングチャートである。 FIFO装置の構成例を示す図である。
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
また、本発明では、データの書き込みを要求する転送要求は、情報として、少なくともライトアドレス、データサイズ及びライトデータを含むことを前提とする。データサイズは、ライトデータの大きさを示す情報であればよく、ライトデータをバッファに格納する位置を示すライトデータのストローブ(適宜、「ライトストローブ」ともいう)であってもよい。
(実施形態1)
実施形態1では、転送要求として、ライトアドレス、ライトデータのストローブ及びライトデータを含む転送要求を受け付ける場合を一例として説明する。図1は、本発明の実施形態1に係るFIFO装置の構成例を示す図である。FIFO装置21は、FIFOバッファ1〜3と転送要求生成部20とを備える。FIFO装置21は、バス14(第一バス)から転送要求を受け付け、転送要求生成部20によってFIFOバッファ1〜3に格納し、バス15(第二バス)へ出力する。
FIFOバッファ1は、ライトアドレスを格納する。FIFOバッファ2は、データサイズ(本実施形態では、ライトストローブ)を格納する。FIFOバッファ3は、ライトデータを格納する。
転送要求生成部20の機能の概略は次の通りである。はじめに転送要求生成部20が、バス14から転送要求(第1の転送要求とする)を受け付け、保持し、続いて第1の転送要求より後にバス14から転送要求(第2の転送要求とする)を受け付ける場合を考える。転送要求生成部20は、第1の転送要求のライトアドレス及びライトストローブと、第2の転送要求のライトアドレス及びライトデータのストローブとを用いて第2の転送要求を第1の転送要求に結合できるかを判定する(判定方法は図2を用いて後述する)。
転送要求生成部20は、判定結果に基づいて、第1の転送要求と第2の転送要求とを合わせた結合転送要求を保持する。新たに受け付ける転送要求(第3の転送要求とする)について、同様の判定を繰り返し、第3の転送要求が結合転送要求に結合可能な場合に二つの転送要求を結合させる。転送要求生成部20は、新たに受け付ける転送要求が、既に保持している転送要求と結合できない場合、保持している転送要求をFIFOバッファへ格納する。上記では、転送要求生成部20が、最初に第1の転送要求を保持している場合を説明したが、新たな転送要求を受け付ける度に保持している転送要求と結合可能か否かを判定する。転送要求生成部20は、その判定結果に応じて、結合可能である場合、結合転送要求を保持し、結合不可能である場合、既に保持している転送要求と結合することなく、新たな転送要求(例えば、第2の転送要求、第3の転送要求)を保持することになる。
以降の説明では、転送要求生成部20を図1に示す構成要素によって実現する例を説明する。転送要求生成部20は、レジスタ4〜6、マルチプレクサ7〜9、演算器10〜12、及び、制御信号生成部13を備える。レジスタ、マルチプレクサ、及び、演算器それぞれの数は、転送要求に含まれる情報の種類の数に一致する。例えば、本実施形態では、転送要求に、ライトアドレス、データサイズ、ライトデータの3種類が含まれるため、レジスタ、マルチプレクサ、演算器をそれぞれ3つずつ備えている。
レジスタ4、マルチプレクサ7、及び、演算器10は、ライトアドレスに関する回路である。レジスタ4に保持する値が、ライトアドレスとしてFIFOバッファ1に格納される。同様に、レジスタ5、マルチプレクサ8、及び、演算器11は、ライトストローブに関する回路である。レジスタ5に保持する値が、ライトストローブとしてFIFOバッファ2に格納される。レジスタ6、マルチプレクサ9、及び、演算器12は、ライトデータに関する回路である。レジスタ6に保持する値が、ライトデータとしてFIFOバッファ3に格納される。
レジスタ4〜6は、それぞれFIFO1〜3に接続する。レジスタ4〜6は、マルチプレクサ7〜9から出力される値を保持する。具体的には、一つ前の転送要求に含まれる値、あるいは、演算器10〜12が演算した値のいずれかを保持する。また、レジスタ4〜6それぞれは、FIFOバッファ1〜3の一つの格納領域のサイズ(1レコード)と同じサイズである。
マルチプレクサ7〜9は、それぞれのレジスタ4〜6に接続する。マルチプレクサ7〜9は、バス14から入力する転送要求の値と、演算器10〜12が演算した値とを入力し、制御信号生成部13が出力する制御信号に基づいて、いずれかの値をレジスタ4〜6へ出力する。
演算器10は、レジスタ4の出力とバス14からのライトアドレスを演算してマルチプレクサ7に出力する。演算器11は、レジスタ5の出力とバス14からのライトストローブを演算してマルチプレクサ8に出力する。演算器12は、レジスタ6の出力とバス14からのライトデータを結合する。演算器12は、ライトデータを結合する場合、レジスタ5のライトストローブに基づいて、結合する位置を特定し、ライトデータを結合する。演算器10〜12は、転送要求を結合できないと判定した場合、演算した結果として、使用していないことを示す値を挿入してもよいし、演算結果を出力してもよい。
制御信号生成部13は、バス14から出力されるライトアドレス及びライトストローブ、レジスタ4の出力のライトアドレス、レジスタ5の出力のライトストローブを用いて、2種類の制御信号を生成する。具体的には、選択信号と書き込み信号とを生成する。選択信号は、マルチプレクサ7〜9から出力する値を選択する信号であり、マルチプレクサ7〜9それぞれに出力される。書き込み信号は、レジスタ4〜6の出力をFIFOバッファ1〜3へ書き込むことを指示する信号であり、FIFOバッファ1〜3それぞれに出力される。
図1においては、第1の転送要求に含まれるライトアドレス及びライトストローブがレジスタ4、5に格納され、第1の転送要求に後続する第2の転送要求に含まれるライトアドレス及びライトストローブがバス14から出力することに対応して、制御信号生成部13は、次の動作を行う。
制御信号生成部13は、上述したライトアドレスとライトストローブに基づいて、転送要求を結合できるか否か判定する。より具体的には、制御信号生成部13は、レジスタ4〜6の出力(以前受け付け、既に保持している転送要求)と現在の転送要求(バス14から転送される転送要求)がレジスタ6で使用していない領域に収まるか否かに基づいて、転送要求を結合できるか否か判定する。制御信号生成部13は、転送要求を結合可能と判定した場合、演算器10〜12から入力する信号をマルチプレクサに選択させる選択信号を生成する。一方、制御信号生成部13は、転送要求を結合できないと判定した場合、バス14から入力する信号をマルチプレクサに選択させる選択信号を生成する。
図2に示すレジスタ6の領域を用いて説明する。レジスタ6が1バイトのA〜D領域で示す4バイトから構成されているとする。既にライトアドレス100番地で右端のA領域にライトデータを保持したとする。具体的には、レジスタ4へライトアドレスとして100番地が保持され、レジスタ6のA領域にライトデータが保持されている場合を想定する。この場合、後から受け付ける転送要求が次の場合に、二つの転送要求を結合することが可能になる。レジスタ6のA領域に100番地に書き込むライトデータが保持されているため、レジスタ6が使用していない範囲に収まるライトアドレスが102〜106番地までとなる。また、データサイズとして、ライトアドレスが102番地でデータサイズが3バイト、2バイト、及び1バイトのいずれかの場合、ライトアドレスが104番地でデータサイズが2バイトと1バイトのいずれかの場合、106番地でデータサイズが1バイトのいずれかの場合となる。
また、制御信号生成部13は、転送要求を結合しない場合、書き込み信号を生成し、FIFOバッファ1〜3へ出力する。FIFOバッファ1〜3は、書き込み信号に基づいて、レジスタ4〜6が保持する値を格納する。なお、制御信号生成部13は、レジスタ4〜6が保持する値が各レジスタを使用していないことを示す値(以降、説明を簡単にするため「初期値」という)の場合、転送要求を結合しないと判定した場合であっても書き込み信号を生成しない。
続いて、本実施形態のFIFO装置21の動作をタイミングチャートを用いて説明する。図3,4は、ライトアドレスが連続する場合、転送要求を結合する例を示すタイミングチャートである。また、図5,6は、新たに届いた転送要求がレジスタ6で使用していない領域に収まる場合、転送要求を結合する例を示すタイミングチャートである。図3〜6では、クロックとして時刻T0からT5までを示している。また、レジスタにおいて、アドレスの値X、ライトストローブの値4'bxxxx、データの値32'hXXXX_XXXXは、初期値であることを前提とする。
まず、ライトアドレスが連続する場合に、転送要求を結合する例を説明する。図3において、クロックT0のとき、バス14にライトアドレス0x10、ライトストローブ4'b0001、データ32'hXXXX_XX55が転送されると、マルチプレクサ7〜9と演算器10〜12にそれぞれ入力される。また、ライトアドレス0x10は、制御信号生成部13へ入力され、ライトストローブ4'b0001は、演算器12及び制御信号生成部13に入力される。
演算器10は、レジスタ4のライトアドレスとバス14のライトアドレスとを用いて、転送要求を連結する場合のライトアドレスを演算する。このとき、演算器10は、転送要求を連結できるかを判定し、連結しないときには初期値を設定してもよいし、連結できるかの判定をすることなく演算した結果を設定する場合であってもよい。演算器10から出力されるライトアドレスが使用できない値(不正な値)であっても、制御信号生成部13から出力される選択信号によって、バス14のライトアドレスが選択されることになる。演算器11及び演算器12も同様に演算した結果を出力する。本実施形態では、一例として演算器10並びに演算器11、12は、初期値を設定する場合を示している。
制御信号生成部13は、バス14から入力されたライトアドレス及びライトストローブと、レジスタ4が保持するライトアドレス及びレジスタ5が保持するライトストローブとを比較し、転送要求が結合可能であるか否かを判定する。図3において、制御信号生成部13の項目の矢印は、ライトアドレス及びライトストローブに基づいて、結合可能か否かを判定する期間を示している。具体的には、制御信号生成部13は、レジスタ4のアドレスXとバス14から入力されたアドレス0x10とを比較する。この場合、アドレスがレジスタ6で使用していない領域に収まる範囲でないため、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができない。制御信号生成部13は、転送要求の結合が不可能であると判定し、バス14からの出力をレジスタ4〜6それぞれに出力する選択信号、図3では、L(ゼロ)を生成し、マルチプレクサ7〜9に出力する。T0からT1の間で、マルチプレクサ7〜9はバス14から出力されたデータを選択し、クロックT1の立ち上がりのタイミングで、レジスタ4〜6はバス14から出力されたデータを保持する。
また、制御信号生成部13は、レジスタ4〜6が保持する値が初期値であるため、書き込み信号をL(ゼロ)のままとする。ここでは、H(1)の場合、書き込み信号によってFIFOバッファ1〜3にレジスタ4〜6の値を書き込むこと前提とする。
クロックT1のとき、バス14にライトアドレス0x12、ライトストローブ4'b0010、データ32'hXXXX_AAXXが転送されると、マルチプレクサ7〜9と演算器10〜12にそれぞれ入力される。また、ライトアドレス0x12は、制御信号生成部13へ入力され、ライトストローブ4'b0010は、演算器12及び制御信号生成部13に入力される。
制御信号生成部13は、レジスタ4のライトアドレス0x10とバス14から入力されたライトアドレス0x12及びバス14から入力されたライトストローブ4'b0010とレジスタ5のライトストローブ4'b0001とをそれぞれ比較する。この場合、ライトアドレスがレジスタ6で使用していない領域に収まる範囲内の値であり、かつ、バスから入力されたライトストローブ4'b0010が、レジスタ5のライトストローブ4'b0001が使用する領域と重ならないため、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができる。図3では、データサイズをライトストローブで判定する。制御信号生成部13は、転送要求の結合が可能であると判定し、演算器10〜12からの出力をレジスタ4〜6それぞれに出力する選択信号、図3では、H(1)を生成し、マルチプレクサ7〜9に出力する。T1からT2の間で、マルチプレクサ7〜9は演算器10〜12から出力されたデータを選択し、クロックT2の立ち上がりのタイミングで、レジスタ4〜6は演算器10〜12から出力されたデータを保持する。
また、制御信号生成部13は、転送要求を結合するため、書き込み信号をL(ゼロ)のままとする。
クロックT2のとき、バス14にライトアドレス0x40、ライトストローブ4'b0001、データ32'hXXXX_XXFFが転送されると、マルチプレクサ7〜9と演算器10〜12にそれぞれ入力される。また、ライトアドレス0x40は、制御信号生成部13へ入力され、ライトストローブ4'b0001は、演算器12及び制御信号生成部13に入力される。
制御信号生成部13は、レジスタ4のライトアドレス0x10とバス14から入力されたライトアドレス0x40とを比較する。この場合、ライトアドレスがレジスタ6で使用していない領域に収まる範囲でないため、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができない。制御信号生成部13は、転送要求の結合が不可能であると判定し、バス14からの出力をレジスタ4〜6それぞれに出力する選択信号を生成し、マルチプレクサ7〜9に出力する。T2からT3の間で、マルチプレクサ7〜9はバス14から出力されたデータを選択し、クロックT3の立ち上がりのタイミングで、レジスタ4〜6はバス14から出力されたデータを保持する。
また、制御信号生成部13は、転送要求を結合しないため、書き込み信号をH(1)に変更する。FIFOバッファ1〜3は、クロックT3の立ち上がりのタイミングにおいて、レジスタ4〜6が保持するデータそれぞれを格納する。
クロックT3のとき、バス14にライトアドレス0x80、ライトストローブ4'b0001、データ32'hXXXX_XX11が転送されると、マルチプレクサ7〜9と演算器10〜12にそれぞれ入力される。また、ライトアドレス0x80は、制御信号生成部13へ入力され、ライトストローブ4'b0001は、演算器12及び制御信号生成部13に入力される。
制御信号生成部13は、レジスタ4のライトアドレス0x40とバス14から入力されたライトアドレス0x80とを比較する。この場合、ライトアドレスがレジスタ6で使用していない領域に収まる範囲でないため、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができない。制御信号生成部13は、転送要求の結合が不可能であると判定し、バス14からの出力をレジスタ4〜6それぞれに出力する選択信号を生成し、マルチプレクサ7〜9に出力する。T3からT4の間で、マルチプレクサ7〜9はバス14から出力されたデータを選択し、クロックT4の立ち上がりのタイミングで、レジスタ4〜6はバス14から出力されたデータを保持する。
また、制御信号生成部13は、転送要求を結合しないため、書き込み信号をH(1)を維持する。FIFOバッファ1〜3は、クロックT4の立ち上がりのタイミングにおいて、レジスタ4〜6が保持するデータそれぞれを格納する。
次に、新たに届いた転送要求がレジスタ6で使用していない領域に収まる場合に、転送要求を結合する例を説明する。図5において、クロックT0のとき、バス14にライトアドレス0x10、ライトストローブ4'b0001、データ32'hXXXX_XX55が転送されると、マルチプレクサ7〜9と演算器10〜12にそれぞれ入力される。また、ライトアドレス0x10は、制御信号生成部13へ入力され、ライトストローブ4'b0001は、演算器12及び制御信号生成部13に入力される。制御信号生成部13は、バス14から入力されたライトアドレス及びライトストローブと、レジスタ4、5が保持するライトアドレス及びライトストローブとを比較し、転送要求が結合可能であるか否かを判定する。図5において、制御信号生成部13の項目の矢印の意味は、図3と同様である。
制御信号生成部13は、レジスタ4のライトアドレスXとバス14から入力されたライトアドレス0x10とを比較する。この場合、ライトアドレスがレジスタ6で使用していない領域に収まる範囲でないため、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができない。制御信号生成部13は、転送要求の結合が不可能であると判定し、バス14からの出力をレジスタ4〜6それぞれに出力する選択信号、図5では、L(ゼロ)を生成し、マルチプレクサ7〜9に出力する。T0からT1の間で、マルチプレクサ7〜9はバス14から出力されたデータを選択し、クロックT1の立ち上がりのタイミングで、レジスタ4〜6はバス14から出力されたデータを保持する。
また、制御信号生成部13は、レジスタ4〜6が保持する値が初期値であるため、書き込み信号をL(ゼロ)のままとする。
クロックT1のとき、バス14にライトアドレス0x14、ライトストローブ4'b0100、データ32'hXXAA_XXXXが転送されると、マルチプレクサ7〜9と演算器10〜12にそれぞれ入力される。また、ライトアドレス0x14は、制御信号生成部13へ入力され、ライトストローブ4'b0100は、演算器12及び制御信号生成部13に入力される。
制御信号生成部13は、レジスタ4のライトアドレス0x10とバス14から入力されたライトアドレス0x14とを比較する。この場合、ライトアドレスがレジスタ6で使用していない領域に収まる範囲であり、かつ、バスから入力されたライトストローブ4'b0100は、レジスタ5のライトストローブ4'b0001が使用する領域と重ならないため、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができる。制御信号生成部13は、転送要求の結合が可能であると判定し、バス14からの出力をレジスタ4〜6それぞれに出力する選択信号、図5では、H(1)を生成し、マルチプレクサ7〜9に出力する。T1からT2の間で、マルチプレクサ7〜9は演算器10〜12から出力されたデータを選択し、クロックT2の立ち上がりのタイミングで、レジスタ4〜6は演算器10〜12から出力されたデータを保持する。
また、制御信号生成部13は、転送要求を結合するため、書き込み信号をL(ゼロ)のままとする。
クロックT2のとき、バス14にライトアドレス0x40、ライトストローブ4'b0001、データ32'hXXXX_XXFFが転送されると、マルチプレクサ7〜9と演算器10〜12にそれぞれ入力される。また、ライトアドレス0x40は、制御信号生成部13へ入力され、ライトストローブ4'b0001は、演算器12及び制御信号生成部13に入力される。
制御信号生成部13は、レジスタ4のライトアドレス0x10とバス14から入力されたライトアドレス0x40とを比較する。この場合、ライトアドレスがレジスタ6で使用していない領域に収まる範囲でないため、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができない。制御信号生成部13は、転送要求の結合が不可能であると判定し、バス14からの出力をレジスタ4〜6それぞれに出力する選択信号を生成し、マルチプレクサ7〜9に出力する。T2からT3の間で、マルチプレクサ7〜9はバス14から出力されたデータを選択し、クロックT3の立ち上がりのタイミングで、レジスタ4〜6はバス14から出力されたデータを保持する。
また、制御信号生成部13は、転送要求を結合しないため、書き込み信号をH(1)に変更する。FIFOバッファ1〜3は、クロックT3の立ち上がりのタイミングにおいて、レジスタ4〜6が保持するデータそれぞれを格納する。
クロックT3のとき、バス14にライトアドレス0x80、ライトストローブ4'b0001、データ32'hXXXX_XX11が転送されると、マルチプレクサ7〜9と演算器10〜12にそれぞれ入力される。また、ライトアドレス0x80は、制御信号生成部13へ入力され、ライトストローブ4'b0001は、演算器12及び制御信号生成部13に入力される。
制御信号生成部13は、レジスタ4のライトアドレス0x40とバス14から入力されたライトアドレス0x80とを比較する。この場合、ライトアドレスがレジスタ6で使用していない領域に収まる範囲でないため、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができない。制御信号生成部13は、転送要求の結合が不可能であると判定し、バス14からの出力をレジスタ4〜6それぞれに出力する選択信号を生成し、マルチプレクサ7〜9に出力する。T3からT4の間で、マルチプレクサ7〜9はバス14から出力されたデータを選択し、クロックT4の立ち上がりのタイミングで、レジスタ4〜6はバス14から出力されたデータを保持する。
また、制御信号生成部13は、転送要求を結合しないため、書き込み信号をH(1)を維持する。FIFOバッファ1〜3は、クロックT4の立ち上がりのタイミングにおいて、レジスタ4〜6が保持するデータそれぞれを格納する。
図3〜6では、二つの転送要求を結合する場合を説明したが、レジスタ6の使用していない領域にライトデータが収まる場合、3以上の転送要求を結合することも可能である。例えば、図4では、T3において、レジスタ6は、図2に示したA、B領域にライトデータを格納している。もし、T2において、転送要求が図2に示したC、D領域に格納できるライトデータを転送する場合、結合可能である。同様に、図6では、T3において、レジスタ6は、図2に示したA、C領域にライトデータを格納している。もし、T2において、転送要求が図2に示したB、D領域に格納できるライトデータを転送する場合、結合可能である。なお、本実施形態では、ライトストローブを用いて、データサイズ、データ格納位置を特定しているため、図2に示したB、D領域に格納できるライトデータを結合することが可能になっている。
このように、本実施形態では、結合可能な転送要求を複数結合して結合転送要求を生成し、バス15へアクセスすることにより、バスへアクセス回数を減らすことができる。これにより、バスへの負荷を低減することができる。
(実施形態2)
実施形態2では、図1の転送要求生成部20を複数備え、結合させた転送要求(結合転送要求)を複数保持する場合を説明する。図7は、本発明の実施形態2に係るFIFO装置の構成例を示す図である。また、図8は、実施形態2のFIFO装置の転送要求生成部と制御部との関係を示す図である。以下、実施形態1と異なる構成及び動作を中心に説明する。
図7に示すFIFO装置30は、FIFOバッファ1〜3、複数のマルチプレクサ(選択部)31〜33、制御部34及び複数の転送要求生成部40、41を備える。図7において、転送要求生成部40の入出力を実線で示し、転送要求生成部41の入出力を点線で示している。なお、マルチプレクサ31〜33から転送要求生成部41への入力の矢印は、転送要求生成部40と重なるため示されていない。
マルチプレクサ31〜33は、制御部34から出力される制御信号(選択信号)に応じて、転送要求生成部40、41から出力される転送要求のいずれかを選択する。
制御部34は、転送要求を受け入れることを複数の転送要求生成部40、41へ指示する機能と、転送要求生成部40、41が保持する転送要求をFIFOバッファ1〜3へ書き込む機能とを実現する。
まず、転送要求を受け入れることを複数の転送要求生成部40、41へ指示する機能について説明する。制御部34は、複数の転送要求生成部40、41のうちの少なくとも一つを選択し、選択した転送要求生成部へ、バス14から転送される転送要求の受け入れ開始を指示する。また、制御部34は、転送要求生成部から、バス14が新たに転送する転送要求を、既に保持している転送要求と結合できるか否かを判定した判定結果を受け取る。当該新たな転送要求が受け入れられない場合、当該新たな転送要求を受け入れる転送要求生成部を選択し、当該新たな転送要求の受け入れを指示する。
具体的には、他の転送要求生成部が転送要求の受け入れを開始していない場合、制御部34は、当該他の転送要求生成部へ転送要求の受け入れ開始を指示する。
また、新たな転送要求を結合できる転送要求生成部がない場合、具体的には複数の転送要求生成部のいずれも当該新たな転送要求を結合できない場合、制御部34は、複数の転送要求生成部のうちのいずれかを選択する。
そして、選択した転送要求生成部が当該新たな転送要求を結合できないという判定結果を通知していた場合、制御部34は、選択した転送要求生成部が保持する転送要求をFIFOバッファ1〜3へ書き込む機能を実施する。具体的には、制御部34は、マルチプレクサ31〜33へ選択した転送要求生成部が保持する転送要求を選択させ、選択した転送要求を、書き込み信号を用いて前記FIFOバッファ1〜3へ書き込む。これと同時に、制御部34は、選択した転送要求生成部へ当該新たな転送要求の受け入れを指示する。
転送要求生成部40、41は、既に保持している転送要求と、新たな転送要求とを結合できるか否かを判定する。既に保持している転送要求は、前回保持した転送要求であり、具体的には、最初に受け入れた転送要求(第1の転送要求とする)、または、第1の転送要求と置き換えられた結合転送要求のいずれかである。結合転送要求は、実施形態1と同様であるため説明を省略する。
転送要求生成部40、41は、判定結果を制御部34へ通知する。そして、結合可能と判定した場合、新たに生成した結合転送要求を保持する。また、結合不可と判定した場合、既に保持している転送要求を保持し続ける。その後、制御部34がバス14から転送される新たな転送要求の受け入れを要求した場合、転送要求生成部40、41は、新たな転送要求を次の転送要求として保持する。
図8を用いて転送要求生成部40の構成例を詳細に説明する。転送要求生成部40、41は、同様の構成、動作であるため、ここでは転送要求生成部40を用いて説明する。また、図1と同じ符号の構成要素は同様であるため説明を省略する。
制御信号生成部35は、制御部34から転送要求の受け入れ開始を指示している間、例えば、転送要求生成部40のステータスを示す信号がアクティブ(例えば、H)の間、転送要求の受け入れを制御する。制御信号生成部35は、バス14から新たに転送される転送要求が、既に保持している転送要求と結合できるか否かを判定し、判定結果を制御部34へ通知する。
結合可能と判定した場合、制御信号生成部35は、演算器36〜38に、結合転送要求を出力させる。これに対して、結合不可と判定した場合、制御信号生成部35は、演算器36〜38にレジスタ4〜6が保持する前回演算した結合転送要求を出力させる。例えば、演算器36は、制御信号生成部35から演算器36へ出力される制御信号がH(1)のときレジスタ4の値とバス14からのアドレスを演算して出力する。演算器36は、当該制御信号がL(0)のとき、レジスタ4の値を出力する。同時に、制御信号生成部35は、マルチプレクサ7〜9に結合転送要求(すなわち、演算器36〜38の出力)を選択させる選択信号を出力する。
また、制御信号生成部35は、制御部34から新たな転送要求の受け入れを指示された場合、マルチプレクサ7〜9に新たな転送要求(すなわち、バス14の出力)を選択させる選択信号を出力する。新たな転送要求の受け入れを指示される場合には、転送要求の受け入れ開始を指示された場合と、結合不可の判定結果を通知した後、新たな転送要求の受け入れを指示された場合とが含まれる。また、実施形態1と異なり、制御信号生成部35は、FIFOバッファ1〜3へ書き込み信号を出力しない。
続いて、本実施形態のFIFO装置30の動作をタイミングチャートを用いて説明する。図9、10は、実施形態2の転送要求を結合する例を示すタイミングチャートである。図9にバス14から転送される転送要求と転送要求生成部40の出力、図10に転送要求生成部41の出力とFIFOバッファへの書き込みを示す。ここでは、実施形態1と異なる動作を中心に説明し、同様の動作については説明を省略する。図9、10では、クロックとして時刻T0からT6までを示している。また、レジスタ4〜6において、アドレスの値X、ライトストローブの値4'bxxxx、データの値32'hXXXX_XXXXは、初期値であることを前提とする。
また、使用状態は、転送要求生成部40、41が転送要求の受け入れている間と、受け入れ開始前あるいは受け入れ中止している間とを示す。具体的には、転送要求を受け入れている間は、制御部34から転送要求生成部40、41それぞれの制御信号生成部35へ入力される制御信号(以降、この制御信号をステータス信号とする)がH(1)であることに応じて、転送要求を受け入れる期間である。また、受け入れ開始前あるいは受け入れ中止している間は、ステータス信号がL(0)であることに応じて転送要求を受け入れない期間である。
また、制御部34は、バス14に転送要求が転送されたときに、どちらの転送要求生成部に転送要求を受け入れるかを予め選択しておく。ここでは、始に転送要求生成部40に転送要求を受け入れるように選択されていることを前提とする。図9、10において、制御部34の処理の点線の矢印は、制御部34が転送要求を受け入れる転送要求生成部を選択する期間を示し、制御信号生成部35、36の処理の実線の矢印は、ライトアドレス及びライトストローブに基づいて、結合可能か否かを判定する期間を示している。
クロックT0のとき、制御部34は、バス14から転送要求が転送されたことを検出し、制御部34は転送要求生成部40を選択する。バス14から転送される転送要求が転送要求生成部40、41に入力される動作、及び、転送要求を結合可能か否かの判断は実施の形態と同様である。ここでは、転送要求生成部40の制御信号生成部35は、転送要求の結合が不可能であると判定する。
転送要求生成部40において、制御信号生成部35は、バス14からの出力をレジスタ4〜6それぞれに出力する選択信号をマルチプレクサ7〜9に出力する。T0からT1の間で、マルチプレクサ7〜9はバス14から出力されたデータを選択し、クロックT1の立ち上がりのタイミングで、レジスタ4〜6はバス14から出力されたデータを保持する。これと同時に、レジスタ4〜6が保持するデータがマルチプレクサ31〜33へ出力される。
クロックT1のとき、制御部34は、クロックT0での処理結果から、転送要求生成部40のステータス信号をHに設定する。制御信号生成部35は、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができるため、転送要求の結合が可能であると判定する。制御信号生成部35は、結合可能(すなわち転送要求受け入れ可能)の判定結果を制御部34へ通知する。またこのとき、制御信号生成部35は、演算器36〜38へ演算結果(すなわち、結合転送要求)を出力する制御信号を出力し、かつ、マルチプレクサ7〜9へ演算器36〜38の出力を選択する選択信号を出力する。T1からT2の間で、マルチプレクサ7〜9は演算器36〜38から出力されたデータを選択し、クロックT2の立ち上がりのタイミングで、レジスタ4〜6は演算器36〜38から出力されたデータを保持する。
クロックT2のとき、転送要求生成部40において、制御信号生成部35は、ライトアドレスがレジスタ6で使用していない領域に収まる範囲でないため、転送要求の結合ができないと判断する。制御信号生成部35は、結合不可(すなわち転送要求受け入れ不可)の判定結果を制御部34へ通知する。またこのとき、制御信号生成部35は、演算器36〜38へレジスタ4〜6が保持する値(すなわち、前回保持した結合転送要求)を出力する制御信号を出力し、かつ、マルチプレクサ7〜9へ演算器36〜38の出力を選択する選択信号を出力する。T2からT3の間で、マルチプレクサ7〜9は演算器36〜38から出力されたデータを選択し、クロックT3の立ち上がりのタイミングで、レジスタ4〜6は演算器36〜38から出力されたデータを保持する。
制御部34は、転送要求生成部40から結合不可の判定結果を受け取ると、他の転送要求生成部41の状態を確認する。ここでは、未使用であるため、制御部34は、転送要求生成部41へ新たな転送要求を受け入れることを指示する。このとき、制御部34は、転送要求生成部41を選択する。
クロックT3のとき、制御部34は、クロックT2での処理結果から、転送要求生成部41のステータス信号をHに設定する。転送要求生成部40の制御信号生成部35は、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができるため、転送要求の結合が可能であると判定する。一方、転送要求生成部41の制御信号生成部35は、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができないため、転送要求の結合ができないと判定する。以降の動作は、判定結果に応じて同様に実施される。
クロックT4のとき、転送要求生成部40の制御信号生成部35は、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができないため、転送要求の結合ができないと判定する。一方、転送要求生成部41の制御信号生成部35は、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができるため、転送要求の結合が可能であると判定する。以降の動作は、判定結果に応じて上記と同様に実施される。
クロックT5のとき、転送要求生成部40の制御信号生成部35は、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができないため、転送要求の結合ができないと判定する。同様に、転送要求生成部41の制御信号生成部35は、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができないため、転送要求の結合ができないと判定する。
制御部34は、両方の転送要求生成部40、41から結合不可の判定結果を受け取ると、いずれか一方を受け入れ先として選択する。制御部34は、単純に交互に選択する、結合回数が多い方を選択する、など任意のルールに基づいて選択する。ここでは、制御部34は、転送要求生成部40を選択し、転送要求生成部40へ新たな転送要求の受け入れを指示する。同時に、制御部34は、マルチプレクサ31〜33へ転送要求生成部40が保持する転送要求を選択させ、選択した転送要求を、書き込み信号を用いて前記FIFOバッファ1〜3へ書き込む。
図9において、制御部34は、新たな転送要求受け入れの指示を、ステータス信号を用いて行っている。具体的には、制御部34は、転送要求生成部40のデータを書き込み中の為、転送要求生成部40の使用状態ステータスをLにする。同時に、制御部34は、次の転送要求を受け入れる転送要求生成部を転送要求生成部40に選択する。
転送要求生成部40の制御信号生成部35は、制御部34からの指示に応じて、バス14からの出力を選択する選択信号をマルチプレクサ7〜9に出力する。T5からT6の間で、マルチプレクサ7〜9はバス14から出力されたデータを選択し、クロックT6の立ち上がりのタイミングで、レジスタ4〜6はバス14から出力されたデータを保持する。
クロックT6において、制御部34は、転送要求生成部41のデータを書き込み中の為、転送要求生成部41の使用状態ステータスをLにする。同時に、制御部34は、次の転送要求を受け入れる転送要求生成部を転送要求生成部41に選択する。転送要求生成部41の制御信号生成部35は、新たにバス14から受け付けた転送要求をレジスタ6で使用していない領域に収めることができないため、転送要求の結合ができないと判定する。
図10では、制御部34は、他の転送要求生成部40が使用開始しているため、新たな転送要求を受け入れさせるため、転送要求生成部41が出力する転送要求をFIFOバッファ1〜3へ書き込む場合を示している。
以上説明したように、本実施の形態では、複数の転送要求生成部を用いることにより、実施の形態1に比べ、より多くの転送要求を結合させることができる。これにより、FIFO装置30からバス15へ転送する転送要求の数を抑制し、転送効率を向上させることを可能とする。
なお、本実施形態では、FIFO装置30が二つの転送要求生成部40、41を備える場合を一例として説明したが、3以上の転送要求生成部を備える場合であってもよい。
(その他の実施形態)
実施形態1では、データサイズをライトストローブによって取得する場合を説明したが、データサイズとしてデータ部分の長さを示す値を用いてもよい。この場合、制御信号生成部13は、ライトアドレスとデータサイズとによって、転送要求が結合可能であるか否かを判定する。具体的には、レジスタ内において、既に保持しているデータが占める領域を除いた領域に新たな転送要求として受け取ったデータが書き込めるか否かを判定する。
図2を用いて説明する。A領域とB領域にライトデータが格納されている場合、書込み可能なレジスタ領域は、C領域とD領域であり、ライトアドレスとして、C領域の先頭アドレスが与えられる。この時、データサイズが2バイト以内であれば、レジスタの空き領域への書込みが可能であるため、結合可能と判定する。逆にデータサイズが3バイト以上であった場合は、結合不可能と判定する。
上記では、実施形態1を用いて説明したが、実施形態2も同様にデータサイズとしてデータ部分の長さを示す値を用いてもよい。
以上説明したように、上記各実施形態によれば、データを書き込む連続した転送要求があった時に、以前の転送領域と比較し、結合可能な場合に、それらを結合してFIFOバッファに格納することができることにより、1回の転送処理で済ますことができる。具体的には、FIFOバッファへの領域へ、ライトデータを結合して格納可能かどうか判定する比較手段(例えば、制御信号生成部13)と、その比較した結果により、結合して格納可能なライトデータの場合、ライトデータを結合し、FIFOバッファに格納する格納手段(例えば、マルチプレクサ7〜9、演算器10〜12、制御信号生成部13など)を備える。これにより、外部バスへの転送数を削減することが可能になる。従って、バスへの負荷を低減するとともに、転送効率の低下を抑制することができる。
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
1〜3 FIFOバッファ
4〜6 レジスタ
7〜9、31〜33 マルチプレクサ
10〜12、36〜38 演算器
13、35 制御信号生成部
20、40、41 転送要求生成部
21、30 FIFO装置
14、15 バス
34 制御部

Claims (13)

  1. 第一バスから転送される、ライトアドレス、データサイズ及びライトデータを含む転送要求を保持し、第二バスへ出力するFIFO(First-In First-Out)装置であって、
    第1の転送要求と、前記第1の転送要求に後続する第2の転送要求を、前記第一バスから受け付け、前記第1の転送要求のライトアドレス及びデータサイズと、前記第2の転送要求のライトアドレス及びデータサイズとに基づいて第1の転送要求と前記第2の転送要求とを結合できるか否かを判定し、結合できると判定した場合、前記第1の転送要求と前記第2の転送要求とを結合した結合転送要求を前記第1の転送要求に置き換えて保持し、出力する転送要求生成部と、
    前記転送要求生成部が出力する転送要求を保持し、前記第二バスへ転送するFIFOバッファと、を備えるFIFO装置。
  2. 前記転送要求生成部は、前記第1の転送要求と前記第2の転送要求とが、前記FIFOバッファが1回に転送するバッファ領域に収まる場合、前記判定において結合できると判定することを特徴とする請求項1記載のFIFO装置。
  3. 前記転送要求生成部は、前記第1の転送要求のライトデータと前記第2の転送要求のライトデータとが前記1回に転送するバッファ領域に収まる場合に、前記判定において結合できると判定することを特徴とする請求項2記載のFIFO装置。
  4. 前記転送要求生成部は、データサイズがライトデータストローブである転送要求を受け付け、前記第1の転送要求と前記第2の転送要求とがライトデータを前記1回に転送するバッファの領域に収まる範囲内であり、かつ、前記第2の転送要求のライトデータストローブが指定する領域を前記第1の転送要求で使用していない場合に、前記判定において結合できると判定することを特徴とする請求項2記載のFIFO装置。
  5. 前記転送要求生成部は、前記第1の転送要求と前記第2の転送要求が結合できないと判定した場合に、前記第1の転送要求を前記FIFOバッファに格納することを特徴とする請求項1または2に記載のFIFO装置。
  6. 前記転送要求生成部は、
    前記第1の転送要求と前記第2の転送要求とを用いて、前記結合転送要求のライトアドレス、データサイズ及びライトデータを演算する複数の演算器と、
    前記第2の転送要求と、前記結合転送要求とのいずれか一方を選択する選択信号に基づいて、前記第2の転送要求と、前記結合転送要求との一方に含まれるライトアドレス、データサイズ及びライトデータを出力する複数のマルチプレクサと、
    前記複数のマルチプレクサから出力された情報をそれぞれ保持する複数のレジスタと、
    前記第1の転送要求と前記第2の転送要求とが結合可能であるかを判定し、前記判定結果に基づいて、前記選択信号を前記複数のマルチプレクサに出力し、前記第2の転送要求を選択する選択信号を出力するときに、前記複数のレジスタが保持する情報を前記FIFOバッファへ格納することを指示する書き込み信号を出力する制御信号生成部と、を備えることを特徴とする請求項1乃至5のいずれか一項に記載のFIFO装置。
  7. 前記複数のレジスタは、ライトアドレス用レジスタ、データサイズ用レジスタ及びライトデータ用レジスタであり、各レジスタは、前記FIFOバッファにおいて、ライトアドレス、データサイズ及びライトデータそれぞれを格納する、前記1回に転送するバッファ領域と大きさであり、
    前記制御信号生成部は、前記第2の転送要求のライトアドレスが、第1の転送要求のライトデータと合わせて前記ライトデータ用レジスタに格納できる範囲を示すアドレスであり、前記第2の転送要求のデータサイズが前記ライドデータ用レジスタに第1の転送要求のライトデータが格納されていない空き領域の範囲内に収まる値である場合、前記判定において結合できると判定することを特徴とする請求項6記載のFIFO装置。
  8. 前記制御信号生成部は、前記判定において結合できると判定した場合、前記結合転送要求を出力する選択信号を前記複数のマルチプレクサへ出力し、結合できないと判定した場合、前記第2の転送要求を選択する選択信号を前記複数のマルチプレクサへ出力することを特徴とする請求項6または7記載のFIFO装置。
  9. 前記転送要求生成部を、複数備え、
    前記複数の転送要求生成部から出力される転送要求のいずれかを選択し、FIFOバッファへ出力する選択部と、
    前記複数の転送要求生成部から前記判定において結合できるか否かを通知され、結合できる転送要求生成部がない場合、一つの転送要求生成部を選択し、前記選択部を用いて前記選択した転送要求生成部が保持する転送要求を前記FIFOバッファへ出力させるとともに、前記選択した転送要求生成部へ新たな転送要求の受け入れを要求する制御部と、をさらに備えることを特徴とする請求項1乃至4のいずれか一項に記載のFIFO装置。
  10. 前記複数の転送要求生成部は、前記判定において結合できないことを通知したとき、前回保持した転送要求をそのまま保持し、前記制御部が前記第一バスから転送される新たな転送要求の受け入れを要求した場合、前記新たな転送要求を現在保持している転送要求と置き換えることを特徴とする請求項9記載のFIFO装置。
  11. 前記第1の転送要求と前記第2の転送要求とを用いて、前記結合転送要求のライトアドレス、データサイズ及びライトデータを演算する複数の演算器と、
    前記第2の転送要求と、前記演算器が出力する前記結合転送要求とのいずれか一方に含まれるライトアドレス、データサイズ及びライトデータを出力する複数のマルチプレクサと、
    前記複数のマルチプレクサから出力された前記第2の転送要求と前記結合転送要求とのいずれかを前記第1の転送要求として保持するとともに、前記選択部へ出力する複数のレジスタと、
    前記第1の転送要求と前記第2の転送要求とが結合可能であるか否かを判定し、判定結果を前記制御部へ通知するとともに、前記判定結果が結合可能の場合、前記演算器に前記結合転送要求を出力させ、前記判定結果が結合不可の場合、前記演算器に前記結合転送要求に替えて複数のレジスタが保持する前記第一の転送要求を出力させ、前記複数のマルチプレクサに前記演算器からの出力を選択させる選択信号を出力し、前記制御部から前記第一バスから転送される新たな転送要求の受け入を要求された場合、前記複数のマルチプレクサに前記第2の転送要求を選択させる選択信号を出力する制御信号生成部と、を備えることを特徴とする請求項9または10記載のFIFO装置。
  12. 前記制御部は、前記第1の転送要求と前記第2の転送要求が結合できると通知した転送要求生成部がない場合に、一つの転送要求生成部を選択し、選択した転送要求生成部が保持する転送要求を前記FIFOバッファに格納することを特徴とする請求項9乃至11のいずれか一項に記載のFIFO装置。
  13. ライトアドレス、データサイズ及びライトデータを含み、第二バスへ転送させる第1の転送要求を第一バスから受け付けて保持し、
    第2の転送要求をさらに前記第一バスから受け付け、
    前記第1の転送要求のライトアドレス及びデータサイズと、前記第2の転送要求のライトアドレス及びデータサイズとに基づいて前記第1の転送要求と前記第2の転送要求とを結合できるか否かを判定し、
    前記判定結果が結合できるという判定であった場合、前記第1の転送要求と前記第2の転送要求とを結合した結合転送要求を前記第1の転送要求と置き換えて保持し、
    前記判定結果が結合できないという判定であった場合、前記第1の転送要求をFIFOバッファに格納するFIFOバッファへのデータ格納方法。
JP2009072033A 2008-06-17 2009-03-24 Fifo装置及びfifoバッファへのデータ格納方法 Pending JP2010027032A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009072033A JP2010027032A (ja) 2008-06-17 2009-03-24 Fifo装置及びfifoバッファへのデータ格納方法
US12/457,282 US7925804B2 (en) 2008-06-17 2009-06-05 FIFO device and method of storing data in FIFO buffer

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008157402 2008-06-17
JP2009072033A JP2010027032A (ja) 2008-06-17 2009-03-24 Fifo装置及びfifoバッファへのデータ格納方法

Publications (1)

Publication Number Publication Date
JP2010027032A true JP2010027032A (ja) 2010-02-04

Family

ID=41415804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009072033A Pending JP2010027032A (ja) 2008-06-17 2009-03-24 Fifo装置及びfifoバッファへのデータ格納方法

Country Status (2)

Country Link
US (1) US7925804B2 (ja)
JP (1) JP2010027032A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016018251A (ja) * 2014-07-04 2016-02-01 株式会社ソシオネクスト データ転送装置及びデータ転送方法
JP2016189096A (ja) * 2015-03-30 2016-11-04 ルネサスエレクトロニクス株式会社 半導体装置
JP2021534684A (ja) * 2018-08-20 2021-12-09 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated リンク層データパッキング及びパケットフロー制御スキーム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880819B2 (en) 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
US8922571B2 (en) 2012-09-11 2014-12-30 Apple Inc. Display pipe request aggregation
US9117299B2 (en) 2013-05-08 2015-08-25 Apple Inc. Inverse request aggregation
US10592459B2 (en) * 2014-03-07 2020-03-17 Cavium, Llc Method and system for ordering I/O access in a multi-node environment
US9471955B2 (en) 2014-06-19 2016-10-18 Apple Inc. Multiple display pipelines driving a divided display
KR102428563B1 (ko) * 2015-09-30 2022-08-03 삼성전자주식회사 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들
US10216654B1 (en) * 2016-07-25 2019-02-26 EMC IP Holding Company LLC Data service-aware input/output scheduling
US10169273B2 (en) * 2017-01-11 2019-01-01 Qualcomm Incorporated Forced compression of single I2C writes
US11321240B2 (en) 2018-06-08 2022-05-03 International Business Machines Corporation MMIO addressing using a translation lookaside buffer
US10929302B2 (en) * 2018-06-08 2021-02-23 International Business Machines Corporation MMIO addressing using a translation table
TWI685744B (zh) * 2018-09-06 2020-02-21 大陸商深圳大心電子科技有限公司 指令處理方法及使用所述方法的儲存控制器
US11500901B2 (en) * 2019-06-28 2022-11-15 Nxp B.V. Apparatuses and methods involving synchronization using data in the data/address field of a communications protocol

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63292356A (ja) 1987-05-26 1988-11-29 Yokogawa Electric Corp Dma制御装置
US6018779A (en) * 1997-12-15 2000-01-25 Emc Corporation System for encapsulating a plurality of selected commands within a single command and transmitting the single command to a remote device over a communication link therewith
JP3206568B2 (ja) 1998-10-28 2001-09-10 日本電気株式会社 Dma制御方法及び装置
US6571319B2 (en) * 1999-06-04 2003-05-27 Sun Microsystems, Inc. Methods and apparatus for combining a plurality of memory access transactions
US7017020B2 (en) * 1999-07-16 2006-03-21 Broadcom Corporation Apparatus and method for optimizing access to memory
US6671752B1 (en) 2000-08-28 2003-12-30 International Business Machines Corporation Method and apparatus for bus optimization in a PLB system
US20030217223A1 (en) * 2002-05-14 2003-11-20 Infineon Technologies North America Corp. Combined command set
JP2006004340A (ja) 2004-06-21 2006-01-05 Victor Co Of Japan Ltd Dma転送制御装置
US7587521B2 (en) * 2005-06-23 2009-09-08 Intel Corporation Mechanism for assembling memory access requests while speculatively returning data

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016018251A (ja) * 2014-07-04 2016-02-01 株式会社ソシオネクスト データ転送装置及びデータ転送方法
JP2016189096A (ja) * 2015-03-30 2016-11-04 ルネサスエレクトロニクス株式会社 半導体装置
JP2021534684A (ja) * 2018-08-20 2021-12-09 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated リンク層データパッキング及びパケットフロー制御スキーム
JP7161032B2 (ja) 2018-08-20 2022-10-25 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド リンク層データパッキング及びパケットフロー制御スキーム

Also Published As

Publication number Publication date
US20090313402A1 (en) 2009-12-17
US7925804B2 (en) 2011-04-12

Similar Documents

Publication Publication Date Title
JP2010027032A (ja) Fifo装置及びfifoバッファへのデータ格納方法
US7500028B2 (en) DMA controller providing for ring buffer and rectangular block transfers
US10282343B2 (en) Semiconductor device
JP2006195714A (ja) リソース管理装置
JP2008033721A (ja) Dma転送制御装置
JP4855864B2 (ja) ダイレクトメモリアクセスコントローラ
WO2019084789A1 (zh) 直接存储器访问控制器、数据读取方法和数据写入方法
JP2009116702A (ja) 半導体集積回路
US9880961B2 (en) Asynchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry
JP5360594B2 (ja) Dma転送装置及び方法
JP4019757B2 (ja) 記憶装置
JP5528939B2 (ja) マイクロコンピュータ
JP2009059276A (ja) 情報処理装置およびプログラム
JP2009271610A (ja) バッファ制御回路、バッファ回路およびデータ処理装置
JP4696003B2 (ja) データ転送回路
JP2007140858A (ja) メモリアクセス方法及びメモリアクセス装置
JP5387155B2 (ja) Dma転送制御装置およびdma転送制御方法
JP2007272562A (ja) Fifoメモリ
JP2008250470A (ja) データ転送制御装置およびデータ転送制御方法
US6865654B2 (en) Device for interfacing asynchronous data using first-in-first-out
JP4514411B2 (ja) バス間通信インタフェース装置
JP2005321933A (ja) データ入出力装置およびデータ入出力方法
JP2000003332A (ja) 双方向バスサイズ変換回路
US6421280B1 (en) Method and circuit for loading data and reading data
JP2019053498A (ja) メモリ制御装置及びメモリ制御方法