JP2005157717A - データ転送方法及びその装置 - Google Patents

データ転送方法及びその装置 Download PDF

Info

Publication number
JP2005157717A
JP2005157717A JP2003394986A JP2003394986A JP2005157717A JP 2005157717 A JP2005157717 A JP 2005157717A JP 2003394986 A JP2003394986 A JP 2003394986A JP 2003394986 A JP2003394986 A JP 2003394986A JP 2005157717 A JP2005157717 A JP 2005157717A
Authority
JP
Japan
Prior art keywords
command
transfer
data
data transfer
cpu
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
JP2003394986A
Other languages
English (en)
Inventor
Yuichi Osada
勇一 長田
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.)
Renesas Micro Systems Co Ltd
Original Assignee
Renesas Micro Systems Co Ltd
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 Renesas Micro Systems Co Ltd filed Critical Renesas Micro Systems Co Ltd
Priority to JP2003394986A priority Critical patent/JP2005157717A/ja
Publication of JP2005157717A publication Critical patent/JP2005157717A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】 DMA制御する際にシステム全体の効率化を図ることを可能とする。
【解決手段】 複数のコマンドリスト31〜3nを備え、その一つを用いてCPU1とは独立して制御手段であるアクセス制御部23と実行コマンド部24とが主記憶装置5をDMA制御することによって、CPUが他のコマンドリストにアクセスできる。従って、DMA制御装置が一つの例えばコマンドリスト31に含まれる全コマンドを処理した後には休止時間なしで、直ちにCPUが設定した次の例えばコマンドリスト33を処理できる。
【選択図】 図1

Description

