(57)【要約】【課題】ホストとホストよりも大きなレイテンシを有するスレーブデバイス間のインタフェース【解決手段】ホストとホストよりもレイテンシが大きいスレーブデバイス間のインタフェースを提供する。このインタフェースはレジスタ及びステートマシンを含む。ステートマシンはスレーブにあるどのアドレスからでもデータをホストに２回のホストリードサイクルで供給する。ステートマシンは、第１時間に、スレーブの第１アドレスに保持されているデータを求める第１要求をホストから受け取る。ステートマシンは、第２時間に、第１要求に応答してスレーブからリターンされたデータをレジスタに保持する。ステートマシンは、第３時間に、スレーブの第２アドレスに保持されているデータを求める第２要求をホストから受け取る。ステートマシンは、第４時間に、第１要求の中で指定されているデータをホストに供給する。ステートマシンは、その上に、スレーブの第２アドレスからホストにデータを１回のリードサイクルで供給する。【選択図】　　図１
2004094945.tif 000002
【特許請求の範囲】
【請求項１】
　ホストと、ホストよりも大きなレイテンシを有するスレーブデバイスとのインタフェースをとるための方法で、
　第１時間に前記スレーブデバイスの第１アドレスに保持されているデータを求める第１の要求を行なうステップと、
　第２時間に前記スレーブデバイスから前記第１アドレスに保持されているデータを出力するステップと、
　第３時間に代替アドレスに保持されているデータを求める第２の要求を行なうステップと、
　第４時間に前記第１アドレスに保持されている前記データを読み出すステップとからなり、
　前記第２時間は前記第１時間の後に続き、前記第３時間は前記第１時間の後に続き、前記第４時間は前記第２時間の後に続くことを特徴とするインタフェースをとるための方法。
【請求項２】
　さらに、
　第５時間に前記代替アドレスに保持されているデータを要求して前記スレーブデバイスの次の順次アドレスに保持されているデータを求める第３の要求を行なうステップと、
　第６時間に前記スレーブデバイスから前記次の順次アドレスに保持されている前記データを出力するステップと、
　第７時間に前記出力されたデータを読み出すステップとをさらに有し、
　前記第５時間は前記第３時間の後に続き、前記第６時間は前記第４時間の後に続き、前記第７時間は前記第６時間の後に続くことを特徴とする請求項１に記載の方法。
【請求項３】
　前記次の順次アドレスは、前記第１アドレスよりも少なくとも１アドレス高位にあるアドレスであることを特徴とする請求項１に記載の方法。
【請求項４】
　前記次の順次アドレスは、前記第１アドレスよりも少なくとも１アドレス低位にあるアドレスであることを特徴とする請求項１に記載の方法。
【請求項５】
　前記スレーブデバイスはメモリであることを特徴とする請求項１に記載の方法。
【請求項６】
　前記スレーブデバイスはメモリコントローラであることを特徴とする請求項１に記載の方法。
【請求項７】
　前記スレーブデバイスは、埋め込み型メモリを有するディスプレイコントローラであることを特徴とする請求項１に記載の方法。
【請求項８】
　前記ホストは中央処理ユニットであることを特徴とする請求項１に記載の方法。
【請求項９】
　前記ホストはディジタル信号プロセッサであることを特徴とする請求項１に記載の方法。
【請求項１０】
　前記代替アドレスはスレーブデバイスの無効アドレスであることを特徴とする請求項１に記載の方法。
【請求項１１】
　ホスト及びホストよりも大きなレイテンシを有するスレーブデバイスとのインタフェースをとるための機器であって、
　リードデータレジスタ、及び
　前記ホスト及び前記スレーブデバイス間のデータの転送を制御するためのステートマシンを備え、当該ステートマシンは、
　　第１時間に第１リード信号及び第１アドレスを受け取るステップと、
　　前記第１時間の後に続く第２時間に、前記スレーブデバイスからリターンされたデータを前記リードデータレジスタに保持するステップと、
　　前記第２時間の後に続く第３時間に、第２リード信号及び代替アドレスを受け取るステップと、
　　前記ホストが前記第３時間の後に続く第４時間に前記リードデータレジスタに保持されている前記データを読み出せるように、前記リードデータレジスタの出力をイネーブルするステップと、
　を実行することを特徴とする機器。
【請求項１２】
　前記ステートマシンはさらに、
　前記第３時間の後に続く第５時間に前記ホストから第３リード信号及び第３アドレスを受け取るステップを実行し、当該第３アドレスは前記代替アドレスであり、
　前記第４時間の後に続く第６時間に、保持されている前記データを前記スレーブの次の順次アドレスから前記リードデータレジスタの中に保持するステップを実行し、
　前記ホストが前記リードデータレジスタに保持されている前記データを読み出せるように、前記第６時間の後に続く第７時間に前記リードデータレジスタの出力をイネーブルするステップを実行することを特徴とする請求項１１に記載の機器。
【請求項１３】
　前記次の順次アドレスは、前記第１アドレスよりも少なくとも１アドレス高位にある前記スレーブデバイスの有効アドレスであることを特徴とする請求項１１に記載の機器。
【請求項１４】
　前記次の順次アドレスは、前記第１アドレスよりも少なくとも１アドレス低位にある前記スレーブデバイスの有効アドレスであることを特徴とする請求項１１に記載の機器。
【請求項１５】
　前記スレーブデバイスはメモリであることを特徴とする請求項１１に記載の機器。
【請求項１６】
　前記スレーブデバイスはメモリコントローラであることを特徴とする請求項１１に記載の機器。
【請求項１７】
　前記スレーブデバイスは、埋め込み型メモリを有するディスプレイコントローラであることを特徴とする請求項１１に記載の機器。
【請求項１８】
　前記ホストは中央処理ユニットであることを特徴とする請求項１１に記載の機器。
【請求項１９】
　前記ホストはディジタル信号プロセッサであることを特徴とする請求項１１に記載の機器。
【請求項２０】
　コンピュータシステムであって、
　第１時間に第１リード信号及び第１アドレスを供給して第１読み出し動作を開始し、当該第１時間の後に続く第２時間より前にデータをサンプリングして前記第１読み出し動作を完了する中央処理ユニットを備え、
　前記第２時間に前記第１アドレスに保持されているデータを供給して前記第１リード信号及び前記第１アドレスに応答するスレーブデバイスを備え、前記第１アドレスは前記スレーブデバイスのアドレス空間内にあり、
　前記中央処理ユニットに前記第１読み出し動作を実行するように指示し、続いて前記中央処理ユニットに代替アドレスを指定する第２読み出し動作を実行するように指示して、前記データを検索する前記中央処理ユニットに指示を出すソフトウェア要素を備え、
　前記中央処理ユニット及び前記スレーブデバイス間の読み出し動作を制御するインタフェース回路を備え、当該回路は、
　　リードデータレジスタ、及び
　　ステートマシンを含み、ステートマシンは、
　　　前記第１時間に前記第１リード信号及び前記第１アドレスを受け取るステップと、
　　　前記第２時間に前記データを前記スレーブデバイスから前記リードデータレジスタに保持するステップと、
　　　前記第２時間の後に続く第３時間に第２リード信号及び前記代替アドレスを受け取るステップと、
　　　前記第３時間に続く第４時間に前記中央処理ユニットが前記リードデータレジスタに保持されている前記データを読み出せるように前記リードデータレジスタの出力をイネーブルするステップと、
　　を実行することを特徴とするコンピュータシステム。
【請求項２１】
　前記ステートマシンはさらに、
　前記第３時間の後に続く第５時間に前記ホストから第３リード信号及び第３アドレスを受け取るステップを実行し、当該第３アドレスは前記代替アドレスであり、
　前記第４時間の後に続く第６時間に、保持されている前記データを前記スレーブの次の順次アドレスから前記リードデータレジスタの中に保持するステップを実行し、
　前記ホストが前記リードデータレジスタに保持されている前記データを読み出せるように、前記第６時間の後に続く第７時間に前記リードデータレジスタの出力をイネーブルするステップを実行することを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２２】
　前記次の順次アドレスは、前記第１アドレスよりも少なくとも１アドレス高位にある前記スレーブデバイスの有効アドレスであることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２３】
　前記次の順次アドレスは、前記第１アドレスよりも少なくとも１アドレス低位にある前記スレーブデバイスの有効アドレスであることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２４】
　前記スレーブデバイスは記憶装置であることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２５】
　前記スレーブデバイスはメモリコントローラであることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２６】
　前記スレーブデバイスは、埋め込み型メモリを有するディスプレイコントローラであることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２７】
　前記ホストは中央処理ユニットであることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２８】
　前記ホストはディジタル信号プロセッサであることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２９】
　ホスト及びホストよりもレイテンシが大きいスレーブデバイス間でインタフェースをとる方法を実行するために機械で実行可能な命令プログラムを実装している機械可読媒体であって、その方法は、
　第１時間に前記スレーブデバイスの第１アドレスに保持されているデータを求める第１の要求を行なうステップと、
　前記第１時間の後に続く第２時間に、前記第１アドレスに保持されている前記データを前記スレーブデバイスから出力するステップと、
　前記第１時間の後に続く第３時間に、代替アドレスに保持されているデータを求める第２の要求を行なうステップと、
　前記第２時間の後に続く第４時間に前記データを読み出すステップとを有することを特徴とする機械可読媒体。
【請求項３０】
　前記方法はさらに、
　前記代替アドレスに保持されているデータを要求して、前記第３時間の後に続く第５時間に前記スレーブデバイスの第２アドレスに保持されているデータを求める第３の要求を行なうステップと、
　前記第４時間の後に続く第６時間に前記第２アドレスに保持されている前記データを前記スレーブデバイスから出力するステップ、及び
　前記第６時間の後に続く第７時間に前記出力されたデータを読み出すステップとを有することを特徴とする請求項２９に記載の媒体。
【請求項３１】
　前記第２アドレスは、前記第１アドレスよりも少なくとも１アドレス高位にある前記スレーブデバイスの有効アドレスことを特徴とする請求項２９に記載の媒体。
【請求項３２】
　前記第２アドレスは、前記第１アドレスよりも少なくとも１アドレス低位にある前記スレーブデバイスの有効アドレスことを特徴とする請求項２９に記載の媒体。
【請求項３３】
　前記スレーブデバイスはメモリであることを特徴とする請求項２９に記載の媒体。
【請求項３４】
　前記スレーブデバイスはメモリコントローラであることを特徴とする請求項２９に記載の媒体。
【請求項３５】
　前記スレーブデバイスは、埋め込み型メモリを有するディスプレイコントローラであることを特徴とする請求項２９に記載の媒体。
【請求項３６】
　前記ホストは中央処理ユニットであることを特徴とする請求項２９に記載の媒体。
【請求項３７】
　前記ホストはディジタル信号プロセッサであることを特徴とする請求項２９に記載の媒体。
【請求項３８】
　ホストと、ホストよりも大きなレイテンシを有するスレーブデバイス間でインタフェースをとるための方法であって、
　第１時間に前記スレーブデバイスにデータを保持する第１の要求を行なうステップ、及び
　前記第１時間の後に続く第２時間にデータを前記スレーブデバイスに保持する第２の要求を行なうステップを備えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、一般的にはディジタル電子デバイスのインタフェースに関し、より具体的には固定レイテンシを有するホストとホストのレイテンシよりも大きなレイテンシを有するスレーブデバイスとの間のインタフェースに関する発明である。
【背景技術】
【０００２】
　ディジタル電子デバイスのインタフェース技術の分野では、ホストデバイス（ホスト）とスレーブデバイス（スレーブ）は時間領域で互いに整合性を有していなければならない。すなわち、スレーブは書き込み動作時にホストが規定した一定時間内にデータを受理できなければならない。また同様に、スレーブは読み出し動作時にホストが規定した一定時間内にデータを戻せなければならない、という理解になっている。この技術分野では「レイテンシ」という用語が用いられるが、本明細書で「レイテンシ」とはプロセスの開始から終了までの時間間隔を指している。ホストのレイテンシとは、ホストが読み出し／書き込み動作又は読み出し／書き込みサイクルを実行するのに要する総時間のことである。スレーブのレイテンシとは、スレーブが要求を受け取ってからその要求を完了するまでの時間である。読み出しのレイテンシとは、スレーブがリード要求を受け取ってからデータをデータバス上に出力するまでの時間である。書き込み動作でのレイテンシとは、スレーブがライト要求を受け取ってからデータを内部的に保持するまで時間である。従って、スレーブはホストが規定した一定時間内にデータを受理又はリターンすることができなければならないということは、言い方を変えれば、スレーブのレイテンシはホストのレイテンシ以下でなければならないということになる。
【０００３】
　しかしながら、多くのスレーブはホストのレイテンシより大きなレイテンシでデータを受理、リターンすることしかできない。このタイプのスレーブの一例が記憶装置である。典型的なホストリードサイクルにおいて、ホストはデータを要求し、時間遅延の後、データを読み出す。スレーブのレイテンシがホストのレイテンシよりも大きければ、ホストはスレーブが要求されたデータを出力する前にその読み出しサイクルを終了する。要求されたデータがスレーブから出力される前にホストがその読み出しサイクルを完了するのを許してしまうと、ホストが間違ったデータを読み込んでしまうことは明らかである。
【０００４】
　この問題に対する一つの考えられる解決法は、クロッキング周波数を高くしてスレーブのスピードアップを図ることである。しかしながら、クロック周波数が高くなると、消費電力が増加すると共に発熱も増える。これはすなわち、その増えた熱を消散させる手段が必用になるだけでなく、モバイルデバイスでは電池寿命が短くなるということを意味する。加えて、クロック周波数が高くなると、電磁放射が発生する可能性がある。電磁放射は他のデバイスとの干渉を起こし、クロック同期やタイミングの問題を発生させる可能性を有する。
【０００５】
　ホストよりも大きなレイテンシを有するスレーブに対してホストをインタフェースさせるための方法がいくつか一般的に用いられている。通常ポーリングと呼ばれる方法では、ホストが読み出し又は書き込み要求を行なう。ホストは次に、スレーブが要求を完了したことを示すと共に使用可能なデータが指定されたメモリ又はレジスタアドレスにあることを示すためにスレーブが送信する信号又はコードを検出するまで、ポートライン又はレジスタを繰り返して読み出し検査するプログラムループを実行する。
【０００６】
　また、ホストよりも大きなレイテンシを有するスレーブに対してホストをインタフェースさせる別の方法として、通常割り込み方式と呼ばれる方法がある。この方法は、ホストがスレーブに対して読み出し又は書き込みを要求し、スレーブが要求を完了すると、スレーブが割り込み信号を受け取るためにホストの入力端子又はラインで信号をアサートする。その信号はホストに対して、スレーブが要求を完了し、さらに読み出し動作では読み出されるべきデータがあることを示す。
【０００７】
　ホストよりも大きなレイテンシを有するスレーブに対してホストをインタフェースさせる第３の方法は、通常シングルハンドシェイク方式と呼ばれている。この方法は概して、スレーブの準備ができるまでホストが読み出し／書き込みサイクルを完了しないようにするために使用される。シングルハンドシェイク方式では、ＷＡＩＴなどのホールドオフ信号又はＡＣＫなど継続信号の入力がホストにある。ＷＡＩＴを用いたインプリメンテーションでは、ホストが読み出し／書き込みサイクルをスタートさせ、スレーブがホストのホールドオフ入力に送られるＷＡＩＴ信号をアサートして応答する。スレーブは要求を完了した後ＷＡＩＴ信号のアサートを解除するので、ホストが読み出し／書き込みサイクルを完了することができる。継続信号を用いたインプリメンテーションでは、ホストが読み出し／書き込みサイクルをスタートさせるが、スレーブからＡＣＫ信号を受け取るまでサイクルを完了させない。
【０００８】
　ポーリング、割り込み、ハンドシェイクの各方式では、ホストがスレーブの担当する読み出し／書き込みサイクル部分を完了したことを示す信号をスレーブから受け取ると、ホストが、要求されたデータを読み出すなどしてサイクル内にホストが担当する部分を終える。事実上、これらの方法ではホストが読み出し／書き込みサイクルの実行に要する時間を延長している。すなわち、各方式はホストのレイテンシを延長している。ホストをスレーブにインタフェースさせるためのもっと複雑な方法も知られているが、そうした方法は、概して、ホストのレイテンシを延長する先に述べた基本的な方法の延長線上にある。
【０００９】
【特許文献１】米国再発行特許発明第6,430,646号明細書
【特許文献２】米国再発行特許発明第6,279,050号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１０】
　ホストのレイテンシを延長する技法及びスレーブのスピードアップを図る方法は、コンピュータシステムによっては好ましくないあるいは可能でないことがある。先に触れたように、クロッキングの周波数を上げてスレーブを速くすると、消費電力、発熱が増加するだけでなく、電磁妨害を起こす可能性がある。その上、スレーブデバイスには、一般的な話として、クロッキング可能でしかも依然として正しく機能することができる上限がある。ポーリング方式は、ＣＰＵサイクルを浪費し、それが電力の無駄遣いとなり、システム性能を低下させるため好ましいやり方ではない。割り込み及びハンドシェイク方式は、ホストが割り込み又はホールドオフ信号の入力を有していない場合は採用できない。コスト及び消費電力を最小限にするために、ホストによっては、特に、割り込み又はホールドオフ信号の入力を備えないで、すなわち、固定レイテンシで、設計されているものもある。従って、固定レイテンシのホストをホストよりもレイテンシが大きいスレーブにインタフェースさせると、ホストのレイテンシを延長する技法を採用できないし、スレーブのスピードアップを図る方法は好ましくないあるいは採用できない場合があるので、重大な問題に直面する。
【００１１】
　上記に鑑み、ホスト及びホストよりもレイテンシが大きいスレーブ間で、スレーブのスピードアップを図る方法が好ましくないあるいは採用できない場合に、固定レイテンシのホストと共に使用できるインタフェースがあると好ましい。
【課題を解決するための手段】
【００１２】
　本発明は、ホストと、ホストよりもレイテンシが大きいスレーブとの間のインタフェースに関する発明である。本発明のインタフェース回路は、ホスト、スレーブデバイス、及びホストに指示を出すソフトウェア要素（software element）を有するコンピュータシステムに採用することができる。ソフトウェア要素は、ホストにデータが保持されているスレーブの第１アドレスから第１の読み出し動作を行なわせ、ホストに代替アドレスを指定する第２の読み出し動作を行なわせて、スレーブに保持されているデータを検索するようホストに指示する。インタフェース回路は、リードデータレジスタ及びステートマシンを有する。ステートマシンは、第１時間に、第１のリードサイクルと関連付けられているリード信号及びアドレス信号を受け取り、第２時間に、スレーブデバイスからリターンされたデータをリードデータレジスタに保持し、第３時間に、第２リードサイクルと関連付けられているリード信号及びアドレス信号を受け取り、第４時間に、データをホストに供給する、各ステップを実施する。
【００１３】
　本発明におけるインタフェース回路の別の態様において、ステートマシンは、次の順次アドレス（next sequential address）に保持されているデータに関するホストからの第３の読み出し動作（ここでも代替アドレスを指定する）に応答するよう構成されている。具体的に、このステートマシンは、第５時間に、スレーブデバイスに保持されているデータに関してホストから３つ目の要求を受け取り、第６時間に、スレーブからのデータをリードデータレジスタに保持し、第７時間に、ホストがデータを読み出せるようにリードデータレジスタの出力をイネーブルにする、追加のステップを実行する。
【００１４】
　発明の上記の及びその他の目的、構成要素、作用効果については、添付の図面と共に、以下に詳細に述べる発明の説明を考慮すれば、容易に理解できる。
【発明を実施するための最良の形態】
【００１５】
　以下、本発明の実施形態を図面に基づいて説明する。
【実施例１】
【００１６】
　図１は、本発明の一つの実施例を採用したシステムの機能図である。ホスト２０とスレーブ２４とは例示的に示したホスト−スレーブ間のインタフェース回路２２につながっている。本発明のインタフェースを制御するための信号を送受信するためのステートマシン２６が回路２２の中に入っている。一つの好適な実施例において、ホスト２０は中央処理装置（ＣＰＵ）で、スレーブ２４はメモリ、ステートマシン２６は組合せ論理回路であり、ホスト２０はホールドオフ入力を有していない。つまり、ホスト２０は固定レイテンシを有する。
【００１７】
　本発明は、ホストからの一つの読み出し要求に応答してデータをリターンするのに２つのホスト読み出しサイクルを必要とする。本発明の際立った利点は、次の順次アドレスからのデータに関する最初の読み出し要求の後の読み出し要求は、各々一回のホスト読み出しサイクルしか必要ないことである。本発明の更なる効果は、スレーブ２４にはホスト読み出しサイクルの始まり近くにアドレスが送り込まれることである。
【００１８】
　読み出し／書き込み要求を送ったり、スレーブからの要求に対する応答を受け取るために使用されるホスト２０の入出力は、スレーブ２４ではなくインフェース回路２２につながれている。具体的に言えば、インタフェース回路２２は、例示的に表示されたホスト２０のリード出力（Ｒ）及びライト出力（Ｗ）につながれている。リード出力及びライト出力は別々の線として図示されているが、当業者であれば、これらの信号は一本の線でハイまたはローの状態として送信できることが分かる。インタフェース回路２２は、ホスト２０のアドレスバス（Ａ）４０及び双方向データバス（Ｄ）４２にもつながっている。図示した実施例においては、アドレスバスは２３ビット幅で、データバスは８ビット幅である。これらのバス幅は例示的に示したもので、バス幅は広くしたり狭くしたりすることができる。クロック信号を生成するためのソース４４はホスト２０のクロック入力につながれている。
【００１９】
　読み出し／書き込み要求を受け取ったり、どんな要求に対しても応答するために使用されるスレーブ２４の入出力も、ホスト２０につながれるのではなく、インタフェース回路２２につながっている。特に、インタフェース回路２２はスレーブ２４の以下の入力につながっている：リード（ＲＥ）、ライト（Ｗ）、バイトイネーブル（ＢＥ）、アドレス（Ａ）、ライトデータ入力（ＷＤＩ）。加えて、インタフェース回路２２は、スレーブ２４のリードデータ出力（ＲＤＯ）にもつながっている。読み出し／書き込み信号は１本の線で送信しても構わない。
【００２０】
　図１にはまた、本発明を理解するのに必要な回路２２内の構成要素が表示されている。回路２２にはアドレス及びデータを保持するためのレジスタがある。具体的に言えば、この回路は、アドレスレジスタ２８、ライトデータレジスタ３０、リードデータレジスタ３２を有する。また回路２２はマルチプレクサ３４を有し、２つの可能なアドレス入力間の選択を行なう。回路２２は、ホスト２０から送られたアドレスを復号化するメモリ空間復号化ロジック３６と自動増分復号化ロジック３８とを有する。トライステートバッファ４６がリードデータレジスタ３２の出力につながれ、このレジスタの出力をイネーブル／ディセーブルするのに用いられる。加算器４８はマルチプレクサ３４の入力のうちの一つにつながっている。回路の動作について説明する前に、内部及び外部の結合（coupling）について説明する。
【００２１】
　ホスト２０と回路２２の構成要素との結合について説明すると、ホスト２０の読み出し／書き込み出力はステートマシン２６につながれている。アドレスバス４０は、マルチプレクサ３４と、メモリ空間復号化ロジック３６、並びに自動増分復号化ロジック３８につながれている。さらに、データバス４２がライトデータレジスタ３０及びリードデータレジスタ３２につながれている。
【００２２】
　スレーブ２４と回路２２の構成要素との結合について説明すると、ステートマシン２６の出力は、スレーブ２４のリード、ライト、バイトイネーブルの各入力につながれている。アドレスレジスタ２８はアドレス入力Ａにつながれ、ライトデータレジスタ３０はスレーブ２４のＷＤＩにつながれている。さらに、スレーブ２４のＲＤＯはリードデータレジスタ３２の入力につながっている。
【００２３】
　回路２２の構成要素間の結合について説明すると、マルチプレクサ３４の出力はアドレスレジスタ２８の入力につながれている。アドレスレジスタ２８の出力は加算器４８の入力につながり、加算器４８の出力はマルチプレクサ３４の入力につながっている。加算器４８はアドレスレジスタ２８に保持されているアドレスの増分に使用されるので、増分されたアドレスがマルチプレクサ３４の入力のうちの一つに入力される。メモリ空間復号化ロジック３６及び自動増分復号化ロジック３８の出力はステートマシン２６につながっている。図１に表示されているように、リードデータレジスタ３２の出力を渡すためにトライステートバッファ４６がイネーブルになっているか否かにかかわらず、ステートマシン２６の出力によってマルチプレクサ３４の選択が制御される。また、レジスタ２８、３０、３２へのデータのラッチ作業を制御するのもステートマシン２６の出力である。
【００２４】
　回路２２の動作を説明する前に、メモリ空間復号化ロジック３６及び自動増分復号化ロジック３８の動作について説明する。一般的に、スレーブ２４には、ホスト２０が採用するアドレス指定スキーム内で連続するアドレスの範囲が割り当てられる。ホスト２０が読み出し動作又は書き込み動作を行なうとき、スレーブ２４のために定義されたアドレスの範囲内で任意のアドレスを指定しているアドレスを出力する可能性がある。そうしたアドレスをここでは「有効アドレス（valid address）」と呼ぶことにする。あるいは、ホスト２０が、スレーブ２４のために定義されたアドレスの範囲内に入っていないアドレスを指定するかもしれない。そうした代替アドレスをここでは「代替（surrogate）アドレス」と呼ぶことにする。ホストが有効アドレスを指定した場合には、メモリ空間復号化ロジック３６がセットアップリード信号、つまり、「ＳＵＲ」を出力する。ホストが代替アドレスを指定した場合には、自動増分復号化アドレス３８がレジスタリード信号、つまり、「ＲＲ」を出力する。
【００２５】
　　[読み出し動作]
　回路２２の動作をよく理解するには例を用いるのがいい。図３は、時間Ｔ1からＴ7におけるクロック信号（ＣＬＫ）、リード信号（Ｒ）、アドレスバス（Ａ）、データバス（Ｄ）の状態を説明したタイミング図である。図３はまた、時間Ｔ1からＴ7及び時間サイクルＴＣに対して、ホストの３つのリードサイクル（Ｈ１、Ｈ２、Ｈ３）及びステートマシンのリードサイクル（ＳＭ１、ＳＭ２、ＳＭ３）が発生することを示している。
【００２６】
　　[第１ホストリードサイクル]
　第１の時間Ｔ1で、ホスト２０は、リード信号をアサートし第１のアドレスをアドレスバス４０に乗せることによって第１のホストリードサイクルをスタートさせる。この例の第１アドレスは有効アドレスで、図３に「ＶＡ」と示されている。メモリ空間復号化ロジック３６及び自動増分復号化ロジック３８は第１アドレスを処理する。第１アドレスは有効アドレスだから、メモリ空間復号化ロジック３６はセットアップリード信号（ＳＵＲ）をアサートする。ＳＵＲ信号に応答して、ステートマシン２６が信号を送り、それによりマルチプレクサ３４がアドレスバス４０を入力として選択する。その結果、第１アドレスがアドレスレジスタ２８に入力される。ステートマシン２６はまた、第１アドレスがアドレスレジスタ２８にラッチされるようにする信号も送る。さらに、ステートマシン２６はＲＥ及びＢＥの各入力上にある信号をアサートし、それによりスレーブ２４が第１アドレスに保持されているデータをフェッチし始める。第１時間Ｔ1の後の第２時間Ｔ2あたりで、ホスト２０がデータバスからデータを読み出す。ホスト２０が読み出すデータは、図３に「ＰＤ」と表示されている無意味な擬似データで、ホストはそれを放棄する。擬似データの放棄はソフトウェアで実現されるのが好ましいが、ハードウェアで実現することもできる。
【００２７】
　スレーブ２４が第１アドレスにあるデータをフェッチした後、要求されたデータをリードデータ出力（ＲＤＯ）に乗せる。データが出力されると（時間Ｔ2の後のいつか）、ステートマシン２６はデータをリードデータバッファ３２にラッチする。ステートマシン２６は、トライステートバッファ４６をイネーブルにしてホスト２０がこのデータを読み出せるようにする。図３で、データバス４２に乗っているこのデータの使用可能性が「有効データ１」として「ＶＤ１」と示されている。
【００２８】
　　[第２ホストリードサイクル]
　第３時間Ｔ3で、ホスト２０が、リード信号をアサートし第２アドレスをアドレスバス４０に乗せることによって、第２のホストリードサイクルをスタートさせる。この例の第２アドレスは代替アドレスで、「ＳＡ」と示されている。メモリ空間復号化ロジック３６及び自動増分復号化ロジック３８が第２アドレスを処理する。自動増分復号化ロジック３８は、第２アドレスがスレーブ２４のために指定されたアドレス空間内に入っていないので、レジスタリード信号（ＲＲ）をアサートする。ほぼ第４時間Ｔ4で、ホスト２０がリードデータバッファ３２からデータを読み出す。ホスト２０が読み出すデータ、つまり、ＶＤ１は第１アドレスからフェッチされたデータである。第２のホストリードサイクルが終わることで第１アドレスに保持されているデータを読み出すプロセスが完了する。
【００２９】
　図３において、ブロックＨ１は、ホスト２０が第１ホストリードサイクルを実行していることを表わしており、このサイクルでホストは有効アドレスにあるデータを要求し、擬似データを読み出す。第１ホストリードサイクルは、時間サイクル１及び２（ＴＣ1及びＴＣ2）の間に生じる。ブロックＳＭ1は、ステートマシン２６に要求されたデータを指定された有効アドレスから読み出させ、ホスト２０が読み出せるようにしていることを表わしている。ステートマシンのリードサイクルは時間サイクル１、２、３及び４（ＴＣ1、ＴＣ2、ＴＣ3及びＴＣ4）の間に生じる。ブロックＨ２は、ホスト２０がデータバス４２に乗っているデータ（ＶＤ１）を読み出していること、及び以下に説明するその他の処理を表わしている。矢印Ａ１、Ａ２、Ａ３は、ホストリードサイクルの始まりがステートマシンサイクルを引き起こすことを示している。
【００３０】
　　[多重リードサイクル]
　ホスト２０がスレーブ２４の一つのアドレスに保持されているデータだけしか必要でない場合には、読み出し動作は第４時間Ｔ4で完了する。しかし、ホストは、スレーブ内の連続するアドレスに保持されている一連のデータを読み出さなければいけないというのが一般的である。ステートマシン２６は、ホスト２０が連続するアドレスに保持されている多数のデータ要素を要求してくることを見越して作られている。次のアドレスに保持されているデータ要素を求める次の要求を見越してステートマシン２６がとるステップは、先に説明したステップと同時に起きる。従って、ステートマシンがリード要求をどのように予期するのか説明するために、先に説明した時点、すなわち、Ｔ2に戻り、その時点から順番に説明を続ける。
【００３１】
　　[次の順次アドレスの判定]
　第２時間Ｔ2で（ホスト２０が擬似データを読んでいる頃）、ステートマシン２６がマルチプレクサ３４に加算器４８につながれたマルチプレクサの入力を選択させるので、新しいアドレスがアドレスレジスタ２８の入力に入れられる。その新しいアドレスは「有効アドレス」で、ここでは「次の順次アドレス」と呼ぶことにする。次の順次アドレスとは、スレーブ２４に関して定義されたアドレスの順序の中で、レジスタ２８に保持されているアドレスの後にくる次のアドレス、つまり、この例では、第１アドレスの後にくる次のアドレスであるのが好ましい。別の好適な実施例では、次の順次アドレスは、レジスタ２８に保持されているアドレスより前のアドレスであってもよい。また別の実施例では、次の順次アドレスは、レジスタ２８に保持されているアドレスと数学的に関連付けられたアドレスであってもよい。例えば、レジスタ２８に保持されているアドレスに、１より大きなあるいは小さな整数を、加算したり減算してもよい。またさらに別の実施例では、次の順次アドレスを得るために、レジスタ２８に保持されているアドレスに乗算あるいは除算などの演算をしてもよい。ステートマシン２６は、次の順次アドレスがアドレスレジスタ２８にラッチされる（そこに保持されていたアドレスを置き換える）ようにすると共に、スレーブ２４に次の順次アドレスに保持されているデータをフェッチさせる。
【００３２】
　先に述べたように、第３時間Ｔ3で、第２のホストリードサイクルが始まる。ホスト２０がリード信号をアサートし、アドレスバス４０に第２アドレスを乗せる。この例で、第２アドレスは代替アドレス（ＳＡ）である。自動増分復号化ロジック３８が第２アドレスを復号化し、レジスタ読み出し信号ＲＲをアサートする。なお、第２アドレスが代替アドレスではなく有効アドレスの場合には、回路２２は、先に説明したように、単一アドレスに保持されているデータを読み出す。
【００３３】
　第５時間Ｔ5に示されているように、ホスト２０がリード信号Ｒをアサートし、代替アドレスをアドレスバス４０に乗せて、第３のホストリードサイクルが始まる。この例では、ホストがスレーブ２４内の３つの順次アドレスに保持されているデータを読もうとしていると仮定している。
【００３４】
　第６時間Ｔ6になる前に、スレーブ２４は、図３で「ＶＤ２」と指定されている次の順次アドレスに保持されているデータをリターンし、それをリードデータバッファ３２に入力する。第６時間Ｔ6に、ステートマシン２６が、トライステートバッファ４６をイネーブルして、ホスト２０がリードデータバッファ３２の中にあるデータを読み出せるようにする。
【００３５】
　第６時間Ｔ6の後に続く第７時間Ｔ7に、ホスト２０がデータバス４２上のデータを読み出す。ホスト２０が読み出すデータは、次の順次アドレス（ＶＤ２）に保持されているデータである。スレーブ２４が第２時間Ｔ2のすぐ後にデータをフェッチするプロセスを開始するので、時間Ｔ6にステートマシン２６は次の順次アドレスに保持されているデータをホスト２０が使用できるようにする。すなわち、第５時間Ｔ5で第３のホストリードサイクルが始まる前にフェッチ作業のプロセスが始まったため、次の順次アドレスにあるデータが早めに使用可能になる。
【００３６】
　なお、先に説明した時間列（time sequence）においてはこの時点で、後続する「次の順次アドレス」（この例では、第１アドレス＋２にある）に保持されているデータをフェッチするプロセスが始まっている。ホスト２０が第５時間Ｔ5で第３のホストリードサイクルの始まりに代替アドレスをアドレスバス４２に乗せた時点で、事実上、ホストは後続の「次の順次アドレス」に保持されているデータを求める要求を合図したことになる。
【００３７】
　本発明によれば、ホスト２０はホストリードサイクルを繰り返し実行することができる。その際、ホスト２０は代替アドレスを指定し、後続する「次の順次アドレス」の各々に保持されているデータは同じホストリードサイクルの終わりにリターンされる。上述の通り、本発明の有意義な作用効果は、順次アドレスに対する後続の読み出し要求が一回のリードサイクルで達成されることである。
【００３８】
　　[ステートマシン]
　図２に示すのは、ステートマシン２６の動作を表示した状態図である。立ち上げ時、ステートマシン２６はアイドル状態１２２に入る。リード信号及びセットアップリード信号がアサートされていれば、ステートマシン２６はラッチ読み出し状態１３０に入り、そこでアドレスバス４０に乗っているアドレスがアドレスレジスタ２８の中にラッチされる。読み出し要求状態１３２で、ステートマシン２６はリード信号をアサートする。休止状態１３４で、ステートマシン２６はスレーブがデータをフェッチしてデータを出力するのを待つ。スレーブが要求されたデータを出力した後、ステートマシン２６はラッチリードデータ状態１３６で要求されたリードデータをリードデータレジスタ３２の中にラッチする。ステートマシン２６はその後、アイドル状態１２２に戻る。
【００３９】
　リード信号及びレジスタリード信号がアサートされていれば、ステートマシン２６は出力リードデータ状態１３８に入り、そこでステートマシン２６はトライステートバッファ３６をイネーブルにするので、リードデータバッファ３２の中に保持されているデータをホスト２０が使用できるようになる。自動増分アドレス状態１４０で、ステートマシン２６はアドレスレジスタ２８にある特定の量をインクリメント又はデクリメントする。ステートマシン２６は次に、先に説明した状態１３２、１３４、１３６に遷移する。
【００４０】
　　[書き込み動作]
　書き込み動作時の回路２２の動作を説明する。図１において、第１時間Ｔ1に、第１のライトサイクルが始まる。これを、ホスト２０がライト信号をアサートしてそれぞれのバス４０、４２にアドレス及びライトデータを乗せることで示している。ステートマシン２６はライト信号を受け取り、マルチプレクサ３４にアドレスをアドレスレジスタ２８に送らせ、そこでそのアドレスがラッチされる。加えて、ステートマシン２６はライトデータがライトデータレジスタ３０にラッチされるようにする。ステートマシン２６がライト信号（Ｗ）及びバイトイネーブル信号（ＢＥ）をアサートすると、スレーブ２４がライトデータを保持するプロセスを開始する。
【００４１】
　一実施例において、スレーブ２４は、時間Ｔ2で第２のライトサイクルが始まる前に、ライトデータを保持するプロセスを完了する。この実施例では、ホスト２０が第２時間Ｔ2で第２の書き込み動作をスタートさせるのに必要な信号をアサートして構わない。
【００４２】
　別の実施例では、スレーブ２４は、第２時間Ｔ2の前にライトデータを保持するプロセスを完了しない。この実施例では、ホスト２０が一つ以上のＮＯＰ（ノーオペレーション）命令を実行する。ノーオペレーション命令によりスレーブ２４はホスト２０が第２のライトサイクルを開始する前にライトデータを保持するプロセスを完了することができる。この実施例では、ホスト２０は、時間Ｔ3になるまで、第２の書き込み動作を始めるのに必要な信号をアサートするのを待つ。
【００４３】
　　[ステートマシン]
　図２を参照しながら、書き込み動作時のステートマシン２６の動作について説明する。ホスト２０がライト信号をアサートすると、ステートマシン２６はラッチ読み出し状態１２４に入り、そこでアドレス及びデータがアドレスレジスタ２８及びライトデータレジスタ３０にそれぞれラッチされる。書き込み要求状態１２６で、ステートマシン２６がスレーブ２４に送られるライト信号及びバイトイネーブル信号をアサートする。休止状態１２８で、ステートマシン２６はスレーブ２４がライトデータを保持するプロセスを完了するのを待ち、完了すると、アイドル状態１２２に戻る。
【００４４】
　一つの好適な実施例では、ホスト−スレーブ間のインタフェース回路２２及びスレーブ２４は単一のディスプレイコントローラチップに搭載される。この好適な実施例では、スレーブ２４は埋め込み型ＳＲＡＭメモリで構わない。別の好適な実施例では、ホスト−スレーブ間のインタフェース回路２２及びスレーブ２４は別々のチップに搭載される。
【産業上の利用可能性】
【００４５】
　本発明をホスト２２とスレーブ２４間のインタフェースとして説明してきた。ホスト２２としては、ＣＰＵ、ＤＳＰ（ディジタル信号プロセッサ）、あるいは当技術分野で知られている他のタイプのプロセッサが考えられる。同様に、スレーブ２４としては、記憶装置、メモリ、メモリコントローラ、埋め込み型メモリを有するディスプレイコントローラ、埋め込み型メモリを有するグラフィックスコントローラ、埋め込み型メモリ又はレジスタを有するあらゆるデバイス、あるいは周辺デバイスでメモリマップ入出力方式を用いてデバイス自体又はデバイスに内蔵されているレジスタ又はメモリをアクセスするものなどがある。
【００４６】
　説明を容易にするために、本発明をハードウェアとして説明してきたが、本発明の別の実施例として、開示した方法を部分的にあるいは全てソフトウェアで実現することも考えている。
【００４７】
　上記の明細書で採用した用語及び表現は説明のためであって、限定を目的としたものではない。また、表示すると共に説明した構成要素と同等のものを、あるいはそれらを部分的に除外することを意図しているものでもない。発明の範囲は以下に述べる特許請求の範囲によってのみ定められると共に限定されるものである。
【図面の簡単な説明】
【００４８】
【図１】ホスト、スレーブ、及び本発明によるステートマシンを含んだホスト−スレーブ間インタフェース回路を示す図。
【図２】図１のステートマシンを説明する図。
【図３】本発明に基づく読み出し動作を説明しているタイミング図。
【符号の説明】
【００４９】
２０　　ホスト
２２　　インタフェース回路
２４　　スレーブ
２６　　ステートマシン
２８、３０、３２　　レジスタ
３４　　マルチプレクサ
３６、３８　　復号化ロジック
４０、４２　　バス
４８　　加算器
【図１】
2004094945.tif 000003
【図２】
2004094945.tif 000004
【図３】
2004094945.tif 000005