(57)【要約】【課題】効率的にＤＲＡＭに対してアクセスを行う。【解決手段】メモリマネージメントユニット１２は、複数のデータ処理エンジンからアクセスされるＳＤＲＡＭの調停を行う。メモリマネージメントユニット１２は、各データ処理エンジン１１−１〜１１−ｎから受け付けたＳＤＲＡＭ１３に対する任意量のデータ転送要求であるアクセスリクエストジョブを、１６ワードのデータ転送要求のジョブに分割し、分割したジョブ単位で各クライアント１１−１〜１１−ｎ対する調停を行う。【選択図】　図２
2004046371.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ処理装置からアクセスされるメモリ装置に設けられるメモリ制御装置において、
上記メモリ装置に対する任意量データのデータ転送要求を各データ処理装置から受け付け、受け付けたデータ転送要求を１以上の所定量データのデータ転送要求に分割する分割手段と、
上記分割手段により分割された所定量データのデータ転送要求単位で、各データ処理装置から受け付けたデータ転送要求の調停を行って、各データ転送要求の実行順序を決定する実行順序決定手段と、
上記実行順序決定手段により決定された実行順序で、所定量データのデータ転送要求に従った上記メモリ装置と各データ処理装置との間のデータ転送制御を行う制御手段と
を備えるメモリ制御装置。
【請求項２】
複数のデータ処理装置からアクセスされるメモリ装置に対するメモリアクセス制御方法において、
各データ処理装置から受け付けた上記メモリ装置に対する任意量データのデータ転送要求を、１以上の所定量データのデータ転送要求に分割し、
分割した所定量データのデータ転送要求単位で、各データ処理装置から受け付けたデータ転送要求の調停を行って、各データ転送要求の実行順序を決定し、
決定した上記実行順序で、所定量データのデータ転送要求に従った上記メモリ装置と各データ処理装置との間のデータ転送制御を行うこと
を特徴とするメモリアクセス制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のデータ処理装置からアクセスされるメモリ装置に設けられるメモリ制御装置、並びに、複数のデータ処理装置からアクセスされるメモリ装置に対するメモリアクセス制御方法に関するものである。
【０００２】
【従来の技術】
近年、大規模のシステム回路が広く開発されている。大規模のシステム回路では、多数のデータ処理エンジンが１つのシステム内に設けられている。一般にこのような大規模のシステム回路では、複数のデータ処理エンジンが１つのＤＲＡＭ（Ｄｙｎａｍｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）を共通に使用するユニファイドメモリアクセスシステムが採用されている。ユニファイドメモリアクセスシステムでは、通常、複数のデータ処理エンジンから１つのＤＲＡＭに対して発行されたデータ転送要求を調停するメモリマネージメントユニットが設けられている。
【０００３】
図６に、２つのデータ処理エンジン（以下、データ処理エンジンのことをクライアントと呼ぶ。）がＤＲＡＭに対して同時にデータ転送要求を発行し、メモリマネージメントユニットがそれらのデータ転送要求を調停する例を示す。
【０００４】
図６に示す例では、一回の転送要求に応じて転送するデータ量が、一方のクライアント（クライアントＡ）では１２８ワードとされ、他方のクライアント（クライアントＢ）では３２ワードとされている。ここで、クライアントＡは、図６（Ａ）に示すように、３回のデータ転送要求（転送要求ａ０，ａ１，ａ２）を行い、クライアントＢは、図６（Ｂ）に示すように、３回のデータ転送要求（転送要求ｂ０，ｂ１，ｂ２）を行うとする。メモリマネージメントユニットは、クライアントＡ及びクライアントＢからこのような転送要求を受け付けると、例えばクライアントＡからの転送要求とクライアントＢからの転送要求とを交互に実行するように、調停を行う。すると、ＤＲＡＭから各クライアントへのデータ転送、或いは、各クライアントからＤＲＡＭへのデータ転送は、図６（Ｃ）に示すように、ａ０，ｂ０，ａ１，ｂ１，ａ２，ｂ２の順で行われる。
【０００５】
【発明が解決しようとする課題】
ところで、図６に示した例で、クライアントＢのレイテンシ（クライアントＢがデータの転送要求をしてから実際にデータが転送されるまでの時間）は、クライアントＡが転送要求しているデータ転送量（ここでは、１２８ワード）に依存する。従って、クライアントＡのデータ転送量が大きいと、クライアントＢのレイテンシが長くなってしまう。
【０００６】
このように、ユニファイドメモリアクセスシステムでは、１回の転送要求で転送されるデータ量が少ないクライアントが、レイテンシの点で不利益が生じてしまっていた。
【０００７】
本発明は、このような従来の実情に鑑みて提案されたものであり、複数のデータ処理装置が効率的にメモリ装置に対してアクセスを行うことができるメモリ制御装置及びメモリアクセス制御方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明にかかるメモリ制御装置は、複数のデータ処理装置からアクセスされるメモリ装置に設けられるメモリ制御装置であって、上記メモリ装置に対する任意量データのデータ転送要求を各データ処理装置から受け付け、受け付けたデータ転送要求を１以上の所定量データのデータ転送要求に分割する分割手段と、上記分割手段により分割された所定量データのデータ転送要求単位で、各データ処理装置から受け付けたデータ転送要求の調停を行って、各データ転送要求の実行順序を決定する実行順序決定手段と、上記実行順序決定手段により決定された実行順序で、所定量データのデータ転送要求に従った上記メモリ装置と各データ処理装置との間のデータ転送制御を行う制御手段とを備える。
【０００９】
本発明にかかるメモリアクセス制御方法は、複数のデータ処理装置からアクセスされるメモリ装置に対するメモリアクセス制御方法であって、各データ処理装置から受け付けた上記メモリ装置に対する任意量データのデータ転送要求を、１以上の所定量データのデータ転送要求に分割し、分割した所定量データのデータ転送要求単位で、各データ処理装置から受け付けたデータ転送要求の調停を行って、各データ転送要求の実行順序を決定し、　決定した上記実行順序で、所定量データのデータ転送要求に従った上記メモリ装置と各データ処理装置との間のデータ転送制御を行うことを特徴とする。
【００１０】
本発明にかかるメモリ制御装置及びメモリアクセス制御方法では、各データ処理装置から受け付けたメモリ装置に対する任意量データのデータ転送要求を、１以上の所定量データのデータ転送要求に分割し、分割された所定量データのデータ転送要求単位で、各データ処理装置から受け付けたデータ転送要求の調停を行う。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態として、本発明を適用したデータ処理システムについて、図面を参照しながら詳細に説明する。
【００１２】
図１に、本発明の実施の形態のデータ処理システムのブロック構成図を示す。
【００１３】
本発明のデータ処理システム１は、図１に示すように、複数のデータ処理エンジン（以下、データ処理エンジンのことをクライアントと呼ぶ。）１１−１〜１１−ｎと、メモリマネージメントユニット（ＭＭＵ）１２と、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ　ＤＲＡＭ）１３とを備えて構成されている。
【００１４】
クライアント１１−１〜１１−ｎは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｏｒ）、画像エンコーダ、音声エンコーダ、画像デコーダ、音声デコーダ等の各種データ処理装置である。各クライアント１１−１〜１１−ｎは、バス１０を介してＭＭＵ１２と接続されている。
【００１５】
ＭＭＵ１２は、ＳＤＲＡＭ１３に対する各クライアント１１−１〜１１−ｎのアクセスの管理、ＳＤＲＡＭ１３のマッピングの管理等を行うハードウェアである。
【００１６】
ＳＤＲＡＭ１３は、クロック周波数に同期してデータ転送がされるメモリ装置である。ＳＤＲＡＭ１３は、ＭＭＵ１２を介して、各クライアント１１−１〜１１−ｎからアクセスがされる。
【００１７】
以上のような構成のデータ処理システム１では、各クライアント１１−１〜１１−ｎが自己の処理データをＳＤＲＡＭ１３に格納することが可能である。すなわち、このデータ処理システム１では、１つのＳＤＲＡＭ１３の格納領域を、複数のクライアントにより共有することができる。
【００１８】
各クライアント１１−１〜１１−ｎのＳＤＲＡＭ１３に対するアクセス手順について説明をする。
【００１９】
各クライアント１１−１〜１１−ｎは、ＳＤＲＡＭ１３のメモリ領域にアクセスを行う場合、つまり、ＳＤＲＡＭ１３に対してデータの書き込み又はデータの読み出しを行う場合には、まず、ＭＭＵ１２に対してアクセスリクエストジョブを発行する。
【００２０】
ＭＭＵ１２は、ある１つのクライアントからアクセスリクエストジョブを受け付けると、他のクライアントとからのアクセスリクエストジョブとの調停を図り、そのアクセスリクエストジョブの実行タイミングを決定する。そして、ＭＭＵ１２は、そのアクセスリクエストジョブに対する実行タイミングとなった時に、対応する１つのクライアントに対してイネーブル信号ＥＮを発行する。ＭＭＵ１２からイネーブル信号ＥＮを受け付けたクライアントは、そのイネーブル信号ＥＮが発行されている間、ＳＤＲＡＭ１３との間でデータの転送（データの書き込みのための転送、又は、データ読み出しのための転送）を行う。
【００２１】
なお、１回のアクセスリクエストジョブに伴うデータの転送量は、クライアントによって異なっている。例えば、あるクライアントＡは、１回のアクセスリクエストジョブによって例えば１２８ワード（ここでは、１ワードは３２ビット長のデータとする）のデータ転送を要求し、あるクライアントＢは、１回のアクセスリクエストジョブによって例えば３２ワードのデータ転送を要求する。また、同一のクライアントによるアクセスリクエストジョブに伴うデータの転送量は、一定でなくてもよい。ＭＭＵ１２は、異なるデータ転送量のアクセスリクエストジョブを受け付け、それらの調停を行う。
【００２２】
つぎに、ＭＭＵ１２についてさらに詳細に説明をする。
【００２３】
図２に、ＭＭＵ１２の内部構成図を示す。
【００２４】
ＭＭＵ１２は、図２に示すように、ジョブ分割部２１と、調停部２２と、アクセス制御部２３とを備えている。
【００２５】
ジョブ分割部２１内には、本データ処理システム１内の全クライアント１１−１〜１１−ｎに対応したジョブ分割機能ブロック２１−１〜２１−ｎが設けられている。各ジョブ分割機能ブロック２１−１〜２１−ｎは、対応するクライアント１１−１〜１１−ｎからアクセスリクエストジョブを受け付ける。ジョブ分割機能ブロック２１−１〜２１−ｎは、クライアント１１−１〜１１−ｎから受け付けたアクセスリクエストジョブを、所定量のデータの転送を要求する複数のジョブに分割する。
【００２６】
具体的に、ジョブ分割機能ブロック２１−１〜２１−ｎのジョブの分割処理を図３に示す。
【００２７】
ジョブ分割機能ブロック２１−１〜２１−ｎがクライアント１１−１〜１１−ｎから受け付けたアクセスリクエストジョブのデータ転送量が、（１６ｍ＋ｎ）ワードであったとする。ここで、ｍは０又は正の整数である。また、ｎは、０以上１５以下の整数である。ジョブ分割機能ブロック２１−１〜２１−ｎは、分割毎のジョブの基本転送単位が、１６ワードに設定されている。ジョブ分割機能ブロック２１−１〜２１−ｎは、受け付けたアクセスリクエストジョブを、１６ワードの基本転送単位の複数のジョブに分割する。つまり、１６ワードを転送する（ｍ＋１）個の新たなジョブを生成する。なお、ｎが０である場合には、ｍ個の転送要求ジョブを生成する。
【００２８】
なお、新たなジョブのデータ量は、各ジョブ分割機能ブロック２１−１〜２１−ｎが同一のデータ量のデータ転送要求を示すものであれば、１６ワードに限らず、１，２，４，８、３２，６４ワードなど、どのようなワード数であってもよい。ただし、本データ処理システムが取り扱うデータが、ＭＰＥＧ２又はＭＰＥＧ４の符号化データである場合、１６ワードが好ましい。
【００２９】
各ジョブ分割機能ブロック２１−１〜２１−ｎは、以上のように分割して生成した新たなジョブを、調停部２２に供給する。
【００３０】
調停部２２は、複数のジョブ分割機能ブロック２１−１〜２１−ｎから並列的に与えられた分割後の新たなジョブを、所定の調停方式に従って並べ替える。つまり、調停部２２は、１６ワードの転送要求を示すジョブ単位で、複数のクライアントに対する調停を行う。調停部２２の調停方式は、どのような方式であってもよい。
【００３１】
図４に、２つのクライアント（クライアントＡ，クライアントＢ）がＳＤＲＡＭ１３に対して同時にアクセスリクエストジョブを発行し、ＭＭＵがそのデータ転送要求を調停する調停方式の一例を示す。
【００３２】
クライアントＡは、一回のアクセスリクエストジョブで転送されるデータ量が１２８ワードとなっている。クライアントＢは、一回のアクセスリクエストジョブで転送されるデータ量が３２ワードとなっている。例えば、クライアントＡは、図４（Ａ）に示すように、３回のアクセスリクエストジョブ（Ａ０，Ｃ０，Ｅ０）を行うものとする。クライアントＢは、図４（Ｂ）に示すように、３回のアクセスリクエストジョブ（Ｂ０，Ｄ０，Ｆ０）を行うものとする。
【００３３】
ＭＭＵ１２は、クライアントＡ及びクライアントＢからこのようなアクセスリクエストジョブを受け付けると、それぞれのアクセスリクエストジョブを、１６ワード単位のジョブに分割する。ＭＭＵ１２は、クライアントＡから受け付けたアクセスリクエストジョブを図４（Ｃ）に示すように分割し、クライアントＢから受け付けたアクセスリクエストジョブを図４（Ｄ）に示すように分割する。
【００３４】
ＭＭＵ１２は、分割後の１６ワード単位のジョブで調停を行う。調停された後の実行順序は、図４（Ｅ）に示すようになる。すなわち、１６ワード単位で、クライアントＡに対するデータ転送とクライアントＢに対するデータ転送とが交互に行われる。
【００３５】
アクセス制御部２３は、調停部２２により調停がされたジョブに従い、各クライアント１１−１〜１１−ｎとＳＤＲＡＭ１３との間のデータ転送の制御を行う。具体的には、アクセス制御部２３は、データ転送タイミングとなった時に、そのクライアントに対してイネーブル信号を与えるとともに、クライアントとＳＤＲＡＭ１３との間のデータ転送を制御する。
【００３６】
図５に、図４（Ｄ）に示した調停後のジョブに対応したアクセス制御部２３によるデータの転送制御例を示す。
【００３７】
図５に示すように、アクセス制御部２３は、クライアントＡ及びクライアントＢからのアクセスリクエストジョブを受信した後、所定時間後からクライアントＡに対してイネーブル信号ＥＮを発行し、クライアントＡとの間で１６ワード分のデータの転送を行う。続いて、クライアントＢに対してイネーブル信号ＥＮを発行し、クライアントＢとの間で１６ワード分のデータの転送を行う。
【００３８】
以上のようにＭＭＵ１２では、各クライアント１１−１〜１１−ｎから受け付けたＳＤＲＡＭ１３に対する任意量のデータ転送要求であるアクセスリクエストジョブを、１６ワードのデータ転送要求のジョブに分割し、分割したジョブ単位で、各クライアント１１−１〜１１−ｎ対する調停を行う。
【００３９】
このことによりＭＭＵ１２では、各クライアント１１−１〜１１−ｎから与えられるデータ転送要求のデータ量に関わらず、各クライアント１１−１とＳＤＲＡＭ１３との間のデータ転送を効率的に制御することができる。特に、１回のアクセスリクエストジョブにより転送されるデータ量が少ないクライアントのレイテンシが向上する。
【００４０】
また、ＭＭＵ１２では、調停部２２自体を新たな回路とする必要がなく、従来の調停機能をそのまま利用することが可能である。すなわち、ジョブ分割機能ブロック２１−１〜２１−ｎから発生されるジョブは、転送するワード数が一定であるということだけで従来のジョブと同一なので、１回のデータ転送要求で転送されるデータ量が各クライアント毎に異なっている従来のシステムで用いていた調停機能をそのまま利用することができる。
【００４１】
【発明の効果】
本発明にかかるメモリ制御装置及びメモリアクセス制御方法では、各データ処理装置から受け付けたメモリ装置に対する任意量データのデータ転送要求を、１以上の所定量データのデータ転送要求に分割し、分割された所定量データのデータ転送要求単位で、各データ処理装置から受け付けたデータ転送要求の調停を行う。
【００４２】
このことにより本発明にかかるメモリ制御装置及びメモリアクセス制御方法では、各データ処理装置から与えられるデータ転送要求のデータ量に関わらず、各データ処理装置とメモリ装置との間のデータ転送を効率的に制御することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態のデータ処理装置のブロック構成図である。
【図２】メモリマネージメントユニットのブロック構成図である。
【図３】ジョブ分割ブロックによるジョブの分割について説明をするための図である。
【図４】分割をした後のジョブの調停について説明をするための図である。
【図５】クライアントとＳＤＲＡＭとの間のデータ転送タイミングについて説明をするための図である。
【図６】従来のクライアントとメモリとの間のデータの転送について説明をする図である。
【符号の説明】
１　データ処理システム、１１−１〜１１−ｎ　クライアント、１２　メモリマネージメントユニット、１３　ＳＤＲＡＭ、２１−１〜２１−ｎ　ジョブ分割ブロック、２２　調停部、２３　アクセス制御部
【図１】
2004046371.tif 000003
【図２】
2004046371.tif 000004
【図３】
2004046371.tif 000005
【図４】
2004046371.tif 000006
【図５】
2004046371.tif 000007
【図６】
2004046371.tif 000008