(57)【要約】【課題】メモリ上で全てのデータ領域を可変長メモリ管理方式で管理するとともに、所定の可変長領域内で特定の固定データサイズにのみ固定長メモリ管理方式を適用して、処理速度とメモリ使用効率の向上を図るメモリ管理方式を提供する。【解決手段】ＣＰＵから要求されたデータに対してメモリ７上で可変長の領域ＡＡ、ＢＢのメモリの割り付けと開放を行うメモリ管理方式において、そのデータのサイズが、予め設定されている固定データサイズと同一である場合は、そのデータに対して、固定データサイズからなる固定長メモリブロック１１複数により構成される可変長の領域内ＢＢの固定長メモリブロック１１の割り付けと開放を行う。【選択図】      図６
2005050010.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵから要求されたデータに対してメモリ上で可変長の領域のメモリの割り付けと開放を行うメモリ管理方式において、
前記データのサイズが、予め設定されている固定データサイズと同一である場合は、前記データに対して、前記固定データサイズからなる固定長メモリブロック複数により構成される可変長の領域内の前記固定長メモリブロックの割り付けと開放を行うメモリ管理方式。
【請求項２】
前記固定長メモリブロック複数により構成される前記可変長の領域が前記メモリ上に存在しない場合は、該可変長の領域が新たに作成されて、前記固定長メモリブロックの割り付けと開放が行われることを特徴とする請求項１に記載のメモリ管理方式。
【請求項３】
前記固定長メモリブロックが割り付けられた以降、全ての前記複数の固定長メモリブロックが開放されると、それらの固定長メモリブロックから構成される前記可変長の領域も開放されることを特徴とする請求項１または請求項２に記載のメモリ管理方式。
【請求項４】
前記メモリは管理領域と実データ領域とを有し、前記可変長の領域は前記実データ領域に設けられ、前記固定データサイズは前記管理領域内に設けられた管理テーブル上で設定されて記憶されることを特徴とする請求項１乃至請求項３のいずれかに記載のメモリ管理方式。
【請求項５】
前記管理テーブルで複数の異なる固定データサイズが設定可能であることを特徴とする請求項４に記載のメモリ管理方式。
【請求項６】
前記管理テーブルは、前記設定された固定データサイズが記憶される固定データサイズ欄とともに、その固定データサイズに対して前記可変長の領域内に作成可能な前記固定長メモリブロックの総数が設定されて記憶される総数欄と、前記ＣＰＵから要求されたデータが割り付けられていない空き固定長メモリブロックの個数が記憶される空き個数欄と、前記ＣＰＵから要求された前記データに対して１番目に割り付け可能な空き固定長メモリブロックを指すアドレスが記憶される先頭アドレス欄とを有することを特徴とする請求項４または請求項５に記載のメモリ管理方式。
【請求項７】
前記１番目に割り付け可能な空き固定長メモリブロックには、２番目に割り付け可能な空き固定長メモリブロックを指すアドレスが記憶され、ｎ番目に割り付け可能な空き固定長メモリブロックには、ｎ＋１番目に割り付け可能な空き固定長メモリブロックを指すアドレスが記憶されることを特徴とする請求項６に記載のメモリ管理方式。
【請求項８】
前記ＣＰＵから要求された前記データのサイズが、前記管理テーブルの前記固定データサイズ欄に記憶されているサイズと同一の場合、前記ＣＰＵから要求された前記データに対して、前記先頭アドレス欄に記憶されているアドレスが指す固定長メモリブロックが割り付けられることを特徴とする請求項６または請求項７に記載のメモリ管理方式。
【請求項９】
前記ＣＰＵから要求された前記データに対して、前記１番目に割り付け可能な空き固定長メモリブロックが割り付けられると、その空き固定長メモリブロックに記憶されていたアドレスが、前記管理テーブルの前記先頭アドレス欄に書き込まれることを特徴とする請求項８に記載のメモリ管理方式。
【請求項１０】
既に割り付けられている固定長メモリブロックのいずれかが開放されると、それまで前記管理テーブルの前記先頭アドレス欄に記憶されていたアドレスが、その開放された固定長メモリブロックに書き込まれるとともに、その開放された固定長メモリブロックのアドレスが前記管理テーブルの前記先頭アドレス欄に書き込まれることを特徴とする請求項６乃至請求項９のいずれかに記載のメモリ管理方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置や画像処理装置などのメモリを使用する装置におけるメモリ管理方式に関する。
【０００２】
【従来の技術】
従来からメモリを管理する方式として様々な方式が提案・実施されているが、それらの方式は、可変長メモリ管理と固定長メモリ管理とに大別される。この２つ管理方式の概要を、図９を参照して説明する。
【０００３】
図９は、可変長メモリ管理方式によるデータ領域の割り付けと開放の手順を示す概略フローチャートである。図９のＳ１００（ステップ１００）で、データサイズαの割り付け要求が、例えば図示しないＣＰＵから出されると、ＣＰＵが管理しているメモリ上で、Ｓ１０１に示すように前処理が行われる。この前処理の例として、メモリの先頭アドレスから探査されて、データサイズα以上の空き領域があるか否かがチェックされる。
【０００４】
Ｓ１０２で、要求を満たす空き領域があると判断されると、Ｓ１０３で、その空き領域に割り付けを行う。Ｓ１０４で、割り付けに伴う後処理が行われる。後処理の例として、当初の空き領域を、割り付け領域と残りの空き領域に分割し、それらを図示しないメモリ管理部で管理テーブルを更新して管理させることなどがある。その後、その割り付けた領域にデータが書き込まれる。Ｓ１０２でデータサイズαが割り付けできない場合は、Ｓ１０５で割り付け不可能に係わるエラー処理が行われる。尚、データが割り付けられた領域が開放される場合も、前処理と後処理が行われる。
【０００５】
このように、可変長メモリ管理方式は、空き領域さえあれば、任意のサイズのメモリ割り付けが、要求されたサイズどおりに行えるため、メモリの使用に無駄が生じにくく、効率よくメモリ領域を使用できる方式である。反面、上記したように、割り付け時に、空き領域の探査や割り付け領域と空き領域の分割、開放時には開放する領域に対して前後するメモリ領域の使用状態の確認と併合、割り付け領域のアドレスの記憶、その状態の更新など様々な前処理と後処理とが付随することになる。そのため、メモリ処理の速度が遅くなる。特に、メモリの後ろ部分ほど前記した空き領域の探査に時間がかかり、処理速度が極端に落ちる傾向がある。
【０００６】
一方、図示して説明しないが、固定長メモリ管理方式は、メモリ空間を所定のサイズのブロックに区切って、そのブロック単位に管理するため、メモリ領域の割り付けや開放が高速に行えるという利点がある。ブロックのサイズを大きくするほど、管理されるブロック数が減って処理速度は上がるが、要求サイズとの端数が大きくなって、無駄が生じ、メモリの使用効率が悪くなる。
【０００７】
そこで、特許文献１は、従来のメモリを所定のサイズからなる複数の固定長のメモリセルに分割して、固定長によるメモリ管理の利点を生かしつつ、可変長のメモリ要求に対して、各メモリセルが使用中か否かを“０”か“１”の１ビットの状態で管理するビットマップ部と、可変長データに対して割り付けられた開始セル番号とセルの個数を管理する可変長タグ部とを使用することによって前処理と後処理の高速化を図り、従来の可変長メモリ管理方式の問題を低減させる方式を提案している。
【０００８】
【特許文献１】
特開平８−２２１３１７号公報
【０００９】
【発明が解決しようとする課題】
しかし、特許文献１が提案する方式は、固定長の複数のメモリセルを使用して可変長データに対応するため、以下の問題があった。
（１）１つの可変長データに対して、連続するセルを割り付ける必要がある。そのため、セルの割り付けと開放が繰り返されると、未使用のセルが動的メモリ領域内に分散して、連続した未使用セルが減少することになってメモリの使用効率が低下する。
（２）固定長のメモリセルを使用するため、可変長データに対しては従来技術と同様に、セルのサイズ以下の割り付け要求が発生した場合、或いは、割り付けられた複数のセルの最後のセルに、不要な割り付け端数が発生するため、メモリの使用効率が低下する。
（３）メモリセルに対して、前記したビットマップ部や可変長タグ部などの実データ部以外のメモリ管理領域が占める割合が大幅に増加し、相対的に実データ部の領域が減少する。
【００１０】
本発明は、斯かる実状に対してなされたものであり、メモリ上で全てのデータ領域を可変長メモリ管理方式で管理するとともに、所定の可変長領域内で特定の固定データサイズにのみ固定長メモリ管理方式を適用して、処理速度とメモリ使用効率の向上を図るメモリ管理方式を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本発明では、ＣＰＵから要求されたデータに対してメモリ上で可変長の領域のメモリの割り付けと開放を行うメモリ管理方式において、そのデータのサイズが、予め設定されている固定データサイズと同一である場合は、そのデータに対して、固定データサイズからなる固定長メモリブロック複数により構成される可変長の領域内の固定長メモリブロックの割り付けと開放を行う。
【００１２】
上記の固定長メモリブロック複数により構成される可変長の領域がメモリ上に存在しない場合は、該可変長の領域が新たに作成されて、固定長メモリブロックの割り付けと開放が行われる。
【００１３】
上記の固定長メモリブロックが割り付けられた以降、全ての複数の固定長メモリブロックが開放されると、それらの固定長メモリブロックから構成される可変長の領域も開放される。
【００１４】
前記したメモリは管理領域と実データ領域とを有し、可変長の領域は実データ領域に設けられ、固定データサイズは管理領域内に設けられた管理テーブル上で設定されて記憶される。
【００１５】
本発明では、管理テーブルで複数の異なる固定データサイズが設定可能である。
【００１６】
また、本発明では、上記の管理テーブルは、設定された固定データサイズが記憶される固定データサイズ欄とともに、その固定データサイズに対して可変長の領域内に作成可能な固定長メモリブロックの総数が設定されて記憶される総数欄と、ＣＰＵから要求されたデータが割り付けられていない空き固定長メモリブロックの個数が記憶される空き個数欄と、ＣＰＵから要求されたデータに対して１番目に割り付け可能な空き固定長メモリブロックを指すアドレスが記憶される先頭アドレス欄とを有する。
【００１７】
１番目に割り付け可能な空き固定長メモリブロックには、２番目に割り付け可能な空き固定長メモリブロックを指すアドレスが記憶され、ｎ番目に割り付け可能な空き固定長メモリブロックには、ｎ＋１番目に割り付け可能な空き固定長メモリブロックを指すアドレスが記憶される。
【００１８】
ＣＰＵから要求されたデータのサイズが、管理テーブルの固定データサイズ欄に記憶されているサイズと同一の場合、ＣＰＵから要求されたデータに対して、先頭アドレス欄に記憶されているアドレスが指す固定長メモリブロックが割り付けられる。
【００１９】
ＣＰＵから要求されたデータに対して、１番目に割り付け可能な空き固定長メモリブロックが割り付けられると、その空き固定長メモリブロックに記憶されていたアドレスが、管理テーブルの先頭アドレス欄に書き込まれる。
【００２０】
既に割り付けられている固定長メモリブロックのいずれかが開放されると、それまで管理テーブルの先頭アドレス欄に記憶されていたアドレスが、その開放された固定長メモリブロックに書き込まれるとともに、その開放された固定長メモリブロックのアドレスが管理テーブルの先頭アドレス欄に書き込まれる。
【００２１】
【発明の実施の形態】
以下、本発明の詳細を添付図に基づいて説明する。まず、図１を使用して、本実施形態に係わるメモリ管理方式を具体的に説明する。図１は、本発明の構成図である。ＣＰＵ１によって制御が行われるＯＳ２上でプログラム３が稼働している例である。プログラム３やＯＳ２によってメモリを必要とするジョブが発生すると、その要求はＣＰＵ１に送られて、ＣＰＵ１からメモリ管理手段４にメモリ要求として送出される。メモリ管理手段４は、このメモリ要求を受けてメモリ５の実データ領域７内に要求されたメモリサイズを割り付けて確保する。その場合、前処理としてメモリ管理手段４は、実データ領域７内で空き領域を探索するため、メモリ５内に設けられた管理領域６で管理されている実データ領域７のメモリ使用状況に関する管理情報を参照する。
【００２２】
本実施形態では、メモリ５の管理を、可変長メモリ管理方式に基づいて行っているため、メモリ要求がＣＰＵ１から発行された場合は、従来の可変長メモリ方式によって管理領域６に管理用のデータを作成し、実データ領域７のメモリ使用状況を管理する。従って、その可変長メモリ管理を行うためのメモリ管理手段４と管理領域６の動作と構成については従来の技術を使用して実現可能であり、その説明は省略する。
【００２３】
その可変長メモリ管理を行う中で、本発明に特異な点を図２と図３を参照して説明する。図２は、管理領域６内に作成され、本発明に係わる固定長ブロックの管理テーブルの内容を示す図である。特に、情報処理装置や入出力装置、或いは画像処理装置などでデータ処理が行われる場合、ある特定の固定データサイズのデータが頻繁に処理される。例えば、固定データサイズの入出力バッファを介して転送されて処理されるデータは２５６バイトや１０２４バイトなどのように固定長である。また、画像処理の場合は、１ラインごとに固定長のデータを処理することも行われている。
【００２４】
このように、頻繁に処理される固定データサイズは、装置の種類によって決まっている場合が多いため、そのサイズのデータを、固定長データ用可変長データ領域内で固定長として処理して、可変長メモリ管理方式に伴う従来の問題点を改善するとともに、可変長メモリ管理方式に適したデータは可変長で処理して、固定長メモリ管理方式に伴う従来の問題点を改善することが、本発明の目的である。
【００２５】
上記した目的に沿って、本発明のメモリ管理方式が利用される装置において、１０２４バイトと２５６バイトの固定長データが頻繁に処理される場合を想定して説明する。図２に示される固定長ブロックの管理テーブル１０は、管理領域６内に設けられ、固定長としてメモリ管理が行われるデータの「固定データサイズ」と、可変長データ領域として作成された領域内に存在する該固定長のメモリブロックの「総数」と、そのメモリブロックの中で、未使用・未割り付けになっている空きメモリブロックの「空き個数」と、最初の空きメモリブロックのアドレスを指す「先頭アドレス」を管理している。以下の例では、１０２４バイトと２５６バイトそれぞれの固定長データに対して管理が行われる。
【００２６】
図２に示す例では、総数が３２なので、１０２４バイトのメモリブロック３２個からなる領域が、実データ領域７（図１）内に作成可能であるが、空き個数と先頭アドレスはそれぞれ、１０進数で表すと“０”であるため、まだ作成はされていない。２５６バイトの固定長メモリブロックについても同様であるが、６４個のメモリブロックからなる領域が作成可能である。尚、詳細は後述するが、空き個数と先頭アドレスがともに“０”でない場合は、固定長データが割り付けられる固定長データ用可変長データ領域は既に作成されていることを意味する。
【００２７】
次に、図３と図４を使用して、可変長メモリ管理方式を使用しながら特定の固定データサイズのデータに対して固定長メモリ管理を行う手順の概要を説明する。図３は、図１の実データ領域７に、データが順次割り付けられていく様子を示す模式図である。（ａ）は、実データ領域７全てが空き領域Ａとなっている。（ｂ）では、可変長データの割り付け要求があり、その要求に基づいて、空き領域Ａの中に、つまり空き領域Ａを分割して、可変長データ領域ＡＡの割り付けと空き領域Ｂを確保している。
【００２８】
（ｃ）は、その後、予め管理テーブル１０に登録されている１０２４バイトの固定長データの割り付けの要求を受け、それを割り付ける領域が作成されていない場合、空き領域Ｂを二分して、１０２４バイト×３２個の領域を固定長データ用可変長データ領域ＢＢとして作成し、残りを空き領域Ｃとして確保した例である。（ｄ）は、その後、予め管理テーブル１０に登録されている２５６バイトの固定長データのメモリ割り付け要求を受け、それを割り付ける領域が作成されていない場合、空き領域Ｃを二分して、２５６バイト×６４個の領域を固定長データ用可変長データ領域ＣＣとして割り付け、残りを空き領域Ｄとして確保した例である。尚、固定長データ用可変長データ領域ＢＢとＣＣは、それぞれ領域としては可変長メモリ管理方式によって管理されている。
【００２９】
図４は、図３で示した可変長データ領域ＡＡや固定長データ用可変長データ領域ＢＢ或いはＣＣが割り付けられる概略手順を示すフローチャートである。いま、Ｓ１（ステップ１）で、ＣＰＵ１（図１）から、あるサイズのメモリの割り付け要求がメモリ管理手段４（図１）に出されると、Ｓ２で、メモリ管理手段４は管理テーブル１０（図２）を検索し、そのサイズが本発明によるメモリ管理を行う固定データサイズとして登録されているか否かを検索する。Ｓ３で判断が行われ、登録されていない場合は、Ｓ８に分岐して通常の可変長メモリ管理方式に基づいて、可変長データ領域（例えば可変長データ領域ＡＡ）が実データ領域７内に確保される｛図３（ｂ）参照｝。
【００３０】
Ｓ３で、そのサイズが本発明によるメモリ管理を行う固定データサイズとして登録されている場合は（例えば１０２４バイト）、Ｓ４に移行する。Ｓ４では、既にそのサイズの固定長データ用可変長データ領域ＢＢ｛図３（ｃ）参照｝が作成されているか否かが判断される。この判断は、前記したように、管理テーブル１０内の空き個数と先頭アドレスの値に基づいて行われる。既に作成されている場合は、Ｓ６に移行する。まだ作成されていない場合は、Ｓ５に分岐して固定長データ用可変長データ領域ＢＢの作成を行う。
【００３１】
その後、Ｓ６で、固定長データ用可変長データ領域ＢＢにおいて、管理テーブル１０に記憶されている先頭アドレスから始まるメモリブロックを、要求されたサイズのメモリとして割り付ける。このメモリブロックの割り付けによって、固定長データ用可変長データ領域ＢＢ内の空きブロックの空き個数と先頭アドレスが変動する。そのため、Ｓ７で、後述するチェーンの張り替えを行って、空き個数と先頭アドレスと同時に、空きメモリブロックの状態情報を最新状態に更新する。また、フローチャートに図示しないが、割り付け要求が処理されてメモリブロックが割り付けられると、割り付けられたアドレスがメモリ管理手段４から要求元のＣＰＵ１に戻されて割り付け処理が完了する。
【００３２】
次に、図４のＳ５による手順、すなわち、管理テーブル１０に登録されている固定データサイズの固定長データ用可変長データ領域ＢＢが、まだ作成されていない場合の作成手順についての詳細を、図５を参照して説明する。図５は、固定長データ用可変長データ領域ＢＢを作成する手順を示す模式図であり、（ａ）は管理テーブル１０の内容で、（ｂ）は図３（ｃ）で示した固定長データ用可変長データ領域ＢＢとその内容の詳細である。
【００３３】
図５（ａ）は、図２で示した管理テーブル１０の一部で、固定データサイズが１０２４バイトの固定長データが３２個作成可能であることを示しており、固定長データ用可変長データ領域ＢＢが作成されるまでは、空き個数は“０”で、先頭アドレスも“０”である。図４のフローチャートに基づいて説明したように、１０２４バイトのメモリ割り付け要求をメモリ管理手段４（図１）が受けると、管理テーブル１０に登録されていて、且つその固定データサイズに対応する固定長データ用可変長データ領域ＢＢが存在しない場合、メモリ管理手段４は、図３（ｂ）の空き領域Ｂ内に、３２個の１０２４バイトのメモリブロック１１を確保して固定長データ用可変長データ領域ＢＢを作成する。確保された各メモリブロック１１のアドレスは、１０進数で表現すると、例えば先頭の６１１番地から始まり最後のメモリブロック１１は６４２番地で終わる。尚、ここでいう番地（６１１番地〜６４２番地）は、本実施形態を容易に説明するための番地であり、１０２４バイトごとに付与した番地で、実際のメモリアドレスとは異なる。実際のアドレスとしては、メモリ５の物理アドレスや論理アドレス空間を絶対アドレス或いは相対アドレスで表したものなどが使用される。
【００３４】
そして、それぞれのメモリブロック１１は空き状態なので、その空いている最初のメモリブロック１１のアドレス６１１番地を、管理テーブル１０の先頭アドレスの欄に書き込む。つまり、管理テーブル１０の先頭アドレスの欄は、最初の空きメモリブロック１１を指している。６１１番地のその最初のメモリブロック１１は未使用なので、その中に、次の空いているメモリブロック１１のアドレス、すなわち、６１２番地を書き込む、同様にして、６１２番地のメモリブロック１１内に６１３番地と書き込む。つまり、ｎ番目の空きメモリブロック１１内にはｎ＋１番目の空きメモリブロック１１を指すアドレスが書き込まれることになる。そして、最後の６４２番地のメモリブロック１１は次に指し示す空きメモリブロックがないため、“０”が書き込まれる。こうして、管理テーブル１０の先頭アドレスの欄に書き込まれた次の番地を示すアドレス（ポインタ）を順番にたどっていけば、全ての空きメモリブロック１１が順番に繋がるチェーンが完成し、そのチェーンの終端は、ポインタとして“０”を持つメモリブロック１１である。
【００３５】
その後、管理テーブル１０の空き個数欄に、空きメモリブロック１１の個数が、この例では３２個になるはずであるが、空きメモリブロック１１が割り付けられて、３１個と書き込まれる。そして、メモリ管理手段４（図１）は、ＣＰＵ１（図１）からの要求を受け付けて、６１１番地にデータを書き込ませる。
【００３６】
既に、固定長データ用可変長データ領域ＢＢが作成されている場合、すなわち図４のＳ６で示した手順について、図６と図７を参照して具体的に説明する。図６は、固定長データ用可変長データ領域ＢＢ内のメモリブロック１１を割り付ける手順を説明する模式図であり、（ａ）は管理テーブル１０の内容で、（ｂ）は図３（ｃ）で示した固定長データ用可変長データ領域ＢＢの詳細である。
【００３７】
図６（ａ）の管理テーブル１０には、固定データサイズが１０２４バイトの固定長データのメモリブロック１１が３２個作成されており、そのうち１０個が空いており、先頭の空きメモリブロック１１を示す先頭アドレスは６１１番地であることが示されている。図４のフローチャートに基づいて説明したように、１０２４バイトのメモリ割り付け要求をメモリ管理手段４（図１）が受けると、常に、管理テーブル１０の先頭アドレス欄に書き込まれているアドレスが指す最初の空きメモリブロック１１、つまりこの例では６１１番地のメモリブロック１１が割り付けられる。
【００３８】
図７は、６１１番地のメモリブロック１１を割り付けた後の、後処理を説明するための模式図である。図６で示されている６１１番地のメモリブロック１１が割り付けられると、図７では、その６１１番地のメモリブロック１１内にそれまで書き込まれていたポインタ（６１３番地）が、図７（ａ）に示される管理テーブル１０の先頭アドレス欄に移されて、先頭アドレス欄が示すポインタは６１１番地から６１３番地になる。図６と図７を比較すると分かるように、６１３番地以降の空きメモリブロック１１内に書き込まれているポインタは変更されない。アドレス６１１番地のメモリブロック１１内にそれまで書き込まれていたポインタは、書き込まれるデータによって消失するが、そのポインタはデータによって消失する前に管理テーブル１０の先頭アドレス欄に転記される。また、管理テーブル１０の空き個数が１つ減って１０個から９個になる。
【００３９】
次に、それまで使用中であったメモリブロック１１が開放された場合のポインタとチェーンについて説明する。図８は、図７に示す６１２番のメモリブロック１１が開放された場合の新たなポインタとチェーンを示す図である。メモリ管理手段４によって６１２番地のメモリブロック１１が開放されると、それまで図８（ａ）に示す管理テーブル１０の先頭アドレス欄に書き込まれていたポインタが、６１３番地から６１２番地に書き換えられる。つまり。管理テーブル１０の先頭アドレス欄のポインタとして、開放されたメモリブロック１１（６１２番地）のアドレスが書き込まれる。そして、それまでの先頭アドレス欄に記憶されていた６１３番地が、開放された６１２番地のメモリブロック１１にポインタとして書き込まれる。
【００４０】
以上説明したように、ＣＰＵからメモリ割り付け要求を受けると、管理テーブル１０の先頭アドレス欄に書き込まれているアドレス（ポインタ）を通知するだけで、メモリ割り付けの前処理が完了し、メモリ管理の高速化が図れる。
【００４１】
また、メモリブロック１１が割り付けられると、その後処理としては、管理テーブル１０の先頭アドレス欄に、割り付けられたメモリブロック１１が有していたポインタを転記するだけの１つの動作ですむ。また、メモリブロック１１が開放されると、後処理として、開放されたメモリブロック１１のアドレスを、管理テーブル１０の先頭アドレス欄にポインタとして書き込むことと、開放されたメモリブロック１１に、それまで管理テーブル１０の先頭アドレス欄が有していたポインタを転記することの２つの動作ですむ。つまり、チェーンの最初のポインタ、或いは最初と２番目のポインタを変更するのみで、空きメモリブロック１１を繋いで示すチェーンの張り替えが完了することになり、更にメモリ管理の高速化が図れる。
【００４２】
図示して説明しないが、図３（ｄ）で示した２５６バイトの固定長データ用可変長データ領域ＣＣも、これまで説明した固定長データ用可変長データ領域ＢＢと同様な手順で管理される。このような、固定長データ用可変長データ領域ＢＢやＣＣは、それらの管理テーブル１０の総数欄に書き込まれている総数と、空き個数欄に書き込まれる個数が一致するとメモリ管理手段４（図１）によって判断されるとき、固定長データ用可変長データ領域ＢＢやＣＣが開放される。
【００４３】
これまで、可変長メモリ管理方式によって１０２４バイトや２５６バイトの固定長データ用可変長データ領域ＢＢやＣＣが管理され、更に、その固定長データ用可変長データ領域ＢＢ内やＣＣ内では、空きメモリブロックをポインタでチェーン管理することを具体的な例をあげて説明したが、本発明はこうした例や数値に限定されないことは言うまでもない。
【００４４】
また、１０２４バイトや２５６バイトの固定長は、本発明が実施される装置によって変わるものであり、例えば２０４８バイトや５１２バイト、或いはその他の固定データサイズであってもよい。更に、これらの固定データサイズは、本発明が実施される装置で頻繁にメモリ割り付け要求が出されるサイズに設定するとよい。そうすると、従来の固定長メモリ管理方式のように、要求されるサイズとの間に端数が発生してメモリの使用効率が低下することもない。
【００４５】
以上の実施例を分かり易く説明するために、メモリ５、及び管理領域６と実データ領域を物理メモリとし、実際のアドレスを具体的な番地で示したが、本発明は、物理メモリとともに論理メモリにも適用できることは勿論のこと、メモリに限らず、ハードディスク、ＣＤ−ＲＷ、ＤＶＤ−ＲＷ，ＤＶＤ−ＲＡＭ、ＭＯ、ＭＤなどの書き換え可能な記録媒体にも適用可能である。
【００４６】
【発明の効果】
以上の説明から明らかなように、本発明によれば、メモリ内の全ての割り付け領域が可変長メモリ管理方式で管理されるため、データサイズと割り付け領域のサイズとの間に端数が発生しにくく、メモリの使用効率を向上させることが可能になる。
【００４７】
また、頻繁に処理される特定の固定データサイズに対しては、可変長メモリ領域内に固定長のメモリブロックを設けて、そのメモリブロックごとに固定長メモリ管理を行うため、その特定の固定データサイズを処理する場合、可変長メモリ管理方式に比べて高速に処理することが可能になる。
【００４８】
固定長のメモリブロックを割り付ける或いは開放する場合、前処理と後処理に伴う手順数が少なく、特定の固定データサイズを処理する場合、更に処理の高速化を図ることが可能である。
【００４９】
更に、固定長のメモリブロックを管理する際、管理テーブルに先頭の空きメモリブロックを示すポインタを置き、その次以降のポインタは空きメモリブロックの中に書き込んでいるため、メモリの管理領域を大幅に節約でき、相対的に実データ領域を増大させることができる。
【図面の簡単な説明】
【図１】本発明の構成図である。
【図２】管理領域６内に作成され、本発明に係わる固定長ブロックの管理テーブルの内容を示す図である。
【図３】図１の実データ領域７に、データが順次割り付けられていく様子を示す模式図である。
【図４】図３で示した可変長データや固定長データが割り付けられる概略手順を示すフローチャートである。
【図５】固定長データ用可変長データ領域ＢＢを作成する手順を示す模式図であり、（ａ）は管理テーブル１０の内容で、（ｂ）は図３（ｃ）で示した固定長データ用可変長データ領域ＢＢとその内容の詳細である。
【図６】固定長データ用可変長データ領域ＢＢ内のメモリブロックを割り付ける手順を説明する模式図であり、（ａ）は管理テーブル１０の内容で、（ｂ）は図３（ｃ）で示した固定長データ用可変長データ領域ＢＢの詳細である。
【図７】６１１番地のメモリブロック１１を割り付けた後の、後処理を説明するための模式図である。
【図８】図７に示す６１２番のメモリブロック１１が開放された場合の新たなポインタとチェーンを示す図である。
【図９】可変長メモリ管理方式によるデータ領域の割り付けと開放の手順を示す概略フローチャートである。
【符号の説明】
１    ＣＰＵ
２    ＯＳ
３    プログラム
４    メモリ管理手段
５    メモリ
６    管理領域
７    実データ領域
１０  管理テーブル
１１  メモリブロック
Ａ、Ｂ、Ｃ、Ｄ  空き領域
ＡＡ  可変長データ領域
ＢＢ、ＣＣ  固定長データ用可変長データ領域
【図１】
2005050010.tif 000003
【図２】
2005050010.tif 000004
【図３】
2005050010.tif 000005
【図４】
2005050010.tif 000006
【図５】
2005050010.tif 000007
【図６】
2005050010.tif 000008
【図７】
2005050010.tif 000009
【図８】
2005050010.tif 000010
【図９】
2005050010.tif 000011