JP3906825B2 - 計算機システム、計算機システム起動方法およびプログラム - Google Patents

計算機システム、計算機システム起動方法およびプログラム Download PDF

Info

Publication number
JP3906825B2
JP3906825B2 JP2003171788A JP2003171788A JP3906825B2 JP 3906825 B2 JP3906825 B2 JP 3906825B2 JP 2003171788 A JP2003171788 A JP 2003171788A JP 2003171788 A JP2003171788 A JP 2003171788A JP 3906825 B2 JP3906825 B2 JP 3906825B2
Authority
JP
Japan
Prior art keywords
storage unit
address
main storage
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.)
Expired - Lifetime
Application number
JP2003171788A
Other languages
English (en)
Other versions
JP2005010897A (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 JP2003171788A priority Critical patent/JP3906825B2/ja
Priority to US10/867,648 priority patent/US7313683B2/en
Publication of JP2005010897A publication Critical patent/JP2005010897A/ja
Application granted granted Critical
Publication of JP3906825B2 publication Critical patent/JP3906825B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/4401Bootstrapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は計算機システムに関し、特に高速に起動および再起動できる計算機システムおよびその起動方法に関する。
【0002】
【従来の技術】
計算機システムは少なくともCPU(中央演算器)と主記憶と不揮発性記憶媒体を備えている。主記憶はCPUが解釈するプログラムや一時的な処理結果を保持するために用いられる。不揮発性記憶媒体は電力が切れても内容を保持し続けられる記憶媒体のことで、プログラムが格納されている。また、書き換え可能な不揮発性記憶媒体の場合は、保存しなければならないデータ(情報)を格納することもある。この不揮発性記憶媒体の例としては、ROMやCD−ROMなどの読み込み専用のものと、磁気ディスク媒体(ハードディスク、フレキシブルディスク(登録商標)等)やフラッシュメモリやEPROM(erasable and programmable ROM)やEEPROM(electrically erasable programmable ROM)などの書き込み可能なものがある。この書き込み可能な不揮発性記憶媒体を主記憶として用いることもある。
【0003】
計算機システムを起動するときには、最初にハードウェアの初期化を行い、次にオペレーティングシステム(以下、OSと呼ぶ)を起動し、最後に、必要となるアプリケーションプログラムを起動するという処理が順に実行される。
【0004】
ここでのハードウェアの初期化を除くソフトウェア処理部分、つまり、OSとアプリケーションプログラムの起動の際には、まず、これらのプログラムを不揮発性記憶媒体から読み込む処理を行い、次に、プログラムに記述されている初期化処理を行う。この初期化処理を行った後にそのプログラムの本来の目的の機能である運用処理を行うことが可能となる。
【0005】
このとき、使用するハードウェアやOSやアプリケーションプログラムの設定や構成を変更しない限り、システムの初期化処理の際には毎回同じ動作を行うので、起動直後の主記憶の内容は毎回、ほぼ同じ状態になる。このとき、主記憶上にある内容を機能的に分類すると、読み込み専用のプログラム領域と、読み書きを行うデータ領域に分けることができる。プログラム領域は不揮発性記憶媒体から読み込まれたもので、主記憶上でも読み込み専用である。データ領域はプログラムの実行において一時的に使用するもので、主記憶上で読み込みと書き込みの両方が行われる。
【0006】
この初期化処理にかかる立ち上げ時間はソフトウェアの規模が大きくなるとともに長くなってきているため、従来は、立ち上げ時間を短縮するために、初期化処理終了直後の主記憶の内容(以下、起動直後の主記憶イメージと呼ぶ)を通常使用領域以外に保存し、起動時に前記起動直後の主記憶イメージを主記憶にそのままの形で読み込んで起動する手法を取っていた。
【0007】
従来の高速起動手法の一例が、特許文献1に記載されている。この文献に記載されている方式は、バックアップメモリ手段又はバックアップ用のディスクファイル手段を持ち、前記メモリ手段又は前記ディスクファイル手段に起動直後の主記憶イメージが保存されている。起動時および再起動時に、前記メモリ手段又は前記ディスクファイル手段から主記憶へのメモリコピーを連続的に行い、主記憶上に起動直後の主記憶イメージがコピーし終った時点でシステムが運用可能となる。また、特許文献1には、起動直後の主記憶イメージの作成方法についても記載されている。
【0008】
また、他の従来の高速起動手法の一例が特許文献2に記載されている。この文献に記載されている方式は、主記憶上に保存してある起動直後の主記憶イメージの複製から再起動を実行する。ただし、再起動直後には、主記憶上に再び複製を作るためにメモリコピーを連続的に行い、その後、システムが運用可能となる。
【0009】
さらに他の従来の高速起動手法の一例が特許文献3に記載されている。この文献に記載されている方式は、主記憶装置を読み書き可能な不揮発性記憶部および揮発性記憶部で構成し、不揮発性記憶部に起動用OSなどのシステムプログラム及び他のアプリケーションプログラムを記憶しておき、変数や処理用データなどプログラム実行時に書き換えの必要なデータは不揮発性記憶部に記憶せずに外部記憶装置に保存しておく。そしてシステムの起動時に、外部記憶装置から変数などのデータを揮発性記憶部にロードし、CPUは直接に不揮発性記憶部から起動用OSなどのシステムプログラムを実行し、システムを起動する。
【0010】
【特許文献1】
特許第2772103号公報
【特許文献2】
特許第2970589号公報
【特許文献3】
特開平9−146774号公報
【0011】
【発明が解決しようとする課題】
第1の問題点は、起動時に起動直後の主記憶イメージや書き換えの必要なデータのメモリコピーが連続して起こり、システムの運用が開始できる迄に長い中断時間が存在してしまうということである。その理由は、特許文献1記載の発明では、不揮発性記憶媒体に保存してある起動直後の主記憶イメージの全てを主記憶に複製し終えないとシステムの運用を開始できず、特許文献2記載の発明では、次回の再起動のために主記憶上に保存してある起動直後の主記憶イメージの複製を再度構築する目的で複製し終えないとシステムの運用を開始できず、特許文献3の場合、書き換えの必要なデータを外部記憶装置から主記憶にロードし終えないとシステムの運用を開始できないからである。
【0012】
第2の問題点は、読み書き可能な主記憶領域が無駄に使用されているということである。その理由は、読み込み専用なデータでも読み書き可能な主記憶領域に複製するため、本来読み込みと書き込みの両者を可能とする主記憶領域であるにも関わらず、読み込みのみを行うデータでも読み書き可能な主記憶領域上に保持されており、書き込みデータのための容量を減らしているためである。
【0013】
本発明の目的は、起動時にメモリコピーを連続的に発生させることなくシステムを高速に起動および再起動することのできる計算機システムを提供することにある。
【0014】
本発明の他の目的は、読み書き可能な主記憶領域を無駄に使用しないようにできる計算機システムを提供することにある。
【0015】
【課題を解決するための手段】
本発明は、主記憶装置の一部を構成する不揮発性記憶部に記憶された起動直後の主記憶イメージからシステムの起動を行い、前記主記憶イメージの所定幅の領域毎に、システム運用後に初めて書き込みアクセスが発生したときに、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーしてそのコピー上で書き込みを行い、以後、コピー済みの主記憶イメージの領域へのアクセスは前記コピーへのアクセスに切り替えることを基本とする。より具体的には本発明の第1の計算機システムは、OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動し、システム運用中に前記OSまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する設定を行うデータ処理装置とを備える。
【0016】
この第1の計算機システムにあっては、不揮発性記憶部に、OS及びアプリケーションプログラムの初期化処理後の主記憶イメージが記憶されており、データ処理装置は、不揮発性記憶部に記憶された主記憶イメージからシステムを起動するため、システムの高速起動が可能になる。また、システム運用中にOSまたはアプリケーションプログラムから不揮発性記憶部への書き込みアクセスが発生すると、データ処理装置は、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを不揮発性記憶部から主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する設定を行う。このため、前記書き込みアクセスおよびそれ以降の前記所定幅のアドレス範囲へのアクセスは、前記代替領域へのアクセスに変換され、代替領域上のコピーが更新される。このように、OSやアプリケーションプログラムによって書き換える必要のあるデータをシステムの起動時に不揮発性記憶部から読み書き可能な主記憶部へ連続してコピーしておくのではなく、書き込みアクセスが発生した都度実施することにより、システム起動後に直ちにシステムの運用を開始することができる。
【0017】
本発明の第2の計算機システムは、第1の計算機システムにおいて、前記データ処理装置は、システム運用中に前記OSまたは前記アプリケーションプログラムから前記不揮発性記憶部への読み出しアクセスが発生した場合には前記不揮発性記憶部からデータの読み出しを行うように構成される。
【0018】
この第2の計算機システムにあっては、読み込み専用のデータは読み書き可能な主記憶部にコピーすることなく不揮発性記憶部から直接読み込むため、読み書き可能な主記憶領域が無駄に使用されない。
【0019】
本発明の第3の計算機システムは、第2の計算機システムにおいて、前記OS及び前記アプリケーションプログラムが前記主記憶装置をアクセスする際に指定する論理アドレスの所定幅のアドレス範囲毎に保護属性を記憶する保護情報部を備え、前記データ処理装置は、前記書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲の保護属性を前記保護情報部から参照し、保護属性が読み書き可能である場合に限って、前記コピーと前記設定を行い、保護属性が読み出し専用である場合にはエラーとするように構成される。
【0020】
この第3の計算機システムにあっては、プログラムのバグによって、不揮発性記憶部に記憶された読み出し専用データが主記憶部上にコピーされて書き換えられ、この変更によってOSやアプリケーションの異常な振舞いが引き起こされるのを防止できる。
【0021】
本発明の第4の計算機システムは、第3の計算機システムにおいて、前記不揮発性記憶部に記憶された主記憶イメージと異なる主記憶イメージを記憶する1以上の他の不揮発性記憶部を備え、且つ、前記不揮発性記憶部および前記他の不揮発性記憶部の何れか1つを起動時に選択する選択部を備える。
【0022】
この第4の計算機システムにあっては、計算機システムに実装されている不揮発性記憶部を別の主記憶イメージを記憶する他の不揮発性記憶部に差し替えたり、その不揮発性記憶部に記憶されている主記憶イメージを書き換えることなく、起動時に使用する主記憶イメージの全てを切り替えることが可能となる。
【0023】
本発明の第5の計算機システムは、第3の計算機システムにおいて、前記不揮発性記憶部に記憶された主記憶イメージの一部分の修正イメージを記憶する1以上の追加不揮発性記憶部を備え、前記主記憶イメージのうち前記追加不揮発性記憶部に記憶された修正イメージに対応する領域にマッピングされた物理アドレスを、前記追加不揮発性記憶部の修正イメージにマッピングした物理アドレスにマッピングし直す手段を備える。
【0024】
この第5の計算機システムにあっては、計算機システムに実装されている不揮発性記憶部を別の主記憶イメージを記憶する他の不揮発性記憶部に差し替えたり、その不揮発性記憶部に記憶されている主記憶イメージを書き換えることなく、起動時に使用する主記憶イメージの一部を変更することが可能となる。
【0025】
本発明の第6の計算機システムは、第3乃至第5の計算機システムにおいて、前記不揮発性記憶部は読み出し専用の記憶装置で構成されている。
【0026】
この第6の計算機システムにあっては、主記憶全体で必要な読み書き可能な記憶部の容量を削減することができる。
【0027】
本発明の第7の計算機システムは、第3乃至第5の計算機システムにおいて、前記不揮発性記憶部は読み書き可能な記憶装置で構成されている。
【0028】
この第7の計算機システムにあっては、不揮発性記憶部に記憶されたOS及びアプリケーションプログラムの初期化処理後の主記憶イメージを電気的に書き換えてシステムの仕様を変更することができる。
【0029】
【発明の第1の実施の形態】
図1を参照すると、本発明の第1の実施の形態にかかる計算機システム100は、少なくとも主記憶装置101とデータ処理装置102とを有し、プログラム制御により動作する。
【0030】
主記憶装置101は、主記憶部120と不揮発性記憶部130とを含んで構成される。
【0031】
不揮発性記憶部130は、OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する部分である。この不揮発性記憶部130は、不揮発なメモリなら任意の種類のメモリで良く、例えばROM等の読み出し専用の不揮発性メモリや、フラッシュメモリ等の書き換え可能な不揮発性メモリが使用できる。使用する主記憶イメージの内容を変更する方法としては、不揮発性記憶部130の差し替え、または、不揮発性記憶部130が書き換え可能な場合は、ネットワークを利用したイメージファイルのダウンロードや、外部記憶媒体からのイメージファイルの読み込みなどの方法が使用可能である。
【0032】
不揮発性記憶部130に記憶する主記憶イメージの生成方法は任意であるが、例えば、通常のシステム起動方法で起動した直後の主記憶イメージをダンプすることにより生成することができる。
【0033】
主記憶部120は、不揮発性記憶部130以外の主記憶領域を構成する部分である。この主記憶部120は、読み書き可能なメモリなら任意の種類のメモリで良く、一般的にはDRAM、SRAM等の揮発性のメモリが使用される。但し、MRAM(Magnetoresistive RAM)、FeRAM(Ferroelectric RAM)、フラッシュメモリ等の不揮発性のメモリを使用することも可能である。
【0034】
他方、データ処理装置102は、マッピングテーブル変更部160とアドレス変換部170とハードウェア初期化部180の機能手段を備え、ハードウェア初期化部180はマッピングテーブル初期化部150を有している。またデータ処理装置102は、制御テーブルとしてマッピングテーブル部110および保護情報部140を有している。
【0035】
マッピングテーブル部110は、データ処理装置102上で動作するOSやアプリケーションプログラム(両者を総称してプログラムと言う)が主記憶装置101を操作する際に指定するメモリアドレス(論理アドレス)を、主記憶装置101を構成する主記憶部120および不揮発性記憶部130に実際に割り当てられているメモリアドレス(物理アドレス)に変換するための情報、および保護モードを記憶する制御テーブルである。ここで、論理アドレスは論理ブロックアドレスとブロック内アドレスとで構成され、物理アドレスは物理ブロックアドレスを前記ブロック内アドレスとで構成される。
【0036】
図2にマッピングテーブル部110のエントリの構成例を示す。マッピングテーブル部110は、このようなエントリの集合から構成される。図2を参照すると、1つのエントリには、論理ブロックアドレス111と物理ブロックアドレス112と保護モード113の組が保持される。論理ブロックアドレス111は、論理アドレス空間を所定の大きさのブロックに分割したときにできる個々の論理ブロックを一意に識別するアドレスである。物理ブロックアドレス112は、物理アドレス空間を論理アドレス空間と同じ大きさのブロックに分割したときにできる個々の物理ブロックを一意に識別するアドレスである。ブロックとしては、ページと呼ばれるアーキテクチャに固有の単位を用いることで効率良く処理することが可能となるが、本発明はその単位に制限されるわけではない。保護モード113は、読み込み専用の保護モードと読み書き可能の保護モードの何れか一方の値をとる。この保護モード113は、計算機システム100で実行されるプログラムの本来の保護属性とは異なる擬似的なものであり、不揮発性記憶部130のブロックに関してはシステム起動時に読み込み専用の保護モードが一律に設定される。
【0037】
保護情報部140は、計算機システム100で実行されるプログラム本来の保護属性を保持する制御テーブルである。図3に保護情報部140のエントリの構成例を示す。保護属性部140は、このようなエントリの集合で構成される。図3を参照すると、1つのエントリには、論理ブロックアドレス141と保護属性142の組が保持される。保護属性142には、読み込み専用の保護属性と、読み書き可能の保護属性とがあり、何れの保護属性が設定されるかは、論理ブロックアドレス141で特定されるブロックの本来の保護属性によって決定される。
【0038】
ハードウェア初期化部180は、計算機システム100の起動時および再起動時にシステム各部のハードウェアの初期化を行う部分であり、本実施の形態ではマッピングテーブル初期化部150を備えている。このマッピングテーブル初期化部150は、主記憶装置101を構成する主記憶部120および不揮発性記憶部130への物理アドレスの割り当て機能と、マッピングテーブル部110の初期設定機能とを有する。一般にPCIバスの制御下に置かれているメモリなどのデバイスに対しては、BIOSの機能で物理アドレスを物理的に固定させずに或る程度動的に割り当てることができるが、マッピングテーブル初期化部150は、このようなBIOSの処理と同様な物理アドレスの割り当て機能を有している。但し、本発明において物理アドレスの動的な割り当ては必須の事項でなく、物理アドレスが静的に割り当てられている計算機システムに対しても適用可能である。マッピングテーブル部110の初期設定では、論理アドレス空間を構成する各論理ブロックに対して、不揮発性記憶部130に割り当てた物理ブロックを順次に対応付け、それら全てのブロックの保護モードを、そのブロックの本来の保護属性にかかわらず読み出し専用に設定する。
【0039】
アドレス変換部170は、計算機システム100上で動作するプログラムがメモリ操作の際に指定する論理アドレスを物理アドレスに変換する機能と保護モード違反による例外を検出し例外処理を起動する機能とを有する。論理アドレスから物理アドレスへの変換および保護モード違反による例外検出は、マッピングテーブル部110を参照して行う。マッピングテーブル変更部160は、アドレス変換部170で起動された例外処理を実行する機能を有する。例外処理では、保護情報部140の参照による本来の保護属性の判定、不揮発性記憶部130のブロックの主記憶部120へのコピー、マッピングテーブル部110の更新などの処理が行われる。
【0040】
図4にアドレス変換部170およびマッピングテーブル変更部160の処理の一例を示す。アドレス変換部170は、プログラムから指定されたメモリアクセスにかかる論理アドレス中のブロックアドレスでマッピングテーブル部110を検索し、図2に示した論理ブロックアドレス111が一致するエントリを取得する(ステップS101)。次に、アドレス変換部170は、プログラムから指定されたメモリアクセスが、書き込みアクセスか、読み出しアクセスかを判別し(ステップS102)、読み出しアクセスであれば(ステップS102でNO)、ステップS101で取得したエントリ中の物理ブロックアドレス112を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(ステップS103)、その物理アドレスで特定される主記憶装置101の個所をアクセスする(ステップS104)。
【0041】
プログラムから指定されたメモリアクセスが書き込みアクセスの場合(ステップS102でYES)、アドレス変換部170は、ステップS101で取得したエントリ中の保護モード113が読み込み専用の保護モードか、読み書き可能な保護モードかを判別する(ステップS105)。読み書き可能な保護モードであれば(ステップS105でNO)、アドレス変換部170は、ステップS101で取得した物理ブロックアドレス112を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(ステップS103)、その物理アドレスで特定される主記憶装置101の個所をアクセスする(ステップS104)。
【0042】
保護モード113が読み込み専用の保護モードである場合(ステップS105でYES)、アドレス変換部170は、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部160に通知して例外処理を起動する(ステップS106)。この例外イベントでは、ステップS101で取得したエントリ中の論理ブロックアドレス111と物理ブロックアドレス112をマッピングテーブル変更部160に通知する。
【0043】
マッピングテーブル変更部160は、通知された論理ブロックアドレス111で保護情報部140を検索し、図3の論理ブロックアドレス141が一致するエントリの保護属性142を取得する(ステップS107)。次に、マッピングテーブル変更部160は、保護属性142が読み込み専用の保護属性か、読み書き可能な保護属性かを判別する(ステップS108)。読み込み専用の保護属性であれば(ステップS108でYES)、マッピングテーブル変更部160はアドレス変換部170に対してエラーを通知し、アドレス変換部170は保留中のメモリアクセスを拒否する等のエラー処理を行う。
【0044】
他方、保護属性142が読み書き可能な保護属性であれば(ステップS108でNO)、マッピングテーブル変更部160は、アドレス変換部170から通知された物理ブロックアドレス112で特定される不揮発性記憶部130のブロックを、主記憶部120の空きブロックにコピーする(ステップS109)。主記憶部120を構成するブロックのうち、どのブロックが空き状態で、どのブロックが使用中かを管理する技術は、主記憶部120の各ブロック毎の使用状態を保持するテーブルで管理するなど、従来から知られている任意の方法を使用することができる。次にマッピングテーブル変更部160は、図2の論理ブロックアドレス111がアドレス変換部170から通知された論理ブロックアドレスに一致するエントリをマッピングテーブル部110から検索し、そのエントリの物理ブロックアドレス112をステップS109におけるコピー先の主記憶部120のブロックの物理ブロックアドレスに書き換え、かつ保護モード113を読み書き可能な保護モードに書き換える(ステップS110)。そして、例外処理の完了をアドレス変換部170に通知する。アドレス変換部170は、マッピングテーブル変更部160から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理をステップS101から再度開始する。
【0045】
図5は計算機システム100の概略動作を示すフローチャートである。以下、各図を参照して本実施の形態の動作を説明する。
【0046】
計算機システム100は起動されると、図5に示されるように、先ず、ハードウェア初期化部180によってハードウェアの初期化を行った後(ステップS201)、マッピングテーブル初期化部150によって、主記憶部120および不揮発性記憶部130に物理アドレスを割り当て、マッピングテーブル部110を初期設定する(ステップS202)。マッピングテーブル部110の初期設定では、論理ブロックアドレスと物理ブロックアドレスの対応関係をマッピングテーブル部110に書き込み、且つ、不揮発性記憶部130の全てのブロックは読み込み専用の保護モードでマッピングテーブル部110に登録する。
【0047】
次にデータ処理装置102は、不揮発性記憶部130に保存されている主記憶イメージからシステムを起動する(ステップS203)。この主記憶イメージは、OSやアプリケーションの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、主記憶イメージから起動してから、システム運用(ステップS204)が可能になるまでの運用中断状態は存在しない。
【0048】
システム運用(ステップS204)の段階において、プログラムから不揮発性記憶部130のとあるブロックに対して初めての書き込みアクセスが発生したときには、そこは読み込み専用の保護モードでマッピングされているのでアドレス変換部170が例外イベントを通知し、当該書き込みアクセスを一時保留する(図4のS106)。例外イベントを受け取ったマッピングテーブル変更部160は、保護情報部140を参照してその書き込み発生論理アドレスのブロックの保護属性を判断し(図4のステップS108)、読み書き可能属性であれば、そのブロックの大きさの空きブロックを主記憶部120から割り当て、その不揮発性記憶部130の当該ブロックの内容をコピーする(図4のステップS109)。更に、マッピングテーブル変更部160は、割り当てられた主記憶ブロックを書き込みが発生した論理ブロックアドレスに読み書き可の保護モードでマッピングするようマッピングテーブル部110に設定して、一時保留された書き込みアクセスの処理を再開させる(図4のステップS110)。この結果、一時保留された書き込みアクセスおよびその後の当該ブロックへの書き込み操作は、割り当てられた主記憶ブロックに対して実行される。このとき、ブロックの単位を小さくすることでコピー時間が短くなり、システム運用が中断される時間を短くすることができる。
【0049】
この状態で、再起動が行われると(図5のステップS205)、再びハードウェアの初期化処理(ステップS201)から実行され、起動時と同じようにマッピングテーブル初期化部150の動作によってマッピングテーブル部110の内容が初期化され、不揮発性記憶部130がマッピングし直される(ステップS202)。このため、システムの運用中に主記憶部120に対して行われた書き込みの内容は一切反映されていない状態に戻り、これがつまり、立ち上げ直後の環境に復帰することと同じになる。
【0050】
次に、本実施の形態について、一実施例を挙げてより詳細に説明する。
【0051】
図6のコンピュータ200は、本実施の形態を適用した計算機システムの一例である。主記憶部120と不揮発性記憶部130から構成される主記憶装置101は、CPU201にメモリバス202を通じて接続されており、アドレス変換部170はCPU201に内蔵されている。また、図1のマッピングテーブル初期化部150は、CPU201に接続された記憶装置203に記憶されたIPL(イニシャル・プログラム・ローダ)204の一機能として実装されている。不揮発性記憶部130には、OS205及びアプリケーションプログラム206の初期化処理後の主記憶イメージが予め記憶されており、図1のマッピングテーブル変更部160はOS205の一機能として実装され、また保護情報部140もOS205が有する制御テーブルの1つとして実装されている。更に、図1のマッピングテーブル部110は、主記憶部120に生成される1つの制御テーブルとして扱われる。
【0052】
CPU201に接続されたその他のハードウェア209は、ネットワーク・インターフェース・カード(NIC)207やCD−ROM208などを含む。不揮発性記憶部130中の主記憶イメージの変更の際には、NIC207を用いてネットワーク210経由でイメージファイルをダウンロードしたり、CD−ROM208からイメージファイルを読み込んだりして、不揮発性記憶媒体130の内容を書き換えることによって実現できるようになっている。
【0053】
図7はOS205が有する保護情報部140の内容例を示す。図示した例は本発明の理解を容易にするためにブロック数を極めて小さくしてあり、実際には数多くのブロックが存在する。図7を参照すると、論理ブロックアドレス0〜2の各ブロックの保護属性は読み込み専用(R)、論理ブロックアドレス3〜6の各ブロックの保護属性は読み書き可能(RW)となっている。
【0054】
以下、本実施例のコンピュータ200の動作を説明する。
【0055】
コンピュータ200は起動されると、図5のステップS201において、主記憶部120のクリア、ハードウェア209の初期化などのハードウェアの初期化を行った後、次のステップS202において、IPL204に実装されたマッピングテーブル初期化部150によって、主記憶部120および不揮発性記憶部130に物理アドレスを割り当て、マッピングテーブル部110を初期設定する。
【0056】
図8に物理アドレスの割り当て例を、図9(a)にマッピングテーブル部110の初期設定例を、それぞれ示す。図示した例は本発明の理解を容易にするためにブロック数を極めて小さくしてあり、実際には数多くのブロックが存在する。図8を参照すると、不揮発性記憶部130の各ブロックには0〜6の物理ブロックアドレスが割り当てられ、主記憶部120の各ブロックには7以降の物理ブロックアドレスが割り当てられている。また、図9(a)を参照すると、主記憶部120に生成されるマッピングテーブル部110の初期状態は、0〜5の論理ブロックアドレスに対して、不揮発性記憶部130に割り当てられた物理ブロックアドレス1〜6が対応付けられ、それらの保護モードは全て読み込み専用(R)に設定される。また、6の論理ブロックアドレスに対して、主記憶部120の予め定められた物理ブロック(例では物理ブロックアドレス7のブロック)が対応付けられ、その保護モードは読み書き可能(RW)に設定される。ここで、物理ブロックアドレス7のブロックは、マッピングテーブル部110が生成されるブロックである。
【0057】
図5のステップS203においては、CPU201が不揮発性記憶部130に保存されている主記憶イメージからシステムを起動する。具体的には、IPL204がCPU201内のプログラムカウンタにシステムの運用を開始する際に最初に実行する命令の論理アドレスを設定し、その命令から実行を開始させることにより、システムの運用を開始させる(ステップS204)。
【0058】
次に、システム運用(ステップS204)の段階において、CPU201上で実行されるプログラムが主記憶装置101をアクセスした際の動作を説明する。例として以下のようなアクセスを想定する。
(1)論理ブロックアドレス「3」を持つ論理アドレスへの最初の書き込みアクセス
(2)論理ブロックアドレス「3」を持つ論理アドレスへの2回目以降の書き込みアクセス
(3)論理ブロックアドレス「1」を持つ論理アドレスへの読み出しアクセス
【0059】
先ず、論理ブロックアドレス「3」を持つ論理アドレスへの最初の書き込みアクセスが発生した際の動作を説明する。この場合、アドレス変換部170は、論理ブロックアドレス「3」でマッピングテーブル部110を検索し、図9(a)中の「論理ブロックアドレス3、物理ブロックアドレス4、保護モードR」のエントリを取得する(ステップS101)。次に、アドレス変換部170は、メモリアクセスが書き込みアクセスであり(ステップS102でYES)、保護モードが読み込み専用であるので(ステップS105)、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部160に通知して例外処理を起動する(ステップS106)。
【0060】
マッピングテーブル変更部160は、論理ブロックアドレス「3」で保護情報部140を検索し、図7の論理ブロックアドレス3を持つエントリの保護属性RWを取得する(ステップS107)。次に、マッピングテーブル変更部160は、保護属性RWが読み書き可能な保護属性であるので(ステップS108)、物理ブロックアドレス「4」で特定される不揮発性記憶部130のブロックを、その時点の主記憶部120の空きブロック(物理ブロックアドレス13のブロックとする)にコピーする(ステップS109)。次にマッピングテーブル変更部160は、図9(b)に示されるように、論理ブロックアドレス「3」を持つエントリの物理ブロックアドレスを「4」から「13」に書き換え、かつ保護モードをRからRWに書き換える(ステップS110)。そして、例外処理の完了をアドレス変換部170に通知する。
【0061】
アドレス変換部170は、マッピングテーブル変更部160から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理をステップS101から再開する。アドレス変換部170は、論理ブロックアドレス「3」でマッピングテーブル部110を検索すると、マッピングテーブル部110は図9(a)の状態から図9(b)の状態に更新されているので、今度は「論理ブロックアドレス3、物理ブロックアドレス13、保護モードRW」のエントリを取得する(ステップS101)。アドレス変換部170は、プログラムから指定されたメモリアクセスが、書き込みアクセスであり(ステップS102でYES)、保護モードがRWなので(ステップS105でNO)、取得したエントリ中の物理ブロックアドレス「13」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(ステップS103)、その物理アドレスで特定される主記憶装置101の個所をアクセスし、プログラムから渡されたデータを書き込む(ステップS104)。
【0062】
このように、システムの運用開始後、不揮発性記憶部130の保護属性がRWの或るブロックに対して最初の書き込みアクセスが発生した場合、そのブロックが主記憶部120にコピーされ、そのコピー上で更新が行われる。
【0063】
次に、論理ブロックアドレス「3」を持つ論理アドレスへの2回目以降の書き込みアクセスが発生した場合の動作を説明する。アドレス変換部170は、論理ブロックアドレス「3」でマッピングテーブル部110を検索すると、マッピングテーブル部110は図9(a)の状態から図9(b)の状態に更新されているので、「論理ブロックアドレス3、物理ブロックアドレス13、保護モードRW」のエントリを取得する(ステップS101)。次にアドレス変換部170は、プログラムから指定されたメモリアクセスが、書き込みアクセスであり(ステップS102でYES)、保護モードがRWなので(ステップS105でNO)、取得したエントリ中の物理ブロックアドレス「13」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(ステップS103)、その物理アドレスで特定される主記憶装置101の個所をアクセスし、プログラムから渡されたデータを書き込む(ステップS104)。
【0064】
このように、システムの運用開始後、不揮発性記憶部130の保護属性がRWの或るブロックに対して2回目以降の書き込みアクセスが発生した場合、初回のようなコピー動作は最早必要ないため、主記憶部120上に存在するコピーが直ちに更新される。
【0065】
次に、論理ブロックアドレス「1」を持つ論理アドレスへの読み出しアクセスが発生した場合の動作を説明する。アドレス変換部170は、プログラムから指定された論理ブロックアドレス「1」でマッピングテーブル部110を検索し、図9(b)の「論理ブロックアドレス1、物理ブロックアドレス2、保護モードR」のエントリを取得する(ステップS101)。次に、アドレス変換部170は、プログラムから指定されたメモリアクセスが読み出しアクセスであるため(ステップS102でNO)、取得したエントリ中の物理ブロックアドレス「2」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(ステップS103)、その物理アドレスで特定される主記憶装置101の個所をアクセスし、読み出したデータをプログラムに返却する(ステップS104)。
【0066】
このように、不揮発性記憶部130への読み出しアクセスに関しては不揮発性記憶部130から直接にデータを読み出す。
【0067】
【発明の第2の実施の形態】
図10を参照すると、本発明の第2の実施の形態にかかる計算機システム300は、データ処理装置302のハードウェア初期化部380がマッピングテーブル初期化部を備えず、初期設定済みのマッピングテーブル部110を使用する点で、第1の実施の形態と相違する。図1に示した第1の実施の形態にかかる計算機システム100において、ハードウェアおよびソフトウェアの構成が同一であるならば、物理アドレスの割り当て状況およびマッピングテーブル部110の初期設定状態は常に同じになる。本実施の形態はその点に着目し、予め初期設定された状態のマッピングテーブル部110を用いることで、システム起動時の処理をより簡素化している。
【0068】
図11に計算機システム300の動作フローチャートを示す。図5に示した第1の実施の形態の動作フローチャートと相違し、物理アドレスの割り当て及びマッピングテーブル部110の初期化を行う処理(図5のステップS202)が省略されている。それ以外の構成および動作は第1の実施の形態と同じである。
【0069】
次に、本実施の形態について、一実施例を挙げてより詳細に説明する。
【0070】
図12のコンピュータ400は、本実施の形態を適用した計算機システムの一例であり、初期設定済みのマッピングテーブル部110をOS205内の1つの制御テーブルとして持たせている点で、図6に示した第1の実施の形態の実施例にかかるコンピュータ200と相違する。
【0071】
以下、本実施例のコンピュータ400の動作を説明する。
【0072】
コンピュータ400は起動されると、図11のステップS201において、主記憶部120のクリア、ハードウェア209の初期化などのハードウェアの初期化を行う。第1の実施の形態の実施例と異なり、主記憶部120および不揮発性記憶部130への物理アドレスの割り当ては行わず、予め静的に設定されている物理アドレスを使用する。また、マッピングテーブル部110の初期設定も行わない。例えば、静的に設定されている物理アドレスが図8に示される内容である場合、マッピングテーブル部110の初期状態は、図9(a)に示すような内容となっている。つまり、0〜5の論理ブロックアドレスに対して、不揮発性記憶部130に割り当てられた物理ブロックアドレス1〜6が対応付けられ、それらの保護モードは全て読み込み専用(R)に設定される。なお、図9(a)では、6の論理ブロックアドレスに対して、主記憶部120の予め定められた物理ブロックを対応付け、その保護モードを読み書き可能(RW)に設定しているが、本実施例では必ずしも必要ではない。
【0073】
図11のステップS203においては、第1の実施の形態の実施例と同様にCPU201が不揮発性記憶部130に保存されている主記憶イメージからシステムを起動する。また、システム運用(ステップS204)の段階において、CPU201上で実行されるプログラムが主記憶装置101をアクセスした際には、第1の実施の形態の実施例と同様に図4に示される処理が実行される。これにより、システムの運用開始後、不揮発性記憶部130の保護属性がRWの或るブロックに対して最初の書き込みアクセスが発生した場合、そのブロックが主記憶部120にコピーされ、そのコピー上で更新が行われる。また、不揮発性記憶部130の保護属性がRWの或るブロックに対して2回目以降の書き込みアクセスが発生した場合、主記憶部120上に存在するコピーが直ちに更新される。更に、不揮発性記憶部130への読み出しアクセス時は、不揮発性記憶部130から直接データが読み出される。ここで、本実施例の場合、マッピングテーブル部110は不揮発性記憶部130に格納されているため、図4のステップS110がシステム運用後初めて実施された際、マッピングテーブル部110を含むブロックが主記憶部120の空きブロックにコピーされ、そのコピー上で更新が行われる。
【0074】
【発明の第3の実施の形態】
第1の実施の形態では、論理アドレスを物理アドレスに変換するアドレス変換部170において、システム運用中にプログラムから不揮発性記憶部130への書き込みアクセスが発生する毎に、書き込みアクセスが発生した論理アドレスを含む所定幅のアドレス範囲内のデータを不揮発性記憶部130から主記憶部120の空きブロックにコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを主記憶部120のブロックへのアクセスに変換する設定を行った。本実施の形態では、メモリアクセスにかかる物理アドレスを受けてメモリのアクセスをコントロールするメモリアクセス部において、システム運用中にプログラムから不揮発性記憶部130への書き込みアクセスが発生する毎に、書き込みアクセスが発生した物理アドレスを含む所定幅のアドレス範囲内のデータを不揮発性記憶部130から主記憶部120の空きブロックにコピーし且つ以後の前記所定幅の物理アドレス範囲へのアクセスを主記憶部120のブロックへのアクセスに切り替える。
【0075】
図13を参照すると、本発明の第3の実施の形態にかかる計算機システム500は、少なくとも主記憶装置101とデータ処理装置502とを有し、プログラム制御により動作する。
【0076】
主記憶装置101は、第1の実施の形態と同様な主記憶部120と不揮発性記憶部130とを含んで構成される。つまり、不揮発性記憶部130は、OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶しており、主記憶部120は、不揮発性記憶部130以外の主記憶領域を構成している。
【0077】
他方、データ処理装置502は、メモリアクセス部560とアドレス変換部570とハードウェア初期化部580を備え、ハードウェア初期化部580はステータステーブル初期化部550を有している。またデータ処理装置502は、制御テーブルとしてステータステーブル部510および保護情報部540を有している。
【0078】
ステータステーブル部510は、不揮発性記憶部130の各ブロック毎に、そのブロックの主記憶部120へのコピーが完了したか否かを示すステータスを保持するテーブルである。図14にステータステーブル部510のエントリの構成例を示す。ステータステーブル部510は、このようなエントリの集合から構成される。図14を参照すると、1つのエントリには、物理ブロックアドレス511とステータス512の組が保持される。ステータス512は、物理ブロックアドレス511のブロックが主記憶部120にコピー済みであれば論理値1に、そうでなければ論理値0に設定される。
【0079】
保護情報部540は、不揮発性記憶部130の各ブロック毎に、そのブロックの保護属性を保持するテーブルである。図15に保護情報部540のエントリの構成例を示す。保護情報部540は、このようなエントリの集合から構成される。図15を参照すると、1つのエントリには、物理ブロックアドレス541と保護属性542の組が保持される。保護属性542には、読み込み専用の保護属性と、読み書き可能の保護属性とがあり、何れの保護属性が設定されるかは、物理ブロックアドレス541で特定される不揮発性記憶部130のブロックの本来の保護属性によって決定される。
【0080】
ハードウェア初期化部580は、計算機システム500の起動時および再起動時にシステム各部のハードウェアの初期化を行う部分であり、本実施の形態ではステータステーブル初期化部550を備えている。このステータステーブル初期化部550は、主記憶装置101を構成する主記憶部120および不揮発性記憶部130への物理アドレスの割り当て機能と、ステータステーブル部510の初期設定機能とを有する。但し、本発明において物理アドレスの動的な割り当ては必須の事項でなく、物理アドレスが静的に割り当てられている計算機システムに対しても適用可能である。ステータステーブル部510の初期設定では、不揮発性記憶部130に割り当てられた各物理ブロックに対して、コピー未完了を示す論理値0のステータスを設定する。
【0081】
アドレス変換部570は、不揮発性記憶部130の物理アドレスを、その物理アドレスを含む物理ブロックがコピーされている主記憶部120のブロック内の物理アドレスに変換する部分である。物理アドレス間の変換は、変換前後の物理ブロックアドレスの対応表を使用して行う以外に、後述する本実施の形態の実施例に示されるように、不揮発性記憶部130に割り当てる物理アドレスとそのコピー領域として主記憶部120に予約してあるブロックの物理アドレスとの関係を所定のアドレス距離だけ離れた関係としておくことにより、物理アドレスを表現するビット列中の一部のビットの値を前記アドレス距離で定まる値に変更することで実現できる。
【0082】
メモリアクセス部560は、計算機システム500上で動作するプログラムからのメモリアクセス要求に従って、主記憶装置101をアクセスする部分である。図13に破線で示したように、プログラムがメモリ操作の際に指定する論理アドレスを物理アドレスに変換する機能590を計算機システム500が備えている場合、メモリアクセス部560は物理アドレスに変換されたアドレス情報を含むメモリアクセス要求を入力する。他方、計算機システム500がそのような機能590を備えず、論理アドレスと物理アドレスとが同じ場合には、プログラムから出されたアドレス情報を含むメモリアクセスをそのまま入力する。
【0083】
メモリアクセス部560は、不揮発性記憶部130に対するメモリアクセス要求については、ステータステーブル部510および保護情報部540を参照して、アクセス先ブロックの主記憶部120へのコピーが必要ならコピーを行う機能と、アドレス変換部570を使用して物理アドレスの変換を行い、不揮発性記憶部130の代わりに主記憶部120のコピー先ブロックをアクセスする機能とを備えている。
【0084】
図16にメモリアクセス部560およびアドレス変換部570の処理の一例を示す。メモリアクセス部560は、メモリアクセスにかかる物理アドレス中のブロックアドレスでステータステーブル部510を検索し、図14に示した物理ブロックアドレス511が一致するエントリが存在すれば取得する(ステップS301)。次に、メモリアクセス部560は、該当するエントリが存在したかどうかによって、今回のメモリアクセスが不揮発性記憶部130へのアクセスかどうかを判別し(ステップS302)、不揮発性記憶部130以外の主記憶部120へのアクセスであれば(ステップS302でNO)、物理アドレスの変換を行わず、入力された物理アドレスで特定される主記憶部120の個所をアクセスする(ステップS303)。
【0085】
今回のメモリアクセスが不揮発性記憶部130に対するものである場合(ステップS302でYES)、メモリアクセス部560は、ステップS301で取得したエントリ中のステータス512が0(コピー無し)か、1(コピー済み)かを判別する(ステップS304)。ステータス512が1(コピー済み)であれば(ステップS304でNO)、メモリアクセス部560は、アドレス変換部570を使用して、入力の物理アドレスをコピー先の物理アドレスに変換し(ステップS305)、変換後の物理アドレスで特定される主記憶部120の個所をアクセスする(ステップS303)。
【0086】
ステータス512が0(コピー無し)である場合(ステップS304でYES)、メモリアクセス部560は、今回のメモリアクセスが書き込みアクセスか、読み出しアクセスかを判別し(ステップS306)、読み出しアクセスであれば(ステップS306でNO)、物理アドレスの変換を行わず、入力された物理アドレスで特定される不揮発性記憶部130の個所をアクセスする(ステップS303)。
【0087】
また、書き込みアクセスの場合は(ステップS306でYES)、メモリアクセス部560は、メモリアクセスにかかる物理アドレス中のブロックアドレスで保護情報部540を検索し、図15に示した物理ブロックアドレス541が一致するエントリの保護属性542を取得し(ステップS307)、読み出し専用か、読み書き可能かを判別する(ステップS308)。読み出し専用であれば(ステップS308でYES)、メモリアクセス部560は今回のメモリアクセスを保護属性違反として拒否する等のエラー処理を行う。
【0088】
他方、保護属性542が読み書き可能な保護属性であれば(ステップS308でNO)、メモリアクセス部560は、メモリアクセスの物理ブロックアドレスで特定される不揮発性記憶部130のブロックを、主記憶部120の空きブロックにコピーする(ステップS309)。次に、メモリアクセス部560は、図14の物理ブロックアドレス511が入力の物理ブロックアドレスに一致するエントリをステータステーブル部510から検索し、そのエントリのステータス512をコピー済みを示す1に書き換える(ステップS310)。そして、今回のメモリアクセスの処理をステップS305から再度実行する。なお、ステップS305から再度実行する代わりに、ステップS301から再度実行しても結果は同じである。
【0089】
図17は計算機システム500の概略動作を示すフローチャートである。以下、各図を参照して本実施の形態の動作を説明する。
【0090】
計算機システム500は起動されると、図17に示されるように、先ず、ハードウェア初期化部580によってハードウェアの初期化を行った後(ステップS401)、ステータステーブル初期化部550によって、主記憶部120および不揮発性記憶部130に物理アドレスを割り当て、ステータステーブル部510を初期設定する(ステップS402)。ステータステーブル部510の初期設定では、不揮発性記憶部130の全てのブロックの物理ブロックアドレスと論理値0のステータスとをステータステーブル部510に登録する。
【0091】
次にデータ処理装置502は、不揮発性記憶部130に保存されている主記憶イメージからシステムを起動する(ステップS403)。この主記憶イメージは、OSやアプリケーションの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、主記憶イメージから起動してから、システム運用(ステップS404)が可能になるまでの運用中断状態は存在しない。
【0092】
システム運用(ステップS404)の段階において、プログラムから不揮発性記憶部130のとあるブロックに対して初めての書き込みアクセスが発生したときには、ステータステーブル部510におけるそのブロックのステータスは0(コピー未完了)に初期化されているので、メモリアクセス部560は、保護情報部540を参照してその書き込み発生物理アドレスを含むブロックの保護属性を判断し(図16のステップS308)、読み書き可能属性であれば、その不揮発性記憶部130の当該ブロックの内容を主記憶部120の空きブロックにコピーし(図16のステップS309)、ステータステーブル部510の当該ブロックのステータスをコピー済みを示す論理値1に書き換え(図16のステップS310)、書き込みアクセスの処理を再開する。この結果、今回の書き込みアクセスおよびその後の当該ブロックへの書き込みアクセスは、アドレス変換部570によって、不揮発性記憶部130の物理アドレスがコピー先の主記憶部120の物理アドレスに変換され(図16のステップS305)、主記憶部120上のコピーが更新される。
【0093】
この状態で、再起動が行われると(図17のステップS405)、再びハードウェアの初期化処理(ステップS401)から実行され、起動時と同じようにステータステーブル初期化部550の動作によってステータステーブル部510の内容が初期化されるため、システムの運用中に主記憶部120に対して行われた書き込みの内容は一切反映されていない状態に戻り、これがつまり、立ち上げ直後の環境に復帰することと同じになる。
【0094】
次に、本実施の形態について、一実施例を挙げてより詳細に説明する。
【0095】
図18のコンピュータ600は、本実施の形態を適用した計算機システムの一例である。主記憶部120と不揮発性記憶部130から構成される主記憶装置101は、CPU601にメモリコントローラ602を介して接続されており、メモリコントローラ602にステータステーブル部510、メモリアクセス部560およびアドレス変換部570が実装されている。また、図18のステータステーブル初期化部550は、CPU601に接続された記憶装置603に記憶されたIPL604の一機能として実装されている。不揮発性記憶部130には、OS605及びアプリケーションプログラム606の初期化処理後の主記憶イメージが予め記憶されており、図18の保護情報部540はOS605が有する制御テーブルの1つとして実装されている。本実施例では、論理アドレスから物理アドレスへの変換手段をCPU601が備えていないため、論理アドレスと物理アドレスとが同じになる。但し、論理アドレスから物理アドレスへの変換手段をCPU601が備えている場合にも適用可能である。
【0096】
CPU601に接続されたその他のハードウェア609は、ネットワーク・インターフェース・カード(NIC)607やCD−ROM608などを含む。不揮発性記憶部130中の主記憶イメージの変更の際には、NIC607を用いてネットワーク610経由でイメージファイルをダウンロードしたり、CD−ROM608からイメージファイルを読み込んだりして、不揮発性記憶部130の内容を書き換えることによって実現できるようになっている。
【0097】
図19はOS605が有する保護情報部540の内容例を示す。図19を参照すると、保護情報部540には、不揮発性記憶部130を構成するブロックアドレス256〜511の複数のブロックのうち、ブロックアドレス256〜300のブロックに対しては読み込み専用(R)の保護属性が、残りのブロックアドレス301〜511のブロックに対しては読み書き可能(RW)の保護属性がそれぞれ割り当てられている。ここで言うブロックアドレスは、本実施例の場合、論理アドレスと物理アドレスが同じなので、論理ブロックアドレスおよび物理ブロックアドレスを意味する。
【0098】
以下、本実施例のコンピュータ600の動作を説明する。
【0099】
コンピュータ600は起動されると、図17のステップS401において、主記憶部120のクリア、メモリコントローラ602やハードウェア609の初期化などのハードウェアの初期化を行った後、次のステップS402において、IPL604に実装されたステータステーブル初期化部550によって、主記憶部120および不揮発性記憶部130に物理アドレスを割り当て、メモリコントローラ602内のステータステーブル部510を初期設定する。
【0100】
図20に物理アドレスの割り当て例を、図21(a)にステータステーブル部510の初期設定例を、それぞれ示す。
【0101】
図20を参照すると、不揮発性記憶部130の各ブロックには256〜511の物理ブロックアドレスが割り当てられ、主記憶部120の各ブロックには768〜25600の物理ブロックアドレスが割り当てられている。ここで、主記憶部120のブロックのうち、不揮発性記憶部130のブロック数と等しい数のブロックが連続する領域として、物理ブロックアドレス768〜1023の領域を、不揮発性記憶ブロック130のブロックをコピーするための領域として予約しておく。物理ブロックアドレス1024以降のブロックは予約されていない主記憶領域である。このような物理アドレスの割り当て及びコピー領域の選定を行う理由は、アドレス変換部570における物理アドレス間の変換を簡素化するためである。以下、この点について説明する。
【0102】
本実施例では1ブロックの容量を4096バイトとしている。従って、不揮発性記憶ブロック130の物理アドレスは16進数で表現すると、0x1000000〜0x1FFFFFとなり、コピー領域としての予約領域の物理アドレスは、0x3000000〜0x3FFFFFとなる。不揮発性記憶部130の物理ブロックアドレス256のブロックのコピー先として予約領域の物理ブロックアドレス768のブロック、物理ブロックアドレス257のブロックのコピー先として物理ブロックアドレス769のブロック、…、物理ブロックアドレス511のブロックのコピー先として物理ブロックアドレス1023のブロックを使うようにすると、不揮発性記憶部130の或るブロックの物理アドレスとそのコピー先となる予約領域のブロックの物理アドレスとは、16進数表記で下位6桁目が「1」か「3」の相違になり、2進数表記では下位22ビット目が「0」か「1」の相違になる。従って、不揮発性記憶部130の或るブロックに属する物理アドレスを、そのブロックのコピー先のブロックに属する物理アドレスに変換する操作は、下位22ビット目の値を0から1に変更する操作で済む。
【0103】
図21(a)を参照すると、メモリコントローラ602が備えるステータステーブル部510の初期状態は、不揮発性記憶部130に割り当てられた物理ブロックアドレス256〜511に対して、全てコピー未完了を示す論理値0のステータスが設定される。
【0104】
図17のステップS403においては、CPU601が不揮発性記憶部130に保存されている主記憶イメージからシステムを起動する。具体的には、IPL604がCPU201内のプログラムカウントにシステムの運用を開始する際に最初に実行する命令の論理アドレスを設定し、その命令から実行を開始させることにより、システムの運用を開始させる(ステップS404)。
【0105】
次に、システム運用(ステップS404)の段階において、CPU601上で実行されるプログラムが主記憶装置101をアクセスした際の動作を説明する。例として以下のようなアクセスを想定する。
(1)物理ブロックアドレス「400」を持つ物理アドレスへの最初の書き込みアクセス
(2)物理ブロックアドレス「400」を持つ物理アドレスへの2回目以降の書き込みアクセス
(3)物理ブロックアドレス「256」を持つ物理アドレスへの読み出しアクセス
(4)物理ブロックアドレス「1024」を持つ物理アドレスへのアクセス
【0106】
先ず、物理ブロックアドレス「400」を持つ物理アドレスへの最初の書き込みアクセスが発生した際の動作を説明する。この場合、メモリコントローラ602は、物理ブロックアドレス「400」でステータステーブル部510を検索し、図21中の「ブロックアドレス400、ステータス0」のエントリを取得する(ステップS301)。次に、メモリコントローラ602は、検索に成功したので不揮発性記憶部130へのアクセスであることを判別し(ステップS302でYES)、且つ、ステータスが0(コピー未完了)であることを判別する(ステップS304でYES)。次に、メモリコントローラ602は、メモリアクセスが書き込みアクセスであることを判別し(ステップS306でYES)、物理ブロックアドレス「400」で保護情報部540を検索し、図19中の「ブロックアドレス400、保護属性RW」のエントリを取得する(ステップS307)。メモリコントローラ602は、取得した保護属性が読み書き可能であることを確認し(ステップS308でNO)、物理ブロックアドレス「400」のブロックを主記憶部120の予約領域における物理ブロックアドレス「912」のブロックにコピーする(ステップS309)。次に、図21(b)に示すように、ステータステーブル部510中の物理ブロックアドレス「400」のステータスを0から1(コピー完了)に更新する(ステップS310)。次に、メモリコントローラ602は、今回のアクセスにかかる物理アドレスの下位22ビット目の値を0から1に変更することにより、物理アドレスの変換を行い(ステップS305)、主記憶部120の物理ブロックアドレス「912」のブロックにコピーされたデータを、プログラムから渡されたデータで書き換える(ステップS303)。
【0107】
このように、システムの運用開始後、不揮発性記憶部130の保護属性がRWの或るブロックに対して最初の書き込みアクセスが発生した場合、そのブロックが主記憶部120にコピーされ、そのコピー上で更新が行われる。
【0108】
次に、物理ブロックアドレス「400」を持つ物理アドレスへの2回目以降の書き込みアクセスが発生した場合の動作を説明する。メモリコントローラ602は、物理ブロックアドレス「400」でステータステーブル部510を検索すると、ステータステーブル部510は図21(a)の状態から図21(b)の状態に更新されているので、「ブロックアドレス400、ステータス1」のエントリを取得する(ステップS301)。次に、メモリコントローラ602は、検索に成功したので不揮発性記憶部130へのアクセスであることを判別し(ステップS302でYES)、且つ、ステータスが1(コピー完了)であることを判別する(ステップS304でYES)。次に、メモリコントローラ602は、今回のアクセスにかかる物理アドレスの下位22ビット目の値を0から1に変更することにより、物理アドレスの変換を行い(ステップS305)、主記憶部120の物理ブロックアドレス「912」のブロックにコピーされたデータを、プログラムから渡されたデータで書き換える(ステップS303)。
【0109】
このように、システムの運用開始後、不揮発性記憶部130の保護属性がRWの或るブロックに対して2回目以降の書き込みアクセスが発生した場合、初回のようなコピー動作は最早必要ないため、主記憶部120上に存在するコピーが直ちに更新される。
【0110】
次に、論理ブロックアドレス「256」を持つ論理アドレスへの読み出しアクセスが発生した場合の動作を説明する。メモリコントローラ602は、物理ブロックアドレス「256」でステータステーブル部510を検索し、図21中の「ブロックアドレス256、ステータス0」のエントリを取得する(ステップS301)。次に、メモリコントローラ602は、検索に成功したので不揮発性記憶部130へのアクセスであることを判別し(ステップS302でYES)、且つ、ステータスが0(コピー未完了)であることを判別する(ステップS304でYES)。次に、メモリコントローラ602は、メモリアクセスが読み出しアクセスであるため(ステップS306でNO)、物理アドレス変換を行わず、入力された物理ブロックアドレス「256」を持つ物理アドレスそのもので不揮発性記憶部130をアクセスし、読み出したデータをプログラムに返却する(ステップS303)。
【0111】
このように、不揮発性記憶部130への読み出しアクセスに関しては不揮発性記憶部130から直接にデータを読み出す。
【0112】
次に物理ブロックアドレス「1024」を持つ物理アドレスへのアクセスが発生した際の動作を説明する。この場合、メモリコントローラ602は、物理ブロックアドレス「1024」でステータステーブル部510を検索するが、検索に失敗するため不揮発性記憶部130以外の主記憶領域へのアクセスと判定し(ステップS302でNO)、物理アドレス変換を行わず、入力された物理ブロックアドレス「1024」を持つ物理アドレスそのもので主記憶部120をアクセスする(ステップS303)。
【0113】
【発明の第4の実施の形態】
以上の第1乃至第3の実施の形態においては、計算機システムで使用する主記憶イメージを切り替えるためには、計算機システムに実装されている不揮発性記憶部130を、別の主記憶イメージを記憶する他の不揮発性記憶部に差し替えるか、その不揮発性記憶部130に記憶されている主記憶イメージを書き換える必要がある。本実施の形態では、記憶される主記憶イメージが互いに相違する複数の不揮発性記憶部を予め複数実装し、その何れか1つを選択することにより、起動および再起動時に使用する主記憶イメージの切替えを可能とする。
【0114】
図22を参照すると、本実施の形態にかかる計算機システム700は、主記憶装置101に3つの不揮発性記憶部131〜133を備え、データ処理装置700に、3つの不揮発性記憶部131〜133の何れか1つを選択する選択部790と、各不揮発性記憶部131〜133に1対1に対応する3つの保護情報部141〜143の何れか1つを選択する選択部791とを備え、不揮発性記憶部の選択情報をハードウェア初期化部180および選択部790、791に出力する物理的なスイッチ792を備えている点で、図1に示した第1の実施の形態と相違する。なお、本実施の形態では、不揮発性記憶部を131、132、133の3つ備えているが、不揮発性記憶部の数は2以上であれば任意でよい。
【0115】
各々の不揮発性記憶部131〜133には、OS及びアプリケーションプログラムの初期化処理後の主記憶イメージが記憶されており、それらの主記憶イメージは互いに相違する。このため、どの不揮発性記憶部を使用するかによって計算機システム700の仕様が異なるものとなる。
【0116】
次に、本実施の形態の計算機システム700の動作を図23のフローチャートを参照して説明する。計算機システム700は起動されると、先ず、第1の実施の形態と同様にハードウェア初期化部180によってハードウェアの初期化を行うが、その際、スイッチ792から出力される選択情報に応じて、選択部790が不揮発性記憶部131〜133のうち選択情報で指定された1つの不揮発性記憶部を選択し、また選択部791が保護情報部141〜143のうち、選択された不揮発性記憶部に対応する保護情報部を選択する。ここでは、説明の便宜上、不揮発性記憶部131および保護情報部141が選択されたものとする。
【0117】
次に、マッピングテーブル初期化部150によって、主記憶部120と、不揮発性記憶部131〜133のうち選択された不揮発性記憶部131に物理アドレスを割り当て、マッピングテーブル部110を初期設定する(ステップS502)。マッピングテーブル部110の初期設定では、論理ブロックアドレスと物理ブロックアドレスの対応関係をマッピングテーブル部110に書き込み、且つ、選択された不揮発性記憶部131の全てのブロックは読み込み専用の保護モードでマッピングテーブル部110に登録する。
【0118】
次にデータ処理装置702は、選択された不揮発性記憶部131に保存されている主記憶イメージからシステムを起動する(ステップS503)。この主記憶イメージは、OSやアプリケーションの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、主記憶イメージから起動してから、システム運用(ステップS504)が可能になるまでの運用中断状態は存在しない。
【0119】
システム運用(ステップS504)の段階において、プログラムから不揮発性記憶部131のとあるブロックに対して初めての書き込みアクセスが発生したときには、そこは読み込み専用の保護モードでマッピングされているのでアドレス変換部170が例外イベントを通知し、当該書き込みアクセスを一時保留する。例外イベントを受け取ったマッピングテーブル変更部160は、選択された保護情報部141を参照してその書き込み発生論理アドレスのブロックの保護属性を判断し、読み書き可能属性であれば、そのブロックの大きさの空きブロックを主記憶部120から割り当て、その不揮発性記憶部131の当該ブロックの内容をコピーする。更に、マッピングテーブル変更部160は、割り当てられた主記憶ブロックを書き込みが発生した論理ブロックアドレスに読み書き可の保護モードでマッピングするようマッピングテーブル部110に設定して、一時保留された書き込みアクセスの処理を再開させる。この結果、一時保留された書き込みアクセスおよびその後の当該ブロックへの書き込み操作は、割り当てられた主記憶ブロックに対して実行される。このとき、ブロックの単位を小さくすることでコピー時間が短くなり、システム運用が中断される時間を短くすることができる。
【0120】
この状態で、再起動が行われると(ステップS505)、再びハードウェアの初期化処理(ステップS501)から実行され、起動時と同じようにマッピングテーブル初期化部150の動作によってマッピングテーブル部110の内容が初期化され、不揮発性記憶部131がマッピングし直される(ステップS502)。このため、システムの運用中に主記憶部120に対して行われた書き込みの内容は一切反映されていない状態に戻り、これがつまり、立ち上げ直後の環境に復帰することと同じになる。
【0121】
以上の実施の形態では、不揮発性記憶部131〜133の何れを使用するかを物理的なスイッチ792で制御したが、BIOS設定のフラグで制御することも可能である。また、複数存在する不揮発性記憶部のうち選択された不揮発性記憶部だけに物理アドレスを割り当てたが、全ての不揮発性記憶部に物理アドレスを割り当てるようにしても良いし、全ての不揮発性記憶部に物理アドレスが静的に割り当てられていても良い。また、全ての不揮発性記憶部で同じ保護属性が使える場合、保護情報部141〜143は1つで良く、選択部791は省略できる。更に、本実施の形態と第1の実施の形態との差と同様な変更を第2および第3の実施の形態の計算機システムに適用することも可能である。
【0122】
【発明の第5の実施の形態】
第4の実施の形態では、複数の不揮発性記憶部の何れか1つを選択することによって計算機システムで使用する主記憶イメージの切り換えを可能とした。この方法は主記憶イメージの大幅な切替えには適するが、主記憶イメージの一部分だけを別のイメージに変更する場合には、複数の不揮発性記憶部中の主記憶イメージの大部分が同じになるため無駄が多い。本実施の形態は、不揮発性記憶部に記憶された主記憶イメージの一部分だけを別のイメージに置き換える。
【0123】
図24を参照すると、本実施の形態にかかる計算機システム800は、主記憶装置101に基本となる不揮発性記憶部130以外に第1の追加不揮発性記憶部135と第2の追加不揮発性記憶部136とを備えている点で、図1に示した第1の実施の形態と相違する。なお、本実施の形態では、追加不揮発性記憶部を135、136の2つを備えているが、不揮発性記憶部の数は1以上であれば任意でよい。
【0124】
各々の追加不揮発性記憶部135、136には、不揮発性記憶部130に記憶されているOS及びアプリケーションプログラムの初期化処理後の主記憶イメージに対する一部分の修正イメージが記憶されている。概念図を図25に示す。図25において、1300は不揮発性記憶部130に記憶されている主記憶イメージ、1301は追加不揮発性記憶部135に記憶されている修正イメージである。修正イメージ1301は、この例では2つのブロック1302、1303から構成され、ブロック1302は主記憶イメージ1300のブロック1305に対応し、ブロック1303は主記憶イメージ1300のブロック1306に対応している。ブロック1305、1306内の斜線を施した領域1307、1308は修正対象としたい領域である。修正イメージ1301のブロック1302、1303内のドットを施した領域1309、1310は、領域1307、1308のイメージと置き換えるイメージである。
【0125】
追加不揮発性記憶部135に記憶する修正イメージの生成方法は任意であるが、例えば、追加ハードウェア901が実装された計算機システムを通常の方法で起動した直後の主記憶イメージをダンプし、追加ハードウェア901および902が実装されていない計算機システムの起動直後の主記憶イメージと比較し、内容に異なる部分があるブロックを抽出することで生成することができる。追加不揮発性記憶部136に記憶する修正イメージは、例えば、追加ハードウェア901および902が実装された計算機システム900を通常の方法で起動した直後の主記憶イメージをダンプし、追加ハードウェア901が実装され、追加ハードウェア902が実装されていない計算機システムの起動直後の主記憶イメージと比較し、内容に異なる部分があるブロックを抽出することで生成することができる。
【0126】
また、各々の追加不揮発性記憶部135、136には、修正後イメージに加えて、各ブロック毎に、割り当てられるべき物理ブロックアドレスとマッピングされるべき論理ブロックアドレスの情報と追加の適用順序とが予め記憶されている。追加の適用順序は、複数の追加不揮発性記憶部の適用順番を保証する場合に必要であり、順不同で適用しても結果が同じになる場合には省略できる。これらの追加不揮発性記憶部135、136は、不揮発性記憶部130と同様に不揮発性を有するメモリなら任意の種類のメモリで良く、例えばフラッシュメモリ等の書き換え可能な不揮発性メモリや、ROM等の読み出し専用の不揮発性メモリが使用される。
【0127】
図26は計算機システム800の概略動作を示すフローチャートである。以下、各図を参照して本実施の形態の動作を説明する。
【0128】
計算機システム800は起動されると、図26に示されるように、先ず、ハードウェア初期化部180によってハードウェアの初期化を行った後(ステップS601)、マッピングテーブル初期化部150によって、主記憶部120および不揮発性記憶部130に物理アドレスを割り当て、マッピングテーブル部110を初期設定する(ステップS602)。ハードウェアの初期化に伴うハードウェアのチェックの段階で、追加不揮発性記憶部135、136が実装されていることが検出される。マッピングテーブル部110の初期設定では、論理ブロックアドレスと物理ブロックアドレスの対応関係をマッピングテーブル部110に書き込み、且つ、不揮発性記憶部130の全てのブロックは読み込み専用の保護モードでマッピングテーブル部110に登録する。
【0129】
続いてマッピングテーブル初期化部150は、追加不揮発性記憶部135および追加不揮発性記憶部136が実装されているので、それらに書き込まれている物理ブロックアドレスの情報に従って物理アドレスを割り当て、また、書き込まれている論理アドレスの情報に従ってマッピングテーブル部110のマッピングを追加順に変更する(ステップS603)。つまり、追加の適用順序が追加不揮発性記憶部135、追加不揮発性記憶部136の順であれば、不揮発性記憶部130がマッピングされている論理ブロックアドレスの一部を先ず第1の追加不揮発性記憶部135で部分的に置き換え、次に第2の追加不揮発性記憶部136で部分的に置き換える。このときも、追加不揮発性記憶部135および追加不揮発性記憶部136の領域は読み込み専用の保護モードでマッピングテーブル部110に登録される。
【0130】
次にデータ処理装置802は、不揮発性記憶部130に保存されている主記憶イメージからシステムを起動する(ステップS604)。この主記憶イメージは、OSやアプリケーションの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、主記憶イメージから起動してから、システム運用(ステップS605)が可能になるまでの運用中断状態は存在しない。
【0131】
システム運用(ステップS605)の段階において、プログラムから主記憶装置101がアクセスされた際には、第1の実施の形態と同様に図4に示した処理が実行される。これにより、プログラムから不揮発性記憶部130および追加不揮発性記憶部135、136の何れかのとあるブロックに対して初めての書き込みアクセスが発生したときには、そこは読み込み専用の保護モードでマッピングされているのでアドレス変換部170が例外イベントを通知し、当該書き込みアクセスを一時保留する(図4のS106)。例外イベントを受け取ったマッピングテーブル変更部160は、保護情報部140を参照してその書き込み発生論理アドレスのブロックの保護属性を判断し(図4のステップS108)、読み書き可能属性であれば、そのブロックの大きさの空きブロックを主記憶部120から割り当て、その不揮発性記憶部130、135、136の該当ブロックの内容をコピーする(図4のステップS109)。更に、マッピングテーブル変更部160は、割り当てられた主記憶ブロックを書き込みが発生した論理ブロックアドレスに読み書き可の保護モードでマッピングするようマッピングテーブル部110に設定して、一時保留された書き込みアクセスの処理を再開させる(図4のステップS110)。この結果、一時保留された書き込みアクセスおよびその後の当該ブロックへの書き込み操作は、割り当てられた主記憶ブロックに対して実行される。このとき、ブロックの単位を小さくすることでコピー時間が短くなり、システム運用が中断される時間を短くすることができる。
【0132】
この状態で、再起動が行われると(図26のステップS606)、再びハードウェアの初期化処理(ステップS601)から実行され、起動時と同じようにマッピングテーブル初期化部150の動作によってマッピングテーブル部110の内容が初期化され、不揮発性記憶部130および追加不揮発性記憶部135、136がマッピングし直される(ステップS602、S603)。このため、システムの運用中に主記憶部120に対して行われた書き込みの内容は一切反映されていない状態に戻り、これがつまり、立ち上げ直後の環境に復帰することと同じになる。
【0133】
次に、本実施の形態について、一実施例を挙げてより詳細に説明する。
【0134】
図27のコンピュータ900は、本実施の形態を適用した計算機システムの一例である。このコンピュータ900は、主記憶装置101が主記憶部120と不揮発性記憶部130に加えて追加不揮発性記憶部135、136を備え、ハードウェア209に加えて追加ハードウェア901、902を備えている点で、図6に示した第1の実施の形態の実施例にかかるコンピュータ200と相違している。
【0135】
CPU201に接続された追加ハードウェア901、902は、ネットワークカード、SCSIカード、サウンドカードなどのハードウェアである。不揮発性記憶部130に記憶される主記憶イメージは、追加ハードウェア901、902が追加されていない図6のコンピュータ200と同じシステム構成時の主記憶イメージである。追加ハードウェア901を追加すると、不揮発性記憶部130中の主記憶イメージの一部分を修正する必要があり、追加不揮発性記憶部135にはその修正後のイメージが記憶されている。同様に、さらに追加ハードウェア902を追加すると、不揮発性記憶部130中の主記憶イメージの一部分をさらに修正する必要があり、追加不揮発性記憶部136にはその修正後のイメージが記憶されている。
【0136】
以下、本実施例のコンピュータ900の動作を説明する。
【0137】
コンピュータ900は起動されると、図26のステップS601において、主記憶部120のクリア、ハードウェア209および追加ハードウェア901、902の初期化などのハードウェアの初期化を行う。このハードウェアの初期化に伴うハードウェアチェックにおいて、追加不揮発性記憶部135、136が実装されていること、および、追加不揮発性記憶部135、136に保持されている物理論理割付情報および追加の適用順序の情報が読み取られる。今、追加不揮発性記憶部135、136に以下のような物理論理割付情報が保持されているものとする。
○追加不揮発性記憶部135
追加順番:1
第1ブロック:物理ブロックアドレス「20」、論理ブロックアドレス「1」
第2ブロック:物理ブロックアドレス「21」、論理ブロックアドレス「3」
○追加不揮発性記憶部136
追加順番2
第1ブロック:物理ブロックアドレス「30」、論理ブロックアドレス「2」
第2ブロック:物理ブロックアドレス「31」、論理ブロックアドレス「4」
【0138】
なお、上記の例では双方の追加不揮発性記憶部135で論理ブロックアドレスは重複していないが、追加されるハードウェアの種類などによっては重複する場合もあり得る。この場合には、結果として適用順序が後になるものが最終的に適用される。
【0139】
次のステップS602では、IPL204に実装されたマッピングテーブル初期化部150によって、主記憶部120および不揮発性記憶部130に物理アドレスを割り当て、マッピングテーブル部110を初期設定する。図28に物理アドレスの割り当て例を、図29(a)にマッピングテーブル部110の初期設定例を、それぞれ示す。図示した例は本発明の理解を容易にするためにブロック数を極めて小さくしてあり、実際には数多くのブロックが存在する。
【0140】
図28を参照すると、不揮発性記憶部130の各ブロックには0〜6の物理ブロックアドレスが割り当てられ、主記憶部120の各ブロックには7以降の物理ブロックアドレスが割り当てられている。また、図29(a)を参照すると、主記憶部120に生成されるマッピングテーブル部110の初期状態は、0〜5の論理ブロックアドレスに対して、不揮発性記憶部130に割り当てられた物理ブロックアドレス1〜6が対応付けられ、それらの保護モードは全て読み込み専用(R)に設定される。また、6の論理ブロックアドレスに対して、主記憶部120の予め定められた物理ブロック(例では物理ブロックアドレス7のブロック)が対応付けられ、その保護モードは読み書き可能(RW)に設定される。ここで、物理ブロックアドレス7のブロックは、マッピングテーブル部110が生成されるブロックである。
【0141】
図26のステップS603においては、追加不揮発性記憶部135、136に書き込まれている物理論理割付情報に従って物理アドレスを割り当て、また、書き込まれている論理アドレスの情報に従ってマッピングテーブル部110のマッピングを変更する。図28に物理アドレスの割り当て例を、図29(b)にマッピングテーブル部110の変更例を、それぞれ示す。
【0142】
図28を参照すると、第1の追加不揮発性記憶部135の2つのブロックに物理ブロックアドレス「20」、「21」が割り当てられ、次に第2の追加不揮発性記憶部136の2つのブロックに物理ブロックアドレス「30」、「31」が割り当てられている。
【0143】
図29(b)を参照すると、論理ブロックアドレス「1」と「3」に、追加不揮発性記憶媒体135の物理ブロックアドレス「20」と「21」が上書きされ、論理ブロックアドレス「2」と「4」に、追加不揮発性記憶媒体136の物理ブロックアドレス「30」と「31」が上書きされている。
【0144】
図26のステップS604においては、CPU201がシステムの運用を開始する際に最初に実行する論理アドレスの命令から実行を開始することにより、システムの運用を開始する。このシステム運用の段階において、CPU201上で実行されるプログラムが主記憶装置101をアクセスした際には、第1の実施の形態と同様な動作が行われる。例えば、論理ブロックアドレス「3」を持つ論理アドレスへの最初の書き込みアクセスを例にすると、以下のような動作となる。
【0145】
アドレス変換部170は、論理ブロックアドレス「3」でマッピングテーブル部110を検索し、図29(b)中の「論理ブロックアドレス3、物理ブロックアドレス21、保護モードR」のエントリを取得する(図4のステップS101)。次に、アドレス変換部170は、メモリアクセスが書き込みアクセスであり(ステップS102でYES)、保護モードが読み込み専用であるので(ステップS105)、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部160に通知して例外処理を起動する(ステップS106)。
【0146】
マッピングテーブル変更部160は、論理ブロックアドレス「3」で保護情報部140を検索する。保護情報部140の内容が第1の実施の形態の実施例と同様に図7に示したものである場合、図7の論理ブロックアドレス3を持つエントリの保護属性RWを取得する(ステップS107)。次に、マッピングテーブル変更部160は、保護属性RWが読み書き可能な保護属性であるので(ステップS108)、物理ブロックアドレス「21」で特定される追加不揮発性記憶部135のブロックを、その時点の主記憶部120の空きブロック(物理ブロックアドレス13のブロックとする)にコピーする(ステップS109)。次にマッピングテーブル変更部160は、図30(a)に示されるように、論理ブロックアドレス「3」を持つエントリの物理ブロックアドレスを「21」から「13」に書き換え、かつ保護モードをRからRWに書き換える(ステップS110)。そして、例外処理の完了をアドレス変換部170に通知する。
【0147】
アドレス変換部170は、マッピングテーブル変更部160から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理をステップS101から再開する。アドレス変換部170は、論理ブロックアドレス「3」でマッピングテーブル部110を検索すると、マッピングテーブル部11は図29(b)の状態から図30(a)の状態に更新されているので、今度は「論理ブロックアドレス3、物理ブロックアドレス13、保護モードRW」のエントリを取得する(ステップS101)。アドレス変換部170は、プログラムから指定されたメモリアクセスが、書き込みアクセスであり(ステップS102でYES)、保護モードがRWなので(ステップS105でNO)、取得したエントリ中の物理ブロックアドレス「13」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し(ステップS103)、その物理アドレスで特定される主記憶装置101の個所をアクセスし、プログラムから渡されたデータを書き込む(ステップS104)。
【0148】
同様に、論理ブロックアドレス「5」を持つ論理アドレスへの最初の書き込みアクセスが発生した場合には、マッピングテーブル部110は図30(b)のように更新される。
【0149】
このように本実施例においても、第1の実施の形態の実施例と同様に、システムの運用開始後、不揮発性記憶部130の保護属性がRWの或るブロックに対して最初の書き込みアクセスが発生した場合、そのブロックが主記憶部120にコピーされ、そのコピー上で更新が行われる。
【0150】
なお、本実施の形態と第1の実施の形態との差と同様な変更を第2および第3の実施の形態の計算機システムに適用することも可能である。
【0151】
【発明の効果】
第1の効果は、計算機システムの高速な起動が可能になることである。その理由は、不揮発性記憶部に記憶された主記憶イメージからシステムを起動し、且つ、OSやアプリケーションプログラムによって書き換える必要のあるデータをシステムの起動時に不揮発性記憶部から読み書き可能な代替記憶部へ連続してコピーするのではなく、不揮発性記憶部に対して書き込みアクセスが発生した都度実施するため、起動時にメモリコピーが連続的に発生しないためである。
【0152】
第2の効果は、主記憶が無駄に使用されないことにある。その理由は、読み込み専用のデータは主記憶にコピーすることなく不揮発性記憶部から直接読み込むためである。また、読み込み専用のデータはコピーしないので、不揮発性記憶部の全内容をコピーする場合に比べてコピー時間が短縮する効果もある。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態の構成を示すブロック図である。
【図2】本発明の第1の実施の形態におけるマッピングテーブル部のエントリの構成例を示す図である。
【図3】本発明の第1の実施の形態における保護情報部のエントリの構成例を示す図である。
【図4】本発明の第1の実施の形態におけるアドレス変換部およびマッピングテーブル変更部の処理例を示すフローチャートである。
【図5】 本発明の第1の実施の形態の動作の概略を示すフローチャートである。
【図6】本発明の第1の実施の形態の一実施例のブロック図である。
【図7】本発明の第1の実施の形態の一実施例における保護情報部の内容例を示す図である。
【図8】本発明の第1の実施の形態の一実施例における物理アドレスの割り当て例を示す図である。
【図9】本発明の第1の実施の形態の一実施例におけるマッピングテーブル部の初期状態および変更後の状態を示す図である。
【図10】本発明の第2の実施の形態の構成を示すブロック図である。
【図11】本発明の第2の実施の形態の動作の概略を示すフローチャートである。
【図12】本発明の第2の実施の形態の一実施例のブロック図である。
【図13】本発明の第3の実施の形態の構成を示すブロック図である。
【図14】本発明の第3の実施の形態におけるステータステーブル部のエントリの構成例を示す図である。
【図15】本発明の第3の実施の形態における保護情報部のエントリの構成例を示す図である。
【図16】本発明の第3の実施の形態におけるメモリアクセス部の処理例を示すフローチャートである。
【図17】本発明の第3の実施の形態の概略動作を示すフローチャートである。
【図18】本発明の第3の実施の形態の一実施例のブロック図である。
【図19】本発明の第3の実施の形態の一実施例における保護情報部の内容例を示す図である。
【図20】本発明の第3の実施の形態の一実施例における物理アドレスの割り当て例を示す図である。
【図21】本発明の第3の実施の形態の一実施例におけるステータステーブル部の初期状態および変更後の状態を示す図である。
【図22】本発明の第4の実施の形態の構成を示すブロック図である。
【図23】本発明の第4の実施の形態の概略動作を示すフローチャートである。
【図24】本発明の第5の実施の形態の構成を示すブロック図である。
【図25】本発明の第5の実施の形態における不揮発性記憶部に記憶される主記憶イメージと追加不揮発性記憶部に記憶される修正イメージとの関係を示す図である。
【図26】本発明の第5の実施の形態の概略動作を示すフローチャートである。
【図27】本発明の第5の実施の形態の一実施例のブロック図である。
【図28】本発明の第5の実施の形態の一実施例における物理アドレスの割り当て例を示す図である。
【図29】本発明の第5の実施の形態の一実施例におけるマッピングテーブル部の初期状態を示す図である。
【図30】本発明の第5の実施の形態の一実施例におけるマッピングテーブル部の変更後の状態を示す図である。
【符号の説明】
100 計算機システム
101 主記憶装置
102 データ処理装置
110 マッピングテーブル部
120 主記憶部
130〜133 不揮発性記憶部
135、136 追加不揮発性記憶部
140 保護情報部
150 マッピングテーブル初期化部
160 マッピングテーブル変更部
170 アドレス変換部

Claims (24)

  1. 主記憶装置の一部を構成する不揮発性記憶部に記憶されたOS及びアプリケーションプログラムの初期化処理後の主記憶イメージからシステムの起動を行い、前記主記憶イメージの所定幅の領域毎に、システム運用後に初めて書き込みアクセスが発生したときに、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーしてそのコピー上で書き込みを行い、以後、コピー済みの主記憶イメージの領域へのアクセスは前記コピーへのアクセスに切り替える計算機システム。
  2. OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動し、システム運用中に前記OSまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する設定を行うデータ処理装置とを備えることを特徴とする計算機システム。
  3. 前記データ処理装置は、システム運用中に前記OSまたは前記アプリケーションプログラムから前記不揮発性記憶部への読み出しアクセスが発生した場合には前記不揮発性記憶部からデータの読み出しを行うものであることを特徴とする請求項2記載の計算機システム。
  4. 前記OS及び前記アプリケーションプログラムが前記主記憶装置をアクセスする際に指定するアドレスの所定幅のアドレス範囲毎に保護属性を記憶する保護情報部を備え、前記データ処理装置は、前記書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲の保護属性を前記保護情報部から参照し、保護属性が読み書き可能である場合に限って、前記コピーと前記設定を行い、保護属性が読み出し専用である場合にはエラーとするものであることを特徴とする請求項3記載の計算機システム。
  5. 前記不揮発性記憶部に記憶された主記憶イメージと異なる主記憶イメージを記憶する1以上の他の不揮発性記憶部を備え、且つ、前記不揮発性記憶部および前記他の不揮発性記憶部の何れか1つを起動時に選択する選択部を備えることを特徴とする請求項4記載の計算機システム。
  6. 前記不揮発性記憶部に記憶された主記憶イメージの一部分の修正イメージを記憶する1以上の追加不揮発性記憶部を備え、前記主記憶イメージのうち前記追加不揮発性記憶部に記憶された修正イメージに対応する領域にマッピングされた物理アドレスを、前記追加不揮発性記憶部の修正イメージにマッピングされた物理アドレスにマッピングし直す手段を備えることを特徴とする請求項4記載の計算機システム。
  7. 前記不揮発性記憶部は読み出し専用の記憶装置で構成されていることを特徴とする請求項4、5または6記載の計算機システム。
  8. 前記不揮発性記憶部は読み書き可能な記憶装置で構成されていることを特徴とする請求項4、5または6記載の計算機システム。
  9. OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備え、前記データ処理装置は、システムの論理ブロックの保護属性を保持する保護情報部を有し、システムの起動時に、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の保護モードを設定したマッピングテーブルを生成するマッピングテーブル初期化手段と、システム運用中に前記OSまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロックの保護属性を前記保護情報部から参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが前記保護情報部から参照した保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段とを備えることを特徴とする計算機システム。
  10. OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備え、前記データ処理装置は、システムの論理ブロックの保護属性を保持する保護情報部を有し、システム運用中に前記OSまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の保護モードが初期設定されているマッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロックの保護属性を前記保護情報部から参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが前記保護情報部から参照した保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段とを備えることを特徴とする計算機システム。
  11. OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備え、前記データ処理装置は、システムの起動時に、前記不揮発性記憶部の物理ブロックアドレス毎にコピー未完了を示すステータスを設定したステータステーブルを生成するステータステーブル初期化手段と、システム運用中に前記OSまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生したとき、前記ステータステーブルに設定されたステータスがコピー未完了であれば、アクセス先物理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込み先物理ブロック内のデータを前記不揮発性記憶部から前記主記憶部に予め予約した代替ブロックにコピーし、前記アクセス先物理ブロックのコピーが完了した旨を示すように前記マッピングテーブルのステータスを更新した後、前記書き込みアクセスの物理アドレスのブロックアドレスを前記代替ブロックのブロックアドレスに変更した物理アドレスで前記代替ブロックをアクセスし、システム運用中に前記OSまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生したとき、前記ステータステーブルに設定されたステータスがコピー完了であれば、前記書き込みアクセスの物理アドレスのブロックアドレスを前記代替ブロックのブロックアドレスに変更した物理アドレスで前記代替ブロックをアクセスするメモリアクセス部とを備えることを特徴とする計算機システム。
  12. それぞれ異なる、OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する複数の不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記複数の不揮発性記憶部の何れか1つをシステムの起動時に選択する選択手段を備え、前記選択された不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備え、前記データ処理装置は、システムの論理ブロックの保護属性を保持する保護情報部を有し、システムの起動時に、システムの論理ブロックアドレスに対して前記選択された不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の保護モードを設定したマッピングテーブルを生成するマッピングテーブル初期化手段と、システム運用中に前記OSまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロックの保護属性を前記保護情報部から参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記選択された不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが前記保護情報部から参照した保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段とを備えることを特徴とする計算機システム。
  13. OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と該不揮発性記憶部に記憶された主記憶イメージの一部分の修正イメージを記憶する1以上の追加不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備え、前記データ処理装置は、システムの論理ブロックの保護属性を保持する保護情報部を有し、システムの起動時に、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の保護モードを設定したマッピングテーブルを生成し、且つ、前記主記憶イメージのうち前記追加不揮発性記憶部に記憶された修正イメージに対応する領域にマッピングされた物理ブロックアドレスを、前記追加不揮発性記憶部の修正イメージにマッピングされた物理アドレスにマッピングし直すマッピングテーブル初期化手段と、システム運用中に前記OSまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロックの保護属性を前記保護情報部から参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部または前記追加不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが前記保護情報部から参照した保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段とを備えることを特徴とする計算機システム。
  14. 主記憶装置の一部を構成する不揮発性記憶部に予め記憶されたOS及びアプリケーションプログラムの初期化処理後の主記憶イメージからシステムの起動を行い、前記主記憶イメージの所定幅の領域毎に、システム運用後に初めて書き込みアクセスが発生したときに、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーしてそのコピー上で書き込みを行い、以後、コピー済みの主記憶イメージの領域へのアクセスは前記コピーへのアクセスに切り替える計算機システム起動方法。
  15. a)OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置における前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するステップ、b)システム運用中に前記OSまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する設定を行うステップ、を含むことを特徴とする計算機システム起動方法。
  16. c)システム運用中に前記OSまたは前記アプリケーションプログラムから前記不揮発性記憶部への読み出しアクセスが発生した場合には前記不揮発性記憶部からデータの読み出しを行うステップ、を含むことを特徴とする請求項15記載の計算機システム起動方法。
  17. 前記OS及び前記アプリケーションプログラムが前記主記憶装置をアクセスする際に指定する論理アドレスの所定幅のアドレス範囲毎に保護属性を記憶する保護情報部を設け、前記書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲の保護属性を前記保護情報部から参照し、保護属性が読み書き可能である場合に限って、前記コピーと前記設定を行い、保護属性が読み出し専用である場合にはエラーとすることを特徴とする請求項16記載の計算機システム起動方法。
  18. 前記不揮発性記憶部に記憶された主記憶イメージと異なる主記憶イメージを記憶する1以上の他の不揮発性記憶部を設け、前記不揮発性記憶部および前記他の不揮発性記憶部の何れか1つを起動時に選択するステップを含むことを特徴とする請求項17記載の計算機システム起動方法。
  19. 前記不揮発性記憶部に記憶された主記憶イメージの一部分の修正イメージを記憶する1以上の追加不揮発性記憶部を設け、前記主記憶イメージのうち前記追加不揮発性記憶部に記憶された修正イメージに対応する領域にマッピングされた物理アドレスを、前記追加不揮発性記憶部の修正イメージにマッピングされた物理アドレスにマッピングし直すステップを含むことを特徴とする請求項17記載の計算機システム起動方法。
  20. OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、システムの論理ブロックの保護属性を保持する保護情報部を有し、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備えた計算機を、システムの起動時に、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の保護モードを設定したマッピングテーブルを生成するマッピングテーブル初期化手段、システム運用中に前記OSまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロックの保護属性を前記保護情報部から参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが前記保護情報部から参照した保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段、として機能させるプログラム。
  21. OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、システムの論理ブロックの保護属性を保持する保護情報部を有し、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備えた計算機を、システム運用中に前記OSまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の保護モードが初期設定されているマッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロックの保護属性を前記保護情報部から参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが前記保護情報部から参照した保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段、として機能させるプログラム。
  22. OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備えた計算機を、システムの起動時に、前記不揮発性記憶部の物理ブロックアドレス毎にコピー未完了を示すステータスを設定したステータステーブルを生成するステータステーブル初期化手段、システム運用中に前記OSまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生したとき、前記ステータステーブルに設定されたステータスがコピー未完了であれば、アクセス先物理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込み先物理ブロック内のデータを前記不揮発性記憶部から前記主記憶部に予め予約した代替ブロックにコピーし、前記アクセス先物理ブロックのコピーが完了した旨を示すように前記マッピングテーブルのステータスを更新した後、前記書き込みアクセスの物理アドレスのブロックアドレスを前記代替ブロックのブロックアドレスに変更した物理アドレスで前記代替ブロックをアクセスし、システム運用中に前記OSまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生したとき、前記ステータステーブルに設定されたステータスがコピー完了であれば、前記書き込みアクセスの物理アドレスのブロックアドレスを前記代替ブロックのブロックアドレスに変更した物理アドレスで前記代替ブロックをアクセスするメモリアクセス手段、として機能させるプログラム。
  23. それぞれ異なる、OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する複数の不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、システムの論理ブロックの保護属性を保持する保護情報部および前記複数の不揮発性記憶部の何れか1つをシステムの起動時に選択する選択手段を備え、前記選択された不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備えた計算機を、システムの起動時に、システムの論理ブロックアドレスに対して前記選択された不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の保護モードを設定したマッピングテーブルを生成するマッピングテーブル初期化手段、システム運用中に前記OSまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロックの保護属性を前記保護情報部から参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記選択された不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが前記保護情報部から参照した保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段、として機能させるプログラム。
  24. OS及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と該不揮発性記憶部に記憶された主記憶イメージの一部分の修正イメージを記憶する1以上の追加不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、システムの論理ブロックの保護属性を保持する保護情報部を有し、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備えた計算機を、システムの起動時に、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の保護モードを設定したマッピングテーブルを生成し、且つ、前記主記憶イメージのうち前記追加不揮発性記憶部に記憶された修正イメージに対応する領域にマッピングされた物理ブロックアドレスを、前記追加不揮発性記憶部の修正イメージにマッピングされた物理アドレスにマッピングし直すマッピングテーブル初期化手段、システム運用中に前記OSまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロックの保護属性を前記保護情報部から参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部または前記追加不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが前記保護情報部から参照した保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段、として機能させるプログラム。
