(57)【要約】【課題】多くのマスターが同時動作し、バンク割り当てによる対策だけでは性能が得られない場合にも、メモリオーバーヘッドを減らす。【解決手段】各トランザクションはマスターＩＤとグループビットをもっている。グループビットは、グループ化に対応していないマスターの要求するトランザクションでは常に０であり、グループ化に対応しているマスターの要求するトランザクションではグループ化された複数のトランザクションのうちグループの末尾以外では１、グループの末尾では０の値をとる。グループビットはグループ化部１０４で付与され複数のトランザクションをグループ化する。メモリコントローラ１０５はグループビットの値によって単独キュー１０９とグループキュー１１０の２つのキューのうち一方にトランザクションをいれ、ＳＤＲＡＭ１０７へアクセスする際に制御部１１２がグループ化された複数のトランザクションを連続して取り出すよう制御する。【選択図】図１
2007328585.tif 000002
【特許請求の範囲】
【請求項１】
データ転送要求を行う複数のマスター回路手段と、
前記マスター回路手段の要求する複数のデータ転送要求に対し、データ転送要求のグループ化を行うグループ化手段と、
前記マスター回路手段の要求するデータ転送要求を受けてＳＤＲＡＭアクセスを行うメモリコントロール手段と、
前記メモリコントロール手段に接続されて使用されるＳＤＲＡＭと、
前記マスター回路手段の要求するデータ転送要求を前記メモリコントロール手段に伝えるデータ転送接続手段と、
を備え、
前記メモリコントロール手段は、
前記データ転送要求に対して、グループ中の最後の要求及びグループ化されていない要求をためる第１のキュー手段と、
前記データ転送要求に対して、グループ中の最後以外の要求をためる第２のキュー手段と、
を有し、
グループ化された複数の要求が前記ＳＤＲＡＭに対して連続的になされるよう制御することを特徴とするデータ処理装置。
【請求項２】
複数のデータ転送要求に対し、データ転送要求のグループ化を行うグループ化手段と、
前記データ転送要求を受けてメモリへのアクセスを行うメモリコントロール手段と、
前記メモリコントロール手段に接続されて使用されるメモリ手段と、
前記データ転送要求を前記メモリコントロール手段に伝えるデータ転送接続手段と、
前記データ転送要求に対して、グループ中の最後の要求及びグループ化されていない要求、及び前記データ転送要求に対してグループ中の最後以外の要求をためるキュー手段と、
を有し、
グループ化された複数の要求が前記ＳＤＲＡＭに対して連続的になされるよう制御することを特徴とするデータ処理装置。
【請求項３】
複数のデータ転送要求に対し、データ転送要求のグループ化を行うグループ化工程と、
前記データ転送要求を受けてメモリへのアクセスを行うメモリコントロール工程と、
前記データ転送要求を前記メモリコントロール手段に伝えるデータ転送接続工程と、
前記データ転送要求に対して、グループ中の最後の要求及びグループ化されていない要求、及び前記データ転送要求に対してグループ中の最後以外の要求をためるキュー工程と、
を有し、
グループ化された複数の要求を前記メモリに対して連続的にすることを特徴とするデータ処理方法。
【請求項４】
コンピュータに、
複数のデータ転送要求に対し、データ転送要求のグループ化を行うグループ化手順と、
前記データ転送要求を受けてメモリへのアクセスを行うメモリコントロール手順と、
前記データ転送要求を前記メモリコントロール手段に伝えるデータ転送接続手順と、
前記データ転送要求に対して、グループ中の最後の要求及びグループ化されていない要求、及び前記データ転送要求に対してグループ中の最後以外の要求をためるキュー手順と、
を実行させ、
グループ化された複数の要求を前記メモリに対して連続的にすることを特徴とするデータ処理用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＤＲＡＭに対して、多数のマスター回路からアクセスすることによって動作するデータ処理装置等に関する。
【背景技術】
【０００２】
ＳＤＲＡＭを用いたデータ処理装置は非常に一般的であり、例えば、図２に示すような構成が従来から用いられている。図２において、複数のマスターＡ，Ｂ，Ｃ（２０１，２０２，２０３）は、バス等の相互接続部２０４を経由してスレーブとなるメモリコントローラ２０５に接続されている。メモリコントローラ２０５はＳＤＲＡＭ２０６に接続されており、マスターからのトランザクション要求（リード・ライト）に対し、ＳＤＲＡＭ２０６を使用して処理する。メモリコントローラ２０５内にはトランザクションキュー２０７がある。そして、マスターの要求したトランザクションは順次トランザクションキュー２０７に入って、ＳＤＲＡＭ２０６に対して次のコマンド発行が可能になり次第、次のトランザクションのためのコマンドがＳＤＲＡＭに対して発行される。
【０００３】
ＳＤＲＡＭの動作を考える場合、ＳＤＲＡＭに対する要求がどのような内容でどのような順序で到来するかが、要求の処理時間に大きく影響するが、その一例を図３に示す。図３において、縦の点線はＳＤＲＡＭの動作クロックを示しており、コマンドの段には、Ａｃｔｉｖｅコマンド、Ｒｅａｄコマンド、Ｐｒｅｃｈａｒｇｅコマンドを、夫々、ＡＣＴ，ＲＥＡＤ，ＰＲＥという符号で示している。データの段で、Ａ１とある場合のＡは、Ａというローアドレスに対応するデータを示し、１は１番目の要求に対応するデータであることを示す。また、データの段で、Ｂ２とある場合のＢは、Ａとは異なるＢというローアドレスに対応するデータを示し、２は２番目の要求に対するデータであることを示す。
【０００４】
なお、コマンドやデータ間で満たすべきタイミングについては、本来使用するＳＤＲＡＭデバイスや動作条件によって異なるが、説明の都合上、ここでは、ある特定のタイミングパラメータを仮定して図示してある。
【０００５】
図３（ａ）に示したのは、同一ローアドレスＡに対するバースト長２のリード要求が３回連続した場合のタイミングであり、最初にＡｃｔｉｖｅコマンドでローアドレスを指定した後、続くＲｅａｄコマンドでカラムアドレスを指定して、リードを指示する。リードデータは、ＲｅａｄコマンドからＣＡＳ  ｌａｔｅｎｃｙ分（図では２サイクル）だけ遅れてＳＤＲＡＭから出力される。但し、２番目のＲｅａｄコマンドも同一ローアドレスに対するアクセスであるため、リードデータの出力とオーバーラップして２番目のＲｅａｄコマンドを発行することが可能である。この結果、１番目のリードデータの直後のサイクルから２番目のリードデータを出力できる。更に、３番目のＲｅａｄコマンドも同一ローアドレスに対するアクセスであるため、同様にＲｅａｄコマンド・リードデータのオーバーラップが可能である。結局、３回のリード要求のデータが全て連続して出力され、ＳＤＲＡＭのデータバスが有効に使用されていることがわかる。
【０００６】
一方、図３（ｂ）に示したのは、同一ローアドレスＡに対するバースト長２のリード要求の間に、別のローアドレスＢに対するバースト長２のリード要求が入ってきた場合のタイミングである。最初のＡｃｔｉｖｅコマンドと１番目のＲｅａｄコマンド、及びそれに対するリードデータの出力までのタイミングは図３（ａ）と同じであるが、２番目のリード要求が別のローアドレスに対するアクセスである。このため、先ず、Ｐｒｅｃｈａｒｇｅコマンドを発行してから、再度、ＡｃｔｉｖｅコマンドでローアドレスＢを指定する必要がある。ＡｃｔｉｖｅコマンドからＰｒｅｃｈａｒｇｅコマンド、ＰｒｅｃｈａｒｇｅコマンドからＡｃｔｉｖｅコマンドの間には、それぞれ満たすべきタイミングパラメータがある。このため、２番目のリード要求のためのＰｒｅｃｈａｒｇｅコマンドとＡｃｔｉｖｅコマンドを発行するには、図のようにある程度待ちを入れる必要がある。
【０００７】
２番目のＡｃｔｉｖｅコマンドの後にようやく２番目のＲｅａｄコマンドが発行できるため、結局、図３（ａ）と比較すると、２番目のＲｅａｄコマンド発行は５サイクル遅れてしまう。次に、３番目のリード要求は、再びローアドレスＡに対するアクセスとなるが、２番目のリード要求によってローアドレスがＢに設定されている。このため、ここでも２番目のリード要求のときと同様にＰｒｅｃｈａｒｇｅコマンドとＡｃｔｉｖｅコマンドの発行が必要となり、全体としては、図３（ａ）と比較すると１０サイクルも処理が遅くなる。
【０００８】
このように、ＳＤＲＡＭのデータ処理性能を考える上では、処理すべきトランザクションのアドレスや順序、更にここでは説明を省略したが、リード・ライトの種別が非常に重要となっている。
【０００９】
【特許文献１】特開２００２−０５５９４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
図２のような構成において、マスター数が増加し、しかもそれらが同時動作するようになると、メモリコントローラ２０５はトランザクションキュー２０７に常にトランザクションがたまった状態で動作するようになる。この結果、ＳＤＲＡＭ２０６のデータ処理性能で全体の性能が律速されるようになる。
【００１１】
そこで、全体の性能を上げるためには、ＳＤＲＡＭのデータ転送性能を最大限に引き出す必要があり、図３（ｂ）で生じたローアドレス変更時のオーバーヘッドは極力減らす必要がある。ＳＤＲＡＭにおけるローアドレス変更時のオーバーヘッドを減らすための、一つの有効な手段は、ＳＤＲＡＭ内の複数のバンクを活用することである。例えば、図３（ｂ）において、２番目のリード要求が１番目、３番目のリード要求とは別バンクであったとすると、図３（ａ）と同様のタイミングで動作させることも可能であり、オーバーヘッドを大きく減らすことができる。
【００１２】
ところが、図２において、同時動作するマスター数がバンク数（通常４程度）を大きく超えてくると、バンク割り当てだけでは、複数のマスターが一つのバンクに同時アクセスすることを防げなくなってしまう。
【００１３】
本発明は、このように多くのマスターが同時動作し、バンク割り当てによる対策だけでは性能が得られない場合にも、メモリオーバーヘッドを減らすことを課題とする。
【課題を解決するための手段】
【００１４】
前記課題を解決するために本発明は、複数のデータ転送要求に対し、データ転送要求のグループ化を行うグループ化手段と、前記データ転送要求を受けてメモリへのアクセスを行うメモリコントロール手段と、前記メモリコントロール手段に接続されて使用されるメモリ手段と、前記データ転送要求を前記メモリコントロール手段に伝えるデータ転送接続手段と、前記データ転送要求に対して、グループ中の最後の要求及びグループ化されていない要求、及び前記データ転送要求に対してグループ中の最後以外の要求をためるキュー手段とを有し、グループ化された複数の要求が前記ＳＤＲＡＭに対して連続的になされるよう制御することを特徴とするデータ処理装置等、を提供する。
【発明の効果】
【００１５】
本発明によれば、多くのマスターが同時動作し、バンク割り当てによる対策だけではメモリ性能が十分引き出せない場合にも、グループ化されたトランザクションを連続して処理することにより、ＳＤＲＡＭアクセスのオーバーヘッドを減らすことができる。また、本発明におけるグループ化の指示は、トランザクションを要求するマスター側から行うため、マスターの状態に応じた対応が可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施例について、図１、図４を用いて説明する。
【００１７】
図１は、本実施例の構成図であり、３つのマスターＡ，Ｂ，Ｃ（１０１，１０２，１０３）が、相互接続部１０５を経由して、メモリコントローラ１０６に接続されている。メモリコントローラ１０６は、マスターからの要求を受けてＳＤＲＡＭ１０７へのアクセスを実行する。本実施例では、各トランザクションは、要求のタイプ（リード・ライト）やアドレス、データ長、書き込みデータといった基本的な情報の他に、どのマスターからの要求であるかを示すマスターＩＤと、グループビットをもっている。グループビットは、グループ化に対応していないマスターの要求するトランザクションでは、常に０である。一方、グループ化に対応しているマスターの要求するトランザクションでは、グループ化された複数のトランザクションのうち、グループの末尾以外では１、グループの末尾では０の値をとる。図１の３つのマスターの中では、マスターＢだけがグループ化に対応しており、グループ化部１０４をもっている。グループ化部１０４におけるグループ化の方法には様々な方法が考えられるが、このマスターＢでは、単純にトランザクションを２つずつグループ化しているものとする。
【００１８】
図１における１１３，１１４，１１５，１１６は、相互接続部１０５を転送されるトランザクション要求の一例であり、マスターＩＤが、Ａ、Ｂ，Ｃのいずれかで、また、グループビットの値がＧ０（Ｇ＝０），Ｇ１（Ｇ＝１）のいずれかで示されている。トランザクション１１３，１１４はグループ化に対応していないマスターＡ，Ｃの要求であるため、グループビットはいずれも０である。トランザクション１１５，１１６は、グループ化に対応したマスターＢの要求である。そして、先のトランザクション１１５はグループビット１でグループの末尾以外であることを示しており、後のトランザクション１１６はグループビット０でグループの末尾であることを示している。従って、２つのトランザクション１１５，１１６はグループを構成しており、トランザクション１１６がそのグループの末尾である。なお、グループ化はマスター毎に行われるため、マスターＢ以外のマスターがグループ対応しており、そのトランザクション中でグループビットがセットされていたとしても、マスターＢのグループ化のされ方とは関係しない。
【００１９】
図１において、メモリコントローラ１０６は、２つのトランザクションキューをもっており、入力されたトランザクションは、最初にキュー選択部１０８にて、単独キュー１０９とグループキュー１１０の２つのキューのどちらに入るか選択される。
【００２０】
選択条件は、単純にグループビットの値で、グループビットが０、即ち、グループ化に対応していないトランザクション、又は、グループ末尾のトランザクションは、単独キュー１０９に入る。一方、グループビットが１、即ち、グループ化されているがグループ末尾以外のトランザクションは、グループキュー１１０に入る。
【００２１】
その後、制御部１１２によって２つのキューのどちらかのトランザクションが出力選択部１１１で選択され、順次ＳＤＲＡＭ１０７へのアクセスに使用される。メモリコントローラ１０６内の制御部１１２は、単独キュー１０９、グループキュー１１０のそれぞれの状態を見て、次のような制御を行う。
【００２２】
（１）グループキュー１１０が空の場合：
単独キュー１０９の先頭のトランザクションを処理
（２）グループキュー１１０が空でない、かつ、単独キューが空の場合：
グループキュー１１０の先頭のトランザクションを処理
（３）グループキュー１１０が空でない、かつ、単独キュー先頭のトランザクションのマスターＩＤとマスターＩＤが一致するトランザクションがグループキューに存在する場合：
グループキュー１１０を先頭側から調べ、単独キュー先頭のトランザクションとマスターＩＤの一致するトランザクションを順次、連続して処理
（４）グループキュー１１０が空でない、かつ、単独キュー先頭のトランザクションのマスターＩＤとマスターＩＤが一致するトランザクションがグループキューに存在しない場合：
単独キュー１０９の先頭のトランザクションを処理
【００２３】
ここで、（３）の制御により、グループ化されたトランザクションは必ず連続して処理されるため、例えば、ローアドレスの一致するトランザクションだけをグループ化すれば、ローアドレスの不一致によるオーバーヘッドを低減することができる。
【００２４】
次に、図４を参照しながら、グループ化の効果について説明する。
【００２５】
図４において、トランザクション要求順で示されているのは、Ａ，Ｂ，Ｃ各マスターから要求されたトランザクションがメモリコントローラ１０６に入ってきた順序である。図４において、Ａ，Ｂ，Ｃはどのマスターからの要求であるかを示し、Ａ，Ｂ，Ｃに続く番号は、各マスターにおいて何番目に要求されたトランザクションであるかを示す。この例は、Ａ，Ｂ，Ｃいずれのマスターからのトランザクションも連続しておらず、互い違いに要求された状態になっている。
【００２６】
ここで、各マスターの要求したトランザクション同士については、同一ローアドレスであり、マスターの異なるトランザクション同士は、異なるローアドレスであるとすると、図中Ｂ１以降、すべてのトランザクションについて、図３（ｂ）のような状態になる。従って、この順序のままでＳＤＲＡＭにアクセスすると非常に処理性能が落ちてしまう。
【００２７】
ここで、マスターＢについては、連続するトランザクション２個ずつをグループ化しているため、Ｂ１とＢ２，Ｂ３とＢ４がそれぞれグループとなり、Ｂ１，Ｂ３に対してグループビットが１となる。
【００２８】
次に、このような順序で要求されたトランザクションが、メモリコントローラ１０６で処理されると、まず、トランザクションＡ１は単独キュー１０９に入る。次に、トランザクションＢ１はグループキュー１１０に入り、以下、Ａ２，Ｃ１，Ａ３は、いずれも単独キューに入る。制御部１１２は、単独キューのトランザクションを先頭から処理していくため、ＳＤＲＡＭ側での処理順は、図４のＳＤＲＡＭ処理順に示すように、Ａ１，Ａ２，Ｃ１，Ａ３となる。
【００２９】
トランザクションＢ２が単独キューに入ると、前記（３）の場合にあてはまるため、まず、グループキューでマスターＩＤの一致するＢ１が処理され、次にＢ２が処理される。
【００３０】
続きのＡ４，Ｂ３，Ａ５，Ｃ２，Ａ６，Ｂ４についても同様に処理され、ＳＤＲＡＭ側では、Ａ４，Ａ５，ｃ２、Ａ６，Ｂ３，Ｂ４の順序で処理される。
【００３１】
図４のＳＤＲＡＭ処理順を見ればわかるように、グループ化された部分については、同じマスターのトランザクションが連続し、この実施例の仮定では、ローアドレスが一致するため処理性能が改善する。また、破線矢印で示した、Ａ１、Ａ２とＡ４，Ａ５もマスターＢのグループ化によって間接的に、マスターＡのトランザクションが連続するようになっており、ここでもさらに処理性能が改善する。
【００３２】
なお、ここでは、マスターＢのみグループ対応のマスターとしたが、グループ対応のマスターは複数あってもよい。また、グループ化部１０４の動作について、単純に２個ずつグループ化する動作としたが、これは、他の固定的なパターンでのグループ化でもよい。更には、グループ化部１０４の動作について、マスターの都合、状態に応じて制御することも可能である。例えば、シングルデータ転送が続く場合にのみグループ化を適用したり、多次元アドレッシングでアドレスの飛ぶ境界をグループ化の境界としたり、マスターの内部的な状態を見てトランザクション処理の遅延を許容できる場合にグループ化を行ったりしてもよい。
【００３３】
なお、本発明の実施形態は、例えばコンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。
【図面の簡単な説明】
【００３４】
【図１】本発明の構成図である。
【図２】従来の構成図である。
【図３】ＳＤＲＡＭアクセスタイミングの説明図である。
【図４】本発明を適用した場合のトランザクション処理順序の説明図である。
【符号の説明】
【００３５】
１０１：マスターＡ（グループ化対応なし）
１０２：マスターＢ（グループ化対応）
１０３：マスターＣ（グループ化対応なし）
１０４：グループ化部
１０５：相互接続部
１０６：メモリコントローラ
１０７：ＳＤＲＡＭ
１０８：キュー選択部
１０９：単独キュー
１１０：グループキュー
１１１：出力選択部
１１２：制御部
１１３：トランザクション（マスターＡ）
１１４：トランザクション（マスターＣ）
１１５：トランザクション（マスターＢ，Ｇ＝１）
１１６：トランザクション（マスターＢ，Ｇ＝０）
２０１：マスターＡ
２０２：マスターＢ
２０３：マスターＣ
２０４：相互接続部
２０５：メモリコントローラ
２０６：ＳＤＲＡＭ
２０７：トランザクションキュー
【図１】
2007328585.tif 000003
【図２】
2007328585.tif 000004
【図３】
2007328585.tif 000005
【図４】
2007328585.tif 000006