JP2005071363A - 比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス(address)するための方法及び装置 - Google Patents

比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス(address)するための方法及び装置 Download PDF

Info

Publication number
JP2005071363A
JP2005071363A JP2004239089A JP2004239089A JP2005071363A JP 2005071363 A JP2005071363 A JP 2005071363A JP 2004239089 A JP2004239089 A JP 2004239089A JP 2004239089 A JP2004239089 A JP 2004239089A JP 2005071363 A JP2005071363 A JP 2005071363A
Authority
JP
Japan
Prior art keywords
address
memory
memory access
command
memory space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004239089A
Other languages
English (en)
Inventor
Soroushi Atousa
ソロウシ アトウサ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of JP2005071363A publication Critical patent/JP2005071363A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Abstract

【課題】比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス(address)するための方法及び装置。
【解決手段】比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス(address)するための方法及び装置。Nビットバスが2アドレスメモリ空間を有するメモリデバイスとのインタフェースをとり、ここでMはNよりも大きい。この方法及び装置は(a)少なくとも2個のレジスタを用意し、(b)メモリ空間内のアドレスを共同定義する複数のNビットバイトのうちの一つのバイトを受け取り、(c)ステップ(b)を完了した結果カウントをインクリメントし、(d)ステップ(c)でインクリメントされたカウントに従って2個のレジスタのうちの一方をアドレス指定(address)し、(e)ステップ(d)でアドレス指定(address)されたレジスタにその一つのバイトを格納することができる。
【選択図】 図5

Description

