JP2780032B2 - マルチプロセッサディジタルデータ処理システム - Google Patents

マルチプロセッサディジタルデータ処理システム

Info

Publication number
JP2780032B2
JP2780032B2 JP63322254A JP32225488A JP2780032B2 JP 2780032 B2 JP2780032 B2 JP 2780032B2 JP 63322254 A JP63322254 A JP 63322254A JP 32225488 A JP32225488 A JP 32225488A JP 2780032 B2 JP2780032 B2 JP 2780032B2
Authority
JP
Japan
Prior art keywords
central processing
signal
information display
processing unit
access
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.)
Expired - Fee Related
Application number
JP63322254A
Other languages
English (en)
Other versions
JPH01281555A (ja
Inventor
スティーブン・ジェイ・フランク
ヘンリー・バークハート・ザ・サード
リンダ・キュー・リー
ネイザン・グッドマン
ベンソン・アイ・マーギュリス
フレデリック・ディー・ウェーバー
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH01281555A publication Critical patent/JPH01281555A/ja
Application granted granted Critical
Publication of JP2780032B2 publication Critical patent/JP2780032B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/0817Cache consistency protocols using directory methods
    • 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/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or 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/10Address translation
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4637Interconnected ring systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/27Using a specific cache architecture
    • G06F2212/272Cache only memory architecture [COMA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、ディジタルデータ処理システムに関し、特
定すると、分散型階層メモリアーキテクチャを備える多
重処理システムに関する。
[従来技術、発明が解決しようとする課題] 従来技術によれば、多重処理システムの処理ユニット
を結合するため、多数の形態がある。従来設計の1つと
して、システムメモリバンクに記憶されるデータを共有
する処理ユニットが、広バンド幅共有バスまたはスイッ
チング回路網を介してそのバンクに結合されるものがあ
る。この設計においては、激しい使用期間中、複数の処
理ユニットが共有データへのアクセスを同時に主張する
ときに障害が生ずるようであった。
伝送障害の形成の危険を最小にするため、個々の処理
ユニットを局部的メモリ要素と結合して半独立的な処理
セルを形成する分散型メモリシステムが開発された。多
重処理の利益を達成するために、最近設計されたものの
中には、階層的アーキテクチャの利用を通じてセル通信
を確立したものがある。
しかしながら、分散型メモリシステムは、単一のデー
タアイテムの複数のコピーを多重処理セル内に存置させ
る。それゆえ、全処理セルが同じデータ要素の同一のコ
ピーを維持するのを保証するのが難しい。この問題を解
決しようとする、すなわちデータのコヒーレンシ(一貫
性)を維持しようとする従来の努力は、複雑な信号送出
機構を利用するソフトウェア指向の技術に依存する。こ
れらのソフトウエア指向の解決法と関連する処理および
信号送出のオーバヘッドを避けるため、Frank等の米国
特許第4,622,631号は、関連するメモリまたはキャッシ
ュを各々有する複数のプロセッサが、主メモリ要素に含
まれるデータを共有する多重処理システムを開示してい
る。共有メモリ内のデータは、ブロックに仕切られ、各
ブロックが、主メモリおよび複数のプロセッサのいずれ
か1つにより所有できる。データブロックの現在の所有
者は、そのブロックに対して正いしデータを有するとい
われる。
Wilson Jr.等の英国特許第2,178,205号には、階層的
手法が開示されているが、この手法にあっては、多重処
理システムが、1つの(第1の)バスを介して相互に結
合された分散型キャッシュメモリ要素を含むといわれ
る。第1のバス、およびさらに高レベルまたは主システ
ムメモリのいずれかに取り付けられた第2の、より高レ
ベルのキャッシュメモリーが、その下のキャッシュ内の
各メモリ位置のコピーを保持する。さらに高レベルのキ
ャッシュ(もしあれば)およびシステム主メモリは、順
次、その下にあるキャッシュの各メモリ位置のコピーを
保持する。Wilson Jr.等のプロセッサは、それ自体の専
用のキャッシュからのデータの変更されたコピーを、関
連するより高レベルのキャッシュおよびシステム主メモ
リに伝送し、同時に他のキャッシュに信号して、その新
たに変更されたデータのそれ自体のコピーを無効化する
ものと理解される。
Frank等およびWilson Jr.により提案された解決法に
拘らず、データのコヒーレンシおよびバスの競合は、依
然として多重処理システムの設計者や使用者に対して重
要な問題として残った。例えば、Wilson J.等に関して
いうと、これらの問題は、主メモリ内のデータが、シス
テム内の各プロセッサによりデータ要素に導入される恒
久的変更を反映するようにつねに更新されねばならない
という必要性にも起因する。さらに、提案された設計
は、いずれも、限定された以上の数の処理ユニットを支
持できない。この規模上の制限は、Wilson Jr.等および
Frank等のシステムにあっては、主メモリの寸法が各追
加のプロセッサに順応するように増大されねばならない
という必要性から生ずる。それゆえ、本発明の目的は、
データのコヒーレンシが改善されるとともに待ち時間お
よびバスの競合が低減された改善された多重処理システ
ムを提供することである。
本発明の他の目的は、データのコヒーレンシを維持す
るためにソフトウエアのオーバーヘッドを殆どまたは全
く必要としない物理的に分散されたメモリを有する多重
処理システムを提供するとともに、バス帯域幅が改善さ
れ同期が改良された多重処理システムを提供することで
ある。
[課題を解決するための手段] 本発明は、その広い一側面として、階層のリングに配
列された複数の処理セルより成るディジタルデータ処理
システムを提供することにより、上述の目的を達成す
る。システムは、メモリを選択的に割り当て、セルによ
り発生されるアクセス要求に応答して排他的データコピ
ーをセルからセルへ移動させる。データアクセス要求
(更新および転送)をリング上に選択的に送り出すた
め、ルート指定要素が使用される。
本発明により提供されるシステムは、主メモリ要素、
すなわちシステムの多くのプロセッサに結合されそれに
より共有されるメモリを必要としない。システムにより
維持されるデータは、排他的および共有的に、これらの
プロセッサと関連されるメモリ要素間に分配される。い
ずれか1つの処理要素に排他的に記憶されたデータの変
更は、バス構造体に沿って他の記憶領域に通信されねば
ならない。この設計の結果、プロセッサが動的に共有す
る(例えば実行中のプログラムそれ自体により要求され
る共有)データのみが、バス構造体に沿って伝送されれ
ば足りる。これらの側面は、システムの階層的構造とと
もに、信号トラフィックを大幅に局部化し、それにより
バスの競合および障害を減ずる。
システムの構造および要素の相互接続にさらに注目す
ると、処理セルは、物理的データおよび制御信号スト
ア、ディレクトリおよび制御要素をそれぞれ備えるメモ
リ要素と結合される中央処理ユニットを備える。セル群
は、単一方向セル間バスリングに沿って相互接続され、
セグメントとして言及されるユニットを形成する。これ
らのセグメントは、一緒に、情報転送領域(ドメイン)
(0)として言及されるより大きなユニットを形成す
る。各セグメント内に存在するセルは、関連するセル間
バスを介して相互に直接通信できるが、関連する中央処
理ユニットは、それ自体相互に接続されない。セグメン
ト間通信は、メモリ要素に記憶されるデータおよび制御
信号の交換によって実施されるのである。メモリ管理要
素が、この情報転送を促進する。
異なる領域(0)セグメントのセル間の通信は、より
高レベル情報転送領域上で実施される。これらのより高
レベルの領域は、各々単一方向バスリングを介して結合
される複数の領域ルート指定要素より成る1または複数
のセグメントより構成される。より高レベル領域のセグ
メントがルート指定要素のリングより成り、領域(0)
のセグメントが処理セルリングより成るゆえ、前者は後
者と異なることを理解されよう。各ルート指定要素は、
次のより低レベルの情報転送領域のセグメントの関連す
る一つと結合される。これらの結合された低レベルのセ
グメントは、デセンダントと称せられる。各情報転送領
域は、次のより低レベルの領域より少数のセグメントを
有する。システムの最高位のレベル領域の単一のセグメ
ントは別として、信号は次のより高レベル領域のセグメ
ントを介して各情報転送領域のセグメント間において転
送される。
6の領域(0)セグメントを有する例示のシステム
は、2つの領域(1)セグメントを含む。しかして、第
1の領域(1)セグメントは、領域(0)セグメントの
最初の3つの間でデータを転送し、第2の領域(1)セ
グメントは他の3つの領域(0)セグメント間において
情報を転送する。データは、各々領域(1)セグメント
の対応するものと接続する2つの領域ルート指定要素を
有する領域(2)を介して2つの領域(1)セグメント
間において転送される。
各システムメモリ要素は、対応するメモリに記憶され
る各データのアイデンティティおよび状態を表わすディ
スクリプタのリストを維持するディレクトリ要素を含
む。各デスクリプタの一部は、関連するデータシステム
アドレスから導かれ、他の部分は、局部的中央処理ユニ
ットがデータを利用し得る態様を支配するアクセス状態
を表わす。このアクセス状態は、「所有者」状態、リー
ドオンリー状態および無効状態の任意の1つを含むこと
ができる。これらの状態の第1のものは、局部的中央処
理ユニットすなわち、データが記憶されるセル内に含ま
れるユニットにより変更できるデータと関連される。リ
ードオンリー状態は、局部的中央処理ユニットにより読
み取ることができるが変更できないデータと関連する。
無効状態は、無効データコピーと関連される。
領域ルート指定要素それ自体は、それらのデセンダン
ト領域(0)セグメントに記憶される全デスクリプタを
リストするディレクトリを維持する。かくして上述の例
おいて、第1の領域(1)セグメントのルート指定要素
は、それらの各領域(0)セグメントのセルの結合され
た内容を反映するディレクトリを維持する。さらに、領
域(2)セグメントの単一のルート指定要素は、システ
ム処理セルのすべてに保持される全デスクリプタをリス
トするディレクトリを維持する。
プロセッサにより発生されるデータアクセス要求は、
可能な場合、局部メモリ要素により処理される。詳述す
ると、各メモリと結合されるコントローラは、セルの内
部バスを監視し、局部的プロセッサ要求を対応するディ
レクトリにリストされるデスクリプタと比較することに
より該要求に応答する。整合データが見出された場合
は、該データは、内部バスに沿って要求するプロセッサ
に転送される。
局部的に解決できないデータ要求は、処理セルからメ
モリ管理システムに通される。管理要素は、これろの未
解決のデータ要求を他の処理セルにルート指定する。こ
のルート指定は、要求されるディスクリプタを領域ルー
ト指定ユニットのディレクトリエントリと比較すること
により遂行される。これらの各セルと関連する制御要素
は、要求されたデータを見出すためそれ自体の関連する
ディレクトリを尋問する。進行中の要求を満足させるデ
ータは、領域セグメント階層に沿って、遠隔セルから要
求セルにルート指定される。
処理セル間のデータ移動は、各セル要求を、要求され
るアイテムと関連するアクセス状態に関して比較評価す
ることを包含するプロトコルによって支配される。メモ
リ管理システムは、データの排他的所有要求に応答し
て、そのデータを要求セルのメモリ要素に移動させる。
同時に、メモリ管理要素は、要求するセルのデータ記憶
域内の被要求アイテムに対して物理的記憶空間を割り当
てる。管理要素はまた、遠隔セルのデータストア内の被
要求アイテムと関連するデスクリプタを無効化し、要求
するセルへの転送前に要求されたアイテムを保持した物
理的記憶空間の続いての割当て解除を行なう。
上述の動作は、要求するセル内に被要求データの排他
的記憶をもたらすが、他のセルは、例えば、リードオン
リーベースで、続いてそのデータに同時にアクセスでき
る。特に、メモリ管理システムは、第2のセルにより排
他的に所有されるデータに対する第1のセルによりリー
ドオンリーアクセス要求に応答して、そのデータのコピ
ーを第1セルに伝送し、同時に、第2セルに記憶されて
いるそのデータの原コピーを「非排他的所有」と指示す
る。
システムは、「アトミック」状態として言及される他
の所有状態を提供することにより、所有するセルにその
データをコピーすることを不能にさせる。メモリ管理シ
ステムは、その状態におけるデータ要求に応答して、待
機すなわち「過渡」信号を要求者に伝送し、アトミック
所有が廃棄されれば、被要求データを階層上に送り出
す。
上述の形式のシステムは、バスおよびメモリの競合を
低減して多重処理の能力を改善する。排他的アクセスを
必要とするプロセッサに対する排他的データコピーの動
的割当てならびに複数のプロセッサにより同時に必要と
されるデータコピーの共有は、バストラフィックおよび
データアクセス遅延を減ずる。ハードウェア強要アクセ
スプロコルの利用は、バスおよびメモリ競合をさらに減
じ、同時にデータのコヒーレンシを維持するのに必要な
ソフトウエアソフトウェアのオーバーヘッドを減ずる。
情報転送領域セグメントの相互接続は、データアクセ
ス、転送および更新要求の局部化を可能にする。
本発明のこれらおよびその他の特徴は、以下に続く説
明から明白であろう。
[実施例] 以下、図面を参照して本発明を好ましい実施例につい
て説明する。
第1図は、本発明に従って構成された好ましい多重処
理システム10の構造を示す。例示のシステム10は、領域
(ドメイン)(0)、領域(1)および領域(2)の3
つの情報転送領域を含む。各情報転送領域は、バス要素
および複数のセルインターフェース要素を有する1また
は複数の領域セグメントを含む。詳述すると、例示のシ
ステム10の領域(0)は、12A、12B、12C、12D、12Eお
よび12Fによりそれぞれ指示される6つのセグメントを
含む。同様に、領域(1)は、セグメント14Aおよびセ
グメント14Bを備え、領域(2)はセグメント16を備え
る。
領域(0)の各セグメント、すなわち12A、12B、....
12Fは、複数の処理セルを含む。例えば、図に示される
ように、セグメント12Aは、セル18A、18Bおよび18Cを備
え、セグメント12Bはセル(18)Dは、18Eおよび18Fを
備え、以下同様である。これらのセルの各々は、セル間
プロセッサバス(図示せず)に沿って相互接続された中
央処理ユニットおよびメモリ要素を備える。本発明の好
ましい実施に従うと、各セルに含まれるメモリ要素は、
それに関連する中央処理ユニットにより使用される制御
およびデータ信号を記憶する。
さらに例示されるように、各領域(0)セグメント
は、セグメントのセル間において情報表示信号を転送す
るための通信路を提供するバス要素を有するものとして
特徴づけられよう。かくして、例示のセグメント12A
は、バス20Aにより、セグメント12Bはバス20Bにより、
セグメント12Cは20Cによりというように特徴づけられ
る。さらに詳述すると、情報表示信号は、これらのセル
の各々と関連するメモリ要素により例示のセグメント12
Aのセル18A、18Bおよび18C間を通される。これらのメモ
リ要素およびバス20A間の特定のインターフェースは、
図示のようにセルインターフェースユニット22A、22Bお
よび22Cにより提供される。同様の直接通信路が、例示
されるように、セグメント12B、12C、12D等において、
セルインターフェースユニット22D、22E−−22Rにより
それぞれのセル18D、18E、−−18R間に設定される。
例示されるように、残りの情報転送領域、すなわち領
域(1)および領域(2)は、各々1または複数の領域
セグメントを備える。各逐次の領域における領域の数
は、先行のセグメントにおけるセグメントの数より少な
い。かくして、領域(1)のセグメント14Aおよび14Bの
数(2)は、領域(0)のセグメント12A、12B−−12F
の数6より少なく、唯一のセグメント16を有する領域
(2)は、全部の中で最も少ない。領域(1)および領
域(2)、すなわちより高レベルの領域の各セグメント
は、それぞれの各セグメント内において情報表示信号を
転送するためのバス要素を備える。例示のものにおい
て、領域(1)のセグメント14Aおよび14Bはバス要素24
Aおよび24Bをそれぞれ備え、領域(2)のセグメント16
はバス要素26を備える。
セグメントバスは、各セグメントの成分要素間におい
て、すなわちセグメントの複数のルート指定要素間にお
いて情報を転送する働きをする。ルート指定要素自体
は、逐次の領域の関連する要素間において情報を転送す
る機構を提供する。例えば、ルート指定要素28A、28Bお
よび28Cは、領域(1)のセグメント14Aおよび領域
(0)のセグメント12A、12Bおよび12Cの各々間におい
て情報を転送する手段を提供する。同様に、ルート指定
要素28D、28Eおよび28Fは、領域(1)のセグメント14B
および領域(0)のセグメント12D、12Eおよび12Fの各
々間において情報を転送する手段を提供する。さらに、
領域のルート指定要素30Aおよび30Bは、図示のように、
領域(2)のセグメント16および領域(1)のセグメン
ト14Aおよび14B間に情報伝送路を提供する。
領域ルート指定要素は、それらの対応するセグメント
をバス要素における相互接続を介してインターフェース
接続する。かくして、領域ルート指定要素28A、セルイ
ンターフェースユニット32Aおよび34Aにてバス要素20A
および24Bを相互接続し、要素28Bは、それぞれセルイン
ターフェースユニット32Bおよび34Bにてバス要素20Bお
よび24Bをインターフェース接続する。以下同様であ
る。同様に、ルート指定要素30Aおよび30Bは、図示のよ
うに、セルインターフェースユニット36A、36B、38Aお
よび38Bにてそれぞれの対応するバス、すなわち24A、24
Bおよび26をインターフェース接続する。
第1図は、本発明に従って構成されるディジタルデー
タ処理システムにおいて遠隔の領域とセルとを相互接続
する好ましい機構を示している。バスセグメント20Fか
ら物理的に遠隔の点にあるセル18Rは、点線で指示され
るオプチカルファイバ伝送線を介して、そのバスおよび
関連するセル(18Pおよび18Q)と結合される。
同様に、領域セグメント12Fおよび14Bは、それぞれの
親セグメントからオプチカルファイバを介して相互接続
される。指示されるように、それぞれの領域ルート指定
ユニット28Fおよび30Bは、各々2つの離間的に結合され
た部品を含む。例えば、領域ルート指定ユニット28Fに
関して、第1の部品は、標準バス相互接続を介してセグ
メント14Bのセルインターフェース34Fと直接接続され、
第2の部品は、セグメント12Fのセルインターフェース
ユニット32Fと直接リンクされている。同一に構成され
た2つの部品は、点線により指示されるオプチカルファ
イバリンクを介して結合される。上述のように、領域ル
ート指定ユニット部品およびオプチカルファイバ媒体間
の物理的インターフェースは、遠隔インターフェースユ
ニット(図示せず)により提供される。
第2A図は、例えば上述の形式の多重処理システムいお
いてデータのコヒーレンシを提供する好ましいメモリ形
態を示している。例示のシステムは、関連するメモリ要
素42A、42Bおよび42Cにそれぞれ結合された複数の中央
処理ユニット40(A)、40(B)および40(C)を備え
ている。各対の処理ユニットとメモリユニット間の通信
は、図示のように、バス44A、44Bおよび44Cに沿って行
なわれる。例示のシステムは、それぞれバス48A、48Bお
よび48Cを介してメモリ要素42A、42Bおよび42Cに記憶さ
れる情報表示信号にアクセスするためのメモリ管理要素
46を備える。
例示の実施例において、中央処理ユニット40A、40Bお
よび40Cは、各々それぞれ50A、50Bおよび50Cを付したア
クセス要求要素を備える。これらのアクセス要求要素
は、メモリ要素42A、42Bおよび42Cに記憶された情報へ
のアクセスの要求を表わす信号を発生する。要素50A、5
0Bおよび50Cにより発生されるアクセス要求信号の形式
の中には、メモリに記憶される情報表示信号への優先ア
クセスの要求を表わす所有要求信号がある。好ましい実
施例において、アクセス要求要素50A、50Bおよび50C
は、中央処理ユニット40A、40Bおよび40C上で実施され
る命令サブセットを含む。この命令サブセットについて
以下に詳述する。
メモリ要素42A、42Bおよび42Cは制御要素52Bおよび52
Cをそれぞれ含む。これらの制御要素の各々は、それぞ
れ対応するディレクトリ要素56A、56Bおよび56Cを介し
てデータ記憶領域54A、54Bおよび54Cとインターフェー
ス接続されている。ストア54A、54Bおよび54Cは、それ
ぞれの対応する中央処理ユニットにより必要とされるデ
ータおよび命令信号に対する物理的記憶スペースを提供
するように例示のシステムにおいて利用されている。か
くして、ストア54Aは、CPU40Aにより使用されるデータ
および制御情報を維持し、他方ストア54Bおよび54Cは、
それぞれ中央処理ユニット40Bおよび40Cにより使用され
るデータおよび制御情報を維持する。各ストアに維持さ
れる情報信号は、信号のシステムアドレスに対応する独
特のディスクリプタにより識別される。それらのディス
クリプタは、対応するディレクトリのアドレス記憶位置
に記憶される。ディスクリプタは独特であると考えられ
るが、若干のディスクリプタの複数のコピーは、これら
のコピーそれ自体が同じデータ要素のコピーを識別する
場合、メモリ要素42A、42Bおよび42C全体に存在する場
合もある。中央処理ユニット40A、40Bおよび40Cにより
発生されるアクセス要求信号は、他の制御情報ととも
に、要求される情報信号のSA(システムアドレス)と一
致するSA要求部分を含む。制御要素52A、52Bおよび52C
は、それぞれの対応する中央処理ユニット40A、40Bおよ
び40Cにより発生されるアクセス要求信号に応答して、
要求される情報表示信号が対応する記憶要素54A、54Bお
よび54Cに記憶されているか否かを決定する。もし記憶
されていれば、その情報アイテムは、要求するプロセッ
サにより使用のため転送される。もし記憶されていなけ
れば、制御ユニット52A、52Bおよび52Cは、アクセス要
求信号を、線48A、48Bおよび48Cに沿って前記メモリ管
理要素に伝送する。
メモリ管理要素は、進行中の情報アクセス要求を満足
させようとして、要求している中央処理ユニットから受
信されるアクセス要求信号を、他の中央処理ユニットと
関連されるメモリ要素に送り出す。メモリ管理要素は、
以下に記述されるセルインターフェースユニットによ
り、アクセス要求信号のSAを、各メモリ要素のディレク
トリに記憶されるディスクリプタと比較し、被要求信号
がそれらの要素のいずれかに記憶されているか否かを決
定する。記憶されていれば、被要求信号、すなわちその
コピーは、メモリ管理要素46を介して、要求している中
央処理ユニットと関連するメモリ要素に転送される。被
要求情報信号がメモリ要素42A、42Bおよび42C間に見出
されなければ、動作システムは、以下に記載される態様
でシステムの周囲デバイス(図示せず)間においてサー
チを行なうことができる。
例示の多重プロセッサシステム内において、データの
コヒーレンシは、メモリストア54A、54Bおよび54Cおよ
びそれに関連するディレクトリ56A、56Bおよび56Cに対
するメモリ管理要素の作用により維持される。詳述する
と、第1のCPU/メモリ対(例えば、CPU40Cおよび関連す
るメモリ要素42C)による所有アクセス要求の発生に続
いて、メモリ管理要素46は、その対のメモリ要素のスト
ア(例えば、メモリ要素42Cのデータストア54C)に要求
されたデータを維持するようにスペースの割当てを行な
う。先に記憶されていたメモリ要素(例えばメモリ要素
42A)からの被要求情報表示信号の転送と同時に、メモ
リ管理要素は、被要求信号の記憶のため先に割り当てら
れた物理的記憶スペースの割当てを解除する。
メモリ管理要素の上述の作用、そしてさらに詳述する
と、データコヒーレント要素が、第2A図および第2B図に
例示されている。第2A図において、情報信号DATUM
(0)、DATUM(1)およびDATUM(2)が、CPU40Aと対
をなすメモリ要素42Aのデータストアに記憶されてい
る。これらのデータ信号に対応するデスクリプタ「fo
o」、「bar」および「bas」が、それぞれディレクトリ5
6Aに記憶されている。この種の各ディスクリプタは、ス
トア42Aにおけるそれに関連する情報信号の位置を指示
するポインタを含む。
CPU40Bと対をなすメモリ要素42Bにおいて、例示のシ
ステムは、情報信号DATUM(3)およびDATUM(2)を記
憶する。これらのデータ要素の各々に対応して、ディス
クリプタ「car」および「bas」がディレクトリ56Bに保
持されている。DATUM(2)およびそのデスクリプタbas
は、ストア42Aからコピーされ、それゆえ同じレベルを
保持する。
第2A図に例示されるシステムは、CPU40Cと対をなすメ
モリ要素54Cに如何なるデータも記憶しない。
第2B図は、中央処理ユニットの1つによる所有アクセ
ス要求の発生に続き、メモリ管理システム46Aにより行
なわれる作用を例示している。特に、例示は、CPU40Cに
よる情報信号DATUM(0)に対する所有アクセス要求の
発生に続くその信号の移動を描いている。最初に、メモ
リ管理要素46は、要求信号に応答して、CPU40Cと対をな
すメモリ要素のストア54C内に物理的記憶スペースを割
り当てる。メモリ管理要素46はまた、要求される情報信
号DATUM(0)を、それが先に記憶されていたストア54A
から要求者のストア54Cに移動させ、他方先に被要求信
号を保持していたストア54Aのスペースの割当てを解除
する。メモリ管理要素46はまた、要求される情報信号を
移動させるとともに、ストア54AのDATUM(0)を識別す
るために先に使用されていたディレクトリ56Aのデスク
リプタfooの無効化、およびディレクトリ56C内における
同じディスクリプタの再割当てを行なう。このディスク
リプタは、ストア54C内において信号を識別するのに続
いて使用される。
好ましい実施例において、メモリ管理要素46は、メモ
リ要素42A、42Bおよび42Cに記憶されるデータおよび制
御信号にアクセス状態情報を割当てるための機構を含
む。無効化、リードオンリー、所有者およびアトミック
状態を含むこれらのアクセス状態は、特定のプロセッサ
がデータにアクセスし得る態様を支配する。関連するCP
Uがそのデータに対して優先アクセスを維持するメモリ
に記憶されているデータには、所有者状態が割当てられ
る。関連するCPUがそのデータに対して優先アクセスを
維持しないメモリに記憶されるデータには、リードオン
リー状態が割り当てられる。badデータと関連されるデ
ータには、無効状態が割り当てられる。
第3図は、第1図の例示の領域(0)セグメント12A
に対する好ましい形態を示している。セグメント12A
は、バスセグメント20Aを介してセル相互接続22A、22B
および22Cにより相互接続される処理セル18A、18Bおよ
び18Cを含む。領域ルート指定ユニット28Aは、第1図の
領域(0)セグメント12Aおよび領域(1)セグメント1
4A(もし親ならば)間に相互接続を提供する。このルー
ト指定ユニット28Aは、図示されるように、セル相互接
続32Aによりバス20Aに結合される。例示されるバスセグ
メント20Aの構造、ならびにそれとセル相互接続22A、22
B、22Cおよび32Aとの相互関係は、本願と同時に米国特
許出願され一緒に譲渡された「Interconnection System
for Multi−processing Structure」と題する米国特許
出願に詳細に論述されている。
第4図は、処理セル18A、18B−−18Rに対する好まし
い構造を図示している。例示の処理セル18Aは、プロセ
ッサバス66および命令バス68を介して外部デバイスイン
ターフェース60、データサブキャッシュ62および命令サ
ブキャッシュ64と結合された中央処理ユニット58を備え
る。外部デバイスバスを介して、外部デバイス例えばデ
ィスクドライブとの通信手段を提供するインターフェー
ス60は、技術上従来の態様で構成されている。
プロセッサ58は、商業的に入手され得るプロセッサ例
えばモトローラ6800CPUで技術上従来の態様で構成し得
るが、得られたプロセッサは、データおよびアドレス制
御線69Aおよび69Bを介して作用するサブキャッシュ共同
実行ユニットの制御下でサブキャッシュ62および64をイ
ンターフェース接続するように、かつまた以下で説明さ
れるようにメモリ命令を実行するように改造されてい
る。処理セル18Aはさらに、キャッシュ制御ユニット74A
および74Bを介してキャッシュバス76に結合されたデー
タメモリユニット72Aおよび72Bを備える。キャッシュ制
御ユニット74Cおよび74Dは、キャッシュバス76および処
理およびデータバス66および68間の結合手段を提供す
る。図面に示されるように、バス78は、キャッシュバス
76と、例示のセルと関連する領域(0)バスセグメント
20Aとの間の相互接続を提供する。
好ましい実施例において、データキャッシュ72Aおよ
び72Bは、最高各々8メガバイトのデータを記憶し得る
ダイナミックランダムアクセスメモリデバイスである。
サブキャッシュ62および64は、スタチックランダムアク
セスメモリデバイスであり、前者は最高512キロバイト
のデータを記憶でき、後者は最高256キロバイトの命令
情報を記憶し得る。図示されるように、キャッシュおよ
びプロセッサバス76および64は64ビットの伝送路を提供
し、命令バス68は32ビットの伝送路を提供する。
技術に精通したものであれば、例示のCPUは、従来の
中央処理ユニットを表わし、より一般的には、メモリ要
求を発し得るあらゆる装置、例えばi/oコントローラや
その他の特定殊目的の処理要素とし得ることが分かる。
メモリ管理システム 本発明の好ましい実施例に従って構成された多重プロ
セッシング・システム10は処理セル18A、18B、・・・内
に記憶された個々のデータエレメントに、各データと関
連した独自のシステム・バーチュアル・アドレス(SV
A)を参照することによって、アクセスできる。この能
力を実施することはメモリ管理システム46、サブキャッ
シュ62、64及びキャッシュ72A、72Bの作用を組合せるこ
とによって行なえる。この点で、メモリ管理システム46
はキャッシュ制御ユニット74A、74B、74C及び74D並びに
それらの関連するインタフェース回路を含むということ
が理解できるであろう。さらに、上述の構成要素は全体
として「メモリシステム」と呼ばれるということも理解
できるであろう。
このメモリシステムの構造及び動作を完全に理解する
ことは以下に列挙するそのアーキテクチャの特徴を認識
することによって可能になろう。
データ記憶装置: 各キャッシュのメモリは複数のページに分割され、各
ページはSVA空間のあるページにダイナミックに割当て
ることができる。メモリシステムは各キャッシュのデー
タに関する用法及び状態情報を維持して補助記憶装置へ
の及び補助記憶装置からの効率のよい移動を助長する。
データのローカルディ(局所化): メモリシステムはサブキャッシュ又はキャッシュのプ
ロセッサによって最近参照されたデータをそのプロセッ
サの同じセルに保持する。
データの移動: メモリシステムはそのデータを参照するプロセッサの
キャッシュにデータを移動する。
データの共有: メモリシステムはSVAデータのコピーを1つ以上のキ
ャッシュに保持して並列プログラムによる効率のよいデ
ータの共有を助長する。
データのコヒーレンス: メモリシステムは強力に順序付けされたコヒーレント
メモリモデル及びトランザクションモデルを実行する。
最後の点に関しては、任意の実行の結果が、すべての
プロセッサの動作がある順序で実行されたかのように、
同じであり、かつ各個々のプロセッサの動作がこの順序
でそのプログラムによって特定された順番で現われる場
合には、システムは順序的に終始一貫しているというこ
とがこの分野の技術者には理解できる。
その上、記憶装置へのアクセスは、任意の1つのプロ
セッサによるデータへのアクセスが開始され、イシュー
(発生)され、そしてプログラムの順序で実行された場
合、及びプロセッサIによる蓄積がプロセッサKによっ
て観察されたときに、蓄積のイシュー前にプロセッサI
に関して実行されたデータへのすべてのアクセスがプロ
セッサKに関して実行されなければならない場合には、
強力に順序付けされているとみなされる。対照的に、記
憶装置へのアクセスは、同期変数へのアクセスが強力に
順序付けされている場合、前のすべてのデータへのアク
セスが実行される前に同期変数へのアクセスがプロセッ
サにおいてイシューされない場合、及び同期変数への前
のアクセスが実行される前にデータへのアクセスがプロ
セッサによってイシューされない場合には、弱く順序付
けされている。
事象(イベント)の強力な順序付けを持つコヒーレン
トシステムは順序的に終始一貫している。
例示の実施例においては、メモリシステムはページ及
びサブページの単位でデータを記憶し、各ページは4Kバ
イトを含み、各サブページは64バイトを含む。メモリシ
ステムはページ基準でキャッシュ74A、74Bの記憶装置を
割当てる。SVA空間の各ページはシステムに完全に表わ
されるか或は全く表わされない。メモリシステムはサブ
ページの単位でキャッシュ間にデータを配分する。以下
の記載において、「キャッシュ」という用語はそれぞれ
の処理セルのキャッシュ記憶素子74A、74Bをいう。
例示のシステム内のSVA空間の構成は通常のバーチュ
アルメモリ・スキームとは大きく逸脱している。従来の
アーキテクチャはシステムアドレスを実際の(物理)メ
モリアドレッサにマッピングし、抜けページの除外情報
を発生するソフトウエア制御のページレベルトランザク
ション機構を含む。これらスキームにおいては、ソフト
ウエアは使用中のすべてのセグメント間でページテーブ
ルを多重化する責任を持つ。例示のシステムのアーキテ
クチャにおいては、ソフトウエア制御のページレベルト
ランザクション機構は存在しない。メモリシステムは従
来のアーキテクチャにおいてはソフトウエアによって通
常実行されたアドレス空間管理の重要な部分を取扱うこ
とができる。これら管理責任には次のものがある。即
ち、 (1)ページ用法及び状態情報を保持すること、 (2)古いページを再使用すること、 (3)複数のプロセッサ間で共有されたデータアクセス
のコヒーレンスを同期し、かつ保証すること、 (4)サブページの基準でデータ及びデータのコピーを
システムの1つの場所から他の場所に移動して非常に頻
繁にデータを使用しているプロセッサに最も近い場所に
データを保持すること である。
例示のシステムのプロセッサ、例えば、プロセッサ40
A、40B、40Cは2つの主要論理インタフェースを通じて
メモリシステムと通信する。第1のインタフェースはデ
ータアクセスインタフェースであり、ロード及び蓄積命
令によって実施される。データアクセスモードにおいて
は、プロセッサはメモリシステムにSVA空間及びアクセ
スモード情報を提供し、メモリシステムはデータを含む
サブページを見つけ出してそれを戻すことによってその
アクセスに応えようとする。
第2の論理インタフェースモードは制御アクセスであ
り、メモリシステム制御命令によって実施される。制御
アクセスにおいて、プロセッサはある副作用を実行する
ように又はページから実際のデータ以外のある情報を戻
すようにメモリシステムに命令する。主要インタフェー
スの他に、システムソフトウエアは機器構成、保全、障
害、回復、及び診断に対してSVA空間の制御ロケーショ
ンを使用する。
キャッシュ構造 キャッシュ、例えば、セル18の素子72A、72B、はペー
ジ単位で、即ち、4096バイト単位で、情報を記憶する。
SVA空間の各ページはキャッシュに完全に存在するか或
は全く存在しないかである。各個々のキャッシュ、例え
ば、セル18の素子72A及び72Bの組合せ、は1ページずつ
の基準でデータに対して空間を割り振る。各キャッシュ
は1サブページずつの基準でデータを記憶する。それ
故、SVA空間の1つのページがシステムに存在するとき
には、次のことがいえる。即ち、 (1)1つ又はそれ以上のキャッシュが記憶装置の1ペ
ージをそのページに割り振り、ページの各サブページは
割り振られた空間を持つ1つ又はそれ以上のキャッシュ
に記憶されるが、しかし、 (2)1ページに対して割り振られた空間を持つ各キャ
ッシュはページのサブページの全部のコピーを含んでい
るかも或は含んでいないかも知れない ということである。
キャッシュページとSVAページ間の関連は各キャッシ
ュによってそのキャッシュディレクトリ例えば、素子56
Aに記録される。各キャッシュディレクトリは複数のデ
ィスクリプタ(記述子)より構成されている。1つのキ
ャッシュのメモリの各ページ枚に1つのディスクリプタ
が存在する。ある特定の時刻において、各ディスクリプ
タは有効か或は無効である。ディスクリプタが有効であ
る場合には、対応するキャッシュメモリページがSVA空
間の1ページと関連し、このディスクリプタは関連する
SVAページアドレス及び状態情報を記憶する。ディスク
リプタが無効である場合には、対応するキャッシュメモ
リページは使用されていない。
各キャッシュディレクトリ46Aは内容アドレス可能な
メモリ(連想メモリ)として働く。これは1つのキャッ
シュがそのディスクリプタの全部を繰返しサーチする必
要なしにSVA空間の特定のページに対するディスクリプ
タを捜し出すことを可能にする。各キャッシュディレク
トリは128セットを備えた32通りのセットの連想メモリ
として実現される。SVA空間のページの全部が128の等価
クラスに分割される。1つのページに対する1つのディ
スクリプタだけがそのページの等価クラスに対応するキ
ャッシュディレクトリのセットに記憶できる。この等価
クラスはSVA[18:12]によって選択される。任意の与え
られた時間に、キャッシュはSVA[18:12]に対して同じ
値を持つ最大で32ページだけを記憶することができる。
何故ならば、それは各セットにおける32の素子であるか
らである。
キャッシュディレクトリの構成が第5図に示されてい
る。SVA[18:12]は1セットを選択する。選択されたセ
ットの各ディスクリプタはSVA[63:19]に対して同時に
比較される。そのセットの素子の1つが所望のページに
対するディスクリプタである場合には、対応するコンパ
レータが整合を指示する。セット番号と連結された整合
ディスクリプタのセットのインデックスはキャッシュに
おけるページを識別する。そのセットのディスクリプタ
が整合しない場合には、キャッシュは抜けページ除外の
信号を発する。1つ以上のディスクリプタが整合する場
合には、キャッシュは複数ディスクリプタ整合除外の信
号を発する。
SVA[18:12]は1セットを選択するSVAアドレスに対
するハッシュ関数として使用されることが好ましい。シ
ステムソフトウエアはこのハッシュ関数が通常の場合に
良好な性能を与えるようにSVAアドレスを割当てる。2
つの重要な分配ケースが単一のセグメントの多くのペー
ジを参照し、かつ多数のセグメントの最初のページを参
照することによってもたらされる。キャッシュセットを
選択するSVA[18:12]の使用は、128の隣接するページ
が1セットにすべて存在し得るので、隣接するページ群
に対して良好なキャッシュ作用をもたらす。しかしなが
ら、このキーはそのフィールドにおいて同じ値を持つ多
くのページに対しては貧弱なハッシュ作用をもたらす。
システムソフトウエアはこの状態を、SVA空間を文脈
(コンテクスト)セグメントに割当てるときにハッシュ
関数を適用することによって、回避する。
好ましい実施例によれば、ディスクリプタは次のフィ
ールドを含み、各フィールドのビットサイズは括弧内に
示されている。
ディスクリプタ・有効(1) キャッシュはこのビットフラグを1にセットし、キャ
ッシュメモリの対応するページをSVA空間の1ページに
割当て、その他の場合には0にセットする。ディスクリ
プタ・有効が0である場合には、他のフィールドはいず
れも意味がない。
ディスクリプタ・タグ(45) SVAのビット[63:19]。システムソフトウエアはこの
フィールドをセットし、対応するディスクリプタによっ
て特定されたSVA空間の特定のページを識別する。
ディスクリプタ・変更(1) キャッシュは、任意のデータがそのページにおいて変
更されるときに、このビットフラグを1にセットする。
システムソフトウエアはディスクリプタ・変更を0にセ
ットし、ページの変更を認める。
ディスクリプタ・アトミック変更(1) キャッシュは、このページの任意のサブページがアト
ミック状態への又はからの遷移を受けたときに、このビ
ットフラグを1にセットする。システムソフトウエアは
ディスクリプタ・アトミック変更を0にセットし、アト
ミック状態の変化を認める。
ディスクリプタ・保持(1) ソフトウエアはビットフラグをセットし、たとえサブ
ページがキャッシュに存在しなくても、ディスクリプタ
がキャッシュによって無効にされていないということを
指示する。
ディスクリプタ・LRU位置(5) キャッシュはそのセットにおけるディスクリプタの現
在の位置としてこのフィールドを最も最近に使用された
(0)から最も以前に使用された(31)まで保持する。
ディスクリプタ・LRU挿入インデックス(2) ソフトウエアはこのフィールドをセットしてキャッシ
ュのLRU保全によってページの処理をバイアスする。
ディスクリプタ・書込みなし(1) 1つのフラグ。ソフトウエアはこのフィールドをセッ
トしてローカルプロセッサによるそのページの変更を防
止する。ページを変更する試みは失敗し、プロセッサに
信号が戻される。プロセッサはページ書込みなし除外の
信号を送る。
ディスクリプタ・アトミックなし(1) 1つのフラグ。ソフトウエアはこのフィールドをセッ
トして任意のキャッシュがこのページの任意のサブペー
ジでアトミック又は未決のアトミック状態を取ることを
防止する。アトミック状態を取る試みは失敗し、プロセ
ッサに信号が戻される。プロセッサはページアトミック
なし除外の信号を送る。
ディスクリプタ・オーナーなし(1) ディスクリプタ・オーナーなしはこのキャッシュがこ
のページの所有権を取ることを防止する。所有権を取る
任意の試みが失敗し、プロセッサに信号が戻される。プ
ロセッサはページオーナーなし除外の信号を送る。
ディスクリプタ・オーナー制限(2) ディスクリプタ・オーナー制限は特定のキャッシュ、
領域階層の領域(0)、又は領域1に対するページのサ
ブページに所有権を制限する。
ディスクリプタ・サブキャッシュ(1) 対応するサブページがキャッシュのセルのプロセッサ
でサブキャッシュに記憶されるということを記録するよ
うにキャッシュによってセットする。
ディスクリプタ・サブページ状態(3) サブページ状態フィオールドは各サブページの状態を
記録するようにキャッシュによってセットされる。
ディスクリプタ・要約(2) 4つの連続するサブページに対応するサブページ状態
フィールドを要約する。
ディスクリプタ・書込みなしがセットされた場合に
は、そのページへの書込みアクセスはページ書込みなし
除外を生じさせる。システムソフトウエアはトラップさ
れるページテーブルを保持し、かつそれらに対するSVA
空間を作ることを拒否することによって、ページの読出
しをトラップすることができる。その後、システムソフ
トウエアは抜けページ除外をソフトウエア発生のページ
読出しない除外に変換することができる。
ディスクリプタ・書込みなしは「書込み時コピー(コ
ピー・オン・ライト)」の近似として使用できるアクセ
ス時コピー(コピー・オン・アクセス)スキームを実行
するために使用できる。プロセスが分岐するときに、分
岐プロセスのアドレス空間のページはページ書込みなし
除外を取るようにセットされる。子のプロセスのアドレ
ス空間セグメントはまばらなままである。子プロセスが
親によってまだ書込まれていなかったページを参照する
と、ページ障害は親プロセスの対応するページのコピー
を作成することによって満足され、ディスクリプタ・書
込みなしはそのページに対してクリアされる。子がその
ページをコピーする前に親がそのページに書込む場合に
は、ページ書込みなしハンドラはそのページを子アドレ
ス空間にコピーし、そしてディスクリプタ・書込みなし
をクリアする。
ディスクリプタ・保持があるディスクリプタの1であ
る場合には、ディスクリプタのキャッシュはそれを無効
にすることを阻止される。ディスクリプタ・保持を有す
るページのサブページが無効になった後で最初のサブペ
ージが到着すると、ディスクリプタ・タグ、ディスクリ
プタ・保持、ディスクリプタ・LRU挿入インデックス及
びディスクリプタ・LRU挿入優先度を除くディスクリプ
タのフィールドの全部が、サブページが到着したときに
ディスクリプタが存在しなかったかのように、再び初期
設定される。ディスクリプタ・保持は1つのキャッシュ
から他のキャッシュに伝播されない。
ディスクリプタ・オーナー制限はそのページのサブペ
ージの所有権をシステムバス階層における特定のキャッ
シュ又は領域(0)に制限する。次表はディスクリプタ
・オーナー制限の値、及び他のキャッシュからの要求
(リクエスト)に応答する所有キャッシュの観点からの
セマンティクス(意味論)を示す。
(1)キャッシュオーナー制限−ローカルキャッシュは
所有権を他の任意のキャッシュに渡さない。他のキャッ
シュが所有権を要求する場合には、そのキャッシュは誤
り応答を受信する。
(2)領域0オーナー制限−ローカルキャッシュは同じ
領域(0)に存在しないいかなるキャッシュにも所有権
を渡さない。
(3)領域1オーナー制限−ローカルキャッシュは同じ
領域1に存在しないいかなるキャッシュにも所有権を渡
さない。
(4)障害オーナー制限−任意のキャッシュがそのペー
ジのサブページのオーナーでよい。
ディスクリプタ・オーナー制限は次のように他のキャ
ッシュに伝播される。即ち、ディスクリプタのサブペー
ジの全部が読出し専用コピーである限り、ディスクリプ
タ・オーナー制限は常に障害オーナー制限である。新し
いキャッシュがサブページのオーナーになると、それは
ディスクリプタ・オーナー制限の値を古いオーナーから
コピーする。
ディスクリプタ・オーナーなしがあるディスクリプタ
の1である場合には、ディスクリプタのキャッシュはデ
ィスクリプタによって記述されたページの任意のサブペ
ージに対して所有状態を取ることができない。1のディ
スクリプタ・オーナーなしを持つディスクリプタを含む
キャッシュはコピーを保持しているということを指示す
ること以外に他のキャッシュからの要求に決して応答し
ない。ディスクリプタ・オーナーなしは1つのキャッシ
ュから他のキャッシュに伝播されない。
ディスクリプタ・アトミックなしがあるディスクリプ
タの1である場合には、ディスクリプタキャッシュはデ
ィスクリプタによって記述されたページの任意のサブペ
ージに対してアトミック又は未決のアトミック所有状態
を取得することができない。アトミック又は未決のアト
ミック所有状態をセットするプロセッサの試みは失敗
し、そのプロセッサに信号が戻される。プロセッサはペ
ージアトミックなし除外の信号を送る。ディスクリプタ
・アトミックなしは1つのキャッシュから他のキャッシ
ュに伝播される。
ディスクリプタ・要約は4つの連続するサブページに
対応するサブページ状態フィールドを要約する。ディス
クリプタによって表わされた4つのサブページの12セッ
トのそれぞれ毎に1つの2ビットフィールドがある。要
約状態のリストを以下に示す。
すべて無効−4つ全部のサブページのサブページ状態
が無効である。
すべて排他的−4つ全部のサブページのサブページ状
態が排他的オーナーである。
オーナーなし−4つ全部のサブページのサブページ状
態が無効であるか又は読出し専用である。
オーナー−1つ又はそれ以上のサブページがアトミッ
クオーナー、排他的オーナー又は非排他的オーナー状態
のいずれかである。
例示のメモリ素子、例えば42A、42B、42Cは、例えば
そのローカルプロセッサからの同期要求を実行している
間に、誤りを検出する。素子は誤りの信号を、要求に対
するその応答において送る。ローカルプロセッサは対応
する除外の信号を送る。遠方のセルからの要求を実行し
ている間にメモリ素子が誤りを検出すると、この素子は
そのローカルプロセッサに割込みを送り、誤り応答を持
つ要求に応答する。以下の説明において、「キャッシュ
が除外の信号を送る」という表現はこのプロセスに対す
る略称である。
各メモリはキャッシュ・アクティビティ・ディスクリ
プタ・テーブル(CADT)(図示せず)を含み、このテー
ブルにおいて各メモリは進行中のアクティビティの状態
を保持する。メモリ素子がその領域(0)からの要求に
応答する際に、又は非同期制御命令或は遠隔制御命令を
実行する際に、誤りを検出すると、メモリ素子は割込み
を送る前にCADTの1つのディスクリプタにこの誤りを記
入する。ソフトウエアはCADTを読出して誤りの特定の源
及びタイプを識別する。ソフトウエアはCADTをリセット
して誤りの受信を認める。
サブページ及びデータ共有 あるページがメモリシステムに存在すると、そのサブ
ページのそれぞれが1つ又はそれ以上のキャッシュに存
在する。あるサブページが1つのキャッシュに存在する
と、そのキャッシュのそのサブページを含むページに対
するディスクリプタがいくつかの状態の1つでそのサブ
ページの存在を記録する。キャッシュにおけるサブペー
ジの状態は次の2つの事を決定する。即ち、 1)そのキャッシュのローカルプロセッサがサブページ
に存在するデータについてどのような動作を実行できる
か、及び 2)そのキャッシュが、もしある場合には、他のキャッ
シュから領域を通じて受信したサブページの要求に対し
てどのような応答を行なうか である。
キャッシュのサブページの状態は、特定の状態を要求
する要求動作をユーザがプログラムするときに、時間と
ともに変化する。一組の遷移規則がプロセッサの要求及
びキャシュ領域間通信から生じるサブページの状態の変
化を特定する。
プロセッサがロード又は蓄積を完了するためには、次
の2つの条件が満足されねばならない。
1)データを含むサブページがそのローカルキャッシュ
に存在しなければならない。
2)このローカルキャッシュは適当な状態にサブページ
を保持しなければならない。この状態は、サブページが
変更できるか否か、及びローカルキャッシュが他のキャ
ッシュからの要求にどのように応答するか、を決定す
る。
これらの条件のいずれかが満足されない場合には、プ
ロセッサのローカルキャッシュは領域を通じて通信して
サブページのコピーを取得し、並びに、或はサブページ
に必要な状態を取得する。キャッシュが要求を満足させ
ることができない場合には、プロセッサに適当の除外の
信号を送る誤りの指示を戻す。
命令セットは、プログラムが現在の制御スレッドの予
期される今後のデータ基準パターン、並びに並列適用に
おける異なる制御スレッド間のプロトコルに適したサブ
ページ状態を要求できるようにするいくつかの異なる形
式のロード及び記憶命令を含む。
以下においては、プロセッサ命令による状態及びそれ
らの遷移並びにキャッシュに対するそれらの影響を初め
に記載する。続いて、それら状態の遷移を実行するため
にキャッシュ間で送られる領域メッセージについて記載
する。
サブページ状態 サブページ状態及びそれらの遷移規則は2つの一般的
な機構を例示のシステムで実行するユーザプログラムに
提供する。
1)それらはシステムのプロセッサによる通常のロード
及び記憶アクセスに対するメモリアクセスの強力に順序
付けされた順序的に終始一貫したモデルを透過的に実施
する。
2)それらは並列計算を同期させるためにプログラムに
よって使用される一組のトランザクション・プリミティ
ブを提供する。これらプリミティブは種々の伝統的な及
び非伝統的な同期機構に適用することができる。
状態及びそれらの遷移は3つのグループに記載され
る。第1のグループは強力に順序付けされた、順序的に
終始一貫したメモリアクセスのモデルを実施する基本的
な像対及び遷移である。第2のグループはトランザクシ
ョン・プリミティブを実施する追加の状態である。最後
のグループはメモリシステムの性能を改善する遷移状態
である。
プロセッササブキャッシュシステムは2つの側面、即
ち、データ及び命令に分けられる。データサブキャッシ
ュ62はキャッシュのように64ビットワードで構成され
る。命令サブキャッシュ64は、各64ビットメモリワード
に2つの32ビット命令が存在するので、32ビットハーフ
ワードに構成される。データサブキャッシュは0.5Mバイ
トを記憶し、命令サブキャッシュは0.25Mバイトを記憶
する。命令サブキャッシュのアイテムはハーフワードで
あるから、2つのサブキャッシュは同じ数のアイテムを
記憶する。サブキャッシュの2つの側面は構造ではキャ
ッシュと類似している。
サブキャッシュデータ単位 サブキャッシュディスクリプタはSVA空間の全ページ
を記載しない。これらディスクリプタはブロックと呼ば
れる異なる単位を記載する。ブロックの大きさはサブキ
ャッシュの2つの側面で相違している。データ側面で
は、ブロックはページの寸法の半分である。命令の側面
では、ブロックはページの大きさの1/4である。両側面
において、各ブロックは32のサブブロックに分割され
る。次の表は2つのサブキャッシュにおけるブロック、
サブブロック及び他のアイテムの相対寸法を示す。
命令及びデータサブキャッシュの比較 キャッシュがメモリのページを割当て、かつデータを
一度に1つのサブページをコピーするのと全く同じ態様
で、サブキャッシュはページを割当て、かつデータを一
度に1つのサブブロックをコピーする。
サブキャッシュの構成 サブキャッシュ62、64はキャッシュと同様に構成され
る。キャッシュが32通りのセット連想(各セットは32の
ディスクリプタを含む)である場合には、サブキャッシ
ュは4通りのセット連想である。データの側面では、セ
ット数はSVAのビット[16:11]及びタグビット[63:1
7]である。命令の側面では、セット数はビット[15:1
0]であり、そしてタグはビット[63:16]である。デー
タサブキャッシュは各サブブロックに対する変更情報を
保持する。
サブキャッシュ置き換え サブキャッシュはキャッシュLRUスキームの簡単な近
似を実行する。各サブキャッシュはセット内に最も最近
参照されたディスクリプタの識別子を保持する。ディス
クリプタが必要なときには、3つのディスクリプタのう
ちの最も最近参照されたディスクリプタでない1つを置
き換えのためにランダムに選択する。
サブキャッシュブロック書き戻し データサブキャッシュは、「サブキャッシュからキャ
ッシュへの更新」と題する上記項目において記載したよ
うに、変更されたサブブロックをそれらのキャッシュに
書込む。
基本的状態及び遷移 データ共有の基本モデルは3種類のサブページ状態、
即ち、無効、読出し専用、及びオーナー、により定義さ
れる。これら3つの種類はそれらが可能にするアクセス
によって強さの順に配列される。無効状態はいかなるア
クセスも可能にせず、読出し専用状態はロードアクセス
を可能にし、そしてオーナー状態はロード及び記憶アク
セスを可能にする。1つのキャシュのみが任意の与えら
れた時間にオーナー状態にある特定のサブページを保持
できる。オーナー状態のサブページを保持するキャッシ
ュはサブページのオーナーと呼ばれる。各サブページの
所有権は、プロセッサが所有権を要求する記憶命令及び
特別のロード命令を通じて所有権を要求するときに、キ
ャッシュからキャッシュへ移動する。任意数のキャッシ
ュが読出し専用状態においては特定のサブページを保持
することができる。
基本的状態 以下の項目は状態の種類及びそれらが強力に順序付け
された、順序的に終始一貫しているメモリアクセスのモ
デルを実行するために相互作用する態様を記載する。
無効状態 サブページがキャッシュに存在しないときには、その
キャッシュに関しては無効状態にあるといわれる。プロ
セッサがそのローカルキャッシュの無効状態にあるサブ
ページにロード又は記憶を要求すると、そのキャッシュ
はデータアクセスを満足させるためにある他の状態にあ
るサブページのコピーを要求しなければならない。無効
ディスクリプタと無効の2つの無効状態がある。特定の
キャッシュが特定のページに対するディスクリプタを有
さないときには、そのページのサブページの全部がその
キャッシュの無効ディスクリプタ状態にあると称され
る。かくして、無効ディスクリプタ状態のサブページは
明瞭には表わされない。特定のキャッシュが特定のペー
ジに対するディスクリプタを有するが、しかし特定のサ
ブページがそのキャッシュに存在しないときには、その
サブページは無効状態にある。2つの無効状態は、サブ
ページが無効ディスクリプタからよりは無効から読出し
専用又はオーナー状態への遷移を非常に受け易いので、
区別される。前者の場合には、ディスクリプタは既に存
在する。後者の場合には、ディスクリプタが割当てられ
なければならない。
読出し専用状態 1つの読出し専用状態、即ち、読出し専用、が存在す
るだけである。
オーナー状態 2つの基本的オーナー状態、即ち、非排他的及び排他
的、が存在する、特定のキャッシュが非排他的状態の特
定のサブページを保持すると、任意数の他のキャッシュ
がそのサブページを読出し専用状態に同時に保持するこ
とができる。特定のキャッシュが排他的状態の特定のサ
ブページを保持すると、他のキャッシュは、そのキャッ
シュが排他的状態に留まる限り、コピーを保持すること
ができない。キャッシュが非排他的状態のサブページを
保持し、かつそのサブページのデータが変更されると、
そのキャッシュは変更されたデータを読出し専用コピー
を持つキャッシュの全部に送る。
基本状態の遷移 基本状態の遷移は特定のキャッシュの排他的状態のサ
ブページを考慮することによって例示することができ
る。データがこの第1のキャッシュから他のキャッシュ
へ移動する基本的機構はその第1のキャッシュのローカ
ルプロセッサ以外のプロセッサによるロード及び記憶命
令の実行である。異なるロード及び記憶命令、並びに先
取り命令によりプログラムはそれらのローカルキャッシ
ュが読出し専用、非排他的、或は排他的状態を取得する
ことを要求することができる。他のキャッシュが読出し
専用状態を要求する場合には、第1のキャシュは排他的
から非排他的へその状態を変え、要求キャッシュに読出
し専用状態を与える。他のキャッシュが非排他的状態を
要求する場合には、第1のキャッシュはその状態を読出
し専用状態に変え、要求キャッシュに非排他的状態を与
える。他のキャッシュが排他的状態を要求する場合に
は、第1のキャッシュはその状態を無効に変え、要求キ
ャッシュに排他的状態を与える。
所有権は、プロセッサが排他的及び非排他的状態を要
求するときに、キャッシュからキャッシュへ移動する。
あるキャッシュが非排他的所有権を要求すると、任意の
読出し専用コピーが無効にされる(無効状態への遷移を
受ける)。
キャッシュが記憶命令を満足させるためにサブページ
の所有権を取得すると、このキャッシュは記憶命令が完
了するまでその所有権を他のキャッシュに与えない。非
排他的状態の場合には、キャッシュは記憶装置からの新
しいデータが読出し専用コピーを持つキャッシュに送ら
れるまで他のキャシュに所有権を与えない。この規則
は、メモリロケーションの読出し者達に変更がなされる
順序でこれら変更を観察することを保証するという点
で、メモリシステムの強力に順序付けされた性質を与え
る。
ある特定のサブページが特定のキャッシュの無効状態
にあり(即ち、ディスクリプタが既に割当てられている
が、しかし特定のサブページが存在しない)、かつその
サブページのコピーがある他のキャッシュからの要求に
よる領域の相互接続で入手でき、かつ少なくとも1つの
他のキャッシュがそのローカル領域(0)にコピーを有
するときには、そのキャッシュはサブページの読出し専
用コピーを取得するであろう。この機構の効果は、他の
キャッシュからサブページのコピーを要求することに関
連した待ち時間を除去することができるので、並列計算
を促進することができることである。
非排他的オーナーがサブページを変更するときには、
オーナーは領域を通じて任意の読出し専用コピーに変更
されたデータを送られなければならない。これはプロジ
ューサからコンシューマへの非常に速いデータの伝播を
可能にする。しかしながら、それは領域の帯域幅を浪費
する。それ故、このメモリシステムは不必要な非排他的
オーナー状態を回避するために2つの機構を含む。第1
は、非排他的オーナーが領域を通じて更新を送出する
と、このオーナーは任意の他のキャッシュが読出し専用
コピーを実際に保持するか否かを含む戻り受領信号を受
信する。読出し専用コピーが存在しないことを受領信号
が示す場合には、オーナーはサブページの状態を非排他
的から排他的に変えて今後の更新を回避する。第2は、
あるキャッシュが読出し専用状態に保持するというサブ
ページに対する更新を受信すると、その作用はそのサブ
ページが現在CPUのサブキャッシュに存在するか否かに
依存する。
そのサブページがサブキャッシュに記憶されていない
場合には、キャッシュはそれを無効にする。そのサブペ
ージがキャッシュに記憶されている場合には、キャッシ
ュはそれをサブキャッシュから除去する。これら作用の
効果は次の通りである。サブページが変更されない限
り、それの読出し専用コピーはメモリシステム全体に伝
播する。サブページが変更される場合には、各読出し専
用コピーは、そのコピーが少なくともそのサブページが
変更されるのと同じ頻度で参照される場合にのみ、存続
する。
基本状態の遷移の透過性 基本機構が強力に順序付けされたメモリアクセスモデ
ルを簡単なロード及び記憶命令を使用するプログラムに
与えるということに言及することは重要なことである。
プログラムはそれらの性能を改善するために特定の状態
を要求するロード、記憶、及び先取り命令の形式を使用
してもよく、そして多くの場合にコンパイラが必要な分
析を実行するということは予期されることである。しか
しながら、この分析は随意のことである。
同期状態及び遷移 同期状態及び関連する遷移はKSRトランザクションモ
デルを実施する。このトランザクションモデルはプログ
ラム間の広範囲の同期プロトコルを実施するために使用
できるプリミティブ同期機構である。これらプロトコル
の全部が時間的に規則正しい構造を共有データへのアク
セスに課する目的を共有する。
トランザクションモデルは、2つの状態、即ちアトミ
ック及び未決のアトミック状態、これら状態への及びこ
れら状態からの遷移を明確に要求する一組の命令、及び
参照するサブページが現在アトミック状態にあるか否か
にそれらのセマンティクスが存在するロード及び記憶命
令の形式、に基づいている。
アトミック状態及びトランザクション アトミック状態はトランザクションモデルの中心的特
徴である。アトミック状態は排他的状態よりも強い所有
権の形式である。サブページのみがプログラムによる明
確な要求の結果としてアトミック状態に入り、かつアト
ミッキュ状態から離れる。
基本的には、アトミック状態はSVA空間の任意のサブ
ページに単一スレッドのアクセスを行なうために使用で
きる。あるサブページがアトミック状態に入ることを要
求する命令をプロセッサが実行するときに、この命令
は、サブページが既にアトミック状態にない場合に、通
常は完了するだけである。かくして、サブページのアト
ミック状態は簡単なロックとして使用できる。このロッ
クはサブページをアトミック状態にすることによってロ
ックされ、またサブページを解放して排他的状態にする
ことによってロックが解かれる。
あるプログラムはサブページがジーイーティー(ge
t)命令の形式の1つでアトミック状態に入り、アール
エスピー(rsp)命令でアトミック状態を解放すること
を要求する。これら命令については後で詳細に説明す
る。
一連のジーイーティーはある保護された情報を操作
し、またアールエスピーはトランザクションの最も簡単
な形式である。以下の項目は一層複雑なプロトコルの実
施を可能にするトランザクション機構のより複雑な特徴
を示すものである。これらプロトコルは特定の並列プロ
グラミングの適用装置に高性能を与える。
積分データ及び同期 簡単なトランザクションにおいては、サブページは純
粋にロックとして使用される。サブページのデータは検
索できない。一層複雑な形式の同期機構のあるものはア
トミック状態に保持されたサブページのデータを利用す
る。最も簡単な事例はサブページのアトミック状態をそ
のサブページにおけるデータのロックとして使用するこ
とである。プログラムは1つ又はそれ以上のサブページ
をアトミック状態にし、それらの内容を操作し、そして
それらを解放する。
プロジューサ及びコンシューマ−ブロッキング及び非ブ
ロッキングロード命令 上記したトランザクションにおいては、保護されたデ
ータへのアクセスは厳密に単一のスレッドである。しか
しながら、1つのプログラムがある値を書込み、多くの
プログラムがそれを読出し、しかもコンシューマはデー
タの1つより多い完全なKSRワードを終始一貫して観察
する必要がないという重要な応用例がある。そのような
場合には、各コンシューマがアトミック状態のデータを
含むサブページを順次に並列に保持することは望ましく
ない。コンシューマはプロジューサがアトミック状態を
解放するまで待機しなければならないが、しかしコンシ
ューマはすべて同時に結果を読出すことができる。
これに類似する応用例はブロッキング及び非ブロッキ
ング形式のロード命令を使用して実施することができ
る。非ブロッキングロード命令はサブページがアトミッ
ク状態にあるか否かに関係なくそのサブページのデータ
にアクセスする。これらは通常のプログラムによって及
び上記した単一スレッドのトランジクションによって使
用される。ブロッキングロード命令は、サブページがア
トミック状態にない場合にのみ通常は進行する。ブロッ
キングロード命令によって参照されたサブページがアト
ミック状態にある場合には、この命令はサブページがア
トミック状態を離れるまで進行しない。プロジューサと
コンシューマの関係において、プロジューサはアトミッ
ク状態にあるデータを含むサブページを保持し、一方コ
ンシューマはブロッキングロード命令を使用してデータ
を読出す。
受動及び能動アトミック状態要求−未決のアトミック状
態 ジーイーティー命令は領域を通じてアトミック状態を
能動的に要求する。ある応用例においては、プログラム
は特定のサブページが既にアトミック状態にあるという
絶対知識を有し得る。この場合には、領域を通じて要求
を送ることは無駄なことである。その代りに、プログラ
ムはストップ命令を使用してサブページをローカルキャ
ッシュの未決のアトミック状態に置くことができ、そし
て他のプログラムに依存してサブページをアールエスピ
ーイー命令を使用して排出することができる。
サブページが特定のキャッシュの未決のアトミック状
態にあると、これはアトミック状態がそのキャッシュに
所望されているということを示す。未決のアトミック状
態にある特定のサブページを保持するキャッシュに領域
を通じてメッセージが到来し、アトミック状態をそのサ
ブページが入手できるということを指示すると、そのキ
ャッシュはそのサブページをアトミック状態にすること
になる。プロセッサがサブページに対するストップ命令
を実行すると、そのサブページはローカルキャッシュの
未決のアトミック状態に置かれる。他のプロセッサがア
ールエスピーイー命令を実行すると、アトミック状態が
そのサブページに入手できるということを示すメッセー
ジが送られる。このメッセージが未決のアトミック状態
にあるサブページを持つキャッシュに到着すると、その
キャッシュはアトミック状態を取得する。
この種のメッセージは単一の、十分に定められた順序
でシステムのキャッシュの全部に送られる。かくして、
一連のキャッシュはそれら自身のそれぞれに順繰りに同
期トークンを送るために形式ストップ、操作、アールエ
スピーイーのシーケンスを使用することができる。
過渡状態及び遷移 遷移状態はコンテンションの場合にサブページへのア
クセスの性能を改善するためにメモリシステムによって
自動的に使用される。3つの過渡状態がある。即ち、過
渡アトミック、過渡排他的、及び過渡非排他的状態であ
る。これら状態はアトミック、排他的、及び非排他的状
態に、それぞれ対応する。直ちに応答することができな
い特定のサブページに対する要求を特定のキャッシュが
受信すると、この特定のサブページはそのキャッシュに
おいて過渡状態に入る。サブページがアトミック状態に
あり、かつ他のキャッシュがそのサブページを要求する
場合には、そのサブページは保持するキャッシュにおい
て過渡アトミック状態に入る。サブページがアールエス
ピー命令によって後で解放されると、過渡状態は、あた
かもアールエスピーイーが使用されたかのように、サブ
ページを追い出されるようにする。サブページが排他的
又は非排他的状態にあり、かつサブキャッシュに記憶さ
れており、他のキャッシュがそのサブページを要求する
場合には、そのサブページは対応する過渡状態に入る。
サブページの最新のコピーがサブキャッシュに入手でき
ると、キャッシュはサブページを追い出し、他のキャッ
シュが利用できるようにする。
サブページは単一の他のキャッシュによる要求によっ
てキャッシュで過渡状態に入る。しかしながら、保持す
るキャッシュがそれを追い出す前に任意数の追加のキャ
ッシュが同じサブページに対する要求を行なう可能性が
ある。この場合には、1回の追い出しが領域を介して単
一のメッセージを有する要求キャッシュのすべてを満足
させる。
状態間の詳細な遷移 次のものは状態の別のリストである。このリストに
は、状態に入りかつ状態から離れるための最も重要な条
件が記載されている。このリストは上記序説より完全な
遷移の一覧表を提供するが、しかし状態遷移の正確な明
細は後で提供する表に与えられている。遷移のあるもの
はLRU情報によって条件付けされる。
無効ディスクリプタ: サブページは、そのページに対するディスクリプタが
割当てを解かれると、キャッシュにおいて無効ディスク
リプタ状態に入る。そのページに対するディスクリプタ
がキャッシュにおいて割当てられると、無効状態を離れ
る。ディスクリプタ・保持が1でない場合には、ディス
クリプタは、そのサブページのそれぞれが暗黙のうちに
無効ディスクリプタ状態にあると、自動的に無効にされ
る。
無効: サブページは、他のキャッシュが排他的又はアトミッ
ク状態を取得すると、キャッシュにおいて無効状態に入
る。サブページは、キャッシュが任意の状態のサブペー
ジのコピーを取得すると、そのキャッシュにおいて無効
状態を離れる。キャッシュは、データ移動制御命令(後
記参照)に応答して、或は他のキャッシュ間の通信によ
り領域を通じてコピーが入手できると、サブページのコ
ピーを取得してそのローカルプロセッサからの要求を満
足させることになる。
読出し専用: サブページは、キャッシュが読出し専用コピーを要求
すると、或は他のキャッシュ間の通信により領域を通じ
てコピーが入手でき、かつ同じ領域(0)の少なくとも
1つの他のキャッシュがそのサブページのコピーを有す
るときに、無効状態からキャッシュにおいて読出し専用
状態に入る。サブページは、他のキャッシュが非排他的
状態を要求するときに、非排他的又は排他的状態から読
出し専用状態に入る。サブページは、他のキャッシュが
排他的又はアトミック状態を要求するときに、或はキャ
ッシュがオーナー状態を取得するときに、読出し専用状
態を離れる。
サブページの非排他的オーナーがそのサブページを変
更すると、このオーナーは新しいデータを領域を通じて
送り、任意の読出し専用コピーを更新する。かかる更新
時に、キャッシュが読出し専用状態のサブページを有
し、かつそのサブページがキャッシュのローカルプロセ
ッサによって使用中であると、キャッシュはコピーを更
新し、更新に応答してコピーを有するということを示
す。サブページは、それがプロセッサのサブキャッシュ
に存在するときに、プロセッサにおいて使用中であると
定義される。キャッシュが読出し専用状態のサブページ
を有し、かつサブページが使用中でないと、そのキャッ
シュはサブページを無効にし、更新に応答しない。
非排他的オーナー: サブページは、キャッシュが所有権を要求し、かつあ
る他のキャッシュが読出し専用コピーを有するときに、
そのキャッシュにおいて非排他的状態に入る。サブペー
ジは次の通りに非排他的状態を離れる。即ち、キャッシ
ュが非排他的状態のコピーを有し、かつ他のキャッシュ
が非排他的状態を要求すると、保持するキャッシュはこ
の要求に応答してその状態を読出し専用状態に変え、非
排他的状態を要求するキャッシュに与える。キャッシュ
が非排他的状態のコピーを有し、かつ他のキャッシュが
排他的又はアトミック状態を要求すると、保持するキャ
ッシュはこの要求に応答してそのコピーを無効にする。
非排他的状態のサブページを保持するキャッシュがその
ローカルプロセッサから更新を受信すると、このキャッ
シュは新しいデータを他のキャッシュに送る。コピーを
保持しているということを他のキャッシュが指示しない
場合には、保持するキャッシュはサブページの状態を排
他的に変化させる。
排他的オーナー: サブページは、キャッシュが所有権を要求し、かつ他
のキャッシュが読出し専用コピーを有さないときに、或
はそのキャッシュが明確に排他的状態を要求するとき
に、そのキャッシュにおいて排他的状態に入る。サブペ
ージは、コピーの要求があると、排他的状態を離れる。
種々の状態の要求に対する応答は次の通りである。即
ち、 読出し専用−そのページがLRU優先度においてBS高
(ハイ)より低い場合には、保持するキャッシュは応答
して排他的状態を与え、そのコピーを無効にする。その
ページがLRU優先度においてBS高より高い場合には、保
持するキャッシュは応答して読出し専用状態を与え、そ
のコピーの状態を非排他的に変える。
非排他的−そのサブページがサブキャッシュに記憶さ
れている場合には、保持するキャッシュは応答して非排
他的状態を与え、そのコピーの状態を読出し専用に変え
る。そのサブページがサブキャッシュに記憶されていな
い場合には、保持するキャッシュは応答して排他的状態
を与え、そのコピーを無効にする。
排他的又はアトミック−保持するキャッシュは要求に
応答してそのコピーを無効にする。
アトミック: サブページは2つの方法の1つでキャッシュにおいて
アトミック状態に入る。第1は、ローカルプロセッサが
ジーイーティー命令を実行し、かつサブページがアトミ
ック状態にない場合に、要求するプロセッサのローカル
キャッシュはアトミック状態のサブページを取得するこ
とになる。第2は、あるキャッシュが未決のアトミック
状態のサブページを保持し、かつアトミック状態のサブ
ページを保持する他のキャッシュからそのサブページが
追い出される場合に、初めのキャッシュはアトミック状
態を取得することになる。
サブページは、キャッシュのローカルプロセッサから
の明確な要求によって解放されるときにのみ、そのキャ
ッシュにおいてアトミック状態を離れる。
未決のアトミック: サブページはストップ命令を通じて未決のアトミック
状態に入る。
サブページは2つの方法で未決のアトミック状態を離
れる。サブページがキャッシュにおいて未決のアトミッ
ク状態にあり、かつローカルプロセッサがアールエスピ
ー命令を実行する場合に、サブページは未決のアトミッ
クを離れ、無効になる。サブページがキャッシュにおい
て未決のアトミック状態にあり、かつそのサブページが
追い出しによりアトミック状態を得ることができるよう
にされると、そのサブページは未決のアトミック状態か
らアトミック状態に入る。
過渡非排他的オーナー: 過渡排他的オーナー: 過渡アトミックオーナー: 任意のオーナー状態のサブページを保持するキャッシ
ュが直ちに応答できない場合には、保持するキャッシュ
はサブページの過渡状態をマークする。例えば、あるキ
ャッシュがアトミック状態のサブページを保持し、他の
キャッシュが任意の状態のコピーを要求すると、保持す
るキャッシュはサブページの過渡アトミックをマークす
る。何故ならば、アトミック状態にある間応答を発生で
きないからである。
過渡状態は応答及び追い出し時に送られる。追い出し
がある他のキャッシュによって取得されることなしに領
域を通って移動した後でのみ過渡状態はクリアされる。
データコピー戦略 上記した状態間の相互作用は他のキャッシュからのコ
ピーを待機するのに費やした時間及び領域の帯域幅と更
新したコピーを他のキャッシュに送るのに費やした時間
及び帯域幅とのトレードオフである。システムにサブペ
ージの多数の読出し専用コピーが存在するときには、読
出しが既にローカルキャッシュにあるデータを見つける
という変化が増大する。しかしながら、システムに任意
の読出し専用コピーが存在する場合には、オーナーはサ
ブページを変更するときに更新を送り出さなければなら
ない。
次のヒューリスティックは単一のリード/ライターア
クセスから短期間の基準で複数のリード/ライター共有
をダイナミックに検出しようとするものである。複数の
リード/ライター共有は高い一時的ローカルティを持つ
複数の読出し専用コピー並びにより低い一時的ローカル
ティを持つ書込み更新である。読出し専用コピーを保持
することは、複数のコピーが更新間で複数回読出される
ので、非常に効率がよい。更新は単一の領域の動作にお
いて生じる。単一のリード/ライターアクセスは低い一
時的ローカルティを持つ読出し専用コピー並びに非常に
高いローカルティを持つ書込み更新である。読出し専用
コピーを保持することは、これらコピーが更新間で複数
回更新されるので、効率がよくない。単一のリード/ラ
イトコピー(排他的オーナー状態)は書込み更新に対し
て領域の動作を要求しない。これら2つの事例を独立に
すべての読出し専用コピーに適用することによって、複
数の読出し専用コピーを持つ非排他的所有権から読出し
専用コピーを持たない排他的所有権への遷移を可能にす
る。これら考察をバランスよく調整するための戦略は次
の通りである。
a.サブページのコピーが要求を満足させるために領域を
通って送られると、ページに対するディスクリプタを持
つが、サブページのコピーを持たない任意のキャッシュ
がメッセージから読出し専用コピーを取出す。この機構
は高いローカルティの基準を持つ応用装置を加速する。
b.キャッシュがサブページに対する更新を送ると、使用
中でない読出し専用状態のサブページのコピーを持つそ
の他すべてのキャッシュはそのコピーを無効にする。コ
ピーがサブキャッシュに記憶されている場合には、「使
用中」とみなされる。コピーがプロセッサのサブキャッ
シュに保存されると、それはサブキャッシュから除去さ
れる。これはそのプロセッサからのそのサブページに対
する次の参照をゆっくりとさせる。コピーが除去されな
かった場合には、サブページは無期限にサブキャッシュ
に残留することになり、オーナーに強制的に更新を送ら
せる。相互接続の帯域幅はシステム全体の性能を制限す
るから、全体的なスループットに対する1つのキャッシ
ュのトレーディング待ち時間は正味のシステムの性能を
改善する。
c.オーナーが異なる領域(0)にいるときに、キャッシ
ュはサブページの読出し専用コピーを周期的に除去す
る。これは更新のコストを減少させる。何故ならば、領
域(0)内メッセージは領域(0)間メッセージより速
いからである。
プロセッササイド 第6A図及び第6B図に示す表はキャッシュがそのローカ
ルプロセッサからのデータアクセス要求に応答して取る
行為の正確な明細を表わす。この表の一列は各プロセッ
サのキャッシュに対する要求に対するものである。一行
はキャッシュにおけるサブページの各可能な状態に対す
るものである。表の記載事項は、サブページがキャッシ
ュにおいて特定の状態にあるときに、もしあれば、要求
を満足させるためにそのキャッシュによって領域を通じ
て送られたメッセージを示す。これらメッセージは以下
に定義される。記載事項が「→状態」を含むときは、ロ
ーカルキャッシュがメッセージに対する上首尾の応答を
受信した後で、サブページをその状態にセットする。
領域サイド キャッシュは領域を通じてメッセージを送り、特定の
状態のサブページのコピーを取得する。各メッセージは
要求のタイプ、ディスクリプタ、及びサブページに対す
るデータよりなる。第7図、第7A図、第7B図、第7C図、
及び第7D図に示す表は各キャッシュが領域でのメッセー
ジに応答する態様の正確な明細を示す。これら表は3つ
の部分に分割されている。即ち、読出し動作、書込み動
作、及び応答動作である。各部分は動作の定義を含む。
これら表は特定の状態のサブページを持つキャッシュが
特定のメッセージを受信したときに生じる状態を与え
る。これら状態の他に、表には次の副次的効果及び変更
の注釈がついている。
応答:キャッシュはサブページのコピーを持つメッセー
ジに応答する。
誤り:キャッシュは除外の信号を発する。
ワーキング−セット:ページのLRU優先度がBS高レベル
(ハイ)より低い場合に、サブページは、オーナー制限
がその遷移を禁止しない限り、要求者を支持して無効に
される。その他の場合は図示の通りである。
サブキャッシュにあるか?:サブページがサブキャッシュ
に記憶されていない場合には、他の制限がその遷移を禁
止しない限り、サブページは要求を支持して無効にされ
る。その他の場合は図示の通りである。
オーナー制限?:ディスクリプタ・オーナー制限の値がキ
ャッシュオーナー制限である場合には、誤りである。そ
れが領域0オーナー制限であり、かつ源要求が異なる領
域(0)にある場合には、拒絶する。その他の場合は特
定された通りである。
更新フラッシュ?:サブページがサブキャッシュにある場
合には、それをサブキャッシュから除去し、応答してコ
ピーが存在することを指示する。サブページがサブキャ
ッシュにない場合には、それを無効にし、全く応答しな
い。
領域0コピー?:ローカル領域(0)に他のコピーが存在
する場合には、既にキャッシュにコピーがあるならば、
読出し専用コピーを保持する。キャッシュにコピーが存
在しない場合には、読出し専用状態のコピーを取得す
る。その他の場合は、コピーが存在するならば、それを
無効にする。
変化なし:状態の変化なし。
更新フラッシュ?及び領域0コピー?の両方が特定さ
れた場合には、いずれかの条件がコピーを保持するのに
十分である。
読出しメッセージ 特に第7A図を参照すると、読出し動作はプロセッサの
動作に必要な状態を取得するために使用される。いった
んサブページがローカルキャッシュに読出されると、動
作は進行し得る。
読出しメッセージの大部分は単に特定の状態のサブペ
ージに対する要求であり、状態のあとに名称がつけられ
る。例えば、読出しアトミックはアトミック状態を要求
する。複雑なセマンティクスを持つ2つのメッセージ、
即ち、最高の読出し専用及び最高の非排他的メッセー
ジ、がある。最高の読出し専用は増大する領域距離の順
序でシステムをサーチし、最も近いキャッシュが入手で
きる最強の状態を取る。ローカル領域(0)に任意のコ
ピーが存在する場合には、最強の状態のコピーが応答し
てそれ自身を無効にする。最高の非排他的は、読出し専
用状態のサブページを持つキャッシュが応答しないとい
う点を除き、同様のセマンティクスを持つ。読出し一回
コピーはサブページの状態を変えることなしにサブペー
ジのコピーを要求する。
書込みメッセージ 第7B図を参照すると、書込み動作は変更されたデータ
を他のキャッシュに送り出すために、或は他のキャッシ
ュに強制的に状態を放棄させるために、使用される。
書込み更新:これはサブページが変更されたときに非排
他的オーナーによって送り出される。
書込み無効:これは非排他的オーナーが排他的状態を取
得する必要があるときに、非排他的オーナーによって送
り出される。(アトミック状態を取得するために、非排
他的オーナーは書込み無効を使用して排他的状態を獲得
し、そして任意の他のキャッシュが所有権を要求するこ
とを可能にする前に、内部的にアトミックに状態を変え
る。) 書込み排他的再結合:これは過渡排他的状態にある又は
CPU命令によって明確に追い出されたサブページを追い
出すために使用される。また、排他的状態のサブページ
を持つキャッシュによって、LRU優先度の基準でサブペ
ージに対して責任を負う他のキャッシュを見つけるため
に、送り出される。いったんディスクリプタを持つ1つ
のキャッシュがこのメッセージに応答したときには、他
のキャッシュは応答しない。メッセージに対する応答が
なく、かつキャッシュがWSトップより低いLRU優先度を
持つページに対するディスクリプタを有する場合には、
キャッシュは状態を排他的オーナーにセットし、応答す
る。このメッセージは、トランザクションの終了時にこ
のトランザクション中サブページを要求したキャッシュ
にそのサブページを送るために、使用される。このメッ
セージは、また、LRU保全においても使用される。
書込み非排他的再結合:これは過渡非排他的状態にある
又はCPU命令によって明確に追い出されたサブページを
追い出すために使用される。また、非排他的状態のサブ
ページを持つキャッシュによって、LRU優先度の基準で
サブページに対して責任を負う他のキャッシュを見つけ
るために、送り出される。いったんディスクリプタを持
つ1つのキャッシュがこのメッセージに応答したときに
は、他のキャッシュは応答しない。メッセージに対する
応答がなく、かつキャッシュがWSトップより低いLRU優
先度を持つページに対するディスクリプタを有する場合
には、キャッシュは状態を非排他的オーナーにセット
し、応答する。このメッセージはLRU保全において使用
される。
両再結合メッセージはディスクリプタ・オーナー制限
によって制限される。ディスクリプタ・オーナー制限が
領域0オーナー制限であると、再結合メッセージは発信
領域(0)の外部には送られない。ディスクリプタ・オ
ーナー制限がキャッシュオーナー制限であると、再結合
メッセージは決して送出されない。「再結合?」という
指示は上記したLRU位置比較を示すということを注記し
ておく。
応答メッセージ 第7C図及ひ第7D図を参照すると、応答メッセージは読
出しメッセージに応答するキャッシュによって送り出さ
れる。第1の表は特定の状態のサブページを既に保持す
るキャッシュが応答メッセージに対して、もしある場合
に、取る行為を示す。第2の表はサブページに対する特
定のタイプの要求に対する応答を待機しているキャッシ
ュの行為を示す。2つの事例がこれら表に示されてい
る。即ち、 1)応答が誤りとして検出できる。例えば、キャッシュ
がサブページを排他的に保持し、かつ他のキャッシュが
排他的応答を送り出す場合には、矛盾があり、保持する
キャッシュは除外の信号を送る。
2)キャッシュがページに対するディスクリプタを有す
るが、しかしサブページのコピーを持たない場合には、
キャッシュはある条件のもとでコピーを拾い出すことに
なる。
ディスクリプタ移動 キャッシュが無効ディスクリプタ状態のサブページの
コピーを受信すると、キャッシュはそのディスクリプタ
を、源キャッシュのディスクリプタのフィールドの大部
分をコピーすることによって、初期設定する。LRS位
置、LRU挿入インデックス、サブキャッシュ、サブペー
ジ状態、保持及びオーナーなしは決してコピーされな
い。オーナー制限は特定的な取扱われる。
プロセッサデータアクセス及び領域要求 プロセッサはロード及び記憶命令並びにコプロセッサ
動作を満足させるためにそのローカルキャッシュにデー
タの要求をする。キャッシュはそのローカルプロセッサ
に要求してプロセッサにそのサブキャッシュにあるサブ
ページのコピーを無効にさせる。
ロード及び記憶命令 プロセッサは、参照されたアドレスを含むサブページ
が所要の状態でサブキャッシュに存在しないときに、そ
のローカルキャッシュに要求としてロード及び記憶命令
を送る。異なるタイプのロード及び記憶命令が次の命令
のアクセスパターンについてローカルキャッシュに情報
を送る。例えば、命令のシーケンスがロードに続いて記
憶であり、データアイテムを含むサブページがローカル
キャッシュにまだ存在しない場合には、ロード命令に対
する読出し専用コピーを得てから領域を通じてもう一度
通信し、記憶命令に対する所有権を獲得することによ
り、ロードに対する所有権を取得する方がより効率的で
ある。
異なる形式のロード及び記憶命令は後述する。各説明
は命令のセマンティクスの簡単な要約で始まり、キャッ
シュの行為の詳細な説明が続く。
ここに記載するロード命令のすべてが2つの形式、即
ち、ブロッキング及び非ブロッキング、を持つ。これら
形式はアトミック状態に関するロード命令の作用を制御
する。プロセッサがアトミック状態のサブページを参照
するブロッキングロード命令を実行する場合には、その
命令はサブページが進行する前にアトミック状態を離れ
るまで、待機する。プロセッサがアトミック状態のサブ
ページを参照する非ブロッキングロード命令を実行する
場合には、その命令はローカルキャッシュにアトミック
状態を取得し、そして進行する。
ロード(障害)[ldd/cldd]: プログラムは現在のアクセスパターンを続ける。サブ
ページが既にキャッシュに存在する場合には、ローカル
キャッシュは同じ状態のサブページを保持する。サブペ
ージが既に存在しない場合には、ローカルキャッシュは
読出し専用状態のサブページを要求する。ldbd/cldbd形
式のこれら命令はサブページがアトミック状態にある場
合にはブロックし、それが解放されまで待機する。
ロード(排他的)[lde/clde]: プログラムはサブページを次の命令に書込み、排他的
状態は非排他的状態より好ましい。データが殆ど共有部
分を有さないということが予期されたときに、或は一連
の書込みが起ろうとしていたときに、プログラムはこれ
を使用し、それ故、読出し専用コピーの更新を回避する
ために排他的状態を取得することは余分の仕事に値し
た。
ローカルキャッシュは排他的オーナー状態のサブペー
ジを要求する。これは、他のキャッシュがロードと記憶
の間で読出し専用状態のサブページのコピーを入手しな
い限り、プロセッサが読出し専用コピーを更新すること
なしにサブページに書込むことを可能にする。ldbe/cld
be形式のこれら命令はサブページがアトミック状態にあ
る場合にはブロックし、そしてそれが解放されるまで待
機する。
ロード(排他的)の使用の特定例はスタックのような
パープログラムデータである。一般に、そのようなデー
タの読出し専用コピーは存在しない。何故ならば、唯一
のコピーがプログラムによって使用中のものであるから
である。しかしながら、プログラムが1つのプロセッサ
から他のプロセッサに移動する場合には、新しいプロセ
ッサのローカルキャッシュはコピーを持たず、古いプロ
セッサのローカルキャッシュは排他的状態のサブページ
を保持し続ける。プログラムがロード(障害)を使用す
る場合には、ローカルキャッシュは非排他的状態のサブ
ページを取得し、前のプロセッサのキャッシュに読出し
専用コピーを残し、そして効率の悪い更新を要求する。
ロード(排他的)命令は常にデータを、キャッシュに
おいて取得されたのと同じ状態のサブキャシュにロード
する。
記憶(障害)[st/cst]: プログラムは次のいくつかの命令においてこのサブペ
ージに記憶される見込みがない。ローカルキャッシュは
サブページの現存する状態を維持する。
サブページがある他のキャッシュのアトミックである
場合には、ローカルキャッシュはアトミック状態を取得
する。
記憶(障害)命令は常にデータを排他的状態のサブキ
ャッシュにロードする。
ロードサブページ(障害)[ldspd/cldspd]: ロードサブページ(排他的)[ldspe/cldspe]: ロードサブページはサブページ全部のデータをプロセ
ッサ又はコプロセッサの汎用レジスタにロードするため
に使用される。サブページがサブキャッシュに存在する
場合には、それはサブキャッシュから直接ロードされ
る。サブページがサブキャッシュに存在しない場合に
は、それはローカルセルキャッシュから直接ロードされ
る。これら命令に対する選択権は、データがセルキャッ
シュからロードされている場合には、データが目的のレ
ジスタの他にサブキャッシュに記憶されるか否かを特定
する。ldspbe/cldspbe形式のこれら命令はサブページが
アトミック状態にある場合にはブロックし、そしてそれ
が解放されるまで待機する。
ロードサブページ(障害)及びロードサブページ(排
他的)命令はロード(障害)及びロード(排他的)命令
に対応するセマンティクスを有する。
ロードサブページ(一回)[ldspo/cldspo]: ロードサブページ(一回)は、プログラムが遠からず
任意の時間にサブページのデータをさらに参照する積り
がないときに、使用される。この命令はサブキャッシュ
又は任意のキャッシュの状態に、ある場合には過渡状態
をセットすることを除き、影響を与えない。データがサ
ブキャッシュで使用できる場合には、データはサブキャ
ッシュからロードされる。データがサブキャッシュで使
用できないが、しかしローカルキャッシュで使用できる
場合には、データはサブキャッシュに記憶されることな
しにローカルキャッシュからロードされる。データがロ
ーカルセルで全く使用できない場合には、データは現存
する状態を乱すことなく領域を通じてコピーされる。
記憶サブページ(障害)[stsp/cstsp): 記憶サブページ(排他的)[stspe/cstspe]: 記憶サブページはプロセッサ又はコプロセッサの汎用
レジスタからサブページ全部のデータを記憶するために
使用される。サブページがサブキャッシュに存在する場
合には、それはサブキャッシュに直接記憶される。サブ
ページがサブキャッシュに存在しない場合には、それは
ローカルセルキャッシュに直接記憶される。これら命令
に対する選択権は、データがセルキャッシュに記憶され
ている場合、データがサブキャッシュにも記憶されるか
否かを特定する。
命令取出し: 命令取出しは常に読出し専用状態のデータを含むサブ
ページを取出す。
サブページアトミック状態命令 サブページアトミック命令は上記した獲得、ストッ
プ、及び解放動作に対するプログラムインタフェースで
ある。これら命令はいくつかの形式で存在し、並列プロ
グラムの正確な同調(チューニング)を可能にする。
解放サブページ[rsp]: 解放サブページは未決のアトミック又はアトミック状
態からサブページを除去するために使用される。サブペ
ージがローカルキャッシュにおいて未決のアトミック状
態にあると、それは無効状態にセットされる。サブペー
ジがローカルキャッシュにおいて未決のアトミック状態
にない場合には、それは無効状態にセットされる。サブ
ページがローカルキャッシュにおいて未決のアトミック
状態ではないが、しかしシステムのあるキャッシュにお
いてアトミック状態にあると、それはそのキャッシュに
おいてアトミック状態から排他的状態にセットされる。
サブページがそのキャッシュにおいて過渡アトミック状
態にあると、それは過渡排他的状態に変化され、そして
このサブページは後記の解放及び追い出しサブページ命
令により追い出される。サブページがローカルキャッシ
ュにおいて未決のアトミック状態になく、かついかなる
キャッシュにおいてもアトミッキュ状態にない場合に
は、解放サブページは何の影響もない。
解放及び追い出しサブページ[resp]: 解放及び追い出しサブページは、サブページがアトミ
ックから排他的状態に変わった場合に、サブページが、
あたかも過渡アトミック状態にあったかのように、常に
追い出されることを除き、解放サブページと同じセマン
ティクスを有する。
獲得サブページ[gsp]: 獲得サブページ及び待機[gspw]: 獲得サブページ、待機及びロード[gspwld]: 獲得サブページ、待機及びロードサブページ[gwlds
p]: 獲得サブページはサブページがアトミック状態にセッ
トされることを要求する。あらゆる形式の獲得サブペー
ジ命令に対して、サブページがいかなるキャッシュにお
いてもアトミック状態にない場合には、ローカルキャッ
シュはアトミック状態のサブページを取得する。
獲得サブページ命令に対して、サブページがローカル
キャッシュで既にアトミックである場合には、命令は除
外の信号を発する。サブページがある他のキャッシュで
既にアトミックである場合には、命令は進行する。プロ
グラムはgspの跡でmcksp命令を使用し、サブページをア
トミック状態にさせる試みが成功したか否かを決定しな
ければならない。
他の獲得サブページ命令に対しては、サブページが任
意のキャッシュにおいて既にアトミックである場合に
は、命令はサブページが解放されるまで待機する。その
後ローカルキャッシュはアトミック状態のサブページを
取得する。
獲得サブページ命令の2つのロード形式はロード命令
が後に続くgspwと同じセマンティクスを有する。唯一の
相違は結合された命令はより速いということである。
ストップサブページ[ssp]: ストップサブページ及び待機[sspw]: ストップサブページ、待機及びロード[sspwld]: ストップサブページ、待機及びロードサブページ[swld
sp]: ストップサブページはローカルキャッシュにおけるサ
ブページの状態を未決のアトミックにセットする。
ストップサブページ及び待機はローカルキャッシュに
おけるサブページの状態を未決のアトミックにセット
し、そしてサブページの状態が未決のアトミックからア
トミックに変わるまでブロックする。
ストップサブページ、待機及びロードはストップサブ
ページ及び待機とロード(障害)との分割できない組合
せである。
ストップサブページ、待機及びロードサブページはス
トップサブページ及び待機とロードサブページ(障害)
との分割できない組合せである。
解放、追い出し及びストップサブページ[ressp]: 待機、解放、追い出し及びストップサブページ[wress
p]: 獲得サブページ、待機、解放、追い出し及びストップサ
ブページ[gwressp]: ロード、解放、追い出し及びストップサブページ[ldre
ssp]: 解放、追い出し及びストップサブページは解放及び追
い出しサブページとストップサブページとの分割できな
い組合せである。
待機、解放、追い出し及びストップサブページはサブ
ページがローカルキャッシュにおいてアトミック状態に
なるまで待機することと、解放及び追い出しサブページ
と、ストップサブページとの分割できない組合せであ
る。
獲得サブページ、待機、解放、追い出し及びストップ
サブページは獲得サブページと、待機、解放及び追い出
しサブページと、ストップサブページとの分割できない
組合せである。
ロード、解放、追い出し及びストップサブページはロ
ード(障害)と、解放及び追い出しサブページと、スト
ップサブページとの分割できない組合せである。
他のサブページ命令 メモリチェック・サブページ[mcksp]: メモリチェック・サブページはサブページに対する非
同期のメモリシステム命令の進行をチェックする。メモ
リチェック・サブページは2つの値、即ち、命令が進行
中であったか否かの2進指示と現在のサブページの状
態、を戻す。
先取りサブページ(コピー)[pcspc、pdspc、pisp
c]: 先取りサブページ(非排他的)[pspcn、pdspn、pisp
n]: 先取りサブページ(排他的)[scspe、pdspe、pisp
e]: 先取りサブページはサブページのコピーが特定の状態
においてローカルキャッシュで取得されることを要求す
る。先取りサブページはサブページがプロセッサの命令
又はデータサブキャッシュに先取りされるべきか否かを
特定する。サブページに対するその後のロードは先取り
サブページが完了するまでブロックする。
ページ先取り命令 先取りキャッシュページ(コピー)[pcpc]: 先取りキャッシュページ(非排他的)[pcpn]: 先取りキャッシュページ(排他的)[pcpe]: 先取りキャッシュページはあるページのサブページの
全部が特定の状態においてローカルキャッシュで取得さ
れることを要求する。
プロセッサロード命令、プロセッサ記憶命令、及びペ
ージ操作命令を含む好ましいメモリ命令セットの詳細な
説明は付表F(添付せず)に与えられている。
サブキャッシュからキャッシュへの更新 プロセッサがサブキャッシュにサブページのコピーを
有し、かつそのサブページがそのプロセッサのローカル
キャッシュによって所有されていると、プロセッサは次
の通りにサブページに対する変更をそのローカルキャッ
シュに伝播する。即ち、 ローカルキャッシュが排他的状態のサブページを保持
する場合には、プロセッサは、 サブページがサブキャッシュから除去されるときに、
或は、 ローカルキャッシュがサブページのコピーに対する要
求を受信するときに、或は、 プロセッサが停止されるときに、 キャッシュに変更を伝播する。二番目の要求を受信する
場合には、ローカルキャッシュは明確に更新されたコピ
ーを要求する。また、最後のプロセッサが停止されたと
きには、プロセッサは排他的状態にある変更されたサブ
ページをそのローカルキャッシュに更新する。
プロセッサのローカルキャッシュが非排他的状態にあ
るサブページを保持する場合には、プロセッサは各変更
を、それが完了したときに、伝播する。
プロセッサは変更された情報を更新データ要求を持つ
そのローカルキャッシュに伝播する。
強制サブキャッシュ無効 キャッシュは、他のキャッシュからの要求に応答して
サブページを無効にするために、そのローカルプロセッ
サに強制的にそのサブページをサブキャッシュから除去
させる。
1つのキャッシュから他のキャッシュへの要求 そのローカルプロセッサからの要求に応答するのと同
時に、各キャッシュはそのローカル領域(0)によって
送られた他のキャッシュからのメッセージに応答する。
3つのタイプのメッセージ、即ち、読出し、書込み、及
び応答、が存在する。読出しメッセージはある他のキャ
ッシュにサブページに対するデータで応答するように要
求する。また、各読出しメッセージは特定の状態を要求
し、そしてデータで応答するキャッシュ及びコピーで応
答する他のキャッシュの両方が、状態要求を満足させる
ために、サブページのそれらのコピーの状態を変える。
書込みメッセージは読出し専用コピーを持つキャッシュ
にサブページの更新されたコピーを供給するか、或は他
のキャッシュにそれらのコピーの状態を変えるように指
示する。応答メッセージは読出しメッセージに応答して
送られる。発信要求者以外のキャッシュは後で特定され
る応答メッセージの行為を行なう。
読出し及び書込みメッセージはロード及び記憶命令に
対応しないということを注記することは重要なことであ
る。ロード及び記憶命令の両方は読出しメッセージをも
たらし、適当な状態にあるサブページのコピーを取得す
る。特定の記憶命令は、サブページが非排他的状態に保
持されない限り、即時(イミーディエート)書込みメッ
セージをもたらさない。
キャッシュページ用法及び置換え KSRシステムのキャッシュはシステムソフトウエアに
よって多重レベル記憶システムの一部分として使用する
ことができる。そのようなシステムにおいて、物理メモ
リは大きなアドレス空間を通じてデマンドページングに
よって多重使用される。キャッシュは、ソフトウエアが
キャッシュと二次記憶装置間にSVAページの単位でデー
タを移動させる多重レベル記憶システムの実施を加速す
る特徴を含む。
2つの記憶レベルとしてのキャッシュ すべてのキャッシュは一緒になってシステムの一次記
憶装置を構成する。しかしながら、ある目的に対して
は、各個々のキャッシュを独立した一次記憶装置として
取扱う必要がある。これは各キャッシュが制限された数
のページ、即ち、各キャッシュに4096ページ、及び任意
特定のセットに32、のみしか保持できないからである。
各ページは各キャッシュの1セットにのみ記憶できるだ
けであるから、キャッシュは、セットが満杯のためキャ
ッシュがページに対するディスクリプタを割当てること
ができないときには、除外の信号を発する。かかる除外
の信号が発生されると、ソフトウエアは満杯のセットに
余地を作る行為を取らなければならない。
特定のセットの特定のキャッシュが満杯であるときに
は、ソフトウエアはメモリシステム全体が対応的に満杯
であると想定する理由はない。従って、ソフトウエアが
満杯のセットに応答してそのセットから他のキャッシュ
の対応するセットにページを移動させることが望まし
い。この行為を取る際に、メモリシステムの残部を、満
杯のセットを持つ特定のキャッシュとバッキングストア
と呼ばれる二次記憶装置との間の追加のレベルの記憶装
置として、取扱う。
バッキングストア管理用戦略 第8図を参照すると、メモリを効率よく使用するため
に、ソフトウエアはある戦略を使用して満杯のセットか
ら除去する適当なページを識別し、かつ、もしあるなら
ば、そのページに対する適当な目的のキャッシュを識別
しなければならない。キャッシュはこのページの置換え
のための1組の戦略を促進する設備を含む。セット内の
置換えのためのページのソフトウエアによる選択を促進
するために、各キャッシュはページを最も最近に使用さ
れたもの(MRU)から最も以前に使用されたもの(LRU)
までおおよそ順次付けする。ページが参照されると、そ
のページはMRUに移される。その後他のページが参照さ
れるにつれ、上記ページはLRUの方へ向かって古くな
る。LRU情報は最も以前に使用されたページを置換える
戦略を促進する。
キャッシュ間での置換えのために目的とするキャッシ
ュのソフトウエアによる選択を促進するために、各キャ
ッシュはおおよその量のキャッシュの動作(ワーキン
グ)セットを保持する。動作セットはキャッシュのロー
カルプロセッサで走行するプログラムによって不動の使
用状態にある、数回或はまたにしか参照されないページ
とは区別される、ある量のページ数である。ソフトウエ
アは各キャッシュの動作セットをMRUとLRU間の一点とし
て計る。この動作セット点より上(MRU側)のページは
動作セット中にあり、他方動作セット点より下(LRU
側)のページは動作セットから離れている。動作セット
情報は各キャッシュのメモリの非動作セット部分をシス
テムバッキングストアとして取扱うソフトウエア戦略を
促進する。
アトミックページ移動及び除去 キャッシュのローカルプロセッサが無効ディスクリプ
タ状態にあるサブページのデータを参照すると、新しい
ページが到来する。対応するページがシステムのどこか
他のところに存在する場合には、キャッシュはそのディ
スクリプタ及び他のキャッシュからの参照されたサブペ
ージをコピーする。結局、このプロセスはキャッシュセ
ットを満杯にする。データが複数のプロセッサで走行す
るプログラムによって広く共有されるときには、これは
非常に頻繁に起こる事象である。それ故、各キャッシュ
は、満杯のセットによって要求される度々のソフトウエ
アの調停の必要を回避するために、他の計算と並行して
ページを自動的に移動及び除去する設備を含む。これら
設備はLRU及び動作セット情報を使用してページを再結
合し、またページを除去する。ここで、ページの再結合
とは1つのキャッシュにおける1ページの全部のサブペ
ージを集め、かつ他のキャッシュにおけるディスクリプ
タを解放することであり、またページの除去とはすべて
のキャッシュから変更されないページを除去することで
ある。
これら自動行為の全部がソフトウエアによって調整で
き、或は無能力にでき、そしてディスクリプタ・保持に
よって禁止される。次の項目はキャッシュがページを再
結合し、移動し、かつ除去する状況を説明するものであ
る。
再結合するページ 各キャッシュはLRUから動作セット点までのページを
再結合する。これらページは動作セット点より上である
場合よりも再び参照される可能性が相当に少ない。従っ
て、各キャッシュはそれらページが動作セット点を通過
するときに再結合する。キャッシュは、ページを再結合
するために各サブページに対して書込み排他的再結合又
は書込み非排他的再結合メッセージを使用する。再結合
メッセージがページを引き受ける他のキャッシュを見つ
けることができない場合には、再結合するキャッシュは
データを保持する。実際には、再結合するキャッシュは
自分自身を再結合の目標として見出す。ページは、動作
セット点を離れた後できるだけ早く再結合されるから、
コピーを持つ任意の他のキャッシュは恐らく動作セット
にあるページを有することになる。(ある他のキャッシ
ュにおいて動作セットにない場合には、そのキャッシュ
はそれを再結合することになる。) 動作セット点より下のページは参照される可能性が低
いので、実際にデータを他のキャッシュに移動させる再
結合の大部分は最近動作セットを離れたページを持つ。
どこか他のところで再結合された動作セット点より下の
ページはそれらが動作セットを離れた後で参照されたペ
ージであり、従って再結合はそれらページを参照したキ
ャッシュに移動させる。
除去するページ キャッシュはサブページ及びページを無効にして他の
ページに対する余地を作る。これはドロッピング(除
去)と呼ばれる。キャッシュは動作セット点より下の、
かつ読出し専用又は無効状態にあるサブページを有する
ページ(読出し専用ページ)を自動的に除去する。キャ
ッシュが解放状態のディスクリプタを有さず、かつペー
ジを再結合することによってディスクリプタを割当てる
ことができない場合には、このキャッシュはサブキャッ
シュに記憶されていない、かつMRUからLRUまでの順序の
どこかにある読出し専用ページを除去する。キャッシュ
が読み出し専用ページを有さない場合には、このキャッ
シュは、サブキャッシュに記憶されていない、かつ後で
明確にされるWS低レベル(ロー)レジスタによって定め
られる動作セットのより下の部分にある無効、読出し専
用、或は排他的状態のサブページを持つ変更されないペ
ージを除去する。
ソフトウェアワーキングセット関係動作 以下の節は、マルチレベルストアを実施するためにキ
ャッシュ機構を利用するソフトウェア作戦について記述
する。
変更ページ 変更ページがワーキングセット点を横切るとき、シス
テムソフトウェアはそれをディスクに書き込むことを引
き受けるから、変更ページは、LRUに達する迄に純粋に
される。キャッシュの一部のみが、適当なディスクドラ
イブに対して物理的接続を有することによって、所与の
ページを書き込むことができるであろうから、変更ペー
ジは、そのページのための二次的記憶デバイスに接続さ
れたXIUを有するセル内のキャッシュに移動されねばな
らない。ソフトウェアは、コピーまたは変更命令が書き
込まれるように頁を移動させる。ソフトウェアは、時
折、あるデータに対して予期される参照パターンの知識
を有する。もしも、ソフトウェアが、あるページが1回
のみ参照されることを予期すると、そのページは、後で
使用されそうな情報を排出するのを避けるため、MRUよ
り下のLRU順番のどこかの位置に挿入されねばならな
い。詳述すると、もしも、ソフトウェアが、しばらくそ
れを参照せず、そして恐らくそれを全然参照しないとい
うデータを先取りしていると、それはMRUに挿入される
べきでない。ソフトウェアは、先取りおよび変更命令に
適当なLRU挿入インデックスをセットすることにより挿
入点を制御する。
キャッシュ使用および交換機構 各キャッシュは、存在するページのすべてに対してLR
U状態を維持する。LRUデータは、ディスクリプタ連想メ
モリの128セットの各々に対して別々に維持され、それ
らの凡の最後の参照時間に従ってセット内に32ページの
順番を整理する。
基本的LRU保守 各キャッシュは、各セット内におけるディスクリプタ
のLRU−MRUの順番を維持する。順番は、ディスクリプタ
・LRU優先で維持される。セット内の各ディスクリプタ
は、ディスクリプタ・LRU優先で(MRU)乃至31(LRU)
の値を有する。あるページが参照されるとき、そのペー
ジはMRUに移動する。そのとき、MRUから参照されるペー
ジのLRU優先までの他の全ページは、下方に移動する。
あるページが先ずサブキャッシュに記憶されると、デ
ィスクリプタ・LRU優先は0にセットされ、これにより
そのページはMRUに挿入される。あるページの最後にサ
ブキャッシュ記憶されたサブページがサブキャッシュか
ら放逐されると、ディスクリプタ・LRU優先が、ディス
クリプタ・LRU挿入インデックスにより特定されるとこ
ろにしたがってセットされる。挿入インデックスは、LR
U挿入テーブル、すなわち以下で説明されるパー−キャ
ッシュテーブルにおけるエントリを選択する。ディスク
リプタ・LRU優先は、LRU挿入テーブル(ディスクリプタ
・LRU挿入インデックス)にセットされ、ディスクリプ
タ・LRU優先は、他のディスクリプタに対して、それを
受け入れるのに適当であるように変更される。LRU挿入
テーブルのエントリーがMRUに十分接近してセットされ
ると、サブキャッシュから放逐されたページは、サブキ
ャッシュにおけるページよりもMRUにより近くに挿入さ
れることに留意されたい。
ワーキングセット測定 各キャッシュは、32ワーキングセットレイトカウン
タ、16ビット、の配列を有する。カウンタは、216−1
で凍結する。そのページがサブキャッシュ記憶される
と、その現在のLRU位置に対応するバケットはインクリ
メントされる。バケットを周期的に読み取りクリヤする
ことによって、ソフトウェアはワーキングセットの概略
のサイズを決定し得る。ソフトウェアは、各スケジュー
ル可能なエンティティに対してワーキングセットを維持
することを企画し得、あるいは1つのキャッシュ上に1
組のエンティティを丁度実行させ、集合体ワーキングセ
ットを維持することができる。後者は、スケジュール時
間の点でより低コストをもたらす。
サブキャッシュ記憶されたページは、ワーキングセッ
ト測定を複雑化する。あるページのLRU値は、ある他の
ページがキャッシュに移動する時間を変更しえる。しか
しながら、LRU値は、あるページがサブキャッシュ記憶
されるか否かを考慮しない。代わりに、LRUを使用する
すべてのハードウエア機構は、すべてのサブキャッシュ
記憶されたページを1つのLRUレベルとして、またすべ
てのサブキャッシュ記憶されないページを種々の他のLR
Uレベルとして考える。
LRU挿入テーブル LRU挿入テーブルは、LRU→MRUシーケンスの4つの論
理点からのセット内の32の実際のスロットにマップす
る。4スロットは、次のように命名される。すなわち、 1.WSハイ−−従来通りMRUに、またはそれに近くにセッ
ト。
2.WSロー−−キャッシュのワーキングセットにおける低
位点。ソフトウェアが低優先データをキャッシュ中に先
取りするとき、該データは普通この点に挿入される。こ
れにより、ソフトウェアは、WSハイにて挿入するとき起
こるようにより重要なデータを排出することなく、過先
取りを可能にする。先取り作戦の記述を参照。
3.BSハイ−ワーキングセットおよびバッキングストア間
の境界。ソフトウェアがページをキャッシュ内のバッキ
ングストアに移動させるとき、それをここに挿入する。
4.BSロー−−低優先バッキングストアアイテムに対する
挿入点。
ディスクリプタ割当動作 セット内の新ディスクリプタが必要とされるとき、キ
ャッシュは使用可能なディスクリプタを見つけるために
必要とされる下記の動作の多くのものを経て動作を進め
る。
1.無効ディスクリプタの捜索。1つが存在すれば、それ
を使用。
2.コピーを省略。ct1$形態cdeが1であれば、キャッシ
ュはLRUから捜索し、リードオンリーサブページのみを
有するページを捜索。保持されず(ディスクリプタ・ヘ
ルド0)、サブキャッシュ記憶されないものを見出せ
ば、それを無効化して、それを使用。操作は、BSハイで
停止。
3.再結合する機会を捜索。もしct1$形態areが1であれ
ば、キャッシュはLRUから走査し、少なくとも1つの所
有されたページを有し、ゼロのディスクリプタ・ヘルド
を有し、キャッシュ所有者制限のディスクリプタ・所有
者制限を有し、そしてサブキャッシュ記憶されないペー
ジを捜索する。操作はBSハイで停止。操作で1つを見出
せば、キャッシュは、所有されるそのサブページの各々
に対して適当なものとして書込み再結合排他的または書
込み再結合非排他的メッセージを送出。もしも、すべて
のサブページが成功裡に終了すれば、ディスクリプタ
は、無効化されて使用される。ソフトウェアは、MRUに
対して再結合ハイ制限をセットすることによりこの将来
を不能化できる。
4.純粋ページ省略。もしもct1$ade形態が1であれば、
キャッシュはLRUから捜索し、次のようなページを捜索
する。すなわち、 無変更 排他的に所有されたサブページまたはリード オンリーサブページのみを有する アトミック変更されない 保持されない サブキャッシュ記憶されない 5.純粋なページ(サブキャッシュされる)を捜索し、省
略。
6.もしも上述の方法によりディスクリプタを除去できな
ければ、利用可能なディスクリプタなし例外信号を送
出。
バックグラウンド再結合 キャッシュは、その他の場合は、ページ再結合のため
空時間を使用する。最結合ハイ制限が31でなければ、バ
ックグラウンドタスクで、セットを走査し、各セット内
の、再結合され得るページを捜索し、それを再結合す
る。
割当再結合および自動再結合は、一般に、ページがワ
ーキングセットを離れるときそれを最結合する。バッキ
ングストアには若干の再結合可能なページがある。ある
時点においてキャッシュに再結合可能なページがなけれ
ば、新しい再結合可能なページがワーキングセットから
除去されたページの形式で現われる。バックグラウンお
よび割当再結合が、この速度に遅れなければ、バッキン
グストア内の再結合可能なページ源のみが、他のキャッ
シュによる参照の対象となる。参照しているキャッシュ
のディスクリプタは、恐らくそのワーキングセットに存
在しているであろうから、ページをそれらのディスクリ
プタに結合するのが適当である。
ソフトウェアLRU挿入偏倚 ソフトウェアは、命令内のLRU挿入を偏倚し得る。以
下に記載される制御命令のあるものは、LRU挿入インデ
ックスフィールドを含む。これらの命令の1つが、ある
ページにに対する第1のサブページをサブキャッシュ中
に移動させると、命令内のLRU捜入インデックスは、そ
のページに対してディスクリプタ・LRU挿入インデック
スを置き代える。そのとき、ペーは、サブキャッシュを
離れるとき、LRU挿入テーブルに特定されるエントリに
従って、LRUに挿入される。変更命令および種々の先取
り命令(以下に説明される)によって、プログラマは、
LRU挿入インデックスを特定することが可能となる。キ
ャッシュが、有効サブページをもたないページのサブキ
ャッシュに対してこれらの命令の1つを実行すると、特
定されたLRU挿入インデックスは、ディスクリプタ・LRU
挿入インデックスとなる。
制御命令に特定されるLRU挿入インデックスは、ディ
スクリプタに先に記載されていたインデックスを置き代
える。インデックスは、一度キャッシュにセットされる
と、キャッシュがリセットされるまで、あるいはすべて
のサブページが無効となる迄そのキャッシュに残存す
る。実際には、メモリシステムは、LRU偏倚情報に対し
て制限されたメモリを有する。1つのプログラムが、あ
るページが再度参照されそうであることを指示し、そし
てすぐ後に、他のプログラムが、それが再度参照されそ
うにないことを指示すると、第2の指示が持続する。ソ
フトウェアは、異なる省略の挙動ないし作用を設定しえ
る。例えば、システムソフトウェアはBSハイ以下のペー
ジに対して、ディスクリプタ・LRU挿入インデックスをW
Sハイに変化させるようなバックグラウンドタスクを含
むかもしれない。これは、次のような方策を実行するで
あろう。すなわち、あるページが古くなってバッキング
ストアに入れられると、LRU挿入インデックス情報は古
くなり過ぎて価値がなくなり、普通の省略が代わりに適
用されるべきである。
先取りは、LRU挿入偏倚の使用に注意を要する。必要
とするかもしれないデータを先取りするためには、ソフ
トウェアが過先取りできることが望ましい。LRUからよ
り高次の優先情報を駆動するのを避けるために、過先取
りされるページは、WSハイ以外のLRU挿入インデックス
とともに取り出されるべきである。
第9図は、本発明の好ましい実施態様に従って構成さ
れた例示の領域ルート指定ユニット28Fを図示するもの
である。ユニット28Fは、キャッシュバス76を介して相
互に接続される領域ディレクトリ部80および遠隔ファイ
バインターフェース部82を備える。ディレクトリ部80
は、例示されるように、メモリストア86Aおよび86Bに結
合された二重ルート指定制御ユニット84Aおよび84Bを備
える。ストアは、例示されるルート指定ユニット28Fが
取り付けられる上位レベル領域セグメントから下る領域
セグメントに維持されるデータを識別するディスクリプ
タのリストを記憶するように配置された8バイトダイナ
ミックランダムアクセスメモリ要素を備える。ルート指
定制御ユニット84Aおよび84Bは、上述のキャッシュ制御
ユニット74A、74B、74Cおよび74Dと同様に構成され、動
作する。ユニットはさらに、ストア86Aおよび86B内にお
けるディスクリプタの記憶およびアクセスを制御するた
めのハッシュコード化論理装置を備える。このコード化
論理装置ならびにディスクリプタ記憶およびアクセス機
構は、技術上従来形式である。
遠隔ファイバインターフェース部82は、第9図に例示
されるように、ファイバ受信機およびデコード部90およ
びファイバコード化および伝送部92と結合された遠隔イ
ンターフェースユニット88を備える。受信機90は、入り
光ファイバ線94をインターフェース接続し、送信機92は
出線96をインターフェース接続する。ユニット88は、情
報信号伝送に緩衝作用を及ぼすことに加えて、光ファイ
バリンクに対してCRCコード化およびデコードを行な
う。受信機90および送信機92は、技術上従来の技術にし
たがって構成される。
例示される領域ルート指定28Fが、特に遠隔領域セグ
メント(例えば、第1図のセグメント12Fおよび14B参
照)をインターフェース接続するように形成されると
き、直接相互接続ユニット(すなわち、非遠隔セグメン
ト例えば第1図のセグメント14Aおよび12A間に相互接続
を提供する領域ルート指定ユニット)は、同様に構成さ
れることが認められよう。この種のユニットにおいて
は、遠隔ファイバインターフェース部82は、局部的イン
ターフェース部により置き代えられ、これが、それぞれ
の領域セグメントバス間の伝送に対して緩衝作用を提供
する。
要約 以上の説明から、上述の目的が、その実施例について
説明した本発明によって達成されることが認められよう
が、本発明は、階層リングに配列された複数の処理セル
を備えるディジタルデータ処理システムであって、メモ
リを選択的に割り当て、セルにより発生されるアクセス
要求に応答して排他的データコピーをセルからセルへ移
動し、そしてルート指定要素を採用して、データアクセ
ス要求(更新および転送)、をリング上に選択的に送り
出すディジタルデータ処理システムを提供するものであ
ることが理解されよう。本発明に従って構成される多重
処理システムは、データのコヒーレンシを改善し、待ち
時間およびバスの競合を減じ、加えて規模の制限をなく
すことをその特徴とするものである。
図示説明された実施例は、単に例示であり、当技術に
精通したものであれば、本発明の技術思想から逸脱する
ことなく、例示の構造およびシーケンスに変更をなすこ
とができることが認められよう。例えば、例示の中央処
理ユニットに対しては、アクセス要求を発生できる専用
の処理ユニットにおき代えることができ、また遠隔セル
および領域は、光ファイバ以外の媒体によって結合する
ことができるなどである。
【図面の簡単な説明】
第1図は本発明にしたがって構成された好まし多重処理
システムの構造を示す線図、第2Aおよび第2B図は本発明
の好ましい実施例であるディジタルデータ処理システム
における処理セルの好ましい形態を示す線図で、それぞ
れメモリ要素内で行なわれるデータの移動の例示を含む
もの、第3図は本発明の好ましい実施例であるディジタ
ルデータ処理システムにおける領域(0)内の処理セル
の好まし相互接続構造を例示するブロック図、第4図は
本発明の実施例であるディジタルデータ処理システムに
おける処理セルの1例の構造を示すブロック図、第5図
は本発明の実施例であるディジタルデータ処理システム
におけるシステムの仮想アドレス、ディスクリプタおよ
びキャッシュディレクトリ間の好ましい相互関係をを示
す線図、第6Aおよび第6B図は本発明の実施例であるディ
ジタルデータ処理システムにおける局部的キャッシュに
記憶されるデータに関係づけられるプロセッサアクセス
要求の処理を描く状態テーブルを示す図、第7A、第7B、
第7Cおよび7D図は本発明の好ましい実施例であるディジ
タルデータ処理システムにおけるキャッシュに記憶され
るデータに関係づけられるメモリ管理データ要求の処理
を描く状態テーブルを示す図、第8図は本発明の好まし
い実施例であるディジタルデータシステムに利用される
LRU挿入テーブルおよびLRUセット間の好ましい相互関係
を示す線図、第9図は本発明の実施例であるディジタル
データ処理システムに対する、遠隔インンーフェースユ
ニットを含む好ましい領域ルート指定セルの構造を示す
線図である。 10:多重処理システム 12A〜12F:セグメント 14A,14B:セグメント 16:セグメント 18A〜18R:処理セル 20A〜20F:バス要素 22A〜22R:セルインターフェースユニット 24A,24B:バス要素 26:バス要素 28A〜28F:ルート指定要素 30A,30B:ルート指定要素 32A,32B,34A,34B,36A,36B,38A,38B:セルインターフェー
スユニット 40A〜40C:中央処理ユニット 42A〜42C:メモリ要素 44A〜44C:バス 48A〜48C:バス 50A〜50C:アクセス要求要素 52A〜52C:制御要素 54A〜54C:データ記憶域 56A〜56C:ディレクトリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リンダ・キュー・リー 米国マサチューセッツ州ケンブリッジ、 ハーバード・ストリート 315 (72)発明者 ネイザン・グッドマン 米国マサチューセッツ州ブルックライ ン、ケナード・ロード 32 (72)発明者 ベンソン・アイ・マーギュリス 米国マサチューセッツ州アーリントン、 パイン・ストリート 30 (72)発明者 フレデリック・ディー・ウェーバー 米国マサチューセッツ州ケンブリッジ、 ハールバット・ストリート 28 (56)参考文献 欧州公開14928(EP,A1) 12th ISCA’85 P276−283 Harold S.Stone 著, 斉藤忠夫 発田弘 監訳「高性能コンピ ュータ アーキテクチャ」P31−P75 (58)調査した分野(Int.Cl.6,DB名) G06F 15/163

