(57)【要約】  本発明に係る半導体装置は、複数のマスタ（１００）と、メモリコントローラ（４００ａ）と、複数のマスタ（１００）とメモリコントローラ（４００ａ）とを接続するバスと、複数のマスタ（１００）のＱｏＳ情報を格納するＱｏＳ情報レジスタ（６１０）と、メモリコントローラ（４００ａ）のバッファ（４０１）の空き情報に基づいて、アクセス権の権利付与可能数を計算する権利付与数制御部（６０２）と、ＱｏＳ情報レジスタ（６１０）のＱｏＳ情報、及び権利付与数制御部（６０２）からの権利付与可能数に基づいて、アクセス権の権利付与先のマスタ（１００）を選択する権利付与選択制御部（６０３ａ）と、権利付与選択制御部（６０３ａ）からのアクセス権が未付与であるマスタ（１００）のリクエストを通さないリクエスト発行制御部（２０１ａ）と、を備える。
2017056132.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタと、
メモリコントローラと、
前記複数のマスタと前記メモリコントローラとを接続するバスと、
前記複数のマスタのＱｏＳ情報を格納するＱｏＳ情報レジスタと、
前記メモリコントローラのバッファの空き情報に基づいて、アクセス権の権利付与可能数を計算する権利付与数制御部と、
前記ＱｏＳ情報レジスタの前記ＱｏＳ情報、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記アクセス権の権利付与先のマスタを選択する権利付与選択制御部と、
前記権利付与選択制御部からの前記アクセス権が未付与であるマスタのリクエストを通さないリクエスト発行制御部と、
を備える半導体装置。
【請求項２】
前記権利付与可能数の最大数を格納する付与可能最大数設定レジスタをさらに備え、
前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報に基づいて、前記付与可能最大数設定レジスタが格納する前記最大数を上限として前記権利付与可能数を計算する、請求項１に記載の半導体装置。
【請求項３】
前記リクエスト発行制御部は、前記アクセス権が付与されたマスタからのリクエストを保持していない場合、前記アクセス権を返却し、
前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報及び前記アクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する、請求項１に記載の半導体装置。
【請求項４】
複数のマスタと、
メモリコントローラと、
前記複数のマスタと前記メモリコントローラとを接続するバスと、
前記複数のマスタの予約バンド幅を格納する予約バンド幅設定レジスタを備える第１の設定レジスタ群と、
所定の期間を格納するスロット設定レジスタと、
前記複数のマスタの転送量を測定する転送量モニタと、
前記メモリコントローラのバッファの空き情報に基づいて、アクセス権の権利付与可能数を計算する権利付与数制御部と、
前記第１の設定レジスタ群の設定情報、前記スロット設定レジスタの前記所定の期間、前記転送量モニタで測定された前記転送量、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記アクセス権の権利付与先のマスタを選択する権利付与選択制御部と、
前記権利付与選択制御部からの前記アクセス権が未付与であるマスタのリクエストを通さないリクエスト発行制御部と、
を備える半導体装置。
【請求項５】
前記第１の設定レジスタ群は、前記複数のマスタの優先レベルを格納する予約型優先レベル設定レジスタをさらに備える、請求項４に記載の半導体装置。
【請求項６】
前記第１の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する基本スロットの番号を格納する動作基本スロット番号設定レジスタをさらに備える、請求項４に記載の半導体装置。
【請求項７】
前記第１の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布するサブスロットパタンを格納する転送動作サブスロットパタン設定レジスタをさらに備える、請求項６に記載の半導体装置。
【請求項８】
前記第１の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する前記基本スロットの周期を格納する基本スロット周期設定レジスタをさらに備える、請求項６に記載の半導体装置。
【請求項９】
前記第１の設定レジスタ群は、前記予約バンド幅設定レジスタに代えて、前記複数のマスタのそれぞれについて、サブスロット毎に予約バンド幅を格納する予約バンド幅テーブル設定レジスタを備える、請求項６に記載の半導体装置。
【請求項１０】
前記メモリコントローラに対して、メモリのリフレッシュ要求信号を出力するリフレッシュ要求コントローラをさらに備える、請求項４に記載の半導体装置。
【請求項１１】
前記リフレッシュ要求コントローラがリフレッシュ要求を発行するサブスロット番号を格納するリフレッシュ要求サブスロット番号設定レジスタをさらに備える、請求項１０に記載の半導体装置。
【請求項１２】
前記第１の設定レジスタ群を複数個備え、複数の前記第１の設定レジスタ群と前記複数のマスタとの対応付けを行う、請求項４に記載の半導体装置。
【請求項１３】
前記リクエスト発行制御部は、前記アクセス権が付与されたマスタからのリクエストを保持していない場合、前記アクセス権を返却し、
前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報及び前記アクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する、請求項４に記載の半導体装置。
【請求項１４】
複数のマスタと、
メモリコントローラと、
前記複数のマスタと前記メモリコントローラとを接続するバスと、
前記複数のマスタの目標転送量を格納する目標転送量設定レジスタを備える第２の設定レジスタ群と、
所定の期間を格納するスロット設定レジスタと、
前記目標転送量に基づいて、アクセス権の配布の優先度である配布優先度を計算する配布優先度計算回路と、
前記メモリコントローラのバッファの空き情報に基づいて、前記アクセス権の権利付与可能数を計算する権利付与数制御部と、
前記スロット設定レジスタの前記所定の期間、前記配布優先度計算回路で計算された前記配布優先度、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記アクセス権の権利付与先のマスタを選択する権利付与選択制御部と、
前記権利付与選択制御部からの前記アクセス権が未付与であるマスタのリクエストを通さないリクエスト発行制御部と、
を備える半導体装置。
【請求項１５】
前記複数のマスタの転送量を測定する転送量モニタをさらに備え、
前記第２の設定レジスタ群は、前記目標転送量を補正する期間を格納する配布優先度補正期間設定レジスタをさらに備え、
前記配布優先度計算回路は、前記目標転送量、前記転送量モニタで測定された前記転送量の累積値、及び前記補正する期間に基づいて、アクセス権の配布の優先度である配布優先度を計算する、請求項１４に記載の半導体装置。
【請求項１６】
前記第２の設定レジスタ群は、前記複数のマスタの優先レベルを格納するベストエフォート型優先レベル設定レジスタをさらに備える、請求項１４に記載の半導体装置。
【請求項１７】
前記第２の設定レジスタ群は、前記配布優先度を初期化する間隔を格納する配布優先度初期化間隔設定レジスタをさらに備える、請求項１４に記載の半導体装置。
【請求項１８】
前記第２の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する基本スロットの周期を格納する基本スロット周期設定レジスタをさらに備える、請求項１４に記載の半導体装置。
【請求項１９】
前記第２の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する前記基本スロットを格納する動作基本スロット番号設定レジスタをさらに備える、請求項１８に記載の半導体装置。
【請求項２０】
前記メモリコントローラに対して、メモリのリフレッシュ要求信号を出力するリフレッシュ要求コントローラをさらに備える、請求項１４に記載の半導体装置。
【請求項２１】
前記リフレッシュ要求コントローラがリフレッシュ要求を発行するサブスロット番号を格納するリフレッシュ要求サブスロット番号設定レジスタをさらに備える、請求項２０に記載の半導体装置。
【請求項２２】
前記第２の設定レジスタ群を複数個備え、複数の前記第２の設定レジスタ群と前記複数のマスタとの対応付けを行う、請求項１４に記載の半導体装置。
【請求項２３】
前記リクエスト発行制御部は、前記アクセス権が付与されたマスタからのリクエストを保持していない場合、前記アクセス権を返却し、
前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報及び前記アクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する、請求項１４に記載の半導体装置。
【請求項２４】
前記複数のマスタの予約バンド幅を格納する予約バンド幅設定レジスタを備える第１の設定レジスタ群と、
前記複数のマスタの転送量を測定する転送量モニタと、をさらに備え、
前記権利付与選択制御部は、
前記第１の設定レジスタ群の設定情報、前記スロット設定レジスタの前記所定の期間、前記転送量モニタで測定された前記転送量、及び前記権利付与数制御部からの前記権利付与可能数、又は前記スロット設定レジスタの前記所定の期間、前記配布優先度計算回路で計算された前記配布優先度、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記権利付与先のマスタを選択し、
アクセス権付与信号と共に、前記第１の設定レジスタ群を用いて付与されたアクセス権か前記第２の設定レジスタ群を用いて付与されたアクセス権かを識別するアクセス権属性信号を配布し、
前記転送量モニタは、前記アクセス権属性信号に合わせて、前記マスタの転送量を測定する機能を備える、請求項１４に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、特にバスを介して複数の回路ブロックが接続される半導体装置に関する。
【背景技術】
【０００２】
半導体装置では、複数のバスマスタが共通バスに接続するバスシステムが多く提案されている。このようなバスシステムでは、複数のバスマスタからの共通バスへのリクエストに対して調停を行うことが必要である。調停に関する技術の例が特許文献１及び２に開示されている。【０００３】
特許文献１には、優先マスタに指定されているマスタからのリクエストがある場合、優先マスタが最優先順位を有するスロットが現在のスロット以降にあると、優先マスタのレイテンシーを低減させるようにスロットの入れ替えを行う技術が開示されている。【０００４】
また、特許文献２には、インタコネクトを経由して接続されるマルチマスタ・マルチスレーブで構成される回路において、物理ネットワークでリクエストを発行する前に、仮想ネットワーク上でノード間のトークンのやり取りを行うことによってバス調停を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２５８８６７号公報
【特許文献２】国際公開第２０１２／０４９４８５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、メモリコントローラのバッファの空き状況を見ずに、マスタからのリクエストをスロット毎に設定された優先マスタ情報に従って調停しているため、バス上でのリクエストが滞留する。このため、後続の優先度の高いリクエストが先行の優先度の低いリクエストによって流れなくなり、優先度の高いリクエストのレイテンシーが悪化するという問題があった。また、これを回避するためには、後続のリクエストが先行のリクエストを追い越せるように中間バッファを設ける必要があり、回路規模が増大してしまう。【０００７】
また、特許文献２の技術では、リクエストをトリガにしたトークンを用いて調停を行った後に物理ネットワークでリクエストを発行するため、回路のレイテンシーが増大するという問題があった。また、多階層のインタコネクトでは、階層毎に調停を行うため、リクエストを溜め込むバッファが各階層に大量に必要であった。【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、半導体装置は、メモリコントローラのバッファの空き情報に基づいて、アクセス権の権利付与可能数を計算し、複数のマスタのＱｏＳ（Quality of Service）情報、及び権利付与可能数に基づいて、アクセス権の権利付与先のマスタを選択し、アクセス権が未付与であるマスタのリクエストを通さないものである。
【発明の効果】
【００１０】
前記一実施の形態によれば、バス上でのリクエストの滞留をなくし、レイテンシーの改善及び回路規模の削減を実現することができる半導体装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる半導体装置の構成図である。
【図２】実施の形態１にかかるアクセス権に関するメモリコントローラの処理の一例を示すフローチャートである。
【図３】実施の形態１にかかるアクセス権に関する中央バス制御部の処理の一例を示すフローチャートである。
【図４】実施の形態１にかかるアクセス権に関するサブバス制御部の処理の一例を示すフローチャートである。
【図５】実施の形態２にかかる半導体装置の構成図である。
【図６】実施の形態２にかかる中央バス制御部の構成図である。
【図７】実施の形態２にかかるメモリコントローラの構成図である。
【図８】実施の形態２にかかる予約型レジスタ群の設定情報例を示す図である。
【図９】実施の形態２にかかる図８の設定におけるバンド幅の設定例を示す図である。
【図１０】実施の形態２にかかる予約型レジスタ群及びリフレッシュ要求サブスロット番号設定レジスタの設定情報例を示す図である。
【図１１】実施の形態２にかかる図１０の設定におけるバンド幅の設定例を示す図である。
【図１２】実施の形態２の変形例にかかる中央バス制御部の構成図である。
【図１３】実施の形態２の変形例にかかる予約型レジスタ群の設定情報例を示す図である。
【図１４】実施の形態２の変形例にかかる図１３の設定におけるバンド幅の設定例を示す図である。
【図１５】実施の形態３にかかる中央バス制御部の構成図である。
【図１６Ａ】実施の形態３にかかる一定間隔でリクエストを発行するマスタについての配布優先度の例を示す図である。
【図１６Ｂ】実施の形態３にかかる前半はリクエストを出さず後半にのみリクエストを出すマスタについての配布優先度の例を示す図である。
【図１７】実施の形態４にかかる半導体装置の構成図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、実施の形態について説明する。以下の実施の形態に示す具体的な数値などは、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項などについては、適宜、省略及び簡略化がなされている。
【００１３】
また、以下の実施の形態には、様々な設定レジスタが存在するが、それぞれの設定レジスタが格納する値又は情報は、変更することが可能である。
【００１４】
実施の形態１
図１は、実施の形態１にかかる半導体装置の構成を示す図である。図１に示すように、実施の形態１にかかる半導体装置は、複数個のマスタ１００と、複数個のサブバス制御部２００ａと、バスアービタ（Bus Arbiter）３００と、メモリコントローラ４００ａと、メモリ５００と、中央バス制御部６００ａと、バス１０、バス２０、バス３０とを有する。なお、図１の例では、マスタ１００の数を３つとしているが、マスタ１００の数は、２つ以上であればいくつでもよい。以下、図１の３つのマスタ１００を、それぞれマスタＡ、マスタＢ、マスタＣとも呼ぶ。また、マスタ１００の数とサブバス制御部２００ａの数は同数とする。
【００１５】
複数のマスタ１００は、それぞれバス１０を介して対応するサブバス制御部２００ａに接続されている。複数のマスタ１００は、メモリ５００に対するリクエストを、バス１０を介してサブバス制御部２００ａへ出力する。
【００１６】
サブバス制御部２００ａは、リクエスト発行制御部２０１ａを有する。リクエスト発行制御部２０１ａは、バス１０からリクエストを受け取る。また、リクエスト発行制御部２０１ａは、中央バス制御部６００ａから優先レベル信号７０５を受け取る。ここで、優先レベル信号７０５とは、マスタ１００のＱｏＳ情報に基づく優先レベルを示す信号である。
【００１７】
また、リクエスト発行制御部２０１ａは、受け取ったリクエストについて、バス２０へ出力するか否かを判定する。当該判定は、中央バス制御部６００ａからアクセス権の付与を示すアクセス権付与信号７００が配布されたか否かにより行う。リクエスト発行制御部２０１ａは、アクセス権付与信号７００が配布された場合、受け取ったリクエストをバス２０へ出力する。また、リクエスト発行制御部２０１ａは、アクセス権付与信号７００が配布されていない場合、すなわちアクセス権が未付与である場合、受け取ったリクエストをバス２０へ出力しない。すなわち、リクエスト発行制御部２０１ａは、アクセス権を獲得するまでマスタ１００のリクエストを通すことができない。
【００１８】
そして、リクエスト発行制御部２０１ａは、受け取ったリクエストをバス２０へ出力する際には、対応するマスタ１００の優先レベルを当該リクエストに付加して出力する。なお、当該優先レベルは、優先レベル信号７０５が示す優先レベルである。また、リクエスト発行制御部２０１ａは、アクセス権を獲得したときに、バス１０からリクエストを受け取っていないならば、アクセス権返却信号７１０により中央バス制御部６００ａへアクセス権を返却する。
【００１９】
バスアービタ３００は、バス２０からリクエストを受け取る。また、バスアービタ３００は、受け取ったリクエストに付加されている優先レベルを用いてリクエストの調停を行う。なお、バスアービタ３００が行う優先レベルを用いたリクエストの調停手法は、一般に知られた手法であり説明は省略する。そして、バスアービタ３００は、調停の結果、複数のマスタ１００からのリクエストのうち、優先レベルが最も高いリクエストをバス３０へ出力する。なお、バスアービタ３００が行う調停は、ラウンドロビン方式や固定優先方式であってもよい。
【００２０】
メモリコントローラ４００ａは、バッファ（Buffer）４０１を備えている。メモリコントローラ４００ａは、バス３０からリクエストを受け取る。また、メモリコントローラ４００ａは、受け取ったリクエストをバッファ４０１に格納する。そして、メモリコントローラ４００ａは、バッファ４０１に格納されたリクエストに付加されている優先レベルを用いて、リクエストのスケジューリングを行い、メモリ５００へのアクセスを制御する。また、メモリコントローラ４００ａは、バッファ４０１の使用状況を常に監視する。そして、レスポンス処理が終了したことにより、バッファ４０１が解放された場合、バッファ４０１の解放情報をバッファ解放通知信号７２０として中央バス制御部６００ａへ出力する。
【００２１】
メモリ５００は、例えば、ＤＤＲ ＳＤＲＡＭ（Double-Data-Rate Synchronous Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）等である。なお、メモリ５００は、ＤＤＲ ＳＤＲＡＭ、ＳＲＡＭに限らず他のメモリであってもよい。
【００２２】
中央バス制御部６００ａは、アクセス権についての制御を行うための機能部である。中央バス制御部６００ａは、付与可能最大数設定レジスタ６０１と、権利付与数制御部６０２と、権利付与選択制御部６０３ａと、ＱｏＳ情報レジスタ６１０とを備えている。
【００２３】
付与可能最大数設定レジスタ６０１は、アクセス権の権利付与可能数の最大数を格納する。ここで、アクセス権の権利付与可能数の最大数とは、付与することが可能なアクセス権の最大数を示す。なお、付与可能最大数設定レジスタ６０１が格納する権利付与可能数の最大数の値は、変更することができる。
【００２４】
権利付与数制御部６０２は、バッファ４０１が解放された場合、バッファ解放通知信号７２０をメモリコントローラ４００ａから受け取る。そして、権利付与数制御部６０２は、バッファ４０１の空き情報に基づいて、アクセス権の権利付与可能数を計算する。また、権利付与数制御部６０２は、計算した権利付与可能数を権利付与選択制御部６０３ａへ出力する。
【００２５】
ここで、アクセス権の権利付与可能数の計算の具体例について説明する。権利付与数制御部６０２は、バッファ解放通知信号７２０の他に、権利付与可能数の最大数を付与可能最大数設定レジスタ６０１から読み出す。そして、権利付与数制御部６０２は、バッファ４０１の空き情報に基づいて、権利付与可能数の最大数を上限としてアクセス権の権利付与可能数を計算する。
【００２６】
また、権利付与数制御部６０２は、バッファ解放通知信号７２０の他に、アクセス権返却信号７１０をリクエスト発行制御部２０１ａから受け取る。そして、権利付与数制御部６０２は、バッファ４０１の空き情報及びアクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する。
【００２７】
さらに、権利付与数制御部６０２は、バッファ解放通知信号７２０の他に、権利付与可能数の最大数、アクセス権返却信号７１０、及びアクセス権を配布した数を用いてアクセス権の権利付与可能数を計算することもできる。具体的には、権利付与可能数の最大数を起点として、アクセス権付与信号７００を配布すると、配布した数だけ権利付与可能数を減らす。また、権利付与数制御部６０２は、メモリコントローラ４００ａからバッファ解放通知信号７２０を受け取る、又はリクエスト発行制御部２０１ａからアクセス権返却信号７１０を受け取ることによって権利付与可能数を増やす。なお、権利付与数制御部６０２は、アクセス権を配布した数について、権利付与選択制御部６０３ａから受け取ることにより認識してもよい。また、権利付与数制御部６０２は、権利付与選択制御部６０３ａへ出力した権利付与可能数を、アクセス権を配布した数として認識するようにしてもよい。これは、権利付与選択制御部６０３ａが、権利付与可能数分のすべてのアクセス権を必ず配布する場合に有効である。
【００２８】
ＱｏＳ情報レジスタ６１０は、複数のマスタ１００のＱｏＳ情報を格納する。
【００２９】
権利付与選択制御部６０３ａは、複数のマスタ１００のＱｏＳ情報をＱｏＳ情報レジスタ６１０から読み出す。また、権利付与選択制御部６０３ａは、権利付与可能数を権利付与数制御部６０２から受け取る。そして、権利付与選択制御部６０３ａは、複数のマスタ１００のＱｏＳ情報、及び権利付与可能数に基づいて、アクセス権の権利付与先のマスタを選択する。具体的には、権利付与選択制御部６０３ａは、権利付与可能数の範囲内で、ＱｏＳ情報に基づく優先レベルが高いマスタ１００に優先的にアクセス権を配布するように、アクセス権の権利付与先のマスタを選択する。
【００３０】
また、権利付与選択制御部６０３ａは、アクセス権の権利付与先のマスタとして選択したマスタ１００に対してアクセス権付与信号７００を配布する。具体的には、選択したマスタ１００のサブバス制御部２００ａに対してアクセス権付与信号７００を出力する。なお、権利付与選択制御部６０３aにおけるアクセス権の権利付与先のマスタ選択及びアクセス権付与信号７００の出力は、毎サイクル行われる。さらに、権利付与選択制御部６０３ａは、マスタ１００のＱｏＳ情報に基づく優先レベルを示す優先レベル信号７０５を、当該マスタ１００のサブバス制御部２００ａに対して出力する。なお、権利付与選択制御部６０３ａにおける優先レベル信号７０５の出力は、ＱｏＳ情報レジスタ６１０にＱｏＳ情報が格納されたタイミングで行われる。これにより、ＱｏＳ情報レジスタ６１０に格納されたＱｏＳ情報に基づく優先レベルが、サブバス制御部２００ａにも反映される。
【００３１】
続いて、実施の形態１にかかる半導体装置におけるアクセス権に関するメモリコントローラ４００ａ、中央バス制御部６００ａ、及びサブバス制御部２００ａのそれぞれの処理フローの例を、図２、図３、及び図４を用いて説明する。
【００３２】
最初に、図２に示すフローチャートを用いてアクセス権に関するメモリコントローラ４００ａの処理フローについて説明する。
【００３３】
まず、メモリコントローラ４００ａは、バッファ４０１が解放されたか否かを監視する（Ｓ１０１）。Ｓ１０１にて、バッファ４０１が解放されていないと判定された場合、Ｓ１０１の監視を続ける。
【００３４】
Ｓ１０１にて、バッファ４０１が解放されたと判定された場合、メモリコントローラ４００ａは、バッファ４０１の解放情報をバッファ解放通知信号７２０として中央バス制御部６００ａへ出力し（Ｓ１０２）、Ｓ１０１に戻る。
【００３５】
次に、図３に示すフローチャートを用いてアクセス権に関する中央バス制御部６００ａの処理フローについて説明する。
【００３６】
まず、権利付与数制御部６０２は、バッファ解放通知信号７２０を受け取ったか否かを判定する（Ｓ２０１）。Ｓ２０１にて、バッファ解放通知信号７２０を受け取ったと判定された場合、権利付与数制御部６０２は、権利付与可能数を増やす（Ｓ２０２）。
【００３７】
Ｓ２０２の後、権利付与数制御部６０２は、アクセス権返却信号７１０を受け取ったか否かを判定する（Ｓ２０３）。また、Ｓ２０１にて、バッファ解放通知信号７２０を受け取っていないと判定された場合もＳ２０３へ進む。Ｓ２０３にて、アクセス権返却信号７１０を受け取ったと判定された場合、権利付与数制御部６０２は、権利付与可能数を増やす（Ｓ２０４）。
【００３８】
Ｓ２０４の後、権利付与選択制御部６０３ａは、権利付与可能か否かを判定する（Ｓ２０５）。また、Ｓ２０３にて、アクセス権返却信号７１０を受け取っていないと判定された場合もＳ２０５へ進む。Ｓ２０５の判定は、権利付与数制御部６０２から権利付与可能数を受け取ることにより行う。なお、Ｓ２０５の判定は、毎サイクル行われる。
【００３９】
Ｓ２０５にて、権利付与可能でないと判定された場合、Ｓ２０１に戻る。他方、Ｓ２０５にて、権利付与可能と判定された場合、権利付与選択制御部６０３ａは、権利付与先のマスタを選択する（Ｓ２０６）。Ｓ２０６の後、権利付与選択制御部６０３ａは、権利付与先のマスタに対してアクセス権付与信号７００を配布する（Ｓ２０７）。
【００４０】
Ｓ２０７の後、権利付与数制御部６０２は、権利付与可能数を減らし（Ｓ２０８）、Ｓ２０１に戻る。
【００４１】
なお、図３では、Ｓ２０１をＳ２０３より前に行っているが、Ｓ２０１とＳ２０３は、どちらを先に行ってもよい。また、図３では、Ｓ２０８をＳ２０７の後に行っているが、Ｓ２０８は、Ｓ２０７より前に行ってもよい。例えば、権利付与数制御部６０２は、権利付与可能数を権利付与選択制御部６０３ａへ出力するタイミングで、権利付与可能数を減らしてもよい。
【００４２】
次に、図４に示すフローチャートを用いてアクセス権に関するサブバス制御部２００ａの処理フローについて説明する。
【００４３】
まず、リクエスト発行制御部２０１ａは、アクセス権を獲得したか否かを判定する（Ｓ３０１）。Ｓ３０１にて、アクセス権を獲得していないと判定された場合、マスタ１００のリクエストを通さず（Ｓ３０２）、Ｓ３０１に戻る。
【００４４】
他方、Ｓ３０１にて、アクセス権を獲得したと判定された場合、リクエスト発行制御部２０１ａは、マスタ１００から受け取ったリクエストを保持しているか否かを判定する（Ｓ３０３）。Ｓ３０３にて、リクエストを保持していないと判定された場合、アクセス権を権利付与数制御部６０２へ返却する（Ｓ３０４）。他方、Ｓ３０３にて、リクエストを保持していると判定された場合、リクエストを通す（Ｓ３０５）。すなわち、バス２０へリクエストを出力する。その後、Ｓ３０１に戻る。
【００４５】
以上、説明したように、実施の形態１にかかる半導体装置では、メモリコントローラ４００ａのバッファ４０１の空き状況を監視し、中央バス制御部６００ａによりアクセス権を使ってすべてのマスタ１００のリクエスト制御を行う。これによって、全体最適な制御を実現することができる。
【００４６】
また、権利付与数制御部６０２により配布するアクセス権の数を制御する。これによって、バスシステム全体で滞留するリクエストの数を制御することができる。
【００４７】
また、付与可能最大数設定レジスタ６０１によりアクセス権の権利付与可能数の最大数を設定可能な構成としている。これによって、当該最大数をメモリコントローラ４００ａのバッファ４０１と同じ数に設定すれば必ずバスが詰まらないように制御することができる。また、当該最大数をメモリコントローラ４００ａのバッファ４０１より大きい数に設定することによって、途中経路のバスに存在できるリクエストを考慮して制御することができる。
【００４８】
さらに、リクエスト発行制御部２０１ａにより、アクセス権が付与されたマスタ１００からのリクエストを保持していない場合、アクセス権を返却する構成としている。これによって、権利付与可能数を返却された数だけ増やすことができる。
【００４９】
実施の形態２
次に、実施の形態２にかかる半導体装置について説明する。図５に示すように、実施の形態２にかかる半導体装置は、複数個のマスタ１００と、複数個のサブバス制御部２００ａと、バスアービタ３００と、メモリコントローラ４００ｂと、メモリ５００と、中央バス制御部６００ｂと、バス１０、バス２０、バス３０とを有する。なお、複数個のマスタ１００、複数個のサブバス制御部２００ａ、バスアービタ３００、メモリ５００、バス１０、バス２０、バス３０については、実施の形態１に示す構成と同じであるため、説明を省略する。
【００５０】
次に、中央バス制御部６００ｂについて図６を用いて説明する。図６に示すように、中央バス制御部６００ｂは、付与可能最大数設定レジスタ６０１と、権利付与数制御部６０２と、権利付与選択制御部６０３ｂと、スロット設定レジスタ６０４と、リフレッシュ要求サブスロット番号設定レジスタ６０５と、リフレッシュ要求コントローラ６０６と、マスク信号生成部６０７と、予約型レジスタ群６２０ａと、転送量モニタ６４０ａとを備えている。なお、付与可能最大数設定レジスタ６０１と、権利付与数制御部６０２については、実施の形態１に示す構成と同じであるため、説明を省略する。なお、予約型レジスタ群は、第１の設定レジスタ群と呼んでもよい。
【００５１】
スロット設定レジスタ６０４は、１基本スロット内に存在するサブスロットの数と１サブスロットの期間を格納する。ここで、基本スロットとは、メモリ５００のリフレッシュ期間を示す。スロット設定レジスタ６０４が格納する１基本スロット内に存在するサブスロットの数、及び１サブスロットの期間は、変更することができる。
【００５２】
リフレッシュ要求サブスロット番号設定レジスタ６０５は、リフレッシュ要求コントローラ６０６がリフレッシュ要求信号７４０を出力するサブスロット番号を格納する。なお、リフレッシュ要求サブスロット番号設定レジスタ６０５が格納するサブスロット番号は、変更することができる。
【００５３】
リフレッシュ要求コントローラ６０６は、リフレッシュ要求サブスロット番号設定レジスタ６０５に格納されているサブスロット番号を読み出す。また、リフレッシュ要求コントローラ６０６は、読み出したサブスロット番号が示すサブスロットにてリフレッシュ要求信号７４０をメモリコントローラ４００ｂへ出力する。
【００５４】
転送量モニタ６４０ａは、複数のマスタ１００からそれぞれ対応するサブバス制御部２００ａを介してバスアービタ３００へ転送されるリクエストの転送量を測定する機能部である。転送量モニタ６４０ａは、複数のバス２０からのモニタ信号７３０により複数のマスタ１００からのリクエストの転送量を測定する。そして、転送量モニタ６４０ａは、測定した複数のマスタ１００からのリクエストの転送量をマスク信号生成部６０７へ出力する。
【００５５】
予約型レジスタ群６２０ａは、予約バンド幅設定レジスタ６２１と、予約型優先レベル設定レジスタ６２２と、基本スロット周期設定レジスタ６２３と、動作基本スロット番号設定レジスタ６２４と、転送動作サブスロットパタン設定レジスタ６２５とを備えている。
【００５６】
図６の例では、中央バス制御部６００ｂは、マスタ１００の数と同数の予約型レジスタ群６２０ａを備えている。なお、複数のマスタ１００と予約型レジスタ群６２０ａとの関係は、以下に示すいずれの関係であってもよい。
【００５７】
例えば、複数のマスタ１００に対してそれぞれ専用の予約型レジスタ群６２０ａを用いるようにしてもよい。具体的には、マスタＡ、マスタＢ、マスタＣの３つのマスタが存在する場合、中央バス制御部６００ｂは、マスタＡ専用の予約型レジスタ群６２０ａ、マスタＢ専用の予約型レジスタ群６２０ａ、マスタＣ専用の予約型レジスタ群６２０ａの３つの予約型レジスタ群６２０ａを備えるようにしてもよい。また、予約型レジスタ群６２０ａの各々は、各マスタ１００専用の予約型レジスタ群６２０ａとしなくてもよい。例えば、中央バス制御部６００ｂは、複数の予約型レジスタ群６２０ａを備え、複数の予約型レジスタ群６２０ａと複数のマスタ１００との対応付けを行う構成としてもよい。また、中央バス制御部６００ｂは、予約型レジスタ群６２０ａを１つ備え、当該予約型レジスタ群６２０ａ内の設定レジスタの各々が、それぞれ複数のマスタ１００についての情報を格納するようにしてもよい。また、予約型レジスタ群６２０ａ内の各設定レジスタについて、複数のマスタ１００の各々に対して別々に設ける設定レジスタと、複数のマスタ１００についての情報を１つの設定レジスタ内に格納する設定レジスタとに分けてもよい。
【００５８】
予約バンド幅設定レジスタ６２１は、複数のマスタ１００の予約バンド幅を格納する。ここで、予約バンド幅とは、例えば、マスタ１００における１サブスロットあたりの予約転送量を示す。
【００５９】
予約型優先レベル設定レジスタ６２２は、複数のマスタ１００の優先レベルを格納する。
【００６０】
基本スロット周期設定レジスタ６２３は、複数のマスタ１００のそれぞれについて、アクセス権を配布する基本スロットの周期を格納する。例えば、基本スロット周期設定レジスタ６２３に１を格納すると、アクセス権の配布が毎基本スロット有効となり、２を格納すると、２基本スロットに１回アクセス権の配布が有効となる。
【００６１】
動作基本スロット番号設定レジスタ６２４は、複数のマスタ１００のそれぞれについて、アクセス権を配布する基本スロット番号を格納する。例えば、動作基本スロット番号設定レジスタ６２４に１を格納すると、最初の基本スロットにてアクセス権の配布が有効となり、２を格納すると、２番目の基本スロットにてアクセス権の配布が有効となる。
【００６２】
転送動作サブスロットパタン設定レジスタ６２５は、複数のマスタ１００のそれぞれについて、アクセス権を配布するサブスロットパタンを格納する。具体的には、アクセス権を配布するサブスロットパタンとして、基本スロットを構成するそれぞれのサブスロットにおけるアクセス権の配布の可否を格納する。例えば、転送動作サブスロットパタン設定レジスタ６２５は、アクセス権の配布が可能であるサブスロットには○を格納し、アクセス権の配布が不可能であるサブスロットには×を格納する。
【００６３】
マスク信号生成部６０７は、複数のマスタ１００からのリクエストの転送量を転送量モニタ６４０ａから受け取る。また、マスク信号生成部６０７は、１基本スロット内に存在するサブスロットの数と１サブスロットの期間をスロット設定レジスタ６０４から読み出す。また、マスク信号生成部６０７は、複数のマスタ１００の予約バンド幅を予約バンド幅設定レジスタ６２１から読み出す。そして、マスク信号生成部６０７は、１基本スロット内に存在するサブスロットの数と１サブスロットの期間、複数のマスタ１００からのリクエストの転送量、及び複数のマスタ１００の予約バンド幅を用いて、アクセス権付与信号７００のマスク信号を生成する。さらに、マスク信号生成部６０７は、生成したマスク信号を権利付与選択制御部６０３ｂへ出力する。
【００６４】
ここで、アクセス権付与信号７００のマスク信号の生成手法について説明する。マスク信号生成部６０７は、スロット設定レジスタ６０４から読み出した１基本スロット内に存在するサブスロットの数と１サブスロットの期間を用いて、自身における１基本スロット内に存在するサブスロットの数と１サブスロットの期間を設定する。また、マスク信号生成部６０７は、いずれかのマスタ１００のリクエストの転送量が、そのマスタ１００の予約転送量に到達した場合、そのマスタ１００について、そのサブスロットの残り期間についてのマスク信号を生成する。
【００６５】
権利付与選択制御部６０３ｂは、複数のマスタ１００の予約バンド幅を予約バンド幅設定レジスタ６２１から読み出す。また、権利付与選択制御部６０３ｂは、複数のマスタ１００の優先レベルを予約型優先レベル設定レジスタ６２２から読み出す。また、権利付与選択制御部６０３ｂは、複数のマスタ１００のそれぞれについて、アクセス権を配布する基本スロット周期を基本スロット周期設定レジスタ６２３から読み出す。また、権利付与選択制御部６０３ｂは、複数のマスタ１００のそれぞれについて、アクセス権を配布する基本スロット番号を動作基本スロット番号設定レジスタ６２４から読み出す。また、権利付与選択制御部６０３ｂは、複数のマスタ１００のそれぞれについて、アクセス権を配布するサブスロットパタンを転送動作サブスロットパタン設定レジスタ６２５から読み出す。また、権利付与選択制御部６０３ｂは、マスク信号をマスク信号生成部６０７から受け取る。さらに、権利付与選択制御部６０３ｂは、権利付与可能数を権利付与数制御部６０２から受け取る。
【００６６】
そして、権利付与選択制御部６０３ｂは、複数のマスタ１００の予約バンド幅、複数のマスタ１００の優先レベル、複数のマスタ１００の基本スロット周期、複数のマスタ１００の基本スロット番号、複数のマスタ１００のサブスロットパタン、マスク信号、及び権利付与可能数を用いて、アクセス権の権利付与先のマスタを選択する。なお、権利付与選択制御部６０３ｂによるアクセス権の権利付与先のマスタを選択する手法については、後に図８及び図９を用いて詳述する。
【００６７】
また、権利付与選択制御部６０３ｂは、アクセス権の権利付与先のマスタとして選択したマスタ１００に対してアクセス権付与信号７００を配布する。具体的には、選択したマスタ１００のサブバス制御部２００ａに対してアクセス権付与信号７００を出力する。なお、権利付与選択制御部６０３ｂにおけるアクセス権の権利付与先のマスタ選択及びアクセス権付与信号７００の出力は、毎サイクル行う。さらに、権利付与選択制御部６０３ｂは、マスタ１００の優先レベルを示す優先レベル信号７０５を、当該マスタ１００のサブバス制御部２００ａに対して出力する。なお、権利付与選択制御部６０３ｂにおける優先レベル信号７０５の出力は、予約型優先レベル設定レジスタ６２２に優先レベルが格納されたタイミングで行われる。これにより、予約型優先レベル設定レジスタ６２２に格納された優先レベルが、サブバス制御部２００ａにも反映される。
【００６８】
次に、メモリコントローラ４００ｂについて図７を用いて説明する。図７に示すように、メモリコントローラ４００ｂは、バッファ４０１とリフレッシュコントローラ４０２とを備えている。なお、バッファ４０１については、実施の形態１に示す構成と同じであるため、説明を省略する。
【００６９】
リフレッシュコントローラ４０２は、リフレッシュ要求コントローラ６０６からリフレッシュ要求信号７４０を受け取る。そして、リフレッシュコントローラ４０２は、リフレッシュ要求信号７４０を受け取ると、リフレッシュコマンドをメモリ５００へ出力することにより、メモリ５００をリフレッシュする。
【００７０】
続いて、権利付与選択制御部６０３ｂによるアクセス権の権利付与先のマスタを選択する手法について、図８及び図９を用いて説明する。なお、図８及び図９では、複数のマスタ１００として、マスタＡ、マスタＢ、マスタＣ、マスタＤの４つのマスタを用いている。
【００７１】
まず、図８を用いて、実施の形態２にかかる予約型レジスタ群の設定情報の例について説明する。
【００７２】
予約バンド幅設定レジスタ６２１は、マスタＡ、マスタＢ、マスタＣ、マスタＤの予約バンド幅として、それぞれ１０ＧＢ／ｓ（gigabytes per second）、５ＧＢ／ｓ、８ＧＢ／ｓ、３ＧＢ／ｓを格納している。
【００７３】
基本スロット周期設定レジスタ６２３は、マスタＡ、マスタＢ、マスタＣ、マスタＤの基本スロット周期として、それぞれ１、１、４、２を格納している。
【００７４】
動作基本スロット番号設定レジスタ６２４は、マスタＡ、マスタＢ、マスタＣ、マスタＤの動作基本スロット番号として、それぞれ１、１、４、１を格納している。
【００７５】
転送動作サブスロットパタン設定レジスタ６２５は、マスタＡのサブスロット０（ss0）、サブスロット１、サブスロット２、サブスロット３における転送動作サブスロットパタンとして、○、○、○、○を格納している。また、転送動作サブスロットパタン設定レジスタ６２５は、マスタＢのサブスロット０、サブスロット１、サブスロット２、サブスロット３における転送動作サブスロットパタンとして、○、×、○、×を格納している。また、転送動作サブスロットパタン設定レジスタ６２５は、マスタＣのサブスロット０、サブスロット１、サブスロット２、サブスロット３における転送動作サブスロットパタンとして、○、○、○、○を格納している。さらに、転送動作サブスロットパタン設定レジスタ６２５は、マスタＤのサブスロット０、サブスロット１、サブスロット２、サブスロット３における転送動作サブスロットパタンとして、×、○、○、○を格納している。
【００７６】
次に、図９を用いて、図８の設定における権利付与先のマスタの選択について説明する。なお、図９の例では、権利付与可能数が足りていることを前提として説明する。権利付与可能数が不足している場合には、図９のテーブル及び複数のマスタ１００の優先レベルを用いて権利付与先のマスタの選択を行う。
【００７７】
権利付与選択制御部６０３ｂは、マスタＡに対して、毎基本スロットの毎サブスロットでアクセス権の配布を行う。また、権利付与選択制御部６０３ｂは、マスタＢに対して、毎基本スロットのサブスロット０及びサブスロット２でアクセス権の配布を行う。また、権利付与選択制御部６０３ｂは、マスタＣに対して、４基本スロット周期の４番目の基本スロットの毎サブスロットでアクセス権の配布を行う。さらに、権利付与選択制御部６０３ｂは、マスタＤに対して、２基本スロット周期の１番目の基本スロットのサブスロット１〜３でアクセス権の配布を行う。
【００７８】
すなわち、権利付与選択制御部６０３ｂは、１番目の基本スロットのサブスロット０では、権利付与先のマスタとして、マスタＡ及びマスタＢを選択し、１番目の基本スロットのサブスロット１では、権利付与先のマスタとして、マスタＡ及びマスタＤを選択する。残りのスロットについても同様に、バンド幅を設定しているマスタ１００を権利付与先のマスタとして選択する。
【００７９】
また、権利付与選択制御部６０３ｂは、いずれかのマスタ１００についてのマスク信号を受け取った場合、そのマスタ１００について、そのサブスロットの残り期間ではアクセス権の配布対象から外す。
【００８０】
続いて、メモリのリフレッシュを考慮したバンド幅制御について、図１０及び図１１を用いて説明する。
【００８１】
まず、図１０を用いて、実施の形態２にかかる予約型レジスタ群及びリフレッシュ要求サブスロット番号設定レジスタの設定情報の例について説明する。なお、図１０の例では、説明を簡単にするため、基本スロット周期及び動作基本スロット番号は０としている。
【００８２】
予約バンド幅設定レジスタ６２１は、マスタＡ、マスタＢ、マスタＣ、マスタＤの予約バンド幅として、それぞれ１０ＧＢ／ｓ、５ＧＢ／ｓ、８ＧＢ／ｓ、３ＧＢ／ｓを格納している。
【００８３】
転送動作サブスロットパタン設定レジスタ６２５は、マスタＡのサブスロット０、サブスロット１、サブスロット２、サブスロット３における転送動作サブスロットパタンとして、○、○、○、○を格納している。また、転送動作サブスロットパタン設定レジスタ６２５は、マスタＢのサブスロット０、サブスロット１、サブスロット２、サブスロット３における転送動作サブスロットパタンとして、○、×、○、×を格納している。また、転送動作サブスロットパタン設定レジスタ６２５は、マスタＣのサブスロット０、サブスロット１、サブスロット２、サブスロット３における転送動作サブスロットパタンとして、×、○、○、○を格納している。さらに、転送動作サブスロットパタン設定レジスタ６２５は、マスタＤのサブスロット０、サブスロット１、サブスロット２、サブスロット３における転送動作サブスロットパタンとして、×、○、×、○を格納している。
【００８４】
リフレッシュ要求サブスロット番号設定レジスタ６０５は、リフレッシュ要求コントローラ６０６がリフレッシュ要求信号７４０を出力するサブスロット番号として、０を格納している。
【００８５】
次に、図１１を用いて、図１０の設定における権利付与先のマスタの選択について説明する。
【００８６】
権利付与選択制御部６０３ｂは、マスタＡに対して、毎サブスロットでアクセス権の配布を行う。また、権利付与選択制御部６０３ｂは、マスタＢに対して、サブスロット０及びサブスロット２でアクセス権の配布を行う。また、権利付与選択制御部６０３ｂは、マスタＣに対して、サブスロット１〜３でアクセス権の配布を行う。さらに、権利付与選択制御部６０３ｂは、マスタＤに対して、サブスロット１及びサブスロット３でアクセス権の配布を行う。
【００８７】
すなわち、権利付与選択制御部６０３ｂは、サブスロット０では、権利付与先のマスタとして、マスタＡ及びマスタＢを選択する。また、権利付与選択制御部６０３ｂは、サブスロット１では、権利付与先のマスタとして、マスタＡ、マスタＣ及びマスタＤを選択する。また、権利付与選択制御部６０３ｂは、サブスロット２では、権利付与先のマスタとして、マスタＡ、マスタＢ及びマスタＣを選択する。さらに、権利付与選択制御部６０３ｂは、サブスロット３では、権利付与先のマスタとして、マスタＡ、マスタＣ及びマスタＤを選択する。
【００８８】
したがって、サブスロット０の設定バンド幅は、１５ＧＢ／ｓ、サブスロット１の設定バンド幅は、２１ＧＢ／ｓ、サブスロット２の設定バンド幅は、２３ＧＢ／ｓ、サブスロット３の設定バンド幅は、２１ＧＢ／ｓとなる。よって、リフレッシュを行うサブスロットの設定バンド幅は、他のサブスロットの設定バンド幅より小さくなる。
【００８９】
以上、説明したように、実施の形態２にかかる半導体装置では、転送量モニタ６４０ａ、予約バンド幅設定レジスタ６２１によって、各サブスロットでの設定バンド幅を制限している。これによって、各マスタ１００のリクエストを必要以上に転送しないように制限することができる。また、設定したバンド幅をサブスロット内で獲得させるように動作するため、一定のレイテンシーを保証することができる。
【００９０】
また、マスク信号生成部６０７によって、リクエストの転送量が予約転送量に到達したマスタ１００について、そのサブスロットの残り期間についてのマスク信号を生成している。これによって、マスタ１００のリクエストを予約転送量以上に転送しないように制限することができる。
【００９１】
また、スロット設定レジスタ６０４、基本スロット周期設定レジスタ６２３、動作基本スロット番号設定レジスタ６２４、転送動作サブスロットパタン設定レジスタ６２５によって、複数のマスタ１００へアクセス権を付与するサブスロット・基本スロットを設定している。これによって、マスタがリクエストを転送する順番や同時にリクエストを送るマスタの組み合わせがプログラミング可能となり、システムに応じたバンド幅制御が可能となる。
【００９２】
また、リフレッシュ要求コントローラ６０６、リフレッシュ要求サブスロット番号設定レジスタ６０５、リフレッシュコントローラ４０２によって、リフレッシュを発行するタイミングを制御することができる。これによって、リフレッシュによりメモリアクセスできないサブスロットは全体の要求バンド幅を減らして、リフレッシュを考慮したバンド幅制御が可能となる。
【００９３】
さらに、複数の予約型レジスタ群６２０ａと複数のマスタ１００との対応付けを行う構成とすることもできる。これによって、予約型レジスタ群６２０ａの数をマスタ１００の数に合わせなくても同様の制御を行うことができる。
【００９４】
実施の形態２の変形例
続いて、実施の形態２の変形例について説明する。実施の形態２の変形例では、実施の形態２の中央バス制御部６００ｂに代えて中央バス制御部６００ｃを用いる。なお、中央バス制御部以外の構成については、実施の形態２に示す構成と同じであるため、説明を省略する。
【００９５】
次に、中央バス制御部６００ｃについて図１２を用いて説明する。図１２に示すように、中央バス制御部６００ｃは、付与可能最大数設定レジスタ６０１と、権利付与数制御部６０２と、権利付与選択制御部６０３ｃと、スロット設定レジスタ６０４と、リフレッシュ要求サブスロット番号設定レジスタ６０５と、リフレッシュ要求コントローラ６０６と、マスク信号生成部６０７と、予約型レジスタ群６２０ｂと、転送量モニタ６４０ａとを備えている。なお、付与可能最大数設定レジスタ６０１、権利付与数制御部６０２、スロット設定レジスタ６０４、リフレッシュ要求サブスロット番号設定レジスタ６０５、リフレッシュ要求コントローラ６０６、及びマスク信号生成部６０７、及び転送量モニタ６４０ａについては、実施の形態２に示す構成と同じであるため、説明を省略する。
【００９６】
予約型レジスタ群６２０ｂは、予約型優先レベル設定レジスタ６２２と、基本スロット周期設定レジスタ６２３と、動作基本スロット番号設定レジスタ６２４と、予約バンド幅テーブル設定レジスタ６２６とを備えている。なお、予約型優先レベル設定レジスタ６２２、基本スロット周期設定レジスタ６２３、及び動作基本スロット番号設定レジスタ６２４については、実施の形態２に示す構成と同じであるため、説明を省略する。また、複数のマスタ１００と予約型レジスタ群６２０ｂとの関係は、複数のマスタ１００と予約型レジスタ群６２０ａとの関係と同じであるため、説明を省略する。
【００９７】
予約バンド幅テーブル設定レジスタ６２６は、複数のマスタ１００について、基本スロット中のサブスロット毎の予約バンド幅を格納する。
【００９８】
権利付与選択制御部６０３ｃは、複数のマスタ１００の優先レベルを予約型優先レベル設定レジスタ６２２から読み出す。また、権利付与選択制御部６０３ｃは、複数のマスタ１００のそれぞれについて、アクセス権を配布する基本スロット周期を基本スロット周期設定レジスタ６２３から読み出す。また、権利付与選択制御部６０３ｃは、複数のマスタ１００のそれぞれについて、アクセス権を配布する基本スロット番号を動作基本スロット番号設定レジスタ６２４から読み出す。また、権利付与選択制御部６０３ｃは、複数のマスタ１００におけるサブスロット毎の予約バンド幅を予約バンド幅テーブル設定レジスタ６２６から読み出す。また、権利付与選択制御部６０３ｃは、マスク信号をマスク信号生成部６０７から受け取る。さらに、権利付与選択制御部６０３ｃは、権利付与可能数を権利付与数制御部６０２から受け取る。
【００９９】
そして、権利付与選択制御部６０３ｃは、複数のマスタ１００の優先レベル、複数のマスタ１００の基本スロット周期、複数のマスタ１００の基本スロット番号、複数のマスタ１００のサブスロット毎の予約バンド幅、マスク信号、及び権利付与可能数を用いて、アクセス権の権利付与先のマスタを選択する。
【０１００】
また、権利付与選択制御部６０３ｃは、アクセス権の権利付与先のマスタとして選択したマスタ１００に対してアクセス権付与信号７００を配布する。具体的には、選択したマスタ１００のサブバス制御部２００ａに対してアクセス権付与信号７００を出力する。さらに、権利付与選択制御部６０３ｃは、アクセス権付与信号７００と共に、当該選択したマスタ１００の優先レベルを、当該選択したマスタ１００のサブバス制御部２００ａに対して出力する。なお、権利付与選択制御部６０３ｃにおけるアクセス権の権利付与先のマスタの選択及びアクセス権付与信号７００の出力は、毎サイクル行う。さらに、権利付与選択制御部６０３ｃは、マスタ１００の優先レベルを示す優先レベル信号７０５を、当該マスタ１００のサブバス制御部２００ａに対して出力する。なお、権利付与選択制御部６０３ｃにおける優先レベル信号７０５の出力は、予約型優先レベル設定レジスタ６２２に優先レベルが格納されたタイミングで行われる。これにより、予約型優先レベル設定レジスタ６２２に格納された優先レベルが、サブバス制御部２００ａにも反映される。
【０１０１】
続いて、権利付与選択制御部６０３ｃによるアクセス権の権利付与先のマスタを選択する手法について、図１３及び図１４を用いて説明する。なお、図１３及び図１４では、複数のマスタ１００として、マスタＡ、マスタＢ、マスタＣ、マスタＤの４つのマスタを用いている。
【０１０２】
まず、図１３を用いて、実施の形態２の変形例にかかる予約型レジスタ群の設定情報の例について説明する。
【０１０３】
予約バンド幅テーブル設定レジスタ６２６は、マスタＡにおけるサブスロット０〜３の予約バンド幅として、それぞれ１０ＧＢ／ｓ、０ＧＢ／ｓ、１０ＧＢ／ｓ、１０ＧＢ／ｓを格納している。また、マスタＢにおけるサブスロット０〜３の予約バンド幅として、それぞれ１３ＧＢ／ｓ、１０ＧＢ／ｓ、５ＧＢ／ｓ、５ＧＢ／ｓを格納している。また、マスタＣにおけるサブスロット０〜３の予約バンド幅として、それぞれ８ＧＢ／ｓ、８ＧＢ／ｓ、８ＧＢ／ｓ、８ＧＢ／ｓを格納している。さらに、マスタＤにおけるサブスロット０〜３の予約バンド幅として、それぞれ０ＧＢ／ｓ、８ＧＢ／ｓ、３ＧＢ／ｓ、３ＧＢ／ｓを格納している。
【０１０４】
すなわち、権利付与選択制御部６０３ｃは、マスタＢ及びマスタＤに対して、アクセス権の配布を行う各サブスロットで、異なる予約バンド幅を設定している。
【０１０５】
基本スロット周期設定レジスタ６２３は、マスタＡ、マスタＢ、マスタＣ、マスタＤの基本スロット周期として、それぞれ１、１、４、２を格納している。
【０１０６】
動作基本スロット番号設定レジスタ６２４は、マスタＡ、マスタＢ、マスタＣ、マスタＤの動作基本スロット番号として、それぞれ１、１、４、１を格納している。
【０１０７】
次に、図１４を用いて、図１３の設定における権利付与先のマスタの選択について説明する。なお、図１４の例では、権利付与可能数が足りていることを前提として説明する。権利付与可能数が不足している場合には、図１４のテーブル及び複数のマスタ１００の優先レベルを用いて権利付与先のマスタの選択を行う。
【０１０８】
権利付与選択制御部６０３ｃは、マスタＡに対して、毎基本スロットのサブスロット０、サブスロット２、及びサブスロット３でアクセス権の配布を行う。また、権利付与選択制御部６０３ｃは、マスタＢに対して、毎基本スロットの毎サブスロットでアクセス権の配布を行う。また、権利付与選択制御部６０３ｃは、マスタＣに対して、４基本スロット周期の４番目の基本スロットの毎サブスロットでアクセス権の配布を行う。さらに、権利付与選択制御部６０３ｃは、マスタＤに対して、２基本スロット周期の１番目の基本スロットのサブスロット１〜３でアクセス権の配布を行う。
【０１０９】
すなわち、権利付与選択制御部６０３ｃは、１番目の基本スロットのサブスロット０では、権利付与先のマスタとして、マスタＡ及びマスタＢを選択し、１番目の基本スロットのサブスロット１では、権利付与先のマスタとして、マスタＢ及びマスタＤを選択する。残りのスロットについても同様に、バンド幅を設定しているマスタ１００を権利付与先のマスタとして選択する。
【０１１０】
また、権利付与選択制御部６０３ｃは、いずれかのマスタ１００についてのマスク信号を受け取った場合、そのマスタ１００について、そのサブスロットの残り期間ではアクセス権の配布対象から外す。
【０１１１】
以上、説明したように、実施の形態２の変形例にかかる半導体装置では、予約バンド幅テーブル設定レジスタ６２６が、複数のマスタ１００について、サブスロット毎の予約バンド幅を格納している。これによって、実施の形態２と比べてさらに柔軟にシステムに応じたバンド幅の設定を行うことができる。
【０１１２】
実施の形態３
続いて、実施の形態３について説明する。実施の形態３では、実施の形態２の中央バス制御部６００ｂに代えて中央バス制御部６００ｄを用いる。なお、中央バス制御部以外の構成については、実施の形態２に示す構成と同じであるため、説明を省略する。
【０１１３】
次に、中央バス制御部６００ｄについて図１５を用いて説明する。図１５に示すように、中央バス制御部６００ｄは、付与可能最大数設定レジスタ６０１と、権利付与数制御部６０２と、権利付与選択制御部６０３ｄと、スロット設定レジスタ６０４と、リフレッシュ要求サブスロット番号設定レジスタ６０５と、リフレッシュ要求コントローラ６０６と、配布優先度計算回路６０８と、ベストエフォート（BE）型レジスタ群６３０と、転送量モニタ６４０ａとを備えている。なお、付与可能最大数設定レジスタ６０１、権利付与数制御部６０２、スロット設定レジスタ６０４、リフレッシュ要求サブスロット番号設定レジスタ６０５、及びリフレッシュ要求コントローラ６０６については、実施の形態２に示す構成と同じであるため、説明を省略する。なお、ベストエフォート型レジスタ群は、第２の設定レジスタ群と呼んでもよい。
【０１１４】
実施の形態３の転送量モニタ６４０ａの基本的な機能は、実施の形態２の転送量モニタ６４０ａと同じであるため、説明を省略する。但し、実施の形態３の転送量モニタ６４０ａは、測定した複数のマスタ１００からのリクエストの転送量を配布優先度計算回路６０８へ出力する。
【０１１５】
ベストエフォート型レジスタ群６３０は、目標転送量設定レジスタ６３１、更新転送量レジスタ６３２、配布優先度補正期間設定レジスタ６３３、ベストエフォート型優先レベル設定レジスタ６３４、配布優先度初期化間隔設定レジスタ６３５、基本スロット周期設定レジスタ６２３、動作基本スロット番号設定レジスタ６２４、転送動作サブスロットパタン設定レジスタ６２５を備えている。なお、基本スロット周期設定レジスタ６２３、動作基本スロット番号設定レジスタ６２４、及び転送動作サブスロットパタン設定レジスタ６２５については、実施の形態２に示す構成と同じであるため、説明を省略する。また、複数のマスタ１００とベストエフォート型レジスタ群６３０との関係は、複数のマスタ１００と予約型レジスタ群６２０ａとの関係と同等であるため、説明を省略する。
【０１１６】
目標転送量設定レジスタ６３１は、複数のマスタ１００について、１サブスロットあたりの目標転送量を格納する。
【０１１７】
更新転送量レジスタ６３２は、複数のマスタ１００について、転送量の累積値を示す累積転送量を格納する。
【０１１８】
配布優先度補正期間設定レジスタ６３３は、配布優先度補正期間を格納する。ここで、配布優先度とは、アクセス権の配布に関する優先度を示す。また、配布優先度補正期間とは、複数のマスタ１００の目標転送量を補正する期間である。具体的には、現時点から配布優先度補正期間が示す期間後の目標転送量を、配布優先度を計算するための目標転送量として設定する。なお、配布優先度補正期間設定レジスタ６３３が格納する配布優先度補正期間の値は、変更することができる。また、配布優先度補正期間は、サブスロット単位でもよいし、サブスロット単位でなくてもよい。また、配布優先度補正期間は、複数のマスタについて共通の期間でもよいし、複数のマスタで別々の期間でもよい。
【０１１９】
ベストエフォート型優先レベル設定レジスタ６３４は、複数のマスタ１００について、優先レベルを格納する。なお、ベストエフォート型優先レベル設定レジスタ６３４に格納される優先レベルは、リクエスト発行制御部２０１ａにてリクエストに付加されるものである。
【０１２０】
配布優先度初期化間隔設定レジスタ６３５は、配布優先度を初期化する間隔を示すサブスロット数を格納する。ここで、配布優先度の初期化とは、更新転送量レジスタ６３２に格納される累積転送量を初期化することである。なお、配布優先度初期化間隔設定レジスタ６３５が格納する配布優先度を初期化する間隔の値は、変更することができる。また、配布優先度初期化間隔は、複数のマスタについて共通の初期化間隔でもよいし、複数のマスタで別々の初期化間隔でもよい。
【０１２１】
配布優先度計算回路６０８は、アクセス権の配布に関する優先度を示す配布優先度を計算する回路である。例えば、配布優先度計算回路６０８は、複数のマスタの目標転送量に基づいて、配布優先度を計算する。
【０１２２】
配布優先度計算回路６０８について具体的に説明する。配布優先度計算回路６０８は、複数のマスタ１００からのリクエストの転送量を転送量モニタ６４０ａから受け取る。また、配布優先度計算回路６０８は、複数のマスタ１００についての１サブスロットあたりの目標転送量を目標転送量設定レジスタ６３１から読み出す。また、配布優先度計算回路６０８は、複数のマスタ１００についての累積転送量を更新転送量レジスタ６３２から読み出す。また、配布優先度計算回路６０８は、配布優先度補正期間を配布優先度補正期間設定レジスタ６３３から読み出す。さらに、配布優先度計算回路６０８は、配布優先度初期化間隔を配布優先度初期化間隔設定レジスタ６３５から読み出す。そして、配布優先度計算回路６０８は、複数のマスタ１００からのリクエストの転送量、複数のマスタ１００についての１サブスロットあたりの目標転送量、複数のマスタ１００についての累積転送量、配布優先度補正期間、及び配布優先度初期化間隔を用いて、配布優先度を計算する。配布優先度の計算手法については、後に図１６Ａ及び図１６Ｂを用いて詳述する。また、配布優先度計算回路６０８は、計算した配布優先度を権利付与選択制御部６０３ｄへ出力する。
【０１２３】
また、配布優先度計算回路６０８は、サブスロットが経過する毎に、更新転送量レジスタ６３２に格納される累積転送量を更新する。具体的には、更新転送量レジスタ６３２から読み出した前サブスロットまでの累積転送量と、転送量モニタ６４０ａから受け取った今サブスロットの転送量を用いて、今サブスロットまでの累積転送量を計算する。そして、配布優先度計算回路６０８は、計算した今サブスロットまでの累積転送量を更新転送量レジスタ６３２に格納する。
【０１２４】
権利付与選択制御部６０３ｄは、１基本スロット内に存在するサブスロットの数と１サブスロットの期間をスロット設定レジスタ６０４から読み出す。また、権利付与選択制御部６０３ｄは、配布優先度を配布優先度計算回路６０８から受け取る。また、権利付与選択制御部６０３ｄは、複数のマスタ１００のそれぞれについて、アクセス権を配布する基本スロット周期を基本スロット周期設定レジスタ６２３から読み出す。また、権利付与選択制御部６０３ｄは、複数のマスタ１００のそれぞれについて、アクセス権を配布する基本スロット番号を動作基本スロット番号設定レジスタ６２４から読み出す。また、権利付与選択制御部６０３ｄは、複数のマスタ１００のそれぞれについて、アクセス権を配布するサブスロットパタンを転送動作サブスロットパタン設定レジスタ６２５から読み出す。また、権利付与選択制御部６０３ｄは、権利付与可能数を権利付与数制御部６０２から受け取る。さらに、権利付与選択制御部６０３ｄは、複数のマスタ１００の優先レベルをベストエフォート型優先レベル設定レジスタ６３４から読み出す。
【０１２５】
そして、権利付与選択制御部６０３ｄは、１基本スロット内に存在するサブスロットの数と１サブスロットの期間、配布優先度、複数のマスタ１００の基本スロット周期、複数のマスタ１００の基本スロット番号、複数のマスタ１００のサブスロットパタン、及び権利付与可能数を用いて、アクセス権の権利付与先のマスタを選択する。
【０１２６】
また、権利付与選択制御部６０３ｄは、アクセス権の権利付与先のマスタとして選択したマスタ１００に対してアクセス権付与信号７００を配布する。具体的には、選択したマスタ１００のサブバス制御部２００ａに対してアクセス権付与信号７００を出力する。さらに、権利付与選択制御部６０３ｄは、アクセス権付与信号７００と共に、当該選択したマスタ１００の優先レベルを、当該選択したマスタ１００のサブバス制御部２００ａに対して出力する。なお、権利付与選択制御部６０３ｄにおけるアクセス権の権利付与先のマスタの選択及びアクセス権付与信号７００の出力は、毎サイクル行う。さらに、権利付与選択制御部６０３ｄは、マスタ１００の優先レベルを示す優先レベル信号７０５を、当該マスタ１００のサブバス制御部２００ａに対して出力する。なお、権利付与選択制御部６０３ｄにおける優先レベル信号７０５の出力は、ベストエフォート型優先レベル設定レジスタ６３４に優先レベルが格納されたタイミングで行われる。これにより、ベストエフォート型優先レベル設定レジスタ６３４に格納された優先レベルが、サブバス制御部２００ａにも反映される。
【０１２７】
続いて、配布優先度計算回路６０８による配布優先度の計算手法について、図１６Ａ及び図１６Ｂを用いて説明する。
【０１２８】
まず、図１６Ａを用いて、実施の形態３にかかる一定間隔でリクエストを発行するマスタについての配布優先度の計算手法について説明する。図１６ＡのマスタはマスタＡとする。また、図１６Ａの配布優先度補正期間は１サブスロットとする。また、図１６Ａに示す点線は、マスタＡの１サブスロットあたりの目標転送量を元に引いた線である。当該点線の縦軸方向の長さが、その実行時間における目標転送量を示す。また、図１６Ａに示す（１）〜（４）の矢印の傾きが配布優先度であり、傾きが大きいほど配布優先度は高いこととする。また、図１６Ａに示す（５）〜（８）の直線の傾きは、マスタＡの獲得バンド幅を示す。
【０１２９】
配布優先度計算回路６０８は、更新転送量レジスタ６３２から読み出したマスタＡの前サブスロットまでの累積転送量に、転送量モニタ６４０ａから受け取ったマスタＡの今サブスロットの転送量を加算することにより、今サブスロットまでの累積転送量を計算する。
【０１３０】
また、配布優先度計算回路６０８は、目標転送量設定レジスタ６３１から読み出したマスタＡの１サブスロットあたりの目標転送量と、配布優先度補正期間設定レジスタ６３３から読み出した配布優先度補正期間を用いて、配布優先度補正期間後の目標転送量を計算する。すなわち、配布優先度補正期間である１サブスロット後の目標転送量を求める。
【０１３１】
そして、配布優先度計算回路６０８は、今サブスロットまでの累積転送量と、１サブスロット後の目標転送量とを用いて、配布優先度を計算する。
【０１３２】
次に、具体例として、図１６Ａに示す（１）の矢印の傾きが示す配布優先度の計算手法について説明する。
【０１３３】
（１）の矢印の傾きは、実行時間が０の時点で計算する。実行時間が０の時点とは、更新転送量レジスタ６３２に格納されるマスタＡの累積転送量が初期化された直後のサブスロットの開始タイミングである。なお、更新転送量レジスタ６３２に格納されるマスタＡの累積転送量の初期化は、配布優先度計算回路６０８が、配布優先度初期化間隔設定レジスタ６３５から読み出した配布優先度初期化間隔を用いて行う。すなわち、配布優先度初期化間隔が示すサブスロット数毎に、マスタＡの累積転送量の初期化は行われる。
【０１３４】
実行時間が０の時点では、マスタＡの今サブスロットまでの累積転送量は０である。よって、実行時間が０且つ転送量が０である点と、配布優先度補正期間である１サブスロット後（実行時間が１サブスロットの時点）の目標転送量が示す点とを結んだ直線が（１）の矢印となる。
【０１３５】
次に、具体例として、図１６Ａに示す（２）の矢印の傾きが示す配布優先度の計算手法について説明する。
【０１３６】
（２）の矢印の傾きは、実行時間が１サブスロットの時点で計算する。なお、（５）の直線の傾きは、実行時間が０〜１サブスロットにおけるマスタＡの獲得バンド幅を示す。
【０１３７】
実行時間が１サブスロットの時点では、マスタＡの前サブスロットまでの累積転送量は０である。また、転送量モニタ６４０ａから受け取ったマスタＡの今サブスロットの転送量は、（５）の直線の１サブスロット時点の縦軸方向の長さである。よって、（５）の直線の実行時間が１サブスロットの時点の縦軸方向の長さは、マスタＡの今サブスロットまでの累積転送量を示す。そして、マスタＡの今サブスロットまでの累積転送量を示す点と、１サブスロット後（実行時間が２サブスロットの時点）の目標転送量が示す点とを結んだ直線が（２）の矢印となる。
【０１３８】
次に、具体例として、図１６Ａに示す（３）の矢印の傾きが示す配布優先度の計算手法について説明する。
【０１３９】
（３）の矢印の傾きは、実行時間が２サブスロットの時点で計算する。なお、（６）の直線の傾きは、実行時間が１〜２サブスロットにおけるマスタＡの獲得バンド幅を示す。
【０１４０】
実行時間が２サブスロットの時点におけるマスタＡの今サブスロットまでの累積転送量は、（６）の直線の実行時間が２サブスロットの時点の縦軸方向の長さである。そして、マスタＡの今サブスロットまでの累積転送量を示す点と、１サブスロット後（実行時間が３サブスロットの時点）の目標転送量が示す点とを結んだ直線が（３）の矢印となる。なお、図１６Ａに示す（４）の矢印の傾きが示す配布優先度の計算手法についても同様であるため説明を省略する。
【０１４１】
続いて、図１６Ｂを用いて、実施の形態３にかかる前半はリクエストを出さず後半にのみリクエストを出すマスタについての配布優先度の計算手法について説明する。図１６ＢのマスタはマスタＢとする。また、図１６Ｂの配布優先度補正期間は１．７サブスロットとする。また、図１６Ｂに示す点線は、マスタＢの１サブスロットあたりの目標転送量を元に引いた線である。当該点線の縦軸方向の長さが、その実行時間における目標転送量を示す。また、図１６Ｂに示す（９）〜（１２）の矢印の傾きが配布優先度である。また、図１６Ｂに示す（１３）の直線の傾きは、マスタＢの獲得バンド幅を示す。
【０１４２】
次に、具体例として、図１６Ｂに示す（９）の矢印の傾きが示す配布優先度の計算手法について説明する。
【０１４３】
（９）の矢印の傾きは、実行時間が０の時点で計算する。実行時間が０の時点では、マスタＢの今サブスロットまでの累積転送量は０である。よって、実行時間が０且つ転送量が０である点と、配布優先度補正期間である１．７サブスロット後（実行時間が１．７サブスロットの時点）の目標転送量が示す点とを結んだ直線が（９）の矢印となる。
【０１４４】
次に、具体例として、図１６Ｂに示す（１０）の矢印の傾きが示す配布優先度の計算手法について説明する。
【０１４５】
（１０）の矢印の傾きは、実行時間が１サブスロットの時点で計算する。マスタＢは、リクエストを出していないため、実行時間が１サブスロットの時点ではバンド幅を獲得していない。よって、実行時間が１サブスロットの時点では、マスタＢの今サブスロットまでの累積転送量は０である。よって、実行時間が０且つ転送量が０である点と、配布優先度補正期間である１．７サブスロット後（実行時間が２．７サブスロットの時点）の目標転送量が示す点とを結んだ直線が（１０）の矢印となる。なお、図１６Ｂに示す（１１）及び（１２）の矢印の傾きが示す配布優先度の計算手法についても同様であるため説明を省略する。
【０１４６】
次に、（１３）の直線の傾きが示すマスタＢの獲得バンド幅について説明する。実行時間が３サブスロットの時点で、マスタＢの配布優先度として、（１２）の矢印の傾きが示す配布優先度が計算される。また、マスタＢの配布優先度を用いて、アクセス権の権利付与先のマスタとしてマスタＢが選択されたとする。そして、マスタＢがリクエストを出した後、マスタＢは（１３）の直線の傾きが示すバンド幅を獲得する。
【０１４７】
以上、説明したように、実施の形態３にかかる半導体装置では、配布優先度計算回路６０８によって、マスタの目標転送量に基づいて配布優先度を計算する。これによって、長期間での獲得転送量補正が可能となる。
【０１４８】
また、配布優先度補正期間設定レジスタ６３３によって、配布優先度補正期間を格納する。また、配布優先度補正期間設定レジスタ６３３が格納する配布優先度補正期間の値は、変更することができる。これによって、システムに応じて最適な配布優先度を計算することができる。
【０１４９】
また、配布優先度初期化間隔設定レジスタ６３５によって、配布優先度を初期化する間隔を示すサブスロット数を格納する。また、配布優先度の初期化により、更新転送量レジスタ６３２に格納される累積転送量を初期化する。これによって、長期間での誤差の累積を軽減できる。また、マスタの動作に合わせたリセット間隔を設定することができる。
【０１５０】
さらに、複数のベストエフォート型レジスタ群６３０と複数のマスタ１００との対応付けを行う構成とすることもできる。これによって、ベストエフォート型レジスタ群６３０の数をマスタ１００の数に合わせなくても同様の制御を行うことができる。
【０１５１】
実施の形態４
続いて、実施の形態４について説明する。実施の形態４では、実施の形態２の予約型レジスタ群６２０ａを用いたアクセス権についての制御と、実施の形態３のベストエフォート型レジスタ群６３０を用いたアクセス権についての制御を複合的に行う。図１７に示すように、実施の形態４にかかる半導体装置は、サブバス制御部２００ｂ及び中央バス制御部６００ｅを備える。なお、サブバス制御部２００ｂ及び中央バス制御部６００ｅ以外の構成については、実施の形態２及び３の構成と同じであるため、説明を省略する。
【０１５２】
中央バス制御部６００ｅは、付与可能最大数設定レジスタ６０１と、権利付与数制御部６０２と、権利付与選択制御部６０３ｅと、スロット設定レジスタ６０４と、リフレッシュ要求サブスロット番号設定レジスタ６０５と、リフレッシュ要求コントローラ６０６と、マスク信号生成部６０７と、配布優先度計算回路６０８と、予約型レジスタ群６２０ａと、ベストエフォート型レジスタ群６３０と、転送量モニタ６４０ｂとを備えている。なお、権利付与選択制御部６０３ｅ及び転送量モニタ６４０ｂ以外の構成については、実施の形態２又は３の構成と同じであるため、説明を省略する。
【０１５３】
まず、権利付与選択制御部６０３ｅについて説明する。権利付与選択制御部６０３ｅは、実施の形態２の権利付与選択制御部６０３ｂにおけるアクセス権の権利付与先のマスタの選択機能と、実施の形態３の権利付与選択制御部６０３ｄにおけるアクセス権の権利付与先のマスタの選択機能の両方を備える機能部である。なお、権利付与選択制御部６０３ｂにおけるアクセス権の権利付与先のマスタの選択処理のことを、予約型レジスタ群６２０ａを用いた選択処理と呼ぶ。また、権利付与選択制御部６０３ｄにおける権利付与先のマスタの選択処理のことを、ベストエフォート型レジスタ群６３０を用いた選択処理と呼ぶ。権利付与選択制御部６０３ｅは、予約型レジスタ群６２０ａを用いた選択処理と、ベストエフォート型レジスタ群６３０を用いた選択処理とを独立して行う。
【０１５４】
また、双方の選択処理がかち合ったときには、どちらかを優先するように設定する。ここで、双方の選択処理がかち合ったときとは、双方の選択処理により１つのマスタを権利付与先のマスタとして選択することをいう。例えば、ベストエフォート型レジスタ群６３０を用いた選択処理を優先するように設定することにより、双方の選択処理がかち合ったとき、ベストエフォート型レジスタ群６３０を用いた選択処理により、当該マスタを権利付与先のマスタとして選択する。
【０１５５】
権利付与選択制御部６０３ｅは、選択したマスタ１００に対してアクセス権付与信号７００を配布する。具体的には、選択したマスタ１００のサブバス制御部２００ｂに対してアクセス権付与信号７００を出力する。また、権利付与選択制御部６０３ｅは、アクセス権付与信号７００と共に、当該選択したマスタ１００の優先レベル及びアクセス権属性信号７５０を、当該マスタ１００のサブバス制御部２００ｂに対して出力する。
【０１５６】
ここで、アクセス権属性信号７５０について説明する。アクセス権属性信号７５０とは、付与されたアクセス権が、予約型レジスタ群６２０ａを用いた選択処理により付与されたアクセス権か、ベストエフォート型レジスタ群６３０を用いた選択処理により付与されたアクセス権かを示す識別情報である。なお、予約型レジスタ群６２０ａを用いた選択処理により付与されたアクセス権を、予約型レジスタ群６２０ａを用いて付与されたアクセス権と呼ぶ。また、ベストエフォート型レジスタ群６３０を用いた選択処理により付与されたアクセス権を、ベストエフォート型レジスタ群６３０を用いて付与されたアクセス権と呼ぶ。
【０１５７】
次に、サブバス制御部２００ｂについて説明する。サブバス制御部２００ｂは、リクエスト発行制御部２０１ｂを有する。リクエスト発行制御部２０１ｂにおける制御について、アクセス権属性信号７５０に関する制御以外はリクエスト発行制御部２０１ａと同じであるため、同じ部分については説明を省略する。
【０１５８】
リクエスト発行制御部２０１ｂは、アクセス権属性信号７５０を権利付与選択制御部６０３ｅから受け取る。また、リクエスト発行制御部２０１ｂは、バス１０から受け取ったリクエストをバス２０へ出力する際には、アクセス権属性信号７５０を当該リクエストに付加して出力する。
【０１５９】
次に、転送量モニタ６４０ｂについて説明する。転送量モニタ６４０ｂは、予約型用転送量モニタ６４１と、ベストエフォート用転送量モニタ６４２とを備える。
【０１６０】
予約型用転送量モニタ６４１は、複数のマスタ１００から対応するサブバス制御部２００ｂを介してバスアービタ３００へ転送される予約型リクエストの転送量を測定する機能部である。ここで、予約型リクエストとは、予約型レジスタ群６２０ａを用いて付与されたアクセス権により、リクエスト発行制御部２０１ｂを通過したリクエストのことを示す。
【０１６１】
予約型用転送量モニタ６４１は、複数のバス２０からのモニタ信号７３０により複数のマスタ１００からの予約型リクエストの転送量を測定する。予約型リクエストか否かは、モニタ信号７３０に付加されているアクセス権属性信号７５０により識別する。そして、予約型用転送量モニタ６４１は、測定した複数のマスタ１００からの予約型リクエストの転送量をマスク信号生成部６０７へ出力する。
【０１６２】
ベストエフォート用転送量モニタ６４２は、複数のマスタ１００から対応するサブバス制御部２００ｂを介してバスアービタ３００へ転送されるベストエフォート型リクエストの転送量を測定する機能部である。ここで、ベストエフォート型リクエストとは、ベストエフォート型レジスタ群６３０を用いて付与されたアクセス権により、リクエスト発行制御部２０１ｂを通過したリクエストのことを示す。
【０１６３】
ベストエフォート用転送量モニタ６４２は、複数のバス２０からのモニタ信号７３０により複数のマスタ１００からのベストエフォート型リクエストの転送量を測定する。ベストエフォート型リクエストか否かは、モニタ信号７３０に付加されているアクセス権属性信号７５０により識別する。そして、ベストエフォート用転送量モニタ６４２は、測定した複数のマスタ１００からのベストエフォート型リクエストの転送量を配布優先度計算回路６０８へ出力する。
【０１６４】
以上、説明したように、実施の形態４にかかる半導体装置では、権利付与選択制御部６０３ｅは、予約型レジスタ群６２０ａを用いて付与されたアクセス権と、ベストエフォート型レジスタ群６３０を用いて付与されたアクセス権の２種類のアクセス権を配布する。これによって、短期間に一定のバンド幅を獲得する必要のあるマスタと長期間で一定のバンド幅を獲得する必要のあるマスタを効率的に制御することができる。
【０１６５】
なお、上述の例では、実施の形態４では、実施の形態２の予約型レジスタ群６２０ａを用いたアクセス権についての制御と、実施の形態３のベストエフォート型レジスタ群６３０を用いたアクセス権についての制御を複合的に行うことを例示して説明したが、これに限らない。実施の形態２の変形例の予約型レジスタ群６２０ｂを用いたアクセス権についての制御と、実施の形態３のベストエフォート型レジスタ群６３０を用いたアクセス権についての制御を複合的に行うようにしてもよい。
【０１６６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１６７】
１００    マスタ
２００ａ、２００ｂ    サブバス制御部
２０１ａ、２０１ｂ    リクエスト発行制御部
３００    バスアービタ
４００ａ、４００ｂ    メモリコントローラ
４０１    バッファ
４０２    リフレッシュコントローラ
５００    メモリ
６００ａ、６００ｂ、６００ｃ、６００ｄ、６００ｅ    中央バス制御部
６０１    付与可能最大数設定レジスタ
６０２    権利付与数制御部
６０３ａ、６０３ｂ、６０３ｃ、６０３ｄ、６０３ｅ    権利付与選択制御部
６０４    スロット設定レジスタ
６０５    リフレッシュ要求サブスロット番号設定レジスタ
６０６    リフレッシュ要求コントローラ
６０７    マスク信号生成部
６０８    配布優先度計算回路
６１０    ＱｏＳ情報レジスタ
６２０ａ、６２０ｂ    予約型レジスタ群
６２１    予約バンド幅設定レジスタ
６２２    予約型優先レベル設定レジスタ
６２３    基本スロット周期設定レジスタ
６２４    動作基本スロット番号設定レジスタ
６２５    転送動作サブスロットパタン設定レジスタ
６２６    予約バンド幅テーブル設定レジスタ
６３０    ベストエフォート型レジスタ群
６３１    目標転送量設定レジスタ
６３２    更新転送量レジスタ
６３３    配布優先度補正期間設定レジスタ
６３４    ベストエフォート型優先レベル設定レジスタ
６３５    配布優先度初期化間隔設定レジスタ
６４０ａ、６４０ｂ    転送量モニタ
６４１    予約型用転送量モニタ
６４２    ベストエフォート用転送量モニタ
【図１】
2017056132.tif 000003
【図２】
2017056132.tif 000004
【図３】
2017056132.tif 000005
【図４】
2017056132.tif 000006
【図５】
2017056132.tif 000007
【図６】
2017056132.tif 000008
【図７】
2017056132.tif 000009
【図８】
2017056132.tif 000010
【図９】
2017056132.tif 000011
【図１０】
2017056132.tif 000012
【図１１】
2017056132.tif 000013
【図１２】
2017056132.tif 000014
【図１３】
2017056132.tif 000015
【図１４】
2017056132.tif 000016
【図１５】
2017056132.tif 000017
【図１６Ａ】
2017056132.tif 000018
【図１６Ｂ】
2017056132.tif 000019
【図１７】
2017056132.tif 000020
【国際調査報告】
2017056132.tif 000021
2017056132.tif 000022
2017056132.tif 000023
2017056132.tif 000024