JP2008129944A - Dmaコントローラ及びdmaコントローラの制御方法 - Google Patents

Dmaコントローラ及びdmaコントローラの制御方法 Download PDF

Info

Publication number
JP2008129944A
JP2008129944A JP2006316091A JP2006316091A JP2008129944A JP 2008129944 A JP2008129944 A JP 2008129944A JP 2006316091 A JP2006316091 A JP 2006316091A JP 2006316091 A JP2006316091 A JP 2006316091A JP 2008129944 A JP2008129944 A JP 2008129944A
Authority
JP
Japan
Prior art keywords
command
data
transfer
stored
dma controller
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
Application number
JP2006316091A
Other languages
English (en)
Inventor
Katsuyuki Kimura
村 克 行 木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006316091A priority Critical patent/JP2008129944A/ja
Publication of JP2008129944A publication Critical patent/JP2008129944A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】プログラムの複雑化又はハードウェア(回路)規模の増大という問題を回避し、かつDMA転送の速度を向上させることのできるDMAコントローラ及び該DMAコントローラの制御方法を提供する。
【解決手段】DMAコントローラ102は、所定のコマンドに基づいてデータを処理するデータ処理部へデータ記憶部に記憶されたデータを転送する転送制御手段を備え、前記データ処理部に対するコマンドを記憶するコマンド記憶手段3011eと、前記コマンド記憶手段3011eに記憶されたコマンドの転送先のアドレスを記憶する転送先アドレス記憶手段3011dとを有し、前記転送制御手段は、前記データ記憶部に記憶されたデータを前記データ処理部へ転送する際に、前記転送先アドレス記憶手段3011dに記憶されたアドレスに前記コマンド記憶手段3011eに記憶されたコマンドを転送する。
【選択図】図3

Description

本発明は、DMAコントローラ及びDMAコントローラの制御方法に関し、特に、DMA転送の際にデータ処理部に対するコマンドを転送するDMAコントローラ及び該DMAコントローラの制御方法に関する。
従来、データ記憶部とデータ処理部との間のデータ転送におけるプロセッサの負担を軽減するための技術として直接メモリアクセス制御装置(DMAコントローラ)が知られている。DMAコントローラは、データ記憶部とデータ処理部との間で直接のデータ転送(DMA転送)を制御するハードウェア(回路)である。
特許文献1には、転送速度を向上させた直接メモリアクセス制御装置について開示されている。具体的には、特許文献1の直接メモリアクセス制御装置は、制御レジスタ13、転送アドレスレジスタ14、転送カウントレジスタ15、データレジスタ群16〜18を備え、複数のデータを連続したアドレス空間の領域に転送するものである(段落0013〜0022、図1を参照)。
しかし、プロセッサが転送したデータを処理する場合は、特許文献1の直接メモリアクセス制御装置では、転送の終了を通知するための処理(割込処理)を行う割込プログラムをプロセッサに実装し、終了した転送がどのデータレジスタ群からの転送であるかを判断する必要がある。そのために、データレジスタ群の数に比例して割込プログラムが複雑化するという問題があった。
一方、プログラムが複雑化する問題を回避するために、ディスクリプタテーブルを用いたチェーン方式のDMAコントローラも知られている。このチェーン方式のDMAコントローラは、ディスクリプタテーブルのサイズ分だけ連続して転送を行うものであり、複雑な割込プログラムを必要としないものである。しかし、ディスクリプタテーブルが必要となるので、ハードウェア(回路)規模が増大するという問題があった。
以上のことから、従来のDMAコントローラでは、DMA転送の速度を向上させる代わりに、プログラムの複雑化又はハードウェア(回路)規模の増大という問題が生じていた。
特開平8−287002号公報
本発明の目的は、プログラムの複雑化及びハードウェア(回路)規模の増大という問題を回避し、かつ、DMA転送の速度を向上させることのできるDMAコントローラ及び該DMAコントローラの制御方法を提供することである。
本発明の第1の態様によれば、所定のコマンドに基づいてデータを処理するデータ処理部へデータ記憶部に記憶されたデータを転送する転送制御手段を備えたDMAコントローラであって、前記データ処理部に対するコマンドを記憶するコマンド記憶手段と、前記コマンド記憶手段に記憶されたコマンドの転送先のアドレスを記憶する転送先アドレス記憶手段と、を有し、前記転送制御手段は、前記データ記憶部に記憶されたデータを前記データ処理部へ転送する際に、前記転送先アドレス記憶手段に記憶されたアドレスに前記コマンド記憶手段に記憶されたコマンドを転送するものであることを特徴とするDMAコントローラが提供される。
本発明の第2の態様によれば、所定のコマンドに基づいてデータを処理するデータ処理部へデータ記憶部に記憶されたデータを転送するDMAコントローラの制御方法であって、前記データ処理部に対するコマンドを記憶するコマンド記憶ステップと、前記コマンド記憶ステップにおいて記憶されたコマンドの転送先のアドレスを記憶する転送先アドレス記憶ステップと、前記データ記憶部に記憶されたデータを前記データ処理部へ転送する際に、前記コマンド記憶ステップにおいて記憶されたコマンドを前記転送先アドレス記憶ステップにおいて記憶された転送先アドレスに転送する転送制御ステップと、を含むことを特徴とするDMAコントローラの制御方法が提供される。
本発明によれば、プログラムの複雑化及びハードウェア(回路)規模の増大という問題を回避し、かつ、DMA転送の速度を向上させることができる。
以下に、図面を参照して本発明の実施例について説明する。なお、以下の実施例は、本発明の一形態に過ぎず、本発明の範囲を限定するものではない。
図1は、本発明の実施例に係るデータ処理システムの構成を示すブロック図である。
本発明の実施例に係るデータ処理システムは、マイクロプロセッサ101、DMAコントローラ102、複数のデータ処理部103、データ記憶部104及びメインバス105を含む。
マイクロプロセッサ101は、データの演算、加工、読み出し、書き込み、転送、保持等の機能を実行するために、DMAコントローラ102やデータ処理部103の制御レジスタに所定のコマンドを書き込む。DMAコントローラ102は、データ記憶部104に記憶されたデータ104aをデータ処理部103に転送するDMA転送処理の制御を行う。また、DMAコントローラ102は、データ処理部103へのデータ104aの転送が終了したことを示す終了信号をマイクロプロセッサ101に出力する。データ処理部103は、メインバス105を介して送信されたコマンドに基づいて、所定のブロック単位でデータ処理を行うものである。また、複数のデータ処理部103は並列処理を行うことができる。一般に、特定用途の集積回路(いわゆる「ASIC」)では、コストや性能の観点から、マイクロプロセッサ101と複数のデータ処理部103とで処理を分担することにより、データ処理システムとしての処理効率を向上させることができる。データ記憶部104は、複数のデータ処理部103におけるデータ処理の対象となる複数のデータ104aを記憶する。マイクロプロセッサ101、DMAコントローラ102、複数のデータ処理部103及びデータ記憶部104は、メインバス105を介して互いに接続される。
図2は、本発明の実施例に係るデータ処理部103の構成を示すブロック図である。
本発明の実施例に係るデータ処理部103は、メモリ201、制御レジスタ202、演算ユニット203及びバスインタフェース204を含む。
メモリ201は、記憶部104に記憶されたデータ104aを所定のブロック単位で記憶する。制御レジスタ202は、メインバス105を介して送信された所定のコマンドを記憶する。演算ユニット203は、制御レジスタ202に記憶されたコマンドに基づいて、メモリ201に記憶されたデータに対するデータ処理を行う。メモリ201、制御レジスタ202、演算ユニット203は、バスインタフェース204を介してメインバス105と接続される。
以下、本発明の実施例1について図3〜5を参照して説明する。
図3は、実施例1に係るDMAコントローラ102の構成を示すブロック図である。
実施例1に係るDMAコントローラ102は、複数の転送制御回路301及びバス制御回路302を有する。
複数の転送制御回路301は、それぞれ、制御レジスタ3011、アドレス加算回路3012、転送サイズ減算回路3013及び終了信号出力回路3014を有する。また、複数の転送制御回路301は、それぞれ、データ記憶部104からデータ処理部103へのデータ転送を制御する転送制御手段として機能する。
制御レジスタ3011は、データ転送先アドレス記憶手段3011a、データ転送元アドレス記憶手段3011b、転送サイズ記憶手段3011c、コマンド転送先アドレス記憶手段3011d及びコマンド記憶手段3011eを含む。
データ転送先アドレス記憶手段3011aは、転送の対象となるデータ104aの宛先(データ処理部103のメモリ201のアドレス)を記憶する。データ転送元アドレス記憶手段3011bは、転送の対象となるデータ104aの所在(データ記憶部104のアドレス)を記憶する。転送サイズ記憶手段3011cは、転送の対象となるデータ104aのデータサイズを記憶する。コマンド転送先アドレス記憶手段3011dは、転送の対象となるコマンドの宛先(データ処理部103の制御レジスタ202のアドレス)を記憶する。コマンド記憶手段3011eは、制御レジスタ202に書き込むためのコマンドを記憶する。また、制御レジスタ3011は、マイクロプロセッサ101により書き込まれた起動コマンドを記憶する。DMAコントローラ102は、制御レジスタ3011に記憶された起動コマンドに基づいて動作する。
アドレス加算回路3012は、データ転送先アドレス記憶手段3011a及びデータ転送元アドレス記憶手段3011bに記憶されたアドレスを加算する。転送サイズ減算回路3013は、転送サイズ記憶手段3011cに記憶されたデータサイズを減算する。終了信号出力回路3014は、転送が終了したことを示す終了信号をマイクロプロセッサ101に出力する。
バス制御回路302は、転送制御回路301とメインバス105との間のデータの送受信を制御する。
図4は、実施例1に係るDMAコントローラ制御処理におけるマイクロプロセッサ101の処理手順を示すフローチャートである。DMAコントローラ制御処理は、DMAコントローラ102に後述するDMA転送処理の開始を指示するための処理である。
マイクロプロセッサ101は、データ転送先アドレス記憶手段3011aにデータ104aの宛先を示す転送先アドレス(データ処理部103のメモリ201のアドレス)をセットする(S401)。続いて、データ転送元アドレス記憶手段3011bにデータ104aの所在を示す転送元アドレス(データ記憶部104のアドレス)をセットする(S402)。続いて、転送サイズ記憶手段3011cにデータ104aのデータサイズをセットする(S403)。ここでセットされるデータサイズは、データ処理部103が一度に処理できるデータサイズである。続いて、データ処理部103に対する処理の内容及び処理の起動の命令を示すコマンドの宛先を示すコマンド転送先アドレス(データ処理部103の制御レジスタ202のアドレス)をコマンド転送先アドレス記憶手段3011dにセットする(S404)。続いて、コマンド記憶手段3011eに該コマンドをセットする(S405)。続いて、DMA転送の開始命令を示す起動コマンドをDMAコントローラ102の制御レジスタ3011に書き込む(S406)。
以上の処理手順により、実施例1に係るDMAコントローラ制御処理が完了する。なお、DMAコントローラ制御処理は、複数の転送制御回路301のそれぞれに対して行われる。
図5は、実施例1に係るDMA転送処理におけるDMAコントローラ102の処理手順を示すフローチャートである。DMAコントローラ102は、図4に示されたS406において制御レジスタ3011に書き込まれたDMA転送の開始命令を示す起動コマンドに基づいてDMA転送処理を行う。実施例1に係るDMA転送処理は、データ転送処理(S501)、コマンド転送処理(S502)及び転送終了信号出力処理(S503)から成る。
データ転送処理(S501)では、はじめに、転送サイズ記憶手段3011cの値が0より大きいか否かを判断する(S5011)。
転送サイズ記憶手段3011cの値が0より大きい場合は(S5011−Yes)、データ転送元アドレス記憶手段3011bを参照し、データ転送元アドレスを読み出す(S5012)。続いて、データ転送先アドレス記憶手段3011aを参照し、データ記憶部104のデータ転送元アドレスに記憶されたデータ104aをデータ処理部103のメモリ201のデータ転送先アドレスに書き込む(S5013)。続いて、転送サイズ記憶手段3011cの値を1転送サイズ分減少させる(S5014)。続いて、データ転送元アドレス記憶手段3011bの値を1転送サイズ分増加させる(S5015)。続いて、データ転送先アドレス記憶手段3011aの値を1転送サイズ分増加させる(S5016)。S5012〜S5016の処理は、転送サイズ記憶手段3011cの値が0になる(S5011−No)まで繰り返される。
転送サイズ記憶手段3011cの値が0の場合は(S5011−No)、コマンド転送処理(S502)を行う。コマンド転送処理(S502)では、はじめに、コマンド記憶手段3011eからコマンドを読み出す(S5021)。続いて、コマンド転送先アドレス記憶手段3011dを参照し、データ処理部103の制御レジスタ202のコマンド転先アドレスに該コマンドを転送する(S5022)。
続いて、転送終了信号をマイクロプロセッサ101に出力する(S503)。
以上の処理手順により、実施例1に係るDMA転送処理が完了する。なお、DMA転送処理は、複数の転送制御回路301のそれぞれにより行われる。
実施例1によれば、DMA転送処理において、データ処理部103のレジスタ202にコマンドを書き込むので、マイクロプロセッサ101からデータ処理部103に対するコマンドの出力が不要となる。従って、DMA転送の終了を待って起動コマンドを出力するための割込処理に関するプログラムが不要となり、プログラムの複雑化を回避することができる。また、ディスクリプタテーブルが不要であるので、ハードウェア(回路)規模の増大を回避することができる。また、複数の転送制御回路301を設けるだけで、複数チャネルのDMA転送についても同様の効果を達成することができる。
以下、本発明の実施例2について図6〜8を参照して説明する。実施例1では、DMA転送処理において、データ転送処理(S501)の後にコマンド転送処理(S502)を行う例について説明したが、実施例2では、転送の順番を制御する例について説明する。なお、実施例1と同様の内容については説明を省略する。
図6は、実施例2に係るDMAコントローラ102の構成を示すブロック図である。
実施例2に係るDMAコントローラ102は、制御レジスタ6011内に複数のコマンド転送先アドレス記憶手段6011d、複数のコマンド記憶手段6011e及びシーケンス情報記憶手段6011fを有する点が実施例1のDMAコントローラ102(図3を参照)と異なる。
複数のコマンド転送先アドレス記憶手段6011d及び複数のコマンド記憶手段6011eのそれぞれは、実施例1のコマンド転送先アドレス記憶手段3011d及びコマンド記憶手段3011e(図3を参照)と同様である。シーケンス情報記憶手段6011fは、複数のコマンド記憶手段6011dに記憶されたコマンド及びデータ記憶部104に記憶されたデータ104aの転送の順番を示すシーケンス情報を記憶する。
図7は、実施例2に係るDMAコントローラ制御処理におけるマイクロプロセッサ101の処理手順を示すフローチャートである。
マイクロプロセッサ101は、S401〜405(図4を参照)を行った後、シーケンス情報記憶手段6011fにシーケンス情報をセットする(S701)。続いて、S406(図4を参照)を行う。以上の処理手順により実施例2に係るDMAコントローラ制御処理が完了する。なお、DMAコントローラ制御処理は、複数の転送制御回路601のそれぞれに対して行われる。
図8は、実施例2に係るDMA転送処理におけるDMAコントローラ102の処理手順を示すフローチャートである。
DMAコントローラ102は、シーケンス情報記憶手段6011fからシーケンス情報を読み出す(S801)。続いて、シーケンス情報に基づいてシーケンス転送処理を行う(S802)。
シーケンス転送処理(S802)は、例えば、データ転送処理(S501)の後にコマンド転送処理(S502)を行うシーケンス1、コマンド転送処理(S502)の後にデータ転送処理(S501)を行うシーケンス2、第1のコマンド転送処理(S802−1)の後にデータ転送処理(S501)を行い、最後に第2のコマンド転送処理(S802−2)を行うシーケンス3等がある。なお、第1のコマンド転送処理(S802−1)及び第2のコマンド転送処理(S802−2)は、コマンド転送処理(S502)と同様に行われる。
シーケンス転送処理(S802)の後は、S503(図5を参照)と同様の処理を行う。以上の処理手順により実施例2に係るDMA転送処理が完了する。
実施例2によれば、実施例1の効果に加えて、シーケンス情報を切り替えることによりDMA転送するデータの順番を制御することができるので、様々な仕様のデータ処理部103に対するDMA転送処理を1つのDMAコントローラ102で行うことができる。
本発明の実施例に係るデータ処理システムの構成を示すブロック図である。 本発明の実施例に係るデータ処理部103の構成を示すブロック図である。 実施例1に係るDMAコントローラ102の構成を示すブロック図である。 実施例1に係るDMAコントローラ制御処理におけるマイクロプロセッサ101の処理手順を示すフローチャートである。 実施例1に係るDMA転送処理におけるDMAコントローラ102の処理手順を示すフローチャートである。 実施例2に係るDMAコントローラ102の構成を示すブロック図である。 実施例2に係るDMAコントローラ制御処理におけるマイクロプロセッサ101の処理手順を示すフローチャートである。 実施例2に係るDMA転送処理におけるDMAコントローラ102の処理手順を示すフローチャートである。
符号の説明
101 マイクロプロセッサ
102 DMAコントローラ
103 データ処理部
104 データ記憶部
105 メインバス
301 転送制御回路
3011、6011 制御レジスタ
3011a、6011a データ転送元アドレス記憶手段
3011b、6011b データ転送先アドレス記憶手段
3011c、6011c 転送サイズ記憶手段
3011d、6011d コマンド記憶手段
3011e、6011e コマンド転送先アドレス記憶手段
3012、6012 アドレス加算回路
3013、6013 転送サイズ減算回路
3014、6014 終了信号出力回路
302、602 バス制御回路
6011f シーケンス情報記憶手段

Claims (5)

  1. 所定のコマンドに基づいてデータを処理するデータ処理部へデータ記憶部に記憶されたデータを転送する転送制御手段を備えたDMAコントローラであって、
    前記データ処理部に対するコマンドを記憶するコマンド記憶手段と、
    前記コマンド記憶手段に記憶されたコマンドの転送先のアドレスを記憶する転送先アドレス記憶手段と、を有し、
    前記転送制御手段は、前記データ記憶部に記憶されたデータを前記データ処理部へ転送する際に、前記転送先アドレス記憶手段に記憶されたアドレスに前記コマンド記憶手段に記憶されたコマンドを転送するものであることを特徴とするDMAコントローラ。
  2. 請求項1に記載のDMAコントローラは、さらに、
    前記コマンド記憶手段に記憶されたコマンド及び前記データ記憶部に記憶されたデータの転送の順番を示すシーケンス情報を記憶するシーケンス情報記憶手段を有し、
    前記転送制御手段は、前記シーケンス情報記憶手段に記憶されたシーケンス情報に基づいて前記コマンド及び前記データを転送することを特徴とするDMAコントローラ。
  3. 請求項2に記載のDMAコントローラは、さらに、
    前記コマンド記憶手段及び前記コマンド転送先アドレス記憶手段を複数有し、
    前記転送制御手段は、前記シーケンス情報記憶手段に記憶されたシーケンス情報に基づいて前記複数のコマンド記憶手段に記憶されたコマンド及び前記データを転送することを特徴とするDMAコントローラ。
  4. 所定のコマンドに基づいてデータを処理するデータ処理部へデータ記憶部に記憶されたデータを転送するDMAコントローラの制御方法であって、
    前記データ処理部に対するコマンドを記憶するコマンド記憶ステップと、
    前記コマンド記憶ステップにおいて記憶されたコマンドの転送先のアドレスを記憶する転送先アドレス記憶ステップと、
    前記データ記憶部に記憶されたデータを前記データ処理部へ転送する際に、前記コマンド記憶ステップにおいて記憶されたコマンドを前記転送先アドレス記憶ステップにおいて記憶された転送先アドレスに転送する転送制御ステップと、を含むことを特徴とするDMAコントローラの制御方法。
  5. 請求項4に記載のDMAコントローラの制御方法は、さらに、
    前記コマンド記憶ステップにおいて記憶されたコマンド及び前記記憶部に記憶されたデータの転送の順番を示すシーケンス情報を記憶するシーケンス情報記憶ステップを含み、
    前記転送制御ステップにおいて、前記シーケンス情報記憶ステップにおいて記憶されたシーケンス情報に基づいて前記コマンド及び前記データを転送することを特徴とするDMAコントローラの制御方法。
