JP2008262315A - Dmaコントローラおよびdma転送方法 - Google Patents

Dmaコントローラおよびdma転送方法 Download PDF

Info

Publication number
JP2008262315A
JP2008262315A JP2007103509A JP2007103509A JP2008262315A JP 2008262315 A JP2008262315 A JP 2008262315A JP 2007103509 A JP2007103509 A JP 2007103509A JP 2007103509 A JP2007103509 A JP 2007103509A JP 2008262315 A JP2008262315 A JP 2008262315A
Authority
JP
Japan
Prior art keywords
peripheral device
register
read
transfer
counter
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.)
Granted
Application number
JP2007103509A
Other languages
English (en)
Other versions
JP5085178B2 (ja
Inventor
Yasushi Nagai
靖 永井
Hiroshi Nakakoshi
洋 中越
Shigeki Taira
重喜 平
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 Technology Corp
Original Assignee
Renesas Technology 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 Technology Corp filed Critical Renesas Technology Corp
Priority to JP2007103509A priority Critical patent/JP5085178B2/ja
Priority to PCT/JP2008/055292 priority patent/WO2008126657A1/ja
Priority to US12/595,381 priority patent/US8176221B2/en
Publication of JP2008262315A publication Critical patent/JP2008262315A/ja
Priority to US13/437,297 priority patent/US8266340B2/en
Priority to US13/603,456 priority patent/US20120331186A1/en
Application granted granted Critical
Publication of JP5085178B2 publication Critical patent/JP5085178B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

【課題】周期的に動作する周辺装置にかかわるDMA転送のリアルタイム制御を低コスト・低消費電力で実現するDMAコントローラを提供する。
【解決手段】時間を計測するためのカウンタ112と、該カウンタ112の値とDMA転送の予定時間を示すカウンタ値とを比較するカウンタ比較器113と、周辺装置107のレジスタをリードして状態を取得する周辺装置リード部114と、前記周辺装置107のレジスタの値とDMA転送の開始条件とを比較する状態比較器115とを有するDMAコントローラ108であって、前記カウンタ比較器113による比較結果の成立をトリガに、指定された順序に従い、前記DMA転送の予定時間を示すカウンタ値の更新と、前記周辺装置107のレジスタのリードと、前記状態比較器115による比較と、前記状態比較器115による比較結果の成立を条件としたDMA転送とを実行する。
【選択図】図1

Description

本発明は、計算機システムにおいてマルチメディアデータを取り扱う周辺装置間のデータ転送を行うDMAコントローラに関し、例えば、映像、音声、それらに関わるメタデータを格納したストレージと映像、音声デコーダ間のデータ転送をCPUに負荷をかけず効率良く高速に行う技術に適用して有効な技術に関するものである。
近年、計算機システムが普及するに従って、音声や動画などマルチメディアデータの処理を効率よく行う技術の必要性が高まってきた。マルチメディア処理は単純なデータ転送の繰り返しであり、かつ高いリアルタイム性、スループットが要求される。このため、マルチメディア処理にはCPUの負荷が大きいプログラムI/O制御方式(PIO制御方式)ではなくダイレクト・メモリ・アクセス方式(DMA方式)が採用される。
CPU、メモリ、入力装置、出力装置およびDMAコントローラを備えた従来の計算機システムにおいて、入力装置とメモリ間、メモリの異なる領域間、メモリと出力装置間のマルチメディアデータの周期的な高速転送を実現する場合、タイマーからCPUへの周期的な割込みにより割込みプログラムを起動し、この割込みプログラムでDMAコントローラの動作を制御していた。
また、タイマーではタイミングを計ることができない場合は、周辺装置がDMA転送を開始できる適切な状態になるまで、CPUにより周辺装置の状態を表すレジスタ値のリードを続けるポーリング方式をとっていた。
また、特開平8−249267号公報(特許文献1)に開示されているDMAコントローラのように、DMAコントローラの制御周期が正確な場合は、DMAコントローラ内蔵のカウンタにより時間を計測し、CPUの介在なしに一定の周期でDMA転送を行い、割込みにかかるCPU負荷を低減する方式がとられてきた。
しかし、周辺装置の動作周期にジッタがある場合は、特許文献1のような方式はとることができず、上記のような割込みやポーリング方式を採用する必要があった。
特開平8−249267号公報
多くのメディア処理に関する周辺装置は、完全に一定の周期で動作させることができない。例えば、ハードディスクなどのディスク記憶装置は、ヘッドを移動するシークやエラー処理のためその応答時間が一定ではない。また、ネットワークも経路やエラーによりスループットは一定ではなくジッタが発生する。映像や音声のデコーダもほぼ一定の周期で動作するが、映像、音声データの圧縮率が一定ではなく、その展開にかかる時間も一定ではないため、一定周期でその処理が完了しない場合がある。この様に、多くの周辺装置はほぼ一定周期で動作するがジッタがあるため、DMA転送を行う前に各周辺装置の状態を確認するためのCPU処理が必要となり、周辺装置による割込みやポーリング方式が採用されてきた。
割込みやポーリング方式では、CPUにより周期的に繰り返される処理を実現していたため、以下のような問題があった。
まず、周期的に起動する割込みやポーリング用のプログラムが必要となるため、プログラムサイズが大きくなりメモリを圧迫してしまう。さらに、周期的にアプリケーションとは異なるプログラムを実行するためにCPUのキャッシュ利用効率低下によるCPU処理性能の低下が発生する。
また、アプリケーションとは異なるプログラムの実行および実行するプログラムの切り替えにかかるCPU負荷が大きくなり、アプリケーションで使用できるCPU資源が減少してしまう。CPUの負荷低減の方法としてはマルチCPU構成をとる方法がある。しかし、この方法はアプリケーションを実行するCPUの効率は向上するが、DMAや周辺装置の制御を行うCPUにおいては同様の問題が発生し、CPU負荷が上がってしまうという問題もある。
さらに、CPUに高いリアルタイム性が要求されるため、システムコストが高くなってしまう。例えば、DMA起動時間の精度を高めるためには、動作プログラムを割込みプログラムやポーリングプログラムに切替える時間およびその実行時間を短縮しなければならない。このためマルチCPU化や、プログラム切替え用のメモリ、レジスタ、その制御回路の増強、CPU動作周波数向上などハードウェアを高性能化することによるハードウェアコストの上昇、およびプログラムの高度な最適化にかかるソフトウェア開発コストの上昇などが考えられる。特に上記のようなハードウェアの高性能化は消費電力の上昇要因ともなり、さらに問題となる。
これらCPU処理のリアルタイム性に関する要求は、周期の異なる複数の周辺装置を取り扱う場合さらに厳しくなる。タイマー割込みで実行する場合、その割込み周期は各周辺装置の割込み周期の最大公約数となり、割込みプログラムの動作回数が激増するため、CPU負荷が増加する。
そこで本発明は、CPUが行っていた割込みプログラムやポーリングプログラムの処理を、小規模な回路の付加により実行可能とし、既存の周辺装置の有効利用、周辺装置の動作周期のジッタへの柔軟な対応、プログラムによるメモリやストレージの使用量削減、CPUのキャッシュ効率の向上ならびに高いリアルタイム性を低コスト・低消費電力で実現するDMAコントローラおよびDMA転送方法を提供することを目的とする。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明によるDMAコントローラは、時間を計測するためのカウンタと、該カウンタの値とDMA転送の予定時間を示すカウンタ値とを比較するカウンタ比較器と、周辺装置のレジスタをリードして周辺装置の状態を取得する周辺装置リード部と、該周辺装置リード部によってリードされた前記レジスタの値とDMA転送の開始条件とを比較する状態比較器とを有するDMAコントローラであって、前記カウンタ比較器による比較結果の成立をトリガに、指定された順序に従い、前記DMA転送の予定時間を示すカウンタ値を次の予定時間を示す値へ更新する処理と、前記周辺装置リード部による前記周辺装置のレジスタのリードと、前記状態比較器による比較と、前記状態比較器による比較結果の成立を条件としたDMA転送とを実行することを特徴とするものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明のDMAコントローラによれば、小規模な回路で切り替え速度の速いメモリバスを有効に利用して、CPUの助けを借りず自立的にDMAコントローラが周期的に既存周辺装置のレジスタやメモリの状態を確認してDMA転送することが可能となる。このため、既存周辺装置に特別な変更を加えるコストをかけることなく、周辺装置の動作周期のジッタに柔軟に対応し、CPU負荷を低減してシステム性能を向上させることができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
本発明の実施の形態は、周期的なDMA転送を行うために時間を計測するためのカウンタまたは割込み信号を利用し、カウンタの値により判定された周期または割込み信号をトリガにDMA転送に関連する周辺装置の状態やCPUでのプログラムの実行状況を取得する周辺装置リード部を有し、当該周辺装置リード部にて取得した周辺装置の状態やCPUでのプログラムの実行状況に応じて自立的なDMA転送を実現する周辺装置状態確認機能付DMAコントローラである。
<実施の形態1>
本発明の実施の形態1である周辺装置状態確認機能付DMAコントローラ(以下「DMAC」と記載する)を、図1、図2を用いて説明する。
図1は、本実施の形態によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。図1において、当該計算機システムは、CPU101、バス102、アービタ103、メモリ104、入力装置105、出力装置106、周辺装置107、DMAC108を有する構成となっている。
CPU101は、バス102を介して、アービタ103、メモリ104、入力装置105、出力装置106、周辺装置107、DMAC108の各装置を管理、制御する。アービタ103は、CPU101や、メモリ104、入力装置105、出力装置106、周辺装置107、DMAC108によるバス102の利用要求を調停する。メモリ104は、CPU101が実行するプログラムやデータを格納する。入力装置105は、当該計算機システムのユーザによる操作や、入力データを受け取る。出力装置106は、当該計算機システムからユーザへの通知情報やデータを送出する。周辺装置107は、CPU101の処理を補助するためのデコーダやチューナ等であり、周辺装置107を複数有する構成も可能である。
本実施の形態によるDMAC108は、バスIF110、レジスタ111、カウンタ112、カウンタ比較器113、周辺装置リード部114、状態比較器115、転送部116の各機能ブロックから構成される。
バスIF110は、CPU101からの指示をバス102を介して受け取り、DMAC108がメモリ104や周辺装置107のレジスタのリード/ライトを行うためのインターフェースを提供する。レジスタ111は、CPU101からの指示内容を格納する。カウンタ112は、レジスタ111の設定内容に従って動作し、DMAC108の動作タイミングを決定するため、一定周期のクロックに従って時間をカウントして計測するカウント手順を実行する。
カウンタ比較器113は、カウンタ112の値を基に、CPU101によってレジスタ111に設定された指示内容に従い、後段の周辺装置リード部114〜転送部116の各機能ブロックが周期動作を実行するタイミングであるかどうかを判定するカウンタ比較手順を実行する。周辺装置リード部114は、カウンタ比較器113の比較の結果、周期動作を実行するタイミングであると判定された場合に、CPU101によって設定されたレジスタ111の指示内容に従って、メモリ104や周辺装置107の状態を検出するためにこれらのレジスタのリードを行う周辺装置リード手順を実行する。
状態比較器115は、周辺装置リード部114がリードしたメモリ104や周辺装置107のレジスタの内容と、CPU101によってレジスタ111に設定されたDMA転送の開始条件とを比較する状態比較手順を実行する。転送部116は、状態比較器115による比較結果を受け、DMA転送開始の条件を満たしていると判定された場合に、CPU101によってレジスタ111に設定された指示内容に従って、メモリ104内、メモリ104と周辺装置107間、周辺装置107間でのデータ転送を行う。
図2は、本実施の形態によるDMAC108における、レジスタ111の有するレジスタの構成を示した図である。CPU101はこれらのレジスタを設定し、本実施の形態によるDMAC108は、その設定内容に従いバスIF110を介して周期的にメモリ104や周辺装置107の状態を確認して、これら装置と同期を取りながらDMA転送を行う。
図2において、動作イネーブルレジスタ201は、DMAC108の動作、非動作の設定を格納するレジスタである。周辺装置リードカウンタイネーブルレジスタ202は、カウンタ112の動作、非動作の設定を格納するレジスタである。
周辺装置リードカウンタ値レジスタ203は、カウンタ112の動作開始からの時間を格納するレジスタである。CPU101によりカウンタ112の初期値を設定し、周辺装置リードカウンタイネーブルレジスタ202を動作状態に設定した後は、CPU101は周辺装置リードカウンタ値レジスタ203をリードすることにより、動作中のカウンタ112の値を取得することができる。
周辺装置リード周期レジスタ204は、周辺装置リード部114がメモリ104や周辺装置107の状態を確認するためのリードを行う周期を格納するレジスタである。周辺装置次回リードカウンタ値レジスタ205は、周辺装置リード部114が次にリードを行うカウンタ値を格納するレジスタである。当該レジスタの値とカウンタ112の値とをカウンタ比較器113によって比較し、一致した時に周辺装置リード部114を動作させて周期的な動作を実現する。
周辺装置リードアドレスレジスタ206は、周辺装置リード部114が状態を確認する対象である、CPU101が実行中のプログラムの状態を示すメモリ104の領域や、周辺装置107のレジスタのアドレスを格納するレジスタである。周辺装置リードアクセスサイズレジスタ207は、周辺装置リード部114が状態を確認する対象である、CPU101が実行中のプログラムの状態を示すメモリ104の領域や周辺装置107のレジスタのアクセスサイズを格納するレジスタである。
比較条件レジスタ208は、CPU101によって設定され、周辺装置リード部114によるメモリ104や周辺装置107のレジスタをリードした結果と、周辺装置リード比較データレジスタ210、周辺装置リードマスクデータレジスタ211の内容とを状態比較器115にて比較する際の条件を格納するレジスタである。前記条件としては、リードした結果について、周辺装置リードマスクデータレジスタ211で指定された位置のビットが1ビット以上High、1ビット以上Low、もしくは周辺装置リード比較データレジスタ210と1ビット以上一致、完全一致、不一致、より大きい、以上、より小さい、以下というような内容を設定することができる。
動作内容レジスタ209は、周辺装置リード部114、状態比較器115および転送部116が、カウンタ比較器113での周期判定の比較結果の成立をトリガに動作する際の動作内容のパターンを格納するレジスタである。動作内容レジスタ209に設定される動作内容のパターンは以下の通りである。
(1)209−1
メモリ104または周辺装置107のリードは行わず、後述の周辺装置リード次周期調整方法レジスタ212の内容に従って周辺装置次回リードカウンタ値レジスタ205の値を更新するカウンタ更新手順を実行する。その後、後述の転送ソースアドレスレジスタ213〜転送サイズレジスタ221の各レジスタに設定された内容に従ってDMA転送を行った後、カウンタ比較器113の次の比較結果の成立待ちとなる。
(2)209−2
後述の周辺装置リード次周期調整方法レジスタ212の内容に従って周辺装置次回リードカウンタ値レジスタ205の値を更新するカウンタ更新手順を実行する。その後、比較条件レジスタ208の比較条件が成立するまでメモリ104または周辺装置107のリードを続ける。比較条件が成立したら、後述の転送ソースアドレスレジスタ213〜転送サイズレジスタ221の各レジスタに設定された内容に従ってDMA転送を行った後、カウンタ比較器113の次の比較結果の成立待ちとなる。
(3)209−3
比較条件レジスタ208の比較条件が成立するまでメモリ104または周辺装置107のリードを続ける。比較条件が成立したら、後述の周辺装置リード次周期調整方法レジスタ212の内容に従って周辺装置次回リードカウンタ値レジスタ205の値を更新するカウンタ更新手順を実行する。その後、後述の転送ソースアドレスレジスタ213〜転送サイズレジスタ221の各レジスタに設定された内容に従ってDMA転送を行った後、カウンタ比較器113の次の比較結果の成立待ちとなる。
(4)209−4
比較条件レジスタ208の比較条件が成立するまでメモリ104または周辺装置107のリードを続ける。比較条件が成立したら、後述の転送ソースアドレスレジスタ213〜転送サイズレジスタ221の各レジスタに設定された内容に従ってDMA転送を行う。その後、後述の周辺装置リード次周期調整方法レジスタ212の内容に従って周辺装置次回リードカウンタ値レジスタ205の値を更新するカウンタ更新手順を実行した後、カウンタ比較器113の次の比較結果の成立待ちとなる。
(5)209−5
後述の周辺装置リード次周期調整方法レジスタ212の内容に従って周辺装置次回リードカウンタ値レジスタ205の値を更新するカウンタ更新手順を実行した後、メモリ104または周辺装置107のリードを行う。比較条件レジスタ208の比較条件が成立していなければ、カウンタ比較器113の次の比較結果の成立待ちとなる。比較条件が成立していれば、後述の転送ソースアドレスレジスタ213〜転送サイズレジスタ221の各レジスタに設定された内容に従ってDMA転送を行った後、カウンタ比較器113の次の比較結果の成立待ちとなる。
(6)209−6
メモリ104または周辺装置107のリードを行い、比較条件レジスタ208の比較条件が成り立っていなければ、後述の周辺装置リード次周期調整方法レジスタ212の内容に従って周辺装置次回リードカウンタ値レジスタ205の値を更新するカウンタ更新手順を実行した後に、カウンタ比較器113の次の比較結果の成立待ちとなる。比較条件が成り立っていれば、後述の転送ソースアドレスレジスタ213〜転送サイズレジスタ221の各レジスタに設定された内容に従ってDMA転送を行った後に、後述の周辺装置リード次周期調整方法レジスタ212の内容に従って周辺装置次回リードカウンタ値レジスタ205の値を更新するカウンタ更新手順を実行し、カウンタ比較器113の次の比較結果の成立待ちとなる。
以上に説明したような動作内容のパターンを複数有することにより、周辺装置107の特性や動作速度などの違いに応じて、転送可能な状態ではなかった場合の対応などを柔軟に設定することが可能となる。
周辺装置リード比較データレジスタ210は、状態比較器115において周辺装置リード部114でリードしたデータと比較する対象となるデータを格納するレジスタである。周辺装置リードマスクデータレジスタ211は、状態比較器115において周辺装置リード部114でリードしたデータと周辺装置リード比較データレジスタ210のデータとを比較する範囲を格納するレジスタである。
周辺装置リード次周期調整方法レジスタ212は、周辺装置リード部114による周辺装置107のリードの次周期を調整する方法のパターンを格納するレジスタである。調整方法のパターンとしては、(1)次周期無し、(2)周辺装置次回リードカウンタ値レジスタ205を、周辺装置リードカウンタ値レジスタ203の値に周辺装置リード周期レジスタ204の値を加えた値に更新する、(3)周辺装置次回リードカウンタ値レジスタ205を、周辺装置次回リードカウンタ値レジスタ205の値に周辺装置リード周期レジスタ204の値を加えた値に更新する、といったパターンを設定することができる。これにより、周辺装置107の特性や動作速度などの違いに応じて、次周期のタイミングの調整方法を柔軟に設定することが可能となる。
転送ソースアドレスレジスタ213〜転送サイズレジスタ221の各レジスタは、転送部116の転送動作を決定するためのレジスタである。
転送ソースアドレスレジスタ213は、転送部116によって転送する、メモリ104または周辺装置107のソースデータが格納されているアドレスを格納するレジスタである。転送デスティネーションアドレスレジスタ214は、転送部116による転送先である、メモリ104または周辺装置107のデータ格納領域のアドレスを格納するレジスタである。転送ソースアクセスサイズレジスタ215は、転送部116がソースデータの格納されているメモリ104または周辺装置107のリードを行うときのアクセスサイズを格納するレジスタである。転送デスティネーションアクセスサイズレジスタ216は、転送部116が転送データの書き込み先であるメモリ104または周辺装置107にライトを行うときのアクセスサイズを格納するレジスタである。
転送ソースループサイズレジスタ217は、転送を繰り返し行う場合のリードする領域のサイズを格納するレジスタである。転送部116は、当該レジスタに格納されたサイズ分の転送を行うと、リードするアドレスを転送ソースアドレスレジスタ213に格納されたアドレスに戻す。これによって転送部116は、転送ソースアドレスレジスタ213を先頭とした転送ソースループサイズレジスタ217に格納されたサイズの領域を繰り返しリードすることができ、小さい領域を使用して大きなデータを転送することが可能となる。
転送デスティネーションループサイズレジスタ218は、転送を繰り返し行う場合のライトする領域のサイズを格納するレジスタである。転送部116は、当該レジスタに格納されたサイズ分の転送を行うと、ライトするアドレスを転送デスティネーションアドレスレジスタ214に格納されたアドレスに戻す。これによって転送部116は、転送デスティネーションアドレスレジスタ214を先頭とした転送デスティネーションループサイズレジスタ218に格納されたサイズの領域を繰り返しライトすることができ、小さい領域を使用して大きなデータを転送することが可能となる。
転送ソースアドレスカウント方向レジスタ219は、転送部116のリードを転送ソースアドレスレジスタ213に格納するアドレスから加算方向に行うか減算方向に行うかの設定を格納するレジスタである。転送デスティネーションアドレスカウント方向レジスタ220は、転送部116のライトを転送デスティネーションアドレスレジスタ214に格納されたアドレスから加算方向に行うか減算方向に行うかの設定を格納するレジスタである。転送サイズレジスタ221は、転送部116が1度のDMA転送で転送するデータ量を格納するレジスタである。
次に、本実施の形態によるDMACの動作の流れを以下に説明する。
まず、CPU101は、アービタ103からバス102の使用権を獲得し、バス102、バスIF110を介してレジスタ111にアクセスして転送ソースアドレスレジスタ213〜転送サイズレジスタ221の各レジスタを設定する。これにより、転送部116がDMA転送を実行する際の転送内容を指示する。
次に、CPU101は、周辺装置リードカウンタ値レジスタ203〜周辺装置リード次周期調整方法レジスタ212の各レジスタの設定を行い、DMAC108の周期的な動作および、メモリ104や周辺装置107の状態確認方法および同期の取り方を指示する。
次に、CPU101は、動作イネーブルレジスタ201および周辺装置リードカウンタイネーブルレジスタ202を動作状態に設定し、カウンタ112のカウント手順を開始させ、DMAC108の動作を開始させる。
レジスタ111からカウンタ112に対し、周辺装置リードカウンタイネーブルレジスタ202の値を通知しており、周辺装置リードカウンタイネーブルレジスタ202が動作状態に設定されたことによりカウンタ112がカウント手順を開始する。
また、レジスタ111からカウンタ比較器113、周辺装置リード部114、状態比較器115、転送部116に対し動作イネーブルレジスタ201の値を通知しており、動作イネーブルレジスタ201が動作状態に設定されたことにより、カウンタ比較器113はカウンタ比較手順を開始し、カウンタ112の値と周辺装置次回リードカウンタ値レジスタ205の値との比較を開始する。周辺装置リード部114はカウンタ比較器113からの比較結果成立の通知待ち状態となり、状態比較器115は周辺装置リード部114からのリード結果通知待ち状態となり、転送部116は状態比較器115からの比較結果通知待ちおよび転送開始指示待ち状態となる。
カウンタ112は、周辺装置リードカウンタイネーブルレジスタ202が動作状態に設定されている限りカウントを続ける。DMAC108の周期動作を一時的に停止するには、周辺装置リードカウンタイネーブルレジスタ202を非動作に設定する。この場合は、カウンタ112がカウント値を格納したまま一時停止するため、一時停止中の時間は計測できなくなる。動作イネーブルレジスタ201を非動作に設定し、カウンタ比較器113、周辺装置リード部114、状態比較器115、転送部116の動作を停止させることでも一時停止することができる。この場合は、周辺装置リードカウンタイネーブルレジスタ202が動作状態であれば、カウンタ112がカウントを続け、時間を計測できる。
カウンタ比較器113でのカウンタ112の値と周辺装置次回リードカウンタ値レジスタ205の値との比較において、両者の値が一致すると、周期判定の比較結果成立を周辺装置リード部114に通知する。
周辺装置リード部114が、カウンタ比較器113からの周期判定の比較結果成立の通知を受け取った後、周辺装置リード部114および状態比較器115は、動作内容レジスタ209の設定内容に従って周期動作を開始する。図3〜図8は、動作内容レジスタ209の設定内容に対応する周辺装置リード部114および状態比較器115での周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。以下に、動作内容レジスタ209の設定内容毎にその内容を説明する。
(1)209−1の場合(図3)
周辺装置リード部114は、リードを行わず、状態比較器115に周辺装置次回リードカウンタ値レジスタ205の更新指示を通知し、カウンタ比較器113からの次の比較結果成立の通知待ち状態に戻る。
状態比較器115は、周辺装置リード部114から周辺装置次回リードカウンタ値レジスタ205の更新指示を受け取ると、周辺装置リード次周期調整方法レジスタ212の内容に従い、周辺装置リードカウンタ値レジスタ203〜周辺装置次回リードカウンタ値レジスタ205の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ205の値を更新し、転送開始条件成立を転送部116に通知する。
(2)209−2の場合(図4)
周辺装置リード部114は、状態比較器115に周辺装置次回リードカウンタ値レジスタ205の更新指示を通知する。次に周辺装置リードアドレスレジスタ206に格納されたアドレスに対し、周辺装置リードアクセスサイズレジスタ207に格納されたアクセスサイズでリードを行い、リードデータを状態比較器115に渡してその比較結果を受け取る。当該比較結果が成立するまでリードを繰り返し、比較結果が成立したら、カウンタ比較器113からの次の比較結果成立の通知待ち状態に戻る。
状態比較器115は、周辺装置リード部114から周辺装置次回リードカウンタ値レジスタ205の更新指示を受け取ると、周辺装置リード次周期調整方法レジスタ212の内容に従い、周辺装置リードカウンタ値レジスタ203〜周辺装置次回リードカウンタ値レジスタ205の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ205の値を更新する。また、周辺装置リード部114からリードデータを受け取ると、比較条件レジスタ208の設定内容および周辺装置リードマスクデータレジスタ211に格納された比較範囲に従って、周辺装置リード比較データレジスタ210の内容とリードデータとを比較して、比較結果を周辺装置リード部114と転送部116に通知する。
(3)209−3の場合(図5)
周辺装置リード部114は、周辺装置リードアドレスレジスタ206に格納されたアドレスに対し、周辺装置リードアクセスサイズレジスタ207に格納されたアクセスサイズでリードを行い、リードデータを状態比較器115に渡してその比較結果を受け取る。当該比較結果が成立するまでリードを繰り返し、比較結果が成立したら、状態比較器115に周辺装置次回リードカウンタ値レジスタ205の更新指示を通知して、カウンタ比較器113からの次の比較結果成立の通知待ち状態に戻る。
状態比較器115は、周辺装置リード部114からリードデータを受け取ると、比較条件レジスタ208の設定内容および周辺装置リードマスクデータレジスタ211に格納された比較範囲に従って、周辺装置リード比較データレジスタ210の内容とリードデータとを比較して、比較結果を周辺装置リード部114に通知する。また、周辺装置次回リードカウンタ値レジスタ205の更新指示を受け取ると、周辺装置リード次周期調整方法レジスタ212の内容に従い、周辺装置リードカウンタ値レジスタ203〜周辺装置次回リードカウンタ値レジスタ205の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ205の値を更新し、転送開始条件成立を転送部116に通知する。
(4)209−4の場合(図6)
周辺装置リード部114は、周辺装置リードアドレスレジスタ206に格納されたアドレスに対し、周辺装置リードアクセスサイズレジスタ207に格納されたアクセスサイズでリードを行い、リードデータを状態比較器115に渡してその比較結果を受け取る。当該比較結果が成立するまでリードを繰り返し、比較結果が成立したら、カウンタ比較器113からの次の比較結果成立の通知待ち状態に戻る。
状態比較器115は、周辺装置リード部114からリードデータを受け取ると比較条件レジスタ208の設定内容及び、周辺装置リードマスクデータレジスタ211に格納された比較範囲に従って、周辺装置リード比較データレジスタ210の内容とリードデータとを比較して、比較結果を周辺装置リード部114と転送部116に通知する。また、転送部116から転送終了通知を受け取ると、周辺装置リード次周期調整方法レジスタ212の内容に従い、周辺装置リードカウンタ値レジスタ203〜周辺装置次回リードカウンタ値レジスタ205の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ205の値を更新する。
(5)209−5の場合(図7)
周辺装置リード部114は、状態比較器115に周辺装置次回リードカウンタ値レジスタ205の更新指示を通知する。次に周辺装置リードアドレスレジスタ206に格納されたアドレスに対し、周辺装置リードアクセスサイズレジスタ207に格納されたアクセスサイズでリードを行い、リードデータを状態比較器115に渡してその比較結果を受け取った後、カウンタ比較器113からの次の比較結果成立の通知待ち状態に戻る。
状態比較器115は、周辺装置リード部114から周辺装置次回リードカウンタ値レジスタ205の更新指示を受け取ると、周辺装置リード次周期調整方法レジスタ212の内容に従い、周辺装置リードカウンタ値レジスタ203〜周辺装置次回リードカウンタ値レジスタ205の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ205の値を更新する。また、周辺装置リード部114からリードデータを受け取ると、比較条件レジスタ208の設定内容及び、周辺装置リードマスクデータレジスタ211に格納された比較範囲に従って、周辺装置リード比較データレジスタ210の内容とリードデータとを比較し、比較結果を周辺装置リード部114と転送部116に通知する。
(6)209−6の場合(図8)
周辺装置リード部114は、周辺装置リードアドレスレジスタ206に格納されたアドレスに対し、周辺装置リードアクセスサイズレジスタ207に格納されたアクセスサイズでリードを行い、リードデータを状態比較器115に渡してその比較結果を受け取る。当該比較結果が成立でなければ、状態比較器115に周辺装置次回リードカウンタ値レジスタ205の更新指示を通知してから、カウンタ比較器113からの次の比較結果成立の通知待ち状態に戻る。比較結果が成立であれば、カウンタ比較器113からの次の比較結果成立の通知待ち状態に戻る。
状態比較器115は、周辺装置リード部114からリードデータを受け取ると、比較条件レジスタ208の設定内容及び、周辺装置リードマスクデータレジスタ211に格納された比較範囲に従って、周辺装置リード比較データレジスタ210の内容とリードデータとを比較し、比較結果を周辺装置リード部114と転送部116に通知する。また、周辺装置リード部114から周辺装置次回リードカウンタ値レジスタ205の更新指示を受け取るか、または転送部116から転送終了通知を受け取ると、周辺装置リード次周期調整方法レジスタ212の内容に従い、周辺装置リードカウンタ値レジスタ203〜周辺装置次回リードカウンタ値レジスタ205の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ205の値を更新する。
以上に説明した動作によって状態比較器115から受けた転送開始条件成立、または比較結果の通知をトリガとして、転送部116はDMA転送の動作を開始する。状態比較器115から比較結果を受け取った場合は、当該比較結果が成立である場合のみDMA転送を行う。
まず、転送ソースアドレスレジスタ213に格納されたアドレスを先頭とし、転送ソースアドレスカウント方向レジスタ219に設定された方向に、転送ソースループサイズレジスタ217または転送サイズレジスタ221に格納されたサイズの領域のデータをリードする。
次に、リードしたデータを、転送デスティネーションアドレスレジスタ214に格納されたアドレスを先頭とし、転送デスティネーションアドレスカウント方向レジスタ220に設定された方向に、転送デスティネーションループサイズレジスタ218または転送サイズレジスタ221に格納されたサイズの領域にライトする。
このとき、リード単位は、転送ソースアクセスサイズレジスタ215に格納されたアクセスサイズであり、アドレスは順次このアクセスサイズ分、転送ソースアドレスカウント方向レジスタ219に設定された方向に更新され、転送ソースループサイズレジスタ217に格納されたサイズ分転送するたびに、転送ソースアドレスレジスタ213に格納されたアドレスに戻る。
また、ライト単位は、転送デスティネーションアクセスサイズレジスタ216に格納されたアクセスサイズであり、アドレスは順次このアクセスサイズ分、転送デスティネーションアドレスカウント方向レジスタ220に設定された方向に更新され、転送デスティネーションループサイズレジスタ218に格納されたサイズ分転送するたびに、転送デスティネーションアドレスレジスタ214に格納されたアドレスに戻る。
この様に、繰り返し同じアドレスにアクセスできるようにすることによって、CPU101が実行するプログラム、周辺装置107の管理する2面バッファやリングバッファなどを対象とした転送も可能となる。
以上に説明した通り、本実施の形態によるDMAC108では、CPU101によって設定されたレジスタ111の内容に従って各機能ブロックが動作することによって、周期的なDMA転送をCPU101が実行するプログラムの進行状況や周辺装置107の動作状況を確認しながら行うことができ、これらと同期を取りながら、その動作周期のジッタに対応することができる。
また、一度DMAC108に周期動作の設定を行うと、DMAC108が自立的に周期動作をすることができるので、CPU101が実行するプログラムとして、メモリ104や周辺装置107の状態を確認してDMA転送のタイミングを調整するための割込みプログラムやポーリングプログラムを用意する必要がない。このため、割込みプログラムやポーリングプログラムをアプリケーションプログラムと同時に共存して動作させるためのプログラムも不要となり、プログラムを格納するためのメモリやストレージの容量を削減することができる。
さらに、CPU101によるアプリケーションプログラム実行中に、割込みプログラムやポーリングプログラムが実行されることがなくなるため、アプリケーションプログラムのキャッシュヒット率が向上し、システム性能の向上を実現できる。同様に、CPU101にて、割込みプログラムやポーリングプログラムを実行するためのコンテキストスイッチが発生しなくなるので、コンテキストスイッチにかかる数十msのオーバヘッドを排除することができ、CPU101の動作効率が向上する。
また、DMAC108がハードウェアにより自立的に周期動作を行うので、時間や周辺装置の状態変化に対する応答時間が、CPU101によって行う場合の数ms〜数十msに対して、バス権獲得にかかる数ns〜数十nsですみ、費用のかかるCPU101の高機能化やマルチCPU化を行わなくても高いリアルタイム性を実現できる。
また、カウンタ112やカウンタ比較器113、状態比較器115などの各部は、CPU101やCPU101の高機能化回路に比べて規模が小さいハードウェアで実装でき、低消費電力、低コスト化が可能となる。また、DMA転送の間隔が周期的に決まり、その間隔をDMAC108自身で自立的に判定しているため、DMA転送を行わない期間は転送部116内のクロックを停止することができ、さらに低消費電力化が可能となる。
<実施の形態2>
本発明の実施の形態2である周辺装置状態確認機能付DMAコントローラ(以下「DMAC」と記載する)を、図9、図10を用いて説明する。
図9は、本実施の形態によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。本実施の形態によるDMAC108は、実施の形態1における図1に示すDMAC108の構成に、さらに周辺装置ライト部117が追加された構成となっている。
周辺装置ライト部117は、DMA転送の開始時または終了後に、CPU101によって設定されたレジスタ111の指示内容に従って、メモリ104や周辺装置107のレジスタに書き込みを行う周辺装置ライト手順を実行する。これにより、本実施の形態によるDMAC108は、CPU101が実行するプログラムや周辺装置107の状態の確認だけではなく、これらの制御も行うことができる。
図10は、本実施の形態によるDMAC108における、レジスタ111の有するレジスタの構成を示した図である。図10において、周辺装置ライト方法レジスタ231〜周辺装置ライトマスクデータレジスタ235の各レジスタは、周辺装置ライト部117の追加に伴って、実施の形態1の図2に示すレジスタ111の構成に追加されたレジスタである。
周辺装置ライトアドレスレジスタ232は、DMAC108によってCPU101の実行プログラムや周辺装置107の制御を行うための、メモリ104や周辺装置107のレジスタのアドレスを格納するレジスタである。
周辺装置ライトアクセスサイズレジスタ233は、前記メモリ104や前記周辺装置107のレジスタのアクセスサイズを格納するレジスタであり、周辺装置ライトデータレジスタ234は、前記メモリ104や前記周辺装置107のレジスタに対してライトするデータを格納するレジスタであり、周辺装置ライトマスクデータレジスタ235は、前記メモリ104や前記周辺装置107のレジスタに対してライトするデータの範囲を指定するレジスタである。
周辺装置ライト方法レジスタ231は、前記メモリ104や前記周辺装置107のレジスタに対してライトする方法のパターンを格納するレジスタである。周辺装置ライト方法レジスタ231に設定されるパターンは以下の通りである。
(1)231−1
転送部116が単位転送を完了した後に、周辺装置ライトアドレスレジスタ232に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ235に格納された範囲に、周辺装置ライトデータレジスタ234に格納されたデータを書き込む。
(2)231−2
転送部116が単位転送を完了した後に、周辺装置ライトアドレスレジスタ232に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ235に格納された範囲で周辺装置ライトデータレジスタ234に格納されたデータとXORした結果を書き込む。
(3)231−3
転送部116が単位転送を完了した後に、周辺装置ライトアドレスレジスタ232に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ235に格納された範囲で周辺装置ライトデータレジスタ234に格納されたデータとORした結果を書き込む。
(4)231−4
転送部116が単位転送を完了した後に、周辺装置ライトアドレスレジスタ232に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ235に格納された範囲で周辺装置ライトデータレジスタ234に格納されたデータとANDした結果を書き込む。
(5)231−5
転送部116が単位転送を開始するときに、周辺装置ライトアドレスレジスタ232に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ235に格納された範囲に、周辺装置ライトデータレジスタ234に格納されたデータを書き込む。
(6)231−6
転送部116が単位転送を開始するときに、周辺装置ライトアドレスレジスタ232に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ235に格納された範囲で周辺装置ライトデータレジスタ234に格納されたデータとXORした結果を書き込む。
(7)231−7
転送部116が単位転送を開始するときに、周辺装置ライトアドレスレジスタ232に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ235に格納された範囲で周辺装置ライトデータレジスタ234に格納されたデータとORした結果を書き込む。
(8)231−8
転送部116が単位転送を開始するときに、周辺装置ライトアドレスレジスタ232に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ235に格納された範囲で周辺装置ライトデータレジスタ234に格納されたデータとANDした結果を書き込む。
以上のパターンの設定により、前記メモリ104や前記周辺装置107のレジスタに対して対象とするビットのデータを維持したり、反転させたり、ON/OFFしたりという指定ができ、これによりCPU101の実行プログラムや周辺装置107に対してDMA転送の状況等を通知したり制御を行ったりすることができる。
次に、周辺装置ライト部117の動作の内容について以下に説明する。
周辺装置ライト部117は、転送部116からの単位転送の完了通知もしくは状態比較器115からの比較結果の通知を受け、周辺装置ライト方法レジスタ231に設定された方法に従って、周辺装置ライトアドレスレジスタ232に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ233に格納されたサイズで、周辺装置ライトデータレジスタ234に格納されたデータを、周辺装置ライトマスクデータレジスタ235に格納された範囲分だけ書き込む。
周辺装置ライト方法レジスタ231に設定された方法毎の書き込み手順は以下の通りである。
(1)231−1の場合
周辺装置ライト部117は、転送部116から単位転送の完了通知が来るのを待ち、単位転送の完了通知を受け取ると、周辺装置ライトアドレスレジスタ232に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ235に格納された範囲を周辺装置ライトデータレジスタ234に格納されたデータに置き換え、周辺装置ライトアドレスレジスタ232に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで書き戻す。
(2)231−2の場合
周辺装置ライト部117は、転送部116から単位転送の完了通知が来るのを待ち、単位転送の完了通知を受け取ると、周辺装置ライトアドレスレジスタ232に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ235に格納された範囲を周辺装置ライトデータレジスタ234に格納されたデータとXORをとった値に置き換え、周辺装置ライトアドレスレジスタ232に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで書き戻す。
(3)231−3の場合
周辺装置ライト部117は、転送部116から単位転送の完了通知が来るのを待ち、単位転送の完了通知を受け取ると、周辺装置ライトアドレスレジスタ232に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ235に格納された範囲を周辺装置ライトデータレジスタ234に格納されたデータとORをとった値に置き換え、周辺装置ライトアドレスレジスタ232に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで書き戻す。
(4)231−4の場合
周辺装置ライト部117は、転送部116から単位転送の完了通知が来るのを待ち、単位転送の完了通知を受け取ると、周辺装置ライトアドレスレジスタ232に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ235に格納された範囲を周辺装置ライトデータレジスタ234に格納されたデータとANDをとった値に置き換え、周辺装置ライトアドレスレジスタ232に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで書き戻す。
(5)231−5の場合
周辺装置ライト部117は、状態比較器115からの比較結果の通知が来るのを待ち、比較結果が成立である通知を受け取ると、周辺装置ライトアドレスレジスタ232に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ235に格納された範囲を周辺装置ライトデータレジスタ234に格納されたデータに置き換え、周辺装置ライトアドレスレジスタ232に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで書き戻す。
(6)231−6の場合
周辺装置ライト部117は、状態比較器115からの比較結果の通知が来るのを待ち、比較結果が成立である通知を受け取ると、周辺装置ライトアドレスレジスタ232に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ235に格納された範囲を周辺装置ライトデータレジスタ234に格納されたデータとXORをとった値に置き換え、周辺装置ライトアドレスレジスタ232に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで書き戻す。
(7)231−7の場合
周辺装置ライト部117は、状態比較器115からの比較結果の通知が来るのを待ち、比較結果が成立である通知を受け取ると、周辺装置ライトアドレスレジスタ232に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ235に格納された範囲を周辺装置ライトデータレジスタ234に格納されたデータとORをとった値に置き換え、周辺装置ライトアドレスレジスタ232に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで書き戻す。
(8)231−8の場合
周辺装置ライト部117は、状態比較器115からの比較結果の通知が来るのを待ち、比較結果が成立である通知を受け取ると、周辺装置ライトアドレスレジスタ232に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ235に格納された範囲を周辺装置ライトデータレジスタ234に格納されたデータとANDをとった値に置き換え、周辺装置ライトアドレスレジスタ232に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ233に格納されたアクセスサイズで書き戻す。
以上に説明した通り、本実施の形態によるDMAC108では、CPU101によって設定されたレジスタ111の内容に従って各機能ブロックが動作することによって、周期的なDMA転送をCPU101が実行するプログラムの進行状況や周辺装置107の動作状況を確認しながら行い、かつこれらに対してDMA転送の状況等を通知したり制御を行ったりすることでさらに柔軟に同期を取りながら、その動作周期のジッタに対応することができる。
<実施の形態3>
本発明の実施の形態3である周辺装置状態確認機能付DMAコントローラ(以下「DMAC」と記載する)を、図11を用いて説明する。本実施の形態によるDMACは、複数の周期、複数の周辺装置間のDMA転送に対応するものである。
本実施の形態によるDMACを搭載した計算機システムの構成は、実施の形態1の図1もしくは実施の形態2の図9の構成と同様である。
図11は、実施の形態2の図9の構成をとった場合のDMAC108における、レジスタ111の有するレジスタの構成を示した図である。本実施の形態によるDMAC108では、第二の周期転送を定義するために、周辺装置リード周期レジスタ304〜転送サイズレジスタ321、および周辺装置ライト方法レジスタ331〜周辺装置ライトマスクデータレジスタ335の各レジスタをレジスタ111に追加している。
第二の周期転送を定義するために追加した前記レジスタの内容は、第一の周期転送を定義する周辺装置リード周期レジスタ204〜転送サイズレジスタ221、および周辺装置ライト方法レジスタ231〜周辺装置ライトマスクデータレジスタ235の各レジスタの内容と同一である。
また、カウンタ比較器113から周辺装置リード部114に渡される比較結果の通知に、第一の周期転送の条件と第二の周期転送の条件のどちらが成立したかを識別する情報を付加して拡張する。これを受けて、周辺装置リード部114は、第一の周期転送を定義するレジスタを参照してリードを行うか、第二の周期転送を定義するレジスタを参照してリードを行うかを決定してメモリ104または周辺装置107をリードし、リードしたデータを状態比較器115に渡す。このとき、第一の周期転送に関するデータであるか、第二の周期転送に関するデータであるかを識別する情報を付加して通知する。
状態比較器115は、付加された識別情報を利用して、比較対象のデータとして第一の周期転送を定義するレジスタを利用するか、第二の周期転送を定義するレジスタを利用するかを決定し、どちらの周期転送を定義するレジスタを利用して比較を行ったかの識別情報を付加して、比較結果を周辺装置リード部114、周辺装置ライト部117、転送部116に通知する。周辺装置ライト部117、転送部116も同様に、付加された識別情報を利用して使用するレジスタを選択して動作する。
以上に説明したように、本実施の形態によるDMAC108によれば、同時に複数の周期、複数の周辺装置間のDMA転送に対応することができる。また、本実施の形態によるDMAC108は、第一と第二の2つの周期転送を定義するレジスタを有する構成であるが、さらに第三以降の周期転送を定義するレジスタを追加することで、同時に対応できる周期転送の数をさらに増やすことも可能である。
<実施の形態4>
本発明の実施の形態4である周辺装置状態確認機能付DMAコントローラ(以下「DMAC」と記載する)を、図12、図13を用いて説明する。本実施の形態によるDMACは、複数の周期、複数の周辺装置間のDMA転送に対応するためにディスクリプタを用いるものである。ディスクリプタは、周期動作を定義する内容を、レジスタではなくメモリ上に保持したものである。
本実施の形態によるDMACと搭載した計算機システムの構成は、実施の形態1の図1もしくは実施の形態2の図9の構成と同様である。
図12は、実施の形態2の図9の構成をとった場合のDMAC108における、レジスタ111の有するレジスタの構成を示した図である。図12において、動作記述アドレスレジスタ241は、前記ディスクリプタを定義することに伴って、実施の形態2の図10に示すレジスタ111の構成に追加されたレジスタである。動作記述アドレスレジスタ241は、後述の図13に示す構成のディスクリプタが格納されたメモリ104のアドレスを格納する。
図13は、本実施の形態によるDMAC108における、ディスクリプタの構成を示した図である。図13において、周辺装置リード周期ディスクリプタ404〜転送サイズディスクリプタ421、および周辺装置ライト方法ディスクリプタ431〜周辺装置ライトマスクデータディスクリプタ435の各ディスクリプタは、それぞれ図12の周辺装置リード周期レジスタ204〜転送サイズレジスタ221、および周辺装置ライト方法レジスタ231〜周辺装置ライトマスクデータレジスタ235の各レジスタと対応する情報を記述するディスクリプタである。当該ディスクリプタに定義されている内容により周期転送を実行しようとする際に、当該ディスクリプタの内容がメモリ104からレジスタ111内の対応する前記各レジスタに読み込まれる。
動作記述終了フラグディスクリプタ441は、メモリ104上に次のディスクリプタがあるかどうかを示すディスクリプタである。
以下に、本実施の形態によるDMAC108における動作の内容を説明する。
CPU101によって動作イネーブルレジスタ201が動作状態に設定されると、レジスタ111はバスIF110を介して、動作記述アドレスレジスタ241に格納されたアドレスに記述されている図13の構成の前記ディスクリプタを、メモリ104から周辺装置リード周期レジスタ204〜転送サイズレジスタ221、および周辺装置ライト方法レジスタ231〜周辺装置ライトマスクデータレジスタ235の各レジスタに読み込む。その後、読み込んだレジスタ111の内容にしたがって、前述の実施の形態1もしくは実施の形態2で説明した内容と同様の動作により周期転送を行う。
当該周期転送の実行が終了すると、動作記述アドレスレジスタ241に格納されているアドレスを、動作記述終了フラグディスクリプタ441が格納されているメモリ104上のアドレスに更新することにより、動作記述終了フラグディスクリプタ441を読み込む。読み込んだデータがディスクリプタの終了を示す値であれば周期転送の動作を終了する。読み込んだデータが次のディスクリプタの存在を示す値であれば、さらに動作記述アドレスレジスタ241を次のディスクリプタが格納されているアドレスに更新し、当該アドレスに格納されているディスクリプタを読み込み、読み込んだ内容によってレジスタ111の内容を更新して、当該ディスクリプタに記述されていた内容に従って周期転送を実行する。
本実施の形態によるDMAC108によれば、複数の周期、複数の周辺装置間のDMA転送に対応する際に、動作内容の定義をDMAC内のハードウェアではなくメモリ104上にディスクリプタという形で保持するため、動作内容の定義の柔軟性・拡張性を高めることができる。
<実施の形態5>
本発明の実施の形態5である周辺装置状態確認機能付DMAコントローラ(以下「DMAC」と記載する)を、図14、図15を用いて説明する。本実施の形態によるDMACでは、トリガ型の割込みによって周期動作を実現する。
図14は、本実施の形態によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。本実施の形態によるDMAC108は、実施の形態1における図1に示すDMAC108の構成において、カウンタ112とカウンタ比較器113の動作による比較結果の代わりに、周辺装置107から送られるトリガ型の割込み信号118を周辺装置リード部114に入力する構成となっている。
図15は、本実施の形態によるDMAC108における、レジスタ111の有するレジスタの構成を示した図である。各レジスタの内容は、前述の実施の形態1における図2の内容と同様なので、ここでの再度の説明は省略する。
周辺装置リード部114は、前述の実施の形態1の図1におけるカウンタ比較器113からの比較結果の代わりに、割込み信号118を受け取り、その後は実施の形態1によるDMAC108と同様の動作をする。
本実施の形態によるDMAC108によれば、周辺装置107の動作周期が安定していてジッタが無視できるような場合に、周辺装置107からの割込み信号118を利用することによりDMAC108で周期をカウントする必要を無くし、より低コスト・低消費電力で、CPUに負荷をかけずに周期的なDMA転送を行うことができる。
<実施の形態6>
本発明の実施の形態6である周辺装置状態確認機能付DMAコントローラ(以下「DMAC」と記載する)を、図16、図17を用いて説明する。本実施の形態によるDMACでは、レベル型の割込みによって周期動作を実現する。
図16は、本実施の形態によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。本実施の形態によるDMAC108は、実施の形態2における図9に示すDMAC108の構成において、カウンタ112とカウンタ比較器113の動作による比較結果の代わりに、周辺装置107から送られるレベル型の割込み信号118を周辺装置リード部114に入力する構成となっている。
図17は、本実施の形態によるDMAC108における、レジスタ111の有するレジスタの構成を示した図である。各レジスタの内容は、前述の実施の形態2における図10の内容と同様なので、ここでの再度の説明は省略する。
周辺装置リード部114は、前述の実施の形態2の図9におけるカウンタ比較器113からの比較結果の代わりに、割込み信号118を受け取り、その後は実施の形態2によるDMAC108と同様の動作をする。
本実施の形態によるDMAC108によれば、前述の実施の形態5と同様に、周辺装置107の動作周期が安定していてジッタが無視できるような場合に、周辺装置107からの割込み信号118を利用することによりDMAC108で周期をカウントする必要を無くし、より低コスト・低消費電力で、CPUに負荷をかけずに周期的なDMA転送を行うことができる。
また、周辺装置107の割込み要因の解除などの制御を周辺装置ライト部117によって行うことが可能になり、より柔軟に周辺装置との同期を取ることが可能となる。
<実施の形態7>
本発明の実施の形態7である周辺装置状態確認機能付DMAコントローラ(以下「DMAC」と記載する)を、図18、図19を用いて説明する。本実施の形態によるDMACでは、複数の周辺装置に対してこれら周辺装置からの割込みによって周期動作を実現する。
図18は、本実施の形態によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。本実施の形態によるDMAC108は、実施の形態2における図9に示すDMAC108の構成において、カウンタ112とカウンタ比較器113の代わりに、複数の周辺装置107から送られる割込み信号118と割込み選択部119とを有する構成となっている。割込み選択部119は、複数の割込み信号118を入力可能とし、割込み信号118が重複した場合は優先順位に基づいてそのうちの1つを選択して周辺装置リード部114に渡す。
図19は、本実施の形態によるDMAC108における、レジスタ111の有するレジスタの構成を示した図である。各レジスタの内容は、前述の実施の形態3における図11の内容と同様なので、ここでの再度の説明は省略する。
周辺装置リード部114は、前述の実施の形態2の図9におけるカウンタ比較器113からの比較結果の代わりに、割込み選択部119から、どの周辺装置107からの割込みであるかを識別する情報を付加した割込み信号118を受け取り、その後は実施の形態3によるDMAC108と同様の動作をする。
本実施の形態によるDMAC108によれば、複数の周辺装置107からの割込み信号118が重複した場合には優先順位に従って1つを選択することで、複数の周辺装置107に対して割込み信号118を利用してDMA転送を行うことが可能となる。
<実施の形態8>
本発明の実施の形態8である周辺装置状態確認機能付DMAコントローラ(以下「DMAC」と記載する)を、図20、図21を用いて説明する。本実施の形態によるDMACでは、複数の割込みの優先順位に基づいて周期転送を実現する際に、周期転送の動作の定義にディスクリプタを用いる。
本実施の形態によるDMACを搭載した計算機システムの構成は、実施の形態7の図18の構成と同様である。
図20は、本実施の形態によるDMAC108における、レジスタ111の有するレジスタの構成を示した図であり、図21は、本実施の形態によるDMAC108における、ディスクリプタの構成を示した図である。
図21の対応割込みディスクリプタ451は、図18における複数の割込み信号118に対して、それぞれの周期転送の動作を定義するディスクリプタを対応させるための識別情報を格納する。その他の各レジスタおよび各ディスクリプタの内容は、それぞれ前述の実施の形態4における図12および図13の内容と同様なので、ここでの再度の説明は省略する。
周辺装置リード部114は、前述の実施の形態2の図9におけるカウンタ比較器113からの比較結果の代わりに、割込み選択部119から、どの周辺装置107からの割込みであるかを識別する情報を付加した割込み信号118を受け取り、当該識別情報に対応する対応割込みディスクリプタ451を有するディスクリプタを特定してレジスタ111に読み込み、その後は実施の形態4によるDMAC108と同様の動作をする。
本実施の形態によるDMAC108によれば、複数の周辺装置107からの割込み信号118を利用してDMA転送を行う場合に、動作内容の定義をDMAC内のハードウェアではなくメモリ104上にディスクリプタという形で保持するため、動作内容の定義の柔軟性・拡張性を高めることができる。
<実施の形態9>
本発明の実施の形態9である周辺装置状態確認機能付DMAコントローラ(以下「DMAC」と記載する)を、図22を用いて説明する。
図22は、本実施の形態によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。本実施の形態によるDMAC108は、実施の形態2における図9に示すDMAC108の構成において、さらに割込み信号118および割込み選択部119と、割込み・周期動作選択部120とを有している。
割込み信号118および割込み選択部119については、前述の実施の形態7の図18の内容と同様なので、ここでの再度の説明は省略する。割込み・周期動作選択部120は、カウンタ比較器113からの比較結果と、割込み選択部119からの割込み信号とを入力として、いずれかを選択して周辺装置リード部114に渡すものである。
本実施の形態によるDMAC108によれば、カウンタ112を用いた時間計測による周期動作と、割込みによる周期動作とを混在して利用することができ、既存周辺装置を有効に利用することが可能となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、計算機システムにおいてマルチメディアデータを取り扱う周辺装置間のデータ転送を取り扱うDMAコントローラに利用可能である。さらには、DMAコントローラだけではなく、例えば、HDD、SDメモリ、SDIO、MMC、ネットワークIF、チューナ、デコーダ、映像出力装置などの周辺装置自体が高速化の結果としてバスマスタの機能を持ち、周辺装置間のデータ転送を行うようになった際にはこれらの周辺装置にも利用可能である。
本発明の実施の形態1によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。 本発明の実施の形態1によるDMACにおけるレジスタの構成を示した図である。 本発明の実施の形態1によるDMACにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。 本発明の実施の形態1によるDMACにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。 本発明の実施の形態1によるDMACにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。 本発明の実施の形態1によるDMACにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。 本発明の実施の形態1によるDMACにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。 本発明の実施の形態1によるDMACにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。 本発明の実施の形態2によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。 本発明の実施の形態2におけるレジスタの構成を示した図である。 本発明の実施の形態3におけるレジスタの構成を示した図である。 本発明の実施の形態4におけるレジスタの構成を示した図である。 本発明の実施の形態4におけるディスクリプタの構成を示した図である。 本発明の実施の形態5によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。 本発明の実施の形態5におけるレジスタの構成を示した図である。 本発明の実施の形態6によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。 本発明の実施の形態6におけるレジスタの構成を示した図である。 本発明の実施の形態7によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。 本発明の実施の形態7におけるレジスタの構成を示した図である。 本発明の実施の形態8におけるレジスタの構成を示した図である。 本発明の実施の形態8におけるディスクリプタの構成を示した図である。 本発明の実施の形態9によるDMACを搭載した計算機システムの構成を示す機能ブロック図である。
符号の説明
101…CPU、102…バス、103…アービタ、104…メモリ、105…入力装置、106…出力装置、107…周辺装置、108…周辺装置状態確認機能付DMAコントローラ、110…バスIF、111…レジスタ、112…カウンタ、113…カウンタ比較器、114…周辺装置リード部、115…状態比較器、116…転送部、117…周辺装置ライト部、118…割込み信号、119…割込み選択部、120…割込み・周期動作選択部、
201…動作イネーブルレジスタ、202…周辺装置リードカウンタイネーブルレジスタ、203…周辺装置リードカウンタ値レジスタ、204…周辺装置リード周期レジスタ、205…周辺装置次回リードカウンタ値レジスタ、206…周辺装置リードアドレスレジスタ、207…周辺装置リードアクセスサイズレジスタ、208…比較条件レジスタ、209…動作内容レジスタ、210…周辺装置リード比較データレジスタ、211…周辺装置リードマスクデータレジスタ、212…周辺装置リード次周期調整方法レジスタ、213…転送ソースアドレスレジスタ、214…転送デスティネーションアドレスレジスタ、215…転送ソースアクセスサイズレジスタ、216…転送デスティネーションアクセスサイズレジスタ、217…転送ソースループサイズレジスタ、218…転送デスティネーションループサイズレジスタ、219…転送ソースアドレスカウント方向レジスタ、220…転送デスティネーションアドレスカウント方向レジスタ、221…転送サイズレジスタ、
231…周辺装置ライト方法レジスタ、232…周辺装置ライトアドレスレジスタ、233…周辺装置ライトアクセスサイズレジスタ、234…周辺装置ライトデータレジスタ、235…周辺装置ライトマスクデータレジスタ、
241…動作記述アドレスレジスタ、
304…周辺装置リード周期レジスタ、305…周辺装置次回リードカウンタ値レジスタ、306…周辺装置リードアドレスレジスタ、307…周辺装置リードアクセスサイズレジスタ、308…比較条件レジスタ、309…動作内容レジスタ、310…周辺装置リード比較データレジスタ、311…周辺装置リードマスクデータレジスタ、312…周辺装置リード次周期調整方法レジスタ、313…転送ソースアドレスレジスタ、314…転送デスティネーションアドレスレジスタ、315…転送ソースアクセスサイズレジスタ、316…転送デスティネーションアクセスサイズレジスタ、317…転送ソースループサイズレジスタ、318…転送デスティネーションループサイズレジスタ、319…転送ソースアドレスカウント方向レジスタ、320…転送デスティネーションアドレスカウント方向レジスタ、321…転送サイズレジスタ、
331…周辺装置ライト方法レジスタ、332…周辺装置ライトアドレスレジスタ、333…周辺装置ライトアクセスサイズレジスタ、334…周辺装置ライトデータレジスタ、335…周辺装置ライトマスクデータレジスタ、
404…周辺装置リード周期ディスクリプタ、405…周辺装置次回リードカウンタ値ディスクリプタ、406…周辺装置リードアドレスディスクリプタ、407…周辺装置リードアクセスサイズディスクリプタ、408…比較条件ディスクリプタ、409…動作内容ディスクリプタ、410…周辺装置リード比較データディスクリプタ、411…周辺装置リードマスクデータディスクリプタ、412…周辺装置リード次周期調整方法ディスクリプタ、413…転送ソースアドレスディスクリプタ、414…転送デスティネーションアドレスディスクリプタ、415…転送ソースアクセスサイズディスクリプタ、416…転送デスティネーションアクセスサイズディスクリプタ、417…転送ソースループサイズディスクリプタ、418…転送デスティネーションループサイズディスクリプタ、419…転送ソースアドレスカウント方向ディスクリプタ、420…転送デスティネーションアドレスカウント方向ディスクリプタ、421…転送サイズディスクリプタ、
431…周辺装置ライト方法ディスクリプタ、432…周辺装置ライトアドレスディスクリプタ、433…周辺装置ライトアクセスサイズディスクリプタ、434…周辺装置ライトデータディスクリプタ、435…周辺装置ライトマスクデータディスクリプタ、
441…動作記述終了フラグディスクリプタ、
451…対応割込みディスクリプタ。

Claims (8)

  1. 時間を計測するためのカウンタと、該カウンタの値とDMA転送の予定時間を示すカウンタ値とを比較するカウンタ比較器と、周辺装置のレジスタをリードして周辺装置の状態を取得する周辺装置リード部と、該周辺装置リード部によってリードされた前記レジスタの値とDMA転送の開始条件とを比較する状態比較器とを有するDMAコントローラであって、
    前記カウンタ比較器による比較結果の成立をトリガに、指定された順序に従い、前記DMA転送の予定時間を示すカウンタ値を次の予定時間を示す値へ更新する処理と、前記周辺装置リード部による前記周辺装置のレジスタのリードと、前記状態比較器による比較と、前記状態比較器による比較結果の成立を条件としたDMA転送とを実行することを特徴とするDMAコントローラ。
  2. 周辺装置のレジスタをリードして周辺装置の状態を取得する周辺装置リード部と、該周辺装置リード部によってリードされた前記レジスタの値とDMA転送の開始条件とを比較する状態比較器とを有するDMAコントローラであって、
    前記周辺装置からの割込み信号をトリガに、前記周辺装置リード部による前記周辺装置のレジスタのリードと、前記状態比較器による比較と、前記状態比較器による比較結果の成立を条件としたDMA転送とを実行することを特徴とするDMAコントローラ。
  3. 請求項1または2記載のDMAコントローラにおいて、
    前記周辺装置リード部は、前記状態比較器による比較結果が成立するまで、前記周辺装置のレジスタのリードを繰り返すことを特徴とするDMAコントローラ。
  4. 請求項1〜3のいずれか1項記載のDMAコントローラにおいて、
    前記周辺装置のレジスタに対して指定された条件に従ってライトする周辺装置ライト部を有し、DMA転送の開始時または終了後に、前記周辺装置ライト部により前記周辺装置のレジスタをライトすることによって、前記周辺装置の制御もしくは前記周辺装置への情報の通知を行うことを特徴とするDMAコントローラ。
  5. DMAコントローラにおいて、時間を計測するカウント手順と、前記計測された時間とDMA転送の予定時間とを比較するカウンタ比較手順と、周辺装置のレジスタをリードして周辺装置の状態を取得する周辺装置リード手順と、前記周辺装置リード手順によってリードされた前記レジスタの値とDMA転送の開始条件とを比較する状態比較手順とを実行するDMA転送方法であって、
    前記カウンタ比較手順による比較結果の成立をトリガに、指定された順序に従い、前記DMA転送の予定時間を次の予定時間へ更新するカウンタ更新手順と、前記周辺装置リード手順と、前記状態比較手順と、前記状態比較手順による比較結果の成立を条件としたDMA転送とを実行することを特徴とするDMA転送方法。
  6. DMAコントローラにおいて、周辺装置のレジスタをリードして周辺装置の状態を取得する周辺装置リード手順と、前記周辺装置リード手順によってリードされた前記レジスタの値とDMA転送の開始条件とを比較する状態比較手順とを実行するDMA転送方法であって、
    前記周辺装置からの割込み信号をトリガに、前記周辺装置リード手順と、前記状態比較手順と、前記状態比較手順による比較結果の成立を条件としたDMA転送とを実行することを特徴とするDMA転送方法。
  7. 請求項5または6記載のDMA転送方法において、
    前記周辺装置リード手順では、前記状態比較手順による比較結果が成立するまで、前記周辺装置のレジスタのリードを繰り返すことを特徴とするDMA転送方法。
  8. 請求項5〜7のいずれか1項記載のDMA転送方法において、
    DMA転送の開始時または終了後に、前記周辺装置のレジスタに対して指定された条件に従ってライトする周辺装置ライト手順を実行することによって、前記周辺装置の制御もしくは前記周辺装置への情報の通知を行うことを特徴とするDMA転送方法。
JP2007103509A 2007-04-11 2007-04-11 Dmaコントローラおよびdma転送方法 Expired - Fee Related JP5085178B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007103509A JP5085178B2 (ja) 2007-04-11 2007-04-11 Dmaコントローラおよびdma転送方法
PCT/JP2008/055292 WO2008126657A1 (ja) 2007-04-11 2008-03-21 Dmaコントローラ
US12/595,381 US8176221B2 (en) 2007-04-11 2008-03-21 DMA controller
US13/437,297 US8266340B2 (en) 2007-04-11 2012-04-02 DMA controller
US13/603,456 US20120331186A1 (en) 2007-04-11 2012-09-05 Dma controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007103509A JP5085178B2 (ja) 2007-04-11 2007-04-11 Dmaコントローラおよびdma転送方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012195539A Division JP2012234581A (ja) 2012-09-05 2012-09-05 Dmaコントローラ

Publications (2)

Publication Number Publication Date
JP2008262315A true JP2008262315A (ja) 2008-10-30
JP5085178B2 JP5085178B2 (ja) 2012-11-28

Family

ID=39863776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007103509A Expired - Fee Related JP5085178B2 (ja) 2007-04-11 2007-04-11 Dmaコントローラおよびdma転送方法

Country Status (3)

Country Link
US (3) US8176221B2 (ja)
JP (1) JP5085178B2 (ja)
WO (1) WO2008126657A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015273A2 (en) * 2010-07-29 2012-02-02 Samsung Electronics Co., Ltd. Direct memory access device for multi-core system and operating method of the same
JP2013148956A (ja) * 2012-01-17 2013-08-01 Toyota Motor Corp 情報処理装置およびdmaコントローラの動作確認方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5563570B2 (ja) * 2009-06-01 2014-07-30 株式会社テムザック 移乗・移動装置
JP5790043B2 (ja) * 2011-03-14 2015-10-07 株式会社リコー データ転送システム及びデータ転送方法
US8447897B2 (en) * 2011-06-24 2013-05-21 Freescale Semiconductor, Inc. Bandwidth control for a direct memory access unit within a data processing system
TW201339842A (zh) * 2012-03-20 2013-10-01 Copystar Backup & Storage Corp 協同式匯流排仲裁多工架構及依該架構所進行之資料存取仲裁方法
US9128925B2 (en) 2012-04-24 2015-09-08 Freescale Semiconductor, Inc. System and method for direct memory access buffer utilization by setting DMA controller with plurality of arbitration weights associated with different DMA engines
US9053093B1 (en) 2013-08-23 2015-06-09 Altera Corporation Modular direct memory access system
FR3019339B1 (fr) 2014-03-25 2016-04-01 Commissariat Energie Atomique Procede de transfert de donnees entre taches temps reel utilisant un controleur memoire dma
US9684615B1 (en) 2015-01-08 2017-06-20 Altera Corporation Apparatus and methods for multiple-channel direct memory access
US10002089B2 (en) * 2015-11-12 2018-06-19 Nxp Usa, Inc. Interrupt-controlled direct memory access peripheral data transfer
JP2019053600A (ja) * 2017-09-15 2019-04-04 ルネサスエレクトロニクス株式会社 半導体集積回路装置及びデータ比較方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH028919A (ja) * 1988-06-28 1990-01-12 Sharp Corp 定電流装置
JPH0675887A (ja) * 1992-08-26 1994-03-18 Matsushita Electric Works Ltd ポーリング間隔決定方式
JPH1063606A (ja) * 1996-08-20 1998-03-06 Oki Electric Ind Co Ltd Dma転送制御方法
JP2002024166A (ja) * 2000-07-05 2002-01-25 Sharp Corp 画像処理システム並びにそれを用いた半導体装置およびディジタルスチルカメラ装置
WO2002008919A1 (fr) * 2000-07-26 2002-01-31 Fujitsu Limited Dispositif mobile de communication
JP2003141057A (ja) * 2001-11-06 2003-05-16 Mitsubishi Electric Corp Dma転送制御回路
JP2004252533A (ja) * 2003-02-18 2004-09-09 Matsushita Electric Ind Co Ltd Dmaコントロール回路
JP2005056239A (ja) * 2003-08-06 2005-03-03 Seiko Epson Corp 半導体集積回路
JP2006059303A (ja) * 2004-08-24 2006-03-02 Oki Electric Ind Co Ltd コンピュータシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249267A (ja) 1995-03-13 1996-09-27 Matsushita Electric Ind Co Ltd Dmaコントローラ
US6988167B2 (en) * 2001-02-08 2006-01-17 Analog Devices, Inc. Cache system with DMA capabilities and method for operating same
US6898723B2 (en) * 2002-04-01 2005-05-24 Mitac International Corp. Method for verifying clock signal frequency of computer sound interface that involves checking whether count value of counter is within tolerable count range
JP2004227501A (ja) * 2003-01-27 2004-08-12 Yamaha Corp データ転送制御装置および方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH028919A (ja) * 1988-06-28 1990-01-12 Sharp Corp 定電流装置
JPH0675887A (ja) * 1992-08-26 1994-03-18 Matsushita Electric Works Ltd ポーリング間隔決定方式
JPH1063606A (ja) * 1996-08-20 1998-03-06 Oki Electric Ind Co Ltd Dma転送制御方法
JP2002024166A (ja) * 2000-07-05 2002-01-25 Sharp Corp 画像処理システム並びにそれを用いた半導体装置およびディジタルスチルカメラ装置
WO2002008919A1 (fr) * 2000-07-26 2002-01-31 Fujitsu Limited Dispositif mobile de communication
JP2003141057A (ja) * 2001-11-06 2003-05-16 Mitsubishi Electric Corp Dma転送制御回路
JP2004252533A (ja) * 2003-02-18 2004-09-09 Matsushita Electric Ind Co Ltd Dmaコントロール回路
JP2005056239A (ja) * 2003-08-06 2005-03-03 Seiko Epson Corp 半導体集積回路
JP2006059303A (ja) * 2004-08-24 2006-03-02 Oki Electric Ind Co Ltd コンピュータシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015273A2 (en) * 2010-07-29 2012-02-02 Samsung Electronics Co., Ltd. Direct memory access device for multi-core system and operating method of the same
WO2012015273A3 (en) * 2010-07-29 2012-04-19 Samsung Electronics Co., Ltd. Direct memory access device for multi-core system and operating method of the same
CN102640129A (zh) * 2010-07-29 2012-08-15 三星电子株式会社 用于多核系统的直接存储器存取装置以及所述装置的操作方法
US8806082B2 (en) 2010-07-29 2014-08-12 Samsung Electronics Co., Ltd. Direct memory access device for multi-core system and operating method of the same
JP2013148956A (ja) * 2012-01-17 2013-08-01 Toyota Motor Corp 情報処理装置およびdmaコントローラの動作確認方法

Also Published As

Publication number Publication date
US20100257288A1 (en) 2010-10-07
US8266340B2 (en) 2012-09-11
US8176221B2 (en) 2012-05-08
WO2008126657A1 (ja) 2008-10-23
US20120191882A1 (en) 2012-07-26
JP5085178B2 (ja) 2012-11-28
US20120331186A1 (en) 2012-12-27

Similar Documents

Publication Publication Date Title
JP5085178B2 (ja) Dmaコントローラおよびdma転送方法
CN104520932B (zh) 闪存存储器控制器
JP5963282B2 (ja) 割り込み分配スキーム
JP4928100B2 (ja) 改善されたデータ転送のためのコントローラ装置および方法
KR101270848B1 (ko) 트래픽 클래스들과 관련된 포트들을 갖는 다중 포트 메모리 제어기
US8010726B2 (en) Data processing apparatus and method for handling interrupts
JP5578713B2 (ja) 情報処理装置
CN102646446A (zh) 硬件动态高速缓存电源管理
JP2016515262A (ja) 命令処理回路における冗長同期バリアの削除と、関連プロセッサシステム、方法、およびコンピュータ可読媒体
US8190924B2 (en) Computer system, processor device, and method for controlling computer system
JP2006209778A (ja) ダイレクトメモリアクセスの実現方法および装置、ダイレクトメモリアクセスコンピュータシステム
US20070130381A1 (en) Activator, DMA transfer system, DMA transfer method
US11640305B2 (en) Wake-up and timer for scheduling of functions with context hints
JP2007501473A (ja) メインメモリとストレージ装置との間のデータ転送を行うための方法及び装置
JP2012234581A (ja) Dmaコントローラ
JP2007011526A (ja) Hddコントローラ及びそれを搭載したシステム
JP2005165592A (ja) データ転送装置
JP6206524B2 (ja) データ転送装置、データ転送方法、プログラム
JP2010140440A (ja) バス調停装置
KR102254715B1 (ko) 소프트웨어 프로그래밍을 위한 레지스터 방법 및 장치
JP2005301739A (ja) メモリコントローラ及び半導体装置
JP2005063358A (ja) 命令供給制御装置および半導体装置
JP2015215641A (ja) 情報処理装置,エミュレーションプログラム,及びエミュレーション方法
JP2008003786A (ja) 論理シミュレーション方法及びその装置
JP4538054B2 (ja) データ転送装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100119

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120807

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120905

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees