説明

システム・オン・チップ(SOC)、設計構造、および方法

【課題】複数の知的コアの自動統合を可能にするシステム・オン・チップ(SOC)構造を提供する。
【解決手段】このSOC構造は、チップ上の共通バスに接続された複数のセルを組み込む。各セルは、機能コアと、機能コアに接続された自動統合ユニット(AIU)とを組み込む。各AIUは、その機能コアに関する統合情報を、共通バスを介して他のセル内のAIUに通信する。AIU間の情報の交換は、統合ユニット自体またはコントローラによって制御される。受信した統合情報に基づいて、各AIUは、統合のために必要とされるどんな構成調節も自動的に行うことができる。さらに、この情報の交換に基づいて、各機能コアは、SOC動作中に、必要に応じて対話することができる。そのようなSOC構造を形成する関連方法、およびそのようなSOC構造のための設計構造も提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、一般にはシステム・オン・チップ(SOC)構造に関し、より詳細には、複数のIP(Intellectual Property)コアおよび他のコアの自動統合を可能にするSOC構造、SOC構造のための設計構造、ならびにSOC構造を形成する関連方法に関する。
【背景技術】
【0002】
システム・オン・チップ(SOC)は、共通システム・バスを介して相互接続された複数の機能コアまたは機能マクロを通常は組み込む集積回路である。機能コアは、様々なサード・パーティのIPコア、論理コア、メモリ・コア、プロセッサ・コア、ダスト論理コア(dust logic core)、または入出力システム・コア、あるいはそれらの組合せを含むことができる。こうしたSOCは、コアの数および種類の増加と共にますます大型となり、高密度となりつつある。このサイズおよび密度の増加により、ネットリスト作成中と物理設計中の両方で多数の機能コアを統合する複雑さのために必然的にターンアラウンド時間(TAT)が長くなる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
したがって、ネットリスト作成および物理設計を単純化し、それによってターンアラウンド時間(TAT)を最小限に抑えるために、SOC内の機能コアの自動統合を可能にするSOC構造およびそのようなSOCを形成する方法が当技術分野で求められている。
【課題を解決するための手段】
【0004】
したがって本発明は、第1の態様で、共通バスと、前記共通バスを介して通信する複数のセルとを備えるシステム・オン・チップ(SOC)構造であって、各セルが、前記共通バスに接続された統合ユニットと、前記統合ユニットに接続された機能コアとを備え、前記統合ユニットが、前記共通バスを介して前記機能コアに関する統合情報を他のすべてのセルに通信するように適合され、前記共通バスを介して前記他のすべてのセルから対応する統合情報を受信するようにさらに適合されるSOC構造を提供する。
【0005】
好ましくは、前記統合ユニットは、前記共通バスと通信するプロセッサをさらに備え、前記プロセッサが、前記対応する統合情報を解析し、前記対応する統合情報に基づいて前記セルの構成を調節するように適合される。好ましくは、前記プロセッサがさらに、前記統合情報を選択して、前記他のすべてのセルに前記統合情報をいつ通信するかを判定するように適合される。好ましくは、前記統合ユニットは、前記統合情報を格納する第1メモリ装置と、前記対応する統合情報を格納する第2メモリ装置とをさらに備える。好ましくは、前記統合情報は、コア・タイプ情報、コア構成情報、コア機能情報、およびコア使用情報のうちの少なくとも1つを含む。好ましくは、前記コア構成情報は通信プロトコル情報を含む。好ましくは、前記統合ユニットは通信ブロックをさらに備え、前記セルのすべての中のすべての統合ユニット内のすべての通信ブロックは、本質的に同一であり、指定の数の通信ブロック・ピンを備え、各通信ブロック・ピンは、前記共通バス上の特定のネットに関連する特定の識別子を有し、前記特定の識別子を有する前記各通信ブロック・ピンが、前記共通バス上の前記特定のネットに接続され、それによって、異なる統合ユニット内の、同一の識別子を有する通信ブロック・ピンが、前記共通バス上の同一のネットに接続される。
【0006】
好ましくは、前記機能コアは、IPコア、論理コア、メモリ・コア、プロセッサ・コア、入出力(I/O)コア、およびダスト論理コアのうちの1つを含む。
【0007】
一実施形態では、システム・オン・チップ(SOC)構造は、共通バスと、前記共通バスを介して通信する複数のセルであって、各セルが、前記共通バスに接続された統合ユニットと、前記統合ユニットに接続された機能コアとを備え、前記統合ユニットが、前記共通バスを介して前記機能コアに関する統合情報を他のすべてのセルに通信するように適合され、前記共通バスを介して前記他のすべてのセルから対応する統合情報を受信するようにさらに適合される複数のセルと、前記共通バスに接続され、前記セルのそれぞれの中の前記統合ユニットと通信する統合ユニット・コントローラであって、前記セル間の情報の交換を規制および監視するように適合される統合ユニット・コントローラとを備える。好ましくは、前記統合ユニットは、前記共通バスと通信するプロセッサをさらに備え、前記プロセッサが、前記対応する統合情報を解析し、前記対応する統合情報に基づいて前記セルの構成を調節するように適合される。好ましくは、前記プロセッサがさらに、前記統合情報を選択するように適合される。好ましくは、前記統合ユニットは、前記統合情報を格納する第1メモリ装置と、前記対応する統合情報を格納する第2メモリ装置とをさらに備える。好ましくは、前記統合情報は、コア・タイプ情報、コア構成情報、コア機能情報、およびコア使用情報のうちの少なくとも1つを含む。好ましくは、前記コア構成情報は通信プロトコル情報を含む。好ましくは、前記統合ユニットは通信ブロックをさらに備え、前記セルのすべての中のすべての統合ユニット内のすべての通信ブロックは、本質的に同一であり、指定の数の通信ブロック・ピンを備え、各通信ブロック・ピンは、前記共通バス上の特定のネットに関連する特定の識別子を有し、前記特定の識別子を有する前記各通信ブロック・ピンが、前記共通バス上の前記特定のネットに接続され、それによって、異なる統合ユニット内の、同一の識別子を有する通信ブロック・ピンが、前記共通バス上の同一のネットに接続される。
【0008】
第2の態様では、システム・オン・チップ(SOC)構造を形成する方法であって、前記システム・オン・チップ(SOC)構造のための複数のセルを選択することであって、前記セルがそれぞれ、統合ユニットと、前記統合ユニットに接続された機能コアとを備えること、ならびに各セルについて、前記統合ユニットを共通バスに接続すること、前記統合ユニットにより、前記共通バスを介して、前記共通バスに接続された他のすべてのセルに前記機能コアに関する統合情報を通信すること、および前記統合ユニットにより、前記共通バスを介して、前記他のすべてのセルから対応する統合情報を受信することを含む方法が提供される。
【0009】
この方法は、前記統合ユニットにより、前記対応する統合情報を解析し、前記対応する統合情報に基づいて前記セルの構成を調節することをさらに含むことができる。この方法は、前記通信の前に、前記統合ユニットにより、前記統合情報を選択することをさらに含むことができる。この方法は、前記統合ユニットにより、前記他のすべてのセルに前記統合情報をいつ通信するかを判定すること、および前記共通バスに接続された統合ユニット・コントローラにより、前記セル間の情報の交換を規制および監視することのうちの1つをさらに含むことができる。好ましくは、前記統合ユニットは、前記統合情報を格納する第1メモリ装置と、第2メモリ装置とを備え、前記方法は、前記対応する統合情報の前記受信後に、前記第2メモリ装置内に前記対応する統合情報を格納することをさらに含む。好ましくは、前記統合情報は、コア・タイプ情報、コア構成情報、コア機能情報、およびコア使用情報のうちの少なくとも1つを含み、前記コア構成情報は通信プロトコル情報を含む。好ましくは、前記統合ユニットは通信ブロックをさらに備え、前記セルのすべての中のすべての統合ユニット内のすべての通信ブロックは、本質的に同一であり、指定の数の通信ブロック・ピンを備え、各通信ブロック・ピンは、前記共通バス上の特定のネットに関連する特定の識別子を有し、前記共通バスへの前記統合ユニットの前記接続は、前記特定のネットに前記各通信ブロック・ピンを接続することを含み、それによって、異なる統合ユニット内の、同一の識別子を有する通信ブロック・ピンが、前記共通バス上の同一のネットに接続される。
【0010】
第3の態様では、機能データを有するデータ・キャリアであって、前記機能データが、コンピュータ・システム内にロードされ、コンピュータ・システムによって操作されるとき、前記コンピュータ・システムが第2の態様の方法のすべてのステップを実施することを可能にする機能コンピュータ・データ構造を含むデータ・キャリアが提供される。
【0011】
第3の態様は、機械可読媒体で具体化された設計構造の形態で実現することができ、設計構造は、前記共通バスを介して通信する複数のセルを備えるシステム・オン・チップ(SOC)構造を含み、各セルは、前記共通バスに接続された統合ユニットと、前記統合ユニットに接続された機能コアとを備え、前記統合ユニットが、前記共通バスを介して前記機能コアに関する統合情報を他のすべてのセルに通信するように適合され、前記共通バスを介して前記他のすべてのセルから対応する統合情報を受信するようにさらに適合される。好ましくは、設計構造はネットリストを含む。好ましくは、設計構造は、集積回路のレイアウト・データの交換のために使用されるデータ・フォーマットとして記憶媒体上に常駐する。
【0012】
第4の態様では、コンピュータ・システム内にロードされ、コンピュータ・システム上で実行されるとき、第2の態様による方法のすべてのステップを前記コンピュータ・システムに実施させるコンピュータ・プログラム・コードを含むコンピュータ・プログラムが提供される。
【0013】
上記に照らして、複数のIPコアならびに他の機能コアの自動統合を可能にするシステム・オン・チップ(SOC)構造の実施形態が本明細書で開示される。このSOC構造実施形態は、チップ上に共通システム・バスに接続された複数のセルを備える。各セルは、機能コアと、機能コアに接続された自動統合ユニット(AIU)とを組み込む。各セル内の各AIUは、その機能コアに関する統合情報(例えば、コア・タイプ情報、コア構成情報、コア使用情報など)を、共通バスを介して他のセル内のAIUに通信する。AIU間のそのような統合情報の交換は、統合ユニット自体、または共通バスにやはり接続されたコントローラ(すなわちアービタ)によって制御される。受信した統合情報に基づいて、各AIUは、統合のために必要とされるどんな構成調節も自動的に行うことができる。さらに、この情報の交換に基づいて、各機能コアは、SOC動作中に、必要に応じて対話することができる。そのようなSOC構造を形成する関連方法、およびそのようなSOC構造のための設計構造も開示される。
【0014】
より具体的には、本発明のシステム・オン・チップ(SOC)構造の実施形態はすべて、共通バスと、この共通バスを介して互いに接続され、通信する複数のセルとを備える。各セルは機能コアを備えることができる。機能コアは、例えばIPコア、論理コア、メモリ・コア、プロセッサ・コア、入出力(I/O)コア、ダスト論理コアなどを含む。さらに、各セル内で、機能コアが埋込み自動統合ユニット(AIU)に接続される。各AIUが、その機能コアに関する統合情報を、共通バスを介して他のすべてのセルに通信するように適合され、共通バスを介して他のすべてのセルから対応する統合情報を受信するようにさらに適合される。したがって、AIUにより、SOC構造内への機能コアの自動統合が可能となる。
【0015】
具体的には、AIUは 本質的に汎用であり、各AIUは、通信ブロック、プロセッサ、および2つのメモリ・インスタンスを備える。所与のセル内で、AIUの通信ブロックは、セルと共通バスとの間の接続を実現する。セルのすべての中のAIUのすべての中の通信ブロックのすべては、本質的に同一である。各通信ブロックは、同一の指定の数の通信ブロック・ピンを備え、こうした通信ブロック・ピンのそれぞれは、それを共通バス上の特定のネットに関連付ける特定の識別子を有する。共通バス上で、各通信ブロック・ピンが、それが関連付けられるその特定のネットに接続される。したがって、同一の識別子を有する任意の通信ブロック・ピンが、異なる統合ユニット内の異なる通信ブロック上に位置する場合であっても、共通バス上の同一のネットに接続される。したがって、各セル内で、機能コア・ピンが適切な通信ブロック・ピンに接続され、必要なネットに機能コアが適切に接続されることが保証される。
【0016】
さらに、所与のセル内で、AIU内の第1メモリ装置に、その機能コアに関する統合情報がプリロードされる。この統合情報は、例えばコア・タイプ情報、コア構成情報(例えば通信プロトコル情報)、コア機能情報、コア使用情報などを含むことができる。AIU内の第2メモリ装置が、その後に他のセルから受信した対応する統合情報を格納する。AIUプロセッサは、通信ブロックを介して共通バスと通信し、2つのメモリ・インスタンスにもアクセスすることができる。このプロセッサは、第1メモリ装置から、共通バスを介して他のセルに通信すべき統合情報を選択するように適合される。さらに、このプロセッサは、他のセルから対応する統合情報を受信し、第2メモリ装置上にその対応する統合情報を格納するように適合される。セル間の統合情報の交換は、AIUで自己制御することができ、または共通バスにやはり接続された統合ユニット・コントローラ(すなわちアービタ)で集中式に制御することができる。
【0017】
各AIU内で、プロセッサは、他のセルから受信した対応する統合情報を解析するようにさらに適合される。この解析に基づいて、プロセッサは、セルの構成を調節することができる。次いで、SOCの機能動作中に、SOC上で他のどの資源(すなわち他の機能コア)が利用可能かを判定し、そうした他の資源にどのようにアクセスし、または使用することができるかを判定し、あるいはその両方を判定するために、この対応する統合情報にAIUプロセッサでアクセスすることができる。したがって、情報の交換に基づいて、異なるセル内の機能コアが、必要に応じて対話することができる(すなわち、異なるセル内の機能コアを自動的に統合することができる)。
【0018】
上述のSOC構造を形成する方法の実施形態も本明細書で開示される。この方法実施形態は、各セルが機能コア(例えば、IPコア、論理コア、メモリ・コア、プロセッサ・コア、入出力(I/O)コア、ダスト論理コアなど)と、機能コアに接続された自動統合ユニット(AIU)とを備えるように様々なセルを形成することを含む。次に、この方法は、SOC構造のための複数のこうしたセルを選択することを含む。次いで、各セルについて、AIUがSOC上の共通バスに接続される。
【0019】
セル形成中に、上記で詳述した汎用AIUが、各セルに組み込まれる。各セルが形成され、各セル内の各AIUが共通バスに接続された後に、AIU間の情報の交換を行うことができる。具体的には、この方法実施形態は、他のセルのすべてに通信すべきそれぞれの機能コアに関する統合情報をAIUで選択することを含むことができる。この統合情報は、例えば、コア・タイプ情報、コア構成情報(例えば通信プロトコル情報)、コア機能情報、コア使用情報などを含むことができる。次いで、1つのAIUが、共通バスを介して、共通バスに接続された他のセルのすべてに、選択した統合情報を通信する。その統合情報をブロードキャストした後に、その1つのAIUは、他のセルのすべてから対応する統合情報を受信し、その第2メモリ装置上にその情報を格納することができる。何らかの1つのAIUが情報を送信中であるとき、他のすべてのAIUは聴取モードにとどまり、その第2メモリ装置上にブロードキャスト情報を受信および格納する。1つのAIUがその情報を送信した後は、プロセスが別のAIUによって反復され、すべての統合情報が共有されるまで以下同様である。
【0020】
この統合情報の交換は、AIUで自己制御することができ、または共通バスにやはり接続された統合ユニット・コントローラで制御することができる。したがって、この方法の一実施形態は、統合情報を他のすべてのセルにいつ通信するかを、各AIUで個別に判定することを含む。この方法の別の実施形態は、共通バスに接続された統合ユニット・コントローラで、セル間の情報の交換を規制および監視することを含む。
【0021】
情報の交換がどのように制御されるかに関わらず、他のセルから対応する統合情報を受信した後に、受信側AIUは、それ自体の第2メモリ装置内に他のセルからの対応する統合情報を格納し、必要に応じてそれにアクセスする。例えば、この方法実施形態は、SOCの機能動作中にセルを他のセルのすべてと統合することができることを保証するために、AIU、より具体的にはAIU内のプロセッサで、受信した対応する統合情報を解析し、その情報に基づいてセルの構成を調節することを含むことができる。さらに、SOCの機能動作中に、所与のセル内のAIUは、対応する統合情報にアクセスすることができる。この情報に基づいて、AIUは、他のどの資源(すなわち他の機能コア)がSOC上で利用可能かを判定し、そうした他の資源にどのようにアクセスし、または使用することができるかを判定し、あるいはその両方を判定することができる。したがって、統合情報の交換により、異なるセル内の機能コアが、SOCの機能動作中に必要に応じて対話することが可能となる。
【0022】
上述のシステム・オン・チップ(SOC)構造に関する設計構造の実施形態も本明細書で開示される。この設計構造は、機械可読媒体で具体化することができ、集積回路のレイアウト・データの交換のために使用されるデータ・フォーマットとして記憶媒体上に常駐することができ、ネットリストを含むことができる。
【0023】
以下の説明および添付の図面と共に考慮するときに、本発明の実施形態の上記および他の態様がより良く理解されよう。しかし、以下の説明は、本発明の実施形態および本発明の多数の特定の細部を示すものの、限定としてではなく例として与えられることを理解されたい。本発明の精神から逸脱することなく、実施形態の範囲内で多数の変更および修正を行うことができ、実施形態は、そのような変更および修正を含む。
【0024】
次に、添付の図面を参照しながら、本発明の好ましい実施形態を単なる例として説明する。
【図面の簡単な説明】
【0025】
【図1】本発明の例示的システム・オン・チップ(SOC)構造を示す概略ブロック図である。
【図2】図1のSOC構造に組み込むことのできる例示的セルを示す概略ブロック図である。
【図3】本発明の方法の一実施形態を示す流れ図である。
【図4】図3の方法ステップのうちの1つを示す流れ図である。
【図5】半導体設計、製造、または試験、あるいはそれらの組合せで使用される設計プロセスを示す流れ図である。
【発明を実施するための形態】
【0026】
上記で触れたように、システム・オン・チップ(SOC)は、共通システム・バスを介して相互接続された複数の機能コアまたは機能マクロを通常は組み込む集積回路である。機能コアは、様々なサード・パーティのIPコア、論理コア、メモリ・コア、プロセッサ・コア、ダスト論理コア、または入出力システム・コア、あるいはそれらの組合せを含むことができる。こうしたSOCは、コアの数および種類の増加と共にますます大型となり、高密度となりつつある。このサイズおよび密度の増加により、ネットリスト作成中と物理設計中の両方で多数の機能コアを統合する複雑さのために必然的にターンアラウンド時間(TAT)が長くなる。したがって、ネットリスト作成および物理設計を単純化し、それによってターンアラウンド時間(TAT)を最小限に抑えるために、SOC内の機能コアの自動統合を可能にする構造および方法が当技術分野で求められている。
【0027】
上記に鑑みて、複数のIPコアならびに他の機能コアの自動統合を可能にするシステム・オン・チップ(SOC)構造の実施形態が本明細書で開示される。このSOC構造実施形態は、チップ上に共通システム・バスに接続された複数のセルを備える。各セルは、機能コアと、機能コアに接続された自動統合ユニット(AIU)とを組み込む。各セル内の各AIUは、その機能コアに関する統合情報(例えば、コア・タイプ情報、コア構成情報、コア使用情報など)を、共通バスを介して他のセル内のAIUに通信する。AIU間のそのような統合情報の交換は、統合ユニット自体、または共通バスにやはり接続されたコントローラ(すなわちアービタ)によって制御される。受信した統合情報に基づいて、各AIUは、統合のために必要とされるどんな構成調節も自動的に行うことができる。さらに、この情報の交換に基づいて、各機能コアは、SOC動作中に、必要に応じて対話することができる。そのようなSOC構造を形成する関連方法、およびそのようなSOC構造のための設計構造も開示される。
【0028】
図1を参照すると、本発明のシステム・オン・チップ(SOC)構造100の実施形態はすべて、共通バス150と、この共通バス150に接続され、この共通バス150を介して互いに通信する複数のセル101とを備える。共通バス150は、例えば、SOC100の機能動作のために使用される同一のバス(すなわちシステム・バス)でよい。
【0029】
各セル101は、機能コア130(すなわち、機能マクロ、機能ブロックなど)を備えることができる。機能コア130は、例えばIPコア、論理コア、メモリ・コア、プロセッサ・コア、入出力(I/O)コア、ダスト論理コアなどを含むことができる。したがって、従来技術のSOC構造と同じく、SOC構造100上のセル101の組合せは、様々なIPコア、論理コア、メモリ・コア、プロセッサ・コア、ダスト論理コア、または入出力システム・コア、あるいはそれらの組合せを組み込むことができる。しかし、従来技術のSOC構造とは異なり、各セル101内で、機能コア130が組込み自動統合ユニット(AIU)120に接続される。
【0030】
各AIU120が、その機能コア130に関する統合情報を、共通バス150を介して他のすべてのセル101に通信するように適合され、共通バス150を介して他のすべてのセル101から対応する統合情報を受信するようにさらに適合される。したがって、AIU120により、SOC構造100内への機能コア130の自動統合が可能となる。この自動統合は、SOC100がパワーアップされるごとに、またはセル101に対して変更が行われ、もしくは新しいセル101がSOC100に追加されるごとに、あるいはその両方で、SOC100の初期化時(すなわち、SOC100の初期パワーアップ時)に行うことができ、すべてのセル101が、統合のために必要なすべての情報を保有することが保証される。
【0031】
より具体的には、図1と共に図2の例示的セル構造101aを参照すると、セル101に組み込まれるAIU120は本質的に汎用であり、各AIU120は、通信ブロック126、プロセッサ125、および2つのメモリ・インスタンス121〜122を備える。所与のセル(例えばセル101a)内で、AIU120の通信ブロック126は、セルと共通バス150との間の接続を実現する。SOC100内のセル101のすべての中のAIU120のすべての中の通信ブロック126のすべては、本質的に同一であり、標準通信プロトコル(例えば多元接続有線/ワイヤレス・バス・プロトコル(multiple access wired/wireless bus protocol))を使用する。各通信ブロック126は、同一の指定の数(例えば、500本、1000本、1500本など)の通信ブロック・ピン127(すなわち通信ブロック・ビット)を備え、こうした通信ブロック・ピン127のそれぞれは、それを共通バス150上の特定のネット157(すなわち特定のポート)に関連付ける特定の識別子(例えば、ピン1、ピン2、ピン3など)を有する。各通信ブロック・ピン127が、共通バス150上で、それが関連付けられる特定のネット157に接続される。したがって、同一の識別子を有する任意の通信ブロック・ピン127が、異なるAIU内の異なる通信ブロック上に位置する場合であっても、共通バス150上の同一のネットに接続される。すなわち、所与のセル(例えばセル101a)内の機能コア130構造の如何に関わらず、そのAIU120が、他の任意のセル101内のAIU120と同様に共通バス150に接続される。しかし、機能コア130が必要とされるネット157に接続されることを保証するために、各セル101内で、機能コア・ピン137(すなわち機能コア・ビット)を適切な通信ブロック・ピン127に接続しなければならない。
【0032】
こうした汎用通信ブロック126は、設計者がSOC100内の様々なセル101を共通バス150に容易に接続することを可能にすることにより、SOC100製造中のネットリスト作成時間を著しく削減する。具体的には、上記で論じたように、各セル101内で、実際の機能コア・ピン137と特定のバス・ポート接続157がAIU120によって互いに分離され、チップ・インテグレータ(すなわち、設計者、ネットリスト作成者など)にとっての複雑さが限定される。すなわち、ネットリスト作成中に、設計者は、セル101のすべてをSOC100に統合するために、各セル101内の各機能コア130に対して必要な複雑な機能、構成の必要、またはラッパ論理を理解する必要はない。汎用通信ブロック126により、非常に一般的な方式で機能コア130を共通バス150に接続することが可能となる。SOC100上のセル101と共通バス150との接続性を記述するネットリストを作成する際に、設計者(複数可)が知っている必要があるのは単に、機能コア130のピン137が通信ブロック・ピン127 X0〜Xnに接続され、したがって少なくとも通信ブロック・ピン127 X0〜Xnを共通バス上の関連するポート157に接続しなければならないことだけである。設計者(複数可)が、ある機能コアについて限定された入力を必要とすることもあることに留意されたい。例えば、設計者(複数可)は、SOC100との正しいソフトウェア対話を保証するために、所与のセル(例えばセル101a)内の機能コア130が特定のI/Oにアクセスする必要があることがあることを知っている必要があることがある(例えば、USB1をI/O pin1に接続しなければならず、USB2をI/O pin2に接続しなければならず、以下同様であり、その結果、ハードウェア層および非ハードウェア層は、何と通信しているかを認識している)。
【0033】
所与のセル(例えばセル101a)内で、AIU120内の第1メモリ装置121(例えば不揮発性メモリ装置)が、そのセル101aをSOC100に統合するのに必要なすべての情報を格納する。すなわち、第1メモリ装置121に統合情報がプリロードされる。この統合情報は、具体的には、所与のセル101a内の機能コアに関するものであり、例えば、コア・タイプ情報(例えば、USB、イーサネット、プロセッサ、serdes、bist、ram、I/O、...)、コア構成情報(例えば、共通バス150上のビット・カウントや選ばれたアドレス空間などの通信プロトコル情報)、コア機能情報、およびコア使用情報(例えば、外部メモリが必要かどうか、どれほどの外部メモリが必要か、この外部メモリと通信するのに使用するアドレスなど)を含むことができる。AIU120内の第2メモリ装置122(例えば別の不揮発性メモリ装置)は、その後で他のセル101から受信した対応する統合情報を格納する。
【0034】
所与のセル(例えばセル101a)内のAIUプロセッサ125は、通信ブロック126を介して共通バス150と通信する。プロセッサ125はさらに、2つのメモリ・インスタンス121〜122にアクセスすることができる。このプロセッサ125は、第1メモリ装置121から、共通バス150を介して他のセル101に通信すべき統合情報を選択するように適合される。すなわち、プロセッサ125論理は、通信ブロック126を介して共通バス150に、およびSOC100内の他のセル101に対してどの関連統合情報(例えば、どのタイプの情報、構成情報、機能情報、使用情報など)を渡す必要があるかを制御する。さらに、このプロセッサ125は、他のセル101から対応する統合情報を受信し、その対応する統合情報を第2メモリ装置122上に格納するように適合される。
【0035】
セル101間、より具体的にはAIU120間の統合情報の交換は、AIU120で自己制御することができ、または共通バス150にやはり接続された統合ユニット・コントローラ110(すなわちアービタ)で集中式に制御することができる。具体的には、SOC構造100の一実施形態では、AIU120は完全に自律的である。すなわち、各AIU120、より具体的には各セル101内のAIU120内のプロセッサ125が、そのセルから他のすべてのセルに統合情報をいつ通信するかを判定するように適合される。例えば、プロセッサ125は、共通バス150が空きであるかどうかを判定する(すなわち、他のAIU120が現在のところ情報を送信(すなわちブロードキャスト)していないと判定する)ように適合されるセンサ128(例えば、何らかのタイプのキャリア・センス多元接続ルーチン(carrier sense multiple access routine))を備えることができる。共通バス150が空きである場合、プロセッサ125は、そのセル101に関する統合情報を送信(すなわちブロードキャスト)することを開始することができる。
【0036】
SOC構造101の別の実施形態では、統合ユニット・コントローラ110(すなわちアービタ)が共通バス150に接続される。この統合ユニット・コントローラ110は、各セル101内のAIU120と通信し、セル101間の情報の交換を規制および監視するように適合される。すなわち、各セル101内の各AIU120に、共通バス150を介していつ通信するかを無作為に判定させるのではなく、コントローラ110がこの判定を行う。コントローラ110はさらに、そのような通信を登録および追跡することができる。コントローラ110はさらに、遅れてウェイクアップしたセル(late waking cell)または新しいセルに、何らかのトランザクションを紛失した可能性があることを警報し、またはすべてのセル101に再初期化ルーチンを開始すべきことをシグナリングし、あるいはその両方を行うために、SOC100内のどれだけのセル101が統合情報を送信したかをブロードキャストするように適合することができる。どちらの実施形態でも、1つのセル(例えばセル101a)が統合情報を送信中であるとき、他のすべてのセル101は聴取格納状態(listening-storingstate)にとどまる。
【0037】
各AIU120内で、プロセッサ125はさらに、他のセル101から受信した対応する統合情報を解析するように適合される。この解析に基づいて、プロセッサ125は、機能SOC動作中のシステム・オン・チップ(SOC)構造100上のセル101の自動統合が可能となるように、セル101の構成、より具体的には機能コア130の構成を必要に応じて調節することができる。
【0038】
例えば、上記で触れたように、1つのセル101が統合情報を送信(すなわちブロードキャスト)するとき、他のすべてのセルは聴取格納状態にとどまる。どの統合情報が他のセルで受信されるかに応じて、他のセルは、それに応じてその構成を調節する。例えば、単一のセル(例えばセル101a)内のAIU120が、特定のアドレス空間に対する要求を示す統合情報を送出する場合、他のすべてのセル101内の他のすべてのAIU120が、この情報を記録する。次いで、別のセルが共通バス150の制御を得て、その統合情報を送信するとき、その別のセルは、セル101aによって既に取得されたものとは異なるアドレス空間を選ばなければならない。したがって、各AIU120は、バスを介して統合情報を送信(すなわちブロードキャスト)する順番の間、マスタとして機能する。
【0039】
統合情報の交換が完了した後は、機能SOC動作を開始することができ、その間、セル101間の対話がAIU120を介して調整される。具体的には、SOC100の機能動作中、各セル101内のプロセッサ125は、他のどの資源(すなわち他の機能コア130)がSOC100上で利用可能かを判定し、そうした他の資源にどのようにアクセスし、または使用することができるかを判定し、あるいはその両方を判定するために、第2メモリ122内の対応する統合情報にアクセスすることができる。この統合情報の交換のために、ネットリスティング中または物理設計段階中に、SOC100内に他に何が存在するかについての事前の知識は不要である。セル101がどのような挙動を示し、SOC100内の他のセル101とどのように対話する(すなわち、データを送信/受信する)かは、統合情報の交換に基づいて判定される。
【0040】
図1〜2と共に図3を参照すると、上述のSOC構造100を形成する方法の実施形態も本明細書で開示される。この方法実施形態は、各セル101が機能コア130(例えば、IPコア、論理コア、メモリ・コア、プロセッサ・コア、入出力(I/O)コア、ダスト論理コアなど)と、機能コア130に接続された自動統合ユニット(AIU)120とを備えるように様々なセル101を形成することを含む(302、図2の例示的セル101aを参照)。次に、この方法は、SOC構造101のための複数のこうしたセル101を選択することを含む(304)。次いで、各セル101について、AIU120がSOC100上の共通バス150に接続される(306、図1参照)。共通バス150は、例えば、SOCの機能動作のために使用される同一のバス(すなわちシステム・バス)でよい。
【0041】
プロセス302でのセル形成中、上記で詳述したように、各セル内のAIU120は汎用AIUであるべきである。すなわち、図2の例示的セル101aに示されるように、各セル内の各AIU120が通信ブロック126、プロセッサ125、プリロードされたセル特有の統合情報を格納する第1メモリ装置121、およびその後で他のセルから対応する統合情報を格納するように構成された第2メモリ装置122を備えるように各AIU120を形成すべきである。セル101のすべての中のAIU120のすべての中の通信ブロック126のすべては、本質的に同一であるべきである。各通信ブロック126は、同一の指定の数の通信ブロック・ピン127(すなわち通信ブロック・ビット)を有するべきであり、こうした通信ブロック・ピン127のそれぞれは、それを共通システム・バス150上の特定のネット157(すなわち特定のポート)に関連付ける特定の識別子を有するべきである。次いで、機能コア・ピン137(すなわち機能コア・ビット)が、適切な通信ブロック・ピン127(すなわち、AIUがない場合に接続されることになるネットに関連付けられる通信ブロック・ピン)に接続される。AIU120が共通バス150に接続されるとき、各通信ブロック・ピン127が、それが関連付けられる特定のネット157に接続され、したがって機能コア130がバス150上の必要とされるネット157に接続されることが保証される。
【0042】
プロセス306で、各セル101、より具体的には各セル101内の各AIU120が共通バス150に接続された後は、セル101間、より具体的にはAIU120間の通信を行うことができる(すなわち、共通バス150を介してAIU120間の統合情報の交換を行うことができる)(308)。具体的には、この方法実施形態は、他のセル101のすべてに通信(すなわち、送信、ブロードキャストなど)すべきそれぞれの機能コア130に関する統合情報を、すべてのセル101内のAIU120で選択することを含むことができる(310)。この統合情報は、例えば、コア・タイプ情報、コア構成情報(例えば通信プロトコル情報)、コア機能情報、コア使用情報などを含むことができる。次いで、1つのAIU120(例えば、セル101a内のAIU120)が、共通バス150を介して、共通バス150に接続された他のセル101のすべてに、選択した統合情報を通信(すなわち、送信、ブロードキャストなど)する(312)。その統合情報を送信する前または後に、セル101a内の1つのAIU120はまた、他のセルのAIU120のすべてから対応する統合情報を受信および格納することもできる。セル101aの1つのAIU120がその情報を送信した後は、プロセスを別のAIUによって反復することができ、すべての統合情報が共有されるまで以下同様である(314)。したがって、このプロセス308の間の所与の時間に、任意の1つのAIUが、統合情報を通信(すなわち、送信、ブロードキャストなど)していることができ、他のすべては、その統合情報を聴取(すなわち、受信および格納)することができる。
【0043】
プロセス308での統合情報の交換は、AIU120で自己制御することができ、または図1に示されるように、共通バス150にやはり接続された統合ユニット・コントローラ110(すなわちアービタ)で制御することができる。具体的には、図4を参照すると、方法の一実施形態は、統合情報を他のすべてのセルにいつ通信するかを、各AIUで別個に判定することを含む(402〜404)。この判定プロセスは、共通バスが空きであるかどうかをAIU120でまず判定することを含むことができる。すなわち、AIU120はすべて、(例えば、何らかのタイプのキャリア・センス多元接続ルーチンを使用して)共通バスを聴取し(402)、何らかの他のAIU120が共通バス150を介して情報を送信中であるかどうかを判定する(すなわち、共通バス150上にデータがあるかどうかを判定する)(404)。共通バス150が空きではない場合(すなわち、データが別のAIU120によってブロードキャスト中である場合)、聴取側AIU120は、それぞれの第2メモリ装置122上に、受信した統合情報があればそれを格納する(406)。共通バス150が空きである場合(すなわち、バス150上にデータがない場合)、1つのセル(例えばセル101a)内のAIU120は、共通バス150を介して他のセル101のすべてにその機能コア130に関する統合情報を送信(すなわち、通信、ブロードキャストなど)することを開始することができる(408)。すべてのAIU120がその統合情報を共有する機会を得るまで、プロセス402〜408が続行される。この方法の別の実施形態では、プロセス308でのセル101間の統合情報の交換が、共通バス150に接続された統合ユニット・コントローラ110で集中式に規制および監視される。すなわち、各セル101内の各AIU120に、共通バス150を介していつ通信するかを自律的かつ無作為に判定させるのではなく、コントローラ110がこの判定を行う。具体的には、セル間の情報の交換が、中央コントローラ110によって登録および追跡される。さらに、SOC100内のセル101に、統合情報を既に送信したセルの数に関してこの中央コントローラ110によって通知することができ、遅れてウェイクアップしたセルもしくは新しいセルに、何らかのトランザクションを紛失した可能性があることをこの中央コントローラ110によって警報することができ、またはすべてのセル101に、再初期化ルーチンを開始すべきことをこの中央コントローラ110によって通知することができ、あるいはそれらの組合せを行うことができる。いずれの実施形態でも、何らかの1つのセルが統合情報を送信中であるとき、他のすべてのセルは聴取格納状態にとどまる。
【0044】
こうした実施形態のそれぞれで、他のセルから対応する統合情報を受信した後に、受信側AIUは、それ自体の第2メモリ装置内に他のセルからの対応する統合情報を格納し(312)、必要に応じてそれにアクセスする。例えば、この方法実施形態は、SOC100の機能動作中にすべてのセル101を統合することができることを保証するために、他のセル101から受信した対応する統合情報がある場合にはそれを、AIU120、より具体的にはAIU120内のプロセッサ125で解析し、受信情報に基づいてそれぞれのセル101の構成を調節することを含むことができる(316)。さらに、プロセス308〜316で統合情報の交換が完了し、何らかの構成調節が行われた後は、SOC100の機能動作を開始することができる(318)。SOC100の機能動作中、他のどの資源(すなわち他の機能コア)がSOC101上で利用可能かを判定し、そうした他の資源にどのようにアクセスし、または使用することができるかを判定し、あるいはその両方を判定するために、所与のセル(例えばセル101a)内で、第2メモリ122内に格納された対応する統合情報にAIUプロセッサ125によってアクセスすることができる。したがって、受信した統合情報に基づいて、異なるセル101内の各機能コア130が、必要に応じて対話することができる(すなわち、異なるセル101内の各機能コア130を自動的に統合することができる)。
【0045】
上述のシステム・オン・チップ(SOC)構造に関する設計構造の実施形態も本明細書で開示される。この設計構造は、機械可読媒体で具体化することができ、集積回路のレイアウト・データの交換のために使用されるデータ・フォーマットとして記憶媒体上に常駐することができ、ネットリストを含むことができる。具体的には、図5は、例えば半導体設計、製造、または試験、あるいはそれらの組合せで使用される例示的設計フロー500のブロック図を示す。設計フロー500は、設計中のICのタイプに応じて変化することがある。例えば、特定用途向けIC(ASIC)を構築する設計フロー500は、標準構成要素を設計する設計フロー500とは異なることがある。好ましくは、設計構造520は、設計プロセス510に対する入力であり、IPプロバイダ、コア開発者、または他の設計会社から来ることがあり、あるいは設計フローのオペレータによって生成され、または他の供給源から生成されることがある。設計構造520は、セマンティクス、またはHDLすなわちハードウェア記述言語(例えば、Verilog、VHDL、Cなど)の形態の、図1〜2に示される本発明の一実施形態を含む。設計構造520を1つまたは複数の機械可読媒体上に収容することができる。例えば、設計構造520は、図1〜2に示される本発明の一実施形態のテキスト・ファイルまたはグラフィカル表現でよい。好ましくは、設計プロセス510は、図1〜2に示される本発明の一実施形態をネットリスト580に合成(または変換)し、ネットリスト580は、例えば、集積回路設計内の他の素子および回路への接続を記述するワイヤ、トランジスタ、論理ゲート、制御回路、I/O、モデルなどのリストであり、機械可読媒体のうちの少なくとも1つの上に記録される。例えば、媒体は、CD、コンパクト・フラッシュ、他のフラッシュ・メモリ、インターネットを介して送信すべきデータのパケット、または他のネットワーキングに適した手段でよい。合成は、設計仕様および回路に関するパラメータに応じてネットリスト580が1回または複数回再合成される反復プロセスでよい。
【0046】
設計プロセス510は、様々な入力、例えば、所与の製造技術(例えば、様々な技術ノード、32nm、45nm、90nmなど)に関する、モデル、レイアウト、およびシンボリック表現を含む、1組の共通に使用される素子、回路、およびデバイスを収容することのできるライブラリ要素530、設計仕様540、特性データ(characterization data)550、検証データ560、設計規則570、およびテスト・データ・ファイル585(テスト・パターンおよび他のテスティング情報を含むことができる)からの入力を使用することを含むことができる。設計プロセス510は、例えば、タイミング解析、検証、設計規則チェッキング、プレース・アンド・ルート操作などの標準回路設計プロセスをさらに含むことができる。本発明の範囲および精神から逸脱することなく設計プロセス510で使用される可能な電子設計自動化ツールおよびアプリケーションの範囲を集積回路設計の当業者は理解することができる。本発明の設計構造は、何らかの指定の設計フローに限定されない。
【0047】
好ましくは、設計プロセス510は、図1〜2に示される本発明の一実施形態を、任意の追加の集積回路設計またはデータと共に(適用可能な場合)、第2設計構造590に変換する。設計構造590は、集積回路のレイアウト・データの交換のために使用されるデータ・フォーマット、またはシンボリック・データ・フォーマット(例えば、GDSII(GDS2)、GL1、OASIS、マップ・ファイル、またはそのような設計構造を格納する他の任意の適切なフォーマットで格納された情報)あるいはその両方のフォーマットで記憶媒体上に常駐する。設計構造590は、例えばシンボリック・データ、マップ・ファイル、テスト・データ・ファイル、設計内容ファイル、製造データ、レイアウト・パラメータ、ワイヤ、金属のレベル、ビア、形状、製造ラインを通る経路指定のためのデータ、図1〜2に示される本発明の一実施形態を生成するために半導体製造業者が必要とする任意の他のデータなどの情報を含むことができる。次いで、設計構造590はステージ595に進むことができ、例えば設計構造590がテープアウトに進み、製造に対して解放され、マスク・ハウスに対して解放され、別の設計ハウスに送られ、顧客に送り戻されるなどである。
【0048】
したがって、複数のIPコアならびに他の機能コアの自動統合を可能にするシステム・オン・チップ(SOC)構造の実施形態が上記で開示される。このSOC構造実施形態は、チップ上に共通システム・バスに接続された複数のセルを備える。各セルは、機能コアと、機能コアに接続された自動統合ユニット(AIU)とを組み込む。各セル内の各AIUは、その機能コアに関する統合情報(例えば、コア・タイプ情報、コア構成情報、コア使用情報など)を、共通バスを介して他のセル内のAIUに通信する。AIU間のそのような統合情報の通信は、統合ユニット自体、または共通バスにやはり接続されたコントローラ(すなわちアービタ)によって制御される。受信した統合情報に基づいて、各AIUは、統合のために必要とされるどんな構成調節も自動的に行うことができる。さらに、この情報の交換に基づいて、各機能コアは、SOC動作中に、必要に応じて対話することができる。各セル内にAIUを配置し、共通汎用バス構造を使用することにより、設計者がSOC内の様々なセルをほぼ盲目的に接続し、次いでセル自体に依拠して、システム内でどのように機能するかを判定することを可能にすることによって、ネットリスト作成時間を著しく削減することができる。そのようなSOC構造を形成する関連方法、およびそのようなSOC構造のための設計構造も開示される。

【特許請求の範囲】
【請求項1】
共通バスと、
前記共通バスを介して通信する複数のセルと
を備えるシステム・オン・チップ(SOC)構造であって、
各セルが、前記共通バスに接続された統合ユニットと、前記統合ユニットに接続された機能コアとを備え、
前記統合ユニットが、前記共通バスを介して前記機能コアに関する統合情報を他のすべてのセルに通信するように適合され、前記共通バスを介して前記他のすべてのセルから対応する統合情報を受信するようにさらに適合されるSOC構造。
【請求項2】
前記統合ユニットが、前記共通バスと通信するプロセッサをさらに備え、前記プロセッサが、前記対応する統合情報を解析し、前記対応する統合情報に基づいて前記セルの構成を調節するように適合される請求項1に記載のシステム・オン・チップ(SOC)構造。
【請求項3】
前記プロセッサがさらに、前記統合情報を選択して、前記他のすべてのセルに前記統合情報をいつ通信するかを判定するように適合される請求項2に記載のシステム・オン・チップ(SOC)構造。
【請求項4】
前記統合ユニットが、
前記統合情報を格納する第1メモリ装置と、
前記対応する統合情報を格納する第2メモリ装置と
をさらに備える請求項1ないし3のいずれかに記載のシステム・オン・チップ(SOC)構造。
【請求項5】
前記統合情報が、コア・タイプ情報、コア構成情報、コア機能情報、およびコア使用情報のうちの少なくとも1つを含む請求項1ないし4のいずれかに記載のシステム・オン・チップ(SOC)構造。
【請求項6】
前記統合ユニットが、通信ブロックをさらに備え、前記セルのすべての中のすべての統合ユニット内のすべての通信ブロックが、本質的に同一であり、指定の数の通信ブロック・ピンを備え、各通信ブロック・ピンが、前記共通バス上の特定のネットに関連する特定の識別子を有し、
前記特定の識別子を有する前記各通信ブロック・ピンが、前記共通バス上の前記特定のネットに接続され、それによって、異なる統合ユニット内の、同一の識別子を有する通信ブロック・ピンが、前記共通バス上の同一のネットに接続される請求項1ないし5のいずれかに記載のシステム・オン・チップ(SOC)構造。
【請求項7】
前記共通バスに接続され、前記セルのそれぞれの中の前記統合ユニットと通信する統合ユニット・コントローラであって、前記セル間の情報の交換を規制および監視するように適合される統合ユニット・コントローラ
をさらに備える請求項1ないし6のいずれかに記載のシステム・オン・チップ(SOC)構造。
【請求項8】
システム・オン・チップ(SOC)構造を形成する方法であって、
それぞれが統合ユニットと前記統合ユニットに接続された機能コアとを備える、前記システム・オン・チップ(SOC)構造のための複数のセルを選択すること、ならびに
各セルについて、
前記統合ユニットを共通バスに接続すること、
前記統合ユニットにより、前記共通バスを介して、前記共通バスに接続された他のすべてのセルに前記機能コアに関する統合情報を通信すること、および
前記統合ユニットにより、前記共通バスを介して、前記他のすべてのセルから対応する統合情報を受信すること
を含む方法。
【請求項9】
前記統合ユニットにより、前記対応する統合情報を解析し、前記対応する統合情報に基づいて前記セルの構成を調節することをさらに含む請求項8に記載の方法。
【請求項10】
前記通信の前に、前記統合ユニットにより、前記統合情報を選択することをさらに含む請求項8または9に記載の方法。
【請求項11】
前記統合ユニットにより、前記他のすべてのセルに前記統合情報をいつ通信するかを判定すること、および
前記共通バスに接続された統合ユニット・コントローラにより、前記セル間の情報の交換を規制および監視すること
のうちの1つをさらに含む請求項8ないし10のいずれかに記載の方法。
【請求項12】
前記統合ユニットが、前記統合情報を格納する第1メモリ装置と、第2メモリ装置とを備え、
前記方法が、前記対応する統合情報の前記受信後に、前記第2メモリ装置内に前記対応する統合情報を格納することをさらに含む請求項8ないし11のいずれかに記載の方法。
【請求項13】
前記統合ユニットが通信ブロックをさらに備え、
前記セルのすべての中のすべての統合ユニット内のすべての通信ブロックが、本質的に同一であり、指定の数の通信ブロック・ピンを備え、各通信ブロック・ピンが、前記共通バス上の特定のネットに関連する特定の識別子を有し、
前記共通バスへの前記統合ユニットの前記接続が、前記特定のネットに前記各通信ブロック・ピンを接続することを含み、それによって、異なる統合ユニット内の、同一の識別子を有する通信ブロック・ピンが、前記共通バス上の同一のネットに接続される請求項8ないし12のいずれかに記載の方法。
【請求項14】
コンピュータ・システム内にロードされ、コンピュータ・システム上で実行されるとき、請求項8ないし13のいずれかに記載の方法のすべてのステップを前記コンピュータ・システムに実施させるコンピュータ・プログラム・コードを含むコンピュータ・プログラム。
【請求項15】
機能データを有するデータ・キャリアであって、前記機能データが、コンピュータ・システム内にロードされ、コンピュータ・システムによって操作されるとき、前記コンピュータ・システムが請求項8ないし13のいずれかに記載の方法のすべてのステップを実施することを可能にする機能コンピュータ・データ構造を含むデータ・キャリア。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2011−527097(P2011−527097A)
【公表日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2011−508951(P2011−508951)
【出願日】平成21年5月22日(2009.5.22)
【特許番号】特許第4731640号(P4731640)
【特許公報発行日】平成23年7月27日(2011.7.27)
【国際出願番号】PCT/EP2009/056213
【国際公開番号】WO2009/141420
【国際公開日】平成21年11月26日(2009.11.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】