JP2013542520A - ストリームトランザクションに関連する情報に基づくストリームトランザクションのアービトレーション - Google Patents

ストリームトランザクションに関連する情報に基づくストリームトランザクションのアービトレーション Download PDF

Info

Publication number
JP2013542520A
JP2013542520A JP2013533009A JP2013533009A JP2013542520A JP 2013542520 A JP2013542520 A JP 2013542520A JP 2013533009 A JP2013533009 A JP 2013533009A JP 2013533009 A JP2013533009 A JP 2013533009A JP 2013542520 A JP2013542520 A JP 2013542520A
Authority
JP
Japan
Prior art keywords
bus
stream
stream transaction
transaction
arbiter
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.)
Granted
Application number
JP2013533009A
Other languages
English (en)
Other versions
JP5662585B2 (ja
Inventor
マーティン・ライアン・シャーレン
リチャード・ジェラルド・ホフマン
マーク・マイケル・シェーファー
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2013542520A publication Critical patent/JP2013542520A/ja
Application granted granted Critical
Publication of JP5662585B2 publication Critical patent/JP5662585B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

ストリームトランザクションに関連する情報に基づいてストリームトランザクションをアービトレーションするためのデバイス、システム、方法、およびコンピュータ可読媒体が開示される。ストリームトランザクションは、効率的なデータのバルク転送を円滑にするためのバーストアクセスタイプのスーパーセットである。一実施形態では、バスを介してアクセス可能なリソースについて競合するバスに結合された複数のデバイスの間のバストランザクションをアービトレーションするアービタが提供される。バス上の要求されたストリームトランザクションを効率的にアービトレーションするために、アービタは、ストリームトランザクションに関連する情報を使用して、バス上の将来のバストラフィックのビューを提供するように構成される。アービタは、このストリームトランザクション情報を使用して、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを適用するように構成される。この例では、必要に応じて、アービタがストリームトランザクションを完了するためのパラメータを満たすことを試みるために、ストリームトランザクション情報に基づいて、バスアービトレーションポリシーを、ストリームトランザクションのために調整することができる。

Description

関連出願
本出願は、2010年10月8日に出願された「MEMORY CONTROLLERS, SYSTEMS, AND METHODS FOR APPLYING PAGE MANAGEMENT POLICIES BASED ON STREAM TRANSACTION INFORMATION」という名称の同時係属米国特許出願代理人整理番号第100745号、顧客番号第23696号に関連し、その全体が参照により本明細書に組み込まれる。
本開示の技術は、一般に、プロセッサベースのシステムにおける通信バス上のバストランザクションのアービトレーションに関する。
現代のデジタルシステムおよびプロセッサベースの設計は、一般的に、通信バスを使用する。通信バスは、マスターデバイスとして働くデバイスまたは周辺機器が、スレーブデバイスとして働く受信側の周辺機器またはデバイスに通信を送るのを円滑にするように構成される。たとえば、マスターデバイスがスレーブデバイスに読取り要求を送ることを望む場合、マスターデバイスは、通信バス上でアドレスおよび読取りコマンドを含む制御情報を提供する。通信バスは、制御情報に従って通信バスに結合された適切なスレーブデバイスにコマンドを向ける。さらに、通信バスに結合されたマスターデバイスおよびスレーブデバイスが通信バスとともにシングルチップ上に設けられて、システムオンチップ(SOC)を提供することができる。SOCは、シングルチップで複数の特徴および用途を提供することができる複数のサブシステムの統合のために、特にポータブル電子デバイスに有用である。
通信バスに結合されたスレーブデバイスにマスターデバイスからのバストランザクションを向けるまたはアービトレーションするために、アービタを通信バスに設けることができる。バスのアービトレーションは、たとえば、バストランザクションの衝突を防止することができる。たとえば、通信バスに結合された、コンピュータ処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、および直接メモリアクセス(DMA)コントローラを含むシステムはすべて、同じく通信バスに結合された共有メモリシステムにアクセスすることができる。アービタは、マスターデバイスからの競合する要求の間にバスリソースが割り振られるように、これらのデバイスから共有メモリシステムへのメモリアクセス要求をアービトレーションする。しかしながら、アービタは、他のマスターデバイスによる他の要求のレイテンシの許容できない増加を引き起こす、通信バス上の1つのマスターデバイスからの要求を処理するルーティングリソースを消費することのないように構成されることが望まれる。
発明を実施するための形態で開示する実施形態は、ストリームトランザクションに関連する情報に基づいてストリームトランザクションをアービトレーションするためのデバイス、システム、方法、およびコンピュータ可読媒体を含む。ストリームトランザクションは、効率的なデータのバルク転送を円滑にするためのバーストアクセスタイプのスーパーセットである。ストリームトランザクションに関連する情報は、本明細書では、「ストリームトランザクション情報」とも呼ぶ。本明細書で開示する実施形態では、バスを介してアクセス可能なリソースについて競合する、バス相互接続でもよいバスに結合された複数のデバイスの間のバストランザクションをアービトレーションするアービタが提供される。バス上の要求されたストリームトランザクションを効率的にアービトレーションするために、アービタは、ストリームトランザクションに関連する情報を使用して、バス上の将来のバストラフィックのビューを提供するように構成される。たとえば、ストリームトランザクションは、完了のための時間的および/または他の優先順位パラメータを有することができる。アービタは、このストリームトランザクション情報を使用して、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価し、および/または適用するように構成される。この例では、必要に応じて、アービタがストリームトランザクションを完了するためのパラメータを満たすことを試みるために、ストリームトランザクション情報に基づいて、バスアービトレーションポリシーを、ストリームトランザクションのために調整するまたは変更することができる。
この点について、一実施形態では、バスアービタが提供される。バスアービタは、バスに結合されたデバイスからバス上のストリームトランザクションを受信するように構成されたコントローラを含む。アービタは、バス上のストリームトランザクションをアービトレーションする。ストリームトランザクションを要求するデバイスのパラメータに基づいて、ストリームトランザクションをアービトレーションすることを試みるために、アービタのコントローラは、ストリームトランザクションに関連する情報に基づいて、バス上のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価するように構成される。コントローラは、評価に基づいてバスアービトレーションポリシーを適用するように、さらに構成することもできる。
別の実施形態では、バス上で通信されるストリームトランザクションをアービトレーションする方法が提供される。方法は、バスに結合されたデバイスからバス上のストリームトランザクションを受信するステップを含む。方法は、バス上のストリームトランザクションをアービトレーションするように構成されたコントローラで、ストリームトランザクションに関連する情報に基づいて、バス上のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価するステップを含む。また、方法は、コントローラが評価に基づいてバスアービトレーションポリシーを適用するステップをさらに含み得る。
別の実施形態では、バスに結合されたデバイスからバス上のストリームトランザクションをアービタに受信させるコンピュータ実行可能命令を記憶したコンピュータ可読媒体が提供される。また、コンピュータ実行可能命令は、バス上のストリームトランザクションのためのバストラフィックをアービタにアービトレーションさせる。また、コンピュータ実行可能命令は、ストリームトランザクションに関連する情報に基づいて、バス上のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーをアービタに評価させる。また、コンピュータ実行可能命令は、評価に基づいてバスアービトレーションポリシーをアービタに適用させることもできる。
複数のマスターデバイスと複数のスレーブデバイスとの間のトランザクションをアービトレーションし、ルーティングするように構成されたアービタおよびバス相互接続を含む例示的なシステムを示すブロック図である。 マスターデバイスからスレーブデバイスへのストリームトランザクション要求に応答するスレーブデバイスからの例示的なストリームトランザクション応答を示すブロック図である。 アービタが保留中のストリームトランザクションに関連する情報に基づいて保留中のストリームトランザクションのためにバスアービトレーションポリシーを評価し、適用する例示的なプロセスを示すフローチャートである。 図1のバス相互接続におけるマスターデバイスとスレーブデバイスとの間の通信経路における例示的な回路サブシステムを示すブロック図である。 ストリームトランザクション情報をサポートし、バス相互接続上で通信される要求の一部として図1のバス相互接続によってサポートすることができるバスプロトコルの例示的な制御ブロックを示すブロック図である。 要求側マスターデバイスを識別するために図5の例示的な制御ブロックに設けられる例示的なマスター識別語を示すブロック図である。 図1のバス相互接続上のストリームトランザクションをサポートするために図5の例示的な制御ブロックに設けられる例示的なストリーム識別子ブロックを示すブロック図である。 図7のストリーム識別子ブロックを含む、保留中のバストランザクションを記憶するように構成された例示的なスレーブポートキューの図である。 ストリームトランザクションとの最終期限情報の関連付けに基づいて、ストリームトランザクションのためにバスアービトレーションポリシーを評価し、適用するために、アービタによって実行することができる例示的なプロセスを示すフローチャートである。 所与のスレーブポートについての2つ以上の保留中のストリームトランザクションが関連する最終期限を有するとき、バスアービトレーションポリシーを評価し、適用するために、アービタによって実行することができる例示的なプロセスを示すフローチャートである。 例示的な保留中の最終期限付きストリームトランザクションのための例示的な実現可能性係数の計算を示すチャートである。 図1のバス相互接続を含むことができる例示的なプロセッサベースのシステムを示すブロック図である。
ここで図面を参照して、本開示のいくつかの例示的な実施形態が説明される。「例示的な」という言葉は、「一例、実例または例として」を意味するために本明細書で使用される。「例示的」として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されない。
発明を実施するための形態で開示する実施形態は、ストリームトランザクションに関連する情報に基づいてストリームトランザクションをアービトレーションするためのデバイス、システム、方法、およびコンピュータ可読媒体を含む。ストリームトランザクションは、効率的なデータのバルク転送を円滑にするためのバーストアクセスタイプのスーパーセットである。ストリームトランザクションに関連する情報は、本明細書では、「ストリームトランザクション情報」とも呼ぶ。本明細書で開示する実施形態では、バスを介してアクセス可能なリソースについて競合する複数のデバイスの間のバストランザクションをアービトレーションするアービタが提供される。バス上の要求されたストリームトランザクションを効率的にアービトレーションするために、アービタは、ストリームトランザクションに関連する情報を使用して、バス上の将来のバストラフィックのビューを提供するように構成される。たとえば、ストリームトランザクションは、完了のための時間的および/または他の優先順位パラメータを有することができる。アービタは、このストリームトランザクション情報を使用して、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価し、および/または適用するように構成される。この例では、必要に応じて、アービタがストリームトランザクションを完了するためのパラメータを満たすことを試みるために、ストリームトランザクション情報に基づいて、バスアービトレーションポリシーを、ストリームトランザクションのために調整するまたは変更することができる。
図3で始まる、ストリームトランザクションに関連する情報に基づいて、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価し、適用する例について説明する前に、まず、図1および図2が示されており、それらについて説明する。図1は、バス相互接続上で、ストリームトランザクションを含むバストランザクションを受信し、アービトレーションするように構成されたアービタ12を含む例示的なシステム10を示す。この例では、バストランザクションをアービトレーションするアービタ12に、コントローラ13が設けられている。バスアービトレーションポリシーを評価し、適用し、バストランザクションをアービトレーションするためにコントローラ13によって実行される命令を記憶するために、たとえばメモリなどのコンピュータ可読媒体15がアービタ12に含まれていてもよい。
システム10は、本明細書では「バス相互接続18」とも呼ばれる通信バス18を介して1つまたは複数のスレーブデバイス16(0〜N)に相互接続された複数のマスターデバイス14(0〜M)を含む。例として、バス相互接続18は、フィールドプログラマブルゲートアレイ(FPGA)、非同期式シンクロナス集積回路(ASIC)、コントローラ、ソフトウェア命令を実行することができるマイクロコントローラもしくはマイクロプロセッサ、またはその任意の組合せによって提供され得る。アービタ12は、図1に、バス相互接続18の内部に設けられているものとして示されている。代わりに、アービタ12は、バス相互接続18の外部に設けられていてもよい。
バス相互接続18は、バス相互接続18に接続されたマスターデバイス14(0〜M)のうちの1つまたは複数が、バス相互接続18に結合されたスレーブデバイス16(0〜N)のうちの一部または全部と通信できるように構成可能であり得る。本実施形態では、バス相互接続18は、バス相互接続18に接続されたマスターデバイス14(0〜M)のうちの1つまたは複数が、バス相互接続18に結合されたスレーブデバイス16(0〜N)のうちの任意のものと通信できるように構成される。しかしながら、バス相互接続18は、バス相互接続18に接続されたマスターデバイス14(0〜M)のうちの1つまたは複数が、バス相互接続18に結合されたスレーブデバイス16(0〜N)のうちの1つのみまたはサブセットと通信できるように構成することができる。一例として、バス相互接続18は、半導体ダイ24に設けることができ、必要な場合、システムオンチップ(SOC)集積回路設計で提供することができる。マスターデバイス14(0〜M)およびスレーブデバイス16(0〜N)はそれぞれ、この例ではバス相互接続18に設けられているマスターポート20(0〜M)およびスレーブポート22(0〜N)を介してバス相互接続18に接続されている。アービタ12は、マスターデバイス14(0〜M)からスレーブデバイス16(0〜N)への複数のバストランザクション要求をアービトレーションすることができる。スレーブデバイス16(0〜N)は、マスターデバイス14(0〜M)との共有リソースでもよい。
マスターデバイス14(0〜M)およびスレーブデバイス16(0〜N)は、所望の任意のタイプの電子デバイスまたはサブシステムとすることができる。図1に示すように、マスターデバイス14(0〜M)は、限定はしないが、中央処理装置(CPU)14(0)、デジタル信号プロセッサ(DSP)14(1)、ディスプレイ26に提供される情報を制御するディスプレイプロセッサ14(2)、および直接メモリアクセス(DMA)コントローラ14(M)を含む、任意のタイプの電子デバイスとすることができる。DMAコントローラ14(M)は、マスターデバイス14(M)とスレーブデバイス16(N)の両方として働くことができる。スレーブデバイス16(0〜N)の別の例は、メモリシステム28であり、これも図1に示されている。メモリシステム28は、マスターデバイス14(0〜M)のうちの任意のものが、読取りおよび書込みメモリアクセス要求をメモリシステム28のメモリ30に提供し、読取りおよび書込み応答を受信することができるように、バス相互接続18に接続されている。この点について、メモリシステム28は、通信バス18をメモリ30にインターフェース接続し、メモリシステム28に宛てられたバス相互接続18を介してマスターデバイス14(0〜M)によって提供されるメモリアクセス要求に応答して、メモリ30との間のデータの流れを制御するメモリコントローラ32を含む。
以下でより詳細に論じるように、制御ブロック(CTRL_BLOCK)の形態で提供されるメモリアクセス情報は、メモリ30にメモリアクセストランザクションを要求するために、メモリコントローラ32に提供される。メモリバス34は、メモリユニット36(0〜A)ごとに1つ設けられる、チップセレクトCS(0〜A)を含むメモリコントローラ32にメモリ30をインターフェース接続するために提供される。各メモリユニット36(0〜A)は、別々のメモリチップでもよい。チップセレクトCS(0〜A)は、アクセスされる所望のメモリ位置を含むメモリユニット36(0〜A)を有効にするために、メモリコントローラ32によって選択的に有効にされる。メモリコントローラ32は、データの衝突を回避するために、一度にメモリユニット36(0〜A)のうちの1つを有効にする。
図1のマスターデバイス14(0〜M)は、バス相互接続18に接続されたスレーブデバイス16(0〜N)によってサービスされる単一のビートまたはバーストトランザクションをバス相互接続18に提供することができる。図1のマスターデバイス14(0〜M)は、スレーブデバイス16(0〜N)によってサービスされるストリームトランザクションをバス相互接続18に提供することもできる。ストリームトランザクションは、大量のデータを効率的に移動させるために使用することができる。ストリームトランザクションは、単一のトランザクション要求の一部として転送される大量のデータを提供するために、バーストのスーパーセットからなり得る。ストリームトランザクションの一例が、図2に示される。図2におけるこの例では、256のデータのバーストがあり、各バーストは、4つのデータビートから構成される。スレーブデバイス16(0〜N)は、スレーブデバイス16(0〜N)に対してマスターデバイス14(0〜M)によって以前要求されたストリームトランザクションに応答して、バス相互接続18上のバーストデータトランザクション40のスーパーセットから構成されるデータのストリーム38を提供する。たとえば、マスターデバイス14(0〜M)は、この例では、大量のデータをメモリシステム28から受信し、DMAコントローラ14(M)に結合された他のデバイスに転送するように構成された図1のDMAコントローラ14(M)でもよい。
ストリームトランザクションは、バーストおよびデータビートトランザクションよりも長い期間にわたって、バス相互接続18を介して大量のデータを移動させることができるので、ストリームトランザクションをルーティングすることは、他のバストランザクションへのサービスの遅延をもたらし得る。したがって、他のバストランザクションが要求側マスターデバイス14(0〜M)によって望まれるレイテンシパラメータを過度に侵害することなく、バス相互接続18上のストリームトランザクションを効率的にアービトレーションするために、本明細書で提供する実施形態によって、アービタ12は、ストリームトランザクションに関連する情報に基づいて、バス相互接続18上のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価することができる。ストリームトランザクションに関連する情報は、バス相互接続18上のバストラフィックの将来のビューをアービタ12に提供する。たとえば、ストリームトランザクションは、要求側マスターデバイス14(0〜M)によって提供される完了のための時間的および/または他の優先順位のパラメータを有することができる。アービタ12は、このストリームトランザクション情報を使用して、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価するように構成される。また、アービタ12は、評価に基づいてバスアービトレーションポリシーを適用するように構成され得る。たとえば、必要に応じて、アービタがストリームトランザクションを完了するためのパラメータを満たすことを試みるために、ストリームトランザクション情報に基づいて、バスアービトレーションポリシーを、ストリームトランザクションのために調整するまたは変更することができる。
この点について、図3は、ストリームトランザクションに関連する情報に基づいてバスアービトレーションポリシーを評価し、適用するために、図1のアービタ12によって実行することができる例示的なプロセスを示すフローチャートである。そこに示されているように、アービタ12のコントローラ13は、マスターデバイス14(0〜M)によって要求されたバス相互接続18上のストリームトランザクションを受信する(ブロック42)。ストリームトランザクションの要求は、ストリームトランザクション情報を含む。コントローラ13は、バス相互接続18上のストリームトランザクションをアービトレーションするための最初のまたはデフォルトのバスアービトレーションポリシーを適用することができる(ブロック44)。コントローラ13は、次の保留中のストリームトランザクションを処理する(ブロック46)。たとえば、複数のストリームトランザクションは、バス相互接続18に結合されたスレーブデバイス16(0〜N)によって完了されるように保留中でもよい。次いで、コントローラ13は、最初にストリームトランザクションを要求したマスターデバイス14(0〜M)から受信されたストリームトランザクション情報に基づいて、保留中のストリームトランザクションのためにバスアービトレーションポリシーを評価し、および/または適用する(ブロック48)。異なるバスアービトレーションポリシーを使用することができる。プロセスは繰り返し、それによって、アービタ12は、新しいストリームトランザクションを受信し(ブロック42)、連続的にもしくは定期的に、動的に、および/またはストリームトランザクションごとに、保留中のストリームトランザクションを処理する(ブロック46)ことができる。
図9〜図11でアービタ12によって適用される例示的なバスアービトレーションポリシーに関して以下でより詳細に論じるように、バスアービトレーションポリシーは、1つまたは複数のストリームトランザクションが保留中であるかどうか、および所与のスレーブデバイス16(0〜N)についての1つまたは複数のストリームトランザクションが完了の最終期限を有しているかどうかに基づき得る。ストリームトランザクション情報に基づいてバスアービトレーションポリシーを評価し、適用するさらなる例について説明する前に、図4〜図8が示されており、それらについて以下で説明する。図4〜図8は、ストリームトランザクション情報を含めて、バストランザクション要求および関連情報を受信し、マスターデバイス14(0〜M)からのバストランザクションをアービトレーションし、スレーブデバイス16(0〜N)にルーティングする実施形態に関して、追加の例示的な詳細を提供する。
図4は、図1のバス相互接続18におけるアービタ12およびルーティングリソースのより詳細な例を示す。アービタ12は、バス相互接続18に結合されたマスターデバイス14(0〜M)とスレーブデバイス16(0〜N)との間の、ストリームトランザクションを含むバストランザクションをアービトレーションする。図4に示すように、通信は、マスターポート20(0〜M)に結合されたマスターポートバス50(0〜M)を介して、マスターデバイス14(0〜M)とバス相互接続18との間でサポートされる。同様に、通信は、スレーブポート22(0〜N)に結合されたスレーブポートバス52(0〜N)を介して、スレーブデバイス16(0〜 N)とバス相互接続18との間でサポートされる。バス相互接続18は、所望のマスターデバイス14(0〜M)と所望のスレーブデバイス16(0〜N)との間に通信経路を確立するように構成可能である、例としてゲート、ラッチ、およびレジスタなどのクロック制御された回路を含む。たとえば、図4に示すように、マスターデバイス14(0〜M)のうちの1つとスレーブデバイス16(0〜N)のうちの1つとの間に通信経路を提供するように構成可能である、バス相互接続18に設けられる例示的な構成要素が示される。
引き続き図4を参照すると、マスターポート20(0〜M)は各々、マスターデバイス14(0〜M)からバストランザクションを受信するためにマスターポートバス50(0〜M)に接続されたマスターポートインターフェース53(0〜M)を含む。マスターポートキュー54(0〜M)とスレーブポートキュー56(0〜N)との間のバストランザクションをアービトレーションするためにアービタ12に提供されるバストランザクションまたはコマンドを記憶するために、マスターポートキュー54(0〜M)が設けられている。アービタ12は、スレーブデバイス16(0〜N)へのバストランザクションをアービトレーションするためにスレーブポート22(0〜N)に関連付けられた別々のアドレス指定アービタ58(0〜N)、およびスレーブポート22(0〜N)から来るデータの読取りおよび書込み完了応答(read data and write completion responses)をアービトレーションするためにマスターポート20(0〜M)に関連付けられたデータ(読取り/書込み)アービタ60(0〜M)を含み得る。スレーブポートキュー56(0〜N)は、スレーブポートバス52(0〜N)に接続されたスレーブポートインターフェース61(0〜N)にバストランザクションを提供する。図4は、マスターデバイス14(0〜M)のうちの1つに結合されたマスターポート20(0〜M)のうちの1つと、スレーブデバイス16(0〜N)のうちの1つに結合されたスレーブポート22(0〜N)のうちの1つとの間の通信経路を示すが、バス相互接続18に設けられたアービタ58(0〜N)、60(0〜M)は、マスターポート20(0〜M)とスレーブポート22(0〜N)との間のバス相互接続18によって可能になる通信経路をアービトレーションするように構成することができることに留意されたい。
引き続き図4を参照すると、スレーブポート22(0〜N)ごとにカウンタ62(0〜N)を設けることもできる。カウンタ62(0〜N)は、それぞれ、スレーブポートインターフェース61(0〜N)によって完了するトランザクションをカウントする。カウンタ62(0〜M)は、カウント情報64(0〜N)をアービタ12に提供することができ、その結果、アービタ12は、ストリームトランザクションを含む、複数のビートトランザクションの完了の経過を監視することができる。たとえば、アービタ12は、カウント情報64(0〜N)を使用して、ストリームトランザクションの完了が、スケジュールに先行しているか、スケジュール通りか、または最終期限よりも遅れているかを評価し、それに応じて、ストリームトランザクションのためにバスアービトレーションポリシーを適用することができる。
ストリームトランザクションのためにバスアービトレーションポリシーを評価し、適用することに関してストリームトランザクションの経過を監視する例について、図9〜図11に関して以下でより詳細に説明する。これらの例について説明する前に、最初に、マスターデバイス14(0〜M)が、ストリームトランザクションを含むバストランザクションをアービトレーションするためにアービタ12によって使用することができるバストランザクション要求の一部として、バストランザクション情報をバス相互接続18に提供する例について、以下、図5〜図8を参照して説明する。バストランザクション情報によって、アービタ12は、バストランザクションのためにバスアービトレーションポリシーを決定し、適切なスレーブデバイス16(0〜N)にバストランザクションを向けることができる。ストリームトランザクションでは、バストランザクション情報は、ストリームトランザクションに関連する情報に基づいてバスアービトレーションポリシーを評価するためにアービタ12に提供されるストリームトランザクション情報を含む。この点について、図5は、バストランザクションを要求するマスターデバイス14(0〜M)が、ストリームトランザクション情報を含む、要求されたバストランザクションのための情報を提供できるようにするために、図1のバス相互接続18によってサポートされるバスプロトコルの例示的な制御ブロック(CTRL_BLOCK)70のブロック図である。
図5に関して、制御ブロック70は、アービタ12がマスターデバイス14(0〜M)からのトランザクション要求を実行できるようにするための制御情報を含む。たとえば、制御ブロック70は、アービタ12に対するバストランザクション要求の要求側に関連付けられた識別子を含むマスター識別子(M_ID)72を含む。アービタ12は、マスター識別子72を使用して、どのマスターデバイス14(0〜M)がスレーブデバイス16(0〜N)から受信された応答を受信すべきかについて決定する。スレーブデバイス16(0〜N)がメモリであるかどうかなど、スレーブデバイス16(0〜N)においてアドレス指定されるアドレスは、アドレスフィールド(ADDRESS)74で提供される。バストランザクション要求がメモリアクセス要求である場合、メモリアクセス要求が読取りトランザクションであるか、書込みトランザクションであるかが、読取り/書込みフィールド(R/W)76で提供される。ストリーム識別子ブロック(STREAM_ID_BLOCK)78は、バストランザクションについてのストリームトランザクション情報を提供するために設けられている。
図6は、バス相互接続18に対してバストランザクション要求でマスターデバイス14(0〜M)によって提供することができる例示的なマスター識別子72のブロック図である。この例では、マスター識別子72は、10ビットワードである。上位の2ビット(F1、F0)は、特定のメモリアクセス要求に関与する4つの別個のファブリックの識別を可能にするファブリック識別子80を含む。中間の4ビット(M3、M2、M1、M0)は、マスターデバイス14(0〜M)を識別するマスターデバイス識別子82である。したがって、この例では、16の一意のマスターデバイス14(0〜M)が可能である。次の2ビット(S1、S0)は、設けられている、または適用可能なマスターデバイス14(0〜M)に結合されたサブマスターデバイスを識別するサブマスターデバイス識別子84を含む。したがって、この例では、4つの一意のサブマスターデバイスが可能である。下位の2ビット(A1、A0)は、マスターデバイス14(0〜M)および/またはサブスターデバイスが所望の任意の属性情報を提供できるように使用することができる属性識別子86を含む。たとえば、マスターデバイス14(0〜M)および/またはサブマスターデバイスがメモリアクセス要求を担当するソフトウェアプロセスまたはスレッドを識別できるようにするために、ソフトウェアプロセスまたはスレッドの識別を属性識別子86で提供することができる。所望の任意の他の情報を、属性識別子86に含めることができる。
図7は、図5の制御ブロック70におけるストリーム識別子ブロック78として使用され得る例示的なストリーム識別子ブロックのブロック図である。ストリーム識別子ブロック78は、ストリームトランザクションに関連する情報に基づいてバス相互接続18上のストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーをアービタ12が評価できるようにするために、図1のアービタ12に提供されるストリームトランザクションに関連する例示的な情報を含む。マスターデバイス14(0〜M)は、バス相互接続18上のストリームトランザクションを要求するとき、ストリーム識別子ブロック78で情報を提供する。
引き続き図7を参照すると、ストリーム識別子ブロック78は、ストリームトランザクションを識別するストリーム識別子フィールド(STREAM_ID)88を含む。転送数フィールド(NO_TRANSFERS)90は、ストリームトランザクションに関連付けられたバースト転送の数を提供する。ビート数フィールド(NO_BEATS)92は、バースト転送ごとに実行されるデータ転送のビートの数を提供する。バイト数フィールド94(NO_BYTES)は、ビート転送ごとに実行されるデータのバイトの数を提供する。バイト数フィールド94は、バス相互接続18およびスレーブデバイス16(0〜N)のアーキテクチャに応じて、構成可能または固定値とすることができる。
ストリームトランザクションに関連付けられた最終期限がある場合、最終期限情報を、最終期限フィールド(DEADLINE)96に記憶することができる。たとえば、マスターデバイス14(0〜M)は、クロックサイクル、ビート、または他の相対的または絶対的なタイミングによることができる、あるタイミング内に特定のストリームトランザクションを完了することを要求することができる。優先順位をストリームトランザクションに関連付けることができるように、優先順位フィールド(PRIORITY)98も設けられている。優先順位フィールド98は、設計に応じて、マスターデバイス14(0〜M)、アービタ12、またはスレーブデバイス16(0〜N)によって供給されるおよび/または変更されるように構成することができる。ストリームトランザクションをアービトレーションするために、ストリームトランザクションのためにバスアービトレーションポリシーを評価し、適用するために、このストリーム情報のいずれかをアービタ12によって使用することができる。
図1のアービタ12は、図5における制御ブロック70を含むバストランザクション要求をマスターデバイス14(0〜M)から受信する。前に説明したように、ストリームトランザクション要求を含む、バストランザクション要求に応答する、スレーブデバイス16(0〜N)からのバストランザクション応答は、スレーブポートキュー56(0〜N)に入れられる。アービタ12は、スレーブポートキュー56(0〜N)に記憶されたストリームトランザクションについてのストリームトランザクション情報に基づいて、ストリームトランザクション応答のためにバスアービトレーションポリシーを評価することができる。この点について、図8は、図7のストリーム識別子ブロック78に基づいて、ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価し、適用することをサポートするために、アービタ12によってアクセスされるスレーブポートキュー56(0〜N)の図である。スレーブポートキュー56(0〜N)は、内部レジスタ、またはアービタ12によってアクセス可能な、バス相互接続18の内部もしくは外部の他のメモリに設けることができる。
図8に示すように、スレーブポートキュー56(0〜N)は、バストランザクション要求応答の0から「X」番までを保持するように構成されたテーブルから構成される。スレーブポートキュー56(0〜N)に記憶されたバストランザクション応答にインデックス付けするために、キュー番号フィールド(QUEUE_NO)100が使用される。この例では、スレーブポートキュー56(0〜N)内の各バストランザクション応答は、バストランザクション応答を受信すべきマスターデバイス14(0〜M)を識別するためのマスター識別子フィールド72(図5)を含む。バストランザクション要求がデータを要求することを伴う場合、応答データをデータフィールド(DATA)102に記憶することができる。また、バストランザクション要求がストリームトランザクションである場合、ストリームトランザクション情報を記憶するために、ストリーム識別子ブロック78がメモリアクセス要求エントリごとに設けられている。
アービタ12が、バストランザクション応答のためにバスアービトレーションポリシーを評価し、適用するために使用すべきストリームトランザクションの経過を決定できるようにするために、残存転送数フィールド(A number of transfers remaining field)(NO_TRANS_REMAIN)104も設けられている。最初に、残存転送数フィールド104は、図7のストリーム識別子ブロック78における転送数フィールド90内のストリームトランザクション要求のために提供される転送数フィールド90に基づいて、アービタ12によって設定される。図4に示したカウンタ62(0〜N)は、残存転送数フィールド104を低減するために、保留中のストリームトランザクションについて、スレーブデバイス16(0〜N)からの完了した転送の数をカウントする。競合するストリームトランザクション応答間をアービトレーションするためにアービタ12によって使用されるバスアービトレーションポリシーにおいてランクおよび/または重みを使用できるようにするために、ランクフィールド(RANK)106および重みフィールド(WEIGHT)108も設けられている。非限定的な例として、重みフィールド108を、重み付けされたラウンドロビンのバスアービトレーションポリシーにおいて使用することができる。別の非限定的な例として、ランクフィールド106を、固定された優先順位のバスアービトレーションポリシーにおいて採用することができる。他のバスアービトレーションポリシーを採用することができる。
バス相互接続18に対してマスターデバイス14(0〜M)によって要求されるストリームトランザクションのためのパラメータのうちの1つは、最終期限内にストリームトランザクションを完了することであり得る。図7のストリーム識別子ブロック78に関して上記で説明したように、最終期限情報は、ストリームトランザクションが最終期限内に完了することを要求するために、最終期限フィールド96に含めることができる。この点について、図9は、関連する最終期限を有する保留中のストリームトランザクション(「保留中の最終期限付きストリームトランザクション」)のためにバスアービトレーションポリシーを評価するために、図1のアービタ12によって適用することができる例示的なプロセスを示すフローチャートである。プロセスは、スレーブポートキュー56(0〜N)に存在する保留中のストリームトランザクションに基づいて、定期的にまたは連続的にアービタ12によって実行され得る。たとえば、アービタ12は、スレーブポートキュー56(0〜N)における存在の順序に基づいて、各スレーブポートキュー56(0〜N)内の保留中のストリームトランザクションごとに、図9のプロセスを実行することができる。
引き続き図9を参照すると、アービタ12は、次の保留中の最終期限付きストリームトランザクションのために実際に移動されるデータの量が、ストリームトランザクションの最終期限を満たすために移動されるデータ未満であるかどうかを決定する(ブロック110)。アービタ12は、この例では、スレーブポートキュー56(0〜N)内の残存転送数フィールド104を調べる。次の保留中の最終期限付きストリームトランザクションのために実際に移動されるデータの量が、最終期限を満たすために移動されるデータ未満である場合、これは、保留中の最終期限付きストリームトランザクションがストリームトランザクションのためのデータ転送の予想されるレートに基づいてその最終期限より遅れていることを意味する。この点について、アービタ12は、保留中の最終期限付きストリームトランザクションの優先順位が上がった場合、保留中の最終期限付きストリームトランザクションの最終期限を満たすことができるかどうかを決定する(ブロック112)。保留中の最終期限付きストリームトランザクションの優先順位を上げることによって保留中のストリームトランザクションがその最終期限を満たすことができる場合、アービタ12は、スレーブポートキュー56(0〜N)内の保留中の最終期限付きストリームトランザクションの優先順位を上げることができる(ブロック114)。たとえば、保留中の最終期限付きストリームトランザクションの優先順位を上げることは、スレーブポートキュー56(0〜N)における優先順位を変えることを含み得る。たとえば、図8に示すように、バスアービトレーションポリシーにおける保留中の最終期限付きストリームトランザクションの優先順位を上げるために、ランクフィールド106および/または重みフィールド108を更新することができる。非限定的な例として、ランクフィールド106を、固定された優先順位のバスアービトレーションポリシーにおいて使用することができる。別の非限定的な例として、重みフィールド108における重みを、重み付けされたラウンドロビンのバスアービトレーションポリシーにおいて使用することができる。
保留中の最終期限付きストリームトランザクションの優先順位を上げることによって、アービタ12は、保留中の最終期限付きストリームトランザクションの最終期限を満たすことができない場合、保留中の最終期限付きストリームトランザクションを終了することができる(ブロック116)。この点について、アービタ12は、保留中の最終期限付きストリームトランザクションをスレーブポートキュー56(0〜N)から取り除くことができる。次いで、アービタ12は、最初に最終期限付きストリームトランザクションを要求したマスターデバイス14(0〜M)に終了された状況を示すために、保留中のストリームトランザクションについてのエラー処理プロセスを実行することができる(ブロック118)。保留中の最終期限付きストリームトランザクションを終了し、取り除くことは、バス相互接続18から不必要に使用される帯域幅を取り除くことができ、したがって、バス相互接続18の性能を向上させることができることに留意されたい。
ブロック110での決定において、アービタ12は、保留中の最終期限付きストリームトランザクションのために実際に移動されるデータの量が、保留中の最終期限付きストリームトランザクションの最終期限を満たすために移動されるデータ以上であることを決定した場合、保留中の最終期限付きストリームトランザクションのために実際に移動されるデータの量が最終期限を満たすために移動されるデータよりも大きいかどうかを決定する(ブロック120)。そうである場合、アービタ12は、保留中の最終期限付きストリームトランザクションの優先順位を下げることができ(ブロック122)、その結果、他の保留中のストリームトランザクションを含む、他の保留中のバストランザクションは、バス相互接続18におけるルーティングリソースによって、より多くの処理時間を受信することができる。そうでない場合、アービタ12は、保留中の最終期限付きストリームトランザクションの優先順位を調整せず、次の保留中の最終期限付きストリームトランザクションが検討される(ブロック110)。
保留中の最終期限付きストリームトランザクションを検討し、それに応じてアービタ12によって適用されるバスアービトレーションポリシーを調整するプロセスは、連続的に実行することができる。プロセスは、「ストリームウォーターマーク」とも呼ばれる保留中の最終期限付きストリームトランザクションごとに、完了の定期的な間隔で(たとえば、完了の25%、完了の50%、および完了の75%、または他の間隔で)実行することもできる。保留中の最終期限付きストリームトランザクションを調べ、必要に応じて、それに応じてそれらのバスアービトレーションポリシーを更新するための所望の粒度に基づいて、使用されるストリームウォーターマークの数を提供することができる。
所与のスレーブポート22(0〜N)について、1つのみの保留中のストリームトランザクションが最終期限付きである場合、アービタ12は、図9における例示的なプロセスに従って保留中の最終期限付きストリームトランザクションを優先することができる。しかしながら、所与のスレーブポート22(0〜N)について、2つ以上の保留中のストリームトランザクションが最終期限を有する場合、アービタ12は、保留中の最終期限付きストリームトランザクションの間の優先順位を決定する。この点について、図10は、所与のスレーブポート22(0〜N)について、2つ以上の保留中のストリームトランザクションが関連する最終期限を有するとき、バスアービトレーションポリシーを評価するためにアービタ12によって実行することができる例示的なプロセスを示すフローチャートである。図10のプロセスは、スレーブポートキュー56(0〜N)ごとに、連続的に、または、保留中の最終期限付きストリームトランザクションのための指定されたストリームウォーターマークで実行することができる。図10に示すように、アービタ12は、所与のスレーブポート22(0〜N)についての2つ以上の保留中のストリームトランザクションが関連する最終期限を有するかどうかを、スレーブポート22(0〜N)ごとに決定する(ブロック130)。そうでない場合、プロセスは終了する(ブロック132)。所与のスレーブポート22(0〜N)についての2つ以上の保留中のストリームトランザクションが関連する最終期限を有する場合、アービタ12は、この例では、スレーブポートキュー56(0〜N)内の保留中の最終期限付きストリームトランザクションごとに実現可能性係数を計算する(ブロック134)。
実現可能性係数は、保留中の最終期限付きストリームトランザクションがその最終期限内に完了する実現可能性を決定するために使用される。任意の実現可能性係数を使用することができ、特定の実装形態に応じた任意の計算とすることができる。この例では、実現可能性係数は、保留中の最終期限付きストリームトランザクションを完了するための残余時間、および保留中の最終期限付きストリームトランザクションについての残余転送の数の関数である。たとえば、保留中の最終期限付きストリームトランザクションについて、転送が完了するにつれて、スレーブポートキュー56(0〜N)内の残存転送数フィールド104は、アービタ12によって更新される。
所与の保留中の最終期限付きストリームトランザクションについての実現可能性係数が最終期限までの完了が可能ではないことを示す場合(ブロック136)、アービタ12はその保留中のストリームトランザクションを終了することができる(ブロック138)。エラー処理プロセスは、ストリームトランザクションが完了前に終了されていることを、終了されたストリームトランザクションを要求するマスターデバイス14(0〜M)に示すために実行することができる(ブロック140)。保留中の最終期限付きストリームトランザクションを完了することが実現可能であると決定された場合(ブロック136)、アービタ12は、実現可能性係数に基づいて保留中の最終期限付きストリームトランザクションのためにバスアービトレーションポリシーを変更または調整することができる(ブロック142)。非限定的な例として、アービタ12は、重み付けされたラウンドロビンのバスアービトレーションポリシーから固定された優先順位方式に、またはその逆に、バスアービトレーションポリシーを変更することができる。所与のスレーブポート22(0〜N)が処理中の複数の保留中の最終期限付きストリームトランザクションから1つのみの保留中の最終期限付きストリームトランザクションに移行すると、アービタ12は、非限定的な例として図9のプロセスに基づいて保留中の最終期限付きストリームトランザクションに対するバスアービトレーションポリシーの評価に戻ることができる。
図11は、保留中の最終期限付きストリームトランザクションを完了する実現可能性を決定するために、アービタ12によって使用することができる例示的な実現可能性係数を示すためのチャート144である。この例では、6つの保留中の最終期限付きストリームトランザクションが、チャート144の各行に1つずつ示されている。各保留中の最終期限付きストリームトランザクションについてのクロックサイクルに関する残余時間は、残余時間(TR)カラム146に示される。各保留中の最終期限付きストリームトランザクションについての残余トランザクション数は、トランザクション数(XR)カラム148に示される。バスアービトレーションポリシーを決定するための各保留中の最終期限付きストリームトランザクションについて計算された実現可能性係数は、実現可能性係数(Ff)カラム150に示される。
引き続き図11の例を参照すると、保留中の最終期限付きストリームトランザクションについての残余時間(TR)が、保留中の最終期限付きストリームトランザクションについての残余転送数(XR)未満である場合、実現可能性係数は「0」と決定される。これは、保留中の最終期限付きストリームトランザクションの完了が可能ではない、または実現可能ではないことを意味する。保留中の最終期限付きストリームトランザクションについての残余時間(TR)が、保留中の最終期限付きストリームトランザクションについての残余転送数(XR)と同じである場合、実現可能性係数は「1」と決定される。このシナリオでは、保留中の最終期限付きストリームトランザクションの完了は、依然として実現可能である。保留中の最終期限付きストリームトランザクションについての残余時間(TR)が、保留中の最終期限付きストリームトランザクションについての残余転送数(XR)よりも大きいとき、実現可能性係数はTR-XRと決定される。
図9において示されるように、所与のスレーブポート22(0〜N)についての1つのみの保留中のストリームトランザクションが最終期限付きであるとき、アービタ12は、実現可能性係数を計算するように構成することができることに留意されたい。保留中の最終期限付きストリームトランザクションが最終期限内に完了することが実行可能ではないことを実現可能性係数が示す場合、アービタ12は、保留中の最終期限付きストリームトランザクションを早く終了することができる。保留中の最終期限付きストリームトランザクションを終了し、取り除くことは、バス相互接続18から不必要に使用される帯域幅を取り除くことができ、したがって、バス相互接続18の性能を向上させることができる。
保留中の最終期限付きストリームトランザクションを完了することができない、またはその最終期限前に完了することが実行可能ではないと決定されたときはいつでも、ストリームトランザクションを終了することに加えて、他のアクションをとることができることに留意されたい。たとえば、ストリームトランザクションの終了は、シンドロームレジスタに記録することができる。別の非限定的な例として、限定はしないが、マスターデバイス14(0〜M)を含む、適切なアクションをとることができる、システム10における1つまたは複数のインテリジェントシステムエージェントに対する割込みとして、ストリームトランザクションの終了をルーティングすることができる。終了したストリームトランザクションに関して伝えられたメッセージは、アービタ12によって応答チャネルに組み込むことができる。
バスアービトレーションポリシーの本明細書の例は、必要に応じて、単独で、または任意の組合せで、提供することが出来ることに留意されたい。同じく、本明細書で開示するバスアービトレーションポリシーのいずれかまたはすべては、アービタ12における回路によって実行することができ、図1に示すように、アービタ12は、コントローラ13を含んでいても、または含んでいなくてもよく、コンピュータ可読媒体15のソフトウェア命令を実行することができても、または実行することができなくてもよい。ストリームトランザクションに関連する情報に基づいて、ストリームトランザクションのためにバスアービトレーションポリシーを評価し、および/または適用するために、他のバスアービトレーションポリシーをアービタ12によって使用することができる。
本明細書で開示する実施形態に従ってストリームトランザクションに関連する情報に基づいてストリームトランザクションをアービトレーションするためのデバイス、システム、方法、およびコンピュータ可読媒体は、任意のプロセッサベースのデバイスに設ける、または組み込むことができる。このようなデバイスの例には、限定されないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータのモニタ、テレビ、チューナ、ラジオ、サテライトラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
この点について、図12は、図1に示すシステム10の構成要素を使用することができるプロセッサベースシステム160の一例を示す。この例では、プロセッサベースシステム160は、各々1つまたは複数のプロセッサ164を含む1つまたは複数の中央処理装置(CPU)162を含む。CPU162は、マスターデバイスでもよい。CPU162は、一時的に記憶されたデータへの迅速なアクセスのために、プロセッサ164に結合されたキャッシュメモリ166を有することができる。CPU162はシステムバス170に結合され、プロセッサベースのシステム160に含まれるマスターデバイスおよびスレーブデバイスを相互に接続する。システムバス170は、図1に示すバス相互接続18のようなバス相互接続とすることができる。よく知られているように、CPU162は、アドレス情報、制御情報、およびデータ情報をシステムバス170を通じて交換することによって、これらの他のデバイスと通信する。たとえば、CPU162は、スレーブデバイスの一例として、メモリコントローラ32にバストランザクション要求を通信することができる。図12には図示されていないが、複数のシステムバス170を設けることができ、各システムバス170は、異なるファブリックを構成する。
他のマスターおよびスレーブデバイスは、システムバス170に接続することができる。図12に示すように、これらのデバイスは、メモリシステム28、1つまたは複数の入力デバイス174、1つまたは複数の出力デバイス176、1つまたは複数のネットワークインターフェースデバイス178、および1つまたは複数のディスプレイコントローラ180を含み得る。入力デバイス174は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む任意のタイプの入力デバイスを含むことができる。出力デバイス176は、限定はしないが、オーディオ、ビデオ、他の視覚的指示などを含む任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス178は、ネットワーク182との間のデータの交換を可能にするように構成された任意のデバイスとすることができる。ネットワーク182は、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、非公開ネットワークまたは公開ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意の種類のネットワークとすることができる。ネットワークインターフェースデバイス178は、所望の任意の種類の通信プロトコルをサポートするように構成することができる。メモリシステム28は、1つまたは複数のメモリユニット36(0〜A)を含むことができる。アービタ12は、システムバス170と、たとえば、メモリシステム28に設けられたメモリユニット36(0〜A)など、システムバス170に結合されたマスターおよびスレーブデバイスとの間に設けられていてもよい。
CPU162は、システムバス170を通じてディスプレイコントローラ180にアクセスして、1つまたは複数のディスプレイ184に送られる情報を制御することもできる。ディスプレイコントローラ180は、1つまたは複数のビデオプロセッサ186を介して表示されるべき情報をディスプレイ184に送り、ビデオプロセッサ186は、表示されるべき情報を、ディスプレイ184に適切なフォーマットとなるように処理する。ディスプレイ184は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意の種類のディスプレイを含むことができる。
CPU162およびディスプレイコントローラ180は、システムバス170を介してアービタ12にメモリアクセス要求を行うマスターデバイスとして働き得る。CPU162およびディスプレイコントローラ180内の異なるスレッドがアービタ12に要求を行うことができる。CPU162およびディスプレイコントローラ180は、前述のように、マスター識別子72を、バストランザクション要求の一部としてアービタ12に提供することができる。
任意のタイプのマスターデバイス14(0〜M)およびスレーブデバイス16(0〜N)は、ストリームトランザクションに対する要求および応答を行うために、プロセッサベースシステム160で使用することができる。非限定的な例として、図12に示すように、最終期限付きストリームトランザクションを要求するマスターデバイス14(0〜M)がDMAコントローラ14(M)である場合、DMAコントローラ14(M)は、記述子フィールドで提供される任意の必要な最終期限パラメータを含む記述子を解析することができる。CPU162による記述セットアップに、最終期限パラメータが与えられ得る。DMAコントローラ14(M)は、後でこの最終期限パラメータを解析することができ、システムバス170を介して、新しいストリームトランザクション要求の一部として、そのような最終期限をブロードキャストすることができる。この点について、一例として、最終期限パラメータは、図7のストリーム識別子ブロック78の最終期限フィールド96におけるDMAコントローラ14(M)によって提供することができる。ストリームトランザクション転送の過程を通って、アービタ12は、記述子によって伝えられる最終期限を達成しようと試みるために、ストリームトランザクションのためにバスアービトレーションポリシーを動的に調整することができる。
本明細書で開示される実施形態とともに説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子的なハードウェアとして、メモリもしくは別のコンピュータ可読媒体に記憶されプロセッサもしくは他の処理デバイスにより実行される命令として、またはこれら両方の組合せとして実装され得ることが、当業者にはさらに理解されよう。例として、本明細書で説明するアービタ、マスターデバイス、サブマスターデバイス、およびスレーブデバイスは、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて採用され得る。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリとすることができ、所望の任意のタイプの情報を記憶するように構成することができる。この互換性を明確に示すために、上記では、様々な例示的構成要素、ブロック、モジュール、回路、およびステップは全般的に、それらの機能に関して説明されている。そのような機能がどのように実装されるかは、具体的な用途、設計の選択、および/またはシステム全体に課される設計制約により決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、DSP、特定用途向け集積回路(ASIC)、FPGAもしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行することができる。プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
本明細書で開示される実施形態は、ハードウェアで具現化されてよく、ハードウェアに記憶される命令により具現化されてよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取専用メモリ(ROM)、電気的にプログラム可能なROM(EPROM)、電気的に消去可能なプログラム可能ROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または、当技術分野で知られている任意の他の形態のコンピュータ可読媒体に、存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に常駐し得る。ASICは遠隔局に存在し得る。代替的には、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバの中に、個別の構成要素として存在し得る。
本明細書の例示的な実施形態のいずれかで説明された動作ステップは、例および議論を提供するために説明されたものであることにも、留意されたい。説明された動作は、例示された順序以外の多くの異なる順序で実行されてもよい。さらに、単一の動作ステップで説明される動作は、実際には、多くの異なるステップで実行され得る。加えて、例示的な実施形態において論じられた1つまたは複数の動作ステップは、組み合わされてもよい。フローチャートにおいて例示される動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを、理解されたい。情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
本開示の前述の説明は、いかなる当業者でも本開示を作成または使用することができるように提供される。本開示への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用できる。したがって、本開示は、本明細書で説明した例および設計に限定されることを意図するものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
10 システム
12 アービタ
13 コントローラ
14 マスターデバイス
14(0) 中央処理装置(CPU)
14(1) デジタル信号プロセッサ(DSP)
14(2) ディスプレイプロセッサ
14(M) 直接メモリアクセス(DMA)コントローラ
15 コンピュータ可読媒体
16 スレーブデバイス
18 通信バス
20 マスターポート
22 スレーブポート
24 半導体ダイ
26 ディスプレイ
28 メモリシステム
30 メモリ
32 メモリコントローラ
36 メモリユニット
38 データのストリーム
40 バーストデータトランザクション
50 マスターポートバス
52 スレーブポートバス
53 マスターポートインターフェース
54 マスターポートキュー
56 スレーブポートキュー
58 アドレス指定アービタ
60 データ(読取り/書込み)アービタ
61 スレーブポートインターフェース
62 カウンタ
70 制御ブロック(CTRL_BLOCK)
72 マスター識別子(M_ID)
74 アドレスフィールド(ADDRESS)
76 読取り/書込みフィールド(R/W)
78 ストリーム識別子ブロック(STREAM_ID_BLOCK)
80 ファブリック識別子
82 マスターデバイス識別子
84 サブマスターデバイス識別子
86 属性識別子
88 ストリーム識別子フィールド(STREAM_ID)
90 転送数フィールド(NO_TRANSFERS)
92 ビート数フィールド(NO_BEATS)
94 バイト数フィールド(NO_BYTES)
96 最終期限フィールド(DEADLINE)
98 優先順位フィールド(PRIORITY)
100 キュー番号フィールド(QUEUE_NO)
102 データフィールド(DATA)
104 残存転送数フィールド(NO_TRANS_REMAIN)
106 ランクフィールド(RANK)
108 重みフィールド(WEIGHT)
146 残余時間(TR)カラム
148 トランザクション数(XR)カラム
150 実現可能性係数(Ff)カラム
160 プロセッサベースシステム
162 中央処理装置(CPU)
164 プロセッサ
166 キャッシュメモリ
170 システムバス
174 入力デバイス
176 出力デバイス
178 ネットワークインターフェースデバイス
180 ディスプレイコントローラ
182 ネットワーク
184 ディスプレイ
186 ビデオプロセッサ

Claims (38)

  1. バスに結合されたデバイスから前記バス上のストリームトランザクションを受信し、前記バス上の前記ストリームトランザクションをアービトレーションするように構成されたコントローラ
    を含むバスアービタであって、
    前記コントローラが、前記ストリームトランザクションに関連する情報に基づいて、前記バス上の前記ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価するように構成される、バスアービタ。
  2. 前記コントローラが、前記評価に基づいてバスアービトレーションポリシーを適用するようにさらに構成される、請求項1に記載のバスアービタ。
  3. 前記コントローラが、前記評価に基づいてデフォルトのバスアービトレーションポリシーを適用するようにさらに構成される、請求項1に記載のバスアービタ。
  4. 前記ストリームトランザクションに関連する前記情報が、マスター識別子、ストリーム識別子、前記ストリームトランザクションに関連付けられた優先順位、および前記ストリームトランザクションに関連付けられた最終期限からなる群から選択された情報である、請求項1に記載のバスアービタ。
  5. 前記バスアービトレーションポリシーがストリームトランザクションをアービトレーションするための優先順位方式から構成される、請求項1に記載のバスアービタ。
  6. 前記優先順位方式が、前記ストリームトランザクションのランキングおよび前記ストリームトランザクションの重み付けからなる群から選択される、請求項5に記載のバスアービタ。
  7. 前記コントローラが、前記ストリームトランザクションに関連する前記情報に基づいて、前記ストリームトランザクションの保留中、前記ストリームトランザクションのために前記バスアービトレーションポリシーを連続的に評価するように構成される、請求項1に記載のバスアービタ。
  8. 前記コントローラが、前記ストリームトランザクションに関連付けられた最終期限に基づいて前記バスアービトレーションポリシーを評価するように構成される、請求項1に記載のバスアービタ。
  9. 前記ストリームトランザクションに関連付けられた前記最終期限が、前記ストリームトランザクションに関連付けられた直接メモリアクセス(DMA)記述子中に埋め込まれた、請求項8に記載のバスアービタ。
  10. 前記コントローラが、前記ストリームトランザクションに関連付けられた前記最終期限内に定期的に、前記バスアービトレーションポリシーを評価するように構成される、請求項8に記載のバスアービタ。
  11. 前記コントローラが、前記ストリームトランザクションのために転送されたデータ量が前記ストリームトランザクションに関連付けられた前記最終期限に先行している場合、前記ストリームトランザクションの優先順位を下げるように構成される、請求項8に記載のバスアービタ。
  12. 前記コントローラが、前記ストリームトランザクションのために転送されたデータ量が前記ストリームトランザクションに関連付けられた前記最終期限よりも遅れている場合、前記ストリームトランザクションの優先順位を上げるように構成される、請求項8に記載のバスアービタ。
  13. 前記コントローラが、前記ストリームトランザクションに関連付けられた前記最終期限を満たすことができない場合、前記ストリームトランザクションを終了するように構成される、請求項8に記載のバスアービタ。
  14. 前記コントローラが、最終期限を有する複数のストリームトランザクションに基づいて前記バスアービトレーションポリシーを評価するように構成される、請求項1に記載のバスアービタ。
  15. 前記コントローラが、前記複数のストリームトランザクションのために前記バスアービトレーションポリシーを評価するために前記複数のストリームトランザクションの各々についての実現可能性係数を決定するようにさらに構成される、請求項14に記載のバスアービタ。
  16. 前記コントローラが、前記複数のストリームトランザクションの各々について決定される前記実現可能性係数に基づいて、前記複数のストリームトランザクションの優先順位を調整するようにさらに構成される、請求項14に記載のバスアービタ。
  17. 半導体ダイに統合される、請求項1に記載のバスアービタ。
  18. 前記バスアービタが一体化されるセットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータのモニタ、テレビ、チューナ、ラジオ、サテライトラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されたデバイスをさらに備える、請求項1に記載のバスアービタ。
  19. バス上で通信されるストリームトランザクションをアービトレーションする方法であって、
    前記バスに結合されたデバイスからバス上のストリームトランザクションを受信するステップと、
    前記バス上のストリームトランザクションをアービトレーションするように構成されたコントローラで、前記ストリームトランザクションに関連する情報に基づいて、前記バス上の前記ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価するステップと
    を含む方法。
  20. 前記コントローラが前記評価に基づいてバスアービトレーションポリシーを適用するステップをさらに含む、請求項19に記載の方法。
  21. 前記コントローラが前記評価に基づいてデフォルトのバスアービトレーションポリシーを適用するステップをさらに含む、請求項19に記載の方法。
  22. 前記バスアービトレーションポリシーを評価するステップが、前記ストリームトランザクションについての優先順位に基づく、請求項19に記載の方法。
  23. 前記ストリームトランザクションに関連する前記情報に基づいて、前記ストリームトランザクションの保留中、前記ストリームトランザクションのために前記バスアービトレーションポリシーを連続的に評価するステップをさらに含む請求項19に記載の方法。
  24. 前記バスアービトレーションポリシーを評価するステップが、前記ストリームトランザクションに関連付けられた最終期限に基づく、請求項19に記載の方法。
  25. 前記ストリームトランザクションに関連付けられた前記最終期限が、前記ストリームトランザクションに関連付けられた直接メモリアクセス(DMA)記述子中に埋め込まれた、請求項24に記載の方法。
  26. 前記ストリームトランザクションに関連付けられた前記最終期限内に定期的に、前記バスアービトレーションポリシーを評価するステップをさらに含む、請求項24に記載の方法。
  27. 前記ストリームトランザクションのために転送されたデータ量が前記ストリームトランザクションに関連付けられた前記最終期限に先行している場合、前記ストリームトランザクションの優先順位を下げるステップをさらに含む、請求項24に記載の方法。
  28. 前記ストリームトランザクションのために転送されたデータ量が前記ストリームトランザクションに関連付けられた前記最終期限よりも遅れている場合、前記ストリームトランザクションの優先順位を上げるステップをさらに含む、請求項24に記載の方法。
  29. 前記バスアービトレーションポリシーを評価するステップが、最終期限を有する複数のストリームトランザクションに基づく、請求項24に記載の方法。
  30. 前記複数のストリームトランザクションのために前記バスアービトレーションポリシーを評価するために前記複数のストリームトランザクションの各々についての実現可能性係数を決定するステップをさらに含む請求項29に記載の方法。
  31. 前記複数のストリームトランザクションの各々について決定される前記実現可能性係数に基づいて、前記複数のストリームトランザクションの優先順位を調整するステップをさらに含む請求項30に記載の方法。
  32. バスアービタに、
    バスに結合されたデバイスから前記バス上のストリームトランザクションを受信させ、前記バス上の前記ストリームトランザクションをアービトレーションさせ、
    前記ストリームトランザクションに関連する情報に基づいて、前記バス上の前記ストリームトランザクションをアービトレーションするためにバスアービトレーションポリシーを評価させる
    ためのコンピュータ実行可能命令を記録するコンピュータ可読記録媒体。
  33. 前記コンピュータ実行可能命令が、さらに、前記アービタに、前記評価に基づいてバスアービトレーションポリシーを適用させる、請求項32に記載のコンピュータ可読記録媒体。
  34. 前記コンピュータ実行可能命令が、さらに、前記アービタに、前記評価に基づいてデフォルトのバスアービトレーションポリシーを適用させる、請求項32に記載のコンピュータ可読記録媒体。
  35. 前記バスアービトレーションポリシーがストリームトランザクションをアービトレーションするための優先順位方式から構成される、請求項32に記載のコンピュータ可読記録媒体。
  36. 前記コンピュータ実行可能命令が、さらに、前記アービタに、前記ストリームトランザクションに関連する前記情報に基づいて、前記ストリームトランザクションの保留中、前記ストリームトランザクションのために前記バスアービトレーションポリシーを連続的に評価させる、請求項32に記載のコンピュータ可読記録媒体。
  37. 前記コンピュータ実行可能命令が、前記アービタに、前記ストリームトランザクションに関連付けられた最終期限に基づいて前記バスアービトレーションポリシーを評価させる、請求項32に記載のコンピュータ可読記録媒体。
  38. 前記コンピュータ実行可能命令が、前記アービタに、最終期限を有する複数のストリームトランザクションに基づいて前記バスアービトレーションポリシーを評価させる、請求項32に記載のコンピュータ可読記録媒体。
JP2013533009A 2010-10-08 2011-10-10 ストリームトランザクションに関連する情報に基づくストリームトランザクションのアービトレーション Expired - Fee Related JP5662585B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/900,800 US20120089759A1 (en) 2010-10-08 2010-10-08 Arbitrating Stream Transactions Based on Information Related to the Stream Transaction(s)
US12/900,800 2010-10-08
PCT/US2011/055639 WO2012048328A1 (en) 2010-10-08 2011-10-10 Arbitrating stream transactions based on information related to the stream transaction(s)

Publications (2)

Publication Number Publication Date
JP2013542520A true JP2013542520A (ja) 2013-11-21
JP5662585B2 JP5662585B2 (ja) 2015-02-04

Family

ID=44863251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013533009A Expired - Fee Related JP5662585B2 (ja) 2010-10-08 2011-10-10 ストリームトランザクションに関連する情報に基づくストリームトランザクションのアービトレーション

Country Status (5)

Country Link
US (1) US20120089759A1 (ja)
EP (1) EP2625619B1 (ja)
JP (1) JP5662585B2 (ja)
KR (1) KR101537034B1 (ja)
WO (1) WO2012048328A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016503935A (ja) * 2013-01-17 2016-02-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated プロセッサベースのシステムにおける異種メモリアクセス要求をサポートするための、異種メモリシステム、ならびに関連する方法およびコンピュータ可読媒体
JP2020129205A (ja) * 2019-02-07 2020-08-27 キヤノン株式会社 制御装置および制御方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615638B2 (en) 2010-10-08 2013-12-24 Qualcomm Incorporated Memory controllers, systems and methods for applying page management policies based on stream transaction information
US8527684B2 (en) * 2010-11-12 2013-09-03 Lsi Corporation Closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC
US10489319B2 (en) * 2016-12-20 2019-11-26 Atmel Corporation Automatic transmission of dummy bits in bus master
US11093425B2 (en) 2018-08-20 2021-08-17 Apple Inc. Systems and methods for arbitrating traffic in a bus
US11537545B2 (en) * 2020-07-31 2022-12-27 Nxp Usa, Inc. Deadlock condition avoidance in a data processing system with a shared slave

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005085079A (ja) * 2003-09-10 2005-03-31 Matsushita Electric Ind Co Ltd データ転送制御装置
JP2006209500A (ja) * 2005-01-28 2006-08-10 Kyocera Mita Corp データ転送装置
JP2007026021A (ja) * 2005-07-15 2007-02-01 Nec Electronics Corp バス制御システム及びバス制御方法
JP2008158585A (ja) * 2006-12-20 2008-07-10 Canon Inc バスシステム及びそのバス調停方法
JP2010170473A (ja) * 2009-01-26 2010-08-05 Canon Inc バス調停装置
JP2010218170A (ja) * 2009-03-16 2010-09-30 Ricoh Co Ltd データ転送装置、情報処理装置、アービトレーション方法及び画像形成システム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454605A3 (en) * 1990-04-25 1992-04-22 International Business Machines Corporation Bus request device in a direct memory access (dma) system
DE69226011T2 (de) * 1991-12-04 1999-02-04 Philips Electronics Nv Arbiter mit einer gleichmässig verteilten Architektur
US5907688A (en) * 1996-06-28 1999-05-25 Intel Corporation Smart arbitration for non-symmetric data streams
US6028843A (en) * 1997-03-25 2000-02-22 International Business Machines Corporation Earliest deadline first communications cell scheduler and scheduling method for transmitting earliest deadline cells first
US5920564A (en) * 1997-04-30 1999-07-06 International Business Machines Corporation Method and apparatus for direct memory access on transmit complete
US6092158A (en) * 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6449702B1 (en) * 1999-12-30 2002-09-10 Intel Corporation Memory bandwidth utilization through multiple priority request policy for isochronous data streams
US6975629B2 (en) * 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
JP2002073527A (ja) * 2000-08-25 2002-03-12 Rohm Co Ltd Dmaコントローラ
US6775727B2 (en) * 2001-06-23 2004-08-10 Freescale Semiconductor, Inc. System and method for controlling bus arbitration during cache memory burst cycles
US7283468B1 (en) * 2002-03-15 2007-10-16 Packeteer, Inc. Method and system for controlling network traffic within the same connection with different packet tags by varying the policies applied to a connection
US7107365B1 (en) * 2002-06-25 2006-09-12 Cypress Semiconductor Corp. Early detection and grant, an arbitration scheme for single transfers on AMBA advanced high-performance bus
EP1403773B1 (en) * 2002-09-30 2007-06-13 Matsushita Electric Industrial Co., Ltd. Resource management device
US7013357B2 (en) * 2003-09-12 2006-03-14 Freescale Semiconductor, Inc. Arbiter having programmable arbitration points for undefined length burst accesses and method
US8493998B2 (en) * 2003-11-19 2013-07-23 Alcatel Lucent Method and apparatus for scheduling forward data bursts in wireless network
EP1716470A2 (en) * 2004-01-29 2006-11-02 Koninklijke Philips Electronics N.V. Programmable and pausable clock generation unit
US8478921B2 (en) * 2004-03-31 2013-07-02 Silicon Laboratories, Inc. Communication apparatus implementing time domain isolation with restricted bus access
DE602004019990D1 (de) * 2004-08-30 2009-04-23 Magima Digital Information Co Verfahren und system zum datentransfer
US7930444B2 (en) * 2005-06-30 2011-04-19 Freescale Semiconductor, Inc. Device and method for controlling multiple DMA tasks
US7395361B2 (en) * 2005-08-19 2008-07-01 Qualcomm Incorporated Apparatus and methods for weighted bus arbitration among a plurality of master devices based on transfer direction and/or consumed bandwidth
JP4455540B2 (ja) * 2006-06-15 2010-04-21 キヤノン株式会社 バスシステム及び調停方法
US7647444B2 (en) * 2007-03-13 2010-01-12 Sun Microsystems, Inc. Method and apparatus for dynamic hardware arbitration
US8452907B2 (en) * 2007-03-27 2013-05-28 Arm Limited Data processing apparatus and method for arbitrating access to a shared resource
KR100973419B1 (ko) * 2008-06-11 2010-07-30 인하대학교 산학협력단 버스 중재 방법 및 장치
US8151008B2 (en) * 2008-07-02 2012-04-03 Cradle Ip, Llc Method and system for performing DMA in a multi-core system-on-chip using deadline-based scheduling
US8615638B2 (en) * 2010-10-08 2013-12-24 Qualcomm Incorporated Memory controllers, systems and methods for applying page management policies based on stream transaction information

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005085079A (ja) * 2003-09-10 2005-03-31 Matsushita Electric Ind Co Ltd データ転送制御装置
JP2006209500A (ja) * 2005-01-28 2006-08-10 Kyocera Mita Corp データ転送装置
JP2007026021A (ja) * 2005-07-15 2007-02-01 Nec Electronics Corp バス制御システム及びバス制御方法
JP2008158585A (ja) * 2006-12-20 2008-07-10 Canon Inc バスシステム及びそのバス調停方法
JP2010170473A (ja) * 2009-01-26 2010-08-05 Canon Inc バス調停装置
JP2010218170A (ja) * 2009-03-16 2010-09-30 Ricoh Co Ltd データ転送装置、情報処理装置、アービトレーション方法及び画像形成システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016503935A (ja) * 2013-01-17 2016-02-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated プロセッサベースのシステムにおける異種メモリアクセス要求をサポートするための、異種メモリシステム、ならびに関連する方法およびコンピュータ可読媒体
JP2020129205A (ja) * 2019-02-07 2020-08-27 キヤノン株式会社 制御装置および制御方法
JP7292044B2 (ja) 2019-02-07 2023-06-16 キヤノン株式会社 制御装置および制御方法

Also Published As

Publication number Publication date
WO2012048328A1 (en) 2012-04-12
EP2625619B1 (en) 2015-04-29
CN103201728A (zh) 2013-07-10
JP5662585B2 (ja) 2015-02-04
KR20130083910A (ko) 2013-07-23
KR101537034B1 (ko) 2015-07-16
US20120089759A1 (en) 2012-04-12
EP2625619A1 (en) 2013-08-14

Similar Documents

Publication Publication Date Title
KR101881089B1 (ko) 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들
JP5662585B2 (ja) ストリームトランザクションに関連する情報に基づくストリームトランザクションのアービトレーション
US9135072B2 (en) QoS-aware scheduling
US8762653B2 (en) Dynamic QoS upgrading
US9141568B2 (en) Proportional memory operation throttling
EP2431884B1 (en) Multi-ported memory controller with ports associated with traffic classes
EP2946302B1 (en) Heterogeneous memory systems, and related methods and computer-readable media for supporting heterogeneous memory access requests in processor-based systems
US20140181824A1 (en) Qos inband upgrade
US7213084B2 (en) System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
US8694705B2 (en) Information processing device
JP2010282405A (ja) データ処理システム
US20120072677A1 (en) Multi-Ported Memory Controller with Ports Associated with Traffic Classes
US10019380B2 (en) Providing memory management functionality using aggregated memory management units (MMUs)
US8706925B2 (en) Accelerating memory operations blocked by ordering requirements and data not yet received
TWI559228B (zh) 可變長度仲裁方法及裝置
JP4344163B2 (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
TWI784359B (zh) 使用共同計數器之記憶體請求逾時
JP2012168773A (ja) バスシステムおよびアクセス制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140619

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141204

R150 Certificate of patent or registration of utility model

Ref document number: 5662585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees