(57)【要約】【課題】余分なハードウェアを設けることなく、同じ箇所にピン配置が同じでアクセス形態の異なるシリアルＥＥＰＲＯＭを差し替えるだけで、そのＥＥＰＲＯＭのアクセス形態の種類を自動的に判別し、制御プログラムをそのＥＥＰＲＯＭ用の制御プログラムに切り替えることのできるメモリ装置の制御方法を提供する。【解決手段】シリアルＥＥＰＲＯＭの各スレーブアドレスに対して１バイトアドレス用のランダムリードを試みる。スタートビットに続くスレーブアドレスの指定後のＳ３でアクノリッジ信号が返ってくればスレーブアドレスの有効を判定し、返ってこなければスレーブアドレスの無効を判定する。また、有効なスレーブアドレスに対して上記リード処理を継続し、スタートビットに続くスレーブアドレス指定後のＳ７でアクノリッジ信号が返ってくれば１バイトアドレスのＥＥＰＲＯＭ、返ってこなければ２バイトアドレスのＥＥＰＲＯＭとする。【選択図】　図１
2004021421.tif 000002
【特許請求の範囲】
【請求項１】
ピン配置が同じで互いにアクセス形態の種類が異なるシリアルＥＥＰＲＯＭを同じ箇所に差し替えて装着することが可能なメモリ装置に対して、装着された上記シリアルＥＥＰＲＯＭへのアクセスを制御するための制御プログラムを有効に設定するメモリ装置の制御方法であって、
上記メモリ装置に装着された上記シリアルＥＥＰＲＯＭの上記アクセス形態の種類を、上記シリアルＥＥＰＲＯＭに所定のアクセスを行って上記シリアルＥＥＰＲＯＭから得られる応答内容に基づいて判別し、
上記アクセス形態の種類の判別結果に従って、予め用意された上記制御プログラムを有効に設定することを特徴とするメモリ装置の制御方法。
【請求項２】
上記所定のアクセスは、上記シリアルＥＥＰＲＯＭのワードアドレスサイズを判別することにより上記アクセス形態の種類を判別することができるアクセスであることを特徴とする請求項１に記載のメモリ装置の制御方法。
【請求項３】
上記所定のアクセスにおいては、最も小さいワードアドレスサイズから順次ワードアドレスサイズが大きくなる順で、候補となる各上記アクセス形態の種類に対応する任意のワードアドレスでスレーブとしての上記シリアルＥＥＰＲＯＭへのリードを試み、上記シリアルＥＥＰＲＯＭからエラーが発生しない応答内容が得られるワードアドレスサイズに対応する上記アクセス形態の種類を正しい上記アクセス形態の種類と判定することを特徴とする請求項２に記載のメモリ装置の制御方法。
【請求項４】
スレーブとしての上記シリアルＥＥＰＲＯＭへのワードアドレス出力後のスタートコンディション出力に続くリード指定スレーブアドレス出力に対して、アクノリッジ信号が上記シリアルＥＥＰＲＯＭから所定時間以内に返らなければ上記エラーが発生したと判定することを特徴とする請求項３に記載のメモリ装置の制御方法。
【請求項５】
正しい上記アクセス形態の種類を判別した後に、ワードアドレスの有効ビット数を確認することを特徴とする請求項２ないし４のいずれかに記載のメモリ装置の制御方法。
【請求項６】
全スレーブアドレスについてワードアドレスサイズまたはワードアドレスの有効ビット数を判定し、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかの場合に上記シリアルＥＥＰＲＯＭの装着エラーと判定して報知することを特徴とする請求項２ないし５のいずれかに記載のメモリ制御方法。
【請求項７】
上記所定のアクセスは、スレーブアドレスの有効および無効を判別することにより上記アクセス形態の種類を判別することができるアクセスであることを特徴とする請求項１ないし６のいずれかに記載のメモリ装置の制御方法。
【請求項８】
上記シリアルＥＥＰＲＯＭの待機状態から行われるスタートコンディション出力に続くスレーブアドレス出力に対して、アドレス指定したスレーブからアクノリッジ信号が所定時間以内に返れば上記スレーブアドレスが有効であると判定し、上記所定時間以内に返らなければ上記スレーブアドレスが無効であると判定することを特徴とする請求項７に記載のメモリ装置の制御方法。
【請求項９】
上記メモリ装置の起動時に上記アクセス形態の種類の判別を行って判別結果を記憶させ、上記メモリ装置の使用時には上記判別結果に従って上記制御プログラムを有効に設定することを特徴とする請求項１ないし８のいずれかに記載のメモリ装置の制御方法。
【請求項１０】
請求項１ないし９のいずれかに記載のメモリ装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
請求項１０に記載のプログラムをコンピュータ読取可能に記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＥＥＰＲＯＭのアクセス形態の種類の判別に関するものである。
【０００２】
【従来の技術】
シリアルＥＥＰＲＯＭの制御方法は大きく分けて２種類あり、２線式タイプと３線式タイプとがある。以下、２線式によるシリアルＥＥＰＲＯＭの制御方法を簡単に説明する。
【０００３】
２線式によるシリアルＥＥＰＲＯＭの制御方法に使用されるインタフェースとしてＩ２Ｃ（Ｉｎｔｅｒ　ＩＣ　Ｃｏｍｍｕｎｉｃａｔｉｏｎ）バスがある。現在、Ｉ２Ｃバスに対応したシリアルＥＥＰＲＯＭは小型で基板実装面積をとらないという利点、単価が安いという利点がある反面、アドレスビットが８ビットであるため、Ｉ２Ｃバス上での最大接続数である８個のメモリを搭載しても最大メモリ空間は１６Ｋビットしかない。
【０００４】
シリアルＥＥＰＲＯＭとの通信においては、後述する図４に示すように、チップセレクト信号（Ａ０，Ａ１，Ａ２）がＴＲＵＥのときにシリアル同期用クロック（ＳＣＬ）に同期してインストラクション用コマンド、アドレス、データを連続で送ることになる。通常のシステム設計による通信形態では、ＣＳ（チップセレクト信号）、ＳＤＡ（データ信号）、ＳＣＬ（シリアルクロック信号）に対応して設けられているＩ／Ｏレジスタを操作して各信号のビット値を操作するか、もしくは、１本のレジスタにライト、リードなどのオペレーションコマンドとアドレス、さらにはデータの書き込みのときは書き込みデータを、レジスタにセットしてクロックに同期させて１ビットずつデータを出力している。
８ビット（＝以下１バイトとする）アドレスのＥＥＰＲＯＭの場合、伝送フォーマット（ＥＥＰＲＯＭにデータを書き込む場合）は図７（ｃ）のようになる。伝送においては、スタート・コンディションビットからストップ・コンディションビットまでが１つの伝送動作の単位となる。伝送開始後、スタート・コンディションに続いてスレーブアドレスとリード／ライトコマンドビットとで構成される８ビットデータがホストからＥＥＰＲＯＭに送信される。続く２バイト目がアドレス、３バイト目がデータとなる。
【０００５】
上述の通り、アドレスが１バイトの場合、Ｉ２Ｃバス上の最大メモリ空間は１６Ｋビットとなる。しかし、これでは容量不足になるケースが増えてきたため、アドレス・フィールドを２バイトにして１６Ｋを超える容量のＥＥＰＲＯＭが使われるようになってきた。
【０００６】
なお、ＥＥＰＲＯＭにはシリアルＥＥＰＲＯＭよりも容量が大きくてピン配置が異なるパラレルＥＥＰＲＯＭがある。特開平１０−３２０２６７には、開発設計の途中で容量不足になった場合に対処するため、最初はシリアルＥＥＰＲＯＭでメモリシステムを構成していたものを、途中でパラレルＥＥＰＲＯＭで構成するように切り替えるようにする際、切り替え前と切り替え後とで同一のソフトにより制御可能とするメモリ制御装置および方法が提案されている。
【０００７】
これに対して、１バイトアドレスのシリアルＥＥＰＲＯＭと２バイトアドレスのシリアルＥＥＰＲＯＭとは、ピン配置が全く同じである。従って、メモリシステムの設計上、１バイトアドレスのシリアルＥＥＰＲＯＭと２バイトアドレスのシリアルＥＥＰＲＯＭとは、互いに同じ実装箇所やソケットに対して差し替えることができる。しかし、１バイトアドレスのＥＥＰＲＯＭと２バイトアドレスのＥＥＰＲＯＭとでは通信タイミングが異なるため、互いに同じ実装箇所やソケットに対して差し替えを行って両者の制御切り替えを行いたい場合、システム設計後に対処するのは困難となる。例えば、設計段階で１バイトアドレスのＥＥＰＲＯＭでは容量不足が発覚して、２バイトアドレスのＥＥＰＲＯＭに変更を要する場合でも、再度２バイトのリード、ライト処理方法を設計しなければならなかった。
【０００８】
従って、両タイプのシリアルＥＥＰＲＯＭの一方から他方へ使用を切り替える際に、両者のそれぞれを制御するプログラムを切り替える行程として、従来では、以下のようなことが考えられる。
（ａ）特開平１０−３２０２６７号公報のように、両タイプのシリアルＥＥＰＲＯＭをハードウェアの相違から区別することができるように、Ｉ２Ｃバスを１バイトアドレス用と２バイトアドレス用とにそれぞれ用意して、ＥＥＰＲＯＭがいずれに装着されているかを判定し、判定結果に従ってプログラムを切り替える。
（ｂ）ＥＥＰＲＯＭを差し替えたことを人が判定して、タイプに応じたプログラムを人が切り替える、または入れ替える。
【０００９】
【発明が解決しようとする課題】
しかしながら、上記（ａ）の方法では、１バイトアドレスのＥＥＰＲＯＭと２バイトアドレスのＥＥＰＲＯＭとが同じ実装箇所やソケットに対して差し替えて使用することができるにも関わらず、両タイプのそれぞれに専用のＩ２Ｃバスを備える必要がある。従って、余分なハードウェアを追加しなければならないという問題点がある。
【００１０】
また、上記（ｂ）の方法では、ＥＥＰＲＯＭを差し替える際に、人がＢＩＯＳプログラムを入れ替えたり、ＤＩＰスイッチを予め設けて人が切り替えたりする必要があって容易な切り替えができないという問題点がある。
【００１１】
本発明は、上記従来の問題点に鑑みなされたものであり、その目的は、余分なハードウェアを設けることなく、同じ箇所にピン配置が同じでアクセス形態の異なるシリアルＥＥＰＲＯＭを差し替えるだけで、そのＥＥＰＲＯＭのアクセス形態の種類を自動的に判別し、制御プログラムをそのＥＥＰＲＯＭ用の制御プログラムに切り替えることのできるメモリ装置の制御方法、およびそのプログラム、ならびに記録媒体を提供することにある。
【００１２】
【課題を解決するための手段】
本発明のメモリ装置の制御方法は、上記課題を解決するために、ピン配置が同じで互いにアクセス形態の種類が異なるシリアルＥＥＰＲＯＭを同じ箇所に差し替えて装着することが可能なメモリ装置に対して、装着された上記シリアルＥＥＰＲＯＭへのアクセスを制御するための制御プログラムを有効に設定するメモリ装置の制御方法であって、上記メモリ装置に装着された上記シリアルＥＥＰＲＯＭの上記アクセス形態の種類を、上記シリアルＥＥＰＲＯＭに所定のアクセスを行って上記シリアルＥＥＰＲＯＭから得られる応答内容に基づいて判別し、上記アクセス形態の種類の判別結果に従って、予め用意された上記制御プログラムを有効に設定することを特徴としている。
【００１３】
上記の発明によれば、ピン配置が同じでアクセス形態の種類が異なるシリアルＥＥＰＲＯＭが同じ箇所に装着されていても、装着されたシリアルＥＥＰＲＯＭに所定のアクセスを行ってどのような応答内容が得られるかによって、アクセス形態の種類を判別する。そして、その判別結果に従って、装着されたシリアルＥＥＰＲＯＭへのアクセスを制御するために予め用意された制御プログラムを有効に設定する。
【００１４】
従って、余分なハードウェアを設けることなく、同じ箇所にピン配置が同じでアクセス形態の異なるシリアルＥＥＰＲＯＭを差し替えるだけで、そのＥＥＰＲＯＭのアクセス形態の種類を自動的に判別し、制御プログラムをそのＥＥＰＲＯＭ用の制御プログラムに切り替えることのできるメモリ装置の制御方法を提供することができる。
【００１５】
また、上記のようにアクセス形態の種類の判別を行って、その判別結果に基づいてアクセス条件を設定するようにすれば、メモリ装置の製品出荷時にアクセス条件を固定する必要がないので、シリアルＥＥＰＲＯＭの制御プログラムを汎用性のある仕様にすることができ、コストダウンにもつながる。さらに、制御プログラムの設定ミスなどによる不具合が発生する危険性もなくなる。さらに、将来的にシリアルＥＥＰＲＯＭのメモリ拡張が行われても、新たにソフトウェアの対応を行う必要がなくなる。
【００１６】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、上記所定のアクセスは、上記シリアルＥＥＰＲＯＭのワードアドレスサイズを判別することにより上記アクセス形態の種類を判別することができるアクセスであることを特徴としている。
【００１７】
上記の発明によれば、所定のアクセスによってシリアルＥＥＰＲＯＭのワードアドレスサイズを判別することによりアクセス形態の種類を判別するので、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になる。
【００１８】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、　上記所定のアクセスにおいては、最も小さいワードアドレスサイズから順次ワードアドレスサイズが大きくなる順で、候補となる各上記アクセス形態の種類に対応する任意のワードアドレスでスレーブとしての上記シリアルＥＥＰＲＯＭへのリードを試み、上記シリアルＥＥＰＲＯＭからエラーが発生しない応答内容が得られるワードアドレスサイズに対応する上記アクセス形態の種類を正しい上記アクセス形態の種類と判定することを特徴としている。
【００１９】
上記の発明によれば、ワードアドレスサイズの小さい順にスレーブであるシリアルＥＥＰＲＯＭへのリードを試みて、エラーが発生しないときのワードアドレスサイズに対応するアクセス形態の種類を、装着されたシリアルＥＥＰＲＯＭのアクセス形態の種類とする。エラーが発生するのは、スレーブであるシリアルＥＥＰＲＯＭの本来のワードアドレスサイズより小さいサイズのワードアドレスしか出力されなかった場合である。
【００２０】
従って、正しいアクセス形態の種類を判別する途上で、正しいアクセス形態の種類に対応するワードアドレスサイズよりも大きなワードアドレスサイズに対応するアクセス形態の種類によるアクセスによって、既に書き込まれているデータが上書きされてしまうことがなく、シリアルＥＥＰＲＯＭのデータが保護された状態でアクセス形態の種類を判別することができる。
【００２１】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、スレーブとしての上記シリアルＥＥＰＲＯＭへのワードアドレス出力後のスタートコンディション出力に続くリード指定スレーブアドレス出力に対して、アクノリッジ信号が上記シリアルＥＥＰＲＯＭから所定時間以内に返らなければ上記エラーが発生したと判定することを特徴としている。
【００２２】
上記の発明によれば、アクノリッジ信号の所定時間以内での有無によりエラーの発生の有無を判定するので、エラーの発生の有無を容易に判定することができる。
【００２３】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、正しい上記アクセス形態の種類を判別した後に、ワードアドレスの有効ビット数を確認することを特徴としている。
【００２４】
上記の発明によれば、正しいアクセス形態の種類を判別した後に有効なビット数を確認するので、シリアルＥＥＰＲＯＭの容量が判明し、シリアルＥＥＰＲＯＭを利用する際に正しくアクセスを行うことができる。
【００２５】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、全スレーブアドレスについてワードアドレスサイズまたはワードアドレスの有効ビット数を判定し、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかの場合に上記シリアルＥＥＰＲＯＭの装着エラーと判定して報知することを特徴としている。
【００２６】
上記の発明によれば、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかすればシリアルＥＥＰＲＯＭの装着エラーであるので、全スレーブアドレスについてのワードアドレスサイズまたはワードアドレスの有効ビット数の判定からこの装着エラーを判定して報知することにより、誤って装着されたシリアルＥＥＰＲＯＭの交換を促すことができる。
【００２７】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、上記所定のアクセスは、スレーブアドレスの有効および無効を判別することにより上記アクセス形態の種類を判別することができるアクセスであることを特徴としている。
【００２８】
上記の発明によれば、シリアルＥＥＰＲＯＭの差し替えによってワードアドレスで参照できるアドレス空間、すなわち有効なスレーブアドレスも変化するため、所定のアクセスによってスレーブアドレスの有効および無効を判別することによりアクセス形態の種類を判別する。すなわち、指定したスレーブアドレスに対応するデバイスまたはページの存在の有無を判別することにより、アクセス形態の種類を判別する。従って、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になる。
【００２９】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、上記シリアルＥＥＰＲＯＭの待機状態から行われるスタートコンディション出力に続くスレーブアドレス出力に対して、アドレス指定したスレーブからアクノリッジ信号が所定時間以内に返れば上記スレーブアドレスが有効であると判定し、上記所定時間以内に返らなければ上記スレーブアドレスが無効であると判定することを特徴としている。
【００３０】
上記の発明によれば、アクノリッジ信号の所定時間以内における有無によってスレーブアドレスの有効および無効を判別するので、有効および無効の判別を容易に行うことができる。
【００３１】
さらに本発明のメモリ装置の制御方法は、上記課題を解決するために、上記メモリ装置の起動時に上記アクセス形態の種類の判別を行って判別結果を記憶させ、上記メモリ装置の使用時には上記判別結果に従って上記制御プログラムを有効に設定することを特徴としている。
【００３２】
上記の発明によれば、メモリ装置の起動時に得たシリアルＥＥＰＲＯＭのアクセス形態の種類の判別結果に従って制御プログラムを有効にするので、シリアルＥＥＰＲＯＭにアクセスを行うたびにアクセス形態の種類を判別せずに済む。
【００３３】
また、本発明のプログラムは、上記課題を解決するために、前記のいずれかのメモリ装置の制御方法をコンピュータに実行させることを特徴としている。
【００３４】
上記の発明によれば、メモリ装置の制御方法を汎用性の高いものとすることができる。
【００３５】
また、本発明の記録媒体は、上記課題を解決するために、上記プログラムをコンピュータ読取可能に記録したことを特徴としている。
【００３６】
上記の発明によれば、メモリ装置の制御方法を実行させるプログラムをコンピュータに供給しやすくなる。
【００３７】
【発明の実施の形態】
本発明の実施の形態について、図１ないし図１１を用いて説明すれば、以下の通りである。
【００３８】
図２に、本実施の形態に係るメモリ装置を含むコンピュータシステム１の構成を示す。コンピュータシステム１は、ＣＰＵ２、メモリ装置３、フラッシュＲＯＭ４、ＲＡＭ５、およびＡＳＩＣ６を備えている。
【００３９】
ＣＰＵ２はコンピュータシステム１の全体を制御する。メモリ装置３はＩ２Ｃバスインタフェース３ａ、Ｉ２Ｃバス３ｂ、およびＥＥＰＲＯＭ３ｃを備えている。Ｉ２Ｃバスインタフェース３ａはマスタとして、Ｉ２Ｃバス３ｂに接続されたＩＣチップであるスレーブとしてのＥＥＰＲＯＭ３ｃに対する通信を制御する。（以後、Ｉ２Ｃバスインタフェース３ａをマスタ３ａと称する）フラッシュＲＯＭ４、ＲＡＭ５、およびＡＳＩＣ６はコンピュータシステム１の動作に必要なＩＣあるいはＬＳＩとして適宜設けられたものである。特に、ＲＡＭ５は後述するようにＥＥＰＲＯＭ３ｃのアクセス形態の種類を判別した結果を、メモリ装置３の動作時に蓄えるようになっている。
【００４０】
図３に、ＥＥＰＲＯＭ３ｃのチップ形態の外観図を示す。ＥＥＰＲＯＭ３ｃはＩ２Ｃバス３ｂのような２線式のバスに対応したシリアルＥＥＰＲＯＭであり、８本のピンを備えている。ピンＡ０・Ａ１・Ａ２はそれぞれＥＥＰＲＯＭ３ｃのデバイスアドレスを決定するため各ビット値に応じた接続が行われるピン、ピンＳＤＡはシリアルデータの入出力が行われるピン、ピンＳＣＬはシリアルクロックが入力されるピン、ピンＷＰはライトプロテクト用の信号が入力されるピン、ピンＶＣＣは１．８Ｖ〜６Ｖの範囲の電源電圧に接続されるピン、ピンＶＳＳはＧＮＤに接続されるピンである。
【００４１】
図４に、上記ＥＥＰＲＯＭ３ｃの内部構成を示す。前記ピンの名称で各ピンに入力される信号を表すものとすれば、信号ＳＣＬおよび信号Ａ０・Ａ１・Ａ２はステートカウンタ／スレーブアドレス比較回路３１に入力される。ステートカウンタ／スレーブアドレス比較回路３１はクロック情報をコントロール回路３２に送出する。また、信号Ａ０・Ａ１・Ａ２は前述したように固定であり、コントロール回路３２から送られてくる信号ＳＤＡに含まれるデバイスアドレスおよびページアドレスを含むスレーブアドレスが内部に備えたスレーブアドレスと一致するか否かを、信号Ａ０・Ａ１・Ａ２を用いた比較演算を行って確認する。コントロール回路３２はスタート／ストップ回路３３によって信号ＳＤＡのスタートビット、ストップビット、スレーブアドレス、ワードアドレスの各ビット情報を信号ＳＣＬのタイミングで取り込ませ、また、スタート／ストップ回路３３からスタートビットやストップビットの入力情報を得て、データリードやデータライトを制御する。
【００４２】
スタート／ストップ回路３３によって取り込まれたワードアドレスはワードアドレスバッファ３４に送られ、ワードアドレスバッファ３４はワードアドレスをロウとコラムとに分割し、Ｘデコーダ３５がロウのデコードを行い、コラムデコーダ３６がコラムのデコードを行う。また、信号ＷＰはコントロール回路３２に入力されるようになっており、ライトプロテクトがかかっていないときは、データライトにおいて信号ＳＤＡのデータはデータレジスタ３７に蓄えられ、データレジスタ３７はワードアドレスに従ってデータをＥＥＰＲＯＭセルアレイ３９に書き込む。同図では、一例としてＥＥＰＲＯＭセルアレイ３９を１２８×２５６または２５６×２５６のセルアレイとして図示している。また、書き込みに際してはコントロール回路３２の制御により高電圧／タイミングコントロール回路３８が高電圧を発生させてデータレジスタ３７に送出するようになっている。
【００４３】
また、データリードにおいては、コラムデコーダ３６がデータの読み出しバッファとなり、コラムデコーダ３６は取り込んだデータをセンスアンプ／シフトレジスタ４０へ送出し、センスアンプ／シフトレジスタ４０はデータの増幅とシリアル化とを行って出力回路４１に送出する。出力回路４１はこのような読み出されたデータや、マスタとの通信応答に用いられるアクノリッジ信号をコントロール回路３２の制御によってＩ２Ｃバス３ｂへ出力する。出力回路４１の出力部はオープン・ドレイン出力になっており、外部に設けられた抵抗Ｒによりプルアップされるようになっている。
【００４４】
次に、図５を用いて、メモリ装置３に１バイトアドレスのＥＥＰＲＯＭ３ｃを装着した場合のスレーブアドレスについて説明する。
【００４５】
図５ではメモリ装置３に１バイトアドレスのＥＥＰＲＯＭ３ｃを２つ装着する場合を示しており、それぞれをＥＥＰＲＯＭ３１ｃ・３２ｃとしている。ＥＥＰＲＯＭ３１ｃについてはピンＡ０・Ａ１・Ａ２はいずれもＧＮＤに接続されており、ＥＥＰＲＯＭ３２ｃについてはピンＡ０・Ａ１はいずれもＧＮＤに接続されており、ピンＡ２は電源Ｖｄｄに接続されている。これにより、ＥＥＰＲＯＭ３１ｃのデバイスアドレスは“０”、ＥＥＰＲＯＭ３２ｃのデバイスアドレスは“４”となる。
【００４６】
そして、ＥＥＰＲＯＭ３１ｃ・３２ｃは内部にそれぞれ、２５６×８ビットの容量を１ページ分として４ページ備えている。各ページアドレスは（Ｐ１，Ｐ０）＝‘００’、‘０１’、‘１０’、‘１１’となる。信号ＳＤＡでスレーブアドレスを指定するときには、Ａ２のビットと、Ａ１・Ａ０のビットの代わりとしてのＰ１，Ｐ０とを指定する。すなわち、信号ＳＤＡ上でのデバイスアドレスを構成するＡ１・Ａ０は無効となる。これにより、１バイトアドレスのＥＥＰＲＯＭ３ｃを装着したメモリ装置３ではスレーブアドレスは０００〜１１１の８通りあることになる。１つのＩ２Ｃバスではスレーブアドレスは８通りまでなので、このバスには同種のＥＥＰＲＯＭをこれ以上増設できないということになる。
【００４７】
次に、図６を用いて、メモリ装置３に２バイトアドレスのＥＥＰＲＯＭ３ｃを装着した場合のスレーブアドレスについて説明する。
【００４８】
図６では図５の１バイトアドレスのＥＥＰＲＯＭを２バイトアドレスのＥＥＰＲＯＭに置き換えた場合を示しており、それぞれをＥＥＰＲＯＭ３３ｃ・３４ｃとしている。すなわち、１バイトアドレスのＥＥＰＲＯＭ３ｃと２バイトアドレスのＥＥＰＲＯＭ３ｃとは互いに同じ箇所に差し替えて装着することができるようになっている。ＥＥＰＲＯＭ３３ｃについてはピンＡ０・Ａ１・Ａ２はいずれもＧＮＤに接続されており、ＥＥＰＲＯＭ３４ｃについてはピンＡ０・Ａ１はいずれもＧＮＤに接続されており、ピンＡ２は電源Ｖｄｄに接続されている。これにより、ＥＥＰＲＯＭ３３ｃのデバイスアドレスは“０”、ＥＥＰＲＯＭ３４ｃのデバイスアドレスは“４”となる。
【００４９】
そして、ＥＥＰＲＯＭ３３ｃ・３４ｃは内部にそれぞれ、２ｋ（または４ｋ，８ｋ）×８ビットの容量を備えていてページは備えていない。従って、信号ＳＤＡでスレーブアドレスを指定するときには、Ａ２・Ａ１・Ａ０の各ビットを指定する。これにより、２バイトアドレスのＥＥＰＲＯＭ３ｃを装着したメモリ装置３ではスレーブアドレスは１００と０００との２通りあることになり、その他のスレーブアドレスは無効となる。
【００５０】
次に、図７に、上記のメモリ装置３データリードおよびデータライトにおける通信手順を示す。
【００５１】
図７（ａ）は、２バイトアドレスのＥＥＰＲＯＭ３ｃに対するランダムリードの手順を示す。マスタ３ａから出力された信号ＳＤＡでは、スタートビットに続いて１・０・１・０の後にスレーブアドレスがＡ２・Ａ１・Ａ０の形態で指定され、その後にライトコマンドが続く。このスレーブアドレスを確認したＥＥＰＲＯＭ３ｃはアクノリッジ信号をマスタ３ａに返すと、次の１バイトでワードアドレスの上位ビット側の情報（１ｓｔワードアドレス）を取り込んでアクノリッジ信号をマスタ３ａに返す。そして次の１バイトでワードアドレスの下位ビット側の情報（２ｎｄワードアドレス）を取り込んでアクノリッジ信号をマスタ３ａに返す。すると、マスタ３ａからスタートビットとそれに続くスレーブアドレスとリードコマンドとが出力される。アクノリッジ信号をマスタ３ａに返すと、ＥＥＰＲＯＭ３ｃは読み出した８ビットのデータをマスタ３ａに向けて出力し、ノーアクノリッジとなった後に、マスタ３ａはストップビットを出力してランダムリードが終了する。
【００５２】
図７（ｂ）は、１バイトアドレスのＥＥＰＲＯＭ３ｃに対するランダムリードの手順を示す。マスタ３ａから出力された信号ＳＤＡでは、スタートビットに続いて１・０・１・０の後にスレーブアドレスがＡ２・Ｐ１・Ｐ０の形態で指定され、その後にライトコマンドが続く。このスレーブアドレスを確認したＥＥＰＲＯＭ３ｃはアクノリッジ信号をマスタ３ａに返すと、次の１バイトでワードアドレスの情報を取り込んでアクノリッジ信号をマスタ３ａに返す。すると、マスタ３ａからスタートビットとそれに続くスレーブアドレスとリードコマンドとが出力される。アクノリッジ信号をマスタ３ａに返すと、ＥＥＰＲＯＭ３ｃは読み出した８ビットのデータをマスタ３ａに向けて出力し、ノーアクノリッジとなった後に、マスタ３ａはストップビットを出力してランダムリードが終了する。
【００５３】
図７（ｃ）は、１バイトアドレスのＥＥＰＲＯＭ３ｃに対するバイトライトの手順を示す。マスタ３ａから出力された信号ＳＤＡでは、スタートビットに続いて１・０・１・０の後にスレーブアドレスがＡ２・Ｐ１・Ｐ０の形態で指定され、その後にライトコマンドが続く。このスレーブアドレスを確認したＥＥＰＲＯＭ３ｃはアクノリッジ信号をマスタ３ａに返すと、次の１バイトでワードアドレスの情報を取り込んでアクノリッジ信号をマスタ３ａに返す。すると、ＥＥＰＲＯＭ３１ｃはマスタ３ａから出力されたデータを書き込み、アクノリッジ信号をマスタ３ａに返すと、マスタ３ａがストップビットを出力してバイトライトが終了する。
【００５４】
もし、１バイトアドレスのＥＥＰＲＯＭに対して図７（ａ）の２バイトアドレス用のランダムリードを行うと、２ｎｄワードアドレスの送信までが図７（ｃ）の１バイトアドレス用のバイトライトと同じ手順になるため、記憶されているデータが書き替えられるおそれがある。ＥＥＰＲＯＭが１バイトアドレスか２バイトアドレスか判定する場合には、このような意図しないデータの書き込みが起こらないようにする必要がある。
【００５５】
次に、図１を用いて、メモリ装置３に装着されているＥＥＰＲＯＭ３ｃのアクセス形態の種類として、１バイトアドレスであるか２バイトアドレスであるかを判別する方法について説明する。
【００５６】
まず、スレーブアドレスのループで、取り得る全てのスレーブアドレス（０００〜１１１の８通り）に対して、１バイトアドレスのＥＥＰＲＯＭ３ｃに対するランダムリードを試みる。このループでは、マスタ３ａはまずＳ１でスタートビットの出力を行うと、Ｓ２で８通りのスレーブアドレスのいずれかをライトコマンドを指定した状態で出力する。Ｓ３でアクノリッジ信号が返ってくればＳ４へ進み、アクノリッジ信号が返ってこなければＳ１１へ進む。アクノリッジ信号が返ってくるのは、例えば図５の場合には全てのスレーブアドレスに対してであり、図６の場合にはスレーブアドレスが‘０’と‘４’とに対してである。これにより、どのスレーブアドレスに対応するＥＥＰＲＯＭが存在するかが判る。スレーブアドレスに応答するＥＥＰＲＯＭがなければＳ１１へ分岐して、Ｓ４以降の１バイトアドレスか２バイトアドレスかの判定処理をスキップすることになる。
【００５７】
Ｓ４では１バイト分のワードアドレスを任意に出力してアクノリッジ信号が返ってくるのを確認する。Ｓ５でスタートビットを出力し、Ｓ６でスレーブアドレスをリードコマンドを指定した状態で出力する。続くＳ７で、アクノリッジ信号が返ってくればＳ８へ進み、アクノリッジ信号が返ってこなければＳ１３へ進む。Ｓ７でアクノリッジ信号が返ってくるのはＥＥＰＲＯＭ３ｃが１バイトアドレスのものである場合であり、２バイトアドレスのものである場合にはワードアドレスの下位ビット側に対して上記スタートアドレスとスレーブアドレスとが不適切な情報となるので、アクノリッジ信号は返ってこない。従って、このステップでアクノリッジ信号が返ってくるスレーブは１バイトアドレスのＥＥＰＲＯＭ３ｃであり、アクノリッジ信号が返ってこないスレーブは１バイトアドレスのＥＥＰＲＯＭ３ｃでないことが分かる。
【００５８】
Ｓ８では、継続してデータリードを行い、ノーアクノリッジとなったらＳ９へ進んでストップビットを出力して一定時間待つ。これにより、Ｓ１０ではＥＥＰＲＯＭ３ｃが１バイトアドレスであることを判別し、図２のＲＡＭ５にＥＥＰＲＯＭ３ｃが１バイトアドレスであることを設定すれば、１つのスレーブアドレスに対する判定が終了する。
【００５９】
一方、Ｓ３から分岐したＳ１１では、指定したスレーブアドレスが無効であることを設定し、続くＳ１２で一定時間待てば、１つのスレーブアドレスに対する判定が終了する。
【００６０】
また、Ｓ７から分岐したＳ１３以降では、２バイトアドレスのＥＥＰＲＯＭ３ｃに対するランダムリードを試みる。Ｓ１３で一定時間待った後、Ｓ１４でスタートビットを出力し、Ｓ１５でスレーブアドレスをライトコマンドを指定した状態で出力し、アクノリッジ信号が返ってくるのを確認する。Ｓ１６では１バイト分を用いてワードアドレスの上位ビット側の出力を行ってアクノリッジ信号が返ってくるのを確認し、Ｓ１７では１バイト分を用いてワードアドレスの下位ビット側の出力を行ってアクノリッジ信号が返ってくるのを確認する。そして、Ｓ１８でスタートビットを出力し、Ｓ１９でスレーブアドレスをリードコマンドを指定した状態で出力する。続くＳ２０で、アクノリッジ信号が返ってくればＳ２１へ進み、アクノリッジ信号が返ってこなければＳ２６へ進む。
【００６１】
Ｓ２１ではデータリードを行ってノーアクノリッジとなったら、Ｓ２２でストップビットを出力して場合によっては一定時間待つ。これにより、Ｓ２３ではＥＥＰＲＯＭ３ｃが２バイトアドレスであることを判別し、図２のＲＡＭ５にＥＥＰＲＯＭ３ｃが２バイトアドレスであることを設定する。そして、Ｓ２４でワードアドレスを表すビットにおける有効ビット数を確認し、Ｓ２５で有効ビット数をＲＡＭ５に設定する。Ｓ２４については後述する。これにより、１つのスレーブアドレスに対する判定が終了する。一方、Ｓ２０から分岐したＳ２６ではこのメモリ装置３でアクセス形態の種類の候補となっている１バイトアドレスおよび２バイトアドレスのいずれでもないＥＥＰＲＯＭ３ｃ（例えば故障したＥＥＰＲＯＭ）が装着されているとして、ワードアドレスサイズが判定不能であることをＲＡＭ５に設定する。Ｓ２６の次にはＳ１２へ進む。いずれにしても、このスレーブアドレスは使用できないので、Ｓ２６はＳ１１に統合してもよい。
【００６２】
こうして８通りのスレーブアドレスの全てについて、上記のようなステップを繰り返し行う。このループの次にはＳ２７へ進み、有効なスレーブアドレスのスレーブの容量の合計が、メモリ装置３に対して必要であると定めた容量に対して不足しているか否かを判定する。容量不足でなければＳ２８へ進み、容量不足であればＳ３０へ進んでＥＥＰＲＯＭ３ｃの装着エラーであると判定する。Ｓ２８では、１バイトアドレスのＥＥＰＲＯＭ３ｃと２バイトアドレスのＥＥＰＲＯＭ３ｃとが混在しているか否かを判定する。混在していなければＳ２９へ進み、混在していればＳ３０へ進んでＥＥＰＲＯＭ３ｃの装着エラーであると判定する。Ｓ２９ではＥＥＰＲＯＭ３ｃの装着は全て正常であると判定する。
【００６３】
このようなワードアドレスサイズの判別はメモリ装置３の起動時ごと、すなわちコンピュータシステム１の起動時ごとに行われる。図８に、コンピュータシステム１の起動時におけるワードアドレスサイズの判別のフローを示す。起動したならば、Ｓ４１ではメモリ装置３にとって必用な記憶容量を指定する。Ｓ４２では、上述した図１のフローを行ってＥＥＰＲＯＭ３ｃの構成を判定する。Ｓ４３ではＳ４２の結果にエラーがあるか否かを、ＲＡＭ５への設定結果から判定し、エラーがなければそのままメモリ装置３の通常処理に移行し、エラーがあればＳ４４へ進んでエラー表示を行い、メモリ装置３の使用を停止するようにする。
【００６４】
また、図９に、図８の通常処理におけるリード処理のフローを示す。
【００６５】
Ｓ５１でデータを読み出すスレーブアドレスを算出し、Ｓ５２でワードアドレスサイズが１バイトであるか２バイトであるかを、ＲＡＭ５の設定から判断する。１バイトであればＳ５３へ進んで１バイトアドレスのＥＥＰＲＯＭ３ｃに対するリード処理の制御プログラムを設定してリード処理を行う。２バイトであればＳ５４へ進んで２バイトアドレスのＥＥＰＲＯＭ３ｃに対するリード処理の制御プログラムを設定してリード処理を行う。
【００６６】
また、図１０に、図８の通常処理におけるライト処理のフローを示す。
【００６７】
Ｓ６１でデータを書き込むスレーブアドレスを算出し、Ｓ６２でワードアドレスサイズが１バイトであるか２バイトであるかを、ＲＡＭ５の設定から判断する。１バイトであればＳ６３へ進んで１バイトアドレスのＥＥＰＲＯＭ３ｃに対するライト処理の制御プログラムを設定してライト処理を行う。２バイトであればＳ６４へ進んで２バイトアドレスのＥＥＰＲＯＭ３ｃに対するライト処理の制御プログラムを設定してライト処理を行う。
【００６８】
次に、図１のフローチャートのＳ２４で行うワードアドレスの有効ビット数の確認処理について説明する。
【００６９】
ワードアドレスの有効ビット数を確認するには、まず、そのスレーブがワードアドレスに使用することのできるビットを用いたときに取り得る最も大きいワードアドレスを指定して所定のデータを格納する。このデータは、実際に使用されている最も大きいワードアドレスに、実際に使用されていない上位ビットを無視した状態で格納されている。従って、スレーブ内に上記データが格納されているワードアドレスを調べれば、そのワードアドレスがスレーブで実際に使用されているワードアドレスの最大値であるから、ワードアドレスの有効ビット数を確認することができる。
【００７０】
図１１に、この一例を示す。同図（ａ）はスレーブが２ｋ×８ビットの容量を有しており、同図（ｂ）はスレーブが４ｋ×８ビットの容量を有しており、同図（ｃ）はスレーブが８ｋ×８ビットの容量を有していることを示している。このとき、ライト処理により２バイトアドレスを１６進でＦＦＦＦＨとして所定のデータを書き込んだ場合、同図（ａ）では０７ＦＦＨに、同図（ｂ）では０ＦＦＦＨに、同図（ｃ）では１ＦＦＦＨに上記所定のデータが格納されることとなる。そして、所定のデータと一致しているデータを探し、このデータが格納されているワードアドレスを求める。２バイトアドレスの場合は有効ビット数は１１ビット以上となる。
【００７１】
なお、所定のデータのライト処理のときに、取り得る最大のワードアドレス以外にも、実際に使用されているワードアドレスの最大値以上であることが分かっているワードアドレスであれば、そこに所定のデータを格納しても、実際に使用されているワードアドレスの最大値に該データが格納されるので、こちらを利用してもよい。例えば、図１１（ｂ）において、指定するワードアドレスが、ＦＦＦＦＨ、ＥＦＦＦＨ、…、２ＦＦＦＨ、１ＦＦＦＨ、０ＦＦＦＨのいずれであっても、データは０ＦＦＦＨに格納される。
【００７２】
以上のように、本実施の形態におけるメモリ装置３の制御方法では、メモリ装置３に装着されたＥＥＰＲＯＭ３ｃのアクセス形態の種類を、ＥＥＰＲＯＭ３ｃに１バイトアドレス用のランダムリードという所定のアクセスを行ってＥＥＰＲＯＭ３ｃから得られる応答内容に基づいて判別し、アクセス形態の種類の判別結果に従って、予め用意された制御プログラムを有効に設定する。
【００７３】
すなわち、ピン配置が同じでアクセス形態の種類が異なるＥＥＰＲＯＭ３ｃが同じ箇所に装着されていても、装着されたＥＥＰＲＯＭ３ｃに所定のアクセスを行ってどのような応答内容が得られるかによって、アクセス形態の種類を判別する。そして、その判別結果に従って、装着されたＥＥＰＲＯＭ３ｃへのアクセスを制御するために予め用意された制御プログラムを有効に設定する。
【００７４】
従って、アクセス形態の種類ごとに対応したＩ２Ｃバスなどの余分なハードウェアを設けることなく、同じ箇所にピン配置が同じでアクセス形態の異なるＥＥＰＲＯＭ３ｃを差し替えるだけで、そのＥＥＰＲＯＭ３ｃのアクセス形態の種類を自動的に判別し、制御プログラムをそのＥＥＰＲＯＭ用の制御プログラムに切り替えることができる。
【００７５】
また、上記のようにアクセス形態の種類の判別を行って、その判別結果に基づいてアクセス条件を設定するようにすれば、メモリ装置３、あるいはコンピュータシステム１の製品出荷時にアクセス条件を固定する必要がないので、ＥＥＰＲＯＭ３ｃの制御プログラムを汎用性のある仕様にすることができ、コストダウンにもつながる。さらに、制御プログラムの設定ミスなどによる不具合が発生する危険性もなくなる。さらに、将来的にＥＥＰＲＯＭ３ｃのメモリ拡張が行われても、新たにソフトウェアの対応を行う必要がなくなる。
【００７６】
また、本実施の形態では、上記の所定のアクセスは、図１のＳ７で行ったように、ＥＥＰＲＯＭ３ｃのワードアドレスサイズを判別することによりアクセス形態の種類を判別することができるアクセスである。従って、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になる。
【００７７】
また、本実施の形態では、上記所定のアクセスにおいては、１バイトアドレスのように最も小さいワードアドレスサイズから、次に２バイトアドレスというように順次ワードアドレスサイズが大きくなる順で、候補となる各アクセス形態の種類に対応する任意のワードアドレスでスレーブとしてのＥＥＰＲＯＭ３ｃへのリードを試みる。そして、ＥＥＰＲＯＭ３ｃからエラーが発生しない応答内容、すなわちノーアクノリッジとならずにアクノリッジ信号が返ってくるという応答内容が得られるワードアドレスサイズに対応するアクセス形態の種類を、正しいアクセス形態の種類と判定する。
【００７８】
すなわち、ワードアドレスサイズの小さい順にスレーブであるＥＥＰＲＯＭ３ｃへのリードを試みて、エラーが発生しないときのワードアドレスサイズに対応するアクセス形態の種類を、装着されたＥＥＰＲＯＭ３ｃのアクセス形態の種類とする。エラーが発生するのは、スレーブであるＥＥＰＲＯＭ３ｃの本来のワードアドレスサイズより小さいサイズのワードアドレスしか出力されなかった場合である。
【００７９】
従って、正しいアクセス形態の種類を判別する途上で、正しいアクセス形態の種類に対応するワードアドレスサイズよりも大きなワードアドレスサイズに対応するアクセス形態の種類によるアクセスによって、既に書き込まれているデータが上書きされてしまうことがなく、ＥＥＰＲＯＭ３ｃのデータが保護された状態でアクセス形態の種類を判別することができる。
【００８０】
また、本実施の形態では、スレーブとしてのＥＥＰＲＯＭ３ｃへのワードアドレス出力後のスタートコンディション出力に続くリード指定スレーブアドレス出力に対して、特にアクノリッジ信号がＥＥＰＲＯＭ３ｃから所定時間以内に返らなければエラーが発生したと判定するようにしている。このように、アクノリッジ信号の所定時間以内での有無によりエラーの発生の有無を判定するので、エラーの発生の有無を容易に判定することができる。
【００８１】
また、本実施の形態では、正しいアクセス形態の種類を判別した後に、ワードアドレスの有効ビット数を確認する。従って、ＥＥＰＲＯＭ３ｃの容量が判明し、ＥＥＰＲＯＭ３ｃを利用する際に正しくアクセスを行うことができる。
【００８２】
また、本実施の形態では、全スレーブアドレスについてワードアドレスサイズまたはワードアドレスの有効ビット数を判定し、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかの場合にＥＥＰＲＯＭ３ｃの装着エラーと判定して報知する。従って、全スレーブアドレスについてのワードアドレスサイズまたはワードアドレスの有効ビット数の判定からこの装着エラーを判定して報知することにより、誤って装着されたシリアルＥＥＰＲＯＭ３ｃの交換を促すことができる。
【００８３】
また、本実施の形態では、所定のアクセスであるスレーブアドレス出力に対する応答によって、図１のＳ３で行ったようにスレーブアドレスの有効および無効を判別することによりアクセス形態の種類を判別することができる。
【００８４】
このように、ＥＥＰＲＯＭ３ｃの差し替えによってワードアドレスで参照できるアドレス空間、すなわち有効なスレーブアドレスも変化するため、所定のアクセスによってスレーブアドレスの有効および無効を判別することによりアクセス形態の種類を判別する。すなわち、指定したスレーブアドレスに対応するデバイスまたはページの存在の有無を判別することにより、アクセス形態の種類を判別する。従って、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になる。
【００８５】
またこの場合、ＥＥＰＲＯＭ３ｃの待機状態から行われるスタートコンディション出力に続くスレーブアドレス出力に対して、アドレス指定したスレーブからアクノリッジ信号が所定時間以内に返ればスレーブアドレスが有効であると判定し、所定時間以内に返らなければスレーブアドレスが無効であると判定する。従って、スレーブアドレスの有効および無効の判別を容易に行うことができる。
【００８６】
また、本実施の形態では、図８を用いて説明したように、メモリ装置３の起動時にアクセス形態の種類の判別を行って判別結果をＲＡＭ５に記憶させ、メモリ装置３の通常使用時には判別結果に従って制御プログラムを有効に設定する。従って、ＥＥＰＲＯＭ３ｃにアクセスを行うたびにアクセス形態の種類を判別せずに済む。
【００８７】
なお、本実施の形態では、メモリ装置３の制御方法は、コンピュータに実行させるためのプログラムによって実現することができる。これにより、メモリ装置３の制御方法を汎用性の高いものとすることができる。また、このプログラムをコンピュータに読み取り可能な記録媒体に格納することもできる。これにより、メモリ装置３の制御方法を実行させるプログラムをコンピュータに供給しやすくなる。
【００８８】
この記録媒体としては、マイクロコンピュータで処理が行われるために図２に示したフラッシュＲＯＭを初めとするコンピュータシステム１内のメモリそのものがプログラムメディアであってもよいし、また、図示していないが外部記憶装置としてプログラム読み取り装置が設けられ、そこに記録媒体を挿入することで読み取り可能なプログラムメディアであってもよい。
【００８９】
いずれの場合においても、格納されているプログラムはマイクロプロセッサがアクセスして実行させる構成であってもよいし、あるいは、いずれの場合もプログラムを読み出し、読み出されたプログラムは、マイクロコンピュータの図示されていないプログラム記憶エリアにダウンロードされて、そのプログラムが実行される方式であってもよい。このダウンロード用のプログラムは予め本体装置に格納されているものとする。
【００９０】
ここで、上記プログラムメディアは、本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープ等のテープ系、フロッピーディスクやハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ等の光ディスクのディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ　Ｅｒａｓａｂｌｅ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、フラッシュＲＯＭ等による半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
【００９１】
また、本実施の形態においては、インターネットを含む通信ネットワークを接続可能なシステム構成であることから、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する媒体であってもよい。なお、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用のプログラムは予め本体装置に格納しておくか、あるいは別な記録媒体からインストールされるものであってもよい。
【００９２】
【発明の効果】
本発明のメモリ装置の制御方法は、以上のように、ピン配置が同じで互いにアクセス形態の種類が異なるシリアルＥＥＰＲＯＭを同じ箇所に差し替えて装着することが可能なメモリ装置に対して、装着された上記シリアルＥＥＰＲＯＭへのアクセスを制御するための制御プログラムを有効に設定するメモリ装置の制御方法であって、上記メモリ装置に装着された上記シリアルＥＥＰＲＯＭの上記アクセス形態の種類を、上記シリアルＥＥＰＲＯＭに所定のアクセスを行って上記シリアルＥＥＰＲＯＭから得られる応答内容に基づいて判別し、上記アクセス形態の種類の判別結果に従って、予め用意された上記制御プログラムを有効に設定する構成である。
【００９３】
それゆえ、余分なハードウェアを設けることなく、同じ箇所にピン配置が同じでアクセス形態の異なるシリアルＥＥＰＲＯＭを差し替えるだけで、そのＥＥＰＲＯＭのアクセス形態の種類を自動的に判別し、制御プログラムをそのＥＥＰＲＯＭ用の制御プログラムに切り替えることのできるメモリ装置の制御方法を提供することができるという効果を奏する。
【００９４】
また、上記のようにアクセス形態の種類の判別を行って、その判別結果に基づいてアクセス条件を設定するようにすれば、メモリ装置の製品出荷時にアクセス条件を固定する必要がないので、シリアルＥＥＰＲＯＭの制御プログラムを汎用性のある仕様にすることができ、コストダウンにもつながるという効果を奏する。さらに、制御プログラムの設定ミスなどによる不具合が発生する危険性もなくなるという効果を奏する。さらに、将来的にシリアルＥＥＰＲＯＭのメモリ拡張が行われても、新たにソフトウェアの対応を行う必要がなくなるという効果を奏する。
【００９５】
さらに本発明のメモリ装置の制御方法は、以上のように、上記所定のアクセスは、上記シリアルＥＥＰＲＯＭのワードアドレスサイズを判別することにより上記アクセス形態の種類を判別することができるアクセスである構成である。
【００９６】
それゆえ、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になるという効果を奏する。
【００９７】
さらに本発明のメモリ装置の制御方法は、以上のように、上記所定のアクセスにおいては、最も小さいワードアドレスサイズから順次ワードアドレスサイズが大きくなる順で、候補となる各上記アクセス形態の種類に対応する任意のワードアドレスでスレーブとしての上記シリアルＥＥＰＲＯＭへのリードを試み、上記シリアルＥＥＰＲＯＭからエラーが発生しない応答内容が得られるワードアドレスサイズに対応する上記アクセス形態の種類を正しい上記アクセス形態の種類と判定する構成である。
【００９８】
それゆえ、正しいアクセス形態の種類を判別する途上で、正しいアクセス形態の種類に対応するワードアドレスサイズよりも大きなワードアドレスサイズに対応するアクセス形態の種類によるアクセスによって、既に書き込まれているデータが上書きされてしまうことがなく、シリアルＥＥＰＲＯＭのデータが保護された状態でアクセス形態の種類を判別することができるという効果を奏する。
【００９９】
さらに本発明のメモリ装置の制御方法は、以上のように、スレーブとしての上記シリアルＥＥＰＲＯＭへのワードアドレス出力後のスタートコンディション出力に続くリード指定スレーブアドレス出力に対して、アクノリッジ信号が上記シリアルＥＥＰＲＯＭから所定時間以内に返らなければ上記エラーが発生したと判定する構成である。
【０１００】
それゆえ、エラーの発生の有無を容易に判定することができるという効果を奏する。
【０１０１】
さらに本発明のメモリ装置の制御方法は、以上のように、正しい上記アクセス形態の種類を判別した後に、ワードアドレスの有効ビット数を確認する構成である。
【０１０２】
それゆえ、シリアルＥＥＰＲＯＭの容量が判明し、シリアルＥＥＰＲＯＭを利用する際に正しくアクセスを行うことができるという効果を奏する。
【０１０３】
さらに本発明のメモリ装置の制御方法は、以上のように、全スレーブアドレスについてワードアドレスサイズまたはワードアドレスの有効ビット数を判定し、全スレーブアドレスの全容量が所定容量未満であるか、異なるワードアドレスサイズのスレーブが混在しているかの場合に上記シリアルＥＥＰＲＯＭの装着エラーと判定して報知する構成である。
【０１０４】
それゆえ、誤って装着されたシリアルＥＥＰＲＯＭの交換を促すことができるという効果を奏する。
【０１０５】
さらに本発明のメモリ装置の制御方法は、以上のように、上記所定のアクセスは、スレーブアドレスの有効および無効を判別することにより上記アクセス形態の種類を判別することができるアクセスである構成である。
【０１０６】
それゆえ、新たにハードウェアを追加することなくソフトウェアでアクセス形態の種類を判別することが容易になるという効果を奏する。
【０１０７】
さらに本発明のメモリ装置の制御方法は、以上のように、上記シリアルＥＥＰＲＯＭの待機状態から行われるスタートコンディション出力に続くスレーブアドレス出力に対して、アドレス指定したスレーブからアクノリッジ信号が所定時間以内に返れば上記スレーブアドレスが有効であると判定し、上記所定時間以内に返らなければ上記スレーブアドレスが無効であると判定する構成である。
【０１０８】
それゆえ、スレーブアドレスの有効および無効の判別を容易に行うことができるという効果を奏する。
【０１０９】
さらに本発明のメモリ装置の制御方法は、以上のように、上記メモリ装置の起動時に上記アクセス形態の種類の判別を行って判別結果を記憶させ、上記メモリ装置の使用時には上記判別結果に従って上記制御プログラムを有効に設定する構成である。
【０１１０】
それゆえ、シリアルＥＥＰＲＯＭにアクセスを行うたびにアクセス形態の種類を判別せずに済むという効果を奏する。
【０１１１】
また、本発明のプログラムは、以上のように、前記のいずれかのメモリ装置の制御方法をコンピュータに実行させる構成である。
【０１１２】
それゆえ、メモリ装置の制御方法を汎用性の高いものとすることができるという効果を奏する。
【０１１３】
また、本発明の記録媒体は、以上のように、上記プログラムをコンピュータ読取可能に記録した構成である。
【０１１４】
それゆえ、メモリ装置の制御方法を実行させるプログラムをコンピュータに供給しやすくなるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るメモリ装置の制御方法を説明するフローチャートである。
【図２】メモリ装置およびそれを備えるコンピュータシステムの構成を示すブロック図である。
【図３】シリアルＥＥＰＲＯＭの外観を示す平面図である。
【図４】図３のシリアルＥＥＰＲＯＭの内部構成を示すブロック図である。
【図５】１バイトアドレスのシリアルＥＥＰＲＯＭのスレーブアドレスを説明するブロック図である。
【図６】２バイトアドレスのシリアルＥＥＰＲＯＭのスレーブアドレスを説明するブロック図である。
【図７】（ａ）ないし（ｃ）は、シリアルＥＥＰＲＯＭへのアクセス状態を説明する信号図である。
【図８】メモリ装置の起動時に行う処理を説明するフローチャートである。
【図９】メモリ装置のリード処理を説明するフローチャートである。
【図１０】メモリ装置のライト処理を説明するフローチャートである。
【図１１】（ａ）ないし（ｃ）は、シリアルＥＥＰＲＯＭの有効ビット数を確認する状態を説明するメモリマップ図である。
【符号の説明】
３　　　メモリ装置
３ｃ　　ＥＥＰＲＯＭ（シリアルＥＥＰＲＯＭ）
３１ｃ、３２ｃ、３３ｃ、３４ｃ
ＥＥＰＲＯＭ（シリアルＥＥＰＲＯＭ）
【図１】
2004021421.tif 000003
【図２】
2004021421.tif 000004
【図３】
2004021421.tif 000005
【図４】
2004021421.tif 000006
【図５】
2004021421.tif 000007
【図６】
2004021421.tif 000008
【図７】
2004021421.tif 000009
【図８】
2004021421.tif 000010
【図９】
2004021421.tif 000011
【図１０】
2004021421.tif 000012
【図１１】
2004021421.tif 000013