JP2010244164A - Dmaコントローラ、情報処理装置、及びdma管理方法 - Google Patents

Dmaコントローラ、情報処理装置、及びdma管理方法 Download PDF

Info

Publication number
JP2010244164A
JP2010244164A JP2009089875A JP2009089875A JP2010244164A JP 2010244164 A JP2010244164 A JP 2010244164A JP 2009089875 A JP2009089875 A JP 2009089875A JP 2009089875 A JP2009089875 A JP 2009089875A JP 2010244164 A JP2010244164 A JP 2010244164A
Authority
JP
Japan
Prior art keywords
transfer
dma
information
individual
dma transfer
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
Application number
JP2009089875A
Other languages
English (en)
Inventor
Yosuke Sasaki
陽介 佐々木
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009089875A priority Critical patent/JP2010244164A/ja
Priority to US12/732,897 priority patent/US20100257289A1/en
Priority to TW099110116A priority patent/TW201037527A/zh
Publication of JP2010244164A publication Critical patent/JP2010244164A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer

Abstract

【課題】冗長な情報がバスを伝送することでバスの転送効率が低下してしまうこと。
【解決手段】DMAコントローラ5は、個々に実行されるDMA転送間の関連性に応じたDMA転送のグループ化に準じて、個々のDMA転送に対応する個々の個別情報をグループ化して管理する転送情報管理部13と、転送情報管理部13が管理する個別情報に基づいて、DMA転送のグループ単位でDMA転送の完了を示す割込みを生成する割込み発生部14と、を備える。グループ単位でDMA転送の完了をCPUに通知することで、冗長な割込みがバスを伝送することを抑制することができる。
【選択図】図1

Description

