(57)【特許請求の範囲】
【請求項１】
メモリシステムへのアクセスを制御するための制御回路を含む装置であって、該メモリシステムは、
各々が読出および書込動作においてアドレスを受入れる複数のメモリを含み、各メモリは重なり合う読出アクセスを提供し、それにより、１つの読出アクセスにおける該メモリによるデータ提供が別の読出アクセスにおける該メモリへのアドレス提供と重なり合うように動作可能とされ、該メモリシステムはさらに、
各々が前記メモリのうち少なくとも１つにアドレスを搬送するよう動作可能な複数のアドレスバスと、
Ｎ本のデータバスとを含み、Ｎは２以上の偶数の整数であり、
前記データバスの各々は、前記メモリの各々との間ではなく前記メモリのうち２つ以上との間でメモリデータを搬送するよう動作可能であり、前記メモリの各々は、前記データバスの各々を介してではなく前記データバスの少なくとも１つを介してアクセス可能であり、前記データバスの総数Ｎは、前記メモリの総数よりも小さく、
該制御回路は、該メモリシステムがいずれかの数の連続する読出動作を続けざまに行なうように、また同時に、連続する書込動作を続けざまに行なうように制御するための回路構成を含み、各読出動作において、前記メモリのうちいずれかＮ／２個のメモリは前記データバスのうちＮ／２本のバスを介して読出可能であり、各書込動作において、前記メモリのうちＮ／２個のメモリは前記データバスのうちＮ／２本のバスを介して書込み可能であり、また、読出動作において、最高Ｎ／２本のそれぞれのデータバス上での読出データの搬送は、アドレスバス上での後続の読出動作のための読出アドレスの搬送と重なり合うように動作可能であり、該制御回路は、各読出動作について、前記データバスのうちＮ／２本のバスを介して該読出動作において読出されるべき前記メモリのうち最高Ｎ／２個のメモリを識別する第１の信号を受取り、該回路構成は、
該第１の信号から、各書込動作について、該書込動作のための書込データを搬送するのに必要とされる時間中、いかなる読出動作によっても使用されないＮ／２本のデータバスを介する書込みに利用可能な、前記メモリのうちＮ／２個のメモリを識別する第２の信号を生成するための第１の回路と、
該第１の信号から、前記メモリに該第１および第２の信号に従って読出および書込動作を行なわせるためのメモリ制御信号を生成するための第２の回路とを含む、装置。
【請求項２】
メモリシステムへのアクセスを制御するための制御回路を含む装置で
あって、該メモリシステムは、
１または複数のメモリと、
複数のアドレスポートと、
複数のデータポートとを含み、アドレスポートと対応するデータポートとの組合せにより該メモリシステムへのアクセスが提供され、該メモリシステムはさらに、
該アドレスポートに接続された複数のアドレスバスと、
該データポートに接続されたＮ本のデータバスとを含み、Ｎは２以上の偶数の整数であり、
前記データバスの各々は、前記データポートの各々にではなく前記データポートのうち２個以上のポートに接続され、前記データポートの各々は、前記データバスのうち１本のバスに接続され、前記データバスの総数Ｎは前記データポートの総数よりも小さく、
該制御回路は、該メモリシステムが、いずれかの数の連続する読出動作を行なうように、また同時に、連続する書込動作を行なうように制御するための回路構成を含み、該読出および書込動作は、間髪を入れずに連続する等しい長さの時間期間を計測するクロック信号によってタイミングを取られ、各読出動作において、前記データポートのうちいずれかＮ／２個のデータポートは前記データバスのうちＮ／２本のバスを介して読出可能であり、各書込動作において、前記データポートのうちＮ／２個のデータポートは前記データバスのうちＮ／２本のバスを介して書込可能であり、前記時間期間のうち、第１の読出動作が進行中でない各々の時間期間において、該データバスのうちＮ／２本のバスは読出動作のためのデータを搬送するよう動作可能であり、該データバスのうちＮ／２本のバスは書込動作のためのデータを搬送するよう動作可能であり、各読出動作において、読出アドレスは前記時間期間のうち１つの時間期間から開始してそれぞれのアドレスバス上に提供されるが、読出データはそれよりも遅い別の時間期間から開始してそれぞれのデータバス上に提供され、各書込動作において、書込アドレスおよび書込データは前記時間期間のうち１つの時間期間から開始してそれぞれのアドレスバスおよびデータバス上に提供され、最後の読出動作を除く各読出動作は、それより遅い読出動作と重なり合うように動作可能であり、それにより、最後の読出動作を除く各読出動作において、それぞれのデータバス上での読出データの搬送が、アドレスバス上でのそれより遅い読出動作のための読出アドレスの搬送と重なり合うように動作可能とされ、該制御回路は、各読出動作について、前記データバスのうちＮ／２本のバスを介して該読出動作において使用されるべき前記アドレスポートおよびデータポートの最高Ｎ／２個の組合せを識別する第１の信号を受取り、該回路構成は、
該第１の信号から、各書込動作について、該書込動作のための書込データを搬送するのに必要とされる時間中いかなる読出動作によっても使用されることのないＮ／２本のデータバスを介した書込みに利用可能な前記アドレスポートおよびデータポートのＮ／２個の組合せを識別する、第２の信号を生成するための第１の回路と、
該第１の信号から、前記メモリに該第１および第２の信号に従って読出および書込動作を行なわせるためのメモリ制御信号を生成するための第２の回路とを含む、装置。
【請求項３】
いずれかのアドレスバスといずれかのデータバスとのいずれかの組合せにより、該１または複数のメモリへのアクセスが提供される、請求項１または２に記載の装置。
【請求項４】
ネットワークから受取ったデータを該メモリに対して書込むよう動作可能であり、また、データをネットワークに送信するときには該メモリからデータを読出すよう動作可能である、複数のネットワークスイッチファブリック回路をさらに含み、各スイッチファブリック回路は、他のすべてのスイッチファブリック回路と並列にメモリにアクセス可能であり、該スイッチファブリック回路の数は該データバスの数に等しく、該スイッチファブリック回路は該第１の信号を生成するための回路構成を含む、請求項１または２に記載の装置。
【請求項５】
請求項１に記載の装置であって、該制御回路は、間髪を入れずに連続する等しい長さの時間期間を計測するクロック信号によってタイミングを取られ、それに
より、各時間期間において、各メモリが読出アドレスまたは書込アドレスを受取るよう動作可能とされ、読出アクセスにおいて、該メモリは前記時間期間のうち１つの時間期間において読出アドレスを受取り前記時間期間のうち別の１つの時間期間においてデータを提供し、書込アクセスにおいては、該メモリは１つの時間期間において書込アドレスおよび書込データを受取り、または、請求項２に記載の装置であって、
該装置は、前記時間期間のうち、最初および最後の時間期間を除いた各時間期間において、
（ｉ）前記メモリのうちいずれかＮ／２個のメモリを読出すＮ／２回の単一メモリ読出動作において、Ｎ／２個の読出アドレスをＮ／２本のアドレスバスに提供する動作、
（ｉｉ）前記メモリのうちいずれかＮ／２個のメモリを読出す、（ｉ）に記載の単一メモリ読出動作とは異なるＮ／２回の単一メモリ読出動作において、Ｎ／２個の読出データアイテムをＮ／２本のデータバスから受取る動作、
（ｉｉｉ）Ｎ／２回の単一メモリ書込動作において、（ｉ）および（ｉｉ）に記載のアドレスバス以外のＮ／２本のアドレスバスに対してＮ／２個の書込アドレスを提供する動作、および
（ｉｖ）（ｉｉｉ）に記載のＮ／２回の単一メモリ書込動作においてＮ／２本のデータバスに対してＮ／２個の書込データアイテムを提供する動作、
のすべての動作を行なうよう動作可能である、装置。
【請求項６】
各アドレスバスは、前記メモリのうちちょうどＮ個のメモリにアドレスを搬送するよう動作可能であり、各データバスは、前記メモリのうちちょうどＮ個のメモリとの間でメモリデータを搬送するよう動作可能であり、各メモリは、前記アドレスバスのうちただ１本のバスおよび前記データバスのうちただ１本のバスを介してアクセス可能であり、１つのアドレスバスと１つのデータバスとのいずれかの組合せにより、前記メモリのうちただ１つのメモリに対するアクセスが提供される、請求項５に記載の装置。
【請求項７】
各データバスは前記メモリのうちちょうどＮ個のメモリとの間でデータを搬送するよう動作可能であり、各アドレスバスは、前記メモリのうちただ１つのメモリにアドレスを搬送するよう動作可能であり、各メモリは、前記アドレスバスのうちただ１本のバスおよび前記データバスのうちただ１本のバスを介してアクセス可能であり、
該制御回路は、各データアイテムが、各書込動作において該データアイテムの一部が書込まれる２回の書込動作によって前記メモリのうち単一のメモリに書き込まれるように、前記メモリに対してデータアイテムを書込むよう動作可能であり、該２回の書込動作は続けざまに行なわれ、各データアイテムは、続けざまに行なわれる２回の読出動作においてそれぞれのメモリから読出され、各読出動作は該データアイテムの一部を読出す、請求項５に記載の装置。
【請求項８】
Ｎ＝２である、請求項１または２に記載の装置。
【請求項９】
各アドレスバスは、前記アドレスポートのうちちょうどＮ個のポートにアドレスを搬送するよう動作可能であり、各データバスは、前記データポートのうちちょうどＮ個のポートとの間でメモリデータを搬送するよう動作可能であり、各アドレスポートは、前記アドレスバスのうちただ１本のバスを介してアクセス可能であり、各データポートは、前記データバスのうちただ１本のバスを介してアクセス可能であり、アドレスバスとデータバスとのいずれかの組合せにより前記１または複数のメモリへのアクセスが提供される、請求項２に記載の装置。
【請求項１０】
各データバスは、前記データポートのうちちょうどＮ個のポートとの間でデータを搬送するよう動作可能であり、各アドレスバスは、前記アドレスポートのうちただ１つのポートにアドレスを搬送するよう動作可能であり、
該制御回路は、各データアイテムが、各書込動作において該データアイテムの一部が書込まれる２回の書込動作で書込まれるように、データアイテムを１または複数のメモリに書込むよう動作可能であり、該２回の書込動作は続けざまに行なわれ、各データアイテムは、各読出動作において該データアイテムの一部が読出される続けざまに行なわれる２回の読出動作で１または複数のメモリから読出される、請求項２に記載の装置。
【請求項１１】
メモリシステムにアクセスするための方法であって、該メモリシステムは、
１または複数のメモリと、
複数のアドレスポートと、
複数のデータポートと、
該アドレスポートにアドレスを搬送するための複数のアドレスバスと、
該データポートとの間でデータを搬送するための複数のデータバスとを含み、前記データバスの各々は、前記データポートの各々との間ではなく前記データポートのうち２個以上のポートとの間でデータを搬送するよう動作可能であり、前記データバスの総数は前記データポートの総数よりも小さく、
どのアドレスポートも前記アドレスバスのうち１本のバスを介してアクセス可能であり、すべてのデータポートは前記データバスのうち１本のバスを介してアクセス可能であり、
いずれかのアドレスバスといずれかのデータバスとのいずれかの組合せにより該１または複数のメモリへのアクセスが提供され、アドレスポートとデータポートとのどの組合せも該１または複数のメモリへのアクセスを提供するわけではなく、該１または複数のメモリへのアクセスを提供するアドレスポートとデータポートとの各組合せにつき、すべてのメモリロケーションがそのアドレスポートとデータポートとの組合せを通じてアクセス可能なわけではなく、
該方法は、
間髪を入れずに連続する等しい長さの時間期間を計測するクロック信号を提供するステップと、
複数の連続する時間期間の中の各時間期間について、前記時間期間に読出アドレスを搬送するべきゼロまたは１以上のアドレスバスおよび前記時間期間に読出データを搬送するべきゼロまたは１以上のデータバスを決定するステップとを含み、各読出動作について、読出アドレスは該時間期間のうち１つの時間期間においてそれぞれのアドレスバスによって搬送されかつ読出データは前記時間期間のうちそれより遅い１つの時間期間においてそれぞれのデータバスによって搬送され、各時間期間において、少なくとも１本のアドレスバスおよび少なくとも１本のデータバスは読出動作のために使用されず、複数の連続する時間期間の中の各時間期間において、１つまたはそれ以上のアドレスバスは読出しアドレスを搬送するように動作可能であり、１つまたはそれ以上のデータバスは、読出しデータを搬送するように動作可能であり、該方法はさらに、
前記時間期間において読出アドレスおよび読出データを搬送するのに使用されない１または複数のアドレスバスおよび１または複数のデータバスを決定して、前記メモリシステムに書込むために書込データが入手可能であれば、前記時間期間において読出アドレスおよび読出データを搬送するのに使用されない１または複数のアドレスおよびデータバスを介して少なくとも１個の書込アドレスおよびそれぞれの書込データを該メモリシステムに提供するステップを含む、方法。
【請求項１２】
前記時間期間に読出アドレスを搬送するべきゼロまたは１以上のアドレスバスを決定するステップは、読出アドレス信号を受取って該読出アドレス信号から該ゼロまたは１以上のアドレスバスを決定するステップを含む、請求項１１に記載の方法。
【請求項１３】
各読出動作は、ＡＴＭスイッチにおけるＡＴＭセルのペイロードを読出し、各書込動作は、ＡＴＭセルのペイロードを書込む、請求項１１に記載の方法。
【請求項１４】
メモリシステムにアクセスするための方法であって、該メモリシステムは、
１または複数のメモリと、
複数のアドレスポートと、
複数のデータポートと、
該アドレスポートにアドレスを搬送するための複数のアドレスバスと、
該データポートとの間でデータを搬送するための複数のデータバスとを含み、前記データバスの各々は、前記データポートの各々との間ではなく前記データポートのうち２つ以上のポートとの間でデータを搬送するよう動作可能であり、そのため、前記データバスの総数は前記データポートの総数よりも小さく、
どのアドレスポートも前記アドレスバスのうち１本のバスを介してアクセス可能であり、すべてのデータポートは前記データバスのうち１本のバスを介してアクセス可能であり、
アドレスポートとデータポートとのどの組合せも該１または複数のメモリへのアクセスを提供するわけではなく、該１または複数のメモリへのアクセスを提供するアドレスポートとデータポートとのすべての組合せについて、すべてのメモリロケーションがそのアドレスポートとデータポートとの組合せを通じてアクセス可能なわけではなく、
該方法は、
間髪を入れずに連続する等しい長さの時間期間を計測するクロック信号を提供するステップを含み、該メモリシステムは、複数の読出動作を行なうよう動作可能であり、その各々において、読出アドレスは前記時間期間のうち１つの時間期間において１本のアドレスバスによって搬送されかつ読出データは前記時間期間のうちそれより遅い１つの時間期間において１本のデータバスによって搬送され、該メモリシステムは、複数の書込動作を行なうよう動作可能であり、その各々において、書込アドレスおよび書込データは前記時間期間のうち１つの時間期間においてそれぞれのアドレスバスおよびそれぞれのデータバスによって搬送され、該方法はさらに、
該メモリシステムに書込むデータアイテムを受取るステップを含み、各データアイテムは、各書込動作によって該データアイテムの一部が書込まれる、続けざまに行なわれる２回の書込動作で書込まれ、該方法はさらに、
複数の連続する時間期間の中の各時間期間について、前記時間期間において読出アドレスを搬送するべきゼロまたは１以上のアドレスバスおよび前記時間期間において読出データを搬送するべきゼロまたは１以上のデータバスを決定するステップを含み、該読出アドレスおよび該読出データは読出動作を行なうために搬送され、各データアイテムは、各読出動作で該データアイテムの一部が読出される、続けざまに行なわれる２回の読出動作で読出され、各時間期間において、少なくとも１本のアドレスバスと少なくとも１本のデータバスとはいずれの読出動作においても使用されず、複数の連続する時間期間の中の各時間期間において、１つまたはそれ以上のアドレスバスは読出しアドレスを搬送するように動作可能であり、１つまたはそれ以上のデータバスは、読出しデータを搬送するように動作可能であり、該方法はさらに、
１または複数のデータバスが２回の読出動作のそれぞれにおいて単一のデータアイテムの２つの部分を搬送する各々２つの連続する時間期間について、前記２つの時間期間において読出アドレスおよび読出データを搬送するのに使用されない１または複数のアドレスバスおよび１または複数のデータバスを決定し、前記メモリシステムに書込むためのデータアイテムがあれば、前記２つの時間期間において読出アドレスおよび読出データを搬送するのに使用されない１または複数のアドレスおよびデータバスを介して、少なくとも１つのデータアイテムを該メモリシステムに書込むように、前記２つの時間期間において少なくとも２回の書込動作を行なうステップを含む、方法。
【請求項１５】
データはネットワークから受取られ、該メモリシステムに一時的に記憶され、該メモリシステムから読出されて該ネットワークにわたって伝送される、請求項１４に記載の方法。
【請求項１６】
各読出動作は、ＡＴＭスイッチにおけるＡＴＭセルのペイロードの半分を読出し、各書込動作は、ＡＴＭセルの半分に書込む、請求項１４に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の背景】
この発明は、メモリとメモリを用いるシステムとメモリにアクセスするための方法とに関する。
【０００２】
メモリアクセス動作のスループットを増加するため、データ処理システムのいくつかはマルチポートメモリを用いる。異なるポートを通して複数のアクセス動作が並行して行なわれ、スループットを増加する。しかしながら、メモリの費用はポートの数に伴って増加する。そのため、高いスループットを得ながらもポートの数がより少ないメモリを用いることが望ましい。さらに、マルチポートメモリを備えたメモリシステムにおいては、別個のアドレスバスおよびデータバスが各ポートに対して用いられる。メモリシステムにおけるアドレスバスおよびデータバスの数を減少するのが望ましい。
【０００３】
読出および書込動作に対して異なるタイミングを用いるメモリにおいてアドレスおよびデータバスの利用率を増すこともまた好ましい。このようなメモリには高速シンクロナスＳＲＡＭ（スタティックランダムアクセスメモリ）が含まれる。読出動作および書込動作に対するタイミングが異なるため、メモリが書込動作から読出動作へ、または読出から書込へ切換えられる際、アドレスまたはデータバス利用率ペナルティが生じる。このようなペナルティを減少する、またはなくすことが望ましい。
【０００４】
２つ以上のスイッチファブリックを組合わせて、１ポート当りの費用を増すことなくポートの数を増加することにより、無閉塞ＡＴＭ（非同期転送モード）スイッチまたはその他のスイッチを得られるようにするメモリシステムを提供することもまた望ましい。
【０００５】
【発明の概要】
この発明のいくつかの実施例では、複数のアクセス動作を並行して行なうことができるようにするメモリシステムが提供される。いくつかの実施例では読出および書込動作のためのタイミングが異なるメモリを用いる。特に、いくつかの実施例では、メモリシステム内の各メモリはパイプライン化された読出アクセスを可能にし、ある読出動作内においてデータがメモリから読出される際に、他の読出サイクル動作のための読出アドレスがメモリに提供されるようにする。しかしながら、書込動作においては、アドレスとデータとはメモリに同時に提供される。（高速シンクロナスＳＲＡＭのいくつかはそのようなタイミングを有する。）そのため、メモリが書込から読出へ、または読出から書込へ切換えられる際、メモリアドレスまたはデータポートに関して利用率ペナルティが存在する。しかしながら、この発明のいくつかの実施例では、メモリシステムのデータバスに関してはペナルティは生じない。いくつかの実施例では、アドレスバスに関してもペナルティが生じない。さらに、個々のメモリの各々におけるポートの数が減少される。いくつかの実施例では、各メモリは単一ポートメモリである。データバスの数もまた、異なるポートの間でデータバスを共有させることによって減少される。いくつかの実施例では、アドレスバスもまた共有させることによってその数が減少される。
【０００６】
これらの利点はいくつかの実施例において、異なるデータバスに接続されたデータポートに対応する異なるアドレスポートに１つのアドレスバスを接続することによって、および／または異なるアドレスバスに接続されたアドレスポートに対応する異なるデータポートに１つのデータバスを接続することによって達成される。いくつかの実施例では、アドレスバスおよびデータバスの各組合せを用いて別個のメモリにアクセスすることができる。
【０００７】
たとえば、図１では、４つの単一ポートメモリ１１０＿ＵＬ、１１０＿ＵＲ、１１０＿ＤＬ、１１０＿ＤＲ（図１）が示される。アドレスバスｍＡｄｄｒ＿Ｕはメモリ１１０＿ＵＲおよび１１０＿ＵＬのアドレスポートに接続され、アドレスバスｍＡｄｄｒ＿Ｄはメモリ１１０＿ＤＲおよび１１０＿ＤＬのアドレスポートに接続される。データバスＤａｔａ＿Ｌはメモリ１１０＿ＵＬおよび１１０＿ＤＬのデータポートに接続され、データバスＤａｔａ＿Ｒはメモリ１１０＿ＵＲおよび１１０＿ＤＲのデータポートに接続される。
【０００８】
アドレスバスおよびデータバスの各組合せから、４つのメモリ１１０のうちの１つにアクセスすることができる。
【０００９】
メモリシステムは、たとえば２つのスイッチファブリックから構成されるＡＴＭ（非同期転送モード）スイッチなど、任意のフロースイッチ内の共有メモリである。２つのアドレスバスおよび２つのデータバスのため、書込および読出を並行して行なうことが可能である。各クロックサイクルにおいて、あるＡＴＭセルは送信前に記憶のためスイッチファブリックのうちの１つによってメモリ１１０のうちの１つに書込まれ、別のセルは送信のためメモリのうちの別の１つから別のファブリックにより読出される。セルは書込動作に対して利用可能であるどのメモリにも書込むことができる。各スイッチファブリックは同じ数のポートを有する。そのため、スイッチファブリックが組合わされると、ポートの数は２倍になる。しかしながら、ポート当りの費用は単一のスイッチファブリックと同程度である。
【００１０】
各メモリは、パイプライン化された読出を可能にするシンクロナスＳＲＡＭである。読出動作レーテンシは２クロックサイクルであり、１サイクルはアドレスのためであり、もう１サイクルはデータのためである。書込動作レーテンシは１サイクルである。しかしながら、アドレスバスの双方およびデータバスの双方を各サイクルにおいて用いることができる。バス利用率ペナルティは以下のように回避される。
【００１１】
各クロックサイクルにおいて、１つのアドレスバスおよび１つのデータバスを読出動作により用いてもよい。（より特定的には、各クロックサイクルでは、１つのアドレスバス上にこのサイクルにおいて開始される読出動作のためのアドレスを乗せ、１つのデータバスにその前のサイクルにおいて開始された読出動作のためのデータを乗せることができる。）そのため、各クロックサイクルにおいて１つのアドレスバスおよび１つのデータバスが書込動作に利用可能となっている。利用率ペナルティは生じない。
【００１２】
この発明は、２つのアドレスバスもしくは２つのデータバス、４つのメモリ、または読出もしくは書込のために必要ないかなる特定の数のクロックサイクルにも限定されない。
【００１３】
いくつかの実施例では、互いの複製であるミラーイメージメモリが提供される。いくつかのそのような実施例では、複数の読出が並行して起こり得る。そのため、いくつかの実施例は、２つの読出および２つの書込を並行して行なうことのできるＡＴＭスイッチにおいて用いられる。同時に読出すべき２つのセルが同じメモリ内に記憶されている場合、それらはまたそのメモリのミラーイメージに記憶されており、このため各セルは異なるメモリから読出すことができる。すなわち、各メモリが単一ポートメモリであったとしても、２つのセルを同時に読出すことができる。
【００１４】
あるセルがいずれかのメモリに書込まれるときには、そのメモリのミラーイメージにも書込まれる。
【００１５】
いくつかの実施例では、各メモリに対して２つ以上のミラーイメージが提供される。たとえば、実施例によっては、スイッチは同時に４つのセルを読むことができ、各メモリは３つのミラーイメージメモリを有し、４つのメモリすべてが同じデータを記憶するようにする。各メモリは単一ポートメモリである。同時に読出すべき２つ以上のセルが同じメモリに記憶されている場合、これらのセルは互いにミラーイメージである異なるメモリから読出される。これに代えて、いくつかの実施例では、各メモリはただ１つのミラーイメージしか有さないが、各メモリにはポートが２つあり、したがって同じメモリに記憶された４つのセルをメモリおよびそのミラーイメージから同時に読出すことができる。
【００１６】
いくつかのミラーイメージ実施例では、どのメモリによってもパイプライン化された読出または書込動作ができない。たとえば、各メモリが非同期ＳＲＡＭである場合である。他の実施例ではパイプライン化された読出、パイプライン化された書込、またはその両方が可能である。
【００１７】
この発明では、並行して共有メモリへの複数のアクセスを行なう無閉塞ＡＴＭスイッチを、各々がどの所与の時点においてもたかだか１つの共有メモリアクセスしかしないスイッチファブリックから容易に構成することが可能となる。
【００１８】
この発明はＡＴＭスイッチまたはネットワークに限定されるものではない。
この発明の他の特徴および利点を以下に説明する。この発明は添付の特許請求の範囲により規定される。
【００１９】
【好ましい実施例の説明】
図１は、メモリ１１０＿ＵＬ（「ＵＬ」は図１におけるメモリの位置に対応する「左上」を表わす）、メモリ１１０＿ＤＬ（「左下」または左下方）、メモリ１１０＿ＵＲ（「右上」）およびメモリ１１０＿ＤＲ（「右下」または右下方）を含む高性能メモリシステムを示す。これらの４つのメモリ１１０は単一ポートメモリである。４つのメモリ１１０は、２つのアドレスバスｍＡｄｄｒ＿Ｕ、ｍＡｄｄｒ＿Ｄおよび２つのデータバスＤａｔａ＿Ｌ、Ｄａｔａ＿Ｒを共有する。アドレスバスｍＡｄｄｒ＿Ｕはメモリ１１０＿ＵＬおよび１１０＿ＵＲのアドレス入力に接続される。アドレスバスｍＡｄｄｒ＿Ｄはメモリ１１０＿ＤＬおよび１１０＿ＤＲのアドレス入力に接続される。データバスＤａｔａ＿Ｌはメモリ１１０＿ＵＬおよび１１０＿ＤＬのデータポートに接続される。データバスＤａｔａ＿Ｒはメモリ１１０＿ＵＲおよび１１０＿ＤＲのデータポートに接続される。
【００２０】
アドレスバスおよびデータバスのいずれの組合せを用いても４つのメモリのうちの１つにアクセスすることができる。たとえば、アドレスバスｍＡｄｄｒ＿ＵおよびデータバスＤａｔａ＿Ｌはメモリ１１０＿ＵＬへのアクセスをもたらし、アドレスバスｍＡｄｄｒ＿ＤおよびデータバスＤａｔａ＿Ｒはメモリ１１０＿ＤＲへのアクセスをもたらす。２つのアドレスバスおよび２つのデータバスが存在するため、同時に２つのメモリアクセスを進行させることができる。特に、読出および書込を同時に進行できる。さらに、以下に説明するように、メモリシステムには４つのメモリが含まれるため、４つのメモリが読出および書込動作に対して異なる数のサイクルを用いていたとしても、４つのメモリのうちのいずれか１つからの読出と４つのメモリのうちの別の１つへの書込とを各クロックサイクルごとに行なうことができる。
【００２１】
メモリ１１０はＡＴＭスイッチ１１８内の共有メモリシステムを形成する。スイッチ１１８は２つのスイッチファブリック１２２．１、１２２．２から作られており、単一のスイッチファブリックの２倍の帯域幅およびポート数を有する。各スイッチファブリック１２２は６４個のポート（スイッチファブリック１２２．１においてポート０−６３、スイッチファブリック１２２．２においてポート６４−１２７）を含む。スイッチ１１８は無閉塞である。すなわち、ポート０−１２７のうちのいずれか１つで受け取ったセルはポート０−１２７のうちのいずれか１つまたは２つ以上のポートへ送ることができる。
【００２２】
図２は、スイッチ１１８のスイッチサイクルを示す。スイッチサイクルはクロックサイクル０−１３５を含む。クロックサイクルの数は上に示される。クロックサイクル０−６７はスイッチファブリック１２２．１の入力フェーズであり、スイッチファブリック１２２．２の出力フェーズである。クロックサイクル６８−１３５はスイッチファブリック１２２．１の出力フェーズであり、スイッチファブリック１２２．２の入力フェーズである。スイッチファブリックはその入力フェーズにおいてメモリ１１０からＡＴＭセルペイロードをメモリバッファ１３０へ読む。（セルヘッダは図示されていない異なるメモリに記憶される。）スイッチファブリックはその出力フェーズにおいてセルペイロードをバッファ１３０からメモリ１１０へ書く。スイッチファブリックの入力および出力フェーズは、ここに引用により援用される１９９５年８月８日発行の米国特許第５，４４０，５２３号と、ここに引用により援用される１９９７年２月２０日公開のＰＣＴ公開公報ＷＯ９７／０６４８９とに記載される。
【００２３】
クロックサイクル０−６７の間の動作は図３に、より詳しく示される。サイクル６８−１３５は図４に、より詳しく示される。
【００２４】
クロックサイクル０（図３）において、スイッチファブリック１２２．１は「ｒ０」で表わされるように、メモリ１１０のうちの１つからポート０上に送るべきセルペイロードを読む。同じサイクルにおいて、スイッチファブリック１２２．２は「ｗ６４」で表わされるように、別のメモリ１１０にポート６４上で受け取ったセルペイロードを書く。同様に、クロックサイクル１では、セルペイロードがポート１に対して読出され（「ｒ１」）、ポート６５上で受け取られたセルペイロードが書かれる（「ｗ６５」）。サイクル６３の終わりまでには、６４個のセル（すなわちセルペイロード）がポート０−６３に対して読出され、ポート６４−１２７上で受け取られたセルが書かれている。
【００２５】
スイッチファブリック１２２．１は４つのＣＰＵｃｐｕ０−ｃｐｕ３（図示せず）を含む。スイッチファブリック１２２．２は４つのＣＰＵｃｐｕ４−ｃｐｕ７（図示せず）を含む。サイクル６４−６７において、スイッチファブリック１２２．１はメモリ１１０からそれぞれ対応のＣＰＵｃｐｕ０−ｃｐｕ３へ送るための４つのセルを読み、スイッチファブリック１２２．２はそれぞれ対応のＣＰＵｃｐｕ４−ｃｐｕ７から受け取った４つのセルをメモリ１１０に書く。
【００２６】
サイクル６８−１３５（図４）では、スイッチファブリック１２２．１はポート０−６３およびＣＰＵｃｐｕ０−ｃｐｕ３から受け取ったセルをメモリ１１０に書く。同じサイクルにおいて、スイッチファブリック１２２．２はポート６４−１２７およびＣＰＵｃｐｕ４−ｃｐｕ７へ送るべきセルを読む。
【００２７】
スイッチにより受け取られたセルは送信前の一時的な記憶のため、どのメモリ１１０に書いてもよい。しかしながら、セルが送られる際、そのセルはそれが記憶されたメモリから読まれなければならない。そのため、各クロックサイクルごとに、スイッチ１１８は４つのメモリ１１０のうちのどれをそのクロックサイクルの間に読むべきであるかを決定する。（読むべきメモリは送信すべきセルを記憶しているメモリである。）次に、スイッチは同じクロックサイクルにおいて書込むべき異なるメモリ１１０を選択する。
【００２８】
いくつかの実施例において、メモリ１１０は読出動作が書込動作とは異なる数のクロックサイクルを要するシンクロナスＳＲＡＭである。シンクロナスＳＲＡＭは高速であるという利点がある。さらに、読出動作はパイプライン化されている。しかしながら、図５に示されるように、読出および書込動作のタイミングの差はメモリバスの利用率ペナルティにつながる。図５では、読出動作は２クロックサイクルを要し、書込動作は１クロックサイクルを要する。図５のクロックサイクル１では、書込動作Ｗｒ１が実行される。アドレスはメモリのアドレス入力Ａに書かれ、データはデータポートＤに書かれる。次に、読出動作Ｒｄ２がサイクル２およびサイクル３において実行され、別の読出動作Ｒｄ３がサイクル３およびサイクル４において実行される。特に、サイクル２では、Ｒｄ２アドレスがアドレス入力に供給される。サイクル３では、Ｒｄ２データがデータポートへ読出され、Ｒｄ３アドレスがアドレス入力に供給される。サイクル４では、Ｒｄ３データがデータポートへ読出される。サイクル５では、別の書込Ｗｒ４が実行される。図５のメモリはアイダホ州（Ｉｄａｈｏ  ）のマイクロン・コーポレイション（Ｍｉｃｒｏｎ  Ｃｏｒｐｏｒａｔｉｏｎ）製造の部品番号ＭＴ  ５８ＬＣ６４Ｋ３６／Ｂ３、ＭＴ５８ＬＣ１２８Ｋ１８／Ｂ３、またはＭＴ  ５８ＬＣ６４Ｋ１８／Ｂ３である。メモリはフロースルーモードで用いられる。
【００２９】
図５では、読出動作から書込動作、または書込から読出への切換は１サイクルのペナルティを伴う。データポートに関しては、１サイクルペナルティが書込動作Ｗｒ１と読出動作Ｒｄ２との間に見られる。アドレス入力に関しては、ペナルティは読出動作Ｒｄ２と書込動作Ｗｒ４との間に見られる。
【００３０】
図１のメモリシステムでは、ただ２つのアドレスバスとただ２つのデータバスとを用いながらもこのペナルティを回避する。図６のタイミングダイアグラムおよび特に図６の部分Ａを参照されたい。部分Ａでは、「Ｒｄｉ」（ｉ＝１、２、３、４、５）はクロックサイクルｉにおいて開始された読出動作を示し、「Ｗｒｉ」はサイクルｉにおいて実行される書込動作を示す。同じまたは異なるメモリからの連続した読出がパイプライン化される。特に、ある読出動作からのデータがデータバスＤａｔａ＿ＬまたはＤａｔａ＿Ｒ上に提供される間に、別の読出動作のためのアドレスがアドレスバスｍＡｄｄｒ＿ＵまたはｍＡｄｄｒ＿Ｄ上に提供される。このため、読出動作は各クロックサイクルにおいて１つのアドレスバスと１つのデータバスとを用いる。たとえば、サイクル２では、読出動作Ｒｄ２およびＲｄ１はアドレスバスｍＡｄｄｒ＿ＵおよびデータバスＤａｔａ＿Ｌを用いる。そのため、残されたアドレスバスと残されたデータバスとが書込に利用可能である。そこで、サイクル２では、アドレスバスｍＡｄｄｒ＿ＤおよびデータバスＤａｔａ＿Ｒが書込動作Ｗｒ２に用いられる。
【００３１】
図３および図４のいくつかの実施例では、「ｒｉ」（ｉ＝０、１、…１２７）または「ｒｃｐｕｉ」（ｉ＝０、１、…７）は、読出アドレスがアドレスバスに提供され、それぞれポートｉまたはＣＰＵｃｐｕｉへ送るべきセルを読むサイクルを示す。別の実施例では、「ｒｉ」または「ｒｃｐｕｉ」は、ポートｉまたはＣＰＵｃｐｕｉへ送るべきセルがデータバスへ読出されるサイクルを示す。
【００３２】
次に、ＡＴＭスイッチ１１８におけるメモリ１１０の使用についてより詳しく説明する。図１に示されるように、スイッチはポート０−６３に対するポートインタフェースユニット（ＰＩＦ）１４０．１およびポート６４−１２７に対するＰＩＦ１４０．２を含む。ここに引用により援用される１９９５年８月８日発行のＡ．ヨッフェ（Ｊｏｆｆｅ  ）への米国特許第５，４４０，５２３号と、ここに引用により援用される１９９７年２月２０日公開のＰＣＴ公開公報ＷＯ９７／０６４８９とに記載されるように、相互接続マトリクス１５０がＰＩＦ１４０をメモリバッファ１３０に接続する。スイッチファブリック１２２．１では、スイッチファブリック制御論理１６０．１がＰＩＦ１４０．１およびメモリバッファ１３０を制御する。同じスイッチファブリック１２２．２では、スイッチファブリック制御論理１６０．２はＰＩＦ１４０．２およびメモリバッファ１３０を制御する。また、スイッチファブリック１２２．１および１２２．２は、図１に示されていないセルのキューイングおよびスケジューリング論理を含む。このような論理はたとえば、ここに引用により援用される以下の米国特許出願に記載される。すなわち、Ａ．ヨッフェ他による１９９６年８月３０日出願の米国特許出願連続番号第０８／７０６，１０４号、Ａ．ヨッフェによる１９９６年８月２７日出願の米国特許出願連続番号第０８／７０８，１４０号およびＡ．ヨッフェ他による１９９７年４月２５日出願の米国特許出願連続番号第０８／８４５，７１０号である。また、ここに引用により援用される以下の刊行物もまた参照されたい。すなわち、「ＡＴＭＳ２０００ユーザーズガイド」（“ＡＴＭＳ２０００  Ｕｓｅｒ’ｓ  Ｇｕｉｄｅ  ”）（エム・エム・シー・ネットワークス・インコーポレイテッド（ＭＭＣ  Ｎｅｔｗｏｒｋｓ，  Ｉｎｃ．）第１．１版）、「ＡＴＭＳ２００４Ｂスイッチコントローラ２『グレイ』」（“ＡＴＭＳ２００４Ｂ  Ｓｗｉｔｃｈ  Ｃｏｎｔｒｏｌｌｅｒ  ２‘ＧＲＡＹ’”）（ＭＭＣ  Ｎｅｔｗｏｒｋｓ，  Ｉｎｃ．，  ｄｏｃｕｍｅｎｔ  ９５−０００４）、「ＡＴＭＳ２００３Ｂスイッチコントローラ１『ホワイト』」（“ＡＴＭＳ２００３Ｂ  Ｓｗｉｔｃｈ  Ｃｏｎｔｒｏｌｌｅｒ  １‘ＷＨＩＴＥ’”）（ＭＭＣ  Ｎｅｔｗｏｒｋｓ，  Ｉｎｃ．，  ｄｏｃｕｍｅｎｔ  ９５−０００３）、および「ＡＴＭＳ２０００アプリケーションノート、３２Ｋより多い接続のサポート」（“ＡＴＭＳ  ２０００  Ａｐｐｌｉｃａｔｉｏｎ  Ｎｏｔｅ  ；  Ｓｕｐｐｏｒｔ  Ｆｏｒ  Ｍｏｒｅ  Ｔｈａｎ  ３２Ｋ  Ｃｏｎｎｅｃｔｉｏｎｓ”）（ＭＭＣ  Ｎｅｔｗｏｒｋｓ，  Ｉｎｃ．，  ｄｏｃｕｍｅｎｔ  ９５−０００９）である。
【００３３】
スイッチファブリック制御論理回路１６０．１および１６０．２は制御バス１６４に接続される。バス１６４はアドレス生成論理１７０（図１および図７）に接続される。論理１７０はメモリ１１０のためのアドレス信号を生成し、そのアドレス信号をバスｍＡｄｄｒ＿Ｕ、ｍＡｄｄｒ＿Ｄへ提供する。論理１７０はまた、以下に説明されるメモリ制御信号を生成する。
【００３４】
図７では、ＯＣＰ（出力セルポインタ）が読出アドレス、すなわち読出すべきセルのアドレスである。ＩＣＰ（入力セルポインタ）は書込アドレスである。内部において、スイッチファブリック１２２は各メモリ１１０アドレスを特定のメモリ１１０を識別する２つの最下位ビット（ＬＳＢ）で補う。このように、いくつかの実施例では、各メモリ１１０は１５ビットアドレスを用い、各アドレスバスｍＡｄｄｒ＿Ｕ、ｍＡｄｄｒ＿Ｄは１５ビット幅であるが、スイッチファブリックはアドレスを内部的に１７ビットに拡張する。読出アドレスでは、メモリ１１０を識別する２つのＬＳＢは出力セル領域（ＯＣＲ）と称される。
【００３５】
ＯＣＰおよびＩＣＰはメモリ１１０を識別する２つのＬＳＢを含まない。そのため、ＯＣＰおよびＩＣＰの各々はメモリバスｍＡｄｄｒ＿ＵまたはｍＡｄｄｒ＿Ｄ（上の例では１５ビット）と幅が同じである。
【００３６】
ＩＣＰ、ＯＣＰおよびＯＣＲは以下に説明するようにスイッチファブリック制御論理回路により制御バス１６４に提供される。ＯＣＰはラッチ５１０にラッチされる。ＩＣＰはラッチ５１４にラッチされる。ＯＣＲはラッチ５２０にラッチされる。ラッチ５２０の出力は論理回路５２４の入力に接続される。論理５２４はマルチプレクサ５３０、５３４のための選択信号を生成する。各マルチプレクサの２つのデータ入力はラッチ５１０、５１４のそれぞれ対応の出力に接続される。どの所与のクロックサイクルにおいても、一方のマルチプレクサがラッチ５１４からＩＣＰを選択し、他方のマルチプレクサがラッチ５１０からＯＣＰを選択する。マルチプレクサ５３０の出力は、直列に接続されるラッチ５４０、５４４を通してバスｍＡｄｄｒ＿Ｕに接続される。マルチプレクサ５３４の出力は、直列に接続されるラッチ５５０、５５４を通してバスｍＡｄｄｒ＿Ｄに接続される。
【００３７】
論理５２４は図６の部分Ａに関連して上に説明したアルゴリズムに従って動作する。
【００３８】
論理５２４はまた、以下の信号を生成する。すなわち、
１）  メモリ１１０＿ＵＬ、１１０＿ＤＬのための書込イネーブル信号Ｌ＿ｗｅと、
２）  メモリ１１０＿ＵＲ、１１０＿ＤＲのための書込イネーブル信号Ｒ＿ｗｅと、
３）  メモリ１１０＿ＵＬ、１１０＿ＤＬのための出力イネーブル信号Ｌ＿ｏｅと、
４）  メモリ１１０＿ＵＲ、１１０＿ＤＲのための出力イネーブル信号Ｒ＿ｏｅと、
５）  それぞれのメモリ１１０＿ＵＬ、１１０＿ＵＲ、１１０＿ＤＬ、１１０＿ＤＲのためのチップ選択信号ＵＬ＿ｃｓ、ＵＲ＿ｃｓ、ＤＬ＿ｃｓ、ＤＲ＿ｃｓとである。
【００３９】
これらの信号のタイミングダイアグラムは図６の部分Ｂに示される。部分Ｂでは、「１」は対応する信号がアサートされたことを意味し、「０」はその信号がデアサートされたことを意味する。（たとえば、サイクル２では、Ｒ＿ｗｅはアサートされ、Ｌ＿ｗｅはデアサートされる。）ここで説明する実施例では、各メモリアクセス動作ごとに、動作のアドレスフェーズの間、すなわちアドレスがメモリに提供されるクロックサイクルの間にチップ選択がアサートされるメモリが用いられる。同様に、出力イネーブル信号は読出動作のアドレスフェーズの間アサートされ、書込イネーブル信号は書込動作の間アサートされる。
【００４０】
論理５２４はまた、以下により詳しく説明するように、後の書込動作において書込むべきメモリ１１０を識別する２ビット信号Ｓｔｋ＿Ｓｅｌ［１：０］を生成する。
【００４１】
図９は、スイッチファブリック制御論理回路１６０．１、１６０．２、制御バス１６４およびアドレス生成論理１７０のさらなる詳細を示す。
【００４２】
制御バス１６４は、出力制御バス１６４．Ｏ、入力制御バス１６４．Ｉおよび、論理５２４（図７）の出力Ｓｔｋ＿Ｓｅｌに接続される２ビットバスＳｔｋ＿Ｓｅｌを含む。
【００４３】
各ファブリック制御論理１６０．１、１６０．２は４つの同じ制御ブロック７１０を含む。各制御ブロック７１０は、ポート０−１２７のうちの８つおよびＣＰＵｃｐｕ０−ｃｐｕ７のうちの１つの連絡を扱う。そのため、スイッチ１１８は８つのスイッチファブリックにより構成され、その各々はそれぞれ対応の制御ブロック７１０により制御される。各制御ブロック７１０は、制御バス論理（「ＣＢＬ」）７３０を通して制御バス１６４に接続されるモジュラスイッチコントローラ（ＭＳＣ）７２０を有する。制御バス論理７３０は、ラッチ７４０、７５０およびキュー７５４、７５８、７６０を含む。ＭＳＣ７２０の出力７７０はラッチ７４０を通して出力バス１６４．Ｏの以下の線に接続される。すなわち、ＭＡＳＫ、ＳＭＩＤ（ソースモジュールＩＤ）、ＯＣＰ、ＣＩＤ（接続ＩＤ）およびＯＣＲである。ＭＡＳＫ線（ＭＡＳＫ「バス」）は各ＭＳＣ７２０に対して１ビットを含む。このビットは、出力制御バス１６４．Ｏ上のデータが、対応するＭＳＣ７２０により読まれるべき際にセットされる。
【００４４】
出力７７０はまた、ラッチ７４０を通して入力バス１６４．Ｉの以下の線に接続される。すなわち、ＭＡＳＫ、ＣＩＤ、ＳＭＩＤ、ＩＣＰおよびＡＴＴＲである。ＡＴＴＲはセル属性である。上に引用される「ＡＴＭＳ２００４Ｂスイッチコントローラ２『グレイ』」（１２−１３頁）を参照されたい。
【００４５】
入力制御バス１６４．Ｉの線ＣＩＤ、ＳＭＩＤ、ＩＣＰはキュー７５４の入力に接続され、キュー７５４の出力はＭＳＣ７２０に接続される。バスＡＴＴＲはキュー７５８の入力に接続され、キュー７５８の出力はＭＳＣ７２０に接続される。出力制御バス１６４．Ｏの線ＳＭＩＤ、ＯＣＰ、ＣＩＤ、ＯＣＲはキュー７６０の入力に接続され、キュー７６０の出力はＭＳＣ７２０に接続される。バス１６４．Ｏ、１６４．ＩのＭＡＳＫ線はラッチ７５０の入力に接続され、ラッチ７５０の出力はＭＳＣ７２０に接続される。
【００４６】
バスＳｔｋ＿Ｓｅｌは各ＭＳＣ７２０に、それぞれ対応のＣＢＬ７３０を通して接続される。
【００４７】
制御バス１６４の線ＩＣＰ、ＯＣＰ、ＯＣＲは、図７に示されるようにアドレス生成論理１７０の入力に接続される。
【００４８】
図１０に示されるように、各ＭＳＣ７２０は、それぞれ対応のメモリ１１０＿ＤＬ、１１０＿ＵＬ、１１０＿ＤＲ、１１０＿ＵＲ内のすべての未使用メモリロケーションの、１５ビットアドレス（すなわちメモリ１１０を識別する２つのＬＳＢを除く）の４つのスタック８１０＿ＤＬ、８１０＿ＵＬ、８１０＿ＤＲ、８１０＿ＵＲを記憶する。各メモリロケーションは１つのセルペイロードを記憶できる。各クロックサイクルにおいて、信号Ｓｔｋ＿Ｓｅｌにより、すべてのＭＳＣのマルチプレクサ８２０は、６サイクル後に書かれることになるメモリ１１０に対応するスタックを選択することになる。（図１１に示されるように、クロックサイクルｔ−６において、Ｓｔｋ＿Ｓｅｌ信号はサイクルｔにおいて書かれることになるメモリを選択する。）選択されるスタックからポップされたポインタはＩＣＰである。ＩＣＰはマルチプレクサ８２０の出力から入力バス１６４．ＩのＩＣＰ線へＣＢＬ７３０を通してサイクルｔ−３において提供される（図１１）。これより前のサイクルにおいて、サイクルｔにおいてそのセルが書込まれることになるポートまたはＣＰＵに対応するＭＳＣ７２０は、セルが送られるべきポートおよびＣＰＵに対応するすべてのＭＳＣ７２０を識別するＭＡＳＫ信号を提供する。ＭＡＳＫ信号は、サイクルｔ−６においてそれぞれ対応するラッチ７４０を通して入力バス１６４．ＩのＭＡＳＫ線に書かれる。
【００４９】
セルがすべてのポートおよびＣＰＵに送られると、それぞれのメモリ１１０内のセルペイロードへのポインタはすべてＭＳＣ７２０内のそれぞれのスタック８１０（図１０）に戻される。
【００５０】
図１１にはアドレス生成パイプラインが示される。クロックサイクルｔにおいて、アドレスバスｍＡｄｄｒ＿Ｕ、ｍＡｄｄｒ＿Ｄのうちの一方は読出アドレスによって駆動される。他方のアドレスバスは書込アドレスにより駆動される。「ｎ」サイクルほど前（ここでｎ＞６）、すなわちサイクルｔ−ｎにおいて、ＭＳＣ７２０のうちの１つはＯＣＲバス上に、サイクルｔ、ｔ＋１において読むべきセルのＯＣＲを提供する。サイクルｔ−６では、アドレス生成論理１７０はサイクルｔにおいて書かれるべきメモリ１１０を識別する信号Ｓｔｋ＿Ｓｅｌを生成している。信号Ｓｔｋ＿Ｓｅｌはサイクルｔ−ｎおよびｔ−ｎ−１においてＯＣＲバス上に駆動されるＯＣＲ信号から生成される。サイクルｔ−ｎにおいてＯＣＲバスはサイクルｔにおいて読出アドレスを受け取ることになるメモリを識別する。サイクルｔ−ｎ−１においてＯＣＲバスはサイクルｔ−１において読出アドレスを受け取ることになるメモリを識別し、よってサイクルｔにおいて読出動作により用いられるデータバスを識別する。図６を参照されたい。
【００５１】
また、サイクルｔ−６において、セルをサイクルｔにおいてメモリ１１０に書くことになっている制御ブロック７１０は、セルを送ることになっているすべてのＭＳＣ７２０を識別する信号によって出力バス１６４．ＯのＭＡＳＫ線を駆動する。セルをサイクルｔにおいて読むことになっている制御ブロック７１０は、セルが読出された後に制御ブロックがセルをメモリに記憶し続ける必要があるかどうかを示す信号によって入力バス１６４．ＩのＭＡＳＫ線を駆動する。この情報はセルメモリを解放することができるかどうかを判定するのに用いられる。
【００５２】
サイクルｔ−３において、サイクルｔにおいて開始するセルを読むことになっているＭＳＣ７２０はＯＣＰバス上にセルアドレスＯＣＰを提供する。サイクルｔにおいてセルを書くことになっているＭＳＣ７２０はＩＣＰバス上にセルアドレスＩＣＰを提供する。サイクルｔ−２において、読出および書込アドレスはそれぞれラッチ５１０、５１４（図７）の出力に現われる。サイクルｔでは、アドレスはバスｍＡｄｄｒ＿Ｕ、ｍＡｄｄｒ＿Ｄに現われる。
図１を再び参照して、メモリバッファ１３０、相互接続マトリクス１５０およびＰＩＦ１４０．１、１４０．２は前述の米国特許第５，４４０，５２３号およびＰＣＴ公開公報ＷＯ９７／０６４８９に記載されるものと同様である。
【００５３】
いくつかの実施例では、相互接続マトリクス１５０は２つの相互接続マトリクスを含み、１つはポート０−６３に対するものであり、もう１つはポート６４−１２７に対するものである。メモリバッファ１３０は２組のメモリバッファを含み、１組はポート０−６３に対するものであり、もう１組はポート６４−１２７に対するものである。ポート０−６３に対応する相互接続マトリクスおよびメモリバッファの１組はスイッチファブリック１２２．１の一部である。他方の相互接続マトリクスおよび他方のメモリバッファの１組はスイッチファブリック１２２．２の一部である。各クロックサイクルにおいて、メモリバッファの一方の組はデータバスＤａｔａ＿Ｌに接続され、メモリバッファの他方の組はデータバスＤａｔａ＿Ｒに接続される。
【００５４】
他の実施例では、単一の相互接続マトリクス１５０および１組のメモリバッファ１３０がすべてのポート０−１２７により共有される。メモリバッファ１３０は１２個の同じチップ（すなわち集積回路）１３０．１から１３０．１２を含む。代表のチップ１３０．ｉを示す図１２を参照されたい。セルペイロードはメモリバッファ１３０とＰＩＦ１４０との間で１２ビットワードで転送される。前述の米国特許第５，４４０，５２３号およびＰＣＴ公開公報ＷＯ９７／０６４８９を参照されたい。各チップ１３０．ｉは、メモリ１１０へ読まれる、またはメモリ１１０から書かれるすべてのセルペイロードのすべての１２ビットワードのうちのそれぞれ対応のビットｉを記憶する。各メモリバッファチップ１３０．ｉは、（１）ポート０−６３およびＣＰＵｃｐｕ０−ｃｐｕ３間で転送が行なわれるワードのビットｉのためのメモリバッファ１３０．ｉ．１と、（２）ポート６４−１２７およびＣＰＵｃｐｕ４−ｃｐｕ７間で転送が行なわれるワードのビットｉのためのメモリバッファ１３０．ｉ．２とを含む。
【００５５】
各バッファ１３０．ｉ．１、１３０．ｉ．２は６８本の１ビット線により相互接続マトリクス１５０に接続される。各ポートおよび各ＣＰＵに対し、それぞれ対応のバッファ１３０．ｉ．１または１３０．ｉ．２は、（１）そのポートまたはＣＰＵから受取った３２個の連続したワードのビットｉを保持するレジスタ（図示せず）と、（２）そのポートまたはＣＰＵに送るべき３２個の連続したワードの３２個のビットｉを保持する別個のレジスタ（図示せず）とを有する。どの所与のクロックサイクルにおいても、チップ１３０．ｉ内にスイッチ１０１０はバッファ１３０．ｉ．１、１３０．ｉ．２のうちの一方をデータバスＤａｔａ＿Ｒに接続し、バッファ１３０．ｉ．１、１３０．ｉ．２のうちの他方をデータバスＤａｔａ＿Ｌに接続する。各バスＤａｔａ＿Ｒ、Ｄａｔａ＿Ｌは３８４ビットバスであり、セルペイロードの並列転送を可能にする。（注目すべきであるのは、セルペイロードはちょうど３２個の１２ビットワード、すなわち３８４ビットを含むことである。）バッファ１３０．ｉのスイッチ１０１０のすべては、アドレス生成器１７０（図１）により生成される同じ信号Ｃにより制御される。どの所与のクロックサイクルにおいても、すべてのｉに対するすべてのバッファ１３０．ｉ．１はバスＤａｔａ＿Ｌ、Ｄａｔａ＿Ｒのうちの全く同一のものに接続されており、すべてのバッファ１３０．ｉ．２はバスＤａｔａ＿Ｌ、Ｄａｔａ＿Ｒのうちの他方に接続される。すなわち、スイッチファブリック１２２．１、１２２．２のうちの一方がデータバスの一方を用い、他方のスイッチファブリックが他方のデータバスを用いる。
【００５６】
図１３は、それぞれのメモリ１１０＿ＵＬ、１１０＿ＵＲ、１１０＿ＤＬ．１１０＿ＤＲに対する別個のアドレスバスｍＡｄｄｒ＿ＵＬ、ｍＡｄｄｒ＿ＵＲ、ｍＡｄｄｒ＿ＤＬ、ｍＡｄｄｒ＿ＤＲを有する代替の実施例を示す。各クロックサイクルにおいて、アドレス生成論理１７０はバスｍＡｄｄｒ＿ＵＬ、ｍＡｄｄｒ＿ＵＲ上に同じアドレスを生成し、また、バスｍＡｄｄｒ＿ＤＬ、ｍＡｄｄｒ＿ＤＲ上に同じアドレスを生成する。図１３のシステムの残りの特徴は図１のものと同様である。
【００５７】
アドレスバスが別個であるため、異なるアドレスをバスｍＡｄｄｒ＿ＵＬ、ｍＡｄｄｒ＿ＵＲ上とバスｍＡｄｄｒ＿ＤＬ、ｍＡｄｄｒ＿ＤＲ上とに生成できる交番モードで図１３のスイッチを動作させることができる。このモードにおいて、各メモリ１１０は図１のモードの半分の大きさおよび半分の帯域幅を有するため、メモリシステムはより安価である。特に、各データバスＤａｔａ＿Ｌ、Ｄａｔａ＿Ｒの幅は図１のシステムのそれぞれ対応のデータバスの半分である。さらに、交番モードでは、スイッチには６４個のポートと４つのＣＰＵしかなく、このためシステム費用はさらに減少される。
【００５８】
交番モードにおいても図２、図３、図４が当てはまる。入力および出力フェーズの詳細は図１４、図１５に示される。一例は以下の表１に提示される。ポートには０、２、４、…１２６（奇数は省略される）と番号が付けられ、４つのＣＰＵはｃｐｕ０、ｃｐｕ２、ｃｐｕ４、ｃｐｕ６と記される。単一のセルの読出または書込には２つのクロックサイクルを要し、各クロックサイクルにおいてセルペイロードの半分が読まれ、または書かれる。すなわち、クロックサイクル０では（図１４）、ファブリック１２２．１（図１）は、「ｒ０」で示されるように、メモリ１１０のうちの１つからポート０上に送るべきセルペイロードの半分を読む。ファブリック１２２．１は、「ｒ０」で示されるように、クロックサイクル１において残り半分を同じメモリから読む。セルがどこにあるかを追跡するのを簡単にするため、各セルペイロードの両半分は同じメモリに記憶される。サイクル０およびサイクル１では、スイッチファブリック１２２．２はポート６４上で受取ったセルペイロードのそれぞれの半分を別のメモリ１１０に書く（「ｗ６４」）。同様に、クロックサイクル２およびクロックサイクル３において、セルペイロードのそれぞれの半分はポート２に対して読出され、（「ｒ２」）、ポート６６上で受取ったセルペイロードのそれぞれの半分は書かれる（「ｗ６６」）等、以下同様である。クロックサイクル６４、６５において、ファブリック１２２．１はｃｐｕ０への送信のためセルペイロードを読み、ファブリック１２２．２はｃｐｕ４から受取ったセルペイロードを書く。クロックサイクル６６、６７において、ファブリック１２２．１はｃｐｕ２への送信のためセルペイロードを読み、ファブリック１２２．２はｃｐｕ６から受取ったセルペイロードを書く。
【００５９】
クロックサイクル６８−１３５において、ファブリック１２２．１、１２２．２は入れ替わり、ファブリック１２２．１は出力フェーズとなり、ファブリック１２２．２は入力フェーズとなる。
【００６０】
図１４、図１５では、「ｒ」は読出動作のデータフェーズを示す。すなわち、クロックサイクル０において、セルペイロードの半分は、前のクロックサイクルにおいて論理１７０により提供されるアドレスに応答してデータバス上にファブリック１２２．１へ提供される。クロックサイクル１では、同じセルペイロードの残り半分が同じデータバス上に提供される。
【００６１】
下の表１は一例におけるバス利用率を示す。クロックサイクル０、１において、読出動作ｒ０はデータバスＤａｔａ＿Ｌを用いてメモリ１１０＿ＵＬを読む。データバスＤａｔａ＿Ｒは書込動作ｗ６４に利用可能である。サイクル０では、読出ｒ０はデータバスｍＡｄｄｒ＿ＵＬを用いる。サイクル１において、次の読出動作ｒ２はデータバスｍＡｄｄｒ＿ＵＲを用いて、サイクル２およびサイクル３においてメモリ１１０＿ＵＲからデータを読出す。そのため、アドレスバスｍＡｄｄｒ＿ＤＲはサイクル０およびサイクル１における書込ｗ６４に利用可能である。
【００６２】
【表１】
0003615948.tif 000002
【００６３】
どの２つのサイクル２ｉ、２ｉ＋１（ｉ＝０、１、…、６７）においてもメモリ１１０のうちの少なくとも１つは書込動作に利用可能であるのがわかる。実際、サイクル２ｉ、２ｉ＋１における読出動作によりメモリ１１０＿ＵＬからデータが得られたと仮定しても一般性は失われない。読出はデータバスＤａｔａ＿Ｌを用いるため、データバスＤａｔａ＿Ｒは書込動作に利用可能である。サイクル２ｉにおいて読出はバスｍＡｄｄｒ＿ＵＬを用い、次の読出はサイクル２ｉ＋１において４つのアドレスバスのうちの１つを用いることになる。どのアドレスバスが用いられたとしても、バスｍＡｄｄｒ＿ＵＲ、ｍＡｄｄｒ＿ＤＲのうちの一方はサイクル２ｉ＋１において書込に利用可能である。同じバスがサイクル２ｉにおける書込に利用可能であるため、メモリ１１０＿ＵＲ、１１０＿ＤＲのうちの少なくとも一方（おそらくは両方）はサイクル２ｉ、２ｉ＋１の両方において２つの書込動作に利用可能であり、読出と並行してセルペイロードの両半分をそのメモリに書込むことが可能となる。
【００６４】
表１に示すように、データバス利用率ペナルティはない。しかしながら、このモードではいずれのクロックサイクルにおいても２つのアドレスバスが使用されていない。
【００６５】
図１６では、図９の共有バス１６４は専用接続により置き換えられ、５０ＭＨｚなどの高周波数における信号伝送ノイズを減少する。図１６には、４つのカード（すなわち、プリント回路基板）１０５０．１、１０５０．２、１０５０．３、１０５０．４が示される。各カード１０５０には、２つのＭＳＣ７２０および制御メッセージインターフェイス（「ＣＭＩ」）集積回路１０５４が含まれる。ＭＳＣおよびＣＭＩ回路は簡単にするためカード１０５０．１のみに示される。ＣＭＩ１０５４の一実施例はカリフォルニア州、サニィベイル（Ｓｕｎｎｙｖａｌｅ，  Ｃａｌｉｆｏｒｎｉａ  ）のエム・エム・シー・ネットワークスから入手可能である部品ＣＭＩ−５０Ａである。
【００６６】
バス１６４は、それぞれ対応のカード１０５０．ｉ、１０５０．ｊを相互に接続する専用接続１６４．ｉ、ｊにより置き換えられる。
【００６７】
図１７は、１つの代表のカード１０５０をより詳しく示す。２つのＭＳＣ７２０の出力１０６０は２つのＭＳＣにより共有されるバス１０６２に接続される。バス１０６２はラッチ１０６４．１、１０６４．２、１０６４．３の入力に接続され、これらのラッチの出力はバックプレーン１６４Ｂに接続される。バックプレーン１６４Ｂは図１６の線１１６４．ｉ、ｊを含む。ラッチ１０６４．１、１０６４．２、１０６４．３の各々は、バス１０６２からバックプレーンへ同じ１組の信号を提供し、バックプレーンはその信号をそれぞれ対応の他の３つのカード１０５０へ送る。
【００６８】
バス１０６２はまた、ＣＭＩ１０５４の入力に接続され、ＭＳＣ７２０が互いに連絡できるようにする。
【００６９】
バックプレーンの線はラッチ１０６４を通してＣＭＩ１０５４の入力に接続される。ＣＭＩ１０５４の出力はＭＳＣ７２０の入力に接続される。これらの出力は、図９の回路７５４、７５８、７６０、７５０の出力と同じ機能を果たす。
【００７０】
アボート論理１０７０の入力／出力ポートは２つのＭＳＣ７２０に接続される。アボート論理１０７０の他の入力／出力ポートは、全信号ＯＦＵＬＬ、ＩＦＵＬＬの送信のためラッチ１０６４を通してバックプレーン１６４Ｂに接続される。
【００７１】
バックプレーン１６４Ｂを通る信号はラッチ１０６４の２つのレベルにより遅延される（１レベルは発信元カード１０５０、１レベルは行先カード）。そのため、ＣＭＩ１０５４は同じカードのバス１０６２から受取った信号（ループバック信号）を２つのクロックサイクルだけ遅延させる。
【００７２】
いくつかの実施例では、２つのカード１０５０の回路（つまり、４つのＭＳＣ７２０および２つのＣＭＩ回路１０５４）が同じカード上で組合される。他の組合せも可能である。
【００７３】
図１８は、無閉塞ＡＴＭスイッチ１１１０における別のメモリシステムを示す。スイッチ１１１０は４つのスイッチファブリック１２２．１−１２２．４から構成される。各スイッチファブリック１２２は複数のポート（図示せず）、たとえば６４個のポートを制御し、１つ以上のＣＰＵ（図示せず）、たとえば４つのＣＰＵを含む。スイッチファブリック１２２は制御バス（図示せず）により相互に接続される。スイッチ１１１０はまた、アドレス生成論理、メモリバッファ、ＰＩＦおよび１つ以上の相互接続マトリクスを含むが、簡略化するため、これらは図示しない。
【００７４】
図１８では、個々のメモリ１１０＿Ａ、１１０＿Ｂ、１１０＿Ｃ、１１０＿Ｄ、１１０′＿Ａ、１１０′＿Ｂ、１１０′＿Ｃ、１１０′＿Ｄはいくつかの実施例において非同期ＳＲＡＭである。
【００７５】
スイッチ１１１０のスイッチサイクルは図１９に示される。クロックサイクル０−６７において、スイッチファブリック１２２．１、１２２．２は入力フェーズにあり、ファブリック１２２．３、１２２．４は出力フェーズにある。クロックサイクル６８−１３５において、ファブリック１２２．１、１２２．２は出力フェーズにあり、ファブリック１２２．３および１２２．４は入力フェーズにある。いくつかの実施例では、各スイッチファブリックの入力および出力フェーズは図２、図３、図４のものと同様である。
【００７６】
入力フェーズにある２つのスイッチファブリックはすべてのクロックサイクルにおいてメモリ１１０を読む。どの所与のクロックサイクルにおいても、２つの入力フェーズのファブリックは同じメモリに記憶されるデータを読まなければならないことがある。そのため、いくつかの実施例ではメモリ１１０は２つのポートがあるか、または単一ポートメモリであったとしても、１つのクロックサイクルにおいて２つの読出動作を可能にするのに十分速い。しかしながら、他の実施例では、メモリ１１０は単一ポートメモリで、しかも１つのクロックサイクルにおいて２つの読出を可能にするほど十分速くはない。これらの実施例はより安価であるという利点がある。これらの実施例において、各メモリは、同じデータを含む「ミラー」イメージメモリを有する。すなわち、メモリ１１０＿Ａ、１１０′＿Ａは互いのミラーイメージであり、すなわち、どの所与の時点においても同じデータを記憶する。同様に、メモリ１１０＿Ｂ、１１０′＿Ｂは互いのミラーイメージであり、メモリ１１０＿Ｃ、１１０′＿Ｃは互いのミラーイメージであり、メモリ１１０＿Ｄおよび１１０′＿Ｄは互いのミラーイメージである。このため、２つのスイッチファブリックが同じクロックサイクルにおいて同じメモリに記憶されるデータを必要とする場合、２つのスイッチファブリックは互いにミラーイメージである異なるメモリからデータを得る。たとえば、スイッチファブリック１２２．１、１２２．２がともにメモリ１１０＿Ａに記憶されるデータを必要とする場合、２つのスイッチファブリックのうちの一方はメモリ１１０＿Ａを読み、他方のスイッチファブリックはメモリ１１０′＿Ａを読む。
【００７７】
いずれかのメモリに書込まれると、そのミラーイメージメモリにも同じアドレスに同じデータが書込まれる。すなわち、一例では、クロックサイクル６８−１３５のうちの１つにおいて、スイッチファブリック１２２．３はメモリ１１０＿Ｃ、１１０′＿Ｃの各々に、双方のメモリの同じアドレスにセルを書込み、スイッチファブリック１２２．４はメモリ１１０＿Ｄ、１１０′＿Ｄの各々に、双方のメモリの同じアドレスに別のセルを書込む。デュアルポートメモリがメモリの両方に必要という訳ではない。
【００７８】
メモリスイッチ１１２０は、図１９に関連して上に説明した動作を達成するのに適した態様で、メモリ１１０のデータポートＤをそれぞれ対応のスイッチファブリック１２２のデータバスＤａｔａ＿１からＤａｔａ＿４に接続する。メモリスイッチ１１２０は当該技術において公知である方法を用いて制御される。メモリ１１０のためのアドレスおよび制御信号は公知の方法を用いて生成される。
【００７９】
いくつかの実施例は図１および図１６の技術を組合せている。たとえば、いくつかの実施例には３２個の単一ポートのシンクロナスＳＲＡＭが含まれる。３２個のＳＲＡＭは各々が１６個のＳＲＡＭからなる２つのブロックにさらに分けられる。２つのブロックは互いのミラーイメージである。一方のブロックのメモリをＭ＿ｉ．ｊと示すことにする。ここで、ｉ、ｊの各々は値１、２、３および４を取る。他方のブロックのメモリをＭ′＿ｉ．ｊと示すことにする。ここで、ｉ、ｊは上と同じ値を取る。所与のｉおよびｊの各々に対して、メモリＭ＿ｉ．ｊおよびＭ′＿ｉ．ｊは互いのミラーイメージである。
【００８０】
各メモリブロックに対し、４つのデータバスおよび４つのアドレスバスが提供される。所与のｊの各々に対し、データバスＤａｔａ＿ｊはメモリＭ＿１．ｊ、Ｍ＿２．ｊ、Ｍ＿３．ｊ、Ｍ＿４．ｊのデータポートに接続される。所与のｉの各々に対し、アドレスバスｍＡｄｄｒ＿ｉはメモリＭ＿ｉ．１、Ｍ＿ｉ．２、Ｍ＿ｉ．３、Ｍ＿ｉ．４のアドレス入力に接続される。同様に、所与のｊの各々に対し、データバスＤａｔａ′＿ｊはすべてのｉに対してメモリＭ′＿ｉ．ｊのデータポートに接続され、アドレスバスｍＡｄｄｒ′＿ｉはすべてのｊに対してすべてのメモリＭ′＿ｉ．ｊのアドレス入力に接続される。
【００８１】
メモリシステムは無閉塞スイッチ、たとえば、４つのスイッチファブリックを含む無閉塞ＡＴＭスイッチ内で用いられる。どの所与のクロックサイクルにおいても、図１９に示されるように、スイッチファブリックのうちの２つは入力フェーズにあり、スイッチファブリックのうちの２つは出力フェーズにある。同じメモリからのデータが同時に異なるスイッチファブリックから望まれる場合、図１８のようにスイッチファブリックはミラーイメージメモリを読む。各クロックサイクルにおいて、２つのアドレスバスが現在のクロックサイクルにおいて開始される読出動作により用いられ、２つのデータバスが前のクロックサイクルにおいて開始された読出動作により用いられる。図６を参照されたい。そのため、各クロックサイクルにおいて、少なくとも２対の「ミラー」アドレスバス（ｍＡｄｄｒ＿ｉ１，ｍＡｄｄｒ′＿ｉ１）、（ｍＡｄｄｒ＿ｉ２，ｍＡｄｄｒ′＿ｉ２および少なくとも２対の「ミラー」データバス（Ｄａｔａ＿ｊ１，Ｄａｔａ′＿ｊ１）、（Ｄａｔａ＿ｊ２，Ｄａｔａ′＿ｊ２）が書込動作に利用可能である。出力フェーズにある２つのスイッチファブリックのうちの一方は、「ミラーイメージ」メモリＭ＿ｉ１．ｊ１、Ｍ′＿ｉ１．ｊ１へ、双方のメモリの同じアドレスにセルを書込み、出力サイクルにあるスイッチファブリックの他方はメモリＭ＿ｉ２．ｊ２、Ｍ′＿ｉ２．ｊ２へ、双方のメモリの同じアドレスにセルを書込む。そのため、２つの読出および２つの書込が各クロックサイクルごとに行なわれる。
【００８２】
上述の実施例はこの発明を限定しない。特に、この発明はどの特定の種類のメモリまたはメモリタイミングにも限定されない。いくつかの実施例ではＤＲＡＭまたは他の種類のメモリが用いられる。図１のいくつかの実施例では、各読出動作は３以上のクロックサイクルを要し、各書込動作は２以上のクロックサイクルを要する。いくつかの実施例では、アドレスバスの数は読出動作に要するクロックサイクルの数と等しく、新しい読出アドレスが各クロックサイクルにおいて供給される。この発明はメモリシステム内に用いられるメモリの数に限定されない。いくつかの実施例では、互いのミラーイメージであるメモリは同じアドレスに同じデータを記憶する。他の実施例では、異なるメモリは同じデータを記憶するのに異なるアドレスを用いる。いくつかの実施例では、各メモリは集積回路、または集積回路の組合せである。この発明はＡＴＭに限定されない。いくつかの実施例では同期転送モードまたは他のいずれかのデータフローが含まれる。いくつかの実施例では、イーサネット（Ｅｔｈｅｒｎｅｔ）、フレームリレー、および／またはＰＰＰ／ソネット（Ｓｏｎｅｔ  ）スイッチが含まれる。このような実施例のいくつかでは、パケットまたはフレームが固定サイズ（たとえば４８バイト）のセルにさらに分けられ、最後のセルは固定サイズになるようパディングされる。セルは上述のとおりメモリに記憶される。次に、セルは上述のようにメモリから読出され、再び組合され、元のフレームまたはパケットが得られ、パケットまたはフレームが送られる。他の実施例および変形も、添付の特許請求の範囲により規定されるようにこの発明の範囲内に含まれる。
【図面の簡単な説明】
【図１】この発明によるメモリシステムを有するＡＴＭスイッチのブロック図である。
【図２】図１のいくつかの実施例におけるスイッチサイクルを示すタイミングダイアグラムの図である。
【図３】図１のいくつかの実施例におけるスイッチサイクルを示すタイミングダイアグラムの図である。
【図４】図１のいくつかの実施例におけるスイッチサイクルを示すタイミングダイアグラムの図である。
【図５】図１のいくつかの実施例において用いられるシンクロナスＳＲＡＭのタイミングダイアグラムの図である。
【図６】図１のいくつかの実施例における読出および書込動作を示すタイミングダイアグラムの図である。
【図７】図１のいくつかの実施例におけるメモリアドレス生成論理の回路図である。
【図８】図１のいくつかの実施例の詳細を示すブロック図である。
【図９】図１のいくつかの実施例のＡＴＭスイッチのある部分のブロック図である。
【図１０】図１のいくつかの実施例において用いられる回路のブロック図である。
【図１１】図１のいくつかの実施例において用いられるアドレス生成パイプラインのタイミングダイアグラムの図である。
【図１２】図１のいくつかの実施例において用いられる回路のブロック図である。
【図１３】この発明によるＡＴＭスイッチのある部分のブロック図である。
【図１４】図１３のスイッチのためのタイミングダイアグラムの図である。
【図１５】図１３のスイッチのためのタイミングダイアグラムの図である。
【図１６】この発明によるＡＴＭスイッチのブロック図である。
【図１７】図１６のスイッチの詳細を示すブロック図である。
【図１８】この発明によるメモリシステムを有するＡＴＭスイッチのブロック図である。
【図１９】図１８のいくつかの実施例におけるスイッチサイクルのタイミングダイアグラムの図である。
【符号の説明】
１１０  メモリ
１１８  ＡＴＭスイッチ
１２２  スイッチファブリック
１３０  メモリバッファ
１５０  相互接続マトリクス
１６０  スイッチファブリック制御論理
１６４  制御バス
１７０  アドレス生成論理
５２４  論理回路
７１０  制御ブロック
７２０  モジューラスイッチコントローラ（ＭＳＣ）
７３０  制御バス論理（ＣＢＬ）
７５４、７５８、７６０  キュー
８１０  スタック
８２０  マルチプレクサ
１０５０  カード
１０５４  制御メッセージインターフェイス（ＣＭＩ）集積回路
１０６２  バス
１１１０  無閉塞ＡＴＭスイッチ
【図１】
0003615948.tif 000003
【図２】
0003615948.tif 000004
【図３】
0003615948.tif 000005
【図４】
0003615948.tif 000006
【図５】
0003615948.tif 000007
【図６】
0003615948.tif 000008
【図７】
0003615948.tif 000009
【図８】
0003615948.tif 000010
【図９】
0003615948.tif 000011
【図１０】
0003615948.tif 000012
【図１１】
0003615948.tif 000013
【図１２】
0003615948.tif 000014
【図１３】
0003615948.tif 000015
【図１４】
0003615948.tif 000016
【図１５】
0003615948.tif 000017
【図１６】
0003615948.tif 000018
【図１７】
0003615948.tif 000019
【図１８】
0003615948.tif 000020
【図１９】
0003615948.tif 000021