本発明は比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス(address)するための方法及び装置に関する。
メモリ又はプリンタ、ディスプレイ、ポート或いはレジスタといった任意のメモリマップI/Oデバイスを本書では「メモリデバイス」と呼んでいる。1個以上のメモリデバイスがNビットアドレスバスに結合されていることがあり、Nビットアドレスバスを用いてメモリデバイスに直接アドレスアクセス(address)することができる。Nビットアドレスバスを用いた直接アドレスアクセス(address)ではアドレス空間に2N個以上のアドレスがあってはならない。例えば、メモリデバイスの28つまり256個の記憶場所つまりアドレスを直接アクセスするのに典型的な8ビットアドレスバスを使用することができる。
1個以上のメモリデバイスがバスに結合されていることが多い。さらに、アドレス空間にはメモリ内の場所を識別するアドレスがあるだけでなく、バスに結合された他のメモリデバイス内のアドレス指定(address)可能な場所が入っている。8ビットアドレスバスの例の話を続けると、256ヶ所のうちの200ヶ所はメモリチップのランダムアクセス記憶場所であることがあり、残る56個のアドレスは他のメモリデバイス内のレジスタ又はポートを識別するのに使用される。しかしながら、ほとんどのメモリチップは記憶場所256ヶ所を越える容量を有し、ほとんどのシステムは256よりも大きなメモリ空間を有する。このために、幅広いアドレスバスが使用されることが多い。例えば、216つまり65536(64K)のメモリ空間内の任意の場所を直接アクセスするのに16ビットバスを用いることができる。別の例として、今日のパーソナルコンピュータのアドレスバスは36ビットが一般的で、64GB(236)アドレス空間の任意の場所に直接アクセス可能である。
しかしながら、今日では、パーソナルコンピュータと比べはるかに複雑でないシステムが多く、依然として8ビットバスといった比較的に小型のバスを使用しているものが多い。さらに、そうしたシステムはアドレス及びデータ両方の通信に使用するのに単一のバスしか有していないことがある。比較的に小型のバスを1本しか採用しない理由はコストと電力の節約である。単一8ビットバスを一般的に採用するシステムの例としては、ハンドヘルドデバイス、電池を電源とする携帯用デバイス、セルラー電話、埋め込みシステムなどがある。そうしたシステムは8ビットバスを採用しているけれども、256アドレスよりも大きなアドレス空間を有するのが望ましい。アドレス空間が256アドレスより大きくても、8ビットバスを有するシステム内の記憶場所全てにアクセスするのに使用可能な技法がある。この技法は「間接的アドレスアクセス(address)」として知られている。
間接的アドレスアクセス(address)技法により、2M個の場所を有するメモリ空間内の任意の場所をNビットバスを用いてアクセスできる。ここで、MはNよりも大きい。間接的アドレスアクセス(address)技法を用いると、最初のステップはNビットバスでNビットのアドレス(address R1)を伝送することである。Address R1は第1レジスタを識別するのに用いられる。その次に、Nビットのデータ(Data 1)がバスで伝送され、或るレジスタに保持される。Data 1が保持されるレジスタはaddress R1で指定される、すなわち、Data 1は第1レジスタに格納される。NビットのデータData 1は1バイトを定義する。
第2のバイトに対して前述のステップが繰り返される。第2のNビットのアドレス(address R2)がバスで伝送される。第2レジスタを識別するのにaddress R2が用いられる。第2のNビットのデータ(Data 2)がバスで伝送され、address R2で識別されるレジスタ、すなわち、第2レジスタに格納される。NビットのデータData 2が第2バイトを定義する。
2バイトのデータ(Data 1とData 2)が今では第1及び第2レジスタに保持されている。間接的アドレスアクセス(address)技法はこれらの2バイトを用いてシステムの2Mビットメモリ空間内のアドレス、つまり長さが2バイト(N+Nビット)のアドレスを定義する。第1及び第2レジスタ内の2バイトは組み合わされてメモリ空間内の2M個の記憶場所のうちの一つにアクセスするための一つの完全アドレスを定義する。第1及び第2レジスタに保持されている2バイトの「データ」はアドレスを定義するのに使用されるから、その2バイトを本書では「アドレス-データ・バイト」と呼ぶことがある。
上記のごとく、先行技術による間接的アドレスアクセス(address)技法はバスで2個以上のレジスタアドレスと少なくとも2つのアドレス-データバイトを伝送しなければならない。本書では、先行技術による間接的アドレスアクセス(address)技法の引用に関して、「アドレスサイクル」及び「データサイクル」という表現によって、レジスタ又は「データポート」アドレスを伝送することと関連付けられる活動及び1バイトのアドレスデータ又は他のデータを伝送することと関連付けれらる活動をそれぞれ指しているつもりである。上記の例において、この用語を用いると、2アドレスサイクルと2データサイクルが必要である。従来の方法ではアドレスサイクル及びデータサイクルを定義するのに、Address EnableやWrite Enableといった制御信号を用いる。本書で発明の好適な実施例の説明に関して、「アドレスサイクル」及び「データサイクル」という表現によってここで説明する活動を指しているつもりである。
レジスタR1, R2に2つのアドレス-データバイトが保持された後、CPUは読み取り動作又は書き込み動作を行なうことがあり、メモリデバイスはレジスタR1, R2に保持されているアドレス‐データバイトを用いて読み書き動作を行なう。例えば、第1アドレスサイクル及び第1データサイクルに上位(又は下位)アドレス‐データバイトをメモリデバイスに先ず伝送し、それから第2アドレスサイクル及び第2データサイクルに下位(又は上位)アドレス‐データバイトを伝送することによってCPUは8ビットバスを用いてメモリデバイスに16ビットのアドレスを伝送することができる。CPUはそれからアドレスサイクルにデータポートアドレスを伝送し、データサイクルにレジスタR1, R2内のアドレスで指定された場所にデータを書き込む或いはそこからデータを読み出すかいずれかを行なう。
米国特許第6,189,052号明細書 米国特許第5,570,306号明細書 米国特許第5,659,783号明細書
Nビットバスを用いて2M個以上のアドレスを有するメモリ空間の或る場所をアドレスアクセス(address)するのに間接的アドレスアクセス(address)技法を用いるには、少なくとも2セット、恐らく2セット以上のアドレスサイクル及びデータサイクルが必要である。さらに、或る記憶場所がアドレス指定(address)された後にそれにアクセスするには、追加のアドレスサイクル及びデータサイクルが必要である。一般論として、2Mアドレスメモリ空間のサイズが大きくなると、すなわち、Mは大きくなるがNは一定で変わらない場合、Nビットバスを用いて間接的にメモリ空間にアドレスアクセス(address)するにはより多くのアドレスサイクル及びデータサイクルが必要である。その上、新しいアドレスごとに、上記のステップを全て繰り返さなければならない。こうした制約によりCPU及びメモリ間の通信速度が限定されるので望ましくない。よって、先行技術で可能なメモリデバイスとの通信速度よりも速い通信速度を可能にする、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス(address)できる方法及び装置に対するニーズがある。
発明は比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス(address)するための方法及び装置に関する。発明によれば、Nビットバスが2Mアドレスメモリ空間を有するメモリデバイスとインタフェースをとる(ここで、MはNよりも大きい)。この方法及び装置は、(a)少なくとも2個のレジスタを設け、(b)メモリ空間内の或るアドレスを共同定義する複数のNビットバイトのうちの片方のバイトを受け取り、(c)ステップ(b)を完了するとその結果カウントをインクリメントし、(d)ステップ(c)でインクリメントされたカウントに従って2個のレジスタのうちの片方をアドレス指定(address)し、(e)ステップ(d)でアドレス指定(address)されたレジスタにその片方のバイトを格納することができる。
この方法及び装置はさらに、複数のバイトのうちのもう一方のバイトを受け取り、ステップ(c)からのカウントをリセットし、カウントのリセットの結果その2個のレジスタのうちの他方をアドレス指定(address)し、それから他方のレジスタに他方のバイトを格納することができる。
もしくは、この方法及び装置はさらに、複数のバイトのうちのもう一方のバイトを受け取り、ステップ(c)からのカウントをインクリメントして次のインクリメントされたカウントを取得し、そのインクリメントされた次のカウントの結果2個のレジスタのうちの他方をアドレス指定(address)し、それから他方のレジスタに他方のバイトを格納することもできる。
さらに、発明の一つの態様はNビットバスを用いて2M個のアドレスを有するメモリ空間の高速アクセスを可能にする方法及び装置に関し、ここでMはNよりも大きい。発明によれば、少なくとも2個のレジスタが設けられ、レジスタは各々がメモリ空間内のアドレスを共同定義する複数のNビットバイトのうちの1つのバイトを保有している。メモリアクセスコマンドを受け取り、前記メモリアクセスコマンドの結果アドレスにあるメモリ空間がアクセスされる。
以下、本発明の実施形態を図面に基づいて説明する。
図面を参照して発明を説明する。そして可能な限り、図面では同じ又は類似した部品には同じ参照番号を採用している。同様に、可能な限り、同じ信号又は類似して信号には同じ信号名を使用している。
先行技術のメソドロジーを採用している図1を参考しながら発明の好適な状況を説明する。図1に、例えば、グラフィックス表示システムに使用されるような、CPU22とメモリデバイス24とのインタフェースをとるためのシステム20を示す。メモリデバイス24は複数のレジスタ25(R1〜RK)とバスインタフェースユニット(BIU)27を有する。コスト及び電力の節約のために、この例におけるシステム20は、アドレスバスとしても使用される8ビットのデータバスを採用している。しかしながら、メモリデバイス24はアドレス空間28(主メモリ空間と示されている)を有するのが一般的で、アドレス空間28はバスB1及びB2でアドレス入力[AD15:0]を介して8ビットよりも大きなアドレスが供給されなければならない。一つの実施例において、アドレス空間28内の各場所を一意に識別するには16ビットアドレスが必要である。よって、メモリデバイス24は間接的にアドレスアクセス(address)されなければならず、メモリデバイス24内のレジスタR1及びR2を用いてCPU22からデータバス26で順次伝送される8ビットの下位アドレス‐データバイト(LB)と8ビットの上位アドレス‐データバイト(UB)をそれぞれ保持する。
BIU27は線30、32、34上の制御信号をモニタすると共に、バス26上のデータ信号をモニタする。制御信号及びデータ信号に応答して、BIU27はバス26に乗っているビットを内部レジスタ29に保持する、命令を実行するためにレジスタ25又はアドレス空間28に内部信号を供給する、或いは前記の組合せを行なうことがある。
{17}図2は、以下に詳しく説明するように、メモリデバイス24のアドレスサイクル、データサイクル、及び動作を例を挙げて説明しているタイミング図である。アドレスサイクルはAddress Enable(AE#)信号及びWrite Enable(WE#)信号の両方をアサートすることから始まる。(#印は、これらの信号は「ロー」の時アサートされていることを示す。)さらに、データサイクルはAE#信号をディアサートしてWE#信号かRead Enable(RE#)信号かどちらかをアサートすることから始まる。
BIU27は、アドレスサイクルを検出すると、データバス26に乗っているビットを内部レジスタ29に保持させるようになっている。さらに、データリードサイクル又はデータライトサイクルに、BIU27はデータバス26に乗っているビットを保持させるか、或いはビットをデータバス26に乗せさせるようになっている。データサイクルに、内部レジスタ29のコンテンツからデータが保持されている或いは検索先のアドレスが判定される。データライトサイクルに、レジスタ29のコンテンツが或るレジスタを識別していれば、データバス26に乗っているビットがそのレジスタに書き込まれる。それに対して、データライトサイクルに、レジスタ29のコンテンツが「データポートアドレス」を識別していれば、データバス26に乗っているビットは、例えば、R1,R2といった、レジスタ25のコンテンツによって定義されるメモリ空間内の場所に書き込まれる。
図2において、操作時、CPU22は第1アドレスサイクル("Address Cycle 1)に線30、34に乗っているAE#信号及びWE#信号をアサートし、レジスタR1のアドレス(ADD R1)を定義する8(或いはそれより少ない)ビットをデータバス26に乗せる。Write Enable信号及びAddress Enable信号がディアサートされる。ADD R1に対応するビットが内部レジスタ29に保持される。
第1データサイクル(Data Cycle 1)に、Write Enable信号がアサートされ、CPU22が8ビット(Data 1)をデータバス26に乗せる。これらの8ビットは望ましい16ビットアドレスの下位アドレスデータバイトLB1で、主メモリ空間28内の場所Lに対応している。Write Enable信号がディアサートされる。LB1に対応するビットが内部レジスタ29のコンテンツによって定義されるアドレスに格納される、すなわち、LB1がレジスタR1に格納される。
第2アドレスサイクル(Address Cycle 2)に、CPU22はAddress Enable信号及びWrite Enable信号をアサートし、レジスタR2(ADD R2)のアドレスを定義する8(又はそれより少ない)ビットをデータバス26に乗せる。Write Enable信号及びAddress Enable信号がディアサートされる。ADD R2に対応するビットが内部レジスタ29に保持される。
第2データサイクル(Data Cycle 2)に、Write Enable信号がアサートされ、CPUは8ビット(Data 2)をデータバス26に乗せる。これらの8ビットは望ましい16ビットアドレスの上位アドレス‐データバイトUB1を定義する。Write Enable信号がディアサートされる。UB1に対応するビットが内部レジスタ29のコンテンツによって定義されるアドレスに格納される、すなわち、UB1がレジスタR2に保持される。
この例で、メモリデバイス24は上位バイトUBと下位バイトLBを結合又は連結して16ビットのアドレスを提供するようになっている。図を簡素化するために、これを図1に、レジスタR1及びR2を主メモリ空間28のアドレス入力に結合する個別のバスB1及びB2で表示している。しかしながら、当業者ならば、多種多様な他の方法で上位バイトUBと下位バイトLBを連結できることが分かるだろう。メモリデバイス24は場所Lをアクセスするのにいまや完全な16ビットアドレスを用いることができる。レジスタR1, R2に保持されている16ビットアドレスをメモリリードアクセス又はメモリライトアクセスのどちらにも用いることができる。
図3に、書き込み動作のタイミング図を示す。Address Cycle 3に、CPU22がAE#信号及びWE#信号をアサートし、データポートアドレス(ADD DP)をデータバス26に乗せる。WE#信号がディアサートされる。Data Cycle 3に、CPU22がWE#信号をアサートし、データ(Write Data)をデータバス26に乗せる。DataがレジスタR1, R2内の定義されたアドレス、すなわち、場所Lのアドレスに書き込まれる。
図4に、読み取り動作のタイミング図を示す。Address Cycle 3'に、CPU22がAE#信号及びWE#信号をアサートし、データポートアドレス(ADD DP)をデータバス26に乗せる。Data Cycle 3'にCPU22はRE#信号をアサートし、メモリデバイス24がデータバス26に乗せたデータ(Read Data)を読み出す。Read DataはレジスタR1, R2内の定義されたアドレス、すなわち、場所Lのアドレスから検索されている。
図5に、本発明による、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス(address)するための装置50を示す。装置50は上述の動作を変える論理回路52を有する。より具体的に言えば、レジスタR1, R2は論理回路52の制御下にある。装置50は、CPU22と、例えば、グラフィックス表示システムに採用できるようなメモリデバイス51と、コスト及び電力節約のためにアドレスバスとしても使用される8ビットのデータバスとを有する。しかしながら、メモリデバイス51は、アドレス空間28(主メモリ空間として示されている)を有するのが一般的で、空間内の全ての場所をアドレスアクセス(address)するには8ビット以上が必要である。
論理回路52は、WE#信号がアサートされると共にAE#信号がアサートされているとCPU22が第1アドレス‐データバイト(例えば、下位アドレス‐データバイトLB)を伝送しようとしていることを示していると認識するハードウェア、ソフトウェア、ファームウェア、或いはこうしたコンポーネントの組合せとして実現可能である。回路52は自動的にレジスタR1をアドレス指定(address)し、このバイトをレジスタR1に格納させる。さらに、回路52は後続のAE#信号及びWE#信号がアサートされるとCPU22がもう一つのアドレス‐データバイト(例えば、アドレス‐データバイトUB)を伝送しようとしていることを認識する。回路52は自動的にレジスタR2をアドレス指定(address)し、このバイトをレジスタR2に保持させる。
図6に、装置50の一つの好適な実施例の動作を例をあげて説明するタイミング図を示す。具体的には、上記の例と比較するために、レジスタR1及びR2のアドレスを書き込むのに用いられるアドレスサイクルを省略している。むしろ、発明によれば、第1データサイクル(Address Cycle 1)にCPU22はAE#信号及びWE#信号をアサートし、8ビットをデータバスに乗せる。この8ビットは望ましい16ビットアドレスの下位アドレス‐データバイトLB1(AD[7:0])を定義し、主メモリ空間28内の場所Lに対応している。CPUはWE#信号をディアサートする。第2データサイクル(Address Cycle 2)にCPU22はAE#信号及びWE#信号をアサートし、8ビットをデータバス26に乗せる。この8ビットは望ましい16ビットアドレスの上位アドレス‐データバイトUB1(AD[15:8])を定義する。
先行技術と同様に、メモリデバイス24は上位バイトUB1と下位バイトLB1を連結して一つの完全アドレスを提供するようになっており、メモリデバイス24は場所Lをアクセスするのにいまやこの完全アドレスを用いることができる。図1と同様に、個別のバスB1, B2がレジスタR1及びR2を主メモリ空間28のアドレス入力に結合しており、前と同様に、図を簡素化するためにこの方法を表示し、先行技術で知られた任意のやり方で上位バイトUB1と下位バイトLB1を連結できることを想定している。レジスタR1及びR2に保持されている16ビットアドレスはメモリ読み取り動作又はメモリ書き込み動作どちらにも用いることができる。
図3〜4にアドレスサイクル3、3'と表示したように、先行技術では、メモリアクセスにはデータポートのアドレスをデータバスに乗せる操作が欠かせないことを思い出すだろう。対照して、発明によれば、メモリデバイス51、56、60は図3〜4に示したアドレスサイクル3、3'によって表わされる動作を先ず最初に行なわなくてもメモリアクセスを実行するようになっている。発明によれば、場所Lの完全アドレスをレジスタR1〜RKに保持した直後にメモリアクセスが発生することがある。言い換えれば、一旦記憶場所Lがアドレス指定(address)されたら、場所Lのアドレスが保持されている場所を知らせる操作をしなくても直ちにメモリアクセスが発生することがある。発明によれば、メモリアクセスはCPU22からのコマンドに基づいている。一つの好適な実施例において、AE#信号をディアサートしてWE#信号かRE#信号かどちらか一方をアサートすることからメモリアクセスが生じる。メモリアクセスはそうしたコマンドだけに基づくのが好ましい。例えば、図6及び9において、アドレスサイクル2の直後にデータライトサイクル3が発生することがある。もしくは、図6及び10において、アドレスサイクル2の直後にデータリードサイクル3'が発生することがある。
記憶場所Lがアドレス指定(address)された後に実行されるメモリ読み出し又は書き込み動作はもう一つ重要な点で先行技術とは異なる。以下に説明するように、一つの好適な実施例において、レジスタR1, R2, ...RNを自動的にアドレス指定(address)するためにカウンタが採用されている。論理回路52はさらに、ある特定のコマンドを受け取った場合にはカウントをリセットしなければならないと認識するハードウェア、ソフトウェア、ファームウェア、又はこれらのコンポーネントの組合せとして実現することができる。とりわけ、(1)AE#信号がアサートされておらず、且つ(2)RE#信号又はWE#信号どちらかがアサートされている場合には、カウンタがリセットされなければならないことを論理回路52が認識するのが好ましい。
図5及び6に、本発明により、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス(address)するための更なる好適な実施例を示す。これらの好適な実施例は図5に示したのと類似している。図5において、論理回路54は回路52に対応し、レジスタR1, R2を自動的にアドレス指定(address)するように1ビットカウンタ64を採用している。一つの好適な実施例である回路52に対応するもっと一般的な論理回路52はこのアドレス指定(address)機能を実行するためのKビットカウンタを採用しており、図8に表示した追加レジスタR1〜RKと共に使用するのに適している。
図7において、1ビットカウンタ64がレジスタR1及びR2にそれぞれ結合された出力バス70及び72間でトグル切り替えするデマルチプレクサ62のセレクト出力68に結合されている。デマルチプレクサ62の入力は8ビットのデータバス26に結合されている。カウンタ64はカウントをインクリメントし、それからそのカウントをゼロにリセットする。例えば、カウンタ64はゼロに初期リセットされ、CPU22が第1アドレス‐データバイトを書き込むと、デマルチプレクサ62のセレクト出力68がゼロになるからレジスタR1に保持される。それからカウンタ64はCPU22が第2アドレス‐データバイトを書き込むとレジスタR2に保持されるように1にインクリメントする。CPU22が第2アドレス‐データバイトを書き込んだ後、カウンタ64はゼロにリセットされる。もしくは、図9〜10に表示したケースのように、CPU22が後続のデータサイクル3、3'を実行するとカウンタ64はゼロにリセットされる。
それに対し、図8において、メモリデバイス60は2Mビットメモリ空間を有し、Nビットのデータバス26でCPU22に結合されている。Kビットカウンタ66はデマルチプレクサ69のセレクト入力68に結合されている。Kビットカウンタ66はK個のレジスタがアドレス指定(address)されるまで、すなわち、R1〜RKがアドレス指定(address)されるまでカウントをインクリメントする。メモリデバイス60はレジスタR1からRKに保持されているアドレス‐データバイトを結合又は連結して一つの完全アドレスを提供するようになっており、メモリデバイス60はそのメモリ空間内の任意の場所Lをアクセスするのにその完全アドレスを用いることができる。図7に示した実施例と同じように、Kビットカウンタ66はCPU22がK番目のアドレス‐データバイトを書き込んだ後ゼロにリセットされる。もしくは、図6に表示したケースのように、必要なK個のアドレスサイクルに続いて、CPU22がデータサイクル3又は3'(図9〜10に表示したのと同様な)を実行するとカウンタ66がゼロにリセットされる。
上述のごとく、発明の際立った長所は、MはNよりも大きいとした場合、2Mビットのメモリ空間を有するメモリデバイス51、56、60をアドレスアクセス(address)するNビットのデータバス26を用いるCPU22は従来の技術で必要だったサイクル数と比べ消費する「サイクル」数が少ないことである。CPU22はクロッキングされているから、アドレスサイクル及びデータサイクルは或る所定数のクロックサイクルを消費する、従って、CPU22は或る所定量の時間を消費するわけで、CPUにはそれを減らす手立てはない。それに対し、本発明をCPU22の外に実現した場合、先行技術では欠かせなかったサイクルを無くすことによってレジスタR1及びR2をアドレスアクセス(address)するのに要する時間を必要最低量だけに減らすことができる。
例における8ビットバス及び8ビットバイトの使用は任意である。さらに、CPUがアドレス‐データバイトを送ろうとしていることを論理回路に知らせるためにAddress Enable信号及びWrite Enable信号を用いることも任意である。その他のバス幅、バイト長、信号の使用も想定している。比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス(address)するための具体的な方法並びに装置を好適な例として表示及び説明してきたが、すでに述べたものの他に、発明の原理から逸脱することなく、他の構成及び方法を利用できることをさらに認識している。
上記の明細書で採用した用語や表現は説明のためで限定の用語として用いてはいない。またそうした用語や表現の使用には表示及び説明した構成の等価物及びその一部を除外する意図はない。発明の範囲は特許請求の範囲によってのみ限定されるものと認識している。
比較的に小さいなアドレス空間からメモリ空間をアドレスアクセス(address)するための先行技術による装置の概略図。 図1に示した装置の動作を例を挙げて説明するタイミング図。 図1に示した装置の動作を例を挙げて説明するタイミング図。 図1に示した装置の動作を例を挙げて説明するタイミング図。 本発明による、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス(address)するための好適な実施例の概略図。 図5に示した装置の動作を例を挙げて説明するタイミング図。 本発明による、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス(address)するための好適な別の実施例の概略図。 本発明による、比較的に小さなアドレス空間からメモリ空間を高速でアドレスアクセス(address)するためのさらに別の好適な実施例の概略図。 図5に示した装置の動作を例を挙げて説明するタイミング図。 図5に示した装置の動作を例を挙げて説明するタイミング図。
符号の説明
54: 論理回路
52: 回路
R1 : レジスタ
R2 : レジスタ
64: 1ビットカウンタ
70、72: 出力バス
62: デマルチプレクサ
68: セレクト出力
26: データバス
22: CPU
3、3': 後続のデータサイクル
60: メモリデバイス
66: Kビットカウンタ
69: デマルチプレクサ

Claims (42)

  1. Nビットバスを用いて2M個のアドレスを有するメモリ空間に高速アドレスアクセス(address)するための方法であって、ここでMはNよりも大きく、
    (a)少なくとも2個のレジスタを用意するステップと、
    (b)該メモリ空間内のアドレスを定義する複数のNビットバイトのうちの1つのバイトを受け取るステップと、
    (c)ステップ(b)を完了した結果カウントをインクリメントするステップと、
    (d)ステップ(c)でインクリメントされたカウントに従って前記2個のレジスタのうちの一つをアドレス指定(address)するステップと、
    (e)ステップ(d)でアドレス指定(address)されたレジスタに前記一つのバイトを格納するステップを有することを特徴とする方法。
  2. 前記複数のバイトのうちのもう一つのバイトを受け取り、ステップ(c)からのカウントをリセットし、カウントのリセットの結果前記2個のレジスタのうちの他方をアドレス指定(address)し、前記他方のレジスタに前記他方のバイトを格納することをさらに有することを特徴とする請求項1に記載の方法。
  3. (a)メモリアクセスコマンドを受け取るステップと、
    (b)前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間にアクセスするステップと、
    をさらに有することを特徴とする請求項2に記載の方法。
  4. 前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項3に記載の方法。
  5. 前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項3に記載の方法。
  6. 前記複数のバイトのうちのもう一つのバイトを受け取り、ステップ(c)からのカウントをインクリメントしてインクリメントされた次のカウントを取得し、そのインクリメントされた次のカウントの結果前記2個のレジスタのうちの他方をアドレス指定(address)し、前記他方のレジスタに前記他方のバイトを格納することをさらに有することを特徴とする請求項1に記載の方法。
  7. (a)メモリアクセスコマンドを受け取るステップと、
    (b)前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間にアクセスするステップと、
    をさらに有することを特徴とする請求項6に記載の方法。
  8. 前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項7に記載の方法。
  9. 前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項7に記載の方法。
  10. 前記2Mアドレスメモリ空間はメモリデバイスのアドレス空間からなることを特徴とする請求項1に記載の方法。
  11. 前記2Mアドレスメモリ空間は複数のメモリデバイスのアドレス空間からなることを特徴とする請求項1に記載の方法。
  12. Nビットバスを用いて2M個のアドレスを有するメモリ空間に高速アドレスアクセス(address)するための装置であって、ここでMはNよりも大きく、
    (a)少なくとも2個のレジスタと、
    (b)カウンタと、
    (c)論理回路とからなり、論理回路は、
    (i)メモリ空間内のアドレスを共同定義する複数のNビットバイトのうちの一つのバイトを受け取り、
    (ii)ステップ(i)を完了した結果前記カウンタのカウントをインクリメントし、
    (iii)ステップ(ii)でインクリメントされたカウントに従って前記2個のレジスタのうちの一方をアドレス指定(address)し、
    (iv)ステップ(iii)でアドレス指定(address)された前記レジスタに前記一つのバイトを格納するようになっていることを特徴とする装置。
  13. 前記論理回路はさらに、前記複数のバイトのうちのもう一つのバイトを受け取り、前記カウンタのカウントをリセットし、そのカウントのリセットの結果前記2個のレジスタのうちの他方をアドレス指定(address)し、前記他方のレジスタに前記他方のバイトを格納するようになっていることを特徴とする請求項12に記載の装置。
  14. 前記論理回路はさらに、
    (a)メモリアクセスコマンドを受け取り、
    (b)前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間をアクセスするようになっていることを特徴とする請求項13に記載の装置。
  15. 前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項14に記載の装置。
  16. 前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項14に記載の装置。
  17. 前記論理回路はさらに、前記複数のバイトのうちのもう一つのバイトを受け取り、前記カウンタのカウントをインクリメントしてインクリメントされた次のカウントを取得し、そのインクリメントされた次のカウントの結果前記2個のレジスタのうちの他方をアドレス指定(address)し、前記他方のレジスタに前記他方のバイトを格納するようになっていることを特徴とする請求項12に記載の装置。
  18. 前記論理回路はさらに、
    (a)メモリアクセスコマンドを受け取り、
    (b)前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間をアクセスするようになっていることを特徴とする請求項13に記載の装置。
  19. 前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項18に記載の装置。
  20. 前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項18に記載の装置。
  21. 前記2Mアドレスメモリ空間はメモリデバイスのアドレス空間からなることを特徴とする請求項12に記載の装置。
  22. 前記2Mアドレスメモリ空間は複数のメモリデバイスのアドレス空間からなることを特徴とする請求項12に記載の装置。
  23. Nビットバスを用いて2M個のアドレスを有するメモリ空間に高速アドレスアクセス(address)するための方法を実行するために機械で実行される命令プログラムを含んだ機械可読媒体であって、該機械は少なくとも2個のレジスタを有し、MはNよりも大きく、該方法は、
    (a)メモリ空間内のアドレスを共同定義する複数のNビットバイトのうちの1つのバイトを受け取るステップと、
    (b)ステップ(a)を完了した結果カウントをインクリメントするステップと、
    (c)ステップ(b)でインクリメントされたカウントに従って該少なくとも2個のレジスタのうちの一つをアドレス指定(address)するステップと、
    (d)ステップ(c)でアドレス指定(address)されたレジスタに前記一つのバイトを格納するステップとを有することを特徴とする機械可読媒体。
  24. 該方法がさらに、前記複数のバイトのうちのもう一つのバイトを受け取り、ステップ(c)からのカウントをリセットし、そのカウントのリセットの結果前記2個のレジスタのうちの他方をアドレス指定(address)し、前記他方のレジスタに前記他方のバイトを格納するように適合されていることを特徴とする請求項23に記載の機械可読媒体。
  25. 該方法はさらに、
    (a)メモリアクセスコマンドを受け取るステップと、
    (b)前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間をアクセスするステップとを有するように適合されていることを特徴とする請求項24に記載の機械可読媒体。
  26. 前記メモリアクセスがデータ書き込みアクセスになるように適合されていることを特徴とする請求項25に記載の機械可読媒体。
  27. 前記メモリアクセスがデータ読み出しアクセスになるように適合されていることを特徴とする請求項25に記載の機械可読媒体。
  28. 該方法はさらに、前記複数のバイトのうちのもう一つのバイトを受け取り、ステップ(c)からのカウントをインクリメントしてインクリメントされた次のカウントを取得し、そのインクリメントされた次のカウントの結果前記2個のレジスタのうちの他方をアドレス指定(address)し、それから前記他方のレジスタに前記他方のバイトを格納することからなるように適合されていることを特徴とする請求項23に記載の機械可読媒体。
  29. (a)メモリアクセスコマンドを受け取るステップと、
    (b)前記メモリアクセスコマンドに基づいて前記アドレスにあるメモリ空間にアクセスするステップと、
    をさらに有することを特徴とする請求項28に記載の方法。
  30. 前記メモリアクセスがデータ書き込みアクセスになるように適合されていることを特徴とする請求項29に記載の機械可読媒体。
  31. 前記メモリアクセスがデータ読み出しアクセスになるように適合されていることを特徴とする請求項29に記載の機械可読媒体。
  32. 前記2Mアドレスメモリ空間はメモリデバイスのアドレス空間からなることを特徴とする請求項23に記載の機械可読媒体。
  33. 前記2Mアドレスメモリ空間は複数のメモリデバイスのアドレス空間からなることを特徴とする請求項23に記載の機械可読媒体。
  34. Nビットバスを用いて2M個のアドレスを有するメモリ空間に高速アドレスアクセス(address)するための方法であって、MはNよりも大きく、
    (a)少なくとも2個のレジスタを用意するステップを有し、前記レジスタの各々はメモリ空間内のアドレスを共同定義する複数のNビットバイトのうちの一つを保有し、
    (b)メモリアクセスコマンドを受け取るステップを有し、
    (c)前記メモリアクセスコマンドの結果前記アドレスにあるメモリ空間にアクセスするステップを有することを特徴とする方法。
  35. 前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項34に記載の方法。
  36. 前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項34に記載の方法
  37. Nビットバスを用いて2M個のアドレスを有するメモリ空間に高速アドレスアクセス(address)するための装置であって、MはNよりも大きく、
    (a)少なくとも2個のレジスタを備え、前記レジスタの各々はメモリ空間内のアドレスを共同定義する複数のNビットバイトのうちの一つを保有し、
    (b)メモリアクセスコマンドを受け取り、前記メモリアクセスコマンドの結果前記アドレスにあるメモリ空間にアクセスするようになっている論理回路を備えることを特徴とする装置。
  38. 前記メモリアクセスコマンドはデータ書き込みコマンドであることを特徴とする請求項37に記載の装置。
  39. 前記メモリアクセスコマンドはデータ読み出しコマンドであることを特徴とする請求項37に記載の装置
  40. Nビットバスを用いて2M個のアドレスを有するメモリ空間に高速アドレスアクセス(address)するための方法を実行するために機械で実行される命令プログラムを含んだ機械可読媒体であって、MはNよりも大きく、該方法は、
    (a)少なくとも2個のレジスタを設けるステップを有し、前記レジスタの各々はメモリ空間内のアドレスを共同定義する複数のNビットバイトのうちの一つを保有し、
    (b)メモリアクセスコマンドを受け取るステップを有し、
    (c)前記メモリアクセスコマンドの結果前記アドレスにあるメモリ空間にアクセスするステップを有することを特徴とする機械可読媒体。
  41. 前記方法は前記メモリアクセスコマンドがデータ書き込みコマンドになるように適合されていることを特徴とする請求項40に記載の機械可読媒体。
  42. 前記方法は前記メモリアクセスコマンドがデータ読み出しコマンドになるように適合されていることを特徴とする請求項40に記載の機械可読媒体。
JP2004239089A 2003-08-20 2004-08-19 比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス(address)するための方法及び装置 Withdrawn JP2005071363A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/644,695 US7506133B2 (en) 2003-08-20 2003-08-20 Method and apparatus for high speed addressing of a memory space from a relatively small address space

Publications (1)

Publication Number Publication Date
JP2005071363A true JP2005071363A (ja) 2005-03-17

Family

ID=34194154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004239089A Withdrawn JP2005071363A (ja) 2003-08-20 2004-08-19 比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス(address)するための方法及び装置

Country Status (2)

Country Link
US (1) US7506133B2 (ja)
JP (1) JP2005071363A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101620128B1 (ko) 2008-12-30 2016-05-12 마이크론 테크놀로지, 인크. 직렬 비휘발성 메모리를 위한 향상된 어드레싱 능력

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54119848A (en) * 1978-03-09 1979-09-18 Fujitsu Ltd Sectioning and informing system for address information
JPH09128957A (ja) * 1995-10-13 1997-05-16 Gotai Handotai Kofun Yugenkoshi メモリーアクセスのインターフェイス回路及びメモリーアクセスの方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4137565A (en) * 1977-01-10 1979-01-30 Xerox Corporation Direct memory access module for a controller
US5170477A (en) * 1989-10-31 1992-12-08 Ibm Corporation Odd boundary address aligned direct memory acess device and method
US5488709A (en) * 1990-06-27 1996-01-30 Mos Electronics, Corp. Cache including decoupling register circuits
US5732241A (en) * 1990-06-27 1998-03-24 Mos Electronics, Corp. Random access cache memory controller and system
US5826057A (en) * 1992-01-16 1998-10-20 Kabushiki Kaisha Toshiba Method for managing virtual address space at improved space utilization efficiency
JP3329921B2 (ja) * 1993-12-27 2002-09-30 株式会社東芝 演算装置
US5570306A (en) * 1994-11-01 1996-10-29 Intel Corporation Method and apparatus for recognizing a bit pattern in a string of bits, altering the string of bits, and removing the alteration from the string of bits
US5767866A (en) * 1995-06-07 1998-06-16 Seiko Epson Corporation Computer system with efficient DRAM access
JP3201716B2 (ja) * 1996-02-22 2001-08-27 シャープ株式会社 コンピュータ装置
US5809327A (en) * 1997-03-27 1998-09-15 Atmel Corporation Eight-bit microcontroller having a risc architecture
SE520126C2 (sv) * 1997-12-11 2003-05-27 Axis Ab I/U-Processor och metod för styrning av periferienheter
FR2772948B1 (fr) * 1997-12-19 2000-03-10 Sgs Thomson Microelectronics Microcontroleur avec interface perfectionnee et procede d'utilisation
US6785798B2 (en) * 2001-08-10 2004-08-31 Macronix International Co., Ltd. Method and system for circular addressing with efficient memory usage
US20030067456A1 (en) * 2001-10-09 2003-04-10 Low Yun Shon Indirect interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54119848A (en) * 1978-03-09 1979-09-18 Fujitsu Ltd Sectioning and informing system for address information
JPH09128957A (ja) * 1995-10-13 1997-05-16 Gotai Handotai Kofun Yugenkoshi メモリーアクセスのインターフェイス回路及びメモリーアクセスの方法

Also Published As

Publication number Publication date
US20050044341A1 (en) 2005-02-24
US7506133B2 (en) 2009-03-17

Similar Documents

Publication Publication Date Title
US9501964B2 (en) Semiconductor device and data processing system selectively operating as one of a big endian or little endian system
US6122683A (en) Handshake minimizing serial-to-parallel interface with shift register coupled by parallel bus to address logic and control logic
US7555629B2 (en) Memory card providing hardware acceleration for read operations
JP5832901B2 (ja) シリアル不揮発性メモリに対する向上されたアドレス能力
US20220269513A1 (en) Serial NAND Flash With XIP Capability
US10733122B2 (en) System and method for direct memory access in a flash storage
TWI790456B (zh) 記憶體定址方法及相關聯的控制器
US20070079015A1 (en) Methods and arrangements to interface a data storage device
US7743184B2 (en) Coherent access register data transfer device and methods thereof
US9990311B2 (en) Peripheral interface circuit
US20060284876A1 (en) Method and apparatus for programming an input/output device over a serial bus
US7293153B2 (en) Method and system for direct access to a non-memory mapped device memory
JP2005071363A (ja) 比較的に小さなアドレス空間からメモリ空間に高速アドレスアクセス(address)するための方法及び装置
US8380914B1 (en) Extended address mode for serial flash memory
US5687395A (en) Main memory buffer for low cost / high performance input/output of data in a computer system
KR20120105150A (ko) 이미지 디스플레이 시스템 및 이미지 데이터 처리 방법
JP2005235199A (ja) Cpuとfifoとの間のバーストモードデータ転送のための方法及び装置
JP2004318877A (ja) 知的な待ち方法
US20090228612A1 (en) Flexible Bus Interface and Method for Operating the Same
TWI841113B (zh) 記憶體定址方法及相關聯的控制器
US11895043B2 (en) Method for accessing system memory and associated processing circuit within a network card
JP2000137674A (ja) バースト転送メモリマップトレジスタ
KR100338957B1 (ko) 논-버스트 모드 지원장치
KR20030049448A (ko) 메모리 버스 확장 장치 및 방법
JPH09237217A (ja) ローカルストレージのメモリ割付け方式と制御装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070403

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20110203