データ処理システム
【課題】オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを用いたデータ処理の高速化と円滑化を実現することができるデータ処理システムを提供する。
【解決手段】オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを半導体データ処理装置の外部に接続された不揮発性半導体メモリデバイスに格納し、半導体データ処理装置は外部から与えたれた情報の判別結果に応答して、内部で必要なプログラムやパラメータを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換える。プログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う。
【解決手段】オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを半導体データ処理装置の外部に接続された不揮発性半導体メモリデバイスに格納し、半導体データ処理装置は外部から与えたれた情報の判別結果に応答して、内部で必要なプログラムやパラメータを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換える。プログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はマイクロコンピュータなどの半導体データ処理装置にオンチップされた不揮発性メモリのプログラムやパラメータを書き換えて用いるデータ処理システムに関し、例えば、ACサーボ、汎用インバータ、エアコン、パワーコンディショナー、自動車、或いは通信端末等に適用して有効な技術に関する。
【背景技術】
【0002】
マイクロコンピュータなどの半導体データ処理装置にオンチップされた不揮発性メモリのプログラムやパラメータを書き換えて用いる技術として、特許文献1乃至6がある。これらの文献では、マイクロコンピュータのオンチップされた電気的に書き換え可能な不揮発性メモリとしてのフラッシュメモリに対する書き換えモードとしてPROMライタ書き込みモードとオンボード書き込みモードとを有する。PROMライタ書き込みモードでは、PROMライタ書き込みモードを設定したマイクロコンピュータをソケットアダプタ経由でPROMライタに接続し、ROMライタによってオンチップのフラッシュメモリを直接書き換え制御する。オンボード書き込みモードでは、マイクロコンピュータがシステムに実装された状態のままで、中央処理装置がSCIやUSB等の通信インタフェースを用いてプログラムまたはパラメータをダウンロードし、ダウンロードしたプログラムやパラメータは中央処理装置が書き換え制御プログラムを実行することによってフラッシュメモリに書き込む。オンボード書き込みモードはプログラムやパラメータの初期書き込みなどに利用される。また、オンボード書き込みモードはプログラムのバグの修正やバージョンアップなどに利用される。特許文献7にもマイクロコンピュータにオンチップされたフラッシュメモリに対するオンボード書き込みについて記載される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−004258号公報
【特許文献2】特開2007−095093号公報
【特許文献3】特開2002−304894号公報
【特許文献4】特開平11−288410号公報
【特許文献5】特開平5−266219号公報
【特許文献6】特開平5−266220号公報
【特許文献7】特開2001−357690号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明者はマイクロコンピュータにオンチップされた書き換え可能な不揮発性メモリにプログラムやパラメータを格納して中央処理装置の近傍に配置し、これに対する中央処理装置のアクセス速度を向上させて、プログラムの実行速度を高速化し、また、パラメータの参照速度を高速化することについて検討した。
【0005】
しかしながら、そのようにオンチップする事ができる不揮発性メモリの記憶容量はマイクロコンピュータのコストやチップサイズなどの点から制限され、その制限以上に大きな規模のプログラムやパラメータを用いる場合には新たな対策を講ずることが必要になる。更に、前記PROMライタモードやオンボード書き換えモードを用いてそのような書き換えを行ったとき、パワーオンリセットを行ってから新たなプログラムの実行を開始すると、処理の再開に時間がかかりすぎたりして、データ処理によっては不都合を生ずる場合のあることが明らかにされた。
【0006】
本発明の目的は、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを用いたデータ処理の高速化と円滑化を実現することができるデータ処理システムを提供することにある。
【0007】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0008】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0009】
すなわち、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを半導体データ処理装置の外部に接続された不揮発性半導体メモリデバイスに格納し、半導体データ処理装置は外部から与えたれた情報の判別結果に応答して、内部で必要なプログラムやパラメータを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換える。プログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う。
【発明の効果】
【0010】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0011】
すなわち、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを用いたデータ処理の高速化と円滑化を実現することができる。
【図面の簡単な説明】
【0012】
【図1】図1は本発明の実施の形態1に係るデータ処理システムを例示するブロック図である。
【図2】図2はMCCNTとEMCRDとのインタフェース信号を例示するブロック図である。
【図3】図3はユーザプログラムの転送制御に関するマイクロコンピュータの論理構成を例示する説明図である。
【図4】図4は図1のデータ処理システムにおいて、図3で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作を例示するフローチャートである。
【図5】図5は本発明の実施の形態2に係るデータ処理システムを例示するブロック図である。
【図6】図6はユーザプログラムの転送制御に関する図5のマイクロコンピュータの論理構成が例示される説明図である。
【図7】図7は図5のデータ処理システムにおいて、図6で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作を例示するフローチャートである。
【図8】図8は実施の形態3に係るデータ処理システムを例示するブロック図である。
【図9】図9はパラメータの転送制御に関するマイクロコンピュータの論理構成が例示される説明図である。
【図10】図10は図8のデータ処理システムにおいて、図9で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作を例示するフローチャートである。
【図11】図11は不揮発性メモリデバイスとしてシリアルフラッシュメモリを用いた例を示すブロック図である。
【図12】図12は本発明に係るデータ処理システムをモータ制御に適用した例を示すブロック図である。
【発明を実施するための形態】
【0013】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0014】
〔1〕<内蔵ROM容量を超えるプログラムを選択して外部から内蔵ROMにロード>
本発明の代表的な実施の形態に係るデータ処理システム(1,1A)は、半導体データ処理装置(10,10A)と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイス(20,20C)と、前記半導体データ処理装置に接続された出力回路(30,40)とを備える。前記半導体データ処理装置は、中央処理装置(11)と、前記中央処理装置が実行するプログラムを格納する書き換え可能な不揮発性メモリ(12)と、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラ(15、19)と、前記出力回路に接続された外部インタフェース回路(16,17)とを有する。前記不揮発性半導体メモリデバイスは、複数のプログラムが格納される複数のプログラム領域(201−1〜20−N)を有する。前記不揮発性メモリは、前記複数のプログラムの一部を格納するための実行プログラム領域(12−1)を有する。前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う。
【0015】
これによれば、半導体データ処理装置は外部から与えたれた情報の判別結果に応答して、内部で必要なプログラムを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換えるから、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムであっても、半導体データ処理装置にオンチップされた不揮発性メモリから直接リードして高速に実行することが可能になる。さらに、半導体データ処理装置にオンチップされた不揮発性メモリのプログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行うから、パワーオンリセットを行ってそのプログラムの実行を開始する場合に比べて、プログラム処理の再開に時間がかからず、実行するプログラムを切り替えたときデータ処理を円滑に再会することができる。
【0016】
〔2〕<ポート入力によってプログラムを指示>
項1のデータ処理システムにおいて、前記外部インタフェース回路は入力ポート(16)であり、前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するプログラム領域を判別する。
【0017】
これにより、入力ポートを介してプログラムの書き換えを外部から容易に指示することができる。
【0018】
〔3〕<シリアル入力によってプログラムを指示>
項1のデータ処理システムにおいて、前記外部インタフェース回路はシリアル入力回路(17)であり、前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するプログラム領域を判別する。
【0019】
これにより、シリアル入力回路を介してプログラムの書き換えを外部から容易に指示することができる。
【0020】
〔4〕<転送制御用のプログラムを含む>
項1のデータ処理システムにおいて、前記プログラムは、転送制御用の第1のプログラム(120,110,111,112)とその他の第2のプログラムを含む。前記第1のプログラムは、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在実行中のプログラムに対応しないとき、当該判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を制御するプログラムである。前記第1のプログラムは、前記第2のプログラムの実行中の所定のタイミングで実行可能にされる。
【0021】
これにより、プログラムは第2のプログラムと共に転送制御用の第1のプログラムを有するから、第2のプログラムを実行しながらプログラムの書き換えに付帯する処理を円滑に行うことができる。
【0022】
〔5〕<メモリコントローラ>
項1のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスはエンベデッドメモリカード(20)であり、前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラ(15)である。
【0023】
これによれば、メモリカードコントローラを有する半導体データ処理装置に対してエンベデッドメモリカードを大きなプログラムの格納に流用することができる。
【0024】
〔6〕<シリアルペリフェラルコントローラ>
項1のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリ(20)であり、前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路(19)である。
【0025】
これによれば、シリアルペリフェラルインタフェース回路を有する半導体データ処理装置に対して不揮発性シリアルメモリを大きなプログラムの格納に流用することができる。
【0026】
〔7〕<内蔵ROM容量を超えるパラメータを選択して外部から内蔵ROMにロード>
本発明の別の実施の形態に係るデータ処理システム(1B)は、半導体データ処理装置(10B)と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイス(20B,20C)と、前記半導体データ処理装置に接続された出力回路(30B)とを備える。前記半導体データ処理装置は、中央処理装置(11)と、前記中央処理装置によるデータ処理で利用されるパラメータを格納する書き換え可能な不揮発性メモリ(18)と、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラ(15,19)と、前記出力回路に接続された外部インタフェース回路(16)とを有する。前記不揮発性半導体メモリデバイスは、複数のパラメータ群が格納される複数のパラメータ群領域(20B−1〜20B−N)を有する。前記不揮発性メモリは、前記複数のパラメータ群の一部のパラメータ群を格納するためのテンポラリ領域(18−1)を有する。前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードし、リードしたパラメータ群を前記テンポラリ領域に格納する処理を行う。
【0027】
これによれば、半導体データ処理装置は外部から与えられた情報の判別結果に応答して、内部で必要なパラメータを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換えるから、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のパラメータであっても、半導体データ処理装置にオンチップされた不揮発性メモリから直接リードして即座に利用することが可能になる。
【0028】
〔8〕<ポート入力によってパラメータ群を指示>
項7のデータ処理システムにおいて、前記外部インタフェース回路は入力ポート(16)であり、前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するテンポラリ領域を判別する。
【0029】
これにより、入力ポートを介してパラメータの書き換えを外部から容易に指示することができる。
【0030】
〔9〕<シリアル入力によってパラメータ群を指示>
項7のデータ処理システムにおいて、前記外部インタフェース回路はシリアル入力回路(17)であり、前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するテンポラリ領域を判別する。
【0031】
これにより、シリアル入力回路を介してパラメータの書き換えを外部から容易に指示することができる。
【0032】
〔10〕<パラメータの書き換え制御用のプログラム>
項7のデータ処理システムにおいて、前記中央処理装置(11)は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在使用中のパラメータ群に対応しないとき、当該判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードする。リードしたパラメータ群を前記テンポラリ領域に格納する処理は、アプリケーションプログラムの実行中の所定のタイミングで実行可能にされる。
【0033】
これにより、アプリケーションプログラムを実行しながらパラメータの書き換えに付帯する処理を円滑に行うことができる。
【0034】
〔11〕<メモリコントローラ>
項7のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスはエンベデッドメモリカード(20B)であり、前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラ(15)である。
【0035】
これによれば、メモリカードコントローラを有する半導体データ処理装置に対してエンベデッドメモリカードを大きなサイズのパラメータの格納に流用することができる。
【0036】
〔12〕<シリアルペリフェラルコントローラ>
項7のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリ(20C)であり、前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路(19)である。
【0037】
これによれば、シリアルペリフェラルインタフェース回路を有する半導体データ処理装置に対して不揮発性シリアルメモリを大きなサイズのパラメータの格納に流用することができる。
【0038】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0039】
《実施の形態1》
図1には本発明の実施の形態1に係るデータ処理システムが例示される。同図に示されるデータ処理システム1は、特に制限されないが、所定の配線基板(図示せず)に、半導体データ処理装置としてのマイクロコンピュータ10、前記マイクロコンピュータ10に接続された不揮発性半導体メモリデバイスとしてのエンベデッドメモリカード(EMCRD)20、及びマイクロコンピュータ10に接続された出力回路としてのプログラム選択スイッチ回路30などが実装されて構成される。
【0040】
マイクロコンピュータ10は、特に制限されないが、単結晶シリコンなどの1個の半導体基板にCMOS集積回路製造技術などによって構成される。このマイクロコンピュータ10は、中央処理装置(CPU)11、電気的に書き換え可能な不揮発性メモリ(ROM)12、不揮発性メモリ12に対する消去及び書き込み動作のシーケンス制御を行う消去書き込み制御回路(FCU)13、RAM14、前記エンベデッドメモリカード20の動作を制御するメモリカードコントローラ(MCCNT)15、及び入出力ポート(IOP)16などを備える。RAM14はプログラムのワーク領域やデータを一時保存する領域として使用される。
【0041】
図1では上記それぞれの回路モジュールは隣同士で信号の入出力を行うように図示されているが、これは代表的な信号入出力形態を模式的に図示しているにすぎない。実際は内部バスによって接続されている。図示は省略するが、例えばCPU11、ROM12及びRAM14はCPU11の動作サイクルに匹敵するバスサイクルで信号伝達を行う高速な内部バスによって接続される。この内部バスはバスブリッジ回路又はバスコントローラを介して周辺バスに接続される。周辺バスには内部バスよりも低速で、必ずしも高速のクロック動作が必要とされない回路モジュールとして、前記FCU13、MCCNT15、IOP16などが結合されている。
【0042】
前記不揮発性メモリ12はフラッシュメモリの不揮発性記憶素子と同様の電気的に書き換え可能なスタックゲート型若しくはスプリットゲート型のメモリセルがマトリクス配置されたメモリセルアレイを有し、CPU11が実行するプログラムの格納に用いられる。その一部はユーザプログラムUPGM#iの格納領域12−1とされる。図1ではi=Jの場合を例示する。
【0043】
前記不揮発性メモリ12に対する消去書き込み制御回路13は前記周辺バス経由でCPU11から与えられる消去コマンドや書き込みコマンドに応答して、不揮発性メモリ12に対する消去動作や書き込み動作のシーケンス制御を行う専用のハードウェアで、CPU11が他のタスク実行時でも、ROM12に対する書き込みを可能にする。前記不揮発性メモリ12に対する読み出しは前記内部バス経由でCPU11が高速に行うことができる。
【0044】
MCCNT15はCPU11から与えられるメモリカードコマンドに応答してEMCRD20を制御するハードウェアである。
【0045】
IOP16にはN個の入出力回路IO#1〜IO#Nが代表的に図示されている。入出力回路IO#1〜IO#Nにはプログラム選択スイッチ回路30のN個のスイッチSW#1〜SW#Nのスイッチ状態に応ずるスイッチ信号が供給される。特に制限されないが、夫々のスイッチ信号は1ビットとされる。プログラム選択スイッチにより制御される各I/Oポートの状態を反映する。上記スイッチ状態が反映される入出力回路IO#1〜IO#Nの状態はCPU11によって監視される。
【0046】
エンベデッドメモリカード20は、特に制限されないが、組み込み用途のフラッシュメモリカードであり、回路基板上に例えばBGA(ボールグリッドアレイ)による外部端子を介して実装固定され、N個(Nは正の整数)のユーザプログラムUPGM#1〜UPGM#Nを書き換え可能に格納する不揮発性のプログラム領域20−1〜20−Nを有する。このエンベデッドメモリカード20は、例えばマルチメディアカード(MultiMediaCard/MMC:登録商標)準拠のメモリインタフェースを持つ。マイクロコンピュータ10のメモリカードコントローラ15は、エンベデッドメモリカード20が持つ上記メモリカードインタフェースを用いたメモリカードのアクセス制御を行う。エンベデッドメモリカード20の記憶容量や仕様の更新等があっても互換性の範囲でメモリカードコントローラ15による制御を行うことができる。
【0047】
ここで、ROM12の記憶容量はエンベデッドメモリカード20の記憶容量に比べて格段に小さく、例えば数百キロバイトないし1メガバイト程度であり、例えば、OSなどのシステムプログラムや必要なパラメータデータのほかに、一つのユーザプログラムを格納することができる程度の記憶容量をもつ。大きな記憶容量の電気的に書き換え可能な不揮発性メモリをオンチップで持つことによるマイクロコンピュータのコスト上昇とチップの大型化を抑えるためである。
【0048】
プログラム選択スイッチ回路30のスイッチSW#1〜SW#NはユーザプログラムUPGM#1〜UPGM#Nのプログラム領域20−1〜20−Nに対応され、対応するプログラム領域に対して、オン状態によるロー(Low)出力が選択、オフ状態によるハイ(High)出力が非選択を指示する。尚、プログラム選択スイッチ回路30はスイッチSW#1〜SW#Nのうち複数のスイッチがオン状態になることを禁止している。
【0049】
スイッチSW#1〜SW#Nのスイッチ状態は入出力ポート16の入出力回路IO#1〜IO#Nに反映される。CPU11は入出力回路IO#1〜IO#Nの状態を監視し、それが指示する番号のユーザプログラムをROM12に書き込むための処理を行う。例えば新たに、ユーザプログラムの番号#Jが指定されたことを検出すると、MCCNT15を介してEMCRD20の記憶領域20−JからRAM14にユーザプログラムUPGM#Jを転送させ、次いで、そのユーザプログラムUPGM#JをFCU13を介してROM12に書き込む制御を行う。特に制限されないが、その制御は、ユーザプログラムUPGM#Jを書きこむ前にROM12に格納さている他のユーザプログラムをCPU11が実行することによって行う。新たなユーザプログラムUPGM#Jに書き込みが完了すると、特に制限されないが、CPU11がソフトウェアリセットを行って、当該ユーザプログラムUPGM#Jの実行が可能にされる。ソフトウェアリセットとして、例えば、CPU11の汎用レジスタやプログラムカウンタなどのレジスタセットの初期化が行われて、ユーザプログラムUPGM#Jの先頭番地から命令フェッチが開始される。
【0050】
図2にはMCCNT15とEMCRD20とのインタフェース信号が例示される。図において双方は、クロック線、コマンド線、8本のデータ線で接続される。クロック線に供給されるクロック信号はMCCNT15がマイクロコンピュータ10内の周辺クロック信号を分周して生成し、このクロック信号がMCCNT15からクロック線を介してEMCRD20に供給される。コマンド線にはMCCNT15からEMCRD20に当該メモリカードのインタフェース仕様に準拠したコマンドが出力され、また、EMCRD20からMCCNT15にはコマンドに対するレスポンスが転送される。データ線にはMCCNT15からEMCRD20に書き込みデータが供給され、また、EMCRD20からMCCNT15に読み出しデータが供給される。使用するデータ線の本数は8本に限定されず、1本又は4本などであってもよい。
【0051】
図3にはユーザプログラムの転送制御に関するマイクロコンピュータ10の論理構成が例示される。ここではその論理構成を、ハードウェア層(HWL)、ドライバ層(DVL)、ミドルウェア(MWL)、アプリケーション層(APL)に大別する。
【0052】
ハードウェア層(HWL)としてIOP16、ROM12、FCU13、及びMCCNT15を図示する。
【0053】
ドライバ層(DVL)には、例えば、入出力回路IO#1〜IO#NとスイッチSW#1〜SW#Nとの対応を設定するIOP16の機能設定部100、FCU13によるROM12の消去及び書き込み制御シーケンスを規定するFCUファームウェア101、MCCNT15を制御してEMCRD20からユーザプログラムを読み出すためのリードアクセス動作のためのカードアクセスドライバ102が設けられる。
【0054】
ミドルウェア層(MWL)には、IO判定部110、書き込み制御部111、及びファイルシステム112を有する。IO判定部110は、プログラム選択スイッチ回路30の状態を反映した各入出力回路IO#1〜IO#Nのロー(Lo)入力又はハイ(High)入力状態を判定するプログラムである。書き込み制御部111は、FCUファームウェア101が提供する機能に応じたコマンドを使用してROMへの消去及び書き込み動作に関する書き込み制御を行うプログラムである。ファイルシステム112はEMCRD20内のユーザプログラムUPGM#1〜UPGM#Nをファイルとして管理し、上位のアプリケーション層のプログラムがEMCRD20内部のデータをファイルとして扱うことを可能にするためのプログラムである。ここでは、ユーザプログラムUPGM#1〜UPGM#NをファイルとしてEMCRD20に格納する例を説明したが、ユーザプログラムUPGM#1〜UPGM#NをデータとしてEMCRD20に格納し、ファイルシステムの代わりにユーザプログラムアクセス用の専用ソフトウェアを実装してもよい。
【0055】
アプリケーション層(APL)は、タスク制御部120を有する。タスク制御部120は、IO判定部110を使用したIOP16の状態に従った動作、書き込み制御部111を使用したROM12への書き込み動作、ファイルシステム112を使用したEMCRD20からのファイルの読み出し動作等、マイクロコンピュータに対する全体的なタスクを制御するプログラムである。
【0056】
特に制限されないが、ユーザプログラムUPGM#1〜UPGM#Nのそれぞれは、ユーザプログラムの転送制御に用いるアプリケーション層(APL)のプログラム(タスク制御部120を構成する一部のプログラム)を持つ。ユーザプログラムの転送制御に用いるミドルウェア層(MWL)及びドライバ層(DVL)のプログラムは個々のアプリケーションプログラムから呼び出して実行すればよいから、ユーザプログラムUPGM#1〜UPGM#N毎に個別に持たなくてもよい。ROM12のユーザプログラム領域とは別の記憶領域に固定的に格納されていればよい。尚、ユーザプログラムの転送制御に用いるアプリケーション層(APL)のプログラム(タスク制御部120を構成する一部のプログラム)は、ユーザプログラムの転送制御に用いるミドルウェア層(MWL)及びドライバ層(DVL)のプログラムと同様に、ユーザプログラムUPGM#1〜UPGM#Nに共通化することも可能である。
【0057】
図4には図1のデータ処理システムにおいて、図3で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作のフローチャートが例示される。ここで、ROM12にはユーザプログラムUPGM#Kが初期的に格納されているものとする。
【0058】
マイクロコンピュータ10に電源が投入されて起動されると(S1)、パワーオンリセット処理によりマイクロコンピュータ10の動作周波数や周辺モジュール等に対する初期設定が行われる(S2)。入出力ポート16にはIO機能設定部100によってプログラム選択スイッチ回路30との対応が設定される。
【0059】
この後、ROM12に格納されているユーザプログラムUPGM#Kが先頭番地から実行される(S4)。即ち、ユーザプログラムの更新以外のタスクの実行を開始する。このタスクは、例えば、モータ制御、画像のデコード、他機器との通信等のタスクである。その途上で、ユーザプログラムを更新するための処理を行う。即ち、CPU11は参照番号パラメータiを0に初期化して(S5)、当該パラメータiの値がNになるまで(S6)、+1ずつインクリメントしながら(S7)、当該パラメータが指す番号に入出力回路IO#iの入力がロー(Low)になっているか否かを判別する(S8)。どの入出力回路IO#iの入力がロー(Low)になるかはプログラム選択スイッチ回路30の状態によって決まる。特に図示はしないが、現在実行中のユーザプログラムの番号はCPU11によって把握されており、ステップS8の判別では現在実行中のユーザプログラムの番号が判定対象から除かれることは言うまでもない。
【0060】
状態がLow”になっている入出力回路を判別すると、CPU11はその番号のユーザプログラム#iの更新要求があるものと判定し、ファイルシステム112によりEMCRD20からRAM14へユーザプログラム#iを読み出す(S9)。例えばi=Jとする。RAM14に読み出されたユーザプログラム#iは書き込み制御部111によりROM12に書き込まれる(S10)。その後、マイクロコンピュータ10はソフトウェアリセットされ、CPU11のレジスタセットが初期化される(S11)。パワーオンリセットは行われない。ソフトウェアリセットに伴うレジスタセットの初期化などは、例えばハードウェアによって実現される。これによってCPU11はユーザプログラム#iを実行開始し(S12)、そのプログラムで規定されるタスクを実行する(S4)。
【0061】
実施の形態1によれば、外部の通信端末の使用やカードソケットを実装することなく、マイクロコンピュータを起動した状態でユーザのプログラムを更新する事ができる。マイクロコンピュータがROM12の容量を超えた、複数のユーザプログラムを実行することができる。
【0062】
プログラムスイッチ回路30から与えたれた情報の判別結果に応答して、マイクロコンピュータ10が必要なプログラムをEMCRD20からダウンロードしてオンチップのROM12を書き換えるから、オンチップする事ができるROMの記憶容量以上に大きな規模のプログラムであっても、マイクロコンピュータ10にオンチップされたROMから直接プログラムをリードして高速に実行することが可能になる。
【0063】
マイクロコンピュータ10にオンチップされたROM12のプログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行うから、パワーオンリセットを行ってそのプログラムの実行を開始する場合に比べて、プログラム処理の再開に時間がからず、実行するプログラムを切り替えたときデータ処理を円滑に再会することができる。
【0064】
《実施の形態2》
図5には本発明の実施の形態2に係るデータ処理システムが例示される。同図に示されるデータ処理システム1Aは、特に制限されないが、所定の配線基板(図示せず)に、半導体データ処理装置としてのマイクロコンピュータ10A、前記マイクロコンピュータ10に接続された不揮発性半導体メモリデバイスとしてのエンベデッドメモリカード(EMCRD)20、及びマイクロコンピュータ10に接続された出力回路としてのシリアル端末装置40などが実装されて構成される。
【0065】
マイクロコンピュータ10Aは、CPU11の制御によってシリアル通信制御を行うシリアルコミュニケーションインタフェースコントローラ(SCIC)17を備える。このSCIC17にはシリアル端末装置40が、例えばシリアルケーブルを介して接続される。シリアルケーブルに限定されず、非接触シリアル通信によってインタフェースされてもよい。SCIC17にはシリアル端末40の通信アプリケーションで生成された選択データ#iがSCIC41を介して供給される。選択データ#iは#1〜#Nの何れかの値を持つ。CPU11はSCIC17からの選択データ#iの入力を監視する。実施の形態1と同様に選択データ#iの値#1〜#NはユーザプログラムUPGM#1〜UPGM#Nの番号に対応される。CPU11はSCIC17から入力した番号#iに応ずるユーザプログラムをEMCRD20からRAM14に転送してROM12に書き込む制御を行う。マイクロコンピュータ10Aのその他の構成は図1と同様であり、同一機能を有する回路には同じ参照符号を付してその詳細な説明を省略する。図5も図1と同様にi=Jの場合を例示する。
【0066】
図6にはユーザプログラムの転送制御に関するマイクロコンピュータ10Aの論理構成が例示される。ここではその論理構成を、ハードウェア層(HWL)、ドライバ層(DVL)、ミドルウェア(MWL)、アプリケーション層(APL)に大別する。
【0067】
図3との相違点はハードウェア層(HWL)としてSCIC17を有し、ドライバ層(DVL)としてSCIドライバを有し、タスク制御部120AはSCIC17を制御対象に含めたアプリケーションプログラムとされる。SCIドライバ103はSCIC17を制御しシリアル端末40からのユーザが選択した番号データ#iを受信する制御を行う。番号判定部110Aは、シリアル端末40から受信した番号#iを判定するプリグラムである。その他の論理構成は図3と同様であるから、同一機能にはそれと同じ参照符号を付して詳細な説明を省略する。
【0068】
図7には図5のデータ処理システムにおいて、図6で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作のフローチャートが例示される。ここで、ROM12にはユーザプログラムUPGM#Kが初期的に格納されているものとする。
【0069】
マイクロコンピュータ10Aに電源が投入されて起動されると(S21)、パワーオンリセット処理によりマイクロコンピュータ10Aの動作周波数や周辺モジュール等に対する初期設定が行われる(S22)。SCIC17にはSCIドライバ103によってシリアル端末40との間の通信条件などが設定される(S23)。それに従ってSCIC17で番号#iが受信されるかが判別される(S24)。
【0070】
番号受信がない場合は、ROM12に格納されているユーザプログラムUPGM#Kが先頭番地から実行開始される(S25)。即ち、ユーザプログラムの更新以外のタスクの実行を開始する。このタスクは、例えば、モータ制御、画像のデコード、他機器との通信等のタスクである。その途上で、番号受信の有無を逐次判別する(S24)。
【0071】
番号受信を判別したときは、ユーザプログラムを更新するための処理を行う。即ち、CPU11は受信番号が0<i<Nであるかを判別し(S26)、それ以外の番号であれば受信番号を破棄してステップS25に戻る。特に図示はしないが、現在実行中のユーザプログラムの番号はCPU11によって把握されており、ステップS8の判別では現在実行中のユーザプログラムの番号が判定対象から除かれることは言うまでもない。
【0072】
受信番号が0<i<Nのとき、CPU11はその番号のユーザプログラム#iの更新要求があるものと判定し、ファイルシステム112によりEMCRD20からRAM14へユーザプログラム#iを読み出す(S28)。例えばi=Jとする。RAM14に読み出されたユーザプログラム#iは書き込み制御部111によりROM12に書き込まれる(S29)。その後、マイクロコンピュータ10Aはソフトウェアリセットされ、CPU11のレジスタセットが初期化される(S30)。パワーオンリセットは行われない。これによってCPU11はユーザプログラム#iを実行開始し(S31)、そのプログラムで規定されるタスクの実行(S25)が可能にされる。
【0073】
実施の形態2によればマイクロコンピュータ10AにIOP経由でスイッチ回路を接続することなく、マイクロコンピュータ10Aを起動した状態でユーザプログラムを更新することができる。その他、実施の形態1と同様の作用効果を奏する。
【0074】
《実施の形態3》
図8には実施の形態3に係るデータ処理システムが例示される。同図に示されるデータ処理システム1Bは、特に制限されないが、所定の配線基板(図示せず)に、半導体データ処理装置としてのマイクロコンピュータ10B、前記マイクロコンピュータ10Bに接続された不揮発性半導体メモリデバイスとしてのエンベデッドメモリカード(EMCRD)20B、及びマイクロコンピュータ10Bに接続された出力回路としてのパラメータ選択スイッチ回路30Bなどが実装されて構成される。
【0075】
マイクロコンピュータ10Bには電気的に書き換え可能な不揮発性メモリとしてのデータフラッシュメモリ(DFLSH)18が図示されている。データフラッシュメモリ18はデータを書き換え可能に記憶するために利用され、その一部はCPU11のデータ処理で用いられるパラメータを書き換え可能に格納するテンポラリ領域18−1とされる。このデータフラッシュメモリ18に対する消去及び書き込み動作のシーケンス制御は消去書き込み制御回路(FCU)13が行う。その他、図1と同様に回路には同じ参照符号を付してその詳細な説明を省略する。尚、図8ではプログラムを格納するROMの図示を省略しているが、マイクロコンピュータ1Bはプログラムを保有するROMを有し、例えば図1で説明した回路が設けられていても良い。マイクロコンピュータ10Bにおいて図1と同じ回路には同じ参照符号を付してその詳細な説明は省略する。
【0076】
図8では上記それぞれの回路モジュールは隣同士で信号の入出力を行うように図示されているが、これは代表的な信号入出力形態を模式的に図示しているにすぎない。実際は内部バスによって接続されている。図示は省略するが、例えばCPU11、DFLSH18及びRAM14はCPU11の動作サイクルに匹敵するバスサイクルで信号伝達を行う高速な内部バスによって接続される。この内部バスはバスブリッジ回路又はバスコントローラを介して周辺バスに接続される。周辺バスには内部バスよりも低速で、必ずしも高速のクロック動作が必要とされない回路モジュールとして、前記FCU13、MCCNT15、IOP16などが結合されている。
【0077】
エンベデッドメモリカード20Bは、特に制限されないが、組み込み用途のフラッシュメモリカードであり、回路基板上に例えばBGA(ボールグリッドアレイ)による外部端子を介して実装固定され、N個(Nは正の整数)のパラメータ群UPRM#1〜UPRM#Nを書き換え可能に格納する不揮発性のパラメータ領域20B−1〜20B−Nを有する。このエンベデッドメモリカード20Bは、例えばマルチメディアカード(MultiMediaCard/MMC:登録商標)準拠のメモリインタフェースを持つ。マイクロコンピュータ10のメモリカードコントローラ15は、エンベデッドメモリカード20Bが持つ上記メモリカードインタフェースを用いたメモリカードのアクセス制御を行う。エンベデッドメモリカード20Bの記憶容量や仕様の更新等があっても互換性の範囲でメモリカードコントローラ15による制御を行うことができる。
【0078】
ここで、DFLSH18の記憶容量はエンベデッドメモリカード20Bの記憶容量に比べて格段に小さい。大きな記憶容量の電気的に書き換え可能な不揮発性メモリをオンチップで持つことによるマイクロコンピュータのコスト上昇とチップの大型化を抑えるためである。
【0079】
パラメータ選択スイッチ回路30BのスイッチSW#1〜SW#NはパラメータUPRM#1〜UPRM#Nのパラメータ領域20B−1〜20B−Nに対応され、対応するパラメータ領域に対して、オン状態によるロー(Low)出力が選択、オフ状態によるハイ(High)出力が非選択を指示する。尚、パラメータ選択スイッチ回路30BはスイッチSW#1〜SW#Nのうち複数のスイッチがオン状態になることを禁止している。
【0080】
スイッチSW#1〜SW#Nのスイッチ状態は入出力ポート16の入出力回路IO#1〜IO#Nに反映される。CPU11は入出力回路IO#1〜IO#Nの状態を監視し、それが指示する番号のパラメータをDFLSH18に書き込むための処理を行う。例えば図8の例では、新たに、パラメータの番号#Jが指定されたことを検出すると、MCCNT15を介してEMCRD20Bの記憶領域20B−JからRAM14にパラメータUPRM#Jを転送させ、次いで、そのパラメータUPRM#JをFCU13を介してDFLSH18に書き込む制御を行う。特に制限されないが、その制御は、ユーザプログラムをCPU11が実行することによって行う。
【0081】
図9にはパラメータの転送制御に関するマイクロコンピュータ10Bの論理構成が例示される。ここではその論理構成を、ハードウェア層(HWL)、ドライバ層(DVL)、ミドルウェア(MWL)、アプリケーション層(APL)に大別する。
【0082】
図9ではハードウェア層(HWL)としてIOP16、DFLSH18、FCU13、及びMCCNT15を図示する。
【0083】
ドライバ層(DVL)には、例えば、入出力回路IO#1〜IO#NとスイッチWS#1〜SW#Nとの対応を設定するIOP16の機能設定部100、FCU13によるDFLSH18の消去及び書き込み制御シーケンスを規定するECUファームウェア101B、MCCNT15を制御してEMCRD20Bからパラメータを読み出すためのリードアクセス動作のためのカードアクセスドライバ102が設けられる。
【0084】
ミドルウェア層(MWL)には、IO判定部110、書き込み制御部111B、及びファイルシステム112を有する。IO判定部110は、プログラム選択スイッチ回路30の状態を反映した各入出力回路IO#1〜IO#Nのロー(Lo)入力又はハイ(High)入力状態を判定するプログラムである。書き込み制御部111Bは、FCUファームウェア101Bが提供する機能に応じたコマンドを使用してDFLSH18への消去及び書き込み動作に関する書き込み制御を行うプログラムである。ファイルシステム112はEMCRD20B内のパラメータUPRM#1〜UPRM#Nをファイルとして管理し、上位のアプリケーション層のプログラムがEDMCRD20B内部のデータをファイルとして扱うことを可能にするためのプログラムである。ここでは、パラメータUPRM#1〜UPRM#NをファイルとしてEMCRD20Bに格納する例を説明したが、パラメータUPRM#1〜UPRM#NをデータとしてEMCRD20Bに格納し、ファイルシステムの代わりにユーザプログラムアクセス用の専用ソフトウェアを実装してもよい。
【0085】
アプリケーション層(APL)は、タスク制御部120Bを有する。タスク制御部120Bは、IO判定部110を使用したIOP16の状態に従った動作、書き込み制御部111Bを使用したDFLSH18への書き込み動作、ファイルシステム112を使用したEMCRD20Bからのファイルの読み出し動作等、マイクロコンピュータに対する全体的なタスクを制御するプログラムである。
【0086】
図10には図8のデータ処理システムにおいて、図9で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作のフローチャートが例示される。ここで、DFLSH18にはパラメータUPRM#Kが初期的に格納されているものとする。
【0087】
マイクロコンピュータ10Bに電源が投入されて起動されると(S41)、パワーオンリセット処理によりマイクロコンピュータ10Bの動作周波数や周辺モジュール等に対する初期設定が行われる(S42)。入出力ポート16にはIO機能設定部100によってパラメータ選択スイッチ回路30Bとの対応が設定される。
【0088】
この後、ユーザプログラムが先頭番地から実行される(S44)。即ち、パラメータの更新以外のタスクの実行を開始する。このタスクは、例えば、モータ制御、画像のデコード、他機器との通信等のタスクである。その途上で、パラメータを更新するための処理を行う。即ち、CPU11は参照番号パラメータiを0に初期化して(S45)、当該参照パラメータiの値がNになるまで(S46)、+1ずつインクリメントしながら(S47)、当該参照パラメータが指す番号に入出力回路IO#iの入力がロー(Low)になっているか否かを判別する(S48)。どの入出力回路IO#iの入力がロー(Low)になるかはパラメータ選択スイッチ回路30Bの状態によって決まる。特に図示はしないが、現在使用中のパラメータの番号はCPU11によって把握されており、ステップS48の判別では現在使用中のパラメータの番号が判定対象から除かれることは言うまでもない。
【0089】
状態がLow”になっている入出力回路を判別すると、CPU11はその番号のパラメータム#iの更新要求があるものと判定し、ファイルシステム112によりEMCRD20BからRAM14へパラメータ#iを読み出す(S49)。例えばi=Jとする。RAM14に読み出されたパラメータUPRM#Jは書き込み制御部111によりDFLSH18に書き込まれる(S50)。その後、マイクロコンピュータ10BはユーザパラメータUPRM#iを使用してプログラムの実行を開始して(S51)、タスクを実行する(S44)。
【0090】
実施の形態3によれば以下の作用効果を得ることができる。
【0091】
外部の通信端末の使用やカードソケットを実装することなく、マイクロコンピュータ10Bを起動した状態でパラメータUPRM#iを更新することができる。
【0092】
また、マイクロコンピュータ10BがDFLSH18の記憶容量を超えた、複数のパラメータUPRM#1〜UPRM#Nを使用することができる。
【0093】
更に、マイクロコンピュータ10Bは外部から与えたれた#i情報の判別結果に応答して、内部で必要なパラメータをEMCRD20BからダウンロードしてオンチップのDFLSH18を書き換えるから、オンチップする事ができるDFLSH18の記憶容量以上に大きな規模のパラメータであっても、マイクロコンピュータ10BにオンチップされたDFLSH18から直接リードして即座に利用することが可能になる。
【0094】
《実施の形態4》
図11には不揮発性メモリデバイスとしてシリアルフラッシュメモリを用いた例が示される。シリアルフラッシュメモリ(SFLSH)20Cは、EMCRD20よりアクセス速度は遅いが、EMCRD20に比較しアクセスのための通信方式が簡易であり、ソフトウェアの作成が容易である。さらに、シリアルインタフェースで制御でき、端子数も少ないという利点もある。
【0095】
シリアルフラッシュメモリ20Cを用いる場合にはマイクロコンピュータ10Cはシリアルフラッシュメモリ20Cに接続するシリアルインタフェース回路(SPIC)19を周辺回路として備える。このシリアルインタフェースは所謂SPI(Serial Peripheral Interface)に準拠したインタフェース制御機能を備える。シリアルフラッシュメモリ20CはSPIC19とクロック線、チップセレクト線、入力データ(データイン)線、出力データ(データアウト)線で接続する。クロックはSPIC19がマイクロコンピュータ10Cの周辺クロックを分周し生成し、生成されたクロック信号はSPIC19からSFLSH20Cにクロック線を介して供給される。チップセレクト線はSPIC19がSFLSH20Cに対するチップ選択信号を伝達し、チップ選択信号が選択レベルにされることによってSFLSH20Cはチップ選択状態にされ、データの書き込みや読み出しが可能にされる。データアウト線はSPIC19からSFLSH20Cに書き込みデータを転送し、データイン線はSFLSH20CからSPIC19に読み出しデータを転送する。尚、マイクロコンピュータに複数のシリアルフラッシュメモリを接続することもでき、その場合、マイクロコンピュータはチップセレクト線により個々のシリアルフラッシュメモリを選択すればよい。
【0096】
《実施の形態5》
図12には本発明に係るデータ処理システムをモータ制御に適用した例が示される。産業用途のモータは機器の位置決め制御や時刻同期が必要な制御等で使用する。そこで、高精度な制御が必要となりマイクロコンピュータでモータを制御するのが一般的である。
【0097】
マイクロコンピュータ10DのCPU11はROM12に格納されたプログラムに従いモータ制御の演算を行う。演算結果を基にモータ制御用タイマ40でPWM(Pulse Width Modulation)信号を生成する。方形波のPWM信号は、そのハイレベル(High)とローレベル(Low)の区間を調整して、モータドライバ41を経由でモータ42を駆動制御をする。また、マイクロコンピュータ10DのA/D変換器43によりモータセンサ45からのセンサ信号を論理信号に変換し、モータの動作情報を取得する。CPU11のモータ制御演算はモータ42の動作情報も反映させた演算となる。
【0098】
ROM12のプログラムを書き換えることでモータ制御演算の内容を更新する場合、モータ42を正常に制御するには、マイクロコンピュータ10Dを起動したままで書き換える必要がある。従って、実施の形態1などで説明したROM12に対するユーザプログラムの選択的な書き換えのための構成を採用することにより、マイクロコンピュータ10Dをパワーオンリセットすることなく効率的にユーザプログラムを書き換えて、小さなオンチップROM12を用いた高速のモータ制御を容易に実現することができる。
【0099】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0100】
例えば、不揮発性メモリデバイスはメモリカードやシリアルフラッシュメモリに限定されずその他の不揮発性メモリに変更可能である。出力回路はスイッチ回路やシリアル端末に限定されずレジスタなど適宜変更可能である。オンチップ不揮発性メモリはフラッシュメモリに限定されずMRAMなどであってもよい。マイクロコンピュータの論理構成は図3などの階層構成に限定されず、ミドルウェア層がない場合など、その他の論理階層構造であっても良い。本発明はモータ制御のほかにも適宜の制御分野に適用することができる。また、各実施の形態はそれぞれ単独で実現する場合に限らず、適宜の複数の実施の形態を組み合わせて実現することも可能である。
【符号の説明】
【0101】
1,1A,1B データ処理システム
10,10A,10B マイクロコンピュータ
20,20B エンベデッドメモリカード(EMCRD)
20C シリアルフラッシュメモリ(SFLSH)
30 プログラム選択スイッチ回路
11 中央処理装置(CPU)
12 不揮発性メモリ(ROM)
13 消去書き込み制御回路(FCU)
14 RAM
15 メモリカードコントローラ(MCCNT)
16 入出力ポート(IOP)
IO#1〜IO#N 入出力回路
SW#1〜SW#N スイッチ
UPGM#1〜UPGM#N ユーザプログラム
100 機能設定部
101 ECUファームウェア
102 カードアクセスドライバ
110 IO判定部
111 書き込み制御部
112 ファイルシステム
110 IO判定部
17 シリアルコミュニケーションインタフェースコントローラ(SCIC)
40 シリアル端末装置
120A タスク制御部
103 SCIドライバ
110A 番号判定部
30B パラメータ選択スイッチ回路
UPRM#1〜UPRM#N パラメータ群
20B−1〜20B−N パラメータ領域
18 データフラッシュメモリ(DFLSH)
【技術分野】
【0001】
本発明はマイクロコンピュータなどの半導体データ処理装置にオンチップされた不揮発性メモリのプログラムやパラメータを書き換えて用いるデータ処理システムに関し、例えば、ACサーボ、汎用インバータ、エアコン、パワーコンディショナー、自動車、或いは通信端末等に適用して有効な技術に関する。
【背景技術】
【0002】
マイクロコンピュータなどの半導体データ処理装置にオンチップされた不揮発性メモリのプログラムやパラメータを書き換えて用いる技術として、特許文献1乃至6がある。これらの文献では、マイクロコンピュータのオンチップされた電気的に書き換え可能な不揮発性メモリとしてのフラッシュメモリに対する書き換えモードとしてPROMライタ書き込みモードとオンボード書き込みモードとを有する。PROMライタ書き込みモードでは、PROMライタ書き込みモードを設定したマイクロコンピュータをソケットアダプタ経由でPROMライタに接続し、ROMライタによってオンチップのフラッシュメモリを直接書き換え制御する。オンボード書き込みモードでは、マイクロコンピュータがシステムに実装された状態のままで、中央処理装置がSCIやUSB等の通信インタフェースを用いてプログラムまたはパラメータをダウンロードし、ダウンロードしたプログラムやパラメータは中央処理装置が書き換え制御プログラムを実行することによってフラッシュメモリに書き込む。オンボード書き込みモードはプログラムやパラメータの初期書き込みなどに利用される。また、オンボード書き込みモードはプログラムのバグの修正やバージョンアップなどに利用される。特許文献7にもマイクロコンピュータにオンチップされたフラッシュメモリに対するオンボード書き込みについて記載される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−004258号公報
【特許文献2】特開2007−095093号公報
【特許文献3】特開2002−304894号公報
【特許文献4】特開平11−288410号公報
【特許文献5】特開平5−266219号公報
【特許文献6】特開平5−266220号公報
【特許文献7】特開2001−357690号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明者はマイクロコンピュータにオンチップされた書き換え可能な不揮発性メモリにプログラムやパラメータを格納して中央処理装置の近傍に配置し、これに対する中央処理装置のアクセス速度を向上させて、プログラムの実行速度を高速化し、また、パラメータの参照速度を高速化することについて検討した。
【0005】
しかしながら、そのようにオンチップする事ができる不揮発性メモリの記憶容量はマイクロコンピュータのコストやチップサイズなどの点から制限され、その制限以上に大きな規模のプログラムやパラメータを用いる場合には新たな対策を講ずることが必要になる。更に、前記PROMライタモードやオンボード書き換えモードを用いてそのような書き換えを行ったとき、パワーオンリセットを行ってから新たなプログラムの実行を開始すると、処理の再開に時間がかかりすぎたりして、データ処理によっては不都合を生ずる場合のあることが明らかにされた。
【0006】
本発明の目的は、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを用いたデータ処理の高速化と円滑化を実現することができるデータ処理システムを提供することにある。
【0007】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0008】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0009】
すなわち、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを半導体データ処理装置の外部に接続された不揮発性半導体メモリデバイスに格納し、半導体データ処理装置は外部から与えたれた情報の判別結果に応答して、内部で必要なプログラムやパラメータを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換える。プログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う。
【発明の効果】
【0010】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0011】
すなわち、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムやパラメータを用いたデータ処理の高速化と円滑化を実現することができる。
【図面の簡単な説明】
【0012】
【図1】図1は本発明の実施の形態1に係るデータ処理システムを例示するブロック図である。
【図2】図2はMCCNTとEMCRDとのインタフェース信号を例示するブロック図である。
【図3】図3はユーザプログラムの転送制御に関するマイクロコンピュータの論理構成を例示する説明図である。
【図4】図4は図1のデータ処理システムにおいて、図3で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作を例示するフローチャートである。
【図5】図5は本発明の実施の形態2に係るデータ処理システムを例示するブロック図である。
【図6】図6はユーザプログラムの転送制御に関する図5のマイクロコンピュータの論理構成が例示される説明図である。
【図7】図7は図5のデータ処理システムにおいて、図6で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作を例示するフローチャートである。
【図8】図8は実施の形態3に係るデータ処理システムを例示するブロック図である。
【図9】図9はパラメータの転送制御に関するマイクロコンピュータの論理構成が例示される説明図である。
【図10】図10は図8のデータ処理システムにおいて、図9で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作を例示するフローチャートである。
【図11】図11は不揮発性メモリデバイスとしてシリアルフラッシュメモリを用いた例を示すブロック図である。
【図12】図12は本発明に係るデータ処理システムをモータ制御に適用した例を示すブロック図である。
【発明を実施するための形態】
【0013】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0014】
〔1〕<内蔵ROM容量を超えるプログラムを選択して外部から内蔵ROMにロード>
本発明の代表的な実施の形態に係るデータ処理システム(1,1A)は、半導体データ処理装置(10,10A)と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイス(20,20C)と、前記半導体データ処理装置に接続された出力回路(30,40)とを備える。前記半導体データ処理装置は、中央処理装置(11)と、前記中央処理装置が実行するプログラムを格納する書き換え可能な不揮発性メモリ(12)と、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラ(15、19)と、前記出力回路に接続された外部インタフェース回路(16,17)とを有する。前記不揮発性半導体メモリデバイスは、複数のプログラムが格納される複数のプログラム領域(201−1〜20−N)を有する。前記不揮発性メモリは、前記複数のプログラムの一部を格納するための実行プログラム領域(12−1)を有する。前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う。
【0015】
これによれば、半導体データ処理装置は外部から与えたれた情報の判別結果に応答して、内部で必要なプログラムを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換えるから、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のプログラムであっても、半導体データ処理装置にオンチップされた不揮発性メモリから直接リードして高速に実行することが可能になる。さらに、半導体データ処理装置にオンチップされた不揮発性メモリのプログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行うから、パワーオンリセットを行ってそのプログラムの実行を開始する場合に比べて、プログラム処理の再開に時間がかからず、実行するプログラムを切り替えたときデータ処理を円滑に再会することができる。
【0016】
〔2〕<ポート入力によってプログラムを指示>
項1のデータ処理システムにおいて、前記外部インタフェース回路は入力ポート(16)であり、前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するプログラム領域を判別する。
【0017】
これにより、入力ポートを介してプログラムの書き換えを外部から容易に指示することができる。
【0018】
〔3〕<シリアル入力によってプログラムを指示>
項1のデータ処理システムにおいて、前記外部インタフェース回路はシリアル入力回路(17)であり、前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するプログラム領域を判別する。
【0019】
これにより、シリアル入力回路を介してプログラムの書き換えを外部から容易に指示することができる。
【0020】
〔4〕<転送制御用のプログラムを含む>
項1のデータ処理システムにおいて、前記プログラムは、転送制御用の第1のプログラム(120,110,111,112)とその他の第2のプログラムを含む。前記第1のプログラムは、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在実行中のプログラムに対応しないとき、当該判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を制御するプログラムである。前記第1のプログラムは、前記第2のプログラムの実行中の所定のタイミングで実行可能にされる。
【0021】
これにより、プログラムは第2のプログラムと共に転送制御用の第1のプログラムを有するから、第2のプログラムを実行しながらプログラムの書き換えに付帯する処理を円滑に行うことができる。
【0022】
〔5〕<メモリコントローラ>
項1のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスはエンベデッドメモリカード(20)であり、前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラ(15)である。
【0023】
これによれば、メモリカードコントローラを有する半導体データ処理装置に対してエンベデッドメモリカードを大きなプログラムの格納に流用することができる。
【0024】
〔6〕<シリアルペリフェラルコントローラ>
項1のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリ(20)であり、前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路(19)である。
【0025】
これによれば、シリアルペリフェラルインタフェース回路を有する半導体データ処理装置に対して不揮発性シリアルメモリを大きなプログラムの格納に流用することができる。
【0026】
〔7〕<内蔵ROM容量を超えるパラメータを選択して外部から内蔵ROMにロード>
本発明の別の実施の形態に係るデータ処理システム(1B)は、半導体データ処理装置(10B)と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイス(20B,20C)と、前記半導体データ処理装置に接続された出力回路(30B)とを備える。前記半導体データ処理装置は、中央処理装置(11)と、前記中央処理装置によるデータ処理で利用されるパラメータを格納する書き換え可能な不揮発性メモリ(18)と、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラ(15,19)と、前記出力回路に接続された外部インタフェース回路(16)とを有する。前記不揮発性半導体メモリデバイスは、複数のパラメータ群が格納される複数のパラメータ群領域(20B−1〜20B−N)を有する。前記不揮発性メモリは、前記複数のパラメータ群の一部のパラメータ群を格納するためのテンポラリ領域(18−1)を有する。前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードし、リードしたパラメータ群を前記テンポラリ領域に格納する処理を行う。
【0027】
これによれば、半導体データ処理装置は外部から与えられた情報の判別結果に応答して、内部で必要なパラメータを不揮発性半導体メモリデバイスからダウンロードしてオンチップの不揮発性メモリを書き換えるから、オンチップする事ができる不揮発性メモリの記憶容量以上に大きな規模のパラメータであっても、半導体データ処理装置にオンチップされた不揮発性メモリから直接リードして即座に利用することが可能になる。
【0028】
〔8〕<ポート入力によってパラメータ群を指示>
項7のデータ処理システムにおいて、前記外部インタフェース回路は入力ポート(16)であり、前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するテンポラリ領域を判別する。
【0029】
これにより、入力ポートを介してパラメータの書き換えを外部から容易に指示することができる。
【0030】
〔9〕<シリアル入力によってパラメータ群を指示>
項7のデータ処理システムにおいて、前記外部インタフェース回路はシリアル入力回路(17)であり、前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するテンポラリ領域を判別する。
【0031】
これにより、シリアル入力回路を介してパラメータの書き換えを外部から容易に指示することができる。
【0032】
〔10〕<パラメータの書き換え制御用のプログラム>
項7のデータ処理システムにおいて、前記中央処理装置(11)は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在使用中のパラメータ群に対応しないとき、当該判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードする。リードしたパラメータ群を前記テンポラリ領域に格納する処理は、アプリケーションプログラムの実行中の所定のタイミングで実行可能にされる。
【0033】
これにより、アプリケーションプログラムを実行しながらパラメータの書き換えに付帯する処理を円滑に行うことができる。
【0034】
〔11〕<メモリコントローラ>
項7のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスはエンベデッドメモリカード(20B)であり、前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラ(15)である。
【0035】
これによれば、メモリカードコントローラを有する半導体データ処理装置に対してエンベデッドメモリカードを大きなサイズのパラメータの格納に流用することができる。
【0036】
〔12〕<シリアルペリフェラルコントローラ>
項7のデータ処理システムにおいて、前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリ(20C)であり、前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路(19)である。
【0037】
これによれば、シリアルペリフェラルインタフェース回路を有する半導体データ処理装置に対して不揮発性シリアルメモリを大きなサイズのパラメータの格納に流用することができる。
【0038】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0039】
《実施の形態1》
図1には本発明の実施の形態1に係るデータ処理システムが例示される。同図に示されるデータ処理システム1は、特に制限されないが、所定の配線基板(図示せず)に、半導体データ処理装置としてのマイクロコンピュータ10、前記マイクロコンピュータ10に接続された不揮発性半導体メモリデバイスとしてのエンベデッドメモリカード(EMCRD)20、及びマイクロコンピュータ10に接続された出力回路としてのプログラム選択スイッチ回路30などが実装されて構成される。
【0040】
マイクロコンピュータ10は、特に制限されないが、単結晶シリコンなどの1個の半導体基板にCMOS集積回路製造技術などによって構成される。このマイクロコンピュータ10は、中央処理装置(CPU)11、電気的に書き換え可能な不揮発性メモリ(ROM)12、不揮発性メモリ12に対する消去及び書き込み動作のシーケンス制御を行う消去書き込み制御回路(FCU)13、RAM14、前記エンベデッドメモリカード20の動作を制御するメモリカードコントローラ(MCCNT)15、及び入出力ポート(IOP)16などを備える。RAM14はプログラムのワーク領域やデータを一時保存する領域として使用される。
【0041】
図1では上記それぞれの回路モジュールは隣同士で信号の入出力を行うように図示されているが、これは代表的な信号入出力形態を模式的に図示しているにすぎない。実際は内部バスによって接続されている。図示は省略するが、例えばCPU11、ROM12及びRAM14はCPU11の動作サイクルに匹敵するバスサイクルで信号伝達を行う高速な内部バスによって接続される。この内部バスはバスブリッジ回路又はバスコントローラを介して周辺バスに接続される。周辺バスには内部バスよりも低速で、必ずしも高速のクロック動作が必要とされない回路モジュールとして、前記FCU13、MCCNT15、IOP16などが結合されている。
【0042】
前記不揮発性メモリ12はフラッシュメモリの不揮発性記憶素子と同様の電気的に書き換え可能なスタックゲート型若しくはスプリットゲート型のメモリセルがマトリクス配置されたメモリセルアレイを有し、CPU11が実行するプログラムの格納に用いられる。その一部はユーザプログラムUPGM#iの格納領域12−1とされる。図1ではi=Jの場合を例示する。
【0043】
前記不揮発性メモリ12に対する消去書き込み制御回路13は前記周辺バス経由でCPU11から与えられる消去コマンドや書き込みコマンドに応答して、不揮発性メモリ12に対する消去動作や書き込み動作のシーケンス制御を行う専用のハードウェアで、CPU11が他のタスク実行時でも、ROM12に対する書き込みを可能にする。前記不揮発性メモリ12に対する読み出しは前記内部バス経由でCPU11が高速に行うことができる。
【0044】
MCCNT15はCPU11から与えられるメモリカードコマンドに応答してEMCRD20を制御するハードウェアである。
【0045】
IOP16にはN個の入出力回路IO#1〜IO#Nが代表的に図示されている。入出力回路IO#1〜IO#Nにはプログラム選択スイッチ回路30のN個のスイッチSW#1〜SW#Nのスイッチ状態に応ずるスイッチ信号が供給される。特に制限されないが、夫々のスイッチ信号は1ビットとされる。プログラム選択スイッチにより制御される各I/Oポートの状態を反映する。上記スイッチ状態が反映される入出力回路IO#1〜IO#Nの状態はCPU11によって監視される。
【0046】
エンベデッドメモリカード20は、特に制限されないが、組み込み用途のフラッシュメモリカードであり、回路基板上に例えばBGA(ボールグリッドアレイ)による外部端子を介して実装固定され、N個(Nは正の整数)のユーザプログラムUPGM#1〜UPGM#Nを書き換え可能に格納する不揮発性のプログラム領域20−1〜20−Nを有する。このエンベデッドメモリカード20は、例えばマルチメディアカード(MultiMediaCard/MMC:登録商標)準拠のメモリインタフェースを持つ。マイクロコンピュータ10のメモリカードコントローラ15は、エンベデッドメモリカード20が持つ上記メモリカードインタフェースを用いたメモリカードのアクセス制御を行う。エンベデッドメモリカード20の記憶容量や仕様の更新等があっても互換性の範囲でメモリカードコントローラ15による制御を行うことができる。
【0047】
ここで、ROM12の記憶容量はエンベデッドメモリカード20の記憶容量に比べて格段に小さく、例えば数百キロバイトないし1メガバイト程度であり、例えば、OSなどのシステムプログラムや必要なパラメータデータのほかに、一つのユーザプログラムを格納することができる程度の記憶容量をもつ。大きな記憶容量の電気的に書き換え可能な不揮発性メモリをオンチップで持つことによるマイクロコンピュータのコスト上昇とチップの大型化を抑えるためである。
【0048】
プログラム選択スイッチ回路30のスイッチSW#1〜SW#NはユーザプログラムUPGM#1〜UPGM#Nのプログラム領域20−1〜20−Nに対応され、対応するプログラム領域に対して、オン状態によるロー(Low)出力が選択、オフ状態によるハイ(High)出力が非選択を指示する。尚、プログラム選択スイッチ回路30はスイッチSW#1〜SW#Nのうち複数のスイッチがオン状態になることを禁止している。
【0049】
スイッチSW#1〜SW#Nのスイッチ状態は入出力ポート16の入出力回路IO#1〜IO#Nに反映される。CPU11は入出力回路IO#1〜IO#Nの状態を監視し、それが指示する番号のユーザプログラムをROM12に書き込むための処理を行う。例えば新たに、ユーザプログラムの番号#Jが指定されたことを検出すると、MCCNT15を介してEMCRD20の記憶領域20−JからRAM14にユーザプログラムUPGM#Jを転送させ、次いで、そのユーザプログラムUPGM#JをFCU13を介してROM12に書き込む制御を行う。特に制限されないが、その制御は、ユーザプログラムUPGM#Jを書きこむ前にROM12に格納さている他のユーザプログラムをCPU11が実行することによって行う。新たなユーザプログラムUPGM#Jに書き込みが完了すると、特に制限されないが、CPU11がソフトウェアリセットを行って、当該ユーザプログラムUPGM#Jの実行が可能にされる。ソフトウェアリセットとして、例えば、CPU11の汎用レジスタやプログラムカウンタなどのレジスタセットの初期化が行われて、ユーザプログラムUPGM#Jの先頭番地から命令フェッチが開始される。
【0050】
図2にはMCCNT15とEMCRD20とのインタフェース信号が例示される。図において双方は、クロック線、コマンド線、8本のデータ線で接続される。クロック線に供給されるクロック信号はMCCNT15がマイクロコンピュータ10内の周辺クロック信号を分周して生成し、このクロック信号がMCCNT15からクロック線を介してEMCRD20に供給される。コマンド線にはMCCNT15からEMCRD20に当該メモリカードのインタフェース仕様に準拠したコマンドが出力され、また、EMCRD20からMCCNT15にはコマンドに対するレスポンスが転送される。データ線にはMCCNT15からEMCRD20に書き込みデータが供給され、また、EMCRD20からMCCNT15に読み出しデータが供給される。使用するデータ線の本数は8本に限定されず、1本又は4本などであってもよい。
【0051】
図3にはユーザプログラムの転送制御に関するマイクロコンピュータ10の論理構成が例示される。ここではその論理構成を、ハードウェア層(HWL)、ドライバ層(DVL)、ミドルウェア(MWL)、アプリケーション層(APL)に大別する。
【0052】
ハードウェア層(HWL)としてIOP16、ROM12、FCU13、及びMCCNT15を図示する。
【0053】
ドライバ層(DVL)には、例えば、入出力回路IO#1〜IO#NとスイッチSW#1〜SW#Nとの対応を設定するIOP16の機能設定部100、FCU13によるROM12の消去及び書き込み制御シーケンスを規定するFCUファームウェア101、MCCNT15を制御してEMCRD20からユーザプログラムを読み出すためのリードアクセス動作のためのカードアクセスドライバ102が設けられる。
【0054】
ミドルウェア層(MWL)には、IO判定部110、書き込み制御部111、及びファイルシステム112を有する。IO判定部110は、プログラム選択スイッチ回路30の状態を反映した各入出力回路IO#1〜IO#Nのロー(Lo)入力又はハイ(High)入力状態を判定するプログラムである。書き込み制御部111は、FCUファームウェア101が提供する機能に応じたコマンドを使用してROMへの消去及び書き込み動作に関する書き込み制御を行うプログラムである。ファイルシステム112はEMCRD20内のユーザプログラムUPGM#1〜UPGM#Nをファイルとして管理し、上位のアプリケーション層のプログラムがEMCRD20内部のデータをファイルとして扱うことを可能にするためのプログラムである。ここでは、ユーザプログラムUPGM#1〜UPGM#NをファイルとしてEMCRD20に格納する例を説明したが、ユーザプログラムUPGM#1〜UPGM#NをデータとしてEMCRD20に格納し、ファイルシステムの代わりにユーザプログラムアクセス用の専用ソフトウェアを実装してもよい。
【0055】
アプリケーション層(APL)は、タスク制御部120を有する。タスク制御部120は、IO判定部110を使用したIOP16の状態に従った動作、書き込み制御部111を使用したROM12への書き込み動作、ファイルシステム112を使用したEMCRD20からのファイルの読み出し動作等、マイクロコンピュータに対する全体的なタスクを制御するプログラムである。
【0056】
特に制限されないが、ユーザプログラムUPGM#1〜UPGM#Nのそれぞれは、ユーザプログラムの転送制御に用いるアプリケーション層(APL)のプログラム(タスク制御部120を構成する一部のプログラム)を持つ。ユーザプログラムの転送制御に用いるミドルウェア層(MWL)及びドライバ層(DVL)のプログラムは個々のアプリケーションプログラムから呼び出して実行すればよいから、ユーザプログラムUPGM#1〜UPGM#N毎に個別に持たなくてもよい。ROM12のユーザプログラム領域とは別の記憶領域に固定的に格納されていればよい。尚、ユーザプログラムの転送制御に用いるアプリケーション層(APL)のプログラム(タスク制御部120を構成する一部のプログラム)は、ユーザプログラムの転送制御に用いるミドルウェア層(MWL)及びドライバ層(DVL)のプログラムと同様に、ユーザプログラムUPGM#1〜UPGM#Nに共通化することも可能である。
【0057】
図4には図1のデータ処理システムにおいて、図3で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作のフローチャートが例示される。ここで、ROM12にはユーザプログラムUPGM#Kが初期的に格納されているものとする。
【0058】
マイクロコンピュータ10に電源が投入されて起動されると(S1)、パワーオンリセット処理によりマイクロコンピュータ10の動作周波数や周辺モジュール等に対する初期設定が行われる(S2)。入出力ポート16にはIO機能設定部100によってプログラム選択スイッチ回路30との対応が設定される。
【0059】
この後、ROM12に格納されているユーザプログラムUPGM#Kが先頭番地から実行される(S4)。即ち、ユーザプログラムの更新以外のタスクの実行を開始する。このタスクは、例えば、モータ制御、画像のデコード、他機器との通信等のタスクである。その途上で、ユーザプログラムを更新するための処理を行う。即ち、CPU11は参照番号パラメータiを0に初期化して(S5)、当該パラメータiの値がNになるまで(S6)、+1ずつインクリメントしながら(S7)、当該パラメータが指す番号に入出力回路IO#iの入力がロー(Low)になっているか否かを判別する(S8)。どの入出力回路IO#iの入力がロー(Low)になるかはプログラム選択スイッチ回路30の状態によって決まる。特に図示はしないが、現在実行中のユーザプログラムの番号はCPU11によって把握されており、ステップS8の判別では現在実行中のユーザプログラムの番号が判定対象から除かれることは言うまでもない。
【0060】
状態がLow”になっている入出力回路を判別すると、CPU11はその番号のユーザプログラム#iの更新要求があるものと判定し、ファイルシステム112によりEMCRD20からRAM14へユーザプログラム#iを読み出す(S9)。例えばi=Jとする。RAM14に読み出されたユーザプログラム#iは書き込み制御部111によりROM12に書き込まれる(S10)。その後、マイクロコンピュータ10はソフトウェアリセットされ、CPU11のレジスタセットが初期化される(S11)。パワーオンリセットは行われない。ソフトウェアリセットに伴うレジスタセットの初期化などは、例えばハードウェアによって実現される。これによってCPU11はユーザプログラム#iを実行開始し(S12)、そのプログラムで規定されるタスクを実行する(S4)。
【0061】
実施の形態1によれば、外部の通信端末の使用やカードソケットを実装することなく、マイクロコンピュータを起動した状態でユーザのプログラムを更新する事ができる。マイクロコンピュータがROM12の容量を超えた、複数のユーザプログラムを実行することができる。
【0062】
プログラムスイッチ回路30から与えたれた情報の判別結果に応答して、マイクロコンピュータ10が必要なプログラムをEMCRD20からダウンロードしてオンチップのROM12を書き換えるから、オンチップする事ができるROMの記憶容量以上に大きな規模のプログラムであっても、マイクロコンピュータ10にオンチップされたROMから直接プログラムをリードして高速に実行することが可能になる。
【0063】
マイクロコンピュータ10にオンチップされたROM12のプログラムを書き換えたときは、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行うから、パワーオンリセットを行ってそのプログラムの実行を開始する場合に比べて、プログラム処理の再開に時間がからず、実行するプログラムを切り替えたときデータ処理を円滑に再会することができる。
【0064】
《実施の形態2》
図5には本発明の実施の形態2に係るデータ処理システムが例示される。同図に示されるデータ処理システム1Aは、特に制限されないが、所定の配線基板(図示せず)に、半導体データ処理装置としてのマイクロコンピュータ10A、前記マイクロコンピュータ10に接続された不揮発性半導体メモリデバイスとしてのエンベデッドメモリカード(EMCRD)20、及びマイクロコンピュータ10に接続された出力回路としてのシリアル端末装置40などが実装されて構成される。
【0065】
マイクロコンピュータ10Aは、CPU11の制御によってシリアル通信制御を行うシリアルコミュニケーションインタフェースコントローラ(SCIC)17を備える。このSCIC17にはシリアル端末装置40が、例えばシリアルケーブルを介して接続される。シリアルケーブルに限定されず、非接触シリアル通信によってインタフェースされてもよい。SCIC17にはシリアル端末40の通信アプリケーションで生成された選択データ#iがSCIC41を介して供給される。選択データ#iは#1〜#Nの何れかの値を持つ。CPU11はSCIC17からの選択データ#iの入力を監視する。実施の形態1と同様に選択データ#iの値#1〜#NはユーザプログラムUPGM#1〜UPGM#Nの番号に対応される。CPU11はSCIC17から入力した番号#iに応ずるユーザプログラムをEMCRD20からRAM14に転送してROM12に書き込む制御を行う。マイクロコンピュータ10Aのその他の構成は図1と同様であり、同一機能を有する回路には同じ参照符号を付してその詳細な説明を省略する。図5も図1と同様にi=Jの場合を例示する。
【0066】
図6にはユーザプログラムの転送制御に関するマイクロコンピュータ10Aの論理構成が例示される。ここではその論理構成を、ハードウェア層(HWL)、ドライバ層(DVL)、ミドルウェア(MWL)、アプリケーション層(APL)に大別する。
【0067】
図3との相違点はハードウェア層(HWL)としてSCIC17を有し、ドライバ層(DVL)としてSCIドライバを有し、タスク制御部120AはSCIC17を制御対象に含めたアプリケーションプログラムとされる。SCIドライバ103はSCIC17を制御しシリアル端末40からのユーザが選択した番号データ#iを受信する制御を行う。番号判定部110Aは、シリアル端末40から受信した番号#iを判定するプリグラムである。その他の論理構成は図3と同様であるから、同一機能にはそれと同じ参照符号を付して詳細な説明を省略する。
【0068】
図7には図5のデータ処理システムにおいて、図6で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作のフローチャートが例示される。ここで、ROM12にはユーザプログラムUPGM#Kが初期的に格納されているものとする。
【0069】
マイクロコンピュータ10Aに電源が投入されて起動されると(S21)、パワーオンリセット処理によりマイクロコンピュータ10Aの動作周波数や周辺モジュール等に対する初期設定が行われる(S22)。SCIC17にはSCIドライバ103によってシリアル端末40との間の通信条件などが設定される(S23)。それに従ってSCIC17で番号#iが受信されるかが判別される(S24)。
【0070】
番号受信がない場合は、ROM12に格納されているユーザプログラムUPGM#Kが先頭番地から実行開始される(S25)。即ち、ユーザプログラムの更新以外のタスクの実行を開始する。このタスクは、例えば、モータ制御、画像のデコード、他機器との通信等のタスクである。その途上で、番号受信の有無を逐次判別する(S24)。
【0071】
番号受信を判別したときは、ユーザプログラムを更新するための処理を行う。即ち、CPU11は受信番号が0<i<Nであるかを判別し(S26)、それ以外の番号であれば受信番号を破棄してステップS25に戻る。特に図示はしないが、現在実行中のユーザプログラムの番号はCPU11によって把握されており、ステップS8の判別では現在実行中のユーザプログラムの番号が判定対象から除かれることは言うまでもない。
【0072】
受信番号が0<i<Nのとき、CPU11はその番号のユーザプログラム#iの更新要求があるものと判定し、ファイルシステム112によりEMCRD20からRAM14へユーザプログラム#iを読み出す(S28)。例えばi=Jとする。RAM14に読み出されたユーザプログラム#iは書き込み制御部111によりROM12に書き込まれる(S29)。その後、マイクロコンピュータ10Aはソフトウェアリセットされ、CPU11のレジスタセットが初期化される(S30)。パワーオンリセットは行われない。これによってCPU11はユーザプログラム#iを実行開始し(S31)、そのプログラムで規定されるタスクの実行(S25)が可能にされる。
【0073】
実施の形態2によればマイクロコンピュータ10AにIOP経由でスイッチ回路を接続することなく、マイクロコンピュータ10Aを起動した状態でユーザプログラムを更新することができる。その他、実施の形態1と同様の作用効果を奏する。
【0074】
《実施の形態3》
図8には実施の形態3に係るデータ処理システムが例示される。同図に示されるデータ処理システム1Bは、特に制限されないが、所定の配線基板(図示せず)に、半導体データ処理装置としてのマイクロコンピュータ10B、前記マイクロコンピュータ10Bに接続された不揮発性半導体メモリデバイスとしてのエンベデッドメモリカード(EMCRD)20B、及びマイクロコンピュータ10Bに接続された出力回路としてのパラメータ選択スイッチ回路30Bなどが実装されて構成される。
【0075】
マイクロコンピュータ10Bには電気的に書き換え可能な不揮発性メモリとしてのデータフラッシュメモリ(DFLSH)18が図示されている。データフラッシュメモリ18はデータを書き換え可能に記憶するために利用され、その一部はCPU11のデータ処理で用いられるパラメータを書き換え可能に格納するテンポラリ領域18−1とされる。このデータフラッシュメモリ18に対する消去及び書き込み動作のシーケンス制御は消去書き込み制御回路(FCU)13が行う。その他、図1と同様に回路には同じ参照符号を付してその詳細な説明を省略する。尚、図8ではプログラムを格納するROMの図示を省略しているが、マイクロコンピュータ1Bはプログラムを保有するROMを有し、例えば図1で説明した回路が設けられていても良い。マイクロコンピュータ10Bにおいて図1と同じ回路には同じ参照符号を付してその詳細な説明は省略する。
【0076】
図8では上記それぞれの回路モジュールは隣同士で信号の入出力を行うように図示されているが、これは代表的な信号入出力形態を模式的に図示しているにすぎない。実際は内部バスによって接続されている。図示は省略するが、例えばCPU11、DFLSH18及びRAM14はCPU11の動作サイクルに匹敵するバスサイクルで信号伝達を行う高速な内部バスによって接続される。この内部バスはバスブリッジ回路又はバスコントローラを介して周辺バスに接続される。周辺バスには内部バスよりも低速で、必ずしも高速のクロック動作が必要とされない回路モジュールとして、前記FCU13、MCCNT15、IOP16などが結合されている。
【0077】
エンベデッドメモリカード20Bは、特に制限されないが、組み込み用途のフラッシュメモリカードであり、回路基板上に例えばBGA(ボールグリッドアレイ)による外部端子を介して実装固定され、N個(Nは正の整数)のパラメータ群UPRM#1〜UPRM#Nを書き換え可能に格納する不揮発性のパラメータ領域20B−1〜20B−Nを有する。このエンベデッドメモリカード20Bは、例えばマルチメディアカード(MultiMediaCard/MMC:登録商標)準拠のメモリインタフェースを持つ。マイクロコンピュータ10のメモリカードコントローラ15は、エンベデッドメモリカード20Bが持つ上記メモリカードインタフェースを用いたメモリカードのアクセス制御を行う。エンベデッドメモリカード20Bの記憶容量や仕様の更新等があっても互換性の範囲でメモリカードコントローラ15による制御を行うことができる。
【0078】
ここで、DFLSH18の記憶容量はエンベデッドメモリカード20Bの記憶容量に比べて格段に小さい。大きな記憶容量の電気的に書き換え可能な不揮発性メモリをオンチップで持つことによるマイクロコンピュータのコスト上昇とチップの大型化を抑えるためである。
【0079】
パラメータ選択スイッチ回路30BのスイッチSW#1〜SW#NはパラメータUPRM#1〜UPRM#Nのパラメータ領域20B−1〜20B−Nに対応され、対応するパラメータ領域に対して、オン状態によるロー(Low)出力が選択、オフ状態によるハイ(High)出力が非選択を指示する。尚、パラメータ選択スイッチ回路30BはスイッチSW#1〜SW#Nのうち複数のスイッチがオン状態になることを禁止している。
【0080】
スイッチSW#1〜SW#Nのスイッチ状態は入出力ポート16の入出力回路IO#1〜IO#Nに反映される。CPU11は入出力回路IO#1〜IO#Nの状態を監視し、それが指示する番号のパラメータをDFLSH18に書き込むための処理を行う。例えば図8の例では、新たに、パラメータの番号#Jが指定されたことを検出すると、MCCNT15を介してEMCRD20Bの記憶領域20B−JからRAM14にパラメータUPRM#Jを転送させ、次いで、そのパラメータUPRM#JをFCU13を介してDFLSH18に書き込む制御を行う。特に制限されないが、その制御は、ユーザプログラムをCPU11が実行することによって行う。
【0081】
図9にはパラメータの転送制御に関するマイクロコンピュータ10Bの論理構成が例示される。ここではその論理構成を、ハードウェア層(HWL)、ドライバ層(DVL)、ミドルウェア(MWL)、アプリケーション層(APL)に大別する。
【0082】
図9ではハードウェア層(HWL)としてIOP16、DFLSH18、FCU13、及びMCCNT15を図示する。
【0083】
ドライバ層(DVL)には、例えば、入出力回路IO#1〜IO#NとスイッチWS#1〜SW#Nとの対応を設定するIOP16の機能設定部100、FCU13によるDFLSH18の消去及び書き込み制御シーケンスを規定するECUファームウェア101B、MCCNT15を制御してEMCRD20Bからパラメータを読み出すためのリードアクセス動作のためのカードアクセスドライバ102が設けられる。
【0084】
ミドルウェア層(MWL)には、IO判定部110、書き込み制御部111B、及びファイルシステム112を有する。IO判定部110は、プログラム選択スイッチ回路30の状態を反映した各入出力回路IO#1〜IO#Nのロー(Lo)入力又はハイ(High)入力状態を判定するプログラムである。書き込み制御部111Bは、FCUファームウェア101Bが提供する機能に応じたコマンドを使用してDFLSH18への消去及び書き込み動作に関する書き込み制御を行うプログラムである。ファイルシステム112はEMCRD20B内のパラメータUPRM#1〜UPRM#Nをファイルとして管理し、上位のアプリケーション層のプログラムがEDMCRD20B内部のデータをファイルとして扱うことを可能にするためのプログラムである。ここでは、パラメータUPRM#1〜UPRM#NをファイルとしてEMCRD20Bに格納する例を説明したが、パラメータUPRM#1〜UPRM#NをデータとしてEMCRD20Bに格納し、ファイルシステムの代わりにユーザプログラムアクセス用の専用ソフトウェアを実装してもよい。
【0085】
アプリケーション層(APL)は、タスク制御部120Bを有する。タスク制御部120Bは、IO判定部110を使用したIOP16の状態に従った動作、書き込み制御部111Bを使用したDFLSH18への書き込み動作、ファイルシステム112を使用したEMCRD20Bからのファイルの読み出し動作等、マイクロコンピュータに対する全体的なタスクを制御するプログラムである。
【0086】
図10には図8のデータ処理システムにおいて、図9で説明した論理構成のソフトウェアを用いたユーザプログラムの実行動作のフローチャートが例示される。ここで、DFLSH18にはパラメータUPRM#Kが初期的に格納されているものとする。
【0087】
マイクロコンピュータ10Bに電源が投入されて起動されると(S41)、パワーオンリセット処理によりマイクロコンピュータ10Bの動作周波数や周辺モジュール等に対する初期設定が行われる(S42)。入出力ポート16にはIO機能設定部100によってパラメータ選択スイッチ回路30Bとの対応が設定される。
【0088】
この後、ユーザプログラムが先頭番地から実行される(S44)。即ち、パラメータの更新以外のタスクの実行を開始する。このタスクは、例えば、モータ制御、画像のデコード、他機器との通信等のタスクである。その途上で、パラメータを更新するための処理を行う。即ち、CPU11は参照番号パラメータiを0に初期化して(S45)、当該参照パラメータiの値がNになるまで(S46)、+1ずつインクリメントしながら(S47)、当該参照パラメータが指す番号に入出力回路IO#iの入力がロー(Low)になっているか否かを判別する(S48)。どの入出力回路IO#iの入力がロー(Low)になるかはパラメータ選択スイッチ回路30Bの状態によって決まる。特に図示はしないが、現在使用中のパラメータの番号はCPU11によって把握されており、ステップS48の判別では現在使用中のパラメータの番号が判定対象から除かれることは言うまでもない。
【0089】
状態がLow”になっている入出力回路を判別すると、CPU11はその番号のパラメータム#iの更新要求があるものと判定し、ファイルシステム112によりEMCRD20BからRAM14へパラメータ#iを読み出す(S49)。例えばi=Jとする。RAM14に読み出されたパラメータUPRM#Jは書き込み制御部111によりDFLSH18に書き込まれる(S50)。その後、マイクロコンピュータ10BはユーザパラメータUPRM#iを使用してプログラムの実行を開始して(S51)、タスクを実行する(S44)。
【0090】
実施の形態3によれば以下の作用効果を得ることができる。
【0091】
外部の通信端末の使用やカードソケットを実装することなく、マイクロコンピュータ10Bを起動した状態でパラメータUPRM#iを更新することができる。
【0092】
また、マイクロコンピュータ10BがDFLSH18の記憶容量を超えた、複数のパラメータUPRM#1〜UPRM#Nを使用することができる。
【0093】
更に、マイクロコンピュータ10Bは外部から与えたれた#i情報の判別結果に応答して、内部で必要なパラメータをEMCRD20BからダウンロードしてオンチップのDFLSH18を書き換えるから、オンチップする事ができるDFLSH18の記憶容量以上に大きな規模のパラメータであっても、マイクロコンピュータ10BにオンチップされたDFLSH18から直接リードして即座に利用することが可能になる。
【0094】
《実施の形態4》
図11には不揮発性メモリデバイスとしてシリアルフラッシュメモリを用いた例が示される。シリアルフラッシュメモリ(SFLSH)20Cは、EMCRD20よりアクセス速度は遅いが、EMCRD20に比較しアクセスのための通信方式が簡易であり、ソフトウェアの作成が容易である。さらに、シリアルインタフェースで制御でき、端子数も少ないという利点もある。
【0095】
シリアルフラッシュメモリ20Cを用いる場合にはマイクロコンピュータ10Cはシリアルフラッシュメモリ20Cに接続するシリアルインタフェース回路(SPIC)19を周辺回路として備える。このシリアルインタフェースは所謂SPI(Serial Peripheral Interface)に準拠したインタフェース制御機能を備える。シリアルフラッシュメモリ20CはSPIC19とクロック線、チップセレクト線、入力データ(データイン)線、出力データ(データアウト)線で接続する。クロックはSPIC19がマイクロコンピュータ10Cの周辺クロックを分周し生成し、生成されたクロック信号はSPIC19からSFLSH20Cにクロック線を介して供給される。チップセレクト線はSPIC19がSFLSH20Cに対するチップ選択信号を伝達し、チップ選択信号が選択レベルにされることによってSFLSH20Cはチップ選択状態にされ、データの書き込みや読み出しが可能にされる。データアウト線はSPIC19からSFLSH20Cに書き込みデータを転送し、データイン線はSFLSH20CからSPIC19に読み出しデータを転送する。尚、マイクロコンピュータに複数のシリアルフラッシュメモリを接続することもでき、その場合、マイクロコンピュータはチップセレクト線により個々のシリアルフラッシュメモリを選択すればよい。
【0096】
《実施の形態5》
図12には本発明に係るデータ処理システムをモータ制御に適用した例が示される。産業用途のモータは機器の位置決め制御や時刻同期が必要な制御等で使用する。そこで、高精度な制御が必要となりマイクロコンピュータでモータを制御するのが一般的である。
【0097】
マイクロコンピュータ10DのCPU11はROM12に格納されたプログラムに従いモータ制御の演算を行う。演算結果を基にモータ制御用タイマ40でPWM(Pulse Width Modulation)信号を生成する。方形波のPWM信号は、そのハイレベル(High)とローレベル(Low)の区間を調整して、モータドライバ41を経由でモータ42を駆動制御をする。また、マイクロコンピュータ10DのA/D変換器43によりモータセンサ45からのセンサ信号を論理信号に変換し、モータの動作情報を取得する。CPU11のモータ制御演算はモータ42の動作情報も反映させた演算となる。
【0098】
ROM12のプログラムを書き換えることでモータ制御演算の内容を更新する場合、モータ42を正常に制御するには、マイクロコンピュータ10Dを起動したままで書き換える必要がある。従って、実施の形態1などで説明したROM12に対するユーザプログラムの選択的な書き換えのための構成を採用することにより、マイクロコンピュータ10Dをパワーオンリセットすることなく効率的にユーザプログラムを書き換えて、小さなオンチップROM12を用いた高速のモータ制御を容易に実現することができる。
【0099】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0100】
例えば、不揮発性メモリデバイスはメモリカードやシリアルフラッシュメモリに限定されずその他の不揮発性メモリに変更可能である。出力回路はスイッチ回路やシリアル端末に限定されずレジスタなど適宜変更可能である。オンチップ不揮発性メモリはフラッシュメモリに限定されずMRAMなどであってもよい。マイクロコンピュータの論理構成は図3などの階層構成に限定されず、ミドルウェア層がない場合など、その他の論理階層構造であっても良い。本発明はモータ制御のほかにも適宜の制御分野に適用することができる。また、各実施の形態はそれぞれ単独で実現する場合に限らず、適宜の複数の実施の形態を組み合わせて実現することも可能である。
【符号の説明】
【0101】
1,1A,1B データ処理システム
10,10A,10B マイクロコンピュータ
20,20B エンベデッドメモリカード(EMCRD)
20C シリアルフラッシュメモリ(SFLSH)
30 プログラム選択スイッチ回路
11 中央処理装置(CPU)
12 不揮発性メモリ(ROM)
13 消去書き込み制御回路(FCU)
14 RAM
15 メモリカードコントローラ(MCCNT)
16 入出力ポート(IOP)
IO#1〜IO#N 入出力回路
SW#1〜SW#N スイッチ
UPGM#1〜UPGM#N ユーザプログラム
100 機能設定部
101 ECUファームウェア
102 カードアクセスドライバ
110 IO判定部
111 書き込み制御部
112 ファイルシステム
110 IO判定部
17 シリアルコミュニケーションインタフェースコントローラ(SCIC)
40 シリアル端末装置
120A タスク制御部
103 SCIドライバ
110A 番号判定部
30B パラメータ選択スイッチ回路
UPRM#1〜UPRM#N パラメータ群
20B−1〜20B−N パラメータ領域
18 データフラッシュメモリ(DFLSH)
【特許請求の範囲】
【請求項1】
半導体データ処理装置と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイスと、前記半導体データ処理装置に接続された出力回路とを備え、
前記半導体データ処理装置は、中央処理装置と、前記中央処理装置が実行するプログラムを格納する書き換え可能な不揮発性メモリと、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラと、前記出力回路に接続された外部インタフェース回路とを有し、
前記不揮発性半導体メモリデバイスは、複数のプログラムが格納される複数のプログラム領域を有し、
前記不揮発性メモリは、前記複数のプログラムの一部を格納するための実行プログラム領域を有し、
前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う、データ処理システム。
【請求項2】
前記外部インタフェース回路は入力ポートであり、
前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するプログラム領域を判別する、請求項1記載のデータ処理システム。
【請求項3】
前記外部インタフェース回路はシリアル入力回路であり、
前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するプログラム領域を判別する、請求項1記載のデータ処理システム。
【請求項4】
前記プログラムは、転送制御用の第1のプログラムとその他の第2のプログラムを含み、
前記第1のプログラムは、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在実行中のプログラムに対応しないとき、当該判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を制御するプログラムであり、前記第2のプログラムの実行中の所定のタイミングで実行可能にされる、請求項1記載のデータ処理システム。
【請求項5】
前記不揮発性半導体メモリデバイスはエンベデッドメモリカードであり、
前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラである、請求項1記載のデータ処理システム。
【請求項6】
前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリであり、
前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路である、請求項1記載のデータ処理システム。
【請求項7】
半導体データ処理装置と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイスと、前記半導体データ処理装置に接続された出力回路とを備え、
前記半導体データ処理装置は、中央処理装置と、前記中央処理装置によるデータ処理で利用されるパラメータを格納する書き換え可能な不揮発性メモリと、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラと、前記出力回路に接続された外部インタフェース回路とを有し、
前記不揮発性半導体メモリデバイスは、複数のパラメータ群が格納される複数のパラメータ群領域を有し、
前記不揮発性メモリは、前記複数のパラメータ群の一部のパラメータ群を格納するためのテンポラリ領域を有し、
前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードし、リードしたパラメータ群を前記テンポラリ領域に格納する処理を行う、データ処理システム。
【請求項8】
前記外部インタフェース回路は入力ポートであり、
前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するテンポラリ領域を判別する、請求項7記載のデータ処理システム。
【請求項9】
前記外部インタフェース回路はシリアル入力回路であり、
前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するテンポラリ領域を判別する、請求項7記載のデータ処理システム。
【請求項10】
前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在使用中のパラメータ群に対応しないとき、当該判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードし、リードしたパラメータ群を前記テンポラリ領域に格納する処理を、アプリケーションプログラムの実行中の所定のタイミングで実行可能にされる、請求項7記載のデータ処理システム。
【請求項11】
前記不揮発性半導体メモリデバイスはエンベデッドメモリカードであり、
前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラである、請求項7記載のデータ処理システム。
【請求項12】
前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリであり、
前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路である、請求項7記載のデータ処理システム。
【請求項1】
半導体データ処理装置と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイスと、前記半導体データ処理装置に接続された出力回路とを備え、
前記半導体データ処理装置は、中央処理装置と、前記中央処理装置が実行するプログラムを格納する書き換え可能な不揮発性メモリと、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラと、前記出力回路に接続された外部インタフェース回路とを有し、
前記不揮発性半導体メモリデバイスは、複数のプログラムが格納される複数のプログラム領域を有し、
前記不揮発性メモリは、前記複数のプログラムの一部を格納するための実行プログラム領域を有し、
前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を行う、データ処理システム。
【請求項2】
前記外部インタフェース回路は入力ポートであり、
前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するプログラム領域を判別する、請求項1記載のデータ処理システム。
【請求項3】
前記外部インタフェース回路はシリアル入力回路であり、
前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するプログラム領域を判別する、請求項1記載のデータ処理システム。
【請求項4】
前記プログラムは、転送制御用の第1のプログラムとその他の第2のプログラムを含み、
前記第1のプログラムは、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在実行中のプログラムに対応しないとき、当該判別結果に対応するプログラム領域からプログラムを前記入出力コントローラを用いてリードし、リードしたプログラムを前記実行プログラム領域に格納し、そのプログラムを先頭番地から実行させるソフトウェアリセット処理を制御するプログラムであり、前記第2のプログラムの実行中の所定のタイミングで実行可能にされる、請求項1記載のデータ処理システム。
【請求項5】
前記不揮発性半導体メモリデバイスはエンベデッドメモリカードであり、
前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラである、請求項1記載のデータ処理システム。
【請求項6】
前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリであり、
前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路である、請求項1記載のデータ処理システム。
【請求項7】
半導体データ処理装置と、前記半導体データ処理装置に接続された不揮発性半導体メモリデバイスと、前記半導体データ処理装置に接続された出力回路とを備え、
前記半導体データ処理装置は、中央処理装置と、前記中央処理装置によるデータ処理で利用されるパラメータを格納する書き換え可能な不揮発性メモリと、前記中央処理装置の制御に基づいて前記不揮発性半導体メモリデバイスの動作を制御する入出力コントローラと、前記出力回路に接続された外部インタフェース回路とを有し、
前記不揮発性半導体メモリデバイスは、複数のパラメータ群が格納される複数のパラメータ群領域を有し、
前記不揮発性メモリは、前記複数のパラメータ群の一部のパラメータ群を格納するためのテンポラリ領域を有し、
前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードし、リードしたパラメータ群を前記テンポラリ領域に格納する処理を行う、データ処理システム。
【請求項8】
前記外部インタフェース回路は入力ポートであり、
前記中央処理装置は前記入力ポートに入力される番号データに基づいて対応するテンポラリ領域を判別する、請求項7記載のデータ処理システム。
【請求項9】
前記外部インタフェース回路はシリアル入力回路であり、
前記中央処理装置は前記シリアル入力回路に入力されたシリアルデータに基づいて対応するテンポラリ領域を判別する、請求項7記載のデータ処理システム。
【請求項10】
前記中央処理装置は、前記出力回路から前記外部インタフェース回路に供給された情報を判別し、その判別結果が現在使用中のパラメータ群に対応しないとき、当該判別結果に対応するパラメータ群領域からパラメータ群を前記入出力コントローラを用いてリードし、リードしたパラメータ群を前記テンポラリ領域に格納する処理を、アプリケーションプログラムの実行中の所定のタイミングで実行可能にされる、請求項7記載のデータ処理システム。
【請求項11】
前記不揮発性半導体メモリデバイスはエンベデッドメモリカードであり、
前記入出力コントローラは前記エンベデッドメモリカードに対する入出力制御を行うメモリカードコントローラである、請求項7記載のデータ処理システム。
【請求項12】
前記不揮発性半導体メモリデバイスは不揮発性シリアルメモリであり、
前記入出力コントローラは不揮発性シリアルメモリに対する入出力制御を行うことが可能なシリアルペリフェラルインタフェース回路である、請求項7記載のデータ処理システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−252567(P2012−252567A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−125235(P2011−125235)
【出願日】平成23年6月3日(2011.6.3)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願日】平成23年6月3日(2011.6.3)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
[ Back to top ]