本発明は、例えばマイクロコンピュータ・システムのような情報処理システムで主記憶装置と主記憶装置及び周辺装置のうちの一つとの間でCPU(セントラル・プロセッサ・ユニット)の処理を介すことなしにデータの転送処理を直接行なうDMA(ダイレクト・メモリ・アクセス)制御のための方法及びその装置に関し、システム全体の処理能力の低下を回避できるデータ転送方法及びその装置に関するものである。
従来のデータ転送装置及びその方法は、例えば特許文献1に開示されている。
このデータ転送装置は、例えば図7に示される機能ブロックにより示すことができる。
図示されるデータ転送装置では、マイクロコンピュータ・システムにおけるCPU101がまずDMA制御装置102に対してコマンドを、コントロールバス3を介して送る。このコマンドに基づいて、DMA制御装置102がCPU101から開始フラグを受けた際にメモリバス4を介して主記憶装置5に直接アクセスし、主記憶装置5におけるデータ転送制御を行なっている。
特許文献1でDMACと記載されるのは図7におけるDMA制御装置102である。また、専用レジスタ群と記載されるのはコマンドを格納するメモリ部分であり、例えば制御レジスタ121とコマンドリスト122における一つのコマンド131とに対応する。すなわち、コマンド131には、開始される転送元(ソース)開始アドレス及び転送先(デスティネイション)開始アドレス、終了する転送元(ソース)終了アドレス及び転送先(デスティネイション)終了アドレス、並びに開始から終了までのアドレス数であるデータの転送数が含まれている。
図示されるデータ転送装置は、CPU101、DMA制御装置102、コントロールバス3、メモリバス4、及び主記憶装置5から構成される。DMA制御装置102は、制御レジスタ121、コマンドリスト122、アクセス制御部123、及びアドレス生成機能を有する実行コマンド部124から構成される。
制御レジスタ121は開始フラグ、ディセーブル(動作禁止)フラグなどを含み、各種フラグは、CPU101からコントロールバス3を介して制御され、内部に保持される情報の読み書きが可能である。コマンドリスト122は一つだけでなく複数のコマンド13Xを有することが可能であり、各コマンドは、CPU101からコントロールバス3を介して制御され、内部に格納される情報の読み書きが可能である。
アクセス制御部123は、実行コマンド部124と協同動作してDMA制御装置102が主記憶装置5とアクセスするための各種の信号を生成し、データ転送を制御する。また、実行コマンド部124は、DMA制御装置102が例えばコマンド131を実行する際にコマンド131を内部に移し替え、このコマンド131の実行中にディセーブルフラグによりディセーブル設定を受けた際には、このコマンド131の実行を中断することができる。この実行コマンド部124は、書き込まれたコマンドに従い主記憶装置5とアクセスするためのアドレスを生成する。
また、図8に示されるコマンドリスト122には三つのコマンド131〜133が格納され、コマンド131が転送元開始アドレス、転送元終了アドレス、転送先開始アドレス、転送先終了アドレス、及び転送数をそれぞれのレジスタに格納している。同様に、コマンド132、133としてそれぞれの各レジスタにも同様に各アドレスと転送数とが格納されている。
次に、図9に図7及び図8を併せ参照してDMA制御装置102の主要動作手順について説明する。
DMA制御装置102は、コマンド131〜133それぞれにコマンドの格納があり、制御レジスタ121にCPU101から開始フラグのセットを受付け(手順S101)した際にはコマンドリスト122の最初のコマンド131を選択(手順S102)してコマンド131に含まれる転送元開始アドレス、転送元終了アドレス、転送先開始アドレス、転送先終了アドレス、および転送数を実行コマンド部124に設定(手順S103)する。次いで、実行コマンド部124は、設定されたコマンド131に含まれる転送元開始アドレスから転送先開始アドレスへのデータ転送(手順S104)を主記憶装置5にメモリバス4を介して指示し実行させる。
実行コマンド部124は、データ転送の終了により転送数を一つ減退(手順S105)させ、転送元開始アドレスおよび転送先開始アドレスを転送元終了アドレスおよび転送先終了アドレスのそれぞれと比較(手順S106)する。開始と終了とのアドレスが一致しない場合(手順S107がNO)では、実行コマンド部124は、実行した転送元開始アドレスと転送先開始アドレスとのそれぞれを一つ増加(手順S108)させて次の順序の開始アドレスを生成し、この増進により更新された開始アドレスでデータ転送(手順S109)すると共に、設定された転送数を一つ減退させる上記手順105に戻り、手順を繰り返す。
上記手順S107が「YES」でデータ転送を実行した開始アドレスがコマンドの終了アドレスと一致した場合、連続アドレス部分のデータ転送が終了している。ここで、上記手順S105により減退された転送数が「0」に未達(手順S111のNO)の場合、転送データが残っていることを示す。従って、実行コマンド部124は、次のコマンド132を選択(手順S112)し、このコマンドを取り込んで内部に設定する上記手順S103に戻り、その手順を繰り返す。
上記手順S111が「YES」で転送数が「0」の場合には全コマンドのデータ転送が終了(手順S113)したので、CPUにこれを通知する。全コマンドの実行が終了するとDMA制御装置102はメモリバス4を開放し、開始フラグを抹消して動作を停止する。
また、ディセーブルフラグの設定によるデータ転送の一時中止の場合には再起動できる。しかし、この一時中止の間でも、CPU101はコマンドリスト122にアクセスできない。
すなわち、上述したDMA制御装置では、一つのコマンドリストしか存在しないため、この一つのコマンドリストに対して転送処理の実行が終了しないと次のコマンドの格納及びその処理ができないという問題がある。
例えばディジタル放送チューナなどの機器において、受信した番組情報または番組の映像データ若しくは音声データを主記憶装置上に展開するにあたり、CPUは一回のデータ転送ごとにDMA制御装置に対してコマンド設定をしなければならない。従って、CPUは、一回のデータ転送処理ごとにDMA制御装置によるデータ転送完了を待つ必要があるという可能性がある。更にCPUは、DMA制御装置に対するコマンド設定のための時間が必要なため、全体の処理能力を低下させる要因となってしまう。CPUが、受信するデータ量に対して十分に処理できる性能があれば問題は少ない。しかし、昨今の高画質化、高情報密度化によりCPUの性能が追いつかないのが実情であり、このため、CPU自体が高価になってしまうという問題点を有する。
また、受信したデータによってはDMA制御によるデータ転送処理の優先順位を変更する必要を生じることがある。この場合、CPUは、その変更のために転送開始までにデータの並び順を検討して、用意するコマンドリストの順番を変更しなければならない。そのため、今回のデータ転送処理と次のデータ転送処理との間に行う処理が増加して、システム全体の処理能力が低下してしまうという問題点を有する。
特開2003−58491号公報(図1、図10)
解決しようとする課題は、CPUからアクセスして格納するコマンドリストがDMA制御装置に一つしか存在しないため、DMA制御装置がこの一つのコマンドリストに対して転送処理の実行を終了しないと、CPUは次のコマンドの格納及びその処理ができないことである。
従って、CPUは、一つのコマンドリストに一つのコマンドしかない場合のように、一回のデータ転送処理ごとにDMA制御装置によるデータ転送完了を待つ可能性がある。更にCPUはDMA制御装置に対するコマンド設定のための時間が必要なため、多数のコマンドリスト処理が連続する場合、DMA制御時間にその設定と解除との処理時間が加算され、全体の処理能力を低下させる要因となってしまう。
また、受信したデータによってはDMA制御によるデータ転送処理の優先順位を変更する必要を生じることがある。この処理のため、CPUは、データ転送開始までにデータの並び順を検討して、用意するコマンドリストの順番を変更しなければならない。そのため、今回のデータ転送処理と次のデータ転送処理との間に行う処理が上述する時間より更に増加して、システム全体の処理能力が低下してしまうという問題点が生じる。
本発明は、一つのCPUから独立して所定のコマンドに基づいてDMA(ダイレクト・メモリ・アクセス)により記憶装置のデータを転送するDMA制御手段に関する。
すなわち、本発明は、システム全体の処理能力低下を回避するため、CPUが独立してアクセス可能な複数のコマンドリストを備えており、CPUはデータ転送処理中を除くコマンドリストにのみアクセス可能であり、コマンドが書き込まれた複数コマンドリストのうちの少なくとも一つに転送許可を与えると共にこの転送許可が複数に与えられた場合にはその転送許可に所定の順序を与えており、DMA制御は、転送許可が与えられたうちから所定の順序により一つのコマンドリストを選択して「データ転送処理中」を設定すると共にこのコマンドリストに含まれるコマンドに基づいて順次データ転送することを主要な特徴としている。
この構成により、一つのコマンドリストのデータ転送処理中に、他のコマンドリストに対してCPUがアクセス可能であり、データ転送処理中以外のコマンドリストにおけるDMA処理の追加、訂正、削除などが可能である。従って、一つのコマンドリストに対してデータ転送の処理が終了した際に、直ちに、所定の順序、例えばコマンドリストの配列順序、またはCPUから指定された処理順序に従った次の順序のコマンドリストをデータ転送のために選択して休止期間なしで連続するデータ転送を実行することができる。
また、ここで採用されるコマンドは、転送元で最初にアクセスしてデータを取り出す転送元開始アドレスと、この取り出したデータを転送して格納する転送先開始アドレスと、連続したアドレスに順次転送するデータ数を示す転送サイズとを指定している。従って、転送元およびこの転送先の開始アドレスから上記転送サイズに示されるデータ数に対応するアドレスまでのデータが転送される。この構成により、コマンドでのメモリ容量を最小に設定することができる。
また、コマンドリストを主記憶装置に備え、CPUから受けた転送許可にしたがって主記憶装置にアクセスし、転送許可されたコマンドリストから取り出したコマンドに基づいて順次データ転送することができる。この構成により、DMA制御装置の大きさを縮小できると共にコマンドリストのデータ格納容量を主記憶装置で増加させることができる。
具体的な構成では、CPUは、データ転送処理中以外の一つのコマンドリストに対してコマンドリストに転送許可のエネーブルフラグを設定すると共に少なくとも一つのコマンドを新規または変更して格納する手段と、このコマンドにしたがったデータ転送を開始させる開始フラグを設定する手段とを備える。更に、CPUは、複数のエネーブルフラグに対して所定の順序として優先順位を設定してもよい。優先順位の設定により、一旦設定された優先順位をCPUから適宜変更することができる。
また、データ転送装置は制御レジスタとコマンドリストテーブルとその制御手段とにより構成され、この制御手段は例えばアクセス制御部と実行コマンド部とにより構成される。
制御レジスタは、データ転送処理中以外の少なくとも一つのコマンドリストに対して、CPUによりコマンドリストそれぞれに対応して転送許可を示すエネーブルフラグとデータ転送開始を要求する開始フラグとが設定される。コマンドリストテーブルは、データ転送処理中以外の時期にCPUによりアクセス可能であり、少なくとも一つのコマンドを新規または変更して格納する複数のコマンドリストを有する。
制御手段では、アクセス制御部が、開始フラグの設定を受けた際、データ転送対象の主記憶装置とアクセスして、実行コマンド部から受ける信号情報に基づき転送元アドレスから転送先アドレスへのデータ転送を制御する。実行コマンド部は、開始フラグの設定またはアクセス制御部からの駆動、及びエネーブルフラグの設定されたコマンドリストが複数の場合には所定の順序で、一つのコマンドリストを選択してデータ転送処理中と設定し、選択されたコマンドリストに含まれるコマンドを受け取り、アクセス制御部と協同動作して受け取ったコマンドに基づきデータ転送用のアドレスを開始アドレスとして生成すると共にデータ転送数を照合してデータ転送の終了を通知する。
本発明のデータ転送方法およびその装置は、データ転送のためDMAを実行する複数のコマンドリストを備え、そのうちの一つのコマンドリストを所定の順序で選択してデータ転送処理中と設定し、データの転送を許可している。このデータ転送実行中では、残るコマンドリストに対するコマンドおよびそのエネーブルフラグはCPUにより自由にアクセスできるので、DMA制御によるデータ転送処理の優先順位変更などが可能である。したがって、データ転送実行直後に次の順序のコマンドリストを選択してDMA制御によるデータ転送が可能である。このため、DMA制御によるデータ転送が休止期間なしで連続して可能であり、システム全体の処理能力を上げるという効果がある。
システム全体の処理能力を上げるという目的を、データ転送のためDMAを実行する複数のコマンドリストを備え、そのうちの一つのコマンドリストを選択しデータ転送処理中に設定してデータの転送を許可し、このデータ転送処理の実行中では、残るコマンドリストにCPUが自由にアクセスすることにより、コマンドリストにおけるコマンド内容および選択順序を新規設定または変更することにより実現した。すなわち、データ転送を実行した直後に次の順序のコマンドリストを選択してDMA制御による連続したデータ転送が可能である。
本発明の実施の一形態について図1を参照して説明する。
図1は、本発明によるデータ転送装置のブロック構成図であって、CPU1、DMA制御装置2、コントロールバス3、メモリバス4、および主記憶装置5により構成される。DMA制御装置2は、制御レジスタ21、コマンドリストテーブル22、アクセス制御部23、およびアドレス生成の実行コマンド部24により構成される。アクセス制御部23および実行コマンド部24は、上述した制御手段を形成し、CPU1から受けた情報に基づいてCPU1の制御を受けることなく、主記憶装置5との直接メモリアクセスを制御する。
図1が上述した従来の装置と相違する点は、複数のコマンドリスト31〜3nをコマンドリストテーブル22として有し、制御手段が実行対象のコマンドを取得してDMAを実行することである。
このため、制御レジスタ21は開始フラグ10と優先順位を付与されたエネーブル(動作許可)フラグ11〜1nとを含み、各フラグはCPU1からコントロールバス3を介して内部に保持される情報の読み書きが可能である。図面上では「エネーブルフラグ・順位」と示されているが、優先順位が付与されたエネーブルフラグを意味しており、今後、特に限定する場合以外は「エネーブルフラグ」とのみ呼称する。エネーブルフラグはコマンドリストにコマンドが書き込まれた際にその優先順位番号と共に例えばフラグ「1」を立てる。しかし、コマンドが書き込まれたコマンドリストでも、エネーブルフラグに優先順位を付与されたフラグ「1」が立っていなければ格納されているコマンドは実行されない。
例えば初期状態のように、すべてのエネーブルフラグ11〜1nにコマンドの格納がなくフラグ「0」が立っている場合、優先順位にしたがって、コマンドがエネーブルフラグ11から順次格納されフラグ「1」が立てられることとしている。図1では、エネーブルフラグ12に対応する処理の実行中に最優先のコマンドがコマンドリスト31に書き込まれた状態を示す。
コマンドリストテーブル22はコマンドリスト31〜3nを含み、それぞれのコマンドリスト31〜3nはCPU1からコントロールバス3を介して内部に格納されるコマンド情報の読み書きが可能である。コマンドリストは一つの実行単位であり、コマンドリスト内に含むコマンドにしたがってデータ転送処理が逐次実行される。この実施の形態において優先順位は、CPU1からの指定がなければ、例えばエネーブルフラグ11〜1nの格納順序としている。
また、本実施の形態では、優先順位は「1」からの番号順とし、データ転送処理のために選択された際には、設定されている優先順位を「−1」演算するものとする。したがって、優先順位「1」は次に選択する最優先順位であり、優先順位「0」の設定は「データ転送処理中」を意味するものとする。また、優先順位「0」を付与されているエネーブルフラグ以外はCPU1からのアクセスにより優先順位の変更が可能である。
ここでは、最優先順位を常に優先順位「1」として説明したが、正の整数による最小数字番号を最優先順位としてもよい。この結果、付与された全ての優先順位を「−1」演算する処理が省かれる。
アクセス制御部23はDMA制御装置2が主記憶装置5をアクセスするための各種の信号を生成する回路であり、開始フラグ10により起動されて例えばエネーブルフラグ11を選択し、コマンドリストテーブル22から対応するコマンドリスト31のコマンド情報を実行コマンド部24Aに取り込む。実行コマンド部24はコマンドリスト31から取り込まれたコマンドに従い主記憶装置5をアクセスするためのアドレスを生成し、転送データ数を計測する回路である。
このような構成により、一つのコマンドリストのデータ転送処理中に、他のコマンドリストに対してCPUがアクセス可能であり、コマンドリストにおけるDMA処理の追加、訂正、削除などが可能である。従って、一つのコマンドリストに対してデータ転送の処理が終了した際に、直ちに、所定の順序、例えば許可が与えられている次に続く順番のコマンドリストをデータ転送のために選択することができる。
また、ここで採用されるコマンドは、転送元で最初にアクセスしてデータを取り出す転送元開始アドレスと、この取り出したデータを転送して格納する転送先開始アドレスと、連続したアドレスに順次転送するデータ数を示す転送サイズとを指定している。従って、転送元およびこの転送先の開始アドレスから上記転送サイズに示されるデータ数に対応するアドレスまでのデータが転送される。この構成により、コマンドのメモリ容量を最小に設定することができる。
次に、図2を参照してコマンドリストテーブル22に格納されるコマンドリスト31〜3nの詳細について説明する。
上述したように、コマンドリスト31〜3nそれぞれはデータ転送処理の実行単位であり、それぞれに含まれるコマンドは、例えば一連の転送データが記憶領域で分割されて転送・格納されるために用意されている。したがって、それぞれのコマンドリストに含まれるコマンドは一つのみの場合も多数の場合もある。
図示されるコマンドリスト31にはDMA制御装置2の動作を指示するコマンド311〜313が格納されている。ここでは三つのコマンドで説明するが、コマンドリスト2Xの大きさにより格納されるコマンド数は任意の正の整数である。コマンドリスト32〜3nも同様である。図2ではコマンドリスト33に一つのコマンド331が格納されている。
図示されるコマンド311〜313は、それぞれ転送元開始アドレス、転送先開始アドレスおよび転送サイズの三つの情報からなり、一つのデータ転送に必要な情報である。ここでは「0x」で始まる値は16進数であることを示す。転送サイズは負の値を設定することが可能であり、この場合、データ転送時のアドレスは一つずつ減退されることを示す。
例えば、図示されるコマンド311には、16進数による転送元開始アドレス「a0000」と転送先開始アドレス「a8000」と転送先サイズ「100」とが格納されている。また、コマンド313には、16進数による転送元開始アドレス「b0000」と転送先開始アドレス「80000」と転送先サイズ「−80」とが格納されている。
次に、図3に図1を併せ参照してDMA制御に関する概略手順について説明する。
まず、CPU1がDMA制御装置2のコマンドリストテーブル22内のコマンドリスト31からコマンドリスト3nまでに対してデータ転送に必要なコマンドを格納(手順S1のYES)し、コマンドを格納した例えば、コマンドリスト31,33に対応して制御レジスタ21に動作許可を示しその優先順位「1,2」それぞれが付与されたエネーブルフラグ11,13を設定(手順S2のYES)する。その後、CPU1が開始フラグ10を制御レジスタ21に設定(手順S3のYES)することにより、DMA制御装置2は、開始フラグの設定を受付け(手順S4)し、設定された最初の順位、この例では優先順位「1」のエネーブルフラグ11を選択(手順S5)する。
DMA制御装置2は、この手順S5でエネーブルフラグ11を選択した際にはエネーブルフラグ11,13の優先順位「1,2」を優先順位「0,1」に更新設定(手順S6)し、エネーブルフラグ11に対してデータ転送処理中を設定する。上述したように、優先順位の更新を選択されたフラグに対してのみ優先順位「0」に更新した際には、上記優先順位は「0,2」とすることができる。この場合、最優先順位は最若番「2」を有するエネーブルフラグに与えられることになる。
次いで、DMA制御装置2は、後で図4を参照して説明するように、選択されたエネーブルフラグ11に対応するコマンドリスト31のコマンド内容に従って主記憶装置5内に格納されている指定されたデータの転送(手順S7)を制御する。
DMA制御装置2は一つのコマンドリスト31によるデータ転送を完了したタイミングでそのエネーブルフラグ11を優先順位「0」と共に抹消(手順S8)する。この時点で、動作許可状態の例えばエネーブルフラグ13、すなわち既に動作許可が設定ざれたコマンドリスト33があり(手順S9のYES)なので、DMA制御装置2は、次の優先順位「1」に設定されているこのエネーブルフラグ13を選択(手順S10)してその優先順位「1」を優先順位「0」に更新する上記手順S6に戻り、手順を繰り返す。
上記手順S9が「NO」で動作許可状態であった各コマンドリストに関して全ての転送処理が終了、すなわち設定ざれたエネーブルフラグが全くない場合、DMA制御装置2は開始フラグ10を抹消(手順S11)してDMA制御装置2自身の動作を停止する。
次に、図4に図1及び図2を併せ参照して上記手順S6のDMA制御装置2によるデータ転送手順について詳細に説明する。ここでは図2に示されるように、コマンドリスト31、33にコマンド311〜313および331それぞれが格納され、制御レジスタ21にエネーブルフラグ11、13が設定されているものとする。
DMA制御装置2は、上記手順S5で制御レジスタ21に開始フラグ10の設定を受付けした際にアクセス制御部23を駆動し、最初の優先順位「1」に設定されたエネーブルフラグ11を選択して対応するコマンドリスト31の最初のコマンド311を選択(手順S20)する。選択されたコマンド311はアクセス制御部23により実行コマンド部24に移し替えされ、転送元および転送先それぞれの開始アドレスと転送サイズとが設定(手順S21)される。
以降の手順はアクセス制御部23と実行コマンド部24とにより構成される制御手段により実行可能であり、DMA制御装置2におけるデータ転送は、実行コマンド部24のコマンド情報に基づきアクセス制御部23により実行される。
この状態で、制御レジスタ21及びコマンドリストテーブル22にCPU1からのアクセスが可能となる。すなわち、CPU1は、制御レジスタ21においてデータ転送処理中の優先順位「0」を付与されたエネーブルフラグに対応するコマンドリストテーブル22内のコマンドリスト以外にアクセスできる。
上記手順S21に続き、アクセス制御部23は実行コマンド部24のコマンド情報、すなわち開始アドレス情報に基づき転送元開始アドレス「a0000」番地から256バイト分のデータを転送先開始アドレス「a8000」番地へ転送(手順S22)する。このデータ転送により実行コマンド部24の転送サイズ「100」は一つ減退(手順S23)し「0ff」となる。
この転送サイズは「0」ではない(手順S24のNO)ので、実行コマンド部24ではコマンド情報のうち転送元および転送先それぞれの開始アドレスを一つ増進(手順S25)して新しい転送元開始アドレス「a0001」番地及び転送先開始アドレス「a8001」番地が生成される。アクセス制御部23はこの新しく生成された開始アドレス情報に基づき転送元開始アドレス「a0001」番地から256バイト分のデータを転送先開始アドレス「a8001」番地へ転送(手順S26)して転送サイズを一つ減退させる上記手順S23に戻る。以降の手順は、上記手順S24での転送サイズが「0」になるまで、この例では「256」回のデータ転送を繰り返す。
上記手順S24が「YES」で転送サイズが「0」になった際には、コマンド311に対応するデータ転送が終了(手順S27)する。ここで、処理中のコマンドリスト31内のコマンド312が残存(手順S28のNO)するので、手順は、このコマンド312を選択(手順S29)して上記手順S21に戻り、繰り返えされる。
すなわち、次のコマンド312を参照し、転送元開始アドレス「a8000」から転送先開始アドレス「b0000」へ128バイトの転送を実行する。すなわち、「a8000」番地に格納されたデータを「b0000」番地に転送し、次に「a8001」番地に格納されたデータを「b0001」番地に格納し、以下順次アドレスを一つずつ増進させつつ、転送サイズのデータ数が「256」になるまでデータ転送を繰り返す。
更に、次にコマンド313を参照し、転送元開始アドレス「b0000」から転送先開始アドレス「80000」へ128バイトの転送を実行する。ここでは転送サイズの値が負になっているので、転送方向が逆になる。すなわち、「b0000」番地に格納されたデータを「80000」番地に転送し、次に「affff」番地に格納されたデータを「7ffff」番地に格納し、以下順次アドレスを一つずつ減退させつつ、転送サイズのデータ数が「128」になるまでデータ転送を繰り返す。ここまででコマンドリスト31のコマンド処理が全て完了したので、コマンドリスト31の処理は完了である。
すなわち、これは上記手順S28が「YES」で全コマンドの処理が終了した場合であり、手順はこの転送終了コマンドリストに対応するエネーブルフラグを抹消する図3における手順S7に続く。
このように、DMA制御装置2では、CPU1から受けた複数のコマンドリストから選択した一つのコマンドリストに基づいてCPU1とは独立し、制御手段が主記憶装置に直接アクセスしてデータ転送するという形態を採用したので、選択した一つのコマンドリストに従ってデータ転送した後、休止時間なしで他の動作可能なコマンドリストを選択してデータ転送できる。従って、システム全体の処理能力低下を回避することができる。
上記説明では、制御手段をアクセス制御部23および実行コマンド部24に機能分担させて説明したが、他の機能ブロックも含め、機能の分離併合は上記機能を満たす限り自由であり、上記説明が本発明を限定するものではない。同様に、例えばデータ転送の計数において、転送サイズをコマンドの転送数としてデータ転送ごとに一つずつ減退させて「0」に達するまでとしているが、データ転送数を一つずつ増進計測して計数値が上記転送サイズの数値と一致するまでとしてもよいなど、機能実行手段におけるこのような変更は上記機能を満たす限り自由であり、上記説明が本発明を限定するものではない。
本発明における別の実施の一形態について図5を参照して説明する。
図5は、本発明によるデータ転送装置のブロック構成図であって、CPU1、DMA制御装置2A、コントロールバス3、メモリバス4、および主記憶装置5Aにより構成される。DMA制御装置2Aは、制御レジスタ21、ポインタリスト25、アクセス制御部23A、およびアドレス生成の実行コマンド部24Aにより構成される。主記憶装置5Aにはコマンドリストテーブル22が格納されている。アクセス制御部23Aおよび実行コマンド部24Aは、上述した制御手段を形成し、CPU1から受けた情報に基づいてCPU1の制御を受けることなく、主記憶装置5Aとの直接メモリアクセスを制御する。
図5と図1との相違は、DMA制御装置2A、アクセス制御部23A、実行コマンド部24A、および主記憶装置5Aにあり、コマンドリストテーブル22が主記憶装置5Aに格納される一方、コマンドリストテーブル22に代わるポインタリスト25がDMA制御装置2Aに新に追加されている。
図1と同一機能のブロックには同一の名称および番号符号を付与してその説明は省略する。
ポインタリスト25はコマンドリスト31〜3nそれぞれに対応するポインタ41〜4nを含み、ポインタ41〜4nそれぞれには主記憶装置5Aに格納されるコマンドリスト31〜3nそれぞれの番地が格納されている。コマンドリスト31〜3nおよびポインタ41〜4nそれぞれは、CPU1からコントロールバス3を介して内部に格納される情報の読み書きが可能である。
アクセス制御部23Aは、DMA制御装置2Aが主記憶装置5Aをアクセスするための各種の信号を生成する回路であり、開始フラグ10により起動されて例えばエネーブルフラグ11を選択し、対応するポインタ41にしたがって主記憶装置5Aからコマンドリスト31のコマンド情報を実行コマンド部24Aに取り込む。実行コマンド部24は取り込まれたコマンドに従い主記憶装置5Aをアクセスするためのアドレスを開始アドレスとして生成し転送データ数をチェックする回路である。
このような構成により、DMA制御装置の機能処理時間は少々増大するが、多数のコマンドリストが大きなメモリ容量を有する主記憶装置に格納される一方、DMA制御装置ではコマンドリストのポインタのみを格納すればよいのでDMA制御装置でのメモリ領域は小さくて済む。また、この処理のための時間は増加するが、上述した実施例1と同様の機能及び効果を発揮することができる。
したがって、上記図3で説明したDMA制御に関する概略手順については、図3の中での「コマンドリスト」を「ポインタ」に読み替えることでよい。
次に、図5に図1及び図2を併せ参照して上記手順S6に対応するDMA制御装置2Aによるデータ転送手順について詳細に説明する。
DMA制御装置2Aは、上記手順S5で制御レジスタ21に開始フラグ10の設定を受付けした際にアクセス制御部23Aを駆動する。アクセス制御部23Aは、例えば設定された最初のエネーブルフラグ11を選択し、対応するポインタ41にしたがった主記憶装置5Aのコマンドリスト31を選択して実行コマンド部24に移し替え取得(手順S40)する。
以降の手順はアクセス制御部23Aと実行コマンド部24Aとの制御手段により実行可能であり、この状態で、制御レジスタ21及びコマンドリストテーブル22に、CPU1からのアクセスが可能となる。従って、DMA制御装置2Aにおけるデータ転送は、実行コマンド部24Aのコマンド情報に基づきアクセス制御部23Aにより実行される。
すなわち、上記手順S40に続き、アクセス制御部23Aは、取得したコマンドリスト31から最初のコマンド311を選択(手順S41)し、実行コマンド部24Aに、転送元および転送先それぞれの開始アドレスと転送サイズとを設定(手順S42)する。
次いで、アクセス制御部23Aは実行コマンド部24Aのコマンド情報、すなわち開始アドレス情報に基づき転送元開始アドレス「a0000」番地から256バイト分のデータを転送先開始アドレス「a8000」番地へ転送(手順S43)する。このデータ転送により実行コマンド部24の転送サイズ「100」は一つ減退(手順S44)し「0ff」となる。
この転送サイズは「0」ではない(手順S45のNO)ので、実行コマンド部24Aではコマンド情報のうち転送元および転送先それぞれの開始アドレスを一つ増進(手順S46)して新しい転送元開始アドレス「a0001」番地及び転送先開始アドレス「a8001」番地が生成される。アクセス制御部23Aはこの新しく生成された開始アドレス情報に基づき転送元開始アドレス「a0001」番地から256バイト分のデータを転送先開始アドレス「a8001」番地へ転送(手順S47)して転送サイズを一つ減退させる上記手順S44に戻る。以降の手順は、上記手順S45での転送サイズが「0」になるまで、この例では「256」回のデータ転送を繰り返す。
上記手順S45が「YES」で転送サイズが「0」になった際には、コマンド311に対応するデータ転送が終了(手順S48)する。ここで、処理中のコマンドリスト31内のコマンド312が残存(手順S49のNO)するので、手順は、次のコマンド312を選択(手順S50)して上記手順S42に戻り、繰り返えされる。
複数のコマンドリストの一つを用いてCPUとは独立して直接メモリアクセス制御することによって、CPUが他のコマンドリストにアクセスできるので、CPUとは独立して直接アクセス制御する際にシステム全体の効率化を図る用途に適用できる。
本発明のデータ転送装置における機能ブロックの実施の一形態を示した図である。(実施例1) 本発明のデータ転送装置におけるコマンドリストテーブルの実施の一形態を示した図である。(実施例1、2共通) 本発明のデータ転送装置におけるDMA制御に関する概略手順の実施の一形態を示したフローチャートである。(実施例1) 図1に示されたデータ転送装置におけるDMA制御装置に関する主要手順の実施の一形態を示したフローチャートである。(実施例1) 本発明による図1とは異なるデータ転送装置における機能ブロックの実施の一形態を示した図である。(実施例2) 図5に示されたデータ転送装置におけるDMA制御装置に関する主要手順の実施の一形態を示したフローチャートである。(実施例2) 従来のデータ転送装置における機能ブロックの一例を示した図である。 図7に示されたデータ転送装置におけるコマンドリストテーブルの一例を示した図である。 図7に示されたデータ転送装置におけるDMA制御装置に関する主要手順の一例を示したフローチャートである。
符号の説明
1 CPU
2、2A DMA制御装置
3 コントロールバス
4 メモリバス
5、5A 主記憶装置
10 開始フラグ
11、13、1n エネーブルフラグ
21 制御レジスタ
22 コマンドリストテーブル
23、23A アクセス制御部
24、24A 実行コマンド部
25 ポインタリスト
31、33、3n コマンドリスト
41、43 ポインタ
311、312、313、321、331 コマンド

Claims (10)

  1. 一つのセントラル・プロセッサ・ユニット(CPU)からダイレクト・メモリ・アクセス(DMA)により所定のコマンドに基づいて記憶装置のデータを転送する方法であって、前記CPUがアクセス可能な複数のコマンドリストを備え、
    前記CPUから、データ転送処理中を除く前記コマンドリストにアクセスし、前記コマンドリストのうちの少なくとも一つに転送許可を与えると共に複数の転送許可に対しては所定の順序を指定し、
    DMA制御により、前記所定の順序に従い一つのコマンドリストを選択してデータ転送処理中を設定すると共に選択されたコマンドリストに含まれるコマンドに基づいて順次データ転送することを特徴とするデータ転送方法。
  2. 請求項1に記載のデータ転送方法において、前記所定の順序は前記CPUから転送許可に優先順位として付与され、データ転送を処理するコマンドリストを前記優先順位にしたがって順次選択することを特徴とするデータ転送方法。
  3. 請求項1に記載のデータ転送方法において、前記コマンドは、転送元で最初にアクセスしてデータを取り出す転送元開始アドレスと、この取り出したデータを転送して格納する転送先開始アドレスと、連続したアドレスに順次転送するデータ数を示す転送サイズとを指定しており、開始アドレスから当該転送サイズに示されるデータ数に対応するアドレスまでのデータを転送することを特徴とするデータ転送方法。
  4. 請求項1に記載のデータ転送方法において、前記コマンドリストを主記憶装置に備え、前記CPUから受けた転送許可にしたがって前記主記憶装置にアクセスし、転送許可されたコマンドリストから取り出したコマンドに基づいて順次データ転送することを特徴とするデータ転送方法。
  5. 一つのセントラル・プロセッサ・ユニット(CPU)が選択した一つのコマンドリストにアクセスして一つまたは複数のコマンドを格納し、この格納されたコマンドに基づいてダイレクト・メモリ・アクセス(DMA)によりデータを転送するデータ転送装置において、
    前記CPUは、データ転送処理中を除く前記コマンドリストに対して前記コマンドリストに転送許可のエネーブルフラグを設定すると共に前記コマンドを新規または変更して格納する手段と、当該コマンドにしたがったデータ転送を開始させる開始フラグを設定する手段とを備え、
    前記データ転送装置は、
    データ転送処理中を除く少なくとも一つのコマンドリストに対して、前記CPUにより前記コマンドリストそれぞれに対応する転送許可のエネーブルフラグとデータ転送開始を要求する開始フラグとが設定される制御レジスタと、
    データ転送処理中を除く時期に前記CPUによりアクセスされ、少なくとも一つのコマンドを新規または変更して格納する前記コマンドリストを複数で有するコマンドリストテーブルと、
    前記開始フラグの設定を受けた際、前記エネーブルフラグの設定されたコマンドリストが複数の場合には所定の順序で、一つのコマンドリストを選択してデータ転送処理中と設定し、選択されたコマンドリストから一つずつのコマンドを受け取ると共に、データ転送対象の記憶装置とアクセスし、受け取った前記コマンドに含まれる信号情報に基づいて転送元アドレスから転送先アドレスへのデータ転送を制御する制御手段と
    を備えることを特徴とするデータ転送装置。
  6. 請求項5に記載のデータ転送装置において、前記CPUのエネーブルフラグを設定する手段は、エネーブルフラグにその優先順位を加えて格納し、前記制御手段はこの優先順位を前記所定の順序とすることを特徴とするデータ転送装置。
  7. 請求項5に記載のデータ転送装置において、前記コマンドは、転送元で最初にアクセスしてデータを取り出す転送元開始アドレスと、この取り出したデータを転送して格納する転送先開始アドレスと、連続したアドレスに順次転送するデータ数を示す転送サイズとの指定を有しており、前記制御手段は、受け取ったコマンドに基づいて、データ転送対象のアドレスを開始アドレスから連続して順次生成すると共に転送データ数を計数して転送データ数が前記転送サイズの指定数に達した際にデータ転送を終了することを特徴とするデータ転送装置。
  8. 請求項5に記載のデータ転送装置において、DMA制御装置として前記制御レジスタ、前記コマンドリストテーブル、及び前記制御手段を備え、前記制御レジスタおよび前記コマンドリストテーブルはコントロールバスを介して前記CPUとアクセスする一方、前記制御手段はメモリバスを介して主記憶装置とアクセスすることを特徴とするデータ転送装置。
  9. 請求項5に記載のデータ転送装置において、前記コマンドリストテーブルは主記憶装置に格納される一方、データ転送装置は前記コマンドリストそれぞれの格納場所をポインタとして有するポインタリストを更に備え、
    DMA制御装置として前記制御レジスタ、前記ポインタリスト、及び前記制御手段を備え、かつ
    前記制御レジスタ、前記ポインタリスト、および前記コマンドリストテーブルはコントロールバスを介して前記CPUとアクセスし、かつ
    前記制御手段は、前記CPUからの前記開始フラグの設定によりメモリバスを介して前記主記憶装置とアクセスし、前記エネーブルフラグを設定された前記ポインタリストにおける対応ポインタの指定を受けて前記主記憶装置から対象となる一つのコマンドリストを選択して取得し、このコマンドリストに含まれるコマンドに基づいて所定のデータ転送を順次制御する
    ことを特徴とするデータ転送装置。
  10. 請求項5に記載のデータ転送装置において、前記制御手段は、
    前記開始フラグの設定により前記エネーブルフラグを設定された一つのコマンドリストから選択された一つのコマンドを受け取ると共に、データ転送対象の記憶装置とアクセスし、前記コマンドから受ける信号情報に基づいて転送元アドレスから転送先アドレスへのデータ転送を制御するアクセス制御部と、
    開始フラグ及びエネーブルフラグの設定により前記コマンドリストから選択されたコマンドを受け取り、前記アクセス制御部と協同動作して受け取ったコマンドに基づきデータ転送用のアドレスを生成すると共にデータ転送数を照合してデータ転送の終了を通知する実行コマンド部と
    を備えることを特徴とするデータ転送装置。

