(57)【特許請求の範囲】
【請求項１】
各種データを蓄積する主記憶手段と、該主記憶手段の転送相手である複数の子記憶手段とのデータ転送を制御するデータ転送制御部であるＤＭＡコントローラであって、
前記主記憶手段は、複数の領域に分割され、該領域毎にクロックが供給されている複数の個別主記憶手段からなり、
前記データ転送制御部は、
該データ転送制御部に対してクロックの供給・停止を制御するクロック制御部と、
前記個別主記憶手段に対してクロックの供給・停止を制御する、メモリクロック制御部と、
ＤＭＡ転送実行中に生成するアドレスから、前記複数の個別主記憶手段のうちのアクセスされる領域を判定し、バンク選択信号を随時生成するアドレス判定部とを備え、
前記メモリクロック制御部は、動作イネーブル信号が発行され、ＤＭＡ転送命令が前記データ転送制御部に予約されており、且つ、データ転送実行中に、前記バンク選択信号により、指定された前記主記憶手段の領域に対してのみクロック信号を供給するように制御する、
ことを特徴とするＤＭＡコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリとメモリ間をダイレクトデータ転送するＤＭＡコントローラに関し、特に、データ転送効率がよく、低消費電力であるＤＭＡコントローラに関する。
【０００２】
【従来の技術】
現在、データバスに複数の装置やメモリを接続したデータ処理装置において、装置間のデータ転送をダイレクト転送する際、複数のＤＭＡ転送要求を連続で、さらに、該ＤＭＡ転送要求に優先度をつけて実行することで、転送効率を上げる方法がいくつか知られている。
【０００３】
例えば、特開平０９−２２３１０２号に、前述した転送効率を上げるダイレクトアクセスコントローラについて記載されており、図２７および図２８に示す構成を取る。図２７は、ダイレクトメモリアクセスコントローラ（ＤＭＡコントローラ）を示すブロック図であり、図２８は、図２７に示すＤＭＡコントローラを一部とするデータ処理装置を示すブロック図である。図２７、図２８において、ＤＭＡコントローラ１００２２は、複数のＤＭＡ転送の制御データを各レジスタ（データ保持手段）１００１２〜１００１６に設定すると共に、複数のＤＭＡ転送の優先度をＤＭＡ待ちレジスタ（優先度保持手段）１００２７に保持させ、制御回路（転送制御手段）１００２５の制御により、上記ＤＭＡ待ちレジスタ１００２７に保持している優先度の順番で複数のＤＭＡ転送を実行させるものである。そして、前記ＤＭＡコントローラ１００２２の制御回路１００２５は、ＣＰＵ１０００４とＤＭＡアクセスライン１００２３によって接続され、ＣＰＵ１０００４がデータ保持手段１００１２〜１００１６にアクセスするためのアドレス、データ、制御信号が転送されると共に、ＤＭＡ転送終了通知等のための割込み信号、要求信号、応答信号が転送される。そして、このＤＭＡコントローラ１００２２のＤＭＡ待ちレジスタ（優先度保持手段）１００２７に設定される優先度は、複数のＤＭＡ転送の制御データの入力時刻順であったり、転送相手であるＩ／Ｏ１０００７の重要度によってあらかじめ決定されているものである。
【０００４】
また、データ処理装置における低消費電力を実現するためのクロック制御方式についても、いくつかの方法が知られている。
例えば、特開平０８−２５５０３４号に、ＬＳＩ全体の制御回路の設計変更を伴わずに低消費電力化を行う低消費電力型データ処理装置についての記載があり、図２９に示す構成をとっている。図２９は、低消費電力型データ処理装置の回路構成の一例を示す図であり、複数の機能回路３０１２３〜３０１２５それぞれに備えられたクロック制御用ゲート回路３０１１７〜３０１１９と、該個々のゲート回路の動作を定義付ける制御データを記録するためのゲート制御用レジスタ３０１０５〜３０１０７と、該レジスタ３０１０５〜３０１０７に対するデータの書きこみを制御するためのアドレスデコーダ回路３０１１１と、を備える。前記レジスタ３０１０５〜３０１０７は、ＣＰＵ等のメモリマップ領域に割り当てられており、固有のアドレスを有するものである。前記アドレスデコーダ回路３０１１１は、ＣＰＵ等の命令に従って、当該回路に入力された書込みイネーブル信号Ｓｅｎに基づき、アドレスバス３０１０３を経由して供給される前記レジスタのアドレス値をデコードし、またデータバス３０１０４を経由して供給される前記機能回路への制御データを、前記レジスタに記録する。前記レジスタからの出力は、各機能回路３０１２３〜３０１２５に対するクロック供給制御信号Ｓｃｃとして使用され、前記ゲート回路３０１１７〜３０１１９は、該クロック供給制御信号Ｓｃｃに基づき、各機能回路３０１２３〜３０１２５に対するクロック信号の供給を許可／停止する。
【０００５】
また、特開平０８−１５３３８７号に、入力映像信号の有効画素数に応じてアクセスを停止させて低消費電力化を図るＦＩＦＯメモリについて記載がなされており、図３０の構成を取る。図３０は、ＦＩＦＯメモリの構成を機能面から示した図であり、該ＦＩＦＯメモリは、データ信号の書き込み及び読み出しが行われるメモリアレイ４０００６と、外部からのリセット信号ＲＥＳを受けて外部から入力するクロック信号ＣＬＫ０に基づき、Ｉ／Ｏ回路４０００７に対するＣＬＫ（ビット線用クロック）と、ワードラインポインタ４０００４に対する第１クロックＣＬＫ１（ワード線用クロック）とを生成する、クロックジェネレータ４０００３と、前記ＣＬＫ，ＣＬＫ１それぞれに基づき前記メモリセルアレイのワード線及びビット線にアクセスを行うアドレス指定手段（Ｉ／Ｏ回路，ワードラインポインタ）と、前記クロックジェネレータ４０００３の動作を停止させる信号を生成するコントロールフラグジェネレータ４０００２と、を有するものである。そして、前記クロックジェネレータ４０００３が出力するＣＬＫ１に応じて、ワードラインポインタ４０００４は、順次にワード線４０００８を指定し、最後のポインタ４０００５が、最後のワード線４０００８Ｅのアクセスを示す最終行アクセス信号ＰＡＳ３をコントロールフラグジェネレータ４０００２に対して出力すると、該コントロールフラグジェネレータ４０００２は、最終行アクセス信号ＰＡＳ３と、ＣＬＫ１に同期したクロックＣＯＳとにより、最終アドレスのアクセスを検出し、その検出タイミングに応じてクロック制御信号ＣＣＮＴをクロックジェネレータ４０００３に対して出力する。そして、前記クロック制御信号ＣＣＮＴを受けた前記クロックジェネレータ４０００３は、基本クロックＣＬＫ０のカウント動作を停止するものである。つまり、前記ＦＩＦＯメモリは、ＦＩＦＯメモリ自身が、データの書きこみと読み出しを開始するタイミングを制御信号から検出して、メモリセルアレイ４０００６に対してクロックの供給を開始し、アドレス指定手段（Ｉ／Ｏ回路，ワードラインポインタ）が指定する最終アドレス信号を検出して前記クロックジェネレータ４０００３のクロックを停止させるクロック制御信号生成手段（コントロールフラグジェネレータ４０００２）を備えた特別なＦＩＦＯメモリである。
【０００６】
さらに、特開平７−１８２８５７号にはマイコンシステムについて記載されており、ＣＰＵのスタンバイ時にＤＲＡＭをセルフリフレッシュ制御する方法が開示されている。図３１は、マイコンシステムの構成を示すブロック図である。
【０００７】
図３１のマイコンシステムにおいては、システムがスタンバイ状態に設定されると、ＣＰＵ５０００１によりセルフリフレッシュモードが設定され、ＤＲＡＭコントローラ５０００３からの指令により、インターバルリフレッシュ回路５０００４からセルフリフレッシュ回路５０００５に切り替えられる。そして、通常動作時にクロックジェネレータ５０００２から発生されるクロック信号を停止させた状態で、セルフリフレッシュ回路５０００５がＤＲＡＭコントローラ５０００３にセルフリフレッシュ動作を行うように制御信号を供給する構成となっているものである。
【０００８】
また、特開平７−１６９２６６では、半導体メモリ装置内におけるメモリセルアレイの分割制御方法について開示されている。図３２は、半導体メモリの基本的構成を示す図である。
図３２における半導体メモリは、チップ内に分割された複数個のメモリアレイ６０００１…を設け、所定のメモリアレイ６０００１がメモリアレイ選択回路６０００５で選択されたときは、第１の外部アドレス信号群のアドレスにより、選択されたメモリアレイ６０００１内のワード線の選択を行う。これと同時に、選択されないメモリアレイ６０００１…に対しては、チップ内に内蔵するセルフリフレッシュ用クロック発生回路６０００６から、セルフリフレッシュ用ワード線基本クロック、及びリフレッシュ用ワード線基本クロック（／ＲＡＳＦ）を出力して、選択されないメモリアレイ６０００１内のワード線の選択を行う。メモリアレイ６０００１が選択される設定時間前でリフレッシュ停止信号を出力してリフレッシュ動作を強制的に停止し、メモリセルの十分な電荷再蓄積を防止する。そして、このようにメモリアレイ６０００１を複数に分割し、選択されたメモリアレイでノーマルリード／ライト動作を行うと同時に、他の選択されないメモリアレイでリフレッシュ動作を行うので、１個のメモリアレイを見ればノーマル動作とリフレッシュ動作との競合が無く、外部からのリフレッシュの制御が不要で、かつ高速シリアルアクセスが可能となる。さらに、メモリアレイ選択回路６０００５は、1個以上のメモリセルアレイを選択する場合に用いられるものであって、この選択信号は、ワード線基本クロック（／ＲＡＳ）の出力選択か、リフレッシュカウンタ及びリフレッシュ用クロック（／ＲＡＳＦ）の出力か、を選択するものに使用されるものである。
【０００９】
【発明が解決しようとする課題】
しかしながら、特開平０９−２２３１０２号に記載されたＤＭＡコントローラでは、複数のＤＭＡ転送の制御データを設定した時点でデータ転送が実行されてしまうため、前もって前記制御データを設定しておくことができないほか、データ転送要求を予約しておくこともできないため、ＣＰＵ等のプログラムなどによって、前処理等でデータ転送の設定をしておくことができず、ＣＰＵ等のプログラム設計の自由度を小さくしてしまう、という問題があった。
【００１０】
また、前記従来のＤＭＡコントローラは、自由に優先度を指定するような構成ではなく、上記制御データの設定時刻順や、転送相手であるＩ／Ｏの重要度によって優先度が設定されるようになっているものである。そのため、転送相手であるＩＯのデータの重要度が変化するようなものの場合、優先度を自由に設定変更できないという問題があった。さらに、その複数の転送データの保持構成としては、転送データに対して優先度を保持する構成をとるので、転送相手が増加すると、その増加分の優先度保持手段を追設する必要がある、という問題もあった。
【００１１】
また、従来のデータ転送要求処理についても、特開平０９−２２３１０２号では、要求を受け付けた時点でそれらの要求の順番を即座に判断するものであるため、データ転送の中断・再開という複雑な処理が必要となる部分もあり、データ転送要求のタイミングとその優先度とによっては、優先度が逆転してしまう、という問題があった。つまり、データ転送要求時に予約の優先度を判断してしまうと、データ転送要求した時間は新しいがより優先度の高いデータ転送要求が、次データ転送開始時までに発行されても、その実行順を入れかえることができず、データ転送処理順序を最適にすることができなかった。
【００１２】
さらに、特開平０９−２２３１０２号記載のＤＭＡコントローラでは、データ転送の一時中断は実現できるが、予約中のデータ転送要求の取り消し、あるいはＣＰＵ等のプログラムによる予約中のデータ転送要求の並べ替えは実現できなかった。また、実行中のデータ転送の取り消しに関しても、データバスをＣＰＵに開放している間ＤＭＡ転送を停止させる一時停止方法をとっており、ＤＭＡ転送を中止して、新たなＤＭＡ転送を続ける停止方法はとれていなかった。また、このようなＤＭＡ転送の中断、一時停止を実現するには、ＤＭＡ転送を再開する際のデータを保持する手段と、その保持処理および再開処理期間とが必要となって、その制御と装置回路が複雑となってしまうわりには、中断時の残りのデータ転送個数が（データ退避処理＋転送再開処理）以上のサイクルがない限り、このことによる効果が薄かった。また、ＤＭＡ転送の中断、あるいは一時停止のような状態になる確率は非常に少ないにもかかわらず、このことによって装置回路規模が増大、複雑化することから、開発期間、消費電力の面で不利となる、という問題もあった。
【００１３】
また、特開平０９−２２３１０２号では、制御データまたはデータ転送の要求命令を発行した時点でＤＭＡ転送が実行されるため、あらかじめデータ転送を予約しておき、所望の時刻になってから、または所望のタイミングでデータ転送を自動的に実行に移すということができなかった。さらに、データ保持手段が複数に分割されているため、アクセス制御がそれぞれの手段に対して必要となり、装置構成が大きくなってしまうほか、ＣＰＵ等のプログラムによりアクセス命令を発行する際も複数命令が必要であった。その上、前記データ保持手段には、アドレス情報、転送先にあたるＩ／Ｏ情報を格納する旨が開示されているが、これらの情報を複数の資源に分けて格納しなければならなかったので、メモリに対しさまざまなアクセスパターンでアクセスしたくても、その情報に関連させるパラメータを保持していないため、１パターンのアクセスしかできなかった。
【００１４】
なお、データ転送要求元が複数ある場合には、従来の特開平９−２２３１０号のように、転送相手毎に優先度を保持する必要が出てくるが、必ずしも、転送要求元と、転送相手の数が等しいとは限らないため、転送要求元が増えることによって転送相手先が多くなると、従来方法ではさらに保持手段が増えてしまい、またそのデータ転送処理においても、優先度と登録順の両方をチェックする必要があるため、制御が複雑となるという問題は解決しない。
【００１５】
また、従来の低消費電力を実現するクロック制御方式については、特開平０８−２５５０３４号の装置においてクロックの供給／停止制御を行う場合、機能回路を動作させる前と後とで、必ず制御レジスタにアクセスする必要があるため、ＣＰＵ等のプログラムにより細かい制御を行う必要がある、という問題があった。
【００１６】
また、特開平０８−１５３３８７号のＦＩＦＯメモリでは、メモリセルに対するクロック制御方式が開示されているが、一般的に部品として使用するメモリデバイスには、ここであげられているような制御は組み込まれておらず、外部から制御するしかない。そして、その外部にはメモリコントローラを備えているため、メモリコントローラも含めて低消費電力化制御を行う必要がある。従って、前もってデータ転送要求を複数個予約しておく場合や、メモリアクセスパターンが任意の場合、または転送回数や個数が任意の場合、さらには転送開始が任意のタイミングで複数ある場合には、その検出方法を、該特許の開示方法のようにメモリへのアクセス開始時点をリセット信号のようなものにはできない。また、転送終了の検出も最終ワード線アクセスを検出するなどできず、さらにデータ転送要求予約数によっても、または転送個数も任意であるため、あらかじめ設定しておくことができない。さらに、アクセスするメモリが１つだと、メモリ内のアクセスしない領域にもクロックを供給する必要があり、無駄な電力を消費してしまう。また、メモリがＤＲＡＭの場合、１つのＤＲＡＭで構成すると一部の領域のみアクセスする場合でも、アクセスするたびにＤＲＡＭ全体を動作させる必要があるほか、リフレッシュ動作時もＤＲＡＭ全体を動作させる必要があり、無駄な電力を消費してしまう、という問題があった。
【００１７】
また、特開平７-１８２８５７号の装置では、システムのスタンバイ時のみセルフリフレッシュモード制御回路に切り替わるように制御されているため、動作中にリアルタイムに任意に設定変更することができず、動作時の電力を低減することができない。また、ＤＲＡＭバンクを複数に分けた場合には、どのように制御すべきか開示されていない。さらに、ＤＲＡＭを分割して構成した場合、使用しない領域に対してオートリフレッシュを実行する場合は、その使用しない領域にもクロックを入力する必要があり、無駄な電力を消費してしまう。さらに、クロックを供給しないとデータが消えてしまう、という問題があった。
【００１８】
また、特開平７−１６９２６６号の場合は、半導体メモリ自身の構成を変更して特別に作成する必要があり、コストの増加を招いてしまう。また、メモリセルアレイ６０００１ごとに、アドレス選択回路６０００３および、ロウデコーダ６０００２、リフレッシュカウンタ６０００４を設けているため、回路規模が増大してしまうことになり、また半導体メモリが低消費電力化を目的とされたものではないこともあって、本発明に関わるような低消費電力を目的としたメモリバンクを分割した構成のＤＭＡコントローラには適さないものであった。
【００１９】
さらに、実際のＬＳＩにおいては、大容量のメモリ領域を単一のＤＲＡＭで実現した場合の結果として、以下のような報告がなされている。
「A Low Power MPEG-4 Video/Audio codec LSI with 16Mbit embedded DRAM」Proceedings of COOL Chips III, pp89-100, April.2000によると、単一マクロで構成されている１６ＭｂｉｔＤＲＡＭの消費電力は、ＬＳＩ全体の２４０ｍＷに対しておよそ２５％を占めている。一般的にロジック部は、微細化に伴い、電源電圧が比較的容易に下がっていくことから、消費電力の削減は進むと予想されるが、混載ＤＲＡＭについては、メモリセル駆動のために、電圧を容易に落とすことができない。また今後、混載されるメモリ容量は、画像アプリケーションの多様化（３次元グラフィックスや、解像度の向上など）により、増大すると予想される。従って、低消費電力化が進むシステムＬＳＩにおいて、ＤＲＡＭを代表とするメモリの消費電力の占める割合は、無視することは出来ないようになってくると予想される。
本発明は、上記課題に鑑みてなされたものであり、回路規模が少なく容易に設計可能で、データ転送効率がよく、且つ低消費電力なＤＭＡコントローラを提供することを目的とする。
【００２０】
【課題を解決するための手段】
上記課題を解決するために、本発明の請求項１にかかるＤＭＡコントローラは、各種データを蓄積する主記憶手段と、該主記憶手段の転送相手である複数の子記憶手段とのデータ転送を制御するデータ転送制御部であるＤＭＡコントローラであって、前記主記憶手段は、複数の領域に分割され、該領域毎にクロックが供給されている複数の個別主記憶手段からなり、前記データ転送制御部は、該データ転送制御部に対してクロックの供給・停止を制御するクロック制御部と、前記個別主記憶手段に対してクロックの供給・停止を制御する、メモリクロック制御部と、ＤＭＡ転送実行中に生成するアドレスから、前記複数の個別主記憶手段のうちのアクセスされる領域を判定し、バンク選択信号を随時生成するアドレス判定部とを備え、前記メモリクロック制御部は、動作イネーブル信号が発行され、ＤＭＡ転送命令が前記データ転送制御部に予約されており、且つ、データ転送実行中に、前記バンク選択信号により、指定された前記主記憶手段の領域に対してのみクロック信号を供給するように制御するものである。
【００２６】
【発明の実施の形態】
（実施の形態１）
以下、実施の形態１におけるＤＭＡコントローラについて説明する。
まず、図１、図２を用いて、本実施の形態１における、ＤＭＡコントローラ、及びそのＤＭＡコントローラを有するシステムの構成を説明する。
図１は、実施の形態１におけるＤＭＡコントローラ（データ転送制御部）を有するシステム構成図であり、図２は、実施の形態１におけるデータ転送制御部内のデータ転送要求受信部１０２の構成を示した図である。
【００２７】
図１において、本システムは、ＤＭＡコントローラであるデータ転送制御部１０１と、プロセッサ１１１と、メインメモリ１１０と、ローカルメモリ１１２と、ＤＭＡバスと、ローカルバスとからなるものである。
前記プロセッサ１１１は、データ転送制御部１０１をはじめシステム全体をコントロールするものであり、また該データ転送制御部１０１に対してＤＭＡ転送要求を発行するものである。
メインメモリ１１０は、各種データを格納するものであり、ローカルメモリ１１２は、ローカルバスによってプロセッサ１１１に接続されたローカルメモリ群である。
【００２８】
また、前記データ転送制御部（ＤＭＡコントローラ）１０１は、データ転送要求受信部１０２と、メモリーインターフェース部１０３と、データ入出力部１０４と、ＤＭＡパラメータメモリ１０５と、起動信号受信部１０６とを備えるものである。
メモリーインターフェース部１０３は、メインメモリ１１０への制御信号を生成するものであり、データ入出力部１０４は、データの入出力を制御するものであり、ＤＭＡパラメータメモリ１０５は、ＤＭＡ転送を実行するために必要なパラメータを格納するものである。
【００２９】
起動信号受信部１０６は、データ転送制御部１０１の起動及び停止命令をプロセッサ１１１から受信し、メモリーインターフェース部１０３にその命令を伝えるものである。
データ転送要求受信部１０２は、プロセッサ１１１からの、優先レベル（実行優先度情報）および転送相手種別情報（子記憶手段の種別情報）からなるＤＭＡ転送要求を受け付けるものであり、その構成の詳細については、以下図２を用いて説明する。
【００３０】
図２において、データ転送要求受信部１０２は、優先レベル解読部２０１と、予約レジスタ２１０と、セレクタ２０２とから構成される。
優先レベル解読部２０１は、入力されたＤＭＡ転送要求の優先レベルを解読し、格納すべきレジスタを確定するものである。
予約レジスタ２１０は、優先レベル１予約レジスタ２１１〜優先レベル３予約レジスタ２１３からなり、個々の優先レベル予約レジスタには、転送相手種別情報（リソースＡ〜リソースＣ）が格納される。ここでは、その転送相手種別情報を格納するための設定レジスタが、各優先レベル予約レジスタに１つずつ備えられている。各優先レベル予約レジスタ２１１〜２１３に予約が入ると、各優先レベル予約レジスタに対応した予約ｆｌａｇ１〜予約ｆｌａｇ３が立つようになっている。また、これらの予約ｆｌａｇは論理和をとられ、データ転送要求受信部１０２に予約があることを示す予約フラグとして、メモリーインタフェース部１０３に出力される。
【００３１】
セレクタ２０２は、個々の優先レベル予約レジスタ２１１〜２１３から出力される転送相手種別情報を選択するセレクタで、その各優先レベル予約レジスタから出力される予約ｆｌａｇ１〜予約ｆｌａｇ３の状態によって、選択先が変わるようになっている。例えば、予約ｆｌａｇ１が“１”の場合は、優先レベル１予約レジスタ２１１の出力を選択し、予約ｆｌａｇ１が“０”で且つ予約ｆｌａｇ２が“１”の場合は、優先レベル２予約レジスタ２１２の出力が選択される。また、予約ｆｌａｇ１と予約ｆｌａｇ２とが共に“０”で、予約ｆｌａｇ３が“１”の場合は、優先レベル３予約レジスタ２１３の出力が選択されるようになっている。つまり、ここでの優先度は、優先レベル１＞優先レベル２＞優先レベル３の順であることを示している。
【００３２】
次に、図１及び図２を用いて、本実施の形態１のシステムにおける、ＤＭＡコントローラ（データ転送制御部）１０１の動作を説明する。
まず、プロセッサ１１１はローカルバスにより、ＤＭＡパラメータメモリ１０５に、ＤＭＡ転送実行に必要なパラメータ、例えば、リード／ライト情報、バイト／ワードなどのアクセス単位情報、連続アクセスか、矩形アクセスか、リングポインタアクセスかなどを示すアクセス情報、およびスタートアドレス等の各種アドレス情報や、転送個数などをあらかじめ格納しておく。
【００３３】
プロセッサ１１１はデータ転送制御部１０１（ＤＭＡコントローラ）起動の前準備として、即座に実行したいＤＭＡ命令を、あらかじめデータ転送要求受信部１０２へ予約しておく。このＤＭＡ命令には、ＤＭＡ転送の優先レベルを示す情報と、ＤＭＡ転送の対象となるメモリ種別を表す情報が含まれている。このとき、予約フラグがメモリーインターフェース部１０３に出力される。
本システムが動作開始状態になると、プロセッサ１１１は起動信号受信部１０６へ起動命令を発行する。起動命令を受信したデータ転送制御部１０１は、ＤＭＡ転送動作を開始することになる。
【００３４】
ＤＭＡ転送動作が開始されると、まず、メモリーインターフェース部１０３は、予約フラグが有効になっていることから、データ転送要求受信部１０２に予約チェック信号を発行する。
現在、データ転送要求受信部１０２に、図２に示すように３つのＤＭＡ転送の予約が入っているとすると、予約ｆｌａｇ１は“１”となっている。そして、図２において、優先レベル１予約レジスタ２１１の設定レジスタにリソースＣを表すコードが格納されているので、セレクタ２０２によって優先レベル１予約レジスタ２１１の出力であるリソースＣ（ローカルメモリＣ）が選択される。
【００３５】
この予約情報であるリソースＣがＤＭＡ種別情報としてメモリーインターフェース部１０３へと送られると、ローカルメモリＣの予約が入っていることがメモリーインターフェース部１０３によって解読される。
その後、読み出された優先レベル１予約レジスタからの予約ｆｌａｇ１は“０”となり、予約ｆｌａｇ２が“１”となるため、セレクタ２０２は優先レベル２予約レジスタ２１２の出力を選択する。
【００３６】
メモリーインターフェース部１０３は、ローカルメモリＣのＤＭＡ転送実行情報が格納されているＤＭＡパラメータメモリ１０５の決まったアドレスにアクセスし、ＤＭＡ転送実行に必要なパラメータをロードする。ロードした値に従って、メモリインターフェース部１０３は、メインメモリ１１０に対して制御信号を生成し、ローカルメモリＣとのＤＭＡ転送を実行する。
ローカルメモリＣとメインメモリ１１０とのＤＭＡ転送が終了すると、メモリインターフェース部１０３は、再びデータ転送要求受信部１０２に対して予約チェック信号を発行し、優先レベル２予約レジスタ２１２の設定レジスタに格納されているリソースＢ（ローカルメモリＢ）の情報を出力する。
【００３７】
同様に、この予約情報であるリソースＢがＤＭＡ種別情報としてメモリーインターフェース部１０３に送られると、ローカルメモリＢの予約が入っていることがメモリーインターフェース部１０３によって解読される。その後、予約ｆｌａｇ１＝“０”，予約ｆｌａｇ２＝“０”，予約ｆｌａｇ３＝“１”であるため、セレクタ２０２は、優先レベル３予約レジスタ２１３を選択する。以下、同様にＤＭＡ転送を実行する。
この様にして、メモリーインターフェース部１０３はデータ転送要求受信部１０２に格納されている予約のチェックを行い、予約フラグが“０”になるまでＤＭＡ転送を連続で行う。
また、プロセッサ１１１が起動信号受信部１０６に対して停止命令を発行した場合、データ転送制御部１０１は現在実行中のＤＭＡ転送を終了した時点で、それ以降のＤＭＡ転送の実行を停止し、ＤＭＡ転送の予約のみを受け付けるようになる。
【００３８】
以上のように、本実施の形態１では、データ転送制御部（ＤＭＡコントローラ）１０１が起動信号受信部１０６を備えることにより、データ転送要求発行元であるプロセッサ１１１から受け付けたＤＭＡ転送を実行しないで予約のみを行うことができる。これにより、システムコントローラであるプロセッサ１１１等のプログラミングの自由度が向上する。
【００３９】
さらに、本実施の形態１では、データ転送要求受信部１０２において、ＤＭＡ転送予約を優先度毎に転送相手の種別情報を保持するものであるので、保持レジスタの数が（転送相手種別数×優先度を表すビット数）ではなく、（優先度数×転送相手種別数を表すビット数）となり、データ転送要求受信部１０２内の保持レジスタ数を少なくすることができる。
さらに、本実施の形態１では、ＤＭＡ転送実行のための判断制御を、転送種別情報すべての優先度を見て判断するのではなく、高い優先度のレジスタ内に格納されている転送相手種別情報を見て判断すればよいので、その判断制御が容易となるほか、回路も簡素化できる。
【００４０】
（実施の形態２）
以下、実施の形態２におけるＤＭＡコントローラについて説明する。
まず、図３、図４を用いて、本実施の形態２における、ＤＭＡコントローラ、及びそのＤＭＡコントローラを有するシステムの構成を説明する。
図３は、実施の形態２におけるＤＭＡコントローラ（データ転送制御部）を有するシステム構成図であり、図４は、実施の形態２におけるデータ転送制御部内のデータ転送要求受信部の構成を示した図である。
図３における本システムは、ＤＭＡコントローラであるデータ転送制御部８０１に対するＤＭＡ転送要求の発行元が複数ある場合であり、本実施の形態２では、ＤＭＡ転送要求の発行元が、メインプロセッサ８１１、及びサブプロセッサ８１３である場合を例に挙げて説明する。よって、本実施の形態２における本システムの構成は、前記データ転送制御部８０１と、メインプロセッサ８１１及びサブプロセッサ８１３と、メインメモリ８１０と、ローカルメモリ８１２と、ＤＭＡバスと、ローカルバスとからなるものである。
【００４１】
前記メインプロセッサ８１１及びサブプロセッサ８１３は、データ転送制御部８０１に対してＤＭＡ転送要求を発行するものであり、さらにメインプロセッサ８１１は、データ転送制御部８０１をはじめシステム全体をコントロールするものである。
メインメモリ８１０は、各種データを格納するものであり、ローカルメモリ８１２は、ローカルバスによってメインプロセッサ８１１及びサブプロセッサ８１３に接続されたローカルメモリ群である。
【００４２】
また、前記データ転送制御部（ＤＭＡコントローラ）８０１は、予備予約手段８２０と、データ転送要求受信部１０２と、メモリーインターフェース部１０３と、データ入出力部１０４と、ＤＭＡパラメータメモリ１０５と、起動信号受信部１０６とを備えるものである。
予備予約手段８２０は、複数のＤＭＡ転送要求の発行元、つまりメインプロセッサ８１１及びサブプロセッサ８１３からのＤＭＡ転送要求を受け付けて一時的に保管し、システム制御の重要度に応じてあらかじめ設定されている優先度に従って、データ転送要求受信部１０２に転送するＤＭＡ転送要求を選択するものである。
なお、そのほかの構成は、実施の形態１と同様であるため、説明を省略する。
【００４３】
以下、データ転送制御部８０１内のデータ転送要求受信部１０２、及び予備予約手段８２０の詳細な構成について、図４を用いて説明する。
図４において、予備予約手段８２０は、メインプロセッサ８１１からのＤＭＡ転送要求を受け付ける予備１予約レジスタ８２１と、サブプロセッサ８１３からのＤＭＡ転送要求を受け付ける予備２予約レジスタ８２２と、前記データ転送要求受信部１０２に対して、前記複数の予備予約レジスタに格納されたＤＭＡ転送要求を、システム制御の重要度に応じてあらかじめ設定されている優先度に従って選択する予備セレクタ８２３とで構成されている。
【００４４】
前記予備１予約レジスタ８２１、予備２予約レジスタ８２２それぞれは、優先レベルレジスタと種別レジスタとを備え、各プロセッサから出力されたＤＭＡ転送要求の情報である優先レベルと転送相手種別情報（リソースＡ〜リソースＣ）とを、それぞれ前記優先レベルレジスタ、種別レジスタに一時的に保持する。この各予備予約レジスタ８２１，８２２に前記予約情報が格納されると、各予備予約レジスタ８２１，８２２からの予備予約フラグ１，予備予約フラグ２が有効となる。
なお、データ転送要求受信部１０２については、実施の形態１と同様の構成をもつため、ここでは説明を省略する。
【００４５】
次に、図３及び図４を用いて、本実施の形態２のシステムにおけるＤＭＡコントローラ（データ転送制御部）８０１の動作を説明する。
メインプロセッサ８１１からＤＭＡ転送要求が予備予約手段８２０に入ると、前述したようにして予備１予約レジスタの優先度レジスタ１及び種別レジスタ１に、前記ＤＭＡ転送要求の情報が保持される。前記予備１予約レジスタに情報が受け付けられると予備予約フラグ１が有効になり、予備セレクタ８２３は前記予備１予約レジスタに保持されていた情報（優先レベル，転送相手種別情報）をデータ転送要求受信部１０２へと転送する。
【００４６】
ここで、メインプロセッサ８１１及びサブプロセッサ８１３から、予備予約手段８２０に対して同時にＤＭＡ転送要求が発行された場合は、メインプロセッサ８１１からのＤＭＡ転送要求が前記予備１予約レジスタ８２１に、またサブプロセッサ８１３からのＤＭＡ転送要求が前記予備２予約レジスタ８２２に入力され、各予備予約レジスタ内の優先レベルレジスタ、及び種別レジスタに保持される。そして情報が保持されると同時に予備予約フラグ１，２両方が有効となるが、本実施の形態２では、サブプロセッサ８１３よりメインプロセッサ８１１のほうがシステム制御の重要度が高いと設定されているため、予備セレクタ８２３は、予備１予約レジスタ８２１に保持されているメインプロセッサ８１１からのＤＭＡ転送を優先して選択し、該ＤＭＡ転送要求のデータをデータ転送要求受信部１０２に出力する。この後のデータ転送要求受信部１０２における動作は、実施の形態１で説明したものと同様であるため、ここでは説明を省略する。
【００４７】
なお、本実施の形態２においては、ＤＭＡ転送要求発行元であるプロセッサが２つである場合を例に挙げて説明したが、該ＤＭＡ転送要求発行元が任意の数である場合は、予備予約手段８２０内の予備予約レジスタの数を、そのＤＭＡ転送要求発行元と同数にすれば同様に実現できる。また前記ＤＭＡ転送要求に含まれる情報についても、ここでは優先レベル及び転送相手種別情報としたが、それ以外の情報を含んでいる場合、前記各予備予約レジスタに備えられたレジスタ数を増やすことで容易に対応できるものである。
【００４８】
以上のように、本実施の形態２では、予備予約手段８２０を付加するようにしたので、複数のＤＭＡ転送要求元から同時に発行される転送要求を制御可能なＤＭＡコントローラを実現することができる。また、単一転送要求元に対応したＤＭＡコントローラを、複数の転送要求元に対応可能なように回路を変更する場合に、その単一転送要求に対応したＤＭＡコントローラに予備予約手段８２０等を付加することで変更可能なため、回路を再利用することができるという効果もある。
なお、本実施の形態では、ＤＭＡ転送要求の発行元がプロセッサをしているが、サブプロセッサがハードウエアであったり、メインプロセッサ及びサブプロセッサの両方がハードウェアであっても、同様に処理可能である。
【００４９】
（実施の形態３）
以下、実施の形態３におけるＤＭＡコントローラについて説明する。
本実施の形態３におけるＤＭＡコントローラ、及びそのＤＭＡコントローラを有するシステムの構成は、実施の形態１と同様であるため、説明を省略する。
以下、図１、図２及び図５を使用して、実施の形態１におけるデータ転送制御部（ＤＭＡコントローラ）１０１の動作にのっとって、データ転送要求、ＤＭＡ転送実行のタイミング、及び実行データの実行順待ち状態の遷移について説明する。
【００５０】
図５は、実施の形態３のシステムにおいてＤＭＡ転送要求が発行された際の、ＤＭＡ転送実行順待ち状態の遷移と、ＤＭＡ転送実行のタイミングとを示す図である。
今、図５に示すタイミングで、プロセッサ１１１よりＤＭＡ転送要求が発行されたとする。データ転送要求受信部１０２では、図５に示すように実行優先順が遷移していく。
まず、図５に示されるように、プロセッサ１１１より起動命令が発行されて起動信号が“１”になるまでに、３つのＤＭＡ転送要求が発行されているとする（実行待ち状態（イ））。そして、この状態でメモリーインターフェース部１０３から予約チェック信号が発行された場合、予約されている要求のなかで一番優先レベルが高い、優先レベル１の予約が先に実行されることになる。
【００５１】
優先レベル１のデータ転送が実行に移されると、データ転送要求受信部１０２における予約の実行優先順は、優先レベル２、優先レベル３の順での実行待ち状態（ロ）へと遷移する。
しかし、この優先レベル１のＤＭＡ転送実行中に、再びプロセッサ１１１から優先レベル１のＤＭＡ転送要求が、データ転送要求受信部１０２に発行された場合、データ転送要求受信部１０２における予約の実行優先順は、再び優先レベル１、優先レベル２、優先レベル３の順となり、実行待ち状態（ハ）へと遷移する。
この後、現在実行中の優先レベル１のＤＭＡ転送が終了すると、再びメモリーインターフェース部１０３から予約チェック信号が発行され、このときに予約されている要求のなかで、一番優先レベルが高い優先レベル１の予約が先に実行されることになる。
【００５２】
ここで、前記予約チェック信号が発行されるタイミングについて、具体的に述べる。例えば前記メモリインタフェース部１０３では、メインメモリ１１０と各ローカルメモリとの間で行われるＤＭＡ転送のデータ転送個数をカウントしておき、ひとつ前のＤＭＡ転送処理が終了する一定時間前、例えばＤＭＡ転送終了前１６サイクル、になると、メモリインタフェース部１０３が、データ転送要求受信部１０２に予約チェック信号を発行する。そして、この予約チェック信号を受信したデータ転送要求受信部１０２は、予約レジスタ２１０をチェックし、次のＤＭＡ転送処理の準備を行う。なお、ここでは、ＤＭＡ転送終了前の一定時間を１６サイクルとしたが、この一定時間は、ＤＭＡパラメータメモリ１０５から、次のＤＭＡ転送実行のための各種パラメータをロードするサイクル数に依存するものであり、次にＤＭＡ転送を実行に移すための準備時間にあたるものである。従って、この一定時間のサイクル数は、実行条件によって任意に変化してよい。なお、以上に説明した本実施の形態３のＤＭＡ転送処理は、実施の形態２のように前記ＤＭＡ転送要求発行元が複数である場合にも適応可能である。
【００５３】
このように、本実施の形態３では、メモリーインターフェース部から次のＤＭＡ転送実行の直前に、データ転送要求受信部に予約チェック信号を発行し、次に転送実行するデータを確認することにより、ＤＭＡ予約の連続性を保ったまま、転送実行直前に入った優先度の高いＤＭＡ予約を実行することが可能となる。
【００５４】
尚、前記予約チェック信号は、ＤＭＡ転送の準備期間を見越して、ＤＭＡ転送が終了する前の一定サイクル前に、前もって発行すると、より連続性が確保される。これを実現するには、メモリーインターフェース部において、ＤＭＡ転送の終了前十数サイクルを検出しておき、それを検出した際に予約チェック信号を発行するようにするとよい。
【００５５】
（実施の形態４）
以下、実施の形態４におけるＤＭＡコントローラについて説明する。
まず、図１及び図６を用いて、実施の形態４における、ＤＭＡコントローラ、及びそのＤＭＡコントローラを有するシステムの構成を説明する。
図６は、実施の形態４におけるデータ転送要求受信部１０２ａの構成を示している。
図において、本実施の形態４におけるデータ転送要求受信部１０２ａは、優先レベル／キャンセル解読部４０１と、セレクタ４０２と、予約レジスタ４１０とで構成されている。
【００５６】
優先レベル／キャンセル情報解読部４０１は、入力されたＤＭＡ転送要求の優先レベルと、該ＤＭＡ転送要求がキャンセルであるかどうかを解読し、格納またはキャンセルすべきレジスタを確定するものである。
予約レジスタ４１０は、優先レベル１予約レジスタ４１１〜優先レベル３予約レジスタ４１３からなり、個々の優先レベル予約レジスタには、転送相手種別情報（リソース情報）が格納される。ここでは、その情報を格納するための設定レジスタが、各優先レベル予約レジスタ４１１〜４１３に１つずつ備えられている。
【００５７】
各優先レベル予約レジスタ４１１〜４１３に予約が入ると、各優先レベル予約レジスタに対応した、予約ｆｌａｇ１〜予約ｆｌａｇ３が立つようになっている。またこの予約ｆｌａｇは論理和をとられ、データ転送要求受信部１０２ａに予約があることを示す予約フラグとしてメモリーインタフェース部１０３に出力される。
【００５８】
セレクタ４０２は、個々の優先レベル予約レジスタから出力される転送相手種別情報を選択するセレクタで、各優先レベル予約レジスタから出力される予約ｆｌａｇの状態によって、選択先が変わるようになっている。例えば、予約ｆｌａｇ１が“１”の場合は、優先レベル１予約レジスタ４１１の出力を選択し、予約ｆｌａｇ１が“０”で且つ予約ｆｌａｇ２が“１”の場合は、優先レベル２予約レジスタ４１２の出力が選択される。また、予約ｆｌａｇ１と予約ｆｌａｇ２が共に“０”で、予約ｆｌａｇ３が“１”の場合は、優先レベル３予約レジスタ４１３の出力が選択されるようになっている。つまり、ここでの優先度は、優先レベル１＞優先レベル２＞優先レベル３の順であることを示している。
なお、上記以外の実施の形態４におけるＤＭＡコントローラ及びそのＤＭＡコントローラを有したシステムの構成は、実施の形態１のものと同様であるため、説明を省略する。
【００５９】
次に、図１および図６を用いて、実施の形態４のシステムにおける、ＤＭＡコントローラ（データ転送制御部）１０１の動作を説明する。
ＤＭＡ転送要求は、実施の形態１で説明したような手順で、プロセッサ１１１よりデータ転送要求受信部１０２ａに、あらかじめ予約されているとする。
【００６０】
現在、データ転送要求受信部１０２ａに、図６に示すように３つのＤＭＡ命令の予約が入っているとすると、予約ｆｌａｇ１は“１”となっている。今、リソースＣを表すコードが優先レベル１予約レジスタ４１１に格納されているので、セレクタ４０２により、優先レベル１予約レジスタ４１１の出力であるリソースＣ（ローカルメモリＣ）が選択され、ローカルメモリＣとメインメモリ１１０との間でＤＭＡ転送が実行される。
このＤＭＡ転送の最中に、プロセッサ１１１が、ＤＭＡ命令を利用して、キャンセル命令を発行したとする。このキャンセル命令は、優先レベル、転送相手種別情報（リソース情報）を含んでいる。
【００６１】
例えば、プロセッサ１１１からデータ転送要求受信部１０２ａに、優先レベル２、リソースＢと共にキャンセル情報が発行されたとする。前記キャンセル情報を含んだＤＭＡ命令を受信したデータ転送要求受信部１０２ａは、優先レベル／キャンセル解読部４０１により、そのＤＭＡ命令が優先レベル２のキャンセル命令であることを解読する。これに基づき、データ転送要求受信部１０２ａは、優先レベル２予約レジスタ４１２の予約ｆｌａｇ２を“０”とし、優先レベル２である、リソースＢ（ローカルメモリＢ）とのＤＭＡ転送予約がキャンセルされる。
【００６２】
これによって、実行中のローカルメモリＣとメインメモリ１１０との間のＤＭＡ転送が終了した時点で、予約ｆｌａｇ１が“０”、予約ｆｌａｇ２が“０”、予約ｆｌａｇ３が“１”となるため、優先レベル３予約レジスタ４１３に予約されているリソースＡとメインメモリ１１０との間のＤＭＡ転送が次のＤＭＡ転送として実行される。
【００６３】
また、例えば、リソースＣ（ローカルメモリＣ）とメインメモリ１１０との間の優先レベル１のＤＭＡ転送が実行されている最中に、プロセッサ１１１により、優先レベル２で、リソースＣと共にキャンセル情報が発行されると、データ転送要求受信部１０２ａにより、そのＤＭＡ命令が実行中のＤＭＡ転送のキャンセルであることが判定され、メモリーインターフェース部１０３に停止信号が発行される。この後メモリーインターフェース部１０３では、実行中のＤＭＡ転送を終了処理へと移行する。
なお、以上に説明した本実施の形態４のＤＭＡ転送処理は、実施の形態２のように前記ＤＭＡ転送要求元が複数である場合にも適応可能である。
【００６４】
このように、本実施の形態４では、予約中のＤＭＡ転送予約を、データ転送要求発行元であるプロセッサからの命令によってキャンセルできるようにすることで、システムの状態により必要がなくなったＤＭＡ転送を実行せずに済み、また再予約等の操作と組み合わせることにより予約を入れ替えることも可能となる。さらに、無駄なＤＭＡ転送を実行する必要がないため、消費電力の削減にもつながる。
【００６５】
また、本実施の形態４においては、従来実現されていた一時停止や、中断・再開処理のように停止時のパラメータを保持する必要がなく、かつ、連続して次に予約されているＤＭＡ転送を優先的に実行できる。この操作により、中断や停止を行っても、ＤＭＡの連続性は保たれる。
また、従来複雑な回路で実現されていた一時停止や中断の処理が、キャンセル命令と再予約とで容易に実現できるため、複雑な制御や、無駄な回路を備える必要がないことから、設計開発期間および検証期間を大幅に短縮することができる。
【００６６】
（実施の形態５）
以下、実施の形態５におけるＤＭＡコントローラについて説明する。
まず、図７、図８を用いて、本実施の形態５における、ＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムの構成を説明する。
図７は、実施の形態５におけるＤＭＡコントローラ（データ転送制御部）を有するシステム構成図であり、図８は、実施の形態５におけるデータ転送制御部内のデータ転送要求受信部の構成を示した図である。
【００６７】
図７において、本実施の形態５におけるシステムは、ＤＭＡコントローラであるデータ転送制御部５０１と、メインメモリ５１０と、プロセッサ５１１と、ローカルメモリ５１２と、ローカルバス、ＤＭＡバスとで構成されている。
前記プロセッサ５１１は、データ転送制御部５０１をはじめ、システム全体をコントロールするものであり、また該データ転送制御部５０１に対してＤＭＡ転送要求を発行するものである。
また、メインメモリ５１０は、各種データを格納するものであり、ローカルメモリ５１２は、プロセッサ５１１のローカルバスに接続されたローカルメモリ群である。
【００６８】
また、前記データ転送制御部（ＤＭＡコントローラ）５０１は、データ転送要求受信部５０２と、メモリーインターフェース部５０３と、データ入出力部５０４と、ＤＭＡパラメータメモリ５０５と、起動信号受信部５０６とを備えるものである。
データ転送要求受信部５０２は、プロセッサ５１１からのＤＭＡ転送要求を受け付けるものであり、ローカルバスとＤＭＡ要求関連の信号線とによって、プロセッサ５１１に接続されている。以下、図８を用いてその構成について詳細に説明する。
【００６９】
図８において、データ転送要求受信部５０２は、優先レベル解読部６０１と、セレクタ６０２と、予約レジスタ６１０と、ローカルバスとで構成される。
優先レベル解読部６０１は、入力されたデータ転送要求の優先レベルを解読し、格納すべきレジスタを確定するものである。
予約レジスタ６１０は、優先レベル１予約レジスタ６１１〜優先レベル３予約レジスタ６１３からなり、個々の優先レベル予約レジスタ６１１〜６１３は、転送相手種別情報（リソース情報）が格納される設定レジスタと、ポインタレジスタとからなる。ここでは、前記設定レジスタが、各優先レベル予約レジスタ６１１〜６１３に３つずつ備えられている。
【００７０】
前記ポインタレジスタは、予約ポインタとリードポインタとからなり、予約ポインタ６２１〜６２３は、各優先レベル予約レジスタ６１１〜６１３内で次に設定すべき設定レジスタを選択するものであり、リードポインタ６３１〜６３３は、各優先レベル予約レジスタ６１１〜６１３内で次に実行されるべき設定レジスタを選択するものである。
【００７１】
また、図８に示すように、プロセッサ５１１は、ローカルバスにより、データ転送要求受信部５０２内の各優先レベル予約レジスタ６１１〜６１３に接続されており、それぞれの優先レベル予約レジスタ６１１〜６１３内の複数の設定レジスタと、ポインタレジスタとに、直接データを読み書きできるようになっている。
【００７２】
図８において、各優先レベル予約レジスタ６１１〜６１３に予約が入ると、各優先レベル予約レジスタに対応した、予約ｆｌａｇ１〜ｆｌａｇ３が立つようになっている。また、この予約ｆｌａｇは論理和をとられ、データ転送要求受信部５０２に予約があることを示す予約フラグとして、メモリーインタフェース部５０３に出力される。
【００７３】
セレクタ６０２は、個々の優先レベル予約レジスタ６１１〜６１３から出力される転送相手種別情報を選択するセレクタで、その各優先レベル予約レジスタから出力される予約ｆｌａｇ１〜予約ｆｌａｇ３の状態によって、選択先が変わるようになっている。例えば、予約ｆｌａｇ１が“１”の場合は、優先レベル１予約レジスタ６１１の出力を選択し、予約ｆｌａｇ１が“０”で且つ予約ｆｌａｇ２が“１”の場合は、優先レベル２予約レジスタ６１２の出力が選択される。また、予約ｆｌａｇ１と予約ｆｌａｇ２とが共に“０”で、予約ｆｌａｇ３が“１”の場合は、優先レベル３予約レジスタ６１３の出力が選択されるようになっている。つまり、ここでの優先度は、優先レベル１＞優先レベル２＞優先レベル３の順であることを示している。
【００７４】
次に、図７及び図８を用いて、実施の形態５のシステムにおける、ＤＭＡコントローラ（データ転送制御部）５０１の動作について説明する。
まず、プロセッサ５１１は、ローカルバスにより、ＤＭＡパラメータメモリ５０５に、ＤＭＡ転送実行に必要なパラメータ、例えば、リード／ライト情報、バイト／ワードなどのアクセス単位情報、連続アクセスか、矩形アクセスか、リングポインタアクセスかなどを示すアクセス情報、およびスタートアドレス等の各種アドレス情報や、転送個数などをあらかじめ格納しておく。
【００７５】
プロセッサ５１１は、データ転送制御部５０１（ＤＭＡコントローラ）起動の前準備として、即座に実行したいＤＭＡ命令を、あらかじめデータ転送要求受信部５０２へ予約しておく。このとき、予約フラグがメモリーインターフェース部５０３に出力される。なお、前記ＤＭＡ転送要求の予約は、ＤＭＡ転送要求信号、またはローカルバスにより、プロセッサ５１１から予約レジスタ６１０に直接書き込むことによって行われる。
実施の形態１で説明したように、プロセッサ５１１が起動信号受信部５０６へ起動命令を発行すると、データ転送制御部５０１はＤＭＡ転送動作を開始することになる。
【００７６】
ＤＭＡ転送動作が開始されると、まず、メモリーインターフェース部５０３は、予約フラグが有効になっていることから、データ転送要求受信部５０２に対して予約チェック信号を発行する。
すると、データ転送要求受信部５０２は、図８に示す優先レベル１予約レジスタ６１１の第１の設定レジスタに格納されているＤＭＡ転送予約１−１を、メモリーインターフェース部５０３によって実行に移す。
この予約１−１のＤＭＡ転送実行の最中に、既に予約した優先レベル２予約レジスタ６１２内の第１の設定レジスタに格納されている予約２−１を、優先レベル３にレベルを変更したい場合が生じたとする。
【００７７】
この場合、まずプロセッサ５１１は、ローカルバスを通じて予約レジスタ６１０の現在の状態を読み出す。今、優先レベル１予約レジスタ６１１内の予約１−１が実行中であるため、優先レベル１予約レジスタ６１１では、予約ポインタ６２１とリードポインタ６３１とが同じ位置を示している。また、優先レベル２予約レジスタ６１２においては、２つの予約がされているが未実行であるため、予約ポインタ６２２は第３の設定レジスタを、リードポインタ６３２は、第１の設定レジスタを選択している。さらに、優先レベル３予約レジスタは６１３においては、１つの予約がされているが未実行であるため、予約ポインタ６２３は第２の設定レジスタを、リードポインタ６３２は第１の設定レジスタを選択している。また、優先レベル２予約レジスタ６１２の第１の設定レジスタには、予約２−１が設定されている。
【００７８】
そして、前記予約２−１を、優先レベル３にレベルを変更するため、プロセッサ５１１は、優先レベル２予約レジスタ６１２のリードポインタ６３２を第１の設定レジスタから第２の設定レジスタを選択するように書きかえる。これにより、優先レベル２予約レジスタ６１２内の第１の設定レジスタに格納されている予約２−１がキャンセルされたことになる。さらに、優先レベル３に予約２−１を予約するために、優先レベル３予約レジスタ６１３内の第２の設定レジスタに、予約２−１が示す転送相手種別情報を書きこむ。その後、予約ポインタ６２３を第３の設定レジスタを選択するように変更する。
【００７９】
以上の説明では、本システムが転送要求発行元であるプロセッサが１つである場合について説明したが、実施の形態２のように本システムが複数のＤＭＡ転送要求発行元を備える場合は、図９，図１０に示すように、メインプロセッサ９１１とデータ転送要求受信部５０２とをローカルバスによって接続させ、メインプロセッサ９１１が予約レジスタ６１０を自由に読み書きできるようにし、さらにデータ転送要求受信部５０２の前段に予約手段８２０を付加することで、同様に処理実行することができる。
【００８０】
このように、本実施の形態５では、プロセッサと予約レジスタとをローカルバスで接続し、プロセッサが予約レジスタを自由に読み書きできるようにしたので、既に予約してしまったＤＭＡ要求を自由にキャンセルしたり、優先レベルを入れ替えたり、優先レベル内の順番を入れ替えたりすることが可能となる。
【００８１】
これにより、プロセッサのプログラマビリティ（プログラム設計自由度）が向上し、複数開発者によるプログラム設計を容易とするほか、システム動作上発生する、さまざまなエラー処理やアプリケーション要求等にも、柔軟に対応できることになる。
なお、本実施の形態で５においては、優先レベル数と、各優先レベルの設定レジスタ数は３としたが、任意の数でもよい。
また、ここでは、予約の入れ替えの一実施例について述べたが、同様にして、一度実行したＤＭＡ予約を復活させることも可能である。
【００８２】
（実施の形態６）
以下、実施の形態６におけるＤＭＡコントローラについて説明する。
まず、図１及び図１１を用いて、本実施の形態６における、ＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムの構成を説明する。
図１１は、実施の形態６におけるＤＭＡコントローラ（データ転送制御部）内のデータ転送要求受信部の構成を示している。
図１１において、データ転送要求受信部１０２ｂは、優先レベル解読部７０１と、予約レジスタ７１０と、セレクタ７０２とを備え、前記予約レジスタ７１０内の各優先レベル予約レジスタ７１１〜７１３は、設定レジスタと、予約タイマーとを備えている。
なお、本実施の形態６におけるＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムのそのほかの構成は、実施の形態１と同様であるため、説明を省略する。
【００８３】
次に、図１及び図１１を用いて、実施の形態６のシステムにおけるＤＭＡコントローラ（データ転送制御部）１０１の動作を説明する。
今、図１におけるシステムは起動状態にあり、プロセッサ１１１はデータ転送制御部１０１に対して起動命令を発行済みであるとする。そして、さらにデータ転送制御部１０１は、優先レベル１予約レジスタ７１１の予約１のＤＭＡ転送を実行中で、優先レベル２予約レジスタ７１２、及び優先レベル３予約レジスタ７１３の設定レジスタには、予約２及び予約３のＤＭＡ転送が予約されているとする。
【００８４】
ここで、新たにプロセッサ１１１が、データ転送要求受信部１０２ｂに対してＤＭＡ転送要求を発行したとする。このＤＭＡ転送要求には、優先レベル、転送相手種別情報、及び実行までのサイクル数である実行タイミング情報が含まれる。
今、プロセッサ１１１より、優先レベル１予約レジスタ７１１に対して、転送相手種別情報としてリソースＢ、予約タイマー１に実行タイミング情報として１０００サイクルが指定されたとする。
データ転送要求受信部１０２ｂは前記ＤＭＡ転送要求を受信すると、優先レベル解読部７０１により、優先レベル１予約レジスタ７１１が選択され、優先レベル１予約レジスタ７１１の設定レジスタには転送相手種別情報リソースＢを、予約タイマー１には実行タイミング情報１０００サイクルを設定する。設定後、予約タイマー１は１０００サイクル後までカウントダウンを開始し、その間優先レベル１予約レジスタ７１１内のリソースＢの予約は実行されない。従って、予約ｆｌａｇ１は“０”のままであり、１０００サイクル後“１”となる。
【００８５】
実行中であった予約１のローカルメモリＣとメインメモリ１１０とのＤＭＡ転送が終了すると、予約ｆｌａｇ１は“０”、予約ｆｌａｇ２が“１”となるので、次のＤＭＡ転送として、優先レベル２予約レジスタ７１２に設定されている、予約２のリソースＢとのＤＭＡ転送を実行することになる。
【００８６】
予約２のリソースＢとのＤＭＡ転送が終了した時点で、予約タイマー１のカウントが終了していない場合、予約ｆｌａｇ１，予約ｆｌａｇ２が“０”、予約ｆｌａｇ３が“１”であるため、優先レベル３予約レジスタ７１３に設定されている予約３のリソースＡとのＤＭＡ転送が実行される。
そして、予約３のＤＭＡ転送実行中に、予約タイマー１が１０００サイクルカウントが終了したとすると、その時点で予約ｆｌａｇ１が“１”となり、予約３のリソースＡとのＤＭＡ転送が終了後に、優先レベル１に予約されていたリソースＢとのＤＭＡ転送が実行に移されることとなる。
【００８７】
なお、以上に説明した本実施の形態６のＤＭＡ転送処理は、実施の形態２のように前記ＤＭＡ転送要求元が複数である場合であっても、図１２に示すように、予備予約手段８３０内の各ＤＭＡ転送要求発行元毎の予備予約レジスタ８３１，８３２が備えるレジスタに、実行タイミング情報を保持できる実行タイミングレジスタを追加することで適応できる。
【００８８】
このように、本実施の形態６では、データ転送要求受信部１０２ｂに予約したＤＭＡ転送の実行タイミングとして、予約してからのサイクル数を指定し、その指定時間経過後に該ＤＭＡ転送が実行されるようにしたので、時間遅延されたＤＭＡ転送を容易に実行することができる。このことにより、例えば、プロセッサのプログラム開発において、ＤＭＡ転送の発行制御を行うモジュールの作成と、ＤＭＡ転送を意識しない処理モジュールの作成とに分けての設計が容易となる。これにより、プロセッサの開発容易性が増し、開発効率の向上、開発期間の短縮、プログラムステップ数の削減が可能となる。
【００８９】
（実施の形態７）
以下、実施の形態７におけるＤＭＡコントローラについて説明する。
まず、図１及び図１３を用いて、本実施の形態７における、ＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムの構成を説明する。
図１３は、実施の形態７におけるＤＭＡコントローラ（データ転送制御部）内のデータ転送要求受信部の構成を示している。
【００９０】
図１３において、データ転送要求受信部１０２ｃは、優先レベル解読部１３０１と、予約レジスタ１３１０と、セレクタ１３０２とを備え、前記予約レジスタ１３１０内の各優先レベル予約レジスタ１３１１〜１３１３は、転送相手種別情報を格納する設定レジスタと、予約レジスタ１３１０に入力されている予め決められたタイミング信号を、実行タイミングとして使用するか、しないかを指定するタイミング指定レジスタと、を備えている。
なお、本実施の形態７におけるＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムのそのほかの構成は、実施の形態１と同様であるため、説明を省略する。
【００９１】
次に、図１及び図１３を用いて、実施の形態７のシステムにおけるＤＭＡコントローラ（データ転送制御部）１０１の動作を説明する。
今、図１におけるシステムは起動状態にあり、プロセッサ１１１はデータ転送制御部１０１に対して起動命令を発行済みであるとする。
今、プロセッサ１１１から、優先レベル１、転送相手種別情報がリソースＣ、且つ実行タイミング情報が実行タイミング指定あり、のＤＭＡ転送要求が発行されたとする。なお、ここでの実行タイミングに使用される予め決められたタイミング信号を、例えばビデオ入力の水平同期信号とする。
【００９２】
以上のようなＤＭＡ転送要求を受信したデータ転送要求受信部１０２ｃは、優先レベル解読部１３０１により、優先レベル１予約レジスタ１３１１が選択される。そして、該優先レベル１予約レジスタ１３１１の設定レジスタには転送相手種別情報としてリソースＣが、またタイミング指定レジスタ１には“１”のフラグが設定される。設定後、実行タイミングがくるまで、優先レベル１予約レジスタ１３１１内のリソースＣの予約は実行されない。従って、予約ｆｌａｇは“０”のままであり、実行タイミングがくると、“１”となる。
次に、プロセッサ１１１は、優先レベル２、転送相手種別情報がリソースＢ、実行タイミング情報が実行タミング指定なし、のＤＭＡ転送要求を、そして、優先レベル３、転送相手種別情報がリソースＡ、実行タイミング情報が実行タミング指定なし、のＤＭＡ転送要求を、次々に指定する。
【００９３】
以上のようなＤＭＡ転送要求を受信したデータ転送要求受信部１０２ｃは、それぞれを優先レベル２予約レジスタ１３１２、優先レベル３予約レジスタ１３１３に設定し、まず、優先レベル２予約レジスタ１３１２に設定されたリソースＢのＤＭＡ転送を実行に移す。
この直後、タイミング信号が入力されたとする。今、優先レベル１予約レジスタ１３１１に設定された予約１は、タイミング指定１レジスタにより、実行タイミング指定されているため、前記タイミング信号が入力されたタイミングで、予約ｆｌａｇ１が“１”となり、この時点でＤＭＡ転送予約が有効となる。
従って、今実行中のリソースＢのＤＭＡ転送が終了すると、優先レベル１予約レジスタ１３１１の予約ｆｌａｇ１が“１”であるため、優先レベル１予約レジスタ１３１１に設定されたリソースＣのＤＭＡ転送が実行へと移される。
【００９４】
以上の説明では、前記実行タイミング情報が、予約レジスタに入力している予め決められたタイミング信号（ここではビデオ入力の水平同期信号）をＤＭＡ転送要求の実行タイミングとして使用するか、しないかを指定するものとしたが、該実行タイミング信号が、予約レジスタに入力している複数のタイミング信号の内、ＤＭＡ転送要求の実行タイミングとして使用するタイミング信号の種類を指定するものであってもよい。
【００９５】
この場合、図１４に示すように、データ転送要求受信部１０２ｄ内の予約レジスタ１４１０には複数のタイミング信号が入力され、各優先レベル予約レジスタ１４１１〜１４１３に備えられたタイミング種類レジスタに設定する値によって、どのタイミング信号を実行タイミングとして使用するかを選択するようにする。例えば、タイミング種類レジスタ１に“０”を設定すると、ビデオ入力の水平同期信号を選択し、“１”を設定すると、ビデオ入力の垂直同期信号を選択するなどのようにする。
【００９６】
また、以上に説明したように本実施の形態７のＤＭＡ転送処理は、実施の形態２のように前記ＤＭＡ転送要求元が複数である場合にも適応可能である。この場合、実施の形態６の図１２と同様、予備予約手段８３０内の各予備予約レジスタ８３１，８３２に、あらたにＤＭＡ転送要求の情報に追加された実行タイミング情報（タイミング指定、またはタイミング種類）を保持する実行タイミングレジスタを付加することにより実現できる。
【００９７】
このように、本実施の形態７によれば、データ転送要求受信部に予約されたＤＭＡ転送の実行を、該データ転送要求受信部の予約レジスタに入力されている特定のタイミング信号を指定し、該指定した信号が入力されるタイミングを利用して行えるようにしたので、データ転送要求発行元であるプロセッサがＤＭＡ転送要求を発行するタイミングを考慮することなく、データ転送要求受信部に予約を行うことができる。このことにより、プロセッサのプログラム開発の自由度が増し、開発にかかる負担を大幅に削減することができ、開発期間の短縮に大きく寄与できる。
【００９８】
また、ＤＭＡ転送の実行タイミングを指定するタイミング信号を複数の信号から選択できるようにすることで、実行タイミングを指定する自由度が増し、プロセッサのプログラム開発の自由度、開発の容易性が向上する。
なお、本実施の形態では、説明上優先レベル数は３、また各優先レベル予約レジスタの設定レジスタ数は１であったが、任意の数であってよい。
【００９９】
さらに、上記ＤＭＡ転送要求に含まれる実行タイミング情報として、実施の形態６において説明したＤＭＡ転送実行までのサイクル数と、本実施の形態７で説明したタイミング信号を使用するかしないかを指定するものを組み合わせ、ＤＭＡ転送要求の情報にサイクル数が含まれていれば、予約レジスタ内の予約タイマーで該サイクル数をカウントし、タイミング信号の使用を指定する情報が含まれていれば、該タイミング信号のタイミングに従って、ＤＭＡ転送を実行するようにしてもよい。
【０１００】
(実施の形態８)
以下、実施の形態８におけるＤＭＡコントローラについて説明する。
まず、図１及び図１５を用いて、本実施の形態８における、ＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムの構成を説明する。
図１５は、実施の形態８におけるＤＭＡコントローラ(データ転送制御部)内のデータ転送要求受信部の構成を示している。
本実施の形態８においては、プロセッサ１１１からの前記データ転送要求に、実施の形態７で説明したタイミング信号指定の有無、あるいはタイミング信号の種類指定である実行タイミング情報に加え、ＤＭＡ転送実行の繰り返し回数をあらわすリピート情報がさらに含まれているものである。
【０１０１】
この場合、図１５に示すように、データ転送予約受信部１０２ｅの各優先レベル予約レジスタ１５１１〜１５１３に、転送相手種別情報を格納する設定レジスタ、実行タイミングとして使用するタイミング信号の種類を示す実行タイミング情報を格納するタイミング種類レジスタに加えて、このＤＭＡ転送要求の実行回数を格納するリピート回数設定レジスタ、及び該リピート回数設定レジスタに設定した実行回数をカウントするリピート回数カウンタと、を備えるようにする。なお、本実施の形態８におけるＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムのそのほかの構成は、実施の形態１と同様であるため、説明を省略する。
【０１０２】
次に、図１及び図１５を用いて、本実施の形態８のシステムにおけるＤＭＡコントローラ（データ転送制御部）１０１の動作を説明する。
今、プロセッサ１１１から、優先レベル１予約レジスタ１５１１に、ＤＭＡ転送要求と共に、実行タイミング情報としてタイミング種類レジスタ１にビデオ出力の垂直同期信号を選択するように“３”が設定され、且つリピート回数設定レジスタ１に実行回数“２”が指定されたとする。このとき、リピート回数カウンタ１の初期値は、リピート回数設定レジスタ１に設定された値となる。優先レベル１予約レジスタ１５１１の予約ｆｌａｇ１は、最初“０”であるが、ビデオ出力の垂直同期信号の立下りエッジ（垂直ブランキング開始）のタイミングで、予約ｆｌａｇ１が“１”となり、現在実行中のＤＭＡ転送が終了すると、優先レベル１予約レジスタ１５１１に設定されたＤＭＡ転送が実行に移され、それと共にリピート回数カウンタ１がカウントダウンされ“１”となる。そして、このＤＭＡ転送が終了後もまだ予約ｆｌａｇ１は“１”のままであり、再び優先レベル１予約レジスタ１５１１に設定された同じＤＭＡ転送が実行に移されると、リピート回数カウンタ１がカウントダウンされ“０”となる。同時に、予約ｆｌａｇ１は“０”となり、予約が入っていないことを示すようになる。なお、本実施の形態では、リピート回数設定レジスタとリピートカウンタとを備え、前記リピート回数設定レジスタに設定されたリピート回数を前記リピートカウンタでカウントしていくようにしているが、リピートカウンタのみ備え、該リピートカウンタにリピート回数を設定してカウントするものであってもよい。
【０１０３】
また、以上に説明した本実施の形態８のＤＭＡ転送処理は、実施の形態２のように前記ＤＭＡ転送要求元が複数である場合にも適応可能である。この場合、図１６に示すように、予備予約手段８４０内の各予備予約レジスタ８４１，８４２に、あらたにＤＭＡ転送要求の情報に追加された実行タイミング情報（タイミング指定、タイミング種類）を保持する実行タイミングレジスタと、リピート回数情報（リピート回数）を保持するリピート回数レジスタを付加することにより実現できる。
【０１０４】
このように、本実施の形態８によれば、リピート回数を指定するようにして、同一種類のＤＭＡ転送要求をデータ転送要求発行元であるプロセッサより複数回数要求する必要がなくなるため、要求発行を簡略化することができる。これにより、プロセッサのハードウェア設計や、プロセッサのプログラム等のソフトウェア設計を容易化することができ、開発の負担を軽減できるほか、開発の容易性を向上することができる。
なお、本実施の形態では、説明上優先レベル数は３、また各優先レベル予約レジスタの設定レジスタ数は１であったが、任意の数であってよい。
【０１０５】
（実施の形態９）
以下、実施の形態９におけるＤＭＡコントローラについて説明する。
図１７は、実施の形態９におけるＤＭＡパラメータメモリ内のデータ配置を示している。
【０１０６】
図１７において、ＤＭＡパラメータメモリの前半部分は、転送相手先毎にＤＭＡ転送に必要なパラメータをまとめていることを表している。例えば、リソースＡパラメータ領域において、アクセスパターン指定パラメータ情報は、転送相手先とのＤＭＡ転送におけるメインメモリへのアクセスパターンを表す情報が格納される。リード／ライト情報は、メインメモリからの読み出しか、メインメモリへの書きこみかを表す。アクセス単位情報は、メインメモリへバイト単位でアクセスするか、ワード単位でアクセスするかを表す情報である。また、基本的な連続アクセスを行うために、転送開始アドレスを表すスタートアドレスと、転送個数が格納されるようになっている。
【０１０７】
後半部分は、アクセスパターン毎に必要なパラメータが格納される。ここでは、例えば、３種類のアクセスパターンがあり、１つ目は、矩形領域へのアクセスパターン、２つ目は、リングバッファ１領域用、３つ目は、リングバッファ２領域用である。
矩形領域へのアクセスパターンには、スタートアドレスと、縦方向および横方向のアクセス個数が格納される。
【０１０８】
リングバッファ１領域用には、リングバッファを形成する際の領域先頭アドレス、領域終了アドレスと、ＤＭＡ転送開始アドレスであるスタートアドレスおよび転送個数が格納される。
高機能リングバッファであるリングバッファ２領域用には、領域先頭アドレス、領域終了アドレスに加え、ライト時のスタートアドレスと転送個数、リード時のスタートアドレスと転送個数がそれぞれ格納される。
【０１０９】
以上のように、転送相手毎とアクセスパターン毎に各パラメータが、まとまったアドレス領域に格納されている。
なお、本実施の形態９におけるＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムの構成は、実施の形態１と同様であるため、説明を省略する。
【０１１０】
次に、図１、図２、図１７を用いて、本実施の形態９のシステムにおけるＤＭＡコントローラ（データ転送制御部）１０１の動作について説明する。
プロセッサ１１１は、ローカルバスを用いて、ＤＭＡパラメータメモリ１０５にＤＭＡ転送に必要なパラメータを格納しておく。例えば、図１７に示すように、リソースＡ〜リソースＣのパラメータ領域に、アクセスパターン情報や、リード／ライト情報、アクセス単位情報と、基本アクセスパターン（連続アクセス）時のスタートアドレスと転送個数とを格納する。このように、リソース毎にまとめているため、プロセッサ１１１はローカルバス上で連続アドレスアクセスでパラメータを設定できる。
さらに、アクセスパターン毎に必要な情報を、矩形領域アクセス、リングバッファ１、リングバッファ２毎に格納する。このようにアクセスパターン毎にまとめておくと、ＣＰＵは関連する情報をローカルバス上で連続アドレスアクセスできる。
【０１１１】
プロセッサ１１１が、必要なＤＭＡ転送要求をデータ転送要求受信部１０２に発行すると、図２に示すようにそれぞれの優先レベル予約レジスタにＤＭＡ転送要求が予約される。
データ転送制御部１０１内の起動信号受信部１０６に起動命令が発行されると、実施の形態１において述べたように、優先レベルの高い予約レジスタから順にＤＭＡ転送が実行に移される。
ここでは、最初に優先レベル１予約レジスタ２１１に設定されているリソースＣとメインメモリ１１０とのＤＭＡ転送が実行される。
【０１１２】
データ転送制御部１０１によって、メモリーインターフェース部１０３にＤＭＡ種別情報を転送されると、メモリーインターフェース部１０３は、リソースＣに関するＤＭＡ転送であることを知る。これにより、ＤＭＡパラメータメモリ１０５からリソースＣに関する情報をまとめて読み出す。読み出したパラメータより、リソースＣに関するＤＭＡ転送は、アクセスパターンが連続アクセスであって、メインメモリ１１０へのライト動作で、ワード転送であることを知る。また、アクセスパターンが連続アクセスであるため、そのままスタートアドレス＄３Ｆ００（１６進）、転送個数８８個を用いて、リソースＣからメインメモリ１１０へのＤＭＡライト転送を実行する。
【０１１３】
リソースＣとのＤＭＡ転送が終了すると、終了アドレスを再びＤＭＡパラメータメモリ１０５内のリソースＣスタートアドレス部に書き戻す。同時に、優先レベル２のリソースＢとのＤＭＡ転送が実行に移される。
メモリーインターフェース部１０３は、ＤＭＡ種別情報よりリソースＢの転送であることを知る。これより、ＤＭＡパラメータメモリ１０５内のリソースＢに関する情報が格納されている領域から、データを連続で読み出す。読み出したパラメータより、リソースＢに関するＤＭＡ転送は、アクセスパターンが矩形領域アクセスであって、メインメモリ１１０からのリード動作で、バイト単位でデータを転送するものであることを知る。ここで、アクセスパターンが矩形領域アクセスであるため、メモリーインターフェース部１０３は、再びＤＭＡパラメータメモリ１０５内の矩形領域アクセスに関する情報が格納されている領域から、データを連続で読み出す。これにより、矩形アクセスする領域の先頭アドレスが＄１０００（１６進）であり、横方向アクセス個数が１６個、縦方向アクセス個数が１６個の転送であることがわかる。これらを用いて、メインメモリ１１０からリソースＢへ、＄１０００を始点とする１６×１６の矩形領域のＤＭＡリード転送が実行される。
【０１１４】
リソースＢのＤＭＡ転送が終了すると、以下同様にして優先レベル３であるリソースＡのリングバッファ２のＤＭＡライト転送がバイト単位で実行される。
なお、本実施の形態９のＤＭＡ転送処理は、実施の形態２のように前記ＤＭＡ転送要求元が複数である場合にも適応可能である。
【０１１５】
このように、本実施の形態９では、各リソース毎にＤＭＡ転送に必要なパラメータをアドレス領域でまとめたことで、ＤＭＡパラメータメモリは１つでも、複数のリソースに関する情報を連続に設定し、取り出すことができる。
また、本実施の形態９では、各リソース毎にアクセスパターン情報を備えたことにより、複数のアクセスパターンを用いて、メインメモリにアクセスすることが可能となる。
さらに、本実施の形態９では、リード／ライト情報、アクセス単位情報をパラメータメモリに持つことにより、ＤＭＡ転送要求時に指定する必要がなく、ＤＭＡ転送命令を簡略化でき、これによりプロセッサのプログラムコードを簡略化できる。
【０１１６】
また、本実施の形態９では、スタートアドレス情報と転送個数をアクセスパターン毎に持つことにより、アクセスパターンによってスタートアドレスや転送個数を固定することが可能となる。これにより、リソース毎のアクセスパターンが変化するたびに、アクセススタートアドレスを指定する必要がなくなる。また、アクセスパターンもパラメータを格納するアドレス領域をまとめることで、連続で設定し取り出せるようになる。これらの結果、プロセッサのプログラムが簡単になり、回路制御も簡単になることから、開発期間の短縮に大きく寄与することになる。
なお、本実施の形態９の図１７に示すメモリの格納方法および、パラメータの種類、値は一例であり、この限りではない。
【０１１７】
（実施の形態１０）
以下、実施の形態１０におけるＤＭＡコントローラについて説明する。
まず、図１８を用いて、本実施の形態１０におけるＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムの構成を説明する。
図１８は、実施の形態１０における、ＤＭＡコントローラを有するシステム構成を表している。
【０１１８】
図１８において、実施の形態１０におけるシステムは、ＤＭＡコントローラであるデータ転送制御部１００１と、プロセッサ１０１１と、メインメモリ１０１２と、ローカルメモリ１０１３と、ローカルバスと、ＤＭＡバスとで構成されている。
前記プロセッサ１０１１は、データ転送制御部１００１をはじめシステム全体をコントロールするものであり、また該データ転送制御部１００１に対してＤＭＡ転送要求を発行するものである。
メインメモリ１０１２は、各種データを格納するためのメインメモリであり、ローカルメモリ１０１３は、プロセッサ１０１１のローカルバスに接続されたローカルメモリ群である。
【０１１９】
前記データ転送制御部（ＤＭＡコントローラ）１００１は、データ転送要求受信部１００２と、メモリーインターフェース部１００３と、データ入出力部１００４と、ＤＭＡパラメータメモリ１００５と、起動信号受信部１００６と、クロック制御部１００７と、メモリクロック制御レジスタ１００８と、クロック供給・停止部１００９，１０１０とを備える。
クロック制御部１００７は、起動信号受信部１００６から動作イネーブルが発行され、且つデータ転送要求受信部１００２にＤＭＡ転送予約が蓄積されている場合のみクロックイネーブルを出力する。
【０１２０】
メモリクロック制御レジスタ１００８は、ＤＭＡパラメータメモリ用に特別に設けられたメモリクロック制御用レジスタで、ＤＭＡパラメータメモリ１００５へクロックを強制的に供給するかどうかを制御するものである。
また、クロック供給・停止部１００９，１０１０は、ＤＭＡパラメータメモリ１００５、メモリインターフェース部１００３、データ入出力部１００４及びメインメモリ１０１２に対するクロックの供給及び停止を制御するものである。前記クロック供給・停止部１００９は、例えばＡＮＤゲートのようなもので構成され、クロック制御部１００７により制御されるものであり、これが出力するクロックによって、メモリーインターフェース部１００３、データ入出力部１００４及びメインメモリ１０１２が動作する。さらに、前記クロック供給・停止部１０１０は、例えばＯＲとＡＮＤ等で作られた複合ゲートで構成され、メモリクロック制御レジスタ１００８またはクロック制御部１００７により制御される。そして、これが出力するクロックによって、ＤＭＡパラメータメモリ１００５が動作する。
なお、本実施の形態１０におけるデータ転送制御部１００１内のデータ転送要求受信部１００２の構成は、実施の形態１と同様であるため、説明を省略する。
【０１２１】
次に、図１８及び図２を用いて、本実施の形態１０のシステムにおける、ＤＭＡコントローラ（データ転送制御部）１００１の動作を説明する。
まず、プロセッサ１０１１は、ローカルバスを用いてメモリクロック制御レジスタ１００８に“１”を書きこみメモリクロックを有効とする。これにより、ＤＭＡパラメータメモリ１００５へクロックが強制的に供給される。その後、プロセッサ１０１１は、ＤＭＡ転送に必要なパラメータをあらかじめＤＭＡパラメータメモリ１００５へと格納し、再びメモリクロック制御レジスタ１００８を“０”とし、クロックを停止させておく。そして、初期転送に必要なＤＭＡ転送要求をデータ転送要求受信部１００２へと発行し、予約する。ここで、図２に示すように３つのＤＭＡ転送の予約がなされたとする。
【０１２２】
システムが起動されると、プロセッサ１０１１は起動信号受信部１００６へ起動命令を発行する。起動命令を受信した起動信号受信部１００６は、メモリーインターフェース部１００３および、クロック制御部１００７に動作イネーブルを発行する。クロック制御部１００７には、動作イネーブルと予約フラグが入力されており、これらが共に有効である場合に、クロックイネーブルを有効とする動作をする。前記クロック制御部１００７から出力されるクロックイネーブルは、クロック供給・停止部１００９，１０１０に入力されており、クロックイネーブルが有効な期間のみ、メインメモリ１０１２、メモリーインターフェース部１００３、データ入出力部１００４、ＤＭＡパラメータメモリ１００５へクロックが供給されるように、前記クロック供給・停止部１００９，１０１０で制御する。
【０１２３】
図２に示す３つの予約が優先レベル順に実行され、おのおののＤＭＡ転送において、データをメインメモリ１０１２へ書き込み終了、またはデータを各ローカルメモリ１０１３へ書き込み終了すると、データ入出力部１００４はメモリーインターフェース部１００３にその旨を知らせ、メモリーインターフェース部１００３は、転送終了信号をクロック制御部１００７へと出力する。また、予約フラグは、データ転送要求受信部１００２に予約がなくなると、“０”となる。前記クロック制御部１００７は、メモリーインターフェース部１００３から転送終了信号を受け、データ転送要求受信部１００２からの予約フラグが“０”になったタイミングで、クロックイネーブルを“０”にして、クロック供給・停止部１００９，１０１０に対して出力する。前記クロックイネーブル信号を受信したクロック供給・停止部１００９，１０１０は、メインメモリ１０１２、メモリーインターフェース部１００３、データ入出力部１００４、ＤＭＡパラメータメモリ１００５へのクロック供給を停止する。
なお、以上に説明した本実施の形態１０のＤＭＡ転送処理は、実施の形態２のように前記ＤＭＡ転送要求発行元が複数である場合にも適応可能である。
【０１２４】
このように、本実施の形態１０では、データ転送にかかわる制御ブロックと、メインメモリのクロックを、必要最低限の期間のみ、自動的に供給・停止するようにしたので、効率よく電力を制御でき、低消費電力を実現するシステムを得ることができる。
また、本実施の形態１０では、ＤＭＡ転送命令を発行するたびに、プロセッサのプログラムがクロック制御を行う必要がないため、プログラムが複雑とならず、さらには、プログラムステップ数を削減することができる。
【０１２５】
（実施の形態１１）
以下、実施の形態１１におけるＤＭＡコントローラについて説明する。
まず、図１９を用いて、本実施の形態１１におけるＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムの構成を説明する。
図１９は、実施の形態１１におけるＤＭＡコントローラ（データ転送制御部）を有するシステム構成図である。
【０１２６】
図１９において、本システムは、ＤＭＡコントローラであるデータ転送制御部１１０１と、メインメモリ１１２０と、プロセッサ１１２１と、ローカルメモリ１１２３と、ローカルバスと、ＤＭＡバスとで構成される。
メインメモリ１１２０は各種データを格納するメモリであって、ＳＲＡＭで構成されている。また、このＳＲＡＭは、リニアなアドレス領域を４バンクに物理的に分割されており、それぞれに独立したクロックが入力されている。
【０１２７】
プロセッサ１１２１は、ＤＭＡコントローラ１１０１をはじめ、システム全体をコントロールするものであり、また該データ転送制御部１１０１に対してＤＭＡ転送要求を発行するものである。
ローカルメモリ１１２３は、プロセッサ１１２１にローカルバスによって接続されたローカルメモリ群である。
【０１２８】
また、前記データ転送制御部（ＤＭＡコントローラ）１１０１は、データ転送要求受信部１１０２と、メモリーインターフェース部１１０３と、データ入出力部１１０４と、ＤＭＡパラメータメモリ１１０５と、起動信号受信部１１０６と、クロック制御部１１０７と、メモリクロック制御レジスタ１１０８と、クロック供給・停止部１１０９，１１１０と、メインメモリクロック供給・停止部１１１１とを備えるものである。
【０１２９】
クロック制御部１１０７は、起動信号受信部１１０６から動作イネーブルが発行され、且つデータ転送要求受信部１１０２にＤＭＡ転送予約が蓄積されている場合のみクロックイネーブルを出力するものである。
メモリクロック制御用レジスタ１１０８は、ＤＭＡパラメータメモリ１１０５用に特別に設けられたもので、ＤＭＡパラメータメモリ１１０５へクロックを強制的に供給するかどうかを制御するものである。
【０１３０】
また、メモリーインターフェース部１１０３、データ入出力部１１０４及びメインメモリクロック供給・停止部１１１１は、クロック供給・停止部１１０９の出力するクロックによって動作するようになっており、前記クロック供給・停止部１１０９は例えばＡＮＤゲートで構成されている。さらに、ＤＭＡパラメータメモリ１１０５は、クロック供給・停止部１１１０の出力するクロックによって動作するようになっており、該クロック供給・停止部１１１０は、メモリクロック制御レジスタ１１０８またはクロック制御部１１０７により制御されるものであり、例えば、メモリクロック制御レジスタ１１０８の出力と、クロックイネーブルとのＯＲと、該ＯＲの出力とクロックとのＡＮＤで作られた複合ゲートで構成されているものである。
【０１３１】
メインメモリクロック供給・停止部１１１１は、メインメモリ１１２０であるＳＲＡＭ０〜ＳＲＡＭ３へそれぞれ独立したクロックｃｌｋｒａｍ０〜ｃｌｋｒａｍ３を供給するため、それぞれのメモリ（ＳＲＡＭ０〜３）に対応したクロック供給・停止部を備えており、該ＳＲＡＭ毎のクロック供給・停止部には、クロック制御部１１０７からクロックイネーブルが入力され、さらにメモリーインターフェース部１１０３からメインメモリ１１２０に対するアドレスの上位２ビットがデコードされ、それらがバンク選択信号として入力される。以下、表１にアドレスの上位２ｂｉｔとバンク選択信号との関係を記す。
【０１３２】
【表１】
0004077349.tif 000002
メインメモリクロック供給・停止部１１１１の各メモリクロック供給・停止部は、アドレスデコードされたバンク選択信号ｂａｎｋ０〜ｂａｎｋ３が有効、且つクロック制御部１１０７からのクロックイネーブルが有効の時のみ、メインメモリ１１２０内の各ＳＲＡＭに対してクロックを供給するようになっている。これらのメモリクロック供給・停止部は、例えばＡＮＤゲートのようなもので構成されている。
【０１３３】
なお、本実施の形態１１におけるデータ転送制御部１１０１内のデータ転送要求受信部１１０２の構成は、実施の形態１と同様であり、また、本実施の形態１１におけるＤＭＡパラメータメモリ１１０５内のデータ配置は、実施の形態９と同様であるため、説明を省略する。
【０１３４】
次に、図１９、図２および図１７を用いて、本実施の形態１１のシステムにおけるＤＭＡコントローラ（データ転送制御部）１１０１の動作について説明する。
実施の形態１０で説明した動作と同様、まずプロセッサ１１２１は、ローカルバスを用いてメモリクロック制御レジスタ１１０８に“１”を書き込み、メモリクロックを有効とする。これにより、ＤＭＡパラメータメモリ１１０５へクロックが強制的に供給される。その後、プロセッサ１１２１は、ＤＭＡ転送に必要なパラメータをあらかじめＤＭＡパラメータメモリ１１０５へと格納し、再びメモリクロック制御レジスタ１１０８を“０”とし、クロックを停止させておく。そして、初期転送に必要なＤＭＡ転送要求をデータ転送要求受信部１１０２へと発行し、予約する。ここで、図２に示すように３つのＤＭＡ転送の予約がなされたとする。
【０１３５】
システムが起動されると、プロセッサ１１２１は起動信号受信部１１０６へ起動命令を発行する。起動命令を受信した起動信号受信部１１０６は、メモリーインターフェース部１１０３及びクロック制御部１１０７に動作イネーブルを発行する。クロック制御部１１０７には、動作イネーブルと予約フラグとが入力されており、これらが共に有効である場合に、クロックイネーブルを有効とする動作をする。クロックイネーブルは、クロック供給・停止部１１０９，１１１０に入力されており、クロックイネーブルが有効な期間のみ、メモリーインターフェース部１１０３、データ入出力部１１０４、ＤＭＡパラメータメモリ１１０５へクロックが供給される。
【０１３６】
今、優先レベル１の予約であるリソースＣとメインメモリ１１２０とのＤＭＡ転送が実行されているとし、このときのＤＭＡパラメータが図１７に示すようなものであったとすると、アクセスパターンが連続アクセス、スタートアドレスが、＄３Ｆ００（１６進）、転送個数が８８個のワード単位でのライト転送となる。
【０１３７】
メモリーインターフェース部１１０３は、メインメモリ１１２０のアクセススタートアドレスの上位２ビットが、“００”であるため、まず、メインメモリクロック供給・停止部１１１１へ、ｂａｎｋ０＝１，ｂａｎｋ１＝０，ｂａｎｋ２＝０，ｂａｎｋ３＝０の信号を出力する。メインメモリクロック供給・停止部１１１１は、クロック制御部１１０７からのクロックイネーブルと、メモリーインターフェース部１１０３からのｂａｎｋ０信号とを受けて、ＳＲＡＭ０に対するクロックｃｌｋｒａｍ０のみを供給する。
【０１３８】
上述した１６ワードの転送が終了した時点で、アドレスが＄４０００（１６進）へと変化すると、アドレスの上位２ビットが“１０”と変化するため、メモリーインターフェース部１１０７は、メインメモリクロック供給・停止部１１１１へ、ｂａｎｋ０＝０，ｂａｎｋ１＝１，ｂａｎｋ２＝０，ｂａｎｋ３＝０の信号を出力する。メインメモリクロック供給・停止部１１１１は、クロック制御部１１０７からのクロックイネーブルと、メモリーインターフェース部１１０３からのｂａｎｋ１信号とを受けて、ＳＲＡＭ１に対するクロックｃｌｋｒａｍ１のみを供給し、他のＳＲＡＭ０およびＳＲＡＭ２、ＳＲＡＭ３へのクロック供給を停止する。
【０１３９】
このような制御のもと、図２に示す３つの予約が、優先レベル順に実行され、おのおののＤＭＡ転送において、データをメインメモリ１１２０へ書き込み終了、またはデータを各ローカルメモリ１１２３へ書き込み終了すると、データ入出力部１１０４は、メモリーインターフェース部１１０３にその旨を知らせる。メモリーインターフェース部１１０３は、転送終了信号をクロック制御部１１０７へと出力し、予約フラグは、データ転送要求受信部１１０２に予約がなくなると“０”となる。クロック制御部１１０７は、メモリーインターフェース部１１０３から転送終了信号を受け、データ転送要求受信部１１０２からの予約フラグが“０”になったタイミングで、クロックイネーブルを“０”とし、クロック供給・停止部１１０９，１１１０に対して出力する。このクロックイネーブル信号を受信したクロック供給・停止部１１０９，１１１０は、メモリーインターフェース部１１０３、データ入出力部１１０４、ＤＭＡパラメータメモリ１１０５、メインメモリクロック供給・停止部１１１１へのクロック供給を停止する。
なお、以上に説明した本実施の形態１１のＤＭＡ転送処理は、実施の形態２のように前記ＤＭＡ転送要求発行元が複数である場合にも適応可能である。
【０１４０】
このように、本実施の形態１１では、メインメモリを物理的に分割しておき、クロックならびに制御信号を分割したメモリに別々に入力して、使用しないアドレス領域の場合はクロックおよび制御信号を自動的に供給しないことによって、効率的に低消費電力を実現するシステムを得ることができる。
また、本実施の形態１１においては、回路が自動的にクロック制御することから、プロセッサのプログラムがクロック制御を行う必要がないため、プログラムが複雑とならず、さらには、プログラムステップ数を削減することができる。
【０１４１】
（実施の形態１２）
以下、実施の形態１２におけるＤＭＡコントローラについて説明をする。
まず、図２０を用いて、本実施の形態１２におけるＤＭＡコントローラ及びそのＤＭＡコントローラを有するシステムの構成を説明する。
図２０は、実施の形態１２におけるＤＭＡコントローラを有するシステム構成図である。
【０１４２】
図２０において、本システムは、ＤＭＡコントローラであるデータ転送制御部１２０１と、メインメモリ１２２０と、プロセッサ１２２１と、ローカルメモリ１２２３と、ローカルバスと、ＤＭＡバスとで構成される。
メインメモリ１２２０は各種データを格納するためのメインメモリであって、ＤＲＡＭで構成されている。このＤＲＡＭは、リニアなアドレス領域を４バンクに物理的に分割されており、それぞれに独立したクロックが入力されている。
【０１４３】
プロセッサ１２２１は、データ転送制御部１２０１をはじめシステム全体をコントロールするものであり、また該データ転送制御部１２０１に対してＤＭＡ転送要求を発行するものである。
ローカルメモリ１２２３は前記プロセッサ１２２１にローカルバスによって接続されたローカルメモリ群である。
【０１４４】
また、前記データ転送制御部（ＤＭＡコントローラ）１２０１は、データ転送要求受信部１２０２と、メモリーインターフェース部１２０３と、データ入出力部１２０４と、ＤＭＡパラメータメモリ１２０５と、起動信号受信部１２０６と、クロック制御部１２０７と、メモリクロック制御レジスタ１２０８と、クロック供給・停止部１２０９，１２１０と、メインメモリバンクレジスタ１２１１と、メインメモリクロック供給・停止部１２１２とを備える。
【０１４５】
クロック制御部１２０７は、起動信号受信部１２０６から動作イネーブルが発行され、且つデータ転送要求受信部１２０２にＤＭＡ転送要求の予約が蓄積されている場合のみクロックイネーブルを出力する。メモリクロック制御用レジスタ１２０８は、ＤＭＡパラメータメモリ１２０５用に特別に設けられたメモリで、ＤＭＡパラメータメモリ１２０５へクロックを強制的に供給するかどうかを制御するものである。
【０１４６】
また、メモリーインターフェース部１２０３、データ入出力部１２０４及びメインメモリ１２２０は、クロック供給・停止部１２０９の出力するクロックにより動作するものであり、前記クロック供給・停止部１２０９は、例えばＡＮＤゲートで構成されている。さらに、ＤＭＡパラメータメモリ１２０５は、クロック供給・停止部１２１０の出力するクロックにより動作するものであり、該クロック供給・停止部１２１０は、メモリクロック制御レジスタ１２０８またはクロック制御部１２０７により制御される。このクロック供給・停止部１２１０は、例えばメモリクロック制御レジスタ１２０８の出力とクロックイネーブルとのＯＲと、そのＯＲの出力とクロックとのＡＮＤで作られた複合ゲートで構成されるものである。
【０１４７】
メインメモリバンクレジスタ１２１１は、メインメモリ１２２０の４つ分割されたバンクの選択制御をするもので、ローカルバスによってプロセッサ１２２１に接続されている。このローカルバスによって、使用するバンクの選択、及び使用するバンク以外のＤＲＡＭを完全にＯＦＦするか、セルフリフレッシュのみ行うかを設定する。また、メインメモリバンクレジスタ１２１１は、下位２ビットで設定された０〜３までの値に基づいて、ＤＲＡＭ０〜ＤＲＡＭ３に対応したバンク選択信号ｂａｎｋ０〜ｂａｎｋ３を出力する。以下、表２に設定値とセルフリフレッシュ設定とバンク選択信号との関係を示す。
【０１４８】
【表２】
0004077349.tif 000003
メインメモリクロック供給・停止部１２１２は、メインメモリ１２２０であるＤＲＡＭ０〜ＤＲＡＭ３へそれぞれ独立したクロックｃｌｋｄｒａｍ０〜ｃｌｋｄｒａｍ３を供給するためのクロック供給・停止部であり、例えば、それぞれがＡＮＤゲートのようなもので構成されている。
バンク選択信号（ｂａｎｋ０〜ｂａｎｋ３）及びセルフリフレッシュ制御信号（ｓｅｌｆｏｎ）は、メモリーインターフェース部１２０３に入力され、ＤＲＡＭ０〜ＤＲＡＭ３に対する制御信号の選択に使用される。
なお、本実施の形態１２におけるデータ転送制御部１２０１内のデータ転送要求受信部１２０２の構成は、実施の形態１と同様であるため、説明は省略する。
【０１４９】
次に、図２０および図２を用いて、本実施の形態１２のシステムにおける、ＤＭＡコントローラ（データ転送制御部）１２０１の動作について説明する。
実施の形態１０で説明した動作と同様、まずプロセッサ１２２１は、ローカルバスを用いてメモリクロック制御レジスタ１２０８に“１”を書きこみメモリクロックを有効とする。これにより、ＤＭＡパラメータメモリ１２０５へクロックが強制的に供給される。その後、プロセッサ１２２１はＤＭＡ転送に必要なパラメータをあらかじめＤＭＡパラメータメモリ１２０５へと格納し、再びメモリクロック制御レジスタ１２０８を“０”として、クロックを停止させておく。
【０１５０】
そして、初期転送に必要なＤＭＡ転送要求をデータ転送要求受信部１２０２へと発行し、予約する。ここで、図２に示すように３つのＤＭＡ転送の予約がなされたとする。
今、使用したいＤＲＡＭの領域が半分までであったとする。プロセッサ１２２１は、ローカルバスを用いてメインメモリバンクレジスタ１２１１にセルフリフレッシュＯＦＦ設定および、ＤＲＡＭ使用領域２バンクを表す３ビット、“１０１”を設定する。
【０１５１】
この後システムが起動されると、プロセッサ１２２１は起動信号受信部１２０６へ起動命令を発行する。起動命令を受信した起動信号受信部１２０６は、メモリーインターフェース部１２０３、及びクロック制御部１２０７に動作イネーブルを発行する。クロック制御部１２０７には、動作イネーブルと予約フラグとが入力されており、これらが共に有効である場合に、クロックイネーブルを有効とする動作をする。クロックイネーブルは、クロック供給・停止部１２０９，１２１０に入力されており、クロックイネーブルが有効な期間のみ、メモリーインターフェース部１２０３、データ入出力部１２０４、ＤＭＡパラメータメモリ１２０５へクロックが供給される。
【０１５２】
また、メインメモリクロック供給・停止部１２１２には、クロック制御部１２０７からクロックイネーブルが、メインメモリバンクレジスタ１２１１からバンク選択信号ｂａｎｋ０＝１、ｂａｎｋ１＝１，ｂａｎｋ２＝０，ｂａｎｋ３＝０が入力されており、選択されたバンク（ここでは、ＤＲＡＭ０とＤＲＡＭ１）に対して、クロックイネーブルが有効な期間のみクロックｃｌｋｄｒａｍ０，ｃｌｋｄｒａｍ１が供給される。
【０１５３】
さらに、メモリーインターフェース部１２０３では、メインメモリバンクレジスタ１２１１から入力される各制御信号ｓｅｌｆｏｎ，ｂａｎｋ０〜ｂａｎｋ３により、各ＤＲＡＭ０〜３に対する制御を行う。ｓｅｌｆｏｎ信号が”０”の場合、ｂａｎｋ信号により選択されたＤＲＡＭ０、ＤＲＡＭ１以外のＤＲＡＭ２、ＤＲＡＭ３はＯＦＦ状態であり、アクセスは行われず、またリフレッシュさえも行われない。また、選択された各バンクＤＲＡＭ０、ＤＲＡＭ１に対する制御信号も、メモリーインターフェース部１２０３にて、アドレスの上位２ビットにより供給がコントロールされる。さらに、通常アクセスと共に、必要に応じてオートリフレッシュが行われる。オートリフレッシュとは、外部から定期的にＤＲＡＭに対して実行するリフレッシュコマンドのことで、クロックと共に入力される。
【０１５４】
この状態で図２に示す３つの予約が優先レベル順に実行され、おのおののＤＭＡ転送において、データをメインメモリ１２２０へ書き込み終了、またはデータを各ローカルメモリ１２２３へ書き込み終了すると、データ入出力部１２０４は、メモリーインターフェース部１２０３にその旨を知らせる。メモリーインターフェース部１２０３は、転送終了信号をクロック制御部１２０７へと出力し、予約フラグは、データ転送要求受信部１２０２に予約がなくなると“０”となる。クロック制御部１２０７は、メモリーインターフェース部１２０３から転送終了信号を受け、データ転送要求受信部１２０２からの予約フラグが“０”になったタイミングで、クロックイネーブルを“０”とし、クロック供給・停止部１２０９，１２１０に対して出力する。このクロックイネーブルを受信したクロック供給・停止部１２０９，１２１０は、メモリーインターフェース部１２０３、データ入出力部１２０４、ＤＭＡパラメータメモリ１２０５へのクロック供給を停止する。さらに、メインメモリクロック供給・停止部１２１２も、クロック制御部１２０７からの前記クロックイネーブルを受けて、ＤＲＡＭ０およびＤＲＡＭ１に対するクロック供給を停止する。
【０１５５】
次に、最初は全領域にアクセスし、途中で半分の領域に変更したい場合について説明する。
まず、プロセッサ１２２１は、ＤＭＡパラメータメモリ１２０５への設定、およびＤＭＡ転送要求のデータ転送要求受信部１２０２への予約と共に、ローカルバスを用いてメインメモリバンクレジスタ１２１１にセルフリフレッシュＯＮ設定、且つＤＲＡＭ使用領域が全領域を表す３ビット、“０１１”を設定する。
【０１５６】
この後本システムが起動されると、プロセッサ１２２１は起動信号受信部１２０６へ起動命令を発行する。起動命令を受信した起動信号受信部１２０６は、メモリーインターフェース部１２０３および、クロック制御部１２０７に動作イネーブルを発行する。クロック制御部１２０７には、動作イネーブルと予約フラグとが入力されており、これらが共に有効である場合に、クロックイネーブルを有効にする。また、前記クロックイネーブルは、クロック供給・停止部１２０９，１２１０に入力されており、クロックイネーブルが有効な期間のみ、メモリーインターフェース部１２０３、データ入出力部１２０４、ＤＭＡパラメータメモリ１２０５へクロックが供給される。
【０１５７】
また、メインメモリクロック供給・停止部１２１２には、クロック制御部１２０７からクロックイネーブルが、メインメモリバンクレジスタ１２１１からバンク選択信号ｂａｎｋ０＝１、ｂａｎｋ１＝１，ｂａｎｋ２＝１，ｂａｎｋ３＝１が入力されており、選択されたバンク（ここでは、ＤＲＡＭ０〜ＤＲＡＭ３の全領域）に対して、クロックイネーブルが有効な期間のみクロックｃｌｋｄｒａｍ０，ｃｌｋｄｒａｍ１，ｃｌｋｄｒａｍ２，ｃｌｋｄｒａｍ３が供給される。
【０１５８】
さらに、メモリーインターフェース部１２０３では、メインメモリバンクレジスタ１２１１から入力される各制御信号ｓｅｌｆｏｎ，ｂａｎｋ０〜ｂａｎｋ３により、各ＤＲＡＭバンクに対する制御を行う。今、ｓｅｌｆｏｎ信号が“１”，ｂａｎｋ信号が、全バンク有効であるため、全バンク通常動作モードとなり、アクセスと共に、必要に応じてオートリフレッシュが行われる。オートリフレッシュとは、外部から定期的に、ＤＲＡＭに対して実行するリフレッシュコマンドのことである。
【０１５９】
また、選択された各バンクに対する制御信号は、メモリーインターフェース部１２０３にて、アドレスの上位２ビットにより供給がコントロールされる。
この状態で図２に示すようなデータ転送要求受信部に設定された３つの予約が優先レベル順に実行されたとする。おのおののＤＭＡ転送において、データをメインメモリ１２２０へ書き込み終了、またはデータを各ローカルメモリ１２２３へ書き込み終了すると、データ入出力部１２０４はメモリーインターフェース部１２０３にその旨を知らせる。メモリーインターフェース部１２０３は、転送終了信号をクロック制御部１２０７へと出力し、予約フラグは、データ転送要求受信部１２０２に予約がなくなると“０”となる。クロック制御部１２０７は、メモリーインターフェース部１２０３から転送終了信号を受け、データ転送要求受信部１２０２からの予約フラグが“０”になったタイミングで、クロックイネーブルを“０”とし、クロック供給・停止部１２０９，１２１０に対して出力する。このクロックイネーブルを受信したクロック供給・停止部１２０９，１２１０は、メモリーインターフェース部１２０３、データ入出力部１２０４、ＤＭＡパラメータメモリ１２０５へのクロック供給を停止する。さらに、メインメモリクロック供給・停止部１２１２も、クロック制御部１２０７からの前記クロックイネーブルを受けて、ＤＲＡＭ０〜ＤＲＡＭ３に対するクロック供給を停止する。
【０１６０】
このときプロセッサ１２２１が、この後しばらくメインメモリ１２２０内の半分の領域しか使用しないと判断した場合、プロセッサ１２２１は、ローカルバスを通じて、メインメモリバンクレジスタ１２１１に、セルフリフレッシュＯＮ設定、及びＤＲＡＭ使用領域２バンク（ここではＤＲＡＭ０，ＤＲＡＭ１）を表す３ビット、“００１”を設定する。
【０１６１】
そして、本システムが起動されると、プロセッサ１２２１は起動信号受信部１２０６へ起動命令を発行する。起動命令を受信した起動信号受信部１２０６は、メモリーインターフェース部１２０３および、クロック制御部１２０７に動作イネーブルを発行する。クロック制御部１２０７には、動作イネーブルと予約フラグとが入力されており、これらが共に有効である場合に、クロックイネーブルを有効とする。クロックイネーブルは、クロック供給・停止部１２０９，１２１０に入力されており、クロックイネーブルが有効な期間のみ、メモリーインターフェース部１２０３、データ入出力部１２０４、ＤＭＡパラメータメモリ１２０５へクロックが供給される。
【０１６２】
また、メインメモリクロック供給・停止部１２１２には、クロック制御部１２０７からクロックイネーブルが、メインメモリバンクレジスタ１２１１からバンク選択信号ｂａｎｋ０＝１、ｂａｎｋ１＝１，ｂａｎｋ２＝０，ｂａｎｋ３＝０が入力されており、選択されたバンク（ここでは、ＤＲＡＭ０、ＤＲＡＭ１）に対して、クロックイネーブルが有効な期間のみクロックｃｌｋｄｒａｍ０，ｃｌｋｄｒａｍ１が供給される。
【０１６３】
さらに、メモリーインターフェース部１２０３では、メインメモリバンクレジスタ１２１１から入力される各制御信号ｓｅｌｆｏｎ，ｂａｎｋ０〜ｂａｎｋ３により、各ＤＲＡＭバンクに対する制御を行う。今、ｓｅｌｆｏｎ信号が“１”，ｂａｎｋ信号は、ｂａｎｋ０，ｂａｎｋ１が有効であるため、ｂａｎｋ信号により選択されたＤＲＡＭ０、ＤＲＡＭ１以外のＤＲＡＭ２、ＤＲＡＭ３は、アクセスは行われず、セルフリフレッシュ状態となる。セルフリフレッシュ状態とは、ここでは、セルフリフレッシュ制御信号を”Ｌ”とし、クロック供給を停止することを意味している。
【０１６４】
また、選択された各バンク（ＤＲＡＭ０，ＤＲＡＭ１）に対する制御信号も、メモリーインターフェース部１２０３にて、アドレスの上位２ビットにより供給がコントロールされる。リフレッシュは、アクセスの合間に行われるオートリフレッシュにより実行される。
【０１６５】
この状態で図２に示すようなデータ転送要求受信部に設定された３つの予約が優先レベル順に実行されたとする。おのおののＤＭＡ転送において、データをメインメモリ１２２０へ書き込み終了、またはデータを各ローカルメモリへ書き込み終了すると、データ入出力部１２０４は、メモリーインターフェース部１２０３にその旨を知らせる。メモリーインターフェース部は、転送終了信号をクロック制御部１２０７へと出力し、予約フラグは、データ転送要求受信部１２０２に予約がなくなると“０”となる。クロック制御部１２０７は、メモリーインターフェース部１２０３から転送終了信号を受け、データ転送要求受信部１２０２からの予約フラグが“０”になったタイミングで、クロックイネーブルを“０”とし、クロック供給・停止部１２０９，１２１０に対して出力する。このクロックイネーブル信号を受信したクロック供給・停止部１２０９，１２１０は、メモリーインターフェース部１２０３、データ入出力部１２０４、ＤＭＡパラメータメモリ１２０５へのクロック供給を停止する。さらに、メインメモリクロック供給・停止部１２１２も、クロック制御部１２０７からの前記クロックイネーブルを受けて、ＤＲＡＭ０、ＤＲＡＭ１に対するクロック供給を停止する。
これ以降、再び、全領域使用したい場合は、メインメモリバンクレジスタ１２１１の設定を変更することで、ＤＲＡＭ２、ＤＲＡＭ３がセルフリフレッシュモードを抜け、全領域通常アクセスモードとなる。
【０１６６】
ここで、単一のＤＲＡＭと複数バンクに分割したＤＲＡＭとの消費電力の違いについて、具体的な例を用いて説明する。
例えば、画像圧縮・伸張の国際標準規格であるＭＰＥＧ−４を処理するような画像処理装置において、その画像処理に使用するメモリについて考える。
前記画像処理に使用するメモリの領域は、処理する画像の種類により異なる場合があり、表３は、その処理する画像の種類とその場合に必要となるメモリ容量との関係を示すものである。
【０１６７】
【表３】
0004077349.tif 000004
表３において、メモリの最大使用容量は１６Ｍｂｉｔとなっていおり、この時、ＬＳＩ内部に混載できるＤＲＡＭの消費電力を見積もると、図２１に示すようになる。図２１は、１６Ｍｂｉｔのメモリ領域を単一、２分割、４分割、８分割した際の消費電力を比較したグラフである。図２１より、１６Ｍｂｉｔのメモリ領域を、単一のＤＲＡＭとして使用するより、複数バンクに分割して用いたほうが消費電力が下がる場合があることが分かる。
【０１６８】
図２１の結果をふまえて、１６Ｍｂｉｔの領域を４Ｍｂｉｔ単位で４分割し、個別のＤＲＡＭを使用してメモリを構成し、処理の種類によって、使用するＤＲＡＭの領域を選択できるようにしたとする。
【０１６９】
例えば、ＣＩＦサイズのコーデックを実行する場合は、表３に示されるように１６Ｍｂｉｔ全領域を使用する必要があるが、その後、画像サイズが変更になり、ＱＣＩＦサイズのコーデックを実行する場合は、その使用領域は８Ｍｂｉｔでよくなるので、分割した４つのＤＲＡＭうち２つのＤＲＡＭバンクのみを使用するよう設定する。このようにすることで、使用しないメモリ領域に対しては、クロックおよび制御信号を供給せず、さらにアクセスも行わないようにできる。図２２は、１６Ｍｂｉｔのメモリ領域を４分割した際に、その各分割したメモリ領域のみを使用した場合と全領域を使用した場合との消費電力を比較したグラフである。図２２より、メモリの全領域を使用するときより、使用しないメモリ領域に対しては、クロックおよび制御信号を供給しないときの方が、消費電力を削減することができることがわかる。
【０１７０】
以上のような制御を施して、ＭＰＥＧ−４のシンプルプロファイルレベル１（Ｓｉｍｐｌｅ＠Ｌ１）を実行する場合、単一のＤＲＡＭで構成したメモリを使用した場合の見積もり値と、複数ＤＲＡＭで構成したメモリを使用した場合の測定値とを比較すると、複数ＤＲＡＭで構成したメモリは、図２３に示すように、消費電力が約３６％削減することができることがわかった。
なお、以上に説明した本実施の形態１２のＤＭＡ転送処理は、実施の形態２のように前記ＤＭＡ転送要求発行元が複数である場合にも、適応可能である。
【０１７１】
このように、本実施の形態１２では、ＤＲＡＭにおいても、連続アドレス領域であるメインメモリを物理的に分割し、必要なバンクにのみクロックを別々に供給できるように制御することにより、効率よく電力を制御できるため、より低消費電力を実現するシステムが得られる。
また、アプリケーションにより、搭載したＤＲＡＭの半分しか使用しない場合は、あらかじめ、半分の領域をＯＦＦ状態とすることで、更なる低消費電力を実現するシステムが得られる。
また、一連のアプリケーション動作中にも、リアルタイムに使用領域が変化する場合は、使用しないバンクに対してセルフリフレッシュモードを実行するようにしておくことで、再び全領域を有効にした際も、データが消えることなく活用できる。
【０１７２】
さらには、クロックの入力もなく、また、オートリフレッシュのための制御信号の入力もないため、最適な低消費電力でデータを保持し活用することができる。
なお、本実施の形態１２において、メインメモリの分割は４であったが、任意の数であっても同様である。
【０１７３】
（実施の形態１３）
以下、実施の形態１３におけるＤＭＡコントローラについて説明する。
図２４は、本実施の形態１３におけるＤＭＡコントローラ（データ転送制御部）を有するシステム構成図である。
図２４において、本システムは、ＤＭＡコントローラであるデータ転送制御部１６０１と、プロセッサ１６２１と、メインメモリ１６２０と、ローカルメモリ１６２２と、ＤＭＡバスと、ローカルバスとからなるものである。
【０１７４】
メインメモリ１６２０は各種データを格納するものであって、ＳＲＡＭで構成されている。また、このＳＲＡＭは、リニアなアドレス領域を４バンクに分割されており、それぞれに独立したクロックが入力されている。
プロセッサ１６２１は、ＤＭＡコントローラ（データ転送制御部）１６０１をはじめ、システム全体をコントロールするものであり、また該データ転送制御部１６０１に対してＤＭＡ転送要求を発行するものである。
【０１７５】
ローカルメモリ１６２２は、プロセッサ１６２１のローカルバスに接続されたローカルメモリ群である。
また、前記データ転送制御部（ＤＭＡコントローラ）１６０１は、メモリーインタフェース部１６０３と、データ入出力部１６０４と、クロック制御部１６０７と、アドレス判定部１６０８とを備える。
【０１７６】
メモリーインタフェース部１６０３は、プロセッサ１６２１からの指示を受け、メインメモリ１６２０の制御を行うものであり、アドレス判定部１６０８は、プロセッサ１６２１から設定される開始アドレス、終了アドレス（または転送個数）によって、アクセスされるアドレス領域を判別し、クロック供給・停止を行うクロック制御部１６０７に制御信号を出力するものである。また、データ入出力部１６０４及びメインメモリ１６２０は、前記クロック制御部１６０７が出力するクロックにより動作するようになっている。このクロック制御部１６０７は、例えばＡＮＤゲートのようなもので構成される。
【０１７７】
次に、図２４を用いて、本実施の形態１３のシステムにおける、ＤＭＡコントローラ（データ転送制御部）１６０１の動作を説明する。
プロセッサ１６２１は、ローカルバスを用いて、ＤＭＡ転送の開始アドレスおよび終了アドレスを、データ転送制御部１６０１に設定する。このプロセッサ１６２１により設定されたアドレス情報は、データ転送制御部１６０１内のアドレス判定部１６０８を介してメモリーインターフェース部１６０３へと伝えられ、メインメモリ１６２０とのアクセスの際のアドレスとして用いられる。
【０１７８】
今、プロセッサ１６２１が新たなＤＭＡ転送命令を発行するとする。プロセッサ１６２１は、発行しようとするＤＭＡ転送の開始アドレスと終了アドレスとを、データ転送制御部１６０１内のアドレス判定部１６０８へ設定する。アドレス判定部１６０８は、この設定されたアドレスから、メインメモリ１６２０内のアクセスされるバンクを判定し、プロセッサ１６２１からＤＭＡ転送要求が発行されると、該アクセスバンクに対応するｂａｎｋ０〜ｂａｎｋ３信号を有効として、アクセスバンクを示す。
ここで、メインメモリ１６２０は、全部で１ＭＢｙｔｅ領域であり、１つのＳＲＡＭが２５６ＫＢｙｔｅの容量であるとする。なおアドレスは、４つのＳＲＡＭを用いて、１ＭＢｙｔｅ領域を連続につないである。
【０１７９】
いま、プロセッサ１６２１が、開始アドレス２００ＫＢｙｔｅ目、終了アドレス３００ＫＢｙｔｅ目を設定したとする。
この後、プロセッサ１６２１がＤＭＡ転送要求を発行すると、アドレス判定部１６０８は、動作イネーブルａｃｔｅｎを有効とし、かつ、開始アドレスである２００ＫＢｙｔｅ目が存在するｂａｎｋ０と、終了アドレスである３００ＫＢｙｔｅ目が存在するｂａｎｋ１を有効とする。このとき、ｂａｎｋ２、ｂａｎｋ３は無効のままである。
【０１８０】
上述したような制御信号を受信したクロック制御部１６０７は、ｂａｎｋ０、ｂａｎｋ１に対応するクロックをメインメモリ１６２０内の対応するＳＲＡＭに供給し、ｂａｎｋ２、ｂａｎｋ３に対応するクロックは停止させる。
【０１８１】
このように、本実施の形態１３によれば、メインメモリを物理的に分割し、ＤＭＡ転送要求が発行された後のＤＭＡ転送期間と、アクセスするアドレスにより、分割された領域ごと（メモリ単位）でクロックの供給・停止制御を行うようにしたので、必要な時間、必要な領域のみ、回路を動作させることができる。この結果、回路の消費電力を効率よく制御でき、より低消費電力を実現するシステムが得られる。
【０１８２】
また、アドレス判別部１６０８において、プロセッサ１６２１から設定される開始アドレス、終了アドレス（または転送個数）からアクセスされるアドレス領域を判別するのではなく、メモリーインターフェース部１６０３に備わったアドレス生成器と連動して、リアルタイムにアクセス領域を判別するようにすれば、クロックを供給する時間と領域とをより細かく制御できる。これにより、リアルタイムにクロックの停止制御を実現できるため、さらに低消費電力を実現するシステムが得られる。
なお、本実施の形態では、メインメモリ１６２０にＳＲＡＭを用いたが、ＤＲＡＭでも同様にしてクロック制御を実現できる。
【０１８３】
（実施の形態１４）
以下、実施の形態１４におけるＤＭＡコントローラについて説明する。
図２５は、本実施の形態１４におけるＤＭＡコントローラ（データ転送制御部）を有するシステム構成図である。
図２５において、本システムは、ＤＭＡコントローラであるデータ転送制御部１７０１と、プロセッサ１７２１と、メインメモリ１７２０と、ローカルメモリ１７２２と、ＤＭＡバスと、ローカルバスとからなるものである。
【０１８４】
メインメモリ１７２０は各種データを格納するものであって、ＤＲＡＭで構成されている。また、このＤＲＡＭは、リニアなアドレス領域を４バンクに分割されており、それぞれに独立したクロックが入力されている。
プロセッサ１７２１は、ＤＭＡコントローラ（データ転送制御部）１７０１をはじめシステム全体をコントロールするものであり、また該データ転送制御部１７０１に対してＤＭＡ転送要求を発行するものである。
ローカルメモリ１７２２は、ローカルバスによってプロセッサ１７２１に接続されたローカルメモリ群である。
【０１８５】
また、前記データ転送制御部（ＤＭＡコントローラ）１７０１は、メモリーインタフェース部１７０３と、データ入出力部１７０４と、クロック制御部１７０７と、メインメモリバンクレジスタ１７０８とを備える。
メモリーインタフェース部１７０３は、プロセッサ１７２１からの指示を受け、メインメモリ１７２０の制御を行うものであり、メインメモリバンクレジスタ１７０８は、プロセッサ１７２１がローカルバスを介して、使用メモリ領域を設定するものである。また、データ入出力部１７０４及びメインメモリ１７２０は、クロック制御部１７０７が出力するクロックにより動作するようになっている。このクロック制御部１７０７は、例えばＡＮＤゲートのようなもので構成される。
【０１８６】
次に、図２５を用いて、本実施の形態１４のシステムにおける、ＤＭＡコントローラ（データ転送制御部）１７０１の動作を説明する。
ここでのメインメモリ１７２０は、全部で１ＭＢｙｔｅ領域であり、１つのＤＲＡＭが２５６ＫＢｙｔｅの容量であるとする。なおアドレスは、４つのＤＲＡＭを用いて、１ＭＢｙｔｅ領域を連続につないである。
【０１８７】
今、メインメモリ１７２０の使用したい領域を全領域とすと、プロセッサ１７２１は、ローカルバスを介して、データ転送制御部１７０１内の、メインメモリバンクレジスタ１７０８に全領域を有効とする設定を行う。さらに、ここではメインメモリバンクレジスタ１７０８に”１１１”が書き込まれたとする。
【０１８８】
また、プロセッサ１７２１は、ローカルバスを用いて、ＤＭＡ転送の開始アドレスおよび転送個数などを、データ転送制御部１７０１内のメモリーインターフェース部１７０３に設定する。この情報を元に、メモリーインターフェース部１７０３では、メインメモリ１７２０とのアクセスの際のアドレスが生成される。
【０１８９】
次に、ＤＭＡ転送を実行するために、プロセッサ１７２１は、ＤＭＡ転送要求を発行する。ＤＭＡ転送要求を受け付けたデータ転送制御部１７０１内の、メインメモリバンクレジスタ１７０８は、動作イネーブルａｃｔｅｎを有効とすると共に、ｂａｎｋ０〜ｂａｎｋ３の信号を有効とする。これにより、すべての回路およびメモリに対してクロックが供給され、すべてのメモリに対して、アクセスおよびリフレッシュ動作が許可される。またアクセスが終了すると、すべてのクロック供給は停止される。
この状態で必要な処理を実行するための一連のＤＭＡ転送を終了すると、プロセッサ１７２１は、次の処理において必要なＤＲＡＭ領域を、メインメモリバンクレジスタ１７０８に再設定する。
【０１９０】
ここで、次の処理が、メインメモリ１７２０の半分の領域（ＤＲＡＭ０，ＤＲＡＭ１）しか使用しない処理であったとする。このとき、残りの半分の領域（ＤＲＡＭ２，ＤＲＡＭ３）のデータを残しておく必要がある場合はＤＲＡＭ２，ＤＲＡＭ３をセルフリフレッシュモードに、また消去してもよい場合はＤＲＡＭ２，ＲＡＭ３をＯＦＦ状態とする。たとえば、この設定項目は、セルフリフレッシュが“１０１”、ＯＦＦ状態が“００１”等とすればよい。
【０１９１】
今、プロセッサ１７２１によって、メインメモリバンクレジスタ１７０８に、ＯＦＦ状態“００１”が設定されたとする。
【０１９２】
プロセッサ１７２１は、再び、ローカルバスを通じて、メモリーインターフェース部１７０３にアドレスおよび転送個数などを設定した後、ＤＭＡ転送要求を発行すると、メインメモリバンクレジスタ１７０８は、ｂａｎｋ０、ｂａｎｋ１を有効とし、ｂａｎｋ２、ｂａｎｋ３は、無効のままとする。これを受けて、クロック制御部１７０７は、ｂａｎｋ０及びｂａｎｋ１にのみクロックを供給する。さらに、メモリーインターフェース部１７０３では、ｂａｎｋ０及びｂａｎｋ１にのみ制御信号を供給して、リフレッシュ動作を実行しｂａｎｋ２、ｂａｎｋ３には一切のアクセス制御を行わない。つまり、アクセスを行っている間は、クロック制御部１７０７からクロックが供給されるが、アクセスが終了すると、クロック制御部１７０７からの、すべての回路及びメモリに対するクロック供給は停止される。
ただし、選択されているＤＲＡＭに関しては、メモリーインターフェース部１７０３により定期的にリフレッシュ動作が行われ、データが消去されないようにする。
【０１９３】
このように、本実施の形態１４によれば、物理的にメモリを分割し、処理モードにより、使用するメモリ領域を選択することで、無駄な領域のメモリを動作させることなく、低消費電力を実現し、かつ、様々な処理モードに柔軟に対応できる処理システムを、容易に実現することができる。
また、動作領域をあらかじめ設定することから、領域を判定する回路も必要なく、メインメモリがＤＲＡＭのような場合に、リフレッシュ制御も容易に選択実行することができる。
【０１９４】
（実施の形態１５）
以下、実施の形態１５におけるＤＭＡコントローラについて説明する。
図２６は、本実施の形態１５におけるＤＭＡコントローラ（データ転送制御部）を有するシステム構成図である。
図２６において、本システムは、ＤＭＡコントローラであるデータ転送制御部１８０１と、プロセッサ１８２１と、メインメモリ１８２０と、ローカルメモリ１８８２と、電源スイッチ１８２３と、ＤＭＡバスと、ローカルバスとからなるものである。なお、前記データ転送制御部１８０１の構成は、実施の形態１４と同様であるため、説明を省略する。
電源スイッチ１８２３は、リニアなアドレス領域を４バンクに分割されたメインメモリ１８２０の各ＤＲＡＭ０〜３に対応するものであり、各ＤＲＡＭ０〜３に対する電源供給を制御するものである。
【０１９５】
次に、図２６を用いて、本実施の形態１５のシステムにおける、ＤＭＡコントローラ（データ転送制御部）１８０１の動作を説明する。
バンクセレクト信号ｂａｎｋ０〜ｂａｎｋ３は、電源スイッチ部１８２３において、それぞれのＤＲＡＭ０〜３に対応した電源スイッチに入力されており、ｂａｎｋ０〜ｂａｎｋ３が無効な場合、例えばグランドに落とすなどして、ＤＲＡＭに電源は供給されないように制御する。
したがって、上述した実施の形態１４のような制御を行った場合、本システムにおいては、非選択のメモリに対してはクロック供給停止のみならず、電源供給も停止されることになる。
【０１９６】
このように、本実施の形態１５によれば、物理的にメモリを分割し、その分割した各メモリに対して電源スイッチを備えるようにすることで、使用していないメインメモリのリーク電流（漏れ電流）を抑えることができ、更なる低消費電力化を実現することができる。
【０１９７】
【発明の効果】
以上のように、本発明の請求項１に記載のＤＭＡコントローラによれば、各種データを蓄積する主記憶手段と、該主記憶手段の転送相手である複数の子記憶手段とのデータ転送を制御するデータ転送制御部であるＤＭＡコントローラであって、前記主記憶手段は、複数の領域に分割され、該領域毎にクロックが供給されている複数の個別主記憶手段からなり、前記データ転送制御部は、該データ転送制御部に対してクロックの供給・停止を制御するクロック制御部と、前記個別主記憶手段に対してクロックの供給・停止を制御する、メモリクロック制御部と、ＤＭＡ転送実行中に生成するアドレスから、前記複数の個別主記憶手段のうちのアクセスされる領域を判定し、バンク選択信号を随時生成するアドレス判定部とを備え、前記メモリクロック制御部は、動作イネーブル信号が発行され、ＤＭＡ転送命令が前記データ転送制御部に予約されており、且つ、データ転送実行中に、前記バンク選択信号により、指定された前記主記憶手段の領域に対してのみクロック信号を供給するように制御するようにしたので、メインメモリを必要な時間、必要な領域のみ動作させることができる。これにより、ＤＭＡコントローラの回路の消費電力を効率よく制御することができ、より低消費電力を実現するシステムが得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるＤＭＡコントローラを使用したシステムの構成図である。
【図２】本発明の実施の形態１におけるＤＭＡコントローラの、データ転送要求受信部の構成図である。
【図３】本発明の実施の形態２における、複数のＤＭＡ転送要求発行元からＤＭＡ転送要求されるＤＭＡコントローラを使用したシステムの構成図である。
【図４】本発明の実施の形態２における、複数のＤＭＡ転送要求発行元からＤＭＡ転送要求されるＤＭＡコントローラの、予備予約手段及びデータ転送要求受信部の構成図である。
【図５】本発明の実施の形態３におけるシステムにおいて、ＤＭＡ転送要求が発行された際の、ＤＭＡ転送実行順待ち状態遷移とＤＭＡ転送実行のタイミングとを示した図である。
【図６】本発明の実施の形態４におけるＤＭＡコントローラの、データ転送要求受信部の構成図である。
【図７】本発明の実施の形態５におけるＤＭＡコントローラを使用したシステムの構成図である。
【図８】本発明の実施の形態５におけるＤＭＡコントローラの、データ転送要求受信部の構成図である。
【図９】本発明の実施の形態５における、複数のＤＭＡ転送要求発行元からＤＭＡ転送要求されるＤＭＡコントローラを使用したシステムの構成図である。
【図１０】本発明の実施の形態５における、複数のＤＭＡ転送要求発行元からＤＭＡ転送要求されるＤＭＡコントローラの、予備予約手段及びデータ転送要求受信部の構成図である。
【図１１】本発明の実施の形態６におけるＤＭＡコントローラの、データ転送要求受信部の構成図である。
【図１２】本発明の実施の形態６における、複数のＤＭＡ転送要求発行元からＤＭＡ転送要求されるＤＭＡコントローラの、予備予約手段及びデータ転送要求受信部の構成図である。
【図１３】本発明の実施の形態７のＤＭＡコントローラにおいて、予め設定されたタイミング信号が入力しているデータ転送要求受信部の構成図である。
【図１４】本発明の実施の形態７のＤＭＡコントローラにおいて、複数のタイミング信号が入力しているデータ転送要求受信部の構成図である。
【図１５】本発明の実施の形態８におけるＤＭＡコントローラの、データ転送要求受信部の構成図である。
【図１６】本発明の実施の形態８における、複数のＤＭＡ転送要求発行元からＤＭＡ転送要求されるＤＭＡコントローラの、予備予約手段及びデータ転送要求受信部の構成図である。
【図１７】本発明の実施の形態９におけるＤＭＡコントローラの、ＤＭＡパラメータメモリの内容の一例を示している。
【図１８】本発明の実施の形態１０におけるＤＭＡコントローラを使用したシステムの構成図である。
【図１９】本発明の実施の形態１１におけるＤＭＡコントローラを使用したシステムの構成図である。
【図２０】本発明の実施の形態１２におけるＤＭＡコントローラを使用したシステムの構成図である。
【図２１】本発明の実施の形態１２における、メモリ領域を分割したときの消費電力を比較したグラフである。
【図２２】本発明の実施の形態１２において、メモリ領域を４分割した際の消費電力を比較したグラフである。
【図２３】本発明の実施の形態１２において、分割メモリと単一メモリとにおいてＭＰＥＧ−４のＳｉｍｐｌｅ＠Ｌ１を実行したの消費電力を比較したグラフである。
【図２４】本発明の実施の形態１３におけるＤＭＡコントローラを使用したシステムの構成図である。
【図２５】本発明の実施の形態１４におけるＤＭＡコントローラを使用したシステムの構成図である。
【図２６】本発明の実施の形態１５におけるＤＭＡコントローラを使用したシステムの構成図である。
【図２７】従来例である、ダイレクトメモリアクセスコトローラであるＤＭＡＣのブロック図を示している。
【図２８】従来例である、ＤＭＡＣを一部とするデータ処理装置のブロック図を示している。
【図２９】従来例である、低消費電力装置の回路構成図の一例を示している。
【図３０】従来例である、ＦＩＦＯメモリの一構成例をを機能面から示したブロック図を示している。
【図３１】従来例である、マイコンシステムの一構成例を示すブロック図を示している。
【図３２】従来例である、半導体メモリ装置内におけるメモリセルアレイを分割したときの構成を示す図である。
【符号の説明】
１０１，５０１，８０１，９０１，１００１，１１０１，１２０１，１６０１，１７０１，１８０１  データ転送制御装置
１０２，１０２ａ，１０２ｂ，１０２ｃ，１０２ｄ，１０２ｅ，５０２，１００２，１１０２，１２０２  データ転送要求受信部
１０３，５０３，１００３，１１０３，１２０３，１６０３，１７０３，１８０３  メモリーインターフェース部
１０４，５０４，１００４，１１０４，１２０４，１６０４，１７０４  データ入出力部
１０５，５０５，１００５，１１０５，１２０５  ＤＭＡパラメータメモリ
１０６，５０６，１００６，１１０６，１２０６  起動信号受信部
１１０，５１０，８１０，９１０，１０１２，１１２０，１２２０，１６２０，１７２０，１８２０  メインメモリ
１１１，５１１，１０１１，１１２１，１２２１，１６２１，１７２１，１８２１  プロセッサ
１１２，５１２，８１２，９１２，１０１３，１２２３，１６２２，１７２２，１８２２  ローカルメモリ
２０１，６０１，７０１，１３０１，１４０１，１５０１  優先レベル解読部
２０２，４０２，６０２，７０２，１３０２，１４０２，１５０２  セレクタ
２１０，４１０，６１０，７１０，１３１０，１４１０，１５１０  予約レジスタ
２１１，４１１，６１１，７１１，１３１１，１４１１，１５１１  優先レベル１予約レジスタ
２１２，４１２，６１２，７１２，１３１２，１４１２，１５１２  優先レベル２予約レジスタ
２１３，４１３，６１３，７１３，１３１３，１４１３，１５１３  優先レベル３予約レジスタ
４０１  優先レベル／キャンセル解読部
６２１〜６２３  予約ポインタ
６３１〜６３３  リードポインタ
８１１，９１１  メインプロセッサ
８１３，９１３  サブプロセッサ
８２０，８３０，８４０  予備予約手段
８２１，８３１，８４１  予備１予約レジスタ
８２２，８３２，８４２  予備２予約レジスタ
８２３  予備セレクタ
１００７，１１０７，１２０７，１６０７，１７０７，１８０７  クロック制御部
１００８，１１０８，１２０８  メモリクロック制御レジスタ
１００９，１０１０，１１０９，１１１０，１２０９，１２１０  クロック供給・停止部
１１１１，１２１２  メインメモリクロック供給・停止部
１２１１，１７０８  メインメモリバンクレジスタ
１６０８  アドレス判定部
１８２３  電源スイッチ
【図１】
0004077349.tif 000005
【図２】
0004077349.tif 000006
【図３】
0004077349.tif 000007
【図４】
0004077349.tif 000008
【図５】
0004077349.tif 000009
【図６】
0004077349.tif 000010
【図７】
0004077349.tif 000011
【図８】
0004077349.tif 000012
【図９】
0004077349.tif 000013
【図１０】
0004077349.tif 000014
【図１１】
0004077349.tif 000015
【図１２】
0004077349.tif 000016
【図１３】
0004077349.tif 000017
【図１４】
0004077349.tif 000018
【図１５】
0004077349.tif 000019
【図１６】
0004077349.tif 000020
【図１７】
0004077349.tif 000021
【図１８】
0004077349.tif 000022
【図１９】
0004077349.tif 000023
【図２０】
0004077349.tif 000024
【図２１】
0004077349.tif 000025
【図２２】
0004077349.tif 000026
【図２３】
0004077349.tif 000027
【図２４】
0004077349.tif 000028
【図２５】
0004077349.tif 000029
【図２６】
0004077349.tif 000030
【図２７】
0004077349.tif 000031
【図２８】
0004077349.tif 000032
【図２９】
0004077349.tif 000033
【図３０】
0004077349.tif 000034
【図３１】
0004077349.tif 000035
【図３２】
0004077349.tif 000036