(57)【要約】【課題】読み書きバイトイネーブルを用いる３２ビット汎用バスインタフェース【解決手段】ディスプレイコントローラは、表示される画像データを保持するメモリコアと、画像データの表示を可能にする構成データを保有するレジスタセットとを含むと共に、ディスプレイコントローラのメモリコアとマイクロプロセッサとの間でバスによる通信を可能にするバスインタフェースを含む。コマンド信号集合が、バスサイクル中に読み取り動作及び書き込み動作が発生するかどうかを定義すると共に、読み取り動作及び書き込み動作のビット毎に有効データが存在しているかどうかを定義する。コマンド信号集合の中の各コマンド信号は、読み取り動作又は書き込み動作のイネーブルデータを定義する。ディスプレイコントローラを含むシステム並びに種々のマイクロプロセッサと通信できるようにディスプレイコントローラを適合させるための方法も含む。【選択図】　　図２
2004030637.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサと通信するように構成されたディスプレイコントローラであって、当該ディスプレイコントローラは、
表示される画像データを保持するためのメモリコアと、
前記画像データの表示を可能にする構成データを保有するレジスタセットと、
前記ディスプレイコントローラのメモリコアと前記マイクロプロセッサとの間のバスによる通信を可能にするバスインタフェースとを有し、当該バスインタフェースはコマンド信号集合と通信するように構成され、当該コマンド信号集合は、バスサイクル中に読み取り動作及び書き込み動作が発生するかどうかを定義すると共に、有効データが読み取り動作及び書き込み動作のビット毎に存在しているかどうかを定義し、これにおいて前記コマンド信号集合における各コマンド信号は読み取り動作及び書き込み動作のうちどちらか一方のイネーブルデータを定義することを特徴とする。
【請求項２】
前記コマンド信号は、８ビット読み取り動作、１６ビット読み取り動作、及び３２ビット読み取り動作のうちの一つの読み取り動作の有効データのバス上の位置を指定する構成であることを特徴とする請求項１に記載のディスプレイコントローラ。
【請求項３】
前記コマンド信号集合は、書き込みイネーブル信号の部分集合及び読み取りイネーブル信号の部分集合によって定義されることを特徴とする請求項１に記載のディスプレイコントローラ。
【請求項４】
前記書き込みイネーブル信号の部分集合は、４つの書き込みイネーブルビットによって定義されることを特徴とする請求項３に記載のディスプレイコントローラ。
【請求項５】
前記読み取りイネーブル信号の部分集合は、４つの読み取りイネーブルビットによって定義されることを特徴とする請求項３に記載のディスプレイコントローラ。
【請求項６】
前記４つの書き込みイネーブルビットとは、ＷＥ０＃、ＷＥ１＃、ＷＥ２＃、ＷＥ３＃であることを特徴とする請求項４に記載のディスプレイコントローラ。
【請求項７】
前記４つの読み取りイネーブルビットとは、ＲＤ０＃、ＲＤ１＃、ＲＤ２＃、ＲＤ３＃であることを特徴とする請求項５に記載のディスプレイコントローラ。
【請求項８】
各書き込みイネーブル信号は論理値がハイの時、読み取り動作を示していることを特徴とする請求項３に記載のディスプレイコントローラ。
【請求項９】
各読み取りイネーブル信号は論理値がハイの時、書き込み動作を示していることを特徴とする請求項３に記載のディスプレイコントローラ。
【請求項１０】
中央処理装置（ＣＰＵ）と、
データバスと、
前記データバスを介して前記ＣＰＵと通信するディスプレイコントローラとを備えるシステムであって、前記ディスプレイコントローラは前記データバスで前記ＣＰＵとの通信を可能にするバスインタフェースを含み、当該バスインタフェースはコマンド信号集合と通信するように構成され、前記コマンド信号集合は、バスサイクル中に読み取り動作及び書き込み動作が発生するかどうかを定義すると共に、有効データが読み取り動作及び書き込み動作のビット毎に存在しているかどうかを定義し、これにおいて前記コマンド信号集合における各コマンド信号は読み取り動作及び書き込み動作のうちどちらか一方のイネーブルデータを定義することを特徴とするシステム。
【請求項１１】
前記コマンド信号は、８ビット読み取り動作、１６ビット読み取り動作、及び３２ビット読み取り動作のうちの一つの読み取り動作の有効データのバス上の位置を指定する構成であることを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記コマンド信号集合は、書き込みイネーブル信号の部分集合及び読み取りイネーブル信号の部分集合によって定義されることを特徴とする請求項１０に記載のシステム。
【請求項１３】
前記書き込みイネーブル信号の部分集合は、４つの書き込みイネーブルビットによって定義されることを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記読み取りイネーブル信号の部分集合は、４つの読み取りイネーブルビットによって定義されることを特徴とする請求項１２に記載のシステム。
【請求項１５】
前記４つの書き込みイネーブルビットとは、ＷＥ０＃、ＷＥ１＃、ＷＥ２＃、ＷＥ３＃であることを特徴とする請求項１３に記載のシステム。
【請求項１６】
前記４つの読み取りイネーブルビットとは、ＲＤ０＃、ＲＤ１＃、ＲＤ２＃、ＲＤ３＃であることを特徴とする請求項１４に記載のシステム。
【請求項１７】
前記ディスプレイコントローラには２１ビットのアドレス空間があることを特徴とする請求項１０に記載のシステム。
【請求項１８】
マイクロプロセッサとディスプレイコントローラとの間で読み取り動作又は書き込み動作を実行するための方法であって、当該方法は、
読み取り動作又は書き込み動作がバスサイクル中に実行されるかどうかを示すと共に、有効データが読み取り動作及び書き込み動作のビット毎に存在しているかどうかを示すように構成されたコマンド信号の集合を定義し、これにおいて前記コマンド信号集合における各コマンド信号は読み取り動作及び書き込み動作のうちどちらか一方のイネーブルデータを定義し、
システムバスと通信しているディスプレイコントローラを選択し、
前記コマンド信号集合をアサートし、
動作タイプを判定すると共に前記システムバス上の有効データのビット位置を判定するために前記アサートされたコマンド信号集合をサンプリングし、
システムバスにおいて前記有効データを有するビット位置を選択し、
読み取り動作又は書き込み動作を実行することを特徴とする。
【請求項１９】
前記コマンド信号は、８ビット読み取り動作、１６ビット読み取り動作、及び３２ビット読み取り動作のうちの一つの読み取り動作の有効データのバス上の位置を指定する構成であることを特徴とする請求項１８に記載の方法。
【請求項２０】
伝播遅延に対応できるようにするためにセットアップ時間及びホールド時間を定義することをさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２１】
前記動作タイプ及びシステムバス上の有効データのビット位置を判定するためにアサートされたコマンド信号集合をサンプリングするオペレーションは、さらに、
有効データが使用可能になるまでバスサイクルを延長することを含むことを特徴とする請求項１８に記載の方法。
【請求項２２】
前記有効データが使用可能になるまでバスサイクルを延長するオペレーションは、さらに、
ＷＡＩＴ＃信号をローに駆動することを含むことを特徴とする請求項２１に記載の方法。
【請求項２３】
種々のマイクロプロセッサと通信できるようにディスプレイコントローラを適合させるための方法であって、当該方法は、
チップセレクト信号を受け取り、
チップセレクト信号の受け取りを通知し、
バスサイクル中に読み取り動作又は書き込み動作が実行されるかどうかを示すと共に、有効データが読み取り動作及び書き込み動作のビット毎に存在しているかどうかを示すように構成されたコマンド信号の集合を受け取ることからなり、これにおいて前記コマンド信号集合における各コマンド信号は読み取り動作及び書き込み動作のうちどちらか一方のイネーブルデータを定義し、さらに、
前記コマンド信号によって定義された有効データの読み取り又は書き込み動作を実行することを特徴とする。
【請求項２４】
伝播遅延に対応できるようにするためにセットアップ時間及びホールド時間を定義することをさらに含むことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記コマンド信号集合は、４つの書き込みイネーブル信号の部分集合と４つの読み取りイネーブル信号の部分集合とによって定義されることを特徴とする請求項２３に記載の方法。
【請求項２６】
前記４つの書き込みイネーブル信号は、書き込みイネーブルビットＷＥ０＃、ＷＥ１＃、ＷＥ２＃、ＷＥ３＃によって定義されることを特徴とする請求項２５に記載の方法。
【請求項２７】
前記４つの読み取りイネーブル信号は、読み取りイネーブルビットＲＤ０＃、ＲＤ１＃、ＲＤ２＃、ＲＤ３＃によって定義されることを特徴とする請求項２５に記載の方法。
【請求項２８】
前記コマンド信号によって定義された有効データの読み取り又は書き込み動作を実行するオペレーションはさらに、
有効データが使用可能になるまで前記バスサイクルを延長することを含むことを特徴とする請求項２３に記載の方法。
【請求項２９】
前記バスサイクルは、ＷＡＩＴ＃信号をローに駆動することによって延長されることを特徴とする請求項２８に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的にはコンピュータシステムに関し、より具体的にはいろいろなマイクロプロセッサと通信する能力を有する汎用バスインタフェースに関する。
【０００２】
【従来の技術】
消費者向け携帯用電子機器は、今日、社会のあらゆる分野に普及している。そうした機器の例として、パーソナルディジタルアシスタント（ＰＤＡ）、モバイル電話、ページャ、ウェブタブレットなどがある。こうした携帯用機器は、中央処理装置（ＣＰＵ）を含む埋め込み型のシステムを有する。こうしたハンドヘルド機器が提供できる機能範囲は狭いため、これらの埋め込み型システムに使用されるＣＰＵはデスクトップやラップトップのＣＰＵほど強力な計算能力は必要ない。ある種のハンドヘルド機器専用に設計されたＣＰＵを提供するベンダは数多く存在する。よく知られているように、ＣＰＵはそのＣＰＵをサポートする固有の（ｎａｔｉｖｅ）バスも有する。さらに、機器は、液晶ディスプレイ（ＬＣＤ）コントローラなどの、ディスプレイコントローラの制御により画像を表示する表示画面を有する。ディスプレイコントローラは、ＣＰＵとは異なるベンダが製造するのが普通で、ディスプレイコントローラがシステムバスを介して特定のＣＰＵと通信可能にするバスインタフェースを持つようにカスタマイズされる。多種多様なＣＰＵがあるため、ディスプレイコントローラは、ある範囲のＣＰＵとインタフェースがとれるようにカスタマイズされる傾向がある。
【０００３】
図１は、ＬＣＤコントローラと通信しているＣＰＵを含む埋め込み型システムの概略図である。ＣＰＵ１００は、バス１０２を介してＬＣＤコントローラ１０６のバスインタフェース１０４と通信する。ＣＰＵ１００のブランド及びバス１０２のタイプによって、ＬＣＤコントローラ１０６のバスインタフェース１０４の要件が決まる。従って、ＬＣＤコントローラ１０６のバスインタフェース１０４は、市場に出ている種々のバス及びＣＰＵのタイプに合わせてカスタマイズされる。カスタマイズするには、ＬＣＤコントローラがタイプの異なるバス及びＣＰＵの各々に対応できるいろいろなバスインタフェースを有していなければならない。
【０００４】
モトローラ（Ｍｏｔｏｒｏｌａ）、日立（Ｈｉｔａｃｈｉ）、インテル（Ｉｎｔｅｌ）などベンダが供給するＣＰＵは種類が多いため、ディスプレイコントローラのバスインタフェースのカスタマイズ化は、使用可能なマイクロプロセッサ及びその固有のバスインタフェースの各々をサポートするというお金のかかる命題となる。すなわち、ＣＰＵごとにいろいろなバスインタフェースがＬＣＤコントローラのサプライヤによってサポートされていなければならない。固有のバスインタフェースは各々、ピンが異なると共に対応すべき信号が異なるので、どのインタフェースがどのＣＰＵと関連づけられるかを管理するのは難しいタスクとなる。このように、この方法ではカスタマイズ化を要するので、ＬＣＤチップが複雑になりその柔軟性が低下する。
【０００５】
ＬＣＤコントローラを組み込んだ消費者向け携帯用電子機器は、電池を電源とするのが一般的なため、低消費電力で動作するように設計されている。さらに、携帯性を念頭において設計されるため、機器はどんどん小型化されている。そのために、使用可能なインタフェースが多いからといって、いろいろと異なるバスインタフェースを一つのＬＣＤコントローラと組み合わせるのだけでは実用的でない。すなわち、ＬＣＤコントローラに全てのバスインタフェースを単純に付加するとしたら、色々な信号に対応できるようにするためにＬＣＤは莫大なピン数を有することになる。そのために、各バスインタフェースを単純にＬＣＤコントローラに付加したとしたら、ＬＣＤコントローラは許容されない大きさになり、電力消費も増大する。
【０００６】
【特許文献１】
米国特許第６，１２２，６９０号明細書
【特許文献２】
米国特許第６，０４９，８４４号明細書
【０００７】
【発明が解決しようとする課題】
そこで、チップアーキテクチャを複雑にしたりコントローラのサイズを大きくしたりすることなく、いろいろなマイクロプロセッサと自由に通信できる汎用バスインタフェースを有するＬＣＤコントローラを提供するために、先行技術が抱える問題を解決する必要がある。
【０００８】
【課題を解決するための手段】
大まかに言えば、本発明は、いろいろなマイクロプロセッサ及びその固有のバスと整合性を有する構成の汎用バスインタフェースを提供することで、こうしたニーズに応えるものである。なお、本発明の実現の仕方は、プロセス、システム、或いはデバイスなど数多い。本発明の実施例を以下に数例あげて説明する。
【０００９】
一つの実施例では、マイクロプロセッサと通信するように構成されたディスプレイコントローラを提供する。このディスプレイコントローラは、表示される画像データを保持するためのメモリコアと、その画像データの表示を可能にする構成データを保有するレジスタセットとを含む。ディスプレイコントローラのメモリコアとマイクロプロセッサとをバスを介して通信可能にするバスインタフェースも含まれる。バスインタフェースはコマンド信号集合と通信するように構成されている。コマンド信号集合は、バスサイクル中に読み込み動作及び書き込み動作が発生するかどうかを定義すると共に、その読み込み動作及び書き込み動作のビット毎に有効なデータが存在しているかどうかを定義する。コマンド信号集合の中の各コマンド信号は、読み取り動作又は書き込み動作のイネーブルデータを定義する。
【００１０】
別の実施例では、汎用バスインタフェースを有するディスプレイコントローラを備えるシステムを提供する。このシステムは、中央処理装置（ＣＰＵ）及びデータバスを含む。またデータバスを介してＣＰＵと通信するディスプレイコントローラを含む。ディスプレイコントローラは、データバスを介してＣＰＵとの通信を可能にするバスインタフェースを有する。バスインタフェースはコマンド信号集合と通信する構成となっている。コマンド信号集合は、バスサイクル中に読み取り動作及び書き込み動作が発生するかどうかを定義すると共に、読み取り動作及び書き込み動作のビット毎に有効なデータが存在しているかどうかを定義する。コマンド信号集合の各コマンド信号は、読み取り動作又は書き込み動作のイネーブルデータを定義する。
【００１１】
また別の実施例では、マイクロプロセッサとディスプレイコントローラとの間で読み取り動作又は書き込み動作を実行するための方法を提供する。この方法は、コマンド信号集合を定義することから始まる。コマンド信号集合は、バスサイクル中に読み取り動作又は書き込み動作が実行されるかどうかを示すと共に、読み取り動作及び書き込み動作のビット毎に有効データが存在しているかどうかを示すように構成されている。コマンド信号集合の中の各コマンド信号は、読み取り動作及び書き込み動作のうちの一方のイネーブルデータを定義する。次に、システムバスと通信するディスプレイコントローラが選択される。そして、コマンド信号集合が有効（ａｓｓｅｒｔ）となる。次に、その有効となったコマンド信号集合が、オペレーションのタイプ及びシステムバス上にある有効データのビット位置を判定するためにサンプリングされる。次に、その有効データを有するシステムバスのビット位置が選択される。そして、読み取り動作又は書き込み動作が実行される。
【００１２】
さらに別の実施例では、ディスプレイコントローラをいろいろなマイクロプロセッサと通信可能に適合させるための方法を提供する。この方法は、チップセレクト信号を受け取ることから始まる。そして、そのチップセレクト信号の受け取りを通知する。次に、コマンド信号集合を受け取る。コマンド信号集合は、バスサイクル中に読み取り動作又は書き込み動作が実行されるかどうかを示すと共に、読み取り動作及び書き込み動作のビット毎に有効データが存在しているかどうかを示すように構成されている。コマンド信号集合の中の各コマンド信号は、読み取り動作又は書き込み動作のイネーブルデータを定義する。次に、コマンド信号によって定義された有効データの読み取り動作又は書き込み動作が実行される。
【００１３】
本発明のその他の態様並びに効果については、本発明の原理を例として示した添付の図面と共に以下に述べる詳細な説明から明白になる。
【００１４】
【発明の実施の形態】
本願発明を、いろいろな中央処理装置（ＣＰＵ）と通信可能に適合されたコントローラの汎用バスインタフェースを提供するための装置及び方法として説明する。なお、バスインタフェースを介して処理される種々の信号を、本明細書では信号の略語として後ろに符号「＃」を付けて示す。言うまでもなく、その他、技術分野で広く使用される信号の指定には、上線を付けて略したり文字「Ｘ］を後ろに付ける省略形もある。さらに、論理のハイレベルを２値の「１」を有すると称する一方、論理のローレベルを２値の「０」を有すると称することもできる。しかしながら、当業者であれば、以下の説明に鑑みて、これら具体的な詳細の一部又は全てを知らなくても本発明を実施できることは明白であろう。その他の場合は、本発明を不要に不明瞭にしないために、よく知られたプロセスオペレーションについては詳細な説明を省いた。
【００１５】
本発明の実施例は、ＣＰＵと通信するディスプレイコントローラの汎用バスインタフェースを提供するものである。一実施例では、汎用バスインタフェースに供給されるコマンド信号の構成（ｃｏｎｆｉｇｕｒａｔｉｏｎ）により、いろいろなマイクロプロセッサ及びそれと関連づけられるネイティブバスとの通信が可能になる。さらに詳細に以下に説明するように、コマンド信号は、実行される読み取り又は書き込み動作を定義すると共に、ネイティブバス上の有効データの位置を定義する構成になっている。別の実施例においては、汎用バスインタフェースはデータの非同期交換に対応できる。ここで、ディスプレイコントローラとＣＰＵは、クロック速度が異なる別々のクロックによって制御される。ＣＰＵとディスプレイコントローラとの間でハンドシェイクが定義されるので、クロック速度間に動作速度の差があるために必要となった以前の制約条件はあてはまらない。
【００１６】
ここで説明する汎用バスインタフェースは、種々のＣＰＵ、それもとりわけ、ＨＩＴＡＣＨＩ，　ＭＯＴＯＲＯＬＡ，　ＩＮＴＥＬなどが製造しているプロセッサを含む、埋め込み型の市場に出ているＣＰＵと通信する機能を有する。よく知られているように、埋め込みシステム（ｅｍｂｅｄｄｅｄ　ｓｙｓｔｅｍ）によって、用途特定の機能集合を実行するマイクロプロセッサベースの電子システムが定義される。埋め込みシステムは、感知や入力への応答専用に用いられる傾向がある。当業者であれば、埋め込みシステムは、自動車、通信、消費者、工業など多くの産業界に存在していることが分かるだろう。もっと具体的に言えば、埋め込みシステムは、パーソナルディジタルアシスタント（ＰＤＡ）、モバイル電話、ページャ、ウェブタブレットなど、コンパクトな携帯用ハンドヘルド機器と共に使用されている。これら携帯用ハンドヘルド機器は、その性質上、デスクトップやラップトップコンピュータなどと同等の消費電力を必要としない。さらに、こうした機器は、電池電力に限界があるので、デスクトップやラップトップシステムと比べて電力消費が少ない。従って、埋め込みシステムを組み込んだ機器は、提供できる機能の程度がデスクトップコンピュータシステムと同じではない。以下に説明する実施例はハンドヘルド電子機器用のＣＰＵを対象にしているが、こうした実施例はあくまで模式的なものであり、その適応範囲を制限するものではない。当業者であれば、この汎用バスインタフェースが、デスクトップや携帯用パーソナルコンピュータのＣＰＵとも通信するように構成可能なことは明らかであろう。
【００１７】
一つの実施例において、汎用バスインタフェースは２１ビットのアドレス空間にアドレス指定可能な３２ビットのデータ幅をサポートする。言うまでもなく、バスインタフェースは、任意のビット数のアドレス空間のデータ幅をサポートすることができる。バスインタフェースは、以下に定義するコマンド信号を介して、ほとんどのＣＰＵインタフェースに取り付けなければならない信号に対応できるよう構成されている。汎用バスインタフェースは、リトルエンディアン（ｌｉｔｔｌｅ　ｅｎｄｉａｎ）モード及びビッグエンディアン（ｂｉｇ　ｅｎｄｉａｎ）モードの両方をサポートしている。当業者であれば、リトルエンディアンモード及びビッグエンディアンモードは、一連のバイトがメモリに保持される順番を記述していることが分かるだろう。以下にさらに詳しく説明するように、バスインタフェースの実施例には、同期モードで動作するように構成されたバスインタフェースと、非同期モードで動作するように構成されたバスインタフェースとがある。同期モードでは、ハイをアクティブにあるいローをアクティブに設定可能な外部ＷＡＩＴ＃制御信号を利用してバスサイクルを延長することができる。非同期汎用バスインタフェースは、ディスプレイコントローラのクロック速度とそのディスプレイコントローラと通信しているＣＰＵのクロック速度との差異に影響されないように構成されている。さらに、非同期バスインタフェースは準安定状態の発生を最小限にするための回路を有している。
【００１８】
図２は、本発明の一実施例に基づく、ＣＰＵと通信している汎用バスインタフェースを有する液晶ディスプレイ（ＬＣＤ）コントローラなどの、ディスプレイコントローラの概略図である。ＣＰＵ１０８はバス１１２を介してＬＣＤ１１６と通信する。ＣＰＵは、必要な任意の個数のマイクロプロセッサでいい。一実施例において、ＣＰＵ１０８は、埋め込みシステム用に設計されたマイクロプロセッサである。そうした埋め込みシステムの一つは、ＨＩＴＡＣＨＩ　ＳＨ３マイクロプロセッサで、ＳＨ３マイクロプロセッサをサポートする固有のバスを内蔵している。なお、ＬＣＤコントローラ１１６は埋め込みシステム及び非埋め込みシステムのいろいろなＣＰＵと通信するように構成された汎用バスインタフェース１１４を内蔵しているので、ＨＩＴＡＣＨＩ　ＳＨ３マイクロプロセッサは説明のためにとりあげただけで本発明をそれに限定することを意図しているわけではない。本明細書で採用しているＬＣＤコントローラ１１６は、どんなディスプレイコントローラでもよく、埋め込みシステムと関連づけられていてもいなくても構わない。
【００１９】
図２の説明に話を戻すと、ＬＣＤコントローラ１１６は、メモリコア領域１１８とレジスタ領域１２０を有する。メモリコア領域１１８は、ＬＣＤパネルに表示される画像のデータを保有している。レジスタ領域１２０（レジスタセットとも言われる）は、ＬＣＤコントローラ１１６を構成するためのデータを保有し、解像度、画面の大きさ、パネルタイプなど、画像の表示に使用されるディスプレイパネルの構成データを含んでいる。すなわち、レジスタセットのレジスタは、ＬＣＤコントローラ１１６がメモリに入っている画像データを表示するために表示画面とインタフェースをとれるようにプログラミングされている。ＣＰＵ１０８は、ＬＣＤコントローラ１１６をＣＰＵのメモリ１１０にマップするレジスタを保有している。従って、ＣＰＵメモリ１１０がアドレス指定されると、ＣＰＵ１０８はチップセレクト信号（ＣＳ＃）を有効にする。一実施例において、ＣＳ＃は、以下に詳細に説明するように、ＬＣＤコントローラが現在アドレスされていることをＬＣＤコントローラ１１６に知らせるために使用される。
【００２０】
図３は、本発明の一実施例に基づく、現在のバスサイクルがリードサイクルかライトサイクルかを判定すると共にバス上の有効データの位置を判定する、コマンド信号集合を説明した表である。以下に説明するように、リードサイクル又はライトサイクルを指定する信号と同じ集合が、同時に、３２ビットデータバスのどのバイトが有効データを保有しているかを指定している。従って、バスサイクルが読み取り動作か書き込み動作かどうかを指定している同じ信号の集合によって、３２ビットデータバスのある特定のビット幅、すなわち、８ビット、１６ビット、又は３２ビットが指定される。なお、コマンド信号は各々、読み取り動作か書き込み動作かいずれかのイネーブルデータを定義するものである。
【００２１】
さらに図３において、チップセレクト信号（ＣＳ＃）がローで有効になると、バスサイクルが始まる。ＣＳ＃が有効になった後、一つ以上の読み取りイネーブル信号（ＲＤｎ＃）が有効になることで、リードサイクルが指定される。もしくは、ＣＳ＃が有効になった後、一つ以上の書き込みイネーブル信号（ＷＥｎ＃）が有効になることで、ライトサイクルが設定される。さらに、３２ビットデータバスのどのバイトが有効データを保有しているかをＲＤｎ＃及びＷＥｎ＃の構成によって指定することができる。すなわち、リードサイクル又はライトサイクルを、８ビット、１６ビット、又は３２ビットのリードサイクル又はライトサイクルとしてさらに指定することができる。なお、８ビット、１６ビット、又は３２ビットのリード／ライトに対応できるようにすることで、液晶ディスプレイ（ＬＣＤ）コントローラなどディスプレイコントローラのバスインタフェースは、８ビット又は１６ビットの読み取りに対応できるインタフェースを必要とするＣＰＵと通信できる。従って、ディスプレイコントローラのバスインタフェースは種々のマイクロプロセッサとインタフェースをとることができる。
【００２２】
図３に戻ると、ＣＳ＃はロー・アクティブであることがわかる。リードサイクルでは、ＷＥ＃（ＷＥ＃０〜ＷＥ＃３）が全てハイに駆動され、リードサイクルであること、つまりＬＣＤコントローラがＣＰＵにデータを供給するサイクルであることを示す。一方ライトサイクルでは、ＲＤ＃（ＲＤ＃０〜ＲＤ＃３）が全てハイに駆動され、ライトサイクルであること、つまりＣＰＵがデータをＬＣＤコントローラ宛てに送るサイクルであることを示す。読み取り時にＷＥ＃が全てハイになると、データバス上の有効データの位置がＲＤ＃信号の構成からわかる。例えば、コマンド信号の構成を明確にするために、行１２１に定義されている高位偶数８ビット読み出しのコマンド信号符号化についてさらに詳しく説明する。ここでは、ＣＳ＃がロー（有効）で、ＣＰＵがＬＣＤコントローラを選択していることがわかる。ＷＥ＃０〜ＷＥ＃３は全てハイで、リードサイクルであることがわかる。ＲＤ＃３、ＥＤ＃１、ＲＤ＃０はハイになっているが、ＲＤ＃２はローである。この組合せは、有効な情報がデータバスのビット１５〜２３に保有されていることを示している。従って、行１２１のコマンド信号は、高位偶数８ビットのリードバスサイクルを定義している。なお、一つのコマンド信号集合は、その処理が読み取り動作か書き込み動作かを定義すると共に、ディスプレイコントローラとＣＰＵが通信する際に用いられるデータバス上の有効データの位置も定義している。すなわち、読み取りか書き込みかという一つのコマンド信号に、８ビットのセグメントが使用されている。
【００２３】
さらに、図３のコマンド信号は、読み取り動作又は書き込み動作のイネーブルデータも定義している。つまり、ＷＥ＃０〜ＷＥ＃３は書き込み動作のイネーブルデータを定義し、ＲＤ＃０〜ＲＤ＃３は読み取り動作のイネーブルデータを定義している。従って、このバスインタフェースは、種々様々なＣＰＵに対応できるように、コマンドに基づいて読み書きの実行を修正することができる。すなわち、このバスインタフェースは、３２ビット読み取り動作に限定されることなく、８ビット、１６ビット、３２ビットの読み出しを必要とするＣＰＵインタフェースとそれぞれ通信する能力を有する。なお、図３に示した論理ハイ及びローの値を逆にしてコマンド信号集合を定義しても構わない。
【００２４】
図４は、本発明の一実施例に基づく、現在のバスサイクルがリードサイクルかライトサイクルかを判定すると共に、バス上の有効データの位置を判定するコマンド信号と関連づけられる汎用バスインタフェースのタイミング図である。バスクロック周期（ＴＣＬＫ）はクロックバス（ＣＬＫ）に対するシステム速度を示している。例えば、ＬＣＤコントローラは、Ａ［２０：０］で表わされているように２１ビットのアドレス空間を有している。そして、ＬＣＤコントローラ内のメモリ量はアドレス空間によって決まる。当業者であれば、ＬＣＤコントローラのアドレス空間量が様々であることは明らかであろう。一実施例として、ＬＣＤコントローラは約２メガバイト（ＭＢ）のメモリを有する。すなわち、２１ビットのアドレス空間が約２ＭＢのメモリにマップされる。ＬＣＤコントローラ内部のメモリはアドレス線Ａ［２０：０］によってアドレスが指定される。当業者であれば、ＬＣＤコントローラは、ＬＣＤコントローラを有するシステムに適した任意のメモリ量を保有できるのであって、２ＭＢのメモリに限定されるものではないことが分かるだろう。メモリ／レジスタ信号（Ｍ／Ｒ＃）は、ＬＣＤコントローラのメモリ（Ｍ）又はレジスタ（Ｒ）の選択を行なう信号である。例えば、Ｍ／Ｒ＃端子から２ＭＢメモリが追加される。先に述べたように、メモリコアは表示される画像を保有するのに対し、レジスタはデータが表示される表示画面を構成するデータ、つまり構成データを含んでいる。当業者であれば、図４において説明したバスインタフェースは、ＣＰＵ及びＬＣＤコントローラが共通のクロックを共用している同期バスインタフェースであることが明らかであろう。
【００２５】
図２において、ＣＰＵ１０８は、ＬＣＤコントローラ１１６をＣＰＵのメモリ１１０にマップするレジスタを備えている。従って、ＣＰＵメモリ１１０がアドレス指定されると、ＣＰＵ１０８はＣＳ＃をロー（有効）としてＬＣＤコントローラ１１６が選択されていることをＬＣＤコントローラに知らせる。言うまでもなく、ＬＣＤコントローラが選択されていることを示すのに、ＣＳ＃をローで有効としてもハイで有効としても構わない。図４では、クロックの立上りエッジで信号がサンプリングされているが、当業者であれば、クロックの立下りエッジでサンプリングすることもできることは明らかであろう。クロックの立上りエッジで信号をサンプリングする場合、パラメータｔ２は、バスクロックがＣＳ＃がローになるのを確認するためのセットアップ時間を示す。コマンド信号ＷＥ＃０、ＷＥ１＃、ＷＥ２＃、ＷＥ３＃、ＲＤ０＃、ＲＤ１＃、ＲＤ２＃、ＲＤ３＃の構成は、アクセスタイプ、つまり、読み取り動作か書き込み動作かを示している。例えば、図３において、ＲＤ３＃が０（ロー）で、残りの読み取り信号及び書き込み信号が１（ハイ）のコマンド信号は、アクセスタイプが高位奇数８ビットの読み出しであることを示している。従って、コマンド信号で定義された有効データを有しているのはバスのデータビット３１〜２４だから、これらのビットが選択される。従って、ＣＰＵは、読み取り動作時に、データバスのビット３１〜２４をサンプリングする。
【００２６】
図４のパラメータｔ１は、ＣＳ＃がローになることを確認すると共にＷＥ＃またはＲＤ＃の構成により読み取り動作又は書き込み動作が発生するかどうかを判定するためのＬＣＤチップのセットアップ時間を表わしている。当業者であれば、セットアップ時間によって確実にＣＳ＃が好ましい状態でサンプリングされるようになることが明らかであろう。セットアップ時間ｔ３が、ディスプレイコントローラがリードコマンド信号及びライトコマンド信号をサンプリングする前に、リードコマンド信号及びライトコマンド信号の時間枠（ｗｉｎｄｏｗ）が有効となるようにする。例として、図３の行１２３に明記した、低位偶数８ビットの読み取り動作を定義するよう構成されたコマンド信号に基づく読み取り動作を図４のタイミング図でさらに説明する。当業者であれば、本明細書で言及しているセットアップ時間及びホールド時間は、ハイ又はローの信号がサンプリングされた時点からそのハイ又はローの信号に基づいて次の動作が発生するまでの伝播遅延に対応できることが明らかであろう。
【００２７】
図４に説明を戻すと、ＣＳ＃がローになると、矢印１２６で示すように、待ち信号（ＷＡＩＴ＃）がタイミングパラメータｔ４内でローに駆動される。ＷＡＩＴ＃は、ＬＣＤコントローラなどディスプレイコントローラからＣＰＵに出力され、ＬＣＤコントローラがデータを供給する準備ができるまでＣＰＵに待つよう要求する信号である。当業者であれば、読み取り動作では、ＬＣＤコントローラがＣＰＵにデータを供給することが分かるだろう。ＷＡＩＴ＃がローになっている間は、ＣＰＵは、ＬＣＤコントローラがデータの供給準備ができるまでサイクルを延長する。従って、ＣＰＵはＷＡＩＴ＃のサンプリングを続行し、ＷＡＩＴ＃がハイになるまでサイクルを延長し続ける。矢印１２８で示すように、有効データがバスに乗せられたらＷＡＩＴ＃がハイになる。バスクロックの立上りエッジで、ＣＰＵはＷＡＩＴ＃をサンプリングしてＷＡＩＴ＃がハイになったことを確認するので、ＣＰＵはコマンド信号で指定された低位偶数８ビット読み取りのビット０〜７に保有されているデータを読み出すことができる。リードサイクルのタイミングパラメータｔ１３の間に、有効データがＣＰＵに供給される。先に説明したように、クロックサイクルの立上りエッジではなく、立下りエッジでサンプリングするようにＣＰＵ又はＬＣＤコントローラを構成することもできる。
【００２８】
引き続き図４において、リードサイクルのタイミングパラメータｔ５は、ＬＣＤコントローラがデータバスを駆動する時間周期を定義している。黒い包絡線１２２は、ＬＣＤコントローラがデータバスを駆動中であり、そのためにバスが別のコントローラによって使用できないことを示している。図４の黒い包絡線は使用可能な有効データがないことを表わす一方、白い包絡線は有効データが使用可能であることを表わしている。従って、有効な読み取りデータは白い包絡線１２４内の或る時点で使用可能になる。タイミングパラメータｔ１６は、ＣＰＵがデータを読み取れるように、ＷＡＩＴ＃がハイになるためのセットアップ時間となる。従って、ＷＡＩＴ＃がハイの時バスクロックの立上りエッジが発生するので、タイミングパラメータｔ１３の間にデータが転送される、つまり、ＣＰＵがデータをラッチする。なお、タイミングパラメータｔ１１内に、ＷＡＩＴ＃は高インピーダンス状態に駆動され、他のデバイスが使用できるようにバスの制御がＬＣＤコントローラによって放棄される。
【００２９】
図４において、書き込み動作では、ＣＰＵがバスでデータをＬＣＤコントローラに送る。ＣＳ＃は、先に述べたようにローに駆動され、ＬＣＤコントローラによってサンプリングされる。セットアップ時間ｔ３により、ＬＣＤコントローラが読み書きコマンド信号をサンプリングする前に、読み書きコマンド信号の時間枠が有効となる。読み書きコマンド信号の構成はアクセスタイプを示すことになる。例として、例示的な書き込み動作を説明するために図３の３２ビット書き込みを採用する。すなわち、コマンド信号ＷＥ０＃、ＷＥ１＃、ＷＥ２＃、ＷＥ３＃は全てロー（値０）で、ＲＤ０＃、ＲＤ１＃、ＲＤ２＃、ＲＤ３＃は全てハイ（値１）である。従って、データバスに乗っている全３２ビットが有効である。読み取り及び書き込みコマンド信号がサンプリングされるのと同時に、アドレスがサンプリングされ、そのデータがＬＣＤのメモリコアのどこにアドレス指定されるのかを判定する。書き込み動作の場合、ＣＰＵは読み取りイネーブル信号をハイにする。先に述べたように、３２ビットの書き込みでは、４つのライトイネーブル信号（ＷＥ０＃〜ＷＥ３＃）が全てローに駆動され、データバスに乗っている全３２ビットが有効であることを示す。有効データが使用可能になるまでバスサイクルを延長するためにＷＡＩＴ＃はローに駆動される。タイミングパラメータｔ６は、ＣＰＵがデータをデータバスに乗せなければならないセットアップ周期を定義している。ＬＣＤコントローラがデータを受け取る準備ができるまで、ＷＡＩＴ＃はローに保持され、データの受け取り準備ができた時点でＷＡＩＴ＃はハイに駆動される。ＷＡＩＴ＃がハイになると、データがＬＣＤコントローラによってサンプリングされ、ラッチされる。
【００３０】
引き続き図４において、タイミングパラメータｔ１２はホールド時間である。先に述べたように、信号のサンプリング及びサンプリングの結果として生じる動作の間にいくらかの伝播遅延がある。従って、ｔ１２は、ＬＣＤコントローラがデータ、つまり、ＷＡＩＴ＃を受け取る準備ができた後データが保持される時間周期を定義するホールド時間である。ＷＡＩＴ＃をハイに駆動するということはデータが書き込まれたことを意味する。読み取り動作と同様に、ＷＡＩＴ＃が一旦無効（ハイに駆動）となると、ＣＰＵは、線１３０で示した通り読み取り又は書き込みのストローブを無効としてそのサイクルを終える。さらに、ＣＰＵは、線１３２で示した通りＣＳ＃をハイに駆動することによってＣＳ＃を有効を解除する。タイミングパラメータｔ９は、ＷＡＩＴ＃の有効解除とリードサイクル又はライトサイクルの有効解除との間の時間周期を表わしている。
【００３１】
図５は、図４と関連づけられるタイミングパラメータをリストにした表である。タイミングパラメータｔ１〜ｔ６、ｔ９、ｔ１１〜ｔ１３、ｔ１６については、既に図４で説明した通りである。タイミングパラメータｔ７は、ＣＰＵがコマンド信号を有効解除した後、現サイクルをアクティブに、つまり、ＣＳ＃をローに保っておかなければならない時間周期を表わしている。パラメータｔ７の最小時間はゼロナノ秒（ｎｓ）であるが、当業者であれば、ほとんどのＣＰＵが、コマンド信号が有効解除された後１か２クロック経たないと、ＣＳ＃を有効解除しないことが分かるだろう。従って、ＬＣＤコントローラは、コマンド信号が有効解除されてからＣＳ＃を有効解除する能力を有するだけでなく、ＣＰＵからのコマンド信号及びＣＳ＃をコンカレントに有効解除する能力も有する。タイミングパラメータｔ８は、ＣＳ＃が有効解除（ハイに保持）される時間周期を表わしている。時間周期ｔ８の終わりに、ＣＳ＃信号が再び有効となり、それにより次の読み取り又は書き込み動作のために選択されたことをＬＣＤコントローラに知らせる。タイミングパラメータｔ１０は、コマンド信号が有効解除されてから次の読み取り又は書き込み動作のコマンド信号が再び有効となる時点までの時間周期を示している。時間周期ｔ１４は、読み取り又は書き込み動作のサイクルの長さを表わす。時間周期ｔ１５は、バスクロックの立上りエッジと、ハイに駆動されているＷＡＩＴ＃との間の時間周期を示している。なお、タイミングパラメータは模式的なタイミング周期であり、各タイミングパラメータと関連づけられる実際のタイミング周期はオペレーションを各々完了できるのに適した任意の時間周期で構わない。
【００３２】
図６は、本発明の一実施例に基づく、現在のバスサイクルが読み取り動作か書き込み動作かを判定すると共に、バス上の有効データの位置を判定するために、２つの制御信号集合を活用するコマンド信号の符号化を説明した表である。図６のコマンド信号は全てローがアクティブである。ＬＣＤコントローラが選択されたことを知らせるためにチップセレクト信号（ＣＳ＃）がローに駆動される。読み取り制御信号（ＭＥＭＲ＃）が有効であるということはリードサイクルであることを示し、書き込み制御信号（ＭＥＭＷ＃）が有効であるということはライトサイクルであることを示す。なお、ＭＥＭＲ＃及びＭＥＭＷ＃は、データバスのどの部分に有効データが入っているかということの判定には何も影響しない。すなわち、ＭＥＭＲ＃及びＭＥＭＷ＃には、読み取り動作又は書き込み動作と関連づけられるデータに対応するイネーブルデータは含まれていない。３２ビットデータバスのどのバイトに有効データが入っているかを指定するために４つのバイトイネーブル信号（ＢＥ＃）を用いる。従って、８ビット、１６ビット、３２ビットの一回のリードバスサイクル或いはライトバスサイクルを、示したように、ＢＥ０＃〜ＢＥ３＃のいろいろな組合せで指定することができる。
【００３３】
図７は、本発明の一実施例に基づく、バスサイクルを定義するために図６で説明した個別の制御信号及びイネーブル信号を用いる汎用バスインタフェースのタイミング図である。バスインタフェースは２１ビットのアドレス空間でアドレス指定可能な３２ビットのデータ幅をサポートしている。先に述べたように、ここでは一例として２１ビットのアドレス空間を表示しているのであって、バスインタフェースは２１ビットのアドレス空間に限定されるものではない。当業者であれば、本明細書で説明しているバスインタフェースは、上限３２ビットのアドレス空間を有することができることが分かるだろう。バスインタフェースは、リトルエンディアン並びにビッグエンディアンをサポートする。チップセレクト信号（ＣＳ＃）がロー（有効）となった後ＭＥＭＲ＃又はＭＥＭＷ＃が有効になると、バスサイクルがスタートする。一旦ＣＳ＃が認識されると、ＣＳ＃の受け取りを通知するために出力信号（ＩＯＣＨＲＤＹ＃）が有効となる。当業者であれば、ＩＯＣＨＲＤＹ＃は図４及び図５におけるＷＡＩＴ＃と同じ機能を実行することが分かるだろう。
【００３４】
引き続き図７において、リードサイクルの有効データをバスに乗せる準備ができるまで、あるいはライトサイクルのデータをうまく受け取り終える時まで、ＩＯＣＨＲＤＹ＃は有効である。図６において、ＭＥＭＲ＃〜ＭＥＭＷ＃と共に、バイトセレクト信号ＢＥ０＃〜ＢＥ３＃の構成によって、データバスビットが駆動されている（つまり、読み取り動作）か、あるいはサンプリングされている（つまり、書き込み動作）かが決まる。ＩＯＣＨＲＤＹ＃が有効解除されたことをＣＰＵのクロックが確認したら、そのバスサイクルを終了するためにＣＳ＃及びコマンド信号（ＢＥ０＃〜ＢＥ３＃及びＭＥＭＲ＃〜ＭＥＭＷ＃）は有効解除される。開始条件（ＣＳ＃がロー）を認識したら、バスサイクルに使用されたアドレスが一度サンプリングされる。バイトイネーブル信号によって下位アドレスビットが決まるから、一実施例では２１ビットのアドレス空間のアドレスビットＡ０とＡ１をバスインタフェースに使用しない。なお、当業者であれば、図６及び図７において説明したバスインタフェースは、図３〜図５において説明したバスインタフェースほどいろいろなＣＰＵと幅広くインタフェースをとる能力を有していないことが明らかであろう。図３〜図５と関連づけられるコマンド信号集合によって、バスインタフェースが広範囲なＣＰＵと通信できるようになる。但し、上に述べた両インタフェースのコマンド信号によって、コマンドに基づく読み取りの修正が可能となる。すなわち、３２ビットバスの場合、８ビット、１６ビット、３２ビットの読み取りを実行することができる。
【００３５】
図８は、図７と関連づけられるバスインタフェースのタイミングパラメータを表わす表である。図８のタイミングパラメータは図５のタイミングパラメータと相関している。言うまでもなく、図５と関連づけられるコマンド信号と、図７と関連づけられるコマンド信号とは別のものである。すなわち、図５と関連づけられるコマンド信号集合は、読み取り動作かあるいは書き込み動作かを示すと共に、バス上の有効データの位置を示す構成になっている。さらに、図５のコマンド信号は各々、図３において説明したように読み取り又は書き込みイネーブルデータをコンカレントに定義する構成になっている。それに対して、図８と関連づけられるコマンド信号は、バスサイクルが読み取り動作かあるいは書き込み動作かを定義すると共にバス上の有効データの位置を定義する信号集合を別途含んでいる。
【００３６】
図９は、本発明の一実施例に基づく、現在のバスサイクルがリードサイクルかライトサイクルかを判定すると共にバス上の有効データの位置を判定する非同期汎用バスインタフェースのコマンド信号符号化を説明する表である。図９のコマンド信号は全てローがアクティブである。ＬＣＤコントローラが選択されたことを示すために、チップセレクト信号（ＣＳ＃）がローに駆動される。リードサイクルを実行しようとしているのか、ライトサイクルを実行しようとしているのかを示すために読み書き制御信号（Ｒ／Ｗ＃）が用いられる。Ｒ／Ｗ＃をハイに駆動するとリードサイクルが実行されることを示し、Ｒ／Ｗ＃をローに駆動するとライトサイクルが実行されることを示す。なお、Ｒ／Ｗ＃は、データバスのどの部分に有効データが入っているかということの判定には関係がない。すなわち、Ｒ／Ｗ＃には、読み取り動作又は書き込み動作と関連づけられるデータに対応するイネーブルデータが入っていない。３２ビットデータバスのどのバイトに有効データが入っているかを指定するのに４つのバイトセレクト信号（ＢｙｔｅＳｅｌｎ＃）が用いられる。従って、８ビット、１６ビット、又は３２ビットの一回のリードバスサイクル或いはライトバスサイクルを、示したように、ＢｙｔｅＳｅｌ０＃〜ＢｙｔｅＳｅｌ３＃の組合せで指定することができる。
【００３７】
図１０は、本発明の一実施例に基づく、ディスプレイコントローラ及びディスプレイコントローラと通信しているＣＰＵとの間にクロック速度にどのような差があっても対応するように構成されたディスプレイコントローラの非同期汎用バスインタフェースのタイミング図である。要求とも呼ばれるＣＳ＃をバスマスタ、つまり、ＣＰＵがロー（有効）となることでバスサイクルが始まる。この開始条件が認識された後、ＷＡＩＴ＃を有効にする（肯定応答と呼ばれる）ことによって、バススレーブ、つまり、ＬＣＤコントローラが要求を受け取ったことを通知する。リードサイクルの有効データをバスに乗せる準備ができるまで、又はライトサイクルのデータをうまく受け取り終える時まで、ＷＡＩＴ＃は有効となっている。言うまでもなく、Ｒ／Ｗ＃によってアクセスが読み取り動作かあるいは書き込み動作かが決まるのに対し、ＢｙｔｅＳｅｌ０＃〜ＢｙｔｅＳｅｌ３＃の構成はどのデータバスビットが駆動されるかあるいはサンプリングされるかを定義している。バスマスタは、ＷＡＩＴ＃が有効解除されたことを確認した後、ＣＳ＃及びコマンド信号を有効解除する。開始条件を認識した後、バスサイクルに用いたアドレスが一度サンプリングされる。なお、バイトセレクト信号によって下位アドレスビットが決まるから、一実施例ではバスインタフェースにアドレスビットＡ０とＡ１を使用していない。
【００３８】
引き続き図１０において、模式的な読み取り動作について説明する。バスクロック（ＢＣＬＫ）はバスマスタ、つまり、ＣＰＵを制御するクロックであるのに対し、ＬＣＤ　ＢＣＬＫはバススレーブ、つまり、ＬＣＤコントローラなどディスプレイコントローラを制御するクロックである。例として、ＬＣＤコントローラにはＡ［２０：０］で表わされる２１ビットのアドレス空間があり、それによってＬＣＤコントローラ内部のメモリ量が決まる。先に述べたように、アドレス空間の量は可変だから、ＬＣＤコントローラは２１ビットのアドレス空間に限定されるものではない。一実施例において、ＬＣＤコントローラは約２メガバイト（ＭＢ）のメモリを有する。すなわち、２１ビットのアドレス空間は約２メガバイトのメモリにマップされる。ＬＣＤコントローラ内のメモリはアドレス線Ａ［２０：０］でアドレス指定される。当業者であれば、ＬＣＤコントローラはそのＬＣＤコントローラを含むシステムに適した任意のメモリ量を保有していて構わず、２ＭＢメモリに限定されるものでないことは明らかであろう。メモリ／レジスタ信号（Ｍ／Ｒ＃）は、ＬＣＤコントローラのメモリ（Ｍ）又はレジスタ（Ｒ）の選択を行なう信号である。一実施例では、さらに２ＭＢメモリがＭ／Ｒ＃ピンから追加される。先に述べたように、メモリコアは表示される画像データを保有しているが、レジスタには構成データが入っている。なお、ＬＣＤコントローラからバスインタフェースに送られる信号のタイミングはＬＣＤクロックによって制御されているので、非同期バスインタフェースは真に非同期である。すなわち、ＬＣＤコントローラからバスインタフェースに送られる信号はＣＰＵクロックとは無関係である。従って、ＬＣＤコントローラからの信号は単一のＣＰＵクロック又は振動子のスレーブにならないので、真の非同期バスインタフェースを定義している。
【００３９】
ＣＰＵは、ＣＳ＃をロー（有効）とすることでＬＣＤコントローラに対してサイクルを要求する。ＬＣＤコントローラは、その要求に、肯定応答信号、つまり、ＷＡＩＴ＃で応答する。なお、要求信号及び肯定応答信号は、バスサイクルを開始するのに使用される２つのハンドシェイク信号である。さらに、ＣＰＵはＣＰＵクロックに基づいて要求を発するのに対し、ＬＣＤコントローラはＬＣＤコントローラのクロック速度で要求をサンプリングする。すなわち、ＬＣＤコントローラは、ＢＣＬＫとは無関係のＬＣＤ　ＢＣＬＫの立上りエッジで要求をサンプリングする。言うまでもなく、ＬＣＤコントローラはＬＣＤ　ＢＣＬＫの立下りエッジでサンプリングすることもできる。タイミングパラメータｔ３は、ＬＣＤコントローラが、ＣＳ＃をローにサンプリングするのと、サンプル要求が出されていることをＣＰＵに通知するためにＷＡＩＴ＃を有効にする間の時間周期を表わしている。肯定応答信号によってＬＣＤコントローラのバスサイクルが始まる。なお、当業者であれば、ｔ３はＣＰＵ及びＬＣＤコントローラの速度いかんにより可変であることは明らかであろう。次に、ＣＰＵは、読み取り動作かあるいは書き込み動作かを示すＲ／Ｗ＃と、データバス上の有効データの位置を示すＢｙｔｅＳｅｌ０＃〜ＢｙｔｅＳｅｌ３＃とによって応答する。
【００４０】
リードサイクルの場合、図１０において、タイミングパラメータｔ５は、ＬＣＤコントローラがデータバスを駆動する時間周期を表わしている。黒い包絡線１４０は、ＬＣＤコントローラがデータバスを駆動中だから、他のコントローラはそのバスを使用できないことを示している。図１０の黒い包絡線は使用可能な有効データがないことを示しているのに対し、白い包絡線は有効データが使用可能であることを表わしている。従って、有効な読み取りデータは白い包絡線１４２内のある時点で使用可能になる。タイミングパラメータｔ８及びｔ９は、図４のタイミングパラメータｔ１６及びｔ１３と同様に、セットアップ時間及びホールド時間をそれぞれ表わす。ＷＡＩＴ＃が有効解除されると、つまり、ＷＡＩＴ＃がハイになると、ＬＣＤコントローラの内部サイクルの終わりが発生する。ＷＡＩＴ＃の有効解除は、ＬＣＤ　ＢＣＬＫに基づいてＬＣＤコントローラによって実行される。その後、ＣＰＵは、ＢＣＬＫの立上りエッジでＷＡＩＴ＃をサンプリングするとＷＡＩＴ＃がハイになるのを確認した後、ＣＳ＃を有効解除することでＬＣＤコントローラに通知する。従って、バスサイクルはＣＰＵ側から完了した。ここで、サイクルを終了させるために、サイクルを開始するハンドシェイクの手順と同じようなハンドシェイクの手順が発生する。異なるのは、ＬＣＤコントローラがＷＡＩＴ＃をハイにすることで要求を発し、ＣＰＵはＣＳ＃をハイにすることでその要求の受信を通知する点である。なお、タイミングパラメータｔ９は、サンプリングのためにＣＰＵがデータを確実に使用できるようにするために、ＣＳ＃がハイになった後のホールド時間を定義している。矢印１４４は、ＬＣＤコントローラがＷＡＩＴ＃をハイに駆動し、ＷＡＩＴ＃がハイであることをＣＰＵが認識し、今度はＣＰＵがＣＳ＃をハイに駆動することを示している。なお、ＷＡＩＴ＃はＬＣＤコントローラのクロックに基づいて駆動されており、ＣＰＵのクロックとは同期をとっていないので、バスインタフェースは任意のクロック速度で、つまり、ＣＰＵのクロック速度とは無関係の速度で走行することができる。ＬＣＤコントローラは、一旦ＣＳ＃がハイになることを確認すると、矢印１４６で示すように、ＷＡＩＴ＃を高インピーダンス状態に駆動することでバスを開放する。
【００４１】
引き続き図１０において、書き込み動作は読み取り動作と類似したハンドシェイク法に従って行なわれる。タイミングパラメータｔ４は、ＣＰＵがデータをデータバスに乗せなければならないセットアップ周期を定義しているのに対し、タイミングパラメータｔ７は、ＬＣＤコントローラがデータを受け取る準備ができた後、つまり、ＷＡＩＴ＃がハイになった後、データが保持される時間周期を定義するホールド時間である。なお、タイミングパラメータｔ４及びｔ７は、図４のタイミングパラメータｔ７及びｔ１２と類似している。準安定性状態発生の可能性を最小限にするために、ＬＣＤコントローラにおいては、Ｍ／Ｒ＃及び図９のコマンド信号、つまり、ＣＳ＃、Ｒ／Ｗ＃、ＢｙｔｅＳｅｌｎ＃など、コマンド信号を受け取る回路の中に、２つのフリップフロップが直列で設けられている。従って、直列のフリップフロップにより、コマンド信号のダブルサンプリングが可能になる。すなわち、準安定状態が発生するのを最小限にするために、コマンド信号は直列接続された少なくとも２つのフリップフロップを経由して処理される。
【００４２】
図１１は、図１０に示した非同期バスインタフェースのタイミングパラメータを表わす表である。タイミングパラメータｔ３〜ｔ５及びｔ７〜ｔ９については、既に図１０で説明した。タイミングパラメータｔ１はセットアップ時間を定義している。従って、タイミングパラメータｔ１により、ＣＳ＃がローになる時間周期が可能になる。タイミングパラメータｔ２は、ＣＳ＃がローになるのをＬＣＤ　ＢＣＬＫが確認するためのセットアップ時間を示している。パラメータｔ６は、ＣＰＵがコマンド信号をアサート解除した後、現在のサイクルをアクティブに、つまり、ＣＳ＃をローに保つのに要する時間周期を示す。パラメータの最小時間はゼロナノ秒（ｎｓ）だが、当業者であれば、ほとんどのＣＰＵが、コマンド信号が有効解除された後１乃至２クロック経たないと、ＣＳ＃を有効解除しないことが分かるだろう。
【００４３】
図１２は、本発明の一実施例に基づく、準安定状態の発生を最小限にするように構成されたフリップフロップチェーン冗長回路の概略図である。フリップフロップ１５０は、フリップフロップ１５２との直列配列になっている。クロック１５４はディスプレイコントローラクロックで、フリップフロップ１５０及び１５２はディスプレイコントローラのバスインタフェースの回路内に収容されている。信号１５６はフリップフロップ１５０のＤ入力である。フリップフロップ１５０のＤ入力にあるデータは、フリップフロップ１５０のＱ出力に送られる。フリップフロップ１５０のＱ出力は次に、フリップフロップ１５２のＤ入力となる。フリップフロップ１５２のＤ入力は、フリップフロップ１５２のＱ出力に送られ、そこで出力信号１５８として出力される。従って、もし入力信号１５６がセットアップ時間の間に変化した場合には、準安定状態が発生する可能性がある。例えば、非同期バスインタフェースに関して言えば、バスクロックとディスプレイコントローラクロックの立上りエッジがほぼ同時に発生し、その結果、２つの無限勾配になり、準安定状態が起きる。当業者であれば、準安定状態が発生してフリップフロップ１５０からの出力が浮動すると、つまり、０でも１でもなくなると、フリップフロップ１５２内の回路は、フリップフロップ１５０からの出力が浮動するレベルいかんによって０か又は１を出力する構成になっていることが分かるだろう。なお、図１２には２つのフリップフロップを示したが、任意の数のフリップフロップを直列配列で採用することができる。一実施例では、フリップフロップチェーン冗長回路は、コマンド信号を処理するが、読み取り及び書き込みデータは処理しない構成になっている。
【００４４】
図１３は、本発明の一実施例に基づく、第１のクロック速度で動作しているディスプレイコントローラと、第２のクロック速度で動作しているマイクロプロセッサとの間の通信方法のオペレーションを説明するフローチャート図である。このフローチャートは、マイクロプロセッサから要求を受け取るオペレーション１７０から始まる。マイクロプロセッサがＣＳ＃をローに駆動することで要求が達成され、それによりマイクロプロセッサのバスサイクルがスタートする。先に述べたように、ＣＳ＃がローに駆動されているということは、ディスプレイコントローラを選択中であることを示す。要求を発するはマイクロプロセッサだから、要求はマイクロプロセッサのクロック速度で生成される。この方法は次に、オペレーション１７２に進み、そこでディスプレイコントローラのクロックに基づいて要求のサンプリングが行なわれる。ここで、ＬＣＤコントローラなど、ディスプレイコントローラは、図１０で既に説明したように、要求をサンプリングする。なお、マイクロプロセッサのクロックとディスプレイコントローラのクロックとは、クロック速度にどれだけ違いがあっても動作することができる。一例として、ＣＰＵ及びマイクロプロセッサは、ハンドヘルドコンピューティング機器の組み込みシステムの一部をなしている。
【００４５】
図１３の方法は次にオペレーション１７４に進み、そこでディスプレイコントローラの内部サイクルを開始するためにマイクロプロセッサからの要求に対する肯定応答が行なわれる。例えば、ディスプレイコントローラの内部サイクルの始まりは、図１０のタイミング図でＷＡＩＴ＃がローになる領域によって示されている。肯定応答を送るのはディスプレイコントローラだから、肯定応答はディスプレイコントローラのクロックに基づいて生成される。従って、バスインタフェースは、ＣＰＵのバス速度とは無関係に、任意のクロック速度で走行することができる。
【００４６】
引き続き図１３において、この方法はオペレーション１７６に進み、そこで読み取り又は書き込み動作と関連づけられるデータが供給される。データは、読み取り動作ではマイクロプロセッサに供給されるが、書き込み動作ではディスプレイコントローラに供給される。読み取り動作又は書き込み動作のタイミングパラメータについては、図１０に関して先に説明した通りである。この方法は次にオペレーション１７８に進み、そこでディスプレイコントローラが内部サイクルを終了する要求を発する。一例としては、図１０で説明したように、ＷＡＩＴ＃をハイにすることで要求が実行される。言うまでもなく、要求はディスプレイコントローラのクロック速度で発せられる。この方法は次にオペレーション１８０に進み、そこでディスプレイコントローラがマイクロプロセッサからの肯定応答を受け取る。マイクロプロセッサは、マイクロプロセッサのクロック速度でオペレーション１８０からの要求をサンプリングし、それに応答して、図１０に関して説明されているように、ＣＳ＃をハイに駆動する（肯定応答）。次に、ディスプレイコントローラが、ディスプレイコントローラのクロック速度でＣＳ＃をハイにサンプリングする（肯定応答）。ＣＳ＃がハイに駆動された結果、マイクロプロセッサはマイクロプロセッサのバスサイクルを終了する。
【００４７】
【発明の効果】
上記の実施例を考慮すれば、本発明は、コンピュータシステムに保持されたデータを必要とする、コンピュータで実現される（ｃｏｍｐｕｔｅｒ−ｉｍｐｌｅｍｅｎｔｅｄ）様々なオペレーションで採用できることが分かる。こうしたオペレーションは、物理的数量の物理的操作を要するオペレーションである。必ずしもそうとは限らないが、こうした数量は、保持、転送、結合、比較、さもなければ操作が可能な電気信号又は磁気信号の形になっているのが普通である。さらに、実行される操作は、生じる、識別する、判定する、或いは比較する、と言った表現で呼ばれることが多い。
【００４８】
本明細書で説明した本発明を構成するオペレーションはいずれも役に立つ機械操作である。本発明は、こうした操作を実行するための機器にも関する。機器は、要求される目的のために特別に構築することができるし、あるいは、中に保持しているコンピュータプログラムによって選択的に起動又は構成される汎用コンピュータでもいい。具体的に言えば、本明細書で教示するところに基づいて書かれたコンピュータプログラムと共にいろいろな汎用の機械で使用することができるし、あるいは、要求されるオペレーションを実行するためにもっと専用化された機器を構築するほうが一層便利かもしれない。
【００４９】
上に説明した発明は、ハンドヘルド機器、マイクロプロセッサシステム、マイクロプロセッサベースの又はプログラミング可能な消費者向けエレクトロニクス、マイクロコンピュータ、メインフレームコンピュータなど、他のコンピュータシステム構成を用いて実施しても構わない。発明をはっきり理解できるようにある程度詳細に説明してきたが、上記の説明から、添付した特許請求の範囲内においてある程度の変更や修正が可能なことは明らかであろう。従って、本願の実施例は説明のためであり、制限するためのものではないと捉えられるべきである。また、本発明は、本明細書で説明した詳細に限定されるものではなく、添付の特許請求の範囲内並びに等価発明の範囲内において修正変更することができる。
【図面の簡単な説明】
【図１】従来のディスプレイコントローラと通信するＣＰＵを含んだ埋め込みシステムの概略図。
【図２】本発明のＣＰＵと通信する汎用バスインタフェースを有するＬＣＤコントローラの概略図。
【図３】現在のバスサイクルを判定すると共にバス上の有効データの位置を判定するコマンド信号を説明する表。
【図４】汎用バスインタフェースのタイミング図。
【図５】図４のバスインタフェースタイミングパラメータ表。
【図６】現在のバスサイクルを判定すると共にバス上の有効データの位置を判定する２集合の制御信号を用いるコマンド信号符号化を説明する表。
【図７】図６の汎用バスインタフェースのタイミング図。
【図８】図７のバスインタフェースのタイミングパレメータを表わす表。
【図９】現在のバスサイクルを判定すると共にバス上の有効データの位置を判定する非同期汎用バスインタフェースのコマンド信号符号化を説明する表。
【図１０】非同期汎用バスインタフェースのタイミング図。
【図１１】図１０のバスインタフェースタイミングパラメータを表わす表。
【図１２】フリップフロップチェーン冗長回路の概略図。
【図１３】それぞれ異なるクロック速度で動作するディスプレイコントローラとマイクロプロセッサとの間で通信する方法。
【符号の説明】
１００、１０８　ＣＰＵ
１０２、１１２　バス
１０４　バスインタフェース
１０６、１１６　ＬＣＤコントローラ
１１０　ＣＰＵメモリ
１１４　汎用バスインタフェース
１１８　メモリコア領域
１２０　レジスタ領域
１５０、１５２　フリップフロップ
１５４　クロック
１５６　信号
１５８　出力信号
【図１】
2004030637.tif 000003
【図２】
2004030637.tif 000004
【図３】
2004030637.tif 000005
【図４】
2004030637.tif 000006
【図５】
2004030637.tif 000007
【図６】
2004030637.tif 000008
【図７】
2004030637.tif 000009
【図８】
2004030637.tif 000010
【図９】
2004030637.tif 000011
【図１０】
2004030637.tif 000012
【図１１】
2004030637.tif 000013
【図１２】
2004030637.tif 000014
【図１３】
2004030637.tif 000015