JP2019114015A - 半導体装置、及びバスジェネレータ - Google Patents

半導体装置、及びバスジェネレータ Download PDF

Info

Publication number
JP2019114015A
JP2019114015A JP2017246433A JP2017246433A JP2019114015A JP 2019114015 A JP2019114015 A JP 2019114015A JP 2017246433 A JP2017246433 A JP 2017246433A JP 2017246433 A JP2017246433 A JP 2017246433A JP 2019114015 A JP2019114015 A JP 2019114015A
Authority
JP
Japan
Prior art keywords
control unit
access
request
bus
control system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017246433A
Other languages
English (en)
Other versions
JP6946168B2 (ja
Inventor
翔 山中
Sho Yamanaka
翔 山中
俊行 平木
Toshiyuki Hiraki
俊行 平木
信彦 本田
Nobuhiko Honda
信彦 本田
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
Priority to JP2017246433A priority Critical patent/JP6946168B2/ja
Priority to US16/189,355 priority patent/US11188488B2/en
Priority to TW107145114A priority patent/TW201935259A/zh
Priority to KR1020180164323A priority patent/KR20190076869A/ko
Priority to EP21164812.6A priority patent/EP3872644B1/en
Priority to EP18214763.7A priority patent/EP3502909B1/en
Priority to CN201811590815.4A priority patent/CN110059035B/zh
Publication of JP2019114015A publication Critical patent/JP2019114015A/ja
Application granted granted Critical
Publication of JP6946168B2 publication Critical patent/JP6946168B2/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

【課題】マスタとメモリコントローラとの間にキャッシュが配置される場合でも、メモリコントローラによって受け付けられるアクセス要求の制御を可能とする。【解決手段】各マスタは、メモリ90に対して、リード要求及びライト要求を含むアクセス要求を発行する。キャッシュ75は、マスタが発行したライト要求をキャッシュする。中央バス制御システム50は、各マスタが発行するリード要求及びキャッシュ75が出力するライト要求に対してアクセス制御を実施する。中央バス制御システム60は、各マスタが発行するライト要求に対してアクセス制御を実施する。中央バス制御システム50は、メモリコントローラ80のバッファの空き状況に応じてアクセス制御を実施する。中央バス制御システム60は、キャッシュ75の空き状況に応じてアクセス制御を実施する。【選択図】図1

Description

本発明は半導体装置に関し、例えばメモリへのアクセスを行う半導体装置に関する。
また、本発明は、上記半導体装置におけるバスを生成するバスジェネレータに関する。
特許文献1は、複数のバスマスタが共通バスに接続するバスシステムにおけるアクセス制御を開示する。特許文献1に記載される半導体装置は、複数のマスタと、メモリコントローラと、複数のマスタとメモリコントローラとを接続するバスと、中央バス制御システムとを有する。特許文献1には、中央バス制御システムが、各マスタの転送量をモニタし、各マスタの予約ハンド幅とモニタした転送量と権利付与可能数とに基づいて、アクセス権の付与先のマスタを選択することが記載されている。特許文献1において、アクセス権が付与されていないマスタのリクエストは、メモリコントローラとマスタとの間のバスでマスクされる。
特許文献1において、中央バス制御システムは、メモリコントローラ内のバッファを監視し、バッファの空き状況に応じて各マスタのアクセス要求に対して付与するアクセス権を制御する。中央バス制御システムは、アクセス権を付与するたびに権利付与可能数を減らし、バッファが解放されるたびに権利付与可能数を増やす。バッファの空き状況に応じてアクセス権の付与を行うことで、バッファが未処理のアクセス要求で一杯になることを避けることができ、低レイテンシが要求されるアクセス要求が、メモリコントローラによって受け付けられない事態を回避することができる。
国際公開第2017/056132号
しかしながら、特許文献1において、各マスタとメモリコントローラとの間にキャッシュが配置されると、キャッシュのライトバックによりメモリコントローラのバッファが占有されることがある。その場合、メモリコントローラによって受け付けられるアクセス要求を、中央バス制御システムから制御することができなくなり、レイテンシの保証が困難となる。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、マスタと、メモリコントローラと、キャッシュと、マスタが発行したリード要求のメモリコントローラへの出力、及びキャッシュされたライト要求のメモリコントローラへの出力を制御する第1のアクセス制御部と、マスタが発行したライト要求のメモリコントローラへの出力を制御する実施する第2のアクセス制御部とを備える。第1のアクセス制御部は、メモリコントローラのキャッシュの空き状況に応じてアクセス制御を行い、第2のアクセス制御部は、キャッシュの空き状況に応じてアクセス制御を行う。
前記一実施の形態によれば、マスタとメモリコントローラとの間にキャッシュが配置される場合でも、メモリコントローラによって受け付けられるアクセス要求の制御が可能である。
実施形態1に係る半導体装置を含む電子装置を示すブロック図。 中央バス制御システム1の構成例を示すブロック図。 中央バス制御システム2の構成例を示すブロック図。 中央バス制御システム1におけるアクセス権付与の動作手順を示すブロック図。 中央バス制御システム2におけるアクセス権付与の動作手順を示すブロック図。 実施形態2において用いられる中央バス制御システム1の構成例を示すブロック図。 リード期間サブスロットとライト期間サブスロットとの設定例を示す図。 (a)及び(b)は、それぞれリード期間サブスロットとライト期間サブスロットとの別の設定例を示す図。 実施形態3において用いられる中央バス制御システム2の構成例を示すブロック図。 キャッシュの空きエントリ数のレベルを示す図。 空きエントリ数のレベルとアクセス権の付与対象のマスタとの関係を示す図。 バスジェネレータのハードウェア構成例を示すブロック図。 バス設計の概略的なフローを示すフローチャート。 設定情報の入力における画面例を示す図。 バスジェネレータの機能例を示すブロック図。 実施形態5に係る半導体装置を含む電子装置を示すブロック図。 実施形態5において用いられる中央バス制御システム1の構成例を示すブロック図。 (a)及び(b)は、メモリへのアクセスの動作例を示すタイミングチャート。
以下、図面を参照しつつ、上記課題を解決するための手段を適用した実施形態を詳細に説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、又はその他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、又はそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、何れかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスク)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、及び半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の優先通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以下の実施の形態においては便宜上その必要があるときは、複数のセクション又は実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部又は全部の変形例、応用例、詳細説明、又は補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(動作ステップ等も含む)は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、又は位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等(個数、数値、量、範囲等を含む)についても同様である。
[実施形態1]
図1は、実施形態1に係る半導体装置を含む電子装置を示す。電子装置10は、マスタA20、マスタB30、マスタC40、サブバスコントローラ22R、32R、42R、22W、32W、42W、及び77、中央バス制御システム50及び60、インターコネクト70、キャッシュ75、メモリコントローラ80、並びにメモリ90を有する。電子装置10の構成要素のうち、例えば、マスタA20、マスタB30、マスタC40、サブバスコントローラ22R、32R、42R、22W、32W、42W、及び77、中央バス制御システム50及び60、インターコネクト70、キャッシュ75、並びにメモリコントローラ80は、半導体装置を構成する。半導体装置の構成要素のうち、例えばサブバスコントローラ22R、32R、42W、22W、32W、42W、及び77、インターコネクト70、キャッシュ75、並びにメモリコントローラ80は、ハードウェア回路として構成することができる。また、中央バス制御システム50及び60は、例えばプロセッサを含んだ回路として構成することができる
マスタA20、マスタB30、及びマスタC40は、メモリ90に対してアクセス要求を発行する。メモリ90に対するアクセス要求は、リード要求とライト要求とを含む。メモリ90は、例えばDDR−SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)などのメモリである。マスタA20、マスタB30、及びマスタC40は、例えばCPUやGPU(Graphics Processing Unit)などのプロセッサとして構成される。マスタA20、マスタB30、及びマスタC40は、それぞれ対応するバス(リード要求バス)21R、31R、及び41Rを通じてリード要求を出力し、バス(ライト要求バス)21W、31W、及び41Wを通じてライト要求を出力する。
マスタA20は、バス21R及び21Wを介して対応するサブバスコントローラ22R及び22Wに接続される。サブバスコントローラ(リードサブバスコントローラ)22Rは、バス24Rを介してインターコネクト70に接続される。サブバスコントローラ(ライトサブバスコントローラ2)22Wは、バス24Wを介してインターコネクト70に接続される。サブバスコントローラ22Rは、リクエスト発行制御部(リードリクエスト発行制御部)23Rを含む。サブバスコントローラ22Wは、リクエスト発行制御部(ライトリクエスト発行制御部2)23Wを含む。リクエスト発行制御部23R及び23Wは、それぞれバス21R及び21Wを介してリード要求及びライト要求を受け付け、受け付けたリード要求及びライト要求のバス24R及び24Wへの出力を制御する。
マスタB30は、バス31R及び31Wを介して対応するサブバスコントローラ32R及び32Wに接続される。サブバスコントローラ32R及び32Wは、それぞれバス34R及び34Wを介してインターコネクト70に接続される。サブバスコントローラ32R及び32Wは、それぞれリクエスト発行制御部33R及び33Wを含む。同様に、マスタC40は、バス41R及び41Wを介して対応するサブバスコントローラ42R及び42Wに接続される。サブバスコントローラ42R及び42Wは、それぞれバス44R及び44Wを介してインターコネクト70に接続される。サブバスコントローラ42R及び42Wは、それぞれリクエスト発行制御部43R及び43Wを含む。
リクエスト発行制御部23R及び23Wは、それぞれマスタA20からリード要求及びライト要求を受け付ける。リクエスト発行制御部23Rは、中央バス制御システム50からアクセス権が付与されている場合は、マスタA20が発行したリード要求を、バス24Rを介してインターコネクト70に出力する。リクエスト発行制御部23Wは、中央バス制御システム60からアクセス権が付与されている場合は、マスタA20が発行したライト要求を、バス24Wを介してインターコネクト70に出力する。リクエスト発行制御部23R及び23Wは、アクセス権が付与されていない場合は、それぞれマスタA20が発行したリード要求及びライト要求のインターコネクト70への出力を抑止する。
リクエスト発行制御部33R及び43Rの機能は、リクエスト発行制御部23Rの機能と同様であり、リクエスト発行制御部33W及び43Wの機能は、リクエスト発行制御部23Wの機能と同様である。リクエスト発行制御部23R、33R、及び43Rは、アクセス権が付与された場合で、かつ対応するマスタからリード要求を受け取っていなかった場合は、アクセス権返却信号を中央バス制御システム50に出力し、アクセス権を返却してもよい。また、リクエスト発行制御部23W、33W、及び43Wは、アクセス権が付与された場合で、かつ対応するマスタからライト要求を受け取っていなかった場合は、アクセス権返却信号を中央バス制御システム60に出力し、アクセス権を返却してもよい。中央バス制御システム50及び60は、返却されたアクセス権を、他のリクエスト発行制御部へのアクセス権の付与に使用できる。
インターコネクト70は、バス71R及び71Wを通じてキャッシュ75に接続される。インターコネクト70は、バス24R、34R、44R、24W、34W、及び44Wを介して、マスタA20、マスタB30、及びマスタC40が発行したリード要求及びライト要求を受け取る。インターコネクト70は、例えばバスアービタであり、複数のマスタから入力されるリード要求及びライト要求を調停する。インターコネクト70は、例えばマスタA20、マスタB30、及びマスタC40からリード要求又はライト要求を受け取った場合は、各マスタに設定された優先度に従って、優先度が高いマスタが発行したリード要求又はライト要求をキャッシュ75に出力する。インターコネクト70は、キャッシュ75に出力したリード要求又はライト要求に対するレスポンスが得られると、次に優先度が高いマスタのリード要求又はライト要求を選択してキャッシュ75に出力する。
キャッシュ75は、メモリコントローラ80とインターコネクト70との間に配置される。キャッシュ75には、バス71R及び71Wを介してインターコネクト70から出力されたリード要求及びライト要求が入力される。キャッシュ75は、ライト要求に対してライトバックを行い、入力されたライト要求及びライトデータをキャッシュする。また、キャッシュ75は、リード要求に応じて読み出されるリードデータをキャッシュする。キャッシュ75は、ライトデータ及びリードデータを一時的に記憶するための複数のエントリを有している。
キャッシュ75は、例えばライト要求をキャッシュすると、バス79W及びサブバスコントローラ(ライトサブバスコントローラ1)77を通じて、メモリコントローラ80へキャッシュしたライト要求を出力する。メモリコントローラ80は、例えばバッファ81に空きがあるときに、キャッシュ75から出力されたライト要求を受け付ける。サブバスコントローラ77は、リクエスト発行制御部(ライトリクエスト発行制御部1)78を含む。リクエスト発行制御部78は、バス76Wを通じて、キャッシュ75からライト要求を受け付ける。リクエスト発行制御部78は、受け付けたライト要求のバス79Wへの出力を制御する。リクエスト発行制御部78は、中央バス制御システム50からアクセス権が付与されている場合は、ライト要求をバス79Wへ出力する。リクエスト発行制御部78は、アクセス権が付与されていない場合は、ライト要求のバス79Wへの出力を抑止する。リクエスト発行制御部78は、アクセス権が付与された場合で、かつライト要求を受け付けていない場合は、アクセス権返却信号を中央バス制御システム50に出力し、アクセス権を返却してもよい。中央バス制御システム50は、返却されたアクセス権を、他のリクエスト発行制御部へのアクセス権の付与に使用できる。
キャッシュ75は、リード要求が入力された場合は、リード要求で要求されるデータ(リードデータ)をキャッシュしているか否かを判断する。別の言い方をすると、キャッシュ75は、キャッシュがヒットしたか否かを判断する。キャッシュ75は、リードデータをキャッシュしていない場合は、バス76Rを通じてメモリコントローラ80にリード要求を出力する。キャッシュ75は、リードデータがキャッシュされている場合は、そのリードデータを、リード要求に対する応答として、リード要求の発行元のマスタに出力する。キャッシュ75は、リードデータをマスタに出力すると、キャッシュにヒットした旨を示す通知を中央バス制御システム50に出力し、リクエスト発行制御部23R、33R、又は43Rに付与されたアクセス権を中央バス制御システム50に返却してもよい。
メモリコントローラ80は、バス、キャッシュ75、及びインターコネクト70などを介してマスタA20、マスタB30、及びマスタC40に接続され、キャッシュ75を通じて受け付けたアクセス要求に従ってメモリ90にアクセスする。なお、図1では電子装置10がマスタを3つ有する例が示されているが、マスタの数は特に限定されない。電子装置10は、メモリコントローラ80に対してメモリ90へのアクセス要求を発行するマスタを少なくとも1つ有していればよい。マスタの数が1つである場合、調停のためのインターコネクト70は不要である。
メモリコントローラ80は、バッファ(リクエストバッファ)81を有する。バッファ81は、メモリコントローラ80がインターコネクト70及びキャッシュ75を介して受け付けたアクセス要求を記憶する。バッファ81は、複数のエントリを有しており、複数のアクセス要求を記憶可能に構成される。メモリコントローラ80は、バッファ81以外に、例えば、バッファ81に記憶された複数のアクセス要求の1つを選択するスケジューラと、選択されたアクセス要求に従ってメモリ90にアクセスするためのメモリコマンド(コマンド信号)を生成するメモリコマンド生成部を有している。メモリコントローラ80は、バッファ81からアクセス要求が選択されて処理されると、バッファ81のエントリが解放された旨を示すバッファ解放通知を中央バス制御システム50に出力する。
中央バス制御システム(中央バス制御システム1)50は、サブバスコントローラ22R、32R、及び42Rと、サブバスコントローラ77とを用いて、リード要求及びライト要求に対するアクセス制御を実施する。中央バス制御システム50は、サブバスコントローラ22R、32R、及び42R、並びにサブバスコントローラ77と共にアクセス制御部(アクセス制御部1)を構成する。中央バス制御システム50は、バッファ81の空き状況に応じて、リード要求及びライト要求に対するアクセス制御を実施する。
中央バス制御システム50は、例えばリクエスト発行制御部23R、33R、及び43Rへのアクセス権の付与を制御することで、各マスタからメモリコントローラ80へ出力されるリード要求に対するアクセス制御を実施する。また、中央バス制御システム50は、リクエスト発行制御部78へのアクセス権の付与を制御することで、キャッシュ75からメモリコントローラ80へ出力されるライト要求に対するアクセス制御を実施する。
一方、中央バス制御システム(中央バス制御システム2)60は、サブバスコントローラ22W、32W、及び42Wを用いて、ライト要求に対するアクセス制御を実施する。中央バス制御システム60は、サブバスコントローラ22W、32W、及び42Wと共に別のアクセス制御部(アクセス制御部2)を構成する。中央バス制御システム60は、キャッシュ75から、キャッシュ75の空きエントリ数を取得する。中央バス制御システム60は、取得した空きエントリ数に基づいてキャッシュ75の空き状況を監視し、キャッシュ75の空き状況に応じてアクセス制御を実施する。中央バス制御システム60は、例えばリクエスト発行制御部23W、33W、及び43Wへのアクセス権の付与を制御することで、各マスタからキャッシュ75へ出力されるライト要求に対するアクセス制御を実施する。
ユーザは、例えば中央バス制御システム50及び中央バス制御システム60にあらかじめ各マスタの帯域を設定し、一定時間(スロット)内のQoS(Quality of Service)を保証する。ここで、本実施形態において、マスタは、アクセス要求の種別ごとに存在するものとみなされ、例えばリード要求とライト要求とのそれぞれについて各マスタの帯域が設定される。また、中央バス制御システム50が行うアクセス制御において、ライト要求を出力するキャッシュ75はマスタの1つとみなされる。中央バス制御システム50は、リクエスト発行制御部23R、33R、43R、及び78のそれぞれに対して、例えば所定のアクセス制御の内容に従ってアクセス権を付与する。また、中央バス制御システム60は、リクエスト発行制御部23W、33W、及び43Wのそれぞれに対して、例えば所定のアクセス制御の内容に従ってアクセス権を付与する。アクセス制御の内容は、例えば特許文献1に記載されたものと同様でよい。特許文献1に記載の内容は、参照として本明細書に取り込まれる。
中央バス制御システム50は、例えば各マスタのリード要求、及びキャッシュ75のライト要求に対して設定されたQoS情報に基づいて、各マスタ及びキャッシュ75に対応するリクエスト発行制御部23R、33R、43R、及び78に対してアクセス権を付与するか否かを決定する。このとき、中央バス制御システム50は、バス24R、34R、44R、及び79Wから取得されたリクエストモニタ(トランザクションモニタ信号)によってバスを流れるトランザクションを監視し、トランザクションの転送量に基づいてスロットごとに補正しながらアクセス権を付与してもよい。中央バス制御システム50は、アクセス権の付与を通じて、各マスタ及びキャッシュ75が発行するリード要求及びライト要求のメモリコントローラ80への出力を制御する。
中央バス制御システム60は、例えば各マスタのライト要求に対して設定されたQoS情報に基づいて、各マスタに対応するリクエスト発行制御部23W、33W、及び43Wに対してアクセス権を付与するか否かを決定する。このとき、中央バス制御システム60は、バス24W、34W、及び44Wから取得されたリクエストモニタ(トランザクションモニタ信号)によってバスを流れるトランザクションを監視し、トランザクションの転送量に基づいてスロットごとに補正しながらアクセス権を付与してもよい。中央バス制御システム60は、アクセス権の付与を通じて、各マスタが発行するライト要求のキャッシュ75への出力を制御する。
[中央バス制御システム1]
図2は、中央バス制御システム50の構成例を示す。中央バス制御システム50は、権利付与選択制御部501、マスク信号生成部502、配付優先度計算回路503、権利付与数制御部504、リフレッシュ制御部505、転送量モニタ510、スロット設定レジスタ521、予約型レジスタ群522、BE(Best Effort)型レジスタ群523、及び付与可能最大数設定レジスタ524を有する。
転送量モニタ510は、バスを通じて転送されるリード要求及びライト要求のトランザクションの転送量を測定する機能部である。転送量モニタ510は、予約型用転送量モニタ511と、BE型用転送量モニタ512を有する。予約型用転送量モニタ511は、バス24R、34R、及び44R(図1を参照)を通じてインターコネクト70に転送されるリード要求のトランザクションの転送量を測定する。また、予約型用転送量モニタ511は、バス79Wを通じてメモリコントローラ80へ転送されるライト要求のトランザクションの転送量を測定する。BE型用転送量モニタ512も、同様に、バス24R、34R、及び44Rを通じてインターコネクト70に転送されるリード要求のトランザクションの転送量を測定し、バス79Wを通じてメモリコントローラ80へ転送されるライト要求のトランザクションの転送量を測定する。
スロット設定レジスタ521は、1基本スロット内に存在するサブスロットの数と1サブスロットの期間とを格納する。基本スロットは、例えば、メモリ90におけるリフレッシュ期間を示す。スロット設定レジスタ521が格納する1基本スロット内に存在するサブスロットの数、及び1サブスロットの期間は、変更することができる。
リフレッシュ制御部505は、メモリコントローラ80にリフレッシュ要求を送信し、メモリ90においてリフレッシュ動作を実施させる。リフレッシュ制御部505は、例えば図示しないレジスタなどを用いて設定された、基本スロット内の所定の番号のサブスロットにおいて、メモリコントローラ80にリフレッシュ要求を送信する。
権利付与選択制御部501は、リクエスト発行制御部23R、33R、43R、及び78に対してアクセス権を付与する。権利付与選択制御部501は、アクセス権の付与に際して、どのリクエスト発行制御部にアクセス権を付与するかを決定(選択)する。権利付与選択制御部501は、アクセス権の付与先のリクエスト発行制御部に、アクセス権を獲得した旨を示すアクセス権付与信号を出力する。権利付与選択制御部501は、例えばアクセス権の付与先のリクエスト発行制御部に出力するアクセス権付与信号をアサートし、アクセス権を付与しないリクエスト発行制御部に出力するアクセス権付与信号はネゲートしたままとする。
権利付与数制御部504は、リクエスト発行制御部に付与できるアクセス権の数(権利付与可能数)を計算する。付与可能最大数設定レジスタ524は、アクセス権の権利付与可能数の最大数を格納する。権利付与可能数の最大数は、例えばメモリコントローラ80のバッファ81が格納可能なアクセス要求の数に応じて設定される。権利付与数制御部504は、例えばバッファ81の空き状況に応じて、付与可能最大数設定レジスタ524が格納する最大数を上限として、アクセス権の権利付与可能数を計算する。権利付与選択制御部501は、権利付与数制御部504が計算した権利付与可能数の範囲で、アクセス権の付与を行う。
権利付与数制御部504は、例えば権利付与選択制御部501が何れかのリクエスト発行制御部にアクセス権を付与すると、権利付与可能数を付与したアクセス権の分だけ減少させる。権利付与数制御部504は、例えばメモリコントローラ80がバッファ解放通知を出力すると、権利付与可能数を解放されたバッファのエントリ数だけ増加させる。また、権利付与数制御部504は、何れかのリクエスト発行制御部がアクセス権を返却すると、権利付与可能数を返却されたアクセス権の分だけ増加させる。権利付与数制御部504は、キャッシュ75がキャッシュにヒットした旨を示す通知を出力した場合も、権利付与可能数を、キャッシュにヒットしたリード要求の分だけ増加させる。
予約型レジスタ群522は、例えば予約バンド幅設定レジスタと、予約型優先レベル設定レジスタとを含む。予約バンド幅設定レジスタは、例えば各マスタ及びキャッシュ75に対して設定された予約バンド幅を格納する。予約バンド幅設定レジスタは、例えば各マスタ及びキャッシュ75の1サブスロットあたりの予約転送量を、予約バンド幅として格納する。予約型優先レベル設定レジスタは、例えば各マスタ及びキャッシュ75の優先レベルを格納する。
マスク信号生成部502は、各マスタ及びキャッシュ75の転送量が、各マスタ及びキャッシュ75の予約転送量に到達したか否かを判断する。マスク信号生成部502は、何れかのマスタ又はキャッシュ75のサブスロットにおける転送量が予約転送量に到達した場合、そのマスタ又はキャッシュ75に対し、そのサブスロットの残り期間についてのマスク信号を生成する。
BE型レジスタ群523は、例えば目標転送量設定レジスタと、更新転送量レジスタと、配付優先度補正期間設定レジスタと、BE型優先レベル設定レジスタとを含む。目標転送量設定レジスタは、例えば各マスタ及びキャッシュ75について、1サブスロットあたりの目標転送量を格納する。更新転送量レジスタは、各マスタ及びキャッシュ75に対して、転送量の累積値を示す累積転送量を格納する。配付優先度補正期間設定レジスタは、目標転送量を補正する期間を示す配付優先度補正期間を格納する。BE型優先レベル設定レジスタは、各マスタ及びキャッシュ75について優先レベルを格納する。
配付優先度計算回路503は、アクセス権の配付に関する優先度を示す配付優先度を計算する。配付優先度計算回路503は、例えば各マスタ及びキャッシュ75の目標転送量に基づいて、配付優先度を計算する。より詳細には、配付優先度計算回路503は、BE型用転送量モニタ512を用いて測定された転送量、目標転送量、累積転送量、及び配付優先度補正期間などを用いて、配付優先度を計算する。
また、配付優先度計算回路503は、サブスロットが経過するごとに、BE型レジスタ群523に含まれる更新転送量レジスタに格納される累積転送量を更新する。より詳細には、配付優先度計算回路503は、更新転送量レジスタから前サブスロットまでの累積転送量を読み出す。配付優先度計算回路503は、読み出した累積転送量とBE型用転送量モニタ512で計測された今サブスロットの転送量とを用いて、今サブスロットまでの累積転送量を計算する。配付優先度計算回路503は、計算した累積転送量を更新転送量レジスタに格納することで、累積転送量を更新する。配付優先度計算回路503は、計算した配付優先度を権利付与選択制御部501に出力する。
権利付与選択制御部501は、予約型レジスタ群522を用いたアクセス権の付与先の選択と、BE型レジスタ群523を用いたアクセス権の付与先の選択とを独立して行う。権利付与選択制御部501は、予約型レジスタ群522を用いたアクセス権の付与先の選択では、例えば予約型レジスタ群522から読み出した予約バンド幅及び優先レベルなどを用いて、アクセス権を付与するリクエスト発行制御部を決定する。権利付与選択制御部501は、BE型レジスタ群523を用いたアクセス権の付与先の選択では、例えば配付優先度計算回路503が計算した配付優先度、及びBE型レジスタ群523から読み出した優先レベルなどを用いて、アクセス権を付与するリクエスト発行制御部を決定する。
[中央バス制御システム2]
図3は、中央バス制御システム60の構成例を示す。中央バス制御システム60は、権利付与選択制御部601、マスク信号生成部602、配付優先度計算回路603、権利付与数制御部604、転送量モニタ610、スロット設定レジスタ621、予約型レジスタ群622、BE型レジスタ群623、及び付与可能最大数設定レジスタ624を有する。中央バス制御システム60の構成は、リフレッシュ制御部505(図2を参照)を含まない点を除けば、中央バス制御システム50の構成と同様でよい。
転送量モニタ610は、バスを通じて転送されるライト要求のトランザクションの転送量を測定する機能部である。転送量モニタ610は、予約型用転送量モニタ611と、BE型用転送量モニタ612を有する。予約型用転送量モニタ611は、バス24W、34W、及び44W(図1を参照)を通じてインターコネクト70に転送されるライト要求のトランザクションの転送量を測定する。BE型用転送量モニタ612も、同様に、バス24W、34W、及び44Wを通じてインターコネクト70に転送されるライト要求のトランザクションの転送量を測定する。スロット設定レジスタ621は、1基本スロット内に存在するサブスロットの数と1サブスロットの期間とを格納する。
権利付与選択制御部601は、リクエスト発行制御部23W、33W、及び43Wに対してアクセス権を付与する。権利付与選択制御部601は、アクセス権の付与に際して、どのリクエスト発行制御部にアクセス権を付与するかを決定(選択)する。権利付与選択制御部601は、アクセス権の付与先のリクエスト発行制御部に、アクセス権を獲得した旨を示すアクセス権付与信号を出力する。権利付与選択制御部601は、例えばアクセス権の付与先のリクエスト発行制御部に出力するアクセス権付与信号をアサートし、アクセス権を付与しないリクエスト発行制御部に出力するアクセス権付与信号はネゲートしたままとする。
権利付与数制御部604は、リクエスト発行制御部に付与できるアクセス権の数(権利付与可能数)を計算する。付与可能最大数設定レジスタ624は、アクセス権の権利付与可能数の最大数を格納する。権利付与可能数の最大数は、例えばキャッシュ75がキャッシュ可能なライト要求の数(ライトデータのサイズ)に応じて設定される。権利付与数制御部604は、例えばキャッシュ75の空きエントリ数に応じて、付与可能最大数設定レジスタ624が格納する最大数を上限として、アクセス権の権利付与可能数を計算する。権利付与選択制御部601は、権利付与数制御部604が計算した権利付与可能数の範囲で、アクセス権の付与を行う。
権利付与数制御部604は、例えば権利付与選択制御部601が何れかのリクエスト発行制御部にアクセス権を付与すると、権利付与可能数を付与したアクセス権の分だけ減少させる。権利付与数制御部604は、例えばキャッシュ75の空きエントリ数が増加した場合、権利付与可能数を増加したエントリの数だけ増加させる。また、権利付与数制御部604は、何れかのリクエスト発行制御部がアクセス権を返却すると、権利付与可能数を返却されたアクセス権の分だけ増加させる。
予約型レジスタ群622は、例えば予約バンド幅設定レジスタと、予約型優先レベル設定レジスタとを含む。予約バンド幅設定レジスタは、例えば各マスタに対して設定された予約バンド幅を格納する。予約バンド幅設定レジスタは、例えば各マスタの1サブスロットあたりのライト要求のトランザクションの予約転送量を、予約バンド幅として格納する。予約型優先レベル設定レジスタは、例えば各マスタの優先レベルを格納する。なお、中央バス制御システム50の予約型レジスタ群522(図2を参照)の予約バンド幅設定レジスタには、例えば、予約型レジスタ群622の予約バンド幅設定レジスタに格納される各マスタの予約転送量の総和が、キャッシュ75から出力されるライト要求のトランザクションに対する予約バンド幅として格納されていてもよい。
マスク信号生成部602は、各サブスロットにおいて、各マスタの転送量が、各マスタの予約転送量に到達したか否かを判断する。マスク信号生成部602は、何れかのマスタのサブスロットにおける転送量が予約転送量に到達した場合、そのマスタに対し、そのサブスロットの残り期間についてのマスク信号を生成する。
BE型レジスタ群623は、例えば目標転送量設定レジスタと、更新転送量レジスタと、配付優先度補正期間設定レジスタと、BE型優先レベル設定レジスタとを含む。目標転送量設定レジスタは、例えば各マスタについて、1サブスロットあたりの目標転送量を格納する。更新転送量レジスタは、各マスタに対して、転送量の累積値を示す累積転送量を格納する。配付優先度補正期間設定レジスタは、目標転送量を補正する期間を示す配付優先度補正期間を格納する。BE型優先レベル設定レジスタは、各マスタについて優先レベルを格納する。
配付優先度計算回路603は、アクセス権の配付に関する優先度を示す配付優先度を計算する。配付優先度計算回路603は、例えば各マスタの目標転送量に基づいて、配付優先度を計算する。配付優先度計算回路603における配付優先度の計算などは、中央バス制御システム50の配付優先度計算回路503と同様でよい。配付優先度計算回路603は、計算した配付優先度を権利付与選択制御部601に出力する。
権利付与選択制御部601は、予約型レジスタ群622を用いたアクセス権の付与先の選択と、BE型レジスタ群623を用いたアクセス権の付与先の選択とを独立して行う。権利付与選択制御部601は、予約型レジスタ群622を用いたアクセス権の付与先の選択では、例えば予約型レジスタ群622から読み出した予約バンド幅及び優先レベルなどを用いて、アクセス権を付与するリクエスト発行制御部を決定する。権利付与選択制御部601は、BE型レジスタ群623を用いたアクセス権の付与先の選択では、例えば配付優先度計算回路603が計算した配付優先度、及びBE型レジスタ群623から読み出した優先レベルなどを用いて、アクセス権を付与するリクエスト発行制御部を決定する。
[動作手順]
図4は、中央バス制御システム50におけるアクセス権付与の動作手順を示す。中央バス制御システム50の権利付与数制御部504(図2を参照)は、メモリコントローラ80からバッファ解放通知を受け取ったか否かを判断する(ステップA1)。権利付与数制御部504は、ステップA1でバッファ解放通知を受け取ったと判断すると、バッファが解放された分だけ権利付与可能数を増加させる(ステップA2)。権利付与数制御部504は、ステップA1でバッファ解放通知を受け取っていないと判断した場合は、権利付与可能数を変化させない。
権利付与数制御部504は、アクセス権が返却されたか否かを判断する(ステップA3)。権利付与数制御部504は、例えばリクエスト発行制御部23R、33R、43R、及び78の少なくとも1つからアクセス権返却信号が出力された場合は、アクセス権が返却されたと判断する。また、権利付与数制御部504は、キャッシュ75からキャッシュにヒットした旨を示す通知が出力された場合も、アクセス権が返却されたと判断する。権利付与数制御部504は、ステップA3でアクセス権が返却されたと判断すると、権利付与可能数を、返却されたアクセス権の分だけ増加させる(ステップA4)。権利付与数制御部504は、ステップA3でアクセス権が返却されていない判断した場合は、権利付与可能数を変化させない。ステップA1とステップA3とは、どちらを先に実施してもよい。
権利付与選択制御部501は、アクセス権を付与することが可能か否かを判断する(ステップA5)。権利付与選択制御部501は、ステップA5では、権利付与数制御部504から権利付与可能数を取得し、権利付与可能数に基づいてアクセス権の付与が可能か否かを判断する。権利付与選択制御部501は、例えば権利付与可能数が1以上であればアクセス権の付与が可能と判断する。権利付与選択制御部501は、権利付与可能数が0であれば、アクセス権の付与が可能ではないと判断する。権利付与選択制御部501は、例えばサイクルごとに、アクセス権の付与が可能か否かを判断する。アクセス権の付与が可能ではないと判断された場合、処理はステップA1に戻る。
権利付与選択制御部501は、ステップA5でアクセス権の付与が可能と判断した場合、アクセス権の付与先のリクエスト発行制御部を選択する(ステップA6)。権利付与選択制御部501は、ステップA6では、マスタA20、マスタB30、マスタC40、及びキャッシュ75に対応するリクエスト発行制御部23R、33R、43R、及び78のうち、どのリクエスト発行制御部にアクセス権を付与するかを決定する。権利付与選択制御部501は、例えば予約型レジスタ群522又はBE型レジスタ群523を用いた選択処理により、権利付与先のリクエスト発行制御部を選択(決定)する。
権利付与選択制御部501は、ステップA6で選択した付与先に、アクセス権を付与する(ステップA7)。権利付与選択制御部501は、ステップA7では、アクセス権を付与するリクエスト発行制御にアクセス権付与信号を出力することで、アクセス権を付与する。アクセス権付与信号を受信したリクエスト発行制御部は、対応するマスタ又はキャッシュ75からリード要求又はライト要求を受け付けていた場合は、そのリード要求又はライト要求をメモリコントローラ80側に出力する。リクエスト発行制御部は、アクセス権付与信号を受信した場合で、かつ対応するマスタ又はキャッシュ75からリード要求又はライト要求を受け付けていなかった場合は、アクセス権返却信号を中央バス制御システム50に出力する。
権利付与数制御部504は、権利付与選択制御部501がリクエスト発行制御部にアクセス権を付与すると、権利付与可能数を1つ減少させる(ステップA8)。その後、処理はステップA1に戻り、バッファ81の空き状況、及びアクセス権の返却に基づく権利付与可能数の計算と、権利付与可能数の範囲内でのアクセス権の付与とが、繰り返し行われる。
図5は、中央バス制御システム60におけるアクセス権付与の動作手順を示す。中央バス制御システム60の権利付与数制御部604(図3を参照)は、キャッシュ75の空き状況を監視し、キャッシュ75のエントリが解放されたか否かを判断する(ステップB1)。権利付与数制御部604は、ステップB1でキャッシュ75のエントリが解放されたと判断すると、解放されたエントリの分だけ権利付与可能数を増加させる(ステップB2)。権利付与数制御部604は、ステップB1でキャッシュ75のエントリが解放されていないと判断した場合は、権利付与可能数を変化させない。
権利付与数制御部604は、リクエスト発行制御部23W、33W、又は43Wからアクセス権が返却されたか否かを判断する(ステップB3)。権利付与数制御部604は、例えばリクエスト発行制御部23W、33W、及び43Wの少なくとも1つからアクセス権返却信号が出力された場合は、アクセス権が返却されたと判断する。権利付与数制御部604は、ステップB3でアクセス権が返却されたと判断すると、権利付与可能数を、返却されたアクセス権の分だけ増加させる(ステップB4)。権利付与数制御部604は、ステップB3でアクセス権が返却されていない判断した場合は、権利付与可能数を変化させない。ステップB1とステップB3とは、どちらを先に実施してもよい。
権利付与選択制御部601は、アクセス権を付与することが可能か否かを判断する(ステップB5)。権利付与選択制御部601は、ステップB5では、権利付与数制御部604から権利付与可能数を取得し、権利付与可能数に基づいてアクセス権の付与が可能か否かを判断する。権利付与選択制御部601は、例えば権利付与可能数が1以上であればアクセス権の付与が可能と判断する。権利付与選択制御部601は、権利付与可能数が0であれば、アクセス権の付与が可能ではないと判断する。権利付与選択制御部601は、例えばサイクルごとに、アクセス権の付与が可能か否かを判断する。アクセス権の付与が可能ではないと判断された場合、処理はステップB1に戻る。
権利付与選択制御部601は、ステップB5でアクセス権の付与が可能と判断した場合、アクセス権の付与先のリクエスト発行制御部を選択する(ステップB6)。権利付与選択制御部601は、ステップB6では、マスタA20、マスタB30、及びマスタC40に対応するリクエスト発行制御部23W、33W、及び43Wのうち、どのマスタに対応するリクエスト発行制御部にアクセス権を付与するかを決定する。権利付与選択制御部601は、例えば予約型レジスタ群622又はBE型レジスタ群623を用いた選択処理により、権利付与先のリクエスト発行制御部を選択(決定)する。
権利付与選択制御部601は、ステップB6で選択した付与先に、アクセス権を付与する(ステップB7)。権利付与選択制御部601は、ステップB7では、アクセス権を付与するリクエスト発行制御にアクセス権付与信号を出力することで、アクセス権を付与する。アクセス権付与信号を受信したリクエスト発行制御部は、対応するマスタからライト要求を受け付けていた場合は、そのライト要求をメモリコントローラ80側に出力する。リクエスト発行制御部は、アクセス権付与信号を受信した場合で、かつ対応するマスタからライト要求を受け付けていなかった場合は、アクセス権返却信号を中央バス制御システム60に出力する。
権利付与数制御部604は、権利付与選択制御部601がリクエスト発行制御部にアクセス権を付与すると、権利付与可能数を1つ減少させる(ステップB8)。その後、処理はステップB1に戻り、キャッシュ75の空き状況、及びアクセス権の返却に基づく権利付与可能数の計算と、権利付与可能数の範囲内でのアクセス権の付与とが行われる。
[まとめ]
本実施形態では、電子装置10は、インターコネクト70とメモリコントローラ80との間に、ライトバックを行うキャッシュ75を有する。各マスタが発行したライト要求はキャッシュ75に一時的に留められ、キャッシュ75は、例えばメモリコントローラ80に空きがある場合に、ライトバックを行う。キャッシュ75は、データバッファとしての役割が大きく、リードデータがキャッシュにヒットする期待値は小さい。そこで、本実施形態では、中央バス制御システム50が行う各マスタのリード要求に対するアクセス制御において、リードデータがキャッシュにヒットせず、リード要求がメモリコントローラ80へ到達することを前提としたアクセス制御を行う。別の言い方をすれば、中央バス制御システム50は、リード要求がメモリコントローラ80のバッファ81に到達することを前提に、各マスタのリード要求に対してアクセス権を付与する。
本実施形態では、メモリ90に対するアクセス要求を、キャッシュ75に一時的に留められるアクセス要求と、メモリコントローラ80のバッファ81に遅滞なく格納されるアクセス要求とに分け、それぞれに対して個別にアクセス制御を行う。より詳細には、本実施形態において、中央バス制御システム50は、キャッシュ75によって遮られることなくメモリコントローラ80のバッファ81に到達することが予見される各マスタが発行したリード要求、及びキャッシュ75から出力されるライト要求に対してアクセス制御を行う。また、中央バス制御システム60は、キャッシュ75に一時的に記憶される各マスタが発行したライト要求に対してアクセス制御を行う。
仮に、特許文献1と同様に、1つの中央バス制御システムを用いて、各マスタとキャッシュ75との間でのみアクセス制御を実施したとすると、キャッシュ75がライトバックを行った場合にバッファ81が占有され、中央バス制御システムがバッファ81の空き状況を制御することができない事態が生じる可能性がある。その場合、メモリコントローラ80によって受け付けられるアクセス要求を、中央バス制御システムから制御することができなくなり、特に各マスタが発行するリード要求に対してレイテンシの保証が困難となる。これに対し、本実施形態では、中央バス制御システム50が、各マスタが発行するリード要求、及びキャッシュ75が行うライトバック(ライト要求)に対してバッファ81の空き状況に応じてアクセス制御を行う。このようにすることで、バッファ81の空き状況を中央バス制御システム50から制御することができ、各マスタが発行するリード要求に対してレイテンシを保証することが可能となる。
また、中央バス制御システム60は、各マスタが発行したライト要求に対して、キャッシュ75の空き状況に応じてアクセス制御を行う。ライト要求を発行したマスタは、ライト要求がキャッシュ75に受け付けられた段階で、ライト要求に対する応答を受け取ることができる。中央バス制御システム60は、例えばキャッシュ75が受け付け可能な範囲で、各マスタが発行したライト要求に対してアクセス権を付与する。このようにすることで、マスタが発行するライト要求に対しても、レイテンシを保証することが可能となる。
[実施形態2]
次いで、実施形態2を説明する。本実施形態係る半導体装置を含む電子装置の構成は、図1に示す実施形態に係る電子装置10の構成と同様でよい。図6は、本実施形態において用いられる中央バス制御システム(中央バス制御システム1)の構成例を示す。本実施形態において用いられる中央バス制御システム50aは、図2に示される実施形態1で用いられた中央バス制御システム50の構成に加えて、配付フェーズ設定レジスタ531、配付オーバラップ設定レジスタ532、及び配付フェーズ計算回路533を有する。その他の点は、実施形態1と同様でよい。
本実施形態では、中央バス制御システム50aは、各マスタのリード要求に対応するリクエスト発行制御部23R、33R、及び43Rと、キャッシュ75のライト要求に対応するリクエスト発行制御部78とに対し、期間を分けて排他的にアクセス権を付与する。中央バスシステム50aは、リクエスト発行制御部23R、33R、及び43Rに対してアクセス権を付与する期間では、リクエスト発行制御部78に対してアクセス権を付与しない。逆に、中央バス制御システム50aは、リクエスト発行制御部78に対してアクセス権を付与する期間では、リクエスト発行制御部23R、33R、及び43Rに対してアクセス権を付与しない。
本実施形態では、中央バス制御システム50aにおいて、例えばサブスロットの単位で、リクエスト発行制御部23R、33R、及び43Rに対して、つまりリード要求に対してアクセス権を付与する期間と、リクエスト発行制御部78に対して、つまりライト要求に対してアクセス権を付与する期間とが設定される。配付フェーズ設定レジスタ531は、どのサブスロットが、リード要求に対してアクセス権を付与する期間であるか、又はライト要求に対してアクセス権を付与する期間であるかを指定するための情報を記憶する。
本実施形態において、中央バス制御システム50aは、リード要求に対してアクセス権を付与するサブスロット(以下、リード期間サブスロットとも呼ぶ)とライト要求に対してアクセス権を付与するサブスロット(以下、ライト期間サブスロットとも呼ぶ)との切替えにおいて、その切替えのタイミングよりも所定時間前のタイミングから、抑止されていたアクセス権の付与を解除してもよい。配付オーバラップ設定レジスタ532は、リード期間サブスロットとライト期間サブスロットとの切替えにおいて、抑止されていたアクセス権の付与が解除される所定時間の長さを設定する。例えば、配付オーバラップ設定レジスタ532は、リード期間サブスロットとライト期間サブスロットとの切替えにおいて、現在のサブスロットの終了の何サイクル前から、リード要求とライト要求との双方に対してアクセス権の付与が許可されるかを示す情報を記憶する。配付オーバラップ設定レジスタ532には、リード期間サブスロットからライト期間サブスロットへの切替えと、ライト期間サブスロットからリード期間サブスロットへの切替えとで、異なる時間が設定可能であってもよい。
配付フェーズ計算回路533は、配付フェーズ設定レジスタ531に記憶された情報に従って、例えば、現在のサブスロットが、リード期間サブスロットであるか、又は、ライト期間サブスロットであるかを示す情報を権利選択制御部501に通知する。権利付与選択制御部501は、リード期間サブスロットでは、リクエスト発行制御部78をアクセス権の付与先の選択の対象から除外する。また、権利付与選択制御部501は、ライト期間サブスロットでは、リクエスト発行制御部23R、33R、及び43Rを、アクセス権の付与先の選択の対象から除外する。
配付フェーズ計算回路533は、配付オーバラップ設定レジスタ532を参照し、リード期間サブスロットとライト期間サブスロットとの切替えのタイミングから所定時間前のタイミングになると、リード要求とライト要求との双方に対するアクセス権の付与が可能である旨を権利付与選択制御部501に通知する。権利付与選択制御部501は、この通中を受け取ると、現在のサブスロットが終了するまで、リクエスト発行制御部23R、33R、43R、及び78の中から、アクセス権の付与先を選択する。
[設定例]
図7は、リード期間サブスロットとライト期間サブスロットとの設定例を示す。図7の例では、1つの基本スロットは6つのサブスロットを含んでいる。配付フェーズ設定レジスタ531は、例えばサブスロット1、2、3、及び5がリード期間サブスロットで、サブスロット4及び6がライト期間サブスロットである旨を示す情報を記憶する。その場合、権利付与選択制御部501は、サブスロット1、2、3、及び5では、リード要求に対してアクセス権を付与し、ライト要求に対するアクセス権の付与を抑止する。また、権利付与選択制御部501は、サブスロット4及び6では、ライト要求に対してアクセス権を付与し、リード要求に対するアクセス権の付与を抑止する。
配付フェーズ計算回路533は、サブスロット3からサブスロット4への切替えに際して、そのタイミングよりも配付オーバラップ設定レジスタ532に設定された所定時間(オーバラップ時間)前のタイミングで、リード要求とライト要求との双方に対するアクセス権の付与が可能である旨を権利付与選択制御部501に通知する。権利付与選択制御部501は、その通知を受けると、例えばリード期間サブスロットであるサブスロット3において、抑止されていたライト要求も、アクセス権付与の対象に加える。
権利付与選択制御部501は、ライト期間サブスロットであるサブスロット4からリード期間サブスロットであるサブスロット5への切替えにおいても、同様に、切替えのタイミングの所定時間前から、抑止されていたリード要求をアクセス権付与の対象に加える。また、権利付与選択制御部501は、リード期間サブスロットであるサブスロット5からライト期間サブスロットであるサブスロット6への切替えにおいて、切替えのタイミングの所定時間前から、抑止されていたライト要求をアクセス権付与の対象に加える。
ここで、アクセス権が付与されたリード要求は、インターコネクト70及びキャッシュ75などを介してメモリコントローラ80に到達するのに対し、ライト要求はメモリコントローラ80にすぐに到達する。このように、リード要求とライト要求とでは、アクセス権が付与されてから、メモリコントローラ80に到達するまでのレイテンシが異なる。各サブスロットにおいて、アクセス権の配付を完全に排他的に行うと、レイテンシの違いに起因して、メモリコントローラ80のバッファ81が空になる可能性がある。リードとライトとの切替えタイミングまで、所定時間だけリード要求とライト要求との双方にアクセス権を付与することで、バッファ81が空になる可能性を低下させることができる。
[まとめ]
本実施形態では、中央バス制御システム50aは、リード要求とライト要求とに対し、期間を分けて排他的にアクセス権を付与する。例えばDDRなどのメモリ80へのアクセスでは、アクセス種別をリードとライトとの間で切り替える場合、アクセス種別の切替え時に一定時間だけメモリアクセスしない期間を設ける必要がある。このため、メモリアクセスでは、アクセス種別が同種のものを連続してアクセスした方が、効率よくメモリアクセスできる。本実施形態では、リード期間サブスロットではリード要求に対してアクセス権を付与し、ライト期間サブスロットではライト要求に対してアクセス権を付与する。このようにすることで、同種のアクセス種別のアクセス要求がメモリコントローラ80に連続して到達することとなり、メモリコントローラ80内のスケジューリング効率などを向上させることができる。
[変形例]
本実施形態において、中央バス制御システム50aは、キャッシュ75からキャッシュの空きエントリ数を取得し、空きエントリ数に応じて、基本スロット内における、リード期間サブスロットの数とライト期間サブスロットの数とを動的に変更してもよい。図8(a)及び(b)は、それぞれリード期間サブスロットとライト期間サブスロットとの設定例を示す。図8(a)では、サブスロット1、2、3、4、及び5がリード期間サブスロットに設定され、サブスロット6がライト期間サブスロットに設定される。一方、図8(b)では、サブスロット1、3、及び5がリード期間サブスロットに設定され、サブスロット2、4、及び6がライト期間サブスロットに設定される。
例えば、配付フェーズ設定レジスタ531(図6を参照)には、図7に示される設定が記憶されているとする。配付フェーズ計算回路533は、キャッシュ75から空きエントリ数を取得し、空きエントリ数が上側しきい値以上であるか、或いは下側しきい値以下であるかを判断する。配付フェーズ計算回路533は、平常時、例えば空きエントリ数が上側しきい値よりの少なく、かつ下側しきい値よりも多い場合は、図7に示される設定で、リード期間サブスロットとライト期間サブスロットとを設定する。
配付フェーズ計算回路533は、空きエントリ数が上側しきい値以上の場合、つまり空きエントリ数が多い場合は、ライト期間サブスロットの数を減らし、例えば図8(a)に示される設定で、リード期間サブスロットとライト期間サブスロットとを設定する。配付フェーズ計算回路533は、空きエントリ数が下側しきい値以下の場合、つまり空きエントリ数が少ない場合は、ライト期間サブスロットの数を増やし、例えば図8(b)に示される設定で、リード期間サブスロットとライト期間サブスロットとを設定する。
上記のようにすることで、空きエントリ数が多い場合、つまりキャッシュ75に記憶されるライトバックすべきライト要求が少ない場合は、基本スロット内で、リード要求に対して平常時に比べてより多くのアクセス権を付与できる。一方、空きエントリ数が少ない場合、つまりキャッシュ75にライトバックすべきライト要求が多く記憶されている場合は、基本スロット内で、ライト要求に対して平常時に比べてより多くのアクセス権を付与できる。リード期間サブスロットの数とライト期間サブスロットとの数とを、キャッシュ75の空きエントリ数に応じて動的に制御することで、例えばライトバックが必要ないときに、リード要求に多くアクセス権を配付してアクセスの効率を向上させることができる。
[実施形態3]
続いて、実施形態3を説明する。本実施形態に係る電子装置の構成は、図1に示される実施形態1に係る電子装置10の構成と同様でよい。図9は、本実施形態において用いられる中央バス制御システム(中央バス制御システム2)の構成を示す。本実施形態において用いられる中央バス制御システム60aは、権利付与選択制御部601、権利付与数制御部604、スロット設定レジスタ621、付与可能最大数設定レジスタ624、及びQoSレジスタ群625を有する。権利付与数制御部604、スロット設定レジスタ621、及び付与可能最大数設定レジスタ624は、実施形態1で説明したものと同様でよい。
実施形態1では、中央バス制御システム60(図3を参照)は、予約型レジスタ群622及びBE型レジスタ群623を用いて、アクセス権の付与先のマスタ(それに対応したリクエスト発行制御部)を選択する。これに対し、本実施形態では、中央バス制御システム60aは、キャッシュ75の空きエントリ数に応じて、複数のマスタのうち、どのマスタのライト要求に対してアクセス権を付与するかを決定する。
本実施形態に係る中央バス制御システム60aにおいて、QoSレジスタ群625は、各マスタと、キャッシュ75の空きエントリ数の条件とを対応付けて記憶する。権利付与選択制御部601は、キャッシュ75の空きエントリ数を取得し、取得した空きエントリ数と、QoSレジスタ群625に記憶された情報とに基づいて、アクセス権の付与先のマスタを決定する。権利付与選択制御部601は、例えば取得した空きエントリ数が、QoSレジスタ群625に記憶された条件を満たすマスタの中から、アクセス権を付与するマスタを選択する。このようにすることで、例えばあるマスタについては空きエントリ数の多少にかかわらずアクセス権の付与の対象としつつ、他のマスタについては空きエントリ数が多い場合にのみアクセス権の付与の対象にすることができる。
[設定例]
図10は、キャッシュ75の空きエントリ数のレベルを示す。例えば、キャッシュ75の空きエントリ数は複数のレベルを用いて管理される。図10に示す例では、キャッシュ75の空きエントリ数は、最小のレベル1から、最大のレベル4までの4つのレベルで管理される。権利付与選択制御部601は、取得したキャッシュ75の空きエントリ数がどのレベルであるかを判定する。権利付与選択制御部601は、例えば空きエントリ数がしきい値A以下の場合、空きエントリ数のレベルがレベル1である判定する。権利付与選択制御部601は、例えば空きエントリ数がしきい値Aより多く、かつしきい値B以下の場合、空きエントリ数のレベルがレベル2である判定する。権利付与選択制御部601は、例えば空きエントリ数がしきい値Bよりも多く、かつしきい値C以下の場合、空きエントリ数のレベルがレベル3である判定する。権利付与選択制御部601は、例えば空きエントリ数がしきい値C以上の場合、空きエントリ数のレベルがレベル4である判定する。QoSレジスタ群625は、レベル判定に用いられるしきい値を格納するレジスタも含んでいてもよい。
QoSレジスタ群625は、例えば、各マスタと、空きエントリ数のレベルとを対応付けて記憶する。QoSレジスタ群625に記憶される空きエントリ数のレベルは、対応するマスタがアクセス権の付与の対象となる条件を示す。権利付与選択制御部601は、QoSレジスタ群625を参照し、QoSレジスタ群625に記憶される空きエントリ数のレベルが、取得した空きエントリ数のレベル以下のマスタの中から、アクセス権の付与先のマスタを選択する。例えば取得した空きエントリ数のレベルがレベル2の場合、権利付与選択制御部601は、QoSレジスタ群625において、レベル1及びレベル2に対応付けて記憶されたマスタの中から、アクセス権の付与先のマスタを選択する。
図11は、空きエントリ数のレベルとアクセス権の付与対象のマスタとの関係を示す。ここでは、マスタAからマスタDの4つのマスタを考える。QoSレジスタ群625は、例えばマスタAについてレベル2を、マスタBについてレベル1を、マスタCについてレベル4を、マスタDについてレベル3を、アクセス権の付与の対象となる条件として記憶する。その場合、権利付与選択制御部601は、取得した空きエントリ数のレベルがレベル1ならば、マスタBのみをアクセス権の付与の対象とし、空きエントリ数のレベルがレベル2であればマスタA及びBをアクセス権の付与の対象とする。また、権利付与選択制御部601は、取得した空きエントリ数のレベルがレベル3であれば、マスタA、B、及びDをアクセス権の付与の対象とし、空きエントリ数のレベルがレベル4でれば、全てのマスタをアクセス権の付与の対象とする。
[まとめ]
本実施形態では、権利付与選択制御部601は、キャッシュ75の空きエントリ数に応じて、アクセス権の付与対象のマスタを決定し、付与対象のマスタの中からアクセス権の付与先のマスタを選択する。例えばQoSレジスタ群625には、ビデオ入力を行うマスタについてキャッシュ75の空き状況にかかわらず常にアクセス権の付与対象とするための条件が記憶され、他のマスタについては、キャッシュ75が一定以上空いている場合にのみアクセス権の付与対象とするための条件が記憶される。その場合、キャッシュ75の空きエントリ数が少ないときに、ビデオ入力を行うマスタ以外のマスタに対するアクセス権の付与が停止されることで、ビデオ入力を行うマスタのバッファがオーバフローしないことを保証しやすくなる。空きエントリ数のレベルに応じてアクセス権の付与先のマスタを選択することに代えて、QoSレジスタ群に直接に空きエントリ数のしきい値を設定し、空きエントリ数がしきい値以上であるか否かに基づいて、アクセス権の付与先のマスタを選択してもよい。
[実施例4]
引き続き、実施形態4を説明する。本実施形態では、半導体装置におけるバスの回路情報の生成を、各種設定情報から生成するバスジェネレータを説明する。図12は、バスジェネレータ800のハードウェア構成例を示す。バスジェネレータ800は、例えば、CPU801、メモリ802、キーボード804、マウス805、モニタ806、及びバス807を含むコンピュータ装置として構成される。メモリ802には、コンピュータ装置をバスジェネレータ800として動作させるためのバス生成ツール803が記憶される。コンピュータ装置において、CPU801がメモリ802から読み出されたバス生成ツール803に従って処理を実行することで、コンピュータ装置をバスジェネレータ800として動作させることができる。
図13は、バス設計の概略的なフローを示す。まず、市場におけるユースケースなどが想定され(ステップS101)、バスに求められる性能が検討される(ステップS102)。次いで、必要性能などに応じてバス構造が検討される(ステップS103)。バス構造の検討は、例えば中央バス制御システム50及び60(図1を参照)を用いるか否かの検討を含む。
バス構造が決まると、決定したバス構造に対して必要な設定情報がバスジェネレータに入力される(ステップS104)。バスジェネレータは、バスの回路情報を生成し、出力する(ステップS105)。回路情報は、例えばRTL(Register Transfer Level)で記述される。その後、バスの回路情報は論理合成され(ステップS106)、次いでレイアウト設計が行われる(ステップS107)。ステップS104及びS105は、バスジェネレータを用いて設計が行われるフェーズを示す。
図14は、設定情報の入力における画面例を示す。例えばモニタ806(図12を参照)には、設定情報の入力を促す画面が表示され、ユーザは、キーボード804やマウス805を用いて、各種設定をバスジェネレータ800に与える。例えば、図14に示される画面において、ユーザがメニュー901から「QoS」を選択すると、サブメニュー902が表示される。ユーザがサブメニュー902において「アービタ」を選択すると、アービタの方式などの選択画面903が表示される。ユーザは、選択画面903において、例えば中央制御方式を選択し、またキャッシュの有無などを選択することができる。
ユーザは、例えばメモリに対するアクセス要求を出力するマスタに関する情報として、マスタのアクセス先の情報、使用するクロックの情報、バス幅に関する情報、及び機能安全に関する情報などをバスジェネレータ800に入力する。また、マスタからアクセスされるスレーブに関する情報として、アドレス領域の情報、使用するクロックの情報、バス幅に関する情報、及び機能安全に関する情報などを入力する。さらに、アービタに関する情報として、QoS方式を指定する情報、及び各方式の詳細設定などを入力する。
図15は、バスジェネレータの機能ブロックを示す。バスジェネレータ800は、機能ブロックとして、バス構造情報生成部811、バス部品生成部812、中央バス制御部生成部813、サブバス制御部生成部814、及びマージ部815を有する。バスジェネレータ800には、クロック情報101、接続情報102、スレーブ情報103、マスタ情報104、キャッシュ情報106、QoS情報初期値107、DDRコントローラバッファ情報108、及びサブ機能オプション109が入力される。これら情報は例えば図14に示される設定情報の入力画面を通じて入力される。
バス構造情報生成部811は、クロック情報101、接続情報102、スレーブ情報103、及びマスタ情報104などを用いて、マスタとスレーブとの間を接続するバスの構造情報を生成する。バス部品生成部812は、バス構造情報生成部811が生成したバスの構造情報と、サブIP(Intellectual Property)群記憶部105に記憶された各種機能ブロックの回路情報とに基づいて、各種バス部品の回路情報110を生成する。サブIP群記憶部105に記憶される各種機能ブロックの回路情報は、例えば各種IPコアを提供するベンダーから提供される。バス部品生成部812は、例えばRTLで記述されるバス部品の回路情報110を生成する。
中央バス制御部生成部813には、バス構造情報生成部811が生成したバスの構造情報と、キャッシュ情報106、QoS情報初期値107、DDRコントローラバッファ情報108、及びサブ機能オプション109と、サブIP群記憶部105に記憶された各種機能ブロックの回路情報とが入力される。中央バス制御部生成部813は、マスタが出力するリード要求、及びキャッシュのライトバックと、マスタが出力したライト要求とに対してアクセス制御を行う中央バス制御システムの回路情報111を生成する。中央バス制御部生成部813は、例えばRTLで記述される中央バス制御システムの回路情報111を生成する。中央バス制御システムの回路情報111は、例えば図1に示される中央バス制御システム50及び60の回路構成を示す。
サブバス制御部生成部814は、中央バス制御システムの回路情報111を用いて、中央バス制御システムの制御に基づいて動作するサブバス制御システムの回路情報112を生成する。サブバス制御部生成部814は、例えばRTLで記述されるサブバス制御システムの回路情報112を生成する。サブバス制御システムの回路情報112は、例えば図1に示されるサブバスコントローラシステム22R、32R、42R、22W、32W、42W及び77の回路構成を示す。マージ部815は、バス部品の回路情報110と、中央バス制御システムの回路情報111と、サブバス制御システムの回路情報112とをマージし、バスの回路情報113を出力する。バスの回路情報113は、例えば図1に示される電子装置10における、各マスタからメモリ90までの間のバスに関する回路部分をRTLで記述したものである。
[まとめ]
本実施形態では、バスシステムの生成にバスジェネレータ800が用いられる。バスジェネレータ800に各種設定情報などを入力することで、例えば図1に示される電子装置10の各マスタからメモリ90までの間のバスシステムを自動生成することができる。
[実施形態5]
実施形態5を説明する。図16は、本実施形態に係る半導体装置を含む電子装置を示す。図1に示される実施形態1に係る電子装置10では、中央バス制御システム50は、キャッシュ75のライトバックに対応したリクエスト発行制御部78に対して付与するアクセス権を制御することで、ライトバックに対するアクセス制御を行う。これに対し、本実施形態に係る電子装置10aでは、中央バス制御システム50bは、リクエスト発行制御部78へ出力するアクセス許可を示す信号を制御することで、ライト要求バックに対するアクセス制御を実施する。その他の点は、実施形態1から3と同様でよい。
本実施形態において、中央バス制御システム50bは、許可期間通知を、アクセス許可を示す信号としてリクエスト発行制御部78に出力する。許可期間通知は、アクセスが許可される場合にアサートされ、アクセスが許可されない場合にネゲートされる。ライトリクエスト発行制御部78は、中央バス制御システム50bから出力される許可期間通知がアサートされている場合は、キャッシュ75から出力されたライト要求をメモリコントローラ80へ出力する。リクエスト発行制御部78は、許可期間通知がネゲートされている場合は、ライト要求のメモリコントローラ80への出力を抑止する。リクエスト発行制御部78は、ライト要求をメモリコントローラ80に出力すると、その旨を示す転送通知を中央バス制御システム50bに出力する。
図17は、中央バス制御システム50bの構成例を示す。中央バス制御システム50bは、権利付与選択制御部501、マスク信号生成部502、配付優先度計算回路503、権利付与数制御部504、リフレッシュ制御部505、転送量モニタ510、スロット設定レジスタ521、予約型レジスタ群522、BE(Best Effort)型レジスタ群523、及び付与可能最大数設定レジスタ524を有する。本実施形態において、中央バス制御システム50bの予約型レジスタ群522は、キャッシュ75についての予約バンド幅などの情報を記憶していなくてよく、BE型レジスタ群523は、キャッシュ75についての目標転送量などの情報を記憶していなくてよい。また、転送量モニタ510は、リクエスト発行制御部78とメモリコントローラ80との間のバス79Wにおけるトランザクションの転送量をモニタしなくてもよい(図16も参照)。
本実施形態に係る中央バス制御システム50bにおいて、権利付与選択制御部501が行うリクエスト発行制御部23R、33R、及び43Rに対するアクセス権の付与は、実施形態1において説明したものと同様でよい。権利付与選択制御部501は、リクエスト発行制御部78に対しては、許可期間通知を出力する。権利付与数制御部504は、リクエスト発行制御部78から、転送通知を受信する。権利付与数制御部504は、転送通知を受信すると、キャッシュ75のライトバックに対してアクセス権が付与されたとみなして、権利付与可能数を転送されたライト要求の分だけ減らす。権利付与選択制御部501は、権利付与可能数の範囲で、リクエスト発行制御部23R、33R、及び43Rに対してアクセス権を付与する。
[まとめ]
実施形態1に係る中央バス制御システム50が行うライト要求のアクセス権の付与において、アクセス権の付与先は、キャッシュ75のライトバックのみ、つまりリクエスト発行制御部78のみである。キャッシュのライトバックのアクセス許可を、アクセス権に基づいて実施する場合、アクセス権の付与先が1箇所のみであるため、アクセス権が連続して付与されることが多いと考えられる。DDRメモリに対するアクセスはバーストアクセスであることが一般的であり、またライト要求ではデータセルの転送もあるため、リクエスト発行制御部78に対して連続してアクセス権を付与したとしても、使用しきれずに、中央バス制御システム50に返却されることが多くなると考えられる。その場合、無駄なアクセス権の付与が増え、リード要求に対して付与可能なアクセス権が減る可能性がある。本実施形態では、中央バス制御システム50bは、リクエスト発行制御部78に出力する許可期間通知を用いてライト要求に対するアクセス制御を実施する。本実施形態では、リクエスト発行制御部78がライトリクエストをメモリコントローラ80に出力した場合に権利付与可能数を減らしており、上記した無駄なアクセス権の付与を回避することができる。
[実施形態6]
実施形態6を説明する。本実施形態に係る電子装置の構成は、図1に示される実施形態1に係る電子装置10の構成と同様でよい。本実施形態では、実施形態2と同様に、各マスタのリード要求に対応するリクエスト発行制御部23R、33R、及び43Rと、キャッシュ75のライト要求に対応するリクエスト発行制御部78とに対し、期間を分けて排他的にアクセス権が付与される。本実施形態では、図6に示される実施形態2において用いられる中央バス制御システム50aが、中央バス制御システム1として用いられる。本実施形態において、中央バス制御システム50aのリフレッシュ制御部505は、リード要求に対してアクセス権が付与される期間と、ライト要求に対してアクセス権が付与される期間とを切り替えるタイミングに合わせて、メモリ90にリフレッシュ要求を出力する。その他の点は、実施形態2と同様でよい。
[動作例]
図18は、メモリ90へのアクセスの動作例を示す。図18(a)は、リードとライトとの切替えに合わせてリフレッシュを行わない場合の動作例を示し、(b)は、リードとライトとの切替えに合わせてリフレッシュを行った場合の動作例を示す。
図18(a)に示されるように、例えば時刻t11でメモリ90に対してリードでアクセスを開始し、その後アクセス種別をライトに切り替える場合を考える。メモリ90に対するアクセス種別をリードからライトに切り替える場合、リードの終了後、ライトを開始するまでに、一定の期間だけメモリアクセスを行わない期間を設ける必要がある。つまり、リードとライトとの切替えに、R(Read)/W(Write)切替えペナルティが発生する。図18(a)では、時刻t12でリードを終了してから時刻t13でライトを開始するまでの時間T1が、R/W切替えペナルティとなる。
時刻t13でアクセス種別をライトへ切り替えた後、更にアクセス種別をリードに切り替える場合も、時刻t14でライトを終了してから時刻t15でリードを開始するまでの時間T1だけ、R/W切替えペナルティが発生する。時刻t16でリフレッシュを開始した場合、リフレッシュ期間中もメモリ90へのアクセスができず、時刻t16からリフレッシュが終了する時刻t17までの時間T2がリフレッシュペナルティとなる。リフレッシュにより中断したリードのメモリ90へのアクセスは時刻t17で再開され、時刻t18で終了する。
次いで、図18(b)に示されるように、例えば時刻t21でメモリ90に対してリードでアクセスを開始し、その後アクセス種別をライトに切り替える場合を考える。この場合も、図18(a)の例と同様に、時刻t22から時刻t23までの時間T1だけ、R/W切替えペナルティが発生する。図18(b)の例では、時刻t23でアクセス種別がライトへ切り替えられた後、時刻t24でアクセス種別の切替えとリフレッシュとが同時に実施される。この場合、時刻t24から時刻t25までの時間T2(リフレッシュペナルティ)が、R/W切替えペナルティ(T1)を隠蔽し、別途、R/W切替えペナルティ分だけ待たなくても、時刻t25で、アクセス種別をリードに切り替えることができる。時刻t25で開始されたリードのメモリ90へのアクセスは、時刻t26で終了する。
図18(a)の例では、時刻t11から時刻t18までの間に、アクセス種別の切替えが2回あり、リフレッシュ動作が1回ある。図18(a)の例では、R/W切替えペナルティが2回あり、リフレッシュペナルティが1回あるため、時刻t11から時刻t18までの間に、メモリ90へのアクセスができない期間が2×T1+T2だけある。図18(b)の例においても、時刻t21から時刻t26までの間に、アクセス種別の切替えは2回あり、リフレッシュが1回ある。しかしながら、図18(b)の例では、リフレッシュペナルティがR/W切替えペナルティを隠蔽するため、時刻t21から時刻t26までの間に、メモリ90へアクセスできない期間はT1+T2で済む。時刻t11から時刻t18までの時間と、時刻t21から時刻t26までの時間が等しい場合、アクセス種別の切替えに合わせてリフレッシュとを同時に実施することで、時間T1だけメモリ90へアクセス可能な時間が増えたことになる。
[まとめ]
本実施形態では、中央バス制御システム50aは、リード要求に対してアクセス権を付与する期間と、ライト要求に対してアクセス権を付与する期間とを切り替えるタイミングに合わせて、メモリ90にリフレッシュ動作を実施させる。DDRなどのメモリへのアクセスでは、リードとライトとの間のアクセス種別の切替えのペナルティが大きい。本実施形態では、リード要求にアクセス権を付与する期間とライト要求にアクセス権を付与する期間との切替えタイミングに合わせてリフレッシュを実施させることで、リフレッシュペナルティでR/W切替えペナルティを隠蔽することができる。このようにすることで、メモリ90へのアクセスの効率を上げることができる。
[変形例]
なお、上記各実施形態では、中央バス制御システム50の権利付与選択制御部501(図2を参照)が、予約型レジスタ群522を用いたアクセス権の付与先の選択と、BE型レジスタ群523を用いたアクセス権の付与先の選択とを独立して行う例を説明したが、これには限定されない。権利付与選択制御部501は、予約型レジスタ群522を用いたアクセス権の付与先の選択と、BE型レジスタ群523を用いたアクセス権の付与先の選択とを切り替えて実施してもよい。中央バス制御システム60の権利付与選択制御部601(図3を参照)についても同様である。
上記各実施形態では、2つの中央バス制御装置を用いて、メモリコントローラ80に出力されるアクセス要求のアクセス制御と、キャッシュ75に一時的に記憶されるアクセス要求(ライト要求)のアクセス制御とを実施する例を説明したが、これら中央バス制御システムは、物理的に分離している必要はない。1つ中央バス制御システムを用いて、メモリコントローラ80に出力されるアクセス要求のアクセス制御と、キャッシュ75に一時的に記憶されるアクセス要求(ライト要求)のアクセス制御とを個別に実施してもよい。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
メモリに対して、リード要求及びライト要求を含むアクセス要求を発行するマスタと、
バスを介して前記マスタに接続され、前記アクセス要求に従って前記メモリにアクセスするメモリコントローラと、
前記メモリコントローラと前記マスタとの間に配置され、前記アクセス要求がライト要求である場合に該ライト要求をキャッシュするキャッシュと、
前記マスタが発行したリード要求の前記メモリコントローラへの出力、及び前記キャッシュにキャッシュされたライト要求の前記メモリコントローラへの出力を制御する第1のアクセス制御を実施する第1のアクセス制御部と、
前記マスタが発行したライト要求の前記メモリコントローラへの出力を制御する第2のアクセス制御を実施する第2のアクセス制御部とを備え、
前記メモリコントローラは、前記アクセス要求を受け付けて記憶するリクエストバッファを有しており、
前記第1のアクセス制御部は、前記リクエストバッファの空き状況に応じて前記第1のアクセス制御を実施し、
前記第2のアクセス制御部は、前記キャッシュの空き状況に応じて前記第2のアクセス制御を実施する半導体装置。
[付記2]
前記バスは、前記リード要求を伝送するためのリード要求バスと、前記ライト要求を伝送するためのライト要求バスとを含み、
前記第1のアクセス制御部は、前記リード要求バスに対応して配置されたリードリクエスト発行制御部を有するリードサブバスコントローラと、前記キャッシュと前記メモリコントローラとの間の前記ライト要求バスに対応して配置された第1のライトリクエスト発行制御部を有する第1のライトサブバスコントローラと、前記リードサブバスコントローラ及び前記第1のライトサブバスコントローラを用いて前記第1のアクセス制御を実施する第1の中央バス制御システムとを含み、
前記第2のアクセス制御部は、前記マスタと前記キャッシュとの間の前記ライト要求バスに対応して配置された第2のライトリクエスト発行制御部を有する第2のライトサブバスコントローラと、前記第2のライトサブバスコントローラを用いて前記第2のアクセス制御を実施する第2の中央バス制御システムとを含む付記1に記載の半導体装置。
[付記3]
前記第1の中央バス制御システムは、前記リードリクエスト発行制御部へのアクセス権の付与を制御することで前記リード要求に対する前記第1のアクセス制御を実施し、
前記リードリクエスト発行制御部は、前記マスタから前記リード要求を受け付け、前記第1の中央バス制御システムから前記アクセス権が付与されている場合は前記リード要求を前記メモリコントローラへ出力し、前記アクセス権が付与されていない場合は前記リード要求の前記メモリコントローラへの出力を抑止する付記2に記載の半導体装置。
[付記4]
前記第1の中央バス制御システムは、前記第1のライトリクエスト発行制御部へのアクセス権の付与を制御することで前記ライト要求に対する前記第1のアクセス制御を実施し、
前記第1のライトリクエスト発行制御部は、前記キャッシュから前記ライト要求を受け付け、前記第1の中央バス制御システムから前記アクセス権が付与されている場合は前記ライト要求を前記メモリコントローラへ出力し、前記アクセス権が付与されていない場合は前記ライト要求の前記メモリコントローラへの出力を抑止する付記3に記載の半導体装置。
[付記5]
前記第1の中央バス制御システムは、前記第1のライトリクエスト発行制御部へ出力するアクセス許可を示す信号を制御することで前記ライト要求に対する前記第1のアクセス制御を実施し、
前記第1のライトリクエスト発行制御部は、前記キャッシュから前記ライト要求を受け付け、前記第1の中央バス制御システムから前記アクセスの許可を示す信号が出力されている場合は前記ライト要求を前記メモリコントローラへ出力し、前記アクセス許可を示す信号が出力されていない場合は前記ライト要求の前記メモリコントローラへの出力を抑止する付記3に記載の半導体装置。
[付記6]
前記第2の中央バス制御システムは、前記第2のライトリクエスト発行制御部へのアクセス権の付与を制御することで前記第2のアクセス制御を実施し、
前記第2のライトリクエスト発行制御部は、前記マスタから前記ライト要求を受け付け、前記第2の中央バス制御システムから前記アクセス権が付与されている場合は前記ライト要求を前記キャッシュへ出力し、前記アクセス権が付与されていない場合は前記ライト要求の前記キャッシュへの出力を抑制する付記2に記載の半導体装置。
[付記7]
前記マスタを複数有し、
前記複数のマスタから入力されるアクセス要求を調停して前記メモリコントローラに出力するインターコネクトを更に備える付記2に記載の半導体装置。
[付記8]
前記リードリクエスト発行制御部及び前記第2のライトリクエスト発行制御部は、前記複数のマスタのそれぞれと前記インターコネクトとの間を接続する複数のリードバス及びライトバスのそれぞれに対応して配置される付記7に記載の半導体装置。
[付記9]
前記第1の中央バス制御システムは、前記リクエストバッファの空きエントリ数に応じて、前記アクセス権を付与することが可能な数を示す権利付与可能数を管理し、該権利付与可能数の範囲で前記リードリクエスト発行制御部及び前記第1のライトリクエスト発行制御部に前記アクセス権を付与する付記4に記載の半導体装置。
[付記10]
前記メモリコントローラは、前記リクエストバッファが解放されると、前記リクエストバッファが解放された旨を示すバッファ解放通知を前記第1の中央バス制御システムに出力し、
前記第1の中央バス制御システムは、前記リードリクエスト発行制御部及び前記第1のライトリクエスト発行制御部に前記アクセス権を付与した場合、前記権利付与可能数から前記アクセス権の付与数を減算し、前記バッファ解放通知を受け取った場合、前記権利付与可能数に前記リクエストバッファにおいて解放されたエントリの数を加算する付記9に記載の半導体装置。
[付記11]
前記リードリクエスト発行制御部及び前記第1のライトリクエスト発行制御部は、それぞれ、前記アクセス権が付与された場合に前記リード要求及びライト要求を受け付けていない場合は、前記第1の中央バス制御システムに前記アクセス権を返却し、
前記第1の中央バス制御システムは、前記アクセス権が返却された場合、前記権利付与可能数に前記アクセス権の返却数を加算する付記10に記載の半導体装置。
[付記12]
前記キャッシュは前記メモリから読み出されたリードデータを更にキャッシュし、
前記リードリクエスト発行制御部から出力されたリード要求で要求されるデータが前記キャッシュにキャッシュされている場合、前記キャッシュは、前記キャッシュされたリードデータを、前記リード要求の発行元のマスタに前記リード要求に対する応答として出力し、かつ、前記リードリクエスト発行制御部に付与されたアクセス権を前記第1の中央バス制御システムに返却する付記10に記載の半導体装置。
[付記13]
前記第2の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記アクセス権を付与することが可能な数を示す権利付与可能数を管理し、該権利付与可能数の範囲で前記第2のライトリクエスト発行制御部に前記アクセス権を付与する付記6に記載の半導体装置。
[付記14]
前記第2の中央バス制御システムは、前記第2のライトリクエスト発行制御部に前記アクセス権を付与した場合、前記権利付与可能数から前記アクセス権の付与数を減算し、前記キャッシュの空きエントリ数が増加した場合、前記権利付与可能数に前記空きエントリが増加した数を加算する付記13に記載の半導体装置。
[付記15]
前記第2のライトリクエスト発行制御部は、前記アクセス権が付与された場合に前記ライト要求を受け付けていない場合は、前記第2の中央バス制御システムに前記アクセス権を返却し、
前記第2の中央バス制御システムは、前記アクセス権が返却された場合、前記権利付与可能数に前記アクセス権の返却数を加算する付記14に記載の半導体装置。
[付記16]
前記第1の中央バス制御システムは、第1の期間では前記リードリクエスト発行制御部に前記アクセス権を付与し、かつ前記第1のライトリクエスト発行制御部への前記アクセス権の付与を抑止し、第2の期間では前記第1のライトリクエスト発行制御部に前記アクセス権を付与し、かつ前記リードリクエスト発行制御部への前記アクセス権の付与を抑止する付記4に記載の半導体装置。
[付記17]
前記第1の中央バス制御システムは、所定の基本スロットの期間を複数の期間で分割した期間をサブスロットとして、該サブスロットの単位で、前記第1の期間又は前記第2の期間を設定する付記16に記載の半導体装置。
[付記18]
前記第1の中央バス制御システムは、前記サブスロットが前記第1の期間に設定されるか、又は前記第2の期間に設定されるかを指定するためのレジスタを有する付記17に記載の半導体装置。
[付記19]
前記第1の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記第1の期間に設定されるサブスロットの数と、前記第2の期間に設定されるサブスロットの数とを変更する付記17に記載の半導体装置。
[付記20]
前記第1の中央バス制御システムは、前記第1の期間に設定されたサブスロットから前記第2の期間に設定されたサブスロットへの切替え、及び前記第2の期間に設定されたサブスロットから前記第1の期間に設定されたサブスロットへの切替えの少なくとも一方において、該切替えのタイミングよりも所定時間前のタイミングから、前記抑止されたアクセス権の付与を解除する付記17に記載の半導体装置。
[付記21]
前記メモリはリフレッシュ動作が実行可能に構成されており、
前記第1の中央バス制御システムは、前記第1の期間と前記第2の期間とを切り替えるタイミングに合わせて前記メモリに前記リフレッシュ動作を実行させる付記16に記載の半導体装置。
[付記22]
前記マスタを複数有し、
前記複数のマスタから入力されるアクセス要求を調停して前記メモリコントローラに出力するインターコネクトを更に備え、
前記第2の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記複数のマスタのうち、どのマスタのライト要求に前記アクセス権を付与するかを決定する付記6に記載の半導体装置。
[付記23]
前記第2の中央バス制御システムは、前記複数のマスタと、前記キャッシュの空きエントリ数の条件とを対応付けて記憶するレジスタを有し、前記キャッシュの空きエントリ数が前記条件を満たすマスタの中から、前記アクセス権を付与するマスタを決定する付記22に記載の半導体装置。
[付記24]
半導体装置におけるバスを生成するバスジェネレータであって、
リード要求及びライト要求を含む、メモリに対するアクセス要求を出力するマスタに関する情報と、前記マスタからアクセスされるスレーブの情報とに基づいて、前記マスタと前記スレーブとの間を接続するバスの構造情報を生成するバス構造情報生成部と、
前記バスの構造情報、前記ライト要求を一時的に記憶してライトバックするキャッシュの情報、前記マスタのサービス品質情報、及び機能ブロックの回路情報を用いて、前記マスタが出力するリード要求、及び前記キャッシュのライトバックと、前記マスタが出力したライト要求とに対してアクセス制御を行う中央バス制御システムの回路情報を生成する中央バス制御部生成部と、
前記中央バス制御システムの回路情報を用いて、前記中央バス制御システムの制御に基づいて動作するサブバス制御システムの回路情報を生成するサブバス制御部生成部と、
前記バスの構造情報、及び機能ブロックの回路情報を用いて、バス部品の回路情報を生成するバス部品生成部と、
前記中央バス制御システムの回路情報、前記サブバス制御システムの回路情報、及び前記バス部品の回路情報をマージし、前記バスの回路情報を生成するマージ部とを備えるバスジェネレータ。
10:電子装置
21R、21W、31R、31W、41R、41W:バス
22R、22W、32R、32W、42R、42W:サブバスコントローラ
23R、23W、33R、33W、43R、43W:リクエスト発行制御部
24R、24W、34R、34W、44R、44W:バス
50:中央バス制御システム1
60:中央バス制御システム2
70:インターコネクト
75:キャッシュ
76R、76W、79W:バス
77:並びにサブバスコントローラ
77:トローラ(ライトサブバスコントローラ1)
77:サブバスコントローラ
78:リクエスト発行制御部
80:メモリコントローラ
81:バッファ
90:メモリ
101:クロック情報
102:接続情報
103:スレーブ情報
104:マスタ情報
105:IP群記憶部
106:キャッシュ情報
107:QoS情報初期値
108:コントローラバッファ情報
109:サブ機能オプション
110:バス部品の回路情報
111:中央バス制御システムの回路情報
112:サブバス制御システムの回路情報
113:バスの回路情報
501、601:権利付与選択制御部
502、602:マスク信号生成部
503、603:配付優先度計算回路
504、604:権利付与数制御部
505:リフレッシュ制御部
510、610:転送量モニタ
511、611:予約型用転送量モニタ
512、612:BE型用転送量モニタ
521、621:スロット設定レジスタ
522、622:予約型レジスタ群
523、623:BE型レジスタ群
524、624:付与可能最大数設定レジスタ
531:配付フェーズ設定レジスタ
532:配付オーバラップ設定レジスタ
533:配付フェーズ計算回路
601:権利付与選択制御部
800:バスジェネレータ
801:CPU
802:メモリ
803:バス生成ツール
804:キーボード
805:マウス
806:モニタ
807:バス
811:バス構造情報生成部
812:バス部品生成部
813:中央バス制御部生成部
814:サブバス制御部生成部
815:マージ部

Claims (20)

  1. メモリに対して、リード要求及びライト要求を含むアクセス要求を発行するマスタと、
    バスを介して前記マスタに接続され、前記アクセス要求に従って前記メモリにアクセスするメモリコントローラと、
    前記メモリコントローラと前記マスタとの間に配置され、前記アクセス要求がライト要求である場合に該ライト要求をキャッシュするキャッシュと、
    前記マスタが発行したリード要求の前記メモリコントローラへの出力、及び前記キャッシュにキャッシュされたライト要求の前記メモリコントローラへの出力を制御する第1のアクセス制御を実施する第1のアクセス制御部と、
    前記マスタが発行したライト要求の前記メモリコントローラへの出力を制御する第2のアクセス制御を実施する第2のアクセス制御部とを備え、
    前記メモリコントローラは、前記アクセス要求を受け付けて記憶するリクエストバッファを有しており、
    前記第1のアクセス制御部は、前記リクエストバッファの空き状況に応じて前記第1のアクセス制御を実施し、
    前記第2のアクセス制御部は、前記キャッシュの空き状況に応じて前記第2のアクセス制御を実施する半導体装置。
  2. 前記バスは、前記リード要求を伝送するためのリード要求バスと、前記ライト要求を伝送するためのライト要求バスとを含み、
    前記第1のアクセス制御部は、前記リード要求バスに対応して配置されたリードリクエスト発行制御部を有するリードサブバスコントローラと、前記キャッシュと前記メモリコントローラとの間の前記ライト要求バスに対応して配置された第1のライトリクエスト発行制御部を有する第1のライトサブバスコントローラと、前記リードサブバスコントローラ及び前記第1のライトサブバスコントローラを用いて前記第1のアクセス制御を実施する第1の中央バス制御システムとを含み、
    前記第2のアクセス制御部は、前記マスタと前記キャッシュとの間の前記ライト要求バスに対応して配置された第2のライトリクエスト発行制御部を有する第2のライトサブバスコントローラと、前記第2のライトサブバスコントローラを用いて前記第2のアクセス制御を実施する第2の中央バス制御システムとを含む請求項1に記載の半導体装置。
  3. 前記第1の中央バス制御システムは、前記リードリクエスト発行制御部へのアクセス権の付与を制御することで前記リード要求に対する前記第1のアクセス制御を実施し、
    前記リードリクエスト発行制御部は、前記マスタから前記リード要求を受け付け、前記第1の中央バス制御システムから前記アクセス権が付与されている場合は前記リード要求を前記メモリコントローラへ出力し、前記アクセス権が付与されていない場合は前記リード要求の前記メモリコントローラへの出力を抑止する請求項2に記載の半導体装置。
  4. 前記第1の中央バス制御システムは、前記第1のライトリクエスト発行制御部へのアクセス権の付与を制御することで前記ライト要求に対する前記第1のアクセス制御を実施し、
    前記第1のライトリクエスト発行制御部は、前記キャッシュから前記ライト要求を受け付け、前記第1の中央バス制御システムから前記アクセス権が付与されている場合は前記ライト要求を前記メモリコントローラへ出力し、前記アクセス権が付与されていない場合は前記ライト要求の前記メモリコントローラへの出力を抑止する請求項3に記載の半導体装置。
  5. 前記第1の中央バス制御システムは、前記第1のライトリクエスト発行制御部へ出力するアクセス許可を示す信号を制御することで前記ライト要求に対する前記第1のアクセス制御を実施し、
    前記第1のライトリクエスト発行制御部は、前記キャッシュから前記ライト要求を受け付け、前記第1の中央バス制御システムから前記アクセスの許可を示す信号が出力されている場合は前記ライト要求を前記メモリコントローラへ出力し、前記アクセス許可を示す信号が出力されていない場合は前記ライト要求の前記メモリコントローラへの出力を抑止する請求項3に記載の半導体装置。
  6. 前記第2の中央バス制御システムは、前記第2のライトリクエスト発行制御部へのアクセス権の付与を制御することで前記第2のアクセス制御を実施し、
    前記第2のライトリクエスト発行制御部は、前記マスタから前記ライト要求を受け付け、前記第2の中央バス制御システムから前記アクセス権が付与されている場合は前記ライト要求を前記キャッシュへ出力し、前記アクセス権が付与されていない場合は前記ライト要求の前記キャッシュへの出力を抑制する請求項2に記載の半導体装置。
  7. 前記マスタを複数有し、
    前記複数のマスタから入力されるアクセス要求を調停して前記メモリコントローラに出力するインターコネクトを更に備え、
    前記リードリクエスト発行制御部及び前記第2のライトリクエスト発行制御部は、前記複数のマスタのそれぞれと前記インターコネクトとの間を接続する複数のリードバス及びライトバスのそれぞれに対応して配置される請求項2に記載の半導体装置。
  8. 前記第1の中央バス制御システムは、前記リクエストバッファの空きエントリ数に応じて、前記アクセス権を付与することが可能な数を示す権利付与可能数を管理し、該権利付与可能数の範囲で前記リードリクエスト発行制御部及び前記第1のライトリクエスト発行制御部に前記アクセス権を付与する請求項4に記載の半導体装置。
  9. 前記メモリコントローラは、前記リクエストバッファが解放されると、前記リクエストバッファが解放された旨を示すバッファ解放通知を前記第1の中央バス制御システムに出力し、
    前記第1の中央バス制御システムは、前記リードリクエスト発行制御部及び前記第1のライトリクエスト発行制御部に前記アクセス権を付与した場合、前記権利付与可能数から前記アクセス権の付与数を減算し、前記バッファ解放通知を受け取った場合、前記権利付与可能数に前記リクエストバッファにおいて解放されたエントリの数を加算する請求項8に記載の半導体装置。
  10. 前記キャッシュは前記メモリから読み出されたリードデータを更にキャッシュし、
    前記リードリクエスト発行制御部から出力されたリード要求で要求されるデータが前記キャッシュにキャッシュされている場合、前記キャッシュは、前記キャッシュされたリードデータを、前記リード要求の発行元のマスタに前記リード要求に対する応答として出力し、かつ、前記リードリクエスト発行制御部に付与されたアクセス権を前記第1の中央バス制御システムに返却する請求項9に記載の半導体装置。
  11. 前記第2の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記アクセス権を付与することが可能な数を示す権利付与可能数を管理し、該権利付与可能数の範囲で前記第2のライトリクエスト発行制御部に前記アクセス権を付与する請求項6に記載の半導体装置。
  12. 前記第2の中央バス制御システムは、前記第2のライトリクエスト発行制御部に前記アクセス権を付与した場合、前記権利付与可能数から前記アクセス権の付与数を減算し、前記キャッシュの空きエントリ数が増加した場合、前記権利付与可能数に前記空きエントリが増加した数を加算する請求項11に記載の半導体装置。
  13. 前記第1の中央バス制御システムは、第1の期間では前記リードリクエスト発行制御部に前記アクセス権を付与し、かつ前記第1のライトリクエスト発行制御部への前記アクセス権の付与を抑止し、第2の期間では前記第1のライトリクエスト発行制御部に前記アクセス権を付与し、かつ前記リードリクエスト発行制御部への前記アクセス権の付与を抑止する請求項4に記載の半導体装置。
  14. 前記第1の中央バス制御システムは、所定の基本スロットの期間を複数の期間で分割した期間をサブスロットとして、該サブスロットの単位で、前記第1の期間又は前記第2の期間を設定する請求項13に記載の半導体装置。
  15. 前記第1の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記第1の期間に設定されるサブスロットの数と、前記第2の期間に設定されるサブスロットの数とを変更する請求項13に記載の半導体装置。
  16. 前記第1の中央バス制御システムは、前記第1の期間に設定されたサブスロットから前記第2の期間に設定されたサブスロットへの切替え、及び前記第2の期間に設定されたサブスロットから前記第1の期間に設定されたサブスロットへの切替えの少なくとも一方において、該切替えのタイミングよりも所定時間前のタイミングから、前記抑止されたアクセス権の付与を解除する請求項14に記載の半導体装置。
  17. 前記メモリはリフレッシュ動作が実行可能に構成されており、
    前記第1の中央バス制御システムは、前記第1の期間と前記第2の期間とを切り替えるタイミングに合わせて前記メモリに前記リフレッシュ動作を実行させる請求項13に記載の半導体装置。
  18. 前記マスタを複数有し、
    前記複数のマスタから入力されるアクセス要求を調停して前記メモリコントローラに出力するインターコネクトを更に備え、
    前記第2の中央バス制御システムは、前記キャッシュの空きエントリ数に応じて、前記複数のマスタのうち、どのマスタのライト要求に前記アクセス権を付与するかを決定する請求項6に記載の半導体装置。
  19. 前記第2の中央バス制御システムは、前記複数のマスタと、前記キャッシュの空きエントリ数の条件とを対応付けて記憶するレジスタを有し、前記キャッシュの空きエントリ数が前記条件を満たすマスタの中から、前記アクセス権を付与するマスタを決定する請求項18に記載の半導体装置。
  20. 半導体装置におけるバスを生成するバスジェネレータであって、
    リード要求及びライト要求を含む、メモリに対するアクセス要求を出力するマスタに関する情報と、前記マスタからアクセスされるスレーブの情報とに基づいて、前記マスタと前記スレーブとの間を接続するバスの構造情報を生成するバス構造情報生成部と、
    前記バスの構造情報、前記ライト要求を一時的に記憶してライトバックするキャッシュの情報、前記マスタのサービス品質情報、及び機能ブロックの回路情報を用いて、前記マスタが出力するリード要求、及び前記キャッシュのライトバックと、前記マスタが出力したライト要求とに対してアクセス制御を行う中央バス制御システムの回路情報を生成する中央バス制御部生成部と、
    前記中央バス制御システムの回路情報を用いて、前記中央バス制御システムの制御に基づいて動作するサブバス制御システムの回路情報を生成するサブバス制御部生成部と、
    前記バスの構造情報、及び機能ブロックの回路情報を用いて、バス部品の回路情報を生成するバス部品生成部と、
    前記中央バス制御システムの回路情報、前記サブバス制御システムの回路情報、及び前記バス部品の回路情報をマージし、前記バスの回路情報を生成するマージ部とを備えるバスジェネレータ。
JP2017246433A 2017-12-22 2017-12-22 半導体装置 Active JP6946168B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2017246433A JP6946168B2 (ja) 2017-12-22 2017-12-22 半導体装置
US16/189,355 US11188488B2 (en) 2017-12-22 2018-11-13 Semiconductor device and bus generator
TW107145114A TW201935259A (zh) 2017-12-22 2018-12-14 半導體裝置及匯流排產生器
KR1020180164323A KR20190076869A (ko) 2017-12-22 2018-12-18 반도체 장치 및 버스 제너레이터
EP21164812.6A EP3872644B1 (en) 2017-12-22 2018-12-20 Semiconductor device with master, bus, cache and memory controller and bus generator
EP18214763.7A EP3502909B1 (en) 2017-12-22 2018-12-20 Semiconductor device with master, bus, cache and memory controller and bus generator
CN201811590815.4A CN110059035B (zh) 2017-12-22 2018-12-21 半导体装置和总线发生器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017246433A JP6946168B2 (ja) 2017-12-22 2017-12-22 半導体装置

Publications (2)

Publication Number Publication Date
JP2019114015A true JP2019114015A (ja) 2019-07-11
JP6946168B2 JP6946168B2 (ja) 2021-10-06

Family

ID=64755234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017246433A Active JP6946168B2 (ja) 2017-12-22 2017-12-22 半導体装置

