JP2003058491A - データ転送装置及びデータ転送方法 - Google Patents

データ転送装置及びデータ転送方法

Info

Publication number
JP2003058491A
JP2003058491A JP2001246955A JP2001246955A JP2003058491A JP 2003058491 A JP2003058491 A JP 2003058491A JP 2001246955 A JP2001246955 A JP 2001246955A JP 2001246955 A JP2001246955 A JP 2001246955A JP 2003058491 A JP2003058491 A JP 2003058491A
Authority
JP
Japan
Prior art keywords
transfer
data
setting information
area
source area
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
JP2001246955A
Other languages
English (en)
Inventor
Tomohisa Higuchi
知久 樋口
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.)
Kenwood KK
Original Assignee
Kenwood KK
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 Kenwood KK filed Critical Kenwood KK
Priority to JP2001246955A priority Critical patent/JP2003058491A/ja
Publication of JP2003058491A publication Critical patent/JP2003058491A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 データ転送の自由度を増やし、メモリ空間を
有効に利用できるようにする。 【解決手段】 CPU240は、転送元領域に、転送対
象データを書き込む。CPU240は、DMAC300
の専用レジスタ群320の各レジスタに転送に必要なデ
ータを書き込んで、DMAC300にデータの転送を指
示する。DMAC300は、データが転送される毎に転
送カウントレジスタの値をデクリメントする。当該転送
元領域の転送対象データをすべて転送したと判定して
も、転送対象データの総数をデクリメントした値が0で
なければ、次の転送元領域があると判定し、転送元領域
に書き込まれたコマンド、新たなアドレスデータを検出
し、これを専用レジスタ群320の各レジスタに書き込
んで、転送元領域を変更する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ転送装置及
びデータ転送方法に関する。
【0002】
【従来の技術】メモリ相互間あるいはメモリと周辺装置
との間で、直接データを転送するDMA(Direct Memor
y Access)方式によるデータ転送装置が知られている。
【0003】このデータ転送装置は、データ転送を実行
するDMAC(DMAコントローラ)と、DMACを制
御する中央演算処理装置(CPU)と、を備えて構成さ
れている。
【0004】DMACは、複数のレジスタを内蔵してい
る。CPUは、このレジスタに、転送元、転送先のアド
レス情報、転送するデータ数等の設定情報を記録して、
DMACにDMA転送を行うように指令する。
【0005】DMACは、CPUからDMA転送が指令
されると、CPUをデータバスから切り離し、各レジス
タに記録された設定情報に基づいてデータ転送を実行す
る。そして、データ転送が終了すると、DMACは、C
PUにデータ転送の終了を通知する。
【0006】このように、かかるデータ転送装置では、
一旦、データ転送が開始されると、データ転送がCPU
を介さずに行われるので、メモリ相互間あるいはメモリ
と周辺装置との間での高速かつ直接的なデータ転送を行
い得る。
【0007】
【発明が解決しようとする課題】しかしながら、従来の
データ転送装置では、転送元、転送先のアドレスが固定
されているため、連続したアドレス空間がなければ、D
MA方式を用いることができない。言い換えると、デー
タが連続していなければ、全てのデータを一度に送るこ
とはできない。
【0008】従って、連続したメモリ空間でなければD
MA方式を利用することができないので、DMA転送に
おいて、メモリを有効に利用できないといった不都合が
生じる。
【0009】本発明は、このような従来の問題点に鑑み
てなされたもので、データ転送の自由度を増やし、メモ
リ空間を有効に利用することが可能なデータ転送装置及
びデータ転送方法を提供することを目的とする。
【0010】
【課題を解決するための手段】この目的を達成するた
め、本発明の第1の観点に係るデータ転送装置は、ダイ
レクトメモリアクセスによりデータを転送するデータ転
送装置において、データ転送の設定情報として、転送す
るデータのデータ総数とデータの転送元領域の領域情報
と転送先領域の領域情報とを記憶する設定情報記憶手段
と、前記転送設定情報記憶手段に記憶された前記設定情
報に基づいて、前記転送元領域のデータを、前記転送先
領域へ転送するデータ転送手段と、前記データ転送手段
が転送したデータの転送データ数を計数する転送データ
計数手段と、前記転送データ計数手段が計数した転送デ
ータ数と前記設定情報記憶手段に記憶された設定情報と
に基づいて、当該設定情報に変更があるか否かを判定す
る設定変更判定手段と、前記設定変更判定手段が、設定
情報に変更があると判定した場合、前記転送元領域に記
憶されている新たな設定情報を検出する設定情報検出手
段と、前記設定情報検出手段が検出した新たな設定情報
を、前記設定情報記憶手段に書き込み、書き込んだ設定
情報に基づいてデータ転送を継続させるデータ転送継続
手段と、を備えたものである。
【0011】前記設定変更判定手段は、設定情報記憶手
段に記憶された転送元領域の情報に従って転送元領域の
データをすべて転送したにもかかわらず、前記転送デー
タ計数手段が計数した転送データ数が、設定情報記憶手
段に記憶されているデータ総数に達していない場合、転
送元領域の領域情報に変更があると判定するものであっ
てもよい。
【0012】前記設定変更判定手段は、設定情報記憶手
段に記憶された転送元領域の情報に従って、転送先領域
にデータをすべて格納したにもかかわらず、前記転送デ
ータ計数手段が計数した転送データ数が、設定情報記憶
手段に記憶されているデータ総数に達していない場合、
転送先領域の領域情報に変更があると判定するものであ
ってもよい。
【0013】前記転送元領域に、新たな設定情報を書き
込む設定情報書き込み手段を備えたものであってもよ
い。
【0014】前記設定情報書き込み手段は、新たな設定
情報として、複数の転送元領域の情報を書き込むもので
あってもよい。
【0015】前記設定情報書き込み手段は、新たな設定
情報として、複数の転送先領域の情報を書き込むもので
あってもよい。
【0016】本発明の第2の観点に係るデータ転送方法
は、設定情報として、転送するデータのデータ総数とデ
ータの転送元領域の領域情報と転送先領域の領域情報と
を設定情報記憶手段に記憶するステップと、前記記憶さ
れた各設定情報に基づいて、前記転送元領域のデータ
を、前記転送先領域へ転送するステップと、前記転送し
たデータの転送データ数を計数するステップと、前記計
数した転送データ数と前記設定情報記憶手段に記憶され
た設定情報とに基づいて、設定情報に変更があるか否か
を判定するステップと、設定情報に変更があると判定し
た場合、転送元領域に記憶されている新たな設定情報を
検出するステップと、検出した新たな設定情報を設定情
報記憶手段に書き込み、書き込んだ新たな設定情報に基
づいてデータ転送を継続させるステップと、を備えたも
のである。
【0017】
【発明の実施の形態】以下、本発明の実施の形態に係る
データ転送装置を図面を参照して説明する。第1の実施
の形態に係るデータ転送装置を含むコンピュータシステ
ムの構成を図1に示す。
【0018】図1に示すように、コンピュータシステム
は、ROM(Read Only Memory)110と、RAM(Ra
ndom Access Memory)120と、I/O空間130〜1
80と、周辺入出力バス210と、メイン入出力バス2
20と、バス制御部230と、CPU(Central Proces
sing Unit)240と、DMAC(DMAC:DirectMem
ory Access Controller)300と、を備えて構成され
ている。
【0019】周辺入出力バス210は、周辺装置との間
でデータを転送するためのデータバスであり、このバス
には、ROM110と、RAM120と、I/O空間1
30〜170とが接続されている。
【0020】ROM110は、予めプログラム等が記録
された読み出し専用のメモリである。RAM120は、
処理中のデータ等を一時的に記録する読み書き両用のメ
モリである。
【0021】I/O空間130〜180は、図示しない
プリンタやハードディスク装置等の周辺機器類との間で
データをやり取りする際の受け渡し口となるものであ
る。
【0022】メイン入出力バス220は、コンピュータ
システム内部のデータを転送するためのデータバスであ
り、周辺入出力バス210に接続され、また、メイン入
出力バス220には、I/O空間180と、バス制御部
230と、CPU240と、DMAC300とが接続さ
れている。
【0023】バス制御部230は、各アドレス空間のバ
ス幅を考慮して、周辺入出力バス210、メイン入出力
バス220のバス幅を合わせるように制御する制御部で
ある。
【0024】CPU240は、コンピュータシステム全
体を制御するものであり、特に、データ転送を行う場合
には、DMAC300が備える専用レジスタ群320に
データ転送に必要な設定情報をセットしてDMAC30
0にデータ転送を指示する。
【0025】DMAC(Direct Memory Access Control
ler)300は、CPU240からのデータ転送の指示
に従って、データ転送を実行するコントローラであり、
バス・インタフェース310と、専用レジスタ群320
と、アドレス制御部330と、カウンタ制御部340
と、チャネル制御部350とを備えて構成されている。
【0026】バス・インタフェース310は、専用レジ
スタ群320とメイン入出力バス220との間でデータ
のやり取りを行う場合に必要な処理を行うためのもので
ある。
【0027】専用レジスタ群320は、データ転送を行
うのに必要なアドレスデータ等を格納するための複数の
レジスタからなるものであり、図2に示すように、ソー
ス開始アドレスレジスタ321と、ソース終了アドレス
レジスタ322と、デスティネーション開始アドレスレ
ジスタ323と、デスティネーション終了アドレスレジ
スタ324と、転送カウントレジスタ325と、コント
ロールレジスタ326と、を含んでいる。
【0028】ソース開始アドレスレジスタ321は、転
送元のスタートアドレスのデータを格納するためのレジ
スタである。ソース終了アドレスレジスタ322は、転
送元のエンドアドレスのデータを格納するためのレジス
タである。
【0029】デスティネーション開始アドレスレジスタ
323は、転送先のスタートアドレスのデータを格納す
るためのレジスタである。デスティネーション終了アド
レスレジスタ324は、転送先のエンドアドレスのデー
タを格納するためのレジスタである。
【0030】転送カウントレジスタ325は、DMA転
送するデータの総数を最初に格納し、さらに、データを
転送する毎にデクリメントした値を格納するためのレジ
スタである。コントロールレジスタ326は、DMAC
300をコントロールするための各種データを格納する
ためのレジスタである。
【0031】図1において、アドレス制御部330は、
専用レジスタ群320に含まれるソース開始アドレスレ
ジスタ321、ソース終了アドレスレジスタ322、デ
スティネーション開始アドレスレジスタ323、デステ
ィネーション終了アドレスレジスタ324についての制
御を実行するものである。
【0032】カウンタ制御部340は、専用レジスタ群
320に含まれる転送カウントレジスタ325について
の制御を実行するものである。
【0033】チャネル制御部350は、CPU240か
ら、DMA転送を起動するためのDMA起動用リクエス
ト信号を受信し、リクエスト信号を解読してDMA起動
用アクノリッジ信号をCPU240に送信するための制
御部である。
【0034】次に第1の実施の形態に係るコンピュータ
システムの動作を説明する。まず、CPU240は、R
AM120等のメモリにデータを書き込む。そして、C
PU240は、メモリに書き込んだデータを転送する場
合、データを転送するための設定情報を、専用レジスタ
群320の各レジスタに書き込んで、DMA300のチ
ャネル制御部350にDMA起動用リクエスト信号を出
力する。そして、DMAC300は、このリクエスト信
号に基づいてデータ転送を実行する。
【0035】続いて、これらの処理の詳細な動作につい
て説明する。まず、図3に示すフローチャートに基づい
て、CPU240が実行するデータ書き込み動作につい
て説明する。
【0036】CPU240は、アドレスを指定して転送
対象データをRAM120等のメモリに書き込む(ステ
ップS11)。
【0037】CPU240は、転送対象データの書き込
みが終了したか否かを判別し(ステップS12)、転送
対象データの書き込みが終了していないと判別した場
合、続いて、転送元領域、あるいは転送先領域のアドレ
スデータを変更するか否かを判定する(ステップS1
3)。
【0038】転送元領域、あるいは転送先領域のアドレ
スデータを変更しないのであれば、CPU240は、転
送対象データの書き込みを継続する(ステップS1
1)。
【0039】転送元領域、あるいは転送先領域のアドレ
スデータを変更すると判定した場合(ステップS1
3)、CPU240は、アドレスデータの変更を指示す
るコマンドデータを、次のアドレス位置に書き込む(ス
テップS14)。
【0040】そして、CPU240は、コマンドデータ
に続けて、変更後のアドレスデータを書き込む(ステッ
プS15)。尚、ここでは、転送元領域を、コマンドデ
ータと、アドレスデータと、を含めた領域とする。
【0041】そして、CPU240は、再び、転送対象
データを書き込み(ステップS11)、転送対象データ
を全て書き込むと(ステップS12)、データの書き込
み処理を終了させる。
【0042】次に、図4に示すフローチャートに基づい
て、CPU240が実行する専用レジスタ群320の各
レジスタへのデータ書き込み動作について説明する。
【0043】まず、CPU240は、転送元領域のスタ
ートアドレスデータを、ソース開始アドレスレジスタ3
21にセットする(ステップS21)。転送元は、図3
に示すフローチャートに従って、CPU240が既に転
送対象データを書き込んだメモリ空間である。
【0044】CPU240は、転送元領域のエンドアド
レスのデータを、ソース終了アドレスレジスタ322に
セットする(ステップS22)。
【0045】CPU240は、転送先領域のスタートア
ドレスのデータを、デスティネーション開始アドレスレ
ジスタ323にセットする(ステップS23)。
【0046】CPU240は、転送先領域のエンドアド
レスのデータを、デスティネーション終了アドレスレジ
スタ324にセットする(ステップS24)。
【0047】CPU240は、転送すべきデータの総数
を転送カウントレジスタ325にセットする(ステップ
S25)。そして、CPU240は、DMAC300
に、DMA転送を起動するためのDMA起動用リクエス
ト信号を出力してデータ転送を指示する(ステップS2
6)。
【0048】次に、図5に示すフローチャートに基づい
て、DMAC300が実行するデータ転送の動作につい
て説明する。
【0049】まず、DMAC300のチャネル制御部3
50は、CPU240から、DMA起動用リクエスト信
号を受信し、このリクエスト信号を解読してDMA起動
用アクノリッジ信号をCPU240に送信する(ステッ
プS31)。
【0050】また、DMAC300のアドレス制御部3
30は、バス制御部230を制御して、CPU240を
メイン入出力バス220から切り離す。尚、データ転送
に際し、バス制御部230は、転送対象データの幅が転
送先のバス幅よりも小さい場合、複数回に分けてアクセ
スするように、周辺入出力バス210、メイン入出力バ
ス220を制御する。
【0051】DMAC300は、ソース開始アドレスレ
ジスタ321に格納された転送元領域のスタートアドレ
スのデータを取得する(ステップS32)。DMAC3
00は、このアドレスで転送元を指定して転送対象デー
タを読み込む(ステップS33)。
【0052】DMAC300は、デスティネーション開
始アドレスレジスタ323に格納されたアドレスデータ
を取り出し、このアドレスで転送先を指定して、読み込
んだ転送対象データを転送先に転送する(ステップS3
4)。
【0053】DMAC300のカウンタ制御部340
は、転送カウントレジスタ325に格納されたデータの
値をデクリメントする(ステップS35)。
【0054】DMAC300は、ソース開始アドレスレ
ジスタ321に格納されたデータの値と、ソース終了ア
ドレスレジスタ322に格納されたデータの値とを比較
する(ステップS36)。
【0055】DMAC300は、デスティネーション開
始アドレスレジスタ323に格納されたデータの値と、
デスティネーション終了アドレスレジスタ324に格納
されたデータの値とを比較する(ステップS37)。
【0056】DMAC300は、ステップ36,37に
おいて、それぞれ、比較した2つの値が一致するか否か
を判定する(ステップS38)。
【0057】即ち、ソース開始アドレスレジスタ321
に格納されたアドレスデータは、転送対象データが転送
されるごとに、ステップS39においてインクリメント
される。従って、当該転送元領域の転送対象データの転
送が終了していなければ、ステップS36において比較
した2つの値は不一致となる。
【0058】また、デスティネーション開始アドレスレ
ジスタ323に格納されたアドレスデータは、転送対象
データが転送されるごとに、ステップS40においてイ
ンクリメントされる。従って、転送先領域へのデータの
格納が終了していなければ、ステップS37において比
較した2つの値は不一致となる。
【0059】ステップS36において、あるいはステッ
プS37において比較した2つの値が不一致となれば、
DMAC300は、データ転送の継続と判定し、カウン
タ制御部340は、ソース開始アドレスレジスタ321
に格納されたデータの値をインクリメントし(ステップ
S39)、デスティネーション開始アドレスレジスタ3
23に格納されたデータの値をインクリメントする(ス
テップS40)。
【0060】DMAC300は、このようにして順次、
転送元の転送対象データを転送先に転送する(ステップ
S32〜S40)。
【0061】そして、DMAC300は、ステップS3
6において比較した2つの値が、一致した場合、あるい
はステップS37において比較した2つの値が一致した
場合(ステップS38にてYES)、当該転送元領域の
転送対象データをすべて転送したか、あるいは指定され
た転送先領域にデータをすべて格納したと判定する。
【0062】このように判定した場合、DMAC300
は、転送カウントレジスタ325に格納されているデー
タが0になっているか否かを判定する(ステップS4
1)。転送カウントレジスタ325に格納されているデ
ータが0でなければ、転送対象データは、まだ、残って
いることになるので、DMAC300は、転送元領域に
格納されているコマンドデータを検出し、このコマンド
データを読み込む(ステップS42)。
【0063】DMAC300は、コマンドデータを読み
込むと、さらに、アドレスデータを読み込む(ステップ
S43)。
【0064】DMAC300は、コマンドを解読し、読
み込んだアドレスデータを、専用レジスタ群320のい
ずれかのレジスタに書き込む(ステップS44)。そし
て、書き込まれたデータを新たなアドレスデータとし
て、転送対象データの転送を継続させる(ステップS3
2〜S44)。
【0065】転送カウントレジスタ325に格納されて
いるデータが0になると、転送対象データの転送が完了
したと判定し(ステップS41)、DMAC300は、
CPU240に転送対象データの転送が終了した旨の通
知を行う(ステップS45)。
【0066】次に、CPU240、DMAC300の動
作を、図6〜図9を用いて具体的に説明する。
【0067】まず、2つの転送元領域の転送対象データ
を1つの転送先領域に転送する動作について説明する。
尚、数値は、すべて16進数とする。まず、CPU24
0は、図3に示すフローチャートに従って、図6に示す
ようにスタートアドレス1000〜エンドアドレス1F
FFまでの領域Saに転送対象データを書き込む。
【0068】メモリ空間を有効に利用するため、転送対
象データを分割して書き込むと判断した場合、CPU2
40は、アドレス2000を指定して、転送元領域を変
更するためのコマンドを書き込み、アドレス2001,
2002の位置に、それぞれ、次の領域Sbのスタート
アドレスデータ3000、エンドアドレスデータ3FF
Fを書き込む。
【0069】そして、CPU240は、転送元領域Sb
に転送対象データを書き込む。このようにしてCPU2
40の転送元領域Sa,Sbへの書き込み動作が終了す
る。
【0070】CPU240は、転送対象データの転送を
指示する場合、図4に示すフローチャートに従って、専
用レジスタ群320の各レジスタにデータを書き込む。
即ち、CPU240は、図7(a)に示すように、ソー
ス開始アドレスレジスタ321、ソース終了アドレスレ
ジスタ322に、それぞれ、転送元領域Saのスタート
アドレス1000、エンドアドレス1FFFを書き込
み、デスティネーション開始アドレスレジスタ323、
デスティネーション終了アドレスレジスタ324に、そ
れぞれ、転送先領域Scのスタートアドレス4000、
エンドアドレス5FFFを書き込む。
【0071】ここで、RAM120、I/O空間130
を、それぞれ、転送元、転送先とすれば、RAM120
に記憶されているデータを、I/O空間130に転送す
ることができる。
【0072】そして、CPU240は、転送元領域S
a,Sbに書き込んだ転送対象データの総数2000を
転送カウントレジスタ325に書き込む。
【0073】そして、CPU240は、DMAC300
のチャネル制御部350に、DMA起動用リクエスト信
号を送信してDMAC300に転送対象データの転送を
指示する。
【0074】DMAC300は、図5に示すフローチャ
ートに従って、転送元領域Saに記憶された転送対象デ
ータを、転送先領域Scのアドレス4000〜4FFF
の位置に転送する。
【0075】転送元領域Saに格納された転送対象デー
タの転送が終了しても、転送カウントレジスタ25に格
納されているデータの値は、まだ、0にはならないの
で、DMAC300は、専用レジスタ群320の各レジ
スタの値が変更されると判定して、次のアドレス200
0〜2002に格納されたコマンドデータ、アドレスデ
ータ3000、エンドアドレスデータ3FFFを読み込
む。
【0076】DMAC300は、コマンドに従って、図
7(b)に示すように、アドレスデータ3000、3F
FFを、それぞれ、次の転送元領域Sbのスタートアド
レス、エンドアドレスとして、アドレスソース開始アド
レスレジスタ321、ソース終了アドレスレジスタ32
2に書き込む。
【0077】そして、DMAC300は、転送元領域S
bに格納された転送対象データを、転送先領域Scのア
ドレス5000〜5FFFに転送する。転送が終了する
と、DMAC300は、CPU240に転送対象データ
の転送が終了した旨の通知を行う。
【0078】次に、1つの転送元領域の転送対象データ
を2つの転送先領域に転送する動作について説明する。
まず、CPU240は、図3に示すフローチャートに従
って、図8に示すように転送元領域Sdのアドレス10
00〜1FFFに転送対象データを書き込む。そして、
CPU240は、アドレス2000にコマンドデータを
書き込み、アドレス2001,2002に、それぞれ、
転送元領域Sdのアドレス2005、エンドアドレス3
004を書き込み、アドレス2003,2004に、そ
れぞれ、転送先領域Sfのスタートアドレスデータ60
00、エンドアドレスデータ6FFFを書き込む。
【0079】そして、CPU240は、転送元領域Sd
に転送対象データを書き込む。このようにしてCPU2
40の転送元領域Sdへの書き込み動作が終了する。
【0080】CPU240は、転送対象データの転送を
指示する場合、図9(a)に示すように、ソース開始ア
ドレスレジスタ321、ソース終了アドレスレジスタ3
22に、それぞれ、転送元領域Sdのスタートアドレス
1000、アドレス1FFFを書き込み、デスティネー
ション開始アドレスレジスタ323、デスティネーショ
ン終了アドレスレジスタ324に、それぞれ、転送先領
域Seのスタートアドレス4000、エンドアドレス4
FFFを書き込む。
【0081】CPU240は、転送元領域Sdに書き込
んだ転送対象データの総数2000を転送カウントレジ
スタ325に書き込む。
【0082】CPU240は、DMAC300のチャネ
ル制御部350に、DMA起動用リクエスト信号を送信
してDMAC300に転送対象データの転送を指示す
る。
【0083】DMAC300は、図5に示すフローチャ
ートに従って、転送元領域Sdに記憶されたデータを、
転送先領域Seのアドレス4000〜4FFFの位置に
転送する。
【0084】転送先領域Seにすべての転送対象データ
が格納されても、転送カウントレジスタ25に格納され
ているデータの値は、まだ、0にはならないので、DM
AC300は、専用レジスタ群320の各レジスタの値
が変更されると判定して、転送元領域Sdのアドレス2
000に記憶されているコマンドデータを検出し、さら
に、次のアドレス2001〜2004に記憶されている
アドレスデータ2005,3004,6000,6FF
Fを読み込む。
【0085】DMAC300は、コマンドに従って、図
9(b)に示すように、アドレスデータ2005、30
04を、それぞれ、転送元領域Sdの新たなスタートア
ドレス、エンドアドレスとして、ソース開始アドレスレ
ジスタ321、ソース終了アドレスレジスタ322に書
き込む。
【0086】また、DMAC300は、アドレスデータ
6000、6FFFを、それぞれ、新たな転送先領域S
fのスタートアドレス、エンドアドレスとして、デステ
ィネーション開始アドレスレジスタ323、デスティネ
ーション終了アドレスレジスタ324に書き込む。
【0087】そして、DMAC300は、転送元領域S
dの2005〜3004に格納された転送対象データ
を、転送先領域Sfのアドレス6000〜6FFFに転
送する。転送が終了すると、DMAC300は、CPU
240に転送対象データの転送が終了した旨の通知を行
う。
【0088】以上説明したように、本実施の形態によれ
ば、CPU240は、転送元領域、転送先領域を変更す
る場合、転送元領域に新たなアドレスデータを書き込
み、DMAC300は、専用レジスタ群320の各レジ
スタに格納されたデータと転送データの総数とに従っ
て、データ転送中に、転送元領域、転送先領域の変更が
あるか否かを判定し、変更がある場合、転送元領域に記
録された新たなアドレスデータを検出し、レジスタに格
納するようにした。従って、転送元、転送先のアドレス
が固定的にはならず、DMA転送の自由度が増し、転送
対象データを分割して複数の領域に記憶することがで
き、メモリ空間を有効に利用することができる。
【0089】また、最初に、CPU240がレジスタ、
転送元領域へのデータの書き込みを行っておけば、メモ
リ上に分割して配置されたデータを1つの転送先領域に
転送したり、1つの転送元のデータを分割して配置した
りすることができ、外部のI/O空間上にマッピングさ
れたデータを読み出して、メモリ上の別々の場所に展開
することが可能となる。例えば、音声のLRの2チャネ
ル分のデータのように、LチャネルのデータとRチャネ
ルのデータとを互いに異なる領域に格納しておくことも
できる。
【0090】尚、本発明を実施するにあたっては、種々
の形態が考えられ、上記実施の形態に限られるものでは
ない。例えば、コマンド及び新たなアドレスデータを格
納する場所は、最初の転送元領域の次のアドレス位置に
限られるものではなく、最初の転送元領域の末尾のデー
タをアドレスデータとして格納しておくこともできる
し、また、新たなアドレスデータを書き込める場所であ
れば、転送元領域でなくてもよい。
【0091】データ転送が終了した場合に、各チャネル
に最初から指定されたメモリアドレスを読み込み、その
アドレス位置に変更用の情報を記憶させておくこともで
きる。
【0092】次の転送元領域のスタートアドレス、エン
ドアドレスのデータに続けて、入出力方向を設定する設
定データを付加しておくこともできる。このようにして
おけば、DMA1チャネルで入出力が異なるデータ転送
が可能となる。
【0093】DMAC内の専用レジスタ群320を、図
10に示すように複数バンク構成(第1のバンク320
1、第2のバンク3202、第3のバンク3203、
…)としておき、最初の設定が終了したら、すべての設
定を次のバンクに設定されている値にすることもでき
る。
【0094】書き換え可能なDMA動作ディセーブル設
定レジスタを設けておき、DMA転送の途中で一時停止
させておくこともできる。そして、再起動させる場合
は、このレジスタのデータを書き込むようにすることも
できる。
【0095】
【発明の効果】以上説明したように、本発明によれば、
データ転送の自由度を増やすことができ、しかもメモリ
空間を有効に利用することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るデータ転送装
置を含むコンピュータシステムの構成を示すブロック図
である。
【図2】図1のDMACの専用レジスタ群の構成を示す
ブロック図である。
【図3】図1のCPUが実行するデータ書き込み動作を
示すフローチャートである。
【図4】図1のCPUが実行する各レジスタへの書き込
み動作を示すフローチャートである。
【図5】図1のDMACが実行するデータ転送の動作を
示すフローチャートである。
【図6】分割した転送元領域のデータを1つの転送先領
域に転送する場合のCPU、DMACの具体的動作を示
す説明図である。
【図7】分割した転送元領域のデータを1つの転送先領
域に転送する場合の各レジスタに設定されるデータの一
例を示す説明図である。
【図8】1つの転送元領域のデータを分割した2つの転
送先領域に転送する場合のCPU、DMACの具体的動
作を示す説明図である。
【図9】1つの転送元領域のデータを2つの転送先領域
に分割して転送する場合の各レジスタに設定されるデー
タの一例を示す説明図である。
【図10】図1のデータ転送装置における専用レジスタ
群の別の具体例を示すブロック図である。
【符号の説明】 300 DMAC(DMAC:Direct Memory Access C
ontroller) 310 バス・インタフェース 320 専用レジスタ群 321 ソース開始アドレスレジスタ 322 ソース終了アドレスレジスタ 323 デスティネーション開始アドレスレジスタ 324 デスティネーション終了アドレスレジスタ 325 転送カウントレジスタ 326 コントロールレジスタ 330 アドレス制御部 340 カウンタ制御部 350 チャネル制御部

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】ダイレクトメモリアクセスによりデータを
    転送するデータ転送装置において、 データ転送の設定情報として、転送するデータのデータ
    総数とデータの転送元領域の領域情報と転送先領域の領
    域情報とを記憶する設定情報記憶手段と、 前記転送設定情報記憶手段に記憶された前記設定情報に
    基づいて、前記転送元領域のデータを、前記転送先領域
    へ転送するデータ転送手段と、 前記データ転送手段が転送したデータの転送データ数を
    計数する転送データ計数手段と、 前記転送データ計数手段が計数した転送データ数と前記
    設定情報記憶手段に記憶された設定情報とに基づいて、
    当該設定情報に変更があるか否かを判定する設定変更判
    定手段と、 前記設定変更判定手段が、設定情報に変更があると判定
    した場合、前記転送元領域に記憶されている新たな設定
    情報を検出する設定情報検出手段と、 前記設定情報検出手段が検出した新たな設定情報を、前
    記設定情報記憶手段に書き込み、書き込んだ設定情報に
    基づいてデータ転送を継続させるデータ転送継続手段
    と、を備えた、 ことを特徴とするデータ転送装置。
  2. 【請求項2】前記設定変更判定手段は、設定情報記憶手
    段に記憶された転送元領域の情報に従って転送元領域の
    データをすべて転送したにもかかわらず、前記転送デー
    タ計数手段が計数した転送データ数が、設定情報記憶手
    段に記憶されているデータ総数に達していない場合、転
    送元領域の領域情報に変更があると判定するものであ
    る、 ことを特徴とする請求項1に記載のデータ転送装置。
  3. 【請求項3】前記設定変更判定手段は、設定情報記憶手
    段に記憶された転送元領域の情報に従って、転送先領域
    にデータをすべて格納したにもかかわらず、前記転送デ
    ータ計数手段が計数した転送データ数が、設定情報記憶
    手段に記憶されているデータ総数に達していない場合、
    転送先領域の領域情報に変更があると判定するものであ
    る、 ことを特徴とする請求項1又は2に記載のデータ転送装
    置。
  4. 【請求項4】前記転送元領域に、新たな設定情報を書き
    込む設定情報書き込み手段を備えた、 ことを特徴とする請求項1乃至3のいずれか1項に記載
    のデータ転送装置。
  5. 【請求項5】前記設定情報書き込み手段は、新たな設定
    情報として、複数の転送元領域の情報を書き込むもので
    ある、 ことを特徴とする請求項4に記載のデータ転送装置。
  6. 【請求項6】前記設定情報書き込み手段は、新たな設定
    情報として、複数の転送先領域の情報を書き込むもので
    ある、 ことを特徴とする請求項4又は5に記載のデータ転送装
    置。
  7. 【請求項7】設定情報として、転送するデータのデータ
    総数とデータの転送元領域の領域情報と転送先領域の領
    域情報とを設定情報記憶手段に記憶するステップと、 前記記憶された各設定情報に基づいて、前記転送元領域
    のデータを、前記転送先領域へ転送するステップと、 前記転送したデータの転送データ数を計数するステップ
    と、 前記計数した転送データ数と前記設定情報記憶手段に記
    憶された設定情報とに基づいて、設定情報に変更がある
    か否かを判定するステップと、 設定情報に変更があると判定した場合、転送元領域に記
    憶されている新たな設定情報を検出するステップと、 検出した新たな設定情報を設定情報記憶手段に書き込
    み、書き込んだ新たな設定情報に基づいてデータ転送を
    継続させるステップと、を備えた、 ことを特徴とするデータ転送方法。
