(57)【要約】【課題】処理ロジックのうちの種々の部分の間でデータを共用しなければならない場合、セキュアデータへのアクセスを規制すること【解決手段】メイン処理ロジックは補助処理ロジックによってアクセスできる割り当てられたメモリとすべきメモリの一部を定めることができ、補助処理ロジックによる割り当てられたメモリへのアクセスを制御するためのメモリ管理ユニットが設けられる。【選択図】図１
2006216012.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置であって、
あるシーケンスの命令を実行し、１つのプロセスを実施するメイン処理ロジックと、
前記メイン処理ロジックのために前記プロセスの少なくとも一部を実施する補助処理ロジックと、
前記プロセスを実施する際に前記メイン処理ロジックがアクセスできるメモリであって、前記プロセスの少なくとも一部を実施する際に前記補助処理ロジックに対して割り当てられるアクセス可能なメモリとなるように前記メモリの一部を前記メイン処理ロジックが定める前記メモリと、
前記メイン処理ロジックによってプログラム可能であると共に前記補助処理ロジックによる前記割り当てられたメモリへのアクセスを制御するメモリ管理ユニットであって、前記割り当てられたメモリに関して前記補助処理ロジックが発生したアクセスリクエストに対し、前記メモリ管理ユニットがメモリアドレスと前記メモリアドレスにおける前記割り当てられたメモリの１つ以上の特性を識別する１つ以上の関連するメモリ属性とを発生する前記メモリ管理ユニットと、を備えた前記データ処理装置。
【請求項２】
前記割り当てられたメモリが前記メイン処理ロジックおよび前記補助処理ロジックの双方によってアクセス可能な共用されるメモリとなっている、請求項１記載のデータ処理装置。
【請求項３】
前記メイン処理ロジックが１組のテーブルを発生するようになっており、前記組内の各テーブルが多数のデスクリプタを含み、各デスクリプタが関連するアドレスレンジに対してアクセス制御情報を定めており、前記アクセス制御情報から前記アドレスと１つ以上の関連するメモリ属性とを誘導でき、前記メイン処理ロジックが更に前記テーブルの組のロケーションと各テーブルを使用すべき状況とを識別するよう前記メモリ管理ユニットをプログラムする、請求項１記載のデータ処理装置。
【請求項４】
前記メイン処理ロジックが複数のプロセスを実施し、前記テーブルの組が各プロセスのためのテーブルを備え、前記補助処理ロジックが前記メイン処理ロジックのために前記各プロセスの一部を実施できる、請求項３記載のデータ処理装置。
【請求項５】
前記補助処理ロジックが前記メイン処理ロジックのために多数のプロセスの少なくとも一部を実施し、前記補助処理ロジックが発生するアクセスリクエストに関連し、前記メモリ管理ユニットが前記アクセスリクエストが関連するプロセスの表示を受信し、前記メモリ管理ユニットが前記表示に基づき前記テーブルの組から前記テーブルの１つを選択する、請求項４記載のデータ処理装置。
【請求項６】
前記テーブルの組が発生され、特権モードで作動しているときに前記メイン処理ロジックによって前記メモリ管理ユニットがプログラムされる、請求項３記載のデータ処理装置。
【請求項７】
前記割り当てられたメモリがキャッシュ可能なメモリであり、前記データ処理装置が前記メイン処理ロジックと前記補助処理ロジックとによってアクセス可能であると共にキャッシュ可能なメモリに関連したデータを記憶するキャッシュを更に備え、前記メモリ管理ユニットが発生した１つ以上の関連するメモリ属性が前記キャッシュがアクセスリクエストの対象であるデータをどのように取り扱うべきかを識別するキャッシュ属性を含む、請求項１記載のデータ処理装置。
【請求項８】
前記キャッシュが前記データ処理装置内に設けられた複数の異なるレベルのうちの１つのキャッシュであり、前記キャッシュ属性がキャッシュの各レベルに対し、そのレベルのキャッシュがアクセスリクエストの対象であるデータをどのように取り扱うべきかを識別する、請求項７記載のデータ処理装置。
【請求項９】
前記複数の異なるレベルのキャッシュが内部キャッシュと外部キャッシュとにグループ分けされており、前記キャッシュ属性が前記内部キャッシュおよび前記外部キャッシュに対して前記キャッシュが前記アクセスリクエストの対象であるデータをどのように取り扱うべきかを識別する、請求項８記載のデータ処理装置。
【請求項１０】
複数の異なるセキュリティレベルが定められており、前記メモリアドレスに関連する前記１つ以上のメモリ属性が前記メモリアドレスによって識別されるメモリロケーションにアクセスするのに必要なセキュリティレベルを識別する保護属性を含む、請求項１記載のデータ処理装置。
【請求項１１】
前記メイン処理ロジックが複数のモードおよび複数ドメインで作動でき、前記複数のドメインがセキュアドメインと非セキュアドメインとを含み、前記複数のモードが前記非セキュアドメインにおけるモードである少なくとも１つの非セキュアモードと、前記セキュアモードにおけるモードである少なくとも１つのセキュアモードとを備え、前記メイン処理ロジックがセキュアモードでプログラムを実行しているときに前記メイン処理ロジックが非セキュアモードで作動中にアクセスできないセキュアデータに前記プログラムがアクセスするように作動でき、前記セキュリティレベルが前記複数のモードと複数のドメインとに関して定められる、請求項１０記載のデータ処理装置。
【請求項１２】
前記メイン処理ロジックが複数のモードおよび複数ドメインで作動でき、前記複数のドメインがセキュアドメインと非セキュアドメインとを含み、前記複数のモードが前記非セキュアドメインにおけるモードである少なくとも１つの非セキュアモードと、前記セキュアモードにおけるモードである少なくとも１つのセキュアモードとを備え、前記メイン処理ロジックがセキュアモードでプログラムを実行しているときに前記メイン処理ロジックが非セキュアモードで作動中にアクセスできないセキュアデータに前記プログラムがアクセスするように作動でき、前記セキュリティレベルが前記複数のモードと複数のドメインとに関して定められ、前記少なくとも１つの非セキュアモードにおいて前記メイン処理ロジックが非セキュアオペレーティングシステムの制御によって作動でき、前記少なくとも１つのセキュアモードにおいて前記メイン処理ロジックがセキュアオペレーティングシステムの制御によって作動でき、前記セキュアオペレーティングシステムが前記テーブルの組を発生すると共に、前記メイン処理ロジックが特権セキュアモードで作動しているときに前記メモリ管理ユニットをプログラムする、請求項３記載のデータ処理装置。
【請求項１３】
前記メモリ管理ユニットが前記アクセスリクエストを受信したときに、前記アクセスリクエストによって指定される仮想アドレスを変換することによって発生される物理アドレスをメモリアドレスとして発生する、請求項１記載のデータ処理装置。
【請求項１４】
前記複数の補助処理ロジックが設けられている、請求項１記載のデータ処理装置。
【請求項１５】
各補助処理ロジックに対し、前記メモリ管理ユニットのうちの１つが設けられている、請求項１４記載のデータ処理装置。
【請求項１６】
あるシーケンスの命令を実行し、プロセスを実施するためのメイン処理ロジックと、前記メイン処理ロジックのために前記プロセスのうちの少なくとも一部を実施するための補助処理ロジックとを備えた、データ処理装置内のメモリへのアクセスを制御する方法において、
（ａ）前記プロセスのうちの前記少なくとも一部を実施しているときに、前記補助処理ロジックにアクセス可能な割り当てられるメモリとなるように前記メモリの一部を定めるステップと、
（ｂ）前記メイン処理ロジックの制御によりメモリ管理ユニットをプログラムするステップと、
（ｃ）前記割り当てられるメモリに関する前記補助処理ロジックによって発生されるアクセスリクエストに対し、前記メモリ管理ユニットが前記ステップ（ｂ）において実行されたプログラムに応じてメモリアドレスと前記メモリアドレスにおける割り当てられたメモリの１つ以上の特性を識別する１つ以上の関連するメモリ特性とを発生するように、前記補助処理ロジックによる前記指定されたメモリへのアクセスを制御するよう、前記メモリ管理ユニットを使用するステップとを備えた、データ処理装置におけるメモリへのアクセスを制御する方法。
【請求項１７】
前記割り当てられたメモリが前記メイン処理ロジックおよび前記補助処理ロジックの双方によってアクセス可能な共用されるメモリとなっている、請求項１６記載の方法。
【請求項１８】
前記メイン処理ロジックの制御により、一組のテーブルを発生するステップを更に備え、
前記テーブルの組内の各テーブルが多数のデスクリプタを含み、各デスクリプタが関連するアドレスレンジに対してアクセス制御情報を定め、前記制御情報から前記アドレスおよび１つ以上の関連するメモリ属性を誘導できるようになっており、
前記ステップ（ｂ）において、前記テーブルの組のロケーションおよび各テーブルを使用すべき状況を識別するように、前記メモリ管理ユニットをプログラムする、請求項１６記載の方法。
【請求項１９】
前記メイン処理ロジックが複数のプロセスを実施し、前記テーブルの組が各プロセスのためのテーブルを備え、前記補助処理ロジックが前記メイン処理ロジックのために前記各プロセスの一部を実施できる、請求項１８記載の方法。
【請求項２０】
前記補助処理ロジックが前記メイン処理ロジックのために多数のプロセスの少なくとも一部を実施するようになっており、
前記補助処理ロジックが発生するアクセスリクエストに関連し、前記アクセスリクエストが関連するプロセスの表示を前記メモリ管理ユニットに提供するステップを更に備え、
前記ステップ（ｃ）において、前記メモリ管理ユニットが前記テーブルの組からの前記テーブルのうちの１つを前記表示に基づき選択する、請求項１９記載の方法。
【請求項２１】
前記テーブルの組を発生し、特権モードで作動しているときに前記メイン処理ロジックによって前記メモリ管理ユニットをプログラムする、請求項１８記載の方法。
【請求項２２】
前記割り当てられたメモリがキャッシュ可能なメモリであり、前記データ処理装置が前記メイン処理ロジックおよび前記補助処理ロジックによってアクセス可能であると共にキャッシュ可能なメモリに関連したデータを記憶するようになっているキャッシュを更に備え、前記ステップ（ｃ）において前記メモリ管理ユニットが発生した１つ以上の関連するメモリ属性は前記キャッシュがアクセスリクエストの対象であるデータをどのように取り扱うべきかを識別するキャッシュ属性を含む、請求項１６記載の方法。
【請求項２３】
前記キャッシュが前記データ処理装置内に設けられた複数の異なるレベルのうちの１つのキャッシュであり、前記キャッシュ属性がキャッシュの各レベルに対し、そのレベルのキャッシュがアクセスリクエストの対象であるデータをどのように取り扱うべきかを識別する、請求項２２記載の方法。
【請求項２４】
前記複数の異なるレベルのキャッシュが内部キャッシュと外部キャッシュとにグループ分けされており、前記キャッシュ属性が前記内部キャッシュおよび前記外部キャッシュに対して前記キャッシュが前記アクセスリクエストの対象であるデータをどのように取り扱うべきかを識別する、請求項２３記載の方法。
【請求項２５】
複数の異なるセキュリティレベルが定められており、前記ステップ（ｃ）において前記メモリアドレスに関連する前記１つ以上のメモリ属性が前記メモリアドレスによって識別されるメモリロケーションにアクセスするのに必要なセキュリティレベルを識別する保護属性を含む、請求項１６記載の方法。
【請求項２６】
前記メイン処理ロジックが複数のモードおよび複数ドメインで作動でき、前記複数のドメインがセキュアドメインと非セキュアドメインとを含み、前記複数のモードが前記非セキュアドメインにおけるモードである少なくとも１つの非セキュアモードと、前記セキュアモードにおけるモードである少なくとも１つのセキュアモードとを備え、前記メイン処理ロジックがセキュアモードでプログラムを実行しているときに、前記メイン処理ロジックが非セキュアモードで作動中にアクセスできないセキュアデータに前記プログラムがアクセスするように作動でき、前記セキュリティレベルが前記複数のモードと複数のドメインとに関して定められる、請求項２５記載の方法。
【請求項２７】
前記メイン処理ロジックが複数のモードおよび複数ドメインで作動でき、前記複数のドメインがセキュアドメインと非セキュアドメインとを含み、前記複数のモードが前記非セキュアドメインにおけるモードである少なくとも１つの非セキュアモードと、前記セキュアモードにおけるモードである少なくとも１つのセキュアモードとを備え、前記メイン処理ロジックがセキュアモードでプログラムを実行しているときに、前記メイン処理ロジックが非セキュアモードで作動中にアクセスできないセキュアデータに前記プログラムがアクセスするように作動でき、前記セキュリティレベルが前記複数のモードと複数のドメインとに関して定められ、前記少なくとも１つの非セキュアモードにおいて、前記メイン処理ロジックが非セキュアオペレーティングシステムの制御によって作動でき、前記少なくとも１つのセキュアモードにおいて前記メイン処理ロジックがセキュアオペレーティングシステムの制御によって作動でき、前記セキュアオペレーティングシステムが前記テーブルの組を発生すると共に、前記メイン処理ロジックが特権セキュアモードで作動しているときに前記メモリ管理ユニットをプログラムする、請求項１８記載の方法。
【請求項２８】
前記ステップ（ｃ）において、前記メモリ管理ユニットが前記アクセスリクエストを受信したときに、前記アクセスリクエストによって指定される仮想アドレスを変換することによって発生される物理アドレスをメモリアドレスとして発生する、請求項１６記載の方法。
【請求項２９】
前記複数の補助処理ロジックが設けられている、請求項１６記載の方法。
【請求項３０】
各補助処理ロジックに対し、前記メモリ管理ユニットのうちの１つが設けられている、請求項２９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリへのアクセスを制御するためのデータ処理装置および方法に関する。
【背景技術】
【０００２】
データ処理タスクが複雑になるにつれ、データ処理システムがこれらタスクまたはプロセスの実行を処理するための２つ以上の処置ユニットを含むことがより一般的となりつつある。特にメイン処理ロジックの他に、例えば中央処理ユニット（ＣＰＵ）の他に、特定のタスクを実行するために特殊用途のハードウェアロジックの多数の追加部分が設けられるケースが多い。かかるハードウェアの追加部品の例としては、例えばデジタル信号処理（ＤＳＰ）、所定のビデオ処理機能などを実行するために使用されるようなハードウェアアクセレレータが挙げられる。
【０００３】
メイン処理ロジックのために、かかる追加ハードウェアロジックが所定のタスクを実行できるようにするためには、追加ハードウェアユニットに対し、処理を必要とする要求されたデータセットへのアクセス権が与えられなければならないことは明らかである。現在、このことはメイン処理ユニットがメモリの所定の部分と対応する追加ハードウェアロジックユニットとを共用するようにすることによって実行されており、一般にこのことはブートアップ時の物理的にアドレス指定されたメモリの連続するプールをリザーブすることによって達成されている。しかしながら、処理すべきデータセットのサイズが大きくなるにつれ、より多くの追加特殊用途のハードウェアユニット、例えばアクセレレータを設ける可能性が高くなっているが、所定のハードウェアユニットはあまり頻繁には使用されないので、システムのユーザーが比較的頻繁には使用しない可能性のあるかかる処理に対して必要なメモリを多数リザーブすることは好ましくなくなっている。例えばＶＧＡ  Ｈ．２６４は１つのピクチャバッファに対して３メガバイトを必要とし、５メガピクセルのカメラはＲＧＢ処理された画像に対しては１５メガバイトを必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
これを念頭に入れると、メイン処理ロジックと追加処理ロジックとの間でデータを共用するために、ブートアップ時の物理的にアドレス指定されたメモリの連続するプールをリザーブすることは非現実的となりつつあるので、このことによってオペレーティングシステムによって管理されたダイナミックメモリプールからメモリを共用するニーズが生じている。かかるメモリは一般に仮想的にアドレス指定されるので、これによってメイン処理ロジックのためのタスクを実行する際に、追加ハードウェアにより正しいデータにアクセスすることを保証するよう、仮想アドレス−物理アドレス変換プロセスを管理する必要がある。
【０００５】
共用すべきメモリ部品に関し、今日存在する複雑なオペレーティングシステムは一般にスタティックなオンチップメモリを極めてわずかにしか活用しておらず、このメモリを活用したいアプリケーションを特別にリンクし、そのようにするように管理しなければならない。従って、これによりスタティックなオンチップメモリは最初に述べた目的のためにメイン処理ロジックと追加ハードウェアロジックユニットとの間で共用すべきメモリとして使用する候補とはなりにくい。１つの可能性のある別の解決方法として、メイン処理ロジックと他の任意の必要なハードウェアロジックとの間で共用できるあるレベルのキャッシュ（メモリ）を開発することを検討することが考えられるが、一般的なシステムは多数のレベルのキャッシュを有することが多く、かかる解決方法は、アドレッシングが必要となるキャッシュのコヒーレンスの問題が生じる。例えばメイン処理ロジックと追加ハードウェアロジックの双方は特定のアクセスをする際に同じデータを見るように保証しなければならない。
【０００６】
更に、マルチ処理システムでは、処理ロジックのうちの種々の部分の間でデータを共用しなければならない場合、システムレベルのセキュア性の問題が生じる。例えばセキュア／トラストデータと、非セキュア／非トラストデータの双方を処理するメイン処理ロジックを配置することができる。ハードウェアロジックの追加部分に、所定のタスクを委任すべき場合、共有しなければならないトラストデータもあれば、特定のプロセッサに対してプライベートとなる別のトラストデータが生じることもある。このことは、かかる状況において、メモリへのアクセスを規制し、非セキュアプロセスがセキュアデータにアクセスしないことを保証するよう使用されるデコード技術が過度に制限されることについて、任意の単純なバスマスターが知ることを意味し、従って、かかる状況では正しく規制すべきトラストデータへのアクセスを可能にする技術を提供しなければならない。
【０００７】
従って、メイン処理ロジックのために追加処理ロジックに所定のタスクを委任できるよう、メイン処理ロジックと処理ロジックの１つ以上の別の部分との間でメモリを共用できるようにし、かつ上記に概略を述べた問題を解決する技術を提供することが望ましい。
【課題を解決するための手段】
【０００８】
第１の様相によれば、本発明は、あるシーケンスの命令を実行し、１つのプロセスを実施するために一連の命令を実行するメイン処理ロジックと、上記メイン処理ロジックのために上記プロセスの少なくとも一部を実施するようになっている補助処理ロジックと、上記プロセスを実施する際に上記メイン処理ロジックがアクセスできるメモリとを備え、上記プロセスの少なくとも一部を実施する際に、上記補助処理ロジックに対して割り当てられるアクセス可能なメモリとなるように前記メモリの一部を上記メイン処理ロジックが定めるようになっており、更に上記メイン処理ロジックによってプログラム可能であると共に上記補助処理ロジックによる上記割り当てられたメモリへのアクセスを制御するようになっているメモリ管理ユニットを備え、上記メイン処理ロジックが前記割り当てられたメモリに関して前記補助処理ロジックが発生したアクセスリクエストに対して、上記メモリ管理ユニットがメモリアドレスおよびそのメモリアドレスにおける前記割り当てられたメモリの１つ以上の特性を識別する１つ以上の関連するメモリ属性を発生するように上記メモリ管理ユニットをプログラムするようになっている、データ処理装置を提供するものである。
【０００９】
本発明によれば、メイン処理ロジックは補助処理ロジックによってアクセスできる割り当てられたメモリとなるようにメモリの一部を定めることができ、補助処理ロジックによる割り当てられたメモリへのアクセスを制御するためのメモリ管理ユニットが設けられる。更に本発明によれば、メモリ管理ユニットはメイン処理ロジックによってプログラム可能である。割り当てられたメモリに関する補助処理ロジックによって発生されるアクセスリクエストに対して、メモリ管理ユニットがメモリアドレスだけでなく、そのメモリアドレスにおける割り当てられたメモリの１つ以上の特性を識別する１つ以上の関連するメモリ属性も発生するように、このプログラムが実行される。メモリ管理ユニットがメイン処理ロジックによってどのようにプログラムされたかに応じ、メモリ管理ユニットにそのようなメモリ属性を出力させることにより、システムワイドの一貫した態様で、割り当てられたメモリへのアクセスを取り扱いできるようになる。
【００１０】
特にこの方法により、メイン処理ロジックのために補助処理ロジックがプロセスの一部を実行するときに、前記補助処理ロジックが発生して前記メモリ管理ユニットを通過するようにルーティングされるアクセスリクエストの結果、メモリ属性がメイン処理ロジックによって制御されるアクセスリクエストに関連付けされる。
【００１１】
従って、例えば従来技術に関する、先の説明した問題の一部を検討すると、割り当てられたメモリがキャッシュ可能なメモリであり、メイン処理ロジックと補助処理ロジックとの間でキャッシュを共用する場合、アクセスリクエストの対象であるデータをキャッシュがどのように取り扱うべきかを識別するメモリ属性と共に、補助処理ロジックが発生するアクセスリクエストに関連するメモリ属性をメモリ管理ユニットが発生するようにできると考えられる。同様に、セキュアデータと非セキュアデータの双方を取り扱うシステムを検討すると、アクセスリクエストのメモリアドレスが識別するメモリロケーションへアクセスするのに必要なセキュリティレベルを識別する補助処理ロジックが発生するアクセスリクエストに関連し、メモリ管理ユニットがメモリ属性を提供するようにできる。
【００１２】
他の対応するメモリ属性の発生も同様に制御できることが理解できよう。各ケースにおいて、補助処理ロジックによって発生されるアクセスリクエストに関連し、メモリ管理ユニットによって発生されるメモリ属性がメイン処理ロジックの制御により発生されるよう、メイン処理ロジックによりメイン管理ユニットがプログラムされる。
【００１３】
本明細書で使用するメモリなる用語は、キャッシュおよびＲＡＭのようなメモリデバイスをカバーするだけでなく、システムメモリの他の部分、例えばメモリマッピングされる周辺機器のレジスタもカバーするようになっている。
【００１４】
割り当てられるメモリは補助処理ロジックだけに割り当ててもよいし、一方、このメモリはメイン処理ロジックのためのタスクを実行する。しかしながら、一実施例では、割り当てられるメモリはメイン処理ロジックと補助処理ロジックの双方によってアクセス可能な共用メモリである。
【００１５】
メモリ管理ユニットは種々の方法でメイン処理ロジックによってプログラムすることができる。しかしながら、一実施例では前記メイン処理ロジックは１組のテーブルを発生するようになっており、上記組内の各テーブルは多数のデスクリプタを含み、各デスクリプタは関連するアドレスレンジに対し、アクセス制御情報を定めており、このアクセス制御情報から前記アドレスおよび１つ以上の関連するメモリ属性を誘導できるようになっており、前記メイン処理ロジックは更に前記テーブルの組のロケーションおよび各テーブルを使用すべき状況を識別するよう前記メモリ管理ユニットをプログラムするようになっている。
【００１６】
従って、かかる方法によりメモリ管理ユニットが受信した有効なアクセスリクエストに対し、メモリ管理ユニットは適当なテーブルを識別することができ、このことから、テーブルは関連するメモリ属性を誘導できるようにするのに必要な情報を含む、対応するデスクリプタを識別するようになっている。一般に、補助処理ロジックが発生したアクセスリクエスト内で指定されるメモリアドレスに基づき、選択されたテーブルから特定のデスクリプタが選択される。一実施例では、アクセスリクエストが指定するアドレスは仮想アドレスであり、この仮想アドレスは適当なデスクリプタを決定する際に使用される。デスクリプタは一般に１つ以上の関連するメモリ属性を誘導できるようにするだけでなく、仮想アドレスをメモリへ出力するために物理アドレスに変換できるようにもするアクセス制御情報を提供する。
【００１７】
一実施例では、前記メイン処理ロジックは複数のプロセスを実施するようになっており、前記テーブルの組は各プロセスのためのテーブルを備え、前記補助処理ロジックは前記メイン処理ロジックのために前記各プロセスの一部を実施できる。一部のプロセスが特定のテーブルを共用するような実施例もあるので、このことは必ずしもかかる各プロセスに対し別個のテーブルを発生するようなケースではないことが理解できるよう。
【００１８】
各プロセスとテーブルとを関連付けることにより、特定のプロセスに適用できるデスクリプタを定めることができ、従って、アクセスリクエストに関連し、メモリ管理ユニットが出力する関連するメモリ属性はメイン処理ロジックのために補助処理ロジックによって実施されるプロセスに応じて変化する。
【００１９】
特定の実施例では、前記補助処理ロジックが前記メイン処理ロジックのために多数のプロセスの少なくとも一部を実施するようになっており、前記補助処理ロジックが発生するアクセスリクエストに関連し、前記アクセスリクエストが関連するプロセスの表示を前記メモリ管理ユニットが受信するようになっており、前記表示に基づき前記メモリ管理ユニットが前記テーブルの組からの前記テーブルのうちの１つを選択するようになっている。
【００２０】
一実施例では、特定の補助処理ロジックからアクセスリクエストが出力されたことを識別するよう、アクセスリクエストに関連し、メモリ管理ユニットへデバイス識別子を補助処理ロジックが出力するようにできる。この補助処理ロジックに割り当てできるプロセスが１つしかないときには、このデバイス識別子はデスクリプタを得るべき特定のテーブルを識別するのに十分である。しかしながら、補助処理ロジックがメイン処理ロジックのために複数のプロセスを実行できる場合、デバイス識別子自身は適当なテーブルを選択できるようにするには不十分である。従って、一実施例では、アクセスリクエストが関連する特定のプロセスを識別する追加情報を含むように、補助処理ロジックによってデバイス識別子を変更する。別の実施例では、デバイス識別子を変更する代わりに、アクセスリクエストが関連するプロセスを示す別個の信号を補助処理ロジックまたはメイン処理ロジックのいずれかにより、メイン管理ユニットへ提供する。
【００２１】
一実施例では、システムの完全性を保証するために、特権モードで作動するときにはメイン処理ロジックによってメモリ管理ユニットをプログラムする。更に、テーブルの組を使用する実施例では、これらテーブルは特権モードで作動するときのメイン処理ロジックによっても発生される。
【００２２】
一実施例では、前記割り当てられたメモリはキャッシュ可能なメモリであり、前記データ処理装置は前記メイン処理ロジックおよび前記補助処理ロジックによってアクセス可能であると共に、キャッシュ可能なメモリに関連したデータを記憶するようになっているキャッシュを更に備え、前記キャッシュがアクセスリクエストの対象であるデータをどのように取り扱うべきかを識別するキャッシュ属性を、前記メモリ管理ユニットが発生した１つ以上の関連するメモリ属性が含む。メモリ管理ユニットによりキャッシュ特性を発生することは、メモリ管理ユニットをメイン処理ユニットによってプログラムする方法で制御されるので、補助処理ユニットとメイン処理ユニットとの間のシステムレベルのキャッシュコヒーレンスを保証でき、よってメイン処理ロジックと補助処理ロジックの双方は時間内のあるポイントで同じビューのメモリを有することを保証できる。
【００２３】
一実施例では、前記キャッシュは前記データ処理装置内に設けられた複数の異なるレベルのうちの１つのキャッシュであり、前記キャッシュ属性はキャッシュの各レベルに対し、そのレベルのキャッシュがアクセスリクエストの対象であるデータをどのように取り扱うべきかを識別する。従って、キャッシュ属性は種々のレベルのキャッシュに対し、そのレベルのキャッシュがどのようにデータを取り扱うべきかを別々に定めることができる。従って、例えばキャッシュ属性はあるレベルのキャッシュが（キャッシュが更新された場合、その更新を別のレベルのキャッシュまたはメモリにも伝達させる）「書き込みスルー（write through）」ポリシーを適用すべきであると識別でき、一方別のレベルのキャッシュは（キャッシュを更新する場合、更新を伝えるその代わりに、キャッシュラインが最終的にキャッシュから追い出されて（evict）いるときに限って伝達される）データに対する「書き込みバック（write back）」ポリシーを採用できる旨を識別できる。
【００２４】
特定の実施例では、前記複数の異なるレベルのキャッシュは内部キャッシュと外部キャッシュとにグループ分けされており、前記キャッシュ属性は前記内部キャッシュおよび前記外部キャッシュに対し、前記キャッシュが前記アクセスリクエストの対象であるデータをどのように取り扱うべきかを識別する。キャッシュを内部キャッシュと外部キャッシュとにグループ化することによって、キャッシュクリーニング、フラッシングおよびコヒーレンスのように、かかるプロセスに対するメイン処理エンジンで作動するソフトウェアに対する任意のキャッシュの階層の制御を抽出（abstract）するための便利な機構を提供できる。正確に述べれば、階層内のどのキャッシュを内部キャッシュとして、または外部キャッシュとして選択するかは、処理系に依存する。定義によれば、階層内のメイン処理エンジンに最も近いキャッシュを内部キャッシュと称し、最も遠いキャッシュを外部キャッシュと称す。
【００２５】
一実施例では、メイン処理ロジックと補助処理ロジックとの間のシステム・レベル・キャッシュ・コヒーレンシーを保証するために、内部キャッシュがデータに対して書き込みスルーポリシーを適用すると共に外部キャッシュがデータに対して書き込みバックポリシーを適用することをキャッシュ属性が識別してもよい。これは、いずれかの処理ロジックによるデータへの更新を外部キャッシュ内で即座に複製することを保証することになる。
【００２６】
一実施例では、複数の異なるセキュリティレベルが定められており、前記メモリアドレスに関連する前記１つ以上のメモリ特性は前記メモリアドレスによって識別されるメモリロケーションにアクセスするのに必要なセキュリティレベルを識別する保護属性を含む。
一実施例では、セキュリティレベルを特定の作動モード、例えばユーザーモード、特権モードなどと関連付けできる。しかしながら、別の実施例ではセキュリティレベルは作動の異なるモードだけに関連するのではなく、作動の異なるセキュリティドメインにも関連する。より詳細には、一実施例では、前記メイン処理ロジックは複数のモードおよび複数ドメインで作動でき、前記複数のドメインはセキュア（secure）ドメインと非セキュアドメインとを含み、前記複数のモードは前記非セキュアドメインにおけるモードである少なくとも１つの非セキュアモードと、前記セキュアモードにおけるモードである少なくとも１つのセキュアモードとを備え、セキュアモードでプログラムを実行しているときに、前記メイン処理ロジックが非セキュアモードで作動中にアクセスできないセキュアデータに前記プログラムがアクセスするよう、前記メイン処理ロジックが作動でき、前記セキュリティレベルは前記複数のモードおよび複数のドメインに関して定められる。
【００２７】
かかる実施例では、データ処理装置にアプリケーションをロードする場合、そのアプリケーションは非セキュアドメインにおいてデフォルトで実行される。これと対照的に、セキュアドメインは所定の特定のセキュア機能のためにしか使用されず、従って、所定のセキュアアプリケーションを作動するためにしか使用されない。従って、実際にセキュアドメインと非セキュアドメインとが存在することにより、デバイス内に２つの異なるワールド、すなわち所定の鍵セキュア機能を実施するセキュアワールドと、すべての他のアプリケーションが作動される非セキュアワールドとを定める。かかる実施例では、メモリアクセスリクエストが関係するのがどのドメインであるかを指定するメモリアクセスリクエストに関連して、ドメイン信号を発生するようにでき、このドメイン信号は、特定のメモリアクセスリクエストによって定められるアクセスが実際に進行することが認められるかどうかを判断するために使用できる。本発明の一実施例によれば、補助処理ロジックにより発生されるアクセスリクエストのためのメモリ管理ユニットによって発生される保護属性は、かかるドメイン信号の形態をとる。
【００２８】
特定の一実施例では、少なくとも１つの前記非セキュアモードでは、メイン処理ロジックは非セキュアオペレーティングシステムの制御により作動でき、前記少なくとも１つのセキュアモードではメイン処理ロジックはセキュアオペレーティングシステムの制御により作動でき、セキュア作動システムはテーブルの組を発生すると共に、メイン処理ロジックが特権セキュアモードで作動しているときにはメモリ管理ユニットをプログラムするようになっている。従って、これによってメモリ管理ユニットのプログラムおよびメモリ管理ユニットが参照するテーブルの組の発生は、セキュアワールドで行われ、従って、非セキュアワールドで作動するアプリケーションによって不正操作することはできない。
【００２９】
一実施例では、メイン処理ロジックのために１つの補助処理ロジックしかタスクを実行できないようにできるが、別の実施例では装置内に複数のかかる補助処理ロジックユニットを設け、各々の処理ロジックユニットにメイン処理ロジックによって種々のタスクを割り当てできるようにできる。かかる実施例では、かかる各補助処理ロジックに対して別個のメモリ管理ユニットを設けることも可能である。しかしながら別の実施例では、複数の補助処理ロジックユニットの間でかかる単一のメモリ管理ユニットを共用する。
【００３０】
第２の様相から見れば、本発明は、プロセスを実施するためにシーケンスの命令を実行するメイン処理ロジックと、前記メイン処理ロジックのために前記プロセスのうちの少なくとも一部を実施するための補助処理ロジックとを備えた、データ処理装置内のメモリへのアクセスを制御する方法であって、（ａ）前記プロセスのうちの前記少なくとも一部を実施しているときに、前記補助処理ロジックにアクセス可能な割り当てられるメモリとなるように前記メモリの一部を定めるステップと、（ｂ）前記メイン処理ロジックの制御によりメモリ管理ユニットをプログラムするステップと、（ｃ）前記割り当てられるメモリに関する前記補助処理ロジックによって発生されるアクセスリクエストに対し、前記メモリ管理ユニットが前記ステップ（ｂ）において実行されたプログラムに応じてメモリアドレスおよびこのメモリアドレスにおける割り当てられたメモリの１つ以上の特性を識別する１つ以上の関連するメモリ特性を発生するように、前記補助処理ロジックによる前記指定されたメモリへのアクセスを制御するよう、前記メモリ管理ユニットを使用するステップとを備えた、データ処理装置におけるメモリへのアクセスを制御する方法を提供するものである。
【００３１】
以下、添付図面に示された実施例を参照し、単なる例として本発明について説明する。
【実施例】
【００３２】
図１は本発明の一実施例に係わるデータ処理装置のブロック図である。命令のシーケンスを実行するためのプロセッサコア２５を有するメイン処理ユニット２０が設けられている。実行するのに必要な命令は、必要な命令を含むメモリ１００内のロケーションへ適当なアクセスリクエストが発生されることにより、メモリ１００、本例ではＳＤＲＡＭからコア２５によって取得できる。命令のためのアクセスリクエストは内部命令メモリ管理ユニット（ＭＭＵ；Memory Management Unit）２４を介して送られ、このメモリ管理ユニットは、所定のアクセス制御機能を実行すること、例えばアクセスリクエストが指定するバーチャルアドレスに対応する物理アドレスを決定すること、アクセス許可権を解決すること、例えばスーパーバイザーモードやユーザーモードなどでメモリアドレスにアクセスできるかどうか、領域属性を解決すること、例えばそのアドレスにある命令がキャッシュ可能であるか若しくはバッファ可能であるか等、などを担う。かかる態様でアクセスされるキャッシュ可能な命令は、一般に内部命令キャッシュ２２に記憶され、再び必要となった場合にこのキャッシュからコア２５によってこれら命令により迅速にアクセスできる。
【００３３】
命令のシーケンスを実行する際に必要とされるデータは、同じように適当なデータアクセスリクエストを発生することにより、メモリ１００から取得でき、かかるデータアクセスリクエストに対し、データＭＭＵ２６は命令ＭＭＵ２４と同じように、特に、任意の指定された仮想アドレスに対応する物理アドレスを決定し、アクセス許可権利を解決し、領域属性を決定するための所定のアクセス制御機能を実行する。このようにアクセスされたキャッシュ可能なデータは、再び必要とされた場合にそのアドレスへより迅速にアクセスできるよう、データキャッシュ２８内に記憶できる。
【００３４】
図１では、命令およびデータに対して別個のＭＭＵ２４、２６およびキャッシュ２２、２８が示されているが、別の実施例では、命令とデータの双方を記憶するための単一のＭＭＵおよびキャッシュを設けることができることが理解できよう。メイン処理ユニット２０内に設けられる内部キャッシュ２２、２８はレベル１のキャッシュと称されることが多い。
【００３５】
メイン処理ユニット２０はバス６０を介し、多数の補助処理ユニット３０、４０に結合されており、バス６０と補助処理ユニット３０、４０との間に周辺メモリ管理ユニット（ＭＭＵ）５０が挿入される。図１に示される特定の実施例では、補助処理ユニットはメイン処理ユニット２０に所定のビデオ処理タスクを委任することができるハードウェアアクセレレータロジックユニット３０と、メイン処理ユニットに所定のデジタル信号処理タスク、例えばフィルタリング、音声認識、画像エンハンスメントなどを委任することができるデジタル信号プロセッサ（ＤＳＰ）４０とから成る。図１に示された実施例では、ＤＳＰ４０は必要なタスクを実行するのに使用されるＤＳＰエンジン４２と、ＤＳＰエンジン４２が必要とするデータを一時的に記憶できるＤＳＰキャッシュ４５とから成る。
【００３６】
メイン処理ロジック２０のために補助処理ロジックユニット３０、４０が所定のタスクを実行できるようにするためには、処理を必要とする必要なデータセットへのアクセス権がこれら補助処理ユニットに与えられなければならない。図１の実施例では、このことはメイン処理ロジックが共用メモリの一部を定め、更に共用メモリのデータをシステムキャッシュ７０内に記憶できるようにする能力を提供することによって達成され、システムキャッシュ７０はレベル２のキャッシュを形成し、メイン処理ユニット２０と補助処理ユニット３０、４０との間で共用される。メイン処理ユニット２０がアクセスリクエストを発生するときに、このメイン処理ユニットはアクセスリクエストの対象であるデータをキャッシュがどのように取り扱うべきかを識別するキャッシュ属性とをアクセスリクエストとを関連させるようになっている。キャッシュ属性は各レベルのキャッシュに対し、そのレベルのキャッシュがどのようにアクセスリクエストの対象であるデータを取り扱うべきかを識別できる。従って、そのキャッシュ属性は、当該アクセスのための各レベルのキャッシュに対し、そのレベルのキャッシュが（キャッシュが更新された場合にその更新が更なるレベルのキャッシュまたはメモリにも伝搬する場合における）書き込みスルーポリシーを使用すべきか、または（キャッシュが更新された場合にその更新が伝搬せず、代わりにキャッシュラインがキャッシュから最終的に追い出されるときにしか伝達しない場合における）書き込みバックポリシーを使用するかどうかを識別できる。
【００３７】
一実施例では、１つ以上の補助処理ロジックユニット３０、４０と共用すべきデータを取り扱う際に、メイン処理ユニットはレベル１のキャッシュが書き込みスルーポリシーを使用すべきこと、およびレベル２のキャッシュ７０が書き込みバックポリシーを使用すべきことを表示するキャッシュ属性を発生できる。これによってコア２５によってなされる更新がシステムキャッシュ７０内で即座に複製され、従って補助処理ユニット３０、４０によりアクセスのために利用できるようになる。
【００３８】
メイン処理ユニットと補助処理ユニット３０、４０との間でデータを共用するために、かかるシステムキャッシュ７０を使用する際の１つの問題は、補助処理ユニット３０、４０がデータを更新する際に、これらユニットがシステムキャッシュ７０に対して適当な更新も行わせることを保証することにある。一般に、ハードウェアアクセレレータロジック３０またはＤＳＰロジック４０のような補助処理ユニットは、そのアクセスリクエストによりキャッシュ属性信号を発生するようにはできない。更に、かかる補助処理ユニットがキャッシュ属性信号を発生するようになっている場合でも生じる問題は、補助処理ユニットが適当なキャッシュ属性信号を発生し、データ処理装置１０内でのシステムレベルのキャッシュコヒーレンスを保証すること、すなわち特定のデータ値に対するアクセスリクエストを発生する際に、処理ユニット２０、３０、４０の各々がそのデータ値の同じバージョンを見ることを保証することである。
【００３９】
この問題を解決するために、図１の実施例では、補助処理ユニット３０、４０のいずれかが発生するアクセスリクエストを取り扱うための周辺ＭＭＵ５０が設けられている。この周辺ＭＭＵ５０は補助処理ユニット３０、４０のいずれかによって発生されるアクセスリクエストに対し、周辺ＭＭＵ５０がバス６０上の適当なキャッシュ属性をアサートするように、バス６０を介してメイン処理ユニット２０によってプログラムされている。特にメイン処理ユニット２０はメモリ１００内に多数の異なるページテーブルを定めると共に、補助処理ユニット３０、４０の１つに対して割り当てできる各プロセスを、そのページテーブルの１つに関連付けるようになっている。各ページテーブルは１つ以上のデスクリプタを含み、各デスクリプタは関連するアドレスレンジに対し、アクセス制御情報を定めている。このアクセス制御情報は必要とされるキャッシュ属性を含む適当なアクセスリクエストを発生するために、周辺ＭＭＵ５０によって使用できる。一実施例では、メモリ内の各４Ｋバイトページ境界に対して１つのデスクリプタを設けることができる。周辺ＭＭＵの作動のより詳細については、図２〜５を参照して後述する。
【００４０】
図１に示された実施例では、メイン処理ユニット２０は複数の異なるセキュリティレベルで作動するようにもなっている。特にメイン処理ロジックは複数のモードおよびセキュアドメインまたは非セキュアドメインのいずれかで作動でき、複数のモードは非セキュアドメイン内のモードである少なくとも１つの非セキュアモードと、セキュアドメイン内のモードである少なくとも１つのセキュアモードとを含む。非セキュアモードでは、メイン処理ロジックは非セキュアオペレーティングシステムの制御によって作動できるが、セキュアモードではメイン処理ロジックはセキュアオペレーティングシステムの制御により作動できる。メイン処理ユニットがセキュアモードでプログラムを実行中の時は、プログラムはメイン処理ユニットが非セキュアモードで作動しているときにアクセスできないセキュアデータにアクセスする。
【００４１】
かかる実施例で作動しているときに、メイン処理ロジック２０はアクセスリクエストがセキュアドメインに関するものであるか、または非セキュアドメインに関するものであるかを識別する保護属性を、任意のアクセスリクエストに関連させて発生するようになっている。かかる保護属性は一般に他のアクセス許可情報、例えばユーザーモードまたはスーパーバイザーモードでアクセスを実行するのか、アクセスが読み出し動作であるのか、または書き込み動作であるのか、などの情報を一般に含む。
【００４２】
メモリ１００に対するアクセスを規制するためのメモリ保護ユニット（ＭＰＵ；Memory Protection Unit）９０が設けられており、このＭＰＵ９０はセキュアデータを含むセキュア領域と、非セキュアデータを含む非セキュア領域との間の物理メモリのパーティショニングについて認識している。特にこのパーティショニングはセキュアモードで作動しているときにメイン処理ユニットによってプログラムされる。このパーティショニングは一実施例では、必要な場合にメイン処理ユニットによりダイナミックに再割り当てできる。次に、ＭＰＵがアクセスリクエストを受信すると、ＭＰＵはこの分割情報を参照し、アクセスリクエストに関連する保護属性を参照することにより、アクセスを行うことができるかどうかを判断する。特にアクセスリクエストが非セキュアドメインに関するものであることを保護属性が示した場合、ＭＰＵ９０はメモリ１００内のセキュアデータへのアクセスを防止する。より関心のある読者がいれば、セキュアドメインと非セキュアドメインとを有するデータ処理装置の作動のより詳細については、英国特許出願第2396034号に記載されているので、これを参照されたい。
【００４３】
ＬＣＤコントローラ１１０はビデオディスプレイ１２０にディスプレイするために、メモリ１００からデータを取得するようになっている。ＬＣＤコントローラ１１０がドメイン認識（domain aware）である場合、このコントローラはパス８０を通してメモリ１００にこのコントローラが発生する任意のアクセスリクエストに関連して保護属性を発生するようになっており、従って、ＭＰＵ９０はＬＣＤコントローラ１１０によってなされるアクセスを効果的に規制し、セキュアドメインで作動しているときにしかセキュアデータにアクセスしないことを保証する。ＬＣＤコントローラ１１０がドメインについて知らない場合、このコントローラは定義により非セキュアドメインで作動し、ＭＰＵ９０はＬＣＤコントローラ１１０によるメモリ１００内のセキュアデータへのアクセスを防止する。
【００４４】
しかしながら、メイン処理ユニット２０と補助処理ロジックユニット３０、４０のうちの１つまたは他方との間でデータを共用する場合、このことはシステムレベルのセキュリティの問題が露呈する可能性がある。トラストされた、すなわちセキュアな一般的なケースでは、処理ユニット２０と３０と４０との間でデータを共用する必要があるが、一部のトラストデータは特定の処理ユニット２０、３０、４０にとってプライベートとなる。１つの処理ユニットのプライベートなトラストデータを別の処理ユニットによって読み出しできないこと、例えば処理ユニット３０のプライベートセキュアデータに処理ユニット４０などがアクセスしないことを保証する必要がある。メモリ１００へのアクセスを規制するためのＭＰＵのアプローチ９０は一般的なケースに対して非常に限定的となる。
【００４５】
この問題を解決するために、周辺ＭＭＵ５０を再び使用する。特にメイン処理ロジック２０はページのデスクリプタ内に適当なキャッシュ属性だけでなく、適当な保護属性も定めるようになっている。これによって補助処理ロジック３０、４０が発生するアクセスリクエストに対し、周辺ＭＭＵはメイン処理ユニット２０の制御により実際に発生された保護信号をバス６０を通してアサートする。より詳細には、セキュアモードで作動しているときには、メイン処理ユニット２０によってページテーブルを定めることが好ましく、従ってこれによって、補助処理ユニット３０、４０が発生するアクセスリクエストに関連し、周辺ＭＭＵ５０が出力する保護属性がメイン処理ユニット２０のセキュアオペレーティングシステムの制御によって発生されることが保証される。このような解決方法により、特定デスクリプタのデータ領域と特定のアプリケーションとを結合することにより、有効なプロセスアイソレーションをするように、ページテーブルを定めることができる。
【００４６】
図２は周辺ＭＭＵ５０内に設けられたロジックをより詳細に示すブロック図である。周辺ＭＭＵ５０は補助処理ロジックユニット３０、４０のうちの１つによって発生されるアクセスリクエストを受信するようになっており、このアクセスリクエストは仮想アドレス２５２と、デバイス識別子２５６と、補助処理ロジックユニットが発生する保護属性２５４とを受信するようになっている。これら信号は、テーブルルックアサイドバッファ（ＴＬＢ；Table Lookaside Buffer）２１０にアクセスするためのルックアップアドレスを発生するようになっているＴＬＢルックアップアドレス発生ロジック２００によって受信される。
【００４７】
メイン処理ロジックユニットのために、補助処理ロジックユニット３０、４０の各々に特定の１つのタスクだけを割り当てできる場合、デバイス識別子２５６はアクセスリクエストが関連するプロセスを識別するのに十分である。しかしながら、特定の補助処理ロジックユニット３０、４０に２つ以上のプロセスを割り当てできる場合、その補助処理ロジックのデバイス識別子２５６はそれ自体では十分ではなく、かかる状況において周辺ＭＭＵ５０によって受信されたデバイス識別子信号２５６にはこのプロセスを示す追加情報が補足され、よって各プロセスに関係するユニークな識別子２５６が受信される。デバイス識別子を補足する役割を果たす処理ユニットは実現例に応じて決まる。例えば補助処理ユニットに対し、メイン処理ユニットはかかる補足を管理し得る一方で、他の補助処理ユニット、例えばＤＳＰに対してはメイン処理ユニットまたはＤＳＰのいずれかがデバイス識別子を補足することができる。
【００４８】
図３にはＴＬＢ２１０の構造が示されている。特にこのＴＬＢ２１０は多数のエントリーを含むＣＡＭ構造として構成されている。ＴＬＢルックアップアドレス発生器２００が発生するアドレスは、受信された保護信号２５４と、（必要なプロセス情報によって補足された）デバイスＩＤ信号２５６と、仮想アドレス２５２の上位部分との組み合わせから成る。ＴＬＢ２１０内の各エントリー２９０は、（保護属性に対応する）非セキュア識別子ビット２７０と、デバイス識別子の値２７５と、バーチャルアドレス部分の値２８０とから成る対応するアドレスに関連させている。ＴＬＢルックアップアドレス発生器２００が発生するアドレスがＴＬＢ２１０内のアドレスのいずれかに一致した場合、アクセス発生ロジック２２０に、対応するページデスクリプタ２９０が出力される。
【００４９】
ＴＬＢ２１０内に不一致がある場合、すなわち発生したアドレスとＴＬＢエントリーに関連して記憶されたアドレスのうちの１つとが一致しない場合、必要なアクセスに対する有効なページテーブルがあるかどうかを判断するためのチェックが実行される。後により詳細に説明するように、このことは必要なプロセス情報が補足されたデバイス識別子２５６および保護値２５４を参照して決定される。有効ページテーブルがあると仮定した場合、アクセス発生ロジック２２０を介してメモリ１００へのアクセスを実行するのにテーブルウォークロジック（table walk logic）２３０が使用され、適当なページテーブルからの対応するデスクリプタを取得し、このデスクリプタをＴＬＢに記憶し、その後、保護処理ユニット３０、４０から受信されたアクセスリクエストのための必要なアクセスリクエストを発生するのに使用するために、アクセス発生ロジック２２０へそのデスクリプタが出力される。
【００５０】
各デスクリプタは関連する仮想アドレス２５２から物理アドレス２６２を発生するのに使用される情報、およびアクセスリクエストに関連して出力するための適当な保護属性２６４およびキャッシュ属性２６６を発生するのに必要な情報を含む。図２にも示されるように、デバイス識別子はアクセス発生ロジック２２０からの信号２６８として出力される。一般的に信号２６８として出力されるデバイス識別子はＴＬＢルックアッププロセス内で使用される補足された値ではなく、元のデバイス識別子となる。
【００５１】
図２にも示されるように、ＭＭＵ５０の種々の要素２００、２１０、２２０、２３０をプログラムするのに、セキュア作動モードにおいてバス６０を介し、メイン処理ロジックによりアクセスできる制御ロジック２４０が設けられる。特にメイン処理ユニット２０がメモリ１００内に必要なページテーブルを定めた場合、このユニットは種々のページテーブルのためのベースアドレスと、特定のページテーブルにアクセスするために必要とされる保護属性信号２５４およびデバイス識別信号２５６との組み合わせとをＭＭＵに対して識別するようにＭＭＵをプログラムするようになっている。
【００５２】
次に、図４のフローチャートを参照し、周辺ＭＭＵ５０の作動のより細部について説明する。ステップ３００において、ＭＭＵ５０によりアクセスリクエストが受信され、その後、ステップ３１０において、ＴＬＢルックアップアドレス発生器２００は、図３を参照して前に説明したようにＴＬＢルックアップアドレスを発生する。次にステップ３２０でＴＬＢルックアップが実行される。
【００５３】
ＴＬＢ内で不一致が生じた場合、プロセスはステップ３３０へ分岐し、このステップでＭＭＵ５０はリクエストされたアクセスに対する有効ページテーブルがあるかどうかをチェックする。特に受信された保護信号２５４と識別信号２５６が評価され、これら信号の組み合わせがページテーブルの有効ベースアドレスに関連しているかどうかを判断する。関連していない場合、プロセスはステップ３８０に分岐し、ここでアボート信号が発生され、その後、ステップ３９０でプロセスが終了する。
【００５４】
しかしながら、リクエストされたアクセスのための有効ページテーブルがあると仮定した場合、プロセスはステップ３４０に進み、ここでテーブルウォークロジック２３０によりアクセス発生ロジック２２０がメモリ１００に対して適当なアクセスリクエストを発生し、よって適当なページテーブルから必要なデスクリプタを取得すると共に、そのデスクリプタをＴＬＢ２１０のエントリーのうちの１つに記憶する。
【００５５】
次にプロセスはステップ３５０に進むか、またはＴＬＢ２１０内で以前一致が得られていた場合には、ステップ３２０からステップ３５０へ直接進む。ステップ３５０において、ページアクセス許可がチェックされる。特に各デスクリプタはそのデスクリプタに関連するデータのページがスーパーバイザーモード、ユーザーモードなどでアクセス可能であるか、および読み出し動作、書き込み動作などに対してアクセス可能であるかどうかを識別する情報を含み、そして、リクエストと共に発生された保護属性の一部（ＡｘＰＲＯＴ信号）として一般に含まれるようなアクセスリクエストの関連情報に対して、この情報をチェックする。
【００５６】
このチェックによってアクセスがメモリページのアクセス許可条件を満たしていないことが明らかとなった場合、プロセスはステップ３８０へ分岐し、ここでアボートが発生され、その後、プロセスはステップ３９０で終了する。
【００５７】
しかしながら、ステップ３５０において、ページアクセス許可が認められたと仮定した場合、プロセスはステップ３６０に進む。ここではアクセス発生ロジック２２０がアクセスリクエストの元々提供された情報およびデスクリプタ内で提供された情報に基づき、物理アドレス２６２、保護属性２６４およびキャッシュ属性２６６を発生するようになっている。更に、図２に示されるように、アクセス発生ロジック２２０により、デバイス識別子２６８も一般には出力される。次にステップ３７０において、共用メモリにアクセスリクエストが発生され、このメモリではアクセスリクエストは当初、システムキャッシュ７０によって受信される。次にプロセスはステップ３９０で終了する。
【００５８】
図５は、受信された情報に基づき、アクセス発生ロジック２２０によって物理アドレス、キャッシュ属性および保護属性がどのように発生されるかを略図で示す図である。図５に示されるように、ページテーブル内の適当なデスクリプタ４１５を識別するのに仮想アドレス４００の上位部分４０５が使用される。前に説明したように、実際のページテーブル自身は補助処理ロジック３０、４０から受信された保護信号２５４とデバイス識別信号２５６との組み合わせに基づいて選択される。一実施例では、このデスクリプタは仮想アドレス４００に対応する物理アドレス４３０の上位部分を発生するのに使用される上位部分４２０を含む。図５に示される実施例では、物理アドレス４３０の下位部分は仮想アドレス４００の下位部分４１０によって形成される。
【００５９】
キャッシュ属性４４０および保護属性４５０を発生するのに、デスクリプタ４１５の残りの部分４２５が使用される。一実施例では、これら２つの属性はデスクリプタ４１５の部分４２５内で直接コード化される。
【００６０】
図１に示されるような共用システムキャッシュ７０は本発明のすべての実施例の条件ではない。特に図６は共用システムキャッシュがない、別の実施例を示す。この実施例では、バス５２０を介して種々のアプリケーションプロセッサ周辺デバイス５１０およびメモリ５４０とアプリケーションプロセッサ５００が結合されている。図１の実施例の場合のように、非セキュアドメインで作動するアプリケーションによってセキュアデータへのアクセスがされないことを保証するために、メモリ５４０へのアクセスを規制するためのＭＰＵ５３０が設けられている。
【００６１】
本装置内にはデジタル信号プロセッサ５５０および１つ以上の無線周辺機器５６０も設けられる。これらＤＳＰ５５０および無線周辺機器５６０の双方にはアプリケーションプロセッサ５００のために所定のタスクを割り当てできる。
【００６２】
この実施例では、アプリケーションプロセッサ５００からＤＳＰ５５０または無線周辺デバイス５６０のいずれかまでに特定のタスクが割り当てられたときに、物理アドレススペース内のメモリの一部が、この目的のために補助処理ユニット５５０、５６０に割り当てられるようにすることが可能であり、補助処理ユニットがこのタスクを実行している間、アプリケーションプロセッサ５００はそのメモリにアクセスしない。
【００６３】
図１の実施例の場合のように、周辺ＭＭＵ５７０によって、ＤＳＰ５５０または無線周辺デバイス５６０から受信されるアクセスリクエストに基づき、メモリ５４０への必要なアクセスリクエストを発生するための周辺ＭＭＵ５７０が設けられている。更に、図１の実施例の場合のように、セキュアモードで作動中に種々のページテーブルを識別し、かつどのプロセスにより、どのページテーブルを参照すべきかを表示するように、アプリケーションプロセッサ５００により、周辺ＭＭＵ５７０にプログラムが組み込まれる。
【００６４】
これによって、図７に示されるようなメモリリソースのダイナミック割り当てが可能になる。より詳細には、ブート時には物理メモリ５４０は３つの領域、すなわちＤＳＰメモリ領域６２０、アプリケーションプロセッサメモリ領域６００および共用メモリ領域６１０に分割できる。この共用メモリ領域６１０は連続する物理アドレスメモリのプールである。
【００６５】
特定のプロセスの実行中の後のあるポイントにおいて、アプリケーションプロセッサ５００がＤＳＰ５５０にそのプロセスの特定部分を割り当てたいことがある。この時点で、プロセッサは２つのメモリ領域６４０および６６０をＤＳＰメモリ領域としてダイナミックに割り当てできる。元のアプリケーションプロセッサのメモリ領域６００のうちの残りの領域６３０、６５０、６７０は、アプリケーションプロセッサメモリ領域として保持される。しかしながら、ＤＳＰ５５０がアプリケーションプロセッサ５００のためにあるタスクを実行している間、アプリケーションプロセッサが領域６４０および６６０にアクセスすることはできない。
【００６６】
これまでの説明から、本発明の実施例では、補助処理ロジックユニットによりアクセスを制御する周辺ＭＭＵが、周辺ＭＭＵの適当なプログラミングを介してメイン処理ユニットにより値が制御される１つ以上の関連するメモリ属性をメモリアドレスに関連して発生するように、メモリへのアクセスを制御できることが理解できよう。例えば、これによりメイン処理ユニットと補助処理ユニットとの間でシステムキャッシュを共用するシステム内で、システムレベルのキャッシュコヒーレンスを維持することを保証できる。更に、別の実施例により、補助処理ユニットが発生するアクセスリクエストに関連し、適当な保護属性の制御された発生によって、システムレベルのセキュリティの問題を管理できる。
【００６７】
以上で、本明細書において特定の実施例について説明したが、本発明はこの実施例だけに限定されるものではなく、本発明の範囲内で開示した実施例について多数の変更および追加を行うことができることが理解できよう。例えば本発明の範囲から逸脱することなく、従属請求項の特徴事項と独立請求項の特徴事項とを種々組み合わせることができる。
【図面の簡単な説明】
【００６８】
【図１】本発明の一実施例に係わるデータ処理装置のブロック図である。
【図２】本発明の一実施例に係わる図１の周辺ＭＭＵをより詳細に示すブロック図である。
【図３】本発明の一実施例に係わる図２のＴＬＢの構造を示す。
【図４】本発明の一実施例に係わる図１の周辺ＭＭＵの動作を示すフローチャートである。
【図５】本発明の一実施例に係わる、仮想アドレスとデスクリプタと物理アドレスとキャッシュ属性および保護属性との間の関係を略図で示す図である。
【図６】本発明の第２実施例に係わるデータ処理装置のブロック図である。
【図７】図６のデータ処理装置内にメモリをダイナミックに割り当てることを略図で示す図である。
【符号の説明】
【００６９】
２０  メイン処理ユニット
２２  命令キャッシュ
２４  内部命令メモリ管理ユニット
２５  プロセッサコア
２６  データＭＭＵ
２８  データキャッシュ
３０  ハードウェアアクセレレータロジック
４０  補助処理ユニット
４２  ＤＳＰエンジン
４５  ＤＳＰキャッシュ
５０  周辺ＭＭＵ
７０  システムキャッシュ
９０  ＭＰＵ
１００  ＳＤＲＡＭ
１１０  ＬＣＤコントローラ
１２０  ビデオディスプレイ
【図１】
2006216012.tif 000003
【図２】
2006216012.tif 000004
【図３】
2006216012.tif 000005
【図４】
2006216012.tif 000006
【図５】
2006216012.tif 000007
【図６】
2006216012.tif 000008
【図７】
2006216012.tif 000009