JP2007328585A - データ処理装置及びデータ処理方法 - Google Patents
データ処理装置及びデータ処理方法 Download PDFInfo
- Publication number
- JP2007328585A JP2007328585A JP2006159636A JP2006159636A JP2007328585A JP 2007328585 A JP2007328585 A JP 2007328585A JP 2006159636 A JP2006159636 A JP 2006159636A JP 2006159636 A JP2006159636 A JP 2006159636A JP 2007328585 A JP2007328585 A JP 2007328585A
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- request
- group
- grouping
- requests
- 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.)
- Pending
Links
Images
Abstract
【課題】多くのマスターが同時動作し、バンク割り当てによる対策だけでは性能が得られない場合にも、メモリオーバーヘッドを減らす。
【解決手段】各トランザクションはマスターIDとグループビットをもっている。グループビットは、グループ化に対応していないマスターの要求するトランザクションでは常に0であり、グループ化に対応しているマスターの要求するトランザクションではグループ化された複数のトランザクションのうちグループの末尾以外では1、グループの末尾では0の値をとる。グループビットはグループ化部104で付与され複数のトランザクションをグループ化する。メモリコントローラ105はグループビットの値によって単独キュー109とグループキュー110の2つのキューのうち一方にトランザクションをいれ、SDRAM107へアクセスする際に制御部112がグループ化された複数のトランザクションを連続して取り出すよう制御する。
【選択図】図1
【解決手段】各トランザクションはマスターIDとグループビットをもっている。グループビットは、グループ化に対応していないマスターの要求するトランザクションでは常に0であり、グループ化に対応しているマスターの要求するトランザクションではグループ化された複数のトランザクションのうちグループの末尾以外では1、グループの末尾では0の値をとる。グループビットはグループ化部104で付与され複数のトランザクションをグループ化する。メモリコントローラ105はグループビットの値によって単独キュー109とグループキュー110の2つのキューのうち一方にトランザクションをいれ、SDRAM107へアクセスする際に制御部112がグループ化された複数のトランザクションを連続して取り出すよう制御する。
【選択図】図1
Description
本発明は、SDRAMに対して、多数のマスター回路からアクセスすることによって動作するデータ処理装置等に関する。
SDRAMを用いたデータ処理装置は非常に一般的であり、例えば、図2に示すような構成が従来から用いられている。図2において、複数のマスターA,B,C(201,202,203)は、バス等の相互接続部204を経由してスレーブとなるメモリコントローラ205に接続されている。メモリコントローラ205はSDRAM206に接続されており、マスターからのトランザクション要求(リード・ライト)に対し、SDRAM206を使用して処理する。メモリコントローラ205内にはトランザクションキュー207がある。そして、マスターの要求したトランザクションは順次トランザクションキュー207に入って、SDRAM206に対して次のコマンド発行が可能になり次第、次のトランザクションのためのコマンドがSDRAMに対して発行される。
SDRAMの動作を考える場合、SDRAMに対する要求がどのような内容でどのような順序で到来するかが、要求の処理時間に大きく影響するが、その一例を図3に示す。図3において、縦の点線はSDRAMの動作クロックを示しており、コマンドの段には、Activeコマンド、Readコマンド、Prechargeコマンドを、夫々、ACT,READ,PREという符号で示している。データの段で、A1とある場合のAは、Aというローアドレスに対応するデータを示し、1は1番目の要求に対応するデータであることを示す。また、データの段で、B2とある場合のBは、Aとは異なるBというローアドレスに対応するデータを示し、2は2番目の要求に対するデータであることを示す。
なお、コマンドやデータ間で満たすべきタイミングについては、本来使用するSDRAMデバイスや動作条件によって異なるが、説明の都合上、ここでは、ある特定のタイミングパラメータを仮定して図示してある。
図3(a)に示したのは、同一ローアドレスAに対するバースト長2のリード要求が3回連続した場合のタイミングであり、最初にActiveコマンドでローアドレスを指定した後、続くReadコマンドでカラムアドレスを指定して、リードを指示する。リードデータは、ReadコマンドからCAS latency分(図では2サイクル)だけ遅れてSDRAMから出力される。但し、2番目のReadコマンドも同一ローアドレスに対するアクセスであるため、リードデータの出力とオーバーラップして2番目のReadコマンドを発行することが可能である。この結果、1番目のリードデータの直後のサイクルから2番目のリードデータを出力できる。更に、3番目のReadコマンドも同一ローアドレスに対するアクセスであるため、同様にReadコマンド・リードデータのオーバーラップが可能である。結局、3回のリード要求のデータが全て連続して出力され、SDRAMのデータバスが有効に使用されていることがわかる。
一方、図3(b)に示したのは、同一ローアドレスAに対するバースト長2のリード要求の間に、別のローアドレスBに対するバースト長2のリード要求が入ってきた場合のタイミングである。最初のActiveコマンドと1番目のReadコマンド、及びそれに対するリードデータの出力までのタイミングは図3(a)と同じであるが、2番目のリード要求が別のローアドレスに対するアクセスである。このため、先ず、Prechargeコマンドを発行してから、再度、ActiveコマンドでローアドレスBを指定する必要がある。ActiveコマンドからPrechargeコマンド、PrechargeコマンドからActiveコマンドの間には、それぞれ満たすべきタイミングパラメータがある。このため、2番目のリード要求のためのPrechargeコマンドとActiveコマンドを発行するには、図のようにある程度待ちを入れる必要がある。
2番目のActiveコマンドの後にようやく2番目のReadコマンドが発行できるため、結局、図3(a)と比較すると、2番目のReadコマンド発行は5サイクル遅れてしまう。次に、3番目のリード要求は、再びローアドレスAに対するアクセスとなるが、2番目のリード要求によってローアドレスがBに設定されている。このため、ここでも2番目のリード要求のときと同様にPrechargeコマンドとActiveコマンドの発行が必要となり、全体としては、図3(a)と比較すると10サイクルも処理が遅くなる。
このように、SDRAMのデータ処理性能を考える上では、処理すべきトランザクションのアドレスや順序、更にここでは説明を省略したが、リード・ライトの種別が非常に重要となっている。
図2のような構成において、マスター数が増加し、しかもそれらが同時動作するようになると、メモリコントローラ205はトランザクションキュー207に常にトランザクションがたまった状態で動作するようになる。この結果、SDRAM206のデータ処理性能で全体の性能が律速されるようになる。
そこで、全体の性能を上げるためには、SDRAMのデータ転送性能を最大限に引き出す必要があり、図3(b)で生じたローアドレス変更時のオーバーヘッドは極力減らす必要がある。SDRAMにおけるローアドレス変更時のオーバーヘッドを減らすための、一つの有効な手段は、SDRAM内の複数のバンクを活用することである。例えば、図3(b)において、2番目のリード要求が1番目、3番目のリード要求とは別バンクであったとすると、図3(a)と同様のタイミングで動作させることも可能であり、オーバーヘッドを大きく減らすことができる。
ところが、図2において、同時動作するマスター数がバンク数(通常4程度)を大きく超えてくると、バンク割り当てだけでは、複数のマスターが一つのバンクに同時アクセスすることを防げなくなってしまう。
本発明は、このように多くのマスターが同時動作し、バンク割り当てによる対策だけでは性能が得られない場合にも、メモリオーバーヘッドを減らすことを課題とする。
前記課題を解決するために本発明は、複数のデータ転送要求に対し、データ転送要求のグループ化を行うグループ化手段と、前記データ転送要求を受けてメモリへのアクセスを行うメモリコントロール手段と、前記メモリコントロール手段に接続されて使用されるメモリ手段と、前記データ転送要求を前記メモリコントロール手段に伝えるデータ転送接続手段と、前記データ転送要求に対して、グループ中の最後の要求及びグループ化されていない要求、及び前記データ転送要求に対してグループ中の最後以外の要求をためるキュー手段とを有し、グループ化された複数の要求が前記SDRAMに対して連続的になされるよう制御することを特徴とするデータ処理装置等、を提供する。
本発明によれば、多くのマスターが同時動作し、バンク割り当てによる対策だけではメモリ性能が十分引き出せない場合にも、グループ化されたトランザクションを連続して処理することにより、SDRAMアクセスのオーバーヘッドを減らすことができる。また、本発明におけるグループ化の指示は、トランザクションを要求するマスター側から行うため、マスターの状態に応じた対応が可能となる。
以下、本発明の実施例について、図1、図4を用いて説明する。
図1は、本実施例の構成図であり、3つのマスターA,B,C(101,102,103)が、相互接続部105を経由して、メモリコントローラ106に接続されている。メモリコントローラ106は、マスターからの要求を受けてSDRAM107へのアクセスを実行する。本実施例では、各トランザクションは、要求のタイプ(リード・ライト)やアドレス、データ長、書き込みデータといった基本的な情報の他に、どのマスターからの要求であるかを示すマスターIDと、グループビットをもっている。グループビットは、グループ化に対応していないマスターの要求するトランザクションでは、常に0である。一方、グループ化に対応しているマスターの要求するトランザクションでは、グループ化された複数のトランザクションのうち、グループの末尾以外では1、グループの末尾では0の値をとる。図1の3つのマスターの中では、マスターBだけがグループ化に対応しており、グループ化部104をもっている。グループ化部104におけるグループ化の方法には様々な方法が考えられるが、このマスターBでは、単純にトランザクションを2つずつグループ化しているものとする。
図1における113,114,115,116は、相互接続部105を転送されるトランザクション要求の一例であり、マスターIDが、A、B,Cのいずれかで、また、グループビットの値がG0(G=0),G1(G=1)のいずれかで示されている。トランザクション113,114はグループ化に対応していないマスターA,Cの要求であるため、グループビットはいずれも0である。トランザクション115,116は、グループ化に対応したマスターBの要求である。そして、先のトランザクション115はグループビット1でグループの末尾以外であることを示しており、後のトランザクション116はグループビット0でグループの末尾であることを示している。従って、2つのトランザクション115,116はグループを構成しており、トランザクション116がそのグループの末尾である。なお、グループ化はマスター毎に行われるため、マスターB以外のマスターがグループ対応しており、そのトランザクション中でグループビットがセットされていたとしても、マスターBのグループ化のされ方とは関係しない。
図1において、メモリコントローラ106は、2つのトランザクションキューをもっており、入力されたトランザクションは、最初にキュー選択部108にて、単独キュー109とグループキュー110の2つのキューのどちらに入るか選択される。
選択条件は、単純にグループビットの値で、グループビットが0、即ち、グループ化に対応していないトランザクション、又は、グループ末尾のトランザクションは、単独キュー109に入る。一方、グループビットが1、即ち、グループ化されているがグループ末尾以外のトランザクションは、グループキュー110に入る。
その後、制御部112によって2つのキューのどちらかのトランザクションが出力選択部111で選択され、順次SDRAM107へのアクセスに使用される。メモリコントローラ106内の制御部112は、単独キュー109、グループキュー110のそれぞれの状態を見て、次のような制御を行う。
(1)グループキュー110が空の場合:
単独キュー109の先頭のトランザクションを処理
(2)グループキュー110が空でない、かつ、単独キューが空の場合:
グループキュー110の先頭のトランザクションを処理
(3)グループキュー110が空でない、かつ、単独キュー先頭のトランザクションのマスターIDとマスターIDが一致するトランザクションがグループキューに存在する場合:
グループキュー110を先頭側から調べ、単独キュー先頭のトランザクションとマスターIDの一致するトランザクションを順次、連続して処理
(4)グループキュー110が空でない、かつ、単独キュー先頭のトランザクションのマスターIDとマスターIDが一致するトランザクションがグループキューに存在しない場合:
単独キュー109の先頭のトランザクションを処理
単独キュー109の先頭のトランザクションを処理
(2)グループキュー110が空でない、かつ、単独キューが空の場合:
グループキュー110の先頭のトランザクションを処理
(3)グループキュー110が空でない、かつ、単独キュー先頭のトランザクションのマスターIDとマスターIDが一致するトランザクションがグループキューに存在する場合:
グループキュー110を先頭側から調べ、単独キュー先頭のトランザクションとマスターIDの一致するトランザクションを順次、連続して処理
(4)グループキュー110が空でない、かつ、単独キュー先頭のトランザクションのマスターIDとマスターIDが一致するトランザクションがグループキューに存在しない場合:
単独キュー109の先頭のトランザクションを処理
ここで、(3)の制御により、グループ化されたトランザクションは必ず連続して処理されるため、例えば、ローアドレスの一致するトランザクションだけをグループ化すれば、ローアドレスの不一致によるオーバーヘッドを低減することができる。
次に、図4を参照しながら、グループ化の効果について説明する。
図4において、トランザクション要求順で示されているのは、A,B,C各マスターから要求されたトランザクションがメモリコントローラ106に入ってきた順序である。図4において、A,B,Cはどのマスターからの要求であるかを示し、A,B,Cに続く番号は、各マスターにおいて何番目に要求されたトランザクションであるかを示す。この例は、A,B,Cいずれのマスターからのトランザクションも連続しておらず、互い違いに要求された状態になっている。
ここで、各マスターの要求したトランザクション同士については、同一ローアドレスであり、マスターの異なるトランザクション同士は、異なるローアドレスであるとすると、図中B1以降、すべてのトランザクションについて、図3(b)のような状態になる。従って、この順序のままでSDRAMにアクセスすると非常に処理性能が落ちてしまう。
ここで、マスターBについては、連続するトランザクション2個ずつをグループ化しているため、B1とB2,B3とB4がそれぞれグループとなり、B1,B3に対してグループビットが1となる。
次に、このような順序で要求されたトランザクションが、メモリコントローラ106で処理されると、まず、トランザクションA1は単独キュー109に入る。次に、トランザクションB1はグループキュー110に入り、以下、A2,C1,A3は、いずれも単独キューに入る。制御部112は、単独キューのトランザクションを先頭から処理していくため、SDRAM側での処理順は、図4のSDRAM処理順に示すように、A1,A2,C1,A3となる。
トランザクションB2が単独キューに入ると、前記(3)の場合にあてはまるため、まず、グループキューでマスターIDの一致するB1が処理され、次にB2が処理される。
続きのA4,B3,A5,C2,A6,B4についても同様に処理され、SDRAM側では、A4,A5,c2、A6,B3,B4の順序で処理される。
図4のSDRAM処理順を見ればわかるように、グループ化された部分については、同じマスターのトランザクションが連続し、この実施例の仮定では、ローアドレスが一致するため処理性能が改善する。また、破線矢印で示した、A1、A2とA4,A5もマスターBのグループ化によって間接的に、マスターAのトランザクションが連続するようになっており、ここでもさらに処理性能が改善する。
なお、ここでは、マスターBのみグループ対応のマスターとしたが、グループ対応のマスターは複数あってもよい。また、グループ化部104の動作について、単純に2個ずつグループ化する動作としたが、これは、他の固定的なパターンでのグループ化でもよい。更には、グループ化部104の動作について、マスターの都合、状態に応じて制御することも可能である。例えば、シングルデータ転送が続く場合にのみグループ化を適用したり、多次元アドレッシングでアドレスの飛ぶ境界をグループ化の境界としたり、マスターの内部的な状態を見てトランザクション処理の遅延を許容できる場合にグループ化を行ったりしてもよい。
なお、本発明の実施形態は、例えばコンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。
101:マスターA(グループ化対応なし)
102:マスターB(グループ化対応)
103:マスターC(グループ化対応なし)
104:グループ化部
105:相互接続部
106:メモリコントローラ
107:SDRAM
108:キュー選択部
109:単独キュー
110:グループキュー
111:出力選択部
112:制御部
113:トランザクション(マスターA)
114:トランザクション(マスターC)
115:トランザクション(マスターB,G=1)
116:トランザクション(マスターB,G=0)
201:マスターA
202:マスターB
203:マスターC
204:相互接続部
205:メモリコントローラ
206:SDRAM
207:トランザクションキュー
102:マスターB(グループ化対応)
103:マスターC(グループ化対応なし)
104:グループ化部
105:相互接続部
106:メモリコントローラ
107:SDRAM
108:キュー選択部
109:単独キュー
110:グループキュー
111:出力選択部
112:制御部
113:トランザクション(マスターA)
114:トランザクション(マスターC)
115:トランザクション(マスターB,G=1)
116:トランザクション(マスターB,G=0)
201:マスターA
202:マスターB
203:マスターC
204:相互接続部
205:メモリコントローラ
206:SDRAM
207:トランザクションキュー
Claims (4)
- データ転送要求を行う複数のマスター回路手段と、
前記マスター回路手段の要求する複数のデータ転送要求に対し、データ転送要求のグループ化を行うグループ化手段と、
前記マスター回路手段の要求するデータ転送要求を受けてSDRAMアクセスを行うメモリコントロール手段と、
前記メモリコントロール手段に接続されて使用されるSDRAMと、
前記マスター回路手段の要求するデータ転送要求を前記メモリコントロール手段に伝えるデータ転送接続手段と、
を備え、
前記メモリコントロール手段は、
前記データ転送要求に対して、グループ中の最後の要求及びグループ化されていない要求をためる第1のキュー手段と、
前記データ転送要求に対して、グループ中の最後以外の要求をためる第2のキュー手段と、
を有し、
グループ化された複数の要求が前記SDRAMに対して連続的になされるよう制御することを特徴とするデータ処理装置。 - 複数のデータ転送要求に対し、データ転送要求のグループ化を行うグループ化手段と、
前記データ転送要求を受けてメモリへのアクセスを行うメモリコントロール手段と、
前記メモリコントロール手段に接続されて使用されるメモリ手段と、
前記データ転送要求を前記メモリコントロール手段に伝えるデータ転送接続手段と、
前記データ転送要求に対して、グループ中の最後の要求及びグループ化されていない要求、及び前記データ転送要求に対してグループ中の最後以外の要求をためるキュー手段と、
を有し、
グループ化された複数の要求が前記SDRAMに対して連続的になされるよう制御することを特徴とするデータ処理装置。 - 複数のデータ転送要求に対し、データ転送要求のグループ化を行うグループ化工程と、
前記データ転送要求を受けてメモリへのアクセスを行うメモリコントロール工程と、
前記データ転送要求を前記メモリコントロール手段に伝えるデータ転送接続工程と、
前記データ転送要求に対して、グループ中の最後の要求及びグループ化されていない要求、及び前記データ転送要求に対してグループ中の最後以外の要求をためるキュー工程と、
を有し、
グループ化された複数の要求を前記メモリに対して連続的にすることを特徴とするデータ処理方法。 - コンピュータに、
複数のデータ転送要求に対し、データ転送要求のグループ化を行うグループ化手順と、
前記データ転送要求を受けてメモリへのアクセスを行うメモリコントロール手順と、
前記データ転送要求を前記メモリコントロール手段に伝えるデータ転送接続手順と、
前記データ転送要求に対して、グループ中の最後の要求及びグループ化されていない要求、及び前記データ転送要求に対してグループ中の最後以外の要求をためるキュー手順と、
を実行させ、
グループ化された複数の要求を前記メモリに対して連続的にすることを特徴とするデータ処理用のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006159636A JP2007328585A (ja) | 2006-06-08 | 2006-06-08 | データ処理装置及びデータ処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006159636A JP2007328585A (ja) | 2006-06-08 | 2006-06-08 | データ処理装置及びデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007328585A true JP2007328585A (ja) | 2007-12-20 |
Family
ID=38929010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006159636A Pending JP2007328585A (ja) | 2006-06-08 | 2006-06-08 | データ処理装置及びデータ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007328585A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101420290B1 (ko) | 2008-05-14 | 2014-07-17 | 삼성전자주식회사 | 트랜잭션들을 그룹화하는 버스 중재기, 이를 포함하는 버스장치 및 시스템 |
-
2006
- 2006-06-08 JP JP2006159636A patent/JP2007328585A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101420290B1 (ko) | 2008-05-14 | 2014-07-17 | 삼성전자주식회사 | 트랜잭션들을 그룹화하는 버스 중재기, 이를 포함하는 버스장치 및 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5238747B2 (ja) | ハブベースのシステムメモリにおける書込みコマンドを終了させる方法とシステム | |
US8954644B2 (en) | Apparatus and method for controlling memory | |
JP4752882B2 (ja) | メモリアクセスシステム、メモリ制御装置、メモリ制御方法、および、プログラム | |
JP3819004B2 (ja) | メモリ制御装置 | |
JP2010134627A (ja) | バス中継装置 | |
JP2002288037A (ja) | メモリ制御装置及び方法 | |
JP2014035628A (ja) | 情報処理装置、メモリ制御装置およびその制御方法 | |
JP4085983B2 (ja) | 情報処理装置およびメモリアクセス方法 | |
US8667199B2 (en) | Data processing apparatus and method for performing multi-cycle arbitration | |
JP5911548B1 (ja) | 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム | |
US20090119429A1 (en) | Semiconductor integrated circuit | |
JP3803196B2 (ja) | 情報処理装置、情報処理方法および記録媒体 | |
JP2007328585A (ja) | データ処理装置及びデータ処理方法 | |
JP5383159B2 (ja) | バス中継装置及び制御方法 | |
KR101022473B1 (ko) | 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치 | |
TW515949B (en) | Method for scheduling run sequence of read and write requests | |
JP2011034214A (ja) | メモリ制御装置 | |
JP6170363B2 (ja) | 制御装置、コンピュータシステム、制御方法、及びプログラム | |
JP2001256106A (ja) | メモリアクセスシステム | |
JP2008102599A (ja) | プロセッサ | |
US10061737B2 (en) | Signal processing device, method of signal processing, storage medium, and electronic musical instrument | |
KR101414453B1 (ko) | 메모리 제어장치 및 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체 | |
GB2365590A (en) | Improved data procesing system for reducing idle clock cycles | |
JP2010244408A (ja) | メモリコントローラおよびメモリインターフェース方法 | |
JP2007034404A (ja) | 情報処理システム及びメモリ制御装置 |