(57)【要約】  本発明は、半導体をベースとしたチップ上に作製された共有メモリ（２０）に関する。共有メモリは：  ・２以上の整数ｍ個のデータバス（２４）；  ・ｍ個のアドレスおよび制御バス（２００）；  ・ｍ個の入出力インターフェース（ＰＩ／ＰＯ、ＰＯ’）であって、それぞれが、ｍ個のデータバス（２４）の１つおよびｍ個のアドレスおよび制御バス（２００）の１つに接続されている入出力インターフェース（ＰＩ／ＰＯ、ＰＯ’）；  ・２以上の整数ｐ個のメモリバンク（２１、２２、２３）であって、それぞれが：    −データ入出力端子（Ｉ／Ｏ）ならびにアドレスおよび制御バス（２００）の各々によって制御されたアドレスおよび制御入力端子（Ｉ）を含むメモリ（２１０、２２０、２３０）；    −一組のｍ個のスイッチ（２１４、２２４、２３４）であって、ｍ個のスイッチ（２１４、２２４、２３４）の各々が、一方では、メモリ（２１０、２２０、２３０）のデータ入出力端子（Ｉ／Ｏ）に接続されているメモリデータバス（２１３、２２３、２３３）に、他方ではｍ個のデータバス（２４）の１つに接続されている、一組のｍ個のスイッチ（２１４、２２４、２３４）を含むメモリバンク（２１、２２、２３）を含む。共有メモリ（２０）は、特にマイクロエレクトロニクスの分野に応用される。【選択図】      図２
2010537361.tif 000002
【特許請求の範囲】
【請求項１】
半導体をベースとする第１のチップ上に作製された共有メモリ（２０）において、
・２以上の整数ｍ個のデータバス（２４）と；
・ｍ個のアドレスおよび制御バス（２００）と；
・ｍ個の入出力インターフェース（ＰＩ／ＰＯ、ＰＯ’）であって、それぞれがｍ個のデータバス（２４）の１つおよびｍ個のアドレスおよび制御バス（２００）の１つに接続されている入出力インターフェース（ＰＩ／ＰＯ、ＰＯ’）と；
・２以上の整数ｐ個のメモリバンク（２１、２２、２３、３０）であって、それぞれが
−データ入出力端子（Ｉ／Ｏ）ならびに前記アドレスおよび制御バス（２００）の各々によって制御されるアドレスおよび制御入力端子（Ｉ）を含むメモリ（２１０、２２０、２３０、３００）；
−一組のｍ個のスイッチ（２１４、２２４、２３４）であって、ｍ個のスイッチ（２１４、２２４、２３４）の各々が、一方では、メモリ（２１０、２２０、２３０、３００）のデータ入出力端子（Ｉ／Ｏ）に接続されているメモリデータバス（２１３、２２３、２３３）に接続されており、他方ではｍ個のデータバス（２４）の１つに接続されている、一組のｍ個のスイッチ（２１４、２２４、２３４）
を含むメモリバンク（２１、２２、２３、３０）と
を含むことを特徴とする共有メモリ（２０）。
【請求項２】
メモリバンク（２１、２２、２３、３０）が、前記メモリ（２１０、２２０、２３０、３００）の前記アドレスおよび制御入力端子（Ｉ）に接続された出力端子を有するマルチプレクサ（２１１、２２１、２３１）を含み、前記マルチプレクサ（２１１、２２１、２３１）の入力端子は前記アドレスおよび制御バス（２００）の各々に接続されており、前記マルチプレクサは、前記メモリバンク（２１、２２、２３、３０）を制御する必要のある前記アドレスおよび制御バス（２００）を選択することを特徴とする請求項１に記載の共有メモリ（２０）。
【請求項３】
前記第１のチップがいくつかの金属層を含み、前記ｐ個のメモリバンク（２１、２２、２３）が１つ以上の金属層を使用し、前記ｍ個のデータバス（２４）および前記アドレスおよび制御バス（２００）が、前記ｐ個のメモリバンク（２１、２２、２３、３０）を含む層の上に重ねられた金属層中に作り込まれることを特徴とする請求項１に記載の共有メモリ（２０）。
【請求項４】
前記共有メモリ（２０）の前記ｍ個の入出力インターフェース（ＰＩ／ＰＯ、ＰＯ’）が、前記第１のチップの内部にあるｍ個のプロセッサ（２５）の入出力端子に接続されていることを特徴とする請求項１〜３のいずれか一項に記載の共有メモリ（２０）。
【請求項５】
前記第１のチップが、前記第１のチップを前記第１のチップ外部の電子部品に接続することを可能にするｍ個の入出力ポート（５０）を含み、前記ｍ個のポート（５０）の各々が、前記共有メモリ（２０）の前記ｍ個の入出力インターフェース（ＰＩ／ＰＯ、ＰＯ’）の１つにリンクされていることを特徴とする請求項１〜３のいずれか一項に記載の共有メモリ（２０）。
【請求項６】
前記第１のチップが、ｍ個のプロセッサ（２５）を含む第２のチップに物理的に接触しており、前記第１のチップの前記ｍ個の入出力インターフェース（ＰＩ／ＰＯ、ＰＯ’）が、ビアによって前記第２のチップの前記ｍ個のプロセッサ（２５）の前記ｍ個の入出力端子に接続されていることを特徴とする請求項５に記載の共有メモリ（２０）。
【請求項７】
前記第１のチップが、ｍ個のプロセッサ（２５）を含む第２のチップに物理的に接触しており、前記第１のチップの前記ｍ個の入出力インターフェース（ＰＩ／ＰＯ、ＰＯ’）が、誘導リンクによって前記第２のチップの前記ｍ個のプロセッサ（２５）の前記ｍ個の入出力端子に接続されていることを特徴とする請求項５に記載の共有メモリ（２０）。
【請求項８】
前記第１のチップが、ｍ個のプロセッサ（２５）を含む第２のチップに物理的に接触しており、前記第１のチップの前記ｍ個の入出力インターフェースが、容量リンクによって前記第２のチップの前記ｍ個のプロセッサ（２５）の前記ｍ個の入出力端子に接続されていることを特徴とする請求項５に記載の共有メモリ（２０）。
【請求項９】
前記ｐ個のメモリバンク（２１、２２、２３、３０）が、互いに上下に配置されたいくつかの第３のチップに分布されており、前記ｍ個のデータバス（２４）および前記アドレスおよび制御バス（２００）が、前記チップに対して横方向に位置決めされていることを特徴とする請求項１に記載の共有メモリ（２０）。
【請求項１０】
前記ｍ個のデータバス（２４）および前記アドレスおよび制御バス（２００）が並列バスであることを特徴とする請求項１〜９のいずれか一項に記載の共有メモリ（２０）。
【請求項１１】
前記ｍ個のデータバス（２４）が差動バスであることを特徴とする請求項１〜１０のいずれか一項に記載の共有メモリ（２０）。
【請求項１２】
前記メモリ（２１０、２２０、２３０、３００）がシングルポートメモリであることを特徴とする請求項１〜１１のいずれか一項に記載の共有メモリ（２０）。
【請求項１３】
前記メモリ（２１０、２２０、２３０、３００）が、ＳＲＡＭタイプ（「スタティックランダムアクセスメモリ」を表す頭字語）のメモリであることを特徴とする請求項１〜１２のいずれか一項に記載の共有メモリ（２０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に半導体をベースとした同一の回路に集積されたいくつかのプロセッサによって共有されるメモリに関する。共有メモリは、特にマイクロエレクトロニクスの分野に応用される。
【背景技術】
【０００２】
マルチプロセッサシステムでは、プロセッサは、同一のアプリケーションで並列して動作することができる。それゆえ、プロセッサは、それらの間でかなりの量のデータを交換できる必要がある。プロセッサ間のデータ転送時間を削減するためには、全てのプロセッサが同一のメモリにアクセスできると有利である。それゆえ、第１のプロセッサは、第１のタスクに取り組んでから、獲得した結果に応じてメモリの第１のデータを更新できる。その後、第１のプロセッサは、メモリの第１のデータが別の処理にかけられる状態にあると第２のプロセッサに信号を送る。そこで第２のプロセッサは、第２のタスクにおいてメモリの第１のデータを使用することができる。この間、第１のプロセッサは他のデータを処理できる。  
【０００３】
いくつかのプロセッサによってメモリを共有することがプロセッサの処理速度を低下させないように、公知の方式では、メモリをいくつかの独立したメモリバンクに分割する。このようにして、各プロセッサが異なるメモリバンクと作動する限り、メモリの共有によってそれらの処理速度を低下させることはない。  
【０００４】
このような共有メモリが、製造コストの削減およびデータ転送速度の最適化の双方を可能にする設計を使用することが好都合である。  
【０００５】
既存の解決法では、出力端子をメモリバンクの入力端子に接続させたマルチプレクサを使用する。マルチプレクサの入力端子は、メモリへのアクセスを要求する様々なプロセッサの出力端子に接続されている。各プロセッサの入力データバスは、入力として全てのメモリバンクの出力データバスを受信するマルチプレクサの出力端子に接続されている。  
【０００６】
この実施に見られる問題は、かなりの数の接続を必要とすることである。特に、メモリバンクの出力データバスと、プロセッサの入力データバスに位置するマルチプレクサとをリンクするための接続が相当数ある。これら接続の表面積は、メモリの表面積よりも大きいので、共有メモリの全表面積は２倍となり得る。共有メモリの表面積がこのように増大することにより、製造コストをかなり押し上げる。さらに、これらの接続が相当長いことは、特に、かなりの浮遊容量を生じさせる。この浮遊容量は、データ転送速度を低下させ、かつエネルギー消費を大きくする原因となり得る。
【０００７】
別の既存の解決法は、いくつかのプロセッサを同一のマルチポートメモリに接続することである。マルチポートメモリは、ｋ個の入出力端子を含むメモリである。マルチポートメモリは、例えばいくつかのメモリセルを含み、各メモリセルがｋ個のスイッチを含む。各メモリセルのｋ個のスイッチにより、各メモリセルを、ｋ個のメモリ出力データバスの中からメモリ出力データバスに接続することが可能となる。そのようなメモリは、ｋ個のプロセッサが前記メモリにアクセスすることを可能にする。しかしながらこの他の解決法も相当数の接続を必要とする。これは、そのようなメモリを組み込んでいる構成部品のサイズが相対的にかなり大きいことを意味する。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、特に上述の欠点を解決することにある。このために、本発明の主題は、半導体に基づいた第１のチップに作製できる共有メモリである。共有メモリは特に以下のものを含む。
・２以上の整数ｍ個のデータバス；
・ｍ個のアドレスおよび制御バス；
・ｍ個の入出力インターフェース；各入出力インターフェースは、特にｍ個のデータバスの１つおよびｍ個のアドレスおよび制御バスの１つに接続されている；
・２以上の整数ｐ個のメモリバンク。
【課題を解決するための手段】
【０００９】
各メモリバンクは特に：
−メモリであって；メモリは特にデータ入出力端子およびアドレスおよび制御入力端子を含み；アドレスおよび制御入力端子がアドレスおよび制御バスの各々によって制御され得る、メモリ；
−一組のｍ個のスイッチであって；それぞれのスイッチが、特に一方では、メモリのデータ入出力端子に接続されたメモリデータバスに、他方ではｍ個のデータバスの１つに接続されている、一組のｍ個のスイッチ
を含む。
【００１０】
メモリバンクは、特に、メモリのアドレスおよび制御入力端子に接続された出力端子を有するマルチプレクサを含む。マルチプレクサの入力端子をアドレスおよび制御バスの各々に接続することができる。マルチプレクサは、特に、メモリバンクを制御する必要のあるアドレスおよび制御バスを選択することができる。
【００１１】
第１のチップは、いくつかの金属層を含み得る。ｐ個のメモリバンクは例えば１つ以上の金属層を使用し得る。ｍ個のデータバスおよびアドレスおよび制御バスは、ｐ個のメモリバンクを含む層の上に重ねられた金属層中に作り込まれ得る。
【００１２】
共有メモリのｍ個の入出力インターフェースは、例えば第１のチップ内部のｍ個のプロセッサの入出力端子に接続する。
【００１３】
第１のチップは、第１のチップを第１のチップ外部の電子部品に接続することを可能にするｍ個の入出力ポートを含み得る。ｍ個のポートの各々を特に共有メモリのｍ個の入出力インターフェースの１つにリンクさせる。
【００１４】
第１のチップを、ｍ個のプロセッサを含む第２のチップに物理的に接触させることができる。第１のチップのｍ個の入出力インターフェースを、ビアによって第２のチップのｍ個のプロセッサのｍ個の入出力端子に接続することができる。
【００１５】
第１のチップを、ｍ個のプロセッサを含む第２のチップに物理的に接触させることができる。第１のチップのｍ個の入出力インターフェースを、例えば誘導リンクによって第２のチップのｍ個のプロセッサのｍ個の入出力端子に接続することができる。
【００１６】
第１のチップを、ｍ個のプロセッサを含む第２のチップに物理的に接触させることができる。第１のチップのｍ個の入出力インターフェースを、例えば容量リンクによって第２のチップのｍ個のプロセッサのｍ個の入出力端子に接続することができる。
【００１７】
ｐ個のメモリバンクを、互いに上下に配置されたいくつかの第３のチップに分布することができる。ｍ個のデータバスおよびアドレスおよび制御バスは、チップに対して横方向に位置決めされ得る。
【００１８】
ｍ個のデータバスおよびアドレスおよび制御バスを並列バスとし得る。  
【００１９】
ｍ個のデータバスを差動バスとし得る。
【００２０】
メモリをシングルポートメモリとし得る。
【００２１】
メモリをＳＲＡＭ（「スタティックランダムアクセスメモリ」を表す頭字語である）タイプのメモリとし得る。
【００２２】
本発明は特に、相当なデータアクセス速度を有しならびにエネルギー消費が削減された共有メモリの製造を低コストで可能にするという主な利点を有する。  
【００２３】
本発明の他の特徴および利点は、非限定的な例示として与えられかつ添付の図面に関する以下の説明を参照することにより明らかとなる。
【図面の簡単な説明】
【００２４】
【図１ａ】従来技術によるいくつかのプロセッサによって共有される例示的なメモリアーキテクチャを示す。
【図１ｂ】従来技術によるマルチポートメモリの例示的なアーキテクチャを示す。
【図２】本発明によるいくつかのプロセッサによって共有される第１の例示的なメモリアーキテクチャを示す。
【図３】メモリバンクとプロセッサとの間の本発明による相互接続の詳細な例を示す。
【図４】本発明による共有メモリのバンクで読み出されるデータの動作タイムチャートを示す。
【図５】本発明による共有メモリの第２の例示的なアーキテクチャを示す。
【図６】本発明による共有メモリの第３の例示的なアーキテクチャを概略的に示す。
【発明を実施するための形態】
【００２５】
図１ａに、従来技術による、いくつかの要素プロセッサのセット２により共有される第１のメモリ１のアーキテクチャを概略的に示す。
【００２６】
例えば第１の共有メモリ１は、ｂ個のメモリバンクを含み得る。図１ａでは、例として３つのメモリバンクを示す：第１のメモリバンク１５、第２のメモリバンク１６および第３のメモリバンク１７である。各メモリバンク１５、１６、１７は特に入力端子Ｉおよび出力端子Ｏを含む。各メモリバンク１５、１６、１７の各入力端子Ｉを、メモリ入力マルチプレクサ６、７、８と称するマルチプレクサ６、７、８にリンクさせてある。各メモリバンク１５、１６、１７の各出力端子Ｏを、各メモリバンク１５、１６、１７に特有の第１のメモリデータバス１２、１３、１４にリンクさせてある。  
【００２７】
共有メモリ１をｎ個の要素プロセッサ２によって共有し得る。図１ａでは、３つの要素プロセッサを示す：第１の要素プロセッサＥＰ１、第２の要素プロセッサＥＰ２および第３の要素プロセッサＥＰ３。各要素プロセッサＥＰ１、ＥＰ２、ＥＰ３は、その出力端子ＰＯに接続されたプロセッサのデータおよびアドレスバス３、４、５を備える。データおよびアドレスバスにより、データバスおよびアドレスを含む信号だけでなく制御信号も伝えることが可能となる。制御信号により、メモリの制御が可能となる。制御信号は特に：メモリの起動、メモリのデータの読み出しと書き込み、および任意選択的に前もって指定された操作の順序付けを制御する。  
【００２８】
各要素プロセッサＥＰ１、ＥＰ２、ＥＰ３は、プロセッサ入力マルチプレクサ９、１０、１１にリンクされた入力端子ＰＩを備える。  
【００２９】
各プロセッサ３、４、５の各データおよびアドレスバスをメモリ入力マルチプレクサ６、７、８にリンクする。プロセッサのデータおよびアドレスバス３、４、５により、例えば要素プロセッサＥＰ１、ＥＰ２、ＥＰ３によって計算された１つ以上のデータをメモリに書き込むことが可能となる。プロセッサのデータおよびアドレスバス３、４、５はまた、要素プロセッサＥＰ１、ＥＰ２、ＥＰ３が、共有メモリ１に記憶されたデータの要求を行うことを可能にする。メモリ入力マルチプレクサ６、７、８により、例えば種々の要素プロセッサＥＰ１、ＥＰ２、ＥＰ３から得られたデータのどれをメモリバンク１５、１６、１７のそれぞれに送るべきか選択することが可能になる。  
【００３０】
各メモリバンク１５、１６、１７の各出力端子Ｏを、メモリデータバス１２、１３、１４によって各プロセッサ入力マルチプレクサ９、１０、１１にリンクする。それゆえ、各プロセッサ入力マルチプレクサ９、１０、１１は、各メモリバンク１５、１６、１７の第１のメモリデータバス１２、１３、１４のセット全体に接続される。  
【００３１】
それゆえ、このタイプの共有メモリアーキテクチャは、多数の接続を必要とし、共有メモリのかなりの表面積を占有してしまう。さらに接続の長さによって、かなりの浮遊容量が生じる。
【００３２】
図１ｂに、従来技術による、半導体をベースとするチップに作製されたマルチポートメモリ１００を概略的に示す。マルチポートメモリ１００は、特に、いくつかのプロセッサ（図１ｂには図示せず）を接続することができるいくつかの入出力ポートを含む。
【００３３】
マルチポートメモリ１００は、いくつかのメモリセル１０１、１０２、１０３を含む。図１ｂには３つのメモリセル１０１、１０２、１０３を示す。各メモリセル１０１、１０２、１０３を整数ｋ個のスイッチに接続する。図１ｂでは、各メモリセル１０１、１０２、１０３を２つのスイッチ１０１０、１０１１、１０２０、１０２１、１０３０、１０３１に接続する。例えば第１のメモリセル１０１の入出力端子を第１のスイッチ１０１０および第２のスイッチ１０１１に接続する。  
【００３４】
第１のスイッチ１０１０を、一方では第１のワード線１０７にリンクさせ、他方では第１のデータバス１０６の第１の線路１０５にリンクさせる。第１のデータバス１０６は、例えばマルチポートメモリ１００の入出力ポートのピンにリンクされる。
【００３５】
同様に、第２のスイッチ１０１１を、一方では第２のワード線１０４にリンクさせ、他方では第２のデータバス１０９の第１の線路１０８にリンクさせる。  
【００３６】
第１のメモリセル１０１のように、第２のメモリセル１０２を２つのスイッチ：第３のスイッチ１０２０および第４のスイッチ１０２１に接続する。第３のスイッチ１０２０を、一方では第１のワード線１０７に接続し、他方では第１のデータバス１０６の第２の線路１１０に接続する。第４のスイッチ１０２１を、一方では第２のワード線１０４に接続し、他方では第２のデータバス１０９の第２の線路１１１に接続する。  
【００３７】
同様に第３のメモリセル１０３を、第５のスイッチ１０３０および第６のスイッチ１０３１に接続する。第５のスイッチ１０３０を、一方では第３のワード線１１２に接続し、他方では第１のデータバス１０６の第１の線路１０５に接続する。第６のスイッチ１０３１を、一方では第４のワード線１１３に接続し、他方では第２のデータバス１０９の第１の線路１０８に接続する。  
【００３８】
一般的に、各メモリセル１０１、１０２、１０３を各データバス１０９、１０６に接続する。  
【００３９】
各ワード線１０４、１０７、１１２、１１３を、ワード線デコーダ１１４、１１５に接続する。第１のワード線１０７を第１のワード線デコーダ１１４に接続し、第２のワード線１０４を、一方では、第２のワード線デコーダ１１５に接続する。同様に、第３のワード線１１２を第２のワード線デコーダ１１５に接続し、かつ第４のワード線１１３を第１のワード線デコーダ１１４に接続する。  
【００４０】
それゆえ、各ワード線デコーダ１１４、１１５は、いくつかのワード線１０４、１０７、１１２、１１３を入力端子としている。各ワード線デコーダ１１４、１１５の出力端子を、アドレスバス１１６、１１７に接続する。例えば、第１のワード線デコーダ１１４を、第１のアドレスバス１１６に接続し、第２のワード線デコーダ１１７を第２のアドレスバス１１７に接続する。２つのアドレスバス１１６、１１７をマルチポートメモリ１００の入出力ポートにリンクさせる。  
【００４１】
図１ｂに示すそのようなマルチポートメモリ１００はデュアルポートメモリであるので、２つのプロセッサに書き込みおよび読み出しアクセスを提供する。一般的に、マルチポートメモリによって、ｋ個のプロセッサを接続することが可能となる。ｋは特に以下の数である：
・各メモリセルにリンクされたスイッチ１０１０、１０１１、１０２０、１０２１、１０３０、１０３１の数；
・ワード線の数；
・データバスの数。  
【００４２】
マルチポートメモリが、いくつかのプロセッサへのメモリアクセスを並行して提供する場合には、このマルチポートメモリは、特にかなりの数の接続端子が形成されるため、かなりの表面積を有する。
【００４３】
図２に、本発明による共有メモリ２０の構造の例を概略的に示す。
【００４４】
本発明による共有メモリ２０の構造は、例えばｐ個のメモリバンク２１、２２、２３（ｐは例えば３以上の整数である）を含む。図２では一例として、ｐ個のメモリバンクのうち３個２１、２２、２３を示す。ｐ個のメモリバンク２１、２２、２３は各々以下のものを含む：
・メモリ２１０、２２０、２３０；
・マルチプレクサ２１１、２２１、２３１；
・メモリデータバス２１３、２２３、２３３；
・一組のスイッチ２１４、２２４、２３４。  
【００４５】
メモリ２１０、２２０、２３０を、例えばＳＲＡＭ（「スタティックランダムアクセスメモリ」を表す頭字語である）タイプのシングルポートメモリとし得る。ＳＲＡＭタイプのメモリにより、特に、前記メモリによって記憶されたデータへ迅速にアクセスできるようになる。  
【００４６】
共有メモリ２０は、ｍ（ｍは例えば２以上の整数である）個のプロセッサ２５によって共有される。図２では、例えばｍ個のプロセッサ２５のうちの８個を示す。ｍ個のプロセッサ２５をそれぞれ要素プロセッサとし得る。  
【００４７】
共有メモリ２０について、以下第１のメモリバンク２１および第１のプロセッサ２６に関しより詳細に説明する。これと同じ説明が、ｐ個のメモリバンク２１、２２、２３のセットおよびｍ個のプロセッサ２５のセットに当てはまる。  
【００４８】
共有メモリ２０の構造はさらに、例えば、ｍ個の双方向並列バス２４のセットを含む。本発明による共有メモリ２０の実施形態では、並列バス２４は物理的にｐ個のメモリバンク２１、２２、２３の上方に位置し得る。ｐ個のメモリバンク２１、２２、２３は、例えば同一の平面に位置し得る。並列バス２４を物理的にｐ個のメモリバンク２１、２２、２３の上方に配置することにより、本発明による共有メモリ２０を作製するために使用されるシリコンの表面積を削減することができる。シリコンの節約が都合よくなされ、本発明による共有メモリ２０の製造コストを改善することが可能となる。並列バス２４を例えば３２ビットのバス、６４ビットのバスまたは１２８ビットのバスとし得る。並列バス２４を差動バスとし得る。  
【００４９】
並列バス２４の各々により、バス２１３、２２３、２３３を介してｐ個のメモリバンク２１、２２、２３の１つからのデータ項目を受信すること、またはデータ項目をこれらのメモリバンクに送信することが可能となる。ｍ個のプロセッサ２５に対するこれらの転送は同時に行うことができ、その速度は、存在する数のデータバス２４の同時転送と同じ速度である（メモリバンクの数がデータバス２４の数以上であると仮定して）。  
【００５０】
並列バス２４は、共有メモリ２０のデータ入出力端子ＰＩ／ＰＯを表すかまたは共有メモリ２０のデータ入出力端子ＰＩ／ＰＯに物理的に接続され得る。  
【００５１】
共有メモリ２０のデータ入出力端子ＰＩ／ＰＯは、共有メモリ２０外部の電子部品によって共有メモリ２０の入出力インターフェースの一部を形成する。図２では、共有メモリ２０の各入出力インターフェースをｍ個のプロセッサ２５の１つに接続する。共有メモリ２０のデータ入出力端子ＰＩ／ＰＯの各ビットを同一の線路にまたは２つの別個の線路に作製し、それゆえ差動リンクを作り出すことができる。
【００５２】
ｍ個の並列バス２４の各々は、ｍ個のプロセッサ２５の１つに対応する。例えば、図２では、ｍ個のプロセッサ２５の各々をｍ個の並列バス２４の１つにリンクする。それゆえ、ｍ個のプロセッサ２５の各々に入出力されるデータはｍ個の対応する並列バス２４上に循環する。例えば第１のプロセッサ２６を、共有メモリ２０の第１の入出力端子ＰＩ／ＰＯを経由して第１の並列バス２７に接続する。第１の並列バス２７はそれ自体が、第１のスイッチ２１５を経由して第１のメモリバンク２１の第１のメモリデータバス２１３に接続されている。第１のスイッチ２１５は、第１のメモリバンク２１の第１のセットのスイッチ２１４の一部を形成している。第１のメモリデータバス２１３を、特に、第１のメモリバンク２１の一部を形成する第１のメモリ２１０のＩ／Ｏデータ入出力端子に接続する。メモリデータバス２１３、２２３、２３３を差動バスとし得る。第１のスイッチ２１５により、特に、第１のメモリバンク２１から生じているデータを特に選択して、第１のプロセッサ２６によって共有メモリ２０を読み出すフェーズにおいて第１の並列バス２７上に循環させることが可能となる。  
【００５３】
ｍ個の並列バス２４の各々を、ｐ個のメモリバンク２１、２２、２３それぞれの各セットのスイッチ２１４、２２４、２３４のうちの１つのスイッチを経由して、ｐ個のメモリバンク２１、２２、２３のメモリ２１０、２２０、２３０各々のＩ／Ｏデータ入出力端子にリンクさせる。それゆえ、ｐ個のメモリバンク２１、２２、２３の各々は、それぞれの配置においてｍ個のスイッチを有していて、これらスイッチにより各メモリバンクがメモリ２１０、２２０、２３０からのデータをｍ個の並列バス２４のセットに分配することを可能にする。これにより、ｍ個の並列バス２４に接続されたマルチプレクサの機能を、ｐ個のメモリバンク２１、２２、２３の各々に配分することとなる。  
【００５４】
共有メモリ２０はまた、ｍ個のプロセッサ２５の各々のアドレスおよび制御バスをまとめるｍ個の並列アドレスおよび制御バス２００のセットを含む。アドレスおよび制御バス２００の１つは、第１のアドレスおよび制御バス２０４として、特にアドレス信号だけでなく制御信号も送信することを可能にする。制御信号により、特にメモリ２１０、２２０、２３０を制御することが可能となる。メモリ２１０、２２０、２３０のコマンドを、以下のコマンドとし得る：
・メモリ２１０、２２０、２３０を起動するコマンド；
・メモリ２１０、２２０、２３０を読み書きするための動作を実行するコマンド；および
・任意にメモリ２１０、２２０、２３０によって実施される種々の動作を順番付けるコマンド。  
【００５５】
アドレスおよび制御バス２００を共有メモリ２０のｍ個のアドレスおよび制御入力端子ＰＯ’に接続する。例えばアドレスおよび制御バス２００の一部を形成する第１のアドレスおよび制御バス２０４を、共有メモリ２０のアドレスおよび制御入力端子ＰＯ’に接続する。共有メモリ２０のアドレスおよび制御入力端子ＰＯ’を第１のプロセッサ２６のアドレスおよび制御バスに接続する。アドレスおよび制御入力端子ＰＯ’は、共有メモリ２０の入出力インターフェースＰＩ／ＰＯ、ＰＯ’の一部を形成する。  
【００５６】
各アドレスおよび制御バス２００をｐ個のメモリバンク２１、２２、２３の各々に接続する。具体的には、各アドレスおよび制御バス２００を、ｐ個のメモリバンク２１、２２、２３それぞれの各マルチプレクサ２１１、２２１、２３１の入力端子に接続する。アドレスおよび制御バス２０４を、第１のメモリバンク２１の一部を形成する第１のマルチプレクサ２１１の入力端子に接続する。アドレスおよび制御バス２０４をまた、第２のメモリバンク２２の一部を形成する第２のマルチプレクサ２２１の入力端子に、ならびに第３のメモリバンク２３の一部を形成する第３のマルチプレクサ２３１の入力端子に接続する。  
【００５７】
各マルチプレクサ２１１、２２１、２３１をメモリ２１０、２２０、２３０のコマンドおよび制御入力端子Ｉにリンクさせる。例えば、第１のメモリ２１０のコマンドおよび制御入力端子Ｉを第１のマルチプレクサ２１１の出力端子に接続する。
【００５８】
並列アドレスおよび制御バス２００により、ｍ個のプロセッサ２５の各々の要求をｐ個のメモリバンク２１、２２、２３に伝えることが可能となる。
【００５９】
それゆえ、ｐ個のメモリバンク２１、２２、２３とｍ個のプロセッサ２５との間の接続は、ｍ個の並列バス２４および並列アドレスおよび制御バス２００を介してなされる。それゆえ、各プロセッサ２５をｍ個の並列バス２４の１つおよびｍ個の並列アドレスおよび制御バス２０の１つに接続し、それにより、短いデータセグメントにアクセスすることが可能となる。それゆえ、ｐ個のメモリバンク２１、２２、２３とｍ個のプロセッサ２５との間の接続により、ｐ個のメモリバンク２１、２２、２３によって占有される表面積に対してほとんどまたは全く表面積を追加することがなく、例えばこれらの接続を物理的にｐ個のメモリバンク２１、２２、２３の上方にすることが可能となる。
【００６０】
共有メモリ２０およびｍ個のプロセッサ２５を、例えば半導体をベースとする第１のチップに集積することができる。並列バス２４、アドレスおよび制御バス２００を、物理的にｐ個のメモリバンク２１、２２、２３を形成する層の上方に配置された金属層中に作り込むことができる。実際に、ｐ個のメモリバンク２１、２２、２３をとりわけいくつかの異なる金属層を用いて作製する。他の方法では、並列バス２４、アドレスおよび制御バス２００を、ｐ個のメモリバンク２１、２２、２３を形成する層の上に重ねられた金属層中に作り込むことができる。さらにｐ個のメモリ２１０、２２０、２３０の実施形態は当業者に公知である。  
【００６１】
さらに、接続の長さがデータ転送速度とこれらのメモリを含むチップのエネルギー消費とに与える衝撃を低減するために、接続を差動方式に作製し得る。これは、各接続を二重にし、かつ差動増幅器によって各接続対を接続するので、接続によって伝えられた信号の電圧の少量のずれを使用することが可能となる。そのような実施形態を以下より正確に説明する。同様の装置が例えばメモリのビット線に一般的に使用される。
【００６２】
図３に、本発明による共有メモリ２０の一部を形成する第４のメモリバンク３０と、第２のプロセッサ３１との間の相互接続の実施形態の詳細な例を示す。図には、第４のメモリバンク３０と第３のプロセッサ３２との間の相互接続も示す。第２のプロセッサ３１および第３のプロセッサ３２は、例えば、図２に示すｍ個のプロセッサ２５の一部を形成する。  
【００６３】
プロセッサ３１、３２が、第４のメモリバンク３０の第２のメモリ３００に記憶されたワードの内容を読み出したいとき、プロセッサ３１、３２に関連する制御モジュール３１１、３２１が第４のメモリバンク３０へ読み出し要求を送信する。これは、例えば、以下のように実行することが可能である：
・図３に示す場合のようにプロセッサ３１、３２につき一個の制御モジュール３１１、３２１、または
・別の実施形態においてはメモリバンクにつき一個の制御モジュール。  
【００６４】
確かに、制御モジュール３１１は特にｐ個のメモリバンク２１、２２、２３の１つおよびｍ個のプロセッサ２５の１つを制御できる。一個のプロセッサにつき１個の制御モジュールを使用することは、プロセッサの数よりも多数のメモリバンクがあるときに特に有利である。  
【００６５】
読み出し要求は、特に図２に示すアドレスおよび制御バス２００を通過する。アドレスおよび制御バス２００は、特に、ちょうど良い時にバス２０３のドライバを制御する働きをするプロセッサ３１、３２用の順序付け信号を伝える、図３に示す線路３１３、３２３を含む。以下、線路３１３、３２３を順序付け信号３１３、３２３と称す。  
【００６６】
調停器（ａｒｂｉｔｒａｔｏｒ）は（図３には図示せず）が要求を選択し、かつ読み出し要求に含まれたアドレスに関連する第４のメモリバンク３０のワード線に指令を与える。調停器は、例えば、様々なプロセッサ３１、３２から入来する読み出し要求を待機状態にし得る論理関数の働きをする。調停機能に関してはいくつかの実施形態が可能である：
・回転優先順位調停器と呼ばれる第１の実施形態は、各プロセッサ３１、３２が順に優先権を有することを考慮できる；
・固定優先順位調停器と呼ばれる第２の実施形態は、例えば各プロセッサ３１、３２に固定優先順位を割り当てることができる。  
【００６７】
固定優先順位調停器を実行することは比較的簡単である。回転優先順位調停器は、様々なプロセッサ３１、３２の全てによって共有メモリ２０に同じように迅速にアクセスすることを可能にする。固定優先順位調停器はまた、好ましくないアクセスタイムのほとんどをより良好に統御（ｍａｓｔｅｒｙ）することを可能にする。考慮すべき図２に示すアドレスおよび制御バス２００の選択を可能にする調停器は、図２に示す第１のマルチプレクサ２１１のようなマルチプレクサを使用し得る。取り得る様々な調停器の実施形態は、当業者には周知である。  
【００６８】
読み出し要求が第２のメモリ３００に送信されると、第２のメモリ３００はこの要求を処理し、かつ第２のメモリ３００のＩ／Ｏデータ入出力端子で収集したデータを返信する。メモリ３００がデータを読み出したら、プロセッサ３１、３２の制御モジュール３１１、３２１が順序付け信号３１３、３２３を起動させる。順序付け信号は、第２のメモリ３００の出力端子Ｏを第２のメモリデータバス２０３に接続するためのものである。順序付け信号３１３、３２３を制御部品３３に接続する。制御部品３３は、１つ以上のドライバ３４の動作の制御を可能にする。ドライバ３４はパイロット電子部品である。ドライバ３４を、メモリ３００の出力端子Ｏを並列バス２４へ接続することによりチャージする。並列バス２４を２対の線路３１４、３２４として示し、各対の線路３１４、３２４はプロセッサ３１、３２の一方にリンクされている。ひいては、以下、２対の線路３１４、３２４をデータバス３１４、３２４と称す。２対の線路３１４、３２４の各々は、例えば３２ビットのデータバスの場合３２対の線路を表す。  
【００６９】
制御部品３３を、「ＯＲ」論理ゲートによって供し得る。制御部品３３を、図２に第１のメモリバンク２１用に示す第１のマルチプレクサ２１１のようなマルチプレクサの要素とし得る。
【００７０】
第１の１つのまたは複数のドライバドライバ３４は例えばスリーステートドライバである。第１のドライバ３４の機能を、例えば第２のメモリ３００用の第１の読み出し差動増幅器によって実施し得る。図２に示す並列バス２４の容量充電に依存して、１つまたは２つのステージを含む第１の差動増幅器を使用することが可能である。第２のメモリデータバス２０３は、ドライバ３４の出力端子において接続される。制御モジュール３１１、３２１、または調停器はコマンドを起動させて、前もって出されたデータ要求を有するプロセッサ３１、３２のデータバス３１４、３２４を選択する。選択コマンドを、図２に示すスイッチ２１４、２２４、２３４のようなスイッチ３１５、３２５によって実施する。図３では、差動構造を使用し、各データバス３１４、３２４は差動データバス３１４、３２４である。それゆえ、各選択コマンドは、特に２つのスイッチング素子、例えばスイッチ３１５、３２５毎にトランジスタを、すなわち、差動バスライン毎に１つのスイッチング素子を使用する。選択コマンドにより、ドライバ３４の出力端子をデータバス３１４、３２４に接続することが可能となり、データバス３１４、３２４はプロセッサ３１、３２に接続されている。同時に選択コマンドを実行するとき、データバス３１４、３２４のプレチャージモジュール３１２、３２２がプレチャージを遮断する。プレチャージモジュール３１２、３２２は、データバスライン３１４、３２４の浮遊容量を電圧ＶＤＤまたは供給電圧で予めチャージしている。ここで電圧ＶＤＤはデータバス３１４、３２４のラインの各々において同じである。メモリの出力信号が十分に高い時、１つまたは複数のドライバ３４が起動される。次にドライバ３４は第２のメモリデータバス２０３の相補的ラインの１つを放電する。電圧差をデータバス３１４、３２４を介して伝送する。次に、電圧差は、一方ではプロセッサ３１、３２の入力端子またはデータバスＤｉｎおよび他方ではデータバス３１４、３２４に接続された第２の差動増幅器３１６、３２６によって検出される。第２の差動増幅器３１６、３２６は、プロセッサ３１、３２のデータバスＤｉｎのためのドライバの役割を保ち得る。第２の差動増幅器３１６、３２６の出力端子のスイッチが入れられるとすぐに、プロセッサ３１、３２はデータ項目、第２の差動増幅器３１６、３２６の出力端子においてそのずれ全てを回復した信号を記録する。その後、プレチャージモジュール３１２、３２２によってプレチャージするためのデータバス３１４、３２４をリセットする。プレチャージモジュール３１２、３２２は、制御モジュール３１１、３２１によって制御し得る。  
【００７１】
プロセッサ３１、３２によるメモリへのデータ項目の書き込みは、同様に実施し得る。データバス３１４、３２４により伝えられたデータはこの場合、プロセッサ３１、３２によって制御される。例えば、メモリに記憶されるべきデータ項目は信号に符号化する。信号は、プロセッサ３１、３２の出力Ｄｏｕｔを介してプロセッサ３１、３２から出力し、次いで第３の差動増幅器３１７、３２７によって差動モードで伝送される。データバス３１４、３２４のプレチャージが遮断され、データバス３１４、３２４の相補的ラインの１つを第３の差動増幅器３１７、３２７の出力端子によってチャージする。データバス３１４、３２４の電圧差は第２のメモリデータバス２０３に伝搬する。次いで電圧差を第４のメモリバンク３０の第１の差動増幅器３４によって検出する。第１の差動増幅器３４によって検出された信号のスイッチが第１の差動増幅器３４の出力端子において入れられたら、信号に含まれたデータ項目が第４のメモリバンク３０に記録される。  
【００７２】
差動手段を用いることによる共有メモリ２０の実施形態によって、効果が高まる。実際に、例えば１つのバスから別のバスへデータ項目を伝搬するために信号のずれ全てを獲得する必要はない。これは、共有メモリ２０からプロセッサ３１、３２へデータを伝送する間の時間を節約するだけでなく、エネルギーも節約する。  
【００７３】
図４に、例えば、本発明による共有メモリ２０の第４のメモリバンク３０でのプロセッサ３１、３２によるデータ項目の読み出しの様々なフェーズの例を示す。様々なフェーズを、読み出しの各フェーズ間の異なる信号における変化を示すいくつかのタイムチャート４０、４３、４５、４８、４９、４０３、４０４の形態で示す。  
【００７４】
第１のタイムチャート４０は、図２に示す第１のアドレスおよび制御バス２００を伝わる信号を示す。データ読み出し要求４１が第１のアドレスおよび制御バス２００の信号を変更する。
【００７５】
プロセッサ３１、３２が読み出し要求４１を第４のメモリバンク３０に送信すると、これにより第４のメモリバンク３０での値の読み出しがトリガされ、それゆえ第４のメモリバンク３０のビット線に第１の信号４４が出現する。第４のメモリバンク３０のビット線での第１の信号４４の出現を第２のタイムチャート４５に示す。
【００７６】
読み出し要求４１を送信したわずか後に、データバス３１４、３２４のプレチャージが遮断される。プレチャージモジュール３１２、３２２によって実施されるプレチャージの遮断４２を第３のタイムチャート４３に示す。  
【００７７】
第４のメモリバンク３０のビット線上の第１の信号４４が、第１の差動増幅器３４を適切に動作させるのに十分な第１のレベル４６に到達すると、第２のメモリデータバス２０３にリンクされたドライバ３４の第１のコマンド４７が起動される。ドライバ３４の第１のコマンド４７を第４のタイムチャート４８に示す。  
【００７８】
ドライバ３４の第１のコマンド４７がドライバ３４によって実行されたら、第４のメモリバンク３０から読み出された情報を伝達する必要のあるプロセッサ３１、３２のデータバス３１４、３２４のラインは放電し始める。第５のタイムチャート４９に、データバス３１４、３２４のライン上への第２の信号４００の出現を示す。  
【００７９】
第１のコマンド４７が実行され、かつ第２の信号４００が、第２の差動増幅器３１６、３２６を動作させるのに十分な第２のレベル４０１に到達すると、第２のコマンド４０２が制御モジュール３１１、３２１によってプロセッサ３１、３２のデータバスＤｉｎのドライバ３１６、３２６に送信される。第２のコマンド４０２を第６のタイムチャート４０３に示す。  
【００８０】
ドライバ３１６、３２６による第２のコマンド４０２の実行によって、プロセッサ３１、３２の入力Ｄｉｎの設定値４０６を、第４のメモリバンク３０から読み出された値にする。プロセッサ３１、３２の入力Ｄｉｎの設定値４０６を、２つの取り得る状態の変化を例示する第７のタイムチャート４０４に示す：第１の状態の変化はゼロから１へであり、および第２の状態の変化は１からゼロへである。  
【００８１】
読み出された値がプロセッサ３１、３２によって回復されたら、制御モジュール３１１、３２１は、チャージングコマンドをプレチャージモジュール３１２、３２２に送信してデータバス３１４、３２４のラインならびに第２のメモリデータバス２０３のラインをチャージ４０５する。
【００８２】
図５に、本発明による共有メモリ２０の使用の別のモードを示す。実際に、本発明は、第１の完全に別個の回路を形成する共有メモリ２０に適用することができる。共有メモリ２０を含む第１の回路は、半導体をベースとした第２のチップに作り込むことができる。図５では、そのような実施形態を概略的に示す。図２に示したようなｍ個のプロセッサ２５を、図５では一組のｍ個の入出力ポート５０によって置き換える。ｍ個の入出力ポート５０を、共有メモリ２０を含む第１の回路の外部にある１つ以上の回路に接続し得る。この接続は、従来、共有メモリ２０を含む回路のピンに接続された転送ポートによって実施され得る。一般的に、入出力ポートは、チップを外部電子部品に接続することを可能にする要素である。それゆえ、ポートを、交換プロトコルを実施しかつ入出力ピンを含むシステムとする、または例えばチップに対して入出力される信号を変換することが可能であり、例えば誘導または容量結合によってそれら信号を伝送できるようにするモジュールとすることができる。  
【００８３】
図５では、ｍ個の入出力ポート５０を、共有メモリ２０のデータ入出力端子ＰＩ／ＰＯによっておよび共有メモリ２０のアドレスおよび制御入力端子ＰＯ’によって共有メモリ２０に接続する。図５に示す共有メモリ２０は、図２に示すものと同じである。
【００８４】
本発明による共有メモリ２０の第１の例示的な使用例においては、入出力ポート５０を処理チップに接続することができる。例えば図２に示すプロセッサ２５などのｍ個のプロセッサを含む処理チップは、３次元相互接続によって入出力ポート５０に接続され得る。この実施形態では、共有メモリ２０および処理チップを含む第２のチップは、物理的に上下に固定され得る。２つのチップ間の接続を、上部チップ、例えば第２のメモリチップを通るビアまたは誘導リンク、または容量リンクによって行うことができる。これらビアは、２つの位置レベルにある金属間の接点であり、ビアは特にチップ全体を貫通することができる。誘導リンクに関しては、例えば巻きを有する小さなコイルを使用して作製することができる。容量リンクは、金属面を対面させることによって作製することができる。これらの接続を、特に処理チップのプロセッサのデータおよびアドレスバスをｍ個の並列バス２４におよび共有メモリ２０の並列アドレスおよびデータバス２００に接続するために使用することができる。  
【００８５】
そのようなメモリチップは、特に上述のような相互接続のタイプに関連性がある。そのようなリンクは、特に多重リンクによって共有メモリ２０を処理チップに接続することを可能にする。２つのチップ間の相互接続リンクによって、現存のメモリよりもはるかに大きな通過帯域を保証することが可能となる。実際、現代のメモリは、特に、集積されるパッケージのピン数が限られており、単一の入出力ポートのみを有する。
【００８６】
図６に、本発明による共有メモリ２０の第２の例示的な使用例を概略的に示す。例えば本発明による共有メモリ２０を含むいくつかのメモリチップ６０を、物理的に上下に配置することが可能である。図２に示すｍ個のデータバス２４およびアドレスおよび制御バス２００が、様々なメモリチップ６０の共有メモリ２０をリンキングするデータおよびアドレスバスにリンクされる。共有メモリ２０をリンキングするデータおよびアドレスバスは、ビア６１、容量リンクまたは誘導リンクを通って横方向にメモリチップ６０を通過し得る。例えば物理的にメモリチップ６０の上方にある別のチップ６４に配置されたプロセッサ６３との接続が、例えばビア６１によってもたらされる。  
【００８７】
そのような実施形態は、特にチップとプロセッサとの間の相互接続の表面積を著しく増大させることなく、プロセッサが利用できるメモリ数が増やされているという利点を有する。
【００８８】
本発明による共有メモリ２０は、好都合には、ｍ個のプロセッサ２５が共有メモリ２０のメモリバンク２１、２２、２３全てにアクセスできることを可能にする。ｍ個のプロセッサ２５の全てが特に同時に共有メモリ２０にアクセスすることができ、次にｍ個のプロセッサ２５の各々は異なるメモリバンク２１、２２、２３にアクセスする。  
【００８９】
本発明による共有メモリ２０は、マルチプロセッサシステムのメモリとプロセッサとの間の相互接続の表面積を、この相互接続を例えばメモリの上方に通過させることを可能にすることにより、著しく低減させることを可能にする。さらにシングルポートメモリ２１０、２２０、２３０を使用することにより、好都合には、マルチポートメモリを使用する解決法に関して必要な接続の表面積を最適にすることが可能となる。  
【００９０】
本発明による共有メモリはまた、データ転送速度を改善するとともに、エネルギー消費も改善する。実際、接続の長さを短くすることによって、それらの浮遊容量が減少し、それゆえ信号の切り替え時間ならびにエネルギー消費が削減される。切り替え時間およびエネルギー消費は、使用される電圧のずれが小さい差動構造を使用することにより、さらに削減される。  
【００９１】
特に、本発明による共有メモリ２０を含むチップに接続を形成するために使用されるシリコン層に関して効果的な設計は、好都合にはこのような共有メモリの製造コストを削減する。  
【００９２】
好都合には、本発明による共有メモリ２０はＭＩＭＤ（「多重命令多重データ」を表す頭字語である）タイプの動作モードを有し、ｍ個のプロセッサ２５で実行される異なるプログラムが、共有メモリ２０に含まれた異なるデータに同時にアクセスすることを可能にする。
【図１ａ】
2010537361.tif 000003
【図１ｂ】
2010537361.tif 000004
【図２】
2010537361.tif 000005
【図３】
2010537361.tif 000006
【図４】
2010537361.tif 000007
【図５】
2010537361.tif 000008
【図６】
2010537361.tif 000009
【国際調査報告】
2010537361.tif 000010
2010537361.tif 000011
2010537361.tif 000012
2010537361.tif 000013
2010537361.tif 000014
2010537361.tif 000015