(57)【要約】      （修正有）【課題】プログラム作成支援装置と組み込み機器間の圧縮データ転送に関し、転送の高速化のもと、圧縮転送解凍の一連の処理全体、通信手段の転送処理性能、データ受信解凍処理のバッファ容量等を考慮し、データ転送方式を最適化する。【解決手段】プログラミング支援装置と組込み機器とを伝送路で接続し、プログラム作成支援装置からデータを圧縮して送信し、組み込み機器で受信、解凍する圧縮データ転送方式であり、プログラム作成支援装置は、送信に先立ち、送信する各圧縮データファイルのデータサイズと送信順序を組み込み機器に通知し、その後、圧縮データファイルを順次送信し、組込み機器は、プログラム作成支援装置が通知した、送信される各圧縮データファイルのデータサイズ、送信順序と、伝送路の通信性能、用意できるバッファ容量及び他の処理の負荷状況等により、優先度の異なる複数のタスクの中から最適なタスクを選択し、解凍処理を行わせる。【選択図】図１
2006338409.tif 000002
【特許請求の範囲】
【請求項１】
プログラミング支援装置と組込み機器とを伝送路で接続し、該プログラム作成支援装置からデータを圧縮して送信し、該組み込み機器で受信、解凍することによってデータをやり取りする圧縮データ転送方式であって、
前記プログラム作成支援装置は、複数の圧縮データファイルの送信を行うのに先立って、送信する各ファイルのデータサイズ、送信順序を組み込み機器に通知し、その後、圧縮データファイルを順次送信し、
前記組込み機器は、前記プログラム作成支援装置が通知した、送信される各ファイルのデータサイズ、送信順序についての情報と、伝送路の通信性能、用意できるバッファ容量及び他の処理の負荷状況とから、優先度の異なる複数のタスクの中から最適なタスクを選択して解凍処理を割り当て、該タスクに解凍処理を行わせる、
ことを特徴とする圧縮データ転送方式。
【請求項２】
プログラミング支援装置と組込み機器とを伝送路で接続し、該プログラム作成支援装置からデータを圧縮して送信し、該組み込み機器で受信、解凍することによってデータをやり取りする圧縮データ転送システムであって、
前記プログラム作成支援装置は、
データを圧縮する圧縮手段と、
複数の圧縮データファイルの送信を行うのに先立って、送信する各ファイルのデータサイズ、送信順序を組込み機器に通知する通知手段と、
圧縮データファイルを順次送信する送信手段と、
を備え、
前記組込み機器は、
データの解凍、リアルタイム処理など様々な処理を割り当てられ、優先度に基づいて該割り当てられた処理を実行する複数のタスクと、
前記プログラム作成支援装置が通知した、送信される各ファイルのデータサイズ、送信順序についての情報と、伝送路の通信性能、用意できるバッファ容量及び他の処理の負荷状況とから、解凍処理を割り当てる最適なタスクを決定するタスクスケジューラと、
を備えることを特徴とする圧縮データ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラミング支援装置と組込み機器との間の圧縮データ転送方式および圧縮データ転送システムに関わる。
【背景技術】
【０００２】
従来より、情報処理装置間を伝送路で接続しデータをやりとりすることが行われてきた。情報処理装置の処理速度と伝送路の転送速度を比較すると、伝送路の転送速度のほうが著しく低いため、大きなサイズのデータをやり取りする場合には情報処理装置でデータに圧縮、解凍などの処理を施すようにし、できるだけ小さなデータサイズにしてやりとりするようにするのが一般的なデータ転送の手法である。
【０００３】
このような圧縮データ転送システムにおいては、転送するデータやシステム自体の特性に応じて様々な発明、提案などがなされてきている。特許文献１などはその一例である。
特許文献１は、画像データを情報処理装置間で転送するシステムを開示したものである。送信側の情報処理装置は一枚の画像を圧縮する際に、該画像を複数の領域に分割して圧縮し、圧縮と同時に復号化情報を作成する。該圧縮データとともに復号化情報が転送され、受信側情報処理装置では、該復号化情報に基づいて例えば画像中の文字部分など早く表示させたい部分から解凍するようにしたものである。このシステムは、画像中の文字情報などを含む情報性の高い領域に対応するデータから解凍して、画像閲覧者などに提示するところに特徴があり、情報提示システムにおける要求をうまく解決している例である。
【０００４】
また、プログラミング支援装置と組込み機器などを伝送路で接続し、組込み機器の制御プログラムやデータをやり取りすることも頻繁に行われる。組込み機器とは産業機器や家電製品などのことを意味し、特定機能を実現するためのコンピュータシステムが組み込まれたものをいう。ここで組み込まれるコンピュータシステムは、パソコンなどの汎用のコンピュータシステムとは異なり、要求される機能や性能が極めて限定され、コスト上の制限から利用可能な資源に強い制約があるのが特徴であり、安価なＣＰＵと少ないメモリ、プログラムを内蔵するためのＲＯＭから成るのが一般的である。
【０００５】
従来のプログラミング支援装置と組込み機器間の圧縮データ転送方式は、転送ファイルをまず個々に全て圧縮し、その後、例えばファイル名の昇順などの順に転送し、受信側は全てのファイルの受信が終わった後、解凍を始めるというものであった。図３にその概要を示す。プログラミング支援ツールなどのソフトウェアを含むパソコンなどの端末から、組込み機器端末に複数の転送経路によってデータ転送が行われる。
【０００６】
近年ではこの方式を改良し、圧縮、転送、解凍の処理をオーバラップさせて並列処理することによって全体の転送処理時間を短縮するという方式がよく用いられている。図４に、この流れ図を示した。図のように、３つのデータを転送する場合に、データ１の圧縮が終わった時点で、データ１の転送を始める。それと同時に、データ２の圧縮を行う。データ１が受信側に受信されると、データ１が解凍されると同時にデータ２の転送が行われる。このように、各処理をオーバラップした並列処理で処理することで全体の転送処理時間を短縮させることができる。この方式は組込み機器においてよく使用される、オペレーティングシステムμＩＴＲＯＮにおけるマルチタスク処理に代表され、一つの処理の遅延によって他の処理が大幅に遅れないよう、優先度や内部的に規定したタイミングなどによりスケジューリングが行われるようになっている。
【０００７】
ところが、組込み機器が、例えばプログラマブルコントローラや産業用ロボットなどのように高度なリアルタイム性を必要とする処理を行う機器である場合、動作中にダウンロードされるユーザデータやプログラム更新処理などについては、ＣＰＵが他のリアルタイム処理を実行中であるために、転送処理や圧縮処理そのものにＣＰＵの処理能力を大きく割り当てることができない、ということがある。しかし、ユーザにとってはプログラムやデータのダウンロード時間は単純な待ち時間として捉えられてしまうため、可能な限りの高速化が常に要求される。
【０００８】
高度なリアルタイム性を必要とする処理を行う機器は、比較的大きなプログラムやユーザデータを複数持つことが多く、またそれらのデータが相互に関連していることが多い。例としては、組込み機器プログラム用のプログラムがメインルーチン、サブルーチンで構成され、それぞれ個々にファイルとして格納されていて、かつ、動作中の組込み機器がオンラインで該プログラムを更新しなければならないような場合である。このような場合、メインルーチンとサブルーチンのように関連したデータは一連の転送処理として圧縮、転送、解凍を行い、その後機器側に有効なプログラムデータとして取り込み、同時に更新することによって、有効なプログラムデータ群として反映させる必要がある。すなわち、転送データ量に従って増大する個々の転送時間の短縮だけではなく、複数のブロックデータの転送及びそれらと同時に行われる圧縮、解凍処理などを含めた全体的な処理時間の最適化が要求される。
【０００９】
また、組込み機器が例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＲＳ−４２２、Ｅｔｈｅｒｎｅｔ（登録商標）など、異なる複数の通信インタフェースを持つ場合、それぞれの通信手段によってデータ転送処理性能は大きく異なる。転送速度を比較すると、１００ＭｂｐｓのＥｔｈｅｒｎｅｔ（登録商標）と、１９．２ＫｂｐｓのＲＳ−４２２シリアル通信では大きく異なると言えるし、パケットサイズを比較するとＴＣＰ／ＩＰでは１５００バイト、ＵＳＢでは１０２４バイトがそれぞれ最大パケットとされており、これによっても転送処理性能に差が生じる。転送処理性能を決定するもう一つの要因として、組込み機器側で、データ転送、解凍処理のために用意できるバッファ容量サイズがどれくらいあるか、ということがある。これらのことを考慮すると、圧縮データを転送する際に、通信手段の転送処理能力と解凍処理のために用意できるバッファ容量を考慮して、最適な圧縮データ転送処理を行うことが要求される、と言える。加えて、組込み機器側の解凍処理についていえば、解凍処理が複数の通信経路によらず共通の処理であるからといって、解凍処理にむやみに高い優先度を割り付けてしまうと、例えば高速なネットワークの場合は頻繁に解凍処理がコールされることになりリアルタイム性の必要な処理を妨害される恐れがあり、また低速なネットワークに対して高い処理性能を割り付けることは、瞬間的に速く処理が終わるように見えるが、実は無駄時間が多く発生することになる。よって解凍処理の優先度の割り付けについても最適にする必要がある。
【特許文献１】特開２０００−１３６１０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
そこで、本発明の課題は、上述の問題点に鑑み、プログラム作成支援装置と組み込み機器間の圧縮データ転送において、データ転送処理の高速化を満たしつつ、圧縮、転送、解凍の一連の処理全体を考慮し、また、通信手段の転送処理性能及びデータ受信、解凍処理のために用意できるバッファ容量を考慮して、最適に調整できるデータ転送方式を提案することにある。
【課題を解決するための手段】
【００１１】
上述した課題を解決するために、本発明では、プログラム作成支援装置と組込み機器を伝送路で接続し、送信側である該プログラム作成支援装置からプログラム、ユーザデータなどの複数のブロックデータファイルをファイル単位で圧縮して転送し、受信側である組込み機器で解凍することによってデータのやり取りをする圧縮データ転送方式において、プログラム作成支援装置は、複数の圧縮データファイルの転送を行うのに先立って、送信するファイルのデータサイズ、送信順序を組込み機器に通知し、その後、データ転送を行うようにし、また、組込み機器はプログラム作成支援装置から通知されたファイルのデータサイズ、送信順序から圧縮・転送・解凍の一連の処理の並列処理の効率化を考慮し、また、伝送路の転送性能、用意できるバッファ容量、他の処理の負荷状況などを考慮し、解凍処理を行うタスクの処理優先度を決定し、解凍処理を実行させることで、組込み機器側の処理の最適化を図るようにした。
【００１２】
本発明の一態様によれば、プログラミング支援装置と組込み機器とを伝送路で接続し、該プログラム作成支援装置からデータを圧縮して送信し、該組み込み機器で受信、解凍することによってデータをやり取りする圧縮データ転送方式であって、前記プログラム作成支援装置は、複数の圧縮データファイルの送信を行うのに先立って、送信する各ファイルのデータサイズ、送信順序を組み込み機器に通知し、その後、圧縮データファイルを順次送信し、前記組込み機器は、前記プログラム作成支援装置が通知した、送信される各ファイルのデータサイズ、送信順序についての情報と、伝送路の通信性能、用意できるバッファ容量及び他の処理の負荷状況とから、優先度の異なる複数のタスクの中から最適なタスクを選択して解凍処理を割り当て、該タスクに解凍処理を行わせる、ことを特徴とする。これにより、組込み機器側では前もって通知されるファイルの情報と送信順序および伝送路の通信性能、データの受信及びデータの解凍に用意できるバッファ容量、他の処理の負荷状況に基づいて、優先度の異なるタスクから最適なタスクを選択して解凍処理を割り付けるようにすることが可能で、これによってデータ転送にかかる処理時間を最適化しつつ、組込み機器側の処理の余裕度を向上することができる。
【００１３】
本発明の一態様によれば、プログラミング支援装置と組込み機器とを伝送路で接続し、該プログラム作成支援装置からデータを圧縮して送信し、該組み込み機器で受信、解凍することによってデータをやり取りする圧縮データ転送システムであって、前記プログラム作成支援装置は、データを圧縮する圧縮手段と、複数の圧縮データファイルの送信を行うのに先立って、送信する各ファイルのデータサイズ、送信順序を組込み機器に通知する通知手段と、圧縮データファイルを順次送信する送信手段と、を備え、前記組込み機器は、データの解凍、リアルタイム処理など様々な処理を割り当てられ、優先度に基づいて該割り当てられた処理を実行する複数のタスクと、前記プログラム作成支援装置が通知した、送信される各ファイルのデータサイズ、送信順序についての情報と、伝送路の通信性能、用意できるバッファ容量及び他の処理の負荷状況とから、解凍処理を割り当てる最適なタスクを決定するタスクスケジューラと、を備えることを特徴とする。これにより、組込み機器側では前もって通知されるファイルの情報と送信順序および伝送路の通信性能、データの受信及びデータの解凍に用意できるバッファ容量、他の処理の負荷状況に基づいて、優先度の異なるタスクから最適なタスクを選択して解凍処理を割り付けるようにすることが可能で、これによってデータ転送にかかる処理時間を最適化しつつ、組込み機器側の処理の余裕度を向上することができる。
【発明の効果】
【００１４】
本発明によれば、プログラミング支援ツール等の端末装置と組込み機器とにおける圧縮データ転送において、組込み機器側では、端末装置からデータ本体の転送前に通知される圧縮データファイルの情報および送信順序と、データ転送に用いられる伝送路の通信性能と、組込み機器側で用意できるバッファ容量と、組込み機器内の他の処理の負荷状況とに基づいて、優先度の異なるタスクの中から最適なタスクを選択して解凍処理を割り付けるようにすることが可能で、これによって圧縮データを転送し、解凍するまでにかかる一連のデータ転送処理時間を最適化しつつ、組込み機器側の処理の余裕度を向上することが可能である。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して、本発明の実施の形態について説明する。
図１に本発明の構成を示す。プログラミング支援ツールなどのソフトウェアを備えたプログラミング支援装置１と組込み機器２が、それぞれの通信インタフェース１４、２４を介して伝送路ＡまたはＢで接続している。伝送路については、常に複数の伝送路によって接続しているわけではなく、複数の伝送路を使用可能であることを示したものである。すなわち、ユーザがいずれの伝送路を用いて支援装置１と組込み機器２を接続させるかによってデータ転送に用いる伝送路が決定される。
【００１６】
プログラミング支援装置１は、転送するプログラムファイルやユーザデータファイル１０を圧縮する圧縮手段１１と、圧縮手段１１で圧縮され転送されるファイルのデータサイズと転送順序を組込み機器２に通知する通知手段１２と、圧縮されたファイルを送信する送信手段１３とを備える。
【００１７】
組込み機器２は、プログラミング支援装置１から転送されたデータ等の受信および圧縮データの解凍などの処理に用いられるバッファ２３と、データの解凍、リアルタイム処理など様々な処理を割り当てられるタスク２２−１、２２−２、２２−３と、それぞれのタスクにどの処理を割り当てるかを決定するタスクスケジューラ２１とを備える。尚、各タスクの優先度は異なる。また、タスクスケジューラ２１は組込み機器２内の全てのタスク割り当てを統括するものであり、特に、プログラム作成支援装置１が通知した、送信される各ファイルのデータサイズ及び送信順序についての情報と、伝送路の通信性能、データの受信やデータ解凍に用意できるバッファ容量及び他の処理の状況とから、解凍処理を割り当てる最適なタスクを決定するように構成されている。
【００１８】
以下具体的に、本発明の圧縮データ転送について述べる。
図１において、伝送路Ａの転送速度を２０Ｋｂｐｓ，伝送路Ｂの転送速度を３００Ｋｂｐｓとし、伝送路Ｂによって支援装置１と組込み機器２が接続されたとする。また、組込み機器２内にはＴ１〜Ｔ３の３つのタスクが存在し、これらは優先度の低い順にＴ１，Ｔ２，Ｔ３で、処理速度はそれぞれ１００Ｋｂｐｓ、２００Ｋｂｐｓ、６００Ｋｂｐｓで解凍処理が可能であるとする。
【００１９】
今、圧縮後のファイルサイズがそれぞれ２０Ｋｂｙｔｅ、４０Ｋｂｙｔｅ、１００Ｋｂｙｔｅ、４０Ｋｂｙｔｅ、２００ＫｂｙｔｅのファイルＦ１，Ｆ２，Ｆ３，Ｆ４，Ｆ５を転送するとする。転送順序がＦ１→Ｆ２→Ｆ３→Ｆ４→Ｆ５である場合、転送処理の流れは以下のようになる。
（１）転送順序及び各ファイルのファイルサイズが支援装置１から組込み機器２に通知される。
（２）Ｆ１→Ｆ２→Ｆ３→Ｆ４→Ｆ５の順に、順次、圧縮、転送、解凍処理が行われる。
（３）組込み機器側では、解凍処理のタスクスケジューリングを、次に続いて行われるファイルの転送処理の処理時間をもとに行う。
【００２０】
図２（ａ）は、従来技術において、伝送路Ｂで上述のようにＦ１→Ｆ２→Ｆ３→Ｆ４→Ｆ５の順に順次、圧縮、転送、解凍の処理を行った場合の時間例を示したものである。従来は組込み機器側の解凍処理は一つのタスクで行われ、直列的に処理が行われた。この例ではＦ４の解凍処理を始めるまでにＦ３の解凍処理が終了できないため、待ち時間が発生している。
【００２１】
これに対して、本発明によるデータ転送では、圧縮データ転送開始前に通知されるファイルの転送順序を参照して、ファイルＦ１の解凍処理は次のファイルＦ２の転送処理、ファイルＦ２の解凍処理は次のファイルＦ３の転送処理、というように以下同様にして、解凍処理を次に転送されるファイルの転送処理時間に基づいてスケジューリングする。すなわち、例えばＦ１の解凍処理は、次のＦ２の転送処理時間より短くなるようにすれば、処理時間が相殺されるため待ち時間が発生しない。よって、そのようになるようにタスク割り当てが行われる。尚、スケジューリングの際、データ（ファイル）の受信及び解凍処理を行うのに十分なバッファ容量があるか、他の処理の負荷状況なども考慮される。
【００２２】
図２（ｂ）に、本発明によってファイルを圧縮、転送、解凍処理した場合の時間例を示す。まずファイルＦ１が転送され、その後ファイルＦ１が解凍処理されるが、ファイルサイズが２０ＫｂｙｔｅのファイルＦ１の解凍処理時間を、ファイルＦ２の転送処理時間よりも小さくなるようにすればファイルＦ２の解凍処理を始めるまでに待ち時間が発生しない。ファイルＦ２の転送処理時間は、ファイルＦ２のファイルサイズを伝送路Ｂの転送速度で割ればよいので４０Ｋｂｙｔｅ×８／３００Ｋｂｐｓ＝１．０６ｓｅｃとなり、タスクスケジューラはファイルＦ１の解凍処理に１．０６秒以下となるのに最低限必要なタスクレベルを選択して処理を割り当てる。この場合、処理性能２００ＫｂｐｓのタスクＴ２でのファイルＦ１解凍処理時間は２０Ｋｂｙｔｅ×８／２００Ｋｂｐｓ＝０．８ｓｅｃであり、処理性能１００ＫｂｐｓのタスクＴ１でのファイルＦ１解凍処理時間は２０Ｋｂｙｔｅ×８／１００Ｋｂｐｓ＝１．６ｓｅｃとなるので、タスクスケジューラはタスクＴ２を選択して解凍処理を割り当てる。同様にしてファイルＦ２の解凍処理はタスクＴ２に割り当てられる。続くファイルＦ３の解凍処理のタスク割り当ては、ファイルＦ４の転送処理時間によって決定される。すなわちファイルＦ４の転送処理には４０Ｋｂｙｔｅ×８／３００Ｋｂｐｓ＝１．０６ｓｅｃかかるため、待ち時間が発生しないようにファイルＦ３の解凍処理を割り当てたいが、この場合は、処理性能６００ＫｂｐｓのタスクＴ３を割り当てても１００ＫｂｙｔｅのファイルＦ３を解凍するのに１００Ｋｂｙｔｅ×８／６００Ｋｂｐｓ＝１．３ｓｅｃかかってしまう。タスクＴ３は組込み機器２が備える最高処理性能タスクなので、この場合は待ち時間が生じてしまうが、タスクＴ３をファイルＦ３の解凍処理に割り当てることになる。次にファイルＦ４の解凍処理のタスク割り当ては、ファイルＦ５の転送処理時間によって決定される。すなわちファイルＦ５の転送処理時間は２００Ｋｂｙｔｅ×８／３００Ｋｂｐｓ＝５．３ｓｅｃであり、処理性能１００ＫｂｐｓのタスクＴ１をファイルＦ４の解凍処理を割り当てても４０Ｋｂｙｔｅ×８／１００Ｋｂｐｓ＝３．２ｓｅｃで、ファイルＦ５の解凍処理を始めるまでに待ち時間を発生させないために十分であることから、タスクＴ１にファイルＦ４の解凍処理が割り当てられる。最後にファイルサイズ２００ＫｂｙｔｅのファイルＦ５の解凍処理は、次に続く転送処理がないことから、最も処理性能が高いタスクＴ３に割り当てられる。
【００２３】
以上のように組込み機器側で解凍処理にかかる時間と次のファイルの転送時間を考慮してタスクスケジューリングを行うことで、図２（ａ）と図２（ｂ）を比較するとわかるように、一連の圧縮データ転送処理の効率を上げることが可能となる。
尚、上記の説明では、解凍処理を次に転送されるファイルの転送処理時間によってタスク割り当てをすることを主に説明したが、バッファの空き容量や他の負荷状況などによっては、他の処理が解凍処理より優先的に処理されるようにタスク割り当てがなされる場合もある。すなわち、リアルタイム性を保証すべき機器では、解凍処理タスク選択を可能な限り低いレベルに抑制した上で処理時間を最適にするように構成し、定常的に他の処理が行われておらず時々高い優先度をもつ処理が走るような機器では、高優先度処理が実行中であるか否かという情報をタスク割り当ての判断材料として使用するように構成してもよい。これによって、他の処理に影響を与えることなくデータ転送処理を行うことができ、かつ処理時間を最適に抑えることができる。
【００２４】
以上のように、本発明によれば、プログラミング支援ツール等の端末装置と組込み機器とにおける圧縮データ転送において、組込み機器側では、端末装置からデータ本体の転送前に通知される圧縮データファイルの情報および送信順序と、データ転送に用いられる伝送路の通信性能と、組込み機器側で用意できるバッファ容量と、組込み機器内の他の処理の負荷状況とに基づいて、優先度の異なるタスクの中から最適なタスクを選択して解凍処理を割り付けるようにすることが可能で、これによって圧縮データを転送し、解凍するまでにかかる一連のデータ転送処理時間を最適化しつつ、組込み機器側の処理の余裕度を向上することが可能である。
【図面の簡単な説明】
【００２５】
【図１】本発明の構成を示す図である。
【図２】（ａ）は従来技術での圧縮、転送、解凍処理の時間例を示す図であり、（ｂ）本発明での圧縮、転送、解凍処理の時間例を示す図である。
【図３】データ転送を行うシステム例を示す図である。
【図４】従来のシステムにおける圧縮、転送、解凍処理の流れを示す図である。
【符号の説明】
【００２６】
１    プログラミング支援装置
２    組込み機器
１０    プログラムファイル、ユーザデータファイル
１１    圧縮手段
１２    通知手段
１３    送信手段
１４    通信インタフェース
２１    タスクスケジューラ
２２−１〜２２−３    タスク
２３      バッファ
２４      通信インタフェース
【図１】
2006338409.tif 000003
【図２】
2006338409.tif 000004
【図３】
2006338409.tif 000005
【図４】
2006338409.tif 000006