JP2001246955A 2001-08-16 2001-08-16 データ転送装置及びデータ転送方法 Pending JP2003058491A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001246955A JP2003058491A (ja) 2001-08-16 2001-08-16 データ転送装置及びデータ転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001246955A JP2003058491A (ja) 2001-08-16 2001-08-16 データ転送装置及びデータ転送方法

Publications (1)

Publication Number Publication Date
JP2003058491A true JP2003058491A (ja) 2003-02-28

Family

ID=19076390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001246955A Pending JP2003058491A (ja) 2001-08-16 2001-08-16 データ転送装置及びデータ転送方法

Country Status (1)

Country Link
JP (1) JP2003058491A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031871B2 (en) 2015-01-20 2018-07-24 Fujitsu Limited DMA control device, micro control unit, and DMA control method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031871B2 (en) 2015-01-20 2018-07-24 Fujitsu Limited DMA control device, micro control unit, and DMA control method

Similar Documents

Publication Publication Date Title
JPH03150659A (ja) データ転送方式
JP4642531B2 (ja) データ要求のアービトレーション
JP2003058491A (ja) データ転送装置及びデータ転送方法
JPS59723A (ja) 入出力インタ−フエ−ス制御方式
JPS6240736B2 (ja)
JPH09319698A (ja) ダイレクト・メモリ・アクセス転送方式
EP1193606B1 (en) Apparatus and method for a host port interface unit in a digital signal processing unit
JPH0519181B2 (ja)
JP2000099391A (ja) プリンタ装置およびプリンタ制御方法、並びに記録媒体
JP2693930B2 (ja) ベクトル処理装置
JPH0316652B2 (ja)
JPH11327798A (ja) データ転送制御装置
JPH01253057A (ja) 計算機の入出力チャネル制御方式
JPH02136949A (ja) 入出力制御装置
JPH05204830A (ja) 入出力制御装置
JPS6232542A (ja) デ−タ処理装置
JPS60254355A (ja) クロスコ−ル制御方式
JPH05189357A (ja) デ−タチェイニング制御方法および装置
JPS6020269A (ja) マイクロコンピユ−タシステム
JPH0424733B2 (ja)
JPS6168664A (ja) 入出力装置アドレス設定方式
JPH0546322A (ja) デイスクコントローラ
JPS6037062A (ja) メモリ読出し方法
JPH03113503A (ja) 産業用コンピュータ
JPH07134683A (ja) データ転送方式