プロセッサと、不揮発性半導体記憶装置を有し、前記プロセッサに対する主記憶として機能するメモリ装置とを具備し、前記プロセッサは、複数のプログラムを実行する際に、前記プログラムを実行するために必要な情報を前記プログラム毎にワークセットとして管理すると共に、各々の前記ワークセットに必要な情報と、その情報の前記メモリ装置内におけるアドレスとの関係を保持するテーブルを、前記ワークセット毎に作成し、前記メモリ装置に対するアクセスは、前記ワークセット毎に対応する前記テーブルを参照して実行されることを特徴とする半導体装置。前記テーブルはそれぞれ、前記メモリ装置内の情報に対する前記ワークセットの各々のアクセス権を管理することを特徴とする請求項1記載の半導体装置。前記ワークセットは、第1ワークセットと第2ワークセットを含み、前記テーブルを更新することにより、前記第1ワークセットにのみ参照可能であった情報を、前記第2ワークセットにも参照可能とすることを特徴とする請求項2記載の半導体装置。前記第1、第2ワークセットはそれぞれ、第1、第2プログラムコードを含み、前記テーブルは、それぞれが前記第1、第2ワークセットに対応づけられた第1、第2テーブルを含み、前記プロセッサは、前記第1ワークセットが前記第2プログラムコードの実行を必要とする場合、前記第1ワークセットから前記第2ワークセットに制御を移すと共に、使用する前記テーブルを、前記第1テーブルから、前記第2テーブルに切り替えることを特徴とする請求項3記載の半導体装置。前記メモリ装置は、シングルアドレスシステムで管理されることを特徴とする請求項4記載の半導体装置。前記プロセッサからの要求に応じて前記メモリ装置にアクセスするメモリ管理装置を更に備え、前記プロセッサは、前記第1、第2テーブルを作成する作成部と、前記第1プログラムコードを実行する第1実行部と、前記第2プログラムコードを実行する第2実行部と、前記第1ワークセットから前記第2プログラムコードを呼び出す呼び出し部と、前記呼び出し部からの要求に応答して、前記第1実行部から前記第2実行部へ制御を移す制御部とを備え、前記メモリ管理装置は、前記制御が前記第1実行部にある場合には前記第1テーブルを参照して前記メモリ装置にアクセスし、前記制御が前記第2実行部にある場合には前記第2テーブルを参照して前記メモリ装置にアクセスすることを特徴とする請求項5記載の半導体装置。不揮発性半導体記憶装置を含むメモリ装置を主記憶装置として使用する半導体装置のメモリ保護方法であって、オペレーティングシステムが、第1プログラムを実行するための情報を第1ワークセットとして管理するステップと、前記第1ワークセットに必要な情報と、その情報の前記メモリ装置内におけるアドレスとの関係を保持する第1テーブルを作成するステップと、前記第1テーブルを参照しつつ、前記第1プログラムを実行するステップと、前記第1プログラムが、前記第1ワークセット外の第2プログラムを呼び出すステップと、オペレーティングシステムが、前記第2プログラムを実行するための情報を第2ワークセットとして管理するステップと、前記第2ワークセットに必要な情報と、その情報の前記メモリ装置内におけるアドレスとの関係を保持する第2テーブルを作成するステップと、前記第2テーブルを参照しつつ、前記第2プログラムを実行するステップとを具備することを特徴とするメモリ保護方法。前記第1、第2テーブルはそれぞれ、前記メモリ装置に記憶される情報に対する前記第1、第2ワークセットのアクセス権を管理することを特徴とする請求項7記載のメモリ保護方法。本発明が解決しようとする課題は、情報を効果的に保護できる半導体装置及びメモリ保護方法を提供することである。実施形態の半導体装置は、プロセッサと、不揮発性半導体記憶装置を有しプロセッサに対する主記憶として機能するメモリ装置とを備える。プロセッサは、複数のプログラムを実行する際に、プログラムを実行するために必要な情報をプログラム毎にワークセットとして管理すると共に、各々のワークセットに必要な情報と、その情報のメモリ装置内におけるアドレスとの関係を保持するテーブルを、ワークセット毎に作成する。メモリ装置に対するアクセスは、ワークセット毎に対応するテーブルを参照して実行される。以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。[第1実施形態]第1実施形態に係る半導体装置及びメモリ保護方法について説明する。1.半導体装置の構成について図1は、本実施形態に係る半導体装置のブロック図である。図示するように半導体装置1は、プロセッサMCU:microcontrollerunit10、メモリ装置20、及びメモリ管理装置MMU:memorymagagingunit30、31を備えている。MCU10は、メモリ装置20に保持されるデータを用いて種々の処理を実行する。メモリ装置20は、揮発性半導体メモリ例えば本例ではDRAM21及び不揮発性半導体メモリ例えば本例ではNAND型フラッシュメモリ22を備える。DRAM21は、NAND型フラッシュメモリ22のキャッシュメモリとして機能する。そしてメモリ装置20は、オペレーティングシステムOS:operatingsystemやアプリケーション等の各種プログラム及びデータを保持している。DRAM21及びNAND型フラッシュメモリ22は、単一レベル記憶によって管理される。従って、MCU10から見たとき、メモリ装置20はDRAM21とNAND型フラッシュメモリ22の区別は無い。メモリ管理装置30、31は、OSの助けを借りてMCU10の要求に応じてメモリ装置20にアクセスする。そしてメモリ装置20からデータを読み出し、またメモリ装置20にデータを書き込む。メモリ管理装置30は、DRAM21に対するアクセス制御を担い、メモリ管理装置31はNAND型フラッシュメモリ22に対するアクセス制御を担う。すなわち、必要なデータがNAND型フラッシュメモリ22内からDRAM21にキャッシュされている場合、MCU10はメモリ管理装置30に対してデータの読み出し及び書き込みを要求する。この際、メモリ管理装置30は、MCU10から受けた論理アドレスを変換して、DRAM21に対して必要なデータの読み出し及び書き込みを実行する。他方、必要なデータがDRAM21にキャッシュされていない場合、MCU10はメモリ管理装置31に対してデータの読み出し及び書き込みを要求する。この際、メモリ管理装置31は、MCU10から受けた論理アドレスを変換して、NAND型フラッシュメモリ22に対して、必要なデータの読み出し及び書き込みを実行する。必要なデータがDRAM21にキャッシュされているか否かは、例えばOSが判断出来る。このようにしてMCU10は、メモリ管理装置30、31を介して読み出したOSを実行し、そしてこのOS上で種々のアプリケーションを実行する。図2は、MCU10から見たメモリ装置20のアドレス空間並びにDRAM21及びNAND型フラッシュメモリ22のアドレス空間の概念図である。メモリ装置20のアドレス空間は、仮想記憶によって一つのアドレス空間としてMCU10からは見える。このアドレス空間を、以下、仮想アドレス空間と呼ぶ。また、各アドレス空間は、あるサイズのメモリ領域であるページ単位で管理される。図2では一例として、メモリ装置20内のあるファイルAについて示している。図示するように、ファイルAは、NAND型フラッシュメモリ22内のページPN1及びPN2に格納されていたとする。これらのページPN1及びPN2は、仮想アドレス空間では例えばページPG1~PG4に対応づけられている。図示するように、NAND型フラッシュメモリ22におけるページの順番は、仮想アドレス空間における順番と異なっていても良い。MCU10がこのファイルAを必要とする際、NAND型フラッシュメモリのページPN1及びPN2のデータは、キャッシュメモリとして機能するDRAM21に読み出される。本例では、ページPN1のデータは、DRAM21のページPD1及びPD3に格納され、ページPN2のデータは、DRAM21のページPD2及びPD4に格納される。そして、DRAM21のページPD1~PD4はそれぞれ、仮想アドレス空間のページPG1、PG3、PG2、及びPG4に対応づけられている。このように、NAND型フラッシュメモリ22内のデータがDRAM21にキャッシュされている場合には、NAND型フラッシュメモリ22上のデータとDRAM21上のデータとが、仮想アドレスの一部を共有するようにして、同じ仮想アドレス空間に配置される。一般的には、NAND型フラッシュメモリ22のサイズはDRAM21のサイズよりも大きい。従って、NAND型フラッシュメモリ22における一部のデータのみがDRAM21にキャッシュされる。しかし、図2では図示を省略しているが、DRAM21にキャッシュされていないNAND型フラッシュメモリ22のページPNも、仮想アドレス空間におけるいずれかのページPGに対応づけられている。そして、MCU10から仮想アドレス空間のページPG1~PG4に対して読み出しアクセスがなされると、DRAM21からファイルAがメモリ管理装置30によって読み出される。すなわち、MCU10とDRAM21及びNAND型フラッシュメモリとの間は、メモリ管理装置30、31によってアクセスを制御され、MCU10は仮想アドレスさえ知っていれば良い。この際、メモリ管理装置30、31は、前述の通り仮想アドレス空間をあるページ単位で管理する。そしてこの管理のためにメモリ管理装置30、31は、仮想アドレス空間のページと、DRAM21の物理アドレスとNAND型フラッシュメモリ22の物理アドレスページPNの物理アドレスとの対応関係を有するテーブルであるページテーブルPTを用いる。またページテーブルPTは、仮想アドレス空間の各ページへのアクセス制限に関する情報を有している。これによってメモリ管理装置30、31は、MCU10からのメモリ装置20へのアクセスを許可または禁止する。ページテーブルPTは、例えばNAND型フラッシュメモリ22内に記憶されており、メモリ管理装置30、31がそれを使うために、例えばその一部がDRAM21にキャッシュされている。または、ページテーブルPTの一部は、メモリ管理装置30、31内の例えばレジスタ等の記憶装置に更にキャッシュされていても良い。図3は、仮想アドレス空間と、DRAM21及びNAND型フラッシュメモリ22のアドレス空間との関係を示す別の概念図である。DRAM21及びNAND型フラッシュメモリ22の各ページは、図示するように仮想アドレス空間に対応づけられている。ここで、仮想アドレス空間のページPG2は、NAND型フラッシュメモリ22のあるページPNが対応づけられているが、それがどのページPNであるのかまだ定まっていない状態もあり得る。MCU10がこのデータを必要としたとき、メモリ管理装置30、31は両者の対応関係を認識する。別の例を図4に示す。図4では、各アドレス空間をページ単位ではなく、あるひとまとまりのデータ図中では領域と示している単位で示している。このようにデータ単位で見た場合には、これらのデータの仮想アドレスは連続していない場合があり得る。2.半導体装置1の動作について次に、上記構成の半導体装置1の動作について、図5を用いて説明する。図5は、MCU10があるプログラムコードCD1を実行し、その実行の過程において別のプログラムコードCD2を実行する場合の半導体装置1の動作の流れを示すフローチャートである。<OSの処理>まずはOSにより処理が行われる。言うまでもなく、OSによる処理は、実際にはMCU10において実行される。図5に示すように、MCU10上で実行されているOSは、コードCD1を実行するため、ワークセットWS1を作成するステップS10。ワークセットとは、あるプログラムが動作する上で必要な全ての情報やメモリ領域の組集合体である。例えば、あるデータを使って演算を行うコードを実行するケースを考えれば、ワークセットには、コードそれ自体、演算に必要なデータ、及び演算結果を格納するメモリ空間が含まれる。更にOSは、ワークセットWS1のページテーブルPT1を作成するステップS11。そしてこのページテーブルPT1をNAND型フラッシュメモリ22に保持させ、更にDRAM21及びメモリ管理装置30に保持させる。前述の通り、ページテーブルは、図2に示した仮想アドレス空間とDRAM21及びNAND型フラッシュメモリ22の物理アドレスとの関係を示すテーブルである。ワークセットWS1及びページテーブルPT1を作成すると、OSはワークセットWS1に制御を移すステップS12。<ワークセットWS1の処理>ステップS12の後、処理はワークセットWS1に移る。ワークセットWS1はプログラムコードCD1を実行し、処理を行うステップS13。この処理も実際にはMCU10で行われる。ワークセットWS1が処理を行うにあたり、必要な情報へのアクセスは、メモリ管理装置30がページテーブルPT1を参照することによって行われる。ここで、ワークセットWS1において、ワークセットWS1内には無いつまりページテーブルPT1に無いプログラムコードCD2の実行が必要になったとするステップS14、YES。するとワークセットWS1は、外部呼び出し命令を実行する。より具体的には、ワークセットWS1は、コードCD2の実行に必要なデータD1のアドレスをセットしてステップS15、割り込み処理を実行するステップS16。すなわちワークセットWS1は、コードCD2の存在自体は把握しているが、それがどこにあるのかまでは把握していない。よって、コードCD2の実行をOSに依頼する。<OSの処理>ステップS16の割り込み処理によって、処理はOSに移る。OSは、コードCD2を実行するためのワークセットWS2を作成するステップS17。引き続きOSは、ワークセットWS2のページテーブルPT2を作成しステップS18、これをNAND型フラッシュメモリ22に保持させ、更にDRAM21及びメモリ管理装置30に保持させる。ワークセットWS2及びページテーブルPT2を作成すると、OSはワークセットWS2に制御を移すステップS19。<ワークセットWS2の処理>ステップS19の後、処理はワークセットWS2に移る。すなわち、ワークセットWS2はプログラムコードCD2を実行し、データD1を使って処理を行うステップS20。この処理も実際にはMCU10で行われる。ワークセットWS2が処理を行うにあたり、必要な情報へのアクセスは、メモリ管理装置30、31がページテーブルPT1ではなくページテーブルPT2を参照することによって行われる。ワークセットWS2において、例えば演算結果を格納する等の目的で新たなメモリ領域が必要な場合ステップS21、YES、ワークセットWS2は新たなメモリ領域A1を確保するステップS22と共に、確保した領域A1の物理アドレスをページテーブルPT2にセットするステップS23。これによりワークセットWS2は、領域A1を新たに使用することが出来る。その後、処理が終わると、ワークセットWS2は処理結果をメモリ領域A1に格納するステップS24。格納する領域は、メモリ領域A1ではなく、可能であればデータD1が格納されている領域であってもよい。そしてワークセットWS2は、ワークセットWS1に処理を戻すために、割り込み処理を実行するステップS25。<OSの処理>ステップS25の割り込み処理によって、処理はOSに移される。OSは、ワークセットWS1のページテーブルPT1に、ステップS22で確保されたメモリ領域A1の物理アドレスをセットするステップS26。そしてOSは、ワークセットWS1に制御を移すステップS27。<ワークセットWS1の処理>ステップS27により、制御はワークセットWS1に戻る。すなわち、外部呼び出し命令が終了する。そしてワークセットWS1は、再びページテーブルPT1を使用して処理を再開するステップS28。この時点で、ページテーブルPT1はステップS26で既に更新されている。従ってワークセットWS1は、ステップS24で格納されたワークセットWS2での処理結果を用いて処理を実行することが出来るステップS28。3.半導体装置1の動作の具体例について上記図5を用いて説明した動作を、仮想アドレス空間及びページテーブルPTの変化を参照しながら具体的に説明する。図6は、メモリ装置20の仮想アドレス空間と、ワークセットWS1、WS2の概念図である。図示するように、仮想アドレスADD0から始まるページPG0~PG2にコードCD1が格納され、仮想アドレスADD1から始まるページPG10~PG12にコードCD2が格納され、仮想アドレスADD3から始まるページPG30~PG40にデータD1が格納され、仮想アドレスADD4から始まるページPG50~PG55にOSが格納されている場合を仮定する。<ステップS10~S16>まず、図5のステップS10~S16について説明する。図7は、ステップS11で作成されたページテーブルPT1の概念図である。図示するように、ページテーブルPT1は複数のエントリを有し、仮想アドレス空間の各ページが、ページテーブルPT1の各エントリに対応づけられている。図7では、各エントリの横にPGなる記載があるが、これは当該エントリに対応するページを参考までに記載したものである。そして、各エントリに、対応する仮想アドレス空間の物理アドレスが格納される。また各エントリには、書き込みフラグW及び有効フラグVが設けられている。フラグVは、当該エントリに対応するページが有効であるか無効であるか否かを示す情報であり、V=1で有効、V=0で無効とされる。ワークセットWS1は、無効とされたページを参照することはできない。またフラグWは、当該エントリに対応するページに対する書き込みデータの上書きが許可されているか否かを示す情報であり、W=1で許可、W=0で禁止される。従ってワークセットWS1は、V=1、W=1のエントリに対応するページに対しては、読み出し及び書き込みの両方が可能である。他方、V=1、W=0のエントリに対応するページに対しては、読み出しは可能であるが、書き込みは禁止される。V=0のエントリに対応するページは、読み出しも書き込みも禁止され、そもそもワークセットWS1はそのページの存在を認識出来ない。以上のページテーブルの基本的な構成は、ページテーブルPT2に関しても同様である。ワークセットWS1は、コードCD1とデータD1との組である。従ってページテーブルPT1は、図7のようになる。すなわち、ページPG0~PG2に対応するエントリには、コードCD1の物理アドレスが格納され、フラグV=1とされる。コードCD1が書き換え禁止であれば、フラグW=0とされる。更に、ページPG30~PG40に対応するエントリには、データD1の物理アドレスが格納され、フラグV=1、フラグW=1とされる。従ってワークセットWS1は、データD1の上書きが可能である。また、ページPG10~PG12コードCD2に対応するエントリには、物理アドレスは格納されず、フラグV=0、W=0とされる。その他の、ワークセットWS1には含まれない情報に対応するエントリにも物理アドレスはセットされず、V=0、W=0とされる。なお、図示を省略したが、ページテーブルPT1にはOSの物理アドレスもセットされ、このエントリについてはV=1、W=0とされる。以上の結果、ワークセットWS1は、実際には図6の通りである仮想アドレス空間を、図8に示すように認識する。図8は、ワークセットWS1から見た仮想アドレス空間の概念図である。図示するように、ワークセットWS1は、コードCD1、データD1、及びOSがあることを認識出来る。しかし、ワークセットWS1からはコードCD2は見えず、ワークセットWS1はコードCD2にアクセスすることはできない。なぜなら、ページテーブルPT1にはコードCD2の物理アドレスは格納されておらず、しかもフラグV=0とされているからである。ステップS13~S15では、ワークセットWS1は図7のページテーブルPT1を参照して処理を実行する。言い換えれば、メモリ管理装置30、31は、図7のページテーブルPT1に基づいて、メモリ装置20へアクセスする。ステップS15でセットされるアドレスは、ページテーブルPT1においてページPG30~PG40に対応するエントリに格納された物理アドレスである。<ステップS17~S20>次に、図5のステップS17~S20について説明する。図9は、ステップS18で作成されたページテーブルPT2の概念図である。ワークセットWS2は、コードCD2とデータD1との組である。従ってページテーブルPT2は、図9のようになる。すなわち、ページPG10~PG12に対応するエントリには、コードCD2の物理アドレスが格納され、フラグV=1とされる。コードCD2が書き換え禁止であれば、フラグW=0とされる。更に、ページPG30~PG40に対応するエントリには、データD1の物理アドレスが格納され、フラグV=1、フラグW=1とされる。従ってワークセットWS2は、データD1の上書きが可能である。また、ページPG0~PG2に対応するエントリには、物理アドレスは格納されず、フラグV=0、W=0とされる。その他の、ワークセットWS2には含まれない領域に対応するエントリにも物理アドレスはセットされず、V=0、W=0とされる。なお、図示を省略したが、ページテーブルPT1と同様に、ページテーブルPT2にはOSの物理アドレスもセットされ、このエントリについてはV=1、W=0とされる。以上の結果、ワークセットWS2は、実際には図6の通りである仮想アドレス空間を、図10に示すように認識する。図10は、ワークセットWS2から見た仮想アドレス空間の概念図である。図示するようにワークセットWS2は、コードCD2、データD1、及びOSがあることを認識出来る。しかし、ワークセットWS2からコードCD1は見えず、ワークセットWS2はコードCD1にアクセスすることはできない。なぜなら、ページテーブルPT2にはコードCD1の物理アドレスは格納されておらず、しかもフラグV=0とされているからである。ステップS20では、ワークセットWS2は図9のページテーブルPT2を参照して処理を実行する。言い換えれば、メモリ管理装置30、31は、図9のページテーブルPT2に基づいて、メモリ装置20へアクセスする。<ステップS21~S24>次に、ステップS21で新たなメモリ領域が必要であると判断された後のステップS22~S23の処理について、図11及び図12を用いて説明する。図11は、ワークセットWS2から見た仮想アドレス空間の概念図であり、図12はステップS23で更新されたページテーブルPT2の概念図である。図11に示すようにワークセットWS2は、仮想アドレスADD2から始まるページPG20~PG22を確保したとする。するとワークセットWS2は、ページテーブルPT2を図12のように更新する。すなわち、ページPG20~PG22に対応するエントリに、領域A1の物理アドレスを格納し、そしてフラグV=1、W=1とする。これによりワークセットWS2は、領域A1を自由に使用することが可能となる。言い換えれば、メモリ管理装置30、31は、ページPG20~PG22にデータを格納することが出来、またデータを読み出すことが出来るようになる。なお、現時点では領域A1はページテーブルPT1には登録されていないので、領域A1はワークセットWS1からは見えない。<ステップS25~S28>次に、ステップS25~S28について説明する。ステップS25の割り込み処理によって制御がOSに移行すると、OSはページテーブルPT1を図13のように更新する。図13はページテーブルPT1の概念図である。図示するようにOSは、ページテーブルPT1のページPG20~PG22に対応するエントリに、領域A1の物理アドレスを格納し、そしてフラグV=1、W=1または0とする。これによりワークセットWS1も、領域A1を自由に使用することが可能となる。すなわち、ページテーブルPT1が図13に更新された後に、ワークセットWS1から見える仮想アドレス空間は、図14のようになる。図示するように、ワークセットWS1も、領域A1にアクセスすることが可能となる。よってワークセットWS1は、データD1だけでなく、領域A1も利用して処理を継続するステップS28。4.本実施形態に係る効果以上のように、本実施形態に係る構成であると、情報を効果的に保護できる。本効果につき、以下説明する。従来の単一レベル記憶技術において、複数のプロセスが実行される場合、一方のプロセスプロセスPC1によって、他方のプロセスPC2の情報が破壊されるおそれがある。これは、複数のプロセスPC1、PC2につき統一した論理アドレスでアドレス空間を管理するため、プロセスPC2に必要な情報が、プロセスPC1から見えてしまうからである。そこで、プロセス毎に論理アドレスを割り当てる方法が知られている。この場合、プロセスPC1からは、プロセスPC2のアドレス空間は見えない。逆も同様である。プロセスPC1、PC2の両方から見えるのはOSだけである。従って、互いに情報が破壊されることを防止できる。しかし、この場合には、共通にデータを参照したい場合に処理が煩雑になる。すなわち、プロセスPC1の有するデータをプロセスPC2に渡したい場合、そのままでは当該データはプロセスPC2からは見えない。従って、プロセスPC1は、当該データをOSへコピーする。次にOSは、当該データをプロセスPC2へコピーする。これによりプロセスPC2が当該データを参照できるようになるが、2回のデータコピーが必要になる。このように、統一された論理アドレスでアドレス空間を管理しようとすれば、データの保護が困難となり、データを保護しようとすれば、プロセス毎にアドレス空間を切り替えなければならない。しかし本実施形態に係る構成であると、上記問題点を解決出来る。より具体的には、アドレス空間を切り替えないシングルアドレスシステム同じ内容はいつも同じアドレスで見え、他の内容はいつも異なるアドレスで見えるを採用しつつ、データを効果的に保護出来る。すなわち本実施形態では、OSは仮想メモリをページ単位で管理し、且つページのひとかたまりをワークセットWSとして管理する。更にOSは、ワークセットWS毎にアクセス権を管理する。具体的には、ワークセットWS毎にページテーブルPTを用意し、これによってアクセス権を管理する。これによりワークセットWSは、相互に論理アドレス仮想アドレスを使って情報を参照出来る。そして制御が別のワークセットWSに移る際には、OSは、ワークセットPTも切り替える。この際OSは、ワークセットPTを更新することで、、新たな情報の参照を許可することが出来る。具体的な例を挙げれば、上記実施形態において、ワークセットWS1は図7のページテーブルPT1を有し、ワークセットWS2は図9のページテーブルを有している状況を考える。すると、フラグVによって、ワークセットWS1はコードCD2を見ることが出来ない。よって、コードCD2がワークセットWS1によって破壊されることを防ぐことが出来る。逆もまた同様である。すなわち、ワークセットWS2はコードCD1を見ることが出来ない。よって、コードCD1がワークセットWS2によって破壊されることを防ぐことが出来る。他方で、ページテーブルPT1、PT2においてデータD1に関するエントリのフラグVは1に設定されている。従って、ワークセットWS1、WS2でのデータコピーを必要とすることなく、両者はデータD1を参照することが出来る。また、図11乃至図14で説明したように、ページテーブルPTは適宜更新出来る。つまり、処理の最中に、ワークセットWS2で作成した新たなデータ例えば図11の領域A1をワークセットWS1でも使用させたい場合には、図13のようにページテーブルPT1を更新する。つまり、ページテーブルPT1において領域A1に相当する領域のフラグVを1とする。これによって、ワークセットWS2だけでなくワークセットWS1も領域A1へアクセス出来る。このように、重要な情報が破壊されることを防止しつつ、ワークセットWS間で相互に、簡便にデータをやりとりすることが出来る。[第2実施形態]次に、第2実施形態に係る半導体装置及びメモリ保護方法について説明する。本実施形態は、上記第1実施形態において、ワークセットに対して新たなデータの参照及び追加を可能とするための方法に関する。その他の構成及び動作は第1実施形態と同様であるので、その説明は省略する。1.データの参照についてまず、新たなデータの参照方法について説明する。図15は、ワークセットWS1から見た仮想アドレス空間の概念図である。図示するように、第1実施形態で説明した通りワークセットWS1はコードCD1とデータD1との集合である。またメモリ装置20では、ワークセットWS1に含まれないデータD3が、仮想アドレスADD5から始まるページPG45~PG47に格納されていたと仮定する。そして、このような状況でワークセットWS1がデータD3を必要とするようなケースを考える。図16は、上記のケースにおける半導体装置1の動作の流れを示すフローチャートである。図示するように、データD3を必要とするワークセットWS1言い換えればメモリ管理装置30、31は、その存在は認識しているが、場所もサイズも把握していないため、データD3の参照をOSに対して要求するステップS30。すると、この要求に応答してOSは、ワークセットWS1のユーザまたはワークセットWS1それ自体のアクセス権限を確認するステップS31。書き込み及び読み出しのいずれの権限も有していない場合ステップS32、NO、OSはデータD3の参照を禁止するステップS33。すなわち、ページテーブルPT1は更新されない。読み出し権限があって書き込み権限が無い場合ステップS32でYES、ステップS34でNO、OSはページテーブルPT1を更新する。すなわち、ページPG45~PG47に対応するエントリに、データD3の物理アドレスをセットすると共に、フラグV=1、W=0とするステップS35。これによりワークセットWS1は、データD3の読み出しのみ許可される。他方、読み出し権限と書き込み権限との両方がある場合ステップS32でYES、ステップS34でYES、OSはページテーブルPT1を更新する。この場合OSは、ページPG45~PG47に対応するエントリに、データD3の物理アドレスをセットすると共に、フラグV=1、W=1とするステップS36。これによりワークセットWS1は、データD3につき読み出しだけでなく、書き込みも許可される。ステップS35、S36で更新されるページテーブルPT1の様子を図17に示す。図17はページテーブルPT1の概念図である。図示するように、何らかの権限がある場合には、ページテーブルPT1にデータD3の物理アドレスが割り当てられる。書き込みフラグWの値は、そのユーザの有する権限に依存する。その後、OSはワークセットWS1に制御を戻しステップS37、ワークセットWS1が処理を再開するステップS38。2.データの追加について次に、新たなデータの追加方法について説明する。例えば図16の状況において、ワークセットWS1が、メモリ装置20に保持されていない新たなデータD4を必要とするケースを考える。図18は、半導体装置1の動作の流れを示すフローチャートである。図示するように、データD4を必要とするワークセットWS1は、データD4の作成をOSに対して要求するステップS40。すると、この要求に応答してOSは、データD4を作成するステップS41。そして、このデータD4の属性情報に権限を設定するステップS42。当該ユーザまたはワークセットWS1それ自体に書き込み権限を付与しない場合ステップS43、NO、OSは、ページテーブルPT1を更新して、対応するエントリにデータD4の物理アドレスをセットすると共に、フラグV=1、W=0とするステップS44。これによりワークセットWS1は、データD4につき読み出しのみ許可される。他方、読み出し権限と書き込み権限との両方がある場合ステップS43、YES、OSはフラグV=1、W=1とするステップS45。これによりワークセットWS1は、データD4につき読み出しだけでなく書き込みも許可される。その後、OSはワークセットWS1に制御を戻しステップS46、ワークセットWS1が処理を再開するステップS47。3.データ領域の拡張について例えば、図12において新たに確保した領域A1の空きが足りなくなり、これを拡張する必要が生じた場合を考える。この場合、ワークセットWS1、WS2は、ページ単位で領域A1を拡張出来る。ページの拡張は、ページテーブルにおいて対応するエントリに物理アドレスを割り当てると共に、フラグV=1、W=1とすることで実行出来る。もちろん、書き込みを禁止する場合にはW=0とすればよい。4.本実施形態に係る効果本実施形態に係る構成によれば、ワークセットに対してデータを新たに参照させたい場合や、または新規なデータを作成してこれを参照させたい場合、OSがこれを解決する。具体的には、対象となるワークセットWSのページテーブルPTを更新することで、ワークセットに対して新たなデータを参照させることが出来る。従って、各ワークセットWSに対して容易にデータを提供出来ると共に、簡便な手法によってアクセス権を制御出来る。[第3実施形態]次に、第3実施形態に係る半導体装置及びメモリ保護方法について説明する。本実施形態は、上記第1または第2実施形態において、メモリ装置20内の情報を、FATfileallocationtableファイルシステムのようにファイル及びディレクトリを使って管理するものである。その他の構成及び動作は同様であるので、その説明は省略する。1.ディレクトリ構造による管理図19は、本実施形態に係るメモリ装置20の仮想アドレス空間の概念図である。図示するように、ページPG0~PG2にコードCD1が格納され、ページPG10~PG12にコードCD2が格納され、ページPG30~PG40にデータD1が格納されていると仮定する。この場合、MCU10は、コードCD1をファイルAAAとして管理し、コードCD2をファイルBBBとして管理し、データD1を2つのファイルCCC及びDDDとして管理する。更にMCU10は、これらのファイルを図20に示すツリー構造で管理する。図示するように、ファイルAAA及びBBBはルートディレクトリXXXXの下に配置される。ファイルCCC及びDDDは、ルートディレクトリXXXXの下のサブディレクトリYYYYの下に配置される。サブディレクトリYYYYの下にはサブディレクトリZZZZも含まれているものとする。従ってMCU10は、図19に示すように、ディレクトリXXXX、YYYY、及びZZZZ用の領域を仮想アドレス空間に確保する。各領域には、当該ディレクトリ内にどのようなファイル及び/またはサブディレクトリが存在するかの情報が格納される。更にディレクトリは、当該ディレクトリ内にあるファイル及び/またはサブディレクトリのファイル情報を保持する。ファイル情報は、図20に示すように、各ファイルについての仮想アドレス、サイズ、アクセルコントロール情報ユーザ及び/またはワークセット毎に、読み出し、書き込み、及び消去を許可するか否かの情報、及び作成時刻などを含んでいる。2.ファイル及びディレクトリへのアクセス方法MCU10は、ファイル単位及びディレクトリ単位で、ユーザからのアクセスを受け付け、またファイル単位及びディレクトリ単位でメモリ管理装置30、31に対してアクセスを要求する。このファイル及びディレクトリ単位でのアクセス方法について、図21を用いて説明する。図21は、メモリ装置20へのアクセス方法を示すフローチャートである。図示するように、ユーザからファイル名またはディレクトリ名でアクセスを受け付けるステップS50。例えばファイルAAAAに対してアクセスがあったとする。するとMCU10は、ルートディレクトリXXXX内からファイル情報を読み出すようメモリ管理装置30または31に命令する。そして読み出したファイル情報を参照するステップS51。ファイル情報を参照した結果、当該ユーザにアクセス権限が無ければステップS52、NO、処理は中止される。他方、アクセス権限があればステップS52、YES、ステップS51においてファイル情報から得た仮想アドレスとサイズ情報に基づき、MCU10はページアドレスPG0~PG2をメモリ管理装置30または31に渡し、メモリ管理装置30または31はこのページアドレスPG0~PG2に基づいてページテーブルPTを検索するステップS53。メモリ管理装置30または31は、ステップS53の検索によりファイルAAAの物理アドレスを得てステップS54、メモリ装置20からファイルAAAを読み出すステップS55。3.本実施形態に係る効果本実施形態によれば、主記憶装置と補助記憶装置とを区別せずにメインメモリとして使用する構成であっても、ユーザに対して情報をファイル及び/ディレクトリとして認識させることが出来る。つまり、単一レベル記憶でありながら、ユーザは、従来の主記憶装置と補助記憶装置とを区別するシステムと同じように情報を扱うことが出来る。従って、ユーザの利便性を向上出来る。なお、本実施形態ではファイル情報言い換えればプロパティをディレクトリに格納している。しかし、場合によっては、各ファイル情報は各ファイルの中例えば、当該ファイルを格納する領域の先頭領域委に配置しても良い。しかしながら、セキュリティの観点からは、ディレクトリ内に配置することが好ましい。[第4実施形態]次に、第4実施形態に係る半導体装置について説明する。本実施形態は、上記第1乃至第3実施形態に係る半導体装置1の具体例である。図22に示すように半導体装置1は、大まかには情報処理装置110及び記憶装置120を備えており、両者は例えばバス等により互いに通信可能に接続されている。情報処理装置110及び記憶装置120は、共に同一の半導体基板上に形成されても良いし、別個のチップとして形成されても良い。また記憶装置120は複数の半導体メモリを備え、本実施形態では揮発性半導体メモリ121及び不揮発性半導体メモリ122を含む。まず、情報処理装置110の構成について説明する。図示するように情報処理装置110は、複数のプロセッサ111、2次キャッシュメモリ112、バス113、及びメモリ管理装置114を備え、例えばSoCsystemonchipにより形成される。プロセッサ111の各々は、1次キャッシュメモリ116及びMMUmemorymanagementunit115を備える。プロセッサ111としては、例えばCPUCentralProcessingUnitが用いられるが、MPUMicroProcessorUnit、GPUGraphicProcessorUnitなどのような他の処理ユニットが用いられてもよい。また図22においてプロセッサ111の数は4つであるが、1つ以上であればよい。またプロセッサ111は、2次キャッシュメモリ112を共有し、バス113を介してメモリ管理装置114と電気的に接続される。そして、メモリ管理装置114を介して記憶装置120にアクセスする。更にプロセッサ111は、記憶装置120からOSを読み出しこれを実行し、更に記憶装置120等からアプリケーションを読み出し、これをOS上で実行する。メモリ管理装置114は、記憶装置120内の揮発性半導体メモリ121及び不揮発性半導体メモリ122と電気的に接続されている。そしてメモリ管理装置114は、プロセッサ111の要求に応じて記憶装置120へアクセスし、データを記憶装置120から読み出し、またはデータを記憶装置120へ書き込む。またメモリ管理装置114は、プロセッサ111と非同期に動作可能であり、プロセッサ111での処理実行中に、不揮発性半導体メモリに対してウェアレベリングwearleveling、ガーベージコレクションgarbagecollection、及びコンパクションcompactionなどの処理を実行出来る。次に、引き続き図22を参照して、記憶装置120の構成について説明する。前述の通り、記憶装置120は、揮発性半導体メモリ121及び複数の不揮発性半導体メモリ122を備えている。これらの揮発性半導体メモリ121及び不揮発性半導体メモリ122は、プロセッサ111のメインメモリとして使用される。本実施形態では、不揮発性半導体メモリ122に十分なメモリ量が確保され、不揮発性半導体メモリ122のメモリ容量は揮発性半導体メモリ121よりも大きい。そして、揮発性半導体メモリ121には、例えば、最近アクセスされたデータ、使用頻度の高いデータなどのアクセスされる可能性の高いデータが不揮発性半導体メモリ122からキャッシュされる。プロセッサ111が揮発性半導体メモリ121にアクセスした際に、揮発性半導体メモリ121にアクセス対象データが存在しない場合、不揮発性半導体メモリ122から揮発性半導体メモリ121に、必要なデータが転送される。このように、揮発性半導体メモリ121と不揮発性半導体メモリ122とを組み合わせて使用することで、揮発性半導体メモリ121のメモリ容量より大きいメモリ空間がメインメモリとして使用可能となる。本実施形態において揮発性半導体メモリ121は例えばDRAMDynamicRandomAccessMemoryである。しかしながら揮発性半導体メモリ121としては、DRAMに代えて、FPM-DRAMFastPageModeDRAM、EDO-DRAMExtendedDataOutDRAM、またはSDRAMSynchronousDRAMなどのような、コンピュータにおいてメインメモリとして利用されるメモリを用いてもよい。また、DRAM程度の高速ランダムアクセスが可能であり、アクセス可能上限回数に実質的な制限がないのであれば、揮発性半導体メモリ121に代えて、MRAMMagnetoresistiveRandomAccessMemory、FeRAMFerroelectricRandomAccessMemoryなどの不揮発性ランダムアクセスメモリが用いられてもよい。そして揮発性半導体メモリ121は、不揮発性半導体メモリ122よりも小容量例えば128Mバイト~4Gバイトなどだが高速にアクセス可能である。また本実施形態において不揮発性半導体メモリ122は、例えばNAND型フラッシュメモリである。しかしながら不揮発性半導体メモリ122は、例えばNOR型フラッシュメモリなど、他の不揮発性半導体メモリであっても良い。不揮発性半導体メモリ122は、揮発性半導体メモリ121よりも大容量だがアクセス時間が長い。以上の構成において、図1のMCU10が図22のプロセッサ111、一次キャッシュメモリ116、及び二次キャッシュメモリ112に対応し、図1のメモリ管理装置30、31が図22のメモリ管理装置114に相当し、図1のメモリ装置20が図22の記憶装置120に相当する。以上のように、第1乃至第3実施形態は、図22のような構成に適用可能である。[変形例等]以上のように、実施形態に係る半導体装置1は、プロセッサ10と、メモリ装置20を備える。メモリ装置20は不揮発性半導体記憶装置22を有し、プロセッサ10に対する主記憶として機能する。プロセッサ10は、複数のプログラムCD1、CD2を実行する際に、このプログラムCD1、CD2を実行するために必要な情報をプログラムCD1、CD2毎にワークセットWS1、WS2として管理する。更にプロセッサ10は、各々のワークセットWS1、WS2に必要な情報と、その情報のメモリ装置20内におけるアドレス仮想アドレスとの関係を保持するテーブルPT1、PT2を、ワークセットWS1、WS2毎に作成する。メモリ装置20に対するアクセスは、ワークセットWS1、WS2毎に対応するテーブルPT1、PT2を参照して実行される。そして、テーブルPT1、PT2はそれぞれ、メモリ装置20内の情報に対するワークセットWS1、WS2の各々のアクセス権有効フラグV、書き込みフラグWを管理する。また、上記実施形態に係る半導体装置1の構成は、次のように説明することも出来る。図23は、上記実施形態に係る半導体装置1のブロック図である。図示するように半導体装置1は、プロセッサ10からの要求に応じてメモリ装置20にアクセスするメモリ管理装置30、31を更に備える。またプロセッサ10は、その機能に応じて、作成部11、第1実行部12、第2実行部13、呼び出し部14、及び制御部15を有する。作成部11は、第1、第2ワークセット用のそれぞれ第1、第2ページテーブルPT1、PT2を作成する。これは例えば制御部15の命令によって行われる。そして作成部11は、第1、第2ページテーブルPT1、PT2を例えばメモリ管理装置30、31内のメモリやレジスタ内に保持させる。もちろん、プロセッサ10内のメモリやレジスタ内に保持させてもよい。第1実行部12は、制御部15の命令に応答して、第1プログラムコードCD1を実行する。すなわち、第1ワークセットWS1に関連する処理を実行する。第2実行部13は、制御部15の命令に応答して、第2プログラムコードCD2を実行する。すなわち、第2ワークセットWS2に関連する処理を実行する。呼び出し部14は、第1ワークセットWS1から第2プログラムコードCD2を呼び出す外部呼び出し命令を、制御部15に対して発行する。制御部15は、呼び出し部14からの外部呼び出し命令に応答して、第1実行部12から第2実行部13へ制御を移す。すなわち、作成部11は、図5におけるステップS11、S18、S26、及びS28の処理を担う。第1実行部12は、ステップS13及びS14の処理を担う。呼び出し部14は、ステップS15及びS16の処理を担う。制御部15は、ステップS10、S12、S17、S19及びS27の処理を担う。そして第2実行部13は、ステップS20~S25の処理を担う。そしてメモリ管理装置30、31は、制御が第1実行部12にある場合には第1ページテーブルPT1を参照してメモリ装置20にアクセスし、制御が第2実行部13にある場合には第2ページテーブルPT2を参照してメモリ装置20にアクセスする。このような構成により、シングルアドレスシステムを採用しつつ、データを効果的に保護出来る。すなわち、シングルアドレスシステムを採用しながら、処理をワークセットなるデータの集合単位で管理し、ワークセット毎にページテーブルを設ける。そしてページテーブルに設けた書き込みビットWと有効ビットVによって、ワークセットからのデータアクセスを制限出来る。つまり、あるワークセットにデータを参照させたければ、対応するページテーブルで参照を許可し、参照させたくなければページテーブルで参照を禁止すればよい。なお、第2実施形態の図16の動作を実行する際には、プロセッサ10の一部は、ステップS31~S34の処理を実行する権限確認部として機能し、その機能ブロックの判断結果により、例えば作成部11がステップS33、S35、及びS36の処理を実行する。図18の動作を実行する際も同様である。すなわちプロセッサ10の一部は、ステップS41の処理を実行するデータ作成部、及びステップS42~43の処理を実行する権限設定部として機能し、その機能ブロックの判断結果により、例えば作成部11がステップS45及びS46の処理を実行する。なお、上記実施形態は種々の変形が可能である。例えば、第1乃至第3実施形態ではワークセットの数が2つの場合を例に挙げて説明したが、3つ以上のワークセットがある場合であってももよい。この場合も、それぞれのワークセット毎にページテーブルが作成される。また上記実施形態では、ワークセットは、あるプログラムを実行するために必要な全ての情報データ、ファイル等の組集合体であるものとして説明した。しかし、ワークセットの区別は、例えばユーザの区別であっても良いし、また図22のように複数のプロセッサがある場合にはプロセッサの区別であっても良い。更に上記実施形態では、仮想アドレス空間の全ページ分のエントリを有するページテーブルを示しているが、ページテーブルはこのような構成に限らず、仮想アドレス空間と物理アドレスとの対応関係を保持出来る構成であれば限定されない。すなわち、例えば多段ページテーブルを用いても良い。多段ページテーブルでは、仮想アドレスは例えば複数のインデックスとオフセットを含む。そして第1のテーブルを第1のインデックスで検索し、第1のインデックスで指定された第2のテーブルからアドレスを検索し、更にこのアドレスにオフセットを加算して、物理アドレスを得る。このような構成とすることで、複数のページテーブルが必要にはなるが、個々のページテーブルのサイズを小さくすることが出来る。また、半導体装置1の具体的構成は、上記実施形態で説明した構成に限定されるものではなく、例えば図5、図16、図18、及び/または図21等に示す動作が可能であれば良い。また、図5、図16、図18、及び/または図21に示すフローチャート内の処理は、可能な限り順番を入れ替えてもよい。また、NAND型フラッシュメモリ22の管理方法に関しても、種々の方法を用いることが出来る。例えばSSDsolidstatedriveを用いた場合、SSDコントローラが物理アドレスをSATAserialATAのようにMCU10に対して見せる。NAND型フラッシュメモリ22が直接MCU10からメモリとして見えるように結合されていれば、OSが物理アドレスを把握して、NAND型フラッシュメモリ22とDRAM21とのデータの授受を管理する。なお、図1では二つのメモリ管理装置30、31が、それぞれDRAM21及びNAND型フラッシュメモリ22に対して設けられている例を示した。しかし、本構成は一例に過ぎず、図22及び図23に示すように、一つのメモリ管理装置によって実現されても良い。また図1の例では、NAND型フラッシュメモリ22が直接メモリバスに接続される場合を示している。この場合、メモリ管理装置31はハードウェアで実現されても良いしソフトウェアで実現されても良い。ソフトウェアで実現される場合、メモリ管理装置31は、OS及びページテーブルPTに相当する。しかしながら、NAND型フラッシュメモリ22がメモリバスに直接には接続されない場合であっても良い。このような例を図24に示す。図24は半導体装置1のブロック図である。図示するように、メモリ装置20内にはDRAM21、NAND型フラッシュメモリ22、及びメモリ管理装置31が含まれる。すなわち、MCU10にはDRAM21が接続され、DRAM21に対するアクセスはメモリ管理装置30によって制御される。NAND型フラッシュメモリ22は、メモリ管理装置31を介してDRAM21に接続され、MCU10には直接には接続されない。そしてメモリ管理装置31は、DRAM21とNAND型フラッシュメモリ22との間のアドレス変換機能を担う。物理的には図24のような接続であっても、メモリ管理装置30、31の機能によって、MCU10またはプログラマからは、図24の構成は図25のように見える。図25は半導体装置1のブロック図である。図示するようにメモリ装置20は、あたかもDRAM21及びNAND型フラッシュメモリ22が共にメモリ管理装置30によって制御されているように見える。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。