JP2022048644A - 半導体装置及び転送方法 - Google Patents

半導体装置及び転送方法 Download PDF

Info

Publication number
JP2022048644A
JP2022048644A JP2020154583A JP2020154583A JP2022048644A JP 2022048644 A JP2022048644 A JP 2022048644A JP 2020154583 A JP2020154583 A JP 2020154583A JP 2020154583 A JP2020154583 A JP 2020154583A JP 2022048644 A JP2022048644 A JP 2022048644A
Authority
JP
Japan
Prior art keywords
packet
packets
circuit
entry
priority
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
JP2020154583A
Other languages
English (en)
Other versions
JP7508962B2 (ja
Inventor
剛広 式部
Takehiro Shikibu
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 JP2020154583A priority Critical patent/JP7508962B2/ja
Priority to US17/352,406 priority patent/US11914538B2/en
Publication of JP2022048644A publication Critical patent/JP2022048644A/ja
Application granted granted Critical
Publication of JP7508962B2 publication Critical patent/JP7508962B2/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/124Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)

Abstract

【課題】複数のパケットを調停する回路を備えるシステムの処理性能の低下を抑制する。【解決手段】バッファ31に蓄積された複数のパケットからいずれかのパケットを選択して転送する半導体装置3であって、前記複数のパケットをグループ化するための互いに異なる複数の条件351を、前記複数の条件351の各々の優先順位に応じて切り替え、前記切り替えにより選択された条件351に基づき抽出されるグループに属する複数のパケットの中から、所定の選択方式でいずれかのパケットを選択して前記バッファ31から転送する。【選択図】図3

Description