Country Status (6)

Country Link
US (1) US11188488B2 (ja)
EP (2) EP3502909B1 (ja)
JP (1) JP6946168B2 (ja)
KR (1) KR20190076869A (ja)
CN (1) CN110059035B (ja)
TW (1) TW201935259A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6946168B2 (ja) * 2017-12-22 2021-10-06 ルネサスエレクトロニクス株式会社 半導体装置
CN110299164B (zh) * 2019-06-28 2021-10-26 西安紫光国芯半导体有限公司 一种自适应dram刷新控制方法和dram刷新控制器
JP2022129555A (ja) * 2021-02-25 2022-09-06 セイコーエプソン株式会社 回路装置及び電子機器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189075B1 (en) * 1997-02-05 2001-02-13 Sgs-Thomson Microelectronics S.A. Circuit for the management of memories in a multiple-user environment with access request and priority
US20040107265A1 (en) * 2002-11-19 2004-06-03 Matsushita Electric Industrial Co., Ltd Shared memory data transfer apparatus
JP2008299438A (ja) * 2007-05-29 2008-12-11 Yamaha Corp メモリ制御装置
WO2010035425A1 (ja) * 2008-09-24 2010-04-01 パナソニック株式会社 キャッシュメモリ、メモリシステム及びその制御方法
WO2016039198A1 (ja) * 2014-09-10 2016-03-17 ソニー株式会社 アクセス制御方法、バスシステム、および半導体装置
WO2017056132A1 (ja) * 2015-10-01 2017-04-06 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2341765B (en) 1998-09-18 2003-10-22 Pixelfusion Ltd Idle bus usage
TWI252409B (en) * 2004-04-26 2006-04-01 Sunplus Technology Co Ltd Enhanced expandable time-sharing bus device
KR101620460B1 (ko) * 2010-05-04 2016-05-13 삼성전자주식회사 인터커넥트, 그것을 포함하는 버스 시스템 그리고 버스 시스템의 동작 방법
JP6946168B2 (ja) * 2017-12-22 2021-10-06 ルネサスエレクトロニクス株式会社 半導体装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189075B1 (en) * 1997-02-05 2001-02-13 Sgs-Thomson Microelectronics S.A. Circuit for the management of memories in a multiple-user environment with access request and priority
US20040107265A1 (en) * 2002-11-19 2004-06-03 Matsushita Electric Industrial Co., Ltd Shared memory data transfer apparatus
JP2004171209A (ja) * 2002-11-19 2004-06-17 Matsushita Electric Ind Co Ltd 共有メモリデータ転送装置
JP2008299438A (ja) * 2007-05-29 2008-12-11 Yamaha Corp メモリ制御装置
WO2010035425A1 (ja) * 2008-09-24 2010-04-01 パナソニック株式会社 キャッシュメモリ、メモリシステム及びその制御方法
US20110173393A1 (en) * 2008-09-24 2011-07-14 Panasonic Corporation Cache memory, memory system, and control method therefor
WO2016039198A1 (ja) * 2014-09-10 2016-03-17 ソニー株式会社 アクセス制御方法、バスシステム、および半導体装置
WO2017056132A1 (ja) * 2015-10-01 2017-04-06 ルネサスエレクトロニクス株式会社 半導体装置
US20170270063A1 (en) * 2015-10-01 2017-09-21 Renesas Electronics Corporation Semiconductor device

Also Published As

Publication number Publication date
EP3502909B1 (en) 2021-04-07
US20190196997A1 (en) 2019-06-27
JP6946168B2 (ja) 2021-10-06
CN110059035B (zh) 2023-10-17
TW201935259A (zh) 2019-09-01
US11188488B2 (en) 2021-11-30
EP3502909A3 (en) 2019-09-11
EP3872644B1 (en) 2023-05-24
EP3872644A1 (en) 2021-09-01
CN110059035A (zh) 2019-07-26
KR20190076869A (ko) 2019-07-02
EP3502909A2 (en) 2019-06-26

Similar Documents

Publication Publication Date Title
US8549199B2 (en) Data processing apparatus and a method for setting priority levels for transactions
KR100899951B1 (ko) 캐시 메모리 버스트 싸이클 동안 버스 중재를 제어하는시스템 및 방법
US6820152B2 (en) Memory control device and LSI
JP4373931B2 (ja) 帯域幅成形システム及び方法
KR20130031258A (ko) 액세스 레이턴시를 감소시키기 위한 버스 중재 기술들
JP2005258867A (ja) リソース管理装置
EP3872644B1 (en) Semiconductor device with master, bus, cache and memory controller and bus generator
JP7075528B2 (ja) 半導体集積回路
JP7018833B2 (ja) 半導体装置
JP7181892B2 (ja) マルチクライアントシステムにおけるリアルタイムストリームの動的アービトレーションの方法
JP7018834B2 (ja) 半導体装置
JP4924970B2 (ja) データ処理システム
JP4610961B2 (ja) アクセス制御装置
JP2007164713A (ja) リソース管理装置及びリソース管理方法
JP2012168773A (ja) バスシステムおよびアクセス制御方法
JP2011242928A (ja) 半導体装置
JP2012177965A (ja) メモリ制御装置
JP2009205313A (ja) バスシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200417

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210604

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210915

R150 Certificate of patent or registration of utility model

Ref document number: 6946168

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150