Claims (37)

    (57)【特許請求の範囲】
  1. 【請求項1】当該メモリ要素の少なくとも一つの各々が
    関連する中央処理(プロセッサ)ユニットに結合され
    た、情報表示信号を記憶するための複数のメモリ要素で
    あって、前記各中央処理ユニットとそのそれぞれの関連
    するメモリ要素とが処理セルの少なくとも一部を構成し
    ているものと、前記の複数のメモリ要素に結合され、該
    複数のメモリ要素に記憶される前記情報表示信号の1お
    よび複数のものにアクセスするためのメモリ管理手段と
    を備え、前記中央処理ユニットの少なくとも一つ(以下
    要求中の中央処理ユニットまたは1つと記す)が、情報
    表示信号に対するアクセス要求を表わすアクセス要求信
    号を発生するためのアクセス要求手段を備え、該アクセ
    ス要求手段が、情報表示信号に対する優先アクセスの要
    求を表わす所有要求信号を発生するための手段を備え、
    少なくとも要求中の中央処理ユニットと関連するメモリ
    要求が、前記アクセス要求信号を前記メモリ管理手段に
    選択的に伝送するための制御手段を備え、前記メモリ管
    理手段が、選択された形式の前記所有要求信号に応答し
    て、要求中の中央処理ユニットと関連するメモリ要素内
    に、要求される情報表示信号に対する記憶スペースを割
    り当て、この信号を該記憶スペースに記憶するための手
    段を備えることを特徴とするディジタルデータ処理装
    置。
  2. 【請求項2】前記メモリ管理手段が、前記所有要求信号
    の選択されたものに応答して、要求される情報表示信号
    の記憶のため、要求中の中央処理ユニットと関連するも
    の以外のメモリに維持される物理的記憶スペースの割当
    を解除するための手段を備え、前記割当の解除が、要求
    中の中央処理ユニットと関連するメモリ要素における要
    求される情報表示信号に対する物理的記憶スペースの割
    当とほぼ同時的に行なわれる特許請求の範囲第1項記載
    の処理装置。
  3. 【請求項3】少なくとも1つの前記メモリ要素が、その
    メモリ要素に記憶される少なくとも選択された情報表示
    信号を単一的に識別するSA(システムアドレス)信号を
    記憶するための関連するディレクトリ手段を備える特許
    請求の範囲第2項記載の処理装置。
  4. 【請求項4】前記アクセス要求手段が、前記アクセス要
    求信号とともに、要求される情報表示信号を識別するSA
    要求信号を発生するための手段を備え、前記メモリ管理
    手段が、前記ディレクトリ手段と結合されて、SA要求信
    号をそのディレクトリ手段に記憶される1または複数の
    SAアドレス信号と比較し、要求される情報表示信号がそ
    のディレクトリ手段と関連するメモリ要素に記憶されて
    いるか否かを決定する特許請求の範囲第3項記載の処理
    装置。
  5. 【請求項5】前記各ディレクトリ手段が、SA(システム
    アドレス)信号を記憶するための1または複数のアドレ
    ス記憶位置を含み、前記メモリ管理手段が、前記アドレ
    ス記憶位置の1つに、関連するメモリ要素内に物理的記
    憶スペースが割り当てられている情報表示信号と関連す
    るSA信号を記憶するための手段を備え、前記メモリ管理
    手段が、関連するメモリ要素内において物理的記憶スペ
    ースの割当が解除されている情報表示信号に対応するSA
    信号を無効化する手段を備えている特許請求の範囲第3
    項記載の処理装置。
  6. 【請求項6】前記アクセス要求手段が、情報表示信号に
    対する二次的アクセスの要求を表わすリードオンリー要
    求信号を発生するための手段を備え、前記メモリ管理手
    段が、前記中央処理ユニットの要求中の1つにより発生
    されるリードオンリー信号に選択的に応答して、当該情
    報表示信号のコピーを要求中の中央処理ユニットと関連
    するメモリ要素に転送する手段を備え、前記リードオン
    リー信号が、前記の他の中央処理ユニットの他の1つと
    関連するメモリ要素に記憶される情報表示信号に対する
    二次的アクセスの要求を表わすものである特許請求の範
    囲第1項記載の処理装置。
  7. 【請求項7】前記中央処理ユニットが、情報表示信号の
    変更を表わす更新信号を選択的に発生するための手段を
    備え、前記メモリ管理手段が、前記中央処理ユニットの
    更新中の1つにより発生される更新信号に応答して、そ
    の中央処理ユニットと関連するメモリ要素に記憶される
    対応する情報表示信号を変更するための手段を備える特
    許請求の範囲第1項記載の処理装置。
  8. 【請求項8】前記の更新中の中央処理ユニットにより発
    生される更新信号に応答して、当該対応する情報表示信
    号を変更するための手段を備え、前記更新信号が、前記
    中央処理ユニットの他の1つと関連するメモリ要素に記
    憶される対応する情報表示信号の変更を表わすものであ
    る特許請求の範囲第7項記載の処理装置。
  9. 【請求項9】前記アクセス要求手段が、1または複数の
    情報表示信号に対する排他的優先アクセスの要求を表わ
    すアトミック要求信号を発生するためのアトミック所有
    手段を備え、前記メモリコヒーレンス手段が、前記中央
    処理ユニットの第1のユニットにより発生されるアトミ
    ック要求信号に選択的に応答して、 (a)第1中央処理ユニットと関連するメモリ要素に、
    前記の1または複数の要求されている情報表示信号に対
    する物理的記憶スペースを排他的に割り当て、そこにそ
    れらの情報表示信号を記憶し、かつ (b)前記中央処理ユニットの第2のユニットにより発
    生される第1の選択された形式のアクセス要求信号に応
    答してそれらの情報表示信号のいずれへのアクセスをも
    阻止する手段を備える特許請求の範囲第1項記載の処理
    装置。
  10. 【請求項10】前記メモリコヒーレンス手段が、前記第
    2中央処理ユニットにより発生される第2の選択された
    形式のアクセス要求に応答して、要求される情報表示信
    号を、その中央処理ユニットと関連するメモリ要求に排
    他的に転送し、かつ第1またはいずれかの他の中央処理
    ユニットにより発生されるそれらの情報要求信号のいず
    れに対するアクセスをも阻止する手段を備える特許請求
    の範囲第9項記載の処理装置。
  11. 【請求項11】前記アクセス要求手段が、前記の1また
    は複数の情報表示信号に対する前記の優先アクセス要求
    の終了を表わす解放信号を発生するためのアトミックト
    ランザクション終了手段を、前記コヒーレンス手段が、
    前記トランザクション終了信号に応答して、前記中央処
    理ユニットのいずれかにより発生されるアクセス要求信
    号に応答してそれらの情報表示信号に対する選択的アク
    セスを再度可能にするための手段を備える特許請求の範
    囲第9項記載の処理装置。
  12. 【請求項12】当該メモリ要素の少なくとも一つが関連
    する中央処理(プロセッサ)ユニットに結合された、情
    報表示信号を記憶するための複数のメモリ要素を有し、
    前記各中央処理ユニットとその関連するメモリ要素とが
    処理セルの少なくとも一部を構成している形式のディジ
    タルデータ処理装置において、前記複数のメモリ要素に
    結合され、そこに記憶されるそれぞれの情報表示信号に
    アクセスするためのメモリ管理手段と、前記複数のメモ
    リ要素と結合されて、下記の1群のアクセス状態から選
    択される1つのアクセス状態をそこに記憶される情報表
    示信号と関連づける状態限定手段とを備え、前記1群の
    アクセス状態が、 (a)他のメモリ要素に転送のためアクセス可能なその
    情報表示信号に対する記憶スペースが割り当てられ、そ
    の情報表示信号が記憶されるメモリ要素と関連する中央
    処理ユニットにより変更可能な情報表示信号と関連し得
    る所有者アクセス状態、 (b)いずれか他のメモリ要素に転送のためアクセスで
    きないその情報表示信号に対する記憶スペースが割り当
    てられ、その情報表示信号が記憶されるメモリ要素と関
    連する中央処理ユニットにより変更可能な情報表示信号
    と関連し得るアトミック所有者アクセス状態、 の1または複数を含むことを特徴とするディジタルデー
    タ処理装置。
  13. 【請求項13】前記状態限定手段が、追加の1群のアク
    セス状態から選択されるアクセス状態を前記複数のメモ
    リ要素に記憶される前記情報表示信号と関連づけるため
    の手段を備え、前記追加の1群のアクセス状態が、 (a)無効アクセス状態、 (b)前記中央処理ユニットの他のユニットと関連する
    メモリ要素に記憶され、その他の中央処理ユニットによ
    り変更可能なその情報表示信号が記憶されるメモリ要素
    と関連する中央処理ユニットによりリードオンリーアク
    セスを受ける情報表示信号のコピーと関連し得るリード
    オンリーアクセス状態、および (c)そのコピーが前記他の中央処理ユニットと関連す
    るメモリ要素に記憶されるその情報表示信号が記憶され
    るメモリ要素と関連する中央処理ユニットにより変更可
    能な情報表示信号と関連し得る非排他的所有者アクセス
    状態 の1または複数含む特許請求の範囲第12項記載のディジ
    タルデータ処理装置。
  14. 【請求項14】前記状態限定手段が、次のいずれか1
    つ、 すなわち、 (a)前記アトミック所有者アクセス状態、および (b)前記排他的所有者アクセス状態 のいずれか1つを前記複数のメモリ要素に記憶される情
    報表示信号と選択的かつ排他的に関連づけるための手段
    と、前記非排他的所有者アクセス状態を、前記複数のメ
    モリ要素に記憶される情報表示信号のnのコピーの1つ
    と選択的かつ排他的に関連づけるための手段を備える特
    許請求の範囲第13項記載の処理装置。
  15. 【請求項15】前記状態限定手段が、次のいずれか1
    つ、 すなわち、 (a)前記リードオンリーアクセス状態、および (b)前記無効アクセス状態 のいずれか1つを前記複数のメモリ要素に記憶される情
    報表示信号の(n−1)のコピーと選択的かつ排他的に
    関連づけるための手段を備える特許請求の範囲第13項記
    載の処理装置。
  16. 【請求項16】前記メモリ管理手段が、前記アトミック
    アクセス状態と、第1の中央処理ユニットと関連するメ
    モリ要素に記憶される情報表示信号との関連づけに応答
    して、いずれか他の前記中央処理ユニットにより発生さ
    れる第1の選択された形式のアクセス要求信号に応じて
    その情報表示信号に対するアクセスを阻止する特許請求
    の範囲第12項記載の処理装置。
  17. 【請求項17】前記メモリ管理手段が、第2中央処理ユ
    ニットにより発生される第2の選択された形式のアクセ
    ス要求信号に応答し、かつアトミック所有者アクセス状
    態と関連する1または複数の情報表示信号に関係づけら
    れて、前記第2中央処理ユニットと関連するメモリ要素
    へそれらの要求された信号を転送するための手段を備
    え、前記状態限定手段が、アトミック所有者状態を、そ
    れらの転送された信号と関連づけ、第2中央処理ユニッ
    トと関連するメモリ要素に、前記1および複数の要求さ
    れる情報表示信号に対する物理的記憶スペースを割り当
    てるための手段を備える特許請求の範囲第16項記載の処
    理装置。
  18. 【請求項18】前記状態限定手段が、要求中の中央処理
    ユニットにより発生されるアクセス要求信号に応答し、
    かつ所有中の中央処理ユニットと関連するメモリ要素に
    記憶されかつ前記アトミックアクセス状態と関連される
    情報表示信号に関係づけられて、過渡的アトミック状態
    をその情報表示信号と関連づける手段を備え、前記の所
    有中の中央処理ユニットが、前記の要求される情報表示
    信号の、前記アトミックアクセス状態からの解放を表わ
    す解放信号を発生するための手段を備え、前記の所有中
    の中央処理ユニットにより発生される解放信号に応答
    し、かつ前記の要求される情報表示信号に関係づけられ
    て、その情報表示信号のコピーを要求中の中央処理ユニ
    ットと関連するメモリ要素へ伝送するための手段を備え
    る特許請求の範囲第12項記載の処理装置。
  19. 【請求項19】前記中央処理ユニットの少なくとも1つ
    (以下要求中の中央処理ユニットまたは1つと記す)
    が、前記状態限定手段に結合されて、情報表示信号に対
    するアクセス要求を表わすアクセス要求信号を発生する
    ためのアクセス要求手段を備え、該アクセス要求手段
    が、情報表示信号に対する排他的アクセスの要求を表わ
    す排他的アクセス要求信号を発生するための手段を備
    え、前記状態限定手段が、前記の要求中の中央処理ユニ
    ットにより発生される排他的アクセス要求信号に応答し
    て、当該情報表示信号を前記の要求中の中央処理ユニッ
    トに転送し、かつ中央処理ユニットのその、他のものと
    関連されるメモリ要素に記憶される情報表示信号のコピ
    ーを前記無効アクセス状態と関連づけるための手段を備
    えており、前記排他的アクセスが、前記中央処理ユニッ
    トの他の1つと関連されるメモリ要素に記憶されかつ前
    記リードオンリーアクセス状態と関連づけられる情報表
    示信号に対する排他的アクセスの要求を表わすものであ
    る、特許請求の範囲第12項記載の処理装置。
  20. 【請求項20】前記中央処理ユニットの少なくとも要求
    中の1つが、前記状態限定手段に結合されて、情報表示
    信号に対するアクセス要求を表わすアクセス要求信号を
    発生するためのアクセス要求手段を備え、該アクセス要
    求手段が、情報表示信号に対する非排他的アクセスの要
    求を表わす非排他的アクセス要求信号を発生するための
    手段を備え、前記状態限定手段が、前記要求中の中央処
    理ユニットにより発生される非排他的アクセス要求信号
    に応答して、当該情報表示信号を前記の要求中の中央処
    理ユニットに転送し、かつ中央処理ユニットのその、他
    のものと関連されるメモリ要素に記憶される情報表示信
    号を前記無効リードオンリーアクセス状態と関連づける
    ための手段を備えており、非排他的アクセスが、前記中
    央処理ユニットの他の1つと関連されるメモリ要素に記
    憶されかつ前記排他的アクセス状態および非排他的アク
    セス状態のいずれか1つと関連づけられる情報表示信号
    に対する非排他的アクセスの要求を表わすものである特
    許請求の範囲第13項記載の処理装置。
  21. 【請求項21】前記中央処理ユニットの要求中の1つと
    関連するアクセス要求手段が、情報表示信号に対する進
    行中のアトミック所有者アクセス要求を表わすストップ
    要求信号を発生するストップ要求手段を備え、前記メモ
    リ管理手段が、前記ストップ要求信号に応答して、要求
    中の中央処理ユニットと関連するメモリ要素に、要求さ
    れる情報表示信号の次に利用可能なコピーを排他的に記
    憶するための手段を備え、前記状態限定手段が、前記ス
    トップ要求信号に応答して、前記の要求中の中央処理ユ
    ニットと関連するメモリ要素に記憶される要求される情
    報表示信号の前記の次に利用可能なコピーに前記アトミ
    ック所有者アクセス状態を割り当てる手段を備える特許
    請求の範囲第12項記載の処理装置。
  22. 【請求項22】前記メモリ管理手段が、第1の中央処理
    ユニットにより発生される情報表示信号に対する優先ア
    クセスの要求に応答して、前記中央処理ユニットの他の
    ものにより発生される同じ情報表示信号に対する後続の
    アクセス要求に応答して、前記中央処理ユニットに伝送
    のため、前記第1中央処理ユニットによる前記の要求さ
    れる情報表示信号の現在の所有権を表わす過渡信号を発
    生するための手段を備える特許請求の範囲第12項記載の
    処理装置。
  23. 【請求項23】各々1または複数のセグメントを含む複
    数の情報転送領域(ドメイン)を備え、該複数の情報転
    送領域が、複数の領域(0)セグメントを有する第1の
    情報転送領域を備え、各セグメントが、関連する単一方
    向のバス要素と、情報表示信号を転送するためリング形
    態で該バス要素に接続された第1の複数の処理セルを備
    え、前記各セルが、中央処理ユニットと、関連する内容
    −アドレス可能な、情報表示信号を記憶するためのメモ
    リ手段を備え、該メモリ手段が、関連する中央処理ユニ
    ットおよび前記の情報表示信号を転送するためのバス要
    素と接続されるインターフェース手段を備え、関連する
    中央処理ユニット間の情報表示信号の転送がそれぞれの
    メモリ手段を介しての行なわれるように、セルが配置さ
    れており、領域(1)セグメントが、関連する単一方向
    バス要素および複数のルート指定要素を備えており、該
    各ルート指定要素が、領域(1)セグメントおよび関連
    する領域(0)セグメント間において情報表示信号を転
    送するため、領域(1)と関連するバス要素および前記
    領域(0)の1つと関連するバス要素に接続されてお
    り、前記各領域(0)セグメントと関連する処理セル
    が、前記領域(0)セグメントの残部と関連する処理セ
    ルと、領域(1)セグメントのみを介して情報表示信号
    の転送をなし得ることを特徴とするディジタルデータ処
    理システム。
  24. 【請求項24】各々情報転送領域(k)として指示され
    る(n)の情報転送領域を備え(ここで(n)は2また
    はそれより大きい整数、そして(k)は(0)および
    (n−1)間の逐次の整数を表わす)、各情報転送領域
    が複数の領域(0)セグメントを含み、各セグメント
    が、 (a)複数の処理セルを備えており、各処理セルが、情
    報表示信号の転送のため、情報表示信号を記憶するため
    の関連するメモリ手段と接続された中央処理ユニットを
    備え、かつ (b)領域(0)セグメント内において情報表示信号を
    転送するためのそれらの複数のメモリ手段に接続された
    バス要素を備え、各情報転送領域(k)が(ここに
    (k)は(1)および(n−1)間の逐次の整数を表わ
    す)、1または複数の対応する領域(k)セグメントを
    含み(ここに、情報領域(k)におけるセグメントの数
    は、(k)の各値に対して、領域(k−1)における整
    数の数以下である)、情報転送領域(n−1)が1つの
    かかるセグメントのみを含んでおり、各領域(k)セグ
    メントが、 (a)その領域(k)セグメント内において情報表示信
    号を転送するためのバス要素と、 (b)その領域(k)セグメントおよび領域行(k−
    1)間において情報表示信号を転送するための複数のル
    ート指定要素を備え、該各ルート指定要素が、情報表示
    信号の転送のため、それぞれの領域(k)セグメントバ
    ス要素およびそれぞれの領域(k−1)セグメントバス
    要素と接続されていることを特徴とするディジタルデー
    タ処理システム。
  25. 【請求項25】前記中央処理ユニットの少なくとも要求
    中の1つが、前記メモリ要素のいずれか1つに記憶され
    る情報表示信号に対するアクセス要求を表わすアクセス
    要求信号を発生するための手段を備え、要求中の中央処
    理ユニットと関連するメモリ要素が、そのメモリ要素に
    記憶されていない情報表示信号に関係づけられるアクセ
    ス要求信号に応答して、領域要求信号を発生かつその信
    号を関連する領域(0)バス要素に伝送するするための
    制御手段を有する特許請求の範囲第24項記載の処理シス
    テム。
  26. 【請求項26】1または複数の前記処理セルが、関連す
    る領域(0)バスに沿って転送されるアクセス要求信号
    を受信して、要求される情報表示信号を表わす信号を選
    択的に発生するための手段を備える特許請求の範囲第25
    項記載の処理システム。
  27. 【請求項27】各前記バス要素が、単一方向情報表示信
    号伝送路を備え、前記制御手段が、関連するバス要素に
    より限定される伝送路に沿って前記領域要求信号を駆動
    するための手段を備える特許請求の範囲第25項記載の処
    理システム。
  28. 【請求項28】前記領域ルート指定要素が、次のものの
    少なくとも1つ、すなわち、 (a)領域(k−1)セグメントと関連するバス要素に
    沿って転送される領域要求信号を受信し(ここに(k)
    は(1)および(n−1)間の整数である)、その信号
    のコピーを、対応する領域(k)セグメントと関連する
    バス要素に沿って選択的に転送するための手段と、 (b)領域(k)セグメントと関連するバス要素に沿っ
    て転送される領域要求信号を受信し(ここに(k)は
    (1)および(n−1)間の整数である)、その信号
    を、対応する領域(k−1)セグメントと関連するバス
    要素に沿って選択的に伝送するための手段の少なくとも
    1つを備える特許請求の範囲第25項記載の処理システ
    ム。
  29. 【請求項29】領域(k)セグメントと接続される領域
    ルート指定要素が(ここに(k)は(1)および(n−
    1)間の整数)、その領域(k)セグメントと関連する
    領域(j)セグメントの処理セル(ここに(j)は(k
    −1)および(0)間の整数)に含まれる複数のメモリ
    要素に記憶される情報表示信号に対応するSA(システム
    アドレス)信号を記憶するためのディレクトリ手段を備
    え、前記ルート指定要素が、前記ディレクトリ要素およ
    び前記アクセス要求手段と結合されていて、領域要求信
    号をSAアドレス信号と比較して、その領域要求信号のコ
    ピーが関連する領域(k)セグメントに伝送されるべき
    か否かを決定する手段を備える特許請求の範囲行第28項
    記載の処理システム。
  30. 【請求項30】当該メモリ要素の少なくとも一つが関連
    する中央処理(プロセッサ)ユニットに結合された、情
    報表示信号を記憶するための複数のメモリ要素であっ
    て、前記各中央処理ユニットとそのそれぞれの関連する
    メモリ要素とが処理セルの一部を構成しているものと、
    前記メモリ要素間において信号を転送するバス手段と、
    前記遠隔セルに結合されて、関連するメモリ要素および
    バス手段間において信号を転送するための遠隔インター
    フェース手段と、前記メモリ要素に結合され、そこに記
    憶される情報表示信号にアクセスするためのメモリ管理
    手段とを備え、前記各中央処理ユニットが、前記メモリ
    管理手段に前記アクセス要求信号を選択的に伝送するた
    めの制御手段を備え、前記メモリ管理手段が、前記所有
    要求信号の選択されたものに応答して、要求中の中央処
    理ユニットと関連するメモリ要素内に、前記の要求され
    る情報表示信号に対する記憶スペースを割り当て、かつ
    この割り当てられた記憶スペースに前記の要求される情
    報表示信号を記憶するための手段を備えることを特徴と
    するディジタルデータ処理装置。
  31. 【請求項31】前記割当て、記憶手段が、要求中の中央
    処理ユニットと関連するメモリ要素に、要求される情報
    表示信号を記憶するための物理的記憶スペースを割り当
    てるための手段と、該割り当てられた記憶スペースに要
    求された情報表示信号を記憶するための手段と、前記セ
    ルの他のものと関連するメモリ要素内の要求される情報
    表示信号と関連する物理的記憶スペースの割当てを解除
    する手段を備える特許請求の範囲第30項記載の処理装
    置。
  32. 【請求項32】前記遠隔セルが、前記バス手段から物理
    的に遠隔の点に存在し、前記インターフェース手段が、
    前記の物理的に遠隔の点と前記バス手段との間において
    前記情報表示信号を伝送するための手段を備える特許請
    求の範囲第31項記載の処理装置。
  33. 【請求項33】前記遠隔インターフェース手段が、前記
    遠隔セルおよび前記バス手段間において情報表示信号を
    搬送するための光ファイバ伝送媒体を備える特許請求の
    範囲第32項記載の処理装置。
  34. 【請求項34】関連するメモリ要素に結合される中央処
    理ユニットを各々有する複数の処理セルを備えるディジ
    タルデータ処理装置を操作する方法において、前記中央
    処理ユニットの要求中の1つ内において、情報表示信号
    に対する優先アクセスの要求を表わす所有権要求信号を
    発生し、要求される情報表示信号が、要求中の中央処理
    ユニットと関連するもの以外のメモリ要素に記憶されて
    いるか否かを決定し、そして要求される情報表示信号
    が、要求中の中央処理ユニットと関連するもの以外のメ
    モリ要素に記憶されていることの決定に応答して、要求
    中の中央処理ユニットと関連するメモリ要素にその要求
    される情報表示信号を排他的に記憶する諸段階を含むこ
    とを特徴とするディジタルデータ処理装置操作方法。
  35. 【請求項35】前記の応答する段階が、要求中の中央処
    理ユニットと関連するメモリ要素内に、要求される情報
    表示信号を記憶するための物理的記憶スペースを割り当
    て、この割り当てられた記憶スペース内に要求される情
    報表示信号を記憶し、そして要求された情報表示信号が
    転送されてしまったセルと関連するメモリ要素内におい
    て、要求された情報表示信号と関連する物理的記憶スペ
    ースの割当を解除する諸段階を含む特許請求の範囲第34
    項記載の操作方法。
  36. 【請求項36】複数の中央処理ユニット、および情報転
    送のための該中央処理ユニットの関連する1つと各々結
    合される複数のメモリ要素を備える形式のディジタルデ
    ータ処理装置を操作する方法において、アクセス状態
    を、前記複数のメモリ要素内に記憶される1または複数
    の情報表示信号と関連づけることを含み、該アクセス状
    態が、次の1または複数のアクセス状態を含むアクセス
    状態群から選択される、すなわち (a)無効情報表示信号と関連し得る無効アクセス状
    態、 (b)情報表示信号が記憶されるメモリ要素と関連する
    中央処理ユニットによりリードオンリーアクセスを受け
    る情報表示信号と関連し得るリードオンリーアクセス状
    態、 (c)そのコピーが他の1つの前記中央処理ユニットと
    関連するメモリ要素に記憶される情報表示信号が記憶さ
    れるメモリ要素と関連する中央処理ユニットにより変更
    可能な情報表示信号と関連し得る非排他的所有者アクセ
    ス状態、 (d)そのコピーが他の1つの前記中央処理ユニットと
    関連するメモリ要素に記憶されない情報表示信号が記憶
    されるメモリ要素と関連する中央処理ユニットにより変
    更し得る情報表示信号と関連し得、その情報表示信号ま
    たはそのコピーが他の1つの前記中央処理ユニットと関
    連するメモリ要素に転送のためアクセスし得る、排他的
    所有者アクセス状態、および、 (e)そのコピーが他の1つの前記中央処理ユニットと
    関連するメモリ要素に記憶されない情報表示信号が記憶
    されるメモリ要素と関連する中央処理ユニットにより変
    更し得る上報表示信号と関連し得、その情報表示信号ま
    たはそのコピーが他の前記処理ユニットと関連するメモ
    リ要素に転送のため選択的にアクセスし得るアトミック
    所有者アクセス状態 の1または複数のアクセス状態を含むアクセス状態群か
    ら選択されることを特徴とするディジタルデータ処理装
    置操作方法。
  37. 【請求項37】前記中央処理ユニットの要求中の1つ内
    に、情報表示信号に対する優先アクセスの要求を表わす
    排他的アクセス要求信号を発生し、前記の要求中の中央
    処理ユニットにより発生される排他的アクセス要求信号
    に応答して、前記の要求中の中央処理ユニットにその情
    報表示信号を排他的に転送し、当該他の中央処理ユニッ
    トと関連するメモリ要素内に記憶される当該情報表示信
    号を無効アクセス状態と関連づける諸段階を含み、前記
    の排他的アクセス要求信号が、前記中央処理ユニットの
    他の1つと関連するメモリ要素内に記憶されかつ前記ア
    トミック所有状態以外のアクセス状態と関連する情報表
    示信号に対する排他的アクセスの要求を表わすものであ
    る特許請求の範囲第36項記載のディジタルデータ処理装
    置操作方法。
