(57)【要約】【課題】オーバレイプログラムを効率よく実行できるようにすること。【解決手段】オーバレイ制御装置は、先行プログラムおよび本体プログラムから成るオーバレイプログラムのうちの少なくともいずれかに対する先行プログラムを保持する内部メモリを有し、実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが内部メモリに格納されているか否かを判定し、該先行プログラムが内部メモリに格納され、かつ、該本体プログラムが内部メモリに格納されていない場合には、該本体プログラムを外部メモリから内部メモリへ転送する間に、該先行プログラムを内部メモリから読み出して実行する演算処理部を有する。【選択図】図１
2012155523.tif 000002
【特許請求の範囲】
【請求項１】
先行プログラムおよび本体プログラムから成るオーバレイプログラムのうちの少なくともいずれかに対する先行プログラムを保持する内部メモリと、
実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが前記内部メモリに格納されているか否かを判定し、該先行プログラムが前記内部メモリに格納され、かつ、該本体プログラムが前記内部メモリに格納されていない場合には、該本体プログラムを外部メモリから前記内部メモリへ転送する間に、該先行プログラムを前記内部メモリから読み出して実行する演算処理部と、を備えていることを特徴とするオーバレイ制御装置。
【請求項２】
前記内部メモリの領域の識別子と、該領域に格納すべき先行プログラムまたは本体プログラムの識別子と、該先行プログラムまたは該本体プログラムが該領域に格納済みであるか否かを示すフラグとを関連付けて保持するオーバレイ管理テーブルを備え、
前記演算処理部は、前記オーバレイ管理テーブルを参照して、実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが前記内部メモリに格納されているか否かを判定することを特徴とする、請求項１に記載のオーバレイ制御装置。
【請求項３】
前記内部メモリの領域の識別子と、該領域に格納すべき先行プログラムまたは本体プログラムの識別子と、該先行プログラムまたは該本体プログラムが該領域に格納済みであるか否かを示すフラグと、該先行プログラムまたは該本体プログラムが使用中であるか否かを示すフラグとを関連付けて保持するオーバレイ管理テーブルを備え、
前記演算処理部は、次に実行すべきと予測されたオーバレイプログラムに対する先行プログラムを外部メモリから読み出すとともに、前記オーバレイ管理テーブルを参照して、前記内部メモリのうちの使用中の先行プログラムが格納されていない領域に、読み出した先行プログラムを格納することを特徴とする、請求項１または２に記載のオーバレイ制御装置。
【請求項４】
先行プログラムおよび本体プログラムから成るオーバレイプログラムのうちの少なくともいずれかに対する先行プログラムを保持する内部メモリを参照し、実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが該内部メモリに格納されているか否かを判定する工程と、
前記実行すべきオーバレイプログラムに対する先行プログラムが前記内部メモリに格納され、かつ、前記実行すべきオーバレイプログラムに対する本体プログラムが前記内部メモリに格納されていない場合には、該本体プログラムを外部メモリから前記内部メモリへ転送する間に、該先行プログラムを前記内部メモリから読み出して実行する工程と、を含むことを特徴とするオーバレイ制御方法。
【請求項５】
前記内部メモリの領域の識別子と、該領域に格納すべき先行プログラムまたは本体プログラムの識別子と、該先行プログラムまたは該本体プログラムが該領域に格納済みであるか否かを示すフラグとを関連付けて保持するオーバレイ管理テーブルを参照して、実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが前記内部メモリに格納されているか否かを判定する工程を含むことを特徴とする、請求項４に記載のオーバレイ制御方法。
【請求項６】
次に実行すべきと予測されたオーバレイプログラムに対する先行プログラムを外部メモリから読み出す工程と、
前記内部メモリの領域の識別子と、該領域に格納すべき先行プログラムまたは本体プログラムの識別子と、該先行プログラムまたは該本体プログラムが該領域に格納済みであるか否かを示すフラグと、該先行プログラムまたは該本体プログラムが使用中であるか否かを示すフラグとを関連付けて保持するオーバレイ管理テーブルを参照して、前記内部メモリのうちの使用中の先行プログラムが格納されていない領域に、読み出した先行プログラムを格納する工程と、を含むことを特徴とする、請求項４または５に記載のオーバレイ制御方法。
【請求項７】
先行プログラムおよび本体プログラムから成るオーバレイプログラムのうちの少なくともいずれかに対する先行プログラムを保持する内部メモリを参照し、実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが該内部メモリに格納されているか否かを判定する処理と、
前記実行すべきオーバレイプログラムに対する先行プログラムが前記内部メモリに格納され、かつ、前記実行すべきオーバレイプログラムに対する本体プログラムが前記内部メモリに格納されていない場合には、該本体プログラムを外部メモリから前記内部メモリへ転送する間に、該先行プログラムを前記内部メモリから読み出して実行する処理と、をコンピュータに実行させることを特徴とするプログラム。
【請求項８】
前記内部メモリの領域の識別子と、該領域に格納すべき先行プログラムまたは本体プログラムの識別子と、該先行プログラムまたは該本体プログラムが該領域に格納済みであるか否かを示すフラグとを関連付けて保持するオーバレイ管理テーブルを参照して、実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが前記内部メモリに格納されているか否かを判定する処理を、コンピュータに実行させることを特徴とする、請求項７に記載のプログラム。
【請求項９】
次に実行すべきと予測されたオーバレイプログラムに対する先行プログラムを外部メモリから読み出す処理と、
前記内部メモリの領域の識別子と、該領域に格納すべき先行プログラムまたは本体プログラムの識別子と、該先行プログラムまたは該本体プログラムが該領域に格納済みであるか否かを示すフラグと、該先行プログラムまたは該本体プログラムが使用中であるか否かを示すフラグとを関連付けて保持するオーバレイ管理テーブルを参照して、前記内部メモリのうちの使用中の先行プログラムが格納されていない領域に、読み出した先行プログラムを格納する処理と、をコンピュータに実行させることを特徴とする、請求項７または８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーバレイ制御装置、オーバレイ制御方法およびプログラムに関し、特に、マイコン等のプログラムのオーバレイを制御するオーバレイ制御装置、オーバレイ制御方法およびプログラムに関する。
【背景技術】
【０００２】
デジタル機器を構成するシステムの高度化および複雑化に伴い、システムを実現するためのプログラムも大規模化している。一方、システムを実現するためのコスト削減の要求、および、チップ面積の削減の要求は厳しくなっており、特に、メモリ容量は必要最小限に抑えられている。したがって、大容量のプログラムをモジュール化し、必要なプログラムのみをメモリに転送して、処理を実行するシステムが増えてきている。
【０００３】
上記のようなシステムにおいては、プログラムの入替え回数が増大することで、プログラムの転送完了待ちによる処理開始待ち時間が長くなり、システム全体の性能が低下する。そこで、プログラムの入替え時に発生する処理開始待ち時間を削減する要求が高まっている。
【０００４】
特許文献１には、他の利用者のロード順に影響されることなく、利用者独自のロード順を採用でき、利用者毎に処理の応答性を向上できるようにしたオーバレイプログラムロード方式が記載されている。
【０００５】
図６は、特許文献１に記載されたオーバレイプログラムロード方式の構成を示すブロック図である。図６を参照すると、オーバレイプログラムロード方式は、書込手段１１と、不揮発性メモリ１２と、不揮発性メモリ１２に格納されている利用者別オーバレイプログラム情報管理テーブル１２ａと、判断手順１３と、ロード手順１４と、メインメモリ１５と、バックアップ手順１６ａと、リストア手順１６ｂと、補助記憶装置１７とを備えている。
【０００６】
判断手順１３は、利用者毎のロード順番別にロード回数を記憶する利用者別オーバレイプログラム情報管理テーブル１２ａを参照し、必要とするオーバレイプログラムがメインメモリ１５上に存在しているかを判断する。存在していない場合には、ロード手順１４に従い補助記憶装置１７からロードする。書込手段１１は、利用者別オーバレイプログラム情報管理テーブル１２ａを更新し、ロード順番毎にロード回数順にソートする。
【０００７】
また、特許文献１に記載された技術においては、プログラム転送完了待ちによる処理開始待ち時間を低減するために、起動時からのプログラムの転送順序ごとのロード回数テーブルに従って、次に必要となるオーバレイプログラムを内部メモリ（メインメモリ１５）に転送する。すなわち、オーバレイプログラムの処理と並行して、次に必要となるオーバレイプログラムが内部メモリに転送される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０７−２７１６０３号公報（第１、４、６、７頁、図１、７）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以下の分析は、本発明者によってなされたものである。
【００１０】
特許文献１に記載されたオーバレイプログラムロード方式によると、ロード手順１４は、プログラム処理中に判断手順１３の結果に従って、補助記憶装置１７からメインメモリ１５へオーバレイプログラムを転送する。このとき、転送期間内にオーバレイプログラム処理の切替えが発生すると、転送途中のオーバレイプログラムにおける処理開始に必要なプログラムが転送されたかどうかを判断することができず、転送途中でオーバレイプログラムの処理を開始することができない。
【００１１】
したがって、特許文献１に記載されたオーバレイプログラムロード方式によると、転送途中のオーバレイプログラムの転送が完了するまで、処理開始が遅れることになり、オーバレイプログラムを効率良く実行することができない。これにより、システム全体のパフォーマンスも低下する。
【００１２】
そこで、オーバレイプログラムを効率良く実行できるようにするためのオーバレイ制御装置、オーバレイ制御方法およびプログラムを提供することが課題となる。
【課題を解決するための手段】
【００１３】
本発明の第１の視点に係るオーバレイ制御装置は、
先行プログラムおよび本体プログラムから成るオーバレイプログラムのうちの少なくともいずれかに対する先行プログラムを保持する内部メモリと、
実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが前記内部メモリに格納されているか否かを判定し、該先行プログラムが前記内部メモリに格納され、かつ、該本体プログラムが前記内部メモリに格納されていない場合には、該本体プログラムを外部メモリから前記内部メモリへ転送する間に、該先行プログラムを前記内部メモリから読み出して実行する演算処理部と、を備えていることを特徴とするオーバレイ制御装置。
【００１４】
本発明の第２の視点に係るオーバレイ制御方法は、
先行プログラムおよび本体プログラムから成るオーバレイプログラムのうちの少なくともいずれかに対する先行プログラムを保持する内部メモリを参照し、実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが該内部メモリに格納されているか否かを判定する工程と、
前記実行すべきオーバレイプログラムに対する先行プログラムが前記内部メモリに格納され、かつ、前記実行すべきオーバレイプログラムに対する本体プログラムが前記内部メモリに格納されていない場合には、該本体プログラムを外部メモリから前記内部メモリへ転送する間に、該先行プログラムを前記内部メモリから読み出して実行する工程と、を含む。
【００１５】
本発明の第３の視点に係るプログラムは、
先行プログラムおよび本体プログラムから成るオーバレイプログラムのうちの少なくともいずれかに対する先行プログラムを保持する内部メモリを参照し、実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが該内部メモリに格納されているか否かを判定する処理と、
前記実行すべきオーバレイプログラムに対する先行プログラムが前記内部メモリに格納され、かつ、前記実行すべきオーバレイプログラムに対する本体プログラムが前記内部メモリに格納されていない場合には、該本体プログラムを外部メモリから前記内部メモリへ転送する間に、該先行プログラムを前記内部メモリから読み出して実行する処理と、をコンピュータに実行させる。
【発明の効果】
【００１６】
本発明に係るオーバレイ制御装置、オーバレイ制御方法およびプログラムによると、オーバレイプログラムを効率良く実行することができる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係るオーバレイ制御装置の構成を示すブロック図である。
【図２】実施形態に係るオーバレイ制御装置の内部メモリのアドレスマップを示す図である。
【図３】実施形態に係るオーバレイ制御装置の外部メモリのアドレスマップを示す図である。
【図４】実施形態に係るオーバレイ制御装置のＣＰＵ（演算処理部）の動作を示すフローチャートである。
【図５】実施形態に係るオーバレイ管理テーブルを示す図である。
【図６】特許文献１に記載されたオーバレイプログラムロード方式の構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００１９】
図１を参照すると、本発明に係るオーバレイ制御装置は、先行プログラムおよび本体プログラムから成るオーバレイプログラムのうちの少なくともいずれかに対する先行プログラムを保持する内部メモリ（２４）を備えている。また、オーバレイ制御装置は、実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが内部メモリ（２４）に格納されているか否かを判定し、該先行プログラムが内部メモリ（２４）に格納され、かつ、該本体プログラムが内部メモリ（２４）に格納されていない場合には、該本体プログラムを外部メモリ（２６）から内部メモリ（２４）へ転送する間に、該先行プログラムを内部メモリ（２４）から読み出して実行する演算処理部（２１）と、を備えている。
【００２０】
また、オーバレイ制御装置は、内部メモリ（２４）の領域の識別子と、該領域に格納すべき先行プログラムまたは本体プログラムの識別子と、該先行プログラムまたは該本体プログラムが該領域に格納済みであるか否かを示すフラグとを関連付けて保持するオーバレイ管理テーブルを備えていることが好ましい。このとき、演算処理部（２１）は、オーバレイ管理テーブルを参照して、実行すべきオーバレイプログラムに対する先行プログラムおよび本体プログラムが内部メモリ（２４）に格納されているか否かを判定する。
【００２１】
さらに、オーバレイ制御装置は、内部メモリ（２４）の領域の識別子と、該領域に格納すべき先行プログラムまたは本体プログラムの識別子と、該先行プログラムまたは該本体プログラムが該領域に格納済みであるか否かを示すフラグと、該先行プログラムまたは該本体プログラムが使用中であるか否かを示すフラグとを関連付けて保持するオーバレイ管理テーブルを備えていることが好ましい。このとき、演算処理部（２１）は、次に実行すべきと予測されたオーバレイプログラムに対する先行プログラムを外部メモリ（２６）から読み出すとともに、オーバレイ管理テーブルを参照して、内部メモリ（２４）のうちの使用中の先行プログラムが格納されていない領域に、読み出した先行プログラムを格納する。
【００２２】
本発明に係るオーバレイ制御装置、オーバレイ制御方法およびプログラムによると、オーバレイプログラムの転送を開始してからオーバレイプログラムによる処理を開始するまでの待ち時間を削減することができ、オーバレイプログラムを効率良く実行することができる。
【００２３】
（実施形態）
実施形態に係るオーバレイ制御装置について、図面を参照して説明する。図１は、本実施形態に係るオーバレイ制御装置の構成を示すブロック図である。
【００２４】
図１を参照すると、オーバレイ制御装置は、ＣＰＵ（演算処理部）２１、アドレス変換部２２、アドレス格納部２３、内部メモリ（主記憶装置）２４、転送部２５、および、外部メモリ（２次記憶装置）２６を備えている。
【００２５】
ＣＰＵ２１は、ＣＰＵ実行オーバレイプログラムＯｖ２を入力とし、オーバレイプログラム要求アドレスＡｄ１をアドレス変換部２２へ出力し、オーバレイ先行空間アドレスＡｄ２をアドレス格納部２３へ出力し、オーバレイプログラム転送指示Ｉｎを転送部２５へ出力する。
【００２６】
アドレス変換部２２は、オーバレイプログラム要求アドレスＡｄ１とオーバレイ先行空間アドレスＡｄ２とを入力とし、アドレス変換後のオーバレイ要求アドレスＡｄ３を内部メモリ２４へ出力する。
【００２７】
アドレス格納部２３は、オーバレイ先行空間アドレスＡｄ２を入力とし、記憶しているオーバレイ先行空間アドレスＡｄ２をアドレス変換部２２へ出力する。
【００２８】
内部メモリ２４は、内部メモリ転送オーバレイプログラムＯｖ１とアドレス変換後のオーバレイ要求アドレスＡｄ３とを入力とし、ＣＰＵ実行オーバレイプログラムＯｖ２をＣＰＵ２１へ出力する。
【００２９】
転送部２５は、内部メモリ転送オーバレイプログラムＯｖ１とオーバレイプログラム転送指示Ｉｎとを入力とし、内部メモリ転送オーバレイプログラムＯｖ１を内部メモリ２４へ出力する。
【００３０】
外部メモリ２６は、内部メモリ転送オーバレイプログラムＯｖ１を転送部２５へ出力する。
【００３１】
図２は、内部メモリ２４のアドレスマップを一例として示す図である。図２を参照すると、内部メモリ２４は、メインプログラム空間とオーバレイ空間を有する。一例として、メインプログラム空間におけるメインプログラム領域を０ｘ００００〜０ｘ９ＦＦＦとする。また、一例として、オーバレイ空間におけるオーバレイ先行プログラムＡ領域を０ｘＣ０００〜０ｘＣ０ＦＦとし、オーバレイ先行プログラムＢ領域を０ｘＣ１００〜０ｘＣ１ＦＦとし、オーバレイ先行プログラムＣ領域を０ｘＣ２００〜０ｘＣ２ＦＦとし、オーバレイ本体プログラム領域を０ｘＤ１００〜０ｘＤＦＦＦとする。オーバレイ先行プログラムＡとオーバレイ先行プログラムＢとオーバレイ先行プログラムＣの領域をオーバレイ先行空間と称する。
【００３２】
図３は、外部メモリ２６のアドレスマップを一例として示す図である。図３を参照すると、外部メモリ２６において、一例として、オーバレイプログラム０領域を０ｘ００００〜０ｘ０ＦＦＦとし、オーバレイプログラム１領域を０ｘ１０００〜０ｘ１ＦＦＦとし、オーバレイプログラム２領域を０ｘ２０００〜０ｘ２ＦＦＦとし、オーバレイプログラム３領域を０ｘ３０００〜０ｘ３ＦＦＦとする。
【００３３】
ここで、先行プログラムとは、オーバレイプログラムのうちのオーバレイ先行空間に格納される部分を指す。先行プログラムは、オーバレイプログラムの先頭から始まる。一方、本体プログラムとは、オーバレイプログラムのうちの先行プログラム以外の部分であり、オーバレイ本体プログラム領域に格納されるプログラムを指す。
【００３４】
図３を参照すると、オーバレイプログラム０領域において、先行プログラム０領域を０ｘ００００〜０ｘ００ＦＦとし、本体プログラム０領域０ｘ０１００〜０ｘ０ＦＦＦとする。また、オーバレイプログラム１領域において、先行プログラム１領域を０ｘ１０００〜０ｘ１０ＦＦとし、本体プログラム１領域０ｘ１１００〜０ｘ１ＦＦＦとする。さらに、オーバレイプログラム２領域において、先行プログラム２領域を０ｘ２０００〜０ｘ２０ＦＦとし、本体プログラム２領域０ｘ２１００〜０ｘ２ＦＦＦとする。また、オーバレイプログラム３領域において、先行プログラム３領域を０ｘ３０００〜０ｘ３０ＦＦとし、本体プログラム３領域０ｘ３１００〜０ｘ３ＦＦＦとする。
【００３５】
メインプログラムは、内部メモリに常駐してオーバレイプログラムの入替え制御、割込み処理など、システム全体の制御を行うプログラムである。メインプログラムは、オーバレイ管理テーブルと、予測オーバレイプログラムテーブルとを有している。
【００３６】
内部メモリ２４に格納されている各プログラムは、先行プログラムと本体プログラムとに区別して扱われるが、外部メモリ２６においては、プログラムを分割して配置する必要はない。また、オーバレイ先行空間をシステムの転送性能やメモリ容量の条件から定めることにより、先行プログラムと本体プログラムのサイズを適宜変更することができる。
【００３７】
図４は、本実施形態のオーバレイ制御装置におけるＣＰＵ２１の動作を示すフローチャートである。ＣＰＵ２１は、メインプログラムに従って、図４の動作を実行する。
【００３８】
まず、ＣＰＵ２１は、処理を開始するオーバレイプログラムがオーバレイ先行空間に格納されているかどうかを、オーバレイ管理テーブルを用いて確認する（ステップＳ１０１）。
【００３９】
オーバレイ管理テーブルは、内部メモリ２４のオーバレイ空間にどのようなプログラムが格納されているかに関する情報、格納済みか否かに関する情報、および、使用中のオーバレイプログラムか否かに関する情報を保持する。オーバレイ空間のプログラムの入替えが発生した場合には、ＣＰＵ２１は、メインプログラム処理内において、オーバレイ管理テーブルの情報を更新する。
【００４０】
図５は、オーバレイ管理テーブルを一例として示す図である。図５を参照すると、オーバレイ管理テーブルは、オーバレイ空間の領域名に対して、格納プログラム名と、格納済みであるか否かの情報と、使用中であるか否かの情報を保持している。図５を参照すると、先行プログラム２の処理を開始するオーバレイプログラムが例示されており、先行プログラム２はオーバレイ先行プログラムＢ領域に格納済みであるため（ステップＳ１０１のＹｅｓ）、ＣＰＵ２１は、テーブルの状態を使用中として更新している。
【００４１】
オーバレイプログラムがオーバレイ先行空間に格納されていない場合には（ステップＳ１０１のＮｏ）、ＣＰＵ２１は、処理を開始するオーバレイプログラムをオーバレイ先行空間へ転送するように指示するオーバレイプログラム転送指示Ｉｎを、転送部２５へ通知する（ステップＳ１０７）。
【００４２】
転送部２５は、オーバレイプログラム転送指示Ｉｎで指示されたオーバレイプログラムの先行プログラムを外部メモリ２６から取り出し、内部メモリ転送オーバレイプログラムＯｖ１として内部メモリ２４へ出力する。
【００４３】
オーバレイプログラムがオーバレイ先行空間に格納されている場合には（ステップＳ１０１のＹｅｓ）、ＣＰＵ２１は、格納されているオーバレイ先行空間のどこに格納されているかを、オーバレイ管理テーブルを用いて判断し、格納先のアドレスをオーバレイ先行空間アドレスＡｄ２として、アドレス格納部２３へ通知する（ステップＳ１０２）。
【００４４】
アドレス格納部２３は、入力されたオーバレイ先行空間アドレスＡｄ２を記憶するとともに、そのままアドレス変換部２２へ出力する。
【００４５】
アドレス変換部２２は、ＣＰＵ２１からのオーバレイプログラム要求アドレスＡｄ１を監視し、アドレス値がオーバレイ先行空間の領域である場合には、アドレス格納部２３から入力されたオーバレイ先行空間アドレスＡｄ２に変換し、アドレス変換後のオーバレイ要求アドレスＡｄ３として内部メモリ２４へ出力する。一方、オーバレイプログラム要求アドレスＡｄ１のアドレス値がオーバレイ先行空間の領域でない場合には、アドレス変換部２２は、オーバレイプログラム要求アドレスＡｄ１をそのままアドレス変換後のオーバレイ要求アドレスＡｄ３として内部メモリ２４へ出力する。
【００４６】
図５に例示した場合には、使用中の先行プログラム２はオーバレイ先行プログラムＢに格納されているため、図２を参照すると、オーバレイ先行空間アドレスＡｄ２は０ｘＣ１００となる。
【００４７】
ＣＰＵ２１は、次の処理で必要となるオーバレイプログラムを予測する（ステップＳ１０３）。ＣＰＵ２１は、次の処理で必要となるオーバレイプログラムをメインプログラム内にある予測オーバレイプログラムテーブルを用いて、予測する。
【００４８】
ここでは、予測オーバレイプログラムテーブルに対して用いられる予測アルゴリズムについては、特に限定しない。予測アルゴリズムとして、例えば、過去の使用回数から可能性の高いプログラムを導き出す方法、または、予め決められたシーケンスに従う方法を採用することができる。
【００４９】
ＣＰＵ２１は、予測したオーバレイプログラムの先行プログラムをオーバレイ先行空間の空いている領域へ転送するための指示（Ｉｎ）を転送部２５へ通知する（ステップＳ１０４）。
【００５０】
予測したオーバレイプログラムの先行プログラムをオーバレイ先行空間の空いている領域へ転送する際、ＣＰＵ２１は、オーバレイ管理テーブルを用いて、オーバレイ先行空間のうちの空いている領域を判断する。オーバレイ管理テーブルは上述の情報を保持しており、ＣＰＵ２１は、処理を開始するオーバレイプログラムが入っていないオーバレイ先行空間の情報を取得し、空いている領域へオーバレイプログラムを転送するように指示するオーバレイプログラム転送指示Ｉｎを、転送部２５へ通知する。
【００５１】
図５に示した場合には、ＣＰＵ２１は、予測したオーバレイプログラムの先行プログラムを、オーバレイ先行プログラムＡおよびオーバレイ先行プログラムＣの領域へ転送するように指示する。
【００５２】
ＣＰＵ２１は、処理を開始するオーバレイプログラムの本体プログラムを転送するように指示するオーバレイプログラム転送指示Ｉｎを、転送部２５へ通知する（ステップＳ１０５）。
【００５３】
処理を開始するオーバレイプログラムの本体プログラムとして、ステップＳ１０１において判断した先行プログラムに対応する本体プログラムが選択される。図５に示した場合には、オーバレイプログラム２の本体プログラム２を転送するように指示する。
【００５４】
転送部２５は、オーバレイプログラム転送指示Ｉｎで指示されたオーバレイプログラムの本体プログラムを外部メモリ２６から取り出し、内部メモリ転送オーバレイプログラムＯｖ１として内部メモリ２４へ出力する。このデータ転送は、ＣＰＵ２１が先行プログラムを処理している間も継続し、完了するまで実行される。
【００５５】
次に、ＣＰＵ２１は、オーバレイプログラム処理を開始する（ステップＳ１０６）。
【００５６】
オーバレイプログラム処理を開始したとき、まず、オーバレイ先行空間にある先行プログラムが実行される。先行プログラムの選択は、ステップＳ１０２において通知したオーバレイ先行空間アドレスＡｄ２で決められる。
【００５７】
このとき、ＣＰＵ２１からのオーバレイプログラム要求アドレスＡｄ１は、アドレス変換部２２によってアドレス変換され、アドレス変換後のオーバレイ要求アドレスＡｄ３が内部メモリ２４へ出力される。
【００５８】
内部メモリ２４は、オーバレイ先行空間の該当する先行プログラムを、ＣＰＵ実行オーバレイプログラムＯｖ２としてＣＰＵ２１へ出力する。この動作によりオーバレイプログラムの先行プログラム処理を実行する。図５に示した場合には、オーバレイ先行プログラムＢに格納されている先行プログラム２が実行される。
【００５９】
次に、ＣＰＵ２１は、オーバレイ本体プログラムを実行する。このとき、アドレス変換部２２によるアドレス変換は行われず、内部メモリ２４は、該当する本体プログラムを、ＣＰＵ実行オーバレイプログラムＯｖ２としてＣＰＵ２１へ出力する。この動作によりオーバレイプログラムの本体プログラム処理を実行する。図５に示した場合には、オーバレイ本体プログラムに格納されている本体プログラム２が実行される。
【００６０】
オーバレイプログラム処理（ステップＳ１０６）の終了後、ステップＳ１０１へ戻る。オーバレイ制御装置は、以上の動作を繰り返し行う。
【００６１】
なお、メインプログラムの処理については、アドレス変換等の処理が不要であり、従来と同様の方法であるため、説明を省略している。
【００６２】
本実施形態では、一例として、内部メモリ２４のオーバレイ先行空間を、オーバレイ先行プログラムＡ、オーバレイ先行プログラムＢ、および、オーバレイ先行プログラムＣの３つとして説明した。しかし、オーバレイ先行空間の個数はこれに限定されず、システムに応じて適宜変更することができる。
【００６３】
本実施形態に係るオーバレイ制御装置は、予測した複数の先行プログラムを格納するオーバレイ先行空間と、オーバレイ先行空間にアクセスするためのアドレス変換部２２と、オーバレイ先行空間のアクセス先情報を保持するアドレス格納部２３とを備え、次処理で必要と予想される複数の先行プログラムをオーバレイ先行空間に格納しておき、処理を開始したいオーバレイプログラムがオーバレイ先行空間にあるとき、即座に先行プログラムの処理を開始し、その処理中に残りの本体プログラムを転送する。
【００６４】
本実施形態のオーバレイ制御装置によると、第１の効果として、システム全体のパフォーマンスを向上させることができる。
【００６５】
その理由は、次のとおりである。本実施形態のオーバレイ制御装置では、次処理で必要と予想される複数の先行プログラムをオーバレイ先行空間に格納しておき、処理を開始したいオーバレイプログラムがオーバレイ先行空間にあるいずれかであるとき、直ちに先行プログラムの処理を開始し、その処理中に残りの本体プログラムを転送する。したがって、オーバレイプログラムの切り換えが発生した場合に、先行プログラムが格納されている時点で処理を開始することができ、オーバレイプログラム転送から処理開始するまでの待ち時間を削減することができる。
【００６６】
また、本実施形態のオーバレイ制御装置によると、第２の効果として、内部メモリ領域を削減することができる。
【００６７】
その理由は、次のとおりである。本実施形態のオーバレイ制御装置では、オーバレイ先行空間に格納している先行プログラムが格納されている時点で処理を開始し、残りの処理に必要な本体プログラムは、本体プログラム空間にある不要となったプログラムを上書きしながら格納する。したがって、処理中のオーバレイプログラムと次処理に必要なオーバレイプログラムという２つのオーバレイプログラムを全て内部メモリに格納しておく必要がなくなる。
【００６８】
さらに、本実施形態のオーバレイ制御装置によると、第３の効果として、次処理で必要なプログラムの予測確率を向上させることができる。
【００６９】
その理由は、次のとおりである。本実施形態のオーバレイ制御装置では、予測したプログラムを格納する領域はオーバレイ先行空間の先行プログラム分のみでよく、オーバレイプログラム全体を格納する必要がない。したがって、従来技術の内部メモリ容量と同一の場合、オーバレイ先行空間の先行プログラムを複数保持することが可能となり、内部メモリは予測したプログラムを複数保持することができる。
【００７０】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００７１】
１１    書込手段
１２    不揮発性メモリ
１２ａ    利用者別オーバレイプログラム情報管理テーブル
１３    判断手順
１４    ロード手順
１５    メインメモリ
１６ａ    バックアップ手順
１６ｂ    リストア手順
１７    補助記憶装置
１８    入力装置
２１    ＣＰＵ（演算処理部）
２２    アドレス変換部
２３    アドレス格納部
２４    内部メモリ（主記憶装置）
２５    転送部
２６    外部メモリ（２次記憶装置）
Ａｄ１    オーバレイプログラム要求アドレス
Ａｄ２    オーバレイ先行空間アドレス
Ａｄ３    アドレス変換後のオーバレイ要求アドレス
Ｉｎ    オーバレイプログラム転送指示
Ｏｖ１    内部メモリ転送オーバレイプログラム
Ｏｖ２    ＣＰＵ実行オーバレイプログラム
【図１】
2012155523.tif 000003
【図２】
2012155523.tif 000004
【図３】
2012155523.tif 000005
【図４】
2012155523.tif 000006
【図５】
2012155523.tif 000007
【図６】
2012155523.tif 000008