本発明は、半導体装置及び転送方法に関する。
HPC(High-Performance Computing)等のコンピュータシステムでは、ネットワークを介して複数のコンピュータノード(以下、単に「ノード」と表記する場合がある)を相互に通信可能に接続し、複数のノードを並列に動作させることがある。
また、マルチコア又はメニーコアと呼ばれる、1つのCPULSI内に複数コア(ノード)を有するLSI、換言すれば半導体チップにおいて、複数コア間をネットワーク接続する構成であるネットワークオンチップが知られている。CPULSIは、Central Processing Unit Large Scale Integrationの略称である。
ネットワークオンチップでは、コア間のP2P(Point to Point)通信どうしのバス経路衝突を考慮した優先度設定が行なわれる。仮に、ネットワークオンチップがコア間でアンフェアな(不公平な)調停を行なう調停回路(アービタ)を有する場合、調停回路における調停により、コアにおいてデッドロック、ライブロック等が発生する可能性がある。
このため、例えば、ネットワークオンチップでは、LRU(Least Recently Used)を用いるフェアアービタを利用したバス優先度決定回路により、複数のコアのそれぞれから送出されたデータ、例えばパケットは、順番にバスを使用することができる。
特開2005-316609号公報 特開2002-117003号公報 特開平6-195313号公報
数GHzオーダで動作しパケットの合流が多層に亘る回路に調停回路を設ける場合、全てのパケットの種類、経路を考慮してフェアな回路を作ろうとすると、デコード、セレクト等の回路が複雑化し、指定された動作周波数以上の性能が得られない虞がある。
例えば、或る種類又は或る経路をグルーピングして調停をするように調停回路を形成し、回路の複雑化を抑制しようとする場合、特定の状況において、調停判断がフェアでない場合が起こり得る。このような調停判断の不公平により、例えば、全てのプロセスが足並みを揃えて動作する(例えば同期する)ようなプログラムをコンピュータシステムで実行させる場合、システム全体として処理性能が低下する場合がある。
このように、複数のパケットを公平に順次選択して転送する回路を備える場合、選択されるパケットに偏りが生じ、システムの処理速度が低下する可能性がある。
なお、上述した説明では、コア間のネットワークについて言及したが、これに限定されるものではない。例えば、CPU間を相互に通信可能に接続するネットワークにおいて、CPUの各々から送出されたパケットを公平に順次選択して転送する回路を備える場合においても、選択されるパケットに偏りが生じ、システムの処理速度が低下する可能性がある。
1つの側面では、本発明は、複数のパケットを調停する回路を備えるシステムの処理性能の低下を抑制することを目的の1つとする。
1つの側面では、半導体装置は、バッファに蓄積された複数のパケットからいずれかのパケットを選択して転送してよい。前記半導体装置は、前記複数のパケットをグループ化するための互いに異なる複数の条件を、前記複数の条件の各々の優先順位に応じて切り替えてよい。また、前記半導体装置は、前記切り替えにより選択された条件に基づき抽出されるグループに属する複数のパケットの中から、所定の選択方式でいずれかのパケットを選択して前記バッファから転送してよい。
1つの側面では、複数のパケットを調停する回路を備えるシステムの処理性能の低下を抑制することができる。
比較例に係る調停処理の一例を説明するための図である。 一実施形態に係るシステムの構成例を示すブロック図である。 一実施形態に係る調停回路の機能構成例を示すブロック図である。 フラグ情報管理部が記憶するフラグ情報の一例を示す図である。 距離観点LRUを説明するための図である。 優先調整モード選択部によるモードの選択処理の一例を説明するための図である。 一実施形態に係る調停回路の動作例を説明するための図である。 図7の例において、通常のLRUを用いた調停、及び、調停回路によるアルゴリズムを用いた調停、のそれぞれを行なった場合の、ABCDEFGH-TXで選択されるパケットの一例を示す図である。 調停回路の一例である回路のハードウェア(HW;Hardware)構成例を示すブロック図である。 図9に示すOLDER_LISTING及びENT_SELECTを含む回路のHW実装の一例を示すブロック図である。 調停回路の実装処理の動作例を説明するフローチャートである。 ユーザ設定処理の動作例を説明するフローチャートである。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕一実施形態
〔1-1〕比較例
図1は、比較例に係る調停処理の一例を説明するための図である。図1に示すように、コア等の送信元(「ソース」と称されてもよい)から送信される調停対象となるデータ、例えばパケットは、先入れ先出し方式のFIFO(First In - First Out)110及び120に格納される。
調停回路130は、FIFO110及び120から出力されるパケットを調停する際に、Aの観点による調停(A調停;符号A参照)を優先し、次いで、Bの観点による調停(B調停:符号B参照)によりパケットを選択(決定)する。なお、「観点」とは、例えば、ディレイ、パケット種別等のような、調停においてパケットを選択する(決定する)ために用いられるパケットの要素及び条件の一方又は双方を意味してよい。
このように、調停回路130では、調停の優先順位がA調停、B調停の順に与えられる。A調停及びB調停のそれぞれにおいて、LRUがパケットを公平にセレクトするため、パケットは、一定のアルゴリズムで公平に選択されるといえる。
図1の例において、調停を他の「観点」から見た場合、調停対象のパケットにはばらつきが存在する可能性があり、システムが実行するアプリケーションによっては、システムの処理性能を低下させる可能性がある。
なお、FIFOによっても順序保証ができるため、コアにおけるデッドロック、ライブロック等の発生を回避できる場合があるが、LRUによれば、フェアな調停による性能向上効果が見込めるため、以下の説明では、LRUが用いられるものとする。
〔1-2〕一実施形態の構成例
図2は、一実施形態に係るシステム1の構成例を示すブロック図である。システム1は、複数のコア間で通信を行なうコンピュータシステムの一例であり、1つ又は複数の半導体チップ、例えば、CPULSI等により実現されてよい。
システム1は、複数のコア間の通信の制御、例えば、パケットルーティングの制御に着目すると、例示的に、複数(図2では8個)のソース2-1~2-8、及び、複数(図2では5個)の調停回路3-1~3-5を備えてよい。なお、図2では、便宜上、システム1の構成部品及び接続線(リンク)の一部の図示を省略している。
以下、ソース2-1~2-8を区別しない場合にはソース2と表記し、調停回路3-1~3-5を区別しない場合には調停回路3と表記する。また、図2に例示するように、ソース2-1~2-8をソースA~Hと表記し、調停回路3-1~3-5を調停回路I~Mと表記する場合がある。
ソース2は、データ、例えばパケットの送信元の一例である。ソース2としては、例えば、プロセッサのコア、調停回路3、通信装置等の、データを出力(送信又は転送)し得る種々の装置であってよい。
調停回路3は、バッファに蓄積された複数のパケットからいずれかのパケットを選択して転送する半導体装置の一例である。調停回路3は、例えば、半導体チップに実装されるクロスバーバス等の集積回路であってよい。
例えば、調停回路3は、少なくとも2つの入力端(図示省略)と、出力端(図示省略)とを備えてよい。少なくとも2つの入力端、及び、出力端のそれぞれには、ソース2及び調停回路3のうちの一方が接続されてよい。調停回路3では、入力端で受信されたパケットが調停回路3において調停処理により選択され、選択されたパケットが出力端から出力されてよい。
以下、ソースA~Hから出力されるパケットをパケットA~Hと表記し、調停回路3-1~3-5から出力される選択されたパケットをパケットI~Mと表記する場合がある。
図2の例では、調停回路Iは、ソースA及びBの調停を行ない、パケットIを出力する。以下、調停回路3からの出力であるパケットI~Mを、調停回路3における調停対象のパケットの符号を並べて表記する場合がある。例えば、調停対象のパケットA及びBのいずれかの出力であるパケットIを、「パケットAB」と表記する場合がある。
〔1-3〕機能構成例
図3は、一実施形態に係る調停回路3の機能構成例を示すブロック図である。図2に示す調停回路3-1~3-5の各々が図3に示す調停回路3の機能構成を備えてもよいし、調停回路3-1~3-5のうちの一部の調停回路3が当該機能構成を備えてもよい。以下の説明では、例えば調停回路3-5が図3に例示する機能構成を備えるものとする。
図3に示すように、調停回路3は、機能構成として、例示的に、メモリ部31、空エントリ管理部32、順序管理部33、フラグ情報管理部34、モード選択部35、判定部36、及び、エントリ選択部37を備えてよい。
調停回路3が備えるこれらの機能構成は、例えば、論理回路により実現されてよい。一例として、調停回路3は、FPGA(Field Programmable Gate Array)等のPLD(Programmable Logic Device)により実現されてよい。FPGA等のPLDは、論理を再構成可能な論理回路の一例である。なお、調停回路3は、PLDに変えて、ASIC(Application Specific Integrated Circuit)等の論理回路により実現されてもよい。
メモリ部31は、調停回路3に入力されるパケットを蓄積するバッファの一例である。例えば、メモリ部31は、複数のエントリを備え、入力されるパケットを複数のエントリのうちのいずれかの空エントリに格納してよい。例えば、メモリ部31は、調停回路3の入力として、調停回路3の複数の入力端から入力されるパケットを空エントリに格納してよい。
メモリ部31におけるエントリの格納方式としては、例えば、FIFO方式とは異なり、格納された順序に関係なく、指定されたエントリからパケットを取得可能である種々の方式、例えば、MAP又はSETを用いる方式が挙げられる。メモリ部31は、例えば、SRAM(Static Random Access Memory)等の論理回路により実現されてよい。
空エントリ管理部32は、メモリ部31の空エントリを管理する。例えば、空エントリ管理部32は、調停回路3がパケットを受信した場合、メモリ部31のエントリのうちの空エントリを指定することで、受信したパケットを空エントリに格納させてよい。
順序管理部33は、メモリ部31のエントリにパケットが格納された順番を記憶する。例えば、順序管理部33は、空エントリ管理部32により指定されたエントリの情報に基づき、メモリ部31においてパケットが格納されるエントリを特定してよい。
フラグ情報管理部34は、パケットの固有情報の一例としてのフラグ情報34aを管理する。例えば、フラグ情報管理部34は、メモリ部31の複数のエントリのそれぞれに格納されるパケットのフラグ情報34aを記憶してよい。フラグ情報管理部34のうちのフラグ情報34aの格納領域は、例えば、SRAM等の論理回路により実現されてよい。
図4は、フラグ情報管理部34が記憶するフラグ情報34aの一例を示す図である。図4に示すように、フラグ情報34aは、例示的に、後述するモード351ごとに1以上の項目を含んでよい。図4の例では、便宜上、モード351に対応する項目を“a”~“d”と表記する。“a”~“d”のそれぞれは、図3に示す符号351a~351dに対応する。
図4に例示するように、フラグ情報34aは、メモリ部31のエントリごとに、各項目についてのフラグを含んでよい。フラグは、パケットごとに取得される複数種類の情報の一例であり、例えば、エントリに格納されたパケットがモード351に応じたグルーピングに含まれるか否かを示す情報の一例である。図4の例では、メモリ部31の1番目のエントリにおいて、モード351の“a”及び“b”に対応するフラグがオン(例えば“1”)にセットされる。この場合、1番目のエントリのパケットは、モード351の“a”及び“b”に応じたグルーピングに含まれることを示す。
なお、パケットは、フラグ情報34aに相当する情報をヘッダ部、データ部又は全体として有している。このため、フラグ情報管理部34は、例えば、メモリ部31のエントリに格納されるパケットのうち、パケットのヘッダ部、データ部又は全体から、情報を参照するためのロジックを、フラグ情報34aとして備えてもよい。例えば、フラグ情報管理部34は、ヘッダ部の宛先、データ部の有無、パケットのサイズ、等の情報をエントリから参照するためのロジックを、フラグ情報34aとしてモード選択部35に提供してもよい。
モード選択部35は、フラグ情報管理部34が管理するエントリごとのフラグ情報34aに基づき、複数種類のフラググループを形成し、各フラググループ内の優先度を決定して、モード351を選択する。例えば、モード選択部35は、フラググループごとに、互いに異なる観点のモード351を設定してよい。
モード選択部35は、図3に例示するように、複数(図3の例では4つ)のモード351、優先調整モード選択部352、LRU選択部353、及び、ステージング部354を備えてよい。
複数のモード351の各々は、パケットが有しているフラグ情報34aをフラググループとしてまとめるための条件(ルール)の一例である。複数のモード351間では、複数のパケットをフラググループとしてまとめる際に着目するフラグ情報34aが互いに異なる。換言すれば、複数のモード351のそれぞれは、パケットごとに取得される複数種類の情報のうちの、互いに異なる種類の情報に基づき、複数のパケットをグループ化するといえる。このように、複数のモード351は、バッファに蓄積されたパケットを互いに異なる観点でグルーピングする。複数のモード351のそれぞれは、例えば、LRUのロジックとして論理回路に実装されてよい。
複数のモード351は、例えば、種別観点LRU351a、距離観点LRU351b、宛先観点LRU351c、及び、データ観点LRU351d等を含んでよい。なお、モード351としては、上述した例に限定されるものではなく、種々の観点によるLRUが用いられてよい。例えば、モード351には、単純なLRU、換言すれば、全てのパケットのフラグをオンにするモードが含まれてもよい。
フラグ情報管理部34は、入力されるパケットに基づきフラグ情報34aを生成することで、これらのモード351の各々において、メモリ部31のエントリからフラググループを選択できるようにするのである。
種別観点LRU351aは、パケットの種類、例えば“OPCODE”に応じたフラググループに関する。種別観点LRU351aにより、調停により選択されるパケット間の命令の偏りを減少させることができる。種別観点LRU351aでは、例えば、“OPCODE”等に基づき、「要求」及び「応答」の一方又は双方の観点のフラググループが用いられる。「要求」は、例えば、パケットの機能別、LD(Lead)/ST(Store)別、その他等の観点のフラグ情報34aを用いてよい。「応答」は、例えば、コア方向、メモリコントローラ方向等の観点のフラグ情報34aを用いてよい。
距離観点LRU351bは、パケットが調停回路3に到達するまでの距離、及び、パケットが宛先に届くまでの距離、の一方又は双方に応じたフラググループに関する。距離観点LRU351bにより、パケットの送信元(例えば“from”)に応じたパケット間の不平等を緩和することができる。距離観点LRU351bでは、以下の(i)~(iv)のうちのいずれか1つ以上の観点で、フラグ情報34aに基づくパケットの仕分けが行なわれてよい。
(i)距離観点LRU351bは、パケットが調停回路3に到達するまでに辿った回路数(ホップ数)、例えば調停回路3の数に応じた範囲を制定し、パケットのクラス分けを行なう。
(ii)距離観点LRU351bは、パケットが宛先に到達するまでに辿る回路数(ホップ数)、例えば調停回路3の数に応じた範囲を制定し、パケットのクラス分けを行なう。
(iii)距離観点LRU351bは、上記(i)及び(ii)の組み合わせを2軸に取り、SVM(Support Vector Machine)等のパターン認識モデルを用いて、システム1の性能が大きくなる(例えば最大となる)組み合わせに基づき、パケットのクラス分け(分類)を行なう。
(iv)距離観点LRU351bは、上記(i)及び(ii)の組み合わせを2軸に取り、所定の線形計画法に基づく計算式により、パケットのクラス分け(分類)を行なう。
図5は、距離観点LRU351bを説明するための図である。距離観点LRU351bは、例えば、上記(iv)において、所定の線形計画法に基づく計算式で表される「同じ扱いにする線」(図5の例では、互いに異なる2本の「線」を示す)によって区画された領域ごとに、パケットのクラス分け(分類)を行なってよい。図5の例において、各楕円は、パケットのフラグ情報34aの分布を示す領域である。
宛先観点LRU351cは、パケットの宛先に応じたフラググループに関する。宛先観点LRU351cにより、調停により選択されるパケットの宛先が1つのノード方向に集中することを抑制できるため、出力パケットの分散を図ることができる。宛先観点LRU351cでは、例えば、パケットの次の転送先(直近のホップ;next hop)、及び、宛先(到達先)の一方又は双方の観点でグルーピングされたフラググループが用いられる。
データ観点LRU351dは、パケットの宛先のデータ及びデータサイズの一方又は双方に応じたフラググループに関する。データ観点LRU351dにより、調停回路3におけるデータ転送コストの偏りを低減させることができる。データ観点LRU351dでは、例えば、以下の(v)~(viii)のいずれか1つ以上の観点でグルーピングされたフラググループが用いられる。
(v)パケットにデータが含まれているか否か(例えばデータ部の有無)。
(vi)データのサイズ(例えばデータ部又は全体のサイズ)。
(vii)パケットが制御用パケットか否か。
(viii)パケットがキャッシュ用パケットか否か(再利用されるデータか否か)。
優先調整モード選択部352は、所定のタイミングで複数のモード351を切り替えていずれかのモードを選択するアルゴリズムを備えてよい。当該アルゴリズムは、転送するパケットの優先度を選択する優先度選択アルゴリズムの一例である。所定のタイミングとしては、一例として、タイムシェア(時分割)による一定期間(例えば1つのパケットの転送サイクル)ごとが挙げられるが、これに限定されるものではなく、調停回路3において取得可能な種々のパラメータに基づくタイミングが用いられてもよい。
図6は、優先調整モード選択部352によるモード351の選択処理の一例を説明するための図である。図6の例では、優先調整モード選択部352が、以下の(I)~(III)の各観点による優先度をタイムシェアリングにより切り替える場合を想定する。
(I)距離観点LRU351bにおける上記(iv)の観点による優先度。
(II)データ観点LRU351dにおける上記(vii)の観点による優先度。
(III)データ観点LRU351dにおける上記(viii)の観点による優先度。
図6の例では、優先調整モード選択部352は、(I)が選択される割合を、(II)及び(III)がそれぞれ選択される割合よりも増加させるように、(I):(II):(III)=2:1:1の割合で順番にスケジュールするアルゴリズムを含んでよい。
図6に示すように、優先調整モード選択部352のアルゴリズムがタイムシェアによるものである場合、優先調整モード選択部352は、例えば、カウンタスケジューラ352aを備えてよい。図6の例において、優先調整モード選択部352は、(I)、(II)、(I)、(III)、(I)、(II)、(I)、(III)、・・・の順番で、それぞれのモード351をカウンタスケジューラ352aに設定する。
優先調整モード選択部352は、このようなモード351を選択するためのアルゴリズムを複数パターン備えてよい。複数パターンのアルゴリズムは、システム1又は調停回路3の半導体チップへの実装の際に設定されてよい。
優先調整モード選択部352は、例えば、システム1が実行するアプリケーション(プログラム)に応じて、利用するアルゴリズムを選択してもよい。一例として、優先調整モード選択部352は、アプリケーションの性質と、上述した各モード351の特性とに基づき、パケット間の公平性を保つことができる、換言すれば、システム1の性能向上が図れると判定するアルゴリズムを選択してよい。
このように、優先調整モード選択部352は、複数のモード351のうちの2以上のモード351を切り替えるための1以上のアルゴリズムのうちの、調停回路3で実行されるプログラムに応じたアルゴリズムに従って、2以上のモード351を切り替える。
アルゴリズムは、例えば、アプリケーションごとに予め選択(実装の際に設定)されてもよいし、システム1のユーザが、アプリケーションの性質に基づき適していると判断するアルゴリズムを設定してもよい。また、深層学習(Deep Learning)によるSVM等のパターン認識モデルの学習により、アプリケーションの性質の統計から、性能向上が図れると予測できるアルゴリズムが選択されてもよい。深層学習を用いたアルゴリズムの選択機能の実装は、例えば、システム1又は調停回路3の半導体チップへの実装の際に行なわれてもよいし、ユーザにより設定されてもよい。
LRU選択部353は、優先調整モード選択部352が選択したモード351と、フラグ情報管理部34が記憶するフラグ情報34aとに基づき、選択したモード351に対応するフラググループのエントリを選択する。
ステージング部354は、LRU選択部353の選択結果の出力を調整する、例えば出力タイミングを調整する。ステージング部354は、例えば、FF(Flip Flop)回路等により実装されてよい。
以上のように、モード選択部35は、複数のパケットをグループ化するための互いに異なる複数の条件を、複数の条件の各々の優先順位に応じて切り替える切替部の一例である。
判定部36は、モード選択部35から出力されるフラググループのエントリ、換言すれば、モード選択部35により選択された、フラグが立っているパケットの中から、順序管理部33が管理するエントリのうちの最も古いパケット(エントリ)を判定する。例えば、判定部36は、所定の選択方式、例えばLRUに従い、選択されたフラググループのエントリの中で、順序管理部33が管理する最も古いエントリを判定してよい。
エントリ選択部37は、メモリ部31の複数のエントリの中から、判定部36が判定したエントリを選択し、当該エントリに格納されるパケットを出力する。例えば、エントリ選択部37は、判定部36が判定したエントリに格納されるパケットを、調停回路3の出力として、調停回路3の出力端から後続の回路に送信してよい。
以上のように、順序管理部33、判定部36及びエントリ選択部37は、切り替えにより選択された条件に基づき抽出されるグループに属する複数のパケットの中から、所定の選択方式でいずれかのパケットを選択してバッファから転送する、転送部の一例である。
図3に示す調停回路3において、例えば、優先調整モード選択部352の複数のアルゴリズムは、調停回路3としてのチップ、換言すれば調停回路3を少なくとも含む半導体装置の形成後に調整可能であってもよい。当該アルゴリズムの調整手法としては、一例として、FPGAの論理の書き換え等が挙げられる。書き換えられる論理としては、例えば、スケジューリング、モード351、優先順位等が挙げられる。
これにより、例えば、調停アルゴリズムをハードコーディングした場合には対応できない特定の状況においても、プログラマブルな調停決定アルゴリズムによって、回路の複雑化を抑制しつつ、対応することができる。例えば、システム1において特定のプログラムを実行させる場合、優先調整のアルゴリズムを調整することで、性能が低下する原因となるバスのアンフェア要因を後から調整することが可能になる。これにより、調停回路3は、優先度の高いパケットをどの程度優先させるかを決定できるため、優先度を考慮したフェア回路として動作することができる。
〔1-4〕動作例
図7は、一実施形態に係る調停回路3の動作例を説明するための図である。図7では、図2に示すシステム1の調停回路3-5における動作の一例を説明する。
図7において、TX(Transmitter)4-1~4-13(TX4-1~4-13を区別しない場合には単にTX4と表記する)は、パケットを出力する回路、例えば、図2に示すソース2又は調停回路3を示す。図7において、TX4の下部に表記されたDP(Deep Number)は、調停回路3-5に対応するTX4-13からみた、パケットの出力元の深さを示すフラグである。DPの値が大きいほど、TX4-13に対して階層が深い位置にある(距離が遠い)TX4となる。
また、TX4に添えられたアルファベットは、当該TX4が出力するパケットを示す。例えば、調停回路3-5が出力するパケットM(図2参照)は、図7において、TX4-13が出力するパケットABCDEFGHに対応する。パケットABCDEFGHは、上述のように、パケットA~Hのうちの選択されたいずれかのパケットである。
さらに、TX4に添えられた数値は、TX4-13を起点とした、通常のLRUアルゴリズムを用いた場合のパケットの選択割合を示す。図7の例では、TX4-13における選択割合を“1.0”として、DP=1からDP=3に向かって順に、TX4の選択割合を当該TX4での合流数で按分した値を、合流元のTX4の選択割合に設定している。例えば、DP=2のパケットCの選択割合は“0.15”であり、DP=3のパケットAの選択割合は“0.075”である。このように、TX4の距離が互いに遠く、非対称性を有するツリー構造のシステム1においては、通常のLRUアルゴリズムを用いた場合、DPが大きいTX4ほど、パケットの選択割合が小さくなる。
一実施形態に係る調停回路3は、例えば調停回路3-5(TX4-13)において、以下のアルゴリズムによって、全てのTX4をフェアに扱うように調停を行なう。
例えば、調停回路3は、タイムシェアリングでLRU優先とDP優先とを1:1の割合で切り替えるアルゴリズムを用いてよい。LRU優先とは、単純なLRUであり、例えば、TX4-13における到達順にパケットが選択されるようなモード351である。DP優先とは、例えば、フラグとしてのDPの値が大きいパケットほど、DPの値が小さいパケットよりも優先して選択されるようなモード351である。例えば、DP優先では、調停回路3のモード選択部35は、フラググループの中で最もDPが大きい1以上のエントリ(例えばDP=3のエントリ)を選択し、判定部36は、選択したエントリの中で最も古いエントリをLRUに従い選択する。
モード選択部35は、例えば、カウンタスケジューラ352aに対して、LRU優先、DP優先、LRU優先、DP優先、・・・の順でモード351を設定する。
図8は、図7の例において、通常のLRUを用いた調停、及び、調停回路3によるアルゴリズムを用いた調停、のそれぞれを行なった場合の、TX4-13(「ABCDEFGH-TX」と表記)で選択されるパケットの一例を示す図である。図8において、パケットの符号A~Hに付加した添字1~n+1(nは2以上の整数)は、当該パケットの送信元から何番目に出力されたパケットかを示す。また、図8において、CYSはサイクルを示す。
図8に示すように、通常のLRUを用いた調停では、パケットA、B、G、Hが選択される割合は、図7に示す通り、パケットC、D、E、Fが選択される割合の半分程度となる。
一方、アルゴリズムを用いた調停、すなわちLRU優先:DP優先=1:1とした調停では、TX4-13において、全てのTX4がフェアに扱われ、全てのパケットA~Hが同じ割合で選択される。このように、一実施形態に係る調停回路3によれば、アプリケーションやシステム1におけるバスの接続関係等に応じて、適切な優先度選択アルゴリズムを適用することで、フェアな調停を可能とすることができる。従って、複数のパケットを調停する調停回路3を備えるシステム1の処理性能の低下を抑制することができる。
〔1-5〕ハードウェア構成例
図9は、調停回路3の一例である回路10のハードウェア(HW;Hardware)構成例を示すブロック図である。回路10は、例えば、FPGA等のPLD、ASIC等により、集積回路、換言すれば半導体装置として形成されてよい。
図9に示すように、回路10は、例示的に、ENTRY_VALID11、FLAG12、PRIO_CALC13-1~13-3、MODE_CTRL14、SELECT_PRIO_MODE15、FLGPTN_DECODE16、OLDER_LISTING17、AND18、及び、ENT_SELECT19を備えてよい。以下、PRIO_CALC13-1~13-3を区別しない場合には単にPRIO_CALC13と表記する。PRIO_CALC13は、2以下又は4以上であってもよい。
ENTRY_VALID11は、複数のエントリを備えるとともに、入力されるパケットを複数のエントリのうちの空エントリに格納する回路である。図3に示すメモリ部31及び空エントリ管理部32は、ENTRY_VALID11により実現されてよい。
FLAG12は、複数のエントリの各々について、PRIO_CALC13ごとのグルーピングを行なうためのフラグを記憶する記憶領域、又は、当該フラグをENTRY_VALID11から参照するための回路である。図3に示すフラグ情報管理部34は、FLAG12により実現されてよい。
PRIO_CALC13は、FLAG12のフラグの計算、及び、優先度の計算を行なう回路である。例えば、PRIO_CALC13-1~13-3のそれぞれは、FLAG12のエントリを、自身のPRIO_CALC13に応じてグルーピング(グループを形成)するとともに、グループの優先度(PRIO)を計算する。図3に示すモード351は、PRIO_CALC13により実現されてよい。
MODE_CTRL14は、ユーザが後から(例えばHWの実装後に)調停回路3の動作をプログラマブルに制御するための回路である。換言すれば、MODE_CTRL14は、調停回路3の構成後に、1以上のアルゴリズムの変更、及び、新たなアルゴリズムの追加、の一方又は双方を実行するための回路の一例である。例えば、MODE_CTRL14は、PRIO_CALC13の選択のスケジュール、PRIO_CALC13の優先度の決定等を行ない、SELECT_PRIO_MODE15に反映する。
SELECT_PRIO_MODE15は、複数のPRIO_CALC13のうちのいずれかを選択する回路である。例えば、SELECT_PRIO_MODE15は、MODE_CTRL14により決定されたスケジュール、優先度等に応じて、PRIO_CALC13を選択してよい。
FLGPTN_DECODE16は、SELECT_PRIO_MODE15により選択されたPRIO_CALC13のフラグパタンをデコードする回路である。
図3に示す優先調整モード選択部352、LRU選択部353及びステージング部354は、MODE_CTRL14、SELECT_PRIO_MODE15及びFLGPTN_DECODE16により実現されてよい。
OLDER_LISTING17は、ENTRY_VALID11に格納されたパケットの格納順序(例えば格納タイミングが古い順序)を表すエントリリストを管理する回路である。図3に示す順序管理部33は、OLDER_LISTING17により実現されてよい。
AND18は、FLGPTN_DECODE16でデコードされたフラグパタンと、OLDER_LISTING17が管理するエントリリストとを比較し(例えば論理積を取り)、フラグパタン及びエントリリストの双方に合致するエントリの情報を出力する回路である。換言すれば、AND18は、OLDER_LISTING17で管理される(LRUに従った)エントリの中で、フラグパタンに合致するエントリの情報を出力する。図3に示す判定部36は、AND18により実現されてよい。
ENT_SELECT19は、AND18から出力されるエントリの情報に応じて、ENTRY_VALID11から当該エントリのパケットを選択し出力する回路である。図3に示すエントリ選択部37は、ENT_SELECT19により実現されてよい。
図10は、図9に示すOLDER_LISTING17及びENT_SELECT19を含む回路のHW実装の一例を示すブロック図である。なお、図10は、OLDER_LISTING17及びENT_SELECT19を含む回路のHW実装例を簡単に説明するものである。調停回路3のHW構成は、これに限定されるものではなく、実際の回路ではHW実装の構成又は処理等が異なってもよい。
OLDER_LISTING17は、例えば、バブルアップ方式の回路として実装されてもよい。バブルアップ方式とは、各エントリの優先順位が固定であり、或るエントリがデータの取り出し又は移動により空エントリとなった場合、次の優先順位のエントリから当該空エントリにデータを移動させることで、優先度の高いエントリから順にデータが格納されるバッファ方式である。
例えば、OLDER_LISTING17は、スロット21、NEXT_PTR_VALID_DEC22及びMOVE_SELECTOR23を備えてよい。
スロット21は、DATA、FLAG、VLD(VALID)を格納する記憶領域を、エントリ数の分だけ備えてよい。FLAGは、フラグ情報34aにおけるフラグに対応してよい。スロット21は、例えば、図10の紙面右側になるにつれて優先度が高い(HIGH PRIO)ものとする。優先度が高いデータは、例えば格納順序が古いデータ(LRUに応じたデータ)であってよい。スロット21の各記憶領域は、例えば、ENTRY_VALID11及びFLAG12の少なくとも一部であってもよい。
NEXT_PTR_VALID_DEC22は、以下に対応するエントリにデータを登録する。
[現在のエントリ数]-[現サイクルでエントリからのアウトプットを行なう数]+1(入力ID:2NDである場合、さらに+1)
ここで、調停回路3には、複数入力(INPUT)、複数出力(OUTPUT)をサポートしてもよい。例えば、[現サイクルでエントリからのアウトプットを行なう数]は、図10に示すように現サイクルで2出力である場合、2であってよい。
MOVE_SELECTOR23は、NEXT_PTR_VALID_DEC22に応じてデータの入力箇所を選択する。また、エントリの抜出について、PRIOの順ではあるが中抜きが可能なものとする。MOVE_SELECTOR23は、或る時点の或るエントリを、当該或るエントリよりもHIGH PRIOであるエントリの中で中抜きされたエントリ分だけHIGH PRIO方向にシフトしてよい。
ENT_SELECT19は、例えば、リップルキャリー方式の回路として実装されてもよい。例えば、ENT_SELECT19は、FLAG_VALID_FILTER24、VALID_1HOT25、1以上(図10では2つ)のセレクタ26、及び、OUT_VALID_SUM27を備えてよい。
FLAG_VALID_FILTER24は、スロット21のいずれかのエントリの中から、FLAGの情報と、VLD(有効フラグ情報;必要条件)との論理積(AND)を取る。
VALID_1HOT25は、VLDをフィルタリングし、フィルタリング結果をセレクタのイネーブル信号(ENB)として出力する。例えば、VALID_1HOT25は、或るエントリよりも高い優先度のエントリのVLDがオンでなければ、当該或るエントリのENBをオンにセットする。逆観点からみると、VALID_1HOT25は、或るエントリのHIGH PRIO方向にVLDがオンのエントリが存在する場合、当該或るエントリのVLDをオフにセットする。
1以上(図10では2つ)のセレクタ26は、VALID_1HOT25から出力されるENBに応じて、スロット21の対応するエントリのDATAを、調停回路3から出力する。例えば、セレクタ26は、パケットを1ST_SELECT、2ND_SELECTの順に出力してよい。
なお、1ST_SELECT以外(例えば2ND_SELECT、3RD_SELECT(図示省略)、・・・)のセレクタ26では、自身のセレクタ26よりも前のセレクタ26で選択されたエントリを出力しないようにする。
例えば、2ND_SELECT、3RD_SELECTが設けられる場合、各セレクタ26用にFLAG_VALID_FILTER24及びVALID_1HOT25が設けられてもよい。この場合、2ND_SELECT、3RD_SELECTに対応する各VALID_1HOT25は、自身のセレクタ26よりも前のセレクタ26で選択されたエントリをENBしないように、当該或るエントリのENBをオフにセットする。
OUT_VALID_SUM27は、VALID_1HOT25から[現サイクルでエントリからのアウトプットを行なう数]を取得し、NEXT_PTR_VALID_DEC22に通知する。
以上のように、図10に例示するHW構成によれば、「選択された条件」×「一番古いエントリ」の判定を行なうことができる。
上述した一実施形態に係るシステム1(調停回路3)によれば、優先度選択アルゴリズムの切り替えにより、アプリケーションの特定の動作等の特定の状況に対応することができる。例えば、アプリケーションがベンチマークである場合、ベンチマークに特化したバス特性を得ることができる。
また、FPGA等のPLDにより、ユーザにより、FLAG12、PRIO_CALC13及びMODE_CTRL14(図9参照)のいずれか1つ以上を書き換え可能として提供することで、特定のユーザ向けに調停回路3の動作をカスタマイズさせることができる。調停回路3の動作のカスタマイズとは、例えば、ユーザにフラググループの集計手法の選択を許容することを含んでよい。また、調停回路3の優先度選択アルゴリズムを追加又は変更可能とすることで、性能障害に対するリスクヘッジとすることができる。
〔1-6〕調停回路の実装処理及びユーザ設定処理の動作例
次に、図11及び図12を参照して、一実施形態に係るシステム1、例えば調停回路3を実装するための実装処理、並びに、ユーザ設定処理の動作例を説明する。図11は、調停回路3の実装処理の動作例を説明するフローチャートであり、図12は、ユーザ設定処理の動作例を説明するフローチャートである。
〔1-6-1〕実装処理
図11に例示するように、調停回路3の実装、例えば設計及び実装の少なくとも一方において、作業者により、FLAG12の情報が選定される(ステップS1)。例えば、フラグ情報34aに設ける項目として、FROM、TO、DISTANCE、PKT-OPCD等のパケットから取得可能な種々のFLAG12の情報が選定されてよい。
また、作業者により、FLAG12からの計算式が選定される(ステップS2)。例えば、ステップS2において、モード351に応じたフラググループの仕分け、優先度(PRIO)評価の数値化、等に利用される計算式を適用した回路が作成されてよい。
例えば、ステップS1及びS2において、図9に示すFLAG12及びPRIO_CALC13の少なくとも一部のロジックが作成されてよい。
作業者により、PRIO_CALC13のそれぞれがSELECT_PRIO_MODE15に接続される(ステップS3)。
作業者により、ユーザが後から回路を選択できるように、MODE_CTRL14が作成される(ステップS4)。なお、調停回路3を実装時の構成で固定とする場合には、MODE_CTRL14の作成、換言すればステップS4の処理は省略されてもよい。
他のHW構成のそれぞれについては、ステップS1~S4のいずれかの前又は後に適宜実装されてよい。
なお、MODE_CTRL14の他に、FLAG12、PRIO_CALC13等をユーザに作成させてもよい。この場合、ステップS2(又はS1)からステップS3までの処理は省略されてもよい。
以上により、一実施形態に係る調停回路3の実装が行なわれてよい。
〔1-6-2〕ユーザ設定処理
図12に例示するように、調停回路3の実装後、作業者又はユーザにより、調停回路3にプログラマブル回路がある場合にユーザ設定領域の実装が行なわれる(ステップS11)。
ユーザにより、MODE_CTRL14の動作が決定され(ステップS12)、設定が行なわれる。例えば、ユーザは、調停回路3の動作仕様書等に記述されたフラグをまとめるフラグパタンに基づき、優先度選択アルゴリズムのスケジューリング、モード351、優先順位等のパラメータを決定し、MODE_CTRL14に反映してよい。
なお、例えば、「設定MODE_CTRL14に設定するフラグパタンは、全フラグパタンを網羅すること」というMODE_CTRL14への設定に関する制約を設けてもよい。当該制約は、観点ごとに、漏れなくグルーピングされている(或いは、複数の組み合わせで漏れなくグルーピングされている)ことを保証するための制約である。
次いで、ユーザにより、上述したパラメータ等のチューニングが行なわれる(ステップS13)。チューニングでは、例えば、ベンチマーク等を用いて、処理性能が高くなるような優先度選択アルゴリズムとなるように、パラメータの調整が行なわれてよい。また、AI(Artificial Intelligence)等のソフトウェアを用いて動的にチューニングが行なわれてもよい。
以上により、一実施形態に係る調停回路3に対するユーザ設定が行なわれてよい。
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
例えば、図3に示す調停回路3が備えるブロック31~37の機能は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
また、所定の選択方式として、LRUが用いられるものとしたが、これに限定されるものではない。例えば、調停回路3では、LRUを混在させたバランシングを行なっているため、一部のモード351(PRIO_CALC13)に、例えば、DPの値(パケットの出力元の深さ)が大きいパケットのデータを優先して選択するロジックを設定してもよい。一例として、一部のモード351(PRIO_CALC13)に、例えば、複数のパケットのうちの、DPの値が所定の値以上のパケットのみを選択するロジックを設定してもよい。
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
バッファに蓄積された複数のパケットからいずれかのパケットを選択して転送する半導体装置であって、
前記複数のパケットをグループ化するための互いに異なる複数の条件を、前記複数の条件の各々の優先順位に応じて切り替え、
前記切り替えにより選択された条件に基づき抽出されるグループに属する複数のパケットの中から、所定の選択方式でいずれかのパケットを選択して前記バッファから転送する、
半導体装置。
(付記2)
前記複数の条件のそれぞれは、パケットごとに取得される複数種類の情報のうちの、互いに異なる種類の情報に基づき、前記複数のパケットをグループ化する、
付記1に記載の半導体装置。
(付記3)
前記複数の条件のうちの2以上の条件を切り替えるための1以上のアルゴリズムのうちの、前記半導体装置で実行されるプログラムに応じたアルゴリズムに従って、前記2以上の条件を切り替える、
付記1又は付記2に記載の半導体装置。
(付記4)
前記半導体装置の構成後に、前記1以上のアルゴリズムの変更、及び、新たなアルゴリズムの追加、の一方又は双方を実行するための回路を備える、
付記3に記載の半導体装置。
(付記5)
前記回路は、再構成可能な論理回路である、
付記4に記載の半導体装置。
(付記6)
前記切り替えは、前記複数の条件を一定期間ごとに切り替える、
付記1~付記5のいずれか1項に記載の半導体装置。
(付記7)
前記所定の選択方式は、LRU(Least Recent Used)方式である、
付記1~付記6のいずれか1項に記載の半導体装置。
(付記8)
バッファに蓄積された複数のパケットからいずれかのパケットを選択して転送する半導体装置が、
前記複数のパケットをグループ化するための互いに異なる複数の条件を、前記複数の条件の各々の優先順位に応じて切り替え、
前記切り替えにより選択された条件に基づき抽出されるグループに属する複数のパケットの中から、所定の選択方式でいずれかのパケットを選択して前記バッファから転送する、
転送方法。
(付記9)
前記複数の条件のそれぞれは、パケットごとに取得される複数種類の情報のうちの、互いに異なる種類の情報に基づき、前記複数のパケットをグループ化する、
付記8に記載の転送方法。
(付記10)
前記切り替える処理は、前記複数の条件のうちの2以上の条件を切り替えるための1以上のアルゴリズムのうちの、前記半導体装置で実行されるプログラムに応じたアルゴリズムに従って、前記2以上の条件を切り替える処理を含む、
付記8又は付記9に記載の転送方法。
(付記11)
前記切り替える処理は、前記複数の条件を一定期間ごとに切り替える処理を含む、
付記8~付記10のいずれか1項に記載の転送方法。
(付記12)
前記所定の選択方式は、LRU(Least Recent Used)方式である、
付記8~付記11のいずれか1項に記載の転送方法。
1 システム
10 回路
2、2-1~2-8 ソース
3、3-1~3-5 調停回路
31 メモリ部
32 空エントリ管理部
33 順序管理部
34 フラグ情報管理部
34a フラグ情報
35 モード選択部
351 モード
351a 種別観点LRU
351b 距離観点LRU
351c 宛先観点LRU
351d データ観点LRU
352 優先調整モード選択部
352a カウンタスケジューラ
353 LRU選択部
354 ステージング部
36 判定部
37 エントリ選択部
4、4-1~4-13 TX

Claims (6)

  1. バッファに蓄積された複数のパケットからいずれかのパケットを選択して転送する半導体装置であって、
    前記複数のパケットをグループ化するための互いに異なる複数の条件を、前記複数の条件の各々の優先順位に応じて切り替え、
    前記切り替えにより選択された条件に基づき抽出されるグループに属する複数のパケットの中から、所定の選択方式でいずれかのパケットを選択して前記バッファから転送する、
    半導体装置。
  2. 前記複数の条件のそれぞれは、パケットごとに取得される複数種類の情報のうちの、互いに異なる種類の情報に基づき、前記複数のパケットをグループ化する、
    請求項1に記載の半導体装置。
  3. 前記複数の条件のうちの2以上の条件を切り替えるための1以上のアルゴリズムのうちの、前記半導体装置で実行されるプログラムに応じたアルゴリズムに従って、前記2以上の条件を切り替える、
    請求項1又は請求項2に記載の半導体装置。
  4. 前記半導体装置の構成後に、前記1以上のアルゴリズムの変更、及び、新たなアルゴリズムの追加、の一方又は双方を実行するための回路を備える、
    請求項3に記載の半導体装置。
  5. 前記切り替えは、前記複数の条件を一定期間ごとに切り替える、
    請求項1~請求項4のいずれか1項に記載の半導体装置。
  6. バッファに蓄積された複数のパケットからいずれかのパケットを選択して転送する半導体装置が、
    前記複数のパケットをグループ化するための互いに異なる複数の条件を、前記複数の条件の各々の優先順位に応じて切り替え、
    前記切り替えにより選択された条件に基づき抽出されるグループに属する複数のパケットの中から、所定の選択方式でいずれかのパケットを選択して前記バッファから転送する、
    転送方法。
JP2020154583A 2020-09-15 2020-09-15 半導体装置及び転送方法 Active JP7508962B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020154583A JP7508962B2 (ja) 2020-09-15 2020-09-15 半導体装置及び転送方法
US17/352,406 US11914538B2 (en) 2020-09-15 2021-06-21 Semiconductor apparatus and transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020154583A JP7508962B2 (ja) 2020-09-15 2020-09-15 半導体装置及び転送方法

Publications (2)

Publication Number Publication Date
JP2022048644A true JP2022048644A (ja) 2022-03-28
JP7508962B2 JP7508962B2 (ja) 2024-07-02

Family

ID=80626629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020154583A Active JP7508962B2 (ja) 2020-09-15 2020-09-15 半導体装置及び転送方法

Country Status (2)

Country Link
US (1) US11914538B2 (ja)
JP (1) JP7508962B2 (ja)

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3260456B2 (ja) 1992-12-25 2002-02-25 株式会社日立製作所 コンピュータシステムおよびそれに適した集積回路並びに要求選択回路
US5617575A (en) 1991-03-19 1997-04-01 Hitachi, Ltd. Interprocessor priority control system for multivector processor
US5872936A (en) * 1995-05-08 1999-02-16 Apple Computer, Inc. Apparatus for and method of arbitrating bus conflicts
US6104700A (en) * 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US7917647B2 (en) * 2000-06-16 2011-03-29 Mcafee, Inc. Method and apparatus for rate limiting
DE60026908D1 (de) * 2000-07-05 2006-05-18 St Microelectronics Srl Arbitrierungsverfahren und Schaltungsarchitektur dazu
JP2002117003A (ja) 2000-10-05 2002-04-19 Hitachi Ltd アクセス要求選択制御方式
US7287649B2 (en) * 2001-05-18 2007-10-30 Broadcom Corporation System on a chip for packet processing
CA2451764A1 (en) * 2001-07-05 2003-01-16 Sandburst Corporation Method and apparatus for allocating link bandwidth
US7079545B1 (en) * 2001-12-17 2006-07-18 Applied Microcircuits Corporation ( Amcc) System and method for simultaneous deficit round robin prioritization
US7020131B1 (en) * 2001-12-24 2006-03-28 Applied Micro Circuits Corp. System and method for hierarchical switching
JP2005316609A (ja) 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
US20060018322A1 (en) * 2004-07-21 2006-01-26 Moshe Oron Dedicated service class for voice traffic
JP2007026021A (ja) 2005-07-15 2007-02-01 Nec Electronics Corp バス制御システム及びバス制御方法
US7664901B2 (en) * 2007-03-27 2010-02-16 Arm Limited Data processing apparatus and method for arbitrating access to a shared resource
US8099564B1 (en) * 2007-08-10 2012-01-17 Xilinx, Inc. Programmable memory controller
US8103833B2 (en) * 2007-09-04 2012-01-24 Freescale Semiconductor, Inc. Cache memory and a method for servicing access requests
US7743199B2 (en) * 2008-04-23 2010-06-22 International Business Machines Corporation Method and apparatus for obtaining trace information of multiple processors on an SoC using a segmented trace ring bus to enable a flexible trace output configuration
US20090307408A1 (en) * 2008-06-09 2009-12-10 Rowan Nigel Naylor Peer-to-Peer Embedded System Communication Method and Apparatus
JP5537022B2 (ja) 2008-12-18 2014-07-02 パナソニック株式会社 通信方法及び通信装置
WO2010113262A1 (ja) 2009-03-31 2010-10-07 富士通株式会社 調停方法、調停回路、及び調停回路を備えた装置
WO2012172691A1 (ja) 2011-06-17 2012-12-20 株式会社日立製作所 スイッチ及びそれを用いた計算機システム及びパケット転送制御方法
JP2013003966A (ja) 2011-06-20 2013-01-07 Bosch Corp データ書き込み装置およびデータ書き込み方法
US11082350B2 (en) * 2012-05-22 2021-08-03 Xockets, Inc. Network server systems, architectures, components and related methods
US9250954B2 (en) * 2013-01-17 2016-02-02 Xockets, Inc. Offload processor modules for connection to system memory, and corresponding methods and systems
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
CN106330777A (zh) * 2015-06-17 2017-01-11 中兴通讯股份有限公司 网关侧网络资源的分配方法及装置
US10866910B2 (en) * 2015-09-28 2020-12-15 Sandisk Technologies Llc Systems, methods, and computer-readable media for managing instruction fetch in virtual computing environments
US11467769B2 (en) * 2015-09-28 2022-10-11 Sandisk Technologies Llc Managed fetching and execution of commands from submission queues
CN106506393A (zh) * 2016-02-05 2017-03-15 华为技术有限公司 一种数据流处理方法、装置和系统
US20180191629A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Time-based flexible packet scheduling
US11095568B2 (en) * 2018-11-06 2021-08-17 Cox Communications, Inc. Systems and methods for network scheduling and re-transmission buffering

Also Published As

Publication number Publication date
US20220083490A1 (en) 2022-03-17
US11914538B2 (en) 2024-02-27
JP7508962B2 (ja) 2024-07-02

Similar Documents

Publication Publication Date Title
US8819616B2 (en) Asymmetric mesh NoC topologies
US9742630B2 (en) Configurable router for a network on chip (NoC)
CN103348640B (zh) 中继装置
WO2015020712A1 (en) Automatic noc topology generation
US20200153691A1 (en) Software implementation of network switch/router
KR20040004532A (ko) 최적화된 가변 네트워크 스위치
CN108111410B (zh) 在笛卡尔拓扑的网络中构建无死锁路由的方法和装置
CN112084027B (zh) 片上网络数据传输方法、装置、片上网络、设备及介质
May et al. Transputer and Routers: components for concurrent machines
CN102546417B (zh) 基于网络信息的片上网络路由器调度方法
EP3560148B1 (en) Database functions-defined network switch
US10547514B2 (en) Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US9185026B2 (en) Tagging and synchronization for fairness in NOC interconnects
US20180197110A1 (en) Metrics to Train Machine Learning Predictor for NoC Construction
Cai et al. Comparative evaluation of FPGA and ASIC implementations of bufferless and buffered routing algorithms for on-chip networks
Akbar et al. A novel power efficient adaptive RED-based flow control mechanism for networks-on-chip
Dehghani et al. Deadline-aware and energy-efficient dynamic task mapping and scheduling for multicore systems based on wireless network-on-chip
US7835284B2 (en) Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by routing through transporter nodes
US7839786B2 (en) Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by semi-randomly varying routing policies for different packets
JP2022048644A (ja) 半導体装置及び転送方法
Yang et al. Rwadmm: routing and wavelength assignment for distribution-based multiple multicasts in onoc
Pande et al. The (low) power of less wiring: Enabling energy efficiency in many-core platforms through wireless noc
Su et al. Synthesizing fault-tolerant schedule for time-triggered network without hot backup
Han et al. Low-cost congestion detection mechanism for networks-on-chip
US20160006605A1 (en) Network control device and network setting system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240426

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20240426

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240603

R150 Certificate of patent or registration of utility model

Ref document number: 7508962

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150