JPH11338760A - デ―タ処理システムにおけるメモリ・コントロ―ラ - Google Patents

デ―タ処理システムにおけるメモリ・コントロ―ラ

Info

Publication number
JPH11338760A
JPH11338760A JP11000197A JP19799A JPH11338760A JP H11338760 A JPH11338760 A JP H11338760A JP 11000197 A JP11000197 A JP 11000197A JP 19799 A JP19799 A JP 19799A JP H11338760 A JPH11338760 A JP H11338760A
Authority
JP
Japan
Prior art keywords
bus
memory
data
timing
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11000197A
Other languages
English (en)
Inventor
James Bertone
バートン,ジェームズ
Bruno Diplacido
ディプラシド,ブルーノ
Thomas Joyce
ジョイス,トーマス
Martin Massucci
マサッチ,マーティン
Lance Mcnally
マクナリー,ランス
Thomas L Murray Jr
マーレー,トーマス・エル,ジュニア
Chester Nibby Jr
ニッビー,チェスター,ジュニア
Michelle Pence
ペンス,マイケル
Marc Sanfacon
サンファコン,マーク
Jian-Kuo Shen
シェン,ジアン−クオ
Jeffrey Somers
ソマーズ,ジェフリー
G Lewis Steiner
ステイナー,ジー・ルイス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PB Electronics Inc
Original Assignee
Packard Bell NEC Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Packard Bell NEC Inc filed Critical Packard Bell NEC Inc
Publication of JPH11338760A publication Critical patent/JPH11338760A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • G06F12/0661Configuration or reconfiguration with centralised address assignment and decentralised selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Bus Control (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Hardware Redundancy (AREA)
  • Complex Calculations (AREA)
  • Feedback Control In General (AREA)

Abstract

(57)【要約】 【課題】 コンピュータ・システムにおけるメモリ素子
を制御するタイミング信号を生成するメモリ・コントロ
ーラを提供する。 【解決手段】 メモリ・コントローラは、少なくとも2
つの異なるメモリ素子のタイミング特性を表す複数のタ
イミング特性値を提供する提供手段を備え、該提供手段
は、少なくとも2つの異なるメモリ素子を受け入れるた
めの複数のポートを提供し、更に、前記の複数のメモリ
素子に対するタイミング特性を記憶する手段と、前記複
数のポートの少なくとも1つへ接続されたメモリ素子の
タイプを検知する手段とを含み、前記提供手段は、検知
された前記メモリ素子に対するタイミング特性を発生す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、改善されたデータ
処理システムに関し、更に詳しくは、統一環境と分散シ
ステム機能とを有する対称型(対称的、symmetr
ic)データ処理システムに関する。
【0002】
【従来の技術】複数のマルチスレッド型(multi−
thread)プロセスの中の任意のものが同時に又は
複数のプロセッサの中の任意のものの上の任意のシーケ
ンスで実行され得る複数のプロセスを有するシステムが
ある。
【0003】
【発明が解決しようとする課題】従来技術の対称型マル
チプロセシング・システム、すなわち、複数のマルチス
レッド型(multi−thread)プロセスの中の
任意のものが同時に又は複数のプロセッサの中の任意の
ものの上の任意のシーケンスで実行され得る複数のプロ
セスを有するシステムにおいて繰り返し生じる問題の1
つは、その中で実行されるプロセスの観点から統一され
ているが、メモリ空間管理やバット・アクセス(but
access)やデータ管理などのシステムの機能が
1つのプロセッサに集中しないような環境を提供するこ
とにある。通常は統一型の処理環境を与えようとする試
みから生じるシステム機能のそのような集中によって、
集中された設備の能力は基本的に制限される。これは、
そのような機能の実行には上限が存するからである。集
中されたシステム機能を使用することによって、結果的
に、集中システムがシステム内の各機能ユニットの要求
を扱えない又はそれに気が付かないことさえあるという
点で統一されていない環境が生じることがしばしばあ
る。
【0004】
【課題を解決するための手段】本発明のシステムは、シ
ステム内のすべての機能ユニットに対して統一されたア
ドレス空間を有するシステムを提供し、他方で、アドレ
ス空間の管理やデータ及びキャッシュされた(enca
ched)データの管理やシステムの機能ユニットへの
システム・バス・アクセスの仲裁(arbitrati
on)などのシステムの機能の実行を分散させて各機能
ユニットがこれらの動作のそのユニット自体の側面に対
する責任をとるようにすることによって、上記の及びそ
れ以外の問題を解決する。
【0005】本発明のシステムによれば、更に、メモリ
からのデータ転送のための改善されたシステム・バス動
作と、特定のメモリ回路やバス転送速度などの要素に依
存する適合的なタイミングを有するメモリと、入出力動
作のキャッシュを伴う改善された入力/出力構造と、デ
ータ状態をトラッキングする改善された手段と、が提供
される。
【0006】本発明によると、コンピュータ・システム
における複数のパーティションにされたメモリを制御す
るメモリ・コントローラが提供される。
【0007】本発明のこれ以外の特徴、目的、及び効果
は、本発明の以下の説明を読み、図面を検討することに
よって、当業者に理解されよう。
【0008】
【発明の実施の形態】A.はじめに 以下では、本発明の好適な実施例を実現するシステムの
詳細な説明を、システムの簡単な全体像から始め、シス
テムの主な機能ユニットのそれぞれの詳細な説明に進み
ながら行う。システムの主な機能ユニットのそれぞれの
説明は、システム内の他の機能ユニットに対する、その
機能ユニットの相互の構造的及び動作的な関係の説明を
含む、ブロック図レベルの説明から始める。1つの機能
ユニットのブロック図レベルの説明に続いては、その機
能ユニットの選択された機能及び動作の更なる説明を行
う。
【0009】各説明には図面を付して説明の対応する部
分を図解するが、各図面は対応する説明に特に焦点を合
わせているのであり、その機能ユニットのすべての要素
を示すのではない。ただし、各機能ユニットの主要な要
素は、その機能ユニットの説明に関係する図面において
図解されている。
【0010】1.システム10の説明 図2及び図3を参照すると、本発明を組み入れて実現し
ている対称型マルチプロセシング・システム10の一般
的なブロック図が示されている。図1は図2と図3との
関係を示す図3である。示されているように、システム
10は、システムの複数の機能ユニットを相互接続する
拡張型アーキテクチャの多重(multiple)プロ
セッサ(XA−MP)バス12を含む。システムの機能
ユニットには、データとシステム動作及びデータ上の動
作を制御するプログラムとを記憶する1つ又は複数のメ
モリ・モジュール(MMs)14と、プログラムの命令
に応答してプログラムによって指示される動作を実行す
る1つ又は複数のプロセッサ・モジュール(PMs)1
6と、XA−MPバス12及びシステムの機能ユニット
をシステムの他の要素に接続する他のオルタネート・シ
ステム(AS)バス20に相互接続する1つ又は複数の
ブリッジ・モジュール(BMs)18と、が含まれる。
ASバス20は、たとえば、インテルのi486バス
や、EISA及びMCAバスを含み得る。ASバス20
は、たとえばインテルのi486マイクロプロセッサな
どのマイクロプロセッサ等の処理要素及びメモリや、デ
ィスク・ドライブ、キーボード、通信コントローラ、及
びグラフィック・アダブタなどの視覚的表示発生器を含
み得る入出力装置24などのシステムの他の要素22に
相互接続されている。
【0011】図2及び図3に示され以下で説明するよう
に、XA−MPバス12は、データを移動(トランスポ
ート)させる1つ又は2つのデータ・バス26と、メモ
リ及び入出力空間アドレスとスライス情報とを移動させ
るアドレス(ADDR)バス28と、バスに関連する動
作をXA−MPバス12から接続されたシステムのユニ
ットによって実行させるように指示するコマンドを移動
させるコマンド(CMD)バス30と、から成る。ま
た、XA−MPバス12には、システムの機能ユニット
がそれらの間での仲裁をしてXA−MPバス12ヘアク
セスしたり以下で説明するそれ以外の動作をするのに用
いる複数の仲裁(ARB)ライン32と、割り込み動作
において用いられる割り込み(INT)ライン34と、
以下で必要に応じて説明される多数の制御(CNTL)
ライン35とが関連している。XA−MPバス12のす
べてのラインとXA−MPバス12に関連するすべての
制御ラインとは、両端においてレジスタ又はラッチされ
ており、すべてのバス動作は、ラッチされたデータ及び
信号との関係でのみ実行されることに注意されたい。
【0012】やはり以下で論じるが、XA−MPバス1
2のデータ・バス26は、XA−MPバス12のADD
Rバス28及びCMDバス30とは動作的に分離されて
おり独立であって、XA−MPバス12上の情報転送の
プライマリ・モードは、すなわち、MMs14からの読
み取りに対しては、順序付き(ordered)転送の
形態である。更に、2つのデータ・バス26は、動作的
には相互に独立であり、それぞれが他方とは独立に転送
を実行する。
【0013】順序付き転送においては、各機能ユニット
は、その機能ユニットにおける順序付き要求行列の動作
を通じてそれ自体のメモリ要求をトラッキングし、情報
要求側と提供された情報との間の通常の一連のハンドシ
ェーキング動作は除去され、よって、メモリ読み取りの
速度の強化が実行される。XA−MPバス12は、ま
た、非順序(out−of−order)モードでも動
作することができ、その場合には、データ・バス26の
動作は、ADDRバス28及びCMDバス30の動作に
結合されており、要求側と提供側との間のハンドシェー
キングを要求する非順序転送を行う。
【0014】XA−MPバス12に結合したシステムの
各機能ユニットは、対応するタイプの機能ユニットによ
って実行されるべき動作を実行する動作要素の組から成
っている。これらの動作要素には、XA−MPバス12
のADDRバス28とCMDバス30とに接続されXA
−MPバス12に関する機能ユニットの動作を制御する
バス・インターフェース制御ユニットと、それぞれがデ
ータ・バス26の1つに接続されその機能ユニットの動
作要素とXA−MPバス12との間でデータを移動させ
る2つのバス・インターフェース・データ・パス・ユニ
ットと、が含まれる。システム10の別の構成では、X
A−MPバス12は、ただ1つのデータ・バス26を含
む又は用い、その機能ユニットは、従って、その1つの
データ・バス26に接続するただ1つのデータ・パスを
含む又は用いる。
【0015】たとえばMM14の場合には、動作要素
は、メモリ記憶素子(MSE)36から成り、これは、
たとえば、そのようなメモリに通常用いられるシングル
・インライン・メモリ・モジュール(SIMM)の集積
回路として構成されるコラム及びローのアレーのダイナ
ミック・ランダムアクセス・メモリ(DRAMs)から
成り得る。メモリ・バス・インターフェース制御ユニッ
トは、メモリ・コントローラ(MC)38から成り、他
方、メモリ・データ・パス・ユニットは、一方が各デー
タ・バス26に接続された1対のメモリ・データ・パス
(MDPs)40から構成されている。XA−MPバス
12が1つのデータ・バス26を含む構成の場合には、
MM14は、対応して、1つのMDP40を含む。
【0016】PM16の場合には、動作要素は、それぞ
れが内部的なプライマリ・キャッシュとそれに伴うキャ
ッシュ・メカニズム(CM)44とを有し、それぞれが
セカンダリ・キャッシュ(SC)46とキャッシュ・デ
ィレクトリ及びコントローラ(CD)48とから構成さ
れ得る、1つ又は複数のプロセッサ・ユニット42から
成る。それぞれのプロセッサ・ユニット42に対しては
PM16バス・インターフェース制御ユニットが存在
し、これは、メモリ・バス・コントローラ(MBC)5
0と各プロセッサ・ユニット42に対する1つ又は複数
のプロセッサ・データ・パス(PDPs)52から成る
データ・パス・ユニットとによって表され、各プロセッ
サ・ユニット42に伴うPDPs52の数はやはりデー
タ・バス26のXA−MPバス12の数に依存する。示
されているように、各PM16は、更に、INTライン
34から接続された1つ又は複数のアドバンスト・プロ
セッサ割り込みコントローラ(APICs)54を含
み、プロセッサ・ユニット42に対する割り込み動作を
扱う。
【0017】最後に、BM18の場合には、動作要素
(OEs)56はBM18が支持すべき動作のタイプに
依存しており、たとえば、種々のタイプのASバス20
又は特定の目的のための動作要素とインターフェースす
るバス・インターフェース論理の組から成る。BM18
においては、バス・インターフェース制御ユニットは、
1つ又は複数のアドバンスト・バス・インターフェース
・コントローラ(ABICs)58から成り、これが、
MBCs50と本質的に同じタイプの機能を実行する。
各バス・インターフェース制御ユニットに伴ってバス・
インターフェース・データ・ユニットがあり、各バス・
インターフェース・データ・ユニットは、やはりデータ
・バス26の数に依存する1つ又は複数のデータ・バス
・インターフェース・コントローラ(DBICs)60
から構成され、これが、PDPs52及びMDPs40
と本質的に同じタイプの機能を形成する。各BM18
は、また、APIC54を含み、割り込み動作を扱う。
【0018】2.システム10のアーキテクチャ上のい
くつかの特徴の概要 上述のように、システム10は、対称型マルチプロセシ
ング・システムであり、そこでは処理は、メモリ・モジ
ュール14に記憶されているプログラムの制御の下に複
数の処理ユニット42の任意のものにおいて実行され得
る。以下で概要を述べるように、そしてその後で詳細を
説明するように、このシステムは、多重処理を同時に実
行する統一された動作環境を与え、他方で、多くのシス
テム機能は、1つの機能ユニットに集中されるのではな
くシステムの複数の機能ユニットに分散されている。
【0019】たとえば、システム10は、1つのアドレ
ス空間内ですべての動作を実行することによって統一さ
れた環境を提供し、そこでは、システムのすべてのデー
タ、プログラム及び情報の記憶機能はその1つのアドレ
ス空間を占める。そのようなデータ、プログラム及び情
報の記憶機能は、たとえば、MMs14のメモリ空間
や、プロセッサ・ユニット42のレジスタや、ビデオ・
コントローラ及び入出力装置の表示メモリなどの情報記
憶機能やオペレーティング・システム及びパーソナル・
コンピュータで通常用いられているROM BIOSs
などBIOSsを記憶するのに要求される空間などのそ
れ以外の情報記憶機能を含む。
【0020】しかし、情報記憶の管理は、一般的に、シ
ステムの複数の機能ユニットの間に分散されており、そ
れによって、たとえば、MMs14は、MSEs36が
データ及びプログラムを記憶するのに用いるアドレス空
間内のアドレス位置を管理する責任を有する。同様にし
て、PMs16は、プロセッサ・ユニット42のレジス
タが占めるアドレス空間位置を管理する責任を機能的に
有し、一方、BMs18は、ビデオ・ディスプレイ・コ
ントローラが用いROMが占めるアドレス空間位置とR
OM BIOSsなどのプログラム及びデータを記憶す
るその他のメモリとを管理する責任を有する。
【0021】このシステムの1つのアドレス空間の管理
は、プロセッサ・レジスタなどの種々の記憶手段と、M
Ms14における物理的メモリ位置と、ROM BIO
Ssのためにビデオ・ディスプレイ・コントローラのた
めのビデオ・メモリとしてROMにおいて提供される記
憶装置とを、アドレス空間内にマッピングすることによ
って、本質的には実行される。システム10では、各機
能ユニットは、従って、それに伴う記憶空間をシステム
の1つのアドレス空間内にマッピングする責任を有して
いる。
【0022】システムのアドレス空間の分散された管理
を図解するために、各プロセッサ・ユニット42は、そ
れに伴うレジスタのブロックを有しており、バス動作に
関係する制御情報を記憶する。しかし、システム10に
おいては、これらのレジスタは、システム幅の1つのア
ドレス空間の一部としてアドレス指定される。
【0023】これを達成するために、各プロセッサは、
それに伴うレジスタを有し、本質的に、システムのアド
レス空間におけるレジスタのブロックの中の最初のレジ
スタの最初のアドレスを表すオフセット・アドレスであ
るポインタを記憶する。システムの初期化の際には、シ
ステム内の各処理ユニットないし各機能ユニットは、X
A−MPバス12上の位置又は「スライス」番号を決定
し、各機能ユニットは、XA−MPバス12上の位置と
の関係では、「スライス」と呼ばれる。以下でシステム
10の仲裁メカニズムに関して更に述べるように、機能
ユニットのスライス番号は、XA−MPバス12のアク
セスに対するその機能ユニットの相対的なプライオリテ
ィを決定するのに使用され、システム10の仲裁メカニ
ズムの動作を介してシステムの初期化の際に決定され
る。
【0024】スライス番号は、次に、レジスタの各ブロ
ックに対するオフセット・ポインタ値を決定するのに用
いられ、これらの値は関連するレジスタに記憶されてそ
のブロックのレジスタをアドレス指定する際に使用さ
れ、レジスタのブロックには、通常はシステムのアドレ
ス空間内の高い位置にアドレス空間位置が指定され、M
Ms14内のシステム・メモリに指定されたアドレス空
間とのコンフリクトを避ける。
【0025】以下で説明するように、このスライス番号
情報のあるものは、システムの他の機能ユニットに提供
され、そのアドレス指定可能なメモリ又は記憶領域をシ
ステムのアドレス空間内にマッピングするのに用いられ
る。たとえば、このスライス番号は、処理ユニットの機
能ユニットからMMs14に提供され、以下のMMs1
4の説明で述べる態様でMMs14によって用いられ、
システムのアドレス空間のアドレスをメモリ内のSIM
Mメモリ・チップの物理的アドレス位置に変換するアド
レス翻訳テーブルとして構成する。
【0026】アドレス指定可能な記憶装置又はそれに伴
いバス動作に関係するメモリ空間を有する各機能ユニッ
トに対して同様な処理が続き、各機能ユニットは、それ
に伴う記憶装置又はメモリ空間をシステムのアドレス空
間にマッピングする。各機能ユニットは、その後は、そ
の機能ユニット内の又はそれに伴うメモリ又は記憶アド
レス位置を参照するXA−MPバス12上のアドレスを
検出する責任を有し、適切に応答する。
【0027】同様にして、システムの各機能ユニット
は、データやプログラム命令などのその記憶空間に存在
するすべての情報の管理の責任を有する。システムの分
散機能のこの側面は、キャッシュされた情報との関係で
特に意義をもつが、これは、各機能ユニットはMMs1
4を除いてその機能ユニットによって用いられる又は動
作を与えられる情報を記憶するキャッシュ・メカニズム
を与えられているからである。したがって、PM16に
は、その中に存在する処理ユニット42の数に依存して
1つ又は複数のキャッシュが与えられ、処理ユニット4
2の動作を制御するプログラム命令と処理ユニット42
によって動作を与えられるデータとを記憶する。同様に
して、システム10に対し主に入出力ユニットであるB
Ms18には、XA−MPバス12から接続された機能
ユニットとBMs18から接続されたバス又は装置との
間で転送される情報のためのキャッシュが提供される。
【0028】システム機能のシステムの複数の機能ユニ
ットの間での分散を更に図解するために、対称型マルチ
プロセッサ・システムでは、1つの処理がシステム内の
任意のプロセッサ上で実行されること、また、1つの処
理が1つのプロセッサに指定され実行を開始し、たとえ
ばその処理のプロセッサ時間スライスの終了までに実行
を停止し、後に、システムの別のプロセッサ上で実行を
再開することは、広く知られている。システム10で
は、1つの処理がある処理ユニット42に指定され、そ
の処理に所属しMMs14からその当初の処理ユニット
42に関連するキャッシュ・メカニズムに読み取られた
データ及び命令を用いて処理ユニット42において実行
が開始され、それによって、キャッシュ・メカニズムに
キャッシュされたデータ及び命令は、その処理が実行さ
れている機能ユニットに、すなわち、プロセッサ42と
それに関連するキャッシュ・メカニズムとに「所属」す
る。この処理が後に上述のように当初の処理ユニット4
2から「切り換え」られた場合には、当初の処理ユニッ
ト42にキャッシュされていたデータ及び命令はその当
初の処理ユニット42のキャッシュ・メカニズムにある
ままであって、その処理ユニット42がデータ及び命令
をメモリに転送して返すのにキャッシュ・メモリ空間が
足りないなどの理由かない限りは、その当初の処理ユニ
ット42に所属し続ける。
【0029】その処理は、別の処理ユニット42上で実
行を再開する場合には、その処理に要求されるデータ及
び命令が実行されることを要求し、以下で述べるよう
に、XA−MPバス12上にデータ及び命令への要求を
置く。次に実行されるイベントのシーケンスは、メモリ
から最初に読み取られたデータが修正(変更、modi
fy)されていたかどうかに依存し、以下で更に詳細に
説明されるように、システム10では、いかなる時刻に
おいても、データのただ1つのコピーだけが存在するこ
とが許される。
【0030】メモリから当初の処理ユニット42のキャ
ッシュ・メカニズムに読み取られたデータが修正されて
おらずキャッシュ・メカニズム内に修正されたとのマー
クがなされていない場合には、有効なコピーは、メモリ
の中に存在するコピーであると推測され、メモリからそ
の処理がその上で現に実行されているプロセッサ・ユー
ット42のキャッシュ・メカニズムに読み取られる。デ
ータが修正されていて最初の処理ユニット42のキャッ
シュ・メカニズムの中に修正されたとのマークを付して
存在する場合には、データのこの修正されたコピーが、
データの唯一の有効なコピーであり最初の処理ユニット
42に「所属」する。後に更に説明するように、システ
ム10の各機能ユニットは、「スヌーピング」と呼ばれ
る処理においてXA−MPバス12上に現れるすべての
読み取り要求をモニタし、最初の処理ユニット42は、
よって、データの「シェアされた(shared)」コ
ピーを含む任意の他の機能ユニットのように、新たな処
理ユニット42によってXA−MPバス12上に置かれ
たデータ読み取り要求を検出する。
【0031】後でXA−MPバス12の詳細な説明やシ
ステム10に関する他の説明部分で述べるように、要求
されたデータのコピーを有する任意の機能ユニットは、
XA−MPバス12上のデータに対する要求を検出し、
その要求に肯定応答するが、これは、従来技術における
システムでは、肯定応答するユニットが要求されたデー
タを提供することによって応答する肯定応答からなって
いた。しかし、システム10では、最初の処理ユニット
42のようにデータの修正されたコピーを有する機能ユ
ニットは、メモリにおける読み取り動作をキャンセルし
要求側の機能ユニットにデータはメモリ以外のソースか
ら提供されることを告げるメモリ・サイクル禁止(MC
I)及びCDMコマンドをアサートする。データの有効
なコピーすなわちデータの修正されたコピーを有する機
能ユニットは、次に、XA−MPバス12に対して仲裁
を行い、データの修正されたコピーを非順序の転送を介
して新たな処理ユニット42に与える。最初の所有して
いる処理ユニット42からデータの修正されたコピーを
受け取る処理ユニット42は、データの「所有者」とな
り、応答の際にはそのデータを管理する責任を想定す
る。
【0032】以下で詳細に述べられるシステム10の機
能要素の間のシステム機能の分散の他の例には、機能ユ
ニットの間のXA−MPバス12アクセスの仲裁と、メ
モリ読み取りを要求している各機能ユニットがそれ自身
の読み取り要求のトラッキングと対応するメモリ応答の
検出及び応答の責任を有するメモリからの順序付き読み
取りの実行と、SIMMモジュールのタイプ、バス転送
速度及びそれ以外のファクタに依存するメモリ動作の適
合的タイミングと、が含まれる。
【0033】以上で、本発明を実現するシステム10の
一般的な構成と動作とを説明したので、以下では、シス
テム10の機能ユニットを更に詳細に説明する。
【0034】B.システム10の詳細な説明 1.XA一MPバス12 再び図2及び図3を参照すると、XA−MPバス12
は、データを移動させる1つ又は2つのデータ・バス2
6と、メモリ空間アドレスを移動させるアドレス(AD
DR)バス28と、XA−MPバス12から接続された
システム・ユニットによって実行されるべきバスに関係
した動作を示すコマンドを移動させるコマンド(CM
D)バス30と、から構成されている。やはり示されて
いるように、複数の仲裁(ARB)ライン32がXA−
MPバス12に関連しており、システムの複数の機能ユ
ニットがXA−MPバス12へのアクセスに関してそれ
らの間で仲裁をするのに用いられる。また、以下で述べ
るそれ以外の動作も行う。XA−MPバス12には割り
込み(INT)ライン34も関連しており、これは、割
り込み動作及び制御(CNTL)ライン35において用
いられる。
【0035】以下での説明のために、システムで用いら
れるプライマリ・データ要素は、情報すなわちデータ及
び命令はシステム10のキャッシュの中に各ラインがキ
ャッシュ・メモリにおける1つのアドレス位置を占める
ラインとして参照されるユニットでキャッシュされてい
るから、キャッシュ・ラインとして参照されるデータ又
は命令のブロックであることに注意すべきである。
【0036】各キャッシュ・ラインは、256ビットす
なわち32バイトの情報を含み、各データ・バス26
は、64ビットすなわち8バイトの幅を有しており、そ
れによって、データ・バス26上の1つのキャッシュ・
ラインの転送は、実際のデータ転送に4つのバス・クロ
ック・サイクルを要する。更に、メモリからの標準的な
読み取りは、1つのキャッシュ・ラインから成り、すな
わち、メモリへの1つの読み取り要求の結果として、3
2バイトのキャッシュ・ラインがXA−MPバス12上
を要求側に転送され、よって、バスの4つの転送が必要
となる。
【0037】各XA−MPバス12の動作は、更に、
「バス所有者」の間での切り換えのために1つのバス・
クロック・サイクルを要求する。すなわち、1つのバス
・クロック・サイクルが、XA−MPバス12が動作を
実行するのにバスを現に使用している機能ユニットから
次のバス動作のためのバスへのアクセスを取得した次の
機能ユニットへ転送されるのを制御するのに必要とな
る。
【0038】後でMMs14に関して述べるように、各
MM14のMSEs36は、アドレス位置のデュアル・
コラムとして構成されており、そこでは、一方のコラム
が偶数のアドレス位置を含み、他方のコラムは奇数のア
ドレス位置を含み、各コラムは、64ビットの情報を記
憶する。MMs14は、よって、当初はハーフ・キャッ
シュ・ラインとして構成され、2つのコラムを横断する
各ローは、128ビットのハーフ・キャッシュ・ライン
を有し、SIMM回路の2つのコラムを横断する1つの
ローからの1つの読み取り動作は、ハーフ・キャッシュ
・ラインの情報を提供する。システム・アドレス空間マ
ッピングへのMM14は、好ましくは、連続するハーフ
・キャッシュ・ラインが別のグループのSIMM回路に
記憶されるように構成されており、それによって、2つ
の連続するハーフ・キャッシュ・フインは異なるメモリ
RAS(ロー・アドレス・ストローブ)信号すなわち異
なるRASドライバ回路を用いてMMs14から読み出
され、よって、80nsのSIMMを用いる際の更なる
アクセス遅延時間を除去する。
【0039】上述のように、システム10のこの好適実
施例においては、XA−MPバス12には、幅がそれぞ
れ64ビットすなわちハーフ・キャッシュ・ラインであ
る2つのデータ・バス26が与えられ、バス上の情報転
送速度を高めている。
【0040】以上で述べてきたように、2つのデータ・
バス26は、相互に独立に動作する。データ・バス26
のいずれもか、メモリからの読み取りなどのバス・デー
タ転送を実行するために使用され、1つのバス・データ
転送は一方又は他方のデータ・バス26上で完全に実行
され、2つのバス転送が、一方は一方のデータ・バス2
6上で、他方は他方のデータ・バス26上で、同時に実
行される。
【0041】メモリからのキャッシュ・ライン読み取り
のような1つの「標準的な」XA−MPバス12の動作
は、よって、5つのバス・クロック・サイクルを必要と
するが、その場合、1つは送信機能ユニットがバスの制
御を行うためであり、4つは2つのデータ・バス26の
1つの上のデータ転送のためである。XA−MPバス1
2及びMMs14の詳細な説明で述べられるように、シ
ステム10は、単一バス・ワード転送を行い、転送は偶
数又は奇数のキャッシュ・ライン・アドレスを用いて開
始され、すなわち、偶奇偶奇・・・の順に制限されな
い。
【0042】上述のように、XA−MPバス12のデー
タ・バス26は、XA−MPバス12のADDRバス2
8及びCMDバス30とは動作的に分離されており独立
であって、MMs14からの読み取りのためのXA−M
Pバス12上の情報転送は、順序付き転送の形式を有し
ており、読み取り要求への応答は、なされた順序で満た
される。順序付きの読み取り動作においては、応答は、
要求が応答のための要求を受け取った機能ユニットによ
って受け取られてから数バス・サイクル後に生じ、これ
は、応答のために他の要求行列が存在したかどうかに依
存する。このタイプの動作は、この応答が要求から時間
内に(in time)除去され得るので、「スプリッ
ト・サイクル」を称される。
【0043】システム10における順序付きの転送で
は、各機能ユニットは、他の機能ユニットのメモリ要求
とは独立に、各機能ユニットにおける順序付きの要求行
列(ordered request queue)の
動作を通じて、それ自身のメモリ要求をトラッキングす
る。順序付きの要求行列によって、機能ユニットが、メ
モリからそれ自身及び他の機能ユニットへのメモリ読み
取りとすべての順序付きの転送との要求の両方をトラッ
キングすることと、いつメモリからの順序の付いた(i
n order)転送がその要求の1つに応答して提供
されるかを検出する。次に1つの機能ユニットが、XA
−MPバス12からデータを受け取ることによって応答
する。従来型のバスにおいて情報要求側と情報提供側と
の間で実行されるハンドシェーキング動作の通常のシー
ケンスは、順序付きの読み取りサイクルの応答部分の
間、このように除去される。
【0044】非順序モードでは、データ・バス26の動
作は、ADDRバス28及びCMDバス30の動作に結
合され、要求側と提供側との間のハンドシェーキングを
要求する非順序転送を実行する。このような非順序転送
では、要求に応答して情報を提供するユニットは、必ず
しもその要求がXA−MPバス12上に置かれたのと同
じシーケンスでそうするのではなく、情報提供側は、し
たがって、アドレスすなわちその要求を行っているユニ
ットのスライス番号を調べなければならない。要求され
た情報を提供するユニットは、要求側のユニットすなわ
ち情報を受け取る側のユニットのスライス番号をADD
Rバス28上に置き適切なコマンドをCMDバス30上
に置きデータをデータ・バス26上に置くことによっ
て、データ・バス26の動作をADDRバス28及びC
MDバス30に結合させる。そして、受け取る側のユニ
ットは、そのスライス番号とコマンドとに応答してデー
タを受け取る。
【0045】後に述べるように、メモリからのデータ読
み取りの要求は、順序付きの要求としてXA−MPバス
12上に置かれる。情報がメモリからではなくプロセッ
サ・ユニットのキャッシュ・メカニズムから戻された従
前の例のようにデータがメモリ以外のユニットから提供
される場合には、この情報を含むユニットは、上述した
ようにメモリ動作をキャンセルすることによって応答
し、非順序応答を生じる。そうするために、応答側のユ
ニットは、要求側のユニットのアドレスすなわちスライ
ス番号を取得しなければならず、要求側のユニットから
ではなくバス仲裁メカニズムから要求側ユニットのスラ
イス番号を取得し、よって、要求側のユニットは、各要
求に対して自己識別アドレスを提供する必要がない。そ
れぞれの情報読み取り要求は、順序付きの要求として要
求側のユニットによって最初は発生され、その要求側の
ユニットは、その要求がどのように満たされるかを前も
って知る必要はない。
【0046】上述したように、順序付きの動作は、キャ
ッシュ・ラインとメモリからのバス・ワード読み取りの
ために用いられ、システム10の中の読み取り動作の多
数を有している。非順序動作は、キャッシュからキャッ
シュへの転送、ワード転送及びBMs18を介しての入
出力動作のために用いられ、よって、動作のそれぞれの
タイプに対するXA−MPバス12の動作を最適化す
る。
【0047】2.メモリ・モジュール14 a.メモリ・コントローラ38の説明 以上で述べてきたように、各MM14は、SIMMモジ
ュールのようなメモリ回路のロー及びコラム・アレーで
あるMSE36から構成され、当該技術分野で周知のよ
うに、アドレス指定可能にデータを記憶し提供する。各
MM14は、更に、そのMM14に対して制御機能を提
供するMC38と、MSE36とXA−MPバス12と
の間にデータ・パスを形成しそれぞれがデータ・バス2
6の1つに接続されている1つ又は複数のMDPs40
と、を含む。
【0048】図4及び図5を参照すると、MC38とM
DP40とのブロック図が示されている。最初に図4を
参照すると、MC38及びXA−MPバス12とバス動
作に関連する制御ラインとの間の第1の(プライマリ)
インターフェースは、XAMP制御インターフェース
(XAMPCI)62とコマンド・アドレス入力ブロッ
ク(CMDAI)64とによって提供される。
【0049】XAMPCI62は、XA−MPバス12
動作に関連する制御ラインのあるものとインターフェー
スし、これは、以下のMC38の詳細な説明において説
明される。図4に示されるように、XA−MPバス12
からXAMPインターフェース62への入力信号は、シ
ステム仲裁メカニズム(ARB)の9つのARB信号ラ
インを含み、コマンド・ストローブ(CS#)が、CM
Dバス30上のコマンドの存在を示す。
【0050】XAMPCI62からの出力信号はACK
及びNAK信号を含み、CAE#信号が、メモリが受け
取ったコマンド及びアドレスが誤っていることを示す。
DS0#及びDS1#は、2つのデータ・バス26に対
する個別のデータ・ストローブ信号であり、ORD0#
及びORD1#は、2つのデータ・バス26に対する個
別の信号でありORD#信号に対応してデータ・バス2
6上に順序付きの応答が存在していることを示す。
【0051】示されているように、XAMPCI62
は、メモリ・コマンドFIFO(先入れ先だしメモリ)
への局所的応答出力を与え、以下述べるように、メモリ
によって応答される動作要求が受け取られたことを示
す。XAMPCI62は、また、それぞれがデータ・バ
ス26の1つに対応し対応するデータ・バス26からM
DP40へのデータ転送をイネーブルするのに用いられ
るBIN0#及びBIN1#を含むMDP40への複数
の出力を与える。BOUT0#及びBOUT1#は、そ
れぞれが、データ・バス26の1つに対応し、メモリか
ら対応するデータ・バス26へのデータ転送をイネーブ
ルするのに用いられる信号である。BACK0#及びB
ACK1#は、それぞれが、データ・バス26の1つに
対応し、対応するデータ・バス26上の書き込みサイク
ルが有効に肯定応答されたとえばMCIによって吸収さ
れないことをMDP40に表す信号である。
【0052】CMDAI64は、ADDRバス28及び
CMDバス30とインターフェースし、以下のMC38
の詳細な説明で述べる他のバス動作制御ラインに対し
て、アドレス及びコマンドを受け取り提供する。CMD
AI64への入力には、ADDRバス28上に現れるア
ドレスと、CMDバス30からのコマンド信号(CM
D)と、コマンドがCMDバス30上に存在することを
示すコマンド・ストローブ信号CS#と、が含まれる。
AP及びCP入力は、それぞれ、アドレス及びコマンド
・パリティ・ビットである。信号BUSL#は、要求側
の機能ユニットがロックされている、すなわち、拡張さ
れた周期の間XA−MPバス12の制御を受けることを
示すバス制御ライン入力である。
【0053】図4に示されているように、CMDAI6
4は、その中への記憶のために上述のメモリ・コマンド
FIFOに出力を提供し、この出力は、メモリ要求のア
ドレス及びコマンドといくつかの制御ビットとを含む。
CMDAI64は、また、XAMPCI62にヒット及
び誤り(エラー)出力を提供して、それぞれどの場合に
受け取られたメモリ要求が何らかの理由で有効又は無効
であるかを示す。
【0054】図4には、MC38は、更に、例外及び誤
り条件を扱うために提供される例外制御(EXCEP
T)66を介して、XA−MPバス12及び関連するバ
ス動作制御ラインとのインターフェースを有することが
示されている。EXCEPT66についてはここではこ
れ以上説明しないが、MC38の詳細な説明の部分で更
に述べることにする。MC38は、また、走査制御(S
CAN)65を含み、これについても、MC38の詳細
な説明の箇所で述べる。
【0055】メモリ動作要求は、上述のメモリ制御FI
FO(MC FIFO)68の動作を介して、MC38
においてパイプラインされる。示されているように、M
CFIFO68は、CMDAI64とXAMPCI62
とから実行されるべきメモリ動作を定義するアドレス、
コマンド及び応答入力を受け取り、受け取られた順序で
動作されるべき動作を記憶する。
【0056】これ以外の入力がMDP40からMC F
IFO68に提供されるが、この入力には、MDP40
によって対応するデータ・バス26上で検出されたパリ
ティ誤り(エラー)の存在を示すMDPE0#及びMD
PE1#バス制御信号が含まれる。メモリ・サイクル禁
止(MCI#)信号は、既に述べたように現在のメモリ
動作がキャンセルされたことを示し、キャッシュ・デー
タ修正(CDM#)及びキャッシュ・データ共有(sh
ared)(CDS#)信号は、要求されたデータの修
正された又は共有されたコピーの存在が別の機能ユニッ
トにおいて示されていることと現在のメモリ・サイクル
がキャンセルされていることとを、示している。ACK
#及びNAK#信号は、それぞれが、MC38は現在の
メモリ動作を受け取った又は受け取っていないことを示
し、一方、コマンド又はアドレス誤り(CAE#)は、
MC38がコマンド又はアドレス誤りを検出したことを
示す。
【0057】MC FIFO68とEXCEPT66と
は、それぞれが、MCマネジャ70との制御信号インタ
ーフェースを有し、MCマネジャ70は、メモリ動作に
対して基本的な制御及び管理機能を提供する。示されて
いるように、MCマネジャ70は、ペンディングな要求
の存在を示す要求信号FREQUENTをMC FIF
O68から受け取り、その代わりに、その要求は実行し
てよいことを示すFGRANT信号を提供する。MCマ
ネジャ70は、同時に、要求を実行し得ることを示すE
GRANT信号をEXCEPT66に提供し、ペンディ
ングな要求の存在を示すEREQUENTを受け取る。
【0058】これらの信号の結果として、MCマネジャ
70は、次に、アドレス(ADDR)の発生、ロー・ア
ドレス・ストローブ(RASs)、コラム・アドレス・
ストローブ(CASs)及びMMs14のMSEs36
への書き込みイネーブル(WE)信号を制御する際にD
RAMコントローラ72によって用いられる制御出力を
DRAMコントローラ72に提供する。通常のように、
MSEs36は、SIMMモジュールとして物理的に構
成されたDRAMsから成る。
【0059】DRAMコントローラ72へのその他の入
力には、MC FIFO68から又はEXCEPTIO
N66から提供されたアドレス、サイクル及びレーン制
御信号が含まれ、これらは、MMs14の詳細な説明で
述べられるように、本質的に、MC FIFO68に記
憶された要求アドレス及びコマンド情報から導かれるア
ドレス指定情報である。
【0060】図4に示されるように、MC38は、MC
FIFO68からの入力を有する可視レジスタ・ブロ
ック(VRB)74と、EXCEPTION66と、M
Cマネジャ70と、システムにアクセス可能であり誤り
情報の基本的制御を記憶し提供するのに用いられるレジ
スタから成るMDPインターフェース(MDPI)76
と、を含む。
【0061】MDPI76は、MC38とMDP40と
の間の制御及び同期インターフェースを提供し、MC3
8によるメモリ動作の制御によるMDP40を介しての
MM14への及びMM14からのデータ転送を制御し同
期化する。
【0062】示されているように、MC38とMDP4
0との間で交換されるこれらの制御信号は、MC38と
MDP40との間を通過するコマンドであるマルチビッ
トのMCコマンド(MCMD0及びMCMD1)を含
み、よって、各ユニットは、他方の何らかの動作を要求
する。MC38及びMDP40の詳細な説明に示される
ように、これらのコマンドは、本質的に、MSE36が
SIMMアレーのDRAMからのバス・ワード又はキャ
ッシュ・ラインの読み取りを実行するかどうかなどの、
実行されるべきメモリ読み取り又は書き込み動作の特定
のタイプに関するものである。データ・ラインMDAT
A0#及びMDATA1#は、MC38とMDP40と
の詳細な説明で述べるように、MC38とMDP40と
の間のMC38/MDP40動作において用いられるデ
ータを通過させるのに用いられ、信号MGO0#及びM
GO1#は、MC38又はMDP40によって動作を開
始させるのに用いられる。
【0063】b.メモリ・データ・パス40の説明 次に図5を参照すると、MDP40のブロック図が示さ
れている。上述のように、MC38は、本質的に、MM
14に対してすべてのタイミング及び制御機能及び信号
を与え、また、MM14によって実行されるメモリ及び
XA−MPバス12動作を与える。他方で、MDP40
は、本質的に、XA−MPバス12とMSE36のメモ
リ要素との間のパイプラインされたデータ・パスであ
る。既に述べたように、各MM14は、2つのMDP4
0を有しており、その一方はデータ・バス26のそれぞ
れと接続され、データ・バス26へのデータ接続を有す
る各機能ユニットは、それぞれが、同様に、この2つの
データ・バス26に接続された2つの同様のデータ・パ
ス要素を含む。ただ1つのデータ・バス26を用いる又
は有するシステム10の構成においては、各MM14は
ただ1つのMDP40を有する又は用い、また、それぞ
れの機能ユニットは、同様に、1つのデータ・バス26
に接続するためのただ1つのデータ・パス要素を有する
又は用いる。
【0064】MDP40は、XA−MPバス12へのX
A−MPバス12データ・インターフェース(XAMP
DI)78と、MSEs36のDRAMへのDRAMイ
ンターフェース(DRMI)80とを含む。示されてい
るように、XAMPDI78は、XA−MPバス12の
データ・バス26に対して双方向のデータ・インターフ
ェースを有し、XA−MPバス12を用いて、64ビッ
トのデータ(BD)と8ビットのデータ・パリティ(B
DP)とを転送する。XAMPDI78は、更に、XA
−MPバス12に関連する制御ラインに対して双方向の
バス未訂正データ誤り(BUDE#)信号ライン・イン
ターフェースを有し、メモリに提供される又はメモリか
ら読み取られるデータにおける未訂正の誤りを示す信号
を受け取り提供する。
【0065】MDP40のMSEs36とのインターフ
ェースは、DRMI80を介して提供され、MSE36
のDRAMとの間の2つの双方向の64ビット幅のデー
タ・パスからなり、これは、図5では、DD0(63:
0)とDD1(63:0)と称されている。既に述べた
ように、MSEs36のメモリ要素は、偶数アドレスの
コラムと奇数アドレスのコラムとの2つのコラムとして
構成されており、各コラムは、1バス・ワード又は4分
の1キャッシュ・ライン幅を有している。MSE36の
メモリ要素に接続された2つのデータ・バスは、したが
って、1バス・ワードを1つのメモリ内部サイクルで、
又は、1つのキャッシュ・ラインを2つのメモリ内部サ
イクルで転送する能力をもつ。MSEs36への各デー
タ・バスすなわちDD0(63:0)及びDD1(6
3:0)に関連し並列であるのは、DC0(7:0)及
びDC1(7:0)と識別されている2つの双方向の誤
り検出及び訂正バスであり、MSEs36とMDP40
のメモリ要素の間でデータ・チェック・ビットを搬送す
る。この点で、MSEsは、情報だけを記憶するのでは
なく、MSEs36の各バス・ワード幅のコラムのロー
はメモリ要素を含みその中に記憶される対応するバス・
ワードに関連するデータ・チェック・ビットを記憶する
ことに注意するべきである。
【0066】XA−MPバス12からの入力パスは、X
AMPDI78から書き込み・パス・メモリ(WRIT
E PATH)82に延び、MSE36へのデータ書き
込みをパイプラインするのに用いられる。以下で述べる
ように、WRITE PATH82は、また、データと
DRMI80からのチェック・ビット・パスとにおいて
接続された出力EDAC発生器及び訂正器(EDAC)
84からのデータ・パス入力を有する。MDP40の詳
細な説明において述べられるように、このパスは、デー
タ書き込み及び訂正動作のために用いられる。
【0067】WRITE PATH82からのデータ・
パス出力はDRMI80へのデータ・パス入力に接続さ
れ、情報がそれを介してMSEs36に書き込まれるパ
スを提供する。WRITE PATH82からのデータ
・パス出力は、また、MSEs36の中に書き込まれる
各バス・ワードに対するチェック・ビットを発生する書
き込みチェック・ビット発生器(WCBG)86へのデ
ータ・パス入力に接続されており、WRITE PAT
H82からMSEs36の中に書き込まれるべきバス・
ワードとして提供されたデータと並列に、DRM180
へのチェック・ビット書き込みパス入力を介してチェッ
ク・ビットを提供する。
【0068】WRITE PATH82のデータ・ワー
ド出力は、また、MDPレジスタ(MDPRs)88へ
の入力として提供されて、何らかのMDP40レジスタ
の書き込みを許容する。WRITE PATH82及び
MDPR88の出力は、上述のようにMDPI76とイ
ンターフェースするMCインターフェース(MCI)9
0への入力として提供され、MDPI76と交換される
制御及びデータ信号を発生させるのに用いられる。示さ
れるように、MDPI76と交換される制御及びデータ
信号は、更に、空のFIFO上の要求された読み取り動
作又は一杯のFIFO上の書き込み動作などのWRIT
E PATH82を有するFIFO又はREAD PA
TH92を有するFIFOにおける誤りが存在する場合
を示すFIFO誤り信号(FIFOERO#)を含む。
【0069】次にMDP40を通るデータ出力パスを考
えると、DRMI80を介してのMSEs36から読み
取られたデータ及びチェック・ビットは、EDAC84
への入力として提供され、EDAC84は、誤り検出及
び訂正動作を実行し、MSEs36から読み取られたバ
ス・ワードに対して訂正されたデータ・ビットと、誤り
信号SBE#及びMBE#を発生する。これらはすべ
て、READ PATH92への入力として提供され
る。
【0070】READ PATH92は、本質的に、M
M14から読み取られたデータをパイプラインするFI
FOであり、READ PATH92のデータ・ビット
出力はXAMPDI78に提供されて、要求されるよう
にSA−MPバス12上に転送される。
【0071】最後に、MDP40は、MDP40のある
動作を制御する状態機械(STATE)94を含む。示
されるように、STATE94は、XA−MPバス12
からMDP40へのデータ転送をイネーブルするMC3
8からのバスイン(BIN#)信号と、MDP40から
XA−MPバス12へのデータ転送をイネーブルするM
C38からのバスアウト(BOUT#)信号とを受け取
る。MC38からのこの他の信号は、有効な肯定応答さ
れた書き込みサイクルを示すバス肯定応答信号(BAC
K#)と、MDP40を初期化する初期化(INIT)
信号とを含む。STATE94は、また、MC38か
ら、BDATA、MGO及びMCMDを受け取るが、こ
れに関する更なる説明は、MC38及びMDP40の詳
細な説明においてなされる。
【0072】以上でMM14の全体的な構成及び動作を
特にMC38とMDP40とに焦点を合わせて説明した
が、以下では、MM14の特定の機能及び動作について
説明する。
【0073】3.記憶されたデータに対する誤り訂正 MMs14は、読み取り・訂正・再書き込みの動作によ
ってMSEs36に記憶されたデータの誤り訂正を行
い、その場合に、読み取り・訂正・再書き込みの動作
は、メモリ要素との間の情報の通常の読み取り及び書き
込みを遅延させないような態様で実行される。この点
で、既に、MDP40がメモリから読み取られた情報の
誤り検出及び訂正をEDAC84の動作を通じて行い、
WCBG86の動作を通じてメモリに書き込まれる情報
に対してチェック・ビットを発生し、このチェック・ビ
ットはメモリの中に書き込まれ、情報と共に記憶される
ことは説明されている。
【0074】MDP40がメモリからバス・ワードを読
み取りデータにおける誤りを検出する、すなわち、デー
タがそのデータに関連するチェック・ビットに従う場合
には、MC38は、MCDEを受け取り、EDAC84
を介してXA−MPバス12へ転送される誤りが訂正さ
れつつあるデータのアドレス位置を記して、この誤りア
ドレス情報(ERROR ADDR)を訂正行列(CO
RRQ)96に記憶する。
【0075】図6に示されているように、また既に説明
したように、メモリ要求、すなわち、実行されるべき動
作を示すコマンドと、読み取られる又は書き込まれるべ
き情報のアドレスとは、XAMPCI62によってXA
−MPバス12から受け取られ、メモリによって実行さ
れる場合にはXAMPCI62から成るパイプライン行
列に記憶され、MC38とMDP40とによって実行さ
れる。既に述べたように、バス・ワード及びキャッシュ
・ラインのメモリ読み取り動作は、順序付きの動作とし
て実行され、各動作は受け取られた順に実行される。M
C38及びMDP40の動作は、MC38によって維持
されるペンディング要求行列(PREQQ)98の動作
を介して調整され、その場合に、MC38はすべてのペ
ンディングな要求の識別(ID)を記憶する。MDP4
0は、次に、実行されたものとして要求に関する情報を
提供し、この情報をMC38のPREQQ98に提供
し、よって、MC38とMDP40との同期が維持され
ることを可能にする。
【0076】XAMPCI62、CORRQ96及びP
REQQ98に関連しているのは、XAMPCI62に
おけるペンディングな要求の状態をモニタしてペンディ
ングな要求の待ち行列がいつ空になるかを検出する動作
仲裁装置(OPARE)100である。待ち行列が空で
ある場合には、OPARE100はCORRQ96をチ
ェックし、メモリが未訂正の誤りを含む何らかの記憶位
置を検出したかどうかを判断し、任意のそのようなアド
レスがCORRQ96において待ち行列になっている場
合には、読み取り・訂正・再書き込み動作を実行する。
それぞれのそのような動作においては、MDP40は、
MC38の制御動作と協力して、DRMI80を介して
MSE36からのそのアドレス位置からデータを読み取
り、EDAC84を介してデータを訂正し、WRITE
PATH82を介してデータを元に戻す。データは、
WRITE PATH82を通ってWCBG86まで通
過し、そこで新しいチェック・ビットが発生され、訂正
されたデータと新しいチェック・ビットとがDRMI8
0を介してMSE36に再度書き込まれる。OPARE
100がCORRQ96が一杯であることを検出した場
合でも、データ訂正動作は、上述の場合と待った駆動用
に行われるが、ペンディングな要求がある場合にも実行
される。
【0077】MMs14は、よって、誤りを含む識別
(ID)及び位置を記憶しペンディングな要求がない場
合には読み取り・訂正・再書き込み動作を実行すること
によって、読み取り及び書き込み動作の実行に干渉せず
にMSEs36に記憶されたデータに関して誤り検出及
び訂正を実行する。
【0078】MDP40の別の特徴を図5を参照するこ
とによって説明するが、そこでは、READ PATH
92のFIFO空き信号出力によって提供されるバイパ
ス・パス・ゲート(BPG)102の制御と共に、RE
AD PATH92の周囲のゲートされたバイパス・デ
ータ・パスが表されている。上述のように、READP
ATH92は、本質的にFIFO行列であり、読み取り
要求動作の結果生じる情報及びパリティ・ビットは、そ
の待ち行列を介して実行された順にXA−MPバス12
まで通過する。すべての要求が実行された場合には、待
ち行列は空になり、XA−MPバス12への転送が可能
になる前に新たな要求がREAD PATH92の待ち
行列を通過しなければならないが、これは複数のクロッ
ク・サイクルを要求し、待ち行列の深さ(depth)
に依存する。しかし、待ち行列が空である場合には、こ
の条件はFIFO空き信号をBPG102にアサートす
るREAD PATH92によって検出され、BPG1
02は、READ PATH92の周囲に及び直接にX
AMPDI78にゲートすることによって応答し、MC
38はMDP40にBOUT信号を送出して、データが
XA−MPバス12上に置かれることを要求し、よっ
て、要求された情報をREAD PATH92を介して
入手可能になるよりも1クロック・サイクルだけ早くX
A−MPバス12に提供する。
【0079】4.適合的(adaptive)メモリ・
タイミング MM14は、MM14の動作を適合させてMM14で用
いられる特定のSIMM回路によって可能な限り最大の
動作速度が得られるような態様でメモリ動作を制御する
際に、MC38によって発生されMC38及びMDP4
0によって用いられるメモリ動作タイミング信号の絶対
的及び相対的タイミングを適合的に変更する能力を更に
有している。制御可能な信号は、SIMMタイミング信
号を含み、これには、MC38のDRAMコントローラ
72によって発生されるRAS、CAS及びWEが含ま
れ、更に、MC38によって発生されMC38及びMD
P40によって用いられMM14の動作を制御するそれ
以外のタイミング信号も含まれる。
【0080】図7を参照すると、SIMM回路が、特定
のSIMM回路の少なくともサイズと速度とを示す何ら
かのピン出力に符号化された値を提供することは周知で
ある。現在のシステムにおいては、SIMM回路のピン
を介して入手可能なこれらの符号化された値は、MM1
4のMSEs36の外に運ばれて、MC38に利用可能
にされる。このシステムは、更に、MM14の記憶位置
に置かれたプロフィール記憶装置104を含み、そこで
は、プロフィール記憶装置104は、MSE36に現れ
るSIMMグループの各タイプに対してプロフィール1
06を含み得る。
【0081】各プロフィール106は、SIMMモジュ
ールの対応するタイプのタイミング特性を表す値の組を
含み、そこでは、このタイミング特性は種々の最大ゲー
ト遅延、再充電時間、SIMMモジュールの内部回路の
タイミング・イベント間隔を表す。現在のシステムで
は、タイミング特性の値は、ナノ秒などの時間の単位で
は表されず、ダブル速度クロックでのカウントのような
SIMMモジュールの比較タイミング特性を表す値であ
る。しかし、このタイミング特性値は、SIMMモジュ
ールとMM14において用いられる基本クロックとの両
方のタイミング特性を容易に表しタイミング信号を発生
するように選択される。
【0082】システムの初期化においては、MC38
は、SIMMモジュールのピン出力から提供されるSI
MMモジュール符号化されたタイミング特性値を読み取
り、その符号化された値を用いて対応する1つ又は複数
のプロフィール106をプロフィール記憶装置104か
ら選択し読み取る。タイミング特性値は、次に、MM1
4のMC38におけるタイミング計算装置108に提供
される。タイミング計算装置108には、各SIMM動
作を実行するのに必要になる最大時間間隔を計算するの
に必要な計算機能が備わっており、これはたとえば、1
つのRAS信号と次のRAS信号との間で生じなければ
ならない最大時間、書き込みイネーブル信号と書き込み
イネーブル信号の結果との間で生じ得る最大時間などで
ある。
【0083】タイミング計算装置108は、SIMMの
動作において生じ得るタイミング・イベントの時刻を表
すタイミング制御値の組を計算して提供し、その場合
に、各タイミング・イベントはタイミング信号によって
表され、タイミング制御値は、SIMM動作を制御する
のに用いられるMM14の内部クロックのクロック周期
の単位を有する。このシステムにおいては、タイミング
・イベントは、「絶対」時間及び「相対」時間の両方と
して決定すなわち計算され、「絶対」イベントが生じる
時刻はメモリ動作サイクルの開始を表すT0に対して決
定され、「相対」イベントは前のイベントに対して決定
される。たとえば、RAS及びCAS信号が生じる時刻
は、メモリ・サイクルのT0開始に対する絶対イベント
として決定され、他方で、WEが生じる時刻すなわちデ
ータがSIMMモジュールから現れる時刻は、RAS及
びCAS信号の生起などの前のイベントに対して決定さ
れ得る。
【0084】次に、タイミング制御値がDRAMコント
ローラ72に提供され、DRAMコントローラ72によ
って用いられて、RAS、CAS及びWEなどの実際の
タイミング信号をSIMMモジュールに発生する。
【0085】本発明の別の実施例では、システム初期化
においてタイミング計算装置108を介してタイミング
値を計算するのではなく、各プロフィールに対するタイ
ミング値を予め計算し、タイミング値をDRAMコント
ローラ72に単にロードすることが好ましい。
【0086】このシステムのこの実施例では、システム
内の各MM14は1つのプロフィール106を用い、そ
の特定のMM14に含まれる最低のSIMMモジュール
にマッチするプロフィールを選択する。別の実施例で
は、1つのMM14内で複数のプロフィール106を用
いてMSE36内に異なるSIMMを備えることが可能
である。この後者の場合では、DRAMコントローラ7
2は、DRAMコントローラ72に関連するレジスタの
組において可能なタイミング値の2つ又はそれより多く
の細を記憶し、アクセスされるアドレス位置に依存する
すなわち現にアクセスされているSIMMモジュールの
タイプに依存するタイミング値の組を選択する。
【0087】本発明の更に別の実施例では、プロフィー
ル106に含まれるタイミング特性値は、更に、データ
・バス26又はXA−MPバス12のデータ送信速度を
反映するタイミング特性値を含み、これらの値は、DR
AMコントローラ72に提供されるタイミング制御値を
計算する際に用いられる。更に別の構成では、1つのシ
ステムの中のデータ・バス26が異なる送信速度を有す
ることがあり、プロフィール106は、それらの異なる
転送速度に対してタイミング特性値を含む。この場合に
は、やはり、DRAMコントローラ72にはタイミング
制御値の複数の組が与えられこれらを用い、任意のメモ
リ・サイクルの間に用いられる値は、どのデータ・バス
26に情報が書き込まれる又はどのデータ・バス26か
ら情報が読み取られるかに依存する。
【0088】最後に、上述のように、MSE36は、2
つのパーティションとして当初構成され、よって、MS
Es36からの読み取り及びMSEs36への書き込み
は、イネーブルされる場合には、すなわち、MSEs3
6の別の部分へ又はその別の部分に一般にインターリー
ブされ、よって、MSEs36への及びMSEs36か
らの全体的なデータ転送速度を増加させる。このシステ
ムのこの実施例では、メモリ・サイクルのインターリー
ブすなわちメモリ・サイクルのMSEs36のパーティ
ションへの交換は、プロフィール106において提供さ
れたタイミング特性値によって制御され、一方がMSE
36のSIMMアレーの各パーティションにタイミング
信号を与える2つの有効なDRAMコントローラ72に
よって実行される。この場合には、コントローラのそれ
ぞれによって発生されるタイミング信号の一方は、他方
のコントローラに提供されるタイミング信号、即ちT0
タイミング信号であり、この他方のコントローラのメモ
リ・タイミング・サイクルを開始する。
【0089】したがって、各コントローラは、他方のコ
ントローラによって発生される、それ自身のタイミング
・サイクルの結論と次のタイミング・サイクルの開始と
の間の間隔を決定し、よって、タイミング・サイクルの
インターリーブを制御する。各コントローラによって発
生されたタイミング・サイクルの開始イベントは、他方
のコントローラに対する開始イベントを発生するコント
ローラのタイミング・サイクルの間の任意の時刻に生じ
るように計算され、タイミング・サイクルのオーバラッ
プ又は非オーバラップの任意の程度又は周期を許容し、
タイミング・サイクルのインターリーブはプロフィール
情報によって決定される。
【0090】最後に、タイミング計算装置108とDR
AMコントローラ72とは、システム10のこの構成に
おいては、2状態マシンとして実現される。
【0091】MM14の更なる特徴においては、DRA
Mコントローラ72によって制御されるパーティション
のリフレッシュ・サイクルは、個別に制御され、パーテ
ィションのDRAMのリフレッシュ・サイクルは、スタ
ガーされてリフレッシュにより消費されるピーク電力を
減少させ、これは、一度にパーティションのすべてのD
RAMを読み取ることを含む。リフレッシュ制御ビット
は、DRAMコントローラ72内に読み取られ及びDR
AMコントローラ72に提供され、リフレッシュ・サイ
クルのタイミングを制御する。
【0092】5.順序付きおよび順序の無いバス転送 上述されたように、XA−MPバス12上の情報転送の
最初のモードは順序付き動作によりそしてバス・ワード
とメモリからの貯蔵物ライン・リードのために使用され
る。メモリ以外の機能ユニットは要求に応答するが、プ
ロセッサ・ユニットがその貯蔵庫のなかの要求されたデ
ータの修正されたコピーを保持する時に、MCI命令を
主張することによりメモリ中の読取り要求を取消しそし
て要求がメモリ以外の別の機能ユニットおよび順序の無
い転送により遂行されるであろうことを要求者に知らせ
る。
【0093】上述されるように、順序付き転送は、要求
がバスの上に置かれている順序付きのメモリにより応答
し、そしてXA−MPバス12の要求者利得コントロー
ラおよびADDRバス28上に要求された情報のアドレ
スを、制御信号と共に置くことにより初期化される。各
機能ユニット中の順序付けされた要求キューの動作を介
し、他の機能と独立して、各機能ユニットは自己の順序
付きメモリ要求を追跡する。各機能ユニット中の順序付
き要求キューは、その機能ユニットであるか別の機能ユ
ニットであるかにかかわらず、メモリ読取りのための自
己の要求とメモリからの全ての順序付の転送を許容し、
メモリからの順序付の転送が自己の要求のひとつに応答
してXA−MPバス12の上に現れる時を検出する。機
能ユニットは、それからXA−MPバス12からデータ
を受け取ることにより応答しても良い。応答者が要求さ
れた情報とバス制御信号を、順序付き要求が受信されそ
して情報の受信をさらに確認することを要求されない順
序で、XA−MPバス12上に乗せることのみを要求さ
れる分割バス動作の応答部分において、順序付き転送
は、情報要求者と情報提供者の間に実行される初期接続
手順の通常の順序を省く。
【0094】この記述に含まれる資料を含む、今述べら
れた本発明の実施例の記述の他のセクションで述べたよ
うに順序付きバス動作の実行を簡単に検討して要約する
と、機能ユニットのバス・インターフェース制御ユニッ
トは、情報のアドレスをADDRバス28に、バス・ワ
ード用の条件付き命令をCMD30上の貯蔵物ラインま
たは2重貯蔵ライン上に乗せそして命令ストローブ(C
S)を王張することにより情報要求をXA−MPバス上
に乗せるであろう。そのアドレス・スペースが要求のア
ドレスを含むMM14は、そのアドレス・スペース内に
あるとして要求を識別しそしてACKを主張するMM1
4により指示されるように、要求を受取ることにより応
答するであろう。
【0095】他の機能ユニットにより主張されるMCI
命令により取消されないならば、メモリは要求をMCF
IFO68キュー中に配置して受信された順序で実行さ
れる。MC FIFO68に記憶された要求情報は、要
求された動作の型および要求された情報のアドレスを含
んでいる。もし要求がMCI命令により取消されるなら
ば、要求は取消されそしてMC FIFO68に配置さ
れないであろう。
【0096】要求が最終的にMC FIFO68により
実行されるならば、メモリは1以上のバス転送において
要求された情報をデータ・バス26の一つに乗せる。メ
モリはまた、データ・バス26の情報に依存して提供さ
れるORD#0またはOED#1信号、そしてデータ・
ストローブ(DS)を主張することを含む、適切な制御
信号を転送の開始時にバス上に主張する。
【0097】元の要求機能ユニットのバス・インターフ
ェース制御要素は、XA−MPバス12に現れる全ての
順序付け応答の発生を検出するように、CMDバス30
およびORD制御ラインを監視することによりXA−M
Pバス上の順序付け応答を発生を検出するであろう。も
し応答がXA−MPバス12により早く乗せられている
順序付け要求に対応しているならば、情報が送られるデ
ータ・バス26からの該情報を受取りそしてデータ・ス
トローブにより指示されたようにデータ・バス26から
の情報を読取ることにより、機能ユニットは応答するで
あろう。
【0098】システム10のこの実施例においては、メ
モリだけがオペレーション・キューをMC FIFO6
8に有し、このメモリだけが一度に1つよりも多い未処
理リクエストを収納することができる。従って、このメ
モリ以外の機能ユニットは、それらの未処理リクエスト
を記憶するために、それらのバス・インターフェース制
御エレメントにただ1つのレジスタまたはメモリが必要
になる。しかし、別の実施例として、各機能ユニットの
バス・インターフェース制御エレメントにリクエスト・
キューを与えて複数の未処理リクエストを記憶させるこ
とができる。この構成においては、各機能ユニットのイ
ンオーダー・リクエスト・キューは各MM14における
インオーダー・リクエスト・キューと同じ態様で拡張す
ることができる。
【0099】メモリ及び他の機能ユニットのバス制御イ
ンターフェースの構成及び動作について前述したので、
次にメモリ及び各機能ユニットのインオーダー・キュー
について述べることによって、メモリ及びインオーダー
・キューによって動作し信号のやり取りをする機能ユニ
ットの機能エレメントは、特にメモリ及び他の機能ユー
ットの説明を参照することによって、理解されるであろ
う。
【0100】次に図8を参照すると、機能ユニットにお
けるインオーダー・キュー及びメモリにおけるインオー
ダー・キューの機能ブロック図が示される。ここで、各
機能ユニットのバス制御インターフェース・エレメント
及び各MM14の各MC38内にインオーダー・キュー
があることに注目すべきである。
【0101】図示のごとく、機能ユニットにあるインオ
ーダー・リクエスト・キューはファンクショナル・ユニ
ット・インオーダー・キュー(FUIQ)110として
識別され、MC38にあるインオーダー・リクエスト・
キューはメモリ・インオーダー・キュー(MIQ)11
2として識別される。その各々は、リクエスト・キュー
とレスポンス・キューから構成され、それぞれファンク
ショナル・ユニット・リクエスト・キュー(FURE
Q)114、メモリ・リクエスト・キュー(MREQ)
116、ファンクショナル・ユニット・レスポンス・キ
ュー(FURSQ)118、及びメモリ・レスポンス・
キュー(MRSQ)120と呼ばれる。FUREQI1
4は機能ユニットによって与えられるインオーダー・リ
クエストを追跡し、MREQI16はMM14のための
MIC38によって受入れられたインオーダー・リクエ
ストを追跡し、FURSQ118はいずれかのMM14
からXA−MPバス12に現れたインオーダー・レスポ
ンスを追跡し、MRSQ120はいずれかのMM14か
らXA−MPバス12に現れたインオーダー・レスポン
スを追跡する。
【0102】最初にFUIQ110を参照すると、機能
ユニットのファンクショナル・ユニット・バス・コント
ロール・インターフェース(FUBCI)122は、前
述したようにXA−MPバス12上にインオーダー・リ
クエストを配置し、その各インオーダー・リクエストの
配置時に、リクエスト(REQ)の指示をFUREQ1
14に挿入する。FUREQ114は、例えば、単一ビ
ット幅のラップ・アラウンド・シフト・レジスタで構成
して、出力を入力に戻して接続することが可能であり、
それによってリクエストは充填されるまでループを回転
する。この構成においては、リクエスト指示REQの挿
入は、シフト・レジスタの入力に1ビット、例えば論理
「1」を与えることによって行われる。FUBCI11
2は、いずれかの機能ユニットによってXA−MPバス
12上に配置された各インオーダー・リクエストを検出
し、XA−MPバス12上にインオーダー・リクエスト
が現れる毎にFUREQ114をクロックすることによ
って、FUREQ114におけるREQ指示がシフト・
レジスタに沿って移動され、REQ指示の位置は、イン
オーダー・リクエストの相対順位を表すことになり、そ
の相対順位によって他のすべての機能ユニットによって
作成される他のすべてのインオーダー・リクエストに対
するその機能ユニットを表す。
【0103】FUIQ110は、FURSQ118のオ
ペレーションによってXA−MPバス12上に現れるイ
ンオーダー・レスポンスを追跡し、FURSQ118
は、FUBCI122がXA−MPバス12上のMM1
4からのインオーダー・レスポンスを検出する毎に機能
ユニットFUBCI122によってクロックされる。そ
れに応答して、FURSQ118はポインタ(ORD
P)を発生し、そのポインタはインオーダー・レスポン
スのシーケンスの中から最新のインオーダー・レスポン
スの出現を識別する。FURSQ118及びMIQ11
2内の類似のMRSQ120は、図8においては、最新
レスポンスを表す1ビットを移動させる回転シフト・レ
ジスタとして示されるが、その代わりにカウンタを使用
することも可能であり、そのカウンタの数出力は、常に
レスポンス・シーケンスにおける最新レスポンスを示す
ことになる。
【0104】FUREQ114における各REQ指示の
位置は、COMPARE122によってFURSQ11
8からのORDPと比較され、REQ指示の位置がOR
DPによって示される最新レスポンスと一致することが
検出されると、オウン・レスポンス(OPWNRES)
出力がFUBCI122に発生され、その出力は最新イ
ンオーダー・レスポンスが機能ユニットによってそれよ
り前に与えられたインオーダー・リクエストに一致する
ことを示す。
【0105】従って、要約すれば、FURSQ118
は、XA−MPバス12上の適切な順の応答の逐次的な
発生を追跡し表示する。一方FUREQ114は、XA
−MPバス12上に送出された適切な順の逐次的要求の
中の機能ユニット自体の適切な順の要求の位置を追跡し
表示する。そしてFURSQ118とFUREQ114
の同時発生は、機能ユニットによる適切な順の要求の送
出に対応する適切な順の応答を表示する。
【0106】MIQ112を参照すると、各MM14は
他のMM14と独立に適切な順の動作を実行するので、
各MM14は、XA−MPバス12上に有る全てのMM
14のより実行される適切な順の動作に関連するそれ自
身の適切な順の動作を追跡し表示することを要求され、
同時に各MM14は、それ自身のアドレス空間に向けら
れた適切な順の要求を認識して受け入れ、かつその要求
に応答する。
【0107】MIQ112はFUIQ110とほとんど
同じ仕方で動作し、MRSQ120はFURSQ118
と同じ仕方でXA−MPバス12上に現れた全ての適切
な順の応答を追跡する。しかしながら、MREQ116
は、他の全ての適切な順の要求に関連するMM14によ
り受け入れられた適切な順の要求を追跡し、要求が受け
入れられたことの表示(MYREQ)をMREQ116
が要求を受け入れる度に、MREQ116へ置く。MC
38は、XA−MPバス12上に現れた各適切な順の要
求を検出し、適切な順の要求が任意のMM14によって
受け入れられる度に、すなわちMCIによって取り消さ
れない適切な順の要求の発生の度に、MREQ116を
クロックする。説明したように、MREQ116は従っ
て、MM14によって受け入れられた種々のMYREQ
表示を含み得、従ってMREQ116は、XA−MPバ
ス12上に現れた各適切な順の要求の一連の発生を表
し、MM14によって受け入れられた各要求がMYRE
Qによって表され、かつ他のMM14によって受け入れ
られた各要求が論理「0」のような他の表示によって表
される、一連の要求表示を含み得る。
【0108】MRSQ120のORDP出力とMREQ
116からのMYREQの同時発生が有ると、これは、
それがシステム10のMM14によって受け入れられた
次の適切な順の要求であることを表すので、FUIQ1
10と同じ仕方で、COMPARE124は自己要求
(OWNREQ)出力を与え、それによってMM14が
そのMC FIFO68内に記憶していた対応する適切
な順の要求を実行するべきことを表示する。そのMM1
4のMC38は、その要求を実行することによってその
OWNREQに応答する。
【0109】適切な順の動作や乱れた順の動作の実行の
これ以上の説明は、システム10のこの説明の一部であ
る参考資料を含む、他のセクションに有る。
【0110】6.アドレス空間のマッピング 前述のように、システム10は、全てのデータ、プログ
ラム及びバス動作に関連するシステムの情報記憶機能が
単一のアドレス空間を使用するようにして、そのような
単一のアドレス空間で全ての動作を実行することによっ
て統合環境を提供する。そのような情報記憶機能は、例
えばMM14内のメモリー空間、プロセッサーユニット
42のレジスター及び、ビデオコントローラやI/Oデ
バイスの表示メモリーやオペレーティングシステム及び
パーソナルコンピュータで通常用いられるROM BI
OSのようなBIOSの記憶に必要な空間のような、他
の情報記憶機能を含み得る。
【0111】しかしながら、バスに関連する情報記憶の
管理はシステムの機能ユニットに分散されており、その
ため、例えばMM14は、MSE36によってデータや
プログラムを記憶するのに用いられるアドレス空間内の
アドレス位置を管理することができる。同様の仕方で、
PM16は機能上PM16のバス関連レジスターによっ
て占有されているアドレス空間位置を管理することがで
き、一方BM18はビデオディスプレイコントローラに
よって用いられるアドレス空間位置や読み出し専用メモ
リー及びROM BIOSのようなプログラムやデータ
を記憶するための他のメモリーのアドレス空間位置を管
理することができる。
【0112】単一のシステムアドレス空間の管理は、P
M16レジスター、MM14内の物理的記憶位置、RO
M BIOS用のROM内に与えられた記憶やビデオデ
ィスプレイコントローラ用のビデオメモリーのような種
々の記憶手段をアドレス空間内にマッピングによって本
来実行される。従ってシステム10においては、各機能
ユニットはそのバス動作関連記憶空間を単一のシステム
アドレス空間にマッピングすることができる。このマッ
ピングの一例は、以前にPM16レジスターをシステム
アドレス空間にマッピングすることに関連して論及し
た。
【0113】このプロセスは、図9に機能的かつ図解的
に示されており、該図9はそれぞれの機能ユニットで実
行される基本的なマッピング機能を示している。ここで
説明する機能が、メモリ・レジデント・テーブルまたは
プログラムされたゲート・アレイを介する等の、多数の
手法で実行することができるが、実行される基本的な機
能が、それぞれの実行に対してほほ同一であることは、
明らかであろう。
【0114】図9は、機能ユニットにおいてマッピング
を実行し、かつ、XA−MPバス(XAMP ADD
R)12を介してシステム・メモリに供給されるシステ
ム・メモリ・スペース・アドレスと、それぞれの機能ユ
ニット中の、図9において機能ユニット・メモリ・スペ
ース(FUMS)128として表している、1つまたは
複数の記憶スペースとの関連づけを実行するためのアド
レス・スペース・マップ(ASMP)126の使用態様
を示している。
【0115】図示されているように、それぞれのFUM
S128は、メモリ・スペース・サブスペース(MSS
S)130として構築すなわち仕切って構成することが
でき、MSSS130は、MM14のMSE36のよう
に、単一のメモリ・スペース内の隣接領域を表してい
る。また各FUM128は、ROM BIOSに対する
個別のROM及びビデオ・ディスプレイ・コントローラ
に対するビデオ・メモリ等の、メモリ内の個別の位置及
び機能ユニットにアクセス可能な記憶スペース内に仕切
って構成することもできる。
【0116】ADMP126は、機能ユニット・メモリ
・スペースのそれぞれのMSSS130に対するマップ
・エントリ(MPE)132を含んでおり、それぞれの
MPE132は、XAMP ADDRアドレスによって
表されるように、システム・アドレス・スペースのアド
レスまたはアドレス・レンジに対応している。
【0117】それぞれのMPE132に含まれる情報
は、ある特別の機能ユニットに依存しており、該特別の
機能ユニットに対してアドレス・スペース・マッピング
が実行され、該情報は、XAMP ADDRアドレスま
たはアドレス・レンジに対応しているメモリ・スペース
(MSSSO130)を該機能ユニットが含んでいるこ
とを表す、ビット134として表される少なくとも1つ
のビットを含んでいる。ビット134は、例えば、MM
14において用いられ、MM14が、メモリ読み出し要
求の一部分としての、XA−MPバス12を介して供給
されるアドレスによって示される情報を含んでいるメモ
リ・スペースを含んでいることを検出するために用いら
れる。
【0118】この例についてさらに説明すると、それぞ
れのMPE132は複数のビットすなわちフィールドを
さらに含んでおり、該フィールドは、行、列、及び対応
するメモリ位置を含んでいるSIMMモジュールのグル
ープを識別する情報を含んでいる。したがって、アドレ
ス位置が所定のMM14内にあるかどうかを高速で識別
するとともに、行、列、及びアドレス指定情報を含むS
IMMモジュールのグループ番号を同時に供給すること
によって、SIMMモジュールにおける物理的位置にX
A−MPバス12上のメモリ要求中のアドレスを、MP
E132からの情報が同一速度で変換することができ
る。そしてこの情報は、DRAMコントローラ72に供
給され、それにより、SIMMモジュール内のアドレス
指定された位置からの読みだし動作を、遅延なく実行す
ることができる。
【0119】システム10の機能6ユニットにおいて提
供されたアドレス・スペース・マッピング動作の別の例
においては、システム・アドレス・スペースに関連して
MSSS130のアドレス配置をオフセットすることが
望ましい。このような場合の一例として、システムすな
わちプロセッサのレジスタ等のような特殊の対象物に対
するある下位アドレスを反転する必要があるが、MM1
4がSIMMのメモリ位置で構成された隣接するアドレ
ス・スペースを含む場合が考えられる。この例において
は、MM14の外部の機能ユニットが、反転されるべき
アドレス位置を識別するためのレジスタを含み、MM1
4のMPE132をオフセットの順位でADMP126
に入れ込むことができ、それにより、MM14において
実行されるメモリ位置マッピングに、システム・アドレ
ス・スペースにおける自動オフセットを提供することが
できる。同様に、SIMMからのコード化サイズ情報が
システムにおいて用いられて、それぞれのMM14に関
するADMP126のオフセットを発生することがで
き、それにより、メモリ位置マッピングに対するそれぞ
れのMM14のアドレス・スペースが、個別のMM14
のメモリ位置をマッピングして隣接するアドレス・スペ
ースを形成するように、オフセットされる。
【0120】必要に応じ、機能ユニットのアドレス・マ
ッピング要求に応じて、MPE134に含まれる情報を
機能ユニットの間で異ならせることができ、このような
例は、MM14のメモリ位置のマッピングと比較する
と、プロセッサ・ユニット42のマッピングである。他
の機能ユニットにおいて、情報は例えば、対応するメモ
リすなわち記憶位置が書き込み不能すなわち読み出し専
用であるかどうかに、依存するようにすることができ
る。
【0121】最後に、システム10の現在の実施態様に
おいては、機能ユニットに対するアドレス・マッピング
は、システムの初期化時に実行されるか、またはその直
前に実行され、記憶され、そしてシステムの初期化時に
機能ユニットのADMP126にロードされる。
【0122】7.バス・アクセス・アービトレーション 先に述べたように、システムの機能ユニット間に分布さ
れるシステム機能の間には、システムの機能ユニットに
よるXA−MPバス12への争い(contentio
n)及び仲裁がある。
【0123】システム10の機能ユニットは「スライ
ス」とも称されるが、該機能ユニットのそれぞれは、仲
裁ライン(ARB)32に接続された仲裁ロジックを含
み、相対的優先基準に基づいてXA−MPバス12への
アクセスに対して争う。それぞれの優先度はXA−MP
バス12に沿った「スライス」の位置によって決定され
る。
【0124】図10には、システム10の仲裁機構が図
解的、機能的に表示されている。既に述べたように、仲
裁は、複数の仲裁ライン(ARB)32を介して実行さ
れ、TYUUSAIラインはARB32−0〜ARB3
2−9で示されている。システム10のそれぞれのスラ
イスすなわち機能ユニットは、図10においてはSLI
CE134−0〜SLICE134−9として表され、
したがって、システム10がスライスすなわち機能ユニ
ットを有するものとして示されている。図10の上部に
は、SLICE134からARB32への接続が図示さ
れており、図10の下部には、1つのSLICE134
における仲裁ロジックの機能ブロック図が示されてい
る。
【0125】図示されているように、SLICE134
それぞれに対する仲裁ロジックは、それぞれのARBラ
イン32に接続された入力を有する仲裁信号ラッチ(A
RBL)138と、同様にARBライン32のそれぞれ
に接続された入力を有する仲裁マスク・レジスタ(AR
BM)138と、仲裁コントロール(ARBC)140
とを含んでいる。ARBC140は、SLICE134
に対応しているARBライン32に接続され、自身のA
RBライン32上にSLICEのARB信号をアサート
する。
【0126】図10に図示されているように、スライス
134それぞれからARBライン32への接続は、AR
BM138への入力接続に関しては、他のSLICE1
34に関してシフトされている。すなわち、それぞれの
SLICE134のARBM138は、ARB32−
0、ARB32−1・・・に接続された入力を有してい
る。これらのシフトされた接続は、ARBライン32と
SLICE134との接続交差部に示した丸印によっ
て、図10にシンボル化されて示されている。これらの
丸印は、ARBライン32とARBM138への第1の
ビット入力との間の接続を示しており、順次増大する番
号がつけられた接続の方向は、丸印の側の矢印によって
示されている。ARBライン32への接続は、「ラッピ
ング・アラウンド」によって、それぞれのSLICE1
34の入力に番号順に交差し、それにより、ARBライ
ン32のそれぞれが、それぞれのSLICE134のA
RBM138入力に接続される。それぞれのARBライ
ン32はまた、ARBL136の入力に接続されている
が、これは非シフト接続である。
【0127】システム10の現在の実現態様において
は、低い優先度のスライスを含んでいるPM16で、最
も高い優先度のスライスにBRIDGE56が割り当て
られる。この割り当ては固定的なものではないが、任意
の機能ユニットを任意のスライス位置に割り当てること
ができる。スライス位置とスライスの相対的優先度とが
システムの初期化の時点で決定され、システム・マスタ
機能ユニット、これは通常BRIDGE56であるが、
該ユニットがARBC140からのARB信号出力に論
理レベルをアサートする。ARBライン32とARBM
138の入力とがシフト接続されているため、マスタ・
ユニットからの論理レベルは、ラッチのARBCM13
8を横切る一連の入力に現れ、また、任意のスライスの
ARBM138入力に論理レベルが現れる入力が、スラ
イス番号としたがってスライスの相対的優先度とを決定
する。ARBライン32の入力はラッチされて、それぞ
れのスライスのARBM138に記憶され、以下に説明
するように、XA−MPバス12へのアクセスの時点を
決定するときに「マスク」としてそれぞれのスライスに
よって後に用いられる。
【0128】ARBライン32にただ1つのスライスが
アサートされた場合には、そのスライスはXA−MPバ
ス12のコントロールを受け、かつ仲裁は要求されな
い。しかしながら、複数のスライスが同一のバス・クロ
ック・サイクルの間にARB信号をアサートした場合に
は、これらのスライスは、バスに最初にアクセスするス
ライスがどれであるかを決定するために、仲裁される。
これに関連し、仲裁機構は、クロック・サイクル毎にA
RB信号をSRBL136にラッチして、ARBC14
0において仲裁動作を実行する。
【0129】もし多数のスライスが同じクロックサイク
ルの間にそれらのARB信号をアサートしたとき、それ
らのスライスは、1つの“グループ”を形成し、このグ
ループは、それらの間でXA−MPバス12の制御を保
持するが、この保持は、それらのARB信号のアサート
を各々がそのバスへのアクセスを得るまで続け、そして
各々が、そのバス動作を実行し終えた後にそのバスへの
アクセスを放棄しそれらのARB信号を解放する、とい
うことにより行う。1グループを形成するスライス間で
のバスアクセスの選択及びシーケンスは、システム初期
化時に各スライスのARBM138に記憶された“マス
ク”を介して行う。1グループ内の各スライスは、各ク
ロックサイクル時に、そのマスクを、そのARBL13
6内にラッチされた現在のARB信号(これらは、各ク
ロックサイクル時に再びラッチされる)と比較する。こ
の動作は、通常、そのスライスのマスクを現在ラッチさ
れているARB信号と論理的にAND演算することによ
り行う。もしあるスライスのARBC140が、そのス
ライスのARBL136内に現在ラッチされているAR
B信号をもつより高い優先順位のスライスがあること、
を発見した場合、そのスライスは、優先権並びにバスの
制御を、その高優先順位のスライスに譲る。
【0130】上記グループ内の各スライスは、次に、各
連続するクロックサイクル時にそれらの間で、バス制御
の獲得について、各高優先順位のスライスがそのバス動
作を完了したときのそれらの相対的優先順位に従って仲
裁を行う。各スライスは、そのバス動作を終えると、バ
スの制御を放棄し、そしてそのARB信号のアサートを
止める。
【0131】各スライスのARBC140のロジック回
路に施された優先順位仲裁ルールによれば、あるグルー
プのメンバーであるスライスであって、しかもそのバス
動作を終えてバスの制御を放棄したかあるいはそのAR
B信号のアサートを止めることによりそのグループから
脱するかしたスライスは、バスに対する制御をアサート
しようと試みることは、そのグループのどのメンバーも
その各々のバス動作を完了するかあるいはそのグループ
のメンバーとしてARB信号のアサートを止めることに
よりそのグループから脱するかするまでは、行いそうに
ない。
【0132】更に各ARBC140のロジック回路に施
された優先順位仲裁ルールによれば、あるグループにな
いどのスライスも、そのARB信号をアサートしたりあ
るいはそのグループへの加入を試みることは、そのグル
ープのどのメンバーもそのバス動作を完了するかあるい
はそのグループから脱するかするまでは、行うことがで
きない。このルールの例外は、ある高い優先順位のスラ
イスが、あるグループに押し入ることがあるが、ただし
2つの隣接したグループに押し入ることは、もしそれが
その最初のグループからNAK処理により外に出された
場合には、行うことができない、ということである。
【0133】システム10の仲裁機構は、バスアクセス
仲裁のオーバーラップを許容するが、バスアクセスのオ
ーバーラップを許容することはしないが、これは、AR
BC140内にある手段を設けて、これにより、スライ
スは、ARB信号から、たった1つのスライスだけがあ
るグループに留まっているか、あるいは、単一のスライ
スのみがその時バスへのアクセスを要求している(即
ち、実効上、たった1つのメンバーのグループ)、とい
うことを判定できるようにする。各バス関連ラインの各
端部におけるバスラインラッチ(ARB32ラインを含
む)を介するタイミングと、連続したバスクロックサイ
クルでのARB信号ラッチ及びアクセス仲裁の交互実行
とにより、潜在的な要求者が、バスの現行の所有者のA
RB32ラインが次のバスサイクルにおいて解放される
ということを確かめ、そしてそのバスサイクルの間にそ
のARB信号をアサートすることができるようになり、
これにより、そのARB信号がその次バスサイクル時に
各スライスのARBL136にラッチされるようにす
る、ことができる。待機中の各要求者は、これにより、
バスの単一のプロセッサの前のグループの最後のメンバ
ーがそのバス動作を完了しつつある間に、バスに対する
次の仲裁を開始することができる。
【0134】最後に、前に述べたように、情報の読取に
対するある種の要求は、イン・オーダー(順序正しい)
動作ではなくアウト・オブ・オーダー(順序外れ)動作
をもたらすことがあり、そのアウト・オブ・オーダー動
作においては、その要求は、別の機能性ユニットのMC
I信号のアサートにより、メモリ内でキャンセルされ、
また、そのメモリ動作をキャンセルしたその機能性ユニ
ットはその後に、その要求を、アウト・オブ・オーダー
動作を実行することにより満たすことになる。上記した
ように、要求に対するアウト・オブ・オーダー応答にお
いては、応答側ユニットは、バスへのアクセスについて
の仲裁を行い、そしてバスの制御を得たときに、ADD
R Bus28、CMD Bus30及びDATA B
us26の動作を実効上互いに結合するが、これは、そ
のバスに、その要求された情報を、これがアウト・オブ
・オーダー応答であることを示すコマンドと、その要求
を出した機能性ユニットのアドレスとを共に置くことに
より行う。
【0135】また上記したように、要求側の機能性ユニ
ットは、単一又は多数のバスワードに対するあるいは単
一又は多数のキャッシュラインに対する要求を行うと
き、それ自身のアドレスあるいはその他の識別を送るこ
とにより自分自身の正体を示すということを行わない
が、それは、先に述べたように、その要求はイン・オー
ダー動作として満たされることが期待されているからで
ある。アウト・オブ・オーダー応答者にとっては、その
アウト・オブ・オーダー応答を行うときには要求者を識
別する必要があり、これは、仲裁機構を通して行う。即
ち、要求者がそれ自身の識別を送っていない間、要求者
のスライス番号は、本システムの各他の機能性ユニット
により利用可能となっており、従ってMCIをアサート
してメモリ動作のキャンセルするアウト・オブ・オーダ
ー応答者は、その要求者のスライス番号(図10におい
て、そのARBC140からのSlice Numbe
r(SLICEN)として識別)を読み取り記憶し、そ
してその後、アウト・オブ・オーダー応答を実行すると
きにそのスライス番号を要求者アドレスとして使う。
【0136】仲裁機構の構造、機能及び動作の更なる詳
細については、システム10の機構ユニットに関するア
ペンディックス、即ちアペンディックス5、10及び1
1(それぞれ、“仲裁ロジック−A,一B,及び一C”
と題する)にみることができる。
【0137】8.ブリッジ・インターフェース・コント
ローラ56 図11はブリッジ・インターフェース・コントローラ5
6の機能的概観のブロック図を示し、このブリッジ・イ
ンターフェース・コントローラはXA−MPバス212
とASバス20とを相互接続する。ASバス20は、
(好適な実施例において、)従来のインテルi486プ
ロセッサとそれに関連するRAMメモリとを、標準のパ
ーソナル・コンピュータ・システムの他のコンポーネン
トに相互接続するものと同じインテルi486バスであ
る。
【0138】ブリッジ・インターフェース・コントロー
ラ56は、サーバ(server)・ワークステーションのマ
ザー・ボードに設置され得、そこにおいては、ASバス
20は、従来のEISA又はMCIPCコンパチブルI
/Oバス及び従来のIBMPCコンパチブルのファイル
・サーバに用いられるタイプのコントローラ・システム
及びそれと同様のものに接続し得る。おそらく、マザー
・ボードには、ローカル・エリア・ネットワーク・アダ
プタ・カードのような、アクセサリー・カードのための
EISA又はMCIスロットが装備されているであろ
う。また、それは、1つ以上のハード・ディスク・ドラ
イブ・システム又は他のタイプの標準ディスク・ドライ
ブ・コントローラ・システムに導くSCSIバスを駆動
し得るであろう。例えば、典型的なPC142のブロッ
ク図を示す図21を参照されたい。
【0139】それは、また、ASバスと関連して、典型
的に、例えば割り込みコントローラのような、標準PC
支援用ハードウエアと、幾つかの直接メモリ・アクセス
・デバイスと、アクセサリー・デバイスがAS20への
アクセスを得ること及びAS20の制御を得ることを可
能とするバス・マスクリング・ハードウエアと、が存在
することを意図している。最も典型的には、ディスクの
読み取り及び書き込みのような、そのようなタスクを行
う直接メモリ・アクセス・デバイスが、中央処理装置か
ら受信したデータ出力コマンドに応答し、メイン・シス
テムRAMへの及びそこからのEISA又はMCAバス
・コントローラ及びブリッジ・インターフェース・コン
トローラ56を経ての、ディスク・ドライブへの及びそ
こからの直接メモリ・アクセス(DMA)読み取り及び
書き込みを始める。
【0140】図11に関して、機能的に、ブリッジ・イ
ンターフェース・コントローラはASバス20へのXA
−MPバス・ウインドウを示し、このASバス20を通
じて、DMAコントローラ及びEISA又はMCIバス
に接続された他のバス・マスタ(master)が、コマンド
が従来のi486マイクロプロセッサと関連するRAM
メモリに送られたかのようなそれと全く同じ様式で、デ
ータ記憶及び検索コマンドをアドレスすることができ
る。これらのコマンドは、シーケンサ146を経て、ウ
インドウ144を経て、XA−MPバス・インターフェ
ース148を経てXA−MPバス12に渡される。しか
しながら、これらコマンドのうちの多くのものは、XA
−MPバス21にアクセスする必要なく、ブリッジ・イ
ンターフェース・コントローラ56内のキャッシュ(後
に説明する)を参照することによって満足させられ得
る。
【0141】このブリッジ・インターフェース・コント
ローラはまた、XA−MPバス12へのi486バス・
ウインドウ150を示しており、このXA−MPバス1
2を通じて、XA−NPバス12に接続された複数のプ
ロセッサが、EISA又はMCAバスに接続されたいず
れのもの、例えば、シリアル及びパラレル通信ポート、
VGA又は他のディスプレイ装置、ROMベースのプロ
グラム・コードなど、へも直接にアクセスすることがで
きる。このようなアクセスは、キャッシュされることは
なく、XA−MPバス21からインターフェース148
を経てi486バス・ウインドウ150へ、そしてシー
ケンサ146からASバス20へ、そしてその先の多種
のアクセサリーに、直接に渡される。
【0142】ハードウエア的な観点から、ブリッジ・イ
ンターフェース・コントローラは、3個のLSIチップ
とABICチップ152(図12)と、1個又は2個の
DBICチップ154(図13)とで構成される。これ
らは、図17に示されるようにバス20及び21に接続
されている。DBICチップ154のそれぞれはXA−
MPバス21内の2つのデータ・バスの個々のものに接
続し、両方のものがASバス20に接続する。両方がキ
ャッシュ・メモリを含み、そして、関連するアドレス・
タグはABIC152内に含まれる。バスアドレスライ
ン及び制御ラインはABIC152に第一に接続し、こ
れはブリッジ・コントロール・ロジックの殆どを含む。
ブリッジ・インターフェース・コントローラの状態を定
義する状態レジスタ156はまた、ABIC152内に
含まれる。これらのレジスタはアクセス可能なようにプ
ログラムされねばならないので、シリアルI/Oインタ
ーフェース158、160及び162が与えられ、それ
によって、レジスタの値が、ASバス20のデータ・ラ
イン“0”を経てDBIC154とABIC152との
間でシリアルにシフトされ得、それによって、レジスタ
156がXA−MPバス21のデータ・バス部分からロ
ードされかつそこヘアンロード(unload)され得る。図
13及び14は、各タイプのチップにどのエレメントが
在るかを示す。残りの図面ではこの2つのタイプのチッ
プを区別しておらず、ブリッジ・インターフェース・コ
ントローラは単一のデバイスであると考えている。図1
3及び14で見られる信号の説明はアペンディクスで見
付けられる。
【0143】図14は、EISA、ISA、又はMCA
又はSCSIバス・システムにおけるASバス20の先
に在るバス・マスタ又は直接メモリ・アクセス・デバイ
スから開始されるデータ書き込み要求の処理に関連する
ブリッジ・インターフェース・コントローラ56のそれ
らエレメントを機能的な様式で示す。
【0144】ASバス書き込み要求がXA−MPバス・
ウインドウ144によって受信されると、ブリッジ・イ
ンターフェース・コントローラは、まず、i486バス
・ウインドウ150を閉じ、一時的にASバスへのCP
Uアクセスを切る(ステップ162)。(図16に示す
i486コマンド待ち行列164に記憶された)いずれ
の係属中のCPUコマンドも直ちに実行されてクリアさ
れる(ステップ166)。次に、ブリッジ・インターフ
ェース・コントローラ56は、ASバス20を、DMA
又はバス・マスタ又は他のデバイスが使用するために、
リリースする(ステップ168)。
【0145】次に、それが書き込み要求である場合、キ
ャッシュが、指定されたアドレスに対応するキャッシュ
・ラインを含んでいるかどうかについてテストされる
(i486スヌープ(snoop)・ロジック172)。ウ
インドウ144に与えられるアドレスのタグ部分がキャ
ッシュ170に与えられ、そして、比較信号が、データ
のラインがキャッシュ170内に存在するかどうかをス
ヌープ・ロジック172に知らせる。ラインが存在する
場合、HIT(ヒット)信号によって、キャッシュへの
書き込みオペレーション(ステップ174)が行われ
る。もしそれがキャッシュにおける最後のバイトである
ならば、そして、このキャッシュ・ラインが(図18 -
-図14のステップ180- - に示す変更されたビット
174によってマークされたような)変更されたバイト
を含んでいると仮定すると、ステップ180で、キャッ
シュ・ラインがRAMに自動的に書き戻され、後の入来
するキャッシュ・ラインのデータを受信するのに使用す
るために自由にされる。ここでは、複数のバイト又はワ
ードの転送が行われていると仮定している。キャッシュ
・ラインが入来するデータで一杯になるとすぐにこのよ
うにキャッシュ・ラインを自由にすることによって、デ
ータ入力プロセスが2つのキャッシュ・ラインに限定さ
れ、キャッシュ全体にオーバーライト(overwrite)せ
ず、それによって、同時に進行しているであろう他の入
力又は出力転送とインターフェーシングする。即ち、キ
ャッシュは、入来するメモリ書き込み要求のためのバッ
ファのように機能し、また、後に説明するが、他の時に
及び中央処理装置に対してI/Oキャッシュとして動作
する。
【0146】最後に、ステップ182において、キャッ
シュ・ラインにおけるn番目のバイトが書き込まれたか
どうかについてのオプションのテストが行われる(nは
調整可能)。もしそうであるならば、および、私達がこ
のキャッシュ・ラインの終わりに近付いているならば、
184で、コントローラ56はBICLコマンドを生成
する。これは、複数のプロセッサと関連するすべての他
のキャッシュによって感知される。これらのキャッシュ
のうちのいずれかが、変更された次のシーケンスのキャ
ッシュ・ラインの変更されたコピーを含むならば、この
BICLコマンドは、それらが変更されたラインをRA
Mに書き戻すようにさせ、それらのキャッシュ・エント
リを“無効”とマーク付けするようにさせる。同様に、
この、次のシーケンスの変更ラインの変更されていない
コピーを含むキャッシング・ユニット・キャッシュは、
それらのキャッシュ・エントリを“無効”とマーク付け
する。即ち、このBICLコマンド(“ブリッジ無効キ
ャッシュ・ライン(BridgeInvalidate Cache Line)”
コマンド)は、データ転送の必要なく、システムがブリ
ッジ・キャッシュにデータ・バイトを受信するようにす
る。いずれかの中央処理装置がこの同じキャッシュ・ラ
インに、それが入来するデータでロードされているとき
に、アクセスを試みると、XA−MPバスと関連するス
ヌープ・ロジック186(図18)は、このキャッシュ
・ラインは“変更された”とマークされていることを検
出し、メモリ要求の試みを、ステップ188で、替えら
れたバイトが(WBWコマンドによって、メモリが替え
られたバイトとキャッシュ・ラインの残りの部分(rema
inder)とをマージして)RAMメモリこ再記憶(resto
re)されるまでNAKする。
【0147】スヌープ・ロジック172がMISS(ミ
ス)を生成することによって示されるように、キャッシ
ュ・ラインがキャッシュ170に既に存在していなけれ
ば、190で、RAMのみが更新されたキャッシュ・ラ
インのコピーを有することを発行するためにBICLコ
マンドが生成され、ステップ174で、入来するデータ
はキャッシュ170における空のキャッシュ・ラインに
書き込まれ、その読み取り性(readability)ビット1
92(図18)がマーク付けされるとそれが幾つかの規
定されていないデータを含むことを示すようにセットさ
れ、その変更された(modified)ビット176(図1
8)のうちの適当なものによってどれが新しい入来デー
タ・バイトであるか及びどれが無効バイトであるかを示
すようにセットされる。しかし、もし幾つかの他のキャ
ッシュがこの特定のキャッシュ・ラインの変更されたコ
ピーを含んでいるならば、その特定のキャッシュと関連
するスヌープ・ロジック186は、キャッシュ・ユニッ
トに、変更された値をRAMに戻すための時間を与える
ようにNAK信号(194で検出される)を生成する。
周辺デバイスはBICLが受け入れられるまで停止(st
all)され、変更された値がRAMに戻される。殆どの
場合、ステップ182及び184は、BICLコマンド
が早い時間に出て行くようにするので、このNAK及び
後続の遅延は起こらない。
【0148】図15は、EISA、ISA、又はMCA
又はSCSIバス・システムにおけるASバス20の先
に在るバス・マスタ又は直接メモリ・アクセス・デバイ
スから開始されるデータ読み取り要求の処理に関連する
ブリッジ・インターフェース・コントローラ56のそれ
らエレメンを機能的様式で示す。
【0149】次に、読み取りの場合、キャッシュ170
は、指定されたアドレスに対応するキャッシュ・ライン
を含むかどうかについてテストされる(i486スヌー
プ・ロジック172)。ウインドウ144に与えられる
アドレスのタグ部分がキャッシュ170に与えられ、そ
して比較信号がスヌープ・ロジック172に、データの
ラインがキャッシュ170内に存在するかどうかについ
て知らせる。
【0150】キャッシュ・ラインが存在する場合にはH
ITが発生し、ステップ198が、要求されたデータを
キャッシュから待っているデバイスに転送する。ステッ
プ200で、n番目のバイト(nは調節可能)がちょう
ど読まれたところであれば、オプションで、202にお
いて、RCLコマンドが発行され、次の連続するデータ
のキャッシュ・ラインが、RAMから(又は、それが変
更された形で存在している或るキャッシュから)受信さ
れるようにする。キャッシュ・ライン・データが存在し
ない場合にはMISSが発生し、ステップ204は、R
AMメモリから(又は、それが変更されている或る他の
キャッシュから)キャッシュ・ラインを検索するRCL
コマンドを開始する。時間を節約するために、新しいキ
ャッシュ・ラインがキャッシュにロードされるのと同時
に、それはまたキャッシュをバイパスし、パラレルの経
路を経て要求しているデバイスに直接進む(ステップ2
05)。
【0151】複数のCPUによって開始されかつブリッ
ジ・インターフェース・コントローラの先にあるデバイ
スで指示されるデータの読み取り及び書き込みは、図1
6に示されるi486バス・ウインドウに送られる。こ
れらの要求には2つのタイプがあり得る。書き込みの場
合にはアクノレッジメント(acknowledgment)を必要と
する実際のCPUのI/O要求と、ある様式でASバス
20のアドレス・スペースにマップされるべきCPUメ
モリ読み取り要求及び書き込み要求とである。好適な実
施例は、図16の206で、多種のこのようなASバス
20アドレス・スペース・マッピングを含み、以下のも
のを含む。
【0152】RAMメモリの低い幾つかのメガバイト
の、ASバス・アドレス・スペースのメモリ・アドレス
側へのISAコンパチブル・マッピングがあり、4K、
16K、64K、及びIMegサイズのこのようなメモ
リのブロックは、読み取りのみ(ASバス読み取り、R
AMへ書き込み)、書き込みのみ(ASバスへ書き込
み、RAMから読み取り)、読み取り/書き込み(AS
バス読み取り及び書き込み)、及びRAMのみ(AS動
作なし)、とマーク付けされ得る。これによって、RO
MがRAMにおいて陰にされる(shadowed)ようにし、
VGA及びEGAビデオ・グラフィックス・コントロー
ラに対して要求されるように、一般にASバス・スペー
スにおける或るRAMがRAMの中に現れるようにし、
陰にするために用いられるRAMが読み取りのみに効果
的にされるように、する。また、或るRAMへのアクセ
スは、多種のPCROMBIOSプログラムによって必
要とされるようにスイッチ・オン及びオフされ得る。こ
れのすべてに必要なことはIBMPCコンパチブルのコ
ンピュータ・システムの設計の当業者には明らかであ
り、詳細な説明は必要ではない。4つの再配置可能なウ
インドウが提供され、それは、大変高いメモリ・アドレ
ス(ベース・レジスタ“relowin base”における開始ア
ドレスよりも上)を、ASアドレス・スペースにおける
2つの4MBと2つの8MBのウインドウにマップす
る。これは、オペレーティング・システムを妨害するこ
となく、ビデオ・グラフィックス・コントローラを使用
することを容易にする。このオペレーティング・システ
ムは自身の目的のためにメモリの下部の16MBのすべ
てを必要とするものである。サイズが16バイトから4
gバイトまで可変の、他のウインドウは、XA−MPメ
モリ・アドレス・サイクルを、ASバスI/Oアドレス
・スペース・サイクルにマップする。このウインドウ
は、レジスタ“begin‐con”及び“end con”によって
定められる。
【0153】これらのASアドレス・マッピングそして
読み取りのみ(read only)、書き込みのみ(write onl
y)などの特性は、レジスタ156(図17)内に記憶
された値によって定められる。これは、i486バス・
ウインドウ150が、ブリッジ・インターフェース・コ
ントローラ56の先にあるデバイスにアドレス指定され
たメモリ及びI/O読み取り及び書き込み要求を認識し
かつ押さえるようにしかつこれらの要求を押さえるよう
にする、ASバス・アドレス・マッピング206(図1
6)の結果となる。
【0154】ASバス・アドレス・スペースへのXA−
MPバス・アクセスは、(それらがNAKされていない
ならば、コマンド待ち行列164は一杯であるか、又は
i486バス・ウインドウが閉じられて、DMA又はバ
ス・マスタのデータ転送が発生しているときに図14及
び15のステップ162に続く動作を待っているの
で、)簡単に受け入れられ、ACKされ、MCIされ、
そして処理される。MCIは正常なRAMによるいずれ
の応答も取り消し、そしてCPUが、応答が“シーケン
スからはずれた(out of sequence)”応答となるであ
ろう要求を作るように、アドバイスする。
【0155】4つまでのそのような要求がバス・コマン
ド待ち行列164において、要求している中央処理装置
のスライス番号とともに、待ち行列にされる。これらの
コマンドはASバス20に与えられる。応答が戻ってく
ると、ブリッジ・コントローラ56は、メイン・バスに
対するアービトレーション(arbitrate)を行う。(そ
して、それは最高の優先順位を割り当てられているの
で、それを素早く得る。)次に、それは、要求するスラ
イスにアドレス指定されかつ戻されたデータを伴うRW
Rコマンドを生成する。または、I/Oアドレス・スペ
ース書き込みの場合、それは、単に、バス・アドレス・
サイクルのみを用いかつデータ・サイクルを用いずにI
OWR(I/O書き込み応答)コマンドを送る。
【0156】IBM PCコンパチビリティのために、
幾つかのブリッジ・インターフェース・コントローラは
割り込みアクノレッジ・コマンドに応答するように設計
され得る。複数プロセッサの中からのi486またはペ
ンティアム(Pentium)・プロセッサがハードウエア割
り込みをアクノレッジし、割り込み番号を呼ぶとき、M
BC50は、INTAコマンドを生成する。このコマン
ドは、i486バスが割り込みをアクノレッジして割り
込み番号を要求しているかのように、ASのi486バ
スに渡される。EISA又はMCIロジックによって戻
される割り込み番号は、次に、割り込み番号をデータと
してもつRWRコマンドの形でMBC50に渡し戻さ
れ、最終的に、それを必要とするペンティアム又はi4
86に与えられる。
【0157】ブリッジ・インターフェース・コントロー
ラのレジスタのアクセス・コマンドは、図17に示すス
テップ208によって処理される。
【0158】9.キャッシュ・スヌープ・ロジック 図18、19及び20は、どの1つのパリティもキャッ
シュ・ラインを所有しない対称のバス・キャッシング・
システムにおいて複数のCPU及びブリッジ・インター
フェース・コントローラのキャッシュが同時にかつ協力
して機能することを可能にするMESIキャッシュ・ス
ヌーピング・プロトコルの構造(図18)及び機能的オ
ベレーション(図19及び20)を示す。即ち、それ
は、(オーナーシップ(ownership)が排他的アクセス
(これは、唯一の、しかしキャッシュ・ラインへの排他
的アクセスではないことを意味する)によって置換され
る)従来のMOSIシステムと異なる。
【0159】規定は以下のようである。キャッシュはキ
ャッシュ・ラインのコピーを含むことができない、また
は、それは特定のキャッシュ・ラインを含むための排他
的(ただ1つの、を意味する)キャッシュであり得る、
または、他のものがまたコピーを含むならば、それはキ
ャッシュ・ラインへの共用(sharing)アクセスであり
得る、または、キャッシュ・ラインが替えられていたな
らば、それは変更されたキャッシュ・ラインであり、誰
もそれを有することができない、または、何れかの者が
それらのコピーを変更するならば、私達は私達のコピー
を、私達がそれを有していなかったかのように、無効と
マーク付けして、再使用のためのスペースを自由にしそ
して変更されたデータをメモリに送り返す。
【0160】従って、各キャッシュ・ラインは、フラッ
グ・ビットM(“変更”に対する)、E(“排他的”に
対する)、S(“共用される”に対する)及びI(“無
効”に対する)、を伴う。そして、図18に示すよう
に、信号ACK(“私はそれを有する”に対する)、N
AK(“後に再度試みよ”に対する)、MCI(“それ
はシーケンスを外れてあなたに来るであろう”に対す
る)、CMD(“私はそれが変更されたのを有する”に
対する)及びCDS(“私はそれを共用している”)
が、キャッシュを有するスライス・デバイスのすべてに
送られる。これらは、アドレスがXA−MPバス21に
与えられると、キャッシュが互いの内容をスヌープする
ことを可能にする。
【0161】図18に示されるように、各キャッシュは
タグ比較ロジック210を含み、それは、何れかのXA
−MPバス・アドレスのタグ部分とローカル・キャッシ
ュ170内に含まれるタグ212とを比較することが可
能であり、アドレスがキャッシュ170内に存在するな
らば比較信号をXA−MPバス・スヌープ・ロジック1
86に提供する。XA−MPバス・ロジックは、最初
に、ACK信号を生成する(RAMメモリがこれをし得
るがこれをし、次に、スヌープ・ロジック186はME
SIビット192を検査し、以下のものを信号で伝え
る)。
【0162】−−排他的ビット又は共用ビットがセット
されたならば、それはCDS信号を生成する。
【0163】−−MODビットがセットされたならば、
それはCMD信号を、そしてまたMCI信号を生成し、
ステップ188が、シーケンスを外れたキャッシュから
キャッシュへのRLR転送によって、変更されたキャッ
シュ・ラインを送り戻すであろうことを伝え(しかし、
ブリッジ・コントローラのキャッシュは要求をNAK
し、WCL(すべてのデータが有効である場合)又は1
つ以上のWBW(何れかが無効である場合)を用いRA
Mに替えられたデータを送り、これが完了するまでNA
Kを行い、次にキャッシュ・ラインを無効とマーク付け
する。
【0164】−−さもなければ応答がない。
【0165】ブリッジ・インターフェース・コントロー
ラと関連するキャッシュは、それが、どのバイトが有効
データであるかを示す変更されたビット176と、(周
辺デバイスのオペレーションへの出力の間に関して)キ
ャッシュ・ラインが完全に読み取り可能なデータのみを
含むかどうかを示す読み取り性(readability)ビット
192とを有する、という点で他のものと異なる。ステ
ップ188は、CPUキャッシュの場合、故障(out of
order)RLR転送を用いてキャッシュへ変更されたデ
ータ・キャッシュを転送し、そして、ブリッジ・コント
ローラの転送の場合、変更されたデータをRAMに送り
戻し、要求しているプロセッサをNAKする。ブリッジ
・コントローラのキャッシュはまた、図18の172及
び図14及び15に示すように、周辺デバイスへのキャ
ッシュとして働くが、それは、RAM及びそれと同様の
ものへのDMA転送に対してバッファとして以上に機能
するように上記で説明したように変更される。
【0166】a)書き込みサイクル キャッシュ・スヌーピング(snooping)・オペレーショ
ンは図19及び20に要約される。CPUのキャッシュ
に対して、キャッシュ・ライン270への書き込みに応
答して、ローカルのキャッシュのスヌーブ・ロジック
は、ローカルのコピーが222で“排他的”とマークさ
れたを見るために検査され、そうであるならば、224
で“変更された”とマークされる。どの他のキャッシュ
もコピーを含んでいないので、これ以上のことは行われ
る必要がない。どのXA−MPバス・アドレスもデータ
・サイクルも要求されない。
【0167】226で、“共用された”とマークとされ
ると、“PICL”コマンドが他のスヌープ・ロジック
・ユニットに送り出されて、他のキャッシュに存在する
このデータの他のコピーを無効にし、そして再び、それ
は“変更された”とマークされる。すべての他のコピー
がそれらのローカル・スヌープ・ロジックによって“無
効”とマークされる。これは、XA−MPバス・アドレ
ス・サイクルのみを用い、データ・サイクルを用いな
い。
【0168】232で、“変更された”とマークされる
と、同じステップがとられる。何れの者も“変更され
た”あるいは“排他的”コピーを有さないので、PIC
Lコマンドは、インコヒーレンシー(incoherency)・
エラーを検出することができることに留意されたい。
【0169】238で、私達のローカル・キャッシュの
コピーが無効又はなくなっている場合、或る者はRIL
を行いステップ220に戻り、キャッシュ・ラインへの
書き込みを再び試みる。
【0170】ブリッジのキャッシュに対して、ローカル
のキャッシュのスヌープ・ロジック270は、ローカル
・コピーが“変更された”とマークされているかどうか
を見るために検査をする。そうであるならば、これ以上
行われる必要がない。
【0171】“変更された”とマークされていないなら
ば、BICLコマンドが他のスヌープ・ロジック・ユニ
ットに送られて、他のキャッシュに存在するこのデータ
の他のコピーを無効にし、そしてそれは“変更された”
とマークされる。
【0172】これは、変更されたデータを含むキャッシ
ュをNAKするように及びデータをRAMに送り返すよ
うに強制し(図14のステップ184、190、194
及び196を参照せよ)、CPUのキャッシュに対して
は、変更されたデータはRAMに、それが或る新しいト
ランザクションによってローカル・キャッシュから強制
的に出されるまで、戻されない。次に、それはキャッシ
ュ書き戻し(writeback)レジスタに移動され(そこに
おいて、それはいまだアクティブなキャッシュにあ
り)、それはWCL要求によってメモリに送り戻され
る。
【0173】b)読み取りサイクル データがローカル・キャッシュに存在しない読み取り要
求は(図20、ステップ242)、RCL読み取りキャ
ッシュ・ライン・コマンドの実行で開始される。RAM
メモリは、アドレスが有効であるならばACKする。す
べてのキャッシュにおけるスヌープ・ロジック186
は、衝突(collision)に対してアドレス及びローカル
・キャッシュを試験し、次に、ヒットが存在する場合に
はMESIビットの状態を検査する。CMD信号は、変
更されたコピーが或るキャッシュに存在することを示
し、CDS信号は、変更されていないコピーがどこかに
存在することを示す。CMDまたはCDS応答がない場
合(ステップ244及び246)、戻されたキャッシュ
・ラインは248で排他的とマークされる。他のコピー
がどこかに存在したならば(ステップ246)、すべて
のコピーは“共用される”とマークされる。変更された
コピーがCPUのキャッシュに存在したならば(ステッ
プ252)、変更されたコピーを含むキャッシュはMC
I信号に応答し(ステップ258)、ステップ260
で、キャッシュに直接にキャッシュする変更されたキャ
ッシュ・ラインの、シーケンスから外れた転送を開始す
る。同じ変更された値に対するこのような要求の素早い
シーケンスは、ウォーターフォール(waterfall)効果
を引き起こすことができ、そこでは、それはキャッシュ
からキャッシュへ迅速に転送され、1つのキャッシュ
(最後のキャッシュ)のみがその“変更された”信号の
組を有する。
【0174】変更された値を含むキャッシュがブリッジ
・コントローラ・キャッシュであるならば(ステップ2
52)、データは、たぶん、DMA転送からRAMに到
着しているところである。この場合、読み取りキャッシ
ュ・ラインの要求は、ブリッジ・コントローラのスヌー
プ・ロジックによってNAKされ、そして、変更された
データはRAMに書き込まれる(図20のステップ25
6及び図18のステップ188)。
【0175】ブリッジI/Oロジック及びオペレーショ
ンの更なる詳細は、アペンデイックス9の“ブリッジ・
インターフェース・コントローラ”と題されたところで
見つけられる。
【0176】10.プロセッサ・モジュール16 上記で説明したシステム10の特徴、構造、及びオペレ
ーションは、このシステムの必要不可欠なすべての機能
的ユニットにおいて実現されるので、PM16の基本的
なオペレーションの特徴は、上記の説明から及びPM1
6のエレメントに関係する適切なアペンデイックスか
ら、理解されるであろう。その中には、“メモリ・バス
・コントローラ”と題されたアペンデイックス6と、
“プロセッサ・データ経路”と題されたアペンデイック
ス7とが含まれる。
【0177】従って、以下に、適切なアペンデイックス
と、PM16の特徴とシステム10の以前説明した特徴
との関係とを理解するのを助けるために、要約ブロック
図のレベルでPM16を説明する。
【0178】図22を参照すると、PM16の全体のブ
ロック図が示されており、そして、以前説明したよう
に、各PM16はプロセッシング・ユニット42を含
み、それは、第2のキャッシュ機構46に関連するプロ
セッシング・ユニット42に対する第一キャッシュ支持
データ及び命令の読み取り及び書き込みと、直接のプロ
セッサ・ユニット42のオペレーションを支持するため
の第2のキャッシュ・ディレクトリ48とを含む。PM
16のこの好適な実施例に関連するアペンデイックスに
おいて、プロセッサ・ユニット42はタイトルP5によ
って指定され、キャッシュ・ディレクトリ48及び第2
のキャッシュ46はタイトルC5C及びC8Cによって
指定され、そこにおいて、P5はペンティアム・マイク
ロプロセッサであり、C5C及びC8Cは、インテル社
からの関連のキャッシュ機構であり、適切な製品書類に
おいてこれらのタイトルで呼ばれることに留意された
い。
【0179】各PM16は、更に、割り込み処理のため
のアドバンスト・プロセッサ割り込みコントローラ(Ad
vanced Processor lnterrupt Controller)(APIC
54)と、スヌーピング・オペレーションで用いるため
のキャッシュ機構44のタグ・ディレクトリの複製を記
憶するための複製ディレクトリ(Duplicate Director
y)300とを含む。
【0180】各PM16は、また、以前説明したよう
に、XA−MPバス12に関するPM16のオペレーシ
ョンを制御するためのMBC50と、2つのPDP52
の形である2つのデータ経路、即ち、1つは偶数データ
・バス26用で1つは奇数データ・バス26用、とを含
む。
【0181】a.メモリ・バス・コントローラ50 次に図24及び図25を参照すると、MBC50に更に
重点を置いた更なるブロック図が図解されている。図2
3は、図24と図25との関係を示す。示されているよ
うに、MBC50は、PDPs52を制御するプロセッ
サ・データ・パス制御302と、ACK/NAK発生器
304とアドレス・レジスタ(A)306と、スライス
のスライス番号を記憶するスロットID308と、アド
レス・デコード・メカニズム(ADDR デコード)3
10とを含む。
【0182】MBC50は、更に、制御レジスタ312
とADAMP126との組と、状態及び識別レジスタ3
12の組と、実行モニタ・レジスタ314とを含む。M
BC50は、また、「Tag RAM」と示され、状態
情報を記憶する関連する状態RAM318を有する複写
(duplicate)ディレクトリ300を制御する第2のタ
グ・コントローラ316を含む。
【0183】図26を参照すると、MBCは、更に、X
A−MPインターフェース制御322、クロック発生器
322、仲裁論理324、スヌープ制御論理186、ア
ドレス・マッピング制御326、トラップ/状態論理3
28及び誤り論理330を含む種々の制御論理を含む。
【0184】b.プロセッサ・データ・パス52 次に図27を参照すると、PDP52のブロック図が示
されている。示されているように、PDP52は、XA
−MPバス12へのXA−MPバス・インターフェース
332と、出力FIFO334と、入力FIFO336
と、キャッシュ・メカニズム44へのキャッシュ・デー
タ・インターフェース338とから成る。入力データ・
パスに関連するのは入力データ・パリティ・チェック3
40であり、出力データ・パスに関連するのは出力パリ
ティ制御342である。
【0185】PDP52とMBC50との間のインター
フェースは、MBCインターフェース344、MBC−
IN346及びMBC−OUT348を介して提供され
る。PDP52の動作は、状態マシン350によって提
供される。
【0186】PDP52は、更に、エラー・コレクタ3
60、クロック信号を与える位相ロック・ループ362
及び走査制御364を含む。
【0187】以上で本発明の現時点での好適実施例を終
わる。以上で述べてきた発明は、その本質的な特性から
離れることなくこれ以外の形式でも具体化され得る。よ
って、この実施例は、あらゆる点において説明のための
ものであって制限を意図したものではなく、本発明の範
囲は、以上の説明ではなく、請求の範囲によって示され
る。請求の範囲の均等の意味及び範囲に含まれるあらゆ
る変更及び修正は、したがって、その範囲内に含まれる
ものとする。
【図面の簡単な説明】
【図1】図2と図3との関係を示す図である。
【図2】本発明を組み入れたシステムのブロック図であ
る(図3に続く)。
【図3】本発明を組み入れたシステムのブロック図であ
る(図2に続く)。
【図4】メモリ・コントローラのブロック図である。
【図5】メモリ・データ・パスのブロック図である。
【図6】訂正行列(correction queue)のブロック図で
ある。
【図7】適合的(adaptive)メモリ・タイミング論理の
ブロック図である。
【図8】インオーダ(in-order)な要求/応答行列のブ
ロック図である。
【図9】アドレス空間マッピングのブロック図である。
【図10】バス・アクセス仲裁メカニズム能力ブロック
図である。
【図11】入出力ブリッジのブリッジである。
【図12】ブリッジ・バス・インターフェース・コント
ローラのブロック図である。
【図13】ブリッジ・キャッシュのブロック図である。
【図14】書き込み要求に対するブリッジ・インターフ
ェース・コントローラのブロック図である。
【図15】読み取り要求に対するブリッジ・インターフ
ェース・コントローラのブロック図である。
【図16】バス・ウインドウに対するブリッジ・コント
ローラのブロック図である。
【図17】ブリッジ・インターフェース・レジスタ・デ
ータ・パスのブロック図である。
【図18】ブリッジ・インターフェース・コントローラ
及びスヌープ(snoop)のブロック図である。
【図19】書き込み要求のスヌープの流れ図である。
【図20】読み取り要求のスヌープの流れ図である。
【図21】パーソナル・コンピュータのブロック図であ
る。
【図22】プロセッサの機能ユニットのブロック図であ
る。
【図23】図24と図25との関係を示す図である。
【図24】メモリ・バス・コントローラのブロック図で
ある(図25へ続く)。
【図25】メモリ・バス・コントローラのブロック図で
ある(図24へ続く)。
【図26】メモリ・バス・コントローラの制御構造のブ
ロック図である。
【図27】プロセッサ・データ・パスのブロック図であ
る。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 598111386 One Packard Bell Wa y,Sacramento,Califo rnia95828,United Stat es of America (72)発明者 ディプラシド,ブルーノ アメリカ合衆国マサチューセッツ州02026, ディーダム,プレザント・レーン 12 (72)発明者 ジョイス,トーマス アメリカ合衆国マサチューセッツ州01886, ウエストフォード,オールド・ホームステ ッド・ロード 11 (72)発明者 マサッチ,マーティン アメリカ合衆国マサチューセッツ州01803, バーリントン,アーバリータム・ウェイ 511 (72)発明者 マクナリー,ランス アメリカ合衆国マサチューセッツ州01469, タウンゼント,シャーリー・ロード 11 (72)発明者 マーレー,トーマス・エル,ジュニア アメリカ合衆国ニューハンプシャー州 03049,ホリス,キャメロン・ドライヴ 37 (72)発明者 ニッビー,チェスター,ジュニア アメリカ合衆国マサチューセッツ州01915, ビバリー,ブリッジ・ストリート 183 (72)発明者 ペンス,マイケル アメリカ合衆国マサチューセッツ州01824, チェルムズフォード,ステッドマン・スト リート 98 (72)発明者 サンファコン,マーク アメリカ合衆国マサチューセッツ州01863, ノース・チェルムズフォード,プリンスト ン・ストリート・ナンバー301 71 (72)発明者 シェン,ジアン−クオ アメリカ合衆国マサチューセッツ州02178, ベルモント,ヒル・ロード・ナンバー 611 53 (72)発明者 ソマーズ,ジェフリー アメリカ合衆国マサチューセッツ州01852, ローウェル,ボウデン・ストリート 132, アパートメント 208 (72)発明者 ステイナー,ジー・ルイス アメリカ合衆国マサチューセッツ州01757, ミルフォード,ロビン・ロード 3

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数のメモリ素子に接続されるように適
    用される複数のポートを有し、コンピュータ・システム
    における複数のパーティションにされたメモリ素子を制
    御するためのタイミング信号を適合的に生成するメモリ
    ・コントローラであって、 少なくとも2つの異なるメモリ素子のタイミング特性を
    表す複数のタイミング特性値を提供する提供手段を備
    え、前記提供手段は、前記少なくとも2つの異なるメモ
    リ素子を受け入れるための複数のポートを提供し、更に
    前記提供手段は、前記の複数のメモリ素子に対するタイ
    ミング特性を記憶する手段と、前記複数のポートの少な
    くとも1つへ接続されたメモリ素子のタイプを検知する
    手段とを含み、前記提供手段は、検知された前記メモリ
    素子に対するタイミング特性を発生する、 メモリ・コントローラ。
  2. 【請求項2】 複数のメモリ素子に接続されるように適
    用される複数のポートを有し、コンピュータ・システム
    における複数の少なくとも2つの異なるメモリ素子を制
    御するタイミング信号を適合的に発生するメモリ・コン
    トローラであって、 1つ以上の異なるタイプのメモリ素子に対するメモリ・
    タイミング・イベントの間の時間間隔を表す複数のタイ
    ミング制御値を自動的に提供する提供手段であって、前
    記1つ以上のメモリ素子の各々に対応する1つ以上のプ
    ロフィールを記憶し、 前記タイミング制御値は、メモリ動作サイクルの開始に
    対するタイミング・イベントを表す第1のタイミング制
    御値と、その他のタイミング・イベントに対するタイミ
    ング・イベントを表す第2のタイミング制御値とを含
    む、提供手段と、 前記第1のタイミング制御値及び前記第2のタイミング
    制御値に応答して、前記メモリ素子の第1のパーティシ
    ョンの動作を制御するためのタイミング信号を発生する
    第1のパーティションを制御する手段と、 前記第1のタイミング制御値及び前記第2のタイミング
    制御値に応答して、前記メモリ素子の第2のパーティシ
    ョンの動作を制御するためのタイミング信号を発生する
    第2のパーティションを制御する手段とを備え、 前記メモリ素子はインターリーブされたメモリ・サイク
    ルで動作し、且つ前記タイミング制御値はメモリ・サイ
    クルのインターリーブに対するタイミング・イベントを
    更に表すように構成したメモリ・コントローラ。
JP11000197A 1993-04-30 1999-01-04 デ―タ処理システムにおけるメモリ・コントロ―ラ Pending JPH11338760A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US5705293A 1993-04-30 1993-04-30
US057052 1993-04-30

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP52461794A Division JP3255922B2 (ja) 1993-04-30 1994-04-28 統一された環境と分散されたシステム機能とを有する対称的マルチプロセシング・システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004212884A Division JP2004310794A (ja) 1993-04-30 2004-07-21 データ処理システムにおけるメモリ・コントローラ

Publications (1)

Publication Number Publication Date
JPH11338760A true JPH11338760A (ja) 1999-12-10

Family

ID=22008220

Family Applications (8)

Application Number Title Priority Date Filing Date
JP52461794A Expired - Lifetime JP3255922B2 (ja) 1993-04-30 1994-04-28 統一された環境と分散されたシステム機能とを有する対称的マルチプロセシング・システム
JP16104798A Expired - Lifetime JP3957240B2 (ja) 1993-04-30 1998-06-09 データ処理システム
JP10161033A Pending JPH1153254A (ja) 1993-04-30 1998-06-09 データ処理システム
JP10161058A Pending JPH11126183A (ja) 1993-04-30 1998-06-09 データ処理システムにおける入力及び出力ブリッジ
JP11000197A Pending JPH11338760A (ja) 1993-04-30 1999-01-04 デ―タ処理システムにおけるメモリ・コントロ―ラ
JP2003425646A Expired - Lifetime JP4209764B2 (ja) 1993-04-30 2003-12-22 データ処理システムにおける入力及び出力ブリッジ
JP2004212884A Pending JP2004310794A (ja) 1993-04-30 2004-07-21 データ処理システムにおけるメモリ・コントローラ
JP2005302835A Expired - Lifetime JP4106664B2 (ja) 1993-04-30 2005-10-18 データ処理システムにおけるメモリ・コントローラ

Family Applications Before (4)

Application Number Title Priority Date Filing Date
JP52461794A Expired - Lifetime JP3255922B2 (ja) 1993-04-30 1994-04-28 統一された環境と分散されたシステム機能とを有する対称的マルチプロセシング・システム
JP16104798A Expired - Lifetime JP3957240B2 (ja) 1993-04-30 1998-06-09 データ処理システム
JP10161033A Pending JPH1153254A (ja) 1993-04-30 1998-06-09 データ処理システム
JP10161058A Pending JPH11126183A (ja) 1993-04-30 1998-06-09 データ処理システムにおける入力及び出力ブリッジ

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2003425646A Expired - Lifetime JP4209764B2 (ja) 1993-04-30 2003-12-22 データ処理システムにおける入力及び出力ブリッジ
JP2004212884A Pending JP2004310794A (ja) 1993-04-30 2004-07-21 データ処理システムにおけるメモリ・コントローラ
JP2005302835A Expired - Lifetime JP4106664B2 (ja) 1993-04-30 2005-10-18 データ処理システムにおけるメモリ・コントローラ

Country Status (6)

Country Link
EP (4) EP1067459B1 (ja)
JP (8) JP3255922B2 (ja)
AT (3) ATE249643T1 (ja)
CA (3) CA2215701C (ja)
DE (3) DE69429059D1 (ja)
WO (1) WO1994025914A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69429059D1 (de) * 1993-04-30 2001-12-20 Packard Bell Nec Inc Adaptive speichersteureinrichtung für ein symmetrisches mehrprozessorsystem
US6282647B1 (en) * 1999-06-02 2001-08-28 Adaptec, Inc. Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
JP2006293969A (ja) * 2005-03-17 2006-10-26 Fujitsu Ltd データ転送装置
JP4443474B2 (ja) 2005-06-14 2010-03-31 株式会社ソニー・コンピュータエンタテインメント コマンド転送制御装置およびコマンド転送制御方法
JP5168800B2 (ja) * 2006-03-08 2013-03-27 富士通株式会社 マルチプロセッサシステム
JP5079342B2 (ja) 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
US7979616B2 (en) * 2007-06-22 2011-07-12 International Business Machines Corporation System and method for providing a configurable command sequence for a memory interface device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4760515A (en) * 1985-10-28 1988-07-26 International Business Machines Corporation Arbitration apparatus for determining priority of access to a shared bus on a rotating priority basis
JPS6462741A (en) * 1987-09-02 1989-03-09 Mitsubishi Electric Corp Main storage device
JPH01102661A (ja) * 1987-10-15 1989-04-20 Hitachi Ltd 記憶装置のバンク制御方式
JPH0212541A (ja) * 1988-04-29 1990-01-17 Internatl Business Mach Corp <Ibm> コンピユーテイング・システム及びその動作方法
US5111423A (en) * 1988-07-21 1992-05-05 Altera Corporation Programmable interface for computer system peripheral circuit card
US5117350A (en) * 1988-12-15 1992-05-26 Flashpoint Computer Corporation Memory address mechanism in a distributed memory architecture
US5155824A (en) * 1989-05-15 1992-10-13 Motorola, Inc. System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
JPH0373040A (ja) * 1989-08-14 1991-03-28 Nec Corp キャッシュメモリ
JPH03167649A (ja) * 1989-11-28 1991-07-19 Nec Corp ウエイト・サイクル制御装置
JPH0435540A (ja) * 1990-05-31 1992-02-06 Fujitsu Ltd バス調停装置
US5283877A (en) * 1990-07-17 1994-02-01 Sun Microsystems, Inc. Single in-line DRAM memory module including a memory controller and cross bar switches
US5522064A (en) * 1990-10-01 1996-05-28 International Business Machines Corporation Data processing apparatus for dynamically setting timings in a dynamic memory system
JPH0715665B2 (ja) * 1991-06-10 1995-02-22 インターナショナル・ビジネス・マシーンズ・コーポレイション パーソナルコンピユータ
US5327570A (en) * 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
DE69429059D1 (de) * 1993-04-30 2001-12-20 Packard Bell Nec Inc Adaptive speichersteureinrichtung für ein symmetrisches mehrprozessorsystem

Also Published As

Publication number Publication date
EP0648355A1 (en) 1995-04-19
CA2215844A1 (en) 1994-11-10
JP2004280787A (ja) 2004-10-07
CA2215844C (en) 2001-09-04
EP1071018A3 (en) 2001-02-07
EP0648355B1 (en) 2001-11-14
DE69434144D1 (de) 2004-12-23
JP4209764B2 (ja) 2009-01-14
EP1056020A3 (en) 2001-12-05
JPH07508611A (ja) 1995-09-21
ATE249643T1 (de) 2003-09-15
EP1067459A2 (en) 2001-01-10
CA2138537A1 (en) 1994-04-28
EP1056020B1 (en) 2004-11-17
JP4106664B2 (ja) 2008-06-25
WO1994025914A2 (en) 1994-11-10
JP3255922B2 (ja) 2002-02-12
JPH1185681A (ja) 1999-03-30
EP1056020A2 (en) 2000-11-29
EP1067459A3 (en) 2001-02-07
WO1994025914A3 (en) 1995-01-05
EP1067459B1 (en) 2013-08-28
JP2006085728A (ja) 2006-03-30
ATE282856T1 (de) 2004-12-15
JPH11126183A (ja) 1999-05-11
DE69429059D1 (de) 2001-12-20
EP1071018A2 (en) 2001-01-24
DE69433147D1 (de) 2003-10-16
CA2138537C (en) 2003-02-25
JP2004310794A (ja) 2004-11-04
EP1071018B1 (en) 2003-09-10
CA2215701C (en) 2002-02-26
CA2215701A1 (en) 1994-11-10
ATE208926T1 (de) 2001-11-15
JP3957240B2 (ja) 2007-08-15
JPH1153254A (ja) 1999-02-26

Similar Documents

Publication Publication Date Title
US6047355A (en) Symmetric multiprocessing system with unified environment and distributed system functions
US5809340A (en) Adaptively generating timing signals for access to various memory devices based on stored profiles
US7584330B2 (en) Multi-processor data coherency
US6366984B1 (en) Write combining buffer that supports snoop request
US5774700A (en) Method and apparatus for determining the timing of snoop windows in a pipelined bus
US5659710A (en) Cache coherency method and system employing serially encoded snoop responses
US5809280A (en) Adaptive ahead FIFO with LRU replacement
US5659709A (en) Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus
JPH09114736A (ja) パケット交換型キャッシュコヒーレントマルチプロセッサシステムのデータプロセッサ用高速デュアルポート型キャッシュコントローラ
JP4106664B2 (ja) データ処理システムにおけるメモリ・コントローラ
US5987544A (en) System interface protocol with optional module cache
US6334159B1 (en) Method and apparatus for scheduling requests within a data processing system
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
Bell et al. Pentium Pro processor workstation/server PCI Chipset
US6546470B1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers with banked directory implementation
JPH04102146A (ja) 高性能キャッシュ
US20030101280A1 (en) Fast jump address algorithm

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20031208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040721

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040915

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20041112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060320