JP7266698B2 - 信号処理チップ、及び信号処理システム - Google Patents

信号処理チップ、及び信号処理システム Download PDF

Info

Publication number
JP7266698B2
JP7266698B2 JP2021552328A JP2021552328A JP7266698B2 JP 7266698 B2 JP7266698 B2 JP 7266698B2 JP 2021552328 A JP2021552328 A JP 2021552328A JP 2021552328 A JP2021552328 A JP 2021552328A JP 7266698 B2 JP7266698 B2 JP 7266698B2
Authority
JP
Japan
Prior art keywords
signal processing
signal
chip
processing chip
sampling
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.)
Active
Application number
JP2021552328A
Other languages
English (en)
Other versions
JPWO2021075302A1 (ja
Inventor
活志 大塚
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment 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 Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Publication of JPWO2021075302A1 publication Critical patent/JPWO2021075302A1/ja
Application granted granted Critical
Publication of JP7266698B2 publication Critical patent/JP7266698B2/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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

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)
  • Software Systems (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

本発明は、信号処理チップ、及び信号処理システムに関する。
近年では、各種の情報を処理する集積回路の集積規模がますます増大しており、単一の信号処理チップ(シングルチップ)でのデザインが困難になりつつある。
一方、多数の信号処理チップを相互に接続した複数信号処理チップのシステム(マルチチップ)で、信号処理を行うため、チップ間のインターコネクトを行う技術が開発されている。
近年では、信号処理チップ内部では、その内部に含まれる複数の信号処理ブロック間で、比較的低遅延で、多ビット・広帯域の信号通信が可能なインターコネクト(チップ内インターコネクト)が開発されているが、チップ間インターコネクトとしては、チップごとの信号の電気的条件や、送受可能なタイミングが異なるため、各チップ内に接続ポート回路を設け、ここでチップ内の信号を、所定のプロトコルでの通信信号に変換して、外部のチップとの間で送受を行うことが一般的であった。
しかしながらこのような、上記従来のチップ間インターコネクトの技術では、プロトコル変換や、プロトコル変換後のデータの授受におけるキューイング等において信号処理の遅延が大きくなり、処理性能が低下してしまう。また、一般的なデータ通信と同様のプロトコルを採用する場合、いわゆるトランスポート層、データリンク層の情報のオーバーヘッドが大きく、転送データ量も大きくなっていた。
本発明は上記実情に鑑みて為されたもので、複数チップ間での信号授受を行う場合でも、転送データ量の増大を抑え、また、信号処理の遅延を小さくできる信号処理チップ、及び信号処理システムを提供することを、その目的の一つとする。
上記従来例の問題点を解決するための本発明の一態様は、それぞれが信号線を介して信号を送受する複数の信号処理ブロックと、前記信号処理ブロックが送受する信号線上の信号をサンプリングするサンプリング手段と、前記サンプリングした信号を表す情報を含むデータフレームを、予め定められた条件を満足するタイミングで、他の信号処理チップに対して送出する送出手段と、を含むこととしたものである。
これにより、複数チップ間での信号授受を行う場合でも、転送データ量の増大を抑え、また、信号処理の遅延を小さくできる。
本発明の実施の形態の例に係る信号処理チップの構成及び接続例を表すブロック図である。 本発明の実施の形態に係る信号処理チップのラッパー部の例を表すブロック図である。 本発明の実施の形態の例に係る信号処理チップ内の信号線上の信号の例を表す説明図である。 本発明の実施の形態の例に係る信号処理チップの別の構成例を表すブロック図である。 本発明の実施の形態の例に係る信号処理チップの別の接続例を表すブロック図である。 本発明の実施の形態の例に係る複数の信号処理チップが実現する機能の例を表す説明図である。 本発明の実施の形態に係る信号処理チップの別のラッパー部の別の例を表すブロック図である。 本発明の実施の形態に係る信号処理チップの一例が備える識別情報テーブルの内容例を表す説明図である。 本発明の実施の形態に係る信号処理チップの出力する情報の例を表す説明図である。 本発明の実施の形態に関するIDテーブルの内容例を表す説明図である。 本発明の実施の形態の構成例を説明する説明図である。 本発明の実施の形態で用いられるプロトコルの一例を表す説明図である。 本発明の実施の形態における信号のタイミングチャートの例を表す説明図である。 本発明の実施の形態で用いられるスイッチの構成例を表す説明図である。 本発明の実施の形態で用いられるサンプリング回路の構成例を示す説明図である。 本発明の実施の形態で用いられる逆サンプリング回路の構成例を示す説明図である。 本発明の実施の形態の送信部の構成例に関する説明図である。 本発明の実施の形態で用いられるセレクタジェネレータの信号出力例に関する説明図である。 本発明の実施の形態の受信部の構成例に関する説明図である。 本発明の実施の形態のバッファの構成例に関する説明図である。 本発明の実施の形態のPHYインタフェースの構成例に関する説明図である。 本発明の実施の形態の各部の接続例に関する説明図である。 本発明の実施の形態に係る信号処理チップの構成例を表す説明図である。 本発明の実施の形態に係る信号処理チップのバスサイクルの推移例を表す説明図である。 本発明の実施の形態のトポロジ構成の例を表す説明図である。 本発明の実施の形態のトポロジ構成の例を表すもう一つの説明図である。 本発明の実施の形態のトポロジ構成の例を表すさらにもう一つの説明図である。 本発明の実施の形態に係るパッケージ構成例を表す説明図である。 本発明の実施の形態のGPU構成方法の例を表す説明図である。 本発明の実施の形態のGPU構成方法の例を表すもう一つの説明図である。 本発明の実施の形態のGPU構成方法の例を表す説明図である。 本発明の実施の形態のGPU構成方法の一例に係るパッケージ構成方法の例を表す説明図である。 本発明の実施の形態のGPU構成方法の例を表すさらにもう一つの説明図である。 本発明の実施の形態のGPU構成方法の例を表すさらにもう一つの説明図である。 本発明の実施の形態のGPU構成方法の例を表すさらにもう一つの説明図である。 本発明の実施の形態のGPU構成方法の例を表すさらにもう一つの説明図である。 本発明の実施の形態のGPU構成方法の例を表すさらにもう一つの説明図である。
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る信号処理チップ1の一例は、図1に例示するように、互いに信号線Lで接続される複数の信号処理ブロックB1,B2…(以下、区別の必要がないときには信号処理ブロックBと書く)と、ラッパー部10とを含んで構成される。なお、この信号処理チップ1には、各部に電源等を供給する配線等、種々の他の配線が含まれるのが現実であるが、ここでは本発明の実施の形態の説明を簡潔にするため、本発明の実施の形態において必要な構成を示すこととする。
ここで信号線Lは、同じ信号処理チップ1内にある複数の信号処理ブロックB間でデータを授受するデータバスを含む。一般にデータバスは、複数ビットのディジタル信号(ハイ(H)またはロー(L)となる信号)を伝達する、所定ビット幅の数のデータ信号線を含む。またこの信号線Lのうちには、データバス以外に、上記複数の信号処理ブロックBが互いに制御信号を伝達する制御信号線を含んでもよい。
またここで信号処理ブロックBは、制御コアや、レジスタ、パワーマネージメント制御部等であり、互いに信号線Lを介し、それぞれ所定のプロトコル(チップ内インターコネクトプロトコル)を用いて通信可能に結合されている。
またラッパー部10は、信号線Lに接続されるとともに、信号処理チップ1外部の、他の信号処理チップ1のラッパー部10と、チップ間インターコネクトCを介して通信可能に接続される。
ここでチップ間インターコネクトCは、狭い電圧振幅で動作する差動信号や、信号状態に応じて電圧振幅を最適化するイコライザやプリエンファシス機能、8b10bや128B130Bエンコードなどを用いることで、動作周波数がチップ内の信号線Lに比べて高く、広帯域の信号通信が可能な信号ラインであるものとする。ただし、このことはチップ間インターコネクトCの機能を限定する趣旨ではなく、このような条件にあてはまらない信号線を用いてもよい。たとえば、チップ間インターコネクトCとして、差動信号に代わりシングルエンド信号を用いてもよいし、動作周波数はチップ内インターコネクトに用いられる信号線Lに比べて低くても機能する。このようなチップ間インターコネクトCに用いることのできる信号ラインの例は広く知られているので、ここでの詳しい説明は省略する。
ラッパー部10は、その一例を図2に例示するように、サンプリング部11と、送出部12と、受入部13と、逆サンプリング部14とを含む。
サンプリング部11は、サンプリング部11に接続されている信号線L上の信号を、サンプリングして出力する。本実施の形態では、この信号線Lのうち、他の信号処理チップ1に送出するべき信号を伝達する配線(対象配線と呼ぶ)内の信号(raw値)をサンプリングして得た情報(以下データフレームという)を出力する。
本実施の形態においてこのサンプリング部11は、raw値をサンプリングすることで、信号線L上の信号送受のプロトコル、つまりチップ内インターコネクトプロトコルに関わらず、予め定められた方式でサンプリングを行うこととなる。
送出部12は、サンプリング部11が出力するデータフレーム(信号線L内のサンプリングされた配線ごとの情報を含む)をバッファする。そして送出部12は、予め定められた条件を満足するタイミングで、チップ間インターコネクトCを介して他の信号処理チップに対して、バッファしたデータフレームを送出する。このデータフレームを送出するタイミングについては後に述べる。
またこの送出部12は、送出時に配線ごとの信号を表すデータフレームを、パラレルに送出する代わりにシリアルに変換して送出してもよい。このようにシリアルに変換することで、チップ間インターコネクトCのビット幅を削減できる。
受入部13は、インターコネクトCを介して他の信号処理チップ1から到来したデータフレームを受け入れてバッファし、所定のタイミングで逆サンプリング部14に出力する。具体的にこの受入部13は、信号処理チップ1内の信号処理ブロックBの一つとして動作し、信号処理チップ1内の信号線L上に、バッファ内に一時的に保持したデータフレームに基づく信号を出力可能なタイミングが到来すると、このタイミングで、バッファしたデータフレームを、逆サンプリング部14に出力して、当該データフレームをバッファから削除する(空き容量を増やす)。
なおインターコネクトCを介して他の信号処理チップ1から到来したデータフレームが、シリアルに変換されたものである場合、受入部13は、この情報をパラレルなデータフレームに変換して、配線ごとの信号を表す情報を得る。
送出部12と受入部13とは、データフレームを、チップ内インターコネクトプロトコルに関わらず、予め定められたチップ間インターコネクトCの通信方式で送受する。このチップ間インターコネクトCの通信方式は、既に述べた例のように、比較的狭い電圧振幅で動作する差動信号や、信号状態に応じて電圧振幅を最適化するイコライザやプリエンファシス機能、8b10bや128B130Bエンコードなどを用いるもの等、種々の通信方式を採用できる。
逆サンプリング部14は、受入部13からデータフレームが出力されると、当該データフレームに基づいて、当該データフレームの送信元である、チップ間インターコネクトCを介して接続された他の信号処理チップ内の接続線L内の信号(raw値)を再生し、自チップ(自己)内で、逆サンプリング部14に接続されている信号線Lの対象配線に対応する配線に、当該再生した信号を出力する。
ここで送出部12がデータフレームを送出するタイミングについて説明する。このタイミングは、当該データフレームの送出先となる他の信号処理チップ1から、所定の指示を受けた時点であるものとしてよい。また送出部12は、このタイミングが到来するまで、サンプリング部11が出力したデータフレームを保持する第1のバッファBUFを備える。
ここで所定の指示は、受入部13にて受け入れた可能となったことを表す信号としてよい(いわゆるクレジット・フロー制御を行うこととしてよい)。本実施の形態の一例では、逆サンプリング部14が信号線Lに信号を出力するタイミングが到来するまで、受入部13は他の信号処理チップ1が送出したデータフレームを保持する第2のバッファBUFを備えるが、この第2のバッファBUFが一杯になったときに他の信号処理チップ1がデータフレームの送出を停止できるよう、この第2のバッファBUFの空き容量の増減を表すクレジット情報を、データフレームの送出元である信号処理チップ1に対して出力する。
具体的に受入部13は、自己が備える第2のバッファBUFの空き容量の増減値を求めて、当該増減値をクレジット情報として、チップ間インターコネクトCを介して接続されている信号処理チップ1に対して送出するよう、送出部12に指示する。
このクレジット情報は、当初は、第2のバッファBUFに保持可能な回数分の情報であるとする。なおここでの例では、1回あたり、チップ間インターコネクトCのビット幅分のデータフレームが送受されるものとする。
そして信号処理チップ1の受入部13は、他の信号処理チップ1からクレジット情報を受け入れると、当該クレジット情報を、送出部12に出力する。
送出部12は、クレジット情報の入力を受けて、データフレームの送出先である他の信号処理チップ1の受入部13の空き容量を演算する。具体的にこの送出部12は、当初は、データフレームの送出先である他の信号処理チップ1の受入部13の空き容量情報を記憶部に保持し、「0」にリセットする。
そして送出部12は、クレジット情報として送出される値を、上記記憶部に保持した値に加算して、受入部13の空き容量を求め、求めた空き容量が「0」となったときにはデータフレームの送出を中断し、空き容量が「n」(n>0の整数)となると、n回分だけデータフレームの送出を行う。
ラッパー部10は、基本的に以上の構成を備えており、次のように動作する。図3は、信号処理チップ1内の信号線Lが伝送する信号の一部の例を示す説明図である。なお、次の例では、一対の信号処理チップ1a,1bが、チップ間インターコネクトCを介して互いに接続されているものとする。
また各信号処理チップ1a,1bのそれぞれが備える複数の信号処理ブロックBは、図3に例示するように、それぞれの信号処理チップ1a,1b内の信号線Lを介して、クロック(ACLK)、アドレス信号(ADDR、複数ビットあるものとする)、アドレス信号の有効性を示す信号(AVALID)、アドレス信号が準備完了となったことを表す信号(AREADY)、データ信号(DATA、データ幅分のビット数だけあるものとする)、データ信号の終了を表す信号(LAST)、データ信号の有効性を示す信号(DVALID)、データの準備が完了となったことを表す信号(DREADY)、応答信号(BRESP)、応答信号の有効性を表す信号(BVALID)、応答信号の準備が完了となったことを表す信号(BREADY)を含む信号を送受しているものとする。
従ってこの例では、チップ間インターコネクトCのビット幅を、これらの信号を一度に(並列に)送出できる程度として予め定めておくか、あるいは送出部12と受入部13との間でパラレル・シリアル変換及びシリアル・パラレル変換を行うこととしておく。
この例で、まず信号処理チップ1aのラッパー部10a(以下、区別のため、信号処理チップ1aのラッパー部10内の各部の符号にはaの文字を付し、信号処理チップ1bのラッパー部10内の各部の符号にはbの文字を付す)のサンプリング部11aは、所定のタイミングごとに、アドレスクロックを除く各信号をサンプリング(ディジタルサンプリング)して、当該信号を含む情報をデータフレームとして送出部12aに出力する。送出部12aは、サンプリング部11aが出力するデータフレームを、一時的にバッファに保持する。
送出部12aは、データフレームの送出先となる信号処理チップ1b(チップ間インターコネクトCで接続された他の信号処理チップ)から受入部13aが受け入れたクレジット情報の入力を受けて、当該送出先となる信号処理チップ1bの受入部13bの空き容量の情報を演算する。
そして送出部12aは、ここで演算した信号処理チップ1bの受入部13bの空き容量情報を参照し、空き容量があれば、バッファに保持したデータフレーム(1回のサンプリングで得られた、アドレス信号(ADDR)、アドレス信号の有効性を示す信号(AVALID)の各ビット、アドレス信号が準備完了となったことを表す信号(AREADY)、データ信号(DATA)の各ビット、データ信号の終了を表す信号(LAST)、データ信号の有効性を示す信号(DVALID)、データの準備が完了となったことを表す信号(DREADY)、応答信号(BRESP)、応答信号の有効性を表す信号(BVALID)、及び応答信号の準備が完了となったことを表す信号(BREADY)のそれぞれの状態(HまたはL)を表す情報を含む)を、送出先となる信号処理チップ1bに対してチップ間インターコネクトCを介して送出する。また送出部12aは、空き容量を参照した結果、空き容量がない(「0」である)場合には、クレジット情報を受信して空き容量が生じるまで待機する。
さらにこの送出部12aは、受入部13aから、受入部13aが備えるバッファの空き容量の増減を表すクレジット情報の入力を受けると、当該クレジット情報を、チップ間インターコネクトCを介して信号処理チップ1bに対して送出する。
受入部13aは、信号処理チップ1bから当該信号処理チップ1bにてサンプリングして得られたデータフレームを、一時的に自己が備えるバッファに保持する。またこの受入部13aは、信号処理チップ1a内の信号処理ブロックの一つとして動作し、信号処理チップ1a内の信号線L上に、自己が備えるバッファしたデータフレームに基づく信号を出力可能なタイミングが到来すると、このタイミングで、バッファしたデータフレームを、逆サンプリング部14aに出力し、当該データフレームをバッファから削除する(空き容量を増やす)。
またこの受入部13aは、自己が備えるバッファの空き容量の増減値を求めて、当該増減値をクレジット情報として、チップ間インターコネクトCを介して接続されている信号処理チップ1bに対して送出するよう、送出部12aに指示する。
さらに受入部13aは、チップ間インターコネクトCを介して信号処理チップ1bからクレジット情報を受け入れる。そして受入部13aは、この受け入れたクレジット情報を、送出部12aに出力する。
逆サンプリング部14aは、受入部13aから入力されたデータフレームに基づいて、信号処理チップ1b内の信号線L上の信号を再生して、信号処理チップ1a内の信号線L上に出力する。ここでは逆サンプリング部14aは、受入部13aから、上記他の信号処理チップ内の信号線Lにおいて1回のサンプリングで得られたアドレス信号(ADDR)、アドレス信号の有効性を示す信号(AVALID)の各ビット、アドレス信号が準備完了となったことを表す信号(AREADY)、データ信号(DATA)の各ビット、データ信号の終了を表す信号(LAST)、データ信号の有効性を示す信号(DVALID)、データの準備が完了となったことを表す信号(DREADY)、応答信号(BRESP)、応答信号の有効性を表す信号(BVALID)、及び応答信号の準備が完了となったことを表す信号(BREADY)のそれぞれの状態(HまたはL)を表す情報を受け入れ、当該情報に基づいて上記の各信号を再生して、自身の信号線L上に出力する。
これにより、信号処理チップ1a内の各信号処理ブロックBが、上記他の信号処理チップ1b内の信号線L上の信号を、チップ間インターコネクトC、及び信号処理チップ1a内の信号線Lを介して受け入れることとなる。
このように本実施の形態では、互いにチップ間インターコネクトCで接続された各信号処理チップ1a,1bは、それぞれの信号線L内の各信号をサンプリングし、当該サンプリングした信号を表すデータフレームを、パラレルの(多ビットを一度に送出可能な)通信手段であるチップ間インターコネクトCを介して送受している。またこのとき、一方の信号線L内の信号をサンプリングして得たデータフレームに基づき、他方の信号線L内の信号を再生することとしているので、プロトコルの変換や、パケッタイズ、あるいは種々のヘッダ情報の付加などといったオーバーヘッドが生じることがなく、相互に転送するデータ量の増大を抑え、また、全体の信号処理の遅延を小さくできる。
さらに本実施の形態において、サンプリング部11による信号線L上の信号のサンプリングは、常時行われる必要はなく、サンプリング部11は、
(1)前記サンプリングする信号線上の信号に変化があったとき、
(2)前記信号処理ブロック及び/または信号線の状態を表す制御信号が所定の状態を表すものとなったとき、
(3)前記サンプリングする信号線の状態が所定の状態となったとき、の少なくとも一つのタイミングでサンプリングを行うこととしてもよい。
例えば、サンプリング部11による信号線L上の信号のサンプリングは、必ずしも、各クロック信号の変化のタイミングごとに常に(例えばクロック信号の立ち上がりのタイミングごとに毎回)行われる必要はなく、送出の対象となる信号が有意であるとの条件が満足されたタイミングで行うこととしてもよい。なお、信号が有意であるか否かは、例えば対応する制御信号線により伝達される有効性(VALID)の信号や、準備完了(レディ)であることを表す信号に基づいて判断すればよい。
具体的に図3の例であれば、サンプリング部11は、クロック(ACLK)T0からT10までの期間において、
(1)アドレス信号(ADDR)が有効(AVALIDが「H」)かつ準備完了(AREADYが「H」)であるとき(T1からT2の期間)、
(2)データ信号(DATA)が有効(DVALIDが「H」)かつ準備完了(DREADYが「H」)であるとき(T3からT4,T5からT6,T7からT8,及びT8からT9の期間)、
(3)応答信号(BRESP)が有効(BVALIDが「H」)かつ準備完了(BREADYが「H」)であるとき(T9からT10の期間)
において、それぞれアドレス信号、データ信号、応答信号が有意な信号となっているので、これらの各期間に対応する時点で、各信号をサンプリングする。
ここでサンプリング部11が、クロック(ACLK)の立ち上がりのタイミングでサンプリングを行うこととすれば、T2,T4,T6,T8,T9,T10の各サイクルの開始タイミング(TS1,TS2,TS3,TS4,TS5,TS6)においてサンプリング部11が各信号のサンプリングを行うこととなる。つまり、この例では、T3,T7のクロックの立ち上がりタイミングではサンプリング部11はサンプリングを行わず、従って送出部12が送出するデータフレームは、上記TS1,TS2,TS3,TS4,TS5,TS6のタイミングでサンプリングされた信号を表すデータフレームのみとなるので、チップ間インターコネクトCを介して送受する情報量をさらに低減できる。
また、信号が有意であるか否かの判断は、上述のように対応する有効性(VALID)の信号や、準備完了(レディ)であることを表す信号に基づいて行う例に限られない。例えばサンプリング部11は、チップ内の信号処理ブロックBのインターコネクトである信号線Lの状態(有効(enable)・無効(disable))を表す制御信号を参照して、信号線Lが有効な状態のときに限りサンプリングを行ってもよい。また、サンプリング部11は、信号線Lを介して接続された信号処理ブロックBの状態を表す制御信号(bus/cycle enable, clk/power gating enableなど)を参照して、当該信号処理ブロックの状態が有効である場合に限り、サンプリングを行ってもよい。
さらにサンプリング部11は、サンプリング部11自身に接続されている信号線Lに含まれる対象配線の信号に変化があったとき、つまり対象配線の信号が「L」から「H」あるいは「H」から「L」に変化があったときに限り、当該対象配線の信号のサンプリングを行ってもよい。
この例では、送出部12が送出するデータフレームは、対象配線ごとに、対象配線の信号(raw値)の変化を表す情報を含む。
従ってこの例では、逆サンプリング部14は、他の信号処理チップ1でサンプリングされた信号を表す情報が入力されるまでは、前回入力された情報に基づく信号の出力を維持し、また他の信号処理チップ1でサンプリングされた情報の入力があると、当該入力された情報に従い、対応する対象配線の信号(raw値)を設定する。
これにより、必要なタイミングに限りサンプリングを行うことができ、信号処理チップ1間での不要な情報の送受を抑制できる。
[異なるチップ内インターコネクトに適用する例]
また信号処理チップ1内のチップ内インターコネクトである、信号処理ブロックB間を接続する信号線Lは、上述のバス型の例に限られない。
例えば、本発明の実施の形態に係る信号処理チップ1の別の一例は、ネットワーク・オン・チップ(NoC)型の構成を有する。この例の信号処理チップ1は、図4に例示するように、内部の複数の信号処理ブロックB1,B2…が、互いに、スイッチSWを含む信号線Lで接続される。この例では、ラッパー部10は、スイッチSWに接続される。
ここでスイッチSWは信号処理ブロックB間での信号のルーティングを制御するものであり、広く知られた種々の構成を利用できるので、ここでの詳しい説明は省略する。
本実施の形態のこの例では、ラッパー部10のサンプリング部11は、チップ間インターコネクトCを介して接続された、他の信号処理チップ1内の信号処理ブロックB1b,B2b…宛となる信号をサンプリングし、サンプリングして得たデータフレームを送出部12に出力する。送出部12及び受入部13は、既に述べた例と同様の動作を行うので、繰り返しての説明を省略する。
またこの例の逆サンプリング部14は、受入部13から入力されたデータフレームに基づいて信号を再生し、信号線L内のスイッチSWに出力する。
この例では、図5に例示するように、チップ間インターコネクトCを介して互いに接続される一対の信号処理チップ1c,1dが、いずれもネットワーク・オン・チップ(NoC)型の構成を有し、それぞれの内部の複数の信号処理ブロックBが互いに、それぞれの信号処理チップ1c,1dが備えるスイッチSWc,SWdを含む信号線Lc,Ldで接続される。
なお、この例においても、チップ間インターコネクトCのビット幅は、既に述べた信号処理チップ1a,1b間の場合と同様に、多数の信号を一度に(並列に)送出できる程度として予め定めておく。
この例では、信号処理チップ1cのスイッチSWcは、信号処理チップ1dが備える信号処理ブロックBd1,Bd2…に送出するべき信号(信号処理チップ1c内にない信号処理ブロックB宛の信号)を、ラッパー部10c(以下、区別のため、信号処理チップ1cのラッパー部10内の各部の符号にはcの文字を付し、信号処理チップ1dのラッパー部10内の各部の符号にはdの文字を付す)にルーティングして出力する。
ラッパー部10cのサンプリング部11cはスイッチSWcから入力された信号をサンプリング(ディジタルサンプリング)して送出部12cに出力する。送出部12cは、サンプリング部11cが出力するデータフレームを、一時的にバッファに保持する。
送出部12cは、データフレームの送出先となる信号処理チップ1d(チップ間インターコネクトCで接続された他の信号処理チップ)から受入部13cが受け入れたクレジット情報の入力を受けて、当該データフレームの送出先となる信号処理チップ1dの受入部13dの空き容量の情報を演算する。
そして送出部12cは、ここで演算した信号処理チップ1dの受入部13dの空き容量情報を参照し、空き容量があれば、バッファに保持したデータフレーム(1回のサンプリングで得られた各信号を表す情報を含む)を、送出先となる信号処理チップ1dに対してチップ間インターコネクトCを介して送出する。また送出部12cは、空き容量を参照した結果、空き容量がない(「0」である)場合には、クレジット情報を受信して空き容量が生じるまで待機する。
さらにこの送出部12cは、受入部13cから、受入部13cが備えるバッファの空き容量の増減を表すクレジット情報の入力を受けると、当該クレジット情報を、チップ間インターコネクトCを介して信号処理チップ1dに対して送出する。
受入部13cは、信号処理チップ1dから当該信号処理チップ1Dにてサンプリングして得られたデータフレームを、一時的に自己が備えるバッファに保持する。またこの受入部13cは、信号処理チップ1c内の信号処理ブロックの一つとして動作し、信号処理チップ1c内の信号線Lc上のスイッチSWc上に、自己が備えるバッファした情報に基づく信号を出力可能なタイミングが到来すると、このタイミングで、バッファしたデータフレームを、逆サンプリング部14cに出力し、当該データフレームをバッファから削除する(空き容量を増やす)。
またこの受入部13cは、自己が備えるバッファの空き容量の増減値を求めて、当該増減値をクレジット情報として、チップ間インターコネクトCを介して接続されている信号処理チップ1dに対して送出するよう、送出部12cに指示する。
さらに受入部13cは、チップ間インターコネクトCを介して信号処理チップ1dからクレジット情報を受け入れる。そして受入部13cは、この受け入れたクレジット情報を、送出部12cに出力する。
逆サンプリング部14cは、受入部13cから、上記他の信号処理チップ1d内のスイッチSWdが出力し、1回のサンプリングで得られた各信号を表すデータフレームを受け入れ、当該データフレームに基づいて上記の各信号を再生して、自身の信号線LcのスイッチSWcに出力する。
これにより、信号処理チップ1c内の各信号処理ブロックBが、上記他の信号処理チップ1d内の信号処理ブロックが送出した信号を、スイッチSWd、チップ間インターコネクトC、及び信号処理チップ1c内の信号線Lc内のスイッチSWcを介して受け入れることとなる。
このように本実施の形態では、互いにチップ間インターコネクトCで接続された各信号処理チップ1c,1dは、それぞれのスイッチSW間の各信号をサンプリングし、当該サンプリングした信号を表すデータフレームを、例えばパラレルの(多ビットを一度に送出可能な)通信手段であるチップ間インターコネクトCを介して送受している。つまり、本実施の形態のこの例では、図6に例示するような、チップ内のインターコネクトに複数のスイッチSWc,SWdがあるものと同様の構成を複数のチップで実現できる。またこの例でも、サンプリング部11は、スイッチSWが出力する信号のサンプリングを、必ずしも、各クロック信号の変化のタイミングごとに常に(例えばクロック信号の立ち上がりのタイミングごとに毎回)行う必要はなく、既に述べたように例えば送出の対象となる信号が有意であるとの条件が満足されたタイミングで行うこととしてもよい。なお、信号が有意であるか否かは、対応する有効性(VALID)の信号や、準備完了(レディ)であることを表す信号に基づいて判断してもよいし、チップ内の信号処理ブロックBのインターコネクトである信号線Lの状態(バスやクロックの有効(enable)・無効(disable)を表す信号等)を参照して行ってもよい。
[スイッチを介さない信号をサンプリングする例]
なお、メインデータを授受するチップ内インターコネクトがネットワーク型であっても、信号処理ブロック間でのレジスタやメモリアクセスのためのMMIOアクセスインターコネクトが共有バス型である場合もある。また、システム制御用の信号線(パワーマネージメントやDFT(Design for Testability)/DFD(Design for Diagnosability)用の信号、あるいは割り込み信号などを行う制御線)が専用線として接続される場合もある。さらに信号処理ブロックによっては固有の専用線を備える場合もあり、この場合は一方向(信号が一方的に出力される)のクロスバ型の信号線が備えられる場合もある。
そしてこの例の信号処理チップ1のラッパー部10は、スイッチSWを介してメインデータを授受するインターコネクト(メインデータインターコネクト)上の信号をサンプリングするだけでなく、これらの各信号線上の信号もサンプリングしてデータフレームを生成して送出し、また、チップ間インターコネクトCを介して受け入れたデータフレームに基づいて再生した信号を、これらの信号線上に出力する。
ここで、これらスイッチSWを介さずにサンプリングする各信号については、スイッチSWからの信号が入力されるタイミングとは無関係なタイミングでサンプリングを行う。具体的に、これらの信号線については、既に述べたように、各クロック信号の変化のタイミングごとに(例えばクロック信号の立ち上がりのタイミングごとに毎回)行ってもよいし、例えば送出の対象となる信号が有意であるとの条件が満足されたタイミングで行うこととしてもよい。この例でも、信号が有意であるか否かは、対応する有効性(VALID)の信号や、準備完了(レディ)であることを表す信号に基づいて判断してもよいし、チップ内の信号処理ブロックBのインターコネクトである各信号線の状態(バスやクロックの有効(enable)・無効(disable)を表す信号等)を参照して行ってもよい。
[送受する情報の変形例]
また本実施の形態のラッパー部10の送出部12は、バッファした情報を送出する際に、クオリティ制御(QoS制御)のための情報を付してもよい。このQoS制御のための情報としては、例えばタイムスタンプや、優先度の情報等がある。
具体的に、この例の送出部12は、図示しない計時部(時計モジュール等)を備え、バッファしたデータフレームを送出する時点で、この計時部が計時する時刻の情報をタイムスタンプとして付加して送出してもよい。さらにバッファしたデータフレームを順次送出する際に、優先度の情報を付して送出してもよい。
受入部13は、受け入れたデータフレームにタイムスタンプが含まれる場合は、タイムスタンプの順にバッファに保持してもよく、逆サンプリング部14へ出力する際には、バッファしているデータフレームのうちタイムスタンプが表す時刻の早い(古い)データフレームから順に出力するようにしてもよい。
なお、優先度の情報が含まれる場合は、受入部13は、逆サンプリング部14へデータフレームを出力する際には、受け入れたデータフレームのうち、優先度の高いデータフレームから順に(かつ同じ優先度のうちであればタイムスタンプが表す時刻の早い順であってもよい)出力するようにしてもよい。
また送出部12は、チップ間インターコネクトCの電気的条件(周波数帯域の抑制の必要など通信の確実性を向上させる条件)を考慮して、送出するデータフレームを、128B130B等の情報としてエンコードしてから送出してもよい。または誤り訂正符号を付した情報(誤り検出・訂正可能な情報)としてエンコードしてから送出してもよい。
この場合、受入部13ではエンコードされたデータフレームをデコードしてからバッファに蓄積する。この例では、送受する情報量は若干増大するが、プロトコル変換等の例に比べると、その増大量は抑制できる。
[チップ間インターコネクトを介して3以上のチップが接続される例]
ここまでの説明では、チップ間インターコネクトCを介して2つのチップが相互に接続される例について説明したが、チップ間インターコネクトCを介して互いに接続されるチップの数は2つに限られない。
本実施の形態のある例では、3以上の信号処理チップ1が複数のチップ間インターコネクトCを介して互いに接続される。この例の複数チップを介したチップ間インターコネクトCは、ツリー構造や、メッシュ構造、トーラス構造等、種々のトポロジのネットワーク構造を有してよい。
またこの例では、各信号処理チップ1内の各信号処理ブロックBにはそれぞれ固有の識別情報を事前に割り当てておくものとする。そしてこの例の信号処理チップ1が備えるラッパー部10′は、図7に例示するように、サンプリング部11と、識別情報テーブル21と、識別情報付加部22と、識別情報デコード部23と、送出部12′と、受入部13′と、逆サンプリング部14′とを含む。ここでサンプリング部11は、既に述べた例と同様であるので、繰り返しての説明を省略する。
識別情報テーブル21は、図8に例示するように、チップ間インターコネクトCを介して互いに接続されるすべての信号処理チップ1のすべての信号処理ブロックBごとに互いに異なる識別情報(信号処理チップ1a,1b,1cが相互に接続される場合、信号処理チップ1a,1b,1cが備える信号処理ブロックBのどの2つも同じ識別情報とならないよう設定されているものとする)Iと、当該識別情報で識別される信号処理ブロックBが自己の信号処理チップ1内に所在するか否かを表す所在フラグEとを互いに関連付けたものである。
さらに本実施の形態の例では、この識別情報は、チップ間インターコネクトCを介して互いに接続され、データフレームの送受が行われるすべての信号処理チップ1のすべての信号処理ブロックBの組み合わせ(送信の方向を含む)ごとに固有の識別情報Iを設定する。すなわち、ある信号処理チップ1aが備える信号処理ブロックBaから信号処理チップ1bが備える信号処理ブロックBbへ送出するデータフレームを識別する識別情報として「1」を設定し、信号処理チップ1aが備える信号処理ブロックBaから信号処理チップ1bが備える信号処理ブロックBcへ送出するデータフレームを識別する識別情報として「2」を設定し…というように、識別情報Iにより、信号の送信元(ソース)である信号処理ブロックBと、信号の送出先(デスティネーション)である信号処理ブロックBとを表すこととしておく。
この識別情報テーブル21は、識別情報で識別される信号処理ブロックBが受け入れる信号のフォーマットを表す情報Fがさらに関連付けられていてもよい。このフォーマットを表す情報Fには、チップ間インターコネクトCに含まれる複数の配線のそれぞれがどの信号を送受するために使用されているかを表す情報が含まれてもよいし、当該信号をサンプリングした信号線(オンチップインターコネクト)の種類や周波数などが含まれてもよい。このように、このフォーマットを表す情報Fには、信号線上の信号に関わるフォーマットを表す種々の付加的情報が含まれてよい。また識別情報一つあたりに複数の種類のフォーマットを表す情報Fが関連付けられていてもよい。
識別情報付加部22は、サンプリング部11がサンプリングして得たデータフレームの宛先となる信号処理ブロックBが(アドレス情報等により)特定されている場合は、当該サンプリングされた信号を出力した信号処理ブロックB(ソースブロックBs)と宛先として特定された信号処理ブロックB(デスティネーションブロックBd)とを特定する識別情報を、サンプリングして得られたデータフレームに付加して、送出部12′に出力する。識別情報デコード部23については、便宜的に、後に説明する。
送出部12′は、この識別情報が付加されたデータフレーム(信号線L内のサンプリングされた配線ごとの信号の状態をサンプリングした情報を含む)をバッファし、予め定められた条件を満足するタイミングで、チップ間インターコネクトCを介して他の信号処理チップ1に対して当該バッファしたデータフレームを送出する。このデータフレームを送出するタイミングについては、既に述べたような、クレジット情報を利用して決定されるタイミングでよい。
なお、この例では、データフレームの送出先となる信号処理チップ1は複数あるので、送出部12′は、他の全ての信号処理チップ1内の受入部13のバッファの空き容量をクレジット情報に基づいて算出しておき、そのうち受入部13のバッファの空き容量が最小の空き容量となっている信号処理チップ1の空き容量分(当該空き容量で蓄積可能な量)のデータフレームを送出する。ここで当該最小の空き容量が「0」であれば、送出部12′は、データフレームの送出を待機する。
この目的のため、本実施の形態のこの例では、相互にチップ間インターコネクトCで接続される各信号処理チップ1にも固有の識別情報(チップID)を割り当てておき、送受するクレジット情報にはチップIDを付して送出するものとし、送出部12′はクレジット情報とともに送信されたチップIDを参照して対応する空き容量の情報を更新する。
受入部13′は、インターコネクトCを介して他の信号処理チップ1から到来したデータフレームを受け入れてバッファし、所定のタイミングで識別情報デコード部23に対して当該データフレームを出力する。
この受入部13′もまた、信号処理チップ1内の信号処理ブロックBの一つとして動作し、信号処理チップ1内の信号線L上に、バッファ内に一時的に保持したデータフレームに基づく信号を出力可能なタイミングが到来すると、このタイミングで、バッファしたデータフレームを、識別情報デコード部23に出力して、当該データフレームをバッファから削除する(空き容量を増やす)。
識別情報デコード部23は、受入部13′から入力されたデータフレームに含まれる識別情報を参照し、当該識別情報に関連付けて識別情報テーブル21に記録されている所在フラグEが、自己と同じ信号処理チップ1内に所在することを表す場合(図8ではTrueとなっている場合)は、受入部13′から入力されたデータフレームから識別情報を除いて、宛先となる信号処理ブロックB(デスティネーションブロックBd)に接続されている逆サンプリング部14に出力する。
また識別情報テーブル21に識別情報で識別される宛先の信号処理ブロックB(デスティネーションブロックBd)が受け入れる信号のフォーマットを表す情報Fがさらに記録されている場合は、識別情報デコード部23は、受入部13′から入力されたデータフレームに含まれる識別情報に関連付けられている、フォーマットを表す情報Fを参照して、信号線Lのどの配線に、データフレームを逆サンプリングして得られる各信号のうちどの信号を出力するかや、サンプリングレート(周波数)等を表す付加的情報を、逆サンプリング部14′にさらに出力してもよい。
逆サンプリング部14′は、識別情報デコード部23からデータフレームが入力されると、当該データフレームに基づいて、当該データフレームの送信元である、チップ間インターコネクトCを介して接続された他の信号処理チップ内の接続線L内の信号を再生し、自チップ(自己)内の信号線Lに当該再生した信号を出力する。
またこの逆サンプリング部14′は、識別情報デコード部23から、他の信号処理チップでサンプリングして得られたデータフレームとともに、当該データフレームを逆サンプリングして得られる各信号のうちどの信号を出力するかやサンプリングレート(周波数)等を表す付加的情報(フォーマット情報)を受け入れて、このフォーマット情報に従って、再生した各信号を、信号線Lに出力することとしてもよい。
なお、フォーマットが予め定められている場合は、このフォーマット情報は必ずしも必要でなく、識別情報テーブル21にフォーマットを表す情報Fを記録しておく必要もない。
[識別情報を用いない宛先の指定]
また、ここまでの説明では識別情報を用いてデータフレームの宛先となる信号処理ブロックBを特定することとしていたが、本実施の形態はこれに限られない。例えば、チップ間インターコネクトCを介して互いに接続されるすべての信号処理チップ1のすべての(あるいは宛先となり得る)信号処理ブロックBのそれぞれに予め順序を設定しておき、送出部12が、サンプリング部11から入力されるデータフレームを、その宛先となる信号処理ブロックの各々について上記予め定められた順序に並べ替えて、予め定められた条件を満足するタイミングで、他の信号処理チップに対して送出することとしてもよい。
このような処理は、各信号処理ブロックBのそれぞれに、常時チップ間インターコネクトCを介して信号を送信する必要がある場合に好適である。このように順序により宛先を指定させる(N番目に受信した情報は、上記定めた順序の上で、(N mod P)+1番目にある信号処理ブロックB宛と識別される。ここでPは、宛先となり得るものとして順序賀設定された信号処理ブロックBの数であり、X mod Yは、XをYで除した余りを意味する)ことにより、識別情報を付加することなく、データフレームの宛先の指定をさせることが可能となる。
[フレームアライメント]
またここまでの説明では、チップ間インターコネクトCのビット幅は、このチップ間インターコネクトCで互いに接続された信号処理チップ1が送受する、それぞれのチップ内で信号をサンプリングして得たデータフレームのビット幅w以下であるものとした。この例では、チップ間インターコネクトCのビットのうち、使用されないビットについては、予め定めたパディング方法でその値を設定する。例えば使用されないビットに対応する配線を介してはその値が「0」であることを表す信号を送出することとする。
この場合、データフレームは、チップ間インターコネクトCを介して一度に送信される情報(ビット幅w以下の情報、以下転送フレームと呼ぶ)にアライメントされる。
しかしながら、次のようにすることで信号処理チップ1は、データフレームを、転送フレームにアライメントすることなく(つまり一つのデータフレームを複数の転送フレームにまたがって)送受信してもよい。
本実施の形態のこの例では、図9(a)に例示するように、ビット幅wのチップ間インターコネクトCを介して順次、複数の転送フレームを送信する際に、転送フレームのビット幅wにアライメントせずに、複数のデータフレームJ1,J2…を含めてもよい。すなわち、データフレームを送出する側の信号処理チップ1の送出部12は、予め定めた詰め込み規則に従い、送出するべきデータフレームの少なくとも一つに含まれる情報を、複数の転送フレームに詰め込んで転送フレームを生成することとしてもよい。
具体的に送信元となる信号処理チップ1aのラッパー部10,10′がサンプリングして得たw1ビット長のデータフレームJ1と、w2ビット長のデータフレームJ2と…を送出する場合(なお、w1+w2>wとする。またw1とw2とは互いに等しい必要はない)、最初の転送フレームに、データフレームJ1全体と、データフレームJ2のうち先頭(w2-(w1+w2-w))ビット分の情報とを含め、2番目のフレームにデータフレームJ2のうちの残りのビット数の情報を含めて送信する。
この場合、これら複数の転送フレームを受信した信号処理チップ1bが、所定の規則に従って(例えば最初に受信する信号から順にデータフレームのビット長を定めておくなどして)元のデータフレームのビット長の情報(データフレームJ1,J2…に含まれる情報)を順次取り出してバッファに記録する。この場合、データフレームの区切り位置を表す情報を含める必要がない。
もっとも、ビット長Wの1以上の転送フレームに、ビット長の総和がW以下となる複数のデータフレームに含まれる情報を詰め込む方法は、この例に限られず、チップ間インターコネクトCで互いに接続された信号処理チップ1間で予め定めておけば、任意の詰め込み規則を用いることができる。
また、転送効率はやや低下するものの、データフレームの区切り位置を表す情報を含めてもよい。具体的には、チップ間インターコネクトCの配線のうち一つを区切り位置を表す専用線としておき、情報の区切りとなる位置に特定のビットパターン(マジックナンバー値等)を含める。この場合、先の例と同様、フレームのうち、送信元となる信号処理チップ1aのラッパー部10,10′がサンプリングして得たw1ビット長の情報(データフレーム)J1と、w2ビット長の情報(データフレーム)J2と…を送出するときに、図9(b)に示すように、最初の転送フレームの先頭w1ビットにデータフレームJ1を含め、続いて区切り位置を表すビットパターン(境界パターン:ここではnビットとする)pを含め、次に、データフレームJ2のうち先頭(w2-(w1+w2+n-w))ビットの情報を含め、2番目の転送フレームにデータフレームJ2のうちの残りのビット数の情報を含めて送信する。
[データフレームに複数回、複数種類のサンプリング結果を含める例]
また、1つのデータフレームにも時間的に複数回分のサンプリング結果が含まれてもよく、複数種類のサンプリング結果が含まれてもよい。すなわちデータフレームのフォーマットが送信側と受信側の各信号処理チップ1で既知であればよい。
すなわちここまでの説明におけるデータフレームにおいて、1回に送出されるデータフレーム一つあたりに含まれる情報は、一回のサンプリングで得られた情報だけに限られない。つまり、一つのデータフレームには、複数のソースブロックが出力する信号線上の信号をサンプリングして得た情報が含まれてもよい。また一つのデータフレームには、複数の互いに異なるタイミングでサンプリングされた信号を表す情報が含まれていてもよい。
このようなデータフレームを受け入れた逆サンプリング部14は、当該データフレームに含まれる情報が表す複数のソースブロックが出力する信号に基づいて、それぞれ対応する宛先となるデスティネーションブロックに接続された信号線上の信号を再生する。また、複数の時点でサンプリングされた信号がデータフレームに含まれる場合は、サンプリングされた順に従って(各信号をサンプリングした時間に応じたタイミングで)対応する宛先となるデスティネーションブロックに接続された信号線上の信号を再生する。
[チップ間インターコネクトに関する変形例]
さらにチップ間インターコネクトCにおけるフロー制御は、ここまでに述べたようなクレジット制御を行う例に限られず、仮想チャネルなどの他の制御を行ってもよい。また公知のQoS制御が行われてもよい。
またチップ間インターコネクトCはここまでに述べたようなパラレルの配線に限られず、識別情報を用いて信号の宛先となるいずれかの信号処理チップ1内の信号処理ブロックBが特定される場合、チップ間インターコネクトC上にスイッチSWを配して、当該識別情報を参照し、宛先となる信号処理ブロックBを含む信号処理チップ1に情報をルーティングしてもよい。
[サイクル数が固定された信号への対応]
近年のチップ内インターコネクトでは、コマンドを送受するフェーズと、データを送受するフェーズとが分離された、いわゆるスプリットトランザクションが主流である。このスプリットトランザクションでは、コマンドとデータとが任意のタイミングで(どのようなサイクル数を置いて)到来しても構わないので、本実施の形態の方法で信号を送受することが問題となることはない。
しかしながら、動作において固定サイクルであることが前提で、所定の動作サイクルだけ待機することが要求される場合や、あるサイクル内に応答をすることが要求されている場合、複数サイクル分の信号のサンプリング結果を連続させて(分断せずに)送受する必要が生じることも考えられる。
そこで本実施の形態において信号処理チップ1は、チップ間インターコネクトCを介してデータフレームを送出するにあたり、複数のタイミングで連続的にサンプリングした信号に基づくデータフレームを、連続して送出する固定サイクルモードと、これまでに説明したようにデータフレームの送出タイミングを問わない通常モードとのいずれかのモードの指定を受けて、このモード指定に応じたモードでデータフレームの送出を行ってもよい。
具体的に本実施の形態の一例では、信号を送出する信号処理ブロックBあるいは、サンプリング部11が、予め定めた種類の信号を送出、あるいはサンプリングする際に、固定サイクルモードで送出するよう、モードを指定する。
この固定サイクルモードが指定されている間(例えば所定のクロックサイクルの間)は、サンプリング部11は、毎クロックごとに信号線L上の信号をサンプリングして(連続してサンプリングして)データフレームを生成し、送出部12に出力する。また送出部12(あるいは送出部12′、以下同じであるので、送出部12′については省略する)は、サンプリング部11が出力するデータフレームを、サンプリングした順序を変更することなく、他の信号処理チップ1へ送出する。
あるいは、サンプリング部11は、固定サイクルモードが指定されている間、毎クロックごとに信号線L上の信号をサンプリングして(連続してサンプリングして)得た情報を、一つのデータフレームに含めて送出部12に出力することとしてもよい。
またこのとき送出部12は、データフレームの送出先となる信号処理チップ1の受入部13のバッファの空き容量が当該固定サイクルモードで送出するべき情報全体を送出するに十分な空き容量となるまで待機して送出することとしてもよい。
さらにこの例では送出部12は、当該固定サイクルモードで送出されるデータフレームには、固定サイクルモードで送出されたデータフレームであることを表すフラグ情報を付してもよい。そしてこのフラグ情報が付されたデータフレームを受け入れた受入部13(あるいは受入部13′。以下同様なので、受入部13′の表記は省略する)は、このデータフレームに基づく信号を送出可能なタイミングで、当該フラグの付されたデータフレームを続けて(サイクルを変化させることなく)出力する。
これにより、サンプリングされた信号が分断されずに、信号処理チップ間で転送される。なお、この例においても、仮想チャネルやQoS等、他の方法でのフロー制御などが採用されても構わない。
[信号線L上にサンプリング部を配することができない場合]
また本実施の形態において、信号線L上にサンプリング部11を配することができず、サンプリング部11が信号線L上の信号をサンプリングできない場合は、各信号処理ブロックBごとにラッパー部10を配してもよい。この場合、各信号処理ブロックBは信号線L上に信号を出力するとともに、対応するラッパー部10にも信号を出力する。また、信号処理ブロックBは信号線L上の信号を受け入れるとともに、対応するラッパー部10からも信号を受け入れる。
この例では、各ラッパー部10は、共通の送受信部(PHY等)を介してチップ間インターコネクトCを用いたデータフレームの送受を行うこととしてもよい。
さらに各信号処理ブロックBごとにラッパー部10を配するのではなく、各信号処理ブロックBが信号線L上に信号を出力するとともに、一つのラッパー部10に対して同じ信号を出力することとしてもよい。
本発明の実施形態については、また次のように説明することもできる。すなわち、本発明の実施の形態において特徴的なことの一つは、シングル・チップを前提としたチップ内アーキテクチャを、マルチ・チップに効率よく展開し接続する方法を提供することにある。
このような方法を提供する背景として、シリコンプロセス微細化の進展により、チップ開発コストや、チップ製造コストが急増していることがある。これにより巨大なSOCチップを要件に応じて毎回開発し、巨大なチップの製造歩留まりを改善させながら製造コストをおさえることが難しくなってきている。
従来は、集積度の向上によって、同じ機能・性能を実現するために必要なシリコンサイズを削減することで、このようなコスト上昇を相対的に相殺することが可能であったが、このような対応も近年は難しくなってきている。またSOCには、ロジック回路、大規模内蔵メモリ、PHYなどのアナログ回路が含まれるが、それぞれに最も適したシリコンプロセスは異なり、1チップ内にこれらが含まれると製造歩留まりやコストの最適化が行いにくいというのが現状である。
例えば1チップに機能が集約されていると、システム動作時の熱密度が1チップに集中して高まってしまう。また、チップ外との接続に比べて1チップ内においては、低遅延・多ビット接続・広帯域接続をオンチップインターコネクトで効率よく実現できるため、1チップ化は、機能性能を高めるときには有効な手段であった。しかし一方で上記のような課題の解決が困難となっている。
そこで本実施の形態では、1チップに集積することが必要であった巨大なシステムデザインを、複数チップを用いながらも効率よく構成することを目的の一つとする、また、システム性能・製造コスト・放熱の組合せを最適化することを別の目的の一つとする
本実施の形態では、共通のアーキテクチャながら、1システムで使うチップの数を変更することで、処理能力にスケーラビリティを持たせることとした。一例として1つのGPUを、マルチチップで構成することを実現することを可能とする。
また、ポータブルな機器であっても、ホームコンソールなど設置型の機器であっても、さらにはサーバであっても、同じチップの利用を可能とする。
上記目的のため、本発明の実施の形態では、低遅延・多ビット接続・広帯域接続を前提にしたチップ内インターコネクトを、チップ間の物理リンク(chip to chip physical link)を介した、チップ間インターコネクトへ効率よく変換することとした。
ここで変換の対象となるチップ内接続インターコネクトを大別すると、次の4種類となる。本実施の形態の目的の一つは、これらをチップ間接続においてもできるだけトランスペアレントに扱えるようにすることである:
(1)メイン・データ・インターコネクト
このメイン・データ・インターコネクトは、主たるデータの転送用のインターコネクトである。なお、キャッシュコヒーレントプロトコルを含む場合がある。このメイン・データ・インターコネクトの例としては、AMBA AXI, CCI, Infinity Fabricなどであり、制御ユニットとキャッシュ間、キャッシュ同士の間など(CU-L1, L1-L2, L1-RB, L1-分散L2巨大クロスバなど)で利用される。
(2)MMIOアクセス・インターコネクト
これはCPU/制御コアからチップ内の各ブロックのレジスタ/メモリ アクセス用のインターコネクトである。
(3)システム制御系
パワーマネージャ制御、DFT/DFD系統、割り込みなどに関わるインターコネクトである。
(4)ブロック固有専用線
これはローカルデータバスや、ハンドシェイク、制御ラインなどである。GPU等においてはコマンドプロセッサCPから各シェーダエンジンSEへのライン、あるいはラスタライザから各シェーダエンジンSEへのライン、ジオメトリ・テッセレーション系から各シェーダエンジンSEへのラインなどで利用される。
従来のチップ間インターコネクトでは、オンチップインターコネクトにチップ外接続ポートを設け、インターフェース・ブリッジなどを介して、外部チップに接続していた。しかしながらこの方法では、プロトコル変換やキューイングの遅延が大きく、スループット性能がチップ内インターコネクトの場合に比して低下する。
そして遅延が大きいと、特にキャッシュコヒーレント・プロトコルなどハンドシェイクを要する転送のスループット性能が律速されることとなるなど、外部チップ・インタフェースのトランスポート・データリンク層のオーバーヘッドが大きくなってしまっていた。なお、転送データを削減するための既存のデータ圧縮方式を採用しても、遅延が大きいので、上記の課題は解決できない。
そこで本発明の実施の形態では、広帯域かつチップ内インターコネクトより動作周波数が速いチップ間物理リンク(chip to chip physical link)の利用を前提として、チップ内インターコネクトを流れる信号のraw値の変化をサンプリングしたフレームを送受信することとした。
ここで、チップ内インターコネクトを介した信号の送受で利用される各種のチップ内プロトコルについて、個別にプロトコル変換することなく、共通の方式でサンプリングして、送受信できることとなる。また、サンプリングするチップ内インターコネクトで利用されるプロトコルやビット幅は問われない。
また、サンプリングする対象は、通常のインターコネクトにおけるデータ線のみならず、制御線を流れる信号のraw値の変化を含めてもよい。
さらに、このサンプリングにおいては、信号が変化したとき、つまりシグナルエッジの変化(0から1への変化または1から0への変化)があったときのみサンプリングとフレーム生成をしてもよい。これにより不要な情報の転送をスキップできる。
また、サンプリングするか否かを、各インターコネクトおよびマスターブロックのアクティブ・非アクティブを示す制御信号(bus/cycle enable, clk/power gating enableなど)を参照して判断してもよい。これによりサンプリング不要なサイクルを判別し、不要な転送をスキップできる。
また、チップ内インターコネクトの各サイクルのアクティブ(enable/disable、valid、readyなど)ステータスを参照し、サンプリングが不要となるサイクルを判別して、不要な転送をスキップしてもよい。
具体的に、本実施の形態では、チップ内インターコネクトの値をサンプリングし、フレームを生成する、送信側(ソース)のラッパーモジュールを備える。また、このフレームを受信する側である受信側では、当該受信したフレームに含まれるサンプリング値を出力するデスティネーションのラッパーモジュールを備える。
またここで送受されるフレームは、ソースとデスティネーションを特定するIDを付加したフレームとしてもよい。
これを実現する一つの例では、ソースとなるブロックと、デスティネーションとなるブロックと、の組み合わせに対して、固有のIDを付与する。一例として、ソース側であるチップにブロックA,B,Cの3つのブロックがあり、デスティネーション側であるチップにブロックD,E,Fの3つのブロックがあるとき、次のようにIDを割り当てる。
すなわち、A→Dの転送にID:1、 A→Eの転送にID:2、 A→F転送にID:3、B→Dの転送にID:4、 B→Eの転送にID:5、 B→F転送にID:6、C→Dの転送にID:7、 C→Eの転送にID:8、 C→F転送にID:9…というようにIDを割り当てることとしてもよい。これにより、ひとつのIDをデコードするだけでソースとデスティネーションおよび経路を把握できるようにする。
また、他のチップからフレームを受信したチップは、このIDに基づいて当該チップ内で宛て先に該当するデスティネーションにフレームを送出することとしてもよい。
また、各チップでは、チップ内インターコネクトを流れる信号のraw値の変化をサンプリングして得たデータを、送信時に、パラレルシリアル変換してもよい。この例では、受信側のチップが受け入れたフレームのデータを、シリアルパラレル変換する。これにより、チップ間の転送に要するビット幅を削減できる。
また本発明の実施の形態の一例に係るその他の特徴の例は、次の通りである。すなわち、
・チップ間物理リンク(chip to chip physical link)は、フレームをクレジットベースのフロー制御にもとづいて送受信してもよい。
この場合、通信においてクレジットベースのフロー制御以外のACK/NAKなどを用いたハンドシェイクをしない。またチップ内でのプロトコルが利用しているハンドシェイクに関わりなくフレームを転送する。
・フレーム生成において、フレームにはタイムスタンプを付加してもよい。
・フレーム生成において、フレームにはプライオリティ情報を付加してもよい。
・またフレームの経路を選択する、経路選択用スイッチ(SW)を設け、この経路選択用スイッチ(SW)を介してフレームを転送してもよい。これらの経路選択用スイッチ(SW)や、ラッパーモジュール、チップ間物理リンク(chip to chip physical link)においては、バーチャルチャネル(VC)、およびQoS制御を利用してもよい
・QoS制御を行う場合、タイムスタンプとプライオリティ情報を用いてもよい。
・電気的転送の周波数帯域抑制やロバストネス向上のため、フレームを128B130Bなどでエンコードしてもよい。
・フレームには、ECCなどエラー補正値の付加をおこなってもよい。
・チップ内のブロック(機能ブロック)、ラッパーモジュール、チップ間物理リンク(chip to chip physical link)、を相互に接続するインターコネクトは、ツリー、メッシュ、トーラス、など、どのようなトポロジーを用いたものであってもよい。
・チップ間の転送では、チップ間物理リンク(chip to chip physical link)のビット幅にて、フレームをアライメントしてもよいし、非アライメントのまま不足分を所定のデータで充填して、フレームを転送してもよい。
・非アライメントでフレームを転送するときには、あらかじめソースとデスティネーションとの間で充填に関するルールを定めておく。この場合、フレームの区切りを示す目印となるデータを付加せずに送信できることとなり、これにより転送効率(フレーム利用効率)を向上できる。
・フレーム区切りを示す目印となるデータが必要である場合は、当該目印となるデータとして、専用線アサートやマジックナンバー値を用いてもよい。
・1フレーム内に、空間軸(複数のソースの信号値)・時間軸(より高速動作な周波数による信号値に基づく情報)方向に、複数のサンプリング値が含まれてもよい。これにより転送効率(フレーム利用効率)が向上する。
・ソース及びデスティネーションとなるブロックはそれぞれ、フレームに付加されたIDにより、1フレームに含まれるサンプリング値のフォーマットを把握することとしてもよい。
すなわち、図10に例示するように、フレームに付加する固有のIDは、ソースとなる機能ブロックを特定する情報(Src)と、デスティネーションとなる機能ブロックを特定する情報(Ds)と、サンプリングしたチップ内インターコネクトの信号のフォーマット(Format)や動作周波数(Freq)など、当該チップ内インターコネクトの種類に基づく情報と、QoS、バースト等、フレームの送受信に関わる情報とを互いに関連付けて、各チップ内のラッパーモジュールが参照可能な状態で例えば各チップ内に保持しておく。
この例では、IDには、ソースとデスティネーションの組み合わせに加えて、サンプリングしたチップ内インターコネクトの種類や周波数など様々な付加情報が紐づけてられる。これにより、IDをデコードするだけで複数の情報を取り出すことが可能となる。
さらに本発明の実施の形態においては:
・ソース・デスティネーションがどのブロックであるかと、フレーム内の信号のフォーマットは、IDによって特定されるが、このID等の情報は、事前に静的に決まっていてもよいし、設定フェーズが実施されるときに動的に決められてもよい。
・また、本実施の形態では、サンプリングしたraw値、及び、IDなどの最低限のヘッダを付加したフレームの長さは問われない。
・チップ間物理リンク(chip to chip physical link)は、複数のソース・デスティネーションの組み合わせ間のフレームを集約して転送してもよい。
・このチップ間物理リンク(chip to chip physical link)のビット幅も、限定されるものではない。
・さらにチップ間物理リンク(chip to chip physical link)は、一対のチップ間で複数設けられていてもよい。
チップ内インターコネクトのプロトコルにおいて、コマンドフェーズとデータフェーズが分離されたスプリットトランザクションが主流となっている。スプリットトランザクションでは、各トランザクションは、アウトスタンディング(outstanding)に、並列に動作し、コマンドフェーズとデータフェーズとの間で要する時間(サイクル数)や、コマンドとデータとの順序は可変となっている。このようなトランザクションにおいて、本実施の形態の方法を適用することは容易である。ラッパーモジュールやスイッチ(SW)においてバッファ(BUF)を介することにより、従来のプロトコル変換ブリッジよりも小さいが遅延が発生しうる。そのときに、スプリットトランザクションはトランスペアレントに使用できる。
ただし、固定サイクル決め打ちで動く、シグナル状態遷移や、ソースデスティネーション間ハンドシェイクも存在する。そのような信号をチップ間で転送する必要があるときは、当該固定サイクルだけ連続サンプリングしたデータが連続したフレーム(すなわちバースト(Burst))を転送するモード、もしくは1フレーム内に当該連続サンプリングしたデータが格納されるモードがあってもよい。またそのモードでの転送であることを示すヘッダフラグがフレーム内に含まれていてもよい。ラッパーモジュールやスイッチが当該フラグを参照して転送を実施することで、連続サンプリング値が分断されず、固定サイクル数で、チップ間を転送できるように制御できる。また、そのときには、VCやQoS制御とおなじ制御スキームを使用してもよい。
従来のチップ間接続は:
・チップ内接続に対して、ブリッジを介する接続によるデータ転送効率低下や遅延増加がおき、限定的な用途に特化している。
・チップ内インターコネクトのプロトコルを、チップ間インターコネクトのプロトコルに変換するブリッジが使われている。
・チップ内にはさまざまなインターコネクトがあるが、従来方式では、主たるチップ内インターコネクトプロトコルの変換のみに限定対応している。多様なチップ内プロトコルへ対応するには、その数だけ変換ブリッジを用意する必要もある。
・チップ間接続は、電気的特性やコストの制約により、少ないビット幅に転送をシリアライズして接続することが必要となり、変換オーバーヘッドが大きい専用チップ間インターコネクトのプロトコルが使われることが多い。
・多レイヤ変換を介して、データのシリアライズ化・パケット化をおこなっている。限定ビット数(幅2から64ビット程度)のシリアルのチップ間物理リンクを使うことが前提となっている。
・既存のチップ間のインターフェース規格においては、プロトコル・オーバーヘッドが20~30%程度となっている。
本実施の形態が対象の一例とする信号処理チップには、CPU/GPU/DSPなどのプロセッサ、ビデオ圧縮符号化・伸張復号をおこなう機能ブロック、画像音声処理や通信処理を行うハードワイヤード機能ブロック、不揮発性・開発性のメモリ、さまざまな外部デバイスと接続するためのインターフェース機能ブロック、A/D変換・D/A変換や、外部メモリや外部チップと接続するためのPHY、クロック逓倍や同期をおこなうPLLなどを内蔵してよい。
すなわち図11に例示するように、第1のチップが機能ブロックA(Blk A)、機能ブロックB(Blk B)…及びラッパーモジュール(Wrapper)が相互にチップ内インターコネクトで接続されたものであり、第2のチップが機能ブロックC(Blk C)、機能ブロックD(Blk D)…及びラッパーモジュール(Wrapper)が相互にチップ内インターコネクトで接続されたものであるとする。このような第1のチップと第2のチップとを接続する本実施の形態の例に係るチップ間インターコネクトによると、ラッパーモジュールがそれぞれ複雑なレイヤ変換を排除し、既存のチップ内インターコネクトラインを流れる信号をディジタルサンプリングし、中継転送する。
なお、この例では、超多ビット高速チップ間物理リンク(chip to chip physical link)が使えることを前提とする(ある例では、想定幅 256 ~ 2048 bit 程度)。
また、ラッパーモジュールがサンプリングして得るデータのビット幅(フレーム)と、チップ間物理リンク(chip to chip physical link)のビット幅は同じであって、各ビットが1対1対応してもよいし、ビット幅が異なっていてもよい。さらに、複数のラッパーモジュールが出力するフレームをチップ間物理リンク(chip to chip physical link)の同一ラインにたたみこんでもよい。
1対1接続や、単純なハードワイヤードブロックが固定ルールを使う場合ならば、フレームにIDなどを含むヘッダを含める必要がなくなる。また、この場合、フレーム区切りのマークも不要となる。
また、サンプリングのタイミングに関して、図12に例示するように、AMBA AXIプロトコルで信号を授受する、56線のチップ内インターコネクトで相互に接続されたAXIマスターとなる機能ブロックと、AXIスレーブとなる機能ブロックとがある例を考える。
このとき、AXIマスター側からライトアドレス制御が送出され、AXIスレーブがそれに応答してアドレス書き込み可能の信号(AWREADY)を送出するものとする。そしてその後、
・AXIマスターがリードアドレス制御を送出、
・AXIスレーブがアドレス読み出し可能の信号(ARREADY)を送出、
・AXIマスターがライトのデータを送出、
・AXIスレーブがライトレディの信号(WREADY)を送出、
・AXIスレーブがリードデータを送出、
・AXIマスターがリードレディの信号(RREADY)を送出、
・AXIスレーブがライト応答を送出、
・AXIマスターがレディ(BREADY)を送出、
というように信号を送出する場合、信号のタイミングチャートは図13に例示するようなものとなる。
このとき、このチップ内インターコネクトに接続されたラッパーモジュールは、56線のいずれかのシグナルエッジに変化があったサイクルだけ56線分の値(56の値)をサンプリングして、他のチップのラッパーモジュールへ送出することとしてもよい。図13の例であれば、T7のサイクルでのサンプリングはスキップできる。なお、この例に限らず、ラッパーモジュールは、サンプリングの対象とするチップ内インターコネクトのアクティブ(enable/disable)のステータスを参照し、サンプリング不要なサイクルを判別し、サンプリング不要と判断したサイクルでのサンプリング(及び、その送出)をスキップしてもよい。
また図14に、信号処理チップ1のスイッチSWの構成例を示す。図14(a)は2つのラッパーモジュールからそれぞれフレームの入力を受けて順次バッファ1401に保持し、1つの出力先の機能ブロック宛に出力するスイッチSWの例を示す。また図14(b)は2つのラッパーモジュールからそれぞれフレームの入力を受けて、それぞれの入力に対応して設けられ、各フレームに含まれるIDを、IDテーブル1411を参照してデコードするIDデコーダ1412,1413を備える例を示す。この例では、IDデコーダ1412,1413はそれぞれ受け入れたフレームに含まれるIDをデコードして、出力先となる3つの機能ブロックのいずれかを宛先として特定する。そしてIDデコーダ1412,1413は、特定した宛先の機能ブロックに対応して設けられたバッファ1414,1415,1416のいずれかにフレームを出力する。
サンプリングを行うためのラッパーモジュール内の回路は、例えば図15に例示するように、第1のラッチ(Dフリップフロップ(DFF))1501と、第2のラッチ(DFF)1502と、NOT回路1503と、3入力AND回路1504とを含んで構成される。第1のラッチ1501はサンプリングの対象となるチップ内インターコネクトのRaw信号の入力を受け入れ、また当該チップ内インターコネクトのクロック信号の所定のタイミングで、当該受け入れたRaw信号をラッチし、ラッチした信号を出力する。
第2のラッチ1502は、第1のラッチ1501が出力する信号を、チップ内インターコネクトのクロック信号の所定のタイミングでラッチし、当該ラッチした信号をNOT回路1503に出力する。NOT回路1503は当該入力された信号を論理反転し、AND回路1504に出力する。
3入力AND回路1504は、ここではチップ内インターコネクトのアクティブ(enable/disable)信号と、NOT回路1503の出力と、第1のラッチ1501の出力とを受け入れて、これらの信号のAND演算結果をサンプリング結果として出力する。
この回路により、チップ内インターコネクトがアクティブであり、かつ、Raw信号に変化があった(第1、第2のラッチの出力する信号が異なっている)場合に、クロック周波数1サイクルにわたってパルスを出力する回路が得られる。
なお、サンプリングの対象となるRaw信号がクロック同期信号である場合は、ラッチの必要がないので、この場合、第1のラッチ1501は必ずしも必要でない。
また、逆サンプリング(デサンプリング)を行う回路の例は、図16に例示するように、排他的論理和回路(EXOR)1601と、ラッチ(DFF)1602とを含んで構成される。排他的論理和回路1601は、サンプリング結果の入力と、後に説明するラッチ1602の出力とを得て、それらの排他的論理和を演算し、当該演算の結果をラッチ1602に出力する。
ラッチ1602は、排他的論理和回路1601の出力を、チップ内インターコネクトのクロックの所定のタイミングでラッチし、当該ラッチした信号を出力する。この出力は、受信側のチップ内インターコネクトのRaw信号として出力される。
この逆サンプリング回路の例によると、サンプリング結果のパルスが入力されるごとに、Raw信号の出力の0/1を反転させる。また引き続いて受け入れるサンプリング結果に変化がない場合は同じ値を出力し続けることとなっている。なお、入力されるサンプリング結果に変化がない状態では、逆サンプリング回路のクロックを停止したり、各部への電源供給を停止したりして、省電力化を図ってもよい。
なお、サンプリングと逆サンプリングとで用いるクロックと、各チップ内インターコネクトで利用されるクロックが異なっている場合、これらを同期させるための同期化の回路を、上記サンプリング回路や逆サンプリング回路に付加して、サンプリングと逆サンプリングとで用いるクロックを、各チップ内インターコネクトで利用されるクロックに同期させてもよい。
サンプリングした信号を送出するための送出部の回路構成例を図17に示す。図17においては4ビットの信号を送出する例が示される。ここではPHYクロック信号の入力を受けてクロック信号の変化ごとに、4つ(ビット数に応じた数)のいずれかの出力信号線の出力を順次、輪番に1とし、他の出力信号線の出力を0とする(図18)セレクタジェネレータ1701と、各ビットに対応する信号とセレクタジェネレータ1701のいずれかの出力信号線からの信号との論理積をそれぞれ演算して出力するAND回路1702と、これらのAND回路1702の出力の論理和を演算して出力するOR回路1703と、OR回路1703の出力をPHYクロックの所定のタイミングでラッチして出力する第1のラッチ(DFF)1704と、OR回路1703の出力を、反転したPHYクロックの所定のタイミングでラッチして出力する第2のラッチ(DFF)1705と、PHYクロックの入力を受けて、第1,第2のラッチ1704,1705のいずれかの出力を選択して出力するセレクタ1706とを含む。この例によると、4ビット分のサンプリング結果をシリアライズして送出可能となる。
また、この回路が送出した信号を受け入れる受信部の回路構成例を図19に示す。図19に例示する回路は、セレクタジェネレータ1701と同様の動作を行うセレクタジェネレータ1901と、シリアライズされた信号とセレクタジェネレータ1901のいずれかの出力信号線からの信号との論理積をそれぞれ演算して出力するAND回路1902と、奇数番目のビットに対応する信号線上に設けられ、AND回路1902が出力する信号を、反転したPHYクロックの所定のタイミングでラッチして出力する第1のラッチ1903と、偶数番目のビットに対応する信号線上に設けられ、AND回路1902が出力する信号を、PHYクロックの所定のタイミングでラッチして出力する第2のラッチ1904とを含む。この回路では、これら各ラッチの出力がそれぞれ対応するサンプリング結果として出力される。
本実施の形態のこの例では、サンプリングや逆サンプリングで用いるクロックに対して、PHYクロックの周波数をより高く設定し、PHY間(PHY to PHY)の転送において、同じ情報量を、より少ないビット幅で転送することを可能としている。この例によると、P2S(Parallel to Serial)、S2P(Serial to Parallel)変換が、単相(Positiveクロックエッジを利用する)の4ビットの幅の信号を、両相(PositiveとNegativeの双方のクロックエッジを利用する)1ビット幅の信号として転送することとなる。この例ではPHYのクロックの周波数は、サンプリングや逆サンプリングで用いるクロックに対して、最低でも2倍の周波数とする必要がある。
ただし、チップ間の伝送路において、誤り訂正用のデータを付加したり、8b10b転送等によるクロック信号の埋め込みを行ってもよい。また、プリエンファシスを併用してもよい。これらの結果、実効のデータ転送効率が低下する場合には、サンプリング、逆サンプリングで用いるクロックの周波数に対するPHYクロックの周波数の比をより高くしてもよい。
また本実施の形態のある例で利用されるバッファ回路は、図20に例示する構成により実現できる。この例のバッファ回路は、各チップ内に、送信側(TX)と受信側(RX)との対で配される。
送信側のバッファ回路は、バッファ部2001、カウンタ部2002、及び自チップクレジット値保持部2003を含んで構成され、受信側のバッファ回路は、バッファ部2010、カウンタ部2011、及び対向チップクレジット値保持部2012を含んで構成される。
これらのバッファ回路は、PHYが送受信するデータ(つまり、サンプリング結果)を一時期的に保持する。送信側のバッファ回路は、対向チップ(送信先のチップ)の受信側バッファが空いていることを、対向チップクレジット値保持部2012から取得した値に基づいて確認できたとき、サンプリング結果を、その確認できた値の量だけPHYへ出力する。
送信側バッファ回路は、自チップの受信側バッファの空き容量を、自チップクレジット情報として取得し、自チップクレジット情報保持部2003に格納するとともに、サンプリング結果と共にPHYへ出力して、対向チップへ通達する。
受信側バッファ回路は、対向チップからサンプリング結果の入力を無条件に受け入れてバッファ部2010に保持する。ここではクレジット情報に基づいて送信が行われているため受信側バッファ回路のバッファ部2010におけるバッファあふれが生じることはない。
受信側バッファ回路は、受信するサンプリング結果が入力される間に、事前に約束したルールで挿入されている、対向チップの受信側バッファの空き容量を対向チップクレジット値保持部2012に保存する。
またカウンタ部2002及び2011は、現在の、対応するバッファ部2001,2010の空き領域の数を保持する。この例では、カウンタ部2002,2011の初期値を、それぞれ対応するバッファ部の空き領域の数に設定する。
これらカウンタ部2002,2011に対しては、サンプリング結果が入力されるたびにアクティブになる(パルスが生成される)カウンタ減算信号、またはサンプリング結果が出力されるたびにアクティブになる(パルスが生成される)カウンタ加算信号が入力される。
そしてカウンタ減算信号がアクティブになる(パルスが入力される)たびに、カウンタ部2002,2011が保持する値を、そのアクティブサイクル数だけ減算した値とする。
また、カウンタ加算信号がアクティブになる(パルスが入力される)たびに、カウンタ部2002,2011が保持する値を、そのアクティブサイクル数を加算した値とする。
そしてこの例では、バッファ回路は、自チップクレジット情報(すなわちバッファ部の空き増減量)として、カウンタの現在の値もしくは、前回からの差分増減量を使う。
ここでバッファ残量を示すカウンタ値、もしくは前回のカウンタ値からのカウンタの増減値をクレジット情報として、PHY間で送受される通信データへ挿入する例について説明する。この例ではクレジット情報のビット幅は9乃至32ビット程度であり、サンプリング結果のデータサイズである8乃至2048バイト程度あたり1カウント程度が想定される。従って、クレジット情報を、PHY間で送受される通信データに対し、決められた周期間隔で固定的に挿入することとしてよい。このようにしても、オーバーヘッドは十分小さい。
なお、これらバッファ回路のビット幅が例えば512ビット必要であったとき、接続されるチップ内インターコネクトなどの幅で分割してよい(例えば192,56,36,228バイトにそれぞれ分割してよい)。またバッファの分割単位ごとに、サンプリング結果にパルスがなく、0が続いているならば、バッファ回路へのクロックや電源を停止してよい。これにより低電力化を実現できる。
また本実施の形態で利用可能なPHYの回路の例を、図21に示す。図21には、送信側となるチップ内に配される送信側(TX)PHYインタフェース回路と、受信側となるチップ内に配される受信側(RX)PHYインタフェース回路とを示している。なお、後述のように各チップに送信側PHYインタフェースと受信側PHYインタフェースとの双方を備えてもよい。
図21に示す送信側PHYインタフェースは、PHYクロックを生成するPHYクロックジェネレータ2101と、シリアライズされたサンプリング結果の入力を受けて、プリエンコーディングやプリエンファシス等(PreEncoding, PreDrv, PreEmph)の処理を行い、信号線を介してアナログ信号を送出する送信回路部2102と、を含む。
また受信側PHYインタフェースは、信号線を介して受信したアナログ信号を整形するイコライザ(EQU)2110と、PHYクロックを再生するクロック再生回路2111と、アナログ信号をデジタル信号に変換するADC2112とを含んで構成される。
この例では、クロック信号をデータ信号に埋め込んで送信することとしており、差動信号ペアで送信する例を示している。また変調の方法としてPAM4(4値パルス振幅変調)等、種々の変調方式を採用してもよい。PAM4の場合、1シンボルあたり2ビットの転送が行われることとなる。
本実施の形態の例では、このような差動信号を用いて比較的高速な電気通信を行うPHYを用いる。またこの例のように、クロック信号をデータ線上の信号に重畳して電気通信を行うほか、クロック信号を送受するクロック信号線を別途設けてもよい。またこのPHYは、シリアライズ化されたサンプリング結果を、シングルエンド信号を用いて電気通信を行う標準的なインタフェース回路により実現されてもよいし、磁界結合により近接通信を行うものであってもよい。さらに、電気光変換を介して光通信を行うものであってもよい。
図22に、本実施の形態の信号処理チップであるチップAとチップBとの間でチップ間インターコネクトを行う際の回路構成の概略例を示す。
図22に例示するように、各チップにはそれぞれ一対のラッパーモジュール2201,2202,2203,2204と、一対のPHY2205,2206,2207,2208を含む。
またチップAのラッパーモジュール2201はサンプリング回路2211及び送信側バッファ2212を含み、PHY2205は、PHYインタフェース回路2213を含む。
チップAのラッパーモジュール2202は逆サンプリング回路2221及び受信側バッファ2222を含み、PHY2206は、PHYインタフェース回路2223を含む。
チップBのラッパーモジュール2203は逆サンプリング回路2231及び受信側バッファ2232を含み、PHY2207は、PHYインタフェース回路2233を含む。
チップBのラッパーモジュール2204はサンプリング回路2241及び送信側バッファ2242を含み、PHY2208は、PHYインタフェース回路2243を含む。
サンプリング回路2211及び逆サンプリング回路2221は、チップAのチップ内インターコネクトに接続される。同様に、逆サンプリング回路2231及びサンプリング回路2241は、チップBのチップ内インターコネクトに接続される。ここで各チップ内インターコネクトは種々の異なるプロトコルで動作していてよい。またこの図22では、チップ内インターコネクトが最大動作周波数1.625GHzで動作するものであり、信号線の合計が1024ビット(512ビット双方向)である場合の例を示している。この例にあるように、PHY内では26GHzのQDR(Quad Data Rate:1サイクルあたり4相、つまり同一周波数でクロック位相0度、90度、180度、270度を用意する方式)で信号を処理し、PHYインタフェース回路が送受する信号は8ビット幅の52GHzの信号であるとする。またPAM4変調(4値パルス振幅変調:1シンボルあたり2ビットの転送を行う)を採用し、差動信号方式を採用している(差動信号方式:Differential pair signals、2本の相補信号を使って1ビットの転送を行う方式)ものとする。
この例では、チップ内インターコネクトのプロトコルによりハンドシェイク等を行うものとし、これらの回路群はハンドシェイクに介在せず、そのまま対向チップへ中継することとする。
さらに図23は、様々な動作周波数のチップ内インターコネクト512本をラッパーモジュールに入力し、そのまま512ビット幅でサンプリングし、P2S(Parallel to Serial)で8ビットに集約する例を示した概略説明図である。
a:192ビット(二点鎖線),動作周波数1.625GHzは、メイン・データ・インターコネクトであり、ここではネットワークオンチップ(Network on Chip)型であるものとしている(主たるデータの転送用であり、キャッシュコヒーレントプロトコルを含んでもよい。AXIや CCI、 Infinity Fabric等である)。
b:出力56ビット、入力36ビット(破線)、動作周波数406MHzは、MMIOアクセス・インターコネクトであり、共有バス型であるものとする。このインターコネクトは、CPUや制御コアから各機能ブロックのレジスタやメモリアクセスを行う際に用いられるものである)。
c:36ビット(一点鎖線)、動作周波数203MHzは、システム制御系のインターコネクトであり、ディスクリート専用線であるものとする。パワーマネジメント制御や、DFT/DFD系統、割り込みなどの信号を送受するものである。
d:228ビット(実線),動作周波数1.625GHzは、ブロック固有専用線であり、片方向クロスバ型であるものとする。ローカルデータバス、ハンドシェイク、制御ラインなどとして用いられるものである。
この例では、動作周波数が比較的低いチップ内インターコネクトは、ラッパーモジュールにおいてサンプリングした信号を、動作周波数が最も高い信号(ここでの例では1.625GHzの信号)にマルチプレックス(多重化)し、信号本数を削減したうえでP2Sへ入力してもよい。この例では1.625GHzで動作する信号(a,d)にあわせて1.625GHz以上でサンプリングをおこなうため、406MHzの信号bの56本は14本の信号線に、203MHzの信号cの36本は5本の信号線にそれぞれマルチプレックスできる。この場合、信号a192ビット、信号bは(56ビットから削減されて)14ビット、信号cは(36ビットから削減されて)5ビット、信号dは228ビットとなり、合計は(512ビットから削減されて)439ビットとなる。これにより、同じPHYのビット幅で、より多くのチップ内インターコネクト上の信号を転送することができることとなる。
図24は、このチップ内インターコネクトにおけるバスサイクルの推移の例を表す説明図である。ここでのサイクルは、最も高速なチップないインターコネクトのクロック動作周波数におけるサイクルであり、それとは異なるチップ内インターコネクトであっても、サンプリング結果の送信に用いるPHY単位が同じである場合、PHYを共有するチップ内インターコネクトのうち最も早いクロック周波数でサンプリングが行われることとなる。
なお、図24においてactiveとあるのは、対応するチップ内インターコネクトが利用されており、かつ、信号に0/1の変化がある状態を示す。この状態では、対応するチップ内インターコネクト用のサンプリング回路(ラッパーモジュール内)においてパルスが生成される。
またnon-activeとあるのは、対応するチップ内インターコネクトが利用されているが信号に0/1の変化がない状態、または、対応するオンチップインターコネクトが利用されていない状態(信号に0/1変化があってもよい。つまり無意味な、無視してよい信号変動があってもよい)を示す。この状態では対応するチップ内インターコネクト用サンプリング回路においてパルスは生成されない。またこのnon-activeの状態ではサンプリング回路及びそれより後続する回路でクロックや電源を停止させることができる。この例では、低電力化できる。
また、本実施の形態の例に係るチップ間インターコネクトを利用して、複合インターコネクトを2チップ構成に拡張する例について図25を参照しつつ説明する。
図25では、11個の機能ブロック(Blk0からBlkJ)2501と、スイッチ(SW)2502とを含むチップを2チップ構成に拡張する例を示している。2チップ構成にした場合には、本実施の形態の信号処理チップの例として、6つの機能ブロック(Blk0,A,B,E,F,G)2511と、スイッチ(SW)2512と、ラッパーモジュール2513と、チップ間PHY2514とを備えた第1のチップ(CHIP A)と、5つの機能ブロック(BlkC,D,H,I,J)2521と、スイッチ(SW)2522と、ラッパーモジュール2523と、チップ間PHY2524とを備えた第2のチップ(CHIP B)とを含む構成として実現できる。
なお、もとの1チップの状態では、ブロックBlkA,Bと、ブロックBlkE,F,G,H,I,Jとの間のメイン・データ・インターコネクト(二点鎖線)が第1のスイッチSW2502により仲介されている。同様に、ブロックBlkC,DとブロックBlkE,F,G,H,I,Jとの間のメイン・データ・インターコネクト(二点鎖線)が第2のスイッチSW2502により仲介されているものとしている。
MMIOアクセス・インターコネクト(破線)は、機能ブロックBlk0から他の機能ブロックBlkA乃至Jの間に接続されており、システム制御系(一点鎖線)は、機能ブロックBlkA乃至Jから機能ブロックBlk0の間に接続されている。さらにブロック固有専用線(実線)は、片方向クロスバ型のローカルデータバス等であり、機能ブロックBlk0から機能ブロックBlkA乃至Dの間に接続されているものとしている。
この例では、2チップ構成とした場合、第1のチップ側では、スイッチ2512とラッパーモジュール2513との間でメイン・データ・インターコネクトの信号線のサンプリング、及びメイン・データ・インターコネクトの信号線への信号出力のための接続が行われる。またラッパーモジュール2513はMMIOアクセス・インターコネクト上の信号とブロック固有専用線上の信号とをサンプリングしており、システム制御系に対しては、第2のチップから送信されたシステム制御系の信号を出力する。なお、このラッパーモジュール2513は、サンプリングした信号を、PHY2514を介して第2のチップへ送出するとともに、第2のチップが送信した信号を、PHY2514を介して受け入れている。
また第2のチップ側では、スイッチ2522とラッパーモジュール2523との間でメイン・データ・インターコネクトの信号線のサンプリング、及びメイン・データ・インターコネクトの信号線への信号出力のための接続が行われる。またラッパーモジュール2523は第1のチップから送信されたMMIOアクセス・インターコネクト上の信号とブロック固有専用線上の信号とをそれぞれ対応するインターコネクトに出力しており、システム制御系のインターコネクト上の信号をサンプリングして、PHY2524へ出力している。なお、このラッパーモジュール2523は、サンプリングした信号を、PHY2524を介して第1のチップへ送出するとともに、第1のチップが送信した信号を、PHY2524を介して受け入れている。
またこの例のように、ひとつのラッパーモジュールに、各チップ内インターコネクトを接続するために、各チップ内インターコネクトの信号線をチップ内で引き回すと、チップ内のレイアウト効率を悪化させ、設計効率・電力効率・エリア効率等が低下する場合がある。このような場合には、次のような構成をとることで、チップ内の配線効率を改善させることもできる。
すなわち本実施の形態の一例(マルチレイヤーバス型のチップ内インターコネクトに、ツリートポロジを追加する第1のケース)では、図26に例示するように、各機能ブロックの近傍に各機能ブロックからの出力信号線の信号をサンプリングするラッパーモジュール(Wrapper)を配する。すなわち、この例ではラッパーモジュールの挿入箇所(フレーム変換の場所)は各機能ブロック出力直下となる。
デスティネーションとなる機能ブロックの数にかかわらず、ソースとなる機能ブロック(ラッパーモジュール)が複数あるため、マルチノード接続用のラッパーモジュールを用いてIDを付加することとする。
この例では、各機能ブロックの出力インターコネクト規格が互いに異なる場合には、それぞれ対応するラッパーモジュールに通してからチップ内で引き回して、インターチップ・スレーブ(Inter-chip Slave)を介してPHYへと出力する。図26において破線で示す経路が新たに追加されたトポロジーに相当する。
またチップ内の配線効率を改善させる本実施の形態の別の例(マルチレイヤーバス型のチップ内インターコネクトに、ツリートポロジを追加する第2のケース)では、図27に例示するように、各機能ブロックから、スイッチSWを介して、ラッパーモジュール(Wrapper)へとチップ内インターコネクトの信号線を接続する。この経路においては、一般的なチップ内インターコネクトのプロトコルを用いてよい。
この例におけるラッパーモジュール(Wrapper)挿入箇所(フレーム変換の場所)は、チップ間物理リンク(chip to chip physical link)の直前となる。この例ではソースとなるラッパーモジュール(Wrapper)は一つであるので1対1ノード接続用のラッパーモジュールを用いてもよい。
ただし、対向チップにおいて、デスティネーションとなるラッパーモジュールや機能ブロックが複数あるときには、マルチノード接続用のラッパーモジュールを用いてIDを付加する。図27においても破線で示す経路が新たに追加されたトポロジーに相当する。
なお、各機能ブロックの出力インターコネクト規格が共通、かつQoS/VC対応のときは、元より使われているチップ内インターコネクトをチップ内で引き回すこととすればよい。
また、これら図26,27に例示した例は、ツリートポロジを追加するケースであるが、チップ内の機能ブロック、ラッパーモジュール、チップ間物理リンク(chip to chip physical link)を接続するために追加するチップ内インターコネクトは、ツリーに限られずメッシュやトーラスなどの他のトポロジを用いてもよい。
また、これら図26,27に例示のものでは、説明を容易にするため各機能ブロックからPHYを介して送信する方向のみ図示しているが、勿論逆方向の接続があってもよい。この場合スイッチ(SW)は、単方向用のスイッチ(SW)を2つ設けて双方向の通信に対応することとする。
また、以下、本発明の実施の形態を用いたGPU構成方法等の例を表す。本実施の形態の信号処理チップを複数含むパッケージは、図28に例示するように、(1)複数のチップを一つのパッケージ内に積層して配置してもよい(CoC:chip on chip)し、(2)各チップをそれぞれのパッケージとして、パッケージを積層して配置してもよい(PoP:Package on Package)。また、(3)パッケージの基板(substrate)上にRDL(Re-Distribution Layer)を配し、このRDL上に本実施の形態の信号処理チップを2つ配することとしてもよい(2.5D構成の一例)。
さらに、(4)パッケージの基板(substrate)上に本実施の形態の信号処理チップを2つ平面的に配してもよい。また、(5)パッケージの基板(substrate)上にシリコンインターポーザ(Silicon Interposer)を配し、この上に本実施の形態の信号処理チップを2つ配することとしてもよい(2.5D構成のもう一つの例)。なお、(6)シリコンインターポーザ(Silicon Interposer)は信号処理チップの全体をカバーする必要はなく、チップ間インターコネクトの配線された部分をカバーするよう配されてもよい(2.5D構成のさらにもう一つの例:部分シリコンインターポーザ)。さらに(7)各信号処理チップが別々のパッケージとなっていてもよい。
GPUの構成を本実施の形態の信号処理チップを用いて実現する例について次に説明する。ここでの例で対象とするGPUの従来の例(シングルチップの例)は、図29に示すように、各機能ブロックを含む1つのGPUがモノリシックチップで構成されてなる。性能を向上させるためにはより巨大化する必要があり、結局、特定の性能や機能要件に特化したチップとならざるを得ない。そこで破線枠内をそれぞれ本実施の形態の信号処理チップとすることで、コマンドプロセッサを含む第1のチップ(チップA)と、シェーダーエンジンなどを含む第2のチップ(チップB)と、メモリコントローラを含む第3のチップ(チップC)とに分割する(図30)。なお、図30の例ではチップBやチップCが複数個備えられており、チップAを1つ、チップBを2つ、チップCを4つ組み合わせて図29に例示したGPUと同等のGPUを実現している。
より詳しくは、チップAは、主にGraphics/Compute frontendや統括処理制御系を内蔵する。このチップAは、並列化が比較的困難なGPU全体にまたがる処理系を含む。このチップAにはI/O hubダイを統合してもよい。
チップAは、チップBの次に高速に動作するロジック回路を中心として構成し、必要に応じて各チップを接続するオンチップインターコネクトやペリフェラルI/FのハブとなるI/O Hubチップと統合する。このチップAの設計に際しては、コストパフォーマンスに優れるロジック回路用シリコンプロセスを採用したときの恩恵が最大化する組み合わせとなるよう構成する。
また、チップBは、主にシェーダーエンジン(Unified Shader, プログラマブルグラフィックス演算器)や、ラスタライザやレンダリングバックエンド(Z/Stencil/Blendなどのラスターオペレーション)、ローカルメモリ、L0/L1/L2キャッシュなどを内蔵する。このチップBは、比較的高い演算並列性をもつ機能を中心に構成したものである。具体的には、高速に動作させるべき演算器や、ハードワイヤードロジック、L0/L1高速キャッシュなどを中心としてこのチップBを構成する。このチップBの設計に際しては、最も微細化が進んだ高性能ロジック回路用シリコンプロセスを採用したときに、チップエリアや性能(動作周波数や消費電力)の恩恵が最大化する組み合わせとする。
チップCは、PHYや大容量キャッシュメモリ(オンチップSRAM、eDRAM、MRAM、FeRAMなど用いる)を中心として構成する。このチップCにおいては、PHYなどのアナログ回路や大容量オンチップメモリ( SRAM、eDRAM、MRAM、FeRAMなど)を集積する場合に有利なシリコンプロセスを採用する。
なお、この例は一例であり、例えばチップBの機能を多重化し、チップAを廃したうえで、チップBが、チップAの機能を併せ持つようにしてもよい。
この例を図31に示す。図31は別の分割方法の例を示したものである。図31の例では、破線枠内をそれぞれ本実施の形態の信号処理チップとしたもので、コマンドプロセッサやシェーダーエンジン等を含むチップB2つと、メモリコントローラに係るチップ4つを組み合わせる例としたものである。
このように1つのGPUの実現方法として複数の分割方法が考えられるため、システムにおいて接続する数を変更するなど構成を調整することでシステムの性能や機能を柔軟に設定できる。
例えば図32に例示するように、家庭用ゲーム機等において、ポータブル機ではチップAを1、チップBを1、チップCを2とする例が考えられる。このとき、一般的なGPUとしてはチップAを1、チップBを1、チップCを3としてPC用のGPUとすることができる。また据え置き型のゲーム機等では、チップAを1、チップBを2、チップCを4とし、より高性能なGPUとしてチップAを1、チップBを3、チップCを6とすることとしてもよい。
サーバ機等ではチップAを2、チップBを4、チップCを8としてさらに性能の向上を図る。
なお、これらにおいてチップA,B,Cには、接続され得る対向チップの数に基づいて、チップ内インターコネクトを接続するためのラッパーモジュール(Wrapper)を、必要な数だけ内蔵させておく。システム構成として、最大接続可能数よりも少ないチップ組み合わせ数とする場合には、内蔵するラッパーモジュール(Wrapper)の一部を未使用としてもよい。
またチップAを1、チップBを2、チップCを4とする構成では、この構成によるGPUを、RDLを用いた2.5D構成の1パッケージとし、I/Oハブチップなどを含む別パッケージや、DRAMなどに接続する形態としてもよい(図33(a))。チップAを2、チップBを4、チップCを8とする構成では、1つのチップAと2つのチップBと4つのチップCとをシリコンインターポーザを利用した2.5D構成の1パッケージで構成し、このパッケージを2つ、チップ間インターコネクトで接続して1つのGPUを得てもよい(図33(b))。なお、これらの例でCPUのチップもまた、本実施の形態の信号処理チップを用いた構成としてもよく、その場合、例えばCPU部分はRDLを用いた2.5D構成としてもよい。
また、本実施の形態の信号処理チップを用いたある例では、図34に示すように、I/Oハブチップにもラッパーモジュールを配して、複数のGPU(これらの各GPUにもラッパーモジュールを配する)をチップ間インターコネクトにより接続してもよい。この例では、複数のGPUをあたかも1つの巨大なGPUであるかのように動作させることが可能となる。
従来、複数のGPUを用いる場合には専用のソフトウェア開発を行う必要があったが、本実施の形態の信号処理チップを利用した例によれば、仮想的に巨大な1GPUを複数の比較的小規模のGPUにより実現できる。このことで、シリコン・ダイ接続数で性能スケーラビリティ(つまり、サーバでもコンソールでも共通に使用できるアーキテクチャ)を確保しつつ、アプリケーションのマルチテナントなどでチップ稼働率の向上も目指すといったことも可能となる。
また、コヒーレントI/Oハブダイが、上述のチップAを内蔵し、CPU/GPUがチップB,C及びCPUを内蔵する例を、図35に示す。この例では、本実施の形態の例に係るラッパーモジュールは、コヒーレントI/Oハブと、CPU/GPUとの間に挿入され、これらの間でチップ間インターコネクトが行われる。
さらに、図36に例示するように、本実施の形態の信号処理チップとして機能するシリコンダイ(プロセッサダイ)を用いて、比較的小規模なホームコンソール(図36(a))と、比較的大規模なサーバ(図36(b))とを実現することもできる。この例では共通のシリコンダイが利用されているが、ホームコンソールでは、チップ間インターコネクトは行われていないので、このシリコンダイに含まれるラッパーモジュールは使用されていない(enableになっていない)。一方、サーバとする場合には、ラッパーモジュールをenableとして、多チップ接続を行っている。図36(b)の例では、I/Oハブダイに接続されている。
さらにプロセッサダイが複数のラッパーモジュールを備える場合、構成するシステムの規模に応じて、enableとするラッパーモジュールの数を異ならせてもよい(図37)。
なお、図30乃至37などに例示したもののように、複数のチップ間インターコネクトが含まれるときには、そのうちの一部には、本実施の形態の信号処理チップによるインターコネクト以外のチップ間インターコネクト(ラッパーモジュールを利用しないインターコネクト)が含まれてもよい。
1 信号処理チップ、10 ラッパー部、11 サンプリング部、12,12′ 送出部、13,13′ 受入部、14,14′ 逆サンプリング部、21 識別情報テーブル、22 識別情報付加部、23 識別情報デコード部。

