(57)【特許請求の範囲】
【請求項１】
データ転送元アドレス及びデータ転送先アドレスが設定されるアドレスレジスタと、
データ転送元とデータ転送先との組み合わせ態様を複数ビットによって指定するリソースセレクト情報の格納領域を含むコントロールレジスタと、
データ転送要求があったとき、前記アドレスレジスタに設定されたデータ転送元アドレスとデータ転送先アドレスの内の少なくとも一方が、前記コントロールレジスタの前記リソースセレクト情報によって指定されるデータ転送元とデータ転送先との組み合わせ態様から逸脱しているアドレスエラーを検出するアドレスエラー検出部と、
前記アドレスエラーでない場合には前記アドレスレジスタ及びコントロールレジスタの情報を用いたデータ転送制御を行い、前記アドレスエラーが検出された場合には前記データ転送要求に応ずるデータ転送動作を抑止する制御回路とを含んで成るものであることを特徴とするデータ転送制御装置。
【請求項２】
各々がアドレスレジスタとコントロールレジスタを有する複数個のデータ転送チャネルと、前記複数個のデータ転送チャネルに含まれるアドレスレジスタ及びコントロールレジスタに接続される内部バスと、前記内部バスを外部とインタフェースさせるバスインタフェース回路と、データ転送要求に応じて前記複数個のデータ転送チャネルの中の一つのデータ転送チャネルを用いて前記バスインタフェース回路を介し転送制御を行う制御回路とを有するデータ転送制御装置であって、
前記アドレスレジスタはデータ転送元アドレス及びデータ転送先アドレスが設定されるレジスタであり、
前記コントロールレジスタは当該コントロールレジスタを含むデータ転送チャネルに割り当てられるデータ転送要求元とその要求元からのデータ転送要求に応答するデータ転送元及びデータ転送先の組み合わせ態様とが複数ビットによって指定されるリソースセレクト情報の格納領域を有し、
前記アドレスレジスタに設定されたデータ転送元アドレスとデータ転送先アドレスの内の少なくとも一方が、当該データ転送チャネルの前記コントロールレジスタに含まれる前記リソースセレクト情報によって指定されるデータ転送元とデータ転送先との組み合わせ態様から逸脱しているアドレスエラーを検出するアドレスエラー検出部を有し、
前記制御回路は、データ転送要求があったときその要求元に応答すべきデータ転送チャネルを前記コントロールレジスタに設定されたリソースセレクト情報から判定し、前記アドレスエラーが検出されないことを条件に前記データ転送要求に応ずるデータ転送チャネルを用いてデータ転送動作を行うものであることを特徴とするデータ転送制御装置。
【請求項３】
前記内部バスに接続され、数個のデータ転送チャネルに共通のオペレーションレジスタを更に有し、このオペレーションレジスタは、データ転送要求が競合する時それらデータ転送要求を実行するデータ転送チャネルの優先順位を決定するためのプライオリティ情報の格納領域を有し、
前記制御回路は、前記データ転送チャネルの判定に当たり、複数のデータ転送チャネルに対するデータ転送要求が競合するとき、前記プライオリティ情報に従って優先順位の高いデータ転送チャネルに対するデータ転送要求を優先させるものであることを特徴とする請求項２記載のデータ転送制御装置。
【請求項４】
中央処理装置と、前記中央処理装置が出力する論理アドレスを物理アドレスに変換するメモリマネージメントユニットと、請求項１又は２に記載のデータ転送制御装置と、前記メモリマネージメントユニットから出力される物理アドレス又は前記データ転送制御装置から出力される物理アドレスに基づいてバスアクセスサイクルを制御するバスステートコントローラと、前記バスステートコントローラに周辺バスを介して接続された内蔵周辺回路と、前記バスステートコントローラに結合された外部バスインタフェース回路とを含み、
前記中央処理装置は前記メモリマネージメントユニットを介して前記データ転送制御装置のレジスタに対する設定を行い、
前記データ転送制御装置は、データ転送要求に応答してデータ転送を行うとき、前記バスステートコントローラにバス権要求信号をアサートし、これに応答するバス権承認信号がバスステートコントローラからアサートされるのを待ってデータ転送を開始するものであることを特徴とするマイクロコンピュータ。
【請求項５】
１個の半導体基板に集積回路化されて成るものであることを特徴とする請求項４記載のマイクロコンピュータ。
【請求項６】
請求項４に記載のマイクロコンピュータと、このマイクロコンピュータの前記外部バスインタフェース回路に結合された外部バスと、前記外部バスに結合された外部周辺回路とを含んで成るものであることを特徴とするデータ処理システム。
【請求項７】
前記マイクロコンピュータが内蔵するデータ転送制御装置における前記アドレスエラー検出部がアドレスエラーとして検出する態様は、データ転送要求に応ずるデータ転送元が内蔵周辺回路であるときアドレスレジスタに設定されている転送元アドレスが外部周辺回路を指している状態、データ転送要求に応ずるデータ転送元が外部周辺回路であるときアドレスレジスタに設定されている転送元アドレスが内蔵周辺回路を指している状態、データ転送要求に応ずるデータ転送先が内蔵周辺回路であるときアドレスレジスタに設定されている転送先アドレスが外部周辺回路を指している状態、及びデータ転送要求に応ずるデータ転送先が外部周辺回路であるときアドレスレジスタに設定されている転送先アドレスが内蔵周辺回路を指している状態であることを特徴とする請求項６記載のデータ処理システム。
【請求項８】
各々がアドレスレジスタとコントロールレジスタを有する複数個のデータ転送チャネルと、前記複数個のデータ転送チャネルに共通のオペレーションレジスタと、前記複数個のデータ転送チャネルに含まれるアドレスレジスタ及びコントロールレジスタと前記オペレーションレジスタとに接続される内部バスと、前記内部バスを外部とインタフェースさせるバスインタフェース回路と、データ転送要求に応じて前記複数個のデータ転送チャネルの中の一つのデータ転送チャネルを用いて前記バスインタフェース回路を介し転送制御を行う制御回路とを有するデータ転送制御装置であって、
前記アドレスレジスタはデータ転送元アドレス及びデータ転送先アドレスが設定されるレジスタであり、
前記コントロールレジスタは当該コントロールレジスタを含むデータ転送チャネルに割り当てられるデータ転送要求元とその要求元からのデータ転送要求に応答するデータ転送元及びデータ転送先の組み合わせ態様とを指定するリソースセレクト情報の格納領域を有し、
前記オペレーションレジスタはデータ転送要求が競合するときそれらデータ転送要求を実行するデータ転送チャネルの優先順位が設定されるレジスタであり、
前記アドレスレジスタに設定されたデータ転送元アドレスとデータ転送先アドレスの内の少なくとも一方が、当該データ転送チャネルの前記リソースセレクト情報によって指定されるデータ転送元とデータ転送先との組み合わせ態様から逸脱しているアドレスエラーを検出するアドレスエラー検出部を有し、
前記制御回路は、データ転送要求があったとき、その要求元に応答すべきデータ転送チャネルを前記リソースセレクト情報から判定すると共に、複数のデータ転送チャネルに対するデータ転送要求が競合しているときは前記オペレーションレジスタに設定されている優先順位の高いデータ転送チャネルに対するデータ転送要求を優先させて、データ転送要求に応答する一つのデータ転送チャネルを判別し、
前記アドレスエラーが検出されないことを条件に、前記判別されたデータ転送チャネルを用いてデータ転送を行うものであることを特徴とするデータ転送制御装置。
【請求項９】
中央処理装置と、前記中央処理装置が出力する論理アドレスを物理アドレスに変換するメモリマネージメントユニットと、請求項８に記載のデータ転送制御装置と、前記メモリマネージメントユニットから出力される物理アドレス又は前記データ転送制御装置から出力される物理アドレスに基づいてバスアクセスサイクルを制御するバスステートコントローラと、前記バスステートコントローラに結合された外部バスインタフェース回路とを含み、
前記中央処理装置は前記メモリマネージメントユニットを介して前記データ転送制御装置のアドレスレジスタ、コントロールレジスタ及びオペレーションレジスタに対する設定を行うものであることを特徴とするマイクロコンピュータ。
【請求項１０】
請求項９に記載のマイクロコンピュータと、このマイクロコンピュータの前記外部バスインタフェース回路に結合された外部バスと、前記外部バスに結合された外部周辺回路とを含んで成るものであることを特徴とするデータ処理システム。
【請求項１１】
中央処理装置と、前記中央処理装置によってデータ転送元アドレス及びデータ転送先アドレスが設定されるアドレスレジスタと、
データ転送元とデータ転送先との組み合わせ態様を複数ビットによって指定するリソースセレクト情報の格納領域を含むコントロールレジスタと、
データ転送要求があったとき、前記アドレスレジスタに設定されたデータ転送元アドレスとデータ転送先アドレスの内の少なくとも一方が、前記コントロールレジスタの前記リソースセレクト情報によって指定されるデータ転送元とデータ転送先との組み合わせ態様から逸脱しているアドレスエラーを検出するアドレスエラー検出部と、
前記アドレスエラーでない場合には前記アドレスレジスタ及びコントロールレジスタの情報を用いたデータ転送制御を行い、前記アドレスエラーが検出された場合には前記データ転送要求に応ずるデータ転送動作を抑止する制御回路とを含んで成るものであることを特徴とするデータ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＤＭＡＣ（Direct Memory Access Controller：ダイレクト・メモリ・アクセス・コントローラ）のようなデータ転送制御装置における記憶保護機能（メモリ保護機能若しくはデータ保護機能とも称する）に関し、例えば、メモリマネージメントユニットを有するマイクロコンピュータ（プロセッサ又はマイクロプロセッサとも称す）やデータ処理システムに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
ＤＭＡＣを用いることによりデータ転送におけるマイクロコンピュータ、プロセッサ若しくはＣＰＵ（Central Processing Unit：中央処理装置）の負担を軽減することができる。ＤＭＡＣを用いたデータ転送では、プロセッサ若しくはＣＰＵがＤＭＡＣ内の転送先アドレスレジスタ及び転送元アドレスレジスタに転送先及び転送元アドレスなどの初期設定を行い、初期設定されたＤＭＡＣは、データ転送要求があると、プロセッサ若しくはＣＰＵからバス権を獲得してデータ転送を実行する。このことから明らかなように、ＤＭＡＣが設けられている場合にはメモリやレジスタに対するアクセス経路が一つ増えることになる。
【０００３】
今日、コンピュータシステムの多くは仮想記憶をサポートしており、メモリマネージメントユニット（ＭＭＵ）によって記憶保護を実現するものが殆どである。したがって、プロセッサやＣＰＵがレジスタやメモリをアクセスする場合には、メモリマネージメントユニットによる記憶保護が実現されることになる。
【０００４】
しかしながら、コンピュータシステムがＤＭＡＣを含む場合、ＤＭＡＣによるデータ転送先アドレスデータや転送元アドレスデータはＣＰＵやプロセッサがデータとしてＤＭＡＣ内のレジスタに設定するから、メモリマネージメントユニットによるアドレス変換に際しての記憶保護は働かない。これを言い換えれば、ＤＭＡＣがＭＭＵと外部入出力回路との間に配置されるとき、ＤＭＡＣに設定された転送元や転送先アドレスは、ＭＭＵを通らず、そのまま物理アドレスとして利用され、ＭＭＵによる保護機能が働かない。これにより、ＤＭＡＣによるアクセス経路を介すると、アクセス禁止領域に対する誤ったアクセスによりデータやプログラムが不所望に破壊されたり、ＯＳ（Operating System：オペレーティング・システム）やシステムデータが自由に読出されてセキュリティーを保つことができない等の問題を生ずることが懸念される。
【０００５】
特開昭６２−１９１９５０号公報にはＤＭＡＣの出力アドレスと保護アドレスとの比較によって記憶保護を行う技術が記載され、特開平１−２５０１６２号公報にはＤＭＡＣの出力アドレスとライトプロテクトアドレスとの比較により、メモリのライトプロテクトを行う制御方式について記載されている。
【０００６】
特開平６−２６６６４８号公報には、ＤＭＡＣのような直接メモリアクセス制御機構から出力されるアドレスが主記憶上のデータ転送許容範囲を超えたとき、当該直接メモリアクセス制御機構による主メモリアクセスが中断されるようにした技術が記載されている。
【０００７】
特開平２−２９７２３５号公報には、メインメモリのアドレスに対応してそのアドレスの領域がプログラム領域かデータ領域かを示す領域情報を保有し、メインメモリのプログラムフェッチアドレスに対応する前記領域情報がデータ領域を示すときは異常を通知し、メインメモリへの書込みアドレスに対応する前記領域情報がプログラム領域を示すときは書込み要求を抑止するメモリデータ保護回路の技術が記載されている。
【０００８】
特開平６−１１９２５０号公報には、ＤＭＡ転送制御を行うデバイスの出力アドレス信号の一部を一定の値に強制することによって記憶保護を行う技術が記載されている。
【０００９】
【発明が解決しようとする課題】
しかしながら、それら従来技術は、ＤＭＡＣのようなデバイスがデータ転送を開始してアドレス信号を出力した後に前記デバイスの外部で記憶保護を実現しようとするものである。すなわち、記憶保護に反する場合であってもＤＭＡＣのようなデバイスそれ自体はデータ転送動作を一旦開始することになる。記憶保護違反になるＤＭＡＣそれ自体の動作を抑止することはできないから、ＤＭＡＣのような回路を用いた動作に無駄がある。
【００１０】
また、記憶保護は、保護アドレスやライトプロテクトアドレスのように、特別に設定されたアドレス範囲に対して行われるから、それら保護アドレス等の設定を誤ったり、或いはＣＰＵの暴走などでそれら保護アドレス等が不所望に書き換えられた場合には記憶保護を実現できず、記憶保護の信頼性は比較的低いと考えられる。特開平６−１１９２５０号公報に記載のようにＤＭＡ転送制御を行うデバイスの出力アドレス信号の一部を一定の値に書き換える場合にも、その一定値の情報の設定誤り等などがあれば、事情は同じである。
【００１１】
本発明の第1の目的は、記憶保護違反の場合に自らデータ転送動作を抑止することができるデータ転送制御装置を提供することにある。
【００１２】
本発明の第2の目的は、記憶保護の信頼性を向上させることができるデータ転送制御装置を提供することにある。
【００１３】
本発明の第3の目的は、記憶保護違反を生ずるデータ転送要求があってもデータ転送制御装置によるデータ転送動作の無駄を極力抑えることができ、データ処理効率の向上に寄与できるマイクロコンピュータ、マイクロプロセッサ、更にはデータ処理システムを提供することにある。
【００１４】
本発明の第４の目的は、データ転送制御装置による記憶保護という点においてシステム動作の安全性を向上させることができるマイクロコンピュータ、マイクロプロセッサ、更にはデータ処理システム提供することにある。
【００１５】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１６】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１７】
すなわち、データ転送制御回路（８）は、データ転送元とデータ転送先との組み合わせ態様（例えばメモリとシリアルインタフェース回路）を複数ビットによって指定するリソースセレクト情報（ＲＳ０〜ＲＳ３）の格納領域をコントロールレジスタ（ＣＨＣＲｎ）に有する。上記制御回路（８）は、アドレスレジスタ（ＳＡＲｎ，ＤＡＲｎ）に初期的に設定された転送先アドレス、転送元アドレスとリソースセレクト情報とを参照し、転送元アドレスとデータ転送先アドレスの内の少なくとも一方が、前記リソースセレクト情報によって指定されるデータ転送元とデータ転送先との組み合わせ態様から逸脱していることを示すアドレスエラーをアドレスエラー検出部（９６）で検出して、データ転送の許可／禁止がデータ転送制御回路（８）の内部で判断される。データ転送が許可と判断された場合、データ転送制御装置はバス権要求信号（ＢＲＥＱ）のような信号をアサートしてＣＰＵなどの他のバスマスタからバス権を獲得し、その後、データ転送動作を開始する。データ転送が禁止と判断された場合、データ転送制御装置はバス権要求信号をアサートせず、これに代えて、例えば、アドレスエラー割込み信号をアサートし、例えば中央処理装置（３）に、そのようなアドレスエラーに対する処理を渡すことができる。
【００１８】
上記した手段において、データ転送制御装置が規定する記憶保護違反は前記アドレスエラーとして検出される。前記アドレスレジスタ及びコントロールレジスタによって構成される一つのデータ転送チャネルのデータ転送用途（データ転送元と転送先との組み合わせ）はリソースセレクト情報によって決定される。そのデータ転送用途に照らして転送先アドレス又は転送元アドレスの少なくとも一方が逸脱する場合には、データ転送動作の開始が抑止される。したがって、一つのデータ転送チャネルに割り当てた転送元の回路と転送先の回路との組み合わせに対して、アドレスレジスタに設定すべき転送元や転送先アドレスが、設定誤りやノイズ更にはシステムの暴走などに起因して逸脱した場合には、データ転送動作は抑止される。また、リソースセレクト情報の設定誤りや不所望な書き換えが起きた場合に、アドレスレジスタに設定すべき転送元や転送先アドレスが正常であっても同様にデータ転送動作は抑止される。
【００１９】
このように、データ転送可能な転送元と転送先との組み合わせの態様はリソースセレクト情報の値に応じて予め定義されており、前記アドレスエラー検出部は、その定義された内容に従たアドレスエラーの判定論理を有し、その論理構成に基づいて、データ転送制御装置によるデータ転送制御不可能なアドレスエラーを、コントロールレジスタのリソースセレクト情報とアドレスレジスタの転送元アドレス、転送先アドレスに基づいて検出する。リソースセレクト情報とアドレスレジスタの双方の設定情報が整合して始めてデータ転送が開始されるから、データ転送制御装置によるデータ転送動作に対する記憶保護に高い信頼性を得ることができる。しかも、データ転送制御装置による記憶保護違反に対してデータ転送制御装置自らがデータ転送動作を抑止でき、無駄なデータ転送動作を省くことができる。
【００２０】
上記手段の更に詳細な態様によれば、データ転送制御装置（８）は、各々がアドレスレジスタ（ＳＡＲｎ，ＤＡＲｎ）及びコントロールレジスタ（ＣＨＣＲｎ）を有する複数個のデータ転送チャネルと、前記複数個のデータ転送チャネルに含まれるアドレスレジスタ及びコントロールレジスタに接続される内部バス（８０）と、前記内部バスを外部とインタフェースさせるバスインタフェース回路（８１）と、データ転送要求に応じて前記複数個のデータ転送チャネルの中の一つのデータ転送チャネルを用いて前記バスインタフェース回路を介し転送制御を行う制御回路（８２〜８５）とを有する。前記アドレスレジスタはデータ転送元アドレス及びデータ転送先アドレスが設定されるレジスタである。前記コントロールレジスタは当該コントロールレジスタを含むデータ転送チャネルに割り当てられるデータ転送要求元とその要求元からのデータ転送要求に応答するデータ転送元及びデータ転送先の組み合わせ態様とが複数ビットによって指定されるリソースセレクト情報（ＲＳ０〜ＲＳ３）の格納領域を有する。前記アドレスレジスタに設定されたデータ転送元アドレスとデータ転送先アドレスの内の少なくとも一方が、当該データ転送チャネルの前記コントロールレジスタに含まれる前記リソースセレクト情報によって指定されるデータ転送元とデータ転送先との組み合わせ態様から逸脱していることを示すアドレスエラーを検出するアドレスエラー検出部（９６）を有する。前記制御回路は、データ転送要求があったときその要求元に応答すべきデータ転送チャネルを前記コントロールレジスタに設定されたリソースセレクト情報から判定する。そして、前記制御回路は前記アドレスエラーが検出されないことを条件に、前記データ転送要求に応ずるデータ転送チャネルを用いてデータ転送動作を行う。前記リソースセレクト情報に含まれるところの転送要求元を指示する情報は、転送要求の種別を指示する情報と同意義である。
【００２１】
この態様において、前記リソースセレクト情報は、当該データ転送チャネルに割り当てられるデータ転送要求元若しくはデータ転送要求の種別を指定することにもなる。すなわち、データ転送要求に対してどのデータ転送チャネルを用いるかは、リソースセレクト情報を参照して決定される。データ転送要求は、例えば特定の周辺回路からのデータ転送要求又は中央処理装置による起動要求（コントロールレジスタの転送イネーブルビット（ＤＥ）のセット）等とされる。例えばデータ転送要求元は、要求元の種類毎に個別化されたデータ転送要求信号、或いは要求元を示す付加情報などによって明らかになる。前記転送イネーブルビットのセットを転送要求とする場合、転送要求元は中央処理装置であり、前記転送イネーブルビットのセット状態を起動要求若しくは起動要求元とする値が、リソースセレクト情報に設定されている。
【００２２】
複数のデータ転送チャネルを排他的に動作させるとき、その優先順位を可変できるようにするには、前記内部バスに接続され、数個のデータ転送チャネルに共通のオペレーションレジスタ（ＭＤＡＯＲ）を更に設け、このオペレーションレジスタには、データ転送要求が競合する時それらデータ転送要求を実行するデータ転送チャネルの優先順位を決定するためのプライオリティ情報（ＰＲ０，ＰＲ１）の格納領域を割り当てておく。このとき、前記制御回路は、前記データ転送チャネルの判定に当たり、複数のデータ転送チャネルに対するデータ転送要求が競合するとき、前記プライオリティ情報に従って優先順位の高いデータ転送チャネルに対するデータ転送要求を優先させる。
【００２３】
前記データ転送制御装置を採用したマイクロコンピュータ（１）は、中央処理装置（３）と、前記中央処理装置が出力する論理アドレスを物理アドレスに変換するメモリマネージメントユニット（４０，４１，４４）と、前記データ転送制御装置（８）と、前記メモリマネージメントユニットから出力される物理アドレス又は前記データ転送制御装置から出力される物理アドレスに基づいてバスアクセスサイクルを制御するバスステートコントローラ（５１）と、前記バスステートコントローラに周辺バス（５６，５７）を介して接続された内蔵周辺回路（７０〜７４）と、前記バスステートコントローラに結合された外部バスインタフェース回路（６）とを含む。このとき、前記中央処理装置は前記メモリマネージメントユニットを介して前記データ転送制御装置の各レジスタに対する設定を行い、前記データ転送制御装置は、データ転送要求に応答してデータ転送を行うとき、前記バスステートコントローラにバス権要求信号（ＢＲＥＱ）をアサートし、これに応答するバス権承認信号（ＢＡＣＫ）がバスステートコントローラからアサートされるのを待ってデータ転送を開始する。
【００２４】
前記マイクロコンピュータは、１個の半導体基板に集積回路化して構成することができる。
【００２５】
前記マイクロコンピュータを採用したデータ処理システムは、当該マイクロコンピュータと共に、このマイクロコンピュータの前記外部バスインタフェース回路に結合された外部バス（６０，６１）と、前記外部バスに結合された外部周辺回路（６２〜６５）とを含む。
【００２６】
前記マイクロコンピュータはメモリマネージメントユニットによるアドレス変換に際して、中央処理装置が管理するアドレス空間に対し記憶保護を実現し、例えば、ユーザモードにおいてシステム空間をアクセス禁止したりする。上記メモリマネージメントユニットによる記憶保護はアクセスアドレスに対して働く。このとき、データ転送制御装置（８）は、前述の通り、中央処理装置（３）が前記アドレスレジスタにデータとして設定した転送先アドレス及び転送元アドレスに、リソースセレクト情報の転送態様に反する設定が行われたとき、その転送先アドレス及び転送元アドレスに関するデータ転送の起動を抑止する。したがって、メモリマネージメントユニットの記憶保護が直接的に働かないデータ転送制御装置によるデータ転送動作に対してもアクセス禁止領域のデータ保護を実現でき、データ処理システムの動作の安全性を高めることができる。しかも、データ転送制御装置による記憶保護違反に対してデータ転送制御装置自らがデータ転送動作を抑止でき、無駄なデータ転送動作を省くことができるから、データ処理システム及びマイクロコンピュータによるデータ処理効率の向上に寄与できる。
【００２７】
前記データ処理システムに応用されたマイクロコンピュータ内蔵のデータ転送制御装置における前記アドレスエラー検出部がアドレスエラーとして検出する態様としては、データ転送要求に応ずるデータ転送元が内蔵周辺回路であるときアドレスレジスタに設定されている転送元アドレスが外部周辺回路を指している状態、データ転送要求に応ずるデータ転送元が外部周辺回路であるときアドレスレジスタに設定されている転送元アドレスが内蔵周辺回路を指している状態、データ転送要求に応ずるデータ転送先が内蔵周辺回路であるときアドレスレジスタに設定されている転送先アドレスが外部周辺回路を指している状態、及びデータ転送要求に応ずるデータ転送先が外部周辺回路であるときアドレスレジスタに設定されている転送先アドレスが内蔵周辺回路を指している状態とすることができる。このアドレスエラー態様は、マイクロコンピュータの内部空間と外部空間とを取り違えた致命的な記憶保護違反による誤動作を防止することができる。
【００２８】
【発明の実施の形態】
《マイクロコンピュータの概要》
図１には本発明の一例に係るマイクロコンピュータ（マイクロプロセッサ又はプロセッサとも称す）が示される。同図に示されるマイクロコンピュータ１は、特に制限されないが、単結晶シリコンのようなの1個の半導体基板に集積回路化されて構成される。マイクロコンピュータ１は浮動小数点ユニット（ＦＰＵとも称する）２を持つ。更に、マイクロコンピュータ１は、整数を操作することができる中央処理装置（ＣＰＵとも称する）３を備える。マイクロコンピュータ１は、特に制限されないが、１６ビット固定長命令セットを備えた３２ビットＲＩＳＣ（Reduced Instruction Set Computer：縮小命令セットコンピュータ）アーキテクチャを有する。
【００２９】
図１において参照符号４で示されるものはアドレス変換・キャッシュユニットである。ＣＰＵ３による命令アクセスとデータアクセスを並列化できるように、アドレス変換・キャッシュユニット４は、命令用の命令アドレス変換バッファ（命令ＴＬＢとも称する）４０と、データ用のユニファイドアドレス変換バッファ（ユニファイドＴＬＢとも称する）４１を別々に持ち、また、命令キャッシュメモリ４２とデータキャッシュメモリ４３も夫々個別化されている。キャッシュ・アドレス変換バッファコントローラ（キャッシュＴＬＢコントローラとも称する）４４はアドレス変換・キャッシュユニット４を全体的に制御する。
【００３０】
図１において参照符号５で示されるものはバスステートコントローラであり、３２ビットのデータバス５０及び２９ビットのアドレスバス５１を介して前記アドレス変換・キャッシュユニット４に接続されている。このバスステートコントローラ５にはデータバス５４及びアドレスバス５５を介してデータ転送制御装置としてのＤＭＡＣ８が接続されている。
【００３１】
マイクロコンピュータ１において前記ＣＰＵ３及びＤＭＡＣ８がバスマスタモジュールを構成する。マイクロコンピュータ１による外部アクセスは、64ビットのデータバス５２及びアドレスバス５３を介して前記バスステートコントローラ５に接続された外部バスインタフェース回路６で行う。外部バスインタフェース回路６は外部データバス６０及び外部アドレスバス６１に接続される。
【００３２】
マイクロコンピュータ１は、16ビットの周辺データバス５６及び周辺アドレスバス５７に接続された内蔵周辺回路として、クロックパルスジェネレータ（ＣＰＧとも称する）７０、割り込み制御回路７１、シリアルコミュニケーションインタフェースコントローラ（ＳＣＩ１，ＣＳＩ２）７２、リアルタイムクロック回路７３及びタイマ７４を有する。それら周辺回路は前記バスステートコントローラ５を介してＣＰＵ３又はＤＭＡＣ８によってアクセスされる。
【００３３】
前記バスステートコントローラ５は、ＣＰＵ３やＤＭＡＣ８によるアクセス対象回路（アクセス対象とされるアドレスエリア）に応じて、アクセスデータサイズ、アクセスタイム、ウェイトステートの挿入制御などを行う。図１において参照符号５８で示されるものはデータバッファである。
【００３４】
前記ＣＰＵ３は、命令をフェッチするとき３２ビットの命令アドレスバス３０に命令アドレスを出力し、命令データバス３１に出力された命令をフェッチする。また、ＣＰＵ３は、３２ビットのデータアドレスバス３２にデータアドレスを出力し、３２ビットのデータバス３３を介してデータのリード（ロード）を行い、３２ビットのデータバス３４を介してデータのライト（ストア）を行う。前記命令アドレス及びデータアドレスは論理アドレスである。
【００３５】
前記ＦＰＵ２は、特に制限されないが、データキャッシュメモリ４２などをアクセスするためのメモリアドレシング能力を備えていない。ＣＰＵ３がＦＰＵ２に代わってデータをアクセスするためのアドレシング動作を行う。これは、ＦＰＵ２のメモリアドレシング回路の必要性を取り除いてチップ面積を節約するためである。ＦＰＵ２へのデータのロードは３２ビットのデータバス３３と３２ビットのデータバス３５を介して行い、ＦＰＵ２からのデータのストアは６４ビットのデータバス３６を介して行う。ＦＰＵ２からＣＰＵ３へのデータ転送は前記６４ビットデータバス３６の下位３２ビットを用いて行われる。
【００３６】
ＣＰＵ３はＦＰＵ２のためにデータフェッチを行なうだけでなく、ＦＰＵ２のための浮動小数点命令を含む全ての命令をフェッチする。ＣＰＵ３がフェッチした浮動小数点命令は３２ビットのデータバス３４を介してＣＰＵ３からＦＰＵ２に与えられる。
【００３７】
マイクロコンピュータ１は、特に制限されないが、３２ビットの仮想アドレスで規定される仮想アドレス空間と２９ビットの物理アドレスで規定される物理アドレス空間を扱う。仮想アドレスを物理アドレスに変換するためのアドレス変換情報は仮想ページ番号とそれに対応される物理ページ番号を含んでいる。アドレス変換テーブルはマイクロコンピュータ１の図示を省略する外部メモリに形成される。図示を省略するアドレス変換テーブルのアドレス変換情報のうち、最近利用されたものが前記命令ＴＬＢ４０とユニファイドＴＬＢ４１に格納されることになる。その制御は、例えばマイクロコンピュータ１のＯＳが行う。
【００３８】
前記データ用のユニファイドＴＬＢ４１はデータ及び命令のアドレス変換情報を最大６４エントリ格納する。このユニファイドＴＬＢ４１は、データフェッチのためにＣＰＵ３がデータアドレスバス３２に出力する仮想アドレスの仮想ページ番号に応ずる物理ページ番号をアドレス変換情報から連想検索して、その仮想アドレスを物理アドレスに変換する。
【００３９】
前記命令用の命令ＴＬＢ４０は命令専用のアドレス変換情報を最大４エントリ格納する。特に命令ＴＬＢ４０が保有するエントリは、ユニファイドＴＬＢ４１が保有する命令アドレスのアドレス変換情報の一部とされる。すなわち、連想検索により命令ＴＬＢ４０に目的とするアドレス変換情報がないことが分かると、そのアドレス変換情報はユニファイドＴＬＢ４１から命令ＴＬＢ４０へ供給される。この命令ＴＬＢ４０は、命令フェッチのためにＣＰＵ３が命令アドレスバス３０に出力する仮想アドレスの仮想ページ番号に応ずる物理ページ番号をアドレス変換情報から連想検索する。検索の結果、目的とするアドレス変換情報がある場合（ＴＬＢヒット）、そのアドレス変換情報を用いて、当該仮想アドレスを物理アドレスに変換する。前記検索の結果、目的とするアドレス変換情報がない場合（ＴＬＢミス）、前記ユニファイドＴＬＢ４１から目的とするアドレス変換情報を得るための動作をキャッシュＴＬＢコントローラ４４が制御する。
【００４０】
前記データキャッシュメモリ４３は、データフェッチに際してユニファイドＴＬＢ４１で変換された物理アドレスを受け取り、これに基づいてキャッシュエントリの連想検索を行う。検索結果がリードヒットであれば、ヒットに係るキャッシュラインからその物理アドレスに応ずるデータがデータバス３３又は３５に出力される。検索結果がリードミスであれば、ミスに係るデータを含む１キャッシュライン分のデータがバスコントローラ５を介して図示を省略する外部メモリから読み込まれて、キャッシュフィルが行われる。これによってキャッシュミスに係るデータが前記バス３３又は３５に読出される。検索結果がライトヒットした場合、キャッシュ動作モードがコピーバックモードならばヒットしたエントリにデータを書き込み、当該エントリのダーティービットをセットする。セット状態のダーティービットにより外部メモリのデータとの不整合状態が分かり、前記キャッシュフィル動作で当該ダーティーなキャッシュエントリがキャッシュメモリから追い出されるとき、外部メモリへの書き戻しが行われる。ライトスルーモードではヒットしたエントリにデータを書き込むと共に外部メモリへのデータの書込みも併せて行われる。検索結果がライトミスである場合、コピーバックモードならキャッシュフィルを行うと共にダーティービットをセットしてタグアドレスを更新し、フィルを行ったキャッシュラインにデータを書き込む。ライトスルーモードの場合には外部メモリに対してのみ書込みを行う。
【００４１】
前記命令キャッシュメモリ４２は、命令フェッチに際して命令ＴＬＢ４０で変換された物理アドレスを受け取り、これに基づいてキャッシュエントリの連想検索を行う。検索結果がリードヒットであれば、ヒットに係るキャッシュラインからその物理アドレスに応ずる命令が命令データバス３１に出力される。検索結果がリードミスであれば、ミスに係る命令を含む１キャッシュライン分のデータがバスコントローラ５を介して図示を省略する外部メモリから読み込まれて、キャッシュフィルが行われる。これによってミスに係る命令が命令データバス３１を介してＣＰＵ３に与えられる。
【００４２】
前記命令ＴＬＢ４０、ユニファイドＴＬＢ４１及びキャッシュＴＬＢコントローラ４４はメモリマネージメントユニットを構成する。このメモリマネージメントユニットは、特権モード及びユーザモードの夫々において、仮想アドレス空間へのアクセス権を設定して、記憶保護を行うことができる。例えばアドレス変換情報は仮想アドレスページ番号毎に保護キーデータを有する。保護キーデータはページのアクセス権をコードで表した２ビットのデータであり、特権モードでのみ読出し可能、特権モードで読出し及び書込み可能、特権及びユーザモードの双方で読み出しのみ可能、そして、特権モード及びユーザモードの双方で読出し及び書込み可能の何れかのアクセス権が設定可能にされる。実際のアクセスタイプが前記保護キーデータで設定されたアクセス権に違反する場合には、ＴＬＢ保護違反例外が発生される。ＴＬＢ保護違反例外が発生された場合、例えば、その保護違反を例外処理にて解決した後、例外処理からの復帰命令を実行して、中断された通常処理命令を再実行することになる。
【００４３】
前記メモリマネージメントユニットによる記憶保護はアドレス変換に際して働く。前記ＤＭＡＣ８によるデータ転送元及びデータ転送先アドレスは、ＣＰＵ３がデータとして設定するから、前記アドレス変換に際しての記憶保護は働かない。このような事情を考慮して、前記ＤＭＡＣ８は、それ独自に記憶保護を実現するようになっている。
【００４４】
《ＤＭＡＣ》
図２には前記ＤＭＡＣ８の全体的な構成が示されている。図２において前記周辺データバス５６及び周辺アドレスバス５７を周辺バスと総称し、アドレスバス５０及びデータバス５１を内部バスと総称し、外部データバス６０及び外部アドレスバス６１を外部バスと総称する。また、７０〜７４で示した回路を内蔵周辺モジュール（内蔵周辺回路）と総称する。
【００４５】
前記外部バス６０、６１には外部周辺回路として、特に制限されないが、プログラムや定数データなどが格納される外部ＲＯＭ（Read Only Memory：リード・オンリ・メモリ）６２、メインメモリ等として利用される外部ＲＡＭ（Random Access Memory：ランダム・アクセス・メモリ）６３、メモリマップドＩ／Ｏ（Input / Output：インプット／アウトプット）を構成する外部入出力回路６４、及びＦＩＦＯ（First In First Out：ファースト・イン・ファースト・アウト）バッファ等のように外部からアドレス指定できない記憶領域を有する外部入出力回路（アクノリッジ付きＩ／Ｏ）６５が代表的に結合されている。
【００４６】
ＤＭＡＣ８は、ｎ個（例えばｎ＝０，１，２，３の４個）のデータ転送チャネル（データ転送チャネル０〜データ転送チャネル３）を有し、各データ転送チャネル毎に転送元アドレスが設定されるソースアドレスレジスタＳＡＲｎを含むソースアドレスレジスタ部９０、各データ転送チャネル毎に転送先アドレスが設定されるディスティネーションアドレスレジスタＤＡＲｎを含むディスティネーションアドレスレジスタ部９１、各データ転送チャネル毎に転送回数を計数するためのトランスファカウントレジスタＴＣＲｎを含むトランスファカウントレジスタ部９２、及び各データ転送チャネル毎のデータ転送制御態様等が設定されるチャネルコントロールレジスタＣＨＣＲｎを有する。データ転送チャネルとは、記憶装置間のデータ転送や記憶装置と周辺回路の間のデータ転送或いは周辺回路間のデータ転送を扱う機能単位を意味する。更にデータ転送チャネル毎に、アドレスエラー検出部を構成するためのソースアドレス比較部ＳＡＣｎ、ディスティネーションアドレス比較部ＤＡＣｎを有する。また、各データ転送チャネルに共通のオペレーションレジスタＤＭＡＯＲが設けられている。
【００４７】
前記各レジスタＳＡＲｎ，ＤＡＲｎ，ＴＣＲｎ，ＣＨＣＲｎ，ＤＭＡＯＲはバス８０に共通接続され、前記バス８０はバスインタフェース回路８１に接続されている。前記バスインタフェース回路８１は前記データバス５４を介して前記内部バス５１に接続され、前記アドレスバス５５を介してバスステートコントローラ５に直接接続されている。前記データバス５４は、前記レジスタＳＡＲｎ，ＤＡＲｎ，ＴＣＲｎ，ＣＨＣＲｎ，ＤＭＡＯＲの初期設定や設定内容を確認するためのリード・ライト動作に利用される。そのリード・ライト動作は、ＣＰＵ３が前記アドレス変換・キャッシュユニット４を介して行う。前記レジスタの選択信号は内部バス５１及びデータバス５４を介して供給される。前記アドレスバス５５は、データ転送動作においてＤＭＡＣ８がアクセスアドレス信号をバスステートコントローラ５を介して内蔵周辺回路や外部周辺回路に供給するのに用いられる。
【００４８】
ＤＭＡＣ８は、前記データ転送チャネルを用いたデータ転送制御のための制御回路として、回数制御回路８２、レジスタ制御回路８３、起動制御回路８４及び要求優先制御回路８５を有する。前記要求優先制御回路８５は、マイクロコンピュータ１の内外からデータ転送要求があったとき、チャネルコントロールレジスタＣＨＣＲｎなどを参照してその転送要求元を判定すると共にその要求に応答して起動すべきデータ転送チャネルを判定する。更に、要求優先制御回路８５は、データ転送要求が競合する場合には予め決められている優先順位に従って、起動すべき一つのデータ転送チャネルを判定する。要求優先制御回路８５はデータ転送要求に応答すべき一つのデータ転送チャネルを決定すると、その情報を起動制御回路８４に与える。起動制御回路８４は先ず、バスステートコントローラ５に対してバス権要求信号ＢＲＥＱをアサートしてバス権を要求する。バスステートコントローラ５がバス権承認信号ＢＡＣＫをアサートすると、これによってＤＭＡＣ８はバス権を獲得する。そして起動制御回路８４はレジスタ制御回路８３に前記ソースレジスタＳＡＲｎやディスティネーションレジスタＤＡＲｎの出力動作などを制御させ、且つ、バスインタフェース回路８１にアドレス出力動作などを制御させる。これによってＤＭＡＣ８は、データ転送要求に応答するデータ転送制御をバスステートコントローラ５を介して行う。
【００４９】
図３には前記データ転送チャネルの詳細が示されている。ライトバッファＣＷＢ、リードバッファＣＲＢ及びアドレス出力バッファＡＶＢは前記バスインタフェース回路８１に含まれている。
【００５０】
前記トランスファカウントレジスタ部９２は、トランスファカウントレジスタＴＣＲ０〜ＴＣＲ３（ＴＤＲｎ）に対する入力セレクタ９２０と出力セレクタ９２１を有すると共に、デクリメンタ９２２を有する。前記トランスファカウントレジスタＴＣＲ０〜ＴＣＲ３（ＴＣＲｎ）には対応するデータ転送チャネルの転送回数がＣＰＵ３から入力セレクタ９２０を介して初期設定される。動作が選択されたデータ転送チャネルの転送動作毎に当該データ転送チャネルに対応されるトランスファカウントレジスタＴＣＲｎの値が前記デクリメンタ９２２によって１づつデクリメントされる。
【００５１】
前記ソースアドレスレジスタ部９０は入力セレクタ９００及び出力セレクタ９０１を有し、また、前記ディスティネーションアドレスレジスタ部９１は入力セレクタ９１０及び出力セレクタ９１１を有する。そして、ソースアドレスレジスタ部９０とディスティネーションアドレスレジスタ部９１はセレクタ９１３と算術演算器９１４を共有する。転送回数が複数回の場合、ソースアドレスレジスタＳＡＲ０〜ＳＡＲ３（ＳＡＲｎ）及びディスティネーションアドレスレジスタＤＡＲ０〜ＤＡＲ３（ＤＡＲｎ）に設定されたアドレスは先頭アドレスとされ、そのアドレスはデータ転送毎に算術論理演算器９１４で更新されていく。
【００５２】
チャネルコントロールレジスタＣＨＣＲ０〜ＣＨＣＲ３（ＣＨＣＲｎ）は入力セレクタ９３０と出力セレクタ９３１を有する。図３において参照符号９４で示されるものは前記リードバッファＣＲＢの入力セレクタである。図３において参照符号９５で示されるものは、アドレス出力バッファＡＶＢの入力セレクタである。
【００５３】
前記セレクタ９００、９０１、９１０、９１１、９２０、９２１、９３０、９３１、９４、９５は、データ転送動作に応じて前記レジスタ制御回路８３によってその選択動作が制御される。
【００５４】
図４には前記チャネルコントロールレジスタＣＨＣＲｎ（ＣＨＣＲ０〜ＣＨＣＲ３）のフォーマットが示される。チャネルコントロールレジスタＣＨＣＲｎは、ＤＥ、ＲＳ０〜ＲＳ３、ＴＥ、ＤＭ０〜ＤＭ１、ＳＭ０〜ＳＭ１、ＴＭ、ＴＳ０〜ＴＳ２、ＩＥ、ＤＳ，ＲＬ，ＡＭ及びＡＬの各情報を含む。それらの内、ＤＳ，ＲＬ，ＡＭ及びＡＬの各ビットはデータ転送チャネル０及びデータ転送チャネル１でのみ有効とされる。それらビットは外部リクエストモードでのみ意味のある制御情報であり、外部リクエストモードで利用できるのはデータ転送チャネル０及びデータ転送チャネル１だけである。
【００５５】
チャネルイネーブルビットＤＥは、図５に例示されるように、対応するデータ転送チャネルの動作を可能にするか否かを決定する制御ビットであり、ＤＥ＝０は対応チャネルの動作禁止、ＤＥ＝１は対応チャネルの動作許可を指示する。
【００５６】
リソースセレクト情報ＲＳ０〜ＲＳ３は、データ転送チャネル毎に当該データ転送チャネルに割り当てられるデータ転送要求元とその要求元からのデータ転送要求に応答するデータ転送元及びデータ転送先の組み合わせ態様とを複数ビットによって指定する情報である。前記リソースセレクト情報による指定態様は図６に例示される通りである。データ転送モードがシングルアドレスモードかデュアルアドレスモードかは、指定された態様によって一義的に決定される。シングルアドレスモードとは、データ転送元又はデータ転送先の何れか一方に対してだけＤＭＡＣ８がアドレシング動作を行うモードであり、このときは、前記ソースアドレスレジスタＳＡＲｎとディスティネーションアドレスレジスタＤＡＲｎの何れか一方だけが利用される。このよな動作モードは例えばＦＩＦＯバッファを備えた外部周辺回路からのデータ転送要求に応答して当該ＦＩＦＯバッファと外部メモリとの間でデータ転送を行う場合のような動作とされる。ＦＩＦＯバッファに対してＤＭＡＣ８はアドレシング動作を行うことを要しないからである。デュアルアドレスモードは、転送元及び転送先の双方に対してＤＭＡＣ８がアドレシングを行う動作モードである。
【００５７】
図６に示される転送態様は、ＤＭＡＣ８がサポートするデータ転送モードに対応されている。すなわち、ＤＭＡＣ８に対するデータ転送要求は、外部リクエスト、オートリクエスト、及び内蔵周辺回路からのリクエストに大別される。外部リクエストは、マイクロコンピュータ１の外部からＤＭＡＣ８に対するデータ転送要求であり、図２に例示されるように転送要求信号ＤＲＥＱ０＃，ＤＲＥＱ１＃によって与えられる。特に制限されないが、外部リクエストはデータ転送チャネル０、１だけで有効とされる。転送要求信号ＤＲＥＱ０＃，ＤＲＥＱ１＃による転送要求が受け付けられると、転送要求元に転送承認信号ＤＲＡＫ０，ＤＲＡＫ１が返される。転送要求信号ＤＲＥＱ０＃，ＤＲＥＱ１＃に応答したデータ転送動作の完了は、転送完了信号ＤＡＣＫ０，ＤＡＣＫ１によって転送要求元に返される。
【００５８】
マイクロコンピュータ１の内蔵周辺回路からのデータ転送要求は、特に制限されないが、タイマ（ＴＭＵ）７４から出力されるインプットキャプチャー割込み信号ＴＩＣ、シリアルコミュニケーションインタフェースコントローラＳＣＩ１からの送信データエンプティー割込み転送要求信号ＳＣＩ１Ｅ、シリアルコミュニケーションインタフェースコントローラＳＣＩ１からの受信データフル割込み転送要求信号ＳＣＩ１Ｆ、シリアルコミュニケーションインタフェースコントローラＳＣＩ２からの送信データエンプティー割込み転送要求信号ＳＣＩ２Ｅ、及びシリアルコミュニケーションインタフェースコントローラＳＣＩ２からの受信データフル割込み転送要求信号ＳＣＩ２Ｆによって与えられる。
【００５９】
オートリクエストは、チャネルコントロールレジスタＣＨＣＲｎに含まれるチャネルイネーブルビットＤＥのセット状態に連動した転送要求である。すなわち、リソースセレクト情報にオートリクエストが指定されたデータ転送チャネルでは、データ転送イネーブルビットＤＥが“１”にセットされることによってデータ転送が要求されることになる。
【００６０】
前記要求優先制御回路８５は、前記外部リクエスト、オートリクエスト、及び内蔵周辺回路からのリクエストといったデータ転送要求があったとき、その要求元に応答すべきデータ転送チャネルを前記各チャネルコントロールレジスタＣＨＣＲｎのリソースセレクト情報ＲＳ０〜ＲＳ３の設定内容から判定する。例えば、インプットキャプチャー割込み信号ＴＩＣがアサートされたとき、リソースセレクト情報ＲＳ３，ＲＳ２，ＲＳ１，ＲＳ０＝１，１，１，０に設定されているデータ転送チャネルがあった場合には当該データ転送チャネルが、そのインプットキャプチャー割込み信号ＴＩＣによるデータ転送要求に応答するデータ転送チャネルであると判定される。また、所望のデータ転送チャネルのチャネルイネーブルビットＤＥがセットされたとき、当該データ転送チャネルのリソースセレクト情報ＲＳ３，ＲＳ２，ＲＳ１，ＲＳ０＝０，１，０，０が設定されていれば、当該データ転送チャネルがオートリクエストに応答するデータ転送チャネルであると判定される。
【００６１】
トランスファエンドビットＴＥは、図７に示されるように、データ転送チャネルの前記トランスファカウントレジスタＴＣＲｎに設定された転送回数分の転送が終了されたとき“１”にセットされるビットである。すなわち、図３のデクリメンタ９２２によって対応するデータ転送チャネルの前記トランスファカウントレジスタＴＣＲｎの値が“０”に到達したことが図２の回数制御回路８２で検出されたとき、当該回数制御回路８２は、対応するデータ転送チャネルのトランスファエンドビットＴＥを“１”にセットする。図２に示される起動制御回路８４がデータ転送チャネルのトランスファエンドビットＴＥが“１”にセットされたことを検出すると、バス要求信号ＢＲＥＱをネゲートする。トランスファエンドビットＴＥが“１”にセットされたデータ転送チャネルが外部リクエストに応答してデータ転送動作を行っていたとき、前記バスインタフェース回路８１はＤＡＣＫ０又はＤＡＣＫ１をアサートして、前記外部リクエストを出した転送要求元にデータ転送の完了を通知する。
【００６２】
ディスティネーションアドレスモード情報ＭＤ１，ＭＤ２は図８に示されるように転送先アドレスの固定、増加又は減少を指定する。ソースアドレスモード情報ＳＭ０，ＳＭ１は、図９に示されるように、転送元アドレスの固定、増加又は減少を指定する。トランスミットサイズ情報は図１０に示されるように転送データのサイズを指定する。インタラプトイネーブルビットＩＥは、図１１に示されるように、トランスファカウントレジスタＴＣＲｎによって指定された回数の転送動作が終了したときＣＰＵ３に割り込みを要求するか否かを指定する。
【００６３】
トランスミットモードビットＴＭは、図１２に示されるように、転送時のバスモードをサイクルスチールモードにするかバーストモードにするかを指定する。バーストモードが指定されているとき、ＤＭＡＣ８はトランスファカウントレジスタＴＣＲｎによって指定された回数の転送動作が終了するまでバス権を放棄しない。サイクルスチールモードでは転送動作を１回行う毎に一定期間バス権をＣＰＵ３に開放する。
【００６４】
図１３には前記オペレーションレジスタＤＭＡＯＲのフォーマットが示される。このレジスタＤＭＡＯＲは、ＰＲ０〜ＰＲ１，ＡＥ，ＮＭＩＦ，ＤＭＥの各情報を含んでいる。
【００６５】
前記プライオリティーモード情報ＰＲ０，ＰＲ１は、図１４に示されるように、同時に複数のデータ転送チャネルに転送要求があったとき、データ転送を実行するデータ転送チャネルの優先順位を決定する。図１４においてＣＨ０〜ＣＨ３はデータ転送チャネル０〜データ転送チャネル３を意味する。図２に示される要求優先制御回路８５は、データ転送要求に応答すべきデータ転送チャネルを判定するに当たり、複数個のデータ転送チャネルに対するデータ転送要求が競合するとき、前記プライオリティーモード情報ＰＲ０，ＰＲ１に従って、優先順位の高いデータ転送チャネルに対するデータ転送要求を優先させる。例えば、データ転送チャネルＣＨ０とＣＨ１の双方のリソースセレクト情報ＲＳ０〜ＲＳ３にインプットキャプチャー割り込みを転送要求元とする指定がされている場合、インプットキャプチャー割込み信号ＴＩＣがアサートされたとき、前記プライオリティーモード情報Ｒ０，ＰＲ１によって優先順位が高く設定されている何れか一方のデータ転送チャネルによるデータ転送が実行される。
【００６６】
アドレスエラーフラグＡＥは、図１５に示されるようにアドレスエラーが発生したことを示すフラグである。アドレスエラーが無い状態はデータ転送許可状態とされ、アドレスエラーがある状態はデータ転送禁止状態とされる。データ転送中であっても前記フラグＡＥがセットされると、何れのデータ転送チャネルが動作されていてもそのデータ転送は中断される。ＤＭＡＣ８におけるアドレスエラーとは、第１にはアドレスバウンダリエラー、第２には記憶保護エラーである。バウンダリエラーは、トランスミットサイズがバイト以外の場合に生ずることがある。アドレスエラーの態様は、ソースアドレスレジスタＳＡＲｎ、ディスティネーションアドレスレジスタＤＡＲｎに設定されたアドレスがワードアドレスの場合に、最下位ビットが論理値“１”（奇数アドレス）の時、ロングワードアドレスの場合に、下位２ビットが論理値“０１”“１０”“１１”の時、クワッドワードアドレスの場合に、下位３ビットが論理値“００１”“０１０”“０１１”“１００”“１０１”“１１１”の時、また、３２バイトブロック転送の場合に、下位５ビットが論理値“００００１”“０００１０”“０００１１”“００１００”…“１１１００”“１１１０１”“１１１１０”“１１１１１”の時である。記憶保護エラーは、前記ソースアドレスレジスタＳＡＲｎに設定されたデータ転送元アドレスとディスティネーションアドレスレジスタＤＡＲｎに設定されたデータ転送先アドレスの内の少なくとも一方が、前記リソースセレクト情報ＲＳ０〜ＲＳ３によって指定されるデータ転送元とデータ転送先との組み合わせ態様から逸脱しているときに、アドレスエラーとする。この記憶保護エラーについては後で詳述する。
【００６７】
ＮＭＩフラグＮＭＩＦは、図１６に示されるように、ＣＰＵ３に対するマスク不可能な割込み信号（ＮＭＩ）が入力されたことを示すフラグである。ＮＭＩは優先度の高い割込み信号であり、これがＣＰＵに向けてアサートされた場合、ＣＰＵ３による割り込み処理を最優先させるために、ＤＭＡＣ８はＮＭＩフラグＮＭＩＦがセットされたときデータ転送動作を中断する。
【００６８】
マスタイネーブルビットＤＭＥは、図１７に示されるように、ＤＭＡＣ８全体の起動許可ビットである。マスタイネーブルビットＤＭＥ及びデータ転送チャネルに対応されるチャネルコントロールレジスタＣＨＣＲｎのチャネルイネーブルビットＤＥをセットすることにより、当該データ転送チャネルが動作可能にされる。転送途中でマスタイネーブルビットがクリアされると、データ転送は中断される。マスタイネーブルビットＤＭＥがセット状態であっても、チャネルコントロールレジスタＣＨＣＲｎのトランスファエンドフラグＴＥがセット状態若しくはイネーブルビットＤＥがクリア状態の場合、又はオペレーションレジスタＤＭＡＯＲのＮＭＩフラグＮＭＩＦ又はアドレスエラーフラグＡＥがセット状態の場合には、転送許可状態に移ることはできない。
【００６９】
《ＤＭＡＣによる記憶保護》
図１８には記憶保護のためのアドレスエラー検出部とレジスタ部との関係を詳細に示してある。
【００７０】
アドレスエラー検出部９６は前記ソースアドレス比較部ＳＡＣｎ、ディスティネーションアドレス比較部ＤＡＣｎ及び論理和ゲート９６０から構成される。前記ソースアドレス比較部ＳＡＣｎ及びディスティネーションアドレス比較部ＤＡＣｎはデータ転送チャネル毎に対で設けられている。ソースアドレス比較部ＳＡＣｎはソースアドレスレジスタＳＡＲｎに格納された２９ビットの物理アドレスの最上位から３ビットＳＡＲ［２８］、ＳＡＲ［２７］、ＳＡＲ［２６］と、チャネルコントロールレジスタＣＨＣＲｎのリソースセレクト情報ＲＳ０〜ＲＳ３を入力する。ディスティネーションアドレス比較部ＤＡＣｎは、ディスティネーションアドレスレジスタＤＡＲｎに格納された２９ビットの物理アドレスの最上位から３ビットＤＡＲ［２８］、ＤＡＲ［２７］、ＤＡＲ［２６］と、チャネルコントロールレジスタＣＨＣＲｎのリソースセレクト情報ＲＳ０〜ＲＳ３を入力する。論理和ゲート９６０には夫々のデータ転送チャネルにおけるソースアドレス比較部ＳＡＣｎの出力とディスティネーションアドレス比較部ＤＡＣｎの出力が入力される。論理和ゲート９６０の出力信号９６１は、前記オペレーションレジスタＤＭＡＯＲのアドレスエラーフラグＡＥに反映される。アドレスエラーフラグＡＥがセットされると、前記割り込み制御回路７１に、アドレスエラーを通知する割込み要求が発行される。
【００７１】
マイクロコンピュータ１が２９ビットの物理アドレスで管理する物理アドレス空間は、特に制限されないが、図１９に例示されるようにエリア０〜エリア７に８分割される。エリア0〜エリア6はマイクロコンピュータ１の外部アドレス空間（外部空間）に割り当てられ、エリア７はマイクロコンピュータ１の内部アドレス空間（内部空間）に割り当てられている。特にエリア７の0x1F00 0000〜0x1FFF FFFF（0xは16進数であることを意味する）はマイクロコンピュータの内蔵周辺モジュール７０〜７４に割り当てられた制御レジスタ空間（内蔵周辺空間）とされる。したがって、前記ソースアドレス比較部ＳＡＣｎ、ディスティネーションアドレス比較部ＤＡＣｎは、ソースアドレスの最上位側3ビットＳＡＲ［２８］〜ＳＡＲ［２６］、ディスティネーションアドレスの最上位側3ビットＤＡＲ［２８］〜ＤＡＲ［２６］を参照することにより、そのソースアドレス、ディスティネーションアドレスがどのエリアのアドレスであるかを判定することができる。
【００７２】
前記ソースアドレス比較部ＳＡＣｎは図２０に例示されたソースアドレスのアドレスエラー判定テーブルを有し、ディスティネーションアドレス比較部ＤＡＣｎは図２１に例示されたディスティネーションアドレスのアドレスエラー判定テーブルを有する。
【００７３】
ソースアドレスのアドレスエラー判定テーブルは、リソースセレクト情報ＲＳ０〜ＲＳ３によって規定される転送元回路が配置されるアドレスエリアと、前記ソースアドレスの最上位側3ビットＳＡＲ［２８］〜ＳＡＲ［２６］によって規定されるアドレスエリアとが不一致になる態様を定義している。図２０においてＳＡＥＲＲが論理値“１”にされているときの前記リソースセレクト情報ＲＳ０〜ＲＳ３と前記ソースアドレスの最上位側3ビットＳＡＲ［２８］〜ＳＡＲ［２６］との組み合わせが、アドレスエラーを生ずる態様である。例えば、図２０の最初のアドレスエラーの態様において、ＲＳ３，ＲＳ２，ＲＳ１，ＲＳ０＝０，１，０，０は図６に示されるようにオートリクエストによる外部アドレス空間同士のデュアルアドレスモードによるデータ転送である。すなわち、正規のソースアドレスはエリア０〜エリア７になる。このとき、ソースアドレスの最上位側3ビットＳＡＲ［２８］〜ＳＡＲ［２６］が全ビット論理値“１”であればエリア７を意味し、記憶保護違反のアドレスエラーとされる。
【００７４】
同様に、ディスティネーションアドレスのアドレスエラー判定テーブルは、リソースセレクト情報ＲＳ０〜ＲＳ３によって規定される転送先回路が配置されるアドレスエリアと、前記ディスティネーションアドレスの最上位側3ビットＤＡＲ［２８］〜ＤＡＲ［２６］によって規定されるアドレスエリアとが不一致になる態様を定義している。図２１においてＤＡＥＲＲが論理値“１”にされているときの前記リソースセレクト情報ＲＳ０〜ＲＳ３と前記ディスティネーションアドレスの最上位側3ビットＤＡＲ［２８］〜ＤＡＲ［２６］との組み合わせが、アドレスエラーを生ずる態様である。
【００７５】
前記ＤＡＥＲＲはディスティネーションアドレス比較部ＤＡＣｎの判定結果信号、前記ＳＡＥＲＲはソースアドレス比較部ＳＡＣｎの判定結果信号として把握することができる。
【００７６】
図２０及び図２１に例示された記憶保護エラーの態様を纏めると、以下の意味となる。すなわち、記憶保護違反としてのアドレスエラーの態様は、データ転送要求に応ずるデータ転送元が内蔵周辺回路７０〜７４であるときアドレスレジスタＳＡＲｎに設定されている転送元アドレスが外部周辺回路６２〜６５を指している状態、データ転送要求に応ずるデータ転送元が外部周辺回路６２〜６５であるときアドレスレジスタＳＡＲｎに設定されている転送元アドレスが内部周辺回路７０〜７４を指している状態、データ転送要求に応ずるデータ転送先が内蔵周辺回路７０〜７４であるときアドレスレジスタＤＡＲｎに設定されている転送先アドレスが外部周辺回路６２〜６５を指している状態、及びデータ転送要求に応ずるデータ転送先が外部周辺回路６２〜６５であるときアドレスレジスタＤＡＲｎに設定されている転送先アドレスが内部周辺回路７０〜７４を指している状態である。
【００７７】
図２２にはＤＭＡＣ８の動作フローチャートが示される。先ず、ＣＰＵ３によってＤＭＡＣ８の初期設定が行われる（Ｓ１）。すなわち、前記ソースアドレスレジスタＳＡＲｎ、ディスティネーションアドレスレジスタＤＡＲｎ、トランスファカウントレジスタＤＭＡＴＣＲｎ、チャネルコントロールレジスタＣＨＣＲｎ及びオペレーションレジスタＤＭＡＯＲに、目的の転送条件が設定される。これによって、データ転送の態様、ソーアドレス及びディスティネーションアドレスなどが決定される。初期設定の後、マスタイネーブルビットＤＭＥ及び各チャネルコントロールレジスタＣＨＣＲｎのチャネルイネーブルビットＤＥが起動制御回路８４及び要求優先制御回路８５によって参照され、転送許可状態であるか否か（ＤＭＥ＝１、且つ少なくとも一つのデータ転送チャネルのＤＥ＝１）が判定される（Ｓ２）。
【００７８】
転送許可状態の場合にはイリーガルアドレスのチェックが行われる（Ｓ３）。イリーガルアドレスのチェックは、前記記憶保護エラーとバウンダリーエラーのチェックである。
【００７９】
記憶保護エラーのチェックでは、転送許可状態のデータ転送チャネルに関し、チャネルコントロールレジスタＣＨＣＲｎのリソースセレクト情報ＲＳ０〜ＲＳ３とソースアドレスレジスタＳＡＲｎの最上位側３ビットの組み合わせがアクセス禁止態様（図２０のエラー態様）に一致するかが、ソースアドレス比較部ＳＡＣｎによって判定される。同様に、転送許可状態のデータ転送チャネルに関し、チャネルコントロールレジスタＣＨＣＲｎのリソースセレクト情報ＲＳ０〜ＲＳ３とディスティネーションアドレスレジスタＤＡＲｎの最上位側３ビットの組み合わせがアクセス禁止態様（図２１のエラー態様）に一致するかが、ディスティネーションアドレス比較部ＤＡＣｎによって判定される。
【００８０】
バウンダリエラーのチェックでは、転送許可状態のデータ転送チャネルに関し、チャネルコントロールレジスタＣＨＣＲｎのトランスミットサイズ情報ＴＳ０〜ＴＳ１とソースアドレスレジスタＳＡＲｎ、ディスティネーションアドレスレジスタＤＡＲｎとを比較し、バイトサイズ以外のトランスミットサイズの場合に、それらアドレスが奇数アドレスであるかを判定し、奇数アドレスである場合にはアドレスエラーとされる。
【００８１】
イリーガルアドレスチェックによってアドレスエラーがある場合には、アドレスエラーフラグＡＥが論理値“１”にセットされる。
【００８２】
そして、前記ＮＭＩフラグ、アドレスエラーフラグＡＥ、及びトランスファエンドフラグＴＥの何れも論理値“０”にクリアされているかが判定される（Ｓ４）。クリアされていない場合には、その障害が除去されるまでデータ転送を開始することはできない。
【００８３】
前記ＮＭＩフラグ、アドレスエラーフラグＡＥ、及びトランスファエンドフラグＴＥの何れも論理値“０”にクリアされている場合には転送要求の発生を待つ（Ｓ５）。
【００８４】
転送要求があると、その転送要求に応答するデータ転送チャネルを判定し、複数の転送要求が競合する場合には優先制御を行い、一つのデータ転送チャネルを使って１転送単位のデータ転送が行われる（Ｓ６）。１転送単位のデータサイズはトランスミットサイズ情報ＴＳ０，ＴＳ１によって決定される。リソースセレクト情報によってオートリクエストモードが指定されている場合には、ＤＥ及びＤＭＥが論理値“１”にセットされることにより自動的にデータ転送が開始される。１回のデータ転送が行われる毎に、データ転送に係るデータ転送チャネルのトランスファカウントレジスタＴＣＲｎの値が一つづつデクリメントされ、ソースアドレスレジスタＳＡＲｎ、ディスティネーションアドレスレジスタＤＡＲｎの値が動作モードに従って更新される。
【００８５】
トランスファカウントレジスタＴＣＲｎの値は回数制御回路８２で参照されており、その値が０にされるまで転送が繰り返される（Ｓ７）。トランスファカウントレジスタＴＣＲｎの値が０にされたとき、チャネルコントロールレジスタＣＨＣＲｎのＩＥビットに１がセットされていれば、ＣＰＵ３に割り込みを発生する（Ｓ１０）。
【００８６】
データ転送途中でフラグＮＭＩＦ又はＡＥが“１”にセットされ、或いは、ＤＥ又はＤＭＥが“０”にクリアされたときは、転送が中断される（Ｓ８，Ｓ１１）。中断されたデータ転送は、中断事由が解消された後に再開される。
【００８７】
前記トランスファカウントレジスタＴＣＲｎの値が０にされるまで繰り返されるデータ転送動作は、バスモード、転送要求モード、外部リクエストに対する検出方法によって処理が相違される（Ｓ９）。すなわち、サイクルスチールモードが指定されている場合、又はバーストモードで外部リクエスト（ＤＲＥＱ０＃，ＤＲＥＱ１＃）をレベル検出する場合には、Ｐ１で示されるように、新たな転送要求の発生を待って次のデータ転送に移る。バーストモードでオートリクエストが指定されている場合、又はバーストモードで外部リクエスト（ＤＲＥＱ０＃，ＤＲＥＱ１＃）をエッジ検出する場合には、Ｐ２で示されるように、自動的に次の転送動作に遷移される。
【００８８】
図２３には前記メモリ保護によるＤＭＡ転送抑止の場合のタイミングチャートが示される。図２３においてＣＫＩＯはＤＭＡＣ８の動作基準クロック信号である。図２３においてデータＤ１〜Ｄ３及び制御信号Ｓ１，Ｓ２はＣＰＵ３からアドレス変換・キャッシュユニット４を介してＤＭＡＣ８のバスインタフェース回路８１に供給される情報である。Ｄ１はＤＭＡＣ８に内蔵されたレジスタＳＡＲｎ，ＤＡＲｎ，ＴＣＲｎ，ＣＨＣＲｎ，ＤＭＡＯＲを任意に選択するための情報である。Ｓ１はＤＭＡＣ８に対するアクセスを選択する信号である。Ｓ２はリード・ライト信号である。Ｄ２はＤＭＡＣ８をライとアクセスするときのデータサイズ情報である。Ｄ３は実際にレジスタに書き込む情報である。それら信号はクロック信号ＣＫＩＯの２サイクルの期間有効とされる。ＣＷＢ＿Ｌは前記ライトバッファＣＷＢに対するラッチ信号であり、これによってライトバッファＣＷＢはデータＤ３をラッチする。ＣＨ＿Ｓはチャネル選択信号であり、ＲＥＧ＿Ｌは選択されたチャネルのレジスタラッチ信号である。チャネル選択信号ＣＨ＿Ｓ及びレジスタラッチ信号ＲＥＧ＿Ｌは前記データＤ１に基づいてバスインタフェース回路８１で生成される。これにより、チャネル選択信号ＣＨ＿Ｓとレジスタラッチ信号ＲＥＧ＿Ｌで選択されたレジスタにデータが書き込まれる。
【００８９】
例えば、既にチャネルコントロールレジスタＣＨＣＲｎのデータが設定されているとき、ソースアドレスレジスタＳＡＲｎのソースアドレスが書き込まれた場合を想定する。このとき、そのチャネルコントロールレジスタＣＨＣＲｎに設定されているリソースセレクト情報ＲＳ０〜ＲＳ３に対してソースアドレスレジスタＳＡＲｎに設定されたソースアドレスがアクセス禁止領域であるなら、前記アドレスエラー信号９６１がアサートされ、これによって、オペレーションレジスタＤＭＡＯＲのアドレスエラーフラグＡＥに１がセットされる。この状態はＤＭＡＣ８内部のエラー信号ＥＲＲ＿Ｓによって要求優先制御回路８５及び起動制御回路８４に通知され、ＤＭＡＣ８のデータ転送が抑止される。この場合、チャネルコントロールレジスタＣＨＣＲｎのチャネルイネーブルビットＤＥとオペレーションレジスタＤＭＡＯＲのマスタイネーブルビットＤＭＥとが両方とも“１”にセットされた時、初めてアドレスエラーフラグＡＥに“１”がセットされる。また、リソースセレクト情報ＲＳ０〜ＲＳ３によってシングルアドレスモードが設定されているときは、転送に不必要なアドレスレジスタ（ＳＡＲｎ又はＤＡＲｎ）へのエラー検出は、バウンダリエラー及びアクセス禁止領域のアドレスエラーに関しては行われない（この時のアドレスレジスタは、単なるバッファとして使用する事が出来る）。
【００９０】
図２４にはアドレスエラーが検出されないとき転送要求の発生を待ってデータ転送を行うときのタイミングチャートが示される。同図に示されるタイミングはシングルアドレスモードとバーストモードが指定されている場合を一例とする。データ転送態様は外部バス間でのデータ転送である。この態様でのデータ転送は図２２のＰ１を介して所定回数分データ転送が繰返し行われる。データ転送要求元は転送先回路であり、ＤＭＡＣ８は転送動作毎にソースアドレスを出力する。また、ＤＲＥＱｎ＃を毎回検出する。これに応じてＤＲＡＫｎ、ＤＡＣＫｎも毎回データ転送元に返される。
【００９１】
図２５にはアドレスエラーが検出されないとき転送要求の発生を待ってデータ転送を行うときの別のタイミングチャートが示される。同図に示されるタイミングはデュアルアドレスモードとバーストモードが指定されている場合を一例とする。データ転送態様は外部バス間でのデータ転送である。この態様でのデータ転送は図２２のＰ１を介して所定回数分データ転送が繰返し行われる。デュアルアドレスモードであるから、ソースアドレスのデータをリードし、リードしたデータをディスティネーションアドレスにライトするデータ転送動作を所定回数繰り返す。このデータ転送動作において、ソースアドレスから読出されたデータは外部バスを介してバスコントローラ５のデータバッファ５８に一時的に格納され、格納されたデータが外部バスを介してディスティネーションアドレスに書き込まれる。
【００９２】
図２６にはアドレスエラーが検出されないとき転送要求の発生を待ってデータ転送を行うときの更に別のタイミングチャートが示される。同図に示されるタイミングはデュアルアドレスモードとサイクルスチールモードが指定されている場合を一例とする。データ転送態様は外部バス間でのデータ転送である。この態様でのデータ転送は図２２のＰ１を介して所定回数分データ転送が繰返し行われる。デュアルアドレスモードであるから、ソースアドレスのデータをリードし、リードしたデータをディスティネーションアドレスにライトするデータ転送動作を所定回数繰り返す。このデータ転送動作において、ソースアドレスから読出されたデータは周辺バスを介してバスコントローラ５のデータバッファ５８に一時的に格納され、格納されたデータが外部バスを介してディスティネーションアドレスに書き込まれる。また、サイクルスチールモードであるから、ＤＭＡＣ８によるデータ転送の１回毎に、ＤＭＡＣ８は所定期間バス権を放棄する。
【００９３】
《ＤＭＡＣの記憶保護による作用効果》
以上説明したＤＭＡＣ８の記憶保護による作用効果は以下の通りである。
【００９４】
前記アドレスレジスタＳＡＲｎ，ＤＡＲｎ及びコントロールレジスタＣＨＣＲｎによって構成される一つのデータ転送チャネルのデータ転送用途（データ転送元と転送先との組み合わせ）はリソースセレクト情報ＲＳ０〜ＲＳ３によって決定されている。そのデータ転送用途に照らして転送先アドレス又は転送元アドレスの少なくとも一方が逸脱する場合には、アドレスエラーフラグＡＥがセットされ、データ転送動作の開始が抑止される。したがって、一つのデータ転送チャネルに割り当てた転送元の回路と転送先の回路との組み合わせに対して、アドレスレジスタＳＡＲｎ，ＤＡＲｎに設定すべき転送元や転送先アドレスが、設定誤りやノイズ更にはシステムの暴走などに起因して逸脱した場合には、データ転送動作は抑止される。また、リソースセレクト情報ＲＳ０〜ＲＳ３の設定誤りや不所望な書き換えが起きた場合に、アドレスレジスタＳＡＲｎ，ＤＡＲｎに設定すべき転送元や転送先アドレスが正常であっても同様にデータ転送動作は抑止される。
【００９５】
このように、データ転送可能な転送元と転送先との組み合わせの態様はリソースセレクト情報ＲＳ０〜ＲＳ３の値に応じて予め定義されており、前記アドレスエラー検出部９６は、その定義された内容に従ったアドレスエラーの判定論理を有し、その論理構成に基づいて、ＤＭＡＣ８によるデータ転送制御不可能なアドレスエラーを、コントロールレジスタＣＨＣＲｎのリソースセレクト情報ＲＳ０〜ＲＳ３とアドレスレジスタＳＡＲｎ，ＤＡＲｎの転送元アドレス，転送先アドレスに基づいて検出する。リソースセレクト情報ＲＳ０〜ＲＳ３とアドレスレジスタＳＡＲｎ，ＤＡＲｎの双方の設定情報が整合して始めてデータ転送が開始されるから、ＤＭＡＣ８によるデータ転送動作に対する記憶保護に高い信頼性を得ることができる。しかも、ＤＭＡＣ８による記憶保護違反に対してＤＭＡＣ８自らがデータ転送動作を抑止でき、無駄なデータ転送動作を省くことができる。
【００９６】
上記記憶保護に利用されるリソースセレクト情報ＲＳ０〜ＲＳ３は、データ転送要求に対してどのデータ転送チャネルを用いるかを判定するための情報でもある。したがって、データ転送チャネルの機能割り当てとデータ転送における記憶保護との双方に対して別々に制御情報を設定することを要しない。
【００９７】
前記プライオリティ情報ＰＲ０，ＰＲ１に従って優先順位の高いデータ転送チャネルに対するデータ転送要求を優先させるから、複数のデータ転送チャネルを排他的に動作させるとき、その優先順位を可変できる。
【００９８】
前記マイクロコンピュータ１はメモリマネージメントユニット（４０，４１，４４）によるアドレス変換に際して、ＣＰＵ３が管理するアドレス空間に対し記憶保護を実現するが、その記憶保護はアクセスアドレスに対して働く。このとき、ＤＭＡＣ８は、前述の通り、ＣＰＵ３が前記アドレスレジスタＳＡＲｎ，ＤＡＲｎにデータとして設定した転送先アドレス及び転送元アドレスに、リソースセレクト情報ＲＳ０〜ＲＳ３の転送態様に反する設定が行われたとき、その転送先アドレス及び転送元アドレスに関するデータ転送の起動を抑止する。したがって、メモリマネージメントユニット（４０，４１，４４）の記憶保護が直接的に働かないＤＭＡＣ８によるデータ転送動作に対してもアクセス禁止領域のデータ保護を実現でき、マイクロコンピュータ１を適用した図２に例示されるようなデータ処理システムの動作の安全性を高めることができる。システム動作の安全性が高められる故に、物理アドレス空間に対してＤＭＡＣ８を安心して利用でき、また、システムの構築も容易になる。更に、前記記憶保護違反に対してＤＭＡＣ８自らがデータ転送動作を抑止でき、無駄なデータ転送動作を省くことができるから、データ処理システム及びマイクロコンピュータ１によるデータ処理効率の向上に寄与できる。
【００９９】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１００】
例えば、データ転送制御装置は単一のデータ転送チャネルを有するものであってもよい。また、リソースセレクト情報による記憶保護違反の判定態様は前述のようなマイクロコンピュータの内外アドレスの取り違えの状態に限定されず、更に詳細に記憶保護違反の態様を判定してもよい。図２０及び図２１で説明した記憶保護違反の判定テーブルによる判定論理をもう少し複雑にするだけで済む。
【０１０１】
また、ＤＭＡＣの出力アドレス信号ををバスステートコントローラの代わりに命令ＴＬＢ又はユニファイドＴＬＢに供給するように構成すれば、ＤＭＡＣを論理アドレス空間に対して利用することも可能である。この場合であっても、ＤＭＡＣはＴＬＢとは違った意味で記憶保護を実現することができる。
【０１０２】
以上の説明では主として本発明者によってなされた発明を単一の半導体基板に集積化された１チップのマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、データ転送制御装置、マイクロコンピュータを、例えばＴＴＬ回路によって構成することも可能である。
【０１０３】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【０１０４】
すなわち、リソースセレクト情報とアドレスレジスタの双方の設定情報が整合して始めてデータ転送が開始されるから、データ転送制御装置によるデータ転送動作に対する記憶保護に高い信頼性を得ることができる。しかも、記憶保護違反に対してデータ転送制御装置自らがデータ転送動作を抑止でき、無駄なデータ転送動作を省くことができる。
【０１０５】
上記記憶保護に利用されるリソースセレクト情報はデータ転送要求に対してどのデータ転送チャネルを用いるかを判定するための情報と兼用することにより、データ転送チャネルの機能割り当てとデータ転送における記憶保護との双方に対して別々に制御情報を設定することを要しなくても済む。
【０１０６】
メモリマネージメントユニットの記憶保護が直接的に働かないデータ転送制御装置によるデータ転送動作に対してもアクセス禁止領域のデータ保護を実現でき、そのようなデータ転送制御装置を適用したマイクロコンピュータ若しくはデータ処理システムの動作の安全性を高めることができる。システム動作の安全性が高められる故に、物理アドレス空間に対してデータ転送制御装置を安心して利用でき、また、システムの構築も容易になる。更に、前記記憶保護違反に対してデータ転送制御装置自らがデータ転送動作を抑止でき、無駄なデータ転送動作を省くことができるから、データ処理システム及びマイクロコンピュータによるデータ処理効率の向上に寄与できる。
【図面の簡単な説明】
【図１】本発明の一例に係るマイクロコンピュータのブロック図である。
【図２】ＤＭＡＣの全体的な構成を示すブロック図である。
【図３】データ転送チャネルの詳細を示すブロック図である。
【図４】チャネルコントロールレジスタの一例フォーマット図である。
【図５】チャネルイネーブルビットの説明図である。
【図６】リソースセレクト情報の説明図である。
【図７】トランスファエンドビットの説明図である。
【図８】ディスティネーションアドレスモード情報の説明図である。
【図９】ソースアドレスモード情報の説明図である。
【図１０】トランスミットサイズ情報の説明図である。
【図１１】インタラプトイネーブルビットの説明図である。
【図１２】トランスミットモードビットの説明図である。
【図１３】オペレーションレジスタの一例フォーマット図である。
【図１４】プライオリティーモード情報の説明図である。
【図１５】アドレスエラーフラグの説明図である。
【図１６】ＮＭＩフラグの説明図である。
【図１７】マスタイネーブルビットの説明図である。
【図１８】ＤＭＡＣによる記憶保護のためのアドレスエラー検出部とレジスタ部との接続関係を示すブロック図である。
【図１９】マイクロコンピュータが２９ビットの物理アドレスで管理する物理アドレス空間の説明図である。
【図２０】ソースアドレス比較部によるソースアドレスのアドレスエラー態様を示す説明図である。
【図２１】ディスティネーションアドレス比較部によるディスティネーションアドレスのアドレスエラー態様を示す説明図である。
【図２２】ＤＭＡＣの一例動作フローチャートである。
【図２３】記憶保護によるＤＭＡ転送抑止の場合の一例タイミングチャートである。
【図２４】シングルアドレスモードとバーストモードが指定されている場合にアドレスエラーが検出されないとき転送要求の発生を待ってデータ転送を行うときの一例タイミングチャートである。
【図２５】デュアルアドレスモードとバーストモードが指定されている場合にアドレスエラーが検出されないとき転送要求の発生を待ってデータ転送を行うときの一例タイミングチャートである。
【図２６】デュアルアドレスモードとサイクルスチールモードが指定されている場合にアドレスエラーが検出されないとき転送要求の発生を待ってデータ転送を行うときの一例タイミングチャートである。
【符号の説明】
１  マイクロコンピュータ
２  ＦＰＵ
３  ＣＰＵ
４  アドレス変換・キャッシュユニット
４０  命令ＴＬＢ
４１  ユニファイドＴＬＢ
４２  命令キャッシュメモリ
４３  データキャッシュメモリ
４４  キャッシュＴＬＢコントローラ
５  バスステートコントローラ
５８  データバッファ
６  外部バスインタフェース回路
６０  外部データバス
６１  外部アドレスバス
６２〜６５  外部周辺回路
７０〜７４  内蔵周辺回路
８  ＤＭＡＣ
８０  バス
８１  バスインタフェース回路
８２  回数制御回路
８３  レジスタ制御回路
８４  起動制御回路
ＢＲＥＱ  バス権要求信号
ＢＡＣＫ  バス権承認信号
８５  要求優先制御回路
ＳＡＲｎ  ソースアドレスレジスタ
９０  ソースアドレスレジスタ部
ＤＡＲｎ  ディスティネーションアドレスレジスタ
９１  ディスティネーションアドレスレジスタ部
ＴＣＲｎ  トランスファカウントレジスタ
ＣＨＣＲｎチャネルコントロールレジスタ
ＤＥ  チャネルイネーブルビット
ＲＳ０〜ＲＳ３  リソースセレクト情報
ＤＭＡＯＲ  オペレーションレジスタ
ＰＲ０，ＰＲ１  プライオリティーモード情報
ＡＥ  アドレスエラーフラグ
ＤＭＥ  マスタイネーブルビット
ＳＡＣｎ  ソースアドレス比較部
ＤＡＣｎ  ディスティネーションアドレス比較部
９６  アドレスエラー検出部
【図１】
0003790323.tif 000002
【図２】
0003790323.tif 000003
【図３】
0003790323.tif 000004
【図４】
0003790323.tif 000005
【図５】
0003790323.tif 000006
【図６】
0003790323.tif 000007
【図７】
0003790323.tif 000008
【図８】
0003790323.tif 000009
【図９】
0003790323.tif 000010
【図１０】
0003790323.tif 000011
【図１１】
0003790323.tif 000012
【図１２】
0003790323.tif 000013
【図１３】
0003790323.tif 000014
【図１４】
0003790323.tif 000015
【図１５】
0003790323.tif 000016
【図１６】
0003790323.tif 000017
【図１７】
0003790323.tif 000018
【図１８】
0003790323.tif 000019
【図１９】
0003790323.tif 000020
【図２０】
0003790323.tif 000021
【図２１】
0003790323.tif 000022
【図２２】
0003790323.tif 000023
【図２３】
0003790323.tif 000024
【図２４】
0003790323.tif 000025
【図２５】
0003790323.tif 000026
【図２６】
0003790323.tif 000027