JP63322254A 1987-12-22 1988-12-22 マルチプロセッサディジタルデータ処理システム Expired - Fee Related JP2780032B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/136,930 US5055999A (en) 1987-12-22 1987-12-22 Multiprocessor digital data processing system
US136930 1987-12-22

Publications (2)

Publication Number Publication Date
JPH01281555A JPH01281555A (ja) 1989-11-13
JP2780032B2 true JP2780032B2 (ja) 1998-07-23

Family

ID=22475061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63322254A Expired - Fee Related JP2780032B2 (ja) 1987-12-22 1988-12-22 マルチプロセッサディジタルデータ処理システム

Country Status (6)

Country Link
US (5) US5055999A (ja)
EP (6) EP0322117B1 (ja)
JP (1) JP2780032B2 (ja)
AT (2) ATE198673T1 (ja)
CA (1) CA1333727C (ja)
DE (2) DE3856552T2 (ja)

Families Citing this family (208)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
US5251308A (en) * 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5282201A (en) * 1987-12-22 1994-01-25 Kendall Square Research Corporation Dynamic packet routing network
US5335325A (en) * 1987-12-22 1994-08-02 Kendall Square Research Corporation High-speed packet switching apparatus and method
US5761413A (en) * 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
US5226039A (en) * 1987-12-22 1993-07-06 Kendall Square Research Corporation Packet routing switch
DE68924992T2 (de) * 1988-02-23 1996-07-25 Digital Equipment Corp Symmetrische Steuerungsanordnung für Multiverarbeitung.
US5136717A (en) * 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5371874A (en) * 1989-01-27 1994-12-06 Digital Equipment Corporation Write-read/write-pass memory subsystem cycle
JPH0833958B2 (ja) * 1989-05-30 1996-03-29 沖電気工業株式会社 顧客情報処理システム
CA2019300C (en) 1989-06-22 2001-06-12 Kendall Square Research Corporation Multiprocessor system with shared memory
JPH0362257A (ja) * 1989-07-31 1991-03-18 Toshiba Corp ネットワークモニタリングシステム
US5230070A (en) * 1989-09-08 1993-07-20 International Business Machines Corporation Access authorization table for multi-processor caches
US5265227A (en) * 1989-11-14 1993-11-23 Intel Corporation Parallel protection checking in an address translation look-aside buffer
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
DE69022716T2 (de) * 1990-03-19 1996-03-14 Bull Hn Information Syst Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür.
US5410691A (en) * 1990-05-07 1995-04-25 Next Computer, Inc. Method and apparatus for providing a network configuration database
DE69133189T2 (de) * 1990-05-18 2003-10-09 Sun Microsystems Inc Dynamischer hierarchischer Leitwegverzeichnisorganisationsassoziativspeicher
DE69127773T2 (de) * 1990-06-15 1998-04-02 Compaq Computer Corp Vorrichtung zur echten LRU-Ersetzung
JPH0476681A (ja) * 1990-07-13 1992-03-11 Mitsubishi Electric Corp マイクロコンピュータ
US5261069A (en) * 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
US5530941A (en) * 1990-08-06 1996-06-25 Ncr Corporation System and method for prefetching data from a main computer memory into a cache memory
EP0470735B1 (en) * 1990-08-06 1999-03-10 NCR International, Inc. Computer memory system
US5339397A (en) * 1990-10-12 1994-08-16 International Business Machines Corporation Hardware primary directory lock
US5829030A (en) * 1990-11-05 1998-10-27 Mitsubishi Denki Kabushiki Kaisha System for performing cache flush transactions from interconnected processor modules to paired memory modules
US5245563A (en) * 1991-09-20 1993-09-14 Kendall Square Research Corporation Fast control for round unit
CA2078310A1 (en) * 1991-09-20 1993-03-21 Mark A. Kaufman Digital processor with distributed memory system
CA2078315A1 (en) * 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
JP3182806B2 (ja) * 1991-09-20 2001-07-03 株式会社日立製作所 バージョンアップ方法
US5313647A (en) * 1991-09-20 1994-05-17 Kendall Square Research Corporation Digital data processor with improved checkpointing and forking
CA2078312A1 (en) * 1991-09-20 1993-03-21 Mark A. Kaufman Digital data processor with improved paging
CA2078311A1 (en) * 1991-09-23 1993-03-24 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
EP0543032A1 (en) * 1991-11-16 1993-05-26 International Business Machines Corporation Expanded memory addressing scheme
US5432917A (en) * 1992-04-22 1995-07-11 International Business Machines Corporation Tabulation of multi-bit vector history
US5493663A (en) * 1992-04-22 1996-02-20 International Business Machines Corporation Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses
US5428803A (en) * 1992-07-10 1995-06-27 Cray Research, Inc. Method and apparatus for a unified parallel processing architecture
US5361385A (en) * 1992-08-26 1994-11-01 Reuven Bakalash Parallel computing system for volumetric modeling, data processing and visualization
US5418966A (en) * 1992-10-16 1995-05-23 International Business Machines Corporation Updating replicated objects in a plurality of memory partitions
GB2272545A (en) * 1992-11-13 1994-05-18 White Cross Syst Ltd A database network.
JPH06314110A (ja) * 1993-04-28 1994-11-08 Fanuc Ltd 数値制御機能を実行するコンピュータシステム部分と他のコンピュータシステムとの結合方式
US5535116A (en) * 1993-05-18 1996-07-09 Stanford University Flat cache-only multi-processor architectures
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US5406504A (en) * 1993-06-30 1995-04-11 Digital Equipment Multiprocessor cache examiner and coherency checker
FR2707776B1 (fr) 1993-07-15 1995-08-18 Bull Sa Procédé de gestion de mémoires d'un système informatique, système informatique mémoire et support d'enregistrement mettant en Óoeuvre le procédé.
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
US5745778A (en) * 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US5464435A (en) * 1994-02-03 1995-11-07 Medtronic, Inc. Parallel processors in implantable medical device
WO1995025306A2 (en) * 1994-03-14 1995-09-21 Stanford University Distributed shared-cache for multi-processors
US5577226A (en) * 1994-05-06 1996-11-19 Eec Systems, Inc. Method and system for coherently caching I/O devices across a network
US5606688A (en) * 1994-08-31 1997-02-25 International Business Machines Corporation Method and apparatus for dynamic cache memory allocation via single-reference residency times
US5592618A (en) * 1994-10-03 1997-01-07 International Business Machines Corporation Remote copy secondary data copy validation-audit function
US5644751A (en) * 1994-10-03 1997-07-01 International Business Machines Corporation Distributed file system (DFS) cache management based on file access characteristics
US5721917A (en) * 1995-01-30 1998-02-24 Hewlett-Packard Company System and method for determining a process's actual working set and relating same to high level data structures
US5680608A (en) * 1995-02-06 1997-10-21 International Business Machines Corporation Method and system for avoiding blocking in a data processing system having a sort-merge network
US5692149A (en) * 1995-03-16 1997-11-25 Samsung Electronics Co., Ltd. Block replacement method in cache only memory architecture multiprocessor
US5634110A (en) * 1995-05-05 1997-05-27 Silicon Graphics, Inc. Cache coherency using flexible directory bit vectors
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
EP0752644A3 (en) * 1995-07-07 2001-08-22 Sun Microsystems, Inc. Memory management unit incorporating prefetch control
EP0752645B1 (en) * 1995-07-07 2017-11-22 Oracle America, Inc. Tunable software control of Harvard architecture cache memories using prefetch instructions
US5778427A (en) * 1995-07-07 1998-07-07 Sun Microsystems, Inc. Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure
US6728959B1 (en) 1995-08-08 2004-04-27 Novell, Inc. Method and apparatus for strong affinity multiprocessor scheduling
US5727220A (en) * 1995-11-29 1998-03-10 International Business Machines Corporation Method and system for caching and referencing cached document pages utilizing a presentation data stream
US6374329B1 (en) * 1996-02-20 2002-04-16 Intergraph Corporation High-availability super server
JP3510042B2 (ja) 1996-04-26 2004-03-22 株式会社日立製作所 データベース管理方法及びシステム
US5940870A (en) * 1996-05-21 1999-08-17 Industrial Technology Research Institute Address translation for shared-memory multiprocessor clustering
US5933653A (en) * 1996-05-31 1999-08-03 Emc Corporation Method and apparatus for mirroring data in a remote data storage system
US6065052A (en) * 1996-07-01 2000-05-16 Sun Microsystems, Inc. System for maintaining strongly sequentially ordered packet flow in a ring network system with busy and failed nodes
US6064672A (en) * 1996-07-01 2000-05-16 Sun Microsystems, Inc. System for dynamic ordering support in a ringlet serial interconnect
US5864671A (en) * 1996-07-01 1999-01-26 Sun Microsystems, Inc. Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used
US5778243A (en) * 1996-07-03 1998-07-07 International Business Machines Corporation Multi-threaded cell for a memory
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US7136903B1 (en) 1996-11-22 2006-11-14 Mangosoft Intellectual Property, Inc. Internet-based shared file service with native PC client access and semantics and distributed access control
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US20060129627A1 (en) * 1996-11-22 2006-06-15 Mangosoft Corp. Internet-based shared file service with native PC client access and semantics and distributed version control
US6148377A (en) * 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US6647393B1 (en) 1996-11-22 2003-11-11 Mangosoft Corporation Dynamic directory service
KR100240572B1 (ko) * 1996-12-05 2000-01-15 윤종용 프로그램 메모리를 공유하는 멀티 프로세서 시스템
US5860116A (en) * 1996-12-11 1999-01-12 Ncr Corporation Memory page location control for multiple memory-multiple processor system
US5809528A (en) * 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
US6052778A (en) * 1997-01-13 2000-04-18 International Business Machines Corporation Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs
US5909553A (en) * 1997-02-19 1999-06-01 International Business Machines Corporation Systems and methods for controlling the transmission of relatively large data objects in a communications system
US5813042A (en) * 1997-02-19 1998-09-22 International Business Machines Corp. Methods and systems for control of memory
US5920703A (en) * 1997-02-19 1999-07-06 International Business Machines Corp. Systems and methods for managing the processing of relatively large data objects in a communications stack
US5983259A (en) * 1997-02-19 1999-11-09 International Business Machines Corp. Systems and methods for transmitting and receiving data in connection with a communications stack in a communications system
US6115705A (en) * 1997-05-19 2000-09-05 Microsoft Corporation Relational database system and method for query processing using early aggregation
US6115756A (en) 1997-06-27 2000-09-05 Sun Microsystems, Inc. Electro-optically connected multiprocessor and multiring configuration for dynamically allocating time
US5966729A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Snoop filter for use in multiprocessor computer systems
US6094709A (en) * 1997-07-01 2000-07-25 International Business Machines Corporation Cache coherence for lazy entry consistency in lockup-free caches
US6192398B1 (en) 1997-10-17 2001-02-20 International Business Machines Corporation Remote/shared browser cache
US6052760A (en) * 1997-11-05 2000-04-18 Unisys Corporation Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks
US6026475A (en) * 1997-11-26 2000-02-15 Digital Equipment Corporation Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6233661B1 (en) 1998-04-28 2001-05-15 Compaq Computer Corporation Computer system with memory controller that hides the next cycle during the current cycle
US6269433B1 (en) * 1998-04-29 2001-07-31 Compaq Computer Corporation Memory controller using queue look-ahead to reduce memory latency
US6202124B1 (en) * 1998-05-05 2001-03-13 International Business Machines Corporation Data storage system with outboard physical data transfer operation utilizing data path distinct from host
US6148300A (en) * 1998-06-19 2000-11-14 Sun Microsystems, Inc. Hybrid queue and backoff computer resource lock featuring different spin speeds corresponding to multiple-states
US6256753B1 (en) * 1998-06-30 2001-07-03 Sun Microsystems, Inc. Bus error handling in a computer system
US6542966B1 (en) * 1998-07-16 2003-04-01 Intel Corporation Method and apparatus for managing temporal and non-temporal data in a single cache structure
US6327644B1 (en) 1998-08-18 2001-12-04 International Business Machines Corporation Method and system for managing data in cache
US6381677B1 (en) 1998-08-19 2002-04-30 International Business Machines Corporation Method and system for staging data into cache
US6141731A (en) * 1998-08-19 2000-10-31 International Business Machines Corporation Method and system for managing data in cache using multiple data structures
US6343984B1 (en) 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
US6766424B1 (en) * 1999-02-09 2004-07-20 Hewlett-Packard Development Company, L.P. Computer architecture with dynamic sub-page placement
US6839739B2 (en) * 1999-02-09 2005-01-04 Hewlett-Packard Development Company, L.P. Computer architecture with caching of history counters for dynamic page placement
US6647468B1 (en) * 1999-02-26 2003-11-11 Hewlett-Packard Development Company, L.P. Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment
US6278959B1 (en) * 1999-03-19 2001-08-21 International Business Machines Corporation Method and system for monitoring the performance of a data processing system
US6408292B1 (en) * 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
US6385604B1 (en) * 1999-08-04 2002-05-07 Hyperroll, Israel Limited Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements
GB2353612B (en) * 1999-08-24 2003-11-12 Mitel Corp Processing by use of synchronised tuple spaces and assertions
EP1236092A4 (en) * 1999-09-01 2006-07-26 Intel Corp BRANCH COMMAND FOR A PROCESSOR
JP3661531B2 (ja) * 1999-11-24 2005-06-15 日本電気株式会社 マルチプロセッサシステム及びそのアドレス解決方法
US6771654B1 (en) * 2000-01-24 2004-08-03 Advanced Micro Devices, Inc. Apparatus and method for sharing memory using a single ring data bus connection configuration
US6457107B1 (en) * 2000-02-28 2002-09-24 International Business Machines Corporation Method and apparatus for reducing false sharing in a distributed computing environment
US20020029207A1 (en) * 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
US6973521B1 (en) * 2000-05-16 2005-12-06 Cisco Technology, Inc. Lock controller supporting blocking and non-blocking requests
US6704863B1 (en) * 2000-06-14 2004-03-09 Cypress Semiconductor Corp. Low-latency DMA handling in pipelined processors
US7640315B1 (en) 2000-08-04 2009-12-29 Advanced Micro Devices, Inc. Implementing locks in a distributed processing system
US6636879B1 (en) 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6728922B1 (en) 2000-08-18 2004-04-27 Network Appliance, Inc. Dynamic data space
US7178137B1 (en) 2001-04-05 2007-02-13 Network Appliance, Inc. Automatic verification of scheduling domain consistency
US7694302B1 (en) 2001-04-05 2010-04-06 Network Appliance, Inc. Symmetric multiprocessor synchronization using migrating scheduling domains
US6795907B2 (en) * 2001-06-28 2004-09-21 Hewlett-Packard Development Company, L.P. Relocation table for use in memory management
US20030005252A1 (en) * 2001-06-28 2003-01-02 Wilson Kenneth M. Managing latencies in accessing memory of computer systems
US6944736B2 (en) * 2001-06-28 2005-09-13 Hewlett-Packard Development Company, L.P. Managing latencies in accessing memory of computer systems
US6959358B2 (en) * 2001-07-06 2005-10-25 Micron Technology, Inc. Distributed content addressable memory
US6877108B2 (en) * 2001-09-25 2005-04-05 Sun Microsystems, Inc. Method and apparatus for providing error isolation in a multi-domain computer system
JP4130076B2 (ja) * 2001-12-21 2008-08-06 富士通株式会社 データベース管理プログラムおよび記録媒体
US7516236B2 (en) * 2001-12-21 2009-04-07 Nokia Corporation Method to improve perceived access speed to data network content using a multicast channel and local cache
US7231463B2 (en) * 2002-01-04 2007-06-12 Intel Corporation Multi-level ring peer-to-peer network structure for peer and object discovery
US7020753B2 (en) * 2002-01-09 2006-03-28 Sun Microsystems, Inc. Inter-domain data transfer
EP1518186A2 (de) * 2002-03-21 2005-03-30 PACT XPP Technologies AG Verfahren und vorrichtung zur datenverarbeitung
US8055728B2 (en) * 2002-04-25 2011-11-08 International Business Machines Corporation Remote control of selected target client computers in enterprise computer networks through global master hubs
US7496494B2 (en) * 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US8108843B2 (en) * 2002-09-17 2012-01-31 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
US7953588B2 (en) * 2002-09-17 2011-05-31 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
US9043194B2 (en) * 2002-09-17 2015-05-26 International Business Machines Corporation Method and system for efficient emulation of multiprocessor memory consistency
US6851030B2 (en) * 2002-10-16 2005-02-01 International Business Machines Corporation System and method for dynamically allocating associative resources
US8185602B2 (en) * 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US6886089B2 (en) * 2002-11-15 2005-04-26 Silicon Labs Cp, Inc. Method and apparatus for accessing paged memory with indirect addressing
US6898689B2 (en) * 2002-11-15 2005-05-24 Silicon Labs Cp, Inc. Paging scheme for a microcontroller for extending available register space
US6981106B1 (en) * 2002-11-26 2005-12-27 Unisys Corporation System and method for accelerating ownership within a directory-based memory system
US7653912B2 (en) 2003-05-30 2010-01-26 Steven Frank Virtual processor methods and apparatus with unified event notification and consumer-producer memory operations
US7373640B1 (en) 2003-07-31 2008-05-13 Network Appliance, Inc. Technique for dynamically restricting thread concurrency without rewriting thread code
CA2438366A1 (en) * 2003-08-26 2005-02-26 Ibm Canada Limited - Ibm Canada Limitee System and method for starting a buffer pool
US7614056B1 (en) 2003-09-12 2009-11-03 Sun Microsystems, Inc. Processor specific dispatching in a heterogeneous configuration
US8515923B2 (en) * 2003-11-17 2013-08-20 Xerox Corporation Organizational usage document management system
US8171480B2 (en) * 2004-01-27 2012-05-01 Network Appliance, Inc. Method and apparatus for allocating shared resources to process domains according to current processor utilization in a shared resource processor
US7200718B2 (en) * 2004-04-26 2007-04-03 Broadband Royalty Corporation Cache memory for a scalable information distribution system
US7394288B1 (en) 2004-12-13 2008-07-01 Massachusetts Institute Of Technology Transferring data in a parallel processing environment
US20060282606A1 (en) * 2005-06-08 2006-12-14 Dell Products L.P. System and method for automatically optimizing available virtual memory
JP4346587B2 (ja) * 2005-07-27 2009-10-21 富士通株式会社 システムシミュレーション方法
US7865570B2 (en) * 2005-08-30 2011-01-04 Illinois Institute Of Technology Memory server
US7409504B2 (en) * 2005-10-06 2008-08-05 International Business Machines Corporation Chained cache coherency states for sequential non-homogeneous access to a cache line with outstanding data response
US7370155B2 (en) * 2005-10-06 2008-05-06 International Business Machines Corporation Chained cache coherency states for sequential homogeneous access to a cache line with outstanding data response
US8347293B2 (en) * 2005-10-20 2013-01-01 Network Appliance, Inc. Mutual exclusion domains to perform file system processes on stripes
US7587547B2 (en) * 2006-03-30 2009-09-08 Intel Corporation Dynamic update adaptive idle timer
US7911474B2 (en) * 2006-04-03 2011-03-22 Siemens Medical Solutions Usa, Inc. Memory management system and method for GPU-based volume rendering
US7882307B1 (en) 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
EP2033278B1 (en) * 2006-05-31 2019-04-10 Cree, Inc. Lighting device and method of lighting
US7853752B1 (en) 2006-09-29 2010-12-14 Tilera Corporation Caching in multicore and multiprocessor architectures
US9336387B2 (en) * 2007-07-30 2016-05-10 Stroz Friedberg, Inc. System, method, and computer program product for detecting access to a memory device
US20090106498A1 (en) * 2007-10-23 2009-04-23 Kevin Michael Lepak Coherent dram prefetcher
US7966453B2 (en) 2007-12-12 2011-06-21 International Business Machines Corporation Method and apparatus for active software disown of cache line's exlusive rights
US20090327535A1 (en) * 2008-06-30 2009-12-31 Liu Tz-Yi Adjustable read latency for memory device in page-mode access
EP2499576A2 (en) * 2009-11-13 2012-09-19 Richard S. Anderson Distributed symmetric multiprocessing computing architecture
US8627331B1 (en) 2010-04-30 2014-01-07 Netapp, Inc. Multi-level parallelism of process execution in a mutual exclusion domain of a processing system
US9075858B2 (en) * 2010-12-16 2015-07-07 Sybase, Inc. Non-disruptive data movement and node rebalancing in extreme OLTP environments
US9477600B2 (en) 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US10095526B2 (en) * 2012-10-12 2018-10-09 Nvidia Corporation Technique for improving performance in multi-threaded processing units
US9361237B2 (en) * 2012-10-18 2016-06-07 Vmware, Inc. System and method for exclusive read caching in a virtualized computing environment
US9170955B2 (en) * 2012-11-27 2015-10-27 Intel Corporation Providing extended cache replacement state information
US9158702B2 (en) 2012-12-28 2015-10-13 Intel Corporation Apparatus and method for implementing a scratchpad memory using priority hint
WO2014120215A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Adaptive granularity row-buffer cache
US9218291B2 (en) * 2013-07-25 2015-12-22 International Business Machines Corporation Implementing selective cache injection
JP6221717B2 (ja) * 2013-12-12 2017-11-01 富士通株式会社 ストレージ装置、ストレージシステム及びデータ管理プログラム
US9934194B2 (en) 2013-12-20 2018-04-03 Rambus Inc. Memory packet, data structure and hierarchy within a memory appliance for accessing memory
US9672043B2 (en) 2014-05-12 2017-06-06 International Business Machines Corporation Processing of multiple instruction streams in a parallel slice processor
US9665372B2 (en) 2014-05-12 2017-05-30 International Business Machines Corporation Parallel slice processor with dynamic instruction stream mapping
US9760375B2 (en) 2014-09-09 2017-09-12 International Business Machines Corporation Register files for storing data operated on by instructions of multiple widths
US9720696B2 (en) 2014-09-30 2017-08-01 International Business Machines Corporation Independent mapping of threads
US9977678B2 (en) 2015-01-12 2018-05-22 International Business Machines Corporation Reconfigurable parallel execution and load-store slice processor
US10133581B2 (en) 2015-01-13 2018-11-20 International Business Machines Corporation Linkable issue queue parallel execution slice for a processor
US10133576B2 (en) * 2015-01-13 2018-11-20 International Business Machines Corporation Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries
TWI552536B (zh) * 2015-03-20 2016-10-01 國立交通大學 光資料中心網路系統以及光交換器
CN106293637B (zh) * 2015-05-28 2018-10-30 华为技术有限公司 数据移动、将数据设置为无效的方法、处理器及系统
US11240334B2 (en) * 2015-10-01 2022-02-01 TidalScale, Inc. Network attached memory using selective resource migration
US9983875B2 (en) 2016-03-04 2018-05-29 International Business Machines Corporation Operation of a multi-slice processor preventing early dependent instruction wakeup
US10037211B2 (en) 2016-03-22 2018-07-31 International Business Machines Corporation Operation of a multi-slice processor with an expanded merge fetching queue
US10346174B2 (en) 2016-03-24 2019-07-09 International Business Machines Corporation Operation of a multi-slice processor with dynamic canceling of partial loads
US10761854B2 (en) 2016-04-19 2020-09-01 International Business Machines Corporation Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor
US10037229B2 (en) 2016-05-11 2018-07-31 International Business Machines Corporation Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions
US9934033B2 (en) 2016-06-13 2018-04-03 International Business Machines Corporation Operation of a multi-slice processor implementing simultaneous two-target loads and stores
US10042647B2 (en) 2016-06-27 2018-08-07 International Business Machines Corporation Managing a divided load reorder queue
US10318419B2 (en) 2016-08-08 2019-06-11 International Business Machines Corporation Flush avoidance in a load store unit
US10579274B2 (en) 2017-06-27 2020-03-03 TidalScale, Inc. Hierarchical stalling strategies for handling stalling events in a virtualized environment
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
US11175927B2 (en) 2017-11-14 2021-11-16 TidalScale, Inc. Fast boot
US10769030B2 (en) * 2018-04-25 2020-09-08 EMC IP Holding Company LLC System and method for improved cache performance
CN110293539B (zh) * 2019-06-24 2022-09-30 佛山智异科技开发有限公司 工业机器人示教器软件架构的实现方法、装置及示教器
US10802973B1 (en) 2019-07-01 2020-10-13 Bank Of America Corporation Data access tool
US20230101512A1 (en) * 2021-09-25 2023-03-30 Intel Corporation Shared prefetch instruction and support

