JP5955618B2 - Electronics - Google Patents
Electronics Download PDFInfo
- 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
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).
前述した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.
以下、本発明の実施形態について説明する。
図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への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.
前記不揮発性メモリはフラッシュメモリであり、前記RAMはSDRAMであることを特徴とする電子機器。 The electronic device according to claim 1,
The non-volatile memory is a flash memory, and the RAM is an SDRAM .
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)
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)
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 |
-
2012
- 2012-04-18 JP JP2012094554A patent/JP5955618B2/en not_active Expired - Fee Related
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 |