JP2005135098A - ダイレクト・メモリ・アクセス・システム - Google Patents

ダイレクト・メモリ・アクセス・システム Download PDF

Info

Publication number
JP2005135098A
JP2005135098A JP2003369204A JP2003369204A JP2005135098A JP 2005135098 A JP2005135098 A JP 2005135098A JP 2003369204 A JP2003369204 A JP 2003369204A JP 2003369204 A JP2003369204 A JP 2003369204A JP 2005135098 A JP2005135098 A JP 2005135098A
Authority
JP
Japan
Prior art keywords
transfer
data
signal
register
memory
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
JP2003369204A
Other languages
English (en)
Inventor
Hiroyuki Furuya
浩之 古屋
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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2003369204A priority Critical patent/JP2005135098A/ja
Publication of JP2005135098A publication Critical patent/JP2005135098A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】 複数のレジスタセットを備えることなく、また、メモリ上に複数のDMA転送領域が登録された情報テーブルを有することなく、DMA転送を停止させないでメモリへのDMA転送を行う。
【解決手段】 ダイレクト・メモリ・アクセス・コントローラ10は、任意の転送データ数が設定されるレジスタ18と、前記メモリへ転送された転送データ数を計数する転送データ数カウンタ15cと、前記レジスタに設定された前記転送データ数と前記転送データ数カウンタによって計数された前記転送データ数とが一致したときに、一致信号を出力する比較機19と、メモリへのデータ転送の終了時および一致信号が入力されたときに割込信号を出力する割込発生回路17と、を備える。CPU20は、転送終了信号による割込信号が入力される前に、一致信号による割込信号によってメモリ50のデータを読み出す。
【選択図】 図2

Description

