JPH10326248A - Dmaコントローラ - Google Patents
DmaコントローラInfo
- Publication number
- JPH10326248A JPH10326248A JP13390497A JP13390497A JPH10326248A JP H10326248 A JPH10326248 A JP H10326248A JP 13390497 A JP13390497 A JP 13390497A JP 13390497 A JP13390497 A JP 13390497A JP H10326248 A JPH10326248 A JP H10326248A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- signal
- state
- burst
- data
- 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
Links
- 230000004044 response Effects 0.000 claims description 5
- 230000007704 transition Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 7
- 230000008054 signal transmission Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
(57)【要約】
【課題】 バースト転送におけるバースト長を選択的に
切り替えることができ、かつ、小型で高速なDMAコン
トローラを提供する。 【解決手段】 バースト終了デコーダ52は、CPU9
0からのバースト長指定信号s10に基づいてバースト
長のデータ転送の終了を示すバースト終了信号s5を出
力する。ステートマシン10は、このバースト終了信号
s5に基づき、メモリコントローラ80へのデータ転送
の指示タイミングとアドレスカウンタ20のインクリメ
ンタ22及び転送カウンタ30のデクリメンタ32への
更新信号s6の出力タイミングを変える。また、インク
リメンタ22によるアドレス関連情報の更新及びデクリ
メンタ32によるデータ数関連情報の更新は、バースト
長指定信号s10に基づきそれぞれ共通化されたハード
構成で実現する。
切り替えることができ、かつ、小型で高速なDMAコン
トローラを提供する。 【解決手段】 バースト終了デコーダ52は、CPU9
0からのバースト長指定信号s10に基づいてバースト
長のデータ転送の終了を示すバースト終了信号s5を出
力する。ステートマシン10は、このバースト終了信号
s5に基づき、メモリコントローラ80へのデータ転送
の指示タイミングとアドレスカウンタ20のインクリメ
ンタ22及び転送カウンタ30のデクリメンタ32への
更新信号s6の出力タイミングを変える。また、インク
リメンタ22によるアドレス関連情報の更新及びデクリ
メンタ32によるデータ数関連情報の更新は、バースト
長指定信号s10に基づきそれぞれ共通化されたハード
構成で実現する。
Description
【0001】
【発明の属する技術分野】本発明は、バースト転送をサ
ポートするDMA(Direct Memory Access )コントロ
ーラに関する。
ポートするDMA(Direct Memory Access )コントロ
ーラに関する。
【0002】
【従来の技術】従来、DMAには、DMAコントローラ
の指示に基づきメモリコントローラ等の転送実行手段が
複数バイト単位でデータの転送を行うバースト転送があ
った。このバースト転送では、DMAコントローラが、
メモリコントローラ等の転送実行手段に対し、例えば転
送先アドレスを指定し、転送実行を指示することによっ
て、転送実行手段が、所定の転送元アドレスから例えば
8バイトというような所定データ長のデータを読み出
し、DMAコントローラによって指定された転送先アド
レスを先頭とするアドレスへまとめて転送する。以下、
転送実行手段が1度にまとめて転送する所定データ長を
「バースト長」という。
の指示に基づきメモリコントローラ等の転送実行手段が
複数バイト単位でデータの転送を行うバースト転送があ
った。このバースト転送では、DMAコントローラが、
メモリコントローラ等の転送実行手段に対し、例えば転
送先アドレスを指定し、転送実行を指示することによっ
て、転送実行手段が、所定の転送元アドレスから例えば
8バイトというような所定データ長のデータを読み出
し、DMAコントローラによって指定された転送先アド
レスを先頭とするアドレスへまとめて転送する。以下、
転送実行手段が1度にまとめて転送する所定データ長を
「バースト長」という。
【0003】つまり、CPU等の制御手段から指定され
たバイト数の一連のデータ転送を実行する場合、DMA
コントローラは、上述のようなバースト長単位で転送先
アドレスを更新して指定し、転送実行を繰り返し指示す
る。このとき、DMAコントローラは、制御手段から指
定されたバイト数をバースト長単位で更新することによ
って一連のデータ転送の終了を判断する。
たバイト数の一連のデータ転送を実行する場合、DMA
コントローラは、上述のようなバースト長単位で転送先
アドレスを更新して指定し、転送実行を繰り返し指示す
る。このとき、DMAコントローラは、制御手段から指
定されたバイト数をバースト長単位で更新することによ
って一連のデータ転送の終了を判断する。
【0004】通常、DMAコントローラは、バースト長
に合わせて転送先アドレスを更新するアドレスカウンタ
と、バースト長の単位で転送されたデータ数を更新する
転送カウンタと、それらアドレスカウンタ及び転送カウ
ンタの更新タイミングを判断し、転送実行手段への転送
実行指示を行うステートマシンを備えている。
に合わせて転送先アドレスを更新するアドレスカウンタ
と、バースト長の単位で転送されたデータ数を更新する
転送カウンタと、それらアドレスカウンタ及び転送カウ
ンタの更新タイミングを判断し、転送実行手段への転送
実行指示を行うステートマシンを備えている。
【0005】
【発明が解決しようとする課題】ところで、DMAの対
象となるメモリ装置やI/Oポートには、バースト転送
を実行する際のバースト長が異なるものが存在する。そ
のため、従来より、DMAコントローラには、バースト
長を切り替えることが可能なものがあった。
象となるメモリ装置やI/Oポートには、バースト転送
を実行する際のバースト長が異なるものが存在する。そ
のため、従来より、DMAコントローラには、バースト
長を切り替えることが可能なものがあった。
【0006】ところが、そのようなDMAコントローラ
では、選択的に指定されるそれぞれのバースト長に対応
するステートマシン、アドレスカウンタ及び転送カウン
タを備える構成となっていた。例えば、8バイトと16
バイトという2つのバースト長を選択的に切り替えるこ
とが可能なDMAコントローラには、ステートマシン、
アドレスカウンタ及び転送カウンタはそれぞれ2つずつ
用意されていた。その結果、バースト長を切り替えるこ
とができるDMAコントローラは、大型化することにな
り、クロック信号に対するクリティカルパスが長くなる
ことにより高速化できず、一般にバースト長の切り替え
られないDMAコントローラに比べて低速となってしま
っていた。
では、選択的に指定されるそれぞれのバースト長に対応
するステートマシン、アドレスカウンタ及び転送カウン
タを備える構成となっていた。例えば、8バイトと16
バイトという2つのバースト長を選択的に切り替えるこ
とが可能なDMAコントローラには、ステートマシン、
アドレスカウンタ及び転送カウンタはそれぞれ2つずつ
用意されていた。その結果、バースト長を切り替えるこ
とができるDMAコントローラは、大型化することにな
り、クロック信号に対するクリティカルパスが長くなる
ことにより高速化できず、一般にバースト長の切り替え
られないDMAコントローラに比べて低速となってしま
っていた。
【0007】本発明は、上述した問題点を解決するため
になされたものであり、バースト長を選択的に切り替え
ることができ、従来のDMAコントローラに比べて小型
で高速なDMAコントローラを提供することを目的とす
る。
になされたものであり、バースト長を選択的に切り替え
ることができ、従来のDMAコントローラに比べて小型
で高速なDMAコントローラを提供することを目的とす
る。
【0008】
【課題を解決するための手段及び発明の効果】上述した
目的を達成するためになされた請求項1に記載のDMA
コントローラは、バースト長のデータをまとめて転送す
る転送実行手段に当該バースト長のデータ転送を指示す
ると共に、更新信号を出力する状態制御手段と、転送元
又は転送先の少なくとも一方のアドレス関連情報を保持
し、状態制御手段によって出力される更新信号が入力さ
れると、転送実行手段へ出力するアドレス関連情報を更
新するアドレス保持更新手段と、状態制御手段によって
出力される更新信号が入力されると、転送の完了したデ
ータ数を更新するデータ数保持更新手段と、データ数保
持更新手段によって更新されるデータ数関連情報に基づ
いて制御手段からの指示による一連のデータ転送の終了
を判断し、状態制御手段へ転送終了信号を出力する転送
終了判断手段とを備え、状態制御手段が、転送終了判断
手段からの転送終了信号が入力されたことを判断するま
で、転送実行手段に対し繰り返しバースト長のデータ転
送を指示することによって一連のデータ転送を実現する
DMAコントローラにおいて、複数のバースト長を選択
的に指定するための制御手段からのバースト長指定信号
及び転送実行手段によるデータの転送中に状態制御手段
から出力される転送期間信号に基づきバースト長のデー
タ転送の終了を判断してバースト終了信号を状態制御手
段へ出力するバースト終了判断手段を備え、状態制御手
段は、さらに、バースト終了判断手段からのバースト終
了信号に基づき、転送実行手段へのデータ転送の指示タ
イミングと、アドレス保持更新手段及びデータ数保持更
新手段への更新信号の出力タイミングとを変更するよう
構成されていることを特徴としている。
目的を達成するためになされた請求項1に記載のDMA
コントローラは、バースト長のデータをまとめて転送す
る転送実行手段に当該バースト長のデータ転送を指示す
ると共に、更新信号を出力する状態制御手段と、転送元
又は転送先の少なくとも一方のアドレス関連情報を保持
し、状態制御手段によって出力される更新信号が入力さ
れると、転送実行手段へ出力するアドレス関連情報を更
新するアドレス保持更新手段と、状態制御手段によって
出力される更新信号が入力されると、転送の完了したデ
ータ数を更新するデータ数保持更新手段と、データ数保
持更新手段によって更新されるデータ数関連情報に基づ
いて制御手段からの指示による一連のデータ転送の終了
を判断し、状態制御手段へ転送終了信号を出力する転送
終了判断手段とを備え、状態制御手段が、転送終了判断
手段からの転送終了信号が入力されたことを判断するま
で、転送実行手段に対し繰り返しバースト長のデータ転
送を指示することによって一連のデータ転送を実現する
DMAコントローラにおいて、複数のバースト長を選択
的に指定するための制御手段からのバースト長指定信号
及び転送実行手段によるデータの転送中に状態制御手段
から出力される転送期間信号に基づきバースト長のデー
タ転送の終了を判断してバースト終了信号を状態制御手
段へ出力するバースト終了判断手段を備え、状態制御手
段は、さらに、バースト終了判断手段からのバースト終
了信号に基づき、転送実行手段へのデータ転送の指示タ
イミングと、アドレス保持更新手段及びデータ数保持更
新手段への更新信号の出力タイミングとを変更するよう
構成されていることを特徴としている。
【0009】本発明のDMAコントローラは、CPU等
の制御手段の指示に基づき一連のデータ転送を実行する
ためのものである。実質的なデータ転送は、例えばメモ
リコントローラ等の転送実行手段が実行する。ここで転
送実行手段は、DMAコントローラからの指示によっ
て、上述したようにバースト長のデータをまとめて転送
する。従って、DMAコントローラは、転送実行手段に
このようなバースト長のデータ転送を繰り返し実行させ
ることによって、制御手段から指示された一連のデータ
転送を実現する。
の制御手段の指示に基づき一連のデータ転送を実行する
ためのものである。実質的なデータ転送は、例えばメモ
リコントローラ等の転送実行手段が実行する。ここで転
送実行手段は、DMAコントローラからの指示によっ
て、上述したようにバースト長のデータをまとめて転送
する。従って、DMAコントローラは、転送実行手段に
このようなバースト長のデータ転送を繰り返し実行させ
ることによって、制御手段から指示された一連のデータ
転送を実現する。
【0010】本DMAコントローラでは、ステートマシ
ンに代表される状態制御手段が転送実行手段に対してデ
ータ転送を繰り返し指示するのであるが、このとき、転
送実行手段に対して、転送元又は転送先の少なくとも一
方のアドレス関連情報を指定することが必要となってく
る。また、このアドレス関連情報は、転送実行手段にデ
ータ転送を繰り返し指示する度に更新していく必要があ
る。
ンに代表される状態制御手段が転送実行手段に対してデ
ータ転送を繰り返し指示するのであるが、このとき、転
送実行手段に対して、転送元又は転送先の少なくとも一
方のアドレス関連情報を指定することが必要となってく
る。また、このアドレス関連情報は、転送実行手段にデ
ータ転送を繰り返し指示する度に更新していく必要があ
る。
【0011】そこで、アドレス保持更新手段がアドレス
関連情報を保持し、状態制御手段からの更新信号に基づ
いてアドレス関連情報を更新するのである。なお、「転
送元又は転送先の少なくとも一方」としたのは、転送実
行手段によっては、転送元のアドレス関連情報のみを指
定するものも考えられるし、逆に転送先のアドレス関連
情報のみを指定するものも考えられるし、あるいは、両
方のアドレス関連情報を指定するものも考えられるから
である。例えば従来技術で説明したメモリコントローラ
は転送先アドレスのみを指示するものであった。また、
「アドレス関連情報」というのは、アドレスそのもので
あってもよいし、アドレスの上位5ビットというような
一部分であってもよい。
関連情報を保持し、状態制御手段からの更新信号に基づ
いてアドレス関連情報を更新するのである。なお、「転
送元又は転送先の少なくとも一方」としたのは、転送実
行手段によっては、転送元のアドレス関連情報のみを指
定するものも考えられるし、逆に転送先のアドレス関連
情報のみを指定するものも考えられるし、あるいは、両
方のアドレス関連情報を指定するものも考えられるから
である。例えば従来技術で説明したメモリコントローラ
は転送先アドレスのみを指示するものであった。また、
「アドレス関連情報」というのは、アドレスそのもので
あってもよいし、アドレスの上位5ビットというような
一部分であってもよい。
【0012】また、本DMAコントローラは、CPU等
の制御手段からの指示に基づき一連のデータ転送を行う
のであるから、その一連のデータ転送の終了を判断する
ことが必要となってくる。そのため、データ数保持更新
手段及び転送終了判断手段を備えている。
の制御手段からの指示に基づき一連のデータ転送を行う
のであるから、その一連のデータ転送の終了を判断する
ことが必要となってくる。そのため、データ数保持更新
手段及び転送終了判断手段を備えている。
【0013】データ数保持更新手段は、転送の完了した
データ数に関連するデータ数関連情報を保持している。
このデータ数関連情報も、アドレス関連情報と同様、転
送実行手段にデータ転送を繰り返し指示する度に更新し
ていく必要がある。そこで、データ数保持更新手段は、
状態制御手段からの更新信号に基づいてデータ数関連情
報を更新するのである。
データ数に関連するデータ数関連情報を保持している。
このデータ数関連情報も、アドレス関連情報と同様、転
送実行手段にデータ転送を繰り返し指示する度に更新し
ていく必要がある。そこで、データ数保持更新手段は、
状態制御手段からの更新信号に基づいてデータ数関連情
報を更新するのである。
【0014】そして、転送終了判断手段は、データ数保
持更新手段に保持されたデータ数関連情報に基づいて、
一連のデータ転送の終了を判断し、転送終了信号を状態
制御手段へ出力する。例えば「データ数関連情報」は、
未転送のデータ数とすることが考えられる。その場合、
未転送のデータ数が「0」となったときに、一連のデー
タ転送の終了を判断する。
持更新手段に保持されたデータ数関連情報に基づいて、
一連のデータ転送の終了を判断し、転送終了信号を状態
制御手段へ出力する。例えば「データ数関連情報」は、
未転送のデータ数とすることが考えられる。その場合、
未転送のデータ数が「0」となったときに、一連のデー
タ転送の終了を判断する。
【0015】状態制御手段は、転送終了判断手段からの
転送終了信号が入力されると、転送実行手段へのデータ
転送指示を止め、一連のデータ転送を終了する。本発明
のDMAコントローラは、バースト長の異なる複数の転
送実行手段に対してデータ転送の指示を行うものであ
り、CPU等の制御手段がバースト長指定信号によっ
て、それぞれの対象となる転送実行手段のデータ転送に
おけるバースト長を複数のバースト長の中から選択的に
指定する。
転送終了信号が入力されると、転送実行手段へのデータ
転送指示を止め、一連のデータ転送を終了する。本発明
のDMAコントローラは、バースト長の異なる複数の転
送実行手段に対してデータ転送の指示を行うものであ
り、CPU等の制御手段がバースト長指定信号によっ
て、それぞれの対象となる転送実行手段のデータ転送に
おけるバースト長を複数のバースト長の中から選択的に
指定する。
【0016】従って、本発明のDMAコントローラで
は、上述した機能に加えて、バースト終了判断手段が、
転送実行手段によるデータの転送中に状態制御手段から
出力される転送期間信号に基づき、転送実行手段によっ
て転送されるデータ数をカウントし、制御手段からのバ
ースト指定信号に対応して転送実行手段によるバースト
長のデータ転送の終了を判断する。そして、バースト長
のデータ転送の終了を判断すると状態制御手段へバース
ト終了信号を出力する。
は、上述した機能に加えて、バースト終了判断手段が、
転送実行手段によるデータの転送中に状態制御手段から
出力される転送期間信号に基づき、転送実行手段によっ
て転送されるデータ数をカウントし、制御手段からのバ
ースト指定信号に対応して転送実行手段によるバースト
長のデータ転送の終了を判断する。そして、バースト長
のデータ転送の終了を判断すると状態制御手段へバース
ト終了信号を出力する。
【0017】そして、状態制御手段は、バースト終了判
断手段からのバースト終了信号に基づき、転送実行手段
へのデータ転送の指示タイミングと、アドレス保持更新
手段及びデータ数保持更新手段への更新信号の出力タイ
ミングとを変更する。従来、DMAコントローラにおけ
る状態制御手段としてのステートマシンは、1つのバー
スト長に対応するタイミングで、転送実行手段へのデー
タ転送指示と、アドレス保持更新手段としてのアドレス
カウンタ及びデータ数保持更新手段としての転送カウン
タへの更新信号の出力を行っていた。つまり、複数のバ
ースト長を切り替えることのできるDMAコントローラ
では、選択されるバースト長にそれぞれ対応する個別の
ステートマシンが設けられていた。そのため、DMAコ
ントローラの大型化を招き、信号伝達の遅延によってク
ロック信号に対するクリティカルパスが長くなるため、
DMAコントローラを高速化することができなかった。
断手段からのバースト終了信号に基づき、転送実行手段
へのデータ転送の指示タイミングと、アドレス保持更新
手段及びデータ数保持更新手段への更新信号の出力タイ
ミングとを変更する。従来、DMAコントローラにおけ
る状態制御手段としてのステートマシンは、1つのバー
スト長に対応するタイミングで、転送実行手段へのデー
タ転送指示と、アドレス保持更新手段としてのアドレス
カウンタ及びデータ数保持更新手段としての転送カウン
タへの更新信号の出力を行っていた。つまり、複数のバ
ースト長を切り替えることのできるDMAコントローラ
では、選択されるバースト長にそれぞれ対応する個別の
ステートマシンが設けられていた。そのため、DMAコ
ントローラの大型化を招き、信号伝達の遅延によってク
ロック信号に対するクリティカルパスが長くなるため、
DMAコントローラを高速化することができなかった。
【0018】それに対して、本発明のDMAコントロー
ラでは、バースト終了判断手段が制御手段からのバース
ト長指定信号に基づき、転送実行手段によるバースト長
のデータ転送の終了を判断して、バースト終了信号を状
態制御手段へ出力する。状態制御手段は、バースト終了
信号を判断することによって、転送実行手段に対するデ
ータ転送指示とアドレス保持更新手段及びデータ数保持
更新手段に対する更新信号の出力とを、それぞれのバー
スト長に対応するタイミングで繰り返し行う。
ラでは、バースト終了判断手段が制御手段からのバース
ト長指定信号に基づき、転送実行手段によるバースト長
のデータ転送の終了を判断して、バースト終了信号を状
態制御手段へ出力する。状態制御手段は、バースト終了
信号を判断することによって、転送実行手段に対するデ
ータ転送指示とアドレス保持更新手段及びデータ数保持
更新手段に対する更新信号の出力とを、それぞれのバー
スト長に対応するタイミングで繰り返し行う。
【0019】これによって、状態制御手段は、複数のバ
ースト長がバースト長指定信号によって選択的に指定さ
れる場合であっても、選択されるバースト長にそれぞれ
対応するよう個別に設ける必要がなくなり、DMAコン
トローラを小型化することができる。その結果、信号の
伝達の遅れが少なくなりクロック信号に対するクリティ
カルパスが短くなるためDMAコントローラの高速化を
図ることができる。
ースト長がバースト長指定信号によって選択的に指定さ
れる場合であっても、選択されるバースト長にそれぞれ
対応するよう個別に設ける必要がなくなり、DMAコン
トローラを小型化することができる。その結果、信号の
伝達の遅れが少なくなりクロック信号に対するクリティ
カルパスが短くなるためDMAコントローラの高速化を
図ることができる。
【0020】ところで、状態制御手段は、請求項2に示
す構成を採用することが考えられる。すなわち、状態制
御手段は、初期状態である第1の状態で制御手段からの
指示によって、転送実行手段にデータ転送の準備をさせ
るリクエスト信号を有効にすると共に、当該リクエスト
信号に対応して転送実行手段から送信されるアクノレッ
ジ信号の入力を判断する第2の状態へ移行し、当該第2
の状態で転送実行手段からのアクノレッジ信号が入力さ
れると、データ転送の開始を指示するコントロール信号
を転送実行手段へ出力すると共に、転送期間信号を出力
する第3の状態と、バースト終了信号の入力を判断する
と共に、転送期間信号を出力する第4の状態とを交互に
繰り返し、当該第4の状態でバースト終了信号が入力さ
れた場合、転送終了信号の入力を判断すると共に、リク
エスト信号を無効とし、更新信号を出力する第5の状態
へ移行し、当該第5の状態で転送終了信号が入力された
場合は第1の状態へ移行し、一方、当該第5の状態で転
送終了信号が入力されない場合は第2の状態へ移行する
よう構成されていることを特徴とするものである。
す構成を採用することが考えられる。すなわち、状態制
御手段は、初期状態である第1の状態で制御手段からの
指示によって、転送実行手段にデータ転送の準備をさせ
るリクエスト信号を有効にすると共に、当該リクエスト
信号に対応して転送実行手段から送信されるアクノレッ
ジ信号の入力を判断する第2の状態へ移行し、当該第2
の状態で転送実行手段からのアクノレッジ信号が入力さ
れると、データ転送の開始を指示するコントロール信号
を転送実行手段へ出力すると共に、転送期間信号を出力
する第3の状態と、バースト終了信号の入力を判断する
と共に、転送期間信号を出力する第4の状態とを交互に
繰り返し、当該第4の状態でバースト終了信号が入力さ
れた場合、転送終了信号の入力を判断すると共に、リク
エスト信号を無効とし、更新信号を出力する第5の状態
へ移行し、当該第5の状態で転送終了信号が入力された
場合は第1の状態へ移行し、一方、当該第5の状態で転
送終了信号が入力されない場合は第2の状態へ移行する
よう構成されていることを特徴とするものである。
【0021】この場合、状態制御手段は、第1〜第5の
状態を遷移する。第1の状態は、初期状態である。ここ
で、制御手段からの指示があると、第2の状態へ移行す
る。第2の状態では、転送実行手段へデータ転送の準備
をさせるリクエスト信号を有効にする。また、リクエス
ト信号に対応して転送実行手段から出力されるアクノレ
ッジ信号の入力されたか否かを判断する。ここで転送実
行手段からのアクノレッジ信号が有効となると第3の状
態へ移行する。
状態を遷移する。第1の状態は、初期状態である。ここ
で、制御手段からの指示があると、第2の状態へ移行す
る。第2の状態では、転送実行手段へデータ転送の準備
をさせるリクエスト信号を有効にする。また、リクエス
ト信号に対応して転送実行手段から出力されるアクノレ
ッジ信号の入力されたか否かを判断する。ここで転送実
行手段からのアクノレッジ信号が有効となると第3の状
態へ移行する。
【0022】第3の状態では、データ転送の開始を指示
するコントロール信号を転送実行手段へ出力する。これ
によって、転送実行手段は、データ転送を開始する。第
3の状態から第4の状態へは無条件で移行する。第4の
状態では、転送実行手段によって実行されるバースト長
のデータ転送終了を示すバースト終了判断手段からのバ
ースト終了信号の入力を判断する。ここでバースト終了
信号が入力されない場合、第3の状態へ移行する。一
方、バースト終了信号が入力された場合、第5の状態へ
移行する。
するコントロール信号を転送実行手段へ出力する。これ
によって、転送実行手段は、データ転送を開始する。第
3の状態から第4の状態へは無条件で移行する。第4の
状態では、転送実行手段によって実行されるバースト長
のデータ転送終了を示すバースト終了判断手段からのバ
ースト終了信号の入力を判断する。ここでバースト終了
信号が入力されない場合、第3の状態へ移行する。一
方、バースト終了信号が入力された場合、第5の状態へ
移行する。
【0023】転送実行手段がデータの転送中である場合
には、状態制御手段は第3及び第4の状態を交互に繰り
返すことになる。状態制御手段は、第3及び第4の状態
であるとき、転送実行手段によってデータ転送が実行さ
れていることを示す転送期間信号をバースト終了判断手
段へ出力する。これによって、バースト終了判断手段は
バースト長のデータ転送の終了を判断することができ
る。
には、状態制御手段は第3及び第4の状態を交互に繰り
返すことになる。状態制御手段は、第3及び第4の状態
であるとき、転送実行手段によってデータ転送が実行さ
れていることを示す転送期間信号をバースト終了判断手
段へ出力する。これによって、バースト終了判断手段は
バースト長のデータ転送の終了を判断することができ
る。
【0024】第5の状態では、転送実行手段へのリクエ
スト信号を無効として、バースト長のデータ転送を一旦
終了する。また、アドレス保持更新手段及びデータ数保
持更新手段へ更新信号を出力する。さらに、転送終了判
断手段からの転送終了信号が入力されたか否かを判断す
る。ここで転送終了信号が入力された場合、第1の状態
へ移行して一連のデータ転送を終了する。一方、転送終
了信号が入力されない場合、転送実行手段に次のデータ
転送を指示するため、第2の状態へ移行する。
スト信号を無効として、バースト長のデータ転送を一旦
終了する。また、アドレス保持更新手段及びデータ数保
持更新手段へ更新信号を出力する。さらに、転送終了判
断手段からの転送終了信号が入力されたか否かを判断す
る。ここで転送終了信号が入力された場合、第1の状態
へ移行して一連のデータ転送を終了する。一方、転送終
了信号が入力されない場合、転送実行手段に次のデータ
転送を指示するため、第2の状態へ移行する。
【0025】つまり、状態制御手段は、転送実行手段へ
第2及び第3の状態でデータ転送の指示をし、バースト
終了判断手段からのバースト終了信号が入力されないう
ちは、第3及び第4の状態を交互に繰り返し、バースト
終了信号が第4の状態で入力されると第5の状態へ移行
し、アドレス保持更新手段及びデータ数保持更新手段へ
の更新信号を出力して再び第2の状態へ移行する。この
ように、状態遷移手段は、制御手段からの指示に基づく
一連のデータ転送を実行する場合、第2→第3→第4→
第3→第4→・・・→第3→第4→第5→第2という一
連の状態遷移を繰り返す。このとき、バースト終了判断
手段のバースト終了信号の入力タイミングに応じて第3
及び第4の状態の繰り返し回数が変化するため、上述し
たように第2及び第3の状態で行われる転送実行手段へ
のデータ転送指示と、第5の状態で行われるアドレス保
持更新手段及びデータ数保持更新手段への更新信号の出
力のタイミングを変えることができる。
第2及び第3の状態でデータ転送の指示をし、バースト
終了判断手段からのバースト終了信号が入力されないう
ちは、第3及び第4の状態を交互に繰り返し、バースト
終了信号が第4の状態で入力されると第5の状態へ移行
し、アドレス保持更新手段及びデータ数保持更新手段へ
の更新信号を出力して再び第2の状態へ移行する。この
ように、状態遷移手段は、制御手段からの指示に基づく
一連のデータ転送を実行する場合、第2→第3→第4→
第3→第4→・・・→第3→第4→第5→第2という一
連の状態遷移を繰り返す。このとき、バースト終了判断
手段のバースト終了信号の入力タイミングに応じて第3
及び第4の状態の繰り返し回数が変化するため、上述し
たように第2及び第3の状態で行われる転送実行手段へ
のデータ転送指示と、第5の状態で行われるアドレス保
持更新手段及びデータ数保持更新手段への更新信号の出
力のタイミングを変えることができる。
【0026】状態制御手段を、このように構成すること
により、複数のバースト長から選択的に指定されるバー
スト長に対応させることができ、DMAコントローラを
小型化できる。その結果、信号の伝達が速くなりクロッ
ク信号に対するクリティカルパスが短くなるためDMA
コントローラの高速化が実現できる。
により、複数のバースト長から選択的に指定されるバー
スト長に対応させることができ、DMAコントローラを
小型化できる。その結果、信号の伝達が速くなりクロッ
ク信号に対するクリティカルパスが短くなるためDMA
コントローラの高速化が実現できる。
【0027】ところで、DMAコントローラの小型化を
考えた場合、アドレス保持更新手段は、請求項3に示す
よう構成することが望ましい。すなわち、請求項1又は
2に示した構成に加えて、アドレス保持更新手段は、さ
らに、制御手段からのバースト長指定信号に基づき、複
数のバースト長から選択的に指定されたバースト長に対
応するアドレス関連情報の更新を共通のハード構成を利
用して行うよう構成するとよい。
考えた場合、アドレス保持更新手段は、請求項3に示す
よう構成することが望ましい。すなわち、請求項1又は
2に示した構成に加えて、アドレス保持更新手段は、さ
らに、制御手段からのバースト長指定信号に基づき、複
数のバースト長から選択的に指定されたバースト長に対
応するアドレス関連情報の更新を共通のハード構成を利
用して行うよう構成するとよい。
【0028】また、データ数保持更新手段は、請求項4
に示すように構成することが望ましい。すなわち、請求
項1〜3に示した構成に加えて、データ数保持更新手段
は、さらに、制御手段からのバースト長指定信号に基づ
き、複数のバースト長から選択的に指定されたバースト
長に対応するデータ数関連情報の更新を共通のハード構
成を利用して行うよう構成するとよい。
に示すように構成することが望ましい。すなわち、請求
項1〜3に示した構成に加えて、データ数保持更新手段
は、さらに、制御手段からのバースト長指定信号に基づ
き、複数のバースト長から選択的に指定されたバースト
長に対応するデータ数関連情報の更新を共通のハード構
成を利用して行うよう構成するとよい。
【0029】従来、複数のバースト長を選択的に切り替
えることが可能なDMAコントローラでは、アドレス保
持更新手段としてのいわゆるアドレスカウンタ、データ
数保持更新手段としてのいわゆる転送カウンタも、それ
ぞれのバースト長に対応するして個別に設けられてお
り、DMAコントローラの大型化を招き、さらに、それ
に伴うクリティカルパスの発生によってDMAコントロ
ーラの高速化は困難であった。
えることが可能なDMAコントローラでは、アドレス保
持更新手段としてのいわゆるアドレスカウンタ、データ
数保持更新手段としてのいわゆる転送カウンタも、それ
ぞれのバースト長に対応するして個別に設けられてお
り、DMAコントローラの大型化を招き、さらに、それ
に伴うクリティカルパスの発生によってDMAコントロ
ーラの高速化は困難であった。
【0030】それに対して、請求項3に示すDMAコン
トローラでは、アドレス保持更新手段が複数のバースト
長に対応するアドレス関連情報の更新を共通のハード構
成で行い、請求項4に示すDMAコントローラでは、デ
ータ数保持更新手段が複数のバースト長に対応するアド
レス関連情報の更新を共通のハード構成で行う。これに
よって、DMAコントローラのさらなる小型化ができ、
結果としてクロック信号に対するクリティカルパスが短
くなるためさらなる高速化が実現できる。
トローラでは、アドレス保持更新手段が複数のバースト
長に対応するアドレス関連情報の更新を共通のハード構
成で行い、請求項4に示すDMAコントローラでは、デ
ータ数保持更新手段が複数のバースト長に対応するアド
レス関連情報の更新を共通のハード構成で行う。これに
よって、DMAコントローラのさらなる小型化ができ、
結果としてクロック信号に対するクリティカルパスが短
くなるためさらなる高速化が実現できる。
【0031】
【発明の実施の形態】以下、本発明を具体化した一実施
形態を図面を参照して説明する。図1は、本実施形態の
DMAコントローラ1の概略構成を示すブロック図であ
る。
形態を図面を参照して説明する。図1は、本実施形態の
DMAコントローラ1の概略構成を示すブロック図であ
る。
【0032】DMAコントローラ1は、「転送実行手
段」としてのメモリコントローラ80と、「制御手段」
としてのCPU90に接続されており、CPU90の指
示に基づき一連のデータ転送を実行する。実質的なデー
タ転送は、メモリコントローラ80が実行する。メモリ
コントローラ80は、本実施形態のDMAコントローラ
1からの指示によって、バースト長のデータをまとめて
転送する。従って、DMAコントローラ1は、メモリコ
ントローラ80にこのようなバースト長のデータ転送を
繰り返し実行させることによって、CPU90から指示
された一連のデータ転送を実現する。
段」としてのメモリコントローラ80と、「制御手段」
としてのCPU90に接続されており、CPU90の指
示に基づき一連のデータ転送を実行する。実質的なデー
タ転送は、メモリコントローラ80が実行する。メモリ
コントローラ80は、本実施形態のDMAコントローラ
1からの指示によって、バースト長のデータをまとめて
転送する。従って、DMAコントローラ1は、メモリコ
ントローラ80にこのようなバースト長のデータ転送を
繰り返し実行させることによって、CPU90から指示
された一連のデータ転送を実現する。
【0033】なお、本実施形態のメモリコントローラ8
0は、8バイトと16バイトの2つのバースト長でのデ
ータ転送を選択的に実行可能となっている。従って、本
実施形態のDMAコントローラ1はCPU90からのバ
ースト長指定信号s10によって選択的に指定される8
バイト,16バイトの2つのバースト長に対応して動作
する。8バイトのバースト長が指示される場合はバース
ト長指定信号s10がlowレベル、すなわち「0」と
なり、16バイトのバースト長が指定される場合はバー
スト長指定信号s10がhighレベル、すなわち
「1」となる。
0は、8バイトと16バイトの2つのバースト長でのデ
ータ転送を選択的に実行可能となっている。従って、本
実施形態のDMAコントローラ1はCPU90からのバ
ースト長指定信号s10によって選択的に指定される8
バイト,16バイトの2つのバースト長に対応して動作
する。8バイトのバースト長が指示される場合はバース
ト長指定信号s10がlowレベル、すなわち「0」と
なり、16バイトのバースト長が指定される場合はバー
スト長指定信号s10がhighレベル、すなわち
「1」となる。
【0034】DMAコントローラ1は、「状態制御手
段」としてのステートマシン10と、「アドレス保持更
新手段」としてのアドレスカウンタ20と、「データ数
保持更新手段」としての転送カウンタ30と、一連のデ
ータ転送の終了を判断する「転送終了判断手段」として
の転送終了デコーダ40と、ステートマシン10からの
転送期間信号s4に基づいて、メモリコントローラ80
でのバースト長のデータ転送における転送データ数をカ
ウントするバーストカウンタ51と、バーストカウンタ
51のカウント値に基づいてメモリコントローラ80で
のバースト長のデータ転送の終了を判断するバースト終
了デコーダ52とを備えている。なお、バーストカウン
タ51及びバースト終了デコーダ52が「バースト終了
判断手段」に相当する。なお、図1に示した各ブロック
はクロック信号に基づいて動作するが、煩雑になること
を避けるためクロック信号に関する配線は図示しない。
段」としてのステートマシン10と、「アドレス保持更
新手段」としてのアドレスカウンタ20と、「データ数
保持更新手段」としての転送カウンタ30と、一連のデ
ータ転送の終了を判断する「転送終了判断手段」として
の転送終了デコーダ40と、ステートマシン10からの
転送期間信号s4に基づいて、メモリコントローラ80
でのバースト長のデータ転送における転送データ数をカ
ウントするバーストカウンタ51と、バーストカウンタ
51のカウント値に基づいてメモリコントローラ80で
のバースト長のデータ転送の終了を判断するバースト終
了デコーダ52とを備えている。なお、バーストカウン
タ51及びバースト終了デコーダ52が「バースト終了
判断手段」に相当する。なお、図1に示した各ブロック
はクロック信号に基づいて動作するが、煩雑になること
を避けるためクロック信号に関する配線は図示しない。
【0035】アドレスカウンタ20は、アドレス関連情
報を保持するアドレスレジスタ21と、アドレスレジス
タ21に保持したアドレス関連情報を更新するインクリ
メンタ22とを備えている。アドレスレジスタ21は転
送先のアドレス情報をアドレス関連情報として保持す
る。アドレス関連情報の初期値は、CPU90によって
一連のデータ転送に先立ってセットされる(図1中の信
号s8)。アドレスレジスタ21に保持されるアドレス
関連情報はメモリコントローラ80へ出力される(図1
中の信号s7)。
報を保持するアドレスレジスタ21と、アドレスレジス
タ21に保持したアドレス関連情報を更新するインクリ
メンタ22とを備えている。アドレスレジスタ21は転
送先のアドレス情報をアドレス関連情報として保持す
る。アドレス関連情報の初期値は、CPU90によって
一連のデータ転送に先立ってセットされる(図1中の信
号s8)。アドレスレジスタ21に保持されるアドレス
関連情報はメモリコントローラ80へ出力される(図1
中の信号s7)。
【0036】転送先のアドレス情報であるアドレス関連
情報とは、図6に示すように、転送先アドレスの下位3
ビットを除く8ビットのデータである。転送先アドレス
の下位3ビットは、メモリコントローラ80が8バイト
のデータ転送を行う場合、メモリコントローラによって
2進数で「000」〜「111」までカウントされる。
また、メモリコントローラが16バイトのデータ転送を
行う場合、メモリコントローラによって2進数で「00
0」〜「111」まで2回カウントされる。
情報とは、図6に示すように、転送先アドレスの下位3
ビットを除く8ビットのデータである。転送先アドレス
の下位3ビットは、メモリコントローラ80が8バイト
のデータ転送を行う場合、メモリコントローラによって
2進数で「000」〜「111」までカウントされる。
また、メモリコントローラが16バイトのデータ転送を
行う場合、メモリコントローラによって2進数で「00
0」〜「111」まで2回カウントされる。
【0037】つまり、転送先アドレスの下位3ビットは
メモリコントローラ80が保持するため、DMAコント
ローラ1におけるアドレスカウンタ20のアドレスレジ
スタ22は、転送先アドレスの下位3ビットを除いたア
ドレス関連情報を保持する。従って、メモリコントロー
ラが8バイトのバースト長でデータ転送を行う場合に
は、そのバースト長のデータ転送毎にアドレスカウンタ
20のインクリメンタ22がアドレス関連情報に「1」
を加算してアドレス関連情報を更新し、メモリコントロ
ーラ80が16バイトのバースト長でデータ転送を行う
場合には、そのバースト長のデータ転送毎にアドレスカ
ウンタ20のインクリメンタ22がアドレス関連情報に
「2」を加算してアドレス関連情報を更新する。
メモリコントローラ80が保持するため、DMAコント
ローラ1におけるアドレスカウンタ20のアドレスレジ
スタ22は、転送先アドレスの下位3ビットを除いたア
ドレス関連情報を保持する。従って、メモリコントロー
ラが8バイトのバースト長でデータ転送を行う場合に
は、そのバースト長のデータ転送毎にアドレスカウンタ
20のインクリメンタ22がアドレス関連情報に「1」
を加算してアドレス関連情報を更新し、メモリコントロ
ーラ80が16バイトのバースト長でデータ転送を行う
場合には、そのバースト長のデータ転送毎にアドレスカ
ウンタ20のインクリメンタ22がアドレス関連情報に
「2」を加算してアドレス関連情報を更新する。
【0038】このインクリメンタ22は、図4に示す回
路構成となっている。この場合、CPU90からのバー
スト長指定信号s10が「0」であるとき、すなわち8
バイトのバースト長を示しているときに、ステートマシ
ン10からの更新信号s6が入力されると、入力された
8ビットのアドレス関連情報に「1」を加算して出力す
る。一方、CPU90からのバースト長指定信号s10
が「1」であるとき、すなわち16バイトのバースト長
を示しているときに、更新信号s6が入力されると、入
力された8ビットのアドレス関連情報に「2」を加算し
て出力する。
路構成となっている。この場合、CPU90からのバー
スト長指定信号s10が「0」であるとき、すなわち8
バイトのバースト長を示しているときに、ステートマシ
ン10からの更新信号s6が入力されると、入力された
8ビットのアドレス関連情報に「1」を加算して出力す
る。一方、CPU90からのバースト長指定信号s10
が「1」であるとき、すなわち16バイトのバースト長
を示しているときに、更新信号s6が入力されると、入
力された8ビットのアドレス関連情報に「2」を加算し
て出力する。
【0039】一方、転送カウンタ30は、図1に示すよ
うに、データ数関連情報を保持する転送レジスタ31
と、転送レジスタ31に保持したデータ数関連情報を更
新するデクリメンタ32とを備えている。転送レジスタ
31は、一連のデータ転送における未転送のデータ数情
報をデータ数関連情報として保持する。このデータ数関
連情報の初期値は、CPU90によって一連のデータ転
送に先立ってセットされる(図1中の信号s9)。
うに、データ数関連情報を保持する転送レジスタ31
と、転送レジスタ31に保持したデータ数関連情報を更
新するデクリメンタ32とを備えている。転送レジスタ
31は、一連のデータ転送における未転送のデータ数情
報をデータ数関連情報として保持する。このデータ数関
連情報の初期値は、CPU90によって一連のデータ転
送に先立ってセットされる(図1中の信号s9)。
【0040】未転送のデータ数情報であるデータ数関連
情報とは、上述のアドレス関連情報と同様に、一連のデ
ータ転送における未転送のデータ数の下位3ビットを除
いた8ビットのデータである。アドレス関連情報で説明
した場合と同様に未転送のデータ数の下位3ビットはメ
モリコントローラ80がカウントする。
情報とは、上述のアドレス関連情報と同様に、一連のデ
ータ転送における未転送のデータ数の下位3ビットを除
いた8ビットのデータである。アドレス関連情報で説明
した場合と同様に未転送のデータ数の下位3ビットはメ
モリコントローラ80がカウントする。
【0041】従って、デクリメンタ32は、CPU90
からのバースト長指定信号s10に基づいてメモリコン
トローラ80が8バイトのバースト長でデータ転送を行
う場合には、そのバースト長のデータ転送毎にデータ数
関連情報から「1」を減算してデータ数関連情報を更新
し、メモリコントローラ80が16バイトのバースト長
でデータ転送を行う場合には、そのバースト長のデータ
転送毎にデータ数関連情報から「2」を減算してデータ
数関連情報を更新する。
からのバースト長指定信号s10に基づいてメモリコン
トローラ80が8バイトのバースト長でデータ転送を行
う場合には、そのバースト長のデータ転送毎にデータ数
関連情報から「1」を減算してデータ数関連情報を更新
し、メモリコントローラ80が16バイトのバースト長
でデータ転送を行う場合には、そのバースト長のデータ
転送毎にデータ数関連情報から「2」を減算してデータ
数関連情報を更新する。
【0042】このデクリメンタ32は、図5に示す回路
構成となっている。この場合、CPU90からのバース
ト長指定信号がs10が「0」であるとき、すなわち8
バイトのバースト長が指定されたときに、ステートマシ
ン10からの更新信号s6が入力されると、入力された
データ数関連情報から「1」を減算し、CPU90から
のバースト長指定信号s10が「1」であるとき、すな
わち16バイトのバースト長が指定されたときに、更新
信号s6が入力されると、入力されたデータ数関連情報
から「2」を減算する。
構成となっている。この場合、CPU90からのバース
ト長指定信号がs10が「0」であるとき、すなわち8
バイトのバースト長が指定されたときに、ステートマシ
ン10からの更新信号s6が入力されると、入力された
データ数関連情報から「1」を減算し、CPU90から
のバースト長指定信号s10が「1」であるとき、すな
わち16バイトのバースト長が指定されたときに、更新
信号s6が入力されると、入力されたデータ数関連情報
から「2」を減算する。
【0043】ステートマシン10は、CPU90からの
DMA信号s0がイネーブルとなると、一連のデータ転
送処理を開始する。そして、ステートマシン10は、メ
モリコントローラ80に対してバースト長のデータ転送
を繰り返し指示する。ステートマシン10がメモリコン
トローラ80に対してバースト長のデータ転送を指示す
る場合、まずステートマシン10がリクエスト信号s1
を有効にし、リクエスト信号s1に対応してメモリコン
トローラ80からのアクノレッジ信号s2が有効となっ
た状態で、ステートマシン10がデータ転送の開始を指
示するためのコントロール信号s3をメモリコントロー
ラ80へ出力する。
DMA信号s0がイネーブルとなると、一連のデータ転
送処理を開始する。そして、ステートマシン10は、メ
モリコントローラ80に対してバースト長のデータ転送
を繰り返し指示する。ステートマシン10がメモリコン
トローラ80に対してバースト長のデータ転送を指示す
る場合、まずステートマシン10がリクエスト信号s1
を有効にし、リクエスト信号s1に対応してメモリコン
トローラ80からのアクノレッジ信号s2が有効となっ
た状態で、ステートマシン10がデータ転送の開始を指
示するためのコントロール信号s3をメモリコントロー
ラ80へ出力する。
【0044】また、バーストカウンタ51は、メモリコ
ントローラ80によってデータ転送が実行されているこ
とを示すステートマシン10からの転送期間信号s4に
基づき、メモリコントローラ80によって転送されたデ
ータ数をカウントする。バースト終了デコーダ52は、
このバーストカウンタ51のカウント値及びCPU90
からのバースト長指定信号s10に基づいてメモリコン
トローラ80によるバースト長のデータ転送の終了を判
断し、バースト終了信号s5を出力する。そして、ステ
ートマシン10は、このバースト終了デコーダ52から
のバースト終了信号s5に基づいて、8バイトと16バ
イトの2つのバースト長にそれぞれ対応するタイミング
で、メモリコントローラ80へのデータ転送指示及び更
新信号s6の出力を繰り返し行う。
ントローラ80によってデータ転送が実行されているこ
とを示すステートマシン10からの転送期間信号s4に
基づき、メモリコントローラ80によって転送されたデ
ータ数をカウントする。バースト終了デコーダ52は、
このバーストカウンタ51のカウント値及びCPU90
からのバースト長指定信号s10に基づいてメモリコン
トローラ80によるバースト長のデータ転送の終了を判
断し、バースト終了信号s5を出力する。そして、ステ
ートマシン10は、このバースト終了デコーダ52から
のバースト終了信号s5に基づいて、8バイトと16バ
イトの2つのバースト長にそれぞれ対応するタイミング
で、メモリコントローラ80へのデータ転送指示及び更
新信号s6の出力を繰り返し行う。
【0045】さらにまた、転送終了デコーダ40が転送
カウンタ30の転送レジスタ31に保持されるデータ数
関連情報に基づいて、一連のデータ転送の終了を判断す
ると転送終了信号s11を出力する。ステートマシン1
0は、この転送終了デコーダ40からの転送終了信号s
11が入力されると、一連のデータ転送処理を終了す
る。
カウンタ30の転送レジスタ31に保持されるデータ数
関連情報に基づいて、一連のデータ転送の終了を判断す
ると転送終了信号s11を出力する。ステートマシン1
0は、この転送終了デコーダ40からの転送終了信号s
11が入力されると、一連のデータ転送処理を終了す
る。
【0046】次に、本実施形態のDMAコントローラ1
のステートマシン10の動作を図2に基づいて詳しく説
明する。図2は、ステートマシン10の状態遷移を示す
説明図である。まず、CPU90の指示に基づく一連の
データ転送の開始前、「第1の状態」としてのIDLE
状態となっている。ここで、CPU90からのDMA信
号s0が有効になると「第2の状態」であるWACK状
態へ移行する。
のステートマシン10の動作を図2に基づいて詳しく説
明する。図2は、ステートマシン10の状態遷移を示す
説明図である。まず、CPU90の指示に基づく一連の
データ転送の開始前、「第1の状態」としてのIDLE
状態となっている。ここで、CPU90からのDMA信
号s0が有効になると「第2の状態」であるWACK状
態へ移行する。
【0047】WACK状態では、リクエスト信号s1を
有効とする。このリクエスト信号s1に対応してメモリ
コントローラ80からのアクノレッジ信号s2が入力さ
れると、「第3の状態」であるB1状態へ移行する。B
1状態では、コントロール信号s3を出力する。これに
よって、メモリコントローラ80ではバースト長のデー
タ転送が開始される。そして、メモリコントローラ80
のバースト長のデータ転送期間中は、B1とB2状態を
交互に繰り返す。B1及びB2状態では、転送期間信号
s4を出力する。
有効とする。このリクエスト信号s1に対応してメモリ
コントローラ80からのアクノレッジ信号s2が入力さ
れると、「第3の状態」であるB1状態へ移行する。B
1状態では、コントロール信号s3を出力する。これに
よって、メモリコントローラ80ではバースト長のデー
タ転送が開始される。そして、メモリコントローラ80
のバースト長のデータ転送期間中は、B1とB2状態を
交互に繰り返す。B1及びB2状態では、転送期間信号
s4を出力する。
【0048】B2状態であるとき、バースト終了デコー
ダ52からのバースト終了信号s5が入力されると、
「第4の状態」としてのLAST状態へ移行する。LA
ST状態では、更新信号s6を出力する。ここで、転送
終了デコーダ40からの転送終了信号s11が入力され
ない場合、WACK状態へ移行し、上述した状態遷移を
繰り返す。一方、転送終了デコーダ40からの転送終了
信号s11が入力された場合、IDLE状態へ移行して
一連のデータ転送を終了する。
ダ52からのバースト終了信号s5が入力されると、
「第4の状態」としてのLAST状態へ移行する。LA
ST状態では、更新信号s6を出力する。ここで、転送
終了デコーダ40からの転送終了信号s11が入力され
ない場合、WACK状態へ移行し、上述した状態遷移を
繰り返す。一方、転送終了デコーダ40からの転送終了
信号s11が入力された場合、IDLE状態へ移行して
一連のデータ転送を終了する。
【0049】以上図2に基づいて説明したステートマシ
ン10の状態遷移を、さらにクロック信号と対応させた
図3のタイミングチャートで説明する。図3は、ステー
トマシン10に対する入出力信号とステートマシンの状
態遷移を対応させたタイミングチャートである。
ン10の状態遷移を、さらにクロック信号と対応させた
図3のタイミングチャートで説明する。図3は、ステー
トマシン10に対する入出力信号とステートマシンの状
態遷移を対応させたタイミングチャートである。
【0050】まず、CPU90からのDMA信号s0が
イネーブルとなると(図3中の)WACK状態へ移行
し(図3中の)、リクエスト信号s1を有効にする
(図3中の)。そして、メモリコントローラ80から
のアクノレッジ信号s2が入力されると(図3中の)
B1及びB2状態を繰り返し(図3中の)、B2の状
態でバースト終了デコーダ52からのバースト終了信号
s5が入力されると(図3中の)、LAST状態へ移
行し、更新信号s6を出力する(図3中の)。LAS
T状態では、リクエスト信号s1を無効にし(図3中の
)、メモリコントローラ80によるバースト長のデー
タ転送が一旦終了する。
イネーブルとなると(図3中の)WACK状態へ移行
し(図3中の)、リクエスト信号s1を有効にする
(図3中の)。そして、メモリコントローラ80から
のアクノレッジ信号s2が入力されると(図3中の)
B1及びB2状態を繰り返し(図3中の)、B2の状
態でバースト終了デコーダ52からのバースト終了信号
s5が入力されると(図3中の)、LAST状態へ移
行し、更新信号s6を出力する(図3中の)。LAS
T状態では、リクエスト信号s1を無効にし(図3中の
)、メモリコントローラ80によるバースト長のデー
タ転送が一旦終了する。
【0051】次に、本実施形態のDMAコントローラ1
の効果を説明する。なお、ここでの説明に対する理解を
容易にするため、はじめに従来の問題点を簡単に説明す
る。従来、複数のバースト長を選択的に切り替えること
が可能なDMAコントローラでは、ステートマシン、ア
ドレスカウンタ、転送カウンタ等のバースト長に応じた
動作をするDMAコントローラ内のブロックは、選択さ
れるバースト長に応じてそれぞれ個別に設けられてい
た。そのため、複数のバースト長を選択的に切り替える
ことが可能なDMAコントローラは、大型化し、信号伝
達が遅れるためクロック信号に対するクリティカルパス
が長くなり高速化が困難であった。
の効果を説明する。なお、ここでの説明に対する理解を
容易にするため、はじめに従来の問題点を簡単に説明す
る。従来、複数のバースト長を選択的に切り替えること
が可能なDMAコントローラでは、ステートマシン、ア
ドレスカウンタ、転送カウンタ等のバースト長に応じた
動作をするDMAコントローラ内のブロックは、選択さ
れるバースト長に応じてそれぞれ個別に設けられてい
た。そのため、複数のバースト長を選択的に切り替える
ことが可能なDMAコントローラは、大型化し、信号伝
達が遅れるためクロック信号に対するクリティカルパス
が長くなり高速化が困難であった。
【0052】それに対して、本実施形態のDMAコント
ローラ1におけるステートマシン10は、上述したよう
なWACK状態からWACK状態までの一連の状態遷移
を繰り返してメモリコントローラ80へのデータ転送指
示及び更新信号s6の出力をする。このとき、図3に示
したように、バースト終了デコーダ52からのバースト
終了信号s5が入力されると(図3中の)LAST状
態へ移行する。
ローラ1におけるステートマシン10は、上述したよう
なWACK状態からWACK状態までの一連の状態遷移
を繰り返してメモリコントローラ80へのデータ転送指
示及び更新信号s6の出力をする。このとき、図3に示
したように、バースト終了デコーダ52からのバースト
終了信号s5が入力されると(図3中の)LAST状
態へ移行する。
【0053】つまり、CPU90からのバースト長指定
信号s10に基づきバースト終了デコーダ52からのバ
ースト終了信号s5の出力タイミングが変わるため、一
連の状態遷移におけるB1及びB2状態の繰り返し期間
(図3中の)が変わる。すなわち、バースト長のデー
タ転送に対応する一連の状態遷移の期間が変わることに
なる。従って、バースト長指定信号s10によって選択
的に指定されるバースト長に対応するタイミングで、メ
モリコントローラ80へのデータ転送指示及び更新信号
s6の出力を行うことができる。
信号s10に基づきバースト終了デコーダ52からのバ
ースト終了信号s5の出力タイミングが変わるため、一
連の状態遷移におけるB1及びB2状態の繰り返し期間
(図3中の)が変わる。すなわち、バースト長のデー
タ転送に対応する一連の状態遷移の期間が変わることに
なる。従って、バースト長指定信号s10によって選択
的に指定されるバースト長に対応するタイミングで、メ
モリコントローラ80へのデータ転送指示及び更新信号
s6の出力を行うことができる。
【0054】これによって、本実施形態のDMAコント
ローラ1では、複数のバースト長を選択的に切り替え可
能であるにもかかわらず、図1に示すようにステートマ
シン10は1台のみとなっている。その結果、DMAコ
ントローラ1は従来に比べて小型化される。
ローラ1では、複数のバースト長を選択的に切り替え可
能であるにもかかわらず、図1に示すようにステートマ
シン10は1台のみとなっている。その結果、DMAコ
ントローラ1は従来に比べて小型化される。
【0055】また、上述したように、本実施形態のDM
Aコントローラ1におけるアドレスカウンタ20のイン
クリメンタ22は図4に示す構成となっている。この回
路は、従来からの加算回路に、図中αに示す論理素子O
R及びNOTを新規に追加したものである。この回路に
よって、8バイト及び16バイトの2つのバースト長が
バースト長指定信号によって切り替えられた場合であっ
ても、それぞれのバースト長に対応してアドレス関連情
報に「1」又は「2」を加算することができる。
Aコントローラ1におけるアドレスカウンタ20のイン
クリメンタ22は図4に示す構成となっている。この回
路は、従来からの加算回路に、図中αに示す論理素子O
R及びNOTを新規に追加したものである。この回路に
よって、8バイト及び16バイトの2つのバースト長が
バースト長指定信号によって切り替えられた場合であっ
ても、それぞれのバースト長に対応してアドレス関連情
報に「1」又は「2」を加算することができる。
【0056】同様に、本実施形態のDMAコントローラ
1における転送カウンタ30のデクリメンタ32は、図
5に示す構成となっている。この回路は、従来からの減
算回路に、図中βに示す論理素子AND及びNOTを新
規に追加したものである。この回路によって、8バイト
及び16バイトの2つのバースト長がバースト長指定信
号s10によって切り替えられた場合であっても、それ
ぞれのバースト長に対応してデータ数関連情報から
「1」又は「2」を減算することができる。
1における転送カウンタ30のデクリメンタ32は、図
5に示す構成となっている。この回路は、従来からの減
算回路に、図中βに示す論理素子AND及びNOTを新
規に追加したものである。この回路によって、8バイト
及び16バイトの2つのバースト長がバースト長指定信
号s10によって切り替えられた場合であっても、それ
ぞれのバースト長に対応してデータ数関連情報から
「1」又は「2」を減算することができる。
【0057】つまり、図4及び図5に示したハード構成
によれば、選択されるバースト長に対応したアドレス関
連情報、データ数関連情報の更新を行うことができる。
これによって、従来のように複数のバースト長にそれぞ
れ対応するアドレスカウンタ及び転送カウンタを設ける
必要がなくなり、DMAコントローラ1はさらに小型化
される。その結果、クリティカルパスの発生を抑えるこ
とができるため高速化することができる。
によれば、選択されるバースト長に対応したアドレス関
連情報、データ数関連情報の更新を行うことができる。
これによって、従来のように複数のバースト長にそれぞ
れ対応するアドレスカウンタ及び転送カウンタを設ける
必要がなくなり、DMAコントローラ1はさらに小型化
される。その結果、クリティカルパスの発生を抑えるこ
とができるため高速化することができる。
【0058】以上、本発明はこのような実施形態に何等
限定されるものではなく、本発明の主旨を逸脱しない範
囲において種々なる形態で実施し得る。例えば、上記実
施形態では、メモリコントローラ80が転送先のアドレ
ス関連情報を指定するものであったため、DMAコント
ローラ1のアドレスカウンタ20は、転送先のアドレス
関連情報を保持するアドレスレジスタ21を備えていた
が、メモリコントローラ等の転送実行手段が転送元及び
転送先の両方のアドレス関連情報を指定するものである
場合、アドレスカウンタが、転送元及び転送先の両方の
アドレス関連情報を保持するアドレスレジスタと、その
両方のアドレス関連情報を更新するインクリメンタを備
えることも考えられる。
限定されるものではなく、本発明の主旨を逸脱しない範
囲において種々なる形態で実施し得る。例えば、上記実
施形態では、メモリコントローラ80が転送先のアドレ
ス関連情報を指定するものであったため、DMAコント
ローラ1のアドレスカウンタ20は、転送先のアドレス
関連情報を保持するアドレスレジスタ21を備えていた
が、メモリコントローラ等の転送実行手段が転送元及び
転送先の両方のアドレス関連情報を指定するものである
場合、アドレスカウンタが、転送元及び転送先の両方の
アドレス関連情報を保持するアドレスレジスタと、その
両方のアドレス関連情報を更新するインクリメンタを備
えることも考えられる。
【図面の簡単な説明】
【図1】実施形態のDMAコントローラの概略構成を示
すブロック図である。
すブロック図である。
【図2】ステートマシンの状態遷移を説明する説明図で
ある。
ある。
【図3】ステートマシンに対する入出力信号と状態遷移
との関係を示すタイミングチャートである。
との関係を示すタイミングチャートである。
【図4】アドレスカウンタのインクリメンタの構成を示
す回路図である。
す回路図である。
【図5】転送カウンタのデクリメンタの構成を示す回路
図である。
図である。
【図6】アドレスカウンタのアドレスレジスタに保持さ
れるアドレス関連情報を説明する説明図である。
れるアドレス関連情報を説明する説明図である。
1…DMAコントローラ 10…ステートマシン 20…アドレス
カウンタ 21…アドレスレジスタ 22…インクリ
メンタ 30…転送カウンタ 31…転送レジ
スタ 32…デクリメンタ 40…転送終了
デコーダ 51…バーストカウンタ 52…バースト
終了デコーダ 80…メモリコントローラ 90…CPU s0…DMA信号 s1…リクエス
ト信号 s2…アクノレッジ信号 s3…コントロ
ール信号 s4…転送期間信号 s5…バースト
終了信号 s6…更新信号 s10…バースト
長指定信号 s11…転送終了信号
カウンタ 21…アドレスレジスタ 22…インクリ
メンタ 30…転送カウンタ 31…転送レジ
スタ 32…デクリメンタ 40…転送終了
デコーダ 51…バーストカウンタ 52…バースト
終了デコーダ 80…メモリコントローラ 90…CPU s0…DMA信号 s1…リクエス
ト信号 s2…アクノレッジ信号 s3…コントロ
ール信号 s4…転送期間信号 s5…バースト
終了信号 s6…更新信号 s10…バースト
長指定信号 s11…転送終了信号
Claims (4)
- 【請求項1】 バースト長のデータをまとめて転送する
転送実行手段に当該バースト長のデータ転送を指示する
と共に、更新信号を出力する状態制御手段と、 転送元又は転送先の少なくとも一方のアドレス関連情報
を保持し、前記状態制御手段によって出力される前記更
新信号が入力されると、前記転送実行手段へ出力する前
記アドレス関連情報を更新するアドレス保持更新手段
と、 前記状態制御手段によって出力される前記更新信号が入
力されると、転送の完了したデータ数を更新するデータ
数保持更新手段と、 該データ数保持更新手段によって更新されるデータ数関
連情報に基づいて制御手段からの指示による一連のデー
タ転送の終了を判断し、前記状態制御手段へ転送終了信
号を出力する転送終了判断手段とを備え、 前記状態制御手段が、前記転送終了判断手段からの前記
転送終了信号が入力されたことを判断するまで、前記転
送実行手段に対し繰り返し前記バースト長のデータ転送
を指示することによって前記一連のデータ転送を実現す
るDMAコントローラにおいて、 複数のバースト長を選択的に指定するための前記制御手
段からのバースト長指定信号及び前記転送実行手段によ
るデータの転送中に前記状態制御手段から出力される転
送期間信号に基づき前記バースト長のデータ転送の終了
を判断してバースト終了信号を前記状態制御手段へ出力
するバースト終了判断手段を備え、 前記状態制御手段は、さらに、前記バースト終了判断手
段からの前記バースト終了信号に基づき、前記転送実行
手段への前記データ転送の指示タイミングと、前記アド
レス保持更新手段及び前記データ数保持更新手段への前
記更新信号の出力タイミングとを変更するよう構成され
ていることを特徴とするDMAコントローラ。 - 【請求項2】 請求項1に記載のDMAコントローラに
おいて、 前記状態制御手段は、初期状態である第1の状態で前記
制御手段からの指示によって、前記転送実行手段にデー
タ転送の準備をさせるリクエスト信号を有効にすると共
に、当該リクエスト信号に対応して前記転送実行手段か
ら送信されるアクノレッジ信号の入力を判断する第2の
状態へ移行し、当該第2の状態で前記転送実行手段から
の前記アクノレッジ信号が入力されると、データ転送の
開始を指示するコントロール信号を前記転送実行手段へ
出力すると共に、前記転送期間信号を出力する第3の状
態と、前記バースト終了信号の入力を判断すると共に、
前記転送期間信号を出力する第4の状態とを交互に繰り
返し、当該第4の状態で前記バースト終了信号が入力さ
れた場合、前記転送終了信号の入力を判断すると共に、
前記リクエスト信号を無効とし、前記更新信号を出力す
る第5の状態へ移行し、当該第5の状態で前記転送終了
信号が入力された場合は前記第1の状態へ移行し、一
方、当該第5の状態で転送終了信号が入力されない場合
は前記第2の状態へ移行するよう構成されていることを
特徴とするDMAコントローラ。 - 【請求項3】 請求項1又は2に記載のDMAコントロ
ーラにおいて、 前記アドレス保持更新手段は、さらに、前記制御手段か
らのバースト長指定信号に基づき、複数のバースト長か
ら選択的に指定されたバースト長に対応するアドレス関
連情報の更新を共通のハード構成を利用して行うよう構
成されていることを特徴とするDMAコントローラ。 - 【請求項4】 請求項1乃至3のいずれかに記載のDM
Aコントローラにおいて、 前記データ数保持更新手段は、さらに、前記制御手段か
らのバースト長指定信号に基づき、複数のバースト長か
ら選択的に指定されたバースト長に対応するデータ数関
連情報の更新を共通のハード構成を利用して行うよう構
成されていることを特徴とするDMAコントローラ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13390497A JPH10326248A (ja) | 1997-05-23 | 1997-05-23 | Dmaコントローラ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13390497A JPH10326248A (ja) | 1997-05-23 | 1997-05-23 | Dmaコントローラ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10326248A true JPH10326248A (ja) | 1998-12-08 |
Family
ID=15115828
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13390497A Pending JPH10326248A (ja) | 1997-05-23 | 1997-05-23 | Dmaコントローラ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH10326248A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100375233B1 (ko) * | 2001-03-16 | 2003-03-08 | 삼성전자주식회사 | 전송될 데이터 길이 값에 따라 전송 모드가 유동적으로변환되는 직접 메모리 억세스 컨트롤러 |
| WO2006057841A1 (en) * | 2004-11-22 | 2006-06-01 | Qlogic Corporation | Method and system for dma optimization in host bus adapters |
| JP2008299969A (ja) * | 2007-05-31 | 2008-12-11 | Oki Electric Ind Co Ltd | データ処理装置 |
-
1997
- 1997-05-23 JP JP13390497A patent/JPH10326248A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100375233B1 (ko) * | 2001-03-16 | 2003-03-08 | 삼성전자주식회사 | 전송될 데이터 길이 값에 따라 전송 모드가 유동적으로변환되는 직접 메모리 억세스 컨트롤러 |
| WO2006057841A1 (en) * | 2004-11-22 | 2006-06-01 | Qlogic Corporation | Method and system for dma optimization in host bus adapters |
| US7398335B2 (en) | 2004-11-22 | 2008-07-08 | Qlogic, Corporation | Method and system for DMA optimization in host bus adapters |
| JP2008299969A (ja) * | 2007-05-31 | 2008-12-11 | Oki Electric Ind Co Ltd | データ処理装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR20050075722A (ko) | 프로세서 시스템, dma 제어 회로, dma 제어 방법,dma 제어기의 제어 방법, 화상 처리 방법, 및 화상처리 회로 | |
| JPH0545985B2 (ja) | ||
| US6205536B1 (en) | Combined Instruction and address caching system using independent buses | |
| JPH08185320A (ja) | 半導体集積回路 | |
| JPH10326248A (ja) | Dmaコントローラ | |
| CN101313290B (zh) | 对仅m×n位外围设备执行n位写入访问的系统和方法 | |
| US5889966A (en) | Data processor having bus controller for controlling a plurality of buses independently of each other | |
| JP2577023B2 (ja) | 情報処理装置のアドレス拡張制御方式 | |
| JP2633263B2 (ja) | データ転送制御装置 | |
| JP7771697B2 (ja) | プロセッサ、情報処理装置及び情報処理方法 | |
| JPS62232036A (ja) | 情報処理装置 | |
| JP2003036248A (ja) | シングルチップマイクロプロセッサに用いる小規模プロセッサ | |
| CN113568665B (zh) | 一种数据处理装置 | |
| JP2635863B2 (ja) | 中央処理装置 | |
| JPS59136831A (ja) | デ−タ転送制御装置 | |
| JP3611049B2 (ja) | 内部レジスタ回路 | |
| JP3201439B2 (ja) | ダイレクト・メモリ・アクセス・制御回路 | |
| JP2004362176A (ja) | 集積回路 | |
| JP2608286B2 (ja) | データ転送装置 | |
| JPS63228360A (ja) | Dma制御装置 | |
| JP2504535B2 (ja) | バスユニットの構成方法 | |
| JP2000181709A (ja) | 命令制御装置 | |
| JP2002268876A (ja) | パイプライン処理方法、及び情報処理装置 | |
| JPH04255056A (ja) | Dmaコントローラ | |
| JPH10301776A (ja) | 情報処理装置及びパイプライン処理方法 |