(57)【要約】  本発明は、少なくとも一つの第１の処理ユニット（ＣＰＵ）と、少なくとも一つの第２の処理ユニット（ＰＵ）と、少なくとも一つのメモリモジュール（ＭＥＭ）と、相互接続手段とを備えるデータ処理システムに関する。メモリモジュール（ＭＥＭ）は、上記少なくとも一つの第１及び第２の処理ユニット（ＣＰＵ，ＰＵ）からのデータを記憶する機能を果たす。相互接続手段は、メモリモジュール（ＭＥＭ）を第１及び第２の処理ユニット（ＣＰＵ，ＰＵ）に対して結合する。また、第１及び第２の処理ユニット（ＣＰＵ，ＰＵ）のメモリモジュール（ＭＥＭ）に対するアービトレーションを行うためにアービトレーションユニット（ＡＵ）が設けられている。アービトレーションは時間窓に基づいて行われる。第２の処理ユニット（ＰＵ）がメモリモジュールにアクセスした第１のアクセス時間と、第２の処理ユニット（ＰＵ）がその処理を完了するために依然として必要とする第２のアクセス時間とが所定の時間窓中にアービトレーションユニット（ＡＵ）により監視される。第２のアクセス時間は、時間窓における残余のアクセス時間と比較され、残余のアクセス時間が第２のアクセス時間よりも多い場合、アービトレーションユニット（ＡＵ）は、上記少なくとも一つの第１の処理ユニット（ＣＰＵ）が上記時間窓内においてメモリモジュールにアクセスできるようにする。残余のアクセス時間が第２のアクセス時間よりも多くない場合、アービトレーションユニット（ＡＵ）は、少なくとも一つの第１の処理ユニット（ＣＰＵ）のアクセスを制限するとともに、少なくとも一つの第２の処理ユニット（ＰＵ）がメモリモジュール（ＭＥＭ）にアクセスできるようにする。
2008515073.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つの第１の処理ユニットと、
少なくとも一つの第２の処理ユニットと、
前記少なくとも一つの第１及び第２の処理ユニットからのデータを記憶するための少なくとも一つのメモリモジュールと、
前記メモリモジュールを前記第１及び第２の処理ユニットに対して結合するための相互接続手段と、
前記第２の処理ユニットが前記メモリモジュールにアクセスした第１のアクセス時間と、前記第２の処理ユニットがその処理を完了するために必要とする第２のアクセス時間とを所定の時間窓の間に監視するとともに、前記時間窓における残余のアクセス時間と前記第２のアクセス時間とを比較することによって、前記第１及び第２の処理ユニットに関して前記メモリモジュールへのアクセスのためのアービトレーションを前記時間窓に基づいて行うアービトレーションユニットと、
を備え、
前記アービトレーションユニットは、前記残余のアクセス時間が前記第２のアクセス時間よりも大きい場合には前記少なくとも一つの第１の処理ユニットが前記時間窓内において前記メモリモジュールにアクセスすることを許可し、前記残余のアクセス時間が前記第２のアクセス時間よりも大きくない場合には前記少なくとも一つの第２の処理ユニットが前記メモリモジュールにアクセスすることを許可することを特徴とするデータ処理システム。
【請求項２】
前記第１の処理ユニットは、待ち時間クリティカル処理を行い、前記第２の処理ユニットは、リアルタイム処理を行うことを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
前記第２のアクセス時間は、前記少なくとも一つの第２の処理ユニットのトラフィック特性に基づいてランタイムの間に決定することができることを特徴とする請求項１又は２に記載のデータ処理システム。
【請求項４】
外部メモリへのアクセスを制御するためのメモリコントローラであって、少なくとも一つの第１の処理ユニット及び少なくとも一つの第２の処理ユニットから前記外部メモリのためのアクセス要求を受けるメモリコントローラにおいて、
前記第２の処理ユニットが前記メモリモジュールにアクセスした第１のアクセス時間と、前記第２の処理ユニットがその処理を完了するために必要とする第２のアクセス時間とを所定の時間窓の間に監視するとともに、前記時間窓における残余のアクセス時間と前記第２のアクセス時間とを比較することによって、前記第１及び第２の処理ユニットのための前記メモリモジュールへのアクセスのアービトレーションを前記時間窓に基づいて行うアービトレーションユニットを備え、
前記アービトレーションユニットは、前記残余のアクセス時間が前記第２のアクセス時間よりも大きい場合には前記少なくとも一つの第１の処理ユニットが前記時間窓内において前記メモリモジュールにアクセスすることを許可し、前記残余のアクセス時間が前記第２のアクセス時間よりも大きくない場合には前記少なくとも一つの第２の処理ユニットが前記メモリモジュールにアクセスすることを許可することを特徴とするメモリコントローラ。
【請求項５】
少なくとも一つの第１の処理ユニット及び少なくとも一つの第２の処理ユニットに関してメモリモジュールへのアクセスのためのアービトレーションを時間窓に基づいて行う方法であって、
前記第２の処理ユニットが前記メモリモジュールにアクセスした第１のアクセス時間を監視するステップと、
所定の時間窓の間に前記第２の処理ユニットがその処理を完了するために必要とする第２のアクセス時間を監視するステップと、
所定の時間窓の間に、前記第２のアクセス時間を、前記時間窓における残余のアクセス時間と比較するステップと、
を含み、
残余のアクセス時間が前記第２のアクセス時間よりも大きい場合には、前記少なくとも一つの第１の処理ユニットが前記時間窓内において前記メモリモジュールにアクセスすることを許可され、前記残余のアクセス時間が前記第２のアクセス時間よりも大きくない場合には、前記少なくとも一つの第２の処理ユニットが前記メモリモジュールにアクセスすることを許可されることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム、メモリコントローラ及びメモリアービトレーションのための方法に関する。
【背景技術】
【０００２】
中央処理ユニットＣＰＵやいくつかの専用処理ユニットＰＵのような複数のデータ処理ユニットを備えるデータ処理システムにおいて、通信は、通常、バス又は相互接続ネットワークを介して行われ、また、データは中央メモリに記憶される。中央処理ユニットＣＰＵは、プログラマブル処理機能を実施し得る。そのようなデータ処理システムでは、複数の処理ユニットがメモリ資源を共有するため、どのデータ処理ユニットが共用メモリへのアクセスを許容されるのかを決定するために共用資源のアービトレーションを実施しなければならない。そのようなアービトレーションは、共用資源へのアクセスの要求をスケジュールして、メモリが一つの要求を１回で処理すれば済むようにするとともに、高い優先順位を有するデータ処理ユニットからの要求が他のデータ処理ユニットからの要求よりも頻繁に処理されるようにする。従って、利用可能なメモリバス容量は、各データ処理ユニットごとに一つの帯域幅限界へ分けられる。アービトレーションが適切に行われない場合、いくつかのデータ処理ユニットは、バスにアクセスするために長い時間に亘って待たなければならない場合がある。一方、リアルタイム処理を実施しなければならないデータ処理ユニットは、それらの要求されたリアルタイム処理を実行できなくなる場合があり、それにより、結果としてシステムの性能の低下が深刻になったり、又は、システムの性能が機能しなくなる場合さえある。アービトレーションのための標準的な方法としては、ＴＤＭＡ、優先順位固定アクセス、ラウンドロビン等が挙げられる。これらの標準的なアービトレーション方式の組み合わせも使用される。
【０００３】
一つのチップ即ち一つのシステムオンチップＳｏＣ上におけるいくつかのプログラマブル又は専用処理ユニットＰＵの集積化が高まることにより、異なる種類のトラフィック制約を有するオンチップトラフィックが存在する場合がある。そのようなトラフィック制約としては、ハードリアルタイムＨＲＴ、ソフトリアルタイムＳＲＴ、ベストエフォートＢＥ、待ち時間クリティカル（レイテンシークリティカル）ＬＣ等を挙げることができる。一つのシステムオンチップに実装されるメモリの大きさは全体のコストに関する重大な要因であるため、通常、共用メモリが設けられる。そのようなメモリは、ＳＤＲＡＭメモリのような外部メモリであってもよい。従って、リアルタイム処理を実施する専用処理ユニットは、待ち時間クリティカル処理を実施するプログラマブル処理ユニットと相互接続部及び共用メモリを共有しなければならない。そのようなシステムにおける課題は、ハードリアルタイム処理を実行するデータ処理ユニットのためのエージェント及び待ち時間クリティカル処理を実行するデータ処理ユニットのためのエージェントに亘ってメモリ帯域幅を分配することである。アービトレーションは、少ない待ち時間を要求するエージェントに待ち時間が少ないアクセスが与えられる一方でリアルタイム処理に必要な保証が満たされるように実行されなければならない。
【０００４】
これらの保証を確保するための一つの方法は、ハードリアルタイムトラフィックに対して固定された時間窓（ｆｉｘｅｄ  ｗｉｎｄｏｗｓ）を与えることであり、この時間窓の間に亘って、待ち時間が少ない他のトラフィックが阻止されるとともに、ハードリアルタイム処理に関連付けられたエージェントに高い優先順位が与えられる。これにより、ハードリアルタイム保証が維持される場合があるが、ハードリアルタイム処理のための固定窓の間に亘る待ち時間の少ないトラフィックに関してかなりの待ち時間が生じる。
【０００５】
当該要件を解決するための更なる方法は、待ち時間が少ないトラフィックによって使用され得る帯域幅を制限して、待ち時間クリティカルトラフィック（待ち時間が重要視されるトラフィック）が帯域幅を過度に使用すると直ちに当該トラフィックが阻止されるようにすることである。しかしながら、そのようなアービトレーション方式は、メモリへのアクセスの効率が様々なトラフィックタイプにおいて異なる場合があるため、ハードリアルタイム要件の違反を引き起こす場合がある。また、そのようなアービトレーション方式は、広範囲に及ぶ細かい調整を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、リアルタイム保証が依然として維持されるようにしつつ、待ち時間クリティカル処理（待ち時間が重要視される処理）のために待ち時間が少ないアクセスを行うことができるデータ処理システム、メモリコントローラ及びメモリアービトレーションのための方法を提供することである。
【課題を解決するための手段】
【０００７】
この目的は、請求項１に係るデータ処理システムによって、請求項４に係るメモリコントローラによって、請求項５に係るメモリアービトレーションのための方法によって解決される。
【０００８】
従って、少なくとも一つの第１の処理ユニットと、少なくとも一つの第２の処理ユニットと、少なくとも一つのメモリモジュールと、相互接続手段とを備えるデータ処理システムが提供される。メモリモジュールは、上記少なくとも一つの第１及び第２の処理ユニットからのデータを記憶する機能を果たす。相互接続手段は、メモリモジュールを第１及び第２の処理ユニットに対して結合する。また、第１及び第２の処理ユニットのメモリモジュールに対するアービトレーションを行うためにアービトレーションユニットが設けられている。アービトレーションは時間窓に基づいて行われる。第２の処理ユニットがメモリモジュールにアクセスした第１のアクセス時間と、第２の処理ユニットがその処理を完了するために依然として必要とする第２のアクセス時間とが所定の時間窓中にアービトレーションユニットにより監視される。監視された第２のアクセス時間は、時間窓における残余のアクセス時間と比較され、残余のアクセス時間が第２のアクセス時間よりも多い場合、アービトレーションユニットは、上記少なくとも一つの第１の処理ユニットが上記時間窓内においてメモリモジュールにアクセスできるようにする。残余のアクセス時間が第２のアクセス時間よりも多くない場合、アービトレーションユニットは、少なくとも一つの第１の処理ユニットのアクセスを制限するとともに、少なくとも一つの第２の処理ユニットがメモリモジュールにアクセスできるようにする。
【０００９】
従って、第２の処理ユニットの処理にとって十分な帯域幅及びアクセス時間が存在する限り、第１の処理ユニットからの処理に対して高いアクセス優先順位が与えられる一方で、第２の処理ユニットの処理に関して最小帯域幅が確実に維持される。
【００１０】
本発明の一態様によれば、第１の処理ユニットが待ち時間クリティカル処理を行い、第２の処理ユニットがリアルタイム処理を行う。従って、リアルタイム処理のための要件は、これらの処理のための最小帯域幅を関連付けることにより満たされ、一方、待ち時間クリティカル処理には、これらがメモリへの過度なアクセスを要求しない限り、待ち時間が少ないアクセスが与えられる。
【００１１】
本発明の更なる態様によれば、第２のアクセス時間は、処理ユニットのトラフィック特性に基づいてランタイム中に予め規定することができ又は決定することができる。処理ユニットがその要件に違反するに「近い」場合、相互接続手段は、特定のＰＵからのアクセス要求がアービトレーションユニットに見えるようにする。従って、待ち時間クリティカル処理及びリアルタイム処理の異なる要件の細かい調整を行うことができる。
【００１２】
また、本発明は、外部メモリへのアクセスを制御するためのメモリコントローラに関する。メモリコントローラは、少なくとも一つの第１の処理ユニット及び少なくとも一つの第２の処理ユニットから外部メモリのためのアクセス要求を受ける。メモリコントローラは、第１及び第２の処理ユニットのメモリアービトレーションを行うためのアービトレーションユニットを備えている。アービトレーションは、時間窓に基づいて行われる。処理ユニットがメモリモジュールＭＥＭにアクセスした第１のアクセス時間と、第２の処理ユニットがその処理を完了するために必要とする第２のアクセス時間とが所定の時間窓中にアービトレーションユニットにより監視される。第２のアクセス時間は、時間窓における残余のアクセス時間と比較され、残余のアクセス時間が第２のアクセス時間よりも多い場合、アービトレーションユニットは上記少なくとも一つの第１の処理ユニットが上記時間窓内においてメモリモジュールにアクセスできるようにする。残余のアクセス時間が第２のアクセス時間よりも多くない場合には、アービトレーションユニットは、少なくとも一つの第１の処理ユニットのアクセスを制限するとともに、少なくとも一つの第２の処理ユニットがメモリモジュールにアクセスできるようにする。
【００１３】
また、本発明は、少なくとも一つの第１の処理ユニット及び少なくとも一つの第２の処理ユニットからメモリモジュールへのアクセスのアービトレーションを行うための方法に関する。アクセス要求は、少なくとも一つの第１の処理ユニット及び少なくとも一つの第２の処理ユニットから外部メモリに関して受けられる。第１及び第２の処理ユニットのメモリアービトレーションが行われる。アービトレーションは時間窓に基づいて行われる。第２の処理ユニットがメモリモジュールにアクセスした第１のアクセス時間と、第２の処理ユニットがその処理を完了するために必要とする第２のアクセス時間とが所定の時間窓中にアービトレーションユニットにより監視される。第２のアクセス時間は、時間窓における残余のアクセス時間と比較され、残余のアクセス時間が第２のアクセス時間よりも多い場合には、上記少なくとも一つの第１の処理ユニットが上記時間窓内においてメモリモジュールにアクセスすることができる。残余のアクセス時間が第２のアクセス時間よりも多くない場合には、少なくとも一つの第１の処理ユニットのアクセスが制限され、少なくとも一つの第２の処理ユニットがメモリモジュールにアクセスすることができる。
【発明を実施するための最良の形態】
【００１４】
本発明のこれらの態様及び他の態様はここに記載された実施の形態から明らかであり、当該実施の形態を参照しながら上記態様について説明する。
【００１５】
図１には、本発明に係るシステムオンチップの基本的な構成が示されている。そのようなシステムオンチップは、共有メモリＭＥＭと、いくつかのプログラマブル処理ユニットＣＰＵと、専用の処理のためのいくつかの処理ユニットＰＵと、プログラマブル処理ユニット及び専用処理ユニットＣＰＵ，ＰＵにおけるメモリアービトレーション（メモリ仲裁）を行うためのアービトレーションユニットＡＵとを備えている。処理ユニットＰＵは、対応するＦＩＦＯ  ＦＦを介してレベル１アービトレーションユニットＡＵ１に対して接続されている。レベル１アービトレーションユニットＡＵ１は、アービトレーションユニットＡＵに対して結合されている。又は、処理ユニットＰＵは、アービトレーションユニットＡＵに接続されていてもよい。
【００１６】
アービトレーションユニットＡＵは時間窓（ｔｉｍｅ  ｗｉｎｄｏｗｓ）を与え、この時間窓の間に亘って、専用処理ユニットＰＵのうちの一つからの処理がハードリアルタイムに基づいて行われ得る。そのような時間窓は、ハードリアルタイム保証された帯域幅の半分であってもよい。しかしながら、必要とされるハードリアルタイム保証を満たすためには、専用処理ユニットＰＵからのプログラム可能な数のハードリアルタイムデータ転送がそのような窓の範囲内において行われなければならない。時間窓内の各サイクル中、アービタユニットＡＵは、ハードリアルタイム処理を行う専用処理ユニットＰＵからのエージェント、即ち、ＨＲＴエージェントからのデータ転送量を監視する。この特定のトラフィックタイプのためのメモリインタフェース効率概算値に基づいて、アービタユニットＡＵは、ＨＲＴエージェントがその残余の転送を行うためにあといくつのサイクルが必要とされているのかを計算する。その後、アービタユニットＡＵは、この計算された時間と現在の時間窓に残っている時間とを比較する。残余の時間が計算された概算値よりも少ない場合又は近い場合、ＨＲＴエージェントは、バス及びメモリモジュールＭＥＭへのアクセスに最も高い優先順位が与えられる。
【００１７】
動作において、アービタユニットＡＵは、最初に、待ち時間が少ないアクセスを行うために、プログラマブル処理ユニットＣＰＵからの待ち時間クリティカルトラフィック（待ち時間が重要視されるトラフィック）に高い優先順位を与える。アービタユニットＡＵは、例えば散発的なプロセッサキャッシュミスに起因して待ち時間クリティカルトラフィックが存在しない任意の空のタイムスロットにＨＲＴトラフィックを配置することを試みる。時間窓の処理中、待ち時間クリティカルトラフィックがメモリモジュールＭＥＭへの過度なアクセスを要求する場合、アービタはＨＲＴトラフィックへ優先順位を切り換え、それにより、アービタユニットＡＵは、プログラマブルリアルタイム要件に違反しつつある（違反するに近い）ことを検出する。従って、本発明に係るアービタユニットＡＵは、ＨＲＴ帯域幅保証を与えるようになっており、リアルタイム要件に実際に違反する虞があるときにだけ待ち時間ヒットを生成する。
【００１８】
ハードリアルタイムトラフィックのアービトレーションは、大きな問題を課さない。これは、この種のトラフィックが非常に明確なトラフィックタイプであり、そのため、実際のトラフィックの正確な評価により、効率低下を引き起こす場合があるエージェント間の過度な切り換えを防止することができるからである。
【００１９】
以下、本発明の第２の実施の形態に係るメモリコントローラについて説明する。メモリコントローラは、専用処理ユニットＰＵが接続され得るいくつかのダイレクトメモリアクセスＤＭＡポートを備えている。また、メモリコントローラは、外部メモリモジュールＭＥＭに対して接続され得るものであり、メモリモジュールへのプログラマブル処理ユニットＣＰＵ及び専用処理ユニットＰＵのアクセスを制御するようになっている。メモリコントローラ内には、特定の処理要件、即ち、ポートにより転送されるべきデータ要素の数、このデータ転送が行われるべきサイクル数、ポート転送のための更に悪いケースの効率概算値をアービタユニットに伝えるためのいくつかのプログラム可能な値が存在する。これらのプログラミング値は、ＨＲＴ制約を有する処理ユニットＰＵが存在するポートのために存在することが好ましい。
【００２０】
第２の実施の形態に係るメモリアービトレーションを行うため、メモリコントローラ内に三つのレジスタが実装される。第１のレジスタＤＭＡ ＡＲは、ＤＭＡポートにより、即ち、プログラマブル処理ユニット又は専用処理ユニットＣＰＵ，ＰＵのうちの一方により必要とされるアクセス数のためのプログラムレジスタを構成する。第２のレジスタＤＭＡ ＱＬも同様に、第１のレジスタＤＭＡ ＡＲ転送が行われるべき時間窓におけるサイクル数に関するプログラムレジスタである。第３のレジスタＤＭＡ ＥＥも同様に、ＤＭＡ転送効率、即ち、ＨＲＴ制約を有するＰＵからのトラフィックにおけるメモリバス効率に関する概算値のためのプログラムレジスタである。その値は、０．５、即ち、５０％効率として選択されてもよい。
【００２１】
また、メモリコントローラは二つの内部カウンタを備えている。第１のカウンタＤＭＡ ＡＣは、量子内又は時間窓内のＤＭＡ転送数を数えるために使用される。このカウンタは、各ＤＭＡコマンドの後、又は、処理ユニットＰＵからの各コマンド若しくは転送の後に、バーストサイズ分だけ増加させられる。第２のカウンタＤＭＡ ＱＣは、量子、即ち、時間窓において現在行われているサイクル数を数えるために使用される。このカウンタは、第２のレジスタＤＭＡ ＱＬ内に記憶される値が量子の限界となる各サイクルごとに１だけ増加させられる。
【００２２】
従って、第１のレジスタＤＭＡ ＡＲの値−第１のカウンタＤＭＡ ＡＣにおける値が第２のレジスタＤＭＡ ＱＬの値−第２のカウンタＤＭＡ ＱＣの値×第３のレジスタＤＭＡ ＥＥの値よりも大きい場合、即ち、ＤＭＡ ＡＲ−ＤＭＡ ＡＣ＞＝（ＤＭＡ ＱＬ−ＤＭＡ ＱＣ）×ＤＭＡ ＥＥである場合には、ＤＭＡ帯域幅のための保証が維持されない場合があり、また、プログラマブル処理ユニットＣＰＵからの要求を受け入れるためのスペースが無い。即ち、この量子内において依然として行われる必要がある転送の数が量子内において行うことができる更なる転送量の概算値以上である場合、ＤＭＡポートからの処理に最も高い優先順位が割り当てられる。この条件が偽である場合、アービタユニットＡＵは、ＤＭＡ帯域幅保証を維持することができ且つＣＰＵトラフィックのための帯域幅を割り当てることができる、即ち、ＣＰＵからのトラフィックが更に高い優先順位を有していると決定する。これは、アービトレーションサイクルごとにチェックされることが好ましい。また、この計算にマージを加えるために閾値を使用することができ、これにより、ＤＭＡ ＡＲ−ＤＭＡ ＡＣ＋ＤＥＬＴＡ＞＝（ＤＭＡ ＱＬ−ＤＭＡ ＱＣ）×ＤＭＡ ＥＥとなる。
【００２３】
もう一つの方法として好ましくは、窓内において行うために残されている転送数が、窓内において既に行われた転送の代わりに数えられる。従って、０から数え上げる代わりに、第１のカウンタＤＭＡ ＡＣは、ＤＭＡ ＡＲに初期化されるとともに、それが０に達するまで、行われるアクセス数だけデクリメントされる。即ち、量子内において既に行われたサイクルの代わりに、量子内に残されているサイクル数が数えられる。また、第２のカウンタＤＭＡ  ＱＣは、時間窓の初めにＤＭＡ ＱＬに初期化されるとともに、それが０に達するまでサイクルごとに１だけ減少させられる。インクリメントからデクリメントへの変化に起因して、上記方程式の「マイナス」がもはや必要なくなる。この計算のためにＤＭＡ ＡＣの値を直接に使用することができる。従って、第１のレジスタＤＭＡ ＡＣの値が第２のカウンタＤＭＡ ＱＣの値×第３のレジスタＤＭＡ ＥＥの値よりも大きい場合、即ち、ＤＭＡ ＡＣ＞＝（ＤＭＡ ＱＣ）×ＤＭＡ ＥＥである場合には、ＤＭＡ帯域幅のための保証が維持されない場合があり、また、プログラマブル処理ユニットＣＰＵからの要求を受け入れるためのスペースが無い。また、この計算にマージを加えるために閾値を使用することができ、これにより、ＤＭＡ ＡＣ＋ＤＥＬＴＡ＞＝（ＤＭＡ ＱＣ）×ＤＭＡ ＥＥとなる。
【００２４】
従って、各時間窓ごとに、アービタユニットＡＵは、待ち時間が少ないトラフィックを可能にするために最初にメモリモジュールＭＥＭへのＣＰＵアクセスからのトラフィックを許可する。ＤＭＡポートからのトラフィックは、ＣＰＵポートがアイドル状態であり要求を発しないときはいつでもシフトされる。
【００２５】
しかしながら、ＣＰＵからのトラフィックの負荷が比較的小さい場合、そのようなプロセスは、ＤＭＡ帯域幅要件を保持することができる。一方、ＤＭＡ帯域幅要件に違反する危険があるメモリへの過度なアクセスをＣＰＵからのトラフィックが要求する場合、アービタユニットＡＵは、ＤＭＡ帯域幅要件を再び維持することができるまで、ＣＰＵトラフィックからのアクセス要求を阻止する。
【００２６】
レジスタのプログラミングは、非常に簡単であり、処理要件に基づいて決定することができる。ＣＰＵからの処理トラフィックは、ＤＭＡ帯域幅のための保証が危険に晒されないようにＣＰＵトラフィックがメモリモジュールＭＥＭへの過度なアクセスを要求しない限り、待ち時間の少ないアクセスが許可される。前述したアービトレーション技術は、データ転送及びサイクルに関する帯域幅における絶対値に基づいているため、既知のアービトレーション方式と比べて精度を高めることができる。また、帯域幅、即ち、正味帯域幅に関する特定の保証を（転送の実際の数に基づいて）量子ごとに与えることができる。本発明に係るアービトレーション技術は、ダブルデータレートＤＤＲであってもよいメモリ通信の効率の変化に寛容である。ＤＤＲ通信の効率が変化させられる場合には、これにより、ＤＭＡトラフィックのための最小帯域幅要件が異なってくる。即ち、エージェントからのトラフィックに起因してＤＤＲインタフェースの効率が変化する場合でも、特定のＨＲＴエージェントにおける効率概算値（ＤＭＡ ＥＥとしてプログラムされる）が同じままである限り、ＨＲＴ要件は必ず満たされる。
【００２７】
図２は、図１とは異なる処理ユニットからのトラフィックを例示するグラフを示している。ここで、Ｐ０ ＢＷは、メモリコントローラのポート０によって費やされる帯域幅に関するものである。ポート０は、特に第１レベルアービトレーション後に総てのリアルタイム処理のために与えられるメモリコントローラのＤＭＡポートを構成している。ポートは、ソフトリアルタイム（ＳＲＴ）トラフィック及びハードリアルタイム（ＨＲＴ）トラフィックの両方を含み得る。第１レベルアービトレーションは、ＨＲＴトラフィックが存在するときにＳＲＴトラフィックが遅延させられるように、ＨＲＴトラフィックに対して更に高い優先順位が与えられるようにする。Ｐ１ ＢＷ，Ｐ２ ＢＷ，Ｐ３ ＢＷは、ポート１，２，３のそれぞれによって費やされる帯域幅に関するものである。これらの三つのポートは、プログラマブル処理ユニットＣＰＵのために使用される。ＣＰＵポートは、それらのトラフィックに対するＨＲＴ制約を有していないが、少ない待ち時間要件を有している。
【００２８】
図２は、ここで与えられた上記方式がシミュレーション環境へコード化されて実行されるときのいくつかの結果を表している。Ｘ軸は、メモリコントローラに適用される異なるトラフィック条件を表している。最も左側の場合では、ＣＰＵポート（ｐ１，ｐ２，ｐ３）におけるトラフィックが少ない。場合を右側へと移すにつれて、ＣＰＵポートからのトラフィックが徐々に増大する。Ｙ軸は、それぞれのポートによって使用されるメモリバス帯域幅のパーセンテージを表している。最も左側の場合では、ＣＰＵからのトラフィックが少ないため、帯域幅の大部分がポート０（ＨＲＴ制約も伴うＤＭＡポート）によって使用される。左から右へ向かってＣＰＵトラフィックが増大するにつれて、ＣＰＵの帯域幅消費が増大し、その結果、ＤＭＡポートｐ０の帯域幅消費が減少する。これらの条件下（左から場合１，２，３）においてＣＰＵアクセスには少ない待ち時間が与えられる。この動向は、ＣＰＵトラフィックがＤＭＡ  ＨＲＴ制約を脅かさない場合に一貫して見られる。
【００２９】
最も右側の二つの場合（場合４，５）は、前述した帯域幅保証方式がＤＭＡ  ＨＲＴデッドラインに保護を与えるケースを示している。これらのケースでは、ＣＰＵ帯域幅要求が非常に増大するため、ＤＭＡ  ＨＲＴ保証が脅かされ、従って、ＣＰＵ要求が阻止される。結果は、ＣＰＵ帯域幅要求が増大し続ける場合にコントローラにプログラムされた値に従ってＨＲＴエージェントが適切な帯域幅を受けることをシステムが確保することを示している。
【００３０】
図３は、図１に係るシステムの共有メモリへのアクセスの図解を示している。ここには、メモリアクセスの三つの例が示されている。上側の例は、少ない待ち時間で扱うことができるＣＰＵからの少ないトラフィックＴＣＰＵを示している。ＣＰＵからのアクセスＴＣＰＵは、通常の優先順位ＤＭＡ ＮＰを有するＤＭＡポートからのトラフィックも均一に分散させることができるように、均一に分散させられる。真ん中の例は、少ない待ち時間で処理される高いＣＰＵトラフィックＴＣＰＵを伴う状況を示している。しかしながら、ＣＰＵトラフィックＴＣＰＵは、ＨＲＴデッドラインが脅かされるまでしか処理されない。その後、ＤＭＡ高優先順位トラフィックＤＭＡ ＨＰが処理される。下側の例は、非常に高いＣＰＵトラフィックＴＣＰＵを伴う状況を示している。このトラフィックＴＣＰＵは、ＨＲＴデッドラインが脅かされるまで少ない待ち時間で処理される。その後、ＣＰＵトラフィックＴＣＰＵが阻止され、ＤＭＡ高優先順位トラフィックＤＭＡ ＨＰが処理される。
【００３１】
前述したアービトレーション技術は、リアルタイム処理を行うための専用の処理ユニットＰＵを備えていることがあり且つプログラマブル処理ユニットＣＰＵ上で実行するアプリケーションを備えていることがある、オーディオ−ビデオ用途におけるシステムオンチップにおいて適用されてもよい。あるいは、アービトレーション方式がモバイルソリューションにおいて実施されてもよい。上記方式は、リアルタイムでない待ち時間クリティカル処理を伴う共用資源を用いたリアルタイム処理（オーディオ−ビデオ等）において使用される。
【００３２】
ハードリアルタイムトラフィックＨＲＴは、ＤＭＡエージェント、即ち、比較的短い期間内において実行されなければならないＤＭＡ処理の帯域幅要件に関するものである。この帯域幅要件の違反が機能領域をもたらす場合がある。そのようなトラフィックの例は、オーディオ及びビデオの入力及び出力である。
【００３３】
ソフトリアルタイムトラフィックは、ハードリアルタイムトラフィックと比べて比較的長い期間内において満たされるべきＤＭＡエージェントの帯域幅要件に関するものである。このエージェントの例は、メモリベースの（ｍｅｍｏｒｙ  ｂａｓｅｄ）ビデオコプロセッサであり得る。
【００３４】
一つのタイムスロットを見逃すと深刻な結果が生じる場合があるため、ハードリアルタイムトラフィックにおけるデッドラインは、総てのタイムスロットにおいて維持されなければならない。ソフトリアルタイムトラフィックにおけるデッドラインは、複数のタイムスロットの期間に亘って分布させられる。従って、ソフトリアルタイムトラフィックが一つのタイムスロット内において十分な帯域幅を得ない場合には、システム全体が依然として機能するようにその後のタイムスロット内において帯域幅を取得することが可能となる。
【００３５】
本発明は、専用処理ユニットＰＵからのトラフィックのための最小帯域幅要件をこの処理ユニットＰＵからのトラフィックが区別されないように与えるための概念に基づいている。専用処理ユニットＰＵからのトラフィックのための帯域幅要件の効率に基づく予測を与えないと、ＣＰＵからの待ち時間クリティカルトラフィックにおける待ち時間が増大する場合がある。専用処理ユニットＰＵからのＨＲＴトラフィックがどれ位の期間に亘って遅延できるのかについての情報をアービタユニットＡＵが有していない場合には、リアルタイムデッドラインに違反しないようにするために、ＨＲＴトラフィックがタイムスロット又は時間窓の初めに関連付けられる。しかしながら、ＣＰＵからの待ち時間クリティカルトラフィックがタイムスロットの最初の部分の間に亘ってメモリモジュールＭＥＭへのアクセスを要求する場合には、ＨＲＴトラフィックに対して高い優先順位が与えられるため、その要求が阻止される場合がある。
【００３６】
前述したアービトレーション方式は、ＳＤＲＡＭインタフェースを有するメモリコントローラにおいて実施されてもよい。そのようなメモリコントローラにおいて、インタフェースの効率値は、実際のトラフィックタイプに応じて３０％乃至９０％の間で変化する場合がある。専用処理ユニットＰＵは、通常は所定のトラフィックタイプを有しているため、そのようなトラフィックタイプにおける効率値は、リアルタイムデッドラインを予測し且つこのデッドラインを維持できるかどうかを予測するために使用され得る。これらの値に基づいて、アービタユニットは、専用処理ユニットＰＵからのリアルタイムトラフィック要求のうちのどれが、このトラフィックのリアルタイムデッドラインが脅かされる前に遅延させられてもよいのかを監視する。
【００３７】
即ち、上記実施の形態に係るアービトレーション方式は、ＣＰＵからの待ち時間クリティカルトラフィックに関する最大帯域幅限界を規定するのではなく、専用処理ユニットＰＵからのトラフィックに関する最小帯域幅限界を規定する。これは、プログラマブル処理ユニットＣＰＵからのトラフィックが専用処理ユニットＰＵからのトラフィックよりも予測が難しいため、特に有利である。リアルタイム要件の提供が妨害されることがある場合においては、ＣＰＵからのトラフィックだけが阻止される。効率計算に基づいて、アービタユニットＡＵは、そのような妨害が可能な時期を決定することができる。
【００３８】
専用処理ユニットＰＵが例えば１００サイクルに１０個のデータ項目を必要とする場合には、以下のケースが起こり得る。
【００３９】
サイクル１乃至１０は、処理ユニットのデータ転送に関係する。
【００４０】
サイクル１１乃至１９０は、他のデータ転送に関係する。
【００４１】
サイクル１９１乃至２９０は、処理ユニットからのデータ転送に関係する。
【００４２】
ここで、１０個のデータ項目は、最初の１００サイクルにおいて専用処理ユニットＰＵのために転送され、次の１０個のデータ項目は次の１００サイクル中に転送される。しかしながら、この方式を用いると、例えばサイクル５０乃至１５０の間においてデータ項目がこの１００サイクルの期間に専用処理ユニットから転送されなかったとき、即ち、要件に違反しているときに、リアルタイム要件は維持されない。
【００４３】
しかしながら、５個のデータ要素が５０サイクルごとに転送される場合、即ち、実際の要件の半分である場合には、例えば、
サイクル１乃至５が、処理ユニットからのデータ転送に関係し、
サイクル６乃至９５が、他のデータ転送に関係し、
サイクル９６乃至１００が、処理ユニットからのデータ転送に関係する。
【００４４】
従って、１００サイクルごとに、どの１００サイクルが選択されるかに拘わらず、１０個のデータ項目が転送される。
【００４５】
ＤＭＡ転送の効率は、ＤＭＡトランザクションがメモリコントローラに与えられる場合には、ＳＤＲＡＭインタフェースの効率に関係する。専用処理ユニットＰＵのそれぞれは、それ自体のトラフィックタイプを備えるものである。
【００４６】
ＤＲＡＭインタフェースは、１サイクルごとに一つのデータ項目を転送することができず、また、処理オーバーヘッドに起因して１サイクル中のデータ転送の実際の数は少ない。そのようなオーバーヘッドは、ＳＤＲＡＭリフレッシュ、起動信号、プリチャージコマンド等であってもよい。それぞれのデータ転送サイクルの実際のパーセンテージが効率と称される。インタフェースのそのような効率は、メモリコントローラにより処理されるトラフィックに大きく依存している。１２８バイトラインリニア（ｌｉｎｅｄ  ｌｉｎｅａｒ）転送トラフィックは、４バイトのアラインメントされていないランダムにアドレス指定されるトラフィックよりも非常に高い効率を有している。これは、そのような場合においては、コントローラが行（ロウ）を頻繁に開閉するためにオーバーヘッドを必要とするからである。
【００４７】
尚、上述した実施の形態は、例示であって本発明を限定するものではなく、また、当業者であれば添付の請求項の範囲から逸脱することなく多くの他の実施の形態を設計することができる。請求項中、括弧内の任意の参照符号は、請求項を限定するものと解釈されるべきではない。用語「備える、含む（ｃｏｍｐｒｉｓｉｎｇ）」は、請求項中に記載された要素又はステップ以外の要素又はステップの存在を排除するものではない。要素に先行する用語「一つの（ａ，ａｎ）」は、そのような要素の複数の存在を排除するものではない。いくつかの手段を列挙する装置の請求項において、これらの手段のうちのいくつかは、ハードウェアの一つの同じ項目によって具現化することができる。特定の手段が互いに異なる従属請求項中に挙げられているという事実だけで、これらの手段の組み合わせを有利に使用することができないということを示唆するものではない。
【００４８】
また、請求項中の任意の参照符号は、請求項の範囲を限定するものと解釈されるべきではない。
【図面の簡単な説明】
【００４９】
【図１】本発明に係るシステムオンチップの基本的な構成を示している。
【図２】図１のいくつかの処理ユニットのための帯域幅の使用を図解するグラフを示している。
【図３】図１に係るシステムの共有メモリへのアクセスの図解を示している。
【図１】
2008515073.tif 000003
【図２】
2008515073.tif 000004
【図３】
2008515073.tif 000005
【手続補正書】
【提出日】平成19年6月1日(2007.6.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも一つの第１の処理ユニットと、
少なくとも一つの第２の処理ユニットと、
前記少なくとも一つの第１及び第２の処理ユニットからのデータを記憶するための少なくとも一つのメモリモジュールと、
前記メモリモジュールを前記第１及び第２の処理ユニットに対して結合するための相互接続手段と、
前記第２の処理ユニットが前記メモリモジュールにアクセスした第１のアクセス時間と、前記第２の処理ユニットがその処理を完了するために必要とする第２のアクセス時間とを所定の時間窓の間に監視するとともに、前記時間窓における残余のアクセス時間と前記第２のアクセス時間とを比較することによって、前記第１及び第２の処理ユニットに関して前記メモリモジュールへのアクセスのためのアービトレーションを前記時間窓に基づいて行うアービトレーションユニットと、
を備え、
前記アービトレーションユニットは、前記残余のアクセス時間が前記第２のアクセス時間よりも大きい場合には前記少なくとも一つの第１の処理ユニットが前記時間窓内において前記メモリモジュールにアクセスすることを許可し、前記残余のアクセス時間が前記第２のアクセス時間よりも大きくない場合には前記少なくとも一つの第２の処理ユニットが前記メモリモジュールにアクセスすることを許可し、
前記第１の処理ユニットは、待ち時間クリティカル処理を行い、前記第２の処理ユニットは、リアルタイム処理を行うことを特徴とするデータ処理システム。
【請求項２】
前記第２のアクセス時間は、前記少なくとも一つの第２の処理ユニットのトラフィック特性に基づいてランタイムの間に決定することができることを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
外部メモリへのアクセスを制御するためのメモリコントローラであって、少なくとも一つの第１の処理ユニット及び少なくとも一つの第２の処理ユニットから前記外部メモリのためのアクセス要求を受けるメモリコントローラにおいて、
前記第２の処理ユニットが前記メモリモジュールにアクセスした第１のアクセス時間と、前記第２の処理ユニットがその処理を完了するために必要とする第２のアクセス時間とを所定の時間窓の間に監視するとともに、前記時間窓における残余のアクセス時間と前記第２のアクセス時間とを比較することによって、前記第１及び第２の処理ユニットのための前記メモリモジュールへのアクセスのアービトレーションを前記時間窓に基づいて行うアービトレーションユニットを備え、
前記アービトレーションユニットは、前記残余のアクセス時間が前記第２のアクセス時間よりも大きい場合には前記少なくとも一つの第１の処理ユニットが前記時間窓内において前記メモリモジュールにアクセスすることを許可し、前記残余のアクセス時間が前記第２のアクセス時間よりも大きくない場合には前記少なくとも一つの第２の処理ユニットが前記メモリモジュールにアクセスすることを許可し、
前記第１の処理ユニットは、待ち時間クリティカル処理を行い、前記第２の処理ユニットは、リアルタイム処理を行うことを特徴とするメモリコントローラ。
【請求項４】
少なくとも一つの第１の処理ユニット及び少なくとも一つの第２の処理ユニットに関してメモリモジュールへのアクセスのためのアービトレーションを時間窓に基づいて行う方法であって、
前記第２の処理ユニットが前記メモリモジュールにアクセスした第１のアクセス時間を監視するステップと、
所定の時間窓の間に前記第２の処理ユニットがその処理を完了するために必要とする第２のアクセス時間を監視するステップと、
所定の時間窓の間に、前記第２のアクセス時間を、前記時間窓における残余のアクセス時間と比較するステップと、
を含み、
残余のアクセス時間が前記第２のアクセス時間よりも大きい場合には、前記少なくとも一つの第１の処理ユニットが前記時間窓内において前記メモリモジュールにアクセスすることを許可され、前記残余のアクセス時間が前記第２のアクセス時間よりも大きくない場合には、前記少なくとも一つの第２の処理ユニットが前記メモリモジュールにアクセスすることを許可され、
前記第１の処理ユニットは、待ち時間クリティカル処理を行い、前記第２の処理ユニットは、リアルタイム処理を行うことを特徴とする方法。
【国際調査報告】
2008515073.tif 000006
2008515073.tif 000007