JP2003394986A 2003-11-26 2003-11-26 データ転送方法及びその装置 Pending JP2005157717A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003394986A JP2005157717A (ja) 2003-11-26 2003-11-26 データ転送方法及びその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003394986A JP2005157717A (ja) 2003-11-26 2003-11-26 データ転送方法及びその装置

Publications (1)

Publication Number Publication Date
JP2005157717A true JP2005157717A (ja) 2005-06-16

Family

ID=34720861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003394986A Pending JP2005157717A (ja) 2003-11-26 2003-11-26 データ転送方法及びその装置

Country Status (1)

Country Link
JP (1) JP2005157717A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204456A (ja) * 2007-02-16 2008-09-04 Arm Ltd 複雑な非線形データの転送制御システム
JP2011181029A (ja) * 2010-03-04 2011-09-15 Ricoh Co Ltd データ転送制御装置
JP2012089105A (ja) * 2010-09-22 2012-05-10 Toshiba Corp メモリシステム及びホストコントローラ
JP2016535337A (ja) * 2013-11-05 2016-11-10 オラクル・インターナショナル・コーポレイション ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法
US11435928B2 (en) 2017-01-26 2022-09-06 Sony Semiconductor Solutions Corporation Calculation processing apparatus and information processing system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204456A (ja) * 2007-02-16 2008-09-04 Arm Ltd 複雑な非線形データの転送制御システム
US8112560B2 (en) 2007-02-16 2012-02-07 Arm Limited Controlling complex non-linear data transfers
JP2011181029A (ja) * 2010-03-04 2011-09-15 Ricoh Co Ltd データ転送制御装置
US9122630B2 (en) 2010-09-22 2015-09-01 Kabushiki Kaisha Toshiba Memory system having high data transfer efficiency and host controller
US8825923B2 (en) 2010-09-22 2014-09-02 Kabushiki Kaisha Toshiba Memory system having high data transfer efficiency and host controller
US8959260B2 (en) 2010-09-22 2015-02-17 Kabushiki Kaisha Toshiba Memory system having high data transfer efficiency and host controller
JP2012089105A (ja) * 2010-09-22 2012-05-10 Toshiba Corp メモリシステム及びホストコントローラ
JP2015201234A (ja) * 2010-09-22 2015-11-12 株式会社東芝 ホストシステム及びホストコントローラ
USRE47659E1 (en) 2010-09-22 2019-10-22 Toshiba Memory Corporation Memory system having high data transfer efficiency and host controller
USRE48736E1 (en) 2010-09-22 2021-09-14 Kioxia Corporation Memory system having high data transfer efficiency and host controller
USRE49875E1 (en) 2010-09-22 2024-03-19 Kioxia Corporation Memory system having high data transfer efficiency and host controller
JP2016535337A (ja) * 2013-11-05 2016-11-10 オラクル・インターナショナル・コーポレイション ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法
US11435928B2 (en) 2017-01-26 2022-09-06 Sony Semiconductor Solutions Corporation Calculation processing apparatus and information processing system

