(57)【要約】【課題】従来のメモリアクセス監視装置では、ＣＰＵからの信号に対してアクセス違反を前提として検出しているため、ＣＰＵとは無関係に動作するＤＭＡコントローラからのメモリアクセスに対しての不正を検出することができなかった。【解決手段】ＣＰＵとシステム全体のシステムレベルを制御するシステムレベル制御回路を設けメモリアクセスをハードウェアで制御し、ＤＭＡコントローラにアクセスしてはならないアドレス空間であることを検出する設定検出回路を備えることで、ＤＭＡコントローラからの不正なメモリアクセスを防止する。【選択図】図１
2007272261.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとシステム全体のシステムレベルを制御するシステムレベル制御回路があり、そのシステムレベルに対応してアクセス制御のできるメモリを備えた情報処理装置があって、さらに、ソースアドレス、デスティネーションアドレスからシステムレベルにより、アクセスしてはならないアドレス空間であることを検出する設定検出回路を有し、エラーを通知し転送を行わないことを特徴とするＤＭＡコントローラとを有する情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、さらに、ソースアドレス、デスティネーションアドレスと、転送サイズからシステムレベルにより、アクセスしてはならないアドレス空間を含む転送であることを検出する設定検出回路を有し、エラーを通知し転送を行わないことを特徴とするＤＭＡコントローラとを有する情報処理装置。
【請求項３】
請求項１記載の情報処理装置であって、さらに、ソースアドレス、転送サイズ、デスティネーションアドレスからシステムレベルにより、アクセスしてはならないアドレス空間に対する転送であることを検出する設定検出回路を有し、転送中にアクセスしてはならないアドレス空間に達した時に、エラーを通知し転送を行わないことを特徴とするＤＭＡコントローラとを有する情報処理装置。
【請求項４】
請求項１記載の情報処理装置であって、さらに、ソースアドレス、転送サイズ、デスティネーションアドレスからシステムレベルにより、アクセスしてはならないアドレス空間に対する転送であることを検出する設定検出回路を有し、転送中にアクセスしてはならないアドレス空間に達した時に、データ転送をせずにダミーの転送をして操作完了することを特徴とするＤＭＡコントローラとを有する情報処理装置。
【請求項５】
請求項１記載の情報処理装置であって、さらに、ソースアドレス、転送サイズ、デスティネーションアドレスからシステムレベルにより、アクセスしてはならないアドレス空間に対する転送であることを検出する設定検出回路を有し、転送中にアクセスしてはならないアドレス空間に達した時に、データ転送をせずにダミーの転送を行うが、この時に、システムレベルの変更が発生しアクセスが可能となった場合において、エラーを通知し転送を行わないことを特徴とするＤＭＡコントローラとを有する情報処理装置。
【請求項６】
請求項１記載の情報処理装置であって、さらに、ソースアドレス、転送サイズ、デスティネーションアドレスからシステムレベルにより、アクセスしてはならないアドレス空間に対する転送であることを検出する設定検出回路を有し、転送中にアクセスしてはならないアドレス空間に達した時に、データ転送をせずにダミーの転送を行うが、この時に、システムレベルの変更が発生しアクセスが可能となった場合において、メモリにアクセスせずにダミーの値を転送し操作完了することを特徴とするＤＭＡコントローラとを有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム全体のシステムレベルにより、アクセスしてはならないアドレス空間であることを検出する設定検出回路を備えたＤＭＡコントローラを伴う情報処理半導体装置に関する。
【背景技術】
【０００２】
従来は、システムにおけるメモリに対するアクセスの監視をプログラム単位で行う方法があった。これはプログラムのアクセス違反を、ハードウェアであるアクセス監視装置が監視する。アクセス監視装置は、ＣＰＵからメモリに出力される信号を取得する。そして、アクセス監視装置は、各プログラムに許可されるメモリ領域の情報であるアクセス許可テーブルを内蔵し、それを参照することによって、ＣＰＵからの信号のアクセス違反を検出する。このように、ハードウェアで不正アクセスを監視することで、ソフトウェアの書き換えなどによる不正アクセスを防止することが可能であった。
【特許文献１】特開２００１−３２５１５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前記従来のアクセス監視装置では、ＣＰＵからの信号に対してアクセス違反を前提として検出しているため、ＣＰＵとは無関係に動作するＤＭＡコントローラからのメモリアクセスに対しての不正を検出することができなかった。
【０００４】
本発明は、上記課題を解決するために、ＣＰＵとシステム全体のシステムレベルを制御するシステムレベル制御回路を設けメモリアクセスをハードウェアで制御し、ＤＭＡコントローラにアクセスしてはならないアドレス空間であることを検出する設定検出回路を備えることで、ＤＭＡコントローラからの不正なメモリアクセスを防止することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するための、本特許に係る請求項１に記載の発明は、ＣＰＵとシステム全体のシステムレベルを制御するシステムレベル制御回路があり、そのシステムレベルに対応してアクセス制御のできるメモリを備えた情報処理装置があって、さらに、ソースアドレス、デスティネーションアドレスからシステムレベルにより、アクセスしてはならないアドレス空間であることを検出する設定検出回路を有し、エラーを通知し転送を行わないことを特徴とするＤＭＡコントローラとを有する情報処理装置である。
【０００６】
本特許に係る請求項２に記載の発明は、請求項１記載の情報処理装置であって、さらに、ソースアドレス、デスティネーションアドレスと、転送サイズからシステムレベルにより、アクセスしてはならないアドレス空間を含む転送であることを検出する設定検出回路を有し、エラーを通知し転送を行わないことを特徴とするＤＭＡコントローラとを有する情報処理装置である。
【０００７】
本特許に係る請求項３に記載の発明は、請求項１記載の情報処理装置であって、さらに、ソースアドレス、転送サイズ、デスティネーションアドレスからシステムレベルにより、アクセスしてはならないアドレス空間に対する転送であることを検出する設定検出回路を有し、転送中にアクセスしてはならないアドレス空間に達した時に、エラーを通知し転送を行わないことを特徴とするＤＭＡコントローラとを有する情報処理装置である。
【０００８】
本特許に係る請求項４に記載の発明は、請求項１記載の情報処理装置であって、さらに、ソースアドレス、転送サイズ、デスティネーションアドレスからシステムレベルにより、アクセスしてはならないアドレス空間に対する転送であることを検出する設定検出回路を有し、転送中にアクセスしてはならないアドレス空間に達した時に、データ転送をせずにダミーの転送をして操作完了することを特徴とするＤＭＡコントローラとを有する情報処理装置である。
【０００９】
本特許に係る請求項５に記載の発明は、請求項１記載の情報処理装置であって、さらに、ソースアドレス、転送サイズ、デスティネーションアドレスからシステムレベルにより、アクセスしてはならないアドレス空間に対する転送であることを検出する設定検出回路を有し、転送中にアクセスしてはならないアドレス空間に達した時に、データ転送をせずにダミーの転送を行うが、この時に、システムレベルの変更が発生しアクセスが可能となった場合において、エラーを通知し転送を行わないことを特徴とするＤＭＡコントローラとを有する情報処理装置である。
【００１０】
本特許に係る請求項６に記載の発明は、請求項１記載の情報処理装置であって、さらに、ソースアドレス、転送サイズ、デスティネーションアドレスからシステムレベルにより、アクセスしてはならないアドレス空間に対する転送であることを検出する設定検出回路を有し、転送中にアクセスしてはならないアドレス空間に達した時に、データ転送をせずにダミーの転送を行うが、この時に、システムレベルの変更が発生しアクセスが可能となった場合において、メモリにアクセスせずにダミーの値を転送し操作完了することを特徴とするＤＭＡコントローラとを有する情報処理装置である。
【発明の効果】
【００１１】
本発明のＤＭＡコントローラによれば、ＤＭＡコントローラからの不正なメモリアクセスを防止することが可能となる。
【００１２】
ＣＰＵからの不正な操作によってシステムレベルが変更された場合においても設定時のシステムレベルの制限に応じたＤＭＡ転送が可能となる。
【００１３】
さらに、ＤＭＡコントローラにより、ＣＰＵ処理の低減がはかられ、省電力などの効果が得ることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１５】
（実施の形態１）
図１は本発明の半導体処理装置１の構成図である。図２は本発明の実施の形態１におけるＤＭＡコントローラ２０内の設定検出回路２５の処理の内容である。
【００１６】
本発明の半導体処理装置１はＣＰＵ１０、ＤＭＡコントローラ２０、システムレベル制御回路３０、レベル０メモリ５０、レベル１メモリ５１がシステムバス４０を介して接続している。
【００１７】
半導体処理装置１はシステムレベル制御回路３０によってシステム全体のシステムレベルを制御する。このシステムレベル制御回路３０はＣＰＵ１０からアクセスできるレベルレジスタ３１を持ち、このレジスタによってシステムレベルの変更を行うことができる。
【００１８】
システムレベルはＤＭＡなどの周辺装置にはレベル通知信号３２として通知される。また、レベルメモリ制御信号３３としてメモリに通知され、システムレベルに対応してレベルメモリ５０、５１の制御を行う。例えば、これらのシステムレベル制御によって、システムレベル０下ではレベル１メモリ５１はアクセス不可、システムレベル１下ではレベル１メモリ５１はアクセス可とするような実装が可能である。
【００１９】
ＤＭＡコントローラ２０は、起動レジスタ２１、ＳＲＣアドレスレジスタ２２、転送サイズ２３、ＤＳＴアドレスレジスタ２４を持ち、ＳＲＣアドレスレジスタ２２から転送サイズ２３分をＤＳＴアドレスレジスタ２４にコピーする。
【００２０】
ＤＭＡコントローラ２０内の設定検出回路２５は、図２のフローにしたがってシステムレベルによってアクセスしてはならないメモリアドレス空間が含まれるかを検出し、エラーである場合は、エラー通知信号２９によってＣＰＵ１０にエラーであることを通知する。図２は本発明の実施の形態１におけるＤＭＡコントローラ内の設定検出回路２５の処理である。
【００２１】
設定検出回路２５は、レベル通知信号３２によって通知されるシステムレベルを確認するＳ１００。次に、ＳＲＣアドレスレジスタ２２がレベルによってアクセス可能かを確認するＳ１０１。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。次に、ＤＳＴアドレスレジスタ２４がレベルによってアクセス可能かを確認するＳ１０２。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。ＳＲＣ、ＤＳＴアドレスレジスタともアクセス可能ならば、ＤＭＡを起動し、ＤＭＡ転送を行うＳ１１０。
【００２２】
（実施の形態２）
図１の構成をもとに、設定検出回路２５の処理が図３の処理を行う。図３は本発明の実施の形態２におけるＤＭＡコントローラ内の設定検出回路２５の処理である。
【００２３】
設定検出回路２５は、レベル通知信号３２によって通知されるシステムレベルを確認するＳ１００。次に、ＳＲＣアドレスレジスタ２２がレベルによってアクセス可能かを確認するＳ１０１。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。次に、ＤＳＴアドレスレジスタ２４がレベルによってアクセス可能かを確認するＳ１０２。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。
【００２４】
ソース、デスティネーションアドレスともアクセス可能ならば、ＳＲＣアドレスレジスタ２２からＳＲＣアドレスレジスタ２２から転送サイズアドレス２３の転送範囲とＤＳＴアドレスレジスタ２４から転送サイズアドレス２３の範囲に、システムレベルによりアクセス不可となる領域が含まれないことを確認するＳ１０３。もし、アクセス不可能な領域が含まれる場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。アクセス不可となる領域が含まれない場合、ＤＭＡを起動し、ＤＭＡ転送を行うＳ１１０。
【００２５】
（実施の形態３）
図１の構成をもとに、設定検出回路２５の処理が図４の処理を行う。図４は本発明の実施の形態３におけるＤＭＡコントローラ内の設定検出回路２５の処理である。
【００２６】
設定検出回路２５は、レベル通知信号３２によって通知されるシステムレベルを確認するＳ１００。次に、ＳＲＣアドレスレジスタ２２がレベルによってアクセス可能かを確認するＳ１０１。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。次に、ＤＳＴアドレスレジスタ２４がレベルによってアクセス可能かを確認するＳ１０２。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。ＳＲＣ、ＤＳＴアドレスレジスタともアクセス可能ならば、リードアドレスにＳＲＣアドレスレジスタ２２、ライトアドレスにＤＳＴアドレスレジスタ２４を設定し、ＤＭＡを起動するＳ１５０。
【００２７】
リードアドレスがレベルによってアクセス可能かを確認するＳ１５１。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。ライトアドレスがレベルによってアクセス可能かを確認するＳ１５１。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。リードアドレス、ライトアドレスアクセス可能ならば、データを転送するＳ１７０。
【００２８】
次に、リードアドレス、ライトアドレスを加算する。そして、データ転送の総量と転送サイズ２３とを比較する。もし、データ転送の総量が転送サイズに達していない場合はＳ１５１以降の処理を繰り返すＳ１８０。
【００２９】
（実施の形態４）
図１の構成をもとに、設定検出回路２５の処理が図５の処理を行う。図６は本発明の実施の形態３におけるＤＭＡコントローラ内の設定検出回路２５の処理である。
【００３０】
設定検出回路２５は、レベル通知信号３２によって通知されるシステムレベルを確認するＳ１００。次に、ＳＲＣアドレスレジスタ２２がレベルによってアクセス可能かを確認するＳ１０１。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。次に、ＤＳＴアドレスレジスタ２４がレベルによってアクセス可能かを確認するＳ１０２。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。
【００３１】
ＳＲＣ、ＤＳＴアドレスレジスタともアクセス可能ならば、リードアドレスにＳＲＣアドレスレジスタ２２、ライトアドレスにＤＳＴアドレスレジスタ２４を設定し、ＤＭＡを起動するＳ１５０。
【００３２】
リードアドレスがレベルによってアクセス可能かを確認するＳ１５１。もし、アクセス不可能な場合は、ダミーのデータを転送するＳ１７５。ライトアドレスがレベルによってアクセス可能かを確認するＳ１５１。もし、アクセス不可能な場合は、ダミーのデータを転送するＳ１７５。リードアドレス、ライトアドレスアクセス可能ならば、データを転送するＳ１７０。次に、リードアドレス、ライトアドレスを加算する。そして、データ転送の総量と転送サイズ２３とを比較する。もし、データ転送の総量が転送サイズに達していない場合はＳ１５１以降の処理を繰り返すＳ１８０。
【００３３】
（実施の形態５）
図１の構成をもとに、設定検出回路２５の処理が図６の処理を行う。図６は本発明の実施の形態３におけるＤＭＡコントローラ内の設定検出回路２５の処理である。
【００３４】
設定検出回路２５は、レベル通知信号３２によって通知されるシステムレベルを確認するＳ１００。次に、ＳＲＣアドレスレジスタ２２がレベルによってアクセス可能かを確認するＳ１０１。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。次に、ＤＳＴアドレスレジスタ２４がレベルによってアクセス可能かを確認するＳ１０２。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。
【００３５】
ＳＲＣ、ＤＳＴアドレスレジスタともアクセス可能ならば、リードアドレスにＳＲＣアドレスレジスタ２２、ライトアドレスにＤＳＴアドレスレジスタ２４を設定し、ＤＭＡを起動するＳ１５０。
【００３６】
リードアドレスがレベルによってアクセス可能かを確認するＳ１５１。もし、アクセス不可能な場合は、ダミーのデータを転送するＳ１７５。ライトアドレスがレベルによってアクセス可能かを確認するＳ１５１。もし、アクセス不可能な場合は、ダミーのデータを転送するＳ１７５。
【００３７】
次に、ＣＰＵ１０からシステムレベル制御回路３０に対してレベルの変更が行われていないか、レベル通知信号３２を確認するＳ１６０。もし、レベル変更があった場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。レベル変更がないならば、データを転送するＳ１７０。
【００３８】
次に、リードアドレス、ライトアドレスを加算する。そして、データ転送の総量と転送サイズ２３とを比較する。もし、データ転送の総量が転送サイズに達していない場合はＳ１５１以降の処理を繰り返すＳ１８０。
【００３９】
（実施の形態６）
図１の構成をもとに、設定検出回路２５の処理が図７の処理を行う。図７は本発明の実施の形態３におけるＤＭＡコントローラ内の設定検出回路２５の処理である。
【００４０】
設定検出回路２５は、レベル通知信号３２によって通知されるシステムレベルを確認するＳ１００。次に、ＳＲＣアドレスレジスタ２２がレベルによってアクセス可能かを確認するＳ１０１。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。
【００４１】
次に、ＤＳＴアドレスレジスタ２４がレベルによってアクセス可能かを確認するＳ１０２。もし、アクセス不可能な場合は、エラー通知信号２９によってエラーをＣＰＵ１０に通知するＳ２００。ＳＲＣ、ＤＳＴアドレスレジスタともアクセス可能ならば、リードアドレスにＳＲＣアドレスレジスタ２２、ライトアドレスにＤＳＴアドレスレジスタ２４を設定し、ＤＭＡを起動するＳ１５０。
【００４２】
リードアドレスがレベルによってアクセス可能かを確認するＳ１５１。もし、アクセス不可能な場合は、ダミーのデータを転送するＳ１７５。ライトアドレスがレベルによってアクセス可能かを確認するＳ１５１。もし、アクセス不可能な場合は、ダミーのデータを転送するＳ１７５。
【００４３】
次に、ＣＰＵ１０からシステムレベル制御回路３０に対してレベルの変更が行われていないか、レベル通知信号３２を確認するＳ１６０。もし、レベル変更があった場合は、ダミーのデータを転送するＳ１７５。
【００４４】
レベル変更がないならば、データを転送するＳ１７０。次に、リードアドレス、ライトアドレスを加算する。そして、データ転送の総量と転送サイズ２３とを比較する。もし、データ転送の総量が転送サイズに達していない場合はＳ１５１以降の処理を繰り返すＳ１８０。
【産業上の利用可能性】
【００４５】
本発明は、システムにレベルを設けてメモリアクセス制限を行う情報処理装置において、システムレベルとの一貫性を保証したＤＭＡコントローラを設けることができ、ＣＰＵ処理の低減がはかられ、省電力などの効果が得ることができ、その利用可能性は非常に広く且つ大きい。
【図面の簡単な説明】
【００４６】
【図１】本発明の情報処理装置の構成図
【図２】本発明の実施の形態１におけるＤＭＡコントローラ内の設定検出回路の処理を示す図
【図３】本発明の実施の形態２におけるＤＭＡコントローラ内の設定検出回路の処理を示す図
【図４】本発明の実施の形態３におけるＤＭＡコントローラ内の設定検出回路の処理を示す図
【図５】本発明の実施の形態４におけるＤＭＡコントローラ内の設定検出回路の処理を示す図
【図６】本発明の実施の形態５におけるＤＭＡコントローラ内の設定検出回路の処理を示す図
【図７】本発明の実施の形態６におけるＤＭＡコントローラ内の設定検出回路の処理を示す図
【図８】従来の構成図
【符号の説明】
【００４７】
１    半導体処理装置
１０    ＣＰＵ
２０    ＤＭＡコントローラ
２１    起動レジスタ
２２    ＳＲＣアドレスレジスタ
２３    転送サイズレジスタ
２４    ＤＳＴアドレスレジスタ
２５    設定検出回路
２９    エラー通知信号
３０    システムレベル制御回路
３１    レベルレジスタ
３２    レベル通知信号
３３    レベルメモリ制御信号
４０    システムバス
５０    レベル０メモリ
５１    レベル１メモリ
【図１】
2007272261.tif 000003
【図２】
2007272261.tif 000004
【図３】
2007272261.tif 000005
【図４】
2007272261.tif 000006
【図５】
2007272261.tif 000007
【図６】
2007272261.tif 000008
【図７】
2007272261.tif 000009
【図８】
2007272261.tif 000010