本発明は、DMAコントローラ、情報処理装置、及びDMA管理方法に関する。
近年、ストレージデバイスの大容量化の進展に伴い、データ転送速度の高速化が著しい。なお、近年、ストレージデバイスが扱うデータのデータ量は、数十ギガ単位にまで増大している。
シリアル方式でデータ転送を行うシリアルATAでは、3Gbpsの転送規格の普及を背景に6Gbpsの規格化も検討されている。物理的な高速化に加えて、ネイティブ・コマンド・キューイングなどによる高速化も取り組まれている。ネイティブ・コマンド・キューイングでは、一度に複数の転送命令を受けて、これらを最も効率の良い順番に並び替えて転送処理を実行する。このような取り組みによって、ストレージデバイス自体のデータ転送速度は高速化している。
大容量データは、半導体集積回路間を接続するバスに加えて、半導体集積回路内のシステムバスも伝送する。従って、半導体集積回路内のシステムバス上でのデータ転送速度を高速化することも要求されている。
特許文献1には、一回のDMA(Direct Memory Access)転送の起動により複数回のDMA転送を実行し、かつCPUのポーリングによらずに複数回のDMA転送の終了をCPUに通知するDMA転送装置が開示されている。
特開2004−287654号公報
特許文献1の場合、割込みの発生をDMA転送の終了回数で管理している。複数アプリケーションからの転送命令が並列に発生するシステムでは、アプリケーション単位で割込み発生を管理すれば良い。しかしながら、このシステムに特許文献1に記載の技術を適用すると、アプリケーション単位での割込み発生の管理をし得なく、不要な割込みが生成されることで、バストラフィックの増加を招き、システムバスのデータ転送効率が低下してしまう。また、不要な割込みの生成に伴って、割込み制御が冗長化してしまう。
上述の説明から明らかなように、冗長な情報がバスを伝送することでバスの転送効率が低下してしまうことが問題となっている。
本発明に係るDMAコントローラは、個々に実行されるDMA転送間の関連性に応じた前記DMA転送のグループ化に準じて、個々の前記DMA転送に対応する個々の個別情報をグループ化して管理する情報管理部と、前記情報管理部が管理する前記個別情報に基づいて、前記DMA転送のグループ単位でDMA転送の完了を示す信号を生成する信号生成部と、を備える。
グループ単位でDMA転送の完了をCPUに通知することで、冗長な情報がバスを伝送することを抑制することができる。
本発明に係る情報処理装置は、CPUと、メモリと、前記CPU及び前記メモリに対してバスを介して接続されたDMAコントローラと、を備える情報処理装置であって、前記DMAコントローラは、個々に実行されるDMA転送間の関連性に応じた前記DMA転送のグループ化に準じて、個々の前記DMA転送に対応する個々の個別情報をグループ化して管理する情報管理部と、前記情報管理部が管理する前記個別情報に基づいて、前記DMA転送のグループ単位でDMA転送の完了を前記CPUに通知する信号を生成する信号生成部と、を備える。
本発明に係るDMA管理方法は、個々に実行されるDMA転送間の関連性に応じた前記DMA転送のグループ化に準じて、個々の前記DMA転送に対応する個別情報を共通の記憶領域に保持させ、前記記憶領域に保持された前記個別情報に基づいて、前記DMA転送のグループ単位でDMA転送の完了を示す信号を生成する。
本発明によれば、従来よりもバスの転送効率を向上させることができる。
本発明の第1実施形態にかかる情報処理装置の概略的なブロック図である。 本発明の第1実施形態にかかる割込み制御部の概略的なブロック図である。 本発明の第1実施形態にかかる転送情報管理部の概略的なブロック図である。 本発明の第1実施形態にかかる転送命令のグループ化を示す説明図である。 本発明の第1実施形態にかかるDMAコントローラの動作を説明するための概略的なフローチャートである。 本発明の第1実施形態にかかるDMAコントローラの動作を説明するための概略的なフローチャートである。 本発明の第1実施形態にかかる情報処理装置が奏する効果を示す説明図である。
以下、図面を参照して本発明の実施の形態について説明する。なお、各実施の形態は、説明の便宜上、簡略化されている。図面は簡略的なものであるから、図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。図面は、もっぱら技術的事項の説明のためのものであり、図面に示された要素の正確な大きさ等は反映していない。同一の要素には、同一の符号を付し、重複する説明は省略するものとする。機能ブロックを実現する手法は任意であり、それをハードウェアで実現しても良いし、ソフトウェアで実現しても良い。
[第1実施形態]
図1に示すように、情報処理装置100は、CPU(Central Processing Unit)1、ROM(Read Only Memory)2、メモリコントローラ3、RAM(Random Access Memory)4、DMA(Direct Memory Access)コントローラ5、I/O(Input/Output)デバイス6、バス7、バス8、及びバス9を備える。DMAコントローラ5は、起動レジスタ群10、及び割込み制御部11を備える。割込み制御部11は、転送命令モニタ部(情報取得部)12、転送情報管理部(情報管理部)13、割込み発生部(信号生成部)14を備える。なお、DMAコントローラ5は、モノリシックな半導体集積回路(半導体装置)である。
CPU1、ROM2、メモリコントローラ3、及びDMAコントローラ5は、バス7を介して互いに接続されている。メモリコントローラ3は、バス8を介して、RAM4と接続されている。DMAコントローラ5は、バス9を介して、I/0デバイス6と接続されている。
情報処理装置100は、一般的なコンピュータであり、ROM2に格納されたプログラムをCPU1で解釈して実行する。ROM2は、複数のプログラムを格納し、CPU1は、複数のプログラムを実行する。CPU1により個々のプログラムが実行されるに伴って、CPU1からDMAコントローラ5へDMA転送を指示する転送命令が通知される。DMAコントローラ5は、CPU1からの転送命令に応じて、RAM4とI/Oデバイス6間でのDMA転送を実行する。
なお、I/Oデバイス6からRAM4への転送方向をリードと呼び、RAM4からI/Oデバイス6へのデータ転送をライトと呼ぶ(図4参照)。リード方向へDMA転送する際、DMAコントローラ5は、I/Oデバイス6から供給されたデータをメモリコントローラ3を介してRAM4に書き込む。ライト方向へDMA転送する際、DMAコントローラ5は、メモリコントローラ3を介してRAM4からデータを読み出し、これをI/Oデバイス6へ転送する。このようにして、DMAコントローラ5は、CPU1を介在しないデータ転送(すなわち、DMA転送)を実行する。
本実施形態では、後述の説明から明らかなように、DMAコントローラ5は、CPU1から通知される転送命令の連続性に応じて個々の転送命令をアプリケーション単位でグループ化し、このグループ単位で割込みを生成する。これによって、不要な割込み通知が生成されることを回避し、バス7の転送効率を効果的に高めることができる。なお、転送命令の連続性は、DMA転送の連続性と同義である。
CPU1、ROM2、メモリコントローラ3、RAM4、I/Oデバイス6、バス7〜9は、当業者にとっては一般的な技術であるため説明を省略する。
DMAコントローラ5は、上述のように、起動レジスタ群10及び割込み制御部11を有する。起動レジスタ群10は、複数のレジスタを有し、CPU1からDMAコントローラ5に対して通知される転送命令を個々のレジスタにて保持する。具体的には、駆動レジスタ群に含まれる個々のレジスタは、転送命令を定義又は具現化する情報(スタートアドレス、データサイズ、転送方向)を保持する。DMAコントローラ5は、起動レジスタに転送命令が格納されると、この転送命令に応じてDMA転送を実行する。なお、図4に示すように、転送命令は、スタートアドレス、データサイズ、及び転送方向から特定される。
割込み制御部11は、上述のように、転送命令モニタ部12、転送情報管理部13、及び割込み発生部14を有する。転送命令モニタ部12は、CPU1から通知される個々の転送命令を受信し、この転送命令から必要な情報を取得する。転送情報管理部13は、今回受信した転送命令と予め記憶された転送命令間の連続性を判断し、この判断結果に応じて複数の転送命令をグループ化し、この転送命令のグループ化に準じて、個々の転送命令の個別情報を管理する。割込み発生部14は、転送命令のグループ単位でDMA転送の完了をCPU1に通知する割込み信号を生成する。なお、個別情報とは、個々の転送命令に関する情報であり、ここでは、識別値、エンドアドレス、転送方向、転送ステータスが相当する。
以下、割込み制御部11の構成及び動作について、図2乃至図6を参照して説明する。
図2に示すように、転送命令モニタ部12の出力は、転送情報管理部13に接続される。転送情報管理部13の出力は、割込み発生部14に接続されている。割込み発生部14の出力は、転送情報管理部13に接続されている。
図2に示すように、転送命令モニタ部12は、転送設定抽出部21、スタートアドレス算出部22、エンドアドレス算出部23、及び転送方向抽出部24を有する。割込み発生部14は、レジスタ制御部41、及び割込発生制御部42を有する。
図3に示すように、転送情報管理部13は、アドレス比較器31、転送方向比較器32、転送情報格納制御部33、エンドアドレスセレクタ34、転送方向セレクタ35、グループ1情報格納レジスタ(記憶領域)36、グループ2情報格納レジスタ(記憶領域)37、及びグループ3情報格納レジスタ(記憶領域)38を備える。説明の便宜上、グループ1情報格納レジスタ36を、単に情報格納レジスタ36と呼ぶこともある。グループ2情報格納レジスタ37及びグループ3情報格納レジスタ38も同様である。なお、情報格納レジスタの数は任意である。情報格納レジスタ数は、1つ以上であれば良く、DMA転送を伴うアプリケーション数、起動レジスタ群10にセット可能な転送命令数に応じて決定すれば良い。
図2に示すように、転送設定抽出部21の出力は、スタートアドレス算出部22、エンドアドレス算出部23、及び転送方向抽出部24に接続される。図2及び図3に示すように、転送設定抽出部21の出力は、転送情報格納制御部33に接続される。同様に、スタートアドレス算出部22の出力は、アドレス比較器31に接続される。転送方向抽出部24の出力は、転送方向比較器32に接続されると共に、グループ1情報格納レジスタ36〜グループ3情報格納レジスタ38に接続される。エンドアドレス算出部23の出力は、グループ1情報格納レジスタ36〜グループ3情報格納レジスタ38に接続される。
図2及び図3に示すように、情報格納レジスタ36〜38の出力は、レジスタ制御部41及び割込発生制御部42に接続される。レジスタ制御部41の出力は、情報格納レジスタ36〜38に接続される。レジスタ制御部41の出力は、割込発生制御部42に接続される。割込発生制御部42の出力は、レジスタ制御部41に接続される。
図3に示すように、アドレス比較器31の出力は、転送情報格納制御部33に接続される。転送方向比較器32の出力も同様に、転送情報格納制御部33に接続される。転送情報格納制御部33の出力は、情報格納レジスタ36〜38に接続される。転送情報格納制御部33の出力は、エンドアドレスセレクタ34及び転送方向セレクタ35の制御端子に接続される。エンドアドレスセレクタ34には、情報格納レジスタ36〜38の出力が接続される。転送方向セレクタ35には、情報格納レジスタ36〜38の出力が接続される。
図4に模式的に示すように、転送命令は、転送命令の識別値(E1、E2、E3、E4、E5)、スタートアドレス、データサイズ、転送方向を含む。なお、識別値を省略したものを転送命令としても良い。また、スタートアドレス、データサイズ、転送方向は、実際には、これらを示すデジタル値である。説明の便宜上、データサイズを示す値といった冗長な表現は採用しない。
転送命令モニタ部12は、転送命令に基づいて、スタートアドレス、データサイズ、及び転送方向を取得し、これらを転送情報管理部13へ出力する。転送情報管理部13は、図4に模式的に示すように、各転送命令間の関連性に応じて各転送命令をグループ化し、このグループ単位で転送命令の個別情報を管理する。なお、転送情報管理部13は、各グループに割り当てられた3つの情報格納レジスタ36〜38を有し、これらの情報格納レジスタ36〜38に転送命令の個別情報を記憶する。
図4に模式的に示すように、各情報格納レジスタ36、37は、3つの転送命令を格納可能である。また、各情報格納レジスタ36、37は、各転送命令の識別値、エンドアドレス、転送方向、転送ステータスを記憶する。情報格納レジスタ38についても同様の説明が当てはまる。なお、上述と同様、識別値は、説明の便宜上のものとし、その記憶を省略しても良い。
図2に示すレジスタ制御部41は、DMA転送が終了した転送命令を示す信号(sig30)に基づいて、DMA転送が終了した転送命令に関連付けられた転送ステータスを更新する。
本実施形態では、割込発生制御部42は、個々の転送命令が終了した都度に割込みを発生せず、情報格納レジスタ単位でそこに格納された全ての転送命令の転送ステータスが転送済みになったことを検出したタイミングでCPU1への割込みを発生する。これによって、アプリケーション単位でDMA転送の完了をCPU1へ通知することができ、冗長な割込みの生成に応じて不要な情報がバス7を伝送することを回避することができ、バス7の転送効率を向上させることができる。
転送設定抽出部21は、CPU1からバス7を介してDMAコントローラ5に通知される転送命令に含まれる転送設定情報を抽出する。より具体的には、転送設定抽出部21は、図4に示す転送命令から、スタートアドレス、データサイズ、及び転送方向を抽出し、これらを含む転送設定信号(sig12、sig13)を出力する。なお、より具体的には、転送設定抽出部21は、起動レジスタ群10のレジスタの保持値に基づいて、転送命令から必要な情報を抽出する。
スタートアドレス算出部22は、転送設定抽出部21の出力(転送設定信号)に基づいて、スタートアドレスを算出する。スタートアドレス算出部22は、転送設定信号に含まれるスタートアドレスに応じた信号(sig14)を生成して出力する。
エンドアドレス算出部23は、転送設定抽出部21の出力(転送設定信号)に基づいて、エンドアドレスを算出する。エンドアドレス算出部23は、転送設定信号に含まれるスタートアドレス及びデータサイズに基づいてエンドアドレスを算出し、これに応じた信号(sig15)を生成して出力する。
転送方向抽出部24は、転送設定抽出部21の出力(転送設定信号)に基づいて、転送方向を算出する。転送方向抽出部24は、転送設定信号に含まれる転送方向に応じた信号(sig16)を生成して出力する。
図3に示す転送情報格納制御部33は、転送設定信号の入力に応じて、転送命令の連続性を判断するために、順次、情報格納レジスタ36〜38に格納された転送命令のエンドアドレスをアドレス比較器31に供給させ、アドレス比較器31に今回入力した転送命令のスタートアドレスと転送されたエンドアドレスの連続性を判断させる。同様に、転送情報格納制御部33は、順次、情報格納レジスタ36〜38に格納された転送命令の転送方向を転送方向比較器32に供給させ、今回入力した転送命令の転送方向と転送された転送方向間の異同を転送方向比較器32に判断させる。そして、転送情報格納制御部33は、アドレス比較器31と転送方向比較器32の判定結果に応じて、今回の転送命令の個別情報を所望のレジスタに記憶させる。なお、この個別情報には、転送ステータス(未転送)も含まれる。
転送情報格納制御部33は、セレクト信号(sig_sel)によってエンドアドレスセレクタ34及び転送方向セレクタ35の選択状態を制御する。例えば、転送情報格納制御部33は、エンドアドレスセレクタ34が、情報格納レジスタ36、情報格納レジスタ37、情報格納レジスタ38の出力を順次出力するように制御する。転送方向セレクタ35の制御についても同様の説明が当てはまる。
アドレス比較器31は、今回の転送命令のスタートアドレスとエンドアドレスセレクタ34から選択的に出力されたエンドアドレスとを比較し、両者の連続性を判断する。アドレス比較器31は、比較対象とするアドレス間の連続性の有無に応じた判定信号を出力する。
転送方向比較器32は、今回の転送命令に対応する転送方向と転送方向セレクタ35から選択的に出力された転送方向とを比較し、両者の異同を判断する。転送方向比較器32は、比較対象とする転送方向の移動に応じた判定信号を出力する。
エンドアドレスセレクタ34は、セレクト信号に基づいて、情報格納レジスタ36〜情報格納レジスタ38から個別に出力されるエンドアドレスを選択して出力する。
転送方向セレクタ35は、セレクト信号に基づいて、情報格納レジスタ36〜情報格納レジスタ38から個別に出力される転送方向を選択して出力する。
情報格納レジスタ36〜38は、転送情報格納制御部33からの指令に応じて、各転送命令の識別値、エンドアドレス、転送方向、転送ステータス(未転送)を格納する。情報格納レジスタ36〜38の転送命令の格納可能数は、DMA転送を伴うアプリケーション数、アプリケーションで分割されるDMA転送の転送命令数、バス7のバストラフィックに基づいて決定すれば良い。情報格納レジスタの転送命令の格納可能数を1に設定すると、個々のDMA転送の完了ごとに割込みを生成することができる。本実施形態では、情報格納レジスタの転送命令の格納可能数は、2以上の整数に設定されている。なお、識別値は、上述と同様、説明の便宜上のものとし、その記憶を省略しても良い。
レジスタ制御部41は、上述のように、DMA転送が終了した転送命令を特定する信号(sig30)に基づいて、DMA転送が終了した転送命令の転送ステータスを更新する。例えば、レジスタ制御部41は、上述の信号(sig30)に基づいて転送命令E3の終了を検出すると、情報格納レジスタ37に格納された転送命令E3の転送ステータスを未転送から転送済みに変更する。その後、レジスタ制御部41は、割込みの生成の判定を指示する信号(sig27)を割込発生制御部42へ出力する。
割込発生制御部42は、上述の信号(sig27)に応じて、転送ステータスが更新された情報格納レジスタに格納された全ての転送命令の転送ステータスが転送済みになったか否かを判定し、この判定結果に応じてDMA転送が完了したことをCPU1に通知する割込み信号(sig29)を発生する。割込発生制御部42は、割込み信号を生成したことを連絡する連絡信号(sig28)をレジスタ制御部41へ出力する。
以下、図5及び図6を参照して、DMAコントローラ5の動作(特に割込み制御部11の動作)について説明する。
図5に示すように、まず、DMA転送をスタートする。具体的には、CPU1は、DMAコントローラ5にDMA転送を指示する転送命令を通知する。これに応じて、DMAコントローラ5は、転送命令を起動レジスタ群10に含まれるレジスタに登録し、受信した転送命令に基づいてDMA転送を開始する。
次に、信号sig13〜sig16を生成する(S101)。具体的には、次のとおりである。転送設定抽出部21は、CPU1から通知される転送命令(sig11)に基づいて転送設定信号(sig12)を生成して出力する。その後、スタートアドレス算出部22は、転送設定信号に基づいてスタートアドレスを算出し、これに応じた信号(sig14)を出力する。エンドアドレス算出部23は、転送設定信号に基づいてエンドアドレスを算出し、これに応じた信号(sig15)を出力する。転送方向抽出部24は、転送設定信号に基づいて転送方向を抽出し、これに応じた信号(sig16)を出力する。
次に、sig34とsig35を生成する(S102)。具体的には、次のとおりである。転送情報格納制御部33は、セレクト信号を発行し、特定の情報格納レジスタから供給されたエンドアドレスをエンドアドレスセレクタ34に選択的に出力させる。同様に、転送情報格納制御部33は、セレクタ信号を発行し、特定の情報格納レジスタから供給された転送方向を転送方向セレクタ35に選択的に出力させる。
次に、転送命令間に連続性があるか否かを判断する(S103)。具体的には、アドレス比較器31は、今回の転送命令のスタートアドレスとエンドアドレスセレクタ34から出力されたエンドアドレスとを比較し、両者の間に連続性があるのか否かを判定し、これに応じた判定信号を出力する。また、転送方向比較器32は、今回の転送命令の転送方向と転送方向セレクタ35から出力された転送方向間の異同を判定し、これに応じた判定信号を出力する。転送情報格納制御部33は、アドレス比較器31から伝達した判定信号と、転送方向比較器32から伝達した判定信号とに基づいて、今回の転送命令とレジスタから読み出した転送命令間の連続性を判断する。なお、ここでは、3つの情報格納レジスタ36、情報格納レジスタ37、情報格納レジスタ38に対応して、上述の比較処理を繰り返し実行するものとする。また、各情報格納レジスタからは、最下段のデータが出力されるように設定されているものとする。
転送命令間に連続性があることが判明した時点で、今回の転送命令の個別情報を格納すべき情報格納レジスタに空きスペースがあるのか否かを判定する(S104)。具体的には、転送情報格納制御部33は、情報の格納先として検出した情報格納レジスタに格納されている転送命令数がM個未満であるのか否かを判定する。なお、Mは、1以上の自然数であり、情報格納レジスタに格納可能な転送命令の最大数を示す。
情報格納レジスタに空きがある場合には、格納先として検出した情報格納レジスタに個別情報を格納する(S105)。具体的には、転送情報格納制御部33は、格納先として検出した情報格納レジスタに対して、転送命令の識別値、エンドアドレス、及び転送方向をストアさせる。なお、上述と同様、転送命令の識別値を登録するか否かは任意である。
S103で連続性がないと判断した場合、及びS104でレジスタに空きがないと判断した場合、転送命令のグループが割り当てられていない情報格納レジスタに個別情報を格納する(S106)。具体的には、転送情報格納制御部33は、転送命令の新たなグループが割り当てられた情報格納レジスタに対して、転送命令の識別値、エンドアドレス、及び転送方向を格納する。
なお、図4に示す具体例の場合、転送命令E1、E2、E5間にはアドレスの連続性があるため、共通の情報格納レジスタ36に格納される。同様に、転送命令E3、E4間にはアドレスの連続性があるため、共通の情報格納レジスタ37に格納される。なお、いずれの場合も、情報格納レジスタが格納可能な個別情報数を超えていない。
続いて、図6を参照して、DMAコントローラ5(割込み制御部11)の更なる動作について説明する。
はじめに、DMA転送が終了した転送命令を検出する(S201)。具体的には、DMAコントローラ5は、転送命令に基づくDMA転送の終了時、その転送命令を特定する信号(sig30)を生成して、レジスタ制御部41に供給する。なお、信号sig30は、転送命令を特定するために必要な情報(スタートアドレス、データサイズ、及び転送方向)からなる。
次に、グループ情報格納レジスタにセットされている個別情報を取得する(S202)。具体的には、レジスタ制御部41は、情報格納レジスタ36〜38の出力信号を受信し、転送命令を特定するために必要な情報(エンドアドレス、及び転送方向)を取得する。
次に、DMA転送が終了した転送命令に関連付けられた転送ステータスを更新する(S203)。具体的には、レジスタ制御部41は、転送方向及びエンドアドレスの異同に基づいて、DMA転送が終了した転送命令を特定し、これに関連付けられた転送ステータスを未転送から転送済みに更新する。レジスタ制御部41は、転送ステータスの更新の事実を割込発生制御部42に通知する。なお、レジスタ制御部41は、スタートアドレスとデータサイズからエンドアドレスを算出するものとする。
次に、グループ単位でDMA転送が終了したか否かを判定する(S204)。具体的には、レジスタ制御部41からの通知に応じて、割込発生制御部42は、転送ステータスが更新された情報格納レジスタの全ての転送命令が終了しているか否かを転送ステータスの参照に基づいて判定する。
DMA転送が終了しているグループがあるとき割込みを発生する(S205)。具体的には、割込発生制御部42は、転送ステータスが更新された情報格納レジスタに格納されている全ての転送命令夫々に関連付けられた全ての転送ステータスが転送済みとなっていることを検出すると、CPU1にグループ単位でDMA転送が完了したことを通知するために割込みを発生する。割込発生制御部42は、割込みの発生をレジスタ制御部41に対して通知する。
その後、割込みが発生したグループのデータを消去する(S206)。具体的には、割込発生制御部42からの通知に応じて、レジスタ制御部41は、割込みが生成されたグループに対応する情報格納レジスタの情報格納レジスタの保持データを消去する。
上述の説明から明らかなように、本実施形態では、DMAコントローラ5は、CPU1から通知される転送命令の連続性(DMA転送間の連続性)に応じて個々の転送命令(DMA転送)をアプリケーション単位でグループ化し、このグループ単位で割込みを生成する。これによって、不要な割込み通知が生成されることを回避し、バス7の転送効率を効果的に高めることができる。
図7を参照して、本実施形態に係るDMAコントローラ5により実現される効果について説明する。なお、図4に示すように、転送命令はグループ化されているものとする。また、本実施形態は、図7の下段のタイミングチャートに対応し、従来技術は、図7の状態のタイミングチャートに対応する。
DMAコントローラ5は、バス7を介してCPU1から転送命令E1を受信し、これに応じてDMA転送を実行する。転送命令E1のDMA転送に伴ってデータD1がバス7を伝送する。他の転送命令E2〜E5についても同様である。ただし、転送命令E2にデータD2が対応し、転送命令E3にデータD3が対応し、転送命令E4にデータD4が対応し、転送命令E5にデータD5が対応する。
図7から明らかなように、本実施形態では、転送命令のグループ単位で割込み処理(NPと図示されている)を実行する。これによって、バス7を伝送する冗長な割込み信号を低減し、バス7の転送効率が低下することを効果的に抑制している。なお、従来の場合、転送命令のグループ単位ではなく、DMA転送の終了の都度、割込みを生成している。このような冗長な割込みによってバス7のトラフィックが増加し、バス7の転送効率の低下を将来している。
図7の場合、従来発生していた5回の割り込みが本実施形態の場合2回に削減される。転送命令:データ転送:システム処理=1:2:2の割合で見積もった場合、転送全体の時間は10%程度削減され、転送速度は10%程度向上する。
また、本実施形態では、アドレスが連続した一連のDMA転送の終了を即座にCPUに通知することができる。これによって、データ転送の完了を早期にCPUに通知することができ、アプリケーションによる転送データの使用開始タイミングの遅れを効果的に抑制することができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。ソフトウェア、ハードウェアのいずれを採用して実現するのかは任意である。個別情報の種類は任意である。連続性の判断手法は任意である。
1 CPU
2 ROM
3 メモリコントローラ
5 コントローラ
6 デバイス
7 バス
8 バス
9 バス

