JP6513695B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP6513695B2
JP6513695B2 JP2016554520A JP2016554520A JP6513695B2 JP 6513695 B2 JP6513695 B2 JP 6513695B2 JP 2016554520 A JP2016554520 A JP 2016554520A JP 2016554520 A JP2016554520 A JP 2016554520A JP 6513695 B2 JP6513695 B2 JP 6513695B2
Authority
JP
Japan
Prior art keywords
control unit
setting register
master
masters
access right
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.)
Active
Application number
JP2016554520A
Other languages
English (en)
Other versions
JPWO2017056132A1 (ja
Inventor
翔 山中
翔 山中
俊行 平木
俊行 平木
義彦 堀田
義彦 堀田
入田 隆宏
隆宏 入田
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of JPWO2017056132A1 publication Critical patent/JPWO2017056132A1/ja
Application granted granted Critical
Publication of JP6513695B2 publication Critical patent/JP6513695B2/ja
Active 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は半導体装置に関し、特にバスを介して複数の回路ブロックが接続される半導体装置に関する。
半導体装置では、複数のバスマスタが共通バスに接続するバスシステムが多く提案されている。このようなバスシステムでは、複数のバスマスタからの共通バスへのリクエストに対して調停を行うことが必要である。調停に関する技術の例が特許文献1及び2に開示されている。
特許文献1には、優先マスタに指定されているマスタからのリクエストがある場合、優先マスタが最優先順位を有するスロットが現在のスロット以降にあると、優先マスタのレイテンシーを低減させるようにスロットの入れ替えを行う技術が開示されている。
また、特許文献2には、インタコネクトを経由して接続されるマルチマスタ・マルチスレーブで構成される回路において、物理ネットワークでリクエストを発行する前に、仮想ネットワーク上でノード間のトークンのやり取りを行うことによってバス調停を行う技術が開示されている。
特開2005−258867号公報 国際公開第2012/049485号
特許文献1の技術では、メモリコントローラのバッファの空き状況を見ずに、マスタからのリクエストをスロット毎に設定された優先マスタ情報に従って調停しているため、バス上でのリクエストが滞留する。このため、後続の優先度の高いリクエストが先行の優先度の低いリクエストによって流れなくなり、優先度の高いリクエストのレイテンシーが悪化するという問題があった。また、これを回避するためには、後続のリクエストが先行のリクエストを追い越せるように中間バッファを設ける必要があり、回路規模が増大してしまう。
また、特許文献2の技術では、リクエストをトリガにしたトークンを用いて調停を行った後に物理ネットワークでリクエストを発行するため、回路のレイテンシーが増大するという問題があった。また、多階層のインタコネクトでは、階層毎に調停を行うため、リクエストを溜め込むバッファが各階層に大量に必要であった。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、メモリコントローラのバッファの空き情報に基づいて、アクセス権の権利付与可能数を計算し、複数のマスタのQoS(Quality of Service)情報、及び権利付与可能数に基づいて、アクセス権の権利付与先のマスタを選択し、アクセス権が未付与であるマスタのリクエストを通さないものである。
前記一実施の形態によれば、バス上でのリクエストの滞留をなくし、レイテンシーの改善及び回路規模の削減を実現することができる半導体装置を提供することができる。
実施の形態1にかかる半導体装置の構成図である。 実施の形態1にかかるアクセス権に関するメモリコントローラの処理の一例を示すフローチャートである。 実施の形態1にかかるアクセス権に関する中央バス制御部の処理の一例を示すフローチャートである。 実施の形態1にかかるアクセス権に関するサブバス制御部の処理の一例を示すフローチャートである。 実施の形態2にかかる半導体装置の構成図である。 実施の形態2にかかる中央バス制御部の構成図である。 実施の形態2にかかるメモリコントローラの構成図である。 実施の形態2にかかる予約型レジスタ群の設定情報例を示す図である。 実施の形態2にかかる図8の設定におけるバンド幅の設定例を示す図である。 実施の形態2にかかる予約型レジスタ群及びリフレッシュ要求サブスロット番号設定レジスタの設定情報例を示す図である。 実施の形態2にかかる図10の設定におけるバンド幅の設定例を示す図である。 実施の形態2の変形例にかかる中央バス制御部の構成図である。 実施の形態2の変形例にかかる予約型レジスタ群の設定情報例を示す図である。 実施の形態2の変形例にかかる図13の設定におけるバンド幅の設定例を示す図である。 実施の形態3にかかる中央バス制御部の構成図である。 実施の形態3にかかる一定間隔でリクエストを発行するマスタについての配布優先度の例を示す図である。 実施の形態3にかかる前半はリクエストを出さず後半にのみリクエストを出すマスタについての配布優先度の例を示す図である。 実施の形態4にかかる半導体装置の構成図である。
以下、図面を参照しながら、実施の形態について説明する。以下の実施の形態に示す具体的な数値などは、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項などについては、適宜、省略及び簡略化がなされている。
また、以下の実施の形態には、様々な設定レジスタが存在するが、それぞれの設定レジスタが格納する値又は情報は、変更することが可能である。
実施の形態1
図1は、実施の形態1にかかる半導体装置の構成を示す図である。図1に示すように、実施の形態1にかかる半導体装置は、複数個のマスタ100と、複数個のサブバス制御部200aと、バスアービタ(Bus Arbiter)300と、メモリコントローラ400aと、メモリ500と、中央バス制御部600aと、バス10、バス20、バス30とを有する。なお、図1の例では、マスタ100の数を3つとしているが、マスタ100の数は、2つ以上であればいくつでもよい。以下、図1の3つのマスタ100を、それぞれマスタA、マスタB、マスタCとも呼ぶ。また、マスタ100の数とサブバス制御部200aの数は同数とする。
複数のマスタ100は、それぞれバス10を介して対応するサブバス制御部200aに接続されている。複数のマスタ100は、メモリ500に対するリクエストを、バス10を介してサブバス制御部200aへ出力する。
サブバス制御部200aは、リクエスト発行制御部201aを有する。リクエスト発行制御部201aは、バス10からリクエストを受け取る。また、リクエスト発行制御部201aは、中央バス制御部600aから優先レベル信号705を受け取る。ここで、優先レベル信号705とは、マスタ100のQoS情報に基づく優先レベルを示す信号である。
また、リクエスト発行制御部201aは、受け取ったリクエストについて、バス20へ出力するか否かを判定する。当該判定は、中央バス制御部600aからアクセス権の付与を示すアクセス権付与信号700が配布されたか否かにより行う。リクエスト発行制御部201aは、アクセス権付与信号700が配布された場合、受け取ったリクエストをバス20へ出力する。また、リクエスト発行制御部201aは、アクセス権付与信号700が配布されていない場合、すなわちアクセス権が未付与である場合、受け取ったリクエストをバス20へ出力しない。すなわち、リクエスト発行制御部201aは、アクセス権を獲得するまでマスタ100のリクエストを通すことができない。
そして、リクエスト発行制御部201aは、受け取ったリクエストをバス20へ出力する際には、対応するマスタ100の優先レベルを当該リクエストに付加して出力する。なお、当該優先レベルは、優先レベル信号705が示す優先レベルである。また、リクエスト発行制御部201aは、アクセス権を獲得したときに、バス10からリクエストを受け取っていないならば、アクセス権返却信号710により中央バス制御部600aへアクセス権を返却する。
バスアービタ300は、バス20からリクエストを受け取る。また、バスアービタ300は、受け取ったリクエストに付加されている優先レベルを用いてリクエストの調停を行う。なお、バスアービタ300が行う優先レベルを用いたリクエストの調停手法は、一般に知られた手法であり説明は省略する。そして、バスアービタ300は、調停の結果、複数のマスタ100からのリクエストのうち、優先レベルが最も高いリクエストをバス30へ出力する。なお、バスアービタ300が行う調停は、ラウンドロビン方式や固定優先方式であってもよい。
メモリコントローラ400aは、バッファ(Buffer)401を備えている。メモリコントローラ400aは、バス30からリクエストを受け取る。また、メモリコントローラ400aは、受け取ったリクエストをバッファ401に格納する。そして、メモリコントローラ400aは、バッファ401に格納されたリクエストに付加されている優先レベルを用いて、リクエストのスケジューリングを行い、メモリ500へのアクセスを制御する。また、メモリコントローラ400aは、バッファ401の使用状況を常に監視する。そして、レスポンス処理が終了したことにより、バッファ401が解放された場合、バッファ401の解放情報をバッファ解放通知信号720として中央バス制御部600aへ出力する。
メモリ500は、例えば、DDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等である。なお、メモリ500は、DDR SDRAM、SRAMに限らず他のメモリであってもよい。
中央バス制御部600aは、アクセス権についての制御を行うための機能部である。中央バス制御部600aは、付与可能最大数設定レジスタ601と、権利付与数制御部602と、権利付与選択制御部603aと、QoS情報レジスタ610とを備えている。
付与可能最大数設定レジスタ601は、アクセス権の権利付与可能数の最大数を格納する。ここで、アクセス権の権利付与可能数の最大数とは、付与することが可能なアクセス権の最大数を示す。なお、付与可能最大数設定レジスタ601が格納する権利付与可能数の最大数の値は、変更することができる。
権利付与数制御部602は、バッファ401が解放された場合、バッファ解放通知信号720をメモリコントローラ400aから受け取る。そして、権利付与数制御部602は、バッファ401の空き情報に基づいて、アクセス権の権利付与可能数を計算する。また、権利付与数制御部602は、計算した権利付与可能数を権利付与選択制御部603aへ出力する。
ここで、アクセス権の権利付与可能数の計算の具体例について説明する。権利付与数制御部602は、バッファ解放通知信号720の他に、権利付与可能数の最大数を付与可能最大数設定レジスタ601から読み出す。そして、権利付与数制御部602は、バッファ401の空き情報に基づいて、権利付与可能数の最大数を上限としてアクセス権の権利付与可能数を計算する。
また、権利付与数制御部602は、バッファ解放通知信号720の他に、アクセス権返却信号710をリクエスト発行制御部201aから受け取る。そして、権利付与数制御部602は、バッファ401の空き情報及びアクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する。
さらに、権利付与数制御部602は、バッファ解放通知信号720の他に、権利付与可能数の最大数、アクセス権返却信号710、及びアクセス権を配布した数を用いてアクセス権の権利付与可能数を計算することもできる。具体的には、権利付与可能数の最大数を起点として、アクセス権付与信号700を配布すると、配布した数だけ権利付与可能数を減らす。また、権利付与数制御部602は、メモリコントローラ400aからバッファ解放通知信号720を受け取る、又はリクエスト発行制御部201aからアクセス権返却信号710を受け取ることによって権利付与可能数を増やす。なお、権利付与数制御部602は、アクセス権を配布した数について、権利付与選択制御部603aから受け取ることにより認識してもよい。また、権利付与数制御部602は、権利付与選択制御部603aへ出力した権利付与可能数を、アクセス権を配布した数として認識するようにしてもよい。これは、権利付与選択制御部603aが、権利付与可能数分のすべてのアクセス権を必ず配布する場合に有効である。
QoS情報レジスタ610は、複数のマスタ100のQoS情報を格納する。
権利付与選択制御部603aは、複数のマスタ100のQoS情報をQoS情報レジスタ610から読み出す。また、権利付与選択制御部603aは、権利付与可能数を権利付与数制御部602から受け取る。そして、権利付与選択制御部603aは、複数のマスタ100のQoS情報、及び権利付与可能数に基づいて、アクセス権の権利付与先のマスタを選択する。具体的には、権利付与選択制御部603aは、権利付与可能数の範囲内で、QoS情報に基づく優先レベルが高いマスタ100に優先的にアクセス権を配布するように、アクセス権の権利付与先のマスタを選択する。
また、権利付与選択制御部603aは、アクセス権の権利付与先のマスタとして選択したマスタ100に対してアクセス権付与信号700を配布する。具体的には、選択したマスタ100のサブバス制御部200aに対してアクセス権付与信号700を出力する。なお、権利付与選択制御部603aにおけるアクセス権の権利付与先のマスタ選択及びアクセス権付与信号700の出力は、毎サイクル行われる。さらに、権利付与選択制御部603aは、マスタ100のQoS情報に基づく優先レベルを示す優先レベル信号705を、当該マスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603aにおける優先レベル信号705の出力は、QoS情報レジスタ610にQoS情報が格納されたタイミングで行われる。これにより、QoS情報レジスタ610に格納されたQoS情報に基づく優先レベルが、サブバス制御部200aにも反映される。
続いて、実施の形態1にかかる半導体装置におけるアクセス権に関するメモリコントローラ400a、中央バス制御部600a、及びサブバス制御部200aのそれぞれの処理フローの例を、図2、図3、及び図4を用いて説明する。
最初に、図2に示すフローチャートを用いてアクセス権に関するメモリコントローラ400aの処理フローについて説明する。
まず、メモリコントローラ400aは、バッファ401が解放されたか否かを監視する(S101)。S101にて、バッファ401が解放されていないと判定された場合、S101の監視を続ける。
S101にて、バッファ401が解放されたと判定された場合、メモリコントローラ400aは、バッファ401の解放情報をバッファ解放通知信号720として中央バス制御部600aへ出力し(S102)、S101に戻る。
次に、図3に示すフローチャートを用いてアクセス権に関する中央バス制御部600aの処理フローについて説明する。
まず、権利付与数制御部602は、バッファ解放通知信号720を受け取ったか否かを判定する(S201)。S201にて、バッファ解放通知信号720を受け取ったと判定された場合、権利付与数制御部602は、権利付与可能数を増やす(S202)。
S202の後、権利付与数制御部602は、アクセス権返却信号710を受け取ったか否かを判定する(S203)。また、S201にて、バッファ解放通知信号720を受け取っていないと判定された場合もS203へ進む。S203にて、アクセス権返却信号710を受け取ったと判定された場合、権利付与数制御部602は、権利付与可能数を増やす(S204)。
S204の後、権利付与選択制御部603aは、権利付与可能か否かを判定する(S205)。また、S203にて、アクセス権返却信号710を受け取っていないと判定された場合もS205へ進む。S205の判定は、権利付与数制御部602から権利付与可能数を受け取ることにより行う。なお、S205の判定は、毎サイクル行われる。
S205にて、権利付与可能でないと判定された場合、S201に戻る。他方、S205にて、権利付与可能と判定された場合、権利付与選択制御部603aは、権利付与先のマスタを選択する(S206)。S206の後、権利付与選択制御部603aは、権利付与先のマスタに対してアクセス権付与信号700を配布する(S207)。
S207の後、権利付与数制御部602は、権利付与可能数を減らし(S208)、S201に戻る。
なお、図3では、S201をS203より前に行っているが、S201とS203は、どちらを先に行ってもよい。また、図3では、S208をS207の後に行っているが、S208は、S207より前に行ってもよい。例えば、権利付与数制御部602は、権利付与可能数を権利付与選択制御部603aへ出力するタイミングで、権利付与可能数を減らしてもよい。
次に、図4に示すフローチャートを用いてアクセス権に関するサブバス制御部200aの処理フローについて説明する。
まず、リクエスト発行制御部201aは、アクセス権を獲得したか否かを判定する(S301)。S301にて、アクセス権を獲得していないと判定された場合、マスタ100のリクエストを通さず(S302)、S301に戻る。
他方、S301にて、アクセス権を獲得したと判定された場合、リクエスト発行制御部201aは、マスタ100から受け取ったリクエストを保持しているか否かを判定する(S303)。S303にて、リクエストを保持していないと判定された場合、アクセス権を権利付与数制御部602へ返却する(S304)。他方、S303にて、リクエストを保持していると判定された場合、リクエストを通す(S305)。すなわち、バス20へリクエストを出力する。その後、S301に戻る。
以上、説明したように、実施の形態1にかかる半導体装置では、メモリコントローラ400aのバッファ401の空き状況を監視し、中央バス制御部600aによりアクセス権を使ってすべてのマスタ100のリクエスト制御を行う。これによって、全体最適な制御を実現することができる。
また、権利付与数制御部602により配布するアクセス権の数を制御する。これによって、バスシステム全体で滞留するリクエストの数を制御することができる。
また、付与可能最大数設定レジスタ601によりアクセス権の権利付与可能数の最大数を設定可能な構成としている。これによって、当該最大数をメモリコントローラ400aのバッファ401と同じ数に設定すれば必ずバスが詰まらないように制御することができる。また、当該最大数をメモリコントローラ400aのバッファ401より大きい数に設定することによって、途中経路のバスに存在できるリクエストを考慮して制御することができる。
さらに、リクエスト発行制御部201aにより、アクセス権が付与されたマスタ100からのリクエストを保持していない場合、アクセス権を返却する構成としている。これによって、権利付与可能数を返却された数だけ増やすことができる。
実施の形態2
次に、実施の形態2にかかる半導体装置について説明する。図5に示すように、実施の形態2にかかる半導体装置は、複数個のマスタ100と、複数個のサブバス制御部200aと、バスアービタ300と、メモリコントローラ400bと、メモリ500と、中央バス制御部600bと、バス10、バス20、バス30とを有する。なお、複数個のマスタ100、複数個のサブバス制御部200a、バスアービタ300、メモリ500、バス10、バス20、バス30については、実施の形態1に示す構成と同じであるため、説明を省略する。
次に、中央バス制御部600bについて図6を用いて説明する。図6に示すように、中央バス制御部600bは、付与可能最大数設定レジスタ601と、権利付与数制御部602と、権利付与選択制御部603bと、スロット設定レジスタ604と、リフレッシュ要求サブスロット番号設定レジスタ605と、リフレッシュ要求コントローラ606と、マスク信号生成部607と、予約型レジスタ群620aと、転送量モニタ640aとを備えている。なお、付与可能最大数設定レジスタ601と、権利付与数制御部602については、実施の形態1に示す構成と同じであるため、説明を省略する。なお、予約型レジスタ群は、第1の設定レジスタ群と呼んでもよい。
スロット設定レジスタ604は、1基本スロット内に存在するサブスロットの数と1サブスロットの期間を格納する。ここで、基本スロットとは、メモリ500のリフレッシュ期間を示す。スロット設定レジスタ604が格納する1基本スロット内に存在するサブスロットの数、及び1サブスロットの期間は、変更することができる。
リフレッシュ要求サブスロット番号設定レジスタ605は、リフレッシュ要求コントローラ606がリフレッシュ要求信号740を出力するサブスロット番号を格納する。なお、リフレッシュ要求サブスロット番号設定レジスタ605が格納するサブスロット番号は、変更することができる。
リフレッシュ要求コントローラ606は、リフレッシュ要求サブスロット番号設定レジスタ605に格納されているサブスロット番号を読み出す。また、リフレッシュ要求コントローラ606は、読み出したサブスロット番号が示すサブスロットにてリフレッシュ要求信号740をメモリコントローラ400bへ出力する。
転送量モニタ640aは、複数のマスタ100からそれぞれ対応するサブバス制御部200aを介してバスアービタ300へ転送されるリクエストの転送量を測定する機能部である。転送量モニタ640aは、複数のバス20からのモニタ信号730により複数のマスタ100からのリクエストの転送量を測定する。そして、転送量モニタ640aは、測定した複数のマスタ100からのリクエストの転送量をマスク信号生成部607へ出力する。
予約型レジスタ群620aは、予約バンド幅設定レジスタ621と、予約型優先レベル設定レジスタ622と、基本スロット周期設定レジスタ623と、動作基本スロット番号設定レジスタ624と、転送動作サブスロットパタン設定レジスタ625とを備えている。
図6の例では、中央バス制御部600bは、マスタ100の数と同数の予約型レジスタ群620aを備えている。なお、複数のマスタ100と予約型レジスタ群620aとの関係は、以下に示すいずれの関係であってもよい。
例えば、複数のマスタ100に対してそれぞれ専用の予約型レジスタ群620aを用いるようにしてもよい。具体的には、マスタA、マスタB、マスタCの3つのマスタが存在する場合、中央バス制御部600bは、マスタA専用の予約型レジスタ群620a、マスタB専用の予約型レジスタ群620a、マスタC専用の予約型レジスタ群620aの3つの予約型レジスタ群620aを備えるようにしてもよい。また、予約型レジスタ群620aの各々は、各マスタ100専用の予約型レジスタ群620aとしなくてもよい。例えば、中央バス制御部600bは、複数の予約型レジスタ群620aを備え、複数の予約型レジスタ群620aと複数のマスタ100との対応付けを行う構成としてもよい。また、中央バス制御部600bは、予約型レジスタ群620aを1つ備え、当該予約型レジスタ群620a内の設定レジスタの各々が、それぞれ複数のマスタ100についての情報を格納するようにしてもよい。また、予約型レジスタ群620a内の各設定レジスタについて、複数のマスタ100の各々に対して別々に設ける設定レジスタと、複数のマスタ100についての情報を1つの設定レジスタ内に格納する設定レジスタとに分けてもよい。
予約バンド幅設定レジスタ621は、複数のマスタ100の予約バンド幅を格納する。ここで、予約バンド幅とは、例えば、マスタ100における1サブスロットあたりの予約転送量を示す。
予約型優先レベル設定レジスタ622は、複数のマスタ100の優先レベルを格納する。
基本スロット周期設定レジスタ623は、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロットの周期を格納する。例えば、基本スロット周期設定レジスタ623に1を格納すると、アクセス権の配布が毎基本スロット有効となり、2を格納すると、2基本スロットに1回アクセス権の配布が有効となる。
動作基本スロット番号設定レジスタ624は、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット番号を格納する。例えば、動作基本スロット番号設定レジスタ624に1を格納すると、最初の基本スロットにてアクセス権の配布が有効となり、2を格納すると、2番目の基本スロットにてアクセス権の配布が有効となる。
転送動作サブスロットパタン設定レジスタ625は、複数のマスタ100のそれぞれについて、アクセス権を配布するサブスロットパタンを格納する。具体的には、アクセス権を配布するサブスロットパタンとして、基本スロットを構成するそれぞれのサブスロットにおけるアクセス権の配布の可否を格納する。例えば、転送動作サブスロットパタン設定レジスタ625は、アクセス権の配布が可能であるサブスロットには○を格納し、アクセス権の配布が不可能であるサブスロットには×を格納する。
マスク信号生成部607は、複数のマスタ100からのリクエストの転送量を転送量モニタ640aから受け取る。また、マスク信号生成部607は、1基本スロット内に存在するサブスロットの数と1サブスロットの期間をスロット設定レジスタ604から読み出す。また、マスク信号生成部607は、複数のマスタ100の予約バンド幅を予約バンド幅設定レジスタ621から読み出す。そして、マスク信号生成部607は、1基本スロット内に存在するサブスロットの数と1サブスロットの期間、複数のマスタ100からのリクエストの転送量、及び複数のマスタ100の予約バンド幅を用いて、アクセス権付与信号700のマスク信号を生成する。さらに、マスク信号生成部607は、生成したマスク信号を権利付与選択制御部603bへ出力する。
ここで、アクセス権付与信号700のマスク信号の生成手法について説明する。マスク信号生成部607は、スロット設定レジスタ604から読み出した1基本スロット内に存在するサブスロットの数と1サブスロットの期間を用いて、自身における1基本スロット内に存在するサブスロットの数と1サブスロットの期間を設定する。また、マスク信号生成部607は、いずれかのマスタ100のリクエストの転送量が、そのマスタ100の予約転送量に到達した場合、そのマスタ100について、そのサブスロットの残り期間についてのマスク信号を生成する。
権利付与選択制御部603bは、複数のマスタ100の予約バンド幅を予約バンド幅設定レジスタ621から読み出す。また、権利付与選択制御部603bは、複数のマスタ100の優先レベルを予約型優先レベル設定レジスタ622から読み出す。また、権利付与選択制御部603bは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット周期を基本スロット周期設定レジスタ623から読み出す。また、権利付与選択制御部603bは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット番号を動作基本スロット番号設定レジスタ624から読み出す。また、権利付与選択制御部603bは、複数のマスタ100のそれぞれについて、アクセス権を配布するサブスロットパタンを転送動作サブスロットパタン設定レジスタ625から読み出す。また、権利付与選択制御部603bは、マスク信号をマスク信号生成部607から受け取る。さらに、権利付与選択制御部603bは、権利付与可能数を権利付与数制御部602から受け取る。
そして、権利付与選択制御部603bは、複数のマスタ100の予約バンド幅、複数のマスタ100の優先レベル、複数のマスタ100の基本スロット周期、複数のマスタ100の基本スロット番号、複数のマスタ100のサブスロットパタン、マスク信号、及び権利付与可能数を用いて、アクセス権の権利付与先のマスタを選択する。なお、権利付与選択制御部603bによるアクセス権の権利付与先のマスタを選択する手法については、後に図8及び図9を用いて詳述する。
また、権利付与選択制御部603bは、アクセス権の権利付与先のマスタとして選択したマスタ100に対してアクセス権付与信号700を配布する。具体的には、選択したマスタ100のサブバス制御部200aに対してアクセス権付与信号700を出力する。なお、権利付与選択制御部603bにおけるアクセス権の権利付与先のマスタ選択及びアクセス権付与信号700の出力は、毎サイクル行う。さらに、権利付与選択制御部603bは、マスタ100の優先レベルを示す優先レベル信号705を、当該マスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603bにおける優先レベル信号705の出力は、予約型優先レベル設定レジスタ622に優先レベルが格納されたタイミングで行われる。これにより、予約型優先レベル設定レジスタ622に格納された優先レベルが、サブバス制御部200aにも反映される。
次に、メモリコントローラ400bについて図7を用いて説明する。図7に示すように、メモリコントローラ400bは、バッファ401とリフレッシュコントローラ402とを備えている。なお、バッファ401については、実施の形態1に示す構成と同じであるため、説明を省略する。
リフレッシュコントローラ402は、リフレッシュ要求コントローラ606からリフレッシュ要求信号740を受け取る。そして、リフレッシュコントローラ402は、リフレッシュ要求信号740を受け取ると、リフレッシュコマンドをメモリ500へ出力することにより、メモリ500をリフレッシュする。
続いて、権利付与選択制御部603bによるアクセス権の権利付与先のマスタを選択する手法について、図8及び図9を用いて説明する。なお、図8及び図9では、複数のマスタ100として、マスタA、マスタB、マスタC、マスタDの4つのマスタを用いている。
まず、図8を用いて、実施の形態2にかかる予約型レジスタ群の設定情報の例について説明する。
予約バンド幅設定レジスタ621は、マスタA、マスタB、マスタC、マスタDの予約バンド幅として、それぞれ10GB/s(gigabytes per second)、5GB/s、8GB/s、3GB/sを格納している。
基本スロット周期設定レジスタ623は、マスタA、マスタB、マスタC、マスタDの基本スロット周期として、それぞれ1、1、4、2を格納している。
動作基本スロット番号設定レジスタ624は、マスタA、マスタB、マスタC、マスタDの動作基本スロット番号として、それぞれ1、1、4、1を格納している。
転送動作サブスロットパタン設定レジスタ625は、マスタAのサブスロット0(ss0)、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、○、○、○、○を格納している。また、転送動作サブスロットパタン設定レジスタ625は、マスタBのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、○、×、○、×を格納している。また、転送動作サブスロットパタン設定レジスタ625は、マスタCのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、○、○、○、○を格納している。さらに、転送動作サブスロットパタン設定レジスタ625は、マスタDのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、×、○、○、○を格納している。
次に、図9を用いて、図8の設定における権利付与先のマスタの選択について説明する。なお、図9の例では、権利付与可能数が足りていることを前提として説明する。権利付与可能数が不足している場合には、図9のテーブル及び複数のマスタ100の優先レベルを用いて権利付与先のマスタの選択を行う。
権利付与選択制御部603bは、マスタAに対して、毎基本スロットの毎サブスロットでアクセス権の配布を行う。また、権利付与選択制御部603bは、マスタBに対して、毎基本スロットのサブスロット0及びサブスロット2でアクセス権の配布を行う。また、権利付与選択制御部603bは、マスタCに対して、4基本スロット周期の4番目の基本スロットの毎サブスロットでアクセス権の配布を行う。さらに、権利付与選択制御部603bは、マスタDに対して、2基本スロット周期の1番目の基本スロットのサブスロット1〜3でアクセス権の配布を行う。
すなわち、権利付与選択制御部603bは、1番目の基本スロットのサブスロット0では、権利付与先のマスタとして、マスタA及びマスタBを選択し、1番目の基本スロットのサブスロット1では、権利付与先のマスタとして、マスタA及びマスタDを選択する。残りのスロットについても同様に、バンド幅を設定しているマスタ100を権利付与先のマスタとして選択する。
また、権利付与選択制御部603bは、いずれかのマスタ100についてのマスク信号を受け取った場合、そのマスタ100について、そのサブスロットの残り期間ではアクセス権の配布対象から外す。
続いて、メモリのリフレッシュを考慮したバンド幅制御について、図10及び図11を用いて説明する。
まず、図10を用いて、実施の形態2にかかる予約型レジスタ群及びリフレッシュ要求サブスロット番号設定レジスタの設定情報の例について説明する。なお、図10の例では、説明を簡単にするため、基本スロット周期及び動作基本スロット番号は0としている。
予約バンド幅設定レジスタ621は、マスタA、マスタB、マスタC、マスタDの予約バンド幅として、それぞれ10GB/s、5GB/s、8GB/s、3GB/sを格納している。
転送動作サブスロットパタン設定レジスタ625は、マスタAのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、○、○、○、○を格納している。また、転送動作サブスロットパタン設定レジスタ625は、マスタBのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、○、×、○、×を格納している。また、転送動作サブスロットパタン設定レジスタ625は、マスタCのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、×、○、○、○を格納している。さらに、転送動作サブスロットパタン設定レジスタ625は、マスタDのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、×、○、×、○を格納している。
リフレッシュ要求サブスロット番号設定レジスタ605は、リフレッシュ要求コントローラ606がリフレッシュ要求信号740を出力するサブスロット番号として、0を格納している。
次に、図11を用いて、図10の設定における権利付与先のマスタの選択について説明する。
権利付与選択制御部603bは、マスタAに対して、毎サブスロットでアクセス権の配布を行う。また、権利付与選択制御部603bは、マスタBに対して、サブスロット0及びサブスロット2でアクセス権の配布を行う。また、権利付与選択制御部603bは、マスタCに対して、サブスロット1〜3でアクセス権の配布を行う。さらに、権利付与選択制御部603bは、マスタDに対して、サブスロット1及びサブスロット3でアクセス権の配布を行う。
すなわち、権利付与選択制御部603bは、サブスロット0では、権利付与先のマスタとして、マスタA及びマスタBを選択する。また、権利付与選択制御部603bは、サブスロット1では、権利付与先のマスタとして、マスタA、マスタC及びマスタDを選択する。また、権利付与選択制御部603bは、サブスロット2では、権利付与先のマスタとして、マスタA、マスタB及びマスタCを選択する。さらに、権利付与選択制御部603bは、サブスロット3では、権利付与先のマスタとして、マスタA、マスタC及びマスタDを選択する。
したがって、サブスロット0の設定バンド幅は、15GB/s、サブスロット1の設定バンド幅は、21GB/s、サブスロット2の設定バンド幅は、23GB/s、サブスロット3の設定バンド幅は、21GB/sとなる。よって、リフレッシュを行うサブスロットの設定バンド幅は、他のサブスロットの設定バンド幅より小さくなる。
以上、説明したように、実施の形態2にかかる半導体装置では、転送量モニタ640a、予約バンド幅設定レジスタ621によって、各サブスロットでの設定バンド幅を制限している。これによって、各マスタ100のリクエストを必要以上に転送しないように制限することができる。また、設定したバンド幅をサブスロット内で獲得させるように動作するため、一定のレイテンシーを保証することができる。
また、マスク信号生成部607によって、リクエストの転送量が予約転送量に到達したマスタ100について、そのサブスロットの残り期間についてのマスク信号を生成している。これによって、マスタ100のリクエストを予約転送量以上に転送しないように制限することができる。
また、スロット設定レジスタ604、基本スロット周期設定レジスタ623、動作基本スロット番号設定レジスタ624、転送動作サブスロットパタン設定レジスタ625によって、複数のマスタ100へアクセス権を付与するサブスロット・基本スロットを設定している。これによって、マスタがリクエストを転送する順番や同時にリクエストを送るマスタの組み合わせがプログラミング可能となり、システムに応じたバンド幅制御が可能となる。
また、リフレッシュ要求コントローラ606、リフレッシュ要求サブスロット番号設定レジスタ605、リフレッシュコントローラ402によって、リフレッシュを発行するタイミングを制御することができる。これによって、リフレッシュによりメモリアクセスできないサブスロットは全体の要求バンド幅を減らして、リフレッシュを考慮したバンド幅制御が可能となる。
さらに、複数の予約型レジスタ群620aと複数のマスタ100との対応付けを行う構成とすることもできる。これによって、予約型レジスタ群620aの数をマスタ100の数に合わせなくても同様の制御を行うことができる。
実施の形態2の変形例
続いて、実施の形態2の変形例について説明する。実施の形態2の変形例では、実施の形態2の中央バス制御部600bに代えて中央バス制御部600cを用いる。なお、中央バス制御部以外の構成については、実施の形態2に示す構成と同じであるため、説明を省略する。
次に、中央バス制御部600cについて図12を用いて説明する。図12に示すように、中央バス制御部600cは、付与可能最大数設定レジスタ601と、権利付与数制御部602と、権利付与選択制御部603cと、スロット設定レジスタ604と、リフレッシュ要求サブスロット番号設定レジスタ605と、リフレッシュ要求コントローラ606と、マスク信号生成部607と、予約型レジスタ群620bと、転送量モニタ640aとを備えている。なお、付与可能最大数設定レジスタ601、権利付与数制御部602、スロット設定レジスタ604、リフレッシュ要求サブスロット番号設定レジスタ605、リフレッシュ要求コントローラ606、及びマスク信号生成部607、及び転送量モニタ640aについては、実施の形態2に示す構成と同じであるため、説明を省略する。
予約型レジスタ群620bは、予約型優先レベル設定レジスタ622と、基本スロット周期設定レジスタ623と、動作基本スロット番号設定レジスタ624と、予約バンド幅テーブル設定レジスタ626とを備えている。なお、予約型優先レベル設定レジスタ622、基本スロット周期設定レジスタ623、及び動作基本スロット番号設定レジスタ624については、実施の形態2に示す構成と同じであるため、説明を省略する。また、複数のマスタ100と予約型レジスタ群620bとの関係は、複数のマスタ100と予約型レジスタ群620aとの関係と同じであるため、説明を省略する。
予約バンド幅テーブル設定レジスタ626は、複数のマスタ100について、基本スロット中のサブスロット毎の予約バンド幅を格納する。
権利付与選択制御部603cは、複数のマスタ100の優先レベルを予約型優先レベル設定レジスタ622から読み出す。また、権利付与選択制御部603cは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット周期を基本スロット周期設定レジスタ623から読み出す。また、権利付与選択制御部603cは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット番号を動作基本スロット番号設定レジスタ624から読み出す。また、権利付与選択制御部603cは、複数のマスタ100におけるサブスロット毎の予約バンド幅を予約バンド幅テーブル設定レジスタ626から読み出す。また、権利付与選択制御部603cは、マスク信号をマスク信号生成部607から受け取る。さらに、権利付与選択制御部603cは、権利付与可能数を権利付与数制御部602から受け取る。
そして、権利付与選択制御部603cは、複数のマスタ100の優先レベル、複数のマスタ100の基本スロット周期、複数のマスタ100の基本スロット番号、複数のマスタ100のサブスロット毎の予約バンド幅、マスク信号、及び権利付与可能数を用いて、アクセス権の権利付与先のマスタを選択する。
また、権利付与選択制御部603cは、アクセス権の権利付与先のマスタとして選択したマスタ100に対してアクセス権付与信号700を配布する。具体的には、選択したマスタ100のサブバス制御部200aに対してアクセス権付与信号700を出力する。さらに、権利付与選択制御部603cは、アクセス権付与信号700と共に、当該選択したマスタ100の優先レベルを、当該選択したマスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603cにおけるアクセス権の権利付与先のマスタの選択及びアクセス権付与信号700の出力は、毎サイクル行う。さらに、権利付与選択制御部603cは、マスタ100の優先レベルを示す優先レベル信号705を、当該マスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603cにおける優先レベル信号705の出力は、予約型優先レベル設定レジスタ622に優先レベルが格納されたタイミングで行われる。これにより、予約型優先レベル設定レジスタ622に格納された優先レベルが、サブバス制御部200aにも反映される。
続いて、権利付与選択制御部603cによるアクセス権の権利付与先のマスタを選択する手法について、図13及び図14を用いて説明する。なお、図13及び図14では、複数のマスタ100として、マスタA、マスタB、マスタC、マスタDの4つのマスタを用いている。
まず、図13を用いて、実施の形態2の変形例にかかる予約型レジスタ群の設定情報の例について説明する。
予約バンド幅テーブル設定レジスタ626は、マスタAにおけるサブスロット0〜3の予約バンド幅として、それぞれ10GB/s、0GB/s、10GB/s、10GB/sを格納している。また、マスタBにおけるサブスロット0〜3の予約バンド幅として、それぞれ13GB/s、10GB/s、5GB/s、5GB/sを格納している。また、マスタCにおけるサブスロット0〜3の予約バンド幅として、それぞれ8GB/s、8GB/s、8GB/s、8GB/sを格納している。さらに、マスタDにおけるサブスロット0〜3の予約バンド幅として、それぞれ0GB/s、8GB/s、3GB/s、3GB/sを格納している。
すなわち、権利付与選択制御部603cは、マスタB及びマスタDに対して、アクセス権の配布を行う各サブスロットで、異なる予約バンド幅を設定している。
基本スロット周期設定レジスタ623は、マスタA、マスタB、マスタC、マスタDの基本スロット周期として、それぞれ1、1、4、2を格納している。
動作基本スロット番号設定レジスタ624は、マスタA、マスタB、マスタC、マスタDの動作基本スロット番号として、それぞれ1、1、4、1を格納している。
次に、図14を用いて、図13の設定における権利付与先のマスタの選択について説明する。なお、図14の例では、権利付与可能数が足りていることを前提として説明する。権利付与可能数が不足している場合には、図14のテーブル及び複数のマスタ100の優先レベルを用いて権利付与先のマスタの選択を行う。
権利付与選択制御部603cは、マスタAに対して、毎基本スロットのサブスロット0、サブスロット2、及びサブスロット3でアクセス権の配布を行う。また、権利付与選択制御部603cは、マスタBに対して、毎基本スロットの毎サブスロットでアクセス権の配布を行う。また、権利付与選択制御部603cは、マスタCに対して、4基本スロット周期の4番目の基本スロットの毎サブスロットでアクセス権の配布を行う。さらに、権利付与選択制御部603cは、マスタDに対して、2基本スロット周期の1番目の基本スロットのサブスロット1〜3でアクセス権の配布を行う。
すなわち、権利付与選択制御部603cは、1番目の基本スロットのサブスロット0では、権利付与先のマスタとして、マスタA及びマスタBを選択し、1番目の基本スロットのサブスロット1では、権利付与先のマスタとして、マスタB及びマスタDを選択する。残りのスロットについても同様に、バンド幅を設定しているマスタ100を権利付与先のマスタとして選択する。
また、権利付与選択制御部603cは、いずれかのマスタ100についてのマスク信号を受け取った場合、そのマスタ100について、そのサブスロットの残り期間ではアクセス権の配布対象から外す。
以上、説明したように、実施の形態2の変形例にかかる半導体装置では、予約バンド幅テーブル設定レジスタ626が、複数のマスタ100について、サブスロット毎の予約バンド幅を格納している。これによって、実施の形態2と比べてさらに柔軟にシステムに応じたバンド幅の設定を行うことができる。
実施の形態3
続いて、実施の形態3について説明する。実施の形態3では、実施の形態2の中央バス制御部600bに代えて中央バス制御部600dを用いる。なお、中央バス制御部以外の構成については、実施の形態2に示す構成と同じであるため、説明を省略する。
次に、中央バス制御部600dについて図15を用いて説明する。図15に示すように、中央バス制御部600dは、付与可能最大数設定レジスタ601と、権利付与数制御部602と、権利付与選択制御部603dと、スロット設定レジスタ604と、リフレッシュ要求サブスロット番号設定レジスタ605と、リフレッシュ要求コントローラ606と、配布優先度計算回路608と、ベストエフォート(BE)型レジスタ群630と、転送量モニタ640aとを備えている。なお、付与可能最大数設定レジスタ601、権利付与数制御部602、スロット設定レジスタ604、リフレッシュ要求サブスロット番号設定レジスタ605、及びリフレッシュ要求コントローラ606については、実施の形態2に示す構成と同じであるため、説明を省略する。なお、ベストエフォート型レジスタ群は、第2の設定レジスタ群と呼んでもよい。
実施の形態3の転送量モニタ640aの基本的な機能は、実施の形態2の転送量モニタ640aと同じであるため、説明を省略する。但し、実施の形態3の転送量モニタ640aは、測定した複数のマスタ100からのリクエストの転送量を配布優先度計算回路608へ出力する。
ベストエフォート型レジスタ群630は、目標転送量設定レジスタ631、更新転送量レジスタ632、配布優先度補正期間設定レジスタ633、ベストエフォート型優先レベル設定レジスタ634、配布優先度初期化間隔設定レジスタ635、基本スロット周期設定レジスタ623、動作基本スロット番号設定レジスタ624、転送動作サブスロットパタン設定レジスタ625を備えている。なお、基本スロット周期設定レジスタ623、動作基本スロット番号設定レジスタ624、及び転送動作サブスロットパタン設定レジスタ625については、実施の形態2に示す構成と同じであるため、説明を省略する。また、複数のマスタ100とベストエフォート型レジスタ群630との関係は、複数のマスタ100と予約型レジスタ群620aとの関係と同等であるため、説明を省略する。
目標転送量設定レジスタ631は、複数のマスタ100について、1サブスロットあたりの目標転送量を格納する。
更新転送量レジスタ632は、複数のマスタ100について、転送量の累積値を示す累積転送量を格納する。
配布優先度補正期間設定レジスタ633は、配布優先度補正期間を格納する。ここで、配布優先度とは、アクセス権の配布に関する優先度を示す。また、配布優先度補正期間とは、複数のマスタ100の目標転送量を補正する期間である。具体的には、現時点から配布優先度補正期間が示す期間後の目標転送量を、配布優先度を計算するための目標転送量として設定する。なお、配布優先度補正期間設定レジスタ633が格納する配布優先度補正期間の値は、変更することができる。また、配布優先度補正期間は、サブスロット単位でもよいし、サブスロット単位でなくてもよい。また、配布優先度補正期間は、複数のマスタについて共通の期間でもよいし、複数のマスタで別々の期間でもよい。
ベストエフォート型優先レベル設定レジスタ634は、複数のマスタ100について、優先レベルを格納する。なお、ベストエフォート型優先レベル設定レジスタ634に格納される優先レベルは、リクエスト発行制御部201aにてリクエストに付加されるものである。
配布優先度初期化間隔設定レジスタ635は、配布優先度を初期化する間隔を示すサブスロット数を格納する。ここで、配布優先度の初期化とは、更新転送量レジスタ632に格納される累積転送量を初期化することである。なお、配布優先度初期化間隔設定レジスタ635が格納する配布優先度を初期化する間隔の値は、変更することができる。また、配布優先度初期化間隔は、複数のマスタについて共通の初期化間隔でもよいし、複数のマスタで別々の初期化間隔でもよい。
配布優先度計算回路608は、アクセス権の配布に関する優先度を示す配布優先度を計算する回路である。例えば、配布優先度計算回路608は、複数のマスタの目標転送量に基づいて、配布優先度を計算する。
配布優先度計算回路608について具体的に説明する。配布優先度計算回路608は、複数のマスタ100からのリクエストの転送量を転送量モニタ640aから受け取る。また、配布優先度計算回路608は、複数のマスタ100についての1サブスロットあたりの目標転送量を目標転送量設定レジスタ631から読み出す。また、配布優先度計算回路608は、複数のマスタ100についての累積転送量を更新転送量レジスタ632から読み出す。また、配布優先度計算回路608は、配布優先度補正期間を配布優先度補正期間設定レジスタ633から読み出す。さらに、配布優先度計算回路608は、配布優先度初期化間隔を配布優先度初期化間隔設定レジスタ635から読み出す。そして、配布優先度計算回路608は、複数のマスタ100からのリクエストの転送量、複数のマスタ100についての1サブスロットあたりの目標転送量、複数のマスタ100についての累積転送量、配布優先度補正期間、及び配布優先度初期化間隔を用いて、配布優先度を計算する。配布優先度の計算手法については、後に図16A及び図16Bを用いて詳述する。また、配布優先度計算回路608は、計算した配布優先度を権利付与選択制御部603dへ出力する。
また、配布優先度計算回路608は、サブスロットが経過する毎に、更新転送量レジスタ632に格納される累積転送量を更新する。具体的には、更新転送量レジスタ632から読み出した前サブスロットまでの累積転送量と、転送量モニタ640aから受け取った今サブスロットの転送量を用いて、今サブスロットまでの累積転送量を計算する。そして、配布優先度計算回路608は、計算した今サブスロットまでの累積転送量を更新転送量レジスタ632に格納する。
権利付与選択制御部603dは、1基本スロット内に存在するサブスロットの数と1サブスロットの期間をスロット設定レジスタ604から読み出す。また、権利付与選択制御部603dは、配布優先度を配布優先度計算回路608から受け取る。また、権利付与選択制御部603dは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット周期を基本スロット周期設定レジスタ623から読み出す。また、権利付与選択制御部603dは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット番号を動作基本スロット番号設定レジスタ624から読み出す。また、権利付与選択制御部603dは、複数のマスタ100のそれぞれについて、アクセス権を配布するサブスロットパタンを転送動作サブスロットパタン設定レジスタ625から読み出す。また、権利付与選択制御部603dは、権利付与可能数を権利付与数制御部602から受け取る。さらに、権利付与選択制御部603dは、複数のマスタ100の優先レベルをベストエフォート型優先レベル設定レジスタ634から読み出す。
そして、権利付与選択制御部603dは、1基本スロット内に存在するサブスロットの数と1サブスロットの期間、配布優先度、複数のマスタ100の基本スロット周期、複数のマスタ100の基本スロット番号、複数のマスタ100のサブスロットパタン、及び権利付与可能数を用いて、アクセス権の権利付与先のマスタを選択する。
また、権利付与選択制御部603dは、アクセス権の権利付与先のマスタとして選択したマスタ100に対してアクセス権付与信号700を配布する。具体的には、選択したマスタ100のサブバス制御部200aに対してアクセス権付与信号700を出力する。さらに、権利付与選択制御部603dは、アクセス権付与信号700と共に、当該選択したマスタ100の優先レベルを、当該選択したマスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603dにおけるアクセス権の権利付与先のマスタの選択及びアクセス権付与信号700の出力は、毎サイクル行う。さらに、権利付与選択制御部603dは、マスタ100の優先レベルを示す優先レベル信号705を、当該マスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603dにおける優先レベル信号705の出力は、ベストエフォート型優先レベル設定レジスタ634に優先レベルが格納されたタイミングで行われる。これにより、ベストエフォート型優先レベル設定レジスタ634に格納された優先レベルが、サブバス制御部200aにも反映される。
続いて、配布優先度計算回路608による配布優先度の計算手法について、図16A及び図16Bを用いて説明する。
まず、図16Aを用いて、実施の形態3にかかる一定間隔でリクエストを発行するマスタについての配布優先度の計算手法について説明する。図16AのマスタはマスタAとする。また、図16Aの配布優先度補正期間は1サブスロットとする。また、図16Aに示す点線は、マスタAの1サブスロットあたりの目標転送量を元に引いた線である。当該点線の縦軸方向の長さが、その実行時間における目標転送量を示す。また、図16Aに示す(1)〜(4)の矢印の傾きが配布優先度であり、傾きが大きいほど配布優先度は高いこととする。また、図16Aに示す(5)〜(8)の直線の傾きは、マスタAの獲得バンド幅を示す。
配布優先度計算回路608は、更新転送量レジスタ632から読み出したマスタAの前サブスロットまでの累積転送量に、転送量モニタ640aから受け取ったマスタAの今サブスロットの転送量を加算することにより、今サブスロットまでの累積転送量を計算する。
また、配布優先度計算回路608は、目標転送量設定レジスタ631から読み出したマスタAの1サブスロットあたりの目標転送量と、配布優先度補正期間設定レジスタ633から読み出した配布優先度補正期間を用いて、配布優先度補正期間後の目標転送量を計算する。すなわち、配布優先度補正期間である1サブスロット後の目標転送量を求める。
そして、配布優先度計算回路608は、今サブスロットまでの累積転送量と、1サブスロット後の目標転送量とを用いて、配布優先度を計算する。
次に、具体例として、図16Aに示す(1)の矢印の傾きが示す配布優先度の計算手法について説明する。
(1)の矢印の傾きは、実行時間が0の時点で計算する。実行時間が0の時点とは、更新転送量レジスタ632に格納されるマスタAの累積転送量が初期化された直後のサブスロットの開始タイミングである。なお、更新転送量レジスタ632に格納されるマスタAの累積転送量の初期化は、配布優先度計算回路608が、配布優先度初期化間隔設定レジスタ635から読み出した配布優先度初期化間隔を用いて行う。すなわち、配布優先度初期化間隔が示すサブスロット数毎に、マスタAの累積転送量の初期化は行われる。
実行時間が0の時点では、マスタAの今サブスロットまでの累積転送量は0である。よって、実行時間が0且つ転送量が0である点と、配布優先度補正期間である1サブスロット後(実行時間が1サブスロットの時点)の目標転送量が示す点とを結んだ直線が(1)の矢印となる。
次に、具体例として、図16Aに示す(2)の矢印の傾きが示す配布優先度の計算手法について説明する。
(2)の矢印の傾きは、実行時間が1サブスロットの時点で計算する。なお、(5)の直線の傾きは、実行時間が0〜1サブスロットにおけるマスタAの獲得バンド幅を示す。
実行時間が1サブスロットの時点では、マスタAの前サブスロットまでの累積転送量は0である。また、転送量モニタ640aから受け取ったマスタAの今サブスロットの転送量は、(5)の直線の1サブスロット時点の縦軸方向の長さである。よって、(5)の直線の実行時間が1サブスロットの時点の縦軸方向の長さは、マスタAの今サブスロットまでの累積転送量を示す。そして、マスタAの今サブスロットまでの累積転送量を示す点と、1サブスロット後(実行時間が2サブスロットの時点)の目標転送量が示す点とを結んだ直線が(2)の矢印となる。
次に、具体例として、図16Aに示す(3)の矢印の傾きが示す配布優先度の計算手法について説明する。
(3)の矢印の傾きは、実行時間が2サブスロットの時点で計算する。なお、(6)の直線の傾きは、実行時間が1〜2サブスロットにおけるマスタAの獲得バンド幅を示す。
実行時間が2サブスロットの時点におけるマスタAの今サブスロットまでの累積転送量は、(6)の直線の実行時間が2サブスロットの時点の縦軸方向の長さである。そして、マスタAの今サブスロットまでの累積転送量を示す点と、1サブスロット後(実行時間が3サブスロットの時点)の目標転送量が示す点とを結んだ直線が(3)の矢印となる。なお、図16Aに示す(4)の矢印の傾きが示す配布優先度の計算手法についても同様であるため説明を省略する。
続いて、図16Bを用いて、実施の形態3にかかる前半はリクエストを出さず後半にのみリクエストを出すマスタについての配布優先度の計算手法について説明する。図16BのマスタはマスタBとする。また、図16Bの配布優先度補正期間は1.7サブスロットとする。また、図16Bに示す点線は、マスタBの1サブスロットあたりの目標転送量を元に引いた線である。当該点線の縦軸方向の長さが、その実行時間における目標転送量を示す。また、図16Bに示す(9)〜(12)の矢印の傾きが配布優先度である。また、図16Bに示す(13)の直線の傾きは、マスタBの獲得バンド幅を示す。
次に、具体例として、図16Bに示す(9)の矢印の傾きが示す配布優先度の計算手法について説明する。
(9)の矢印の傾きは、実行時間が0の時点で計算する。実行時間が0の時点では、マスタBの今サブスロットまでの累積転送量は0である。よって、実行時間が0且つ転送量が0である点と、配布優先度補正期間である1.7サブスロット後(実行時間が1.7サブスロットの時点)の目標転送量が示す点とを結んだ直線が(9)の矢印となる。
次に、具体例として、図16Bに示す(10)の矢印の傾きが示す配布優先度の計算手法について説明する。
(10)の矢印の傾きは、実行時間が1サブスロットの時点で計算する。マスタBは、リクエストを出していないため、実行時間が1サブスロットの時点ではバンド幅を獲得していない。よって、実行時間が1サブスロットの時点では、マスタBの今サブスロットまでの累積転送量は0である。よって、実行時間が0且つ転送量が0である点と、配布優先度補正期間である1.7サブスロット後(実行時間が2.7サブスロットの時点)の目標転送量が示す点とを結んだ直線が(10)の矢印となる。なお、図16Bに示す(11)及び(12)の矢印の傾きが示す配布優先度の計算手法についても同様であるため説明を省略する。
次に、(13)の直線の傾きが示すマスタBの獲得バンド幅について説明する。実行時間が3サブスロットの時点で、マスタBの配布優先度として、(12)の矢印の傾きが示す配布優先度が計算される。また、マスタBの配布優先度を用いて、アクセス権の権利付与先のマスタとしてマスタBが選択されたとする。そして、マスタBがリクエストを出した後、マスタBは(13)の直線の傾きが示すバンド幅を獲得する。
以上、説明したように、実施の形態3にかかる半導体装置では、配布優先度計算回路608によって、マスタの目標転送量に基づいて配布優先度を計算する。これによって、長期間での獲得転送量補正が可能となる。
また、配布優先度補正期間設定レジスタ633によって、配布優先度補正期間を格納する。また、配布優先度補正期間設定レジスタ633が格納する配布優先度補正期間の値は、変更することができる。これによって、システムに応じて最適な配布優先度を計算することができる。
また、配布優先度初期化間隔設定レジスタ635によって、配布優先度を初期化する間隔を示すサブスロット数を格納する。また、配布優先度の初期化により、更新転送量レジスタ632に格納される累積転送量を初期化する。これによって、長期間での誤差の累積を軽減できる。また、マスタの動作に合わせたリセット間隔を設定することができる。
さらに、複数のベストエフォート型レジスタ群630と複数のマスタ100との対応付けを行う構成とすることもできる。これによって、ベストエフォート型レジスタ群630の数をマスタ100の数に合わせなくても同様の制御を行うことができる。
実施の形態4
続いて、実施の形態4について説明する。実施の形態4では、実施の形態2の予約型レジスタ群620aを用いたアクセス権についての制御と、実施の形態3のベストエフォート型レジスタ群630を用いたアクセス権についての制御を複合的に行う。図17に示すように、実施の形態4にかかる半導体装置は、サブバス制御部200b及び中央バス制御部600eを備える。なお、サブバス制御部200b及び中央バス制御部600e以外の構成については、実施の形態2及び3の構成と同じであるため、説明を省略する。
中央バス制御部600eは、付与可能最大数設定レジスタ601と、権利付与数制御部602と、権利付与選択制御部603eと、スロット設定レジスタ604と、リフレッシュ要求サブスロット番号設定レジスタ605と、リフレッシュ要求コントローラ606と、マスク信号生成部607と、配布優先度計算回路608と、予約型レジスタ群620aと、ベストエフォート型レジスタ群630と、転送量モニタ640bとを備えている。なお、権利付与選択制御部603e及び転送量モニタ640b以外の構成については、実施の形態2又は3の構成と同じであるため、説明を省略する。
まず、権利付与選択制御部603eについて説明する。権利付与選択制御部603eは、実施の形態2の権利付与選択制御部603bにおけるアクセス権の権利付与先のマスタの選択機能と、実施の形態3の権利付与選択制御部603dにおけるアクセス権の権利付与先のマスタの選択機能の両方を備える機能部である。なお、権利付与選択制御部603bにおけるアクセス権の権利付与先のマスタの選択処理のことを、予約型レジスタ群620aを用いた選択処理と呼ぶ。また、権利付与選択制御部603dにおける権利付与先のマスタの選択処理のことを、ベストエフォート型レジスタ群630を用いた選択処理と呼ぶ。権利付与選択制御部603eは、予約型レジスタ群620aを用いた選択処理と、ベストエフォート型レジスタ群630を用いた選択処理とを独立して行う。
また、双方の選択処理がかち合ったときには、どちらかを優先するように設定する。ここで、双方の選択処理がかち合ったときとは、双方の選択処理により1つのマスタを権利付与先のマスタとして選択することをいう。例えば、ベストエフォート型レジスタ群630を用いた選択処理を優先するように設定することにより、双方の選択処理がかち合ったとき、ベストエフォート型レジスタ群630を用いた選択処理により、当該マスタを権利付与先のマスタとして選択する。
権利付与選択制御部603eは、選択したマスタ100に対してアクセス権付与信号700を配布する。具体的には、選択したマスタ100のサブバス制御部200bに対してアクセス権付与信号700を出力する。また、権利付与選択制御部603eは、アクセス権付与信号700と共に、当該選択したマスタ100の優先レベル及びアクセス権属性信号750を、当該マスタ100のサブバス制御部200bに対して出力する。
ここで、アクセス権属性信号750について説明する。アクセス権属性信号750とは、付与されたアクセス権が、予約型レジスタ群620aを用いた選択処理により付与されたアクセス権か、ベストエフォート型レジスタ群630を用いた選択処理により付与されたアクセス権かを示す識別情報である。なお、予約型レジスタ群620aを用いた選択処理により付与されたアクセス権を、予約型レジスタ群620aを用いて付与されたアクセス権と呼ぶ。また、ベストエフォート型レジスタ群630を用いた選択処理により付与されたアクセス権を、ベストエフォート型レジスタ群630を用いて付与されたアクセス権と呼ぶ。
次に、サブバス制御部200bについて説明する。サブバス制御部200bは、リクエスト発行制御部201bを有する。リクエスト発行制御部201bにおける制御について、アクセス権属性信号750に関する制御以外はリクエスト発行制御部201aと同じであるため、同じ部分については説明を省略する。
リクエスト発行制御部201bは、アクセス権属性信号750を権利付与選択制御部603eから受け取る。また、リクエスト発行制御部201bは、バス10から受け取ったリクエストをバス20へ出力する際には、アクセス権属性信号750を当該リクエストに付加して出力する。
次に、転送量モニタ640bについて説明する。転送量モニタ640bは、予約型用転送量モニタ641と、ベストエフォート用転送量モニタ642とを備える。
予約型用転送量モニタ641は、複数のマスタ100から対応するサブバス制御部200bを介してバスアービタ300へ転送される予約型リクエストの転送量を測定する機能部である。ここで、予約型リクエストとは、予約型レジスタ群620aを用いて付与されたアクセス権により、リクエスト発行制御部201bを通過したリクエストのことを示す。
予約型用転送量モニタ641は、複数のバス20からのモニタ信号730により複数のマスタ100からの予約型リクエストの転送量を測定する。予約型リクエストか否かは、モニタ信号730に付加されているアクセス権属性信号750により識別する。そして、予約型用転送量モニタ641は、測定した複数のマスタ100からの予約型リクエストの転送量をマスク信号生成部607へ出力する。
ベストエフォート用転送量モニタ642は、複数のマスタ100から対応するサブバス制御部200bを介してバスアービタ300へ転送されるベストエフォート型リクエストの転送量を測定する機能部である。ここで、ベストエフォート型リクエストとは、ベストエフォート型レジスタ群630を用いて付与されたアクセス権により、リクエスト発行制御部201bを通過したリクエストのことを示す。
ベストエフォート用転送量モニタ642は、複数のバス20からのモニタ信号730により複数のマスタ100からのベストエフォート型リクエストの転送量を測定する。ベストエフォート型リクエストか否かは、モニタ信号730に付加されているアクセス権属性信号750により識別する。そして、ベストエフォート用転送量モニタ642は、測定した複数のマスタ100からのベストエフォート型リクエストの転送量を配布優先度計算回路608へ出力する。
以上、説明したように、実施の形態4にかかる半導体装置では、権利付与選択制御部603eは、予約型レジスタ群620aを用いて付与されたアクセス権と、ベストエフォート型レジスタ群630を用いて付与されたアクセス権の2種類のアクセス権を配布する。これによって、短期間に一定のバンド幅を獲得する必要のあるマスタと長期間で一定のバンド幅を獲得する必要のあるマスタを効率的に制御することができる。
なお、上述の例では、実施の形態4では、実施の形態2の予約型レジスタ群620aを用いたアクセス権についての制御と、実施の形態3のベストエフォート型レジスタ群630を用いたアクセス権についての制御を複合的に行うことを例示して説明したが、これに限らない。実施の形態2の変形例の予約型レジスタ群620bを用いたアクセス権についての制御と、実施の形態3のベストエフォート型レジスタ群630を用いたアクセス権についての制御を複合的に行うようにしてもよい。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
100 マスタ
200a、200b サブバス制御部
201a、201b リクエスト発行制御部
300 バスアービタ
400a、400b メモリコントローラ
401 バッファ
402 リフレッシュコントローラ
500 メモリ
600a、600b、600c、600d、600e 中央バス制御部
601 付与可能最大数設定レジスタ
602 権利付与数制御部
603a、603b、603c、603d、603e 権利付与選択制御部
604 スロット設定レジスタ
605 リフレッシュ要求サブスロット番号設定レジスタ
606 リフレッシュ要求コントローラ
607 マスク信号生成部
608 配布優先度計算回路
610 QoS情報レジスタ
620a、620b 予約型レジスタ群
621 予約バンド幅設定レジスタ
622 予約型優先レベル設定レジスタ
623 基本スロット周期設定レジスタ
624 動作基本スロット番号設定レジスタ
625 転送動作サブスロットパタン設定レジスタ
626 予約バンド幅テーブル設定レジスタ
630 ベストエフォート型レジスタ群
631 目標転送量設定レジスタ
632 更新転送量レジスタ
633 配布優先度補正期間設定レジスタ
634 ベストエフォート型優先レベル設定レジスタ
635 配布優先度初期化間隔設定レジスタ
640a、640b 転送量モニタ
641 予約型用転送量モニタ
642 ベストエフォート用転送量モニタ

Claims (24)

  1. 複数のマスタと、
    メモリコントローラと、
    前記複数のマスタと前記メモリコントローラとを接続するバスと、
    前記複数のマスタのQoS情報を格納するQoS情報レジスタと、
    前記メモリコントローラのバッファの空き情報に基づいて、アクセス権の権利付与可能数を計算する権利付与数制御部と、
    前記QoS情報レジスタの前記QoS情報、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記アクセス権の権利付与先のマスタを選択する権利付与選択制御部と、
    前記権利付与選択制御部からの前記アクセス権が未付与であるマスタのリクエストを通さないリクエスト発行制御部と、
    を備える半導体装置。
  2. 前記権利付与可能数の最大数を格納する付与可能最大数設定レジスタをさらに備え、
    前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報に基づいて、前記付与可能最大数設定レジスタが格納する前記最大数を上限として前記権利付与可能数を計算する、請求項1に記載の半導体装置。
  3. 前記リクエスト発行制御部は、前記アクセス権が付与されたマスタからのリクエストを保持していない場合、前記アクセス権を返却し、
    前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報及び前記アクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する、請求項1に記載の半導体装置。
  4. 複数のマスタと、
    メモリコントローラと、
    前記複数のマスタと前記メモリコントローラとを接続するバスと、
    前記複数のマスタの予約バンド幅を格納する予約バンド幅設定レジスタを備える第1の設定レジスタ群と、
    所定の期間を格納するスロット設定レジスタと、
    前記複数のマスタの転送量を測定する転送量モニタと、
    前記メモリコントローラのバッファの空き情報に基づいて、アクセス権の権利付与可能数を計算する権利付与数制御部と、
    前記第1の設定レジスタ群の設定情報、前記スロット設定レジスタの前記所定の期間、前記転送量モニタで測定された前記転送量、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記アクセス権の権利付与先のマスタを選択する権利付与選択制御部と、
    前記権利付与選択制御部からの前記アクセス権が未付与であるマスタのリクエストを通さないリクエスト発行制御部と、
    を備える半導体装置。
  5. 前記第1の設定レジスタ群は、前記複数のマスタの優先レベルを格納する予約型優先レベル設定レジスタをさらに備える、請求項4に記載の半導体装置。
  6. 前記第1の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する基本スロットの番号を格納する動作基本スロット番号設定レジスタをさらに備える、請求項4に記載の半導体装置。
  7. 前記第1の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布するサブスロットパタンを格納する転送動作サブスロットパタン設定レジスタをさらに備える、請求項6に記載の半導体装置。
  8. 前記第1の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する前記基本スロットの周期を格納する基本スロット周期設定レジスタをさらに備える、請求項6に記載の半導体装置。
  9. 前記第1の設定レジスタ群は、前記予約バンド幅設定レジスタに代えて、前記複数のマスタのそれぞれについて、サブスロット毎に予約バンド幅を格納する予約バンド幅テーブル設定レジスタを備える、請求項6に記載の半導体装置。
  10. 前記メモリコントローラに対して、メモリのリフレッシュ要求信号を出力するリフレッシュ要求コントローラをさらに備える、請求項4に記載の半導体装置。
  11. 前記リフレッシュ要求コントローラがリフレッシュ要求を発行するサブスロット番号を格納するリフレッシュ要求サブスロット番号設定レジスタをさらに備える、請求項10に記載の半導体装置。
  12. 前記第1の設定レジスタ群を複数個備え、複数の前記第1の設定レジスタ群と前記複数のマスタとの対応付けを行う、請求項4に記載の半導体装置。
  13. 前記リクエスト発行制御部は、前記アクセス権が付与されたマスタからのリクエストを保持していない場合、前記アクセス権を返却し、
    前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報及び前記アクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する、請求項4に記載の半導体装置。
  14. 複数のマスタと、
    メモリコントローラと、
    前記複数のマスタと前記メモリコントローラとを接続するバスと、
    前記複数のマスタの目標転送量を格納する目標転送量設定レジスタを備える第2の設定レジスタ群と、
    所定の期間を格納するスロット設定レジスタと、
    前記目標転送量に基づいて、アクセス権の配布の優先度である配布優先度を計算する配布優先度計算回路と、
    前記メモリコントローラのバッファの空き情報に基づいて、前記アクセス権の権利付与可能数を計算する権利付与数制御部と、
    前記スロット設定レジスタの前記所定の期間、前記配布優先度計算回路で計算された前記配布優先度、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記アクセス権の権利付与先のマスタを選択する権利付与選択制御部と、
    前記権利付与選択制御部からの前記アクセス権が未付与であるマスタのリクエストを通さないリクエスト発行制御部と、
    を備える半導体装置。
  15. 前記複数のマスタの転送量を測定する転送量モニタをさらに備え、
    前記第2の設定レジスタ群は、前記目標転送量を補正する期間を格納する配布優先度補正期間設定レジスタをさらに備え、
    前記配布優先度計算回路は、前記目標転送量、前記転送量モニタで測定された前記転送量の累積値、及び前記補正する期間に基づいて、アクセス権の配布の優先度である配布優先度を計算する、請求項14に記載の半導体装置。
  16. 前記第2の設定レジスタ群は、前記複数のマスタの優先レベルを格納するベストエフォート型優先レベル設定レジスタをさらに備える、請求項14に記載の半導体装置。
  17. 前記第2の設定レジスタ群は、前記配布優先度を初期化する間隔を格納する配布優先度初期化間隔設定レジスタをさらに備える、請求項14に記載の半導体装置。
  18. 前記第2の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する基本スロットの周期を格納する基本スロット周期設定レジスタをさらに備える、請求項14に記載の半導体装置。
  19. 前記第2の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する前記基本スロットを格納する動作基本スロット番号設定レジスタをさらに備える、請求項18に記載の半導体装置。
  20. 前記メモリコントローラに対して、メモリのリフレッシュ要求信号を出力するリフレッシュ要求コントローラをさらに備える、請求項14に記載の半導体装置。
  21. 前記リフレッシュ要求コントローラがリフレッシュ要求を発行するサブスロット番号を格納するリフレッシュ要求サブスロット番号設定レジスタをさらに備える、請求項20に記載の半導体装置。
  22. 前記第2の設定レジスタ群を複数個備え、複数の前記第2の設定レジスタ群と前記複数のマスタとの対応付けを行う、請求項14に記載の半導体装置。
  23. 前記リクエスト発行制御部は、前記アクセス権が付与されたマスタからのリクエストを保持していない場合、前記アクセス権を返却し、
    前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報及び前記アクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する、請求項14に記載の半導体装置。
  24. 前記複数のマスタの予約バンド幅を格納する予約バンド幅設定レジスタを備える第1の設定レジスタ群と、
    前記複数のマスタの転送量を測定する転送量モニタと、をさらに備え、
    前記権利付与選択制御部は、
    前記第1の設定レジスタ群の設定情報、前記スロット設定レジスタの前記所定の期間、前記転送量モニタで測定された前記転送量、及び前記権利付与数制御部からの前記権利付与可能数、又は前記スロット設定レジスタの前記所定の期間、前記配布優先度計算回路で計算された前記配布優先度、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記権利付与先のマスタを選択し、
    アクセス権付与信号と共に、前記第1の設定レジスタ群を用いて付与されたアクセス権か前記第2の設定レジスタ群を用いて付与されたアクセス権かを識別するアクセス権属性信号を配布し、
    前記転送量モニタは、前記アクセス権属性信号に合わせて、前記マスタの転送量を測定する機能を備える、請求項14に記載の半導体装置。
JP2016554520A 2015-10-01 2015-10-01 半導体装置 Active JP6513695B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/005013 WO2017056132A1 (ja) 2015-10-01 2015-10-01 半導体装置

Publications (2)

Publication Number Publication Date
JPWO2017056132A1 JPWO2017056132A1 (ja) 2018-07-19
JP6513695B2 true JP6513695B2 (ja) 2019-05-15

Family

ID=58422810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016554520A Active JP6513695B2 (ja) 2015-10-01 2015-10-01 半導体装置

Country Status (6)

Country Link
US (3) US10108562B2 (ja)
EP (1) EP3358468B1 (ja)
JP (1) JP6513695B2 (ja)
KR (1) KR102344032B1 (ja)
CN (2) CN106856663B (ja)
WO (1) WO2017056132A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6886301B2 (ja) * 2017-01-26 2021-06-16 キヤノン株式会社 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置
JP6890055B2 (ja) 2017-06-30 2021-06-18 ルネサスエレクトロニクス株式会社 半導体装置
JP2019101446A (ja) * 2017-11-28 2019-06-24 ルネサスエレクトロニクス株式会社 半導体装置及びそれを備えた半導体システム
JP6946168B2 (ja) 2017-12-22 2021-10-06 ルネサスエレクトロニクス株式会社 半導体装置
JP7018834B2 (ja) * 2018-06-22 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置
JP7018833B2 (ja) * 2018-06-22 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置
US11449249B2 (en) * 2018-11-26 2022-09-20 Micron Technology, Inc. Configuring command/address channel for memory
JP2021082103A (ja) * 2019-11-21 2021-05-27 ルネサスエレクトロニクス株式会社 調停回路、データ転送システム、及び、調停回路による調停方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3781406T2 (de) * 1987-06-09 1993-04-01 Ibm Steuerungsschema fuer segmentierte puffer, gegruendet auf gemeinsam genutzter referenzzaehlung.
JP2986176B2 (ja) * 1990-05-11 1999-12-06 株式会社日立製作所 バス権制御方式およびバスシステム
US5265211A (en) * 1992-01-02 1993-11-23 International Business Machines Corporation Arbitration control logic for computer system having dual bus architecture
JP2591502B2 (ja) * 1994-12-09 1997-03-19 日本電気株式会社 情報処理システムおよびそのバス調停方式
US6070205A (en) * 1997-02-17 2000-05-30 Ssd Company Limited High-speed processor system having bus arbitration mechanism
US6006303A (en) * 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
JP3791005B2 (ja) * 2001-11-20 2006-06-28 日本電気株式会社 バスアクセス調停装置及びバスアクセス調停方法
JP2004171541A (ja) * 2002-11-08 2004-06-17 Matsushita Electric Ind Co Ltd データ記憶システムおよび転送制御方法
EP1418506A3 (en) * 2002-11-08 2005-10-12 Matsushita Electric Industrial Co., Ltd. Data storing system and transmission control method
JP2004227049A (ja) * 2003-01-20 2004-08-12 Renesas Technology Corp データ転送装置、半導体集積回路及びマイクロコンピュータ
JP4480427B2 (ja) 2004-03-12 2010-06-16 パナソニック株式会社 リソース管理装置
JP4748641B2 (ja) * 2004-12-06 2011-08-17 ルネサスエレクトロニクス株式会社 情報処理システム
JP2006195867A (ja) * 2005-01-17 2006-07-27 Matsushita Electric Ind Co Ltd バス調停方法及び半導体装置
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
JP2008130056A (ja) * 2006-11-27 2008-06-05 Renesas Technology Corp 半導体回路
TW201017421A (en) * 2008-09-24 2010-05-01 Panasonic Corp Cache memory, memory system and control method therefor
JP2010282405A (ja) * 2009-06-04 2010-12-16 Renesas Electronics Corp データ処理システム
JP2011095966A (ja) * 2009-10-29 2011-05-12 Yamaha Corp アクセスコントローラ
GB2484483B (en) 2010-10-12 2018-07-11 Advanced Risc Mach Ltd Communication using integrated circuit interconnect circuitry
CN102207918B (zh) * 2011-06-07 2014-04-23 北京北大众志微系统科技有限责任公司 一种片上总线仲裁方法及装置
KR101861768B1 (ko) * 2011-09-16 2018-05-28 삼성전자주식회사 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법
US9772958B2 (en) * 2011-10-31 2017-09-26 Hewlett Packard Enterprise Development Lp Methods and apparatus to control generation of memory access requests
WO2014027445A1 (ja) * 2012-08-13 2014-02-20 パナソニック株式会社 アクセス制御装置、中継装置、アクセス制御方法、コンピュータプログラム
US9251108B2 (en) * 2012-11-05 2016-02-02 International Business Machines Corporation Managing access to shared buffer resources
CN103914413A (zh) * 2014-04-18 2014-07-09 东南大学 用于粗粒度可重构系统的外存访问接口及其访问方法

Also Published As

Publication number Publication date
US20190057052A1 (en) 2019-02-21
EP3358468B1 (en) 2020-12-09
WO2017056132A1 (ja) 2017-04-06
EP3358468A1 (en) 2018-08-08
EP3358468A4 (en) 2019-06-12
US20210026788A1 (en) 2021-01-28
US20170270063A1 (en) 2017-09-21
CN106856663A (zh) 2017-06-16
CN106856663B (zh) 2022-01-07
KR20180062915A (ko) 2018-06-11
US10108562B2 (en) 2018-10-23
CN114490457A (zh) 2022-05-13
US11294835B2 (en) 2022-04-05
KR102344032B1 (ko) 2021-12-28
JPWO2017056132A1 (ja) 2018-07-19
US10831683B2 (en) 2020-11-10

Similar Documents

Publication Publication Date Title
JP6513695B2 (ja) 半導体装置
US6976109B2 (en) Multi-level and multi-resolution bus arbitration
US7769936B2 (en) Data processing apparatus and method for arbitrating between messages routed over a communication channel
US7231475B1 (en) Advanced bandwidth allocation in PCI bus architecture
JP2005258867A (ja) リソース管理装置
US7380040B2 (en) Software programmable dynamic arbitration scheme
US7054970B2 (en) Bus arbiter for integrated circuit systems
US20190057047A1 (en) Data storage device and a method for controlling access to a memory device of a data storage device
US7080174B1 (en) System and method for managing input/output requests using a fairness throttle
US7555005B2 (en) Area efficient implementation of the consecutive access counter
KR20190076869A (ko) 반도체 장치 및 버스 제너레이터
JP5677007B2 (ja) バス調停装置、バス調停方法
US10002099B2 (en) Arbitrated access to resources among multiple devices
JP2011059915A (ja) 半導体装置
US20040243770A1 (en) Data transfer system
US7404025B2 (en) Software programmable dynamically reconfigurable scheme for controlling request grant and masking for ultra high priority accessor during arbitration
JP3985085B2 (ja) Dma制御装置
JP2000250853A (ja) バス調整制御装置
JP2007164713A (ja) リソース管理装置及びリソース管理方法
JP2010170473A (ja) バス調停装置
JP4170506B2 (ja) 調停回路および方法
JP2012168773A (ja) バスシステムおよびアクセス制御方法
JP2008117292A (ja) バス調停装置及びバス調停方法
JPH11232209A (ja) 計算機システム及びバス使用権割付方法
JP2008123273A (ja) 信号バス占有調停方法及びデータ転送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180508

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190410

R150 Certificate of patent or registration of utility model

Ref document number: 6513695

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150