(57)【要約】【課題】  ＣＰＵとキャッシュとＲＡＭとＲＯＭを備えた演算装置において、起動処理に要する時間を短縮する。【解決手段】  演算装置において、切り替え装置１６およびキャッシュ操作装置１９を設ける。切り替え装置１６は、ＣＰＵ１１が読み込もうとする所望のデータがＲＡＭ１４に存在するかどうかを判定し、この判定結果に応じて、所望のデータをＲＯＭ１３から直接ＣＰＵ１１に読み出させる。キャッシュ操作装置１９は、キャッシュ１２に格納されている所望のデータに対応するキャッシュデータに基づいてＲＡＭ１４が初期化されるようにキャッシュ１２を操作する。【選択図】  図１
2004152277.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ、キャッシュ、ＲＡＭおよび不揮発性メモリを備えた演算装置であって、
前記ＣＰＵが読み込もうとするデータが前記ＲＡＭに存在するかどうかを判定する判定手段と、
前記判定手段の判定結果に応じて、前記データを前記不揮発性メモリから直接前記ＣＰＵに読み込ませる切り替え装置と、
前記キャッシュに格納されている前記データに対応するキャッシュデータに基づいて前記ＲＡＭが初期化されるように前記キャッシュを操作するキャッシュ操作装置とを備えた起動時間短縮演算装置。
【請求項２】
前記判定手段が、前記ＲＡＭのデータの有無を保持するＲＡＭデータ判定ビットテーブルを参照して前記判定を行う機能を有する、請求項１に記載の起動時間短縮演算装置。
【請求項３】
前記切り替え装置が、前記データが前記ＲＡＭに存在しなかったときに当該データに対応する前記不揮発性メモリ上のアドレスを判別する機能を有する、請求項１に記載の起動時間短縮演算装置。
【請求項４】
前記キャッシュ操作装置が、前記データがキャッシュデータとして前記キャッシュに格納されたときに、当該キャッシュデータに対応する全てのキャッシュタグのダーティービットをダーティーに設定する機能を有する、請求項１に記載の起動時間短縮演算装置。
【請求項５】
前記キャッシュ操作装置が、前記データがキャッシュデータとして前記キャッシュに格納されたときに、当該キャッシュデータに対応するキャッシュタグに、当該キャッシュデータに対応する前記ＲＡＭのアドレスを書き込む機能を有することを特徴とする、請求項１に記載の起動時間短縮演算装置。
【請求項６】
前記不揮発性メモリがＲＯＭであることを特徴とする、請求項１に記載の起動時間短縮演算装置。
【請求項７】
ＣＰＵ、キャッシュ、ＲＡＭおよび不揮発性メモリを備えた演算装置においてデータをロードする方法であって、
前記ＣＰＵが読み込もうとするデータが前記ＲＡＭに存在するかどうかを判定するステップと、
前記判定結果に応じて、前記データを前記不揮発性メモリから直接前記ＣＰＵに読み出させるステップと、
前記不揮発性メモリから直接前記ＣＰＵに読み出されたときに前記キャッシュに格納された前記データに対応するキャッシュデータに基づいて、前記ＲＡＭが初期化されるように前記キャッシュを操作するステップとを備えたデータロード方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は起動時間短縮演算装置に関し、より特定的には中央演算処理装置（ＣＰＵ）を備えた演算装置のデータロード処理に関する。
【背景技術】
【０００２】
従来、ＣＰＵとキャッシュとＲＡＭとＲＯＭを備えた演算装置において、ＣＰＵによる所望のデータへのアクセスは、キャッシュに所望のデータがある場合にはキャッシュから読み込み、キャッシュにはなくＲＡＭに所望のデータがある場合にはＲＡＭからデータを読み込むことにより行われる。キャッシュにもＲＡＭにも所望のデータがない場合には、ＲＯＭからＲＡＭへ所望のデータをコピーした後、そのデータをＣＰＵがＲＡＭから読み込む（例えば、特許文献１参照。）。
【０００３】
図３に、オペレーションシステム（ＯＳ）の起動処理の流れを示す。
【０００４】
電源が投入されてシステムの起動処理が開始すると（Ｓ１０１）、ＣＰＵは所望のデータを読み込むべくそのデータに対応するアドレスを提示し（Ｓ１０２）、そのデータがキャッシュやＲＡＭにあるかどうかを、キャッシュ、ＲＡＭの順に順次判定する（Ｓ１０３、Ｓ１０５）。キャッシュに所望のデータがあった場合には、これをキャッシュから読み込む（Ｓ１０４）。キャッシュにはなく、ＲＡＭに所望のデータがあった場合には、これをＲＡＭから読み込む（Ｓ１０８）。
【０００５】
キャッシュにもＲＡＭにも所望のデータがなかった場合には、ＣＰＵは、ＲＯＭからＲＡＭへ必要なデータ（少なくとも所望のデータを含む）のコピーを開始し（Ｓ１０６）、コピーが完了するのを待つ（Ｓ１０７）。そしてコピー完了後、ＲＡＭから所望のデータを読み込む（Ｓ１０８）。そしてＣＰＵは、読み込んだデータを処理する（Ｓ１０９）。
【特許文献１】特開平０５−２４２０５７号公報（第２頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、起動処理時にはキャッシュやＲＡＭといった揮発性メモリにはデータが残っていないため、従来のシステムでは、起動時に必ずＲＯＭのデータをＲＡＭにコピーすることによってＲＡＭを初期化（ここで初期化とは、起動処理に必要なデータをＲＡＭに書き込むことをいう。）する必要があった。そしてＲＡＭの初期化後に、ＣＰＵはＲＡＭから起動処理に必要なデータを読み出して起動処理を行う必要があった。したがって、従来のシステムでは、ＲＯＭからＲＡＭへのデータのコピーが完了するまでＣＰＵは起動処理を進めることができず、その結果、起動処理に多くの時間を要していた。
【０００７】
なお、サスペンド時にＲＡＭのデータを不揮発性メモリに一時的に退避させておき、サスペンドからの復帰時にこのデータをＲＡＭに書き戻す場合が考えられるが、この場合にも起動処理時と同様の問題が発生する。つまり、不揮発性メモリに退避したデータがＲＡＭに書き戻されるまで、このデータを利用したＣＰＵの処理は実行不可能である。
【０００８】
したがって、本発明は、ＣＰＵとキャッシュとＲＡＭと不揮発性メモリを備えた演算装置において、起動処理やサスペンドからの復帰処理に要する時間を短縮することを目的とする。
【課題を解決するための手段】
【０００９】
この課題を解決するために本発明は、判定手段、切り替え装置およびキャッシュ操作装置を備えた起動時間短縮演算装置を提供する。判定手段は、ＣＰＵが読み込もうとする所望のデータがＲＡＭに存在するかどうかを判定する手段である。切り替え装置は、判定手段の判定結果に応じて、所望のデータを不揮発性メモリから直接ＣＰＵに読み出させる装置である。キャッシュ操作装置は、キャッシュに格納されている所望のデータに対応するキャッシュデータに基づいてＲＡＭを初期化する装置である。
【発明の効果】
【００１０】
上記のような本発明によれば、起動時やサスペンドからの復帰時において、ＣＰＵは、不揮発性メモリからＲＡＭへのデータのコピーが完了するのを待つことなく、不揮発性メモリから起動に必要なデータを直接獲得してすぐに処理を開始することができる。したがって、起動処理やサスペンドからの復帰処理に要する時間が短縮される。
【００１１】
また、ＣＰＵが不揮発性メモリから直接読み出したデータに対応するキャッシュデータに基づいてＲＡＭが初期化されるため、この不揮発性メモリから直接読み出されたデータに対する再度のアクセスがあったときのロード時間が短縮される。したがって、起動処理やサスペンドからの復帰処理に要する時間を短縮すると同時に、これらの処理の後につづく処理をも短縮することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について説明する。
【００１３】
図１は本発明の一実施形態に係る演算装置の構成を示すブロック図である。演算装置は、ＣＰＵ１１と、キャッシュ１２と、ＲＯＭ１３と、ＲＡＭ１４と、切り替え装置１６と、キャッシュ操作装置１９とを備えている。各構成要素はバス等を介して相互に接続される。
【００１４】
始めに、起動時における各構成要素の役割について説明する。
【００１５】
ＣＰＵ１１は、起動処理を実行するために、起動処理用のデータに対してアクセスする。このアクセスは、ＲＡＭ１４のアドレスを発行することによって行われる。
【００１６】
キャッシュ１２は、電源ＯＦＦによって保持しているデータが失われる揮発性メモリである。キャッシュ１２は、一般的に記憶容量はＲＡＭ１４よりも小さいが、ＲＡＭ１４に比較してアクセス速度は速い。ＣＰＵ１１がＲＡＭ１４等から読み出したデータはキャッシュ１２に一時的に保存され、ＣＰＵは、データを取得しようとしたときにまずキャッシュに対してアクセスする。
【００１７】
キャッシュ１２は、一時的に保持しているデータであるキャッシュデータに対応してキャッシュタグ１７を保持する。キャッシュタグ１７には、キャッシュデータが更新されたものか否かを示すダーティービットが含まれている。キャッシュ１２にＲＡＭ１４上のあるアドレスのデータがキャッシュデータとして保持されるとき、このキャッシュデータに対応するキャッシュタグ１７にそのＲＡＭ１４上のアドレスが格納される。また、このキャッシュデータがＣＰＵ１１によって更新された場合、このキャッシュデータに対応するキャッシュタグ１７のダーティービット１８が「ダーティー」に設定される。キャッシュ１２のデータをリプレイスする際には、キャッシュデータに対してなされた更新をＲＡＭ１４の本来のデータに反映させる必要がある。そこでＣＰＵ１１は、ダーティービット１８が「ダーティー」に設定されているキャッシュデータについて、キャッシュタグ１７に保持されているＲＡＭ１４のアドレスのデータをこのキャッシュデータに書き換える。
【００１８】
ＲＯＭ１３は、アクセス速度はＲＡＭ１４よりも低速であるが、電源ＯＦＦ時もデータを保持可能な不揮発性メモリであるため、ＲＯＭ１３には起動処理に必要なデータが保持されている。本実施の形態では、ＲＯＭ１３が保持している起動処理に必要なデータは、後述する切り替え装置１６の働きにより、ＲＡＭ１４に一旦コピーされることなくＣＰＵ１１に直接供給される。
【００１９】
ＲＡＭ１４は、電源ＯＦＦによって保持しているデータが失われる揮発性メモリであって、一般的に記憶容量はキャッシュ１２よりも多い。また、アクセス速度はキャッシュ１２よりは遅く、ＲＯＭ１３よりは速い。ＣＰＵ１１がデータを操作する際には、アクセス速度が最も遅いＲＯＭ１３からＲＡＭ１４にデータの一部がコピーされ、ＣＰＵ１１はＲＡＭ１４にコピーされたデータに対してアクセスする。なお、システム起動時には、ＲＡＭ１４にデータは保持されていないため、ＲＡＭ１４の初期化（起動処理に必要なデータをＲＡＭに書き込むこと）が必要であり、起動処理に必要なデータがＲＯＭ１３からＲＡＭ１４にコピーされる。
【００２０】
ＲＡＭデータ判定ビットテーブル１５は、ＲＡＭ１４にデータが保持されているかどうかを判定するためにＲＡＭ１４に保持されるテーブルである。ＲＡＭ１４の記憶領域の３２バイト毎に、ＲＡＭデータ判定ビットテーブル１５の１ビット（以下、ＲＡＭデータ判定ビットとする）が対応している。対応するＲＡＭ１４の記憶領域にデータが保持されていないときはＲＡＭデータ判定ビットは「０」であるが、データが書き込まれた時点で「１」に変更される。システム起動時には、ＲＡＭ１４にはデータが全く保持されていないため、ＲＡＭデータ判定ビットテーブル１５の全ビットが「０」である。このＲＡＭデータ判定ビットテーブル１５を参照することで、ＲＡＭ１４にデータが保持されているかどうかを瞬時に判定することが可能となる。
【００２１】
切り替え装置１６は、ＣＰＵ１１がＲＡＭ１４の所定のアドレスにアクセスしようとしたときに、ＲＡＭデータ判定ビットテーブル１５を参照してＣＰＵ１１が指定したＲＡＭ１４のアドレスにデータが存在するかどうかを判定する。データが存在すればＣＰＵ１１にＲＡＭ１４からデータを読み込ませ、データが存在しなければ、ＣＰＵ１１が指定したＲＡＭ１４のアドレスに対応するデータをＲＯＭ１３から直接ＣＰＵ１１に読み込ませる。このとき、ＣＰＵ１１が指定したＲＡＭ１４のアドレスと、このアドレスに対応するデータが格納されているＲＯＭ１３のアドレスとが同一でない場合には、切り替え装置１６は、ＣＰＵ１１が指定したＲＡＭ１４のアドレスに対応するＲＯＭ１３のアドレスを判別し、このＲＯＭ１３のアドレスに対してＣＰＵ１１にアクセスさせてもよい。ＣＰＵ１１がＲＯＭ１３から直接読み込んだデータはキャッシュ１２に一時的に保持される。
【００２２】
キャッシュ操作装置１９は、切り替え装置１６がＣＰＵ１１にＲＯＭ１３から直接データを読み込ませたことを受けて、キャッシュ１２のキャッシュタグ１７を操作する。具体的には、ＣＰＵ１１が本来アクセスするはずだったＲＡＭ１４のアドレスをキャッシュタグ１７に登録すると同時に、ダーティービット１８を「ダーティー」に設定する。このようなキャッシュ操作装置１９の働きとキャッシュ１２の機構により、ＲＡＭ１４の初期化が実現される。
【００２３】
本実施の形態におけるＲＡＭ１４の初期化の原理についてより詳しく説明する。従来のシステムでは、ＲＡＭ１４の初期化は、ＲＯＭ１３からＲＡＭ１４へ起動処理に必要なデータがコピーされることにより行われる。一方、本実施の形態では、起動処理に必要なデータはＣＰＵ１１によってＲＯＭ１３から直接読み込まれるため、起動処理時にＲＡＭ１４の初期化は行われない。ところで、既存のキャッシュの機構によれば、キャッシュデータが更新されたときにこのキャッシュデータに対応するダーティービットが「ダーティー」に設定され、キャッシュのリプレイス時に、ダーティービットが「ダーティー」に設定されているキャッシュデータについては、このキャッシュデータによってＲＡＭに格納されている本来のデータが書き換えられる。そこで本実施の形態では、キャッシュ操作装置１９がキャッシュタグ１７を上記のように操作することによって、既存のキャッシュの機構を効果的に利用して、ＲＡＭ１４の初期化を実現している。つまり、本実施の形態では、ＣＰＵ１１によってＲＯＭ１３から直接読み込まれたデータは一旦キャッシュ１２に保持され、その後、更新されたか否かに関係なしに、全てのデータがＲＡＭ１４の本来のアドレスに格納されることにより、ＲＡＭ１４の初期化が行われる。
【００２４】
次に、図２に示すフローチャートを参照して、演算装置の起動時の動作について説明する。
【００２５】
電源が投入されてシステムの起動処理が開始すると（Ｓ２０１）、ＣＰＵ１１は所望のデータを読み込むべくそのデータに対応するアドレスを提示し（Ｓ２０２）、キャッシュ１２にそのデータがあるかどうかを判定する（Ｓ２０３）。キャッシュ１２にデータがあればＣＰＵ１１はそれを読み込む（Ｓ２０４）のであるが、起動時にはキャッシュ１２にデータはない。そこで、切り替え装置１６は、ＣＰＵ１１がＲＡＭ１４の所定のアドレスにアクセスしようとしたことを受けて、ＲＡＭデータ判定ビットテーブル１５を参照してＲＡＭ１４のそのアドレスにデータが存在しているかどうかを判定する（Ｓ２０５）。ＲＡＭ１４にデータがあればＣＰＵ１１にそれを読み込ませる（Ｓ２０６）のであるが、起動時にはＲＡＭ１４にデータはない。そこで切り替え装置１６は、ＣＰＵ１１にＲＯＭ１３から直接データを読み込ませる（Ｓ２０７）。このとき読み込まれたデータはキャッシュ１２にキャッシュデータとして保持されるので、キャッシュ操作装置１９は、キャッシュ１２に保持されたキャッシュデータに対応するキャッシュタグ１７を操作する（Ｓ２０８）。そしてＣＰＵ１１は、読み込んだデータを処理する（Ｓ２０９）。
【００２６】
以上のように、本実施の形態によれば、システムの起動処理時に、ＲＯＭ１３のデータをＲＡＭ１４にコピーする処理を省略してＣＰＵ１１が起動処理を開始することができるため、起動時間が短縮される。また、ＣＰＵ１１がＲＯＭ１３から直接読み出したデータはキャッシュ１２に一時的に格納された後でＲＡＭ１４の本来のアドレスに格納されるため、ＲＡＭ１４の初期化もなされ、起動処理後のデータのアクセス速度も向上する。
【００２７】
なお、以上の説明では、電源投入直後におけるシステムの起動時における演算装置の動作を説明したが、本発明は、アプリケーションプログラムの起動時や、サスペンドからの復帰処理にも同様に適用することができる。この場合にも、不揮発性メモリのデータをＲＡＭ１４にコピーする処理が省略されるため、アプリケーションプログラムの起動時間やサスペンドからの復帰時間を短縮することができる。なお、アプリケーションを起動するときには、そのアプリケーションのデータをロードすべきＲＡＭ１４の領域に対応するＲＡＭデータ判定ビットテーブル１５を予めクリアするのが望ましい。
【００２８】
また、本実施の形態では、ＲＯＭ１３に格納されているデータを用いてＣＰＵ１１が起動処理を行うとしたが、ＲＯＭ１３に限らず、本発明は、任意の不揮発性メモリに格納されているデータを用いてＣＰＵ１１が起動処理を行う場合に適用可能である。例えば、メモリーカードに格納されたアプリケーションプログラムをＣＰＵ１１が起動する場合にも本発明を適用することによって同様の効果を得ることができる。
【００２９】
また、本実施の形態では、ＣＰＵ１１が読み込もうとするデータがＲＡＭ１４に存在するかどうかを切り替え装置１６が判定するとしたが、本発明はこれに限らず、ＣＰＵ１１が読み込もうとするデータがＲＡＭ１４に存在するかどうかを判定する手段を切り替え装置１６とは独立して別途設けても構わない。さらには、ＣＰＵ１１が読み込もうとするデータがＲＡＭ１４に存在するかどうかを判定する手段は、ＣＰＵ１１であっても構わない。
【００３０】
また、本実施の形態では、切り替え装置１６が、ＲＡＭデータ判定ビットテーブル１５を参照して、ＣＰＵ１１が読み込もうとするデータがＲＡＭ１４に存在するかどうかを判定するとしたが、これ以外の方法によって判定しても構わない。例えば、ＲＡＭ１４のいずれかの領域に何らかのデータが書き込まれたかどうかを示す１ビットのフラグを用意しておき、このフラグを参照することによってＲＡＭ１４にデータが存在するかどうかを判定してもよい。さらには、ＣＰＵ１１がＲＡＭ１４の記憶領域に実際にアクセスしてデータが存在するかどうかを判定してもよい。
【００３１】
また、本実施の形態では、キャッシュ操作装置１９がキャッシュタグ１７のダーティービット１８を操作することによってＲＡＭ１４の初期化を実現しているが、本発明はこれに限らず、例えば、キャッシュデータのリプレイス時に、キャッシュ１２から削除される全てのキャッシュデータをキャッシュ操作装置１９がＲＡＭ１４に書き込むようにしても構わない。
【００３２】
また、本実施の形態では、ＲＡＭデータ判定ビットテーブル１５がＲＡＭ１４に保持されるとしたが、ＲＡＭデータ判定ビットテーブル１５は、ＲＡＭ１４以外の任意の記憶装置に保持されてもよい。
【００３３】
また、切り替え装置１６は、ＣＰＵ１１を切り替え装置１６として機能させるためのプログラムをＣＰＵ１１に実行させることにより実現してもよいし、その一部または全部の機能をハードウェアによって実現してもよい。キャッシュ操作装置１９についても同様である。
【産業上の利用可能性】
【００３４】
本発明によれば、起動処理やサスペンドからの復帰処理が速い演算装置を提供することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態に係る演算装置の構成を示すブロック図
【図２】本発明の実施の形態に係る演算装置の動作を示すフローチャート
【図３】従来のシステムの動作を示すフローチャート
【符号の説明】
【００３６】
１１  ＣＰＵ
１２  キャッシュ
１３  ＲＯＭ
１４  ＲＡＭ
１５  ＲＡＭデータ判定ビットテーブル
１６  切り替え装置
１７  キャッシュタグ
１８  ダーティービット
１９  キャッシュ操作装置
【図１】
2004152277.tif 000003
【図２】
2004152277.tif 000004
【図３】
2004152277.tif 000005