10 起動レジスタ群
11 制御部
12 転送命令モニタ部
13 転送情報管理部
14 割込み発生部

21 転送設定抽出部
22 スタートアドレス算出部
23 エンドアドレス算出部
24 転送方向抽出部

31 アドレス比較器
32 転送方向比較器
33 転送情報格納制御部
34 エンドアドレスセレクタ
35 転送方向セレクタ
36 グループ1情報格納レジスタ
37 グループ2情報格納レジスタ
38 グループ3情報格納レジスタ

41 レジスタ制御部
42 割込み発生制御部

Claims (11)

  1. 個々に実行されるDMA転送間の関連性に応じた前記DMA転送のグループ化に準じて、個々の前記DMA転送に対応する個々の個別情報をグループ化して管理する情報管理部と、
    前記情報管理部が管理する前記個別情報に基づいて、前記DMA転送のグループ単位でDMA転送の完了を示す信号を生成する信号生成部と、
    を備える、DMAコントローラ。
  2. 前記個別情報は、前記DMA転送の転送状態を示すステータス値を含み、
    前記信号生成部は、前記ステータス値に基づいて、前記DMA転送のグループ単位でDMA転送の完了を検出することを特徴とする請求項1に記載のDMAコントローラ。
  3. 前記信号生成部は、バスを介して伝達されるDMA転送の終了を示す情報に基づいて、前記情報管理部が管理する前記ステータス値を更新させることを特徴とする請求項2に記載のDMAコントローラ。
  4. 前記情報管理部は、比較対象とする前記DMA転送の関連性を一方の開始アドレスと他方の終了アドレス間の連続性に基づいて判断することを特徴とする請求項1乃至3のいずれか一項に記載のDMAコントローラ。
  5. 前記情報管理部は、比較対象とする前記DMA転送の関連性を一方及び他方の転送方向の異同に基づいて判断することを特徴とする請求項1乃至4のいずれか一項に記載のDMAコントローラ。
  6. 前記個別情報は、前記DMA転送の終了アドレスを含むことを特徴とする請求項4に記載のDMAコントローラ。
  7. 前記個別情報は、前記DMA転送の転送方向を示す情報を含むことを特徴とする請求項5に記載のDMAコントローラ。
  8. 前記情報管理部は、前記DMA転送のグループ単位で前記個別情報を記憶する複数の記憶領域を有することを特徴とする請求項1乃至7のいずれか一項に記載のDMAコントローラ。
  9. DMA転送を指示する転送命令に基づいて、当該DMA転送を定義付ける開始アドレス、終了アドレス、及び転送方向を示す情報を取得又は生成して前記情報管理部へ出力する情報取得部を更に備えることを特徴とする請求項1乃至8のいずれか一項に記載のDMAコントローラ。
  10. CPUと、
    メモリと、
    前記CPU及び前記メモリに対してバスを介して接続されたDMAコントローラと、
    を備える情報処理装置であって、
    前記DMAコントローラは、
    個々に実行されるDMA転送間の関連性に応じた前記DMA転送のグループ化に準じて、個々の前記DMA転送に対応する個々の個別情報をグループ化して管理する情報管理部と、
    前記情報管理部が管理する前記個別情報に基づいて、前記DMA転送のグループ単位でDMA転送の完了を前記CPUに通知する信号を生成する信号生成部と、
    を備える、情報処理装置。
  11. 個々に実行されるDMA転送間の関連性に応じた前記DMA転送のグループ化に準じて、個々の前記DMA転送に対応する個別情報を共通の記憶領域に保持させ、前記記憶領域に保持された前記個別情報に基づいて、前記DMA転送のグループ単位でDMA転送の完了を示す信号を生成する、DMA管理方法。