JP2003171788A 2003-06-17 2003-06-17 計算機システム、計算機システム起動方法およびプログラム Expired - Lifetime JP3906825B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003171788A JP3906825B2 (ja) 2003-06-17 2003-06-17 計算機システム、計算機システム起動方法およびプログラム
US10/867,648 US7313683B2 (en) 2003-06-17 2004-06-16 Computer system and method which boots from a bootup-memory-image stored in nonvolatile memory and copies data within an address range of predetermined width to main memory so that the system boots quickly after initialization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003171788A JP3906825B2 (ja) 2003-06-17 2003-06-17 計算機システム、計算機システム起動方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2005010897A JP2005010897A (ja) 2005-01-13
JP3906825B2 true JP3906825B2 (ja) 2007-04-18

Family

ID=33516120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003171788A Expired - Lifetime JP3906825B2 (ja) 2003-06-17 2003-06-17 計算機システム、計算機システム起動方法およびプログラム

Country Status (2)

Country Link
US (1) US7313683B2 (ja)
JP (1) JP3906825B2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590839B2 (en) * 2005-03-22 2009-09-15 Qnx Software Systems Gmbh & Co. Kg System employing fast booting of application programs
US8930659B2 (en) 2005-03-31 2015-01-06 Nec Corporation Computer system, memory management method and program thereof
US7461247B2 (en) * 2005-06-03 2008-12-02 Qnx Software Systems Gmbh & Co. Kg Method for transitioning control of a peripheral device from a first device driver to a second device driver during operating system initialization
US8667184B2 (en) 2005-06-03 2014-03-04 Qnx Software Systems Limited Distributed kernel operating system
US7840682B2 (en) * 2005-06-03 2010-11-23 QNX Software Systems, GmbH & Co. KG Distributed kernel operating system
US9092361B2 (en) * 2005-07-15 2015-07-28 Panasonic Intellectual Property Management Co., Ltd. Nonvolatile storage device, memory controller, and defective region detection method
JP2007087263A (ja) * 2005-09-26 2007-04-05 Nec Corp ミラーメモリ構成のコンピュータシステムにおけるダンプ方法、ダンプ制御機構、およびダンププログラム
JP2007122627A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 情報処理装置及びメモリ初期化方法
US7624260B2 (en) * 2006-05-04 2009-11-24 Qnx Software Systems Gmbh & Co. Kg System executing a fast boot wake-up
US20090055639A1 (en) * 2007-08-20 2009-02-26 Kimmo Kuusilinna Methods and system for modular device booting
JP5056625B2 (ja) * 2008-07-01 2012-10-24 富士通株式会社 回路設計装置および回路設計方法
US8417928B2 (en) * 2008-09-24 2013-04-09 Marvell International Ltd. Turbo boot systems and methods for subsequent booting from a captured data stored in a non-volatile semiconductor memory
JP2010186411A (ja) * 2009-02-13 2010-08-26 Toshiba Corp プログラム実行装置、プログラム実行方法、及びプログラム
JP4986247B2 (ja) * 2009-06-02 2012-07-25 株式会社ユビキタス プログラム、制御方法、並びに制御装置
CN102207875B (zh) * 2010-03-30 2014-11-12 鸿富锦精密工业(深圳)有限公司 媒体数据播放装置及其重新启动方法
KR101668312B1 (ko) * 2010-10-19 2016-10-21 삼성전자 주식회사 모바일 디바이스에서 하이버네이션 기능 지원 방법 및 장치
KR20120069954A (ko) * 2010-12-21 2012-06-29 에스케이하이닉스 주식회사 블럭 보호 기능을 갖는 비휘발성 메모리 시스템 및 블럭 상태 제어 방법
JP2013004036A (ja) 2011-06-21 2013-01-07 Fuji Xerox Co Ltd 情報処理装置および画像形成装置
JP5754264B2 (ja) 2011-06-24 2015-07-29 富士ゼロックス株式会社 プログラム実行装置、画像処理装置およびプログラム
CN103890724B (zh) * 2011-08-19 2017-04-19 株式会社东芝 信息处理设备、用于控制信息处理设备的方法、主机装置、以及用于外部存储装置的性能评估方法
JP5895609B2 (ja) 2012-03-06 2016-03-30 富士ゼロックス株式会社 情報処理装置、画像形成装置およびプログラム
JP5948976B2 (ja) * 2012-03-06 2016-07-06 富士ゼロックス株式会社 画像形成装置および情報処理装置
US9733950B2 (en) * 2013-03-14 2017-08-15 Microchip Technology Incorporated Boot sequencing for multi boot devices
JP5901698B2 (ja) * 2014-06-17 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリ管理方法
JP6379881B2 (ja) * 2014-09-03 2018-08-29 富士ゼロックス株式会社 情報処理装置及びプログラム
US10452561B2 (en) 2016-08-08 2019-10-22 Raytheon Company Central processing unit architecture and methods for high availability systems
CN108664523B (zh) * 2017-03-31 2021-08-13 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
US11094007B1 (en) 2017-05-10 2021-08-17 State Farm Mutual Automobile Insurance Company Continuously updating mortgage ready data
US11210734B1 (en) 2017-05-10 2021-12-28 State Farm Mutual Automobile Insurance Company Approving and updating dynamic mortgage applications
US11966992B1 (en) 2017-05-10 2024-04-23 State Farm Mutual Automobile Insurance Company Identifying multiple mortgage ready properties
US10943294B1 (en) 2017-05-10 2021-03-09 State Farm Mutual Automobile Insurance Company Continuously monitoring and updating mortgage ready data
US10949919B1 (en) 2017-05-10 2021-03-16 State Farm Mutual Automobile Insurance Company Approving and updating dynamic mortgage applications
TWI678620B (zh) * 2018-03-07 2019-12-01 宏碁股份有限公司 儲存系統及儲存方法
CN108763099B (zh) * 2018-04-18 2020-05-08 华为技术有限公司 ***的启动方法、装置、电子设备和存储介质
CN109992413B (zh) * 2019-03-01 2021-09-24 中国科学院计算技术研究所 一种面向宽度优先搜索算法的加速装置、方法及存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6435643A (en) * 1987-07-31 1989-02-06 Hitachi Ltd Initial program loading system for processor device
JPS6435643U (ja) 1987-08-27 1989-03-03
JPH01184533A (ja) * 1988-01-19 1989-07-24 Nec Corp 主記憶のデータ変更方式
JPH02230350A (ja) * 1989-03-02 1990-09-12 Fanuc Ltd メモリ回路
JP2924200B2 (ja) 1990-01-18 1999-07-26 富士電機株式会社 ねじり振動子およびその応用素子
JP2772103B2 (ja) 1990-03-28 1998-07-02 株式会社東芝 計算機システム立上げ方式
JPH0488448A (ja) * 1990-07-26 1992-03-23 Toshiba Corp プログラムエリアの保護装置
JPH04113421A (ja) * 1990-09-04 1992-04-14 Mitsubishi Electric Corp イニシャル・プログラム・ロード方式
US5388267A (en) * 1991-05-29 1995-02-07 Dell Usa, L.P. Method and apparatus for updating and restoring system BIOS functions while maintaining BIOS integrity
JPH07120688A (ja) 1993-10-28 1995-05-12 Canon Inc 光偏向器および該光偏向器を用いた画像表示装置
JP3527765B2 (ja) * 1993-11-29 2004-05-17 富士通株式会社 プログラムキャッシュ装置
JPH09146774A (ja) * 1995-11-27 1997-06-06 Sony Corp パーソナルコンピュータシステム
JP2970589B2 (ja) 1997-04-18 1999-11-02 日本電気株式会社 大規模メモリを用いた高速システム起動方式
JPH1184533A (ja) 1997-09-12 1999-03-26 Sony Corp リア・プロジェクター
JP4776779B2 (ja) 1998-09-02 2011-09-21 カイロス・インク 捩り撓みヒンジで連結されて相対的に回転する微細加工部材
IL129947A (en) * 1999-05-13 2003-06-24 Tadiran Telecom Business Syste Method and apparatus for downloading software into an embedded system
JP2001282542A (ja) * 2000-03-31 2001-10-12 Hitachi Ltd 制御プログラムの自動回復方式
US6560703B1 (en) * 2000-04-18 2003-05-06 International Business Machines Corporation Redundant updatable self-booting firmware
JP2002258971A (ja) * 2001-02-28 2002-09-13 Hitachi Ltd 計算機システムの再立上げ方法
TW510992B (en) * 2001-05-11 2002-11-21 Realtek Semiconductor Corp PCI device and method with shared expansion memory interface
JP4604543B2 (ja) * 2004-04-30 2011-01-05 日本電気株式会社 計算機、計算機起動方法、管理サーバ装置およびプログラム

