(57)【要約】【課題】初期的に設定されるアドレスモード以外のモードでシリアルメモリ・コントローラがリセットされたとき、リセット端子を持たないシリアルメモリとの間でモードの一致を採ることのできるシリアルメモリ・コントロールシステム、方法およびプログラムを得ること。【解決手段】リセット検出手段１３は、シリアルメモリ・コントローラ１２がリセットされたことを検出すると、再起動手段１４を用いてシリアルメモリ１１を再起動する。同期を採るためのクロックが断になったときシリアルメモリ１１を再起動してもよい。【選択図】図１
2012008630.tif 000002
【特許請求の範囲】
【請求項１】
クロックに同期してシリアルデータの読み書きを行うシリアルメモリと、
このシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラと、
このシリアルメモリ・コントローラがリセットされたときこれを検出するリセット検出手段と、
このリセット検出手段がリセットを検出したとき前記シリアルメモリを再起動する再起動手段
とを具備することを特徴とするシリアルメモリ・コントロールシステム。
【請求項２】
前記シリアルメモリは初期的に設定される特定のバイト数でアドレスを表わす第１のアドレスモードと、この第１のアドレスモードと異なるバイト数でアドレスを表わす第２のアドレスモードとの間でアドレスモードを移行する移行コマンドを受信するための移行コマンド受信手段を備えることを特徴とする請求項１記載のシリアルメモリ・コントロールシステム。
【請求項３】
前記再起動手段は、前記シリアルメモリ・コントローラがリセットされたとき前記シリアルメモリの電源をオフにし前記リセットが解除されたとき前記シリアルメモリの電源をオンにする手段であることを特徴とする請求項１記載のシリアルメモリ・コントロールシステム。
【請求項４】
前記再起動手段は、前記シリアルメモリ・コントローラから前記シリアルメモリに供給されるクロック信号が断となったとき前記シリアルメモリの電源をオフにし前記クロック信号の供給が開始されたとき前記シリアルメモリの電源をオンにする手段であることを特徴とする請求項１記載のシリアルメモリ・コントロールシステム。
【請求項５】
前記シリアルメモリ・コントローラとこのシリアルメモリ・コントローラのリセットを検出して出力する信号の論理を反転させるリセット信号送出手段とが、１つの半導体チップ上に形成されていることを特徴とする請求項１記載のシリアルメモリ・コントロールシステム。
【請求項６】
前記シリアルメモリは、物理的なリセット端子を備えていないことを特徴とする請求項１記載のシリアルメモリ・コントロールシステム。
【請求項７】
それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラがリセットされたときこれを検出するリセット検出ステップと、
このリセット検出ステップで前記シリアルメモリ・コントローラのリセットが検出されたとき前記シリアルメモリを再起動する再起動ステップ
とを具備することを特徴とするシリアルメモリ・コントロール方法。
【請求項８】
それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラが前記シリアルメモリに送出する同期用のクロックの送出の断を検出するクロック断検出ステップと、
このクロック断検出ステップで前記同期用のクロックの送出の断が検出された時点で前記シリアルメモリを再起動する再起動ステップ
とを具備することを特徴とするシリアルメモリ・コントロール方法。
【請求項９】
コンピュータに、
それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラがリセットされたときこれを検出するリセット検出処理と、
このリセット検出処理で前記シリアルメモリ・コントローラのリセットが検出されたとき前記シリアルメモリを再起動する再起動処理
とを実行させることを特徴とするシリアルメモリ・コントロールプログラム。
【請求項１０】
コンピュータに、
それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラが前記シリアルメモリに送出する同期用のクロックの送出の断を検出するクロック断検出処理と、
このクロック断検出処理で前記同期用のクロックの送出の断が検出された時点で前記シリアルメモリを再起動する再起動処理
とを実行させることを特徴とするシリアルメモリ・コントロールプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルメモリの読み書きを制御するシリアルメモリ・コントロールシステム、シリアルメモリ・コントロール方法およびシリアルメモリ・コントロールプログラムに関する。本発明は特にデータ格納場所としてのアドレスの構成バイト数を切り替えて使用できるシリアルメモリを使用するのに好適なシリアルメモリ・コントロールシステム、シリアルメモリ・コントロール方法およびシリアルメモリ・コントロールプログラムに関する。
【背景技術】
【０００２】
シリアルメモリと、これに対してデータの読み書きを制御するシリアルメモリ・コントローラとを併せ持ったシステムを本明細書ではシリアルメモリ・コントロールシステムと称することにする。
【０００３】
図１０は、従来提案された第１の関連技術におけるシリアルメモリ・コントロールシステムの構成を表わしたものである。このシリアルメモリ・コントロールシステム１００は、シリアルメモリ・コントローラ１０１と、シリアルメモリ１０２によって構成されている。
【０００４】
シリアルメモリ・コントローラ１０１はシリアルメモリ１０２に対するデータの読み書きを制御するデバイスである。シリアルメモリ・コントローラ１０１は、ＣＰＵ（Central Processing Unit）と共にその周辺回路として１つの半導体チップ上にＳＯＣ（System-on-a-chip）として内蔵される形態を採ることが多い。
【０００５】
シリアルメモリ・コントローラ１０１は、シリアルメモリ１０２との間でＣＳ（Chip Select）信号１１１、ＣＬＫ（clock）信号１１２、ＳＩ（Serial Input）信号１１３およびＳＯ（Serial Output）信号１１４による通信を行う。ここでＣＳ信号１１１は、シリアルメモリ・コントローラ１０１が特定のメモリを選択するための信号である。このＣＳ信号１１１がシリアルメモリ・コントローラ１０１によってアクティブにされると、シリアルメモリ１０２は通信待ち受け状態になる。
【０００６】
ＣＬＫ信号１１２はクロック信号であり、シリアルメモリ・コントローラ１０１からシリアルメモリ１０２へ送出される。シリアルメモリ１０２は、ＣＬＫ信号１１２に同期してデータの読み書き（ReadおよびWrite）を行う。
【０００７】
ＳＩ信号１１３は、シリアルインプット信号であり、コマンド、アドレスおよびデータの受信に使用される。ＳＯ信号１１４は、シリアルメモリ１０２からのデータの送信に使用される。
【０００８】
図１１は、この第１の関連技術における３バイトアドレスモード時のシリアル通信のフォーマットの一例を示したものである。ここで３バイトアドレスモードとは、アドレスを３バイトで指定するアドレッシングモードである。
【０００９】
同図（Ａ）に示すライト（Write）動作時では、同図（ａ）に示すＣＳ信号１１１がＨ（ハイ）レベルからＬ（ロー）レベルに変化した時点で、同図（ｂ）に示すＣＬＫ信号１１２がシリアルメモリ・コントローラ１０１からシリアルメモリ１０２へ送出を開始される。同図（ｂ）に示す「０」から始まる番号は、ＣＬＫ信号１１２の出力開始からの通し番号である。
【００１０】
同図（ｂ）のＣＬＫ信号１１２が「０」から「７」までのクロックを出力するフィールドで、同図（ｃ）に示すようにライト動作を指定するコマンドがＳＩ信号１１３として、シリアルメモリ・コントローラ１０１からシリアルメモリ１０２に送出される。この後、アドレスを３バイト（byte）で指定するＳＩ信号１１３がシリアルメモリ１０２に送出される。アドレッシングモードの終了後、シリアルメモリ・コントローラ１０１からシリアルメモリ１０２へＳＩ信号１１３としてライト（Write）データが送出される。
【００１１】
図１１（Ｂ）は、リード（Read）動作時の各種の信号を表わしている。同図（ｄ）に示すＣＳ信号１１１がＨ（ハイ）レベルからＬ（ロー）レベルに変化した時点で、同図（ｅ）に示すＣＬＫ信号１１２がシリアルメモリ・コントローラ１０１からシリアルメモリ１０２へ送出を開始される。
【００１２】
これにより、ＣＬＫ信号１１２が「０」から「７」までのクロックを出力するフィールドで、同図（ｆ）に示すようにリード動作を指定するコマンドがＳＩ信号１１３として、シリアルメモリ・コントローラ１０１からシリアルメモリ１０２に送出される。この後、アドレスを３バイト（byte）で指定するＳＩ信号１１３がシリアルメモリ１０２に送出される。アドレッシングモードの終了後、同図（ｇ）に示すようにシリアルメモリ１０２からシリアルメモリ・コントローラ１０１へ、ＳＯ信号１１４として指定されたリード（Read）データが送出される。
【００１３】
ところで、第１の関連技術に使用されるシリアルメモリ１０２は、その容量が１２８メガビットすなわち１６メガバイト以下であった。シリアルメモリ１０２の容量が仮に１６メガバイトであるとすると、アドレス指定のためには、２４ビットのアドレス情報が必要である。このため、ＳＩ信号１１３には３バイトのアドレスフィールドを定義することが行われていた。これを３バイトアドレスモードと呼んでいる。
【００１４】
ところが、その後、シリアルメモリ１０２に対する容量拡張の市場要求があり、たとえば２５６メガビット以上のメモリが開発されている。シリアルメモリ１０２が２５６メガビット以上の容量になると、後半の１２８メガビットをアクセスするために、２５ビット以上のアドレス指定が必要となる。このため第１の関連技術で使用された３バイトアドレスモードではシリアルメモリ１０２に格納されたデータに対するアドレス指定ができないこととなる。
【００１５】
このような問題を解決するために、第２の関連技術が提案されている。この第２の関連技術では、アドレスフィールドを更に１バイト拡張して、４バイトとしている。このようなアクセス方法を４バイトアドレスモードと呼ぶこととする。
【００１６】
図１２は、第２の関連技術を採用したシリアルメモリコントロール装置における通常起動シーケンスを示したものである。このシリアルメモリ・コントロールシステム１００Ａは、３バイト（ｂｙｔｅ）アドレスモードと４バイト（ｂｙｔｅ）アドレスモードの双方を備えたシリアルメモリ・コントローラ１０１Ａと、１２８メガビット以上のメモリ容量を有するシリアルメモリ１０２Ａで構成されている。
【００１７】
シリアルメモリ・コントローラ１０１Ａは、１２８メガビットのメモリ容量のシリアルメモリ１０２（図１０参照）との互換性を図っている。このため、シリアルメモリ１０２Ａはシリアルメモリ・コントローラ１０１Ａと共に３バイトアドレスモードで起動する（ステップＳ２０１）。
【００１８】
３バイトアドレスモードではシリアルメモリ１０２Ａに対して１２８メガビットの容量までしかアドレスを指定することができない。そこで、２５６メガビットのアドレス領域のアドレスを指定する場合、シリアルメモリ・コントローラ１０１はシリアルメモリ１０２Ａに対して４バイトアドレスモードへの移行コマンドを送信する（ステップＳ２０２）。
【００１９】
シリアルメモリ１０２Ａは、この４バイトアドレスモードへの移行コマンドを受信すると４バイトアドレスモードに移行し（ステップＳ２０３）、アドレスフィールドが４バイトへ拡張されて通信を開始する。シリアルメモリ・コントローラ１０１はステップＳ２０２で４バイトアドレスモードへの移行コマンドを送信した後、４バイトアドレスモードへ移行する（ステップＳ２０４）。したがって、この後はシリアルメモリ・コントローラ１０１Ａとシリアルメモリ１０２Ａの間で４バイトアドレスモードによる通信が可能になる（ステップＳ２０５）。
【００２０】
この第２の関連技術では、４バイトアドレスモードに移行した後のシリアルメモリ・コントローラ１０１Ａが何らかの理由でリセットすると、シリアルメモリ１０２Ａとの間の正常な通信ができなくなる可能性があるという問題があった。
【００２１】
図１３は、第２の関連技術を採用したシリアルメモリ・コントローラのリセットにより生じる問題を説明するためのものである。図１３で図１２と同一部分には同一の符号を付しており、これらの説明を適宜省略する。
【００２２】
図１２で説明したステップＳ２０３でシリアルメモリ１０２Ａは４バイトアドレスモードに移行し、ステップＳ２０４でシリアルメモリ・コントローラ１０１Ａも４バイトアドレスモードに移行する。したがって、これ以後は、ステップＳ２０５で示すようにシリアルメモリ・コントローラ１０１Ａとシリアルメモリ１０２Ａの間で４バイトアドレスモードによる通信が可能になる。
【００２３】
この４バイトアドレスモードによる通信が可能な状態で、何らかの原因でシリアルメモリ・コントローラ１０１Ａがリセットしたとする（ステップＳ２０６）。すると、シリアルメモリ・コントローラ１０１Ａは、リセット解除後に、再び初期状態に戻って３バイトアドレスモードで動作を開始する（ステップＳ２０７）。
【００２４】
この一方で、シリアルメモリ１０２ＡはステップＳ２０３で移行した４バイトアドレスモードのままになっている。この結果、シリアルメモリ・コントローラ１０１Ａとシリアルメモリ１０２Ａは動作モードに不一致が生じてしまい（ステップＳ２０８）、正常に通信ができない可能性が生じてしまう。
【００２５】
図１４は、動作モードに不一致が生じた場合に正常な通信ができない理由を説明するためのものである。図１３と共に説明する。
【００２６】
図１４（Ａ）は、シリアルメモリ１０２Ａに対するライト（Write）動作時を表わしている。シリアルメモリ・コントローラ１０１Ａは、同図（ａ）に示すようにリセット後に３バイトアドレスモードとなっている。この一方で、シリアルメモリ１０２Ａは同図（ｂ）に示すように４バイトアドレスモードとなっている。
【００２７】
このため、通信の開始された１バイト（byte）目にはシリアルメモリ・コントローラ１０１Ａからコマンドが出力され（図１１（ｃ）参照）、シリアルメモリ１０２Ａもこれによりライト（Write）動作が行われることを認識する。次の２バイト目から４バイト目までの３バイトで、シリアルメモリ・コントローラ１０１Ａは３バイトアドレスモードによるアドレス情報の送信を行う。
【００２８】
ところがシリアルメモリ１０２Ａは４バイトアドレスモードであると認識している。このため、５バイト目の第１のライト（Write）データまでをシリアルメモリ１０２Ａはアドレスとして認識してしまう。この結果、シリアルメモリ・コントローラ１０１Ａが３バイトで指定したアドレスとは全く異なったアドレスをシリアルメモリ１０２Ａが認識してしまう。また、第１のライト（Write）データがアドレスとして間違って認識され（ＮＧ：No Good）、第２のライトデータからライトデータとして認識されるので、シリアルメモリ１０２Ａに書き込まれるデータも相違してしまうことになる。
【００２９】
一方、図１４（Ｂ）は、シリアルメモリ１０２Ａからのリード（Read）動作を表わしている。この場合にも同図（ｃ）に示すようにリセット後にシリアルメモリ・コントローラ１０１Ａは３バイトアドレスモードとなっている。この一方で、シリアルメモリ１０２Ａは同図（ｄ）に示すように４バイトアドレスモードとなっている。
【００３０】
したがって、シリアルメモリ・コントローラ１０１Ａはシリアルメモリ１０２Ａからデータの読み出しを行うために２バイト目から４バイト目までの３バイトを使用してアドレスを指定する。ところがシリアルメモリ１０２Ａは４バイトアドレスモードであると認識しているため、２バイト目から５バイト目までの４バイトを使用してアドレスを認識する。この結果、読み出しの対象となるアドレスがシリアルメモリ・コントローラ１０１Ａの予期しないものとなる。また、シリアルメモリ・コントローラ１０１Ａは、５バイト目からリード（Read）データであるとしてデータの入力を行うが、シリアルメモリ１０２Ａは６バイト目からリード（Read）データを出力するので、読み出されるデータモード相違してしまうことになる。
【００３１】
そこで、このような不具合を解消する第３の関連技術として、メインマイコンがサブマイコンに対して、所定の場合に強制的にリセットを解除するリセット解除信号を送出するようにした技術が提案されている（たとえば特許文献１参照）。この第３の関連技術でメインマイコンをシリアルメモリ・コントロールシステム１００Ａとし、サブマイコンをシリアルメモリ１０２Ａとすれば、シリアルメモリ１０２Ａを元の３バイトアドレスモードで動作させることができる。
【００３２】
しかしながら、シリアルメモリ１０２Ａはリセット端子を備えていない。このため、シリアルメモリ１０２Ａはシリアルメモリ・コントローラ１０１Ａからリセットされたり、リセットを解除されることができず、第３の関連技術を用いてモードの不一致による不具合の発生を防止することができない。
【先行技術文献】
【特許文献】
【００３３】
【特許文献１】特開２０００−２３５４８７号公報（第００４８段落、図１）
【発明の概要】
【発明が解決しようとする課題】
【００３４】
そこで本発明の目的は、初期的に設定されるアドレスモード以外のアドレスモードでシリアルメモリ・コントローラがリセットされたとき、リセット端子を持たないシリアルメモリとの間でモードの一致を採ることのできるシリアルメモリ・コントロールシステム、方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００３５】
本発明では、（イ）クロックに同期してシリアルデータの読み書きを行うシリアルメモリと、（ロ）このシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラと、（ハ）このシリアルメモリ・コントローラがリセットされたときこれを検出するリセット検出手段と、（ニ）このリセット検出手段がリセットを検出したとき前記したシリアルメモリを再起動する再起動手段とをシリアルメモリ・コントロールシステムが具備する。
【００３６】
また、本発明では、（イ）それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラがリセットされたときこれを検出するリセット検出ステップと、（ロ）このリセット検出ステップで前記したシリアルメモリ・コントローラのリセットが検出されたとき前記したシリアルメモリを再起動する再起動ステップとをシリアルメモリ・コントロール方法が具備する。
【００３７】
更に本発明では、（イ）それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラが前記したシリアルメモリに送出する同期用のクロックの送出の断を検出するクロック断検出ステップと、（ロ）このクロック断検出ステップで前記した同期用のクロックの送出の断が検出された時点で前記したシリアルメモリを再起動する再起動ステップとをシリアルメモリ・コントロール方法が具備する。
【００３８】
更にまた本発明では、コンピュータに、シリアルメモリ・コントロールプログラムとして、（イ）それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラがリセットされたときこれを検出するリセット検出処理と、（ロ）このリセット検出処理で前記したシリアルメモリ・コントローラのリセットが検出されたとき前記したシリアルメモリを再起動する再起動処理とを実行させることを特徴としている。
【００３９】
また本発明では、コンピュータに、シリアルメモリ・コントロールプログラムとして、（イ）それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラが前記したシリアルメモリに送出する同期用のクロックの送出の断を検出するクロック断検出処理と、（ロ）このクロック断検出処理で前記した同期用のクロックの送出の断が検出された時点で前記したシリアルメモリを再起動する再起動処理とを実行させることを特徴としている。
【発明の効果】
【００４０】
以上説明したように本発明によれば、シリアルメモリ・コントローラがリセットしたとき、シリアルメモリへの電源供給を制御して、シリアルメモリを再起動させる。これにより、シリアルメモリ・コントローラとシリアルメモリがそれぞれ初期状態のアドレスモードとなり、アドレスモードの不一致による通信の異常を簡単に解消することができる。
【図面の簡単な説明】
【００４１】
【図１】本発明のシリアルメモリ・コントロールシステムのクレーム対応図である。
【図２】本発明のシリアルメモリ・コントロール方法のクレーム対応図である。
【図３】本発明の他のシリアルメモリ・コントロール方法のクレーム対応図である。
【図４】本発明のシリアルメモリ・コントロールプログラムのクレーム対応図である。
【図５】本発明の他のシリアルメモリ・コントロールプログラムのクレーム対応図である。
【図６】本発明の実施の形態におけるシリアルメモリ・コントロールシステムの構成を表わしたシステム構成図である。
【図７】本実施の形態のＳＯＣの電源がオンになった後におけるシリアルメモリ・コントロールシステムの処理を表わした流れ図である。
【図８】本発明の変形例におけるシリアルメモリ・コントロールシステムの構成を表わしたシステム構成図である。
【図９】この変形例のＳＯＣの電源がオンになった後におけるシリアルメモリ・コントロールシステムの処理を表わした流れ図である。
【図１０】従来提案された第１の関連技術におけるシリアルメモリ・コントロールシステムの構成を表わしたシステム構成図である。
【図１１】第１の関連技術における３バイトアドレスモード時のシリアル通信のフォーマットの一例を示したタイミング図である。
【図１２】第２の関連技術を採用したシリアルメモリコントロール装置における通常起動シーケンスを示した説明図である。
【図１３】第２の関連技術を採用したシリアルメモリ・コントローラのリセットにより生じる問題を示した説明図である。
【図１４】第２の関連技術を採用し動作モードに不一致が生じた場合に正常な通信ができない理由を示す説明図である。
【発明を実施するための形態】
【００４２】
図１は、本発明のシリアルメモリ・コントロールシステムのクレーム対応図を示したものである。本発明のシリアルメモリ・コントロールシステム１０は、シリアルメモリ１１と、シリアルメモリ・コントローラ１２と、リセット検出手段１３と、再起動手段１４を備えている。ここで、シリアルメモリ１１は、クロックに同期してシリアルデータの読み書きを行う。シリアルメモリ・コントローラ１２は、シリアルメモリ１１に対してデータの読み書きを行う回路である。リセット検出手段１３は、シリアルメモリ・コントローラ１２がリセットされたときこれを検出する。再起動手段１４は、リセット検出手段１３がリセットを検出したとき前記したシリアルメモリ１１を再起動する。
【００４３】
図２は、本発明のシリアルメモリ・コントロール方法のクレーム対応図を示したものである。本発明のシリアルメモリ・コントロール方法２０は、リセット検出ステップ２１と、再起動ステップ２２を備えている。ここで、リセット検出ステップ２１では、それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラがリセットされたときこれを検出する。再起動ステップ２２では、リセット検出ステップ２１で前記したシリアルメモリ・コントローラのリセットが検出されたとき前記したシリアルメモリを再起動する。
【００４４】
図３は、本発明の他のシリアルメモリ・コントロール方法のクレーム対応図を示したものである。本発明の他のシリアルメモリ・コントロール方法３０は、クロック断検出ステップ３１と、再起動ステップ３２を備えている。ここで、クロック断検出ステップ３１では、それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラが前記したシリアルメモリに送出する同期用のクロックの送出の断を検出する。再起動ステップ３２では、クロック断検出ステップ３１で前記した同期用のクロックの送出の断が検出された時点で前記したシリアルメモリを再起動する。
【００４５】
図４は、本発明のシリアルメモリ・コントロールプログラムのクレーム対応図を示したものである。本発明のシリアルメモリ・コントロールプログラム４０は、コンピュータに、リセット検出処理４１と、再起動処理４２を実行させるようにしている。ここで、リセット検出処理４１では、それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラがリセットされたときこれを検出する。再起動処理４２では、リセット検出処理４１で前記したシリアルメモリ・コントローラのリセットが検出されたとき前記したシリアルメモリを再起動する。
【００４６】
図５は、本発明の他のシリアルメモリ・コントロールプログラムのクレーム対応図を示したものである。本発明の他のシリアルメモリ・コントロールプログラム５０は、コンピュータにクロック断検出処理５１と、再起動処理５２を実行させるようにしている。ここで、クロック断検出処理５１では、それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラが前記したシリアルメモリに送出する同期用のクロックの送出の断を検出する。再起動処理５２では、クロック断検出処理５１で前記した同期用のクロックの送出の断が検出された時点で前記したシリアルメモリを再起動する。
【００４７】
＜発明の実施の形態＞
【００４８】
次に本発明の実施の形態を説明する。
【００４９】
図６は、本発明の実施の形態におけるシリアルメモリ・コントロールシステムの構成を表わしたものである。本実施の形態のシリアルメモリ・コントロールシステム３００は、ＳＯＣ（System-on-a-chip）３０１と、シリアルメモリ３０２の他に、リセット信号検出部３０３と、電源供給部３０４によって構成されている。
【００５０】
このうちＳＯＣ３０１は、１つの半導体チップ上に、必要とされる一連の機能を集積した集積回路であり、本実施の形態ではシリアルメモリ・コントローラ３１１と、リセット信号送出部３１２を内蔵している。また、シリアルメモリ３０２は、これに供給される電源用の電源端子３２１を備えている。
【００５１】
シリアルメモリ・コントローラ３１１は、シリアルメモリ３０２との間でＣＳ（Chip Select）信号３３１、ＣＬＫ（clock）信号３３２、ＳＩ（Serial Input）信号３３３およびＳＯ（Serial Output）信号３３４による通信を行う。ＣＳ信号３３１は、シリアルメモリ・コントローラ１０１が特定のメモリを選択するための信号である。このＣＳ信号３３１がシリアルメモリ・コントローラ３１１によってアクティブにされると、シリアルメモリ３０２は通信待ち受け状態になる。
【００５２】
ＣＬＫ信号３３２はクロック信号であり、シリアルメモリ・コントローラ３１１からシリアルメモリ３０２へ送出される。シリアルメモリ３０２は、ＣＬＫ信号３３２に同期してデータの読み書き（ReadおよびWrite）を行う。
【００５３】
ＳＩ信号３３３は、シリアルインプット信号であり、コマンド、アドレスおよびデータの受信に使用される。ＳＯ信号３３４は、シリアルメモリ３０２からのデータの送信に使用される。
【００５４】
リセット信号送出部３１２は、装置状態に応じてリセット信号３４１を出力する。リセット信号検出部３０３は、リセット信号送出部３１２からリセット信号３４１が出力されたとき、これを検出し電源制御信号３４２を出力する。電源供給部３０４は、電源制御信号３４２の電圧レベルを検出し、これに応じてシリアルメモリ３０２への電源３４３の供給を制御する。シリアルメモリ３０２は、その電源端子３２１に所定の電圧の電源３４３が供給されることにより、起動しメモリとして動作する。
【００５５】
ここでリセット信号送出部３１２は、ＳＯＣ３０１の電源がオフとなっている状態と、シリアルメモリ・コントローラ３１１がリセットされている状態で、Ｌレベルのリセット信号３４１Ｌを出力する。また、リセット信号送出部３１２はシリアルメモリ・コントローラ３１１のリセットが解除されている状態でＨレベルのリセット信号３４１Ｈを出力する。
【００５６】
リセット信号検出部３０３は、リセット信号送出部３１２からのリセット信号３４１の電圧レベルを検出する。この結果、Ｈレベルのリセット信号３４１Ｈである場合には、Ｈレベルの電源制御信号３４２Ｈを出力する。Ｌレベルのリセット信号３４１Ｌである場合には、Ｌレベルの電源制御信号３４２Ｌを出力する。
【００５７】
電源供給部３０４は、Ｈレベルの電源制御信号３４２Ｈを受け取った場合、電源３４３をシリアルメモリ３０２の電源端子３２１に供給する。電源供給部３０４がＬレベルの電源制御信号３４２Ｌを受け取った場合には、電源端子３２１への電源の供給を停止する。
【００５８】
以上説明したリセット信号送出部３１２の出力するリセット信号３４１の論理状態に基づいたリセット信号検出部３０３および電源供給部３０４の制御は、所定の手順に沿って行われる。ＳＯＣ３０１にリセット信号検出部３０３および電源供給部３０４が内蔵されているような場合には、ＳＯＣ３０１内に組み込まれたＣＰＵが所定の制御プログラムに基づいてこのような制御を行うことも可能である。また、リセット信号検出部３０３および電源供給部３０４は、ＦＥＴ（Field Effect Transistor）等のトランジスタあるいはスイッチング素子を使用することで、ＳＯＣ３０１の外付け部品として容易に構成することができる。
【００５９】
図７は、ＳＯＣの電源がオンになった後におけるシリアルメモリ・コントロールシステムの処理の流れを表わしたものである。図６と共に説明する。
【００６０】
図示しない電源によってＳＯＣ３０１が正常に起動したとする（スタート）。これにより、ＳＯＣ３０１に内蔵されたリセット信号送出部３１２はＨレベルのリセット信号３４１Ｈを出力する。リセット信号検出部３０３はリセット信号３４１の検出処理を行い（ステップＳ４０１）、これがＨレベルのリセット信号３４１Ｈであるかを判別する（ステップＳ４０２）。リセット信号３４１Ｈであれば（Ｙ）、その出力する電源制御信号３４２をＨレベルとする（ステップＳ４０３）。この電源制御信号３４２Ｈは電源供給部３０４に供給され、Ｈレベルの電源３４３Ｈが電源端子３２１に供給を開始される（ステップＳ４０４）。
【００６１】
このようにＳＯＣ３０１が正常に起動した場合、シリアルメモリ・コントローラ３１１が最初の時点で３バイトアドレスモードとなり、シリアルメモリ３０２も電源の投入により３バイトアドレスモードとなる。したがって、シリアルメモリ・コントローラ３１１とシリアルメモリ３０２は、これらの動作モードが一致する。
【００６２】
これ以後、ステップＳ４０１の処理に戻るが、シリアルメモリ・コントローラ３１１がリセットしない状態でリセット信号送出部３１２はＨレベルのリセット信号３４１Ｈを出力している。したがって、シリアルメモリ・コントローラ３１１がリセットしない状態が続く限りＨレベルの電源３４３Ｈが電源端子３２１に供給される。この状態でシリアルメモリ・コントローラ３１１とシリアルメモリ３０２は、ＣＳ信号３３１、ＣＬＫ信号３３２、ＳＩ信号３３３およびＳＯ信号３３４を用いて３バイトアドレスモードによる通信を行い、４バイトアドレスモードへの移行も可能である。
【００６３】
これ以後、何らかの原因によって電源投入後のＳＯＣ３０１でシリアルメモリ・コントローラ３１１がリセットしたとする。シリアルメモリ・コントローラ３１１がリセットすると、リセット信号送出部３１２はＬレベルのリセット信号３４１Ｌを出力する。リセット信号検出部３０３はこの変化を検出して（ステップＳ４０１）、リセット信号３４１がＨレベルであるかを判別する（ステップＳ４０２）。この場合にはＬレベルとなっているので（Ｎ）、リセット信号検出部３０３はＬレベルの電源制御信号３４２Ｌを出力する（ステップＳ４０５）。
【００６４】
電源供給部３０４は、Ｌレベルの電源制御信号３４２Ｌを入力すると、今までＨレベルの電源制御信号３４２Ｈを入力していたときに電源端子３２１に供給していた電源の供給を停止する（ステップＳ４０６）。そして、再びステップＳ４０１の処理に戻る。したがって、リセット信号送出部３１２からＬレベルのリセット信号３４１Ｌが出力されている状態ではシリアルメモリ３０２への電源供給が停止された状態が保持されることになる。
【００６５】
この後、所定の時点でシリアルメモリ・コントローラ３１１のリセットが解除されたとする。すると、リセット信号送出部３１２はＬレベルのリセット信号３４１Ｌの出力からＨレベルのリセット信号３４１Ｈの出力に切り替わる。リセット信号検出部３０３はこの変化を検出して（ステップＳ４０１）、リセット信号３４１がＨレベルであるかを判別する（ステップＳ４０２）。この場合にはＨレベルとなっているので（Ｙ）、リセット信号検出部３０３はＨレベルの電源制御信号３４２Ｈを出力する（ステップＳ４０３）。この電源制御信号３４２Ｈは電源供給部３０４に供給され、Ｈレベルの電源３４３Ｈが電源端子３２１に供給を開始される（ステップＳ４０４）。
【００６６】
この結果、シリアルメモリ３０２が起動する。シリアルメモリ３０２はこの起動時に初期状態の３バイトアドレスモードで動作する。このとき、シリアルメモリ・コントローラ３１１もリセットにより初期状態の３バイトアドレスモードで動作を開始している。したがって、シリアルメモリ・コントローラ３１１とシリアルメモリ３０２は、これらの動作モードが一致することになる。
【００６７】
以上説明したようにシリアルメモリ・コントローラ３１１とシリアルメモリ３０２が３バイトアドレスモードで動作していても、あるいはそれ以後に両者が４バイトアドレスモードで動作していても、シリアルメモリ・コントローラ３１１がリセットされるとシリアルメモリ３０２の電源が一度遮断される。このため、その後にシリアルメモリ・コントローラ３１１のリセットが解除されたときシリアルメモリ・コントローラ３１１とシリアルメモリ３０２は再び初期状態としての３バイトアドレスモードで動作を開始する。このため、シリアルメモリ・コントローラ３１１とシリアルメモリ３０２の間で動作モードが不一致となることによる通信異常の発生を防止することができる。
【００６８】
このように本実施の形態によれば、シリアルメモリ・コントローラ３１１のリセット時にシリアルメモリ３０２の電源が一度オフになって再起動される。この結果、シリアルメモリ・コントローラ３１１とシリアルメモリ３０２の間での動作モードの不一致が生ぜず、アドレス情報の誤認識を防止することができる。
【００６９】
また、本実施の形態ではＳＯＣ３０１に外付けでリセット信号検出部３０３および電源供給部３０４を設けて、シリアルメモリ３０２の電源制御を行うことにした。これにより、メモリアドレスが４バイト以上になったとしても、ソフトウェアを変更する必要がないという利点もある。
【００７０】
＜発明の変形例＞
【００７１】
図８は本発明の変形例におけるシリアルメモリ・コントロールシステムの構成を表わしたものである。この図８で先の実施の形態の図６と同一部分には同一の符号を付しており、これらの説明を適宜省略する。
【００７２】
この変形例のシリアルメモリ・コントロールシステム３００Ａは、ＳＯＣ３０１Ａと、シリアルメモリ３０２と、クロック（ＣＬＫ）断検出部５０１と、電源供給部３０４によって構成されている。ここでＳＯＣ３０１Ａは図６に示したリセット信号送出部３１２を備えていない。このため、シリアルメモリ・コントロールシステム３００Ａは図６に示したリセット信号検出部３０３を備えておらず、代わりにクロック断検出部５０１を有している。クロック断検出部５０１はＣＬＫ信号３３２を入力して、その断を検出するようになっている。
【００７３】
すなわち、変形例のシリアルメモリ・コントロールシステム３００Ａでは、シリアルメモリ・コントローラ３１１のリセットを検出する手法として、このシリアルメモリ・コントローラ３１１から出力されるＣＬＫ信号３３２を利用する。ＣＬＫ信号３３２はシリアルメモリ・コントローラ３１１とシリアルメモリ３０２の間で、通信の同期をとるための同期信号である。したがって、シリアルメモリ・コントローラ３１１にリセットがかかったときにＣＬＫ信号３３２が止まるように回路が構成されていれば、このリセットを検出することができる。
【００７４】
そこで、クロック断検出部５０１はＣＬＫ信号３３２を常時入力するようにしており、ＣＬＫ信号３３２の入力が断になると電源制御信号３４２の論理をＨレベルからＬレベルに変化させる。クロック断検出部５０１は、たとえば汎用ロジックＩＣ（Integrated Circuit）を使用して、周知の回路構成で実現することができる。クロック断検出部５０１から電源制御信号３４２を入力する電源供給部３０４は、先の実施の形態と全く同一の回路として構成することができる。
【００７５】
図９は、この変形例でＳＯＣの電源がオンになった後におけるシリアルメモリ・コントロールシステムの処理の流れを表わしたものである。図８と共に説明する。
【００７６】
図示しない電源によってＳＯＣ３０１Ａが正常に起動したとする（スタート）。すると、図１１で説明したようにＣＬＫ信号３３２がシリアルメモリ・コントローラ３１１からシリアルメモリ３０２へ送出を開始される。このＣＬＫ信号３３２はクロック断検出部５０１にも入力される。
【００７７】
クロック断検出部５０１は、ＣＬＫ信号３３２を周期的に検出している場合、電源制御信号３４２の論理をＨレベルに保持する。この一方で、ＣＬＫ信号３３２がその周期から予期できる所定の時間を超えても到来しない状態が出現したら、クロック断検出部５０１はシリアルメモリ・コントローラ３１１がリセットされたものとして、電源制御信号３４２の論理をＨレベルからＬレベルに切り替える。
【００７８】
したがって、クロック断検出部５０１はＣＬＫ信号３３２が周期的に入力されているかどうかを判別して（ステップＳ６０１）、周期的に検出している場合には（Ｙ）、Ｈレベルの電源制御信号３４２Ｈを出力する（ステップＳ６０２）。この電源制御信号３４２Ｈは電源供給部３０４に供給される。この結果、Ｈレベルの電源３４３Ｈが電源端子３２１に供給を開始される（ステップＳ６０３）。
【００７９】
このようにＳＯＣ３０１が正常に起動した場合、シリアルメモリ・コントローラ３１１が最初の時点で３バイトアドレスモードとなり、シリアルメモリ３０２も電源の投入により３バイトアドレスモードとなる。したがって、シリアルメモリ・コントローラ３１１とシリアルメモリ３０２は、これらの動作モードが一致する。
【００８０】
これ以後、ステップＳ６０１の処理に戻るが、シリアルメモリ・コントローラ３１１がリセットしない状態でＣＬＫ信号３３２が継続的に出力される。したがって、シリアルメモリ・コントローラ３１１がリセットしない状態が続く限りＨレベルの電源３４３Ｈが電源端子３２１に供給される。この状態でシリアルメモリ・コントローラ３１１とシリアルメモリ３０２は、ＣＳ信号３３１、ＣＬＫ信号３３２、ＳＩ信号３３３およびＳＯ信号３３４を用いて３バイトアドレスモードによる通信を行い、４バイトアドレスモードへの移行も可能である。
【００８１】
これ以後、何らかの原因によって電源投入後のＳＯＣ３０１でシリアルメモリ・コントローラ３１１がリセットしたとする。シリアルメモリ・コントローラ３１１がリセットすると、この時点でＣＬＫ信号３３２の出力が停止する（ステップＳ６０１：Ｎ）。したがって、クロック断検出部５０１はこれからわずかな時間が経過した時点で電源制御信号３４２をＨレベルからＬレベルに変化させる（ステップＳ６０４）。
【００８２】
電源供給部３０４は、Ｌレベルの電源制御信号３４２Ｌを入力すると、今までＨレベルの電源制御信号３４２Ｈを入力していたときに電源端子３２１に供給していた電源の供給を停止する（ステップＳ６０５）。そして、再びステップＳ６０１の処理に戻る。したがって、クロック断検出部５０１からＬレベルの電源制御信号３４２Ｌが出力されている状態ではシリアルメモリ３０２への電源供給が停止された状態が保持されることになる。
【００８３】
この後、所定の時点でシリアルメモリ・コントローラ３１１のリセットが解除されたとする。すると、シリアルメモリ・コントローラ３１１からＣＬＫ信号３３２の出力が開始され（ステップＳ６０１：Ｙ）、これを入力するクロック断検出部５０１が再びＨレベルの電源制御信号３４２Ｈを出力する（ステップＳ６０２）。この電源制御信号３４２Ｈは電源供給部３０４に供給され、Ｈレベルの電源３４３Ｈが電源端子３２１に供給を開始される（ステップＳ６０３）。
【００８４】
この結果、シリアルメモリ３０２が起動する。シリアルメモリ３０２はこの起動時に初期状態の３バイトアドレスモードで動作する。このとき、シリアルメモリ・コントローラ３１１もリセットにより初期状態の３バイトアドレスモードで動作を開始している。したがって、シリアルメモリ・コントローラ３１１とシリアルメモリ３０２は、これらの動作モードが一致することになる。
【００８５】
以上説明したようにこの変形例のシリアルメモリ・コントロールシステム３００Ａによれば、ＳＯＣ３０１Ａがシリアルメモリ・コントローラ３１１についての専用のリセット信号送出部３１２（図６参照）を備えなくても、ＣＬＫ信号３３２の断によりリセットを検出してシリアルメモリ３０２を再起動することができる。したがって、ＳＯＣ３０１Ａを特別な構成とすることなく、シリアルメモリ・コントローラ３１１とシリアルメモリ３０２の間でのアドレスモードの不一致の発生を防止することができる。
【００８６】
以上説明した実施の形態および変形例では、ＳＯＣ３０１、３０１Ａ側にのみＣＰＵが存在するものとしたが、これに限るものではない。たとえば、シリアルメモリ・コントロールシステム３００、３００Ａ全体を制御するＣＰＵが存在し、このＣＰＵが所定のシリアルメモリ・コントロールプログラムによってシリアルメモリの再起動を制御するものであってもよい。
【００８７】
以上説明した実施の形態の一部または全部は、以下の付記のようにも記載されるが、以下の記載に限定されるものではない。
【００８８】
（付記１）
クロックに同期してシリアルデータの読み書きを行うシリアルメモリと、
このシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラと、
このシリアルメモリ・コントローラがリセットされたときこれを検出するリセット検出手段と、
このリセット検出手段がリセットを検出したとき前記シリアルメモリを再起動する再起動手段
とを具備することを特徴とするシリアルメモリ・コントロールシステム。
【００８９】
（付記２）
前記シリアルメモリは初期的に設定される特定のバイト数でアドレスを表わす第１のアドレスモードと、この第１のアドレスモードと異なるバイト数でアドレスを表わす第２のアドレスモードとの間でアドレスモードを移行する移行コマンドを受信するための移行コマンド受信手段を備えることを特徴とする付記１記載のシリアルメモリ・コントロールシステム。
【００９０】
（付記３）
前記再起動手段は、前記シリアルメモリ・コントローラがリセットされたとき前記シリアルメモリの電源をオフにし前記リセットが解除されたとき前記シリアルメモリの電源をオンにする手段であることを特徴とする付記１記載のシリアルメモリ・コントロールシステム。
【００９１】
（付記４）
前記再起動手段は、前記シリアルメモリ・コントローラから前記シリアルメモリに供給されるクロック信号が断となったとき前記シリアルメモリの電源をオフにし前記クロック信号の供給が開始されたとき前記シリアルメモリの電源をオンにする手段であることを特徴とする付記１記載のシリアルメモリ・コントロールシステム。
【００９２】
（付記５）
前記シリアルメモリ・コントローラとこのシリアルメモリ・コントローラのリセットを検出して出力する信号の論理を反転させるリセット信号送出手段とが、１つの半導体チップ上に形成されていることを特徴とする付記１記載のシリアルメモリ・コントロールシステム。
【００９３】
（付記６）
前記第１のアドレスモードはアドレスを３バイト構成で通信する３バイトアドレスモードであり、前記第２のアドレスモードはアドレスを４バイト構成で通信する４バイトアドレスモードであることを特徴とする付記２記載のシリアルメモリ・コントロールシステム。
【００９４】
（付記７）
前記シリアルメモリは、物理的なリセット端子を備えていないことを特徴とする付記１記載のシリアルメモリ・コントロールシステム。
【００９５】
（付記８）
それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラがリセットされたときこれを検出するリセット検出ステップと、
このリセット検出ステップで前記シリアルメモリ・コントローラのリセットが検出されたとき前記シリアルメモリを再起動する再起動ステップ
とを具備することを特徴とするシリアルメモリ・コントロール方法。
【００９６】
（付記９）
それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラが前記シリアルメモリに送出する同期用のクロックの送出の断を検出するクロック断検出ステップと、
このクロック断検出ステップで前記同期用のクロックの送出の断が検出された時点で前記シリアルメモリを再起動する再起動ステップ
とを具備することを特徴とするシリアルメモリ・コントロール方法。
【００９７】
（付記１０）
前記再起動ステップは、前記シリアルメモリの電源端子への電源供給を一時的に中断して再開させる電源供給制御ステップであることを特徴とする付記８または９記載のシリアルメモリ・コントロール方法。
【００９８】
（付記１１）
コンピュータに、
それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラがリセットされたときこれを検出するリセット検出処理と、
このリセット検出処理で前記シリアルメモリ・コントローラのリセットが検出されたとき前記シリアルメモリを再起動する再起動処理
とを実行させることを特徴とするシリアルメモリ・コントロールプログラム。
【００９９】
（付記１２）
コンピュータに、
それ自体物理的なリセット端子を備えずクロックに同期してシリアルデータの読み書きを行うシリアルメモリに対してデータの読み書きを行う回路としてのシリアルメモリ・コントローラが前記シリアルメモリに送出する同期用のクロックの送出の断を検出するクロック断検出処理と、
このクロック断検出処理で前記同期用のクロックの送出の断が検出された時点で前記シリアルメモリを再起動する再起動処理
とを実行させることを特徴とするシリアルメモリ・コントロールプログラム。
【符号の説明】
【０１００】
１０、３００、３００Ａ  シリアルメモリ・コントロールシステム
１１、３０２、３１２  シリアルメモリ
１２、３１１  シリアルメモリ・コントローラ
１３  リセット検出手段
１４  再起動手段
２０、３０  シリアルメモリ・コントロール方法
２１  リセット検出ステップ
２２、３２  再起動ステップ
３１  クロック断検出ステップ
４０、５０  シリアルメモリ・コントロールプログラム
４１  リセット検出処理
４２、５２  再起動処理
５１  クロック断検出処理
３０１、３０１Ａ  ＳＯＣ
３０３  リセット信号検出部
３０４  電源供給部
３２１  電源端子
３３２  ＣＬＫ信号
３４１  リセット信号
３４２  電源制御信号
３４３  電源
５０１  クロック断検出部
【図１】
2012008630.tif 000003
【図２】
2012008630.tif 000004
【図３】
2012008630.tif 000005
【図４】
2012008630.tif 000006
【図５】
2012008630.tif 000007
【図６】
2012008630.tif 000008
【図７】
2012008630.tif 000009
【図８】
2012008630.tif 000010
【図９】
2012008630.tif 000011
【図１０】
2012008630.tif 000012
【図１１】
2012008630.tif 000013
【図１２】
2012008630.tif 000014
【図１３】
2012008630.tif 000015
【図１４】
2012008630.tif 000016