(57)【要約】【課題】メモリ資源を多く費やすことなく、かつ、高速に配列の初期化処理を行うことができる定数代入方法を提供する。【解決手段】配列１０１Ａ、１０１Ｂの配列空間を擬似的に０クリアするための“０”値が格納された物理メモリブロック１０２Ｚが物理メモリ１０２に予め用意されており、テーブル１０３には物理メモリブロック１０２Ｚを示す物理メモリページ１０３Ｚが予め用意されている。ユーザプログラム１００が起動され、配列１０１Ａ、１０１Ｂが現れても、その配列空間１０１Ａ１〜１０１ＡＮ、１０１Ｂ１〜１０１ＢＭのために特に物理メモリブロック（物理メモリページ）が確保されることはない。しかし、初期化状態においては、各配列空間１０１Ａ１〜１０１ＡＮ、１０１Ｂ１〜１０１ＢＭはいずれも物理メモリブロック１０２Ｚ（物理メモリページ１０３Ｚ）とリンクするように設定されている。【選択図】　　　　図５
2004030353.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理メモリブロックを備えた物理メモリを有するデータ処理システムにおいて、ユーザプログラム内の、配列要素群より成る複数の配列空間を有する１ないし複数の配列を初期化するための配列の定数代入方法であって、少なくとも１個の配列の一部の配列空間のそれぞれに対応して物理メモリブロックが確保され、該物理メモリブロックに冗長な値が代入されることを特徴とする配列の定数代入方法。
【請求項２】
各配列において、対応する物理メモリブロックが確保されていない配列空間からは、前記冗長な値が代入された物理メモリブロックのいずれか１つが参照されることを特徴とする請求項１に記載の配列の定数代入方法。
【請求項３】
各配列において、該配列の先頭の配列空間に対応して、前記冗長な値が代入された物理メモリブロックがただ１個ずつ確保されていることを特徴とする請求項１または２に記載の配列の定数代入方法。
【請求項４】
冗長な値が代入された物理メモリブロックが対応した配列空間を有しない配列の一部の配列空間は、冗長な値が代入された物理メモリブロックが対応した配列空間を有する配列が初期化状態から離れるとき、それぞれに物理メモリブロックが割り当てられ、該割り当てられた物理メモリブロックには、冗長な値が代入された物理メモリブロックの中味がコピーされることを特徴とする請求項１または２に記載の配列の定数代入方法。
【請求項５】
冗長な値が代入された物理メモリブロックが対応した配列空間を有する配列が初期化状態から離れるとき、該初期化状態から離れる配列の冗長な値が代入された物理メモリブロックが対応していない配列空間のそれぞれに対応する物理メモリブロックが割り当てられることを特徴とする請求項１から４のいずれかに記載の配列の定数代入方法。
【請求項６】
複数の物理メモリブロックを備えた物理メモリを有するデータ処理システムにおいて、ユーザプログラム内の、配列要素群より成る複数の配列空間を有する１ないし複数の配列を初期化するための配列の定数代入方法であって、前記物理メモリに初期値が代入された少なくとも１個の物理メモリブロックが用意され、該初期値が代入された物理メモリブロックが各配列の配列空間の初期値として参照されることを特徴とする配列の定数代入方法。
【請求項７】
配列が初期化状態から離れるとき、該初期化状態から離れる配列の各配列空間に対応して物理メモリブロックが割り当てられることを特徴とする請求項６に記載の配列の定数代入方法。
【請求項８】
複数の物理メモリブロックを備えた物理メモリを有するデータ処理システムにおいて、プログラムの進行中に動的に確保される配列を初期化するための配列の定数代入方法であって、該配列の全ての配列空間に対応する物理メモリブロックが割り当てられ、かつ、該配列の特定の配列空間に対応する物理メモリブロックに冗長な値が代入され、当該配列の前記特定の配列空間以外の配列空間の初期値として当該配列の前記特定の配列空間に対応する物理メモリブロックが参照されることを特徴とする配列の定数代入方法。
【請求項９】
複数の物理メモリブロックを備えた物理メモリを有するデータ処理システムにおいて、プログラムの進行中に動的に確保される配列を初期化するための配列の定数代入方法であって、該配列の全ての配列空間に対応する物理メモリブロックが割り当てられ、かつ、前記物理メモリには初期値が代入された少なくとも１個の物理メモリブロックが確保されており、当該配列の各配列空間の初期値として前記初期値が代入された物理メモリブロックが参照されることを特徴とする配列の定数代入方法。
【請求項１０】
前記初期値が代入された物理メモリブロックには、初期値として“０”が代入されていることを特徴とする請求項６または９に記載の配列の定数代入方法。
【請求項１１】
前記配列が初期化状態から離れた後は、各配列空間に対する参照は対応する物理メモリブロックに対して実施されることを特徴とする請求項８または９に記載の配列の定数代入方法。
【請求項１２】
前記物理メモリの各物理メモリブロックに対応してテーブルには物理メモリページが設定されており、前記物理メモリブロックは前記物理メモリページを介してアクセスされることを特徴とする請求項１から１１のいずれかに記載の配列の定数代入方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ等のデータ処理システムにおける配列の定数代入方法に関し、特に配列へ代入する値が冗長な定数の場合に、高速に定数を代入することのできる配列の定数代入方法に関するものである。
【０００２】
【従来の技術】
一般に、コンピュータ等のデータ処理システムにおいて、ユーザプログラムが開始される際に当該ユーザプログラムにおいて用いられる配列に対して初期化が行われる。この初期化は０クリアまたは冗長な定数が設定されることによって行われることが多い。
図１１は、データ処理システムにおける従来の配列の処理方法を説明するためのブロック図である。ユーザプログラム１００が起動し配列１０１が定義されると、配列１０１のサイズに応じた個数の物理メモリブロックと、配列１０１の各配列空間と物理メモリブロックとを関連づける物理メモリページとが割り当てられる。配列１０１は、複数の配列要素から構成される配列空間１０１１〜１０１Ｐを有している。そして、各配列空間１０１１〜１０１Ｐに対応して物理メモリ１０２には物理メモリブロック１０２１〜１０２Ｐが確保され、テーブル１０３には各物理メモリブロックのアドレスを示す物理メモリページ１０３１〜１０３Ｐが設定される。そして配列に対して処理が加えられるのに先立ってまず配列の初期化が行われる。その際、上述したように、この初期化処理は、配列の配列空間１０１１〜１０１Ｐに対応する物理メモリブロック１０２１〜１０２Ｐを０クリアまたは冗長な定数（規則性のある定数）で順次上書きすることによって行われている。その後、配列に対する処理が行われその処理結果に応じて物理メモリブロック１０２１〜１０２Ｐの値が書き換えられる。
【０００３】
【発明が解決しようとする課題】
上述の初期化方式では、配列のサイズの増大に比例して、初期化のための冗長な定数を代入する時間も増大する。また、特に２次元以上の配列の場合に、ユーザプログラムの大規模化に伴って、配列のサイズの増大が顕著になる。例えば、３次元配列の場合、各次元の方向のサイズを２倍に増大させると、配列全体のサイズは８倍に増大し、それに伴い、初期化時間も８倍に膨れ上がる。このように、プログラムがますます大規模化している現在、初期化時間およびメモリ量の増大が、無視できなくなってきている。
【０００４】
本発明はこれらの課題に鑑みてなされたものであって、その目的は、第１に、高速に配列の初期化処理を行ない得るようにすることであり、第２に、不必要に多くのメモリ資源を費やすことのないようにすることである。
【０００５】
【課題を解決するための手段】
上記の目的を達成するため、本発明によれば、複数の物理メモリブロックを備えた物理メモリを有するデータ処理システムにおいて、ユーザプログラム内の、配列要素群より成る複数の配列空間を有する１ないし複数の配列を初期化するための配列の定数代入方法であって、少なくとも１個の配列の一部の配列空間のそれぞれに対応して物理メモリブロックが確保され、該物理メモリブロックに冗長な値が代入されることを特徴とする配列の定数代入方法、が提供される。
【０００６】
また、上記の目的を達成するため、本発明によれば、複数の物理メモリブロックを備えた物理メモリを有するデータ処理システムにおいて、ユーザプログラム内の、配列要素群より成る複数の配列空間を有する１ないし複数の配列を初期化するための配列の定数代入方法であって、前記物理メモリに初期値が代入された少なくとも１個の物理メモリブロックが用意され、該初期値が代入された物理メモリブロックが各配列の配列空間の初期値として参照されることを特徴とする配列の定数代入方法、が提供される。
【０００７】
また、上記の目的を達成するため、本発明によれば、複数の物理メモリブロックを備えた物理メモリを有するデータ処理システムにおいて、プログラムの進行中に動的に確保される配列を初期化するための配列の定数代入方法であって、該配列の全ての配列空間に対応する物理メモリブロックが割り当てられ、かつ、該配列の最初の配列空間に対応する物理メモリブロックに冗長な値が代入され、当該配列の先頭以外の配列空間の初期値として当該配列の前記最初の配列空間に対応する物理メモリブロックが参照されることを特徴とする配列の定数代入方法、が提供される。
【０００８】
また、上記の目的を達成するため、複数の物理メモリブロックを備えた物理メモリを有するデータ処理システムにおいて、プログラムの進行中に動的に確保される配列を初期化するための配列の定数代入方法であって、該配列の全ての配列空間に対応する物理メモリブロックが割り当てられ、かつ、前記物理メモリに　は初期値が代入された少なくとも１個の物理メモリブロックが確保されており、当該配列の各配列空間の初期値として前記初期値が代入された物理メモリブロックが参照されることを特徴とする配列の定数代入方法、が提供される。
【０００９】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る配列の定数代入方法を説明するための、初期化状態を示すブロック図である。図１に示すように、ユーザプログラム１００には、配列空間１０１Ａ１〜１０１ＡＮを有する配列１０１Ａと配列空間１０１Ｂ１〜１０１ＢＭを有する配列１０１Ｂとが用いられている。各配列空間は、それぞれ複数の配列要素を含んでいる。ユーザプログラム１００が起動され、最初の配列１０１Ａが現れると、その先頭の配列空間１０１Ａ１のための物理メモリブロック１０２Ａ１が物理メモリ１０２に確保され、そしてその物理メモリブロック１０２Ａ１に応じた物理メモリページ１０３Ａ１がテーブル１０３上に確保される。先頭以外の配列空間１０１Ａ２〜１０１ＡＮについては、物理メモリブロック、物理メモリページは確保されない。次いで、第２配列１０１Ｂが現れても、いずれの配列空間１０１Ｂ１〜１０１ＢＭについても物理メモリブロック、物理メモリページは確保されない。図示されていないが、第３、第４の配列が現れても同様である。
【００１０】
次いで、配列に対する初期化が行われる。初期化は、１個だけ確保された物理メモリブロック１０２Ａ１に対して冗長な（規則的な）値を代入することによって行なわれる。ここで、冗長な値とは、例えば、Ａ［ｉ］（ｉ＝０、１、２、‥）、Ｂ［ｊ］　（ｊ＝１、２、３、‥）を配列要素として、Ａ［０］＝１．０、Ａ［１］＝１．０、Ａ［２］＝１．０、‥、Ａ［ｉ］＝１．０、‥などの一定の値や、Ｂ［０］＝１．０、Ｂ［１］＝２．０、Ｂ［２］＝３．０、‥、Ｂ［ｊ］＝１．０、Ｂ［ｊ＋１］＝２．０、Ｂ［ｊ＋２］＝３．０、‥などの周期的な値に代表されるような、配列の一部の配列要素の繰り返しで、配列内の全ての配列要素を記述できる値のことである。図１には、物理メモリブロック１０２Ａ１に冗長な値として１０１０１０・・・が格納された例が示されている。
各配列の初期化値が利用されるときは、物理メモリブロック１０２Ａ１が参照される。すなわち、配列空間１０１Ａ１〜１０１ＡＮ、１０１Ｂ１〜１０１ＢＭのいずれの初期化値を用いる場合にも、物理メモリブロック１０２Ａ１に格納された初期化値が読み出される。すなわち、物理メモリ１０２にただ一つの物理メモリブロック１０２Ａ１が確保されこれに初期化値が代入されただけであるが、これにより全ての配列が初期化された状態を擬似的に得ることができる。
【００１１】
次に、配列に対して処理が加えられ配列要素が書き換えられることになるが、この場合配列は初期化状態から離脱する必要がある。図２は、図１に示す初期化状態から配列１０１Ａが初期化状態から離脱した状態を示すブロック図である。配列１０１Ａの初期化状態が崩れるとき、物理メモリブロック１０２Ａ１の外に配列空間１０１Ａ２〜１０１ＡＮに対応する物理メモリブロック１０２Ａ２〜１０２ＡＮが物理メモリ１０２に確保され、それに対応してテーブル１０３に物理メモリページ１０３Ａ２〜１０３ＡＮが確保される。そして、未だ初期化状態を維持している配列１０１Ｂの先頭の配列空間１０１Ｂ１に対応した物理メモリブロック１０２Ｂ１が物理メモリ１０２に確保され、それに対応した物理メモリページ１０３Ｂ１がテーブル１０３に確保される。この状態で配列１０１Ａに対して処理が加えられ、新たな配列要素が求められるとその値はそれぞれ対応する物理メモリブロック１０２Ａ１〜１０２ＡＮに格納される。
配列１０１Ｂが初期化状態から離脱する場合にも上記と同様の処理が行われる。
【００１２】
［第２の実施の形態］
図３は、本発明の第２の実施の形態に係る配列の定数代入方法を説明するための、初期化状態を示すブロック図である。図３において、図１に示した第１の実施の形態と同等の部分には同一の参照符号を付し重複する説明は適宜省略する。図３に示すように、ユーザプログラム１００には、配列１０１Ａと配列１０１Ｂが用いられている。ユーザプログラム１００が起動され、配列１０１Ａが現れると、その先頭の配列空間１０１Ａ１のための物理メモリブロック１０１Ａ１が物理メモリ１０２に確保され、そしてその物理メモリブロック１０２Ａ１に応じた物理メモリページ１０３Ａ１がテーブル１０３上に確保される。また、配列１０１Ｂが現れると、その先頭の配列空間１０１Ｂ１のための物理メモリブロック１０１Ｂ１が物理メモリ１０２に確保され、そしてその物理メモリブロック１０２Ｂ１に応じた物理メモリページ１０３Ｂ１がテーブル１０３上に確保される。しかし、先頭以外の配列空間１０１Ａ２〜１０１ＡＮ、１０１Ｂ２〜１０１ＢＭについては、それに対応した物理メモリブロック、物理メモリページが確保されることはない。他の配列が現れた場合にも、同様に、先頭の配列空間に対応する物理メモリブロックと物理メモリページのみが確保され、残りの配列空間については、物理メモリブロック（物理メモリページ）は確保されない。
【００１３】
次いで、配列に対する初期化が行われる。初期化は、各配列について１個ずつ確保された物理メモリブロック１０２Ａ１、１０２Ｂ１に対して冗長な値を代入することによって行なわれる。図３には、物理メモリブロック１０２Ａ１、１０２Ｂ１に冗長な値として１０１０１０・・・が格納された例が示されている。
各配列の初期化値が利用されるときは、各配列ごとにそれぞれの先頭の物理メモリブロック１０２Ａ１、１０２Ｂ１が参照される。すなわち、配列空間１０１Ａ１〜１０１ＡＮの初期化値を用いる場合には、物理メモリブロック１０２Ａ１に格納された初期化値が読み出され、配列空間１０１Ｂ１〜１０１ＢＭの初期化値を用いる場合には、物理メモリブロック１０２Ｂ１に格納された初期化値が読み出される。
【００１４】
次に、配列に対して処理が加えられ配列要素が書き換えられることになるが、この場合配列は初期化状態から離脱する必要がある。図４は、図３に示す初期化状態から配列１０１Ａが初期化状態から離脱した状態を示すブロック図である。配列１０１Ａの初期化状態が崩れるとき、物理メモリブロック１０２Ａ１の外に配列空間１０１Ａ２〜１０１ＡＮに対応する物理メモリブロック１０２Ａ２〜１０２ＡＮが物理メモリ１０２に確保され、それに対応してテーブル１０３に物理メモリページ１０３Ａ２〜１０３ＡＮが確保される。この時点で、未だ初期化状態を維持している配列１０１Ｂに付いては変化はなく、配列空間１０１Ｂ１〜１０１ＢＭに関する参照は、配列空間１０１Ｂ１に対応した物理メモリブロック１０２Ｂ１に対して行われる。この状態で配列１０１Ａに対して処理が加えられ、新たな配列要素が求められるとその値はそれぞれ対応する物理メモリブロック１０２Ａ１〜１０２ＡＮに格納される。
配列１０１Ｂが初期化状態から離脱する場合にも上記と同様の処理が行なわれる。
【００１５】
［第３の実施の形態］
図５は、本発明の第３の実施の形態に係る配列の定数代入方法を説明するための、初期化状態を示すブロック図である。図５において、図１、図３に示した第１、第２の実施の形態と同等の部分には同一の参照符号を付されているので重複する説明は適宜省略する。図５に示すように、本実施の形態においては、配列空間を擬似的に０クリアするための“０”値が格納された物理メモリブロック１０２Ｚが物理メモリ１０２に予め用意されており、テーブル１０３には物理メモリブロック１０２Ｚを示す物理メモリページ１０３Ｚが予め用意されている。ユーザプログラム１００には、配列１０１Ａと配列１０１Ｂが用いられている。ユーザプログラム１００が起動され、配列１０１Ａ、１０１Ｂが現れても、その配列空間１０１Ａ１〜１０１ＡＮ、１０１Ｂ１〜１０１ＢＭのために特に物理メモリブロック（物理メモリページ）が確保されることはない。しかし、初期化状態においては、各配列空間１０１Ａ１〜１０１ＡＮ、１０１Ｂ１〜１０１ＢＭはいずれも物理メモリブロック１０２Ｚ（物理メモリページ１０３Ｚ）とリンクするように設定されており、各配列空間１０１Ａ１〜１０１ＡＮ、１０１Ｂ１〜１０１ＢＭの初期化値が利用される場合にはいずれの場合にも物理メモリブロック１０２Ｚが参照される。
【００１６】
次に、配列に対して処理が加えられ配列要素が書き換えられることになるが、これにより配列は初期化状態から離脱することになる。図６は、図５に示す初期化状態から配列１０１Ａが初期化状態から離脱した状態を示すブロック図である。配列１０１Ａの初期化状態が崩れるとき、配列空間１０１Ａ１〜１０１ＡＮに対応する物理メモリブロック１０２Ａ１〜１０２ＡＮが物理メモリ１０２に確保され、それに対応してテーブル１０３に物理メモリページ１０３Ａ１〜１０３ＡＮが確保される。この時点で、未だ初期化状態を維持している配列１０１Ｂに付いては変化はなく、配列空間１０１Ｂ１〜１０１ＢＭに関する参照は、“０”値が格納された物理メモリブロック１０２Ｚに対して行われる。この状態で配列１０１Ａに対して処理が加えられ、新たな配列要素が求められるとその値はそれぞれ対応する物理メモリブロック１０２Ａ１〜１０２ＡＮに格納される。
配列１０１Ｂが初期化状態から離脱する場合にも上記と同様の処理が行なわれる。
【００１７】
［第４の実施の形態］
図７は、本発明の第４の実施の形態に係る配列の定数代入方法を説明するための、初期化状態を示すブロック図である。本実施の形態に係る配列の定数代入方法は、配列がプログラム実行中に動的に確保される場合の定数代入方法である。ユーザプログラム内で動的に確保される配列（以下、「動的な配列」という）が現れた場合には、プログラムの実行中に、配列のサイズに対応して、物理メモリブロックの割り当てが行なわれ、その物理メモリブロックに対応した物理メモリページが確保される。
【００１８】
図７に示すように、プログラム実行中に動的な配列１０１Ｃが現れたとき、その配列空間１０１Ｃ１〜１０１ＣＫに対応する物理メモリブロック１０２Ｃ１〜１０２ＣＫと物理メモリページ１０３Ｃ１〜１０３ＣＫとがそれぞれ物理メモリ１０２、テーブル１０３内に確保される。そして、確保された物理メモリブロックの中の先頭の配列空間１０１Ｃ１に対応する物理メモリブロック１０２Ｃ１に初期化のために冗長な定数（図示された例では、１２３１２３…）が代入される。そして、初期化状態にある配列１０１Ｃの配列要素（配列空間）が参照され利用されるとき、配列空間１０１Ｃ１〜１０１ＣＫについては全て物理メモリブロック１０２Ｃ１が参照されるように設定される。
プログラムの進行中に、他の動的な配列１０１Ｄが現れたときも同様である。すなわち、動的な配列１０１Ｄが現れたとき、その配列空間１０１Ｄ１〜１０１ＤＬに対応する物理メモリブロック１０２Ｄ１〜１０２ＤＬと物理メモリページ１０３Ｄ１〜１０３ＤＬとがそれぞれ物理メモリ１０２、テーブル１０３内に確保され、先頭の配列空間１０１Ｄ１に対応する物理メモリブロック１０２Ｄ１に初期化のために冗長な定数が代入され、これが配列空間１０１Ｄ１〜１０１ＤＬの初期化値として参照される。
【００１９】
次に、配列に対して処理が加えられ配列要素が書き換えられることになるが、このためには配列は初期化状態から離脱する必要がある。図８は、図７に示す初期化状態から配列１０１Ｃが初期化状態から離脱した状態を示すブロック図である。配列１０１Ｃの初期化状態が崩れるとき、配列空間１０１Ｃ２〜１０１ＣＫはそれぞれ予め確保されている物理メモリブロック１０２Ｃ２〜１０２ＣＫに物理メモリページ１０３Ｃ２〜１０３ＣＫを介してリンクされる。この時点で、未だ初期化状態を維持している配列１０１Ｄに付いては変化はなく、配列空間１０１Ｄ１〜１０１ＤＬに関する参照は、初期化値（１２３１２３…）が格納された物理メモリブロック１０２Ｄ１に対して行われる。この状態で配列１０１Ｃに対して処理が加えられ、新たな配列要素が求められるとその値はそれぞれ対応する物理メモリブロック１０２Ｃ１〜１０２ＣＫに格納される。
配列１０１Ｄの初期化状態が崩れる場合にも上記と同様の処理が行われる。
【００２０】
［第５の実施の形態］
図９は、本発明の第５の実施の形態に係る配列の定数代入方法を説明するための、初期化状態を示すブロック図である。図９において、図７に示した第４の実施の形態の部分と同等の部分には同一の参照符号が付せられているので重複する説明は省略する。本実施の形態に係る配列の定数代入方法も、配列がプログラム実行中に動的に確保される動的な配列の定数代入方法である。本実施の形態においては、図９に示すように、配列空間を擬似的に０クリアするための“０”値が格納された物理メモリブロック１０２Ｚが物理メモリ１０２に予め用意されており、テーブル１０３には物理メモリブロック１０２Ｚを指す物理メモリページ１０３Ｚが予め用意されている。
【００２１】
図９に示すように、プログラム実行中に動的な配列１０１Ｃが現れたとき、その配列空間１０１Ｃ１〜１０１ＣＫに対応する物理メモリブロック１０２Ｃ１〜１０２ＣＫと物理メモリページ１０３Ｃ１〜１０３ＣＫとがそれぞれ物理メモリ１０２、テーブル１０３内に確保される。但し、配列１０１Ｃが初期化状態に保持されているとき、配列１０１Ｃの配列空間１０１Ｃ１〜１０１ＣＫは、物理メモリページ１０３Ｚとリンクされており、物理メモリブロック１０２Ｚを参照するように設定されている。すなわち、初期化状態にある配列１０１Ｃの配列要素（配列空間）が参照され利用されるとき、全ての配列空間１０１Ｃ１〜１０１ＣＫについて物理メモリブロック１０２Ｚが参照される。
プログラムの進行中に、他の動的配列１０１Ｄが現れたときも同様である。
【００２２】
次に、配列に対して処理が加えられ配列要素が書き換えられることになるが、このためには配列は初期化状態から離脱する必要がある。図１０は、図９に示す初期化状態から配列１０１Ｃが初期化状態から離脱した状態を示すブロック図である。配列１０１Ｃの初期化状態が崩れるとき、配列空間１０１Ｃ１〜１０１ＣＫはそれぞれ予め確保されている物理メモリブロック１０２Ｃ１〜１０２ＣＫに物理メモリページ１０３Ｃ１〜１０３ＣＫを介してリンクされる。この時点で、未だ初期化状態を維持している配列１０１Ｄに付いては変化はなく、配列空間１０１Ｄ１〜１０１ＤＬに関する参照は、初期化値“０”が格納された物理メモリブロック１０２Ｚに対して行われる。この状態で配列１０１Ｃに対して処理が加えられ、新たな配列要素が求められるとその値はそれぞれ対応する物理メモリブロック１０２Ｃ１〜１０２ＣＫに格納される。
配列１０１Ｄの初期化状態が崩れる場合にも上記と同様の処理が行われる。
【００２３】
以上好ましい実施の形態について説明したが本発明はこれら実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜の変更が可能なものである。例えば、第１、第２の実施の形態において、初期化のために確保される物理メモリブロックは１個のみあるいは１個ずつのみであったが、それぞれ複数個ないし複数個ずつとしてもよい。また、第１、第２の実施の形態と第３の実施の形態とを併用するようにしてもよい。すなわち、一部の配列については先頭の配列空間に対応する物理メモリブロックに冗長な値を代入してその値をその配列の初期値として利用するようにし、他の配列については各配列空間は予め“０”値が格納された物理メモリブロックを参照するようにしてもよい。また、第３、第５の実施の形態では、初期値として“０”値が物理メモリブロックに格納されていたが、他の冗長な値例えば“１１１…”であってもよい。
【００２４】
【発明の効果】
以上説明したように、本発明に係る配列の定数代入方法は、各配列の先頭の配列空間に対応して確保された物理メモリページを冗長な定数で初期化し、それをその配列の他の配列空間が参照するものであるから、配列の全要素を冗長な定数で初期化したと同じ効果を与えながら、配列の大きさに関係なく高速に初期化することが可能である。
また、本発明に係る配列の定数代入方法は、システム中に用意された“０”定数で初期化されたメモリページを配列の全配列空間が参照するものであるから、初期化のための冗長な定数の代入が不要となる。
本発明に係る配列の定数代入方法は、また、配列要素に冗長ではない値が書き込まれる時点で、最初の物理メモリページ以外の物理メモリページあるいは全物理メモリページが確保されるものであるから、プログラムの実行から終了までの間に参照しかされない配列があった場合、メモリの使用を削減する効果を有する。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態の初期化状態を示すブロック図。
【図２】本発明の第１の実施の形態の、一部の配列が初期化状態出なくなった状態を示すブロック図。
【図３】本発明の第２の実施の形態の初期化状態を示すブロック図。
【図４】本発明の第２の実施の形態の、一部の配列が初期化状態出なくなった状態を示すブロック図。
【図５】本発明の第３の実施の形態の初期化状態を示すブロック図。
【図６】本発明の第３の実施の形態の、一部の配列が初期化状態出なくなった状態を示すブロック図。
【図７】本発明の第４の実施の形態の初期化状態を示すブロック図。
【図８】本発明の第４の実施の形態の、一部の配列が初期化状態出なくなった状態を示すブロック図。
【図９】本発明の第５の実施の形態の初期化状態を示すブロック図。
【図１０】本発明の第５の実施の形態の、一部の配列が初期化状態出なくなった状態を示すブロック図。
【図１１】従来例の構成を示すブロック図。
【符号の説明】
１００　ユーザプログラム
１０１、１０１Ａ、１０１Ｂ、１０１Ｃ、１０１Ｄ　配列
１０１１〜１０１Ｐ、１０１Ａ１〜１０１ＡＮ、１０１Ｂ１〜１０１ＢＭ、１０１Ｃ１〜１０１ＣＫ、１０１Ｄ１〜１０１ＤＬ　配列空間
１０２　物理メモリ
１０２１〜１０２Ｐ、１０２Ａ１〜１０２ＡＮ、１０２Ｂ１、１０２Ｃ１〜１０２ＣＫ、１０２Ｄ１〜１０２ＤＬ、１０２Ｚ　物理メモリブロック
１０３　テーブル
１０３１〜１０３Ｐ、１０３Ａ１〜１０３ＡＮ、１０３Ｂ１、１０３Ｃ１〜１０３ＣＫ、１０３Ｄ１〜１０３ＤＬ、１０３Ｚ　物理メモリページ
【図１】
2004030353.tif 000003
【図２】
2004030353.tif 000004
【図３】
2004030353.tif 000005
【図４】
2004030353.tif 000006
【図５】
2004030353.tif 000007
【図６】
2004030353.tif 000008
【図７】
2004030353.tif 000009
【図８】
2004030353.tif 000010
【図９】
2004030353.tif 000011
【図１０】
2004030353.tif 000012
【図１１】
2004030353.tif 000013