JP2009089875A 2009-04-02 2009-04-02 Dmaコントローラ、情報処理装置、及びdma管理方法 Withdrawn JP2010244164A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009089875A JP2010244164A (ja) 2009-04-02 2009-04-02 Dmaコントローラ、情報処理装置、及びdma管理方法
US12/732,897 US20100257289A1 (en) 2009-04-02 2010-03-26 Dma controller, information processing device and dma management method
TW099110116A TW201037527A (en) 2009-04-02 2010-04-01 DMA controller, information processing device and DMA management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009089875A JP2010244164A (ja) 2009-04-02 2009-04-02 Dmaコントローラ、情報処理装置、及びdma管理方法

Publications (1)

Publication Number Publication Date
JP2010244164A true JP2010244164A (ja) 2010-10-28

Family

ID=42827098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009089875A Withdrawn JP2010244164A (ja) 2009-04-02 2009-04-02 Dmaコントローラ、情報処理装置、及びdma管理方法

Country Status (3)

Country Link
US (1) US20100257289A1 (ja)
JP (1) JP2010244164A (ja)
TW (1) TW201037527A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102866971B (zh) * 2012-08-28 2015-11-25 华为技术有限公司 传输数据的装置、系统及方法
WO2017151588A2 (en) * 2016-02-29 2017-09-08 Renesas Electronics America Inc. A system and method for programming data transfer within a microcontroller
CN109525473B (zh) * 2018-11-28 2021-05-04 深圳市元征科技股份有限公司 一种mcu扩展can方法、系统、mcu及计算机介质
CN111240581B (zh) * 2018-11-29 2023-08-08 北京地平线机器人技术研发有限公司 存储器访问控制方法、装置和电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687316A (en) * 1994-07-29 1997-11-11 International Business Machines Corporation Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data
US5713044A (en) * 1995-12-19 1998-01-27 Intel Corporation System for creating new group of chain descriptors by updating link value of last descriptor of group and rereading link value of the updating descriptor
US7200688B2 (en) * 2003-05-29 2007-04-03 International Business Machines Corporation System and method asynchronous DMA command completion notification by accessing register via attached processing unit to determine progress of DMA command
CN100373362C (zh) * 2005-12-22 2008-03-05 北京中星微电子有限公司 直接存储访问控制器
US20080147905A1 (en) * 2006-12-15 2008-06-19 Infineon Technologies Ag Method and system for generating a DMA controller interrupt
US20090006664A1 (en) * 2007-06-01 2009-01-01 Jagadeesh Sankaran Linked DMA Transfers in Video CODECS

