JP2018185615A - 電子機器、方法、及びプログラム - Google Patents

電子機器、方法、及びプログラム Download PDF

Info

Publication number
JP2018185615A
JP2018185615A JP2017086224A JP2017086224A JP2018185615A JP 2018185615 A JP2018185615 A JP 2018185615A JP 2017086224 A JP2017086224 A JP 2017086224A JP 2017086224 A JP2017086224 A JP 2017086224A JP 2018185615 A JP2018185615 A JP 2018185615A
Authority
JP
Japan
Prior art keywords
compressed
data
read
decompression
compressed block
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.)
Pending
Application number
JP2017086224A
Other languages
English (en)
Inventor
和久 福家
Kazuhisa Fukuya
和久 福家
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2017086224A priority Critical patent/JP2018185615A/ja
Publication of JP2018185615A publication Critical patent/JP2018185615A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】電子機器のプロセッサ等によって実現される読み出し手段や伸長手段に応じてデータの分割及び圧縮を行い、データを読み出して実行するまでの時間をより短縮する。【解決手段】一実施形態における電子機器は、記憶手段に保持されたデータを分割して圧縮することにより圧縮データを生成し、圧縮ブロックに加工するデータ加工手段であって、圧縮データを伸長するための情報である圧縮ブロック情報を付加するデータ加工手段と、圧縮ブロックの読み出し手段であって、圧縮ブロック情報に基づいて、圧縮データの伸長手段を指定する読み出し手段と、圧縮データを圧縮ブロック情報に基づいて伸長する1つ以上の伸長手段とを有する。データ加工手段は、読み出し手段の読み出し速度、1つ以上の伸長手段の伸長処理速度、及びデータを圧縮する圧縮形式の圧縮率を含む分割判定情報に基づいて、データの分割数、圧縮形式、及び前記圧縮データの伸長手段を決定する。【選択図】図1

Description

本発明は、記憶手段に保持されたデータを読み出して実行する電子機器、方法、及びプログラムに関する。
従来、組込みシステム等の電子機器は、ソフトウェアプログラム等のデータをフラッシュメモリなどの不揮発性記憶手段に保持しておき、起動時に、RAM(ランダムアクセスメモリ)に読み出して実行している。かかる電子機器では、データを分割及び圧縮して不揮発性記憶手段に保持しておき、データの読み出し処理と伸長処理を並行して行うことで、データを読み出して実行するまでの時間を短縮する技術が知られている(特許文献1、2参照)。
特開2012−155582号公報 特開2013−222372号公報
しかしながら、特許文献1、2に記載の技術では、電子機器のプロセッサ等によって実現される読み出しや伸長に応じたデータの分割及び圧縮がなされていないため、データを読み出して実行するまでの時間をより短縮する余地があった。
本発明の一実施形態における電子機器は、記憶手段に保持されたデータを分割して圧縮することにより圧縮データを生成し、前記圧縮データを含む圧縮ブロックに加工するデータ加工手段であって、前記圧縮ブロックに前記圧縮データを伸長するための情報である圧縮ブロック情報を付加するデータ加工手段と、前記圧縮ブロックを読み出す読み出し手段であって、読み出した前記圧縮ブロックに付加された前記圧縮ブロック情報に基づいて、前記圧縮データを伸長する伸長手段を指定する読み出し手段と、前記読み出し手段が読み出した前記圧縮ブロックに含まれる前記圧縮データを、前記圧縮ブロック情報に基づいて伸長する1つ以上の伸長手段とを有し、前記データ加工手段は、前記読み出し手段の読み出し速度、前記1つ以上の伸長手段の伸長処理速度、及び前記データを圧縮する圧縮形式の圧縮率を含む分割判定情報に基づいて、前記データの分割数、圧縮形式、及び前記圧縮データの伸長手段を決定することを特徴とする。
本発明によれば、電子機器のプロセッサ等によって実現される読み出しや伸長に応じてデータの分割及び圧縮を行うことで、データを読み出して実行するまでの時間をより短縮することができる。
実施形態1における電子機器の構成図である。 実施形態1における分割判定情報の構成図である。 実施形態1における圧縮前プログラムから圧縮後プログラムへの分割と、圧縮ブロックに含まれる情報を示した図である。 実施形態1において全圧縮ブロックの読み出しと伸長に要する時間を算出した結果を示す図である。 実施形態1における圧縮前プログラムの分割及び圧縮処理のフローチャートである。 実施形態1における圧縮後プログラムの読み出し及び伸長処理のフローチャートである。 実施形態1における圧縮後プログラムの読み出し及び伸長処理に要する時間を説明する図である。
以下、添付の図面を参照して、本発明の実施形態について詳細に説明する。なお、以下の実施形態は一例に過ぎず、本発明を限定するものではない。
(実施形態1)
図1は、本発明の実施形態1における電子機器の主要部の(a)構成図及び(b)機能ブロック図である。
図1(a)において、本実施形態における電子機器100は、バス101と、バス101に接続されたプロセッサA102、プロセッサB103、プロセッサC104、RAM105、フラッシュメモリ106、及びDMAコントローラ107とを備える。
プロセッサA102、プロセッサB103、及びプロセッサC104は、RAM(ランダムアクセスメモリ)105に保持されているプログラムを実行することにより、電子機器100を統括的に制御し、後述する電子機器100の各機能を実現する。なお、本実施形態では、電子機器100が3つのプロセッサを備えるものとして説明するが、電子機器100が備えるプロセッサは3つに限定されるものではなく、1つ以上のプロセッサを備えていればよい。
RAM105は、電子機器100のメインメモリとして動作し、フラッシュメモリ106から読み出され、伸長されることで実行可能になった状態のプログラムを保持する揮発性記憶部である。
フラッシュメモリ106は、プログラムを1つ以上のブロックに分割し、圧縮することにより生成された1つ以上の圧縮ブロックを保持する不揮発性記憶部である。
DMA(ダイレクトメモリアクセス)コントローラ107は、プロセッサA102などの指示に従い、メモリ間のデータ転送を制御する。
なお、本実施形態では、不揮発性記憶部としてフラッシュメモリ106、揮発性記憶部としてRAM105を用いているが、本発明の不揮発性記憶部および揮発性記憶部はこれらに限るものではない。
図1(b)は、本実施形態における電子機器100の機能ブロック図である。電子機器100は、データ加工部110、読み出し部114、及び1つ以上の伸長部115を備える。
データ加工部110は、RAM105またはフラッシュメモリ106に保持されている圧縮前プログラム112を、分割判定情報111に応じて1つ以上のブロックに分割して、ブロックごとに圧縮する。さらに、データ加工部110は、圧縮したブロックごとに伸長を行う伸張部の情報(プロセッサ情報)を付加し、1つ以上の圧縮ブロックを含む圧縮後プログラム113に加工する。圧縮後プログラム113は、フラッシュメモリ106に記憶される。圧縮前プログラム112は、電子機器100全体または一部のソフトウェアプログラム(以下、単にプログラムとも称する)である。
読み出し部114は、フラッシュメモリ106に保持されている圧縮後プログラム113の圧縮ブロックを順に読み出し、読み出した圧縮ブロックを伸長する伸長部115を指定する。
1つ以上の伸長部115はそれぞれ、読み出された圧縮後プログラム113の圧縮ブロックを伸長する。圧縮後プログラム113の全ての圧縮ブロックが伸長されると、圧縮前プログラム112となる。
なお、本実施形態では、電子機器100がデータ加工部110を備えるものとして説明するが、別の装置で圧縮前プログラム112を圧縮後プログラム113に加工し、電子機器100の記憶部に保持させ、読み出し及び伸長処理を行ってもよい。
分割判定情報111は、読み出し部114の構成と性能、伸長部115の構成と性能、圧縮前プログラム112のデータ形式、適用可能な圧縮形式とその圧縮率を含む。分割判定情報111の詳細は、図2を参照して後述する。
図2は、本実施形態における分割判定情報の構成を示す。なお、図示された分割判定情報の構成は一例に過ぎず、図示された構成に限定されるものではない。
分割判定情報200は、圧縮前プログラムを加工するための加工情報210と、圧縮後プログラムをフラッシュメモリ106から読み出すための読み出し情報220と、読み出した圧縮後プログラムを伸長するための伸長情報230とを含む。
加工情報210は、圧縮前プログラムのデータ形式211と、圧縮情報212とを含む。また、圧縮情報212は、圧縮形式と圧縮率とを含む。本実施形態では、データ形式211は起動プログラムであり、圧縮情報212の圧縮形式はA、圧縮率は50%である。
読み出し情報220は、読み出し部として使用するプロセッサ数221と、プロセッサ情報222とを含む。加えて、読み出しに使用されるプロセッサの読み出し性能を示す、圧縮ブロックのサイズ別の読み出し速度リスト223を含む。本実施形態では、使用するプロセッサ数は1、使用するプロセッサはプロセッサA102である。また、圧縮ブロックのサイズ別の読み出し速度は、圧縮ブロックのサイズが1MB以上であれば、11.2MB/sである。同様に、1MBより小さく100KBまでであれば、11.1MB/s、100KBより小さく50KBまでであれば、10.7MB/s、50KBより小さく25KBまでであれば、10MB/sである。一般的に、圧縮ブロックのサイズが小さいほど、読み出し処理での手順処理時間や圧縮ブロックごとに存在する情報データのサイズ分、読み出し速度は遅くなる。
伸長情報230は、圧縮形式231と、伸長部として使用するプロセッサ数232を含む。加えて、伸長部として使用されるプロセッサごとに、プロセッサ情報と、プロセッサごとの伸長処理速度とをまとめた伸長性能情報233、234を含む。本実施形態では、圧縮形式231はAであり、使用するプロセッサ数232は2である。また、伸長部として使用される1つ目のプロセッサはプロセッサBであり、その伸長性能である伸長処理速度は8MB/sである。また、2つ目のプロセッサはプロセッサCであり、その伸長性能である伸長処理速度は8MB/sである。
図3は、本実施形態における圧縮前プログラムから圧縮後プログラムへの分割と、圧縮ブロックに含まれる情報を示す。加工データの元である圧縮前プログラム300は、分割判定情報に基づいて決定された分割数で分割される。ここでは、圧縮前プログラム300のサイズは20MBであり、n個のブロック301、302、303に分割されている。分割された各ブロックが圧縮されると、それぞれ圧縮ブロック311、312、313となる。全ての圧縮ブロックをまとめたものが圧縮後プログラム310であり、そのサイズは10MBである。
各圧縮ブロックは、圧縮ブロック320で示すように構成されている。圧縮ブロック320は、圧縮ブロックサイズ321と、圧縮ブロックを伸長する際に使用される伸長部の伸長プロセッサ情報322とを含む。なお、伸長部はプロセッサに限定されず、例えば、専用回路のハードウェアで構成されてもよい。したがって、伸長プロセッサ情報322もプロセッサの情報に限定されず、専用回路のハードウェア情報でもよい。加えて、圧縮ブロック320は、圧縮データ326の圧縮形式323、圧縮データ326の伸長後の展開先アドレス324、圧縮データ326のサイズである圧縮データサイズ325、伸長対象のデータである圧縮データ326を含む。圧縮ブロックサイズ321、伸長プロセッサ情報322、圧縮形式323、展開先アドレス324、圧縮データサイズ325は管理情報であり、圧縮ブロック情報と称する。なお、圧縮後プログラム310の最後の圧縮ブロック313は、先に説明した構成に加え、圧縮データ326の最後に圧縮後プログラム310の終端を示す終端情報327を含む。終端情報327は、圧縮後プログラム310の終端を識別できる固定値である。
次に、本実施形態において、電子機器100のデータ加工部110が、加工データの元である圧縮前プログラム300を分割して圧縮し、圧縮後プログラム310へ加工する処理を説明する。データ加工部には、プロセッサA102、プロセッサB103、またはプロセッサC104が使用される。また、分割と圧縮は、1つのプロセッサで行ってもよいし、複数のプロセッサで分担し、分割と圧縮を並列して行ってもよい。ここでは、データ加工部としてプロセッサA102が、圧縮前プログラム300の分割と圧縮を行うこととする。
プロセッサA102は、図3の圧縮前プログラム300のサイズが20MBであり、図2の分割判定情報200の圧縮率が50%であることから、圧縮後プログラム310のサイズが10MBになることが分かる。
圧縮前プログラム300を最も短い時間でRAM105に展開するためには、圧縮後プログラム310の読み出し時間と、読み出した圧縮後プログラム310の伸長時間との合計時間が、最も短くならなければならない。そうすることにより、電子機器100の起動時間を最も短縮させることができる。
図4は、本実施形態において、分割判定情報200に基づいて全圧縮ブロックの読み出しと伸長に要する時間を算出した結果400を示す図である。ここでは、データ加工部が、圧縮前プログラム300を異なる分割数で分割して圧縮した場合の複数のケースについて、それぞれ全圧縮ブロックの読み出しと伸長に要する時間を算出する。データ加工部は、算出した結果に基づいて、全圧縮ブロックの読み出しと伸長に要する時間が最も短くなる圧縮前プログラム300の分割数を決定する。
圧縮済みフラグ401は、圧縮前プログラム300を圧縮するかしないかを示す。「非」は、圧縮前プログラム300が非圧縮であることを表し、「済」は、圧縮前プログラム300が圧縮されることを表す。
1つの圧縮ブロックのサイズ402は、非圧縮の場合は圧縮前プログラム300のサイズを示し、圧縮の場合は圧縮後プログラム310における1つの圧縮ブロックのサイズを示す。また、分割を伴う圧縮の場合、1つの圧縮ブロックのサイズ402は、分割判定情報200に含まれる読み出し情報220の、圧縮ブロックのサイズ別読み出し速度リスト223に含まれる読み出し速度ごとのブロックサイズとなっている。なお、後述するように、ケース407、408はプログラムの分割を行わないケースであるため、それぞれ、圧縮前プログラム300及び圧縮後プログラム310そのもののサイズとなっている。
圧縮ブロック数403は、非圧縮(ケース407)の場合は分割を行わないため0であり、圧縮の場合は、圧縮後プログラムのサイズ(10MB)を1つの圧縮ブロックのサイズ402で分割した数となっている。
全圧縮ブロックの読み出し時間404は、全ての圧縮ブロックの読み出しに要する時間である。1つの圧縮ブロックの読み出し速度は圧縮ブロックのサイズに応じて異なるため、全圧縮ブロックの読み出し時間404も圧縮ブロックのサイズに応じて変化する。なお、非圧縮の場合は、圧縮前プログラムそのものを読み出すのに必要な時間である。
1つの圧縮ブロックの伸長時間405は、分割した1つの圧縮ブロックを1つの伸長部で伸長するのに要する時間である。したがって、1つの圧縮ブロックのサイズ402を1つの伸長部で伸長する際に要する時間となる。なお、非圧縮(ケース407)の場合は伸長を行わないため0となる。
全圧縮ブロックの読み出し伸長時間406は、図7を参照して後述するように、全圧縮ブロックの読み出し時間404と、1つの圧縮ブロックの伸長時間405の合計時間である。全圧縮ブロックの読み出し伸長時間406が最も短いものが、圧縮前プログラム300を最も短い時間でRAM105に展開することが可能なケースであり、電子機器100の起動時間が最も速いケースとなる。
ケース407は、非圧縮のケースであり、分割及び圧縮を行わずに圧縮前プログラム300をそのままフラッシュメモリ106に保持し、起動時に読み出すケースである。ケース407では、圧縮前プログラム300の分割及び圧縮を行わないため、1つの圧縮ブロックのサイズ402は20MBであり、圧縮ブロック数403は0である。全圧縮ブロックの読み出し時間404は、1つの圧縮ブロックのサイズ402の20MBを、圧縮ブロックサイズ別読み出し速度リスト223に含まれる圧縮ブロックサイズ〜1MBにおける11.2MB/sで除算した結果、1.786秒となる。1つの圧縮ブロックの伸長時間405は、0である。結果として、全圧縮ブロックの読み出し伸長時間406も1.786秒となる。
ケース408は、分割を行わずに圧縮を行うケースであり、1つの圧縮ブロックのサイズ402が圧縮後プログラム310そのもののサイズである10MBであり、圧縮ブロック数403は1である。全圧縮ブロックの読み出し時間404は、1つの圧縮ブロックのサイズ402の10MBを、圧縮ブロックサイズ別読み出し速度リスト223の圧縮ブロックサイズ〜1MBにおける11.2MB/sで除算した結果、0.893秒となる。1つの圧縮ブロックの伸長時間405は、1つの圧縮ブロックのサイズ402の10MBを、伸長性能情報233の伸長処理速度8MB/sで除算した結果、1.250秒となる。したがって、全圧縮ブロックの読み出し伸長時間406は、全圧縮ブロックの読み出し時間404と1つの圧縮ブロックの伸長時間405の合計値となり、2.143秒となる。
ケース409は、分割を行って圧縮を行うケースであり、1つの圧縮ブロックのサイズ402が1MBであり、圧縮後プログラム310のサイズである10MBを1MBで分割すると、圧縮ブロック数403は10となる。全圧縮ブロックの読み出し時間404は、圧縮ブロックサイズ別読み出し速度リスト223の圧縮ブロックサイズ〜1MBにおける11.2MB/sに基づいて算出すると、0.893秒となる。1つの圧縮ブロックの伸長時間405は、1つの圧縮ブロックのサイズ402の1MBを、伸長性能情報234の伸長処理速度8MB/sで除算した結果、0.125秒となる。全圧縮ブロックの読み出し伸長時間406は、全圧縮ブロックの読み出し時間404と1つの圧縮ブロックの伸長時間405の合計値となり、1.018秒となる。
以降、ケース410からケース412まで同様の計算を行い、それぞれのケースで全圧縮ブロック読み出し伸長時間406を算出する。結果として、全圧縮ブロックの読み出し伸長時間406は、ケース410において1つの圧縮ブロックのサイズ402が0.1MBである場合、0.914秒となる。ケース411において、1つの圧縮ブロックのサイズ402が0.05MBである場合、0.941秒となる。ケース412において、1つの圧縮ブロックのサイズ402が0.025MBである場合、1.003秒となる。
この結果400から、データ加工部は、全圧縮ブロック読み出し伸長時間406が最も短いのは、ケース410(0.914秒)であると決定することができる。ケース410において、1つの圧縮ブロックのサイズ402は0.1MBであり、圧縮ブロック数403は、100である。したがって、データ加工部(プロセッサA102)は、圧縮前プログラム300を100のブロックに分割し、分割したブロックを圧縮して圧縮データ326を生成する。また、データ加工部は、圧縮データ326に、図3を参照して説明した圧縮ブロック情報を付加して、圧縮ブロック320に加工する。本実施形態では、この際の伸長プロセッサ情報322は、奇数番目のブロックに対してプロセッサBを指定し、偶数番目のブロックに対してプロセッサCを指定する。データ加工部は、加工した圧縮ブロック320をまとめた圧縮後プログラム310を、フラッシュメモリ106に保持させる。
分割判定情報200が、複数の圧縮形式とそれに関する伸長情報を含む場合、各圧縮形式における全圧縮ブロックの読み出し伸長時間406を算出して比較し、時間が最も短くなるケースを選択するようにしてもよい。
同様に、複数の伸長部のそれぞれで伸長処理速度が異なる場合、伸長部ごとのブロックサイズと読み出し時間、伸長時間を比較して、時間が最も短くなるケースを選択するようにしてもよい。
図5は、本実施形態における圧縮前プログラムの分割及び圧縮処理のフローチャートを示す。フローチャートの各ステップは、電子機器100のデータ加工部110によって実行される。
ステップS501において、データ加工部は、図4を参照して上述したように、分割判定情報200に基づいて圧縮前プログラム300の分割及び圧縮方法を決定する。具体的には、分割及び圧縮方法として、圧縮前プログラム300の分割数、圧縮形式、及び圧縮データを伸長するための伸長部などを決定する。
ステップS502において、データ加工部は、決定した分割及び圧縮方法に従い、圧縮前プログラムを分割して圧縮し、1つ以上の圧縮データを生成する。
ステップS503において、データ加工部は、生成した1つ以上の圧縮データのそれぞれに管理情報である圧縮ブロック情報を付加して、圧縮ブロックに加工する。圧縮ブロック情報には、圧縮データを伸長するための伸長部の情報などが含まれる。
ステップS504において、データ加工部は、1つ以上の圧縮ブロックをまとめた圧縮後プログラム310を、不揮発性記憶部であるフラッシュメモリ106に記憶する。
以上説明したように、電子機器100のデータ加工部110は、加工データの元である圧縮前プログラム300を分割して圧縮し、圧縮後プログラム310へと加工する。フラッシュメモリ106に記憶された圧縮後プログラム310は、電子機器100の次の起動時にフラッシュメモリ106から読み出され、伸長されることで、圧縮前プログラム300となる。
次に、本実施形態において、電子機器100の読み出し部114及び1つ以上の伸長部115が、フラッシュメモリ106に保持されている圧縮後プログラム310を読み出し、伸長する処理について説明する。
図6は、本実施形態における圧縮後プログラムの読み出し及び伸長処理のフローチャートである。
ステップS601において、電子機器100は、電源が投入され、起動する際に、分割判定情報200に基づいて読み出し処理を行う読み出し部としてプロセッサA102を指定する。
ステップS602において、プロセッサA102は、DMAコントローラ107を制御して、圧縮後プログラム310の圧縮ブロック1をフラッシュメモリ106からRAM105へ読み出す。
ステップS603において、プロセッサA102は、圧縮ブロック1の圧縮ブロック情報の伸長プロセッサ情報がプロセッサBであるため、圧縮ブロック1の伸長部としてプロセッサB103を指定する。伸長部として指定されたプロセッサB103は、読み出された圧縮ブロック1の伸長処理を行う。プロセッサB103による伸長処理については後述する。
ステップS604において、プロセッサA102は、圧縮ブロック1の圧縮データ326に終端情報327が含まれているかどうかを判定する。圧縮ブロック1の圧縮データ326には終端情報327が含まれていないため、ステップS602に戻り、プロセッサA102は、次の圧縮ブロック2をフラッシュメモリ106からRAM105へ読み出す。ステップS603において、プロセッサA102は、圧縮ブロック2の圧縮ブロック情報の伸長プロセッサ情報はプロセッサCであるため、圧縮ブロック2の伸長部としてプロセッサC104を指定する。ステップS604において、プロセッサA102は、圧縮ブロック2の圧縮データ326に終端情報327が含まれているかどうか判定する。圧縮ブロック2の圧縮データ326には終端情報327が含まれないため、プロセッサA102は、ステップS602に戻り、次の圧縮ブロック3をフラッシュメモリ106からRAM105へ読み出す。このようにして、プロセッサA102は、圧縮データ326に含まれる終端情報327が検出されるまで、処理を繰り返す。
ステップS604において終端情報327が検出されると、プロセッサA102は、全ての圧縮ブロックをフラッシュメモリ106からRAM105へ読み出したと判断し、データの読み出しを完了する。圧縮後プログラム310の読み出し処理では、プロセッサA102とDMAコントローラ107のみがフラッシュメモリ106と接続しているバス101を占有するので、RAM105への読み出し時間が短縮される。
次いで、ステップS603において伸長部として指定されたプロセッサによる圧縮ブロックの伸長処理について説明する。
プロセッサB103は、プロセッサA102が圧縮ブロック1を読み出した後、RAM105に読み出された圧縮ブロック1を伸長する。プロセッサB103は、圧縮ブロック1の圧縮ブロック情報に従って、圧縮形式323で圧縮された圧縮データサイズ325の圧縮データ326を展開先アドレス324へ伸長する。伸長処理が完了すると、プロセッサB103は、プロセッサA102に伸長処理が完了したことを通知する。
同様に、プロセッサC104は、圧縮ブロック2を伸長する。このように、伸長部として指定された各プロセッサは、圧縮ブロックの伸長処理を他の圧縮ブロックの読み出し処理及び伸長処理と並行して行う。
ステップS605において、プロセッサA102は、全ての圧縮ブロックの伸長処理が完了した後、電子機器100を起動する。
以上説明したように、電子機器100の読み出し部114及び1つ以上の伸長部115が、フラッシュメモリに保持されている圧縮後プログラム310の読み出し及び伸長処理を行う。
図7は、本実施形態における圧縮後プログラムの読み出し及び伸長処理に要する時間を説明する図である。
読み出し時間701は、読み出し部であるプロセッサA102による1つの圧縮ブロックの読み出し時間である。伸長時間702は、伸長部であるプロセッサB103による1つの圧縮ブロックの伸長時間である。待ち時間703は、伸長部であるプロセッサB103が前の圧縮ブロックの伸長処理を完了した後、次の圧縮ブロックの伸長処理を開始するまでの待ち時間である。待ち時間703は、読み出し時間701×2−プロセッサBの圧縮ブロック伸長時間702で求めることができる。
伸長時間704は、伸長部であるプロセッサC104の1つの圧縮ブロックの伸長時間である。待ち時間705は、伸長部であるプロセッサC104が前の圧縮ブロックの伸長処理を完了した後、次の圧縮ブロックの伸長処理を開始するまでの待ち時間である。待ち時間705は、読み出し時間701×2−プロセッサCの圧縮ブロック伸長時間704で求めることができる。
全圧縮ブロックの読み出し時間706は、読み出し部であるプロセッサA102による全ての圧縮ブロックの読み出し時間であり、1つの圧縮ブロックの読み出し時間701×分割したブロック数で求めることができる。
全圧縮ブロックの読み出し伸長時間707は、全圧縮ブロックの読み出し時間706と、プロセッサC104での1つの圧縮ブロックの伸長時間704で決定される。
本実施形態では、図4のケース410によると、圧縮ブロックのサイズは0.1MBであり、1つの圧縮ブロックの読み出し時間701は、0.00901秒となる。プロセッサB103による1つの圧縮ブロックの伸長時間704は、0.013sとなり、プロセッサC104による1つの圧縮ブロックの伸長時間702も同じ時間となる。全圧縮ブロックの読み出し時間706は、0.00901秒×分割したブロック数100で求められ、0.901秒となる。したがって、全圧縮ブロックの読み出し伸長時間707は、0.901秒+0.013秒で求められ、0.914秒となる。
以上説明したように、圧縮前プログラムのサイズと分割判定情報から、圧縮後プログラムの読み出し及び伸長処理時間が最も短くなるように、圧縮前プログラムの分割数を決定して圧縮ブロックに加工し、不揮発性記憶部に保持することができる。本発明による電子機器は、起動時に不揮発性記憶部から圧縮ブロックを読み出して複数の伸長部で伸長することでプログラムの展開時間を短縮し、起動時間を速くすることができる。
(その他の実施形態)
本発明は、上述した実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (8)

  1. 記憶手段に保持されたデータを分割して圧縮することにより圧縮データを生成し、前記圧縮データを含む圧縮ブロックに加工するデータ加工手段であって、前記圧縮ブロックに前記圧縮データを伸長するための情報である圧縮ブロック情報を付加するデータ加工手段と、
    前記圧縮ブロックを読み出す読み出し手段であって、読み出した前記圧縮ブロックに付加された前記圧縮ブロック情報に基づいて、前記圧縮データを伸長する伸長手段を指定する読み出し手段と、
    前記読み出し手段が読み出した前記圧縮ブロックに含まれる前記圧縮データを、前記圧縮ブロック情報に基づいて伸長する1つ以上の伸長手段と
    を有し、
    前記データ加工手段は、前記読み出し手段の読み出し速度、前記1つ以上の伸長手段の伸長処理速度、及び前記データを圧縮する圧縮形式の圧縮率を含む分割判定情報に基づいて、前記データの分割数、圧縮形式、及び前記圧縮データの伸長手段を決定することを特徴とする電子機器。
  2. 前記データ加工手段は、前記分割判定情報に基づいて、前記読み出し手段による全ての前記圧縮ブロックの読み出し時間と、前記1つ以上の伸長手段による全ての前記圧縮ブロックに含まれる前記圧縮データの伸長時間との合計時間が最も短くなるように、前記データの分割数、圧縮形式、及び前記圧縮データごとの伸長手段を決定することを特徴とする請求項1に記載の電子機器。
  3. 前記圧縮ブロック情報は、前記圧縮ブロックのサイズ、前記圧縮データを伸長するために使用される伸長手段を指定する情報、前記圧縮データの圧縮形式、前記圧縮データの展開先アドレス、前記圧縮データのサイズを含むことを特徴とする請求項1または2に記載の電子機器。
  4. 前記データは、プログラムであることを特徴とする請求項1乃至3のいずれか1項に記載の電子機器。
  5. 前記プログラムは、起動プログラムであることを特徴とする請求項4に記載の電子機器。
  6. データを分割して圧縮することにより生成された圧縮データを含む圧縮ブロックであって、前記圧縮データを伸長するための情報である圧縮ブロック情報が付加された圧縮ブロックを保持する記憶手段と、
    前記圧縮ブロックを読み出す読み出し手段であって、読み出した前記圧縮ブロックに付加された前記圧縮ブロック情報に基づいて、前記圧縮データを伸長する伸長手段を指定する読み出し手段と、
    前記読み出し手段が読み出した前記圧縮ブロックに含まれる前記圧縮データを、前記圧縮ブロック情報に基づいて伸長する1つ以上の伸長手段と
    を有し、
    前記圧縮ブロックは、前記読み出し手段の読み出し速度、前記1つ以上の伸長手段の伸長処理速度、及び前記データを圧縮する圧縮形式の圧縮率を含む分割判定情報に基づいて、前記データの分割数、圧縮形式、及び前記圧縮データの伸長手段が決定されることを特徴とする電子機器。
  7. 電子機器によって実行される方法であって、
    記憶手段に保持されたデータを分割して圧縮することにより圧縮データを生成し、前記圧縮データを含む圧縮ブロックに加工するデータ加工工程であって、前記圧縮ブロックに前記圧縮データを伸長するための情報である圧縮ブロック情報を付加するデータ加工工程と、
    読み出し手段によって前記圧縮ブロックを読み出す読み出し工程であって、読み出した前記圧縮ブロックに付加された前記圧縮ブロック情報に基づいて、前記圧縮データを伸長する伸長手段を指定する読み出し工程と、
    前記読み出し工程において読み出した前記圧縮ブロックに含まれる前記圧縮データを、前記圧縮ブロック情報に基づいて1つ以上の伸長手段によって伸長する伸長工程と
    を含み、
    前記データ加工工程は、前記読み出し手段の読み出し速度、前記1つ以上の伸長手段の伸長処理速度、及び前記データを圧縮する圧縮形式の圧縮率を含む分割判定情報に基づいて、前記データの分割数、圧縮形式、及び前記圧縮データの伸長手段を決定する工程を含むことを特徴とする方法。
  8. コンピュータを、請求項1乃至6のいずれか1項に記載の電子機器として機能させるためのプログラム。
JP2017086224A 2017-04-25 2017-04-25 電子機器、方法、及びプログラム Pending JP2018185615A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017086224A JP2018185615A (ja) 2017-04-25 2017-04-25 電子機器、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017086224A JP2018185615A (ja) 2017-04-25 2017-04-25 電子機器、方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2018185615A true JP2018185615A (ja) 2018-11-22

Family

ID=64357043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017086224A Pending JP2018185615A (ja) 2017-04-25 2017-04-25 電子機器、方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2018185615A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254224A (zh) * 2021-07-15 2021-08-13 中电金信软件有限公司 计算资源扩容方法、装置、电子设备和可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254224A (zh) * 2021-07-15 2021-08-13 中电金信软件有限公司 计算资源扩容方法、装置、电子设备和可读存储介质

Similar Documents

Publication Publication Date Title
JP6152786B2 (ja) 通信制御装置、情報処理装置、並列計算機システム、制御プログラム、及び並列計算機システムの制御方法
US9043806B2 (en) Information processing device and task switching method
JPWO2009022531A1 (ja) データ圧縮伸張方法
TW201906326A (zh) 儲存驅動器及其上的壓縮系統及壓縮其上的資料的方法
JP5706754B2 (ja) データ処理装置及びデータ処理方法
US8300704B2 (en) Picture processing via a shared decoded picture pool
JP2010061518A (ja) データ保存装置及びデータ保存方法並びにプログラム
CN109918381B (zh) 用于存储数据的方法和装置
JP2017010255A (ja) 画像認識装置および画像認識方法
CN109298891B (zh) 系统启动方法和装置、系统编译方法和装置
JP2018185615A (ja) 電子機器、方法、及びプログラム
US8688947B1 (en) Aligned data access
JP2008278258A (ja) データ展開装置及びデータ展開方法
CN110060196B (zh) 图像处理方法及装置
JP2017192080A (ja) 画像圧縮装置、画像復号装置、画像圧縮方法及び画像圧縮プログラム
CN111639055B (zh) 差分包计算方法、装置、设备及存储介质
US9496895B2 (en) Compression method and decompression method
CN105469433B (zh) 一种图片压缩方法及其设备
CN113641643A (zh) 文件写入方法及装置
CN109727183B (zh) 一种图形渲染缓冲区压缩表的调度方法及装置
CN116166660B (zh) 压缩笛卡尔积数据组合的方法及装置
JP2006330124A (ja) データ処理装置
CN116048816B (zh) 数据请求处理方法、装置、电子设备和存储介质
CN115469811A (zh) 数据存储方法、装置、设备、存储介质和程序产品
JP2008252163A (ja) データ圧縮装置、データ伸張装置、及び情報処理装置