説明

フラッシュメモリを用いたCPUシステム、フラッシュメモリ保護回路およびそのフラッシュメモリ保護方法

【課題】フラッシュメモリの誤った書換えや意図せぬ特殊モードへの遷移を未然に防止し、フラッシュメモリに格納されるデータの保護を容易に実現できるようにする。
【解決手段】CPU1からのフラッシュメモリ3へのアクセス制御がメモリコントローラ2を介して行われるCPUシステムにおいて、前記フラッシュメモリ3に対して前記CPU1が実行するライトアクセスの指定アドレスが、前記フラッシュメモリ3のデータバス幅の境界と一致しない場合に発生するミスアラインによるライトアクセスを禁止するアクセス禁止手段(転送アドレス監視部4,ORゲート5)設けることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュメモリを用いたCPUシステム、フラッシュメモリ保護回路およびそのフラッシュメモリ保護方法に関し、特にフラッシュメモリによる誤動作を防止したCPUシステム、フラッシュメモリ保護回路およびそのフラッシュメモリ保護方法に関する。
【背景技術】
【0002】
一般的に、フラッシュメモリは、書込みがビット単位で可能であるが、消去が全ビットあるいはブロック単位(まとまったビット数の単位)で行う、電気的消去および書込可能な不揮発性メモリである。このフラッシュメモリによる誤動作を防止する方法を説明する前に,他の不揮発性メモリの誤動作防止方法について説明する。
【0003】
この不揮発性メモリの誤書込を防止した中央処理装置(CPU)システムとして、特許文献1に示されたシステムがある。このCPUシステムは、制御プログラムの記憶手段として、電気的消去および書込可能な不揮発性メモリ(EEPROM:Electrically Erasable and Programmable Read Only Memory)を用いている。このCPUシステムは、EEPROMのライトイネーブル信号WEにノイズが重畳したり、CPUが暴走した場合に、誤ってEEPROMの内容を書き換えてしまうことを防止している。
【0004】
図4はこのCPUシステムのブロック図である。このCPUシステムは、中央処理装置(CPU)1a、EEPROM3a、アドレスデコーダ6、誤書込防止回路7、リセット回路8から構成される。CPU1aとEEPROM3a間にデータバス11、アドレスバス12が接続される。
【0005】
このCPU1aにより指定されるEEPROM3aのアドレスに制御プログラムなどが書き込まれる。また、CPU1aは、16ビットのアドレス情報をアドレスバス12を介してEEPROM3aおよびアドレスデコーダ6に供給している。また、CPU1aは、8ビットの書込データD0〜D7をデータバス11を介してEEPROM3aに出力すると共に、1ビットの書込データD0を誤書込防止回路7に出力している。
【0006】
CPU1aがEEPROM3aのデータを書き換える場合には、16進法で表される初期アドレスを出力すると共に、書込データD0として論理ハイ(レベル)を出力して、EEPROM3aを書込可能な状態に設定する。その後、所定アドレスに書込データを書き込む。
【0007】
アドレスデコーダ6は、CPU1aからEEPROM3aを指定するアドレスが入力されると、チップセレクト信号14aを論理ロウに立ち下げる。またそれと同時に、EEPROM3aへの書込開始に入力される開始アドレスに対応してアドレスデコーダ6の書込許可ポートP1からの出力信号41を論理ロウに立ち下げる。誤書込防止回路7は、図に示すように、インバートNAND31,32およびラッチ回路33から構成される。インバートNAND31は、アドレスデコーダ6の書込許可ポートからの出力と書込要求信号との論理積をイネーブル信号としてラッチ回路33に出力する。
【0008】
ラッチ回路33は、イネーブル信号が論理ロウに立ち下がると、最下位データD0の出力を保持し、またその反転出力である状態制御信号をインバートNAND32に出力する。ここでインバートNAND32は、状態制御信号と書込要求信号との論理積を書込許可信号19aとしてEEPROM3aのライトイネーブル信号WEに入力する。
【0009】
ラッチ回路33は、最初論理ハイに保持されると書込不可能となるが、最下位データD0より出力される論理ロウを保持すると、EEPROM3aを書込可能状態に設定できる。また、誤書込防止回路7は、この書込可能状態で書込要求信号16aが論理ロウに立ち下がった場合にのみ書込データD0〜D7をEEPROM3aへの書込を許可する。また、リセット回路8は、CPU1a、EEPROM3aのリセット端子およびラッチ回路33のクリア端子にリセット信号42を供給し、CPU1a、EEPROM3aを初期化すると共に、ラッチ回路33の状態制御信号を論理ハイに立ち上げる。
【0010】
まず、電源が論理ハイに立ち上がると、ラッチ回路33からの状態制御信号が論理ハイとなり、EEPROM3aを書込不可能とする。CPU1aは、データバス11を介してデータをEEPROM3aに出力すると、書込要求信号16aを論理ロウに立ち下げ、誤書込防止回路7のインバートNAND31,32に出力する。この時、アドレスデコーダ6には、書込開始アドレスが入力されていないので、インバートNAND31の他端に入力される信号は論理ハイであり、ラッチ回路33から出力される状態制御信号も論理ハイのままである。
【0011】
これにより、インバートNAND32に論理ロウの書込要求信号16aが入力される場合にも状態制御信号が論理ハイであるので、EEPROM3aへの書込許可信号19aは論理ハイのままである。従って、CPU1aの誤動作により誤ってEEPROM3aのアドレスが指定され、書込要求信号16aが出力されたとしても、書込アドレスの前に書込開始アドレスが設定されていない場合には、EEPROM3aへの書込が禁止され、誤書き込みを回避することができる。
【0012】
一方、ラッチ回路33からの状態制御信号が論理ロウである書込許可期間の場合には、CPU1aに指定されたEEPROM3aのデータを書き換えることができる。すなわち、CPU1aの書込開始アドレスをアドレスデコーダ6に出力し、アドレスデコーダ6の書込許可ポートの信号を論理ロウに立ち下げ、ラッチ回路33に入力される最下位ビットデータD0を論理ロウに立ち下げる。この際、書込要求信号が論理ロウに立ち下ると、ラッチ回路33に入力されるイネーブル信号が論理ロウに立ち下ることにより、ラッチ回路33から出力される状態制御信号が論理ロウにラッチされて書き込み許可状態になる。
【0013】
この従来技術は、EEPROM3aへの誤書き込みを回避してはいるが、フラッシュメモリの問題を解決していない。フラッシュメモリは、バイト単位での書き込み制御が出来ず、データバス幅が16ビットのデバイスでもライトイネーブル(WE*)端子は1つである。そのため、フラッシュメモリのライトアクセスが行われた場合は、データバスに示される全てのデータを有効として扱うことになる。また、フラッシュメモリを制御するためのコマンドは、データバスのLSB側8ビットに示された値に従い、制御されることが一般的である。
【0014】
図5は、一般的なフラッシュメモリが配置されたCPUシステムの構成を示すブロック図である。このCPUシステムは、CPUのメモリ空間内に特定のコマンドシーケンスを有するフラッシュメモリが配置された構成である。このCPUシステムは、CPU1、メモリコントローラ2a、フラッシュメモリ3から構成され、CPU1とフラッシュメモリ3間にデータバス11、アドレスバス12が接続される。CPU1からバスアクセスの転送方向(リード/ライト)を示すリード/ライト信号13が、メモリコントローラ2aに接続される。
【0015】
メモリコントローラ2aは、チップイネーブル信号14、アウトプットイネーブル信号15又はライトイネーブル信号16の各ストローブ信号を生成し、チップイネーブル信号14、アウトプットイネーブル信号15、ライトイネーブル信号16はフラッシュメモリ3の各端子へ接続する。
【0016】
また、図6は、16ビットデータを16ビットメモリの偶数番地及び、奇数番地へ転送した場合のデータ位置を示す配置図である。この場合、フラッシュメモリ3のバス幅が16ビット(16ビットメモリ)であり、CPU1により実行されるバスアクセスのアドレスバス下位4ビット[A3−A0]が1番地を示し、16ビットデータのライトアクセスが実行された場合のタイミングチャートを図7に示す。
【0017】
CPU1からフラッシュメモリ3へのアクセスはメモリコントローラ2を介して行われる。この時、図7に示すように、CPU1が実行するバスアクセスのリード/ライト信号13及び、アドレスバス12の下位4ビット、メモリコントローラ2により生成されたフラッシュメモリのチップイネーブル信号14が転送アドレス監視部4へも入力される。メモリコントローラ2は、フラッシュメモリ3に対するバスアクセスを検出するとチップイネーブル信号14、アウトプットイネーブル信号15又はライトイネーブル信号16の各ストローブ信号を生成し、フラッシュメモリ3の各端子へ供給する。
【0018】
この構成において、CPU1の誤動作やソフトウェアによる不用意なアドレス算出などにより、フラッシュメモリ3に対してCPU1が実行するライトアクセスの指定アドレスにより出力データ配列が、フラッシュメモリ3のデータビット配列と一致しない場合がある。(フラッシュメモリ3のデータバス幅の境界が一致しない場合がある。)これは、フラッシュメモリ3のデータバス幅が16ビットであるため、その境界は0,2,4のように偶数番地となるが、1,3,5のような奇数番地へのアクセスが発生した場合にはミスアラインが発生することになる。
【0019】
例えば、図6に示す通り、転送したい16ビットデータをaabb(Hex)とした場合、aa(Hex)が16ビットメモリのLSB側、bb(Hex)が16ビットメモリのMSB側に相当するため、2回のライトアクセスが発生する。偶数番地である場合は、
上位8ビットにaa(Hex)が示され、下位8ビットに有効データbb(Hex)が示されるので、問題はない。しかし、奇数番地へのアクセスでは、1回目のライトアクセスではデータバスの上位8ビットに不定データ、下位8ビットに有効データであるaa(Hex)が示される。同様に、2回目のライトアクセスではデータバスの上位8ビットに有効データであるbb(Hex)、下位8ビットに不定データが示される。これらの場合にはミスアラインが発生する。
【0020】
【特許文献1】特開平4−274539号
【発明の開示】
【発明が解決しようとする課題】
【0021】
このようにCPUのメモリ空間内に特定のコマンドシーケンスを有するフラッシュメモリを用いた従来のCPUシステムは、図4に示すような誤書込防止回路を用いたとしてもフラッシュメモリのミスアライン問題は解決されない。すなわち、フラッシュメモリを用いた従来のCPUシステムには、次のような問題がある。
【0022】
その問題点は、CPUの誤動作やソフトウェアによる不用意なアドレス算出などにより、フラッシュメモリに対して前記CPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない場合に発生するミスアラインにより、ソフトウェアが意図せぬ不定なデータが書き込まれる恐れがあるということである。仮に、この不定なデータがフラッシュメモリの構造や能力情報を読み出すための特殊モードへ遷移させるコマンドと一致した場合には、以降のリードアクセスに対して構造や能力情報を示すデータが出力される。従って、本来出力されるべきフラッシュメモリへ格納されている有効なデータが出力されないことになる。
【0023】
例えば、フラッシュメモリにCPUの起動用プログラムが格納されている構成で、ミスアラインにより不定データが書き込まれ、特殊モードへ遷移してしまったとする。この場合には、CPUをリセットし、再起動を試みても起動用プログラムデータを読み出すことが出来ず、再起動も不可能な状態に陥る恐れがある。
【0024】
本発明の主な目的は、フラッシュメモリの誤った書換えや意図せぬ特殊モードへの遷移を未然に防止出来るようにしたフラッシュメモリを用いたCPUシステム、フラッシュメモリ保護回路およびそのフラッシュメモリ保護方法を提供することにある。
【課題を解決するための手段】
【0025】
本発明の構成は、フラッシュメモリと,中央処理装置(CPU)と、このCPUからの前記フラッシュメモリへのアクセス制御を行うメモリコントローラとを備えたCPUシステムにおいて、前記フラッシュメモリに対して前記CPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止するアクセス禁止手段を設け、前記指定アドレスのミスアラインによるアクセスを禁止したことを特徴とする。
【0026】
本発明において、アクセス禁止手段が、フラッシュメモリに対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを監視する転送アドレス監視手段と、この転送アドレス監視手段が前記一致しないアドレスを検出したとき前記フラッシュメモリへのアクセスを禁止するゲート手段とを備えることができ、また、転送アドレス監視手段が、フラッシュメモリに対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを設定する禁止条件設定部と、この禁止条件設定部のアドレスとCPUが実行するライトアクセスの指定アドレスとを所定タイミングで比較し一致しないアドレスを出力する条件比較部とを含むことができ、さらに、所定タイミングが、CPUが実行するライトアクセス時で、かつメモリコントローラからの出力がチップイネーブルである時であることができる。
【0027】
本発明の他の構成は、CPUからメモリコントローラを介してフラッシュメモリのアクセス制御が行われるフラッシュメモリ保護回路において、前記フラッシュメモリに対して前記CPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止するアクセス禁止手段を有することを特徴とする。
【0028】
本発明において、アクセス禁止手段が、フラッシュメモリに対して前記CPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを監視する転送アドレス監視手段と、この転送アドレス監視手段が前記一致しないアドレスを検出したとき前記フラッシュメモリへのアクセスを禁止するゲート手段とを備えることができ、また、転送アドレス監視手段が、フラッシュメモリのデータバス幅の境界ビットと一致しないアドレスを設定する禁止条件設定部と、この禁止条件設定部のアドレスとCPUが実行するライトアクセスの指定アドレスとを所定タイミングで比較し一致しないアドレスを出力する条件比較部とを含むことができ、さらに、転送アドレス監視手段が、禁止条件設定部の禁止条件と一致したライトアクセスが発生した時にエラーとしてCPUに出力するエラー生成部を含むことができる。
【0029】
本発明のさらに他の構成は、CPUからのフラッシュメモリへのアクセス制御がメモリコントローラを介して行われるCPUシステムのフラッシュメモリ保護方法において、前記フラッシュメモリに対して前記CPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止し、前記指定アドレスのミスアラインによるアクセスを禁止し、前記ミスアライン発生時の不正なライトアクセスを防止することを特徴とする。
【0030】
本発明において、バイト単位の書き込み制御が不可能なメモリ領域に対して、ミスアライン発生時に不正なライトアクセスを防止することができ、また、フラッシュメモリに対して前記CPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない禁止条件と一致したライトアクセス発生時にライトイネーブルをマスクし、前記ライトアクセスを無効とすることができ、さらに、フラッシュメモリのデータデータビットの配列と一致しない禁止条件と一致したライトアクセス発生時にCPUに対して、転送エラーが発生したことを通知することができる。
【発明の効果】
【0031】
以上説明したように、本発明によれば、フラッシュメモリに対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない場合のデータの書き込みを無効としているので、フラッシュメモリの誤った書換えや意図せぬ特殊モードへの遷移を未然に防止し、フラッシュメモリに格納されるデータの保護を容易に実現できるという効果がある。
【発明を実施するための最良の形態】
【0032】
次に図面により本発明の実施形態を説明する。図1は本発明の一実施形態のCPUシステムのブロック図である。この図1のように、本実施形態は、CPU1、メモリコントローラ2、フラッシュメモリ3、転送アドレス監視部4、および2入力ORゲート5から構成される。これらCPU1とフラッシュメモリ3との間にデータバス11、アドレスバス12が接続される。
【0033】
図1において、CPU1からフラッシュメモリ3へのアクセスはメモリコントローラ2を介して行われる。この時、CPU1が実行するバスアクセスの転送方向(リード/ライト)を示すリード/ライト信号13及び、アドレスバス12の下位4ビット、メモリコントローラ2により生成されたフラッシュメモリのチップイネーブル信号14が転送アドレス監視部4へも入力される。転送アドレス監視部4は、CPU1が実行するアクセスがライトアクセスであった場合、指定アドレスがフラッシュメモリ3のデータバス幅の境界と一致しているか否かを監視ている。この転送アドレス監視部4の出力が、一致していない場合にはWE*マスク信号18をハイレベルに遷移させる。このWE*マスク信号18は、ライトイネーブル信号16と共に2入力ORゲート5に入力され、2入力ORゲート5の出力は、フラッシュメモリ3へのライトイネーブル信号19として入力する。従って、ハイレベルに遷移したWE*マスク信号18により、ライトイネーブル信号19が無効となる。転送アドレス監視部4は、同時に、転送エラー信号17を生成し、フラッシュメモリ3に対するライトアクセスに異常が発生したことをCPU1に通知する。
【0034】
なお、転送アドレス監視部4は、フラッシュメモリ3のデータバス幅の境界と一致しないアドレスがアクセス禁止条件となる。例えば
・8ビット幅の場合、バイト単位のアドレス毎にデータバスの境界があるため、禁止条件無し。
・16ビット幅の場合、データ[A3−A0]の最下位ビットであるA0が”1”であるアドレス=1,3,5,7,9,B,D,F番地(奇数番地)が禁止条件となる。
・32ビット幅の場合、データ[A3−A0]の下位2ビットであるA1とA0が”00”以外である。アドレス=1,2,3,5,6,7,9,A,B,D,E,F番地が禁止条件となる。許可条件は0,4,8,C番地へのアクセスである。
【0035】
この様に本実施形態によれば、CPUのメモリ空間内に特定のコマンドシーケンスを有するフラッシュメモリが配置されたCPUシステムにおいて、フラッシュメモリの誤った書換えや意図せぬ特殊モードへの遷移を未然に防止し、フラッシュメモリに格納されるデータの保護を容易に実現することができる。
【0036】
その理由は、CPUの誤動作やソフトウェアによる不用意なアドレス算出などにより、フラッシュメモリに対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない場合を検出することが出来る。従って、メモリのデータバス幅の境界で一致しない場合に発生するミスアラインにより、ソフトウェアが意図せぬデータの書き込みを無効とするからである。
【実施例1】
【0037】
本発明の一実施例は図1と同様であり、CPUのメモリ空間内に特定のコマンドシーケンスを有するフラッシュメモリが配置されたCPUシステムである。また、転送アドレス監視部4の内部構成が図2のブロック図に示される。
【0038】
図1において、CPU1により実行されるバスアクセスの転送方向(リード/ライト)信号(R/W*)13及びアドレスバス12はメモリコントローラ2に入力される。メモリコントローラ2は、フラッシュメモリ3に対するバスアクセスを検出するとチップイネーブル信号(CE*)14、アウトプットイネーブル信号(OE*)15又はライトイネーブル信号(WE*)16の各ストローブ信号を生成する。これらチップイネーブル信号15、アウトプットイネーブル信号16はフラッシュメモリ3の各端子へ接続される。ライトイネーブル信号16は、2入力ORゲート5の一方に入力され、2入力ORゲート5の他方の入力には転送アドレス監視部4から出力されるWE*マスク信号が接続される。2入力ORゲート5の出力信号19がフラッシュメモリ3へ接続される。バスアクセスの転送方向(リード/ライト)信号13及び、アドレスバス12の下位4ビット、メモリコントローラ2により生成されたフラッシュメモリ3のチップイネーブル信号14は転送アドレス監視部4へも接続される。また、CPU1に対してバスアクセスの異常を通知する信号として、転送アドレス監視部4から出力される転送エラー信号17がCPU1に接続される。
【0039】
転送アドレス監視部4は、図2のように、条件比較部21、禁止条件設定部22、エラー生成部23から構成される。CPU1により出力されるバスアクセスの転送方向(リード/ライト)信号13及び、アドレスバス12の下位4ビット[A3−A0]、メモリコントローラ2により生成されたフラッシュメモリのチップイネーブル信号14は条件比較部21に接続され、条件比較部21には禁止条件設定部22に予め設定された条件も入力される。条件比較部21の比較結果は、WE*マスク信号として、2入力ORゲート5に入力されると同時に、エラー生成部23に通知される。エラー生成部23は、WE*マスク信号に従い、バスアクセスの異常が通知された場合には転送エラー信号17を生成し、CPU1へバスアクセスの異常を通知する。
【0040】
次に本発明の実施例の動作を説明する。図1、図2の構成において、フラッシュメモリ3のバス幅が16ビット(16ビットメモリ)であり、CPU1により実行されるバスアクセスのアドレスバス下位4ビット[A3−A0]が1番地を示し、16ビットデータのライトアクセスが実行された場合のタイミングチャートを図3に示す。
【0041】
図1において、CPU1がライトバスアクセスを実行した場合、ライトアクセスを示した転送方向(リード/ライト)信号13及び、アドレスバス12はメモリコントローラ2に入力される。メモリコントローラ2は、アドレスバス12に示された値がフラッシュメモリ3に割り当てられたアドレスであることを検出すると、チップイネーブル信号14及びライトイネーブル信号16を生成する。チップイネーブル信号16はフラッシュメモリ3のCE*端子へ接続され、ライトイネーブル信号16は、2入力ORゲート5の一方に入力される。この時、転送方向(リード/ライト)信号13及び、アドレスバス12の下位4ビット[A3−A0]、チップイネーブル信号16は転送アドレス監視部4へも入力される。
【0042】
図2及び図3において、転送アドレス監視部4に接続された転送方向(リード/ライト)信号13及びアドレスバス12の下位4ビット[A3−A0]、チップイネーブル信号16は条件比較部21に入力される。また、禁止条件設定部22は、バスアクセスの禁止条件として、CPU1が実行するフラッシュメモリ3に対するライトアクセスの指定アドレスが、フラッシュメモリ3のデータバス幅の境界と一致しない場合を予め設定している。それは、即ち、チップイネーブル信号16がアクティブであること、転送方向(リード/ライト)信号13がライトを示していること、アドレスバスの下位4ビット[A3−A0]が奇数を示していることを条件比較部21で比較される。条件比較部21の比較結果はWE*マスク信号18として、2入力ORゲート5の一方に入力されると同時に、エラー生成部23に通知される。
【0043】
図3において、フラッシュメモリ3のバス幅が16ビットであり、CPU1により実行されるライトバスアクセスのアドレスバス下位4ビット[A3−A0]が1番地を示し、16ビットデータのライトアクセスが実行された場合、禁止条件設定部22に設定されたバスアクセスの禁止条件と一致する。この場合には、WE*マスク信号18はハイレベルへ遷移する。2入力ORゲート5の一方であるWE*マスク信号18がハイレベルとなったことにより、2入力ORゲート5のもう一方の入力であるメモリコントローラ2出力のライトイネーブル信号16に因らず、2入力ORゲート5の出力であるフラッシュメモリ3への入力のライトイネーブル信号19はハイレベルが維持され、バスアクセスが禁止される。
【0044】
また、エラー生成部23は、WE*マスク信号18がハイレベルに遷移したことを受け、バスアクセスの異常が通知されたことを検出し、転送エラー信号17を生成する。この転送エラー信号17はCPU1へ入力され、CPU1が実行しているバスアクセスを転送エラーとして終了する。これにより、条件比較部21の比較結果は不一致となり、WE*マスク信号18は初期状態であるロウレベルに戻り、転送エラー信号17も解除される。
【0045】
なお、エラー生成部23はWE*マスク信号のハイ信号を検出すると、CPUのバスアクセスを終了させるための転送エラー信号(パルス)を生成する。ソフトウェアの作り次第なのでエラー処理については明記しないが、CPUはバスアクセスの異常終了によりALM又はERR表示や書き込みの再試行などエラー処理(数回の再試行でALM又はERR表示など)を起動することが可能となります。このエラー処理により、システム(バスアクセス)に異常が発生したことを操作者や上位装置などの外部に通知することができる。
【0046】
本実施例によれば、CPUのメモリ空間内に特定のコマンドシーケンスを有するフラッシュメモリが配置されたCPUシステムにおいて、フラッシュメモリの誤った書換えや意図せぬ特殊モードへの遷移を未然に防止し、フラッシュメモリに格納されるデータの保護を容易に実現することができる。
【産業上の利用可能性】
【0047】
本発明では、フラッシュメモリについて説明したが、バイト単位の書き込み制御が不可能なメモリ領域では同様な問題が想定される。そのため、フラッシュメモリのチップイネーブル信号に代わり、バイト単位の制御が不可能なメモリ領域、例えば、SDRAMやSRAMなどの選択を示すチップイネーブル信号を比較条件とすることにより、SDRAMやSRAMなどに適用することも考えられる。
【0048】
この場合にも、そのメモリ領域に対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、フラッシュメモリのデータビットの配列と一致しない場合に発生するミスアラインによるライトアクセスを無効とすることが可能となる。従って、誤った書換えを未然に防止することができる。
【図面の簡単な説明】
【0049】
【図1】本発明の第1の実施形態を説明するCPUシステムのブロック図である。
【図2】図1の転送アドレス監視部4を説明するブロック図である。
【図3】図1の動作を説明するタイミングチャートである。
【図4】従来例のEEPROMを用いたCPUシステムのブロック図である。
【図5】従来例のフラッシュメモリを用いたCPUシステムのブロック図である。
【図6】図5の動作を説明するデータ構成図である。
【図7】図5の動作を説明するタイミングチャートである。
【符号の説明】
【0050】
1 CPU
2,2a メモリコントローラ
3 フラッシュメモリ
3a EEPROM
4 転送アドレス監視部
5 ORゲート
6 アドレスデコーダ
7 誤書込防止回路
8 リセット回路
11 データバス
12 アドレスバス
13 転送方向信号
14 チップイネーブル信号
14a チップセレクト信号
15 アウトプットイネーブル信号
16,19 ライトネーブル信号
16a 書込要求信号
17 転送エラー信号
18 WE*マスク信号
21 条件比較部
22 禁止条件設定部
23 エラー生成部
31,32 インバートNAND
33 ラッチ回路
41 書込許可信号
42 リセット信号

【特許請求の範囲】
【請求項1】
フラッシュメモリと,中央処理装置(CPU)と、このCPUからの前記フラッシュメモリへのアクセス制御を行うメモリコントローラとを備えたCPUシステムにおいて、前記フラッシュメモリに対して前記CPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止するアクセス禁止手段を設け、前記指定アドレスのミスアラインによるアクセスを禁止したことを特徴とするフラッシュメモリを用いたCPUシステム。
【請求項2】
アクセス禁止手段が、フラッシュメモリに対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを監視する転送アドレス監視手段と、この転送アドレス監視手段が前記一致しないアドレスを検出したとき前記フラッシュメモリへのアクセスを禁止するゲート手段とを備える請求項1記載のフラッシュメモリを用いたCPUシステム。
【請求項3】
転送アドレス監視手段が、フラッシュメモリに対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを設定する禁止条件設定部と、この禁止条件設定部のアドレスと前記CPUが実行するライトアクセスの指定アドレスとを所定タイミングで比較し一致しないアドレスを出力する条件比較部とを含む請求項2記載のフラッシュメモリを用いたCPUシステム。
【請求項4】
所定タイミングが、CPUが実行するライトアクセス時で、かつメモリコントローラからの出力がチップイネーブルである時である請求項3または4記載のフラッシュメモリを用いたCPUシステム。
【請求項5】
転送アドレス監視手段が、禁止条件設定部の禁止条件と一致したライトアクセスが発生した時にエラーとしてCPUに出力するエラー生成部を含む請求項3または4記載のフラッシュメモリを用いたCPUシステム。
【請求項6】
CPUからメモリコントローラを介してフラッシュメモリのアクセス制御が行われるフラッシュメモリ保護回路において、前記フラッシュメモリに対して前記CPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止するアクセス禁止手段を有し、前記指定アドレスのミスアラインによるライトアクセスを禁止することを特徴とするフラッシュメモリ保護回路。
【請求項7】
アクセス禁止手段が、フラッシュメモリに対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを監視する転送アドレス監視手段と、この転送アドレス監視手段が前記一致しないアドレスを検出したとき前記フラッシュメモリへのアクセスを禁止するゲート手段とを備える請求項6記載のフラッシュメモリ保護回路。
【請求項8】
転送アドレス監視手段が、フラッシュメモリに対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを設定する禁止条件設定部と、この禁止条件設定部のアドレスとCPUが実行するライトアクセスの指定アドレスとを所定タイミングで比較し一致しないアドレスを出力する条件比較部とを含む請求項6記載のフラッシュメモリ保護回路。
【請求項9】
転送アドレス監視手段が、禁止条件設定部の禁止条件と一致したライトアクセスが発生した時にエラーとしてCPUに出力するエラー生成部を含む請求項6,7または8記載のフラッシュメモリ保護回路。
【請求項10】
CPUからのフラッシュメモリへのアクセス制御がメモリコントローラを介して行われるCPUシステムのフラッシュメモリ保護方法において、前記フラッシュメモリに対して前記CPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しないアドレスを禁止し、前記指定アドレスのミスアラインによるアクセスを禁止したことを特徴とするフラッシュメモリ保護方法。
【請求項11】
バイト単位の書き込み制御が不可能なメモリ領域に対して、ミスアライン発生時に不正なライトアクセスを防止する請求項10記載のフラッシュメモリ保護方法。
【請求項12】
フラッシュメモリに対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない禁止条件と一致したライトアクセス発生時にライトイネーブルをマスクし、前記ライトアクセスを無効とする請求項10または11記載のフラッシュメモリ保護方法。
【請求項13】
フラッシュメモリに対してCPUが実行するライトアクセスの指定アドレスにより出力されるデータ配列が、前記フラッシュメモリのデータビットの配列と一致しない禁止条件と一致したライトアクセス発生時に前記CPUに対して、転送エラーが発生したことを通知する請求項10,11または12記載のフラッシュメモリ保護方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2006−178867(P2006−178867A)
【公開日】平成18年7月6日(2006.7.6)
【国際特許分類】
【出願番号】特願2004−373628(P2004−373628)
【出願日】平成16年12月24日(2004.12.24)
【出願人】(390010179)埼玉日本電気株式会社 (1,228)
【Fターム(参考)】