(57)【要約】【課題】  本発明は、外部デバイス及びメモリ間のデータ転送効率を一段と向上できるようにする。【解決手段】  本発明は、入出力ポートを介して接続された外部デバイスとの間で入出力を行うデータを一時的に蓄積して出力するために用いられるメモリ８０と、外部デバイスからメモリ８０に対してデータのデータ転送要求を受け付けた場合に当該データ転送要求のあった外部デバイスに対してのみメモリ帯域を動的に割り当てるＩ／Ｏバッファ２とを設けることにより、メモリ帯域を固定的に割り当てる場合と比較してメモリ帯域を無駄に消費することなくメモリ８０へのデータ転送効率を格段に向上することができる。【選択図】        図２
2005084907.tif 000002
【特許請求の範囲】
【請求項１】
入出力ポートを介して接続された外部デバイスとの間で入出力を行うデータを一時的に蓄積して出力するために用いられるメモリと、
上記外部デバイスから上記メモリに対して上記データのデータ転送要求を受け付けた場合に当該データ転送要求のあった外部デバイスの入出力ポートに対してのみメモリ帯域を動的に割り当てる制御手段と
を具えることを特徴とするメモリ帯域制御装置。
【請求項２】
上記制御手段は、上記メモリに対して同時に有効とする入出力ポート数を上記メモリ帯域を越えない範囲で設定する
ことを特徴とする請求項１に記載のメモリ帯域制御装置。
【請求項３】
上記制御手段は、上記外部デバイスから書込要求を受け付けた場合、当該外部デバイスからの上記データを書込専用バッファに一時的に格納し、上記外部デバイスから読出要求を受け付けた場合、外部から読み込んだ上記データを読出専用バッファに一時的に格納し、上記書込要求又は上記読出要求を受け付けた上記書込専用バッファ又は上記読出専用バッファに対して使用許可を動的に割り当てるセレクタ
を具えることを特徴とする請求項１に記載のメモリ帯域制御装置。
【請求項４】
上記セレクタは、上記書込専用バッファ又は上記読出専用バッファに格納された上記データを所定データ量単位で上記メモリへバースト転送する
ことを特徴とする請求項１に記載のメモリ帯域制御装置。
【請求項５】
入出力ポートを介して接続された外部デバイスとの間で入出力を行うデータを一時的に蓄積して出力するために用いられるメモリに対して行われた上記データのデータ転送要求を受け付けるデータ転送要求受付ステップと、
上記データ転送要求のあった外部デバイスの入出力ポートに対してのみメモリ帯域を動的に割り当てる制御ステップと
を具えることを特徴とするメモリ帯域割当方法。
【請求項６】
編集装置に対して、
入出力ポートを介して接続された外部デバイスとの間で入出力を行うデータを一時的に蓄積して出力するために用いられるメモリに対して行われた上記データのデータ転送要求を受け付けるデータ転送要求受付ステップと、
上記データ転送要求のあった外部デバイスの入出力ポートに対してのみメモリ帯域を動的に割り当てる制御ステップと
を実行させるためのメモリ帯域割当プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ帯域制御装置に関し、例えばビデオ編集装置に対して外部から入力したビデオ、オーディオ等の素材データをメモリに一旦格納し、その後当該メモリを介して素材データを加工したり、ハードディスクへバースト転送する際のメモリ帯域制御に適用して好適なものである。
【背景技術】
【０００２】
従来、ビデオ編集装置においては外部デバイスから入出力ポートを介して入力された素材データをハードディスクに格納する場合、当該素材データを一旦メモリに所定データ量以上蓄積した後にハードディスクへバースト転送することにより、転送効率を向上し短時間でデータ転送し得るようになされている。
【０００３】
またビデオ編集装置では、素材データの編集処理を行うに際し、ハードディスクに格納しておいた素材データをメモリを介してエフェクタ等の外部デバイスへ引き渡し、編集処理を施した後に当該メモリを介して編集処理後の素材データをバースト転送することにより再度ハードディスクに格納したり、外部へ出力したりするようになされている。
【０００４】
このようにビデオ編集装置では、メモリを介してハードディスクとの間で素材データのやりとりを行うようになされており、各種入出力ポートを介して接続されている複数の外部デバイスとメモリとの間でメモリ帯域を制御する必要がある。
【０００５】
すなわちビデオ編集装置では、メモリ帯域（ビット幅×クロック数）が例えば１００[Mbps]であって、１０個の外部デバイスが存在する場合、単純にメモリ帯域を外部デバイスの数で等分することにより、０．１秒間ずつ時分割（１０[Mbps]）で固定的に割り当てるようにしている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところでかかる構成のビデオ編集装置においては、入出力ポートを介して接続された外部デバイスに対して時分割で固定的にメモリ帯域を割り当てているため、当該メモリ帯域に応じて接続可能な外部デバイスの数が制限され、また素材データの入出力を行わない外部デバイスに対しても時分割で割り当てた分の帯域については無駄に消費することになるのでデータ転送効率が非常に悪いという問題があった。
【０００７】
本発明は以上の点を考慮してなされたもので、外部デバイス及びメモリ間のデータ転送効率を一段と向上し得るメモリ帯域制御装置を提案しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため本発明においては、入出力ポートを介して接続された外部デバイスとの間で入出力を行うデータを一時的に蓄積して出力するために用いられるメモリと、外部デバイスからメモリに対してデータのデータ転送要求を受け付けた場合に当該データ転送要求のあった外部デバイスの入出力ポートに対してのみメモリ帯域を動的に割り当てる制御手段とを設けることにより、メモリ帯域を固定的に割り当てる場合と比較して当該メモリ帯域を無駄に消費することなくメモリへのデータ転送効率を格段に向上することができる。
【０００９】
また本発明においては、入出力ポートを介して接続された外部デバイスとの間で入出力を行うデータを一時的に蓄積して出力するために用いられるメモリに対して行われたデータのデータ転送要求を受け付けるデータ転送要求受付ステップと、データ転送要求のあった外部デバイスの入出力ポートに対してのみメモリ帯域を動的に割り当てる制御ステップとを設けることにより、メモリ帯域を固定的に割り当てる場合と比較して当該メモリ帯域を無駄に消費することなくメモリへのデータ転送効率を格段に向上することができる。
【００１０】
さらに本発明においては、編集装置に対して、入出力ポートを介して接続された外部デバイスとの間で入出力を行うデータを一時的に蓄積して出力するために用いられるメモリに対して行われたデータのデータ転送要求を受け付けるデータ転送要求受付ステップと、データ転送要求のあった外部デバイスの入出力ポートに対してのみメモリ帯域を動的に割り当てる制御ステップとを実行させることにより、メモリ帯域を固定的に割り当てる場合と比較して当該メモリ帯域を無駄に消費することなくメモリへのデータ転送効率を格段に向上することができる。
【発明の効果】
【００１１】
上述のように本発明によれば、入出力ポートを介して接続された外部デバイスとの間で入出力を行うデータを一時的に蓄積して出力するために用いられるメモリと、外部デバイスからメモリに対してデータのデータ転送要求を受け付けた場合に当該データ転送要求のあった外部デバイスの入出力ポートに対してのみメモリ帯域を動的に割り当てる制御手段とを設けることにより、メモリ帯域を固定的に割り当てる場合と比較して当該メモリ帯域を無駄に消費することなくメモリへのデータ転送効率を格段に向上することができ、かくして外部デバイス及びメモリ間のデータ転送効率を一段と向上し得るメモリ帯域制御装置を実現できる。
【００１２】
また本発明によれば、入出力ポートを介して接続された外部デバイスとの間で入出力を行うデータを一時的に蓄積して出力するために用いられるメモリに対して行われたデータのデータ転送要求を受け付けるデータ転送要求受付ステップと、データ転送要求のあった外部デバイスの入出力ポートに対してのみメモリ帯域を動的に割り当てる制御ステップとを設けることにより、メモリ帯域を固定的に割り当てる場合と比較して当該メモリ帯域を無駄に消費することなくメモリへのデータ転送効率を格段に向上することができ、かくして外部デバイス及びメモリ間のデータ転送効率を一段と向上し得るメモリ帯域割当方法を実現できる。
【００１３】
さらに本発明によれば、編集装置に対して、入出力ポートを介して接続された外部デバイスとの間で入出力を行うデータを一時的に蓄積して出力するために用いられるメモリに対して行われたデータのデータ転送要求を受け付けるデータ転送要求受付ステップと、データ転送要求のあった外部デバイスの入出力ポートに対してのみメモリ帯域を動的に割り当てる制御ステップとを実行させることにより、メモリ帯域を固定的に割り当てる場合と比較して当該メモリ帯域を無駄に消費することなくメモリへのデータ転送効率を格段に向上することができ、かくして外部デバイス及びメモリ間のデータ転送効率を一段と向上し得るメモリ帯域割当プログラムを実現できる。
【発明を実施するための最良の形態】
【００１４】
以下、図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）メモリ帯域制御装置の回路構成
図１において、１は全体として編集装置に搭載される本発明のメモリ帯域制御装置を示し、例えばＤＤＲ−ＳＤＲＡＭ(Double Data Rate-Synchronous Dynamic Random Access Memory)でなるメモリ８０を介してハードディスク（ＨＤＤ）６０との間で素材データの授受を行うようになされている。
【００１６】
メモリ帯域制御装置１は、ＦＰＧＡ(Field Programmable Gate Array)構成でなり、Ｉ／Ｏ(In/Out)バッファ２に対し、第１ＳＤＩ(Serial Data Interface)−ＩＮポート３、第２ＳＤＩ−ＩＮポート４、第１ＳＤＩ−ＯＵＴポート５、第２ＳＤＩ−ＯＵＴポート６、ＥＮＣ／ＤＥＣ(Encoder/Decoder)ポート７、ＣＰＵポート１２等の各種入出力ポートを介して接続された第１のデバイス５０、第２のデバイス５１、第３のデバイス５２、第４のデバイス５３、ＥＮＣ／ＤＥＣ５４、ＣＰＵ６２との間で素材データの授受を行うと共に、ＰＣＩ(Peripheral Component Interconnect)ポート１１を介して接続されたハードディスク（ＨＤＤ）６０にメモリ８０経由で当該素材データを読み書きするようになされている。
【００１７】
なお第１ＳＤＩ−ＩＮポート３、第２ＳＤＩ−ＩＮポート４、第１ＳＤＩ−ＯＵＴポート５、第２ＳＤＩ−ＯＵＴポート６とＩ／Ｏバッファ２との間では、３種類のデータ転送を行うため３つのリードポート、または３つのライトポートを介して素材データを構成するビデオデータ、オーディオデータ及びメタデータを相互に授受し得るようになされている。
【００１８】
また、ＥＮＣ／ＤＥＣポート７やＰＣＩポート１１、ＣＰＵポート１２とＩ／Ｏバッファ２との間では、１つのリードポートと１つのライトポートを介してデータを相互に授受し得るようになされている。
【００１９】
また、外部に接続されないポートとしてＶＰＲＯＣ(Video Process)ポート１０があり、当該ＶＰＲＯＣポート１０とＩ／Ｏバッファ２との間では、必要に応じて単数または複数のリードポートとライトポートを介してデータを相互に授受し得るようになされている。
【００２０】
Ｉ／Ｏバッファ２は、メモリコントローラ７０を介してメモリ８０と各種入出力ポートとの間でデータ転送を仲介するモジュールであり、その内部に書込専用のＩ／ＯバッファＷ８１と読出専用のＩ／ＯバッファＲ８２とを有し、セレクタ８３によって書込時又は読出時でＩ／ＯバッファＷ８１とＩ／ＯバッファＲ８２とを切り換えるようになされている。
【００２１】
ここでＩ／ＯバッファＷ８１及びＩ／ＯバッファＲ８２は、各種入出力ポートとメモリ８０との転送レートの違いを吸収し、当該メモリ８０に対するバースト転送の連続実行効率を向上するために用いるようになされている。
【００２２】
このメモリ帯域制御装置１では、第１ＳＤＩ−ＩＮポート３、第２ＳＤＩ−ＩＮポート４、第１ＳＤＩ−ＯＵＴポート５、第２ＳＤＩ−ＯＵＴポート６、ＥＮＣ／ＤＥＣポート７、ＶＰＲＯＣポート１０、ＰＣＩポート１１、ＣＰＵポート１２等のうちデータ転送要求のあった入出力ポートに対してのみメモリ帯域を動的に割り当てるようになされており、当該メモリ帯域の割り当てに際しては各種入出力ポートとの間でハンドシェイクを行うようになされている。
【００２３】
基本的に各種入出力ポートは、メモリ８０に対する書込時又は読出時、Ｉ／Ｏバッファ２に対してデータ転送要求(Request)を出力し、それに対してＩ／Ｏバッファ２はデータ転送要求(Request)のあった入出力ポートに対して必要な帯域を割り当てると共に応答信号(Acknowledge)を出力することにより、当該入出力ポートに対してメモリ帯域を確保したことを伝えるようになされている。
【００２４】
なお、各種入出力ポート内には複数又は単数のリード／ライトポートがあり、Ｉ／Ｏバッファ２とのやりとりは、リードポート／ライトポート単位で行われる。
【００２５】
（２）帯域割当処理の概要
続いて、Ｉ／Ｏバッファ２がメモリ帯域割当プログラムに従って行うリード／ライトポートに対する帯域割当処理に関して図２を基に説明する。
【００２６】
例えばＩ／Ｏバッファ２のＩ／ＯバッファＷ８１は、ライトポート１３、１４、……、２８からのデータ転送要求(Request)を受け付けると、パッシブバンドアロケーション回路８１Ａ（以下、これを単にＰＢＡ回路と呼ぶ）を有したＩ／Ｏバッファコントローラ８１Ｂによって当該データ転送要求を受け付けた単数又は複数のライトポート１３、１４、……、２８に対してのみＩ／Ｏバッファ２及びメモリ８０間におけるメモリバスの帯域を動的に割り当てる。
【００２７】
Ｉ／Ｏバッファコントローラ８１Ｂは、ＰＢＡ回路８１Ａによってメモリ帯域を割り当てたライトポート１３、１４、……、２８から３２ビット幅のデータバスで順次転送された書込用の素材データを２５６ビット幅のデータバスで転送するべく変換した後バッファ８１Ｃへ出力し、当該バッファ８１Ｃに所定サイズのデータが蓄積されると、セレクタ８３のＰＢＡ回路８３Ａに対してデータ転送要求(Request)を出力する。
【００２８】
セレクタ８３のＰＢＡ回路８３Ａは、Ｉ／ＯバッファＷ８１からのデータ転送要求(Request)又はＩ／ＯバッファＲ８２からのデータ転送要求(Request)に応じて、メモリ８０との間でデータ転送を行うＩ／ＯバッファＷ８１又はＩ／ＯバッファＲ８２を交互に切り換えるようになされている。
【００２９】
メモリコントローラ７０は、セレクタ８３によって例えばＩ／ＯバッファＷ８１が選択されている間は第１ＳＤＴＩ−ＩＮポート３、第２ＳＤＴＩ−ＩＮポート４、ＥＮＣ／ＤＥＣポート７、ＶＰＲＯＣ１０、ＰＣＩポート１１、ＣＰＵポート１２等のいずれかを介して供給される書込用の素材データを当該Ｉ／ＯバッファＷ８１からメモリ８０へデータ転送し、Ｉ／ＯバッファＲ８２が選択されている間はメモリ８０から読み出した読出用の素材データを当該Ｉ／ＯバッファＲ８２を介して第１ＳＤＩ−ＯＵＴポート５、第２ＳＤＩ−ＯＵＴポート６、ＥＮＣ／ＤＥＣポート７、ＶＰＲＯＣポート１０、ＰＣＩポート１１、ＣＰＵポート１２のいずれかへ出力するようになされている。
【００３０】
なお、Ｉ／ＯバッファＲ８２の内部においてもリードとライトの違いはあるが、Ｉ／ＯバッファＷ８１と同様の処理を行っており、ここでは説明を省略する。
【００３１】
（２−１）Ｉ／ＯバッファＷの振る舞い
続いて、実際に各入出力ポート内のライトポート１３、１４、……、２８を介して書込用の素材データをメモリ８０へ順次バースト転送する場合のＩ／ＯバッファＷ８１の振る舞いについて図３を用いて具体的に説明する。
【００３２】
各ライトポート１３、１４、……、２８は内部にバッファを持ち、そのバッファに２５６[Byte]の書き込み用素材データが蓄積された時点で、Ｉ／ＯバッファＷ８１にデータ転送要求を出力する。
【００３３】
Ｉ／ＯバッファＷ８１のＰＢＡ回路８１Ａ（図２）は例えばライトポート１４からのみデータ転送要求を受け付けた場合、バッファ８１Ｃのうち最も若い番号が付された第１バンクを当該ライトポート１４に対して割り当てることによって、ライトポート１４に対してのみメモリ帯域を割り当てるようになされている。
【００３４】
この場合Ｉ／Ｏバッファコントローラ８１Ｂは、データ転送要求を受け付けたライトポート１４（♯２）とデータ転送要求を受け付けた順番（No.1）との対応関係を示すポートテーブル９１を作成し、当該ライトポート１４（♯２）にバッファ８１Ｃのうち最も若い番号が付された第１バンク（第１Ｂ）を割り当てたときのその対応関係を示すバンクテーブル９２を作成するようになされている。
【００３５】
そしてＩ／Ｏバッファコントローラ８１Ｂは、ライトポート１４から３２ビットのデータバス幅でポートスロット８４を介して書込用の素材データを順次取り込み、これを内部のレジスタ８７で２５６ビットのデータバス幅で出力すべく変換した後、バンクスロット８５を介してバッファ８１Ｃの第１バンクに１クロック当り２５６ビットの転送速度で順次格納し、計８クロック分終了した時点で第１バンク全てに合計２５６[Byte]の素材データを蓄積し得るようになされている。
【００３６】
ここでバッファ８１Ｃにおける第１バンク〜第１６バンクについては、２５６[Byte]をメモリ８０へのデータ転送単位として設定されており、このデータサイズであればメモリ８０へデータ転送した際のオーバーヘッドが少なく、かつ書込用の素材データが途切れなく効率的に転送できるようになされている。
【００３７】
なおＩ／ＯバッファＷ８１では、メモリ８０のバースト転送サイズを２５６[Byte]としているため、当該Ｉ／ＯバッファＷ８１内のデータ転送単位は全て基本的に２５６[Byte]である。
【００３８】
バッファ８１Ｃでは、第１バンクに２５６[Byte]の素材データが蓄積されると、セレクタ８３を介してメモリコントローラ７０に対してメモリ８０への素材データの書込要求を行い、当該メモリコントローラ７０から書込許可をもらうとセレクタ８３を介してメモリコントローラ７０へ２５６ビットずつ合計２５６[Byte]の素材データを順次データ転送する。
【００３９】
メモリコントローラ７０は、メモリ８０がダブルデータレートであるため、２５６ビット幅の書込データを１２８ビット幅で当該メモリ８０へデータ転送するようになされている。
【００４０】
一方Ｉ／Ｏバッファコントローラ８１Ｂは、ライトポート１３、１４、……、２８に２５６[Byte]の素材データが蓄積された順番でそれぞれのライトポート１３、１４、……、２８からデータ転送要求(Request)を受け付けた場合、バッファ８６、８７、８８で３２ビットから２５６ビットへ変換するため、各ライトポート１３、１４、……、２８からの素材データが２５６ビット蓄積するまでに８クロック要し、バッファ８１Ｃへのデータ転送は８クロックを時分割するので、８つのライトポートからの同時データ受付が可能である。
【００４１】
これにより、各ライトポート１３、１４、……、２８に割り当てられるメモリ帯域は、最大でメモリ帯域の８分の１の帯域となり、例えばメモリ帯域が１[Gbps]の場合、１ライトポートの最大メモリ帯域は１２５[Mbps]ということになる。
【００４２】
また、メモリ帯域を余り必要としない場合は、Ｉ／ＯバッファＷ８１に対し転送要求(Request)を出さなければメモリ帯域が割り当てられることはない。
【００４３】
このようにＩ／ＯバッファＷ８１は、転送要求(Request)に応じてメモリ帯域を割り当てるため、データ量の多いライトポートに対しては多くのメモリ帯域を割り当てることが可能となり、素材データをより効率的にデータ転送し得るようになされている。
【００４４】
このときも同様にＩ／Ｏバッファコントローラ８１Ｂは、データ転送要求(Request)を受け付けた順番に従ってライトポート１３、１４、……、２８とデータ転送要求(Request)の受け付け順との対応関係を示すポートテーブル９１を作成し、データ転送要求(Request)の受け付け順でバッファ８１Ｃの若い番号のバンクにライトポート１３、１４、……、２８を割り当てると共に、その対応関係を示すバンクテーブル９２を作成するようになされている。
【００４５】
ポートテーブル９１では、ライトポート１４（♯２）がNo.1で示される１番目のデータ転送要求(Request)であり、ライトポート１３（♯１）がNo.2で示される２番目のデータ転送要求(Request)であり、ライトポート２８（♯１６）がNo.3で示される３番目のデータ転送要求(Request)であることが表されている。
【００４６】
またバンクテーブル９２では、バッファ８１Ｃにおける第１バンク〜第１６バンクのうち当該第２バンク、第３バンク、第４バンク〜第１６バンクに対してデータ転送要求(Request)の受け付け順で割り当てられたライトポート１４、１３、２８の番号（♯２、♯１、♯１６）が示されている。
【００４７】
因みに、この場合の第１バンクについては上述したように既に前の段階で第２のＳＤＩ−ＩＮポート４からの素材データを蓄積していて使用中であるので、その時点で空いている最も若い第２バンク以降にライトポートが割り当てられることになる。
【００４８】
このようにＩ／Ｏバッファコントローラ８１Ｂは、ＰＢＡ回路８１Ａに対するデータ転送要求(Request)の受け付け順で各ライトポート１３、１４、……、２８をバッファ８１Ｃの各バンクに対して動的に割り当てるようになされている。
【００４９】
この場合にはライトポート１３、１４、……、２８の３個だけにメモリ帯域が割り当てられているので、転送要求を受け付けた順に最初の１クロックでライトポート１４から供給された素材データが第２バンクに２５６ビット分蓄積され、次の１クロックでライトポート１３から供給された素材データが第３バンクに２５６ビット分蓄積され、次の１クロックでライトポート２８から供給された素材データが第４バンクに２５６ビット分蓄積されるようになされている。
【００５０】
そして、各ライトポート１３、１４、……、２８はそれぞれ８クロック後に素材データが再度各バンクに２５６ビット分蓄積され、第２バンク〜第４バンクに対してそれぞれ合計２５６[Byte]の書込用の素材データが蓄積されるようになされている。
【００５１】
バッファ８１ＣはデュアルポートＲＡＭ構成であり、第２バンク〜第４バンクに２５６[Byte]の素材データが蓄積され次第、メモリコントローラ７０からの書込許可に応じて第２バンクから順に素材データを２５６ビットずつ合計２５６[Byte]をメモリコントローラ７０を介してメモリ８０へデータ転送し、同様に第３バンク、第４バンクと順次メモリコントローラ７０を介してメモリ８０へ素材データを転送し得るようになされている。
【００５２】
このようにバッファ８１ＣがデュアルポートＲＡＭ構成であるため、Ｉ／Ｏバッファコントローラ８１Ｂは、バッファ８１Ｃの第１バンク〜第１６バンクに対する素材データの蓄積と、当該バッファ８１Ｃの第１バンク〜第１６バンクからの素材データの読み出しを非同期で実行し得るようになされている。
【００５３】
従ってバッファ８１Ｃは、例えばＩ／Ｏバッファコントローラ８１Ｂによって第２バンク〜第４バンクに対する素材データの蓄積中に、既に蓄積されている第１バンクの素材データをメモリ８０へデータ転送することも可能であり、その分データ転送効率を向上させ得るようになされている。
【００５４】
ところでＩ／ＯバッファＷ８１は、メモリ８０に対する素材データの書込専用に用いられており、これにより書込コマンド又は読出コマンドを交互に何回も出力する場合と比較して、書き込みと読み出しの切り換えに要する時間が必要なくなり、データ転送効率を大幅に向上し得るようにもなされている。
【００５５】
（２−２）Ｉ／ＯバッファＲの振る舞い
次に、実際にメモリ８０から読み出した読出用の素材データをＩ／ＯバッファＲ８２を介して例えばリードポート２９、３０、……、４４へデータ転送する場合のＩ／ＯバッファＲ８２の振る舞いについて図４を用いて具体的に説明する。
【００５６】
図３との対応部分に同一符号を付して示す図４において、図３におけるＩ／ＯバッファＷ８１に代えてＩ／ＯバッファＲ８２を用いている以外は全て同一である。
【００５７】
Ｉ／ＯバッファＲ８２のＰＢＡ回路（図示せず）は、例えばリードポート３０からのみメモリ８０に格納されている読出用の素材データのデータ転送要求を受け付けた場合、当該リードポート３０に対してのみメモリ帯域を割り当てると共に、バッファ８２Ｃのうち最も若い番号が付された第１バンクを当該リードポート３０に対して割り当てる。
【００５８】
この場合Ｉ／Ｏバッファコントローラ８２Ｂは、データ転送要求を受け付けたリードポート３０（♯２）とデータ転送要求を受け付けた順番（No.1）との対応関係を示すポートテーブル１０１を作成し、当該リードポート３０（♯２）にバッファ８２Ｃのうち最も若い番号が付された第１バンク（第１Ｂ）を割り当てたときのその対応関係を示すバンクテーブル１０２を作成するようになされている。
【００５９】
そしてＩ／Ｏバッファコントローラ８２Ｂは、セレクタ８３を介してメモリコントローラ７０に対して読出用の素材データのデータ転送要求を行い、メモリ８０から当該素材データのデータ転送を受けてバッファ８２Ｃの第１バンクに１クロック当り２５６ビットの転送速度で順次格納し、計８クロック分終了した時点で第１バンク全てに合計２５６[Byte]の素材データを蓄積し得るようになされている。
【００６０】
そしてＩ／Ｏバッファコントローラ８２Ｂは、バッファ８２Ｃの第１バンクから２５６ビットの素材データをバンクスロット１０５を経由して取り込み、レジスタ１０７を介して３２ビットのデータバス幅で出力すべく変換した後、ポートスロット１０４を介してリードポート３０へデータ転送し、当該リードポート３０に合計２５６[Byte]の素材データが蓄積された時点でデータ転送処理を終了する。
【００６１】
またＩ／Ｏバッファコントローラ８２Ｂは、リードポート２９、３０、……、４４からメモリ８０に対する読出用の素材データのデータ転送要求をそれぞれ受け付けた場合、転送要求を出したリードポート２９、３０、……、４４のみに対してメモリ帯域を割り当てることが可能である。
【００６２】
Ｉ／Ｏバッファコントローラ８２Ｂは、データ転送要求を受け付けた順番に従ってリードポート２９、３０、……、４４と、データ転送要求の受け付け順との対応関係を示すポートテーブル１０１を作成し、データ転送要求の受け付け順でバッファ８２Ｃの若い番号のバンクにリードポートを割り当てると共に、その対応関係を示すバンクテーブル１０２を作成するようになされている。
【００６３】
この場合のポートテーブル１０１では、リードポート３０（♯２）がNo.1で示される１番目のデータ転送要求(Request)であり、リードポート２９（♯１）がNo.2で示される２番目のデータ転送要求(Request)であり、リードポート４４（♯１６）がNo.3で示される３番目のデータ転送要求(Request)であることが表されている。
【００６４】
またバンクテーブル１０２では、バッファ８２Ｃにおける第１バンク〜第１６バンクのうち当該第２バンク、第３バンク、第４バンク〜第１６バンクに対してデータ転送要求の受け付け順で割り当てられたリードポート２９、３０、……４４の番号（♯２、♯１、♯１６）が示されている。
【００６５】
因みに、この場合の第１バンクのついては上述したように既に前の段階でリードポート３０からのデータ転送要求に応じて読出用の素材データを蓄積していて使用中であるので、その時点で空いている最も若い第２バンク以降にリードポートが割り当てられている。
【００６６】
このようにＩ／Ｏバッファコントローラ８２Ｂは、ＰＢＡ回路（図示せず）に対するデータ転送要求の受け付け順で各リードポート２９、３０、……４４をバッファ８２Ｃの各バンクに対して動的に割り当てるようになされている。
【００６７】
実際上、Ｉ／Ｏバッファコントローラ８２Ｂも、Ｉ／Ｏバッファコントローラ８１Ｂと同様に、転送要求のあったバンクに対し順番にメモリ８０から２５６ビットずつ２５６[Byte]のバースト転送を行う。
【００６８】
この場合は、リードポート３０、リードポート２９、リードポート４４の順に３個のリードポートだけにメモリ帯域が割り当てられているので、メモリ８０から読み出した素材データが第２バンクに２５６[Byte]分蓄積され、次にメモリ８０からの素材データが第３バンクに２５６[Byte]分蓄積され、次にメモリ８０からの素材データが第４バンクに２５６[Byte]分蓄積されるようになされている。
【００６９】
バッファ８２ＣはデュアルポートＲＡＭ構成であり、第２バンク〜第４バンクにそれぞれ２５６[Byte]の素材データが蓄積され次第、当該第２バンク〜第４バンクの素材データを２５６ビットずつＩ／Ｏバッファコントローラ８２Ｂへ時分割で順次データ転送するようになされている。
【００７０】
Ｉ／Ｏバッファコントローラ８２Ｂは、レジスタ１０６〜レジスタ１０８で２５６ビット幅の素材データを３２ビット幅に変換し、ポートスロット１０４を介してそれぞれのリードポート２９、３０、……４４に対してデータ転送する。
【００７１】
このようにバッファ８２ＣについてもデュアルポートＲＡＭ構成であるため、Ｉ／Ｏバッファコントローラ８２Ｂは、バッファ８２Ｃの第１バンク〜第１６バンクに対する素材データの蓄積と、当該バッファ８２Ｃの第１バンク〜第１６バンクから読み出した素材データの出力とをそれぞれ非同期で実行し得るようになされている。
【００７２】
従ってバッファ８２Ｃは、例えばＩ／Ｏバッファコントローラ８２Ｂによって第２バンク〜第４バンクに対する素材データの蓄積中に、既に蓄積されている第１バンクの素材データをＩ／Ｏバッファコントローラ８２Ｂを介してリードポート３０へデータ転送することも可能であり、その分データ転送効率を向上させ得るようになされている。
【００７３】
ところでＩ／ＯバッファＲ８２は、メモリ８０からの素材データを読出専用に用いられており、これにより書込コマンド又は読出コマンドを交互に何回も出力する場合と比較して、書き込みと読み出しの切り換えに要する時間が必要なくなり、データ転送効率を大幅に向上し得るようになされている。
【００７４】
（３）動作及び効果
以上の構成において、メモリ帯域制御装置１のＩ／Ｏバッファ２はデータ転送要求のあった入出力ポートに対してのみメモリ帯域を動的に割り当てるようにしたことにより、必要なときに必要な分だけメモリ帯域を割り当てることができるので、従来のようにメモリ帯域を固定的に割り当てる場合と比較してメモリ帯域を無駄に消費することを防止してメモリ８０へのデータ転送効率を格段に向上することができる。
【００７５】
なおメモリ帯域制御装置１のＩ／Ｏバッファ２は、データ転送要求のあった入出力ポートに対してのみメモリ帯域を動的に割り当てるようにしたことにより、当該Ｉ／Ｏバッファ２に接続された各種入出力ポート数はメモリ帯域を越えない範囲内で制御すれば理論的に無限とすることができ、メモリ帯域に応じて外部デバイスの数が制限されることもなく一段と使い勝手を向上することもできる。
【００７６】
またＩ／ＯバッファＷ８１のＩ／Ｏバッファコントローラ８１Ｂは、データ転送要求の順番に従ってメモリ帯域を動的に割り当てたライトポート１３、ライトポート１４、……、ライトポート２８に対し、バッファ８１Ｃの若い番号順に例えば第２バンク〜第４バンクを割り当て、当該割り当てた第２バンク〜第４バンクに対して２５６ビットのデータ転送単位でなる書込用の素材データを１クロックずつタイムシェアリングしながら順番に蓄積するようにしたことにより、当該割り当てた第２バンク〜第４バンクに対して合計２５６[Byte]の書込データをほぼ同時に転送し終えることができる。
【００７７】
これに対して、第２バンク〜第４バンクに対してタイムシェアリングしないでデータ転送した場合には、ライトポート１３、ライトポート１４、……、ライトポート２８から入力した書込用の素材データをレジスタ８６、８７及び８８で一旦保持して待たざるを得なくなり、当該Ｉ／Ｏバッファコントローラ８１Ｂとバッファ８１Ｃとの間でデータ転送すべき素材データがレジスタ８６、８７及び８８で滞ることになりかねない。
【００７８】
しかしながらＩ／Ｏバッファコントローラ８１Ｂは、ライトポート１３、ライトポート１４、……、ライトポート２８に対して割り当てた第２バンク〜第４バンクへ２５６ビットの素材データを１クロックずつタイムシェアリングしながら順番に蓄積するようにしたことにより、当該第２バンク〜第４バンクに対して合計２５６[Byte]の素材データをほぼ同時に転送し終えることができると同時に、レジスタ８６、８７及び８８に素材データを滞らせることを防止してデータ転送効率を向上させることができる。
【００７９】
なお、このことはＩ／ＯバッファＲ８２のＩ／Ｏバッファコントローラ８２Ｂについても同様である。
【００８０】
さらにＩ／Ｏバッファ２は、書込専用のＩ／ＯバッファＷ８１と読出専用のＩ／ＯバッファＲ８２を用いるようにしたことにより、書き込みと読み出しの切り換えに要する時間が必要なくなるので、大幅にデータ転送効率を向上することができる。
【００８１】
実際上、メモリ帯域制御装置１のＩ／Ｏバッファ２は書込専用のＩ／ＯバッファＷ８１と読出専用のＩ／ＯバッファＲ８２を用い、セレクタ８３のＰＢＡ回路８３Ａで動的に切り換えながら書込許可又は読出許可を与えるようにしたことにより、書き込み又は読み出しのそれぞれで２５６ビット単位のバースト転送を８回連続で行った場合、クロック周波数が７４[MHz]で95.16％、１００[MHz]で95.84％の最高使用効率を得ることができた。
【００８２】
以上の構成によれば、メモリ帯域制御装置１のＩ／Ｏバッファ２はデータ転送要求のあった入出力ポートに対してのみメモリ帯域を動的に割り当てるようにしたことにより、従来のようにメモリ帯域を固定的に割り当てる場合と比較してメモリ帯域を無駄に消費することなくメモリ８０へのデータ転送効率を格段に向上することができる。
【００８３】
（４）他の実施の形態
なお上述の形態においては、バッファ８１Ｃ及び８２Ｃの第１バンク〜第１６バンクに対して素材データを２５６ビットずつ８クロック分のバースト転送をすることにより合計２５６[Byte]蓄積するようにした場合について述べたが、本発明はこれに限らず、４クロック分又は１６クロック分のバースト転送をすることにより１２８[Byte]や５１２[Byte]蓄積するようにしても良い。
【００８４】
さらに上述の実施の形態においては、Ｉ／Ｏバッファ２がメモリ帯域割当プログラムに従って上述のメモリ帯域割当処理を実行するようにした場合について述べたが、本発明はこれに限らず、メモリ帯域割当プログラムが格納されたプログラム格納媒体を編集装置にインストールすることによりメモリ帯域割当処理を実行するようにしても良い。
【００８５】
このように上述したメモリ帯域割当処理を実行するためのメモリ帯域割当プログラムを編集装置にインストールして実行可能な状態にするためのプログラム格納媒体としては、例えばフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory ）、ＤＶＤ（Digital Versatile Disc）等のパッケージメディアのみならず、メモリ帯域割当プログラムが一時的もしくは永続的に格納される半導体メモリや磁気ディスク等で実現しても良い。またこれらプログラム格納媒体にメモリ帯域割当プログラムを格納する手段として、ローカルエリアネットワークやインターネット、ディジタル衛星放送等の有線及び無線通信媒体を利用してもよく、ルータやモデム等の各種通信インターフェースを介して格納するようにしても良い。
【００８６】
さらに上述の実施の形態においては、データ転送要求のあった各種入出力ポートに対して動的にメモリ帯域を割り当てるようにした場合について述べたが、本発明はこれに限らず、各種入出力ポートに対してデータ転送要求を受け付ける際に優先順位を付けた上で動的にメモリ帯域を割り当てるようにしても良い。この場合、接続可能な入出力ポートの数が理論的に無限である中、処理の優先度が高いデバイスに対してメモリ帯域が割り当てられなくなるというリスクを予め回避することができる。
【００８７】
さらに上述の実施の形態においては、本発明のメモリ帯域制御装置を編集装置に搭載して用いるようにした場合について述べたが、本発明はこれに限らず、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）等の他の種々の情報処理装置に本発明のメモリ帯域制御装置を搭載するようにしても良い。
【００８８】
さらに上述の実施の形態においては、制御手段としてのＩ／ＯバッファＷ８１のＰＢＡ回路８１Ａ及びＩ／ＯバッファＲ８２のＰＢＡ回路によってメモリ帯域を動的に割り当てるようにした場合について述べたが、本発明はこれに限らず、その他種々の回路構成によってメモリ帯域を動的に割り当てるようにしても良い。
【産業上の利用可能性】
【００８９】
本発明のメモリ帯域制御装置は、例えばメモリを介してデータを授受する種々の情報処理装置に適用することができる。
【図面の簡単な説明】
【００９０】
【図１】本発明のメモリ帯域制御装置の回路構成を示す略線的ブロック図である。
【図２】入出力ポートに対する帯域割当処理の説明に供する略線的ブロック図である。
【図３】Ｉ／ＯバッファＷの振る舞いの説明に供する略線図である。
【図４】Ｉ／ＯバッファＲの振る舞いの説明に供する略線図である。
【符号の説明】
【００９１】
１……メモリ帯域制御装置、２……Ｉ／Ｏバッファ、３……第１ＳＤＩ−ＩＮポート、４……第２ＳＤＩ−ＩＮポート、５……第１ＳＤＩ−ＯＵＴポート、６……第２ＳＤＩ−ＯＵＴポート、７……ＥＮＣ／ＤＥＣポート、１０……ＶＰＲＯＣポート、１１……ＰＣＩポート、１２……ＣＰＵポート、１３、１４、２８……ライトポート、２９、３０、４４……リードポート、５０……第１のデバイス、５１……第２のデバイス、５２……第３のデバイス、５３……第４のデバイス、５４……ＥＮＣ／ＤＥＣ、６０……ＨＤＤ、６２……ＣＰＵ、７０……メモリコントローラ、８０……メモリ、８１……Ｉ／ＯバッファＷ、８２……Ｉ／ＯバッファＲ、８３……セレクタ、８４、１０４……ポートスロット、８５、１０５……バンクスロット、９１、１０１……ポートテーブル、９２、１０２……バンクテーブル、８６〜８８……レジスタ、１０６〜１０８……レジスタ。
【図１】
2005084907.tif 000003
【図２】
2005084907.tif 000004
【図３】
2005084907.tif 000005
【図４】
2005084907.tif 000006