(57)【要約】【課題】メモリカードから転送されたプログラムを実行することによって上記メモリカードから再び別のプログラムを転送するのに要する時間を短縮する。【解決手段】ＣＰＵ（１２１）と、内蔵ＲＡＭ（１２５）と、ブートプログラム（ＰＲＧ０）が格納されたブート用メモリ（１２３）とを含んで半導体装置（１２）を構成する。メモリカード（１３）には、第１プログラム（ＰＲＧ１）と、第２プログラム（ＰＲＧ２）とが格納される。ＣＰＵは、ブートプログラムの実行によりメモリカードをブートオペレーションモードに遷移させて、メモリカード内の第１プログラムを内蔵ＲＡＭに転送させ、メモリカードに対してブートオペレーションモードを維持させた状態で、内蔵ＲＡＭ内の第１プログラムの実行に遷移し、メモリカード内の第２プログラムを外部ＲＡＭに転送させることで、転送に要する時間短縮を図る。【選択図】図１
2013020538.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行可能なＣＰＵと、上記ＣＰＵがアクセス可能な内蔵ＲＡＭと、ブートプログラムが格納されたブート用メモリとを備えた半導体装置と、
上記半導体装置に結合され、記憶情報を連続して読み出し可能なブートオペレーションモードを有するメモリカードと、
上記半導体装置に結合された外部ＲＡＭと、を含むデータ処理装置であって、
上記メモリカードは、それぞれ上記ＣＰＵで実行可能な第１プログラムと第２プログラムとを記憶し、
上記ＣＰＵは、上記ブートプログラムの実行により上記メモリカードをブートオペレーションモードに遷移させて、上記メモリカード内の上記第１プログラムを上記内蔵ＲＡＭに転送させ、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記内蔵ＲＡＭ内の上記第１プログラムの実行に遷移し、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させることを特徴とするデータ処理装置。
【請求項２】
上記ＣＰＵは、上記第１プログラムの実行により、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させる前に、上記外部ＲＡＭを初期化する請求項１記載のデータ処理装置。
【請求項３】
上記第１プログラムは、上記内蔵ＲＡＭの記憶容量以下のサイズとされ、上記第２プログラムは、上記内蔵ＲＡＭの記憶容量を越えるサイズとされる請求項２記載のデータ処理装置。
【請求項４】
上記メモリカードには、上記内蔵ＲＡＭの記憶容量を越えるサイズの第３プログラムが更に格納され、
上記ＣＰＵは、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させた後、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記第２プログラムの実行に遷移し、上記メモリカード内の上記第３プログラムを上記外部ＲＡＭに転送させてから、上記ブートオペレーションモードを終了させる請求項３記載のデータ処理装置。
【請求項５】
上記半導体装置は、液晶パネルへの情報表示を制御するための液晶コントローラを含む請求項４記載のデータ処理装置。
【請求項６】
上記ＣＰＵは、上記第２プログラムの実行により、上記液晶パネルへのスプラッシュ画面表示を制御する請求項５記載のデータ処理装置。
【請求項７】
上記半導体装置は、専用バスを介して上記メモリカードに結合され、上記メモリカードの動作制御を行うホストコントローラを含む請求項６記載のデータ処理装置。
【請求項８】
上記ホストコントローラは、上記専用バスにおけるコマンド信号ラインを第１論理状態からそれとは異なる第２論理状態に遷移させることで、上記メモリカードに対してブートオペレーションモードを指示し、上記コマンド信号ラインを上記第２状態から上記第１状態に遷移させることで上記メモリカードに対してブートオペレーションモードの終了を指示する通信制御回路を含む請求項７記載のデータ処理装置。
【請求項９】
プログラムを実行可能なＣＰＵと、
上記ＣＰＵがアクセス可能な内蔵ＲＡＭと、
ブートプログラムが格納されたブート用メモリと、を含む半導体装置に、メモリカードと外部ＲＡＭとが結合された状態で行われるプログラム実行方法であって、
上記メモリカードには、上記内蔵ＲＡＭの記憶容量以下のサイズの第１プログラムと、上記内蔵ＲＡＭの記憶容量を越えるサイズの第２プログラムと、を格納し、
上記ＣＰＵは、上記ブートプログラムの実行により上記メモリカードをブートオペレーションモードに遷移させて、上記メモリカード内の上記第１プログラムを上記内蔵ＲＡＭに転送させ、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記内蔵ＲＡＭ内の上記第１プログラムの実行に遷移し、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させることを特徴とするプログラム実行方法。
【請求項１０】
上記ＣＰＵは、上記第１プログラムの実行により、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させる前に、上記外部ＲＡＭを初期化する請求項９記載のプログラム実行方法。
【請求項１１】
上記メモリカードには、上記内蔵ＲＡＭの記憶容量を越えるサイズの第３プログラムを更に格納し、
上記ＣＰＵは、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させた後、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記第２プログラムの実行に遷移し、上記メモリカード内の上記第３プログラムを上記外部ＲＡＭに転送させてから、上記ブートオペレーションモードを終了させる請求項１０記載のプログラム実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置におけるプログラム実行技術に関し、特にメモリカードから転送されたプログラムを実行することによって上記メモリカードから再び別のプログラムを転送するのに要する時間を短縮するための技術に関する。
【背景技術】
【０００２】
マイクロコンピュータなどの半導体装置の外部記憶メディアであるメモリカードの一つとして、標準化団体であるＭＭＣＡ（ＭｕｌｔｉＭｅｄｉａ Ｃａｒｄ Ａｓｓｏｃｉａｔｉｏｎ）が標準化したマルチメディアカード（登録商標）が知られている。
【０００３】
特許文献１には、汎用性の向上を図ったメモリカードが記載されている。
【０００４】
特許文献２には、メモリカードのインタフェースについて記載されている。また、特許文献２には、メモリカードにおける特定の端子をローレベルに設定することでデータ転送することが記載されている（明細書段落０１０９〜０１１５）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１５１８１５号公報
【特許文献２】特開２００９−５２４１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
メモリカードの一例とされるマルチメディアカード（ＭＭＣ）のうち、特に組み込みマルチメディアカードは、「ｅＭＭＣ（Embedded MMC）」と呼ばれる。このｅＭＭＣにおいて、２００９年３月のＪＥＤＥＣ規格によれば、ブートオペレーションモード（Boot operation mode）がサポートされている（Embedded MMC (eMMC) Standard MMCA 4.4 (JESD84-A44)(March 2009)）。
【０００７】
本願発明者は、ｅＭＭＣが結合されたＭＣＵ（Micro Controller Unit；マイクロコントロールユニット）におけるブートオペレーションについて検討した。ＭＣＵは、ＣＰＵ、ブート用ＲＯＭ、内蔵ＲＡＭ、ＭＭＣホストコントローラを含む。上記ＭＭＣホストコントローラにｅＭＭＣや外部ＲＡＭが結合される。ブート用ＲＯＭには、ブートプログラムＰＲＧ０が格納される。ｅＭＭＣには、第１プログラムＰＲＧ１及びＰＲＧ２が格納される。第１プログラムＰＲＧ１は、上記内蔵メモリの記憶容量以下のサイズとされ、第２プログラムＰＲＧ２は、上記内蔵メモリの記憶容量を越えるサイズとされる。従って、第２プログラムは外部ＲＡＭに転送される。
【０００８】
外部ＲＡＭは、使用前に初期化する必要がある。内蔵ＲＯＭ内のブートプログラムＰＲＧ０は、基本的には書き換え不可能であるため、書き換え不可能なＰＲＧ０の実行によって、素性の分からない外部ＲＡＭを初期化することはできない。このため、ブート用ＲＯＭ内のブートプログラムＰＲＧ０がＣＰＵで実行されることによって、ｅＭＭＣ内の第１プログラムＰＲＧ１が上記内蔵ＲＡＭに転送され、内蔵ＲＡＭ内の第１プログラムＰＲＧ１がＣＰＵで実行されることで、上記外部ＲＡＭが初期化される。そしてこの初期化後に、ｅＭＭＣ内の第２プログラムＰＲＧ２が上記外部ＲＡＭに転送される。
【０００９】
しかし、外部ＲＡＭを初期化してから当該第２プログラムＰＲＧ２や当該第２プログラムＰＲＧ２の実行で用いられるデータを上記外部ＲＡＭに転送するまでの時間が長くなることが、本願発明者によって見いだされた。例えば、第２プログラムＰＲＧ２が液晶パネル等のユーザインタフェースにスプラッシュ画面等の起動表示を行う等のプログラムの場合には、外部ＲＡＭを初期化してから当該第２プログラムＰＲＧ２や当該第２プログラムＰＲＧ２の実行で用いられるデータを上記外部ＲＡＭに転送するまでの時間が長くなることによって、スプラッシュ画面等の起動表示が遅くなってしまう。
【００１０】
本発明の目的は、メモリカードから転送されたプログラムを実行することによって上記メモリカードから再び別のプログラムを転送するのに要する時間を短縮するための技術を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、データ処理装置には、プログラムを実行可能なＣＰＵと、上記ＣＰＵがアクセス可能な内蔵ＲＡＭと、ブートプログラムが格納されたブート用メモリとを備えた半導体装置が設けられる。また、上記データ処理装置には、上記半導体装置に結合され、記憶情報を連続して読み出し可能なブートオペレーションモードを有するメモリカードと、上記半導体装置に結合された外部ＲＡＭとが設けられる。上記メモリカードには、それぞれ上記ＣＰＵで実行可能な第１プログラムと第２プログラムとが記憶される。上記ＣＰＵは、上記ブートプログラムの実行により上記メモリカードをブートオペレーションモードに遷移させて、上記メモリカード内の上記第１プログラムを上記内蔵ＲＡＭに転送させ、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記内蔵ＲＡＭ内の上記第１プログラムの実行に遷移し、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させる。
【発明の効果】
【００１４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１５】
すなわち、メモリカードから転送されたプログラムを実行することによって上記メモリカードから再び別のプログラムを転送するのに要する時間を短縮するための技術を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明にかかるデータ処理装置の構成例ブロック図である。
【図２】図１に示されるデータ処理装置における主要部の動作タイミング図である。
【図３】図１におけるｅＭＭＣから内蔵ＲＡＭ又は外部ＲＡＭへのデータ転送の説明図である。
【図４】図１に示されるデータ処理装置における第一フェーズを説明するためのフローチャートである。
【図５】図１に示されるデータ処理装置における第二フェーズを説明するためのフローチャートである。
【図６】図１に示されるデータ処理装置における第三フェーズを説明するためのフローチャートである。
【図７】図１に示されるデータ処理装置の比較対象とされる装置における主要動作のタイミング図である。
【図８】本発明にかかるデータ処理装置における主要部の別の動作タイミング図である。
【発明を実施するための形態】
【００１７】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕本発明の代表的な実施の形態に係るデータ処理装置（１）は、プログラムを実行可能なＣＰＵ（１２１）と、上記ＣＰＵがアクセス可能な内蔵ＲＡＭ（１２５）と、ブートプログラム（ＰＲＧ０）が格納されたブート用メモリ（１２３）とを備えた半導体装置（１２）と、記憶情報を連続して読み出し可能なブートオペレーションモードを有するメモリカード（１３）と、上記半導体装置に結合された外部ＲＡＭ（１４）とを含む。上記メモリカードは、それぞれ上記ＣＰＵで実行可能な第１プログラム（ＰＲＧ１）と第２プログラム（ＰＲＧ２）とを記憶する。上記ＣＰＵは、上記ブートプログラムの実行により上記メモリカードをブートオペレーションモードに遷移させて、上記メモリカード内の上記第１プログラムを上記内蔵ＲＡＭに転送させ、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記内蔵ＲＡＭ内の上記第１プログラムの実行に遷移し、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させる。
【００１９】
上記の構成によれば、メモリカードがブートオペレーションモードに遷移され、第１プログラムＰＲＧ１が内蔵ＲＡＭに転送されると、上記ブートオペレーションモードを終了しないままの状態で、ＣＰＵはブートプログラム（ＰＲＧ０）から第１プログラム（ＰＲＧ１）の実行に遷移される。そして第１プログラム（ＰＲＧ１）がＣＰＵで実行されることにより、第２プログラムＰＲＧ２の転送が行われる。このように１回のブートオペレーション期間に、第１プログラム（ＰＲＧ１）及び第２プログラム（ＰＲＧ２）の転送が行われるため、メモリカードから転送されたプログラム（ＰＲＧ１）を実行することによって上記メモリカードから再び別のプログラム（ＰＲＧ２）を転送するのに要する時間を短縮することができる。
【００２０】
〔２〕上記〔１〕において、上記ＣＰＵは、上記第１プログラムの実行により、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させる前に、上記外部ＲＡＭを初期化するように構成することができる。
【００２１】
〔３〕上記〔２〕において、上記第１プログラムは、上記内蔵ＲＡＭの記憶容量以下のサイズとし、上記第２プログラムは、上記内蔵ＲＡＭの記憶容量を越えるサイズとすることができる。
【００２２】
〔４〕上記〔３〕において、上記メモリカードには、上記内蔵ＲＡＭの記憶容量を越えるサイズの第３プログラムを更に格納することができる。このとき、上記ＣＰＵは、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させた後、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記第２プログラムの実行に遷移し、上記メモリカード内の上記第３プログラムを上記外部ＲＡＭに転送させてから、上記ブートオペレーションモードを終了させるように構成することができる。
【００２３】
〔５〕上記〔４〕において、上記半導体装置には、液晶パネルへ（１１）の情報表示を制御するための液晶コントローラ（１２２）を設けることができる。
【００２４】
〔６〕上記〔５〕において、上記ＣＰＵは、上記第２プログラムの実行により、上記液晶パネルへのスプラッシュ画面表示を制御するように構成することができる。
【００２５】
〔７〕上記〔６〕において、上記半導体装置には、専用バスを介して上記メモリカードに結合され、上記メモリカードの動作制御を行うホストコントローラ（１２７）を設けることができる。
【００２６】
〔８〕上記〔７〕において、上記ホストコントローラは、上記専用バスにおけるコマンド信号ラインを第１論理状態からそれとは異なる第２論理状態に遷移させることで、上記メモリカードに対してブートオペレーションモードを指示し、上記コマンド信号ラインを上記第２状態から上記第１状態に遷移させることで上記メモリカードに対してブートオペレーションモードの終了を指示する通信制御回路（１２７３）を設けることができる。上記第１論理状態をローレベルとするとき、上記第２論理状態はハイレベルとされる。
【００２７】
〔９〕プログラムを実行可能なＣＰＵと、上記ＣＰＵがアクセス可能な内蔵ＲＡＭと、ブートプログラムが格納されたブート用メモリと、を含む半導体装置に、メモリカードと外部ＲＡＭとが結合された状態でブートオペレーションを実行するとき、上記メモリカードには、上記内蔵ＲＡＭの記憶容量以下のサイズの第１プログラムと、上記内蔵ＲＡＭの記憶容量を越えるサイズの第２プログラムとが格納される。上記ＣＰＵは、上記ブートプログラムの実行により上記メモリカードをブートオペレーションモードに遷移させて、上記メモリカード内の上記第１プログラムを上記内蔵ＲＡＭに転送させ、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記内蔵ＲＡＭ内の上記第１プログラムの実行に遷移し、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させる。
【００２８】
上記の構成によれば、上記〔１〕の場合と同様に、１回のブートオペレーション期間に、第１プログラム（ＰＲＧ１）及び第２プログラム（ＰＲＧ２）の転送が行われるため、メモリカードから転送されたプログラム（ＰＲＧ１）を実行することによって上記メモリカードから再び別のプログラム（ＰＲＧ２）を転送するのに要する時間を短縮することができる。
【００２９】
〔１０〕上記〔９〕において、上記ＣＰＵは、上記第１プログラムの実行により、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させる前に、上記外部ＲＡＭを初期化する。
【００３０】
〔１１〕上記〔１０〕において、上記メモリカードには、上記内蔵ＲＡＭの記憶容量を越えるサイズの第３プログラムが更に格納される。このとき、上記ＣＰＵは、上記メモリカード内の上記第２プログラムを上記外部ＲＡＭに転送させた後、上記メモリカードに対してブートオペレーションモードを維持させた状態で、上記第２プログラムの実行に遷移し、上記メモリカード内の上記第３プログラムを上記外部ＲＡＭに転送させてから、上記ブートオペレーションモードを終了させる。
【００３１】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３２】
《実施の形態１》
図１には、本発明にかかるデータ処理装置の構成例が示される。
【００３３】
図１に示されるデータ処理装置１は、所定のデータ処理を行い、その処理結果を表示する機能を有する。このデータ処理装置１は、特に制限されないが、液晶パネル１１、半導体装置の一例とされるＭＣＵ（Micro Controller Unit；マイクロコントロールユニット）１２、メモリカードの一例とされるｅＭＭＣ１３、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等の外部ＲＡＭ１４を含む。ＭＣＵ１２は、予め設定されたプログラムに従って各種データ処理を行う。液晶パネル（ＬＣＤ）１１とＭＣＵ１２とは、ＬＣＤ専用バスによって接続されている。ＬＣＤ専用バスには、クロック信号を伝達するためのクロック信号ラインや、制御信号を伝達するための制御ラインが含まれる。液晶パネル１１は、ＭＣＵ１２から伝達された画像データを表示する。ｅＭＭＣ１３は、ＭＭＣ専用バスを介してＭＣＵ１２に結合される。ＭＭＣ専用バスには、クロック（ＣＬＫ）信号を供給するためのクロック（ＣＬＫ）信号ライン、コマンド（ＣＭＤ）を供給するためのコマンド（ＣＭＤ）信号ライン、８ビットデータＤＡＴ〔７：０〕を供給するためのデータラインが含まれる。ｅＭＭＣ１３には、パーティション先頭から、内蔵ＲＡＭ１２５の記憶容量以下の第１プログラムＰＲＧ１と、内蔵ＲＡＭ１２５の記憶容量を越えるサイズの第２プログラムＰＲＧ２と、スプラッシュ画面用画像データ１３１と、内蔵ＲＡＭ１２５の記憶容量を超えるサイズの第３プログラムＰＲＧ３とが連続して書き込まれている。ここで、第１プログラムＰＲＧ１は外部ＲＡＭ１４を初期化するためのプログラム、第２プログラムＰＲＧ２は、スプラッシュ画面用画像を液晶パネル１１に表示させるためのプログラム、第３プログラムＰＲＧ３は、ＭＣＵ１２で所定のデータ処理を行うためのプログラムである。ＭＣＵ１２は、外部バスを介して外部ＲＡＭ１４に結合される。外部バスには、クロック信号を伝達するためのクロック信号ラインや、制御信号を伝達するための制御ラインが含まれる。この外部ＲＡＭ１４は、第２プログラムＰＲＧ２や第３プログラムＰＲＧ３を格納するための十分な記憶容量を備えている。
【００３４】
ＭＣＵ１２は、特に制限されないが、ＣＰＵ（中央処理装置）１２１、ＬＣＤコントローラ１２２、ブート用ＲＯＭ（Read Only Memory）１２３、内蔵ＲＡＭ（Random Access Memory）１２５、クロック生成回路１２６、ＭＭＣホストコントローラ１２７を含む。さらにＭＣＵ１２は、ＭＭＣ・ＦＩＦＯ（First In, First Out）１２８、ＤＭＡＣ（Direct Memory Access Controler）１２９、及びバスコントローラ１３０を含む。
ＣＰＵ１２１は、ブート用ＲＯＭ１２３内のブートプログラムＰＲＧ０や、内蔵ＲＡＭ１２５又は外部ＲＡＭ１４内のプログラムを実行することができる。ＣＰＵ１２１は、ＡＬＵなどの演算部やＣＰＵ全体を制御する制御部を含む。この制御部には、メモリ上の実行すべき命令の位置（アドレス）を指定するためのプログラムが設けられる。ブート用ＲＯＭ１２３、内蔵ＲＡＭ１２５、外部ＲＡＭ１４などの外部デバイスは、ＣＰＵ１２１によって管理されるアドレス空間に配置されており、いずれのデバイスから命令をフェッチするかは、プログラムカウンタの値によって決定される。ＬＣＤコントローラ１２２は、液晶パネル１１における表示動作を制御する。ブート用ＲＯＭ１２３には、第１プログラムＰＲＧ１をブートするためのブートプログラムＰＲＧ０が格納される。内蔵ＲＡＭ１２５は、外部ＲＡＭ１４に比べて記憶容量が小さい。このため、蔵ＲＡＭ１２５には、比較的サイズの小さい第１プログラムＰＲＧ１を書き込むことはできるが、第２プログラムＰＲＧ２、スプラッシュ画面用画像データ、及び第３プログラムＰＲＧ３を書き込むことはできない。第２プログラムＰＲＧ２、スプラッシュ画面用画像データ、及び第３プログラムＰＲＧ３は、外部ＲＡＭ１４に転送される。
【００３５】
クロック生成回路１２６は、所定周波数のクロック信号を生成する。生成されたクロック信号は、ＣＰＵ１２１ＬＣＤコントローラ１２２、ＭＭＣホストコントローラ１２７、ＤＭＡＣ１２９、及びバスコントローラ１３０に供給される。ＭＭＣホストコントローラ１２７は、ｅＭＭＣ１３の動作を制御する。ＭＭＣ・ＦＩＦＯ１２８は、先入れ・先出し方式でデータを伝達する。ＤＭＡＣ１２９は、ＭＭＣホストコントローラ１２７からの転送リクエストに従って、ＤＭＡ転送を制御する。バスコントローラ１３０は、外部ＲＡＭ１４が接続された外部バスの制御を行う。ＣＰＵ１２１やＤＭＡＣ１２９は、データレジスタ１２７５を介してＭＭＣ・ＦＩＦＯ１２８にアクセスすることができる。
【００３６】
上記ＣＰＵ１２１、ＬＣＤコントローラ１２２、ブート用ＲＯＭ１２３、内蔵ＲＡＭ１２５，ＭＭＣホストコントローラ１２７、ＤＭＡＣ１２９、及びバスコントローラ１３０は、内部バスを介して互いに信号のやり取りが可能に結合されている。
【００３７】
ＭＭＣホストコントローラ１２７は、特に制限されないが、ＣＬＫ生成回路１２７１、トライステートバッファ１２７２、通信制御回路１２７３、ＦＩＦＯ制御・ＦＩＦＯ状態検出回路１２７４、データレジスタ１２７５、及び制御レジスタ１２７６を含む。ＣＬＫ生成回路１２７１は、クロック生成回路１２６で生成されたクロック信号を分周することで、ｅＭＭＣ１３に応じた周波数のクロック信号を形成する。生成されたクロック信号は、後段のトライステートバッファ１２７２を介してｅＭＭＣ１３に供給される。通信制御回路１２７３は、ＦＩＦＯ制御・ＦＩＦＯ状態検出回路１２７４でのＦＩＦＯ状態検出結果に応じてトライステートバッファ１２７２のオン／オフ状態を制御する。ＦＩＦＯ制御・ＦＩＦＯ状態検出回路１２７４は、ＭＭＣ・ＦＩＦＯ１２８の動作制御及び状態検出を行う。データレジスタ１２７５には、転送されるデータが一時的に保持される。制御レジスタ１２７６には、データ転送の制御情報が保持される。
【００３８】
次に、上記構成の作用について詳述する。
【００３９】
図２には、図１に示されるデータ処理装置１における主要部の動作タイミングが示される。また、図３には、ｅＭＭＣ１３から内蔵ＲＡＭ１２５又は外部ＲＡＭ１４へのデータ転送の様子が示される。
【００４０】
この実施の形態１において、ブートオペレーションシーケンスには、第一フェーズ、第二フェーズ、第三フェーズ含まれる。
【００４１】
先ず、第一フェーズについて、図４のフローチャートに従って説明する。
【００４２】
データ処理装置１に電源が投入され（Ｓ４００）、ＭＣＵ１２のＣＰＵ１２１がブート用ＲＯＭ１２３から命令のフェッチを開始することによって、ブート用ＲＯＭ１２３内のブートプログラムＰＲＧ０が実行される（Ｓ４０１）。このブートプログラムＰＲＧ０の実行により、ＭＣＵ１２内蔵のＤＭＡＣ１２９が設定される（Ｓ４０２）。つまり、ＭＭＣ・ＦＩＦＯ１２８から内蔵ＲＡＭ１２５に対してｅＭＭＣ１３内に格納されている第１プログラムＰＲＧ１のサイズ分のデータをＤＭＡ転送するように設定される。
【００４３】
次にＣＰＵ１２１は、ブートプログラムＰＲＧ０の実行により、ＭＣＵ１２内蔵のＭＭＣホストコントローラ１２７を制御し、ブートオペレーションシーケンスを開始する（Ｓ４０３）。このブートオペレーションシーケンスでは、ＭＭＣホストコントローラ１２７からｅＭＭＣ１３に対し、クロック（ＣＬＫ）信号ラインからクロックを供給し、次にコマンド（ＣＭＤ）信号ラインをローレベルに固定し続けることで、ｅＭＭＣ１３に格納されているプログラムやデータが、ｅＭＭＣ１３の先頭ブロックから順に、クロック信号に同期してデータ（ＤＡＴ〔７：０〕）ラインに出力される（Ｓ４０４）。ＭＭＣホストコントローラ１２７は、データ（ＤＡＴ〔７：０〕）ラインから第１プログラムＰＲＧ１を受信すると、ＭＭＣ・ＦＩＦＯ１２８にそれを書き込んでいく（Ｓ４０５）。ＭＭＣ・ＦＩＦＯ１２８のバッファフルが検出されると、ＭＭＣホストコントローラ１２７は、クロック信号の出力を一次停止し、ｅＭＭＣ１３からの第１プログラムＰＲＧ１の転送を中断し、ＤＭＡＣ１２９に対してデータ転送リクエスト信号をアサートする（Ｓ４０６）。
【００４４】
ＤＭＡＣ１２９は、ブートプログラムＰＲＧ０がＣＰＵ１２１で実行された際の転送設定に従って、ＭＭＣ・ＦＩＦＯ１２８から内蔵ＲＡＭ１２５に対してデータ転送を行う（Ｓ４０７）。ＤＭＡＣ１２９は、ＭＭＣホストコントローラ１２７からのデータ転送リクエスト信号がネゲートされるまで連続してデータ転送を行う。
【００４５】
ＭＭＣホストコントローラ１２７は、ＤＭＡＣ１２９によりＭＭＣ・ＦＩＦＯ１２８が読み出され、ＭＭＣ・ＦＩＦＯ１２８のバッファエンプティを検出すると、ＤＭＡＣ１２９に対するデータ転送リクエスト信号をネゲートする。そして一時停止していたクロック信号の出力を再開し、中断した位置から第１プログラムＰＲＧ１の受信を再開する（Ｓ４０８）。
【００４６】
以上の手順により、例えば図３に示されるように、ＭＭＣ・ＦＩＦＯ１２８から内蔵ＲＡＭ１２５までの間で第１プログラムＰＲＧ１の転送が行われる。内部ＲＡＭ１２５又は外部ＲＡＭ１４の書込みアドレスは、メモリの先頭アドレスとオフセット（バッファサイズ）とによって決定される。図３において、「＃Ｎ」は内蔵ＲＡＭ１２５又は外部ＲＡＭ１４における先頭アドレスを示し、「ＦＳＩＺＥ」は、ＭＭＣ・ＦＩＦＯ１２８のバッファサイズを意味する。
【００４７】
そして、ＤＭＡＣ１２９は、延べ転送バイト数がＰＲＧ１のサイズに達した時点で、ＤＭＡ転送処理が終了される（Ｓ４０９，Ｓ４１０）。
【００４８】
一方、ＭＭＣホストコントローラ１２７は、クロック（ＣＬＫ）信号ラインを介して、ｅＭＭＣ１３に対してクロック（ＣＬＫ）信号を出力し続けている。このとき、ＭＭＣ・ＦＩＦＯ１２８は、エンプティである。このため、ｅＭＭＣ１３内のＰＲＧ１の直後のブロックに格納されている第２プログラムＰＲＧ２のＭＭＣ・ＦＩＦＯ１２８への転送が開始される（Ｓ４１１）。そして、ＭＭＣホストコントローラ１２７は、ＭＭＣ・ＦＩＦＯ１２８のバッファフルを検出すると、クロック信号の出力を一次停止し、ｅＭＭＣ１３からのＰＲＧ２のバイナリデータ転送を中断する（Ｓ４１２）。そしてＤＭＡＣ１２９に対してデータ転送リクエスト信号をアサートした状態で待機状態となる。
【００４９】
ＣＰＵ１２１は、ブートプログラムＰＲＧ０の実行により、プログラムカウンタの値を、内蔵ＲＡＭ１２５上に読み出された第１プログラムＰＲＧ１の先頭アドレスに変更する。これにより、ＣＰＵ１２１は、ブートプログラムＰＲＧ０から第１プログラムＰＲＧ１の実行に遷移される。
【００５０】
次に、第二フェーズについて、図５のフローチャートに従って説明する。
【００５１】
ＣＰＵ１２１は、第１プログラムＰＲＧ１の実行により、外部バスコントローラ１３０を制御し、外部ＲＡＭ１４の初期化を行って、外部ＲＡＭ１４へのランダムアクセスが可能な状態にする（Ｓ５００，Ｓ５０１）。次に、ＤＭＡＣ１２９を設定する（Ｓ５０２）。すなわち、ＭＭＣ・ＦＩＦＯ１２８から外部ＲＡＭ１４に対してｅＭＭＣ１３内に格納されている第２プログラムＰＲＧ２とスプラッシュ画面データとの合計サイズ分のデータをＤＭＡ転送可能に設定される。尚、以降、第２プログラムＰＲＧ２とスプラッシュ画面データとを「第２プログラムＰＲＧ２等」と総称する。
【００５２】
既に第一フェーズの最後においてＭＭＣホストコントローラ１２７からＤＭＡＣ１２９へのデータ転送リクエスト信号がアサートされている状態であるため、ＭＭＣ・ＦＩＦＯ１２８から外部ＲＡＭ１４に対して第２プログラムＰＲＧ２等の転送が開始される（Ｓ５０３）。以降、第一フェーズの場合と同様に、ＭＭＣホストコントローラ１２７とＤＭＡＣ１２９の動作によって第２プログラムＰＲＧ２等の外部ＲＡＭ１４への転送が行われる（Ｓ５０４〜Ｓ５０８）。
【００５３】
ＤＭＡＣ１２９は、延べ転送バイト数が第２プログラムＰＲＧ２等のサイズに達した時点で、ＤＭＡ転送処理を終了する（Ｓ５０９，Ｓ５１０）。ＭＭＣホストコントローラ１２７は、ｅＭＭＣ１３に対してクロックを出力し続けているため、ｅＭＭＣ１３内の第２プログラムＰＲＧ２等の直後のブロックに格納されている第３プログラムＰＲＧ３をＭＭＣ・ＦＩＦＯ１２８に転送する（Ｓ５１１）。そしてＭＭＣホストコントローラ１２７は、ＭＭＣ・ＦＩＦＯ１２８がバッファフルになったことを検出すると、ＭＭＣホストコントローラ１２７はクロック信号の出力を一次停止し、ｅＭＭＣ１３からのＰＲＧ３のバイナリデータ転送を中断する（Ｓ５１２）。そしてＤＭＡＣ１２９に対してデータ転送リクエスト信号をアサートした状態で待機状態となる。
【００５４】
ＣＰＵ１２１は、第１プログラムＰＲＧ１の実行により、プログラムカウンタの値を、内蔵ＲＡＭ１２５上に読み出された第２プログラムＰＲＧ２の先頭アドレスに変更する。これにより、第１プログラムＰＲＧ１から第２プログラムＰＲＧ２の実行に遷移される。
【００５５】
次に、第三フェーズについて、図６のフローチャートに従って説明する。
【００５６】
ＣＰＵ１２１は、第２プログラムＰＲＧ２の実行により、ＬＣＤコントローラ１２２を制御し、外部ＲＡＭ１４に読み出してあるスプラッシュ画面データを液晶パネル１１に表示する（Ｓ６００，Ｓ６０１）。
【００５７】
次に、ＣＰＵ１２１は、第２プログラムＰＲＧ２の実行により、ＤＭＡＣ１２９を設定する（Ｓ６０２）。すなわち、ＭＭＣ・ＦＩＦＯ１２８から外部ＲＡＭ１４に対してｅＭＭＣ１３内に格納してある第３プログラムＰＲＧ３のサイズ分のデータをＤＭＡ転送するように設定される。
【００５８】
既に第一フェーズの最後においてＭＭＣホストコントローラ１２７からＤＭＡＣ１２９へのデータ転送リクエスト信号がアサートされている状態であるため、ＭＭＣ・ＦＩＦＯ１２８から外部ＲＡＭ１４に対してＰＲＧ３の転送が開始される（Ｓ６０３）。以降、第一フェーズや第二フェーズの場合と同様に、ＭＭＣホストコントローラ１２７とＤＭＡＣ１２９の動作によってＰＲＧ３の外部ＲＡＭ１４への転送が行われる（Ｓ６０４〜Ｓ６０８）。
【００５９】
ＤＭＡＣ１２９は、延べ転送バイト数が第３プログラムＰＲＧ３のサイズに達した時点で、ＤＭＡ転送処理を終了する（Ｓ６０９，Ｓ６１０）。そして、ＣＰＵ１２１は、第２プログラムＰＲＧ２の実行により、ＭＭＣホストコントローラ１２７を制御し、ブートオペレーションシーケンスを終了する（Ｓ６１１）。ブートオペレーションシーケンスは、ローレベルに固定していたコマンド（ＣＭＤ）信号ラインをハイレベルにすることで終了される。ＣＰＵ１２１は、第２プログラムＰＲＧ２の実行により、プログラムカウンタの値を、内蔵ＲＡＭ１２５上に読み出された第３プログラムＰＲＧ３の先頭アドレスに変更する。これにより、第３プログラムＰＲＧ３がＣＰＵ１２１によって実行される（Ｓ６１２）。
【００６０】
ここで、従来技術に従えば、例えば図７に示されるように、ＣＰＵによってブートプログラムＰＲＧ０が実行され、コマンド（ＣＭＤ）信号ラインがローレベルにされることで、ｅＭＭＣ１３がブートオペレーションモードに遷移されるものの、ｅＭＭＣ１３から第１プログラムＰＲＧ１の転送が終了した時点で、コマンド（ＣＭＤ）信号ラインがハイレベルにされることで、ブートオペレーションモードが終了されてしまう。そして、ＭＭＣ初期化期間において、シリアルデータのパターンによって識別される各種コマンドが発行される。つまり、コマンドＣＭＤ１，ＣＭＤ２，ＣＭＤ３，ＣＭＤ９，ＣＭＤ７，ＣＭＤ１６，ＣＭＤ６，ＣＭＤ１９，ＣＭＤ１４，ＣＭＤ６が順次発行される。そして、リードコマンドＣＭＤ１７，ＣＭＤ１８の発行により、それぞれ第２プログラムＰＲＧ２や第３プログラムＰＲＧ３の転送が行われる。この結果、第２プログラムＰＲＧ２や第３プログラムＰＲＧ３を実行までに時間がかかる。
【００６１】
これに対して、図１に示されるデータ処理装置によれば、図２に示されるように、ＣＰＵ１２１によってブートプログラムＰＲＧ０が実行され、コマンド（ＣＭＤ）信号ラインがローレベルにされることで、ｅＭＭＣ１３がブートオペレーションモードに遷移される。そして第１プログラムＰＲＧ１が内蔵ＲＡＭ１２５に転送されると、上記ブートオペレーションモードを終了しないままの状態で、ＣＰＵ１２１はブートプログラムＰＲＧ０から第１プログラムＰＲＧ１の実行に遷移される。さらに第１プログラムＰＲＧ１がＣＰＵ１２１で実行されることにより、外部ＲＡＭ１４が初期化された後に、第２プログラムＰＲＧ２及びスプラッシュ画面データの転送が行われる。第２プログラムＰＲＧ２がＣＰＵ１２１で実行されることによって液晶パネル１１へのスプラッシュ画面表示が開始され、第３プログラムＰＲＧ３の転送が終了した時点で、コマンド（ＣＭＤ）信号ラインがハイレベルにされることでブートオペレーションモードが終了される。このように１回のブートオペレーション期間に、第１プログラムＰＲＧ１の転送が行われ、外部ＲＡＭ１４が初期化されて第２プログラムＰＲＧ２，ＰＲＧ３の転送が行われるため、外部ＲＡＭ１４が初期化されてから、図７に示されるのに比べて、第２プログラムＰＲＧ２や第３プログラムＰＲＧ３を速やかに実行することができる。これにより、外部ＲＡＭ１４が初期化されてからスプラッシュ画面表示までの時間を短縮することができる。
【００６２】
《実施の形態２》
実施の形態１では、第３プログラムＰＲＧ３が外部ＲＡＭ１４に転送された後に、コマンド（ＣＭＤ）信号ラインがハイレベルにされることでブートオペレーションモードが終了された。しかし、この第３プログラムＰＲＧ３の転送を行わない場合には、例えば図８に示されるように、第２プログラムＰＲＧ２が外部ＲＡＭ１４に転送された後に、コマンド（ＣＭＤ）信号ラインをハイレベルにすることでブートオペレーションモード終了させるようにしても良い。
【００６３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６４】
例えば、ｅＭＭＣ１３は、組み込みマルチメディアカードに限定されるものではなく、組み込みマルチメディアカード以外のメモリカードとすることができる。
【００６５】
外部ＲＡＭ１４は、ＳＤＲＡＭに限定されるものではなく、ランダムアクセス可能な一般的なＲＡＭを適用することができる。
【００６６】
第２プログラムＰＲＧ２の実行によって、スプラッシュ画面の表示を行わない場合もあり得る。
【符号の説明】
【００６７】
１  データ処理装置
１１  液晶パネル
１２  ＭＣＵ
１３  ｅＭＭＣ
１４  外部ＲＡＭ
１２１  ＣＰＵ
１２２  ＬＣＤコントローラ
１２３  ブート用ＲＯＭ
１２５  内蔵ＲＡＭ
１２６  クロック生成回路
１２７  ＭＭＣホストコントローラ
１２８  ＭＭＣ・ＦＩＦＯ
１２９  ＤＭＡＣ
１３０  バスコントローラ
１２７１  ＣＬＫ生成回路
１２７２  トライステートバッファ
１２７３  通信制御回路
１２７４  ＦＩＦＯ制御・ＦＩＦＯ状態検出回路
１２７５  データレジスタ
１２７６  制御レジスタ
【図１】
2013020538.tif 000003
【図２】
2013020538.tif 000004
【図３】
2013020538.tif 000005
【図４】
2013020538.tif 000006
【図５】
2013020538.tif 000007
【図６】
2013020538.tif 000008
【図７】
2013020538.tif 000009
【図８】
2013020538.tif 000010