(57)【要約】【課題】フラッシュメモリの誤った書換えや意図せぬ特殊モードへの遷移を未然に防止し、フラッシュメモリに格納されるデータの保護を容易に実現できるようにする。【解決手段】ＣＰＵ１からのフラッシュメモリ３へのアクセス制御がメモリコントローラ２を介して行われるＣＰＵシステムにおいて、前記フラッシュメモリ３に対して前記ＣＰＵ１が実行するライトアクセスの指定アドレスが、前記フラッシュメモリ３のデータバス幅の境界と一致しない場合に発生するミスアラインによるライトアクセスを禁止するアクセス禁止手段（転送アドレス監視部４，ＯＲゲート５）設けることを特徴とする。【選択図】  図１
2006178867.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリと，中央処理装置（ＣＰＵ）と、このＣＰＵからの前記フラッシュメモリへのアクセス制御を行うメモリコントローラとを備えたＣＰＵシステムにおいて、前記フラッシュメモリに対して前記ＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止するアクセス禁止手段を設け、前記指定アドレスのミスアラインによるアクセスを禁止したことを特徴とするフラッシュメモリを用いたＣＰＵシステム。
【請求項２】
アクセス禁止手段が、フラッシュメモリに対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを監視する転送アドレス監視手段と、この転送アドレス監視手段が前記一致しないアドレスを検出したとき前記フラッシュメモリへのアクセスを禁止するゲート手段とを備える請求項１記載のフラッシュメモリを用いたＣＰＵシステム。
【請求項３】
転送アドレス監視手段が、フラッシュメモリに対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを設定する禁止条件設定部と、この禁止条件設定部のアドレスと前記ＣＰＵが実行するライトアクセスの指定アドレスとを所定タイミングで比較し一致しないアドレスを出力する条件比較部とを含む請求項２記載のフラッシュメモリを用いたＣＰＵシステム。
【請求項４】
所定タイミングが、ＣＰＵが実行するライトアクセス時で、かつメモリコントローラからの出力がチップイネーブルである時である請求項３または４記載のフラッシュメモリを用いたＣＰＵシステム。
【請求項５】
転送アドレス監視手段が、禁止条件設定部の禁止条件と一致したライトアクセスが発生した時にエラーとしてＣＰＵに出力するエラー生成部を含む請求項３または４記載のフラッシュメモリを用いたＣＰＵシステム。
【請求項６】
ＣＰＵからメモリコントローラを介してフラッシュメモリのアクセス制御が行われるフラッシュメモリ保護回路において、前記フラッシュメモリに対して前記ＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止するアクセス禁止手段を有し、前記指定アドレスのミスアラインによるライトアクセスを禁止することを特徴とするフラッシュメモリ保護回路。
【請求項７】
アクセス禁止手段が、フラッシュメモリに対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを監視する転送アドレス監視手段と、この転送アドレス監視手段が前記一致しないアドレスを検出したとき前記フラッシュメモリへのアクセスを禁止するゲート手段とを備える請求項６記載のフラッシュメモリ保護回路。
【請求項８】
転送アドレス監視手段が、フラッシュメモリに対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを設定する禁止条件設定部と、この禁止条件設定部のアドレスとＣＰＵが実行するライトアクセスの指定アドレスとを所定タイミングで比較し一致しないアドレスを出力する条件比較部とを含む請求項６記載のフラッシュメモリ保護回路。
【請求項９】
転送アドレス監視手段が、禁止条件設定部の禁止条件と一致したライトアクセスが発生した時にエラーとしてＣＰＵに出力するエラー生成部を含む請求項６，７または８記載のフラッシュメモリ保護回路。
【請求項１０】
ＣＰＵからのフラッシュメモリへのアクセス制御がメモリコントローラを介して行われるＣＰＵシステムのフラッシュメモリ保護方法において、前記フラッシュメモリに対して前記ＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止し、前記指定アドレスのミスアラインによるアクセスを禁止したことを特徴とするフラッシュメモリ保護方法。
【請求項１１】
バイト単位の書き込み制御が不可能なメモリ領域に対して、ミスアライン発生時に不正なライトアクセスを防止する請求項１０記載のフラッシュメモリ保護方法。
【請求項１２】
フラッシュメモリに対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない禁止条件と一致したライトアクセス発生時にライトイネーブルをマスクし、前記ライトアクセスを無効とする請求項１０または１１記載のフラッシュメモリ保護方法。
【請求項１３】
フラッシュメモリに対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない禁止条件と一致したライトアクセス発生時に前記ＣＰＵに対して、転送エラーが発生したことを通知する請求項１０，１１または１２記載のフラッシュメモリ保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリを用いたＣＰＵシステム、フラッシュメモリ保護回路およびそのフラッシュメモリ保護方法に関し、特にフラッシュメモリによる誤動作を防止したＣＰＵシステム、フラッシュメモリ保護回路およびそのフラッシュメモリ保護方法に関する。
【背景技術】
【０００２】
一般的に、フラッシュメモリは、書込みがビット単位で可能であるが、消去が全ビットあるいはブロック単位（まとまったビット数の単位）で行う、電気的消去および書込可能な不揮発性メモリである。このフラッシュメモリによる誤動作を防止する方法を説明する前に，他の不揮発性メモリの誤動作防止方法について説明する。
【０００３】
この不揮発性メモリの誤書込を防止した中央処理装置（ＣＰＵ）システムとして、特許文献１に示されたシステムがある。このＣＰＵシステムは、制御プログラムの記憶手段として、電気的消去および書込可能な不揮発性メモリ（ＥＥＰＲＯＭ：Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を用いている。このＣＰＵシステムは、ＥＥＰＲＯＭのライトイネーブル信号ＷＥにノイズが重畳したり、ＣＰＵが暴走した場合に、誤ってＥＥＰＲＯＭの内容を書き換えてしまうことを防止している。
【０００４】
図４はこのＣＰＵシステムのブロック図である。このＣＰＵシステムは、中央処理装置（ＣＰＵ）１ａ、ＥＥＰＲＯＭ３ａ、アドレスデコーダ６、誤書込防止回路７、リセット回路８から構成される。ＣＰＵ１ａとＥＥＰＲＯＭ３ａ間にデータバス１１、アドレスバス１２が接続される。
【０００５】
このＣＰＵ１ａにより指定されるＥＥＰＲＯＭ３ａのアドレスに制御プログラムなどが書き込まれる。また、ＣＰＵ１ａは、１６ビットのアドレス情報をアドレスバス１２を介してＥＥＰＲＯＭ３ａおよびアドレスデコーダ６に供給している。また、ＣＰＵ１ａは、８ビットの書込データＤ０〜Ｄ７をデータバス１１を介してＥＥＰＲＯＭ３ａに出力すると共に、１ビットの書込データＤ０を誤書込防止回路７に出力している。
【０００６】
ＣＰＵ１ａがＥＥＰＲＯＭ３ａのデータを書き換える場合には、１６進法で表される初期アドレスを出力すると共に、書込データＤ０として論理ハイ（レベル）を出力して、ＥＥＰＲＯＭ３ａを書込可能な状態に設定する。その後、所定アドレスに書込データを書き込む。
【０００７】
アドレスデコーダ６は、ＣＰＵ１ａからＥＥＰＲＯＭ３ａを指定するアドレスが入力されると、チップセレクト信号１４ａを論理ロウに立ち下げる。またそれと同時に、ＥＥＰＲＯＭ３ａへの書込開始に入力される開始アドレスに対応してアドレスデコーダ６の書込許可ポートＰ１からの出力信号４１を論理ロウに立ち下げる。誤書込防止回路７は、図に示すように、インバートＮＡＮＤ３１，３２およびラッチ回路３３から構成される。インバートＮＡＮＤ３１は、アドレスデコーダ６の書込許可ポートからの出力と書込要求信号との論理積をイネーブル信号としてラッチ回路３３に出力する。
【０００８】
ラッチ回路３３は、イネーブル信号が論理ロウに立ち下がると、最下位データＤ０の出力を保持し、またその反転出力である状態制御信号をインバートＮＡＮＤ３２に出力する。ここでインバートＮＡＮＤ３２は、状態制御信号と書込要求信号との論理積を書込許可信号１９ａとしてＥＥＰＲＯＭ３ａのライトイネーブル信号ＷＥに入力する。
【０００９】
ラッチ回路３３は、最初論理ハイに保持されると書込不可能となるが、最下位データＤ０より出力される論理ロウを保持すると、ＥＥＰＲＯＭ３ａを書込可能状態に設定できる。また、誤書込防止回路７は、この書込可能状態で書込要求信号１６ａが論理ロウに立ち下がった場合にのみ書込データＤ０〜Ｄ７をＥＥＰＲＯＭ３ａへの書込を許可する。また、リセット回路８は、ＣＰＵ１ａ、ＥＥＰＲＯＭ３ａのリセット端子およびラッチ回路３３のクリア端子にリセット信号４２を供給し、ＣＰＵ１ａ、ＥＥＰＲＯＭ３ａを初期化すると共に、ラッチ回路３３の状態制御信号を論理ハイに立ち上げる。
【００１０】
まず、電源が論理ハイに立ち上がると、ラッチ回路３３からの状態制御信号が論理ハイとなり、ＥＥＰＲＯＭ３ａを書込不可能とする。ＣＰＵ１ａは、データバス１１を介してデータをＥＥＰＲＯＭ３ａに出力すると、書込要求信号１６ａを論理ロウに立ち下げ、誤書込防止回路７のインバートＮＡＮＤ３１，３２に出力する。この時、アドレスデコーダ６には、書込開始アドレスが入力されていないので、インバートＮＡＮＤ３１の他端に入力される信号は論理ハイであり、ラッチ回路３３から出力される状態制御信号も論理ハイのままである。
【００１１】
これにより、インバートＮＡＮＤ３２に論理ロウの書込要求信号１６ａが入力される場合にも状態制御信号が論理ハイであるので、ＥＥＰＲＯＭ３ａへの書込許可信号１９ａは論理ハイのままである。従って、ＣＰＵ１ａの誤動作により誤ってＥＥＰＲＯＭ３ａのアドレスが指定され、書込要求信号１６ａが出力されたとしても、書込アドレスの前に書込開始アドレスが設定されていない場合には、ＥＥＰＲＯＭ３ａへの書込が禁止され、誤書き込みを回避することができる。
【００１２】
一方、ラッチ回路３３からの状態制御信号が論理ロウである書込許可期間の場合には、ＣＰＵ１ａに指定されたＥＥＰＲＯＭ３ａのデータを書き換えることができる。すなわち、ＣＰＵ１ａの書込開始アドレスをアドレスデコーダ６に出力し、アドレスデコーダ６の書込許可ポートの信号を論理ロウに立ち下げ、ラッチ回路３３に入力される最下位ビットデータＤ０を論理ロウに立ち下げる。この際、書込要求信号が論理ロウに立ち下ると、ラッチ回路３３に入力されるイネーブル信号が論理ロウに立ち下ることにより、ラッチ回路３３から出力される状態制御信号が論理ロウにラッチされて書き込み許可状態になる。
【００１３】
この従来技術は、ＥＥＰＲＯＭ３ａへの誤書き込みを回避してはいるが、フラッシュメモリの問題を解決していない。フラッシュメモリは、バイト単位での書き込み制御が出来ず、データバス幅が１６ビットのデバイスでもライトイネーブル（ＷＥ＊）端子は１つである。そのため、フラッシュメモリのライトアクセスが行われた場合は、データバスに示される全てのデータを有効として扱うことになる。また、フラッシュメモリを制御するためのコマンドは、データバスのＬＳＢ側８ビットに示された値に従い、制御されることが一般的である。
【００１４】
図５は、一般的なフラッシュメモリが配置されたＣＰＵシステムの構成を示すブロック図である。このＣＰＵシステムは、ＣＰＵのメモリ空間内に特定のコマンドシーケンスを有するフラッシュメモリが配置された構成である。このＣＰＵシステムは、ＣＰＵ１、メモリコントローラ２ａ、フラッシュメモリ３から構成され、ＣＰＵ１とフラッシュメモリ３間にデータバス１１、アドレスバス１２が接続される。ＣＰＵ１からバスアクセスの転送方向（リード／ライト）を示すリード／ライト信号１３が、メモリコントローラ２ａに接続される。
【００１５】
メモリコントローラ２ａは、チップイネーブル信号１４、アウトプットイネーブル信号１５又はライトイネーブル信号１６の各ストローブ信号を生成し、チップイネーブル信号１４、アウトプットイネーブル信号１５、ライトイネーブル信号１６はフラッシュメモリ３の各端子へ接続する。
【００１６】
また、図６は、１６ビットデータを１６ビットメモリの偶数番地及び、奇数番地へ転送した場合のデータ位置を示す配置図である。この場合、フラッシュメモリ３のバス幅が１６ビット（１６ビットメモリ）であり、ＣＰＵ１により実行されるバスアクセスのアドレスバス下位４ビット［Ａ３−Ａ０］が１番地を示し、１６ビットデータのライトアクセスが実行された場合のタイミングチャートを図７に示す。
【００１７】
ＣＰＵ１からフラッシュメモリ３へのアクセスはメモリコントローラ２を介して行われる。この時、図７に示すように、ＣＰＵ１が実行するバスアクセスのリード／ライト信号１３及び、アドレスバス１２の下位４ビット、メモリコントローラ２により生成されたフラッシュメモリのチップイネーブル信号１４が転送アドレス監視部４へも入力される。メモリコントローラ２は、フラッシュメモリ３に対するバスアクセスを検出するとチップイネーブル信号１４、アウトプットイネーブル信号１５又はライトイネーブル信号１６の各ストローブ信号を生成し、フラッシュメモリ３の各端子へ供給する。
【００１８】
この構成において、ＣＰＵ１の誤動作やソフトウェアによる不用意なアドレス算出などにより、フラッシュメモリ３に対してＣＰＵ１が実行するライトアクセスの指定アドレスにより出力データ配列が、フラッシュメモリ３のデータビット配列と一致しない場合がある。（フラッシュメモリ３のデータバス幅の境界が一致しない場合がある。）これは、フラッシュメモリ３のデータバス幅が１６ビットであるため、その境界は０，２，４のように偶数番地となるが、１，３，５のような奇数番地へのアクセスが発生した場合にはミスアラインが発生することになる。
【００１９】
例えば、図６に示す通り、転送したい１６ビットデータをａａｂｂ（Ｈｅｘ）とした場合、ａａ（Ｈｅｘ）が１６ビットメモリのＬＳＢ側、ｂｂ（Ｈｅｘ）が１６ビットメモリのＭＳＢ側に相当するため、２回のライトアクセスが発生する。偶数番地である場合は、
上位８ビットにａａ（Ｈｅｘ）が示され、下位８ビットに有効データｂｂ（Ｈｅｘ）が示されるので、問題はない。しかし、奇数番地へのアクセスでは、１回目のライトアクセスではデータバスの上位８ビットに不定データ、下位８ビットに有効データであるａａ（Ｈｅｘ）が示される。同様に、２回目のライトアクセスではデータバスの上位８ビットに有効データであるｂｂ（Ｈｅｘ）、下位８ビットに不定データが示される。これらの場合にはミスアラインが発生する。
【００２０】
【特許文献１】特開平４−２７４５３９号
【発明の開示】
【発明が解決しようとする課題】
【００２１】
このようにＣＰＵのメモリ空間内に特定のコマンドシーケンスを有するフラッシュメモリを用いた従来のＣＰＵシステムは、図４に示すような誤書込防止回路を用いたとしてもフラッシュメモリのミスアライン問題は解決されない。すなわち、フラッシュメモリを用いた従来のＣＰＵシステムには、次のような問題がある。
【００２２】
その問題点は、ＣＰＵの誤動作やソフトウェアによる不用意なアドレス算出などにより、フラッシュメモリに対して前記ＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない場合に発生するミスアラインにより、ソフトウェアが意図せぬ不定なデータが書き込まれる恐れがあるということである。仮に、この不定なデータがフラッシュメモリの構造や能力情報を読み出すための特殊モードへ遷移させるコマンドと一致した場合には、以降のリードアクセスに対して構造や能力情報を示すデータが出力される。従って、本来出力されるべきフラッシュメモリへ格納されている有効なデータが出力されないことになる。
【００２３】
例えば、フラッシュメモリにＣＰＵの起動用プログラムが格納されている構成で、ミスアラインにより不定データが書き込まれ、特殊モードへ遷移してしまったとする。この場合には、ＣＰＵをリセットし、再起動を試みても起動用プログラムデータを読み出すことが出来ず、再起動も不可能な状態に陥る恐れがある。
【００２４】
本発明の主な目的は、フラッシュメモリの誤った書換えや意図せぬ特殊モードへの遷移を未然に防止出来るようにしたフラッシュメモリを用いたＣＰＵシステム、フラッシュメモリ保護回路およびそのフラッシュメモリ保護方法を提供することにある。
【課題を解決するための手段】
【００２５】
本発明の構成は、フラッシュメモリと，中央処理装置（ＣＰＵ）と、このＣＰＵからの前記フラッシュメモリへのアクセス制御を行うメモリコントローラとを備えたＣＰＵシステムにおいて、前記フラッシュメモリに対して前記ＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止するアクセス禁止手段を設け、前記指定アドレスのミスアラインによるアクセスを禁止したことを特徴とする。
【００２６】
本発明において、アクセス禁止手段が、フラッシュメモリに対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを監視する転送アドレス監視手段と、この転送アドレス監視手段が前記一致しないアドレスを検出したとき前記フラッシュメモリへのアクセスを禁止するゲート手段とを備えることができ、また、転送アドレス監視手段が、フラッシュメモリに対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを設定する禁止条件設定部と、この禁止条件設定部のアドレスとＣＰＵが実行するライトアクセスの指定アドレスとを所定タイミングで比較し一致しないアドレスを出力する条件比較部とを含むことができ、さらに、所定タイミングが、ＣＰＵが実行するライトアクセス時で、かつメモリコントローラからの出力がチップイネーブルである時であることができる。
【００２７】
本発明の他の構成は、ＣＰＵからメモリコントローラを介してフラッシュメモリのアクセス制御が行われるフラッシュメモリ保護回路において、前記フラッシュメモリに対して前記ＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止するアクセス禁止手段を有することを特徴とする。
【００２８】
本発明において、アクセス禁止手段が、フラッシュメモリに対して前記ＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを監視する転送アドレス監視手段と、この転送アドレス監視手段が前記一致しないアドレスを検出したとき前記フラッシュメモリへのアクセスを禁止するゲート手段とを備えることができ、また、転送アドレス監視手段が、フラッシュメモリのデータバス幅の境界ビットと一致しないアドレスを設定する禁止条件設定部と、この禁止条件設定部のアドレスとＣＰＵが実行するライトアクセスの指定アドレスとを所定タイミングで比較し一致しないアドレスを出力する条件比較部とを含むことができ、さらに、転送アドレス監視手段が、禁止条件設定部の禁止条件と一致したライトアクセスが発生した時にエラーとしてＣＰＵに出力するエラー生成部を含むことができる。
【００２９】
本発明のさらに他の構成は、ＣＰＵからのフラッシュメモリへのアクセス制御がメモリコントローラを介して行われるＣＰＵシステムのフラッシュメモリ保護方法において、前記フラッシュメモリに対して前記ＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止し、前記指定アドレスのミスアラインによるアクセスを禁止し、前記ミスアライン発生時の不正なライトアクセスを防止することを特徴とする。
【００３０】
本発明において、バイト単位の書き込み制御が不可能なメモリ領域に対して、ミスアライン発生時に不正なライトアクセスを防止することができ、また、フラッシュメモリに対して前記ＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない禁止条件と一致したライトアクセス発生時にライトイネーブルをマスクし、前記ライトアクセスを無効とすることができ、さらに、フラッシュメモリのデータデータビットの配列と一致しない禁止条件と一致したライトアクセス発生時にＣＰＵに対して、転送エラーが発生したことを通知することができる。
【発明の効果】
【００３１】
以上説明したように、本発明によれば、フラッシュメモリに対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない場合のデータの書き込みを無効としているので、フラッシュメモリの誤った書換えや意図せぬ特殊モードへの遷移を未然に防止し、フラッシュメモリに格納されるデータの保護を容易に実現できるという効果がある。
【発明を実施するための最良の形態】
【００３２】
次に図面により本発明の実施形態を説明する。図１は本発明の一実施形態のＣＰＵシステムのブロック図である。この図１のように、本実施形態は、ＣＰＵ１、メモリコントローラ２、フラッシュメモリ３、転送アドレス監視部４、および２入力ＯＲゲート５から構成される。これらＣＰＵ１とフラッシュメモリ３との間にデータバス１１、アドレスバス１２が接続される。
【００３３】
図１において、ＣＰＵ１からフラッシュメモリ３へのアクセスはメモリコントローラ２を介して行われる。この時、ＣＰＵ１が実行するバスアクセスの転送方向（リード／ライト）を示すリード／ライト信号１３及び、アドレスバス１２の下位４ビット、メモリコントローラ２により生成されたフラッシュメモリのチップイネーブル信号１４が転送アドレス監視部４へも入力される。転送アドレス監視部４は、ＣＰＵ１が実行するアクセスがライトアクセスであった場合、指定アドレスがフラッシュメモリ３のデータバス幅の境界と一致しているか否かを監視ている。この転送アドレス監視部４の出力が、一致していない場合にはＷＥ＊マスク信号１８をハイレベルに遷移させる。このＷＥ＊マスク信号１８は、ライトイネーブル信号１６と共に２入力ＯＲゲート５に入力され、２入力ＯＲゲート５の出力は、フラッシュメモリ３へのライトイネーブル信号１９として入力する。従って、ハイレベルに遷移したＷＥ＊マスク信号１８により、ライトイネーブル信号１９が無効となる。転送アドレス監視部４は、同時に、転送エラー信号１７を生成し、フラッシュメモリ３に対するライトアクセスに異常が発生したことをＣＰＵ１に通知する。
【００３４】
なお、転送アドレス監視部４は、フラッシュメモリ３のデータバス幅の境界と一致しないアドレスがアクセス禁止条件となる。例えば
・８ビット幅の場合、バイト単位のアドレス毎にデータバスの境界があるため、禁止条件無し。
・１６ビット幅の場合、データ［Ａ３−Ａ０］の最下位ビットであるＡ０が”１”であるアドレス＝１，３，５，７，９，Ｂ，Ｄ，Ｆ番地（奇数番地）が禁止条件となる。
・３２ビット幅の場合、データ［Ａ３−Ａ０］の下位２ビットであるＡ１とＡ０が”００”以外である。アドレス＝１，２，３，５，６，７，９，Ａ，Ｂ，Ｄ，Ｅ，Ｆ番地が禁止条件となる。許可条件は０，４，８，Ｃ番地へのアクセスである。
【００３５】
この様に本実施形態によれば、ＣＰＵのメモリ空間内に特定のコマンドシーケンスを有するフラッシュメモリが配置されたＣＰＵシステムにおいて、フラッシュメモリの誤った書換えや意図せぬ特殊モードへの遷移を未然に防止し、フラッシュメモリに格納されるデータの保護を容易に実現することができる。
【００３６】
その理由は、ＣＰＵの誤動作やソフトウェアによる不用意なアドレス算出などにより、フラッシュメモリに対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない場合を検出することが出来る。従って、メモリのデータバス幅の境界で一致しない場合に発生するミスアラインにより、ソフトウェアが意図せぬデータの書き込みを無効とするからである。
【実施例１】
【００３７】
本発明の一実施例は図１と同様であり、ＣＰＵのメモリ空間内に特定のコマンドシーケンスを有するフラッシュメモリが配置されたＣＰＵシステムである。また、転送アドレス監視部４の内部構成が図２のブロック図に示される。
【００３８】
図１において、ＣＰＵ１により実行されるバスアクセスの転送方向（リード／ライト）信号（Ｒ／Ｗ＊）１３及びアドレスバス１２はメモリコントローラ２に入力される。メモリコントローラ２は、フラッシュメモリ３に対するバスアクセスを検出するとチップイネーブル信号（ＣＥ＊）１４、アウトプットイネーブル信号（ＯＥ＊）１５又はライトイネーブル信号（ＷＥ＊）１６の各ストローブ信号を生成する。これらチップイネーブル信号１５、アウトプットイネーブル信号１６はフラッシュメモリ３の各端子へ接続される。ライトイネーブル信号１６は、２入力ＯＲゲート５の一方に入力され、２入力ＯＲゲート５の他方の入力には転送アドレス監視部４から出力されるＷＥ＊マスク信号が接続される。２入力ＯＲゲート５の出力信号１９がフラッシュメモリ３へ接続される。バスアクセスの転送方向（リード／ライト）信号１３及び、アドレスバス１２の下位４ビット、メモリコントローラ２により生成されたフラッシュメモリ３のチップイネーブル信号１４は転送アドレス監視部４へも接続される。また、ＣＰＵ１に対してバスアクセスの異常を通知する信号として、転送アドレス監視部４から出力される転送エラー信号１７がＣＰＵ１に接続される。
【００３９】
転送アドレス監視部４は、図２のように、条件比較部２１、禁止条件設定部２２、エラー生成部２３から構成される。ＣＰＵ１により出力されるバスアクセスの転送方向（リード／ライト）信号１３及び、アドレスバス１２の下位４ビット［Ａ３−Ａ０］、メモリコントローラ２により生成されたフラッシュメモリのチップイネーブル信号１４は条件比較部２１に接続され、条件比較部２１には禁止条件設定部２２に予め設定された条件も入力される。条件比較部２１の比較結果は、ＷＥ＊マスク信号として、２入力ＯＲゲート５に入力されると同時に、エラー生成部２３に通知される。エラー生成部２３は、ＷＥ＊マスク信号に従い、バスアクセスの異常が通知された場合には転送エラー信号１７を生成し、ＣＰＵ１へバスアクセスの異常を通知する。
【００４０】
次に本発明の実施例の動作を説明する。図１、図２の構成において、フラッシュメモリ３のバス幅が１６ビット（１６ビットメモリ）であり、ＣＰＵ１により実行されるバスアクセスのアドレスバス下位４ビット［Ａ３−Ａ０］が１番地を示し、１６ビットデータのライトアクセスが実行された場合のタイミングチャートを図３に示す。
【００４１】
図１において、ＣＰＵ１がライトバスアクセスを実行した場合、ライトアクセスを示した転送方向（リード／ライト）信号１３及び、アドレスバス１２はメモリコントローラ２に入力される。メモリコントローラ２は、アドレスバス１２に示された値がフラッシュメモリ３に割り当てられたアドレスであることを検出すると、チップイネーブル信号１４及びライトイネーブル信号１６を生成する。チップイネーブル信号１６はフラッシュメモリ３のＣＥ＊端子へ接続され、ライトイネーブル信号１６は、２入力ＯＲゲート５の一方に入力される。この時、転送方向（リード／ライト）信号１３及び、アドレスバス１２の下位４ビット［Ａ３−Ａ０］、チップイネーブル信号１６は転送アドレス監視部４へも入力される。
【００４２】
図２及び図３において、転送アドレス監視部４に接続された転送方向（リード／ライト）信号１３及びアドレスバス１２の下位４ビット［Ａ３−Ａ０］、チップイネーブル信号１６は条件比較部２１に入力される。また、禁止条件設定部２２は、バスアクセスの禁止条件として、ＣＰＵ１が実行するフラッシュメモリ３に対するライトアクセスの指定アドレスが、フラッシュメモリ３のデータバス幅の境界と一致しない場合を予め設定している。それは、即ち、チップイネーブル信号１６がアクティブであること、転送方向（リード／ライト）信号１３がライトを示していること、アドレスバスの下位４ビット［Ａ３−Ａ０］が奇数を示していることを条件比較部２１で比較される。条件比較部２１の比較結果はＷＥ＊マスク信号１８として、２入力ＯＲゲート５の一方に入力されると同時に、エラー生成部２３に通知される。
【００４３】
図３において、フラッシュメモリ３のバス幅が１６ビットであり、ＣＰＵ１により実行されるライトバスアクセスのアドレスバス下位４ビット［Ａ３−Ａ０］が１番地を示し、１６ビットデータのライトアクセスが実行された場合、禁止条件設定部２２に設定されたバスアクセスの禁止条件と一致する。この場合には、ＷＥ＊マスク信号１８はハイレベルへ遷移する。２入力ＯＲゲート５の一方であるＷＥ＊マスク信号１８がハイレベルとなったことにより、２入力ＯＲゲート５のもう一方の入力であるメモリコントローラ２出力のライトイネーブル信号１６に因らず、２入力ＯＲゲート５の出力であるフラッシュメモリ３への入力のライトイネーブル信号１９はハイレベルが維持され、バスアクセスが禁止される。
【００４４】
また、エラー生成部２３は、ＷＥ＊マスク信号１８がハイレベルに遷移したことを受け、バスアクセスの異常が通知されたことを検出し、転送エラー信号１７を生成する。この転送エラー信号１７はＣＰＵ１へ入力され、ＣＰＵ１が実行しているバスアクセスを転送エラーとして終了する。これにより、条件比較部２１の比較結果は不一致となり、ＷＥ＊マスク信号１８は初期状態であるロウレベルに戻り、転送エラー信号１７も解除される。
【００４５】
なお、エラー生成部２３はＷＥ＊マスク信号のハイ信号を検出すると、ＣＰＵのバスアクセスを終了させるための転送エラー信号（パルス）を生成する。ソフトウェアの作り次第なのでエラー処理については明記しないが、ＣＰＵはバスアクセスの異常終了によりＡＬＭ又はＥＲＲ表示や書き込みの再試行などエラー処理（数回の再試行でＡＬＭ又はＥＲＲ表示など）を起動することが可能となります。このエラー処理により、システム（バスアクセス）に異常が発生したことを操作者や上位装置などの外部に通知することができる。
【００４６】
本実施例によれば、ＣＰＵのメモリ空間内に特定のコマンドシーケンスを有するフラッシュメモリが配置されたＣＰＵシステムにおいて、フラッシュメモリの誤った書換えや意図せぬ特殊モードへの遷移を未然に防止し、フラッシュメモリに格納されるデータの保護を容易に実現することができる。
【産業上の利用可能性】
【００４７】
本発明では、フラッシュメモリについて説明したが、バイト単位の書き込み制御が不可能なメモリ領域では同様な問題が想定される。そのため、フラッシュメモリのチップイネーブル信号に代わり、バイト単位の制御が不可能なメモリ領域、例えば、ＳＤＲＡＭやＳＲＡＭなどの選択を示すチップイネーブル信号を比較条件とすることにより、ＳＤＲＡＭやＳＲＡＭなどに適用することも考えられる。
【００４８】
この場合にも、そのメモリ領域に対してＣＰＵが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、フラッシュメモリのデータビットの配列と一致しない場合に発生するミスアラインによるライトアクセスを無効とすることが可能となる。従って、誤った書換えを未然に防止することができる。
【図面の簡単な説明】
【００４９】
【図１】本発明の第１の実施形態を説明するＣＰＵシステムのブロック図である。
【図２】図１の転送アドレス監視部４を説明するブロック図である。
【図３】図１の動作を説明するタイミングチャートである。
【図４】従来例のＥＥＰＲＯＭを用いたＣＰＵシステムのブロック図である。
【図５】従来例のフラッシュメモリを用いたＣＰＵシステムのブロック図である。
【図６】図５の動作を説明するデータ構成図である。
【図７】図５の動作を説明するタイミングチャートである。
【符号の説明】
【００５０】
１    ＣＰＵ
２，２ａ    メモリコントローラ
３    フラッシュメモリ
３ａ    ＥＥＰＲＯＭ
４    転送アドレス監視部
５    ＯＲゲート
６    アドレスデコーダ
７    誤書込防止回路
８    リセット回路
１１    データバス
１２    アドレスバス
１３    転送方向信号
１４    チップイネーブル信号
１４ａ    チップセレクト信号
１５    アウトプットイネーブル信号
１６，１９    ライトネーブル信号
１６ａ    書込要求信号
１７    転送エラー信号
１８    ＷＥ＊マスク信号
２１    条件比較部
２２    禁止条件設定部
２３    エラー生成部
３１，３２    インバートＮＡＮＤ
３３    ラッチ回路
４１    書込許可信号
４２    リセット信号
【図１】
2006178867.tif 000003
【図２】
2006178867.tif 000004
【図３】
2006178867.tif 000005
【図４】
2006178867.tif 000006
【図５】
2006178867.tif 000007
【図６】
2006178867.tif 000008
【図７】
2006178867.tif 000009