(57)【特許請求の範囲】
【請求項１】
複数のダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）セルを含んでいる少なくとも１つのメモリアレイを有し、単一の半導体ダイに形成された同期型の半導体メモリ装置であって：
外部クロック信号を受信するクロック・レシーバを備え；
前記クロック・レシーバに結合されたクロック生成回路にして、外部クロック信号を用いて内部クロック信号を発生するのに用いられる遅延線を有している、クロック生成回路を備え、前記遅延線によって、外部クロック信号に対する内部クロック信号の位相の調節が、内部クロック信号と外部クロック信号との位相比較に基づいて行われ；
複数の入力受信器を備え、それらの入力受信器によって、オペレーション・コードが外部クロック信号に同期して抽出受信され、前記オペレーション・コードは、プリチャージに関する情報を含み且つ半導体メモリ装置に読み取り動作の指示をするものであり；
前記複数のＤＲＡＭセルに結合されていて、半導体メモリ装置から前記オペレーション・コードに応じて出力すべきデータを検出するセンス増幅器にして、前記オペレーション・コードに含まれている前記プリチャージに関する情報によって、データを検出した後で自動的にプリチャージするか否かの決定をするよう構成された、センス増幅器を備え；
前記オペレーション・コードに応じてデータの出力を、内部クロック信号を使用して行う、複数の出力駆動器を備えている
ことを特徴とする半導体メモリ装置。
【請求項２】
複数のダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）セルを含んでいる少なくとも１つのメモリアレイを有し、単一の半導体ダイに形成された同期型の半導体メモリ装置であって：
第１の外部クロック信号を受信する第１のクロック・レシーバを備え；
第２の外部クロック信号を受信する第２のクロック・レシーバを備え；
前記第１および第２のクロック・レシーバに結合されたクロック生成回路にして、第１および第２の外部クロック信号を用いて内部クロック信号を発生するのに用いられる第１および第２の遅延線を有している、クロック生成回路を備え、前記第１および第２の遅延線によって、第１および第２の外部クロック信号に対する内部クロック信号の位相の調節が、内部クロック信号と第１の外部クロック信号との間および内部クロック信号と第２の外部クロック信号との間での位相比較に基づいて行われ；
複数の入力受信器を備え、それらの入力受信器によってオペレーション・コードが抽出受信され、前記オペレーション・コードは、プリチャージに関する情報を含み且つ半導体メモリ装置に読み取り動作の指示をするものであり；
前記複数のＤＲＡＭセルに結合されていて、半導体メモリ装置から前記オペレーション・コードに応じて出力すべきデータを検出するセンス増幅器にして、前記オペレーション・コードに含まれている前記プリチャージに関する情報によって、データを検出した後で自動的にプリチャージするか否かの決定をするよう構成された、センス増幅器を備え；
前記オペレーション・コードに応じてデータの出力を、内部クロック信号を使用して行う、複数の出力駆動器を備えている
ことを特徴とする半導体メモリ装置。
【請求項３】
請求項１記載の半導体メモリ装置において、前記クロック生成回路における内部クロック信号と外部クロック信号との位相比較は、内部クロック信号の遷移を用いて外部クロック信号のサンプリングをすることによってなされる、ことを特徴とする半導体メモリ装置。
【請求項４】
請求項１記載の半導体メモリ装置において、前記複数のＤＲＡＭセルで行をなすセルからのデータをそれぞれ感知する前記センス増幅器に、複数の列復号器が結合されており、それらの列復号器は、半導体装置の受けた列アドレスに基づいて、前記行をなすセルから感知したデータから、出力するデータを選択するものである、ことを特徴とする半導体メモリ装置。
【請求項５】
請求項４記載の半導体メモリ装置において、前記複数の出力駆動器は、前記列復号器により選択されたデータの第１部分および第２部分を、外部クロック信号のクロック・サイクル中に順次に、出力するものである、ことを特徴とする半導体メモリ装置。
【請求項６】
請求項５記載の半導体メモリ装置において、データの前記第１部分および第２部分は半導体メモリ装置から外部バスへと出力され、前記第１部分が偶数バスサイクルにおいて出力され、前記第２部分が奇数バスサイクルにおいて出力されるように構成されている、ことを特徴とする半導体メモリ装置。
【請求項７】
請求項５記載の半導体メモリ装置において、前記複数の出力駆動器にマルチプレクサが結合されており、それらのマルチプレクサによって、前記複数の出力駆動器にはデータの前記第１部分および第２部分が選択的に与えられるように構成されている、ことを特徴とする半導体メモリ装置。
【請求項８】
請求項７記載の半導体メモリ装置において、前記マルチプレクサは前記クロック生成回路に結合されて、データの前記第１部分および第２部分が、内部クロック信号に基づいて、前記複数の出力駆動器に選択的に与えられるように構成されている、ことを特徴とする半導体メモリ装置。
【請求項９】
請求項４記載の半導体メモリ装置において、前記複数の入力受信器は、さらに、
センス増幅器がデータの感知を行うセルの行を特定する行アドレスと、
前記列アドレスと
を受信する、ことを特徴とする半導体メモリ装置。
【請求項１０】
請求項９記載の半導体メモリ装置において、前記行アドレスおよび前記列アドレスは、外部クロック信号に同期して受信される、ことを特徴とする半導体メモリ装置。
【請求項１１】
請求項１０記載の半導体メモリ装置において、前記行アドレスおよび前記列アドレスは、前記オペレーション・コードを含むパケットに含められている、ことを特徴とする半導体メモリ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
データ・ブロックを、とくにメモリ装置との間で、高速転送ができるようにし、電力消費量が少なく、システムの信頼度が高い、コンピュータおよびビデオ装置用の集積回路バス・インターフェイスについて説明する。バス・アーキテクチャを実現する新規な方法についても説明する。
【０００２】
【従来の技術】
半導体コンピュータ・メモリは、任意の個々のコンピュータ語の各ビット、または小さいビット群に対して１つのメモリ装置を使用するために従来設計され、構成されている。語のサイズはコンピュータの選択により左右される。典型的な語サイズは４〜６４ビットの範囲である。各メモリ装置は一連のアドレス線へ並列に接続され、かつ一連のデータバスの一つへ接続される。特定のメモリ場所から読出し、およびその場所へ書込むことをコンピュータが求めると、アドレスがアドレス線に置かれ、必要とする各装置のために別々の装置選択線を用いてメモリ装置のいくつか、または全てが起動される。各データ線へ１つまたは複数の装置を接続できるが、典型的には少数のデータ線だけが１つのメモリ装置へ接続される。したがって、データ線０が装置０へ接続され、データ線１が装置１へ接続される、等である。したがって、データはメモリの各読出し動作、または各書込み動作ごとに並列にアクセスされる、すなわち供給される。システムが正しく動作するためには、あらゆるメモリ内のあらゆる単一メモリビットを確実に正しく動作させねばならない。
【０００３】
本発明の概念を理解するためには、従来のメモリ装置のアーキテクチャを研究することが助けになる。ほぼあらゆる種類のメモリ装置（最も広く用いられているダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタチックＲＡＭ（ＳＲＡＭ）、および読出し専用メモリ（ＲＯＭ）装置を含めて）の内部では、システムがメモリサイクルを実行するたびに、多数のビットが並列にアクセスされる。しかし、メモリ装置がサイクルさせられるたびに内部で利用できるアクセスされたビットの少ない部分だけが、外界までメモリ装置の境界を横切る。
【０００４】
図１を参照して、最近のＤＲＡＭ、ＳＲＡＭおよびＲＯＭの設計の全ては、メモリセルが二次元領域１を埋めることができるように、行（語）線５と、列（ビット）線６とを有する内部アーキテクチャを有する。特定の語線が使用可能にされると、対応するデータビットの全てがビット線へ転送される。従来のＤＲＡＭのあるものは、アドレスを送るために必要とするピンの数を減少するために、この編成を利用する。与えられたメモリセルのアドレスは行と列の２つのアドレスへ分けられる。それら２つの各アドレスは、従来のメモリセル・アドレスで要求された帯域幅の半分のバスで多重化できる。
【０００５】
＜従来技術との比較＞
従来のメモリ装置は、メモリを高速でアクセスした場合に全てのアクセスが成功する訳ではないという問題を解決しようとしていた。米国特許第３，８２１，７１５号（ホッフ（Ｈｏｆｆ）他）が最初の４ビット・マイクロプロセッサに対してインテル社（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ）へ付与された。その特許は、１つの中央処理装置（ＣＰＵ）を多数のＲＡＭおよびＲＯＭへ接続するバスについて記載している。そのバスはアドレスおよびデータを４ビット・ワイドのバスで多重化し、特定のＲＡＭおよびＲＯＭを選択するために２地点間（ポイント・ツウ・ポイント）制御信号を用いる。アクセス時間は固定され、ただ１つの処理要素だけが許される。ブロックモード型動作は無く、最も重要なことに、装置間の全てのインターフェイス信号がバスを介して送られるわけではない（ＲＯＭ制御線とＲＡＭ制御線およびＲＡＭ選択線は２地点間である）。
【０００６】
米国特許第４，３１５，３０８号（ジャクソン（Ｊａｃｋｓｏｎ））には、１つのＣＰＵをバス・インターフェイスへ接続するバスが記述されている。その発明は多重化されたアドレスと、データと、制御情報とを１つの１６ビット・ワイド・バスを介して用いる。ブロックモード動作が定められる。その長さのブロックが制御シーケンスの部分として送られる。また、「ストレッチ」サイクル信号を用いる可変アクセス時間動作が行われる。多数の処理要素が無く、多数の顕著な要求に対する適応性がなく、再び、必ずしも全てのインターフェイス信号はバスにより送られない。
【０００７】
米国特許第４，４４９，２０７号（クン（Ｋｕｎｇ）他）には、内部バスでアドレスとデータを多重化するＤＲＡＭが記述されている。このＤＲＡＭに対する外部インターフェイスは通常のものであって、制御、アドレスおよびデータに対して別々の接続を有する。
【０００８】
米国特許第４，７６４，８４６号および第４，７０６，１６６号（ゴー（Ｇｏ））には、１つの縁部に沿って接続が行われる、スタックされたダイの３Ｄパッケージ構成が記載されている。通常のメモリ装置を処理装置へ相互に接続するために必要とされる２地点間配線のためにはそれらのパッケージは使用が困難である。２つの特許はそれらの問題を解決するために複雑な技術を延べている。インターフェイスを変更することにより問題を解決する試みは行われていない。
【０００９】
米国特許第３，９６９，７０６号（プローブスティング（Ｐｒｏｅｂｓｔｉｎｇ）他）には、現在の技術的状態ＤＲＡＭインターフェイスが記述されている。アドレスは双方向に多重化され、データと制御のために別々のピンがある（ＲＡＳ，ＣＡＳ，ＷＥ，ＣＳ）。ピンの数はＤＲＡＭのサイズと共に多くなり、そのようなＤＲＡＭを用いるメモリ装置においては接続の多くを２地点間で行わなければならない。
【００１０】
従来の技術には多くのバックプレインがあるが、述べられている組み合わせまたは本発明の諸特徴を有するものはない。多くのバックプレイン・バスは１つのバス（たとえば、ＮＵバス）でアドレスとデータを多重化する。ＥＬＳＸＩおよびその他の分割−トランザクション・バス（米国特許第４，５９５，９２３号および第４，４８１，６２５号（ロバーツ（Ｒｏｂｅｒｔｓ）））を実現した。ＥＬＳＸＩは比較的低電圧の振れの電流モードＥＣＬドライバ（約１Ｖの振れ）も実現した。アドレス−スペース・レジスタが、ある態様のブロック・モード動作のように、ほとんどのバックプレイン・バスで実現される。
【００１１】
ほとんど全てのバックプレイン・バスはある種の仲裁スキームを実現するが、本明細書に開示される仲裁スキームはそれらの各々とは異なる。米国特許第４，８３７，６８２号（キュラー（Ｃｕｌｌｅｒ））、第４，８１８，９８５号４（イケダ）、第４，７７９，０８９号（シーアス（Ｔｈｅｕｓ））、第４，７４５，５４８号（ブラハット（Ｂｌａｈｕｔ））が従来のスキームを述べている。全ては、Ｎを潜在的なバス要求者の数としてｌｏｇＮ追加信号，（シーアス（Ｔｈｅｕｓ）、ブラハット（Ｂｌａｈｕｔ））、またはバスを制御するための追加の遅延（イケダ、キュラー（Ｃｕｌｌｅｒ））のいずれかを含む。それらの特許またはその他の文献に記載されているバスのいずれもバスによる接続だけを用いるものではない。すべてはバックプレインの上にいくつかの２地点間接続を含む。各データブロックを１つの装置からフェッチする、または小型で低コストの３Ｄパッケージングのような本発明の他の面のいずれも、バックプレイン・バスへは適用されない。
【００１２】
この明細書において本発明とともに用いられるクロッキング・スキームは以前は用いられておらず、実際に、コネクタ・スタブによりひきおこされる信号劣化のために、バックプレイン・バスで実現することは困難である。米国特許第４，２４７，８１７号（ヘラー（Ｈｅｌｌｅｒ））は２つのクロック線を用いるクロッキング・スキームを記述しているが、本明細書で用いられる正常な立上がり時間信号とは対照的に、ランプ形のクロック信号を利用している。
【００１３】
米国特許第４，６４６，２７９号（ボス（Ｖｏｓｓ））には、ＤＲＡＭの出力部に並列負荷、直列出力シフトレジスタを実現するビデオＲＡＭが記述されている。これにより一般的に帯域幅を大幅に広くできる（および桁送りだしシフトアウト経路の幅が２倍、４倍更にそれより広く拡張された）。ＤＲＡＭに対するインターフェイスの残り（ＲＡＳ，ＣＡＳ、多重化されたアドレス、等）は従来のＤＲＡＭに対するものと同じままである。
【００１４】
【発明が解決しようとする課題】
本発明の目的は、データの、マイクロプロセッサのような、外部ユーザーによる１つのメモリ装置からの大きいデータ・ブロックに対する、効率的で、コスト効果的なやり方による高速アクセスを支持するために、半導体装置に組み込まれた新規なバス・インターフェイスを用いることである。
本発明の別の目的は、装置の間のクロックのスキューを最小にして、高速クロック信号をバスに沿って送ることができるようにする、クロッキング・スキームを得ることである。
本発明の別の目的は、欠陥のあるメモリ装置またはメモリ装置の一部をマッピング・アウトできるようにすることである。
【００１５】
本発明の別の目的は、他の点では同一の装置を、各装置へ独特の識別子を割り当てることにより、区別する方法を得ることである。
本発明の別の目的は、アドレス、データおよび制御情報を比較的狭いバスを介して転送する方法を得ること、および多数の装置がバスを同時に用いることを求める時にバスを仲裁する方法を得ることである。
本発明の別の目的は、従来のキャッシュ法よりはるかに効果的である、メモリ・システムのＤＲＡＭ内に高速メモリ・キャッシュを分布させる方法を得ることである。
本発明の更に別の目的は、本発明のバス・アーキテクチャに用いるために適当な装置、とくにＤＲＡＭ、を得ることである。
【００１６】
【課題を解決するための手段】
この明細書には、バスへ並列に接続されている少なくとも１つのメモリ装置を含む少なくとも２つの半導体装置を備え、バスは、前記メモリ装置により必要とされるアドレスと、データと、制御情報のほぼ全てを伝えるための複数のバス線を含み、制御情報は装置選択情報を含み、バスは１つのアドレス内のビットの数より十分に少ないバス線を有し、バスは、個々の装置へ直結される別々の装置選択線の必要なしに装置選択情報を伝える、メモリ・サブシステムが開示される。
【００１７】
そのメモリ・サブシステムでは図２のように、標準的なＤＲＡＭ１３，１４と、ＲＯＭ（またはＳＲＡＭ）１２と、マイクロプロセッサＣＰＵ１１と、Ｉ／Ｏ装置と、ディスク制御器、または高速スイッチのようなその他の専用装置の通常のものに用いられる、２地点間およびバスをベースとする配線の組み合わせではなくて、完全にバスをベースとするインターフェイスを用いるために、それらの装置は変更される。新規なバスはクロック信号と、電力および多重化されたアドレスと、データ信号および制御信号とを含む。好適な実現においては、８つのバス・データ線とＡｄｄｒｅｓｓＶａｌｉｄバス線がアドレスと、データと、制御情報とを、４０ビット・ワイドまでのメモリ・アドレスへ送る。本発明の教示を実現するために、１６のバス・データ線または別の数のバス・データ線を用いることができる。メモリや、周辺装置や、スイッチや、処理装置のような要素を接続するために新規なバスが用いられる。
【００１８】
ＤＲＡＭおよびその他のメモリ装置はアドレスおよびその他の情報をバスを介して受け、求められているデータを同じバスを介して送り、または受けることも表示される。各メモリ装置はバス・インターフェイスを１つだけ含み、他の信号ピンは有しない。装置に含むことができる別の装置はバス、および入力線／出力線のような別の非バス線へ接続できる。バスは大きなデータ・ブロックの転送および分割トランザクションをサポートして、ユーザーが高いバス利用度を達成できるようにする。
【００１９】
このバスへ接続するＤＲＡＭはいくつかのやり方で従来のＤＲＡＭとは異なる。制御情報、装置識別、装置の型、および装置の各独立部分のためのアドレス範囲のようなチップに対して適切なその他の情報を記憶できるレジスタが設けられる。新しいバス・インターフェイスを付加せねばならず、従来のＤＲＡＭ装置の内部は変更する必要はないから、それらはバスのピークデータ速度でバスとの間でデータのやり取りができる。これはＤＲＡＭにおける列アクセス回路を変更することを要し、その場合に型の大きさの増大は最小である。バス上の装置のための低スキュー内部装置クロックを発生する回路が設けられ、別の多重化解除入力信号と、多重化出力信号とを供給する回路も用意されている。
【００２０】
バスを非常に高いクロック速度（数百ＭＨｚ）で動作させることにより広いバス帯域幅が達成される。この高いクロック速度はバスの制約された環境により可能にされる。バス線はインピーダンスを制御されて、二重終端させられた線である。５００ＭＨｚのクロック速度では、最長バス伝播時間は１ｎｓよりも短い（典型的なバスの長さは約１０ｃｍである）。また、用いられるパッケージングのために、ピンのピッチをパッドのピッチに非常に近づけることができる。個々の装置から与えられるバスへのローティングは非常に小さい。好適な実現においては、これはスタブの容量を１〜２ｐＦ、インダクタンスを０．５２ｎＨに一般にできる。図３に示されている各装置１５，１６，１７は、一方の側だけにピンを有し、それらのピンはバス１８へ直結される。多数の装置をピン２０を介して高次のバスへインターフェイスするためにトランシーバ装置１９を含むことができる。
【００２１】
この明細書に開示されるアーキテクチャの主な結果はＤＲＡＭアクセスの帯域幅を広くすることである。本発明は製作コストおよび製造コストを低減し、電力消費量を減少し、パッキング密度およびシステムの信頼度を高くすることである。
【００２２】
【発明の実施の形態】
本発明は、処理装置と記憶装置間の通信用の高速、多重バスを提供し、そのバスシステムで使用する装置を提供することに寄与する。本発明はまた、処理装置と入出力インターフェイスやディスク制御装置といった他の装置を接続するのに用いることができる。バスはバス上の各々の装置に並列に接続した比較的少数の回線（ライン）からなり、バスにより装置がバス上の他の装置との通信するのに必要な実質的に全てのアドレス、データ、制御情報を搬送する。本発明を用いた多くのシステムでは、バスは全システム内の全ての装置間のほとんど全ての信号を搬送する。バス上の各々の装置に対する装置選択情報はバスで搬送されるので、別の装置選択回線を必要としない。またアドレスとデータ情報は同一回線を通して送ることができるので、別のアドレスおよびデータ回線も必要としていない。ここで説明する機構を用いることで、非常に大きなアドレス（実施例では４０ビット）および大きなデータブロック（１０２４バイト）を少数のバス回線（実施例では８プラス１制御回線）で送ることができる。
【００２３】
事実上、コンピュータシステムで必要な全ての信号をバスで送ることができる。当業者はＣＰＵのような特定装置は、本発明のバス以外に、他の信号回線および例えば独立したキャッシュメモリへのバスのような独立したバスに接続できることが理解できよう。例えばクロスポイント・スイッチのような特定装置は、本発明の複数の独立したバスに接続することができる。本実施例では、ここに説明するバス接続以外には接続を有しない記憶装置を設け、本発明のバスをメモリおよびバス上の他の装置への全面的でなくとも主要な接続として用いるＣＰＵを設ける。
【００２４】
全ての最近のＤＲＡＭ、ＳＲＡＭ、ＲＯＭ設計は、２次元領域を効率的にタイル状に構成するため、行（語）と列（ビット）ラインの内部アーキテクチャを有している。図１では、各々の語線５とビット線６の交点に１ビットのデータが格納されている。特定の語線が使用可能になると、全ての対応するデータビットがビット線に転送される。４ＭビットＤＲＡＭ内で一時に約４０００ビットとなるこのデータは次に列の増幅器（センスアンプ）３にロードされ、入出力回路で使用するために保持される。
【００２５】
ここに提示する発明では、センスアンプからのデータは、ほぼ１２５ＭＨｚで動作している内部装置バスに一時に３２ビットを乗せることが可能になる。この内部装置バスはデータを装置の周辺に移動し、データは約５００ＭＨｚで動作する８ビットワイドの外部バスインターフェイスに多重化される。
【００２６】
本発明のバス・アーキテクチャでは、ＣＰＵ、直接記憶アクセス装置（ＤＭＡ）ないし浮動小数点装置（ＦＰＵ）などのマスタ（バス制御装置）と、ＤＲＡＭ、ＳＲＡＭ、ＲＯＭ記憶装置などのスレーブ装置を接続する。スレーブ装置は制御信号に応答し、マスタは制御信号を送信する。当業者は操作モードおよびシステムの状態により、一部の装置はときどきマスタおよびスレーブとして作動することを理解できよう。例えば記憶装置は一般にスレーブ機能だけしか有していないが、ＤＭＡ制御装置、ディスク制御装置、ＣＰＵはスレーブ、マスタ機能を両方有することがある。入出力装置、ディスク制御装置や高速スイッチなどのその他の特殊目的装置を初めとする他の多くの半導体装置は、本発明のバスで使用するために改変することができる。
【００２７】
各々の半導体装置は、装置識別（装置ＩＤ）レジスタ、装置タイプ記述レジスタ、制御レジスタ、その他の装置のタイプに関連した情報を含むレジスタを初めとする１組の内部レジスタを内蔵している。実施例では、バスに接続された半導体装置には、その装置内に含まれたメモリアドレスを特定するレジスタと装置がデータを送信ないし受信できるまでの（ないしすべき）時間を示す１組の１つないし複数の遅延時間を記憶するアクセス時間レジスタを内蔵している。
【００２８】
それらのレジスタの大部分は、システムを起動した時、ないしリセットした時に生じる初期化シーケンスの一部として変更ないし設定することができる。初期化シーケンス中、バス上の各々の装置は装置ＩＤレジスタに記憶された一意的な装置ＩＤ番号が割り当てられる。バスマスタはそこでそれらの装置ＩＤ番号を用いてアクセスし、アクセス時間レジスタ、制御レジスタ、メモリレジスタを初めとする他の装置内の適当なレジスタを設定し、システムを構成することができる。各々のスレーブは１つないしいくつかのアクセス時間レジスタ（実施例では４）を持つことができる。実施例では、特定の制御機能を容易にするために、各々のスレーブ内に１つのアクセス時間レジスタが一定値で永久的ないし半永久的にプログラムされている。初期化シーケンスの望ましい実施例は以下に詳述する。
【００２９】
マスタ装置とスレーブ装置間で送られる全ての情報は、例えば８ビットワイドの外部バスを通して送られる。これはマイクロプロセッサのようなマスタ装置が外部バスの排他的な制御を取得し（すなわちバスマスタとなる）、要求パケット（アドレスと制御情報からなるバイトのシーケンス）をバス上の１つないし複数のスレーブ装置に送ってトランザクションを起動するプロトコルを定義することにより行われる。本発明の教示では、アドレスは１６から４０ビットないしそれ以上で構成することができる。バス上の各々のスレーブは要求パケットを解読して、スレーブがそのパケットに応答する必要があるかを見る。パケットが送られたスレーブはそこで、要求時に要求されたバス・トランザクションを行うのに必要な内部プロセスを開始する。要求マスタはまたバス・トランザクションが始まる前に一定の内部プロセスを実行する必要があることがある。指定されたアクセス時間後、スレーブは１つないし複数バイト（８ビット）のデータを返答するかバスから得られた情報を記憶して応答する。異なる時に異なる種類の応答がもたらすことができるように１度以上のアクセス時間を設けることができる。
【００３０】
要求パケットとその対応するバスアクセスは、選択した数のバスサイクルで分離して、同一ないし他のマスタが追加要求あるいは簡潔なバスアクセスをするために、分離した間に介在するバスサイクルでバスを使用できるようにする。従って複数の独立したアクセスが可能で、バスの利用を最大化して短いデータブロックを転送することができる。長いデータブロックを転送する場合は、バスアドレス、制御、アクセス時間によるオーバーヘッドはブロックの要求および転送の合計時間に比べて小さいので、重複なしに効率的にバスを使用できる。
【００３１】
＜装置アドレスのマッピング＞
本発明の他のユニークな態様は、各々の記憶装置は、従来のバックプレーン・バスコンピュータシステムのメモリ基板の全ての機能を有していて、独立したメモリサブシステムであるということである。個々の記憶装置は単一の記憶部分としたり、２以上の分離記憶部分に小区分化することができる。記憶装置には各々の分離記憶部分のメモリアドレス・レジスタを含める。故障した記憶装置（あるいは装置の小部分でも）は、メモリの小さい小部分のロスだけで「記録する」ことができ、事実上全システムの機能を維持することができる。故障した装置の記録は、２つの方法で行うことができ、両方とも本発明に適合している。
【００３２】
望ましい第１の方法では、各々の記憶装置（ないしその独立した分離部分）内のアドレスレジスタを使用して、その記憶装置が応答するバスアドレスの範囲を限定する情報を記憶する。これは従来のバックプレ−ン・バスシステムのメモリ基板で使用された従来の方式と同様である。アドレスレジスタには、通常既知のサイズのブロックを指す１つのポインタを含めるか、あるいは１つのポインタと一定ないし可変のブロックサイズ値を含めるか、あるいは一方が各々のメモリブロックの先頭を指し他方が終端（すなわち「上部」と「下部」）を指す２つのポインタを含めることができる。アドレスレジスタを適切に設定することで、一連の機能的な記憶装置ないし分散記憶部分を連続したアドレス範囲に対して応答するようにすることができ、システムアクセスを良好なメモリの連続ブロックに行うことができる（おもにバスに接続された良好な装置数により制限される）。第１の記憶装置ないし記憶部分内のメモリブロックには一定範囲のアドレスを割り当てることができるので、次の記憶装置ないし記憶部分のメモリブロックには先のブロックの最後のアドレスよりも１つ高い（ないしメモリ構造により低い）アドレスで始まるアドレスを割り当てることができる。
【００３３】
本発明で使用する望ましい装置には、その装置にはどれほどのメモリがあり、どの様な構成になっているかを初めとしてチップタイプを特定する装置タイプレジスタ情報を含める。マスタは１つないし複数の選択順序で各々のメモリセルを読取ったり書込んだりして適切なメモリテストを行い、メモリの各々のアクセス可能な分離部分の適切な機能をテストし（部分的に装置ＩＤ番号や装置形式といった情報に基づいて）、装置のアドレススペース・レジスタにアドレス値（実施例では４０ビットまで、１０１２バイト）を連続的に書込むことができる。非機能のないし損傷した記憶部分には、システムがそのメモリを使用するのを避けると解釈できる特別なアドレス値を割り当てることができる。
【００３４】
第２の方法は、不良の装置を避けるための負担をシステムマスタないしマスタに課すものである。ＣＰＵおよびＤＭＡ制御装置は一般に、仮想から物理的（バス）アドレスにマップする何らかのアドレス変換バッファ（ＴＬＢ）を有している。ＴＬＢは比較的単純なソフトウェアでプログラムして、動作するメモリだけを使用することができる（機能するメモリを記述するデータ構造は容易に生成され得る）。ＴＬＢを内蔵していないマスタに付いては（例えば画像表示生成器）、小さく単純なＲＡＭを用いて連続したアドレス範囲を機能記憶装置のアドレスにマップすることができる。
【００３５】
どちらの方法も作動し、それによりシステムは非機能装置がかなりの割合でも、残ったメモリで作動し続けることができる。本発明で構築したシステムは、現場での故障が殆どないシステムを構築する能力を含めて、既存のシステムに比べてはるかに改善された信頼性を持つことを意味している。
【００３６】
＜バス＞
本発明の好ましいバス・アーキテクチャは、１１の信号（すなわちＢｕｓＤａｔａ「０：７」、ＡｄｄｒＶａｌｉｄ、Ｃｌｋ１、Ｃｌｋ２）に加えて各々の装置に並列に接続された入力基準レベルおよび電源、接地回線を含む。信号は通常のバスサイクル中にバスの乗せられる。「信号［ｉ：ｊ］」という表記は、信号ないし回線の特定の範囲を指し、例えばＢｕｓＤａｔａ［０：７］は、ＢｕｓＤａｔａ０，ＢｕｓＤａｔａ１，・・・ＢｕｓＤａｔａ７という意味である。ＢｕｓＤａｔａ「０：７」信号に対するバス回線は、バイトワイドで多重化された、データないしアドレスないし制御のバスを形成する。ＡｄｄｒＶａｌｉｄはバスが有効なアドレス要求を保持している時を示し、スレーブに対して、バスデータをアドレスとして解読し、そしてアドレスがそのスレーブに含まれている場合は、懸案の要求に対処するように指令する。２つのクロックは共に、バス上の全ての装置に対して同期化した高速クロックを提供する。バスに乗せた信号に加えて、各々の装置を直列に接続して初期化中にシステム内の全ての装置に一意的な装置ＩＤ番号を割り当てるのに用いる他の１つの回線（ＲｅｓｅｔＩｎ  ＲｅｓｅｔＯｕｔ）がある（後に詳述）。
【００３７】
内部のロジックのゲート遅延に比べてこの外部バスの非常に早いデータ速度を可能とするため、バスサイクルを偶数ないし奇数サイクルのペアにグループ化する。バスに接続した全ての装置は、バスサイクルの同一の偶数ないし奇数ラベルを用い、偶数サイクルでオペレーションを開始することに留意されたい。これはクロッキング方式で強制的に行う。
【００３８】
＜プロトコルとバス・オペレーション＞
バスはバス・トランザクションに、比較的単純で、同期で、分割トランザクションのブロック指向プロトコルを使用する。このシステムの１つの目的は、マスタに集中した知能を保持し、それによりスレーブをできるだけ単純に保つことである（一般にマスタよりもスレーブの方が数が多いので）。スレーブの複雑性を削減するには、スレーブが指定時刻に要求に応えられるように、引き続くバスアクセス段階の前に行わなければならない内部活動を含めて装置の内部段階をスレーブが十分開始あるいは完了できるようにすべきである。このバスアクセス段階の時刻はバス上の全ての装置に知られており、各々のマスタはバスアクセスが始まる時にはバスが確実に空いているようにする責任がある。従ってスレーブはバスの仲裁については決して懸念することはない。この方法により、単一マスタシステムでの仲裁をなくし、スレーブバス・インターフェイスを単純にすることができる。
【００３９】
本発明の好ましい実施例では、バスに対してバス転送を始めるため、マスタはアドレスと制御情報を含んだ連続した一連バイトの要求パケットを送り出す。偶数バイトを含んだ要求パケットを使用するのが望ましく、また各々のパケットを偶数バスサイクルで開始するのが望ましい。
【００４０】
装置選択機能は、バスデータ回線を用いて対処する。全てのスレーブに対して、要求パケットアドレスを解読し、要求アドレスを含んでいるかを判定し、含んでいればデータブロック転送でマスタにデータを返す（読取り要求の場合）か、あるいはマスタからのデータを受け入れる（書込み要求の場合）よう指令するＡｄｄｒＶａｌｉｄを駆動する。マスタは要求パケットで装置ＩＤ番号を送信することで特定装置を選択することもできる。好ましい実施例では、特殊な装置ＩＤ番号を選ぶことによりバス上の全ての装置がパケットを解釈すべきであるということを示す。これによりマスタはメッセージを同報通信でき、例えば全ての装置の選択制御レジスタを同一値で設定することができる。
【００４１】
データブロック転送は、要求パケット制御情報で指定した時刻に、偶数サイクルで始まるようにする。装置は、バスアクセス段階が始まる前にメモリアドレス設定のような特定機能を開始していれば、装置内部段階で殆ど直ちにデータブロック転送を始める。データブロックをバス回線に乗せる時間は、スレーブのアクセス時間レジスタ内に記憶された値から選択する。読取り、書込みのためのデータのタイミングは同一とする。唯一の違いは、どの装置がバスを駆動するかである。読取りに付いてはスレーブがバスを駆動し、マスタはバスからの値を受け取り、書込みに付いてはマスタがバスを駆動し、選択されたスレーブはバスからの値を受け取る。
【００４２】
図４に示す本発明の実施例では、要求パケット２２は６バイトのデータ、すなわち４．５のアドレスバイトと１．５の制御バイトを含んでいる。各々の要求は、要求パケットの全ての６バイトのために９ビットの多重化データ／アドレス回線（ＡｄｄｒＶａｌｉｄ２３＋ＢｕｓＤａｔａ［０：７］２４）を使用する。
偶数サイクルで２３のＡｄｄｒＶａｌｉｄ＝１を設定することは（さもなくば未使用）、要求パケット（制御情報）のスタートを示している。有効要求パケットではＡｄｄｒＶａｌｉｄ２７（最後のバイト）は０でなければならない。最後のバイトでこの信号を表明することは、要求パケットを無効化することになる。これは衝突検出の仲裁ロジックに使用する（後に詳述）。バイト２５−２６は第１の３５のアドレスビット（アドレス［０：３５］）を含んでいる。最後のバイトは、ＡｄｄｒＶａｌｉｄ２７（無効化スイッチ）と、残りのアドレスビット（アドレス［３６：３９］）と、ブロックサイズ［０：３］（制御情報）２８を含んでいる。
【００４３】
第１のバイトは例えばアクセスのタイプを指定するオペレーションコードであるＡｃｃｅｓｓＴｙｐｅ［０：３］およびそのマスタＩＤ番号を含めるためパケットを送るマスタのために予約された位置のＭａｓｔｅｒ［０：３］の制御情報を含んだ２つの４ビットフィールドを含んでいる。マスタ番号１から１５が可能で、マスタ番号０は特殊システムコマンドのために予約されている。Ｍａｓｔｅｒ［０：３］＝０のパケットは、無効化特殊パケットで、そのごとくに扱われる。
【００４４】
アクセスタイプフィールドは、要求されたオペレーションが読取りあるいは書込みか、およびアクセスのタイプが例えばレジスタの制御あるいはメモリといった装置の他の部分の制御かを特定する。好ましい実施例では、ＡｃｃｅｓｓＴｙｐｅ［０］は読取り／書込みスイッチであり、これが１ならばオペレーションはスレーブから読取りを要求し（スレーブが要求されたメモリブロックを読取り、メモリ内容をバスに乗せる）、０ならばオペレーションはスレーブへの書込みを要求する（スレーブはバスからデータを読取り、それをメモリに書込む）。ＡｃｃｅｓｓＴｙｐｅ［１：３］はスレーブに対して８までの異なるアクセスタイプを提供し、ＡｃｃｅｓｓＴｙｐｅ［１：２］は、アクセス時間レジスタのＡｃｃｅｓｓＲｅｇＮに格納された応答のタイミングを示す。アクセス時間レジスタの選択は、それを登録する特定のオペレーションコードを得ることにより直接選択にあるいは事前選択アクセス時間（後記の表を参照）を有する選択したオペレーションコードに対応するスレーブを得ることにより間接的に選択することができる。残りのビットのＡｃｃｅｓｓＴｙｐｅ［３］は、要求に付いての追加情報をスレーブに送るのに用いることができる。
【００４５】
アクセスの１つの特殊なタイプとして制御レジスタアクセスがあり、被選択スレーブの被選択レジスタへのアドレス動作が必要である。本発明の好ましい実施では、ゼロに等しいＡｃｃｅｓｓＴｙｐｅ［１：３］は制御レジスタ要求を示し、パケットのアドレスフィールドは所望の制御レジスタを示している。例えば最上位の２バイトは（どのスレーブがアドレスされているかを示す）装置ＩＤ番号であり、下位３バイトはレジスタアドレスを指定することができ、またその制御レジスタにロードするデータを示したり、含めることができる。制御レジスタアドレスはアクセス時間レジスタを初期化するのに用いるので、（例えばアクセスレジスタ０（ＡｃｃｅｓｓＲｅｇ０）内の値であってできれば８サイクルの）プログラムできるあるいはハードワイヤできる固定応答時間を使用することが望ましい。制御レジスタアクセスはまた、アドレスレジスタをを含めて他のレジスタを初期化あるいは修正するのに用いることができる。
【００４６】
本発明の方式は、特にＤＲＡＭのアクセスモード制御を備えている。そのようなアクセスモードの１つは、アクセスがページモードあるいは通常のＲＡＳアクセスであるかどうかを判定する。通常モード（従来のＤＲＡＭおよび本発明で）、ＤＲＡＭ列増幅器（すなわちラッチ）は論理０および１の間の中間の値に事前チャージ（すなわちプリチャージ）されている。このプリチャージにより、ＲＡＭ内の行に対するアクセスが、入力（書込み）あるいは出力（読取り）のどちらかのアクセス要求を受け取り次第すぐに可能になり、列増幅器がデータを素早く感知できるようにする。ページモード（従来および本発明の両方で）では、ＤＲＡＭは以前の読取りないし書込みオペレーションからのデータを列増幅器ないしラッチに保持する。データにアクセスする引き続きの要求が同一行に向けられた場合は、ＤＲＡＭはデータが感知されるのを待つ必要はなく（それは既に感知されている）、このデータに対するアクセス時間は通常のアクセス時間よりもはるかに短くなる。ページモードにより一般にデータに対してはるかに早いアクセスを可能にするが、データのブロックは小さくなる（増幅器の数に等しいデータ）。しかし要求データが被選択行にない場合は、要求は通常のモードアクセスを開始する前にＲＡＭがプリチャージされるのを待たなければならないので、アクセス時間は通常のアクセス時間よりも長くなる。各々のＤＲＡＭの２つのアクセス時間レジスタには、それぞれ通常およびページモードアクセスで使用するアクセス時間を含めるようにする。
【００４７】
アクセスモードはまたＤＲＡＭが増幅器をプリチャージすべきか、あるいは増幅器の内容を後でのページモードアクセスのために保管すべきかを判定する。一般的な設定は「通常アクセス後にプリチャージ」し、「ページモードアクセス後に保管（セーブ）」であるが、「ページモードアクセス後にプリチャージ」あるいは「通常アクセス後に保管」も可能な選択可能オペレーションモードである。ＤＲＡＭはまた、選択した期間内にアクセスされない場合は、増幅器をプリチャージするために設定することもできる。
【００４８】
ページモードでは、ＤＲＡＭ増幅器内に記憶されたデータは、通常モードでデータを読取るのにかかる時間よりもはるかに少ない時間でアクセスすることができる（１０−２０ナノ秒対４０−１００ナノ秒）。このデータは長期間使用できるように保持することができる。しかしそれらの増幅器（そして従ってビット回線）がアクセス後にプリチャージされなければ、異なるメモリ語（行）への後続のアクセスは、新しい値にラッチする前に増幅器がプリチャージされなければならないので約４０−１００ナノ秒のプリチャージ時間のペナルティが課せられることになる。
【００４９】
増幅器（センスアンプ）の内容はこのように保持してキャッシュとして用いることができ、小さいデータブロックに対して早い反復的なアクセスが可能となる。ＤＲＡＭベースのページモードキャッシュは、従来のＤＲＡＭ機構を用いて従来技術で試されてきたが、コンピュータ毎にいくつかのチップが必要なので余り効率的でない。そのような従来のページモードキャッシュは多くのビットを含んでいるが（例えば３２チップ×４Ｋビット）、独立した記憶項目（エントリイ）は殆ど有していない。言い替えればある所与の時点で、増幅器はほんのわずかな異なるブロックないしメモリ「局所領域」しか保持していないことになる（上記の例では４Ｋ語の単一ブロック）。シミュレーションでは、各々のブロックのサイズに関わりなく高いヒット率（９０％以上の要求がキャッシュメモリ内に要求データを見つけられる）を達成するには、１００以上のブロックが必要なことが分かっている。例としてアナント・アガーワル他による「分析的キャッシュモデル」『コンピュータシステム上のＡＣＭトランザクション』７（２）号、ｐｐ．１８４−２１５（１９８９年５月）を参照のこと。
【００５０】
本発明のメモリの機構により、各々のＤＲＡＭは１つないし複数の（４ＭビットＤＲＡＭに対して４の）別々にアドレスされる独立的なデータブロックを保持することができる。１００のそのようなＤＲＡＭ（すなわち４００のブロックないし場）を有するパーソナルコンピュータないしワークステーションは、従来の形で構成したＤＲＡＭを用いた低く（５０−８０％）多様に変化するヒット率に比べて非常に高く、非常に反復可能なヒット率（平均９８−９９％）を達成することができる。更にページモード・キャッシュの「ミス」のために据え置かれたプリチャージに伴う時間ペナルティ故に、従来のでＤＲＡＭベースのページモード・キャッシュは一般に、全くキャッシュがない時よりもうまく作動しないことが分かっている。
【００５１】
ＤＲＡＭスレーブアクセスについて、アクセスタイプは一般に以下のようにして用いる。
0003550143.tif 000002
【００５２】
当業者には、一連の利用可能なビットは、それらのアクセスモードを制御するスイッチとして指定できることが理解されよう。例えば、
ＡｃｃｅｓｓＴｙｐｅ［２］＝ページモード／通常スイッチ
ＡｃｃｅｓｓＴｙｐｅ［３］＝プリチャージ／データ保管スイッチ
【００５３】
ブロックサイズ［０：３］は、データブロックの転送のサイズを指定する。ブロックサイズ［０］が０ならば、残りのビットはブロックサイズ（０−７）のバイナリ表示である。ブロックサイズ［０］が１ならば、残りのビットはブロックサイズを８から１０２４の２のバイナリ累乗として与える。ゼロ長のブロックは、例えばデータをもたらすことなくＤＲＡＭを再生、あるいはＤＲＡＭをページモードから通常アクセスモードに変更あるいはその逆を行う特殊コマンドと解釈することができる。
0003550143.tif 000003
当業者は他のブロックサイズコード化方式あるいは値を用いることができることを理解できよう。
【００５４】
大方の場合、スレーブはバス回線バスデータ［０：７］を通してバスからのデータを読取ることによりあるいはバスにデータを書込むことにより選択したアクセス時間に応答し、ＡｄｄｒＶａｌｉｄは論理０となる。実施例では、事実上各々のメモリアクセスには１つだけの記憶装置しか必要なく、すなわち１つのブロックを１つの記憶装置から読取ったり、書込むことになる。
【００５５】
＜リトライフォーマット＞
一部の場合にスレーブは要求、例えば読取りあるいは書込み要求に正確に応答できないことがある。そのような状況ではスレーブは時どきＮ（ｏ）ＡＣＫ（ｎｏｗｌｅｄｇｅ）ないしリトライメッセージと呼ばれるエラーメッセージを応答する。リトライメッセージには、リトライを必要とする条件に付いての情報を含めることができるが、これはスレーブおよびマスタの両方の回路に対しシステム要件を増加することになる。エラーが生じたことだけを示す単純なメッセージは余り複雑でないスレーブを見越しており、マスタはエラーの原因を理解し、補正するのに必要な措置を取ることができる。
【００５６】
例えば特定条件下で、スレーブは要求されたデータを供給できないことがある。ページモード・アクセス中、被選択ＤＲＡＭはページモード内になければならず、被要求アドレスは増幅器ないしラッチに保持されたデータのアドレスと合致しなければならない。各々のＤＲＡＭはページモードアクセス中にこの合致をチェックすることができる。合致が認められなければ、ＤＲＡＭはプリチャージを開始し、データブロックの最初のサイクル中にリトライメッセージをマスタに返答する（返答されたブロックの残りは無視される）。マスタはそこでプリチャージ時間を待ち（これは特殊レジスタのプリチャージレジスタに記憶された問題のスレーブのタイプに対応するように設定される）、次に要求を通常のＤＲＡＭアクセス（アクセスタイプ＝６または７）として再び送る。
【００５７】
本発明の望ましい形態では、スレーブがデータの読取りないし書込みを開始すると思われた時間に厳密にＡｄｄｒＶａｌｉｄを真に駆動することにより、スレーブはリトライを通知する。そのスレーブに書込むことを予期していたマスタは書込み中にＡｄｄｒＶａｌｉｄをモニタし、リトライメッセージを検出した場合には必要な補正措置を取らなければならない。図５はリトライメッセージ２８のフォーマットを例示したものである。これは読取り要求に有用で、最初の（偶数）サイクルは２３のＡｄｄｒＶａｌｉｄ＝１とＭａｓｔｅｒ［０：３］＝０からなっている。ＡｄｄｒＶａｌｉｄは通常データブロック転送に対しては０であり、マスタ０はない（１から１５だけが可能）ことに留意されたい。全てのＤＲＡＭとマスタはそのようなパケットを無効要求パケットであり、従ってリトライメッセージであると容易に理解することができる。この種のバス・トランザクションでは、上記の実施例では内容は未定義であるが、Ｍａｓｔｅｒ［０：３］とＡｄｄｒＶａｌｉｄ２３を除く全てのフィールドは情報フィールドとして使用できる。当業者はリトライメッセージを示す別の方法として、バスにデータ無効回線と信号を付け加えることがあることを理解できう。この信号はＮＡＣＫの場合に表明することができる。
【００５８】
＜バス仲裁＞
単一マスタの場合は、定義上仲裁問題は生じない。マスタは要求パケットを送り、そのパケットに応えてバスが使用中（ビジー）になる期間の記録を取る。マスタは対応するデータブロック転送が重複しないように複数要求を予定（スケジュール）することができる。
【００５９】
本発明のバス・アーキテクチャは、複数マスタ構成でも有用である。２ないしそれ以上のマスタが同一バス上にある時、各々のマスタは全ての未完了のトランザクションの記録を取らなければならず、従って各々のマスタはいつ要求パケットを送り、対応するデータブロック転送にアクセスできるかを知っている。しかし２つないしそれ以上のマスタが要求パケットをほぼ同時に送り、複数要求を検出し、何等かのバス仲裁に頼らなければならない場合が生じることがある。
【００６０】
各々のマスタがバスがいつ使用中（ビジー）になるか記録する方法は多くある。簡単な方法は、各々のマスタが、例えば（一方がバスが使用中になる将来のもっとも近い点を示し、他方がバスがフリーになる将来のもっとも近い点、すなわち最新の未完了のデータブロック転送の終わりを示す）２つのポインタを維持することで、バスビジー（使用中）データ構成を維持することである。この情報を使用することで、各々のマスタは、他のデータブロック転送で使用中になる前に要求パケット（上述したプロトコル下で）を送るに十分な時間があるか、そしていつその時間があるかを判定でき、対応するデータブロック転送が懸案のバス・トランザクションを妨害するかどうかを判定できる。従って各々のマスタは全ての要求パケットを読取り、そのバスビジー（使用中）データ構造を更新して何時バスがフリーになるかについての情報を維持しなければならない。
【００６１】
２以上のマスタがバス上にあると、マスタはしばしば同一バスサイクル中に独立した要求パケットを送ることがある。それらの複数の要求は、そのような各々のマスタが異なる情報でバスを同時に駆動すると衝突し、無秩序な要求情報が生じ、所望のデータブロック転送は行われない。本発明の望ましい形態では、論理１をバスデータないしＡｄｄｒＶａｌｉｄ回線に書込もうとしている、バス上の各装置は、システムの高論理値よりも大きな電圧あるいは等しい電圧を十分維持できる電流で、その回線を駆動する。しかし、装置は論理０を持つ回線は駆動しない。すなわちそれらの回線は単に低論理値に対応する電圧に維持される。各々のマスタは、少なくとも一部、あるいは全てのバスデータおよびＡｄｄｒＶａｌｉｄ回線上の電圧をテストするので、当該マスタは所与のバスサイクルでは駆動しないが、他のマスタが駆動した回線上では予期レベルが「０」であるのに論理「１」を検出できる。
【００６２】
衝突を検出する他の方法は、衝突通知用に１つないし複数のバス回線を選択することである。要求を送っている各々のマスタはその回線を駆動し、１つ以上のマスタによる要求を示す通常以上の駆動電流（あるいは「＞１」の論理値）についてモニタする。当業者には、これはＢｕｓＤａｔａとＡｄｄｒＶａｌｉｄ回線を含むプロトコルにより実施できる、あるいは追加バス回線を用いて実施できることが理解されよう。
【００６３】
本発明の好ましい形態では、各々のマスタは、自己が駆動しない回線をモニタして別のマスタがそれらの回線を駆動しているのかどうかを見ることにより衝突を検出する。図４では要求パケットの最初のバイトにはバスを使用しようとしている各々のマスタの番号が含まれている（Ｍａｓｔｅｒ［０：３］）。２つのマスタが時間的に同一点から始まってパケット要求を送る場合、マスタ番号は少なくともそれらのマスタと共に論理「ＯＲ操作」をされ、従ってマスタの１つないし両方はバス上のデータをモニタし、自己が送ったものと比較することにより、衝突を検出することができる。例えばマスタ番号２（００１０）と５（０１０１）による要求が衝突する場合、バスは、Ｍａｓｔｅｒ［０：３］＝７（００１０＋０１０１＝０１１１）の値で駆動される。マスタ番号５は信号Ｍａｓｔｅｒ［２］＝１であることを検出し、マスタ２はＭａｓｔｅｒ［１］およびＭａｓｔｅｒ［３］＝１であることを検出し、両マスタは衝突の発生を知ることになる。別の例はマスタ２と１１で、それに対しバスはＭａｓｔｅｒ［０：３］＝１１（００１０＋１０１１＝１０１１）の値で駆動されるが、マスタ１１は容易にこの衝突を検出できないが、マスタ２はできる。衝突が検出されれば、衝突を検出している各々のマスタは要求パケット２２のバイト５のＡｄｄｒＶａｌｉｄ２７の値を１に駆動するが、これは上記の第２の例のマスタ１１を含めて全てのマスタにて検出され、下記のバス仲裁サイクルを強制する。
【００６４】
別の衝突条件は、マスタＡがサイクル０で要求パケットを送り、マスタＢが１番目の要求パケットのサイクル２から始まる要求パケットを送ろうとし、それにより１番目の要求パケットと重複する場合に生じることがある。これはバスは高速度で作動し、従って２番目に始動するマスタ内のロジックが、１番目のマスタによりサイクル０で開始された要求を十分早く検出して、それ自身の要求を遅らせて素早く反応できないのでしばしば生じる。マスタＢは最終的に要求パケットを送ろうとすべきでなかったことに気づくが（そしてその結果マスタＡが送ろうとしていたアドレスをほぼ確実に破壊するが）、上記の同時衝突のように、第１の要求パケット２７のバイト５中にＡｄｄｒＶａｌｉｄ上の１を駆動して仲裁を強制する。望ましい実施例でのロジックは十分早く、マスタは他のマスタによる要求パケットを第１の要求パケットのサイクル３までに検出するので、いずれのマスタもサイクル２以降は衝突する可能性のある要求パケットを送信しそうにない。
【００６５】
スレーブ装置は衝突を直接検出する必要はないが、パケットが有効であることを確認するため最後のバイト（バイト５）が読取られるまで待って、回復不可能なことをしないようにしなければならない。０（リトライ信号）に等しいＭａｓｔｅｒ［０：３］を有する要求パケットは無視され、衝突を生じさせない。そのようなパケットでは引き続きのバイトも無視される。
【００６６】
衝突後に仲裁を始めるには、放棄した要求パケット後に事前選択数のサイクル（好ましい実施例では４サイクル）を待ち、そして次のフリーなサイクルをバスの仲裁に使用する（好ましい実施例では次に利用可能な偶数サイクルを使用する）。衝突しているマスタそれぞれは他の全ての衝突マスタに、それが要求パケットを送ろうとしており、各々の衝突マスタには優先順位が割り当てられており、各々のマスタはその要求をその優先順位で行うことができるということを通知する。
【００６７】
図６はこの仲裁を実施する１つの好ましい方法を例示したものである。各々の衝突マスタは要求パケットを送るというその意図を、その割り当てられたマスタ番号（本例では１−１５）に対応した単一バスサイクル中に単一バスデータ回線を駆動することにより通知する。２バイト仲裁サイクル２９中、バイト０がマスタ１−７からの要求１−７にそれぞれ割り当てられており（ビット０は未使用）、バイト１がマスタ８−１５からの要求８−１５に割り当てられる。少なくとも１つの装置およびそれぞれの衝突マスタは、仲裁サイクル中にバス上のその値を読取り、どのマスタがバスの使用を望んでいるかを判定し、記憶する。当業者は、システムがマスタよりも多くのバス回線を含んでいるならば、仲裁要求に対して単一バイトを割り当てることができることを理解できよう。
【００６８】
固定優先方式（マスタ番号を用いて、最初に最低番号を選択して）を次に用いて優先順位を決め、少なくとも１つの装置により維持されているバス仲裁待ち行列（キュー）で要求を順番に配列する。それらの要求はバスビジー（使用中）データ構造各々のマスタにより待機（キューイング）をさせられ、バス仲裁待ち行列がクリアされるまでは要求は許されない。当業者は、各々のマスタの物理的位置にしたがって優先順位を割り当てることを始め、他の優先方式を使用できることを理解できよう。
【００６９】
＜システム構成／リセット＞
本発明のバスをベースとするシステムでは、バス上の各々の装置に、システムにより望まれるあるいは必要な（パワーアップ後ないしその他の）条件下で、一意的な装置識別子（装置ＩＤ）を与えるメカニズムを設ける。そこでマスタはこの装置ＩＤを用いて特定装置にアクセス可能であり、特に制御レジスタおよびアドレスレジスタを含む特定装置のレジスタを設定、修正することができる。実施例では、１つのマスタが、全システム構成過程を行うように指定される。マスタはバスシステムに接続された各々の装置に対しての一連の一意的な装置ＩＤ番号を与える。実施例では、バスに接続された各々の装置は、例えばＣＰＵ、４Ｍビットメモリ、６４Ｍビットメモリないしディスク制御装置といった装置の種類を特定する特殊な装置タイプレジスタを内蔵している。構成マスタは、各々の装置をチェックし、装置タイプを判定し、アクセス時間レジスタを含む適切な制御レジスタを設定し、各々の記憶装置をチェックして、全ての適切なメモリアドレス・レジスタを設定する。
【００７０】
一意的な装置ＩＤ番号を設定する１つの手段は、各々の装置に装置ＩＤ番号を順番に選択させ、その値を内部の装置ＩＤレジスタに記憶させることである。例えばマスタは一連の装置の各々にシフトレジスタを通して順番の装置ＩＤ番号を手渡すか、装置から装置へトークンを手渡し、それによりそのトークンを有する装置が他の回線から装置ＩＤ情報を読取るようにすることができる。実施例では、装置ＩＤ番号は、例えばバスに沿った順番といった物理的関係にしたがって装置に割り当てる。
【００７１】
本発明の実施例では、装置ＩＤ設定は、各々の装置上の１対のピンのリセット入力（ＲｅｓｅｔＩｎ）とリセット出力（ＲｅｓｅｔＯｕｔ）を用いて行う。それらのピンは通常の論理信号を扱い、装置ＩＤ構成（コンフィギュレーション）中にだけ使用される。クロックの各々の立ち上がりで、各々の装置はリセット入力（入力）を４段階のリセットシフトレジスタに複製する。リセットシフトレジスタの出力はリセット出力に接続され、それはまた、次に順番に接続された装置のリセット入力に接続される。バス上の実質的に全ての装置はそれにより、共にデージーチェーン化される。例えば第１のリセット信号は、ある装置でのリセット入力が論理１の間ないしリセットシフトレジスタの選択ビットがゼロから非ゼロになる時にその装置に、例えば全ての内部レジスタをクリアし全ての状態機械をリセットすることでハードリセットさせる。外部バス上の変更可能な値と組み合わされて（リセット入力の立ち下がりである）第２のリセット信号は、その装置に外部バスの内容を内部装置ＩＤレジスタ（Ｄｅｖｉｃｅ［０：７］）にラッチさせる。
【００７２】
あるバス上の全ての装置をリセットするには、マスタは第１の装置のリセット入力回線を「１」に十分な時間に設定して、バス上の全ての装置がリセットされることを確実にする（４サイクルかける装置数の時間に設定−望ましいバス構成上での装置の最大数は２５６（８ビット）であり、従って１０２４サイクルが常に全装置をリセットするのに十分な時間である）。次にリセット入力を「０」に低下させ、ＢｕｓＤａｔａ回線に第１のそして後続の装置ＩＤ番号が駆動され、４サイクルパルス毎に変化する。後続の装置はそれらのＩＤ番号を、リセット入力の立ち下がりがデージーチェーン装置のシフトレジスタを通して伝ぱんすると、対応する装置ＩＤレジスタに設定する。図１４には、マスタが第１の装置ＩＤをバスデータ回線バスデータ［０：３］に駆動する時に低くなる第１の装置のリセット入力を示している。第１の装置は次にその第１の装置ＩＤをラッチする。４クロックサイクル後、マスタはバスデータ［０：３］を次の装置ＩＤに変更し、第１の装置のリセット出力は低くなり、それは次のデージーチェーン装置のリセット入力を低くし、次の装置が次の装置ＩＤ番号をバスデータ［０：３］からラッチできるようにする。実施例では、１つのマスタが装置ＩＤ０を割り当てられ、リセット入力回線の制御と、後続の装置ＩＤ番号を適切な時にバス駆動することとはそのマスタの責任となる。実施例では、各々の装置は、装置ＩＤ番号をバスデータ［０：３］からラッチする前においてリセット入力が低くなった後２クロックサイクルだけ待機する。
【００７３】
当業者は、各々の装置にバスからの複数バイトを読取り、値を装置ＩＤレジスタにラッチさせることにより長いＩＤ番号を装置に分配できることを理解できよう。当業者はまた、独自的な装置に装置ＩＤ番号を獲得する別の方法があることを理解しよう。例えば一連の連続番号をリセット入力回線に沿ってクロッキングし、特定の時に各々の装置に指示して現在リセットシフトレジスタ値を装置ＩＤレジスタにラッチすることができる。
【００７４】
構成マスタは、各々のスレーブ内の各々のアクセス時間レジスタ内のアクセス時間を、スレーブが実際の所望のメモリアクセスを行うことができるように十分に長い期間に選択、設定する。例えば通常のＤＲＡＭアクセスに付いては、この時間は行アドレスストローブ（ＲＡＳ）アクセス時間よりも長くなければならない。この条件を満たさなければ、スレーブは正確なデータを伝達することはできない。スレーブのアクセス時間レジスタ内に記憶される値は、要求に応えてバスを使用する前にスレーブ装置が待つべきバスサイクル数の半分とする。それにより「１」のアクセス時間値は、要求パケットの最後のバイトが受信された後少なくとも２サイクルまでは、スレーブはバスにアクセスすべきでないことを示す。アクセスレジスタ０の値は、制御レジスタへのアクセスを容易にするため８（サイクル）に固定するようにする。
【００７５】
本発明のバス・アーキテクチャでは２以上のマスタ装置を含めることができる。リセットないし初期化シーケンスにも、バス上に複数のマスタがあるのかの判定を含め、そうであれば各々に一意的なマスタＩＤ番号を割り当てるようにする。当業者は、これを行う方法は多くあることを理解できよう。例えばマスタは各々の装置をポーリングして、特殊レジスタを読取ることにより例えばそれがどのような装置かを判定し、そして各々のマスタ装置に対して次に得られるマスタＩＤ番号を特殊レジスタに書込むことができる。
【００７６】
＜ＥＣＣ＞
従来技術でよく知られているエラー検出・補正（［ＥＣＣ］）方法をこのシステムで実施することができる。ＥＣＣ情報は一般にデータのブロックが最初にメモリに書込まれる時にそのデータのブロックに対して計算される。データブロックは通常規定バイナリサイズ（例：２５６ビット）を有しており、ＥＣＣ情報はかなり少ないビットしか使用しない。従来方式の各々のバイナリデータブロックは一般にＥＣＣビットを加えて記憶され、規定バイナリ・パワーでないブロックサイズが生じるという潜在的な問題が生じる。
【００７７】
本発明の実施例では、ＥＣＣ情報は対応するデータから別々に記憶され、それは次に規定バイナリサイズを有するブロックに記憶される。ＥＣＣ情報および対応するデータは例えば別々のＤＲＡＭ装置に記憶することができる。データは単一の要求パケットを用いてＥＣＣなしに読取ることができるが、エラー補正データの書込みないし読取りには、１つのデータ用、そしてもう１つは対応するＥＣＣ情報用に２つの要求パケットを必要とする。ＥＣＣ情報は常に常備的に記憶されるとは限らず、場合によってはＥＣＣ情報を要求パケットを送らずにあるいはバスデータブロック転送なしに得ることができる。
【００７８】
実施例では、標準データブロックサイズをＥＣＣで使用するために選択することができ、ＥＣＣ方法は、対応するＥＣＣブロック内の情報の必要なビット数を判定する。ＥＣＣ情報を含むＲＡＭをプログラムして、（１）  通常ＲＡＭ（データを含む）のアクセス時間に加えられた標準データブロックにアクセスする時間から要求パケット（６バイト）を送る時間を引いたものに等しいアクセス時間、ないし、（２）  通常ＲＡＭのアクセス時間から標準ＥＣＣブロックにアクセスする時間を引き、要求パケットを送る時間を引いたものに等しいアクセス時間を記憶することができる。データブロックと対応するＥＣＣブロックを読取るため、マスタは単にＥＣＣブロックに対する要求のすぐ後にそのデータに対する要求を発する。ＥＣＣ・ＲＡＭは選択されたアクセス時間を待ち、そのデータを（上記の（１）  の場合）データＲＡＭがデータブロックを追い出した直後、バスに乗せる。当業者は、上記の（２  ）の場合で説明したアクセス時間は、データがバス回線に乗せられる前にＥＣＣを乗せるのに使用することができることを理解し、データ書込みは読取りに付いて説明した方法と相似的に行うことができることを理解できよう。またそれらの対になったＥＣＣ要求に適合させるため、バスビジー（使用中）構造および要求パケット仲裁方法で行わなければならない調整を理解できよう。
【００７９】
このシステムはきわめて柔軟性があるので、システム設計者は、本発明の記憶装置を用いてデータブロックのサイズおよびＥＣＣビット数を選択することができる。バス上のデータストリームは、様々な形で解釈できることに留意する。例えばシーケンスは２ｍ  ＥＣＣバイトが続く２ｎ  データバイト（あるいはその逆）、あるいはシーケンスは８データバイトプラス１ＥＣＣバイトの２ｋ  反復とすることもできる。ディレクトリ・ベースのキャッシュコヒーレンス方式により用いられる情報のような他の情報もこのようにして管理することができる。例えばアナント・アガーワル他による「キャッシュ一致性用の基準化可能ディレクトリ方式」第１５回国際コンピュータアーキテクチャ・シンポジウム、１９８８年ｐｐ．２８０−２８９を参照のこと。当業者は、本発明の教示内にあるＥＣＣを実施する別の方法を理解できよう。
【００８０】
＜低電源３−Ｄパッケージ化＞
本発明の他の主要な利点は、記憶システムの電力消費量を大幅に削減することである。従来のＤＲＡＭで消費される電力のほぼ全ては、ロー（行）アクセスを行う際に消失する。単一のＲＡＭで単一のローアクセスを使用してブロック要求に対する全てのビットを供給することで（従来の記憶システムの複数ＲＡＭの各々内のローアクセスと比較して）、ビット当たりの電力は非常に小さくすることができる。本発明を用いた記憶装置により消失する電力はかなり削減されるので、従来の設計よりも装置を近づけて配置できる可能性がある。
【００８１】
本発明のバス・アーキテクチャにより、革新的な３−Ｄパッケージ化技術が可能になる。狭い多重化をした（時間的共用）バスを用いることで、任意の大きな記憶装置に対するピン数を２０ピンの水準に非常に小さく保つことができる。更に、このピン数はＤＲＡＭ密度の１世代から次の世代に一定に保つことができる。電力の消失が低いことで、ピンのピッチ（ＩＣピンの間のスペース）を狭くして各々のパッケージを小さくすることができる。２０ミルほどの低いピン・ピッチを支持する現在の表面取り付け技術で、全ての装置外の接続は記憶装置の１つの端部で実施することができる。本発明に有用な半導体ダイは、そのダイの１端部に沿った接続ないしパッドを有し、配線することができ、さもなくば同様の長さのワイヤでパッケージ・ピンに接続される。このジオメトリにより、場合により４ｍｍ以下の有効リード長の非常に短いリード線が可能になる。更に、本発明はバス化した相互接続のみを使用し、各々の装置上の各々のパッドはそれぞれ他の装置の対応するパッドにバスにより接続される。
【００８２】
少ないピン数と端部接続バスを使用することで、単純な３−Ｄパッケージが可能になり、それにより装置をスタックし、バスを、スタックした１つの端部に沿って接続することができる。全ての信号がバスに乗せられるという事実は、単純な３−Ｄ構造を実施するために重要である。これなしには「バックプレーン」の複雑性は、現在の技術で費用効果的にするには困難すぎる。本発明のスタック内の個々の装置は、全記憶システムの電力の消失が低いので非常に厳密にパックすることができ、装置を突き合わせてあるいは上下にスタックすることができる。従来のプラスチック射出成形の小さい外形の（ＳＯ）パッケージは約２．５ｍｍ（１００ミル）のピッチで使用することができるが、最終的な限度は装置ダイの厚さで、現在のウエハ技術を用いて０．２−０．５ｍｍの小さいサイズ水準となる。
【００８３】
＜バスの電気的記述＞
非常に電力消費が少なく物理的に密着してパックした装置を用いることで、バスを非常に短くでき、それにより一方で短い伝播時間と高いデータ速度が可能になる。本発明の実施例のバスは、５００ＭＨｚ（２ナノ秒サイクル）のデータ速度まで作動できる１組の抵抗終端で制御されたインピーダンス伝送回路からなる。伝送回線の特性は、バスに取り付けられたＤＲＡＭ（ないし他のスレーブ）に起因する負荷により強く影響される。それらの装置は、回線のインピーダンスを低下させ、伝送速度を減少させる集中容量を回線に加える。負荷された環境では、バス・インピーダンスは２５オームの水準にあり、伝播速度は約ｃ／４（ｃ＝光の速度）ないし７・５ｃｍ／ｎｓとなることが多い。２ｎｓデータ速度で作動するには、バス上での通過時間は、１ｎｓ以下とし、１ｎｓを入力受信器（以下に説明）の設定と保持時間およびクロックのずれ（スキュー）のために残すようにすべきである。従ってバス回線は、最大性能を得るために約８ｃｍ以下の非常に短いものとすべきである。性能の低いシステムははるかに長い回線、例えば４ｎｓバスは２４ｃｍ回線（３ｎｓ通過時間、１ｎｓ設定、保持時間）を持つことができる。
【００８４】
実施例では、バスは、前述（段落００６１）の通り電流で駆動され、電流駆動器（励振器）を使用する。各々の出力は約５００ｍＶないしそれ以上の出力スイングをもたらす５０ｍＡをシンクできなければならない。本発明の実施例では、バスはアクティブローである。非表明状態（高値）は、論理ゼロと見なし、従って表明値（低状態）は論理１となる。当業者には、本発明の方法は、電圧に対して反対の論理関係を用いても実施できることが理解されよう。非表明状態の値は、終端抵抗の電圧により設定され、電力の消失を少なくするためにできるだけ少なくしながらも出力が電流源として作動できるように十分高くすべきである。それらの制約により好ましい実施では接地上で約２Ｖの終端電圧をもたらす。電流源駆動器により、出力電圧はバスを駆動（励振）している電源の和に比例する。
【００８５】
図７では、２つの装置がバスを同時に駆動して安定した状態にはないが、ワイヤ上の伝播遅延故に、装置Ｂ４２（既にバス上で論理１を表明）によりバスが依然駆動されている間に、装置Ａ４１がそのバス部分４４の駆動を開始できるという状態が生じることがある。電流源駆動器を用いたシステムでは、Ｂ４２がバスを（時間４６前に）駆動している時、点４４と点４５での値は論理１である。Ｂ４２が、Ａ４１のスイッチオンの時点４６でスイッチオフすると、Ａ４１による追加駆動により、Ａ４１の出力点４４での電圧は一時的に通常値以下に低下する。電圧はその通常値に、Ｂ４２のオフの効果が検出される時点４７で戻る。時点４５での電圧は、装置Ｂ４２がオフになると論理０となり、装置Ａ４１のオンの効果が検出される時点４７で低下する。装置Ａ４１からの電流により駆動された論理１はバス上の以前の値に関係なく伝ぱんされるので、バス上の値は、１回のフライト（ｔｆ）  遅延（すなわち信号がバスの一端から他端まで伝播するのにかかる時間）後に確実に整定される。電圧励振を使用した場合（ＥＣＬ配線ＯＲ化（ワイヤードオア）でのように）、バス上の論理１（先に駆動された装置Ｂ４２に由来）は、装置Ａ４１により発せられ且つシステムの最も離れた部分（例：装置４３）により検出される遷移を、装置Ｂ４２からのターンオフ波形が装置Ａ４１に到着してから１回のフライト遅延後まで阻止し、フライト遅延の時間の２倍と言う最悪ケースの整定時間をもたらす。
【００８６】
＜クロッキング＞
伝播遅延によりエラーをもたらすことなく正確に高速バスをクロックすることは、各々の装置に２つのバスクロック信号をモニタさせ、真のシステムクロックとなる装置クロック（内部クロックとも言う）を内的に導出することで行うことができる。バスクロック情報を１つないし２つの回線に送って、各々のバス接続された装置が他の全ての装置クロックに関してゼロ・スキューの内部装置クロックを生成するメカニズムを設けることができる。図８の好ましい実施例では、バスの一端のバスクロック生成器５０は例えば回線５３上で左から右にバスの遠端までバスに沿って１方向に先行バスクロック信号を伝播する。次に同一クロック信号が第２の回線５４への直接接続を通して送られ、右から左に伝播して遠端から出発点までバスに沿って後着バスクロック信号として戻る。単一バスクロック回線もバスの遠端で終端処理をされないまま残っている場合はそれを使用することができ、先行バスクロック信号は後着バスクロック信号として同一回線に沿って反映することができる。
【００８７】
図８ｂは、各々の装置５１，５２が異なる時点（ワイヤに沿った伝播遅延故に）で受信する２つのバスクロック信号は、バスに沿って、２つのバスクロックの間に一定した中間時点を持つことを例示したものである。各々の装置５１，５２では、クロック１（５３）の立ち上がり５５の後にはクロック２（５４）の立ち上がり５６が来る。同様に、クロック１（５３）の立ち下がり５７の後にはクロック２（５４）の立ち下がり５８が来る。この波形関係は、バス上の他の全ての装置で見られる。クロック生成器に近い装置では、クロックパルスがバスを通過し、回線５４に沿って戻るのに長い時間がかかる故に、生成器から遠い装置に比べてクロック１とクロック２の間の分離が大きいが、対応する立ち上がりないし立ち下がりの間の中間時点５９，６０はいずれの装置でも、バスの遠端とその装置の間の各々のクロック回線の長さは等しいので固定されている。各々の装置は２つのバスクロックを抽出し、その２つの中間点でそれ自身の装置クロック（内部クロック）を生成しなければならない。
【００８８】
クロック分配問題は、２で割ったバスサイクルデータ速度に等しいバスクロックと装置クロック速度（すなわちバスクロック周期はバスサイクル周期の２倍）を用いることにより更に削減することができる。従って５００ＭＨｚバスは２５０ＭＨｚクロック速度を用いるようにする。周波数のこの削減により、２つの利点がもたらされる。第１にバス上の全ての信号に同一の最悪ケースのデータ速度をもたせることになる（５００ＭＨｚバス上のデータは、２ｎｓ毎にしか変更できない）。第２にバスサイクルデータ速度の半分の刻時により、例えば偶数サイクルを内部装置クロックが０の時のものと定義し、奇数サイクルを内部装置クロックが１の時のものと定義することにより、奇数および偶数バスサイクルのラベル付けを必要ないものとできる。
【００８９】
＜多重バス＞
上記のバス長の限界により、単一バス上に配置できる装置の合計数が制約される。装置間に２．５ｍｍのスペースを用いることで、単一の８ｃｍバスは約３２の装置を保持する。当業者はバス上の全体的なデータ速度は適切であるが、記憶ないし処理にははるかに多くの装置（３２より更に多くの）を必要とする本発明の特定アプリケーションを理解できよう。大きなシステムは、本発明の教示を用いて１つないし複数のメモリ・サブシステム（一般に３２ないしバス設計により可能な最大近くの、トランシーバ装置に接続された２つないしそれ以上の装置からなる１次バスユニット）を使用することで容易に構築することができる。
【００９０】
図９では、各々の１次バスユニットは時どきメモリ・ステックと呼ばれる単一回路基板６６に取り付けることができる。各々のトランシーバ装置１９はまた、上記で長く説明した１次バス１８と電気的および他の側面で類似ないし同一のトランシーバ・バス６５に接続している。好ましい実施例では、全てのマスタはトランシーバ・バスにあるのでマスタ間ではトランシーバ遅延はなく、全ての記憶装置は全てのメモリアクセスが等価のトランシーバ遅延を経験するように１次バスユニット上にあるが、当業者はマスタが１つ以上のバスユニット上にあり記憶装置がトランシーバ・バス並びに１次バスユニット上にあるシステムを実施する方法を理解できよう。一般に、記憶装置に付いて述べた本発明の各々の教示は、取り付けた１次バスユニット上のトランシーバ装置と１つないし複数の記憶装置を用いて実施することができる。ディスク制御装置、映像制御装置、入出力装置を含む総称的に周辺装置と呼ばれる他の装置も所望によりトランシーバ・バスあるいは１次バスユニットに取り付けることができる。当業者は特定のシステム設計でトランシーバ・バスで必要な単一の１次バスユニットないし複数１次バスユニットを使用する方法を理解できよう。
【００９１】
トランシーバは機能的に非常に単純である。それらはトランシーバ・バス上の要求パケットを検出し、それらをその１次バスユニットに送信する。要求パケットがトランシーバの１次バスユニット上の装置に書込みを要求する場合は、そのトランシーバはアクセス時間とブロックサイズの記録を取り、トランシーバ・バスからの全てのデータをその時間中に１次バスユニットに送る。トランシーバはまたその１次バスユニットを監視し、そこに出て来るデータをトランシーバ・バスに送る。バスが高速度であるということは、トランシーバをパイプライン化する必要があるということであり、データをトランシーバをを通してどちらかの方向に通過させるのに１ないし２サイクルの追加遅延が必要となる。トランシーバ・バス上のマスタに記憶されたアクセス時間を増加してトランシーバ遅延を考慮する必要があるが、１次バスユニット上のスレーブに記憶されたアクセス時間は変更すべきではない。
【００９２】
当業者にはより高度なトランシーバで１次バスユニットとの送信を制御できることが理解されよう。追加制御回線ＴｒｎｃｖｒＲＷは、その回線をＡｄｄｒＶａｌｉｄ回線と共に使用してトランシーバ・バス上の全ての装置に対してデータ回線上の情報は  １）要求パケット、２）スレーブへの有効データ、３）スレーブからの有効データ、ないし４）無効データ（ないし遊びバス）であることを示せるように、トランシーバ・バス上の全ての装置に対してバス化することができる。この追加制御回線を用いることで、いつデータをその１次バスからトランシーバ・バスに送る必要があるかトランシーバが記録を取る必要はなくなり、制御信号が上記の  ２）  の条件を示す時はいつでも全てのトランシーバは全てのデータをその１次バスからトランシーババスに送る。本発明の好ましい実施例では、ＡｄｄｒＶａｌｉｄとＴｒｎｃｖｒＲＷの両方とも低い場合は、バス活動はなくトランシーバは遊び状態に留まる。要求パケットを送っている制御装置はＡｄｄｒＶａｌｉｄを高く駆動し、トランシーバ・バス上の全ての装置に各々のトランシーバがその１次バスユニットに送るべき要求パケットが送信されているということを示す。スレーブに書込もうとしている各々の制御装置は、ＡｄｄｒＶａｌｉｄとＴｒｎｃｖｒＲＷの両方を高く駆動して、スレーブに対する有効なデータがデータ回線上にあることを示す。各々のトランシーバ装置はそこでトランシーバ・バス回線からの全てのデータを各々の１次バスユニットに送信する。スレーブからの情報を受け取ることを予期している制御装置もＴｒｎｃｖｒＲＷ回線を高く駆動するがＡｄｄｒＶａｌｉｄは駆動すべきではなく、それにより各々のトランシーバにスレーブからその１次ローカル・バスに来るデータをトランシーバ・バスに送信するように示す。更に高度なトランシーバはその１次バスユニットに宛てられたないしそこから来る信号を理解し、要求時にのみ信号を送信する。
【００９３】
図９はトランシーバの物理的な取り付け例を示したものである。この物理的な構造の１つの重要な特徴は、各々のトランシーバ１９のバスを１次バスユニット６６上のＤＲＡＭないし他の装置１５，１６，１７のオリジナルのバスと統合することである。トランシーバ１９は２つの側面にピンを有しており、第１の組みのピンを１次バス１８に接続して１次バスユニット上に平らに取り付けられている。第２の組みのトランシーバピン２０は第１の組みのピンとは直角で、ＤＲＡＭが１次バスユニットに取り付けられるのと殆ど同様にトランシーバ１９がトランシーバ・バス６５に取り付けられる方向を向いている。トランシーバ・バスは一般に平坦にすることができ、異なる面で各々の１次バスユニットの面に対して直角とする。トランシーバ・バスはまた一般に１次バスユニットに垂直でかつ接線方向に取り付けて円状とすることができる。
【００９４】
この２レベル方式を使用することで、５００以上のスレーブ（各々の３２ＤＲＡＭの１６バス）を含むシステムを容易に構築することができる。当業者は上記の装置ＩＤ方式を変更して、例えば長い装置ＩＤないし追加レジスタを使用して装置ＩＤの一部を保持することで２５６装置以上に対応することができることを理解できよう。この方式を更に３次元に拡張して、トランシーバ・バスユニットを並列および各々の上に配列し、対応する信号回線を適切なトランシーバを通してバスに乗せることにより複数トランシーバ・バスを接続し、２次トランシーバ・バスを作ることができる。そのような２次トランシーバ・バスを使用すると、何千ものスレーブ装置を単一のバスに効果的に接続することができる。
【００９５】
＜＜装置インターフェイス＞＞
高速バスへの装置インターフェイスは、３つの主要部分に分割することができる。第１の部分は電気的インターフェイスである。この部分には入力受信器、バス駆動器、クロック生成回路が含まれる。第２の部分にはアドレス比較回路とタイミングレジスタが含まれる。この部分は入力要求パケットを受け取り、要求がその装置に対するものであるかどうかを判定し、そうであれば内部アクセスを開始し、正確な時にピンにデータを送る。最後に特にＤＲＡＭなどの記憶装置用の部分は、ＤＲＡＭコラム（列）アクセス経路である。この部分は従来のＤＲＡＭにより与えられる帯域幅よりも大きな帯域幅をＤＲＡＭ増幅器に与えまた取り出す必要がある。電気インターフェイスとＤＲＡＭコラムアクセス経路の実現は、以下の節でより詳細に説明する。当業者は、本発明を実施するための従来のアドレス比較回路と従来のレジスタ回路を修正する方法を理解できよう。
【００９６】
＜電気インターフェイス−入出力回路＞
図１０にアドレス／データ／制御回線のための望ましい入出力回路のブロック図を示す。この回路は特にＤＲＡＭ装置で使用するのに適しているが、当業者には本発明のバスに接続された他の装置で使用するために使用あるいは変更することができよう。これは１組の入力受信器７１，７２と、入出力回線６９とパッド７５に接続された出力駆動器７６と、内部クロック７３および内部クロックの相補信号７４を含む。クロッキングされた入力受信器は、バスの同期的な性質を利用する。装置入力受信器の性能要件を更に緩和するため、各々の装置ピンおよび従って各々のバス回線は、一方で偶数サイクル入力を抽出し、他方で奇数サイクル入力を抽出するため、２つのクロッキングされた受信器に接続される。このように入力７０をピンでデマルチプレクサ操作（非多重化）をすることにより、各々のクロッキングされたアンプ（入力受信器）には完全な２ｎｓサイクルが与えられ、バス低電圧振れ信号を全値ＣＭＯＳ論理信号に増幅する。当業者は本発明の教示内で追加のクロッキングされた入力受信器を使用できることを理解できよう。例えば４つの入力受信器を各々の装置ピンに接続して修正内部装置クロックによりクロッキングして順次ビットをバスから内部装置回路に転送でき、更に早い外部バス速度あるいは更に長い整定時間によりバス低電圧振れ信号を全値ＣＭＯＳ論理信号へ増幅することができる。
【００９７】
出力駆動器は非常に単純で、単一のＮＭＯＳプルダウン・トランジスタ７６からなる。このトランジスタは、最悪ケースの条件下で更に、バスにより求められる５０ｍＡをシンクすることができる大きさとなっている。０．８ミクロンＣＭＯＳ技術に付いては、トランジスタは約２００ミクロン長である必要がある。全体的なバス性能は、出力トランジスタ電流を制御するフィードバック手法を用いて装置を流れる電流が全ての操作条件下でほぼ５０ｍＡであるようにすることで改善することができる（ただしこれは適切なバス操作に絶対的に必要ではない）。電流を制御するためフィードバック手法を用いるため当業者には周知の多くの方法の１つの例が、ハンス・シューマッハ他による「ＣＭＯＳナノ秒以下の真のＥＣＬ出力バッファ」Ｊ．ソリッドステート回路、２５巻（１），ｐｐ．１５０−１５４（１９９０年２月）に説明されている。この電流の制御により性能は向上し、電力の消失を削減できる。５００ＭＨｚで作動できるこの出力駆動器はまた、他の内部チップ回路に接続された２つないしそれ以上の（できれば４）の入力を有する適切なマルチプレクサにより制御される（これらは全て、周知の従来技術にしたがって設計することができる）。
【００９８】
全てのスレーブの入力受信器は全てのサイクル中に作動して、バス上の信号が有効な要求パケットであるかどうかを判定できなければならない。この要件は、入力回路に対するいくつかの制約につながる。小さな取得および分解遅延が必要なことに加えて、回路は微小ないし皆無のＤＣ電力と微小のＡＣ電力を取得し、非常に小さな電流を入力ないし基準回線に注入し直さなければならない。図１１に示す標準クロッキングＤＲＡＭ増幅器は、定入力電流の必要性を除いてこれらの要件を全て満たす。この増幅器が検出から抽出に行くとき、図１１の内部ノード８３，８４の容量は、それぞれ基準回線６８と入力６９を通して放電される。この特定電流は小さいが、全ての装置に対して合計した全ての入力から基準回線のそのような電流の和はかなり大きくすることができる。
【００９９】
電流の符号は以前に受信したデータに依存するという事実は問題を更に悪化させる。この問題を解決する１つの方法は、抽出期間を２段階に分けることである。第１の段階中、入力を（オフセットを持つであろう）基準レベルのバッファしたバージョンに短絡する。第２の段階中、入力を真の入力に接続する。この方式では入力は依然ノード８３，８４を基準値から電流入力値に充電しなければならないので、入力電流を完全に取り除きはしないが、必要な合計電荷を約１０の係数で削減する（２．５Ｖの変化でなくも０．２５Ｖの変化しか必要としない）。当業者は、非常に低い入力電流で作動するクロッキングアンプをもたらすために更に多くの方法を用いることができることを理解できよう。
【０１００】
入出力回路の１つの重要な部分は、先行および後着バスクロックに基づいて内部装置クロックを生成する。クロックスキュー（装置間のクロックタイミングの差異）の制御は、２ｎｓサイクルで走行しているシステムでは重要であり、従って内部装置クロックを生成して入力サンプリング回路と出力駆動器が２つのバスクロック間の中間にできるだけ時間的に近い時点で作動するようにする。
【０１０１】
内部装置クロック生成回路のブロック図を図１２に示し、対応するタイミング図を図１３に示す。この回路の背後の基本的な考えは、比較的単純なものである。ＤＣ増幅器１０２を用いて小さな振れバスクロックを全振れＣＭＯＳ信号に変換する。この信号は次に可変遅延線１０３に供給する。遅延線１０３の出力は、３つの追加遅延回路、すなわち固定遅延（ｔ０）を有する１０４と、同一の固定遅延（ｔ０）と第２の可変遅延（Ｘ）を有する１０５と、同一固定遅延（ｔ０）と第２の可変遅延の半分（Ｘ／２）を有する１０６に供給される。遅延線１０４，１０５の出力１０７，１０８は、それぞれ先行および後着バスクロック入力１００，１１０に接続されたクロックされる入力レシーバ（受信器）１０１，１１１を駆動する。それらの入力レシーバ１０１，１１１は、上述し、図１１に示す受信器と同一設計を有している。可変遅延線１０３，１０５は、レシーバ１０１，１１１がバスクロックをその遷移時点で抽出するように、フィードバック線１１６，１１５を通して調整される。遅延線１０３，１０５は、出力１０７の立ち下がり１２０が先行バスクロックのクロック１（５３）の立ち下がり１２１に、（入力サンプリング回路１０１内の遅延に等しい）時間１２８だけ先立つように調整される。遅延線１０５は同様に、立ち下がり１２２が後着バスクロックのクロック２（５４）の立ち下がり１２３に入力サンプリング回路１１１の遅延１２８だけ先立つように調整される。
【０１０２】
出力１０７，１０８は２つのバスクロックと同期化され、最後に遅延線１０６の出力７３は出力１０７，１０８間の中間にあるので、すなわち出力７３は出力１０７に、出力７３が出力１０８に先立つ時間１２９と同じ時間量だけ後に続くので、出力７３はバスクロックの中間の内部装置クロック（すなわち内部クロック）となる。内部装置クロック７３の立ち下がり１２４は１サンプル動作分の遅延だけ実際の入力サンプリング１２５の時間に先立つ。この回路構成では、出力１０７，１０８の調節で、バスクロックは入力受信器１０１，１１１によりバスクロックの遷移時に抽出されるので、実質的に全ての装置入力受信器７１，７２（図１０）の遅延を自動的にバランスを取ることができる。
【０１０３】
実施例では、一方で内部装置クロック７３の真の値を生成するため、他方でインバータ遅延を付け加えることなく相補信号７４を生成するために、２組の遅延線を使用する。二重の回路により、スキューが非常に小さい真に相補的なクロックの生成が可能になる。相補の内部装置クロックは時点１２７で抽出をするため「偶数」の入力受信器をクロッキングするために用い、真の内部装置クロックは時点１２５で抽出するため「奇数」の入力受信器をクロッキングするのに用いる。真および相補的な内部装置クロックは、どのデータを出力駆動器に駆動するかを選択するのにも使用する。内部装置クロックとバスを駆動する出力回路との間のゲート遅延は、入力回路での対応する遅延よりもわずかに大きく、それは旧いデータが抽出されたわずか後に新しいデータが常にバス上に乗せられるということを意味する。
【０１０４】
＜ＤＲＡＭコラムアクセス修正＞
図１５は従来の４ＭビットＤＲＡＭ１３０のブロック図を示す。ＤＲＡＭメモリアレイはいくつかのサブアレイ例えば１５０−１５７の８個に分割されている。
各々のサブアレイはメモリセルのアレイ１４８，１４９に分割されている。行アドレス選択は、復号器１４６により行われる。列増幅器を含む列復号器１４７Ａ，１４７Ｂは、各々のサブアレイの中心を貫通している、それらの列増幅器を設定して、さきに詳述したように最も最近に記憶された値をプリチャージないしラッチすることができる。内部入出力回線は対応する列復号器によりゲートされた各々の増幅器のセットを最終的に装置ピンに接続された入力、出力回路に接続する。それらの入出力回線は、データを選択したビット回線からデータピン（ピン１３１−１４５の一部）に駆動するため、あるいはピンからデータを受け取り選択ビット回線に書込むために用いる。従来この制約により構成されたそのような列アクセス経路は、高速度バスにインターフェイスする十分な帯域幅を有していない。本発明の方法では、列アクセスで使用される全体的な方法を変更する必要はないが、実施の細部を変更する。それら細部の多くは特定の高速記憶装置で選別的に実施されてきたが、本発明のバス・アーキテクチャで実施されたことはなかった。
【０１０５】
内部入出力回線を従来の方法で高いバスサイクル速度で走行（ラン）させるのは不可能である。好ましい方法では、いくつかの（できれば４）バイトを各々のサイクル中に読取り、書込みを行い、列アクセス経路を低い速度で走行（ラン）するように変更する（サイクル毎にアクセスされるバイト数の逆数、できればバスサイクル速度の１／４）。必要な追加内部入出力回線を設け、データをその速度でメモリセルに供給するために３つの方法を用いる。第１は列復号器１４７を通る各々のサブアレイ内の入出力ビット回線の数を例えば列増幅器の２つの列の各々に対して８つの１６とし、各々のサイクル中に列復号器はサブアレイ１５０の「上」半分１４８からの１組の列と「下」半分１４９からの１組の列を選択する（ここで列復号器は入出力ビット回線毎に１つの列増幅器を選択する）。第２は、各々の列入出力回線を半分に分割し、各々のサブアレイの左半分１４７Ａと右半分１４７Ｂ（各々のサブアレイを４象限に分割して）からの別々の内部入出力回線上を別個にデータを搬送し、列復号器はサブアレイの右と左半分の各々から増幅器を選択し、各々のサイクルで得ることができるビット数を倍増する。従って各々の列解読選択はｎの列増幅器をオンにする（ここでｎは各々のサブアレイ象限に対してバス内の入出力回線の数の４倍（左上、と左上、左下と右下）に等しい（好ましい実施例ではそれぞれ８回線×４＝３２回線）。最後に、各々のＲＡＳサイクル中、２つの異なるサブアレイ、例えば１５７，１５３にアクセスする。これによりまた、データを含んだ利用可能な入出力回線の数を倍増する。これらの変化を共に考慮すると、内部入出力帯幅を少なくとも８の係数増加する。４つの内部バスをそれらの内部入出力回線のルートづけに使用する。入出力回線の数を増大し、それらの中間で分割することで、各々の内部入出力回線の容量を大きく減少させ、それによりまた列アクセス時間を減少させ、列アクセス帯幅を更に増大させる。
【０１０６】
上記の多重にされ、ゲート機能を持つ入力受信器により、装置ピンから内部入出力回線そして最終的にメモリへの高速入力が可能になる。上述の多重化出力駆動器を用いて、上記手法を用いて得ることのできるデータフローを維持する。装置ピンの情報はアドレスとして扱うべきかどうかそして従って解読すべきか、あるいは内部入出力回線へ乗せる入力データないしそこから読取る出力データかを選択する制御手段が設けられている。
【０１０７】
各々のサブアレイはサイクル毎に、左サブアレイから１６ビット、右サブアレイから１６ビットの３２ビットにアクセスすることができる。増幅器列毎に８つの入出力回線があり、一時に２つのサブアレイにアクセスすることで、ＤＲＡＭはサイクル毎に６４ビットを提供することができる。この余分の入出力帯域幅は読取りには必要でない（そして恐らく使用されない）が、書込みには必要になることがある。書込み帯域幅の利用可能性は、増幅器内で値を重ね書きするのは遅いオペレーションであり、増幅器がビット回線にどの様に接続されているかに依存するので、読取り帯域幅よりも困難な問題である。内部入出力回線の余分なセットで書込み操作に対していくらかの帯域幅のゆとりが与えられることになる。
【０１０８】
当業者には、本発明の教示の様々な変形を本発明の特許請求項の範囲内で更に実施できることが理解されよう。
【図面の簡単な説明】
【図１】メモリ装置の基本的な２Ｄ編成を示す線図である。
【図２】装置内部の各装置への全てのバスと直列リセット線の並列接続を示す概略ブロック図である。
【図３】主バスにおける半導体装置の３Ｄパッケージングを示す本発明の装置の斜視図である。
【図４】要求パケットのフォーマットを示す。
【図５】スレイブからの再試行応答のフォーマットを示す。
【図６】スレイブで要求パケットの衝突が起きた後のバス・サイクルと仲裁がどのようにして取り扱われるかを示す。
【図７】２つの装置からの信号が一時的に重複してバスを同時に駆動するようなタイミングを示す図である。
【図８】バスクロックとバス上の装置との間の接続およびタイミングを示す。
【図９】いくつかのバス・ユニットをトランシーバ・バスへ接続するためにトランシーバをどのようにして使用できるかを示す斜視図である。
【図１０】装置をバスへ接続するために用いられる入力回路／出力回路のブロック図および回路図である。
【図１１】バス入力レシーバとして用いられるクロックされるセンス増幅器の回路図である。
【図１２】調整可能な遅延線を用いて２つのバス・クロック信号から内部装置クロックをどのようにして発生されるかを示すブロック図である。
【図１３】図１２のブロック図における信号の関係を示すタイミング図である。
【図１４】本発明のリセット手続きを実現する好適な手段のタイミング図である。
【図１５】８つのサブアレイへ分割された４ＭビットＤＲＡＭの全体的な編成を示す線図である。
【符号の説明】
１５，１６，１７………メモリ装置、        １８………（一次）バス、
１９………トランシーバ装置、              ２０………ピン、
２２………要求パケット、                  ４１………装置Ａ、
４２………装置Ｂ、                        ５０………バスクロック生成器、５１，５２………メモリ装置、              ５３，５４………クロック線、
６５………トランシーバ・バス、            ６６………回路基板
７１，７２………入力受信器、              ７３，７４………クロック、
７６………出力駆動器、
１００………早着バスクロック入力
１０１，１１１………クロックド・レシーバ
１０３………可変遅延線                    １０４………固定遅延線（ｔ０）１０５………可変の遅延線（ｔ０＋Ｘ）
１０６………可変の遅延線（ｔ０＋Ｘ／２）
１１０………後着バスクロック入力。
【図１】
0003550143.tif 000004
【図２】
0003550143.tif 000005
【図３】
0003550143.tif 000006
【図４】
0003550143.tif 000007
【図５】
0003550143.tif 000008
【図６】
0003550143.tif 000009
【図７】
0003550143.tif 000010
【図８】
0003550143.tif 000011
【図９】
0003550143.tif 000012
【図１０】
0003550143.tif 000013
【図１１】
0003550143.tif 000014
【図１２】
0003550143.tif 000015
【図１３】
0003550143.tif 000016
【図１４】
0003550143.tif 000017
【図１５】
0003550143.tif 000018