JP2008040650A - バスアービトレーション装置 - Google Patents

バスアービトレーション装置 Download PDF

Info

Publication number
JP2008040650A
JP2008040650A JP2006211927A JP2006211927A JP2008040650A JP 2008040650 A JP2008040650 A JP 2008040650A JP 2006211927 A JP2006211927 A JP 2006211927A JP 2006211927 A JP2006211927 A JP 2006211927A JP 2008040650 A JP2008040650 A JP 2008040650A
Authority
JP
Japan
Prior art keywords
requester
priority
bus arbitration
internal state
arbitration device
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
JP2006211927A
Other languages
English (en)
Other versions
JP4846482B2 (ja
Inventor
Takanori Furuzono
貴則 古園
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006211927A priority Critical patent/JP4846482B2/ja
Priority to US11/882,162 priority patent/US7606957B2/en
Publication of JP2008040650A publication Critical patent/JP2008040650A/ja
Application granted granted Critical
Publication of JP4846482B2 publication Critical patent/JP4846482B2/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
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

【課題】アクセスのレイテンシの削減を図り、システムの性能を向上させる。
【解決手段】共有資源と、共有バスと、複数のリクエスタとを有するバスシステムにおいて、前記複数のリクエスタによる前記共有バスを介しての前記共有資源へのアクセス要求の調停を行うバスアービトレーション装置であって、前記複数のリクエスタのうち少なくとも1つのリクエスタは、その内部の状態に応じて、そのリクエスタによるアクセス要求の優先順位を変更すべきであることを通知する内部状態信号を出力するものであり、当該バスアービトレーション装置は、前記内部状態信号に基づいて、前記アクセス要求の調停を行う。
【選択図】図1

Description

本発明は、複数のリクエスタによる共有資源への共有バスを介してのアクセスについて、バスアービトレーションを行う装置に関する。
近年、システムLSIにおいて、CPUやメディア処理エンジン等のリクエスタから共有資源であるメモリ等へ、システムが必要とするだけのアクセスを可能にすることが、重要となっている。また、共有資源に対して複数のリクエスタからのアクセスが行われる場合は、競合を回避するための調停を行うアービトレーション装置が必要となる。
そこで、各リクエスタに割り当てられた重みに相当する回数のアクセスを、当該リクエスタに許可することにより、システムが必要とする性能を満たすことを可能にしたバスアービトレーションの方法及び装置が、例えば、下記特許文献1に開示されている。
特表2000−500895号公報
しかしながら、従来のバスアービトレーション装置は、動画などの大量のデータ転送を行うようなリクエスタに対して高い優先度を割り当てる傾向があった。マルチメディア分野で用いられるシステムLSI等においては、メディア処理エンジンなどに比べて、CPUには低い優先度が割り当てられることが多い。このため、CPUのメモリアクセスにおける、他のリクエスタのアクセス完了待ちを含めたレイテンシが増大し、その結果、システムのリアルタイム性能の低下を招くという問題があった。
本発明は、システムにおいて低い優先度を割り当てられ、共有資源へのアクセスの頻度が内部状態に依存するCPUのようなリクエスタに関して、そのアクセスのレイテンシの削減を図り、システムの性能を向上させることを目的とする。
前記課題を解決するため、請求項1の発明が講じた手段は、共有資源と、共有バスと、複数のリクエスタとを有するバスシステムにおいて、前記複数のリクエスタによる前記共有バスを介しての前記共有資源へのアクセス要求の調停を行うバスアービトレーション装置であって、前記複数のリクエスタのうち少なくとも1つのリクエスタは、その内部の状態に応じて、そのリクエスタによるアクセス要求の優先順位を変更すべきであることを通知する内部状態信号を出力するものであり、当該バスアービトレーション装置は、前記内部状態信号に基づいて、前記アクセス要求の調停を行うものである。
請求項1の発明によると、バスアービトレーション装置は、リクエスタからの信号に従って、アクセス要求の優先順位を変更する。このため、リクエスタの内部の状態を、アクセス要求の調停に反映させることができる。
請求項2の発明は、請求項1記載のバスアービトレーション装置において、前記内部状態信号に基づいて、前記複数のリクエスタ間の所定の複数の優先順序のうち1つを選択し、選択した優先順序に従ってアクセス許可を行うものである。
請求項2の発明によると、バスアービトレーション装置は、リクエスタからの信号に従って、リクエスタ間の優先順序を選択する。このため、優先順序を容易に決定することができる。
請求項3の発明は、請求項2記載のバスアービトレーション装置において、前記複数の優先順序は、第1の優先順序及び第2の優先順序を含むものであり、前記第1の優先順序は、前記内部状態信号を出力するリクエスタにアクセスを許可する優先順位を、前記第2の優先順序での優先順位よりも高くしたものであり、当該バスアービトレーション装置は、前記内部状態信号が優先順位を上昇させるべきであることを示す場合は、前記第1の優先順序を選択し、そうでない場合は、前記第2の優先順序を選択するものである。
請求項3の発明によると、バスアービトレーション装置は、リクエスタからそのアクセス要求の優先順位を上昇させるべき内容の信号を受けた場合は、そのリクエスタの優先順位が高い優先順序を選択する。このため、リクエスタがアクセスを特に必要としているときには、そのリクエスタが優先されるような調停ができる。
請求項4の発明は、請求項3記載のバスアービトレーション装置において、前記複数の優先順序は、第3の優先順序を更に含むものであり、前記第3の優先順序は、前記内部状態信号を出力するリクエスタにアクセスを許可する優先順位を、前記第2の優先順序での優先順位よりも低くしたものであり、当該バスアービトレーション装置は、前記内部状態信号が優先順位を低下させるべきであることを示す場合は、前記第3の優先順序を選択するものである。
請求項4の発明によると、バスアービトレーション装置は、リクエスタからそのアクセス要求の優先順位を低下させるべき内容の信号を受けた場合は、そのリクエスタの優先順位が低い優先順序を選択する。このため、リクエスタがアクセスをあまり必要としていないときには、それ以外のリクエスタが優先されるような調停ができる。
請求項5の発明は、請求項1記載のバスアービトレーション装置において、受け付けた順に前記複数のリクエスタからの前記アクセス要求を格納するキューを更に備え、前記内部状態信号に基づいて前記キューに格納されたアクセス要求の間の順序を決定し、決定された順序に従って、前記複数のリクエスタにアクセスを許可するものである。
請求項6の発明は、請求項5記載のバスアービトレーション装置において、前記内部状態信号が優先順位を上昇させるべきであることを示している場合は、前記キューに格納されたアクセス要求の間の順序を、前記内部状態信号を出力するリクエスタによるアクセス要求を優先するように変更するものである。
請求項6の発明によると、バスアービトレーション装置は、リクエスタからそのアクセス要求の優先順位を上昇させるべき内容の信号を受けた場合は、キュー内でのそのアクセス要求の順序を優先させる。このため、リクエスタがアクセスを特に必要としているときには、そのリクエスタが優先されるような調停ができる。
請求項7の発明は、請求項1記載のバスアービトレーション装置において、前記内部状態信号に基づいて、前記複数のリクエスタのうち、そのアクセス要求を当該バスアービトレーション装置が受け付けることができるリクエスタを決定するものである。
請求項7の発明によると、バスアービトレーション装置は、リクエスタからの信号に従って、アクセス要求を受け付けるリクエスタを決定する。このため、調停の対象とするリクエスタの数を減らすことができる。
請求項8の発明は、請求項7記載のバスアービトレーション装置において、前記内部状態信号が優先順位を上昇させるべきであることを示している場合は、前記内部状態信号を出力するリクエスタによるアクセス要求を受け付けるようにするものである。
請求項8の発明によると、バスアービトレーション装置は、リクエスタからそのアクセス要求の優先順位を上昇させるべき内容の信号を受けた場合は、そのリクエスタによるアクセス要求を受け付けるようにする。このため、リクエスタがアクセスを特に必要としているときには、そのリクエスタが優先されるような調停ができる。
請求項9の発明は、請求項1記載のバスアービトレーション装置において、前記内部状態信号を出力するリクエスタのうち少なくとも1つのリクエスタは、キャッシュメモリを有するものであり、前記キャッシュメモリを有するリクエスタが出力する内部状態信号は、前記キャッシュメモリのキャッシュヒット率に基づいて決定されるものである。
請求項9の発明によると、アクセスを要求するリクエスタ内のキャッシュメモリのヒット率を、アクセス要求の調停に反映させることができる。
請求項10の発明は、請求項9記載のバスアービトレーション装置において、前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、前記キャッシュヒット率が所定の値未満の場合は、前記優先順位を上昇させるべきであることを示すように決定されるものである。
請求項10の発明によると、アクセスを要求するリクエスタ内のキャッシュメモリのヒット率が低い場合は、そのリクエスタが優先されるような調停ができる。
請求項11の発明は、請求項9記載のバスアービトレーション装置において、前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、前記キャッシュヒット率が所定の第1の基準値未満である場合は、前記優先順位を上昇させるべきであることを示すように決定され、前記キャッシュヒット率が前記所定の第1の基準値以上であり、かつ、所定の第2の基準値以下である場合は、前記優先順位を維持させるべきであることを示すように決定され、前記キャッシュヒット率が前記所定の第2の基準値より大きい場合は、前記優先順位を低下させるべきであることを示すように決定されるものである。
請求項11の発明によると、アクセスを要求するリクエスタ内のキャッシュメモリのヒット率に応じた、アクセス要求の調停ができる。
請求項12の発明は、請求項9記載のバスアービトレーション装置において、前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、第1のキャッシュヒット率より後に測定された第2のキャッシュヒット率が、前記第1のキャッシュヒット率より所定の値だけ低い基準値以下である場合は、前期優先順位を上昇させるべきであることを示すように決定されるものである。
請求項12の発明によると、アクセスを要求するリクエスタ内のキャッシュメモリのヒット率が所定の値以上に低下した場合は、そのリクエスタが優先されるような調停ができる。
請求項13の発明は、請求項9記載のバスアービトレーション装置において、前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、第1のキャッシュヒット率より後に測定された第2のキャッシュヒット率が、前記第1のキャッシュヒット率より所定の値だけ低い第1の基準値以下である場合は、前期優先順位を上昇させるべきであることを示すように決定され、前記第2のキャッシュヒット率が、前記第1の基準値より大きく、かつ、前記第1のキャッシュヒット率より所定の値だけ高い第2の基準値未満である場合は、前期優先順位を維持させるべきであることを示すように決定され、前記第2のキャッシュヒット率が、前記第2の基準値以上である場合は、前期優先順位を低下させるべきであることを示すように決定されるものである。
請求項13の発明によると、アクセスを要求するリクエスタ内のキャッシュメモリのヒット率の変化に応じた、アクセス要求の調停ができる。
請求項14の発明は、請求項1記載のバスアービトレーション装置において、前記内部状態信号を出力するリクエスタのうち少なくとも1つのリクエスタは、リクエスタ内部で発生した割り込みの制御を行う割り込み制御部を有するものであり、前記割り込み制御部を有するリクエスタが出力する内部状態信号は、前記割り込み制御部による割り込みの制御に基づいて決定されるものである。
請求項14の発明によると、アクセスを要求するリクエスタ内の割り込みの発生を、アクセス要求の調停に反映させることができる。
請求項15の発明は、請求項14記載のバスアービトレーション装置において、前記割り込み制御部を有するリクエスタが出力する前記内部状態信号は、前記割り込みの発生から所定の期間内は、前期優先順位を上昇させるべきであることを示すように決定されるものである。
請求項15の発明によると、アクセスを要求するリクエスタ内で割り込みが発生した場合は、所定の期間そのリクエスタが優先されるような調停ができる。
請求項16の発明は、請求項1記載のバスアービトレーション装置において、前記共有資源は、前記アクセス要求の調停により許可されたアクセスに従って、前記共有バスとの間でデータの入出力を行うものである。
請求項16の発明によると、調停により許可されたアクセスに対して、共有資源からデータを入出力させることができる。
本発明によれば、はじめに低い優先度を割り当てられたリクエスタであっても、その内部の状態をアクセス要求の調停に反映させ、優先度を高くすることができるので、アクセスのレイテンシが削減され、システムのリアルタイム性能を向上させることができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(第1の実施形態)
図1は、本発明に係るバスシステム1の構成を示すブロック図である。図1のバスシステム1は、リクエスタ2,3,4と、共有資源としてのメモリ5と、バスアービトレーション装置(以下、アービトレーション装置と称する)6と、共有バス7とを備えている。なお、共有資源としてメモリ以外のものが実装されていてもよい。
リクエスタ2,3,4は、共有バス7との間のインタフェースとして、それぞれ共有バスインタフェース信号12,13,14を入出力する。同様に、メモリ5は、共有バス7との間のインタフェースとして、共有バスインタフェース信号15を入出力する。これらの信号により、リクエスタ2,3,4は、共有バス7を介してメモリ5にアクセスすることができる。
アービトレーション装置6は、リクエスタ2,3,4との間のインタフェースとして、それぞれアービトレーションインタフェース信号22,23,24を入出力し、リクエスタ2,3,4による共有バス7を介したメモリ5へのアクセス要求を調停(アービトレーション)する。
アービトレーション装置6は、リクエスタ2,3,4からのアクセス要求が競合した場合の調停に用いる優先順序を、複数持つ。本実施形態では、アービトレーション装置6は、例えば以下の3つの優先順序を持つこととする。優先順序1はリクエスタ2、リクエスタ3、リクエスタ4の順に優先順位が高く、優先順序2はリクエスタ4、リクエスタ2、リクエスタ3の順に優先順位が高く、優先順序3はリクエスタ3、リクエスタ4、リクエスタ2の順に優先順位が高くなっている。
各時間においてどの優先順序が適用されるかは、システムにおいて各リクエスタが必要とする回数のデータ転送を満たすよう、あらかじめ決定される。なお、どの時間にどの優先順序を適用するかは固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、1つの優先順序が適用される期間の長さについても、レジスタ設定又はプログラムにより変更可能としてもよい。
リクエスタ2は、リクエスタ2の内部の状態を調停に反映させるために、内部状態信号32をアービトレーション装置6に出力する。内部状態信号32は、リクエスタ2のアクセス要求の優先順位を上昇させるべきであることを通知する第1の状態、通常の優先順位を維持させるべきであることを通知する第2の状態、又は、優先順位を低下させるべきであることを通知する第3の状態のいずれかを示す。
図2は、図1のリクエスタ2の構成を示すブロック図である。図2のリクエスタ2は、CPUコア201と、命令キャッシュ202と、データキャッシュ203と、バスインタフェース部204と、キャッシュヒット率観測部205と、割り込み制御部206と、内部状態信号生成部207とを備える。命令キャッシュ202及びデータキャッシュ203は、必要な容量のキャッシュメモリをそれぞれ有する。
CPUコア201は、図1のメモリ5から供給された命令を実行する。CPUコア201は、命令キャッシュ202及びデータキャッシュ203との間のインタフェースとして、CPUコアインタフェース信号210、211を入出力する。
命令キャッシュ202は、メモリ5に格納されている命令のコピーを保持し、データキャッシュ203は、メモリ5に格納されているデータのコピーを保持し、命令キャッシュ202及びデータキャッシュ203は、CPUコア201からの書き込みデータをそれぞれ保持する。命令キャッシュ202はキャッシュアクセス情報信号221を、データキャッシュ203はキャッシュアクセス情報信号231を、それぞれキャッシュヒット率観測部205に出力する。また、バスインタフェース部204との間のインタフェースとして、命令キャッシュ202はキャッシュインタフェース信号220を、データキャッシュ203はキャッシュインタフェース信号230を、それぞれ入出力する。
バスインタフェース部204は、図1の共有バス7を介してメモリ5へのアクセスを行う。バスインタフェース部204は、共有バス7との間のインタフェースとして共有バスインタフェース信号12を入出力し、アービトレーション装置6との間のインタフェースとしてアービトレーションインタフェース信号22を入出力する。
キャッシュヒット率観測部205は、キャッシュアクセス情報信号221及びキャッシュアクセス情報信号231に基づいて、所定の期間における命令キャッシュ202及びデータキャッシュ203のキャッシュヒット率をそれぞれ算出する。キャッシュヒット率観測部205は、内部状態信号生成部207に対し、命令キャッシュ202のヒット率をキャッシュヒット率情報信号250を出力することにより通知し、データキャッシュ203のヒット率をキャッシュヒット率情報信号251を出力することにより通知する。なお、ヒット率を算出する期間は、レジスタ設定又はプログラムにより変更可能としてもよい。
割り込み制御部206は、リクエスタ2で発生した、もしくはリクエスタ2に対して発生した割り込みの制御を行う。割り込み制御部206は、CPUコア201との間のインタフェースとして、割り込みインタフェース信号212を入出力する。また、所定の期間、割り込み通知信号260を出力することにより、割り込みの発生を内部状態信号生成部207に通知する。なお、全ての割り込みを、割り込み通知信号260によって通知する必要はなく、割り込みの種類、レジスタ設定、又はプログラムによりディスエーブル可能として、通知しない割り込みがあってもよい。また、通知される期間についても、レジスタ設定又はプログラムにより変更可能としてもよい。
内部状態生成部207は、キャッシュヒット率情報信号250、251、及び割り込み通知信号260に基づいて、内部状態信号32を生成し、アービトレーション装置6に出力する。
図3は、本発明の第1の実施形態に係る図1のアービトレーション装置6による調停の処理の流れを示すフローチャートである。
初期状態はステップ6001であり、システムが起動されたらステップ6002に遷移する。
ステップ6002では、アービトレーション装置6による調停に用いられる優先順序が優先順序1であるか否かが判定される。優先順序1であればステップ6005に、そうでなければステップ6003に遷移する。
ステップ6003では、調停に用いられる優先順序が優先順序2であるか否かが判定される。優先順序2であればステップ6006に、そうでなければステップ6004に遷移する。
ステップ6004では、調停に用いられる優先順序は自動的に優先順序3と判定し、ステップ6008に遷移する。
ステップ6005では、内部状態信号32が優先順位の低下を指示する第3の状態であるかが判定され、そうであった場合は調停に用いられる優先順序を変更するためにステップ6012へ、そうでない場合はステップ6011へ遷移する。
ステップ6006では、内部状態信号32が優先順位の低下を指示する第3の状態であるかが判定され、そうであった場合は調停に用いられる優先順序を変更するためステップ6013へ、そうでない場合はステップ6007へ遷移する。
ステップ6007では、内部状態信号32が優先順位の上昇を指示する第1の状態であるかが判定され、そうであった場合はステップ6009へ、そうでない場合はステップ6012へ遷移する。
ステップ6008では、内部状態信号32が優先順位の上昇を指示する第1の状態であるかが判定され、そうであった場合はステップ6010へ、そうでない場合はステップ6013へ遷移する。
ステップ6009では、リクエスタ2のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ2に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ2の優先順位を上げずにステップ6012に遷移する。そうでない場合は調停に用いられる優先順序を変更するためステップ6011に遷移する。なお、この期間及び基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
ステップ6010でも同様に、リクエスタ2のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ2に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ2の優先順位を上げずにステップ6013に遷移する。そうでない場合は調停に用いられる優先順序を変更するためステップ6012に遷移する。
ステップ6011では、優先順序1において最も優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6020に、そうでない場合はステップ6014に遷移する。
ステップ6012では、優先順序2において最も優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6022に、そうでない場合はステップ6015に遷移する。
ステップ6013では、優先順序3において最も優先度の高いリクエスタであるリクエスタ3からの要求が行われているかを判定する。リクエスタ3から要求があった場合はステップ6021に、そうでない場合はステップ6016に遷移する。
ステップ6014では、優先順序1において2番目に優先度の高いリクエスタであるリクエスタ3からの要求が行われているかを判定する。リクエスタ3から要求があった場合はステップ6021に、そうでない場合はステップ6017に遷移する。
ステップ6015では、優先順序2において2番目に優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6020に、そうでない場合はステップ6018に遷移する。
ステップ6016では、優先順序3において2番目に優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6022に、そうでない場合はステップ6019に遷移する。
ステップ6017では、優先順序1において3番目に優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6022に、そうでない場合はステップ6023に遷移する。
ステップ6018では、優先順序2において3番目に優先度の高いリクエスタであるリクエスタ3からの要求が行われているかを判定する。リクエスタ3から要求があった場合はステップ6021に、そうでない場合はステップ6023に遷移する。
ステップ6019では、優先順序3において3番目に優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6020に、そうでない場合はステップ6023に遷移する。
ステップ6020では、リクエスタ2の要求に許可を行い、リクエスタ2はメモリ5にアクセスする。アクセスが終了したらステップ6023に遷移する。
ステップ6021では、リクエスタ3の要求に許可を行い、リクエスタ3はメモリ5にアクセスする。アクセスが終了したらステップ6023に遷移する。
ステップ6022では、リクエスタ4の要求に許可を行い、リクエスタ4はメモリ5にアクセスする。アクセスが終了したらステップ6023に遷移する。
ステップ6023では、次のアクセス許可ができるまで待機し、アクセス可能になったらステップ6002に遷移する。
図4は、本発明の第1の実施形態に係る図2の内部状態信号生成部207における内部状態信号32を生成する処理の流れを示すフローチャートである。
初期状態はステップ2001であり、システムが起動されたらステップ2002に遷移する。
ステップ2002では、割り込み通知信号260により割り込みの発生が通知されているか否かを判定する。通知されている場合はステップ2009に、通知されていない場合はステップ2003に遷移する。
ステップ2003では、キャッシュヒット率情報信号250によって通知される命令キャッシュのヒット率が命令キャッシュの所定の第1の基準値を下回るか否かを判定する。下回る場合はステップ2009に、そうでない場合はステップ2004に遷移する。
ステップ2004では、キャッシュヒット率情報信号251によって通知されるデータキャッシュのヒット率がデータキャッシュの所定の第1の基準値を下回るか否かを判定する。下回る場合はステップ2009に、そうでない場合はステップ2005に遷移する。
なお、命令キャッシュの第1の基準値及びデータキャッシュの第1の基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、命令キャッシュの第1の基準値とデータキャッシュの第1の基準値とを同じ値としなくてもよい。
ステップ2005では、キャッシュヒット率情報信号250によって通知される命令キャッシュのヒット率が、命令キャッシュの所定の第2の基準値を上回るか否かを判定する。上回る場合はステップ2006に、そうでない場合はステップ2008に遷移する。命令キャッシュの第2の基準値は、命令キャッシュの第1の基準値よりも高い値とする。
ステップ2006では、キャッシュヒット率情報信号251によって通知されるデータキャッシュのヒット率がデータキャッシュの所定の第2の基準値を上回るか否かを判定する。上回る場合はステップ2007に、そうでない場合はステップ2008に遷移する。データキャッシュの第2の基準値は、データキャッシュの第1の基準値よりも高い値とする。
なお、命令キャッシュの第2の基準値及びデータキャッシュの第2の基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、命令キャッシュの第2の基準値とデータキャッシュの第2の基準値とを同じ値としなくてもよい。
ステップ2007では、内部状態信号32を優先順位の低下を指示する第3の状態とする。処理が終了すると、ステップ2010に遷移する。
ステップ2008では、内部状態信号32を通常の優先順位の維持を指示する第2の状態とする。処理が終了すると、ステップ2010に遷移する。
ステップ2009では、内部状態信号32を優先順位の上昇を指示する第1の状態とする。処理が終了すると、ステップ2010に遷移する。
ステップ2010では、次のサイクルまで待機し、次のサイクルとなったらステップ2002に遷移する。
なお、本実施形態ではリクエスタが3つの場合を例に示したが、リクエスタの数や、調停における具体的な優先順位はこの例の通りでなくてもよい。
また、本実施形態に係るバスシステム1は、単一のシステムLSI上で実現されてもよいし、複数のLSIの組み合わせであってもよい。
(第2の実施形態)
図5は、本発明の第2の実施形態に係る図1のアービトレーション装置6における調停の処理の流れを示すフローチャートである。本実施形態においては、第1の実施形態とは、アービトレーション装置6による調停の制御が異なる。
本実施形態に係るアービトレーション装置6は、リクエスタ2,3,4からのアクセス要求が競合した場合の調停に用いる優先順序について、以下の3つを持つ。優先順序1はリクエスタ2、リクエスタ3(リクエスタ4の要求は受け付けない)の順に優先順位が高く、優先順序2はリクエスタ4、リクエスタ2(リクエスタ3の要求は受け付けない)の順に優先順位が高く、優先順序3はリクエスタ3、リクエスタ4(リクエスタ2の要求は受け付けない)の順に優先順位が高くなっている。
初期状態はステップ6101であり、システムが起動されたらステップ6102に遷移する。
ステップ6102では、本実施形態に係るアービトレーション装置6による調停に用いられる優先順序が優先順序1であるか否かが判定される。優先順序1であればステップ6105に、そうでなければステップ6103に遷移する。
ステップ6103では、調停に用いられる優先順序が優先順序2であるか否かが判定される。優先順序2であればステップ6106に、そうでなければステップ6104に遷移する。
ステップ6104では、調停に用いられる優先順序は自動的に優先順序3と判定し、ステップ6108に遷移する。
ステップ6105では、内部状態信号32が優先順位の低下を指示する第3の状態であるかが判定され、そうであった場合は調停に用いられる優先順序を変更するためにステップ6116へ、そうでない場合はステップ6111へ遷移する。
ステップ6106では、内部状態信号32が優先順位の低下を指示する第3の状態であるかが判定され、そうであった場合はリクエスタ2の優先順位を低下させるためにステップ6114へ、そうでない場合はステップ6107へ遷移する。
ステップ6107では、内部状態信号32が優先順位の上昇を指示する第1の状態であるかが判定され、そうであった場合はステップ6109へ、そうでない場合はステップ6112へ遷移する。
ステップ6108では、内部状態信号32が優先順位の上昇を指示する第1の状態であるかが判定され、そうであった場合はステップ6110へ、そうでない場合はステップ6116へ遷移する。
ステップ6109では、リクエスタ2のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ2に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ2の優先順位を上げずにステップ6112に遷移する。そうでない場合はリクエスタ2の優先順位を上昇させるためにステップ6113に遷移する。なお、この期間及び基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
ステップ6110でも同様に、リクエスタ2のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ2に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ2の優先順位を上げずにステップ6116に遷移する。そうでない場合はリクエスタ2の優先順位を上昇させるためにステップ6115に遷移する。
ステップ6111では、優先順序1において最も優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6123に、そうでない場合はステップ6117に遷移する。
ステップ6112では、優先順序2において最も優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6125に、そうでない場合はステップ6118に遷移する。
ステップ6113では、優先順位が上昇されたリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6123に、そうでない場合はステップ6119に遷移する。
ステップ6114では、優先順序2において最も優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6125に、そうでない場合はステップ6120に遷移する。
ステップ6115では、優先順序3において最も優先度の高いリクエスタであるリクエスタ3からの要求が行われているかを判定する。リクエスタ3から要求があった場合はステップ6124に、そうでない場合はステップ6121に遷移する。
ステップ6116では、優先順序3において最も優先度の高いリクエスタであるリクエスタ3からの要求が行われているかを判定する。リクエスタ3から要求があった場合はステップ6124に、そうでない場合はステップ6122に遷移する。
ステップ6117では、優先順序1において2番目に優先度の高いリクエスタであるリクエスタ3からの要求が行われているかを判定する。リクエスタ3から要求があった場合はステップ6124に、そうでない場合はステップ6126に遷移する。
ステップ6118では、優先順序2において2番目に優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6123に、そうでない場合はステップ6126に遷移する。
ステップ6119では、優先順序2において最も優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6125に、そうでない場合はステップ6126に遷移する。
ステップ6120では、優先順序2において、リクエスタ2の優先順位を低下させたためにアクセス要求を受け付けることになったリクエスタ3からの要求が行われているかを判定する。リクエスタ3から要求があった場合はステップ6124に、そうでない場合はステップ6126に遷移する。
ステップ6121では、優先順位が上昇されたリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6123に、そうでない場合はステップ6126に遷移する。
ステップ6122では、優先順序3において2番目に優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6125に、そうでない場合はステップ6126に遷移する。
ステップ6126では、次のアクセス許可ができるまで待機し、アクセス可能になったらステップ6102に遷移する。
なお、本実施形態ではリクエスタが3つの場合を例に示したが、リクエスタの数や、調停における具体的な優先順位はこの例の通りでなくてもよい。
(第3の実施形態)
図6は、本発明の第3の実施形態に係る図1のアービトレーション装置6における調停の処理の流れを示すフローチャートである。本実施形態においては、第1の実施形態とは、アービトレーション装置6による調停の制御が異なる。
アービトレーション装置6は、リクエスタからのアクセス要求を保持するためのキューを有しており、リクエスタから要求が行われると、このキューに要求が格納される。複数のリクエスタによるアクセス要求が同一サイクル内に競合した場合は、所定の優先順序に基づいて調停が行われ、調停により決定された要求から順にキューに格納される。キューに格納された要求は、基本的には過去に格納されたものから順に、それぞれが対応するリクエスタにメモリ5へのアクセスが許可される。
本実施形態に係るアービトレーション装置6が持つ、リクエスタ2,3,4からのアクセス要求が競合した場合の調停に用いる優先順序は、リクエスタ4、リクエスタ2、リクエスタ3の順に優先順位が高くなっている。
初期状態はステップ6201であり、システムが起動されたらステップ6202に遷移する。
ステップ6202では、本実施形態に係るアービトレーション装置6が持つ優先順序において、最も優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合ステップ6207に、そうでない場合ステップ6203に遷移する。
ステップ6203では、本実施形態に係るアービトレーション装置6が持つ優先順序において、2番目に優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合ステップ6205に、そうでない場合ステップ6204に遷移する。
ステップ6204では、本実施形態に係るアービトレーション装置6が持つ優先順序において、3番目に優先度の高いリクエスタであるリクエスタ3からの要求が行われているかを判定する。リクエスタ3から要求があった場合ステップ6210に、そうでない場合ステップ6211に遷移する。
ステップ6205では、内部状態信号32が優先順位の上昇を指示する第1の状態であるかが判定され、そうであった場合ステップ6206へ、そうでない場合はステップ6208へ遷移する。
ステップ6206では、リクエスタ2のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ2に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はステップ6208に遷移する。そうでない場合はステップ6209に遷移する。なお、この期間及び基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
ステップ6207では、リクエスタ4からの要求をキューの最後尾に格納し、ステップ6211に遷移する。
ステップ6208では、リクエスタ2からの要求をキューの最後尾に格納し、ステップ6211に遷移する。
ステップ6209では、リクエスタ2からの要求をキューの最後尾に格納し、その後、キューに格納されているリクエスタ2からの要求全てを所定のシフト幅だけ前方にシフトして、キューに格納されている要求の間の順序を変更する。シフトした後、ステップ6211に遷移する。なお、このシフト幅については、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
ステップ6210では、リクエスタ3からの要求をキューの最後尾に格納し、ステップ6211に遷移する。
ステップ6211では、メモリ5へのアクセスが行われているかが判定される。行われていればステップ6213へ、そうでなければステップ6212へ遷移する。
ステップ6212では、キューの先頭にいる要求に該当するリクエスタに、メモリ5へのアクセスの許可を行う。その後ステップ6213に遷移する。
ステップ6213では、次のサイクルになったかを判定する。次のサイクルであればステップ6202へ遷移し、そうでなければステップ6213で待機する。
なお、本実施形態ではリクエスタが3つの場合を例に示したが、リクエスタの数や、調停における具体的な優先順位はこの例の通りでなくてもよい。
(第4の実施形態)
図7は、本発明の第4の実施形態に係る図2の内部状態信号生成部207における内部状態信号32を生成する処理の流れを示すフローチャートである。本実施形態においては、第1の実施形態とは、内部状態信号生成部207における内部状態信号32を生成する処理が異なる。内部状態信号32は、第1の実施形態と同様に、リクエスタ2のアクセス要求の優先順位を上昇させるべきであることを通知する第1の状態、通常の優先順位を維持させるべきであることを通知する第2の状態、又は、優先順位を低下させるべきであることを通知する第3の状態のいずれかを示す。
初期状態はステップ2101であり、システムが起動されたらステップ2102に遷移する。
ステップ2102では、図2の割り込み通知信号260により割り込みの発生が通知されているか否かを判定する。通知されている場合はステップ2110に、通知されていない場合はステップ2103に遷移する。
ステップ2103では、図2のキャッシュヒット率情報信号250、251によって通知されるキャッシュヒット率を、サンプリングする時間であるか否かが判定される。サンプリングする時間であればステップ2104に、そうでなければステップ2111に遷移する。なお、このサンプリングを行う時間の間隔は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
ステップ2104では、キャッシュヒット率情報信号250によって通知される命令キャッシュのヒット率が、前回サンプリングした命令キャッシュのヒット率より、命令キャッシュの所定の第3の基準値以上に下回るか否かを判定する。下回る場合はステップ2110に、そうでない場合はステップ2105に遷移する。
ステップ2105では、キャッシュヒット率情報信号251によって通知されるデータキャッシュのヒット率が、前回サンプリングしたデータキャッシュのヒット率より、データキャッシュの所定の第3の基準値以上に下回るか否かを判定する。下回る場合はステップ2110に、そうでない場合はステップ2106に遷移する。
なお、命令キャッシュの第3の基準値及びデータキャッシュの第3の基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、命令キャッシュの第3の基準値とデータキャッシュの第3の基準値とを同じ値としなくてもよい。
ステップ2106では、キャッシュヒット率情報信号250によって通知される命令キャッシュのヒット率が、前回サンプリングした命令キャッシュのヒット率より、命令キャッシュの所定の第4の基準値以上に上回るか否かを判定する。上回る場合はステップ2107に、そうでない場合はステップ2109に遷移する。命令キャッシュの第4の基準値は、命令キャッシュの第3の基準値よりも高い値とする。
ステップ2107では、キャッシュヒット率情報信号251によって通知されるデータキャッシュのヒット率が、前回サンプリングしたデータキャッシュのヒット率より、データキャッシュの所定の第4の基準値以上に上回るか否かを判定する。上回る場合はステップ2108に、そうでない場合はステップ2109に遷移する。データキャッシュの第4の基準値は、データキャッシュの第3の基準値よりも高い値とする。
なお、命令キャッシュの第4の基準値及びデータキャッシュの第4の基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、命令キャッシュの第4の基準値とデータキャッシュの第4の基準値とを同じ値としなくてもよい。
ステップ2108では、内部状態信号32を優先順位の低下を指示する第3の状態とする。処理が終了すると、ステップ2111に遷移する。
ステップ2109では、内部状態信号32を通常の優先順位の維持を指示する第2の状態とする。処理が終了すると、ステップ2111に遷移する。
ステップ2110では、内部状態信号32を優先順位の上昇を指示する第1の状態とする。処理が終了すると、ステップ2111に遷移する。
ステップ2111では、次のサイクルまで待機し、次のサイクルとなったらステップ2102に遷移する。
(第5の実施形態)
図8は、本発明の第5の実施形態に係るバスシステム9の構成を示すブロック図である。図8のバスシステム9は、図1のバスシステム1において、リクエスタ3に代えてリクエスタ8を備える。
リクエスタ8は、リクエスタ2と同様の構成であり、リクエスタ8の内部の状態を調停に反映させるために、内部状態信号33をアービトレーション装置6に出力する。内部状態信号33は、リクエスタ8のアクセス要求の優先順位を上昇させるべきであることを通知する第1の状態、通常の優先順位を維持させるべきであることを通知する第2の状態、又は、優先順位を低下させるべきであることを通知する第3の状態のいずれかを示す。
本実施形態では、アービトレーション装置6は、例えば以下の3つの優先順序を持つこととする。優先順序1はリクエスタ2、リクエスタ8、リクエスタ4の順に優先順位が高く、優先順序2はリクエスタ4、リクエスタ2、リクエスタ8の順に優先順位が高く、優先順序3はリクエスタ8、リクエスタ4、リクエスタ2の順に優先順位が高くなっている。
各時間においてどの優先順序が適用されるかは、システムにおいて各リクエスタが必要とする回数のデータ転送を満たすよう、あらかじめ決定される。
図9は、本発明の第5の実施形態に係る図8のアービトレーション装置6における調停の処理の流れを示すフローチャートである。
初期状態はステップ6301であり、システムが起動されたらステップ6302に遷移する。
ステップ6302では、本実施形態に係るアービトレーション装置6による調停に用いられる優先順序が優先順序1であるか否かが判定される。優先順序1であればステップ6305に、そうでなければステップ6303に遷移する。
ステップ6303では、調停に用いられる優先順序が優先順序2であるか否かが判定される。優先順序2であればステップ6306に、そうでなければステップ6304に遷移する。
ステップ6304では、調停に用いられる優先順序は自動的に優先順序3と判定し、ステップ6308に遷移する。
ステップ6305では、内部状態信号32が優先順位の低下を指示する第3の状態であるかが判定され、第3の状態であった場合はステップ6312へ、そうでない場合はステップ6311へ遷移する。
ステップ6306では、内部状態信号32が優先順位の低下を指示する第3の状態であるかが判定され、第3の状態であった場合はステップ6315へ、そうでない場合はステップ6307へ遷移する。
ステップ6307では、内部状態信号32が優先順位の上昇を指示する第1の状態であるかが判定され、第1の状態であった場合はステップ6309へ、そうでない場合はステップ6313へ遷移する。
ステップ6308では、内部状態信号32が優先順位の上昇を指示する第1の状態であるかが判定され、第1の状態であった場合はステップ6310へ、そうでない場合はステップ6317へ遷移する。
ステップ6309では、リクエスタ2のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ2に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ2の優先順位を上げずにステップ6313に遷移する。そうでない場合は調停に用いられる優先順序を変更するためステップ6314に遷移する。なお、この期間及び基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
ステップ6310でも同様に、リクエスタ2のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ2に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ2の優先順位を上げずにステップ6317に遷移する。そうでない場合は調停に用いられる優先順序を変更するためステップ6316に遷移する。
ステップ6311では、内部状態信号33が優先順位の低下を指示する第3の状態であるかが判定され、第3の状態であった場合はステップ6336へ、そうでない場合はステップ6320へ遷移する。
ステップ6312では、内部状態信号33が優先順位の低下を指示する第3の状態であるかが判定され、第3の状態であった場合はステップ6337へ、そうでない場合はステップ6334へ遷移する。
ステップ6313では、内部状態信号33が優先順位の上昇を指示する第1の状態であるかが判定され、第1の状態であった場合はステップ6318へ、そうでない場合はステップ6337へ遷移する。
ステップ6314では、内部状態信号33が優先順位の上昇を指示する第1の状態であるかが判定され、第1の状態であった場合はステップ6319へ、そうでない場合はステップ6336へ遷移する。
ステップ6315では、内部状態信号33が優先順位の低下を指示する第3の状態であるかが判定され、第3の状態であった場合はステップ6337へ、そうでない場合はステップ6321へ遷移する。
ステップ6316では、内部状態信号33が優先順位の低下を指示する第3の状態であるかが判定され、第3の状態であった場合はステップ6335へ、そうでない場合はステップ6334へ遷移する。
ステップ6317では、内部状態信号33が優先順位の低下を指示する第3の状態であるかが判定され、第3の状態であった場合は、リクエスタ8の優先順位を低下させるためにステップ6338へ、そうでない場合はステップ6339へ遷移する。
ステップ6318では、リクエスタ8のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ8に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合は、この期間ではリクエスタ8の優先順位を上げずにステップ6337に遷移する。そうでない場合は、リクエスタ2,8の優先順位を上昇させるためにステップ6338に遷移する。なお、この期間及び基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、リクエスタ8に対する期間及び基準値は、リクエスタ2に対するものと異なってもよい。
ステップ6319でも同様に、リクエスタ8のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ8に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ8の優先順位を上げずにステップ6336に遷移する。そうでない場合はリクエスタ2,8の優先順位を上昇させるためにステップ6335に遷移する。
ステップ6320では、内部状態信号33が優先順位の上昇を指示する第1の状態であるかが判定され、第1の状態であった場合はステップ6322へ、そうでない場合はステップ6335へ遷移する。
ステップ6321では、内部状態信号33が優先順位の上昇を指示する第1の状態であるかが判定され、第1の状態であった場合はステップ6323へ、そうでない場合はステップ6338へ遷移する。
ステップ6322では、リクエスタ8のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ8に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合は、この期間ではリクエスタ8の優先順位を上げずにステップ6335に遷移する。そうでない場合は、リクエスタ8の優先順位を上昇させるためにステップ6324に遷移する。
ステップ6323では、リクエスタ8のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ8に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はステップ6338に遷移する。そうでない場合は、リクエスタ8の優先順位を上昇させるためにステップ6339に遷移する。
ステップ6324では、内部状態信号32が優先順位の上昇を指示する第1の状態であるかが判定され、第1の状態であった場合はステップ6325へ、そうでない場合はステップ6334へ遷移する。
ステップ6325では、リクエスタ2のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ2に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合は、この期間ではリクエスタ2の優先順位を上げずにステップ6334に遷移する。そうでない場合は、リクエスタ2の優先順位を上昇させるためにステップ6335に遷移する。
ステップ6334では、優先順位が上昇されたリクエスタ8からの要求が行われているかを判定する。リクエスタ8から要求があった場合はステップ6353に、そうでない場合はステップ6340に遷移する。
ステップ6335では、優先順序1において最も優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6352に、そうでない場合はステップ6341に遷移する。
ステップ6336では、優先順位が上昇されたリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6352に、そうでない場合はステップ6342に遷移する。
ステップ6337では、優先順序2において最も優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6354に、そうでない場合はステップ6343に遷移する。
ステップ6338では、優先順序2において最も優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6354に、そうでない場合はステップ6344に遷移する。
ステップ6339では、優先順序3において最も優先度の高いリクエスタであるリクエスタ8からの要求が行われているかを判定する。リクエスタ8から要求があった場合はステップ6353に、そうでない場合はステップ6345に遷移する。
ステップ6340では、優先順序1において最も優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6352に、そうでない場合はステップ6346に遷移する。
ステップ6341では、優先順序1において2番目に優先度の高いリクエスタであるリクエスタ8からの要求が行われているかを判定する。リクエスタ8から要求があった場合はステップ6353に、そうでない場合はステップ6347に遷移する。
ステップ6342では、優先順序2において最も優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6354に、そうでない場合はステップ6348に遷移する。
ステップ6343では、優先順序2において2番目に優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6352に、そうでない場合はステップ6349に遷移する。
ステップ6344では、優先順序3において最も優先度の高いリクエスタであるリクエスタ8からの要求が行われているかを判定する。リクエスタ8から要求があった場合はステップ6353に、そうでない場合はステップ6350に遷移する。
ステップ6345では、優先順序3において2番目に優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6354に、そうでない場合はステップ6351に遷移する。
ステップ6346では、優先順序1において3番目に優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6354に、そうでない場合はステップ6355に遷移する。
ステップ6347では、優先順序1において3番目に優先度の高いリクエスタであるリクエスタ4からの要求が行われているかを判定する。リクエスタ4から要求があった場合はステップ6354に、そうでない場合はステップ6355に遷移する。
ステップ6348では、優先順序2において3番目に優先度の高いリクエスタであるリクエスタ8からの要求が行われているかを判定する。リクエスタ8から要求があった場合はステップ6353に、そうでない場合はステップ6355に遷移する。
ステップ6349では、優先順序2において3番目に優先度の高いリクエスタであるリクエスタ8からの要求が行われているかを判定する。リクエスタ8から要求があった場合はステップ6353に、そうでない場合はステップ6355に遷移する。
ステップ6350では、優先順序3において3番目に優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6352に、そうでない場合はステップ6355に遷移する。
ステップ6351では、優先順序3において3番目に優先度の高いリクエスタであるリクエスタ2からの要求が行われているかを判定する。リクエスタ2から要求があった場合はステップ6352に、そうでない場合はステップ6355に遷移する。
ステップ6352では、リクエスタ2の要求に許可を行い、リクエスタ2はメモリ5にアクセスする。アクセスが終了したらステップ6355に遷移する。
ステップ6353では、リクエスタ8の要求に許可を行い、リクエスタ8はメモリ5にアクセスする。アクセスが終了したらステップ6355に遷移する。
ステップ6354では、リクエスタ3の要求に許可を行い、リクエスタ3はメモリ5にアクセスする。アクセスが終了したらステップ6355に遷移する。
ステップ6355では、次のアクセス許可ができるまで待機し、アクセス可能になったらステップ6302に遷移する。
なお、本実施形態ではリクエスタが3つの場合を例に示したが、リクエスタの数や、調停における具体的な優先順位はこの例の通りでなくてもよい。
以上説明したように、本発明は、CPU等のリクエスタについて、内部状態をアクセス要求の調停に反映し、アクセスのレイテンシを減らすことができるので、マルチメディア処理を行うシステムをはじめ、複数のリクエスタが共有資源へアクセスする各種のシステム等について有用である。
本発明に係るバスシステム1の構成を示すブロック図である。 図1のリクエスタ2の構成を示すブロック図である。 本発明の第1の実施形態に係る図1のアービトレーション装置6による調停の処理の流れを示すフローチャートである。 本発明の第1の実施形態に係る図2の内部状態信号生成部207における内部状態信号32を生成する処理の流れを示すフローチャートである。 本発明の第2の実施形態に係る図1のアービトレーション装置6における調停の処理の流れを示すフローチャートである。 本発明の第3の実施形態に係る図1のアービトレーション装置6における調停の処理の流れを示すフローチャートである。 本発明の第4の実施形態に係る図2の内部状態信号生成部207における内部状態信号32を生成する処理の流れを示すフローチャートである。 本発明の第5の実施形態に係るバスシステム9の構成を示すブロック図である。 本発明の第5の実施形態に係る図8のアービトレーション装置6における調停の処理の流れを示すフローチャートである。
符号の説明
1,9 バスシステム
2,3,4,8 リクエスタ
5 メモリ(共有資源)
6 アービトレーション装置(バスアービトレーション装置)
7 共有バス
32,33 内部状態信号

Claims (16)

  1. 共有資源と、共有バスと、複数のリクエスタとを有するバスシステムにおいて、前記複数のリクエスタによる前記共有バスを介しての前記共有資源へのアクセス要求の調停を行うバスアービトレーション装置であって、
    前記複数のリクエスタのうち少なくとも1つのリクエスタは、
    その内部の状態に応じて、そのリクエスタによるアクセス要求の優先順位を変更すべきであることを通知する内部状態信号を出力するものであり、
    当該バスアービトレーション装置は、
    前記内部状態信号に基づいて、前記アクセス要求の調停を行う
    ことを特徴とするバスアービトレーション装置。
  2. 請求項1記載のバスアービトレーション装置において、
    前記内部状態信号に基づいて、前記複数のリクエスタ間の所定の複数の優先順序のうち1つを選択し、選択した優先順序に従ってアクセス許可を行う
    ことを特徴とするバスアービトレーション装置。
  3. 請求項2記載のバスアービトレーション装置において、
    前記複数の優先順序は、第1の優先順序及び第2の優先順序を含むものであり、
    前記第1の優先順序は、前記内部状態信号を出力するリクエスタにアクセスを許可する優先順位を、前記第2の優先順序での優先順位よりも高くしたものであり、
    当該バスアービトレーション装置は、
    前記内部状態信号が優先順位を上昇させるべきであることを示す場合は、前記第1の優先順序を選択し、そうでない場合は、前記第2の優先順序を選択する
    ことを特徴とするバスアービトレーション装置。
  4. 請求項3記載のバスアービトレーション装置において、
    前記複数の優先順序は、第3の優先順序を更に含むものであり、
    前記第3の優先順序は、前記内部状態信号を出力するリクエスタにアクセスを許可する優先順位を、前記第2の優先順序での優先順位よりも低くしたものであり、
    当該バスアービトレーション装置は、
    前記内部状態信号が優先順位を低下させるべきであることを示す場合は、前記第3の優先順序を選択する
    ことを特徴とするバスアービトレーション装置。
  5. 請求項1記載のバスアービトレーション装置において、
    受け付けた順に前記複数のリクエスタからの前記アクセス要求を格納するキューを更に備え、
    前記内部状態信号に基づいて前記キューに格納されたアクセス要求の間の順序を決定し、決定された順序に従って、前記複数のリクエスタにアクセスを許可する
    ことを特徴とするバスアービトレーション装置。
  6. 請求項5記載のバスアービトレーション装置において、
    前記内部状態信号が優先順位を上昇させるべきであることを示している場合は、前記キューに格納されたアクセス要求の間の順序を、前記内部状態信号を出力するリクエスタによるアクセス要求を優先するように変更する
    ことを特徴とするバスアービトレーション装置。
  7. 請求項1記載のバスアービトレーション装置において、
    前記内部状態信号に基づいて、前記複数のリクエスタのうち、そのアクセス要求を当該バスアービトレーション装置が受け付けることができるリクエスタを決定する
    ことを特徴とするバスアービトレーション装置。
  8. 請求項7記載のバスアービトレーション装置において、
    前記内部状態信号が優先順位を上昇させるべきであることを示している場合は、前記内部状態信号を出力するリクエスタによるアクセス要求を受け付けるようにする
    ことを特徴とするバスアービトレーション装置。
  9. 請求項1記載のバスアービトレーション装置において、
    前記内部状態信号を出力するリクエスタのうち少なくとも1つのリクエスタは、
    キャッシュメモリを有するものであり、
    前記キャッシュメモリを有するリクエスタが出力する内部状態信号は、前記キャッシュメモリのキャッシュヒット率に基づいて決定されるものである
    ことを特徴とするバスアービトレーション装置。
  10. 請求項9記載のバスアービトレーション装置において、
    前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、前記キャッシュヒット率が所定の値未満の場合は、前記優先順位を上昇させるべきであることを示すように決定されるものである
    ことを特徴とするバスアービトレーション装置。
  11. 請求項9記載のバスアービトレーション装置において、
    前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、前記キャッシュヒット率が所定の第1の基準値未満である場合は、前記優先順位を上昇させるべきであることを示すように決定され、前記キャッシュヒット率が前記所定の第1の基準値以上であり、かつ、所定の第2の基準値以下である場合は、前記優先順位を維持させるべきであることを示すように決定され、前記キャッシュヒット率が前記所定の第2の基準値より大きい場合は、前記優先順位を低下させるべきであることを示すように決定されるものである
    ことを特徴とするバスアービトレーション装置。
  12. 請求項9記載のバスアービトレーション装置において、
    前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、第1のキャッシュヒット率より後に測定された第2のキャッシュヒット率が、前記第1のキャッシュヒット率より所定の値だけ低い基準値以下である場合は、前期優先順位を上昇させるべきであることを示すように決定されるものである
    ことを特徴とするバスアービトレーション装置。
  13. 請求項9記載のバスアービトレーション装置において、
    前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、第1のキャッシュヒット率より後に測定された第2のキャッシュヒット率が、前記第1のキャッシュヒット率より所定の値だけ低い第1の基準値以下である場合は、前期優先順位を上昇させるべきであることを示すように決定され、前記第2のキャッシュヒット率が、前記第1の基準値より大きく、かつ、前記第1のキャッシュヒット率より所定の値だけ高い第2の基準値未満である場合は、前期優先順位を維持させるべきであることを示すように決定され、前記第2のキャッシュヒット率が、前記第2の基準値以上である場合は、前期優先順位を低下させるべきであることを示すように決定されるものである
    ことを特徴とするバスアービトレーション装置。
  14. 請求項1記載のバスアービトレーション装置において、
    前記内部状態信号を出力するリクエスタのうち少なくとも1つのリクエスタは、
    リクエスタ内部で発生した割り込みの制御を行う割り込み制御部を有するものであり、
    前記割り込み制御部を有するリクエスタが出力する内部状態信号は、前記割り込み制御部による割り込みの制御に基づいて決定されるものである
    ことを特徴とするバスアービトレーション装置。
  15. 請求項14記載のバスアービトレーション装置において、
    前記割り込み制御部を有するリクエスタが出力する前記内部状態信号は、前記割り込みの発生から所定の期間内は、前期優先順位を上昇させるべきであることを示すように決定されるものである
    ことを特徴とするバスアービトレーション装置。
  16. 請求項1記載のバスアービトレーション装置において、
    前記共有資源は、
    前記アクセス要求の調停により許可されたアクセスに従って、前記共有バスとの間でデータの入出力を行うものである
    ことを特徴とするバスアービトレーション装置。
JP2006211927A 2006-08-03 2006-08-03 バスアービトレーション装置 Expired - Fee Related JP4846482B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006211927A JP4846482B2 (ja) 2006-08-03 2006-08-03 バスアービトレーション装置
US11/882,162 US7606957B2 (en) 2006-08-03 2007-07-31 Bus system including a bus arbiter for arbitrating access requests

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006211927A JP4846482B2 (ja) 2006-08-03 2006-08-03 バスアービトレーション装置

Publications (2)

Publication Number Publication Date
JP2008040650A true JP2008040650A (ja) 2008-02-21
JP4846482B2 JP4846482B2 (ja) 2011-12-28

Family

ID=39030616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006211927A Expired - Fee Related JP4846482B2 (ja) 2006-08-03 2006-08-03 バスアービトレーション装置

Country Status (2)

Country Link
US (1) US7606957B2 (ja)
JP (1) JP4846482B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008731A (ja) * 2009-06-29 2011-01-13 Fujitsu Ltd キャッシュメモリ装置、半導体集積回路および演算処理装置
US8694705B2 (en) 2010-06-28 2014-04-08 Renesas Electronics Corporation Information processing device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135195B2 (en) * 2012-07-24 2015-09-15 Freescasle Semiconductor, Inc. Prediction of electronic component behavior in bus-based systems
US9684633B2 (en) 2013-01-24 2017-06-20 Samsung Electronics Co., Ltd. Adaptive service controller, system on chip and method of controlling the same
US20150019776A1 (en) * 2013-07-14 2015-01-15 Qualcomm Technologies, Inc. Selective change of pending transaction urgency
US9563590B2 (en) * 2014-03-17 2017-02-07 Nxp Usa, Inc. Devices with arbitrated interface busses, and methods of their operation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11316738A (ja) * 1997-12-22 1999-11-16 Compaq Computer Corp 公平な仲裁機構を提供するコンピュータ・システム
JP2001101128A (ja) * 1999-09-27 2001-04-13 Toshiba Corp データ処理装置
JP2006195867A (ja) * 2005-01-17 2006-07-27 Matsushita Electric Ind Co Ltd バス調停方法及び半導体装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385678B2 (en) 1996-09-19 2002-05-07 Trimedia Technologies, Inc. Method and apparatus for bus arbitration with weighted bandwidth allocation
US6006303A (en) * 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
JP4042359B2 (ja) * 2001-07-10 2008-02-06 日本電気株式会社 キャッシュ制御方法及びキャッシュ装置
JP4907166B2 (ja) * 2005-01-12 2012-03-28 パナソニック株式会社 リソース管理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11316738A (ja) * 1997-12-22 1999-11-16 Compaq Computer Corp 公平な仲裁機構を提供するコンピュータ・システム
JP2001101128A (ja) * 1999-09-27 2001-04-13 Toshiba Corp データ処理装置
JP2006195867A (ja) * 2005-01-17 2006-07-27 Matsushita Electric Ind Co Ltd バス調停方法及び半導体装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008731A (ja) * 2009-06-29 2011-01-13 Fujitsu Ltd キャッシュメモリ装置、半導体集積回路および演算処理装置
US8589636B2 (en) 2009-06-29 2013-11-19 Fujitsu Limited Cache memory device, processor, and processing method
US8694705B2 (en) 2010-06-28 2014-04-08 Renesas Electronics Corporation Information processing device

Also Published As

Publication number Publication date
US20080034141A1 (en) 2008-02-07
JP4846482B2 (ja) 2011-12-28
US7606957B2 (en) 2009-10-20

Similar Documents

Publication Publication Date Title
US6772254B2 (en) Multi-master computer system with overlapped read and write operations and scalable address pipelining
JP4408263B2 (ja) データ転送システムおよびデータ転送方法
JP4715801B2 (ja) メモリアクセス制御装置
JP2008130056A (ja) 半導体回路
JP4706720B2 (ja) Dma制御システム、印刷装置、および転送指示プログラム
US20080270658A1 (en) Processor system, bus controlling method, and semiconductor device
JP5565204B2 (ja) データ転送装置、データ転送方法およびプログラム、ならびに、画像形成装置
JP4846482B2 (ja) バスアービトレーション装置
US6317813B1 (en) Method for arbitrating multiple memory access requests in a unified memory architecture via a non unified memory controller
US7913013B2 (en) Semiconductor integrated circuit
JP2002149591A (ja) プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置
JP2006215621A (ja) Dma制御装置
US7987437B2 (en) Structure for piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
JP2011034214A (ja) メモリ制御装置
JP2009059276A (ja) 情報処理装置およびプログラム
JP2007304830A (ja) 情報先行取得による調停方法および調停装置
JPH0844661A (ja) 情報処理装置
JPH0844662A (ja) 情報処理装置
JP2006331008A (ja) メモリインタフェース
US20100153610A1 (en) Bus arbiter and bus system
JP2006065453A (ja) データ処理装置
JP2008097462A (ja) 情報処理装置及び情報処理方法
JP2004062333A (ja) 画像処理装置
JP2007011884A (ja) データ転送装置
JPH09160868A (ja) バス調停装置およびバス調停方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110810

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: 20110927

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111012

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees