(57)【要約】【課題】  データ転送及びデータ処理をスムースに行なうための予備動作を実現可能なデータ転送制御方法及びその装置とシステムを提供する。【解決手段】  ＣＰＵを内蔵し、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置で、主ＣＰＵからの処理手段でのデータ処理の指示を受けて、データ転送とデータ処理を制御するプログラムを主メモリからロードし、プログラムに従ってデータ転送記処理手段に指示し、データ処理を処理手段に指示し、処理手段からのデータ転送又はデータ処理の完了を通知する信号を受けて、次のデータ転送の準備を行なう。【選択図】  図１
2008257651.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵを内蔵し、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置のデータ転送制御方法であって、
主ＣＰＵからの前記処理手段でのデータ処理の指示を受けて、前記データ転送とデータ処理を制御するプログラムを前記主メモリからロードするステップと、
前記プログラムに従って前記データ転送を前記処理手段に指示するステップと、
前記プログラムに従って前記データ処理を前記処理手段に指示するステップと、
前記処理手段からの前記データ転送又はデータ処理の完了を通知する信号を受けて、前記プログラムに従って次のデータ転送の準備を行なうステップとを有することを特徴とするデータ転送制御方法。
【請求項２】
前記完了の通知はインタラプト信号により行われ、前記次のデータ転送の準備は前記プログラムのインタラプト処理に含まれることを特徴とする請求項１記載のデータ転送制御方法。
【請求項３】
前記主メモリはＤＤＲ−ＳＤＲＡＭであって、前記準備は次のデータ転送で使用されるページのオープン処理であることを特徴とする請求項１又は２記載のデータ転送制御方法。
【請求項４】
前記データ転送はＤＭＡを含み、ＤＭＡを制御するＤＭＡ手段は前記処理手段が有することを特徴とする請求項１乃至４のいずれか１つに記載のデータ転送制御方法。
【請求項５】
ＣＰＵを内蔵し、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置のデータ転送制御方法を前記ＣＰＵに実現させるためのプログラムであって、
前記データ転送を前記処理手段に指示するステップと、
前記データ処理を前記処理手段に指示するステップと、
前記処理手段からの前記データ転送又はデータ処理の完了を通知する信号を受けて、次のデータ転送の準備を行なうステップとを前記ＣＰＵに実行させるためのプログラム。
【請求項６】
ＣＰＵを内蔵し、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置のデータ転送制御方法を前記ＣＰＵに実現させるためのプログラムを記憶した前記ＣＰＵで読み取り可能な記憶媒体であって、
前記プログラムが、
前記データ転送を前記処理手段に指示するステップと、
前記データ処理を前記処理手段に指示するステップと、
前記処理手段からの前記データ転送又はデータ処理の完了を通知する信号を受けて、次のデータ転送の準備を行なうステップとを前記ＣＰＵに実行させることを特徴とする記憶媒体。
【請求項７】
ＣＰＵを内蔵し、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置であって、
主ＣＰＵからの前記処理手段でのデータ処理の指示を受けて、前記データ転送とデータ処理を制御するプログラムを前記主メモリからロードする手段と、
前記プログラムに従って前記データ転送を前記処理手段に指示する手段と、
前記プログラムに従って前記データ処理を前記処理手段に指示する手段と、
前記処理手段からの前記データ転送又はデータ処理の完了を通知する信号を受けて、前記プログラムに従って次のデータ処理への準備を行なう準備手段とを有することを特徴とするデータ転送制御装置。
【請求項８】
前記準備手段は、次のデータ転送の準備を行なうことを特徴とする請求項７記載のデータ転送制御装置。
【請求項９】
主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置であって、
組み込み用途向けのＣＰＵと、
主ＣＰＵからの前記処理手段でのデータ処理の指示を受けて、前記データ転送とデータ処理を制御するプログラムを前記主メモリからロードする手段と、
前記ＣＰＵのプログラムの実行に従い、前記データ転送を前記処理手段の有するＤＭＡコントローラに指示する手段と、
前記ＣＰＵのプログラムの実行に従い、前記データ処理の開始を前記処理手段に指示する手段と、
前記ＤＭＡコントローラからの前記データ転送の完了を通知する信号又は前記処理手段からのデータ処理の完了を通知する信号を受けて、前記ＣＰＵのプログラムの実行に従い次のデータ転送を行なう主メモリの準備を行な手段とを有することを特徴とするデータ転送制御装置。
【請求項１０】
主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置であって、
組み込み用途向けのＣＰＵと、
主ＣＰＵからの前記処理手段でのデータ処理の指示を受けて、前記データ転送とデータ処理を制御するプログラムを前記主メモリからロードする手段と、
前記プログラムをロードする手段にロードされたプログラムの実行の時に、データを一時的に記憶する手段と、
前記ＣＰＵのプログラムの実行に従い、主メモリの第１領域から処理手段への処理前のデータの転送を前記処理手段の有するＤＭＡコントローラに指示する手段と、
前記ＣＰＵのプログラムの実行に従い、前記データ処理の開始を前記処理手段に指示する手段と、
前記ＣＰＵのプログラムの実行に従い、処理手段から主メモリの第２領域への処理後のデータの転送を前記処理手段の有するＤＭＡコントローラに指示する手段と、
前記ＤＭＡコントローラからの前記データ転送の完了を通知する信号又は前記処理手段からのデータ処理の完了を通知する信号を受けて、前記ＣＰＵのプログラムの実行に従い次のデータ転送を行なう主メモリの前記第１及び第２領域の準備を行なう手段とを有することを特徴とするデータ転送制御装置。
【請求項１１】
前記データ転送制御装置の停止の間に、前記ＣＰＵ、プログラムをロードする手段及びデータを記憶する手段に記憶されたデータの外部からの読み出し又は書き込みをインタフェースする手段を更に有することを特徴とする請求項１０記載のデータ転送制御装置。
【請求項１２】
前記データ転送制御装置はインタラプト処理を行なう手段を有し、前記完了の通知はインタラプト信号により行われることを特徴とする請求項７又は９又は１０記載のデータ転送制御装置。
【請求項１３】
前記主メモリはＤＤＲ−ＳＤＲＡＭであって、前記準備は次のデータ転送で使用されるページのオープン処理であることを特徴とする請求項８又は９又は１０記載のデータ転送制御装置。
【請求項１４】
前記データ転送制御装置は単一の半導体基板上に構成されることを特徴とする請求項７乃至１３のいずれか１つに記載のデータ転送制御装置。
【請求項１５】
主ＣＰＵと、データ処理用の複数の処理手段と、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置とを有し、情報処理を行なう情報処理システムであって、
前記データ転送制御装置が、
組み込み用途向けのＣＰＵと、
主ＣＰＵからの前記処理手段でのデータ処理の指示を受けて、前記データ転送とデータ処理を制御するプログラムを前記主メモリからロードする手段と、
前記ＣＰＵのプログラムの実行に従い、主メモリの第１領域から処理手段への処理前のデータの転送を前記処理手段の有するＤＭＡコントローラに指示する手段と、
前記ＣＰＵのプログラムの実行に従い、前記データ処理の開始を前記処理手段に指示する手段と、
前記ＣＰＵのプログラムの実行に従い、処理手段から主メモリの第２領域への処理後のデータの転送を前記処理手段の有するＤＭＡコントローラに指示する手段とを有し、
主ＣＰＵからの複数のデータ処理の指示を順に受けて、主メモリから処理手段へのデータ転送、処理手段でのデータ処理及び処理手段から主メモリへのデータ転送を順次に行なうことによって、前記情報処理をパイプライン方式で行なうことを特徴とする情報処理システム。
【請求項１６】
前記データ転送制御装置が、前記ＤＭＡコントローラからの前記データ転送の完了を通知する信号又は前記処理手段からのデータ処理の完了を通知する信号を受けて、前記ＣＰＵのプログラムの実行に従い次のデータ転送を行なう主メモリの前記第１及び第２領域の準備を行なう手段を更に有することを特徴とする請求項１５記載の情報処理システム。
【請求項１７】
前記処理手段は画像データを処理することを特徴とする請求項１５又は１６記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送制御方法及びその装置とシステムに関し、特に、DDR-SDRAMを搭載するシステムにおけるDMAデータ転送の高速化手法に関するものである。
【背景技術】
【０００２】
従来、データ転送、とりわけメインメモリと入出力機器間でのデータ転送を高速に行なう手法として、ＤＭＡが知られている。当初はメインメモリとそれぞれの入出力機器間の一方向のデータ転送に使用されていた。しかし、最近は、ＤＭＡの対象が、例えば画像処理や、符号化／復号など、ＤＭＡを含む一連の処理をメインＣＰＵへの負荷なしに実現することが求められている。
【０００３】
その手法の１つとして、メインＣＰＵやＤＭＡを伴った処理装置とは別に、メインＣＰＵから一連の処理を行なう命令を受けて、ＤＭＡを含む一連の処理をメインＣＰＵとは独立に行なうデータ転送制御装置が考えられている。
【０００４】
一方、昨今、高速・大容量の半導体メモリとしてＤＤＲ(Double Data Rate)−ＳＤＲＡＭがメインメモリに使用されつつある（例えば特許文献１参照）。このＤＤＲ(Double Data Rate)−ＳＤＲＡＭをサポートするＳＤＲＡＭコントローラにおいては、通常Open Page ModeとClose Page Modeの両方をサポートしている。このOpen Page Modeが選択されている場合、SDRAMへのReadおよびWrite アクセス完了時に、Prechargeを実行せず、アクセスされたPageはOpen状態のままとなる。そのためOpen状態のPageへのアクセスは高速に行うことができる。
【特許文献１】特開２００１−２３６７８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、同時にOpenできるPage の最大数には制限がある。OpenされたPageは、以下の場合にCloseされる。例えば、同時にOpen可能な最大数を超えたアクセスが起きた場合（Pageミス）にCloseされる。また、Refresh（Refresh Commandを発行する）時にCloseされる。また、Self Refreshモードへの移行時にCloseされる。また、Pageモードの変更時、Power Down時に、Prechargeが実行され、そのPageはCloseされる。一旦PageがCloseされ、そのCloseされたPageへのアクセスが起きると、再度そのPageをOpen状態にするためのオーバーヘッドが生じることになる。そのため、SDRAMへのアクセスを要求したハードウェアは、SDRAMコントローラが再度指定PageをOpen状態にするまで待たされることになる。
【０００６】
ＣＰＵがDDR−SDRAMにアクセスするような場合、通常のＣＰＵにはCacheが搭載されているので、ＣＰＵ内のCacheのヒット率が高ければ、このSDRAMコントローラでの待ち時間はそれほど大きな問題とならない。ところが、ＤＭＡコントローラに関しては、通常ＣＰＵのCacheのような機構は搭載されないのがほとんどであるため、このSDRAMコントローラでのウェイト時間は、ＤＭＡのデータ転送性能に重大な影響を及ぼすことになる。最悪の場合、ＤＭＡによるデータ転送が規定された時間内に終了せず、データの欠落が起き、システムに重大な問題を引き起こすこともありうる。
【０００７】
すなわち、上述のデータ転送制御装置において、次のような新たな課題を考慮に入れたものが求められる。すなわち、単にメインＣＰＵから一連の処理を行なう命令を受けて、ＤＭＡを含む一連の処理をメインＣＰＵとは独立に行なうばかりでなく、上記のようなハードウエア資源が抱える新たな課題である。
【０００８】
本発明は、上記従来の問題点に鑑み、データ転送及びデータ処理をスムースに行なうための予備動作を実現可能なデータ転送制御方法及びその装置とシステムを提供する。
【０００９】
すなわち、上記で示したOpen Page可能の最大ページ数の制限の回避、Pageミス回避、PageのOpenのための時間的ロスの回避のためにOpen Pageの状態の管理方法を提供する。又、ＤＭＡの規定の時間を超えてデータの欠落をきたさないデータ転送制御方法及びその装置とシステムを提供する。又、Ｉ／Ｏに対する煩雑なＤＭＡ処理を効果的に簡略化するデータ転送制御方法及びその装置とシステムを提供する。更に、Ｉ／Ｏ処理のパイプライン化を実現したデータ転送制御方法及びその装置とシステムを提供する。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明のデータ転送制御方法は、ＣＰＵを内蔵し、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置のデータ転送制御方法であって、主ＣＰＵからの前記処理手段でのデータ処理の指示を受けて、前記データ転送とデータ処理を制御するプログラムを前記主メモリからロードするステップと、前記プログラムに従って前記データ転送を前記処理手段に指示するステップと、前記プログラムに従って前記データ処理を前記処理手段に指示するステップと、前記処理手段からの前記データ転送又はデータ処理の完了を通知する信号を受けて、前記プログラムに従って次のデータ転送の準備を行なうステップとを有することを特徴とする。
【００１１】
ここで、前記完了の通知はインタラプト信号により行われ、前記次のデータ転送の準備は前記プログラムのインタラプト処理に含まれる。また、前記主メモリはＤＤＲ−ＳＤＲＡＭであって、前記準備は次のデータ転送で使用されるページのオープン処理である。また、前記データ転送はＤＭＡを含み、ＤＭＡを制御するＤＭＡ手段は前記処理手段が有する。
【００１２】
また、本発明のプログラムは、ＣＰＵを内蔵し、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置のデータ転送制御方法を前記ＣＰＵに実現させるためのプログラムであって、前記データ転送を前記処理手段に指示するステップと、前記データ処理を前記処理手段に指示するステップと、前記処理手段からの前記データ転送又はデータ処理の完了を通知する信号を受けて、次のデータ転送の準備を行なうステップとを前記ＣＰＵに実行させる。
【００１３】
また、本発明の記憶媒体は、ＣＰＵを内蔵し、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置のデータ転送制御方法を前記ＣＰＵに実現させるためのプログラムを記憶した前記ＣＰＵで読み取り可能な記憶媒体であって、前記プログラムが、前記データ転送を前記処理手段に指示するステップと、前記データ処理を前記処理手段に指示するステップと、前記処理手段からの前記データ転送又はデータ処理の完了を通知する信号を受けて、次のデータ転送の準備を行なうステップとを前記ＣＰＵに実行させる。
【００１４】
また、本発明のデータ転送制御装置は、ＣＰＵを内蔵し、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置であって、主ＣＰＵからの前記処理手段でのデータ処理の指示を受けて、前記データ転送とデータ処理を制御するプログラムを前記主メモリからロードする手段と、前記プログラムに従って前記データ転送を前記処理手段に指示する手段と、前記プログラムに従って前記データ処理を前記処理手段に指示する手段と、前記処理手段からの前記データ転送又はデータ処理の完了を通知する信号を受けて、前記プログラムに従って次のデータ処理への準備を行なう準備手段とを有することを特徴とする。ここで、前記準備手段は、次のデータ転送の準備を行なう。
【００１５】
また、本発明のデータ転送制御装置は、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置であって、組み込み用途向けのＣＰＵと、主ＣＰＵからの前記処理手段でのデータ処理の指示を受けて、前記データ転送とデータ処理を制御するプログラムを前記主メモリからロードする手段と、前記ＣＰＵのプログラムの実行に従い、前記データ転送を前記処理手段の有するＤＭＡコントローラに指示する手段と、前記ＣＰＵのプログラムの実行に従い、前記データ処理の開始を前記処理手段に指示する手段と、前記ＤＭＡコントローラからの前記データ転送の完了を通知する信号又は前記処理手段からのデータ処理の完了を通知する信号を受けて、前記ＣＰＵのプログラムの実行に従い次のデータ転送を行なう主メモリの準備を行な手段とを有することを特徴とする。
【００１６】
また、本発明のデータ転送制御装置は、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置であって、組み込み用途向けのＣＰＵと、主ＣＰＵからの前記処理手段でのデータ処理の指示を受けて、前記データ転送とデータ処理を制御するプログラムを前記主メモリからロードする手段と、前記プログラムをロードする手段にロードされたプログラムの実行の時に、データを一時的に記憶する手段と、前記ＣＰＵのプログラムの実行に従い、主メモリの第１領域から処理手段への処理前のデータの転送を前記処理手段の有するＤＭＡコントローラに指示する手段と、前記ＣＰＵのプログラムの実行に従い、前記データ処理の開始を前記処理手段に指示する手段と、前記ＣＰＵのプログラムの実行に従い、処理手段から主メモリの第２領域への処理後のデータの転送を前記処理手段の有するＤＭＡコントローラに指示する手段と、前記ＤＭＡコントローラからの前記データ転送の完了を通知する信号又は前記処理手段からのデータ処理の完了を通知する信号を受けて、前記ＣＰＵのプログラムの実行に従い次のデータ転送を行なう主メモリの前記第１及び第２領域の準備を行なう手段とを有することを特徴とする。
【００１７】
ここで、前記データ転送制御装置の停止の間に、前記ＣＰＵ、プログラムをロードする手段及びデータを記憶する手段に記憶されたデータの外部からの読み出し又は書き込みをインタフェースする手段を更に有する。また、前記データ転送制御装置はインタラプト処理を行なう手段を有し、前記完了の通知はインタラプト信号により行われる。また、前記主メモリはＤＤＲ−ＳＤＲＡＭであって、前記準備は次のデータ転送で使用されるページのオープン処理である。また、前記データ転送制御装置は単一の半導体基板上に構成される。
【００１８】
また、本発明の情報処理システムは、主ＣＰＵと、データ処理用の複数の処理手段と、主メモリとデータ処理用の処理手段との間のデータ転送を制御するデータ転送制御装置とを有し、情報処理を行なう情報処理システムであって、前記データ転送制御装置が、組み込み用途向けのＣＰＵと、主ＣＰＵからの前記処理手段でのデータ処理の指示を受けて、前記データ転送とデータ処理を制御するプログラムを前記主メモリからロードする手段と、前記ＣＰＵのプログラムの実行に従い、主メモリの第１領域から処理手段への処理前のデータの転送を前記処理手段の有するＤＭＡコントローラに指示する手段と、前記ＣＰＵのプログラムの実行に従い、前記データ処理の開始を前記処理手段に指示する手段と、前記ＣＰＵのプログラムの実行に従い、処理手段から主メモリの第２領域への処理後のデータの転送を前記処理手段の有するＤＭＡコントローラに指示する手段とを有し、主ＣＰＵからの複数のデータ処理の指示を順に受けて、主メモリから処理手段へのデータ転送、処理手段でのデータ処理及び処理手段から主メモリへのデータ転送を順次に行なうことによって、前記情報処理をパイプライン方式で行なうことを特徴とする。
【００１９】
ここで、前記データ転送制御装置が、前記ＤＭＡコントローラからの前記データ転送の完了を通知する信号又は前記処理手段からのデータ処理の完了を通知する信号を受けて、前記ＣＰＵのプログラムの実行に従い次のデータ転送を行なう主メモリの前記第１及び第２領域の準備を行なう手段を更に有する。また、前記処理手段は画像データを処理する。
【発明の効果】
【００２０】
本発明により、データ転送及びデータ処理をスムースに行なうための予備動作を実現可能なデータ転送制御方法及びその装置とシステムを提供する。
【００２１】
例えば、組み込み用途向けの規模の小さいＣＰＵを内蔵したＩ／Ｏ処理部を用意して、このＣＰＵ上で動作する組み込みプログラムがＩ／Ｏ処理部に依頼される煩雑なＤＭＡ処理を引きうける。システムの主ＣＰＵは、このＩ／Ｏ処理部に対して、実際のＤＭＡ処理を依頼するだけで、その後はそのＤＭＡデータ転送完了の割り込みだけを待つようなシステム構成とする。そして、この組み込み用途向けのＣＰＵ上で動作する組み込みプログラムがDDR−SDRAMメモリ内の指定領域内のOpen Pageの状態を最適に管理する。このため、常にOpenなPageに対して、ＤＭＡがデータ転送するように制御することによって、高速なＤＭＡデータ転送を可能にする。
【発明を実施するための最良の形態】
【００２２】
以下に、図面を参照して、この発明の好適な実施形態を例示的に詳しく説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。すなわち、本実施形態では、好適な実施形態として、主メモリとしてDDR-SDRAMを搭載するシステムにおけるDMAデータ転送の高速化を中心に説明する。しかし、本発明は、ハードウエア資源による種々のマイナス要因を取り除くデータ転送の制御を行なうことによって、システムの高速化・効率化を実現するデータ転送制御装置を提供するものであり、実現可能となるその基本構成をも含むものである。
【００２３】
＜本実施形態のデータ転送を含む情報処理システムの構成例＞
本実施形態の代表的なシステム構成を、図１に示す。
【００２４】
図中、Ｉ／Ｏ処理部１００，１１０は本実施形態の主要な部分、すなわちデータ転送制御装置の基本構成を示すものである。
【００２５】
Embedded ＣＰＵ Core１０１，１１１は、Ｉ／Ｏ処理部１００，１１０の制御用ＣＰＵとして用いられるものである。そして、システムバス・インタフェースを介してシステムバス１２０に接続されており、外部からのReset信号などによって起動や停止が行えるよう構成されている。Embedded ＣＰＵ Core１０１，１１１は、いわゆるRISCプロセッサを想定しているが、本実施形態においては、本質的なところではない。要は、単一の半導体基板上に１チップ化（SOC化）できる組み込みＣＰＵであれば、特に問題はない。
【００２６】
Embedded ＣＰＵ Core１０１，１１１は、システムバス１２０を介して、DDR−SDRAM１２７やROM１２５にアクセスすることができ、あらかじめ指定されたアドレスから命令を読み出して、実行することがきる。１２４はROMコントローラ、１２６はDDR−SDRAMコントローラである。これらROMコントロー１２４およびDDR−SDRAMコントローラ１２６は、半導体基板上に実装されることは言うまでもない。DDR−SDRAM１２７やROM１２５から読み出された命令は、Instruction Cache１０３，１１３内にロードされてキャッシュされる。そのため、再度同じ命令をEmbedded ＣＰＵ Core１０１，１１１が実行する場合は、DDR−SDRAM１２７やROM１２５にアクセスすることなく、このInstruction Cache１０３，１１３中に一時的に保持された命令データが使用される。従って、Embedded ＣＰＵ Core１０１，１１１は高速に動作することができる。
【００２７】
また、Embedded ＣＰＵ Core１０１，１１１は、ローカルメモリとして、SRAM１０５，１１５にアクセスすることができる。そして、主にこのEmbedded ＣＰＵ Core１０１，１１１を制御する組み込み型ソフトウェアの一時的な作業領域として使用される。 
Embedded ＣＰＵ Core１０１，１１１上で動作する組み込みソフトウェアは、次のようにして起動する。メインＣＰＵ１２３からEmbedded ＣＰＵ Core１０１，１１１にDDR-SDRAM１２７のコマンド群のInstruction Cache１０３，１１３への読み込みを指示することにより起動が可能である。組み込みソフトウェアは、一旦起動されると、一連のデータ処理を行って、停止状態（suspended）になり、割り込み等の外部からの信号によって、復帰（resume）することが可能なようにプログラムされている。このために、データ処理を行ってない場合には、Embedded ＣＰＵ Core１０１，１１１は低消費電力状態を維持することが可能になる。 
図１のＩ／Ｏ Control ユニット１０２，１１２は、Embedded ＣＰＵ Core１０１，１１１と密に接続されている。Embedded ＣＰＵ Core１０１，１１１が停止状態であれば、これらＣＰＵ内のPC(Program Counter)や汎用レジスタ等のＣＰＵ資源はすべてアクセス可能になっている。例えば、このＩ／Ｏ Controlユニット１０２，１１２をＩ／Ｏポートとして外部からもアクセスできる。さらに、Embedded ＣＰＵ Core１０１，１１１に接続されているSRAM１０５，１１５の内容やInstruction Cache１０３，１１３内のアドレスタグの値やキャッシュされているデータの値もアクセス可能になっている。この場合は、Ｉ／Ｏポートとして、同様に外部からアクセス可能な構成になっている。
【００２８】
Embedded ＣＰＵ Core１０１，１１１は、またＩ／Ｏ Controlユニット１０２，１１２を経由する。そして、ローカルバス・インタフェース１０４，１１４を介して、データ処理用の各ハードウェア機能モジュール（図中の１３０，１３２，１４０，１４２，１４４）と接続されている。Embedded ＣＰＵ Core１０１，１１１は、このローカルバス・インタフェースを介して、ローカルバス１５０に接続されている各ハードウェア機能モジュール１３０，１３２，１４０，１４２，１４４内のレジスタ群にアクセスする。これにより、これらハードウェア機能モジュールを制御することが可能になっている。
【００２９】
これら、ハードウェア機能モジュール１３０，１３２，１４０，１４２、１４４は、例えば画像データを処理する場合は、JPEGエンコードモジュールやJPEGデコードモジュールでも良いし、色空間変換モジュールでも良い。また、これらハードウェア機能モジュールは、それぞれＤＭＡコントローラ１３１，１３３，１４１，１４３，１４５を内蔵している。そして、システムバス１２０とローカルバス１５０間を直接つなぐバス・ブリッジ１５１を介して、DDR−SDRAM１２７に対して高速なＤＭＡデータ転送を行うことが可能な構成になっている。
【００３０】
また、主ＣＰＵ１２３が直接これらハードウェア機能モジュール１３０，１３２,  １４０,  １４２,  １４４の持つレジスタ群に対しても、アクセス可能な構成にもなっている。
【００３１】
また、ローカルバス１５０に接続されている各ハードウェア機能モジュール１３０，１３２，１４０，１４２，１４４からの割り込み信号は、それぞれEmbedded ＣＰＵ Coreに通知される。そして、Embedded ＣＰＵ Core１０１，１１１上で動作している（通常は、suspended状態にある）ソフトウェア（プログラム）でその割り込み処理が行われる。Embedded ＣＰＵ Core１０１，１１１内で動作しているプログラムは、自分自身で割り込み処理を行い、その割り込み処理自体を完了しても良い。また、システムバス１２０を介して、本実施形態におけるシステムのInterrupt Controller１２１にこの割り込み信号１０６，１１６を通知し、主ＣＰＵ１２３側において、その割り込み処理の行うことも可能な構成になっている。１２２はInterrupt Controller１２１から、システムの主ＣＰＵ１２３への割り込み信号（インタラプト信号）を表している。
【００３２】
＜本実施形態のデータ転送の動作例＞
図２乃至図４は、本実施形態のDDR−SDRAM中のOpenなPageをローカルバスに接続されている種々のハードウェアモジュール内のＤＭＡＣを使用して、順次のパイプライン方式で処理していく動作例を図示している。
【００３３】
まず、図２では、本実施形態のハードウェアモジュールAのＤＭＡＣを使用して、図中の(1)から(6)の順序で、ＤＭＡＣはDDR−SDRAM内のPageにアクセスをする。本実施形態のＩ／Ｏ処理部内の組む込み用途向けＣＰＵは、(1)のＤＭＡが処理前のデータ転送を開始する前にPage１（第１領域）をOpenにする。そして、モジュールAがデータ処理を済ませ、Page４（第２領域）に処理後の処理データを書き戻す（(2)）前に、Page４をOpen状態にする。
【００３４】
以下同様に、(3)、(4)、(5)、(6)の順に処理されていく。ハードウェアモジュールAの処理の完了はインタラプト信号による割り込みによって、通知される。Ｉ／Ｏ処理部内の組む込みプログラムがその割り込みをインタラプト処理し、次の処理の準備として次にＤＭＡＣによってアクセスされるDDR−SDRAM内のPageをOpenにする（オープン処理）。
【００３５】
図３は、ハードウェアモジュールBにおけるＤＭＡＣのアクセス順序（(7)〜(12)）を示し、図４はハードウェアモジュールCにおけるＤＭＡＣのアクセス順序（(13)〜(18)）を示している。
【００３６】
本実施形態では、３個のハードウェアモジュールにおけるパイプライン方式の処理の例（A―＞B−＞C）を示したが、もちろんシステムの構成によって、ハードウェアモジュールの数を変更できる。また、１回のＤＭＡ転送（Read／Write）のために用意されているPageの数は３であるが、この数もまた変更可能であり、ＤＭＡデータ転送に必要なPage数を指定できる。このPage数の指定はEmbedded ＣＰＵ CoreがあらかじめDDR-SDRAM（１２７）やＲＯＭ（１２５）から不図示の処理により取得するものである。
【００３７】
さらに、モジュールAとモジュールB、あるいはモジュールAとモジュールCだけを使用する組み合わせも可能である。また、それぞれのモジュールが１回のＤＭＡデータ転送で読み込むデータの大きさがPageを超える場合がある。すなわち、図３において、Page１、Page２、Page３の順にPageがモジュールAに読み込まれ、モジュールA内のデータ処理後、今度は、Page４、Page５、Page６の順にメモリに書き戻される。この場合においては、ＤＭＡＣの読み込みの直前に、Page１、Page２、Page３にアクセスして、これらPageをOpen状態にしてから、ＤＭＡ転送を開始すれば良い。また、モジュールAへの読み込み処理の完了が割り込みで通知されるので、その割り込み処理内で、モジュールAからの書き込み用のPage４、Page５、Page６にアクセスしておいて、これらPageをOpen状態にしておく。このようにすれば、その後のモジュールAのＤＭＡＣからのメモリへのデータ転送をOpen  Pageに対して行うことが可能になる。
【００３８】
この手法では、ＤＭＡデータ転送の直前に必要なPageだけをOpenするので、DDR−SDRAMの同時にOpen可能な最大Page数の問題も影響を受けないという利点がある。
【００３９】
＜本実施形態のデータ転送を実現する手順例＞
以下、上記本実施形態のデータ転送を実現する、主ＣＰＵ１２３，Embedded ＣＰＵ Core１０１，モジュールA乃至CとＤＭＡＣのそれぞれの処理手順例を具体的に説明する。
【００４０】
以下では、Module Aが「JPEGデコーダ」、Module Bが「色空間変換」、Module Cが「JPEGエンコーダ」として、DDR SDRAMのPage1-3のJPEGデータを色空間変換してPage10-12に格納する処理を例に説明をする。
【００４１】
１．まず、マクロプログラムとして"Ａ領域（例えばPage1-3）のＪＰＥＧデータを色空間変換する"との指示がされる。
【００４２】
（主ＣＰＵ１２３の動作手順例）
２．Main CPU123では、これを例えば、
(1-1)Page1のデータをModule AにＤＭＡ転送して、ＪＰＥＧデコードして、結果をPage4にＤＭＡ転送する。
(1-2)Page2,3のデータを同様にデコードして、Page5,6に格納する。
(1-3)Page4のデータをModule BにＤＭＡ転送して、色空間変換して、結果をPage7にＤＭＡ転送する。
(1-4)Page5,6のデータを同様に色空間変換して、Page8,9に格納する。
(1-5)Page7のデータをModule AにＤＭＡ転送して、ＪＰＥＧエンコードして、結果をPage10にＤＭＡ転送する。
(1-6)Page8,9のデータを同様にエンコードして、Page11,12に格納する。
の各処理を、順にEmbedded CPU Core101が実行するように、ＲＯＭ１２５中のコマンド群の先頭アドレスとその長さとパラメータ（例えば、Page数など）を指示する。
【００４３】
（Embedded ＣＰＵ Core１０１の動作手順例）
３．Embedded CPU Core101は、例えば、上記(1-1)に対応するコマンド群（パラメータは、Page1, Module A, Page4を含む）を得る。そして、Main CPUから開始インタラプトを受けると、自身をリセット(PC=0など）してコマンド群を実行する。
(2-1)まずPage1をOpenする。
(2-2)Module AのDMACに、Page1の開始アドレスと長さを設定する。
(2-3)Module AのDMACに、Bus Bridge151を介してのDDR SDRAMからModule AへのDMAを指示する。
(2-4)停止状態となり、DMAの完了インタラプトを待つ。
【００４４】
(2-5)DMAの完了インタラプトを受けると、次のコマンドでModule Aにデコードの開始を指示する。
(2-6)停止状態となり、デコードの完了インタラプトを待つ。
(2-7)デコードの完了インタラプトを受けると、次のコマンドでPage4をOpenする。
(2-8)Module AのDMACに、Page4の開始アドレスと長さを設定する。
(2-9)Module AのDMACに、Bus Bridge151を介してのModule AからDDR SDRAMへのDMAを指示する。
(2-10)停止状態となり、DMAの完了インタラプトを待つ。
(2-11)DMAの完了インタラプトを受けると、Main CPUにインタラプトして、上記(2-1)の処理（Page1のデータをデコードしてPage4へ格納）の完了を伝える。
【００４５】
４．Main CPUはインタラプトを受けて、次の処理（Page2のデータをデコードしてPage5へ格納）をEmbedded CPU Core101に指示する。Embedded CPU Core101は、まずPage2をOpenする。
【００４６】
以下、Page1-3のデータをデコードして、Page4-6に格納を終了すると、次に、同様の手順で、Page4-6のデータをModule Bで色空間変換して、Page7-9に格納する。最後に、Page7-9のデータをModule CでＪＰＥＧエンコードして、Page10-12に格納する。
【００４７】
上記具体例は、本発明の一例であって、この具体例から他の構成や他の条件での動作も容易に理解でき、これらも本発明の技術思想に含まれるものである。
【００４８】
尚、本発明は、複数の機器(例えばホストコンピュータ、インタフェース機器など）から構成されるシステムに適用しても、一つの機器からなる装置に適用してもよい。
【００４９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５０】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００５１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００５２】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００５３】
【図１】本実施形態の代表的な実施例を示すためのハードウェア構成図である。
【図２】本実施形態のDDR−SDRAM中のOpenなPageをローカルバスに接続されているハードウェアモジュールＡ内のＤＭＡＣを使用して、順次処理していくフローを示す図である。
【図３】本実施形態のDDR−SDRAM中のOpenなPageをローカルバスに接続されているハードウェアモジュールＢ内のＤＭＡＣを使用して、順次処理していくフローを示す図である。
【図４】本実施形態のDDR−SDRAM中のOpenなPageをローカルバスに接続されているハードウェアモジュールＣ内のＤＭＡＣを使用して、順次処理していくフローを示す図である。
【図１】
2008257651.tif 000003
【図２】
2008257651.tif 000004
【図３】
2008257651.tif 000005
【図４】
2008257651.tif 000006