本発明は、ダイレクト・メモリ・アクセス・システムに関する。
従来、マイクロコンピュータシステムや通信システムなどにおいて、CPUに代わって各種入出力機器とメモリ間のデータ転送を制御するダイレクト・メモリ・アクセス制御装置(以下、DMAコントローラと称す)が広く用いられている。
このようなDMAコントローラの多くは、転送元となるIOモジュールを設定するためのレジスタ、転送先のメモリアドレスを設定するためのレジスタ、転送データ回数を設定するためのレジスタなど、DMA転送のための各種レジスタを有している。
そして、DMAコントローラは、IOモジュールからDMA要求信号が入力されると、上記各種レジスタに設定された転送情報に従って、IOモジュールからメモリへのデータ転送を開始させ、DMAコントローラの各種レジスタに設定されたデータ(例えば、1フレーム)の転送の終了時に、割込信号を出力してデータ転送が終了したことをCPUに通知する。
CPUは、この割込信号によって他の処理を中断し、転送先のメモリに転送されたデータを読み出す処理を行う。そして、CPUはデータを読み出した後に、DMAコントローラのレジスタに次の転送用の設定を行うことで転送の許可が行われる。
しかし、上記DMAコントローラは、各種レジスタに設定されたデータの転送が終了した後に割込信号を出力するので、割込信号が出力されてからCPUによってメモリに転送されたデータが読み出されるまでの間、新たにメモリへのデータ転送を開始させることができない。
このように、DMAコントローラから割込信号が出力されてからCPUによってメモリに転送されたデータが読み出されるまでの間、メモリへのデータ転送ができないため、受信データの転送速度が低下してしまう。この結果、IOモジュールによって高速かつ大容量のデータが受信されると、オーバーフローが発生し、受信されたデータをCPUが取りこぼしてしまうといった問題が発生する。
そこで、上記した転送元となるIOモジュールを設定するためのレジスタ、転送先のメモリアドレスを設定するためのレジスタ、転送データ回数を設定するためのレジスタからなるレジスタセットを複数持たせ、1つのレジスタセットによるDMA転送が終了したとき、他のレジスタセットによるDMA転送を開始するようにして、DMA転送を停止させないようにすることが考えられる。
しかし、この場合、レジスタセットが2つ、3つになると、レジスタ数が2倍、3倍となってしまい、回路規模が大きくなってしまう。また、複数のレジスタセットによるDMA転送を切り替えるための回路が必要となり、回路が複雑になってしまうといった問題が生じる。
なお、レジスタセットを複数持たせることなく、DMA転送を停止させないようにしたものとして、メモリ上に複数のDMA転送領域を登録した情報テーブルを備えたものがある(特許文献1参照)。
特開平4−350752号公報 上記した特許文献1に記載の発明は、メモリ上に複数のDMA転送領域を登録した情報テーブルを有し、この情報テーブルの先頭アドレスを設定するアドレスレジスタ、情報テーブルのサイズを示すサイズレジスタ、情報テーブル内でDMA転送が完了した先頭領域を設定するトップレジスタ、情報テーブル内でDMA転送準備が完了した最後尾領域を設定するボトムレジスタおよびこれらの各レジスタを制御する内部プロセッサから成るシリアルデータコントローラなどを備えている。そして、これらの複数のレジスタをインタフェースとしてメモリ内の情報テーブルを更新することにより、DMA転送を停止させることなく、メモリへのDMA転送を行うようになっている。
しかし、上記した特許文献1に記載の発明は、メモリ上にDMA転送領域とは別に複数のDMA転送領域が登録された情報テーブルを有し、この情報テーブルから転送ごとにメモリから情報を取ってくる回路が必要になるため、構成および制御が複雑である。また、メモリ上にDMA転送領域とは別に複数のDMA転送領域を登録した情報テーブルを有しているため、DMA転送領域として使用できる領域が減少してしまう。
このように、上記した回路では、複数のレジスタセットやメモリ上に複数のDMA転送領域が登録された情報テーブルを有することによって、DMA転送を停止させないでメモリへのDMA転送を行うようにしている。
本発明は上記問題に鑑みたもので、ダイレクト・メモリ・アクセス・システムにおいて、複数のレジスタセットを備えることなく、また、メモリ上に複数のDMA転送領域が登録された情報テーブルを有することなく、DMA転送を停止させないでメモリへのDMA転送を行うことを目的とする。
上記目的を達成するため、請求項1に記載の発明では、メモリ(50)へのデータ転送の制御を行い、前記メモリへのデータ転送の終了時に割込信号を出力するダイレクト・メモリ・アクセス・コントローラ(10)と、前記ダイレクト・メモリ・アクセス・コントローラの前記割込信号に応じて前記メモリへ転送された転送データを読み出す制御回路(20)と、を備えたダイレクト・メモリ・アクセス・システムであって、前記ダイレクト・メモリ・アクセス・コントローラは、任意の転送データ数が設定されるレジスタ(18)と、前記メモリへ転送された転送データ数を計数する転送データ数カウンタ(15c)と、前記レジスタに設定された前記転送データ数と前記転送データ数カウンタによって計数された前記転送データ数とが一致したときに、前記割込信号を出力する割込信号発生手段(17、19)と、を備えたことを特徴としている。
このように、前記ダイレクト・メモリ・アクセス・コントローラは、任意の転送データ数が設定されるレジスタ(18)と、前記メモリへ転送された転送データ数を計数する転送データ数カウンタ(15c)と、前記レジスタに設定された前記転送データ数と前記転送データ数カウンタによって計数された前記転送データ数とが一致したときに、前記割込信号を出力する割込信号発生手段(17、19)と、を備えたので、複数のレジスタセットを備えることなく、また、メモリ上に複数のDMA転送領域が登録された情報テーブルを有することなく、DMA転送を停止させないでメモリへのDMA転送を行うことができる。
また、請求項2に記載の発明のように、前記レジスタ(18)に設定される前記転送データ数は、前記制御回路によって設定されるので、前記レジスタ(18)に設定される前記転送データ数を容易に変更することができる。
また、請求項3に記載の発明のように、前記割込信号発生手段(17、19)は、前記メモリへのデータ転送の終了時に出力する前記割込信号と、前記レジスタに設定された前記転送データ数と前記転送データ数カウンタによって計数された転送データ数とが一致したときに出力する前記割込信号を出力可能と構成することができる。
なお、上記各手段の括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示すものである。
(第1実施形態)
本発明の一実施形態に係るダイレクト・メモリ・アクセス・システムの構成を図1に示す。図に示すように、ダイレクト・メモリ・アクセス・システムは、DMAコントローラ10、CPU20、切替回路40、メモリ50、IOモジュール60、70を備えている。そして、DMAコントローラ10、CPU20、メモリ50、IOモジュール60、70は、それぞれ内部バス(データバスおよびアドレスバス)によって接続されており、この内部バスは、切替回路40によって、CPU20とDMAコントローラ10の接続が切替られるようになっている。また、メモリ50には、DMAコントローラ10およびCPU20から図示しない制御信号(リード信号、ライト信号)が入力されるようになっている。具体的には、メモリ50には、DMAコントローラ10からライト信号が入力され、CPU20からリード信号が入力される。
まず、図1に示した構成における作動について簡単に説明する。
IOモジュール60、70は、所定のビット幅(例えば、8ビット)の内部レジスタを有し、入出力機器から入力されるシリアルデータをパラレルデータに変換して内部レジスタに保持する。そして、内部レジスタにパラレルデータを保持すると、DMAコントローラ10に対してDMA要求信号DREQ0、DREQ1を出力する。
そして、例えば、IOモジュール60からDMAコントローラ10にDMA要求信号DREQ0が入力されると、DMAコントローラ10は、バスアービタ30に対してバス要求信号BREQを出力する。
バスアービタ30は、DMAコントローラ10から入力されるバス要求信号BREQと、CPU20から入力されるバス要求信号BREQとに基づいて、DMAコントローラ10またはCPU20に対してバス許可信号BACKを出力するとともに、切替回路40の切り替えを行う。
例えば、バスアービタ30は、CPU20がバスを使用していない場合にDMAコントローラ10からバス要求信号BREQが入力されると、DMAコントローラ10に対してバス許可信号BACKを出力するとともに、切替回路40によって内部バスをDMAコントローラ10側に接続させる。
DMAコントローラ10は、このバス許可信号BACKを受信すると、IOモジュール60に対してDMA許可信号DACK0を送信してIOモジュール60の内部レジスタに保持した転送元データをデータバスに出力させる。また、DMAコントローラ10は、メモリ50の転送先メモリアドレスを生成して指定するとともに、メモリ50にライト信号を出力する。そして、IOモジュール60の内部レジスタに保持された転送元データは、メモリ50のDMAコントローラ10によって指定された転送先メモリアドレスに転送される。
このように、IOモジュール60の内部レジスタにデータが保持される毎に、IOモジュール60からDMA要求信号DREQ0が出力され、DMAコントローラ10からDMA許可信号DACK0が送信されると、IOモジュール60の内部レジスタに保持されたデータは、DMAコントローラ10によって生成される転送先メモリアドレスに順次転送される。
そして、IOモジュール60からメモリ50へ所定数の転送データが転送されると、DMAコントローラ10は、CPU20に対して割込信号を出力する。CPU20は、この割込信号によって他の処理を中断し、転送先のメモリに転送されたデータを読み出す。
このように、DMAコントローラ10は、IOモジュール60からメモリ50へのDMA転送の制御を行う。
次に、図2を参照して、DMAコントローラ10の構成について説明する。図に示すように、DMAコントローラ10は、DMA転送要求/許可判定回路11、起動制御回路13、アドレスカウンタ回路14、転送回数設定回路15、バスインタフェース16、割込発生回路17、割込転送数設定レジスタ18および比較器19を有している。なお、DMAコントローラ10は、複数のチャンネルを有し、これらのチャンネル毎に独立して制御を行うことができるようになっている。
起動制御回路13は、転送元となるIOモジュールを設定するためのレジスタ13aを有している。なお、このレジスタ13aには、IOモジュール60、70とチャンネルの割り当てを設定するためのビット、転送幅を設定するためのビット、DMA転送開始の許可を設定するためのビットが割り当てられている。このレジスタ13aは、CPU20からバスインタフェース16を介して設定される。
アドレスカウンタ回路14は、転送先メモリの先頭アドレスを設定するためのレジスタ14aと、このレジスタ14aに設定された先頭アドレスからカウントアップする転送先アドレスカウンタ14bを有している。この転送先アドレスカウンタ14bは、DMA転送要求/許可判定回路11からのカウントアップを指示する信号が入力されると、図示しないクロックに同期してカウントアップし、この転送先アドレスカウンタ14bのカウント値は、転送先メモリのアドレスとしてバスインタフェースから出力される。
転送回数設定回路15は、転送データの転送回数を設定するためのレジスタ15aと、このレジスタ15aに設定された転送回数からカウントダウンする転送回数カウンタ15bと、転送済みの転送データ数をカウントする転送データ数カウンタ15cを有している。なお、転送回数カウンタ15bは、DMA転送要求/許可判定回路11からのカウントダウンを指示する信号が入力されると、図示しないクロックに同期してカウントダウンし、転送データ数カウンタ15cは、DMA転送要求/許可判定回路11からカウントアップを指示する信号が入力されると、図示しないクロックに同期してカウントアップする。
そして、転送回数設定回路15は、転送データ数カウンタ15cによってカウントされた転送済みの転送データ数をパラレル信号として出力するとともに、転送データ数カウンタ15cによってカウントされた転送済みの転送データ数と転送データの転送回数を設定するためのレジスタ15aに設定された転送データ数とが一致すると、転送が終了したことを示す転送終了信号を出力する。
なお、本実施形態において、起動制御回路13における転送元となるIOモジュールを設定するためのレジスタ13a、アドレスカウンタ回路14における転送先メモリの先頭アドレスを設定するためのレジスタ14a、転送回数設定回路15における転送データの転送回数を設定するためのレジスタ15aがレジスタセットに相当する。すなわち、本実施形態におけるダイレクト・メモリ・アクセス・システムのレジスタセットは1つのみとなっている。
割込転送数設定レジスタ18は、任意の割込転送数を設定するためのレジスタで、このレジスタに設定された割込転送数はパラレル信号として出力される。なお、この割込転送数設定レジスタ18は、CPU20からバスインタフェース16を介して設定される。
比較器19には、割込転送数設定レジスタ18に設定された割込転送数および転送回数設定回路15からの転送データ数が入力される。比較器19は、割込転送数設定レジスタ18に設定された割込転送数と転送回数設定回路15から入力される転送データ数の下位6ビットを比較し、上記割込転送数と上記転送データ数の下位6ビットが一致した場合に一致信号を出力する。例えば、割込転送数設定レジスタ18の設定値として20hが設定され(以下、hは16進数を意味する)、転送回数設定回路15のレジスタに1000hが設定された場合、転送回数設定回路15から入力される転送データ数が、20h、40h、60h、…、1000hのとき、比較器19は一致信号を出力する。すなわち、比較器19は、割込転送数設定レジスタ18に設定された割込転送数(20h)毎に、一致信号を出力する。
割込発生回路17は、転送回数設定回路15からの転送終了信号と比較器19からの一致信号のオアをとって割込信号を生成する。この割込信号は、CPU20の割込信号用の専用端子に入力される。また、割込発生回路17は、割込信号の要因が転送終了信号であるか否かを識別するための割込要因レジスタ17aを有している。なお、この割込要因レジスタ17aは、CPU20からバスインタフェース16を介して読み出される。
バスインタフェース回路16は、内部バス(データバス、アドレスバス)のドライブなどを行う。
DMA転送要求/許可判定回路11は、DMA要求信号DREQ0、DREQ1などのDMA転送要求に応じて、DMA転送の許可判定を行う。なお、DMA転送の許可は、データ許可信号DACK0、DACK1の送信により行う。また、起動制御回路13、アドレスカウンタ回路14、転送回数設定回路15の各種レジスタへのデータの書き込み、読み出しを行い、IOモジュール60、70からメモリ50へのデータ転送の制御を行う。
次に、図3を参照して、本発明に係るダイレクト・メモリ・アクセス・システムのCPU20の処理について説明する。電源が投入されると、CPU20は、内部メモリに記憶されたプログラムに従って、所定の初期化処理を行った後、図3に示す処理を開始する。
まず、起動制御回路13における転送元となるIOモジュールを設定するためのレジスタ13aの設定を行う。例えば、チャンネル1に対しIOモジュール60を割り当て、チャンネル2に対してIOモジュール70を割り当て、転送幅としては1バイトを設定する。なお、DMA転送開始の許可を設定するためのビットの設定は、DMA転送開始を許可しない設定とする(S100)。
次に、アドレスカウンタ回路14における転送先メモリの先頭アドレスを設定するためのレジスタ14aの設定を行う。例えば、転送先メモリの先頭アドレスとして0hを設定する(S101)。
次に、転送回数設定回路15における転送データの転送回数を設定するためのレジスタ15aの設定を行う。例えば、転送データの転送回数として1000hを設定する(S102)。
次に、割込転送数設定レジスタ18の設定を行う。例えば、割込転送数として20hを設定する(S103)。
次に、起動制御回路13における転送元となるIOモジュールを設定するためのレジスタ13aのDMA転送開始の許可を設定するための設定を、DMA転送開始を許可する設定にすると、起動制御回路13からDMA転送開始の許可信号が出力される(S104)。
このようにして、DMA転送要求/許可判定回路11は、DMA転送開始が許可された状態となる。
ここで、IOモジュール60によって受信したデータをメモリ50へ転送する場合を例に、DMA転送要求/許可判定回路11の処理について説明する。
まず、IOモジュール60からDMA転送要求/許可判定回路11にDMA要求信号DREQ0が入力されると、DMA転送要求/許可判定回路11は、バスアービタ30に対してバス要求信号BREQを出力する。そして、バスアービタ30は、CPU20がバスを使用していない場合、DMA転送要求/許可判定回路11にバス許可信号BACKを送信するとともに、切替回路40によって内部バスをDMAコントローラ10側に接続させる。
DMA転送要求/許可判定回路11は、このバス許可信号BACKを受信すると、IOモジュール60に対してDMA許可信号DACK0を送信する。
このDMA許可信号DACK0により、IOモジュール60の内部レジスタに保持された転送元データがデータバスに出力され、転送先アドレスカウンタ14bからは、S100においてアドレスカウンタ回路14のレジスタ14aに設定された転送先メモリの先頭アドレスが出力される。
次に、DMA転送要求/許可判定回路11は、メモリ50にライト信号を出力すると、図4に示すように、メモリ50のアドレス0に、1個目のデータが書き込まれる。
次に、DMA転送要求/許可判定回路11は、転送先アドレスカウンタ14bにカウントアップを指示する信号を出力し、転送回数設定回路15の転送回数カウンタ15bにカウントダウンを指示する信号を出力し、転送データ数カウンタ15cにカウントアップを指示する信号を出力する。これにより、転送先アドレスカウンタ14bのカウント値は0から1にカウントアップし、転送回数カウンタ15bのカウント値は1000hからFFFhにカウントダウンし、転送データ数カウンタ15cのカウント値は0から1にカウントアップする。
そして、IOモジュール60の内部モジュールに新たな転送元データが保持されると、IOモジュール60からDMA転送要求/許可判定回路11にDMA要求信号DREQ0が入力される。
DMA転送要求/許可判定回路11は、バスアービタ30からバス許可信号BACKが入力されている場合、IOモジュール60に対してDMA許可信号DACK0を送信する。
このDMA許可信号DACK0により、IOモジュール60の内部レジスタに新たに保持された転送元データがデータバスに出力され、転送先アドレスカウンタ14bからは、アドレス1が出力される。
次に、DMA転送要求/許可判定回路11は、メモリ50にライト信号を出力すると、図4に示すように、メモリ50のアドレス1に、2個目のデータが書き込まれる。
次に、DMA転送要求/許可判定回路11は、転送先アドレスカウンタ14bにカウントアップを指示する信号を出力し、転送回数設定回路15の転送回数カウンタ15bにカウントダウンを指示する信号を出力し、転送データ数カウンタ15cにカウントアップを指示する信号を出力する。これにより、転送先アドレスカウンタ14bのカウント値は1から2にカウントアップし、転送回数カウンタ15bのカウント値はFFFhからFFEhにカウントダウンし、転送データ数カウンタ15cのカウント値は1から2にカウントアップする。
同様の処理を繰り返し、転送先アドレスカウンタ14bがアドレス1Fhまでカウントアップし、メモリ50のアドレス1Fhまでデータが書き込まれると、転送データ数カウンタ15cが20hまでカウントアップする。
そして、転送データ数カウンタ15cが20hまでカウントアップすると、転送データ数カウンタ15cのカウント値と割込転送数設定レジスタ18の設定値とが一致し、比較器19から一致信号が出力される。すなわち、割り込み発生回路17から一致信号による1回目の割込信号が出力される。
同様に、転送先アドレスカウンタ14bがアドレス3Fhまでカウントアップし、メモリ50のアドレス3Fhまでデータが書き込まれると、転送データ数カウンタ15cのカウント値と割込転送数設定レジスタ18の設定値とが一致し、比較器19から一致信号が出力される。すなわち、割り込み発生回路17から一致信号による2回目の割込信号が出力される。
同様に、転送回数カウンタ15bのカウント値が0となるまで同様の処理を繰り返し、転送データ数カウンタ15cのカウント値が60h、…、1000hになると、比較器19から一致信号が出力される。
そして、転送回数カウンタ15bのカウント値が0までカウントダウンすると、転送回数設定回路15から転送終了信号が出力される。すなわち、図4に示すように、メモリ50のアドレスFFFhにデータが書き込まれ、転送回数設定回路15から転送終了信号による割込信号が出力される。また、割込要因レジスタ17aは、転送回数設定回路15からの転送終了信号によって、割込信号の要因が転送終了信号であることを示す設定となる。
このように、メモリ50におけるアドレス1Fhまでデータが転送されると、一致信号による1回目の割込信号が発生し、アドレス3Fまでデータが転送されると、一致信号による2回目の割込信号が発生する。同様に、32個のデータが転送される度に一致信号による割込信号が発生し、アドレスFFFhまでデータが転送されたとき、すなわち、データ転送の終了時に、DMAコントローラ10から転送終了信号による割込信号が出力される。
つまり、CPU20には、割込転送数設定レジスタ18に設定された割込転送数(ここでは20h)毎に出力される一致信号を要因とする割込信号と、転送終了信号を要因とする割込信号が入力される。
また、メモリ50のアドレスFFFhまでデータが転送された後、IOモジュール60からDMA要求信号DREQ0が入力されない場合、メモリ50へのDMA転送は終了する。また、IOモジュール60からDMA転送要求/許可判定回路11に引き続きDMA要求信号DREQ0が入力されている場合、DMA転送を停止することなく、再度アドレス0からデータ転送を繰り返す。
すなわち、メモリ50のアドレスFFFhまでデータが転送されたとき、メモリ50のアドレス0〜アドレス1Fhに転送されたデータは、一致信号による1回目の割込信号によってCPU20から既に読み出されているため、DMA転送を停止することなく、再度アドレス0からDMA転送を繰り返すことができる。
図3のCPU20によるDMA転送処理についての説明に戻り、CPU20は、割込信号が入力されたか否かに基づき、割込信号が有るか否かを判定する(S105)。
ここで、割込信号が無いと判定した場合(S105でNOと判定)、割込信号が有ると判定するまでS105の判定を繰り返す。また、S105において、割込信号が有ると判定した場合(S105でYESと判定)、割込発生回路17の割込要因レジスタ17aを読み出し、割込信号の要因が転送終了信号であるか否かに基づき、割込信号が転送終了信号によるものであるか否かを判定する(S106)。
ここで、割込発生回路17の割込要因レジスタ17aを読み出し、割込信号の要因が転送終了信号でないないと判定した場合、すなわち、割込信号が一致信号によるものであると判定した場合(S106でNOと判定)、転送先メモリの先頭アドレスを設定するためのレジスタ14aの設定値および転送データの転送回数を設定するためのレジスタ15aの設定値に基づき、メモリ50に対してリード信号を出力して、メモリ50に転送されたデータを読み出す。
具体的には、図4に示したように、割込信号が一致信号による1回目の割込み信号である場合、アドレス0から1Fhまでのデータを順次読み出し、割込信号が一致信号による2回目の割込み信号である場合、アドレス20から3Fhまでのデータを順次読み出し(S108)、S105〜S107の処理を繰り返す。
また、S106において、割込信号が転送終了信号によるものであると判定した場合(S106でYESと判定)、メモリ50に転送されたFDFhからFFFhまでのデータを順次読み出し(S108)、本処理を終了する。
上記したように、ダイレクト・メモリ・アクセス・コントローラ10は、任意の転送データ数が設定されるレジスタ18と、前記メモリへ転送された転送データ数を計数する転送データ数カウンタ15cと、前記レジスタに設定された転送データ数と転送データ数カウンタによって計数された前記転送データ数とが一致したときに、一致信号を出力する比較機19と、メモリへのデータ転送の終了時および一致信号が入力されたときに割込信号を出力する割込発生回路17と、を備えたので、CPU20は、転送終了信号による割込信号が入力される前に、一致信号による割込信号によってメモリ50のデータを読み出すことができ、DMA転送を停止することなく、かつ、メモリ上のDMA転送領域として使用できる領域を減少させることなく、メモリへのDMA転送を行うことができる。
また、割込転送数設定レジスタ18に任意の割込転送数として設定される転送データ数は、前記制御回路によって設定されるので、割込転送数設定レジスタ18に設定される前記転送データ数を容易に変更することができる。
なお、本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づいて種々なる形態で実施することができる。
例えば、上記実施形態において、比較器19は、割込転送数設定レジスタ18に割込転送数として設定された20hと、転送回数設定回路15から出力される転送データ数の下位6ビットを比較し、一致した場合に一致信号を出力する例について示したが、これは一例であり、一致信号を発生させる周期を考慮して決定すればよい。例えば、割込転送数設定レジスタ18に割込転送数として10hを設定しておき、比較器19によって、割込転送数設定レジスタ18に割込転送数と転送回数設定回路15から出力される転送データ数の下位5ビットを比較するように構成すれば、比較器19から16個のデータ毎に一致信号を出力するようにできる。
また、上記実施形態において、IOモジュール60からメモリ50へデータ転送する例について示したが、IOモジュール70からメモリ50へデータ転送する場合にも適用できる。また、メモリ50の内部において、所定のデータ領域に記憶されたデータを異なるデータ領域に転送させる場合などにも適用できる。
また、上記実施形態において、図3のS106で、割込信号が転送終了信号によるものでないと判定した場合(S106でNOと判定)、CPU20は、割込み転送数の設定を変更するステップを設け、S107へ進むようにしてもよい。
また、上記実施形態において、IOモジュール60、70の2つのIOモジュールを備えた例について示したが、IOモジュールは1つでもよく、3つ以上でもよい。
本発明に係るDMAコントローラの周辺構成を示す図である。 本発明に係るDMAコントローラの構成を示す図である。 CPUによるDMA転送処理を示すフローチャートである。 一致信号と転送終了信号による割込信号についての説明図である。
符号の説明
10…DMAコントローラ、11…DMA転送要求/許可判定回路、
13…起動制御回路、14…アドレスカウンタ回路、15…転送回数設定回路、
16…バスインタフェース、17…割込発生回路、18…割込転送数設定レジスタ、
19…比較器、20…CPU、30…バスアービタ、40…切替回路、50…メモリ、
60、70…IOモジュール。

