JP2021002080A - バスシステムおよびその制御方法 - Google Patents

バスシステムおよびその制御方法 Download PDF

Info

Publication number
JP2021002080A
JP2021002080A JP2019113919A JP2019113919A JP2021002080A JP 2021002080 A JP2021002080 A JP 2021002080A JP 2019113919 A JP2019113919 A JP 2019113919A JP 2019113919 A JP2019113919 A JP 2019113919A JP 2021002080 A JP2021002080 A JP 2021002080A
Authority
JP
Japan
Prior art keywords
slave
request
response
bus
information
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
JP2019113919A
Other languages
English (en)
Other versions
JP7493311B2 (ja
Inventor
大介 白石
Daisuke Shiraishi
大介 白石
渉 落合
Wataru Ochiai
渉 落合
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2019113919A priority Critical patent/JP7493311B2/ja
Priority claimed from JP2019113919A external-priority patent/JP7493311B2/ja
Priority to US16/900,213 priority patent/US11354263B2/en
Publication of JP2021002080A publication Critical patent/JP2021002080A/ja
Application granted granted Critical
Publication of JP7493311B2 publication Critical patent/JP7493311B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 

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)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】バスシステムにおいて複数のリクエストに対するレスポンスの順序を保証可能とする。【解決手段】バスシステムは、マスタと、第1のスレーブと、第2のスレーブと、バスと、を含む。マスタは、第1のスレーブに対して第1のリクエストを発行した後、第1のリクエストに対するレスポンスを受信する前に、第2のスレーブに対して第2のリクエストを発行可能に構成されている。バスは、第2のリクエストを受信したとき第2のリクエストの第2のスレーブへの転送を許可するか否かを判定する判定手段と、判定手段により転送を許可しないと判定されている間、第2のリクエストの第2のスレーブへの転送を保留する保留手段と、を有する。判定手段は、第1のスレーブにおける第1のリクエストの処理に関する第1のスレーブからの通知に基づいて転送を許可するか否かを判定する。【選択図】図1

Description

本発明は、バス制御に関し、特に、マスタによる複数スレーブへの並列アクセスを許容したバスにおける各スレーブからのレスポンスを制御する技術に関するものである。
近年、バスシステムにおいては、データ転送を要求するリクエストと実際のデータ転送であるレスポンスを独立して制御するスプリットトランザクションが導入されている。スプリットトランザクションでは、マスタは複数のスレーブに対して並列にリクエストを発行することが可能になり、データの転送効率を向上させることができる。一方、リクエストを受け取った複数のスレーブは独立して動作しているため、各スレーブがマスタにレスポンスを返すタイミングは異なる。そのため、マスタがリクエストの発行順序と同じ順序(インオーダ)でレスポンスが返されることを想定する場合であっても、リクエストの発行順序とは異なる順序でレスポンスが返されるおそれがある。
そこで、レスポンスの順序保証を行うべく、マスタが先行して発行したリクエストに対するレスポンスがスレーブから返されるまで異なるスレーブへのリクエスト発行を保留するバスがある。ただし、先行するリクエストに対するレスポンスがスレーブから返されるまで次のリクエスト発行を保留するため、データの転送効率が低下してしまうことになる。また、特許文献1では、バッファを有し、スレーブから返されたレスポンスを期待する順序に並び替えるバスシステムが提案されている。
特開2012−73851号公報
上述の特許文献1に記載の技術では、バッファを利用してスレーブからのレスポンスを期待する順序に並び替えることで順序保証をする。しかしながら、近年のマスタは一度のリクエストで大量のデータ転送を要求することが多いため、バッファによりバスの回路規模が大幅に増加してしまうことになる。
本発明は、このような問題に鑑みてなされたものであり、複数のリクエストに対するレスポンスの順序を保証可能とするバス制御技術を提供することを目的としている。
上述の問題点を解決するため、本発明に係るバスシステムは以下の構成を備える。すなわち、マスタと、第1のスレーブと、第2のスレーブと、前記マスタと前記第1のスレーブと前記第2のスレーブとを接続するバスと、を含むバスシステムであって、
前記マスタは、前記第1のスレーブに対して第1のリクエストを発行した後、前記第1のリクエストに対するレスポンスを受信する前に、前記第2のスレーブに対して第2のリクエストを発行可能に構成されており、
前記バスは、
前記第2のリクエストを受信したとき該第2のリクエストの前記第2のスレーブへの転送を許可するか否かを判定する判定手段と、
前記判定手段により前記転送を許可しないと判定されている間、前記第2のリクエストの前記第2のスレーブへの転送を保留する保留手段と、
を有し、
前記判定手段は、前記第1のリクエストの処理に関する前記第1のスレーブからの通知に基づいて前記転送を許可するか否かを判定する。
本発明によれば、複数のリクエストに対するレスポンスの順序を保証可能とするバス制御技術を提供することができる。
第1実施形態に係るバスシステムの全体構成を示す図である。 保留判定部の構成を示す図である。 リクエスト保留判定アルゴリズムのフローチャートである。 スレーブの構成を示す図である。 バスシステムの挙動を示す波形図である。 第2実施形態におけるスレーブの構成を示す図である。 第2実施形態における保留判定部の構成を示す図である。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでするものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
(第1実施形態)
本発明に係るバスシステムの第1実施形態として、DRAMにアクセスするためのバスシステムを例に挙げて以下に説明する。
<システム構成>
図1は、第1実施形態に係るバスシステム100の全体構成を示す図である。バスシステム100では、マスタ110、スレーブ(A)120、スレーブ(B)130がバス140を介して接続されている。
スレーブ(A)120とスレーブ(B)130はDRAMコントローラであり、それぞれDRAM(A)121とDRAM(B)131へのアクセスを制御する。なお、ここでは、スレーブ(A)120とスレーブ(B)はDRAMコントローラとしているが、マスタ110からのリクエストを処理してレスポンスを返すスレーブであればDRAMコントローラに限らない。
マスタ110は、リクエストをバス140に発行する。バスシステム100では、複数スレーブへの同時(並列)アクセスが許容されている。すなわち、マスタ110は、スレーブ(A)120に対してリクエストを発行した後、当該リクエストに対するレスポンスを受信する前に、スレーブ(B)130に対してリクエストを発行可能に構成されている。リクエストには、「アドレス情報」「Dir」「転送識別子」が含まれる。ここで、Dirは、リクエストがリードかライトかを示すアクセス種別情報である。マスタ110は、同じDirかつ同じ転送識別子を持つ複数のリクエストに対する複数のレスポンスについては、当該複数のリクエストを発行した順序で返されることを期待する。それ以外のリクエストに対するレスポンスは順不同で返されてもよい。
バス140は、マスタ110から受信したリクエストをリクエストに含まれるアドレス情報に基づいてスレーブ(A)120またはスレーブ(B)130に転送する。スレーブ(A)120とスレーブ(B)130は、バス140から受信したリクエストからDRAMコマンドを生成し、接続されたDRAM(A)121、DRAM(B)131にアクセスする。また、スレーブ(A)120とスレーブ(B)130は、リクエストの処理が完了するとレスポンスをバス140に送信し、バス140は受信したレスポンスをマスタ110に転送する。
バス140は、アクセス管理部141、保留判定部142、保留制御部143を含んでいる。
アクセス管理部141は、マスタ110からリクエストを受信すると、受信したリクエストに含まれるアドレス情報から宛先スレーブをデコードし、リクエストを宛先スレーブ毎に振り分けて保留制御部143に転送する。また、アクセス管理部141は、リクエストに関する情報(リクエスト情報)を保留判定部142に通知する。ここで、リクエスト情報は、デコードした宛先スレーブ、転送識別子、Dirを含む。
また、アクセス管理部141は、スレーブ(A)120とスレーブ(B)130からレスポンスを受信すると、受信したレスポンスをマスタ110に転送する。レスポンスには対応するリクエストと同じ転送識別子が付与されており、アクセス管理部141はレスポンスに関する情報(レスポンス情報)を保留判定部142に通知する。ここで、リクエスト情報は、転送識別子、Dirを含む。
保留判定部142は、リクエスト情報、レスポンス情報、スレーブから通知される確定情報に基づいて、アクセス管理部141が受信したリクエストのスレーブへの転送を保留するか否かを判定する。この結果は、保留判定結果として保留制御部143に通知される。保留判定部142の詳細については、図2及び図3を参照して後述する。
保留制御部143は、保留判定部142からリクエストの転送を保留することが通知されると、アクセス管理部141から受信したリクエストの宛先スレーブへの転送を保留する。保留判定部142から保留しないことが通知されると、アクセス管理部141から受信したリクエストを宛先スレーブへ転送する。
スレーブ(A)120は、保留判定部142に通知されることになる確定情報を生成する確定情報生成部122を含む。確定情報生成部122は、スレーブ(A)120が受信したリクエストに対するレスポンスを返すまでの時間が確定したタイミングで、確定情報を保留判定部142に送信する。確定情報の詳細については、図4を参照して後述する。
図2は、第1実施形態における保留判定部142の構成を示す図である。保留判定部142は、リクエスト情報テーブル1430、レスポンスタイミング確定時レイテンシテーブル1431、アクセス最短レイテンシテーブル1432を含む。また、レスポンスタイミング計測部1433、保留信号生成部1434を更に含む。
リクエスト情報テーブル1430は、スレーブに転送されたリクエスト、かつ、対応するレスポンスがスレーブから受信されていないアウトスタンディングリクエストのリクエスト情報を保持する。上述のように、各リクエスト情報は、リクエストのDir、転送識別子、宛先スレーブを含む。
保留判定部142は、アクセス管理部141から通知されたリクエスト情報に対するリクエストが宛先スレーブへ転送されると、当該リクエスト情報をリクエスト情報テーブル1430に登録する。また、アクセス管理部141からレスポンス情報が通知されると、当該レスポンス情報に含まれる転送識別子およびDirと同じ転送識別子とDirを持つ最も古いエントリをリクエスト情報テーブル1430から削除する。
レスポンスタイミング確定時レイテンシテーブル1431は、バス140に接続される各スレーブについて、スレーブが確定情報を送信してからレスポンスを返すまでのレイテンシ(レスポンスタイミング確定時レイテンシ:第1の情報)を格納する。アクセス最短レイテンシテーブル1432は、バス140に接続される各スレーブについて、保留制御部143でリクエストの転送が許可されてからスレーブがレスポンスを返し始めるまでの最短レイテンシ(アクセス最短レイテンシ:第2の情報)を格納する。ここでは、レスポンスタイミング確定時レイテンシとアクセス最短レイテンシは、スレーブとDirの組み合わせ毎に保持することを想定するが、スレーブやDirにいてレイテンシに違いがない場合は保持する組み合わせを削減してもよい。レスポンスタイミング確定時レイテンシテーブル1431及びアクセス最短レイテンシテーブル1432は、それぞれ、保留判定部142に確保される記憶部に所与の情報として記憶される。
レスポンスタイミング計測部1433は、リクエスト情報テーブル1430の各エントリに対応する複数のカウンタと各カウンタのステータスを管理する。レスポンスタイミング計測部1433は、スレーブから確定情報が通知されるとリクエスト情報テーブル1430を検索する。そして、確定情報に含まれる転送識別子およびDirと同じ転送識別子とDirを持ち、かつ、対応するカウンタのステータスが「IDLE」である最も古いエントリを選択する。そして、選択したエントリに対応するカウンタに、対応するエントリの宛先スレーブ、Dirに対応するレスポンスタイミング確定時レイテンシを設定し、カウンタを起動する。この際、起動したカウンタのステータスを「BUSY」に更新する。カウンタはカウントダウンを実行し、カウント値が「0」になると停止する。リクエスト情報テーブル1430からエントリが削除されると、そのエントリに対応するカウンタのステータスを「IDLE」に戻す。
<保留判定部142の動作>
図3は、保留判定部142が実行するリクエスト保留判定アルゴリズムのフローチャートである。保留信号生成部1434は、アクセス管理部141からリクエスト情報が通知されると、対応するリクエストの宛先スレーブへの転送について保留判定を行い、保留判定結果を保留制御部143へ通知する。
S301では、保留判定部142は、通知されたリクエスト情報と同じDir、同じ転送識別子、異なる宛先スレーブを持つエントリがリクエスト情報テーブル1430にあるか判定する。同じDirであるとは、例えば、両方がDRAMからのデータのリードであるか、又は、両方がDRAMに対するデータのライトであることを意味する。該当するエントリがなければS302に進み、該当するエントリがあればS303に進む。
S302では、保留判定部142は、リクエストの転送を許可する。一方、S303では、保留判定部142は、該当するエントリの内で最も新しく登録されたエントリを選択する。
S304では、保留判定部142は、選択したエントリに対応するレスポンスタイミング計測部1433のカウンタのステータスが「BUSY」であるか否かを確認する。「BUSY」である場合はS305に進み、「BUSY」でない場合はS307に進む。
S305では、保留判定部142は、リクエスト情報のDir、宛先スレーブに対応するアクセス最短レイテンシを入手する。S306では、保留判定部142は、選択したエントリに対応するカウンタ値がアクセス最短レイテンシ以下か否かを判定する。すなわち、新規(後続)のリクエストに対するレスポンスの返信タイミングと、選択したエントリに対するレスポンスの返信タイミングとを算出して比較する。そして、新規のリクエストに対するレスポンスの返信タイミングが、選択したエントリに対するレスポンスの返信タイミングの後になることが保証されるか否かを判定する。カウンタ値がアクセス最短レイテンシ以下である場合はS302に進み、カウンタ値がアクセス最短レイテンシ以下で無い場合はS307に進む。
S307では、保留判定部142は、リクエストの転送を保留する。
図4は、スレーブの構成を示す図である。ここでは、スレーブ(A)120の構成を示している。
リクエスト受信バッファ1200は、バス140から受信したリクエストを格納する。リオーダ部1201は、リクエスト受信バッファ1200に格納されたリクエストをDRAM転送効率が向上する順番で取り出し、リオーダ後リクエストFIFO1202に格納する。このため、リクエストが処理される順番は、リオーダ後リクエストFIFO1202に格納されるまで確定しない。
DRAMコマンド生成部1203は、リオーダ後リクエストFIFO1202の先頭リクエストからDRAMコマンドを生成してDRAM(A)121へ送信する。DRAMコマンドには、DRAMのページを制御するためのアクティブコマンドやプリチャージコマンドも含まれ、アクセスするDRAMバンクの状態に応じて生成される。生成し送信したDRAMコマンドがライトコマンドであった場合、DRAMコマンド生成部1203は、レスポンス生成部1206にライトレスポンスの生成を要求する。
リフレッシュ要求生成部1204及びキャリブレーション要求生成部1205は、リフレッシュ要求およびキャリブレーション要求をDRAM規格が満たされるように定期的に生成する。DRAMコマンド生成部1203はそれらの要求が生成されると、リオーダ後リクエストFIFO1202に格納されるリクエストの処理に優先して、DRAM(A)121にリフレッシュコマンドやキャリブレーションコマンドを送信する。
レスポンス生成部1206は、DRAM(A)121からDRAMリードデータを受信するとリードレスポンスを生成してバス140に送信する。また、DRAMコマンド生成部1203からライトレスポンスの生成を要求されるとライトレスポンスを生成してバス140に送信する。
確定情報生成部122は、DRAMコマンド生成部1203がDRAMリードコマンドまたはDRAMライトコマンドをDRAM(A)121に送信するタイミングで、確定情報をバス140に通知する。上述のように、確定情報は、リクエストに対するレスポンスを返すまでの時間が確定したタイミングで通知される。具体的には、リクエストが処理される順番が確定し、当該リクエストに対するコマンドが生成されたタイミングで通知される。確定情報は、対応するリクエストの転送識別子とDirを含む。
図5は、第1実施形態におけるバスシステム100の挙動を示す波形図である。図5は、マスタ110がスレーブ(A)120にリードリクエストを発行し対応するレスポンスを受信する前に、マスタ110がスレーブ(B)130に同じ転送識別子を持つリードリクエストを発行した状況を示している。
ここでは、スレーブ(A)120が確定情報(A)を通知してからバス140がレスポンス(A)を受信するまでの「レスポンスタイミング確定時レイテンシ」が「23サイクル」であるとしている。また、スレーブ(B)130にリードであるリクエスト(B)を発行して最短でバス140がレスポンス(B)を受信するまでの「アクセス最短レイテンシ」が「15サイクル」であるとしている。
時刻T2において、バス140は、マスタ110からスレーブ(B)130へのリードリクエストを受信する。しかし、同じ転送識別子を持つリードリクエストが既にスレーブ(A)120に発行されているため、バス140は保留判定結果をアサートしてスレーブ(B)130へのリードリクエスト転送を保留する。
時刻T3において、スレーブ(A)は、先行するリードリクエストに対するDRAMコマンド(A)をDRAMに送信し、確定情報(A)をバス140に通知する。バス140は、確定情報(A)を受信すると対応するカウンタのステータスを「BUSY」に変更する。そして、カウンタにレスポンスタイミング確定時レイテンシである「23サイクル」を設定してカウントダウンを開始する。
時刻T12において、保留判定部142は、カウンタ値がスレーブ(B)130のリード時のアクセス最短レイテンシ(=15サイクル)以下であると判定する。そのため、バス140は、保留判定結果をデアサートして、スレーブ(B)130へリードリクエストを転送する。
これにより、マスタ110は、時刻T24〜T27においてスレーブ(A)からのレスポンスを受信し、時刻T28〜T31においてスレーブ(B)からのレスポンスを受信することになる。
なお、バス140が先行リクエストに対するレスポンスがスレーブから返されるまで次のリクエスト発行を保留する場合、スレーブ(B)130へのリードリクエストの発行タイミングはT27となる。一方、本実施形態によれば、スレーブ(B)130へのリードリクエストをT12で発行することが出来る。そのため、データ転送効率の低下を抑制することができる。
以上説明したとおり第1実施形態によれば、マスタからスレーブへのリクエストの転送をバスにおいて制御する。特に、先行するリクエストに対応するレスポンスタイミング確定時レイテンシ及び後続のリクエストに対応するアクセス最短レイテンシに基づいて、後続のリクエストの保留期間を決定する。これにより、データ転送効率の低下を抑制しつつ、マスタ110は、期待する順序でレスポンスを受信することができる。また、転送保留の対象となるのはリクエストであるため、バス140は大きなバッファを持つ必要はない。すなわち、複数スレーブへの同時(並列)アクセスを許容したバスシステムにおいて、異なるスレーブからのレスポンスの順序保証を、データ転送効率の低下を抑制しつつ少ない回路規模で実現することが可能になる。
なお、上述の説明では、マスタ110が発行するリクエストのバースト長が固定である前提で説明してきたが、バースト長はリクエスト毎に異なってもよい。その場合、レスポンスタイミング確定時レイテンシは、バス140が確定情報を受信してからレスポンスの先頭を受信するまでのレイテンシであるとする。また、リクエスト情報テーブル1430にリクエストのバースト長を保持するフィールドを追加する。レスポンスタイミング計測部1433はカウンタを起動する際、「レスポンスタイミング確定時レイテンシ+バースト長−1」の値をカウンタに設定する。
また、保留判定部142が持っているレスポンスタイミング確定時レイテンシテーブルは、スレーブ(A)120およびスレーブ(B)に分けて持ってもよい。その場合、確定情報にはレスポンスタイミング確定時レイテンシが含まれる。
(第2実施形態)
第2実施形態では、本発明に係る他の形態のバスシステムについて説明する。バスシステムの全体構成は第1実施形態(図1)とほぼ同様であるが、スレーブ(A)120と保留判定部142の構成が第1実施形態と異なる。
<装置構成>
図6は、第2実施形態におけるスレーブの構成を示す図である。ここでは、スレーブ(A)120の構成を示している。
リクエスト受信バッファ1200は、バス140から受信したリクエストを格納する。リオーダ部1201は、リクエスト受信バッファ1200に格納されたリクエストをDRAM転送効率が向上する順番で取り出し、リオーダ後リクエストFIFO1202に格納する。このため、リクエストが処理される順番は、リオーダ後リクエストFIFO1202に格納されるまで確定しない。
リオーダ後リクエストFIFO1202は、リクエストを処理される順番で保持する。また、各エントリのリクエストに対して確定情報を送信したかを示す確定情報送信フラグを持つ。リクエストがリオーダ後リクエストFIFO1202に格納されるタイミングで、確定情報送信フラグは未送信であることを示す「NO」が設定される。
DRAMコマンド生成部1203は、リオーダ後リクエストFIFO1202の先頭リクエストからDRAMコマンドを生成してDRAM(A)121へ送信する。DRAMコマンドには、DRAMのページを制御するためのアクティブコマンドやプリチャージコマンドも含まれ、アクセスするDRAMバンクの状態に応じて生成される。生成し送信したDRAMコマンドがライトコマンドであった場合、DRAMコマンド生成部1203は、レスポンス生成部1206にライトレスポンスの生成を要求する。
リフレッシュ要求生成部1204及びキャリブレーション要求生成部1205は、リフレッシュ要求およびキャリブレーション要求をDRAM規格が満たされるように定期的に生成する。DRAMコマンド生成部1203はそれらの要求が生成されると、リオーダ後リクエストFIFO1202に格納されるリクエストの処理に優先して、DRAM(A)121にリフレッシュコマンドやキャリブレーションコマンドを送信する。
レスポンス生成部1206は、DRAM(A)121からDRAMリードデータを受信するとリードレスポンスを生成してバス140に送信する。また、DRAMコマンド生成部1203からライトレスポンスの生成を要求されるとライトレスポンスを生成してバス140に送信する。
DRAMコマンド発行時レイテンシテーブル1207は、DRAMコマンドを発行してからバス140にレスポンスを返すまでのレイテンシ(DRAMコマンド発行時レイテンシ)を格納する。DRAMタイミング制約テーブル1208は、DRAMコマンド間のタイミング制約に関する情報を格納する。
確定情報生成部122は、リオーダ後リクエストFIFO1202から確定情報送信フラグが「NO」である最も古いエントリを選択する。そして、選択したエントリとそれ以前に格納されたエントリについて、それらに格納されているリクエストから生成されるDRAMコマンドを発行する順番に並べたDRAMコマンドシーケンスを生成する。DRAMコマンドシーケンスは、リードコマンド、ライトコマンド、アクティブコマンド、プリチャージコマンドで構成される。
次に、確定情報生成部122は、生成したDRAMコマンドシーケンスが完了するまでの時間を示すDRAMコマンドシーケンス完了時間を生成する。具体的には、DRAMタイミング制約テーブル1208とDRAMコマンド生成部1203におけるコマンド発行状況に基づいて、DRAMコマンドシーケンス完了時間を生成する。最後に、確定情報生成部122は、リフレッシュ要求生成部1204とキャリブレーション要求生成部1205の状態に基づいて、DRAMコマンドシーケンス完了時間内にリフレッシュ要求とキャリブレーション要求が生成されるか否かを判定する。
DRAMコマンドシーケンス完了時間内にリフレッシュ要求とキャリブレーション要求が生成される場合、確定情報生成部122は、確定情報をバス140へ通知しない。リフレッシュ要求とキャリブレーション要求が生成されない場合、確定情報生成部122は、選択したエントリのリクエストに対する確定情報をバス140に通知する。確定情報は、対応するリクエストの転送識別子、Dir、レスポンスタイミング確定時レイテンシを含む。ここで、レスポンスタイミング確定時レイテンシは、DRAMコマンドシーケンス完了時間とリクエストのDirに対応するDRAMコマンド発行時レイテンシの和である。また、確定情報生成部122は、確定情報をバス140へ通知する際に、選択したエントリの確定情報送信フラグを「YES」に更新する。
図7は、第2実施形態における保留判定部142の構成を示す図である。上述のように、第2実施形態における確定情報にはレスポンスタイミング確定時レイテンシが含まれる。そのため、保留判定部142にレスポンスタイミング確定時レイテンシテーブル1431は不要である。また、レスポンスタイミング計測部1433は、カウンタを起動する際に、スレーブから通知される確定情報に含まれるレスポンスタイミング確定時レイテンシをカウンタに設定する。上述した挙動以外は第1実施形態と同様であるため、説明を省略する。
以上説明したとおり第2実施形態によれば、マスタからスレーブへのリクエストの転送をバスにおいて制御する。特に、DRAMコマンド発行時レイテンシ及びDRAMコマンド間のタイミング制約に基づいて、確定情報をバスに通知する。これにより、データ転送効率の低下を抑制しつつ、マスタ110は、期待する順序でレスポンスを受信することができる。また、転送保留の対象となるのはリクエストであるため、バス140は大きなバッファを持つ必要はない。すなわち、複数スレーブへの同時(並列)アクセスを許容したバスシステムにおいて、異なるスレーブからのレスポンスの順序保証を、データ転送効率の低下を抑制しつつ少ない回路規模で実現することが可能になる。
なお、上述の説明では、マスタ110が発行するリクエストのバースト長が固定である前提で説明してきたが、バースト長はリクエスト毎に異なってもよい。その場合、DRAMコマンド発行時レイテンシは、スレーブ(A)120がDRAMコマンドを発行してからレスポンスの先頭をバス140に送信するまでのレイテンシであるとする。また、確定情報生成部122は、レスポンスタイミング確定時レイテンシを「DRAMコマンドシーケンス完了時間+DRAMコマンド発行時レイテンシ+バースト長−1」として計算する。
(変形例)
第1及び第2実施形態では、リードとライトともに、異なるスレーブからのレスポンスの順序を保証するバスシステムについて説明した。しかしながら、ポステッドライト方式などのバスプロトコルの特性に応じて、リードとライトの何れか一方のみを保証するように一部の構成を削減してもよい。
また、各スレーブについて、自スレーブ以外の他スレーブのアクセス最短レイテンシが一意に決まる場合、レスポンスを返すまでの時間がそのアクセス最短レイテンシ以下になったタイミングで確定情報をバス140に通知してもよい。バス140は、順序保証が必要なアウトスタンディングリクエスト全てに確定情報が通知されたかを確認して、通知されていない場合はリクエストの転送を保留する。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100 バスシステム; 110 マスタ; 120 スレーブ(A); 121 DRAM(A); 130 スレーブ(B); 131 DRAM(B); 140 バス; 141 アクセス管理部; 142 保留判定部; 143 保留制御部

Claims (9)

  1. マスタと、第1のスレーブと、第2のスレーブと、前記マスタと前記第1のスレーブと前記第2のスレーブとを接続するバスと、を含むバスシステムであって、
    前記マスタは、前記第1のスレーブに対して第1のリクエストを発行した後、前記第1のリクエストに対するレスポンスを受信する前に、前記第2のスレーブに対して第2のリクエストを発行可能に構成されており、
    前記バスは、
    前記第2のリクエストを受信したとき該第2のリクエストの前記第2のスレーブへの転送を許可するか否かを判定する判定手段と、
    前記判定手段により前記転送を許可しないと判定されている間、前記第2のリクエストの前記第2のスレーブへの転送を保留する保留手段と、
    を有し、
    前記判定手段は、前記第1のリクエストの処理に関する前記第1のスレーブからの通知に基づいて前記転送を許可するか否かを判定する
    ことを特徴とするバスシステム。
  2. 前記第1のスレーブは、前記第1のリクエストに対する第1のレスポンスの返信タイミングが確定したとき、該確定した旨を示す確定情報を前記通知として前記判定手段に送信するよう構成されており、
    前記判定手段は、前記第1のスレーブから前記確定情報を受信した場合、所与の情報に基づいて、前記第1のレスポンスの返信タイミングと前記第2のリクエストに対する第2のレスポンスの返信タイミングとを算出し、前記第2のレスポンスの返信タイミングが前記第1のレスポンスの返信タイミングの後になることが保証される場合、前記転送を許可する
    ことを特徴とする請求項1に記載のバスシステム。
  3. 前記所与の情報は、
    前記第1のスレーブが前記確定情報を送信してから前記第1のレスポンスを返信するまでのレイテンシに関する第1の情報と、
    前記判定手段により前記転送が許可されてから前記第2のスレーブが前記第2のレスポンスを返信するまでのレイテンシに関する第2の情報と、
    を含む
    ことを特徴とする請求項2に記載のバスシステム。
  4. 前記バスは、
    前記第1の情報を記憶する第1の記憶手段と、
    前記第2の情報を記憶する第2の記憶手段と、
    を有する
    ことを特徴とする請求項3に記載のバスシステム。
  5. 前記第1のスレーブは、前記第1のスレーブが前記第1のリクエストに対する処理を開始してから前記第1のレスポンスを返信するまでのレイテンシに関する第3の情報と、前記処理に関するタイミング制約に関する第4の情報と、に基づいて前記第1の情報を決定し、該第1の情報を前記確定情報に含めて前記バスに送信するよう構成され、
    前記バスは、前記第2の情報を記憶する記憶手段を有する、
    ことを特徴とする請求項3に記載のバスシステム。
  6. 前記第1のスレーブは、前記第1のリクエストに対する第1のレスポンスの返信タイミングが前記第2のリクエストに対する第2のレスポンスの返信タイミングより前になることが確定したとき、該確定した旨を示す確定情報を前記通知として前記判定手段に送信するよう構成されており、
    前記判定手段は、前記第1のスレーブから前記確定情報を受信した場合、前記転送を許可する
    ことを特徴とする請求項1に記載のバスシステム。
  7. 前記判定手段は、前記第2のリクエストに対するレスポンスの返信タイミングが前記第1のリクエストに対するレスポンスの返信タイミングの後になることを保証する必要がない場合、転送を許可する
    ことを特徴とする請求項1に記載のバスシステム。
  8. 前記第1のスレーブおよび前記第2のスレーブはDRAMコントローラであり、
    前記第1のリクエスト及び前記第2のリクエストは、両方がDRAMからのデータのリードであるか、又は、両方がDRAMに対するデータのライトである
    ことを特徴とする請求項1乃至3及び6の何れか1項に記載のバスシステム。
  9. マスタと、第1のスレーブと、第2のスレーブと、前記マスタと前記第1のスレーブと前記第2のスレーブとを接続するバスと、を含むバスシステムの制御方法であって、
    前記マスタは、前記第1のスレーブに対して第1のリクエストを発行した後、前記第1のリクエストに対するレスポンスを受信する前に、前記第2のスレーブに対して第2のリクエストを発行可能に構成されており、
    前記バスが、前記第2のリクエストを受信したとき該第2のリクエストの前記第2のスレーブへの転送を許可するか否かを判定する判定工程と、
    前記バスが、前記判定工程により前記転送を許可しないと判定されている間、前記第2のリクエストの前記第2のスレーブへの転送を保留する保留工程と、
    を含み、
    前記判定工程では、前記第1のリクエストの処理に関する前記第1のスレーブからの通知に基づいて前記転送を許可するか否かを判定する
    ことを特徴とする制御方法。
JP2019113919A 2019-06-19 2019-06-19 バスシステムおよびその制御方法 Active JP7493311B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019113919A JP7493311B2 (ja) 2019-06-19 バスシステムおよびその制御方法
US16/900,213 US11354263B2 (en) 2019-06-19 2020-06-12 Bus system permitting parallel access by a master to a plurality of slaves and method of controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019113919A JP7493311B2 (ja) 2019-06-19 バスシステムおよびその制御方法

Publications (2)

Publication Number Publication Date
JP2021002080A true JP2021002080A (ja) 2021-01-07
JP7493311B2 JP7493311B2 (ja) 2024-05-31

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728816B1 (en) * 2001-02-09 2004-04-27 Lsi Logic Corporation Simple mechanism for guaranteeing in order read data return on a split transaction bus
WO2011065354A1 (ja) * 2009-11-26 2011-06-03 日本電気株式会社 バスモニタ回路及びバスモニタ方法
JP2012073851A (ja) * 2010-09-29 2012-04-12 Sony Corp バスシステムおよびそのデッドロック回避回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728816B1 (en) * 2001-02-09 2004-04-27 Lsi Logic Corporation Simple mechanism for guaranteeing in order read data return on a split transaction bus
WO2011065354A1 (ja) * 2009-11-26 2011-06-03 日本電気株式会社 バスモニタ回路及びバスモニタ方法
JP2012073851A (ja) * 2010-09-29 2012-04-12 Sony Corp バスシステムおよびそのデッドロック回避回路

Also Published As

Publication number Publication date
US20200401545A1 (en) 2020-12-24
US11354263B2 (en) 2022-06-07

Similar Documents

Publication Publication Date Title
JP6058122B2 (ja) バスマスタ、バスシステム及びバス制御方法
JP6087532B2 (ja) 同時保留中データアクセスリクエストのためのデータハザード処理
US7836144B2 (en) System and method for a 3-hop cache coherency protocol
JP2008276391A (ja) メモリアクセス制御装置
KR20180071967A (ko) 데이터 처리
JP2014228915A (ja) データ処理装置
US20200401545A1 (en) Bus system and method of controlling the same
JP4531223B2 (ja) 集合的メモリを共有する複数のプロセッサを備えたデータ処理装置
US9798492B2 (en) Semiconductor device including a plurality of function blocks
JP2007172112A (ja) メモリコントローラ
JP4902640B2 (ja) 集積回路、及び集積回路システム
EP3788494B1 (en) Transfer protocol in a data processing network
US10713187B2 (en) Memory controller having data access hint message for specifying the given range of one or more memory addresses
JP7493311B2 (ja) バスシステムおよびその制御方法
TWI382313B (zh) 管理分離匯流排上匯流排代理之間的資料流程的方法和系統
JP6146508B1 (ja) 同期処理ユニット、デバイス、システムおよび方法
US20190138465A1 (en) Method to reduce write responses to improve bandwidth and efficiency
JP4924970B2 (ja) データ処理システム
JP2907533B2 (ja) マルチプロセッサシステム
US20200257471A1 (en) Control apparatus and control method
JP2008165463A (ja) バス制御装置
JP6565729B2 (ja) 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法
JPH03217960A (ja) マルチプロセッサシステムにおけるデータ通信方式
JP2012173847A (ja) バス調停装置およびバス調停方法
JP2011018355A (ja) 情報処理装置およびメモリアクセス調停方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240111

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240422

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240521