JP2000322268A - 再配置可能なアドインソフト管理システム - Google Patents

再配置可能なアドインソフト管理システム

Info

Publication number
JP2000322268A
JP2000322268A JP11132821A JP13282199A JP2000322268A JP 2000322268 A JP2000322268 A JP 2000322268A JP 11132821 A JP11132821 A JP 11132821A JP 13282199 A JP13282199 A JP 13282199A JP 2000322268 A JP2000322268 A JP 2000322268A
Authority
JP
Japan
Prior art keywords
add
software
module
function
sector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11132821A
Other languages
English (en)
Other versions
JP3670162B2 (ja
Inventor
Masanori Miyao
将徳 宮尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP13282199A priority Critical patent/JP3670162B2/ja
Publication of JP2000322268A publication Critical patent/JP2000322268A/ja
Application granted granted Critical
Publication of JP3670162B2 publication Critical patent/JP3670162B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 再配置が可能で、かつ他のモジュール内の関
数を呼び出すことのできるモジュール群を利用してアド
インソフトを実現する。 【解決手段】 アドインソフトを実行するための関数群
を1つにまとめたモジュール1の先頭にはそのモジュー
ル内で外部から参照可能な関数全てへ分岐できる関数分
岐ルーチン11が配置され、次に予め定められた関数名
のアドインソフト実行関数群12〜15が配置され、こ
れら関数12〜15はさらに外部呼び出し用関数12,
13と内部関数14,15とに分けられており、情報端
末装置に予め組み込まれたプログラムによって、ダウン
ロードされた全てのモジュールとその先頭アドレスとを
メモリ内のデータ領域に登録して管理する手段と、ダウ
ンロードされた全てのアドインソフト名とそのアドイン
ソフトを構成するモジュールのモジュール名とをメモリ
内のデータ領域に登録して管理する手段とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報端末装置にお
いて利用者が必要に応じてソフトを追加していく、アド
インソフトの管理システムに関する。
【0002】
【従来の技術】従来より、プログラムを動的に配置する
処理として、例えば特開平6−332675号公報に記
載された共有ライブラリ管理機構や、フラッシュROM
を用いたアドインソフト管理方式が提案されている。
【0003】図15は、上記の共有ライブラリ管理機構
において、プログラムを動的に配置する処理を示した図
である。
【0004】同図において、ライブラリファイル700
は、ハードディスクなどの2次メモリ上に配置されてい
る。このライブラリファイル700の中には、ライブラ
リ関数701〜704を格納する領域と、関数アドレス
表710を格納する領域とがあり、関数アドレス表71
0には、ライブラリ関数の関数名711とその関数のラ
イブラリの先頭からの相対アドレス712とが登録され
ている。
【0005】一方、ライブラリ関数の呼び出しを含む関
数810の中に、ライブラリ関数a()の呼び出し81
1とライブラリ関数c()の呼び出し812とがあると
き、コンパイラによってスタブ関数a′()801と
c′()802とが生成される。
【0006】また、メモリのデータ領域には関数リンク
テーブル820があり、ライブラリ関数名821とその
先頭アドレス822とが登録されている。ただし、関数
リンクテーブル820は、初期状態ではアドレスが登録
されておらず、ライブラリファイル700がメモリ上に
展開される際に、ダイナミックローダにより、ライブラ
リの展開先の先頭アドレスとライブラリ内の関数アドレ
ス表とからアドレスを計算して登録するようになってい
る。
【0007】従って、実際のライブラリ関数の呼び出し
の流れは、一度スタブ関数へジャンプし、スタブ関数内
で関数リンクテーブル内のアドレスを参照して、ライブ
ラリ関数を呼び出すといった流れとなる。
【0008】次に、上記のフラッシュROMを用いたア
ドインソフト管理方式について説明する。
【0009】図16は、従来のアドインソフト管理方式
でのフラッシュROMの一部を示した図である。
【0010】このフラッシュROMには、ページ0から
ページ15まで格納されており、1つのページ600
は、ページヘッダ領域610とセクタ領域630とに分
かれている。また、セクタ領域630はさらに複数のセ
クタに分かれており、各セクタは、データセクタ63
1、削除済みセクタ632、空きセクタ634のいずれ
かに分類される。
【0011】このような構成において、アドインソフト
をダウンロードする際には、セクタ領域630をセクタ
に分割することなくアドインソフト640を書き込むた
め、アドインソフトはページ14又はページ15にしか
ダウンロードできない。
【0012】また、アドインソフト自体は絶対アドレス
でジャップ命令等が記述されているので、同一の処理を
するアドインソフトでもページ14用とページ15用と
が用意されている。また、アドインソフトの呼び出し
は、アドインの先頭アドレスが決まっているので、その
アドレスをコールする。また、アドインソフトの削除
は、アドインの登録情報を削除した後、該当ページをリ
フレッシュする。
【0013】
【発明が解決しようとする課題】ところで、絶対アドレ
スを利用するアドインソフトでは、同じ機能のアドイン
ソフトでもアドレスごとに別々のプログラムを用意しな
くてはならず無駄が多い。また、情報端末装置間でのア
ドインソフトの転送は、転送先の情報端末装置の該当ア
ドレスに別のアドインソフトが入っていると転送できな
くなる。また、一度ダウンロードしたアドインソフト
は、固定アドレスで動作するため、他のアドレスへ移動
させることができず、ガベージコレクションを行うこと
ができないといった問題がある。このような問題を解決
するためには、アドインプログラムがどのアドレスにダ
ウンロードされても動作するようにしなければならな
い。また、アドインソフトを開発する際には、情報端末
装置にあらかじめ用意されているライブラリ以外にはラ
イブラリを置くことができず、複数のアドインプログラ
ムで同様の処理を行っているため、アドインソフトの開
発労力やアドインプログラムのサイズが増大する。
【0014】また、上記のフラッシュROMを利用する
情報端末装置では、1ページで1つ又は2ページで1つ
のアドインソフトを格納するといった使い方しかできな
い。そのため、1ページ未満の小さいアドインソフトで
も1ページ全部を使用することになり、空き領域が有効
利用できない。また、ページごとにページ管理のための
ヘッダ領域等が設けられており、連続して確保できるメ
モリサイズはページサイズよりも小さくなってしまう。
そのため、大規模なアドインソフトを作るには、1つの
アドインソフトを複数のモジュールに分けて作り、モジ
ュール単位でダウンロードできるようにする必要があ
る。
【0015】また、上記の共有ライブラリ管理機構で
は、他のモジュールのプログラムから呼び出されるライ
ブラリ関数のアドレスを、メモリに転送される時点で決
定して転送することができる。そこで、このライブラリ
をアドインソフトのモジュールに見立てた場合、どのア
ドレスにでもダウンロードすることが可能となりそうで
あるが、この方法ではモジュールから他のモジュールに
ある関数を呼び出すことができない。これは、ライブラ
リ関数に、他のライブラリ関数を呼び出すためのスタブ
関数がないことが原因である。
【0016】また、仮に各ライブラリに他のライブラリ
関数を呼び出すためのスタブ関数を付けても、あるライ
ブラリが再配置された場合には、そのライブラリを参照
している全てのライブラリのスタブ関数を変更する必要
がある。しかしながら、フラッシュROMの場合、上書
きができないので、スタブ関数を変更するためには、そ
のライブラリを別の場所に再配置させる必要があり、ラ
イブラリの再配置の無限連鎖に陥ってしまうといった問
題が発生する。
【0017】本発明はこのような問題点を解決すべく創
案されたものであって、その目的は、再配置が可能で、
かつ他のモジュール内の関数を呼び出すことのできるモ
ジュール群を利用してアドインソフトを実現すること
で、アドインソフト開発にかかる労力の削減、アドイン
プログラム自体のサイズの削減、アドインソフトのダウ
ンロードの際のメモリ資源の効率的利用、さらには情報
端末装置間でのアドインソフトの転送を容易にすること
のできる再配置可能なアドインソフト管理システムを提
供することにある。また、他の目的は、フラッシュRO
M等のページ単位でしかリフレッシュ処理をできないメ
モリ媒体においても、同一ページ内に無理なくデータと
アドインプログラムとを共存させることによって、情報
端末装置のメモリの構成に対する制約を軽減し、効果的
なメモリ資源の利用方法を実現することのできる再配置
可能なアドインソフト管理システムを提供することにあ
る。
【0018】
【課題を解決するための手段】上記課題を解決するた
め、本発明は、情報端末装置のメモリをデータ領域とア
ドインソフトのプログラム格納領域とで共有するアドイ
ンソフト管理システムであって、アドインソフトを実行
するための関数群を1つにまとめたモジュールをダウン
ロードの最小単位とし、各モジュールは、モジュール内
のアドレスが相対アドレスで記述され、各モジュールの
先頭にはそのモジュール内で外部から参照可能な関数全
てへ分岐できる関数分岐ルーチンが配置されるととも
に、予め定められた関数名のアドインソフト実行関数群
が配置されており、前記情報端末装置に予め組み込まれ
たプログラムによって、ダウンロードされた全てのモジ
ュールとその先頭アドレスとを前記メモリ内のデータ領
域に登録して管理する手段と、前記情報端末装置に予め
組み込まれたプログラムによって、ダウンロードされた
全てのアドインソフト名とそのアドインソフトを構成す
るモジュールのモジュール名とを前記メモリ内のデータ
領域に登録して管理する手段とを備えたことを特徴とす
る。
【0019】また、本発明は、呼び出したい関数のモジ
ュール名と関数名と引数とを渡すことで、前記モジュー
ルの先頭アドレス管理データを元に、前記モジュールの
先頭に配置された関数分岐ルーチンに必要な引数を渡す
ことができる関数呼び出しルーチンを備え、任意のモジ
ュールから任意の外部モジュールの関数をコールできる
ことを特徴とする。
【0020】また、本発明は、アドインソフトが単一若
しくは複数のモジュールで構成されるとともに、複数の
アドインソフトで同一のモジュールが利用可能であるこ
とを特徴とする。
【0021】また、本発明は、情報端末装置のメモリを
データ領域とアドインソフトのプログラム格納領域とで
共有するアドインソフト管理システムであって、前記メ
モリが、あるページ単位にしかデータを任意に書き換え
ることができないメモリ媒体で構成され、前記ページ内
がページヘッダ領域とセクタ管理領域とセクタ領域とに
分けられるとともに、セクタ管理領域内にセクタと1対
1に対応するセクタ管理番号が配置され、前記情報端末
装置に予め組み込まれたプログラムによって、アドイン
プログラムをセクタ領域単位で任意に連続した空きセク
タにダウンロードするとともに、対応するセクタのセク
タ管理番号にダウンロードしたアドインソフトの管理番
号を登録して管理する手段を備えたことを特徴とする。
【0022】すなわち、本発明によるアドインソフト管
理システムでは、パソコン等からアドインソフトをダウ
ンロードする際、情報端末装置側がアドインソフトのモ
ジュールサイズを元に、ダウンロード先のアドレスを決
定して、ダウンロードを行う。そして、そのアドイン情
報を、モジュール名と組にしてデータ領域に登録する。
また、アドインソフト名と全ての構成モジュールとをデ
ータ領域に登録する。さらに、アドインソフト名とアド
インソフト実行関数を含むメインモジュールとの関連付
けの情報もデータ領域に登録する。
【0023】そして、組み込まれたアドインプログラム
を実行する際には、初期化やメイン処理等を行う関数が
あらかじめ決められた関数名で用意されているので、ア
ドインソフト名からそれらの関数が含まれているモジュ
ールの先頭アドレスを読み取り、実行したい処理に固有
の関数名を引数にして、先程読み取ったアドレスをコー
ルすることで、アドインソフトを起動できる。
【0024】また、アドインソフトのあるモジュールか
ら他のモジュールの関数を呼び出す際には、あらかじめ
本体側に用意されている関数呼び出しルーチンに、呼び
出したい関数のモジュール名と関数名と引数とを渡すこ
とで、関数の呼び出しを可能にする。
【0025】また、アドインソフトの情報端末装置間で
の送受信時、及びアドインソフトの削除時には、そのア
ドインソフトを構成している全モジュール名の情報を元
にして送信、削除を行う。
【0026】さらに、モジュールをモジュールIDで管
理し、データを管理するデータIDと識別するためのビ
ットを設けることにより、モジュールIDをデータID
と同様に扱うことができ、それによってデータとモジュ
ールとを無理なく混在させることが可能となる。
【0027】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照して説明する。
【0028】[実施の形態1]本実施の形態1は、1つ
のアドインソフトを1つのモジュールで構成し、他のモ
ジュールの関数の呼び出しは行えないように制限を持た
せた場合の例である。
【0029】図1は、アドインソフトのダウンロードの
様子を示した説明図、図2は、受信側の情報端末装置で
のダウンロード処理を示すフローチャートである。
【0030】符号1で示すモジュールはアドインソフト
のモジュールである。このアドインソフトのモジュール
1は、関数分岐ルーチン11と、関数12〜15とで構
成されている。さらに関数12〜15は、モジュール外
部から呼び出し可能な外部呼び出し用関数12,13
と、モジュール内部からしか呼び出されない内部関数1
4,15とに分けられる。
【0031】外部呼び出し用関数12,13は、関数分
岐ルーチン11からジャンプできるが、内部関数14,
15は関数分岐ルーチン11からはジャンプできない。
ただし、外部呼び出し用関数12,13は、本実施の形
態では、アドインソフトを実行する際の呼び出し口とし
て情報端末装置で指定された固有関数名のアドインソフ
ト実行関数12,13と同一である。
【0032】関数分岐ルーチン11はモジュールの先頭
に配置され、引数で受け取った関数名とモジュール内の
全ての外部呼び出し用関数12,13の関数名とを比較
し、一致した関数へジャンプするように作成する。この
作成は、対応するアドイン作成用のリンカで関数分岐ル
ーチンを自動生成できるようにしてもよい。なお、モジ
ュール内は全て相対アドレスのみで構成されるようにコ
ンパイルする。
【0033】また、図1(a)の符号2はモジュールア
ドレス表である。モジュールアドレス表2には、モジュ
ール名21と先頭アドレス22とサイズ23とが1組と
して登録される。なお、モジュールアドレス表2自体
は、他のデータと同様の方式によりデータ領域に配置さ
れる。
【0034】また、図1(a)の符号3はアドインソフ
ト表である。アドインソフト表3には、アドインソフト
名31とモジュール名32とが1対1で登録される。な
お、アドインソフト表3も、他のデータと同様の方式に
よりデータ領域に配置される。
【0035】図1(a)では、アドインソフトはダウン
ロードされていない。ダウンロード処理では、まずダウ
ンロードするアドインソフト名を受信する(ステップS
11)。次に、ダウンロードするモジュール名を受信し
(ステップS12)、モジュールのサイズを受信する
(ステップS13)。そして、モジュールサイズ以上の
連続した空き領域があるかどうかを調べ(ステップS1
4)、空き領域があればその空き領域にモジュールをダ
ウンロードする(ステップS16)。一方、空き領域が
なければガベージコレクションを行って連続した空き領
域をつくり(ステップS15)、その空き領域にモジュ
ールをダウンロードする(ステップS16)。そして、
その先頭アドレスとサイズとをモジュールアドレス表2
に登録する(ステップS17)。また、アドインソフト
名とモジュール名とをアドインソフト表3に登録する
(ステップS18)。この結果、メモリ内は図1(b)
に示す状態になる。
【0036】次に、アドインソフトの呼び出し処理につ
いて説明する。図3は、アドインソフトの呼び出し処理
を示すフローチャートであり、図4(a)はアドインソ
フトの呼び出し処理の流れを模式的に示す説明図、同図
(b)は同図(a)の遷移時におけるスタックの内容を
示す説明図である。以下これらを参照して説明する。
【0037】図4(a)中の符号4はアドインソフト呼
び出しルーチンである。このルーチン4は、情報端末装
置にあらかじめ組み込まれているプログラムの一部であ
る。アドインソフトを呼び出す際には、まずモジュール
名検索処理41にてアドインソフト表3を参照して、呼
び出すべきモジュール名を得る(ステップS21)。次
に、先頭アドレス取得処理42にてモジュールアドレス
表2からモジュールの先頭アドレスを求める(ステップ
S22)。この時点(すなわち、図4(a)中の
(1)、(2)で示す処理時点)では、スタックはアド
インソフト呼び出しルーチンの処理の開始時点と同じ状
態のままとなっている(図4(b)の(1),(2)参
照)。
【0038】次に、第1引数に実行したい関数名を渡
し、第2引数以降に第1引数の関数の引数全てを渡し
て、モジュールの先頭アドレスを関数コールする(ステ
ップS23)。アドインソフトの制作に当たっては、初
期化関数はInit()、メインの処理はMain()
というように、あらかじめ定められた関数名と引数とで
処理を行うようにプログラムをつくる。従って、アドイ
ンソフト呼び出しルーチンは、呼び出すべき関数の関数
名、及び引数の数や型は分かっている。
【0039】関数コールルーチン43では、スタックに
引数(末尾の引数から順に積む)と戻りアドレスとを積
んでジャンプする。このとき、スタックの状態は図4
(b)の(3)のようになる。
【0040】関数コールがなされると、動的に配置され
ているアドインソフトモジュール1への処理が移ったこ
とになる。そのため、アドインソフトモジュール1の先
頭にある関数分岐ルーチン11では、スタックから戻り
アドレスと関数名とを取り出し、戻りアドレスをスタッ
クに積み直す(ステップS24)。なお、この関数分岐
ルーチンでは、引数がいくつあるかは分かっていないが
問題はない。この後、得られた関数名とアドインソフト
モジュール1に登録されている外部呼び出し用関数の関
数名とを比較して、該当する関数へと相対ジャンプを行
う(ステップS25)。このときのスタックの状態は、
図4(b)の(4)の状態となる。スタックポインタ
(SP)より上にある戻りアドレスは不要となったゴミ
データであり、割り込みなどの関係で違う値になっても
構わない。
【0041】これにより、目的の関数が呼び出され、ア
ドインソフトが起動される(ステップS26)。この関
数内では同一モジュール内の関数を相対アドレスで呼び
出すことができる。また、あらかじめ情報処理装置に組
み込まれている公開関数も絶対アドレスと関数スペック
とが公開されているので、呼び出して利用することがで
きる。
【0042】一連の処理が終わると、スタックに積まれ
ていた戻りアドレスへリターンする(ステップS2
7)。このときのスタックは、図4(b)の(5)の状
態となり、アドインソフト呼び出しルーチン4の処理を
開始したときの状態となる。
【0043】図5は、アドインソフトの削除処理を示す
フローチャートである。アドインソフトを削除する際に
は、まず削除すべきアドインソフトを構成するアドイン
ソフトモジュール1のモジュール名をアドインソフト表
3から得た後(ステップS31)、アドインソフト表3
から該当アドインソフトの情報(アドインソフト名とモ
ジュール名)を削除する(ステップS32)。次に、得
られたモジュール名から、モジュールアドレス表2を用
いてモジュールの先頭アドレスとモジュールのサイズと
を求めた後(ステップS33,S34)、モジュールア
ドレス表2から該当モジュールに関する情報(モジュー
ル名、先頭アドレス、サイズ)を削除する(ステップS
35)。そして、最後に、得られたアドレスとサイズと
を元に、該当するアドインソフトモジュール1を削除す
る(ステップS36)。
【0044】[実施の形態2]本実施の形態2は、1つ
のアドインソフトを複数のモジュールで構成できるよう
にし、あるモジュール内から外部のモジュール内の関数
をコールできるようにした場合の例である。
【0045】図6は、本実施の形態でのアドインソフト
表3を示している。実施の形態1でのアドインソフト表
3(図1参照)と比較すると、1つのアドインソフト名
31に対してモジュール名32が複数登録できるように
なっている。この場合、モジュール名32には、アドイ
ンソフト実行関数を含むモジュールを先頭に登録する。
また、アドインソフト名31を素早く検索するために、
次の項へのポインタ33を持っている。
【0046】図7は、受信側の情報端末装置でのダウン
ロード処理を示すフローチャートである。ここでは、図
2に示すダウンロード処理と同じステップには同じステ
ップ番号を付すこととし、違う処理のステップにのみ異
なるステップ番号を付すこととする。
【0047】ダウンロード処理では、まずダウンロード
するアドインソフト名を受信して(ステップS11)、
ダウンロードするモジュールの数を受信する(ステップ
S41)。そして、モジュールの数の分だけ、その後の
処理(ステップS12〜ステップS17、及びステップ
S43)を繰り返す(ステップS42)。すなわち、ダ
ウンロードするモジュール名を受信し(ステップS1
2)、すでに同じモジュール名が存在するか否かを、モ
ジュールアドレス表2(図1参照)又はアドインソフト
表3(図1参照)を用いて確認する(ステップS4
3)。
【0048】ステップS43において、同じモジュール
名が存在しないと判断(ステップS43でNoと判断)
された場合には、次に、ダウンロードするモジュールの
サイズを受信する(ステップS13)。そして、モジュ
ールサイズ以上の連続した空き領域があるかどうかを調
べ(ステップS14)、空き領域があればその空き領域
にモジュールをダウンロードする(ステップS16)。
一方、空き領域がなければガベージコレクションを行っ
て連続した空き領域をつくり(ステップS15)、その
空き領域にモジュールをダウンロードする(ステップS
16)。そして、その先頭アドレスとサイズとをモジュ
ールアドレス表2に登録する(ステップS17)。
【0049】以上の処理をモジュールの数だけ繰り返し
たら(ステップS44)、最後に、アドインソフト名と
モジュール名とをアドインソフト表3に登録する(ステ
ップS18)。
【0050】次に、アドインソフトの呼び出し処理につ
いて説明する。アドインソフトの呼び出し処理は、図3
に示す実施の形態1での呼び出し処理と全く同様であ
る。ただし、ステップS21の処理において、アドイン
ソフト実行関数が含まれているのは、アドインソフト表
3(図6参照)の該当アドインソフトに対応するモジュ
ールのうち先頭のモジュール名のモジュールである。
【0051】次に、あるモジュール内から外部のモジュ
ール内の関数を呼び出す処理について説明する。図8
は、外部モジュール内の関数の呼び出し処理を示すフロ
ーチャートであり、図9(a)は外部モジュール内の関
数の呼び出し処理の流れを模式的に示す説明図、同図
(b)は同図(a)の遷移時におけるスタックの内容を
示す説明図である。以下これらを参照して説明する。
【0052】図9(a)中の符号5は関数呼び出しルー
チンである。このルーチン5は、情報端末装置にあらか
じめ組み込まれているプログラムの一部である。
【0053】外部モジュールを呼び出す際には、まず第
1引数に呼び出し先のモジュール名を渡し、第2引数に
呼び出す関数名を渡し、第3引数以降に第2引数の関数
の引数全てを渡して、組み込みプログラム中に用意され
ている関数呼び出しルーチン5をコールする(ステップ
S51)。このときのスタックは、図9(b)の(1)
の状態となる。
【0054】関数呼び出しルーチン5では、まずスタッ
ク操作51を行って、戻りアドレスとモジュール名とを
取り出し、戻りアドレスをスタックに積み直す(ステッ
プS52)。なお、この関数呼び出しルーチンでは、引
数がいくつあるかは分かっていないが問題はない。この
時点で、スタックは図9(b)の(2)の状態となる。
【0055】次に、先頭アドレスの取得処理52にてモ
ジュールアドレス表2からモジュールの先頭アドレスを
求め(ステップS53)、そのアドレスへジャンプする
(ステップS54)。この時点で、スタックは図9
(b)の(3),(4)の状態となる。つまり、(2)
の状態のままである。
【0056】ジャンプがなされると、動的に配置されて
いるアドインソフトモジュール1への処理が移ったこと
になる。つまり、呼び出し元であったアドインソフトモ
ジュール1からは、呼び出し先のアドインソフトモジュ
ール1aのアドレスは分かっていなかったが、ジャンプ
できたことになる。この場合、上記実施の形態1とは異
なり、アドインソフトモジュール1a内にある外部呼び
出し用関数は、アドインソフト実行用関数12,13以
外の関数12a〜15aも存在することになる。
【0057】アドインソフトモジュール1aの先頭にあ
る関数分岐ルーチン11aでは、スタックから戻りアド
レスと関数名とを取り出し、戻りアドレスをスタックに
積み直す(ステップS55)。なお、この関数分岐ルー
チンでは、引数がいくつあるかは分かっていないが問題
はない。この後、得られた関数名とアドインソフトモジ
ュール1aに登録されている外部呼び出し用関数12a
〜15aの関数名とを比較して、該当する関数へと相対
ジャンプを行う(ステップS56)。このときのスタッ
クの状態は、図9(b)の(5)の状態となる。スタッ
クポインタ(SP)より上にある戻りアドレスは不要と
なったゴミデータであり、割り込みなどの関係で違う値
になっても構わない。
【0058】これにより、目的の関数が呼び出される
(ステップS57)。この関数内では同一モジュール内
の関数を相対アドレスで呼び出すことができる。また、
あらかじめ情報処理装置に組み込まれている公開関数も
絶対アドレスと関数スペックとが公開されているので、
呼び出して利用することができる。もちろん、さらに別
の外部モジュールの関数を呼び出すこともできる。
【0059】一連の処理が終わると、スタックに積まれ
ていた戻りアドレスへリターンする(ステップS5
8)。このときのスタックは、図9(b)の(6)の状
態となり、アドインソフト呼び出しルーチン4の処理を
開始したときの状態となる。
【0060】図10は、アドインソフトの削除処理を示
すフローチャートである。アドインソフトを削除する際
には、まず削除すべきアドインソフトを構成するアドイ
ンソフトモジュールのモジュール名を全て調べ、バッフ
ァにコピーする(ステップS61)。また、コピーした
モジュール名の数を求める(ステップS62)。そし
て、アドインソフト表3から該当アドインソフトの情報
(アドインソフト名とモジュール名)を削除する(ステ
ップS63)。
【0061】この後、モジュールの数の分だけ、その後
の処理(ステップS65〜ステップS70)を繰り返す
(ステップS64)。すなわち、バッファから削除する
モジュール名を取り出し(ステップS65)、すでに同
じモジュール名が存在するか否かを、モジュールアドレ
ス表2又はアドインソフト表3を用いて確認する(ステ
ップS66)。
【0062】ステップS66において、同じモジュール
名が存在する場合(ステップS66でYesと判断され
た場合)には、このモジュールは削除せずに次のループ
へと移る。
【0063】一方、ステップS66において、同じモジ
ュール名が存在しない場合(ステップS66でNoと判
断された場合)には、得られたモジュール名から、モジ
ュールアドレス表2を用いてモジュールの先頭アドレス
とモジュールのサイズとを求めた後(ステップS67,
S68)、モジュールアドレス表3から該当モジュール
に関する情報(モジュール名、先頭アドレス、サイズ)
を削除する(ステップS69)。そして、最後に、得ら
れたアドレスとサイズとを元に、該当するアドインソフ
トモジュールを削除する(ステップS70)。
【0064】以上の処理を、モジュールの数だけ繰り返
して終了する(ステップS71)。 [実施の形態3]本実施の形態3は、フラッシュROM
などのページ単位でしかリフレッシュできないメモリ媒
体の例である。
【0065】フラッシュROMは、ビットを1から0に
落とすことは任意のビット単位で可能であるが、ビット
を0から1にすることはページ単位でのみ可能となって
いる。従って、未使用のページは全バイトFFhで埋ま
っており、ビット落としで有効なデータを書き込み、不
要となったデータは00hを上書きすることで削除され
ていると見なすことができる。また、ページ内の全デー
タが不要となったら、ページをリフレッシュすること
で、全バイトFFhの状態に戻る。
【0066】図11は、モジュールアドレス表2bを示
している。実施の形態1,2と異なり、アドレス情報を
絶対アドレスで管理するのではなく、モジュールごとに
一意に定めるモジュールID24にて管理する。モジュ
ールIDのMSBは1とする。また、モジュールのサイ
ズの情報は特に必要はない。
【0067】図12は、フラッシュROMのページの構
造とガベージコレクション後の状態とを示す説明図であ
る。
【0068】ページ6は、ページヘッダ領域61とセク
タ管理領域62とセクタ領域63とに分かれている。使
用中のページ6には論理ページ番号を1から順に割り当
てていく。また、ページヘッダ領域61には、論理ペー
ジ番号を書き込む領域を用意し、未使用ページならFF
h、使用中のページなら論理ページ番号、削除済みのペ
ージなら00hをそれぞれ書き込むことで、ページを管
理する。
【0069】セクタ領域63は適当な数(631,63
2,・・・)に分割する。セクタ管理領域62も同じ数
(621,622,・・・)に分割する。ここでは、分
割した要素をそれぞれセクタ、セクタ管理番号と呼ぶこ
とにする。
【0070】セクタ631,632,・・・はデータ等
を実際に格納する領域である。セクタ管理番号621,
622,・・・は、対応するセクタを識別するためのも
のである。セクタ管理番号「0000h」(622)
は、対応するセクタ632が削除済みセクタであること
を示している。ただし、削除済みセクタは全て「00
h」で埋まっているとは限らない。
【0071】セクタ管理番号「FFFFh」(624)
は、対応するセクタ634が空きセクタであることを示
している。セクタ管理番号は、全データが一意に定まる
データIDと一致する。従って、同じデータIDのセク
タが連続している場合には、1つのデータが複数セクタ
にまたがっていることを示している。
【0072】セクタ管理番号「8001h〜8FFF
h」(623)は、対応するセクタ633がアドインソ
フトセクタであることを示している。セクタ管理番号
は、モジュールIDである。同じモジュールIDのセク
タが連続している場合は、セクタ管理番号「8000
h」は使わない。
【0073】データIDから該当データの先頭セクタの
アドレスを求める処理はどのような処理であっても構わ
ない。この処理は、本発明に直接関係する部分ではない
ので、詳細な説明は省略するが、一例として情報端末装
置の起動時に全ページのセクタ管理領域を調べ、RAM
上に対応テーブルを作るなどの方法がある。
【0074】モジュールIDのMSBを0にした値は、
すでに使用中のデータIDと同じ値にならないようにす
ると、この値をデータIDと見なすことで、上記の処理
により該当モジュールの先頭セクタのアドレスを求める
ことができる。
【0075】このように構成すると、モジュールの先頭
アドレスを求める処理を、モジュールアドレス表からモ
ジュールIDを求め、求めたモジュールIDからモジュ
ールの先頭アドレスを求める処理に置き換えることがで
きる。また、モジュールアドレス表からサイズを求める
処理を、セクタ管理番号の同じ番号の並ぶ数から計算す
る処理に置き換えることができる。つまり、モジュール
の本体を削除するのではなく、セクタ管理番号を「00
00h」に書き換えることで、前記実施の形態1,2で
説明した各処理が、同様の手順で行えることになる。
【0076】ところで、このフラッシュROMのシステ
ムにおいては、削除済みセクタを空きセクタに戻さない
と、セクタの再利用ができないので、必ずガベージコレ
クションを行う必要がある。
【0077】図13は、このガベージコレクション処理
を示すフローチャートである。まず、転送元としてメモ
リ整理を行うページを探す(ステップS81)。次に、
転送先になる未使用ページを探し(ステップS82)、
未使用ページがあれば、その後の処理(ステップS85
〜ステップS87)を、セクタの数だけ繰り返す(ステ
ップS84)。一方、未使用ページがなければ、削除済
みページをリフレッシュして、未使用ページとした後
(ステップS83)、その後の処理(ステップS85〜
ステップS87)を、セクタの数だけ繰り返す(ステッ
プS84)。
【0078】すなわち、転送元のセクタ管理番号が「0
000h」又は「FFFFh」かどうかを調べる(ステ
ップS85)。ステップS85において、転送元のセク
タ管理番号が「0000h」又は「FFFFh」であれ
ば、繰り返し処理を終了して(ステップS88)、次の
ループへと移る。一方、ステップS85において、転送
元のセクタ管理番号が「0000h」又は「FFFF
h」でなければ、転送元のセクタの内容を転送先のセク
タへコピーする(ステップS86)。また、転送元のセ
クタ管理番号を転送先へコピーする(ステップS8
7)。ただし、転送先のセクタは端から詰めて使用して
いく。また、データIDから、対応する先頭セクタのア
ドレスを求めるためのテーブル等を必要に応じて更新す
る。
【0079】以上の処理を、セクタの数だけ繰り返した
後(ステップS88)、最後に、転送元の論理ページ番
号を転送先にコピーし(ステップS89)、転送元のペ
ージヘッダを削除済みの「00h」にする(ステップS
90)。
【0080】このような一連の処理により、データとア
ドインソフトの違いを意識することなく、データのみを
扱っていたときと同様の処理でガベージコレクションを
行うことができる。
【0081】最後に、アドインソフトの情報端末装置間
での転送について説明する。図14は、アドインソフト
の転送処理を示すフローチャートである。
【0082】受信側の情報端末装置では、通常のダウン
ロード処理と同じ処理を行う。すなわち、送信先は、ま
ずアドインソフト名を送信し(ステップS91)、次に
アドインソフトを構成するモジュールの数を求めて送信
した後(ステップS92)、その後の処理(ステップS
94〜ステップS96)を、モジュールの数だけ繰り返
す(ステップS93)。
【0083】すなわち、モジュール名を送信し(ステッ
プS94)、次にモジュールサイズを求めて送信する
(ステップS95)。そして、モジュールの先頭アドレ
スを求めて、モジュールの内容を送信する(ステップS
96)。つまり、先頭アドレスは送信しない。以上の処
理をモジュールの数だけ繰り返して終了する(ステップ
S97)。
【0084】
【発明の効果】本発明の再配置可能なアドインソフト管
理システムによれば、アドインソフトを開発する際に、
1つのアドインソフトを複数のモジュールに分けて作成
でき、また1つのモジュールを複数のアドインソフトで
共用できるので、アドインソフトの開発に自由度を持た
せることができ、開発労力を軽減することができる。ま
た、アドインソフト間で処理の重複を減らすことができ
るので、プログラムサイズを小さくすることができる。
また、アドインソフトが再配置可能であるため、アドイ
ンソフトを何度も入れ替えてもメモリの利用状況に隙間
ができず、効率の良いメモリ使用が可能となる。また、
情報端末装置間でメモリの使用状況の違いに関係なく、
自由にアドインソフトを転送できるので、使用方法に制
限の少ないアドインソフト管理システムを提供できる。
また、ダウンロードできるアドインソフトの数やサイズ
等の制約も少なく、データ領域を一杯まで利用すること
ができる。また、フラッシュROMなどの、任意のデー
タの上書きができないメモリ媒体においても利用可能と
なり、情報端末装置の構成に自由度を持たせることがで
きる。
【図面の簡単な説明】
【図1】本発明のアドインソフト管理システムにおい
て、アドインソフトのダウンロードの様子を示した説明
図である。
【図2】受信側の情報端末装置でのダウンロード処理を
示すフローチャートである。
【図3】アドインソフトの呼び出し処理を示すフローチ
ャートである。
【図4】(a)はアドインソフトの呼び出し処理の流れ
を模式的に示す説明図、(b)は(a)の遷移時におけ
るスタックの内容を示す説明図である。
【図5】アドインソフトの削除処理を示すフローチャー
トである。
【図6】実施の形態2でのアドインソフト表を示す説明
図である。
【図7】受信側の情報端末装置でのダウンロード処理を
示すフローチャートである。
【図8】外部モジュール内の関数の呼び出し処理を示す
フローチャートである。
【図9】(a)は外部モジュール内の関数の呼び出し処
理の流れを模式的に示す説明図、(b)は(a)の遷移
時におけるスタックの内容を示す説明図である。
【図10】アドインソフトの削除処理を示すフローチャ
ートである。
【図11】モジュールアドレス表を示す説明図である。
【図12】フラッシュROMのページの構造とガベージ
コレクション後の状態とを示す説明図である。
【図13】ガベージコレクション処理を示すフローチャ
ートである。
【図14】アドインソフトの転送処理を示すフローチャ
ートである。
【図15】従来の共有ライブラリ管理機構において、プ
ログラムを動的に配置する処理を示した説明図である。
【図16】従来のアドインソフト管理方式でのフラッシ
ュROMの一部を示した説明図である。
【符号の説明】
1,1a アドインソフトモジュール 11,11a 関数分岐ルーチン 12,13 外部呼び出し用関数(アドインソフト実行
関数) 12a〜15a 外部呼び出し用関数 14,15 内部関数 2,2a,2b モジュールアドレス表 21 モジュール名 22 先頭アドレス 23 サイズ 3 アドインソフト表 31 アドインソフト名 32 モジュール名 33 次の項へのポインタ 4 アドインソフト呼び出しルーチン 41 モジュール名検索処理 42 先頭アドレス取得処理 43 関数コール処理 5 関数呼び出しルーチン 51 スタック操作処理 52 先頭アドレス取得処理 53 ジャンプ処理 6 ページ 62 セクタ管理領域 621 データセクタを示すセクタ管理番号 622 削除済みセクタを示すセクタ管理番号 623 アドインソフトセクタを示すセクタ管理番号 624 空きセクタを示すセクタ管理番号 63 セクタ領域 631 データセクタ 632 削除済みセクタ 633 アドインソフトセクタ 634 空きセクタ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 情報端末装置のメモリをデータ領域とア
    ドインソフトのプログラム格納領域とで共有するアドイ
    ンソフト管理システムであって、 アドインソフトを実行するための関数群を1つにまとめ
    たモジュールをダウンロードの最小単位とし、各モジュ
    ールは、モジュール内のアドレスが相対アドレスで記述
    され、各モジュールの先頭にはそのモジュール内で外部
    から参照可能な関数全てへ分岐できる関数分岐ルーチン
    が配置されるとともに、予め定められた関数名のアドイ
    ンソフト実行関数群が配置されており、 前記情報端末装置に予め組み込まれたプログラムによっ
    て、ダウンロードされた全てのモジュールとその先頭ア
    ドレスとを前記メモリ内のデータ領域に登録して管理す
    る手段と、 前記情報端末装置に予め組み込まれたプログラムによっ
    て、ダウンロードされた全てのアドインソフト名とその
    アドインソフトを構成するモジュールのモジュール名と
    を前記メモリ内のデータ領域に登録して管理する手段と
    を備えたことを特徴とする再配置可能なアドインソフト
    管理システム。
  2. 【請求項2】 呼び出したい関数のモジュール名と関数
    名と引数とを渡すことで、前記モジュールの先頭アドレ
    ス管理データを元に、前記モジュールの先頭に配置され
    た関数分岐ルーチンに必要な引数を渡すことができる関
    数呼び出しルーチンを備え、任意のモジュールから任意
    の外部モジュールの関数をコールできる請求項1に記載
    のアドインソフト管理システム。
  3. 【請求項3】 前記アドインソフトが単一若しくは複数
    のモジュールで構成されるとともに、複数のアドインソ
    フトで同一のモジュールが利用可能である請求項1又は
    2に記載のアドインソフト管理システム。
  4. 【請求項4】 情報端末装置のメモリをデータ領域とア
    ドインソフトのプログラム格納領域とで共有するアドイ
    ンソフト管理システムであって、 前記メモリが、あるページ単位にしかデータを任意に書
    き換えることができないメモリ媒体で構成され、前記ペ
    ージ内がページヘッダ領域とセクタ管理領域とセクタ領
    域とに分けられるとともに、セクタ管理領域内にセクタ
    と1対1に対応するセクタ管理番号が配置され、 前記情報端末装置に予め組み込まれたプログラムによっ
    て、アドインプログラムをセクタ領域単位で任意に連続
    した空きセクタにダウンロードするとともに、対応する
    セクタのセクタ管理番号にダウンロードしたアドインソ
    フトの管理番号を登録して管理する手段を備えたことを
    特徴とするアドインソフト管理システム。
JP13282199A 1999-05-13 1999-05-13 再配置可能なアドインソフト管理システム Expired - Fee Related JP3670162B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13282199A JP3670162B2 (ja) 1999-05-13 1999-05-13 再配置可能なアドインソフト管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13282199A JP3670162B2 (ja) 1999-05-13 1999-05-13 再配置可能なアドインソフト管理システム

Publications (2)

Publication Number Publication Date
JP2000322268A true JP2000322268A (ja) 2000-11-24
JP3670162B2 JP3670162B2 (ja) 2005-07-13

Family

ID=15090360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13282199A Expired - Fee Related JP3670162B2 (ja) 1999-05-13 1999-05-13 再配置可能なアドインソフト管理システム

Country Status (1)

Country Link
JP (1) JP3670162B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100632403B1 (ko) 2004-12-02 2006-10-11 한국전자통신연구원 코드 모듈 간의 상관 관계 정보에 따른 소프트웨어스트리밍 방법 및 그에 따른 코드 모듈 간의 상관 관계정보를 이용한 캐싱 방법
JP2009211540A (ja) * 2008-03-05 2009-09-17 Internatl Business Mach Corp <Ibm> コンピュータ使用可能コードを実行する装置及び方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332675A (ja) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp 共有ライブラリ管理機構
JPH07200303A (ja) * 1993-12-28 1995-08-04 Pfu Ltd プログラムローディング方式
JPH10171662A (ja) * 1996-12-05 1998-06-26 Hitachi Ltd アプリケーション実行方法
JPH10171659A (ja) * 1996-12-10 1998-06-26 Matsushita Electric Ind Co Ltd ダウンロード方法および装置
JPH1173349A (ja) * 1997-08-29 1999-03-16 Nec Corp ダウンロードによるファイル断片化防止装置及び方法
JPH11265278A (ja) * 1998-03-18 1999-09-28 Mitsubishi Electric Corp オペレーティングシステムの動的機能管理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332675A (ja) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp 共有ライブラリ管理機構
JPH07200303A (ja) * 1993-12-28 1995-08-04 Pfu Ltd プログラムローディング方式
JPH10171662A (ja) * 1996-12-05 1998-06-26 Hitachi Ltd アプリケーション実行方法
JPH10171659A (ja) * 1996-12-10 1998-06-26 Matsushita Electric Ind Co Ltd ダウンロード方法および装置
JPH1173349A (ja) * 1997-08-29 1999-03-16 Nec Corp ダウンロードによるファイル断片化防止装置及び方法
JPH11265278A (ja) * 1998-03-18 1999-09-28 Mitsubishi Electric Corp オペレーティングシステムの動的機能管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100632403B1 (ko) 2004-12-02 2006-10-11 한국전자통신연구원 코드 모듈 간의 상관 관계 정보에 따른 소프트웨어스트리밍 방법 및 그에 따른 코드 모듈 간의 상관 관계정보를 이용한 캐싱 방법
JP2009211540A (ja) * 2008-03-05 2009-09-17 Internatl Business Mach Corp <Ibm> コンピュータ使用可能コードを実行する装置及び方法

Also Published As

Publication number Publication date
JP3670162B2 (ja) 2005-07-13

Similar Documents

Publication Publication Date Title
US7644406B2 (en) Update system capable of updating software across multiple FLASH chips
Reijers et al. Efficient code distribution in wireless sensor networks
KR100880415B1 (ko) 기억장치
US7647355B2 (en) Method and apparatus for increasing efficiency of data storage in a file system
CN100498703C (zh) 以存储技术抽象方式在文件内创建文件系统
US20010044935A1 (en) Information processing method and apparatus and recording medium
JP2005182784A (ja) インストールするのに有効な依存ソフトウェア更新の最大の群の判定
CN105117355A (zh) 存储器、存储器系统及其数据处理方法
JPH03266039A (ja) フリーフォーマットデータリンク処理方式
CN107506221A (zh) 应用程序升级方法、装置及设备
KR101099802B1 (ko) 하나의 디렉토리로부터 또 다른 디렉토리로의 파일 복사
JP2021510222A (ja) データ処理方法、装置、およびコンピューティングデバイス
US20080320461A1 (en) Method and Apparatus for Reliable In-Place Update
JP2003529149A (ja) ガーベジコレクション
US7100172B2 (en) System and method for changing operation of an application without recompiling
US8196093B2 (en) Apparatus and method for componentizing legacy system
JP2016533588A (ja) 記憶処理方法、装置及び端末
WO2001053950A2 (en) A method and apparatus for reducing ram size while maintaining fast data access
JP6812826B2 (ja) 格納方法、格納装置及び格納プログラム
US20080071723A1 (en) Optimizing Memory Usage and System Performance in a File System Requiring Entire Blocks to be Erased for Rewriting Data
JP2000322268A (ja) 再配置可能なアドインソフト管理システム
US20080162783A1 (en) Dynamically updateable and moveable memory zones
JP2017073036A (ja) 情報処理装置およびその制御方法
KR100693551B1 (ko) 소프트웨어의 부분 업데이트를 위한 통신단말기 및 통신네트워크 시스템, 소프트웨어의 부분 업데이트 방법 및 이를 위한 소프트웨어 생성 장치 및 방법
WO2000070454A1 (fr) Procede pour faciliter le partage de donnees entre des programmes d&#39;application et des acces a des appareils peripheriques a programmes d&#39;application au moyen d&#39;adresses partagees

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050316

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050413

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080422

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090422

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090422

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100422

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100422

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110422

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120422

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120422

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130422

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees