(57)【要約】【課題】外部メモリからイニシャルロードするプログラムに対して外部メモリ上の自由なマッピングを簡単な構成によって許容することができるデータプロセッサを提供する。【解決手段】外部メモリからＲＡＭにイニシャルロードされたプログラムを実行するデータプロセッサに、所定のリセット指示に応答して、外部メモリから転送制御情報をリードし、リードした転送制御情報が示すアドレス情報に基づいて当該外部メモリからプログラムをダウンロードし、ダウンロードしたプログラムを前記ＲＡＭに転送し、この転送を完了した後に、前記中央処理装置へ前記所定のリセット解除を指示する、ブートローダコントローラを採用する。プログラムに対して外部メモリ上のマッピングに応じた転送制御情報を用意すればよく、プログラムに対して外部メモリ上の自由なマッピングを簡単な構成によって許容することができる。【選択図】図１
2011227592.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリからＲＡＭに転送されたプログラムを実行するデータプロセッサであって、
与えられたリセット解除の指示に応答して前記ＲＡＭの所定アドレスを開始アドレスとしてプログラムの実行を開始する中央処理装置と、
所定のリセット解除の指示に応答して、前記外部メモリから転送制御情報をリードし、リードした転送制御情報が示すアドレス情報に基づいて当該外部メモリからプログラムをダウンロードし、ダウンロードしたプログラムを前記ＲＡＭに転送し、この転送を完了した後に、前記中央処理装置へリセット解除の指示を与えるブートローダコントローラと、を有するデータプロセッサ。
【請求項２】
前記ブートローダコントローラから前記ＲＡＭへプログラムを転送するための専用経路を有する、請求項１記載のデータプロセッサ。
【請求項３】
前記ブートローダコントローラは、前記ダウンロードしたプログラムに対して転送誤りの有無を検出する誤り検出回路を有する、請求項１記載のデータプロセッサ。
【請求項４】
前記ブートローダコントローラは、前記誤り検出回路によるプログラム転送の誤りを検出したとき、前記転送制御情報で指定される回数を上限として、転送誤りの無いことが検出されるまでプログラムダウンロードのリトライを行う、請求項３記載のデータプロセッサ。
【請求項５】
前記ブートローダコントローラは、前記誤り検出回路による検出動作の有効が指示されたときその検出動作を行う、請求項３記載のデータプロセッサ。
【請求項６】
前記ブートローダコントローラは、前記転送制御情報が示すスタートアドレスからプログラムのダウンロードを開始し、前記転送制御情報が示す容量のプログラムをダウンロードする、請求項１記載のデータプロセッサ。
【請求項７】
前記ブートローダコントローラは、前記ＲＡＭへのプログラムの転送終了を外部に通知する、請求項１記載のデータプロセッサ。
【請求項８】
前記ブートローダコントローラは、前記ＲＡＭへのプログラムの転送完了の失敗を外部に通知する、請求項６記載のデータプロセッサ。
【請求項９】
前記ＲＡＭはデータプロセッサに内蔵されたＲＡＭである、請求項１記載のデータプロセッサ。
【請求項１０】
前記ＲＡＭはデータプロセッサの外部に接続されたＲＡＭである、請求項１記載のデータプロセッサ。
【請求項１１】
前記ブートローダコントローラは、前記転送制御情報で指定される周波数に同期して前記プログラムのダウンロードを行なう、請求項１記載のデータプロセッサ。
【請求項１２】
前記ブートローダコントローラは、前記転送制御情報で指定されるデータサイズ単位で複数回に分けて前記プログラムのダウンロードを行なう、請求項１記載のデータプロセッサ。
【請求項１３】
前記ブートローダコントローラが応答する所定のリセット解除の指示は、そのリセット解除の指示が前記ＲＡＭの記憶情報の保持を保証しないリセット要因に対応するものであり、
前記ＲＡＭの記憶情報の保持を保証するリセット要因に対するリセット解除の指示に対して、ＣＰＵは当該リセット解除の指示に応答して前記ＲＡＭのプログラムを実行する、請求項１記載のデータプロセッサ。
【請求項１４】
前記ブートローダコントローラが応答する所定のリセット解除の指示は、外部から供給されるリセット信号によるリセット要因に対応する指示、及び電源電圧レベル低下による内部リセット信号によるリセット要因に対応する指示を含み、ウォッチドッグタイマのタイムアウトによる内部リセット信号によるリセット要因に対応する指示を含まず、
前記ブートローダコントローラからのプログラムの転送が完了されたとき、前記ＲＡＭはライトプロテクトされ、前記ライトプロテクトは前記外部から供給されるリセット信号によるリセット指示及び前記電源電圧レベル低下による内部リセット信号によるリセット指示によって解除される、請求項１記載のデータプロセッサ。
【請求項１５】
前記ブートローダコントローラが応答する所定のリセット解除の指示は、そのリセット解除の指示が前記ＲＡＭの記憶情報の保持を保証しないリセット要因に対応するものであり、
リセット要因毎にブートローダコントローラがプログラム転送を実施する否かを設定するレジスタを持つ、請求項１７記載のデータプロセッサ。
【請求項１６】
前記転送制御情報が示すアドレス情報は、外部メモリ上で離散的にマッピングされているダウンロードされるべき所定のプログラムの一部の所在を示すアドレス情報であり、
前記所定のプログラムの一部は前記ブートローダコントローラがダウンロードするブートプログラムであり、
前記所定のプログラムの残りは前記中央処理装置が前記ブートプログラムを実行することによって前記外部メモリからダウンロードして前記ＲＡＭに転送される離散的にマッピングされたプログラムである、請求項１記載のデータプロセッサ。
【請求項１７】
外部メモリからＲＡＭに転送されたプログラムを実行することにより、外部に接続された入力デバイスの制御を行うデータプロセッサと、
前記データプロセッサにＬＰＣバスで接続された入出力コントローラハブと、
前記入出力コントローラハブにシステムバスで接続されたメインプロセッサと、を有するデータ処理システムであって、
前記データプロセッサは、与えられたリセット解除の指示に応答して前記ＲＡＭの所定アドレスを開始アドレスとしてプログラムの実行を開始する中央処理装置と、
所定のリセット解除の指示に応答して、前記外部メモリから転送制御情報をリードし、リードした転送制御情報が示すアドレス情報に基づいて当該外部メモリからプログラムをダウンロードし、ダウンロードしたプログラムを前記ＲＡＭに転送し、この転送を完了した後に、前記中央処理装置へリセット解除の指示を与えるブートローダコントローラと、を有する、データ処理システム。
【請求項１８】
前記ブートローダコントローラは、前記ダウンロードしたプログラムに対して転送誤りの有無を検出する誤り検出回路を有する、請求項１７記載のデータプロセッサ。
【請求項１９】
前記ブートローダコントローラは、前記誤り検出回路によるプログラム転送の誤りを検出したとき、前記転送制御情報で指定される回数を上限として、転送誤りの無いことが検出されるまでプログラムダウンロードのリトライを行う、請求項１７記載のデータプロセッサ。
【請求項２０】
前記ブートローダコントローラは、前記誤り検出回路による検出動作の有効が指示されたときその検出動作を行う、請求項１７記載のデータプロセッサ。
【請求項２１】
前記ブートローダコントローラは、前記転送制御情報が示すスタートアドレスからプログラムのダウンロードを開始し、前記転送制御情報が示す容量のプログラムをダウンロードする、請求項１７記載のデータプロセッサ。
【請求項２２】
前記ブートローダコントローラは、前記ＲＡＭへのプログラムの転送終了を外部に通知する、請求項１７記載のデータ処理システム。
【請求項２３】
前記ブートローダコントローラは、前記ＲＡＭへのプログラムの転送完了の失敗を外部に通知する、請求項１７記載のデータ処理システム。
【請求項２４】
前記ブートローダコントローラは、前記転送制御情報で指定される周波数に同期して前記プログラムのダウンロードを行なう、請求項１７記載のデータ処理システム。
【請求項２５】
前記ブートローダコントローラは、前記転送制御情報で指定されるデータサイズ単位で複数回に分けて前記プログラムのダウンロードを行なう、請求項１７記載のデータ処理システム。
【請求項２６】
前記ブートローダコントローラが応答する所定のリセット解除の指示は、そのリセット指示が前記ＲＡＭの記憶情報の保持を保証しないリセット要因に対応するものであり、
前記ＲＡＭの記憶情報の保持を保証するリセット要因に対応するリセット解除の指示に対して、ＣＰＵは当該リセット解除の指示に応答して前記ＲＡＭのプログラムを実行する、請求項１７記載のデータ処理システム。
【請求項２７】
前記ブートローダコントローラが応答する所定のリセット解除の指示は、外部から供給されるリセット信号によるリセット要因に対応する指示、及び電源電圧レベル低下による内部リセット信号によるリセット要因に対応する指示を含み、ウォッチドッグタイマのタイムアウトによる内部リセット信号によるリセット要因に対応する指示を含まず、
前記ＲＡＭは前記ブートローダコントローラからのプログラムの転送が完了されたとき、ライトプロテクトされ、前記ライトプロテクトは前記外部から供給されるリセット信号によるリセット指示及び前記電源電圧レベル低下による内部リセット信号によるリセット指示によって解除される、請求項１７記載のデータ処理システム。
【請求項２８】
前記ブートローダコントローラが応答する所定のリセット解除の指示は、そのリセット解除の指示が前記ＲＡＭの記憶情報の保持を保証しないリセット要因に対応するものであり、
リセット要因毎にブートローダコントローラがプログラム転送を実施する否かを設定するレジスタを持つ、請求項１７記載のデータプロセッサ。
【請求項２９】
前記転送制御情報が示すアドレス情報は、外部メモリ上で離散的にマッピングされているダウンロードされるべき所定のプログラムの一部の所在を示すアドレス情報であり、
前記所定のプログラムの一部は前記ブートローダコントローラがダウンロードするブートプログラムであり、
前記所定のプログラムの残りは前記中央処理装置が前記ブートプログラムを実行することによって前記外部メモリからダウンロードして前記ＲＡＭに転送される離散的にマッピングされたプログラムである、請求項１７記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部メモリから読み込んでＲＡＭに格納したプログラムを実行するデータプロセッサ、及び当該データプロセッサを入力デバイスの制御に用いるデータ処理システムに関し、例えばＰＣ（パーソナルコンピュータ）のキーボード及び電源制御を行うデータプロセッサやこれを搭載したＰＣに適用して有効な技術に関する。
【背景技術】
【０００２】
データプロセッサにオンチップされた電気的に書換え可能なＲＯＭに当該データプロセッサが実行するプログラムを格納する場合には個別にマスクＲＯＭを設計する時間と費用を省くことができるが、電気的に書換え可能なＲＯＭを搭載することによってコストが上昇する。この点で、外部メモリからＲＡＭにプログラムを読み込んで実行する構成を採用したデータプロセッサがある。
【０００３】
特許文献１には、ＣＰＵ、シリアルフラッシュインタフェース回路、プログラム転送回路、プログラム用内蔵ＲＡＭ、書き込みマスク回路などの各回路から構成されるマイクロコンピュータにおいて、このマイクロコンピュータの外部にシリアルフラッシュメモリが接続され、電源投入時、ＣＰＵが動作する前に、シリアルフラッシュメモリからプログラムを読み込んでプログラム用内蔵ＲＡＭに書き込む。ＣＰＵがプログラム用内蔵ＲＡＭ上のプログラムを実行し、必要に応じてプログラム用内蔵ＲＡＭへの書き込みを禁止する、構成について記載される。
【０００４】
特許文献２には、システムＬＳＩにおいて、シリアルフラッシュメモリ用のインタフェースであるブートローダを設け、シリアルフラッシュメモリからブートプログラムをリードし、該リードしたブートプログラムを実行してシリアルフラッシュメモリ内のメインプログラムをＳＤＲＡＭにコピーする構成について記載がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１４１０９６号公報
【特許文献２】特開２００９−１６９４８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術ではＲＡＭに転送するプログラムをリードするソースアドレスを任意に設定する場合にはＭＭＵを用いて制御することが必要になり、ＣＰＵのリセット解除前にＭＭＵを用いるためには特別な手段を用いてＭＭＵの設定を行わなければならない。特許文献２に記載の技術ではブートプログラムの内容に従ってメインプログラムをダウンロードする構成になっており、シリアルフラッシュメモリ上におけるブートプログラムの配置を任意に設定することについては考慮されておらず、また、シリアルフラッシュメモリ上でメインプログラムを任意に配置する場合にはそれをブートプログラムの記述に行って行わなければならず、柔軟に対応するのは難しい。
【０００７】
本発明の目的は、外部メモリからイニシャルロードするプログラムに対して外部メモリ上の自由なマッピングを簡単な構成によって許容することができるデータプロセッサを提供することにある。
【０００８】
本発明の別の目的は、外部メモリからイニシャルロードするプログラムに対する外部メモリ上の自由なマッピングを許容することができ、システムコストの低減に寄与することができるデータ処理システムを提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、外部メモリからＲＡＭにイニシャルロードされたプログラムを実行するデータプロセッサに、所定のリセット解除の指示に応答して、外部メモリから転送制御情報をリードし、リードした転送制御情報が示すアドレス情報に基づいて当該外部メモリからプログラムをダウンロードし、ダウンロードしたプログラムを前記ＲＡＭに転送し、この転送を完了した後に、前記中央処理装置へリセット解除の指示を与える、ブートローダコントローラを採用する。
【００１２】
転送制御情報が示すアドレス情報に基づいてプログラムをダウンロードするから、そのプログラムに対して外部メモリ上のマッピングに応じた転送制御情報を用意すればよく、プログラムに対して外部メモリ上の自由なマッピングを簡単な構成によって許容することができる。この点で、システムコストの低減に資することができる。
【発明の効果】
【００１３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１４】
すなわち、外部メモリからイニシャルロードするプログラムに対して外部メモリ上の自由なマッピングを簡単な構成によって許容することができる。
【００１５】
システムコストの低減に寄与することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は本発明の実施の形態１に係るデータプロセッサを例示するブロック図である。
【図２】図２はブートローダコントローラのさらに詳細な構成を例示するブロック図である。
【図３】図３はプログラム転送情報の一例を示す説明図である。
【図４】図４はブートローダコントローラによるダウンロード処理のフローチャートである。
【図５】図５は実施の形態２に係るデータプロセッサを例示するブロック図である。
【図６】図６は実施の形態３に係るデータプロセッサを例示するブロック図である。
【図７】図７は実施の形態４で使用するプログラム転送情報の構成を例示する説明図である。
【図８】図８はアクセスサイズをプログラムサイズの１／１６としてプログラムをダウンロードするときのシリアルフラッシュメモリ１０１に対するアクセス動作タイミングを例示するタイミングチャートである。
【図９】図９は実施の形態５に係るデータプロセッサを例示するブロック図である。
【図１０】図１０はリセット要因毎に初期化が行なわれるか否かを機能ブロック（ＣＰＵ，ブートローダコントローラ、ＲＡＭ、その他）単位で示した説明図である。
【図１１】図１１は実施の形態７におけるシリアルフラッシュメモリ上におけるプログラムの配置とＲＡＭにダウンロードされたプログラムの配置との関係を例示する説明図である。
【図１２】図１２は実施の形態で説明したデータプロセッサをキーボード及び電源制御用コントローラとして採用したノートＰＣの概略的な構成例示するブロック図である。
【発明を実施するための形態】
【００１７】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕＜リードした転送制御情報に基づくプログラムダウンロード＞
本発明の代表的な実施の形態に係るデータプロセッサ（１０２，１０２Ａ〜１０２Ｃ）は、外部メモリ（１０１）からＲＡＭ(１０５)に転送されたプログラム(１３１)を実行するデータプロセッサであって、与えられたリセット解除の指示に応答して前記ＲＡＭの所定アドレスを開始アドレスとしてプログラムの実行を開始する中央処理装置(１０３)を有する。さらに、所定のリセット解除の指示に応答して、前記外部メモリから転送制御情報（１３０）をリードし、リードした転送制御情報が示すアドレス情報に基づいて当該外部メモリからプログラムをダウンロードし、ダウンロードしたプログラムを前記ＲＡＭに転送し、この転送を完了した後に、前記中央処理装置へリセット解除の指示を与えるブートローダコントローラ(１０４)を有する。
【００１９】
転送制御情報が示すアドレス情報に基づいてプログラムをダウンロードするから、そのプログラムに対して外部メモリ上のマッピングに応じた転送制御情報を用意すればよく、プログラムに対して外部メモリ上の自由なマッピングを簡単な構成によって許容することができる。この点で、システムコストの低減に資することができる。
【００２０】
〔２〕＜ＲＡＭへのプログラム転送専用経路＞
項１のデータプロセッサにおいて、前記ブートローダコントローラから前記ＲＡＭへプログラムを転送するための専用経路(１０８)を有する。
【００２１】
共通バス経由で転送する場合に比べると、ブートローダコントローラは共通バスアクセス機能を備えることを要せず、転送制御に要する回路規模を縮小することができる。
【００２２】
〔３〕＜プログラム転送の誤りを検出＞
項１又は２のデータプロセッサにおいて、前記ブートローダコントローラは、前記ダウンロードしたプログラムに対して転送誤りの有無を検出する誤り検出回路(１２２)を有する。
【００２３】
転送誤りによる誤動作を未然に防止することができる。
【００２４】
〔４〕＜プログラム転送の誤りを検出したときのリトライ回数の指定＞
項３のデータプロセッサにおいて、前記ブートローダコントローラは、前記誤り検出回路によるプログラム転送の誤りを検出したとき、前記転送制御情報で指定される回数を上限として、転送誤りの無いことが検出されるまでプログラムダウンロードのリトライを行う。
【００２５】
リトライを許可することによって、解消可能な一時的要因による転送誤りを容易に解消することができる。
【００２６】
〔５〕＜誤り検出の有効無効切替＞
項３又は４のデータプロセッサにおいて、前記ブートローダコントローラは、前記誤り検出回路による検出動作の有効（ＣＲＣＥＮの活性）が指示されたときその検出動作を行う。
【００２７】
転送誤りを殆ど生じない環境下で処理するような場合にブート動作の高速化を優先させることが可能になる。
【００２８】
〔６〕＜プログラム転送のサイズの指定＞
項１乃至５の何れかのデータプロセッサにおいて、前記ブートローダコントローラは、前記転送制御情報が示すスタートアドレスからプログラムのダウンロードを開始し、前記転送制御情報が示す容量のプログラムをダウンロードする。
【００２９】
転送制御情報としてスタートアドレスとエンドアドレスを持つ場合に限定されない。
【００３０】
〔７〕＜プログラム転送終了の通知＞
項１乃至５の何れかのデータプロセッサにおいて、前記ブートローダコントローラは、前記ＲＡＭへのプログラムの転送終了（ＰＧＭＴＲ）を外部に通知する。
【００３１】
データプロセッサによるプログラム実行可能な状態を外部で一早く把握することが可能になり、データプロセッサに接続する上位階層システムの動作開始若しくは初期化のトリガなどに適用可能になる。
【００３２】
〔８〕＜プログラム転送失敗の通知＞
項３乃至７のデータプロセッサにおいて、前記ブートローダコントローラは、前記ＲＡＭへのプログラムの転送完了の失敗（ＢＬＥＲＲ）を外部に通知する。
【００３３】
データプロセッサによるプログラム実行不可能な状態を外部で一早く把握することが可能になり、インジケータへの表示或いはリカバリ処理へのトリガ等に適用可能になる。
【００３４】
〔９〕＜内蔵ＲＡＭ＞
項１乃至８の何れかのデータプロセッサにおいて、前記ＲＡＭはデータプロセッサに内蔵されたＲＡＭである。
【００３５】
〔１０〕＜外付けＲＡＭ＞
項１乃至８の何れかのデータプロセッサにおいて、前記ＲＡＭはデータプロセッサの外部に接続されたＲＡＭである。
【００３６】
内蔵ＲＡＭの容量が小さい場合にも対応できる。
【００３７】
〔１１〕＜プログラム転送時間の調整＞
項１乃至１０の何れかのデータプロセッサにおいて、前記ブートローダコントローラは、前記転送制御情報で指定される周波数（同期クロックで指定されるる周波数）に同期して前記プログラムのダウンロードを行なう。
【００３８】
転送制御情報に基づいて外部メモリからＲＡＭへのプログラムの転送に要する時間を調整することが可能になる。外部メモリからＲＡＭへのプログラムの転送完了によってＣＰＵへのリセット解除が指示されるから、データプロセッサの内外における初期化動作が完了されるまでに要する時間に対して、ブートローダコントローラによるＣＰＵのリセット解除のタイミングが早すぎたり遅すぎたりしないようにすることができる。
【００３９】
〔１２〕＜プログラム転送時間の調整＞
項１乃至１０の何れかのデータプロセッサにおいて、前記ブートローダコントローラは、前記転送制御情報で指定されるデータサイズ（転送単位）の単位で複数回に分けて前記プログラムのダウンロードを行なう。
【００４０】
上記データサイズ単位を小さくすれば分割して行うプログラムダウンロードの動作回数が増えるのでプログラムダウンロードを完了するまでに要する時間が増える。したがって、上記同様に、転送制御情報に基づいて外部メモリからＲＡＭへのプログラムの転送に要する時間を調整することが可能になり、データプロセッサの内外における初期化動作が完了されるまでに要する時間に対して、ブートローダコントローラによるＣＰＵのリセット解除のタイミングが早すぎたり遅すぎたりしないようにすることができる。
【００４１】
〔１３〕＜リセットの要因による再起動レベルの選択＞
項１乃至１２の何れかのデータプロセッサにおいて、前記ブートローダコントローラが応答する所定のリセット解除の指示は、そのリセット解除の指示が前記ＲＡＭの記憶情報の保持を保証しないリセット要因（ＲＥＳ，ＲＥＳ＿ＬＶＤ）に対応するものであり、前記ＲＡＭの記憶情報の保持を保証するリセット要因（ＲＥＳ＿ＷＤＴ）に対応するリセット解除の指示に対して、ＣＰＵは当該リセット解除の指示に応答して前記ＲＡＭのプログラムを実行する。
【００４２】
リセット要因に応じてブートローダコントローラを用いたＲＡＭへのプログラムダウンロードを行うか否かを適正に制御することができる。
【００４３】
〔１４〕＜リセットの要因による再起動レベルの選択＞
項１乃至１２の何れかのデータプロセッサにおいて、前記ブートローダコントローラが応答する所定のリセット解除の指示は、外部から供給されるリセット信号（ＲＥＳ）によるリセット要因に対応する指示（ｒｅｓ１の立ち上がり）、及び電源電圧レベル低下による内部リセット信号（ＲＥＳ＿ＬＶＤ）によるリセット要因に対応する指示（ｒｅｓ１＿ＬＶＤの立ち上がり）を含む。ウォッチドッグタイマのタイムアウトによる内部リセット信号（ＲＥＳ＿ＷＤＴ）によるリセット要因に対応する指示（ｒｅｓ１＿ＷＤＴ）は含まない。前記ブートローダコントローラからのプログラムの転送が完了されたとき、前記ＲＡＭはライトプロテクトされ、前記ライトプロテクトは前記外部から供給されるリセット信号によるリセット指示及び前記電源電圧レベル低下による内部リセット信号によるリセット指示によって解除される。
【００４４】
リセット要因に応じてブートローダコントローラを用いたＲＡＭへのプログラムダウンロードを行うか否かを適正に制御することができる。
【００４５】
〔１５〕＜リセットの要因による再起動レベルの選択＞
項１乃至１２の何れかのデータプロセッサにおいて、複数のリセット要因がある場合に、リセット要因毎にブートローダコントローラを用いてＲＡＭへのプログラムダウンロードを行うか否かの設定をするリセット要因起動レベル制御レジスタ１２３を持つ。
【００４６】
リセット要因に応じてブートローダコントローラを用いたＲＡＭへのプログラムダウンロードを行うか否かを適正に制御することができる。
【００４７】
〔１６〕＜スクランブルされたプログラムダウンロード＞
項１乃至１５の何れかのデータプロセッサにおいて、前記転送制御情報(１３０)が示すアドレス情報は、外部メモリ上で離散的にマッピングされているダウンロードされるべき所定のプログラム（１３１Ａ〜１３１Ｄ）の一部のプログラム（１３１Ａ）の所在を示すアドレス情報である。前記所定のプログラムの一部は前記ブートローダコントローラがダウンロードするブートプログラムであり、前記所定のプログラムの残りは前記中央処理装置が前記ブートプログラムを実行することによって前記外部メモリからダウンロードして前記ＲＡＭに転送される離散的にマッピングされたプログラムである。
【００４８】
これによりダウンロードされるべき所定のプログラムを外部メモリ上でスクランブルして格納することができるので、プログラムの盗用若しくは不正使用を抑制することができるという点で、プログラムに対するセキュリティーを向上させることができる。
【００４９】
〔１７〕＜リードした転送制御情報に基づくプログラムダウンロード＞
本発明の別の実施の形態に係るデータ処理システムは、外部メモリからＲＡＭに転送されたプログラムを実行することにより、外部に接続された入力デバイスの制御を行うデータプロセッサ（１０２等）と、前記データプロセッサにＬＰＣバスで接続された入出力コントローラハブ（２０１，２０５）と、前記入出力コントローラハブにシステムバスで接続されたメインプロセッサ（２００）と、を有する。前記データプロセッサは、与えられたリセット解除の指示に応答して前記ＲＡＭの所定アドレスを開始アドレスとしてプログラムの実行を開始する中央処理装置を有する。さらに、前記データプロセッサは、所定のリセット解除の指示に応答して、前記外部メモリから転送制御情報をリードし、リードした転送制御情報が示すアドレス情報に基づいて当該外部メモリからプログラムをダウンロードし、ダウンロードしたプログラムを前記ＲＡＭに転送し、この転送を完了した後に、前記中央処理装置へリセット解除の指示を与えるブートローダコントローラを有する。
【００５０】
転送制御情報が示すアドレス情報に基づいてプログラムをダウンロードするから、そのプログラムに対して外部メモリ上のマッピングに応じた転送制御情報を用意すればよく、プログラムに対して外部メモリ上の自由なマッピングを簡単な構成によって許容することができる。この点で、データ処理システムのシステムコストの低減に資することができる。
【００５１】
〔１８〕＜プログラム転送の誤りを検出＞
項１７のデータプロセッサにおいて、前記ブートローダコントローラは、前記ダウンロードしたプログラムに対して転送誤りの有無を検出する誤り検出回路(１２２)を有する。
【００５２】
転送誤りによる誤動作を未然に防止することができる。
【００５３】
〔１９〕＜プログラム転送の誤りを検出したときのリトライ回数の指定＞
項１７のデータプロセッサにおいて、前記ブートローダコントローラは、前記誤り検出回路によるプログラム転送の誤りを検出したとき、前記転送制御情報で指定される回数を上限として、転送誤りの無いことが検出されるまでプログラムダウンロードのリトライを行う。
【００５４】
リトライを許可することによって、解消可能な一時的要因による転送誤りを容易に解消することができる。
【００５５】
〔２０〕＜誤り検出の有効無効切替＞
項１８又は１９のデータプロセッサにおいて、前記ブートローダコントローラは、前記誤り検出回路による検出動作の有効（ＣＲＣＥＮの活性）が指示されたときその検出動作を行う。
【００５６】
転送誤りを殆ど生じない環境下で処理するような場合にブート動作の高速化を優先させることが可能になる。
【００５７】
〔２１〕＜プログラム転送のサイズの指定＞
項１７乃至２０の何れかのデータプロセッサにおいて、前記ブートローダコントローラは、前記転送制御情報が示すスタートアドレスからプログラムのダウンロードを開始し、前記転送制御情報が示す容量のプログラムをダウンロードする。
【００５８】
転送制御情報としてスタートアドレスとエンドアドレスを持つ場合に限定されない。
【００５９】
〔２２〕＜プログラム転送終了の通知＞
項１７乃至２１のデータ処理システムにおいて、前記ブートローダコントローラは、前記ＲＡＭへのプログラムの転送終了を外部に通知する。
【００６０】
データプロセッサによるプログラム実行可能な状態を前記入出力コントローラハブ更にはその上流のメインプロセッサで一早く把握することが可能になり、それをデータプロセッサに接続する上位階層システムの動作開始若しくは初期化のトリガなどに適用可能になる。
【００６１】
〔２３〕＜プログラム転送失敗の通知＞
項１８乃至２２のデータ処理システムにおいて、前記ブートローダコントローラは、前記ＲＡＭへのプログラムの転送完了の失敗を外部に通知する。
【００６２】
データプロセッサによるプログラム実行不可能な状態を前記入出力コントローラハブ更にはその上流のメインプロセッサで一早く把握することが可能になり、それをインジケータへの表示或いはリカバリ処理へのトリガ等に適用可能になる。
【００６３】
〔２４〕＜プログラム転送時間の調整＞
項１７乃至２３の何れかのデータ処理システムにおいて、前記ブートローダコントローラは、前記転送制御情報で指定される周波数に同期して前記プログラムのダウンロードを行なう。
【００６４】
転送制御情報に基づいて外部メモリからＲＡＭへのプログラムの転送に要する時間を調整することが可能になる。外部メモリからＲＡＭへのプログラムの転送完了によってＣＰＵへのリセット解除が指示されるから、データプロセッサのリセット指示によって内部が初期化されるまでに要する時間に対して、更には前記入出力コントローラハブに接続するデバイスの初期化に要する時間に対して、ブートローダコントローラによるＣＰＵのリセット解除のタイミングが早すぎたり遅すぎたりしないようにすることができる。
【００６５】
〔２５〕＜プログラム転送時間の調整＞
項１７乃至２３の何れかのデータ処理システムにおいて、前記ブートローダコントローラは、前記転送制御情報で指定されるデータサイズ単位で複数回に分けて前記プログラムのダウンロードを行なう。
【００６６】
上記データサイズ単位を小さくすれば分割して行うプログラムダウンロードの動作回数が増えるのでプログラムダウンロードを完了するまでに要する時間が増える。したがって、上記同様に、転送制御情報に基づいて外部メモリからＲＡＭへのプログラムの転送に要する時間を調整することが可能になり、データプロセッサのリセット指示によって内部が初期化されるまでに要する時間に対して、更には前記入出力コントローラハブに接続するデバイスの初期化に要する時間に対して、ブートローダコントローラによるＣＰＵのリセット解除のタイミングが早すぎたり遅すぎたりしないようにすることができる。
【００６７】
〔２６〕＜リセットの要因により再起動レベルの選択＞
項１７乃至２５の何れかのデータ処理システムにおいて、前記ブートローダコントローラが応答する所定のリセット解除の指示は、そのリセット指示が前記ＲＡＭの記憶情報の保持を保証しないリセット要因に対応するものであり、前記ＲＡＭの記憶情報の保持を保証するリセット要因に対応するリセット解除の指示に対して、ＣＰＵは当該リセット解除の指示に応答して前記ＲＡＭのプログラムを実行する。
【００６８】
リセット要因に応じてブートローダコントローラを用いたＲＡＭへのプログラムダウンロードを行うか否かを適正に制御することができる。
【００６９】
〔２７〕＜リセットの要因により再起動レベルの選択＞
項１７乃至２５の何れかのデータ処理システムにおいて、前記ブートローダコントローラが応答する所定のリセット解除の指示は、外部から供給されるリセット信号によるリセット要因に対応する指示、及び電源電圧レベル低下による内部リセット信号によるリセット要因に対応する指示を含み、ウォッチドッグタイマのタイムアウトによる内部リセット信号によるリセット要因に対応する指示を含まない。前記ＲＡＭは前記ブートローダコントローラからのプログラムの転送が完了されたとき、ライトプロテクトされ、前記ライトプロテクトは前記外部から供給されるリセット信号によるリセット指示及び前記電源電圧レベル低下による内部リセット信号によるリセット指示によって解除される。
【００７０】
リセット要因に応じてブートローダコントローラを用いたＲＡＭへのプログラムダウンロードを行うか否かを適正に制御することができる。
【００７１】
〔２８〕＜リセットの要因により再起動レベルの選択＞
項１７乃至２５の何れかのデータプロセッサにおいて、複数のリセット要因がある場合に、リセット要因毎にブートローダコントローラを用いてＲＡＭへのプログラムダウンロードを行うか否かの設定をするリセット要因起動レベル制御レジスタを持つ。
【００７２】
リセット要因に応じてブートローダコントローラを用いたＲＡＭへのプログラムダウンロードを行うか否かを適正に制御することができる。
【００７３】
〔２９〕＜スクランブルされたプログラムダウンロード＞
項１７乃至２８の何れかのデータ処理システムにおいて、前記転送制御情報が示すアドレス情報は、外部メモリ上で離散的にマッピングされているダウンロードされるべき所定のプログラムの所在を示すアドレス情報である。前記所定のプログラムの一部は前記ブートローダコントローラがダウンロードするブートプログラムであり、前記所定のプログラムの残りは前記中央処理装置が前記ブートプログラムを実行することによって前記外部メモリからダウンロードして前記ＲＡＭに転送される離散的にマッピングされたプログラムである。
【００７４】
これによりダウンロードされるべき所定のプログラムを外部メモリ上でスクランブルして格納することができるので、プログラムの盗用若しくは不正使用を抑制することができるという点で、プログラムに対するセキュリティーを向上させることができる。
【００７５】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００７６】
［実施の形態１］
図１には本発明の実施の形態１に係るデータプロセッサが例示される。データプロセッサ（ＭＣＵ）１０２は、特に制限されないが、単結晶シリコンなどの１個の半導体基板に相補型ＭＯＳ集積回路製造技術などにより形成される。データプロセッサ１０２はその外部に接続された外部メモリ、例えばシリアルフラッシュメモリ１０１からイニシャルロードしたプログラムを実行する。
【００７７】
データプロセッサ１０２は、代表的に示された中央処理装置（ＣＰＵ）１０３、ＲＡＭ１０５、システムコントローラ（ＳＹＳＣ）１０６、及びブートローダコントローラ（ＢＬＣ）１０４などを備える。ＣＰＵ１０３はバス１０７を介してＲＡＭ１０５上の所定アドレスを開始アドレスとしてプログラムをアクセスし、それによって順次フェッチした命令を実行する。
【００７８】
ＳＹＳＣ１０６はデータプロセッサ１０２の外部から供給されるリセット信号ＲＥＳやデータプロセッサの内部で生成されるその他のリセット信号（図示を省略）に基づいて内部の初期化信号（リセット信号）を生成し、また、データプロセッサ１０２の外部から供給されるモード信号（図示を省略）に基づいてデータプロセッサの動作モードを制御する。
【００７９】
ブートローダコントローラ１０４は図示を省略するメモリコントローラとしてのシリアルフラッシュメモリインタフェース回路を介してシリアルフラッシュメモリ１０１に接続される。ブートローダコントローラ１０４は、ＳＹＳＣ１０６が出力する初期化信号ｒｅｓ１のハイレベルへの変化によるリセット解除の指示に応答して、前記シリアルフラッシュメモリ１０１から転送制御情報（プログラム転送情報とも記す）１３０をリードし、リードした転送制御情報１３０が示すアドレス情報に基づいて当該シリアルフラッシュメモリ１０１からプログラム１３１をダウンロードし、ダウンロードしたプログラムを前記ＲＡＭ１０５に転送する。ブートローダコントローラ１０４は、この転送を完了した後に、前記中央処理装置へ初期化信号ｒｅｓ２のハイベルへの変化によってリセット解除を指示する。初期化信号ｒｅｓ２は初期化信号ｒｅｓ１のローレベルへの変化に同期してローレベルにされることによってＣＰＵ１０３にリセットを指示し、初期化信号ｒｅｓ２のハイレベルへの変化によってリセット解除が指示され、それによってＣＰＵ１０３は既定のメモリアドレスを開始アドレスとしてＲＡＭ１０５上の命令フェッチを開始して、前記イニシャルロードされたプログラムの実行を開始する。
【００８０】
転送制御情報１３０が示すアドレス情報に基づいてプログラム１３１をダウンロードするから、そのプログラム１３１に対してシリアルフラッシュメモリ１０１上のマッピングに応じた転送制御情報１３０を用意すればよく、データプロセッサ１０２にフラッシュメモリをオンチップしなくてもよい。さらに、プログラム１３０に対してシリアルフラッシュメモリ１０１上の自由なマッピングを簡単な構成によって許容することができる。この点で、データプロセッサ１０２を適用するデータ処理システムのシステムコストの低減に資することができる。
【００８１】
図２にはブートローダコントローラ１０４のさらに詳細な構成が例示される。ブートローダコントローラ１０４はシリアルフラッシュメモリインタフェース回路１１０を介してシリアルフラッシュメモリ１０１に接続される。シリアルフラッシュメモリ１０１は、チップセレクト、メモリクロック、データ入力、データ出力の各シリアル端子を外部インタフェース端子として備え、シリアルフラッシュメモリインタフェース回路１１０はバス１０７を経由するアクセス要求やブートローダコントローラ１０４からのアクセス要求に応答してシリアルフラッシュメモリ１０１の前記各端子の制御を行なう。メモリ選択はチップ選択端子によって行なわれ、アクセス動作の種別がデータ入力端子に供給するアクセスコマンドによって行い、アドレスはデータ入力端子から供給し、書き込みデータはデータ入力端子から供給し、リードデータはデータ出力端子から出力される。
【００８２】
ブートローダコントローラ１０４は制御回路１２１、ＣＲＣ演算回路１２２、及びプログラム転送情報レジスタ１２０を有する。制御回路１２１は、ＳＹＳＣ１０６が出力する初期化信号ｒｅｓ１のハイレベルへの変化によるリセット解除の指示に応答して、シリアルフラッシュメモリインタフェース回路１１０にアクセス要求を発行して、前記シリアルフラッシュメモリ１０１から転送制御情報(プログラム転送情報)１３０をリードし、プログラム転送情報レジスタ１２０に格納する。その際、演算有効信号ＣＲＣＥＮによってＣＲＣ演算回路１２２の演算動作が可能にされている場合は、リードしたプログラム転送情報に対するＣＲＣチェックが行なわれ、その結果が信号ＣＲＣＯＫによって制御部１２１に返され、必要に応じて前記ダウンロード処理のリトライなどが行なわれる。前記シリアルフラッシュメモリ１０１上の転送制御情報１３０の格納先は予め決められていて、制御回路１２１のシーケンス制御ロジックにそのアドレスが組み込まれている。
【００８３】
制御回路１２１は、レジスタ１２０に転送制御情報１３０をロードすると、これを読み込んで、その情報が示すアドレスを用いてプログラム１３０をダウンロードするためのアクセス要求をシリアルフラッシュメモリインタフェース回路１１０に発行し、これにしたがってシリアルフラッシュメモリインタフェース回路１１０は前記シリアルフラッシュメモリ１０１からプログラム１３１を順次リードする。その際、演算有効信号ＣＲＣＥＮによってＣＲＣ演算回路１２２の演算動作が可能にされている場合は、リードしたプログラムに対するＣＲＣチェックが行なわれ、その結果が信号ＣＲＣＯＫによって制御部１２１に返され、必要に応じてプログラムダウンロード処理のリトライなどが行なわれる。
【００８４】
リードされ且つ必要に応じてＣＲＣチェックされて誤りのないとされたプログラム１３１は制御回路１２１の制御によって前記ＲＡＭ１０５の所定の記憶領域に順次格納される。格納先はＣＰＵ１０３によるプログラム実行の先頭アドレスを基点に順次格納される。この先頭アドレスの情報についても制御回路１２１のシーケンス制御ロジックに組み込まれている。
【００８５】
制御回路１２１は前記初期化信号ｒｅｓ１のローレベルヘの変化によるリセット指示に同期して前記初期化信号ｒｅｓ２をローレベルにすることによってＣＰＵ１０３にリセットを指示しており、それによってＣＰＵ１０３の内部の初期化が行なわれ、また、図示は省略するがデータプロセッサ内部のその他の回路に対してもリセットが指示されて初期化動作が行なわれている。制御回路１２１はＲＡＭ１０５へのプログラム１３１の転送を完了すると、ＣＰＵ１０３への初期化信号ｒｅｓ２のハイレベルへの変化によってリセット解除を指示する。初期化信号ｒｅｓ２のハイレベルへの変化によってＣＰＵ１０３にリセット解除が指示され、それによってＣＰＵ１０３は既定のメモリアドレスを開始アドレスとしてＲＡＭ１０５から命令フェッチを開始して、前記イニシャルロードされたプログラム１３１の実行を開始する。
【００８６】
制御回路１２１は前記ＲＡＭ１０５へのプログラム１３１の転送終了をプログラム転送信号ＰＧＭＴＲによってデータプロセッサ１０２の外部に通知する。データプロセッサ１０２によるプログラム実行可能な状態を外部で一早く把握することが可能になり、データプロセッサに接続する上位階層システムの動作開始若しくは初期化のトリガなどに適用可能になる。
【００８７】
また、制御回路１２１は前記ＣＲＣ演算回路１２２のＣＲＣチェックによるエラーをリトライなどによっても解消できないなどの事情によるＲＡＭへのプログラムの転送完了の失敗を不具合信号ＢＬＥＲＲによってデータプロセッサ１０２の外部に通知する。これにより、データプロセッサ１０２によるプログラム実行不可能な状態を外部で一早く把握することが可能になり、インジケータヘの表示或いはリカバリ処理へのトリガ等に適用可能になる。
【００８８】
シリアルフラッシュメモリ１０１は前記プログラム１３１以外のプログラムや制御データを格納する場合も利用され、それらのプログラムや制御情報をＣＰＵ１０３の制御に基づいて規定の回路にロード可能にするために、シリアルフラッシュメモリインタフェース１１０はバス１０７に接続され、ＣＰＵ１０３のアクセス制御を受け得るようになっている。たとえばＰＣなどにおいて低帯域のデバイス接続に用いられるＬＰＣ(Low Pin Count)バスが接続されるＬＰＣインタフェース回路(ＬＰＣＩＦ)１１１が周辺回路としてバス１０７に設けられている場合に、シリアルフラッシュメモリ１０１にＢＩＯＳ(Basic Input / 0utput System)プログラムが格納されているとすると、ＣＰＵ１０３が前記プログラム１３１を実行することによってＬＰＣインタフェース回路１１１のレジスタを設定し、ＬＰＣバスからの要求によりＬＰＣインタフェース回路１１１を経由してシリアルフラッシュメモリインタフェース１１０を介してシリアルフラッシュメモリ１０１からＢＩＯＳプログラムをリードし、これをＬＰＣインタフェース回路１１１を経由してＬＰＣバスに出力することができる。
【００８９】
図３にはプログラム転送情報１３０の一例が示される。シリアルフラッシュメモリ１０１は、プログラム１３１と共にそれに対応するＣＲＣコード２を備えることによって、ＣＲＣ演算回路１２２によるＣＲＣチェックが可能になる。シリアルフラッシュメモリ１０１は前述のようにプログラム１３１以外のプログラム１３３や制御情報１３４を格納することができる。
【００９０】
プログラム転送情報１３０として、たとえぱ、プログラム１３１が格納される領域の先頭アドレス、そのプログラム１３１のサイズ(たとえばバイト数)、ＣＲＣチェックによるエラーなどを生じたときのプログラム転送リトライ回数、プログラム転送情報１３０に対応するＣＲＣコード１を有する。プログラムサイズに代えてプログラム１３１が格納される領域のエンドアドレスを保持してもよい。あるいは、アドレス領域の上位側アドレス情報を規定し、そのサイズを下位側ビット数で規定されサイズとみなすように、アドレス領域を指定してもよい。
【００９１】
図４にはブートローダコントローラ１０４によるダウンロード処理のフローチャートが示される。
【００９２】
初期化信号ｒｅｓ１のハイレベルによってリセット解除の指示が与えられると（Ｓ１）、ブートローダコントローラ１０４はシリアルフラッメモリ１０１からプログラム転送情報１３０を読み込む（Ｓ２）。読み込んだ情報に対してＣＲＣチェックが行われ、エラーの有無が判別される（Ｓ３）。エラーがあったときは規定のリトライ回数に達するまでＳ２，Ｓ３が繰り返され（Ｓ４）、それによってもエラーを解消できないときは不具合信号ＢＬＥＲＲを出力する（Ｓ８）。
【００９３】
ステップＳ３でＣＲＣチェック結果の正常が判別されると、今度は、シリアルフラッシュメモリ１０１からプログラム１３１をＲＡＭ１０５に転送する（Ｓ５）。ＲＡＭ１０５に転送するプログラム１３１に対してＣＲＣチェックが行われ、エラーの有無が判別される（Ｓ６）。エラーがあったときは規定のリトライ回数に達するまでＳ５，Ｓ６が繰り返され（Ｓ７）、それによってもエラーを解消できないときは不具合信号ＢＬＥＲＲを出力する（Ｓ８）。
【００９４】
ステップＳ６でＣＲＣチェック結果の正常が判別されると、ブートローダコントローラ１０４はＣＰＵ１０３への初期化信号ｒｅｓ２をハイレベルに変化させてリセット解除の指示を与え（Ｓ９）、データプロセッサ１０２の外部にはプログラム転送信号ＰＧＭＴＲをアサートする（Ｓ１０）。これによってＣＰＵ１０３はＲＡＭ１０５にダウンロードされたプログラムの実行に遷移する(Ｓ１１)。
【００９５】
［実施の形態２］
図５には実施の形態２に係るデータプロセッサ１０２Ａが示される。図１のデータプロセッサ１０２ではＢＬＣ１０４からＲＡＭ１０５へのプログラム１３１の転送に専用バス１０８を用いた。図５の例ではその転送に共通バス１０７を用いる。ＢＬＣ１０４Ａは共通バスをアクセスするための制御ロジックを持たなければならない。専用バス１０８を用いる場合にはＢＬＣ１０４はローカルな仕様で簡易な構成によるバスアクセス制御ロジックを持てばよい。
【００９６】
更に外部メモリはシリアルフラッシュメモリ１０１に限定されず、パラレルインタフェースを持つパラレルフラッシュメモリ１０１Ａを採用することも可能である。
【００９７】
［実施の形態３］
図６には実施の形態３に係るデータプロセッサ１０２Ｂが示される。図１のデータプロセッサ１０２ではオンチップのＲＡＭ１０５にダウンロードしたプログラム１３１をロードした。図６の例ではデータプロセッサ１０２Ｂの外部に配置したシンクロナスＤＲＡＭ等から成る外部ＲＡＭ１０５Ｂにダウンロードプログラムをロードする。この場合、データプロセッサ１０２Ｂは外部ＲＡＭ１０５Ｂとのインタフェースを行うメモリコントローラ１０９を搭載することが必要になる。
【００９８】
［実施の形態４］
実施の形態４として、プログラム転送時間を調整可能とする場合について説明する。図７には実施の形態４で使用するプログラム転送情報１３０Ａの構成が例示される。図３との相違点は、通信クロックの指定情報と転送単位の指定情報を持つことである。
【００９９】
この場合に、例えばブートローダコントローラ１０４は、前記通信クロックの指定情報で指定される周波数に同期して前記プログラムのダウンロードを行なう。例えばその周波数はシリアルフラッシュメモリ１０１のメモリクロック端子に供給されるクロック信号の周波数を決定する。これにより、転送制御情報に基づいてシリアルフラッメモリ１０１からＲＡＭ１０５へのプログラムの転送に要する時間を調整することが可能になる。シリアルフラッシュメモリ１０１からＲＡＭ１０５へのプログラムの転送完了によいってＣＰＵ１０３へのリセット解除の指示が与えられるから、データプロセッサの内外における初期化動作が完了されるまでに要する時間に対して、ブートローダコントローラ１０４によるＣＰＵ１０３のリセット解除のタイミングが早すぎたり遅すぎたりしないようにすることができる。
【０１００】
また、例えば前記ブートコントローラ１０４は、前記転送単位の情報で指定されるデータサイズ単位で複数回に分けて前記プログラム１３１のダウンロードを行なう。即ち、上記指定されたデータサイズ単位でシリアルフラッシュメモリ１０１にアクセスコマンドを発行する。同一サイズのプログラムをリードする場合であっても、アクセスコマンドの発行回数を増やしてアクセス動作を細切れにするほど所要のデータのダウンロードを完了する時間が長くなる。
【０１０１】
図８にはアクセスサイズを１６バイトとしてプログラムをダウンロードするときのシリアルフラッシュメモリ１０１に対するアクセス動作タイミングが示される。図８において、ＳＰＩＳＳはチップセレクタ信号、ＳＰＩＣＫはメモリクロック信号、ＳＰＩＤOはデータ出力、ＳＰＩＤＩはデータ入力を示す。Ｉはアクセスコマンド、Ａはプログラム先頭アドレス、Ｓはプログラムサイズ。Ｐはプログラムを意味する。
【０１０２】
このように、上記データサイズ単位を小さくすれば分割して行うプログラムダウンロードの動作回数が増えるのでプログラムダウンロードを完了するまでに要する時間が増える。したがって、上記同様に、転送制御情報に基づいてシリアルフラッシュメモリ１０１からＲＡＭ１０５へのプログラムの転送に要する時間を調整することが可能になり、データプロセッサの内外における初期化動作が完了されるまでに要する時間に対して、ブートローダコントローラによるＣＰＵのリセット解除のタイミングが早すぎたり遅すぎたりしないようにすることができる。
【０１０３】
［実施の形態５］
図９には実施の形態５に係るデータプロセッサ１０２Ｃが示される。図１のデータプロセッサ１０２では代表として外部リセット信号ＲＥＳによるリセット指示の解除に着目してプログラムのイニシャルロードを説明した。その他の初期化要因によるリセット指示に対応するリセット解除に対しても同様にプログラムのイニシャルロードを適用することができることはいうまでもない。特に実施の形態５では、リセットの要因に応じたリセット解除による処理形態を選択するようにした構成に付いて説明する。
【０１０４】
図９には図１のデータプロセッサに対して、リセット要求元となる内部回路として代表的にウォッチドッグタイマ（ＷＤＴ）１４１と電源電圧低下検出回路（ＬＶＤ）１４０の図示を追加したデータプロセッサ１０２Ｃを示す。
【０１０５】
ＬＶＤ１４０は電源電圧レベルが規定電圧以下になったとき内部リセット信号ＲＥＳ＿ＬＶＤをローレベルにしてリセットを指示する。ＷＤＴ１４１はタイムアウトにより内部リセット信号ＲＥＳ＿ＷＤＴをローレベルにしてリセットを指示する。電源電圧レベル低下による内部リセット信号ＲＥＳ＿ＬＶＤによるリセット要因は、外部から供給されるリセット信号ＲＥＳによるリセット要因と同様に前記ＲＡＭの記憶情報の保持を保証しないリセット要因とされる。一方、ＷＤＴ１４１のタイムアウトによる内部リセット信号ＲＥＳ＿ＷＤＴによるリセット要因は、前記ＲＡＭの記憶情報の保持を保証するリセット要因である。後者のリセット要因は、前記ブートローダコントローラ１０４Ｃからのプログラムの転送が完了されたとき、前記ＲＡＭ１０５はライトプロテクトされ、前記ライトプロテクトは前記外部から供給されるリセット信号ＲＥＳによるリセット指示及び前記電源電圧レベル低下による内部リセット信号ＲＥＳ＿ＬＶＤによるリセット指示によって解除されることを前提とするものである。内部リセット信号ＲＥＳ＿ＬＶＤによるリセット指示がされたときでもＲＡＭ１０５が保有するプログラム１３０は不所望に書き換えられたりすることなく正規の状態に維持されることになる。
【０１０６】
実施の形態５では上記リセット指示の要因の相違に応じてブートロードコントローラ１０４Ｃを動作させるようにしたものである。ｒｅｓ１はＲＥＳに対応する初期化信号、ｒｅｓ１＿ＷＤＴはＲＥＳ＿ＷＤＴに対応する初期化信号、ｒｅｓ１＿ＬＶＤはＲＥＳ＿ＬＶＤに対応する初期化信号である。
【０１０７】
ブートローダコントローラ１０４Ｃが応答する所定のリセット解除の指示は、ｒｅｓ１のハイレベルへの変化によるリセット解除の指示、及びｒｅｓ１＿ＬＶＤのハイレベルへの変化によるリセット解除の指示とされ、ｒｅｓ１＿ＷＤＴのハイレベルへの変化によるリセット解除の指示は対象外とする。
【０１０８】
これにより、リセット要因に応じてブートローダコントローラ１０４Ｃを用いたＲＡＭ１０５へのプログラムダウンロードを行うか否かを適正に制御することができる。既に有効なプログラムを保持していることが保証されている状態でリセットが指示されたときには無駄なプログラムダウンロードを行わずにＣＰＵ１０３にリセット解除を指示することができる。要するに、初期化信号ｒｅｓ１＿ＷＤＴがハイレベルにされてリセット解除の指示が与えられたとき、ブートローダコントローラ１０４Ｃの制御１２１は即座にリセット信号ｒｅｓ２をローレベルからハイレベルに変化させてＣＰＵ１０３のリセット状態を解除する。
【０１０９】
図１０にはリセット要因毎に初期化が行なわれるか否かを機能ブロック（ＣＰＵ，ブートローダコントローラ、ＲＡＭ、その他）単位で示して有る。「初期化」は対応するリセット指示によって初期化が行われることを意味し、[保持]は対応するリセット指示によって初期化が行われないことを意味する。」「ＣＰＵリセット解除」の欄はＣＰＵのリセットが解除されたとき動作される回路ブロックと動作されない回路ブロックを確認的に示している。
【０１１０】
［実施の形態６］
実施の形態６として、実施の形態５のリセットの要因に応じたリセット解除による処理形態を選択する機能をリセット要因毎にリセット要因起動レベル制御レジスタ１２３に設定する機能に付いて説明する。
【０１１１】
例えば、ＬＶＤ１４０は内部リセット信号ＲＥＳ＿ＬＶＤをローレベルにしてリセットを指示する電源電圧レベルを自由に設定可能なレジスタを持っている。レジスタに設定したリセットを指示する電源電圧レベルがＲＡＭ１０５のデータ保持の規定電圧レベルより高い場合はＲＡＭ１０５のデータは保障されているので、リセット信号ＲＥＳ＿ＬＶＤにより、ＲＡＭ１０５へのプログラムダウンロードを行う必要はない。このような場合は、リセット要因起動レベル制御レジスタ１２３に、リセット要因ＲＥＳ＿ＬＶＤはプログラムダウンロード不要と設定すればよい。
【０１１２】
［実施の形態７］
実施の形態７ではスクランブルされてシリアルフラッメモリ１０１に格納されたプログラムをＲＡＭにダウンロードするようにした構成について説明する。
【０１１３】
図１１には実施の形態７におけるシリアルフラッシュメモリ１０１上におけるプログラムの配置とＲＡＭにダウンロードされたプログラムの配置が例示される。実施の形態７では、前記転送制御情報１３０が示すアドレス情報は、外部メモリ上で離散的にマッピングされているダウンロードされるべき所定のプログラム１３２１Ａ〜１３１Ｄの一部のプログラム１３１Ａの所在を示すアドレス情報であり、前記所定のプログラムの一部１３１Ａは前記ブートローダコントローラ１０４がダウンロードするブートプログラムである。前記所定のプログラムの残り１３１Ｂ〜１３１Ｄ（メインプログラム）は前記ＣＰＵ１０３が前記ブートプログラム１３１Ａを実行することによって前記シリアルフラッシュメモリ１０１からダウンロードしてＲＡＭ１０５に転送される離散的にマッピングされたプログラムである。
【０１１４】
ＲＳＡＤＲ１はＲＡＭ１０５上におけるブートプログラム１３１Ａの先頭アドレスであり、ＣＰＵ１０３はブートプログラムのダウンロードの後にリセット解除されたとき、ＲＳＡＤＲ１で示されるアドレスからプログラムの実行を開始する。ＲＳＡＤＲ２はＲＡＭ１０５上におけるメインプログラム１３１Ｂ〜１３１Ｄの先頭アドレスであり、ＣＰＵ１０３はブートプログラムを実行してメインプログラム１３１Ｂ〜１３１ＤをＲＡＭ１０５にダウンロードした後に、ＲＳＡＤＲ２で示されるアドレスからプログラムの実行を開始する。
【０１１５】
これによりダウンロードされるべき所定のプログラムをシリアルフラッシュメモリ１０１上でスクランブルして格納することができるので、プログラムの盗用若しくは不正使用を抑制することができるという点で、プログラムに対するセキュリティーを向上させることができる。
【０１１６】
［実施の形態８］
図１２には上記実施の形態で説明したデータプロセッサ、例えばデータプロセッサ１０２をキーボード及び電源制御用コントローラとして採用したノートＰＣの概略的な構成が示される。
【０１１７】
データ処理システムとしてのノートＰＣにおいて、データプロセッサ１０２は、シリアルフラッシュメモリ１０１からＲＡＭ１０５に転送されたプログラムを実行することにより、外部に接続された入力デバイスの制御を行う。入力出力デバイスとして、ＬＥＤインジケータ２３５、バッテリシステム２４１、冷却ファン２３６、キースキャン回路２３７、サーミスタ２３０、電力モニタ２３１、カードインタフェース２３２、ディスプレイ調光回路２３３、マウス等のポインティングデバイス２３４、および拡張プロセッサ２４４等が接続される。ＬＰＣバスにはＦＷＨ２４２，スーパーＩ／Ｏ２４３、ユーザ固有のＡＳＩＣ２４０等が接続される。前記信号ＰＧＭＴＲは、特に制限されないが、周辺回路のリセット信号として利用される。
【０１１８】
データプロセッサ１０２はＬＰＣバスを介して入出力コントローラハブ２０５に接続される。例えば入出力コントローラハブ２０５はサウスブリッジ（ＩＣＨ）を構成し、入出力コントローラハブ２０１はノースブリッジ（ＭＣＨ）を構成する。サウスブリッジ（ＩＣＨ）２０５にはローカルエリアネットワークコントローラ２０６を介してＬＡＮポート２０７、シリアルＡＴＡインタフェースを持つＨＤＤ２１０、カードンバス２２０、無線ＬＡＮ２２１、スピーカ２２３を駆動するアンプ２２２、ＵＳＢコントローラ２１１，２１２、ＵＳＢポート２０８、及びＰＣＩコントローラ等が接続される。ノースブリッジ（ＭＣＨ）２０１にはディスプレイ２０４の表示制御等を行うグラフィックコントローラ２０３、メインメモリ２０２及びメインプロセッサ２００が接続される。
【０１１９】
前述のように、シリアルフラッシュメモリ１０１に格納されたプログラムを転送制御情報が示すアドレス情報に基づいてＲＡＭ１０５にダウンロードするから、そのプログラムに対してシリアルフラッシュメモリ１０１上のマッピングに応じた転送制御情報を用意すればよい。プログラムに対してシリアルフラッシュメモリ１０１上の自由なマッピングを簡単な構成によって許容することができるという点で、ノートＰＣのシステムコストの低減に資することができる。シリアルフラッシュメモリ１０１のＢＩＯＳプログラムが格納されている場合にはＣＰＵ１０３の制御でＬＰＣを介してＩＣＨ２０５等の上位層へ転送することも可能にされている。
【０１２０】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【０１２１】
１０２  データプロセッサ（ＭＣＵ）
１０１  シリアルフラッシュメモリ（ＳＩＦＬＳＨ）
１０３  中央処理装置（ＣＰＵ）
１０５  ＲＡＭ
１０６  システムコントローラ（ＳＹＳＣ）
１０４  ブートローダコントローラ（ＢＬＣ）
１０７  バス
ＲＥＳ  リセット信号
ｒｅｓ１  初期化信号
ｒｅｓ２  初期化信号
１３０  転送制御情報
１３１  プログラム
１２１  制御回路
１２２  ＣＲＣ演算回路
１２０  プログラム転送情報レジスタ
【図１】
2011227592.tif 000003
【図２】
2011227592.tif 000004
【図３】
2011227592.tif 000005
【図４】
2011227592.tif 000006
【図５】
2011227592.tif 000007
【図６】
2011227592.tif 000008
【図７】
2011227592.tif 000009
【図８】
2011227592.tif 000010
【図９】
2011227592.tif 000011
【図１０】
2011227592.tif 000012
【図１１】
2011227592.tif 000013
【図１２】
2011227592.tif 000014