JP5955618B2 - Electronics - Google Patents

Electronics Download PDF

Info

Publication number
JP5955618B2
JP5955618B2 JP2012094554A JP2012094554A JP5955618B2 JP 5955618 B2 JP5955618 B2 JP 5955618B2 JP 2012094554 A JP2012094554 A JP 2012094554A JP 2012094554 A JP2012094554 A JP 2012094554A JP 5955618 B2 JP5955618 B2 JP 5955618B2
Authority
JP
Japan
Prior art keywords
compressed data
ram
data
program
stored
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.)
Expired - Fee Related
Application number
JP2012094554A
Other languages
Japanese (ja)
Other versions
JP2013222372A (en
Inventor
俊幸 大森
俊幸 大森
正人 瀧澤
正人 瀧澤
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.)
Alpine Electronics Inc
Original Assignee
Alpine Electronics 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 Alpine Electronics Inc filed Critical Alpine Electronics Inc
Priority to JP2012094554A priority Critical patent/JP5955618B2/en
Publication of JP2013222372A publication Critical patent/JP2013222372A/en
Application granted granted Critical
Publication of JP5955618B2 publication Critical patent/JP5955618B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、電子機器の電源投入時に行われるプログラムの起動処理に関するものである。   The present invention relates to a program activation process performed when a power source of an electronic device is turned on.

電子機器の電源投入時に行われるプログラムの起動処理に関する技術としては、電子機器のプログラムを圧縮して不揮発性メモリに格納しておき、電子機器の電源投入時に、CPUが、不揮発性メモリに圧縮されて格納されているプログラムの伸張とRAMへの格納を行った後、当該RAMへの格納を完了したプログラムの実行を開始する技術が知られている(たとえば、特許文献1、2)。   As a technique related to program startup processing performed when the electronic device is turned on, the electronic device program is compressed and stored in a nonvolatile memory, and the CPU is compressed into the nonvolatile memory when the electronic device is turned on. There is known a technique of starting the execution of a program that has been stored in the RAM after the program stored in the RAM is expanded and stored in the RAM (for example, Patent Documents 1 and 2).

特開2005-178169号公報JP 2005-178169 A 特開平5-217005号公報JP-A-5-217005

前述したCPUが不揮発性メモリに圧縮されて格納されているプログラムの伸張とRAMへの格納を行う技術によれば、プログラムのサイズが大きくなると、不揮発性メモリに格納されている圧縮されたプログラムの読み出しや伸張の処理に長時間を要し、電源投入後の電子機器の起動完了までの時間が長大化してしまうこととなる。   According to the above-described technology in which the CPU decompresses a program stored in the nonvolatile memory and stores it in the RAM, when the program size increases, the compressed program stored in the nonvolatile memory A long time is required for the reading and decompression processing, and the time until the start-up of the electronic device after the power is turned on becomes long.

そこで、本発明は、電源投入時に、不揮発性メモリに格納されている圧縮されたプログラムの伸張とRAMへの格納を行うと共に、当該RAMへの格納を完了したプログラムの実行を開始する電子機器において、電源投入後の電子機器の起動完了までの時間を短縮することを課題とする。   Accordingly, the present invention provides an electronic device that performs decompression of a compressed program stored in a nonvolatile memory and storage in a RAM at the time of power-on, and starts execution of the program that has been stored in the RAM. It is an object of the present invention to shorten the time until the start-up of the electronic device after the power is turned on.

前記課題達成のために、本発明は、不揮発性メモリとRAMとCPUとを備え、電源投入時に、不揮発性メモリに圧縮されて格納されているプログラムをRAMにロードし実行する電子機器として、前記不揮発性メモリから前記RAMへのDMA転送を行うDMAコントローラを備えた電子機器を提供する。ただし、前記不揮発性メモリには、前記プログラムを分割した複数の分割データの各々を圧縮して得られる複数の圧縮データが格納されており、前記CPUは、当該電子機器に電源が投入されたならば、前記DMAコントローラに、前記不揮発性メモリに格納されている前記各圧縮データを、順次、前記RAMのワーク領域にDMA転送させながら、前記RAMのワーク領域へのDMA転送が完了した前記圧縮データの伸張と前記RAMのプログラム領域への格納を行い、全ての圧縮データの伸張と前記RAMのプログラム領域への格納が完了したならば、当該RAMのプログラム領域に格納された前記プログラムの実行を開始するブートローダー処理を実行するものである。   In order to achieve the above object, the present invention provides a nonvolatile memory, a RAM, and a CPU, and an electronic device that loads and executes a program stored in the nonvolatile memory when the power is turned on. Provided is an electronic device including a DMA controller that performs DMA transfer from a nonvolatile memory to the RAM. However, the non-volatile memory stores a plurality of compressed data obtained by compressing each of a plurality of divided data obtained by dividing the program, and the CPU is configured so that the electronic device is powered on. For example, the compressed data in which the DMA transfer to the RAM work area is completed while the DMA controller sequentially transfers the compressed data stored in the nonvolatile memory to the RAM work area. Is decompressed and stored in the program area of the RAM, and when decompression of all compressed data and storage in the program area of the RAM are completed, execution of the program stored in the program area of the RAM is started. The boot loader process is executed.

