(57)【要約】【課題】リセットベクタを、０番地から読み出すユーザと、任意のアドレスから読み出すユーザの両方に対応することができるマイクロコンピュータを提供する。【解決手段】本発明のマイクロコンピュータは、フラッシュメモリマクロを備えるマイクロコンピュータであって、リセットベクタを、フラッシュメモリマクロに反転書き込みするフラッシュ制御マクロと、リセットベクタを、フラッシュメモリマクロから反転読み出しするリセットベクタ制御回路とを備える。【選択図】図５
2013175009.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリマクロと、
リセットベクタを、前記フラッシュメモリマクロに反転書き込みするフラッシュ制御マクロと、
リセットベクタを、前記フラッシュメモリマクロから反転読み出しするリセットベクタ制御回路と
を備えるマイクロコンピュータ。
【請求項２】
前記フラッシュ制御マクロは、
リセットベクタ格納アドレスと同一のアドレスが記憶されているレジスタと、
前記フラッシュメモリマクロにデータを書き込むアドレスを保持するアドレスバッファと、
前記フラッシュメモリマクロに書き込むデータを保持するデータバッファと、
前記レジスタの値と、前記アドレスバッファの値が一致しているかを比較し、一致している場合に、出力をアクティブにするコンパレータと、
前記コンパレータによる出力がアクティブの場合に、前記データバッファの値を反転するデータ反転回路と
を備える請求項１に記載のマイクロコンピュータ。
【請求項３】
前記リセットベクタ制御回路は、
前記リセットベクタをＣＰＵに格納するリードデータ格納回路と、
前記リードデータ格納回路が、前記ＣＰＵに、前記リセットベクタを設定するタイミングを制御するリード制御回路とを備え、
前記リードデータ格納回路は、
前記リセットベクタを反転するデータ反転回路と、
前記リセットベクタを保持するラッチ回路とを備え、
前記リード制御回路が、データラッチイネーブル信号を、前記ラッチ回路に送信すると、前記リードデータ格納回路が、前記ＣＰＵに、前記リセットベクタを送信する
請求項１又は２に記載のマイクロコンピュータ。
【請求項４】
フラッシュメモリマクロと、
前記フラッシュメモリマクロへの書き込みを制御するフラッシュ制御マクロと、
リセットベクタを、前記フラッシュメモリマクロから読み出すリセットベクタ制御回路と、
前記フラッシュ制御マクロから、前記フラッシュメモリマクロに書込まれるデータを反転する書込みデータ反転回路と、
前記フラッシュメモリマクロから、前記リセットベクタ制御回路に読み出されるデータを反転する読出しデータ反転回路と
を備えるマイクロコンピュータ。
【請求項５】
前記リセットベクタ制御回路は、
前記リセットベクタをＣＰＵに格納するリードデータ格納回路と、
前記リードデータ格納回路が、前記ＣＰＵに、前記リセットベクタを設定するタイミングを制御するリード制御回路とを備え、
前記リードデータ格納回路は、
前記リセットベクタを保持するラッチ回路を備え、
前記リード制御回路が、データラッチイネーブル信号を、前記ラッチ回路に送信すると、前記リードデータ格納回路が、前記ＣＰＵに、前記リセットベクタを送信する
請求項４に記載のマイクロコンピュータ。
【請求項６】
フラッシュメモリマクロと、
前記フラッシュメモリマクロへの書き込みを制御するフラッシュ制御マクロと、
リセットベクタを、前記フラッシュメモリマクロから読み出すリセットベクタ制御回路とを備え、
前記フラッシュ制御マクロは、前記フラッシュメモリマクロに書込むデータに制御ビットを付加し、
前記リセットベクタ制御回路は、前記制御ビットに基づいて、前記リセットベクタを反転するデータ反転回路
を備えるマイクロコンピュータ。
【請求項７】
フラッシュメモリマクロを備えるマイクロコンピュータのリセットベクタ管理方法であって、
フラッシュ制御マクロが、リセットベクタを、前記フラッシュメモリマクロに反転書き込みするステップと、
リセットベクタ制御回路が、前記リセットベクタを、前記フラッシュメモリマクロから反転読み出しするステップと
を含むリセットベクタ管理方法。
【請求項８】
フラッシュメモリマクロを備えるマイクロコンピュータのリセットベクタ管理方法であって、
フラッシュ制御マクロが、前記フラッシュメモリマクロへの書込みデータを、書込みデータ反転回路に送信するステップと、
書込みデータ反転回路が、前記書込みデータを反転するステップと、
書込みデータ反転回路が、前記反転するステップにより反転された前記書込みデータを、前記フラッシュメモリマクロに送信するステップと、
リセットベクタ制御回路が、前記フラッシュメモリマクロから、読出しデータを読み出すステップと、
読出しデータ反転回路が、前記読出しデータを反転するステップと、
読出しデータ反転回路が、前記読出しデータを前記リセットベクタ制御回路に送信するステップと、
リセットベクタ制御回路が、前記読出しデータを受信するステップと
を含むリセットベクタ管理方法。
【請求項９】
フラッシュメモリマクロを備えるマイクロコンピュータのリセットベクタ管理方法であって、
フラッシュ制御マクロが、前記フラッシュメモリマクロに書き込まれるデータに制御ビットを付加するステップと、
リセットベクタ制御回路が、前記フラッシュメモリマクロから、リセットベクタと制御ビットを含む読出しデータを読み出すステップと、
データ反転回路が、前記制御ビットに基づいて、前記リセットベクタを反転するステップと
を含むリセットベクタ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータに関する。
【背景技術】
【０００２】
従来のマイクロコンピュータでは、ＣＰＵが実行する命令をＲＯＭに格納していたため、ＣＰＵ内の回路によって、０番地等の固定のアドレスから、リセットベクタが読み出されていた。リセットベクタとは、マイクロコンピュータのリセット後に、ＣＰＵが最初に実行する命令のアドレスである。図１は、リセットベクタを０番地に設定した場合を説明するための図である。図１の例では、ＣＰＵが、リセット時に参照するリセットベクタ格納アドレスに、０ｘ００００が設定されている。そのため、ＣＰＵは、０ｘ００００から、リセットベクタを読み出す。
【０００３】
近年、マイクロコンピュータに搭載するメモリは、ＲＯＭから、電気的に書換え可能な不揮発性メモリであるフラッシュメモリに置き換わってきている。本明細書では、フラッシュメモリを１つのマクロとして捉える場合にはフラッシュメモリマクロと称す。また、システムの多様性に対応するため、リセットベクタを任意のアドレスに設定できることを要求するユーザが増えてきている。図２は、リセットベクタを任意のアドレスに設定した場合を説明するための図である。図２の例では、ＣＰＵが、リセット時に参照するリセットベクタ格納アドレスに、０ｘ１２３４が設定されている。そのため、ＣＰＵは、０ｘ１２３４から、リセットベクタを読み出す。マイクロコンピュータのユーザには、リセットベクタを、従来通り、０番地から読み出したいユーザと、任意のアドレスから読み出したいユーザが存在している。
【０００４】
ここで、フラッシュメモリの消去状態と、書込み状態について説明する。図３は、消去状態のフラッシュメモリを説明するための図である。図４は、書込み状態のフラッシュメモリを説明するための図である。図３、図４はともにフラッシュメモリの１セルを構成するトランジスタの断面構造を示している。フラッシュメモリは、ゲート電極４１と半導体基板４６との間に、絶縁膜４５で覆われた浮遊ゲート４４を備えるトランジスタにより、１ビットのデータを記憶する。フラッシュメモリは、浮遊ゲート４４に電子がある状態を、書込み状態（論理０）とし、浮遊ゲート４４に電子がない状態を、消去状態（論理１）として１ビットのデータを記憶している。浮遊ゲート４４は、絶縁膜４５で覆われているため、電源を切っても電子を保持することができる。これにより、フラッシュメモリは、不揮発性を実現している。
【０００５】
次に、ＮＯＲ型フラッシュメモリを例にして、フラッシュメモリの書込み、消去、及び読出し動作について説明する。書込み時には、ゲート電極４１、及びドレイン電極４３に高電圧を印加し、ソース電極４２からドレイン電極４３に流れる電子のエネルギー状態を上げることにより、浮遊ゲート４４に電子を入れる。消去時には、ゲート電極４１に負電圧を印加し、浮遊ゲート４４から電子を放出させる。読出し時には、ゲート電極４１に一定の電圧を印加し、ドレイン電極４３からソース電極４２に流れる電流の量が多ければ、論理１としてデータを読出し、電流の量が少なければ、論理０としてデータを読み出す。
【０００６】
なお、一般に、フラッシュメモリは消去状態にして出荷される。フラッシュメモリマクロを搭載したマイクロコンピュータの場合であれば、そのサプライヤーは、フラッシュメモリマクロを消去状態にして出荷する。フラッシュメモリマクロの消去状態は、上述のようなフラッシュメモリの仕組みから、通常は、Ａｌｌ“１ｈ”である。そのため、従来のユーザは、マイクロコンピュータの使用前に、リセットベクタを０番地にするために、リセットベクタ格納アドレスに“０ｈ”を設定する必要がある。従来のユーザにとっては、ＲＯＭ使用時には必要がなかった手間が発生している。
【０００７】
リセットベクタ方式のマイクロコンピュータに関する文献公知発明については、以下が知られている。
【０００８】
特開平１１−１２００７６号公報（特許文献１）には、任意のアドレス空間にユーザプログラムを格納できるマイクロコンピュータの発明が開示されている。特許文献１のマイクロコンピュータは、リセット時に開始アドレスが設定される開始アドレス設定レジスタと、リセット時に終了アドレスが設定される終了アドレス設定レジスタとを備えている。マイクロコンピュータの比較回路が、ＣＰＵのアクセスアドレスが、開始アドレスと終了アドレスの間にあるかどうかを比較し、比較結果に基づいて、論理ゲートにより、当該アクセスアドレスをアクセス可能にするかを制御している。
【０００９】
特開平１１−６５８５６号公報（特許文献２）には、リセット時に実行するプログラムを分岐することができるマクロコンピュータの発明が開示されている。特許文献２のマイクロコンピュータは、リセット時に、ＥＰＲＯＭ内の第１のリセットベクタ格納アドレスに格納された第１の分岐アドレスを読み出している。次に、当該第１の分岐アドレスが、特定の値と一致するかを判定し、一致した場合には、ＥＰＲＯＭの第２のリセットベクタ格納アドレスに格納された第２の分岐アドレスを読み出している。これにより、ＣＰＵに実行されるプログラムを切り替えている。
【００１０】
特開２００９−７０２２４号公報（特許文献３）には、リセット時に実行されるブートプログラムをより確実に実行できる電子機器の発明が開示されている。特許文献３の電子機器は、複数のメモリ領域に同一内容のブートプログラムを格納し、ブートプログラムが正常に実行されたかを判定している。ブートプログラムが正常に実行されていない場合には、順次、別の領域に格納されているブートプログラムを読み出すことにより、ブートプログラムをより確実に実行している。
【００１１】
特開２０１１−８４３２号公報（特許文献４）には、起動するプログラムを切り替えることができるプロセッサの発明が開示されている。特許文献４のプロセッサは、リセット信号の入力の状態に応じて、複数のプログラムの中から起動すべきプログラムを選択している。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平１１−１２００７６号公報
【特許文献２】特開平１１−６５８５６号公報
【特許文献３】特開２００９−７０２２４号公報
【特許文献４】特開２０１１−８４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
リセットベクタを、従来通りの方法で読み出すユーザと、任意のアドレスから読み出すユーザの両方に対応することができるマイクロコンピュータが求められている。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための形態］の記載との対応関係を明らかにするために、［発明を実施するための形態］で使用される番号・符号が付加されている。ただし、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【００１５】
本発明のマイクロコンピュータ（１）は、フラッシュメモリマクロ（５）を備えるマイクロコンピュータ（１）であって、リセットベクタを、フラッシュメモリマクロ（５）に反転書き込みするフラッシュ制御マクロ（４）と、リセットベクタを、フラッシュメモリマクロから反転読み出しするリセットベクタ制御回路（３）とを備える。
【００１６】
本発明のリセットベクタ管理方法は、フラッシュメモリマクロ（５）を備えるマイクロコンピュータ（１）のリセットベクタ管理方法である。フラッシュ制御マクロ（４）が、リセットベクタを、フラッシュメモリマクロ（５）に反転書き込みするステップと、リセットベクタ制御回路（３）が、リセットベクタを、フラッシュメモリマクロ（５）から反転読み出しするステップとを含む。
【発明の効果】
【００１７】
本発明によれば、リセットベクタを、従来通りの方法で読み出すユーザと、任意のアドレスから読み出すユーザの両方に対応することができるマイクロコンピュータを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、リセットベクタを０番地に設定した場合を説明するための図である。
【図２】図２は、リセットベクタを任意のアドレスに設定した場合を説明するための図である。
【図３】図３は、消去状態のフラッシュメモリを説明するための図である。
【図４】図４は、書込み状態のフラッシュメモリを説明するための図である。
【図５】図５は、本発明の第１実施形態におけるマイクロコンピュータ１のブロック図である。
【図６】図６は、本発明の第１実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４のブロック図である。
【図７】図７は、本発明の第１実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３のブロック図である。
【図８】図８は、本発明の第１実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４の動作方法を説明するためのフローチャートである。
【図９】図９は、本発明の第１実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３の動作方法を説明するためのフローチャートである。
【図１０】図１０は、本発明の第２実施形態におけるマイクロコンピュータ１のブロック図である。
【図１１】図１１は、本発明の第２実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４のブロック図である。
【図１２】図１２は、本発明の第２実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３のブロック図である。
【図１３】図１３は、本発明の第２実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４の動作方法を説明するためのフローチャートである。
【図１４】図１４は、本発明の第２実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３の動作方法を説明するためのフローチャートである。
【図１５】図１５は、本発明の第３実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４のブロック図である。
【図１６】図１６は、本発明の第３実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３のブロック図である。
【図１７】図１７は、本発明の第３実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４の動作方法を説明するためのフローチャートである。
【図１８】図１８は、本発明の第３実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３の動作方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１９】
添付図面を参照して、本発明の実施形態によるマイクロコンピュータ１を以下に説明する。
【００２０】
（第１実施形態）
［構成の説明］
はじめに、本実施形態のマイクロコンピュータ１の構成の説明を行う。図５は、本発明の第１実施形態におけるマイクロコンピュータ１のブロック図である。本実施形態のマイクロコンピュータ１は、ＣＰＵ２、リセットベクタ制御回路３、フラッシュ制御マクロ４、フラッシュメモリマクロ５、アドレスバス６、データバス７、ステータス信号線８、アドレスバス９、アドレスバス１０、セレクタ１１、リセットベクタ設定用信号線１２、周辺マクロ用アドレスバス１３、周辺マクロ用データバス１４、書込み用アドレスバス１５、書込み用データバス１６、及び書込み制御信号線１７を備える。
【００２１】
ＣＰＵ２は、マイクロコンピュータ１の中央処理装置である。ＣＰＵ２にはリセットベクタを設定するための端子があり、リセットベクタ設定用信号線１２を介して、リセットベクタ制御回路３と接続されている。また、ＣＰＵ２にはステータス信号線８が接続されており、ＣＰＵ２は、当該信号レベルに応じて動作を開始する。リセットベクタ制御回路３は、マイクロコンピュータ１のリセット時に、フラッシュメモリマクロ５からリセットベクタを読み出し、ＣＰＵ２のプログラムカウンタに、当該リセットベクタを設定する。リセットベクタ制御回路３は、ＣＰＵ２に当該リセットベクタを設定後、ステータス信号線８を介して、動作許可を示す信号を送信する。フラッシュ制御マクロ４は、ＣＰＵ２からのリクエストに基づいて、フラッシュメモリマクロ５にデータを書き込む。フラッシュメモリマクロ５には、マイクロコンピュータ１で使用されるデータ、及び命令が格納される。
【００２２】
アドレスバス６は、セレクタ１１が出力するアドレス信号（フラッシュメモリマクロ５のリードアドレスを示す信号）を、フラッシュメモリマクロ５に送信するためのバスである。データバス７は、フラッシュメモリマクロ５からリードされたデータを、ＣＰＵ２とリセットベクタ制御回路３に送信するためのバスである。ステータス信号線８は、ＣＰＵの動作許可を示す信号を、ＣＰＵ２とセレクタ１１に送信するための信号線である。アドレスバス９は、ＣＰＵ２が生成するアドレスを、セレクタ１１に送信するためのバスである。アドレスバス１０は、リセットベクタ制御回路３が生成するアドレスを、セレクタ１１に送信するためのバスである。
【００２３】
セレクタ１１は、ステータス信号線８に、ＣＰＵの動作許可を示す信号が送信される前（リセットベクタリード中）は、リセットベクタ制御回路３から受信したアドレス（アドレスバス１０）を選択し、当該アドレスをフラッシュメモリマクロ５に出力する。セレクタ１１は、ステータス信号線８に、ＣＰＵの動作許可を示す信号が送信された後（リセットベクタリード後）は、ＣＰＵ２が生成したアドレス（アドレスバス９）を選択し、当該アドレスをフラッシュメモリマクロ５に出力する。リセットベクタ設定用信号線１２は、リセットベクタ制御回路３が、ＣＰＵ２にリセットベクタを設定するための信号線である。
【００２４】
周辺マクロ用アドレスバス１３は、ＣＰＵ２が、フラッシュ制御マクロ４内部のアドレスバッファ１９、データバッファ２０、又は動作許可ビット格納部２３を指定するためのバスである。周辺マクロ用データバス１４は、ＣＰＵ２がフラッシュ制御マクロ４内部のアドレスバッファ１９、データバッファ２０、又は動作許可ビット格納部２３にデータを設定するためのバスである。書込み用アドレスバス１５は、フラッシュ制御マクロ４がフラッシュメモリマクロ５へデータを書込む際、書込みアドレスを指定するためのバスである。書込み用データバス１６は、書込みデータを指定するためのバスである。書込み制御信号線１７は、フラッシュ制御マクロ４がフラッシュメモリマクロ５へデータを書込む際のタイミングを制御する信号線である。
【００２５】
図６は、本発明の第１実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４のブロック図である。本実施形態のフラッシュ制御マクロ４は、バスインターフェース１８、アドレスバッファ１９、データバッファ２０、コンパレータ２１、データ反転回路２２、動作許可ビット格納部２３、書込み制御回路２４、及びレジスタ３３を備える。
【００２６】
バスインターフェース１８は、アドレスバッファ１９のアドレス、データバッファ２０のアドレス、又は動作許可ビット格納部２３のアドレスデータを、ＣＰＵ２から周辺マクロ用アドレスバス１３を介して受信する。バスインターフェース１８は、当該アドレスデータをデコードして、アドレスを読み取り、当該アドレスに対応する格納部（アドレスバッファ１９、データバッファ２０、又は動作許可ビット格納部２３）に、ライト信号を送信する。ＣＰＵ２は、ライトデータを、周辺マクロ用データバス１４を介して、各格納部（アドレスバッファ１９、データバッファ２０、又は動作許可ビット格納部２３）に送信する。
【００２７】
アドレスバッファ１９は、フラッシュメモリマクロ５に書込まれるデータのアドレスデータを格納するフリップフロップである。アドレスバッファ１９は、アドレスデータを、書込み用アドレスバス１５を介して、フラッシュメモリマクロ５に送信する。また、アドレスバッファ１９は、アドレスデータを、コンパレータ２１に送信する。
【００２８】
データバッファ２０は、フラッシュメモリマクロ５に書込まれるデータを格納するフリップフロップである。データバッファ２０は、当該データを、データ反転回路２２に送信する。
【００２９】
動作許可ビット格納部２３は、書込み制御回路２４に動作許可を与えるためのフリップフロップである。書込み制御回路２４は、書込み制御信号により、フラッシュメモリマクロ５に書込みモードにするための設定、及び書込みクロックの供給を行う。
【００３０】
レジスタ３３は、リセットベクタが格納されているフラッシュメモリマクロ５のアドレスを記憶する回路である。コンパレータ２１は、レジスタ３３の値と、アドレスバッファ１９の値を比較し、比較結果を示す信号をデータ反転回路２２に出力する。コンパレータ２１の出力は、レジスタ３３に格納されている値と、アドレスバッファ１９に格納されている値が一致した場合にアクティブになる。データ反転回路２２には、コンパレータ２１からの出力値と、データバッファ２０の値が入力される。データ反転回路２２は、コンパレータ２１の出力がアクティブの場合に、データバッファ２０から入力された値を反転し、書込み用データバス１６を介して、フラッシュメモリマクロ５に出力する。
【００３１】
図７は、本発明の第１実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３のブロック図である。本実施形態のリセットベクタ制御回路３は、リード制御回路２９とリードデータ格納回路２７を備える。リードデータ格納回路２７は、ラッチ回路２６、及びデータ反転回路２５を備える。
【００３２】
リード制御回路２９は、読み出すデータが格納されているアドレスを、アドレスバス１０を介して、フラッシュメモリマクロ５に送信する。また、リード制御回路２９は、データラッチイネーブル信号線２８を介して、リードデータ格納回路２７に接続されている。リード制御回路２９が、データラッチイネーブル信号をアクティブにすると、リードデータ格納回路２７は、リセットベクタ設定用信号線１２を介して、ＣＰＵ２にリセットベクタを送信する。また、リード制御回路２９は、ステータス信号線８を介して、ＣＰＵ２に動作許可信号を送信する。リセットベクタ制御回路３の詳細な説明は、［動作方法の説明］で後述する。
【００３３】
［動作方法の説明］
次に、本実施形態のマイクロコンピュータ１のリセットベクタ管理方法の説明を行う。図８は、本発明の第１実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４の動作方法を説明するためのフローチャートである。フラッシュ制御マクロ４は、フラッシュメモリマクロ５にデータを書き込むためのマクロ回路である。フラッシュ制御マクロ４は、リセットベクタ格納アドレスに、データ（リセットベクタ）を格納する際には、反転書き込みする。
【００３４】
（ステップＳ１）
アドレスバッファ１９が、ＣＰＵ２から、周辺マクロ用データバス１４を介して、フラッシュメモリマクロ５のアドレスを受信する。データバッファ２０が、ＣＰＵ２から、周辺マクロ用データバス１４を介して、フラッシュメモリマクロ５に書き込むデータを受信する。
【００３５】
（ステップＳ２）
コンパレータ２１は、レジスタ３３に格納されている値（リセットベクタ格納アドレスと同じアドレス値）と、アドレスバッファ１９に格納された書込みアドレスを比較し、比較結果を示す信号をデータ反転回路２２に出力する。コンパレータ２１の出力は、レジスタ３３に格納されている値と、アドレスバッファ１９に格納されている値が一致した場合にアクティブになる。
【００３６】
（ステップＳ３）
データ反転回路２２は、コンパレータ２１からの出力値がアクティブであるかにより、書込みアドレスが、リセットベクタ格納アドレスに一致するかを判定する。当該リセットベクタ格納アドレスが一致する場合には、ステップＳ４の処理に進み、一致しない場合には、ステップＳ５の処理に進む。
【００３７】
（ステップＳ４）
データ反転回路２２は、データバッファ２０から入力された値を反転し、フラッシュメモリマクロ５に出力する。以下、反転された状態で記憶されているリセットベクタを「反転リセットベクタ」という。
【００３８】
（ステップＳ５）
データ反転回路２２は、データバッファ２０から入力された値をそのまま、フラッシュメモリマクロ５に出力する。
【００３９】
次に、フラッシュメモリマクロ５から、リセットベクタを読み出し、当該リセットベクタをＣＰＵ２に設定するリセットベクタ制御回路３について説明する。図９は、本発明の第１実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３の動作方法を説明するためのフローチャートである。リセットベクタ制御回路３は、反転リセットベクタを、フラッシュメモリマクロ５から反転読出しする。
【００４０】
（ステップＳ１１）
リード制御回路２９が、リセットベクタ格納アドレスを、アドレスバス１０を介して、フラッシュメモリマクロ５に送信する。
【００４１】
（ステップＳ１２）
リードデータ格納回路２７が、データバス７を介して、フラッシュメモリマクロ５から反転リセットベクタを受信する。
【００４２】
（ステップＳ１３）
データ反転回路２５が、反転リセットベクタを反転し、通常のリセットベクタに戻す。
【００４３】
（ステップＳ１４）
ラッチ回路２６が、リセットベクタを受信する。
【００４４】
（ステップＳ１５）
ラッチ回路２６は、リード制御回路２９から、データラッチイネーブル信号線２８を介して、ラッチイネーブル信号を受信するまで、リセットベクタを保持する。当該ラッチイネーブル信号を受信した場合は、ステップＳ１６の処理に進む。
【００４５】
（ステップＳ１６）
ラッチ回路２６は、リセットベクタを、ＣＰＵ２に送信する。
【００４６】
（ステップＳ１７）
リード制御回路２９は、ステータス信号線８を介して、ＣＰＵ２に動作許可信号を送信する。
【００４７】
上述の方法により、リセットベクタ制御回路３は、フラッシュメモリマクロ５からリセットベクタを読み出し、ＣＰＵ２のプログラムカウンタに設定する。なお、リセットベクタ制御回路３は、リセットベクタの読み出しにのみ使用され、リセットベクタ格納アドレス以外に設定されているデータは、読み出されたデータを反転させない通常の読み出し制御が行われる。
【００４８】
本実施形態のマイクロコンピュータ１は、フラッシュ制御マクロ４が、リセットベクタを反転させて、反転リセットベクタとしてフラッシュメモリマクロ５に書き込んでいる。また、反転リセットベクタの読み出し時には、リセットベクタ制御回路３が、反転リセットベクタを、もう一度反転させて、本来のリセットベクタに戻してから、ＣＰＵ２に読み込ませている。これにより、フラッシュメモリマクロ５の消去状態が、Ａｌｌ”１ｈ”の場合、ユーザは、ＲＯＭを使用していた場合と同様に、何らの操作をせずに、０番地にリセットベクタが設定されているフラッシュメモリマクロ５として、フラッシュメモリマクロ５を使用することができる。また、ユーザが、任意のリセットベクタを設定する場合についても、内部動作としては、リセットベクタの書込み時、読出し時に反転を行っているが、２回反転させているため、ユーザは反転を意識することなく、任意のアドレスにリセットベクタを設定することができる。
【００４９】
本実施形態のマイクロコンピュータ１は、リセットベクタを、従来通り０番地から読み出すユーザと、任意のアドレスから読み出すユーザの両方に対応することができる。
【００５０】
（第２実施形態）
［構成の説明］
はじめに、本実施形態のマイクロコンピュータ１の構成の説明を行う。図１０は、本発明の第２実施形態におけるマイクロコンピュータ１のブロック図である。本実施形態のマイクロコンピュータ１は、ＣＰＵ２、リセットベクタ制御回路３、フラッシュ制御マクロ４、フラッシュメモリマクロ５、アドレスバス６、データバス７、ステータス信号線８、アドレスバス９、アドレスバス１０、セレクタ１１、リセットベクタ設定用信号線１２、周辺マクロ用アドレスバス１３、周辺マクロ用データバス１４、書込み用アドレスバス１５、書込み用データバス１６、書込み制御信号線１７、読出しデータ反転回路３０、及び書込みデータ反転回路３１を備える。
【００５１】
本実施形態では、データバス７上に読出しデータ反転回路３０が付加されている点、及び書込み用データバス１６上に書込みデータ反転回路３１が付加されている点が、第１実施形態とは異なる。読出しデータ反転回路３０は、フラッシュメモリマクロ５から受信されたデータを反転する。読出しデータ反転回路３０は、当該反転されたデータを、リセットベクタ制御回路３、及びＣＰＵ２に送信する。書込みデータ反転回路３１は、フラッシュ制御マクロ４から受信されたデータを反転する。書込みデータ反転回路３１は、当該反転されたデータを、フラッシュメモリマクロ５に送信する。図１０におけるその他の構成については、第１実施形態と同様であるため、詳細な説明については省略する。
【００５２】
図１１は、本発明の第２実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４のブロック図である。本実施形態のフラッシュ制御マクロ４は、バスインターフェース１８、アドレスバッファ１９、データバッファ２０、動作許可ビット格納部２３、及び書込み制御回路２４を備える。バスインターフェース１８、動作許可ビット格納部２３、及び書込み制御回路２４については、第１実施形態と同様であるため、詳細な説明は省略する。
【００５３】
アドレスバッファ１９は、フラッシュメモリマクロ５に書込まれるデータのアドレスデータを格納するフリップフロップである。アドレスバッファ１９は、アドレスデータを、書込み用アドレスバス１５を介して、フラッシュメモリマクロ５に送信する。
【００５４】
データバッファ２０は、フラッシュメモリマクロ５に書込まれるデータを格納するフリップフロップである。データバッファ２０は、当該データを、書込み用データバス１６を介して、フラッシュメモリマクロ５に送信する。
【００５５】
図１２は、本発明の第２実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３のブロック図である。本実施形態のリセットベクタ制御回路３は、リード制御回路２９とリードデータ格納回路２７で構成されている。リードデータ格納回路２７は、ラッチ回路を備える。本実施形態では、リードデータ格納回路２７が、データ反転回路２５を備えていない点が、第１実施形態と異なる。
【００５６】
リード制御回路２９は、読み出すデータが格納されているアドレスを、アドレスバス１０を介して、フラッシュメモリマクロ５に送信する。また、リード制御回路２９は、データラッチイネーブル信号線２８を介して、リードデータ格納回路２７に接続されている。リード制御回路２９が、データラッチイネーブル信号をアクティブにすると、リードデータ格納回路２７は、リセットベクタ設定用信号線１２を介して、ＣＰＵ２にリセットベクタを送信する。また、リード制御回路２９は、ステータス信号線８を介して、ＣＰＵ２に動作許可信号を送信する。リセットベクタ制御回路３の詳細な説明は、［動作方法の説明］で後述する。
【００５７】
［動作方法の説明］
次に、本実施形態のマイクロコンピュータ１のリセットベクタ管理方法の説明を行う。図１３は、本発明の第２実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４の動作方法を説明するためのフローチャートである。フラッシュ制御マクロ４は、フラッシュメモリマクロ５にデータを書き込むためのマクロ回路である。
【００５８】
（ステップＳ３１）
バスインターフェース１８が、アドレスバッファ１９のアドレスデータを、ＣＰＵ２から周辺マクロ用アドレスバス１３を介して受信する。バスインターフェース１８は、当該アドレスデータをデコードして、アドレスを読み取り、アドレスバッファ１９に、ライト信号を送信する。アドレスバッファ１９が、周辺マクロ用データバス１４を介して、ＣＰＵ２から、フラッシュメモリマクロ５に書き込むデータのアドレスデータを受信する。
【００５９】
（ステップＳ３２）
バスインターフェース１８が、データバッファ２０のアドレスデータを、ＣＰＵ２から周辺マクロ用アドレスバス１３を介して受信する。バスインターフェース１８は、当該アドレスデータをデコードして、アドレスを読み取り、データバッファ２０に、ライト信号を送信する。データバッファ２０が、周辺マクロ用データバス１４を介して、ＣＰＵ２から、フラッシュメモリマクロ５に書き込むデータを受信する。
【００６０】
（ステップＳ３３）
バスインターフェース１８が、動作許可ビット格納部２３のアドレスデータを、ＣＰＵ２から周辺マクロ用アドレスバス１３を介して受信する。バスインターフェース１８は、当該アドレスデータをデコードして、アドレスを読み取り、動作許可ビット格納部２３に、ライト信号を送信する。動作許可ビット格納部２３が、周辺マクロ用データバス１４を介して、ＣＰＵ２から、書込み制御回路２４に動作許可を与えるための動作許可ビット信号を受信する。
【００６１】
（ステップＳ３４）
書込み制御回路２４が、書込み制御信号を、書込み制御信号線１７を介してフラッシュメモリマクロ５に送信する。
【００６２】
（ステップＳ３５）
フラッシュメモリマクロ５により、アドレスバッファ１９のアドレスデータと、データバッファ２０の書込みデータが、読み出される。
【００６３】
次に、フラッシュメモリマクロ５から、リセットベクタを読み出し、当該リセットベクタをＣＰＵ２に設定するリセットベクタ制御回路３について説明する。図１４は、本発明の第２実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３の動作方法を説明するためのフローチャートである。リセットベクタ制御回路３は、フラッシュメモリマクロ５から読み出されたリセットベクタを、ＣＰＵ２に設定する。
【００６４】
（ステップＳ４１）
リード制御回路２９が、リセットベクタ格納アドレスを、アドレスバス１０を介して、フラッシュメモリマクロ５に送信する。
【００６５】
（ステップＳ４２）
リードデータ格納回路２７が、データバス７を介して、フラッシュメモリマクロ５からリセットベクタを受信する。なお、フラッシュメモリマクロ５には、反転リセットベクタが格納されているが、フラッシュメモリマクロ５とリセットベクタ制御回路３の間の読出しデータ反転回路３０が、反転リセットベクタを反転させる。そのため、リードデータ格納回路２７は、通常のリセットベクタ（反転されていないリセットベクタ）を受信することができる。
【００６６】
（ステップＳ４３）
ラッチ回路２６が、リセットベクタを受信する。
【００６７】
（ステップＳ４４）
ラッチ回路２６は、リード制御回路２９から、データラッチイネーブル信号線２８を介して、ラッチイネーブル信号を受信するまで、リセットベクタを保持する。当該ラッチイネーブル信号を受信した場合は、ステップＳ４５の処理に進む。
【００６８】
（ステップＳ４５）
ラッチ回路２６は、リセットベクタを、ＣＰＵ２に送信する。
【００６９】
（ステップＳ４６）
リード制御回路２９は、ステータス信号線８を介して、ＣＰＵ２に動作許可信号を送信する。
【００７０】
上述の方法により、リセットベクタ制御回路３は、フラッシュメモリマクロ５からリセットベクタを読み出し、ＣＰＵ２のプログラムカウンタに、当該リセットベクタを設定する。
【００７１】
本実施形態のマイクロコンピュータ１は、書込みデータ反転回路３１が、ＣＰＵ２から受信されたデータを、全て反転させてフラッシュメモリマクロ５に書き込んでいる。また、フラッシュメモリマクロ５のデータは、読出しデータ反転回路３０により、常に、反転して読み出される。
【００７２】
本実施形態のマイクロコンピュータ１は、リセットベクタを、従来通り０番地から読み出すユーザと、任意のアドレスから読み出すユーザの両方に対応することができる。
【００７３】
（第３実施形態）
［構成の説明］
はじめに、本実施形態のマイクロコンピュータ１の構成の説明を行う。本発明の第３実施形態におけるマイクロコンピュータ１のブロック図は、図５のマイクロコンピュータ１のブロック図と同様である。本実施形態のマイクロコンピュータ１は、ＣＰＵ２、リセットベクタ制御回路３、フラッシュ制御マクロ４、フラッシュメモリマクロ５、アドレスバス６、データバス７、ステータス信号線８、アドレスバス９、アドレスバス１０、セレクタ１１、リセットベクタ設定用信号線１２、周辺マクロ用アドレスバス１３、周辺マクロ用データバス１４、書込み用アドレスバス１５、書込み用データバス１６、及び書込み制御信号線１７を備える。本実施形態のマイクロコンピュータ１のブロック図は、第１実施形態と同様であるため、詳細な説明は省略する。
【００７４】
図１５は、本発明の第３実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４のブロック図である。本実施形態のフラッシュ制御マクロ４は、バスインターフェース１８、アドレスバッファ１９、書込みデータ生成部３２、動作許可ビット格納部２３、及び書込み制御回路２４を備える。書込みデータ生成部３２は、データバッファ２０を備える。バスインターフェース１８、アドレスバッファ１９、動作許可ビット格納部２３、及び書込み制御回路２４については、第１実施形態と同様であるため、詳細な説明は省略する。
【００７５】
以下の説明では、ＣＰＵ２のデータ幅を３２ｂｉｔ、及びフラッシュメモリマクロ５のデータ幅を３３ｂｉｔとするが、これらのｂｉｔ幅は、当業者が、適宜変更してよい。
【００７６】
書込みデータ生成部３２は、データバッファ２０に、フラッシュメモリマクロ５に書込まれる３２ｂｉｔ長のデータ（［３１：０］）を受信する。書込みデータ生成部３２は、当該データの３３ｂｉｔ目（［３２］）に、制御ビットとして”０”を付加する。書込みデータ生成部３２は、当該データを、３３ｂｉｔ長のデータ（［３２：０］）として、書込み用データバス１６を介して、フラッシュメモリマクロ５に送信する。
【００７７】
図１６は、本発明の第３実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３のブロック図である。本実施形態のリセットベクタ制御回路３は、リード制御回路２９とリードデータ格納回路２７で構成されている。リードデータ格納回路２７は、データ反転回路３４、及びラッチ回路２６を備える。本実施形態は、リードデータ格納回路２７のデータ反転回路３４が、第１実施形態と異なる。
【００７８】
リード制御回路２９は、読み出すデータが格納されているアドレスを、アドレスバス１０を介して、フラッシュメモリマクロ５に送信する。また、リード制御回路２９は、データラッチイネーブル信号線２８を介して、リードデータ格納回路２７に接続されている。リード制御回路２９が、データラッチイネーブル信号をアクティブにすると、リードデータ格納回路２７は、リセットベクタ設定用信号線１２を介して、ＣＰＵ２にリセットベクタを送信する。また、リード制御回路２９は、ステータス信号線８を介して、ＣＰＵ２に動作許可信号を送信する。リセットベクタ制御回路３の詳細な説明は、［動作方法の説明］で後述する。
【００７９】
［動作方法の説明］
次に、本実施形態のマイクロコンピュータ１のリセットベクタ管理方法の説明を行う。図１７は、本発明の第３実施形態のマイクロコンピュータ１におけるフラッシュ制御マクロ４の動作方法を説明するためのフローチャートである。フラッシュ制御マクロ４は、フラッシュメモリマクロ５にデータを書き込むためのマクロ回路である。
【００８０】
（ステップＳ５１）
バスインターフェース１８が、アドレスバッファ１９のアドレスデータを、ＣＰＵ２から周辺マクロ用アドレスバス１３を介して受信する。バスインターフェース１８は、当該アドレスデータをデコードして、アドレスを読み取り、アドレスバッファ１９に、ライト信号を送信する。アドレスバッファ１９が、周辺マクロ用データバス１４を介して、ＣＰＵ２から、フラッシュメモリマクロ５に書き込むデータのアドレスデータを受信する。
【００８１】
（ステップＳ５２）
バスインターフェース１８が、データバッファ２０のアドレスデータを、ＣＰＵ２から周辺マクロ用アドレスバス１３を介して受信する。バスインターフェース１８は、当該アドレスデータをデコードして、アドレスを読み取り、データバッファ２０に、ライト信号を送信する。データバッファ２０が、周辺マクロ用データバス１４を介して、ＣＰＵ２から、フラッシュメモリマクロ５に書込まれる書込みデータ（［３１：０］）を受信する。
【００８２】
（ステップＳ５３）
書込みデータ生成部３２は、３２ｂｉｔ長の当該書込みデータに、３３ｂｉｔ目として”０”を付加して、３３ｂｉｔ長の書込みデータ（［３２：０］）を作成する。
【００８３】
（ステップＳ５４）
バスインターフェース１８が、動作許可ビット格納部２３のアドレスデータを、ＣＰＵ２から周辺マクロ用アドレスバス１３を介して受信する。バスインターフェース１８は、当該アドレスデータをデコードして、アドレスを読み取り、動作許可ビット格納部２３に、ライト信号を送信する。動作許可ビット格納部２３が、周辺マクロ用データバス１４を介して、ＣＰＵ２から、書込み制御回路２４に動作許可を与えるための動作許可ビット信号を受信する。
【００８４】
（ステップＳ５５）
書込み制御回路２４が、書込み制御信号を、書込み制御信号線１７を介してフラッシュメモリマクロ５に送信する。
【００８５】
（ステップＳ５６）
フラッシュメモリマクロ５により、アドレスバッファ１９のアドレスデータと、データバッファ２０の書込みデータが、読み出される。
【００８６】
次に、フラッシュメモリマクロ５から、リセットベクタを読み出し、当該リセットベクタをＣＰＵ２に設定するリセットベクタ制御回路３について説明する。図１８は、本発明の第３実施形態のマイクロコンピュータ１におけるリセットベクタ制御回路３の動作方法を説明するためのフローチャートである。リセットベクタ制御回路３は、フラッシュメモリマクロ５から読み出されたリセットベクタを、ＣＰＵ２に設定する。
【００８７】
（ステップＳ６１）
リード制御回路２９が、リセットベクタ格納アドレスを、アドレスバス１０を介して、フラッシュメモリマクロ５に送信する。
【００８８】
（ステップＳ６２）
リードデータ格納回路２７が、データバス７を介して、フラッシュメモリマクロ５から３３ｂｉｔ長のデータ（［３１：０］；リセットベクタ、［３２］；制御ビット）を受信する。
【００８９】
（ステップＳ６３）
データ反転回路３４が、ｂｉｔ［３２］が“０”であるかを判定する。ｂｉｔ［３２］が、”０”である場合は、ステップＳ６５の処理に進み、ｂｉｔ［３２］が”０”でない場合には、ステップＳ６４の処理に進む。
【００９０】
（ステップＳ６４）
データ反転回路３４が、リセットベクタ（［３１：０］）を反転する。
【００９１】
（ステップＳ６５）
ラッチ回路２６が、リセットベクタ（［３１：０］）を受信する。
【００９２】
（ステップＳ６６）
ラッチ回路２６は、リード制御回路２９から、データラッチイネーブル信号線２８を介して、ラッチイネーブル信号を受信するまで、リセットベクタ（［３１：０］）を保持する。当該ラッチイネーブル信号を受信した場合は、ステップＳ６７の処理に進む。
【００９３】
（ステップＳ６７）
ラッチ回路２６は、リセットベクタ（［３１：０］）を、ＣＰＵ２に送信する。
【００９４】
（ステップＳ６８）
リード制御回路２９は、ステータス信号線８を介して、ＣＰＵ２に動作許可信号を送信する。
【００９５】
本実施形態のマイクロコンピュータ１は、フラッシュ制御マクロ４が、フラッシュメモリマクロ５にデータを書込む際には、ｂｉｔ［３２］を“０”にしている。これにより、リセットベクタ制御回路３は、フラッシュメモリマクロ５からデータを読み出す際に、ｂｉｔ［３２］を参照することにより、フラッシュ制御マクロ４により書込まれたデータであるかどうかを判定することができる。
【００９６】
本実施形態のマイクロコンピュータ１は、リセットベクタを、従来通り０番地から読み出すユーザと、任意のアドレスから読み出すユーザの両方に対応することができる。
【００９７】
一般的に、フラッシュメモリは、浮遊ゲート４４に電子がある状態を、書込み状態（論理０）とし、浮遊ゲート４４に電子がない状態を、消去状態（論理１）として１ビットのデータを記憶している。そのため、例えば、フラッシュメモリに、１００１１１０１（２進数）のデータを書き込む場合には、０の箇所だけ書き込み、１の箇所は何もしないという動作となっている。
【００９８】
上述の一般的なフラッシュメモリとは、逆の動作となるが、本発明の第１〜３実施形態のマイクロコンピュータ１は、書き込み状態を論理１とし、消去状態を論理０であるフラッシュメモリマクロ５を備えていてもよい。この場合には、フラッシュメモリマクロ５に利用されるフラッシュメモリは、ＡＬＬ“０ｈ”で出荷される。したがって、リセットベクタをＡＬＬ“１ｈ”の固定アドレスに設定したいユーザと、リセットベクタを任意のアドレスに設定したいユーザの両方に対応することができる。
【００９９】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【符号の説明】
【０１００】
１        ：マイクロコンピュータ
２        ：ＣＰＵ
３        ：リセットベクタ制御回路
４        ：フラッシュ制御マクロ
５        ：フラッシュメモリマクロ
６        ：アドレスバス
７        ：データバス
８        ：ステータス信号線
９        ：アドレスバス
１０      ：アドレスバス
１１      ：セレクタ
１２      ：リセットベクタ設定用信号線
１３      ：周辺マクロ用アドレスバス
１４      ：周辺マクロ用データバス
１５      ：書込み用アドレスバス
１６      ：書込み用データバス
１７      ：制御信号線
１８      ：バスインターフェース
１９      ：アドレスバッファ
２０      ：データバッファ
２１      ：コンパレータ
２２      ：データ反転回路
２３      ：動作許可ビット格納部
２４      ：制御回路
２５      ：データ反転回路
２６      ：ラッチ回路
２７      ：リードデータ格納回路
２８      ：データラッチイネーブル信号線
２９      ：リード制御回路
３０      ：データ反転回路
３１      ：データ反転回路
３２      ：データ生成部
３３      ：レジスタ
３４      ：データ反転回路
４１      ：ゲート
４２      ：ソース電極
４３      ：ドレイン電極
４４      ：浮遊ゲート
４５      ：絶縁膜
４６      ：半導体基板
【図１】
2013175009.tif 000003
【図２】
2013175009.tif 000004
【図３】
2013175009.tif 000005
【図４】
2013175009.tif 000006
【図５】
2013175009.tif 000007
【図６】
2013175009.tif 000008
【図７】
2013175009.tif 000009
【図８】
2013175009.tif 000010
【図９】
2013175009.tif 000011
【図１０】
2013175009.tif 000012
【図１１】
2013175009.tif 000013
【図１２】
2013175009.tif 000014
【図１３】
2013175009.tif 000015
【図１４】
2013175009.tif 000016
【図１５】
2013175009.tif 000017
【図１６】
2013175009.tif 000018
【図１７】
2013175009.tif 000019
【図１８】
2013175009.tif 000020