JP2007249667A - データ転送装置およびデータ転送システム - Google Patents
データ転送装置およびデータ転送システム Download PDFInfo
- Publication number
- JP2007249667A JP2007249667A JP2006073095A JP2006073095A JP2007249667A JP 2007249667 A JP2007249667 A JP 2007249667A JP 2006073095 A JP2006073095 A JP 2006073095A JP 2006073095 A JP2006073095 A JP 2006073095A JP 2007249667 A JP2007249667 A JP 2007249667A
- Authority
- JP
- Japan
- Prior art keywords
- fifo
- data
- functional block
- data transfer
- read
- 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
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】メモリバスの帯域を節約でき、リード/ライトのデータ転送量の不一致が生じたときに内部データをクリア可能なデータ転送装置およびデータ転送システムを提供する。
【解決手段】通常動作時は、FIFO22の状態、リード/ライトリクエストの状態を監視し、FIFOが空の状態でリードリクエストRREQがあれば、転送をウェイトしてライトデータを待ち、リードリクエストRREQがなくFIFO22が空の状態のときにライトリクエストWREQがあれば、FIFO22に書き込める分だけライトデータを取り込み、その後ウェイトし、リード/ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合には、クリアモードに設定可能で、FIFO22の状態にかかわらず、マスタに対して固定の応答を行い、同時にFIFO内のデータをクリアしポインタを初期状態に戻すことができるFIFOコントローラ21を有する。
【選択図】図4
【解決手段】通常動作時は、FIFO22の状態、リード/ライトリクエストの状態を監視し、FIFOが空の状態でリードリクエストRREQがあれば、転送をウェイトしてライトデータを待ち、リードリクエストRREQがなくFIFO22が空の状態のときにライトリクエストWREQがあれば、FIFO22に書き込める分だけライトデータを取り込み、その後ウェイトし、リード/ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合には、クリアモードに設定可能で、FIFO22の状態にかかわらず、マスタに対して固定の応答を行い、同時にFIFO内のデータをクリアしポインタを初期状態に戻すことができるFIFOコントローラ21を有する。
【選択図】図4
Description
本発明は、複数の機能ブロック間でデータ転送を行うFIFOを用いたデータ転送装置およびデータ転送システムに関するものである。
通常、バスに接続された機能ブロックA,B間でデータ転送を行う場合、たとえば図1〜図3に示すような方法が知られている。
図1の例においては、機能ブロック(A)1,機能ブロック(B)2ともにバスマスタとして動作し、アービタ3、メモリコントローラ4、メモリ(DRAM, SRAMなど容量の大きいもの)5を介して転送する。
図2の例においては、一方の機能ブロックがマスタ、もう一方がスレーブとして転送する。
図2(A)の例では、機能ブロック(A)1がマスタで、機能ブロック(B)2がスレーブとして機能する。
図2(B)の例では、機能ブロック(B)2がマスタ、機能ブロック(A)1がスレーブとして機能する。
図2(A)の例では、機能ブロック(A)1がマスタで、機能ブロック(B)2がスレーブとして機能する。
図2(B)の例では、機能ブロック(B)2がマスタ、機能ブロック(A)1がスレーブとして機能する。
図3(A)の例においては、両方の機能ブロック1,2はスレーブとして動作し、外部DMAC6により、小容量(1バースト転送分など)のバッファ7を介して、もしくは図3(B)の例においては、フライバイで直接転送する。
なお、図中、破線は制御信号(アドレスなど)、実線はデータを表している。
なお、図中、破線は制御信号(アドレスなど)、実線はデータを表している。
図1のようなメモリを介した転送では、メモリバスの帯域を消費するので、特にUMA(Unified Memory Architecture)のシステムでは、帯域が足りないといった問題が起こりやすい。
一方、図2や図3のように機能ブロック間で直接転送する場合は、転送要求を受け取るスレーブ動作の機能が、機能ブロック側に必要となる。
一方、図2や図3のように機能ブロック間で直接転送する場合は、転送要求を受け取るスレーブ動作の機能が、機能ブロック側に必要となる。
メモリを介さずFIFO(First In First Out)を利用し、2つのマスタ間でデータ転送を行う方法として特許文献1に開示されたDMA転送時における特定領域コピー方式が知られている。
また、特許文献2には、内部データを強制的にクリアするFIFOが開示されている。
特開平1−129342号公報
特開平11−149365号公報
特許文献1に開示された方式では、2つのマスタがFIFO経由で直接接続されておらず、メモリにつながるバスを利用するのでメモリバス帯域の節約にはならない。
また、特許文献2に開示されたFIFOは、上位データと下位データの転送不一致をハードウェアで検出しクリアする機能を有するのみであり、このFIFOを機能ブロック間のデータ転送に利用した場合、リード/ライトのデータ転送量の不一致が生じたときに内部データをクリアすることはできないという不利益がある。
本発明は、メモリバスの帯域を節約でき、リード/ライトのデータ転送量の不一致が生じたときに内部データをクリアすることができるデータ転送装置およびデータ転送システムを提供することにある。
本発明の第1の観点は、第1の機能ブロックから第2の機能ブロックにデータを転送可能なデータ転送装置であって、転送データを保持可能なFIFOと、上記FIFOの状態、上記第1の機能ブロックおよび上記第2の機能ブロックからのライトリクエスト、リードリクエストの状態を監視し、当該監視結果に応じて上記FIFOへのデータのライト動作と、当該FIFOからのデータのリード動作を制御するコントローラを有し、上記コントローラは、上記FIFOの内部データ領域をクリアしたままで応答可能な機能を含む。
好適には、上記コントローラは、正しいデータ転送が行われない場合に、クリアモードに設定可能で、当該クリアモード時には上記FIFOの状態にかかわらず、上記第1および第2の機能ブロックの少なくとも一方に対して固定の応答を行い、上記FIFO内のデータをクリアする。
好適には、上記コントローラは、通常動作時は、上記FIFOの状態、リード/ライトリクエストの状態を監視し、当該FIFOが空の状態でリードリクエストがあれば、転送をウェイトしてライトデータを待ち、リードリクエストがなく上記FIFOが空の状態のときにライトリクエストがあれば、上記FIFOに書き込める分だけライトデータを取り込み、その後ウェイトし、リード/ライトのリクエストとデータが揃ったところで転送を開始する。
好適には、上記コントローラは、通常動作時は、上記FIFOの状態、リード/ライトリクエストの状態を監視し、当該FIFOが空の状態でリードリクエストがあれば、転送をウェイトしてライトデータを待ち、リードリクエストがなく上記FIFOが空の状態のときにライトリクエストがあれば、上記FIFOに書き込める分だけライトデータを取り込み、その後ウェイトし、リード/ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合にクリアモードとなり、上記FIFOの状態にかかわらず、上記第1および第2の機能ブロックの少なくとも一方に対して固定の応答を行い、上記FIFO内のデータをクリアする。
好適には、上記コントローラは、上記FIFO内のデータをクリアしポインタを初期状態に戻す。
本発明の第2観点のデータ転送システムは、複数の機能ブロックと、上記複数の機能ブロックによりアクセス可能なメモリと、上記複数の機能ブロックの上記メモリへのアクセスを調停するアービタと、上記複数の機能ブロックのうち、少なくとも第1の機能ブロックと第2の機能ブロック間に配置され、上記第1の機能ブロックから上記第2の機能ブロックにデータを転送可能なデータ転送装置と、を有し、上記データ転送装置は、転送データを保持可能なFIFOと、上記FIFOの状態、上記第1の機能ブロックおよび上記第2の機能ブロックからのライトリクエスト、リードリクエストの状態を監視し、当該監視結果に応じて上記FIFOへのデータのライト動作と、当該FIFOからのデータのリード動作を制御するコントローラと、を含むFIFO装置を有し、上記コントローラは、上記FIFOの内部データ領域をクリアしたままで応答可能な機能を含む。
好適には、上記データ転送装置は、上記第1の機能ブロックおよび第2の機能ブロックの少なくとも一方の機能ブロックのアクセス先が上記FIFO装置か上記メモリへのアクセスかを判断するデコーダを有する。
本発明によれば、機能ブロックにはマスタ機能だけの実装で、機能ブロック同士の直接転送を実現できる。
データ転送量に不整合が生じ、バスがスタックした状態から復帰することができる。
専用パスになるので、メモリバス帯域を消費しない。
また、回路規模はFIFOの容量により、小規模の実装も可能であり、システムに複数配置しても影響が少ない。
データ転送量に不整合が生じ、バスがスタックした状態から復帰することができる。
専用パスになるので、メモリバス帯域を消費しない。
また、回路規模はFIFOの容量により、小規模の実装も可能であり、システムに複数配置しても影響が少ない。
以下、本発明の実施形態を図面に関連付けて説明する。
図4は、本発明の実施形態に係るデータ転送システムの構成例を示す図である。
本実施形態においては、データ転送システムとしてビデオ信号処理装置を例に説明する。
本実施形態においては、データ転送システムとしてビデオ信号処理装置を例に説明する。
図4のビデオ信号処理装置10は、DMA(Direct Memory Access)コントローラ(DMAC)を含む機能ブロック11〜15、メモリコントローラ用アービタ16、メモリコントローラ17、メモリ18、アドレスデコーダ19−0,19−1、およびFIFOコントローラ21とFIFO22を有するFIFO装置20により構成されている。
そして、アドレスデコーダ19−0,19−1、およびFIFO装置20によりデータ転送装置30が形成される。
そして、アドレスデコーダ19−0,19−1、およびFIFO装置20によりデータ転送装置30が形成される。
DMAコントローラDMACはマスタとして、メモリコントローラ17、FIFOコントローラ21はスレーブとして動作する。また、図中の破線矢印は制御信号の方向、実線矢印はデータの方向を表している。
機能ブロック11は、たとえば垂直同期信号VSYNC,水平同期信号HSYNC等の各種同期信号を含むビデオ信号を入力するビデオ入力ブロック111、およびDMAC112を有する。
機能ブロック11のDMAC(W0)112は、入力したビデオ信号をメモリ18あるいはFIFO装置20のFIFO22に転送し、ライトする(書き込む)ためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
機能ブロック12は、FIFO装置20を介して転送された入力ビデオデータまたはメモリ18から読み出された(リードした)データに対する所定の処理、たとえば圧縮処理や伸長処理を行うビデオエフェクトブロック121、DMAC(R1)122、およびDMAC(W1)123を有する。
機能ブロック12のDMAC(R1)122は、FIFO装置20に保持された入力ビデオ信号(データ)のリード(読み出し)またはメモリ18に格納されているデータのリードのためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
機能ブロック12のDMAC(R1)123は、ビデオエフェクトブロック121でたとえば圧縮処理(場合によっては伸長処理)されたビデオデータをメモリ18に転送し、ライトする(書き込む)ためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
機能ブロック13は、メモリ18に格納されたデータに所定の処理、たとえば図示しない液晶表示装置(LCD)への表示データ作成等の処理を施す処理ブロック131、DMAC(R2)132、およびDMAC(W2)133を有する。
機能ブロック13のDMAC(R2)132は、メモリ18に格納されているデータのリードのためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
機能ブロック13のDMAC(R2)133は、処理ブロック131で、たとえば表示データ再生処理を施されたビデオデータをメモリ18に転送し、ライトする(書き込む)ためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
機能ブロック14は、メモリ18に格納されたデータに所定の処理、たとえば図示しない操作デバイスから指示された処理を施す処理ブロック141、DMAC(R3)142、およびDMAC(W3)143を有する。
機能ブロック14のDMAC(R3)142は、メモリ18に格納されているデータのリードのためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
機能ブロック14のDMAC(R3)143は、処理ブロック141で、操作デバイスの操作指示に応じた処理を施されたビデオデータをメモリ18に転送し、ライトする(書き込む)ためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
機能ブロック15は、メモリ18に格納されたデータに所定の処理、たとえばメモリカードやハードディスク等の図示しない外部記憶装置に記録するための所定の処理を施す処理ブロック151、DMAC(R4)152、およびDMAC(W4)153を有する。
機能ブロック15のDMAC(R4)152は、メモリ18に格納されているデータのリードのためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
機能ブロック15のDMAC(R4)153は、処理ブロック151で、外部記憶装置に転送するために処理されたデータ、あるいは外部記憶装置からリードされたデータをメモリ18に転送し、ライトする(書き込む)ためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
アービタ16は、機能ブロック11〜15におけるDMAC112、122,123、132,133、142,143、152,153とメモリコントローラ17とのメモリバスの調停を行う。
メモリコントローラ17は、アービタ16の調停に従って転送されたトランザクション用制御信号、各種コマンドに応じてメモリ18へのアクセスを制御する。
なお、メモリコントローラ17とメモリ18間のバス幅はたとえば32ビット幅である。
これに対して機能ブロック11〜15におけるDMAC112、122,123、132,133、142,143、152,153とメモリコントローラ17間のバス幅はたとえば64ビット幅である。
メモリ18は、たとえばDRAMにより形成される。
なお、メモリコントローラ17とメモリ18間のバス幅はたとえば32ビット幅である。
これに対して機能ブロック11〜15におけるDMAC112、122,123、132,133、142,143、152,153とメモリコントローラ17間のバス幅はたとえば64ビット幅である。
メモリ18は、たとえばDRAMにより形成される。
アドレスデコーダ19−0は、機能ブロック11のDMAC112から転送されたトランザクション用制御信号やコマンド、データがメモリ18へのアクセスかFIFO装置20へのアクセスかを判断し、判断結果に応じてアービタ16またはFIFO装置20に転送する。
アドレスデコーダ19−0は、アクセス先を判断する情報として、たとえばアドレスの上位ビットを利用しており、これによりDMAコントローラの変更は不要となる。
アドレスデコーダ19−0は、アクセス先を判断する情報として、たとえばアドレスの上位ビットを利用しており、これによりDMAコントローラの変更は不要となる。
アドレスデコーダ19−1は、機能ブロック12のDMAC122から転送されたトランザクション用制御信号やリードコマンドがメモリ18へのアクセスかFIFO装置20へのアクセスかを判断し、判断結果に応じてアービタ16またはFIFO装置20に転送し、メモリ18からリードされたデータまたはFIF装置20からリードされたデータを、機能ブロック12のDMAC122に転送する。
アドレスデコーダ19−1は、アクセス先を判断する情報として、たとえばアドレスの上位ビットを利用しており、これによりDMAコントローラの変更は不要となる。
アドレスデコーダ19−1は、アクセス先を判断する情報として、たとえばアドレスの上位ビットを利用しており、これによりDMAコントローラの変更は不要となる。
FIFO装置20は、図5に示すように、FIFOコントローラ21、およびFIFO22を有する。
FIFOコントローラ21は、通常動作時は、FIFO22の状態、リード/ライトリクエストの状態を監視し、監視状態に応じてアドレスデコーダ19−0を介してライトマスタとしてのDMAC112、アドレスデコーダ19−1を介してリードマスタとしてのDMAC122に応答する。
FIFOコントローラ21は、通常動作時は、FIFO22の状態、リード/ライトリクエストの状態を監視し、監視状態に応じてアドレスデコーダ19−0を介してライトマスタとしてのDMAC112、アドレスデコーダ19−1を介してリードマスタとしてのDMAC122に応答する。
FIFOコントローラ21は、FIFO22が空の状態でアドレスデコーダ19−1を介してDMAC122からのリードリクエストRREQがあれば、リードリクエストレスポンス(応答)RRRESPをアドレスデコーダ19−1を介してDMAC122に転送し、かつデータ転送をウェイトして(待ち状態として)アドレスデコーダ19−0からのライトデータを待つ。
同様に、FIFOコントローラ21は、リードリクエストRREQがなくFIFO22が空の状態のときに、アドレスデコーダ19−0を介してDMAC111からのライトリクエストWREQがあれば、ライトリクエストレスポンス(応答)WRRESPをアドレスデコーダ19−0を介してDMAC112に転送して、FIFO22に書き込める分だけ転送されてくるライトデータを取り込み、その後ウェイトする。リード/ライトのリクエストとデータが揃ったところで転送を開始させる。
また、本実施形態のFIFO装置20は、内部データ領域をクリアしたままでバスへの応答をするという動作を可能とする機能を有する。
この機能を利用することで、リード/ライトのデータ転送量の不一致による、バスのスタックを回避することができる。
同様に、FIFOコントローラ21は、リードリクエストRREQがなくFIFO22が空の状態のときに、アドレスデコーダ19−0を介してDMAC111からのライトリクエストWREQがあれば、ライトリクエストレスポンス(応答)WRRESPをアドレスデコーダ19−0を介してDMAC112に転送して、FIFO22に書き込める分だけ転送されてくるライトデータを取り込み、その後ウェイトする。リード/ライトのリクエストとデータが揃ったところで転送を開始させる。
また、本実施形態のFIFO装置20は、内部データ領域をクリアしたままでバスへの応答をするという動作を可能とする機能を有する。
この機能を利用することで、リード/ライトのデータ転送量の不一致による、バスのスタックを回避することができる。
このように、FIFO装置20においては、通常時には、FIFOコントローラ21が通常/クリア信号N/CをノーマルNとし、ライトイネーブル信号WrEnをFIFO装置22に出してデータを取り込み(ライトし)、また、リードイネーブル信号RdEnをFIFO装置22に出してデータをリードする。
また、FIFO22は、データをライトして満杯(フル:BF)状態にあるのか、データをリードしてまたはライトしておらず空(エンプティ:BE)状態にあるのかを信号BF,BEにてFIFOコントローラ21に報知する。
また、たとえば図示しないホストCPUからクリア要求を受けると、FIFOコントローラ21はクリア信号CをFIFO22に出力し、FIFO22をクリアし、入力データを取り込まず、固定データを出力するように制御する。
また、FIFO22は、データをライトして満杯(フル:BF)状態にあるのか、データをリードしてまたはライトしておらず空(エンプティ:BE)状態にあるのかを信号BF,BEにてFIFOコントローラ21に報知する。
また、たとえば図示しないホストCPUからクリア要求を受けると、FIFOコントローラ21はクリア信号CをFIFO22に出力し、FIFO22をクリアし、入力データを取り込まず、固定データを出力するように制御する。
本実施形態において、アービタ16とは別に、上記構成を有するアドレスデコーダ19−0,19−1、およびFIFO装置20により構成されるデータ転送装置30を、機能ブロック11のDMAC112と機能ブロック12のDMAC122間に配置して、機能ブロック間のデータ転送を実現している。
以下にこの構成のより具体的な機能、利点について、本実施形態に係るデータ転送装置を設けない場合と比較しながら説明する。
以下にこの構成のより具体的な機能、利点について、本実施形態に係るデータ転送装置を設けない場合と比較しながら説明する。
このシステムを利用して、ビデオ入力ブロック111から取り込んだ映像に対して、ビデオエフェクトブロック121で映像処理を行うとする。
通常、ビデオ入力ブロック111を含む機能ブロック11から入力された映像をメモリ18にライトし(書き込み)、ライトした(書き込んだ)データをビデオエフェクトブロック121を含む機能ブロック12で読み出すことで機能ブロック間のデータ転送を実現できる。
しかし、図1のようにメモリにアクセスする機能ブロックが多数ある場合、メモリの帯域が不足してしまい、実際には希望する時間内に転送が終了しないことが起こる。
通常、ビデオ入力ブロック111を含む機能ブロック11から入力された映像をメモリ18にライトし(書き込み)、ライトした(書き込んだ)データをビデオエフェクトブロック121を含む機能ブロック12で読み出すことで機能ブロック間のデータ転送を実現できる。
しかし、図1のようにメモリにアクセスする機能ブロックが多数ある場合、メモリの帯域が不足してしまい、実際には希望する時間内に転送が終了しないことが起こる。
ビデオ入力ブロック111を含む機能ブロック11から入力された映像を、他の機能ブロックで利用しないならば、直接ビデオエフェクトブロック121を含む機能ブロック12にデータを転送することで、他の機能ブロックに妨害されることなく確実な転送を実現でき、メモリ帯域も節約することができる。
通常、機能ブロック11から機能ブロック12に直接データ転送を行うには、機能ブロック11、機能ブロック12のどちらかにスレーブとして動作をする機能が必要となるが、それを実装することにより回路規模の増加や検証作業の増加が考えられる。
通常、機能ブロック11から機能ブロック12に直接データ転送を行うには、機能ブロック11、機能ブロック12のどちらかにスレーブとして動作をする機能が必要となるが、それを実装することにより回路規模の増加や検証作業の増加が考えられる。
本実施形態のデータ転送装置30は、前述したように、転送したいマスタ間に挿入することで、機能ブロックの変更なしにブロック間の直接データ転送を実現することが可能であり、FIFO装置20は、これを実現するためのFIFOコントローラ21およびFIFO22を有している。
機能ブロック側はマスタインターフェースのみの実装で、機能ブロック間の直接転送が実現できる。
また、本実施形態においては、付加回路として、メモリへのアクセスかFIFOへのアクセスかを判断するアドレスデコーダ19−0,19−1がある。前述したように、本実施形態の実装では、アクセス先を判断する情報としてアドレスの上位ビットを利用しており、これによりDMAコントローラの変更は不要となる。
機能ブロック側はマスタインターフェースのみの実装で、機能ブロック間の直接転送が実現できる。
また、本実施形態においては、付加回路として、メモリへのアクセスかFIFOへのアクセスかを判断するアドレスデコーダ19−0,19−1がある。前述したように、本実施形態の実装では、アクセス先を判断する情報としてアドレスの上位ビットを利用しており、これによりDMAコントローラの変更は不要となる。
本実施形態のデータ転送装置30においては、通常動作時は、FIFO22の状態、リード/ライトリクエストの状態を監視し、それに応じてリードマスタ(機能ブロック12)/ライトマスタ(機能ブロック11)にリードリクエストレスポンスRRRESP、ライトリクエストレスポンスWRRESPで応答する。
FIFOが空の状態でリードリクエストRREQがあれば、転送をウェイトしてライトデータを待つ。同様に、リードリクエストRREQがなくFIFO22が空の状態のときにライトリクエストWREQがあれば、FIFO22に書き込める分だけライトデータを取り込み、その後ウェイトする。リード/ライトのリクエストとデータが揃ったところで転送が開始される。
2つのマスタ(本実施形態では機能ブロック11と機能ブロック12)をFIFO経由で接続した場合、通常は、ある単位時間(たとえば1VSYNC)でのデータ転送量が同じになるようにマスタを設定するので、特に問題は起きない。
しかし、開発初期段階での設定ミスや、外部VSYNCの乱れにより予定外のデータ転送量となった場合、機能ブロック内の処理によって転送データ量が一定でない場合(たとえば、データ圧縮処理の場合、入力されたデータによって圧縮後のデータ量が変化する)など、どちらかがウェイトした状態となり、バスがスタックしてしまう。
しかし、開発初期段階での設定ミスや、外部VSYNCの乱れにより予定外のデータ転送量となった場合、機能ブロック内の処理によって転送データ量が一定でない場合(たとえば、データ圧縮処理の場合、入力されたデータによって圧縮後のデータ量が変化する)など、どちらかがウェイトした状態となり、バスがスタックしてしまう。
これを回避するために、本実施形態においては、FIFOコントローラ21内部にクリアモードを設けている。
なお、モードの変更は、レジスタとして内部に保持する実装でも、外部信号としてもらう実装でも良い。
このクリアモードに設定すると、FIFOコントローラ21はFIFO22の状態にかかわらず、マスタに対して固定の応答を行い、同時にFIFO内のデータをクリアしポインタを初期状態に戻すことができる。それによって、正しいデータ転送は行われないが、バスがスタックした状態から抜け出すことが可能となる。
なお、モードの変更は、レジスタとして内部に保持する実装でも、外部信号としてもらう実装でも良い。
このクリアモードに設定すると、FIFOコントローラ21はFIFO22の状態にかかわらず、マスタに対して固定の応答を行い、同時にFIFO内のデータをクリアしポインタを初期状態に戻すことができる。それによって、正しいデータ転送は行われないが、バスがスタックした状態から抜け出すことが可能となる。
ここで、モード変更を伴う動作の一例について、図6のフローチャートに関連付けて説明する。
図示しないCPUが機能ブロック11のDMAC112と機能ブロック12のDMAC122を設定し(ST1)、垂直同期信号VSYNCの割り込みがあると(ST2)、データ転送を開始する(ST3)。
データ転送装置30を介して正しい転送が行われた場合は、1垂直同期信号VSYNC毎にマスタ(機能ブロック11,12)から転送終了割り込みが図示しないCPUに入る(ST4)。
全データの転送が終了したか否かを判別し、終了していない場合には、ステップST1の処理に戻る(ST5)。ステップST5において全データの転送が終了したと判別するとデータ転送処理は終了する。
データ転送装置30を介して正しい転送が行われた場合は、1垂直同期信号VSYNC毎にマスタ(機能ブロック11,12)から転送終了割り込みが図示しないCPUに入る(ST4)。
全データの転送が終了したか否かを判別し、終了していない場合には、ステップST1の処理に戻る(ST5)。ステップST5において全データの転送が終了したと判別するとデータ転送処理は終了する。
一方、ステップST4において、正しい転送が行われず、1VSYNCの間にどちらかのマスタ(機能ブロック11または機能ブロック12)から割り込みがCPUに入力されない場合(ST6)、CPUがリード、ライト両方のDMAC112,DMAC122を停止する(ST7)。
そして、CPUがモードを通常モードからクリアモードに切り替える(ST8)。
マスタ(機能ブロック11,12)から終了割り込みがCPUに入り(ST9)、FIFOコントローラ21のステータスが読める実装になっている場合は、残った転送リクエスト(トランザクション)が残っているか否かをCPUで確認する(ST10)。
ステップST10において、残っているトランザクションがないと判別すると、CPUがFIFO装置20を通常モードに設定する(ST11)。
そして、ステップST1に戻り、CPUがDMACを再設定し、転送を再開する。
そして、CPUがモードを通常モードからクリアモードに切り替える(ST8)。
マスタ(機能ブロック11,12)から終了割り込みがCPUに入り(ST9)、FIFOコントローラ21のステータスが読める実装になっている場合は、残った転送リクエスト(トランザクション)が残っているか否かをCPUで確認する(ST10)。
ステップST10において、残っているトランザクションがないと判別すると、CPUがFIFO装置20を通常モードに設定する(ST11)。
そして、ステップST1に戻り、CPUがDMACを再設定し、転送を再開する。
以上説明したように、本実施形態によれば、通常動作時は、FIFO22の状態、リード/ライトリクエストの状態を監視し、それに応じてリードマスタ(機能ブロック12)/ライトマスタ(機能ブロック11)にリードリクエストレスポンスRRRESP、ライトリクエストレスポンスWRRESPで応答し、FIFOが空の状態でリードリクエストRREQがあれば、転送をウェイトしてライトデータを待ち、リードリクエストRREQがなくFIFO22が空の状態のときにライトリクエストWREQがあれば、FIFO22に書き込める分だけライトデータを取り込み、その後ウェイトし、リード/ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合には、クリアモードに設定可能で、FIFO22の状態にかかわらず、マスタに対して固定の応答を行い、同時にFIFO内のデータをクリアしポインタを初期状態に戻すことができるFIFOコントローラ21を有することから、以下の効果を得ることができる。
機能ブロックにはマスタ機能だけの実装で、機能ブロック同士の直接転送を実現できる。
データ転送量に不整合が生じ、バスがスタックした状態から復帰することができる。
専用パスになるので、メモリバス帯域を消費しない。
回路規模はFIFOの容量により、小規模の実装も可能であり、システムに複数配置しても影響が少ない。
データ転送量に不整合が生じ、バスがスタックした状態から復帰することができる。
専用パスになるので、メモリバス帯域を消費しない。
回路規模はFIFOの容量により、小規模の実装も可能であり、システムに複数配置しても影響が少ない。
本実施形態において、アービタ16とは別に、上記構成を有するアドレスデコーダ19−0,19−1、およびFIFO装置20により構成されるデータ転送装置30を、機能ブロック11のDMAC112と機能ブロック12のDMAC122間に配置しているが、機能ブロック間のデータ転送を実現できれば良く、他の機能ブロック間に配置し、さらに複数のデータ転送装置を異なる機能ブロック間に配置する等の態様が可能である。
10・・・ビデオ信号処理装置(データ転送システム)、11〜15・・・DMACを含む機能ブロック、16・・・メモリコントローラ用アービタ、17・・・メモリコントローラ、18・・・メモリ、19−0,19−1・・・アドレスデコーダ、20・・・FIFO装置、21・・・FIFOコントローラ、22・・・FIFO、30・・・データ転送装置。
Claims (12)
- 第1の機能ブロックから第2の機能ブロックにデータを転送可能なデータ転送装置であって、
転送データを保持可能なFIFOと、
上記FIFOの状態、上記第1の機能ブロックおよび上記第2の機能ブロックからのライトリクエスト、リードリクエストの状態を監視し、当該監視結果に応じて上記FIFOへのデータのライト動作と、当該FIFOからのデータのリード動作を制御するコントローラを有し、
上記コントローラは、
上記FIFOの内部データ領域をクリアしたままで応答可能な機能を含む
データ転送装置。 - 上記コントローラは、
正しいデータ転送が行われない場合に、クリアモードに設定可能で、当該クリアモード時には上記FIFOの状態にかかわらず、上記第1および第2の機能ブロックの少なくとも一方に対して固定の応答を行い、上記FIFO内のデータをクリアする
請求項1記載のデータ転送装置。 - 上記コントローラは、
通常動作時は、上記FIFOの状態、リード/ライトリクエストの状態を監視し、当該FIFOが空の状態でリードリクエストがあれば、転送をウェイトしてライトデータを待ち、リードリクエストがなく上記FIFOが空の状態のときにライトリクエストがあれば、上記FIFOに書き込める分だけライトデータを取り込み、その後ウェイトし、リード/ライトのリクエストとデータが揃ったところで転送を開始する
請求項1記載のデータ転送装置。 - 上記コントローラは、
通常動作時は、上記FIFOの状態、リード/ライトリクエストの状態を監視し、当該FIFOが空の状態でリードリクエストがあれば、転送をウェイトしてライトデータを待ち、リードリクエストがなく上記FIFOが空の状態のときにライトリクエストがあれば、上記FIFOに書き込める分だけライトデータを取り込み、その後ウェイトし、リード/ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合にクリアモードとなり、上記FIFOの状態にかかわらず、上記第1および第2の機能ブロックの少なくとも一方に対して固定の応答を行い、上記FIFO内のデータをクリアする
請求項1記載のデータ転送装置。 - 上記コントローラは、
上記FIFO内のデータをクリアしポインタを初期状態に戻す
請求項2記載のデータ転送装置。 - 上記コントローラは、
上記FIFO内のデータをクリアしポインタを初期状態に戻す
請求項4記載のデータ転送装置。 - 複数の機能ブロックと、
上記複数の機能ブロックによりアクセス可能なメモリと、
上記複数の機能ブロックの上記メモリへのアクセスを調停するアービタと、
上記複数の機能ブロックのうち、少なくとも第1の機能ブロックと第2の機能ブロック間に配置され、上記第1の機能ブロックから上記第2の機能ブロックにデータを転送可能なデータ転送装置と、を有し、
上記データ転送装置は、
転送データを保持可能なFIFOと、
上記FIFOの状態、上記第1の機能ブロックおよび上記第2の機能ブロックからのライトリクエスト、リードリクエストの状態を監視し、当該監視結果に応じて上記FIFOへのデータのライト動作と、当該FIFOからのデータのリード動作を制御するコントローラと、を含むFIFO装置を有し、
上記コントローラは、
上記FIFOの内部データ領域をクリアしたままで応答可能な機能を含む
データ転送システム。 - 上記データ転送装置は、
上記第1の機能ブロックおよび第2の機能ブロックの少なくとも一方の機能ブロックのアクセス先が上記FIFO装置か上記メモリへのアクセスかを判断するデコーダを有する
請求項7記載のデータ転送システム。 - 上記FIFO装置のコントローラは、
正しいデータ転送が行われない場合に、クリアモードに設定可能で、当該クリアモード時には上記FIFOの状態にかかわらず、上記第1および第2の機能ブロックの少なくとも一方に対して固定の応答を行い、上記FIFO内のデータをクリアする
請求項7記載のデータ転送システム。 - 上記FIFO装置のコントローラは、
通常動作時は、上記FIFOの状態、リード/ライトリクエストの状態を監視し、当該FIFOが空の状態でリードリクエストがあれば、転送をウェイトしてライトデータを待ち、リードリクエストがなく上記FIFOが空の状態のときにライトリクエストがあれば、上記FIFOに書き込める分だけライトデータを取り込み、その後ウェイトし、リード/ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合にクリアモードとなり、上記FIFOの状態にかかわらず、上記第1および第2の機能ブロックの少なくとも一方に対して固定の応答を行い、上記FIFO内のデータをクリアする
請求項7記載のデータ転送システム。 - ダイレクトアクセスメモリコントローラを含む複数の機能ブロックと、
上記複数の機能ブロックによりアクセス可能なメモリと、
上記複数の機能ブロックの上記メモリへのアクセスを調停するアービタと、
上記複数の機能ブロックうち、少なくとも第1の機能ブロックと第2の機能ブロック間に配置され、上記第1の機能ブロックから上記第2の機能ブロックにデータを転送可能なデータ転送装置と、を有し、
上記データ転送装置は、
転送データを保持可能なFIFOと、
上記FIFOの状態、上記第1の機能ブロックおよび上記第2の機能ブロックからのライトリクエスト、リードリクエストの状態を監視し、当該監視結果に応じて上記FIFOへのデータのライト動作と、当該FIFOからのデータのリード動作を制御するコントローラと、を含むFIFO装置を有し、
上記コントローラは、
上記FIFOの内部データ領域をクリアしたままで応答可能な機能を含む
データ転送システム。 - 上記第1の機能ブロックは、ビデオ信号の入力ブロックを含み、
上記第2の機能ブロックは、上記入力されたビデオ信号に対して所定の処理を行う処理ブロックを含む
請求項7から11のいずれか一に記載のデータ転送システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006073095A JP2007249667A (ja) | 2006-03-16 | 2006-03-16 | データ転送装置およびデータ転送システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006073095A JP2007249667A (ja) | 2006-03-16 | 2006-03-16 | データ転送装置およびデータ転送システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007249667A true JP2007249667A (ja) | 2007-09-27 |
Family
ID=38593882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006073095A Pending JP2007249667A (ja) | 2006-03-16 | 2006-03-16 | データ転送装置およびデータ転送システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007249667A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024947A1 (en) * | 2002-07-31 | 2004-02-05 | Frank Barth | Buffering non-posted read commands and responses |
JP2010258727A (ja) * | 2009-04-24 | 2010-11-11 | Hitachi Ltd | 画像圧縮装置 |
CN113590520A (zh) * | 2021-06-15 | 2021-11-02 | 珠海一微半导体股份有限公司 | Spi系统自动写入数据的控制方法及spi系统 |
-
2006
- 2006-03-16 JP JP2006073095A patent/JP2007249667A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024947A1 (en) * | 2002-07-31 | 2004-02-05 | Frank Barth | Buffering non-posted read commands and responses |
US8244950B2 (en) * | 2002-07-31 | 2012-08-14 | Advanced Micro Devices, Inc. | Buffering non-posted read commands and responses |
JP2010258727A (ja) * | 2009-04-24 | 2010-11-11 | Hitachi Ltd | 画像圧縮装置 |
CN113590520A (zh) * | 2021-06-15 | 2021-11-02 | 珠海一微半导体股份有限公司 | Spi系统自动写入数据的控制方法及spi系统 |
CN113590520B (zh) * | 2021-06-15 | 2024-05-03 | 珠海一微半导体股份有限公司 | Spi系统自动写入数据的控制方法及spi系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7478189B2 (en) | Deadlock avoidance in a bus fabric | |
US8417900B1 (en) | Power save module for storage controllers | |
TWI326839B (en) | Transmission device performing dma transmission, semiconductor integrated circuit device and data transmission method | |
JP2006113689A (ja) | バスブリッジ装置およびデータ転送方法 | |
US8386725B2 (en) | USB host controller and controlling method for USB host controller | |
JP2007249667A (ja) | データ転送装置およびデータ転送システム | |
WO1998054650A1 (fr) | Dispositif de communication dma | |
US8769167B2 (en) | Channel device, information processing system and data transfer method | |
JP2007226374A (ja) | データ処理装置 | |
JP2009271610A (ja) | バッファ制御回路、バッファ回路およびデータ処理装置 | |
JP2006338533A (ja) | Ecc回路を有するマルチレイヤバスシステム | |
JP2006285872A (ja) | マルチcpuシステム | |
JP2006119724A (ja) | Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム | |
JP2008118211A (ja) | データ転送装置及びデータ転送方法 | |
JP2010140440A (ja) | バス調停装置 | |
JP2701739B2 (ja) | プロセッサの系切替え方式 | |
JPH1141595A (ja) | ビデオデコーダlsi | |
JP2001243170A (ja) | データ転送装置 | |
JP2006092077A (ja) | バスシステム | |
JP2005010995A (ja) | マルチプロセッサシステム及びそのライトバックの障害処理方法 | |
JP2010152604A (ja) | 情報処理装置及び画像データ記録システム | |
JP2002268827A (ja) | 多重化記憶制御装置 | |
JP2008310547A (ja) | 画像形成装置 | |
JP2003122701A (ja) | インターフェース及び入出力デバイス | |
US20050237332A1 (en) | Information processor |