JP2006316091A 2006-11-22 2006-11-22 Dmaコントローラ及びdmaコントローラの制御方法 Pending JP2008129944A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006316091A JP2008129944A (ja) 2006-11-22 2006-11-22 Dmaコントローラ及びdmaコントローラの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006316091A JP2008129944A (ja) 2006-11-22 2006-11-22 Dmaコントローラ及びdmaコントローラの制御方法

Publications (1)

Publication Number Publication Date
JP2008129944A true JP2008129944A (ja) 2008-06-05

Family

ID=39555679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006316091A Pending JP2008129944A (ja) 2006-11-22 2006-11-22 Dmaコントローラ及びdmaコントローラの制御方法

Country Status (1)

Country Link
JP (1) JP2008129944A (ja)

Similar Documents

Publication Publication Date Title
JP2004171209A (ja) 共有メモリデータ転送装置
JP5287301B2 (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
US8386725B2 (en) USB host controller and controlling method for USB host controller
US20130238881A1 (en) Data transmission device, data transmission method, and computer program product
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
JP2008090455A (ja) マルチプロセッサ信号処理装置
JP2008129944A (ja) Dmaコントローラ及びdmaコントローラの制御方法
JP2005182538A (ja) データ転送装置
JP2005258509A (ja) ストレージ装置
JP2005258719A (ja) データ処理システム及びスレーブデバイス
JP2007206924A (ja) 演算処理システム
JP4229242B2 (ja) ダイレクトメモリアクセスコントローラ
JP2008102599A (ja) プロセッサ
JP2011118744A (ja) 情報処理装置
JPWO2008105494A1 (ja) Dma転送装置及び方法
JP2006338533A (ja) Ecc回路を有するマルチレイヤバスシステム
JP2007087244A (ja) コプロセッサ及びコンピュータシステム
JP2012014436A (ja) ダイレクトメモリアクセス制御装置及び方法
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2005293435A (ja) データ転送装置およびその設定方法
CN118057343A (zh) 数据传输装置和方法
JP2005128753A (ja) データ転送装置、データ転送方法
JP2006309320A (ja) データ転送装置
JP2008310719A (ja) ブロック転送命令実行装置およびブロック転送方法
JP5387155B2 (ja) Dma転送制御装置およびdma転送制御方法