(57)【要約】【課題】比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス（address）するための方法及び装置。【解決手段】比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス（address）するための方法及び装置。Ｎビットバスが２Ｍアドレスメモリ空間を有するメモリデバイスとのインタフェースをとり、ここでＭはＮよりも大きい。この方法及び装置は（ａ）少なくとも２個のレジスタを用意し、（ｂ）メモリ空間内のアドレスを共同定義する複数のＮビットバイトのうちの一つのバイトを受け取り、（ｃ）ステップ（ｂ）を完了した結果カウントをインクリメントし、（ｄ）ステップ（ｃ）でインクリメントされたカウントに従って２個のレジスタのうちの一方をアドレス指定（address）し、（ｅ）ステップ（ｄ）でアドレス指定（address）されたレジスタにその一つのバイトを格納することができる。【選択図】  図５
2005071363.tif 000002
【特許請求の範囲】
【請求項１】
Ｎビットバスを用いて２M個のアドレスを有するメモリ空間に高速アドレスアクセス（address）するための方法であって、ここでＭはＮよりも大きく、
（ａ）少なくとも２個のレジスタを用意するステップと、
（ｂ）該メモリ空間内のアドレスを定義する複数のＮビットバイトのうちの１つのバイトを受け取るステップと、
（ｃ）ステップ（ｂ）を完了した結果カウントをインクリメントするステップと、
（ｄ）ステップ（ｃ）でインクリメントされたカウントに従って前記２個のレジスタのうちの一つをアドレス指定（address）するステップと、
（ｅ）ステップ（ｄ）でアドレス指定（address）されたレジスタに前記一つのバイトを格納するステップを有することを特徴とする方法。
【請求項２】
前記複数のバイトのうちのもう一つのバイトを受け取り、ステップ（ｃ）からのカウントをリセットし、カウントのリセットの結果前記２個のレジスタのうちの他方をアドレス指定（address）し、前記他方のレジスタに前記他方のバイトを格納することをさらに有することを特徴とする請求項１に記載の方法。
【請求項３】
（ａ）メモリアクセスコマンドを受け取るステップと、
（ｂ）前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間にアクセスするステップと、
をさらに有することを特徴とする請求項２に記載の方法。
【請求項４】
前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項３に記載の方法。
【請求項５】
前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項３に記載の方法。
【請求項６】
前記複数のバイトのうちのもう一つのバイトを受け取り、ステップ（ｃ）からのカウントをインクリメントしてインクリメントされた次のカウントを取得し、そのインクリメントされた次のカウントの結果前記２個のレジスタのうちの他方をアドレス指定（address）し、前記他方のレジスタに前記他方のバイトを格納することをさらに有することを特徴とする請求項１に記載の方法。
【請求項７】
（ａ）メモリアクセスコマンドを受け取るステップと、
（ｂ）前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間にアクセスするステップと、
をさらに有することを特徴とする請求項６に記載の方法。
【請求項８】
前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項７に記載の方法。
【請求項９】
前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項７に記載の方法。
【請求項１０】
前記２Mアドレスメモリ空間はメモリデバイスのアドレス空間からなることを特徴とする請求項１に記載の方法。
【請求項１１】
前記２Mアドレスメモリ空間は複数のメモリデバイスのアドレス空間からなることを特徴とする請求項１に記載の方法。
【請求項１２】
Ｎビットバスを用いて２M個のアドレスを有するメモリ空間に高速アドレスアクセス（address）するための装置であって、ここでＭはＮよりも大きく、
（ａ）少なくとも２個のレジスタと、
（ｂ）カウンタと、
（ｃ）論理回路とからなり、論理回路は、
（ｉ）メモリ空間内のアドレスを共同定義する複数のＮビットバイトのうちの一つのバイトを受け取り、
（ｉｉ）ステップ（ｉ）を完了した結果前記カウンタのカウントをインクリメントし、
（ｉｉｉ）ステップ（ｉｉ）でインクリメントされたカウントに従って前記２個のレジスタのうちの一方をアドレス指定（address）し、
（ｉｖ）ステップ（ｉｉｉ）でアドレス指定（address）された前記レジスタに前記一つのバイトを格納するようになっていることを特徴とする装置。
【請求項１３】
前記論理回路はさらに、前記複数のバイトのうちのもう一つのバイトを受け取り、前記カウンタのカウントをリセットし、そのカウントのリセットの結果前記２個のレジスタのうちの他方をアドレス指定（address）し、前記他方のレジスタに前記他方のバイトを格納するようになっていることを特徴とする請求項１２に記載の装置。
【請求項１４】
前記論理回路はさらに、
（ａ）メモリアクセスコマンドを受け取り、
（ｂ）前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間をアクセスするようになっていることを特徴とする請求項１３に記載の装置。
【請求項１５】
前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項１４に記載の装置。
【請求項１６】
前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項１４に記載の装置。
【請求項１７】
前記論理回路はさらに、前記複数のバイトのうちのもう一つのバイトを受け取り、前記カウンタのカウントをインクリメントしてインクリメントされた次のカウントを取得し、そのインクリメントされた次のカウントの結果前記２個のレジスタのうちの他方をアドレス指定（address）し、前記他方のレジスタに前記他方のバイトを格納するようになっていることを特徴とする請求項１２に記載の装置。
【請求項１８】
前記論理回路はさらに、
（ａ）メモリアクセスコマンドを受け取り、
（ｂ）前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間をアクセスするようになっていることを特徴とする請求項１３に記載の装置。
【請求項１９】
前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項１８に記載の装置。
【請求項２０】
前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項１８に記載の装置。
【請求項２１】
前記２Mアドレスメモリ空間はメモリデバイスのアドレス空間からなることを特徴とする請求項１２に記載の装置。
【請求項２２】
前記２Mアドレスメモリ空間は複数のメモリデバイスのアドレス空間からなることを特徴とする請求項１２に記載の装置。
【請求項２３】
Ｎビットバスを用いて２M個のアドレスを有するメモリ空間に高速アドレスアクセス（address）するための方法を実行するために機械で実行される命令プログラムを含んだ機械可読媒体であって、該機械は少なくとも２個のレジスタを有し、ＭはＮよりも大きく、該方法は、
（ａ）メモリ空間内のアドレスを共同定義する複数のＮビットバイトのうちの１つのバイトを受け取るステップと、
（ｂ）ステップ（ａ）を完了した結果カウントをインクリメントするステップと、
（ｃ）ステップ（ｂ）でインクリメントされたカウントに従って該少なくとも２個のレジスタのうちの一つをアドレス指定（address）するステップと、
（ｄ）ステップ（ｃ）でアドレス指定（address）されたレジスタに前記一つのバイトを格納するステップとを有することを特徴とする機械可読媒体。
【請求項２４】
該方法がさらに、前記複数のバイトのうちのもう一つのバイトを受け取り、ステップ（ｃ）からのカウントをリセットし、そのカウントのリセットの結果前記２個のレジスタのうちの他方をアドレス指定（address）し、前記他方のレジスタに前記他方のバイトを格納するように適合されていることを特徴とする請求項２３に記載の機械可読媒体。
【請求項２５】
該方法はさらに、
（ａ）メモリアクセスコマンドを受け取るステップと、
（ｂ）前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間をアクセスするステップとを有するように適合されていることを特徴とする請求項２４に記載の機械可読媒体。
【請求項２６】
前記メモリアクセスがデータ書き込みアクセスになるように適合されていることを特徴とする請求項２５に記載の機械可読媒体。
【請求項２７】
前記メモリアクセスがデータ読み出しアクセスになるように適合されていることを特徴とする請求項２５に記載の機械可読媒体。
【請求項２８】
該方法はさらに、前記複数のバイトのうちのもう一つのバイトを受け取り、ステップ（ｃ）からのカウントをインクリメントしてインクリメントされた次のカウントを取得し、そのインクリメントされた次のカウントの結果前記２個のレジスタのうちの他方をアドレス指定（address）し、それから前記他方のレジスタに前記他方のバイトを格納することからなるように適合されていることを特徴とする請求項２３に記載の機械可読媒体。
【請求項２９】
（ａ）メモリアクセスコマンドを受け取るステップと、
（ｂ）前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間にアクセスするステップと、
をさらに有することを特徴とする請求項２８に記載の方法。
【請求項３０】
前記メモリアクセスがデータ書き込みアクセスになるように適合されていることを特徴とする請求項２９に記載の機械可読媒体。
【請求項３１】
前記メモリアクセスがデータ読み出しアクセスになるように適合されていることを特徴とする請求項２９に記載の機械可読媒体。
【請求項３２】
前記２Mアドレスメモリ空間はメモリデバイスのアドレス空間からなることを特徴とする請求項２３に記載の機械可読媒体。
【請求項３３】
前記２Mアドレスメモリ空間は複数のメモリデバイスのアドレス空間からなることを特徴とする請求項２３に記載の機械可読媒体。
【請求項３４】
Ｎビットバスを用いて２M個のアドレスを有するメモリ空間に高速アドレスアクセス（address）するための方法であって、ＭはＮよりも大きく、
（ａ）少なくとも２個のレジスタを用意するステップを有し、前記レジスタの各々はメモリ空間内のアドレスを共同定義する複数のＮビットバイトのうちの一つを保有し、
（ｂ）メモリアクセスコマンドを受け取るステップを有し、
（ｃ）前記メモリアクセスコマンドの結果前記アドレスにあるメモリ空間にアクセスするステップを有することを特徴とする方法。
【請求項３５】
前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項３４に記載の方法。
【請求項３６】
前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項３４に記載の方法
【請求項３７】
Ｎビットバスを用いて２M個のアドレスを有するメモリ空間に高速アドレスアクセス（address）するための装置であって、ＭはＮよりも大きく、
（ａ）少なくとも２個のレジスタを備え、前記レジスタの各々はメモリ空間内のアドレスを共同定義する複数のＮビットバイトのうちの一つを保有し、
（ｂ）メモリアクセスコマンドを受け取り、前記メモリアクセスコマンドの結果前記アドレスにあるメモリ空間にアクセスするようになっている論理回路を備えることを特徴とする装置。
【請求項３８】
前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項３７に記載の装置。
【請求項３９】
前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項３７に記載の装置
【請求項４０】
Ｎビットバスを用いて２M個のアドレスを有するメモリ空間に高速アドレスアクセス（address）するための方法を実行するために機械で実行される命令プログラムを含んだ機械可読媒体であって、ＭはＮよりも大きく、該方法は、
（ａ）少なくとも２個のレジスタを設けるステップを有し、前記レジスタの各々はメモリ空間内のアドレスを共同定義する複数のＮビットバイトのうちの一つを保有し、
（ｂ）メモリアクセスコマンドを受け取るステップを有し、
（ｃ）前記メモリアクセスコマンドの結果前記アドレスにあるメモリ空間にアクセスするステップを有することを特徴とする機械可読媒体。
【請求項４１】
前記方法は前記メモリアクセスコマンドがデータ書き込みコマンドになるように適合されていることを特徴とする請求項４０に記載の機械可読媒体。
【請求項４２】
前記方法は前記メモリアクセスコマンドがデータ読み出しコマンドになるように適合されていることを特徴とする請求項４０に記載の機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス（address）するための方法及び装置に関する。
【背景技術】
【０００２】
メモリ又はプリンタ、ディスプレイ、ポート或いはレジスタといった任意のメモリマップＩ／Ｏデバイスを本書では「メモリデバイス」と呼んでいる。１個以上のメモリデバイスがＮビットアドレスバスに結合されていることがあり、Ｎビットアドレスバスを用いてメモリデバイスに直接アドレスアクセス（address）することができる。Ｎビットアドレスバスを用いた直接アドレスアクセス（address）ではアドレス空間に２N個以上のアドレスがあってはならない。例えば、メモリデバイスの２8つまり２５６個の記憶場所つまりアドレスを直接アクセスするのに典型的な８ビットアドレスバスを使用することができる。
【０００３】
１個以上のメモリデバイスがバスに結合されていることが多い。さらに、アドレス空間にはメモリ内の場所を識別するアドレスがあるだけでなく、バスに結合された他のメモリデバイス内のアドレス指定（address）可能な場所が入っている。８ビットアドレスバスの例の話を続けると、２５６ヶ所のうちの２００ヶ所はメモリチップのランダムアクセス記憶場所であることがあり、残る５６個のアドレスは他のメモリデバイス内のレジスタ又はポートを識別するのに使用される。しかしながら、ほとんどのメモリチップは記憶場所２５６ヶ所を越える容量を有し、ほとんどのシステムは２５６よりも大きなメモリ空間を有する。このために、幅広いアドレスバスが使用されることが多い。例えば、２16つまり６５５３６（６４Ｋ）のメモリ空間内の任意の場所を直接アクセスするのに１６ビットバスを用いることができる。別の例として、今日のパーソナルコンピュータのアドレスバスは３６ビットが一般的で、６４ＧＢ（２36）アドレス空間の任意の場所に直接アクセス可能である。
【０００４】
しかしながら、今日では、パーソナルコンピュータと比べはるかに複雑でないシステムが多く、依然として８ビットバスといった比較的に小型のバスを使用しているものが多い。さらに、そうしたシステムはアドレス及びデータ両方の通信に使用するのに単一のバスしか有していないことがある。比較的に小型のバスを１本しか採用しない理由はコストと電力の節約である。単一８ビットバスを一般的に採用するシステムの例としては、ハンドヘルドデバイス、電池を電源とする携帯用デバイス、セルラー電話、埋め込みシステムなどがある。そうしたシステムは８ビットバスを採用しているけれども、２５６アドレスよりも大きなアドレス空間を有するのが望ましい。アドレス空間が２５６アドレスより大きくても、８ビットバスを有するシステム内の記憶場所全てにアクセスするのに使用可能な技法がある。この技法は「間接的アドレスアクセス（address）」として知られている。
【０００５】
間接的アドレスアクセス（address）技法により、２M個の場所を有するメモリ空間内の任意の場所をＮビットバスを用いてアクセスできる。ここで、ＭはＮよりも大きい。間接的アドレスアクセス（address）技法を用いると、最初のステップはＮビットバスでＮビットのアドレス（address R1）を伝送することである。Address R1は第１レジスタを識別するのに用いられる。その次に、Ｎビットのデータ（Data 1）がバスで伝送され、或るレジスタに保持される。Data 1が保持されるレジスタはaddress R1で指定される、すなわち、Data 1は第１レジスタに格納される。ＮビットのデータData 1は１バイトを定義する。
【０００６】
第２のバイトに対して前述のステップが繰り返される。第２のＮビットのアドレス（address R2）がバスで伝送される。第２レジスタを識別するのにaddress R2が用いられる。第２のＮビットのデータ（Data 2）がバスで伝送され、address R2で識別されるレジスタ、すなわち、第２レジスタに格納される。ＮビットのデータData 2が第２バイトを定義する。
【０００７】
２バイトのデータ（Data 1とData 2）が今では第１及び第２レジスタに保持されている。間接的アドレスアクセス（address）技法はこれらの２バイトを用いてシステムの２Mビットメモリ空間内のアドレス、つまり長さが２バイト（Ｎ＋Ｎビット）のアドレスを定義する。第１及び第２レジスタ内の２バイトは組み合わされてメモリ空間内の２M個の記憶場所のうちの一つにアクセスするための一つの完全アドレスを定義する。第１及び第２レジスタに保持されている２バイトの「データ」はアドレスを定義するのに使用されるから、その２バイトを本書では「アドレス-データ・バイト」と呼ぶことがある。
【０００８】
上記のごとく、先行技術による間接的アドレスアクセス（address）技法はバスで２個以上のレジスタアドレスと少なくとも２つのアドレス-データバイトを伝送しなければならない。本書では、先行技術による間接的アドレスアクセス（address）技法の引用に関して、「アドレスサイクル」及び「データサイクル」という表現によって、レジスタ又は「データポート」アドレスを伝送することと関連付けられる活動及び１バイトのアドレスデータ又は他のデータを伝送することと関連付けれらる活動をそれぞれ指しているつもりである。上記の例において、この用語を用いると、２アドレスサイクルと２データサイクルが必要である。従来の方法ではアドレスサイクル及びデータサイクルを定義するのに、Address EnableやWrite Enableといった制御信号を用いる。本書で発明の好適な実施例の説明に関して、「アドレスサイクル」及び「データサイクル」という表現によってここで説明する活動を指しているつもりである。
【０００９】
レジスタR1, R2に２つのアドレス-データバイトが保持された後、ＣＰＵは読み取り動作又は書き込み動作を行なうことがあり、メモリデバイスはレジスタR1, R2に保持されているアドレス‐データバイトを用いて読み書き動作を行なう。例えば、第１アドレスサイクル及び第１データサイクルに上位（又は下位）アドレス‐データバイトをメモリデバイスに先ず伝送し、それから第２アドレスサイクル及び第２データサイクルに下位（又は上位）アドレス‐データバイトを伝送することによってＣＰＵは８ビットバスを用いてメモリデバイスに１６ビットのアドレスを伝送することができる。ＣＰＵはそれからアドレスサイクルにデータポートアドレスを伝送し、データサイクルにレジスタR1, R2内のアドレスで指定された場所にデータを書き込む或いはそこからデータを読み出すかいずれかを行なう。
【００１０】
【特許文献１】米国特許第6,189,052号明細書
【特許文献２】米国特許第5,570,306号明細書
【特許文献３】米国特許第5,659,783号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１１】
Ｎビットバスを用いて２M個以上のアドレスを有するメモリ空間の或る場所をアドレスアクセス（address）するのに間接的アドレスアクセス（address）技法を用いるには、少なくとも２セット、恐らく２セット以上のアドレスサイクル及びデータサイクルが必要である。さらに、或る記憶場所がアドレス指定（address）された後にそれにアクセスするには、追加のアドレスサイクル及びデータサイクルが必要である。一般論として、２Mアドレスメモリ空間のサイズが大きくなると、すなわち、Ｍは大きくなるがＮは一定で変わらない場合、Ｎビットバスを用いて間接的にメモリ空間にアドレスアクセス（address）するにはより多くのアドレスサイクル及びデータサイクルが必要である。その上、新しいアドレスごとに、上記のステップを全て繰り返さなければならない。こうした制約によりＣＰＵ及びメモリ間の通信速度が限定されるので望ましくない。よって、先行技術で可能なメモリデバイスとの通信速度よりも速い通信速度を可能にする、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス（address）できる方法及び装置に対するニーズがある。
【課題を解決するための手段】
【００１２】
発明は比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス（address）するための方法及び装置に関する。発明によれば、Ｎビットバスが２Mアドレスメモリ空間を有するメモリデバイスとインタフェースをとる（ここで、ＭはＮよりも大きい）。この方法及び装置は、（ａ）少なくとも２個のレジスタを設け、（ｂ）メモリ空間内の或るアドレスを共同定義する複数のＮビットバイトのうちの片方のバイトを受け取り、（ｃ）ステップ（ｂ）を完了するとその結果カウントをインクリメントし、（ｄ）ステップ（ｃ）でインクリメントされたカウントに従って２個のレジスタのうちの片方をアドレス指定（address）し、（ｅ）ステップ（ｄ）でアドレス指定（address）されたレジスタにその片方のバイトを格納することができる。
【００１３】
この方法及び装置はさらに、複数のバイトのうちのもう一方のバイトを受け取り、ステップ（ｃ）からのカウントをリセットし、カウントのリセットの結果その２個のレジスタのうちの他方をアドレス指定（address）し、それから他方のレジスタに他方のバイトを格納することができる。
【００１４】
もしくは、この方法及び装置はさらに、複数のバイトのうちのもう一方のバイトを受け取り、ステップ（ｃ）からのカウントをインクリメントして次のインクリメントされたカウントを取得し、そのインクリメントされた次のカウントの結果２個のレジスタのうちの他方をアドレス指定（address）し、それから他方のレジスタに他方のバイトを格納することもできる。
【００１５】
さらに、発明の一つの態様はＮビットバスを用いて２M個のアドレスを有するメモリ空間の高速アクセスを可能にする方法及び装置に関し、ここでＭはＮよりも大きい。発明によれば、少なくとも２個のレジスタが設けられ、レジスタは各々がメモリ空間内のアドレスを共同定義する複数のＮビットバイトのうちの１つのバイトを保有している。メモリアクセスコマンドを受け取り、前記メモリアクセスコマンドの結果アドレスにあるメモリ空間がアクセスされる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を図面に基づいて説明する。
【実施例１】
【００１７】
図面を参照して発明を説明する。そして可能な限り、図面では同じ又は類似した部品には同じ参照番号を採用している。同様に、可能な限り、同じ信号又は類似して信号には同じ信号名を使用している。
【００１８】
先行技術のメソドロジーを採用している図１を参考しながら発明の好適な状況を説明する。図１に、例えば、グラフィックス表示システムに使用されるような、ＣＰＵ２２とメモリデバイス２４とのインタフェースをとるためのシステム２０を示す。メモリデバイス２４は複数のレジスタ２５（R1〜RK）とバスインタフェースユニット（ＢＩＵ）２７を有する。コスト及び電力の節約のために、この例におけるシステム２０は、アドレスバスとしても使用される８ビットのデータバスを採用している。しかしながら、メモリデバイス２４はアドレス空間２８（主メモリ空間と示されている）を有するのが一般的で、アドレス空間２８はバスB1及びB2でアドレス入力[AD15:0]を介して８ビットよりも大きなアドレスが供給されなければならない。一つの実施例において、アドレス空間２８内の各場所を一意に識別するには１６ビットアドレスが必要である。よって、メモリデバイス２４は間接的にアドレスアクセス（address）されなければならず、メモリデバイス２４内のレジスタＲ１及びＲ２を用いてＣＰＵ２２からデータバス２６で順次伝送される８ビットの下位アドレス‐データバイト（ＬＢ）と８ビットの上位アドレス‐データバイト（ＵＢ）をそれぞれ保持する。
【００１９】
ＢＩＵ２７は線３０、３２、３４上の制御信号をモニタすると共に、バス２６上のデータ信号をモニタする。制御信号及びデータ信号に応答して、ＢＩＵ２７はバス２６に乗っているビットを内部レジスタ２９に保持する、命令を実行するためにレジスタ２５又はアドレス空間２８に内部信号を供給する、或いは前記の組合せを行なうことがある。
【００２０】
｛１７｝図２は、以下に詳しく説明するように、メモリデバイス２４のアドレスサイクル、データサイクル、及び動作を例を挙げて説明しているタイミング図である。アドレスサイクルはAddress Enable（AE#）信号及びWrite Enable(WE#)信号の両方をアサートすることから始まる。（#印は、これらの信号は「ロー」の時アサートされていることを示す。）さらに、データサイクルはAE#信号をディアサートしてWE#信号かRead Enable（RE#）信号かどちらかをアサートすることから始まる。
【００２１】
ＢＩＵ２７は、アドレスサイクルを検出すると、データバス２６に乗っているビットを内部レジスタ２９に保持させるようになっている。さらに、データリードサイクル又はデータライトサイクルに、ＢＩＵ２７はデータバス２６に乗っているビットを保持させるか、或いはビットをデータバス２６に乗せさせるようになっている。データサイクルに、内部レジスタ２９のコンテンツからデータが保持されている或いは検索先のアドレスが判定される。データライトサイクルに、レジスタ２９のコンテンツが或るレジスタを識別していれば、データバス２６に乗っているビットがそのレジスタに書き込まれる。それに対して、データライトサイクルに、レジスタ２９のコンテンツが「データポートアドレス」を識別していれば、データバス２６に乗っているビットは、例えば、Ｒ１，Ｒ２といった、レジスタ２５のコンテンツによって定義されるメモリ空間内の場所に書き込まれる。
【００２２】
図２において、操作時、ＣＰＵ２２は第１アドレスサイクル（"Address Cycle 1）に線３０、３４に乗っているAE#信号及びWE#信号をアサートし、レジスタR1のアドレス（ADD R1）を定義する８（或いはそれより少ない）ビットをデータバス２６に乗せる。Write Enable信号及びAddress Enable信号がディアサートされる。ADD R1に対応するビットが内部レジスタ２９に保持される。
【００２３】
第１データサイクル（Data Cycle 1）に、Write Enable信号がアサートされ、ＣＰＵ２２が８ビット（Data 1）をデータバス２６に乗せる。これらの８ビットは望ましい１６ビットアドレスの下位アドレスデータバイトLB1で、主メモリ空間２８内の場所Ｌに対応している。Write Enable信号がディアサートされる。LB1に対応するビットが内部レジスタ２９のコンテンツによって定義されるアドレスに格納される、すなわち、LB1がレジスタR1に格納される。
【００２４】
第２アドレスサイクル（Address Cycle 2）に、ＣＰＵ２２はAddress Enable信号及びWrite Enable信号をアサートし、レジスタR2（ADD R2）のアドレスを定義する８（又はそれより少ない）ビットをデータバス２６に乗せる。Write Enable信号及びAddress Enable信号がディアサートされる。ADD R2に対応するビットが内部レジスタ２９に保持される。
【００２５】
第２データサイクル（Data Cycle 2）に、Write Enable信号がアサートされ、ＣＰＵは８ビット（Data 2）をデータバス２６に乗せる。これらの８ビットは望ましい１６ビットアドレスの上位アドレス‐データバイトUB1を定義する。Write Enable信号がディアサートされる。UB1に対応するビットが内部レジスタ２９のコンテンツによって定義されるアドレスに格納される、すなわち、UB1がレジスタR2に保持される。
【００２６】
この例で、メモリデバイス２４は上位バイトUBと下位バイトLBを結合又は連結して１６ビットのアドレスを提供するようになっている。図を簡素化するために、これを図１に、レジスタR1及びR2を主メモリ空間２８のアドレス入力に結合する個別のバスB1及びB2で表示している。しかしながら、当業者ならば、多種多様な他の方法で上位バイトUBと下位バイトLBを連結できることが分かるだろう。メモリデバイス２４は場所Ｌをアクセスするのにいまや完全な１６ビットアドレスを用いることができる。レジスタR1, R2に保持されている１６ビットアドレスをメモリリードアクセス又はメモリライトアクセスのどちらにも用いることができる。
【００２７】
図３に、書き込み動作のタイミング図を示す。Address Cycle 3に、ＣＰＵ２２がAE#信号及びWE#信号をアサートし、データポートアドレス（ADD DP）をデータバス２６に乗せる。WE#信号がディアサートされる。Data Cycle 3に、ＣＰＵ２２がWE#信号をアサートし、データ（Write Data）をデータバス２６に乗せる。DataがレジスタR1, R2内の定義されたアドレス、すなわち、場所Ｌのアドレスに書き込まれる。
【００２８】
図４に、読み取り動作のタイミング図を示す。Address Cycle 3'に、ＣＰＵ２２がAE#信号及びWE#信号をアサートし、データポートアドレス（ADD DP）をデータバス２６に乗せる。Data Cycle 3'にＣＰＵ２２はRE#信号をアサートし、メモリデバイス２４がデータバス２６に乗せたデータ（Read Data）を読み出す。Read DataはレジスタR1, R2内の定義されたアドレス、すなわち、場所Ｌのアドレスから検索されている。
【００２９】
図５に、本発明による、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス（address）するための装置５０を示す。装置５０は上述の動作を変える論理回路５２を有する。より具体的に言えば、レジスタR1, R2は論理回路５２の制御下にある。装置５０は、ＣＰＵ２２と、例えば、グラフィックス表示システムに採用できるようなメモリデバイス５１と、コスト及び電力節約のためにアドレスバスとしても使用される８ビットのデータバスとを有する。しかしながら、メモリデバイス５１は、アドレス空間２８（主メモリ空間として示されている）を有するのが一般的で、空間内の全ての場所をアドレスアクセス（address）するには８ビット以上が必要である。
【００３０】
論理回路５２は、WE#信号がアサートされると共にAE#信号がアサートされているとＣＰＵ２２が第１アドレス‐データバイト（例えば、下位アドレス‐データバイトLB）を伝送しようとしていることを示していると認識するハードウェア、ソフトウェア、ファームウェア、或いはこうしたコンポーネントの組合せとして実現可能である。回路５２は自動的にレジスタR1をアドレス指定（address）し、このバイトをレジスタR1に格納させる。さらに、回路５２は後続のAE#信号及びWE#信号がアサートされるとＣＰＵ２２がもう一つのアドレス‐データバイト（例えば、アドレス‐データバイトUB）を伝送しようとしていることを認識する。回路５２は自動的にレジスタR2をアドレス指定（address）し、このバイトをレジスタR2に保持させる。
【００３１】
図６に、装置５０の一つの好適な実施例の動作を例をあげて説明するタイミング図を示す。具体的には、上記の例と比較するために、レジスタR1及びR2のアドレスを書き込むのに用いられるアドレスサイクルを省略している。むしろ、発明によれば、第１データサイクル（Address Cycle 1）にＣＰＵ２２はAE#信号及びWE#信号をアサートし、８ビットをデータバスに乗せる。この８ビットは望ましい１６ビットアドレスの下位アドレス‐データバイトLB1（AD[7:0]）を定義し、主メモリ空間２８内の場所Ｌに対応している。ＣＰＵはWE#信号をディアサートする。第２データサイクル（Address Cycle 2）にＣＰＵ２２はAE#信号及びWE#信号をアサートし、８ビットをデータバス２６に乗せる。この８ビットは望ましい１６ビットアドレスの上位アドレス‐データバイトUB1（AD[15:8]）を定義する。
【００３２】
先行技術と同様に、メモリデバイス２４は上位バイトUB1と下位バイトLB1を連結して一つの完全アドレスを提供するようになっており、メモリデバイス２４は場所Ｌをアクセスするのにいまやこの完全アドレスを用いることができる。図１と同様に、個別のバスB1, B2がレジスタR1及びR2を主メモリ空間２８のアドレス入力に結合しており、前と同様に、図を簡素化するためにこの方法を表示し、先行技術で知られた任意のやり方で上位バイトUB1と下位バイトLB1を連結できることを想定している。レジスタR1及びR2に保持されている１６ビットアドレスはメモリ読み取り動作又はメモリ書き込み動作どちらにも用いることができる。
【００３３】
図３〜４にアドレスサイクル３、３'と表示したように、先行技術では、メモリアクセスにはデータポートのアドレスをデータバスに乗せる操作が欠かせないことを思い出すだろう。対照して、発明によれば、メモリデバイス５１、５６、６０は図３〜４に示したアドレスサイクル３、３'によって表わされる動作を先ず最初に行なわなくてもメモリアクセスを実行するようになっている。発明によれば、場所Ｌの完全アドレスをレジスタR1〜RKに保持した直後にメモリアクセスが発生することがある。言い換えれば、一旦記憶場所Ｌがアドレス指定（address）されたら、場所Ｌのアドレスが保持されている場所を知らせる操作をしなくても直ちにメモリアクセスが発生することがある。発明によれば、メモリアクセスはＣＰＵ２２からのコマンドに基づいている。一つの好適な実施例において、AE#信号をディアサートしてWE#信号かRE#信号かどちらか一方をアサートすることからメモリアクセスが生じる。メモリアクセスはそうしたコマンドだけに基づくのが好ましい。例えば、図６及び９において、アドレスサイクル２の直後にデータライトサイクル３が発生することがある。もしくは、図６及び１０において、アドレスサイクル２の直後にデータリードサイクル３'が発生することがある。
【００３４】
記憶場所Ｌがアドレス指定（address）された後に実行されるメモリ読み出し又は書き込み動作はもう一つ重要な点で先行技術とは異なる。以下に説明するように、一つの好適な実施例において、レジスタR1, R2, ...RNを自動的にアドレス指定（address）するためにカウンタが採用されている。論理回路５２はさらに、ある特定のコマンドを受け取った場合にはカウントをリセットしなければならないと認識するハードウェア、ソフトウェア、ファームウェア、又はこれらのコンポーネントの組合せとして実現することができる。とりわけ、（１）AE#信号がアサートされておらず、且つ（２）RE#信号又はWE#信号どちらかがアサートされている場合には、カウンタがリセットされなければならないことを論理回路５２が認識するのが好ましい。
【００３５】
図５及び６に、本発明により、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス（address）するための更なる好適な実施例を示す。これらの好適な実施例は図５に示したのと類似している。図５において、論理回路５４は回路５２に対応し、レジスタR1, R2を自動的にアドレス指定（address）するように１ビットカウンタ６４を採用している。一つの好適な実施例である回路５２に対応するもっと一般的な論理回路５２はこのアドレス指定（address）機能を実行するためのＫビットカウンタを採用しており、図８に表示した追加レジスタR1〜RKと共に使用するのに適している。
【００３６】
図７において、１ビットカウンタ６４がレジスタR1及びR2にそれぞれ結合された出力バス７０及び７２間でトグル切り替えするデマルチプレクサ６２のセレクト出力６８に結合されている。デマルチプレクサ６２の入力は８ビットのデータバス２６に結合されている。カウンタ６４はカウントをインクリメントし、それからそのカウントをゼロにリセットする。例えば、カウンタ６４はゼロに初期リセットされ、ＣＰＵ２２が第１アドレス‐データバイトを書き込むと、デマルチプレクサ６２のセレクト出力６８がゼロになるからレジスタR1に保持される。それからカウンタ６４はＣＰＵ２２が第２アドレス‐データバイトを書き込むとレジスタR2に保持されるように１にインクリメントする。ＣＰＵ２２が第２アドレス‐データバイトを書き込んだ後、カウンタ６４はゼロにリセットされる。もしくは、図９〜１０に表示したケースのように、ＣＰＵ２２が後続のデータサイクル３、３'を実行するとカウンタ６４はゼロにリセットされる。
【００３７】
それに対し、図８において、メモリデバイス６０は２Mビットメモリ空間を有し、Ｎビットのデータバス２６でＣＰＵ２２に結合されている。Ｋビットカウンタ６６はデマルチプレクサ６９のセレクト入力６８に結合されている。Ｋビットカウンタ６６はＫ個のレジスタがアドレス指定（address）されるまで、すなわち、R1〜RKがアドレス指定（address）されるまでカウントをインクリメントする。メモリデバイス６０はレジスタR1からRKに保持されているアドレス‐データバイトを結合又は連結して一つの完全アドレスを提供するようになっており、メモリデバイス６０はそのメモリ空間内の任意の場所Ｌをアクセスするのにその完全アドレスを用いることができる。図７に示した実施例と同じように、Ｋビットカウンタ６６はＣＰＵ２２がＫ番目のアドレス‐データバイトを書き込んだ後ゼロにリセットされる。もしくは、図６に表示したケースのように、必要なＫ個のアドレスサイクルに続いて、ＣＰＵ２２がデータサイクル３又は３'（図９〜１０に表示したのと同様な）を実行するとカウンタ６６がゼロにリセットされる。
【産業上の利用可能性】
【００３８】
上述のごとく、発明の際立った長所は、ＭはＮよりも大きいとした場合、２Mビットのメモリ空間を有するメモリデバイス５１、５６、６０をアドレスアクセス（address）するＮビットのデータバス２６を用いるＣＰＵ２２は従来の技術で必要だったサイクル数と比べ消費する「サイクル」数が少ないことである。ＣＰＵ２２はクロッキングされているから、アドレスサイクル及びデータサイクルは或る所定数のクロックサイクルを消費する、従って、ＣＰＵ２２は或る所定量の時間を消費するわけで、ＣＰＵにはそれを減らす手立てはない。それに対し、本発明をＣＰＵ２２の外に実現した場合、先行技術では欠かせなかったサイクルを無くすことによってレジスタR1及びR2をアドレスアクセス（address）するのに要する時間を必要最低量だけに減らすことができる。
【００３９】
例における８ビットバス及び８ビットバイトの使用は任意である。さらに、ＣＰＵがアドレス‐データバイトを送ろうとしていることを論理回路に知らせるためにAddress Enable信号及びWrite Enable信号を用いることも任意である。その他のバス幅、バイト長、信号の使用も想定している。比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス（address）するための具体的な方法並びに装置を好適な例として表示及び説明してきたが、すでに述べたものの他に、発明の原理から逸脱することなく、他の構成及び方法を利用できることをさらに認識している。
【００４０】
上記の明細書で採用した用語や表現は説明のためで限定の用語として用いてはいない。またそうした用語や表現の使用には表示及び説明した構成の等価物及びその一部を除外する意図はない。発明の範囲は特許請求の範囲によってのみ限定されるものと認識している。
【図面の簡単な説明】
【００４１】
【図１】比較的に小さいなアドレス空間からメモリ空間をアドレスアクセス（address）するための先行技術による装置の概略図。
【図２】図１に示した装置の動作を例を挙げて説明するタイミング図。
【図３】図１に示した装置の動作を例を挙げて説明するタイミング図。
【図４】図１に示した装置の動作を例を挙げて説明するタイミング図。
【図５】本発明による、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス（address）するための好適な実施例の概略図。
【図６】図５に示した装置の動作を例を挙げて説明するタイミング図。
【図７】本発明による、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス（address）するための好適な別の実施例の概略図。
【図８】本発明による、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス（address）するためのさらに別の好適な実施例の概略図。
【図９】図５に示した装置の動作を例を挙げて説明するタイミング図。
【図１０】図５に示した装置の動作を例を挙げて説明するタイミング図。
【符号の説明】
【００４２】
５４：  論理回路
５２：  回路
R1  ：  レジスタ
R2  ：  レジスタ
６４：  １ビットカウンタ
７０、７２：  出力バス
６２：  デマルチプレクサ
６８：  セレクト出力
２６：  データバス
２２：  ＣＰＵ
３、３'：  後続のデータサイクル
６０：  メモリデバイス
６６：  Ｋビットカウンタ
６９：  デマルチプレクサ
【図１】
2005071363.tif 000003
【図２】
2005071363.tif 000004
【図３】
2005071363.tif 000005
【図４】
2005071363.tif 000006
【図５】
2005071363.tif 000007
【図６】
2005071363.tif 000008
【図７】
2005071363.tif 000009
【図８】
2005071363.tif 000010
【図９】
2005071363.tif 000011
【図１０】
2005071363.tif 000012