Family Cites Families (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US136701A (en) 1873-03-11 Improvement in sewing-machine tables
JPS5113118Y1 (ja) 1970-06-09 1976-04-08
US3731002A (en) * 1970-10-08 1973-05-01 Bell Telephone Labor Inc Interconnected loop data block transmission system
USRE28811E (en) * 1970-10-08 1976-05-11 Bell Telephone Laboratories, Incorporated Interconnected loop data block transmission system
US3713096A (en) * 1971-03-31 1973-01-23 Ibm Shift register interconnection of data processing system
US3748647A (en) * 1971-06-30 1973-07-24 Ibm Toroidal interconnection system
US3735362A (en) * 1971-09-22 1973-05-22 Ibm Shift register interconnection system
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
USRE28211E (en) * 1972-09-05 1974-10-22 Forced closure dipolar electro-optic shutter and method
US3800291A (en) 1972-09-21 1974-03-26 Ibm Data processing system memory relocation apparatus and method
US3885742A (en) * 1973-02-14 1975-05-27 Iplex Plastic Ind Pty Ltd Attachment of drip feed devices to hoses or the like
US4011545A (en) * 1975-04-28 1977-03-08 Ridan Computers, Inc. Computer and communications systems employing new architectures
US4031512A (en) * 1975-05-29 1977-06-21 Burroughs Corporation Communications network for general purpose data communications in a heterogeneous environment
US4077059A (en) * 1975-12-18 1978-02-28 Cordi Vincent A Multi-processing system with a hierarchial memory having journaling and copyback
US4358823A (en) * 1977-03-25 1982-11-09 Trw, Inc. Double redundant processor
US4141067A (en) * 1977-06-13 1979-02-20 General Automation Multiprocessor system with cache memory
US4245306A (en) * 1978-12-21 1981-01-13 Burroughs Corporation Selection of addressed processor in a multi-processor network
US4240143A (en) * 1978-12-22 1980-12-16 Burroughs Corporation Hierarchical multi-processor network for memory sharing
US4484262A (en) * 1979-01-09 1984-11-20 Sullivan Herbert W Shared memory computer method and apparatus
IT1118355B (it) * 1979-02-15 1986-02-24 Cselt Centro Studi Lab Telecom Sistema di interconnessione tra processori
US4293910A (en) * 1979-07-02 1981-10-06 International Business Machines Corporation Reconfigurable key-in-storage means for protecting interleaved main storage
CA1159153A (en) * 1979-12-14 1983-12-20 Charles P. Ryan Apparatus for cache clearing
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
GB2077468B (en) * 1980-06-04 1984-10-24 Hitachi Ltd Multi-computer system with plural serial bus loops
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system
US4410944A (en) 1981-03-24 1983-10-18 Burroughs Corporation Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
JPS57166756A (en) * 1981-04-08 1982-10-14 Hitachi Ltd Transmission controlling method
US4410946A (en) * 1981-06-15 1983-10-18 International Business Machines Corporation Cache extension to processor local storage
US4476524A (en) 1981-07-02 1984-10-09 International Business Machines Corporation Page storage control methods and means
US4488256A (en) 1981-11-23 1984-12-11 Motorola, Inc. Memory management unit having means for detecting and preventing mapping conflicts
US4432057A (en) * 1981-11-27 1984-02-14 International Business Machines Corporation Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system
US4811203A (en) * 1982-03-03 1989-03-07 Unisys Corporation Hierarchial memory system with separate criteria for replacement and writeback without replacement
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4503497A (en) * 1982-05-27 1985-03-05 International Business Machines Corporation System for independent cache-to-cache transfer
US4714990A (en) * 1982-09-18 1987-12-22 International Computers Limited Data storage apparatus
US4625081A (en) * 1982-11-30 1986-11-25 Lotito Lawrence A Automated telephone voice service system
JPS59103166A (ja) * 1982-12-02 1984-06-14 Fujitsu Ltd 階層型並列デ−タ処理装置
JPS59102166A (ja) 1982-12-06 1984-06-13 Fanuc Ltd 速度検出回路
US5212773A (en) 1983-05-31 1993-05-18 Thinking Machines Corporation Wormhole communications arrangement for massively parallel processor
US4598400A (en) * 1983-05-31 1986-07-01 Thinking Machines Corporation Method and apparatus for routing message packets
US4768144A (en) 1983-10-25 1988-08-30 Keycom Electronic Publishing, Inc. Method and apparatus for retrieving information distributed over nonconsecutive pages
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
JPS60136097A (ja) * 1983-12-23 1985-07-19 Hitachi Ltd 連想メモリ装置
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
US4754394A (en) * 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
US4700347A (en) * 1985-02-13 1987-10-13 Bolt Beranek And Newman Inc. Digital phase adjustment
US5067071A (en) 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
JPH0732401B2 (ja) * 1985-04-24 1995-04-10 株式会社日立製作所 伝送制御方式
GB2176918B (en) * 1985-06-13 1989-11-01 Intel Corp Memory management for microprocessor system
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
EP0214718A3 (en) * 1985-07-22 1990-04-04 Alliant Computer Systems Corporation Digital computer
US4706080A (en) * 1985-08-26 1987-11-10 Bell Communications Research, Inc. Interconnection of broadcast networks
US4734907A (en) * 1985-09-06 1988-03-29 Washington University Broadcast packet switching network
US4701756A (en) * 1985-09-10 1987-10-20 Burr William E Fault-tolerant hierarchical network
IT1184013B (it) * 1985-12-13 1987-10-22 Elsag Memoria ad elevata capacita accessibile a diverse agenti
IT1184015B (it) * 1985-12-13 1987-10-22 Elsag Sistema multiprocessore a piu livelli gerarchici
US4730249A (en) 1986-01-16 1988-03-08 International Business Machines Corporation Method to operate on large segments of data in a virtual memory data processing system
US4758946A (en) * 1986-04-09 1988-07-19 Elxsi Page mapping system
US4780873A (en) 1986-05-19 1988-10-25 General Electric Company Circuit switching network with routing nodes
JPS6336348A (ja) * 1986-07-30 1988-02-17 Toshiba Corp バツフアメモリ管理方法
CA1293819C (en) * 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
JPS6364144A (ja) * 1986-09-04 1988-03-22 Hitachi Ltd 記憶装置間デ−タ転送方式
US4951193A (en) * 1986-09-05 1990-08-21 Hitachi, Ltd. Parallel computer with distributed shared memories and distributed task activating circuits
US4811216A (en) * 1986-12-22 1989-03-07 American Telephone And Telegraph Company Multiprocessor memory management method
IT1217130B (it) * 1987-03-12 1990-03-14 Cselt Centro Studi Lab Telecom Sistema di commutazione in tecnologia ottica
DE3782335T2 (de) * 1987-04-22 1993-05-06 Ibm Speichersteuersystem.
US4888726A (en) * 1987-04-22 1989-12-19 Allen-Bradley Company. Inc. Distributed processing in a cluster of industrial controls linked by a communications network
US4984235A (en) * 1987-04-27 1991-01-08 Thinking Machines Corporation Method and apparatus for routing message packets and recording the roofing sequence
US4797880A (en) * 1987-10-07 1989-01-10 Bell Communications Research, Inc. Non-blocking, self-routing packet switch
JP3023425B2 (ja) * 1987-10-09 2000-03-21 株式会社日立製作所 データ処理装置
IT1223142B (it) 1987-11-17 1990-09-12 Honeywell Bull Spa Sistema multiprocessore di elaborazione con multiplazione di dati globali
US4980816A (en) * 1987-12-18 1990-12-25 Nec Corporation Translation look-aside buffer control system with multiple prioritized buffers
US5282201A (en) 1987-12-22 1994-01-25 Kendall Square Research Corporation Dynamic packet routing network
US5119481A (en) 1987-12-22 1992-06-02 Kendall Square Research Corporation Register bus multiprocessor system with shift
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5226039A (en) 1987-12-22 1993-07-06 Kendall Square Research Corporation Packet routing switch
US5251308A (en) 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design
JP2584647B2 (ja) 1988-01-28 1997-02-26 株式会社リコー 通信網のノード装置
JPH01230275A (ja) 1988-03-10 1989-09-13 Mitsubishi Metal Corp 超電導薄膜の形成法
US4887265A (en) * 1988-03-18 1989-12-12 Motorola, Inc. Packet-switched cellular telephone system
US4979100A (en) * 1988-04-01 1990-12-18 Sprint International Communications Corp. Communication processor for a packet-switched network
JPH01253059A (ja) 1988-04-01 1989-10-09 Kokusai Denshin Denwa Co Ltd <Kdd> 並列信号処理方式
US5101402A (en) * 1988-05-24 1992-03-31 Digital Equipment Corporation Apparatus and method for realtime monitoring of network sessions in a local area network
WO1990000283A1 (en) * 1988-07-04 1990-01-11 Swedish Institute Of Computer Science Multiprocessor system including a hierarchical cache memory system
US4930106A (en) 1988-08-29 1990-05-29 Unisys Corporation Dual cache RAM for rapid invalidation
US5025365A (en) 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5136717A (en) 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5101485B1 (en) 1989-06-29 1996-12-10 Frank L Perazzoli Jr Virtual memory page table paging apparatus and method
US5226175A (en) 1989-07-21 1993-07-06 Graphic Edge, Inc. Technique for representing sampled images
US5226109A (en) 1990-04-26 1993-07-06 Honeywell Inc. Three dimensional computer graphic symbol generator
US5313647A (en) 1991-09-20 1994-05-17 Kendall Square Research Corporation Digital data processor with improved checkpointing and forking

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
12th ISCA’85 P276−283
Harold S.Stone 著,斉藤忠夫 発田弘 監訳「高性能コンピュータ アーキテクチャ」P31−P75

Also Published As

Publication number Publication date
EP0322117A2 (en) 1989-06-28
EP1016979A2 (en) 2000-07-05
EP1016971A2 (en) 2000-07-05
JPH01281555A (ja) 1989-11-13
US6330649B1 (en) 2001-12-11
DE3856451T2 (de) 2001-07-19
US5297265A (en) 1994-03-22
US5055999A (en) 1991-10-08
EP0593100A3 (en) 1995-05-24
CA1333727C (en) 1994-12-27
EP0322117B1 (en) 2001-01-10
US20020078310A1 (en) 2002-06-20
ATE231996T1 (de) 2003-02-15
EP0322117A3 (en) 1990-07-25
EP0593100B1 (en) 2003-01-29
DE3856552T2 (de) 2003-11-20
US6694412B2 (en) 2004-02-17
EP0468542A2 (en) 1992-01-29
DE3856451D1 (de) 2001-02-15
EP0468542A3 (en) 1992-08-12
US5960461A (en) 1999-09-28
EP0593100A2 (en) 1994-04-20
EP1020799A2 (en) 2000-07-19
DE3856552D1 (de) 2003-03-06
ATE198673T1 (de) 2001-01-15

Similar Documents

Publication Publication Date Title
JP2780032B2 (ja) マルチプロセッサディジタルデータ処理システム
US5251308A (en) Shared memory multiprocessor with data hiding and post-store
US5341483A (en) Dynamic hierarchial associative memory
US5282201A (en) Dynamic packet routing network
EP0458553B1 (en) Packet routing switch and method for networks
US5604882A (en) System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
EP0539012B1 (en) Improved digital processor with distributed memory system
US5809527A (en) Outboard file cache system
US4977498A (en) Data processing system having a data memory interlock coherency scheme
JPS5849945B2 (ja) バツフア合せ方式
US5361342A (en) Tag control system in a hierarchical memory control system
JP2746530B2 (ja) 共有メモリマルチプロセッサ
EP0404560B1 (en) multiprocessor system and method
EP0533447B1 (en) Digital data processor with improved paging
US6298419B1 (en) Protocol for software distributed shared memory with memory scaling
CA1341154C (en) Multiprocessor digital data processing system
EP0458552B1 (en) Dynamic hierarchical routing directory organization associative memory
CA2042291C (en) Dynamic hierarchical associative memory
CA2042610C (en) Dynamic packet routing network

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees