JP2009009388A - 携帯端末装置およびそのブート処理方法 - Google Patents

携帯端末装置およびそのブート処理方法 Download PDF

Info

Publication number
JP2009009388A
JP2009009388A JP2007170654A JP2007170654A JP2009009388A JP 2009009388 A JP2009009388 A JP 2009009388A JP 2007170654 A JP2007170654 A JP 2007170654A JP 2007170654 A JP2007170654 A JP 2007170654A JP 2009009388 A JP2009009388 A JP 2009009388A
Authority
JP
Japan
Prior art keywords
cpu
memory
compressed code
ram
program
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.)
Withdrawn
Application number
JP2007170654A
Other languages
English (en)
Inventor
Katsumi Aoyanagi
勝己 青柳
Yasuyuki Hirao
康幸 平尾
Toshinao Sanbonmatsu
利尚 三本松
Tomohiro Ichikawa
知宏 市川
Kenji Asa
健治 麻
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.)
Sony Corp
Original Assignee
Sony Ericsson Mobile Communications Japan 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 Sony Ericsson Mobile Communications Japan Inc filed Critical Sony Ericsson Mobile Communications Japan Inc
Priority to JP2007170654A priority Critical patent/JP2009009388A/ja
Publication of JP2009009388A publication Critical patent/JP2009009388A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】複数のCPUの利用を前提として起動時間を短縮する。
【解決手段】第1および第2のCPUの各CPUが実行するプログラムは、圧縮コードとして不揮発性メモリに記憶されている。各CPUはブート処理において、不揮発性メモリから圧縮コードを読み出して解凍してRAMにプログラムを展開する際、圧縮コードを所定量バッファメモリに格納した後、再度、不揮発性メモリから次の圧縮コードを読み出そうとした場合に、他方のCPUとの間に前記不揮発性メモリへのアクセスが競合したとき(NANDコントローラbusy)、バッファメモリの自己の領域に記憶された圧縮コードの解凍処理を実行する。
【選択図】図9

Description

本発明は、複数のCPUを備えた携帯端末装置およびそのブート処理方法に関する。
携帯電話機などの携帯端末装置のソフトウェアはその機能が複雑になるにつれて、必要となるメモリ容量が増大する。この為、メモリデバイスのコストが上昇し、このデバイスコスト増が製品価格に影響する。
この問題に対する一つの解決策として、予め圧縮されたソフトウェアをメモリにロードしておき、実行時に解凍する方法が提案されている。この方法によれば、ソフトウェア本体もサイズも小さくなることから、メモリ容量低減に関してそれなりの効果が期待できる。また、起動時間の短縮効果も期待されるが、実際には圧縮されたソフトウェアを解凍する時間が余分に必要であるため、起動時間の短縮効果はあまり望めない。
また、携帯端末用のメモリデバイスとしては、再書込可能な不揮発性の半導体メモリとしてフラッシュメモリが利用されている。フラッシュメモリには、NAND型とNOR型がある。NAND型フラッシュメモリ(以下、NANDメモリともいう)は、大容量化に適し、単位容量当たりのコストが安価であるが、一定サイズのブロック単位での読み書きしかできず、ランダムアクセスが遅い、という特徴を有する。一方、NOR型フラッシュメモリは、読み出し速度が高速で高速ランダムアクセスが可能であるが、高集積化に向かず、書込に大電流が必要である、という特徴を有する。
そこで、図2に示すように、コスト、高集積化、消費電力の面で有利なNANDメモリを携帯端末のプログラムの記憶に利用する。NANDメモリからブート(Boot:起動)を行うような場合、一旦、NANDメモリからRAMにプログラム領域が転送されて、プログラムはRAM上で実行される。
NANDメモリには、予め圧縮されたコードを格納することにより、NANDメモリからRAMへ展開するサイズが小さくなる為、メモリとしては空き領域が増大し、この領域をストレージエリアなどとして使用することが可能となる。
しかしながら、図3に示すように、圧縮コードはブート時に解凍することが必要となり、その分ソフトウェアが起動するまでの時間がかかるという問題が発生する。
そこで本発明は、複数のCPUの利用を前提として起動時間を短縮することができる携帯端末装置およびそのブート処理方法を提案するものである。
本発明による携帯端末装置は、第1および第2のCPUと、各CPUが実行するプログラムを圧縮した圧縮コードを記憶した不揮発性メモリと、各CPUが前記不揮発性メモリから読み出された圧縮コードを一旦記憶しておく領域を有するバッファメモリと、前記圧縮コードから解凍されたプログラムが展開され、各CPUにより実行されるRAMとを備える。各CPUはブート処理において、前記不揮発性メモリから圧縮コードを読み出して解凍して前記RAMにプログラムを展開する際、前記圧縮コードを所定量前記バッファメモリに格納した後、再度、前記不揮発性メモリから次の圧縮コードを読み出そうとした場合に、他方のCPUとの間に前記不揮発性メモリへのアクセスが競合したとき、前記バッファメモリの自己の領域に記憶された圧縮コードの解凍処理を実行する。
各CPUは、前記不揮発性メモリから次の圧縮コードを読み出す際に、他のCPUとアクセスが競合した場合、読み出し済みの圧縮コードの解凍処理を実行することにより、CPUの無駄な待ち時間が解消され、結果として起動時間が短縮される。
本発明によるブート処理方法は、第1および第2のCPUを備え、各CPUが、不揮発性メモリから圧縮コードを読み出して解凍しRAMにプログラムを展開する、携帯端末装置におけるブート処理方法であって、各CPUは、前記不揮発性メモリから圧縮コードを読み出そうとするとき、他方のCPUとの間で前記不揮発性メモリへのアクセスが競合したか否かをチェックするステップと、競合していなければ、前記不揮発性メモリから圧縮コードを読み出してバッファメモリ内に一旦記憶しておくステップと、競合していれば、前記バッファメモリ内の前記圧縮コードを解凍してRAMに展開するステップとを実行する。
本発明によれば、一方のCPUが不揮発性メモリにアクセスしている状態の際に、他方のCPUではコード解凍を実施することにより、不揮発性メモリからRAMへの展開が早くなり、結果として、ブート時間が短縮される。
以下、本発明の好適な実施の形態について図面を参照しながら、詳細に説明する。
図1に本実施の形態における携帯端末10の概略ハードウェア構成を、携帯電話機を例として示す。
携帯端末10は、制御部11、音声処理部12、マイク13、スピーカ14、記憶部15、通信部16、デュプレクサ17、アンテナ17a、操作部18、表示部19を備える。制御部11は、第1および第2のCPU(Central Processing Unit)を搭載した携帯電話用チップセットであり、携帯端末10の処理および各部の制御を司る。
音声処理部12は制御部11の制御下で通話や音楽再生等の音声処理を行い、マイク13からの音声入力、スピーカ14への音声出力を行う。
記憶部15は、プログラムやデータを記憶する部位であり、本実施の形態では、SDRAM(Synchronous Dynamic Random Access Memory)等のRAM15a、およびNANDメモリ15bを有する。
NANDメモリ15bは、制御部11が実行するプログラムを格納する再書込可能な不揮発性メモリである。NANDメモリ15bには、ブートプログラムを格納するブート領域21、プログラム本体のコード(プログラムコード)を格納するプログラム領域22と、その他必要なデータやプログラムを格納するためのストレージ(Storage)領域23が存在する。ストレージ領域23には、プログラムの他、例えば、電話帳、電子メール、ウェブコンテンツ、音楽、画像、等の各種のデータを格納することができる。
プログラム領域22は、ブートプログラムによるブート時にRAM15aへ展開され、プログラムはRAM15a上で実行される。より具体的には、制御部11および記憶部15に電源が供給されると、制御部11の組み込みロジックによってNANDメモリ15bのブート領域の内容が制御部内蔵のメモリ領域(図示せず)に読み込まれて実行される。
通信部16は、制御部11の制御下で、アンテナ17aを介して基地局(図示せず)と無線による送受信を行う部位である。デュプレクサ17はアンテナ共用機である。すなわち、送信信号と受信信号で1本のアンテナを共用し、アンテナからの受信信号を受信部に送り、送信部からの送信信号をアンテナへ送出する機能を備えたフィルタ回路により構成される。
操作部18は、テンキーや各種の制御キー等を有し、ユーザによる指示や情報を制御部11に入力する機能を有する。
表示部19は、例えばLCD、有機EL等の表示デバイスを有し、ユーザに対してテキスト、画像(静止画、動画)等の可視情報を表示する機能を有する。
以下、図4により、通常の2CPU構成におけるブート処理方法を説明する。
本実施の形態では、同一チップ(LSI)内に第1および第2のCPUとして、アプリケーション実行用のaCPU41、モデム制御用のmCPU42がそれぞれ存在するとする。まず、電源投入によりmCPU42を最初に立ち上げる場合、予め内蔵されているブートローダ(Bootloader)が実行され、mCPU42をブートするのに必要なmブートローダをRAM15a上に展開し、mCPU42が動作できる環境を提供する。mブートローダでは、NANDメモリ15bからコードを読み出しRAM15aへ展開する動作の実行を開始する。
また同時にaCPUをブートするのに必要なaブートローダをRAM15a上に展開し、aCPUが動作できる環境を提供する。aブートローダでは同様に、NANDメモリ15bからコードを読み出して、RAM15aへ展開する動作の実行を開始する。
しかしながら、この状態では同一のNANDメモリ15bに対して、単一のNANDコントローラ43を介して、aCPUおよびmCPUがアクセスすることになりリソースの競合が発生する。そのため、一方のCPUはNANDコントローラ43が、他方のCPUに占有されている区間は処理を待たされる結果となる。
CPUが単一である構成では、NANDメモリ15bからの読み込み処理と圧縮データの解凍処理は同一CPUをフルで使用して実現される為、如何しても処理速度に限界が生じる。
本発明では、ブート処理にてNANDコントローラ43のリソース競合が発生し待ち状態が発生している状況を使用して解凍処理を実施することにより、結果として圧縮コードを用いて、ブート時間が短縮できることを特徴としている。
また、使用されているNANDメモリ15bおよびRAM15aは物理アドレスとしては単一であるが(それぞれ1つのデバイス)、論理アドレスとしては各CPUから独立に見えることを想定している。
図5は、NANDコントローラ競合が生じる様子を示したシーケンス図である。図では縦軸方向が時間軸を示している。この図から分かるように、NANDメモリ15bからコードを読み出す場合、時間軸上で共通の時間帯において二つのCPUからNANDコントローラ43ヘの競合が発生している。すなわち、一方のCPUにとって、NANDコントローラ43がビジー状態では、NANDコントローラ43がレディ(Ready)状態になるまで待ち時間が存在することになる。
この時間はCPUにとってはコードの展開ができない、すなわち何も出来ない状態であるため、本発明では、その待ち時間内にCPUがそれぞれのコードを解凍する処理を実施する。このように、CPUは従来待ち時間であった期間内にコード解凍を行うことにより、コード解凍を伴ったNANDメモリ15bからRAM15aへの展開時間の高速化が期待できる。
図6は、aCPU41とmCPU42とが共用する共有メモリ61を用いた制御部11内の主要部の構成例を示している。共有メモリ61は、バッファA1とバッファM1とを含んでいる。これらのバッファは、各CPUが自己の解凍すべき圧縮コードを一時的に記憶しておくメモリ領域である。
図7および図8に、本実施の形態においてそれぞれmCPUとaCPUとがNANDコントローラビジーであった場合に解凍処理を実施する際の処理フローを示す。mCPUとaCPUとは互いに独立に動作するため、両処理は、NANDコントローラ43がビジーかどうかという点以外は非同期で実施される。また、前提として共通にアクセスできる共有メモリ61が存在することを想定している。
図7において、mCPUは、NANDメモリ15bが読み出し可能かどうかをチェックする(S12)。その際、NANDコントローラ43がビジー状態でなければ(S12,No)、読み出し可能と判断し、NANDメモリ15bからコードを読み出し内部のバッファM1へ保存する(S14)。NANDコントローラ43がビジー状態であれば、NANDメモリ15bは読み出し不能と判断し(S12,Yes)、内部のバッファM1からデータを取得し、mCPUで解凍処理を実行し、RAM15aに展開する(S13)。
その後、全てのコードをNANDメモリ15bからRAM15aへ展開するまで(S15)、上記の処理を繰り返す。
図8において、aCPUは、NANDメモリ15bが読み出し可能かどうかをチェックする(S22)。その際、NANDコントローラ43がビジー状態でなければ(S22,No)、読み出し可能と判断し、NANDメモリ15bからコードを読み出し内部のバッファA1へ保存する(S24)。NANDコントローラ43がビジー状態であれば、NANDメモリ15bは読み出し不能と判断し(S22,Yes)、内部のバッファA1からデータを取得し、aCPUで解凍処理を実行し、RAM15aに展開する(S23)。
その後、全てのコードをNANDメモリ15bからRAM15aへ展開するまで(S25)、上記の処理を繰り返す。
ここで、本実施の形態におけるNANDコントローラ43のビジー状況の発生および利用の具体的な態様について、図9のタイミング図により説明する。図中、および以下の括弧付きの数値は各種イベントの発生時点に付した通し番号である。
(1)mCPUはNANDコントローラ43を経由してNANDメモリ15bからデータを読み込み、バッファM1へ格納する。読み込み完了まではNANDコントローラ43はビジー状態となる。
(2)その後、NANDコントローラ43が非ビジー状態となった後、aCPUはNANDコントローラ43を経由してNANDメモリ15bからデータを読み込み、バッファA1へ格納する、読み込み完了まではNANDコントローラ43はビジー状態となる。
(3)mCPUはNANDメモリ15bからデータを読み込もうとするがNANDコントローラ43がビジーである為、すでに読み込んだバッファM1の内容を解凍し、RAM15aへ転送する。
(4)aCPUはNANDコントローラ43を経由してNANDメモリ15bからデータを読み込み、バッファA1へ格納する。
(5)mCPUはNANDコントローラ43を経由してNANDメモリ15bからデータを読み込み、バッファM1へ格納する。
(6)aCPUはNANDメモリ15bからデータを読み込もうとするがNANDコントローラ43がビジーである為、すでに読み込んだバッファA1の内容を解凍し、RAM15aへ転送する。
(7)mCPUは最終データを読み込み、RAM15aへ転送し、mCPUブートプロセスが完了する。
(8)aCPUは最終データを読み込み、RAM15aへ転送し、aCPUブートプロセスが完了すると共にシステムが起動できる状態となる。
次に、参考のため、本発明を用いない場合の1CPU構成の動作のタイミングを図10に示す。
上記図9の(3)のような状態が発生した場合、mCPUはNANDコントローラ43がビジー状態でなくなるまで、何もしないで待つ必要が生じる。単一CPUの場合は解凍処理とNANDコントローラ43のアクセスとを並行して実施できない為、CUPが解凍処理を実行中はNANDコントローラ43はアイドル状態となる。具体的には次の通りである。
(1)CPUはNANDコントローラ43を経由してNANDメモリ15bからデータを読み込み、データ読み込みが完了した時点で圧縮解凍を開始し、RAM15aへ展開する。
(2)以降、同様の動作を最終データを読み込むまで繰り返す。
(3)最終データの解凍後、RAM15aへのデータ展開が完了してシステムが起動できる状態となる。
以上、本発明の好適な実施の形態について説明したが、上記で言及した以外にも種々の変形、変更を行うことが可能である。
例えば、上述した例ではNANDコントローラがビジー状態かどうかを明示的にチェックする方法を説明したが、現実的な動作として、NANDコントローラビジー状態は必ず発生する為、特にNANDコントローラのチェックを実施しないでNANDメモリ15bからコードを読み出した時点で即座に解凍処理を実施しても、ある程度の改善効果は期待できると考える。この場合、特に共有メモリは特定の解凍用エリアとして確保されるのみとなる。
また、共有メモリはaCPUおよびmCPUの外部に設けられても構わない。例えば、図6におけるRAMの一領域を共有メモリとして解凍用のエリアを確保することもできる。
本発明の実施の形態における携帯端末の概略ハードウェア構成を示した図である。 本発明の前提としてNANDメモリからブートを行うような場合の処理の説明図である。 本発明の前提として圧縮コードをブート時に解凍する場合の説明図である。 通常の2CPU構成におけるブートプロセスの説明図である。 本発明の実施の形態においてNANDコントローラ競合が生じる様子を示したシーケンス図である。 本発明の実施の形態におけるaCPUおよびmCPUとが共用する共有メモリを用いた制御部内の主要部の構成例を示す図である。 本発明の実施の形態においてmCPUとが解凍処理を実施する際の処理フローを示したフローチャートである。 本発明の実施の形態においてaCPUとが解凍処理を実施する際の処理フローを示したフローチャートである。 本発明の実施の形態におけるNANDコントローラのビジー状況の発生および利用の具体的な態様を示したタイミング図である。 本発明を用いない揚合の動作について示したタイミング図である。
符号の説明
10…携帯端末、11…制御部、15…記憶部、15a…RAM、15b…NANDメモリ、21…ブート領域、22…プログラム領域、23…ストレージ領域、25…プログラム、43…NANDコントローラ、61…共有メモリ

Claims (4)

  1. 第1および第2のCPUと、
    各CPUが実行するプログラムを圧縮した圧縮コードを記憶した不揮発性メモリと、
    各CPUが前記不揮発性メモリから読み出された圧縮コードを一旦記憶しておく領域を有するバッファメモリと、
    前記圧縮コードから解凍されたプログラムが展開され、各CPUにより実行されるRAMとを備え、
    各CPUはブート処理において、前記不揮発性メモリから圧縮コードを読み出して解凍して前記RAMにプログラムを展開する際、前記圧縮コードを所定量前記バッファメモリに格納した後、再度、前記不揮発性メモリから次の圧縮コードを読み出そうとした場合に、他方のCPUとの間に前記不揮発性メモリへのアクセスが競合したとき、前記バッファメモリの自己の領域に記憶された圧縮コードの解凍処理を実行する
    ことを特徴とする携帯端末装置。
  2. 各CPUからの前記不揮発性メモリへのアクセスを制御する不揮発性メモリコントローラを備え、
    各CPUは、前記不揮発性メモリへのアクセスの競合を前記不揮発性メモリコントローラへのアクセスの競合として認識する
    請求項1に記載の携帯端末装置。
  3. 第1および第2のCPUを備え、各CPUが、不揮発性メモリから圧縮コードを読み出して解凍しRAMにプログラムを展開する、携帯端末装置におけるブート処理方法であって、
    各CPUは、
    前記不揮発性メモリから圧縮コードを読み出そうとするとき、他方のCPUとの間で前記不揮発性メモリへのアクセスが競合したか否かをチェックするステップと、
    競合していなければ、前記不揮発性メモリから圧縮コードを読み出してバッファメモリ内に一旦記憶しておくステップと、
    競合していれば、前記バッファメモリ内の前記圧縮コードを解凍してRAMに展開するステップと、
    を実行することを特徴とする携帯端末装置のブート処理方法。
  4. 各CPUは、前記不揮発性メモリへのアクセスの競合を、各CPUからの前記不揮発性メモリへのアクセスを制御する不揮発性メモリコントローラへのアクセスの競合として認識する
    請求項3に記載の携帯端末装置のブート処理方法。
JP2007170654A 2007-06-28 2007-06-28 携帯端末装置およびそのブート処理方法 Withdrawn JP2009009388A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007170654A JP2009009388A (ja) 2007-06-28 2007-06-28 携帯端末装置およびそのブート処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007170654A JP2009009388A (ja) 2007-06-28 2007-06-28 携帯端末装置およびそのブート処理方法

Publications (1)

Publication Number Publication Date
JP2009009388A true JP2009009388A (ja) 2009-01-15

Family

ID=40324399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007170654A Withdrawn JP2009009388A (ja) 2007-06-28 2007-06-28 携帯端末装置およびそのブート処理方法

Country Status (1)

Country Link
JP (1) JP2009009388A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010186411A (ja) * 2009-02-13 2010-08-26 Toshiba Corp プログラム実行装置、プログラム実行方法、及びプログラム
WO2011051543A1 (en) * 2009-10-27 2011-05-05 Nokia Corporation Nonvolatile device
JP2011250894A (ja) * 2010-05-31 2011-12-15 Kyoraku Sangyo Kk 遊技機
JP2014215834A (ja) * 2013-04-25 2014-11-17 京セラドキュメントソリューションズ株式会社 メモリーアクセス制御システム及び画像形成装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010186411A (ja) * 2009-02-13 2010-08-26 Toshiba Corp プログラム実行装置、プログラム実行方法、及びプログラム
WO2011051543A1 (en) * 2009-10-27 2011-05-05 Nokia Corporation Nonvolatile device
CN102576245A (zh) * 2009-10-27 2012-07-11 诺基亚公司 非易失性设备
US8645738B2 (en) 2009-10-27 2014-02-04 Nokia Corporation Nonvolatile device
CN102576245B (zh) * 2009-10-27 2014-12-10 诺基亚公司 非易失性设备
JP2011250894A (ja) * 2010-05-31 2011-12-15 Kyoraku Sangyo Kk 遊技機
JP2014215834A (ja) * 2013-04-25 2014-11-17 京セラドキュメントソリューションズ株式会社 メモリーアクセス制御システム及び画像形成装置

Similar Documents

Publication Publication Date Title
US8433363B2 (en) Memory device in mobile phone
US6810444B2 (en) Memory system allowing fast operation of processor while using flash memory incapable of random access
US20090100242A1 (en) Data Processing Method for Use in Embedded System
JP2009009388A (ja) 携帯端末装置およびそのブート処理方法
KR100506031B1 (ko) 마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법
CN100578452C (zh) 应用于嵌入式系统的数据处理方法
US20080091902A1 (en) Memory card and method of updating memory card program
US8019985B2 (en) Data-processing arrangement for updating code in an auxiliary processor memory
JP4459641B2 (ja) シーケンシャルバッファを内蔵してdspのデータアクセス性能を向上させるコンピュータシステム及びそのコンピュータシステムのアクセス方法
JP2002207715A (ja) マイクロコンピュータ及びそれに用いるメモリ制御方法
CN116848515A (zh) 存储器控制器及存储器访问方法
CN113885949A (zh) 一种快速开机方法及系统
JP2006202200A (ja) 携帯端末及びマルチプロセッサシステム並びにそのプログラム
JP2002055822A (ja) 端末装置のプログラム制御方式およびその方法、並びにその制御プログラムを記録する記録媒体
KR100891390B1 (ko) 마이크로 컨트롤러 및 업데이트 방법
JPH11175348A (ja) Riscアーキテクチャを持った中央処理装置を有する装置及び該装置を動作させる方法
KR100658918B1 (ko) 블록 단위 입출력 명령어를 이용한 시스템 전역 변수초기화 장치 및 그 방법
CN113626086A (zh) 基于共享启动空间的多核处理器启动方法及装置
WO2023053234A1 (ja) 電子機器および高速通信方法
JP2001297006A (ja) 半導体集積回路装置および情報処理システム
JP2002132574A (ja) 携帯電話
KR20140019847A (ko) 묘화 제어 장치
JP2010191548A (ja) ヘテロジニアス・マルチコア演算処理装置、ヘテロジニアス・マルチコア演算処理装置における演算処理方法、ヘテロジニアス・マルチコア演算処理装置の演算処理プログラム、及び携帯端末装置
TW200304596A (en) Method and apparatus for converting an external memory access into a local memory access in a processor core
JP2000181854A (ja) メモリへアドレスを伝送する方法およびメモリ

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100907