JP2011048616A - データプロセッサ - Google Patents

データプロセッサ Download PDF

Info

Publication number
JP2011048616A
JP2011048616A JP2009196370A JP2009196370A JP2011048616A JP 2011048616 A JP2011048616 A JP 2011048616A JP 2009196370 A JP2009196370 A JP 2009196370A JP 2009196370 A JP2009196370 A JP 2009196370A JP 2011048616 A JP2011048616 A JP 2011048616A
Authority
JP
Japan
Prior art keywords
domain
register
cpu
data
access
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.)
Granted
Application number
JP2009196370A
Other languages
English (en)
Other versions
JP5491102B2 (ja
Inventor
Takeki Kondo
雄樹 近藤
Toru Nojiri
徹 野尻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009196370A priority Critical patent/JP5491102B2/ja
Priority to US12/844,800 priority patent/US8706996B2/en
Publication of JP2011048616A publication Critical patent/JP2011048616A/ja
Application granted granted Critical
Publication of JP5491102B2 publication Critical patent/JP5491102B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】複数のOSを同時に実行させ、それらを組み合わせて構築されるシステムにおいて、システムの信頼性を損なうことなく、OS間のデータ転送を高速に行い、システムの性能を向上する。
【解決手段】ドメイン(OS&App_A、OS&App_B)を制御するドメインマネージャ(DMNMNGR)からのアクセスを、ドメインマネージャからのアクセスとして取り扱うアクセスモードの他に、ドメインのプログラムからなされたアクセスとして取り扱うアクセスモードをCPU(2)に拡張し、ドメインマネージャのプログラムがその拡張されたアクセスモードを利用してドメイン間でのデータ転送を行う。例えばドメインマネージャからのリードアクセスを第1のドメインからのリードアクセスと擬制し、ドメインマネージャからのライトアクセスを第2のドメインからのライトアクセスと擬制することにより、ドメインマネージャはドメイン間のデータ転送を行う。
【選択図】図1

Description

本発明は、記憶保護機能を有するデータプロセッサに関し、例えば、異なるオペレーティングシステムの制御下でプログラムを実行するシステム(仮想マシン)の間での連携が可能なマイクロコンピュータに適用して有効な技術に関する。
今日のデータプロセッサ、およびデータプロセッサで構成されるシステムにおいては、LSI(半導体集積回路)の微細化に伴う高集積化に伴い、そのシステムで動作するアプリケーションプログラムに要求される機能がより高機能化、複雑化している。
高機能なアプリケーションプログラムを開発するに当たっては、既存のアプリケーションプログラムを活用し、それらを組み合わせて、より高機能なアプリケーションプログラムを開発することが、開発効率の観点から一般的である。
このとき、既存のアプリケーションプログラムは、従来のデータプロセッサで構成される従来システムで動作するものであり、その従来システムの構成と不可分のものである。システムの構成を変更することは、既存アプリケーションプログラムを再度開発するほどではないにせよ、多大な開発工数が必要となるものである。
したがって、既存アプリケーションのプログラムは、ほとんどの場合従来システムで動作させなければならず、既存アプリケーションプログラムを組み合わせて動作させるためには、従来システム自体も組み合わせて動作させる必要がある。
ここで、従来システムとは、単一のCPU(中央処理装置)と単一のOS(オペレーティングシステム)で構成されるシステムが一般的であり、従来システムを組み合わせて動作させる、とは、特に多種多数のOSを組み合わせて、同時に動作させることを意味する。
このとき、各々の従来システムの信頼性やセキュリティを保ちつつ、それらのOSを複数組み合わせて動作させる技術が特許文献1で示されている。
特開2008−097173号公報
特許文献1に示された技術の目的は、各々の既存アプリケーションプログラムが動作する各々の従来システムを、複数動作させることであるが、高機能なアプリケーションプログラムを実現するにあたっては、複数の既存アプリケーションプログラムを連携させることが必要である。
特に、複数の既存アプリケーションプログラムの連携には、システムブロック(仮想マシン)間で、高速にデータを受け渡しできることが、性能面で重要であるが、システムの信頼性との両立のために、データの受け渡しは、複数のシステムブロックを束ねるソフトウェアによって行われる必要がある。システムブロックは特許文献1にも記載される前記仮想マシンを意味し、本明細書では仮想マシンをドメインと称する。また、複数のシステムブロックを束ねるソフトウェアは前記ドメインの制御を行うドメインマネージャであり、特許文献1では仮想マシンマネージャと呼称されている。ドメインマネージャはOSの上位ソフトウェアとして位置付けられる。
複数のドメイン間で受け渡しすべきデータは、データの転送元、転送先のドメインで動作するOSの管理下にあるものである。システムの信頼性のためには、データの受け渡し処理はドメインマネージャによって行われなければならないが、一方、受け渡しすべきデータは、ドメインマネージャからのアクセスが困難な場合があり、ひいては複数のドメイン間でのデータ転送が困難であるという問題がある。ドメイン毎に記憶保護が行われるからである。例えば、ドメインマネージャから受け渡しすべきデータがアクセス困難になる場合として、データの転送元、転送先ドメインで動作するOSが夫々別々に仮想記憶を行うからである。仮想記憶の機構は、CPUが発するアクセスの仮想アドレスを物理アドレスに変換すると共に変換に際してアクセス権限に基づき記憶保護を行うことで、メモリなどの実アドレスとの対応を柔軟にし、メモリ管理を効率化する機構であるが、アドレス変換やアクセス権限の設定はドメインで動作しているOSが行い、ドメインマネージャからの制御が難しい。
本発明の目的はドメインの記憶保護を維持しつつそれに阻まれることなくドメインマネージャがドメインと連携してアクセスを行うことができるデータプロセッサを提供することにある。
本発明の更に具体的な目的は、記憶保護の異なるドメインの間におけるデータ転送の高速化を、記憶保護機能を生かしながら実現することができるデータプロセッサを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、本発明では、ドメインを制御するドメインマネージャからのアクセスを、ドメインマネージャからのアクセスとして取り扱うアクセスモードの他に、ドメインのプログラムからなされたアクセスとして取り扱うアクセスモードをCPUに拡張し、ドメインマネージャのプログラムがその拡張されたアクセスモードを利用してドメイン間でのデータ転送を行う。例えばドメインマネージャからのリードアクセスを第1のドメインからのリードアクセスと擬制し、ドメインマネージャからのライトアクセスを第2のドメインからのライトアクセスと擬制するアクセスモードの拡張を行うことにより、ドメインマネージャは、第1のドメインによる記憶保護が行われているメモリ領域からデータをリードし、リードしたデータを、第2のドメインによる記憶保護が行われているメモリ領域にライトすることができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、ドメインの記憶保護を維持しつつそれに阻まれることなくドメインマネージャがドメインと連携してアクセスを行うことができる。更に、記憶保護の異なるドメインの間におけるデータ転送の高速化を、記憶保護機能を生かしながら実現することも可能になる。
図1は本発明の一実施の形態に係るデータプロセッサの構成を例示するブロック図である。 図2はレジスタSRX.MDX、SRX.RDAX、及びSRX.WDAXの構成を例示する説明図である。 図3はレジスタSRXを操作する命令を例示する説明図である。 図4はレジスタXDMID、XRDMID、XWDMIDの構成を例示する説明図である。 図5はレジスタSRX.MDX、SRX.RDAX、SRX.WDAX、XDMID、XRDMID、及びXWDMIDの設定状態と、それに応ずるCPUモード及びアクセスモードとの関係を整理して示す説明図である。 図6はMMUにおけるアドレス変換規則が設定される、アドレス変換テーブルの構成を例示する説明図である。 図7は本発明のデータプロセッサにおいてCPUモードがXVS(MDX=1)のときにドメインマネージャの制御によってドメイン間のデータ転送動作を行うときの動作を例示するフローチャートである。 図8はレジスタSRX.RDAX,SRX.WDAX,XRDMID,XWDMIDを採用せずCPUモードとアクセスモードが必ず一致する場合におけるドメイン間のデータ転送動作の手順を比較例として示すフローチャートである。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係るデータプロセッサ(1)は、プログラムを実行するCPU(2)と、当該CPUの動作モードに基づいて前記CPUのアドレス空間に対する記憶保護を行う記憶保護部と、を有する。このデータプロセッサは、どのオペレーティングシステムによるプログラムの実行かを指定するためのドメインIDデータが設定されるドメインIDレジスタ(XDMID)と、前記ドメインIDレジスタで指定されたプログラムを実行するのか又は前記ドメインIDレジスタで指定されたプログラムを実行するための管理制御を行うのかを指定するモードデータが設定されるドメイン制御レジスタ(SRX.MDX)と、前記ドメイン制御レジスタによって前記管理制御が指定されているときに、前記ドメイン制御レジスタ及び前記ドメインIDレジスタの設定状態によって決まるCPUの動作モードの属性情報(132,135)を変更する、ための属性変更データが設定される属性情報変更レジスタ(XRDMID,XWDMID,SRX.RDAX,SRX.WDAX)と、を有する。前記記憶保護部は、前記属性情報変更レジスタに設定された属性変更データが反映された属性情報(132,133,134,135,136,137)をCPUから受取ってアクセスの正当性を判別する。
上記より、属性情報変更レジスタに設定される属性変更データに従って、管理制御を行うドメインマネージャからのアクセスが、ドメインのプログラムからなされたアクセスとして擬制されるから、ドメインの記憶保護を維持しつつそれに阻まれることなくドメインマネージャがドメインと連携してアクセスを行うことが可能になる。
〔2〕項1のデータプロセッサにおいて、例えば前記属性変更データは、属性情報を、前記管理制御から前記ドメインIDレジスタで指定されたプログラムの実行に切換える、ための第1データ(SRX.RDAX=0/1,SRX.WDAX=0/1)と、どのドメインIDに切換えるかを指定する第2データ(XRDMID=0/1,XWDMID=0/1)と、を含む。これにより、権限属性の切換え態様を任意に指定することが可能になる。
〔3〕項2のデータプロセッサにおいて、前記第1データ及び第2データの夫々は、例えばリードアクセスとライトアクセス毎に別々に属性情報の変更を指定するデータである。
これにより、例えばドメインマネージャからのリードアクセスを第1のドメインからのリードアクセスと擬制し、ドメインマネージャからのライトアクセスを第2のドメインからのライトアクセスと擬制するように属性情報を変更することにより、ドメインマネージャは、第1のドメインによる記憶保護が行われているメモリ領域からデータをリードし、リードしたデータを、第2のドメインによる記憶保護が行われているメモリ領域にライトすることができる。このことにより、記憶保護の異なるドメインの間におけるデータ転送の高速化を、記憶保護機能を生かしながら実現することができるひいては、記憶保護機構を利用した既存のアプリケーションプログラムを複数組み合わせて複数ドメインからなるシステの性能を高めることができる。
〔4〕項1乃至3の何れかのデータプロセッサにおいて、前記CPUは、例えば前記ドメインIDレジスタ、前記ドメイン制御レジスタ及び属性情報変更レジスタにデータをロードする特定のロード命令(LDC Rm、SRX)を命令セットに含み、当該ロード命令の実行は前記ドメイン制御レジスタによって前記管理制御が指定されていることを条件とするこれにより、ドメインマネージャがOSの上記ソフトウェアとして前記ドメインIDレジスタ、前記ドメイン制御レジスタ及び属性情報変更レジスタの設定を行うことができる。
〔5〕項4のデータプロセッサにおいて、前記CPUは、例えば前記ドメインIDレジスタ、前記ドメイン制御レジスタ及び属性情報変更レジスタからデータをストアする特定のストア命令(STC SRX、Rn)を命令セットに含み、当該ストア命令の実行は前記ドメイン制御レジスタによって前記管理制御が指定されていることを条件とする。これにより、ドメインマネージャがOSの上記ソフトウェアとして前記ドメインIDレジスタ、前記ドメイン制御レジスタ及び属性情報変更レジスタの内容を退避することができる。
〔6〕項5のデータプロセッサにおいて、前記CPUは、例えば前記管理制御を指定するためのモードデータを前記ドメイン制御レジスタに設定してから例外処理を要求させるトラップ命令(TRAPX #imm4)を命令セットに含み、当該とラップ命令の実行は前記ドメイン制御レジスタの設定状態に依存しない。これにより、あるドメインが他のドメインからデータを必要とする場合に、容易にドメインマネージャによる管理制御に処理を分岐させることができる。
〔7〕項1乃至6の何れかのデータプロセッサにおいて、前記記憶保護部は、例えば仮想アドレス(VPN[31:24])のアクセスが許容されるCPUの動作モードの属性情報(MDX,DMID)を持つと共に当該仮想アドレスと物理アドレス(VPN[31:24])の変換対を用いて、前記CPUの仮想アドレスを物理アドレスに変換すると共に、変換対の仮想アドレスのアクセスが許容されるCPUの動作モードの属性情報が当該仮想アドレスをアクセスするCPUの動作モードの属性情報に一致すか否かに基づいてアクセスの正当性を判別する、MMUである。仮想記憶を採用するシステムに本発明を適用可能である。
〔8〕項7のデータプロセッサにおいて、例えば前記MMUはアドレス変換テーブルを備える。前記アドレス変換テーブルは、仮想アドレスと物理アドレスの変換対と共に当該仮想アドレスのアクセスが許容されるCPUの動作モードの属性情報を有するエントリ情報が書き換え可能に格納される。
〔9〕項8のデータプロセッサにおいて、前記属性情報変更レジスタに設定された属性変更データに従って属性情報が変更され、且つ、前記ドメイン制御レジスタの設定に従ってCPUが管理制御を行っている場合に、前記MMUがアドレス変換ミスを生ずることによってアドレス変換ミス例外を発生するとき、当該アドレス変換ミス例外に応答するCPUは、例えば前記属性情報変更レジスタによる属性情報の変更先のドメインIDを指定するドメインIDデータを前記ドメインIDレジスタに設定し、且つ、前記ドメイン制御レジスタに前記ドメインIDレジスタで指定されたプログラムの実行を指示するモードデータを設定して、当該ドメインIDレジスタで指定されたプログラムによるアドレス変換ミス例外処理の実行に分岐する。
これにより、ドメインマネージャの管理制御においてドメインによるアクセスと擬制されるアクセスでアドレス変換ミスを生じたとき、当該アドレス変換ミスに係るエントリを当該ドメインのアドレス変換テーブルに格納させるための例外処理を起動することが可能になる。
〔10〕項9のデータプロセッサにおいて、前記CPUは、分岐先でアドレス変換ミス例外処理を実行してから、前記ドメイン制御レジスタに管理制御を指定するためのモードデータを設定する。これにより、アドレス変換ミス例外処理を完了した後、ドメインマネージャの管理制御に復帰して、中断した処理の継続が可能になる。
〔11〕本発明の別の実施の形態に係るデータプロセッサは、プログラムを実行するCPUと、前記CPUの動作モードに基づいて前記CPUのアドレス空間に対する記憶保護を行う記憶保護部と、を有し、更に、どのオペレーティングシステムによるプログラムの実行かを指定するためのドメインIDデータが設定されるドメインIDレジスタと、前記ドメインIDレジスタで指定されたプログラムを実行するのか又は前記ドメインIDレジスタで指定されたプログラムを実行するための管理制御を行うのかを指定するモードデータが設定されるドメイン制御レジスタと、前記ドメイン制御レジスタによって前記管理制御が指定されているとき前記記憶保護部にアクセスの正当性を判別のために与えられるCPUの動作モードの属性情報を変更するためのデータが設定される属性情報変更レジスタと、を備える。上記同様に、ドメインの記憶保護を維持しつつそれに阻まれることなくドメインマネージャがドメインと連携してアクセスを行うことが可能になる。
〔12〕本発明の更に別の実施の形態に係るデータプロセッサは、プログラムを実行するCPUと、前記CPUの動作モードに基づいて前記CPUのアドレス空間に対する記憶保護を行う記憶保護部と、を有する。前記CPUは、CPUによるプログラムの実行が、どのオペレーティングシステムの管理下のドメインで行われているのか、又は夫々のドメインを制御するドメインマネージャによる管理制御であるのか、を示す動作モードに加えて、前記管理制御に基づくアクセスを所定のドメインによるアクセスと擬制する動作モードを有する。上記同様に、ドメインの記憶保護を維持しつつそれに阻まれることなくドメインマネージャがドメインと連携してアクセスを行うことが可能になる。
2.実施の形態の詳細
実施の形態について更に詳述する。
《データプロセッサ》
図1には本発明の一実施の形態に係るデータプロセッサの構成が例示される。同図に示されるデータプロセッサ1は、特に制限されないが、相補型MOS集積回路製造技術により単結晶シリコン等の1個の半導体基板に形成される。
データプロセッサ1は、特に制限されないが、プログラムを実行するCPU2と、CPU2にバス100で接続されたメモリマネージメントユニット(MMU)3とを有する。データプロセッサ1の外部にはMMU3にバス101で接続された主記憶(MEM)4が接続される。MMU3は仮想アドレスを物理アドレスに変換する仮想記憶機能と共に、CPU2のアドレス空間に対する記憶保護を行う記憶保護部としての機能を備える。
図1において、CPU2がソフトウェアを実行して実現するシステムは、特に制限されないが、第1のOSとその制御の元で実行されるアプリケーションプログラムとのグループによって実現されるシステムブロック(仮想マシン)としての第1ドメインと、第2のOSとその制御の元で実行されるアプリケーションプログラムとのグループによって実現されるシステムブロック(仮想マシン)としての第2ドメインと、前記第1ドメインおよび第2ドメインの制御を行うドメインマネージャとされる。図1において、第1ドメインはOS&App_Aとして表され、第2ドメインはOS&App_Bとして表され、ドメインマネージャはDMNMNGRとして表される。
図1ではCPU2が備える汎用レジスタなどのレジスタセットや命令デコーダ等のハードウェア構成の明示的な図示は省略しており、発明の理解を溶解するために、第1ドメインOS&App_A、第2ドメインOS&App_B、及びドメインマネージャDMNMNGRの動作モードを設定するためのレジスタ構成、及びドメインマネージャDMNMNGRによるアクセスを選択的に第1ドメインOS&App_A又は第2ドメインOS&App_Bによるアクセスに擬制するためのレジスタ構成などを主体的に示してある。
CPU2は、現在実行中のプログラムが動作しているモードを示すレジスタとして、ドメインIDレジスタXDMIDレジスタとドメイン制御レジスタSRX.MDXとを有する。
ドメインIDレジスタXDMIDは、どのオペレーティングシステムによるプログラムの実行かを指定するためのドメインIDデータDMIDが設定されるレジスタであり、DMID=0は第1ドメインOS&App_Aを指定し、DMID=1は第2ドメインOS&App_Bを指定する。
ドメイン制御レジスタSRX.MDXは前記ドメインIDレジスタXDMIDで指定されたドメインによる処理を実行するのか又はドメインマネージャDMNMNGRがドメインOS&App_A,OS&App_Bの管理制御を行うのかを指定するモードデータMDが設定されるレジスタであり、MDX=0はドメインによる処理を指定し、MDX=1はドメインマネージャDMNMNGRによる管理制御を指定する。ドメインによる処理はOSを実行する特権状態(Priv)又はOSで管理されるアプリケーションプログラムを実行するユーザ状態(User)に大別される。
したがって、レジスタSRX.MDX=1の場合は、ドメインマネージャDMNMNGRが動作するモードとされ、SRX.MDX=0の場合は、ドメインOS&App_A又はOS&App_Bが動作するモードとされ、そのドメインが動作するかはレジスタXDMIDの設定値によって決まる。図1において、ドメインOS&App_Aは、レジスタSRX.MDXの値が0、且つレジスタXDMIDの値が0で動作する。ドメインOS&App_Bは、レジスタSRX.MDXの値が0、且つレジスタXDMIDの値が1で動作する。ドメインマネージャDMNMNGRはSRX.MDXが1で動作する。
CPU2によるプログラム処理は、ドメインOS&App_Aが動作するモード、ドメインOS&App_Bが動作するモード、ドメインマネージャDMNMNGRが動作するモードのいずれかのCPUモードで行われ、プログラムの実行内容にしたがって、モードが切り替わりながら、時分割で逐次プログラムが実行される。すなわち、ドメインOS&App_A、ドメインOS&App_B、ドメインマネージャDMNMNGRは時分割で擬似並列的に実行される。
ドメインOS&App_A、ドメインOS&App_B及びドメインマネージャDMNMNGRの夫々が実行するプログラム及びデータはMEM4に格納されており、プログラムの実行に伴って順次、CPU2からMEM4にアクセスが行われる。MEM4におけるOS&App_A_Region、OS&App_B_Region、DMNMNGR_Regionはそれぞれ、ドメインOS&App_A、ドメインOS&App_B、ドメインマネージャDMNMNGRのプログラム及びデータの格納に割り当てられた記憶領域である。
110、111は、ドメインOS&App_Aのプログラム実行に伴って発行されるMEM4へのアクセスを示し、110はMEM4からCPU2への読み込み(リード)アクセス、111はCPU2からMEM4への書き込み(ライト)アクセスを示す。
112は、CPU2とMEM4の間のアクセスに伴って、110と111のアクセスに付随してMMU3に与えられる、そのときのCPUの動作モードの属性情報を示しており、MMU3における記憶保護に利用される。この属性情報はCPU2の動作モードと一致し、DMID=0、MDX=0の情報を持ち、当該アクセスがドメインOS&App_Aのプログラム実行によって生じたものであることを意味する。
MMU3は、MMU3の設定内容とアクセスに際して伝達された属性情報とに基づいて当該アクセスの正当性を判別し、必要なアドレス変換を行って、アクセスアアドレスをバス101からMEM4に供給する。このときのアクセス対象は記憶領域OS&App_A_Regionとされる。記憶保護の具体的な内容については詳細を後述する。
120、121はドメインOS&App_Bのプログラム実行に伴って発行されるMEM4へのリードアクセス、ライトアクセスを示す。122は、120と121のアクセスに付随してMMU3に与えられる、そのときのCPUの動作モードの属性情報を示しており、MMU3における記憶保護に利用される。この属性情報はCPUの動作モードに一致され、DMID=1、MDX=0の情報を持ち、当該アクセスがドメインOS&App_Bのプログラム実行によって生じたものであることを意味する。MMU3は、上述と同様にMMU3の設定内容とアクセスに際して伝達された属性情報とに基づいて当該アクセスの正当性を判別し、必要なアドレス変換を行って、アクセスアアドレスをバス101からMEM4に供給する。このときのアクセス対象は記憶領域OS&App_B_Regionとされる。
130、131は、ドメインマネージャDMNMNGRのプログラムの実行に伴って発行されるMEM4へのリードアクセス、ライトアクセスを示す。このとき、130のアクセスに付随してMMU3に与えられる属性情報は、132、133、134の何れかであり、131のアクセスに付随してMMU3に与えられる属性情報は、135、136、137の何れかである。
属性情報132,135は、CPUの動作モードがドメインマネージャDMNMNGRのプログラムの実行モードであることに一致され、MDX=1(DMIDは任意)の情報を持ち、当該アクセスがドメインマネージャDMNMNGRのプログラムの実行によって生じたものであることを意味する。この属性情報を図1では“XVS”と標記している。
属性情報133,136は、CPUの動作モードがドメインマネージャDMNMNGRのプログラムの実行モードであることとは一致されず、DMID=1、MDX=0の情報を持ち、当該アクセスがドメインOS&App_Bのプログラム実行によって生じたものであることを擬制する。この属性情報を図1では“User/Priv DMID=1”と標記している。
属性情報134,137は、CPUの動作モードがドメインマネージャDMNMNGRのプログラムの実行モードであることとは一致されず、DMID=0、MDX=0の情報を持ち、当該アクセスがドメインOS&App_Aのプログラム実行によって生じたものであることを擬制する。この属性情報を図1では“User/Priv DMID=0”と標記している。
130,131のアクセスにどの属性情報が付随されるかはレジスタXRDMID,XWDMID,SRX.RDAX,SRX.WDAXの設定内容にしたがって決定される。それらレジスタXRDMID,XWDMID,SRX.RDAX,SRX.WDAXは、ドメイン制御レジスタSRX.MDX及びドメインIDレジスタXDMIDの設定状態によって決まるCPU2の動作モードの属性情報を、前記ドメイン制御レジスタSRX.MDXによって前記管理制御が指定されたときに変更するための属性変更データが設定される属性情報変更レジスタの一例とされる。図1において140は、ドメインOS&App_A、ドメインOS&App_B、又はドメインマネージャDMNMNGRによりCPUモードに従って原始的に生成されたアクセスの属性情報を入力し、入力した原始的な属性情報(原始的属性情報)を、属性情報変更レジスタXRDMID,XWDMID,SRX.RDAX,SRX.WDAXの設定値に従って変更し、MMU3によってドメインOS&App_A又はドメインOS&App_Bによるアクセスと擬制され得る属性情報(擬制属性情報)に変更するロジックを明示的に図示したものである。このロジック140は、例えばCPU2の内部において命令のデコード結果や内部レジスタの値に従って制御信号を生成する制御ロジックの一部として実現されることになる。
MMU3は、仮想アドレスと物理アドレスの変換対と共に当該仮想アドレスのアクセスが許容されるCPU2の動作モードの属性情報(原始的属性情報に対応する)を有するエントリ情報が書き換え可能に格納されるアドレス変換テーブルを有する。MMU4はCPU2からのアクセス110,111,120,121,130,131に付随して入力される仮想アドレスを用いてエントリ情報を連想リードし、リードしたエントリ情報が保有する属性情報と、当該アクセスに付随して仮想アドレスと共に供給される属性情報とが一致する否かを判別し、一致するときは対応する物理アドレスをMEM4に出力し、不一致の場合には当該アクセスを中止して記憶保護違反の例外処理をCPU2に要求する。
MMU3では、属性情報変更レジスタXRDMID,XWDMID,SRX.RDAX,SRX.WDAXの設定に従って、管理制御を行うドメインマネージャDMNMNGRからのアクセスが、ドメインOS&App_A又はドメインOS&App_Bによるアクセスとして擬制されるから、ドメインOS&App_A又はドメインOS&App_Bによるアクセスの記憶保護を維持しつつそれに阻まれることなくドメインマネージャDMNMNGRがドメインOS&App_A又はドメインOS&App_Bと連携してアクセスを行うことが可能になる。以下その内容について更に詳述する。
《CPUモードとその属性情報の変更とに係るレジスタ構成》
図2にはレジスタSRX.MDX、SRX.RDAX、及びSRX.WDAXの構成が例示される。前述の、レジスタSRX.MDX、レジスタSRX.RDAX、レジスタSRX.WDAXの夫々は、実際には、レジスタSRXの特定のビットに割当てられる。
レジスタSRXは、特に制限されないが、32ビット長のレジスタであり、後述するレジスタSRXに対するレジスタアクセス命令で読み書きできる。ビット3、ビット9、ビット8がそれぞれ、SRX.MDX、SRX.RDAX、SRX.WDAXに対応する。それ以外のビットについては、常に0が読み出され、書き込みは無視される。
図3には前述のレジスタSRXを操作する命令の説明が示される。命令コードH’4m89(ただしmは16進数で0からF、10進数で0から15)の命令“LDC Rm、SRX”は、CPU2の汎用レジスタm番(Rm)から、レジスタSRXに値を転送する命令である。実行権限の“XVS”とは、ドメインマネージャの動作モードで実行可能であることを示す。
命令コードH’4n88(ただしnは16進数で0からF、10進数で0から15)の命令“STC SRX、Rn”は、レジスタSRXから、CPU2の汎用レジスタn番(Rn)に値を転送する命令である。個の命令は上記と同じ実行権限を持つ。
また、命令コードH’0iCB(ただしiは16進数で0からF、10進数で0から15)の命令“TRAPX #imm4”は、レジスタSRX.MDXに1をセットする命令である。実行権限の“User/Priv”とは、ドメインの動作モードで実行可能であることを示す。この命令はドメイン及びドメインマネージャの何れからも実行可能である。
ドメインマネージャのプログラムからは、命令“LDC Rm、SRX”、および命令“STC SRX、Rn”命令を用いて、レジスタSRX.MDX、SRX.RDAX、SRX.WDAXの値を操作することが可能である。
また、各々のドメインのプログラムからは、命令“TRAPX #imm4”を用いてレジスタSRX.MDXを1とすることが可能である。これはすなわち、プログラムの実行をドメインのプログラムからドメインマネージャのプログラムに切り替えることを意味する。
図4にはレジスタXDMID、XRDMID、XWDMIDの構成が例示される。これらレジスタは、32ビット長のメモリマップされたレジスタであり、それぞれ、16進数でH’FF000C04、H’FF000C08、H’FF000C0Cのアドレスが割当てられており、CPU2からMEM4へのリード、ライトを行う命令でアクセスすることができる。ただし、これらレジスタへのアクセスの場合には、CPU2からMEM4への実際のアクセスが発行されるわけではない。
アドレスH’FF000C04のレジスタのビット0がXDMIDに対応する。また、アドレスH’FF000C08、H’FF000C0Cのレジスタのビット0がそれぞれ、XRDMID、XWDMIDに対応する。それ以外のビットについては、常に0が読み出され、書き込みは無視される。
《レジスタ設定に応ずるCPUモードとアクセスモード》
図5には前述のレジスタSRX.MDX、SRX.RDAX、SRX.WDAX、XDMID、XRDMID、及びXWDMIDの設定状態と、それに応ずるCPUモード及びアクセスモードとの関係が整理して示される。CPUモードとはCPUの動作モードであり、アクセスモードはアクセス正当性を判別するときMMU3から見たCPUの動作モードである。
501の行は、レジスタSRX.MDXが0の場合を示している。この場合は、各々のドメインOS&App_A、OS&App_Bの動作モードであり、CPUモード及びアクセスモード共に、レジスタXDMIDに示されるドメインのモードとなる。
502の行は、レジスタSRX.MDXが1、レジスタSRX.RDAXが1、レジスタSRX.WDAXが1の場合を示している。この場合は、ドメインマネージャの動作モードであり、CPUモード及びアクセスモード共に、ドメインマネージャDMNMNGRのモードとなる。このモードは、前述の図1の、DMNMNGRのプログラムの実行に伴って発行されるMEM4へのリードアクセス130、ライトアクセス131について、それぞれ属性情報が132、135であるアクセスモードに対応している。
503の行は、レジスタSRX.MDXが1、レジスタSRX.RDAXが0、レジスタSRX.WDAXが1の場合を示している。この場合は、CPUモードはドメインマネージャの動作モードであるが、アクセスモードは、リードアクセス時は、レジスタXRDMIDに示されるドメインからのアクセスと擬制される。ライトアクセス時は、ドメインマネージャDMNMNGRからのアクセスとなる。
前述の図1との対応では、リードアクセス130については、レジスタXRDMIDの値にしたがって、属性情報が134(レジスタXRDMIDの値が0の場合)、あるいは133(レジスタXRDMIDの値が1の場合)であることに対応しており、ライトアクセス131については、属性情報が135であることに対応している。
504の行は、レジスタSRX.MDXが1、レジスタSRX.RDAXが1、レジスタSRX.WDAXが0の場合を示している。この場合は、CPUモードはドメインマネージャの動作モードであるが、アクセスモードは、ライトアクセス時は、レジスタXWDMIDに示されるドメインからのアクセスと擬制される。リードアクセス時は、ドメインマネージャDMNMNGRからのアクセスとなる。
前述の図1との対応では、リードアクセス130については、属性情報が132であることに対応しており、ライトアクセス131については、レジスタXWDMIDの値にしたがって、属性情報が137(XWDMIDレジスタの値が0の場合)、あるいは属性情報が136(XWDMIDレジスタの値が1の場合)であることに対応している。
505の行は、レジスタSRX.MDXが1、レジスタSRX.RDAXが0、レジスタSRX.WDAXが0の場合を示している。この場合は、CPUモードはドメインマネージャの動作モードであるが、アクセスモードは、リードアクセス時は、レジスタXRDMIDに示されるドメインからのアクセスと擬制され、ライトアクセス時は、レジスタXWDMIDに示されるドメインからのアクセスと擬制される。
前述の図1との対応では、リードアクセス130については、レジスタXRDMIDの値にしたがって、属性情報が134(XRDMIDレジスタの値が0の場合)、あるいは133(XRDMIDレジスタの値が1の場合)であることに対応しており、ライトアクセス131については、レジスタXWDMIDの値にしたがって、属性情報が137(XWDMIDレジスタの値が0の場合)、あるいは136(XWDMIDレジスタの値が1の場合)であることに対応している。
ここで、特に図5の503から505の行に示した設定でのCPUモード及びアクセスモードについて注目すると、これらの設定を用いることはすなわち、ドメインマネージャDMNMNGRのプログラムから、ドメインで動作するプログラムが発したかのようにアクセスを発することが出来るということに他ならない。ドメインマネージャDMNMNGRのプログラムは、ドメイン間でのデータの受け渡しの際に、適宜これらのCPUモード、アクセスモード設定を利用する。
これにより、例えばドメインマネージャDMNMNGRからのリードアクセスを第1のドメインOS&App_Aからのリードアクセスと擬制し、ドメインマネージャDMNMNGRからのライトアクセスを第2のドメインOS&App_Bからのライトアクセスと擬制するように属性情報を変更することにより、ドメインマネージャDMNMNGRは、第1のドメインOS&App_Aによる記憶保護が行われているメモリ領域OS&App_A_Regionからデータをリードし、リードしたデータを、第2のドメインOS&App_Bによる記憶保護が行われているメモリ領域OS&App_B_Regionにライトすることができる。
《MMUのアドレス変換テーブル》
図6にはMMU3におけるアドレス変換規則が設定される、アドレス変換テーブルの構成が例示される。アドレス変換テーブルは、特に制限されないが、XDMIDレジスタと同様、メモリマップされたレジスタであり、通常のリード、ライトを行う命令でアクセスできる。アドレスH’F7900000、H’F6100000、H’F7100000のレジスタの組み合わせで一組のアドレス変換設定が可能であり、これら一組をエントリー(Entry)と呼ぶ。
アドレスH’F6100000のレジスタのビット31からビット24の部分、VPN[31:24]は、CPU2が発した仮想アドレス、すなわちバス100のアドレスのビット31からビット24の部分に対応する。
アドレスH’F7900000のレジスタのビット1、0のMDX、DMIDはCPU2が発したアクセスに付随する。そのときのCPUの動作モード(CPUモード)に対応される。
アドレスH’F7100000のレジスタのビット31からビット24の部分、PPN[31:24]は、MMU3からMEM4へ与えられる物理アドレス、すなわちバス101のアドレスのビット31からビット24の部分に対応する。
アドレスH’F6100000、H’F7100000のレジスタのビット23からビット0の部分、アドレスH’F7900000のビット31からビット2の部分については、常に0が読み出され、書き込みは無視される。
アドレスH’F7900100、H’F6100100、H’F7100100の組み合わせによっても一組のEntryが構成される。同様に、アドレスH’F7900F00、H’F6100F00、H’F7100F00まで、合計で16組のエントリEntry_1〜Entry_16が構成される。
MMU3によるアドレス変換は、バス100によってCPU2から通知されたアドレスのビット31からビット24の仮想アドレスおよびアクセスモードとしての属性情報を、16組全てのエントリのVPN[31:24]、MDX、DMIDと比較し、合致するエントリがある場合、バス100で通知されたアドレスのビット31からビット24の部分を、合致するエントリのPPN[31:24]に置き換えて、バス101に出力する。仮想アドレスに合致するVPN[31:24]を持つエントリがなければMMU3はアドレス変換ミスの例外処理をCPU2に要求して、該当するエントリを追加させる。仮想アドレスに合致するVPN[31:24]を持つエントリがあっても、そのエントリのMDX、DMIDがアクセスモードの属性情報に不一致の場合にはMMU3は記憶保護違反の例外処理をCPU2に要求してアクセスを中断する。
MMU3のアドレス変換テーブルのエントリは、例えば、各々のドメインOS&App_A、OS&App_B、及びドメインマネージャDMNMNGRが仮想記憶を利用するにあたって、それぞれのプログラムが利用するエントリを分けなければならない。エントリのMDX、DMIDは、エントリを分配するために存在する。
ここで、例えばドメインOS&App_Aが、エントリの1から4を利用して動作している場合を想定する。エントリの1から4のVPN[31:24]、および、PPN[31:24]は、ドメインOS&App_Aのプログラムから設定が書き込まれる。特に、ドメインOS&App_Aの管理する仮想アドレス空間は、エントリの1から4の4組の変換設定だけではなく、合致しないアクセスが発せられた際に、適宜、設定の内容を入れ替えることによって動作するので、エントリの1から4の4組の変換設定は、ドメインOS&App_Aのプログラムによって動的に変更されることになる。
このとき、ドメインマネージャDMNMNGRがドメインOS&App_Aのための主記憶領域OS&App_A_Regionをアクセスする場合を考える。エントリの1から4の設定はドメインOS&App_Aのプログラムが随時設定を書き込んでおり、必ずしもドメインマネージャDMNMNGRがアクセスしようとしている主記憶領域OS&App_A_Regionのへのアクセスが可能な状態になっているとは限らない。
したがって、ドメインマネージャDMNMNGRがドメインOS&App_Aの主記憶領域OS&App_A_Regionにアクセスを行う場合、ドメインOS&App_Aのプログラムにあるエントリの1から4の変換設定ルーチンを利用するか、それを利用せず、ドメインOS&App_Aの管理する仮想アドレス空間全体の管理データから、ドメインマネージャDMNMNGRが独自に変換設定をエントリの1から4以外の部分を用いて行う必要がある。
後者の方法の場合、ドメインマネージャDMNMNGRのプログラムが複雑になることと、MMU3のアドレス変換テーブルに、より多くのエントリが必要になるため、前者の方法、すなわち、ドメインOS&App_Aの変換設定ルーチンを利用するのが望ましい。
変換設定ルーチンの起動は、MMU3においてアドレス変換テーブルに合致するエントリがないことであるから、ドメインOS&App_Aの主記憶領域OS&App_A RegionにドメインマネージャDMNMNGRからアクセスを行う場合であっても、上述の如く、ドメインOS&App_Aからアクセスを行ったかのようにアクセスモード(属性情報が)が擬制されるので、ドメインOS&App_AのOSを流用して前述のアドレス変換ミス例外処理をCPU2に実行させることができる。
《ドメイン間のデータ転送》
図7には本発明のデータプロセッサ1においてCPUモードがXVS(MDX=1)のときにドメインマネージャの制御によってドメイン間のデータ転送動作を行うときの動作フローチャートが例示される。ここでは前記ドメインドメインOS&App_A及びOS&App_Bの内の何れか一方をデータ転送元ドメインとし、他方を転送先のドメインとする。
図7には図示されていないが、図7の動作の前提としてCPUモードはXVS(MDX=1)とされている。データ転送動作は、201から204の前処理のステップと、転送が終了するまで繰り返される205から207のステップによって行われる。210から215の処理ステップはステップ205の処理でアドレス変換ミスが発生したときに例外処理を行なう場合が示される。同様に、220から225の処理ステップはステップ206の処理でアドレス変換ミスが発生したときに例外処理を行なう場合が示される。
ドメインマネージャDMNMNGRは、ステップ201で、データ転送元ドメインIDをレジスタXRDMIDに設定し、ステップ202でデータ転送先ドメインIDをレジスタXWDMIDに設定し、ステップ203でレジスタSRX.RDAXに0を設定し、ステップ203でレジスタSRX.RDAXに0を設定する。これによる図5の505で説明したように、CPUモードがXVSにされているとき、ドメインマネージャDMNMNGRからのリードアクセスをデータ転送元ドメインからのリードアクセスと擬制し、ドメインマネージャDMNMNGRからのライトアクセスをデータ転送先ドメインからのライトアクセスと擬制するようにアクセスモードが設定される。
ステップ205で、データ転送元のドメインのデータをCPU2の汎用レジスタに読み込むが、SRX.RDAX、XRDMIDレジスタの機能により、動作モードを切り替えることなく、アクセスモードがデータ転送元ドメインとされることによって、MMU3でのエントリの合致判定、即ち、記憶保護のための属性情報の一致判別の対象とされる属性情報が、データ転送元ドメインからのアクセスと擬制される。
また、ステップ206で、前のステップ205でCPU2の汎用レジスタに読み込んでいたデータを転送先ドメインに書き込むが、SRX.WDAX、XWDMIDレジスタの機能により、動作モードを切り替えることなく、アクセスモードがデータ転送先ドメインとされることによって、MMU3でのエントリの合致判定、即ち、記憶保護のための属性情報の一致判別の対象とされる属性情報が、データ転送先ドメインからのアクセスと擬制される。
207のステップで、転送すべきデータが全て転送されたかを判定し、まだ転送すべきデータが残っている場合には、ステップ205に戻る。これを繰り返すことによって、データ転送が完了される。
ステップ205において前記MMU3でのエントリの合致判定のためのエントリがない場合には210の処理経路に分岐し、データ転送元ドメインIDをXDMIDに設定すると共に(ステップ211)、レジスタSRX.MDXを0に設定して(ステップ212)、CPUモードを転送元ドメインのモードに設定変更し、転送元ドメインのOSによる処理を可能とする。そして、アドレス変換ミス例外要求によってデータ転送元ドメインのOSのアドレス変換ミスハンドラの処理に分岐させ(ステップ213)。これによって、アドレス変換ミスに係るアクセス対象仮想アドレスに対応するアドレス変換エントリがMMU3にセットされる(ステップ214)。この後、再びレジスタSRX.MDXを1にして(ステップ215)CPUモードをXVS(MDX=1)に戻し、中断したステップ205の処理が継続可能にされる。
ステップ206において前記MMU3でのエントリの合致判定のためのエントリがない場合には220の処理経路に分岐し、データ転送先ドメインIDをXDMIDに設定すると共に(ステップ221)、レジスタSRX.MDXを0に設定して(ステップ222)、CPUモードを転送先ドメインのモードに設定変更し、転送先ドメインのOSによる処理を可能とする。そして、アドレス変換ミス例外要求によってデータ転送先ドメインのOSのアドレス変換ミスハンドラの処理に分岐させ(ステップ223)。これによって、アドレス変換ミスに係るアクセス対象仮想アドレスに対応するアドレス変換エントリがMMU3にセットされる(ステップ224)。この後、再びレジスタSRX.MDXを1にして(ステップ225)CPUモードをXVS(MDX=1)に戻し、中断したステップ206の処理が継続可能にされる。
これにより、ドメインマネージャDMNMNGRは、転送元のドメイン(例えばOS&App_A)による記憶保護が行われているメモリ領域(例えばOS&App_A_Region)からデータをリードし、リードしたデータを、転送先のドメイン(例えばOS&App_B)による記憶保護が行われているメモリ領域(例えばOS&App_B_Region)にライトすることができる。
図8にはレジスタSRX.RDAX,SRX.WDAX,XRDMID,XWDMIDを採用せずCPUモードとアクセスモードが必ず一致する場合におけるドメイン間のデータ転送動作を比較例として示す。
処理は、301から309の処理ステップを、転送が終了するまで繰り返すことによって行われる。301から303のステップは、動作モードをドメインマネージャからデータ転送元ドメインに切り替えて、CPUの汎用レジスタにデータを読み込む処理である。データ転送元ドメインに動作モードを切り替える必要があるのは、MMU3でのエントリ合致判定が、データ転送元ドメインからのアクセスとして行われる必要があるからである。
304のステップで、処理をドメインマネージャに戻す。この時、SRX.MDXはデータ転送元ドメインのプログラムから直接書き換えできないため、前述のTRAPX #imm4命令を利用して、動作モードの切り替えを行う必要がある。
305から307のステップは、動作モードをドメインマネージャからデータ転送先ドメインに切り替えて、前のステップ303でCPUの汎用レジスタに読み込んでいたデータを書き込む処理である。この場合も、MMU3でのエントリ合致判定の都合上、データ転送先ドメインの動作モードでなければならない。また、308のステップで、処理をドメインマネージャに戻す。
309のステップで、転送すべきデータが全て転送されたかを判定し、まだ転送すべきデータが残っている場合には、ステップ301に戻る。これを繰り返すことによって、データ転送元ドメインから、データ転送先ドメインへのデータ転送が行われる。
ステップ303において前記MMU3でのエントリの合致判定のためのエントリがない場合には310の処理経路に分岐し、アドレス変換ミス例外要求によってデータ転送元ドメインのOSのアドレス変換ミスハンドラの処理に分岐させ(ステップ311)。これによって、アドレス変換ミスに係るアクセス対象仮想アドレスに対応するアドレス変換エントリがMMU3にセットされる(ステップ312)。この後、中断したステップ303の処理が継続可能にされる。
ステップ307において前記MMU3でのエントリの合致判定のためのエントリがない場合には320の処理経路に分岐し、アドレス変換ミス例外要求によってデータ転送先ドメインのOSのアドレス変換ミスハンドラの処理に分岐させ(ステップ321)。これによって、アドレス変換ミスに係るアクセス対象仮想アドレスに対応するアドレス変換エントリがMMU3にセットされる(ステップ322)。この後、中断したステップ307の処理が継続可能にされる。
本発明による図7と比較例に係る図8とを比べると、繰り返すステップ数が前者の場合は205から207の3ステップのみであり、また、繰り返しの処理中にモードの切り替えなどが無いため、図8の後者の場合に比べて、高速にデータ転送を行うことが可能である。アドレス変換ミスを生じたときのリカバリのための処理ステップ数は図7の前者の場合が5ステップであるのに対し図8の後者は2ステップで少ないが、経路210,220の処理及び経路310,320の処理はアドレス変換ミスを生じた場合にだけ発生されるものであり、転送元から転送先への転送に際して毎回生ずるものではないから、アドレス変換ミスによる処理を考慮しても、やはり、図7の方が図8に比べて高速にデータ転送を行うことができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、本発明はマルチCPUのデータプロセッサにも適用することができる。また、アドレス変換テーブルを連想記憶構造のTLB(Translation Look-aside Buffer)で構成することも可能である。データプロセッサは1チップに限定されずマルチチップであってもよい。マルチチップの場合には当該複数のチップを1個のパッケージに搭載したシステム・イン・パッケージ形態のモジュールデバイスとして実現することも可能である。
2…CPU
3…記憶保護部(MMU)
4…主記憶(MEM)
XDMID…ドメインIDレジスタ
SRX.MDX…ドメイン制御レジスタ
SRX.RDAX、SRX.WDAX、XRDMID、XWDMID…属性情報変更レジスタ
第1ドメイン…OS&App_A
第2ドメイン…OS&App_B
ドメインマネージャ…DMNMNGR
OS&App_A_Region…第1ドメイン用記憶領域
OS&App_B_Region…第2ドメイン用記憶領域
DMNMNGR_Region…ドメインマネージャ用主記憶領域
112…OS&App_Aによるアクセスの属性情報
122…OS&App_Bによるアクセスの属性情報
132、135…ドメインマネージャによるアクセスの属性情報
133、136…ドメインマネージャによるOS&App_Bと擬制されるアクセスの属性情報
134、137…ドメインマネージャによるOS&App_Aと擬制されるアクセスの属性情報
Entry_1〜Entry_16 アドレス変換テーブルのエントリ

Claims (12)

  1. プログラムを実行するCPUと、当該CPUの動作モードに基づいて前記CPUのアドレス空間に対する記憶保護を行う記憶保護部と、を有するデータプロセッサであって、
    どのオペレーティングシステムによるプログラムの実行かを指定するためのドメインIDデータが設定されるドメインIDレジスタと、
    前記ドメインIDレジスタで指定されたプログラムを実行するのか又は前記ドメインIDレジスタで指定されたプログラムを実行するための管理制御を行うのかを指定するモードデータが設定されるドメイン制御レジスタと、
    前記ドメイン制御レジスタによって前記管理制御が指定されているときに、前記ドメイン制御レジスタ及び前記ドメインIDレジスタの設定状態によって決まるCPUの動作モードの属性情報を変更する、ための属性変更データが設定される属性情報変更レジスタと、を有し、
    前記記憶保護部は、前記属性情報変更レジスタに設定された属性変更データが反映された属性情報をCPUから受取ってアクセスの正当性を判別する、データプロセッサ。
  2. 前記属性変更データは、属性情報を、前記管理制御から前記ドメインIDレジスタで指定されたプログラムの実行に切換える、ための第1データと、どのドメインIDに切換えるかを指定する第2データと、を含む、請求項1記載のデータプロセッサ。
  3. 前記第1データ及び第2データの夫々は、リードアクセスとライトアクセス毎に属性情報の変更を指定するデータである、請求項2記載のデータプロセッサ。
  4. 前記CPUは、前記ドメインIDレジスタ、前記ドメイン制御レジスタ及び属性情報変更レジスタにデータをロードする特定のロード命令を命令セットに含み、当該ロード命令の実行は前記ドメイン制御レジスタによって前記管理制御が指定されていることを条件とする、請求項1記載のデータプロセッサ。
  5. 前記CPUは、前記ドメインIDレジスタ、前記ドメイン制御レジスタ及び属性情報変更レジスタからデータをストアする特定のストア命令を命令セットに含み、当該ストア命令の実行は前記ドメイン制御レジスタによって前記管理制御が指定されていることを条件とする、請求項4記載のデータプロセッサ。
  6. 前記CPUは、前記管理制御を指定するためのモードデータを前記ドメイン制御レジスタに設定してから例外処理を要求させるトラップ命令を命令セットに含み、当該トラップ命令の実行は前記ドメイン制御レジスタの設定状態に依存しない、請求項5記載のデータプロセッサ。
  7. 前記記憶保護部は、仮想アドレスのアクセスが許容されるCPUの動作モードの属性情報を持つと共に当該仮想アドレスと物理アドレスの変換対を用いて、前記CPUの仮想アドレスを物理アドレスに変換すると共に、変換対の仮想アドレスのアクセスが許容されるCPUの動作モードの属性情報が当該仮想アドレスをアクセスするCPUの動作モードの属性情報に一致すか否かに基づいてアクセスの正当性を判別する、MMUである、請求項1記載のデータプロセッサ。
  8. 前記MMUはアドレス変換テーブルを備え、
    前記アドレス変換テーブルは、仮想アドレスと物理アドレスの変換対と共に当該仮想アドレスのアクセスが許容されるCPUの動作モードの属性情報を有するエントリ情報が書き換え可能に格納される、請求項7記載のデータプロセッサ。
  9. 前記属性情報変更レジスタに設定された属性変更データに従って属性情報が変更され、且つ、前記ドメイン制御レジスタの設定に従ってCPUが管理制御を行っている場合に、前記MMUがアドレス変換ミスを生ずることによってアドレス変換ミス例外を発生するとき、当該アドレス変換ミス例外に応答するCPUは、前記属性情報変更レジスタによる属性情報の変更先のドメインIDを指定するドメインIDデータを前記ドメインIDレジスタに設定し、且つ、前記ドメイン制御レジスタに前記ドメインIDレジスタで指定されたプログラムの実行を指示するモードデータを設定して、当該ドメインIDレジスタで指定されたプログラムによるアドレス変換ミス例外処理の実行に分岐する、請求項8記載のデータプロセッサ。
  10. 前記CPUは、分岐先でアドレス変換ミス例外処理を実行してから、前記ドメイン制御レジスタに管理制御を指定するためのモードデータを設定する、請求項9記載のデータプロセッサ。
  11. プログラムを実行するCPUと、前記CPUの動作モードに基づいて前記CPUのアドレス空間に対する記憶保護を行う記憶保護部と、を有するデータプロセッサであって、
    どのオペレーティングシステムによるプログラムの実行かを指定するためのドメインIDデータが設定されるドメインIDレジスタと、
    前記ドメインIDレジスタで指定されたプログラムを実行するのか又は前記ドメインIDレジスタで指定されたプログラムを実行するための管理制御を行うのかを指定するモードデータが設定されるドメイン制御レジスタと、
    前記ドメイン制御レジスタによって前記管理制御が指定されているとき前記記憶保護部にアクセスの正当性を判別のために与えられるCPUの動作モードの属性情報を変更するためのデータが設定される属性情報変更レジスタと、を有するデータプロセッサ。
  12. プログラムを実行するCPUと、前記CPUの動作モードに基づいて前記CPUのアドレス空間に対する記憶保護を行う記憶保護部と、を有するデータプロセッサであって、
    CPUによるプログラムの実行が、どのオペレーティングシステムの管理下のドメインで行われているのか、又は夫々のドメインを制御するドメインマネージャによる管理制御であるのか、を示す動作モードに加えて、前記管理制御に基づくアクセスを所定のドメインによるアクセスと擬制する動作モードをCPUが有する、データプロセッサ。
JP2009196370A 2009-08-27 2009-08-27 データプロセッサ Expired - Fee Related JP5491102B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009196370A JP5491102B2 (ja) 2009-08-27 2009-08-27 データプロセッサ
US12/844,800 US8706996B2 (en) 2009-08-27 2010-07-27 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009196370A JP5491102B2 (ja) 2009-08-27 2009-08-27 データプロセッサ

Publications (2)

Publication Number Publication Date
JP2011048616A true JP2011048616A (ja) 2011-03-10
JP5491102B2 JP5491102B2 (ja) 2014-05-14

Family

ID=43626556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009196370A Expired - Fee Related JP5491102B2 (ja) 2009-08-27 2009-08-27 データプロセッサ

Country Status (2)

Country Link
US (1) US8706996B2 (ja)
JP (1) JP5491102B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203106A (ja) * 2013-04-01 2014-10-27 日本電気株式会社 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法
CN107615259A (zh) * 2016-04-13 2018-01-19 华为技术有限公司 一种数据处理方法及系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481241B2 (en) 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US11544069B2 (en) 2018-10-25 2023-01-03 Micron Technology, Inc. Universal pointers for data exchange in a computer system having independent processors

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257721A (ja) * 1992-03-11 1993-10-08 Hitachi Ltd 複数os走行計算機システムにおける主記憶領域の割当て方法及び複数os走行計算機
JPH08320796A (ja) * 1994-09-09 1996-12-03 Hitachi Ltd データ処理装置
JP2007510222A (ja) * 2003-10-29 2007-04-19 クゥアルコム・インコーポレイテッド デバイスの動作モード間の移行を提供するシステム
JP2008097173A (ja) * 2006-10-10 2008-04-24 Renesas Technology Corp データプロセッサ
JP2008165789A (ja) * 2006-12-27 2008-07-17 Intel Corp パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換
JP2010211339A (ja) * 2009-03-09 2010-09-24 Mitsubishi Electric Corp 仮想計算機システム、仮想計算機システムの通信制御プログラム及び仮想計算機システムの通信制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7149862B2 (en) * 2002-11-18 2006-12-12 Arm Limited Access control in a data processing apparatus
DE602004027516D1 (de) * 2004-12-03 2010-07-15 St Microelectronics Srl Ein Verfahren zum Verwalten von virtuellen Maschinen in einer körperlichen Verarbeitungsmaschine, ein entsprechendes Prozessorsystem und Computerprogrammprodukt dafür

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257721A (ja) * 1992-03-11 1993-10-08 Hitachi Ltd 複数os走行計算機システムにおける主記憶領域の割当て方法及び複数os走行計算機
JPH08320796A (ja) * 1994-09-09 1996-12-03 Hitachi Ltd データ処理装置
JP2007510222A (ja) * 2003-10-29 2007-04-19 クゥアルコム・インコーポレイテッド デバイスの動作モード間の移行を提供するシステム
JP2008097173A (ja) * 2006-10-10 2008-04-24 Renesas Technology Corp データプロセッサ
JP2008165789A (ja) * 2006-12-27 2008-07-17 Intel Corp パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換
JP2010211339A (ja) * 2009-03-09 2010-09-24 Mitsubishi Electric Corp 仮想計算機システム、仮想計算機システムの通信制御プログラム及び仮想計算機システムの通信制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203106A (ja) * 2013-04-01 2014-10-27 日本電気株式会社 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法
US9690603B2 (en) 2013-04-01 2017-06-27 Nec Corporation Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
CN107615259A (zh) * 2016-04-13 2018-01-19 华为技术有限公司 一种数据处理方法及系统
CN107615259B (zh) * 2016-04-13 2020-03-20 华为技术有限公司 一种数据处理方法及系统

Also Published As

Publication number Publication date
JP5491102B2 (ja) 2014-05-14
US8706996B2 (en) 2014-04-22
US20110055528A1 (en) 2011-03-03

Similar Documents

Publication Publication Date Title
JP5491102B2 (ja) データプロセッサ
US10437739B2 (en) Low-latency accelerator
US8874883B2 (en) Debugging of a data processing apparatus
US7853776B2 (en) Handover between software and hardware accelerator
US7996653B2 (en) Shared resources in a chip multiprocessor
US9465750B2 (en) Memory protection circuit, method and processing unit utilizing memory access information register to selectively allow access to memory areas by virtual machines
US20160239405A1 (en) Debugging of a data processing apparatus
US20080071953A1 (en) Memory access security management
JP2009524140A (ja) 領域保護装置、命令セット、及びメモリ領域を保護する方法
Myers et al. Microprocessor technology trends
WO1998019242A1 (fr) Processeur de donnees et systeme de traitement de donnees
CN115827502A (zh) 一种内存访问系统、方法及介质
US11182313B2 (en) System, apparatus and method for memory mirroring in a buffered memory architecture
US5440708A (en) Microprocessor and storage management system having said microprocessor
JPS61156445A (ja) Tlbパ−ジ制御方式
KR102658600B1 (ko) 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법
JP7002455B2 (ja) メモリアドレス変換管理
KR20220092372A (ko) 상이한 실행 영역들에 걸친 런타임 메모리 격리를 위한 방법 및 장치
JP4024247B2 (ja) 半導体データプロセッサ
CN113849262A (zh) 用于无需复制而在虚拟机之间移动数据的技术
JP2001188745A (ja) 制御装置及び制御方法
JPS6220034A (ja) プログラム状態語切換制御方式
JP4331325B2 (ja) メモリ管理装置
JP4421148B2 (ja) デバッグシステム
JPS6278642A (ja) メモリ管理ユニツト制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120509

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140123

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140227

R150 Certificate of patent or registration of utility model

Ref document number: 5491102

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees