JP2023070309A - データ転送装置およびデータ転送装置の転送方法 - Google Patents

データ転送装置およびデータ転送装置の転送方法 Download PDF

Info

Publication number
JP2023070309A
JP2023070309A JP2021182396A JP2021182396A JP2023070309A JP 2023070309 A JP2023070309 A JP 2023070309A JP 2021182396 A JP2021182396 A JP 2021182396A JP 2021182396 A JP2021182396 A JP 2021182396A JP 2023070309 A JP2023070309 A JP 2023070309A
Authority
JP
Japan
Prior art keywords
transfer
write
data
signal
dmac
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
JP2021182396A
Other languages
English (en)
Inventor
裕司 原
Yuji Hara
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2021182396A priority Critical patent/JP2023070309A/ja
Publication of JP2023070309A publication Critical patent/JP2023070309A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

  • Power Sources (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】データ転送装置の消費電力を低減できるようにする。【解決手段】データ転送装置は、データ転送を行い、転送ステータス待ちであることを通知する第1の転送手段103と、前記第1の転送手段が転送ステータス待ちであることを通知した場合に、前記第1の転送手段を低電力状態に移行させ、前記転送ステータスの受信処理と前記転送ステータスの受信処理に基づく終了処理を代理する代理手段115とを有する。【選択図】図1

Description

本開示は、データ転送装置およびデータ転送装置の転送方法に関する。
半導体集積回路の集積度の向上や処理能力の向上は、消費電力の増大を招き、消費電力の削減対策が必須となっている。近年の半導体集積回路は、データ転送要求を生成するマスタモジュール、データ転送要求に応答するスレーブモジュール、および、データ転送を担うバスシステムを有する。マスタモジュールは、中央演算装置(CPU)と動的メモリアクセスコントローラ(DMAC)を有する。スレーブモジュールは、メモリコントローラとスタティックランダムアクセスメモリ(SRAM)モジュールを有する。また、バスシステムは、インターコネクト、ファブリック、またはオンチップネットワークとも呼ばれる。
近年では、マスタモジュールは、その数が100を超え、且つ数100MHz~数GHzという高周波数で動作させることが要求される。このような要求を満足させるために、バスシステムを細かいバスシステム部品に分割し、このバスシステム部品をカスケード接続する構成を採用することで、多マスタかつ高周波数動作を可能にしている。一方で、このような構成を採ることで、マスタモジュールからスレーブモジュールまでの間のアクセスレイテンシは、大きくなってしまう。
このカスケード化されたバスシステム構成において、マスタモジュールを省電力化する場合、マスタモジュールの全ての転送が完了した後、マスタモジュール内部がアイドル状態に戻った後に、ソフトウェアを介してクロック信号を遮断するのが一般的である。ただし、この場合、ソフトウェアが介在することで、さらにクロック信号を遮断までに遅延が生じてしまうという課題がある。
特許文献1では、この課題を解決するために、ハードウェアによりバスアクセスの有無を判定し、マスタモジュールであるDMAコントローラ内部のクロック信号を減速または停止することで省電力化を図っている。
特許第4136822号公報
しかしながら、特許文献1では、バスアクセスが無い場合にクロック信号を遮断するとしているが、昨今のカスケード化されたバスシステムにおいてアクセスレイテンシそのものが増大しているため、クロック信号を遮断できる期間そのものが短くなっている。特に、ライトデータの転送を行うモジュールの場合、ライトデータそのものは末端のスレーブモジュールに到達しているにも関わらず、ライトの完了をマスタモジュールへ通知するライトレスポンス信号を受信するための待ち時間が発生することになる。特許文献1では、このライトレスポンス信号の受信待ちをしている間にもマスタモジュールのクロック信号を遮断することができず、電力を消費することになってしまう。
本開示の目的は、データ転送装置の消費電力を低減できるようにすることである。
データ転送装置は、データ転送を行い、転送ステータス待ちであることを通知する第1の転送手段と、前記第1の転送手段が転送ステータス待ちであることを通知した場合に、前記第1の転送手段を低電力状態に移行させ、前記転送ステータスの受信処理と前記転送ステータスの受信処理に基づく終了処理を代理する代理手段とを有する。
本開示によれば、データ転送装置の消費電力を低減することができる。
情報処理装置の構成例を示す図である。 情報処理装置の一部の構成例を示す図である。 終了処理代理部の構成例を示す図である。 各信号の動作を示すタイミングチャートである。 バスプロトコル信号の一覧を示す図である。 バスプロトコルを示すタイミングチャートである。
以下、図面を参照して、実施形態を説明する。なお、以下の実施形態において示す構成は一例にすぎず、図示された構成に限定されるものではない。
図1は、第1の実施形態による情報処理装置10の構成例を示す図である。情報処理装置10は、例えばデジタルカメラシステム用情報処理装置であり、バスシステム100を有する。バスシステム100は、複数のバスマスタモジュール(以降、マスタモジュールと称す)からバススレーブモジュール(以降、スレーブモジュールと称す)へのデータ転送を司る。情報処理装置10は、例えば、システムオンチップと呼ばれる半導体装置である。
情報処理装置10は、データ転送を司るバスシステム100を有する。バスシステム100は、インターコネクト、ファブリック、オンチップネットワークまたはネットワークオンチップと呼ばれる。さらに、情報処理装置10は、割り込み制御部101と、中央処理装置(以下、CPUと称す)102と、ライトDMAC103と、メモリコントローラ(以下、MEMCと称す)104と、映像入力処理部105と、リードDMAC106を有する。さらに、情報処理装置10は、映像出力処理部107と、リードDMAC108と、ライトDMAC109と、動画処理部110と、メモリカードコントローラ111と、USBコントローラ112と、ROMコントローラ113を有する。さらに、情報処理装置10は、操作ボタン制御部114と、終了処理代理部115と、終了処理代理部116と、全体クロック制御部121を有する。
DMACは、ダイレクトメモリアクセスコントローラである。ライトDMAC103および109は、ライトダイレクトメモリアクセスコントローラである。リードDMAC106および108は、リードダイレクトメモリアクセスコントローラである。
CPU102とライトDMAC103,109とリードDMAC106,108は、マスタモジュールである。ライトDMAC103,109とリードDMAC106,108は、それぞれ、ソフトウェアの介在なく、スレーブモジュールへのデータ転送を行うことができる。MEMC104は、スレーブモジュールである。MEMC104は、マスタモジュールから受信したデータをDRAM151へ転送する。
バスシステム100には、マスタモジュールの一つとして、情報処理装置10の全体の処理を行うCPU102が接続されている。また、バスシステム100には、ライトDMAC103,109と、MEMC104と、リードDMAC106,108が接続されている。
CMOSセンサ150は、撮影したデジタルの映像データを出力する。映像入力処理部105は、CMOSセンサ150から映像データを入力し、その映像データをライトDMAC103に出力する。
ライトDMAC103は、バスシステム100およびMEMC104を介して、DRAM151へ映像データを書き込む。リードDMAC106は、バスシステム100およびMEMC104を介して、DRAM151に記憶されている映像データを読み出し、その読み出した映像データを映像出力処理部107に出力する。映像出力処理部107は、その映像データを表示デバイス152に表示する。
また、リードDMAC108は、バスシステム100およびMEMC104を介して、DRAM151に記憶されている映像データ(静止画データまたは動画データ)を読み出し、読み出した映像データを動画処理部110に出力する。動画処理部110は、映像データに対して圧縮処理を行い、圧縮処理後の映像データをライトDMAC109に出力する。ライトDMAC109は、バスシステム100およびMEMC104を介して、圧縮処理後の映像データをDRAM151に書き込む。
また、バスシステム100には、メモリカードコントローラ111とUSBコントローラ112が接続されている。メモリカードコントローラ111は、メモリカード153に映像データを書き込み、またはメモリカード153から映像データを読み出す。USBコントローラ112は、USBケーブルを介して、USBデバイス154に対して映像データを入出力する。
また、バスシステム100には、ROMコントローラ113が接続されている。ROMコントローラ113は、ROM155に記憶されているプログラムコードを読み出す。また、バスシステム100には、操作ボタン制御部114が接続されている。操作ボタン制御部114は、デジタルカメラ本体にあるボタン操作を検出および制御する。
終了処理代理部115は、ライトDMAC103に接続されている。終了処理代理部115は、ライトDMAC103によるDRAM151へのダイレクトメモリアクセス転送が終了したことを示す割り込み信号117を割り込み制御部101に通知する。
終了処理代理部116は、ライトDMAC109に接続されている。終了処理代理部116は、ライトDMAC109によるDRAM151へのダイレクトメモリアクセス転送が終了したことを示す割り込み信号118を割り込み制御部101に通知する。
操作ボタン制御部114は、デジタルカメラ本体にあるボタン操作の検出を示すボタン操作検出割り込み信号119を割り込み制御部101に通知する。割り込み制御部101は、これらの割り込み信号117~119を受けて、CPU102に対して割り込み信号120を通知する。
全体クロック制御部121は、情報処理装置10内の各モジュールに対してクロック信号を供給する。全体クロック制御部121は、バスシステム100に直接接続されるモジュール(ライトDMAC103および109を除く)に対して共通のクロック信号SYS_CLKを供給する。また、全体クロック制御部121は、映像入力処理部105に対してクロック信号V0_CLKを供給し、映像出力処理部107に対してクロック信号V1_CLKを供給する。クロック信号V0_CLKおよびV1_CLKは、それぞれ、外部のCMOSセンサ150および表示デバイス152と同期したクロック周波数のクロック信号である。
終了処理代理部115は、ライトDMAC103に対してクロック信号DMAC0_CLKを供給する。終了処理代理部116は、ライトDMAC109に対してクロック信号DMAC1_CLKを供給する。クロック信号DMAC0_CLKおよびDMAC1_CLKは、それぞれ、クロック信号SYS_CLKに対して、同じ周波数であり、同期関係ではあるが、終了処理代理部115および116の内部状態により供給が制御される。詳細については後述する。
次に、ライトDMAC103または109によりバスシステム100を経由して、DRAM151へ書き込まれたデータが、リードDMAC106または108により読み出される場合の処理フローを説明する。
一例として、映像入力処理部105と動画処理部110との間で行われるデータ処理について取りあげる。映像入力処理部105は、CMOSセンサ150から入力されたデジタルデータをライトDMAC103へ転送する。ライトDMAC103は、予め決められたDRAM151上のアドレス空間に対してデジタルデータを書き込むために、バスシステム100に対してデジタルデータをライトデータとして転送する。これを受けたバスシステム100は、ライトDMAC103から送られたアドレスをデコードし、DRAM151と接続されるMEMC104へライトトランザクションを発行する。これを受けたMEMC104は、DRAM151に対して、DRAM151固有のプロトコルを介して、アドレスを指定し、メモリ領域へ書き込みを行う。
一方、動画処理部110は、DRAM151に書き込まれたデジタルデータに対して、回転等の処理を施す必要がある。そのため、リードDMAC108は、バスシステム100およびMEMC104を介して、DRAM151に書き込まれたデジタルデータを読み出す。
ライトDMAC103が、DRAM151に対して予め決められたデータ転送量の転送を完了すると、ライトDMAC103の代理として、終了処理代理部115は、割り込み信号117をアサートする。この終了処理代理部115の詳細な挙動については後述する。
CPU102は、この割り込み信号117を受けて、リードDMAC106に対して起動を指示する。リードDMAC108は、これを受けて、DRAM151上のアドレス空間に対して、デジタルデータを読み出すために、バスシステム100に対して、デジタルデータをリードデータとして転送する。
上記のように、ライトDMAC103とリードDMAC108の間でデータの欠落なく、データ転送を実現する必要がある。そのためには、ライトDMAC103によるDRAM151への書き込みが完全に完了した後に、リードDMAC108によるDRAM151に対する読み出しを開始しなくてはならない。例えば、書き込んだ順番とは逆の順番で読み出すような場合には、特に、「読み出しによる書き込みの追い越し違反」が発生する可能性が高くなる。この違反を抑制するために、ライトDMAC103は、ライトデータの転送が完全に完了した後に、割り込み信号117をアサートする必要がある。
バスシステム100と各マスタモジュール、およびバスシステムと各スレーブモジュールは、共通のバスプロトコルで接続されている。図5を参照し、本実施形態で使用するバスプロトコルを説明する。アドレスとデータを分離し、独立して転送することのできるスプリットトランザクションバスを採用している。チャネルには、ライトアドレスチャネル、ライトデータチャネル、ライトレスポンスチャネル、リードアドレスチャネル、リードデータチャネルが存在し、それらの出力ソースはそれぞれ異なる。
例えば、リードアドレスチャネルでは、マスタモジュールがスレーブモジュールに対して、リード先のアドレスとそのアドレスからのバースト長をそれぞれ「リードアドレス信号」と「リードバースト長信号」として送信する。リードデータチャネルでは、スレーブモジュールがマスタモジュールに対して、先行して送信済みのリードアドレスに対するリードデータを「リードデータ信号」として送信する。
例えば、ライトアドレスチャネルでは、マスタモジュールがスレーブモジュールに対して、ライト先のアドレスとそのアドレスからのバースト長をそれぞれ「ライトアドレス信号」と「ライトバースト長信号」として送信する。ライトデータチャネルでは、マスタモジュールがスレーブモジュールに対して、先行して送信済みのアドレスに対するライトデータを「ライトデータ信号」として送信する。一方で、ライトレスポンスチャネルは、ライトデータチャネルで送信されたライトデータがスレーブモジュールへ到達したことをマスタモジュールへ通知するためのものであり、スレーブモジュールが「ライトレスポンス信号」として送信する。
各チャネルの基本動作は共通であり、それぞれのチャネル内の信号は3つの属性(データ、有効信号、許可信号)に分類される。前述した「ライトアドレス信号」と「ライトレスポンス信号」などは、“データ”という属性である。この“データ”を送信する制御信号として“有効信号”がある。必ず“データ”の属性の信号と“有効信号”の属性の信号の入出力方向(ソース)は同一である。一方で、“許可信号”は、その反対の入出力方向となる。
図6のタイミングチャートを用いて、これらの属性の挙動を説明する。有効信号と許可信号は1ビットの信号であり、データは1ビット以上のビット幅を持つ信号である。データを送信する送信側のモジュールは、有効信号に1をセットし、データに送信したい情報をセットする。このとき、受信側のモジュールは、データを受信できる場合には許可信号に1をセットし、そうでない場合には許可信号に0をセットする。受信側のモジュールは、有効信号と許可信号が共に1の時刻T53~T55,T57~T60に、データを内部に取り込む。また、有効信号と許可信号のいずれかが0になる時刻T50~T52,T56,T61~T62では、データの授受は成立せず、送信側のモジュールは、データを保持状態とする。この有効信号と許可信号のやりとりを、以降、ハンドシェイクという表現を用いる。
スプリットトランザクションバスにおいては、各チャネルは、独立して制御されることにはなるが、個々のアドレスに着目すれば、一定の順番になるはずである。例えば、リードについては、リードアドレスチャネル、リードデータチャネルの順番で、転送が行われる。ライトについては、ライトアドレスチャネル、ライトデータチャネル、ライトレスポンスチャネルの順番で、転送が行われる。
前述した「読み出しによる書き込みの追い越し違反」を抑制するために、ライトDMACが発行したライト転送が完全にスレーブモジュールに到達したことを知ることができるライトレスポンスチャネルが用いられる。ライトDMACは、予め決められたデータ転送量のDMA転送(ダイレクトメモリアクセス転送)において、最後のトランザクションに対するライトレスポンスチャネルを受信完了した後に、割り込み信号をアサートすることで対処できる。ただし、このバスプロトコルは、あくまで一例であり、本実施形態の構成を制限するものではない。
図2は、図1の全体構成から1つのライトDMAC103と1つのリードDMAC108との間でのデータ転送を行う部分を抜粋した構成を示す図である。ここでも、バスシステム100と各マスタモジュール、およびバスシステムと各スレーブモジュールは、図5と図6で説明した共通のバスプロトコルで接続されている。図2において、図1と同じ機能モジュールや信号に関しては、同じ符号を付し、説明を省略する。
ライトDMAC103は、ライト専用のインターフェースしか持たず、ライトアドレスチャネルとライトデータチャネルとライトレスポンスチャネルのみでバスシステム100に接続されている。また、リードDMAC108は、リード専用のインターフェースしか持たず、リートアドレスチャネルとリードデータチャネルでバスシステム100に接続されている。MEMC104は、ライトリード兼用のため、ライトアドレスチャネルとライトデータチャネルとライトレスポンスチャネルとリートアドレスチャネルとリードデータチャネルでバスシステム100に接続されている。
ライトDMAC103は、予め決められたデータ転送量のDMA転送がライトデータチャネルにおいて完了した後に、全ライトデータ転送終了信号204と残りライトレスポンス数信号315を終了処理代理部115へ出力する。あくまでライトデータチャネルにおいて完了しているだけなので、ライトレスポンスチャネルは、まだ完了しているとは限らない。
終了処理代理部115は、主に、この全ライトデータ転送終了信号204がアサートされた後に、残りライトレスポンス数信号315で示された数のライトレスポンスチャネルの転送を完了させるために動作する。終了処理代理部115は、ライトDMAC103のライトレスポンスチャネルを乗っ取るために、バスシステム100からライトDMAC103へ出力されるライトレスポンス有効信号200とライトレスポンス信号201をスヌープして入力する。また、終了処理代理部115は、ライトDMAC103が出力するDMACライトレスポンス許可信号203を受け取る。そして、終了処理代理部115は、DMACライトレスポンス許可信号203をそのまま出力するか、もしくは終了処理代理部115内の処理で置き換えるかを選択し、正式なライトレスポンス許可信号202としてバスシステム100へ出力する。終了処理代理部115は、ライトDMAC103による予め決められた転送量のDMA転送に対するライトデータチャネルが完了した時点の、残りのライトレスポンスチャネルに対するライトレスポンス許可信号202を乗っ取る。終了処理代理部115は、それ以外では、ライトDMAC103からのDMACライトレスポンス許可信号203をそのままライトレスポンス許可信号202としてバスシステム100へ出力する。詳細な回路構造と挙動については後述する。
また、終了処理代理部115は、ライトDMAC103に対して、クロック信号DMAC0_CLKを供給する。具体的には、終了処理代理部115は、入力されるクロック信号SYS_CLKを基準として、予め決められた転送量のDMA転送における全てのライトデータチャネルが完了したら、クロック信号DMAC0_CLKを供給遮断する。これにより、ライトDMAC103は、クロック信号DMAC0_CLKが供給されない省電力状態に入ったことになると同時に、以降の処理(ライトレスポンスチャネルのハンドシェイクや割り込み制御)については行えないことになる。そこで、終了処理代理部115は、以降の処理をライトDMAC103に成り代わって制御する。また、終了処理代理部115は、ライトレスポンスチャネルの転送が全て終わった時点で、割り込み信号117を割り込み制御部101へ出力する。
図3は、終了処理代理部115の内部構成例を示すブロック図である。図3において、図2と同じ機能モジュールや信号に関しては同じ符号を付し、説明を省略する。終了処理代理部115は、割り込み生成代理部300と、ライトレスポンス処理部301と、クロック制御部302と、許可信号選択部303を有する。
ライトレスポンス処理部301は、まず、ライトDMAC103からの全ライトデータ転送終了信号204を受けてから、ライトDMAC103の終了処理を代理するために、ライトレスポンス切り替え信号308に1をセットする。なお、ライトレスポンス処理部301が代理出力する代理ライトレスポンス許可信号304は、簡単のために、常に1とする。
ライトレスポンス処理部301は、残りライトレスポンス数信号315で示された処理すべきライトレスポンスチャネルの転送数を把握し、その後、バスシステム100から出力されるライトレスポンス有効信号200が1になるサイクル数をカウントする。また、ライトレスポンス処理部301は、ライトレスポンス有効信号200が1になったときのライトレスポンス信号201をみて、エラーが無いかをチェックする。このカウント値が残りライトレスポンス数信号315で示された回数と一致すると、ライトレスポンス処理部301は、最終ライトレスポンス終了通知306をアサートし、クロックイネーブル信号305に0をセットする。
許可信号選択部303は、ライトDMAC103から出力されるDMACライトレスポンス許可信号203とライトレスポンス処理部301から出力される代理ライトレスポンス許可信号304をライトレスポンス切り替え信号308で切り替える。許可信号選択部303は、ライトレスポンス切り替え信号308が0の場合には、DMACライトレスポンス許可信号203を正式なライトレスポンス許可信号202としてバスシステム100へ出力する。また、許可信号選択部303は、ライトレスポンス切り替え信号308が1の場合には、代理ライトレスポンス許可信号304を正式なライトレスポンス許可信号202としてバスシステム100へ出力する。
クロック制御部302は、ライトレスポンス処理部301から出力されるクロックイネーブル信号305の値に従って、クロック信号SYS_CLKを基準に、クロック信号DMAC0_CLKの供給または停止を制御する。具体的には、クロック制御部302は、クロックイネーブル信号305が0のときには、クロック信号DMAC0_CLKを停止する。
割り込み生成代理部300は、ライトDMAC103の代わりに最終ライトレスポンス終了通知306を受けて、割り込み信号117をアサートする。また、割り込み要因として正常終了か異常終了かをライトレスポンス信号201をデコードすることにより決定し、要因レジスタ(不図示)として状態を保持する。この要因レジスタは、CPU102からバス経由(不図示)で読み出すこともできるし、クリアすることもできる。この要因レジスタのOR論理が割り込み信号となる。また、終了処理代理部115を使用しない場合も考慮し、割り込み生成代理部300の内部にはセレクタがあり、セレクタは、ライトDMAC割り込み信号206を選択できるようになっている。終了処理代理部115を使用するかどうかは、内部の設定レジスタ(不図示)の値で決定され、これもCPU102から設定が可能である。なお、図1で説明した終了処理代理部116も、終了処理代理部115と同様の構成である。
図4は、図2と図3の構成におけるライトDMAC103および終了処理代理部115の動作を示すタイミングチャートである。本実施形態では、説明を簡単にするために、ライトDMAC103が32個のワードデータを8回のバーストトランザクションで分割して発行するシンプルな例となっている。ライトDMAC103は、1回のトランザクションあたり4バースト固定の転送を行っている。ライトDMAC103は、時刻T2~T9では、ライトアドレスチャネルを使用し、8回のアドレス発行(A0~A7)を行っている。図6で説明したように、ライトアドレス有効信号とライトアドレス許可信号が共に1のときに、ライトアドレス信号とライトバース長信号がスレーブモジュールに取り込まれる。
ここで、マスタモジュールであるライトDMAC103は、送信されたライトアドレスに対応するライトデータを、ライトデータチャネルを用いて送信する。スレーブモジュールは、ライトアドレスを取り込んだ後、ライトデータの受信準備ができると、時刻T4~T15で、ライトデータ許可信号をアサートする。時刻T4~T7では、最初のライトアドレスA0に対する4バースト転送分のデータD0(0)、D0(1)、D0(2)、D0(3)が送信される。ライトデータのスレーブモジュールへの到達が完了すると、次に、スレーブモジュール側からライトレスポンス信号201が送出される。時刻T11では、最初のライトアドレスA0に対するライトレスポンス信号201は、OK0としてスレーブモジュールにより出力される。ここで、OK0は、最初のライトアドレスA0に対するライトデータ処理に問題が無く、データD0(0)、D0(1)、D0(2)、D0(3)がスレーブモジュールへ到達したことを示している。ただし、ライトDMAC103は、バス上の転送性能を向上させるために、ライトデータのスレーブモジュールへの到達を確認することなく、次のライトアドレスを発行する。
時刻T12~T15では、ライトDMAC103は、上記と同様の転送を続け、最後のライトアドレスA7に対する4バーストのライトデータD7(0)、D7(1)、D7(2)、D7(3)を転送する。最後のデータD7(3)まで転送を完了し終わると、時刻T15では、全ライトデータ転送終了信号204がライトDMAC103によりアサートされる。終了処理代理部115がこれを受けて、ライトレスポンス切り替え信号308が1にセットされ、ライトレスポンス信号201のハンドシェイク処理がライトDMAC103から終了処理代理部115へ移譲される。ライトレスポンス許可信号202は、代理ライトレスポンス許可信号304の値が出力される。ただし、図4のタイミングチャートでは、ライトレスポンス許可信号202は、DMACライトレスポンス許可信号203と同じ状態であるため、信号そのものは変化していない。
また、全ライトデータ転送終了信号204がアサートされると、クロックイネーブル信号305が0へセットされる。この値が0の時刻T16以降では、終了処理代理部115は、入力されるクロック信号SYS_CLKを遮断して、停止したクロック信号DMAC0_CLKをライトDMAC103へ出力する。
この状態で、ライトDMAC103のライトデータ転送が全て完了し、ライトレスポンスチャネルの処理のみが残っていることとなる。この残っているライトレスポンスの処理を終了処理代理部115が代理することになる。
終了処理代理部115の中のライトレスポンス処理部301は、全ライトデータ転送終了信号204がアサートされたときに、残りライトレスポンス数信号315を参照し、処理すべきライトレスポンスのハンドシェイク回数を調べる。時刻T15では、ライトアドレスA6とA7の2回分のライトレスポンスが残っている。時刻T18,T19では、ライトアドレスA6とライトアドレスA7に対するライトレスポンス信号OK6とOK7がバスシステム100から送信される。すると、時刻T19では、ライトレスポンス処理部301は、最終ライトレスポンス終了通知306をアサートする。これにより、時刻T20では、割り込み生成代理部300は、ライトレスポンスチャネルを含む全てのトランザクション処理が完了したということで、割り込み信号117を割り込み制御部101に対してアサートする。
図4のタイミングチャートに記載はしていないが、CPU102は、この割り込み信号117を受けて、リードDMAC108を起動する。全てのライトレスポンスチャネルの転送が完了しているため、リードによる追い越しは抑制できる。
なお、終了処理代理部115内のクロック制御部302には、クロック信号DMAC0_CLKの遮断を無効化するレジスタ(不図示)がある。クロック信号DMAC0_CLKが遮断されているライトDMAC103について再度転送を行わせる場合には、上記のレジスタにより、ライトDMAC103への処理を可能な状態にする。また、ライトDMAC103は、ライトレスポンス待ち状態になっているため、必ず再転送の際には、全部、もしくは一部をリセットする必要がある。
以上説明したように、終了処理代理部115は、ライトチャネルの転送が全て完了した後に、回路規模の大きいライトDMAC103のクロック信号DMAC0_CLKを止める。そして、機能を限定した回路規模の小さい終了処理代理部115が残りのライトレスポンスチャネルの処理と割り込み制御のみを行う。これにより、情報処理装置10は、DMA転送の終盤のライトレスポンスチャネルの転送中の省電力化を図ることができる。
情報処理装置10内に大量にあるライトDMACのそれぞれに終了処理代理部を持たせるのではなく、終了処理代理部を共有してもよい。また、本実施形態では、ライトDMACに対するクロック信号の遮断を例に挙げたが、これに限定されない。例えば、クロック周波数を下げたり、または電源遮断してもよい。特に、情報処理装置10は、ライトDMACの外部で処理を代理させているため、比較的簡単にライトDMACについての電源遮断化が可能となる。
以上のように、情報処理装置10は、データ転送装置である。以下、情報処理装置10のデータ転送方法を説明する。ライトDMAC103は、転送部であり、時刻T2~T15で、DRAM151に複数のライトデータの転送を行い、時刻T15で、全ライトデータ転送終了信号204を終了処理代理部115に通知する。全ライトデータ転送終了信号204は、転送ステータス待ちであることを示す信号である。転送ステータスは、ライトデータの転送に対するライトレスポンス信号201である。
終了処理代理部115は、ライトDMAC103が全ライトデータ転送終了信号204を通知した場合、ライトDMAC103を低電力状態に移行させ、ライトレスポンス信号201の受信処理とライトレスポンス信号201の受信処理に基づく終了処理を代理する。
時刻T16では、終了処理代理部115は、ライトDMAC103に供給するクロック信号DMAC0_CLKと電源電圧の少なくともいずれかを制御することにより、ライトDMAC103を低電力状態に移行させる。例えば、終了処理代理部115は、クロック信号DMAC0_CLKの停止と、クロック信号DMAC0_CLKの周波数の低下と、ライトDMAC103に供給する電源電圧の遮断の少なくともいずれかを行う。これにより、終了処理代理部115は、ライトDMAC103を低電力状態に移行させる。
ライトDMAC103は、データ転送によりDRAM(記憶部)151にライトデータを書き込む。終了処理代理部115の終了処理は、例えば、時刻T19で、割り込み信号117をアサートする処理である。割り込み信号117がアサートされた場合に、リードDMAC108が起動される。リードDMAC108は、転送部であり、データ転送によりDRAM151からリードデータを読み出す。
本実施形態によれば、情報処理装置10は、終了処理代理部115を設けることにより、ライトDMAC103を低電力状態に移行させることができるので、消費電力を低減することができる。
(その他の実施形態)
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
説明した実施形態は、本開示の原理、実際の適用例を説明し、他の当業者が本開示を理解できるようにするために説明したものである。様々な変更が施された他の実施形態が、特定の用途に適していることがあり得るが、それらは本開示の範囲内に含まれるものである。
10 情報処理装置、100 バスシステム、101 割り込み制御部、102 中央処理装置(CPU)、103 ライトDMAC、104 メモリコントローラ(MEMC)、105 映像入力処理部、106 リードDMAC、107 映像出力処理部、108 リードDMAC、109 ライトDMAC、110 動画処理部、111 メモリカードコントローラ、112 USBコントローラ、113 ROMコントローラ、114 操作ボタン制御部、115 終了処理代理部、116 終了処理代理部、121 全体クロック制御部、150 CMOSセンサ、151 DRAM、152 表示デバイス、153 メモリカード、154 USBデバイス、155 ROM

Claims (10)

  1. データ転送を行い、転送ステータス待ちであることを通知する第1の転送手段と、
    前記第1の転送手段が転送ステータス待ちであることを通知した場合に、前記第1の転送手段を低電力状態に移行させ、前記転送ステータスの受信処理と前記転送ステータスの受信処理に基づく終了処理を代理する代理手段と
    を有することを特徴とするデータ転送装置。
  2. 前記第1の転送手段は、ライトデータの転送を行い、
    前記転送ステータスは、前記ライトデータの転送に対するライトレスポンス信号であることを特徴とする請求項1に記載のデータ転送装置。
  3. 前記転送ステータス待ちであることを通知することは、ライトデータ転送終了信号を通知することであることを特徴とする請求項2に記載のデータ転送装置。
  4. 前記第1の転送手段は、複数のライトデータの転送を行い、
    前記転送ステータス待ちであることを通知することは、全ライトデータ転送終了信号を通知することであることを特徴とする請求項3に記載のデータ転送装置。
  5. 前記代理手段は、前記第1の転送手段に供給するクロック信号と電源電圧の少なくともいずれかを制御することにより、前記第1の転送手段を低電力状態に移行させることを特徴とする請求項1~4のいずれか1項に記載のデータ転送装置。
  6. 前記代理手段は、前記第1の転送手段に供給するクロック信号の停止と、前記第1の転送手段に供給するクロック信号の周波数の低下と、前記第1の転送手段に供給する電源電圧の遮断の少なくともいずれかにより、前記第1の転送手段を低電力状態に移行させることを特徴とする請求項5に記載のデータ転送装置。
  7. 前記終了処理は、割り込み信号をアサートする処理であることを特徴とする請求項1~6のいずれか1項に記載のデータ転送装置。
  8. 前記終了処理は、割り込み信号をアサートする処理であり、
    前記第1の転送手段は、データ転送により記憶手段にライトデータを書き込み、
    データ転送により前記記憶手段からリードデータを読み出す第2の転送手段をさらに有し、
    前記割り込み信号がアサートされた場合に、前記第2の転送手段が起動されることを特徴とする請求項2~4のいずれか1項に記載のデータ転送装置。
  9. 前記第1の転送手段と前記第2の転送手段は、それぞれ、ダイレクトメモリアクセスコントローラであることを特徴とする請求項8に記載のデータ転送装置。
  10. 第1の転送手段が、データ転送を行い、転送ステータス待ちであることを通知する第1の転送ステップと、
    代理手段が、前記第1の転送手段が転送ステータス待ちであることを通知した場合に、前記第1の転送手段を低電力状態に移行させ、前記転送ステータスの受信処理と前記転送ステータスの受信処理に基づく終了処理を代理する代理ステップと
    を有することを特徴とするデータ転送装置の転送方法。
JP2021182396A 2021-11-09 2021-11-09 データ転送装置およびデータ転送装置の転送方法 Pending JP2023070309A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021182396A JP2023070309A (ja) 2021-11-09 2021-11-09 データ転送装置およびデータ転送装置の転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021182396A JP2023070309A (ja) 2021-11-09 2021-11-09 データ転送装置およびデータ転送装置の転送方法

Publications (1)

Publication Number Publication Date
JP2023070309A true JP2023070309A (ja) 2023-05-19

Family

ID=86331432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021182396A Pending JP2023070309A (ja) 2021-11-09 2021-11-09 データ転送装置およびデータ転送装置の転送方法

Country Status (1)

Country Link
JP (1) JP2023070309A (ja)

Similar Documents

Publication Publication Date Title
US7096296B2 (en) Supercharge message exchanger
US6247082B1 (en) Method and circuit for providing handshaking to transact information across multiple clock domains
US6134625A (en) Method and apparatus for providing arbitration between multiple data streams
JP2009515262A (ja) 完全バッファリングされたdimm読み出しデータによる書き込み確認の代替
US8531893B2 (en) Semiconductor device and data processor
WO2005091812A2 (en) Pvdm (packet voice data module) generic bus protocol
US7783817B2 (en) Method and apparatus for conditional broadcast of barrier operations
CN115248796B (zh) 用于芯粒到芯粒互连的总线流水线结构和芯片
EP2207101A1 (en) Method and device for parallel interfacing
JP2006040276A (ja) 選択的なクロック制御に基づいて消費電力を節減させるバス仲裁システム及びその方法
JP6425492B2 (ja) 情報処理装置、情報処理方法およびプログラム
KR100476895B1 (ko) 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법
JP2023070309A (ja) データ転送装置およびデータ転送装置の転送方法
JP4693843B2 (ja) メモリ制御装置及びメモリ制御方法
KR100872196B1 (ko) 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법
WO2021089430A1 (en) Bus system and method for operating a bus system
JP2007052685A (ja) マイクロコントローラ
WO2024017337A1 (zh) 一种fifo存储控制电路、方法、芯片及电子设备
US11188140B2 (en) Information processing system
EP4160358A2 (en) System on chip and application processor
CN115658601A (zh) 多核处理器系统及其控制方法
CN117555826A (zh) 一种SoC、总线系统、总线接入方法、设备和存储介质
JP2009169559A (ja) データ転送装置