Similar Documents

Publication Publication Date Title
TWI276965B (en) Processor system, DMA control circuit, DMA control method, control method for DMA controller, graphic processing method, and graphic processing circuit
US9043806B2 (en) Information processing device and task switching method
JP2010211696A (ja) メモリスワップ管理方法、装置およびプログラム
JP2010272076A (ja) マルチプロセッサシステム
US7822952B2 (en) Context switching device
JP2011095952A (ja) ファームウェア更新方法および電子機器
JP2010044460A (ja) 電源制御装置、計算機システム、電源制御方法、電源制御プログラムおよび記録媒体
JP2005157717A (ja) データ転送方法及びその装置
JP2010061620A (ja) Dma装置及びdma転送方法
JP5839776B2 (ja) 情報処理装置、情報処理方法及びプログラム
JPWO2009116279A1 (ja) 処理装置、処理システム、データ共有処理方法、及びデータ共有処理用集積回路
JP5083772B2 (ja) 画像形成装置、制御方法及び制御プログラム
JP2009122207A (ja) 画像形成装置
JP2008225608A (ja) メモリを制御するメモリコントローラ、メモリモジュール、メモリの制御方法
JP2021174051A (ja) インタフェース回路およびインタフェース回路の制御方法
JP2011118501A (ja) データ転送システム
JP2004118300A (ja) Dmaコントローラ
JP4198016B2 (ja) 情報処理装置およびその割り込み制御方法
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2005078255A (ja) データ処理装置、データ処理方法
US20220156074A1 (en) Electronic device and multiplexing method of spatial
JP2006331248A (ja) データ転送装置
JP2005209163A (ja) メモリシステム制御方法
JP2007265230A (ja) 情報処理装置及びそのファイル読み込み方法
JP2007241922A (ja) 共有資源利用のための調停方法及びその調停装置

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050323

A711 Notification of change in applicant

Effective date: 20060221

Free format text: JAPANESE INTERMEDIATE CODE: A711

A977 Report on retrieval

Effective date: 20070628

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070718

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071114