JP2008083978A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2008083978A JP2008083978A JP2006262969A JP2006262969A JP2008083978A JP 2008083978 A JP2008083978 A JP 2008083978A JP 2006262969 A JP2006262969 A JP 2006262969A JP 2006262969 A JP2006262969 A JP 2006262969A JP 2008083978 A JP2008083978 A JP 2008083978A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- sgl
- control unit
- dma
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】大量のデータを細かい単位まで高速に転送することができるデータ処理装置を提供する。
【解決手段】大容量のデータを高速に転送するマスターDMAブロック305と、細かいデータ単位でデータを転送するターゲットアクセスWrite/Readブロック306により、直接メモリアクセス方式でデータ転送を行うメモリコントローラ30を備え、連続する大容量のデータをマスターDMAブロック305により転送し、その前後のデータをターゲットアクセスWrite/Readブロック306により転送する。
【選択図】図4
【解決手段】大容量のデータを高速に転送するマスターDMAブロック305と、細かいデータ単位でデータを転送するターゲットアクセスWrite/Readブロック306により、直接メモリアクセス方式でデータ転送を行うメモリコントローラ30を備え、連続する大容量のデータをマスターDMAブロック305により転送し、その前後のデータをターゲットアクセスWrite/Readブロック306により転送する。
【選択図】図4
Description
本発明は複数のボード間のデータ転送を行うデータ処理装置に関し、特に大量のデータ転送が必要となるデータ処理装置に関する。
近年、コンピュータの性能向上により、従来は専用の装置で行っていた作業を汎用的なコンピュータで置き換えることが可能となっている。そのような機器の1つにビデオ編集機がある。すなわち、VTR(Video Tape Recorder)などの画像や音声の編集作業を、コンピュータを用いて行うことが可能となっている。その場合、画像情報や音声情報をコンピュータのハードディスク装置に格納し、コンピュータのアプリケーションプログラムを用いて編集作業を行う。このようなビデオ編集システムを、ノンリニア編集機という。
ノンリニア編集機は、画像の変形・合成が自由にできることや、編集を繰り返しても画質の劣化がないという点において、従来の編集システムより優れている。例えば、実写の画像にCG(Computer Graphics)を合成するのも容易である。
ところで、ノンリニア編集機では、動画データなどをハードディスク装置に格納しているため、ハードディスクから汎用バス(例えばPCI(Peripheral Component Interconnect)バス)を介して、他のボード(例えば、CODEC(coder-decoder)ボード)へ転送する必要が生じる。このようにボード間でデータ転送を行う場合、基本的には、ノンリニア編集機中のパーソナルコンピュータ部分(ノンリアルタイム制御部)内のシステムメモリを介在させて、データ転送が行われる。すなわち、データソースとなるボードからシステムメモリへの転送、システムメモリからデータターゲットとなるボードへの転送の2回の転送処理を実行する。
従来より、プロセッサ間のデータ転送には、CPUを介在してバイト単位やワード単位やダブルワード単位でデータを転送するI/O方式と、CPUを介在さずに、直接メインメモリと外部メモリとの間でデータのやり取りを可能にしたDMA(Direct Memory Access)方式があり、例えば、DMA方式とI/O方式とを転送するデータの長さにより使い分けることにより、データ転送を高速に行うようにものがある(例えば、特許文献1参照)。
また、システムのスループットを低減させることなくデータ転送を効率よく行わせ、かつCPU及びDMA制御部による外部メモリへのアクセス競合を確実に調停するために、DMA制御部の制御による外部メモリとのデータ転送をDMA制御部と外部バスインタフェースユニットとの間に設けたローカルバスを通して行い、CPUの制御下での外部メモリとのデータ転送及びDMA制御部の制御下での外部メモリとのデータ転送に対する優先順位を外部バスインタフェースユニットに設けた転送順位設定手段により設定するようにしたものもある(例えば、特許文献2参照)。
ここで、DMA転送とScatter and Gather DMAについて説明する。
DMA転送は、OS(Operating System)などのソフトウェアの影響を受けないで、直接ボード間でデータを転送するもので、2つのユニット間で一方のコントローラ(DMAコントローラ)が主体的にデータ転送を行うものである。DMA転送は、基本的に主記憶装置(システムメモリ)から二次記憶装置にデータ転送を行う際に用いられる機能であるが、これをボード間のデータ転送に応用することで、データ転送の高速化が可能となる。
DMA転送は物理的に連続したメモリに対して行われる。したがってDMA転送の対象となるデータはメモリ上で物理的に連続していなければならない。しかし、コンピュータ上のアプリケーションがユーザ空間(仮想アドレス)に確保したメモリは見た目には連続していても、論理アドレス上は4KB毎に断片化したものである。従ってドライバは4KBの連続領域の先頭アドレス(論理アドレス)と連続しているサイズを断片ごとにDMAコントローラに教えてあげなければならない。
この断片情報をまとめたものがSGL(Scatter Gather List)であり、従来、SGLはそのフォーマットを図10に示すように、転送数(Transfer Count[])とサイズ情報(Transfer Count[])とアドレス情報と(Target Address[])からなる。SGLに対応するDMAコントローラでは、アドレスとしてSGLのアドレスを与えられるようになっている。
SGLに書かれた一対のアドレス情報とサイズ情報(Transfer Count[])のことをエレメントと称する。
ここで、従来のDMA転送について、ソフトウェアの最下層でありボードを制御するデバイスドライバを含めての実際の動作を図11を参照して用いて説明する。
動作A1: デバイスドライバは物理的に連続した4KBの領域(Local SGL Buffer)をPCのメインメモリ110上に確保しており、そこに指定仮想アドレスから論理アドレスのSGL(システムSGL)を生成する。これはOSの管理するハードウェアMMU(Memory Management Unit)を用いて行われる。生成した論理アドレスのSGLを、Local SGL部にコピーする。
動作A2: Local SGL部にコピーされた論理アドレスのSGL(ローカルSGL)を用いてSDRAMアドレス,エレメント数を設定してボードのDMAコントローラを起動する。
動作A3: DMAコントローラは、まずSGL Buffer内のSGL(ローカルSGL)をボード120の内部メモリ121にDMA転送する。
動作A4: DMAコントローラは内部メモリ121に転送されたSGL内のエレメントにしたがって、PCのメインメモリ110とボード120のメモリ(DRAM)122間をDMA転送する。
ところで、PCI(Peripheral Component Interconnect)やPCI−Expressの基板をCPUに挿して用いるノンリニア編集機では、各種処理をするボードとCPU本体の間で大量のデータを高速で転送する場合がある。その一方、映像のある部分にタイムコード等を表示する場合などは、データの一部を書き換えるためバイト単位など細かな単位でのデータ転送が必要になる。
従来のDMA転送において、ボード120のメモリ(DRAM)122のアドレス境界、転送サイズの境界は256バイトと大きいものであった。これはDRAMの転送レートをあげるために、バースト転送を行っているからであるが、バイト単位など細かい転送のインターフェースは用意されていなかったため、画像の一部を変更するなどの場合に扱いにくいものであった。
従来、ボード120上のハードウェアに送るCPU上の仮想メモリ物理メモリの対応リスト(SGL: Scatter and Gather List)は、上述の図10に示すようなフォーマットであり、OS(MS-Windows)が作成するフォーマットと異なるため、デバイスドライバで変換操作を行っていた。そのためその変換時間がかかり、転送レートが落ちていた。
また、PCI−Expressは、書き込みと読み出しの双方向のデータ転送を同時に実行できる。すなわち、ボードからCPUへの書き込みパケットのデータとCPUからボードへの読み出した結果のデータは、転送方向が逆方向だから、各方向別の信号線になっているPCI−Expressでは、データ転送を同時に実行できる。
ただし、ボードからCPUへの書き込みパケットとボードからCPUへの読み出し要求は、書き込みと同じ向きなので同時実行できず、読み出しの要求は、非効率に待たされる場合があった。
そこで、本発明の目的は、上述の如き従来の問題点に鑑み、大量のデータを細かい単位まで高速に転送することができるデータ処理装置を提供することにある
本発明の更に他の目的、本発明によって得られる具体的な利点は、以下に説明される実施の形態の説明から一層明らかにされる。
本発明の更に他の目的、本発明によって得られる具体的な利点は、以下に説明される実施の形態の説明から一層明らかにされる。
本発明は、複数のボード間のデータ転送を行うデータ処理装置であって、大容量のデータを高速に転送する第1の転送制御手段と、細かいデータ単位でデータを転送する第2の転送制御手段により、直接メモリアクセス方式でデータ転送を行うDMA制御部を備え、連続する大容量のデータを第1の転送制御手段による転送し、その前後のデータを第2の転送制御手段により転送するようにしたことを特徴とする。
本発明では、連続する大容量のデータを第1の転送制御手段により転送し、その前後のデータを第2の転送制御手段により細かいデータ単位で転送することにより、大量のデータを細かい単位まで高速に転送することができる。
また、本発明では、上記DMA制御部は断片化された論理アドレスの断片情報をまとめたSGL(Scatter Gather List)に対応するものとし、上記SGLをオペレーティングシステムが作成するフォーマットに対応するものとすることにより、転送ための準備時間を短縮して、さらに、大量のデータを細かい単位まで高速に転送することができる。
さらに、本発明では、上記DMA制御部をデータの書き込みと読み出しの双方向のデータ転送を同時に実行可能な拡張ボード上に設け、上記第1の転送制御手段による読み出し要求と書き込み要求が同時に起こった場合、読み出し要求を優先させる調停回路を備えるものとすることにより、さらに、大量のデータを細かい単位まで高速に転送することができる。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、本発明は以下の例に限定されるものではなく、本発明の要旨を逸脱しない範囲で、任意に変更可能であることは言うまでもない。
本発明は、例えば図1に示すような構成のコンピュータベースのノンリニア編集装置100に適用される。
このノンリニア編集装置100は、チップセット10に接続されたメインCPU(Central Processing Unit)11、システムメモリ12、I/O CODEC(coder-decoder)ボード13、SCSIHBA(Small Computer System Interface Host Bus Adapter)カード14、画像処理ボード15、USB HUB16などを備える。
チップセット10は、メインCPU11側からPCIバスを制御するためのバスコントローラとして機能する。
メインCPU11は、他の周辺機器やシステムメモリ12を制御することでOSの機能を実行するとともに、OSに実装されたデバイスドライバや、OS上で実行されるアプリケーションソフトウェアを実行する。なお、このCPU11は、アドレス変換テーブルを参照することで、仮想メモリ空間の論理アドレスをシステムメモリ12やI/O CODECボード13内のローカルメモリ32の物理アドレスに変換する機能を有している。
システムメモリ12は、システムの主記憶装置であり、メインCPU11で実行されるプログラムや、処理に必要な各種データが一時的に格納される。
I/O CODECボード13には、図2に示すように、メモリコントローラ30、このメモリコントローラ30に接続されたローカルCPU31、ローカルメモリ32、オーディオデータの入出力用のデフォーマッタ33、フォーマッタ34、AVデータの入出力用のSDI(Serial Digital Interface)に準拠したデフォーマッタ35A,35B、フォーマッタ36、PCI−Expressインターフェース37等が搭載されている。ローカルCPU31は、CODECボード13の動作をリアルタイムに制御する。また、上記I/O CODECボード13には、アナログオーディオ入出力コネクタボード17が接続されている。
ここで、アナログオーディオ入出力コネクタボード17には、マイクロフォンなどから入力されるアナログオーディオ信号をデジタル化してI/O CODECボード13上のデフォーマッタ33に入力するアナログ/デジタル(A/D)変換部171、上記I/O CODECボード13上のフォーマッタ34を介して出力されるデジタルオーディオ信号をアナログ化して出力するデジタル/アナログ(D/A)変換部172、マイクロフォンなどから入力されるアナログオーディオ信号と上記D/A変換部172によりアナログ化されたオーディオ信号と合成して出力するアナログ信号合成部173等が搭載されている。
SCSIHBAカード14は、チップセット10により制御されるPCIバスを介して送られてきたデータをHDD20に格納したり、HDD20内のデータをPCIバスを介して他の機器へ転送したりする。SCSIHBAカード14は、データ転送の際にPCIバスのホストとなり、DMA転送を制御することができる。
画像処理(GPU)ボード15は、編集画像の座標変換処理、拡大・縮小処理、最終画像のレンダリング処理等を行う。
USB HUB16には、表示パネル18や外部装置(EX01、EX02)19が接続される。
HDD18は、映像データなどのデータを保持する。
そして、このノンリニア編集装置100では、I/O CODECボード13を介して入力される映像データ及びオーディオデータをHDD20に記憶し、所定の編集処理プログラムに従って、レンダリング再生処理やスクラブ処理等の編集処理の対象となる映像データ及びオーディオデータをHDD20からシステムメモリ12に読み出して編集処理を行い、編集処理済みの映像データ及びオーディオデータをI/O CODECボード13を介して出力する。
ここで、再生時の処理手順を図3に示すように、このノンリニア編集装置100では、HDD20に格納されている圧縮データがシステムメモリ12上に読み出され、このシステムメモリ12上で読み出された圧縮データに伸張処理が施されて非圧縮データに変換され、この非圧縮データに画像処理(GPU)ボード15によりレンダリング処理を行い、レンダリングされた非圧縮データが上記システムメモリ12からI/O CODECボード13上のローカルメモリ32に転送され、フォーマッタ36を介してSDI信号として出力される。
この際に、HD(1920x1080ドット YUV422 8ビット、30フレーム/秒)の動画の場合、1ストリームで約120MB/秒の転送レートが必要で、PC上のソフトウェア動画処理・ボード上の動画処理を行う場合はデータの往復のためにその数倍の転送レートが必要になる。
また、映像のある部分にタイムコード等を表示する場合などは、データの一部を書き換えるためバイト単位など細かな単位でのデータ転送が必要になる。
そこで、このノンリニア編集装置100では、高速動作するブロックと、細かいバイト単位の転送を組み合わせることにより、通常転送レートが落ちる細かい単位のDMA(Direct Memory Access)を、高い転送レートで実現している。
上記I/O CODECボード13上のメモリコントローラ30は、図4に示すように、PCI−Expressインターフェース37を介してデータの授受を行うPCI−ExpressIPコア部301、MTP_ARBITER部302、PCI_REG部303、ローカルCPUIF部304、マスターDMAブロック305、ターゲットアクセスWrite/Readブロック306、LPCI部307、DDR2−SDRAMコントローラを含むIOB−FPGA部308などからなる。
すなわち、上記I/O CODECボード13上のメモリコントローラ30は、用途に応じて転送のためにマスターDMAブロック305、ターゲットアクセスWrite/Readブロック306が設けられている。
マスターDMAブロック305は、大容量のデータを高速に転送する部分であり、データを主体的に出すことによって高速転送する。
また、ターゲットアクセスWrite/Readブロック306は、細かいByte単位での転送ができるものであり、PC等のボード以外がデータ転送の主体となる。また、バイト単位で転送ができる。なお、転送レートは比較的遅い。
このノンリニア編集装置100では、図5に示すように、連続する大容量のデータについては、マスターDMAブロック305を用いたマスターDMA転送を用いて高速に転送し、その前後のバイト単位で細かい単位での転送が必要な部分は、ターゲットアクセスWrite/Readブロック306を用いて、バイト単位転送やバイト単位よりは高速なダブルワード(DWORD=4バイト)単位転送を行う。
すなわち、デバイスドライバでは、マスターDMAのアドレス境界及び転送量の512バイト制限をカバーするために、自由なアドレスに対する転送をサポートしている。
例えば、アプリケーションが独自に確保した仮想メモリ空間の任意の位置と、DIO上のメモリの任意の位置とのデータ転送は、事実上デバッグ機能を使用してもできないため、アプリケーション側でアライメントを取る必要があった。
そこで、アドレス512バイト境界や転送量512バイト境界をドライバ内部で吸収したFree Address Transfer機能(以後FreeAdrsXferと称す。)をドライバでサポートした。
FreeAdrsXferは書き込みと読み出しに分かれている。
ドライバでこのIoControlを受けると、書き込み/読み出しそれぞれのマスターDMA機能が使用中でない事を確認し、DIOメモリアドレスの先頭8バイト境界までの空間をバイト転送し、DIOメモリアドレス512バイト境界までの空間をダブルワード転送し、DMA終了後に512バイト境界の端数があると予めわかる場合には、その部分だけをバイト転送後マスターDMAを起動する。
なお、この図5に示した例は連続する領域の転送であるが、ターゲットアクセスWrite/Readブロック306による転送は、PCI−Expressのプロトコルで実現できる範囲の途中のバイトを転送しない転送もできる。
図5に示すように連続する大容量のデータについては、マスターDMAブロック305を用いたマスターDMA転送を用いて高速に転送し、その前後のバイト単位で細かい単位での転送が必要な部分は、ターゲットアクセスWrite/Readブロック306を用いて、バイト単位転送やバイト単位よりは高速なダブルワード単位転送を行うことによって、転送レートに支配的な連続する大容量のデータ部は高速であり、その前後の少量のデータのみ、マスターDMA転送より1バイトあたりの時間がかかることになる。ただしデータサイズが小さいためほぼ無視できる。
例えば、HD(1920x1080 pixel YUV422 8ビット)の画像の場合4MBで連続であり、その前後のバイト単位の転送(前511バイト、後ろ511バイト)の場合を考えると、このノンリニア編集装置100では、マスターDMA転送で750MB/秒、ターゲットアクセス転送で455MB/秒(PCI−ExpressのMemWrパケット、デバイスドライバレベルでの測定)を実現できており、マスターDMAブロック30AによるマスターDMA転送の時間TMDMAは、
TMDMA=4[MB]÷750[MB/s]
=5.33[ms]
であるのに対し、ターゲットアクセスWrite/Readブロック306によるターゲットアクセス転送の時間TTAは、
TTA=2×511[Byte]÷455[MB/s]
=2.25[μs]であり、ターゲットアクセスWrite/Readブロック306によるターゲットアクセス転送の転送レートの悪化は無視でき、転送レートを落とさずバイト単位のDMAが実現できる。
TMDMA=4[MB]÷750[MB/s]
=5.33[ms]
であるのに対し、ターゲットアクセスWrite/Readブロック306によるターゲットアクセス転送の時間TTAは、
TTA=2×511[Byte]÷455[MB/s]
=2.25[μs]であり、ターゲットアクセスWrite/Readブロック306によるターゲットアクセス転送の転送レートの悪化は無視でき、転送レートを落とさずバイト単位のDMAが実現できる。
また、このノンリニア編集装置100では、SGLのフォーマットを図6の形にすることにより、フォーマット変換を不要とした。このSGLのフォーマットは従来のシステムSGLにある8バイトのヘッダを除いて同じものであり、従来のフォーマット変換が不要となる。
このノンリニア編集装置100において、図7に示すように、アプリケーションからドライバに転送開始を指示し、システムSGLを生成するのに要するシステム時間T1、システムSGLからデバイスSGLを生成するのに要するシステム時間T2、データ転送に要するシステム時間T3を取得したところ、上記システムメモリ12からI/O CODECボード13上のローカルメモリ32に400000バイトのデータを転送した場合、従来のフォーマット変換が必要なシステムSGLを用いると、次の表1に示すように、システムSGLからデバイスSGLを生成するのに要するシステム時間T2が0.832062msであったの対し、SGLのフォーマットを図6の形にすることにより、上記システム時間T2が0.01104msに短縮され、また、上記I/O CODECボード13上のローカルメモリ32から上記システムメモリ12に400000バイトのデータを転送した場合、従来のフォーマット変換が必要なシステムSGLを用いると、次の表2に示すように、システムSGLからデバイスSGLを生成するのに要するシステム時間T2が0.835138msであったの対し、SGLのフォーマットを図6の形にすることにより、上記システム時間T2が0.01076msに短縮された。
ここで、I/O CODECボードをPCIとした場合(物理的な転送レートも1/4)は約3%のオーバーヘッドであり、これはPCI−Express 4laneでは12%のオーバーヘッドになる。このノンリニア編集装置100では、そのオーバーヘッドを約70分の1にでき、オーバーヘッドは0.3%以下になり無視できるまでになった。
また、このノンリニア編集装置100では、上記I/O CODECボード13上のメモリコントローラ30におけるSGLの制御部(マスターDMAブロック305)とデータ転送制御部(PCI−ExpressIPコア部301)間に図8に示すような構成の調停回路310を設け、メモリ読み出しのパケットとメモリ書き込みのパケットが重複しないように調停を行っている。
調停回路310は、マスターDMAブロック305の書き込み側SGL制御部305BがSGLを転送しているか、実データの転送しているかでDMAキックをかける宛先を変更するセレクタ311と、上記マスターDMAブロック305の書き込み側SGL制御部305BがDMAC_RDモジュールを占有している期間中は、上記マスターDMAブロック305の書き込み側SGL制御部305Bの出力をPCI−ExpressIPコア部301の読み出し側データ転送制御部301Aに供給し、他の期間中は上記マスターDMAブロック305の読み出し側SGL制御部305Aの出力をPCI−ExpressIPコア部301の読み出し側データ転送制御部301Aに供給するセレクタ312を備える。
SGL DMAにおいては、書き込み部においてもメモリ読み出しのパケットだけを出すわけではなく、SGLをまず読み出すためのメモリ読み出しのパケットを発行する必要がある。したがってこの部分が読み出しと書き込みで重複すると、互いを阻害する。
そこで、このノンリニア編集装置100では、書き込み側SGL制御部305Bがw_occupy_rd_req信号で読み出し側SGL制御部305Aに使用要求を出し、読み出し側SGL制御部305Aは調停の上使用して良い状態になればw_wr_occupy_mrd信号で転送権利を明け渡し、書き込み側SGL制御部305B側にそれを伝えることにした。
すなわち、書き込みパケットには書き込むデータ(128Byte等)が付属するが、読み出しパケットは、要求だけなので、12〜16Byte等のヘッダ部のみであり、書き込みパケットと比較して短いので、読み出し要求と書き込み要求が同時に起こった場合、読み出し要求を優先させるものとした。
この調停は、図9に示すシーケンスに従って行われる。
P0_ARBステート(ST1)では、読み出し側SGL制御部305Aのみ、この間(1ckディレイ)R_OCCUPY_MRD≦1となる。このP0_ARBステート(ST1)は、R_OCCUPY_REQがデアサートされたらIDLEステート(ST2)に遷移する。
IDLEステート(ST2)では、書き込み側SGL制御部305Bのみ、OCCUPY_RD_REQデアサートし、WR_OCCUPY_MRDのデアサートを待つ。このIDLEステート(ST2)は、OCCUPY_RD_REQの1クロックディレイがアサートされたらP0_ARBステートに遷移し(ST1)、また、if(start_sm)、すなわち、START=PCI_REGのDMA_STARTビットの2ckディレイでP1STARTステート(ST3)に遷移して、他の場合には当該IDLEステート(ST2)を維持する。
そして、P1STARTステート(ST3),P1REQステート(ST4),P1WAITステート(ST5)によりSGL転送を行い、さらに、P2KICK_OFFステート(ST6),P2ADD_RDステート(ST7)、P2COU_RDステート(ST8)、P2INIT_WAITステート(ST9)、P2WAITステート(ST10)、P2_ARBステート(ST11)、P2SETステート(ST6)により実データ転送を行う。
P1STARTステート(ST3)は、if(list_cou_err)、すなわち、SGL内リスト数が範囲外ならばERRステート(ST14)に遷移し、他の場合には、P1REQステート(ST4)に遷移する。
P1REQステート(ST4)は、if(ABORT REQ)、すなわち、ABORT要求があればABORTステート(ST13)に遷移し、他の場合には、P1WAITステート(ST5)に遷移する。
P1WAITステート(ST5)では、if(neg_list_mstr_exe&!LIST_ERR)、すなわち、SGLのリストを転送し、エラーがなければP2KICK_OFFステート(ST6)に遷移し、if(neg_list_mstr_exe&LIST_ERR)、すなわち、SGLのリストの転送にエラーがあればERRステート(ST14)に遷移する。
P2KICK_OFFステート(ST6)では、DMA起動し、P2ADD_RDステート(ST7)では、アドレスを読む。
P2COU_RDステート(ST8)では、転送サイズを読み、if(passed_set==0)すなわち最初のデータ転送の場合にはP2INIT_WAITステート(ST9)に遷移し、P2ADD_RDステート(ST7)、P2COU_RDステート(ST8)、P2INIT_WAITステート(ST9)、P2SETステート(ST11)のパス(a)でデータ転送を行い、また、if(passed_set==1)、すなわち、直前にパス(a)を通ったらP2WAITステート(ST10)に遷移して、P2ADD_RDステート(ST7)、P2COU_RDステート(ST8)、P2WAITステート(ST10)、P2SETステート(ST11)のパス(a)でデータ転送を行う。
P2WAITステート(ST10)では、if(!neg_list_mstr_exe)、すなわち、SGLの1エレメント分の転送が終わるのを待ってP2SETステート(ST11)に遷移し、この間に、if(master/exr_err)、すなわち、エラーが生じた場合にはERRステート(ST14)に遷移し、また、else if(!exr_err&exe_list_is_end)、すなわち、SGLの全リスト分の転送が終わりならば、IDLEステート(ST2)に遷移する。
また、P2WAITステート(ST10)では、読み出し側で且つelse if(OCCUPY_RD_REQ_IN)、すなわち、読み出し要求があった場合には、P2_ARBステート(ST11)に遷移する。
P2_ARBステート(ST11)では、if(OCCUPY_RD_REQ_IN)、すなわち、読み出し要求がある場合には、このP2_ARBステート(ST11)を維持し、読み出し要求がなくなるとP2SETステート(ST11)に遷移する。
P2SETステート(ST11)では、if(ABORT REQ)、すなわち、ABORT要求があればABORTステート(ST13)に遷移し、他の場合には、P2ADD_RDステート(ST7)、に遷移する。
すなわち、このノンリニア編集装置100では、読み出し側SGL制御部305Aは、P0_ARBステート(ST1)及びP2_ARBステート(ST12)で、書き込み側SGL制御部305Bから要求があった場合SGL転送を行わせている。そして、P0_ARBステート(ST1)はIDLE状態なので、転送権利を明け渡すのは当然だが、P2_ARBステート(ST12)は、データ転送の途中であるが、転送権利を明け渡している。これにより、SGLの書き込み側を優先させている。
SGLのリストの読み出しは、実データの読み出しに比べて転送サイズが小さいため、先にすませた方がシステム全体での転送を待たせる時間が少なく、転送レートが向上する。
10 チップセット、11 メインCPU、12 システムメモリ、13 I/O CODECボード、14 SCSIHBAカード、15 画像処理ボード、16 USB HUB、17 アナログオーディオ入出力コネクタボード、18 表示パネル、19 外部装置、20 HDD、30 メモリコントローラ、31 ローカルCPU、32 ローカルメモリ、33,35A,35B デフォーマッタ、34,36 フォーマッタ、37 PCI−Expressインターフェース、100 ノンリニア編集装置、171 A/D変換部、172 D/A変換部、173 アナログ信号合成部、301 PCI−ExpressIPコア部、301A 読み出し側データ転送制御部、301B 書き込み側データ転送制御部、302 MTP_ARBITER部、303 PCI_REG部、304 ローカルCPUIF部、305 マスターDMAブロック、305A 読み出し側SGL制御部、305B 書き込み側SGL制御部、306 ターゲットアクセスWrite/Readブロック、307 LPCI部、308 IOB−FPGA部、310 調停回路。311,312 セレクタ
Claims (3)
- 複数のボード間のデータ転送を行うデータ処理装置であって、
大容量のデータを高速に転送する第1の転送制御手段と、細かいデータ単位でデータを転送する第2の転送制御手段により、直接メモリアクセス方式でデータ転送を行うDMA制御部を備え、
連続する大容量のデータを第1の転送制御手段による転送し、その前後のデータを第2の転送制御手段により転送するようにしたことを特徴とするデータ処理装置。 - 上記DMA制御部は、断片化された論理アドレスの断片情報をまとめたSGL(Scatter Gather List)に対応するものであって、
上記SGLは、オペレーティングシステムが作成するフォーマットに対応するものとしたことを特徴とする請求項1記載のデータ処理装置。 - 上記DMA制御部は、データの書き込みと読み出しの双方向のデータ転送を同時に実行可能な拡張ボード上に設けられ、上記第1の転送制御手段による読み出し要求と書き込み要求が同時に起こった場合、読み出し要求を優先させる調停回路を備えることを特徴とする請求項2記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006262969A JP2008083978A (ja) | 2006-09-27 | 2006-09-27 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006262969A JP2008083978A (ja) | 2006-09-27 | 2006-09-27 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008083978A true JP2008083978A (ja) | 2008-04-10 |
Family
ID=39354802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006262969A Withdrawn JP2008083978A (ja) | 2006-09-27 | 2006-09-27 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008083978A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515234A (zh) * | 2021-07-01 | 2021-10-19 | 成都忆芯科技有限公司 | 一种用于控制数据读出到主机的方法及控制器 |
-
2006
- 2006-09-27 JP JP2006262969A patent/JP2008083978A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515234A (zh) * | 2021-07-01 | 2021-10-19 | 成都忆芯科技有限公司 | 一种用于控制数据读出到主机的方法及控制器 |
CN113515234B (zh) * | 2021-07-01 | 2023-10-31 | 成都忆芯科技有限公司 | 一种用于控制数据读出到主机的方法及控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7272676B2 (en) | Data transmission controller that restarts data transmission when reconstruction is completed | |
US9563367B2 (en) | Latency command processing for solid state drive interface protocol | |
KR102111741B1 (ko) | 임베디드 멀티미디어 카드 및 이의 동작 방법 | |
US7263572B2 (en) | Bus bridge and data transfer method | |
JP2006195569A (ja) | 記憶装置 | |
CN108268414A (zh) | 基于spi模式的sd卡驱动器及其控制方法 | |
JP2013030145A (ja) | メモリカードコントローラ、メモリカードアダプタおよびメモリカードドライブ | |
JP4408840B2 (ja) | Hddコントローラ及びそれを搭載したシステム | |
US8161214B2 (en) | System and method for data transfer using ATA interface | |
JP4972212B2 (ja) | ブリッジ回路 | |
JP2008009803A (ja) | 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体 | |
TWI570557B (zh) | 內部資料搬移方法以及使用該方法的裝置 | |
US20050005039A1 (en) | Data transfer control device, electronic instrument, and data transfer control method | |
JP2008083978A (ja) | データ処理装置 | |
TWI714116B (zh) | 記憶體控制器、記憶體控制方法、以及電腦系統 | |
JP2007011659A (ja) | インターフェース装置、ディスクドライブ及びインターフェース制御方法 | |
US7694004B2 (en) | Bit-granular writes of control registers | |
JPH0628261A (ja) | データ転送方法及び装置 | |
JP2004288147A (ja) | シリアルメモリに対するxipシステム及びその方法 | |
JP5216719B2 (ja) | 情報処理装置および制御装置 | |
JP2007079942A (ja) | データ記録再生装置 | |
JP2009026165A (ja) | コントローラ、電子機器及び電子機器の制御方法 | |
US7085873B1 (en) | ATA device access system with surrogate registers corresponding to ATA registers | |
JP2009289238A (ja) | データ処理システム及びストレージ制御方法 | |
JP4538054B2 (ja) | データ転送装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20091201 |