JP4077349B2 - Dmaコントローラ - Google Patents
Dmaコントローラ Download PDFInfo
- Publication number
- JP4077349B2 JP4077349B2 JP2003072859A JP2003072859A JP4077349B2 JP 4077349 B2 JP4077349 B2 JP 4077349B2 JP 2003072859 A JP2003072859 A JP 2003072859A JP 2003072859 A JP2003072859 A JP 2003072859A JP 4077349 B2 JP4077349 B2 JP 4077349B2
- Authority
- JP
- Japan
- Prior art keywords
- dma
- reservation
- memory
- clock
- data transfer
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Bus Control (AREA)
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明は、メモリとメモリ間をダイレクトデータ転送するDMAコントローラに関し、特に、データ転送効率がよく、低消費電力であるDMAコントローラに関する。
【0002】
【従来の技術】
現在、データバスに複数の装置やメモリを接続したデータ処理装置において、装置間のデータ転送をダイレクト転送する際、複数のDMA転送要求を連続で、さらに、該DMA転送要求に優先度をつけて実行することで、転送効率を上げる方法がいくつか知られている。
【0003】
例えば、特開平09−223102号に、前述した転送効率を上げるダイレクトアクセスコントローラについて記載されており、図27および図28に示す構成を取る。図27は、ダイレクトメモリアクセスコントローラ(DMAコントローラ)を示すブロック図であり、図28は、図27に示すDMAコントローラを一部とするデータ処理装置を示すブロック図である。図27、図28において、DMAコントローラ10022は、複数のDMA転送の制御データを各レジスタ(データ保持手段)10012〜10016に設定すると共に、複数のDMA転送の優先度をDMA待ちレジスタ(優先度保持手段)10027に保持させ、制御回路(転送制御手段)10025の制御により、上記DMA待ちレジスタ10027に保持している優先度の順番で複数のDMA転送を実行させるものである。そして、前記DMAコントローラ10022の制御回路10025は、CPU10004とDMAアクセスライン10023によって接続され、CPU10004がデータ保持手段10012〜10016にアクセスするためのアドレス、データ、制御信号が転送されると共に、DMA転送終了通知等のための割込み信号、要求信号、応答信号が転送される。そして、このDMAコントローラ10022のDMA待ちレジスタ(優先度保持手段)10027に設定される優先度は、複数のDMA転送の制御データの入力時刻順であったり、転送相手であるI/O10007の重要度によってあらかじめ決定されているものである。
【0004】
また、データ処理装置における低消費電力を実現するためのクロック制御方式についても、いくつかの方法が知られている。
例えば、特開平08−255034号に、LSI全体の制御回路の設計変更を伴わずに低消費電力化を行う低消費電力型データ処理装置についての記載があり、図29に示す構成をとっている。図29は、低消費電力型データ処理装置の回路構成の一例を示す図であり、複数の機能回路30123〜30125それぞれに備えられたクロック制御用ゲート回路30117〜30119と、該個々のゲート回路の動作を定義付ける制御データを記録するためのゲート制御用レジスタ30105〜30107と、該レジスタ30105〜30107に対するデータの書きこみを制御するためのアドレスデコーダ回路30111と、を備える。前記レジスタ30105〜30107は、CPU等のメモリマップ領域に割り当てられており、固有のアドレスを有するものである。前記アドレスデコーダ回路30111は、CPU等の命令に従って、当該回路に入力された書込みイネーブル信号Senに基づき、アドレスバス30103を経由して供給される前記レジスタのアドレス値をデコードし、またデータバス30104を経由して供給される前記機能回路への制御データを、前記レジスタに記録する。前記レジスタからの出力は、各機能回路30123〜30125に対するクロック供給制御信号Sccとして使用され、前記ゲート回路30117〜30119は、該クロック供給制御信号Sccに基づき、各機能回路30123〜30125に対するクロック信号の供給を許可/停止する。
【0005】
また、特開平08−153387号に、入力映像信号の有効画素数に応じてアクセスを停止させて低消費電力化を図るFIFOメモリについて記載がなされており、図30の構成を取る。図30は、FIFOメモリの構成を機能面から示した図であり、該FIFOメモリは、データ信号の書き込み及び読み出しが行われるメモリアレイ40006と、外部からのリセット信号RESを受けて外部から入力するクロック信号CLK0に基づき、I/O回路40007に対するCLK(ビット線用クロック)と、ワードラインポインタ40004に対する第1クロックCLK1(ワード線用クロック)とを生成する、クロックジェネレータ40003と、前記CLK,CLK1それぞれに基づき前記メモリセルアレイのワード線及びビット線にアクセスを行うアドレス指定手段(I/O回路,ワードラインポインタ)と、前記クロックジェネレータ40003の動作を停止させる信号を生成するコントロールフラグジェネレータ40002と、を有するものである。そして、前記クロックジェネレータ40003が出力するCLK1に応じて、ワードラインポインタ40004は、順次にワード線40008を指定し、最後のポインタ40005が、最後のワード線40008Eのアクセスを示す最終行アクセス信号PAS3をコントロールフラグジェネレータ40002に対して出力すると、該コントロールフラグジェネレータ40002は、最終行アクセス信号PAS3と、CLK1に同期したクロックCOSとにより、最終アドレスのアクセスを検出し、その検出タイミングに応じてクロック制御信号CCNTをクロックジェネレータ40003に対して出力する。そして、前記クロック制御信号CCNTを受けた前記クロックジェネレータ40003は、基本クロックCLK0のカウント動作を停止するものである。つまり、前記FIFOメモリは、FIFOメモリ自身が、データの書きこみと読み出しを開始するタイミングを制御信号から検出して、メモリセルアレイ40006に対してクロックの供給を開始し、アドレス指定手段(I/O回路,ワードラインポインタ)が指定する最終アドレス信号を検出して前記クロックジェネレータ40003のクロックを停止させるクロック制御信号生成手段(コントロールフラグジェネレータ40002)を備えた特別なFIFOメモリである。
【0006】
さらに、特開平7−182857号にはマイコンシステムについて記載されており、CPUのスタンバイ時にDRAMをセルフリフレッシュ制御する方法が開示されている。図31は、マイコンシステムの構成を示すブロック図である。
【0007】
図31のマイコンシステムにおいては、システムがスタンバイ状態に設定されると、CPU50001によりセルフリフレッシュモードが設定され、DRAMコントローラ50003からの指令により、インターバルリフレッシュ回路50004からセルフリフレッシュ回路50005に切り替えられる。そして、通常動作時にクロックジェネレータ50002から発生されるクロック信号を停止させた状態で、セルフリフレッシュ回路50005がDRAMコントローラ50003にセルフリフレッシュ動作を行うように制御信号を供給する構成となっているものである。
【0008】
また、特開平7−169266では、半導体メモリ装置内におけるメモリセルアレイの分割制御方法について開示されている。図32は、半導体メモリの基本的構成を示す図である。
図32における半導体メモリは、チップ内に分割された複数個のメモリアレイ60001…を設け、所定のメモリアレイ60001がメモリアレイ選択回路60005で選択されたときは、第1の外部アドレス信号群のアドレスにより、選択されたメモリアレイ60001内のワード線の選択を行う。これと同時に、選択されないメモリアレイ60001…に対しては、チップ内に内蔵するセルフリフレッシュ用クロック発生回路60006から、セルフリフレッシュ用ワード線基本クロック、及びリフレッシュ用ワード線基本クロック(/RASF)を出力して、選択されないメモリアレイ60001内のワード線の選択を行う。メモリアレイ60001が選択される設定時間前でリフレッシュ停止信号を出力してリフレッシュ動作を強制的に停止し、メモリセルの十分な電荷再蓄積を防止する。そして、このようにメモリアレイ60001を複数に分割し、選択されたメモリアレイでノーマルリード/ライト動作を行うと同時に、他の選択されないメモリアレイでリフレッシュ動作を行うので、1個のメモリアレイを見ればノーマル動作とリフレッシュ動作との競合が無く、外部からのリフレッシュの制御が不要で、かつ高速シリアルアクセスが可能となる。さらに、メモリアレイ選択回路60005は、1個以上のメモリセルアレイを選択する場合に用いられるものであって、この選択信号は、ワード線基本クロック(/RAS)の出力選択か、リフレッシュカウンタ及びリフレッシュ用クロック(/RASF)の出力か、を選択するものに使用されるものである。
【0009】
【発明が解決しようとする課題】
しかしながら、特開平09−223102号に記載されたDMAコントローラでは、複数のDMA転送の制御データを設定した時点でデータ転送が実行されてしまうため、前もって前記制御データを設定しておくことができないほか、データ転送要求を予約しておくこともできないため、CPU等のプログラムなどによって、前処理等でデータ転送の設定をしておくことができず、CPU等のプログラム設計の自由度を小さくしてしまう、という問題があった。
【0010】
また、前記従来のDMAコントローラは、自由に優先度を指定するような構成ではなく、上記制御データの設定時刻順や、転送相手であるI/Oの重要度によって優先度が設定されるようになっているものである。そのため、転送相手であるIOのデータの重要度が変化するようなものの場合、優先度を自由に設定変更できないという問題があった。さらに、その複数の転送データの保持構成としては、転送データに対して優先度を保持する構成をとるので、転送相手が増加すると、その増加分の優先度保持手段を追設する必要がある、という問題もあった。
【0011】
また、従来のデータ転送要求処理についても、特開平09−223102号では、要求を受け付けた時点でそれらの要求の順番を即座に判断するものであるため、データ転送の中断・再開という複雑な処理が必要となる部分もあり、データ転送要求のタイミングとその優先度とによっては、優先度が逆転してしまう、という問題があった。つまり、データ転送要求時に予約の優先度を判断してしまうと、データ転送要求した時間は新しいがより優先度の高いデータ転送要求が、次データ転送開始時までに発行されても、その実行順を入れかえることができず、データ転送処理順序を最適にすることができなかった。
【0012】
さらに、特開平09−223102号記載のDMAコントローラでは、データ転送の一時中断は実現できるが、予約中のデータ転送要求の取り消し、あるいはCPU等のプログラムによる予約中のデータ転送要求の並べ替えは実現できなかった。また、実行中のデータ転送の取り消しに関しても、データバスをCPUに開放している間DMA転送を停止させる一時停止方法をとっており、DMA転送を中止して、新たなDMA転送を続ける停止方法はとれていなかった。また、このようなDMA転送の中断、一時停止を実現するには、DMA転送を再開する際のデータを保持する手段と、その保持処理および再開処理期間とが必要となって、その制御と装置回路が複雑となってしまうわりには、中断時の残りのデータ転送個数が(データ退避処理+転送再開処理)以上のサイクルがない限り、このことによる効果が薄かった。また、DMA転送の中断、あるいは一時停止のような状態になる確率は非常に少ないにもかかわらず、このことによって装置回路規模が増大、複雑化することから、開発期間、消費電力の面で不利となる、という問題もあった。
【0013】
また、特開平09−223102号では、制御データまたはデータ転送の要求命令を発行した時点でDMA転送が実行されるため、あらかじめデータ転送を予約しておき、所望の時刻になってから、または所望のタイミングでデータ転送を自動的に実行に移すということができなかった。さらに、データ保持手段が複数に分割されているため、アクセス制御がそれぞれの手段に対して必要となり、装置構成が大きくなってしまうほか、CPU等のプログラムによりアクセス命令を発行する際も複数命令が必要であった。その上、前記データ保持手段には、アドレス情報、転送先にあたるI/O情報を格納する旨が開示されているが、これらの情報を複数の資源に分けて格納しなければならなかったので、メモリに対しさまざまなアクセスパターンでアクセスしたくても、その情報に関連させるパラメータを保持していないため、1パターンのアクセスしかできなかった。
【0014】
なお、データ転送要求元が複数ある場合には、従来の特開平9−22310号のように、転送相手毎に優先度を保持する必要が出てくるが、必ずしも、転送要求元と、転送相手の数が等しいとは限らないため、転送要求元が増えることによって転送相手先が多くなると、従来方法ではさらに保持手段が増えてしまい、またそのデータ転送処理においても、優先度と登録順の両方をチェックする必要があるため、制御が複雑となるという問題は解決しない。
【0015】
また、従来の低消費電力を実現するクロック制御方式については、特開平08−255034号の装置においてクロックの供給/停止制御を行う場合、機能回路を動作させる前と後とで、必ず制御レジスタにアクセスする必要があるため、CPU等のプログラムにより細かい制御を行う必要がある、という問題があった。
【0016】
また、特開平08−153387号のFIFOメモリでは、メモリセルに対するクロック制御方式が開示されているが、一般的に部品として使用するメモリデバイスには、ここであげられているような制御は組み込まれておらず、外部から制御するしかない。そして、その外部にはメモリコントローラを備えているため、メモリコントローラも含めて低消費電力化制御を行う必要がある。従って、前もってデータ転送要求を複数個予約しておく場合や、メモリアクセスパターンが任意の場合、または転送回数や個数が任意の場合、さらには転送開始が任意のタイミングで複数ある場合には、その検出方法を、該特許の開示方法のようにメモリへのアクセス開始時点をリセット信号のようなものにはできない。また、転送終了の検出も最終ワード線アクセスを検出するなどできず、さらにデータ転送要求予約数によっても、または転送個数も任意であるため、あらかじめ設定しておくことができない。さらに、アクセスするメモリが1つだと、メモリ内のアクセスしない領域にもクロックを供給する必要があり、無駄な電力を消費してしまう。また、メモリがDRAMの場合、1つのDRAMで構成すると一部の領域のみアクセスする場合でも、アクセスするたびにDRAM全体を動作させる必要があるほか、リフレッシュ動作時もDRAM全体を動作させる必要があり、無駄な電力を消費してしまう、という問題があった。
【0017】
また、特開平7-182857号の装置では、システムのスタンバイ時のみセルフリフレッシュモード制御回路に切り替わるように制御されているため、動作中にリアルタイムに任意に設定変更することができず、動作時の電力を低減することができない。また、DRAMバンクを複数に分けた場合には、どのように制御すべきか開示されていない。さらに、DRAMを分割して構成した場合、使用しない領域に対してオートリフレッシュを実行する場合は、その使用しない領域にもクロックを入力する必要があり、無駄な電力を消費してしまう。さらに、クロックを供給しないとデータが消えてしまう、という問題があった。
【0018】
また、特開平7−169266号の場合は、半導体メモリ自身の構成を変更して特別に作成する必要があり、コストの増加を招いてしまう。また、メモリセルアレイ60001ごとに、アドレス選択回路60003および、ロウデコーダ60002、リフレッシュカウンタ60004を設けているため、回路規模が増大してしまうことになり、また半導体メモリが低消費電力化を目的とされたものではないこともあって、本発明に関わるような低消費電力を目的としたメモリバンクを分割した構成のDMAコントローラには適さないものであった。
【0019】
さらに、実際のLSIにおいては、大容量のメモリ領域を単一のDRAMで実現した場合の結果として、以下のような報告がなされている。
「A Low Power MPEG-4 Video/Audio codec LSI with 16Mbit embedded DRAM」Proceedings of COOL Chips III, pp89-100, April.2000によると、単一マクロで構成されている16MbitDRAMの消費電力は、LSI全体の240mWに対しておよそ25%を占めている。一般的にロジック部は、微細化に伴い、電源電圧が比較的容易に下がっていくことから、消費電力の削減は進むと予想されるが、混載DRAMについては、メモリセル駆動のために、電圧を容易に落とすことができない。また今後、混載されるメモリ容量は、画像アプリケーションの多様化(3次元グラフィックスや、解像度の向上など)により、増大すると予想される。従って、低消費電力化が進むシステムLSIにおいて、DRAMを代表とするメモリの消費電力の占める割合は、無視することは出来ないようになってくると予想される。
本発明は、上記課題に鑑みてなされたものであり、回路規模が少なく容易に設計可能で、データ転送効率がよく、且つ低消費電力なDMAコントローラを提供することを目的とする。
【0020】
【課題を解決するための手段】
上記課題を解決するために、本発明の請求項1にかかるDMAコントローラは、各種データを蓄積する主記憶手段と、該主記憶手段の転送相手である複数の子記憶手段とのデータ転送を制御するデータ転送制御部であるDMAコントローラであって、前記主記憶手段は、複数の領域に分割され、該領域毎にクロックが供給されている複数の個別主記憶手段からなり、前記データ転送制御部は、該データ転送制御部に対してクロックの供給・停止を制御するクロック制御部と、前記個別主記憶手段に対してクロックの供給・停止を制御する、メモリクロック制御部と、DMA転送実行中に生成するアドレスから、前記複数の個別主記憶手段のうちのアクセスされる領域を判定し、バンク選択信号を随時生成するアドレス判定部とを備え、前記メモリクロック制御部は、動作イネーブル信号が発行され、DMA転送命令が前記データ転送制御部に予約されており、且つ、データ転送実行中に、前記バンク選択信号により、指定された前記主記憶手段の領域に対してのみクロック信号を供給するように制御するものである。
【0026】
【発明の実施の形態】
(実施の形態1)
以下、実施の形態1におけるDMAコントローラについて説明する。
まず、図1、図2を用いて、本実施の形態1における、DMAコントローラ、及びそのDMAコントローラを有するシステムの構成を説明する。
図1は、実施の形態1におけるDMAコントローラ(データ転送制御部)を有するシステム構成図であり、図2は、実施の形態1におけるデータ転送制御部内のデータ転送要求受信部102の構成を示した図である。
【0027】
図1において、本システムは、DMAコントローラであるデータ転送制御部101と、プロセッサ111と、メインメモリ110と、ローカルメモリ112と、DMAバスと、ローカルバスとからなるものである。
前記プロセッサ111は、データ転送制御部101をはじめシステム全体をコントロールするものであり、また該データ転送制御部101に対してDMA転送要求を発行するものである。
メインメモリ110は、各種データを格納するものであり、ローカルメモリ112は、ローカルバスによってプロセッサ111に接続されたローカルメモリ群である。
【0028】
また、前記データ転送制御部(DMAコントローラ)101は、データ転送要求受信部102と、メモリーインターフェース部103と、データ入出力部104と、DMAパラメータメモリ105と、起動信号受信部106とを備えるものである。
メモリーインターフェース部103は、メインメモリ110への制御信号を生成するものであり、データ入出力部104は、データの入出力を制御するものであり、DMAパラメータメモリ105は、DMA転送を実行するために必要なパラメータを格納するものである。
【0029】
起動信号受信部106は、データ転送制御部101の起動及び停止命令をプロセッサ111から受信し、メモリーインターフェース部103にその命令を伝えるものである。
データ転送要求受信部102は、プロセッサ111からの、優先レベル(実行優先度情報)および転送相手種別情報(子記憶手段の種別情報)からなるDMA転送要求を受け付けるものであり、その構成の詳細については、以下図2を用いて説明する。
【0030】
図2において、データ転送要求受信部102は、優先レベル解読部201と、予約レジスタ210と、セレクタ202とから構成される。
優先レベル解読部201は、入力されたDMA転送要求の優先レベルを解読し、格納すべきレジスタを確定するものである。
予約レジスタ210は、優先レベル1予約レジスタ211〜優先レベル3予約レジスタ213からなり、個々の優先レベル予約レジスタには、転送相手種別情報(リソースA〜リソースC)が格納される。ここでは、その転送相手種別情報を格納するための設定レジスタが、各優先レベル予約レジスタに1つずつ備えられている。各優先レベル予約レジスタ211〜213に予約が入ると、各優先レベル予約レジスタに対応した予約flag1〜予約flag3が立つようになっている。また、これらの予約flagは論理和をとられ、データ転送要求受信部102に予約があることを示す予約フラグとして、メモリーインタフェース部103に出力される。
【0031】
セレクタ202は、個々の優先レベル予約レジスタ211〜213から出力される転送相手種別情報を選択するセレクタで、その各優先レベル予約レジスタから出力される予約flag1〜予約flag3の状態によって、選択先が変わるようになっている。例えば、予約flag1が“1”の場合は、優先レベル1予約レジスタ211の出力を選択し、予約flag1が“0”で且つ予約flag2が“1”の場合は、優先レベル2予約レジスタ212の出力が選択される。また、予約flag1と予約flag2とが共に“0”で、予約flag3が“1”の場合は、優先レベル3予約レジスタ213の出力が選択されるようになっている。つまり、ここでの優先度は、優先レベル1>優先レベル2>優先レベル3の順であることを示している。
【0032】
次に、図1及び図2を用いて、本実施の形態1のシステムにおける、DMAコントローラ(データ転送制御部)101の動作を説明する。
まず、プロセッサ111はローカルバスにより、DMAパラメータメモリ105に、DMA転送実行に必要なパラメータ、例えば、リード/ライト情報、バイト/ワードなどのアクセス単位情報、連続アクセスか、矩形アクセスか、リングポインタアクセスかなどを示すアクセス情報、およびスタートアドレス等の各種アドレス情報や、転送個数などをあらかじめ格納しておく。
【0033】
プロセッサ111はデータ転送制御部101(DMAコントローラ)起動の前準備として、即座に実行したいDMA命令を、あらかじめデータ転送要求受信部102へ予約しておく。このDMA命令には、DMA転送の優先レベルを示す情報と、DMA転送の対象となるメモリ種別を表す情報が含まれている。このとき、予約フラグがメモリーインターフェース部103に出力される。
本システムが動作開始状態になると、プロセッサ111は起動信号受信部106へ起動命令を発行する。起動命令を受信したデータ転送制御部101は、DMA転送動作を開始することになる。
【0034】
DMA転送動作が開始されると、まず、メモリーインターフェース部103は、予約フラグが有効になっていることから、データ転送要求受信部102に予約チェック信号を発行する。
現在、データ転送要求受信部102に、図2に示すように3つのDMA転送の予約が入っているとすると、予約flag1は“1”となっている。そして、図2において、優先レベル1予約レジスタ211の設定レジスタにリソースCを表すコードが格納されているので、セレクタ202によって優先レベル1予約レジスタ211の出力であるリソースC(ローカルメモリC)が選択される。
【0035】
この予約情報であるリソースCがDMA種別情報としてメモリーインターフェース部103へと送られると、ローカルメモリCの予約が入っていることがメモリーインターフェース部103によって解読される。
その後、読み出された優先レベル1予約レジスタからの予約flag1は“0”となり、予約flag2が“1”となるため、セレクタ202は優先レベル2予約レジスタ212の出力を選択する。
【0036】
メモリーインターフェース部103は、ローカルメモリCのDMA転送実行情報が格納されているDMAパラメータメモリ105の決まったアドレスにアクセスし、DMA転送実行に必要なパラメータをロードする。ロードした値に従って、メモリインターフェース部103は、メインメモリ110に対して制御信号を生成し、ローカルメモリCとのDMA転送を実行する。
ローカルメモリCとメインメモリ110とのDMA転送が終了すると、メモリインターフェース部103は、再びデータ転送要求受信部102に対して予約チェック信号を発行し、優先レベル2予約レジスタ212の設定レジスタに格納されているリソースB(ローカルメモリB)の情報を出力する。
【0037】
同様に、この予約情報であるリソースBがDMA種別情報としてメモリーインターフェース部103に送られると、ローカルメモリBの予約が入っていることがメモリーインターフェース部103によって解読される。その後、予約flag1=“0”,予約flag2=“0”,予約flag3=“1”であるため、セレクタ202は、優先レベル3予約レジスタ213を選択する。以下、同様にDMA転送を実行する。
この様にして、メモリーインターフェース部103はデータ転送要求受信部102に格納されている予約のチェックを行い、予約フラグが“0”になるまでDMA転送を連続で行う。
また、プロセッサ111が起動信号受信部106に対して停止命令を発行した場合、データ転送制御部101は現在実行中のDMA転送を終了した時点で、それ以降のDMA転送の実行を停止し、DMA転送の予約のみを受け付けるようになる。
【0038】
以上のように、本実施の形態1では、データ転送制御部(DMAコントローラ)101が起動信号受信部106を備えることにより、データ転送要求発行元であるプロセッサ111から受け付けたDMA転送を実行しないで予約のみを行うことができる。これにより、システムコントローラであるプロセッサ111等のプログラミングの自由度が向上する。
【0039】
さらに、本実施の形態1では、データ転送要求受信部102において、DMA転送予約を優先度毎に転送相手の種別情報を保持するものであるので、保持レジスタの数が(転送相手種別数×優先度を表すビット数)ではなく、(優先度数×転送相手種別数を表すビット数)となり、データ転送要求受信部102内の保持レジスタ数を少なくすることができる。
さらに、本実施の形態1では、DMA転送実行のための判断制御を、転送種別情報すべての優先度を見て判断するのではなく、高い優先度のレジスタ内に格納されている転送相手種別情報を見て判断すればよいので、その判断制御が容易となるほか、回路も簡素化できる。
【0040】
(実施の形態2)
以下、実施の形態2におけるDMAコントローラについて説明する。
まず、図3、図4を用いて、本実施の形態2における、DMAコントローラ、及びそのDMAコントローラを有するシステムの構成を説明する。
図3は、実施の形態2におけるDMAコントローラ(データ転送制御部)を有するシステム構成図であり、図4は、実施の形態2におけるデータ転送制御部内のデータ転送要求受信部の構成を示した図である。
図3における本システムは、DMAコントローラであるデータ転送制御部801に対するDMA転送要求の発行元が複数ある場合であり、本実施の形態2では、DMA転送要求の発行元が、メインプロセッサ811、及びサブプロセッサ813である場合を例に挙げて説明する。よって、本実施の形態2における本システムの構成は、前記データ転送制御部801と、メインプロセッサ811及びサブプロセッサ813と、メインメモリ810と、ローカルメモリ812と、DMAバスと、ローカルバスとからなるものである。
【0041】
前記メインプロセッサ811及びサブプロセッサ813は、データ転送制御部801に対してDMA転送要求を発行するものであり、さらにメインプロセッサ811は、データ転送制御部801をはじめシステム全体をコントロールするものである。
メインメモリ810は、各種データを格納するものであり、ローカルメモリ812は、ローカルバスによってメインプロセッサ811及びサブプロセッサ813に接続されたローカルメモリ群である。
【0042】
また、前記データ転送制御部(DMAコントローラ)801は、予備予約手段820と、データ転送要求受信部102と、メモリーインターフェース部103と、データ入出力部104と、DMAパラメータメモリ105と、起動信号受信部106とを備えるものである。
予備予約手段820は、複数のDMA転送要求の発行元、つまりメインプロセッサ811及びサブプロセッサ813からのDMA転送要求を受け付けて一時的に保管し、システム制御の重要度に応じてあらかじめ設定されている優先度に従って、データ転送要求受信部102に転送するDMA転送要求を選択するものである。
なお、そのほかの構成は、実施の形態1と同様であるため、説明を省略する。
【0043】
以下、データ転送制御部801内のデータ転送要求受信部102、及び予備予約手段820の詳細な構成について、図4を用いて説明する。
図4において、予備予約手段820は、メインプロセッサ811からのDMA転送要求を受け付ける予備1予約レジスタ821と、サブプロセッサ813からのDMA転送要求を受け付ける予備2予約レジスタ822と、前記データ転送要求受信部102に対して、前記複数の予備予約レジスタに格納されたDMA転送要求を、システム制御の重要度に応じてあらかじめ設定されている優先度に従って選択する予備セレクタ823とで構成されている。
【0044】
前記予備1予約レジスタ821、予備2予約レジスタ822それぞれは、優先レベルレジスタと種別レジスタとを備え、各プロセッサから出力されたDMA転送要求の情報である優先レベルと転送相手種別情報(リソースA〜リソースC)とを、それぞれ前記優先レベルレジスタ、種別レジスタに一時的に保持する。この各予備予約レジスタ821,822に前記予約情報が格納されると、各予備予約レジスタ821,822からの予備予約フラグ1,予備予約フラグ2が有効となる。
なお、データ転送要求受信部102については、実施の形態1と同様の構成をもつため、ここでは説明を省略する。
【0045】
次に、図3及び図4を用いて、本実施の形態2のシステムにおけるDMAコントローラ(データ転送制御部)801の動作を説明する。
メインプロセッサ811からDMA転送要求が予備予約手段820に入ると、前述したようにして予備1予約レジスタの優先度レジスタ1及び種別レジスタ1に、前記DMA転送要求の情報が保持される。前記予備1予約レジスタに情報が受け付けられると予備予約フラグ1が有効になり、予備セレクタ823は前記予備1予約レジスタに保持されていた情報(優先レベル,転送相手種別情報)をデータ転送要求受信部102へと転送する。
【0046】
ここで、メインプロセッサ811及びサブプロセッサ813から、予備予約手段820に対して同時にDMA転送要求が発行された場合は、メインプロセッサ811からのDMA転送要求が前記予備1予約レジスタ821に、またサブプロセッサ813からのDMA転送要求が前記予備2予約レジスタ822に入力され、各予備予約レジスタ内の優先レベルレジスタ、及び種別レジスタに保持される。そして情報が保持されると同時に予備予約フラグ1,2両方が有効となるが、本実施の形態2では、サブプロセッサ813よりメインプロセッサ811のほうがシステム制御の重要度が高いと設定されているため、予備セレクタ823は、予備1予約レジスタ821に保持されているメインプロセッサ811からのDMA転送を優先して選択し、該DMA転送要求のデータをデータ転送要求受信部102に出力する。この後のデータ転送要求受信部102における動作は、実施の形態1で説明したものと同様であるため、ここでは説明を省略する。
【0047】
なお、本実施の形態2においては、DMA転送要求発行元であるプロセッサが2つである場合を例に挙げて説明したが、該DMA転送要求発行元が任意の数である場合は、予備予約手段820内の予備予約レジスタの数を、そのDMA転送要求発行元と同数にすれば同様に実現できる。また前記DMA転送要求に含まれる情報についても、ここでは優先レベル及び転送相手種別情報としたが、それ以外の情報を含んでいる場合、前記各予備予約レジスタに備えられたレジスタ数を増やすことで容易に対応できるものである。
【0048】
以上のように、本実施の形態2では、予備予約手段820を付加するようにしたので、複数のDMA転送要求元から同時に発行される転送要求を制御可能なDMAコントローラを実現することができる。また、単一転送要求元に対応したDMAコントローラを、複数の転送要求元に対応可能なように回路を変更する場合に、その単一転送要求に対応したDMAコントローラに予備予約手段820等を付加することで変更可能なため、回路を再利用することができるという効果もある。
なお、本実施の形態では、DMA転送要求の発行元がプロセッサをしているが、サブプロセッサがハードウエアであったり、メインプロセッサ及びサブプロセッサの両方がハードウェアであっても、同様に処理可能である。
【0049】
(実施の形態3)
以下、実施の形態3におけるDMAコントローラについて説明する。
本実施の形態3におけるDMAコントローラ、及びそのDMAコントローラを有するシステムの構成は、実施の形態1と同様であるため、説明を省略する。
以下、図1、図2及び図5を使用して、実施の形態1におけるデータ転送制御部(DMAコントローラ)101の動作にのっとって、データ転送要求、DMA転送実行のタイミング、及び実行データの実行順待ち状態の遷移について説明する。
【0050】
図5は、実施の形態3のシステムにおいてDMA転送要求が発行された際の、DMA転送実行順待ち状態の遷移と、DMA転送実行のタイミングとを示す図である。
今、図5に示すタイミングで、プロセッサ111よりDMA転送要求が発行されたとする。データ転送要求受信部102では、図5に示すように実行優先順が遷移していく。
まず、図5に示されるように、プロセッサ111より起動命令が発行されて起動信号が“1”になるまでに、3つのDMA転送要求が発行されているとする(実行待ち状態(イ))。そして、この状態でメモリーインターフェース部103から予約チェック信号が発行された場合、予約されている要求のなかで一番優先レベルが高い、優先レベル1の予約が先に実行されることになる。
【0051】
優先レベル1のデータ転送が実行に移されると、データ転送要求受信部102における予約の実行優先順は、優先レベル2、優先レベル3の順での実行待ち状態(ロ)へと遷移する。
しかし、この優先レベル1のDMA転送実行中に、再びプロセッサ111から優先レベル1のDMA転送要求が、データ転送要求受信部102に発行された場合、データ転送要求受信部102における予約の実行優先順は、再び優先レベル1、優先レベル2、優先レベル3の順となり、実行待ち状態(ハ)へと遷移する。
この後、現在実行中の優先レベル1のDMA転送が終了すると、再びメモリーインターフェース部103から予約チェック信号が発行され、このときに予約されている要求のなかで、一番優先レベルが高い優先レベル1の予約が先に実行されることになる。
【0052】
ここで、前記予約チェック信号が発行されるタイミングについて、具体的に述べる。例えば前記メモリインタフェース部103では、メインメモリ110と各ローカルメモリとの間で行われるDMA転送のデータ転送個数をカウントしておき、ひとつ前のDMA転送処理が終了する一定時間前、例えばDMA転送終了前16サイクル、になると、メモリインタフェース部103が、データ転送要求受信部102に予約チェック信号を発行する。そして、この予約チェック信号を受信したデータ転送要求受信部102は、予約レジスタ210をチェックし、次のDMA転送処理の準備を行う。なお、ここでは、DMA転送終了前の一定時間を16サイクルとしたが、この一定時間は、DMAパラメータメモリ105から、次のDMA転送実行のための各種パラメータをロードするサイクル数に依存するものであり、次にDMA転送を実行に移すための準備時間にあたるものである。従って、この一定時間のサイクル数は、実行条件によって任意に変化してよい。なお、以上に説明した本実施の形態3のDMA転送処理は、実施の形態2のように前記DMA転送要求発行元が複数である場合にも適応可能である。
【0053】
このように、本実施の形態3では、メモリーインターフェース部から次のDMA転送実行の直前に、データ転送要求受信部に予約チェック信号を発行し、次に転送実行するデータを確認することにより、DMA予約の連続性を保ったまま、転送実行直前に入った優先度の高いDMA予約を実行することが可能となる。
【0054】
尚、前記予約チェック信号は、DMA転送の準備期間を見越して、DMA転送が終了する前の一定サイクル前に、前もって発行すると、より連続性が確保される。これを実現するには、メモリーインターフェース部において、DMA転送の終了前十数サイクルを検出しておき、それを検出した際に予約チェック信号を発行するようにするとよい。
【0055】
(実施の形態4)
以下、実施の形態4におけるDMAコントローラについて説明する。
まず、図1及び図6を用いて、実施の形態4における、DMAコントローラ、及びそのDMAコントローラを有するシステムの構成を説明する。
図6は、実施の形態4におけるデータ転送要求受信部102aの構成を示している。
図において、本実施の形態4におけるデータ転送要求受信部102aは、優先レベル/キャンセル解読部401と、セレクタ402と、予約レジスタ410とで構成されている。
【0056】
優先レベル/キャンセル情報解読部401は、入力されたDMA転送要求の優先レベルと、該DMA転送要求がキャンセルであるかどうかを解読し、格納またはキャンセルすべきレジスタを確定するものである。
予約レジスタ410は、優先レベル1予約レジスタ411〜優先レベル3予約レジスタ413からなり、個々の優先レベル予約レジスタには、転送相手種別情報(リソース情報)が格納される。ここでは、その情報を格納するための設定レジスタが、各優先レベル予約レジスタ411〜413に1つずつ備えられている。
【0057】
各優先レベル予約レジスタ411〜413に予約が入ると、各優先レベル予約レジスタに対応した、予約flag1〜予約flag3が立つようになっている。またこの予約flagは論理和をとられ、データ転送要求受信部102aに予約があることを示す予約フラグとしてメモリーインタフェース部103に出力される。
【0058】
セレクタ402は、個々の優先レベル予約レジスタから出力される転送相手種別情報を選択するセレクタで、各優先レベル予約レジスタから出力される予約flagの状態によって、選択先が変わるようになっている。例えば、予約flag1が“1”の場合は、優先レベル1予約レジスタ411の出力を選択し、予約flag1が“0”で且つ予約flag2が“1”の場合は、優先レベル2予約レジスタ412の出力が選択される。また、予約flag1と予約flag2が共に“0”で、予約flag3が“1”の場合は、優先レベル3予約レジスタ413の出力が選択されるようになっている。つまり、ここでの優先度は、優先レベル1>優先レベル2>優先レベル3の順であることを示している。
なお、上記以外の実施の形態4におけるDMAコントローラ及びそのDMAコントローラを有したシステムの構成は、実施の形態1のものと同様であるため、説明を省略する。
【0059】
次に、図1および図6を用いて、実施の形態4のシステムにおける、DMAコントローラ(データ転送制御部)101の動作を説明する。
DMA転送要求は、実施の形態1で説明したような手順で、プロセッサ111よりデータ転送要求受信部102aに、あらかじめ予約されているとする。
【0060】
現在、データ転送要求受信部102aに、図6に示すように3つのDMA命令の予約が入っているとすると、予約flag1は“1”となっている。今、リソースCを表すコードが優先レベル1予約レジスタ411に格納されているので、セレクタ402により、優先レベル1予約レジスタ411の出力であるリソースC(ローカルメモリC)が選択され、ローカルメモリCとメインメモリ110との間でDMA転送が実行される。
このDMA転送の最中に、プロセッサ111が、DMA命令を利用して、キャンセル命令を発行したとする。このキャンセル命令は、優先レベル、転送相手種別情報(リソース情報)を含んでいる。
【0061】
例えば、プロセッサ111からデータ転送要求受信部102aに、優先レベル2、リソースBと共にキャンセル情報が発行されたとする。前記キャンセル情報を含んだDMA命令を受信したデータ転送要求受信部102aは、優先レベル/キャンセル解読部401により、そのDMA命令が優先レベル2のキャンセル命令であることを解読する。これに基づき、データ転送要求受信部102aは、優先レベル2予約レジスタ412の予約flag2を“0”とし、優先レベル2である、リソースB(ローカルメモリB)とのDMA転送予約がキャンセルされる。
【0062】
これによって、実行中のローカルメモリCとメインメモリ110との間のDMA転送が終了した時点で、予約flag1が“0”、予約flag2が“0”、予約flag3が“1”となるため、優先レベル3予約レジスタ413に予約されているリソースAとメインメモリ110との間のDMA転送が次のDMA転送として実行される。
【0063】
また、例えば、リソースC(ローカルメモリC)とメインメモリ110との間の優先レベル1のDMA転送が実行されている最中に、プロセッサ111により、優先レベル2で、リソースCと共にキャンセル情報が発行されると、データ転送要求受信部102aにより、そのDMA命令が実行中のDMA転送のキャンセルであることが判定され、メモリーインターフェース部103に停止信号が発行される。この後メモリーインターフェース部103では、実行中のDMA転送を終了処理へと移行する。
なお、以上に説明した本実施の形態4のDMA転送処理は、実施の形態2のように前記DMA転送要求元が複数である場合にも適応可能である。
【0064】
このように、本実施の形態4では、予約中のDMA転送予約を、データ転送要求発行元であるプロセッサからの命令によってキャンセルできるようにすることで、システムの状態により必要がなくなったDMA転送を実行せずに済み、また再予約等の操作と組み合わせることにより予約を入れ替えることも可能となる。さらに、無駄なDMA転送を実行する必要がないため、消費電力の削減にもつながる。
【0065】
また、本実施の形態4においては、従来実現されていた一時停止や、中断・再開処理のように停止時のパラメータを保持する必要がなく、かつ、連続して次に予約されているDMA転送を優先的に実行できる。この操作により、中断や停止を行っても、DMAの連続性は保たれる。
また、従来複雑な回路で実現されていた一時停止や中断の処理が、キャンセル命令と再予約とで容易に実現できるため、複雑な制御や、無駄な回路を備える必要がないことから、設計開発期間および検証期間を大幅に短縮することができる。
【0066】
(実施の形態5)
以下、実施の形態5におけるDMAコントローラについて説明する。
まず、図7、図8を用いて、本実施の形態5における、DMAコントローラ及びそのDMAコントローラを有するシステムの構成を説明する。
図7は、実施の形態5におけるDMAコントローラ(データ転送制御部)を有するシステム構成図であり、図8は、実施の形態5におけるデータ転送制御部内のデータ転送要求受信部の構成を示した図である。
【0067】
図7において、本実施の形態5におけるシステムは、DMAコントローラであるデータ転送制御部501と、メインメモリ510と、プロセッサ511と、ローカルメモリ512と、ローカルバス、DMAバスとで構成されている。
前記プロセッサ511は、データ転送制御部501をはじめ、システム全体をコントロールするものであり、また該データ転送制御部501に対してDMA転送要求を発行するものである。
また、メインメモリ510は、各種データを格納するものであり、ローカルメモリ512は、プロセッサ511のローカルバスに接続されたローカルメモリ群である。
【0068】
また、前記データ転送制御部(DMAコントローラ)501は、データ転送要求受信部502と、メモリーインターフェース部503と、データ入出力部504と、DMAパラメータメモリ505と、起動信号受信部506とを備えるものである。
データ転送要求受信部502は、プロセッサ511からのDMA転送要求を受け付けるものであり、ローカルバスとDMA要求関連の信号線とによって、プロセッサ511に接続されている。以下、図8を用いてその構成について詳細に説明する。
【0069】
図8において、データ転送要求受信部502は、優先レベル解読部601と、セレクタ602と、予約レジスタ610と、ローカルバスとで構成される。
優先レベル解読部601は、入力されたデータ転送要求の優先レベルを解読し、格納すべきレジスタを確定するものである。
予約レジスタ610は、優先レベル1予約レジスタ611〜優先レベル3予約レジスタ613からなり、個々の優先レベル予約レジスタ611〜613は、転送相手種別情報(リソース情報)が格納される設定レジスタと、ポインタレジスタとからなる。ここでは、前記設定レジスタが、各優先レベル予約レジスタ611〜613に3つずつ備えられている。
【0070】
前記ポインタレジスタは、予約ポインタとリードポインタとからなり、予約ポインタ621〜623は、各優先レベル予約レジスタ611〜613内で次に設定すべき設定レジスタを選択するものであり、リードポインタ631〜633は、各優先レベル予約レジスタ611〜613内で次に実行されるべき設定レジスタを選択するものである。
【0071】
また、図8に示すように、プロセッサ511は、ローカルバスにより、データ転送要求受信部502内の各優先レベル予約レジスタ611〜613に接続されており、それぞれの優先レベル予約レジスタ611〜613内の複数の設定レジスタと、ポインタレジスタとに、直接データを読み書きできるようになっている。
【0072】
図8において、各優先レベル予約レジスタ611〜613に予約が入ると、各優先レベル予約レジスタに対応した、予約flag1〜flag3が立つようになっている。また、この予約flagは論理和をとられ、データ転送要求受信部502に予約があることを示す予約フラグとして、メモリーインタフェース部503に出力される。
【0073】
セレクタ602は、個々の優先レベル予約レジスタ611〜613から出力される転送相手種別情報を選択するセレクタで、その各優先レベル予約レジスタから出力される予約flag1〜予約flag3の状態によって、選択先が変わるようになっている。例えば、予約flag1が“1”の場合は、優先レベル1予約レジスタ611の出力を選択し、予約flag1が“0”で且つ予約flag2が“1”の場合は、優先レベル2予約レジスタ612の出力が選択される。また、予約flag1と予約flag2とが共に“0”で、予約flag3が“1”の場合は、優先レベル3予約レジスタ613の出力が選択されるようになっている。つまり、ここでの優先度は、優先レベル1>優先レベル2>優先レベル3の順であることを示している。
【0074】
次に、図7及び図8を用いて、実施の形態5のシステムにおける、DMAコントローラ(データ転送制御部)501の動作について説明する。
まず、プロセッサ511は、ローカルバスにより、DMAパラメータメモリ505に、DMA転送実行に必要なパラメータ、例えば、リード/ライト情報、バイト/ワードなどのアクセス単位情報、連続アクセスか、矩形アクセスか、リングポインタアクセスかなどを示すアクセス情報、およびスタートアドレス等の各種アドレス情報や、転送個数などをあらかじめ格納しておく。
【0075】
プロセッサ511は、データ転送制御部501(DMAコントローラ)起動の前準備として、即座に実行したいDMA命令を、あらかじめデータ転送要求受信部502へ予約しておく。このとき、予約フラグがメモリーインターフェース部503に出力される。なお、前記DMA転送要求の予約は、DMA転送要求信号、またはローカルバスにより、プロセッサ511から予約レジスタ610に直接書き込むことによって行われる。
実施の形態1で説明したように、プロセッサ511が起動信号受信部506へ起動命令を発行すると、データ転送制御部501はDMA転送動作を開始することになる。
【0076】
DMA転送動作が開始されると、まず、メモリーインターフェース部503は、予約フラグが有効になっていることから、データ転送要求受信部502に対して予約チェック信号を発行する。
すると、データ転送要求受信部502は、図8に示す優先レベル1予約レジスタ611の第1の設定レジスタに格納されているDMA転送予約1−1を、メモリーインターフェース部503によって実行に移す。
この予約1−1のDMA転送実行の最中に、既に予約した優先レベル2予約レジスタ612内の第1の設定レジスタに格納されている予約2−1を、優先レベル3にレベルを変更したい場合が生じたとする。
【0077】
この場合、まずプロセッサ511は、ローカルバスを通じて予約レジスタ610の現在の状態を読み出す。今、優先レベル1予約レジスタ611内の予約1−1が実行中であるため、優先レベル1予約レジスタ611では、予約ポインタ621とリードポインタ631とが同じ位置を示している。また、優先レベル2予約レジスタ612においては、2つの予約がされているが未実行であるため、予約ポインタ622は第3の設定レジスタを、リードポインタ632は、第1の設定レジスタを選択している。さらに、優先レベル3予約レジスタは613においては、1つの予約がされているが未実行であるため、予約ポインタ623は第2の設定レジスタを、リードポインタ632は第1の設定レジスタを選択している。また、優先レベル2予約レジスタ612の第1の設定レジスタには、予約2−1が設定されている。
【0078】
そして、前記予約2−1を、優先レベル3にレベルを変更するため、プロセッサ511は、優先レベル2予約レジスタ612のリードポインタ632を第1の設定レジスタから第2の設定レジスタを選択するように書きかえる。これにより、優先レベル2予約レジスタ612内の第1の設定レジスタに格納されている予約2−1がキャンセルされたことになる。さらに、優先レベル3に予約2−1を予約するために、優先レベル3予約レジスタ613内の第2の設定レジスタに、予約2−1が示す転送相手種別情報を書きこむ。その後、予約ポインタ623を第3の設定レジスタを選択するように変更する。
【0079】
以上の説明では、本システムが転送要求発行元であるプロセッサが1つである場合について説明したが、実施の形態2のように本システムが複数のDMA転送要求発行元を備える場合は、図9,図10に示すように、メインプロセッサ911とデータ転送要求受信部502とをローカルバスによって接続させ、メインプロセッサ911が予約レジスタ610を自由に読み書きできるようにし、さらにデータ転送要求受信部502の前段に予約手段820を付加することで、同様に処理実行することができる。
【0080】
このように、本実施の形態5では、プロセッサと予約レジスタとをローカルバスで接続し、プロセッサが予約レジスタを自由に読み書きできるようにしたので、既に予約してしまったDMA要求を自由にキャンセルしたり、優先レベルを入れ替えたり、優先レベル内の順番を入れ替えたりすることが可能となる。
【0081】
これにより、プロセッサのプログラマビリティ(プログラム設計自由度)が向上し、複数開発者によるプログラム設計を容易とするほか、システム動作上発生する、さまざまなエラー処理やアプリケーション要求等にも、柔軟に対応できることになる。
なお、本実施の形態で5においては、優先レベル数と、各優先レベルの設定レジスタ数は3としたが、任意の数でもよい。
また、ここでは、予約の入れ替えの一実施例について述べたが、同様にして、一度実行したDMA予約を復活させることも可能である。
【0082】
(実施の形態6)
以下、実施の形態6におけるDMAコントローラについて説明する。
まず、図1及び図11を用いて、本実施の形態6における、DMAコントローラ及びそのDMAコントローラを有するシステムの構成を説明する。
図11は、実施の形態6におけるDMAコントローラ(データ転送制御部)内のデータ転送要求受信部の構成を示している。
図11において、データ転送要求受信部102bは、優先レベル解読部701と、予約レジスタ710と、セレクタ702とを備え、前記予約レジスタ710内の各優先レベル予約レジスタ711〜713は、設定レジスタと、予約タイマーとを備えている。
なお、本実施の形態6におけるDMAコントローラ及びそのDMAコントローラを有するシステムのそのほかの構成は、実施の形態1と同様であるため、説明を省略する。
【0083】
次に、図1及び図11を用いて、実施の形態6のシステムにおけるDMAコントローラ(データ転送制御部)101の動作を説明する。
今、図1におけるシステムは起動状態にあり、プロセッサ111はデータ転送制御部101に対して起動命令を発行済みであるとする。そして、さらにデータ転送制御部101は、優先レベル1予約レジスタ711の予約1のDMA転送を実行中で、優先レベル2予約レジスタ712、及び優先レベル3予約レジスタ713の設定レジスタには、予約2及び予約3のDMA転送が予約されているとする。
【0084】
ここで、新たにプロセッサ111が、データ転送要求受信部102bに対してDMA転送要求を発行したとする。このDMA転送要求には、優先レベル、転送相手種別情報、及び実行までのサイクル数である実行タイミング情報が含まれる。
今、プロセッサ111より、優先レベル1予約レジスタ711に対して、転送相手種別情報としてリソースB、予約タイマー1に実行タイミング情報として1000サイクルが指定されたとする。
データ転送要求受信部102bは前記DMA転送要求を受信すると、優先レベル解読部701により、優先レベル1予約レジスタ711が選択され、優先レベル1予約レジスタ711の設定レジスタには転送相手種別情報リソースBを、予約タイマー1には実行タイミング情報1000サイクルを設定する。設定後、予約タイマー1は1000サイクル後までカウントダウンを開始し、その間優先レベル1予約レジスタ711内のリソースBの予約は実行されない。従って、予約flag1は“0”のままであり、1000サイクル後“1”となる。
【0085】
実行中であった予約1のローカルメモリCとメインメモリ110とのDMA転送が終了すると、予約flag1は“0”、予約flag2が“1”となるので、次のDMA転送として、優先レベル2予約レジスタ712に設定されている、予約2のリソースBとのDMA転送を実行することになる。
【0086】
予約2のリソースBとのDMA転送が終了した時点で、予約タイマー1のカウントが終了していない場合、予約flag1,予約flag2が“0”、予約flag3が“1”であるため、優先レベル3予約レジスタ713に設定されている予約3のリソースAとのDMA転送が実行される。
そして、予約3のDMA転送実行中に、予約タイマー1が1000サイクルカウントが終了したとすると、その時点で予約flag1が“1”となり、予約3のリソースAとのDMA転送が終了後に、優先レベル1に予約されていたリソースBとのDMA転送が実行に移されることとなる。
【0087】
なお、以上に説明した本実施の形態6のDMA転送処理は、実施の形態2のように前記DMA転送要求元が複数である場合であっても、図12に示すように、予備予約手段830内の各DMA転送要求発行元毎の予備予約レジスタ831,832が備えるレジスタに、実行タイミング情報を保持できる実行タイミングレジスタを追加することで適応できる。
【0088】
このように、本実施の形態6では、データ転送要求受信部102bに予約したDMA転送の実行タイミングとして、予約してからのサイクル数を指定し、その指定時間経過後に該DMA転送が実行されるようにしたので、時間遅延されたDMA転送を容易に実行することができる。このことにより、例えば、プロセッサのプログラム開発において、DMA転送の発行制御を行うモジュールの作成と、DMA転送を意識しない処理モジュールの作成とに分けての設計が容易となる。これにより、プロセッサの開発容易性が増し、開発効率の向上、開発期間の短縮、プログラムステップ数の削減が可能となる。
【0089】
(実施の形態7)
以下、実施の形態7におけるDMAコントローラについて説明する。
まず、図1及び図13を用いて、本実施の形態7における、DMAコントローラ及びそのDMAコントローラを有するシステムの構成を説明する。
図13は、実施の形態7におけるDMAコントローラ(データ転送制御部)内のデータ転送要求受信部の構成を示している。
【0090】
図13において、データ転送要求受信部102cは、優先レベル解読部1301と、予約レジスタ1310と、セレクタ1302とを備え、前記予約レジスタ1310内の各優先レベル予約レジスタ1311〜1313は、転送相手種別情報を格納する設定レジスタと、予約レジスタ1310に入力されている予め決められたタイミング信号を、実行タイミングとして使用するか、しないかを指定するタイミング指定レジスタと、を備えている。
なお、本実施の形態7におけるDMAコントローラ及びそのDMAコントローラを有するシステムのそのほかの構成は、実施の形態1と同様であるため、説明を省略する。
【0091】
次に、図1及び図13を用いて、実施の形態7のシステムにおけるDMAコントローラ(データ転送制御部)101の動作を説明する。
今、図1におけるシステムは起動状態にあり、プロセッサ111はデータ転送制御部101に対して起動命令を発行済みであるとする。
今、プロセッサ111から、優先レベル1、転送相手種別情報がリソースC、且つ実行タイミング情報が実行タイミング指定あり、のDMA転送要求が発行されたとする。なお、ここでの実行タイミングに使用される予め決められたタイミング信号を、例えばビデオ入力の水平同期信号とする。
【0092】
以上のようなDMA転送要求を受信したデータ転送要求受信部102cは、優先レベル解読部1301により、優先レベル1予約レジスタ1311が選択される。そして、該優先レベル1予約レジスタ1311の設定レジスタには転送相手種別情報としてリソースCが、またタイミング指定レジスタ1には“1”のフラグが設定される。設定後、実行タイミングがくるまで、優先レベル1予約レジスタ1311内のリソースCの予約は実行されない。従って、予約flagは“0”のままであり、実行タイミングがくると、“1”となる。
次に、プロセッサ111は、優先レベル2、転送相手種別情報がリソースB、実行タイミング情報が実行タミング指定なし、のDMA転送要求を、そして、優先レベル3、転送相手種別情報がリソースA、実行タイミング情報が実行タミング指定なし、のDMA転送要求を、次々に指定する。
【0093】
以上のようなDMA転送要求を受信したデータ転送要求受信部102cは、それぞれを優先レベル2予約レジスタ1312、優先レベル3予約レジスタ1313に設定し、まず、優先レベル2予約レジスタ1312に設定されたリソースBのDMA転送を実行に移す。
この直後、タイミング信号が入力されたとする。今、優先レベル1予約レジスタ1311に設定された予約1は、タイミング指定1レジスタにより、実行タイミング指定されているため、前記タイミング信号が入力されたタイミングで、予約flag1が“1”となり、この時点でDMA転送予約が有効となる。
従って、今実行中のリソースBのDMA転送が終了すると、優先レベル1予約レジスタ1311の予約flag1が“1”であるため、優先レベル1予約レジスタ1311に設定されたリソースCのDMA転送が実行へと移される。
【0094】
以上の説明では、前記実行タイミング情報が、予約レジスタに入力している予め決められたタイミング信号(ここではビデオ入力の水平同期信号)をDMA転送要求の実行タイミングとして使用するか、しないかを指定するものとしたが、該実行タイミング信号が、予約レジスタに入力している複数のタイミング信号の内、DMA転送要求の実行タイミングとして使用するタイミング信号の種類を指定するものであってもよい。
【0095】
この場合、図14に示すように、データ転送要求受信部102d内の予約レジスタ1410には複数のタイミング信号が入力され、各優先レベル予約レジスタ1411〜1413に備えられたタイミング種類レジスタに設定する値によって、どのタイミング信号を実行タイミングとして使用するかを選択するようにする。例えば、タイミング種類レジスタ1に“0”を設定すると、ビデオ入力の水平同期信号を選択し、“1”を設定すると、ビデオ入力の垂直同期信号を選択するなどのようにする。
【0096】
また、以上に説明したように本実施の形態7のDMA転送処理は、実施の形態2のように前記DMA転送要求元が複数である場合にも適応可能である。この場合、実施の形態6の図12と同様、予備予約手段830内の各予備予約レジスタ831,832に、あらたにDMA転送要求の情報に追加された実行タイミング情報(タイミング指定、またはタイミング種類)を保持する実行タイミングレジスタを付加することにより実現できる。
【0097】
このように、本実施の形態7によれば、データ転送要求受信部に予約されたDMA転送の実行を、該データ転送要求受信部の予約レジスタに入力されている特定のタイミング信号を指定し、該指定した信号が入力されるタイミングを利用して行えるようにしたので、データ転送要求発行元であるプロセッサがDMA転送要求を発行するタイミングを考慮することなく、データ転送要求受信部に予約を行うことができる。このことにより、プロセッサのプログラム開発の自由度が増し、開発にかかる負担を大幅に削減することができ、開発期間の短縮に大きく寄与できる。
【0098】
また、DMA転送の実行タイミングを指定するタイミング信号を複数の信号から選択できるようにすることで、実行タイミングを指定する自由度が増し、プロセッサのプログラム開発の自由度、開発の容易性が向上する。
なお、本実施の形態では、説明上優先レベル数は3、また各優先レベル予約レジスタの設定レジスタ数は1であったが、任意の数であってよい。
【0099】
さらに、上記DMA転送要求に含まれる実行タイミング情報として、実施の形態6において説明したDMA転送実行までのサイクル数と、本実施の形態7で説明したタイミング信号を使用するかしないかを指定するものを組み合わせ、DMA転送要求の情報にサイクル数が含まれていれば、予約レジスタ内の予約タイマーで該サイクル数をカウントし、タイミング信号の使用を指定する情報が含まれていれば、該タイミング信号のタイミングに従って、DMA転送を実行するようにしてもよい。
【0100】
(実施の形態8)
以下、実施の形態8におけるDMAコントローラについて説明する。
まず、図1及び図15を用いて、本実施の形態8における、DMAコントローラ及びそのDMAコントローラを有するシステムの構成を説明する。
図15は、実施の形態8におけるDMAコントローラ(データ転送制御部)内のデータ転送要求受信部の構成を示している。
本実施の形態8においては、プロセッサ111からの前記データ転送要求に、実施の形態7で説明したタイミング信号指定の有無、あるいはタイミング信号の種類指定である実行タイミング情報に加え、DMA転送実行の繰り返し回数をあらわすリピート情報がさらに含まれているものである。
【0101】
この場合、図15に示すように、データ転送予約受信部102eの各優先レベル予約レジスタ1511〜1513に、転送相手種別情報を格納する設定レジスタ、実行タイミングとして使用するタイミング信号の種類を示す実行タイミング情報を格納するタイミング種類レジスタに加えて、このDMA転送要求の実行回数を格納するリピート回数設定レジスタ、及び該リピート回数設定レジスタに設定した実行回数をカウントするリピート回数カウンタと、を備えるようにする。なお、本実施の形態8におけるDMAコントローラ及びそのDMAコントローラを有するシステムのそのほかの構成は、実施の形態1と同様であるため、説明を省略する。
【0102】
次に、図1及び図15を用いて、本実施の形態8のシステムにおけるDMAコントローラ(データ転送制御部)101の動作を説明する。
今、プロセッサ111から、優先レベル1予約レジスタ1511に、DMA転送要求と共に、実行タイミング情報としてタイミング種類レジスタ1にビデオ出力の垂直同期信号を選択するように“3”が設定され、且つリピート回数設定レジスタ1に実行回数“2”が指定されたとする。このとき、リピート回数カウンタ1の初期値は、リピート回数設定レジスタ1に設定された値となる。優先レベル1予約レジスタ1511の予約flag1は、最初“0”であるが、ビデオ出力の垂直同期信号の立下りエッジ(垂直ブランキング開始)のタイミングで、予約flag1が“1”となり、現在実行中のDMA転送が終了すると、優先レベル1予約レジスタ1511に設定されたDMA転送が実行に移され、それと共にリピート回数カウンタ1がカウントダウンされ“1”となる。そして、このDMA転送が終了後もまだ予約flag1は“1”のままであり、再び優先レベル1予約レジスタ1511に設定された同じDMA転送が実行に移されると、リピート回数カウンタ1がカウントダウンされ“0”となる。同時に、予約flag1は“0”となり、予約が入っていないことを示すようになる。なお、本実施の形態では、リピート回数設定レジスタとリピートカウンタとを備え、前記リピート回数設定レジスタに設定されたリピート回数を前記リピートカウンタでカウントしていくようにしているが、リピートカウンタのみ備え、該リピートカウンタにリピート回数を設定してカウントするものであってもよい。
【0103】
また、以上に説明した本実施の形態8のDMA転送処理は、実施の形態2のように前記DMA転送要求元が複数である場合にも適応可能である。この場合、図16に示すように、予備予約手段840内の各予備予約レジスタ841,842に、あらたにDMA転送要求の情報に追加された実行タイミング情報(タイミング指定、タイミング種類)を保持する実行タイミングレジスタと、リピート回数情報(リピート回数)を保持するリピート回数レジスタを付加することにより実現できる。
【0104】
このように、本実施の形態8によれば、リピート回数を指定するようにして、同一種類のDMA転送要求をデータ転送要求発行元であるプロセッサより複数回数要求する必要がなくなるため、要求発行を簡略化することができる。これにより、プロセッサのハードウェア設計や、プロセッサのプログラム等のソフトウェア設計を容易化することができ、開発の負担を軽減できるほか、開発の容易性を向上することができる。
なお、本実施の形態では、説明上優先レベル数は3、また各優先レベル予約レジスタの設定レジスタ数は1であったが、任意の数であってよい。
【0105】
(実施の形態9)
以下、実施の形態9におけるDMAコントローラについて説明する。
図17は、実施の形態9におけるDMAパラメータメモリ内のデータ配置を示している。
【0106】
図17において、DMAパラメータメモリの前半部分は、転送相手先毎にDMA転送に必要なパラメータをまとめていることを表している。例えば、リソースAパラメータ領域において、アクセスパターン指定パラメータ情報は、転送相手先とのDMA転送におけるメインメモリへのアクセスパターンを表す情報が格納される。リード/ライト情報は、メインメモリからの読み出しか、メインメモリへの書きこみかを表す。アクセス単位情報は、メインメモリへバイト単位でアクセスするか、ワード単位でアクセスするかを表す情報である。また、基本的な連続アクセスを行うために、転送開始アドレスを表すスタートアドレスと、転送個数が格納されるようになっている。
【0107】
後半部分は、アクセスパターン毎に必要なパラメータが格納される。ここでは、例えば、3種類のアクセスパターンがあり、1つ目は、矩形領域へのアクセスパターン、2つ目は、リングバッファ1領域用、3つ目は、リングバッファ2領域用である。
矩形領域へのアクセスパターンには、スタートアドレスと、縦方向および横方向のアクセス個数が格納される。
【0108】
リングバッファ1領域用には、リングバッファを形成する際の領域先頭アドレス、領域終了アドレスと、DMA転送開始アドレスであるスタートアドレスおよび転送個数が格納される。
高機能リングバッファであるリングバッファ2領域用には、領域先頭アドレス、領域終了アドレスに加え、ライト時のスタートアドレスと転送個数、リード時のスタートアドレスと転送個数がそれぞれ格納される。
【0109】
以上のように、転送相手毎とアクセスパターン毎に各パラメータが、まとまったアドレス領域に格納されている。
なお、本実施の形態9におけるDMAコントローラ及びそのDMAコントローラを有するシステムの構成は、実施の形態1と同様であるため、説明を省略する。
【0110】
次に、図1、図2、図17を用いて、本実施の形態9のシステムにおけるDMAコントローラ(データ転送制御部)101の動作について説明する。
プロセッサ111は、ローカルバスを用いて、DMAパラメータメモリ105にDMA転送に必要なパラメータを格納しておく。例えば、図17に示すように、リソースA〜リソースCのパラメータ領域に、アクセスパターン情報や、リード/ライト情報、アクセス単位情報と、基本アクセスパターン(連続アクセス)時のスタートアドレスと転送個数とを格納する。このように、リソース毎にまとめているため、プロセッサ111はローカルバス上で連続アドレスアクセスでパラメータを設定できる。
さらに、アクセスパターン毎に必要な情報を、矩形領域アクセス、リングバッファ1、リングバッファ2毎に格納する。このようにアクセスパターン毎にまとめておくと、CPUは関連する情報をローカルバス上で連続アドレスアクセスできる。
【0111】
プロセッサ111が、必要なDMA転送要求をデータ転送要求受信部102に発行すると、図2に示すようにそれぞれの優先レベル予約レジスタにDMA転送要求が予約される。
データ転送制御部101内の起動信号受信部106に起動命令が発行されると、実施の形態1において述べたように、優先レベルの高い予約レジスタから順にDMA転送が実行に移される。
ここでは、最初に優先レベル1予約レジスタ211に設定されているリソースCとメインメモリ110とのDMA転送が実行される。
【0112】
データ転送制御部101によって、メモリーインターフェース部103にDMA種別情報を転送されると、メモリーインターフェース部103は、リソースCに関するDMA転送であることを知る。これにより、DMAパラメータメモリ105からリソースCに関する情報をまとめて読み出す。読み出したパラメータより、リソースCに関するDMA転送は、アクセスパターンが連続アクセスであって、メインメモリ110へのライト動作で、ワード転送であることを知る。また、アクセスパターンが連続アクセスであるため、そのままスタートアドレス$3F00(16進)、転送個数88個を用いて、リソースCからメインメモリ110へのDMAライト転送を実行する。
【0113】
リソースCとのDMA転送が終了すると、終了アドレスを再びDMAパラメータメモリ105内のリソースCスタートアドレス部に書き戻す。同時に、優先レベル2のリソースBとのDMA転送が実行に移される。
メモリーインターフェース部103は、DMA種別情報よりリソースBの転送であることを知る。これより、DMAパラメータメモリ105内のリソースBに関する情報が格納されている領域から、データを連続で読み出す。読み出したパラメータより、リソースBに関するDMA転送は、アクセスパターンが矩形領域アクセスであって、メインメモリ110からのリード動作で、バイト単位でデータを転送するものであることを知る。ここで、アクセスパターンが矩形領域アクセスであるため、メモリーインターフェース部103は、再びDMAパラメータメモリ105内の矩形領域アクセスに関する情報が格納されている領域から、データを連続で読み出す。これにより、矩形アクセスする領域の先頭アドレスが$1000(16進)であり、横方向アクセス個数が16個、縦方向アクセス個数が16個の転送であることがわかる。これらを用いて、メインメモリ110からリソースBへ、$1000を始点とする16×16の矩形領域のDMAリード転送が実行される。
【0114】
リソースBのDMA転送が終了すると、以下同様にして優先レベル3であるリソースAのリングバッファ2のDMAライト転送がバイト単位で実行される。
なお、本実施の形態9のDMA転送処理は、実施の形態2のように前記DMA転送要求元が複数である場合にも適応可能である。
【0115】
このように、本実施の形態9では、各リソース毎にDMA転送に必要なパラメータをアドレス領域でまとめたことで、DMAパラメータメモリは1つでも、複数のリソースに関する情報を連続に設定し、取り出すことができる。
また、本実施の形態9では、各リソース毎にアクセスパターン情報を備えたことにより、複数のアクセスパターンを用いて、メインメモリにアクセスすることが可能となる。
さらに、本実施の形態9では、リード/ライト情報、アクセス単位情報をパラメータメモリに持つことにより、DMA転送要求時に指定する必要がなく、DMA転送命令を簡略化でき、これによりプロセッサのプログラムコードを簡略化できる。
【0116】
また、本実施の形態9では、スタートアドレス情報と転送個数をアクセスパターン毎に持つことにより、アクセスパターンによってスタートアドレスや転送個数を固定することが可能となる。これにより、リソース毎のアクセスパターンが変化するたびに、アクセススタートアドレスを指定する必要がなくなる。また、アクセスパターンもパラメータを格納するアドレス領域をまとめることで、連続で設定し取り出せるようになる。これらの結果、プロセッサのプログラムが簡単になり、回路制御も簡単になることから、開発期間の短縮に大きく寄与することになる。
なお、本実施の形態9の図17に示すメモリの格納方法および、パラメータの種類、値は一例であり、この限りではない。
【0117】
(実施の形態10)
以下、実施の形態10におけるDMAコントローラについて説明する。
まず、図18を用いて、本実施の形態10におけるDMAコントローラ及びそのDMAコントローラを有するシステムの構成を説明する。
図18は、実施の形態10における、DMAコントローラを有するシステム構成を表している。
【0118】
図18において、実施の形態10におけるシステムは、DMAコントローラであるデータ転送制御部1001と、プロセッサ1011と、メインメモリ1012と、ローカルメモリ1013と、ローカルバスと、DMAバスとで構成されている。
前記プロセッサ1011は、データ転送制御部1001をはじめシステム全体をコントロールするものであり、また該データ転送制御部1001に対してDMA転送要求を発行するものである。
メインメモリ1012は、各種データを格納するためのメインメモリであり、ローカルメモリ1013は、プロセッサ1011のローカルバスに接続されたローカルメモリ群である。
【0119】
前記データ転送制御部(DMAコントローラ)1001は、データ転送要求受信部1002と、メモリーインターフェース部1003と、データ入出力部1004と、DMAパラメータメモリ1005と、起動信号受信部1006と、クロック制御部1007と、メモリクロック制御レジスタ1008と、クロック供給・停止部1009,1010とを備える。
クロック制御部1007は、起動信号受信部1006から動作イネーブルが発行され、且つデータ転送要求受信部1002にDMA転送予約が蓄積されている場合のみクロックイネーブルを出力する。
【0120】
メモリクロック制御レジスタ1008は、DMAパラメータメモリ用に特別に設けられたメモリクロック制御用レジスタで、DMAパラメータメモリ1005へクロックを強制的に供給するかどうかを制御するものである。
また、クロック供給・停止部1009,1010は、DMAパラメータメモリ1005、メモリインターフェース部1003、データ入出力部1004及びメインメモリ1012に対するクロックの供給及び停止を制御するものである。前記クロック供給・停止部1009は、例えばANDゲートのようなもので構成され、クロック制御部1007により制御されるものであり、これが出力するクロックによって、メモリーインターフェース部1003、データ入出力部1004及びメインメモリ1012が動作する。さらに、前記クロック供給・停止部1010は、例えばORとAND等で作られた複合ゲートで構成され、メモリクロック制御レジスタ1008またはクロック制御部1007により制御される。そして、これが出力するクロックによって、DMAパラメータメモリ1005が動作する。
なお、本実施の形態10におけるデータ転送制御部1001内のデータ転送要求受信部1002の構成は、実施の形態1と同様であるため、説明を省略する。
【0121】
次に、図18及び図2を用いて、本実施の形態10のシステムにおける、DMAコントローラ(データ転送制御部)1001の動作を説明する。
まず、プロセッサ1011は、ローカルバスを用いてメモリクロック制御レジスタ1008に“1”を書きこみメモリクロックを有効とする。これにより、DMAパラメータメモリ1005へクロックが強制的に供給される。その後、プロセッサ1011は、DMA転送に必要なパラメータをあらかじめDMAパラメータメモリ1005へと格納し、再びメモリクロック制御レジスタ1008を“0”とし、クロックを停止させておく。そして、初期転送に必要なDMA転送要求をデータ転送要求受信部1002へと発行し、予約する。ここで、図2に示すように3つのDMA転送の予約がなされたとする。
【0122】
システムが起動されると、プロセッサ1011は起動信号受信部1006へ起動命令を発行する。起動命令を受信した起動信号受信部1006は、メモリーインターフェース部1003および、クロック制御部1007に動作イネーブルを発行する。クロック制御部1007には、動作イネーブルと予約フラグが入力されており、これらが共に有効である場合に、クロックイネーブルを有効とする動作をする。前記クロック制御部1007から出力されるクロックイネーブルは、クロック供給・停止部1009,1010に入力されており、クロックイネーブルが有効な期間のみ、メインメモリ1012、メモリーインターフェース部1003、データ入出力部1004、DMAパラメータメモリ1005へクロックが供給されるように、前記クロック供給・停止部1009,1010で制御する。
【0123】
図2に示す3つの予約が優先レベル順に実行され、おのおののDMA転送において、データをメインメモリ1012へ書き込み終了、またはデータを各ローカルメモリ1013へ書き込み終了すると、データ入出力部1004はメモリーインターフェース部1003にその旨を知らせ、メモリーインターフェース部1003は、転送終了信号をクロック制御部1007へと出力する。また、予約フラグは、データ転送要求受信部1002に予約がなくなると、“0”となる。前記クロック制御部1007は、メモリーインターフェース部1003から転送終了信号を受け、データ転送要求受信部1002からの予約フラグが“0”になったタイミングで、クロックイネーブルを“0”にして、クロック供給・停止部1009,1010に対して出力する。前記クロックイネーブル信号を受信したクロック供給・停止部1009,1010は、メインメモリ1012、メモリーインターフェース部1003、データ入出力部1004、DMAパラメータメモリ1005へのクロック供給を停止する。
なお、以上に説明した本実施の形態10のDMA転送処理は、実施の形態2のように前記DMA転送要求発行元が複数である場合にも適応可能である。
【0124】
このように、本実施の形態10では、データ転送にかかわる制御ブロックと、メインメモリのクロックを、必要最低限の期間のみ、自動的に供給・停止するようにしたので、効率よく電力を制御でき、低消費電力を実現するシステムを得ることができる。
また、本実施の形態10では、DMA転送命令を発行するたびに、プロセッサのプログラムがクロック制御を行う必要がないため、プログラムが複雑とならず、さらには、プログラムステップ数を削減することができる。
【0125】
(実施の形態11)
以下、実施の形態11におけるDMAコントローラについて説明する。
まず、図19を用いて、本実施の形態11におけるDMAコントローラ及びそのDMAコントローラを有するシステムの構成を説明する。
図19は、実施の形態11におけるDMAコントローラ(データ転送制御部)を有するシステム構成図である。
【0126】
図19において、本システムは、DMAコントローラであるデータ転送制御部1101と、メインメモリ1120と、プロセッサ1121と、ローカルメモリ1123と、ローカルバスと、DMAバスとで構成される。
メインメモリ1120は各種データを格納するメモリであって、SRAMで構成されている。また、このSRAMは、リニアなアドレス領域を4バンクに物理的に分割されており、それぞれに独立したクロックが入力されている。
【0127】
プロセッサ1121は、DMAコントローラ1101をはじめ、システム全体をコントロールするものであり、また該データ転送制御部1101に対してDMA転送要求を発行するものである。
ローカルメモリ1123は、プロセッサ1121にローカルバスによって接続されたローカルメモリ群である。
【0128】
また、前記データ転送制御部(DMAコントローラ)1101は、データ転送要求受信部1102と、メモリーインターフェース部1103と、データ入出力部1104と、DMAパラメータメモリ1105と、起動信号受信部1106と、クロック制御部1107と、メモリクロック制御レジスタ1108と、クロック供給・停止部1109,1110と、メインメモリクロック供給・停止部1111とを備えるものである。
【0129】
クロック制御部1107は、起動信号受信部1106から動作イネーブルが発行され、且つデータ転送要求受信部1102にDMA転送予約が蓄積されている場合のみクロックイネーブルを出力するものである。
メモリクロック制御用レジスタ1108は、DMAパラメータメモリ1105用に特別に設けられたもので、DMAパラメータメモリ1105へクロックを強制的に供給するかどうかを制御するものである。
【0130】
また、メモリーインターフェース部1103、データ入出力部1104及びメインメモリクロック供給・停止部1111は、クロック供給・停止部1109の出力するクロックによって動作するようになっており、前記クロック供給・停止部1109は例えばANDゲートで構成されている。さらに、DMAパラメータメモリ1105は、クロック供給・停止部1110の出力するクロックによって動作するようになっており、該クロック供給・停止部1110は、メモリクロック制御レジスタ1108またはクロック制御部1107により制御されるものであり、例えば、メモリクロック制御レジスタ1108の出力と、クロックイネーブルとのORと、該ORの出力とクロックとのANDで作られた複合ゲートで構成されているものである。
【0131】
メインメモリクロック供給・停止部1111は、メインメモリ1120であるSRAM0〜SRAM3へそれぞれ独立したクロックclkram0〜clkram3を供給するため、それぞれのメモリ(SRAM0〜3)に対応したクロック供給・停止部を備えており、該SRAM毎のクロック供給・停止部には、クロック制御部1107からクロックイネーブルが入力され、さらにメモリーインターフェース部1103からメインメモリ1120に対するアドレスの上位2ビットがデコードされ、それらがバンク選択信号として入力される。以下、表1にアドレスの上位2bitとバンク選択信号との関係を記す。
【0132】
【表1】
メインメモリクロック供給・停止部1111の各メモリクロック供給・停止部は、アドレスデコードされたバンク選択信号bank0〜bank3が有効、且つクロック制御部1107からのクロックイネーブルが有効の時のみ、メインメモリ1120内の各SRAMに対してクロックを供給するようになっている。これらのメモリクロック供給・停止部は、例えばANDゲートのようなもので構成されている。
【0133】
なお、本実施の形態11におけるデータ転送制御部1101内のデータ転送要求受信部1102の構成は、実施の形態1と同様であり、また、本実施の形態11におけるDMAパラメータメモリ1105内のデータ配置は、実施の形態9と同様であるため、説明を省略する。
【0134】
次に、図19、図2および図17を用いて、本実施の形態11のシステムにおけるDMAコントローラ(データ転送制御部)1101の動作について説明する。
実施の形態10で説明した動作と同様、まずプロセッサ1121は、ローカルバスを用いてメモリクロック制御レジスタ1108に“1”を書き込み、メモリクロックを有効とする。これにより、DMAパラメータメモリ1105へクロックが強制的に供給される。その後、プロセッサ1121は、DMA転送に必要なパラメータをあらかじめDMAパラメータメモリ1105へと格納し、再びメモリクロック制御レジスタ1108を“0”とし、クロックを停止させておく。そして、初期転送に必要なDMA転送要求をデータ転送要求受信部1102へと発行し、予約する。ここで、図2に示すように3つのDMA転送の予約がなされたとする。
【0135】
システムが起動されると、プロセッサ1121は起動信号受信部1106へ起動命令を発行する。起動命令を受信した起動信号受信部1106は、メモリーインターフェース部1103及びクロック制御部1107に動作イネーブルを発行する。クロック制御部1107には、動作イネーブルと予約フラグとが入力されており、これらが共に有効である場合に、クロックイネーブルを有効とする動作をする。クロックイネーブルは、クロック供給・停止部1109,1110に入力されており、クロックイネーブルが有効な期間のみ、メモリーインターフェース部1103、データ入出力部1104、DMAパラメータメモリ1105へクロックが供給される。
【0136】
今、優先レベル1の予約であるリソースCとメインメモリ1120とのDMA転送が実行されているとし、このときのDMAパラメータが図17に示すようなものであったとすると、アクセスパターンが連続アクセス、スタートアドレスが、$3F00(16進)、転送個数が88個のワード単位でのライト転送となる。
【0137】
メモリーインターフェース部1103は、メインメモリ1120のアクセススタートアドレスの上位2ビットが、“00”であるため、まず、メインメモリクロック供給・停止部1111へ、bank0=1,bank1=0,bank2=0,bank3=0の信号を出力する。メインメモリクロック供給・停止部1111は、クロック制御部1107からのクロックイネーブルと、メモリーインターフェース部1103からのbank0信号とを受けて、SRAM0に対するクロックclkram0のみを供給する。
【0138】
上述した16ワードの転送が終了した時点で、アドレスが$4000(16進)へと変化すると、アドレスの上位2ビットが“10”と変化するため、メモリーインターフェース部1107は、メインメモリクロック供給・停止部1111へ、bank0=0,bank1=1,bank2=0,bank3=0の信号を出力する。メインメモリクロック供給・停止部1111は、クロック制御部1107からのクロックイネーブルと、メモリーインターフェース部1103からのbank1信号とを受けて、SRAM1に対するクロックclkram1のみを供給し、他のSRAM0およびSRAM2、SRAM3へのクロック供給を停止する。
【0139】
このような制御のもと、図2に示す3つの予約が、優先レベル順に実行され、おのおののDMA転送において、データをメインメモリ1120へ書き込み終了、またはデータを各ローカルメモリ1123へ書き込み終了すると、データ入出力部1104は、メモリーインターフェース部1103にその旨を知らせる。メモリーインターフェース部1103は、転送終了信号をクロック制御部1107へと出力し、予約フラグは、データ転送要求受信部1102に予約がなくなると“0”となる。クロック制御部1107は、メモリーインターフェース部1103から転送終了信号を受け、データ転送要求受信部1102からの予約フラグが“0”になったタイミングで、クロックイネーブルを“0”とし、クロック供給・停止部1109,1110に対して出力する。このクロックイネーブル信号を受信したクロック供給・停止部1109,1110は、メモリーインターフェース部1103、データ入出力部1104、DMAパラメータメモリ1105、メインメモリクロック供給・停止部1111へのクロック供給を停止する。
なお、以上に説明した本実施の形態11のDMA転送処理は、実施の形態2のように前記DMA転送要求発行元が複数である場合にも適応可能である。
【0140】
このように、本実施の形態11では、メインメモリを物理的に分割しておき、クロックならびに制御信号を分割したメモリに別々に入力して、使用しないアドレス領域の場合はクロックおよび制御信号を自動的に供給しないことによって、効率的に低消費電力を実現するシステムを得ることができる。
また、本実施の形態11においては、回路が自動的にクロック制御することから、プロセッサのプログラムがクロック制御を行う必要がないため、プログラムが複雑とならず、さらには、プログラムステップ数を削減することができる。
【0141】
(実施の形態12)
以下、実施の形態12におけるDMAコントローラについて説明をする。
まず、図20を用いて、本実施の形態12におけるDMAコントローラ及びそのDMAコントローラを有するシステムの構成を説明する。
図20は、実施の形態12におけるDMAコントローラを有するシステム構成図である。
【0142】
図20において、本システムは、DMAコントローラであるデータ転送制御部1201と、メインメモリ1220と、プロセッサ1221と、ローカルメモリ1223と、ローカルバスと、DMAバスとで構成される。
メインメモリ1220は各種データを格納するためのメインメモリであって、DRAMで構成されている。このDRAMは、リニアなアドレス領域を4バンクに物理的に分割されており、それぞれに独立したクロックが入力されている。
【0143】
プロセッサ1221は、データ転送制御部1201をはじめシステム全体をコントロールするものであり、また該データ転送制御部1201に対してDMA転送要求を発行するものである。
ローカルメモリ1223は前記プロセッサ1221にローカルバスによって接続されたローカルメモリ群である。
【0144】
また、前記データ転送制御部(DMAコントローラ)1201は、データ転送要求受信部1202と、メモリーインターフェース部1203と、データ入出力部1204と、DMAパラメータメモリ1205と、起動信号受信部1206と、クロック制御部1207と、メモリクロック制御レジスタ1208と、クロック供給・停止部1209,1210と、メインメモリバンクレジスタ1211と、メインメモリクロック供給・停止部1212とを備える。
【0145】
クロック制御部1207は、起動信号受信部1206から動作イネーブルが発行され、且つデータ転送要求受信部1202にDMA転送要求の予約が蓄積されている場合のみクロックイネーブルを出力する。メモリクロック制御用レジスタ1208は、DMAパラメータメモリ1205用に特別に設けられたメモリで、DMAパラメータメモリ1205へクロックを強制的に供給するかどうかを制御するものである。
【0146】
また、メモリーインターフェース部1203、データ入出力部1204及びメインメモリ1220は、クロック供給・停止部1209の出力するクロックにより動作するものであり、前記クロック供給・停止部1209は、例えばANDゲートで構成されている。さらに、DMAパラメータメモリ1205は、クロック供給・停止部1210の出力するクロックにより動作するものであり、該クロック供給・停止部1210は、メモリクロック制御レジスタ1208またはクロック制御部1207により制御される。このクロック供給・停止部1210は、例えばメモリクロック制御レジスタ1208の出力とクロックイネーブルとのORと、そのORの出力とクロックとのANDで作られた複合ゲートで構成されるものである。
【0147】
メインメモリバンクレジスタ1211は、メインメモリ1220の4つ分割されたバンクの選択制御をするもので、ローカルバスによってプロセッサ1221に接続されている。このローカルバスによって、使用するバンクの選択、及び使用するバンク以外のDRAMを完全にOFFするか、セルフリフレッシュのみ行うかを設定する。また、メインメモリバンクレジスタ1211は、下位2ビットで設定された0〜3までの値に基づいて、DRAM0〜DRAM3に対応したバンク選択信号bank0〜bank3を出力する。以下、表2に設定値とセルフリフレッシュ設定とバンク選択信号との関係を示す。
【0148】
【表2】
メインメモリクロック供給・停止部1212は、メインメモリ1220であるDRAM0〜DRAM3へそれぞれ独立したクロックclkdram0〜clkdram3を供給するためのクロック供給・停止部であり、例えば、それぞれがANDゲートのようなもので構成されている。
バンク選択信号(bank0〜bank3)及びセルフリフレッシュ制御信号(selfon)は、メモリーインターフェース部1203に入力され、DRAM0〜DRAM3に対する制御信号の選択に使用される。
なお、本実施の形態12におけるデータ転送制御部1201内のデータ転送要求受信部1202の構成は、実施の形態1と同様であるため、説明は省略する。
【0149】
次に、図20および図2を用いて、本実施の形態12のシステムにおける、DMAコントローラ(データ転送制御部)1201の動作について説明する。
実施の形態10で説明した動作と同様、まずプロセッサ1221は、ローカルバスを用いてメモリクロック制御レジスタ1208に“1”を書きこみメモリクロックを有効とする。これにより、DMAパラメータメモリ1205へクロックが強制的に供給される。その後、プロセッサ1221はDMA転送に必要なパラメータをあらかじめDMAパラメータメモリ1205へと格納し、再びメモリクロック制御レジスタ1208を“0”として、クロックを停止させておく。
【0150】
そして、初期転送に必要なDMA転送要求をデータ転送要求受信部1202へと発行し、予約する。ここで、図2に示すように3つのDMA転送の予約がなされたとする。
今、使用したいDRAMの領域が半分までであったとする。プロセッサ1221は、ローカルバスを用いてメインメモリバンクレジスタ1211にセルフリフレッシュOFF設定および、DRAM使用領域2バンクを表す3ビット、“101”を設定する。
【0151】
この後システムが起動されると、プロセッサ1221は起動信号受信部1206へ起動命令を発行する。起動命令を受信した起動信号受信部1206は、メモリーインターフェース部1203、及びクロック制御部1207に動作イネーブルを発行する。クロック制御部1207には、動作イネーブルと予約フラグとが入力されており、これらが共に有効である場合に、クロックイネーブルを有効とする動作をする。クロックイネーブルは、クロック供給・停止部1209,1210に入力されており、クロックイネーブルが有効な期間のみ、メモリーインターフェース部1203、データ入出力部1204、DMAパラメータメモリ1205へクロックが供給される。
【0152】
また、メインメモリクロック供給・停止部1212には、クロック制御部1207からクロックイネーブルが、メインメモリバンクレジスタ1211からバンク選択信号bank0=1、bank1=1,bank2=0,bank3=0が入力されており、選択されたバンク(ここでは、DRAM0とDRAM1)に対して、クロックイネーブルが有効な期間のみクロックclkdram0,clkdram1が供給される。
【0153】
さらに、メモリーインターフェース部1203では、メインメモリバンクレジスタ1211から入力される各制御信号selfon,bank0〜bank3により、各DRAM0〜3に対する制御を行う。selfon信号が”0”の場合、bank信号により選択されたDRAM0、DRAM1以外のDRAM2、DRAM3はOFF状態であり、アクセスは行われず、またリフレッシュさえも行われない。また、選択された各バンクDRAM0、DRAM1に対する制御信号も、メモリーインターフェース部1203にて、アドレスの上位2ビットにより供給がコントロールされる。さらに、通常アクセスと共に、必要に応じてオートリフレッシュが行われる。オートリフレッシュとは、外部から定期的にDRAMに対して実行するリフレッシュコマンドのことで、クロックと共に入力される。
【0154】
この状態で図2に示す3つの予約が優先レベル順に実行され、おのおののDMA転送において、データをメインメモリ1220へ書き込み終了、またはデータを各ローカルメモリ1223へ書き込み終了すると、データ入出力部1204は、メモリーインターフェース部1203にその旨を知らせる。メモリーインターフェース部1203は、転送終了信号をクロック制御部1207へと出力し、予約フラグは、データ転送要求受信部1202に予約がなくなると“0”となる。クロック制御部1207は、メモリーインターフェース部1203から転送終了信号を受け、データ転送要求受信部1202からの予約フラグが“0”になったタイミングで、クロックイネーブルを“0”とし、クロック供給・停止部1209,1210に対して出力する。このクロックイネーブルを受信したクロック供給・停止部1209,1210は、メモリーインターフェース部1203、データ入出力部1204、DMAパラメータメモリ1205へのクロック供給を停止する。さらに、メインメモリクロック供給・停止部1212も、クロック制御部1207からの前記クロックイネーブルを受けて、DRAM0およびDRAM1に対するクロック供給を停止する。
【0155】
次に、最初は全領域にアクセスし、途中で半分の領域に変更したい場合について説明する。
まず、プロセッサ1221は、DMAパラメータメモリ1205への設定、およびDMA転送要求のデータ転送要求受信部1202への予約と共に、ローカルバスを用いてメインメモリバンクレジスタ1211にセルフリフレッシュON設定、且つDRAM使用領域が全領域を表す3ビット、“011”を設定する。
【0156】
この後本システムが起動されると、プロセッサ1221は起動信号受信部1206へ起動命令を発行する。起動命令を受信した起動信号受信部1206は、メモリーインターフェース部1203および、クロック制御部1207に動作イネーブルを発行する。クロック制御部1207には、動作イネーブルと予約フラグとが入力されており、これらが共に有効である場合に、クロックイネーブルを有効にする。また、前記クロックイネーブルは、クロック供給・停止部1209,1210に入力されており、クロックイネーブルが有効な期間のみ、メモリーインターフェース部1203、データ入出力部1204、DMAパラメータメモリ1205へクロックが供給される。
【0157】
また、メインメモリクロック供給・停止部1212には、クロック制御部1207からクロックイネーブルが、メインメモリバンクレジスタ1211からバンク選択信号bank0=1、bank1=1,bank2=1,bank3=1が入力されており、選択されたバンク(ここでは、DRAM0〜DRAM3の全領域)に対して、クロックイネーブルが有効な期間のみクロックclkdram0,clkdram1,clkdram2,clkdram3が供給される。
【0158】
さらに、メモリーインターフェース部1203では、メインメモリバンクレジスタ1211から入力される各制御信号selfon,bank0〜bank3により、各DRAMバンクに対する制御を行う。今、selfon信号が“1”,bank信号が、全バンク有効であるため、全バンク通常動作モードとなり、アクセスと共に、必要に応じてオートリフレッシュが行われる。オートリフレッシュとは、外部から定期的に、DRAMに対して実行するリフレッシュコマンドのことである。
【0159】
また、選択された各バンクに対する制御信号は、メモリーインターフェース部1203にて、アドレスの上位2ビットにより供給がコントロールされる。
この状態で図2に示すようなデータ転送要求受信部に設定された3つの予約が優先レベル順に実行されたとする。おのおののDMA転送において、データをメインメモリ1220へ書き込み終了、またはデータを各ローカルメモリ1223へ書き込み終了すると、データ入出力部1204はメモリーインターフェース部1203にその旨を知らせる。メモリーインターフェース部1203は、転送終了信号をクロック制御部1207へと出力し、予約フラグは、データ転送要求受信部1202に予約がなくなると“0”となる。クロック制御部1207は、メモリーインターフェース部1203から転送終了信号を受け、データ転送要求受信部1202からの予約フラグが“0”になったタイミングで、クロックイネーブルを“0”とし、クロック供給・停止部1209,1210に対して出力する。このクロックイネーブルを受信したクロック供給・停止部1209,1210は、メモリーインターフェース部1203、データ入出力部1204、DMAパラメータメモリ1205へのクロック供給を停止する。さらに、メインメモリクロック供給・停止部1212も、クロック制御部1207からの前記クロックイネーブルを受けて、DRAM0〜DRAM3に対するクロック供給を停止する。
【0160】
このときプロセッサ1221が、この後しばらくメインメモリ1220内の半分の領域しか使用しないと判断した場合、プロセッサ1221は、ローカルバスを通じて、メインメモリバンクレジスタ1211に、セルフリフレッシュON設定、及びDRAM使用領域2バンク(ここではDRAM0,DRAM1)を表す3ビット、“001”を設定する。
【0161】
そして、本システムが起動されると、プロセッサ1221は起動信号受信部1206へ起動命令を発行する。起動命令を受信した起動信号受信部1206は、メモリーインターフェース部1203および、クロック制御部1207に動作イネーブルを発行する。クロック制御部1207には、動作イネーブルと予約フラグとが入力されており、これらが共に有効である場合に、クロックイネーブルを有効とする。クロックイネーブルは、クロック供給・停止部1209,1210に入力されており、クロックイネーブルが有効な期間のみ、メモリーインターフェース部1203、データ入出力部1204、DMAパラメータメモリ1205へクロックが供給される。
【0162】
また、メインメモリクロック供給・停止部1212には、クロック制御部1207からクロックイネーブルが、メインメモリバンクレジスタ1211からバンク選択信号bank0=1、bank1=1,bank2=0,bank3=0が入力されており、選択されたバンク(ここでは、DRAM0、DRAM1)に対して、クロックイネーブルが有効な期間のみクロックclkdram0,clkdram1が供給される。
【0163】
さらに、メモリーインターフェース部1203では、メインメモリバンクレジスタ1211から入力される各制御信号selfon,bank0〜bank3により、各DRAMバンクに対する制御を行う。今、selfon信号が“1”,bank信号は、bank0,bank1が有効であるため、bank信号により選択されたDRAM0、DRAM1以外のDRAM2、DRAM3は、アクセスは行われず、セルフリフレッシュ状態となる。セルフリフレッシュ状態とは、ここでは、セルフリフレッシュ制御信号を”L”とし、クロック供給を停止することを意味している。
【0164】
また、選択された各バンク(DRAM0,DRAM1)に対する制御信号も、メモリーインターフェース部1203にて、アドレスの上位2ビットにより供給がコントロールされる。リフレッシュは、アクセスの合間に行われるオートリフレッシュにより実行される。
【0165】
この状態で図2に示すようなデータ転送要求受信部に設定された3つの予約が優先レベル順に実行されたとする。おのおののDMA転送において、データをメインメモリ1220へ書き込み終了、またはデータを各ローカルメモリへ書き込み終了すると、データ入出力部1204は、メモリーインターフェース部1203にその旨を知らせる。メモリーインターフェース部は、転送終了信号をクロック制御部1207へと出力し、予約フラグは、データ転送要求受信部1202に予約がなくなると“0”となる。クロック制御部1207は、メモリーインターフェース部1203から転送終了信号を受け、データ転送要求受信部1202からの予約フラグが“0”になったタイミングで、クロックイネーブルを“0”とし、クロック供給・停止部1209,1210に対して出力する。このクロックイネーブル信号を受信したクロック供給・停止部1209,1210は、メモリーインターフェース部1203、データ入出力部1204、DMAパラメータメモリ1205へのクロック供給を停止する。さらに、メインメモリクロック供給・停止部1212も、クロック制御部1207からの前記クロックイネーブルを受けて、DRAM0、DRAM1に対するクロック供給を停止する。
これ以降、再び、全領域使用したい場合は、メインメモリバンクレジスタ1211の設定を変更することで、DRAM2、DRAM3がセルフリフレッシュモードを抜け、全領域通常アクセスモードとなる。
【0166】
ここで、単一のDRAMと複数バンクに分割したDRAMとの消費電力の違いについて、具体的な例を用いて説明する。
例えば、画像圧縮・伸張の国際標準規格であるMPEG−4を処理するような画像処理装置において、その画像処理に使用するメモリについて考える。
前記画像処理に使用するメモリの領域は、処理する画像の種類により異なる場合があり、表3は、その処理する画像の種類とその場合に必要となるメモリ容量との関係を示すものである。
【0167】
【表3】
表3において、メモリの最大使用容量は16Mbitとなっていおり、この時、LSI内部に混載できるDRAMの消費電力を見積もると、図21に示すようになる。図21は、16Mbitのメモリ領域を単一、2分割、4分割、8分割した際の消費電力を比較したグラフである。図21より、16Mbitのメモリ領域を、単一のDRAMとして使用するより、複数バンクに分割して用いたほうが消費電力が下がる場合があることが分かる。
【0168】
図21の結果をふまえて、16Mbitの領域を4Mbit単位で4分割し、個別のDRAMを使用してメモリを構成し、処理の種類によって、使用するDRAMの領域を選択できるようにしたとする。
【0169】
例えば、CIFサイズのコーデックを実行する場合は、表3に示されるように16Mbit全領域を使用する必要があるが、その後、画像サイズが変更になり、QCIFサイズのコーデックを実行する場合は、その使用領域は8Mbitでよくなるので、分割した4つのDRAMうち2つのDRAMバンクのみを使用するよう設定する。このようにすることで、使用しないメモリ領域に対しては、クロックおよび制御信号を供給せず、さらにアクセスも行わないようにできる。図22は、16Mbitのメモリ領域を4分割した際に、その各分割したメモリ領域のみを使用した場合と全領域を使用した場合との消費電力を比較したグラフである。図22より、メモリの全領域を使用するときより、使用しないメモリ領域に対しては、クロックおよび制御信号を供給しないときの方が、消費電力を削減することができることがわかる。
【0170】
以上のような制御を施して、MPEG−4のシンプルプロファイルレベル1(Simple@L1)を実行する場合、単一のDRAMで構成したメモリを使用した場合の見積もり値と、複数DRAMで構成したメモリを使用した場合の測定値とを比較すると、複数DRAMで構成したメモリは、図23に示すように、消費電力が約36%削減することができることがわかった。
なお、以上に説明した本実施の形態12のDMA転送処理は、実施の形態2のように前記DMA転送要求発行元が複数である場合にも、適応可能である。
【0171】
このように、本実施の形態12では、DRAMにおいても、連続アドレス領域であるメインメモリを物理的に分割し、必要なバンクにのみクロックを別々に供給できるように制御することにより、効率よく電力を制御できるため、より低消費電力を実現するシステムが得られる。
また、アプリケーションにより、搭載したDRAMの半分しか使用しない場合は、あらかじめ、半分の領域をOFF状態とすることで、更なる低消費電力を実現するシステムが得られる。
また、一連のアプリケーション動作中にも、リアルタイムに使用領域が変化する場合は、使用しないバンクに対してセルフリフレッシュモードを実行するようにしておくことで、再び全領域を有効にした際も、データが消えることなく活用できる。
【0172】
さらには、クロックの入力もなく、また、オートリフレッシュのための制御信号の入力もないため、最適な低消費電力でデータを保持し活用することができる。
なお、本実施の形態12において、メインメモリの分割は4であったが、任意の数であっても同様である。
【0173】
(実施の形態13)
以下、実施の形態13におけるDMAコントローラについて説明する。
図24は、本実施の形態13におけるDMAコントローラ(データ転送制御部)を有するシステム構成図である。
図24において、本システムは、DMAコントローラであるデータ転送制御部1601と、プロセッサ1621と、メインメモリ1620と、ローカルメモリ1622と、DMAバスと、ローカルバスとからなるものである。
【0174】
メインメモリ1620は各種データを格納するものであって、SRAMで構成されている。また、このSRAMは、リニアなアドレス領域を4バンクに分割されており、それぞれに独立したクロックが入力されている。
プロセッサ1621は、DMAコントローラ(データ転送制御部)1601をはじめ、システム全体をコントロールするものであり、また該データ転送制御部1601に対してDMA転送要求を発行するものである。
【0175】
ローカルメモリ1622は、プロセッサ1621のローカルバスに接続されたローカルメモリ群である。
また、前記データ転送制御部(DMAコントローラ)1601は、メモリーインタフェース部1603と、データ入出力部1604と、クロック制御部1607と、アドレス判定部1608とを備える。
【0176】
メモリーインタフェース部1603は、プロセッサ1621からの指示を受け、メインメモリ1620の制御を行うものであり、アドレス判定部1608は、プロセッサ1621から設定される開始アドレス、終了アドレス(または転送個数)によって、アクセスされるアドレス領域を判別し、クロック供給・停止を行うクロック制御部1607に制御信号を出力するものである。また、データ入出力部1604及びメインメモリ1620は、前記クロック制御部1607が出力するクロックにより動作するようになっている。このクロック制御部1607は、例えばANDゲートのようなもので構成される。
【0177】
次に、図24を用いて、本実施の形態13のシステムにおける、DMAコントローラ(データ転送制御部)1601の動作を説明する。
プロセッサ1621は、ローカルバスを用いて、DMA転送の開始アドレスおよび終了アドレスを、データ転送制御部1601に設定する。このプロセッサ1621により設定されたアドレス情報は、データ転送制御部1601内のアドレス判定部1608を介してメモリーインターフェース部1603へと伝えられ、メインメモリ1620とのアクセスの際のアドレスとして用いられる。
【0178】
今、プロセッサ1621が新たなDMA転送命令を発行するとする。プロセッサ1621は、発行しようとするDMA転送の開始アドレスと終了アドレスとを、データ転送制御部1601内のアドレス判定部1608へ設定する。アドレス判定部1608は、この設定されたアドレスから、メインメモリ1620内のアクセスされるバンクを判定し、プロセッサ1621からDMA転送要求が発行されると、該アクセスバンクに対応するbank0〜bank3信号を有効として、アクセスバンクを示す。
ここで、メインメモリ1620は、全部で1MByte領域であり、1つのSRAMが256KByteの容量であるとする。なおアドレスは、4つのSRAMを用いて、1MByte領域を連続につないである。
【0179】
いま、プロセッサ1621が、開始アドレス200KByte目、終了アドレス300KByte目を設定したとする。
この後、プロセッサ1621がDMA転送要求を発行すると、アドレス判定部1608は、動作イネーブルactenを有効とし、かつ、開始アドレスである200KByte目が存在するbank0と、終了アドレスである300KByte目が存在するbank1を有効とする。このとき、bank2、bank3は無効のままである。
【0180】
上述したような制御信号を受信したクロック制御部1607は、bank0、bank1に対応するクロックをメインメモリ1620内の対応するSRAMに供給し、bank2、bank3に対応するクロックは停止させる。
【0181】
このように、本実施の形態13によれば、メインメモリを物理的に分割し、DMA転送要求が発行された後のDMA転送期間と、アクセスするアドレスにより、分割された領域ごと(メモリ単位)でクロックの供給・停止制御を行うようにしたので、必要な時間、必要な領域のみ、回路を動作させることができる。この結果、回路の消費電力を効率よく制御でき、より低消費電力を実現するシステムが得られる。
【0182】
また、アドレス判別部1608において、プロセッサ1621から設定される開始アドレス、終了アドレス(または転送個数)からアクセスされるアドレス領域を判別するのではなく、メモリーインターフェース部1603に備わったアドレス生成器と連動して、リアルタイムにアクセス領域を判別するようにすれば、クロックを供給する時間と領域とをより細かく制御できる。これにより、リアルタイムにクロックの停止制御を実現できるため、さらに低消費電力を実現するシステムが得られる。
なお、本実施の形態では、メインメモリ1620にSRAMを用いたが、DRAMでも同様にしてクロック制御を実現できる。
【0183】
(実施の形態14)
以下、実施の形態14におけるDMAコントローラについて説明する。
図25は、本実施の形態14におけるDMAコントローラ(データ転送制御部)を有するシステム構成図である。
図25において、本システムは、DMAコントローラであるデータ転送制御部1701と、プロセッサ1721と、メインメモリ1720と、ローカルメモリ1722と、DMAバスと、ローカルバスとからなるものである。
【0184】
メインメモリ1720は各種データを格納するものであって、DRAMで構成されている。また、このDRAMは、リニアなアドレス領域を4バンクに分割されており、それぞれに独立したクロックが入力されている。
プロセッサ1721は、DMAコントローラ(データ転送制御部)1701をはじめシステム全体をコントロールするものであり、また該データ転送制御部1701に対してDMA転送要求を発行するものである。
ローカルメモリ1722は、ローカルバスによってプロセッサ1721に接続されたローカルメモリ群である。
【0185】
また、前記データ転送制御部(DMAコントローラ)1701は、メモリーインタフェース部1703と、データ入出力部1704と、クロック制御部1707と、メインメモリバンクレジスタ1708とを備える。
メモリーインタフェース部1703は、プロセッサ1721からの指示を受け、メインメモリ1720の制御を行うものであり、メインメモリバンクレジスタ1708は、プロセッサ1721がローカルバスを介して、使用メモリ領域を設定するものである。また、データ入出力部1704及びメインメモリ1720は、クロック制御部1707が出力するクロックにより動作するようになっている。このクロック制御部1707は、例えばANDゲートのようなもので構成される。
【0186】
次に、図25を用いて、本実施の形態14のシステムにおける、DMAコントローラ(データ転送制御部)1701の動作を説明する。
ここでのメインメモリ1720は、全部で1MByte領域であり、1つのDRAMが256KByteの容量であるとする。なおアドレスは、4つのDRAMを用いて、1MByte領域を連続につないである。
【0187】
今、メインメモリ1720の使用したい領域を全領域とすと、プロセッサ1721は、ローカルバスを介して、データ転送制御部1701内の、メインメモリバンクレジスタ1708に全領域を有効とする設定を行う。さらに、ここではメインメモリバンクレジスタ1708に”111”が書き込まれたとする。
【0188】
また、プロセッサ1721は、ローカルバスを用いて、DMA転送の開始アドレスおよび転送個数などを、データ転送制御部1701内のメモリーインターフェース部1703に設定する。この情報を元に、メモリーインターフェース部1703では、メインメモリ1720とのアクセスの際のアドレスが生成される。
【0189】
次に、DMA転送を実行するために、プロセッサ1721は、DMA転送要求を発行する。DMA転送要求を受け付けたデータ転送制御部1701内の、メインメモリバンクレジスタ1708は、動作イネーブルactenを有効とすると共に、bank0〜bank3の信号を有効とする。これにより、すべての回路およびメモリに対してクロックが供給され、すべてのメモリに対して、アクセスおよびリフレッシュ動作が許可される。またアクセスが終了すると、すべてのクロック供給は停止される。
この状態で必要な処理を実行するための一連のDMA転送を終了すると、プロセッサ1721は、次の処理において必要なDRAM領域を、メインメモリバンクレジスタ1708に再設定する。
【0190】
ここで、次の処理が、メインメモリ1720の半分の領域(DRAM0,DRAM1)しか使用しない処理であったとする。このとき、残りの半分の領域(DRAM2,DRAM3)のデータを残しておく必要がある場合はDRAM2,DRAM3をセルフリフレッシュモードに、また消去してもよい場合はDRAM2,RAM3をOFF状態とする。たとえば、この設定項目は、セルフリフレッシュが“101”、OFF状態が“001”等とすればよい。
【0191】
今、プロセッサ1721によって、メインメモリバンクレジスタ1708に、OFF状態“001”が設定されたとする。
【0192】
プロセッサ1721は、再び、ローカルバスを通じて、メモリーインターフェース部1703にアドレスおよび転送個数などを設定した後、DMA転送要求を発行すると、メインメモリバンクレジスタ1708は、bank0、bank1を有効とし、bank2、bank3は、無効のままとする。これを受けて、クロック制御部1707は、bank0及びbank1にのみクロックを供給する。さらに、メモリーインターフェース部1703では、bank0及びbank1にのみ制御信号を供給して、リフレッシュ動作を実行しbank2、bank3には一切のアクセス制御を行わない。つまり、アクセスを行っている間は、クロック制御部1707からクロックが供給されるが、アクセスが終了すると、クロック制御部1707からの、すべての回路及びメモリに対するクロック供給は停止される。
ただし、選択されているDRAMに関しては、メモリーインターフェース部1703により定期的にリフレッシュ動作が行われ、データが消去されないようにする。
【0193】
このように、本実施の形態14によれば、物理的にメモリを分割し、処理モードにより、使用するメモリ領域を選択することで、無駄な領域のメモリを動作させることなく、低消費電力を実現し、かつ、様々な処理モードに柔軟に対応できる処理システムを、容易に実現することができる。
また、動作領域をあらかじめ設定することから、領域を判定する回路も必要なく、メインメモリがDRAMのような場合に、リフレッシュ制御も容易に選択実行することができる。
【0194】
(実施の形態15)
以下、実施の形態15におけるDMAコントローラについて説明する。
図26は、本実施の形態15におけるDMAコントローラ(データ転送制御部)を有するシステム構成図である。
図26において、本システムは、DMAコントローラであるデータ転送制御部1801と、プロセッサ1821と、メインメモリ1820と、ローカルメモリ1882と、電源スイッチ1823と、DMAバスと、ローカルバスとからなるものである。なお、前記データ転送制御部1801の構成は、実施の形態14と同様であるため、説明を省略する。
電源スイッチ1823は、リニアなアドレス領域を4バンクに分割されたメインメモリ1820の各DRAM0〜3に対応するものであり、各DRAM0〜3に対する電源供給を制御するものである。
【0195】
次に、図26を用いて、本実施の形態15のシステムにおける、DMAコントローラ(データ転送制御部)1801の動作を説明する。
バンクセレクト信号bank0〜bank3は、電源スイッチ部1823において、それぞれのDRAM0〜3に対応した電源スイッチに入力されており、bank0〜bank3が無効な場合、例えばグランドに落とすなどして、DRAMに電源は供給されないように制御する。
したがって、上述した実施の形態14のような制御を行った場合、本システムにおいては、非選択のメモリに対してはクロック供給停止のみならず、電源供給も停止されることになる。
【0196】
このように、本実施の形態15によれば、物理的にメモリを分割し、その分割した各メモリに対して電源スイッチを備えるようにすることで、使用していないメインメモリのリーク電流(漏れ電流)を抑えることができ、更なる低消費電力化を実現することができる。
【0197】
【発明の効果】
以上のように、本発明の請求項1に記載のDMAコントローラによれば、各種データを蓄積する主記憶手段と、該主記憶手段の転送相手である複数の子記憶手段とのデータ転送を制御するデータ転送制御部であるDMAコントローラであって、前記主記憶手段は、複数の領域に分割され、該領域毎にクロックが供給されている複数の個別主記憶手段からなり、前記データ転送制御部は、該データ転送制御部に対してクロックの供給・停止を制御するクロック制御部と、前記個別主記憶手段に対してクロックの供給・停止を制御する、メモリクロック制御部と、DMA転送実行中に生成するアドレスから、前記複数の個別主記憶手段のうちのアクセスされる領域を判定し、バンク選択信号を随時生成するアドレス判定部とを備え、前記メモリクロック制御部は、動作イネーブル信号が発行され、DMA転送命令が前記データ転送制御部に予約されており、且つ、データ転送実行中に、前記バンク選択信号により、指定された前記主記憶手段の領域に対してのみクロック信号を供給するように制御するようにしたので、メインメモリを必要な時間、必要な領域のみ動作させることができる。これにより、DMAコントローラの回路の消費電力を効率よく制御することができ、より低消費電力を実現するシステムが得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1におけるDMAコントローラを使用したシステムの構成図である。
【図2】本発明の実施の形態1におけるDMAコントローラの、データ転送要求受信部の構成図である。
【図3】本発明の実施の形態2における、複数のDMA転送要求発行元からDMA転送要求されるDMAコントローラを使用したシステムの構成図である。
【図4】本発明の実施の形態2における、複数のDMA転送要求発行元からDMA転送要求されるDMAコントローラの、予備予約手段及びデータ転送要求受信部の構成図である。
【図5】本発明の実施の形態3におけるシステムにおいて、DMA転送要求が発行された際の、DMA転送実行順待ち状態遷移とDMA転送実行のタイミングとを示した図である。
【図6】本発明の実施の形態4におけるDMAコントローラの、データ転送要求受信部の構成図である。
【図7】本発明の実施の形態5におけるDMAコントローラを使用したシステムの構成図である。
【図8】本発明の実施の形態5におけるDMAコントローラの、データ転送要求受信部の構成図である。
【図9】本発明の実施の形態5における、複数のDMA転送要求発行元からDMA転送要求されるDMAコントローラを使用したシステムの構成図である。
【図10】本発明の実施の形態5における、複数のDMA転送要求発行元からDMA転送要求されるDMAコントローラの、予備予約手段及びデータ転送要求受信部の構成図である。
【図11】本発明の実施の形態6におけるDMAコントローラの、データ転送要求受信部の構成図である。
【図12】本発明の実施の形態6における、複数のDMA転送要求発行元からDMA転送要求されるDMAコントローラの、予備予約手段及びデータ転送要求受信部の構成図である。
【図13】本発明の実施の形態7のDMAコントローラにおいて、予め設定されたタイミング信号が入力しているデータ転送要求受信部の構成図である。
【図14】本発明の実施の形態7のDMAコントローラにおいて、複数のタイミング信号が入力しているデータ転送要求受信部の構成図である。
【図15】本発明の実施の形態8におけるDMAコントローラの、データ転送要求受信部の構成図である。
【図16】本発明の実施の形態8における、複数のDMA転送要求発行元からDMA転送要求されるDMAコントローラの、予備予約手段及びデータ転送要求受信部の構成図である。
【図17】本発明の実施の形態9におけるDMAコントローラの、DMAパラメータメモリの内容の一例を示している。
【図18】本発明の実施の形態10におけるDMAコントローラを使用したシステムの構成図である。
【図19】本発明の実施の形態11におけるDMAコントローラを使用したシステムの構成図である。
【図20】本発明の実施の形態12におけるDMAコントローラを使用したシステムの構成図である。
【図21】本発明の実施の形態12における、メモリ領域を分割したときの消費電力を比較したグラフである。
【図22】本発明の実施の形態12において、メモリ領域を4分割した際の消費電力を比較したグラフである。
【図23】本発明の実施の形態12において、分割メモリと単一メモリとにおいてMPEG−4のSimple@L1を実行したの消費電力を比較したグラフである。
【図24】本発明の実施の形態13におけるDMAコントローラを使用したシステムの構成図である。
【図25】本発明の実施の形態14におけるDMAコントローラを使用したシステムの構成図である。
【図26】本発明の実施の形態15におけるDMAコントローラを使用したシステムの構成図である。
【図27】従来例である、ダイレクトメモリアクセスコトローラであるDMACのブロック図を示している。
【図28】従来例である、DMACを一部とするデータ処理装置のブロック図を示している。
【図29】従来例である、低消費電力装置の回路構成図の一例を示している。
【図30】従来例である、FIFOメモリの一構成例をを機能面から示したブロック図を示している。
【図31】従来例である、マイコンシステムの一構成例を示すブロック図を示している。
【図32】従来例である、半導体メモリ装置内におけるメモリセルアレイを分割したときの構成を示す図である。
【符号の説明】
101,501,801,901,1001,1101,1201,1601,1701,1801 データ転送制御装置
102,102a,102b,102c,102d,102e,502,1002,1102,1202 データ転送要求受信部
103,503,1003,1103,1203,1603,1703,1803 メモリーインターフェース部
104,504,1004,1104,1204,1604,1704 データ入出力部
105,505,1005,1105,1205 DMAパラメータメモリ
106,506,1006,1106,1206 起動信号受信部
110,510,810,910,1012,1120,1220,1620,1720,1820 メインメモリ
111,511,1011,1121,1221,1621,1721,1821 プロセッサ
112,512,812,912,1013,1223,1622,1722,1822 ローカルメモリ
201,601,701,1301,1401,1501 優先レベル解読部
202,402,602,702,1302,1402,1502 セレクタ
210,410,610,710,1310,1410,1510 予約レジスタ
211,411,611,711,1311,1411,1511 優先レベル1予約レジスタ
212,412,612,712,1312,1412,1512 優先レベル2予約レジスタ
213,413,613,713,1313,1413,1513 優先レベル3予約レジスタ
401 優先レベル/キャンセル解読部
621〜623 予約ポインタ
631〜633 リードポインタ
811,911 メインプロセッサ
813,913 サブプロセッサ
820,830,840 予備予約手段
821,831,841 予備1予約レジスタ
822,832,842 予備2予約レジスタ
823 予備セレクタ
1007,1107,1207,1607,1707,1807 クロック制御部
1008,1108,1208 メモリクロック制御レジスタ
1009,1010,1109,1110,1209,1210 クロック供給・停止部
1111,1212 メインメモリクロック供給・停止部
1211,1708 メインメモリバンクレジスタ
1608 アドレス判定部
1823 電源スイッチ
Claims (1)
- 各種データを蓄積する主記憶手段と、該主記憶手段の転送相手である複数の子記憶手段とのデータ転送を制御するデータ転送制御部であるDMAコントローラであって、
前記主記憶手段は、複数の領域に分割され、該領域毎にクロックが供給されている複数の個別主記憶手段からなり、
前記データ転送制御部は、
該データ転送制御部に対してクロックの供給・停止を制御するクロック制御部と、
前記個別主記憶手段に対してクロックの供給・停止を制御する、メモリクロック制御部と、
DMA転送実行中に生成するアドレスから、前記複数の個別主記憶手段のうちのアクセスされる領域を判定し、バンク選択信号を随時生成するアドレス判定部とを備え、
前記メモリクロック制御部は、動作イネーブル信号が発行され、DMA転送命令が前記データ転送制御部に予約されており、且つ、データ転送実行中に、前記バンク選択信号により、指定された前記主記憶手段の領域に対してのみクロック信号を供給するように制御する、
ことを特徴とするDMAコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003072859A JP4077349B2 (ja) | 2000-05-19 | 2003-03-17 | Dmaコントローラ |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000148680 | 2000-05-19 | ||
JP2000-148680 | 2000-05-19 | ||
JP2003072859A JP4077349B2 (ja) | 2000-05-19 | 2003-03-17 | Dmaコントローラ |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001120483A Division JP2002041445A (ja) | 2000-05-19 | 2001-04-19 | 高性能dmaコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003248652A JP2003248652A (ja) | 2003-09-05 |
JP4077349B2 true JP4077349B2 (ja) | 2008-04-16 |
Family
ID=28676702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003072859A Expired - Fee Related JP4077349B2 (ja) | 2000-05-19 | 2003-03-17 | Dmaコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4077349B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006334948A (ja) * | 2005-06-02 | 2006-12-14 | Ricoh Co Ltd | 画像処理装置、画像形成装置、画像処理方法、その方法をコンピュータに実行させるプログラム、およびそのプログラムを格納する記憶媒体 |
CN101361050B (zh) * | 2006-03-01 | 2010-09-22 | 松下电器产业株式会社 | 数据传输装置和数据传输方法 |
JP2011060066A (ja) | 2009-09-11 | 2011-03-24 | Renesas Electronics Corp | データ処理回路 |
JP5782330B2 (ja) | 2011-08-09 | 2015-09-24 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
CN110265029A (zh) * | 2019-06-21 | 2019-09-20 | 百度在线网络技术(北京)有限公司 | 语音芯片和电子设备 |
-
2003
- 2003-03-17 JP JP2003072859A patent/JP4077349B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003248652A (ja) | 2003-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100429724B1 (ko) | 고성능 dma 콘트롤러 | |
CN112506422B (zh) | 精细粒度刷新 | |
CN100483363C (zh) | 半导体集成电路及其省电控制方法 | |
US7782683B2 (en) | Multi-port memory device for buffering between hosts and non-volatile memory devices | |
US4829467A (en) | Memory controller including a priority order determination circuit | |
KR100816053B1 (ko) | 셀프 카피 기능을 가지는 메모리 장치, 메모리 시스템 및듀얼 포트 메모리 장치 | |
US7363406B2 (en) | Dynamic access scheduling memory controller | |
JP2006318139A (ja) | データ転送装置、データ転送方法およびプログラム | |
US20210358540A1 (en) | Refresh management for dram | |
CN115668377A (zh) | 用于dram的刷新管理 | |
US20030084235A1 (en) | Synchronous DRAM controller and control method for the same | |
JP2000047974A (ja) | バス制御コントローラのバス調停方法、バス制御コントローラ及び電子機器のシステム | |
JP4077349B2 (ja) | Dmaコントローラ | |
JP2001243765A (ja) | 半導体記憶装置 | |
US6684278B1 (en) | Microcomputer and memory access control method | |
EP4445372A1 (en) | Read clock start and stop for synchronous memories | |
JPH0844622A (ja) | 情報処理装置 | |
US12118247B2 (en) | Performance of bank refresh | |
JPH10232789A (ja) | Eccパーシャルライト制御ユニット | |
JPH05174574A (ja) | メモリ制御装置 | |
JPS6143741B2 (ja) | ||
US20070073961A1 (en) | Memory controller | |
JP3303420B2 (ja) | メモリアクセス制御装置 | |
JPH087562A (ja) | ダイナミックランダムアクセスメモリ | |
JP2919176B2 (ja) | リクエスト受付制御回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050613 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050621 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050822 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060307 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060502 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060510 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20060602 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080131 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110208 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140208 Year of fee payment: 6 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |