説明

データ処理装置及びプログラム実行方法

【課題】メモリカードから転送されたプログラムを実行することによって上記メモリカードから再び別のプログラムを転送するのに要する時間を短縮する。
【解決手段】CPU(121)と、内蔵RAM(125)と、ブートプログラム(PRG0)が格納されたブート用メモリ(123)とを含んで半導体装置(12)を構成する。メモリカード(13)には、第1プログラム(PRG1)と、第2プログラム(PRG2)とが格納される。CPUは、ブートプログラムの実行によりメモリカードをブートオペレーションモードに遷移させて、メモリカード内の第1プログラムを内蔵RAMに転送させ、メモリカードに対してブートオペレーションモードを維持させた状態で、内蔵RAM内の第1プログラムの実行に遷移し、メモリカード内の第2プログラムを外部RAMに転送させることで、転送に要する時間短縮を図る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置におけるプログラム実行技術に関し、特にメモリカードから転送されたプログラムを実行することによって上記メモリカードから再び別のプログラムを転送するのに要する時間を短縮するための技術に関する。
【背景技術】
【0002】
マイクロコンピュータなどの半導体装置の外部記憶メディアであるメモリカードの一つとして、標準化団体であるMMCA(MultiMedia Card Association)が標準化したマルチメディアカード(登録商標)が知られている。
【0003】
特許文献1には、汎用性の向上を図ったメモリカードが記載されている。
【0004】
特許文献2には、メモリカードのインタフェースについて記載されている。また、特許文献2には、メモリカードにおける特定の端子をローレベルに設定することでデータ転送することが記載されている(明細書段落0109〜0115)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−151815号公報
【特許文献2】特開2009−524139号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
メモリカードの一例とされるマルチメディアカード(MMC)のうち、特に組み込みマルチメディアカードは、「eMMC(Embedded MMC)」と呼ばれる。このeMMCにおいて、2009年3月のJEDEC規格によれば、ブートオペレーションモード(Boot operation mode)がサポートされている(Embedded MMC (eMMC) Standard MMCA 4.4 (JESD84-A44)(March 2009))。
【0007】
本願発明者は、eMMCが結合されたMCU(Micro Controller Unit;マイクロコントロールユニット)におけるブートオペレーションについて検討した。MCUは、CPU、ブート用ROM、内蔵RAM、MMCホストコントローラを含む。上記MMCホストコントローラにeMMCや外部RAMが結合される。ブート用ROMには、ブートプログラムPRG0が格納される。eMMCには、第1プログラムPRG1及びPRG2が格納される。第1プログラムPRG1は、上記内蔵メモリの記憶容量以下のサイズとされ、第2プログラムPRG2は、上記内蔵メモリの記憶容量を越えるサイズとされる。従って、第2プログラムは外部RAMに転送される。
【0008】
外部RAMは、使用前に初期化する必要がある。内蔵ROM内のブートプログラムPRG0は、基本的には書き換え不可能であるため、書き換え不可能なPRG0の実行によって、素性の分からない外部RAMを初期化することはできない。このため、ブート用ROM内のブートプログラムPRG0がCPUで実行されることによって、eMMC内の第1プログラムPRG1が上記内蔵RAMに転送され、内蔵RAM内の第1プログラムPRG1がCPUで実行されることで、上記外部RAMが初期化される。そしてこの初期化後に、eMMC内の第2プログラムPRG2が上記外部RAMに転送される。
【0009】
しかし、外部RAMを初期化してから当該第2プログラムPRG2や当該第2プログラムPRG2の実行で用いられるデータを上記外部RAMに転送するまでの時間が長くなることが、本願発明者によって見いだされた。例えば、第2プログラムPRG2が液晶パネル等のユーザインタフェースにスプラッシュ画面等の起動表示を行う等のプログラムの場合には、外部RAMを初期化してから当該第2プログラムPRG2や当該第2プログラムPRG2の実行で用いられるデータを上記外部RAMに転送するまでの時間が長くなることによって、スプラッシュ画面等の起動表示が遅くなってしまう。
【0010】
本発明の目的は、メモリカードから転送されたプログラムを実行することによって上記メモリカードから再び別のプログラムを転送するのに要する時間を短縮するための技術を提供することにある。
【0011】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0012】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0013】
すなわち、データ処理装置には、プログラムを実行可能なCPUと、上記CPUがアクセス可能な内蔵RAMと、ブートプログラムが格納されたブート用メモリとを備えた半導体装置が設けられる。また、上記データ処理装置には、上記半導体装置に結合され、記憶情報を連続して読み出し可能なブートオペレーションモードを有するメモリカードと、上記半導体装置に結合された外部RAMとが設けられる。上記メモリカードには、それぞれ上記CPUで実行可能な第1プログラムと第2プログラムとが記憶される。上記CPUは、上記ブートプログラムの実行により上記メモリカードをブートオペレーションモードに遷移させて、上記メモリカード内の上記第1プログラムを上記内蔵RAMに転送させ、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記内蔵RAM内の上記第1プログラムの実行に遷移し、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させる。
【発明の効果】
【0014】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0015】
すなわち、メモリカードから転送されたプログラムを実行することによって上記メモリカードから再び別のプログラムを転送するのに要する時間を短縮するための技術を提供することができる。
【図面の簡単な説明】
【0016】
【図1】本発明にかかるデータ処理装置の構成例ブロック図である。
【図2】図1に示されるデータ処理装置における主要部の動作タイミング図である。
【図3】図1におけるeMMCから内蔵RAM又は外部RAMへのデータ転送の説明図である。
【図4】図1に示されるデータ処理装置における第一フェーズを説明するためのフローチャートである。
【図5】図1に示されるデータ処理装置における第二フェーズを説明するためのフローチャートである。
【図6】図1に示されるデータ処理装置における第三フェーズを説明するためのフローチャートである。
【図7】図1に示されるデータ処理装置の比較対象とされる装置における主要動作のタイミング図である。
【図8】本発明にかかるデータ処理装置における主要部の別の動作タイミング図である。
【発明を実施するための形態】
【0017】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0018】
〔1〕本発明の代表的な実施の形態に係るデータ処理装置(1)は、プログラムを実行可能なCPU(121)と、上記CPUがアクセス可能な内蔵RAM(125)と、ブートプログラム(PRG0)が格納されたブート用メモリ(123)とを備えた半導体装置(12)と、記憶情報を連続して読み出し可能なブートオペレーションモードを有するメモリカード(13)と、上記半導体装置に結合された外部RAM(14)とを含む。上記メモリカードは、それぞれ上記CPUで実行可能な第1プログラム(PRG1)と第2プログラム(PRG2)とを記憶する。上記CPUは、上記ブートプログラムの実行により上記メモリカードをブートオペレーションモードに遷移させて、上記メモリカード内の上記第1プログラムを上記内蔵RAMに転送させ、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記内蔵RAM内の上記第1プログラムの実行に遷移し、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させる。
【0019】
上記の構成によれば、メモリカードがブートオペレーションモードに遷移され、第1プログラムPRG1が内蔵RAMに転送されると、上記ブートオペレーションモードを終了しないままの状態で、CPUはブートプログラム(PRG0)から第1プログラム(PRG1)の実行に遷移される。そして第1プログラム(PRG1)がCPUで実行されることにより、第2プログラムPRG2の転送が行われる。このように1回のブートオペレーション期間に、第1プログラム(PRG1)及び第2プログラム(PRG2)の転送が行われるため、メモリカードから転送されたプログラム(PRG1)を実行することによって上記メモリカードから再び別のプログラム(PRG2)を転送するのに要する時間を短縮することができる。
【0020】
〔2〕上記〔1〕において、上記CPUは、上記第1プログラムの実行により、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させる前に、上記外部RAMを初期化するように構成することができる。
【0021】
〔3〕上記〔2〕において、上記第1プログラムは、上記内蔵RAMの記憶容量以下のサイズとし、上記第2プログラムは、上記内蔵RAMの記憶容量を越えるサイズとすることができる。
【0022】
〔4〕上記〔3〕において、上記メモリカードには、上記内蔵RAMの記憶容量を越えるサイズの第3プログラムを更に格納することができる。このとき、上記CPUは、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させた後、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記第2プログラムの実行に遷移し、上記メモリカード内の上記第3プログラムを上記外部RAMに転送させてから、上記ブートオペレーションモードを終了させるように構成することができる。
【0023】
〔5〕上記〔4〕において、上記半導体装置には、液晶パネルへ(11)の情報表示を制御するための液晶コントローラ(122)を設けることができる。
【0024】
〔6〕上記〔5〕において、上記CPUは、上記第2プログラムの実行により、上記液晶パネルへのスプラッシュ画面表示を制御するように構成することができる。
【0025】
〔7〕上記〔6〕において、上記半導体装置には、専用バスを介して上記メモリカードに結合され、上記メモリカードの動作制御を行うホストコントローラ(127)を設けることができる。
【0026】
〔8〕上記〔7〕において、上記ホストコントローラは、上記専用バスにおけるコマンド信号ラインを第1論理状態からそれとは異なる第2論理状態に遷移させることで、上記メモリカードに対してブートオペレーションモードを指示し、上記コマンド信号ラインを上記第2状態から上記第1状態に遷移させることで上記メモリカードに対してブートオペレーションモードの終了を指示する通信制御回路(1273)を設けることができる。上記第1論理状態をローレベルとするとき、上記第2論理状態はハイレベルとされる。
【0027】
〔9〕プログラムを実行可能なCPUと、上記CPUがアクセス可能な内蔵RAMと、ブートプログラムが格納されたブート用メモリと、を含む半導体装置に、メモリカードと外部RAMとが結合された状態でブートオペレーションを実行するとき、上記メモリカードには、上記内蔵RAMの記憶容量以下のサイズの第1プログラムと、上記内蔵RAMの記憶容量を越えるサイズの第2プログラムとが格納される。上記CPUは、上記ブートプログラムの実行により上記メモリカードをブートオペレーションモードに遷移させて、上記メモリカード内の上記第1プログラムを上記内蔵RAMに転送させ、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記内蔵RAM内の上記第1プログラムの実行に遷移し、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させる。
【0028】
上記の構成によれば、上記〔1〕の場合と同様に、1回のブートオペレーション期間に、第1プログラム(PRG1)及び第2プログラム(PRG2)の転送が行われるため、メモリカードから転送されたプログラム(PRG1)を実行することによって上記メモリカードから再び別のプログラム(PRG2)を転送するのに要する時間を短縮することができる。
【0029】
〔10〕上記〔9〕において、上記CPUは、上記第1プログラムの実行により、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させる前に、上記外部RAMを初期化する。
【0030】
〔11〕上記〔10〕において、上記メモリカードには、上記内蔵RAMの記憶容量を越えるサイズの第3プログラムが更に格納される。このとき、上記CPUは、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させた後、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記第2プログラムの実行に遷移し、上記メモリカード内の上記第3プログラムを上記外部RAMに転送させてから、上記ブートオペレーションモードを終了させる。
【0031】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0032】
《実施の形態1》
図1には、本発明にかかるデータ処理装置の構成例が示される。
【0033】
図1に示されるデータ処理装置1は、所定のデータ処理を行い、その処理結果を表示する機能を有する。このデータ処理装置1は、特に制限されないが、液晶パネル11、半導体装置の一例とされるMCU(Micro Controller Unit;マイクロコントロールユニット)12、メモリカードの一例とされるeMMC13、SDRAM(Synchronous Dynamic Random Access Memory)等の外部RAM14を含む。MCU12は、予め設定されたプログラムに従って各種データ処理を行う。液晶パネル(LCD)11とMCU12とは、LCD専用バスによって接続されている。LCD専用バスには、クロック信号を伝達するためのクロック信号ラインや、制御信号を伝達するための制御ラインが含まれる。液晶パネル11は、MCU12から伝達された画像データを表示する。eMMC13は、MMC専用バスを介してMCU12に結合される。MMC専用バスには、クロック(CLK)信号を供給するためのクロック(CLK)信号ライン、コマンド(CMD)を供給するためのコマンド(CMD)信号ライン、8ビットデータDAT〔7:0〕を供給するためのデータラインが含まれる。eMMC13には、パーティション先頭から、内蔵RAM125の記憶容量以下の第1プログラムPRG1と、内蔵RAM125の記憶容量を越えるサイズの第2プログラムPRG2と、スプラッシュ画面用画像データ131と、内蔵RAM125の記憶容量を超えるサイズの第3プログラムPRG3とが連続して書き込まれている。ここで、第1プログラムPRG1は外部RAM14を初期化するためのプログラム、第2プログラムPRG2は、スプラッシュ画面用画像を液晶パネル11に表示させるためのプログラム、第3プログラムPRG3は、MCU12で所定のデータ処理を行うためのプログラムである。MCU12は、外部バスを介して外部RAM14に結合される。外部バスには、クロック信号を伝達するためのクロック信号ラインや、制御信号を伝達するための制御ラインが含まれる。この外部RAM14は、第2プログラムPRG2や第3プログラムPRG3を格納するための十分な記憶容量を備えている。
【0034】
MCU12は、特に制限されないが、CPU(中央処理装置)121、LCDコントローラ122、ブート用ROM(Read Only Memory)123、内蔵RAM(Random Access Memory)125、クロック生成回路126、MMCホストコントローラ127を含む。さらにMCU12は、MMC・FIFO(First In, First Out)128、DMAC(Direct Memory Access Controler)129、及びバスコントローラ130を含む。
CPU121は、ブート用ROM123内のブートプログラムPRG0や、内蔵RAM125又は外部RAM14内のプログラムを実行することができる。CPU121は、ALUなどの演算部やCPU全体を制御する制御部を含む。この制御部には、メモリ上の実行すべき命令の位置(アドレス)を指定するためのプログラムが設けられる。ブート用ROM123、内蔵RAM125、外部RAM14などの外部デバイスは、CPU121によって管理されるアドレス空間に配置されており、いずれのデバイスから命令をフェッチするかは、プログラムカウンタの値によって決定される。LCDコントローラ122は、液晶パネル11における表示動作を制御する。ブート用ROM123には、第1プログラムPRG1をブートするためのブートプログラムPRG0が格納される。内蔵RAM125は、外部RAM14に比べて記憶容量が小さい。このため、蔵RAM125には、比較的サイズの小さい第1プログラムPRG1を書き込むことはできるが、第2プログラムPRG2、スプラッシュ画面用画像データ、及び第3プログラムPRG3を書き込むことはできない。第2プログラムPRG2、スプラッシュ画面用画像データ、及び第3プログラムPRG3は、外部RAM14に転送される。
【0035】
クロック生成回路126は、所定周波数のクロック信号を生成する。生成されたクロック信号は、CPU121LCDコントローラ122、MMCホストコントローラ127、DMAC129、及びバスコントローラ130に供給される。MMCホストコントローラ127は、eMMC13の動作を制御する。MMC・FIFO128は、先入れ・先出し方式でデータを伝達する。DMAC129は、MMCホストコントローラ127からの転送リクエストに従って、DMA転送を制御する。バスコントローラ130は、外部RAM14が接続された外部バスの制御を行う。CPU121やDMAC129は、データレジスタ1275を介してMMC・FIFO128にアクセスすることができる。
【0036】
上記CPU121、LCDコントローラ122、ブート用ROM123、内蔵RAM125,MMCホストコントローラ127、DMAC129、及びバスコントローラ130は、内部バスを介して互いに信号のやり取りが可能に結合されている。
【0037】
MMCホストコントローラ127は、特に制限されないが、CLK生成回路1271、トライステートバッファ1272、通信制御回路1273、FIFO制御・FIFO状態検出回路1274、データレジスタ1275、及び制御レジスタ1276を含む。CLK生成回路1271は、クロック生成回路126で生成されたクロック信号を分周することで、eMMC13に応じた周波数のクロック信号を形成する。生成されたクロック信号は、後段のトライステートバッファ1272を介してeMMC13に供給される。通信制御回路1273は、FIFO制御・FIFO状態検出回路1274でのFIFO状態検出結果に応じてトライステートバッファ1272のオン/オフ状態を制御する。FIFO制御・FIFO状態検出回路1274は、MMC・FIFO128の動作制御及び状態検出を行う。データレジスタ1275には、転送されるデータが一時的に保持される。制御レジスタ1276には、データ転送の制御情報が保持される。
【0038】
次に、上記構成の作用について詳述する。
【0039】
図2には、図1に示されるデータ処理装置1における主要部の動作タイミングが示される。また、図3には、eMMC13から内蔵RAM125又は外部RAM14へのデータ転送の様子が示される。
【0040】
この実施の形態1において、ブートオペレーションシーケンスには、第一フェーズ、第二フェーズ、第三フェーズ含まれる。
【0041】
先ず、第一フェーズについて、図4のフローチャートに従って説明する。
【0042】
データ処理装置1に電源が投入され(S400)、MCU12のCPU121がブート用ROM123から命令のフェッチを開始することによって、ブート用ROM123内のブートプログラムPRG0が実行される(S401)。このブートプログラムPRG0の実行により、MCU12内蔵のDMAC129が設定される(S402)。つまり、MMC・FIFO128から内蔵RAM125に対してeMMC13内に格納されている第1プログラムPRG1のサイズ分のデータをDMA転送するように設定される。
【0043】
次にCPU121は、ブートプログラムPRG0の実行により、MCU12内蔵のMMCホストコントローラ127を制御し、ブートオペレーションシーケンスを開始する(S403)。このブートオペレーションシーケンスでは、MMCホストコントローラ127からeMMC13に対し、クロック(CLK)信号ラインからクロックを供給し、次にコマンド(CMD)信号ラインをローレベルに固定し続けることで、eMMC13に格納されているプログラムやデータが、eMMC13の先頭ブロックから順に、クロック信号に同期してデータ(DAT〔7:0〕)ラインに出力される(S404)。MMCホストコントローラ127は、データ(DAT〔7:0〕)ラインから第1プログラムPRG1を受信すると、MMC・FIFO128にそれを書き込んでいく(S405)。MMC・FIFO128のバッファフルが検出されると、MMCホストコントローラ127は、クロック信号の出力を一次停止し、eMMC13からの第1プログラムPRG1の転送を中断し、DMAC129に対してデータ転送リクエスト信号をアサートする(S406)。
【0044】
DMAC129は、ブートプログラムPRG0がCPU121で実行された際の転送設定に従って、MMC・FIFO128から内蔵RAM125に対してデータ転送を行う(S407)。DMAC129は、MMCホストコントローラ127からのデータ転送リクエスト信号がネゲートされるまで連続してデータ転送を行う。
【0045】
MMCホストコントローラ127は、DMAC129によりMMC・FIFO128が読み出され、MMC・FIFO128のバッファエンプティを検出すると、DMAC129に対するデータ転送リクエスト信号をネゲートする。そして一時停止していたクロック信号の出力を再開し、中断した位置から第1プログラムPRG1の受信を再開する(S408)。
【0046】
以上の手順により、例えば図3に示されるように、MMC・FIFO128から内蔵RAM125までの間で第1プログラムPRG1の転送が行われる。内部RAM125又は外部RAM14の書込みアドレスは、メモリの先頭アドレスとオフセット(バッファサイズ)とによって決定される。図3において、「#N」は内蔵RAM125又は外部RAM14における先頭アドレスを示し、「FSIZE」は、MMC・FIFO128のバッファサイズを意味する。
【0047】
そして、DMAC129は、延べ転送バイト数がPRG1のサイズに達した時点で、DMA転送処理が終了される(S409,S410)。
【0048】
一方、MMCホストコントローラ127は、クロック(CLK)信号ラインを介して、eMMC13に対してクロック(CLK)信号を出力し続けている。このとき、MMC・FIFO128は、エンプティである。このため、eMMC13内のPRG1の直後のブロックに格納されている第2プログラムPRG2のMMC・FIFO128への転送が開始される(S411)。そして、MMCホストコントローラ127は、MMC・FIFO128のバッファフルを検出すると、クロック信号の出力を一次停止し、eMMC13からのPRG2のバイナリデータ転送を中断する(S412)。そしてDMAC129に対してデータ転送リクエスト信号をアサートした状態で待機状態となる。
【0049】
CPU121は、ブートプログラムPRG0の実行により、プログラムカウンタの値を、内蔵RAM125上に読み出された第1プログラムPRG1の先頭アドレスに変更する。これにより、CPU121は、ブートプログラムPRG0から第1プログラムPRG1の実行に遷移される。
【0050】
次に、第二フェーズについて、図5のフローチャートに従って説明する。
【0051】
CPU121は、第1プログラムPRG1の実行により、外部バスコントローラ130を制御し、外部RAM14の初期化を行って、外部RAM14へのランダムアクセスが可能な状態にする(S500,S501)。次に、DMAC129を設定する(S502)。すなわち、MMC・FIFO128から外部RAM14に対してeMMC13内に格納されている第2プログラムPRG2とスプラッシュ画面データとの合計サイズ分のデータをDMA転送可能に設定される。尚、以降、第2プログラムPRG2とスプラッシュ画面データとを「第2プログラムPRG2等」と総称する。
【0052】
既に第一フェーズの最後においてMMCホストコントローラ127からDMAC129へのデータ転送リクエスト信号がアサートされている状態であるため、MMC・FIFO128から外部RAM14に対して第2プログラムPRG2等の転送が開始される(S503)。以降、第一フェーズの場合と同様に、MMCホストコントローラ127とDMAC129の動作によって第2プログラムPRG2等の外部RAM14への転送が行われる(S504〜S508)。
【0053】
DMAC129は、延べ転送バイト数が第2プログラムPRG2等のサイズに達した時点で、DMA転送処理を終了する(S509,S510)。MMCホストコントローラ127は、eMMC13に対してクロックを出力し続けているため、eMMC13内の第2プログラムPRG2等の直後のブロックに格納されている第3プログラムPRG3をMMC・FIFO128に転送する(S511)。そしてMMCホストコントローラ127は、MMC・FIFO128がバッファフルになったことを検出すると、MMCホストコントローラ127はクロック信号の出力を一次停止し、eMMC13からのPRG3のバイナリデータ転送を中断する(S512)。そしてDMAC129に対してデータ転送リクエスト信号をアサートした状態で待機状態となる。
【0054】
CPU121は、第1プログラムPRG1の実行により、プログラムカウンタの値を、内蔵RAM125上に読み出された第2プログラムPRG2の先頭アドレスに変更する。これにより、第1プログラムPRG1から第2プログラムPRG2の実行に遷移される。
【0055】
次に、第三フェーズについて、図6のフローチャートに従って説明する。
【0056】
CPU121は、第2プログラムPRG2の実行により、LCDコントローラ122を制御し、外部RAM14に読み出してあるスプラッシュ画面データを液晶パネル11に表示する(S600,S601)。
【0057】
次に、CPU121は、第2プログラムPRG2の実行により、DMAC129を設定する(S602)。すなわち、MMC・FIFO128から外部RAM14に対してeMMC13内に格納してある第3プログラムPRG3のサイズ分のデータをDMA転送するように設定される。
【0058】
既に第一フェーズの最後においてMMCホストコントローラ127からDMAC129へのデータ転送リクエスト信号がアサートされている状態であるため、MMC・FIFO128から外部RAM14に対してPRG3の転送が開始される(S603)。以降、第一フェーズや第二フェーズの場合と同様に、MMCホストコントローラ127とDMAC129の動作によってPRG3の外部RAM14への転送が行われる(S604〜S608)。
【0059】
DMAC129は、延べ転送バイト数が第3プログラムPRG3のサイズに達した時点で、DMA転送処理を終了する(S609,S610)。そして、CPU121は、第2プログラムPRG2の実行により、MMCホストコントローラ127を制御し、ブートオペレーションシーケンスを終了する(S611)。ブートオペレーションシーケンスは、ローレベルに固定していたコマンド(CMD)信号ラインをハイレベルにすることで終了される。CPU121は、第2プログラムPRG2の実行により、プログラムカウンタの値を、内蔵RAM125上に読み出された第3プログラムPRG3の先頭アドレスに変更する。これにより、第3プログラムPRG3がCPU121によって実行される(S612)。
【0060】
ここで、従来技術に従えば、例えば図7に示されるように、CPUによってブートプログラムPRG0が実行され、コマンド(CMD)信号ラインがローレベルにされることで、eMMC13がブートオペレーションモードに遷移されるものの、eMMC13から第1プログラムPRG1の転送が終了した時点で、コマンド(CMD)信号ラインがハイレベルにされることで、ブートオペレーションモードが終了されてしまう。そして、MMC初期化期間において、シリアルデータのパターンによって識別される各種コマンドが発行される。つまり、コマンドCMD1,CMD2,CMD3,CMD9,CMD7,CMD16,CMD6,CMD19,CMD14,CMD6が順次発行される。そして、リードコマンドCMD17,CMD18の発行により、それぞれ第2プログラムPRG2や第3プログラムPRG3の転送が行われる。この結果、第2プログラムPRG2や第3プログラムPRG3を実行までに時間がかかる。
【0061】
これに対して、図1に示されるデータ処理装置によれば、図2に示されるように、CPU121によってブートプログラムPRG0が実行され、コマンド(CMD)信号ラインがローレベルにされることで、eMMC13がブートオペレーションモードに遷移される。そして第1プログラムPRG1が内蔵RAM125に転送されると、上記ブートオペレーションモードを終了しないままの状態で、CPU121はブートプログラムPRG0から第1プログラムPRG1の実行に遷移される。さらに第1プログラムPRG1がCPU121で実行されることにより、外部RAM14が初期化された後に、第2プログラムPRG2及びスプラッシュ画面データの転送が行われる。第2プログラムPRG2がCPU121で実行されることによって液晶パネル11へのスプラッシュ画面表示が開始され、第3プログラムPRG3の転送が終了した時点で、コマンド(CMD)信号ラインがハイレベルにされることでブートオペレーションモードが終了される。このように1回のブートオペレーション期間に、第1プログラムPRG1の転送が行われ、外部RAM14が初期化されて第2プログラムPRG2,PRG3の転送が行われるため、外部RAM14が初期化されてから、図7に示されるのに比べて、第2プログラムPRG2や第3プログラムPRG3を速やかに実行することができる。これにより、外部RAM14が初期化されてからスプラッシュ画面表示までの時間を短縮することができる。
【0062】
《実施の形態2》
実施の形態1では、第3プログラムPRG3が外部RAM14に転送された後に、コマンド(CMD)信号ラインがハイレベルにされることでブートオペレーションモードが終了された。しかし、この第3プログラムPRG3の転送を行わない場合には、例えば図8に示されるように、第2プログラムPRG2が外部RAM14に転送された後に、コマンド(CMD)信号ラインをハイレベルにすることでブートオペレーションモード終了させるようにしても良い。
【0063】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0064】
例えば、eMMC13は、組み込みマルチメディアカードに限定されるものではなく、組み込みマルチメディアカード以外のメモリカードとすることができる。
【0065】
外部RAM14は、SDRAMに限定されるものではなく、ランダムアクセス可能な一般的なRAMを適用することができる。
【0066】
第2プログラムPRG2の実行によって、スプラッシュ画面の表示を行わない場合もあり得る。
【符号の説明】
【0067】
1 データ処理装置
11 液晶パネル
12 MCU
13 eMMC
14 外部RAM
121 CPU
122 LCDコントローラ
123 ブート用ROM
125 内蔵RAM
126 クロック生成回路
127 MMCホストコントローラ
128 MMC・FIFO
129 DMAC
130 バスコントローラ
1271 CLK生成回路
1272 トライステートバッファ
1273 通信制御回路
1274 FIFO制御・FIFO状態検出回路
1275 データレジスタ
1276 制御レジスタ

【特許請求の範囲】
【請求項1】
プログラムを実行可能なCPUと、上記CPUがアクセス可能な内蔵RAMと、ブートプログラムが格納されたブート用メモリとを備えた半導体装置と、
上記半導体装置に結合され、記憶情報を連続して読み出し可能なブートオペレーションモードを有するメモリカードと、
上記半導体装置に結合された外部RAMと、を含むデータ処理装置であって、
上記メモリカードは、それぞれ上記CPUで実行可能な第1プログラムと第2プログラムとを記憶し、
上記CPUは、上記ブートプログラムの実行により上記メモリカードをブートオペレーションモードに遷移させて、上記メモリカード内の上記第1プログラムを上記内蔵RAMに転送させ、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記内蔵RAM内の上記第1プログラムの実行に遷移し、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させることを特徴とするデータ処理装置。
【請求項2】
上記CPUは、上記第1プログラムの実行により、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させる前に、上記外部RAMを初期化する請求項1記載のデータ処理装置。
【請求項3】
上記第1プログラムは、上記内蔵RAMの記憶容量以下のサイズとされ、上記第2プログラムは、上記内蔵RAMの記憶容量を越えるサイズとされる請求項2記載のデータ処理装置。
【請求項4】
上記メモリカードには、上記内蔵RAMの記憶容量を越えるサイズの第3プログラムが更に格納され、
上記CPUは、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させた後、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記第2プログラムの実行に遷移し、上記メモリカード内の上記第3プログラムを上記外部RAMに転送させてから、上記ブートオペレーションモードを終了させる請求項3記載のデータ処理装置。
【請求項5】
上記半導体装置は、液晶パネルへの情報表示を制御するための液晶コントローラを含む請求項4記載のデータ処理装置。
【請求項6】
上記CPUは、上記第2プログラムの実行により、上記液晶パネルへのスプラッシュ画面表示を制御する請求項5記載のデータ処理装置。
【請求項7】
上記半導体装置は、専用バスを介して上記メモリカードに結合され、上記メモリカードの動作制御を行うホストコントローラを含む請求項6記載のデータ処理装置。
【請求項8】
上記ホストコントローラは、上記専用バスにおけるコマンド信号ラインを第1論理状態からそれとは異なる第2論理状態に遷移させることで、上記メモリカードに対してブートオペレーションモードを指示し、上記コマンド信号ラインを上記第2状態から上記第1状態に遷移させることで上記メモリカードに対してブートオペレーションモードの終了を指示する通信制御回路を含む請求項7記載のデータ処理装置。
【請求項9】
プログラムを実行可能なCPUと、
上記CPUがアクセス可能な内蔵RAMと、
ブートプログラムが格納されたブート用メモリと、を含む半導体装置に、メモリカードと外部RAMとが結合された状態で行われるプログラム実行方法であって、
上記メモリカードには、上記内蔵RAMの記憶容量以下のサイズの第1プログラムと、上記内蔵RAMの記憶容量を越えるサイズの第2プログラムと、を格納し、
上記CPUは、上記ブートプログラムの実行により上記メモリカードをブートオペレーションモードに遷移させて、上記メモリカード内の上記第1プログラムを上記内蔵RAMに転送させ、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記内蔵RAM内の上記第1プログラムの実行に遷移し、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させることを特徴とするプログラム実行方法。
【請求項10】
上記CPUは、上記第1プログラムの実行により、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させる前に、上記外部RAMを初期化する請求項9記載のプログラム実行方法。
【請求項11】
上記メモリカードには、上記内蔵RAMの記憶容量を越えるサイズの第3プログラムを更に格納し、
上記CPUは、上記メモリカード内の上記第2プログラムを上記外部RAMに転送させた後、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記第2プログラムの実行に遷移し、上記メモリカード内の上記第3プログラムを上記外部RAMに転送させてから、上記ブートオペレーションモードを終了させる請求項10記載のプログラム実行方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate