JP2022018798A - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP2022018798A
JP2022018798A JP2020122158A JP2020122158A JP2022018798A JP 2022018798 A JP2022018798 A JP 2022018798A JP 2020122158 A JP2020122158 A JP 2020122158A JP 2020122158 A JP2020122158 A JP 2020122158A JP 2022018798 A JP2022018798 A JP 2022018798A
Authority
JP
Japan
Prior art keywords
buffer
destination
entry
request
entry number
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.)
Pending
Application number
JP2020122158A
Other languages
English (en)
Inventor
昂平 道畠
Kohei Michihata
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020122158A priority Critical patent/JP2022018798A/ja
Priority to US17/308,300 priority patent/US11443783B2/en
Publication of JP2022018798A publication Critical patent/JP2022018798A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】先行するリクエストの宛先への送信が不可能である場合でも処理能力の低下を抑制する。【解決手段】リクエストを第1バッファ2へ書き込む際に、リクエストを書き込んだ第1バッファ2におけるエントリの識別情報を、リクエストの宛先に対応する第2バッファ6に記憶し、第2バッファ6にエントリの識別情報が記憶されている場合に、リクエストを送信可能と判断した宛先50について調停を行なうことでリクエストを送出する宛先を決定し、第1バッファ2における、決定した宛先50に対応する第2バッファ6から取得したエントリの識別情報によって特定されるエントリから前記リクエストを読み出す。【選択図】図1

Description

本発明は、半導体装置に関する。
バッファの制御方法として、先入れ先出し(FIFO:First In, First Out)が知られている。FIFOにおいては、先に書き込まれたデータが先に取り出される。
バッファの書き込みおよび読み出し制御において、FIFOは、単純な構成で実現できるとともに演算量も少なく、実装しやすい手法である。
特開2009-21872号公報
しかしながら、FIFOにおいては、先にバッファに書き込まれたリクエストの宛先に送信できない状況が生じた場合に、先に書き込まれたリクエストが読み出されるまで、後にバッファに書き込まれたリクエストを読み出すことができない。
図8はFIFOを用いたバッファ制御を説明するための図である。
この図8においては、FIFOバッファの下流側に宛先#0バッファ,宛先#1バッファおよび宛先#2バッファの3つの宛先バッファが配置されている。そして、宛先#1バッファおよび宛先#2バッファはいずれも空きがあるが、宛先#0バッファには空きがない状態となっている。また、FIFOバッファの先頭には、宛先#0バッファに格納するリクエストが格納されており、この宛先#0バッファへのリクエストに後続して、宛先#1バッファに格納するリクエストが格納されている。
宛先#0資源管理,宛先#1資源管理および宛先#2資源管理は、宛先#0バッファ,宛先#1バッファおよび宛先#2バッファの空き状況を管理し、空きがなくなった場合にFIFOバッファに通知する。
このような状態において、宛先#0バッファには空きがないため、FIFOバッファから宛先#0バッファへのリクエストを読み出すことができない。一方で、宛先#1バッファには空きがあるが、先行する宛先#0バッファへのリクエストを先にFIFOバッファから読み出さないと宛先#1バッファへのリクエストを読み出すことができない。
そのため、宛先#1バッファへのリクエストの読み出しが可能になるまでの待ち時間が増加し、宛先#1バッファが置かれている送信経路上の処理能力低下を引き起こすという課題がある。
1つの側面では、本発明は、先行するリクエストの宛先への送信が不可能である場合でも処理能力の低下を抑制することを目的とする。
このため、この半導体装置は、複数の宛先に対して送出される複数のリクエストが書き込まれる第1バッファと、前記宛先毎に備えられた複数の第2バッファとを備え、リクエストを前記第1バッファへ書き込む際に、前記リクエストを書き込んだ前記第1バッファにおけるエントリの識別情報を、当該リクエストの宛先に対応する前記第2バッファに記憶し、前記第2バッファに前記エントリの識別情報が記憶されている場合に、前記宛先への前記リクエストの送信可否を判断し、前記リクエストを送信可能と判断した宛先について調停を行なうことで前記リクエストを送出する宛先を決定し、前記第1バッファにおける、決定した前記宛先に対応する前記第2バッファから取得した前記エントリの識別情報によって特定されるエントリから前記リクエストを読み出す。
一実施形態によれば、先行するリクエストの宛先への送信が不可能である場合でも処理能力の低下を抑制することができる。
実施形態の一例としてのバッファ制御システムの構成を模式的に示す図である。 実施形態の一例としてのバッファ制御システムにおける処理を説明するための図である。 実施形態の一例としてのバッファ制御システムにおける処理を説明するための図である。 実施形態の一例としてのバッファ制御システムにおける処理を説明するための図である。 実施形態の一例としてのバッファ制御システムにおける処理を説明するための図である。 実施形態の一例としてのバッファ制御システムにおける処理を説明するための図である。 実施形態の一例としてのバッファ制御システムにおける処理を説明するための図である。 FIFOを用いたバッファ制御を説明するための図である。
以下、図面を参照して本半導体装置にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)構成
図1は実施形態の一例としてのバッファ制御システム1の構成を模式的に示す図である。
バッファ制御システム1は、図示しない送信元から送信されるリクエストを、一時的に格納した後、宛先である宛先バッファ50に転送する半導体装置である。リクエストをデータといってもよい。
図1に示す例においては、宛先バッファ50は、宛先#0バッファ50-1,宛先#1バッファ50-2および宛先#2バッファ50-3を備える。宛先#0バッファ50-1,宛先#1バッファ50-2および宛先#2バッファ50-3は、それぞれ複数(図1に示す例では4つ)の記憶領域(格納領域)を備え、送信元から送信されたリクエストが、これらのいずれかの記憶領域に格納される。
以下、宛先#0バッファ50-1,宛先#1バッファ50-2および宛先#2バッファ50-3を特に区別しない場合には、宛先バッファ50と表記する。宛先バッファ50に備えられた複数の記憶領域において、データを未格納の記憶領域を空き領域という場合がある。
バッファ制御システム1は、図1に示すように、バッファ2,エントリ番号管理部3,宛先#0エントリ番号管理部4-1,宛先#1エントリ番号管理部4-2,宛先#2エントリ番号管理部4-3,書き込み/読み出しポインタ5-1~5-3,エントリ番号用バッファ6-1~6-3,宛先判別部7,宛先資源管理部8,調停参加制御部9-1~9-3,調停部10およびエントリセレクタ11を備える。
バッファ2は、送信元から送信され、宛先バッファ50に転送するリクエスト(データ)を一時的に格納する記憶装置(メモリ)である。バッファ2は、例えば、Random Access Memoryによって実現される。
バッファ2は、複数(図1に示す例では8つ)の記憶領域(データ格納領域)を備え、これらの記憶領域に送信元から送信されたリクエストが格納される。バッファ2におけるこれらの記憶領域をエントリという場合がある。各エントリは、ユニークな識別情報であるエントリ番号(エントリNo.)によって特定される。
バッファ2は、複数の宛先(宛先バッファ50)に対して送出される複数のリクエストが書き込まれる第1バッファに相当する。
バッファ2のエントリに格納されたリクエストは、後述するエントリセレクタ11からの指示に従って読み出され、その宛先である宛先バッファ50の記憶領域に書き込まれる。
また、リクエストが読み出されたエントリにおいては、格納されていたリクエストが削除され、データ未格納状態となる。図1に示す例では、データ未格納状態のエントリに「空き」と表示している。バッファ2において、データ未格納のエントリを空きエントリといってもよい。
バッファ2に対するデータの書き込みや読み出しは、図示しないバッファ制御部によって行なわれてもよい。
エントリ番号管理部3は、バッファ2のエントリの使用状況(空き状況)を管理する。エントリ番号管理部3は、バッファ2の各エントリに対応させて複数(図1に示す例では8つ)の記憶領域を備える。そして、エントリ番号管理部3は、バッファ2においてリクエストが格納されているエントリについて、対応する記憶領域にデータが格納されている旨を示す識別情報を記憶させる(図3に示す例では「使用中」と表示)。このように、エントリ番号管理部3は、バッファ2のどのエントリが使用中であるかを管理する。
また、エントリ番号管理部3は、バッファ2においてリクエストが格納されていないエントリに対応する記憶領域に、データ(リクエスト)が格納されていない旨を示す識別情報を記憶させる(図1に示す例では「空き」と表示)。
また、エントリ番号管理部3は、後述するエントリセレクタ11から、解放指示とともにエントリ番号が通知されると、このエントリ番号に対応する記憶領域にデータが格納されていない旨を示す識別情報(図1に示す状態では「空き」)を設定する。
宛先#0エントリ番号管理部4-1は、バッファ2における、宛先が宛先#0バッファ50-1であるデータを格納しているエントリを管理する。
宛先#0エントリ番号管理部4-1は、書き込み/読み出しポインタ5-1とエントリ番号用バッファ6-1とを備える。
エントリ番号用バッファ6-1は、バッファ2に備えられた複数のエントリのうち、宛先が宛先#0バッファ50-1であるデータを格納するエントリのエントリ番号を格納する。エントリ番号用バッファ6-1は複数(図1に示す例では8個)の記憶領域を備え、これらの記憶領域に、宛先が宛先#0バッファ50-1であるデータを格納するエントリのエントリ番号が格納される。
エントリ番号用バッファ6-1はFIFO制御され、格納されてからの経過時間が最も長い、すなわち、最も古いデータが先に出力される。エントリ番号用バッファ6-1の出力は、エントリセレクタ11に入力される。
すなわち、本バッファ制御システム1においては、宛先が同じ複数のリクエストについては、その順序性が保たれる。
書き込み/読み出しポインタ5-1は、エントリ番号用バッファ6-1におけるデータ(宛先が宛先#0バッファ50-1であるデータを格納するエントリのエントリ番号)の書き込み位置と読み出し位置とを管理する。書き込み/読み出しポインタ5-1は、書き込み位置を示す書き込みポインタと読み出し位置を示す読み出しポインタとを備える。書き込みポインタは、エントリ番号用バッファ6-1に備えられた複数の記憶領域のうち、次にデータの書き込みが行なわれるべき記憶領域(空き領域)を表す。
読み出しポインタは、エントリ番号用バッファ6-1に備えられた複数の記憶領域のうち、次にデータの読み出しが行なわれるべき記憶領域を表す。
上述の如く、エントリ番号用バッファ6-1は、データの書き込みと読み出しとがFIFO制御で行なわれる。そのため、書き込み/読み出しポインタ5において、読み出しポインタは、エントリ番号用バッファ6-1における最も古いデータが記憶されている記憶領域の位置を示す。なお、エントリ番号用バッファ6-1に未読み出しのデータが格納されている場合には、書き込みポインタの示す位置と読み出しポインタの示す位置とは異なるものとなる。一方、エントリ番号用バッファ6-1に未読み出しのデータが格納されていない場合には、書き込みポインタの示す位置と読み出しポインタの示す位置とは一致する。
書き込み/読み出しポインタ5-1は、エントリ番号用バッファ6-1に未読み出しのデータが格納されている場合、すなわち、書き込みポインタが示す位置と読み出しポインタが示す位置とが異なる場合に、調停参加制御部9-1に調停参加信号を入力する。
一方で、書き込み/読み出しポインタ5-1は、エントリ番号用バッファ6-1に未読み出しのデータが格納されていない場合、すなわち、書き込みポインタが示す位置と読み出しポインタが示す位置とが同じ場合に、調停参加制御部9-1への調停参加信号の入力を抑止する。
宛先#1エントリ番号管理部4-2は、バッファ2における、宛先が宛先#1バッファ50-2であるデータを格納しているエントリを管理する。宛先#1エントリ番号管理部4-2は、書き込み/読み出しポインタ5-2とエントリ番号用バッファ6-2とを備える。
宛先#1バッファ50-2における書き込み/読み出しポインタ5-2およびエントリ番号用バッファ6-2は、宛先#0バッファ50-1における書き込み/読み出しポインタ5-1およびエントリ番号用バッファ6-1と同様に機能する。なお、便宜上、これらの各部の機能についての具体的な説明は省略する。
宛先#2エントリ番号管理部4-3は、バッファ2における、宛先が宛先#2バッファ50-3であるデータを格納しているエントリを管理する。宛先#2エントリ番号管理部4-3は、書き込み/読み出しポインタ5-3とエントリ番号用バッファ6-3とを備える。
宛先#2バッファ50-3における書き込み/読み出しポインタ5-3およびエントリ番号用バッファ6-3は、宛先#0バッファ50-1における書き込み/読み出しポインタ5-1およびエントリ番号用バッファ6-1と同様に機能する。なお、便宜上、これらの各部の機能についての具体的な説明は省略する。
以下、宛先#0エントリ番号管理部4-1,宛先#1エントリ番号管理部4-2および宛先#2エントリ番号管理部4-3を区別しない場合には、宛先毎エントリ管理部4という場合がある。
また、以下、書き込み/読み出しポインタ5-1~5-3を区別しない場合には、書き込み/読み出しポインタ5という場合がある。さらに、エントリ番号用バッファ6-1~6-3を区別しない場合には、エントリ番号用バッファ6という場合がある。エントリ番号用バッファ6-1~6-3は、宛先バッファ50毎に備えられた複数の第2バッファに相当する。
本バッファ制御システム1においては、リクエストをバッファ2へ書き込む際に、このリクエストを書き込んだバッファ2におけるエントリのエントリ番号が、当該リクエストの宛先に対応するエントリ番号用バッファ6に記憶される。
各エントリ番号用バッファ6にはエントリ番号管理部3が接続されており、エントリ番号管理部3から通知されるエントリ番号が、書き込み/読み出しポインタ5の書き込み位置を示すポインタによって示される空き領域に記憶される。また、各エントリ番号用バッファ6は、後述するエントリセレクタ11に接続されており、書き込み/読み出しポインタ5の読み出し位置を示すポインタによって示される記憶領域から読み出されたデータが、エントリセレクタ11に送出される。
宛先判別部7は、送信元からのリクエストの宛先(送出先,宛先バッファ50)を特定し、その宛先バッファ50に対応する宛先毎エントリ管理部4の書き込み/読み出しポインタ5に通知信号(宛先エントリ番号用バッファ選択信号)を入力する。
宛先毎エントリ管理部4においては、この宛先エントリ番号用バッファ選択信号の受信をトリガとして、例えば、バッファ2の空きエントリへのデータの書き込みが行なわれたことを検知してもよい。すなわち、宛先エントリ番号用バッファ選択信号の受信をトリガとして、エントリ番号用バッファ6へのエントリ番号の設定や書き込み/読み出しポインタ5の更新を行なってもよい。
宛先資源管理部8は、宛先バッファ50の使用状況を管理する。宛先資源管理部8は、宛先#0資源管理部8-1,宛先#1資源管理部8-2および宛先#2資源管理部8-3を備える。
宛先#0資源管理部8-1は、宛先#0バッファ50-1の使用状況を管理する。宛先#0資源管理部8-1は、宛先#0バッファ50-1においてデータの格納に使用中の記憶領域の数を計数するカウンタを備える。宛先資源管理部8-1は、宛先#0バッファ50-1に空き領域がある場合に、後述する調停参加制御部9-1に対して調停参加許可信号を入力する。
宛先#1資源管理部8-2は、宛先#1バッファ50-2の使用状況を管理する。宛先#1資源管理部8-2は、宛先#1バッファ50-2においてデータの格納に使用中の記憶領域の数を計数するカウンタを備える。宛先#1資源管理部8-2は、宛先#1バッファ50-2に空き領域がある場合に、調停参加制御部9-2に対して調停参加許可信号を入力する。
宛先#2資源管理部8-3は、宛先#2バッファ50-3の使用状況を管理する。宛先#2資源管理部8-3は、宛先#2バッファ50-3においてデータの格納に使用中の記憶領域の数を計数するカウンタを備える。宛先#2資源管理部8-3は、宛先#2バッファ50-3に空き領域がある場合に、調停参加制御部9-3に対して調停参加許可信号を入力する。
調停部10は、異なる宛先バッファ50を宛先とする複数の書き込み要求に対する調停を行なう。調停部10は、宛先#0バッファ50-1,宛先#1バッファ50-2および宛先#2バッファ50-3のうち、2つ以上の宛先バッファ50を宛先とする複数の書き込み要求に対して、一つの宛先(宛先バッファ50)を選択する調停を行なう。
調停部10は、調停の結果、調停に勝利した宛先(宛先バッファ50)を特定する情報をエントリセレクタ11に入力する。
調停部10による、複数の宛先バッファ50に対する書き込み要求の中から一つの書き込み要求(一つの宛先バッファ50)を選択する手法としては、既知の種々の手法を適用してもよい。例えば、調停部10は、複数の宛先バッファ50に対する書き込み要求の中からランダムに一つの書き込み要求(一つの宛先バッファ50)を選択してもよい。また、調停部10は、複数の宛先バッファ50に対する書き込み要求の中から、所定の順序に従って一つの書き込み要求(一つの宛先バッファ50)を選択してもよい。さらに、調停部10は、特定の宛先に対する処理に重みを設定し、優先して処理させてもよい。
なお、本例においては、一つの書き込み要求(宛先バッファ50)を選択することを示したが、これに限定されるものではない。例えば、複数の宛先バッファ50に並行して書き込みを可能とする場合には、2つ以上の書き込み要求(宛先バッファ50)を選択してもよく、適宜変更して実施することができる。
なお、いずれか一つの宛先毎エントリ管理部4からのみ、宛先バッファ50を宛先とする書き込み要求が入力された場合には、調停部10は、その一つの書き込み要求の宛先(宛先バッファ50)を特定する情報をエントリセレクタ11に入力する。
本バッファ制御システム1においては、エントリ番号用バッファ6にエントリ番号が記憶されている場合に、調停部10が、後述する調停参加制御部9がリクエストを送信可能と判断した宛先について調停を行なうことでリクエストを送出する宛先を決定する。
調停参加制御部9-1は、宛先資源管理部8-1から送信される調停参加許可信号に基づき、宛先#0エントリ番号管理部4-1から入力される調停参加信号に対して、調停参加の可否を決定する。
調停参加制御部9-1は、宛先#0エントリ番号管理部4-1から調停参加信号された場合において、宛先資源管理部8-1から調停参加許可信号が入力されている場合に、調停部10に対して、宛先#0バッファ50-1に対する書き込み要求(調停参加通知)を入力する。
調停参加制御部9-2は、宛先資源管理部8-2から送信される調停参加許可信号に基づき、宛先#1エントリ番号管理部4-2から入力される調停参加信号に対して、調停参加の可否を決定する。
調停参加制御部9-2は、宛先#1エントリ番号管理部4-2から調停参加信号された場合において、宛先資源管理部8-2から調停参加許可信号が入力されている場合に、調停部10に対して、宛先#1バッファ50-2に対する書き込み要求(調停参加通知)を入力する。
調停参加制御部9-3は、宛先資源管理部8-3から送信される調停参加許可信号に基づき、宛先#2エントリ番号管理部4-3から入力される調停参加信号に対して、調停参加の可否を決定する。
調停参加制御部9-3は、宛先#2エントリ番号管理部4-3から調停参加信号された場合において、宛先資源管理部8-3から調停参加許可信号が入力されている場合に、調停部10に対して、宛先#2バッファ50-3に対する書き込み要求(調停参加通知)を入力する。
以下、調停参加制御部9-1~9-3を特に区別しない場合には、調停参加制御部9と表記する。本バッファ制御システム1においては、エントリ番号用バッファ6にエントリ番号が記憶されている場合に、調停参加制御部9が宛先バッファ50へのリクエストの送信可否を判断する。
エントリセレクタ11には、調停部10が接続され、この調停部10から調停に勝利した宛先の情報が入力される。また、エントリセレクタ11には、各宛先毎エントリ管理部4が接続され、それぞれからエントリ番号が入力される。
エントリセレクタ11は、調停部10から入力される調停に勝利した宛先に基づき、当該宛先に対応する宛先毎エントリ管理部4から入力されるエントリ番号を選択する。そして、エントリセレクタ11は、バッファ2に対して、この選択したエントリ番号によって特定されるエントリからデータを読み出させる。
エントリセレクタ11は、バッファ2における、調停部10によって決定された宛先バッファ50に対応するエントリ番号用バッファ6から取得したエントリ番号によって特定されるエントリからリクエストを読み出させる。
バッファ2のエントリから読み出されたリクエストは、そのリクエストの宛先の宛先バッファ50に格納される。
また、エントリセレクタ11は、エントリ番号管理部3に対して、格納されていたリクエストが読み出され宛先バッファ50に送られたエントリについて、当該エントリに対応する記憶領域にリクエストが格納されていない旨を示す識別情報(図1に示す状態では「空き」)を設定させる。
エントリセレクタ11は、エントリ番号管理部3に対して、リクエストが読み出され宛先バッファ50に送られたエントリのエントリを示す情報(例えば、エントリ番号)とともに解放指示(RLS:release)を入力する。エントリ番号管理部3は、この解放指示とともに通知されたエントリ番号に基づき、当該エントリに対応する記憶領域にリクエストが格納されていない旨を示す識別情報(図1に示す状態では「空き」)を設定する。
(B)動作
上述の如く構成された実施形態の一例としてのバッファ制御システム1における処理を、図2~図7を用いて説明する。
まず、図2~図4を用いて、バッファ2へのリクエストの書き込み処理を説明する。なお、図2は本バッファ制御システム1の初期状態を例示する。
図2に例示する初期状態においては、宛先#0バッファ50-1の複数の記憶領域が全て使用され、空きがない状態となっている。バッファ2が宛先#0バッファ50-1を宛先とするリクエストを受信した場合、そのリクエストは宛先#0バッファ50-1に空きができるまで、バッファ2から読み出しができない。
このような状態において、送信元から、さらに宛先#0バッファ50-1に対する新規リクエストが発行されたものとする。
先ず、バッファ2が、送信元から宛先#0バッファ50-1を宛先(宛先#0行き)とする新規リクエスト受信する(図3の符号A1参照)。
バッファ制御部は、エントリ番号管理部3を参照することでバッファ2における空きエントリを確認し、その空きエントリに受信したリクエストを書き込む(図3の符号A2参照)。図3に示す例においては、エントリ0に新しいリクエストが書き込まれている。
これと同時に、エントリ番号管理部3は、データの書き込みを行なったエントリ0に対応する記憶領域にリクエストが格納されていることを示す「使用中」を設定する(図3の符号A3参照)。
また、宛先判別部7は、上述したバッファ2の空きエントリへのリクエストの書き込みと同時に、当該リクエストの宛先を確認し、書き込みが行なわれたエントリのエントリ番号を、その宛先(本例では、宛先#0バッファ50-1)に対応するエントリ番号用バッファ6-1に書き込む(図3の符号A4参照)。
さらに、宛先#0エントリ番号管理部4-1において、書き込み/読み出しポインタ5-1は、上述したバッファ2の空きエントリへのデータの書き込みと同時に、エントリ番号用バッファ6-1におけるエントリ番号の書き込み位置を示す書き込みポインタをインクリメントする(図3の符号A5参照)。
書き込み/読み出しポインタ5-1において、書き込みポインタが更新され、書き込みポインタが示す位置と読み出しポインタが示す位置とが異なる場合に、書き込み/読み出しポインタ5-1は、読み出しのために調停参加信号を生成し、調停参加制御部9-1に対して出力する(図3の符号A6参照)。
ここで、宛先#0バッファ50-1には空き領域がないため(図3の符号A7参照)、宛先#0資源管理部8-1からの調停参加許可信号が無効になっており(図3の符号A8参照)、その結果、調停参加制御部9-1において調停参加が抑止される(図3の符号A9参照)。
その後、送信元から宛先#1バッファ50-2に対する新規リクエストが発行されたものとする。
バッファ2が、送信元から宛先#1バッファ50-2を宛先(宛先#1行き)の新規リクエスト受信する(図4の符号A10参照)。
バッファ制御部は、エントリ番号管理部3を参照することでバッファ2における空きエントリを確認し、その空きエントリに受信したリクエストを書き込む(図4の符号A11参照)。
これと同時に、エントリ番号管理部3は、リクエストの書き込みを行なったエントリ1に対応する記憶領域にリクエストが格納されていることを示す「使用中」を設定する(図4の符号A12参照)。
また、宛先判別部7は、上述したバッファ2の空きエントリへのリクエストの書き込みと同時に、リクエストの宛先を確認し、書き込みが行なわれたエントリのエントリ番号を、その宛先(本例では、宛先#1バッファ50-2)に対応するエントリ番号用バッファ6-2に書き込む(図4の符号A13参照)。
さらに、宛先#1エントリ番号管理部4-2において、書き込み/読み出しポインタ5-2は、上述したバッファ2の空きエントリへのリクエストの書き込みと同時に、エントリ番号用バッファ6-2におけるエントリ番号の書き込み位置を示す書き込みポインタをインクリメントする(図4の符号A14参照)。
書き込み/読み出しポインタ5-2において、書き込みポインタが更新され、書き込みポインタが示す位置と読み出しポインタが示す位置とが異なる場合に、書き込み/読み出しポインタ5-2は、読み出しのために調停参加信号を生成し、調停参加制御部9-2に対して出力する(図4の符号A15参照)。
ここで、宛先#1バッファ50-2には空き領域があるため(図4の符号A16参照)、宛先#1資源管理部8-2からの調停参加許可信号が有効になっており(図4の符号A17参照)、その結果、調停参加制御部9-2において調停参加が抑止されず、調停参加となる(図4の符号A18参照)。
上述の如くバッファ2へのリクエストの書き込みが完了した後には、次に、以下に示すように、バッファ2からのリクエストの読み出し処理が行なわれる。
図5~図7を用いて、バッファ2からのリクエストの読み出し処理を説明する。
エントリ番号用バッファ6にエントリ番号が格納された宛先毎エントリ管理部4から、エントリセレクタ11に対して、読み出しポインタが指し示す位置のエントリ番号が出力される。
図5に示す例においては、宛先#0エントリ番号管理部4-1のエントリ番号用バッファ6-1から“エントリ0”が、宛先#1エントリ番号管理部4-2のエントリ番号用バッファ6-2から“エントリ1”が、それぞれエントリセレクタ11に出力されている(図5のB1参照)。
調停部10は、宛先間の調停を行ない、どの宛先のエントリ番号用バッファ6を選択するか決定する。図5に示す例においては、宛先資源管理部8-1から調停参加制御部9-1へ調停参加許可信号が出力されていないので、宛先#1エントリ番号管理部4-2にかかる宛先#1バッファ50-2に対するリクエストが勝者となる(図5の符号B2参照)。
エントリセレクタ11は、調停で勝者となった宛先のエントリ番号を選択する。図5に示す例においては、エントリセレクタ11は、エントリ1を選択する(図5の符号B3参照)。エントリセレクタ11は、選択したエントリ番号が示す位置のリクエストをバッファ2から読み出す。図5に示す例においては、バッファ2のエントリ1からリクエストが読み出される(図5の符号B4参照)。この際、先行してバッファ2に格納されている宛先#0バッファ50-1へのリクエストを追い抜いて、後続してバッファ2に格納された宛先#1バッファ50-2へのリクエストが先に処理されることになる。
エントリセレクタ11は、バッファ2からリクエストを読み出した後、エントリ番号管理部3における、バッファ2においてリクエストを取り出したエントリのエントリ番号に対応する記憶領域に対して、使用中から空きに変更させる(図6の符号B5参照)。
また、エントリ番号管理部3における使用中から空きへの変更とともに、バッファ2におけるリクエストが読み出されたエントリ番号に対応する記憶領域を空きに変更する(図6の符号B6参照)。これにより、バッファ2における当該エントリが再利用可能な状態となる。
さらに、エントリ番号管理部3における使用中から空きへの変更とともに、宛先資源管理部8-2の図示しないカウンタがインクリメントされる(図6の符号B7)。
また、エントリ番号管理部3における使用中から空きへの変更と同時に、宛先#1バッファ50-2を宛先とする宛先#1エントリ番号管理部4-2の書き込み/読み出しポインタ5-2が、その読み出しポインタをインクリメントする(図6の符号B8)。
さらに、エントリ番号管理部3における使用中から空きへの変更と同時に、宛先#1エントリ番号管理部4-2のエントリ番号用バッファ6-2の先頭の記憶領域が空きに変更される(図6の符号B9参照)。
その後、バッファ2のエントリ1からデータが読み出したリクエストが、その宛先である宛先#1バッファ50-2の記憶領域に格納される(図7の符号B10参照)。
(C)効果
このように、実施形態の一例としてのバッファ制御システム1によれば、宛先バッファ50毎にエントリ番号用バッファ6を備える。そして、バッファ2においてリクエストを格納したエントリのエントリ番号を、当該リクエストの宛先に対応するエントリ番号用バッファ6に格納する。
これにより、先行するリクエストの宛先(例えば、宛先#0バッファ50-1)への送信が不可能、且つ、後続するリクエストの宛先(例えば、宛先#1バッファ50-2)への送信が可能なときに、先行リクエストを追い抜いて後続リクエストをバッファ2から読み出すことができる。
宛先毎エントリ管理部4において、エントリ番号用バッファ6をFIFO制御し、書き込み/読み出しポインタ5の書き込みポインタが示す位置と読み出しポインタが示す位置とを比較する。これにより、簡素な構成で、エントリ番号用バッファ6にエントリ番号が格納されているか否かを容易に判断することができる。従って、遅滞なく調停参加信号を出力することができ、処理の高速化を実現することができる。
調停部10が、異なる宛先バッファ50を宛先とする複数の書き込み要求に対する調停を行なうことで、複数の宛先バッファ50に対してリクエストの送信が可能なときに、バッファ2から効率的にリクエストを選択し処理することができる。
(D)その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
1 バッファ制御システム
2 バッファ
3 エントリ番号管理部
4 宛先毎エントリ管理部
4-1 宛先#0エントリ番号管理部
4-2 宛先#1エントリ番号管理部
4-3 宛先#2エントリ番号管理部
5-1~5-3,5 書き込み/読み出しポインタ
6-1~6-3,6 エントリ番号用バッファ
7 宛先判別部
8 宛先資源管理部
8-1 宛先#0資源管理部
8-2 宛先#1資源管理部
8-3 宛先#2資源管理部
9-1~9-3,9 調停参加制御部
10 調停部
11 エントリセレクタ
50-1 宛先#0バッファ
50-2 宛先#1バッファ
50-3 宛先#2バッファ
50 宛先バッファ

Claims (5)

  1. 複数の宛先に対して送出される複数のリクエストが書き込まれる第1バッファと、
    前記宛先毎に備えられた複数の第2バッファとを備え、
    リクエストを前記第1バッファへ書き込む際に、前記リクエストを書き込んだ前記第1バッファにおけるエントリの識別情報を、当該リクエストの宛先に対応する前記第2バッファに記憶し、
    前記第2バッファに前記エントリの識別情報が記憶されている場合に、
    前記宛先の前記リクエストの送信可否を判断し、前記リクエストを送信可能と判断した宛先について調停を行なうことで前記リクエストを送出する宛先を決定し、
    前記第1バッファにおける、決定した前記宛先に対応する前記第2バッファから取得した前記エントリの識別情報によって特定されるエントリから前記リクエストを読み出す
    ことを特徴とする半導体装置。
  2. 前記第2バッファがFIFO制御される
    ことを特徴とする、請求項1に記載の半導体装置。
  3. 前記第2バッファにおける最も古い前記エントリの識別情報の位置を示す読み出し位置情報と、前記第2バッファにおいて次にリクエストの書き込みが行なわれるべき空き領域の位置を示す書き込み位置情報と
    を備えることを特徴とする、請求項2に記載の半導体装置。
  4. 前記宛先におけるデータ格納領域に空き領域がある場合に、前記宛先への前記リクエストの送信が可能であると判断する
    ことを特徴とする、請求項1~3のいずれか1項に記載の半導体装置。
  5. 前記第1バッファのエントリ毎に使用状態を管理する
    ことを特徴とする、請求項1~4のいずれか1項に記載の半導体装置。
JP2020122158A 2020-07-16 2020-07-16 半導体装置 Pending JP2022018798A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020122158A JP2022018798A (ja) 2020-07-16 2020-07-16 半導体装置
US17/308,300 US11443783B2 (en) 2020-07-16 2021-05-05 Semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020122158A JP2022018798A (ja) 2020-07-16 2020-07-16 半導体装置

Publications (1)

Publication Number Publication Date
JP2022018798A true JP2022018798A (ja) 2022-01-27

Family

ID=79292741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020122158A Pending JP2022018798A (ja) 2020-07-16 2020-07-16 半導体装置

Country Status (2)

Country Link
US (1) US11443783B2 (ja)
JP (1) JP2022018798A (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5115066B2 (ja) 2007-07-12 2013-01-09 富士通株式会社 パケット伝送方法及び装置
US8972995B2 (en) * 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US10152434B2 (en) * 2016-12-20 2018-12-11 Advanced Micro Devices, Inc. Efficient arbitration for memory accesses

Also Published As

Publication number Publication date
US20220020407A1 (en) 2022-01-20
US11443783B2 (en) 2022-09-13

Similar Documents

Publication Publication Date Title
US7219178B2 (en) Bus deadlock avoidance
EP0644487B1 (en) Scalable system interrupt structure for a multiprocessing system
US20100325327A1 (en) Programmable arbitration device and method therefor
US8615629B2 (en) Access scheduler
JPS58225432A (ja) 要求バツフア装置
US8155134B2 (en) System-on-chip communication manager
JP4801725B2 (ja) 演算処理装置及び演算処理装置の制御方法
JPH10504665A (ja) バスブリッジにおけるトランザクション順序を維持し、遅延応答をサポートする方法及びそのための装置
CN102203752A (zh) 具有多个队列之间的仲裁的数据处理电路
KR20140048186A (ko) 메모리 콘트롤러와 이 메모리 콘트롤러의 작동방법
US5625778A (en) Method and apparatus for presenting an access request from a computer system bus to a system resource with reduced latency
US10061728B2 (en) Arbitration and hazard detection for a data processing apparatus
US7500038B2 (en) Resource management
US7844758B1 (en) Dynamic resource allocation scheme for efficient use of a queue
JP2022018798A (ja) 半導体装置
JP2011232917A (ja) 半導体集積回路、及びリクエスト制御方法
US7099972B2 (en) Preemptive round robin arbiter
US7916146B1 (en) Halt context switching method and system
US20070300040A1 (en) Method for Resource Sharing in a Multiple Pipeline Environment
US7574548B2 (en) Dynamic data transfer control method and apparatus for shared SMP computer systems
US6829647B1 (en) Scaleable hardware arbiter
JPH03111955A (ja) 待ち行列制御装置
US6625678B1 (en) Livelock avoidance method
JPH08314850A (ja) 計算機システムのバスブリッジ
JP4314230B2 (ja) 高速シフトタイプバッファ用システム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240502

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20240502