ここで、前記圧縮データのデータサイズは、当該圧縮データの前記不揮発性メモリから前記RAMのワーク領域へのDMA転送に要する時間よりも、前記RAMのワーク領域に格納された当該圧縮データの伸張と前記RAMのプログラム領域への格納に要する時間が小さくなるように設定することが好ましい。また、この場合には、前記不揮発性メモリに格納されている圧縮データの数をnとして、前記不揮発性メモリには1からn-1番目までのデータサイズLのn-1個の圧縮データと、データサイズL以下のデータサイズのn番目の圧縮データが格納されており、前記データサイズLは、全ての圧縮データの前記不揮発性メモリから前記RAMのワーク領域へのDMA転送に要する時間と、前記RAMのワーク領域に格納されたn番目の圧縮データの伸張と前記RAMのプログラム領域への格納に要する時間との和が最小となるように設定することが好ましい。   Here, the data size of the compressed data is determined by the decompression of the compressed data stored in the RAM work area, rather than the time required for DMA transfer of the compressed data from the nonvolatile memory to the RAM work area. It is preferable to set so that the time required for storage in the program area of the RAM is reduced. In this case, n is the number of compressed data stored in the nonvolatile memory, and n−1 compressed data having a data size L from 1 to n−1 are stored in the nonvolatile memory. N-th compressed data having a data size equal to or smaller than the data size L is stored, and the data size L is a time required for DMA transfer of all the compressed data from the nonvolatile memory to the work area of the RAM; It is preferable to set so that the sum of the expansion of the nth compressed data stored in the work area of the RAM and the time required for storage in the program area of the RAM is minimized.

なお、前記不揮発性メモリはフラッシュメモリであってよく、前記RAMはSDRAMであって良い。
このような電子機器によれば、複数の圧縮データは、順次、不揮発性メモリからRAMのワーク領域にDMA転送される。一方、RAMのワーク領域にDMA転送された圧縮データの多くは、RAMのワーク領域への格納が完了されしだい、伸張とRAMのプログラム領域の格納が、他の圧縮データのDMA転送と並行して行われることになる。
The nonvolatile memory may be a flash memory, and the RAM may be an SDRAM.
According to such an electronic device, the plurality of compressed data is sequentially DMA-transferred from the nonvolatile memory to the work area of the RAM. On the other hand, most of the compressed data DMA-transferred to the RAM work area is decompressed and stored in the RAM program area in parallel with DMA transfer of other compressed data as soon as the storage to the RAM work area is completed. Will be done.

よって、RAMのプログラム領域へのプログラムのロードに要する時間が短縮され、電源投入後の電子機器の起動を迅速に行うことができるようになる。   Accordingly, the time required for loading the program into the program area of the RAM is shortened, and the electronic device can be quickly activated after the power is turned on.

以上のように、本発明によれば、電源投入時に、不揮発性メモリに格納されている圧縮されたプログラムの伸張とRAMへの格納を行うと共に、当該RAMへの格納を完了したプログラムの実行を開始する電子機器において、電源投入後の電子機器の起動完了までの時間を短縮することができる。   As described above, according to the present invention, when the power is turned on, the compressed program stored in the nonvolatile memory is expanded and stored in the RAM, and the program that has been stored in the RAM is executed. In the electronic device to be started, it is possible to reduce the time until the start-up of the electronic device after the power is turned on.

本発明の実施形態に係る電子機器の構成を示すブロック図である。It is a block diagram which shows the structure of the electronic device which concerns on embodiment of this invention. 本発明の実施形態に係る電子機器のフラッシュメモリとSDRAMの記憶空間を示す図である。It is a figure which shows the storage space of the flash memory and SDRAM of the electronic device which concerns on embodiment of this invention. 本発明の実施形態に係るブートローダー処理を示すフローチャートである。It is a flowchart which shows the boot loader process which concerns on embodiment of this invention. 本発明の実施形態に係るカーネルプログラムのロードシーケンスを示すタイミングチャートである。It is a timing chart which shows the load sequence of the kernel program which concerns on embodiment of this invention.

以下、本発明の実施形態について説明する。
図1に、本実施形態に係る電子機器の構成を示す。
図示するように、本実施形態に係る電子機器は、コンピュータとしての基本構成を備えている。
すなわち、電子機器は、高速バス1で接続されたCPU2、DMAC3(DMAコントローラ3)とメモリコントローラ4、グラフィックコントローラ5、I/Oコントローラ6とを有している。
また、電子機器は、メモリコントローラ4によってリード/ライトや高速バス1との間の入出力が制御されるSDRAM7とROM8とを備えており、CPU2やDMAC3は、メモリコントローラ4を介して、SDRAM7やROM8との間の入出力を行うことができる。ここで、ROM8には、電子機器の電源投入時にCPU2が最初に実行する初期プログラムが格納されている。
Hereinafter, embodiments of the present invention will be described.
FIG. 1 shows a configuration of an electronic apparatus according to this embodiment.
As illustrated, the electronic apparatus according to the present embodiment has a basic configuration as a computer.
That is, the electronic device has a CPU 2, a DMAC 3 (DMA controller 3), a memory controller 4, a graphic controller 5, and an I / O controller 6 connected by a high-speed bus 1.
Further, the electronic device includes an SDRAM 7 and a ROM 8 in which read / write and input / output with the high-speed bus 1 are controlled by the memory controller 4. The CPU 2 and the DMAC 3 are connected to the SDRAM 7 and the ROM 7 via the memory controller 4. Input / output with the ROM 8 can be performed. Here, the ROM 8 stores an initial program that the CPU 2 executes first when the electronic device is powered on.

また、電子機器は、グラフィックコントローラ5による表示出力が行われるディスプレイ9と備えており、CPU2は、グラフィックコントローラ5を介して、ディスプレイ9の表示を制御することができる。
また、電子機器は、I/Oコントローラ6に接続したフラッシュメモリ10と入力装置11とHDD12とその他の周辺装置13を備えており、CPU2やDMAC3は、I/Oコントローラ6を介して、フラッシュメモリ10や入力装置11やHDD12やその他の周辺装置13との間の入出力を行うことができる。
Further, the electronic device includes a display 9 on which display output is performed by the graphic controller 5, and the CPU 2 can control display on the display 9 via the graphic controller 5.
The electronic device includes a flash memory 10 connected to the I / O controller 6, an input device 11, an HDD 12, and other peripheral devices 13. The CPU 2 and the DMAC 3 are connected to the flash memory via the I / O controller 6. 10, input / output device 11, HDD 12, and other peripheral devices 13.

そして、DMAC3は、CPU2の要求に応えて、SDRAM7やフラッシュメモリ10やHDD12などの装置相互間の、CPU2を介さないデータ転送であるダイレクトメモリアクセス転送を行う。
次に、フラッシュメモリ10の記憶データについて説明する。
図2bに示すように、フラッシュメモリ10には先頭に配置されたブートローダープログラムと、複数の圧縮データ#1-#nが格納されている。
圧縮データ#1-#nの各々は、図2aに示す電子機器のOSまたは基本プログラムのコア部分を形成するカーネルプログラムを分割した複数の分割データをLZFなどの所定の圧縮アルゴリズムで圧縮したデータである。
すなわち、たとえば、カーネルプログラムを分割した複数の分割データのうちの1番目の分割データ#1を圧縮したデータが圧縮データ#1となり、カーネルプログラムを分割した複数の分割データのうちの2番目の分割データ#2を圧縮したデータが圧縮データ#2となり、以下、同様に、カーネルプログラムを分割した複数の分割データのうちのn番目の分割データnを圧縮したデータが圧縮データ#nとなる。
In response to the request from the CPU 2, the DMAC 3 performs direct memory access transfer, which is data transfer between the devices such as the SDRAM 7, the flash memory 10, and the HDD 12 without using the CPU 2.
Next, data stored in the flash memory 10 will be described.
As shown in FIG. 2b, the flash memory 10 stores a boot loader program arranged at the head and a plurality of compressed data # 1- # n.
Each of the compressed data # 1 to #n is data obtained by compressing a plurality of divided data obtained by dividing the OS or the kernel program forming the core part of the basic program shown in FIG. 2a with a predetermined compression algorithm such as LZF. is there.
That is, for example, data obtained by compressing the first divided data # 1 among the plurality of divided data obtained by dividing the kernel program becomes the compressed data # 1, and the second divided data among the plurality of divided data obtained by dividing the kernel program. Data obtained by compressing data # 2 becomes compressed data # 2, and similarly, data obtained by compressing n-th divided data n among a plurality of divided data obtained by dividing the kernel program becomes compressed data #n.

ここで、カーネルプログラムの分割データへの分割は、所定データサイズLを設定し、圧縮データの数をnとして、#1から#n-1までのn-1個のデータサイズLの圧縮データと、#nのデータサイズが所定データサイズL以下の圧縮データが得られるように行う。すなわち、たとえば、近似的には、圧縮アルゴリズのデータサイズDのデータに対する平均的な圧縮率がkであれば、D×kが最もLに近くなるDの値をDsとする。そして、データサイズDs毎に、カーネルプログラムのデータを、残りデータがデータサイズDs以下となるまで先頭より順次抽出して分割データ#1-#(n-1)とした上で、残ったデータサイズDs未満のデータを最後の分割データ#nとし、各分割データ#1-#nを圧縮して圧縮データ#1-#nを得るようにすればよい。   Here, for dividing the kernel program into divided data, a predetermined data size L is set, the number of compressed data is n, and n−1 pieces of compressed data of data size L from # 1 to # n−1 are , #N is performed so that compressed data having a data size L or less is obtained. That is, for example, approximately, if the average compression rate for data of the data size D of the compression algorithm is k, the value of D where D × k is closest to L is Ds. For each data size Ds, the kernel program data is sequentially extracted from the head until the remaining data becomes equal to or smaller than the data size Ds to obtain divided data # 1-# (n-1), and then the remaining data size Data less than Ds may be used as the last divided data #n, and each divided data # 1- # n may be compressed to obtain compressed data # 1- # n.

ここで、所定データサイズLについては後述する。
次に、このような電子機器の電源投入時に行われるブートローダー処理について説明する。
ここで、電子機器に電源が投入されると、CPU2は、 ROM8に記憶されている初期プログラムを実行し、フラッシュメモリ10の先頭に格納されているブートローダープログラムをSDRAM7の所定領域に転送し、SDRAM7の所定領域に転送したブートローダープログラムの実行を開始する。
Here, the predetermined data size L will be described later.
Next, boot loader processing that is performed when such an electronic device is powered on will be described.
Here, when power is supplied to the electronic device, the CPU 2 executes the initial program stored in the ROM 8, transfers the boot loader program stored at the head of the flash memory 10 to a predetermined area of the SDRAM 7, Execution of the boot loader program transferred to the predetermined area of the SDRAM 7 is started.

そして、このブートローダープログラムの実行により実現される処理がブートローダー処理である。
図3に、このブートローダー処理の手順を示す。
なお、図2に示すように、SDRAM7の記憶空間には、プログラム領域とワーク領域とが、相互に重複しないように予め定義されている。
さて、図3に示すように、ブートローダー処理では、フラッシュメモリ10に格納されている先頭の圧縮データ#1のフラッシュメモリ10からSDRAM7のワーク領域へのDMA転送をDMAC3に要求する(ステップ302、304)。そして、以降、指示した圧縮データ#iのDMA転送の完了の報告をDMAC3から通知されたならば(ステップ306)、次の圧縮データ#(i+1)のフラッシュメモリ10からSDRAM7のワーク領域へのDMA転送をDMAC3に要求し(ステップ310)、図2のs2で示すように、SDRAM7のワーク領域上にDMA転送された圧縮データ#iを読み出して伸張し、SDRAM7のプログラム領域に追加格納する(ステップ312)処理を、最後の圧縮データ#nのDMA転送の完了の報告をDMAC3から通知されるまで繰り返す(ステップ308、314)。
ここで、DMAC3は、圧縮データ#iのフラッシュメモリ10からSDRAM7のワーク領域へのDMA転送を要求されたならば、図2s1に示すようにフラッシュメモリ10の圧縮データ#iをSDRAM7のワーク領域へDMA転送し、DMA転送の完了の報告をCPU2に行う。
A process realized by executing this boot loader program is a boot loader process.
FIG. 3 shows the boot loader processing procedure.
As shown in FIG. 2, in the storage space of the SDRAM 7, a program area and a work area are defined in advance so as not to overlap each other.
As shown in FIG. 3, in the boot loader process, DMAC 3 is requested to perform DMA transfer from the flash memory 10 of the first compressed data # 1 stored in the flash memory 10 to the work area of the SDRAM 7 (step 302, 304). Thereafter, when a DMAC3 report of completion of DMA transfer of the designated compressed data #i is notified (step 306), the flash memory 10 of the next compressed data # (i + 1) is transferred to the work area of the SDRAM 7. DMAC3 is requested to DMAC3 (step 310), and as shown by s2 in FIG. 2, the DMA-transferred compressed data #i is read and expanded on the work area of SDRAM7, and additionally stored in the program area of SDRAM7. (Step 312) The processing is repeated until the DMAC 3 notifies the completion of DMA transfer of the last compressed data #n (Steps 308 and 314).
If DMAC 3 is requested to perform DMA transfer of the compressed data #i from the flash memory 10 to the work area of the SDRAM 7, the compressed data #i of the flash memory 10 is transferred to the work area of the SDRAM 7 as shown in FIG. The DMA transfer is performed, and the completion of the DMA transfer is reported to the CPU 2.

そして、最後の圧縮データ#nのDMA転送の完了の報告をDMAC3から通知されたならば(ステップ308)、DMA転送の完了が報告されたSDRAM7のワーク領域上の圧縮データ#nを読み出して伸張し、SDRAM7のプログラム領域に追加格納する(ステップ316)。   If the DMAC 3 is notified of the completion of the DMA transfer of the last compressed data #n (step 308), the compressed data #n on the work area of the SDRAM 7 in which the completion of the DMA transfer is reported is read and decompressed. Then, it is additionally stored in the program area of the SDRAM 7 (step 316).

そして、CPU2が実行するプログラムを、SDRAM7上のカーネルプログラムに切り替えることによりカーネルプログラムを起動し(ステップ318)処理を終了する。
なお、上述した圧縮データの所定データサイズLは、一つの圧縮データのフラッシュメモリ10からSDRAM7へのDMA転送に要する時間よりも、一つの圧縮データをSDRAM7より読み出して伸張しSDRAM7に格納する処理に要する時間が短くなるように設定されている。
以上、ブートローダー処理について説明した。
ところで、以上のブートローダー処理は、DMAC3が、DMAC3が備えるキューに格納されたDMA転送要求を逐次的に実行するように構成されている場合には、フラッシュメモリ10に格納されている先頭の圧縮データより、フラッシュメモリ10に格納されている最後の圧縮データまで各圧縮データのDMA転送要求をDMAC3が備えるキューにキューインし、以降、DMAC3からDMA転送の完了が報告されたSDRAM7のワーク領域上の圧縮データを読み出して伸張し、SDRAM7のプログラム領域に追加格納する処理を行いつつ、全ての圧縮データの伸張とSDRAM7のプログラム領域への格納が完了したならば、SDRAM7上のカーネルプログラムを起動するものとしてもよい。
Then, the kernel program is started by switching the program executed by the CPU 2 to the kernel program on the SDRAM 7 (step 318), and the process is terminated.
The predetermined data size L of the compressed data described above is a process of reading one compressed data from the SDRAM 7, decompressing it, and storing it in the SDRAM 7 than the time required for DMA transfer of one compressed data from the flash memory 10 to the SDRAM 7. The time required is set to be short.
The boot loader process has been described above.
By the way, in the boot loader process described above, when the DMAC 3 is configured to sequentially execute the DMA transfer requests stored in the queue provided in the DMAC 3, the compression of the head stored in the flash memory 10 is performed. From the data, the DMA transfer request of each compressed data is queued in the queue provided in the DMAC 3 up to the last compressed data stored in the flash memory 10, and thereafter, on the work area of the SDRAM 7 in which the completion of the DMA transfer is reported from the DMAC 3 When the compressed data is read out, decompressed, and additionally stored in the program area of the SDRAM 7 while all the compressed data is decompressed and stored in the program area of the SDRAM 7, the kernel program on the SDRAM 7 is started. It may be a thing.

さて、このようなブートローダー処理によれば、図4aに示すように複数の圧縮データ#1-#nは、順次、DMAC3でフラッシュメモリ10からSDRAM7のワーク領域にDMA転送される。一方、最後の圧縮データ#nを除き、SDRAM7のワーク領域にDMA転送された圧縮データ#iは、SDRAM7のワーク領域への格納が完了されしだい、伸張とSDRAM7のプログラム領域の格納が、次の、圧縮データ#(i+1)のDMA転送と並行して行われることになる。   Now, according to such a boot loader process, as shown in FIG. 4a, a plurality of compressed data # 1- # n are sequentially DMA-transferred from the flash memory 10 to the work area of the SDRAM 7 by the DMAC 3. On the other hand, with the exception of the last compressed data #n, the compressed data #i DMA-transferred to the work area of the SDRAM 7 is decompressed and stored in the program area of the SDRAM 7 as soon as the storage to the work area of the SDRAM 7 is completed. This is performed in parallel with the DMA transfer of the compressed data # (i + 1).

よって、プログラム領域へのカーネルプログラムの格納に要する時間Ttotalは、全ての圧縮データをフラッシュメモリ10からSDRAM7のワーク領域にDMA転送するのに要する時間T1と、最後の圧縮データ#nをSDRAM7のワーク領域から読み出して伸張しプログラム領域に格納するのに要する時間T2の和となる。   Therefore, the time Ttotal required for storing the kernel program in the program area is the time T1 required for DMA transfer of all the compressed data from the flash memory 10 to the work area of the SDRAM 7, and the last compressed data #n is the work of the SDRAM 7. This is the sum of the time T2 required to read out from the area, expand it, and store it in the program area.

一方、カーネルプログラムの全体を圧縮してフラッシュメモリ10に格納した場合を比較例とすると、当該比較例におけるプログラム領域へのカーネルプログラムの格納に要する時間Trtotalは、図4bに示すように、カーネルプログラムの全体を圧縮したデータのフラッシュメモリ10からSDRAM7のワーク領域にDMA転送するのに要する時間Tr1と、プログラムの全体を圧縮したデータをSDRAM7のワーク領域から読み出して伸張しプログラム領域に格納するのに要する時間Tr2の和となる。ここで、比較例のカーネルプログラムの全体を圧縮したデータのデータサイズと、本実施形態の全ての圧縮データのデータサイズの和とは、多少異なるものの大きくは異ならないことが期待できるので、比較例Tr1と本実施形態の時間T1とには大差ないものとなる。一方、比較例のカーネルプログラムの全体を圧縮したデータのデータサイズと、本実施形態の最後の圧縮データ#nとは大きく異なるので、比較例の時間Tr2は本実施形態の時間T2よりはるかに大きくなる。   On the other hand, when the entire kernel program is compressed and stored in the flash memory 10 as a comparative example, the time Trtotal required to store the kernel program in the program area in the comparative example is as shown in FIG. The time Tr1 required for DMA transfer of the compressed data from the flash memory 10 to the work area of the SDRAM 7 and the compressed data of the entire program are read out from the work area of the SDRAM 7, decompressed and stored in the program area. This is the sum of the required time Tr2. Here, it can be expected that the data size of the data obtained by compressing the entire kernel program of the comparative example and the sum of the data sizes of all the compressed data of the present embodiment are slightly different but not greatly different. There is not much difference between Tr1 and time T1 in the present embodiment. On the other hand, since the data size of the data obtained by compressing the entire kernel program of the comparative example and the last compressed data #n of the present embodiment are significantly different, the time Tr2 of the comparative example is much larger than the time T2 of the present embodiment. Become.

よって、本実施形態によれば、プログラム領域へのカーネルプログラムの格納に要する時間Ttotalを大幅に短縮することができる。
以下、上述した圧縮データの所定のデータサイズLについて説明する。
このデータサイズLは、上述のように、一つのデータサイズLの圧縮データのフラッシュメモリ10からSDRAM7へのDMA転送に要する時間よりも、一つの圧縮データをSDRAM7より読み出して伸張しSDRAM7に格納する処理に要する時間が短くなることを前提条件として、図4aに示したプログラム領域へのカーネルプログラムの格納に要する時間Ttotalが最小となるように設定する。
Therefore, according to the present embodiment, the time Ttotal required to store the kernel program in the program area can be greatly shortened.
Hereinafter, the predetermined data size L of the compressed data described above will be described.
As described above, this data size L is read from the SDRAM 7, decompressed and stored in the SDRAM 7, as compared with the time required for DMA transfer of the compressed data of one data size L from the flash memory 10 to the SDRAM 7. Assuming that the time required for processing is shortened, the time Ttotal required for storing the kernel program in the program area shown in FIG. 4A is set to be minimum.

すなわち、全ての圧縮データのデータサイズの和をLtotalとして、Ltotalのデータのフラッシュメモリ10からSDRAM7へのDMA転送に要する時間を近似的に図4aの時間T1の推定値とする。ここで、全ての圧縮データのデータサイズの和をLtotalは、カーネルプログラムのデータサイズの他、圧縮アルゴリズムに依存して圧縮データの標準のデータサイズとするデータサイズLによっても変化する。   That is, the sum of the data sizes of all the compressed data is Ltotal, and the time required for DMA transfer of the Ltotal data from the flash memory 10 to the SDRAM 7 is approximately set as an estimated value of the time T1 in FIG. 4a. Here, Ltotal, which is the sum of the data sizes of all the compressed data, varies depending on the data size L, which is the standard data size of the compressed data, depending on the compression algorithm, in addition to the data size of the kernel program.

また、データサイズLの圧縮データをSDRAM7のワーク領域から読み出して伸張しプログラム領域に格納するのに要する時間を、図4aの時間T2の推定値とする。
そして、時間T1の推定値と時間T2の推定値の和を、図4aに示したプログラム領域へのカーネルプログラムの格納に要する時間Ttotalの推定値とし、上記前提条件を満たしつつ、時間Ttotalの推定値を最小とするデータサイズLを、求めるデータサイズLとする。
Further, the time required to read out the compressed data of the data size L from the work area of the SDRAM 7 and store it in the program area is assumed to be an estimated value of the time T2 in FIG. 4a.
Then, the sum of the estimated value of time T1 and the estimated value of time T2 is used as the estimated value of time Ttotal required to store the kernel program in the program area shown in FIG. 4a, and the estimated time Ttotal is satisfied while satisfying the above preconditions. The data size L that minimizes the value is the data size L to be obtained.

1…高速バス、2…CPU、3…DMAC、4…メモリコントローラ、5…4グラフィックコントローラ、6…I/Oコントローラ、7…SDRAM、8…ROM、9…ディスプレイ、10…フラッシュメモリ、11…入力装置、12…HDD、13…周辺装置。   DESCRIPTION OF SYMBOLS 1 ... High-speed bus, 2 ... CPU, 3 ... DMAC, 4 ... Memory controller, 5 ... 4 Graphic controller, 6 ... I / O controller, 7 ... SDRAM, 8 ... ROM, 9 ... Display, 10 ... Flash memory, 11 ... Input device, 12... HDD, 13... Peripheral device.

Claims (2)

不揮発性メモリとRAMとCPUとを備え、電源投入時に、不揮発性メモリに圧縮されて格納されているプログラムをRAMにロードし実行する電子機器であって、
前記不揮発性メモリから前記RAMへのDMA転送を行うDMAコントローラを備え、
前記不揮発性メモリには、前記プログラムを分割した複数の分割データの各々を圧縮して得られる複数の圧縮データが格納されており、
前記CPUは、当該電子機器に電源が投入されたならば、前記DMAコントローラに、前記不揮発性メモリに格納されている前記各圧縮データを、順次、前記RAMのワーク領域にDMA転送させながら、前記RAMのワーク領域へのDMA転送が完了した前記圧縮データの伸張と前記RAMのプログラム領域への格納を行い、全ての圧縮データの伸張と前記RAMのプログラム領域への格納が完了したならば、当該RAMのプログラム領域に格納された前記プログラムの実行を開始するブートローダー処理を実行し、
前記圧縮データのデータサイズは、当該圧縮データの前記不揮発性メモリから前記RAMのワーク領域へのDMA転送に要する時間よりも、前記RAMのワーク領域に格納された当該圧縮データの伸張と前記RAMのプログラム領域への格納に要する時間が小さくなるように設定されており、
前記不揮発性メモリに格納されている圧縮データの数をnとして、前記不揮発性メモリには1からn-1番目までのデータサイズLのn-1個の圧縮データと、データサイズL以下のデータサイズのn番目の圧縮データが格納されており、前記データサイズLは、全ての圧縮データの前記不揮発性メモリから前記RAMのワーク領域へのDMA転送に要する時間と、前記RAMのワーク領域に格納されたn番目の圧縮データの伸張と前記RAMのプログラム領域への格納に要する時間との和が最小となるように設定されていることを特徴とする電子機器。
An electronic device that includes a nonvolatile memory, a RAM, and a CPU, and loads and executes a program compressed and stored in the nonvolatile memory when the power is turned on,
A DMA controller for performing DMA transfer from the nonvolatile memory to the RAM;
The nonvolatile memory stores a plurality of compressed data obtained by compressing each of a plurality of divided data obtained by dividing the program,
When the electronic device is powered on, the CPU causes the DMA controller to sequentially transfer the compressed data stored in the nonvolatile memory to the work area of the RAM while performing DMA transfer. The decompression of the compressed data after completion of the DMA transfer to the work area of the RAM and the storage in the program area of the RAM are performed. When the decompression of all the compressed data and the storage in the program area of the RAM are completed, the Executing boot loader processing for starting execution of the program stored in the program area of the RAM ;
The data size of the compressed data is larger than the time required for DMA transfer of the compressed data from the nonvolatile memory to the work area of the RAM, and the decompression of the compressed data stored in the work area of the RAM The time required for storage in the program area is set to be small,
The number of compressed data stored in the non-volatile memory is n, and the non-volatile memory has n−1 compressed data having a data size L from 1 to n−1 and data having a data size L or less. N-th compressed data of the size is stored, and the data size L is stored in the time required for DMA transfer of all the compressed data from the nonvolatile memory to the work area of the RAM and in the work area of the RAM. An electronic apparatus, wherein the sum of the decompression of the nth compressed data and the time required for storing the compressed data in the RAM program area is minimized.
請求項1記載の電子機器であって、
前記不揮発性メモリはフラッシュメモリであり、前記RAMはSDRAMであることを特徴とする電子機器
The electronic device according to claim 1,
The non-volatile memory is a flash memory, and the RAM is an SDRAM .
JP2012094554A 2012-04-18 2012-04-18 Electronics Expired - Fee Related JP5955618B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012094554A JP5955618B2 (en) 2012-04-18 2012-04-18 Electronics

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012094554A JP5955618B2 (en) 2012-04-18 2012-04-18 Electronics

Publications (2)

Publication Number Publication Date
JP2013222372A JP2013222372A (en) 2013-10-28
JP5955618B2 true JP5955618B2 (en) 2016-07-20

Family

ID=49593273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012094554A Expired - Fee Related JP5955618B2 (en) 2012-04-18 2012-04-18 Electronics

Country Status (1)

Country Link
JP (1) JP5955618B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783557A (en) * 2019-11-11 2021-05-11 北京君正集成电路股份有限公司 Method for parallel execution of loading and decompression in Linux kernel
CN115480835A (en) * 2021-05-31 2022-12-16 合肥杰发科技有限公司 Program starting method and device, storage medium
WO2023145666A1 (en) * 2022-01-25 2023-08-03 株式会社Jvcケンウッド Embedded system boot method, boot program, and embedded system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04205421A (en) * 1990-11-30 1992-07-27 Matsushita Electric Ind Co Ltd Method and device for starting operating system
JP4366207B2 (en) * 2004-02-18 2009-11-18 キヤノン株式会社 PRINT CONTROL DEVICE, PRINT DEVICE, PROGRAM START METHOD, AND PROGRAM
US7490177B2 (en) * 2006-01-23 2009-02-10 Infineon Technologies Ag System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture
JP4885798B2 (en) * 2007-06-04 2012-02-29 株式会社リコー Information processing apparatus and image processing apparatus

Also Published As

Publication number Publication date
JP2013222372A (en) 2013-10-28

Similar Documents

Publication Publication Date Title
US8533449B2 (en) Multi-phase resume from hibernate
US9658863B2 (en) Information processing apparatus and control method therefor
JP5955618B2 (en) Electronics
CN106095416B (en) Jump processing method and device in application program and intelligent terminal
TWI685744B (en) Command processing method and storage controller using the same
JP2006268377A (en) Program start-up controller and program start-up control method
JP2009175904A (en) Multiprocessor processing system
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
CN106168932B (en) Flash control method and device
JP2012068797A (en) Start-up acceleration method, information processing apparatus and program
JP2021044744A5 (en) IMAGE PROCESSING DEVICE, CONTROL METHOD THEREOF, AND PROGRAM
JP2007065753A (en) Starting method and navigation device
JP2014089758A (en) Data reader
JP6471012B2 (en) Semiconductor memory, storage device, host device, data processing system, data writing device, data writing program, control program, and data writing method
CN113885949A (en) Quick startup method and system
JP5630798B1 (en) Processor and method
TW201727435A (en) Electronic device with multi-core processor and management method for multi-core processor
JP2010277495A (en) Compressive recording device and compressive recording method
JP2013125288A (en) Data processing device and data processing method
JP2010129106A (en) Nonvolatile semiconductor memory device
JP6080490B2 (en) Information processing apparatus, activation method, and program
US9208076B2 (en) Nonvolatile storage device and method of storing data thereof
US10185604B2 (en) Methods and apparatus for software chaining of co-processor commands before submission to a command queue
JP2006330124A (en) Data processor
JP6323155B2 (en) Data processing apparatus and data processing apparatus control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160113

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: 20160614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160615

R150 Certificate of patent or registration of utility model

Ref document number: 5955618

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees