JP5071798B2 - 計算機システム,メモリ管理方法,およびそのプログラム - Google Patents

計算機システム,メモリ管理方法,およびそのプログラム Download PDF

Info

Publication number
JP5071798B2
JP5071798B2 JP2007511258A JP2007511258A JP5071798B2 JP 5071798 B2 JP5071798 B2 JP 5071798B2 JP 2007511258 A JP2007511258 A JP 2007511258A JP 2007511258 A JP2007511258 A JP 2007511258A JP 5071798 B2 JP5071798 B2 JP 5071798B2
Authority
JP
Japan
Prior art keywords
storage unit
program
address
unit
block
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.)
Active
Application number
JP2007511258A
Other languages
English (en)
Other versions
JPWO2006107095A1 (ja
Inventor
雅彦 高橋
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2007511258A priority Critical patent/JP5071798B2/ja
Publication of JPWO2006107095A1 publication Critical patent/JPWO2006107095A1/ja
Application granted granted Critical
Publication of JP5071798B2 publication Critical patent/JP5071798B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、計算機システム、メモリ管理方法、及びそのプログラムに関し、例えば圧縮され暗号化されてROM等の不揮発性記憶媒体内に格納されたデータを管理し、RAM等の主記憶部に効率良く転送することができる計算機システム,メモリ管理方法,およびそのプログラムに関する。
コンピュータの起動時の制御プログラムは、大容量であるがアクセス速度が遅いROM等の不揮発性記憶媒体に格納されている。従来は、システムリセット(初期化動作)が完了した後で、例えば不揮発性記憶媒体としてのROMから主記憶部としてのRAMに制御プログラムが転送されていた。このため、ユーザが電源を投入してから情報処理装置を使用することができるまでの待ち時間が長かった。
ところで、上述したように主記憶イメージは大きい。このため、起動時間を短くかくするにはROM等の不揮発性記憶媒体の容量を節約する必要があり、その対応策として、主記憶イメージ(OS用の制御プログラム)を圧縮処理して保存するという試みがなされている。例えば、文献1(米国特許 第6,496,882号)に開示された圧縮対応起動方式は、ROM等の不揮発性記憶媒体の容量を減らすために起動直後において必要な主記憶イメージを論理ブロック単位で圧縮しており、ある論理ブロックに最初にアクセスしたときに、当該論理ブロックに対応する圧縮データを不揮発性記憶媒体から読み込んで圧縮を解除しRAMにデータを展開する。各圧縮ブロックが保存されているROMのアドレスは管理テーブルに書き込まれており、ROMから圧縮ブロックを読み込むときには、管理テーブルを参照して得たアドレスを用いてROMから読み出す。この場合、コンピュータシステムに於けるメモリ管理装置では、主記憶メモリの物理アドレスを所定の幅に区切って管理している。
一方、アプリケーションプログラムから指定されるアドレスは、論理アドレスと呼ばれ、物理アドレスを所定の幅に区切ったブロックをマッピングして論理的に連続に見えるように変換したものであり、この変換テーブルはオペレーティングシステム(OS)が管理している。ちなみに、変換テーブルのエントリを、CPU内のMMU(memory management unit)でキャッシュしたものが、TLB(Translation Look−aside Buffer)と呼ばれている。
しかしながら、上述した従来例(文献1)にあっては、圧縮ブロックを読み込むときには、不揮発性記憶媒体の当該ブロックには2つ以上の論理ブロックのデータが含まれているにもかかわらず、それぞれの例外処理において別々に読み出すことから、時には、ブロック単位でアクセスするROM等の不揮発性記憶媒体の1つのブロックから2回以上読み出すという不都合が生じていた。
また、読み出す変換データが不揮発性記憶媒体上で2つのブロックにまたがって保存されていることから、論理ブロックのデータを展開するときに、ブロック単位でアクセスするとROM等の不揮発性記憶媒体の複数ブロックを読み出すことがあり、これに伴ってTLBエントリを2つ使用するという事態が生じ、これがため高速起動に支障をきたすという不都合があった。
そこで、本発明の目的は、読み出すべきブロックのデータの大きさが変わったとしても、圧縮され暗号化されてROM等の不揮発性記憶媒体内に格納されたプログラム及びデータをRAM等の主記憶部に効率良く転送・展開し、ひいては、計算機システムの起動時間を短縮することができる計算機システム,計算機システムのメモリ管理方法,およびその管理プログラムを提供すること、にある。
本発明にあっては、圧縮や暗号化等により変換したプログラムを不揮発性記憶部に格納する際には、ブロックの境界を跨がないように格納し、あるブロックへの最初のアクセスの際には当該ブロックに含まれる全てのデータを、対応する主記憶部のブロックへ展開する、という手法を採用している。これを更に具体的に開示する。
即ち、本発明にかかる計算機システムは、プログラムを格納する不揮発性記憶部(例えばROM)と、前記プログラムを不揮発性記憶部から受け取る主記憶部(例えばRAM)と、前述した不揮発性記憶部および主記憶部に格納されたプログラムを管理するメモリ管理部(OS)を含むデータ処理装置とを備えている。
前述したメモリ管理部は、前述した不揮発性記憶部に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御機能を備えている。更に、このメモリ管理部は、そのプログラム格納制御機能の実行に際しては所定のデータ変換を施したプログラムをブロックの境界を跨がないように組み合わせるように機能すると共に、或るブロックへの最初のアクセスの際には当該ブロックに含まれる全てのデータを対応する主記憶部のブロックへ展開する機能を備えた構成とした(請求項1)。
このため、本発明では、不揮発性記憶部には、OSおよびアプリケーションプログラムの初期化処理後の主記憶イメージの一部をブロック単位でデータ変換されたイメージデータを記憶することができるので、各ブロックの変換済データをブロックサイズを越えないように適切にまとめ得るようになっている。これにより、計算機システムの起動時には、データ変換されていない主記憶イメージ部分からシステム起動がなされるので、OSおよびアプリケーションプログラムの起動直後と同じ状態になり、システムは立上がり直後の環境に復帰する。この時、システム起動が主記憶イメージ部分からなされるので、システム運用可能になるまでの運用中断状態は発生せず、これにより起動時間が有効に短縮される。
又、本発明では、前述したメモリ管理部が、不揮発性記憶部に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御機能を備えたものとした。更に、このメモリ管理部は、システム全体の起動後にOS及びアプリケーションのメモリアクセスを契機に(そのタイミングで)作動し前述した不揮発性記憶部に格納された所定のデータ変換が施されたプログラムを前述した主記憶部に転送してこれを逆変換するプログラム逆変換機能と、不揮発性記憶部に格納されたプログラムの物理アドレスを主記憶部の物理アドレスに変更する物理アドレス変更機能と、前述した不揮発性記憶部に格納され前記プログラムに割り当てられた所定容量の1つの物理アドレスを含むブロック内のデータの展開のために複数の論理ブロック分の容量を割り当てる容量割り当て機能とを備えて構成されている(請求項2)。この場合、前述した不揮発性記憶部にはシステムの起動直後の主記憶のイメージに対して所定の幅毎にデータ変換処理されたデータが格納されている。このようにしても、前述したものと同等に機能する計算機システムを得ることができる。
更に、本発明では、前述したメモリ管理部が、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部と、このアドレス変換部の情報を保持するマッピングテーブル部と、前記論理ブロックアドレスの本来の保護情報を保持する保護情報部と、例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更部とを備えた構成とした(請求項3)。
又、本発明では、前述したメモリ管理部が、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部と、このアドレス変換部の情報を保持するマッピングテーブル部と、例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更部とを備えた構成とし、前述したマッピングテーブル部が、前記変換済データ内に各論理ブロックの本来のプロテクトモード(保護モードのこと、以下同じ)を保持しているように構成してもよい。このようにすると、マッピングテーブルの更新の際に変換済データ内で各論理ブロックの本来のプロテクトモード(保護モード)を保持している場合には、保護情報部を参照する必要がなくなり、その分、処理時間の迅速化を図り得ることができる(請求項4)。
ここで、前述した不揮発性記憶部にはシステム起動直後の前述した主記憶のイメージに対して所定の幅毎にデータ変換処理を施したデータが格納されており、システム起動後に未取得状態の主記憶ブロックへのアクセスが発生した場合にはこれに対応して前記アドレス変換部が例外処理を発生させる機能を有し、更に、前記マッピングテーブル変更部が前記未取得の主記憶ブロックに対応する不揮発性記憶部のブロックに含まれる1以上のブロックのデータを前述した主記憶部上にそれぞれ対応する未取得ブロック展開して未取得状態を取得状態に変更する機能を備えているように構成してもよい(請求項5)。このようにしても、前述した各計算機システムと同等に機能する計算機システムを得ることができる。
又、前述した不揮発性記憶部に格納され所定のデータ変換が施された前記プログラムに対しては、一律にプロテクトモードNULLを設定する。又、前記システム起動後のOS及びアプリケーションのメモリアクセスを契機に作動し前述した不揮発性記憶部に格納され前記プログラムに所定のデータ変換を施したものに対して前記主記憶部上の物理アドレスを割り当てるようにしてもよい(請求項6)。
更に、前述した不揮発性記憶部の所定サイズの物理アドレスに格納した複数のプログラムには、それぞれ主記憶部の物理アドレスに対応した論理アドレス,総論理アドレス数,及びプログラムデータサイズを(請求項7)、更には、保護モード(プロテクトモード)を、それぞれ記入してもよい(請求項8)。
又、前述した不揮発性記憶部の所定容量の物理アドレスの複数個を1単位とし、この1単位内に、複数の論理アドレスに割り当てられた前記プログラムを収容するようにしてもよい(請求項9)。更に、所定のデータ変換が施され前記不揮発性記憶部に格納されたプログラムに対しては、一定時間間隔で、別内容の所定のデータ変換を施すようにしてもよい(請求項10)。
このように、本発明にかかる計算機システムは、上述したように構成され機能するので上述したように、各ブロックの変換済データをブロックサイズを越えないように適切にまとめ得ることから、計算機システムの起動時には、データ変換されていない主記憶イメージ部分からシステム起動がなされ、OSおよびアプリケーションプログラムの起動直後と同じ状態になり、システムは立上がり直後の環境に復帰する。そして、システム起動が主記憶イメージ部分からなされることから、システム運用可能になるまでの運用中断状態は発生せず、これがためシステム全体の起動時間が有効に短縮される。
更に、計算機システムの起動後にあっては、データ変換されたブロックへの最初のアクセスの際に、当該ブロックに含まれる全ての計算済データを展開されるため、当該ブロックへのアクセスは一度しか起こらないため、従来例で生じていた、ブロック単位でアクセスすると不揮発性記憶部の複数ブロックを読み出すことがある、という不都合を完全に排除することを可能とした。そして、この場合、当該ブロックはブロックサイズを越えてはいないため、ブロックサイズでしか読み出せない不揮発性記憶部であっても、当該ブロックを読み出す際には1以上のブロックを読み出す必要性もない。
又、本発明では、計算機システムのメモリ管理方法として、以下に示す構成を採用した。即ち、不揮発性記憶部に格納されたプログラムを主記憶部に転送する計算機システムのメモリ管理方法において、不揮発性記憶部に、前述したプログラムに所定のデータ変換を施したものと前述したプログラムに所定のデータ変換を施さないものとを格納する第1のステップと、計算機システムの起動に際し、計算機システムの起動後にOS及びアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納されているプログラムの内の所定のデータ変換を施したプログラムを主記憶部に転送して当該所定のデータ変換の逆変換を施す第2のステップと、不揮発性記憶部に格納された前記プログラムの物理アドレスを、前記主記憶部の物理アドレスに変更する第3のステップと、前記不揮発性記憶部に格納された前記プログラムに割り当てられた所定容量の1つの物理アドレスを含むブロック内のデータの展開にために複数の論理アドレス分の容量を割り当てる第4のステップとを含むように構成した(請求項11)。
このため、本発明においても、前述した前述した計算機システムの場合と同様の効果を奏する計算機システムのメモリ管理方法を提供することができ、当該計算機システムの実施に際しては、本発明の手法に沿って作動させることにより、計算機システムを短時間に効率良く起動させることが可能となる。
ここで、前述した第1のステップと第2のステップの間に、前述した不揮発性記憶部に格納され前記プログラムに所定のデータ変換が施されたものに対し一律に保護モードNULLを設定するステップを設けるように構成してもよい(請求項12)。このようにしても、前述した計算機システムのメモリ管理方法を提供することができる。
又、前述した不揮発性記憶部の所定サイズの物理アドレスに格納した複数のプログラムに対して、それぞれ前記主記憶部の物理アドレスに対応する論理アドレス,総論理アドレス数,及びプログラムデータサイズを(請求項13)、或いはこれらと保護モード(請求項14)とを、それぞれ記入するステップを、前記第1のステップに併設してもよい。又、前述した不揮発性記憶部に格納されたプログラムの内の所定のデータ変換が施されたプログラムを対象として一定時間間隔で別内容の所の定変換を施すステップを、前記第1のステップに併設してもよい(請求項15)。
更に、本発明では、計算機システム用のメモリ管理プログラムとして、以下に示す構成を採用した。即ち、不揮発性記憶部に格納されたプログラムを主記憶部に転送するように構成されたシステムの動作を制御するコンピュータに、前述した不揮発性記憶部に対して、前述したプログラムに所定のデータ変換を施したものと前記プログラムに所定のデータ変換を施さないものとを格納する手順と、システムの起動後にOS及びアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納されているプログラムの内の所定のデータ変換を施したプログラムを主記憶部に転送して当該所定のデータ変換の逆変換を施す手順と、前記不揮発性記憶部に格納されたプログラムの物理アドレスを前記主記憶部の物理アドレスに変更する手順と、前記不揮発性記憶部に格納されたプログラムに割り当てられた所定容量の1つの物理アドレスを含むブロック内のデータの展開のために複数の論理アドレス分の容量を割り当てる手順と、をそれぞれコンピュータに実行させるようにした(請求項16)。
ここで、前述した不揮発性記憶部に格納され前記プログラムに所定のデータ変換が施されたものには対して一律に保護モードNULLを設定する手順、および前記計算機システムの起動後に発生するOSおよびアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納され前記プログラムに所定のデータ変換が施されたものに対し前記主記憶部上の物理アドレスを割り当てる手順、をコンピュータに実行させるようにしてもよい(請求項17)。
更に、前記不揮発性記憶部の所定サイズの物理アドレスに格納した複数のプログラムに対して、それぞれ前記主記憶部の物理アドレスに対応する論理アドレス,総論理アドレス数,及びプログラムデータサイズを(請求項18)、或いはこれらと保護モードとを(請求項19)、それぞれ記入する手順、をコンピュータに実行させるようにしてもよい。又、前述した不揮発性記憶部に格納されたプログラムの内の所定のデータ変換が施されたプログラムを対象として、一定時間間隔で別内容の所の定変換を施す手順、をコンピュータに実行させるようにしてもよい(請求項20)。
このようにしても、前述した各発明の場合と同様に計算機システムの起動時には、データ変換されていない主記憶イメージ部分からシステム起動がなされ、OSおよびアプリケーションプログラムの起動直後と同じ状態になり、システムは立上がり直後の環境に復帰する。そして、システム起動が主記憶イメージ部分からなされることから、システム運用可能になるまでの運用中断状態は発生せず、システムに起動時間を効率よく短縮することができる。
更に、計算機システムの起動後にあっては、データ変換されたブロックへの最初のアクセスの際に、当該ブロックに含まれる全ての計算済データを展開されるため、当該ブロックへのアクセスは一度しか起こらないため、本発明によると、従来例で生じていた、ブロック単位でアクセスするとROM(不揮発性記憶部)の複数ブロックを読み出すことがある、という不都合を完全に排除することができる。
以上のように、本発明によると、データを展開していない論理ブロックへの最初のアクセスが発生した時には当該ブロックが格納されている物理ブロックに含まれている全ての論理ブロックを一度に展開する(変換処理を施されたデータに対して逆変換を行うことでもとのデータに戻す)ようにしたので、当該物理ブロックへのアクセスは一回のみとなり、効率的なメモリ管理が可能となり、これによって計算機システムの軌道時間を有効に短縮することができる。
図1は、本発明の第1の実施形態を示すブロック図である。
図2は、第1の実施形態で起動直後イメージを論理ブロック毎にデータ変換した例で、不揮発性記憶部に仮想的に分けられて保存される変換済イメージデータと非変換イメージデータを示すブロック図である。
図3は、第1の実施形態で複数ブロックのデータを変換した後のデータ形式で、変換済イメージデータの各物理ブロックを示すブロック図である。
図4は、第1の実施形態で計算機が備えるマッピングテーブル部のエントリの構成例を示す説明図である。
図5は、第1の実施形態で計算機が備える保護情報部のエントリの構成例を示す説明図である。
図6は、第1の実施形態で計算機のアドレス変換部およびマッピングテーブル変更部における計算処理の例を示すフローチャートである。
図7は、第1の実施形態におけるシステムの概略動作を示すフローチャートである。
図8は、第1の実施形態の具体例を示すブロック図である。
図9は、図8における主記憶部及び不揮発性記憶部の物理ブロックアドレスの割り当て状態の例を示す説明図である。
図10は、図8における保護モード(保護情報部)の内容例を示す説明図である。
図11は、図1に開示したOSが有するマッピングテーブル部の初期状態および変更後の状態を示す図で、図11(a)はマッピングテーブル部の初期状態を示す説明図、図11(b)はマッピングテーブル部の変更後の状態を示す説明である。
図12は、図8に示す不揮発性記憶部の非変換データ(初期動作イメージ)及び変換済データの構成例を示す説明図である。
図13は、本発明の第2の実施形態における変換済イメージデータの各物理ブロックの構成例を示す説明図である。
図14は、第2の実施形態における変換済データの構成例を示す説明図である。
図15は、第3の実施形態における不揮発性記憶部の非変換データ及び変換済データの構成例を示す説明図である。
図16は、第4の実施形態における再変換処理の例を示すフローチャートである。
図17は、第4の実施形態におけるマッピングテーブル部の再変換処理前の状態および変換処理後の状態を示す説明図である。
図18は、第4の実施形態における再変換処理後の変換済データの構成例を示す説明図である。
100 計算機システム、101 主記憶装置、102 データ処理装置、102A データ管理部、151 主記憶部、152 不揮発性記憶部、153 ハードウエア初期化部、154 マッピングテーブル変更部、156 アドレス変換部、157 マッピングテーブル部、158 保護情報部
以下、本発明の実施形態を添付図面に基づいて説明する。
(第1の実施形態)
本実施形態にかかる計算機システム100は、図1に示すように主記憶装置101とデータ処理装置102とを有し、プログラム制御により動作する。この計算機システム100は、圧縮や暗号化された不揮発性記憶部152のデータ(本来、主記憶装置101中に備えられている)を、データ処理装置102を介して前述した主記憶装置101の主記憶部151上に(圧縮や暗号を解除して)展開するシステムである。
これを具体的に説明すると、上記計算機システム100は、プログラムを格納するROM等の不揮発性記憶部152と、プログラムを不揮発性記憶部152から受け取るRAM等の主記憶部151と、前述した不揮発性記憶部152および主記憶部151に格納されたプログラムを管理するメモリ管理部(OS)102Aを含むデータ処理装置102とを備えている。
メモリ管理部102Aは、不揮発性記憶部152に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御機能とを備えている。更に、このメモリ管理部102Aは、前述したプログラム格納制御機能の実行に際しては所定のデータ変換を施したプログラムをブロックの境界を跨がないように組み合わせるように機能すると共に、或るブロックへの最初のアクセスの際には当該ブロックに含まれる全てのデータを対応する主記憶部151のブロックへ展開する機能を備えている。
又、上述したメモリ管理部102Aは、機能的には、不揮発性記憶部152に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御機能とを備え、システム全体の起動後にOS及びアプリケーションのメモリアクセスを契機に作動し前述した不揮発性記憶部152に格納された所定のデータ変換が施されたプログラムを前述した主記憶部151に転送してこれを逆変換するプログラム逆変換機能と、不揮発性記憶部152に格納されたプログラムの物理アドレスを主記憶部151の物理アドレスに変更する物理アドレス変更機能と、前述した不揮発性記憶部152に格納され前記プログラムに割り当てられた所定容量の1つの物理アドレス内に,所定のタイミングで前記プログラムの複数の論理アドレス分の容量を割り当てる容量割り当て機能とを備えて構成されている。
このため、不揮発性記憶部152には、OS205およびアプリケーションプログラムの初期化処理後の主記憶イメージの一部をブロック単位でデータ変換されたイメージデータを記憶することができるので、各ブロックの変換済データをブロックサイズを越えないように適切にまとめ得るようになっている。これにより、計算機システム全体の起動時には、データ変換されていない主記憶イメージ部分からシステム起動がなされるので、OS205およびアプリケーションプログラムの起動直後と同じ状態になり、システムは立上がり直後の環境に復帰する。この時、システム起動が主記憶イメージ部分からなされるので、システム運用可能になるまでの運用中断状態は発生せず、システムの起動時間を効率良く短縮することができる。
更に、本発明では、具体的には、前述したメモリ管理部102Aが、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部156と、このアドレス変換部156の情報を保持するマッピングテーブル部157と、前記論理ブロックアドレスの本来の保護情報を保持する保護情報部158と、例外発生時に前記マッピングテーブル部157のエントリを更新するマッピングテーブル変更部154とを含む構成とした。
そして、かかる構成により、前述したデータ変換によって変換されたデータを不揮発性記憶部152にまとめるに際には、前述したようにブロックの境界を跨がないように組み合わせを考え、或るブロックへの最初のアクセスの際には当該ブロックに含まれる全てのデータを、対応する主記憶のブロックへ展開することを基本とする。
より具体的には、本実施形態における計算機システムは、前述したように少なくとも主記憶部151と不揮発記憶部152とデータ処理装置102によって構成され、更に、前記不揮発記憶部152には当該システムが起動した直後の前述した主記憶のイメージに対して所定の幅毎にデータ変換処理を施したデータが格納されている。そして、当該システムの起動後に未取得状態の主記憶ブロックへのアクセスが発生した場合に、前述した未取得状態の主記憶ブロックに対応する不揮発記憶部152のブロックに含まれる1以上のブロックのデータを前述した主記憶部151上のそれぞれに対応する未取得ブロックに展開して、当該未取得状態を取得状態に展開する、という動作が実行される。
換言すると、前述した不揮発性記憶部152には、システム起動直後の主記憶イメージに対して所定の幅毎にデータ変換処理を施したデータが格納されており、システム起動後に未取得状態の主記憶ブロックへのアクセスが発生した場合には、これに対応して前述したアドレス変換部156が例外処理を発生させる機能を備え、前述したマッピングテーブル変更部154が未取得の主記憶ブロックに対応する不揮発性記憶部152のブロックに含まれる1以上のブロックのデータを前記主記憶部151上にそれぞれ対応する未取得ブロックを展開して未取得状態を取得状態に変更する機能を備えている。これらの内容については、後述するマッピングテーブル変更部154,アドレス変換部156の説明箇所で詳述する。
又、本実施形態においては、前述した不揮発性記憶部152に格納され所定のデータ変換が施されたプログラムに対しては一律に保護モードNULLを設定すると共に、システム起動後のOS及びアプリケーションのメモリアクセスを契機に作動し不揮発性記憶部に格納されプログラムに所定のデータ変換を施したものに対して主記憶部上の物理アドレスを割り当てるようにした。これらの内容については、後述するマッピングテーブル157の説明箇所で詳述する。
更に本実施形態においては、前述した不揮発性記憶部152の所定サイズの物理アドレスに格納した複数のプログラムには、それぞれ主記憶部151の物理アドレスに対応した論理アドレス,総論理アドレス数,及びプログラムデータサイズを記入するようにした。更に本実施形態においては、前述した不揮発性記憶部の所定のデータ容量の物理アドレスの複数個を1単位とし、この1単位内に、複数の論理アドレスに割り当てられたプログラムを収容するように構成した。これらの内容についても、順次後述する。
以下、これを各構成要素毎に、具体的に詳述する。
(主記憶装置の構成)
主記憶装置101は、前述したように、主記憶部151と不揮発性記憶部152とを備えている。この内、主記憶部151は、CPUに計算させるプログラムを格納するメモリであり、DRAM,DDR−SDRAMなどが好適に用いられる。この主記憶部151は、不揮発性記憶部152以外の主記憶領域を構成する部分である。この主記憶部151としては、読み書き可能なメモリなら任意の種類のメモリであっても良く、一般的にはDRAM、SRAM等の揮発性のメモリに代えてMRAM(Magnetoresistive RAM),FeRAM(Ferroelectric RAM)、或いはフラッシュメモリ等の不揮発性のメモリを使用してもよい。
不揮発性記憶部152は、OS及びアプリケーションの初期化処理後の主記憶イメージ(以下「起動直後イメージ」と言う)を記憶する部分である。この不揮発性記憶部152は、不揮発なメモリなら任意の種類のメモリで良く、例えばROM等の読み出し専用の不揮発性メモリや、MRAMやFeRAMやフラッシュメモリ等の書き換え可能な不揮発性メモリが使用できる。起動直後イメージ(主記憶イメージ)の内容を変更する方法としては、不揮発性記憶部152の差し替え、又は不揮発性記憶部152が書き換え可能な場合は、ネットワークを利用したイメージファイルのダウンロードや、外部記憶媒体からのイメージファイルの読み込みなどの方法が使用可能である。
(主記憶装置101内のプログラムデータ形式)
図2に、前述した起動直後イメージ(主記憶イメージ:OSとアプリケーションの初期化終了後の主イメージ)242を、論理ブロック毎に、ROM等の不揮発性記憶部152上にデータ変換した例を示す。
起動直後イメージ(主記憶イメージ)242の生成方法は任意であるが、例えば、通常のシステム起動方法で起動した直後の主記憶部151からの主記憶イメージをダンプすることにより生成することができる。起動直後イメージ242(主記憶イメージ)の一部は、論理ブロック単位でデータ変換されてから、不揮発性記憶部152に記憶される。
ROM等の不揮発性記憶部152では、OS用の制御プログラムは、変換済イメージデータ290と非変換イメージデータ295の2つの領域に仮想的に分けられて保持されている。この内、変換済イメージデータ290は、起動直後イメージ242を論理ブロック単位で区切ったものに対して特定のデータ変換処理を施したものをまとめたものである。データ変換処理の例としては、圧縮や暗号化などが挙げられる。また、変換処理を施されたデータに対して逆変換を行なうことで元のデータに戻すことが可能であり、この逆変換処理のことを以下「展開」という。前述した変換済イメージデータ290は、後述する通り、起動後に動的に主記憶部151に展開してアプリケーション206の実行のために用いられる。また、変換済イメージデータ290の一部は、OS205を動作させるために使用される。
図3に、主記憶部151上の複数ブロックのデータを変換した後の不揮発記憶部(ROM)152上のデータ形式の例を示す。ここで、総ブロック数370はデータ変換された当該ブロックに含まれる論理ブロックの個数である。データサイズ380は当該論理ブロックの変換後のデータサイズを保持している。論理ブロックアドレス385は展開するべき論理ブロック番号である。変換済データ395はデータ変換を施された後のデータである。このように複数の論理ブロックが、データサイズ,論理ブロックアドレス,変換済データの一連の内容を保持し、ROM(不揮発性記憶部)152の1ブロックに含まれている。
ここで、主記憶部151上のブロック毎に変換処理を施したイメージデータをまとめるに際しては、従来の手法では論理ブロックアドレス順に連続的にまとめるように成っていた。しかしながら、本実施形態では、変換データのサイズを考慮しながら、物理ブロックサイズを越えないように任意の組み合わせを選ぶ。このときには、論理ブロックアドレスでは不連続なブロックを、不揮発性記憶部152上の1ブロック内でまとめることも可能である。
例えば、後述する図9の物理ブロックアドレス23には、後述する図12に示すように論理ブロックアドレス「2」と「4」という連続してないブロックがまとめられている。ここで、図12において「2/700/2」とあるのは、それぞれ「総ブロック数/デ−タサイズ/論理ブロックアドレス」(図3参照)であり、「3300/4」とあるのは「データサイズ・論理ブロックアドレス」(図3参照)である。
再び図2を参照する。前述した非変換イメージデータ295は、起動直後イメージ(主記憶イメージ)242の内、データ変換処理がされていない箇所であり、計算機システムの起動時にはこの箇所を使用して起動する。従って非変換イメージデータ295は初期動作イメージ224となる。
(データ処理装置102の構成)
データ処理装置102は、図1に示すように、前述した不揮発性記憶部152および主記憶部151に格納されたプログラムを管理するメモリ管理部(OS)102Aを含んで構成されている。
このメモリ管理部102Aは、具体的には、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部156と、このアドレス変換部156の情報を保持するマッピングテーブル部157と、前記論理ブロックアドレスの本来の保護情報を保持する保護情報部158と、例外発生時に前記マッピングテーブル部157のエントリを更新するマッピングテーブル変更部とを備えている。又、データ処理装置102は、ハードウェア初期化部153を備え、図1に示すように計算機システム100の起動時にシステム各部のハードウェアの初期化を行うように機能する。
(マッピングテーブル部157)
再び図1を参照すると、マッピングテーブル部157は、計算機システム100上で動作するOSやアプリケーションプログラム(両者を総称してプログラムと言う)が主記憶装置101を操作する際に指定するメモリアドレス(論理アドレス)を主記憶装置101に実際に割り当てられているメモリアドレス(物理アドレス)に変換するための情報、およびプロテクトモードを記憶する制御テーブルである。ここで、論理アドレスは論理ブロックアドレスとブロック内アドレスとによって構成され、物理アドレスは物理ブロックアドレスとブロック内アドレスとによって構成されている。
図4に、前述したマッピングテーブル部157のエントリの構成例を示す。このマッピングテーブル部157は、この図4に示すようなエントリの集合によって構成される。そして、この図4に示すように、1つのエントリには、論理ブロックアドレス161と物理ブロックアドレス162とプロテクトモード(保護モードのこと、以下同じ)163の組が保持されようになっている。
ここで、論理ブロックアドレス161は、論理アドレス空間を所定の大きさのブロックに分割したときにできる個々の論理ブロックを一意に識別するアドレスである。又、物理ブロックアドレス162は、物理アドレス空間を論理アドレス空間と同じ大きさのブロックに分割したときにできる個々の物理ブロックを一意に識別するアドレスである。ブロックとしては、ページと呼ばれるアーキテクチャ固有の単位を用いることで効率良く処理することが可能となるが、本発明はその単位に制限されるわけではない。
更に、プロテクトモード(保護モード)163は、読み込み専用のプロテクトモード、読み書き可能のプロテクトモード(保護モード)、NULL(割り当て無し)のプロテクトモード(保護モード)の何れかの値をとる。このプロテクトモード(保護モード)163は、計算機システム100で実行されるプログラムの本来の保護属性とは異なる擬似的なものであり、ROM(不揮発性記憶部152)の変換済イメージデータのブロックに関してはシステム起動時にNULL(割り当て無し)のプロテクトモードが一律に設定される。
即ち、プロテクトモード(保護モード)163がNULLの場合、そのエントリの論理ブロックアドレス161で定まる論理ブロックに対して、物理メモリブロックが未だ割り当てられていないことを示す。プロテクトモード163が読み込み專用或いは読み書き可能の場合、そのエントリの論理ブロックアドレス161で定まる論理ブロックに対して、そのエントリの物理ブロックアドレス162で定まる物理ブロックが割り当て済であり、かつ、そのブロックのプロテクトモードが読み込み專用あるいは読み書き可能であることを示す。
従って、物理ブロックアドレス欄は以下の2つの意味を持つ。第1の意味は、変換されたデータが存在する不揮発性記憶部152上のブロックアドレス(プロテクトモードがNULLのとき)であり、第2の意味は、主記憶装置101に実際に割り当てられた物理メモリのブロックアドレス(プロテクトモードがNULLでないとき)である。ここで、プロテクトモード163でNULLを指定する代わりに存在ビットなどを用いることも出来る。存在ビットは当該エントリに属する物理ブロックが存在するかどうかを示すビットである。この場合、後述する保護情報部158(図1)は存在せずともよく、プロテクトモード163が本来のブロック属性を保持している。後述する例外イベントは、この存在ビットの0/1に対して発生するか否かが決まる。
(保護情報部158)
再び図1を参照する。図1において、前述した保護情報部158は、計算機システム100で実行されるプログラムの保護属性を保持する制御テーブルである。図5に、この保護情報部158のエントリの構成例を示す。この図5に示すように、1つのエントリには、論理ブロックアドレス171と保護属性172の組が保持される。この内、保護属性172には、読み込み専用の保護属性と読み書き可能の保護属性とがあり、何れの保護属性が設定されるかは、論理ブロックアドレス171で特定されるブロックの本来の保護属性によって決定される。
(アドレス変換部156)
アドレス変換部156は、計算機システム100上で動作するプログラムがメモリ操作の際に指定する論理アドレスを物理アドレスに変換する機能と、プロテクトモード違反による例外を検出し例外処理を起動する機能とを有する。論理アドレスから物理アドレスへの変換およびプロテクトモード違反による例外検出は、主にマッピングテーブル部157を参照して行われる。
(マッピングテーブル変更部154)
再び図1を参照すると、マッピングテーブル変更部154は、アドレス変換部156で起動された例外処理を実行する機能を有する。例外処理では、保護情報部158の参照による本来の保護属性の判定、不揮発性記憶媒体から読み出して展開し主記憶部151への書き出し、及び、マッピングテーブル部157の更新などの処理が行われる。
図6は、上述したアドレス変換部156およびマッピングテーブル変更部154の処理の一例を示すフローチャートである。以下、これを詳述する。
まず、アドレス変換部156は、プログラムから指定されたメモリアクセスにかかる論理アドレス中のブロックアドレスでマッピングテーブル部157を検索し、図4に示した論理ブロックアドレス161が一致するエントリを取得する(ステップS100)。
次に、アドレス変換部156は、ステップS100で取得したエントリ中のプロテクトモード163がNULLか、読み込み専用か、読み書き可能かを判別する(ステップS101)。読み込み專用もしくは読み書き可能なプロテクトモード(ステップS101でノー)であれば、アクセスのモードをプロテクトモードとチェックして正当なアクセスか否かを確認し(ステップS102,S103)、不正なアクセスの場合は、メモリアクセスを拒否する等のエラー処理1を行う。一方、正当なアクセスの場合、アドレス変換部156は、ステップS100で取得したエントリ中の物理ブロックアドレス162を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(ステップS104)、その物理アドレスで特定される主記憶部151の個所をアクセスする(ステップS105)。
プロテクトモード163がNULL(ステップS101でイエス)の場合、アドレス変換部156は、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部154に通知して例外処理を起動する(ステップS106)。この例外イベントでは、ステップS100で取得したエントリ中の物理ブロックアドレス162をマッピングテーブル変更部154に通知する。
マッピングテーブル変更部154は、ステップS106に続いて、アドレス変換部156から通知された物理ブロックアドレス162で特定される不揮発性記憶部152のブロックを読み出して得られる論理ブロックの論理ブロックアドレス385で、保護情報部158を検索し、図6の論理ブロックアドレス171が一致するエントリの保護属性172を取得する(ステップS107)。
次に、変換済データ395を展開して主記憶部151の空きブロックにコピーする(ステップS108)。ここで、主記憶部151を構成するブロックの内、どのブロックが空き状態で、どのブロックが使用中かを管理する技術は、主記憶部151の各ブロック毎の使用状態を保持するテーブルで管理するなど、従来から知られている任意の方法を使用することができる。
更に、マッピングテーブル変更部154は、図4の論理ブロックアドレス161が論理ブロックアドレス385に一致するエントリをマッピングテーブル部157から検索し、そのエントリの物理ブロックアドレス112をステップS109におけるコピー先の主記憶部151のブロックの物理ブロックアドレスに書き換え、かつプロテクトモード163をそのブロック本来の保護属性(読み込み専用あるいは読み書き可能)に書き換える(ステップS109)。
不揮発性記憶部152から読み出した当該ブロックには、総ブロック数370に記述されている個数分だけ論理ブロック分の変換済みデータが保持されている。従って、総ブロック数370の個数分だけ、「保護情報部158(図1)の検索、データの展開、物理メモリの割り当てと書き出してマッピングテーブルの更新」という処理を繰り返す(ステップS109)。総ブロック数370に記述されている個数分の繰り返えし処理が終了(ステップS110でノー)すると、例外処理の完了をアドレス変換部156に通知する。アドレス変換部156は、マッピングテーブル変更部154から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理をステップS100から再度開始する。
(計算機システム100の概略動作)
図7は、本実施形態における計算機システム100の概略動作を示すフローチャートである。ここでは、計算機システム100の概略動作を図6〜図7を参照して説明する。
本実施形態における計算機システム100は、起動されると、前述したハードウェア初期化部153によって、まずハードウェアの初期化を行う(ステップS201)。本実施の形態の場合、マッピングテーブル部157および保護情報部158は、初期化済の状態で不揮発性記憶媒体の非変換部に含まれている。
初期化済みのマッピングテーブル部157では、図4のエントリ全てにおいて、論理ブロックアドレス161と物理ブロックアドレス162は設定済であり、プロテクトモード163は、非変換イメージデータである初期動作イメージ224に属するブロックのエントリではそのブロック本来の保護属性(読み込み専用あるいは読み書き可能)に設定され、初期動作イメージ224以外の起動直後イメージ242に属するブロックのエントリではNULLに設定されている。初期化済みの保護情報部158では、図5のエントリ全てにおいて、論理ブロックアドレス171と保護属性172は設定済みである。
次に、計算機システム100は、不揮発性記憶媒体の非変換部にある初期動作イメージ224からシステムを起動する(ステップS202)。この初期動作イメージ224は、OSやアプリケーションプログラムの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、初期動作イメージ224から起動してからシステム運用(ステップS203)が可能になる迄の運用中断状態は存在しない。
システム運用(ステップS203)の段階において、あるブロックに対してプログラムから初めてのアクセスが発生したときには、そこはNULLのプロテクトモード(保護モード)でマッピングされているので、アドレス変換部156が例外イベントを通知し、当該アクセスを一時保留する(図6のS106)。この例外イベントを受け取ったマッピングテーブル変更部154は、保護情報部158を参照してそのアクセスされた論理アドレスのブロックの属性を判断し(図6のステップS107)、正当なアクセスであれば、空きブロックを主記憶部151から割り当てて、不揮発性記憶部152の当該ブロックの内容を展開し、不揮発性記憶媒体の変換済部から当該ブロックのデータを取得してその内容を主記憶部151に書き出す(図6のステップS108)。更に、マッピングテーブル変更部154は、アクセスが発生した論理ブロックアドレスに本来の保護属性のプロテクトモードでマッピングするようマッピングテーブル部157に設定する。
当該物理ブロックに複数の論理ブロックの変換済データが含まれている場合は、それぞれも同様な流れで展開した後、一時保留されたアクセスの処理を図7のステップS100から再開させる。この結果、一時保留されたアクセスおよびその後の当該ブロックへのアクセスは、割り当てられた主記憶ブロックに対して実行される。このとき、ブロックの単位を小さくすることで展開時間が短くなり、システム運用が中断される時間を短くすることができる。
(計算機システム100の起動:初期動作イメージ224)
次に、初期動作イメージ224について更に詳しく説明する。本実施形態においては、初期動作イメージ224だけを使って計算機システム100のシステムを起動している。従って、初期動作イメージ224には、計算機システム100のシステムの起動に最小限必要なOSのプログラムが含まれていなければならない。反対に、無くてもシステムの起動が支障なく行えるOSの付加的な機能を実現するためのプログラムや、アプリケーションプログラムは、初期動作イメージ224に含まれていなくて良い。
又、これまでの説明から明らかなように、図6の処理(アドレス変換部156およびマッピングテーブル変更部154での処理)を実現するためのプログラム及データが計算機システム100上に存在しないと、システムの起動後、処理が立ち行かなくなってしまう。従って、マッピングテーブル変更部154をはじめとするOSの例外処理ハンドラ、ハードウェア管理のためのデバイスドライバ、マッピングテーブル部157及び保護情報部158の一部は、少なくとも、変換されていない初期動作イメージ224に含まれている必要がある。
このように、本実施形態1に於いては、ある物理ブロックからの読み出しは1度しか起こらず、また、展開する際に、2つ以上の物理ブロックから読み出す必要がなくなるという効果が得られる。
(計算機システム100の具体例)
図8に、本第1実施形態における計算機システム100の具体例(計算機システム200)を示す。
不揮発性記憶部152には、変換済イメージデータ290(図2参照)とデータ変換されていない初期動作イメージ224(図2参照)が予め記憶されている。初期動作イメージ224には、図1のマッピングテーブル部157及び保護情報部158が初期状態で含まれ、又マッピングテーブル変更部154がOS205の一機能として含まれている。
主記憶部151と不揮発性記憶部152で構成される主記憶装置101は、CPU201にメモリバス202を通じて接続されており、アドレス変換部156はCPU201に内蔵されている。CPU201には、他のハードウェア209と記憶装置203とが接続されており、記憶装置203にはBIOS207が設けられている。BIOS207にはIPL204が内蔵されている。
図9に主記憶装置101に割り当てられた物理ブロックアドレスの割り当て例を示す。実際には数多くのブロックが物理ブロックアドレスに割り当てられるが、図示した例は本発明の理解を容易にするためにブロック数を極めて小さくしてある。この主記憶部151には0〜20の物理ブロックアドレスが割り当てられ、不揮発性記憶部152には21〜30の物理ブロックアドレスが割り当てられている。
図10に、OS205が有する保護情報部158の内容例を示す。この図10における保護情報部158ではブロック数を小さくして開示したが、実際には数多くのブロックが存在する。この図10において、論理ブロックアドレス0〜2の各ブロックの保護属性は読み込み専用(R)に、論理ブロックアドレス3〜6の各ブロックの保護属性は読み書き可能(RW)になっている。又、図11(a)(b)に、マッピングテーブル変更前後のマッピングテーブル部157の例を、それぞれ示す。
(マッピングテーブル部157の初期状態)
図11(a)には、OS205が有する初期状態のマッピングテーブル部157の例を示す。この図11(a)にし示すマッピングテーブル部157ではブロック数を小さくして開示したが、実際には数多くのブロックが存在する。この図11(a)に示すように、マッピングテーブル部157の初期状態は、0〜6の論理ブロックアドレスに対して、不揮発性記憶部152の物理ブロックアドレス21〜25(図9)が対応付けられている。物理ブロックアドレス21〜25(図9)の5つの物理ブロックのうち、物理ブロックアドレス21〜22の2つの物理ブロックが初期動作イメージ224である。従って、論理ブロックアドレス0,1に対応する各物理ブロックの保護モード(プロテクトモード)には、本来の保護属性が初期設定されている。
これに対し、初期動作イメージ224以外の起動直後イメージ242の変換済イメージデータに属する論理ブロックアドレス2〜6の本来の保護属性は、それぞれR,RW,RW,RW,RWであるが(図10参照)、運用開始後に初めてアクセスがあった際に保護属性違反をわざと起こして例外処理を起動するため、すべてNULLの保護モードが初期設定されている。
この図11(a)の初期の(変更前の)マッピングテーブルを更に具体的に説明するために、図12に不揮発性記憶部152に含まれる初期動作イメージ224(図8)と変換済イメージデータ290(図8)の内容例を示す。この図12を参照すると、物理ブロックアドレス21,22は、既に図11(a)において説明したとおり、初期動作イメージ224となっており、この部分は圧縮や暗号化などのデータ変換は施されていない。
また、図12の例では物理、論理とも、ブロックサイズは4096バイトである。更に、物理ブロックアドレス23には2つの論理ブロックアドレスの変換済みデータが含まれている。1つは図11(a)に示す論理ブロックアドレス「2」のデータであり、データ変換処理によって700バイトのデータになっている。もう一つは図11(a)に示す論理ブロックアドレス「4」のデータであり、何れもデータ変換処理によって3300バイトのデータになっている。更に、物理ブロックアドレス24にも2つの論理ブロックアドレスの変換済みデータが含まれている。それぞれ、論理ブロックアドレス「3」の1000バイトのデータと、論理ブロックアドレス「6」の2500バイトのデータである。
これら物理ブロックアドレス23と24の間には78バイトの空き空間が存在し、ブロックサイズを越えないように複数ブロックをまとめてある。これは、複数ブロックを連続してまとめることによってブロックサイズを越えることを回避し、例外イベント処理の際に、2つの物理ブロックを読み出してTLBエントリを2つ使用することを回避するためである。
尚、図12には論理ブロック5は図示されていないが、その理由は、論理ブロック5が物理ブロック21〜24以外に割り当てられているためである。
(計算機システム200の詳細な動作(マッピングテーブルの変更を含む))
以下、図6〜図7および図10〜図11(a)(b)を参照して、上述した計算機システム200の詳細な動作について説明する。
まず、図7のステップS201において、計算機システム200は、起動されると前述した主記憶部151のクリア等のハードウェアの初期化を行う。このとき、初期動作イメージ224には、初期設定済のマッピングテーブル部157のデータ及び保護情報部158のデータ含まれているため、計算機システム200上において自動的にマッピングテーブル部157のデータが図11(a)のように設定され、また図10に示したような状態の保護情報部158のデータが設定されることになる。更に、初期動作イメージ224には、マッピングテーブル変更部154の機能が含まれているため、その機能の利用が可能となる。
次に、図7のステップS202において、CPU201が、初期動作イメージ224からシステムを起動する。具体的には、IPL204がCPU201内のプログラムカウンタにシステムの運用を開始する際に最初に実行する命令の論理アドレスを設定し、その命令から実行を開始させることにより、システムの運用を開始させる。最後に、図7のステップS203において、CPU201上で実行されるプログラムが主記憶部151をアクセスし、システム運用が行なわれる。
システム運用動作については、例として以下のようなアクセスを想定する。
(1)論理ブロックアドレス「2」を持つ論理アドレスへの最初の読み出しアクセス。
(2)論理ブロックアドレス「2」を持つ論理アドレスへの2回目以降の読み出しアクセス。
(3)論理ブロックアドレス「2」を持つ論理アドレスへの読み出しアクセスの後の、論理ブロックアドレス「4」を持つ論理アドレスへの書き込みアクセス。
(4)論理ブロックアドレス「1」を持つ論理アドレスへの読み出しアクセス。
以下、図6に基づいて計算機システム200のシステム運用動作について説明する。
(1).先ず、論理ブロックアドレス「2」(図10、図11(a)を持つ論理アドレスへの最初の読み出しアクセスが発生した際の動作を説明する。
この場合、アドレス変換部156は、論理ブロックアドレス「2」でマッピングテーブル部157を検索し、図11(a)中の「論理ブロックアドレス2、物理ブロックアドレス23、保護モード(プロテクトモード)NULL」のエントリを取得する(図6のステップS100)。
この時、保護モードがNULLであるので(図6のステップS101でイエス)、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部154に通知して例外処理を起動する(図6のステップS106)。このマッピングテーブル変更部154は、論理ブロックアドレス「2」で保護情報部158を検索し、図11(a)の論理ブロックアドレス2を持つエントリの保護モード(プロテクトモード)の保護属性「R」を取得する(図6のステップS107)。続いて、論理ブロックアドレス「2」に対応する物理ブロック「23」で特定されるROM(不揮発性記憶部152)の当該ブロックから700バイトのデータ(図12)を読み出してRAM上に展開を行ない、4096バイトのデータを主記憶151上の空いている物理ブロック(「13」が割り当てられたとする)に書き出す(図6のステップS108)。
次に、マッピングテーブル変更部154は、図11(b)に示されるように論理ブロックアドレス「2」を持つエントリ中の不揮発性記憶部152上の物理ブロックアドレス「23」を、主記憶部(RAM)151上の物理ブロックアドレス「13」に書き換え、保護モードをNULLからRに書き換える(図6のステップS109)。
更に、当該物理ブロック(変更前は「23」、変更後も「23」)には複数の論理ブロックが変換されたデータを含んでいるので、例外イベントが発生した変更前の物理ブロックアドレス「23」以外の論理ブロックのデータに対しても展開及び物理ブロックの割り当てとデータの書き出し、マッピングテーブルの更新を行なう。つまり、論理ブロック「4」を保護情報部から探して(図6のステップS107)、3700バイトのデータを展開して4096バイトのデータとして主記憶部151の空いている物理ブロック(「14」が割り当てられたとする)に書き出し(図6のステップS108)、マッピングテーブル変更部154が、図11(b)に示されるように論理ブロックアドレス「4」を持つエントリのROM上の物理ブロックアドレス「23」をRAM上の物理アドレス「14」に書き換え、これのよって、保護モード(プロテクトモード)をNULLからRWに書き換える(図6のステップS109)。
物理ブロックに含まれる全ての論理ブロックの展開と主記憶部151への書き出し及びマッピングテーブル部157の更新が終わった後、例外処理の完了をアドレス変換部156に通知する(図6のステップS110)。
アドレス変換部156は、マッピングテーブル変更部154から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理を図6のステップS100から再開する。そして、このアドレス変換部156は、論理ブロックアドレス「2」でマッピングテーブル部157を検索すると、マッピングテーブル部157は図11(a)の状態から図11(b)の状態に更新されているので、今度は「論理ブロックアドレス2、物理ブロックアドレス13、プロテクトモードR」のエントリを取得する(図6のステップS100)。
続いて、アドレス変換部156は、プログラムから指定されたメモリアクセスが、プロテクトモードがRであり(図6のステップS101でノー)、読み込みアクセスなので(図6のステップS102でノー)、保護違反なしと判断し、取得したエントリ中の主記憶部151上の物理ブロックアドレス「13」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(図6のステップS104)、その物理アドレスで特定される当該主記憶部151の個所をアクセスして読み出し、プログラムに値を返却する(ステップS105)。
このように、システムの運用開始後、保護属性がNULLのブロックに対して最初のアクセスが発生した場合、そのブロックのデータがROM(不揮発性記憶部152)から読み出されて展開されてRAM(主記憶部151)に書き出され、データが読み込まれる。ここでは、読み込みを例にしたが、書き出しアクセスの場合も同様である。
(2).次に、論理ブロックアドレス「2」を持つ論理アドレスへの2回目以降の読み込みアクセスが発生した場合の動作を説明する。
アドレス変換部156は、論理ブロックアドレス「2」でマッピングテーブル部157を検索すると、マッピングテーブル部157は図11(a)の状態から図11(b)の状態に更新されているので、主記憶部151内で「論理ブロックアドレス2、物理ブロックアドレス13、保護モードR」のエントリを取得する(図6のステップS100)。
続いて、アドレス変換部156は、プログラムから指定されたメモリアクセスが、保護モードが「R」であり(図6のステップS101でノー)、読み込みアクセスなので(図6のステップS102でノー)、取得したRAM(主記憶部151)内の物理ブロックアドレス「13」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(図6のステップS104)、その物理アドレスで特定される主記憶部151の個所をアクセスして読み込み、プログラムに値を返却する(図6のステップS105)。
このように、システムの運用開始後、初期動作イメージ224以外の起動直後イメージ242に属するブロックに対して2回目以降のアクセスが発生した場合、初回のような展開及び物理ブロックの割り当て動作は最早必要ないため、主記憶部151上に存在するデータが直ちに更新される。
(3).次に、論理ブロックアドレス「4」を持つ論理アドレスへの書き出しアクセスが発生した場合の動作を説明する。
アドレス変換部156は、プログラムから指定された論理ブロックアドレス「4」でマッピングテーブル部157を検索し、図11(b)に示すように、RAM(主記憶151)内で「論理ブロックアドレス「4」、物理ブロックアドレス「14」、保護モード「RW」のエントリを取得する(図6のステップS100)。
既に保護モードは「NULL」から「RW」に変更されているので(図6のステップS102でノー)、アドレス変換部156はプログラムから指定されたメモリアクセスが書き込みアクセスであり(ステップS102でイエス)、保護モードが「RW」(図6のステップS103でイエス)なので、取得したエントリ中の物理ブロックアドレス「14」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(図6のステップS104)、その物理アドレスで特定される主記憶部151の個所をアクセスし、プログラムから渡されたデータを書き込む(図6のステップS105)。
このように、既に論理ブロックアドレス「2」の例外処理時に、論理ブロックアドレス「4」の展開処理も行なわれているため、論理ブロックアドレス「4」に対する最初のアクセス発生時にも例外イベントは発生せずにメモリアクセスが実行される。 既に例外イベントを発生した論理ブロックに含まれていたその他の論理ブロックのデータに関しても同様であり、つまり、変換済データを含むとある物理ブロックに対する読み込みと展開の処理は一度しか行なわれない。
(4).最後に、論理ブロックアドレス「1」を持つ論理アドレスへの読み出しアクセスが発生した場合の動作を説明する。
アドレス変換部156は、プログラムから指定された論理ブロックアドレス「1」でマッピングテーブル部157を検索し、図11(b)の「論理ブロックアドレス「1」、物理ブロックアドレス「22」、保護モード「R」のエントリを取得する(図6のステップS100)。
このエントリの保護モードが「NULL」ではなく「R」なので(図6のステップS101でNO)、アドレス変換部156は、プログラムから指定されたメモリアクセスが読み出しアクセスであるため(図6のステップS102でNO)、取得したエントリ中の物理ブロックアドレス「22」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(図6のステップS104)、その物理アドレスで特定される主記憶部151の個所をアクセスし、読み出したデータをプログラムに返却する(図6のステップS105)。
このように、初期動作イメージ224のブロックに対し、プグラムが指定した読み込みアクセスでは、例外イベントが発生しない。
以上のように、上記第1の実施形態によれば、ある物理ブロックからの読み出しは1度しか起こらず、また、展開する際に、2つ以上の物理ブロックから読み出す必要がなくなるという効果が得られる。更に、この第1の実施形態では、起動直後イメージ242をデータ変換して不揮発性記憶部152に保持したが、この方式は起動時間の短縮化以外の目的にも使用できる。例えばファイルシステムを、不揮発性記憶部152に圧縮や暗号化するなどして保持する場合にも利用可能である。
(第2の実施形態)
上述した第1の実施の形態では、マッピングテーブル157の更新の際に保護情報部158を使っていたが、図13に示すように、変換済データ内で各論理ブロックの本来のプロテクトモード(保護モード)を保持している場合には、図1における保護情報部158を参照しなくてよい。
この場合、この第2の実施形態のおける計算機システムの構成は、以下の如くなる。即ち、プログラムを格納する不揮発性記憶部152と、前記プログラムを不揮発性記憶部152から受け取る主記憶部151と、これら揮発性記憶部152および主記憶部151に格納されたプログラムを管理するメモリ管理部(OS)を含むデータ処理装置102とを備えている。この内、前述したメモリ管理部が、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部と、このアドレス変換部の情報を保持するマッピングテーブル部と、例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更部とを備えた構成とする。そして、前述したマッピングテーブル部が、前記変換済データ内に各論理ブロックの本来のプロテクトモード(保護モード)を保持していることを特徴とする。
このように、本第2の実施形態では、前述した第1の実施の形態でマッピングテーブル157の更新の際に保護情報部158を使っていたが、図13に示すように、変換済データ内で各論理ブロックの本来のプロテクトモード(保護モード)を保持している場合には、保護情報部158を参照しなくてよい。
即ち、本第2の実施形態では、この図13に示す保護モード(プロテクトモード)390を参照して、前述したマッピングテーブル157の保護モード(プロテクトモード)163を更新する。従って、この場合には、図1の計算機システム100において保護情報部158が省略され、図6の例外イベント処理の際のステップS107が省略される。図13の例の変換済データ部分は、保護情報属性(保護モード属性)を含んだものとなり(図14)、データ処理の効率を高めることができ、システムの高速化が高められる。
この第2の実施形態でも、前述した第1の実施形態の場合と同様に、ある物理ブロックからの読み出しは1度しか起こらず、また、展開する際に2つ以上の物理ブロックから読み出す必要がなくなる。このとき、前述した第1の実施形態とは異なり、変換済データに保存されているプロテクトモードの情報からマッピングテーブル157の保護モード163を更新するため、保護情報部158が必要ない。
ここで、前述した計算機システムにおいては、不揮発性記憶部152の所定サイズの物理アドレスに格納した複数のプログラムには、それぞれ主記憶部151の物理アドレスに対応した論理アドレス,総論理アドレス数,プログラムデータサイズ,及び保護モードを記入するように構成してもよい。
(第3の実施形態)
前述した第1の実施形態では、各論理ブロックのデータを変換した後の大きさが、物理ブロックの大きさ(図14の場合は4096バイト)よりも小さくなるために、1つの物理ブロックに複数の論理ブロックを格納することが出来た。
この第3の実施形態では、データを変換した後のサイズが元の4096バイトよりも大きくなることに対処する。この場合、図15に示すように、複数の論理ブロックをまとめる大きさを、元々の物理ブロックサイズの任意の整数倍とする。図15の例では16384バイト(元々の4倍)である。
このため、当該ブロックに対して始めてのアクセスが発生して例外イベントが呼び出されると、マッピングテーブルに記入されている物理ブロックアドレスから始まって4ブロック分のデータが読み出されて、3つの論理ブロックに展開される(変換処理を施されたデータに対して逆変換を行なうことで元のデータに戻すことが可能であり、この逆変換処理のことを「展開」と称する)。
起動直後イメージ242の各論理ブロックのデータを変換処理してまとめるときにも、変換後のデータサイズを吟味しながら、適切なブロックサイズを選択してまとめることを行なう。このとき、決定したブロックサイズ(16338バイト)の境界を跨がないようにして、次のブロックの作成を開始する。図15の例では、58バイト分のデータ無しの空き領域が存在する。ここで、論理ブロックをまとめる際の物理ブロックサイズは1つのシステムで固定サイズではなくても良い。即ち、まとめるブロックサイズは物理ブロックサイズの任意の整数倍であればよく、2倍、3倍、4倍、5倍などが物理ブロックに応じて変動してもよい。
この第3の実施形態においては、データ変換によってデータサイズが本来の物理ブロックサイズよりも大きくなった場合にも、前述した第1の実施の形態と同様に、ある物理ブロックからの読み出しは1度しか起こらないという効果が得られる。
(第4の実施形態)
この第4の実施形態における計算機システムにあっては、前述した不揮発性記憶部に格納された所定のデータ変換が施された前記プログラムに対して、一定時間間隔で、更に別内容の所定のデータ変換を施すようにした点に特徴を有する。
即ち、前述した第3の実施の形態では、変換済データの展開後は、そのままデータを利用し続けていた。一方、この第4の実施形態では、主記憶部151上に展開されたデータに対して、再度、データ変換処理を施すことを行なう。例えば主記憶部151上にあるデータを暗号化して保持したい場合などは、一定時間間隔でデータの再暗号化を施す。
図16に、この第4実施形態における再変換処理のフローチャートを示す。この場合、実際の動作は、まず、マッピングテーブル部を検索して再変換できるブロックのエントリを探す(ステップS300)。再変換できるブロックがなかった場合(ステップS301でノー)は終了となる。
一方、再変換できるブロックがあった場合(ステップS301でイエス)、その論理ブロックを再変換処理してバッファ(図示せず)に貯える(ステップS302)。そして、既にバッファにある変換済みデータと併せて、ブロックサイズを越えるようであれば(ステップS303で、イエス)、当該ブロックの再変換データを破棄し、次のエントリを探す。これに対し、既にバッファにある変換済みデータと併せてもブロックサイズを越えなければ(ステップS303でノー)、当該ブロックのマッピングテーブルを更新する(ステップS304)。
又、前述したバッファの空き容量が小さくなった場合(ステップS305で、イエス)、主記憶部151の空き領域に書き出す(ステップS306)。このとき、バッファに貯えられたいずれかのブロックの物理ブロック上に上書きすることも可能である。尚、前述したバッファから書き出す判断のアルゴリズムは、本第4の実施形態ではバッファの空き容量が小さくなった場合としたが、既にある任意のアルゴリズムを使ってよい。
次に、この第4実施形態におけるマッピングテーブルの変更に付いて一例を挙げて説明する。図17(a)は、コンピュータ200が保持している初期化時(変更前)のマッピングテーブルの状態である。今、論理ブロックアドレス3のデータを再変換処理し、図18のように900バイトの変換済データがバッファに貯えられたとする。
次に、論理ブロックアドレス4のデータを再変換処理してバッファに貯える。これによって、3900バイトの変換済データとなったため、図18に示す総ブロック数2、データサイズ900、論理ブロックアドレス3、及び、データサイズ3000、論理ブロックアドレス4、の一連の管理データを書き込んで、主記憶部151上に書き出す。
このとき、図17(b)に示すように、論理ブロックアドレスが使用していた主記憶部151上の物理ブロックアドレス15に書き出すので、論理ブロックアドレス3及び4の物理ブロックアドレスを15に変更し、保護モード(プロテクトモード)をNULLに変更する。
このように、上記第4の実施形態によれば、一定時間ごとにデータ変換処理が行なわれるため、データを主記憶部151上にそのままの形で展開し続けることがなくなり、データを盗み見られたときなどの際の安全性を高めることができる。
(本実施形態における計算機システムのメモリ管理方法)
次に、本実施形態における計算機システムのメモリ管理方法を、添付図面に基づいて説明する。
本実施形態における計算機システムのメモリ管理方法は、不揮発性記憶部152に格納されたプログラムを主記憶部151に転送するように構成された計算機システムのメモリ管理方法において、不揮発性記憶部152に、前記プログラムに所定のデータ変換を施したものと前記プログラムに所定のデータ変換を施さないものとを格納する第1のステップと、計算機システムの起動後に、OS及びアプリケーションのメモリアクセスを契機に作動し前述した不揮発性記憶部152に格納されているプログラムの内の所定のデータ変換を施したプログラムを主記憶部151に転送して当該所定のデータ変換の逆変換を施す第2のステップと、不揮発性記憶部152に格納されたプログラムの物理アドレスを主記憶部151の物理アドレスに変更する第3のステップと、前述した不揮発性記憶部152に格納された前記プログラムに割り当てられた所定容量の1つの物理アドレスを含むブロック内のデータの展開のために複数の論理ブロック分の容量を割り当てる第4のステップとを備えている。
このように構成すると、前述した第1の実施形態の場合と同等の効果を奏する計算機システムのメモリ管理方法を提供することができ、同時に、前述した計算機システムにかかる発明を上記手順をもって効率良く且つ確実に実施し得るという効果を奏する。
ここで、本実施形態では、上述した第1のステップと第2のステップの間に、前述した不揮発性記憶部152に格納されプログラムに所定のデータ変換が施されたものに対し一律に保護モードNULLを設定するステップを設けるようにしてもよい。
又、本実施形態では、この計算機システムのメモリ管理方法において、前述した不揮発性記憶部152の所定サイズの物理アドレスに格納した複数のプログラムに対して、それぞれ前記主記憶部151の物理アドレスに対応する論理アドレス,総論理アドレス数,及びプログラムデータサイズを記入するステップを前述した第1のステップに併設するように構成するようにしてもよい。
更に、本実施形態では、この計算機システムのメモリ管理方法において、前述した不揮発性記憶部152の所定サイズの物理アドレスに格納した複数のプログラムに対して、それぞれ主記憶部151の物理アドレスに対応する論理アドレス,総論理アドレス数,プログラムデータサイズ,及び保護モード(プロテクトモード)を記入するステップを、前述した第1のステップに併設してもよい。また、前述した不揮発性記憶部152に格納されたプログラムの内の所定のデータ変換が施されたプログラムを対象として一定時間間隔で別内容の所の定変換を施すステップを、前述した第1のステップに併設してもよい。
尚、上記した計算機システムのメモリ管理方法についての具体的な内容については、前述した第1乃至第4の各実施形態内で詳述した。
(本実施形態における計算機システムのメモリ管理プログラム)
次に、本実施形態における計算機システムのメモリ管理プログラムを、添付図面に基づいて説明する。
本実施形態における計算機システムのメモリ管理プログラムは、不揮発性記憶部152に格納されたプログラムを主記憶部151に転送するように構成された計算機システムの動作を制御するコンピュータに、前述した不揮発性記憶部152に対してプログラムに所定のデータ変換を施したものとプログラムに所定のデータ変換を施さないものとを格納する手順と、システムの起動後にOS及びアプリケーションのメモリアクセスを契機に作動し前述した不揮発性記憶部152に格納されているプログラムの内の所定のデータ変換を施したプログラムを主記憶部151に転送して当該所定のデータ変換の逆変換を施す手順と、前記不揮発性記憶部152に格納されたプログラムの物理アドレスを主記憶部151の物理アドレスに変更する手順と、前記不揮発性記憶部152に格納されたプログラムに割り当てられた所定容量の1つの物理アドレスを含むブロック内のデータの展開ために複数の論理アドレス分の容量を割り当てる手順と、をコンピュータに実行させるためプログラムである。このように構成すると、前述した第1の実施形態の場合と同等の効果を奏する計算機システムのメモリ管理プログラムを提供することができる。
ここで、本実施形態では、前述した計算機システムのメモリ管理プログラムにおいて、前述した不揮発性記憶部152に格納されプログラムに所定のデータ変換が施されたものには対して一律に保護モードNULLを設定する手順を、前記コンピュータが実行し得るように組み込んでもよい。
又、本実施形態では、前述した計算機システムのメモリ管理プログラムにおいて、前述した不揮発性記憶部152の所定サイズの物理アドレスに格納した複数のプログラムに対して、それぞれ主記憶部151の物理アドレスに対応する論理アドレス,総論理アドレス数,及びプログラムデータサイズを又はこれらと保護モードとを記入する手順を、前記コンピュータが実行し得るように組み込んでもよい。
更に、本実施形態では、前述した計算機システムのメモリ管理プログラムにおいて、前述した不揮発性記憶部152に格納されたプログラムの内の所定のデータ変換が施されたプログラムを対象として、一定時間間隔で別内容の所の定変換を施す手順を、前記コンピュータが実行し得るように組み込んでもよい。
尚、上記した計算機システムのメモリ管理プログラムに関する具体的な内容については、前述した第1乃至第4の各実施形態内で、これと同等の内容を計算機のメモリ管理システムにおける動作および機能として具体的に詳述した。
以上のように、本発明によると、データ変換されたブロックに含まれる全ブロックのデータを、どれかのブロックの展開の際に一回で展開するようにしたので、ROM等の不揮発性記憶部の1つのブロックからは1回しか読み出せないこととなりる。これにより、従来例(背景技術)で生していた不都合(2回以上読み出すことがあり起動時間が長いという欠点)を確実に且つ効率よく改善することができることとなった。また、本発明によれば、不揮発性記憶媒体のデータを主記憶部上に展開する場合に、不揮発性記憶媒体の複数ブロックを読み出す必要がなく、TLBエントリも1つしか使用しないことである。その理由は、変換された不揮発性記憶媒体のデータが複数のブロックにまたがって保存されることがないからである。
本発明は、圧縮や暗号化などの変換処理を施したデータを不揮発性記憶媒体に格納して動的に展開する用途に適用できる。これによって、必要となる不揮発性記憶媒体の容量を削減したり、機密性の高い内容を不揮発性記憶媒体に格納して利用できる。

Claims (18)

  1. 不揮発性記憶部と、主記憶部と、前記不揮発性記憶部および主記憶部に格納されたプログラムを管理するメモリ管理部を含むデータ処理装置とを備え、不揮発性記憶部に格納されたプログラムを主記憶部に転送する構成の計算機システムにおいて、
    前記メモリ管理部が、
    前記不揮発性記憶部に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御機能と、
    前記プログラム格納制御機能の実行に際し、所定のデータ変換を施したプログラムの複数の論理ブロック、物理ブロックの境界を跨がないように組み合わせて前記不揮発性記憶部に格納すると共に、或る物理ブロックへの最初のアクセスの際には当該物理ブロックに含まれる全ての変換済データの物理ブロックを対応する前記主記憶部のブロックへ展開する機能を備えることを特徴とする計算機システム。
  2. 前記メモリ管理部が、
    システム全体の起動後にOSおよびアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納されたプログラムを前記主記憶部に転送してこれを逆変換するプログラム逆変換機能と、
    前記不揮発性記憶部に格納されたプログラムの物理アドレスを前記主記憶部の物理アドレスに変更する物理アドレス変更機能と、
    前記不揮発性記憶部に格納され前記プログラムに割り当てられた所定容量の1つの物理アドレスを含むブロック内のデータの展開のために複数の論理ブロック分の容量を割り当てる容量割り当て機能とを備えることを特徴とする請求項1に記載の計算機システム。
  3. 前記メモリ管理部が、
    プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部と、
    このアドレス変換部の情報を保持するマッピングテーブル部と、
    前記論理ブロックアドレスの本来の保護情報を保持する保護情報部と、例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更部とを備えることを特徴とする請求項1に記載の計算機システム。
  4. 前記メモリ管理部を、プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換部と、このアドレス変換部の情報を保持するマッピングテーブル部と、例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更部とを備えた構成とし、
    前述したマッピングテーブル部が、前記変換済データブロック内に各論理ブロックの本来のプロテクトモードを保持することを特徴とする請求項1に記載の計算機システム。
  5. 前記不揮発性記憶部には、システム起動直後の前記主記憶のイメージに対して所定の幅毎にデータ変換処理を施したデータが格納されており、
    システム起動後に未取得状態の主記憶ブロックへのアクセスが発生した場合には、これに対応して前記アドレス変換部が例外処理を発生させる機能を有し、前記マッピングテーブル変更部が前記未取得の主記憶ブロックに対応する不揮発性記憶部のブロックに含まれる1以上のブロックのデータを前記主記憶部上にそれぞれ対応する未取得ブロック展開して未取得状態を取得状態に変更する機能を備えることを特徴とする請求項3又は請求項4に記載の計算機システム。
  6. 前記不揮発性記憶部に格納され所定のデータ変換が施された前記プログラムに対しては一律に保護モードNULLを設定すると共に、前記システム起動後のOS及びアプリケーションからの要求に基づいて、前記不揮発性記憶部に格納され前記プログラムに所定のデータ変換を施したものに対しては前記主記憶部上の物理アドレスを割り当てることを特徴とする請求項1又は請求項2に記載の計算機システム。
  7. 前記不揮発性記憶部の所定サイズの物理アドレスに格納した複数のプログラムには、それぞれ前記主記憶部の物理アドレスに対応した論理アドレス,総論理アドレス数,及びプログラムデータサイズを記入することを特徴とする請求項2から請求項5の何れか1項に記載の計算機システム。
  8. 前記不揮発性記憶部の所定サイズの物理アドレスに格納した複数のプログラムには、それぞれ前記主記憶部の物理アドレスに対応した論理アドレス,総論理アドレス数,プログラムデータサイズ,及び保護モードを記入することを特徴とする請求項2に記載の計算機システム。
  9. 前記不揮発性記憶部の所定容量の物理アドレスの複数個を1単位とし、この1単位内に、複数の論理アドレスに割り当てられた前記プログラムを収容するように構成したことを特徴とする請求項1から請求項8の何れか1項に記載の計算機システム。
  10. 前記不揮発性記憶部に格納された所定のデータ変換が施された前記プログラムに対して、一定時間間隔で、更に別内容の所定のデータ変換を施すことを特徴とする請求項1から請求項8の何れか1項に記載の計算機システム。
  11. 不揮発性記憶部と、主記憶部と、前記不揮発性記憶部および主記憶部に格納されたプログラムを管理するメモリ管理部を含むデータ処理装置とを備え、不揮発性記憶部に格納されたプログラムを主記憶部に転送するように構成された計算機システムによるメモリ管理方法であって、
    前記メモリ管理部が、
    前記不揮発性記憶部に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御ステップと、
    前記プログラム格納制御ステップの実行に際し、所定のデータ変換を施したプログラムの複数の論理ブロック、物理ブロックの境界を跨がないように組み合わせて前記不揮発性記憶部に格納すると共に、或る物理ブロックへの最初のアクセスの際には当該物理ブロックに含まれる全ての変換済データの物理ブロックを対応する前記主記憶部のブロックへ展開するステップとを有することを特徴とする計算機システムのメモリ管理方法。
  12. 前記メモリ管理部が、
    システム全体の起動後にOSおよびアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納されたプログラムを前記主記憶部に転送してこれを逆変換するプログラム逆変換ステップと、
    前記不揮発性記憶部に格納されたプログラムの物理アドレスを前記主記憶部の物理アドレスに変更する物理アドレス変更ステップと、
    前記不揮発性記憶部に格納され前記プログラムに割り当てられた所定容量の1つの物理アドレスを含むブロック内のデータの展開のために複数の論理ブロック分の容量を割り当てる容量割り当てステップと
    を有することを特徴とする請求項11に記載の計算機システムのメモリ管理方法。
  13. 前記メモリ管理部が、
    プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換ステップと、
    このアドレス変換ステップの情報をマッピングテーブル部に保持するステップと、
    前記論理ブロックアドレスの本来の保護情報を保護情報部に保持するステップと、
    例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更ステップと
    を有することを特徴とする請求項11に記載の計算機システムのメモリ管理方法。
  14. 前記メモリ管理部が、
    プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換ステップと、
    このアドレス変換ステップの情報をマッピングテーブル部に保持するステップと、
    例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更ステップとを有し、
    前述したマッピングテーブル部に、前記変換済データブロック内に各論理ブロックの本来のプロテクトモードを保持することを特徴とする請求項11に記載の計算機システムのメモリ管理方法。
  15. 不揮発性記憶部と、主記憶部と、前記不揮発性記憶部および主記憶部に格納されたプログラムを管理するメモリ管理部を含むデータ処理装置とを備え、不揮発性記憶部に格納されたプログラムを主記憶部に転送するように構成された計算機システムを構成するコンピュータ上で動作するメモリ管理プログラムであって、
    前記メモリ管理部に、
    前記不揮発性記憶部に所定のデータ変換を施したプログラムと所定のデータ変換を施さないプログラムとを格納するプログラム格納制御処理と、
    前記プログラム格納制御処理の実行に際し、所定のデータ変換を施したプログラムの複数の論理ブロック、物理ブロックの境界を跨がないように組み合わせて前記不揮発性記憶部に格納すると共に、或る物理ブロックへの最初のアクセスの際には当該物理ブロックに含まれる全ての変換済データの物理ブロックを対応する前記主記憶部のブロックへ展開する処理と
    を実行させることを特徴とするメモリ管理プログラム。
  16. 前記メモリ管理部に、
    システム全体の起動後にOSおよびアプリケーションのメモリアクセスを契機に作動し前記不揮発性記憶部に格納されたプログラムを前記主記憶部に転送してこれを逆変換するプログラム逆変換処理と、
    前記不揮発性記憶部に格納されたプログラムの物理アドレスを前記主記憶部の物理アドレスに変更する物理アドレス変更処理と、
    前記不揮発性記憶部に格納され前記プログラムに割り当てられた所定容量の1つの物理アドレスを含むブロック内のデータの展開のために複数の論理ブロック分の容量を割り当てる容量割り当て処理と
    を実行させることを特徴とする請求項15に記載のメモリ管理プログラム。
  17. 前記メモリ管理部に、
    プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換処理と、
    このアドレス変換処理の情報をマッピングテーブル部に保持する処理と、
    前記論理ブロックアドレスの本来の保護情報を保護情報部に保持する処理と、
    例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更処理と
    を実行させることを特徴とする請求項15に記載のメモリ管理プログラム。
  18. 前記メモリ管理部に、
    プログラムからのメモリアクセスがあった場合に作動し論理ブロックアドレスから物理ブロックアドレスに変換するアドレス変換処理と、
    このアドレス変換処理の情報をマッピングテーブル部に保持する処理と、
    例外発生時に前記マッピングテーブル部のエントリを更新するマッピングテーブル変更処理とを実行させ、
    前述したマッピングテーブル部に、前記変換済データブロック内に各論理ブロックの本来のプロテクトモードを保持することを特徴とする請求項15に記載のメモリ管理プログラム。
JP2007511258A 2005-03-31 2006-03-30 計算機システム,メモリ管理方法,およびそのプログラム Active JP5071798B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007511258A JP5071798B2 (ja) 2005-03-31 2006-03-30 計算機システム,メモリ管理方法,およびそのプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005104932 2005-03-31
JP2005104932 2005-03-31
JP2007511258A JP5071798B2 (ja) 2005-03-31 2006-03-30 計算機システム,メモリ管理方法,およびそのプログラム
PCT/JP2006/307274 WO2006107095A1 (ja) 2005-03-31 2006-03-30 計算機システム、メモリ管理方法、およびそのプログラム

Publications (2)

Publication Number Publication Date
JPWO2006107095A1 JPWO2006107095A1 (ja) 2008-10-02
JP5071798B2 true JP5071798B2 (ja) 2012-11-14

Family

ID=37073628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007511258A Active JP5071798B2 (ja) 2005-03-31 2006-03-30 計算機システム,メモリ管理方法,およびそのプログラム

Country Status (6)

Country Link
US (2) US8930659B2 (ja)
EP (1) EP1873647A4 (ja)
JP (1) JP5071798B2 (ja)
CN (1) CN101180612A (ja)
TW (1) TW200707193A (ja)
WO (1) WO2006107095A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101180612A (zh) * 2005-03-31 2008-05-14 日本电气株式会社 计算机系统、存储器管理方法及其程序
US7685360B1 (en) 2005-05-05 2010-03-23 Seagate Technology Llc Methods and structure for dynamic appended metadata in a dynamically mapped mass storage device
US7916421B1 (en) * 2005-05-05 2011-03-29 Seagate Technology Llc Methods and structure for recovery of write fault errors in a dynamically mapped mass storage device
US8250350B2 (en) * 2008-08-26 2012-08-21 Texas Digital And Multimedia Systems Computer system with non-volatile write-protected memory based operating system and secure system architecture
JP4986247B2 (ja) * 2009-06-02 2012-07-25 株式会社ユビキタス プログラム、制御方法、並びに制御装置
US8527749B2 (en) * 2009-11-11 2013-09-03 International Business Machines Corporation User device, computer program product and computer system for system for secure network storage
JP2011107925A (ja) * 2009-11-17 2011-06-02 Ubiquitous Corp プログラム、制御方法、並びに制御装置
US20110289282A1 (en) * 2010-05-18 2011-11-24 Microsoft Corporation Sessions for Direct Attached Storage Devices
US8694737B2 (en) 2010-06-09 2014-04-08 Micron Technology, Inc. Persistent memory for processor main memory
US9448938B2 (en) 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
US8613074B2 (en) 2010-09-30 2013-12-17 Micron Technology, Inc. Security protection for memory content of processor main memory
JP5707870B2 (ja) * 2010-11-02 2015-04-30 富士ゼロックス株式会社 情報処理装置及び記憶媒体
CN102088349B (zh) * 2010-12-27 2013-07-10 深圳市国民电子商务有限公司 一种智能卡个人化的方法及系统
TWI492051B (zh) 2012-09-05 2015-07-11 Silicon Motion Inc 資料儲存裝置與快閃記憶體控制方法
KR20140065196A (ko) * 2012-11-21 2014-05-29 삼성전자주식회사 메모리 시스템 및 그 구동 방법
US10565099B2 (en) * 2012-12-28 2020-02-18 Apple Inc. Methods and apparatus for compressed and compacted virtual memory
US20140310493A1 (en) * 2013-04-11 2014-10-16 International Business Machines Corporation Migrating data across storages with dissimilar allocation sizes
US10289307B1 (en) * 2014-12-30 2019-05-14 EMC IP Holding Company LLC Method for handling block errors on a deduplicated storage system
US10175894B1 (en) 2014-12-30 2019-01-08 EMC IP Holding Company LLC Method for populating a cache index on a deduplicated storage system
US20160291887A1 (en) * 2015-03-30 2016-10-06 Kabushiki Kaisha Toshiba Solid-state drive with non-volatile random access memory
KR102402783B1 (ko) * 2015-05-11 2022-05-27 삼성전자 주식회사 전자 장치 및 이의 페이지 병합 방법
JP6732684B2 (ja) 2017-03-15 2020-07-29 キオクシア株式会社 情報処理装置、ストレージデバイスおよび情報処理システム

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324476A (ja) * 1992-05-21 1993-12-07 Oki Electric Ind Co Ltd ディスクキャッシュ装置
JP2001092671A (ja) * 1999-09-24 2001-04-06 Hitachi Ltd プログラム実行最適化方法、プログラム管理装置およびプログラム実行装置
JP2001166945A (ja) * 1999-12-09 2001-06-22 Mitsubishi Electric Corp 半導体装置及び圧縮プログラムの生成方法
US20020049871A1 (en) * 1998-05-29 2002-04-25 Iverson Timothy J. Method and system for virtual memory compression in an embedded system
JP2002318696A (ja) * 2001-04-23 2002-10-31 Mitsubishi Electric Corp プログラム実行装置および方法
JP2005010897A (ja) * 2003-06-17 2005-01-13 Nec Corp 計算機システム、計算機システム起動方法およびプログラム
JP2005018418A (ja) * 2003-06-26 2005-01-20 Konica Minolta Business Technologies Inc 画像形成装置
WO2005013125A1 (en) * 2003-08-01 2005-02-10 Symbian Software Limited A method of accessing data in a computing device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04284551A (ja) * 1991-03-14 1992-10-09 Fujitsu Ltd 圧縮データを格納した読み出し専用メモリを備えた装置
JPH08235329A (ja) * 1995-02-24 1996-09-13 Ricoh Co Ltd データ管理方法
US5940871A (en) * 1996-10-28 1999-08-17 International Business Machines Corporation Computer system and method for selectively decompressing operating system ROM image code using a page fault
JP4411703B2 (ja) 1999-09-17 2010-02-10 ソニー株式会社 情報処理装置および方法、並びに記録媒体
JP3574078B2 (ja) 2001-03-16 2004-10-06 東京エレクトロンデバイス株式会社 記憶装置と記憶装置制御方法
US7558958B2 (en) * 2002-06-13 2009-07-07 Microsoft Corporation System and method for securely booting from a network
CN101180612A (zh) * 2005-03-31 2008-05-14 日本电气株式会社 计算机系统、存储器管理方法及其程序

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324476A (ja) * 1992-05-21 1993-12-07 Oki Electric Ind Co Ltd ディスクキャッシュ装置
US20020049871A1 (en) * 1998-05-29 2002-04-25 Iverson Timothy J. Method and system for virtual memory compression in an embedded system
JP2001092671A (ja) * 1999-09-24 2001-04-06 Hitachi Ltd プログラム実行最適化方法、プログラム管理装置およびプログラム実行装置
JP2001166945A (ja) * 1999-12-09 2001-06-22 Mitsubishi Electric Corp 半導体装置及び圧縮プログラムの生成方法
JP2002318696A (ja) * 2001-04-23 2002-10-31 Mitsubishi Electric Corp プログラム実行装置および方法
JP2005010897A (ja) * 2003-06-17 2005-01-13 Nec Corp 計算機システム、計算機システム起動方法およびプログラム
JP2005018418A (ja) * 2003-06-26 2005-01-20 Konica Minolta Business Technologies Inc 画像形成装置
WO2005013125A1 (en) * 2003-08-01 2005-02-10 Symbian Software Limited A method of accessing data in a computing device

Also Published As

Publication number Publication date
US20150089117A1 (en) 2015-03-26
WO2006107095A1 (ja) 2006-10-12
JPWO2006107095A1 (ja) 2008-10-02
US20090158000A1 (en) 2009-06-18
EP1873647A1 (en) 2008-01-02
TW200707193A (en) 2007-02-16
US9678862B2 (en) 2017-06-13
US8930659B2 (en) 2015-01-06
EP1873647A4 (en) 2009-01-28
CN101180612A (zh) 2008-05-14

Similar Documents

Publication Publication Date Title
JP5071798B2 (ja) 計算機システム,メモリ管理方法,およびそのプログラム
US9910602B2 (en) Device and memory system for storing and recovering page table data upon power loss
JP5255348B2 (ja) クラッシュダンプ用のメモリアロケーション
JP5351046B2 (ja) フラッシュメモリシステムの高速起動を容易にする方法およびシステム
JP5607943B2 (ja) メモリシステム及びその磨耗度管理方法
US9720717B2 (en) Virtualization support for storage devices
TWI470426B (zh) Memory management device and memory management method
US20160344834A1 (en) Transaction log acceleration
JP5783809B2 (ja) 情報処理装置、起動方法およびプログラム
JP2009276853A (ja) フラッシュメモリ装置
US20160132270A1 (en) Information processing device, information procesing method, and program
US20140372710A1 (en) System and method for recovering from an unexpected shutdown in a write-back caching environment
KR20100016174A (ko) 데이터-스머글링을 위한 저장 장치와 방법
JP2008204460A (ja) ディスク・パーティションのほぼ瞬時のバックアップおよび復元
CN115617542A (zh) 内存交换方法、装置、计算机设备及存储介质
JP5464226B2 (ja) 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
JP7475989B2 (ja) メモリシステムおよび制御方法
JP5334048B2 (ja) メモリ装置および計算機
JP5795418B2 (ja) キャッシュ装置、及び記憶システム
JP2013109404A (ja) 情報処理装置
JP5627754B2 (ja) 仮想記憶管理装置及び記憶管理装置
JP6640940B2 (ja) メモリシステムの制御方法
JP2009026310A (ja) データ記憶方法
JP2004157751A (ja) データ保護システム、データ保護プログラム及びデータ保護方法
JP3585859B2 (ja) ディスク制御方法および情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120619

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: 20120727

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120809

R150 Certificate of patent or registration of utility model

Ref document number: 5071798

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3