Claims (3)

  1. メモリ(50)へのデータ転送の制御を行い、前記メモリへのデータ転送の終了時に割込信号を出力するダイレクト・メモリ・アクセス・コントローラ(10)と、前記ダイレクト・メモリ・アクセス・コントローラの前記割込信号に応じて前記メモリへ転送された転送データを読み出す制御回路(20)と、を備えたダイレクト・メモリ・アクセス・システムであって、
    前記ダイレクト・メモリ・アクセス・コントローラは、
    任意の転送データ数が設定されるレジスタ(18)と、
    前記メモリへ転送された転送データ数を計数する転送データ数カウンタ(15c)と、
    前記レジスタに設定された前記転送データ数と前記転送データ数カウンタによって計数された前記転送データ数とが一致したときに、前記割込信号を出力する割込信号発生手段(17、19)と、を備えたことを特徴とするダイレクト・メモリ・アクセス・システム。
  2. 前記レジスタ(18)に設定される前記転送データ数は、前記制御回路によって設定されることを特徴とする請求項1に記載のダイレクト・メモリ・アクセス・システム。
  3. 前記割込信号発生手段(17、19)は、前記メモリへのデータ転送の終了時に出力する前記割込信号と、前記レジスタに設定された前記転送データ数と前記転送データ数カウンタによって計数された転送データ数とが一致したときに出力する前記割込信号を出力可能と構成されていることを特徴とする請求項1または2に記載のダイレクト・メモリ・アクセス・システム。

JP2003369204A 2003-10-29 2003-10-29 ダイレクト・メモリ・アクセス・システム Pending JP2005135098A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003369204A JP2005135098A (ja) 2003-10-29 2003-10-29 ダイレクト・メモリ・アクセス・システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003369204A JP2005135098A (ja) 2003-10-29 2003-10-29 ダイレクト・メモリ・アクセス・システム

Publications (1)

Publication Number Publication Date
JP2005135098A true JP2005135098A (ja) 2005-05-26

Family

ID=34646645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003369204A Pending JP2005135098A (ja) 2003-10-29 2003-10-29 ダイレクト・メモリ・アクセス・システム

Country Status (1)

Country Link
JP (1) JP2005135098A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100775406B1 (ko) 2006-02-28 2007-11-12 후지쯔 가부시끼가이샤 Dma 데이터 전송 장치 및 dma 데이터 전송 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100775406B1 (ko) 2006-02-28 2007-11-12 후지쯔 가부시끼가이샤 Dma 데이터 전송 장치 및 dma 데이터 전송 방법

Similar Documents

Publication Publication Date Title
JP4480427B2 (ja) リソース管理装置
US20020161978A1 (en) Multi-service system-on-chip including on-chip memory with multiple access path
JP2006195714A (ja) リソース管理装置
JP2008009817A (ja) 半導体装置及びデータ転送方法
JP2005135098A (ja) ダイレクト・メモリ・アクセス・システム
KR100899514B1 (ko) 버스트 모드를 지원하는 외부 메모리에 프로세서를 인터페이스하는 방법
JP4245852B2 (ja) ダイレクトメモリアクセス装置
US10540305B2 (en) Semiconductor device
JP4097377B2 (ja) マイクロコンピュータ
JP3201439B2 (ja) ダイレクト・メモリ・アクセス・制御回路
JP3678537B2 (ja) データ転送方法及び装置
JP2002007203A (ja) メモリアクセス制御装置および記憶媒体
JPS59173827A (ja) Dma制御装置
SU1714575A1 (ru) Устройство дл программного управлени технологическим оборудованием
KR100244471B1 (ko) 다이렉트 메모리 엑세스 제어기 및 그 제어방법
JP2667285B2 (ja) 割込制御装置
JPH10116244A (ja) データ転送方法及びデータ転送装置
KR940008479B1 (ko) Bus 중재방법
JP2611191B2 (ja) 入出力制御装置
JP2007128196A (ja) 情報処理システム及び情報処理システムの制御方法
JPH08194660A (ja) Dma転送方法およびシステム
JP2007328647A (ja) Cpu間のデータ転送方式
JP2007188214A (ja) 半導体集積回路装置
JPH04236648A (ja) 直接メモリアクセス制御装置
JPS62120561A (ja) データ転送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20060213

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20081125

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A521 Written amendment

Effective date: 20090128

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Effective date: 20090428

Free format text: JAPANESE INTERMEDIATE CODE: A02