Also Published As

Publication number Publication date
JP2005010897A (ja) 2005-01-13
US7313683B2 (en) 2007-12-25
US20040260919A1 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
JP3906825B2 (ja) 計算機システム、計算機システム起動方法およびプログラム
CN109144888B (zh) 存储器***
JP5336060B2 (ja) 不揮発性メモリ装置およびそれを動作させる方法
TWI490694B (zh) 判定資料可得性之方法及系統,以及記憶體介面
JP3923955B2 (ja) フラッシュメモリのエラーブロック管理方法及び装置
JP4132086B2 (ja) フラッシュメモリ内のブロックにおける移動セクタ
JP5607943B2 (ja) メモリシステム及びその磨耗度管理方法
US9298472B2 (en) High-speed restart method, information processing device, and program
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
US8775758B2 (en) Memory device and method for performing a write-abort-safe firmware update
JP2005242897A (ja) フラッシュディスク装置
TWI406127B (zh) 更新使用者資料的方法
JPH11126488A (ja) フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置
JPWO2008099786A1 (ja) メモリ障害復旧方法、情報処理装置およびプログラム
JP2009205689A (ja) フラッシュディスク装置
JP5057887B2 (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
TW202230110A (zh) 記憶體系統及控制方法
US7234039B1 (en) Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer
KR20150058092A (ko) 네트워크 부트 시스템
JP6221702B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP5350077B2 (ja) 情報処理装置及びこれを備えた画像形成装置
JP2008108048A (ja) コンピュータ及びそのファームウェア更新方法
JP2009026062A (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
WO2006093304A1 (en) Storage device, memory block managing method, and program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070108

R150 Certificate of patent or registration of utility model

Ref document number: 3906825

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110126

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120126

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130126

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130126

Year of fee payment: 6

EXPY Cancellation because of completion of term