Also Published As

Publication number Publication date
US20100257289A1 (en) 2010-10-07
TW201037527A (en) 2010-10-16

Similar Documents

Publication Publication Date Title
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
KR101410596B1 (ko) 정보 처리 장치, 카피 제어 프로그램 및 카피 제어 방법
JP2008046997A (ja) 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置
CN110399034B (zh) 一种SoC系统的功耗优化方法及终端
US20140006742A1 (en) Storage device and write completion notification method
CN106489132A (zh) 读写数据的方法、装置、存储设备和计算机系统
JP2010244164A (ja) Dmaコントローラ、情報処理装置、及びdma管理方法
JP6614373B1 (ja) 推論処理システム、推論処理装置及びプログラム
JP2011053862A (ja) メモリ管理方法、計算機システム及びプログラム
US20160266808A1 (en) Information processing device, information processing method, and recording medium
EP4073639A1 (en) Gpu packet aggregation system
CN102405466B (zh) 存储控制装置及其控制方法
CN110209548B (zh) 服务控制方法、系统、电子设备及计算机可读存储介质
US10324777B2 (en) Register-based communications interface
US9749577B1 (en) Host video recording by baseboard management controller (BMC)
JP2009059276A (ja) 情報処理装置およびプログラム
JPH04288638A (ja) コンピュータシステム
JP2016076249A (ja) 画像処理装置、その制御方法、及びプログラム
JP6741940B2 (ja) 情報処理装置及びpld管理プログラム
JP2015014962A (ja) 演算装置、演算方法、及びプログラム
JP5333467B2 (ja) データ転送制御装置、データ転送制御方法およびプログラム
WO2015159359A1 (ja) 物理計算機
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
US20150015987A1 (en) Prioritized Spin-Up of Drives
US20200065143A1 (en) Safety shutdown control of virtual machines running on a host apparatus

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20120210