(57)【要約】【課題】マスタとメモリコントローラとの間にキャッシュが配置される場合でも、メモリコントローラによって受け付けられるアクセス要求の制御を可能とする。【解決手段】各マスタは、メモリ９０に対して、リード要求及びライト要求を含むアクセス要求を発行する。キャッシュ７５は、マスタが発行したライト要求をキャッシュする。中央バス制御システム５０は、各マスタが発行するリード要求及びキャッシュ７５が出力するライト要求に対してアクセス制御を実施する。中央バス制御システム６０は、各マスタが発行するライト要求に対してアクセス制御を実施する。中央バス制御システム５０は、メモリコントローラ８０のバッファの空き状況に応じてアクセス制御を実施する。中央バス制御システム６０は、キャッシュ７５の空き状況に応じてアクセス制御を実施する。【選択図】図１
2019114015.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対して、リード要求及びライト要求を含むアクセス要求を発行するマスタと、
バスを介して前記マスタに接続され、前記アクセス要求に従って前記メモリにアクセスするメモリコントローラと、
前記メモリコントローラと前記マスタとの間に配置され、前記アクセス要求がライト要求である場合に該ライト要求をキャッシュするキャッシュと、
前記マスタが発行したリード要求の前記メモリコントローラへの出力、及び前記キャッシュにキャッシュされたライト要求の前記メモリコントローラへの出力を制御する第１のアクセス制御を実施する第１のアクセス制御部と、
前記マスタが発行したライト要求の前記メモリコントローラへの出力を制御する第２のアクセス制御を実施する第２のアクセス制御部とを備え、
前記メモリコントローラは、前記アクセス要求を受け付けて記憶するリクエストバッファを有しており、
前記第１のアクセス制御部は、前記リクエストバッファの空き状況に応じて前記第１のアクセス制御を実施し、
前記第２のアクセス制御部は、前記キャッシュの空き状況に応じて前記第２のアクセス制御を実施する半導体装置。
【請求項２】
前記バスは、前記リード要求を伝送するためのリード要求バスと、前記ライト要求を伝送するためのライト要求バスとを含み、
前記第１のアクセス制御部は、前記リード要求バスに対応して配置されたリードリクエスト発行制御部を有するリードサブバスコントローラと、前記キャッシュと前記メモリコントローラとの間の前記ライト要求バスに対応して配置された第１のライトリクエスト発行制御部を有する第１のライトサブバスコントローラと、前記リードサブバスコントローラ及び前記第１のライトサブバスコントローラを用いて前記第１のアクセス制御を実施する第１の中央バス制御システムとを含み、
前記第２のアクセス制御部は、前記マスタと前記キャッシュとの間の前記ライト要求バスに対応して配置された第２のライトリクエスト発行制御部を有する第２のライトサブバスコントローラと、前記第２のライトサブバスコントローラを用いて前記第２のアクセス制御を実施する第２の中央バス制御システムとを含む請求項１に記載の半導体装置。
【請求項３】
前記第１の中央バス制御システムは、前記リードリクエスト発行制御部へのアクセス権の付与を制御することで前記リード要求に対する前記第１のアクセス制御を実施し、
前記リードリクエスト発行制御部は、前記マスタから前記リード要求を受け付け、前記第１の中央バス制御システムから前記アクセス権が付与されている場合は前記リード要求を前記メモリコントローラへ出力し、前記アクセス権が付与されていない場合は前記リード要求の前記メモリコントローラへの出力を抑止する請求項２に記載の半導体装置。
【請求項４】
前記第１の中央バス制御システムは、前記第１のライトリクエスト発行制御部へのアクセス権の付与を制御することで前記ライト要求に対する前記第１のアクセス制御を実施し、
前記第１のライトリクエスト発行制御部は、前記キャッシュから前記ライト要求を受け付け、前記第１の中央バス制御システムから前記アクセス権が付与されている場合は前記ライト要求を前記メモリコントローラへ出力し、前記アクセス権が付与されていない場合は前記ライト要求の前記メモリコントローラへの出力を抑止する請求項３に記載の半導体装置。
【請求項５】
前記第１の中央バス制御システムは、前記第１のライトリクエスト発行制御部へ出力するアクセス許可を示す信号を制御することで前記ライト要求に対する前記第１のアクセス制御を実施し、
前記第１のライトリクエスト発行制御部は、前記キャッシュから前記ライト要求を受け付け、前記第１の中央バス制御システムから前記アクセスの許可を示す信号が出力されている場合は前記ライト要求を前記メモリコントローラへ出力し、前記アクセス許可を示す信号が出力されていない場合は前記ライト要求の前記メモリコントローラへの出力を抑止する請求項３に記載の半導体装置。
【請求項６】
前記第２の中央バス制御システムは、前記第２のライトリクエスト発行制御部へのアクセス権の付与を制御することで前記第２のアクセス制御を実施し、
前記第２のライトリクエスト発行制御部は、前記マスタから前記ライト要求を受け付け、前記第２の中央バス制御システムから前記アクセス権が付与されている場合は前記ライト要求を前記キャッシュへ出力し、前記アクセス権が付与されていない場合は前記ライト要求の前記キャッシュへの出力を抑制する請求項２に記載の半導体装置。
【請求項７】
前記マスタを複数有し、
前記複数のマスタから入力されるアクセス要求を調停して前記メモリコントローラに出力するインターコネクトを更に備え、
前記リードリクエスト発行制御部及び前記第２のライトリクエスト発行制御部は、前記複数のマスタのそれぞれと前記インターコネクトとの間を接続する複数のリードバス及びライトバスのそれぞれに対応して配置される請求項２に記載の半導体装置。
【請求項８】
前記第１の中央バス制御システムは、前記リクエストバッファの空きエントリ数に応じて、前記アクセス権を付与することが可能な数を示す権利付与可能数を管理し、該権利付与可能数の範囲で前記リードリクエスト発行制御部及び前記第１のライトリクエスト発行制御部に前記アクセス権を付与する請求項４に記載の半導体装置。
【請求項９】
前記メモリコントローラは、前記リクエストバッファが解放されると、前記リクエストバッファが解放された旨を示すバッファ解放通知を前記第１の中央バス制御システムに出力し、
前記第１の中央バス制御システムは、前記リードリクエスト発行制御部及び前記第１のライトリクエスト発行制御部に前記アクセス権を付与した場合、前記権利付与可能数から前記アクセス権の付与数を減算し、前記バッファ解放通知を受け取った場合、前記権利付与可能数に前記リクエストバッファにおいて解放されたエントリの数を加算する請求項８に記載の半導体装置。
【請求項１０】
前記キャッシュは前記メモリから読み出されたリードデータを更にキャッシュし、
前記リードリクエスト発行制御部から出力されたリード要求で要求されるデータが前記キャッシュにキャッシュされている場合、前記キャッシュは、前記キャッシュされたリードデータを、前記リード要求の発行元のマスタに前記リード要求に対する応答として出力し、かつ、前記リードリクエスト発行制御部に付与されたアクセス権を前記第１の中央バス制御システムに返却する請求項９に記載の半導体装置。
【請求項１１】
前記第２の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記アクセス権を付与することが可能な数を示す権利付与可能数を管理し、該権利付与可能数の範囲で前記第２のライトリクエスト発行制御部に前記アクセス権を付与する請求項６に記載の半導体装置。
【請求項１２】
前記第２の中央バス制御システムは、前記第２のライトリクエスト発行制御部に前記アクセス権を付与した場合、前記権利付与可能数から前記アクセス権の付与数を減算し、前記キャッシュの空きエントリ数が増加した場合、前記権利付与可能数に前記空きエントリが増加した数を加算する請求項１１に記載の半導体装置。
【請求項１３】
前記第１の中央バス制御システムは、第１の期間では前記リードリクエスト発行制御部に前記アクセス権を付与し、かつ前記第１のライトリクエスト発行制御部への前記アクセス権の付与を抑止し、第２の期間では前記第１のライトリクエスト発行制御部に前記アクセス権を付与し、かつ前記リードリクエスト発行制御部への前記アクセス権の付与を抑止する請求項４に記載の半導体装置。
【請求項１４】
前記第１の中央バス制御システムは、所定の基本スロットの期間を複数の期間で分割した期間をサブスロットとして、該サブスロットの単位で、前記第１の期間又は前記第２の期間を設定する請求項１３に記載の半導体装置。
【請求項１５】
前記第１の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記第１の期間に設定されるサブスロットの数と、前記第２の期間に設定されるサブスロットの数とを変更する請求項１３に記載の半導体装置。
【請求項１６】
前記第１の中央バス制御システムは、前記第１の期間に設定されたサブスロットから前記第２の期間に設定されたサブスロットへの切替え、及び前記第２の期間に設定されたサブスロットから前記第１の期間に設定されたサブスロットへの切替えの少なくとも一方において、該切替えのタイミングよりも所定時間前のタイミングから、前記抑止されたアクセス権の付与を解除する請求項１４に記載の半導体装置。
【請求項１７】
前記メモリはリフレッシュ動作が実行可能に構成されており、
前記第１の中央バス制御システムは、前記第１の期間と前記第２の期間とを切り替えるタイミングに合わせて前記メモリに前記リフレッシュ動作を実行させる請求項１３に記載の半導体装置。
【請求項１８】
前記マスタを複数有し、
前記複数のマスタから入力されるアクセス要求を調停して前記メモリコントローラに出力するインターコネクトを更に備え、
前記第２の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記複数のマスタのうち、どのマスタのライト要求に前記アクセス権を付与するかを決定する請求項６に記載の半導体装置。
【請求項１９】
前記第２の中央バス制御システムは、前記複数のマスタと、前記キャッシュの空きエントリ数の条件とを対応付けて記憶するレジスタを有し、前記キャッシュの空きエントリ数が前記条件を満たすマスタの中から、前記アクセス権を付与するマスタを決定する請求項１８に記載の半導体装置。
【請求項２０】
半導体装置におけるバスを生成するバスジェネレータであって、
リード要求及びライト要求を含む、メモリに対するアクセス要求を出力するマスタに関する情報と、前記マスタからアクセスされるスレーブの情報とに基づいて、前記マスタと前記スレーブとの間を接続するバスの構造情報を生成するバス構造情報生成部と、
前記バスの構造情報、前記ライト要求を一時的に記憶してライトバックするキャッシュの情報、前記マスタのサービス品質情報、及び機能ブロックの回路情報を用いて、前記マスタが出力するリード要求、及び前記キャッシュのライトバックと、前記マスタが出力したライト要求とに対してアクセス制御を行う中央バス制御システムの回路情報を生成する中央バス制御部生成部と、
前記中央バス制御システムの回路情報を用いて、前記中央バス制御システムの制御に基づいて動作するサブバス制御システムの回路情報を生成するサブバス制御部生成部と、
前記バスの構造情報、及び機能ブロックの回路情報を用いて、バス部品の回路情報を生成するバス部品生成部と、
前記中央バス制御システムの回路情報、前記サブバス制御システムの回路情報、及び前記バス部品の回路情報をマージし、前記バスの回路情報を生成するマージ部とを備えるバスジェネレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、例えばメモリへのアクセスを行う半導体装置に関する。
【０００２】
また、本発明は、上記半導体装置におけるバスを生成するバスジェネレータに関する。
【背景技術】
【０００３】
特許文献１は、複数のバスマスタが共通バスに接続するバスシステムにおけるアクセス制御を開示する。特許文献１に記載される半導体装置は、複数のマスタと、メモリコントローラと、複数のマスタとメモリコントローラとを接続するバスと、中央バス制御システムとを有する。特許文献１には、中央バス制御システムが、各マスタの転送量をモニタし、各マスタの予約ハンド幅とモニタした転送量と権利付与可能数とに基づいて、アクセス権の付与先のマスタを選択することが記載されている。特許文献１において、アクセス権が付与されていないマスタのリクエストは、メモリコントローラとマスタとの間のバスでマスクされる。
【０００４】
特許文献１において、中央バス制御システムは、メモリコントローラ内のバッファを監視し、バッファの空き状況に応じて各マスタのアクセス要求に対して付与するアクセス権を制御する。中央バス制御システムは、アクセス権を付与するたびに権利付与可能数を減らし、バッファが解放されるたびに権利付与可能数を増やす。バッファの空き状況に応じてアクセス権の付与を行うことで、バッファが未処理のアクセス要求で一杯になることを避けることができ、低レイテンシが要求されるアクセス要求が、メモリコントローラによって受け付けられない事態を回避することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１７／０５６１３２号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１において、各マスタとメモリコントローラとの間にキャッシュが配置されると、キャッシュのライトバックによりメモリコントローラのバッファが占有されることがある。その場合、メモリコントローラによって受け付けられるアクセス要求を、中央バス制御システムから制御することができなくなり、レイテンシの保証が困難となる。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、半導体装置は、マスタと、メモリコントローラと、キャッシュと、マスタが発行したリード要求のメモリコントローラへの出力、及びキャッシュされたライト要求のメモリコントローラへの出力を制御する第１のアクセス制御部と、マスタが発行したライト要求のメモリコントローラへの出力を制御する実施する第２のアクセス制御部とを備える。第１のアクセス制御部は、メモリコントローラのキャッシュの空き状況に応じてアクセス制御を行い、第２のアクセス制御部は、キャッシュの空き状況に応じてアクセス制御を行う。
【発明の効果】
【０００９】
前記一実施の形態によれば、マスタとメモリコントローラとの間にキャッシュが配置される場合でも、メモリコントローラによって受け付けられるアクセス要求の制御が可能である。
【図面の簡単な説明】
【００１０】
【図１】実施形態１に係る半導体装置を含む電子装置を示すブロック図。
【図２】中央バス制御システム１の構成例を示すブロック図。
【図３】中央バス制御システム２の構成例を示すブロック図。
【図４】中央バス制御システム１におけるアクセス権付与の動作手順を示すブロック図。
【図５】中央バス制御システム２におけるアクセス権付与の動作手順を示すブロック図。
【図６】実施形態２において用いられる中央バス制御システム１の構成例を示すブロック図。
【図７】リード期間サブスロットとライト期間サブスロットとの設定例を示す図。
【図８】（ａ）及び（ｂ）は、それぞれリード期間サブスロットとライト期間サブスロットとの別の設定例を示す図。
【図９】実施形態３において用いられる中央バス制御システム２の構成例を示すブロック図。
【図１０】キャッシュの空きエントリ数のレベルを示す図。
【図１１】空きエントリ数のレベルとアクセス権の付与対象のマスタとの関係を示す図。
【図１２】バスジェネレータのハードウェア構成例を示すブロック図。
【図１３】バス設計の概略的なフローを示すフローチャート。
【図１４】設定情報の入力における画面例を示す図。
【図１５】バスジェネレータの機能例を示すブロック図。
【図１６】実施形態５に係る半導体装置を含む電子装置を示すブロック図。
【図１７】実施形態５において用いられる中央バス制御システム１の構成例を示すブロック図。
【図１８】（ａ）及び（ｂ）は、メモリへのアクセスの動作例を示すタイミングチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照しつつ、上記課題を解決するための手段を適用した実施形態を詳細に説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、又はその他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、又はそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、何れかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１２】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスク）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、及び半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の優先通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１３】
以下の実施の形態においては便宜上その必要があるときは、複数のセクション又は実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部又は全部の変形例、応用例、詳細説明、又は補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１４】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、又は位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１５】
［実施形態１］
図１は、実施形態１に係る半導体装置を含む電子装置を示す。電子装置１０は、マスタＡ２０、マスタＢ３０、マスタＣ４０、サブバスコントローラ２２Ｒ、３２Ｒ、４２Ｒ、２２Ｗ、３２Ｗ、４２Ｗ、及び７７、中央バス制御システム５０及び６０、インターコネクト７０、キャッシュ７５、メモリコントローラ８０、並びにメモリ９０を有する。電子装置１０の構成要素のうち、例えば、マスタＡ２０、マスタＢ３０、マスタＣ４０、サブバスコントローラ２２Ｒ、３２Ｒ、４２Ｒ、２２Ｗ、３２Ｗ、４２Ｗ、及び７７、中央バス制御システム５０及び６０、インターコネクト７０、キャッシュ７５、並びにメモリコントローラ８０は、半導体装置を構成する。半導体装置の構成要素のうち、例えばサブバスコントローラ２２Ｒ、３２Ｒ、４２Ｗ、２２Ｗ、３２Ｗ、４２Ｗ、及び７７、インターコネクト７０、キャッシュ７５、並びにメモリコントローラ８０は、ハードウェア回路として構成することができる。また、中央バス制御システム５０及び６０は、例えばプロセッサを含んだ回路として構成することができる
【００１６】
マスタＡ２０、マスタＢ３０、及びマスタＣ４０は、メモリ９０に対してアクセス要求を発行する。メモリ９０に対するアクセス要求は、リード要求とライト要求とを含む。メモリ９０は、例えばＤＤＲ−ＳＤＲＡＭ（Double-Data-Rate Synchronous Dynamic Random Access Memory）などのメモリである。マスタＡ２０、マスタＢ３０、及びマスタＣ４０は、例えばＣＰＵやＧＰＵ（Graphics Processing Unit）などのプロセッサとして構成される。マスタＡ２０、マスタＢ３０、及びマスタＣ４０は、それぞれ対応するバス（リード要求バス）２１Ｒ、３１Ｒ、及び４１Ｒを通じてリード要求を出力し、バス（ライト要求バス）２１Ｗ、３１Ｗ、及び４１Ｗを通じてライト要求を出力する。
【００１７】
マスタＡ２０は、バス２１Ｒ及び２１Ｗを介して対応するサブバスコントローラ２２Ｒ及び２２Ｗに接続される。サブバスコントローラ（リードサブバスコントローラ）２２Ｒは、バス２４Ｒを介してインターコネクト７０に接続される。サブバスコントローラ（ライトサブバスコントローラ２）２２Ｗは、バス２４Ｗを介してインターコネクト７０に接続される。サブバスコントローラ２２Ｒは、リクエスト発行制御部（リードリクエスト発行制御部）２３Ｒを含む。サブバスコントローラ２２Ｗは、リクエスト発行制御部（ライトリクエスト発行制御部２）２３Ｗを含む。リクエスト発行制御部２３Ｒ及び２３Ｗは、それぞれバス２１Ｒ及び２１Ｗを介してリード要求及びライト要求を受け付け、受け付けたリード要求及びライト要求のバス２４Ｒ及び２４Ｗへの出力を制御する。
【００１８】
マスタＢ３０は、バス３１Ｒ及び３１Ｗを介して対応するサブバスコントローラ３２Ｒ及び３２Ｗに接続される。サブバスコントローラ３２Ｒ及び３２Ｗは、それぞれバス３４Ｒ及び３４Ｗを介してインターコネクト７０に接続される。サブバスコントローラ３２Ｒ及び３２Ｗは、それぞれリクエスト発行制御部３３Ｒ及び３３Ｗを含む。同様に、マスタＣ４０は、バス４１Ｒ及び４１Ｗを介して対応するサブバスコントローラ４２Ｒ及び４２Ｗに接続される。サブバスコントローラ４２Ｒ及び４２Ｗは、それぞれバス４４Ｒ及び４４Ｗを介してインターコネクト７０に接続される。サブバスコントローラ４２Ｒ及び４２Ｗは、それぞれリクエスト発行制御部４３Ｒ及び４３Ｗを含む。
【００１９】
リクエスト発行制御部２３Ｒ及び２３Ｗは、それぞれマスタＡ２０からリード要求及びライト要求を受け付ける。リクエスト発行制御部２３Ｒは、中央バス制御システム５０からアクセス権が付与されている場合は、マスタＡ２０が発行したリード要求を、バス２４Ｒを介してインターコネクト７０に出力する。リクエスト発行制御部２３Ｗは、中央バス制御システム６０からアクセス権が付与されている場合は、マスタＡ２０が発行したライト要求を、バス２４Ｗを介してインターコネクト７０に出力する。リクエスト発行制御部２３Ｒ及び２３Ｗは、アクセス権が付与されていない場合は、それぞれマスタＡ２０が発行したリード要求及びライト要求のインターコネクト７０への出力を抑止する。
【００２０】
リクエスト発行制御部３３Ｒ及び４３Ｒの機能は、リクエスト発行制御部２３Ｒの機能と同様であり、リクエスト発行制御部３３Ｗ及び４３Ｗの機能は、リクエスト発行制御部２３Ｗの機能と同様である。リクエスト発行制御部２３Ｒ、３３Ｒ、及び４３Ｒは、アクセス権が付与された場合で、かつ対応するマスタからリード要求を受け取っていなかった場合は、アクセス権返却信号を中央バス制御システム５０に出力し、アクセス権を返却してもよい。また、リクエスト発行制御部２３Ｗ、３３Ｗ、及び４３Ｗは、アクセス権が付与された場合で、かつ対応するマスタからライト要求を受け取っていなかった場合は、アクセス権返却信号を中央バス制御システム６０に出力し、アクセス権を返却してもよい。中央バス制御システム５０及び６０は、返却されたアクセス権を、他のリクエスト発行制御部へのアクセス権の付与に使用できる。
【００２１】
インターコネクト７０は、バス７１Ｒ及び７１Ｗを通じてキャッシュ７５に接続される。インターコネクト７０は、バス２４Ｒ、３４Ｒ、４４Ｒ、２４Ｗ、３４Ｗ、及び４４Ｗを介して、マスタＡ２０、マスタＢ３０、及びマスタＣ４０が発行したリード要求及びライト要求を受け取る。インターコネクト７０は、例えばバスアービタであり、複数のマスタから入力されるリード要求及びライト要求を調停する。インターコネクト７０は、例えばマスタＡ２０、マスタＢ３０、及びマスタＣ４０からリード要求又はライト要求を受け取った場合は、各マスタに設定された優先度に従って、優先度が高いマスタが発行したリード要求又はライト要求をキャッシュ７５に出力する。インターコネクト７０は、キャッシュ７５に出力したリード要求又はライト要求に対するレスポンスが得られると、次に優先度が高いマスタのリード要求又はライト要求を選択してキャッシュ７５に出力する。
【００２２】
キャッシュ７５は、メモリコントローラ８０とインターコネクト７０との間に配置される。キャッシュ７５には、バス７１Ｒ及び７１Ｗを介してインターコネクト７０から出力されたリード要求及びライト要求が入力される。キャッシュ７５は、ライト要求に対してライトバックを行い、入力されたライト要求及びライトデータをキャッシュする。また、キャッシュ７５は、リード要求に応じて読み出されるリードデータをキャッシュする。キャッシュ７５は、ライトデータ及びリードデータを一時的に記憶するための複数のエントリを有している。
【００２３】
キャッシュ７５は、例えばライト要求をキャッシュすると、バス７９Ｗ及びサブバスコントローラ（ライトサブバスコントローラ１）７７を通じて、メモリコントローラ８０へキャッシュしたライト要求を出力する。メモリコントローラ８０は、例えばバッファ８１に空きがあるときに、キャッシュ７５から出力されたライト要求を受け付ける。サブバスコントローラ７７は、リクエスト発行制御部（ライトリクエスト発行制御部１）７８を含む。リクエスト発行制御部７８は、バス７６Ｗを通じて、キャッシュ７５からライト要求を受け付ける。リクエスト発行制御部７８は、受け付けたライト要求のバス７９Ｗへの出力を制御する。リクエスト発行制御部７８は、中央バス制御システム５０からアクセス権が付与されている場合は、ライト要求をバス７９Ｗへ出力する。リクエスト発行制御部７８は、アクセス権が付与されていない場合は、ライト要求のバス７９Ｗへの出力を抑止する。リクエスト発行制御部７８は、アクセス権が付与された場合で、かつライト要求を受け付けていない場合は、アクセス権返却信号を中央バス制御システム５０に出力し、アクセス権を返却してもよい。中央バス制御システム５０は、返却されたアクセス権を、他のリクエスト発行制御部へのアクセス権の付与に使用できる。
【００２４】
キャッシュ７５は、リード要求が入力された場合は、リード要求で要求されるデータ（リードデータ）をキャッシュしているか否かを判断する。別の言い方をすると、キャッシュ７５は、キャッシュがヒットしたか否かを判断する。キャッシュ７５は、リードデータをキャッシュしていない場合は、バス７６Ｒを通じてメモリコントローラ８０にリード要求を出力する。キャッシュ７５は、リードデータがキャッシュされている場合は、そのリードデータを、リード要求に対する応答として、リード要求の発行元のマスタに出力する。キャッシュ７５は、リードデータをマスタに出力すると、キャッシュにヒットした旨を示す通知を中央バス制御システム５０に出力し、リクエスト発行制御部２３Ｒ、３３Ｒ、又は４３Ｒに付与されたアクセス権を中央バス制御システム５０に返却してもよい。
【００２５】
メモリコントローラ８０は、バス、キャッシュ７５、及びインターコネクト７０などを介してマスタＡ２０、マスタＢ３０、及びマスタＣ４０に接続され、キャッシュ７５を通じて受け付けたアクセス要求に従ってメモリ９０にアクセスする。なお、図１では電子装置１０がマスタを３つ有する例が示されているが、マスタの数は特に限定されない。電子装置１０は、メモリコントローラ８０に対してメモリ９０へのアクセス要求を発行するマスタを少なくとも１つ有していればよい。マスタの数が１つである場合、調停のためのインターコネクト７０は不要である。
【００２６】
メモリコントローラ８０は、バッファ（リクエストバッファ）８１を有する。バッファ８１は、メモリコントローラ８０がインターコネクト７０及びキャッシュ７５を介して受け付けたアクセス要求を記憶する。バッファ８１は、複数のエントリを有しており、複数のアクセス要求を記憶可能に構成される。メモリコントローラ８０は、バッファ８１以外に、例えば、バッファ８１に記憶された複数のアクセス要求の１つを選択するスケジューラと、選択されたアクセス要求に従ってメモリ９０にアクセスするためのメモリコマンド（コマンド信号）を生成するメモリコマンド生成部を有している。メモリコントローラ８０は、バッファ８１からアクセス要求が選択されて処理されると、バッファ８１のエントリが解放された旨を示すバッファ解放通知を中央バス制御システム５０に出力する。
【００２７】
中央バス制御システム（中央バス制御システム１）５０は、サブバスコントローラ２２Ｒ、３２Ｒ、及び４２Ｒと、サブバスコントローラ７７とを用いて、リード要求及びライト要求に対するアクセス制御を実施する。中央バス制御システム５０は、サブバスコントローラ２２Ｒ、３２Ｒ、及び４２Ｒ、並びにサブバスコントローラ７７と共にアクセス制御部（アクセス制御部１）を構成する。中央バス制御システム５０は、バッファ８１の空き状況に応じて、リード要求及びライト要求に対するアクセス制御を実施する。
【００２８】
中央バス制御システム５０は、例えばリクエスト発行制御部２３Ｒ、３３Ｒ、及び４３Ｒへのアクセス権の付与を制御することで、各マスタからメモリコントローラ８０へ出力されるリード要求に対するアクセス制御を実施する。また、中央バス制御システム５０は、リクエスト発行制御部７８へのアクセス権の付与を制御することで、キャッシュ７５からメモリコントローラ８０へ出力されるライト要求に対するアクセス制御を実施する。
【００２９】
一方、中央バス制御システム（中央バス制御システム２）６０は、サブバスコントローラ２２Ｗ、３２Ｗ、及び４２Ｗを用いて、ライト要求に対するアクセス制御を実施する。中央バス制御システム６０は、サブバスコントローラ２２Ｗ、３２Ｗ、及び４２Ｗと共に別のアクセス制御部（アクセス制御部２）を構成する。中央バス制御システム６０は、キャッシュ７５から、キャッシュ７５の空きエントリ数を取得する。中央バス制御システム６０は、取得した空きエントリ数に基づいてキャッシュ７５の空き状況を監視し、キャッシュ７５の空き状況に応じてアクセス制御を実施する。中央バス制御システム６０は、例えばリクエスト発行制御部２３Ｗ、３３Ｗ、及び４３Ｗへのアクセス権の付与を制御することで、各マスタからキャッシュ７５へ出力されるライト要求に対するアクセス制御を実施する。
【００３０】
ユーザは、例えば中央バス制御システム５０及び中央バス制御システム６０にあらかじめ各マスタの帯域を設定し、一定時間（スロット）内のＱｏＳ（Quality of Service）を保証する。ここで、本実施形態において、マスタは、アクセス要求の種別ごとに存在するものとみなされ、例えばリード要求とライト要求とのそれぞれについて各マスタの帯域が設定される。また、中央バス制御システム５０が行うアクセス制御において、ライト要求を出力するキャッシュ７５はマスタの１つとみなされる。中央バス制御システム５０は、リクエスト発行制御部２３Ｒ、３３Ｒ、４３Ｒ、及び７８のそれぞれに対して、例えば所定のアクセス制御の内容に従ってアクセス権を付与する。また、中央バス制御システム６０は、リクエスト発行制御部２３Ｗ、３３Ｗ、及び４３Ｗのそれぞれに対して、例えば所定のアクセス制御の内容に従ってアクセス権を付与する。アクセス制御の内容は、例えば特許文献１に記載されたものと同様でよい。特許文献１に記載の内容は、参照として本明細書に取り込まれる。
【００３１】
中央バス制御システム５０は、例えば各マスタのリード要求、及びキャッシュ７５のライト要求に対して設定されたＱｏＳ情報に基づいて、各マスタ及びキャッシュ７５に対応するリクエスト発行制御部２３Ｒ、３３Ｒ、４３Ｒ、及び７８に対してアクセス権を付与するか否かを決定する。このとき、中央バス制御システム５０は、バス２４Ｒ、３４Ｒ、４４Ｒ、及び７９Ｗから取得されたリクエストモニタ（トランザクションモニタ信号）によってバスを流れるトランザクションを監視し、トランザクションの転送量に基づいてスロットごとに補正しながらアクセス権を付与してもよい。中央バス制御システム５０は、アクセス権の付与を通じて、各マスタ及びキャッシュ７５が発行するリード要求及びライト要求のメモリコントローラ８０への出力を制御する。
【００３２】
中央バス制御システム６０は、例えば各マスタのライト要求に対して設定されたＱｏＳ情報に基づいて、各マスタに対応するリクエスト発行制御部２３Ｗ、３３Ｗ、及び４３Ｗに対してアクセス権を付与するか否かを決定する。このとき、中央バス制御システム６０は、バス２４Ｗ、３４Ｗ、及び４４Ｗから取得されたリクエストモニタ（トランザクションモニタ信号）によってバスを流れるトランザクションを監視し、トランザクションの転送量に基づいてスロットごとに補正しながらアクセス権を付与してもよい。中央バス制御システム６０は、アクセス権の付与を通じて、各マスタが発行するライト要求のキャッシュ７５への出力を制御する。
【００３３】
［中央バス制御システム１］
図２は、中央バス制御システム５０の構成例を示す。中央バス制御システム５０は、権利付与選択制御部５０１、マスク信号生成部５０２、配付優先度計算回路５０３、権利付与数制御部５０４、リフレッシュ制御部５０５、転送量モニタ５１０、スロット設定レジスタ５２１、予約型レジスタ群５２２、ＢＥ（Best Effort）型レジスタ群５２３、及び付与可能最大数設定レジスタ５２４を有する。
【００３４】
転送量モニタ５１０は、バスを通じて転送されるリード要求及びライト要求のトランザクションの転送量を測定する機能部である。転送量モニタ５１０は、予約型用転送量モニタ５１１と、ＢＥ型用転送量モニタ５１２を有する。予約型用転送量モニタ５１１は、バス２４Ｒ、３４Ｒ、及び４４Ｒ（図１を参照）を通じてインターコネクト７０に転送されるリード要求のトランザクションの転送量を測定する。また、予約型用転送量モニタ５１１は、バス７９Ｗを通じてメモリコントローラ８０へ転送されるライト要求のトランザクションの転送量を測定する。ＢＥ型用転送量モニタ５１２も、同様に、バス２４Ｒ、３４Ｒ、及び４４Ｒを通じてインターコネクト７０に転送されるリード要求のトランザクションの転送量を測定し、バス７９Ｗを通じてメモリコントローラ８０へ転送されるライト要求のトランザクションの転送量を測定する。
【００３５】
スロット設定レジスタ５２１は、１基本スロット内に存在するサブスロットの数と１サブスロットの期間とを格納する。基本スロットは、例えば、メモリ９０におけるリフレッシュ期間を示す。スロット設定レジスタ５２１が格納する１基本スロット内に存在するサブスロットの数、及び１サブスロットの期間は、変更することができる。
【００３６】
リフレッシュ制御部５０５は、メモリコントローラ８０にリフレッシュ要求を送信し、メモリ９０においてリフレッシュ動作を実施させる。リフレッシュ制御部５０５は、例えば図示しないレジスタなどを用いて設定された、基本スロット内の所定の番号のサブスロットにおいて、メモリコントローラ８０にリフレッシュ要求を送信する。
【００３７】
権利付与選択制御部５０１は、リクエスト発行制御部２３Ｒ、３３Ｒ、４３Ｒ、及び７８に対してアクセス権を付与する。権利付与選択制御部５０１は、アクセス権の付与に際して、どのリクエスト発行制御部にアクセス権を付与するかを決定（選択）する。権利付与選択制御部５０１は、アクセス権の付与先のリクエスト発行制御部に、アクセス権を獲得した旨を示すアクセス権付与信号を出力する。権利付与選択制御部５０１は、例えばアクセス権の付与先のリクエスト発行制御部に出力するアクセス権付与信号をアサートし、アクセス権を付与しないリクエスト発行制御部に出力するアクセス権付与信号はネゲートしたままとする。
【００３８】
権利付与数制御部５０４は、リクエスト発行制御部に付与できるアクセス権の数（権利付与可能数）を計算する。付与可能最大数設定レジスタ５２４は、アクセス権の権利付与可能数の最大数を格納する。権利付与可能数の最大数は、例えばメモリコントローラ８０のバッファ８１が格納可能なアクセス要求の数に応じて設定される。権利付与数制御部５０４は、例えばバッファ８１の空き状況に応じて、付与可能最大数設定レジスタ５２４が格納する最大数を上限として、アクセス権の権利付与可能数を計算する。権利付与選択制御部５０１は、権利付与数制御部５０４が計算した権利付与可能数の範囲で、アクセス権の付与を行う。
【００３９】
権利付与数制御部５０４は、例えば権利付与選択制御部５０１が何れかのリクエスト発行制御部にアクセス権を付与すると、権利付与可能数を付与したアクセス権の分だけ減少させる。権利付与数制御部５０４は、例えばメモリコントローラ８０がバッファ解放通知を出力すると、権利付与可能数を解放されたバッファのエントリ数だけ増加させる。また、権利付与数制御部５０４は、何れかのリクエスト発行制御部がアクセス権を返却すると、権利付与可能数を返却されたアクセス権の分だけ増加させる。権利付与数制御部５０４は、キャッシュ７５がキャッシュにヒットした旨を示す通知を出力した場合も、権利付与可能数を、キャッシュにヒットしたリード要求の分だけ増加させる。
【００４０】
予約型レジスタ群５２２は、例えば予約バンド幅設定レジスタと、予約型優先レベル設定レジスタとを含む。予約バンド幅設定レジスタは、例えば各マスタ及びキャッシュ７５に対して設定された予約バンド幅を格納する。予約バンド幅設定レジスタは、例えば各マスタ及びキャッシュ７５の１サブスロットあたりの予約転送量を、予約バンド幅として格納する。予約型優先レベル設定レジスタは、例えば各マスタ及びキャッシュ７５の優先レベルを格納する。
【００４１】
マスク信号生成部５０２は、各マスタ及びキャッシュ７５の転送量が、各マスタ及びキャッシュ７５の予約転送量に到達したか否かを判断する。マスク信号生成部５０２は、何れかのマスタ又はキャッシュ７５のサブスロットにおける転送量が予約転送量に到達した場合、そのマスタ又はキャッシュ７５に対し、そのサブスロットの残り期間についてのマスク信号を生成する。
【００４２】
ＢＥ型レジスタ群５２３は、例えば目標転送量設定レジスタと、更新転送量レジスタと、配付優先度補正期間設定レジスタと、ＢＥ型優先レベル設定レジスタとを含む。目標転送量設定レジスタは、例えば各マスタ及びキャッシュ７５について、１サブスロットあたりの目標転送量を格納する。更新転送量レジスタは、各マスタ及びキャッシュ７５に対して、転送量の累積値を示す累積転送量を格納する。配付優先度補正期間設定レジスタは、目標転送量を補正する期間を示す配付優先度補正期間を格納する。ＢＥ型優先レベル設定レジスタは、各マスタ及びキャッシュ７５について優先レベルを格納する。
【００４３】
配付優先度計算回路５０３は、アクセス権の配付に関する優先度を示す配付優先度を計算する。配付優先度計算回路５０３は、例えば各マスタ及びキャッシュ７５の目標転送量に基づいて、配付優先度を計算する。より詳細には、配付優先度計算回路５０３は、ＢＥ型用転送量モニタ５１２を用いて測定された転送量、目標転送量、累積転送量、及び配付優先度補正期間などを用いて、配付優先度を計算する。
【００４４】
また、配付優先度計算回路５０３は、サブスロットが経過するごとに、ＢＥ型レジスタ群５２３に含まれる更新転送量レジスタに格納される累積転送量を更新する。より詳細には、配付優先度計算回路５０３は、更新転送量レジスタから前サブスロットまでの累積転送量を読み出す。配付優先度計算回路５０３は、読み出した累積転送量とＢＥ型用転送量モニタ５１２で計測された今サブスロットの転送量とを用いて、今サブスロットまでの累積転送量を計算する。配付優先度計算回路５０３は、計算した累積転送量を更新転送量レジスタに格納することで、累積転送量を更新する。配付優先度計算回路５０３は、計算した配付優先度を権利付与選択制御部５０１に出力する。
【００４５】
権利付与選択制御部５０１は、予約型レジスタ群５２２を用いたアクセス権の付与先の選択と、ＢＥ型レジスタ群５２３を用いたアクセス権の付与先の選択とを独立して行う。権利付与選択制御部５０１は、予約型レジスタ群５２２を用いたアクセス権の付与先の選択では、例えば予約型レジスタ群５２２から読み出した予約バンド幅及び優先レベルなどを用いて、アクセス権を付与するリクエスト発行制御部を決定する。権利付与選択制御部５０１は、ＢＥ型レジスタ群５２３を用いたアクセス権の付与先の選択では、例えば配付優先度計算回路５０３が計算した配付優先度、及びＢＥ型レジスタ群５２３から読み出した優先レベルなどを用いて、アクセス権を付与するリクエスト発行制御部を決定する。
【００４６】
［中央バス制御システム２］
図３は、中央バス制御システム６０の構成例を示す。中央バス制御システム６０は、権利付与選択制御部６０１、マスク信号生成部６０２、配付優先度計算回路６０３、権利付与数制御部６０４、転送量モニタ６１０、スロット設定レジスタ６２１、予約型レジスタ群６２２、ＢＥ型レジスタ群６２３、及び付与可能最大数設定レジスタ６２４を有する。中央バス制御システム６０の構成は、リフレッシュ制御部５０５（図２を参照）を含まない点を除けば、中央バス制御システム５０の構成と同様でよい。
【００４７】
転送量モニタ６１０は、バスを通じて転送されるライト要求のトランザクションの転送量を測定する機能部である。転送量モニタ６１０は、予約型用転送量モニタ６１１と、ＢＥ型用転送量モニタ６１２を有する。予約型用転送量モニタ６１１は、バス２４Ｗ、３４Ｗ、及び４４Ｗ（図１を参照）を通じてインターコネクト７０に転送されるライト要求のトランザクションの転送量を測定する。ＢＥ型用転送量モニタ６１２も、同様に、バス２４Ｗ、３４Ｗ、及び４４Ｗを通じてインターコネクト７０に転送されるライト要求のトランザクションの転送量を測定する。スロット設定レジスタ６２１は、１基本スロット内に存在するサブスロットの数と１サブスロットの期間とを格納する。
【００４８】
権利付与選択制御部６０１は、リクエスト発行制御部２３Ｗ、３３Ｗ、及び４３Ｗに対してアクセス権を付与する。権利付与選択制御部６０１は、アクセス権の付与に際して、どのリクエスト発行制御部にアクセス権を付与するかを決定（選択）する。権利付与選択制御部６０１は、アクセス権の付与先のリクエスト発行制御部に、アクセス権を獲得した旨を示すアクセス権付与信号を出力する。権利付与選択制御部６０１は、例えばアクセス権の付与先のリクエスト発行制御部に出力するアクセス権付与信号をアサートし、アクセス権を付与しないリクエスト発行制御部に出力するアクセス権付与信号はネゲートしたままとする。
【００４９】
権利付与数制御部６０４は、リクエスト発行制御部に付与できるアクセス権の数（権利付与可能数）を計算する。付与可能最大数設定レジスタ６２４は、アクセス権の権利付与可能数の最大数を格納する。権利付与可能数の最大数は、例えばキャッシュ７５がキャッシュ可能なライト要求の数（ライトデータのサイズ）に応じて設定される。権利付与数制御部６０４は、例えばキャッシュ７５の空きエントリ数に応じて、付与可能最大数設定レジスタ６２４が格納する最大数を上限として、アクセス権の権利付与可能数を計算する。権利付与選択制御部６０１は、権利付与数制御部６０４が計算した権利付与可能数の範囲で、アクセス権の付与を行う。
【００５０】
権利付与数制御部６０４は、例えば権利付与選択制御部６０１が何れかのリクエスト発行制御部にアクセス権を付与すると、権利付与可能数を付与したアクセス権の分だけ減少させる。権利付与数制御部６０４は、例えばキャッシュ７５の空きエントリ数が増加した場合、権利付与可能数を増加したエントリの数だけ増加させる。また、権利付与数制御部６０４は、何れかのリクエスト発行制御部がアクセス権を返却すると、権利付与可能数を返却されたアクセス権の分だけ増加させる。
【００５１】
予約型レジスタ群６２２は、例えば予約バンド幅設定レジスタと、予約型優先レベル設定レジスタとを含む。予約バンド幅設定レジスタは、例えば各マスタに対して設定された予約バンド幅を格納する。予約バンド幅設定レジスタは、例えば各マスタの１サブスロットあたりのライト要求のトランザクションの予約転送量を、予約バンド幅として格納する。予約型優先レベル設定レジスタは、例えば各マスタの優先レベルを格納する。なお、中央バス制御システム５０の予約型レジスタ群５２２（図２を参照）の予約バンド幅設定レジスタには、例えば、予約型レジスタ群６２２の予約バンド幅設定レジスタに格納される各マスタの予約転送量の総和が、キャッシュ７５から出力されるライト要求のトランザクションに対する予約バンド幅として格納されていてもよい。
【００５２】
マスク信号生成部６０２は、各サブスロットにおいて、各マスタの転送量が、各マスタの予約転送量に到達したか否かを判断する。マスク信号生成部６０２は、何れかのマスタのサブスロットにおける転送量が予約転送量に到達した場合、そのマスタに対し、そのサブスロットの残り期間についてのマスク信号を生成する。
【００５３】
ＢＥ型レジスタ群６２３は、例えば目標転送量設定レジスタと、更新転送量レジスタと、配付優先度補正期間設定レジスタと、ＢＥ型優先レベル設定レジスタとを含む。目標転送量設定レジスタは、例えば各マスタについて、１サブスロットあたりの目標転送量を格納する。更新転送量レジスタは、各マスタに対して、転送量の累積値を示す累積転送量を格納する。配付優先度補正期間設定レジスタは、目標転送量を補正する期間を示す配付優先度補正期間を格納する。ＢＥ型優先レベル設定レジスタは、各マスタについて優先レベルを格納する。
【００５４】
配付優先度計算回路６０３は、アクセス権の配付に関する優先度を示す配付優先度を計算する。配付優先度計算回路６０３は、例えば各マスタの目標転送量に基づいて、配付優先度を計算する。配付優先度計算回路６０３における配付優先度の計算などは、中央バス制御システム５０の配付優先度計算回路５０３と同様でよい。配付優先度計算回路６０３は、計算した配付優先度を権利付与選択制御部６０１に出力する。
【００５５】
権利付与選択制御部６０１は、予約型レジスタ群６２２を用いたアクセス権の付与先の選択と、ＢＥ型レジスタ群６２３を用いたアクセス権の付与先の選択とを独立して行う。権利付与選択制御部６０１は、予約型レジスタ群６２２を用いたアクセス権の付与先の選択では、例えば予約型レジスタ群６２２から読み出した予約バンド幅及び優先レベルなどを用いて、アクセス権を付与するリクエスト発行制御部を決定する。権利付与選択制御部６０１は、ＢＥ型レジスタ群６２３を用いたアクセス権の付与先の選択では、例えば配付優先度計算回路６０３が計算した配付優先度、及びＢＥ型レジスタ群６２３から読み出した優先レベルなどを用いて、アクセス権を付与するリクエスト発行制御部を決定する。
【００５６】
［動作手順］
図４は、中央バス制御システム５０におけるアクセス権付与の動作手順を示す。中央バス制御システム５０の権利付与数制御部５０４（図２を参照）は、メモリコントローラ８０からバッファ解放通知を受け取ったか否かを判断する（ステップＡ１）。権利付与数制御部５０４は、ステップＡ１でバッファ解放通知を受け取ったと判断すると、バッファが解放された分だけ権利付与可能数を増加させる（ステップＡ２）。権利付与数制御部５０４は、ステップＡ１でバッファ解放通知を受け取っていないと判断した場合は、権利付与可能数を変化させない。
【００５７】
権利付与数制御部５０４は、アクセス権が返却されたか否かを判断する（ステップＡ３）。権利付与数制御部５０４は、例えばリクエスト発行制御部２３Ｒ、３３Ｒ、４３Ｒ、及び７８の少なくとも１つからアクセス権返却信号が出力された場合は、アクセス権が返却されたと判断する。また、権利付与数制御部５０４は、キャッシュ７５からキャッシュにヒットした旨を示す通知が出力された場合も、アクセス権が返却されたと判断する。権利付与数制御部５０４は、ステップＡ３でアクセス権が返却されたと判断すると、権利付与可能数を、返却されたアクセス権の分だけ増加させる（ステップＡ４）。権利付与数制御部５０４は、ステップＡ３でアクセス権が返却されていない判断した場合は、権利付与可能数を変化させない。ステップＡ１とステップＡ３とは、どちらを先に実施してもよい。
【００５８】
権利付与選択制御部５０１は、アクセス権を付与することが可能か否かを判断する（ステップＡ５）。権利付与選択制御部５０１は、ステップＡ５では、権利付与数制御部５０４から権利付与可能数を取得し、権利付与可能数に基づいてアクセス権の付与が可能か否かを判断する。権利付与選択制御部５０１は、例えば権利付与可能数が１以上であればアクセス権の付与が可能と判断する。権利付与選択制御部５０１は、権利付与可能数が０であれば、アクセス権の付与が可能ではないと判断する。権利付与選択制御部５０１は、例えばサイクルごとに、アクセス権の付与が可能か否かを判断する。アクセス権の付与が可能ではないと判断された場合、処理はステップＡ１に戻る。
【００５９】
権利付与選択制御部５０１は、ステップＡ５でアクセス権の付与が可能と判断した場合、アクセス権の付与先のリクエスト発行制御部を選択する（ステップＡ６）。権利付与選択制御部５０１は、ステップＡ６では、マスタＡ２０、マスタＢ３０、マスタＣ４０、及びキャッシュ７５に対応するリクエスト発行制御部２３Ｒ、３３Ｒ、４３Ｒ、及び７８のうち、どのリクエスト発行制御部にアクセス権を付与するかを決定する。権利付与選択制御部５０１は、例えば予約型レジスタ群５２２又はＢＥ型レジスタ群５２３を用いた選択処理により、権利付与先のリクエスト発行制御部を選択（決定）する。
【００６０】
権利付与選択制御部５０１は、ステップＡ６で選択した付与先に、アクセス権を付与する（ステップＡ７）。権利付与選択制御部５０１は、ステップＡ７では、アクセス権を付与するリクエスト発行制御にアクセス権付与信号を出力することで、アクセス権を付与する。アクセス権付与信号を受信したリクエスト発行制御部は、対応するマスタ又はキャッシュ７５からリード要求又はライト要求を受け付けていた場合は、そのリード要求又はライト要求をメモリコントローラ８０側に出力する。リクエスト発行制御部は、アクセス権付与信号を受信した場合で、かつ対応するマスタ又はキャッシュ７５からリード要求又はライト要求を受け付けていなかった場合は、アクセス権返却信号を中央バス制御システム５０に出力する。
【００６１】
権利付与数制御部５０４は、権利付与選択制御部５０１がリクエスト発行制御部にアクセス権を付与すると、権利付与可能数を１つ減少させる（ステップＡ８）。その後、処理はステップＡ１に戻り、バッファ８１の空き状況、及びアクセス権の返却に基づく権利付与可能数の計算と、権利付与可能数の範囲内でのアクセス権の付与とが、繰り返し行われる。
【００６２】
図５は、中央バス制御システム６０におけるアクセス権付与の動作手順を示す。中央バス制御システム６０の権利付与数制御部６０４（図３を参照）は、キャッシュ７５の空き状況を監視し、キャッシュ７５のエントリが解放されたか否かを判断する（ステップＢ１）。権利付与数制御部６０４は、ステップＢ１でキャッシュ７５のエントリが解放されたと判断すると、解放されたエントリの分だけ権利付与可能数を増加させる（ステップＢ２）。権利付与数制御部６０４は、ステップＢ１でキャッシュ７５のエントリが解放されていないと判断した場合は、権利付与可能数を変化させない。
【００６３】
権利付与数制御部６０４は、リクエスト発行制御部２３Ｗ、３３Ｗ、又は４３Ｗからアクセス権が返却されたか否かを判断する（ステップＢ３）。権利付与数制御部６０４は、例えばリクエスト発行制御部２３Ｗ、３３Ｗ、及び４３Ｗの少なくとも１つからアクセス権返却信号が出力された場合は、アクセス権が返却されたと判断する。権利付与数制御部６０４は、ステップＢ３でアクセス権が返却されたと判断すると、権利付与可能数を、返却されたアクセス権の分だけ増加させる（ステップＢ４）。権利付与数制御部６０４は、ステップＢ３でアクセス権が返却されていない判断した場合は、権利付与可能数を変化させない。ステップＢ１とステップＢ３とは、どちらを先に実施してもよい。
【００６４】
権利付与選択制御部６０１は、アクセス権を付与することが可能か否かを判断する（ステップＢ５）。権利付与選択制御部６０１は、ステップＢ５では、権利付与数制御部６０４から権利付与可能数を取得し、権利付与可能数に基づいてアクセス権の付与が可能か否かを判断する。権利付与選択制御部６０１は、例えば権利付与可能数が１以上であればアクセス権の付与が可能と判断する。権利付与選択制御部６０１は、権利付与可能数が０であれば、アクセス権の付与が可能ではないと判断する。権利付与選択制御部６０１は、例えばサイクルごとに、アクセス権の付与が可能か否かを判断する。アクセス権の付与が可能ではないと判断された場合、処理はステップＢ１に戻る。
【００６５】
権利付与選択制御部６０１は、ステップＢ５でアクセス権の付与が可能と判断した場合、アクセス権の付与先のリクエスト発行制御部を選択する（ステップＢ６）。権利付与選択制御部６０１は、ステップＢ６では、マスタＡ２０、マスタＢ３０、及びマスタＣ４０に対応するリクエスト発行制御部２３Ｗ、３３Ｗ、及び４３Ｗのうち、どのマスタに対応するリクエスト発行制御部にアクセス権を付与するかを決定する。権利付与選択制御部６０１は、例えば予約型レジスタ群６２２又はＢＥ型レジスタ群６２３を用いた選択処理により、権利付与先のリクエスト発行制御部を選択（決定）する。
【００６６】
権利付与選択制御部６０１は、ステップＢ６で選択した付与先に、アクセス権を付与する（ステップＢ７）。権利付与選択制御部６０１は、ステップＢ７では、アクセス権を付与するリクエスト発行制御にアクセス権付与信号を出力することで、アクセス権を付与する。アクセス権付与信号を受信したリクエスト発行制御部は、対応するマスタからライト要求を受け付けていた場合は、そのライト要求をメモリコントローラ８０側に出力する。リクエスト発行制御部は、アクセス権付与信号を受信した場合で、かつ対応するマスタからライト要求を受け付けていなかった場合は、アクセス権返却信号を中央バス制御システム６０に出力する。
【００６７】
権利付与数制御部６０４は、権利付与選択制御部６０１がリクエスト発行制御部にアクセス権を付与すると、権利付与可能数を１つ減少させる（ステップＢ８）。その後、処理はステップＢ１に戻り、キャッシュ７５の空き状況、及びアクセス権の返却に基づく権利付与可能数の計算と、権利付与可能数の範囲内でのアクセス権の付与とが行われる。
【００６８】
［まとめ］
本実施形態では、電子装置１０は、インターコネクト７０とメモリコントローラ８０との間に、ライトバックを行うキャッシュ７５を有する。各マスタが発行したライト要求はキャッシュ７５に一時的に留められ、キャッシュ７５は、例えばメモリコントローラ８０に空きがある場合に、ライトバックを行う。キャッシュ７５は、データバッファとしての役割が大きく、リードデータがキャッシュにヒットする期待値は小さい。そこで、本実施形態では、中央バス制御システム５０が行う各マスタのリード要求に対するアクセス制御において、リードデータがキャッシュにヒットせず、リード要求がメモリコントローラ８０へ到達することを前提としたアクセス制御を行う。別の言い方をすれば、中央バス制御システム５０は、リード要求がメモリコントローラ８０のバッファ８１に到達することを前提に、各マスタのリード要求に対してアクセス権を付与する。
【００６９】
本実施形態では、メモリ９０に対するアクセス要求を、キャッシュ７５に一時的に留められるアクセス要求と、メモリコントローラ８０のバッファ８１に遅滞なく格納されるアクセス要求とに分け、それぞれに対して個別にアクセス制御を行う。より詳細には、本実施形態において、中央バス制御システム５０は、キャッシュ７５によって遮られることなくメモリコントローラ８０のバッファ８１に到達することが予見される各マスタが発行したリード要求、及びキャッシュ７５から出力されるライト要求に対してアクセス制御を行う。また、中央バス制御システム６０は、キャッシュ７５に一時的に記憶される各マスタが発行したライト要求に対してアクセス制御を行う。
【００７０】
仮に、特許文献１と同様に、１つの中央バス制御システムを用いて、各マスタとキャッシュ７５との間でのみアクセス制御を実施したとすると、キャッシュ７５がライトバックを行った場合にバッファ８１が占有され、中央バス制御システムがバッファ８１の空き状況を制御することができない事態が生じる可能性がある。その場合、メモリコントローラ８０によって受け付けられるアクセス要求を、中央バス制御システムから制御することができなくなり、特に各マスタが発行するリード要求に対してレイテンシの保証が困難となる。これに対し、本実施形態では、中央バス制御システム５０が、各マスタが発行するリード要求、及びキャッシュ７５が行うライトバック（ライト要求）に対してバッファ８１の空き状況に応じてアクセス制御を行う。このようにすることで、バッファ８１の空き状況を中央バス制御システム５０から制御することができ、各マスタが発行するリード要求に対してレイテンシを保証することが可能となる。
【００７１】
また、中央バス制御システム６０は、各マスタが発行したライト要求に対して、キャッシュ７５の空き状況に応じてアクセス制御を行う。ライト要求を発行したマスタは、ライト要求がキャッシュ７５に受け付けられた段階で、ライト要求に対する応答を受け取ることができる。中央バス制御システム６０は、例えばキャッシュ７５が受け付け可能な範囲で、各マスタが発行したライト要求に対してアクセス権を付与する。このようにすることで、マスタが発行するライト要求に対しても、レイテンシを保証することが可能となる。
【００７２】
［実施形態２］
次いで、実施形態２を説明する。本実施形態係る半導体装置を含む電子装置の構成は、図１に示す実施形態に係る電子装置１０の構成と同様でよい。図６は、本実施形態において用いられる中央バス制御システム（中央バス制御システム１）の構成例を示す。本実施形態において用いられる中央バス制御システム５０ａは、図２に示される実施形態１で用いられた中央バス制御システム５０の構成に加えて、配付フェーズ設定レジスタ５３１、配付オーバラップ設定レジスタ５３２、及び配付フェーズ計算回路５３３を有する。その他の点は、実施形態１と同様でよい。
【００７３】
本実施形態では、中央バス制御システム５０ａは、各マスタのリード要求に対応するリクエスト発行制御部２３Ｒ、３３Ｒ、及び４３Ｒと、キャッシュ７５のライト要求に対応するリクエスト発行制御部７８とに対し、期間を分けて排他的にアクセス権を付与する。中央バスシステム５０ａは、リクエスト発行制御部２３Ｒ、３３Ｒ、及び４３Ｒに対してアクセス権を付与する期間では、リクエスト発行制御部７８に対してアクセス権を付与しない。逆に、中央バス制御システム５０ａは、リクエスト発行制御部７８に対してアクセス権を付与する期間では、リクエスト発行制御部２３Ｒ、３３Ｒ、及び４３Ｒに対してアクセス権を付与しない。
【００７４】
本実施形態では、中央バス制御システム５０ａにおいて、例えばサブスロットの単位で、リクエスト発行制御部２３Ｒ、３３Ｒ、及び４３Ｒに対して、つまりリード要求に対してアクセス権を付与する期間と、リクエスト発行制御部７８に対して、つまりライト要求に対してアクセス権を付与する期間とが設定される。配付フェーズ設定レジスタ５３１は、どのサブスロットが、リード要求に対してアクセス権を付与する期間であるか、又はライト要求に対してアクセス権を付与する期間であるかを指定するための情報を記憶する。
【００７５】
本実施形態において、中央バス制御システム５０ａは、リード要求に対してアクセス権を付与するサブスロット（以下、リード期間サブスロットとも呼ぶ）とライト要求に対してアクセス権を付与するサブスロット（以下、ライト期間サブスロットとも呼ぶ）との切替えにおいて、その切替えのタイミングよりも所定時間前のタイミングから、抑止されていたアクセス権の付与を解除してもよい。配付オーバラップ設定レジスタ５３２は、リード期間サブスロットとライト期間サブスロットとの切替えにおいて、抑止されていたアクセス権の付与が解除される所定時間の長さを設定する。例えば、配付オーバラップ設定レジスタ５３２は、リード期間サブスロットとライト期間サブスロットとの切替えにおいて、現在のサブスロットの終了の何サイクル前から、リード要求とライト要求との双方に対してアクセス権の付与が許可されるかを示す情報を記憶する。配付オーバラップ設定レジスタ５３２には、リード期間サブスロットからライト期間サブスロットへの切替えと、ライト期間サブスロットからリード期間サブスロットへの切替えとで、異なる時間が設定可能であってもよい。
【００７６】
配付フェーズ計算回路５３３は、配付フェーズ設定レジスタ５３１に記憶された情報に従って、例えば、現在のサブスロットが、リード期間サブスロットであるか、又は、ライト期間サブスロットであるかを示す情報を権利選択制御部５０１に通知する。権利付与選択制御部５０１は、リード期間サブスロットでは、リクエスト発行制御部７８をアクセス権の付与先の選択の対象から除外する。また、権利付与選択制御部５０１は、ライト期間サブスロットでは、リクエスト発行制御部２３Ｒ、３３Ｒ、及び４３Ｒを、アクセス権の付与先の選択の対象から除外する。
【００７７】
配付フェーズ計算回路５３３は、配付オーバラップ設定レジスタ５３２を参照し、リード期間サブスロットとライト期間サブスロットとの切替えのタイミングから所定時間前のタイミングになると、リード要求とライト要求との双方に対するアクセス権の付与が可能である旨を権利付与選択制御部５０１に通知する。権利付与選択制御部５０１は、この通中を受け取ると、現在のサブスロットが終了するまで、リクエスト発行制御部２３Ｒ、３３Ｒ、４３Ｒ、及び７８の中から、アクセス権の付与先を選択する。
【００７８】
［設定例］
図７は、リード期間サブスロットとライト期間サブスロットとの設定例を示す。図７の例では、１つの基本スロットは６つのサブスロットを含んでいる。配付フェーズ設定レジスタ５３１は、例えばサブスロット１、２、３、及び５がリード期間サブスロットで、サブスロット４及び６がライト期間サブスロットである旨を示す情報を記憶する。その場合、権利付与選択制御部５０１は、サブスロット１、２、３、及び５では、リード要求に対してアクセス権を付与し、ライト要求に対するアクセス権の付与を抑止する。また、権利付与選択制御部５０１は、サブスロット４及び６では、ライト要求に対してアクセス権を付与し、リード要求に対するアクセス権の付与を抑止する。
【００７９】
配付フェーズ計算回路５３３は、サブスロット３からサブスロット４への切替えに際して、そのタイミングよりも配付オーバラップ設定レジスタ５３２に設定された所定時間（オーバラップ時間）前のタイミングで、リード要求とライト要求との双方に対するアクセス権の付与が可能である旨を権利付与選択制御部５０１に通知する。権利付与選択制御部５０１は、その通知を受けると、例えばリード期間サブスロットであるサブスロット３において、抑止されていたライト要求も、アクセス権付与の対象に加える。
【００８０】
権利付与選択制御部５０１は、ライト期間サブスロットであるサブスロット４からリード期間サブスロットであるサブスロット５への切替えにおいても、同様に、切替えのタイミングの所定時間前から、抑止されていたリード要求をアクセス権付与の対象に加える。また、権利付与選択制御部５０１は、リード期間サブスロットであるサブスロット５からライト期間サブスロットであるサブスロット６への切替えにおいて、切替えのタイミングの所定時間前から、抑止されていたライト要求をアクセス権付与の対象に加える。
【００８１】
ここで、アクセス権が付与されたリード要求は、インターコネクト７０及びキャッシュ７５などを介してメモリコントローラ８０に到達するのに対し、ライト要求はメモリコントローラ８０にすぐに到達する。このように、リード要求とライト要求とでは、アクセス権が付与されてから、メモリコントローラ８０に到達するまでのレイテンシが異なる。各サブスロットにおいて、アクセス権の配付を完全に排他的に行うと、レイテンシの違いに起因して、メモリコントローラ８０のバッファ８１が空になる可能性がある。リードとライトとの切替えタイミングまで、所定時間だけリード要求とライト要求との双方にアクセス権を付与することで、バッファ８１が空になる可能性を低下させることができる。
【００８２】
［まとめ］
本実施形態では、中央バス制御システム５０ａは、リード要求とライト要求とに対し、期間を分けて排他的にアクセス権を付与する。例えばＤＤＲなどのメモリ８０へのアクセスでは、アクセス種別をリードとライトとの間で切り替える場合、アクセス種別の切替え時に一定時間だけメモリアクセスしない期間を設ける必要がある。このため、メモリアクセスでは、アクセス種別が同種のものを連続してアクセスした方が、効率よくメモリアクセスできる。本実施形態では、リード期間サブスロットではリード要求に対してアクセス権を付与し、ライト期間サブスロットではライト要求に対してアクセス権を付与する。このようにすることで、同種のアクセス種別のアクセス要求がメモリコントローラ８０に連続して到達することとなり、メモリコントローラ８０内のスケジューリング効率などを向上させることができる。
【００８３】
［変形例］
本実施形態において、中央バス制御システム５０ａは、キャッシュ７５からキャッシュの空きエントリ数を取得し、空きエントリ数に応じて、基本スロット内における、リード期間サブスロットの数とライト期間サブスロットの数とを動的に変更してもよい。図８（ａ）及び（ｂ）は、それぞれリード期間サブスロットとライト期間サブスロットとの設定例を示す。図８（ａ）では、サブスロット１、２、３、４、及び５がリード期間サブスロットに設定され、サブスロット６がライト期間サブスロットに設定される。一方、図８（ｂ）では、サブスロット１、３、及び５がリード期間サブスロットに設定され、サブスロット２、４、及び６がライト期間サブスロットに設定される。
【００８４】
例えば、配付フェーズ設定レジスタ５３１（図６を参照）には、図７に示される設定が記憶されているとする。配付フェーズ計算回路５３３は、キャッシュ７５から空きエントリ数を取得し、空きエントリ数が上側しきい値以上であるか、或いは下側しきい値以下であるかを判断する。配付フェーズ計算回路５３３は、平常時、例えば空きエントリ数が上側しきい値よりの少なく、かつ下側しきい値よりも多い場合は、図７に示される設定で、リード期間サブスロットとライト期間サブスロットとを設定する。
【００８５】
配付フェーズ計算回路５３３は、空きエントリ数が上側しきい値以上の場合、つまり空きエントリ数が多い場合は、ライト期間サブスロットの数を減らし、例えば図８（ａ）に示される設定で、リード期間サブスロットとライト期間サブスロットとを設定する。配付フェーズ計算回路５３３は、空きエントリ数が下側しきい値以下の場合、つまり空きエントリ数が少ない場合は、ライト期間サブスロットの数を増やし、例えば図８（ｂ）に示される設定で、リード期間サブスロットとライト期間サブスロットとを設定する。
【００８６】
上記のようにすることで、空きエントリ数が多い場合、つまりキャッシュ７５に記憶されるライトバックすべきライト要求が少ない場合は、基本スロット内で、リード要求に対して平常時に比べてより多くのアクセス権を付与できる。一方、空きエントリ数が少ない場合、つまりキャッシュ７５にライトバックすべきライト要求が多く記憶されている場合は、基本スロット内で、ライト要求に対して平常時に比べてより多くのアクセス権を付与できる。リード期間サブスロットの数とライト期間サブスロットとの数とを、キャッシュ７５の空きエントリ数に応じて動的に制御することで、例えばライトバックが必要ないときに、リード要求に多くアクセス権を配付してアクセスの効率を向上させることができる。
【００８７】
［実施形態３］
続いて、実施形態３を説明する。本実施形態に係る電子装置の構成は、図１に示される実施形態１に係る電子装置１０の構成と同様でよい。図９は、本実施形態において用いられる中央バス制御システム（中央バス制御システム２）の構成を示す。本実施形態において用いられる中央バス制御システム６０ａは、権利付与選択制御部６０１、権利付与数制御部６０４、スロット設定レジスタ６２１、付与可能最大数設定レジスタ６２４、及びＱｏＳレジスタ群６２５を有する。権利付与数制御部６０４、スロット設定レジスタ６２１、及び付与可能最大数設定レジスタ６２４は、実施形態１で説明したものと同様でよい。
【００８８】
実施形態１では、中央バス制御システム６０（図３を参照）は、予約型レジスタ群６２２及びＢＥ型レジスタ群６２３を用いて、アクセス権の付与先のマスタ（それに対応したリクエスト発行制御部）を選択する。これに対し、本実施形態では、中央バス制御システム６０ａは、キャッシュ７５の空きエントリ数に応じて、複数のマスタのうち、どのマスタのライト要求に対してアクセス権を付与するかを決定する。
【００８９】
本実施形態に係る中央バス制御システム６０ａにおいて、ＱｏＳレジスタ群６２５は、各マスタと、キャッシュ７５の空きエントリ数の条件とを対応付けて記憶する。権利付与選択制御部６０１は、キャッシュ７５の空きエントリ数を取得し、取得した空きエントリ数と、ＱｏＳレジスタ群６２５に記憶された情報とに基づいて、アクセス権の付与先のマスタを決定する。権利付与選択制御部６０１は、例えば取得した空きエントリ数が、ＱｏＳレジスタ群６２５に記憶された条件を満たすマスタの中から、アクセス権を付与するマスタを選択する。このようにすることで、例えばあるマスタについては空きエントリ数の多少にかかわらずアクセス権の付与の対象としつつ、他のマスタについては空きエントリ数が多い場合にのみアクセス権の付与の対象にすることができる。
【００９０】
［設定例］
図１０は、キャッシュ７５の空きエントリ数のレベルを示す。例えば、キャッシュ７５の空きエントリ数は複数のレベルを用いて管理される。図１０に示す例では、キャッシュ７５の空きエントリ数は、最小のレベル１から、最大のレベル４までの４つのレベルで管理される。権利付与選択制御部６０１は、取得したキャッシュ７５の空きエントリ数がどのレベルであるかを判定する。権利付与選択制御部６０１は、例えば空きエントリ数がしきい値Ａ以下の場合、空きエントリ数のレベルがレベル１である判定する。権利付与選択制御部６０１は、例えば空きエントリ数がしきい値Ａより多く、かつしきい値Ｂ以下の場合、空きエントリ数のレベルがレベル２である判定する。権利付与選択制御部６０１は、例えば空きエントリ数がしきい値Ｂよりも多く、かつしきい値Ｃ以下の場合、空きエントリ数のレベルがレベル３である判定する。権利付与選択制御部６０１は、例えば空きエントリ数がしきい値Ｃ以上の場合、空きエントリ数のレベルがレベル４である判定する。ＱｏＳレジスタ群６２５は、レベル判定に用いられるしきい値を格納するレジスタも含んでいてもよい。
【００９１】
ＱｏＳレジスタ群６２５は、例えば、各マスタと、空きエントリ数のレベルとを対応付けて記憶する。ＱｏＳレジスタ群６２５に記憶される空きエントリ数のレベルは、対応するマスタがアクセス権の付与の対象となる条件を示す。権利付与選択制御部６０１は、ＱｏＳレジスタ群６２５を参照し、ＱｏＳレジスタ群６２５に記憶される空きエントリ数のレベルが、取得した空きエントリ数のレベル以下のマスタの中から、アクセス権の付与先のマスタを選択する。例えば取得した空きエントリ数のレベルがレベル２の場合、権利付与選択制御部６０１は、ＱｏＳレジスタ群６２５において、レベル１及びレベル２に対応付けて記憶されたマスタの中から、アクセス権の付与先のマスタを選択する。
【００９２】
図１１は、空きエントリ数のレベルとアクセス権の付与対象のマスタとの関係を示す。ここでは、マスタＡからマスタＤの４つのマスタを考える。ＱｏＳレジスタ群６２５は、例えばマスタＡについてレベル２を、マスタＢについてレベル１を、マスタＣについてレベル４を、マスタＤについてレベル３を、アクセス権の付与の対象となる条件として記憶する。その場合、権利付与選択制御部６０１は、取得した空きエントリ数のレベルがレベル１ならば、マスタＢのみをアクセス権の付与の対象とし、空きエントリ数のレベルがレベル２であればマスタＡ及びＢをアクセス権の付与の対象とする。また、権利付与選択制御部６０１は、取得した空きエントリ数のレベルがレベル３であれば、マスタＡ、Ｂ、及びＤをアクセス権の付与の対象とし、空きエントリ数のレベルがレベル４でれば、全てのマスタをアクセス権の付与の対象とする。
【００９３】
［まとめ］
本実施形態では、権利付与選択制御部６０１は、キャッシュ７５の空きエントリ数に応じて、アクセス権の付与対象のマスタを決定し、付与対象のマスタの中からアクセス権の付与先のマスタを選択する。例えばＱｏＳレジスタ群６２５には、ビデオ入力を行うマスタについてキャッシュ７５の空き状況にかかわらず常にアクセス権の付与対象とするための条件が記憶され、他のマスタについては、キャッシュ７５が一定以上空いている場合にのみアクセス権の付与対象とするための条件が記憶される。その場合、キャッシュ７５の空きエントリ数が少ないときに、ビデオ入力を行うマスタ以外のマスタに対するアクセス権の付与が停止されることで、ビデオ入力を行うマスタのバッファがオーバフローしないことを保証しやすくなる。空きエントリ数のレベルに応じてアクセス権の付与先のマスタを選択することに代えて、ＱｏＳレジスタ群に直接に空きエントリ数のしきい値を設定し、空きエントリ数がしきい値以上であるか否かに基づいて、アクセス権の付与先のマスタを選択してもよい。
【００９４】
［実施例４］
引き続き、実施形態４を説明する。本実施形態では、半導体装置におけるバスの回路情報の生成を、各種設定情報から生成するバスジェネレータを説明する。図１２は、バスジェネレータ８００のハードウェア構成例を示す。バスジェネレータ８００は、例えば、ＣＰＵ８０１、メモリ８０２、キーボード８０４、マウス８０５、モニタ８０６、及びバス８０７を含むコンピュータ装置として構成される。メモリ８０２には、コンピュータ装置をバスジェネレータ８００として動作させるためのバス生成ツール８０３が記憶される。コンピュータ装置において、ＣＰＵ８０１がメモリ８０２から読み出されたバス生成ツール８０３に従って処理を実行することで、コンピュータ装置をバスジェネレータ８００として動作させることができる。
【００９５】
図１３は、バス設計の概略的なフローを示す。まず、市場におけるユースケースなどが想定され（ステップＳ１０１）、バスに求められる性能が検討される（ステップＳ１０２）。次いで、必要性能などに応じてバス構造が検討される（ステップＳ１０３）。バス構造の検討は、例えば中央バス制御システム５０及び６０（図１を参照）を用いるか否かの検討を含む。
【００９６】
バス構造が決まると、決定したバス構造に対して必要な設定情報がバスジェネレータに入力される（ステップＳ１０４）。バスジェネレータは、バスの回路情報を生成し、出力する（ステップＳ１０５）。回路情報は、例えばＲＴＬ（Register Transfer Level）で記述される。その後、バスの回路情報は論理合成され（ステップＳ１０６）、次いでレイアウト設計が行われる（ステップＳ１０７）。ステップＳ１０４及びＳ１０５は、バスジェネレータを用いて設計が行われるフェーズを示す。
【００９７】
図１４は、設定情報の入力における画面例を示す。例えばモニタ８０６（図１２を参照）には、設定情報の入力を促す画面が表示され、ユーザは、キーボード８０４やマウス８０５を用いて、各種設定をバスジェネレータ８００に与える。例えば、図１４に示される画面において、ユーザがメニュー９０１から「ＱｏＳ」を選択すると、サブメニュー９０２が表示される。ユーザがサブメニュー９０２において「アービタ」を選択すると、アービタの方式などの選択画面９０３が表示される。ユーザは、選択画面９０３において、例えば中央制御方式を選択し、またキャッシュの有無などを選択することができる。
【００９８】
ユーザは、例えばメモリに対するアクセス要求を出力するマスタに関する情報として、マスタのアクセス先の情報、使用するクロックの情報、バス幅に関する情報、及び機能安全に関する情報などをバスジェネレータ８００に入力する。また、マスタからアクセスされるスレーブに関する情報として、アドレス領域の情報、使用するクロックの情報、バス幅に関する情報、及び機能安全に関する情報などを入力する。さらに、アービタに関する情報として、ＱｏＳ方式を指定する情報、及び各方式の詳細設定などを入力する。
【００９９】
図１５は、バスジェネレータの機能ブロックを示す。バスジェネレータ８００は、機能ブロックとして、バス構造情報生成部８１１、バス部品生成部８１２、中央バス制御部生成部８１３、サブバス制御部生成部８１４、及びマージ部８１５を有する。バスジェネレータ８００には、クロック情報１０１、接続情報１０２、スレーブ情報１０３、マスタ情報１０４、キャッシュ情報１０６、ＱｏＳ情報初期値１０７、ＤＤＲコントローラバッファ情報１０８、及びサブ機能オプション１０９が入力される。これら情報は例えば図１４に示される設定情報の入力画面を通じて入力される。
【０１００】
バス構造情報生成部８１１は、クロック情報１０１、接続情報１０２、スレーブ情報１０３、及びマスタ情報１０４などを用いて、マスタとスレーブとの間を接続するバスの構造情報を生成する。バス部品生成部８１２は、バス構造情報生成部８１１が生成したバスの構造情報と、サブＩＰ（Intellectual Property）群記憶部１０５に記憶された各種機能ブロックの回路情報とに基づいて、各種バス部品の回路情報１１０を生成する。サブＩＰ群記憶部１０５に記憶される各種機能ブロックの回路情報は、例えば各種ＩＰコアを提供するベンダーから提供される。バス部品生成部８１２は、例えばＲＴＬで記述されるバス部品の回路情報１１０を生成する。
【０１０１】
中央バス制御部生成部８１３には、バス構造情報生成部８１１が生成したバスの構造情報と、キャッシュ情報１０６、ＱｏＳ情報初期値１０７、ＤＤＲコントローラバッファ情報１０８、及びサブ機能オプション１０９と、サブＩＰ群記憶部１０５に記憶された各種機能ブロックの回路情報とが入力される。中央バス制御部生成部８１３は、マスタが出力するリード要求、及びキャッシュのライトバックと、マスタが出力したライト要求とに対してアクセス制御を行う中央バス制御システムの回路情報１１１を生成する。中央バス制御部生成部８１３は、例えばＲＴＬで記述される中央バス制御システムの回路情報１１１を生成する。中央バス制御システムの回路情報１１１は、例えば図１に示される中央バス制御システム５０及び６０の回路構成を示す。
【０１０２】
サブバス制御部生成部８１４は、中央バス制御システムの回路情報１１１を用いて、中央バス制御システムの制御に基づいて動作するサブバス制御システムの回路情報１１２を生成する。サブバス制御部生成部８１４は、例えばＲＴＬで記述されるサブバス制御システムの回路情報１１２を生成する。サブバス制御システムの回路情報１１２は、例えば図１に示されるサブバスコントローラシステム２２Ｒ、３２Ｒ、４２Ｒ、２２Ｗ、３２Ｗ、４２Ｗ及び７７の回路構成を示す。マージ部８１５は、バス部品の回路情報１１０と、中央バス制御システムの回路情報１１１と、サブバス制御システムの回路情報１１２とをマージし、バスの回路情報１１３を出力する。バスの回路情報１１３は、例えば図１に示される電子装置１０における、各マスタからメモリ９０までの間のバスに関する回路部分をＲＴＬで記述したものである。
【０１０３】
［まとめ］
本実施形態では、バスシステムの生成にバスジェネレータ８００が用いられる。バスジェネレータ８００に各種設定情報などを入力することで、例えば図１に示される電子装置１０の各マスタからメモリ９０までの間のバスシステムを自動生成することができる。
【０１０４】
［実施形態５］
実施形態５を説明する。図１６は、本実施形態に係る半導体装置を含む電子装置を示す。図１に示される実施形態１に係る電子装置１０では、中央バス制御システム５０は、キャッシュ７５のライトバックに対応したリクエスト発行制御部７８に対して付与するアクセス権を制御することで、ライトバックに対するアクセス制御を行う。これに対し、本実施形態に係る電子装置１０ａでは、中央バス制御システム５０ｂは、リクエスト発行制御部７８へ出力するアクセス許可を示す信号を制御することで、ライト要求バックに対するアクセス制御を実施する。その他の点は、実施形態１から３と同様でよい。
【０１０５】
本実施形態において、中央バス制御システム５０ｂは、許可期間通知を、アクセス許可を示す信号としてリクエスト発行制御部７８に出力する。許可期間通知は、アクセスが許可される場合にアサートされ、アクセスが許可されない場合にネゲートされる。ライトリクエスト発行制御部７８は、中央バス制御システム５０ｂから出力される許可期間通知がアサートされている場合は、キャッシュ７５から出力されたライト要求をメモリコントローラ８０へ出力する。リクエスト発行制御部７８は、許可期間通知がネゲートされている場合は、ライト要求のメモリコントローラ８０への出力を抑止する。リクエスト発行制御部７８は、ライト要求をメモリコントローラ８０に出力すると、その旨を示す転送通知を中央バス制御システム５０ｂに出力する。
【０１０６】
図１７は、中央バス制御システム５０ｂの構成例を示す。中央バス制御システム５０ｂは、権利付与選択制御部５０１、マスク信号生成部５０２、配付優先度計算回路５０３、権利付与数制御部５０４、リフレッシュ制御部５０５、転送量モニタ５１０、スロット設定レジスタ５２１、予約型レジスタ群５２２、ＢＥ（Best Effort）型レジスタ群５２３、及び付与可能最大数設定レジスタ５２４を有する。本実施形態において、中央バス制御システム５０ｂの予約型レジスタ群５２２は、キャッシュ７５についての予約バンド幅などの情報を記憶していなくてよく、ＢＥ型レジスタ群５２３は、キャッシュ７５についての目標転送量などの情報を記憶していなくてよい。また、転送量モニタ５１０は、リクエスト発行制御部７８とメモリコントローラ８０との間のバス７９Ｗにおけるトランザクションの転送量をモニタしなくてもよい（図１６も参照）。
【０１０７】
本実施形態に係る中央バス制御システム５０ｂにおいて、権利付与選択制御部５０１が行うリクエスト発行制御部２３Ｒ、３３Ｒ、及び４３Ｒに対するアクセス権の付与は、実施形態１において説明したものと同様でよい。権利付与選択制御部５０１は、リクエスト発行制御部７８に対しては、許可期間通知を出力する。権利付与数制御部５０４は、リクエスト発行制御部７８から、転送通知を受信する。権利付与数制御部５０４は、転送通知を受信すると、キャッシュ７５のライトバックに対してアクセス権が付与されたとみなして、権利付与可能数を転送されたライト要求の分だけ減らす。権利付与選択制御部５０１は、権利付与可能数の範囲で、リクエスト発行制御部２３Ｒ、３３Ｒ、及び４３Ｒに対してアクセス権を付与する。
【０１０８】
［まとめ］
実施形態１に係る中央バス制御システム５０が行うライト要求のアクセス権の付与において、アクセス権の付与先は、キャッシュ７５のライトバックのみ、つまりリクエスト発行制御部７８のみである。キャッシュのライトバックのアクセス許可を、アクセス権に基づいて実施する場合、アクセス権の付与先が１箇所のみであるため、アクセス権が連続して付与されることが多いと考えられる。ＤＤＲメモリに対するアクセスはバーストアクセスであることが一般的であり、またライト要求ではデータセルの転送もあるため、リクエスト発行制御部７８に対して連続してアクセス権を付与したとしても、使用しきれずに、中央バス制御システム５０に返却されることが多くなると考えられる。その場合、無駄なアクセス権の付与が増え、リード要求に対して付与可能なアクセス権が減る可能性がある。本実施形態では、中央バス制御システム５０ｂは、リクエスト発行制御部７８に出力する許可期間通知を用いてライト要求に対するアクセス制御を実施する。本実施形態では、リクエスト発行制御部７８がライトリクエストをメモリコントローラ８０に出力した場合に権利付与可能数を減らしており、上記した無駄なアクセス権の付与を回避することができる。
【０１０９】
［実施形態６］
実施形態６を説明する。本実施形態に係る電子装置の構成は、図１に示される実施形態１に係る電子装置１０の構成と同様でよい。本実施形態では、実施形態２と同様に、各マスタのリード要求に対応するリクエスト発行制御部２３Ｒ、３３Ｒ、及び４３Ｒと、キャッシュ７５のライト要求に対応するリクエスト発行制御部７８とに対し、期間を分けて排他的にアクセス権が付与される。本実施形態では、図６に示される実施形態２において用いられる中央バス制御システム５０ａが、中央バス制御システム１として用いられる。本実施形態において、中央バス制御システム５０ａのリフレッシュ制御部５０５は、リード要求に対してアクセス権が付与される期間と、ライト要求に対してアクセス権が付与される期間とを切り替えるタイミングに合わせて、メモリ９０にリフレッシュ要求を出力する。その他の点は、実施形態２と同様でよい。
【０１１０】
［動作例］
図１８は、メモリ９０へのアクセスの動作例を示す。図１８（ａ）は、リードとライトとの切替えに合わせてリフレッシュを行わない場合の動作例を示し、（ｂ）は、リードとライトとの切替えに合わせてリフレッシュを行った場合の動作例を示す。
【０１１１】
図１８（ａ）に示されるように、例えば時刻ｔ１１でメモリ９０に対してリードでアクセスを開始し、その後アクセス種別をライトに切り替える場合を考える。メモリ９０に対するアクセス種別をリードからライトに切り替える場合、リードの終了後、ライトを開始するまでに、一定の期間だけメモリアクセスを行わない期間を設ける必要がある。つまり、リードとライトとの切替えに、Ｒ(Read)／Ｗ(Write)切替えペナルティが発生する。図１８（ａ）では、時刻ｔ１２でリードを終了してから時刻ｔ１３でライトを開始するまでの時間Ｔ１が、Ｒ／Ｗ切替えペナルティとなる。
【０１１２】
時刻ｔ１３でアクセス種別をライトへ切り替えた後、更にアクセス種別をリードに切り替える場合も、時刻ｔ１４でライトを終了してから時刻ｔ１５でリードを開始するまでの時間Ｔ１だけ、Ｒ／Ｗ切替えペナルティが発生する。時刻ｔ１６でリフレッシュを開始した場合、リフレッシュ期間中もメモリ９０へのアクセスができず、時刻ｔ１６からリフレッシュが終了する時刻ｔ１７までの時間Ｔ２がリフレッシュペナルティとなる。リフレッシュにより中断したリードのメモリ９０へのアクセスは時刻ｔ１７で再開され、時刻ｔ１８で終了する。
【０１１３】
次いで、図１８（ｂ）に示されるように、例えば時刻ｔ２１でメモリ９０に対してリードでアクセスを開始し、その後アクセス種別をライトに切り替える場合を考える。この場合も、図１８（ａ）の例と同様に、時刻ｔ２２から時刻ｔ２３までの時間Ｔ１だけ、Ｒ／Ｗ切替えペナルティが発生する。図１８（ｂ）の例では、時刻ｔ２３でアクセス種別がライトへ切り替えられた後、時刻ｔ２４でアクセス種別の切替えとリフレッシュとが同時に実施される。この場合、時刻ｔ２４から時刻ｔ２５までの時間Ｔ２（リフレッシュペナルティ）が、Ｒ／Ｗ切替えペナルティ（Ｔ１）を隠蔽し、別途、Ｒ／Ｗ切替えペナルティ分だけ待たなくても、時刻ｔ２５で、アクセス種別をリードに切り替えることができる。時刻ｔ２５で開始されたリードのメモリ９０へのアクセスは、時刻ｔ２６で終了する。
【０１１４】
図１８（ａ）の例では、時刻ｔ１１から時刻ｔ１８までの間に、アクセス種別の切替えが２回あり、リフレッシュ動作が１回ある。図１８（ａ）の例では、Ｒ／Ｗ切替えペナルティが２回あり、リフレッシュペナルティが１回あるため、時刻ｔ１１から時刻ｔ１８までの間に、メモリ９０へのアクセスができない期間が２×Ｔ１＋Ｔ２だけある。図１８（ｂ）の例においても、時刻ｔ２１から時刻ｔ２６までの間に、アクセス種別の切替えは２回あり、リフレッシュが１回ある。しかしながら、図１８（ｂ）の例では、リフレッシュペナルティがＲ／Ｗ切替えペナルティを隠蔽するため、時刻ｔ２１から時刻ｔ２６までの間に、メモリ９０へアクセスできない期間はＴ１＋Ｔ２で済む。時刻ｔ１１から時刻ｔ１８までの時間と、時刻ｔ２１から時刻ｔ２６までの時間が等しい場合、アクセス種別の切替えに合わせてリフレッシュとを同時に実施することで、時間Ｔ１だけメモリ９０へアクセス可能な時間が増えたことになる。
【０１１５】
［まとめ］
本実施形態では、中央バス制御システム５０ａは、リード要求に対してアクセス権を付与する期間と、ライト要求に対してアクセス権を付与する期間とを切り替えるタイミングに合わせて、メモリ９０にリフレッシュ動作を実施させる。ＤＤＲなどのメモリへのアクセスでは、リードとライトとの間のアクセス種別の切替えのペナルティが大きい。本実施形態では、リード要求にアクセス権を付与する期間とライト要求にアクセス権を付与する期間との切替えタイミングに合わせてリフレッシュを実施させることで、リフレッシュペナルティでＲ／Ｗ切替えペナルティを隠蔽することができる。このようにすることで、メモリ９０へのアクセスの効率を上げることができる。
【０１１６】
［変形例］
なお、上記各実施形態では、中央バス制御システム５０の権利付与選択制御部５０１（図２を参照）が、予約型レジスタ群５２２を用いたアクセス権の付与先の選択と、ＢＥ型レジスタ群５２３を用いたアクセス権の付与先の選択とを独立して行う例を説明したが、これには限定されない。権利付与選択制御部５０１は、予約型レジスタ群５２２を用いたアクセス権の付与先の選択と、ＢＥ型レジスタ群５２３を用いたアクセス権の付与先の選択とを切り替えて実施してもよい。中央バス制御システム６０の権利付与選択制御部６０１（図３を参照）についても同様である。
【０１１７】
上記各実施形態では、２つの中央バス制御装置を用いて、メモリコントローラ８０に出力されるアクセス要求のアクセス制御と、キャッシュ７５に一時的に記憶されるアクセス要求（ライト要求）のアクセス制御とを実施する例を説明したが、これら中央バス制御システムは、物理的に分離している必要はない。１つ中央バス制御システムを用いて、メモリコントローラ８０に出力されるアクセス要求のアクセス制御と、キャッシュ７５に一時的に記憶されるアクセス要求（ライト要求）のアクセス制御とを個別に実施してもよい。
【０１１８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０１１９】
例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１２０】
［付記１］
メモリに対して、リード要求及びライト要求を含むアクセス要求を発行するマスタと、
バスを介して前記マスタに接続され、前記アクセス要求に従って前記メモリにアクセスするメモリコントローラと、
前記メモリコントローラと前記マスタとの間に配置され、前記アクセス要求がライト要求である場合に該ライト要求をキャッシュするキャッシュと、
前記マスタが発行したリード要求の前記メモリコントローラへの出力、及び前記キャッシュにキャッシュされたライト要求の前記メモリコントローラへの出力を制御する第１のアクセス制御を実施する第１のアクセス制御部と、
前記マスタが発行したライト要求の前記メモリコントローラへの出力を制御する第２のアクセス制御を実施する第２のアクセス制御部とを備え、
前記メモリコントローラは、前記アクセス要求を受け付けて記憶するリクエストバッファを有しており、
前記第１のアクセス制御部は、前記リクエストバッファの空き状況に応じて前記第１のアクセス制御を実施し、
前記第２のアクセス制御部は、前記キャッシュの空き状況に応じて前記第２のアクセス制御を実施する半導体装置。
【０１２１】
［付記２］
前記バスは、前記リード要求を伝送するためのリード要求バスと、前記ライト要求を伝送するためのライト要求バスとを含み、
前記第１のアクセス制御部は、前記リード要求バスに対応して配置されたリードリクエスト発行制御部を有するリードサブバスコントローラと、前記キャッシュと前記メモリコントローラとの間の前記ライト要求バスに対応して配置された第１のライトリクエスト発行制御部を有する第１のライトサブバスコントローラと、前記リードサブバスコントローラ及び前記第１のライトサブバスコントローラを用いて前記第１のアクセス制御を実施する第１の中央バス制御システムとを含み、
前記第２のアクセス制御部は、前記マスタと前記キャッシュとの間の前記ライト要求バスに対応して配置された第２のライトリクエスト発行制御部を有する第２のライトサブバスコントローラと、前記第２のライトサブバスコントローラを用いて前記第２のアクセス制御を実施する第２の中央バス制御システムとを含む付記１に記載の半導体装置。
【０１２２】
［付記３］
前記第１の中央バス制御システムは、前記リードリクエスト発行制御部へのアクセス権の付与を制御することで前記リード要求に対する前記第１のアクセス制御を実施し、
前記リードリクエスト発行制御部は、前記マスタから前記リード要求を受け付け、前記第１の中央バス制御システムから前記アクセス権が付与されている場合は前記リード要求を前記メモリコントローラへ出力し、前記アクセス権が付与されていない場合は前記リード要求の前記メモリコントローラへの出力を抑止する付記２に記載の半導体装置。
【０１２３】
［付記４］
前記第１の中央バス制御システムは、前記第１のライトリクエスト発行制御部へのアクセス権の付与を制御することで前記ライト要求に対する前記第１のアクセス制御を実施し、
前記第１のライトリクエスト発行制御部は、前記キャッシュから前記ライト要求を受け付け、前記第１の中央バス制御システムから前記アクセス権が付与されている場合は前記ライト要求を前記メモリコントローラへ出力し、前記アクセス権が付与されていない場合は前記ライト要求の前記メモリコントローラへの出力を抑止する付記３に記載の半導体装置。
【０１２４】
［付記５］
前記第１の中央バス制御システムは、前記第１のライトリクエスト発行制御部へ出力するアクセス許可を示す信号を制御することで前記ライト要求に対する前記第１のアクセス制御を実施し、
前記第１のライトリクエスト発行制御部は、前記キャッシュから前記ライト要求を受け付け、前記第１の中央バス制御システムから前記アクセスの許可を示す信号が出力されている場合は前記ライト要求を前記メモリコントローラへ出力し、前記アクセス許可を示す信号が出力されていない場合は前記ライト要求の前記メモリコントローラへの出力を抑止する付記３に記載の半導体装置。
【０１２５】
［付記６］
前記第２の中央バス制御システムは、前記第２のライトリクエスト発行制御部へのアクセス権の付与を制御することで前記第２のアクセス制御を実施し、
前記第２のライトリクエスト発行制御部は、前記マスタから前記ライト要求を受け付け、前記第２の中央バス制御システムから前記アクセス権が付与されている場合は前記ライト要求を前記キャッシュへ出力し、前記アクセス権が付与されていない場合は前記ライト要求の前記キャッシュへの出力を抑制する付記２に記載の半導体装置。
【０１２６】
［付記７］
前記マスタを複数有し、
前記複数のマスタから入力されるアクセス要求を調停して前記メモリコントローラに出力するインターコネクトを更に備える付記２に記載の半導体装置。
【０１２７】
［付記８］
前記リードリクエスト発行制御部及び前記第２のライトリクエスト発行制御部は、前記複数のマスタのそれぞれと前記インターコネクトとの間を接続する複数のリードバス及びライトバスのそれぞれに対応して配置される付記７に記載の半導体装置。
【０１２８】
［付記９］
前記第１の中央バス制御システムは、前記リクエストバッファの空きエントリ数に応じて、前記アクセス権を付与することが可能な数を示す権利付与可能数を管理し、該権利付与可能数の範囲で前記リードリクエスト発行制御部及び前記第１のライトリクエスト発行制御部に前記アクセス権を付与する付記４に記載の半導体装置。
【０１２９】
［付記１０］
前記メモリコントローラは、前記リクエストバッファが解放されると、前記リクエストバッファが解放された旨を示すバッファ解放通知を前記第１の中央バス制御システムに出力し、
前記第１の中央バス制御システムは、前記リードリクエスト発行制御部及び前記第１のライトリクエスト発行制御部に前記アクセス権を付与した場合、前記権利付与可能数から前記アクセス権の付与数を減算し、前記バッファ解放通知を受け取った場合、前記権利付与可能数に前記リクエストバッファにおいて解放されたエントリの数を加算する付記９に記載の半導体装置。
【０１３０】
［付記１１］
前記リードリクエスト発行制御部及び前記第１のライトリクエスト発行制御部は、それぞれ、前記アクセス権が付与された場合に前記リード要求及びライト要求を受け付けていない場合は、前記第１の中央バス制御システムに前記アクセス権を返却し、
前記第１の中央バス制御システムは、前記アクセス権が返却された場合、前記権利付与可能数に前記アクセス権の返却数を加算する付記１０に記載の半導体装置。
【０１３１】
［付記１２］
前記キャッシュは前記メモリから読み出されたリードデータを更にキャッシュし、
前記リードリクエスト発行制御部から出力されたリード要求で要求されるデータが前記キャッシュにキャッシュされている場合、前記キャッシュは、前記キャッシュされたリードデータを、前記リード要求の発行元のマスタに前記リード要求に対する応答として出力し、かつ、前記リードリクエスト発行制御部に付与されたアクセス権を前記第１の中央バス制御システムに返却する付記１０に記載の半導体装置。
【０１３２】
［付記１３］
前記第２の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記アクセス権を付与することが可能な数を示す権利付与可能数を管理し、該権利付与可能数の範囲で前記第２のライトリクエスト発行制御部に前記アクセス権を付与する付記６に記載の半導体装置。
【０１３３】
［付記１４］
前記第２の中央バス制御システムは、前記第２のライトリクエスト発行制御部に前記アクセス権を付与した場合、前記権利付与可能数から前記アクセス権の付与数を減算し、前記キャッシュの空きエントリ数が増加した場合、前記権利付与可能数に前記空きエントリが増加した数を加算する付記１３に記載の半導体装置。
【０１３４】
［付記１５］
前記第２のライトリクエスト発行制御部は、前記アクセス権が付与された場合に前記ライト要求を受け付けていない場合は、前記第２の中央バス制御システムに前記アクセス権を返却し、
前記第２の中央バス制御システムは、前記アクセス権が返却された場合、前記権利付与可能数に前記アクセス権の返却数を加算する付記１４に記載の半導体装置。
【０１３５】
［付記１６］
前記第１の中央バス制御システムは、第１の期間では前記リードリクエスト発行制御部に前記アクセス権を付与し、かつ前記第１のライトリクエスト発行制御部への前記アクセス権の付与を抑止し、第２の期間では前記第１のライトリクエスト発行制御部に前記アクセス権を付与し、かつ前記リードリクエスト発行制御部への前記アクセス権の付与を抑止する付記４に記載の半導体装置。
【０１３６】
［付記１７］
前記第１の中央バス制御システムは、所定の基本スロットの期間を複数の期間で分割した期間をサブスロットとして、該サブスロットの単位で、前記第１の期間又は前記第２の期間を設定する付記１６に記載の半導体装置。
【０１３７】
［付記１８］
前記第１の中央バス制御システムは、前記サブスロットが前記第１の期間に設定されるか、又は前記第２の期間に設定されるかを指定するためのレジスタを有する付記１７に記載の半導体装置。
【０１３８】
［付記１９］
前記第１の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記第１の期間に設定されるサブスロットの数と、前記第２の期間に設定されるサブスロットの数とを変更する付記１７に記載の半導体装置。
【０１３９】
［付記２０］
前記第１の中央バス制御システムは、前記第１の期間に設定されたサブスロットから前記第２の期間に設定されたサブスロットへの切替え、及び前記第２の期間に設定されたサブスロットから前記第１の期間に設定されたサブスロットへの切替えの少なくとも一方において、該切替えのタイミングよりも所定時間前のタイミングから、前記抑止されたアクセス権の付与を解除する付記１７に記載の半導体装置。
【０１４０】
［付記２１］
前記メモリはリフレッシュ動作が実行可能に構成されており、
前記第１の中央バス制御システムは、前記第１の期間と前記第２の期間とを切り替えるタイミングに合わせて前記メモリに前記リフレッシュ動作を実行させる付記１６に記載の半導体装置。
【０１４１】
［付記２２］
前記マスタを複数有し、
前記複数のマスタから入力されるアクセス要求を調停して前記メモリコントローラに出力するインターコネクトを更に備え、
前記第２の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記複数のマスタのうち、どのマスタのライト要求に前記アクセス権を付与するかを決定する付記６に記載の半導体装置。
【０１４２】
［付記２３］
前記第２の中央バス制御システムは、前記複数のマスタと、前記キャッシュの空きエントリ数の条件とを対応付けて記憶するレジスタを有し、前記キャッシュの空きエントリ数が前記条件を満たすマスタの中から、前記アクセス権を付与するマスタを決定する付記２２に記載の半導体装置。
【０１４３】
［付記２４］
半導体装置におけるバスを生成するバスジェネレータであって、
リード要求及びライト要求を含む、メモリに対するアクセス要求を出力するマスタに関する情報と、前記マスタからアクセスされるスレーブの情報とに基づいて、前記マスタと前記スレーブとの間を接続するバスの構造情報を生成するバス構造情報生成部と、
前記バスの構造情報、前記ライト要求を一時的に記憶してライトバックするキャッシュの情報、前記マスタのサービス品質情報、及び機能ブロックの回路情報を用いて、前記マスタが出力するリード要求、及び前記キャッシュのライトバックと、前記マスタが出力したライト要求とに対してアクセス制御を行う中央バス制御システムの回路情報を生成する中央バス制御部生成部と、
前記中央バス制御システムの回路情報を用いて、前記中央バス制御システムの制御に基づいて動作するサブバス制御システムの回路情報を生成するサブバス制御部生成部と、
前記バスの構造情報、及び機能ブロックの回路情報を用いて、バス部品の回路情報を生成するバス部品生成部と、
前記中央バス制御システムの回路情報、前記サブバス制御システムの回路情報、及び前記バス部品の回路情報をマージし、前記バスの回路情報を生成するマージ部とを備えるバスジェネレータ。
【符号の説明】
【０１４４】
１０：電子装置
２１Ｒ、２１Ｗ、３１Ｒ、３１Ｗ、４１Ｒ、４１Ｗ：バス
２２Ｒ、２２Ｗ、３２Ｒ、３２Ｗ、４２Ｒ、４２Ｗ：サブバスコントローラ
２３Ｒ、２３Ｗ、３３Ｒ、３３Ｗ、４３Ｒ、４３Ｗ：リクエスト発行制御部
２４Ｒ、２４Ｗ、３４Ｒ、３４Ｗ、４４Ｒ、４４Ｗ：バス
５０：中央バス制御システム１
６０：中央バス制御システム２
７０：インターコネクト
７５：キャッシュ
７６Ｒ、７６Ｗ、７９Ｗ：バス
７７：並びにサブバスコントローラ
７７：トローラ（ライトサブバスコントローラ１）
７７：サブバスコントローラ
７８：リクエスト発行制御部
８０：メモリコントローラ
８１：バッファ
９０：メモリ
１０１：クロック情報
１０２：接続情報
１０３：スレーブ情報
１０４：マスタ情報
１０５：ＩＰ群記憶部
１０６：キャッシュ情報
１０７：ＱｏＳ情報初期値
１０８：コントローラバッファ情報
１０９：サブ機能オプション
１１０：バス部品の回路情報
１１１：中央バス制御システムの回路情報
１１２：サブバス制御システムの回路情報
１１３：バスの回路情報
５０１、６０１：権利付与選択制御部
５０２、６０２：マスク信号生成部
５０３、６０３：配付優先度計算回路
５０４、６０４：権利付与数制御部
５０５：リフレッシュ制御部
５１０、６１０：転送量モニタ
５１１、６１１：予約型用転送量モニタ
５１２、６１２：ＢＥ型用転送量モニタ
５２１、６２１：スロット設定レジスタ
５２２、６２２：予約型レジスタ群
５２３、６２３：ＢＥ型レジスタ群
５２４、６２４：付与可能最大数設定レジスタ
５３１：配付フェーズ設定レジスタ
５３２：配付オーバラップ設定レジスタ
５３３：配付フェーズ計算回路
６０１：権利付与選択制御部
８００：バスジェネレータ
８０１：ＣＰＵ
８０２：メモリ
８０３：バス生成ツール
８０４：キーボード
８０５：マウス
８０６：モニタ
８０７：バス
８１１：バス構造情報生成部
８１２：バス部品生成部
８１３：中央バス制御部生成部
８１４：サブバス制御部生成部
８１５：マージ部
【図１】
2019114015.tif 000003
【図２】
2019114015.tif 000004
【図３】
2019114015.tif 000005
【図４】
2019114015.tif 000006
【図５】
2019114015.tif 000007
【図６】
2019114015.tif 000008
【図７】
2019114015.tif 000009
【図８】
2019114015.tif 000010
【図９】
2019114015.tif 000011
【図１０】
2019114015.tif 000012
【図１１】
2019114015.tif 000013
【図１２】
2019114015.tif 000014
【図１３】
2019114015.tif 000015
【図１４】
2019114015.tif 000016
【図１５】
2019114015.tif 000017
【図１６】
2019114015.tif 000018
【図１７】
2019114015.tif 000019
【図１８】
2019114015.tif 000020