(57)【要約】  ＣＰＵ（１００）は、不揮発性メモリ（３００）に記憶されている命令が書き込まれる揮発性メモリ（２００）の領域である命令領域（２０２）に含まれるページのうち、命令が書き込まれていないページに、ソフトウェア割り込みを発生させるためのコードである割り込み発生コードを書き込むコード書き込み部（１０１）と、割り込み発生コードによるソフトウェア割り込みの発生時に、当該ソフトウェア割り込みを発生させた割り込み発生コードが記憶されているページである該当ページに記憶されるべき命令を、不揮発性メモリ（３００）から揮発性メモリ（２００）の該当ページに転送する命令転送部（１０３）と、命令領域（２０２）に記憶されている命令を実行するとともに、割り込み発生コードが実行された場合に、ソフトウェア割り込みを発生させる命令実行部（１０２）とを備える。
2012104950.tif 000002
【特許請求の範囲】
【請求項１】
命令が記憶されている不揮発性メモリと、前記不揮発性メモリよりも高速にアクセス可能な揮発性メモリとを備える情報機器の起動を制御する起動制御装置であって、
前記不揮発性メモリに記憶されている前記命令が書き込まれる前記揮発性メモリの領域である命令領域に含まれるページのうち、命令が書き込まれていないページに、ソフトウェア割り込みを発生させるためのコードである割り込み発生コードを書き込むコード書き込み部と、
前記割り込み発生コードによるソフトウェア割り込みの発生時に、当該ソフトウェア割り込みを発生させた前記割り込み発生コードが記憶されているページである該当ページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記該当ページに転送する命令転送部と、
前記命令領域に記憶されている命令を実行するとともに、前記割り込み発生コードが実行された場合に、ソフトウェア割り込みを発生させる命令実行部と
を備える起動制御装置。
【請求項２】
前記揮発性メモリは、さらに、前記不揮発性メモリから前記揮発性メモリに命令を転送済みである、前記命令領域に含まれるページを示す転送管理テーブルデータを記憶しており、
前記命令転送部は、前記ソフトウェア割り込みの発生時に前記転送管理テーブルデータを参照することにより、前記該当ページに命令を未転送であると判断することができる場合、前記該当ページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記該当ページに転送し、前記転送管理テーブルデータを更新する
請求項１に記載の起動制御装置。
【請求項３】
前記命令転送部は、（ｉ）命令を未転送のページに配置された前記割り込み発生コードによるソフトウェア割り込みの発生時に、前記該当ページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記該当ページに転送するとともに、前記該当ページの直後に隣接するページに命令が未転送の場合には、前記該当ページと前記直後に隣接するページとの間に跨って配置される命令に前記割り込み発生コードを書き込み、（ｉｉ）前記跨って配置される命令に書き込まれた前記割り込み発生コードによるソフトウェア割り込みの発生時に、前記跨って配置される命令の直後のページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記跨って配置される命令の直後のページに転送する
請求項１に記載の起動制御装置。
【請求項４】
前記揮発性メモリは、さらに、（ｉ）前記不揮発性メモリから前記揮発性メモリに命令を転送済みである、前記命令領域に含まれるページと、（ｉｉ）ページを跨って配置される命令であるページ境界命令の、前記揮発性メモリ上でのアドレスとを示す転送管理テーブルデータを記憶しており、
前記命令転送部は、
（ｉ）前記ソフトウェア割り込みの発生時に前記転送管理テーブルデータを参照することにより、前記該当ページに命令を未転送であると判断することができる場合、前記該当ページを転送対象ページとし、（ｉｉ）前記ソフトウェア割り込みの発生時に前記転送管理テーブルデータを参照することにより、前記該当ページに命令を転送済みであると判断することができる場合、前記該当ページの直後に隣接するページを転送対象ページとし、（ｉｉｉ）前記転送対象ページとされた前記該当ページまたは前記該当ページの直後に隣接するページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記転送対象ページに転送し、前記転送管理テーブルデータを更新する転送部と、
前記転送部による処理の後に、前記転送管理テーブルデータを参照することにより、前記転送対象ページのアドレスにページ境界命令のアドレスが含まれ、かつ前記転送対象ページの直後に隣接するページである直後ページに命令を未転送であると判断することができる場合、割り込み発生コードを、前記転送対象ページのページ境界命令のアドレスに書き込む第１コード書き込み部と、
前記転送部による処理の後に、前記転送管理テーブルデータを参照することにより、前記転送対象ページの直前に隣接するページである直前ページのアドレスにページ境界命令のアドレスが含まれ、かつ前記直前ページに命令を転送済みであると判断することができる場合、前記直前ページのページ境界命令のアドレスに、ページ境界命令を書き込む第２コード書き込み部とを有する
請求項３に記載の起動制御装置。
【請求項５】
前記命令転送部は、さらに、前記命令実行部がアイドル状態である場合に、命令を未転送であるページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記命令を未転送であるページに転送する
請求項１に記載の起動制御装置。
【請求項６】
前記揮発性メモリは、さらに、前記不揮発性メモリから前記揮発性メモリに命令を転送済みである、前記命令領域に含まれるページを示す転送管理テーブルデータを記憶しており、
前記命令転送部は、さらに、前記命令実行部がアイドル状態である場合に前記転送管理テーブルデータを参照することにより、命令を未転送であるページを検出し、検出したページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記検出したページに転送し、前記転送管理テーブルデータを更新する
請求項５に記載の起動制御装置。
【請求項７】
前記揮発性メモリは、さらに、（ｉ）前記不揮発性メモリから前記揮発性メモリに命令を転送済みである、前記命令領域に含まれるページと、（ｉｉ）前記不揮発性メモリから前記揮発性メモリへのページ単位の命令の転送順序とを示す転送管理テーブルデータを記憶しており、
前記命令転送部は、前記転送管理テーブルデータを参照することにより、前記命令実行部がアイドル状態である場合または命令の実行が開始されるよりも前に、前記転送管理テーブルデータが示す転送順序に従って、命令を未転送であるページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記命令を未転送であるページに転送し、前記転送管理テーブルデータを更新する
請求項１に記載の起動制御装置。
【請求項８】
前記揮発性メモリは、さらに、（ｉ）前記不揮発性メモリから前記揮発性メモリに命令を転送済みである、前記命令領域に含まれるページと、（ｉｉ）ページごとに前記不揮発性メモリから前記揮発性メモリへの命令の転送時点において割り込みを禁止していたか否かを示す状態である割り込み禁止状態とを示す転送管理テーブルデータを記憶しており、
前記命令転送部は、前記転送管理テーブルデータを参照することにより、命令の転送時に割り込み禁止状態であったページである割り込み禁止ページについては、当該割り込み禁止ページに記憶されるべき命令が実行されるよりも前に、当該割り込み禁止ページに記憶されるべき命令を、前記揮発性メモリから前記揮発性メモリの前記割り込み禁止ページに転送し、前記転送管理テーブルデータを更新する
請求項１に記載の起動制御装置。
【請求項９】
さらに、前記命令転送部が実行する処理のプログラムを、前記命令転送部による処理の開始前に前記揮発性メモリに書き込む割り込み処理プログラム転送部を備える
請求項１〜８のいずれか１項に記載の起動制御装置。
【請求項１０】
前記割り込み発生コードは、前記命令実行部に実装される命令セットに含まれるソフトウェア割り込み命令である
請求項１〜９のいずれか１項に記載の起動制御装置。
【請求項１１】
前記割り込み発生コードは、前記命令実行部に実装される命令セットには含まれない、例外処理を引き起こす未定義のコードである
請求項１〜９のいずれか１項に記載の起動制御装置。
【請求項１２】
さらに、前記命令実行部による前記命令の実行開始前に、前記不揮発性メモリに記憶されている定数データを、前記揮発性メモリに転送するデータ転送部を備える
請求項１〜１１のいずれか１項に記載の起動制御装置。
【請求項１３】
命令が記憶されている不揮発性メモリと、
不揮発性メモリよりも高速にアクセス可能な揮発性メモリと、
請求項１〜１２のいずれか１項に記載の起動制御装置と
を備える情報機器。
【請求項１４】
命令が記憶されている不揮発性メモリと、前記不揮発性メモリよりも高速にアクセス可能な揮発性メモリとを備える情報機器の起動を制御する起動制御方法であって、
前記不揮発性メモリに記憶されている前記命令が書き込まれる前記揮発性メモリの領域である命令領域に含まれるページのうち、命令が書き込まれていないページに、ソフトウェア割り込みを発生させるためのコードである割り込み発生コードを書き込むコード書き込みステップと、
前記割り込み発生コードによるソフトウェア割り込みの発生時に、当該ソフトウェア割り込みを発生させた前記割り込み発生コードが記憶されているページである該当ページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記該当ページに転送する命令転送ステップと、
前記命令領域に記憶されている命令を実行するとともに、前記割り込み発生コードが実行された場合に、ソフトウェア割り込みを発生させる命令実行ステップと
を含む起動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、命令が記憶されている不揮発性メモリと、不揮発性メモリよりも高速にアクセス可能な揮発性メモリとを備える情報機器の起動を制御する起動制御装置等に関する。
【背景技術】
【０００２】
従来、電源投入からシステムが起動するまでの時間を短縮するための装置が種々提案されている。【０００３】
例えば、特許文献１に開示されている起動高速化装置は、１回目のシステム起動時に、キャッシュメモリから主記憶装置へのアクセスを監視して、電源投入からアクセスが行われるまでのアクセス時間とアクセス先の主記憶装置のアドレスを取得し、取得したアクセス時間とアドレスをテーブルデータとして作成する。起動高速化装置は、２回目以降のシステム起動時に、テーブルデータに含まれるアクセス時間の順序に従って、対応するテーブルデータのアドレスに対応する主記憶装置のアドレスからデータを読み出し、読み出しデータをキャッシュメモリに書き込む。つまり、起動高速化装置は、初期化プログラムを２回目以降に実行する場合、前回の実行時に作成したテーブルデータに含まれるアクセス時間を参照して、順次、テーブルデータに含まれるアドレスに対応する主記憶装置のアドレスからデータを読み出してキャッシュメモリへ書き込む。そのため、基本的に、ＣＰＵから主記憶装置へのアクセスは発生せず、初期化プログラムの実行が高速化され、システムの起動時間を短縮することができる。【０００４】
また、特許文献２に開示されているプログラム起動制御装置では、ＤＭＡ制御部がフラッシュメモリからシステム起動用のプログラムを読み出し、読み出したシステム起動用のプログラムをダイレクトに外部メモリへ転送する。また、ＣＰＵは、ＤＭＡ制御部によるシステム起動用のプログラムの転送が完了したときに、外部メモリから読み出したシステム起動用のプログラムに従ってシステムの起動を行う。その一方、システム起動と同時並行的に、ＤＭＡ制御部は、フラッシュメモリからシステム制御用のプログラムを読み出し、読み出したシステム制御用のプログラムを外部メモリへ転送する。このように、システム起動動作とプログラム読み出し動作とを同時並行的に処理するので、システムの起動時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２３１７０１号公報
【特許文献２】特開２００８−６５４３４号公報
【特許文献３】特開２００８−１３５０５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に開示されている起動高速化装置では、前回のシステム起動時に作成したテーブルデータに基づいて、システム起動の高速化のための制御が行われる。このため、１回目のシステム起動時には起動の高速化を図ることができないという課題がある。また、２回目以降のシステム起動時であっても、前回のシステム起動時のキャッシュメモリから主記憶装置へのアクセス順序と異なるアクセス順序でアクセスが行われた場合には、キャッシュミスが発生し、起動の高速化を図ることができないという課題がある。【０００７】
また、特許文献２に開示されているプログラム起動制御装置では、システム起動用のプログラムをシステム制御用のプログラムよりも優先させて外部メモリに転送し、システム起動用のプログラムを実行することによりシステム起動の高速化を図っている。高速化を行うためには、システム起動用のプログラムとシステム制御用のプログラムとを予め切り分ける必要がある。しかし、大規模システム等においてはそれらのプログラムの切り分けが困難であるという課題がある。【０００８】
また、特許文献３に開示される電子機器、データ処理方法、及びコンピュータプログラムでは、データコピーが未だ行なわれていないエリアに対するアクセスを検出するとＮＭＩ割り込みハンドラ処理によりデータコピーを行なうが、アクセスを検出するにはＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）のようなメモリ保護ユニットがハードウェアとして実装されていなければ実現できないという課題がある。【０００９】
本発明は上述の課題を解決するためになされたものであり、プログラムの種別に応じたプログラムの切り分けを必要とせず、１回目のシステム起動時からシステム起動を高速化することができる起動制御装置等を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明のある局面に係る起動制御装置は、命令が記憶されている不揮発性メモリと、前記不揮発性メモリよりも高速にアクセス可能な揮発性メモリとを備える情報機器の起動を制御する起動制御装置であって、前記不揮発性メモリに記憶されている前記命令が書き込まれる前記揮発性メモリの領域である命令領域に含まれるページのうち、命令が書き込まれていないページに、ソフトウェア割り込みを発生させるためのコードである割り込み発生コードを書き込むコード書き込み部と、前記割り込み発生コードによるソフトウェア割り込みの発生時に、当該ソフトウェア割り込みを発生させた前記割り込み発生コードが記憶されているページである該当ページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記該当ページに転送する命令転送部と、前記命令領域に記憶されている命令を実行するとともに、前記割り込み発生コードが実行された場合に、ソフトウェア割り込みを発生させる命令実行部とを備える。【００１１】
この構成によると、コード書き込み部により、命令領域に含まれるページのうち、命令が書き込まれていないページに割り込み発生コードが書き込まれる。このため、命令領域に命令が記憶されている場合には、その命令が実行されるが、命令が記憶されていない場合には、上記コードが実行されることによりソフトウェア割り込みが発生する。ソフトウェア割り込み処理では、該当ページに命令の転送が行なわれる。このため、割り込み処理後には、正常に命令を実行することができる。このように、命令実行と命令転送とを同時並行的に行うことができる。このため、プログラムの種別に応じたプログラムの切り分けを必要とせず、１回目のシステム起動時からシステム起動を高速化することができる。なお、ここで言うシステムとは、情報機器のことである。【００１２】
好ましくは、前記揮発性メモリは、さらに、前記不揮発性メモリから前記揮発性メモリに命令を転送済みである、前記命令領域に含まれるページを示す転送管理テーブルデータを記憶しており、前記命令転送部は、前記ソフトウェア割り込みの発生時に前記転送管理テーブルデータを参照することにより、前記該当ページに命令を未転送であると判断することができる場合、前記該当ページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記該当ページに転送し、前記転送管理テーブルデータを更新する。【００１３】
この構成によると、転送管理テーブルデータを参照することにより、命令の転送の有無を判断することができる。例えば、デバッグ作業におけるブレークポイントを指定するためなどのように、割り込みを発生させるのとは異なる目的でプログラム中に割り込み発生コードが埋め込まれている場合がある。このような場合には、ブレークポイントにおけるコードを実行することにより命令を転送する必要はないが、命令の転送の有無を判断する手段がない場合には、命令が転送されてしまう。このような場合に、転送管理テーブルデータを参照することにより、命令を転送すべきであるのか否かを適切に判断することができる。【００１４】
また、前記命令転送部は、（ｉ）命令を未転送のページに配置された前記割り込み発生コードによるソフトウェア割り込みの発生時に、前記該当ページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記該当ページに転送するとともに、前記該当ページの直後に隣接するページに命令が未転送の場合には、前記該当ページと前記直後に隣接するページとの間に跨って配置される命令に前記割り込み発生コードを書き込み、（ｉｉ）前記跨って配置される命令に書き込まれた前記割り込み発生コードによるソフトウェア割り込みの発生時に、前記跨って配置される命令の直後のページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記跨って配置される命令の直後のページに転送してもよい。【００１５】
具体的には、前記揮発性メモリは、さらに、（ｉ）前記不揮発性メモリから前記揮発性メモリに命令を転送済みである、前記命令領域に含まれるページと、（ｉｉ）ページを跨って配置される命令であるページ境界命令の、前記揮発性メモリ上でのアドレスとを示す転送管理テーブルデータを記憶しており、前記命令転送部は、（ｉ）前記ソフトウェア割り込みの発生時に前記転送管理テーブルデータを参照することにより、前記該当ページに命令を未転送であると判断することができる場合、前記該当ページを転送対象ページとし、（ｉｉ）前記ソフトウェア割り込みの発生時に前記転送管理テーブルデータを参照することにより、前記該当ページに命令を転送済みであると判断することができる場合、前記該当ページの直後に隣接するページを転送対象ページとし、（ｉｉｉ）前記転送対象ページとされた前記該当ページまたは前記該当ページの直後に隣接するページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記転送対象ページに転送し、前記転送管理テーブルデータを更新する転送部と、前記転送部による処理の後に、前記転送管理テーブルデータを参照することにより、前記転送対象ページのアドレスにページ境界命令のアドレスが含まれ、かつ前記転送対象ページの直後に隣接するページである直後ページに命令を未転送であると判断することができる場合、割り込み発生コードを、前記転送対象ページのページ境界命令のアドレスに書き込む第１コード書き込み部と、前記転送部による処理の後に、前記転送管理テーブルデータを参照することにより、前記転送対象ページの直前に隣接するページである直前ページのアドレスにページ境界命令のアドレスが含まれ、かつ前記直前ページに命令を転送済みであると判断することができる場合、前記直前ページのページ境界命令のアドレスに、ページ境界命令を書き込む第２コード書き込み部とを有する。【００１６】
転送対象ページに命令が転送された場合に、隣接するページに命令が未転送であれば、転送対象ページと隣接するページとの間に跨って配置されているページ境界命令は、本来のページ境界命令とは異なる命令となっている。このため、そのページ境界命令のアドレスに割り込み発生コードを記憶しておくことにより、誤ったページ境界命令が実行されるのを防止することができる。【００１７】
また、前記命令転送部は、さらに、前記命令実行部がアイドル状態である場合に、命令を未転送であるページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記命令を未転送であるページに転送してもよい。【００１８】
具体的には、前記揮発性メモリは、さらに、前記不揮発性メモリから前記揮発性メモリに命令を転送済みである、前記命令領域に含まれるページを示す転送管理テーブルデータを記憶しており、前記命令転送部は、さらに、前記命令実行部がアイドル状態である場合に前記転送管理テーブルデータを参照することにより、命令を未転送であるページを検出し、検出したページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記検出したページに転送し、前記転送管理テーブルデータを更新する。【００１９】
命令実行部がアイドル状態である場合に先回りして命令を転送することにより、ソフトウェア割り込みの発生回数を少なくすることができる。よって、システム起動を高速化することができる。【００２０】
また、前記揮発性メモリは、さらに、（ｉ）前記不揮発性メモリから前記揮発性メモリに命令を転送済みである、前記命令領域に含まれるページと、（ｉｉ）前記不揮発性メモリから前記揮発性メモリへのページ単位の命令の転送順序とを示す転送管理テーブルデータを記憶しており、前記命令転送部は、前記転送管理テーブルデータを参照することにより、前記命令実行部がアイドル状態である場合または命令の実行が開始されるよりも前に、前記転送管理テーブルデータが示す転送順序に従って、命令を未転送であるページに記憶されるべき命令を、前記不揮発性メモリから前記揮発性メモリの前記命令を未転送であるページに転送し、前記転送管理テーブルデータを更新してもよい。【００２１】
不揮発性メモリから揮発性メモリへの命令の転送順序に従って、命令を転送することにより、命令の実行順序がある程度決まっているようなプログラムについては、先回りした命令の転送を効果的に行うことができる。つまり、先回りして転送した命令が実行されずに他の割り込み発生コードが実行されることによるソフトウェア割り込みの発生を低減させることができ、先回りして転送した命令がその命令の転送時から早い段階で実行されることになり、システム起動を高速化することができる。【００２２】
また、前記揮発性メモリは、さらに、（ｉ）前記不揮発性メモリから前記揮発性メモリに命令を転送済みである、前記命令領域に含まれるページと、（ｉｉ）ページごとに前記不揮発性メモリから前記揮発性メモリへの命令の転送時点において割り込みを禁止していたか否かを示す状態である割り込み禁止状態とを示す転送管理テーブルデータを記憶しており、前記命令転送部は、前記転送管理テーブルデータを参照することにより、命令の転送時に割り込み禁止状態であったページである割り込み禁止ページについては、当該割り込み禁止ページに記憶されるべき命令が実行されるよりも前に、当該割り込み禁止ページに記憶されるべき命令を、前記揮発性メモリから前記揮発性メモリの前記割り込み禁止ページに転送し、前記転送管理テーブルデータを更新してもよい。【００２３】
割り込み禁止ページに記憶される命令を、その命令が実行されるよりも前に転送することにより、割り込み発生コードの実行によるソフトウェア割り込みの発生時に、割り込み禁止期間が本来の期間に加え、ソフトウェア割り込み処理、及びソフトウェア割り込み処理内で行なわれる転送処理分、増加することによる割り込み応答性の劣化を防ぐことができる。このため、システムの割り込み応答性を劣化させることなくシステム起動を高速化することができる。【００２４】
また、上述の起動制御装置は、さらに、前記命令転送部が実行する処理のプログラムを、前記命令転送部による処理の開始前に前記揮発性メモリに書き込む割り込み処理プログラム転送部を備えていてもよい。【００２５】
また、前記割り込み発生コードは、前記命令実行部に実装される命令セットに含まれるソフトウェア割り込み命令であってもよい。【００２６】
また、前記割り込み発生コードは、前記命令実行部に実装される命令セットには含まれない、例外処理を引き起こす未定義のコードであってもよい。【００２７】
命令の転送処理を例外処理として取り扱うことができる。【００２８】
また、上述の起動制御装置は、さらに、前記命令実行部による前記命令の実行開始前に、前記不揮発性メモリに記憶されている定数データを、前記揮発性メモリに転送するデータ転送部を備えていてもよい。【００２９】
本発明の他の局面に係る情報機器は、命令が記憶されている不揮発性メモリと、不揮発性メモリよりも高速にアクセス可能な揮発性メモリと、上述の起動制御装置とを備える。【００３０】
この構成によると、コード書き込み部により命令領域に含まれるページのうち、命令が書き込まれていないページに割り込み発生コードが書き込まれる。このため、命令領域に命令が記憶されている場合には、その命令が実行されるが、命令が記憶されていない場合には、上記コードが実行されることによりソフトウェア割り込みが発生する。ソフトウェア割り込み処理では、該当ページに命令の転送が行なわれる。このため、割り込み処理後には、正常に命令を実行することができる。このように、命令実行と命令転送とを平行して行うことができるため、同時並行的に行うことができる。このため、プログラムの種別に応じたプログラムの切り分けを必要とせず、１回目のシステム起動時からシステム起動を高速化することができる。なお、ここで言うシステムとは、情報機器のことである。情報機器は、デジタルスチルカメラ、デジタルテレビ、携帯電話機、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）など、不揮発性メモリに記憶されている命令を揮発性メモリに転送した上で実行する機器であればどのような機器であっても良い。【００３１】
なお、本発明は、このような特徴的な処理部を備える転送制御装置として実現することができるだけでなく、転送制御装置に含まれる特徴的な処理部が実行する処理をステップとする転送制御方法として実現することができる。また、転送制御装置に含まれる特徴的な処理部としてコンピュータを機能させるためのプログラムまたは転送制御方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのようなプログラムを、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のコンピュータ読取可能な非一時的な記録媒体やインターネット等の通信ネットワークを介して流通させることができるのは、言うまでもない。
【発明の効果】
【００３２】
本発明によると、プログラムの種別に応じたプログラムの切り分けを必要とせず、１回目のシステム起動時からシステム起動を高速化することができる。
【図面の簡単な説明】
【００３３】
【図１】図１は、本発明の実施の形態１に係る情報機器の機能的な構成を示すブロック図である。
【図２】図２は、情報機器の起動時の処理のフローチャートである。
【図３】図３は、データ転送部が実行するデータ転送処理を説明するための図である。
【図４】図４は、コード書き込み部が実行するソフトウェア割り込み命令の書き込み処理を説明するための図である。
【図５】図５は、プログラム実行処理（図２のＳ１０４）の詳細なフローチャートである。
【図６】図６は、ソフトウェア割り込み処理（図５のＳ２０３）の詳細なフローチャートである。
【図７】図７は、命令領域に記憶されている命令の一例を示す図である。
【図８】図８は、命令領域に記憶されている命令の一例を示す図である。
【図９】図９は、命令領域に記憶されている命令の一例を示す図である。
【図１０】図１０は、本発明の実施の形態２に係る情報機器の機能的な構成を示すブロック図である。
【図１１】図１１は、転送管理テーブルデータの一例を示す図である。
【図１２】図１２は、情報機器の起動時の処理のフローチャートである。
【図１３】図１３は、転送管理テーブルデータの一例を示す図である。
【図１４】図１４は、ソフトウェア割り込み処理（図５のＳ２０３）の詳細なフローチャートである。
【図１５】図１５は、転送管理テーブルデータの一例を示す図である。
【図１６】図１６は、転送管理テーブルデータの一例を示す図である。
【図１７】図１７は、ページ境界命令について説明するための図である。
【図１８】図１８は、本発明の実施の形態３に係る情報機器の機能的な構成を示すブロック図である。
【図１９】図１９は、転送管理テーブルデータの一例を示す図である。
【図２０】図２０は、境界命令アドレスデータの一例を示す図である。
【図２１】図２１は、情報機器の起動時の処理のフローチャートである。
【図２２】図２２は、ソフトウェア割り込み処理（図５のＳ２０３）の詳細なフローチャートである。
【図２３】図２３は、ソフトウェア割り込み命令実行時の処理を説明するための図である。
【図２４】図２４は、ソフトウェア割り込み命令実行時の処理を説明するための図である。
【図２５】図２５は、命令転送処理（図２２のＳ３０６）の詳細なフローチャートである。
【図２６】図２６は、転送管理テーブルデータの一例を示す図である。
【図２７】図２７は、転送管理テーブルデータの一例を示す図である。
【図２８】図２８は、転送管理テーブルデータの一例を示す図である。
【図２９】図２９は、命令実行部がアイドル状態のときに実行される処理を示すフローチャートである。
【図３０】図３０は、命令領域に記憶されている命令の一例を示す図である。
【図３１】図３１は、転送管理テーブルデータの一例を示す図である。
【図３２】図３２は、命令領域に記憶されている命令の一例を示す図である。
【図３３】図３３は、転送管理テーブルデータの一例を示す図である。
【図３４】図３４は、命令領域に記憶されている命令の一例を示す図である。
【図３５】図３５は、転送管理テーブルデータの一例を示す図である。
【図３６】図３６は、本発明の実施の形態５に係る情報機器の機能的な構成を示すブロック図である。
【図３７】図３７は、転送管理テーブルデータの一例を示す図である。
【図３８】図３８は、命令の転送順序の一例を示す図である。
【図３９】図３９は、転送順序データの一例を示す図である。
【図４０】図４０は、情報機器の起動時の処理のフローチャートである。
【図４１】図４１は、転送管理テーブルデータの一例を示す図である。
【図４２】図４２は、ソフトウェア割り込み処理（図５のＳ２０３）の詳細なフローチャートである。
【図４３】図４３は、２回目以降の起動時に命令実行部がアイドル状態のときに命令転送部が実行する処理を示すフローチャートである。
【図４４】図４４は、命令領域に記憶されている命令の一例を示す図である。
【図４５】図４５は、実施の形態５の変形例に係る情報機器の起動時の処理のフローチャートである。
【図４６】図４６は、本発明の実施の形態６に係る情報機器の機能的な構成を示すブロック図である。
【図４７】図４７は、転送管理テーブルデータの一例を示す図である。
【図４８】図４８は、命令転送時の割り込み禁止状態の一例を示す図である。
【図４９】図４９は、割り込み禁止状態データの一例を示す図である。
【図５０】図５０は、情報機器の起動時の処理のフローチャートである。
【図５１】図５１は、転送管理テーブルデータの一例を示す図である。
【図５２】図５２は、割り込み禁止ページに命令をすべて転送した後の命令領域に記憶されている命令の一例を示す図である。
【図５３】図５３は、ソフトウェア割り込み処理（図５のＳ２０３）の詳細なフローチャートである。
【発明を実施するための形態】
【００３４】
以下、本発明の実施の形態に係る情報機器について説明する。なお、以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示すものである。以下の実施の形態で示される数値、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。本発明は、請求の範囲だけによって限定される。よって、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、本発明の課題を達成するのに必ずしも必要ではないが、より好ましい形態を構成するものとして説明される。
【００３５】
（実施の形態１）
図１は、本発明の実施の形態１に係る情報機器の機能的な構成を示すブロック図である。
【００３６】
情報機器１０は、プログラムを実行する装置であり、ＣＰＵ１００と、揮発性メモリ２００と、不揮発性メモリ３００とを備える。ＣＰＵ１００、揮発性メモリ２００および不揮発性メモリ３００は、バス４００を介して相互に接続される。
【００３７】
ＣＰＵ１００は、プログラムを実行する処理部であり、情報機器１０の起動を制御する起動制御装置としての役割を果たす。揮発性メモリ２００は、ＣＰＵ１００で実行されるプログラムを記憶する揮発性メモリであり、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。不揮発性メモリ３００は、揮発性メモリ２００に転送されＣＰＵ１００で実行されるプログラムを記憶する不揮発性メモリであり、例えば、ＮＡＮＤ型フラッシュメモリまたはＮＯＲ型フラッシュメモリ等である。揮発性メモリ２００は、不揮発性メモリ３００よりも高速にアクセス可能である。
【００３８】
揮発性メモリ２００は、命令領域２０２とデータ領域２０３とを含む。命令領域２０２には、ＣＰＵ１００の命令実行部１０２で実行される命令が記憶され、データ領域２０３には、ＣＰＵ１００の命令実行部１０２で実行されるプログラムによってアクセスされるデータが記憶される。
【００３９】
不揮発性メモリ３００は、命令領域３０２とデータ領域３０３とを含む。命令領域３０２には、ＣＰＵ１００の命令実行部１０２で実行されるプログラムのうち、命令領域２０２に転送される命令が記憶され、データ領域３０３には、ＣＰＵ１００の命令実行部１０２で実行されるプログラムのうち、データ領域２０３に転送されるデータが記憶される。
【００４０】
ＣＰＵ１００は、機能的にコード書き込み部１０１と、命令実行部１０２と、命令転送部１０３と、割り込み処理プログラム転送部１０４と、データ転送部１０５とを備える。つまり、ＣＰＵ１００がプログラムを実行することにより、各処理がコード書き込み部１０１と、命令実行部１０２と、命令転送部１０３と、割り込み処理プログラム転送部１０４と、データ転送部１０５としての役割を果たす。
【００４１】
コード書き込み部１０１は、不揮発性メモリ３００に記憶されている命令が書き込まれる揮発性メモリ２００の領域である命令領域２０２に含まれるページのうち、命令が書き込まれていないページに、ソフトウェア割り込みを発生させるためのコードである割り込み発生コードを書き込む。
【００４２】
命令実行部１０２は、命令領域２０２に記憶されている命令を実行するとともに、割り込み発生コードが実行された場合に、ソフトウェア割り込みを発生させる。
【００４３】
命令転送部１０３は、割り込み発生コードによるソフトウェア割り込みの発生時に、当該ソフトウェア割り込みを発生させた割り込み発生コードが記憶されているページである該当ページに記憶されるべき命令を、不揮発性メモリ３００から揮発性メモリの該当ページに転送する。
【００４４】
割り込み処理プログラム転送部１０４は、命令転送部１０３が実行する処理のプログラムを、命令転送部１０３による処理の開始前に揮発性メモリ２００に書き込む。
【００４５】
データ転送部１０５は、命令実行部１０２による命令の実行開始前に、不揮発性メモリ３００に記憶されている定数データを、揮発性メモリ２００に転送する。
【００４６】
以下、具体例を示しながら、情報機器１０の起動時の処理について説明する。
【００４７】
図２は、情報機器１０の起動時の処理のフローチャートである。
【００４８】
情報機器１０に電源が投入されると、割り込み処理プログラム転送部１０４は、命令転送部１０３が実行する処理のプログラムを、命令転送部１０３による処理の開始前に揮発性メモリ２００に書き込む（Ｓ１０１）。命令転送部１０３が実行する処理については後で詳述する。命令転送部１０３が実行する処理のプログラムは、不揮発性メモリ３００に記憶されており、割り込み処理プログラム転送部１０４がそのプログラムを不揮発性メモリ３００から揮発性メモリ２００に転送するようにしてもよい。また、命令転送部１０３が実行する処理のプログラムが情報機器１０内のＲＯＭまたはフラッシュメモリに記憶されており、割り込み処理プログラム転送部１０４がそのプログラムをＲＯＭから揮発性メモリ２００に転送するようにしてもよい。
【００４９】
次に、データ転送部１０５は、命令実行部１０２による命令の実行開始前に、不揮発性メモリ３００に記憶されている定数データを、揮発性メモリ２００に転送する（Ｓ１０２）。図３に示されるように、不揮発性メモリ３００の命令領域３０２には、ＣＰＵ１００の命令実行部１０２で実行されるプログラムのうち、命令領域２０２に転送される命令が記憶され、データ領域３０３には、ＣＰＵ１００の命令実行部１０２で実行されるプログラムのうち、データ領域２０３に転送されるデータが記憶されている。データ転送部１０５は、このうち、データ領域３０３に記憶されているデータを読み出し、読み出したデータを揮発性メモリ２００のデータ領域２０３に書き込む。データ領域２０３に書き込まれるデータは、変数の初期値データなどの定数データなどである。この時点では、命令領域２０２には何も命令が書き込まれていない。
【００５０】
再度図２を参照して、コード書き込み部１０１は、不揮発性メモリ３００に記憶されている命令が書き込まれる揮発性メモリ２００の領域である命令領域２０２に含まれるページのうち、命令が書き込まれていないページに、割り込み発生コードを書き込む（Ｓ１０３）。以下の説明では、割り込み発生コードが、命令実行部１０２（ＣＰＵ１００）に実装される命令セットに含まれるソフトウェア割り込み命令であるものとする。
【００５１】
例えば、図３に示すように命令領域２０２には何も命令が書き込まれていない状態であるとする。この場合には、図４に示すように、コード書き込み部１０１は、命令領域２０２のすべてのページ（例えば、ページＡ〜Ｆ）にソフトウェア割り込み命令を書き込む。以降の説明ではソフトウェア割り込み命令を「ｐｉ」で示すものとし、ソフトウェア割り込み命令ｐｉは、典型的には命令セットにおいて表現可能な最小命令長の命令であるものとする。以降、ソフトウェア割り込み命令ｐｉは機械語コード「ｆｆ」であらわされる１バイト命令として説明する。コード書き込み部１０１は、ページＡ〜Ｆのすべてのバイトにソフトウェア割り込み命令ｐｉを書き込む。なお、命令領域２０２の一部に他のプログラムの命令やデータなどが予め記憶されている場合には、その部分にはソフトウェア割り込み命令ｐｉを書き込まないようにする。また、不揮発性メモリ３００の命令領域３０２に記憶されている命令中にはソフトウェア割り込み命令ｐｉは登場しないものとする。
【００５２】
再度図２を参照して、命令実行部１０２は、命令領域２０２に記憶されている命令を実行するとともに、ソフトウェア割り込み命令ｐｉが実行された場合に、ソフトウェア割り込みを発生させる（Ｓ１０４）。プログラム実行処理（Ｓ１０４）の詳細については、後述する。
【００５３】
図５は、プログラム実行処理（図２のＳ１０４）の詳細なフローチャートである。
【００５４】
命令実行部１０２は、プログラムカウンタが示す揮発性メモリ２００のアドレスに記憶されている命令をデコードする（Ｓ２０１）。
【００５５】
デコードした命令がソフトウェア割り込み命令ｐｉの場合には（Ｓ２０２でＹＥＳ）、命令実行部１０２は、ソフトウェア割り込みを発生させ、ソフトウェア割り込みに応答し、命令転送部１０３がソフトウェア割り込み処理を実行する（Ｓ２０３）。
【００５６】
図６は、ソフトウェア割り込み処理（図５のＳ２０３）の詳細なフローチャートである。
【００５７】
命令転送部１０３は、ソフトウェア割り込み命令ｐｉによるソフトウェア割り込みの発生時に、ソフトウェア割り込みを発生させたソフトウェア割り込み命令ｐｉが記憶されているページである該当ページに記憶されるべき命令を、不揮発性メモリ３００から揮発性メモリの該当ページに転送する（Ｓ３０１）。
【００５８】
例えば、図７に示すように命令領域２０２のページＡに命令が転送済みであり、その他のページ（ページＢ〜Ｆ）にはソフトウェア割り込み命令ｐｉが書き込まれている状態を考える。この状態で、ページＡの最後のｊｍｐ命令によりページＡからページＤへジャンプしたとする。すると、図８に示されるようにページＤのソフトウェア割り込み命令ｐｉがデコードされるので、命令実行部１０２はソフトウェア割り込みを発生させる。このソフトウェア割り込みに応答して、命令転送部１０３がページＤに命令を転送するので、図９に示すようにページＤに命令が転送された状態となる。
【００５９】
ここで本実施の形態では、プログラムカウンタの値は、ソフトウェア割り込み発生時にスタックに書き込まれているものとし、ソフトウェア割り込み処理終了後にはスタックからプログラムカウンタに書き戻されるものとするが、プログラムカウンタ退避用のレジスタが用意されている場合には、そのレジスタを用いた退避、復帰を行なってもよい。再度図５を参照して、ソフトウェア割り込み処理（Ｓ２０３）の後、プログラムが終了するまで命令デコード処理（Ｓ２０１）以降の処理が繰り返される。つまり、プログラムカウンタはソフトウェア割り込みを行ったソフトウェア割り込み命令ｐｉが記憶されていたアドレスを記憶しているので、そのアドレスに記憶されている命令のデコードから処理が再開される。
【００６０】
デコードした命令が通常の命令の場合には（Ｓ２０２でＮＯ）、命令実行部１０２は、デコードした命令を実行する（Ｓ２０４）。命令実行後にプログラムカウンタの値は次の命令のアドレスに書き換えられる。その後、プログラムが終了するまで命令コード処理（Ｓ２０１）以降の処理が繰り返される。
【００６１】
以上説明したように、実施の形態１に係る情報機器１０によると、コード書き込み部１０１により、命令領域２０２に含まれるページのうち、命令が書き込まれていないページに割り込み発生コード（ソフトウェア割り込み命令ｐｉ）が書き込まれる。このため、命令領域２０２にソフトウェア割り込み命令ｐｉ以外の命令が記憶されている場合には、その命令が実行されるが、ソフトウェア割り込み命令ｐｉが記憶されている場合には、上記ソフトウェア割り込み命令ｐｉが実行されることによりソフトウェア割り込みが発生する。ソフトウェア割り込み処理では、該当ページに命令の転送が行なわれる。このため、割り込み処理後には、正常に命令を実行することができる。このように、命令実行と命令転送とを同時並行的に行うことができる。このため、プログラムの種別に応じたプログラムの切り分けを必要とせず、１回目のシステム起動時からシステム起動を高速化することができる。
【００６２】
なお、コード書き込み部１０１と、命令転送部１０３と、割り込み処理プログラム転送部１０４と、データ転送部１０５はＣＰＵ内にハードウェアとして実装されている必要は必ずしもなく、同等の機能を果たすソフトウェアとして実装することとしてもよい。
【００６３】
（実施の形態２）
次に、本発明の実施の形態２に係る情報機器について説明する。
【００６４】
実施の形態１では、不揮発性メモリ３００の命令領域３０２に記憶されている命令中にはソフトウェア割り込み命令ｐｉは登場しないものとした。これに対して、実施の形態２では、命令領域３０２に記憶されている命令中にソフトウェア割り込み命令ｐｉが登場してもよいものとする。これは、デバッグ作業におけるブレークポイントを指定するためなどのように、割り込みを発生させるのとは異なる目的でプログラム中にソフトウェア割り込み命令ｐｉが埋め込まれている場合を想定したものである。つまり、以下に説明する転送管理テーブルを用いることにより、実行対象とされているソフトウェア割り込み命令ｐｉが、割り込みを発生させる目的でコード書き込み部１０１により書き込まれたものであるのか否かを判断する点が実施の形態１とは異なる。
【００６５】
図１０は、本発明の実施の形態２に係る情報機器の機能的な構成を示すブロック図である。以下の説明では、実施の形態１と同様の構成部については同一の参照符号を付す。その機能および名称も同一であるため適宜説明を省略する。
【００６６】
情報機器２０は、プログラムを実行する装置であり、ＣＰＵ１１０と、揮発性メモリ２１０と、不揮発性メモリ３００とを備える。ＣＰＵ１１０、揮発性メモリ２１０および不揮発性メモリ３００は、バス４００を介して相互に接続される。
【００６７】
ＣＰＵ１１０は、プログラムを実行する処理部であり、情報機器２０の起動を制御する起動制御装置としての役割を果たす。揮発性メモリ２１０は、ＣＰＵ１１０で実行されるプログラムを記憶する揮発性メモリであり、例えば、ＤＲＡＭ等である。揮発性メモリ２１０は、不揮発性メモリ３００よりも高速にアクセス可能である。
【００６８】
揮発性メモリ２１０は、命令領域２０２と、データ領域２０３とを含み、その他に転送管理テーブルデータ２０４を記憶している。転送管理テーブルデータ２０４は、不揮発性メモリ３００から揮発性メモリ２００に命令を転送済みである、命令領域２０２に含まれるページを示すデータである。図１１は、転送管理テーブルデータ２０４の一例を示す図である。転送管理テーブルデータ２０４は、ページごとに転送管理フラグを記憶しており、転送管理フラグが１のページには、不揮発性メモリ３００から揮発性メモリ２００に命令を転送済みであることを示し、転送管理フラグが０のページには、不揮発性メモリ３００から揮発性メモリ２００に命令を未転送であることを示す。図１１の例では、ページＡ、Ｂ、ＥおよびＦには、不揮発性メモリ３００から揮発性メモリ２００に命令を転送済みであることが示され、ページＣおよびＤには、不揮発性メモリ３００から揮発性メモリ２００に命令を未転送であることが示されている。転送管理テーブルデータ２０４は、図１０の例には限定されず、例えば、転送管理テーブルデータ２０４が命令を転送済みのページ名のみを含んでいても良いし、命令を未転送のページ名のみを含んでいても良い。
【００６９】
ＣＰＵ１１０は、コード書き込み部１０１と、命令実行部１０２と、命令転送部１１３と、割り込み処理プログラム転送部１０４と、データ転送部１０５とを備える。
【００７０】
命令転送部１１３は、ソフトウェア割り込み命令ｐｉによるソフトウェア割り込みの発生時に転送管理テーブルデータ２０４を参照することにより、ソフトウェア割り込みを発生させたコードである割り込み発生コードが記憶されているページである該当ページに命令を未転送であると判断することができる場合、上記該当ページに記憶されるべき命令を、不揮発性メモリ３００から揮発性メモリ２００の上記該当ページに転送し、転送管理テーブルデータ２０４を更新する。
【００７１】
以下、具体例を示しながら情報機器２０の起動時の処理について説明する。以下の説明では、実施の形態１と同様のステップについては同一のステップ番号を付し、適宜説明を省略する。
【００７２】
図１２は、情報機器２０の起動時の処理のフローチャートである。
【００７３】
処理の流れは、図２に示した情報機器１０の起動時と同じである。ただし、プログラム実行処理（Ｓ１０４）が開始されるまでの間に、命令実行部１０２は、転送管理テーブルデータ２０４の初期化を行う（Ｓ１０５）。つまり、命令実行部１０２は、転送管理テーブルデータ２０４において、命令が未転送のページの転送管理フラグを０に設定する。例えば、命令領域２０２にページＡ〜Ｆが含まれ、すべてのページに命令を未転送であれば、命令実行部１０２は、図１３に示すようにページＡ〜Ｆの転送管理フラグを０に設定する。
【００７４】
プログラム実行処理（Ｓ１０４）の詳細は、図５に示したものと同様である。ただし、プログラム実行処理（Ｓ１０４）中で実行されるソフトウェア割り込み処理（図５のＳ２０３）が実施の形態１とは異なる。
【００７５】
図１４は、ソフトウェア割り込み処理（図５のＳ２０３）の詳細なフローチャートである。
【００７６】
命令転送部１１３は、ソフトウェア割り込み命令ｐｉによるソフトウェア割り込みの発生時に転送管理テーブルデータ２０４を参照することにより、該当ページに命令を未転送であるか否かを判断する（Ｓ３０２）。
【００７７】
該当ページに命令を未転送であれば（Ｓ３０２でＹＥＳ）、命令転送部１１３は、該当ページに記憶されるべき命令を、不揮発性メモリ３００から揮発性メモリの該当ページに転送する（Ｓ３０１）。その後、命令転送部１１３は、転送管理テーブルデータ２０４を更新する（Ｓ３０３）。つまり、該当ページの転送管理フラグを０から１に変更する。例えば、図７に示した命令領域２０２の状態では、転送管理テーブルデータ２０４は図１５のようになる。その後、図９に示すようにページＤのソフトウェア割り込み命令ｐｉによりソフトウェア割り込みが発生し、ページＤに命令が転送された後は、転送管理テーブルデータ２０４は図１６のようになる。つまり、ページＤの転送管理フラグが１から０に変更される。
【００７８】
該当ページに命令を転送済みであれば（Ｓ３０２でＮＯ）、命令転送部１１３は、割り込み処理を終了する。該当ページに命令を転送済みであるということは、デバッグ作業におけるブレークポイントを指定するためにプログラム中に埋め込まれたソフトウェア割り込み命令ｐｉによりソフトウェア割り込みが行われた状況を示している。このような状況では、既に命令を転送済みであり、命令を転送する必要がないため、命令を転送しないようにする。
【００７９】
以上説明したように、実施の形態２に係る情報機器２０によると、転送管理テーブルデータ２０４を参照することにより、命令の転送の有無を判断することができる。例えば、デバッグ作業におけるブレークポイントを指定するためなどのように、割り込みを発生させるのとは異なる目的でプログラム中にソフトウェア割り込み命令ｐｉが埋め込まれている場合がある。このような場合には、ブレークポイントにおけるソフトウェア割り込み命令ｐｉを実行することにより命令を転送する必要はないが、命令の転送の有無を判断する手段がない場合には、命令が転送されてしまう。このような場合に、転送管理テーブルデータ２０４を参照することにより、命令を転送すべきであるのか否かを適切に判断することができる。
【００８０】
また、情報機器２０は、実施の形態１に係る情報機器１０と同様に、命令実行と命令転送とを同時並行的に行うことができる。このため、プログラムの種別に応じたプログラムの切り分けを必要とせず、１回目のシステム起動時からシステム起動を高速化することができる。
【００８１】
なお、ソフトウェア割り込み命令ｐｉの代わりに割り込み発生コードとしてシステムコール例外を発生させるための命令を用いる場合においては、プログラム中にシステムコール例外を発生させるための命令が登場する場合がある。このような場合にも、転送管理テーブルを用いることにより、実行対象とされているシステムコール例外を発生させるための命令が、システムコール例外を発生させる目的でコード書き込み部１０１により書き込まれたものであるのか否かを判断することができる。
【００８２】
なお、ソフトウェア割り込み命令ｐｉを割り込みを発生させる目的のみに使用する場合には、転送管理テーブルデータ２０４は不要である。このため、そのような場合には、実施の形態１に示した情報機器１０を用いればよい。
【００８３】
（実施の形態３）
次に、本発明の実施の形態３に係る情報機器について説明する。
【００８４】
例えば、図１７（ａ）に示すように、揮発性メモリの命令領域に、２つのページ（例えば、ページＡとページＢ）のページ境界に跨って命令が配置される場合がある。このような命令を、以下ではページ境界命令と言う。図１７（ａ）の例では、ページ境界命令は、「ｓｕｂ  １００，ｄ０」である。このとき、図１７（ｂ）に示すように、一方のページ（例えば、ページＡ）のみに命令が転送され、他方のページ（例えば、ページＢ）に命令が転送されていないとすると、ページ境界命令の一部の値がソフトウェア割り込み命令ｐｉで書き換えられていることとなる。このため、本来のページ境界命令とは異なるページ境界命令「ｓｕｂ  ０ｘｆｆｆｆ，ａ３」が命令領域に記憶されることとなり、このようなページ境界命令を実行してしまうと誤った結果が導き出されたり、情報機器の誤作動を引き起こしたりしてしまう。このため、実施の形態３では、本来のページ境界命令とは異なるページ境界命令が実行されてしまうのを防止する仕組みを備えている。なお、ページ境界命令は、命令が可変長命令である場合や、固定長命令であっても先頭の命令がアラインメントされていない位置に配置されるためにページ間を跨って命令が配置される場合に生じる。換言すれば、命令領域に固定長命令がアラインメントされて配置されていれば、このような問題は生じない。このため、このような場合には、実施の形態１または２で説明した情報機器を用いることができる。
【００８５】
図１８は、本発明の実施の形態３に係る情報機器の機能的な構成を示すブロック図である。以下の説明では、上述の実施の形態と同様の構成部については同一の参照符号を付す。その機能および名称も同一であるため適宜説明を省略する。
【００８６】
情報機器３０は、プログラムを実行する装置であり、ＣＰＵ１２０と、揮発性メモリ２２０と、不揮発性メモリ３１０とを備える。ＣＰＵ１２０、揮発性メモリ２２０および不揮発性メモリ３１０は、バス４００を介して相互に接続される。
【００８７】
ＣＰＵ１２０は、プログラムを実行する処理部であり、情報機器３０の起動を制御する起動制御装置としての役割を果たす。揮発性メモリ２２０は、ＣＰＵ１２０で実行されるプログラムを記憶する揮発性メモリであり、例えば、ＤＲＡＭ等である。不揮発性メモリ３１０は、揮発性メモリ２２０に転送されＣＰＵ１２０で実行されるプログラムを記憶する不揮発性メモリであり、例えば、ＮＡＮＤ型フラッシュメモリまたはＮＯＲ型フラッシュメモリ等である。揮発性メモリ２２０は、不揮発性メモリ３１０よりも高速にアクセス可能である。
【００８８】
揮発性メモリ２２０は、命令領域２０２と、データ領域２０３とを含み、その他に転送管理テーブルデータ２０５を記憶している。転送管理テーブルデータ２０５は、（ｉ）不揮発性メモリ３１０から揮発性メモリ２２０に命令を転送済みである、命令領域２０２に含まれるページと、（ｉｉ）ページ境界命令の、揮発性メモリ２２０上でのアドレスとを示すデータである。図１９は、転送管理テーブルデータ２０５の一例を示す図である。転送管理テーブルデータ２０５は、ページごとに、転送管理フラグと、境界命令有無フラグと、境界命令アドレスと、先頭コードとを記憶している。転送管理フラグは、実施の形態２に示したものと同様であるため説明は繰り返さない。境界命令有無フラグは、１がそのページと次のページに跨るページ境界命令が存在することを示し、０が存在しないことを示す。境界命令アドレスは、ページ境界命令の先頭アドレスを示す。先頭コードは、ページ境界命令の先頭コードを示す。本実施の形態ではページサイズを２５６バイトとして説明するが、任意のページサイズでも同様の方法で実施可能である。
【００８９】
不揮発性メモリ３１０は、命令領域３０２と、データ領域３０３を含み、その他に境界命令アドレスデータ３０４を記憶している。境界命令アドレスデータ３０４は、ページ境界命令の、揮発性メモリ２２０上でのアドレスを示すデータである。例えば、図２０に示すように、境界命令アドレスデータ３０４は、ページごとに、境界命令有無フラグと境界命令アドレスとを記憶している。境界命令有無フラグと境界命令アドレスとは図１９で説明したものと同様である。なお、本実施の形態では、命令領域３０２に記憶される命令中には割り込み発生コードは含まれないものとする。なお、境界命令アドレスデータ３０４は、予め作成されており、例えば、コンパイラが、命令領域３０２に記憶される命令に対応するプログラムのコンパイル時に作成するようにしてもよい。なお、境界命令アドレスデータ３０４を転送管理テーブルデータ２０５に転送するのではなく、境界命令アドレスデータ３０４を動的に生成するようにしてもよい。この場合には、ページ境界のアドレスから所定バイト数前のアドレスからページ境界のアドレスまでの範囲に含まれる命令のみをデコードし、ページ境界命令が含まれるか否かの判断を行うようにしても良い。このとき、所定バイト数は、１命令の最大バイト数とすればよい。
【００９０】
ＣＰＵ１２０は、コード書き込み部１０１と、命令実行部１０２と、命令転送部１１４と、割り込み処理プログラム転送部１０４と、データ転送部１０５とを備える。
【００９１】
命令転送部１１４は、（ｉ）命令を未転送のページに配置された割り込み発生コード（ソフトウェア割り込み命令ｐｉ）によるソフトウェア割り込みの発生時に、該当ページに記憶されるべき命令を、不揮発性メモリ３１０から揮発性メモリ２２０の該当ページに転送するとともに、該当ページの直後に隣接するページに命令が未転送の場合には、該当ページと直後に隣接するページとの間に跨って配置されるプログラム境界命令にソフトウェア割り込み命令ｐｉを書き込み、（ｉｉ）プログラム境界命令に書き込まれたソフトウェア割り込み命令ｐｉによるソフトウェア割り込みの発生時に、プログラム境界命令の直後のページに記憶されるべき命令を、不揮発性メモリ３１０から揮発性メモリ２２０の上記プログラム境界命令の直後のページに転送する。
【００９２】
命令転送部１１４は、転送部１１５と、第１コード書き込み部１１６と、第２コード書き込み部１１７とを備える。
【００９３】
転送部１１５は、ソフトウェア割り込み命令ｐｉによるソフトウェア割り込みの発生時に転送管理テーブルデータ２０５を参照することにより、該当ページに命令を未転送であると判断することができる場合、該当ページを転送対象ページとし、（ｉｉ）ソフトウェア割り込み命令ｐｉによるソフトウェア割り込みの発生時に転送管理テーブルデータ２０５を参照することにより、該当ページに命令を転送済みであると判断することができる場合、該当ページの直後に隣接するページを転送対象ページとし、（ｉｉｉ）転送対象ページとされた該当ページまたは該当ページの直後に隣接するページに記憶されるべき命令を、不揮発性メモリ３１０から揮発性メモリ２２０の転送対象ページに転送し、転送管理テーブルデータ２０５を更新する。
【００９４】
第１コード書き込み部１１６は、転送部１１５による処理の後に、転送管理テーブルデータ２０５を参照することにより、転送対象ページのアドレスにページ境界命令のアドレスが含まれ、かつ転送対象ページの直後に隣接するページである直後ページに命令を未転送であると判断することができる場合、ソフトウェア割り込み命令ｐｉを、転送対象ページのページ境界命令のアドレスに書き込む。
【００９５】
第２コード書き込み部１１７は、転送部１１５による処理の後に、転送管理テーブルデータ２０５を参照することにより、転送対象ページの直前に隣接するページである直前ページのアドレスにページ境界命令のアドレスが含まれ、かつ直前ページに命令を転送済みであると判断することができる場合、直前ページのページ境界命令のアドレスに、ページ境界命令を書き込む。
【００９６】
なお、データ転送部１０５は、さらに、不揮発性メモリ３１０に記憶されている境界命令アドレスデータ３０４を、揮発性メモリ２２０の転送管理テーブルデータ２０５に転送する。
【００９７】
以下、具体例を示しながら情報機器３０の起動時の処理について説明する。以下の説明では、上述の実施の形態と同様のステップについては同一のステップ番号を付し、適宜説明を省略する。
【００９８】
図２１は、情報機器３０の起動時の処理のフローチャートである。
【００９９】
処理の流れは、図１２に示した情報機器２０の起動時の処理の流れと同じである。ただし、プログラム実行処理（Ｓ１０４）が開始されるまでの間に、データ転送部１０５は、不揮発性メモリ３１０に記憶されている境界命令アドレスデータ３０４を、揮発性メモリ２２０の転送管理テーブルデータ２０５に転送する。例えば、図２０に示す境界命令アドレスデータ３０４を、転送管理テーブルデータ２０５に転送することにより、図１９に示す転送管理テーブルデータ２０５が得られる。
【０１００】
プログラム実行処理（Ｓ１０４）の詳細は、図５に示したものと同様である。ただし、プログラム実行処理（Ｓ１０４）中で実行されるソフトウェア割り込み処理（図５のＳ２０３）が実施の形態１とは異なる。
【０１０１】
図２２は、ソフトウェア割り込み処理（図５のＳ２０３）の詳細なフローチャートである。
【０１０２】
転送部１１５は、ソフトウェア割り込み命令ｐｉによるソフトウェア割り込みの発生時に転送管理テーブルデータ２０５を参照することにより、該当ページに命令を未転送であるか否かを判断する（Ｓ３０２）。
【０１０３】
該当ページに命令を未転送であれば（Ｓ３０２でＹＥＳ）、転送部１１５は、該当ページを転送対象ページと決定する（Ｓ３０４）。例えば、図２３（ａ）に示すように、ページＣのソフトウェア割り込み命令１８０１（ソフトウェア割り込み命令ｐｉ）の実行によりソフトウェア割り込みが発生した場合には、該当ページであるページＣが命令の転送対象ページと決定される。
【０１０４】
該当ページに命令を転送済みであれば（Ｓ３０２でＮＯ）、該当ページの直後に隣接するページを転送対象ページと決定する（Ｓ３０５）。例えば、図２４（ａ）に示すように、ページＣのページ境界命令１８０２の先頭アドレス１８０３に位置するソフトウェア割り込み命令ｐｉの実行によりソフトウェア割り込みが発生し、ページＣに命令を転送済みであれば、後述するようにページＣの先頭アドレス１８０３に位置するソフトウェア割り込み命令ｐｉは、元々、ページ境界命令であったものがソフトウェア割り込み命令ｐｉに書き換えられたものである。このため、ページＣの直後に隣接するページＤが命令の転送対象ページと決定される。このように転送対象ページを決定する理由については後述する。
【０１０５】
転送部１１５、第１コード書き込み部１１６および第２コード書き込み部１１７は、転送対象ページとされた該当ページまたは該当ページの直後に隣接するページに記憶されるべき命令を、不揮発性メモリ３１０から揮発性メモリ２２０の転送対象ページに転送し、転送管理テーブルデータ２０５を更新する（Ｓ３０６）。
【０１０６】
命令転送処理（図２２のＳ３０６）の詳細について、次に説明する。図２５は、命令転送処理（図２２のＳ３０６）の詳細なフローチャートである。
【０１０７】
転送部１１５は、転送対象ページとされた該当ページまたは該当ページの直後に隣接するページに記憶されるべき命令を、不揮発性メモリから揮発性メモリの転送対象ページに転送し（Ｓ４０１）、転送管理テーブルデータ２０５を更新する（Ｓ４０２）。図２３（ａ）に示す例の場合、転送対象ページがページＣであるため、ページＣに命令が転送され、図２３（ｂ）に示すような状態になる。その後、転送管理テーブルデータ２０５のページＣの転送管理フラグが０から１に書き換えられ、図２６に示すような状態になる。
【０１０８】
第１コード書き込み部１１６は、転送管理テーブルデータ２０５を参照することにより、転送対象ページのアドレスにページ境界命令のアドレスが含まれるか否かを判断する（Ｓ４０３）。つまり、転送管理テーブルデータ２０５において転送対象ページの境界命令有無フラグが１であれば、転送対象ページのアドレスにページ境界命令のアドレスが含まれていると判断し、０であれば含まれていないと判断する。転送対象ページのアドレスにページ境界命令のアドレスが含まれる場合には（Ｓ４０３でＹＥＳ）、第１コード書き込み部１１６は、転送管理テーブルデータ２０５を参照することにより、転送対象ページの直後に隣接するページである直後ページに命令を未転送であるか否かを判断する（Ｓ４０４）。つまり、転送管理テーブルデータ２０５において直後ページの転送管理フラグが０であれば直後ページに命令を未転送であると判断し、１であれば転送済みであると判断する。図２３（ｂ）に示す例では、転送対象ページであるページＣのアドレスにページ境界命令１８０２のアドレスが含まれ、直後ページであるページＤには命令が未転送である。このような状況は、ページ境界命令１８０２が本来のコードとは異なるものになっていることを示すため、以降の処理でページ境界命令１８０２を実行しないような手当が行われる。
【０１０９】
直後ページに命令を未転送である場合（Ｓ４０４でＹＥＳ）、第１コード書き込み部１１６は、転送対象ページに含まれるページ境界命令の先頭アドレスのコードをバッファに退避する（Ｓ４０５）。その後、第１コード書き込み部１１６は、ソフトウェア割り込み命令ｐｉを、転送対象ページのページ境界命令のアドレスに書き込む（Ｓ４０６）。図２３（ｂ）に示す例の場合、ページ境界命令１８０２の先頭アドレス１８０３のコード「ｄａ」がバッファに退避され、図２３（ｃ）に示すように先頭アドレス１８０３にソフトウェア割り込み命令ｐｉが書き込まれる。これにより、プログラムカウンタが先頭アドレス１８０３を示した場合であっても、本来の命令とは異なるページ境界命令が実行されるのを防ぐことができる。なお、本実施の形態ではバッファとして転送管理テーブルデータ２０５の先頭コードの欄を用いる。このため、図２３（ｃ）に示す状態では、転送管理テーブルデータ２０５は、図２７のような状態になる。つまり、ページＣの先頭コードの欄に先頭アドレス１８０３のコード「ｄａ」が書き込まれている。
【０１１０】
なお、転送対象ページのアドレスにページ境界命令のアドレスが含まれていない場合には（Ｓ４０３でＮＯ）、Ｓ４０４〜Ｓ４０６の処理は実行されない。また、転送対象ページのアドレスにページ境界命令のアドレスが含まれているが、直後ページに命令を転送済みである場合には（Ｓ４０３でＹＥＳ、Ｓ４０４でＮＯ）、ページ境界命令は本来あるべき命令となっており、ページ境界命令を実行しても情報機器３０の誤作動等の問題は生じないため、Ｓ４０５およびＳ４０６の処理は実行されない。
【０１１１】
次に、第２コード書き込み部１１７は、転送管理テーブルデータ２０５を参照することにより、転送対象ページの直前に隣接するページである直前ページのアドレスにページ境界命令のアドレスが含まれているか否かを判断する（Ｓ４０７）。つまり、転送管理テーブルデータ２０５において直前ページの境界命令有無フラグが１であれば、直前ページのアドレスにページ境界命令のアドレスが含まれていると判断し、０であれば含まれていないと判断する。直前ページのアドレスにページ境界命令のアドレスが含まれている場合（Ｓ４０７でＹＥＳ）、第２コード書き込み部１１７は、転送管理テーブルデータ２０５を参照することにより、直前ページに命令を転送済みであるか否かを判断する（Ｓ４０８）。つまり、転送管理テーブルデータ２０５において直前ページの転送管理フラグが１であれば直前ページに命令を転送済みであると判断し、０であれば命令を未転送であると判断する。図２３（ｃ）に示す例では、直前ページであるページＢのアドレスにはページ境界命令１８０４のアドレスが含まれており、ページＢには命令を転送済みである。このような状況では、過去にページ境界命令１８０４に対してＳ４０５およびＳ４０６の処理が行なわれているため、ページ境界命令１８０４の先頭アドレスにソフトウェア割り込み命令ｐｉが書き込まれている。また、ページＢおよびページＣの双方に命令を転送済みである。このため、ページ境界命令１８０４のソフトウェア割り込み命令ｐｉを本来のコードに書き戻すことによりページ境界命令１８０４を実行可能な状態にすることができる。
【０１１２】
直前ページに命令を転送済みである場合（Ｓ４０８でＹＥＳ）、第２コード書き込み部１１７は、直前ページのページ境界命令のアドレスに、バッファに退避しているページ境界命令を書き込む。図２３（ｃ）に示す例では、直前ページであるページＢに命令を転送済みであるため、図２７に示す転送管理テーブルデータ２０５に記載されているページＢの先頭コード「ｂ０」をページ境界命令１８０４の先頭アドレス１８０５に書き込む。
【０１１３】
なお、直前ページのアドレスにページ境界命令のアドレスが含まれていない場合には（Ｓ４０７でＮＯ）、Ｓ４０８およびＳ４０９の処理は実行されない。また、直前ページのアドレスにページ境界命令のアドレスが含まれているが、直前ページに命令を未転送である場合には（Ｓ４０７でＹＥＳ，Ｓ４０８でＹＥＳ）、直前ページのページ境界命令の先頭アドレスに書き込むべきコードがないため、Ｓ４０９の処理は実行されない。
【０１１４】
次に、Ｓ３０５において該当ページの直後に隣接するページが転送対象ページと決定された場合の具体例について説明する。例えば、図２４（ａ）に示すように、ページＣのページ境界命令１８０２の先頭アドレス１８０３に書き込まれているソフトウェア割り込み命令ｐｉが実行されることにより、ソフトウェア割り込みが発生し、ページＣの直後に隣接するページＤが転送対象ページとされたものとする（図２２のＳ３０２でＮＯ、Ｓ３０５）。このとき、図２４（ｂ）に示すように、ページＤに命令が転送される（図２５のＳ４０１）。また、ページＤの直後ページであるページＥに命令を未転送であるため、ページＤのページ境界命令１９０１の先頭アドレス１９０２のコード「ｂ０」がバッファに退避される（図２５のＳ４０５）。この時点で、転送管理テーブルデータ２０５は、図２８に示す状態になる。その後、図２４（ｃ）に示すように、ページ境界命令１９０１の先頭アドレス１９０２にソフトウェア割り込み命令ｐｉが書き込まれる（図２５のＳ４０６）。また、ページＤの直前ページのアドレスにページ境界命令１８０２のアドレスが含まれており、かつ、ページＣには命令を転送済みであるため（図２５のＳ４０７でＹＥＳ、Ｓ４０８でＹＥＳ）、図２４（ｄ）に示すように、図２８に示す転送管理テーブルデータ２０５に記載されているページＣの先頭コード「ｄａ」がページＣのページ境界命令１８０２の先頭アドレス１８０３に書き込まれる。これにより、本来のページ境界命令１８０２を実行可能な状態に変更される。
【０１１５】
以上説明したように、実施の形態３に係る情報機器３０によると、転送対象ページに命令が転送された場合に、隣接するページに命令が未転送であれば、転送対象ページと隣接するページとの間に跨って配置されているページ境界命令のアドレスにソフトウェア割り込み命令ｐｉを記憶する。これにより、本来のページ境界命令とは異なる命令が実行されるのを防止することができる。
【０１１６】
（実施の形態４）
次に、本発明の実施の形態４に係る情報機器について説明する。
【０１１７】
実施の形態２に係る情報機器２０は、転送管理テーブルデータ２０４を参照して、命令を未転送の揮発性メモリ２１０のページに不揮発性メモリ３００から命令を転送することとしていた。ただし、命令の転送は、ソフトウェア割り込み命令ｐｉを実行することによる割り込み発生時に限定されていた。実施の形態４では、命令の転送を、ソフトウェア割り込み命令ｐｉによる割り込み発生時に加え、命令実行部１０２がアイドル状態の場合にも行う点が実施の形態２とは異なる。ここで、命令実行部１０２がアイドル状態の場合とは、例えば、入力待ち状態などが含まれる。
【０１１８】
実施の形態４に係る情報機器の機能的な構成は、図１０に示した実施の形態２に係る情報機器２０の機能的な構成と同様である。ただし、命令転送部１１３が実行する処理が異なる。つまり、命令転送部１１３は、実施の形態２に示したようにソフトウェア割り込み命令ｐｉによるソフトウェア割り込み発生時に命令を転送する処理のほかに、命令実行部１０２がアイドル状態である場合に、命令を未転送であるページに記憶されるべき命令を、不揮発性メモリ３００から揮発性メモリ２１０の命令を未転送であるページに転送する。
【０１１９】
以下、具体例を示しながら情報機器２０の起動時の処理について説明する。
【０１２０】
情報機器２０は、実施の形態２に示したのと同様の動作を行う。それに加えて、命令実行部１０２がアイドル状態の場合に、以下の処理を行なう。
【０１２１】
図２９は、命令実行部１０２がアイドル状態のときに実行される処理を示すフローチャートである。
【０１２２】
命令転送部１１３は、命令実行部１０２がアイドル状態のときに転送管理テーブルデータ２０４を参照して、命令を未転送のページを検出する（Ｓ５０１）。つまり、転送管理テーブルデータ２０４の転送管理フラグが０になっているページを検出する。例えば、図３０に示すように命令領域２０２のページＢ、Ｃ、ＥおよびＦに命令を未転送であれば、転送管理テーブルデータ２０４は、図３１に示すようになる。このため、命令転送部１１３は、転送管理テーブルデータ２０４の転送管理フラグが０になっているページを１つ検出する。上から順にページを検出しても良いし、ランダムにページを検出しても良い。例えば、ページＢが検出されたものとする。
【０１２３】
命令転送部１１３は、命令を未転送のページを検出した場合には（Ｓ５０２でＹＥＳ）、命令を未転送のページである該当ページに記憶されるべき命令を、不揮発性メモリ３００から揮発性メモリ２１０の該当ページに転送し（Ｓ５０３）、転送管理テーブルデータ２０４を更新する（Ｓ５０４）。例えば、図３２に示すようにページＢに命令が転送され、図３３に示すように転送管理テーブルデータ２０４が更新される。つまり、ページＢの転送管理フラグが０から１に変更される。
【０１２４】
命令を未転送のページが検出されなかった場合には（Ｓ５０２でＮＯ）、命令転送部１１３は処理を終了する。
【０１２５】
命令転送部１１３は、Ｓ５０１〜Ｓ５０４の処理を、命令実行部１０２がアイドル状態のときに繰返し実行する。例えば、図３３の転送管理テーブルデータ２０４を参照することによりページＣが該当ページとされ、図３４に示すようにページＣに命令が転送された後、図３５に示すように転送管理テーブルデータ２０４が更新される。つまり、ページＣの転送管理フラグが０から１に変更される。
【０１２６】
以上説明したように、実施の形態４に係る情報機器２０によると、命令実行部１０２がアイドル状態である場合に、命令転送部１１３が先回りして命令を転送することにより、ソフトウェア割り込みの発生回数を少なくすることができる。よって、システム起動を高速化することができる。
【０１２７】
なお、命令実行部１０２のアイドル状態時において割り込み処理プログラム転送部１０４により実行される割り込み処理実行時には、他の割り込みが禁止されているものとする。これにより、アイドル状態における命令転送を行っている最中にアイドル状態が解消されてしまい、該当ページのソフトウェア割り込み命令ｐｉが実行されてしまうことを禁止することができる。
【０１２８】
（実施の形態５）
次に、本発明の実施の形態５に係る情報機器について説明する。
【０１２９】
実施の形態４に係る情報機器２０は、命令実行部１０２がアイドル状態のときに、命令を未転送の揮発性メモリ２１０のページに不揮発性メモリ３００から命令を転送することとしていた。このとき、命令の転送対象となるページは、上から順、またはランダムに検出されていた。本実施の形態では、１回目の情報機器の起動時のページ単位の命令の転送順序に従って、命令の転送対象となるページを検出する点が実施の形態４とは異なる。
【０１３０】
図３６は、本発明の実施の形態５に係る情報機器の機能的な構成を示すブロック図である。以下の説明では、上述の実施の形態と同様の構成部については同一の参照符号を付す。その機能および名称も同一であるため適宜説明を省略する。
【０１３１】
情報機器４０は、プログラムを実行する装置であり、ＣＰＵ１３０と、揮発性メモリ２３０と、不揮発性メモリ３２０とを備える。ＣＰＵ１３０、揮発性メモリ２３０および不揮発性メモリ３２０は、バス４００を介して相互に接続される。
【０１３２】
ＣＰＵ１３０は、プログラムを実行する処理部であり、情報機器４０の起動を制御する起動制御装置としての役割を果たす。揮発性メモリ２３０は、ＣＰＵ１３０で実行されるプログラムを記憶する揮発性メモリであり、例えば、ＤＲＡＭ等である。不揮発性メモリ３２０は、揮発性メモリ２３０に転送されＣＰＵ１３０で実行されるプログラムを記憶する不揮発性メモリであり、例えば、ＮＡＮＤ型フラッシュメモリまたはＮＯＲ型フラッシュメモリ等である。揮発性メモリ２３０は、不揮発性メモリ３２０よりも高速にアクセス可能である。
【０１３３】
揮発性メモリ２３０は、命令領域２０２と、データ領域２０３とを含み、その他に転送管理テーブルデータ２０６を記憶している。転送管理テーブルデータ２０６は、（ｉ）不揮発性メモリ３２０から揮発性メモリ２３０に命令を転送済みである、命令領域２０２に含まれるページと、（ｉｉ）不揮発性メモリ３２０から揮発性メモリ２３０へのページ単位の命令の転送順序とを示すデータである。図３７は、転送管理テーブルデータ２０６の一例を示す図である。転送管理テーブルデータ２０６は、ページごとに、転送管理フラグと、転送順序とを記憶している。転送管理フラグは、実施の形態２に示したものと同様であるため説明は繰り返さない。転送順序は、１回目の情報機器４０の起動時の、不揮発性メモリ３２０から揮発性メモリ２３０へのページ単位の命令の転送順序を示す。例えば、図３８に示すようにページＡ、Ｄ、Ｅ、Ｂ、Ｃ、Ｆの順に命令が転送されたとすると、転送管理テーブルデータ２０６の転送順序は、図３７に示すようになる。
【０１３４】
不揮発性メモリ３２０は、命令領域３０２と、データ領域３０３とを含み、その他に転送順序データ３０５を記憶している。転送順序データ３０５は、１回目の情報機器４０の起動時の不揮発性メモリ３２０から揮発性メモリ２３０へのページ単位の命令の転送順序を示すデータである。例えば、図３９に示すように、転送順序データ３０５は、ページごとに転送順序を記憶している。図３９の転送順序データ３０５は、ページＡ、Ｄ、Ｅ、Ｂ、Ｃ、Ｆの順に命令が転送されたことを示している。
【０１３５】
ＣＰＵ１３０は、コード書き込み部１０１と、命令実行部１０２と、命令転送部１１８と、割り込み処理プログラム転送部１０４と、データ転送部１０５とを備える。
【０１３６】
命令転送部１１８は、転送管理テーブルデータ２０６を参照することにより、命令実行部１０２がアイドル状態である場合、転送管理テーブルデータ２０６が示す転送順序に従って、命令を未転送であるページに記憶されるべき命令を、不揮発性メモリ３２０から揮発性メモリ２３０の命令を未転送であるページに転送し、転送管理テーブルデータ２０６を更新する。
【０１３７】
なお、データ転送部１０５は、さらに、不揮発性メモリ３２０に記憶されている転送順序データ３０５を、揮発性メモリ２３０の転送管理テーブルデータ２０６に転送する。
【０１３８】
以下、具体例を示しながら情報機器４０の起動時の処理について説明する。以下の説明では、上述の実施の形態と同様のステップについては同一のステップ番号を付し、適宜説明を省略する。
【０１３９】
図４０は、情報機器４０の起動時の処理のフローチャートである。
【０１４０】
Ｓ１０１、Ｓ１０２、Ｓ１０５およびＳ１０３の処理の流れは、図１２に示した情報機器２０の起動時の処理の流れと同じである。ソフトウェア割り込み命令書き込み処理（Ｓ１０３）の後、データ転送部１０５は、情報機器４０の起動が２回目以降か否かを判断し（Ｓ１０７）、２回目以降の起動であれば、転送順序データ３０５を転送管理テーブルデータ２０６に転送する（Ｓ１０８）。つまり、不揮発性メモリ３２０に記憶されている転送順序データ３０５を、揮発性メモリ２３０の転送管理テーブルデータ２０６に転送する。例えば、図３９に示す転送順序データ３０５を、転送管理テーブルデータ２０６に転送することにより、図４１に示す転送管理テーブルデータ２０６が得られる。２回目以降の起動か否かの判断は、不揮発性メモリ３２０内に起動回数を保持しておき、データ転送部１０５がその起動回数を参照することにより、判断しても良い。または、１回目の起動時には不揮発性メモリ３２０には転送順序データ３０５を記憶しないようにしておき、不揮発性メモリ３２０に転送順序データ３０５が記憶されていなければ１回目の起動であると判断し、不揮発性メモリ３２０に転送順序データ３０５が記憶されていれば２回目以降の起動であると判断しても良い。
【０１４１】
その後、プログラム実行処理が行なわれる（Ｓ１０４）。プログラム実行処理（Ｓ１０４）の詳細は、図５に示したものと同様である。ただし、プログラム実行処理（Ｓ１０４）中で実行されるソフトウェア割り込み処理（図５のＳ２０３）が実施の形態１とは異なる。
【０１４２】
プログラム実行処理（Ｓ１０４）の後、データ転送部１０５は、情報機器４０の起動が１回目か否かを判断し（Ｓ１０９）、１回目の起動であれば（Ｓ１０９でＹＥＳ）、転送管理テーブルデータ２０６に含まれる転送順序データを不揮発性メモリ３２０に書き込む（Ｓ１１０）。つまり、転送管理テーブルデータ２０６のうち、転送管理フラグを除く、ページと転送順序とを転送順序データ３０５として不揮発性メモリ３２０に書き込む。これにより、１回目の処理のページ単位の命令の転送順序が不揮発性メモリ３２０に記憶される。１回目の起動か否かの判断は、Ｓ１０７と同様に行われる。
【０１４３】
図４２は、ソフトウェア割り込み処理（図５のＳ２０３）の詳細なフローチャートである。
【０１４４】
命令転送部１１８は、ソフトウェア割り込み命令ｐｉによるソフトウェア割り込みの発生時に転送管理テーブルデータ２０６を参照することにより、該当ページに命令を未転送であるか否かを判断する（Ｓ３０２）。
【０１４５】
該当ページに命令を未転送であれば（Ｓ３０２でＹＥＳ）、命令転送部１１８は、該当ページに記憶されるべき命令を、不揮発性メモリ３２０から揮発性メモリ２３０の該当ページに転送する（Ｓ３０１）。その後、命令転送部１１８は、転送管理テーブルデータ２０６を更新する（Ｓ３０７）。つまり、該当ページの転送管理フラグを０から１に変更する。また、情報機器４０の起動が１回目の場合には、該当ページの転送順序を書き込む。書き込まれた転送順序は、上述した図４０のＳ１１０の処理により、転送順序データ３０５として不揮発性メモリ３２０に書き込まれる。
【０１４６】
なお、命令実行部１０２は、２回目以降の起動時に命令実行部１０２がアイドル状態となっている場合に、以下の処理を行なう。
【０１４７】
図４３は、２回目以降の起動時に命令実行部１０２がアイドル状態のときに命令転送部１１８が実行する処理を示すフローチャートである。
【０１４８】
命令転送部１１８は、転送管理テーブルデータ２０６を参照することにより、命令を未転送のページのうち、最も転送順序が早いものを検出する（Ｓ５０５）。例えば、図４４に示すように命令領域２０２のうち、ページＢ、Ｃ、Ｆに命令を未転送であるとする。このとき、転送管理テーブルデータ２０６は、図３７に示すようになっている。このため、命令転送部１１８は、転送管理テーブルデータ２０６において、転送管理フラグが０のページのうち、転送順序が一番小さいページを検出する。つまり、図３７の例では、ページＢが検出される。
【０１４９】
命令転送部１１８は、未転送ページが検出されたか否かを判断し（Ｓ５０２）、検出されている場合には（Ｓ５０２でＹＥＳ）、検出された未転送ページである該当ページに記憶されるべき命令を命令領域３０２から命令領域２０２の該当ページに転送し（Ｓ５０３）、転送管理テーブルデータ２０６の転送管理フラグを更新する（Ｓ５０４）。例えば、該当ページとされたページＢの転送管理フラグが０から１に変更される。
【０１５０】
命令を未転送のページが検出されなかった場合には（Ｓ５０２でＮＯ）、命令転送部１１８は処理を終了する。
【０１５１】
命令転送部１１８は、Ｓ５０５、Ｓ５０２〜Ｓ５０４の処理を、命令実行部１０２がアイドル状態のときに繰返し実行する。
【０１５２】
以上説明したように、実施の形態５に係る情報機器４０によると、不揮発性メモリ３２０から揮発性メモリ２３０への命令の転送順序に従って、命令を転送することにより、命令の実行順序がある程度決まっているようなプログラムについては、先回りした命令の転送を効果的に行うことができる。つまり、先回りして転送した命令が実行されずに他のソフトウェア割り込み命令ｐｉが実行されることによるソフトウェア割り込みの発生を低減させることができ、先回りして転送した命令がその命令の転送時から早い段階で実行されることになり、システム起動を高速化することができる。
【０１５３】
（実施の形態５の変形例）
なお、実施の形態５では、命令実行部１０２がアイドル状態の場合に先回りして命令を転送することとしたが、情報機器４０の起動直後の、命令実行部１０２による命令の実行開始前に先回りして所定ページ数の命令の転送を行い、その後に、命令の実行を開始するようにしても良い。
【０１５４】
図４５は、実施の形態５の変形例に係る情報機器４０の起動時の処理のフローチャートである。
【０１５５】
基本的な処理の流れは、図４０に示した情報機器４０の起動時の処理と同じであるが、Ｓ１０８の処理の後であって、Ｓ１０４の処理の前に、ループ処理（ループＡ）が加わっている。
【０１５６】
ループＡにおいては、まず、命令転送部１１８は、転送管理テーブルデータ２０６を参照することにより、命令を未転送のページのうち、最も転送順序が早いものを検出する（Ｓ１１１）。次に、命令転送部１１８は、未転送ページが検出されたか否かを判断し（Ｓ１１２）する。未転送ページが検出された場合には（Ｓ１１２でＹＥＳ）、命令転送部１１８は、検出された未転送ページである該当ページに記憶されるべき命令を命令領域３０２から命令領域２０２の該当ページに転送し（Ｓ１１３）、転送管理テーブルデータ２０６の転送管理フラグを更新する（Ｓ１１４）。命令転送部１１８は、Ｓ１１１〜Ｓ１１４の処理を所定回数繰り返す（ループＡ）。なお、Ｓ１１１〜Ｓ１１４の処理は、図４３に示した２回目以降の起動時に命令実行部１０２がアイドル状態のときに命令転送部１１８が実行する処理と同様である。
【０１５７】
（実施の形態６）
次に、本発明の実施の形態６に係る情報機器について説明する。
【０１５８】
実施の形態６に係る情報機器は、１回目の起動時における命令転送時の割り込み禁止状態をページごとに記憶しておき、割り込みが禁止されている状態でソフトウェア割り込み命令ｐｉを実行することによるソフトウェア割り込みが発生したページについては、プログラム実行処理（Ｓ１０４）の開始前に命令を揮発性メモリに転送する。これにより、ソフトウェア割り込み命令ｐｉの実行によるソフトウェア割り込みの発生時に、割り込み禁止期間がソフトウェア割り込み処理分、増加することによるシステムの割り込み応答性の劣化を防ぐ。
【０１５９】
図４６は、本発明の実施の形態６に係る情報機器の機能的な構成を示すブロック図である。以下の説明では、上述の実施の形態と同様の構成部については同一の参照符号を付す。その機能および名称も同一であるため適宜説明を省略する。
【０１６０】
情報機器５０は、プログラムを実行する装置であり、ＣＰＵ１４０と、揮発性メモリ２４０と、不揮発性メモリ３３０とを備える。ＣＰＵ１４０、揮発性メモリ２４０および不揮発性メモリ３３０は、バス４００を介して相互に接続される。
【０１６１】
ＣＰＵ１４０は、プログラムを実行する処理部であり、情報機器５０の起動を制御する起動制御装置としての役割を果たす。揮発性メモリ２４０は、ＣＰＵ１４０で実行されるプログラムを記憶する揮発性メモリであり、例えば、ＤＲＡＭ等である。不揮発性メモリ３３０は、揮発性メモリ２４０に転送されＣＰＵ１４０で実行されるプログラムを記憶する不揮発性メモリであり、例えば、ＮＡＮＤ型フラッシュメモリまたはＮＯＲ型フラッシュメモリ等である。揮発性メモリ２４０は、不揮発性メモリ３３０よりも高速にアクセス可能である。
【０１６２】
揮発性メモリ２４０は、命令領域２０２と、データ領域２０３とを含み、その他に転送管理テーブルデータ２０７を記憶している。転送管理テーブルデータ２０７は、（ｉ）不揮発性メモリ３３０から揮発性メモリ２４０に命令を転送済みである、命令領域２０２に含まれるページと、（ｉｉ）ページごとに不揮発性メモリ３３０から揮発性メモリ２４０への命令の転送時点において割り込みを禁止していたか否かを示す状態である割り込み禁止状態とを示すデータである。図４７は、転送管理テーブルデータ２０７の一例を示す図である。転送管理テーブルデータ２０７は、ページごとに、転送管理フラグと、割り込み禁止状態とを記憶している。転送管理フラグは、実施の形態２に示したものと同様であるため説明は繰り返さない。割り込み禁止状態は、１回目の起動時における命令の転送時点において割り込みが禁止されていれば１であり、禁止されていなければ０である。例えば、図４８に示すようにページＡ〜Ｆへの命令転送時における割り込み禁止フラグをＰＳＷ．ＩＭで表すこととし、ＰＳＷ．ＩＭが７以外の場合には割り込みが禁止されている状態であるとすると、転送管理テーブルデータ２０７の割り込み禁止状態は図４７に示すようになる。なお、ＰＳＷ．ＩＭは割り込み禁止レベルであり、例えばＰＳＷ．ＩＭが２であるとすると割り込みレベルが０と１の割り込みは割り込み可能であるが、それ以外の割り込みレベルの割り込みは割り込み禁止であるとする。なお、割り込み禁止状態としてＰＳＷ．ＩＭの値をそのまま用いてもよい。
【０１６３】
不揮発性メモリ３３０は、命令領域３０２と、データ領域３０３とを含み、その他に割り込み禁止状態データ３０６を記憶している。割り込み禁止状態データ３０６は、ページごとに不揮発性メモリ３３０から揮発性メモリ２４０への命令の転送時の割り込み禁止状態を示すデータである。図４９は、割り込み禁止状態データ３０６の一例を示す図である。割り込み禁止状態データ３０６は、ページごとに、割り込み禁止状態を記憶している。例えば、ページＢおよびＣが１回目の起動時の命令転送時に割り込みが禁止されていたことを示している。
【０１６４】
ＣＰＵ１４０は、コード書き込み部１０１と、命令実行部１０２と、命令転送部１１９と、割り込み処理プログラム転送部１０４と、データ転送部１０５とを備える。
【０１６５】
命令転送部１１９は、転送管理テーブルデータ２０７を参照することにより、命令の転送時に割り込み禁止状態であった割り込み禁止ページについては、当該割り込み禁止ページに記憶されるべき命令が実行されるよりも前に、割り込み禁止ページに記憶されるべき命令を、不揮発性メモリ３３０から揮発性メモリ２４０の割り込み禁止ページに転送し、転送管理テーブルデータ２０７を更新する。
【０１６６】
なお、データ転送部１０５は、さらに、不揮発性メモリ３３０に記憶されている割り込み禁止状態データ３０６を、揮発性メモリ２４０の転送管理テーブルデータ２０７に転送する。
【０１６７】
以下、具体例を示しながら情報機器５０の起動時の処理について説明する。以下の説明では、上述の実施の形態と同様のステップについては同一のステップ番号を付し、適宜説明を省略する。
【０１６８】
図５０は、情報機器５０の起動時の処理のフローチャートである。
【０１６９】
Ｓ１０１、Ｓ１０２、Ｓ１０５およびＳ１０３の処理の流れは、図１２に示した情報機器２０の起動時の処理の流れと同じである。ソフトウェア割り込み命令書き込み処理（Ｓ１０３）の後、データ転送部１０５は、情報機器５０の起動が２回目以降か否かを判断し（Ｓ１０７）、２回目以降の起動であれば、割り込み禁止状態データ３０６を転送管理テーブルデータ２０７に転送する（Ｓ１１５）。つまり、不揮発性メモリ３３０に記憶されている割り込み禁止状態データ３０６を、揮発性メモリ２４０の転送管理テーブルデータ２０７に転送する。例えば、図４９に示す割り込み禁止状態データ３０６を、転送管理テーブルデータ２０７に転送することにより、図５１に示す転送管理テーブルデータ２０７が得られる。２回目以降の起動か否かの判断は、不揮発性メモリ３３０内に起動回数を保持しておき、データ転送部１０５がその起動回数を参照することにより、判断しても良い。または、１回目の起動時には不揮発性メモリ３３０には割り込み禁止状態データ３０６を記憶しないようにしておき、不揮発性メモリ３３０に割り込み禁止状態データ３０６が記憶されていなければ１回目の起動であると判断し、不揮発性メモリ３３０に割り込み禁止状態データ３０６が記憶されていれば２回目以降の起動であると判断しても良い。
【０１７０】
その後、命令転送部１１９は、転送管理テーブルデータ２０７を参照することにより、命令を未転送の割り込み禁止ページがあるか否かを判断する（Ｓ１１６）。つまり、命令転送部１１９は、転送管理フラグが０であり、かつ割り込み禁止フラグが１のページがあれば、命令を未転送の割り込み禁止ページがあると判断する。割り込み禁止状態としてＰＳＷ．ＩＭの値をそのまま用いる場合には、その値が一定値以下の場合のみ転送処理を行なうようにしてもよい。例えば、割り込み禁止状態として残したＰＳＷ．ＩＭの値が４以下の場合（割り込み禁止レベルが０〜４の場合）のみ割り込み禁止ページとして判断する等である。命令を未転送の割り込み禁止ページがあれば（Ｓ１１６でＹＥＳ）、命令転送部１１９は、命令を未転送の割り込み禁止ページに記憶されるべき命令を、不揮発性メモリ３３０の命令領域３０２から揮発性メモリ２４０の命令領域２０２の割り込み禁止ページに転送し（Ｓ１１７）、転送管理テーブルデータ２０７を更新する（Ｓ１１８）。つまり、転送管理テーブルデータ２０７における割り込み禁止ページの転送管理フラグの値を０から１に変更する。命令転送部１１９は、Ｓ１１７およびＳ１１８の処理を未転送の割り込み禁止ページが無くなるまで繰り返す。図５２は、割り込み禁止ページに命令をすべて転送した後の命令領域２０２の状態を示しており、このときの転送管理テーブルデータ２０７は、図４７のようになる。
【０１７１】
次に、プログラム実行処理（Ｓ１０４）が実行される。プログラム実行処理（Ｓ１０４）の詳細は、図５に示したものと同様である。ただし、プログラム実行処理（Ｓ１０４）中で実行されるソフトウェア割り込み処理（図５のＳ２０３）が実施の形態１とは異なる。
【０１７２】
プログラム実行処理（Ｓ１０４）の後、データ転送部１０５は、情報機器５０の起動が１回目か否かを判断し（Ｓ１０９）、１回目の起動であれば（Ｓ１０９でＹＥＳ）、転送管理テーブルデータ２０７に含まれる割り込み禁止状態データを不揮発性メモリ３３０に書き込む（Ｓ１１９）。つまり、転送管理テーブルデータ２０７のうち、転送管理フラグを除く、ページと割り込み禁止状態とを割り込み禁止状態データ３０６として不揮発性メモリ３３０に書き込む。これにより、１回目の起動時の割り込み禁止状態が不揮発性メモリ３３０に記憶される。１回目の起動か否かの判断は、Ｓ１０７と同様に行われる。
【０１７３】
図５３は、ソフトウェア割り込み処理（図５のＳ２０３）の詳細なフローチャートである。
【０１７４】
命令転送部１１９は、ソフトウェア割り込み命令ｐｉによるソフトウェア割り込みの発生時に転送管理テーブルデータ２０７を参照することにより、該当ページに命令を未転送であるか否かを判断する（Ｓ３０２）。
【０１７５】
該当ページに命令を未転送であれば（Ｓ３０２でＹＥＳ）、命令転送部１１９は、該当ページに記憶されるべき命令を、不揮発性メモリ３３０から揮発性メモリ２４０の該当ページに転送する（Ｓ３０１）。その後、命令転送部１１９は、転送管理テーブルデータ２０７を更新する（Ｓ３０８）。つまり、該当ページの転送管理フラグを０から１に変更する。また、情報機器５０の起動が１回目の場合には、該当ページへの命令転送時における命令実行部１０２の割り込み禁止状態を書き込む。書き込まれた割り込み禁止状態は、上述した図５０のＳ１１９の処理により、割り込み禁止状態データ３０６として不揮発性メモリ３３０に書き込まれる。
【０１７６】
以上説明したように、実施の形態６に係る情報機器５０によると、割り込み禁止ページに記憶される命令を、その命令が実行されるよりも前に揮発性メモリ２４０の命令領域２０２に転送している。これにより、ソフトウェア割り込み命令ｐｉの実行によるソフトウェア割り込みの発生時に、割り込み禁止期間がソフトウェア割り込み分、増加することによる割り込み応答性の劣化を防ぐことができる。このため、システムの割り込み応答性を劣化させることなく情報機器５０のシステム起動を高速化することができる。
【０１７７】
以上、本発明の実施の形態に係る情報機器について説明したが、本発明は、この実施の形態に限定されるものではない。
【０１７８】
本発明は、上述の実施の形態に示した情報機器または起動制御装置として実現することができる。起動制御装置に必須の構成要素は、コード書き込み部と、命令転送部と、命令実行部とである。情報機器に必須の構成要素は、不揮発性メモリと、揮発性メモリと、コード書き込み部と、命令転送部と、命令実行部とである。
【０１７９】
また、上述した情報機器は、デジタルスチルカメラ、デジタルテレビ、携帯電話機、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）など、不揮発性メモリに記憶されている命令を揮発性メモリに転送した上で実行する機器であればどのような機器であっても良い。
【０１８０】
また、上述の実施の形態では、割り込み発生コードの一例として、ソフトウェア割り込み命令を用いて説明したが、割り込み発生コードは、これに限定されるものではない。例えば、前記命令実行部に実装される命令セットには含まれない、例外処理を引き起こす未定義のコードであってもよい。
【０１８１】
なお、不揮発性メモリがＮＡＮＤ型フラッシュメモリの場合には、一般的に５１２バイトまたは２Ｋバイト単位のように決められたサイズ単位でしか読み書き出来ないため、本発明によって転送、または管理するページサイズはＮＡＮＤ型フラッシュメモリが読み書き可能なサイズの整数倍にするのが良いが、不揮発性メモリがＮＯＲ型フラッシュメモリなどのように１バイト単位で読み書き可能な場合には、本発明によって転送、または管理するページサイズはシステムに応じた任意のページサイズで良い。
【０１８２】
また、上述の実施の形態では割り込み処理プログラム転送部は、命令転送部が実行する処理のプログラムを揮発性メモリに書き込むこととしたが、命令転送部がＲＯＭまたはフラッシュメモリからプログラムを直接読み出して実行するようにしても良い。また、命令転送部が専用のハードウェアにより構成されていてもよい。これらの場合には、割り込み処理プログラム転送部は情報機器に備えられていなくても良い。
【０１８３】
また、上記実施の形態および上記変形例をそれぞれ組み合わせるとしても良い。
【０１８４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０１８５】
本発明は、不揮発性メモリから揮発性メモリに命令を転送した上で揮発性メモリに記憶されている命令を実行する情報機器またはその情報機器の起動を制御する起動制御装置等に適用でき、特に、デジタルスチルカメラ、デジタルテレビ、携帯電話機、ＰＤＡ等に適用できる。
【符号の説明】
【０１８６】
１０、２０、３０、４０、５０  情報機器
１００、１１０、１２０、１３０、１４０  ＣＰＵ
１０１  コード書き込み部
１０２  命令実行部
１０３、１１３、１１８、１１９  命令転送部
１０４  割り込み処理プログラム転送部
１０５  データ転送部
１１４  命令転送部
１１５  転送部
１１６  第１コード書き込み部
１１７  第２コード書き込み部
２００、２１０、２２０、２３０、２４０  揮発性メモリ
２０２、３０２  命令領域
２０３、３０３  データ領域
２０４、２０５、２０６、２０７  転送管理テーブルデータ
３００、３１０、３２０、３３０  不揮発性メモリ
３０４  境界命令アドレスデータ
３０５  転送順序データ
３０６  割り込み禁止状態データ
４００  バス
１８０１  ソフトウェア割り込み命令
１８０２、１８０４、１９０１  ページ境界命令
１８０３、１８０５、１９０２  先頭アドレス
【図１】
2012104950.tif 000003
【図２】
2012104950.tif 000004
【図３】
2012104950.tif 000005
【図４】
2012104950.tif 000006
【図５】
2012104950.tif 000007
【図６】
2012104950.tif 000008
【図７】
2012104950.tif 000009
【図８】
2012104950.tif 000010
【図９】
2012104950.tif 000011
【図１０】
2012104950.tif 000012
【図１１】
2012104950.tif 000013
【図１２】
2012104950.tif 000014
【図１３】
2012104950.tif 000015
【図１４】
2012104950.tif 000016
【図１５】
2012104950.tif 000017
【図１６】
2012104950.tif 000018
【図１７】
2012104950.tif 000019
【図１８】
2012104950.tif 000020
【図１９】
2012104950.tif 000021
【図２０】
2012104950.tif 000022
【図２１】
2012104950.tif 000023
【図２２】
2012104950.tif 000024
【図２３】
2012104950.tif 000025
【図２４】
2012104950.tif 000026
【図２５】
2012104950.tif 000027
【図２６】
2012104950.tif 000028
【図２７】
2012104950.tif 000029
【図２８】
2012104950.tif 000030
【図２９】
2012104950.tif 000031
【図３０】
2012104950.tif 000032
【図３１】
2012104950.tif 000033
【図３２】
2012104950.tif 000034
【図３３】
2012104950.tif 000035
【図３４】
2012104950.tif 000036
【図３５】
2012104950.tif 000037
【図３６】
2012104950.tif 000038
【図３７】
2012104950.tif 000039
【図３８】
2012104950.tif 000040
【図３９】
2012104950.tif 000041
【図４０】
2012104950.tif 000042
【図４１】
2012104950.tif 000043
【図４２】
2012104950.tif 000044
【図４３】
2012104950.tif 000045
【図４４】
2012104950.tif 000046
【図４５】
2012104950.tif 000047
【図４６】
2012104950.tif 000048
【図４７】
2012104950.tif 000049
【図４８】
2012104950.tif 000050
【図４９】
2012104950.tif 000051
【図５０】
2012104950.tif 000052
【図５１】
2012104950.tif 000053
【図５２】
2012104950.tif 000054
【図５３】
2012104950.tif 000055
【国際調査報告】
2012104950.tif 000056
2012104950.tif 000057
2012104950.tif 000058