JP2007073052A - 集積回路から外部メモリへのアクセス - Google Patents
集積回路から外部メモリへのアクセス Download PDFInfo
- Publication number
- JP2007073052A JP2007073052A JP2006242218A JP2006242218A JP2007073052A JP 2007073052 A JP2007073052 A JP 2007073052A JP 2006242218 A JP2006242218 A JP 2006242218A JP 2006242218 A JP2006242218 A JP 2006242218A JP 2007073052 A JP2007073052 A JP 2007073052A
- Authority
- JP
- Japan
- Prior art keywords
- external
- transaction
- data
- memory
- external memory
- 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.)
- Abandoned
Links
- 230000015654 memory Effects 0.000 title claims abstract description 243
- 238000012546 transfer Methods 0.000 claims abstract description 138
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 17
- 230000003068 static effect Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 abstract description 3
- 238000010168 coupling process Methods 0.000 abstract description 3
- 238000005859 coupling reaction Methods 0.000 abstract description 3
- 230000000977 initiatory effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 230000001629 suppression Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
- Microcomputers (AREA)
- Memory System (AREA)
Abstract
【課題】集積回路から外部メモリにアクセスする際のボトルネックを解消する方法を提供する。
【解決手段】集積回路10はマスタ論理ユニットおよびスレーブ論理ユニットを結合する相互接続論理45と、外部メモリからのデータにアクセスするときに、相互接続論理45を介してアドレス転送を出すことによりトランザクションを開始する少なくとも1つのマスタ論理ユニットと、外部バス60を介して外部メモリ55に結合されて1つ以上のコマンドを外部バス60により外部メモリ55に出すことによりトランザクションを処理して1つ以上の外部データ転送を行うメモリ制御器35とを備え、コマンド毎に、メモリ制御器35は外部メモリ55の少なくとも1つの予め定められた抑制とトランザクションのフォーマット情報とに従って1つ以上の外部データ転送のための外部フォーマットを選択する。
【選択図】図1
【解決手段】集積回路10はマスタ論理ユニットおよびスレーブ論理ユニットを結合する相互接続論理45と、外部メモリからのデータにアクセスするときに、相互接続論理45を介してアドレス転送を出すことによりトランザクションを開始する少なくとも1つのマスタ論理ユニットと、外部バス60を介して外部メモリ55に結合されて1つ以上のコマンドを外部バス60により外部メモリ55に出すことによりトランザクションを処理して1つ以上の外部データ転送を行うメモリ制御器35とを備え、コマンド毎に、メモリ制御器35は外部メモリ55の少なくとも1つの予め定められた抑制とトランザクションのフォーマット情報とに従って1つ以上の外部データ転送のための外部フォーマットを選択する。
【選択図】図1
Description
本発明は集積回路から外部メモリにアクセスする方法に関するものである。
複数のマスタ論理ユニットおよびスレーブ論理ユニットを有する集積回路内で、マスタ論理ユニットとスレーブ論理ユニットとを結合する相互接続論理を設けてトランザクションを行うことは周知である。各トランザクションは、マスタ論理ユニットからスレーブ論理ユニットへのアドレス転送と、マスタ論理ユニットとスレーブ論理ユニットとの間の1つ以上のデータ転送とを含む。書込みトランザクションではこれらのデータ転送はマスタ論理ユニットからスレーブ論理ユニットに送られ、読取りトランザクションではこれらのデータ転送はスレーブ論理ユニットからマスタ論理ユニットに送られる。相互接続論理は、種々のマスタ論理ユニットおよびスレーブ論理ユニットを結合するための複数の接続経路を形成するバス・インフラストラクチャの形をとる。かかる集積回路の一例はいわゆるシステム・オン・チップ(SoC)である。
集積回路は、その集積回路のマスタ論理ユニットがアクセス可能なデータを記憶するための内部メモリを含んでよい。かかるメモリは比較的高価なので、集積回路のマスタ論理ユニットがアクセスするデータを記憶するための外部メモリを集積回路に結合することが多い。かかる場合は、外部バスを介して外部メモリとインターフェースするために集積回路内にメモリ制御器を設けるのが普通である。外部メモリは、例えば、スタティックRAM(ランダム・アクセス・メモリ)やNORフラッシュ・メモリなどのスタティック・メモリでよく、または、例えばSDRAMなどのダイナミック・メモリの形をとってよい。ダイナミック・メモリはスタティック・メモリに比べて少ないトランジスタを用いて各データ値を記憶するので、一般に密度が高くまたアクセス速度が高い。しかしダイナミック・メモリ内では漏れ電流が発生するので、中に記憶されたデータ値を保持するためにダイナミック・メモリを一般に定期的にリフレッシュする必要がある。
集積回路内で行われるトランザクションは種々の形をとってよい。トランザクションの正確な形はマスタ論理ユニットに依存する。例えば、プロセッサ・コアは多重データ転送のラップ・バースト(wrapped bursts)の形でトランザクションを指定してよい。各データ転送はしばしば「ビート(beat)」と呼ばれる。プロセッサ・コアはラップ・バーストを用いることが多い。なぜなら、これを用いると最も時間的に厳しいデータ値に最初にアクセスすることができるからである。別の例として、グラフィックス・エンジンは単一ビートを指定するトランザクションを出してよい。更に別の例として、表示制御器はインクリメント(incrementing)バースト・アクセスを指定するトランザクションを出してよい。なぜなら、かかるインクリメントバースト・アクセスの方がラップ・バースト・アクセスより優れた帯域幅特性を有するからである。
現在の外部メモリ装置は、スタティックでもダイナミックでも、固定の動作モードで(すなわち、固定バースト長および固定バースト・タイプで)動作するようにプログラムされる。この動作モードを変えるには、プロセッサは外部メモリ装置およびメモリ制御器を更新する必要があり、これは比較的遅いプロセスである。詳しく述べると、メモリ装置およびこれに関連するメモリ制御器は異なるマスタ論理ユニットからのアクセスの間にプログラムされることはできない。そのため、メモリ装置およびメモリ制御器は、システム内の総合性能を妥当なものにするために、一般に妥協した固定のバースト長およびバースト・タイプでプログラムされる。
一般的なシステムでは、トランザクションを処理する際のボトルネックはメモリ制御器と外部メモリとの間の外部バス接続で起こるのが普通である。システムの複雑さが増大するに従って、この外部バス接続のための帯域幅の要求が増大し、このためにこのボトルネックはますます顕著になる傾向にある。この処理のボトルネックを解消する1つの方法はメモリ制御器と外部メモリとの間のインターフェースの動作速度を高めることであるが、これではシステムの電力消費が増え、また設計が複雑になる。
したがって、集積回路から外部メモリにアクセスする効率を高める方法を提供することが望まれる。
したがって、集積回路から外部メモリにアクセスする効率を高める方法を提供することが望まれる。
第1の態様では、本発明が提供する集積回路は、相互接続論理であって、マスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを行うことを可能にし、各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送と、そのマスタ論理ユニットとそのスレーブ論理ユニットとの間の1つ以上のデータ転送とを含む、相互接続論理と、少なくとも1つのマスタ論理ユニットであって、外部メモリからのデータにアクセスしようとするときに、相互接続論理を介してアドレス転送を出すことによりトランザクションを開始し、このトランザクションは相互接続論理により転送するためのトランザクションの1つ以上のデータ転送をフォーマットするのに用いられる関連するフォーマット情報を有する、少なくとも1つのマスタ論理ユニットと、メモリ制御器であって、トランザクションのスレーブ論理ユニットとして動作し、外部バスを介して外部メモリに結合され、1つ以上のコマンドを外部バスにより外部メモリに出すことによりトランザクションを処理してメモリ制御器と外部メモリとの間に1つ以上の外部データ転送を行う、メモリ制御器とを備え、コマンド毎に、メモリ制御器は外部メモリの少なくとも1つの予め定められた抑制とトランザクションのフォーマット情報とに従って1つ以上の外部データ転送のための外部フォーマットを選択する。
本発明では、コマンド毎に、メモリ制御器は外部バスを介してデータ転送を行うための外部フォーマットを選択することが可能であり、かかる選択を行うときに、外部メモリの少なくとも1つの予め定められた制約とトランザクションのフォーマット情報とを考慮に入れる。集積回路の相互接続論理による1つ以上のデータ転送をフォーマットするのに用いられるトランザクションのフォーマット情報を考慮することにより、メモリ制御器は、外部メモリの少なくとも1つの予め定められた制約を考慮して、トランザクションを処理するときに必要な外部データ転送を効率的に行うことを可能にする外部フォーマットを選択することができる。或る場合には、これは集積回路の内部で相互接続論理により行われるデータ転送に用いられるフォーマットを外部フォーマットがそのまま用いてよいことを意味する。
本発明の利点を実現するために、外部メモリは種々の外部フォーマットの使用をサポートする必要があるが、かかるサポートが与えられると、本発明の実施の形態の方法により、外部バスの使用効率を大幅に向上させることができる。
トランザクションのフォーマット情報は種々の形をとってよい。しかし1つの実施の形態では、フォーマット情報は、相互接続論理により行われるデータ転送の数を識別するバースト長と、アクセスされるデータのアドレスが各データ転送の間でどのように変わるかを識別するバースト・タイプの少なくとも1つを含む。
トランザクションのフォーマット情報は種々の形をとってよい。しかし1つの実施の形態では、フォーマット情報は、相互接続論理により行われるデータ転送の数を識別するバースト長と、アクセスされるデータのアドレスが各データ転送の間でどのように変わるかを識別するバースト・タイプの少なくとも1つを含む。
1つの実施の形態では、フォーマット情報は、相互接続論理による各データ転送でのデータの量を示す相互接続データ・サイズを更に含む。この情報に基づいて、メモリ制御器はそのトランザクションにより転送されるデータの総量を識別するトランザクション・サイズを決定することができる。
トランザクションのフォーマット情報はトランザクション毎に変えることができる。ただし、或るマスタ論理ユニットは常に予め定められたフォーマット情報を有するトランザクションを出してよい。例えば、或るマスタ論理ユニットは常に単一データ転送(すなわち1のバースト長を有する)を指定するトランザクションを出してよい。1つの実施の形態では、フォーマット情報はアドレス転送内に含まれる。
トランザクションのフォーマット情報はトランザクション毎に変えることができる。ただし、或るマスタ論理ユニットは常に予め定められたフォーマット情報を有するトランザクションを出してよい。例えば、或るマスタ論理ユニットは常に単一データ転送(すなわち1のバースト長を有する)を指定するトランザクションを出してよい。1つの実施の形態では、フォーマット情報はアドレス転送内に含まれる。
更に、1つの実施の形態では、メモリ制御器により選択される外部フォーマットは外部バスにより外部メモリに出されるコマンド内で指定してよい。これには、コマンドに単に外部フォーマットを指定するための追加のビットを加えるだけでよく、または2つ以上のサイクルでコマンドを外部メモリに送って、コマンドを出すのに用いるインターフェースのピン数を増やさないようにしてよい。
外部メモリの少なくとも1つの予め定められた抑制は種々の形をとってよい。しかし1つの実施の形態では、この予め定められた抑制は最大外部メモリ・バースト長を含む。これは、外部バスにより外部メモリに出される或るコマンドにより決まるデータ転送の最大数を識別する。この最大バースト長は一般に、性能とゲート面積との妥協としてメモリから与えられ。しかし或る実施の形態では、外部メモリの最大バースト長抑制はメモリ制御器から与えてよい。例えば、或るスタティック・メモリは連続的なバースト長を有する。この場合、メモリ制御器は外部メモリに最大バースト長抑制を与える。
1つの実施の形態では、少なくとも1つの予め定められた抑制は、外部バスによる各データ転送でのデータの量を示す外部バス・データ・サイズを更に含む。この情報に基づいて、メモリ制御器は、メモリ制御器から外部メモリに出すデータ転送コマンドに応じて、外部バスにより転送することのできるデータの最大量を識別する最大外部メモリ・アクセス・サイズを決定することができる。
外部メモリの少なくとも1つの予め定められた抑制とトランザクションのフォーマット情報とに従って外部フォーマットを選択する方法は多数ある。1つの実施の形態では、メモリ制御器はトランザクションのフォーマット情報からトランザクション・サイズを決定しまた少なくとも1つの予め定められた抑制から最大外部メモリ・アクセス・サイズを決定して、このトランザクション・サイズが最大外部メモリ・サイズ以下の場合は、メモリ制御器はデータ転送コマンドを出し、またデータ転送コマンドにより指定される外部フォーマットとして、トランザクションにより指定されるデータにアクセスするための最小数の外部データ転送を用いるフォーマットを選択する。相互接続データ・サイズと外部バス・データ・サイズとが同じであると仮定すると、外部データ転送の数は、相互接続論理により行われるデータ転送の数を指定するトランザクションのバースト長と一般に一致する。しかし、相互接続データ・サイズと外部バス・データ・サイズとが異なる場合は、外部フォーマットにより指定される外部データ転送の数はトランザクションのフォーマット情報により指定される相互接続論理によるデータ転送の数とは異なる。1つの特定の例を考えると、外部バス・データ・サイズが相互接続データ・サイズの半分の場合は、メモリ制御器は外部フォーマットとして理想的には、相互接続論理で用いられるデータ転送の数の2倍の数の外部データ転送を用いるフォーマットを選択する。
1つの実施の形態では、トランザクション・サイズが最大外部メモリ・サイズより大きい場合は、メモリ制御器は1つのデータ転送コマンドを出して、このデータ転送コマンドにより指定される外部フォーマットとして最大外部メモリ・バースト長により決まる或る数の外部データ転送を用いるフォーマットを選択し、次にメモリ制御器は1つ以上の別のデータ転送コマンドを出して、トランザクションにより指定される残りのデータにアクセスする。このようにこの実施の形態では、最大外部メモリ・バースト長を用いて第1のデータ転送コマンドを介してトランザクションに関連するできるだけ多くのデータにアクセスし、次に1つ以上の別のデータ転送コマンドを用いて残りのデータにアクセスすることにより、外部バス資源を最も効率的に用いる。
1つの実施の形態では、トランザクション・サイズが最大外部メモリ・サイズより大きく、かつトランザクションのフォーマット情報がラップ・バースト・タイプを指定する場合は、メモリ制御器は1つのデータ転送コマンドを出して、このデータ転送コマンドにより指定される外部フォーマットとしてインクリメントバースト・タイプと最大外部メモリ・バースト長以下の或る数の外部データ転送とを用いるフォーマットを選択し、次にメモリ制御器は1つ以上の別のデータ転送コマンドを出して、トランザクションにより指定される残りのデータにアクセスする。
トランザクション・サイズが最大外部メモリ・サイズより大きく、かつトランザクションがラップ・バースト・タイプを指定する場合は、ラップ・バーストを外部メモリ・バス上にそのまま出すことはできない。代わりに、メモリ制御器が出す第1のデータ転送コマンドはインクリメントバースト・タイプを用いて、トランザクションにより指定されるできるだけ多くの、しかし最大外部メモリ・バースト長を超えないデータにアクセスすることを試みる。したがって、例えばトランザクションが8のバースト長を有するラップ・バーストを指定し、0から7のデータ値の中のデータ値6に最初にアクセスし、そして最大外部メモリ・バースト長が4の場合は、第1のデータ転送コマンドはインクリメントバースト・タイプでかつ2のバースト長を指定して、データ値6および7にアクセスする。トランザクションにより指定される残りのデータは続く2つのデータ転送コマンドによりアクセスされる。
外部メモリは種々の形をとってよい。1つの実施の形態では、外部メモリは多数のメモリのバンクから成るダイナミック・メモリである。より詳しく述べると、1つの実施の形態では、ダイナミック・メモリは複数のチップから成り、各チップは複数のバンクを有する。別の実施の形態では、外部メモリはスタティック・メモリである。
第2の態様では、本発明は集積回路を操作して外部メモリにアクセスする方法を提供する。この集積回路はマスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを行うことを可能にする相互接続論理を有し、各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送と、そのマスタ論理ユニットとそのスレーブ論理ユニットとの間の1つ以上のデータ転送とを含み、この方法は、マスタ論理ユニットが外部メモリからのデータにアクセスをしようとするときに相互接続論理を介してアドレス転送を出すことによりトランザクションを開始し、このトランザクションは相互接続論理により転送するためのトランザクションの1つ以上のデータ転送をフォーマットするのに用いられる関連するフォーマット情報を有するステップと、メモリ制御器をトランザクションのスレーブ論理ユニットとして動作させ、このメモリ制御器は外部バスを介して外部メモリに結合され、1つ以上のコマンドを外部バスにより外部メモリに出すことによりトランザクションを処理してメモリ制御器と外部メモリとの間に1つ以上の外部データ転送を行うステップと、コマンド毎に、メモリ制御器は外部メモリの少なくとも1つの予め定められた制約とトランザクションのフォーマット情報とに従って1つ以上の外部データ転送のための外部フォーマットを選択するステップとを含む。
図1は本発明の1つの実施の形態に係るシステムのブロック図である。詳しく述べると、この図はSoC10の形の集積回路で、SoC10は相互接続論理45を介して接続される多数のマスタ装置および多数のスレーブ装置を含む。詳しく述べると、プロセッサ・コア15、グラフィックス・エンジン20、表示制御器30の3つのマスタ装置が図に示されている。同様に、内部メモリ25、メモリ制御器35、1つ以上の他のスレーブ装置40(例えば、スマート・カード・インターフェース(SCI)、ユニバーサル非同期受信機/送信機(UART)装置など)の3つのスレーブ装置が図に示されている。
相互接続論理45は種々のマスタ論理ユニットおよびスレーブ論理ユニットを結合するための複数の接続経路を形成する。かかる接続経路を介してトランザクションの種々の転送の経路を選択する方法は相互接続論理内で用いられるバス・プロトコルに依存する。1つの周知のバス・プロトコルのタイプはノンスプリット・トランザクション・プロトコルで、例えば、英国キャンブリッジのARM(登録商標)社により開発されたAHBバス・プロトコルに従って設計されたAHBバスを有するシステム内に用いられている。かかるノンスプリット・トランザクション・プロトコルでは、トランザクションのアドレス転送とそのトランザクションのその後の1つ以上のデータ転送との間に固定されたタイミング関係がある。
多数のマスタ論理ユニットおよびスレーブ論理ユニットの相互接続をサポートする必要のために相互接続論理が非常に複雑になったので、スプリット・トランザクション・プロトコルと呼ばれる別のタイプのバス・プロトコルが開発された。かかるスプリット・トランザクション・プロトコルでは、相互接続論理内の複数の接続経路はアドレス転送を行うための少なくとも1つのアドレス・チャンネルとデータ転送を行うための少なくとも1つのデータ・チャンネルとを形成する。かかるスプリット・トランザクション・プロトコルの一例は、英国キャンブリッジのARM社により開発されたAXI(Advanced eXtensible Interface)プロトコルである。AXIプロトコルは情報およびデータを転送するための多数のチャンネルを形成し、これらのチャンネルは読取りトランザクションのアドレス転送を行うためのアドレス読取りチャンネルと、書込みトランザクションのアドレス転送を行うためのアドレス書込みチャンネルと、書込みトランザクションのデータ転送を行うためのデータ書込みチャンネルと、読取りトランザクションのデータ転送を行うためのデータ読取りチャンネルと、書込みトランザクションの終わりにトランザクション状態情報をマスタ論理ユニットに返すための応答書込みチャンネルとを形成する。かかるトランザクション状態情報は、例えばトランザクションが首尾よく完了したか、エラーが発生したか、などを示す。
本発明の目的では相互接続論理45は種々の形をとってよいので、例えば上に述べたAHBバス・インフラストラクチャまたはAXIバス・インフラストラクチャを用いてよいが、以下の説明の目的では、相互接続論理45はAXIバス・インフラストラクチャを用いる仮定する。
図1に示すように、表示制御器30は情報をユーザに表示するための外部表示装置50に接続される。更に、メモリ制御器35は外部バス60を介して外部メモリ55に接続される。外部バス60は種々の形をとってよいが、1つの実施の形態ではメモリ制御器35と外部メモリ55とを接続する簡単な点対点バスであり、メモリ制御器35から外部メモリ55にコマンドを送るための制御チャンネルと、メモリ制御器35と外部メモリ55との間のデータの通信のための双方向データ・チャンネルとを形成すると考えてよい。
データ処理操作を行うとき、一般にプロセッサ・コア15はメモリ内に記憶されているデータにアクセスする必要がある。このデータは局所的にコア内のキャッシュに入れてよいが、キャッシュ・ミスの場合は、コアはメモリからのデータに直接アクセスする必要がある。このデータは内部メモリ25内または外部メモリ55内に常駐してよい。しかし、内部メモリ25のデータへのアクセスは相対的に速いが外部メモリ55に比べて相対的に高価なので、必要なデータのかなりの部分は外部メモリ内に記憶される。外部メモリからのデータにアクセスするとき、プロセッサ・コア15は相互接続論理45を介してメモリ制御器35にアドレス転送を出すことによりトランザクションを開始する。これによりメモリ制御器35は外部バス60により外部メモリ55に1つ以上のコマンドを出して、外部メモリ内の必要なデータにアクセスする。
グラフィック・エンジン20はメモリ内に記憶されているデータへの或る特定のグラフィックス操作を行う。そのためには、トランザクションを開始して、メモリ制御器35を介して外部メモリ55からデータを検索する必要がある。一般に、グラフィックス・エンジンにより作られる処理されたデータはメモリに書き戻される。
表示制御器30は表示装置50に出力するためのデータをメモリから検索するので、トランザクションをメモリに発行して表示に必要なデータを検索する。やはりこのデータも少なくとも部分的に外部メモリ55内に常駐してよいので、表示制御器30によりトランザクションを開始して、メモリ制御器35を介して必要なデータを検索する必要がある。
表示制御器30は表示装置50に出力するためのデータをメモリから検索するので、トランザクションをメモリに発行して表示に必要なデータを検索する。やはりこのデータも少なくとも部分的に外部メモリ55内に常駐してよいので、表示制御器30によりトランザクションを開始して、メモリ制御器35を介して必要なデータを検索する必要がある。
種々のマスタ論理ユニットから出されるトランザクションの形はトランザクション毎に変わってよい。しかし、プロセッサ・コアは一般に重要なデータ値が最初に得られるようにするためにラップ・バーストを指定するトランザクションを用いてよい。対照的に、表示制御器はデータにアクセスしようとするときにインクリメントバーストを用いる傾向がある。なぜなら、インクリメントバーストは一般にラップ・バーストに比べて帯域幅性能がよいからである。他方、グラフィックス・エンジンは一般に単一ビート(すなわち、単一データ転送)を指定するトランザクションを用いてメモリにアクセスする。
一般的な周知のシステムでは、外部メモリ55は固定の動作モードで(すなわち、固定のバースト長と固定のバースト・タイプで)動作するようプログラムされる。この動作モードはプロセッサを用いてメモリ制御器から外部メモリ装置をプログラムすることにより変えることはできるが、このプロセスは速くないので、一般に全てのトランザクションを処理するとき、メモリ制御器35および外部メモリ55は妥協した固定のバースト長およびタイプを用いるようプログラムされる。しかし後で詳細に説明するが、本発明の実施の形態により、メモリ制御器は外部バスにより出されるデータ転送コマンド毎に、集積回路10内の相互接続論理45によりマスタ装置とメモリ制御器35との間に行われるトランザクションのフォーマットを考慮に入れた外部フォーマットを選択することができる。これにより外部バス60を一層効率的に使用することができる。
外部メモリ55はダイナミック・メモリまたはスタティック・メモリの形をとってよい。ダイナミック・メモリは一般に多数のチップから成り、各チップは複数のバンクを有する。ダイナミック装置は一般にアクティベート・コマンドを出して或るバンク内の行を開くことによりアクセスされ、次にストローブ信号「列アドレス・ストローブ(CAS)」によって限定された単一サイクルでアドレスをメモリに送ることにより、その行の中の必要なデータがアクセスされる。一般に、各バンク内では一度に1行だけ開かれるので、別の行を開く前に現在の行を閉じる必要がある。これはプレチャージ・コマンドを用いて行う。ダイナミック装置とは対照的に、スタティック・メモリ装置はアクティベートおよびプレチャージ・コマンドを用いて行を開閉する必要はなく、代わりに、一般に或るバースト・アクセスのための単一のアドレス値、または場合によってはバーストのビート当たり単一のアドレス値を出すことによりアクセスされる。
どのタイプのメモリ装置でも、認識されるように、メモリ制御器35から外部メモリ55にデータ転送コマンドを出すと(ダイナミック・メモリの場合はこのデータ転送コマンドはCAS信号によって限定されたアドレスを送るが、スタティック・メモリではこのデータ転送コマンドは関連するストローブ信号のないアドレスを出す)、外部バスにより1つ以上の外部データ転送が行われ、必要なデータがメモリ制御器35から外部メモリ55に転送され(書込み操作の場合)、または外部メモリ55からメモリ制御器35に転送される(読取り操作の場合)。本発明の実施の形態の方法はダイナミック・メモリにもスタティック・メモリにも同様に適用できる。しかし以下の図面を参照して説明する実施の形態の目的では、外部メモリ55はダイナミック・メモリと仮定する。
図2は、本発明の1つの実施の形態に係る図1のメモリ制御器35内の要素をより詳細に示すブロック図である。前に説明したように、本発明の1つの実施の形態の相互接続論理45は別個のアドレス・チャンネルとデータ書込みチャンネルとデータ読取りチャンネルとを形成し、図2の点線で示すように、メモリ制御器35はこれらの異なるチャンネルに対応する3つの論理経路を形成すると考えてよい。相互接続論理45のアドレス書込みチャンネルおよびアドレス読取りチャンネルに関連して与えられる論理を考慮して、マスタ論理ユニットから相互接続論理45を介してメモリ制御器35に出される各アドレス転送を受信するためのインターフェース100が設けられる。このアドレス転送の実際のフォーマットは実施の形態に依存して変わってよいが、インターフェース100が受けるアドレス転送の一例を図3Aに略図で示す。
このアドレス転送225は多数のフィールドを含み、図3Aに示すように、トランザクションのタイプ(例えば、読取りトランザクションか書込みトランザクションか)を識別するトランザクション・タイプ・フィールド200と、アクセスされる最初のデータ値のアドレスを識別する開始アドレス・フィールド205と、相互接続論理45を介した各データ転送に含まれるデータの量(例えば、語、半語、バイトなど)を識別するサイズ・フィールド210と、トランザクションを形成するビート(すなわちデータ転送)の数を識別するバースト長フィールド215と、バーストのタイプ(例えば、ラップ・バーストかインクリメントバーストか)を識別するバースト・タイプ・フィールド220とを含む。例えば、バースト長フィールド215内に指定されるバースト長が4で、かつバースト・タイプが「ラップ」の場合は、アドレスは最下位2ビットの位置を循環する。したがって、開始アドレス・フィールド205内の開始アドレスがデータ値1を識別する場合は、4バーストはデータ値1,2,3,0をそれぞれ検索する(データ値3の後、「11」という最下位ビットはアドレスの上位ビットのどれもインクリメントせずに値「00」にラップされる)。対照的に、同じ転送においてバースト・タイプがインクリメントタイプと指定された場合は、データ値1,2,3,4がアクセスされるはずである。
次にこのアドレス転送はインターフェース100からマッピング論理105に送られ、図3Bに示すフォーマットに変換された後、キュー110内に置かれる。図3Bに示すように、アドレス転送フォーマット255はトランザクション・タイプ・フィールド230を有する。1つの実施の形態では、これはアドレス・チャンネルにより受信したアドレス転送フォーマット225のトランザクション・タイプ・フィールド200と同じでよい。同様にアドレス転送フォーマット255はサイズ・フィールド240およびバースト・タイプ・フィールド250を含む。1つの実施の形態では、これは元のアドレス転送フォーマット225の同等のサイズ・フィールド210およびバースト・タイプ・フィールド220そのままと考えてよい。またアドレス転送フォーマット255はバースト長残りフィールド245を含む。これは最初は元のフォーマット225のバースト長フィールド215内に含まれる情報と同じものを含むが、後で説明する調停およびフォーマット論理115によりやがて変更される。1つの実施の形態では、バースト長残りフィールド245はバーストの数を記憶してよいが、別の実施の形態では転送残りのバイトの数(実際にはバースト長およびサイズ情報を結合したもの)を実際に記憶してよい。マッピング論理105が行う主なタスクは開始アドレスをダイナミック・メモリのバンクおよびチップ内の或る行および列にマップすることで、その結果、チップ選択値と、バンク指示と、行指示と、列指示とを与える復号アドレス・フィールド235が得られる。
調停およびフォーマット論理115はキュー110内に置かれたアドレス転送を処理する。しかしキュー110をFIFO(先入れ先出し)バッファとして単に操作するのではなく、調停およびフォーマット論理115は一般にメモリを最も効率的に使用するために或る調停を行う。詳しく述べると、前に述べたように、ダイナミック・メモリにアクセスするとき、或る行を開いた後でなければその行内の列にアクセスすることはできない。したがって、調停およびフォーマット論理115が行ってよい調停の1つの形は、或るバンク内にすでに開かれている行と同じ行に対して行われるアドレス転送を識別する項目がキュー110内にあるかどうか判定することである。なぜなら、その行を閉じて別の行を開く前にこれらの転送を先に処理する方が一般に効率がよいからである。更に、認識されるように、例えば他の適当な調停方式を用いて、特定のマスタ装置が出すトランザクションに優先権を与えるようにしてよい。この後者の点に関して、一般に各転送はその転送が関連するマスタ装置を識別する関連のIDを有しており、優先順位決定プロセスにこのID情報を用いてよい。
或る項目が調停およびフォーマット論理115によりキューから選択されると、その論理はインターフェース120に出す1つ以上のコマンドを生成する。かかるコマンドのフォーマットを図3Cに略図で示す。図3Cに示すように、コマンド・フォーマット290は、例えばアクティベート、プレチャージ、データ転送(読取りまたは書込み)などのコマンドのタイプを識別するコマンド・フィールド260を含む。アドレス・フィールド265はこのコマンドに関するアドレス情報を識別する。アクティベート・コマンドでは一般にこのアドレス情報は開かれる行を識別するが、プレチャージ・コマンドではこのアドレス情報は冗長である。なぜなら、プレチャージ・コマンドによりアクセスされる特定のバンクはどの行が開かれているかを知っていて、プレチャージ・コマンドをどのように適用するかを決定することができるからである。データ転送コマンドでは、このアドレス・フィールド265は、関係するバンクの開かれた行の中でアクセスされる列を識別する列識別子を含む。チップ選択フィールド270およびバンク・フィールド275はアクセスされるダイナミック・メモリの特定のチップおよびバンクを識別する。サイズ・フィールド280は外部バス60により転送されるデータの量を識別する。
更に、コマンド・フォーマット290はコマンド遅延およびタイプ・フィールド285を含む。これは、次のコマンドを出す前に何サイクル経過しなければならないかを決定するのにインターフェース120が用いることのできる情報を含む。データ転送コマンドでは、これは外部バスで行われる外部データ転送をフォーマットするための、外部バス60の制御バスにより出力されるバースト長およびバースト・タイプ情報を含む。
インターフェース120はコマンド・フォーマット290内に与えられる情報を用いて該当する信号をインターフェース・ピンから外部バス60の制御バス上に出力し、これにより外部メモリ55は必要なステップ(例えば、行を開く、行を閉じる、データにアクセスするなど)を行う。制御バスに送られる情報がバースト長およびバースト・タイプ情報を含む場合は、このインターフェースに更にピンが必要になる。または、ピンの数が増えるのを避けるために、1サイクルより多くのサイクルでコマンドを出力する。
次に、相互接続論理45のデータ書込みチャンネルおよびデータ読取りチャンネルに対応するメモリ制御器35内の経路を考えると、図から分かるように、メモリ制御器35はデータ書込みチャンネルで受けるデータ書込みのためのデータ書込みFIFO130を備え、また外部バス60のデータ・チャンネルから受けて相互接続論理45のデータ読取りチャンネルに送るデータのためのデータ読取りFIFO140を備える。外部バスのデータ・チャンネルは一般に双方向バスなので論理要素150が設けられ、これはメモリ制御器35から(一般にインターフェース論理120により)出力される信号により制御されて、データ書込みFIFO130内のデータ書込みを外部バス60のデータ・チャンネルに出力するか、または外部バスにより受けたデータをデータ読取りFIFO140に送るかを制御する。
図4は、データ転送コマンドを生成するときに図2の調停およびフォーマット論理115が行うステップの詳細を示す流れ図である。ステップ300で、キュー110上に未処理の項目が存在するかどうか判定し、存在する場合は、ステップ305で調停を行ってキューから項目の1つを選択する。次にステップ310で、トランザクション・サイズが最大外部メモリ・アクセス・サイズ以下かどうか判定する。トランザクション・サイズは、アドレス転送フォーマット255のフィールド245内のバースト長残り情報にフィールド240内のサイズ情報を掛けることにより得られる。最大外部メモリ・アクセス・サイズは、最大外部メモリ・バースト長および外部バス60のバス幅(ここでは外部バスデータ・サイズとも呼ぶ)の知識に基づいて決定される。これは外部メモリの予め定められた制約である。
トランザクション・サイズが最大外部メモリ・アクセス・サイズ以下の場合は、プロセスはステップ315に分岐し、調停およびフォーマット論理115は必要なデータを転送するのに最小数の外部データ転送を用いるように最適化される外部フォーマットを選択することができる。詳しく述べると、この場合は、調停およびフォーマット論理115は最適化されたバースト長を指定しまた集積回路内の相互接続論理で行われるトランザクションにより指定されるものと同じバースト・タイプをそのまま保つコマンドを出す。したがって、例えば、相互接続論理による各データ転送のサイズが外部バス幅と同じ場合は、また相互接続論理によるトランザクションが4バーストのラップ・トランザクションである場合は、調停およびフォーマット論理115から出されるコマンドはコマンド290のコマンド遅延およびタイプ・フィールド285内に4のバースト長とラップというバースト・タイプを指定してよい。別の例として、相互接続論理による内部データ転送サイズが外部バス幅のサイズの2倍である場合は、やはり(トランザクション・サイズが最大外部メモリ・アクセス・サイズ以下であると仮定して)バースト長およびバースト・タイプは内部トランザクション・フォーマットから外部フォーマットにマップすることができるが、この場合は、外部フォーマットのバースト長は内部トランザクション・フォーマットのバースト長の2倍である必要がある。
ステップ315でコマンドが出されると、ステップ320でキュー110内の関連するキュー項目を削除し、次にプロセスはステップ300に戻る。
ステップ315でコマンドが出されると、ステップ320でキュー110内の関連するキュー項目を削除し、次にプロセスはステップ300に戻る。
トランザクション・サイズが最大外部メモリ・アクセス・サイズより大きい場合は、単一のデータ転送コマンドを用いてトランザクションを処理することはできない。この場合はプロセスはステップ325に進み、相互接続論理により行われるトランザクションで指定されるバースト・タイプがラップ・バースト・タイプかどうか判定する。バースト・タイプでない場合はプロセスはステップ330に進み、調停およびフォーマット論理115は外部メモリにより許される最大バースト長を指定しかつトランザクションのバースト・タイプをそのまま保つコマンドを出す。やはりこのバースト長およびバースト・タイプ情報はコマンド遅延およびタイプ・フィールド285内に含まれる。次にステップ345で、関係するキュー項目内のアドレス転送255のバースト長残りフィールド245および復号アドレス・フィールド235を、出されたコマンドに従って変更する。これは一般に、復号アドレス・フィールド235内の列識別子を変更しかつステップ330で出されたコマンドによりアクセスされるデータの量に従ってバースト長残りを減分することを含む。次に、プロセスはステップ300に戻る。この時点でステップ300に戻ることにより、ステップ305で行われる調停を各データ転送コマンドの間に行うことができるので、次に出されるコマンドは必ずしも同じトランザクションに関係しない。
ステップ325でバースト・タイプがラップ・バースト・タイプと判定された場合は、プロセスはステップ335に進む。トランザクション・サイズが最大外部メモリ・アクセス・サイズを超えるので、外部バス上にラップ・バースト・タイプをそのまま出すことはできない。この場合はステップ335で、関係するキュー項目を変更してバースト・タイプをインクリメントバースト・タイプに変える。次にステップ340で、調停およびフォーマット論理115は、外部メモリにより許される最大バースト長以下のバースト長を指定しかつインクリメントバースト・タイプを指定するコマンドを出す。やはり、この情報はコマンド遅延およびタイプ・フィールド285内に含まれる。理想的には、ステップ340でコマンドは最大バースト長に等しいバースト長を指定したいが、これは必ずしも可能ではない。例えば、マスタから出された最初のトランザクションが8のバースト長を有するラップ・トランザクションでありかつ6というデータ値で開始する(開始アドレス・フィールド205内の開始アドレスで示される)場合は、必要なデータ値の実際のシーケンスは6,7,0,1,2,3,4,5である。外部メモリの最大バースト長が2より大きい場合でも、ステップ340で出されるコマンドは、最初は2のバースト長を指定しなければならない。なぜなら、この最初のアクセスではデータ値6および7にだけアクセスできるからである。
ステップ340の後、プロセスはステップ345に進み、関係するキュー項目内のバースト長残り245および復号アドレス・フィールド235はこの出されたコマンドに従って変更される。次にプロセスはステップ300に戻る。
ステップ340の後、プロセスはステップ345に進み、関係するキュー項目内のバースト長残り245および復号アドレス・フィールド235はこの出されたコマンドに従って変更される。次にプロセスはステップ300に戻る。
図5は、或る例示のトランザクションを示すタイミング図であって、そのトランザクションのために外部メモリにアクセスするときに、周知の方法による場合と本発明の1つの実施の形態の方法による場合とを対比する。詳しく述べると、この例では、1ビートの書込みトランザクションに続いて、別個のチップへの4ビートの読取りトランザクションを行うと仮定する。信号線425はクロック信号を示し、信号線400,405,410は、外部メモリ装置が固定の動作モードであって4の固定バースト長で動作するときに、外部メモリへのアクセスを周知の方法により行う場合を示す。第1のコマンド書込みが信号線400に出され、次のサイクルで、第1のデータ書込み値が信号線405により外部メモリに与えられる。更に、データ・マスク線410が設けられ、これをローにセットするとデータ線405上のデータが外部メモリ55により読み取られる。
書込みトランザクションは、別の書込みトランザクションを出すことにより、またはプレチャージ操作を行って行を閉じることにより中断される。しかしこの例では、次のトランザクションは別の書込みトランザクションではない。また一般にプレチャージ操作をすぐ行うことは適当ではないと考えられる。なぜなら、これにより行が閉じられ、行を開いておくことにより達成されるはずの可能な性能の向上が妨げられるからである。この場合は、外部バス上で4の固定バースト長が動作するので、次のコマンド読取りは4サイクル遅れる。このように、第1のデータ書込み値の後に有用なデータ書込みが転送されなくても、外部メモリはやはりこの書込みアクセスを4のバースト長を有する書込みアクセスとして扱うので、4サイクル経過するまではコマンド読取りの処理を開始することはできない。図5に示すように、チップ1を指定する次のコマンド読取りが出されると、まもなく4ビートのデータ読取りが続く。
本発明の実施の形態では、外部バースト長は調停およびフォーマット論理115により選択することができる。詳しく述べると、書込みトランザクションでは、図4のステップ310でトランザクション・サイズが最大外部メモリ・アクセス・サイズより小さいと判定された場合は、ステップ315で1という最適化されたバースト長を指定するコマンドが線415上に出される。次のサイクルでデータ書込みが線420上に出力されるが、前に1のバースト長が指定されているので、すぐその次のサイクルで次のコマンド読取りが線415上に出さる。その結果、外部バースト長が固定された周知の方法による場合よりはるかに早く、4ビートのデータ読取りがデータ線420上に現れる(図5の線420と線405とを比較するとすぐ分かる)。
図6は、やはり周知の方法が4の固定外部バースト長を用いるトランザクションで、この場合はトランザクションが6ビートの書込みトランザクションの後に別個のチップへの4ビートの読取りトランザクションを行うという別の例を示す。周知の方法では、第1のコマンド書込みが線505上に出されて4ビートのデータ書込みが転送され、次に第2のコマンド書込みが出されて残りの2ビートが出される。しかし、第1のコマンド書込みの場合と同様に第2のコマンド書込みでは4の固定バースト長が用いられるので、第2のコマンド書込みが出された後4サイクル経過するまではチップ1への次のコマンド読取りを行うことができない。図6の上半分に示すように、データ・マスク信号515が用いられ、これをローにセットすると第1の6つのデータ書込み値が線510上に出力され、次にハイにセットすると第2のコマンド書込みの残りの2サイクルをマスクする。
図6の下半分に示すように、本発明の実施の形態に係る方法を用いると、第1のコマンド書込みが線520上に出されて4の最大外部バースト長を指定し、次に第2のコマンド書込みが出されて2のバースト長を指定する。図4を参照すると、ステップ345から認識されるように、第1のコマンド書込みを出した後で、キュー項目内のバースト長残りおよび復号アドレス・フィールドは変更され、第2のコマンド書込みを出そうとするときに、フォーマット論理115はステップ310で現在トランザクション・サイズが最大外部メモリ・アクセス・サイズより小さいと判定するので、ステップ315で第2のコマンド書込みとして2のバースト長を指定するコマンドを出してよい。第2のコマンド書込みは2のバースト長を指定するので、周知の方法を用いる場合に比べて次のコマンド読取りを線520上に早く出すことができる。またこの例は、同じキュー項目(すなわち、同じトランザクション)に関する異なるデータ転送を処理するのに異なるバースト長コマンドを用いることを示す。
図7は第3の例を示す。これはやはり周知の方法で4の固定外部バースト長を用い、この場合のトランザクションはラップ・バースト・タイプを有する4バーストの読取りトランザクションである。またこの例では、相互接続論理による各データ転送のサイズは外部メモリ・バス幅のサイズに等しいと仮定する。周知の方法では、外部メモリは固定のインクリメントバースト・タイプを用いてもよいので、外部バス上で2つの別個のインクリメントデータ転送コマンドとしてトランザクションを処理しなければならない。線605上の第1のコマンド読取りにより3というデータ値が読み取られる。或るコマンド読取りを別のコマンド読取りにより中断することができるので、この場合は第2のコマンド読取りを出す前に4サイクル待つ必要はなく、第1のコマンド読取りの1サイクル後に第2のコマンド読取りを出すことができる。第2のコマンド読取りはやはり4のバースト長を有するので、データ値0,1,2,3が読み取られる。しかし、2回目に出るデータ値3はメモリ制御器により無視される(図7の線610上の点線で示すように)。
しかし本発明の実施の形態の方法では、図4のステップ310でトランザクション・サイズが最大外部メモリ・アクセス・サイズに等しいと判定されるので、プロセスはやはりステップ315に進み、外部バス上でバースト・タイプをラップ・バースト・タイプに変更することができるので、4のバースト長とラップというバースト・タイプを指定する単一コマンドを線615上に出すことができる。これにより必要なデータが線620上に出力される。周知の方法は第1のコマンド読取りを第2のコマンド読取りで中断する機能があるので、この例では周知の方法に比べて性能は向上しないが節電にはなる。なぜなら、メモリ制御器35を介して外部メモリ55に単一のコマンド読取りを出すだけでよいからである。
本発明の実施の形態のこれまでの説明から認識されるように、かかる実施の形態により、相互接続論理で行われるトランザクションのフォーマットと外部メモリの少なくとも1つの予め定められた制約とに従って、メモリ制御器は1つ以上の外部データ転送の外部フォーマットを選択することができる。これは外部バス60の利用可能な資源を用いるための特に効率的な方法を提供する。
ここでは特定の実施の形態について説明したが、認識されるように、本発明はこれに限定されるものではなく、また本発明の範囲内で多くの変更や追加を行うことができる。例えば、本発明の範囲から逸れることなく、特許請求の範囲内の従属クレームの機能と独立クレームの機能とを種々に組み合わせることができる。
本発明について、例示に過ぎないが、添付の図面に示す実施の形態を参照して説明する。
本発明の1つの実施の形態に係るシステムのブロック図である。
図1のメモリ制御器の詳細を示すブロック図である。
図2に示すメモリ制御器が受けるアドレス転送のフォーマットを示す。
図2に示すメモリ制御器内でキューに送られるアドレス転送のフォーマットを示す。
図2に示すメモリ制御器内で調停およびフォーマット論理から出力されるコマンドのフォーマットを示す。
図2の調停およびフォーマット論理が行うプロセスを示す流れ図である。
トランザクションの一例であって、かかるトランザクションのために外部メモリにアクセスする方法を、周知の方法によるものと本発明の1つの実施の形態の方法によるものとを比較したタイミング図である。
トランザクションの別の例であって、かかるトランザクションのために外部メモリにアクセスする方法を、周知の方法によるものと本発明の1つの実施の形態の方法によるものとを比較したタイミング図である。
トランザクションの別の例であって、かかるトランザクションのために外部メモリにアクセスする方法を、周知の方法によるものと本発明の1つの実施の形態の方法によるものとを比較したタイミング図である。
10 集積回路
35 メモリ制御器
45 相互接続論理
55 外部メモリ
60 外部バス
35 メモリ制御器
45 相互接続論理
55 外部メモリ
60 外部バス
Claims (12)
- 集積回路であって、
相互接続論理であって、マスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを行うことを可能にし、各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送と、そのマスタ論理ユニットとそのスレーブ論理ユニットとの間の1つ以上のデータ転送とを含む、相互接続論理と、
少なくとも1つのマスタ論理ユニットであって、外部メモリからのデータにアクセスしようとするときに前記相互接続論理を介してアドレス転送を出すことによりトランザクションを開始し、前記トランザクションは前記相互接続論理により転送するためのトランザクションの1つ以上のデータ転送をフォーマットするのに用いられる関連するフォーマット情報を有する、少なくとも1つのマスタ論理ユニットと、
メモリ制御器であって、前記トランザクションのスレーブ論理ユニットとして動作し、外部バスを介して前記外部メモリに結合され、1つ以上のコマンドを前記外部バスにより前記外部メモリに出すことにより前記トランザクションを処理して前記メモリ制御器と前記外部メモリとの間に1つ以上の外部データ転送を行う、メモリ制御器と、
を備え、
コマンド毎に、前記メモリ制御器は前記外部メモリの少なくとも1つの予め定められた抑制と前記トランザクションのフォーマット情報とに従って1つ以上の外部データ転送のための外部フォーマットを選択する、
集積回路。 - 前記フォーマット情報は、前記相互接続論理により行われるデータ転送の数を識別するバースト長と、アクセスされる前記データのアドレスが各データ転送の間でどのように変わるかを識別するバースト・タイプとの少なくとも1つを含む、請求項1記載の集積回路。
- 前記フォーマット情報は前記相互接続論理による各データ転送内のデータの量を示す相互接続データ・サイズを更に含む、請求項2記載の集積回路。
- 前記フォーマット情報は前記アドレス転送内に含まれる、請求項1記載の集積回路。
- 前記外部メモリの前記少なくとも1つの予め定められた制約は最大外部メモリ・バースト長を含む、請求項1記載の集積回路。
- 前記少なくとも1つの予め定められた制約は前記外部バスによる各データ転送内のデータの量を示す外部バス・データ・サイズを更に含む、請求項5記載の集積回路。
- 前記メモリ制御器は前記トランザクションのフォーマット情報から前記トランザクションにより転送されるデータの総量を識別するトランザクション・サイズを決定し、また少なくとも1つの予め定められた抑制から、前記メモリ制御器から前記外部メモリに出されるデータ転送コマンドに応じて前記外部バスにより転送することのできるデータの最大量を識別する最大外部メモリ・アクセス・サイズを決定し、
前記トランザクション・サイズが前記最大外部メモリ・サイズ以下の場合は、前記メモリ制御器はデータ転送コマンドを出し、また前記データ転送コマンドにより指定される前記外部フォーマットとして、前記トランザクションにより指定されるデータにアクセスするために最小数の外部データ転送を用いるフォーマットを選択する、
請求項1記載の集積回路。 - 前記外部メモリの少なくとも1つの予め定められた制約は最大メモリ・バースト長を含み、また前記トランザクション・サイズが前記最大外部メモリ・サイズより大きい場合は、前記メモリ制御器は1つのデータ転送コマンドを出して、前記データ転送コマンドにより指定される外部フォーマットとして、前記最大外部メモリ・バースト長により決まる或る数の外部データ転送を用いるフォーマットを選択し、次に前記メモリ制御器は1つ以上の別のデータ転送コマンドを出して前記トランザクションにより指定される残りのデータにアクセスする、請求項7記載の集積回路。
- 前記外部メモリの少なくとも1つの予め定められた制約は最大外部メモリ・バースト長を含み、また前記トランザクション・サイズが前記最大外部メモリ・サイズより大きく、かつ前記トランザクションのフォーマット情報がラップ・バースト・タイプを指定する場合は、前記メモリ制御器は1つのデータ転送コマンドを出して、前記データ転送コマンドにより指定される外部フォーマットとしてインクリメントバースト・タイプと前記最大外部メモリ・バースト長以下の或る数の外部データ転送とを用いるフォーマットを選択し、次に前記メモリ制御器は1つ以上の別のデータ転送コマンドを出して前記トランザクションにより指定された残りのデータにアクセスする、請求項7記載の集積回路。
- 前記外部メモリは多数のメモリのバンクから成るダイナミック・メモリである、請求項1記載の集積回路。
- 前記外部メモリはスタティック・メモリである、請求項1記載の集積回路。
- 集積回路を操作して外部メモリにアクセスする方法であって、前記集積回路はマスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを行うことを可能にする相互接続論理を有し、各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送と、そのマスタ論理ユニットとそのスレーブ論理ユニットとの間の1つ以上のデータ転送とを含み、前記方法は、
マスタ論理ユニットが外部メモリからのデータにアクセスしようとするときに前記相互接続論理を介して前記アドレス転送を出すことによりトランザクションを開始し、前記トランザクションは前記相互接続論理により転送するための前記トランザクションの1つ以上のデータ転送をフォーマットするのに用いられる関連するフォーマット情報を有するステップと、
メモリ制御器を前記トランザクションのためのスレーブ論理ユニットとして動作させ、前記メモリ制御器は前記外部バスを介して前記外部メモリに結合され、1つ以上のコマンドを前記外部バスにより前記外部メモリに出すことにより前記トランザクションを処理して前記メモリ制御器と前記外部メモリとの間で1つ以上の外部データ転送を行うステップと、
コマンド毎に、前記メモリ制御器は前記外部メモリの少なくとも1つの予め定められた制約と前記トランザクションのフォーマット情報とに従って1つ以上の外部データ転送のための外部フォーマットを選択するステップと、
を含む外部メモリにアクセスする方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0518354A GB2430053B (en) | 2005-09-08 | 2005-09-08 | Accessing external memory from an integrated circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007073052A true JP2007073052A (ja) | 2007-03-22 |
Family
ID=35221140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006242218A Abandoned JP2007073052A (ja) | 2005-09-08 | 2006-09-07 | 集積回路から外部メモリへのアクセス |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070055813A1 (ja) |
JP (1) | JP2007073052A (ja) |
GB (1) | GB2430053B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012070319A1 (ja) * | 2010-11-25 | 2012-05-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100653087B1 (ko) * | 2005-10-17 | 2006-12-01 | 삼성전자주식회사 | AXI가 적용된 NoC 시스템 및 그 인터리빙 방법 |
US8374225B2 (en) * | 2006-12-19 | 2013-02-12 | Broadcom Corporation | Voice/data/RF integrated circuit |
KR101670055B1 (ko) * | 2010-08-30 | 2016-11-09 | 삼성전자 주식회사 | 디지털 영상 처리 장치의 제어 방법, 상기 방법을 적용한 디지털 영상 처리 장치, 상기 디지털 영상 처리 장치를 포함하는 통신 시스템 |
KR20120037785A (ko) * | 2010-10-12 | 2012-04-20 | 삼성전자주식회사 | 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법 |
JP5906625B2 (ja) * | 2011-09-15 | 2016-04-20 | 株式会社リコー | アクセス制御装置、画像形成装置およびアクセス制御方法 |
US9569352B2 (en) | 2013-03-14 | 2017-02-14 | Sandisk Technologies Llc | Storage module and method for regulating garbage collection operations based on write activity of a host |
US9471254B2 (en) * | 2014-04-16 | 2016-10-18 | Sandisk Technologies Llc | Storage module and method for adaptive burst mode |
US9665296B2 (en) | 2014-05-07 | 2017-05-30 | Sandisk Technologies Llc | Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications |
US9710198B2 (en) | 2014-05-07 | 2017-07-18 | Sandisk Technologies Llc | Method and computing device for controlling bandwidth of swap operations |
US9928169B2 (en) | 2014-05-07 | 2018-03-27 | Sandisk Technologies Llc | Method and system for improving swap performance |
US9633233B2 (en) | 2014-05-07 | 2017-04-25 | Sandisk Technologies Llc | Method and computing device for encrypting data stored in swap memory |
US10146714B1 (en) * | 2016-03-01 | 2018-12-04 | Cadence Design Systems, Inc. | Method and system for synchronizing transaction streams of a partial sequence of transactions through master-slave interfaces |
US9990158B2 (en) | 2016-06-22 | 2018-06-05 | Sandisk Technologies Llc | Storage system and method for burst mode management using transfer RAM |
CN109471824B (zh) * | 2018-11-22 | 2021-02-05 | 青岛方寸微电子科技有限公司 | 基于axi总线的数据传输系统及方法 |
CN113568851A (zh) * | 2020-04-29 | 2021-10-29 | 意法半导体股份有限公司 | 访问存储器的方法及对应电路 |
CN112860622B (zh) * | 2021-02-08 | 2022-11-04 | 山东云海国创云计算装备产业创新中心有限公司 | 一种处理系统以及一种片上系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112287A (en) * | 1993-03-01 | 2000-08-29 | Busless Computers Sarl | Shared memory multiprocessor system using a set of serial links as processors-memory switch |
JPH10134008A (ja) * | 1996-11-05 | 1998-05-22 | Mitsubishi Electric Corp | 半導体装置およびコンピュータシステム |
US6356962B1 (en) * | 1998-09-30 | 2002-03-12 | Stmicroelectronics, Inc. | Network device and method of controlling flow of data arranged in frames in a data-based network |
US6601126B1 (en) * | 2000-01-20 | 2003-07-29 | Palmchip Corporation | Chip-core framework for systems-on-a-chip |
GB2378779B (en) * | 2001-08-14 | 2005-02-02 | Advanced Risc Mach Ltd | Accessing memory units in a data processing apparatus |
-
2005
- 2005-09-08 GB GB0518354A patent/GB2430053B/en not_active Expired - Fee Related
-
2006
- 2006-08-08 US US11/500,392 patent/US20070055813A1/en not_active Abandoned
- 2006-09-07 JP JP2006242218A patent/JP2007073052A/ja not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012070319A1 (ja) * | 2010-11-25 | 2012-05-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法 |
CN103201725A (zh) * | 2010-11-25 | 2013-07-10 | 国际商业机器公司 | 用于在多个处理器之间共享的存储器的存储器访问设备及其访问方法 |
GB2500529A (en) * | 2010-11-25 | 2013-09-25 | Ibm | Memory access device for memory sharing among plurality of processors, and access method for same |
CN103201725B (zh) * | 2010-11-25 | 2015-12-09 | 国际商业机器公司 | 用于在多个处理器之间共享的存储器的存储器访问设备 |
US9268721B2 (en) | 2010-11-25 | 2016-02-23 | International Business Machines Corporation | Holding by a memory controller multiple central processing unit memory access requests, and performing the multiple central processing unit memory requests in one transfer cycle |
US9460763B2 (en) | 2010-11-25 | 2016-10-04 | International Business Machines Corporation | Holding by a memory controller multiple central processing unit memory access requests, and performing the multiple central processing unit memory request in one transfer cycle |
GB2500529B (en) * | 2010-11-25 | 2020-03-25 | Ibm | Memory access device for memory sharing among multiple processors and access method for the same |
Also Published As
Publication number | Publication date |
---|---|
US20070055813A1 (en) | 2007-03-08 |
GB2430053B (en) | 2010-09-22 |
GB0518354D0 (en) | 2005-10-19 |
GB2430053A (en) | 2007-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007073052A (ja) | 集積回路から外部メモリへのアクセス | |
US7447805B2 (en) | Buffer chip and method for controlling one or more memory arrangements | |
JP2601979B2 (ja) | データ転送制御装置及びコンピュータ・システムの動作方法 | |
US6795899B2 (en) | Memory system with burst length shorter than prefetch length | |
JP4077874B2 (ja) | ダイナミック・ランダム・アクセス・メモリ・システム | |
US7907469B2 (en) | Multi-port memory device for buffering between hosts and non-volatile memory devices | |
JP3532932B2 (ja) | 時間重複メモリ・アクセスを有するランダムにアクセス可能なメモリ | |
US7299323B2 (en) | Memory controller having a read-modify-write function | |
KR100341948B1 (ko) | 제어된버스트메모리액세스기능을갖는데이타처리기및그방법 | |
JP4734580B2 (ja) | エンハンスド・バス・ターンアラウンド集積回路ダイナミック・ランダム・アクセス・メモリ装置 | |
JP5043662B2 (ja) | メモリの制御方法、メモリ・システム | |
JP2000137983A (ja) | 半導体記憶装置 | |
JP2004502224A (ja) | フラッシュブリッジとオートロードとを有する集積回路 | |
JPH09213070A (ja) | 隠れプリチャージ式疑似キャッシュdram | |
US6633927B1 (en) | Device and method to minimize data latency and maximize data throughput using multiple data valid signals | |
JP2001035158A (ja) | メモリアクセス方法及びメモリアクセス方式 | |
JP2007500402A (ja) | 周辺装置アクセス保護付きデータ処理システム | |
JP2000067576A (ja) | 半導体記憶装置 | |
US20050160246A1 (en) | Method and device for controlling a memory access | |
JP3583844B2 (ja) | キャッシュメモリ方式 | |
JP4707351B2 (ja) | マルチバンクメモリのスケジューリング方法 | |
JP2004146051A (ja) | データ読み取り動作及び書き込み動作を同時に実行可能な集積回路及び方法 | |
JP2000099452A (ja) | Dma制御装置 | |
US5752267A (en) | Data processing system for accessing an external device during a burst mode of operation and method therefor | |
JP3563340B2 (ja) | メモリコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081006 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20090522 |