説明

半導体装置及び制御方法

【課題】データリクエスト信号のレベルでDMAによるデータ転送を要求するモジュールが、DMAにおけるバースト転送モードを利用できるようにする。
【解決手段】DMAコントローラによるバースト転送モードでのデータ転送中にデータリクエスト信号がインアクティブにされると、そのときのアドレスを保持するともに残りの転送回数をカウントし、そのアドレス及び残りの転送回数をバースト転送モードでのデータ転送終了後にDMAコントローラに再設定してデータ転送を行うようにして、データリクエスト信号がインアクティブにされたタイミングからのデータを再送することを可能にして、データリクエスト信号のレベルでデータ転送を要求するモジュールに対してバースト転送モードを利用したデータ転送を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ダイレクトメモリアクセス(DMA:Direct Memory Access)によるデータ転送技術に関する。
【背景技術】
【0002】
CPU(Central Processing Unit)を有する情報処理システムにおいて、CPUを介さずにリソース及びメモリ間等でデータ転送を行うダイレクトメモリアクセス(DMA)は広く採用されている。DMAによるデータ転送(DMA転送)は、DMAコントローラ(DMAC)により制御される。
【0003】
DMAによるデータ転送モードには、例えばバースト転送モードがある。バースト転送モードは、1回の転送要求により予め設定した転送回数分のデータ転送を行うモードである。バースト転送モードでは、データリクエスト信号の立ち上がりエッジ(または立ち下がりエッジ)を検出してDMAによるデータ転送動作が開始されると、その後のデータリクエスト信号のレベルにはかかわらず、設定されている転送回数のデータ転送が行われる。
【0004】
また、DMAによるデータ転送には、データリクエスト信号がアクティブなレベルである期間においてデータ転送を行うものがある。このデータ転送では、データリクエスト信号がアクティブになるとDMAによるデータ転送動作が開始されて、アクティブである期間中はデータ転送が継続して行われ、データリクエスト信号がインアクティブになることで転送動作が終了される。
【0005】
また、下記特許文献1には、バースト転送の実行中において1回のデータ転送毎にその都度バス権を放棄してバスを解放することで、バスを長時間占有し続けることを抑制したDMAコントローラが開示されている。また、下記特許文献2には、データリクエスト信号の立ち上がりエッジ(又は立ち下がりエッジ)を検出して1サイクルのパルスに変換し、そのパルス信号をリクエストキューとして蓄積し、蓄積されたキューに対応してDMAコントローラによりデータ転送を行うことが開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平6−208540号公報
【特許文献2】特開2002−269027号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、バースト転送モードでデータ転送を行うDMAコントローラは、DMAによるデータ転送動作を開始した後、設定されている転送回数のデータ転送を終了するまでデータリクエスト信号のレベルを確認しない。そのため、バースト転送モードでデータ転送を行うDMAコントローラは、データリクエスト信号のレベルによってDMAによるデータ転送を要求するモジュールに対して正常にデータを転送できない。これは、図7に一例を示すように、データリクエスト信号のレベルでDMAによるデータ転送を要求するモジュールが、DMAコントローラに設定された転送回数のデータ転送を終了する前に、データリクエスト信号をインアクティブにしてしまう可能性があるからである。そして、DMAコントローラに設定された転送回数のデータ転送を終了する前に、データリクエスト信号がインアクティブになると、その後に転送されたデータは無効とされるからである。
【0008】
図7において、データリクエストはモジュールから出力されるデータリクエスト信号であり、アクティブなレベルがハイレベル(ハイアクティブ)の信号である。また、モジュールへのDMA書込みは、モジュールに対するデータの書込みを示しており、DMAC転送回数は、バースト転送モードでのDMA転送動作における残りのデータ転送回数を示している。図7には、DMAコントローラに予め設定されているデータ転送回数が6回である場合を一例として示している。図7に示したように、時刻T71において、データリクエスト信号のレベルによってDMAによるデータ転送を要求するモジュールがデータリクエスト信号をインアクティブにすると、その後のモジュールへの書込みが無効となってしまう。このように、データリクエスト信号のレベルでDMAによるデータ転送を要求するモジュールでは、DMAにおけるバースト転送モードを利用することができない。
【課題を解決するための手段】
【0009】
本発明の一観点によれば、要求信号によってダイレクトメモリアクセスによるデータ転送の要求を受けるとバースト転送モードでデータ転送を行うDMAコントローラと、入力される第1の要求信号に基づく第2の要求信号をDMAコントローラに供給する制御回路と、バースト転送モードでのデータ転送中に第1の要求信号がインアクティブにされた場合にアドレス及び残りの転送回数を取得する情報取得回路と、取得したアドレス及び残りの転送回数をDMAコントローラによるバースト転送モードでのデータ転送を実行した後にDMAコントローラに設定する再設定回路とを有する半導体装置が提供される。制御回路は、バースト転送モードでのデータ転送中に第1の要求信号がインアクティブにされた場合に、第1の要求信号がインアクティブにされてからバースト転送モードでのデータ転送を終了するまでは第2の要求信号をインアクティブにする。
【発明の効果】
【0010】
開示の半導体装置は、バースト転送モードでのデータ転送中に要求信号がインアクティブにされたときには、そのときのアドレス及び残りの転送回数をバースト転送モードでのデータ転送終了後に再設定してDMAによるデータ転送の続きを実行させることができる。したがって、DMAによるデータ転送を要求するモジュールが要求信号のレベルによってデータ転送を要求するモジュールであっても、DMAにおけるバースト転送モードを利用したデータ転送を行うことが可能になる。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態における半導体装置(DMA転送補助回路)を有する情報処理システムの構成例を示す図である。
【図2】第1の実施形態におけるDMA転送補助回路の構成例を示す図である。
【図3】第1の実施形態におけるDMA転送動作の一例を示すタイミングチャートである。
【図4】第2の実施形態における半導体装置(DMA転送補助回路)を有する情報処理システムの構成例を示す図である。
【図5】第2の実施形態におけるDMA転送補助回路の構成例を示す図である。
【図6】第2の実施形態におけるDMA転送動作の一例を示すタイミングチャートである。
【図7】転送されたデータが無効になる動作例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態を図面に基づいて説明する。
【0013】
(第1の実施形態)
本発明の第1の実施形態について説明する。
図1は、第1の実施形態における半導体装置(DMA転送補助回路)を有する情報処理システムの構成例を示すブロック図である。図1において、11はダイレクトメモリアクセス(DMA:Direct Memory Access)コントローラ、12はDMA転送補助回路、13はモジュール、14はメモリ(RAM)、BUSはバスである。
【0014】
なお、図1においては、DMAによるデータ転送動作に係る特徴的構成を図示しており、本実施形態における情報処理システムの構成がこれに限定されるものではない。例えば、本実施形態における情報処理システムが、図示しないCPUを有することはいうまでもなく、また他のモジュール(リソース)等を有していても良い。
【0015】
DMAコントローラ11は、CPUを介さずに行うモジュール13及びメモリ14間等のDMAによるデータ転送(DMA転送)を制御する。DMAコントローラ11は、入力されるデータリクエスト信号によってDMA転送の要求を受けると、バスBUSを介したDMAによるデータ転送動作を開始する。本実施形態では、DMAコントローラ11は、データリクエスト信号の立ち上がりエッジを検出すると、その後のデータリクエスト信号のレベルにはかかわらず、予め設定されている転送回数分のデータ転送を行う、すなわちバースト転送モードでデータ転送を行う。
【0016】
モジュール13は、バスBUSに接続されており、所定の機能を実現する回路を有する。本実施形態においてモジュール13は、出力するデータリクエスト信号のレベルによってDMAによるデータ転送を要求するモジュールであり、DMAによるデータ転送を要求するときにはデータリクエスト信号をアクティブ(ハイレベル)にする。メモリ14は、各種のデータを記憶する。メモリ14は、バスBUSに接続されており、バスBUSを介した外部からのデータの書き込みやデータの読み出しが行われる。
【0017】
DMA転送補助回路12は、DMAコントローラ11とバスBUSとの間に設けられる。DMA転送補助回路12は、データリクエスト信号のレベルによってDMAによるデータ転送を要求するモジュール13に対する、DMAコントローラ11によるバースト転送モードでのデータ転送を可能にするようDMAによるデータ転送に係る各種の制御を行う。DMA転送補助回路12は、例えばモジュール13からの要求に応じてDMAによるデータ転送が行われるとき、DMAコントローラ11とバスBUS等との間で入出力される各種信号を制御する。
【0018】
図1に示すように、DMA転送補助回路12には、バス権要求信号BRQP、アドレスバスADDP、書き込みデータバスWDTP、モジュール書き込み信号MWRP、及びDMA動作終了信号DEOPがDMAコントローラ11から入力される。DMAコントローラ11には、データリクエスト信号DRQP及びバス権獲得信号BGRPがDMA転送補助回路12から入力され、読み出しデータバスRDTがバスBUSを介して入力される。
【0019】
また、DMA転送補助回路12は、バス権要求信号BRQ、アドレスバスADD、書き込みデータバスWDT、モジュール書き込み信号MWR、及びDMA動作終了信号DEOをバスBUSに対して出力する。DMA転送補助回路12には、データリクエスト信号DRQがモジュール13から入力され、バス権獲得信号BGRがバスBUSを介して図示しないアービタ(調停回路)等から入力される。
【0020】
ここで、本実施形態では、データリクエスト信号DRQ、DRQP、バス権要求信号BRQ、BRQP、バス権獲得信号BGR、BGRP、及びDMA動作終了信号DEO、DEOPは、アクティブにされるときハイレベル(“H”)にされ、インアクティブ時はローレベル(“L”)とする。また、モジュール書き込み信号MWR、MWRPは、“H”のとき書き込み転送方向(モジュール13又はメモリ14等へのデータ書き込み)であるとし、“L”のとき読み出し転送方向(モジュール13又はメモリ14等からのデータ読み出し)であるとする。なお、モジュール13及びメモリ14は、アドレスバス、書き込みデータバス、読み出しデータバス、及び書き込み信号等を介してバスBUSに接続されている。
【0021】
図2は、DMA転送補助回路12の構成例を示す図である。DMA転送補助回路12は、データリクエスト信号制御回路21、カウンタ22、アドレス保持回路24、再設定回路25、及びバス出力信号制御回路26を有する。
【0022】
データリクエスト信号制御回路21は、モジュール13からデータリクエスト信号DRQが入力され、データリクエスト信号DRQPをDMAコントローラ11に出力する。データリクエスト信号制御回路21は、通常、入力されるデータリクエスト信号DRQと同じレベルのデータリクエスト信号DRQPを出力する。すなわち、データリクエスト信号制御回路21は、モジュール13からのデータリクエスト信号DRQがアクティブ(“H”)になると、出力するデータリクエスト信号DRQPをアクティブ(“H”)にする。また、データリクエスト信号制御回路21は、モジュール13からのデータリクエスト信号DRQがインアクティブ(“L”)になると、出力するデータリクエスト信号DRQPをインアクティブ(“L”)にする。
【0023】
ただし、データリクエスト信号制御回路21は、DMAコントローラ11によるバースト転送モードでのデータ転送中にデータリクエスト信号DRQが“L”になると、バースト転送モードでのデータ転送が終了するまでデータリクエスト信号DRQPを“L”に維持する。すなわち、データリクエスト信号制御回路21は、バースト転送モードでのデータ転送が終了するまでの期間において、再びデータリクエスト信号DRQが“H”になっても出力するデータリクエスト信号DRQPを“H”にしない。
【0024】
なお、DMAによるバースト転送モードでのデータ転送の終了は、例えばDMAコントローラ11から出力されるDMA動作終了信号DEOPを用いて検知するようにしても良い。また、例えば再設定回路25から再設定動作を終了したことを示す信号を出力するようにして、その信号を用いてDMAによるバースト転送モードでのデータ転送の終了を検知するようにしても良い。
【0025】
カウンタ22は、カウンタ回路23を有し、そのカウンタ値W_CNTを再設定回路25に出力する。カウンタ22は、データリクエスト信号制御回路21からデータリクエスト信号DRQPが入力されるとともに、DMAコントローラ11からモジュール書き込み信号MWRP及びDMA動作終了信号DEOPが入力される。カウンタ22は、DMAコントローラ11によるバースト転送モードでのデータ転送中にデータリクエスト信号DRQが“L”になると、それからバースト転送モードでのデータ転送を終了するまでにDMAコントローラ11が書き込み(又は読み出し)を指示したデータの数をカウントする。
【0026】
カウンタ22は、例えば入力されるデータリクエスト信号DRQPが“H”から“L”に変化すると、モジュール書き込み信号MWRPを参照してデータの書き込み(又は読み出し)が指示された回数をカウンタ回路23によりカウントする。カウンタ回路23は、初期値を0とし、データリクエスト信号DRQPが“H”から“L”になった後に、データの書き込み(又は読み出し)の指示が検知される毎に値が1ずつ増加される。そして、カウンタ22は、入力されるDMA動作終了信号DEOPが“H”になるとカウント動作を終了する。
【0027】
アドレス保持回路24は、データリクエスト信号制御回路21からデータリクエスト信号DRQPが入力されるとともに、DMAコントローラ11からアドレスバスADDPが入力される。アドレス保持回路24は、入力されるデータリクエスト信号DRQPが“H”から“L”になってから最初のアドレス値(ライトアドレス又はリードアドレス)を保持し、保持したアドレス値を出力する。アドレス保持回路24は、例えば入力されるデータリクエスト信号DRQPが“H”から“L”に変化したときに、アドレスバスADDPより入力されるアドレス値を保持し、保持したアドレス値を再設定回路25に出力する。
【0028】
再設定回路25は、カウンタ22からカウンタ値W_CNTが入力されるとともに、アドレス保持回路24から保持されたアドレス値が入力され、それらに基づいてDMAによるデータ転送に係るアドレス値及び転送回数をDMAコントローラ11に再設定する。再設定回路25は、DMAコントローラ11から入力されるDMA動作終了信号DEOPが“H”になると、カウンタ22及びアドレス保持回路24から供給されるアドレス値及びカウンタ値をアドレス値及び転送回数としてDMAコントローラ11に設定する。
【0029】
バス出力信号制御回路26は、DMAコントローラ11とバスBUSとの間で授受される各信号を制御する。バス出力信号制御回路26は、データリクエスト信号制御回路21から入力されるデータリクエスト信号DRQPが“H”の場合には、DMAコントローラ11から入力される信号をそのままバスBUSに出力し、バスBUSから入力される信号をそのままDMAコントローラ11に出力する。すなわち、入力されるデータリクエスト信号DRQPが“H”の場合には、DMAコントローラ11から入力される信号MWRP、ADDP、DEOP、BRQP、WDTPが、信号MWR、ADD、DEO、BRQ、WDTとしてバスBUSに対して出力される。同様に、バスBUSより入力される信号BGRが、信号BGRPとしてDMAコントローラ11に入力される。
【0030】
また、バス出力信号制御回路26は、入力されるデータリクエスト信号DRQPが“H”から“L”に変化すると、DMAコントローラ11が保持しているバスBUSのバス権を放す(放棄する)処理を行う。バス出力信号制御回路26は、バス権を放した(放棄した)後、DMAコントローラ11からバスBUSへのアクセスを切断する。例えば、バス出力信号制御回路26は、データリクエスト信号DRQPが“H”から“L”に変化すると、入力されるバス権要求信号BRQPにかかわらず、バス権を放す(放棄する)ためにバス権要求信号BRQをインアクティブ(“L”)にする。そして、バス権を放す(放棄する)と、バス出力信号制御回路26は、出力するDMA動作終了信号DEOを“H”にし、バスBUSを介したDMAによるデータ転送を終了する。
【0031】
次に、第1の実施形態におけるDMAによるデータ転送動作について説明する。
図3は、第1の実施形態におけるDMAによるデータ転送動作の一例を示すタイミングチャートである。図3(A)にはバスBUS上の信号に係る波形例を示し、図3(B)にはDMAコントローラ11及びDMA転送補助回路12間の信号に係る波形例を示している。
【0032】
図3(A)において、DRQはデータリクエスト信号、BRQはバス権要求信号、BGRはバス権獲得信号、ADDはアドレスバス、WDTは書き込みデータバス、RDTは読み出しデータバス、MWRはモジュール書き込み信号、DEOはDMA動作終了信号である。データリクエスト信号DRQは、モジュール13よりDMA転送補助回路12に出力される。バス権要求信号BRQ、アドレスバスADD、書き込みデータバスWDT、モジュール書き込み信号MWR、及びDMA動作終了信号DEOは、DMA転送補助回路12よりバスBUSに対して出力される。バス権獲得信号BGRはバスBUSよりDMA転送補助回路12に出力され、読み出しデータバスRDTはバスBUSよりDMAコントローラ11に出力される。
【0033】
また、図3(B)において、DRQPはデータリクエスト信号、BRQPはバス権要求信号、BGRPはバス権獲得信号、ADDPはアドレスバス、WDTPは書き込みデータバス、MWRPはモジュール書き込み信号、DEOPはDMA動作終了信号である。データリクエスト信号DRQP及びバス権獲得信号BGRPは、DMA転送補助回路12よりDMAコントローラ11に出力される。バス権要求信号BRQP、アドレスバスADDP、書き込みデータバスWDTP、モジュール書き込み信号MWRP、及びDMA動作終了信号DEOPは、DMAコントローラ11よりDMA転送補助回路12に出力される。また、残転送回数は、DMAコントローラ11内のレジスタ等に格納されているDMAによるバースト転送モードでの残りのデータ転送回数を示しており、W_CNTはDMA転送補助回路12のカウンタ22におけるカウンタ値を示している。
【0034】
過去に要求したDMAによるデータ転送が完了している状態で、モジュール13が、データリクエスト信号DRQを“H”にすることによってDMAによるデータ転送を要求する(時刻T11)。データリクエスト信号DRQが“H”になると、DMA転送補助回路12のデータリクエスト信号制御回路21は、DMAコントローラ11に出力するデータリクエスト信号DRQPを“H”にする。続いて、バスBUSのバス権を獲得するためにDMAコントローラ11がバス権要求信号BRQPを“H”にすると、DMA転送補助回路12のバス出力信号制御回路26は、バスBUSに対して出力するバス権要求信号BRQを“H”にする。
【0035】
そして、バス権が獲得されるとバス権獲得信号BGRが“H”となり、それがDMA転送補助回路12を介してバス権獲得信号BGRPとして伝達され、DMAコントローラ11は、バースト転送モードでのデータ転送を開始する(時刻T12)。なお、本例では、DMAコントローラ11に予め設定されているバースト転送モードでのデータ転送回数が6回であるとする。また、図3においてSAはデータ読み出しに係るアドレス(source address)を示し、DAはデータ書き込みに係るアドレス(destination address)を示している。
【0036】
DMAコントローラ11によるバースト転送モードでのデータ転送中に、モジュール13がデータリクエスト信号DRQを“H”から“L”にすると、データリクエスト信号制御回路21は、出力するデータリクエスト信号DRQPを“L”にする(時刻T13)。
【0037】
データリクエスト信号DRQPが“H”から“L”になることで、バス出力信号制御回路26は、DMAコントローラ11が保持しているバスBUSのバス権を放す処理を行う。この処理では、DMAコントローラ11が実行しているバースト転送モードでのデータ転送の状態にかかわらず、バス出力信号制御回路26は、バスBUSに対して出力するバス権要求信号BRQを“L”にし、DMA動作終了信号DEOを“H”にする(時刻T14)。これにより、DMAコントローラ11によるバスBUSへの出力が停止される。
【0038】
また、データリクエスト信号DRQPが“H”から“L”になったとき、DMA転送補助回路12のアドレス保持回路24は、そのときのアドレスバスADDPにおけるアドレスを保持する。それとともに、DMA転送補助回路12のカウンタ22は、DMAコントローラ11が書き込みを指示したデータの数のカウント動作を開始する。書き込みが指示されたデータの数は、モジュール書き込み信号MWRPを参照してカウントし、DMAコントローラ11によるバースト転送モードでのデータ転送が終了するまで、すなわちDMA動作終了信号DEOPが“H”になるまで継続して行う。図3に示す例では、データリクエスト信号DRQPが“L”になった後に3回書き込みが行われて(波形31)、バースト転送モードでのデータ転送が終了しているので、カウンタ22のカウンタ値W_CNTは“3”となっている。
【0039】
そして、DMAコントローラ11によるバースト転送モードでのデータ転送が終了し、DMA動作終了信号DEOPが“H”になると、DMA転送補助回路12の再設定回路25は、アドレス値及び転送回数をDMAコントローラ11に再設定する。再設定されるアドレス値はアドレス保持回路24に保持されているアドレス値であり、転送回数はカウンタ22のカウンタ値W_CNTである。
【0040】
ここで、DMAコントローラ11によるバースト転送モードでのデータ転送中にデータリクエスト信号DRQPが“H”から“L”になると、バースト転送モードでのデータ転送が終了するまではデータリクエスト信号DRQPは“L”に維持される。つまり、バースト転送モードでのデータ転送の終了前に、データリクエスト信号DRQが再び“H”となっても(時刻T15)、データリクエスト信号DRQPは“L”のままである。
【0041】
その後、DMAコントローラ11によるバースト転送モードでのデータ転送が終了してDMA動作終了信号DEOPが“H”になると、データリクエスト信号DRQに応じたDMAによるデータ転送が可能になる。図3に示す例では、時刻T15においてデータリクエスト信号DRQが再び“H”となっているために、DMA動作終了信号DEOPが“H”になってすぐにデータリクエスト信号DRQPが“H”になる。
【0042】
そして、前述と同様にして、バス権要求信号BRQ(BRQP)によるバス権の要求、及びバス権獲得信号BGR(BGRP)によるバス権の獲得の通知が行われて、DMAコントローラ11によるデータ転送が開始される(時刻T16)。これにより、データリクエスト信号DRQが“H”から“L”になることによってDMAコントローラ11によるバスBUSへの出力が停止された後の残りのデータ転送(転送回数3回)が実行される。
【0043】
第1の実施形態によれば、DMAコントローラ11によるバースト転送モードでのデータ転送中に、データリクエスト信号DRQが“H”から“L”になると、バスBUSのバス権を放棄する処理が行われる。また、データ転送に係るアドレスが保持されるとともに、バースト転送モードでのデータ転送終了までの転送回数がカウントされる。そして、DMAコントローラ11によるバースト転送モードでのデータ転送が終了すると、保持されているアドレス及びカウントされた転送回数がDMAコントローラ11に設定され、データリクエスト信号DRQに応じてDMAによるデータ転送が実行される。
【0044】
これにより、バースト転送モードでのデータ転送中にデータリクエスト信号DRQが“H”から“L”になっても、“L”になったタイミングからのデータを再送することができ、バースト転送モードを利用したデータ転送を行うことが可能になる。また、データリクエスト信号DRQが“H”から“L”になったときにDMAコントローラ11が保持しているバスBUSのバス権を速やかに放棄することで、バスBUSが不要に占有されることを防止し、バスBUSにおける転送効率の向上を図ることができる。
【0045】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
以下に説明する第2の実施形態は、一例としてARM社のAMBA規格でのAHBバスを利用する情報処理システムに、半導体装置(DMA転送補助回路)を適用したものである。図4は、第2の実施形態における半導体装置(DMA転送補助回路)を有する情報処理システムの構成例を示すブロック図である。図4において、41はDMAコントローラ、42はDMA転送補助回路、43はモジュール、44はメモリ(RAM)、及びAHBはAHBバスである。
【0046】
なお、図4においても、DMAによるデータ転送動作に係る特徴的構成を図示しており、本実施形態における情報処理システムの構成がこれに限定されるものではない。例えば、図示しないCPUを有することはいうまでもなく、またAHBバスに接続可能な他のモジュール(リソース)等を有していても良い。
【0047】
DMAコントローラ41、DMA転送補助回路42、モジュール43、メモリ44、及びAHBバスAHBは、第1の実施形態におけるDMAコントローラ11、DMA転送補助回路12、モジュール13、メモリ14、及びバスBUSにそれぞれ対応する。また、各部41〜44、AHBが有する機能等も、第1の実施形態における各部11〜14、BUSが有する機能等と同様であるので、その説明は省略する。
【0048】
DMA転送補助回路42には、バス権要求信号HBUSREQ_DO、転送タイプ信号HTRANS_DO、アドレスバスHADDR_DO、書き込みデータバスHWDATA_DO、書き込み信号HWRITE_DO、及びデータ転送終了信号DEOP_DOがDMAコントローラ41から入力される。DMAコントローラ41には、データリクエスト信号DREQ_DI及びバス権獲得信号HGRANT_DIがDMA転送補助回路42から入力され、読み出しデータバスHRDATAがバスAHBを介して入力される。
【0049】
また、DMA転送補助回路42は、バス権要求信号HBUSREQ、転送タイプ信号HTRANS、アドレスバスHADDR、書き込みデータバスHWDATA、書き込み信号HWRITE、及びデータ転送終了信号DEOPをバスAHBに対して出力する。DMA転送補助回路42には、データリクエスト信号DREQがモジュール43から入力され、バス権獲得信号HGRANTがバスAHBを介して図示しないアービタ(調停回路)等から入力される。
【0050】
本実施形態では、データリクエスト信号DREQ、DREQ_DI、バス権要求信号HBUSREQ、HBUSREQ_DO、及びバス権獲得信号HGRANT、HGRANT_DIは、アクティブにされるとき“H”にされ、インアクティブ時は“L”とする。また、データ転送終了信号DEOP、DEOP_DOは、アクティブにされるとき“H”にされ、インアクティブ時は“L”とする。転送タイプ信号HTRANS、HTRANS_DOは、次に転送するデータがあるか否かを示す信号であり、次に転送するデータがある場合には第1の状態(「N」とする)にされ、次に転送するデータがない場合には第2の状態(「I」とする)にされる。書き込み信号HWRITE、HWRITE_DOは、“H”のとき書き込み転送方向(モジュール43又はメモリ44等へのデータ書き込み)であるとし、“L”のとき読み出し転送方向(モジュール43又はメモリ44等からのデータ読み出し)であるとする。なお、モジュール43及びメモリ44は、アドレスバス、書き込みデータバス、読み出しデータバス、及び書き込み信号等を介してバスAHBに接続されている。
【0051】
図5は、DMA転送補助回路42の構成例を示す図である。DMA転送補助回路42は、データリクエスト信号制御回路51、カウンタ52、アドレス保持回路54、再設定回路55、及びバス出力信号制御回路56を有する。
【0052】
データリクエスト信号制御回路51は、モジュール43から入力されるデータリクエスト信号DREQに基づいて、データリクエスト信号DREQ_DIをDMAコントローラ41に出力する。データリクエスト信号制御回路51は、通常、入力されるデータリクエスト信号DREQと同じレベルのデータリクエスト信号DREQ_DIを出力する。ただし、データリクエスト信号制御回路51は、DMAコントローラ41によるバースト転送モードでのデータ転送中にデータリクエスト信号DREQが“L”になると、バースト転送モードでのデータ転送終了までデータリクエスト信号DREQ_DIを“L”に維持する。なお、DMAによるバースト転送モードでのデータ転送終了は、例えば再設定回路55から出力される再設定動作が終了したことを示す信号SFを用いて検知すれば良い。
【0053】
カウンタ52は、カウンタ回路53を有し、そのカウンタ値W_CNTを再設定回路55に出力する。カウンタ52は、DMAコントローラ41によるバースト転送モードでのデータ転送中にデータリクエスト信号DREQが“L”になると、それからバースト転送モードでのデータ転送終了までにDMAコントローラ41が書き込み(又は読み出し)を指示したデータの数をカウントする。カウンタ52は、例えば入力されるデータリクエスト信号DREQ_DIが“H”から“L”に変化すると、書き込み信号HWRITE_DOに基づいてデータの書き込み(又は読み出し)が指示された回数をカウンタ回路53によりカウントする。カウンタ回路53は、初期値を0とし、データリクエスト信号DREQ_DIが“L”に変化した後に、データの書き込み(又は読み出し)の指示が検知される毎に値が1ずつ増加される。そして、カウンタ52は、入力されるデータ転送終了信号DEOP_DOが“H”になるとカウント動作を終了する。
【0054】
アドレス保持回路54は、データリクエスト信号制御回路51より入力されるデータリクエスト信号DREQ_DIが“H”から“L”になってから最初のアドレス値(ライトアドレス又はリードアドレス)を保持して出力する。アドレス保持回路54は、例えば入力されるデータリクエスト信号DREQ_DIが“H”から“L”に変化したときに、アドレスバスHADDR_DOより入力されるアドレス値を保持し、保持したアドレス値を再設定回路55に出力する。
【0055】
再設定回路55は、カウンタ52からカウンタ値W_CNTが入力されるとともに、アドレス保持回路54から保持されたアドレス値が入力される。再設定回路55は、DMAコントローラ41から入力されるデータ転送終了信号DEOP_DOが“H”になると、カウンタ52及びアドレス保持回路54から供給されるアドレス値及びカウンタ値をアドレス値及び転送回数としてDMAコントローラ41に設定する。
【0056】
バス出力信号制御回路56は、DMAコントローラ41とバスAHBとの間で授受される各信号を制御する。バス出力信号制御回路56は、入力されるデータリクエスト信号DREQ_DIが“H”のとき、DMAコントローラ41から入力される信号をそのままバスAHBに出力し、バスAHBから入力される信号をそのままDMAコントローラ41に出力する。すなわち、データリクエスト信号DREQ_DIが“H”のとき、DMAコントローラ41から入力される信号HWRITE_DO、HADDR_DO、DEOP_DOが、信号HWRITE、HADDR、DEOPとしてバスAHBに対して出力される。同様に、データリクエスト信号DREQ_DIが“H”のとき、DMAコントローラ41から入力される信号HBUSREQ_DO、HTRANS_DO、HWDATA_DOが、信号HBUSREQ、HTRANS、HWDATAとしてバスAHBに対して出力される。また、バスAHBより入力される信号HGRANTが、信号HGRANT_DIとしてDMAコントローラ41に入力される。
【0057】
また、バス出力信号制御回路56は、入力されるデータリクエスト信号DREQ_DIが“H”から“L”に変化すると、DMAコントローラ41が保持しているバスAHBのバス権を放す(放棄する)処理を行う。バス出力信号制御回路56は、バス権を放した(放棄した)後、DMAコントローラ41からバスAHBへのアクセスを切断する。例えば、バス出力信号制御回路56は、データリクエスト信号DREQ_DIが“H”から“L”に変化すると、バス権を放す(放棄する)ためにバス権要求信号HBUSREQを“L”にするとともに、転送タイプ信号HTRANSを第2の状態「I」にする。そして、バス権を放す(放棄する)と、バス出力信号制御回路56は、出力するデータ転送終了信号DEOPを“H”にし、バスAHBを介したDMAによるデータ転送を終了する。
【0058】
図6は、第2の実施形態におけるDMAによるデータ転送動作の一例を示すタイミングチャートである。図6においては、図4及び図5に示した信号名と同じ信号名を用いて各信号を示している。また、図6において、D_CNTは、DMAコントローラ41内のレジスタ等に格納されているDMAによるバースト転送モードでの残りのデータ転送回数を示しており、W_CNTはDMA転送補助回路42のカウンタ52におけるカウンタ値を示している。
【0059】
図6においては、図3に示した第1の実施形態と同様の動作を例示している。すなわち、DMAコントローラ41に予め設定されているバースト転送モードでのデータ転送回数が6回であり、バースト転送モードでのデータ転送中にデータリクエスト信号DREQが“L”になった後に3回書き込みが行われる場合を一例として示している。図6に示す第2の実施形態におけるDMAによるデータ転送動作と、図3に示した第1の実施形態での動作とは、第2の実施形態では次のデータがあるか否かを転送タイプ信号として出力する点が異なるが、基本的な動作は同様であるので詳細な説明は省略する。図6に示すタイミングチャートにおいて、時刻T61、T62、T63、T64は、図3に示した時刻T11、T13、T15、T16にそれぞれ対応する。
【0060】
第2の実施形態によれば、第1の実施形態と同様に、DMAコントローラ41によるバースト転送モードでのデータ転送中に、データリクエスト信号DREQが“H”から“L”になると、バスAHBのバス権を放棄する処理が行われる。また、バースト転送モードでのデータ転送が終了すると、アドレス及び残りの転送回数がDMAコントローラ41に設定され、データリクエスト信号DREQに応じてDMAによるデータ転送が実行される。したがって、バースト転送モードでのデータ転送中にデータリクエスト信号DREQが“H”から“L”になっても、“L”になったタイミングからのデータを再送することができ、バースト転送モードを利用したデータ転送を行うことが可能になる。また、データリクエスト信号DREQが“H”から“L”になったときにバスAHBのバス権を速やかに放棄することで、バスAHBが不要に占有されることを防止し、バスAHBにおける転送効率の向上を図ることができる。
【0061】
なお、前述した第1及び第2の実施形態では、DMA転送におけるデータ書き込みに関して主に説明したが、データ読み出しについてもアドレスを保持するともに読み出し回数(転送回数)をカウントすれば良く、同様である。
また、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0062】
11、41 DMAコントローラ
12、42 DMA転送補助回路
13、43 モジュール
14、44 メモリ(RAM)
21、51 データリクエスト信号制御回路
22、52 カウンタ
24、54 アドレス保持回路
25、55 再設定回路
26、56 バス出力信号制御回路
BUS、AHB バス

【特許請求の範囲】
【請求項1】
要求信号によってダイレクトメモリアクセスによるデータ転送の要求を受けると、設定されている所定の転送回数のデータ転送を実行するDMAコントローラと、
前記要求信号として、入力される第1の要求信号に基づく第2の要求信号を前記DMAコントローラに供給する制御回路と、
前記所定の転送回数のデータ転送中に前記第1の要求信号がインアクティブにされた場合に、転送アドレス及び残りの転送回数を取得する情報取得回路と、
前記情報取得回路により取得した前記転送アドレス及び前記残りの転送回数を、前記DMAコントローラが前記所定の転送回数のデータ転送を実行した後に前記DMAコントローラに設定する再設定回路と、を有し、
前記制御回路は、前記所定の転送回数のデータ転送中に前記第1の要求信号がインアクティブにされた場合に、前記第1の要求信号がインアクティブにされてから前記DMAコントローラが前記所定の転送回数のデータ転送を終了するまでは前記第2の要求信号をインアクティブにすることを特徴とする半導体装置。
【請求項2】
前記情報取得回路は、
前記第1の要求信号がインアクティブにされたときの転送アドレスを保持するアドレス保持回路と、
前記第1の要求信号がインアクティブにされてから前記所定の転送回数のデータ転送を終了するまでのデータの転送回数を計数するカウンタと、を有することを特徴とする請求項1記載の半導体装置。
【請求項3】
前記カウンタは、前記DMAコントローラから出力されるデータの書き込み又は読み出しを示す信号を用いて、データの転送回数を計数することを特徴とする請求項2記載の半導体装置。
【請求項4】
前記所定の転送回数のデータ転送中に前記第1の要求信号がインアクティブにされた場合に、前記DMAコントローラから前記データ転送に係るバスへの出力を停止させる出力制御回路を有することを特徴とする請求項1〜3の何れか1項に記載の半導体装置。
【請求項5】
前記出力制御回路は、前記所定の転送回数のデータ転送中に前記第1の要求信号がインアクティブにされた場合に、前記バスに対してデータ転送の終了に係る処理を行うことを特徴とする請求項4記載の半導体装置。
【請求項6】
前記出力制御回路は、前記所定の転送回数のデータ転送中に前記第1の要求信号がインアクティブにされた場合に、前記DMAコントローラが保持している前記バスのバス権を放棄する処理を行うことを特徴とする請求項4記載の半導体装置。
【請求項7】
要求信号によってダイレクトメモリアクセスによるデータ転送の要求を受けると、設定されている所定の転送回数のデータ転送を実行するDMAコントローラと、
前記データ転送に係るバスと、
前記要求信号として、入力される第1の要求信号に基づく第2の要求信号を前記DMAコントローラに供給する制御回路と、
前記所定の転送回数のデータ転送中に前記第1の要求信号がインアクティブにされた場合に、前記DMAコントローラが保持している前記バスのバス権を放棄する処理を行う出力制御回路とを有することを特徴とする半導体装置。
【請求項8】
DMAコントローラが要求信号によってダイレクトメモリアクセスによるデータ転送の要求を受けると、設定されている所定の転送回数のデータ転送を実行し、
要求信号のレベルによってダイレクトメモリアクセスによるデータ転送の要求を行う回路との間で実行され、
前記要求信号として、前記回路から入力される第1の要求信号に基づく第2の要求信号を前記DMAコントローラに供給し、
前記所定の転送回数のデータ転送中に前記第1の要求信号がインアクティブにされた場合に、転送アドレス及び残りの転送回数を取得し、
取得した前記転送アドレス及び前記残りの転送回数を、前記DMAコントローラが前記所定の転送回数のデータ転送を実行した後に前記DMAコントローラに再設定し、
前記所定の転送回数のデータ転送中に前記第1の要求信号がインアクティブにされた場合に、前記第1の要求信号がインアクティブにされてから前記DMAコントローラが前記所定の転送回数のデータ転送を終了するまでは前記第2の要求信号をインアクティブにすることを特徴とする制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−137844(P2012−137844A)
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願番号】特願2010−288274(P2010−288274)
【出願日】平成22年12月24日(2010.12.24)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】