Claims (14)

  1. それぞれが信号線を介して信号を送受する複数の信号処理ブロックと、
    前記信号処理ブロックが送受する信号線上の信号をサンプリングするサンプリング手段と、
    前記サンプリングした信号を表す情報を含むデータフレームを、予め定められた条件を満足するタイミングで、他の信号処理チップに対して送出する送出手段と、
    を含み、
    前記送出手段はさらに、前記サンプリングした信号を受け入れるべき、他の信号処理チップ内の信号処理ブロックを識別する識別情報を付加して、前記サンプリングした信号を表すデータフレームを、予め定められた条件を満足するタイミングで、他の信号処理チップに対して送出する信号処理チップ。
  2. それぞれが信号線を介して信号を送受する複数の信号処理ブロックと、
    前記信号処理ブロックが送受する信号線上の信号をサンプリングするサンプリング手段と、
    前記サンプリングした信号を表す情報を含むデータフレームを、予め定められた条件を満足するタイミングで、他の信号処理チップに対して送出する送出手段と、
    を含み、
    前記送出手段はさらに、前記サンプリングした信号を出力したソースの信号処理ブロックと、当該信号を受け入れるべき、他の信号処理チップ内のデスティネーションの信号処理ブロックとの組を識別する識別情報を付加して、前記サンプリングした信号を表すデータフレームを、予め定められた条件を満足するタイミングで、他の信号処理チップに対して送出する信号処理チップ。
  3. 請求項1または2に記載の信号処理チップであって、
    前記送出手段は、前記予め定められた条件を満足するタイミングが到来するまで、前記サンプリングして得たデータフレームを保持するバッファを備える信号処理チップ。
  4. 請求項1からのいずれか一項に記載の信号処理チップであって、
    前記送出手段における前記予め定められた条件を満足するタイミングは、情報の送出先となる他の信号処理チップから所定の指示を受けた時点である信号処理チップ。
  5. 請求項1からのいずれか一項に記載の信号処理チップであって、
    前記信号線には、前記信号処理ブロックがデータを送受するデータ信号線と、制御情報を送受する制御信号線とを含む信号処理チップ。
  6. 請求項1からのいずれか一項に記載の信号処理チップであって、
    前記サンプリング手段は、
    (1)前記サンプリングする信号線上の信号に変化があったとき、
    (2)前記信号処理ブロック及び/または信号線の状態を表す制御信号が所定の状態を表すものとなったとき、
    (3)前記サンプリングする信号線の状態が所定の状態となったとき、の少なくとも一つのタイミングでサンプリングを行い、
    前記送出手段は、前記サンプリング手段がサンプリングを行い、予め定められた条件を満足するタイミングで、前記サンプリングで得られたデータフレームを他の信号処理チップに対して送出する信号処理チップ。
  7. 請求項1からのいずれか一項に記載の信号処理チップであって、
    前記送出手段は、複数の前記データフレームに基づいて、所定データ長の転送フレームを少なくとも一つ生成し、当該転送フレームを送出する送出手段であって、
    前記転送フレームを生成する際には、予め定めた詰め込み規則に従い、前記データフレームの少なくとも一つに含まれる情報を、複数の前記転送フレームに詰め込んで前記転送フレームを生成する信号処理チップ。
  8. 請求項1からのいずれか一項に記載の信号処理チップであって、
    前記送出手段は、前記データフレームと、データフレーム間の区切りを表すデータとを含む転送フレームを生成し、当該転送フレームを送出する信号処理チップ。
  9. 請求項1からのいずれか一項に記載の信号処理チップであって、
    前記データフレームは、複数の信号処理ブロックが送受する信号線上の信号、及び/又は、複数の互いに異なるタイミングで前記信号をサンプリングして得た情報を含む信号処理チップ。
  10. 請求項1からのいずれか一項に記載の信号処理チップであって、
    前記サンプリング手段は、送出先となる他の信号処理チップ内の複数の信号処理ブロックのそれぞれが宛先となって受け入れるべき信号をそれぞれサンプリングし、
    前記送出手段はさらに、前記サンプリングして得られた情報を、前記宛先となる複数の信号処理ブロックの各々について予め定められた順序に並べ替えてデータフレームを生成し、予め定められた条件を満足するタイミングで、他の信号処理チップに対して送出する信号処理チップ。
  11. 請求項1から10のいずれか一項に記載の信号処理チップであって、
    前記サンプリング手段は、固定サイクルモードを含む複数の動作モードで動作し、固定サイクルモードで動作する際には、所定のクロックサイクルだけ連続して、前記信号処理ブロックが送受する信号線上の信号をサンプリングし、
    前記送出手段は、当該連続してサンプリングされた信号を表す情報を含むデータフレームを、分断することなく送出する信号処理チップ。
  12. 互いに信号線で接続される複数の信号処理ブロックを有する信号処理チップであって、
    互いに信号線で接続される複数の信号処理ブロックを有する他の信号処理チップに接続され、
    前記他の信号処理チップにおいてサンプリングされた、当該他の信号処理チップ内の信号処理ブロック間の信号線上の信号を表すデータフレームを、当該他の信号処理チップから受け入れる受入手段と、
    前記受け入れたデータフレームに基づいて、自己内の前記信号線に信号を出力する逆サンプリング手段と、
    を含み、
    前記受入手段は、データフレームであって、当該データフレームに基づいて前記逆サンプリング手段が出力する信号を受け入れるべき、デスティネーションとなる信号処理ブロックを識別する識別情報が付加されたデータフレームを受け入れ、
    当該識別情報で識別されるデスティネーションとなる信号処理ブロックに対し、前記逆サンプリング手段が出力した信号を供給するスイッチ手段、をさらに有する信号処理チップ。
  13. 互いに信号線で接続される複数の信号処理ブロックを有する信号処理チップであって、
    互いに信号線で接続される複数の信号処理ブロックを有する他の信号処理チップに接続され、
    前記他の信号処理チップにおいてサンプリングされた、当該他の信号処理チップ内の信号処理ブロック間の信号線上の信号を表すデータフレームを、当該他の信号処理チップから受け入れる受入手段と、
    前記受け入れたデータフレームに基づいて、自己内の前記信号線に信号を出力する逆サンプリング手段と、
    を含み、
    前記受入手段は、データフレームであって、当該データフレームが表す、他の信号処理チップ内でサンプリングした信号を出力したソースの信号処理ブロックと、当該データフレームに基づいて前記逆サンプリング手段が出力する信号を受け入れるべき、デスティネーションとなる信号処理ブロックとの組を識別する識別情報が付加されたデータフレームを受け入れ、
    当該識別情報で識別されるデスティネーションとなる信号処理ブロックに対し、前記逆サンプリング手段が出力した信号を供給するスイッチ手段、をさらに有する信号処理チップ。
  14. 請求項1または1に記載の信号処理チップであって、
    前記識別情報に関連付けて、サンプリングのフォーマットに関するフォーマット情報を保持し、
    識別情報が付加されたデータフレームに基づいて前記逆サンプリング手段が出力する信号を、当該識別情報で識別されるデスティネーションとなる信号処理ブロックに対し、当該識別情報に関連付けて保持されたフォーマット情報が表すフォーマットの信号として供給する信号処理チップ。
JP2021552328A 2019-10-15 2020-10-05 信号処理チップ、及び信号処理システム Active JP7266698B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019189027 2019-10-15
JP2019189027 2019-10-15
PCT/JP2020/037782 WO2021075302A1 (ja) 2019-10-15 2020-10-05 信号処理チップ、及び信号処理システム

Publications (2)

Publication Number Publication Date
JPWO2021075302A1 JPWO2021075302A1 (ja) 2021-12-16
JP7266698B2 true JP7266698B2 (ja) 2023-04-28

Family

ID=75538430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021552328A Active JP7266698B2 (ja) 2019-10-15 2020-10-05 信号処理チップ、及び信号処理システム

Country Status (3)

Country Link
US (1) US11954059B2 (ja)
JP (1) JP7266698B2 (ja)
WO (1) WO2021075302A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11954059B2 (en) * 2019-10-15 2024-04-09 Sony Interactive Entertainment Inc. Signal processing chip and signal processing system
US11728692B2 (en) * 2020-05-19 2023-08-15 Powermat Technologies Ltd. Modem design for wireless power transfer
KR102575773B1 (ko) * 2021-03-29 2023-09-06 숭실대학교산학협력단 대칭적 인터페이스를 이용하여 외부 서비스 요청 처리가 가능한 프로세서
CN114880267B (zh) * 2022-07-11 2022-10-04 南京芯驰半导体科技有限公司 一种多芯片互联系统及其方法
CN115858450B (zh) * 2023-02-24 2023-05-05 深圳华龙讯达信息技术股份有限公司 一种高适应性cpu的信号传输系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005518600A (ja) 2002-02-21 2005-06-23 クゥアルコム・インコーポレイテッド 誤り訂正符号化を用いたnandフラッシュとsramとの間の直接メモリスワッピング

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5153455A (en) 1991-10-07 1992-10-06 Advanced Micro Devices, Inc. Transition-based wired "OR" for VLSI systems
JPH05255945A (ja) 1992-03-10 1993-10-05 Nitsukon Kikai Kogyo Kk 全方向インバート及びその導水路形成方法
US5600650A (en) 1995-07-07 1997-02-04 Sun Microsystems, Inc. Method and apparatus for synthesizing clock signals for use with an asynchronous transfer mode system having selectable data transmission rates
JPH09128333A (ja) 1995-10-30 1997-05-16 Toshiba Corp 半導体集積回路
US6742061B1 (en) * 2002-03-08 2004-05-25 Nokia Corporation Accessory control interface
US7486104B2 (en) * 2006-06-02 2009-02-03 Rambus Inc. Integrated circuit with graduated on-die termination
US8103806B1 (en) * 2008-01-18 2012-01-24 Zoran Corporation Method and apparatus for utilizing device access idle time for input sensing
US8446198B2 (en) * 2010-04-16 2013-05-21 Texas Instruments Incorporated Phase interpolator and a delay circuit for the phase interpolator
US9524264B2 (en) * 2014-06-26 2016-12-20 Qualcomm Incorporated Generating combined bus clock signals using asynchronous master device reference clocks in shared bus systems, and related methods, devices, and computer-readable media
WO2017019495A1 (en) * 2015-07-28 2017-02-02 Rambus Inc. Burst-tolerant decision feedback equalization
CN109948383B (zh) * 2019-01-28 2020-06-26 百富计算机技术(深圳)有限公司 非接触卡的读写速度提升方法、装置及终端设备
US11954059B2 (en) * 2019-10-15 2024-04-09 Sony Interactive Entertainment Inc. Signal processing chip and signal processing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005518600A (ja) 2002-02-21 2005-06-23 クゥアルコム・インコーポレイテッド 誤り訂正符号化を用いたnandフラッシュとsramとの間の直接メモリスワッピング

Also Published As

Publication number Publication date
US11954059B2 (en) 2024-04-09
US20220261370A1 (en) 2022-08-18
WO2021075302A1 (ja) 2021-04-22
JPWO2021075302A1 (ja) 2021-12-16

Similar Documents

Publication Publication Date Title
JP7266698B2 (ja) 信号処理チップ、及び信号処理システム
US10084692B2 (en) Streaming bridge design with host interfaces and network on chip (NoC) layers
US10027433B2 (en) Multiple clock domains in NoC
US9736276B2 (en) Packetized interface for coupling agents
CN101753388B (zh) 适用于多核处理器片上和片间扩展的路由及接口装置
KR100675850B1 (ko) AXI 프로토콜을 적용한 NoC 시스템
US8284766B2 (en) Multi-core processor and method of communicating across a die
TWI335514B (en) Memory buffers for merging local data from memory modules
JP2004525449A (ja) 相互接続システム
WO2020231521A1 (en) On-chip network in programmable integrated circuit
JP2007529808A (ja) 集積回路及び通信サービスマッピング方法
CN111611187B (zh) 一种针对CHI总线的通用协议转换桥及SoC
WO2021147050A1 (zh) 一种基于PCIe的数据传输方法及装置
KR20200139812A (ko) 네트워크 스위치에서의 큐
US6597692B1 (en) Scalable, re-configurable crossbar switch architecture for multi-processor system interconnection networks
CN114185840B (zh) 一种三维多裸片互连网络结构
US8260994B2 (en) Interface for prototyping integrated systems
US8200942B2 (en) Hybrid multifunction component system with component interface encapsulation including OS packet translator for communication over unified data bus architecture
US8645557B2 (en) System of interconnections for external functional blocks on a chip provided with a single configurable communication protocol
WO2022266959A1 (zh) 一种芯片测试电路和方法
CN209543343U (zh) 大数据运算加速系统
US20040081158A1 (en) Centralized switching fabric scheduler supporting simultaneous updates
CN116627894B (zh) 一种介质访问控制层、通信方法和系统
JPH10336252A (ja) シリアルデータ転送制御装置およびシリアルデータ転送方法
TW202244743A (zh) 晶片上非二次冪資料交易

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230217

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20230217

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230228

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20230314

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230418

R150 Certificate of patent or registration of utility model

Ref document number: 7266698

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150