(57)【特許請求の範囲】
【請求項１】
不揮発性記憶部と、主記憶部と、前記不揮発性記憶部および主記憶部に格納されたプログラムを管理するメモリ管理部を含むデータ処理装置とを備え、不揮発性記憶部に格納されたプログラムを主記憶部に転送する構成の計算機システムにおいて、
前記メモリ管理部が、
前記不揮発性記憶部に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御機能と、
前記プログラム格納制御機能の実行に際し、所定のデータ変換を施したプログラムの複数の論理ブロックを、物理ブロックの境界を跨がないように組み合わせて前記不揮発性記憶部に格納すると共に、或る物理ブロックへの最初のアクセスの際には当該物理ブロックに含まれる全ての変換済データの物理ブロックを対応する前記主記憶部のブロックへ展開する機能を備えることを特徴とする計算機システム。
【請求項２】
前記メモリ管理部が、
システム全体の起動後にＯＳおよびアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納されたプログラムを前記主記憶部に転送してこれを逆変換するプログラム逆変換機能と、
前記不揮発性記憶部に格納されたプログラムの物理アドレスを前記主記憶部の物理アドレスに変更する物理アドレス変更機能と、
前記不揮発性記憶部に格納され前記プログラムに割り当てられた所定容量の１つの物理アドレスを含むブロック内のデータの展開のために複数の論理ブロック分の容量を割り当てる容量割り当て機能とを備えることを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記メモリ管理部が、
プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部と、
このアドレス変換部の情報を保持するマッピングテーブル部と、
前記論理ブロックアドレスの本来の保護情報を保持する保護情報部と、例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更部とを備えることを特徴とする請求項１に記載の計算機システム。
【請求項４】
前記メモリ管理部を、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部と、このアドレス変換部の情報を保持するマッピングテーブル部と、例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更部とを備えた構成とし、
前述したマッピングテーブル部が、前記変換済データブロック内に各論理ブロックの本来のプロテクトモードを保持することを特徴とする請求項１に記載の計算機システム。
【請求項５】
前記不揮発性記憶部には、システム起動直後の前記主記憶のイメージに対して所定の幅毎にデータ変換処理を施したデータが格納されており、
システム起動後に未取得状態の主記憶ブロックへのアクセスが発生した場合には、これに対応して前記アドレス変換部が例外処理を発生させる機能を有し、前記マッピングテーブル変更部が前記未取得の主記憶ブロックに対応する不揮発性記憶部のブロックに含まれる１以上のブロックのデータを前記主記憶部上にそれぞれ対応する未取得ブロック展開して未取得状態を取得状態に変更する機能を備えることを特徴とする請求項３又は請求項４に記載の計算機システム。
【請求項６】
前記不揮発性記憶部に格納され所定のデータ変換が施された前記プログラムに対しては一律に保護モードＮＵＬＬを設定すると共に、前記システム起動後のＯＳ及びアプリケーションからの要求に基づいて、前記不揮発性記憶部に格納され前記プログラムに所定のデータ変換を施したものに対しては前記主記憶部上の物理アドレスを割り当てることを特徴とする請求項１又は請求項２に記載の計算機システム。
【請求項７】
前記不揮発性記憶部の所定サイズの物理アドレスに格納した複数のプログラムには、それぞれ前記主記憶部の物理アドレスに対応した論理アドレス，総論理アドレス数，及びプログラムデータサイズを記入することを特徴とする請求項２から請求項５の何れか１項に記載の計算機システム。
【請求項８】
前記不揮発性記憶部の所定サイズの物理アドレスに格納した複数のプログラムには、それぞれ前記主記憶部の物理アドレスに対応した論理アドレス，総論理アドレス数，プログラムデータサイズ，及び保護モードを記入することを特徴とする請求項２に記載の計算機システム。
【請求項９】
前記不揮発性記憶部の所定容量の物理アドレスの複数個を１単位とし、この１単位内に、複数の論理アドレスに割り当てられた前記プログラムを収容するように構成したことを特徴とする請求項１から請求項８の何れか１項に記載の計算機システム。
【請求項１０】
前記不揮発性記憶部に格納された所定のデータ変換が施された前記プログラムに対して、一定時間間隔で、更に別内容の所定のデータ変換を施すことを特徴とする請求項１から請求項８の何れか１項に記載の計算機システム。
【請求項１１】
不揮発性記憶部と、主記憶部と、前記不揮発性記憶部および主記憶部に格納されたプログラムを管理するメモリ管理部を含むデータ処理装置とを備え、不揮発性記憶部に格納されたプログラムを主記憶部に転送するように構成された計算機システムによるメモリ管理方法であって、
前記メモリ管理部が、
前記不揮発性記憶部に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御ステップと、
前記プログラム格納制御ステップの実行に際し、所定のデータ変換を施したプログラムの複数の論理ブロックを、物理ブロックの境界を跨がないように組み合わせて前記不揮発性記憶部に格納すると共に、或る物理ブロックへの最初のアクセスの際には当該物理ブロックに含まれる全ての変換済データの物理ブロックを対応する前記主記憶部のブロックへ展開するステップとを有することを特徴とする計算機システムのメモリ管理方法。
【請求項１２】
前記メモリ管理部が、
システム全体の起動後にＯＳおよびアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納されたプログラムを前記主記憶部に転送してこれを逆変換するプログラム逆変換ステップと、
前記不揮発性記憶部に格納されたプログラムの物理アドレスを前記主記憶部の物理アドレスに変更する物理アドレス変更ステップと、
前記不揮発性記憶部に格納され前記プログラムに割り当てられた所定容量の１つの物理アドレスを含むブロック内のデータの展開のために複数の論理ブロック分の容量を割り当てる容量割り当てステップと
を有することを特徴とする請求項１１に記載の計算機システムのメモリ管理方法。
【請求項１３】
前記メモリ管理部が、
プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換ステップと、
このアドレス変換ステップの情報をマッピングテーブル部に保持するステップと、
前記論理ブロックアドレスの本来の保護情報を保護情報部に保持するステップと、
例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更ステップと
を有することを特徴とする請求項１１に記載の計算機システムのメモリ管理方法。
【請求項１４】
前記メモリ管理部が、
プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換ステップと、
このアドレス変換ステップの情報をマッピングテーブル部に保持するステップと、
例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更ステップとを有し、
前述したマッピングテーブル部に、前記変換済データブロック内に各論理ブロックの本来のプロテクトモードを保持することを特徴とする請求項１１に記載の計算機システムのメモリ管理方法。
【請求項１５】
不揮発性記憶部と、主記憶部と、前記不揮発性記憶部および主記憶部に格納されたプログラムを管理するメモリ管理部を含むデータ処理装置とを備え、不揮発性記憶部に格納されたプログラムを主記憶部に転送するように構成された計算機システムを構成するコンピュータ上で動作するメモリ管理プログラムであって、
前記メモリ管理部に、
前記不揮発性記憶部に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御処理と、
前記プログラム格納制御処理の実行に際し、所定のデータ変換を施したプログラムの複数の論理ブロックを、物理ブロックの境界を跨がないように組み合わせて前記不揮発性記憶部に格納すると共に、或る物理ブロックへの最初のアクセスの際には当該物理ブロックに含まれる全ての変換済データの物理ブロックを対応する前記主記憶部のブロックへ展開する処理と
を実行させることを特徴とするメモリ管理プログラム。
【請求項１６】
前記メモリ管理部に、
システム全体の起動後にＯＳおよびアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納されたプログラムを前記主記憶部に転送してこれを逆変換するプログラム逆変換処理と、
前記不揮発性記憶部に格納されたプログラムの物理アドレスを前記主記憶部の物理アドレスに変更する物理アドレス変更処理と、
前記不揮発性記憶部に格納され前記プログラムに割り当てられた所定容量の１つの物理アドレスを含むブロック内のデータの展開のために複数の論理ブロック分の容量を割り当てる容量割り当て処理と
を実行させることを特徴とする請求項１５に記載のメモリ管理プログラム。
【請求項１７】
前記メモリ管理部に、
プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換処理と、
このアドレス変換処理の情報をマッピングテーブル部に保持する処理と、
前記論理ブロックアドレスの本来の保護情報を保護情報部に保持する処理と、
例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更処理と
を実行させることを特徴とする請求項１５に記載のメモリ管理プログラム。
【請求項１８】
前記メモリ管理部に、
プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換処理と、
このアドレス変換処理の情報をマッピングテーブル部に保持する処理と、
例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更処理とを実行させ、
前述したマッピングテーブル部に、前記変換済データブロック内に各論理ブロックの本来のプロテクトモードを保持することを特徴とする請求項１５に記載のメモリ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム、メモリ管理方法、及びそのプログラムに関し、例えば圧縮され暗号化されてＲＯＭ等の不揮発性記憶媒体内に格納されたデータを管理し、ＲＡＭ等の主記憶部に効率良く転送することができる計算機システム，メモリ管理方法，およびそのプログラムに関する。
【背景技術】
【０００２】
コンピュータの起動時の制御プログラムは、大容量であるがアクセス速度が遅いＲＯＭ等の不揮発性記憶媒体に格納されている。従来は、システムリセット（初期化動作）が完了した後で、例えば不揮発性記憶媒体としてのＲＯＭから主記憶部としてのＲＡＭに制御プログラムが転送されていた。このため、ユーザが電源を投入してから情報処理装置を使用することができるまでの待ち時間が長かった。
ところで、上述したように主記憶イメージは大きい。このため、起動時間を短くかくするにはＲＯＭ等の不揮発性記憶媒体の容量を節約する必要があり、その対応策として、主記憶イメージ（ＯＳ用の制御プログラム）を圧縮処理して保存するという試みがなされている。例えば、文献１（米国特許  第６，４９６，８８２号）に開示された圧縮対応起動方式は、ＲＯＭ等の不揮発性記憶媒体の容量を減らすために起動直後において必要な主記憶イメージを論理ブロック単位で圧縮しており、ある論理ブロックに最初にアクセスしたときに、当該論理ブロックに対応する圧縮データを不揮発性記憶媒体から読み込んで圧縮を解除しＲＡＭにデータを展開する。各圧縮ブロックが保存されているＲＯＭのアドレスは管理テーブルに書き込まれており、ＲＯＭから圧縮ブロックを読み込むときには、管理テーブルを参照して得たアドレスを用いてＲＯＭから読み出す。この場合、コンピュータシステムに於けるメモリ管理装置では、主記憶メモリの物理アドレスを所定の幅に区切って管理している。
一方、アプリケーションプログラムから指定されるアドレスは、論理アドレスと呼ばれ、物理アドレスを所定の幅に区切ったブロックをマッピングして論理的に連続に見えるように変換したものであり、この変換テーブルはオペレーティングシステム（ＯＳ）が管理している。ちなみに、変換テーブルのエントリを、ＣＰＵ内のＭＭＵ（ｍｅｍｏｒｙ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ）でキャッシュしたものが、ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋ−ａｓｉｄｅ  Ｂｕｆｆｅｒ）と呼ばれている。
しかしながら、上述した従来例（文献１）にあっては、圧縮ブロックを読み込むときには、不揮発性記憶媒体の当該ブロックには２つ以上の論理ブロックのデータが含まれているにもかかわらず、それぞれの例外処理において別々に読み出すことから、時には、ブロック単位でアクセスするＲＯＭ等の不揮発性記憶媒体の１つのブロックから２回以上読み出すという不都合が生じていた。
また、読み出す変換データが不揮発性記憶媒体上で２つのブロックにまたがって保存されていることから、論理ブロックのデータを展開するときに、ブロック単位でアクセスするとＲＯＭ等の不揮発性記憶媒体の複数ブロックを読み出すことがあり、これに伴ってＴＬＢエントリを２つ使用するという事態が生じ、これがため高速起動に支障をきたすという不都合があった。
そこで、本発明の目的は、読み出すべきブロックのデータの大きさが変わったとしても、圧縮され暗号化されてＲＯＭ等の不揮発性記憶媒体内に格納されたプログラム及びデータをＲＡＭ等の主記憶部に効率良く転送・展開し、ひいては、計算機システムの起動時間を短縮することができる計算機システム，計算機システムのメモリ管理方法，およびその管理プログラムを提供すること、にある。
【発明の開示】
【０００３】
本発明にあっては、圧縮や暗号化等により変換したプログラムを不揮発性記憶部に格納する際には、ブロックの境界を跨がないように格納し、あるブロックへの最初のアクセスの際には当該ブロックに含まれる全てのデータを、対応する主記憶部のブロックへ展開する、という手法を採用している。これを更に具体的に開示する。
即ち、本発明にかかる計算機システムは、プログラムを格納する不揮発性記憶部（例えばＲＯＭ）と、前記プログラムを不揮発性記憶部から受け取る主記憶部（例えばＲＡＭ）と、前述した不揮発性記憶部および主記憶部に格納されたプログラムを管理するメモリ管理部（ＯＳ）を含むデータ処理装置とを備えている。
前述したメモリ管理部は、前述した不揮発性記憶部に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御機能を備えている。更に、このメモリ管理部は、そのプログラム格納制御機能の実行に際しては所定のデータ変換を施したプログラムをブロックの境界を跨がないように組み合わせるように機能すると共に、或るブロックへの最初のアクセスの際には当該ブロックに含まれる全てのデータを対応する主記憶部のブロックへ展開する機能を備えた構成とした（請求項１）。
このため、本発明では、不揮発性記憶部には、ＯＳおよびアプリケーションプログラムの初期化処理後の主記憶イメージの一部をブロック単位でデータ変換されたイメージデータを記憶することができるので、各ブロックの変換済データをブロックサイズを越えないように適切にまとめ得るようになっている。これにより、計算機システムの起動時には、データ変換されていない主記憶イメージ部分からシステム起動がなされるので、ＯＳおよびアプリケーションプログラムの起動直後と同じ状態になり、システムは立上がり直後の環境に復帰する。この時、システム起動が主記憶イメージ部分からなされるので、システム運用可能になるまでの運用中断状態は発生せず、これにより起動時間が有効に短縮される。
又、本発明では、前述したメモリ管理部が、不揮発性記憶部に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御機能を備えたものとした。更に、このメモリ管理部は、システム全体の起動後にＯＳ及びアプリケーションのメモリアクセスを契機に（そのタイミングで）作動し前述した不揮発性記憶部に格納された所定のデータ変換が施されたプログラムを前述した主記憶部に転送してこれを逆変換するプログラム逆変換機能と、不揮発性記憶部に格納されたプログラムの物理アドレスを主記憶部の物理アドレスに変更する物理アドレス変更機能と、前述した不揮発性記憶部に格納され前記プログラムに割り当てられた所定容量の１つの物理アドレスを含むブロック内のデータの展開のために複数の論理ブロック分の容量を割り当てる容量割り当て機能とを備えて構成されている（請求項２）。この場合、前述した不揮発性記憶部にはシステムの起動直後の主記憶のイメージに対して所定の幅毎にデータ変換処理されたデータが格納されている。このようにしても、前述したものと同等に機能する計算機システムを得ることができる。
更に、本発明では、前述したメモリ管理部が、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部と、このアドレス変換部の情報を保持するマッピングテーブル部と、前記論理ブロックアドレスの本来の保護情報を保持する保護情報部と、例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更部とを備えた構成とした（請求項３）。
又、本発明では、前述したメモリ管理部が、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部と、このアドレス変換部の情報を保持するマッピングテーブル部と、例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更部とを備えた構成とし、前述したマッピングテーブル部が、前記変換済データ内に各論理ブロックの本来のプロテクトモード（保護モードのこと、以下同じ）を保持しているように構成してもよい。このようにすると、マッピングテーブルの更新の際に変換済データ内で各論理ブロックの本来のプロテクトモード（保護モード）を保持している場合には、保護情報部を参照する必要がなくなり、その分、処理時間の迅速化を図り得ることができる（請求項４）。
ここで、前述した不揮発性記憶部にはシステム起動直後の前述した主記憶のイメージに対して所定の幅毎にデータ変換処理を施したデータが格納されており、システム起動後に未取得状態の主記憶ブロックへのアクセスが発生した場合にはこれに対応して前記アドレス変換部が例外処理を発生させる機能を有し、更に、前記マッピングテーブル変更部が前記未取得の主記憶ブロックに対応する不揮発性記憶部のブロックに含まれる１以上のブロックのデータを前述した主記憶部上にそれぞれ対応する未取得ブロック展開して未取得状態を取得状態に変更する機能を備えているように構成してもよい（請求項５）。このようにしても、前述した各計算機システムと同等に機能する計算機システムを得ることができる。
又、前述した不揮発性記憶部に格納され所定のデータ変換が施された前記プログラムに対しては、一律にプロテクトモードＮＵＬＬを設定する。又、前記システム起動後のＯＳ及びアプリケーションのメモリアクセスを契機に作動し前述した不揮発性記憶部に格納され前記プログラムに所定のデータ変換を施したものに対して前記主記憶部上の物理アドレスを割り当てるようにしてもよい（請求項６）。
更に、前述した不揮発性記憶部の所定サイズの物理アドレスに格納した複数のプログラムには、それぞれ主記憶部の物理アドレスに対応した論理アドレス，総論理アドレス数，及びプログラムデータサイズを（請求項７）、更には、保護モード（プロテクトモード）を、それぞれ記入してもよい（請求項８）。
又、前述した不揮発性記憶部の所定容量の物理アドレスの複数個を１単位とし、この１単位内に、複数の論理アドレスに割り当てられた前記プログラムを収容するようにしてもよい（請求項９）。更に、所定のデータ変換が施され前記不揮発性記憶部に格納されたプログラムに対しては、一定時間間隔で、別内容の所定のデータ変換を施すようにしてもよい（請求項１０）。
このように、本発明にかかる計算機システムは、上述したように構成され機能するので上述したように、各ブロックの変換済データをブロックサイズを越えないように適切にまとめ得ることから、計算機システムの起動時には、データ変換されていない主記憶イメージ部分からシステム起動がなされ、ＯＳおよびアプリケーションプログラムの起動直後と同じ状態になり、システムは立上がり直後の環境に復帰する。そして、システム起動が主記憶イメージ部分からなされることから、システム運用可能になるまでの運用中断状態は発生せず、これがためシステム全体の起動時間が有効に短縮される。
更に、計算機システムの起動後にあっては、データ変換されたブロックへの最初のアクセスの際に、当該ブロックに含まれる全ての計算済データを展開されるため、当該ブロックへのアクセスは一度しか起こらないため、従来例で生じていた、ブロック単位でアクセスすると不揮発性記憶部の複数ブロックを読み出すことがある、という不都合を完全に排除することを可能とした。そして、この場合、当該ブロックはブロックサイズを越えてはいないため、ブロックサイズでしか読み出せない不揮発性記憶部であっても、当該ブロックを読み出す際には１以上のブロックを読み出す必要性もない。
又、本発明では、計算機システムのメモリ管理方法として、以下に示す構成を採用した。即ち、不揮発性記憶部に格納されたプログラムを主記憶部に転送する計算機システムのメモリ管理方法において、不揮発性記憶部に、前述したプログラムに所定のデータ変換を施したものと前述したプログラムに所定のデータ変換を施さないものとを格納する第１のステップと、計算機システムの起動に際し、計算機システムの起動後にＯＳ及びアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納されているプログラムの内の所定のデータ変換を施したプログラムを主記憶部に転送して当該所定のデータ変換の逆変換を施す第２のステップと、不揮発性記憶部に格納された前記プログラムの物理アドレスを、前記主記憶部の物理アドレスに変更する第３のステップと、前記不揮発性記憶部に格納された前記プログラムに割り当てられた所定容量の１つの物理アドレスを含むブロック内のデータの展開にために複数の論理アドレス分の容量を割り当てる第４のステップとを含むように構成した（請求項１１）。
このため、本発明においても、前述した前述した計算機システムの場合と同様の効果を奏する計算機システムのメモリ管理方法を提供することができ、当該計算機システムの実施に際しては、本発明の手法に沿って作動させることにより、計算機システムを短時間に効率良く起動させることが可能となる。
ここで、前述した第１のステップと第２のステップの間に、前述した不揮発性記憶部に格納され前記プログラムに所定のデータ変換が施されたものに対し一律に保護モードＮＵＬＬを設定するステップを設けるように構成してもよい（請求項１２）。このようにしても、前述した計算機システムのメモリ管理方法を提供することができる。
又、前述した不揮発性記憶部の所定サイズの物理アドレスに格納した複数のプログラムに対して、それぞれ前記主記憶部の物理アドレスに対応する論理アドレス，総論理アドレス数，及びプログラムデータサイズを（請求項１３）、或いはこれらと保護モード（請求項１４）とを、それぞれ記入するステップを、前記第１のステップに併設してもよい。又、前述した不揮発性記憶部に格納されたプログラムの内の所定のデータ変換が施されたプログラムを対象として一定時間間隔で別内容の所の定変換を施すステップを、前記第１のステップに併設してもよい（請求項１５）。
更に、本発明では、計算機システム用のメモリ管理プログラムとして、以下に示す構成を採用した。即ち、不揮発性記憶部に格納されたプログラムを主記憶部に転送するように構成されたシステムの動作を制御するコンピュータに、前述した不揮発性記憶部に対して、前述したプログラムに所定のデータ変換を施したものと前記プログラムに所定のデータ変換を施さないものとを格納する手順と、システムの起動後にＯＳ及びアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納されているプログラムの内の所定のデータ変換を施したプログラムを主記憶部に転送して当該所定のデータ変換の逆変換を施す手順と、前記不揮発性記憶部に格納されたプログラムの物理アドレスを前記主記憶部の物理アドレスに変更する手順と、前記不揮発性記憶部に格納されたプログラムに割り当てられた所定容量の１つの物理アドレスを含むブロック内のデータの展開のために複数の論理アドレス分の容量を割り当てる手順と、をそれぞれコンピュータに実行させるようにした（請求項１６）。
ここで、前述した不揮発性記憶部に格納され前記プログラムに所定のデータ変換が施されたものには対して一律に保護モードＮＵＬＬを設定する手順、および前記計算機システムの起動後に発生するＯＳおよびアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納され前記プログラムに所定のデータ変換が施されたものに対し前記主記憶部上の物理アドレスを割り当てる手順、をコンピュータに実行させるようにしてもよい（請求項１７）。
更に、前記不揮発性記憶部の所定サイズの物理アドレスに格納した複数のプログラムに対して、それぞれ前記主記憶部の物理アドレスに対応する論理アドレス，総論理アドレス数，及びプログラムデータサイズを（請求項１８）、或いはこれらと保護モードとを（請求項１９）、それぞれ記入する手順、をコンピュータに実行させるようにしてもよい。又、前述した不揮発性記憶部に格納されたプログラムの内の所定のデータ変換が施されたプログラムを対象として、一定時間間隔で別内容の所の定変換を施す手順、をコンピュータに実行させるようにしてもよい（請求項２０）。
このようにしても、前述した各発明の場合と同様に計算機システムの起動時には、データ変換されていない主記憶イメージ部分からシステム起動がなされ、ＯＳおよびアプリケーションプログラムの起動直後と同じ状態になり、システムは立上がり直後の環境に復帰する。そして、システム起動が主記憶イメージ部分からなされることから、システム運用可能になるまでの運用中断状態は発生せず、システムに起動時間を効率よく短縮することができる。
更に、計算機システムの起動後にあっては、データ変換されたブロックへの最初のアクセスの際に、当該ブロックに含まれる全ての計算済データを展開されるため、当該ブロックへのアクセスは一度しか起こらないため、本発明によると、従来例で生じていた、ブロック単位でアクセスするとＲＯＭ（不揮発性記憶部）の複数ブロックを読み出すことがある、という不都合を完全に排除することができる。
以上のように、本発明によると、データを展開していない論理ブロックへの最初のアクセスが発生した時には当該ブロックが格納されている物理ブロックに含まれている全ての論理ブロックを一度に展開する（変換処理を施されたデータに対して逆変換を行うことでもとのデータに戻す）ようにしたので、当該物理ブロックへのアクセスは一回のみとなり、効率的なメモリ管理が可能となり、これによって計算機システムの軌道時間を有効に短縮することができる。
【図面の簡単な説明】
【０００４】
図１は、本発明の第１の実施形態を示すブロック図である。
図２は、第１の実施形態で起動直後イメージを論理ブロック毎にデータ変換した例で、不揮発性記憶部に仮想的に分けられて保存される変換済イメージデータと非変換イメージデータを示すブロック図である。
図３は、第１の実施形態で複数ブロックのデータを変換した後のデータ形式で、変換済イメージデータの各物理ブロックを示すブロック図である。
図４は、第１の実施形態で計算機が備えるマッピングテーブル部のエントリの構成例を示す説明図である。
図５は、第１の実施形態で計算機が備える保護情報部のエントリの構成例を示す説明図である。
図６は、第１の実施形態で計算機のアドレス変換部およびマッピングテーブル変更部における計算処理の例を示すフローチャートである。
図７は、第１の実施形態におけるシステムの概略動作を示すフローチャートである。
図８は、第１の実施形態の具体例を示すブロック図である。
図９は、図８における主記憶部及び不揮発性記憶部の物理ブロックアドレスの割り当て状態の例を示す説明図である。
図１０は、図８における保護モード（保護情報部）の内容例を示す説明図である。
図１１は、図１に開示したＯＳが有するマッピングテーブル部の初期状態および変更後の状態を示す図で、図１１（ａ）はマッピングテーブル部の初期状態を示す説明図、図１１（ｂ）はマッピングテーブル部の変更後の状態を示す説明である。
図１２は、図８に示す不揮発性記憶部の非変換データ（初期動作イメージ）及び変換済データの構成例を示す説明図である。
図１３は、本発明の第２の実施形態における変換済イメージデータの各物理ブロックの構成例を示す説明図である。
図１４は、第２の実施形態における変換済データの構成例を示す説明図である。
図１５は、第３の実施形態における不揮発性記憶部の非変換データ及び変換済データの構成例を示す説明図である。
図１６は、第４の実施形態における再変換処理の例を示すフローチャートである。
図１７は、第４の実施形態におけるマッピングテーブル部の再変換処理前の状態および変換処理後の状態を示す説明図である。
図１８は、第４の実施形態における再変換処理後の変換済データの構成例を示す説明図である。
１００  計算機システム、１０１  主記憶装置、１０２  データ処理装置、１０２Ａ  データ管理部、１５１  主記憶部、１５２  不揮発性記憶部、１５３  ハードウエア初期化部、１５４  マッピングテーブル変更部、１５６  アドレス変換部、１５７  マッピングテーブル部、１５８  保護情報部
【発明を実施するための最良の形態】
【０００５】
以下、本発明の実施形態を添付図面に基づいて説明する。
（第１の実施形態）
本実施形態にかかる計算機システム１００は、図１に示すように主記憶装置１０１とデータ処理装置１０２とを有し、プログラム制御により動作する。この計算機システム１００は、圧縮や暗号化された不揮発性記憶部１５２のデータ（本来、主記憶装置１０１中に備えられている）を、データ処理装置１０２を介して前述した主記憶装置１０１の主記憶部１５１上に（圧縮や暗号を解除して）展開するシステムである。
これを具体的に説明すると、上記計算機システム１００は、プログラムを格納するＲＯＭ等の不揮発性記憶部１５２と、プログラムを不揮発性記憶部１５２から受け取るＲＡＭ等の主記憶部１５１と、前述した不揮発性記憶部１５２および主記憶部１５１に格納されたプログラムを管理するメモリ管理部（ＯＳ）１０２Ａを含むデータ処理装置１０２とを備えている。
メモリ管理部１０２Ａは、不揮発性記憶部１５２に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御機能とを備えている。更に、このメモリ管理部１０２Ａは、前述したプログラム格納制御機能の実行に際しては所定のデータ変換を施したプログラムをブロックの境界を跨がないように組み合わせるように機能すると共に、或るブロックへの最初のアクセスの際には当該ブロックに含まれる全てのデータを対応する主記憶部１５１のブロックへ展開する機能を備えている。
又、上述したメモリ管理部１０２Ａは、機能的には、不揮発性記憶部１５２に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御機能とを備え、システム全体の起動後にＯＳ及びアプリケーションのメモリアクセスを契機に作動し前述した不揮発性記憶部１５２に格納された所定のデータ変換が施されたプログラムを前述した主記憶部１５１に転送してこれを逆変換するプログラム逆変換機能と、不揮発性記憶部１５２に格納されたプログラムの物理アドレスを主記憶部１５１の物理アドレスに変更する物理アドレス変更機能と、前述した不揮発性記憶部１５２に格納され前記プログラムに割り当てられた所定容量の１つの物理アドレス内に，所定のタイミングで前記プログラムの複数の論理アドレス分の容量を割り当てる容量割り当て機能とを備えて構成されている。
このため、不揮発性記憶部１５２には、ＯＳ２０５およびアプリケーションプログラムの初期化処理後の主記憶イメージの一部をブロック単位でデータ変換されたイメージデータを記憶することができるので、各ブロックの変換済データをブロックサイズを越えないように適切にまとめ得るようになっている。これにより、計算機システム全体の起動時には、データ変換されていない主記憶イメージ部分からシステム起動がなされるので、ＯＳ２０５およびアプリケーションプログラムの起動直後と同じ状態になり、システムは立上がり直後の環境に復帰する。この時、システム起動が主記憶イメージ部分からなされるので、システム運用可能になるまでの運用中断状態は発生せず、システムの起動時間を効率良く短縮することができる。
更に、本発明では、具体的には、前述したメモリ管理部１０２Ａが、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部１５６と、このアドレス変換部１５６の情報を保持するマッピングテーブル部１５７と、前記論理ブロックアドレスの本来の保護情報を保持する保護情報部１５８と、例外発生時に前記マッピングテーブル部１５７のエントリを更新するマッピングテーブル変更部１５４とを含む構成とした。
そして、かかる構成により、前述したデータ変換によって変換されたデータを不揮発性記憶部１５２にまとめるに際には、前述したようにブロックの境界を跨がないように組み合わせを考え、或るブロックへの最初のアクセスの際には当該ブロックに含まれる全てのデータを、対応する主記憶のブロックへ展開することを基本とする。
より具体的には、本実施形態における計算機システムは、前述したように少なくとも主記憶部１５１と不揮発記憶部１５２とデータ処理装置１０２によって構成され、更に、前記不揮発記憶部１５２には当該システムが起動した直後の前述した主記憶のイメージに対して所定の幅毎にデータ変換処理を施したデータが格納されている。そして、当該システムの起動後に未取得状態の主記憶ブロックへのアクセスが発生した場合に、前述した未取得状態の主記憶ブロックに対応する不揮発記憶部１５２のブロックに含まれる１以上のブロックのデータを前述した主記憶部１５１上のそれぞれに対応する未取得ブロックに展開して、当該未取得状態を取得状態に展開する、という動作が実行される。
換言すると、前述した不揮発性記憶部１５２には、システム起動直後の主記憶イメージに対して所定の幅毎にデータ変換処理を施したデータが格納されており、システム起動後に未取得状態の主記憶ブロックへのアクセスが発生した場合には、これに対応して前述したアドレス変換部１５６が例外処理を発生させる機能を備え、前述したマッピングテーブル変更部１５４が未取得の主記憶ブロックに対応する不揮発性記憶部１５２のブロックに含まれる１以上のブロックのデータを前記主記憶部１５１上にそれぞれ対応する未取得ブロックを展開して未取得状態を取得状態に変更する機能を備えている。これらの内容については、後述するマッピングテーブル変更部１５４，アドレス変換部１５６の説明箇所で詳述する。
又、本実施形態においては、前述した不揮発性記憶部１５２に格納され所定のデータ変換が施されたプログラムに対しては一律に保護モードＮＵＬＬを設定すると共に、システム起動後のＯＳ及びアプリケーションのメモリアクセスを契機に作動し不揮発性記憶部に格納されプログラムに所定のデータ変換を施したものに対して主記憶部上の物理アドレスを割り当てるようにした。これらの内容については、後述するマッピングテーブル１５７の説明箇所で詳述する。
更に本実施形態においては、前述した不揮発性記憶部１５２の所定サイズの物理アドレスに格納した複数のプログラムには、それぞれ主記憶部１５１の物理アドレスに対応した論理アドレス，総論理アドレス数，及びプログラムデータサイズを記入するようにした。更に本実施形態においては、前述した不揮発性記憶部の所定のデータ容量の物理アドレスの複数個を１単位とし、この１単位内に、複数の論理アドレスに割り当てられたプログラムを収容するように構成した。これらの内容についても、順次後述する。
以下、これを各構成要素毎に、具体的に詳述する。
（主記憶装置の構成）
主記憶装置１０１は、前述したように、主記憶部１５１と不揮発性記憶部１５２とを備えている。この内、主記憶部１５１は、ＣＰＵに計算させるプログラムを格納するメモリであり、ＤＲＡＭ，ＤＤＲ−ＳＤＲＡＭなどが好適に用いられる。この主記憶部１５１は、不揮発性記憶部１５２以外の主記憶領域を構成する部分である。この主記憶部１５１としては、読み書き可能なメモリなら任意の種類のメモリであっても良く、一般的にはＤＲＡＭ、ＳＲＡＭ等の揮発性のメモリに代えてＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ），ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ）、或いはフラッシュメモリ等の不揮発性のメモリを使用してもよい。
不揮発性記憶部１５２は、ＯＳ及びアプリケーションの初期化処理後の主記憶イメージ（以下「起動直後イメージ」と言う）を記憶する部分である。この不揮発性記憶部１５２は、不揮発なメモリなら任意の種類のメモリで良く、例えばＲＯＭ等の読み出し専用の不揮発性メモリや、ＭＲＡＭやＦｅＲＡＭやフラッシュメモリ等の書き換え可能な不揮発性メモリが使用できる。起動直後イメージ（主記憶イメージ）の内容を変更する方法としては、不揮発性記憶部１５２の差し替え、又は不揮発性記憶部１５２が書き換え可能な場合は、ネットワークを利用したイメージファイルのダウンロードや、外部記憶媒体からのイメージファイルの読み込みなどの方法が使用可能である。
（主記憶装置１０１内のプログラムデータ形式）
図２に、前述した起動直後イメージ（主記憶イメージ：ＯＳとアプリケーションの初期化終了後の主イメージ）２４２を、論理ブロック毎に、ＲＯＭ等の不揮発性記憶部１５２上にデータ変換した例を示す。
起動直後イメージ（主記憶イメージ）２４２の生成方法は任意であるが、例えば、通常のシステム起動方法で起動した直後の主記憶部１５１からの主記憶イメージをダンプすることにより生成することができる。起動直後イメージ２４２（主記憶イメージ）の一部は、論理ブロック単位でデータ変換されてから、不揮発性記憶部１５２に記憶される。
ＲＯＭ等の不揮発性記憶部１５２では、ＯＳ用の制御プログラムは、変換済イメージデータ２９０と非変換イメージデータ２９５の２つの領域に仮想的に分けられて保持されている。この内、変換済イメージデータ２９０は、起動直後イメージ２４２を論理ブロック単位で区切ったものに対して特定のデータ変換処理を施したものをまとめたものである。データ変換処理の例としては、圧縮や暗号化などが挙げられる。また、変換処理を施されたデータに対して逆変換を行なうことで元のデータに戻すことが可能であり、この逆変換処理のことを以下「展開」という。前述した変換済イメージデータ２９０は、後述する通り、起動後に動的に主記憶部１５１に展開してアプリケーション２０６の実行のために用いられる。また、変換済イメージデータ２９０の一部は、ＯＳ２０５を動作させるために使用される。
図３に、主記憶部１５１上の複数ブロックのデータを変換した後の不揮発記憶部（ＲＯＭ）１５２上のデータ形式の例を示す。ここで、総ブロック数３７０はデータ変換された当該ブロックに含まれる論理ブロックの個数である。データサイズ３８０は当該論理ブロックの変換後のデータサイズを保持している。論理ブロックアドレス３８５は展開するべき論理ブロック番号である。変換済データ３９５はデータ変換を施された後のデータである。このように複数の論理ブロックが、データサイズ，論理ブロックアドレス，変換済データの一連の内容を保持し、ＲＯＭ（不揮発性記憶部）１５２の１ブロックに含まれている。
ここで、主記憶部１５１上のブロック毎に変換処理を施したイメージデータをまとめるに際しては、従来の手法では論理ブロックアドレス順に連続的にまとめるように成っていた。しかしながら、本実施形態では、変換データのサイズを考慮しながら、物理ブロックサイズを越えないように任意の組み合わせを選ぶ。このときには、論理ブロックアドレスでは不連続なブロックを、不揮発性記憶部１５２上の１ブロック内でまとめることも可能である。
例えば、後述する図９の物理ブロックアドレス２３には、後述する図１２に示すように論理ブロックアドレス「２」と「４」という連続してないブロックがまとめられている。ここで、図１２において「２／７００／２」とあるのは、それぞれ「総ブロック数／デ−タサイズ／論理ブロックアドレス」（図３参照）であり、「３３００／４」とあるのは「データサイズ・論理ブロックアドレス」（図３参照）である。
再び図２を参照する。前述した非変換イメージデータ２９５は、起動直後イメージ（主記憶イメージ）２４２の内、データ変換処理がされていない箇所であり、計算機システムの起動時にはこの箇所を使用して起動する。従って非変換イメージデータ２９５は初期動作イメージ２２４となる。
（データ処理装置１０２の構成）
データ処理装置１０２は、図１に示すように、前述した不揮発性記憶部１５２および主記憶部１５１に格納されたプログラムを管理するメモリ管理部（ＯＳ）１０２Ａを含んで構成されている。
このメモリ管理部１０２Ａは、具体的には、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部１５６と、このアドレス変換部１５６の情報を保持するマッピングテーブル部１５７と、前記論理ブロックアドレスの本来の保護情報を保持する保護情報部１５８と、例外発生時に前記マッピングテーブル部１５７のエントリを更新するマッピングテーブル変更部とを備えている。又、データ処理装置１０２は、ハードウェア初期化部１５３を備え、図１に示すように計算機システム１００の起動時にシステム各部のハードウェアの初期化を行うように機能する。
（マッピングテーブル部１５７）
再び図１を参照すると、マッピングテーブル部１５７は、計算機システム１００上で動作するＯＳやアプリケーションプログラム（両者を総称してプログラムと言う）が主記憶装置１０１を操作する際に指定するメモリアドレス（論理アドレス）を主記憶装置１０１に実際に割り当てられているメモリアドレス（物理アドレス）に変換するための情報、およびプロテクトモードを記憶する制御テーブルである。ここで、論理アドレスは論理ブロックアドレスとブロック内アドレスとによって構成され、物理アドレスは物理ブロックアドレスとブロック内アドレスとによって構成されている。
図４に、前述したマッピングテーブル部１５７のエントリの構成例を示す。このマッピングテーブル部１５７は、この図４に示すようなエントリの集合によって構成される。そして、この図４に示すように、１つのエントリには、論理ブロックアドレス１６１と物理ブロックアドレス１６２とプロテクトモード（保護モードのこと、以下同じ）１６３の組が保持されようになっている。
ここで、論理ブロックアドレス１６１は、論理アドレス空間を所定の大きさのブロックに分割したときにできる個々の論理ブロックを一意に識別するアドレスである。又、物理ブロックアドレス１６２は、物理アドレス空間を論理アドレス空間と同じ大きさのブロックに分割したときにできる個々の物理ブロックを一意に識別するアドレスである。ブロックとしては、ページと呼ばれるアーキテクチャ固有の単位を用いることで効率良く処理することが可能となるが、本発明はその単位に制限されるわけではない。
更に、プロテクトモード（保護モード）１６３は、読み込み専用のプロテクトモード、読み書き可能のプロテクトモード（保護モード）、ＮＵＬＬ（割り当て無し）のプロテクトモード（保護モード）の何れかの値をとる。このプロテクトモード（保護モード）１６３は、計算機システム１００で実行されるプログラムの本来の保護属性とは異なる擬似的なものであり、ＲＯＭ（不揮発性記憶部１５２）の変換済イメージデータのブロックに関してはシステム起動時にＮＵＬＬ（割り当て無し）のプロテクトモードが一律に設定される。
即ち、プロテクトモード（保護モード）１６３がＮＵＬＬの場合、そのエントリの論理ブロックアドレス１６１で定まる論理ブロックに対して、物理メモリブロックが未だ割り当てられていないことを示す。プロテクトモード１６３が読み込み專用或いは読み書き可能の場合、そのエントリの論理ブロックアドレス１６１で定まる論理ブロックに対して、そのエントリの物理ブロックアドレス１６２で定まる物理ブロックが割り当て済であり、かつ、そのブロックのプロテクトモードが読み込み專用あるいは読み書き可能であることを示す。
従って、物理ブロックアドレス欄は以下の２つの意味を持つ。第１の意味は、変換されたデータが存在する不揮発性記憶部１５２上のブロックアドレス（プロテクトモードがＮＵＬＬのとき）であり、第２の意味は、主記憶装置１０１に実際に割り当てられた物理メモリのブロックアドレス（プロテクトモードがＮＵＬＬでないとき）である。ここで、プロテクトモード１６３でＮＵＬＬを指定する代わりに存在ビットなどを用いることも出来る。存在ビットは当該エントリに属する物理ブロックが存在するかどうかを示すビットである。この場合、後述する保護情報部１５８（図１）は存在せずともよく、プロテクトモード１６３が本来のブロック属性を保持している。後述する例外イベントは、この存在ビットの０／１に対して発生するか否かが決まる。
（保護情報部１５８）
再び図１を参照する。図１において、前述した保護情報部１５８は、計算機システム１００で実行されるプログラムの保護属性を保持する制御テーブルである。図５に、この保護情報部１５８のエントリの構成例を示す。この図５に示すように、１つのエントリには、論理ブロックアドレス１７１と保護属性１７２の組が保持される。この内、保護属性１７２には、読み込み専用の保護属性と読み書き可能の保護属性とがあり、何れの保護属性が設定されるかは、論理ブロックアドレス１７１で特定されるブロックの本来の保護属性によって決定される。
（アドレス変換部１５６）
アドレス変換部１５６は、計算機システム１００上で動作するプログラムがメモリ操作の際に指定する論理アドレスを物理アドレスに変換する機能と、プロテクトモード違反による例外を検出し例外処理を起動する機能とを有する。論理アドレスから物理アドレスへの変換およびプロテクトモード違反による例外検出は、主にマッピングテーブル部１５７を参照して行われる。
（マッピングテーブル変更部１５４）
再び図１を参照すると、マッピングテーブル変更部１５４は、アドレス変換部１５６で起動された例外処理を実行する機能を有する。例外処理では、保護情報部１５８の参照による本来の保護属性の判定、不揮発性記憶媒体から読み出して展開し主記憶部１５１への書き出し、及び、マッピングテーブル部１５７の更新などの処理が行われる。
図６は、上述したアドレス変換部１５６およびマッピングテーブル変更部１５４の処理の一例を示すフローチャートである。以下、これを詳述する。
まず、アドレス変換部１５６は、プログラムから指定されたメモリアクセスにかかる論理アドレス中のブロックアドレスでマッピングテーブル部１５７を検索し、図４に示した論理ブロックアドレス１６１が一致するエントリを取得する（ステップＳ１００）。
次に、アドレス変換部１５６は、ステップＳ１００で取得したエントリ中のプロテクトモード１６３がＮＵＬＬか、読み込み専用か、読み書き可能かを判別する（ステップＳ１０１）。読み込み專用もしくは読み書き可能なプロテクトモード（ステップＳ１０１でノー）であれば、アクセスのモードをプロテクトモードとチェックして正当なアクセスか否かを確認し（ステップＳ１０２，Ｓ１０３）、不正なアクセスの場合は、メモリアクセスを拒否する等のエラー処理１を行う。一方、正当なアクセスの場合、アドレス変換部１５６は、ステップＳ１００で取得したエントリ中の物理ブロックアドレス１６２を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（ステップＳ１０４）、その物理アドレスで特定される主記憶部１５１の個所をアクセスする（ステップＳ１０５）。
プロテクトモード１６３がＮＵＬＬ（ステップＳ１０１でイエス）の場合、アドレス変換部１５６は、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部１５４に通知して例外処理を起動する（ステップＳ１０６）。この例外イベントでは、ステップＳ１００で取得したエントリ中の物理ブロックアドレス１６２をマッピングテーブル変更部１５４に通知する。
マッピングテーブル変更部１５４は、ステップＳ１０６に続いて、アドレス変換部１５６から通知された物理ブロックアドレス１６２で特定される不揮発性記憶部１５２のブロックを読み出して得られる論理ブロックの論理ブロックアドレス３８５で、保護情報部１５８を検索し、図６の論理ブロックアドレス１７１が一致するエントリの保護属性１７２を取得する（ステップＳ１０７）。
次に、変換済データ３９５を展開して主記憶部１５１の空きブロックにコピーする（ステップＳ１０８）。ここで、主記憶部１５１を構成するブロックの内、どのブロックが空き状態で、どのブロックが使用中かを管理する技術は、主記憶部１５１の各ブロック毎の使用状態を保持するテーブルで管理するなど、従来から知られている任意の方法を使用することができる。
更に、マッピングテーブル変更部１５４は、図４の論理ブロックアドレス１６１が論理ブロックアドレス３８５に一致するエントリをマッピングテーブル部１５７から検索し、そのエントリの物理ブロックアドレス１１２をステップＳ１０９におけるコピー先の主記憶部１５１のブロックの物理ブロックアドレスに書き換え、かつプロテクトモード１６３をそのブロック本来の保護属性（読み込み専用あるいは読み書き可能）に書き換える（ステップＳ１０９）。
不揮発性記憶部１５２から読み出した当該ブロックには、総ブロック数３７０に記述されている個数分だけ論理ブロック分の変換済みデータが保持されている。従って、総ブロック数３７０の個数分だけ、「保護情報部１５８（図１）の検索、データの展開、物理メモリの割り当てと書き出してマッピングテーブルの更新」という処理を繰り返す（ステップＳ１０９）。総ブロック数３７０に記述されている個数分の繰り返えし処理が終了（ステップＳ１１０でノー）すると、例外処理の完了をアドレス変換部１５６に通知する。アドレス変換部１５６は、マッピングテーブル変更部１５４から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理をステップＳ１００から再度開始する。
（計算機システム１００の概略動作）
図７は、本実施形態における計算機システム１００の概略動作を示すフローチャートである。ここでは、計算機システム１００の概略動作を図６〜図７を参照して説明する。
本実施形態における計算機システム１００は、起動されると、前述したハードウェア初期化部１５３によって、まずハードウェアの初期化を行う（ステップＳ２０１）。本実施の形態の場合、マッピングテーブル部１５７および保護情報部１５８は、初期化済の状態で不揮発性記憶媒体の非変換部に含まれている。
初期化済みのマッピングテーブル部１５７では、図４のエントリ全てにおいて、論理ブロックアドレス１６１と物理ブロックアドレス１６２は設定済であり、プロテクトモード１６３は、非変換イメージデータである初期動作イメージ２２４に属するブロックのエントリではそのブロック本来の保護属性（読み込み専用あるいは読み書き可能）に設定され、初期動作イメージ２２４以外の起動直後イメージ２４２に属するブロックのエントリではＮＵＬＬに設定されている。初期化済みの保護情報部１５８では、図５のエントリ全てにおいて、論理ブロックアドレス１７１と保護属性１７２は設定済みである。
次に、計算機システム１００は、不揮発性記憶媒体の非変換部にある初期動作イメージ２２４からシステムを起動する（ステップＳ２０２）。この初期動作イメージ２２４は、ＯＳやアプリケーションプログラムの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、初期動作イメージ２２４から起動してからシステム運用（ステップＳ２０３）が可能になる迄の運用中断状態は存在しない。
システム運用（ステップＳ２０３）の段階において、あるブロックに対してプログラムから初めてのアクセスが発生したときには、そこはＮＵＬＬのプロテクトモード（保護モード）でマッピングされているので、アドレス変換部１５６が例外イベントを通知し、当該アクセスを一時保留する（図６のＳ１０６）。この例外イベントを受け取ったマッピングテーブル変更部１５４は、保護情報部１５８を参照してそのアクセスされた論理アドレスのブロックの属性を判断し（図６のステップＳ１０７）、正当なアクセスであれば、空きブロックを主記憶部１５１から割り当てて、不揮発性記憶部１５２の当該ブロックの内容を展開し、不揮発性記憶媒体の変換済部から当該ブロックのデータを取得してその内容を主記憶部１５１に書き出す（図６のステップＳ１０８）。更に、マッピングテーブル変更部１５４は、アクセスが発生した論理ブロックアドレスに本来の保護属性のプロテクトモードでマッピングするようマッピングテーブル部１５７に設定する。
当該物理ブロックに複数の論理ブロックの変換済データが含まれている場合は、それぞれも同様な流れで展開した後、一時保留されたアクセスの処理を図７のステップＳ１００から再開させる。この結果、一時保留されたアクセスおよびその後の当該ブロックへのアクセスは、割り当てられた主記憶ブロックに対して実行される。このとき、ブロックの単位を小さくすることで展開時間が短くなり、システム運用が中断される時間を短くすることができる。
（計算機システム１００の起動：初期動作イメージ２２４）
次に、初期動作イメージ２２４について更に詳しく説明する。本実施形態においては、初期動作イメージ２２４だけを使って計算機システム１００のシステムを起動している。従って、初期動作イメージ２２４には、計算機システム１００のシステムの起動に最小限必要なＯＳのプログラムが含まれていなければならない。反対に、無くてもシステムの起動が支障なく行えるＯＳの付加的な機能を実現するためのプログラムや、アプリケーションプログラムは、初期動作イメージ２２４に含まれていなくて良い。
又、これまでの説明から明らかなように、図６の処理（アドレス変換部１５６およびマッピングテーブル変更部１５４での処理）を実現するためのプログラム及データが計算機システム１００上に存在しないと、システムの起動後、処理が立ち行かなくなってしまう。従って、マッピングテーブル変更部１５４をはじめとするＯＳの例外処理ハンドラ、ハードウェア管理のためのデバイスドライバ、マッピングテーブル部１５７及び保護情報部１５８の一部は、少なくとも、変換されていない初期動作イメージ２２４に含まれている必要がある。
このように、本実施形態１に於いては、ある物理ブロックからの読み出しは１度しか起こらず、また、展開する際に、２つ以上の物理ブロックから読み出す必要がなくなるという効果が得られる。
（計算機システム１００の具体例）
図８に、本第１実施形態における計算機システム１００の具体例（計算機システム２００）を示す。
不揮発性記憶部１５２には、変換済イメージデータ２９０（図２参照）とデータ変換されていない初期動作イメージ２２４（図２参照）が予め記憶されている。初期動作イメージ２２４には、図１のマッピングテーブル部１５７及び保護情報部１５８が初期状態で含まれ、又マッピングテーブル変更部１５４がＯＳ２０５の一機能として含まれている。
主記憶部１５１と不揮発性記憶部１５２で構成される主記憶装置１０１は、ＣＰＵ２０１にメモリバス２０２を通じて接続されており、アドレス変換部１５６はＣＰＵ２０１に内蔵されている。ＣＰＵ２０１には、他のハードウェア２０９と記憶装置２０３とが接続されており、記憶装置２０３にはＢＩＯＳ２０７が設けられている。ＢＩＯＳ２０７にはＩＰＬ２０４が内蔵されている。
図９に主記憶装置１０１に割り当てられた物理ブロックアドレスの割り当て例を示す。実際には数多くのブロックが物理ブロックアドレスに割り当てられるが、図示した例は本発明の理解を容易にするためにブロック数を極めて小さくしてある。この主記憶部１５１には０〜２０の物理ブロックアドレスが割り当てられ、不揮発性記憶部１５２には２１〜３０の物理ブロックアドレスが割り当てられている。
図１０に、ＯＳ２０５が有する保護情報部１５８の内容例を示す。この図１０における保護情報部１５８ではブロック数を小さくして開示したが、実際には数多くのブロックが存在する。この図１０において、論理ブロックアドレス０〜２の各ブロックの保護属性は読み込み専用（Ｒ）に、論理ブロックアドレス３〜６の各ブロックの保護属性は読み書き可能（ＲＷ）になっている。又、図１１（ａ）（ｂ）に、マッピングテーブル変更前後のマッピングテーブル部１５７の例を、それぞれ示す。
（マッピングテーブル部１５７の初期状態）
図１１（ａ）には、ＯＳ２０５が有する初期状態のマッピングテーブル部１５７の例を示す。この図１１（ａ）にし示すマッピングテーブル部１５７ではブロック数を小さくして開示したが、実際には数多くのブロックが存在する。この図１１（ａ）に示すように、マッピングテーブル部１５７の初期状態は、０〜６の論理ブロックアドレスに対して、不揮発性記憶部１５２の物理ブロックアドレス２１〜２５（図９）が対応付けられている。物理ブロックアドレス２１〜２５（図９）の５つの物理ブロックのうち、物理ブロックアドレス２１〜２２の２つの物理ブロックが初期動作イメージ２２４である。従って、論理ブロックアドレス０，１に対応する各物理ブロックの保護モード（プロテクトモード）には、本来の保護属性が初期設定されている。
これに対し、初期動作イメージ２２４以外の起動直後イメージ２４２の変換済イメージデータに属する論理ブロックアドレス２〜６の本来の保護属性は、それぞれＲ，ＲＷ，ＲＷ，ＲＷ，ＲＷであるが（図１０参照）、運用開始後に初めてアクセスがあった際に保護属性違反をわざと起こして例外処理を起動するため、すべてＮＵＬＬの保護モードが初期設定されている。
この図１１（ａ）の初期の（変更前の）マッピングテーブルを更に具体的に説明するために、図１２に不揮発性記憶部１５２に含まれる初期動作イメージ２２４（図８）と変換済イメージデータ２９０（図８）の内容例を示す。この図１２を参照すると、物理ブロックアドレス２１，２２は、既に図１１（ａ）において説明したとおり、初期動作イメージ２２４となっており、この部分は圧縮や暗号化などのデータ変換は施されていない。
また、図１２の例では物理、論理とも、ブロックサイズは４０９６バイトである。更に、物理ブロックアドレス２３には２つの論理ブロックアドレスの変換済みデータが含まれている。１つは図１１（ａ）に示す論理ブロックアドレス「２」のデータであり、データ変換処理によって７００バイトのデータになっている。もう一つは図１１（ａ）に示す論理ブロックアドレス「４」のデータであり、何れもデータ変換処理によって３３００バイトのデータになっている。更に、物理ブロックアドレス２４にも２つの論理ブロックアドレスの変換済みデータが含まれている。それぞれ、論理ブロックアドレス「３」の１０００バイトのデータと、論理ブロックアドレス「６」の２５００バイトのデータである。
これら物理ブロックアドレス２３と２４の間には７８バイトの空き空間が存在し、ブロックサイズを越えないように複数ブロックをまとめてある。これは、複数ブロックを連続してまとめることによってブロックサイズを越えることを回避し、例外イベント処理の際に、２つの物理ブロックを読み出してＴＬＢエントリを２つ使用することを回避するためである。
尚、図１２には論理ブロック５は図示されていないが、その理由は、論理ブロック５が物理ブロック２１〜２４以外に割り当てられているためである。
（計算機システム２００の詳細な動作（マッピングテーブルの変更を含む））
以下、図６〜図７および図１０〜図１１（ａ）（ｂ）を参照して、上述した計算機システム２００の詳細な動作について説明する。
まず、図７のステップＳ２０１において、計算機システム２００は、起動されると前述した主記憶部１５１のクリア等のハードウェアの初期化を行う。このとき、初期動作イメージ２２４には、初期設定済のマッピングテーブル部１５７のデータ及び保護情報部１５８のデータ含まれているため、計算機システム２００上において自動的にマッピングテーブル部１５７のデータが図１１（ａ）のように設定され、また図１０に示したような状態の保護情報部１５８のデータが設定されることになる。更に、初期動作イメージ２２４には、マッピングテーブル変更部１５４の機能が含まれているため、その機能の利用が可能となる。
次に、図７のステップＳ２０２において、ＣＰＵ２０１が、初期動作イメージ２２４からシステムを起動する。具体的には、ＩＰＬ２０４がＣＰＵ２０１内のプログラムカウンタにシステムの運用を開始する際に最初に実行する命令の論理アドレスを設定し、その命令から実行を開始させることにより、システムの運用を開始させる。最後に、図７のステップＳ２０３において、ＣＰＵ２０１上で実行されるプログラムが主記憶部１５１をアクセスし、システム運用が行なわれる。
システム運用動作については、例として以下のようなアクセスを想定する。
（１）論理ブロックアドレス「２」を持つ論理アドレスへの最初の読み出しアクセス。
（２）論理ブロックアドレス「２」を持つ論理アドレスへの２回目以降の読み出しアクセス。
（３）論理ブロックアドレス「２」を持つ論理アドレスへの読み出しアクセスの後の、論理ブロックアドレス「４」を持つ論理アドレスへの書き込みアクセス。
（４）論理ブロックアドレス「１」を持つ論理アドレスへの読み出しアクセス。
以下、図６に基づいて計算機システム２００のシステム運用動作について説明する。
（１）．先ず、論理ブロックアドレス「２」（図１０、図１１（ａ）を持つ論理アドレスへの最初の読み出しアクセスが発生した際の動作を説明する。
この場合、アドレス変換部１５６は、論理ブロックアドレス「２」でマッピングテーブル部１５７を検索し、図１１（ａ）中の「論理ブロックアドレス２、物理ブロックアドレス２３、保護モード（プロテクトモード）ＮＵＬＬ」のエントリを取得する（図６のステップＳ１００）。
この時、保護モードがＮＵＬＬであるので（図６のステップＳ１０１でイエス）、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部１５４に通知して例外処理を起動する（図６のステップＳ１０６）。このマッピングテーブル変更部１５４は、論理ブロックアドレス「２」で保護情報部１５８を検索し、図１１（ａ）の論理ブロックアドレス２を持つエントリの保護モード（プロテクトモード）の保護属性「Ｒ」を取得する（図６のステップＳ１０７）。続いて、論理ブロックアドレス「２」に対応する物理ブロック「２３」で特定されるＲＯＭ（不揮発性記憶部１５２）の当該ブロックから７００バイトのデータ（図１２）を読み出してＲＡＭ上に展開を行ない、４０９６バイトのデータを主記憶１５１上の空いている物理ブロック（「１３」が割り当てられたとする）に書き出す（図６のステップＳ１０８）。
次に、マッピングテーブル変更部１５４は、図１１（ｂ）に示されるように論理ブロックアドレス「２」を持つエントリ中の不揮発性記憶部１５２上の物理ブロックアドレス「２３」を、主記憶部（ＲＡＭ）１５１上の物理ブロックアドレス「１３」に書き換え、保護モードをＮＵＬＬからＲに書き換える（図６のステップＳ１０９）。
更に、当該物理ブロック（変更前は「２３」、変更後も「２３」）には複数の論理ブロックが変換されたデータを含んでいるので、例外イベントが発生した変更前の物理ブロックアドレス「２３」以外の論理ブロックのデータに対しても展開及び物理ブロックの割り当てとデータの書き出し、マッピングテーブルの更新を行なう。つまり、論理ブロック「４」を保護情報部から探して（図６のステップＳ１０７）、３７００バイトのデータを展開して４０９６バイトのデータとして主記憶部１５１の空いている物理ブロック（「１４」が割り当てられたとする）に書き出し（図６のステップＳ１０８）、マッピングテーブル変更部１５４が、図１１（ｂ）に示されるように論理ブロックアドレス「４」を持つエントリのＲＯＭ上の物理ブロックアドレス「２３」をＲＡＭ上の物理アドレス「１４」に書き換え、これのよって、保護モード（プロテクトモード）をＮＵＬＬからＲＷに書き換える（図６のステップＳ１０９）。
物理ブロックに含まれる全ての論理ブロックの展開と主記憶部１５１への書き出し及びマッピングテーブル部１５７の更新が終わった後、例外処理の完了をアドレス変換部１５６に通知する（図６のステップＳ１１０）。
アドレス変換部１５６は、マッピングテーブル変更部１５４から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理を図６のステップＳ１００から再開する。そして、このアドレス変換部１５６は、論理ブロックアドレス「２」でマッピングテーブル部１５７を検索すると、マッピングテーブル部１５７は図１１（ａ）の状態から図１１（ｂ）の状態に更新されているので、今度は「論理ブロックアドレス２、物理ブロックアドレス１３、プロテクトモードＲ」のエントリを取得する（図６のステップＳ１００）。
続いて、アドレス変換部１５６は、プログラムから指定されたメモリアクセスが、プロテクトモードがＲであり（図６のステップＳ１０１でノー）、読み込みアクセスなので（図６のステップＳ１０２でノー）、保護違反なしと判断し、取得したエントリ中の主記憶部１５１上の物理ブロックアドレス「１３」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（図６のステップＳ１０４）、その物理アドレスで特定される当該主記憶部１５１の個所をアクセスして読み出し、プログラムに値を返却する（ステップＳ１０５）。
このように、システムの運用開始後、保護属性がＮＵＬＬのブロックに対して最初のアクセスが発生した場合、そのブロックのデータがＲＯＭ（不揮発性記憶部１５２）から読み出されて展開されてＲＡＭ（主記憶部１５１）に書き出され、データが読み込まれる。ここでは、読み込みを例にしたが、書き出しアクセスの場合も同様である。
（２）．次に、論理ブロックアドレス「２」を持つ論理アドレスへの２回目以降の読み込みアクセスが発生した場合の動作を説明する。
アドレス変換部１５６は、論理ブロックアドレス「２」でマッピングテーブル部１５７を検索すると、マッピングテーブル部１５７は図１１（ａ）の状態から図１１（ｂ）の状態に更新されているので、主記憶部１５１内で「論理ブロックアドレス２、物理ブロックアドレス１３、保護モードＲ」のエントリを取得する（図６のステップＳ１００）。
続いて、アドレス変換部１５６は、プログラムから指定されたメモリアクセスが、保護モードが「Ｒ」であり（図６のステップＳ１０１でノー）、読み込みアクセスなので（図６のステップＳ１０２でノー）、取得したＲＡＭ（主記憶部１５１）内の物理ブロックアドレス「１３」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（図６のステップＳ１０４）、その物理アドレスで特定される主記憶部１５１の個所をアクセスして読み込み、プログラムに値を返却する（図６のステップＳ１０５）。
このように、システムの運用開始後、初期動作イメージ２２４以外の起動直後イメージ２４２に属するブロックに対して２回目以降のアクセスが発生した場合、初回のような展開及び物理ブロックの割り当て動作は最早必要ないため、主記憶部１５１上に存在するデータが直ちに更新される。
（３）．次に、論理ブロックアドレス「４」を持つ論理アドレスへの書き出しアクセスが発生した場合の動作を説明する。
アドレス変換部１５６は、プログラムから指定された論理ブロックアドレス「４」でマッピングテーブル部１５７を検索し、図１１（ｂ）に示すように、ＲＡＭ（主記憶１５１）内で「論理ブロックアドレス「４」、物理ブロックアドレス「１４」、保護モード「ＲＷ」のエントリを取得する（図６のステップＳ１００）。
既に保護モードは「ＮＵＬＬ」から「ＲＷ」に変更されているので（図６のステップＳ１０２でノー）、アドレス変換部１５６はプログラムから指定されたメモリアクセスが書き込みアクセスであり（ステップＳ１０２でイエス）、保護モードが「ＲＷ」（図６のステップＳ１０３でイエス）なので、取得したエントリ中の物理ブロックアドレス「１４」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（図６のステップＳ１０４）、その物理アドレスで特定される主記憶部１５１の個所をアクセスし、プログラムから渡されたデータを書き込む（図６のステップＳ１０５）。
このように、既に論理ブロックアドレス「２」の例外処理時に、論理ブロックアドレス「４」の展開処理も行なわれているため、論理ブロックアドレス「４」に対する最初のアクセス発生時にも例外イベントは発生せずにメモリアクセスが実行される。  既に例外イベントを発生した論理ブロックに含まれていたその他の論理ブロックのデータに関しても同様であり、つまり、変換済データを含むとある物理ブロックに対する読み込みと展開の処理は一度しか行なわれない。
（４）．最後に、論理ブロックアドレス「１」を持つ論理アドレスへの読み出しアクセスが発生した場合の動作を説明する。
アドレス変換部１５６は、プログラムから指定された論理ブロックアドレス「１」でマッピングテーブル部１５７を検索し、図１１（ｂ）の「論理ブロックアドレス「１」、物理ブロックアドレス「２２」、保護モード「Ｒ」のエントリを取得する（図６のステップＳ１００）。
このエントリの保護モードが「ＮＵＬＬ」ではなく「Ｒ」なので（図６のステップＳ１０１でＮＯ）、アドレス変換部１５６は、プログラムから指定されたメモリアクセスが読み出しアクセスであるため（図６のステップＳ１０２でＮＯ）、取得したエントリ中の物理ブロックアドレス「２２」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（図６のステップＳ１０４）、その物理アドレスで特定される主記憶部１５１の個所をアクセスし、読み出したデータをプログラムに返却する（図６のステップＳ１０５）。
このように、初期動作イメージ２２４のブロックに対し、プグラムが指定した読み込みアクセスでは、例外イベントが発生しない。
以上のように、上記第１の実施形態によれば、ある物理ブロックからの読み出しは１度しか起こらず、また、展開する際に、２つ以上の物理ブロックから読み出す必要がなくなるという効果が得られる。更に、この第１の実施形態では、起動直後イメージ２４２をデータ変換して不揮発性記憶部１５２に保持したが、この方式は起動時間の短縮化以外の目的にも使用できる。例えばファイルシステムを、不揮発性記憶部１５２に圧縮や暗号化するなどして保持する場合にも利用可能である。
（第２の実施形態）
上述した第１の実施の形態では、マッピングテーブル１５７の更新の際に保護情報部１５８を使っていたが、図１３に示すように、変換済データ内で各論理ブロックの本来のプロテクトモード（保護モード）を保持している場合には、図１における保護情報部１５８を参照しなくてよい。
この場合、この第２の実施形態のおける計算機システムの構成は、以下の如くなる。即ち、プログラムを格納する不揮発性記憶部１５２と、前記プログラムを不揮発性記憶部１５２から受け取る主記憶部１５１と、これら揮発性記憶部１５２および主記憶部１５１に格納されたプログラムを管理するメモリ管理部（ＯＳ）を含むデータ処理装置１０２とを備えている。この内、前述したメモリ管理部が、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部と、このアドレス変換部の情報を保持するマッピングテーブル部と、例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更部とを備えた構成とする。そして、前述したマッピングテーブル部が、前記変換済データ内に各論理ブロックの本来のプロテクトモード（保護モード）を保持していることを特徴とする。
このように、本第２の実施形態では、前述した第１の実施の形態でマッピングテーブル１５７の更新の際に保護情報部１５８を使っていたが、図１３に示すように、変換済データ内で各論理ブロックの本来のプロテクトモード（保護モード）を保持している場合には、保護情報部１５８を参照しなくてよい。
即ち、本第２の実施形態では、この図１３に示す保護モード（プロテクトモード）３９０を参照して、前述したマッピングテーブル１５７の保護モード（プロテクトモード）１６３を更新する。従って、この場合には、図１の計算機システム１００において保護情報部１５８が省略され、図６の例外イベント処理の際のステップＳ１０７が省略される。図１３の例の変換済データ部分は、保護情報属性（保護モード属性）を含んだものとなり（図１４）、データ処理の効率を高めることができ、システムの高速化が高められる。
この第２の実施形態でも、前述した第１の実施形態の場合と同様に、ある物理ブロックからの読み出しは１度しか起こらず、また、展開する際に２つ以上の物理ブロックから読み出す必要がなくなる。このとき、前述した第１の実施形態とは異なり、変換済データに保存されているプロテクトモードの情報からマッピングテーブル１５７の保護モード１６３を更新するため、保護情報部１５８が必要ない。
ここで、前述した計算機システムにおいては、不揮発性記憶部１５２の所定サイズの物理アドレスに格納した複数のプログラムには、それぞれ主記憶部１５１の物理アドレスに対応した論理アドレス，総論理アドレス数，プログラムデータサイズ，及び保護モードを記入するように構成してもよい。
（第３の実施形態）
前述した第１の実施形態では、各論理ブロックのデータを変換した後の大きさが、物理ブロックの大きさ（図１４の場合は４０９６バイト）よりも小さくなるために、１つの物理ブロックに複数の論理ブロックを格納することが出来た。
この第３の実施形態では、データを変換した後のサイズが元の４０９６バイトよりも大きくなることに対処する。この場合、図１５に示すように、複数の論理ブロックをまとめる大きさを、元々の物理ブロックサイズの任意の整数倍とする。図１５の例では１６３８４バイト（元々の４倍）である。
このため、当該ブロックに対して始めてのアクセスが発生して例外イベントが呼び出されると、マッピングテーブルに記入されている物理ブロックアドレスから始まって４ブロック分のデータが読み出されて、３つの論理ブロックに展開される（変換処理を施されたデータに対して逆変換を行なうことで元のデータに戻すことが可能であり、この逆変換処理のことを「展開」と称する）。
起動直後イメージ２４２の各論理ブロックのデータを変換処理してまとめるときにも、変換後のデータサイズを吟味しながら、適切なブロックサイズを選択してまとめることを行なう。このとき、決定したブロックサイズ（１６３３８バイト）の境界を跨がないようにして、次のブロックの作成を開始する。図１５の例では、５８バイト分のデータ無しの空き領域が存在する。ここで、論理ブロックをまとめる際の物理ブロックサイズは１つのシステムで固定サイズではなくても良い。即ち、まとめるブロックサイズは物理ブロックサイズの任意の整数倍であればよく、２倍、３倍、４倍、５倍などが物理ブロックに応じて変動してもよい。
この第３の実施形態においては、データ変換によってデータサイズが本来の物理ブロックサイズよりも大きくなった場合にも、前述した第１の実施の形態と同様に、ある物理ブロックからの読み出しは１度しか起こらないという効果が得られる。
（第４の実施形態）
この第４の実施形態における計算機システムにあっては、前述した不揮発性記憶部に格納された所定のデータ変換が施された前記プログラムに対して、一定時間間隔で、更に別内容の所定のデータ変換を施すようにした点に特徴を有する。
即ち、前述した第３の実施の形態では、変換済データの展開後は、そのままデータを利用し続けていた。一方、この第４の実施形態では、主記憶部１５１上に展開されたデータに対して、再度、データ変換処理を施すことを行なう。例えば主記憶部１５１上にあるデータを暗号化して保持したい場合などは、一定時間間隔でデータの再暗号化を施す。
図１６に、この第４実施形態における再変換処理のフローチャートを示す。この場合、実際の動作は、まず、マッピングテーブル部を検索して再変換できるブロックのエントリを探す（ステップＳ３００）。再変換できるブロックがなかった場合（ステップＳ３０１でノー）は終了となる。
一方、再変換できるブロックがあった場合（ステップＳ３０１でイエス）、その論理ブロックを再変換処理してバッファ（図示せず）に貯える（ステップＳ３０２）。そして、既にバッファにある変換済みデータと併せて、ブロックサイズを越えるようであれば（ステップＳ３０３で、イエス）、当該ブロックの再変換データを破棄し、次のエントリを探す。これに対し、既にバッファにある変換済みデータと併せてもブロックサイズを越えなければ（ステップＳ３０３でノー）、当該ブロックのマッピングテーブルを更新する（ステップＳ３０４）。
又、前述したバッファの空き容量が小さくなった場合（ステップＳ３０５で、イエス）、主記憶部１５１の空き領域に書き出す（ステップＳ３０６）。このとき、バッファに貯えられたいずれかのブロックの物理ブロック上に上書きすることも可能である。尚、前述したバッファから書き出す判断のアルゴリズムは、本第４の実施形態ではバッファの空き容量が小さくなった場合としたが、既にある任意のアルゴリズムを使ってよい。
次に、この第４実施形態におけるマッピングテーブルの変更に付いて一例を挙げて説明する。図１７（ａ）は、コンピュータ２００が保持している初期化時（変更前）のマッピングテーブルの状態である。今、論理ブロックアドレス３のデータを再変換処理し、図１８のように９００バイトの変換済データがバッファに貯えられたとする。
次に、論理ブロックアドレス４のデータを再変換処理してバッファに貯える。これによって、３９００バイトの変換済データとなったため、図１８に示す総ブロック数２、データサイズ９００、論理ブロックアドレス３、及び、データサイズ３０００、論理ブロックアドレス４、の一連の管理データを書き込んで、主記憶部１５１上に書き出す。
このとき、図１７（ｂ）に示すように、論理ブロックアドレスが使用していた主記憶部１５１上の物理ブロックアドレス１５に書き出すので、論理ブロックアドレス３及び４の物理ブロックアドレスを１５に変更し、保護モード（プロテクトモード）をＮＵＬＬに変更する。
このように、上記第４の実施形態によれば、一定時間ごとにデータ変換処理が行なわれるため、データを主記憶部１５１上にそのままの形で展開し続けることがなくなり、データを盗み見られたときなどの際の安全性を高めることができる。
（本実施形態における計算機システムのメモリ管理方法）
次に、本実施形態における計算機システムのメモリ管理方法を、添付図面に基づいて説明する。
本実施形態における計算機システムのメモリ管理方法は、不揮発性記憶部１５２に格納されたプログラムを主記憶部１５１に転送するように構成された計算機システムのメモリ管理方法において、不揮発性記憶部１５２に、前記プログラムに所定のデータ変換を施したものと前記プログラムに所定のデータ変換を施さないものとを格納する第１のステップと、計算機システムの起動後に、ＯＳ及びアプリケーションのメモリアクセスを契機に作動し前述した不揮発性記憶部１５２に格納されているプログラムの内の所定のデータ変換を施したプログラムを主記憶部１５１に転送して当該所定のデータ変換の逆変換を施す第２のステップと、不揮発性記憶部１５２に格納されたプログラムの物理アドレスを主記憶部１５１の物理アドレスに変更する第３のステップと、前述した不揮発性記憶部１５２に格納された前記プログラムに割り当てられた所定容量の１つの物理アドレスを含むブロック内のデータの展開のために複数の論理ブロック分の容量を割り当てる第４のステップとを備えている。
このように構成すると、前述した第１の実施形態の場合と同等の効果を奏する計算機システムのメモリ管理方法を提供することができ、同時に、前述した計算機システムにかかる発明を上記手順をもって効率良く且つ確実に実施し得るという効果を奏する。
ここで、本実施形態では、上述した第１のステップと第２のステップの間に、前述した不揮発性記憶部１５２に格納されプログラムに所定のデータ変換が施されたものに対し一律に保護モードＮＵＬＬを設定するステップを設けるようにしてもよい。
又、本実施形態では、この計算機システムのメモリ管理方法において、前述した不揮発性記憶部１５２の所定サイズの物理アドレスに格納した複数のプログラムに対して、それぞれ前記主記憶部１５１の物理アドレスに対応する論理アドレス，総論理アドレス数，及びプログラムデータサイズを記入するステップを前述した第１のステップに併設するように構成するようにしてもよい。
更に、本実施形態では、この計算機システムのメモリ管理方法において、前述した不揮発性記憶部１５２の所定サイズの物理アドレスに格納した複数のプログラムに対して、それぞれ主記憶部１５１の物理アドレスに対応する論理アドレス，総論理アドレス数，プログラムデータサイズ，及び保護モード（プロテクトモード）を記入するステップを、前述した第１のステップに併設してもよい。また、前述した不揮発性記憶部１５２に格納されたプログラムの内の所定のデータ変換が施されたプログラムを対象として一定時間間隔で別内容の所の定変換を施すステップを、前述した第１のステップに併設してもよい。
尚、上記した計算機システムのメモリ管理方法についての具体的な内容については、前述した第１乃至第４の各実施形態内で詳述した。
（本実施形態における計算機システムのメモリ管理プログラム）
次に、本実施形態における計算機システムのメモリ管理プログラムを、添付図面に基づいて説明する。
本実施形態における計算機システムのメモリ管理プログラムは、不揮発性記憶部１５２に格納されたプログラムを主記憶部１５１に転送するように構成された計算機システムの動作を制御するコンピュータに、前述した不揮発性記憶部１５２に対してプログラムに所定のデータ変換を施したものとプログラムに所定のデータ変換を施さないものとを格納する手順と、システムの起動後にＯＳ及びアプリケーションのメモリアクセスを契機に作動し前述した不揮発性記憶部１５２に格納されているプログラムの内の所定のデータ変換を施したプログラムを主記憶部１５１に転送して当該所定のデータ変換の逆変換を施す手順と、前記不揮発性記憶部１５２に格納されたプログラムの物理アドレスを主記憶部１５１の物理アドレスに変更する手順と、前記不揮発性記憶部１５２に格納されたプログラムに割り当てられた所定容量の１つの物理アドレスを含むブロック内のデータの展開ために複数の論理アドレス分の容量を割り当てる手順と、をコンピュータに実行させるためプログラムである。このように構成すると、前述した第１の実施形態の場合と同等の効果を奏する計算機システムのメモリ管理プログラムを提供することができる。
ここで、本実施形態では、前述した計算機システムのメモリ管理プログラムにおいて、前述した不揮発性記憶部１５２に格納されプログラムに所定のデータ変換が施されたものには対して一律に保護モードＮＵＬＬを設定する手順を、前記コンピュータが実行し得るように組み込んでもよい。
又、本実施形態では、前述した計算機システムのメモリ管理プログラムにおいて、前述した不揮発性記憶部１５２の所定サイズの物理アドレスに格納した複数のプログラムに対して、それぞれ主記憶部１５１の物理アドレスに対応する論理アドレス，総論理アドレス数，及びプログラムデータサイズを又はこれらと保護モードとを記入する手順を、前記コンピュータが実行し得るように組み込んでもよい。
更に、本実施形態では、前述した計算機システムのメモリ管理プログラムにおいて、前述した不揮発性記憶部１５２に格納されたプログラムの内の所定のデータ変換が施されたプログラムを対象として、一定時間間隔で別内容の所の定変換を施す手順を、前記コンピュータが実行し得るように組み込んでもよい。
尚、上記した計算機システムのメモリ管理プログラムに関する具体的な内容については、前述した第１乃至第４の各実施形態内で、これと同等の内容を計算機のメモリ管理システムにおける動作および機能として具体的に詳述した。
以上のように、本発明によると、データ変換されたブロックに含まれる全ブロックのデータを、どれかのブロックの展開の際に一回で展開するようにしたので、ＲＯＭ等の不揮発性記憶部の１つのブロックからは１回しか読み出せないこととなりる。これにより、従来例（背景技術）で生していた不都合（２回以上読み出すことがあり起動時間が長いという欠点）を確実に且つ効率よく改善することができることとなった。また、本発明によれば、不揮発性記憶媒体のデータを主記憶部上に展開する場合に、不揮発性記憶媒体の複数ブロックを読み出す必要がなく、ＴＬＢエントリも１つしか使用しないことである。その理由は、変換された不揮発性記憶媒体のデータが複数のブロックにまたがって保存されることがないからである。
【産業上の利用可能性】
【０００６】
本発明は、圧縮や暗号化などの変換処理を施したデータを不揮発性記憶媒体に格納して動的に展開する用途に適用できる。これによって、必要となる不揮発性記憶媒体の容量を削減したり、機密性の高い内容を不揮発性記憶媒体に格納して利用できる。
【図１】
0005071798.tif 000002
【図２】
0005071798.tif 000003
【図３】
0005071798.tif 000004
【図４】
0005071798.tif 000005
【図５】
0005071798.tif 000006
【図６】
0005071798.tif 000007
【図７】
0005071798.tif 000008
【図８】
0005071798.tif 000009
【図９】
0005071798.tif 000010
【図１０】
0005071798.tif 000011
【図１１】
0005071798.tif 000012
【図１２】
0005071798.tif 000013
【図１３】
0005071798.tif 000014
【図１４】
0005071798.tif 000015
【図１５】
0005071798.tif 000016
【図１６】
0005071798.tif 000017
【図１７】
0005071798.tif 000018
【図１８】
0005071798.tif 000019