(57)【特許請求の範囲】
【請求項１】
直接メモリアクセス（ＤＭＡ）コントローラであって、前記ＤＭＡコントローラは、リードデータチャネルの入力インターフェース、ライトデータチャネルの出力インターフェース、制御ロジックモジュール、及び先入れ先出し（ＦＩＦＯ）モジュールを含み、前記ＤＭＡコントローラはさらに、
第１制御命令を受信した時に、外部メモリから前記リードデータチャネルの入力インターフェースを介して読み取った第１データに対して第１演算処理を行い、前記第１制御命令は、第１変換器に第１演算処理を行うように指示することに用いられるように構成される第１変換器と、
第１演算処理を行う場合、前記第１変換器によって処理されたデータを選択し、前記第１変換器によって処理されたデータを前記ＦＩＦＯモジュールに書き込むように構成される第１データセレクターと、
第２制御命令を受信した時に、前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行い、前記第２制御命令は第２変換器に第２演算処理を行うように指示することに用いられるように構成される第２変換器と、
第２演算処理を行う場合、前記第２変換器によって処理されたデータを選択し、前記第２変換器によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力するように構成される第２データセレクターと、
を含み、
第１演算処理は固定小数点から浮動小数点への変換演算処理であり、第２演算処理は浮動小数点から固定小数点への変換演算処理である、
ＤＭＡコントローラ。
【請求項２】
前記ＤＭＡコントローラは、高度な拡張可能なインターフェース（ＡＸＩ）バスを介して外部メモリと接続し、前記ＡＸＩバスの幅は６４ビットである、
請求項１に記載のＤＭＡコントローラ。
【請求項３】
前記第１データセレクターはさらに、データ演算が必要ではないと判断した場合、前記リードデータチャネルの入力インターフェースから読み取った第１データを直接に選択し、前記リードデータチャネルの入力インターフェースから読み取った第１データを前記ＦＩＦＯモジュールに書き込むように構成され、
前記第２データセレクターはさらに、データ演算が必要ではない場合と判断した場合、前記ＦＩＦＯモジュールから読み取った第２データを直接に選択し、前記ＦＩＦＯモジュールから読み取った第２データを前記ライトデータチャネルの出力インターフェースに出力するように構成される、
請求項１に記載のＤＭＡコントローラ。
【請求項４】
前記第１変換器はさらに、第１演算処理を行う時に、入力のデータ量と出力のデータ量との比が３：４であるように構成され、
前記第２変換器はさらに、第２演算処理を行う時に、入力のデータ量と出力のデータ量との比が４：３であるように構成される、
請求項１に記載のＤＭＡコントローラ。
【請求項５】
前記第１変換器はさらに、
それぞれが複数の固定小数点数を含む３個の６４ビットの数を１つのセットとし、個々のセット内の前記３個の６４ビットの数に対して、
第１の６４ビットの数のｂｉｔ［４７：０］に含まれる複数の固定小数点数を、それぞれ浮動小数点数へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿０とＦＩＦＯ＿１に書き込むステップａ１と、
第１の６４ビットの数のｂｉｔ［６３：４８］と第２の６４ビットの数のｂｉｔ［５５：０］とに含まれる複数の固定小数点数を、それぞれ浮動小数点数へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿２、ＦＩＦＯ＿３及びＦＩＦＯ＿４に書き込むステップａ２と、
第２の６４ビットの数のｂｉｔ［６３：５６］と第３の６４ビットの数のｂｉｔ［６３：０］とに含まれる複数の固定小数点数を、それぞれ浮動小数点数へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿５、ＦＩＦＯ＿６及びＦＩＦＯ＿７に書き込むステップａ３と、
を行うように構成され、
ここで、前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す、
請求項１に記載のＤＭＡコントローラ。
【請求項６】
前記第２変換器はさらに、
前記第２データセレクターが選択し前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むように、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータに含まれる複数の浮動小数点数をそれぞれ固定小数点数へ変換処理して得られた７２ビットの数のｂｉｔ［６３：０］を、前記第２データセレクターに送り込むステップｂ１と、
前記第２データセレクターが選択し前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むように、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータに含まれる複数の浮動小数点数をそれぞれ固定小数点数へ変換処理して得られた７２ビットの数のｂｉｔ［５５：０］と、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータに含まれる複数の浮動小数点数をそれぞれ固定小数点数へ変換処理して得られた７２ビットの数のｂｉｔ［７１：６４］とを、前記第２データセレクターに送り込むステップｂ２と、
前記第２データセレクターが選択し前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むように、｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝から読取されたデータに含まれる複数の浮動小数点数をそれぞれ固定小数点数へ変換処理して得られた４８ビットの数のｂｉｔ［４７：０］と、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータに含まれる複数の浮動小数点数をそれぞれ固定小数点数へ変換処理して得られた７２ビットの数のｂｉｔ［７１：５６］とを、前記第２データセレクターに送り込むステップｂ３と、
ステップｂ１から再度操作を行うステップｂ４と、
を行うように構成され、
前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す、
請求項１に記載のＤＭＡコントローラ。
【請求項７】
前記ＤＭＡコントローラが第１演算処理又は第２演算処理を行う場合、前記ＤＭＡコントローラは、バースト１２ｂｉｔモードで外部メモリをアクセスし、前記ＤＭＡコントローラが通常転送モードにある場合、前記ＤＭＡコントローラは、バースト１６ｂｉｔモードで外部メモリをアクセスする、
請求項１〜６のいずれか１項に記載のＤＭＡコントローラ。
【請求項８】
ＤＭＡコントローラの実現方法であって、前記ＤＭＡコントローラは、リードデータチャネルの入力インターフェース、ライトデータチャネルの出力インターフェース、制御ロジックモジュール、ＦＩＦＯモジュールを含み、前記方法は、
第１制御命令を受信した時に、外部メモリから前記リードデータチャネルの入力インターフェースを介して読み取った第１データに対して第１演算処理を行い、前記第１制御命令は、第１演算処理を行うように指示することに用いられることと、
第１演算処理を行う場合、第１演算処理によって処理されたデータを選択し、前記第１演算処理によって処理されたデータを前記ＦＩＦＯモジュールに書き込むことと、
それに応じて、第２制御命令を受信した時に、前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行い、前記第２制御命令は第２演算処理を行うように指示することに用いられることと、
第２演算処理を行う場合、第２演算処理によって処理されたデータを選択し、前記第２演算処理によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力することと、
を含み、
第１演算処理は固定小数点から浮動小数点への変換演算処理であり、第２演算処理は浮動小数点から固定小数点への変換演算処理である、
ＤＭＡコントローラの実現方法。
【請求項９】
前記ＤＭＡコントローラは、ＡＸＩバスを介して外部メモリと接続し、前記ＡＸＩバスの幅は６４ビットである、
請求項８に記載のＤＭＡコントローラの実現方法。
【請求項１０】
前記方法はさらに、
データ演算が必要ではないと判断した場合、前記リードデータチャネルの入力インターフェースから読み取った第１データを直接に選択し、前記リードデータチャネルの入力インターフェースから読み取った第１データを、前記ＦＩＦＯモジュールに書き込むことと、
データ演算が必要ではないと判断した場合、前記ＦＩＦＯモジュールから読み取った第２データを直接に選択し、前記ＦＩＦＯモジュールから読み取った第２データを、前記ライトデータチャネルの出力インターフェースに出力することと、
を含む、
請求項８に記載のＤＭＡコントローラの実現方法。
【請求項１１】
前記方法はさらに、
第１演算処理を行う時に、入力のデータ量と出力のデータ量との比が３：４であることと、
第２演算処理を行う時に、入力のデータ量と出力のデータ量との比が４：３であることと、
を含む、
請求項８に記載のＤＭＡコントローラの実現方法。
【請求項１２】
前記外部メモリから前記リードデータチャネルの入力インターフェースを介して読み取った第１データに対して第１演算処理を行うこと、及び、第１演算処理を行う場合、第１演算処理によって処理されたデータを選択し、前記第１演算処理によって処理されたデータを前記ＦＩＦＯモジュールに書き込むことは、
それぞれが複数の固定小数点数を含む３個の６４ビットの数を１つのセットとし、個々のセット内の前記３個の６４ビットの数に対して、
第１の６４ビットの数のｂｉｔ［４７：０］に含まれる複数の固定小数点数を、それぞれ浮動小数点数へ変換処理してから、ＦＩＦＯ＿０とＦＩＦＯ＿１に書き込むステップａ１と、
第１の６４ビットの数のｂｉｔ［６３：４８］と第２の６４ビットの数のｂｉｔ［５５：０］とに含まれる複数の固定小数点数を、それぞれ浮動小数点数へ変換処理してから、ＦＩＦＯ＿２、ＦＩＦＯ＿３及びＦＩＦＯ＿４に書き込むステップａ２と、
第２の６４ビットの数のｂｉｔ［６３：５６］と第３の６４ビットの数のｂｉｔ［６３：０］とに含まれる複数の固定小数点数を、それぞれ浮動小数点数へ変換処理してから、ＦＩＦＯ＿５、ＦＩＦＯ＿６及びＦＩＦＯ＿７に書き込むステップａ３と、
を行うことを含み、
前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す、
請求項８に記載のＤＭＡコントローラの実現方法。
【請求項１３】
前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行うこと、及び、第２演算処理を行う場合、第２演算処理によって処理されたデータを選択し、前記第２演算処理によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力することは、
｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータに含まれる複数の浮動小数点数をそれぞれ固定小数点数へ変換処理して得られた７２ビットの数のｂｉｔ［６３：０］を、前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むステップｂ１と、
｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータに含まれる複数の浮動小数点数をそれぞれ固定小数点数へ変換処理して得られた７２ビットの数のｂｉｔ［５５：０］と、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータに含まれる複数の浮動小数点数をそれぞれ固定小数点数へ変換処理して得られた７２ビットの数のｂｉｔ［７１：６４］とを、前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むステップｂ２と、
｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝から読取されたデータに含まれる複数の浮動小数点数をそれぞれ固定小数点数へ変換処理して得られた４８ビットの数のｂｉｔ［４７：０］と、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータに含まれる複数の浮動小数点数をそれぞれ固定小数点数へ変換処理して得られた７２ビットの数のｂｉｔ［７１：５６］とを、前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むステップｂ３と、
ステップｂ１から再度操作を行うステップｂ４と、
を含み、
前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す、
請求項８に記載のＤＭＡコントローラの実現方法。
【請求項１４】
前記方法はさらに、
前記ＤＭＡコントローラが第１演算処理又は第２演算処理を行う場合、前記ＤＭＡコントローラは、バースト１２ｂｉｔモードで外部メモリをアクセスし、前記ＤＭＡコントローラが通常転送モードにある場合、前記ＤＭＡコントローラは、バースト１６ｂｉｔモードで外部メモリをアクセスすること、
を含む、
請求項８〜１３のいずれか１項に記載のＤＭＡコントローラの実現方法。
【請求項１５】
コンピュータ記憶媒体であって、
前記コンピュータ記憶媒体には、請求項８〜１４のいずれか１項に記載のＤＭＡコントローラの実現方法を実行するためのコンピュータ実行可能な命令が記憶されている、
コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロセッサ分野に関し、特にＤＭＡコントローラ、実現方法及びコンピュータ記憶媒体に関する。
【背景技術】
【０００２】
直接メモリアクセス（ＤＭＡ：Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ技術は、プロセッサ及びシステム・オン・チップ（ＳｏＣ：Ｓｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ）に広く応用されている。ＤＭＡコントローラは、入力出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インターフェースとメモリとの間での高速データ転送を実現する機能を有している。ＤＭＡコントローラは、プロセッサの１つの外付けのモジュールであっても良く、しかもプロセッサのコアからのパラメータの設定を受信してデータ転送を行うことができる。プロセッサ外部のシステムメモリとプロセッサ内部のプログラムメモリ（ＰＭ：Ｐｒｏｇｒａｍ  Ｍｅｍｏｒｙ）、データメモリ（ＤＭ：Ｄａｔａ  Ｍｅｍｏｒｙ）との間で高速なデータ転送を行うことができ、プロセッサのコアがその内部のレジスタを使用して低効率のデータ中継は必要としないように、ＤＭＡコントローラはプロセッサのコアと同様に、マスタ（Ｍａｓｔｅｒ）としてプロセッサ外部のメモリリソースと内部メモリをアクセスすることが可能である。プロセッサのコアは、ＤＭＡコントローラを構成してから、その他の処理を行うことができ、データ転送のタスクをＤＭＡコントローラに任せて処理をバックグラウンドで行うことができる。要するに、ＤＭＡコントローラは専ら大量データの転送に用いられ、それがまさにプロセッサのコアにとっては苦手な作業であり、それによって、プロセッサのコアは他の得意な作業を行うことができる。
【０００３】
従来のＤＭＡコントローラは、単にデータ転送機能を実行して、ソース側とターゲット側とのデータが一致し、且つデータ量も等しい。プロセッサのコアは、通常、大量のデータ演算機能、例えば浮動小数点演算機能を実行する必要がある。固定小数点データと比べて、浮動小数点データは、精度のために、より多くのビットで示す必要がある。そのため、同じ数のデータに対して、浮動小数点データは、固定小数点データと比べてより大きいメモリスペースを占める必要がある。メモリのメモリリソースが限られているため、プロセッサの外部メモリに記憶されているデータが固定小数点データである場合、外部メモリのメモリスペースを省くことが可能である。固定小数点データは、ＤＭＡコントローラによってプロセッサの内部メモリに転送されるが、プロセッサは、内部メモリの固定小数点データに対して固定小数点から浮動小数点への変換を行ってから、浮動小数点演算ができるため、それによってプロセッサのコアの演算の負荷が増加される。プロセッサの外部メモリに記憶されているデータが浮動小数点データである場合、ＤＭＡコントローラを用いて転送してから、プロセッサのコアは直接に浮動小数点演算を行うことが可能であるが、浮動小数点データは比較的多くの外部メモリのメモリスペースを占める。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
これを鑑みて、本発明の実施例はＤＭＡコントローラ、実現方法及びコンピュータ記憶媒体を提供し、先行技術における、プロセッサの外部メモリリソースを省くことと、プロセッサのコアの演算負荷を減軽することという、矛盾する課題を解決することができる。
【０００５】
上記の目的を達成するため、本発明の実施例の技術案は下記のように実現されている。
【０００６】
本発明の実施例は、ＤＭＡコントローラを提供し、前記ＤＭＡコントローラは、リードデータチャネルの入力インターフェース、ライトデータチャネルの出力インターフェース、制御ロジックモジュール、及び先入れ先出し（ＦＩＦＯ：Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）モジュールを含み、前記ＤＭＡコントローラはさらに、
第１制御命令を受信した時に、外部メモリから前記リードデータチャネルの入力インターフェースを介して読み取った第１データに対して第１演算を行い、ここで、前記第１制御命令は、前記第１変換器に第１演算処理を行うように指示することに用いられるように構成される第１変換器と、
データ演算が必要であると判断した場合、前記第１変換器によって処理されたデータを選択し、前記第１変換器によって処理されたデータを前記ＦＩＦＯモジュールに書き込むように構成される第１データセレクターと、
第２制御命令を受信した時に、前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行い、ここで、前記第２制御命令は第２変換器に第２演算処理を行うように指示することに用いられるように構成される第２変換器と、
データ演算が必要であると判断した場合、前記第２変換器によって処理されたデータを選択し、前記第２変換器によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力するように構成される第２データセレクターと、
を含む。
【０００７】
上記の技術案において、前記ＤＭＡコントローラは、高度な拡張可能なインターフェースＡＸＩバスを介して外部メモリと接続し、前記ＡＸＩバスの幅は６４ビットである。
【０００８】
上記の技術案において、前記第１データセレクターはさらに、データ演算が必要ではないと判断した場合、前記リードデータチャネルの入力インターフェースから読み取った第１データを直接に選択し、前記リードデータチャネルの入力インターフェースから読み取った第１データを前記ＦＩＦＯモジュールに書き込むように構成され、前記第２データセレクターはさらに、データ演算が必要ではない場合と判断した場合、前記ＦＩＦＯモジュールから読み取った第２データを直接に選択し、前記ＦＩＦＯモジュールから読み取った第２データを前記ライトデータチャネルの出力インターフェースに出力するように用いられる。
【０００９】
上記の技術案において、前記第１変換器はさらに、第１演算処理を行う時に、入力のデータ量と出力のデータ量との比が３：４であるように構成され、前記第２変換器はさらに、第２演算処理を行う時に、入力のデータ量と出力のデータ量との比が４：３であるように構成される。
【００１０】
上記の技術案において、前記第１変換器はさらに、
３個の６４ビットの固定小数点数を１つのセットとし、個々のセット内の前記３個の６４ビットの固定小数点数に対して、
第１の６４ビットの固定小数点数のｂｉｔ［４７：０］を固定小数点から浮動小数点へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿０とＦＩＦＯ＿１に書き込むステップａ１と、
第１の６４ビットの固定小数点数のｂｉｔ［６３：４８］と第２の６４ビットの固定小数点数のｂｉｔ［５５：０］を固定小数点から浮動小数点へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿２、ＦＩＦＯ＿３及びＦＩＦＯ＿４に書き込むステップａ２と、
第２の６４ビットの固定小数点数のｂｉｔ［６３：５６］と第３の６４ビットの固定小数点数のｂｉｔ［６３：０］を固定小数点から浮動小数点へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿５、ＦＩＦＯ＿６及びＦＩＦＯ＿７に書き込むステップａ３と、
を行うように構成され、
ここで、前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す。
【００１１】
上記の技術案において、前記第２変換器はさらに、
前記第２データセレクターが選択して、前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むように、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［６３：０］を、前記第２データセレクターに送り込むステップｂ１と、
前記第２データセレクターが選択して、前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むように、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［５５：０］と、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点への変換処理を行ってから得られた７２ビットの固定小数点数のｂｉｔ［７１：６４］を、前記第２データセレクターに送るステップｂ２と、
前記第２データセレクターが選択して、前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むように、｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた４８ビットの固定小数点数のｂｉｔ［４７：０］と、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［７１：５６］を、前記第２データセレクターに送り込むステップｂ３と、
ステップｂ１から再度操作を行うステップｂ４と、
を行うように構成され、
ここで、前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す。
【００１２】
上記の技術案において、前記ＤＭＡコントローラが第１演算又は第２演算モードにある場合、前記ＤＭＡコントローラは、バースト１２モードで外部メモリをアクセスし、前記ＤＭＡが通常転送モードにある場合、前記ＤＭＡコントローラは、バースト１６モードで外部メモリをアクセスする。
【００１３】
本発明の実施例はさらに、ＤＭＡコントローラの実現方法を提供し、前記ＤＭＡコントローラは、リードデータチャネルの入力インターフェース、ライトデータチャネルの出力インターフェース、制御ロジックモジュール、ＦＩＦＯモジュールを含み、前記方法は、
第１制御命令を受信した時に、外部メモリから前記リードデータチャネルの入力インターフェースを介して読み取った第１データに対して第１演算処理を行い、ここで、前記第１制御命令は、第１演算処理を行うように指示することに用いられることと、
データ演算が必要であると判断した場合、第１演算によって処理されたデータを選択し、前記第１演算によって処理されたデータを前記ＦＩＦＯモジュールに書き込むことと、
それに応じて、第２制御命令を受信した時に、前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行い、ここで、前記第２制御命令は第２演算処理を行うように指示することに用いられることと、
データ演算が必要であることを判断した場合、第２演算によって処理されたデータを選択し、前記第２演算によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力することと、
を含む。
【００１４】
上記の技術案において、前記ＤＭＡコントローラは、ＡＸＩバスを介して外部メモリと接続し、前記ＡＸＩバスの幅は６４ビットである。
【００１５】
上記の技術案において、前記方法はさらに、
データ演算が必要ではないと判断した場合、前記リードデータチャネルの入力インターフェースから読み取った第１データを直接に選択し、前記リードデータチャネルの入力インターフェースから読み取った第１データを、前記ＦＩＦＯモジュールに書き込むことと、
データ演算が必要ではないと判断した場合、前記ＦＩＦＯモジュールから読み取った第２データを直接に選択し、前記ＦＩＦＯモジュールから読み取った第２データを、前記ライトデータチャネルの出力インターフェースに出力することと、
を含む。
【００１６】
上記の技術案において、前記方法はさらに、
第１演算処理を行う時に、入力のデータ量と出力のデータ量との比が３：４であることと、
第２演算処理を行う時に、入力のデータ量と出力のデータ量との比が４：３であることと、
を含む。
【００１７】
好ましくは、外部メモリから前記リードデータチャネルの入力インターフェースを介して読み取った第１データに対して第１演算を行い、データ演算が必要であると判断した場合、第１演算によって処理されたデータを選択し、前記第１演算によって処理されたデータを前記ＦＩＦＯモジュールに書き込むことは、
３個の６４ビットの固定小数点数を１つのセットとし、個々のセット内の前記３個の６４ビットの固定小数点数に対して、
第１の６４ビットの固定小数点数のｂｉｔ［４７：０］を固定小数点から浮動小数点へ変換処理してから、ＦＩＦＯ＿０とＦＩＦＯ＿１に書き込むステップａ１と、
第１の６４ビットの固定小数点数のｂｉｔ［６３：４８］と第２の６４ビットの固定小数点数のｂｉｔ［５５：０］を固定小数点から浮動小数点へ変換処理してから、ＦＩＦＯ＿２、ＦＩＦＯ＿３及びＦＩＦＯ＿４に書き込むステップａ２と、
第２の６４ビットの固定小数点数のｂｉｔ［６３：５６］と第３の６４ビットの固定小数点数のｂｉｔ［６３：０］を固定小数点から浮動小数点へ変換処理してから、ＦＩＦＯ＿５、ＦＩＦＯ＿６及びＦＩＦＯ＿７に書き込むステップａ３と、
を行うことを含み、
ここで、前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す。
【００１８】
好ましくは、前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行い、データ演算が必要であると判断した場合、第２演算によって処理されたデータを選択し、前記第２演算によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力することは、
｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［６３：０］を、前記ライトデータチャネルの出力インターフェースを介して、ＡＸＩライトデータバスに送り込むステップｂ１と、
｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［５５：０］と、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［７１：６４］を、前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むステップｂ２と、
｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた４８ビットの固定小数点数のｂｉｔ［４７：０］と、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［７１：５６］を、前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むステップｂ３と、
ステップｂ１から再度操作を行うステップｂ４と、
を含み、
ここで、前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す。
【００１９】
上記の技術案において、前記方法はさらに、
前記ＤＭＡが第１演算又は第２演算モードにある場合、前記ＤＭＡコントローラは、バースト１２モードで外部メモリをアクセスし、前記ＤＭＡが通常転送モードにある場合、前記ＤＭＡコントローラは、バースト１６モードで外部メモリをアクセスすることを含む。
【００２０】
本発明の実施例はさらにコンピュータ記憶媒体を提供し、前記コンピュータ記憶媒体には、前記ＤＭＡコントローラの実現方法を実行するためのコンピュータ実行可能な命令が記憶されている。
【００２１】
本発明の実施例によって提供されているＤＭＡコントローラ、実現方法及びコンピュータ記憶媒体は、第１制御命令を受信した時に、外部メモリから前記リードデータチャネルの入力インターフェースを介して読み取った第１データに対して第１演算を行い、ここで、前記第１制御命令は、第１演算処理を行うように指示することに用いられ、データ演算が必要であると判断した場合、第１演算によって処理されたデータを選択し、前記第１演算によって処理されたデータを前記ＦＩＦＯモジュールに書き込み、それに応じて、第２制御命令を受信した時に、前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行い、ここで、前記第２制御命令は第２演算処理を行うように指示することに用いられ、データ演算が必要であることを判断した場合、第２演算によって処理されたデータを選択し、前記第２演算によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力する。それによって、本発明の実施例の上記の技術案は、先行技術における、プロセッサメモリリソースを省くことと、プロセッサのコア演算負荷を減軽することという、矛盾する課題を解決し、ＤＭＡコントローラの機能を拡張し、データ転送機能を備えると共に、第１演算と第２演算機能も備え、そのため外部メモリの使用容量を省き、プロセッサのコアの演算の負荷を減軽する。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施例に提供されているＤＭＡコントローラの構成を示す図である。
【図２】本発明の実施例に提供されているＤＭＡコントローラのデータ流れを示す図である。
【図３】本発明の実施例に提供されている第１データの記憶形式を示す図である。
【図４】本発明の実施例に提供されている固定小数点から浮動小数点へ、及び浮動小数点から固定小数点への変換のハードウェア設計の実現を示す図である。
【図５】本発明の実施例に提供されているＤＭＡコントローラの実現方法のフローチャートである。
【図６】本発明の実施例に提供されている固定小数点から浮動小数点への変換処理のフローチャートである。
【図７】本発明の実施例に提供されている浮動小数点から固定小数点への変換処理のフローチャートである。
【発明を実施するための形態】
【００２３】
以下、図面と具体的な実施例を結合して本発明の技術案をより詳しく説明する。
【００２４】
なお、下記の本発明の各実施例において、ＡＭＢＡはＡｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅの略称で、その名称は「高度なマクロコントローラバスアーキテクチャ」であり、ＡＸＩはＡｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅの略称で、その名称は「高度な拡張可能なインターフェース」であり、ＰＭはＰｒｏｇｒａｍ  Ｍｅｍｏｒｙの略称で、その名称は「プログラムメモリ」であり、ＤＭはＤａｔａ  Ｍｅｍｏｒｙの略称で、その名称は「データメモリ」であり、ＦＩＦＯはＦｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔの略称で、その名称は「先入れ先出し」であり、Ｍｕｌｔｉｐｌｅｘｅｒはデータセレクターを指しており、ＭＵＸと略されることが可能である。
【００２５】
実施例１
図１は本発明の実施例に提供されているＤＭＡコントローラの構成を示す図であり、図1に示すように、該ＤＭＡコントローラは、必要最低限のリードデータチャネルの入力インターフェース、ライトデータチャネルの出力インターフェース、制御ロジックモジュール、ＦＩＦＯモジュールより構成され、特に、前記ＤＭＡコントローラはさらに、
第１制御命令を受信した時に、外部メモリから前記リードデータチャネルの入力インターフェースを介して読み取った第１データに対して第１演算を行い、ここで、前記第１制御命令は、前記第１変換器に第１演算処理を行うように指示することに用いられるように構成される第１変換器１１と、
データ演算が必要であると判断した場合、前記第１１変換器によって処理されたデータを選択し、前記第１１変換器によって処理されたデータを前記ＦＩＦＯモジュールに書き込むように構成される第１データセレクター１２と、
第２制御命令を受信した時に、前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行い、ここで、前記第２制御命令は第２変換器１３に第２演算処理を行うように指示することに用いられるように構成される第２変換器１３と、
データ演算が必要であると判断した場合、前記第２変換器１３によって処理されたデータを選択し、前記第２変換器１３によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力するように構成される第２データセレクター１４と、
を含む。
【００２６】
１つの実施例において、前記第１演算は、固定小数点から浮動小数点への変換演算であっても良いが、それに限定されない。前記第２演算は、浮動小数点から固定小数点への変換演算であっても良いが、それに限定されない。
【００２７】
１つの実施例において、前記第１演算と前記第２演算は互いの逆演算であっても良く、例えば、前記第１演算は固定小数点から浮動小数点への変換演算である場合、前記第２演算は浮動小数点から固定小数点への変換演算であり、前記第１演算が圧縮解凍である場合、前記第２演算は圧縮演算である。
【００２８】
１つの実施例において、前記ＤＭＡコントローラは、ＡＸＩバスを介して外部メモリと接続し、ここで、前記ＡＸＩバスの幅は６４ビットである。
【００２９】
ここで、前記ＡＸＩバスは、リードデータバス、ライトデータバス、リードアドレスバス、ライトアドレスバス、ライトレスポンスバスを含む。
【００３０】
１つの実施例において、前記第１データセレクター１２はさらに、データ演算が必要ではないと判断した場合、前記リードデータチャネルの入力インターフェースから読み取った第１データを直接に選択し、前記リードデータチャネルの入力インターフェースから読み取った第１データを前記ＦＩＦＯモジュールに書き込むように構成され、前記第２データセレクター１４はさらに、データ演算が必要ではない場合と判断した場合、前記ＦＩＦＯモジュールから読み取った第２データを直接に選択し、前記ＦＩＦＯモジュールから読み取った第２データを前記ライトデータチャネルの出力インターフェースに出力するように構成される。
【００３１】
１つの実施例において、前記第１変換器１１は、第１演算処理を行う時に、入力のデータ量と出力のデータ量との比が３：４であるように構成される。
【００３２】
前記第２変換器１３はさらに、第２演算処理を行う時に、入力のデータ量と出力のデータ量との比が４：３であるように構成される。
【００３３】
１つの実施例において、前記第１変換器１１は、具体的に、
３個の６４ビットの固定小数点数を１つのセットとし、個々のセット内の前記３個の６４ビットの固定小数点数に対して、
第１の６４ビットの固定小数点数のｂｉｔ［４７：０］を固定小数点から浮動小数点へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿０とＦＩＦＯ＿１に書き込むステップａ１と、
第１の６４ビットの固定小数点数のｂｉｔ［６３：４８］と第２の６４ビットの固定小数点数のｂｉｔ［５５：０］を固定小数点から浮動小数点へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿２、ＦＩＦＯ＿３及びＦＩＦＯ＿４に書き込むステップａ２と、
第２の６４ビットの固定小数点数のｂｉｔ［６３：５６］と第３の６４ビットの固定小数点数のｂｉｔ［６３：０］を固定小数点から浮動小数点へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿５、ＦＩＦＯ＿６及びＦＩＦＯ＿７に書き込むステップａ３と、
を行うように構成され、
ここで、前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールを示す。
【００３４】
１つの実施例において、前記第２変換器１３は、具体的に、
前記第２データセレクターが選択し前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むように、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［６３：０］を、前記第２データセレクターに送り込むステップｂ１と、
前記第２データセレクターが選択し前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むように、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［５５：０］と、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点への変換処理を行ってから得られた７２ビットの固定小数点数のｂｉｔ［７１：６４］を、前記第２データセレクターに送るステップｂ２と、
前記第２データセレクターが選択し前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むように、｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた４８ビットの固定小数点数のｂｉｔ［４７：０］と、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［７１：５６］を、前記第２データセレクターに送り込むステップｂ３と、
ステップｂ１から再度操作を行うステップｂ４と、
を行うように構成される。
【００３５】
１つの実施例において、前記ＤＭＡコントローラが第１演算又は第２演算モードにある場合、前記ＤＭＡコントローラは、バースト（ｂｕｒｓｔ）１２モードで外部メモリをアクセスし、前記ＤＭＡが通常転送モードにある場合、前記ＤＭＡコントローラは、バースト１６モードで外部メモリをアクセスする。
【００３６】
本発明の実施例における前記ＤＭＡコントローラは、通常の転送機能を備える以外に、第１演算と第２演算機能も備え、外部メモリの記憶オーバヘッドを低減し、しかもプロセッサの代わりに第１演算（例えば、固定小数点から浮動小数点への変換）及び第２演算（例えば、浮動小数点から固定小数点への変換）の計算を実行して、プロセッサのコアの演算の負荷を減少することができる。例えば、固定小数点データが外部メモリに記憶されており、ＤＭＡコントローラは、プロセッサが浮動小数点データの演算を行うために、固定小数点データを浮動小数点データへ変換しプロセッサの内部メモリに転送する。
【００３７】
実施例２
図２は、本発明の実施例に提供されているＤＭＡコントローラのデータ流れを示す図である。該ＤＭＡコントローラは、ダウンロード（ｄｏｗｎｌｏａｄ）方向におけるデータ転送を行うことができる以外に、アップロード（ｕｐｌｏａｄ）方向におけるデータ転送を行うこともできる。さらに、該ＤＭＡコントローラは、２つの作業モードをサポートしており、１つは通常転送モードで、もう１つは第１又は第２演算モードである。
【００３８】
ｄｏｗｎｌｏａｄ方向については、
ＤＭＡコントローラが通常転送モードである場合、データ流れは、順に、外部メモリ、システムバス、第１データセレクター、ＦＩＦＯモジュール、ＤＭ（又はＰＭ）であり、
ＤＭＡコントローラが第１演算モードである場合、データ流れは、順に、外部メモリ、システムバス、第１変換器、第１データセレクター、ＦＩＦＯモジュール、ＤＭ（又はＰＭ）である。
【００３９】
好ましくは、前記第１データセレクターのタイプは、二者択一のデータセレクターである。
【００４０】
ｕｐｌｏａｄ方向については、
ＤＭＡコントローラが通常転送モードである場合、データ流れは、順に、ＤＭ、ＦＩＦＯモジュール、第２データセレクター、システムバス、外部メモリであり、
ＤＭＡ転送がｕｐｌｏａｄ方向の第２演算モードである場合、データ流れは、順に、ＤＭ、ＦＩＦＯモジュール、第２変換器、第２データセレクター、システムバス、外部メモリである。
【００４１】
好ましくは、ＤＭＡコントローラとシステムバスのインターフェースはＡＭＢＡ  ＡＸＩプロトコルを採用し、即ち、前記システムバスはＡＸＩバスであり、ここで、ＡＸＩバス内のＡＸＩデータバスの幅は６４ビットである。
【００４２】
上記の外部メモリはシステムメモリと称されることも可能である。
【００４３】
実施例３
図３は本発明の実施例に提供されている第１データの記憶形式を示す図である。第１データが１２ビット幅で、第２データが１６ビット幅であるため、第１データと第２データは、データのビット幅がマッチングしていない状況がある。
【００４４】
仮に、外部メモリ内の第１データの各ビットが有効であることとした場合、第１データがＡＸＩデータバスにある形式は、図３に示す通りに下記のようになる。６４ビットバス上のデータに、５〜６個の有効な１２ビットの第１データがあり、６４ビットバス上のデータは全て有効な第１データであり、一部の１２ビットの第１データは２つのｂｅａｔの６４ビットバスのデータに仕切られる。仮に第１の６４ビットの第１データが揃っている場合、第４、７、…ｂｅａｔのデータも揃っており、即ち、３ｂｅａｔの後にデータが揃っている状態になる。
【００４５】
好ましくは、前記第１データは固定小数点データであり、前記第２データは浮動小数点データである。
【００４６】
実施例４
第１演算でデータ量が増大され（比例が３：４である）、第２演算でデータ量が減少される（比例が４：３である）状況が存在するため、ＤＭＡコントローラのデータ転送及び変換の機能を実現するために、特殊なハードウェア処理はさらに必要である。
【００４７】
以下、第１演算を固定小数点から浮動小数点への変換演算とし、第２演算を浮動小数点から固定小数点への変換演算とする例で、詳しく説明する。
【００４８】
図４は、本発明の実施例に提供されている固定小数点から浮動小数点へ、及び浮動小数点から固定小数点への変換のハードウェア設計の実現を示す図である。図４においては、固定小数点から浮動小数点へ、及び浮動小数点から固定小数点への変換モードのデータ流れだけを示しており、通常転送モードのデータ流れは表されていない。通常転送、及び固定小数点から浮動小数点へ、浮動小数点から固定小数点への変換の２つのモードに適用するため、ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールより構成される。図４内のレジスタは２つの作用があり、１つはメモリタイミングの最適化で、もう１つはデータのバックアップである。
【００４９】
（１）ｄｏｗｎｌｏａｄ方向上の固定小数点から浮動小数点への変換モードにおいて、６個の１２ビットのレジスタ、１個の８ビットのレジスタ、６個の１２−ｔｏ−１６の固定小数点から浮動小数点への変換ユニットを使用し、図にｆｘ２ｆｔを使用して固定小数点から浮動小数点への変換ユニット（入力は１２ビットの固定小数点数で、出力は１６ビットの浮動小数点数である）を表している。レジスタはビート（ｂｅａｔ）及びデータのバッファ機能を兼ね備えている。
【００５０】
好ましくは、３ｂｅａｔの固定小数点数の処理過程は、下記のステップａ１〜ａ４を含む。
【００５１】
ステップａ１において、第１の６４ビットの固定小数点数のｂｉｔ［４７：０］を固定小数点から浮動小数点へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿０とＦＩＦＯ＿１に書き込む。
【００５２】
ステップａ２において、第１の６４ビットの固定小数点数のｂｉｔ［６３：４８］と第２の６４ビットの固定小数点数のｂｉｔ［５５：０］を固定小数点から浮動小数点へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿２、ＦＩＦＯ＿３及びＦＩＦＯ＿４に書き込む。
【００５３】
ステップａ３において、第２の６４ビットの固定小数点数のｂｉｔ［６３：５６］と第３の６４ビットの固定小数点数のｂｉｔ［６３：０］を固定小数点から浮動小数点へ変換処理してから、前記第１データセレクターによってＦＩＦＯ＿５、ＦＩＦＯ＿６及びＦＩＦＯ＿７に書き込む。
【００５４】
ステップａ４において、ステップａ１から再度操作を行う。
【００５５】
具体的に、まず、第１の６４ビットの固定小数点数を６個の１２ビットのレジスタに書き込み、ここで、ｂｉｔ［６３：６０］は１２ビットのレジスタの下位ビット部分（図４内の線１「
0006570046.tif 000002
」に示すように）のみに書き込まれている。次のサイクルにおいて、レジスタ内に記憶されている第１の６４ビットの固定小数点数はｆｘ２ｆｔによって浮動小数点数に変換され、データ幅が大きくなる。前の４個の固定小数点数が変換されて得られた浮動小数点数をＦＩＦＯモジュールに書き込み、合計は６４ビットである。残りの６４−４＊１２＝１６ビットの固定小数点数は、第２の６４ビットの固定小数点数と合わせて、２回目の固定小数点から浮動小数点への変換を行うことになる。
【００５６】
次ぎ、レジスタ内に記憶されている第１の６４ビットの固定小数点数のｂｉｔ［６３：４８］を第２の６４ビットの固定小数点数と合わせて、合計の８０ビットをレジスタ（図４内の線２「
0006570046.tif 000003
」に示すように）に書き込む。次のサイクルにおいて、レジスタ内に記憶されている固定小数点数の７２ビットはｆｘ２ｆｔによって浮動小数点数に変換される。変換後、９６ビットの浮動小数点数になる。この９６ビットの浮動小数点数をＦＩＦＯモジュールに書き込む。レジスタ内の残りの８ビットの固定小数点数は、第３の６４ビットの固定小数点数と合わせて、３回目の固定小数点から浮動小数点への変換を行うことになる。
【００５７】
さらに、レジスタ内に記憶されている最後の８ビットの固定小数点数を第３の６４ビットの固定小数点数と合わせて、合計の７２ビットをレジスタ（図４内の線３「
0006570046.tif 000004
」に示すように）に書き込む。次のサイクルで、レジスタ内に記憶されている７２ビットの固定小数点数はｆｘ２ｆｔによって浮動小数点数に変換される。変換後、９６ビットの浮動小数点数になる。この９６ビットの浮動小数点数をＦＩＦＯモジュールに書き込む。
【００５８】
最後、最初から操作を繰り返す。
【００５９】
以上のように、ｄｏｗｎｌｏａｄ方向上の固定小数点から浮動小数点への変換モードにおいて、３回にＦＩＦＯモジュールに書き込むデータはそれぞれ６４、９６と９６ビットになり、即ち｛ＦＩＦＯ＿１，ＦＩＦＯ＿０｝、｛ＦＩＦＯ＿４，ＦＩＦＯ＿３，ＦＩＦＯ＿２｝と｛ＦＩＦＯ＿７，ＦＩＦＯ＿６、ＦＩＦＯ＿５｝にそれぞれ書き込む。
【００６０】
（２）ｄｏｗｎｌｏａｄ方向の通常転送モードにおいて、データ量が異なる問題がないため、前の４個の６４ビットのデータは、｛ＦＩＦＯ＿１，ＦＩＦＯ＿０｝、｛ＦＩＦＯ＿３，ＦＩＦＯ＿２｝、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４｝と｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝にそれぞれ書き込まれる。
【００６１】
（３）ｕｐｌｏａｄ方向上の浮動小数点から固定小数点への変換モードにおいて、６個の１２ビットのレジスタ、１個の１６ビットのレジスタ、６個の１６−ｔｏ−１２の浮動小数点から固定小数点への変換ユニットを使用し、図にｆｔ２ｆｘを使用して（入力は１６ビットの浮動小数点数で、出力は１２ビットの固定小数点数である）表す。レジスタはビート及びデータのバッファ機能を兼ね備えている。
【００６２】
好ましくは、３ｂｅａｔの固定小数点数が生成される過程は下記のようになる。
【００６３】
ステップｂ１において、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［６３：０］を、６４ビットのＡＸＩライトデータバスに送り込む。
【００６４】
ステップｂ２において、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［５５：０］と、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［７１：６４］を、６４ビットのＡＸＩライトデータバスに送り込む。
【００６５】
ステップｂ３において、｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた４８ビットの固定小数点数のｂｉｔ［４７：０］と、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［７１：５６］を、６４ビットのＡＸＩライトデータバスに送り込む。
【００６６】
ステップｂ４において、ステップｂ１から再度操作を行う。
【００６７】
具体的に、まず、ＦＩＦＯモジュールから｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝の値を読み取り、合計９６ビットである。この９６ビットのデータはｆｔ２ｆｘによって７２ビットの固定小数点数に変換される。７２ビットの固定小数点数を６個の１２ビットのレジスタに書き込む。次のサイクルで、７２ビットの固定小数点数内のｂｉｔ［６３：０］を第１の６４ビットのライトデータとしてＡＸＩライトデータバスに送り出し、それに対してｂｉｔ［７１：６４］、即ち、ｆｘ＿ｒｅｇ５［１１：４］は、２回目のＤＭＡ  ＦＩＦＯから読み取ったデータによって変換して得られた固定小数点数と合わせて、第２の６４ビットのライトデータを生成する。
【００６８】
次ぎ、ＦＩＦＯモジュールから｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝の値を読み取り、合計９６ビットである。この９６ビットデータはｆｔ２ｆｘによって７２ビットの固定小数点数に変換される。７２ビットの固定小数点数を６個の１２ビットのレジスタに書き込むと同時に、ｆｘ＿ｒｅｇ５［１１：４］を１６ビットのレジスタの下位ビット部分に書き込む。次のサイクルで、１６ビットのレジスタのｂｉｔ［７：０］を、｛ｆｘ＿ｒｅｇ４［７：０］，ｆｘ＿ｒｅｇ３［１１：０］，ｆｘ＿ｒｅｇ２［１１：０］，ｆｘ＿ｒｅｇ１［１１：０］，ｆｘ＿ｒｅｇ０［１１：０］｝と合わせて６４ビットになり、第２の６４ビットのライトデータとしてＡＸＩライトデータバスから送り出す。｛ｆｘ＿ｒｅｇ５［１１：０］，ｆｘ＿ｒｅｇ４［１１：８］｝が、３回目のＤＭＡ  ＦＩＦＯから読み取ったデータを変換して得られた固定小数点数と合わせて、第３の６４ビットのライトデータを生成する。
【００６９】
さらに、ＤＭＡ  ＦＩＦＯから｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝の値を読み取り、合計６４ビットである。この６４ビットのデータはｆｔ２ｆｘによって４８ビットの固定小数点数に変換される。４８ビットの固定小数点数を４個の１２ビットのレジスタに書き込むと同時に、｛ｆｘ＿ｒｅｇ５［１１：０］，ｆｘ＿ｒｅｇ４［１１：８］｝を１６ビットのレジスタに書き込む。次のサイクルで、１６ビットのレジスタのｂｉｔ［１５：０］を、｛ｆｘ＿ｒｅｇ３［１１：０］，ｆｘ＿ｒｅｇ２［１１：０］、ｆｘ＿ｒｅｇ１［１１：０］，ｆｘ＿ｒｅｇ０［１１：０］｝と合わせて６４ビットにして、第３の６４ビットのライトデータとしてＡＸＩライトデータバスから送り出す。
【００７０】
最後、最初から操作を繰り返す。
【００７１】
以上のように、ｕｐｌｏａｄ方向上の浮動小数点から固定小数点への変換モードにおいて、３回の読み取ったＦＩＦＯのデータはそれぞれ９６、９６と６４ビットになり、即ち、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝と｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝をそれぞれ読み取り、ＤＭＡ  ＦＩＦＯの一列を全部読み取る。
【００７２】
（４）ｕｐｌｏａｄ方向の通常転送モードにおいて、データ量の異なる問題がないため、前の４回の読み取ったＦＩＦＯはそれぞれ｛ＦＩＦＯ＿１，ＦＩＦＯ＿０｝、｛ＦＩＦＯ＿３，ＦＩＦＯ＿２｝、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４｝と｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝であり、読み取った６４ビットのデータをＡＸＩライトデータバスに直接に送る。
【００７３】
（５）固定小数点から浮動小数点へ、又は浮動小数点から固定小数点への変換モードについては、ＤＭＡコントローラは、バースト１２モードで外部メモリをアクセスする。通常転送モードについては、ＤＭＡコントローラは、バースト１６モードで外部メモリにアクセスする。
【００７４】
本発明の転送モードはプログラム可能であり、１つは、通常転送モードであり、ソース側とターゲット側とのデータが一致し、しかもデータ量も等しい。もう１つは、固定小数点から浮動小数点へ、又は浮動小数点から固定小数点への変換モードであり、ソース側とターゲット側は異なるデータタイプ、即ち固定小数点データ又は浮動小数点データであり、しかも両側のデータ量が異なる。固定小数点から浮動小数点へ、又は浮動小数点から固定小数点への変換モードにおいて、ＤＭＡコントローラは、データ転送を行うと同時に、データ演算も行う。
【００７５】
当然、当業者は、上記の設計実現方式に基づいて、固定小数点から浮動小数点への変換及び浮動小数点から固定小数点への変換以外のその他の演算の実現方式を得ることができる。例えば、前記固定小数点から浮動小数点への変換ユニット（図にｆｘ２ｆｔで表される）は、第１演算機能を備えるサブ処理ユニットであっても良く、前記浮動小数点から固定小数点への変換ユニット（図にｆｔ２ｆｘで表される）は、第２演算機能を備えるサブ処理ユニットであっても良い。ここで、それ以上詳しく説明しない。
【００７６】
実施例５
図５は、本発明の実施例に提供されているＤＭＡコントローラの実現方法のフローチャートである。前記ＤＭＡコントローラは、リードデータチャネルの入力インターフェース、ライトデータチャネルの出力インターフェース、制御ロジックモジュール、ＦＩＦＯモジュールを含み、図５に示すように、該方法は主に下記のステップを含む。
【００７７】
ステップ５０１において、第１制御命令を受信した時に、外部メモリから前記リードデータチャネルの入力インターフェースを介して読み取った第１データに対して第１演算を行い、ここで、前記第１制御命令は、第１演算処理を行うように指示することに用いられる。
【００７８】
ここで、前記第１制御命令は、制御ロジックモジュールによって送信されることが可能である。
【００７９】
ステップ５０２において、データ演算が必要であると判断した場合、第１演算によって処理されたデータを選択し、前記第１演算によって処理されたデータを前記ＦＩＦＯモジュールに書き込む。
【００８０】
ステップ５０３において、第２制御命令を受信した時に、前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行い、ここで、前記第２制御命令は第２演算処理を行うように指示することに用いられる。
【００８１】
ここで、前記第２制御命令は、制御ロジックモジュールによって送信されることが可能である。
【００８２】
ステップ５０４において、データ演算が必要であることを判断した場合、第２演算によって処理されたデータを選択し、前記第２演算によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力する。
【００８３】
１つの実施例において、前記第１演算は固定小数点から浮動小数点への変換演算であっても良いが、それに限定されない。前記第２演算は浮動小数点から固定小数点への変換演算であっても良いが、それに限定されない。
【００８４】
１つの実施例において、前記第１演算と前記第２演算は互いの逆演算であっても良く、例えば、前記第１演算は固定小数点から浮動小数点への変換演算である場合、前記第２演算は浮動小数点から固定小数点への変換演算であり、前記第１演算が圧縮解凍である場合、前記第２演算は圧縮演算である。
【００８５】
本実施例において、前記ＤＭＡコントローラは、ＡＸＩバスを介して外部メモリと接続し、ここで、前記ＡＸＩバスの幅は６４ビットである。
【００８６】
１つの実施例において、前記方法はさらに、
第１演算が必要ではないと判断した場合、前記リードデータチャネルの入力インターフェースから読み取った第１データを直接に選択し、前記リードデータチャネルの入力インターフェースから読み取った第１データを、前記ＦＩＦＯモジュールに書き込むことと、
第２演算が必要ではないと判断した場合、前記ＦＩＦＯモジュールから読み取った第２データを直接に選択し、前記ＦＩＦＯモジュールから読み取った第２データを、前記ライトデータチャネルの出力インターフェースに出力することと、
を含む。
【００８７】
１つの実施例において、前記方法はさらに、
第１演算処理を行う時に、入力のデータ量と出力のデータ量との比が３：４であることと、
第２演算処理を行う時に、入力のデータ量と出力のデータ量との比が４：３であることと、
を含む。
【００８８】
１つの実施例において、前記リードデータチャネルの入力インターフェースを介して、外部メモリから読み取った第１データに対して第１演算を行い、第１演算が必要であると判断した場合、第１演算によって処理されたデータを選択し、前記第１演算によって処理されたデータを前記ＦＩＦＯモジュールに書き込むことは、
３個の６４ビットの固定小数点数を１つのセットとし、個々のセット内の前記３個の６４ビットの固定小数点数に対して、
第１の６４ビットの固定小数点数のｂｉｔ［４７：０］を固定小数点から浮動小数点へ変換処理してから、ＦＩＦＯ＿０とＦＩＦＯ＿１に書き込むステップａ１と、
第１の６４ビットの固定小数点数のｂｉｔ［６３：４８］と第２の６４ビットの固定小数点数のｂｉｔ［５５：０］を固定小数点から浮動小数点へ変換処理してから、ＦＩＦＯ＿２、ＦＩＦＯ＿３及びＦＩＦＯ＿４に書き込むステップａ２と、
第２の６４ビットの固定小数点数のｂｉｔ［６３：５６］と第３の６４ビットの固定小数点数のｂｉｔ［６３：０］を固定小数点から浮動小数点へ変換処理してから、ＦＩＦＯ＿５、ＦＩＦＯ＿６及びＦＩＦＯ＿７に書き込むステップａ３と、
を行うことを含み、
ここで、前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す。
【００８９】
１つの実施例において、前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行い、第２演算が必要であると判断した場合、第２演算によって処理されたデータを選択し、前記第２演算によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力することは、
｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［６３：０］を、前記ライトデータチャネルの出力インターフェースを介して、ＡＸＩライトデータバスに送り込むステップｂ１と、
｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［５５：０］と、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［７１：６４］を、前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むステップｂ２と、
｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた４８ビットの固定小数点数のｂｉｔ［４７：０］と、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［７１：５６］を、前記ライトデータチャネルの出力インターフェースを介してＡＸＩライトデータバスに送り込むステップｂ３と、
ステップｂ１から再度操作を行うステップｂ４と、
を含み、
ここで、前記ＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す。
【００９０】
１つの実施例において、前記方法はさらに、
前記ＤＭＡが第１演算又は第２演算モードにある場合、前記ＤＭＡコントローラは、バースト１２モードで外部メモリをアクセスし、前記ＤＭＡが通常転送モードにある場合、前記ＤＭＡコントローラは、バースト１６モードで外部メモリをアクセスすることを含む。
【００９１】
本実施例における前記ＤＭＡコントローラの実現方法は、従来技術の、メモリのメモリリソースを省くことと、プロセッサのコアの演算負荷を減軽することという、矛盾する課題を克服し、ＤＭＡコントローラがデータ転送とデータ変換機能を兼ね備えるようにして、外部メモリの使用スペースを省いて、プロセッサ演算の負荷を減軽する。さらに、ＤＭＡコントローラは、データ転送のみを選択して行っても良く、データ転送を行うと同時に第１演算又は第２演算を選択して行っても良い。
【００９２】
実施例６
図６は、本発明の実施例に提供されている固定小数点から浮動小数点への変換処理のフローチャートである。図６に示すように、前記処理フローは主にステップ６０１〜６０４を含む。
【００９３】
ステップ６０１において、第１の６４ビットの固定小数点数のｂｉｔ［４７：０］を固定小数点から浮動小数点へ変換処理してから、ＦＩＦＯ＿０とＦＩＦＯ＿１に書き込む。
【００９４】
ステップ６０２において、第１の６４ビットの固定小数点数のｂｉｔ［６３：４８］と第２の６４ビットの固定小数点数のｂｉｔ［５５：０］を固定小数点から浮動小数点へ変換処理してから、ＦＩＦＯ＿２、ＦＩＦＯ＿３及びＦＩＦＯ＿４に書き込む。
【００９５】
ステップ６０３において、第２の６４ビットの固定小数点数のｂｉｔ［６３：５６］と第３の６４ビットの固定小数点数のｂｉｔ［６３：０］を固定小数点から浮動小数点へ変換処理してから、ＦＩＦＯ＿５、ＦＩＦＯ＿６及びＦＩＦＯ＿７に書き込む。
【００９６】
ステップ６０４において、次のデータセットに対して、再度ステップ６０１から操作を始める。
【００９７】
ここで、前記次のデータセットは第２のデータセットであっても良く、ここで、前記第２のデータセットは、第４の６４ビットの固定小数点数、第５の６４ビットの固定小数点数、第６の６４ビットの固定小数点数を含む。
【００９８】
ここで、第２のデータセットに対して操作を行う時に、ステップ６０１〜ステップ６０３内の第１の６４ビットの固定小数点数が第４の６４ビットの固定小数点数に置き換えられ、第２の６４ビットの固定小数点数が第５の６４ビットの固定小数点数に置き換えられ、第３の６４ビットの固定小数点数が第６の６４ビットの固定小数点数に置き換えられる。
【００９９】
言い換えれば、３個の６４ビットの固定小数点数を１セットとし、各セット内の３個の６４ビットの固定小数点数に対してステップ６０１〜ステップ６０３の操作を行う。
【０１００】
本実施例において、ＤＭＡコントローラ内のＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す。
【０１０１】
実施例７
図７は、本発明の実施例に提供されている浮動小数点から固定小数点への変換処理のフローチャートである。図７に示すように、前記処理フローは主にステップ７０１〜７０４を含む。
【０１０２】
ステップ７０１において、｛ＦＩＦＯ＿２、ＦＩＦＯ＿１、ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［６３：０］を、ＡＸＩライトデータバスに送り込む。
【０１０３】
ステップ７０２において、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［５５：０］と、｛ＦＩＦＯ＿２，ＦＩＦＯ＿１，ＦＩＦＯ＿０｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［７１：６４］を、ＡＸＩライトデータバスに送り込む。
【０１０４】
ステップ７０３において、｛ＦＩＦＯ＿７，ＦＩＦＯ＿６｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた４８ビットの固定小数点数のｂｉｔ［４７：０］と、｛ＦＩＦＯ＿５，ＦＩＦＯ＿４，ＦＩＦＯ＿３｝から読取されたデータを浮動小数点から固定小数点へ変換処理して得られた７２ビットの固定小数点数のｂｉｔ［７１：５６］を、ＡＸＩライトデータバスに送り込む。
【０１０５】
ステップ７０４において、ステップ７０１から再度操作を行う。
【０１０６】
本実施例において、ＤＭＡコントローラ内のＦＩＦＯモジュールは、８個の３２ビット幅のサブＦＩＦＯモジュールにより構成され、ＦＩＦＯ＿０、ＦＩＦＯ＿１、ＦＩＦＯ＿２、ＦＩＦＯ＿３、ＦＩＦＯ＿４、ＦＩＦＯ＿５、ＦＩＦＯ＿６、ＦＩＦＯ＿７で前記サブＦＩＦＯモジュールをそれぞれ示す。
【０１０７】
なお、本発明の上記の各実施例は、主に固定小数点から浮動小数点への変換演算、及び浮動小数点から固定小数点への変換演算を例として説明している。上記の各実施例内の固定小数点から浮動小数点への変換演算、及び浮動小数点から固定小数点への変換演算は、プロセッサのコアが行えるその他の演算であっても良く、データ入力出力の比例が３：４又は４：３でさえあれば良い。このように、外部メモリの記憶のための支出を減少することができ、しかもＤＭＡコントローラがプロセッサの代わりに、前記プロセッサのコアの行えるその他の演算を遂行し、プロセッサのコアの演算負荷を減少することができる。
【０１０８】
本発明の実施例はさらに、コンピュータ記憶媒体を記載しており、前記コンピュータ記憶媒体に、本発明の実施例における図５に示すようなＤＭＡコントローラの実現方法を実行するためのコンピュータプログラムが記憶されている。
【０１０９】
本願に提供されている幾つかの実施例において、開示されているデバイスと方法がその他の方式で実現されることが可能であることを理解すべきである。上記で説明したデバイスの実施例は例示的なものに過ぎず、例えば、前記ユニットの分け方が、単なるロジック的な機能分けであり、実際、実現する時に他の分け方があっても良く、例えば、複数のユニット又はコンポーネントを別のシステムに結合し、又は集成しても良く、又は幾つかの技術特徴を省略し、又は実施しなくても良い。また、明示され、又は議論されている各構成部分の間のカップリング、又は直接のカップリング、又は通信接続は、幾つかのインターフェース、デバイス、又はユニットの間接のカップリング又は通信によって接続しても良く、電的、機械的、又はその他の形式であっても良い。
【０１１０】
上記で分離部品として説明したユニットは、物理的に分離されるものであっても良く、そうではないものであっても良い。ユニットとしての部品は物理ユニットであっても良く、そうではないものであっても良い。一箇所に置かれても良く、複数のネットワークユニットに配布しても良い。実際のニーズに応じて、その中の一部又は全部のユニットを選択して本実施例の技術案の目的を実現しても良い。
【０１１１】
また、本発明の各実施例内の各機能ユニットは全て１つの処理ユニットに集成しても良く、各ユニットはそれぞれ単独なユニットとしても良く、二つ又は二つ以上のユニットを１つのユニットに集成しても良く、上記の集成されたユニットはハードウェアの方式で実現しても良く、ハードウェアにソフトウェア機能ユニットを追加する方式で実現しても良い。
【０１１２】
当業者は、上記の方法の実施例の全部又は一部のステップを実現するのが、プログラムによって相関のハードウェアに指示して遂行しても良く、上記のプログラムがコンピュータの読み取り可能な記憶媒体に記憶されても良く、該プログラムを実行する時に、上記方法の実施例を含むステップを実行し、そして、上記の記憶媒体は、移動記憶媒体、読み取り専用メモリ（ＲＯＭ：Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク又はコンパクトディスクなどの各種のプログラムコードが記憶できる媒体を含むことを理解すべきである。
【０１１３】
又は、本発明の上記の集成されたユニットは、ソフトウェア機能モジュールの方式で実現し、しかも独立な製品として販売又は使用する時に、コンピュータ読み取り可能の記憶媒体に記憶しても良い。これによって、本発明の実施例の技術案が事実的に、言い換えれば先行技術に貢献した部分がソフトウェア製品の形で体現でき、該コンピュータソフトウェア製品は記憶媒体に記憶され、コンピュータ装置（パソコン、サーバ、またはネットワーク装置などであっても良い）は、本発明の各実施例の全部または一部の前記方法を実行するための複数の命令を含む。上記の記憶媒体は、移動記憶媒体、読み取り専用メモリ（ＲＯＭ：Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク又はコンパクトディスクなどの各種のプログラムコードが記憶できる媒体を含む。
【０１１４】
以上に記載しているのは、本発明の好ましい実施例であって、本発明の範囲を限定しない。本発明の精神と原則内でのすべての変更は、等価の置換および改善は、本発明の保護の範囲内に含まれるべきである。
【産業上の利用可能性】
【０１１５】
本発明の実施例において、第１制御命令を受信した時に、外部メモリから前記リードデータチャネルの入力インターフェースを介して読み取った第１データに対して第１演算を行い、データ演算が必要であると判断した場合、第１演算によって処理されたデータを選択し、前記第１演算によって処理されたデータを前記ＦＩＦＯモジュールに書き込み、それに応じて、第２制御命令を受信した時に、前記ＦＩＦＯモジュールから読み取った第２データに対して第２演算処理を行い、データ演算が必要であることを判断した場合、第２演算によって処理されたデータを選択し、前記第２演算によって処理されたデータを前記ライトデータチャネルの出力インターフェースに出力する。それによって、従来技術における、プロセッサメモリリソースを省くことと、プロセッサのコア演算負荷を減軽することという、矛盾する課題を解決し、ＤＭＡコントローラの機能を拡張し、プロセッサのコアの演算負荷を減軽する。
【図１】
0006570046.tif 000005
【図２】
0006570046.tif 000006
【図３】
0006570046.tif 000007
【図４】
0006570046.tif 000008
【図５】
0006570046.tif 000009
【図６】
0006570046.tif 000010
【図７】
0006570046.tif 000011