JP2014137633A - コンピュータプログラム及びデータ処理装置 - Google Patents
コンピュータプログラム及びデータ処理装置 Download PDFInfo
- Publication number
- JP2014137633A JP2014137633A JP2013004685A JP2013004685A JP2014137633A JP 2014137633 A JP2014137633 A JP 2014137633A JP 2013004685 A JP2013004685 A JP 2013004685A JP 2013004685 A JP2013004685 A JP 2013004685A JP 2014137633 A JP2014137633 A JP 2014137633A
- Authority
- JP
- Japan
- Prior art keywords
- data
- partial data
- dma
- dma transfer
- partial
- 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
Landscapes
- Bus Control (AREA)
Abstract
【課題】物理アドレス空間上に非連続に配置されたデータを途切れなくDMA転送できる「コンピュータプログラム及びデータ処理装置」を提供する。
【解決手段】物理アドレス空間上に分割されて非連続に配置されたデータの、物理アドレス空間上の連続部分である部分データ1-5のうちの、規定サイズよりデータサイズが小さい部分データ3について、その部分データ3の直後の部分データ4とを連結した部分データ3&4を作成する。そして、ソフトウエアによって、DMAC1の、他の部分データと連結させた部分データを除く、各部分データの、2つのDMAチャネルを交互に用いたDMA転送を制御する。
【選択図】図3
【解決手段】物理アドレス空間上に分割されて非連続に配置されたデータの、物理アドレス空間上の連続部分である部分データ1-5のうちの、規定サイズよりデータサイズが小さい部分データ3について、その部分データ3の直後の部分データ4とを連結した部分データ3&4を作成する。そして、ソフトウエアによって、DMAC1の、他の部分データと連結させた部分データを除く、各部分データの、2つのDMAチャネルを交互に用いたDMA転送を制御する。
【選択図】図3
Description
本発明は、DMA転送の技術に関するものである。
DMA(Direct Memory Access)転送の技術としては、物理アドレス空間上に非連続に配置されたデータを連続して転送するスキャッタギャザー機能を備えたDMAC(Direct Memory Access Controler)が知られている。
DMA転送するデータが、リアルタイムに音声出力されるオーディオデータなどの、リアルタイム処理されるデータである場合、一定の転送レートで途切れなくデータをDMA転送する必要がある。
一方、物理アドレス空間上に非連続に配置されたデータの、物理アドレス空間上で連続している各部分を部分データと呼ぶこととして、スキャッタギャザー機能を備えたDMACを用いずに、DMAチャネルを2つ備えたDMACを用いて、物理アドレス空間上に非連続に配置されたデータを、2つのDMAチャネルを交互に用いてDMA転送する場合、DMACによってDMAチャネルの部分データのDMA転送が完了する度に、ソフトウエアによって、当該DMA転送が完了した部分データの次の次の部分データの前記DMA転送が完了したDMAチャネルによるDMA転送をDMACに指示することにより、データのDMA転送を行うこととなる。
一方、物理アドレス空間上に非連続に配置されたデータの、物理アドレス空間上で連続している各部分を部分データと呼ぶこととして、スキャッタギャザー機能を備えたDMACを用いずに、DMAチャネルを2つ備えたDMACを用いて、物理アドレス空間上に非連続に配置されたデータを、2つのDMAチャネルを交互に用いてDMA転送する場合、DMACによってDMAチャネルの部分データのDMA転送が完了する度に、ソフトウエアによって、当該DMA転送が完了した部分データの次の次の部分データの前記DMA転送が完了したDMAチャネルによるDMA転送をDMACに指示することにより、データのDMA転送を行うこととなる。
また、この場合、前記DMAチャネルの部分データのDMA転送の完了から、当該DMA転送が完了した部分データの次の次の部分データのDMA転送のDMACへの指示までにソフトウエアが要する時間は、その時点の、CPUなどの各資源の負荷状況によって変化し、また、一方のDMAチャネルの部分データのDMA転送の完了から、当該DMA転送が完了した部分データの次の部分データの他方のDMAチャネルによるDMA転送の完了までに要する時間も、当該他方のDMAチャネルでDMA転送する部分データのデータサイズによって変化することとなる。
したがって、このように物理アドレス空間上に非連続に配置されたリアルタイム処理されるデータを、2つのDMAチャネルを交互に用いてDMA転送する場合、一方のDMAチャネルの部分データのDMA転送が完了した後に行われる、ソフトウエアによる、当該DMA転送が完了した部分データの次の次の部分データの当該一方のDMAチャネルによるDMA転送の指示が、当該DMA転送が完了した部分データの次の部分データの他方のDMAチャネルによるDMA転送が完了するまでに間に合わなくなってしまう状況が生じ得る。
そして、この場合には、他方のDMAチャネルのDMA転送が完了後にすみやかに、その次の部分データのDMA転送を開始することができず、結果、データの途切れが生じ、データのリアルタイム処理に不都合が生じることとなる。すなわち、たとえば、DMA転送するデータがリアルタイムに音声出力されるオーディオデータである場合には、出力音の途切れなどが発生してしまうこととなる。
一方で、物理アドレス空間上に非連続に配置された全ての部分データを、連続した物理アドレス空間に配置し直して連結した後に、連結したデータのDMA転送を行えば、データを途切れることなくDMA転送することができるようになるが、このようにすると、データの格納のために要する記憶空間のサイズが倍となるなど、当該DMA転送のために比較的大きく計算資源や記憶資源を消費してしまうこととなる。
そこで、本発明は、大きく資源を消費することなく、物理アドレス空間上に非連続に配置されたデータを、2つのDMAチャネルを交互に用いて、途切れることなくDMA転送することを課題とする。
前記課題達成のために、本発明は、メモリと、2つのDMAチャネルを有するDMACを備えたコンピュータによって読み取られ実行されるコンピュータプログラムとして、前記コンピュータを、前記DMACを用いて転送するデータが、前記メモリの物理アドレス空間上に非連続に配置された複数の部分データを構成要素として構成されるデータである場合に、当該データの構成要素となっている部分データの全てが所定のデータサイズ以上の部分データとなるように、当該データの構成要素となっている部分データのうちの所定のデータサイズ未満の部分データを含む、前記データを構成する順番が連続する複数の部分データより構成される新たな部分データを、当該新たな部分データのデータサイズが前記所定のデータサイズ以上となり、当該新たな部分データが物理アドレス空間上で連続するように、前記メモリ上に作成し、作成した新たな部分データを構成する各部分データから、作成した新たな部分データに、前記データの構成要素を置き換える部分データ連結手段と、前記データの構成要素なっている各部分データの、前記2つのDMAチャネルを交互に用いたDMA転送を制御するDMA転送制御手段として機能させるコンピュータプログラムを提供する。
ここで、前記各DMAチャネルが、DMA転送要求の設定に応答して当該DMA転送要求で要求されたDMA転送を行うとともに、他のDMAチャネルがDMA転送を行っているときに前記DMA転送要求が設定された場合には、当該他のDMAチャネルのDMA転送の完了を待って当該設定されたDMA転送要求で要求されたDMA転送を行うものである場合には、このようなコンピュータプログラムが前記コンピュータに機能させる前記DMA転送制御手段は、前記二つのDMAチャネルの一方のDMAチャネルに前記データの1番目の構成要素となっている部分データのDMA転送要求を設定した後に、他方のDMAチャネルに前記データの2番目の構成要素となっている部分データのDMA転送要求を設定し、以降、DMAチャネルのDMA転送が完了する度に、当該のDMA転送が完了したDMAチャネルに、前記データの、前回DMA転送要求を設定した部分データの次の構成要素となっている部分データのDMA転送要求を設定するものとしてよい。
また、前記データはオーディオデータであってよく、この場合、前記部分データのDMA転送の転送先は、前記DMAチャネルからオーディオデータのDMA転送を一定の転送レートで受け入れて、アナログ音声に変換して出力する音声出力デバイスであってよい。
このようなコンピュータプログラムによれば、前記所定のデータサイズを、そのデータサイズ以上のデータサイズの部分データであれば、DMA転送制御手段において、部分データのDMA転送完了後に行われる当該DMA転送が完了した部分データの次の次の部分データのDMA転送の制御が、当該DMA転送が完了した部分データの次の部分データのDMA転送中に確実に行えることが保証できるサイズとすることにより、前記メモリの物理アドレス空間上に分割されて非連続に配置されたデータを途切れることなくDMA転送することができるようになる。
このようなコンピュータプログラムによれば、前記所定のデータサイズを、そのデータサイズ以上のデータサイズの部分データであれば、DMA転送制御手段において、部分データのDMA転送完了後に行われる当該DMA転送が完了した部分データの次の次の部分データのDMA転送の制御が、当該DMA転送が完了した部分データの次の部分データのDMA転送中に確実に行えることが保証できるサイズとすることにより、前記メモリの物理アドレス空間上に分割されて非連続に配置されたデータを途切れることなくDMA転送することができるようになる。
なお、本発明は、このようなコンピュータであるところのデータ処理装置も提供する。
以上のように、本発明によれば、大きく資源を消費することなく、物理アドレス空間上に非連続に配置されたデータを、2つのDMAチャネルを交互に用いて、途切れることなくDMA転送することができる。
以下、本発明の実施形態について説明する。
図1に、本実施形態に係るデータ処理装置の構成を示す。
図示するように、データ処理装置は、DMAC1、メモリ2、CPU3、DAC4、アンプ5、スピーカ6、インタフェース7、オーディオソース8などを備えている。
ここで、DMAC1は、DMA0とDMA1との二つのDMAチャネルを備えている。
また、DAC4は、FIFO41とD/A42とFIFO制御部43を備えている。
また、オーディオソース8は、圧縮符号化されたオーディオデータを記憶した装置であり、たとえばHDDである。
次に、図2にデータ処理装置の機能構成を示す。
図示するように、データ処理装置は、オペレーティングシステム21、仮想メモリ22、オペレーティングシステム21上で稼働するアプリケーションであるメディアプレイヤ23やその他のアプリケーション24とを備えている。
なお、オペレーティングシステム21やメディアプレイヤ23は、CPU3が所定のコンピュータプログラムを実行することにより実現されるものである。
また、仮想メモリ22は、仮想アドレス空間を有する仮想的なメモリ2であり、仮想メモリ22の仮想アドレス空間は、所定サイズのページを単位として、オペレーティングシステム21によってメモリ2の物理アドレス空間にマッピングされる。
さて、図2に示した構成において、メディアプレイヤ23は、オペレーティングシステム21を介してオーディオソース8から圧縮符号化されたオーディオデータを読み出して、オーディオデータに伸張復号化し、図3aに示すように仮想メモリ22の仮想アドレス空間に連続的に格納する。
図1に、本実施形態に係るデータ処理装置の構成を示す。
図示するように、データ処理装置は、DMAC1、メモリ2、CPU3、DAC4、アンプ5、スピーカ6、インタフェース7、オーディオソース8などを備えている。
ここで、DMAC1は、DMA0とDMA1との二つのDMAチャネルを備えている。
また、DAC4は、FIFO41とD/A42とFIFO制御部43を備えている。
また、オーディオソース8は、圧縮符号化されたオーディオデータを記憶した装置であり、たとえばHDDである。
次に、図2にデータ処理装置の機能構成を示す。
図示するように、データ処理装置は、オペレーティングシステム21、仮想メモリ22、オペレーティングシステム21上で稼働するアプリケーションであるメディアプレイヤ23やその他のアプリケーション24とを備えている。
なお、オペレーティングシステム21やメディアプレイヤ23は、CPU3が所定のコンピュータプログラムを実行することにより実現されるものである。
また、仮想メモリ22は、仮想アドレス空間を有する仮想的なメモリ2であり、仮想メモリ22の仮想アドレス空間は、所定サイズのページを単位として、オペレーティングシステム21によってメモリ2の物理アドレス空間にマッピングされる。
さて、図2に示した構成において、メディアプレイヤ23は、オペレーティングシステム21を介してオーディオソース8から圧縮符号化されたオーディオデータを読み出して、オーディオデータに伸張復号化し、図3aに示すように仮想メモリ22の仮想アドレス空間に連続的に格納する。
ここで、仮想メモリ22の仮想アドレス空間上に図3aに示すように連続して格納されたオーディオデータは、オペレーティングシステム21の上述したマッピングに従い、メモリ2の物理アドレス空間に、非連続的に記憶されることがある。すなわち、仮想メモリ22の仮想アドレス空間上に格納されたオーディオデータは、たとえば、図3bに示すように、部分データ1-部分データ5に分割されて、メモリ2の物理アドレス空間に非連続的に記憶される。
次に、仮想メモリ22の仮想アドレス空間上に格納されたオーディオデータが、スピーカ6から音声を出力すべきオーディオデータである出力対象オーディオデータとなったならば、メディアプレイヤ23は、オーディオデータ出力制御処理を行って、当該オーディオデータの音声をスピーカ6から出力する。
または、仮想メモリの仮想アドレス空間上に格納されたオーディオデータが、スピーカ6から音声を出力すべきオーディオデータである出力対象オーディオデータとなったならば、メディアプレイヤ23は、出力対象オーディオデータの出力をオペレーティングシステム21が備えているDAC4のドライバに要求し、要求を受けたDAC4のドライバは、オーディオデータ出力制御処理を行って、当該オーディオデータの音声をスピーカ6から出力する。
図4に、このオーディオデータ出力制御処理の手順を示す。
図示するように、この処理では、出力対象オーディオデータの各部分データの物理アドレスを取得する(ステップ402)。ここで、各仮想アドレスに対応する物理アドレスはオペレーティングシステム21から取得することができ、出力対象オーディオデータの仮想アドレス空間上の領域に対応する、物理アドレス空間上の各領域の物理アドレスより、出力対象オーディオデータの各部分データの物理アドレスを算定することができる。
図示するように、この処理では、出力対象オーディオデータの各部分データの物理アドレスを取得する(ステップ402)。ここで、各仮想アドレスに対応する物理アドレスはオペレーティングシステム21から取得することができ、出力対象オーディオデータの仮想アドレス空間上の領域に対応する、物理アドレス空間上の各領域の物理アドレスより、出力対象オーディオデータの各部分データの物理アドレスを算定することができる。
そして、各部分データを部分データリストに、出力対象オーディオデータ中の並びに従った順に登録する(ステップ404)。すなわち、たとえば、図3bに示すように、部分データ1-部分データ5が、物理アドレス空間に記憶されている場合、部分データ1、部分データ2、部分データ3、部分データ4、部分データ5の順に各部分データを部分データリストに登録する。
そして、部分データリストに登録されている各部分データのデータサイズを算出し(ステップ406)、規定データサイズ未満のデータサイズの部分データが存在するかどうかを調べる(ステップ408)。
ここで、規定サイズは、所定再生時間(たとえば、20ms)分の音を表すサイズとする。
そして、規定データサイズ未満のデータサイズの部分データが存在しなければ、部分データリストに登録された各部分データのDMA転送を制御するDMA転送制御処理を起動し(ステップ410)、処理を終了する。ここで、DMA転送制御処理の内容については後述する。
ここで、規定サイズは、所定再生時間(たとえば、20ms)分の音を表すサイズとする。
そして、規定データサイズ未満のデータサイズの部分データが存在しなければ、部分データリストに登録された各部分データのDMA転送を制御するDMA転送制御処理を起動し(ステップ410)、処理を終了する。ここで、DMA転送制御処理の内容については後述する。
一方、規定データサイズ未満のデータサイズの部分データが存在した場合には(ステップ408)、規定データサイズ未満のデータサイズの部分データのうち部分データリスト中の順番が最も前の部分データである第1の部分データと、第1の部分データの直前または直後に部分データリストに登録されている部分データである第2の部分データとを読み出して、メモリ2の物理アドレス空間の空き領域に、第1の部分データと第2の部分データとが、出力対象オーディオデータ中の並びに従った順に物理アドレス空間中で連続するように書き込む(ステップ412)。
すなわち、たとえば、図3bに示すように、部分データ1-部分データ5が、物理アドレス空間に記憶されており、部分データ3と部分データ4のみが、データサイズが規定データサイズ未満の部分データであった場合、部分データ3が第1の部分データとなり、その直前または直後の部分データである部分データ2または部分データ4が第2の部分データとなる。そして、部分データ4を第2の部分データとしたものとすると、図3cに示すように、部分データ3と部分データ4がメモリ2から読み出され、部分データ3と部分データ4とを当該順序で連結させた部分データ3&4が、メモリ2の物理アドレス空間の空き領域に書き込まれる。
図4に戻り、このようにして、第1の部分データと第2の部分データとを出力対象オーディオデータ中の並びに従った順に物理アドレス空間中で連続するように書き込んだならば(ステップ412)、部分データリスト中の第1の部分データと第2の部分データの登録を、書き込んだ部分データの登録に置き換える(ステップ414)。
すなわち、部分データ1、部分データ2、部分データ3、部分データ4、部分データ5が当該順に部分データリストに登録されている状態において、図3cに示すように、部分データ3と部分データ4とを当該順序で連結させた部分データ3&4をメモリ2の物理アドレス空間の空き領域に書き込んだ場合には、部分データリストの部分データ3、部分データ4の登録を、部分データ3&4に置き換えて、部分データリストを、部分データ1、部分データ2、部分データ3&4、部分データ5が当該順序で登録されたものとする。
そして、ステップ408からの処理に戻る。
以上、オーディオデータ出力制御処理について説明した。
ここで、以上のようなオーディオデータ出力制御処理によれば、ステップ410で、DMA転送制御処理を起動する時点において、部分データリストに登録されている部分データのデータサイズは全て規定データサイズ以上となる。また、部分データリストに登録されている部分データを登録順に並べることにより、出力対象オーディオデータが形成されるものとなる。
以上、オーディオデータ出力制御処理について説明した。
ここで、以上のようなオーディオデータ出力制御処理によれば、ステップ410で、DMA転送制御処理を起動する時点において、部分データリストに登録されている部分データのデータサイズは全て規定データサイズ以上となる。また、部分データリストに登録されている部分データを登録順に並べることにより、出力対象オーディオデータが形成されるものとなる。
次に、オーディオデータ出力制御処理のステップ410で起動するDMA転送制御処理について説明する。
DMA転送制御処理の手順を図5に示す。
図示するように、この処理では、まず、部分データリストの1番目に登録されている部分データのDMA転送要求をDMAC1のDMA0に設定し(ステップ502)、部分データリストの2番目に登録されている部分データのDMA転送要求をDMAC1のDMA1に設定する(ステップ504)。
DMA転送制御処理の手順を図5に示す。
図示するように、この処理では、まず、部分データリストの1番目に登録されている部分データのDMA転送要求をDMAC1のDMA0に設定し(ステップ502)、部分データリストの2番目に登録されている部分データのDMA転送要求をDMAC1のDMA1に設定する(ステップ504)。
ここで、DMA転送要求を設定されたDMAC1のDMAチャネル(DMA0またはDMA1)は、DMA転送要求によって転送を要求された部分データの先頭の所定サイズのデータをDAC4のFIFO41にDMA転送し、以降は、DAC4のFIFO制御部43からデータ要求を受け取る度に、次の所定サイズのデータをDAC4のFIFO41にDMA転送することを繰り返すDMA転送処理を行う。そして、部分データの全てのDAC4のFIFO41へのDMA転送が完了したならば、DMAチャネルは、DMA完了報告割り込みをCPU3に出力する。
ただし、DMAC1はDMA0とDMA1のDMA転送処理を同時に行うことはなく、DMA0とDMA1との二つのDMAチャネルは、DMA転送要求を設定されたときに、他方のDMAチャネルがDMA転送処理を行っているときには、当該他方のDMAチャネルのDMA転送処理の完了を待ってからDMA転送処理を開始する。
一方、DAC4のFIFO制御部43は、FIFO41に格納されたデータを一定のレートで取り出して共にD/A42に与えると共に、上記所定サイズのデータをFIFO41から取り出す度に、データ要求をDMAC1に出力する。D/A42は、与えられたデータをD/A変換し、D/A変換した音声をアンプ5を介してスピーカ6に出力する。
次に、このようにして、部分データリストの1番目と2番目に登録されている部分データのDMA転送要求をDMAC1に設定したならば、部分データリストに最後に登録されている部分データ(図5において、n番目の部分データ)のDMA転送要求をDMAC1のDMAチャネルに設定するまで(ステップ506、512、514)、DMAC1のDMA完了報告割り込みが発生する度に(ステップ508)、DMA転送要求をDMAC1にまだ設定していない部分データのうちの部分データリストの登録順が最も前の部分データ(図5においてi番目の部分データ)のDMA転送要求を、DMA完了報告割り込みが発生したDMAC1のDMAチャネル(DMA0またはDMA1)に設定する処理を繰り返す(ステップ510)。
そして、部分データリストに最後に登録されている部分データ(図5において、n番目の部分データ)のDMA転送要求をDMAC1のDMAチャネルに設定したならば(ステップ512)、DMA転送制御処理を終了する。
以上、DMA転送制御処理について説明した。
さて、ここで、上述したオーディオデータ出力制御処理のステップ408で用いる規定データサイズは、その規程データサイズ以上のデータサイズの部分データであれば、DMA転送制御処理において、j-1番目の部分データのDMA転送完了によって発生するDMA完了報告割り込みに応答して行われるj+1番目の部分データのDMA転送要求の設定が、j番目の部分データのDMA転送中に確実に行えることが保証できるサイズとする。このように規定データサイズを設定することにより、オーディオデータを部分データの境界で途切れることなくDMA転送することができるようになる。
以上、DMA転送制御処理について説明した。
さて、ここで、上述したオーディオデータ出力制御処理のステップ408で用いる規定データサイズは、その規程データサイズ以上のデータサイズの部分データであれば、DMA転送制御処理において、j-1番目の部分データのDMA転送完了によって発生するDMA完了報告割り込みに応答して行われるj+1番目の部分データのDMA転送要求の設定が、j番目の部分データのDMA転送中に確実に行えることが保証できるサイズとする。このように規定データサイズを設定することにより、オーディオデータを部分データの境界で途切れることなくDMA転送することができるようになる。
なお、DMA完了報告割り込みの発生頻度を減らすためなどに、規程データサイズを前記保証できるサイズに比べ大きくしてもよい。
以上、本発明の実施形態について説明した。
以上、本発明の実施形態について説明した。
1…DMAC、2…メモリ、3…CPU、4…DAC、5…アンプ、6…スピーカ、7…インタフェース、8…オーディオソース、21…オペレーティングシステム、22…仮想メモリ、23…メディアプレイヤ、24…アプリケーション、41…FIFO、42…D/A、43…FIFO制御部。
Claims (6)
- メモリと、2つのDMAチャネルを有するDMACを備えたコンピュータによって読み取られ実行されるコンピュータプログラムであって、
前記コンピュータを、
前記DMACを用いて転送するデータが、前記メモリの物理アドレス空間上に非連続に配置された複数の部分データを構成要素として構成されるデータである場合に、当該データの構成要素となっている部分データの全てが所定のデータサイズ以上の部分データとなるように、当該データの構成要素となっている部分データのうちの所定のデータサイズ未満の部分データを含む、前記データを構成する順番が連続する複数の部分データより構成される新たな部分データを、当該新たな部分データのデータサイズが前記所定のデータサイズ以上となり、当該新たな部分データが物理アドレス空間上で連続するように、前記メモリ上に作成し、作成した新たな部分データを構成する各部分データから、作成した新たな部分データに、前記データの構成要素を置き換える部分データ連結手段と、
前記データの構成要素なっている各部分データの、前記2つのDMAチャネルを交互に用いたDMA転送を制御するDMA転送制御手段として機能させることを特徴とするコンピュータプログラム。 - 請求項1記載のコンピュータプログラムであって、
前記各DMAチャネルは、DMA転送要求の設定に応答して当該DMA転送要求で要求されたDMA転送を行うとともに、他のDMAチャネルがDMA転送を行っているときに前記DMA転送要求が設定された場合には、当該他のDMAチャネルのDMA転送の完了を待って当該設定されたDMA転送要求で要求されたDMA転送を行うものであり、
前記DMA転送制御手段は、前記二つのDMAチャネルの一方のDMAチャネルに前記データの1番目の構成要素となっている部分データのDMA転送要求を設定した後に、他方のDMAチャネルに前記データの2番目の構成要素となっている部分データのDMA転送要求を設定し、以降、DMAチャネルのDMA転送が完了する度に、当該のDMA転送が完了したDMAチャネルに、前記データの、前回DMA転送要求を設定した部分データの次の構成要素となっている部分データのDMA転送要求を設定することを特徴とするコンピュータプログラム。 - 請求項1または2記載のコンピュータプログラムであって、
前記データはオーディオデータであり、
前記部分データのDMA転送の転送先は、前記DMAチャネルからオーディオデータのDMA転送を一定の転送レートで受け入れて、アナログ音声に変換して出力する音声出力デバイスであることを特徴とするコンピュータプログラム。 - メモリと、2つのDMAチャネルを有するDMACを備えたデータ処理装置であって、
前記DMACを用いて転送するデータが、前記メモリの物理アドレス空間上に非連続に配置された複数の部分データを構成要素として構成されるデータである場合に、当該データの構成要素となっている部分データの全てが所定のデータサイズ以上の部分データとなるように、当該データの構成要素となっている部分データのうちの所定のデータサイズ未満の部分データを含む、前記データを構成する順番が連続する複数の部分データより構成される新たな部分データを、当該新たな部分データのデータサイズが前記所定のデータサイズ以上となり、当該新たな部分データが物理アドレス空間上で連続するように、前記メモリ上に作成し、作成した新たな部分データを構成する各部分データから、作成した新たな部分データに、前記データの構成要素を置き換える部分データ連結手段と、
前記データの構成要素なっている各部分データの、前記2つのDMAチャネルを交互に用いたDMA転送を制御するDMA転送制御手段とを有することを特徴とするデータ処理装置。 - 請求項4記載のデータ処理装置であって、
前記各DMAチャネルは、DMA転送要求の設定に応答して当該DMA転送要求で要求されたDMA転送を行うとともに、他のDMAチャネルがDMA転送を行っているときに前記DMA転送要求が設定された場合には、当該他のDMAチャネルのDMA転送の完了を待って当該設定されたDMA転送要求で要求されたDMA転送を行うものであり、
前記DMA転送制御手段は、前記二つのDMAチャネルの一方のDMAチャネルに前記データの1番目の構成要素となっている部分データのDMA転送要求を設定した後に、他方のDMAチャネルに前記データの2番目の構成要素となっている部分データのDMA転送要求を設定し、以降、DMAチャネルのDMA転送が完了する度に、当該のDMA転送が完了したDMAチャネルに、前記データの、前回DMA転送要求を設定した部分データの次の構成要素となっている部分データのDMA転送要求を設定することを特徴とするデータ処理装置。 - 請求項4または5記載のデータ処理装置であって、
前記データはオーディオデータであり、
当該データ処理装置は、
前記部分データのDMA転送の転送先は、前記DMAチャネルからオーディオデータのDMA転送を一定の転送レートで受け入れて、アナログ音声に変換して出力する音声出力部を有することを特徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013004685A JP2014137633A (ja) | 2013-01-15 | 2013-01-15 | コンピュータプログラム及びデータ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013004685A JP2014137633A (ja) | 2013-01-15 | 2013-01-15 | コンピュータプログラム及びデータ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014137633A true JP2014137633A (ja) | 2014-07-28 |
Family
ID=51415114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013004685A Pending JP2014137633A (ja) | 2013-01-15 | 2013-01-15 | コンピュータプログラム及びデータ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014137633A (ja) |
-
2013
- 2013-01-15 JP JP2013004685A patent/JP2014137633A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4356765B2 (ja) | 情報処理装置および方法、並びにプログラム | |
US20150006766A1 (en) | Hardware-Assisted DMA Transfer with Dependency | |
JP6240745B2 (ja) | 複数のハイパーバイザを実行するシステムおよび方法 | |
EP3255553A1 (en) | Transmission control method and device for direct memory access | |
WO2014019428A1 (en) | Method and system for allocating fpga resources | |
US9043806B2 (en) | Information processing device and task switching method | |
JP2007207026A (ja) | Dma転送装置 | |
JP2014010759A (ja) | ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム | |
JP5987203B1 (ja) | A/d変換装置、d/a変換装置、及びplc | |
JP4843554B2 (ja) | インターフェイスボード、シミュレータ、同期方法、同期プログラム | |
JP2014137633A (ja) | コンピュータプログラム及びデータ処理装置 | |
JP6419400B1 (ja) | Plc、ネットワークユニット、cpuユニット、及びデータ転送方法 | |
US12019909B2 (en) | IO request pipeline processing device, method and system, and storage medium | |
JP6433645B2 (ja) | アプリケーションを高速に処理する演算処理装置及び方法 | |
JPWO2013062109A1 (ja) | I/oデバイス制御システムおよびi/oデバイス制御方法 | |
JP2007249635A (ja) | データ転送装置及びデータ転送方法 | |
JP2005258509A (ja) | ストレージ装置 | |
US20130067176A1 (en) | Information processing device and program product | |
JP7225904B2 (ja) | ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム | |
JP2011081695A (ja) | データ演算装置の制御回路及びデータ演算装置 | |
JP2015185103A (ja) | 記憶装置、情報処理装置、データアクセス方法、およびプログラム | |
WO2018076647A1 (zh) | 数据处理的方法、装置和片上系统、设备、存储介质 | |
WO2019188174A1 (ja) | 情報処理装置 | |
JP6940283B2 (ja) | Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム | |
JP2007219925A (ja) | バス制御装置、バス制御プログラム及び記録媒体 |