JPH0786861B2 - 共用メモリ・マルチプロセツサ・システム - Google Patents
共用メモリ・マルチプロセツサ・システムInfo
- Publication number
- JPH0786861B2 JPH0786861B2 JP1088185A JP8818589A JPH0786861B2 JP H0786861 B2 JPH0786861 B2 JP H0786861B2 JP 1088185 A JP1088185 A JP 1088185A JP 8818589 A JP8818589 A JP 8818589A JP H0786861 B2 JPH0786861 B2 JP H0786861B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- hot spot
- address
- network
- hot
- 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 - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17393—Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/80—Ingress point selection by the source endpoint, e.g. selection of ISP or POP
- H04L45/85—Selection among different networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/80—Ingress point selection by the source endpoint, e.g. selection of ISP or POP
- H04L45/85—Selection among different networks
- H04L45/851—Dynamic network selection or re-selection, e.g. after degradation of quality
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 以下の順序で、本発明を説明する。
A.産業上の利用分野 B.従来技術 C.発明が解決しようとする問題点 D.問題点を解決するための手段 E.実施例 E1.序論 E2.一般的説明 E3.好ましい実施例(第1図乃至第6図) F.発明の効果 A.産業上の利用分野 本発明はデータ・プロセツサ・メモリ・システムに関
し、更に具体的には、複数のプロセツサ及び複数の個々
のメモリ・モジユールを有する大型マルチプロセツサ・
コンピユータ・システムで使用するためのこのようなメ
モリ・システム制御装置に関する。さらに具体的には、
本発明は複雑な相互接続ネツトワークを介して個々のプ
ロセツサとメモリ・モジユール間のデータの流れを制御
する技術に関する。
し、更に具体的には、複数のプロセツサ及び複数の個々
のメモリ・モジユールを有する大型マルチプロセツサ・
コンピユータ・システムで使用するためのこのようなメ
モリ・システム制御装置に関する。さらに具体的には、
本発明は複雑な相互接続ネツトワークを介して個々のプ
ロセツサとメモリ・モジユール間のデータの流れを制御
する技術に関する。
B.従来技術 最近の研究によれば、大型並列コンピユータのメモリ・
システムは性能が低下する可能性があるという欠点があ
ることがわかつている。メモリ参照の大部分が1つのメ
モリ・アドレスに向けられると、システム全体の性能は
この1つのメモリ容量によつて制限される。このメモリ
へのアクセスが多段の相互接続ネツトワークを介して行
われる時には「ツリー封鎖(tree blockage)」として
知られている現象がさらに競合を生じ、このシステムの
すべてのユーザにかなりな遅延をもたらす。
システムは性能が低下する可能性があるという欠点があ
ることがわかつている。メモリ参照の大部分が1つのメ
モリ・アドレスに向けられると、システム全体の性能は
この1つのメモリ容量によつて制限される。このメモリ
へのアクセスが多段の相互接続ネツトワークを介して行
われる時には「ツリー封鎖(tree blockage)」として
知られている現象がさらに競合を生じ、このシステムの
すべてのユーザにかなりな遅延をもたらす。
この問題及び関連する性能上の問題は後にリストする論
文「ホツト・スポツトの競合と多段相互接続ネツトワー
ク中での組合せ」に論ぜられている。
文「ホツト・スポツトの競合と多段相互接続ネツトワー
ク中での組合せ」に論ぜられている。
この問題の一つの解決法はNYU超コンピユータ設計中に
提案されている“組合せネツトワーク”である(「NYU
超コンピユータ…MIMD、共用メモリ並列マシンの設計」
1983年2月刊のコンピユータに関するIEEE論文集、第17
5〜第189頁(“The NYU Ultracomputer…Designing a M
IMD、Shared Memory Parallel Machine、“IEEE Transa
ctions on Computers、February1983、pp.175−189)を
参照)。この組合せネツトワによつて、メモリのホツト
・スポツトへの参照がメモリに行く前に組合されて、ホ
ツト・スポツトのための競合を減少しているが、組合せ
ネツトワークは複雑で高価なハードウエアの設計を要す
る。大型マルチプロセツサシステム中のすべてのメモリ
参照を支援するために十分低い待ち時間の組合せネツト
ワークを構成することは現在困難である。他の方法は2
つのネツトワークを形成して、1つを低待ち時間用に他
を競合性の高いトラフイツク処理のためにして、ホツト
・スポツトを生ずることが予想されるメツセージを第2
のネツトワークに向けるものである。しかしながら、一
般のメモリ・トラフイツクからホツト・スポツト参照を
効果的に選択する際に問題が残る。このようなシステム
中でソフトウエアもしくはメツセージのタイプの予定の
指定に依存して、どのような参照がホツト・スポツトに
なされているかを指示することによつてホツト・スポツ
トの問題を避けることは勿論可能である。従つてホツト
・スポツトは予じめ識別できる。しかしながら、このよ
うな解決法は大型マルチ・ユーザ・システムでは明らか
に実施不能である。それはシステム全体の性能がすべて
のユーザによる正しい、効率的なプログラミングに依存
し、どのタイプの参照がホツト・スポツトになされてい
るかを指示する際の一貫性が暗に示されていなくてはな
らないからである。
提案されている“組合せネツトワーク”である(「NYU
超コンピユータ…MIMD、共用メモリ並列マシンの設計」
1983年2月刊のコンピユータに関するIEEE論文集、第17
5〜第189頁(“The NYU Ultracomputer…Designing a M
IMD、Shared Memory Parallel Machine、“IEEE Transa
ctions on Computers、February1983、pp.175−189)を
参照)。この組合せネツトワによつて、メモリのホツト
・スポツトへの参照がメモリに行く前に組合されて、ホ
ツト・スポツトのための競合を減少しているが、組合せ
ネツトワークは複雑で高価なハードウエアの設計を要す
る。大型マルチプロセツサシステム中のすべてのメモリ
参照を支援するために十分低い待ち時間の組合せネツト
ワークを構成することは現在困難である。他の方法は2
つのネツトワークを形成して、1つを低待ち時間用に他
を競合性の高いトラフイツク処理のためにして、ホツト
・スポツトを生ずることが予想されるメツセージを第2
のネツトワークに向けるものである。しかしながら、一
般のメモリ・トラフイツクからホツト・スポツト参照を
効果的に選択する際に問題が残る。このようなシステム
中でソフトウエアもしくはメツセージのタイプの予定の
指定に依存して、どのような参照がホツト・スポツトに
なされているかを指示することによつてホツト・スポツ
トの問題を避けることは勿論可能である。従つてホツト
・スポツトは予じめ識別できる。しかしながら、このよ
うな解決法は大型マルチ・ユーザ・システムでは明らか
に実施不能である。それはシステム全体の性能がすべて
のユーザによる正しい、効率的なプログラミングに依存
し、どのタイプの参照がホツト・スポツトになされてい
るかを指示する際の一貫性が暗に示されていなくてはな
らないからである。
従つて、このようなマルチプロセツサ・マルチメモリ・
モジユール相互接続システムの概念が提案されていて、
低待ち時間ネツトワークと潜在的な高待ち時間ホツト・
スポツト組合せネツトワークが提案されたが、ホツト・
スポツトであることを示すメツセージをダイナミツクに
識別して、その後相互接続機構を制御する効率的な手段
もしくは機構は知られていない。
モジユール相互接続システムの概念が提案されていて、
低待ち時間ネツトワークと潜在的な高待ち時間ホツト・
スポツト組合せネツトワークが提案されたが、ホツト・
スポツトであることを示すメツセージをダイナミツクに
識別して、その後相互接続機構を制御する効率的な手段
もしくは機構は知られていない。
1987年5月12日に出願された米国特許出願第048982号
は、適切な相互接続ネツトワークを介して相互接続され
なければならない、複数のプロセツサ及び複数のメモリ
をユーザマルチプロセツサ・システム中で使用される2
ネツトワーク相互接続システムを開示している。このシ
ステムでは、デルタ・ネツトワークの概念が簡単な交差
点ネツトワークと組合されて、ある情況の下で、メツセ
ージは交互にどちらかのネツトワークに送られている。
しかしながら、この特許出願にはホツト・スポツトを実
時間ベースで連続的にモニタして、これ等のホツト・ス
ポツトに対するその後のメモリ参照を適切な組合せネツ
トワーク上に振向け、他の通常のメモリ参照を低待ち時
間ネツトワーク上に送る方法の開示はない。
は、適切な相互接続ネツトワークを介して相互接続され
なければならない、複数のプロセツサ及び複数のメモリ
をユーザマルチプロセツサ・システム中で使用される2
ネツトワーク相互接続システムを開示している。このシ
ステムでは、デルタ・ネツトワークの概念が簡単な交差
点ネツトワークと組合されて、ある情況の下で、メツセ
ージは交互にどちらかのネツトワークに送られている。
しかしながら、この特許出願にはホツト・スポツトを実
時間ベースで連続的にモニタして、これ等のホツト・ス
ポツトに対するその後のメモリ参照を適切な組合せネツ
トワーク上に振向け、他の通常のメモリ参照を低待ち時
間ネツトワーク上に送る方法の開示はない。
次にリストする4つの論文は大きな共用メモリを有す
る、RP3として知られた実験用マルチプロセツサ計算シ
ステムの属性を説明したものであり、1985年8月20−23
日に開催された並列処理に関する1985年国際会議論文集
(Proceedings of1985Internartional Conference on P
arallel Processing、August20−23、1985)に発表され
たものである。(1)G.F.フイスター(Pfister)等に
よる「IBM研究用並列プロセツサのプロトタイプ(RP
3):入門とアーキテクチユア(“The IBM Research Pa
rallel Processor Prototype(RP3):Introduction and
Architecture")」第764−771頁。
る、RP3として知られた実験用マルチプロセツサ計算シ
ステムの属性を説明したものであり、1985年8月20−23
日に開催された並列処理に関する1985年国際会議論文集
(Proceedings of1985Internartional Conference on P
arallel Processing、August20−23、1985)に発表され
たものである。(1)G.F.フイスター(Pfister)等に
よる「IBM研究用並列プロセツサのプロトタイプ(RP
3):入門とアーキテクチユア(“The IBM Research Pa
rallel Processor Prototype(RP3):Introduction and
Architecture")」第764−771頁。
(2)V.A.ノートン(Norton)等による「マルチプロセ
ツサのパフオーマンスを予測する方法 (“A Metho dology for Prediction Multiprocessor P
erformance")第772−781頁。この論文は所与のマルチ
プロセツサのパフオーマンスを予測する方法を開示し、
システム全体のパフオーマンスを著しく損う、種々のタ
イプのメモリ閉鎖を予測する方法を示している。
ツサのパフオーマンスを予測する方法 (“A Metho dology for Prediction Multiprocessor P
erformance")第772−781頁。この論文は所与のマルチ
プロセツサのパフオーマンスを予測する方法を開示し、
システム全体のパフオーマンスを著しく損う、種々のタ
イプのメモリ閉鎖を予測する方法を示している。
(3)K.P.マクオリフエ(McAuliffe)等による「RP3プ
ロセツサ/メモリ素子(“The RP3 Processor/Memory E
lement")」第782−第789頁。
ロセツサ/メモリ素子(“The RP3 Processor/Memory E
lement")」第782−第789頁。
(4)G.F.フイスター(Pfister)等による「ホツト・
スポツトの競合と多段相互接続ネツトワーク中での組合
せ (“Hot-Spot Contention and Combining in Multistag
e Inter connection Networks")」第790−797頁。
スポツトの競合と多段相互接続ネツトワーク中での組合
せ (“Hot-Spot Contention and Combining in Multistag
e Inter connection Networks")」第790−797頁。
(5)米国特許第3956737号。
(6)米国特許第4484262号及び第4707781号。
C.発明が解決しようとする問題点 本発明の目的は、共用メモリ・マルチプロセツサ・シス
テムのための相互接続ネツトワーク管理アーキテクチユ
アを与えることにある。
テムのための相互接続ネツトワーク管理アーキテクチユ
アを与えることにある。
本発明に従えば、少なくとも1つの低待ち時間通信ネツ
トワーク、及び少なくとも1つの他の相互接続ネツトワ
ークを有するシステムのための相互接続ネツトワーク管
理アーキテクチユアが与えられる。
トワーク、及び少なくとも1つの他の相互接続ネツトワ
ークを有するシステムのための相互接続ネツトワーク管
理アーキテクチユアが与えられる。
本発明に従えば、メモリのアドレス基準に基づいて、上
記2つのネツトワークの一方もしくは他方へメモリ・ア
クセスを転向させる手段を有する相互接続ネツトワーク
・アーキテクチユアが与えられる。
記2つのネツトワークの一方もしくは他方へメモリ・ア
クセスを転向させる手段を有する相互接続ネツトワーク
・アーキテクチユアが与えられる。
本発明に従えば、上記メモリ・アクセスを転向するため
の手段が、転向の基準としてホツト・スポツト・メモリ
基準を使用する相互接続ネツトワーク・アーキテクチユ
アが与えられる。
の手段が、転向の基準としてホツト・スポツト・メモリ
基準を使用する相互接続ネツトワーク・アーキテクチユ
アが与えられる。
本発明に従えば、システム制御の基準としてのホツト・
スポツトをダイナミツクに検出して、除去し、上記ホツ
ト・スポツトを検出した時にこれを使用して上記メツセ
ージの転向を行う相互接続ネツトワーク・アーキテクチ
ユアが与えられる。
スポツトをダイナミツクに検出して、除去し、上記ホツ
ト・スポツトを検出した時にこれを使用して上記メツセ
ージの転向を行う相互接続ネツトワーク・アーキテクチ
ユアが与えられる。
D.問題点を解決するための手段 本発明に従えば、複数のプロセツサ及び複数の個別にア
ドレス可能なメモリ・モジユールを有し、メモリ・モジ
ユールの各々がメモリ相互接続ネツトワークを介して上
記プロセツサの任意のものによつてアクセスできる大型
共用メモリ・マルチプロセツサ・コンピユータ・システ
ムで使用される相互接続ネツトワーク・アーキテクチユ
アが与えられる。上記システムは2つの並列相互接続メ
モリ・ネツトワークより成り、各々は任意のプロセツサ
を任意のモジユールに相互接続できる。上記2つのネツ
トワークは、メモリの競合を生ずる可能の低いメモリ要
求が導かれる第1の低待ち時間ネツトワーク及びメモリ
競合の可能性が高いメモリ要求が導かれる第2のネツト
ワークより成る。ホツト・スポツト検出装置が各メモリ
・モジユールと関連していて、そのモジユール中の特定
のアドレスがホツト・スポツトとなつた時を検出する。
転向装置が各プロセツサ及びメモリ・ネツトワークと関
連していて、上記第1もしくは第2のメモリ・ネツトワ
ークにメモリ要求を選択的に導く。
ドレス可能なメモリ・モジユールを有し、メモリ・モジ
ユールの各々がメモリ相互接続ネツトワークを介して上
記プロセツサの任意のものによつてアクセスできる大型
共用メモリ・マルチプロセツサ・コンピユータ・システ
ムで使用される相互接続ネツトワーク・アーキテクチユ
アが与えられる。上記システムは2つの並列相互接続メ
モリ・ネツトワークより成り、各々は任意のプロセツサ
を任意のモジユールに相互接続できる。上記2つのネツ
トワークは、メモリの競合を生ずる可能の低いメモリ要
求が導かれる第1の低待ち時間ネツトワーク及びメモリ
競合の可能性が高いメモリ要求が導かれる第2のネツト
ワークより成る。ホツト・スポツト検出装置が各メモリ
・モジユールと関連していて、そのモジユール中の特定
のアドレスがホツト・スポツトとなつた時を検出する。
転向装置が各プロセツサ及びメモリ・ネツトワークと関
連していて、上記第1もしくは第2のメモリ・ネツトワ
ークにメモリ要求を選択的に導く。
ホツト・スポツト通知装置が、すべての上記ホツト・ス
ポツト検出装置を上記転向装置のすべてと相互接続する
ために与えられる。上記転向装置の各々には、上記検出
装置の任意のものによつて検出されたすべてのホツト・
スポツトを記憶するためのメモリ装置が与えられてい
る。各転向装置中には、現在のメモリ・アクセスが上記
メモリ・システム内にリストされたホツト・スポツトに
あるかどうかを判断し、もしあれば、メモリ・アクセス
を第2の相互接続ネツトワークを介してメモリ・システ
ムに転送する装置が与えられる。
ポツト検出装置を上記転向装置のすべてと相互接続する
ために与えられる。上記転向装置の各々には、上記検出
装置の任意のものによつて検出されたすべてのホツト・
スポツトを記憶するためのメモリ装置が与えられてい
る。各転向装置中には、現在のメモリ・アクセスが上記
メモリ・システム内にリストされたホツト・スポツトに
あるかどうかを判断し、もしあれば、メモリ・アクセス
を第2の相互接続ネツトワークを介してメモリ・システ
ムに転送する装置が与えられる。
上記検出装置の各々は、所定の時間の枠内で、特定のア
ドレスがホツト・スポツトとみなされる程十分な回数繰
返されたかどうかを判断し、もし繰返された時には各プ
ロセツサに関連するすべての転向装置に、この事実を、
新らしいホツト・スポツトのアドレスとともに通知して
記憶させ、後に各転向装置で使用される装置を含む。
ドレスがホツト・スポツトとみなされる程十分な回数繰
返されたかどうかを判断し、もし繰返された時には各プ
ロセツサに関連するすべての転向装置に、この事実を、
新らしいホツト・スポツトのアドレスとともに通知して
記憶させ、後に各転向装置で使用される装置を含む。
E.実施例 E1.序論 本発明はネツトワーク・トラフイツク中のホツト・スポ
ツトを検出し、組合せネツトワークを介してメモリ参照
を転向させるハードウエア技術を有する、大型共用メモ
リ・マルチプロセツサ・システムのための相互接続ネツ
トワーク管理アーキテクチユアに関する。「ホツト・ス
ポツト」なる用語は、予じめ定められた時間の枠内で繰
返し参照される同じメモリ位置を示している。ホツト・
スポツトの指定は異なるシステムの用途に適するように
システムの設計者によつて自由に変更できることは明ら
かであろう。換言すれば、時間の枠だけでなく、同じメ
モリへの参照の総数が変更できる。しかしながら時間の
枠はこのレベルの制御を行う基本のアーキテクチユアに
は関係がない。
ツトを検出し、組合せネツトワークを介してメモリ参照
を転向させるハードウエア技術を有する、大型共用メモ
リ・マルチプロセツサ・システムのための相互接続ネツ
トワーク管理アーキテクチユアに関する。「ホツト・ス
ポツト」なる用語は、予じめ定められた時間の枠内で繰
返し参照される同じメモリ位置を示している。ホツト・
スポツトの指定は異なるシステムの用途に適するように
システムの設計者によつて自由に変更できることは明ら
かであろう。換言すれば、時間の枠だけでなく、同じメ
モリへの参照の総数が変更できる。しかしながら時間の
枠はこのレベルの制御を行う基本のアーキテクチユアに
は関係がない。
本発明はメモリ・トラフイツクを管理する際に多くの利
点を与える。この管理は容易に自動化でき、従つて(非
効率的なことを行ったユーザのパホーマンスを除き)プ
ログラマのエラーもしくは不注意がシステム全体を劣化
することはない。
点を与える。この管理は容易に自動化でき、従つて(非
効率的なことを行ったユーザのパホーマンスを除き)プ
ログラマのエラーもしくは不注意がシステム全体を劣化
することはない。
トラフイツクが1つのネツトワークから他方へ転向され
た時は、同じプロセツサによつてアクセスされる変数へ
のアクセスの順序の変更によつて一貫性が失われる可能
性がある。たとえば同じアドレスに向けられたロードと
記憶命令はこれ等が異なるネツトワーク上を移動する時
は発生された順序に現われないことがある。ソフトウエ
アで順序の一貫性を保持することは困難であり、コンパ
イラの支援を必要とするか、かなりな実行時間のゆとり
を必要とする。このような一貫性はシステム内でプログ
ラムの正しい実行を保持するために絶対的に重要であ
る。本発明は、同じメモリへのネツトワーク・トラフイ
ツクが時々異なるネツトワーク(たとえば組合せもしく
は非組合せネツトワーク)を流れる場合でも、順序の一
貫性を保証するハードウエア手順を与える。任意の1つ
のプロセツサから任意の1つのメモリへ発生されるメモ
リ参照は、これらのメモリ参照が通るネツトワークに関
係なく、発生した順序に生ずる。
た時は、同じプロセツサによつてアクセスされる変数へ
のアクセスの順序の変更によつて一貫性が失われる可能
性がある。たとえば同じアドレスに向けられたロードと
記憶命令はこれ等が異なるネツトワーク上を移動する時
は発生された順序に現われないことがある。ソフトウエ
アで順序の一貫性を保持することは困難であり、コンパ
イラの支援を必要とするか、かなりな実行時間のゆとり
を必要とする。このような一貫性はシステム内でプログ
ラムの正しい実行を保持するために絶対的に重要であ
る。本発明は、同じメモリへのネツトワーク・トラフイ
ツクが時々異なるネツトワーク(たとえば組合せもしく
は非組合せネツトワーク)を流れる場合でも、順序の一
貫性を保証するハードウエア手順を与える。任意の1つ
のプロセツサから任意の1つのメモリへ発生されるメモ
リ参照は、これらのメモリ参照が通るネツトワークに関
係なく、発生した順序に生ずる。
プロセツサのホツト・スポツト参照だけが高競合ネツト
ワークを通して転向されるので、このようなネツトワー
クは最悪の事態に遭遇する可能性のある、予定のホツト
・スポツトロードだけを処理すれば十分なように最小の
コストで構成できる。もし、たとえば、大部分がホツト
・スポツトを生じない、すべての同期トラフイツクが組
合せネツトワークを通して転向されるならば、組合せネ
ツトワークが非組合せネツトワークよりもかなり複雑で
あり、従つてより多くの論理レベル、チエツク及び比較
動作を経なければならないという事実によつて、待ち時
間が増大する。
ワークを通して転向されるので、このようなネツトワー
クは最悪の事態に遭遇する可能性のある、予定のホツト
・スポツトロードだけを処理すれば十分なように最小の
コストで構成できる。もし、たとえば、大部分がホツト
・スポツトを生じない、すべての同期トラフイツクが組
合せネツトワークを通して転向されるならば、組合せネ
ツトワークが非組合せネツトワークよりもかなり複雑で
あり、従つてより多くの論理レベル、チエツク及び比較
動作を経なければならないという事実によつて、待ち時
間が増大する。
すべてのメモリ・アクセスが本発明の相互接続制御アー
キテクチユアのコストは、すべてのメモリ・アクセスが
組合せネツトワークを通るような大型システム中で適切
なメモリ・パホーマンスを与えるのに十分な帯域幅を有
する組合せネツトワークを構成するコストよりも安いと
考えられる。さらに本発明の必要とするハードウエア及
び手順はキヤツシユ−ルツクアツプ及び変換機能のよう
な機能と重畳でき、単一の超大型、低待ち時間ネツトワ
ークを使用するメモリ参照のための総時間と比較して時
間はさほど増加しない。このような低待ち時間ネツトワ
ークのコストは上述のように組合せネツトワークのコス
トの数分の一である。
キテクチユアのコストは、すべてのメモリ・アクセスが
組合せネツトワークを通るような大型システム中で適切
なメモリ・パホーマンスを与えるのに十分な帯域幅を有
する組合せネツトワークを構成するコストよりも安いと
考えられる。さらに本発明の必要とするハードウエア及
び手順はキヤツシユ−ルツクアツプ及び変換機能のよう
な機能と重畳でき、単一の超大型、低待ち時間ネツトワ
ークを使用するメモリ参照のための総時間と比較して時
間はさほど増加しない。このような低待ち時間ネツトワ
ークのコストは上述のように組合せネツトワークのコス
トの数分の一である。
本発明の相互接続ネツトワーク管理アーキテクチユアの
他の利点として、メモリ参照トラフイツク中のホツト・
スポツトを示す情報もしくはデータが実行時間中に利用
可能になることがあげられる。従つてこの情報をシステ
ムのユーザに報告して、適用業務でホツト・スポツトが
望ましくない時にソフトウエアのエラーを訂正すること
ができる。従つてこの情報でデータ組織等を変更して、
データをインターリーブされたメモリ・システム上によ
りよく分散してホツト・スポツトをなくすか、少なくと
も最小にすることが可能である。
他の利点として、メモリ参照トラフイツク中のホツト・
スポツトを示す情報もしくはデータが実行時間中に利用
可能になることがあげられる。従つてこの情報をシステ
ムのユーザに報告して、適用業務でホツト・スポツトが
望ましくない時にソフトウエアのエラーを訂正すること
ができる。従つてこの情報でデータ組織等を変更して、
データをインターリーブされたメモリ・システム上によ
りよく分散してホツト・スポツトをなくすか、少なくと
も最小にすることが可能である。
本発明のアーキテクチユアは多くの(たとえば10以上)
独立した処理ユニツトのシステム中で使用することを意
図している。2つの通信ネツトワークが必要である。1
つはニユーヨーク大学超コンピユータ計画(New York U
niversity Ultracomputer Project)によつて提案さ
れ、A.ゴツトリーブ(Gottlieb)等による論文「NYU超
コンピユータ…MIND共用メモリ並列マシン(“The NYU
Ultracomputer Memory Parallel Machine")」、1983年
2月刊コンピユータに関するIEEE論文集(IEEE Transac
tions on Computers)第175−185頁に詳細に説明されて
いる組合せネツトワークのような高競合トラヒツクを処
理できるものである。他のネツトワークはすべての非ホ
ツト・スポツト参照を効率的にメモリに転送できるに十
分な低待ち時間のものである。両ネツトワークは、任意
の入力に到達する、同じ宛先アドレスへの2つのメツセ
ージの順序がネツトワークの出力迄保持されるといつた
意味で、順序の一貫性を保持できるハードウエアの内部
に与えられる。このことは任意の1つの宛先にはメツセ
ージの飛び越しがあつてはならないことを意味してい
る。本発明においては、このような飛び越しを防止する
ために、以下説明する「フエンス」機能及び原始的なメ
モリ・アクセスをメモリ自体の中で使用して、一つのア
クセスが完了してから他のアクセスが開始することが保
証される。
独立した処理ユニツトのシステム中で使用することを意
図している。2つの通信ネツトワークが必要である。1
つはニユーヨーク大学超コンピユータ計画(New York U
niversity Ultracomputer Project)によつて提案さ
れ、A.ゴツトリーブ(Gottlieb)等による論文「NYU超
コンピユータ…MIND共用メモリ並列マシン(“The NYU
Ultracomputer Memory Parallel Machine")」、1983年
2月刊コンピユータに関するIEEE論文集(IEEE Transac
tions on Computers)第175−185頁に詳細に説明されて
いる組合せネツトワークのような高競合トラヒツクを処
理できるものである。他のネツトワークはすべての非ホ
ツト・スポツト参照を効率的にメモリに転送できるに十
分な低待ち時間のものである。両ネツトワークは、任意
の入力に到達する、同じ宛先アドレスへの2つのメツセ
ージの順序がネツトワークの出力迄保持されるといつた
意味で、順序の一貫性を保持できるハードウエアの内部
に与えられる。このことは任意の1つの宛先にはメツセ
ージの飛び越しがあつてはならないことを意味してい
る。本発明においては、このような飛び越しを防止する
ために、以下説明する「フエンス」機能及び原始的なメ
モリ・アクセスをメモリ自体の中で使用して、一つのア
クセスが完了してから他のアクセスが開始することが保
証される。
メモリ・システムは1つの物理的なアドレス・スペース
を有し、1つのアドレスが特定のワードもしくはアドレ
ス可能要素の、モジユール内の位置だけでなく、メモリ
・モジユールを決定できるようになつている。本発明の
範囲を越えた因子によつて生ずるメモリ封鎖による可能
性を減少する他の機能を有することも好ましい。これ等
の機能には次のものが含まれる。
を有し、1つのアドレスが特定のワードもしくはアドレ
ス可能要素の、モジユール内の位置だけでなく、メモリ
・モジユールを決定できるようになつている。本発明の
範囲を越えた因子によつて生ずるメモリ封鎖による可能
性を減少する他の機能を有することも好ましい。これ等
の機能には次のものが含まれる。
(1)メモリ・インタリービング:この動作は多くのプ
ロセツサが1ページ内の異なるアドレスをアクセスしよ
うとする時に生じるメモリの競合を最小にするために行
わなければならない。
ロセツサが1ページ内の異なるアドレスをアクセスしよ
うとする時に生じるメモリの競合を最小にするために行
わなければならない。
(2)アドレス・ハツシングもしくはスキユーイング:
この動作はメモリに対するストライド(大また)アクセ
スによる競合から生ずるメモリ競合を最小にするために
行われなくてはならない。このようなハツシング方法に
ついては、たとえば1987年10月29日出願の米国特許第07
/114909号を参照されたい。
この動作はメモリに対するストライド(大また)アクセ
スによる競合から生ずるメモリ競合を最小にするために
行われなくてはならない。このようなハツシング方法に
ついては、たとえば1987年10月29日出願の米国特許第07
/114909号を参照されたい。
(3)読取り専用データのキヤツシング:これによれば
少なくとも現行の時間の枠内には1プロセツサ当り高々
1回のアクセスが生じるので、共用コード及び定数がホ
ツト・スポツトを生じるのが防止される。勿論、このよ
うなデータはキヤツシユ可能とは指定されていないが、
本発明の管理アーキテクチユアがホツト・スポツトを生
じるのを防止する。
少なくとも現行の時間の枠内には1プロセツサ当り高々
1回のアクセスが生じるので、共用コード及び定数がホ
ツト・スポツトを生じるのが防止される。勿論、このよ
うなデータはキヤツシユ可能とは指定されていないが、
本発明の管理アーキテクチユアがホツト・スポツトを生
じるのを防止する。
上述の3つの機能は上述のRP3として知られている大型
メモリ・マルチプロセツサ構造中に組込まれている。
メモリ・マルチプロセツサ構造中に組込まれている。
E2.一般的説明 次に本発明の相互接続ネツトワーク管理アーキテクチユ
アを一般的な機能的用語で説明する。基本のアーキテク
チユアに必要とされるハードウエアは次のように要約で
きる。
アを一般的な機能的用語で説明する。基本のアーキテク
チユアに必要とされるハードウエアは次のように要約で
きる。
ホツト・スポツト検出装置:この装置は特定のメモリ・
モジユールのすべてのメモリ参照をモニタする。各メモ
リ・モジユールにはこのような検出装置が与えられてい
る。この装置は最近最も多くアクセスした、メモリ中の
物理的アドレスを表にするカウンタを有する。この検出
装置はキヤツシユ・デイレクトリ中で通常使用されてい
るような連想メモリを必要とする(セツト連想性にあつ
てもなくてもよい)。アクセスの総数はメモリ・サイク
ルの時間ウインドー、たとえば1000−10000サイクルに
わたつて検出装置によつて作表される。しかしながら、
この数値はシステム設計者の指定によつて変更できる。
任意の1つのアドレスへの参照が十分頻繁でホツト・ス
ポツトを形成する時は、ホツト・スポツト検出装置がホ
ツト・スポツト通知バスを活性化して、以下説明するよ
うに、すべての転向装置に通知する。
モジユールのすべてのメモリ参照をモニタする。各メモ
リ・モジユールにはこのような検出装置が与えられてい
る。この装置は最近最も多くアクセスした、メモリ中の
物理的アドレスを表にするカウンタを有する。この検出
装置はキヤツシユ・デイレクトリ中で通常使用されてい
るような連想メモリを必要とする(セツト連想性にあつ
てもなくてもよい)。アクセスの総数はメモリ・サイク
ルの時間ウインドー、たとえば1000−10000サイクルに
わたつて検出装置によつて作表される。しかしながら、
この数値はシステム設計者の指定によつて変更できる。
任意の1つのアドレスへの参照が十分頻繁でホツト・ス
ポツトを形成する時は、ホツト・スポツト検出装置がホ
ツト・スポツト通知バスを活性化して、以下説明するよ
うに、すべての転向装置に通知する。
上述のように、ホツト・スポツトが存在するとみなされ
る特定の閾値は変更でき、所与のシステムについて実験
的に決定される。しかしながら特定の閾値が本発明のア
ーキテクチユア全体に制限を加えることはない。それは
閾値は本質的にシステムに与えられるカウントであつ
て、このカウントに対してホツト・スポツトのテストが
繰返しなされるものであるからである。
る特定の閾値は変更でき、所与のシステムについて実験
的に決定される。しかしながら特定の閾値が本発明のア
ーキテクチユア全体に制限を加えることはない。それは
閾値は本質的にシステムに与えられるカウントであつ
て、このカウントに対してホツト・スポツトのテストが
繰返しなされるものであるからである。
ホツト・スポツト通知バスの制御を獲得した後、検出装
置はそのアドレスを各プロセツサに関連するすべての転
向装置に同時に通報する。これ等の転向装置は、連想メ
モリであることが好ましい。ホツト・スポツト索引(ル
ツクアサイド)バツフアとして示すメモリ装置を有す
る。すでにホツト・スポツトとして指定されているメモ
リの位置は、集中的アクセスが止る迄ホツト・スポツト
として繰返し再指定される(残される)。前に指定され
たホツト・スポツトをそれとして再指定するための閾値
は、最初に決定した閾値よりも低くてもよい。それはト
ラフイツクが組合せネツトワークに転向されると、ネツ
トワーク中のメツセージの組合せによつて、メモリのホ
ツト・スポツト・アクセスが少なくなるからであく。し
かしながら、再指定するかしないかはシステムの設計者
の選択事項であるので、一度指定された特定のホツト・
スポツトのための閾値を再指定するためのアーキテクチ
ユアについては本実施例では具体的に開示しない。しか
しながらこの機能は2段階閾値を使用し、第2の低い閾
値を前に指定したホツト・スポツトのために使用するこ
とによつて容易に達成できる。この機能はたとえば各検
出装置に関連するホツト・スポツト・メモリ中に追加の
ビツトを与えることによつて達成できる。
置はそのアドレスを各プロセツサに関連するすべての転
向装置に同時に通報する。これ等の転向装置は、連想メ
モリであることが好ましい。ホツト・スポツト索引(ル
ツクアサイド)バツフアとして示すメモリ装置を有す
る。すでにホツト・スポツトとして指定されているメモ
リの位置は、集中的アクセスが止る迄ホツト・スポツト
として繰返し再指定される(残される)。前に指定され
たホツト・スポツトをそれとして再指定するための閾値
は、最初に決定した閾値よりも低くてもよい。それはト
ラフイツクが組合せネツトワークに転向されると、ネツ
トワーク中のメツセージの組合せによつて、メモリのホ
ツト・スポツト・アクセスが少なくなるからであく。し
かしながら、再指定するかしないかはシステムの設計者
の選択事項であるので、一度指定された特定のホツト・
スポツトのための閾値を再指定するためのアーキテクチ
ユアについては本実施例では具体的に開示しない。しか
しながらこの機能は2段階閾値を使用し、第2の低い閾
値を前に指定したホツト・スポツトのために使用するこ
とによつて容易に達成できる。この機能はたとえば各検
出装置に関連するホツト・スポツト・メモリ中に追加の
ビツトを与えることによつて達成できる。
システムの次に重要な機能素子はホツト・スポツト通知
バス即ちホツト・スポツト通知装置である。このバスは
すべてのホツト・スポツト検出装置がすべての転向装
置、と通信手段を与え、従つて転向装置の中のホツト・
スポツト索引バツフアと通信するための手段を与える。
すべてのホツト・スポツト検出装置はバス上にメツセー
ジを転送することができ、各転向装置のすべてのホツト
・スポツト索引バツフアはバスによつて送られて来るメ
ツセージによつて制御される。このバスへのアクセスは
公正な機構、たとえばラウンド・ロビン優先順位機構中
で決定され、各ホツト・スポツト検出装置がバス上にそ
れ自身の割り当て期間の制御を周期的に獲得する。バス
の帯域幅はすべてのこのようなメツセージを処理するに
十分でなければならない。バスのサイクルがメモリのサ
イクル時間と同程度のものであるならば、このような直
列通信の帯域幅は数千の独立したメモリ・モジユールを
含むシステムに適していると考えられる。バスは1つの
物理的アドレスと制御及びエラー検出の解決に必要な情
報を転送するに十分広くなくてはならない。ホツト・ス
ポツト検出装置から転向装置への他の通信手段も使用で
きる。すべてのメツセージは同時に、転向装置に到達す
る必要はない。この通信には、たとえばトークン通過リ
ングが適しているであろう。この通信手段は設計上の選
択事項であり、ハードウエアのこの特定の小部分にどれ
だけ投資したいかという配慮及びシステムの他の部分の
速度によつて判断されることは明らかであろう。
バス即ちホツト・スポツト通知装置である。このバスは
すべてのホツト・スポツト検出装置がすべての転向装
置、と通信手段を与え、従つて転向装置の中のホツト・
スポツト索引バツフアと通信するための手段を与える。
すべてのホツト・スポツト検出装置はバス上にメツセー
ジを転送することができ、各転向装置のすべてのホツト
・スポツト索引バツフアはバスによつて送られて来るメ
ツセージによつて制御される。このバスへのアクセスは
公正な機構、たとえばラウンド・ロビン優先順位機構中
で決定され、各ホツト・スポツト検出装置がバス上にそ
れ自身の割り当て期間の制御を周期的に獲得する。バス
の帯域幅はすべてのこのようなメツセージを処理するに
十分でなければならない。バスのサイクルがメモリのサ
イクル時間と同程度のものであるならば、このような直
列通信の帯域幅は数千の独立したメモリ・モジユールを
含むシステムに適していると考えられる。バスは1つの
物理的アドレスと制御及びエラー検出の解決に必要な情
報を転送するに十分広くなくてはならない。ホツト・ス
ポツト検出装置から転向装置への他の通信手段も使用で
きる。すべてのメツセージは同時に、転向装置に到達す
る必要はない。この通信には、たとえばトークン通過リ
ングが適しているであろう。この通信手段は設計上の選
択事項であり、ハードウエアのこの特定の小部分にどれ
だけ投資したいかという配慮及びシステムの他の部分の
速度によつて判断されることは明らかであろう。
本発明の最後の主な機能素子は、各々ホツト・スポツト
索引バツフアを有する転向装置である。転向装置はシス
テムの種々のプロセツサとネツトワークの入力ポート間
に存在する。転向装置はシステムの変換された(物理
的)アドレスにアクセスすることが必要であり、従つて
メモリ・マツピング機能の後に位置付けられる。ホツト
・スポツト索引バツフアは、システム中で現在ホツト・
スポツトとして指定されているすべての物理的アドレス
の索引テーブルを含んでいる。ホツト・スポツト索引バ
ツフアのすべては全く同じリストを保持して、完全にホ
ツト・スポツト通知の制御の下で動作する。ホツト・ス
ポツト・アドレスが指定されると、このアドレスはバツ
フアの現在の内容と比較される。もしこのアドレスが既
に指定されたものであつた時には、時間の刻印が更新さ
れ、ホツト・スポツトの状態の最新の表示がなされる。
後に明らかになるように、この時間の刻印はホツト・ス
ポツト索引バツフアの置換アルゴリズムに使用される。
もしこのアドレスが前に指定されたものでない時には、
最も古い時間の刻印を有する項目が削除され、現在のア
ドレスによつて置換される。
索引バツフアを有する転向装置である。転向装置はシス
テムの種々のプロセツサとネツトワークの入力ポート間
に存在する。転向装置はシステムの変換された(物理
的)アドレスにアクセスすることが必要であり、従つて
メモリ・マツピング機能の後に位置付けられる。ホツト
・スポツト索引バツフアは、システム中で現在ホツト・
スポツトとして指定されているすべての物理的アドレス
の索引テーブルを含んでいる。ホツト・スポツト索引バ
ツフアのすべては全く同じリストを保持して、完全にホ
ツト・スポツト通知の制御の下で動作する。ホツト・ス
ポツト・アドレスが指定されると、このアドレスはバツ
フアの現在の内容と比較される。もしこのアドレスが既
に指定されたものであつた時には、時間の刻印が更新さ
れ、ホツト・スポツトの状態の最新の表示がなされる。
後に明らかになるように、この時間の刻印はホツト・ス
ポツト索引バツフアの置換アルゴリズムに使用される。
もしこのアドレスが前に指定されたものでない時には、
最も古い時間の刻印を有する項目が削除され、現在のア
ドレスによつて置換される。
これ迄の説明はホツト・スポツト索引バツフアが完全な
連想メモリより成るものと仮定していた。これに代つ
て、もし2重もしくは4重連想索引が使用されるなら
ば、同じ合同クラス内の最も古い項目が新らしいホツト
・スポツト・アドレスによつて置換される。各ホツト・
スポツト索引バツフアでは同じ置換アルゴリズムが使用
されるので、これ等は未解決のアドレスの同じリストを
保持している。索引バツフアが更新されるのと同時に、
プロセツサのノードで「フエンス」動作が開始し、すべ
ての未解決のメモリ要求が解決される迄、このノードか
らの次のメモリ参照が遅延される。システムが各プロセ
ツサのノードにキヤツシユが存在するように設計されて
いる場合には、フエンスはキヤツシユ可能でない参照に
だけ適用する。フエンス動作は索引バツフアにアドレス
が加除される時のみ必要である。もしホツト・スポツト
・アドレスが既に指定されている時にはフエンスの要は
なく、その後のホツト・スポツトへの参照にはフエンス
の要はない。多くのアーキテクチユアでは、任意の一時
刻には唯1つの参照の保留が許されているのでフエンス
機能は必要とされない。各転向装置内のホツト・スポツ
ト索引バツフアの機能は、メモリ・マツピング装置によ
つて発生される各変換アドレスとバツフア中のアドレス
を比較することである。すべての一致したアドレスは高
競合ネツトワークへ転向される。他の参照は低待ち時間
ネツトワークに進められる。索引は時間の刻印の更新と
並列に進行するが、ホツト・スポツト索引バツフアの項
目が置換されている時には、バツフアの通常の索引動作
は保留しなければならない。システムの設計を考えて、
異なるセツト値で実験した後に、セツトしなければなら
ない多くの変数が本発明にはある。不適切なセツト値は
過当なバスの競合もしくはホツト・スポツトの非効率的
な選択を生じる。これ等の変数には次のものが含まれ
る。
連想メモリより成るものと仮定していた。これに代つ
て、もし2重もしくは4重連想索引が使用されるなら
ば、同じ合同クラス内の最も古い項目が新らしいホツト
・スポツト・アドレスによつて置換される。各ホツト・
スポツト索引バツフアでは同じ置換アルゴリズムが使用
されるので、これ等は未解決のアドレスの同じリストを
保持している。索引バツフアが更新されるのと同時に、
プロセツサのノードで「フエンス」動作が開始し、すべ
ての未解決のメモリ要求が解決される迄、このノードか
らの次のメモリ参照が遅延される。システムが各プロセ
ツサのノードにキヤツシユが存在するように設計されて
いる場合には、フエンスはキヤツシユ可能でない参照に
だけ適用する。フエンス動作は索引バツフアにアドレス
が加除される時のみ必要である。もしホツト・スポツト
・アドレスが既に指定されている時にはフエンスの要は
なく、その後のホツト・スポツトへの参照にはフエンス
の要はない。多くのアーキテクチユアでは、任意の一時
刻には唯1つの参照の保留が許されているのでフエンス
機能は必要とされない。各転向装置内のホツト・スポツ
ト索引バツフアの機能は、メモリ・マツピング装置によ
つて発生される各変換アドレスとバツフア中のアドレス
を比較することである。すべての一致したアドレスは高
競合ネツトワークへ転向される。他の参照は低待ち時間
ネツトワークに進められる。索引は時間の刻印の更新と
並列に進行するが、ホツト・スポツト索引バツフアの項
目が置換されている時には、バツフアの通常の索引動作
は保留しなければならない。システムの設計を考えて、
異なるセツト値で実験した後に、セツトしなければなら
ない多くの変数が本発明にはある。不適切なセツト値は
過当なバスの競合もしくはホツト・スポツトの非効率的
な選択を生じる。これ等の変数には次のものが含まれ
る。
(1)ホツト・スポツト検出装置によつてホツト・スポ
ツトを検出するために使用される時間ウインドー (2)ホツト・スポツトとして指定するために必要な閾
値即ち参照数 (3)ホツト・スポツト索引バツフア、同じくホツト・
スポツト検出装置のアドレス・バツフアの寸法、たとえ
ば項目の数。
ツトを検出するために使用される時間ウインドー (2)ホツト・スポツトとして指定するために必要な閾
値即ち参照数 (3)ホツト・スポツト索引バツフア、同じくホツト・
スポツト検出装置のアドレス・バツフアの寸法、たとえ
ば項目の数。
E3.好ましい実施例 第2図は適切な相互接続ネツトワークによつて複数のメ
モリ・ユニツトMo−Mqに選択的に接続可能な複数のプロ
セツサPo−Pnを有する従来技術のマルチプロセツサ・シ
ステムのレイアウト全体を示す。上述のように、この相
互接続ネツトワークは簡単な交差点スイツチ・ネツトワ
ークもしくは複雑な組合せネツトワークのいずれでもよ
い。この両方ともすでに一般に知られているものであ
る。プロセツサの数及び個別にアドレス可能なメモリ・
モジユールの数は同じでも、同じでなくても、即ちn≠
qでもよい。このような相互接続ネツトワークの欠点
は、明らかにネツトワーク自体の複雑さもしくは精緻さ
にある。
モリ・ユニツトMo−Mqに選択的に接続可能な複数のプロ
セツサPo−Pnを有する従来技術のマルチプロセツサ・シ
ステムのレイアウト全体を示す。上述のように、この相
互接続ネツトワークは簡単な交差点スイツチ・ネツトワ
ークもしくは複雑な組合せネツトワークのいずれでもよ
い。この両方ともすでに一般に知られているものであ
る。プロセツサの数及び個別にアドレス可能なメモリ・
モジユールの数は同じでも、同じでなくても、即ちn≠
qでもよい。このような相互接続ネツトワークの欠点
は、明らかにネツトワーク自体の複雑さもしくは精緻さ
にある。
第3図は第2図と類似の図面であるが、個々のプロセツ
サPo−Pnを個々のメモリ・モジユールMo−Mnに選択的に
接続するための2つの可能な相互接続ネツトワークを示
している。このネツトワークは上述の論文「ホツト・ス
ポツト競合及び多段相互接続ネツトワーク中での組合
せ」に述べられている種類の相互接続ネツトワーク組織
である。ここでネツトワーク1はたとえば低待ち時間ネ
ツトワークであり、ネツトワーク2はたとえばかなりよ
り複雑な組合せネツトワークである。
サPo−Pnを個々のメモリ・モジユールMo−Mnに選択的に
接続するための2つの可能な相互接続ネツトワークを示
している。このネツトワークは上述の論文「ホツト・ス
ポツト競合及び多段相互接続ネツトワーク中での組合
せ」に述べられている種類の相互接続ネツトワーク組織
である。ここでネツトワーク1はたとえば低待ち時間ネ
ツトワークであり、ネツトワーク2はたとえばかなりよ
り複雑な組合せネツトワークである。
第3図のブロック図は個々のメモリ・アクセスがネツト
ワーク1を経て行われるか、ネツトワーク2を経て行わ
れるかについての判断を行う機構について具体的に示し
ていない。このネツトワーク図全体は従来技術のネツト
ワークもしくは本発明に等しく適用されるものである。
本発明の著しい特徴は勿論、メツセージをネツトワーク
1もしくはネツトワーク2のいずれに転向させるかの判
断がある予じめ定められた、一定のスタチツクなベース
(たとえばコンパイラ中で実行されるソフトウエア方
法)でなくダイナミツクに行われる特定のアーキテクチ
ユアにある。本発明はネツトワークの経路指定をシステ
ム中で見られる具体的な問題のダイナミツクな要因に基
づいて行うダイナミツクな相互接続ネツトワーク管理ア
ーキテクチユアを与える。上述のように、単にホツト・
スポツト検出サイクルのための時間の枠、ホツト・スポ
ツトの参照閾値もしくはホツト・スポツト索引バツフア
及びホツト・スポツト検出装置のアドレス・バツフアの
実際の寸法を変ることによつてスイツチング閾値の数を
変更することは比較的容易である。
ワーク1を経て行われるか、ネツトワーク2を経て行わ
れるかについての判断を行う機構について具体的に示し
ていない。このネツトワーク図全体は従来技術のネツト
ワークもしくは本発明に等しく適用されるものである。
本発明の著しい特徴は勿論、メツセージをネツトワーク
1もしくはネツトワーク2のいずれに転向させるかの判
断がある予じめ定められた、一定のスタチツクなベース
(たとえばコンパイラ中で実行されるソフトウエア方
法)でなくダイナミツクに行われる特定のアーキテクチ
ユアにある。本発明はネツトワークの経路指定をシステ
ム中で見られる具体的な問題のダイナミツクな要因に基
づいて行うダイナミツクな相互接続ネツトワーク管理ア
ーキテクチユアを与える。上述のように、単にホツト・
スポツト検出サイクルのための時間の枠、ホツト・スポ
ツトの参照閾値もしくはホツト・スポツト索引バツフア
及びホツト・スポツト検出装置のアドレス・バツフアの
実際の寸法を変ることによつてスイツチング閾値の数を
変更することは比較的容易である。
本発明の相互接続ネツトワーク管理アーキテクチユアの
組織全体を第1図に示す。第1図には本発明の3つの主
要基本機能ユニツトが明確に示されている。これ等のユ
ニツトは転向装置10、ホツト・スポツト検出装置12及び
ホツト・スポツト通知装置即ち通知バス14である。夫々
低待ち時間ネツトワーク及び組合せネツトワークである
2つのネツトワーク16及び18が概略的に示されている
が、これ等のネツトワークの機能は転向装置の制御を適
切に変更することによつて容易に逆にできることは明ら
かであろう。n+1個のプロセツサは別個の転向装置10
を有することも明らかであろう。同じくq+1個のメモ
リ・モジユールの各々はそれ自身の専用検出装置12を有
する。勿論すべての検出装置とすべての転向装置を相互
接続するのに単一の通知バスが使用される。同じく、す
べての転向装置及び検出装置は選択的に2つのネツトワ
ーク16及び18に接続可能である。第1図中に示したよう
に、検出装置12の詳細は第4図(a)に、転向装置10の
詳細は第6図(a)に示されている。
組織全体を第1図に示す。第1図には本発明の3つの主
要基本機能ユニツトが明確に示されている。これ等のユ
ニツトは転向装置10、ホツト・スポツト検出装置12及び
ホツト・スポツト通知装置即ち通知バス14である。夫々
低待ち時間ネツトワーク及び組合せネツトワークである
2つのネツトワーク16及び18が概略的に示されている
が、これ等のネツトワークの機能は転向装置の制御を適
切に変更することによつて容易に逆にできることは明ら
かであろう。n+1個のプロセツサは別個の転向装置10
を有することも明らかであろう。同じくq+1個のメモ
リ・モジユールの各々はそれ自身の専用検出装置12を有
する。勿論すべての検出装置とすべての転向装置を相互
接続するのに単一の通知バスが使用される。同じく、す
べての転向装置及び検出装置は選択的に2つのネツトワ
ーク16及び18に接続可能である。第1図中に示したよう
に、検出装置12の詳細は第4図(a)に、転向装置10の
詳細は第6図(a)に示されている。
第1図に関連して、本発明のシステムの動作全体を簡単
に繰返すと、検出装置の機能は、この検出装置によつて
受取られる各新らしいメモリ・アドレスを連続してモニ
タして、このアドレスがホツト・スポツトであるかどう
かを判断する。検出装置中のハードウエアが使用される
基準に従つてホツト・スポツトが存在すると判断する
と、検出装置によってメッセージが通知バスを介してす
べての転向装置に送られ、それ等のホツト・スポツト索
引バツフアが新らしいホツト・スポツト情報で適切に更
新される。情報が転向装置によつて受取られ、ホツト・
スポツト索引バツフアが適切に更新されると、転向装置
の1つが転向装置のための通信装置として働き(それは
転向装置が同じであり、同じ情報を含むからである),
検出装置のすべてに特定のホツト・スポツトが除去され
つつあることが通知される。以下明らかにされるよう
に、この動作は適切な置換アルゴリズムをもとにして行
われ、ホツト・スポツトから除去されつつある特定のア
ドレスは通知バスを介して、そのホツト・スポツトをセ
ツト・アツプした特定の検出装置に戻されて、このホツ
ト・スポツトは検出装置中のホツト・スポツト・メモリ
・アレイから効果的に除去される。明らかに、特定のア
ドレスが関与するので、検出装置の1つだけがこのアド
レスによつて影響を受ける。即ち検出装置はこのアドレ
スによつて指示されたメモリ・ブロックもしくはモジユ
ールを参照する。
に繰返すと、検出装置の機能は、この検出装置によつて
受取られる各新らしいメモリ・アドレスを連続してモニ
タして、このアドレスがホツト・スポツトであるかどう
かを判断する。検出装置中のハードウエアが使用される
基準に従つてホツト・スポツトが存在すると判断する
と、検出装置によってメッセージが通知バスを介してす
べての転向装置に送られ、それ等のホツト・スポツト索
引バツフアが新らしいホツト・スポツト情報で適切に更
新される。情報が転向装置によつて受取られ、ホツト・
スポツト索引バツフアが適切に更新されると、転向装置
の1つが転向装置のための通信装置として働き(それは
転向装置が同じであり、同じ情報を含むからである),
検出装置のすべてに特定のホツト・スポツトが除去され
つつあることが通知される。以下明らかにされるよう
に、この動作は適切な置換アルゴリズムをもとにして行
われ、ホツト・スポツトから除去されつつある特定のア
ドレスは通知バスを介して、そのホツト・スポツトをセ
ツト・アツプした特定の検出装置に戻されて、このホツ
ト・スポツトは検出装置中のホツト・スポツト・メモリ
・アレイから効果的に除去される。明らかに、特定のア
ドレスが関与するので、検出装置の1つだけがこのアド
レスによつて影響を受ける。即ち検出装置はこのアドレ
スによつて指示されたメモリ・ブロックもしくはモジユ
ールを参照する。
第4表(A)は、第1図に示した検出装置12の1つの中
間レベルの機能ブロツク図である。すべての検出装置は
ハードウエアの構成要素に関しては、同じであるが、勿
論データの内容については異なっている。検出装置の主
要機能素子は、アドレス比較ブロック20、ホツト・スポ
ツト・アドレス・メモリ22、閾値カウント比較ブロック
24及びホツト・スポツト・アドレス・メモリの位置のす
べてを、状態H=1(ホツト・スポツトである)及びC
=0(通知未完了)を求めて周期的に走査する比較ブロ
ック26である。ブロック20、24及び26によつて遂行され
る比較機能のすべてはホツト・スポツト・アドレス・メ
モリ22の内容に関して遂行されることは明らかであろ
う。
間レベルの機能ブロツク図である。すべての検出装置は
ハードウエアの構成要素に関しては、同じであるが、勿
論データの内容については異なっている。検出装置の主
要機能素子は、アドレス比較ブロック20、ホツト・スポ
ツト・アドレス・メモリ22、閾値カウント比較ブロック
24及びホツト・スポツト・アドレス・メモリの位置のす
べてを、状態H=1(ホツト・スポツトである)及びC
=0(通知未完了)を求めて周期的に走査する比較ブロ
ック26である。ブロック20、24及び26によつて遂行され
る比較機能のすべてはホツト・スポツト・アドレス・メ
モリ22の内容に関して遂行されることは明らかであろ
う。
第4図(A)では遂行される機能及びこれ等の機能素子
の各々が関連するホツト・スポツト・アドレス・メモリ
の一般的領域に従つてデータ線及び制御線だけが示され
ている。従つて、アドレス比較ブロック20は現在受取っ
たアドレスをホツト・スポツト・アドレス・メモリの内
容全体と比較し、従つてこのような連想メモリ中のメモ
リ・アドレスを調べる働きを有する。
の各々が関連するホツト・スポツト・アドレス・メモリ
の一般的領域に従つてデータ線及び制御線だけが示され
ている。従つて、アドレス比較ブロック20は現在受取っ
たアドレスをホツト・スポツト・アドレス・メモリの内
容全体と比較し、従つてこのような連想メモリ中のメモ
リ・アドレスを調べる働きを有する。
アドレス比較ブロック20中で成功裡に一致がみられる
と、閾値カウント比較ブロック24はカウント(CT)フイ
ールドを調べて、ホツト・スポツト閾値に到達したかど
うかを判断する。ブロック20と24間の破線は、以下明ら
かにされるようにホツト・スポツト・アドレス・メモリ
中でアドレスが一致した時にブロック24が動作されるだ
けであることを示している。明らかに、特定の比較に使
用される実際の閾値は固定され、システム設計者によつ
て決定されるが、他方ブロック20中で比較される特定の
アドレスはメモリMj内で要求されつつある現在のアドレ
スに従つて異なつている。
と、閾値カウント比較ブロック24はカウント(CT)フイ
ールドを調べて、ホツト・スポツト閾値に到達したかど
うかを判断する。ブロック20と24間の破線は、以下明ら
かにされるようにホツト・スポツト・アドレス・メモリ
中でアドレスが一致した時にブロック24が動作されるだ
けであることを示している。明らかに、特定の比較に使
用される実際の閾値は固定され、システム設計者によつ
て決定されるが、他方ブロック20中で比較される特定の
アドレスはメモリMj内で要求されつつある現在のアドレ
スに従つて異なつている。
他方、ブロック26はそれ自身の別個のシステム・クロツ
クの下に動作し、以下説明するように条件H=1、C=
0を求めてホツト・スポツト・アドレス・メモリのH及
びCフイールドを連続的に走査する。ホツト・スポツト
・アドレス・メモリがすべてのフイールドにわたつて完
全に連想式であると仮想すると、この走査動作も連想ベ
ースで行われ、探索規準が満足された時に、ホツト・ス
ポツト・アドレスを含むホツト・スポツト・アドレス・
メモリ中の特定の行がアクセスされ、アドレス・メモリ
から読出されて、通知バス上に置かれる。
クの下に動作し、以下説明するように条件H=1、C=
0を求めてホツト・スポツト・アドレス・メモリのH及
びCフイールドを連続的に走査する。ホツト・スポツト
・アドレス・メモリがすべてのフイールドにわたつて完
全に連想式であると仮想すると、この走査動作も連想ベ
ースで行われ、探索規準が満足された時に、ホツト・ス
ポツト・アドレスを含むホツト・スポツト・アドレス・
メモリ中の特定の行がアクセスされ、アドレス・メモリ
から読出されて、通知バス上に置かれる。
ホツト・スポツト・アドレス・メモリのための特定の引
数、及びアドレス・バツフアは図示されていないが、そ
れはこのようなメモリは良く知られていて、多くの形態
をなすことができるからである。同じくブロック20、24
及び26のための特定のゲート回路及びレジスタは示され
ていないが、それはこれ等の機能を具体化するためのハ
ードウエア回路がコンピユータ・システムの設計者にと
つて明らかであり、詳細の細かいレベルを示すことは本
発明の説明を混乱させるからである。
数、及びアドレス・バツフアは図示されていないが、そ
れはこのようなメモリは良く知られていて、多くの形態
をなすことができるからである。同じくブロック20、24
及び26のための特定のゲート回路及びレジスタは示され
ていないが、それはこれ等の機能を具体化するためのハ
ードウエア回路がコンピユータ・システムの設計者にと
つて明らかであり、詳細の細かいレベルを示すことは本
発明の説明を混乱させるからである。
第4図(A)のハードウエアの動作を適切に順序付ける
のに使用される制御機構は、代表的には関連するデコー
ダ及び論理回路を有する1もしくはそれ以上の読取り専
用のメモリであり、これ等は以下説明する第4図
(B)、(C)及び(D)の流れ図を参照して容易に設
計できるであろう。
のに使用される制御機構は、代表的には関連するデコー
ダ及び論理回路を有する1もしくはそれ以上の読取り専
用のメモリであり、これ等は以下説明する第4図
(B)、(C)及び(D)の流れ図を参照して容易に設
計できるであろう。
第1表は本発明とともに使用するに適した代表的なホツ
ト・スポツト・アドレス・メモリの代表的な様式を示
す。
ト・スポツト・アドレス・メモリの代表的な様式を示
す。
ホツト・スポツト・アドレス・メモリへの各アクセスは
アドレス・フイールド中に記憶されているアドレスによ
つて決定される。フイールドには他に参照カウント、ホ
ツト・スポツト・フイールド(H)及び通信完了フイー
ルド(C)がある。任意選択事項として示された時間の
刻印フイールドも示されている。このフイールドのため
の機能的制御素子は示されていないが、それはシステム
の設計者がこの機能を含ませることが任意であるからで
ある。すべての時間の刻印の現在のセツト値をある現在
の値と比較する機能は簡単である。もしホツト・スポツ
ト・アドレス・メモリ中の特定の項目がある予定の期間
内にインクレメントされなかつた場合には、その参照カ
ウントは0にリセツトされる。
アドレス・フイールド中に記憶されているアドレスによ
つて決定される。フイールドには他に参照カウント、ホ
ツト・スポツト・フイールド(H)及び通信完了フイー
ルド(C)がある。任意選択事項として示された時間の
刻印フイールドも示されている。このフイールドのため
の機能的制御素子は示されていないが、それはシステム
の設計者がこの機能を含ませることが任意であるからで
ある。すべての時間の刻印の現在のセツト値をある現在
の値と比較する機能は簡単である。もしホツト・スポツ
ト・アドレス・メモリ中の特定の項目がある予定の期間
内にインクレメントされなかつた場合には、その参照カ
ウントは0にリセツトされる。
従つて参照カウントがかなり長い期間ホツト・ストツポ
ツト・ステータスに到達しないと、このことはある情況
の下ではシステムのパホーマンスを改良する。それは現
在活性化されているホツト・スポツトだけが転向装置の
ホツト・スポツト・リスト中に置かれるからである。
ツト・ステータスに到達しないと、このことはある情況
の下ではシステムのパホーマンスを改良する。それは現
在活性化されているホツト・スポツトだけが転向装置の
ホツト・スポツト・リスト中に置かれるからである。
時刻の刻印は、新らしいアドレスのための余地を作るた
めに特定のホツト・スポツト・アドレスを除去しなけれ
ばならない時に使用する追加の規準として、検出装置の
置換アルゴリズムによつても使用される。このアドレス
・メモリ内のアドレス・フイールドはメモリのアドレス
を識別するのに必要な程大きい。参照カウントはこのカ
ウンタをリセツトする前に遭遇する最高のカウントの大
きさを表わすために、システムの設計者がみて必要とさ
れるだけのビツト数を有する。時間の刻印は、参照カウ
ントと同じく、システムの時間クロツクの現在の設定値
を表わすのに必要なだけ多くのビツトを有する。ホツト
・スポツト・フイールド(H)及び通知完了フイールド
(C)は勿論現在の実施例では1ビツトだけでよい。
めに特定のホツト・スポツト・アドレスを除去しなけれ
ばならない時に使用する追加の規準として、検出装置の
置換アルゴリズムによつても使用される。このアドレス
・メモリ内のアドレス・フイールドはメモリのアドレス
を識別するのに必要な程大きい。参照カウントはこのカ
ウンタをリセツトする前に遭遇する最高のカウントの大
きさを表わすために、システムの設計者がみて必要とさ
れるだけのビツト数を有する。時間の刻印は、参照カウ
ントと同じく、システムの時間クロツクの現在の設定値
を表わすのに必要なだけ多くのビツトを有する。ホツト
・スポツト・フイールド(H)及び通知完了フイールド
(C)は勿論現在の実施例では1ビツトだけでよい。
第4図(B)はアドレスが特定のメモリ・モジユールに
提示される通常のメモリ・アドレス手順内に生じる動作
の流れ図を示す。アドレスは先ず検出装置、具体的には
適切なレジスタ中に現在のメモリ・アドレスを記憶する
機能ブロック20に渡され、次にこの要求がメモリに渡さ
れなくてはならない。この動作はブロック10中で生じ
る。ブロック12において、現在のアドレスが現在ホツト
・スポツト・メモリ22中にある任意のアドレスと一致す
るかどうかについての判断が行われる。この機能は比較
ブロック20中において遂行され、連想ホツト・スポツト
・アドレス・メモリ22中のすべての項目に対してアドレ
ス引数を順次照合しなくてはならない。もし一致が見出
されると、手順はブロック14に続く。もし一致が見出さ
れないと、手順はブロック22へと分岐する。
提示される通常のメモリ・アドレス手順内に生じる動作
の流れ図を示す。アドレスは先ず検出装置、具体的には
適切なレジスタ中に現在のメモリ・アドレスを記憶する
機能ブロック20に渡され、次にこの要求がメモリに渡さ
れなくてはならない。この動作はブロック10中で生じ
る。ブロック12において、現在のアドレスが現在ホツト
・スポツト・メモリ22中にある任意のアドレスと一致す
るかどうかについての判断が行われる。この機能は比較
ブロック20中において遂行され、連想ホツト・スポツト
・アドレス・メモリ22中のすべての項目に対してアドレ
ス引数を順次照合しなくてはならない。もし一致が見出
されると、手順はブロック14に続く。もし一致が見出さ
れないと、手順はブロック22へと分岐する。
一致が見出されたものとすると、ブロック14はホツト・
スポツト・アドレス・メモリ中の一致したアドレスに関
連する参照カウント(CT)がインクレメントされ、手順
はブロック16に続く。ブロック16中で、現在の参照カウ
ントの大きさが比較ブロック24中で閾値と比較され、ホ
ツト・スポツトの閾値にまだ達していないかどうかが判
断される。もし達していなければ、この手順は完了し、
さらに何も行われる必要はない。もし参照カウントが閾
値よりも大きいと、シーケンスは現在のホツト・スポツ
トHのセツト値が1に等しいかどうかを判断するブロッ
ク18に進む。H=1はこの特定のアドレスが既に指定さ
れているホツト・スポツトであることを意味しているの
で、これ以上動作は行われず、この手順はYESの出力線
を介して終了する。もしHフイールドが現在1に等しく
なければ、手順は適切なHフイールドを1にセツトし、
通知完了フイールド(C)が0にセツトされていること
を確めるブロック20に続く。これ等の動作が完了する
と、手順は終了する。
スポツト・アドレス・メモリ中の一致したアドレスに関
連する参照カウント(CT)がインクレメントされ、手順
はブロック16に続く。ブロック16中で、現在の参照カウ
ントの大きさが比較ブロック24中で閾値と比較され、ホ
ツト・スポツトの閾値にまだ達していないかどうかが判
断される。もし達していなければ、この手順は完了し、
さらに何も行われる必要はない。もし参照カウントが閾
値よりも大きいと、シーケンスは現在のホツト・スポツ
トHのセツト値が1に等しいかどうかを判断するブロッ
ク18に進む。H=1はこの特定のアドレスが既に指定さ
れているホツト・スポツトであることを意味しているの
で、これ以上動作は行われず、この手順はYESの出力線
を介して終了する。もしHフイールドが現在1に等しく
なければ、手順は適切なHフイールドを1にセツトし、
通知完了フイールド(C)が0にセツトされていること
を確めるブロック20に続く。これ等の動作が完了する
と、手順は終了する。
ブロック12中のテストでブロック22への分岐が生じたも
のと仮定すると、このことは新らしいアドレスがホツト
・スポツト・アドレス・メモリ中に入力されなければな
らないことを意味する。ブロック22によつて置換手順が
開始され、これによつてホツト・スポツト・アドレス・
メモリ中の現在使用中の行の1つが除去され、新らしい
アドレスによつて置換される。任意の適切な置換アルゴ
リズムはこの動作に使用できる。たとえば置換の基準と
しては、最も古く使用されたもの、参照カウントが一番
小さいもの等が含まれる。このような置換アドレスはこ
の分野で一般に知られているので詳細には説明しない。
又本発明の概念全体は使用される特定の置換アルゴリズ
ムによつて制限されることはない。
のと仮定すると、このことは新らしいアドレスがホツト
・スポツト・アドレス・メモリ中に入力されなければな
らないことを意味する。ブロック22によつて置換手順が
開始され、これによつてホツト・スポツト・アドレス・
メモリ中の現在使用中の行の1つが除去され、新らしい
アドレスによつて置換される。任意の適切な置換アルゴ
リズムはこの動作に使用できる。たとえば置換の基準と
しては、最も古く使用されたもの、参照カウントが一番
小さいもの等が含まれる。このような置換アドレスはこ
の分野で一般に知られているので詳細には説明しない。
又本発明の概念全体は使用される特定の置換アルゴリズ
ムによつて制限されることはない。
ホツト・スポツト・アドレス・メモリ中にスロツトが見
出されると、ブロック24中でシステムの制御装置がアド
レスを記入し、参照カウント・フイールドCTを0にセツ
トし、H及びCフイールドを0にセツトし、時間の刻印
を(使用する時は)システム・クロツクの現在のセツト
値にセツトする。ここでアクセスが手順が終了する。
出されると、ブロック24中でシステムの制御装置がアド
レスを記入し、参照カウント・フイールドCTを0にセツ
トし、H及びCフイールドを0にセツトし、時間の刻印
を(使用する時は)システム・クロツクの現在のセツト
値にセツトする。ここでアクセスが手順が終了する。
第4図(B)の手順は、第4図(C)の実際のホツト・
スポツト走査手順及び第4図(D)の終了手順とは独立
して動作することは明らかであろう。要約すると、第4
図(B)の手順は要求されたアドレスのレコードを保持
し、アドレスがどの程度しばしば要求されて、ホツト・
スポツトになつたかを判断することによつて、メモリ・
アクセスもしくはホツト・スポツトの統計的データを保
持する。
スポツト走査手順及び第4図(D)の終了手順とは独立
して動作することは明らかであろう。要約すると、第4
図(B)の手順は要求されたアドレスのレコードを保持
し、アドレスがどの程度しばしば要求されて、ホツト・
スポツトになつたかを判断することによつて、メモリ・
アクセスもしくはホツト・スポツトの統計的データを保
持する。
この統計的データがどのようにして転向装置に通知する
のに使用されるかは、第4図(C)のホツト・スポツト
走査手順に示されている。ブロック10はこの手順の開始
を暗に示し、この手順が各メモリ・サイクル毎に生ずる
ことが記されている。この手順は実際にはメモリ・アク
セス手順と独立に行われるが、その動作はホツト・スポ
ツト・アドレス・メモリを連続して走査し、Hフイール
ド及びCフイールドを調べるので、この引数は基本的な
連想探索に加える方が便利である。しかしながら、アド
レスの突合せがホツト・スポツト・アドレス・メモリの
アクセス手順の連続性と干渉せず、H及びCフイールド
の突合せがメモリ・アクセス手順と独立してホツト・ス
ポツト走査手順が連続して行われるように制御方法が設
定される。しかしながら、機能的には走査手順は別個の
クロツクによつて駆動できるが、走査はメモリ・アクセ
ス手順が実効のない時に行わなければならない。しかし
ながらこの独立性はシステム設計者の設計の選択事項で
あり、本発明の原理に著しい影響を与えるものではな
い。
のに使用されるかは、第4図(C)のホツト・スポツト
走査手順に示されている。ブロック10はこの手順の開始
を暗に示し、この手順が各メモリ・サイクル毎に生ずる
ことが記されている。この手順は実際にはメモリ・アク
セス手順と独立に行われるが、その動作はホツト・スポ
ツト・アドレス・メモリを連続して走査し、Hフイール
ド及びCフイールドを調べるので、この引数は基本的な
連想探索に加える方が便利である。しかしながら、アド
レスの突合せがホツト・スポツト・アドレス・メモリの
アクセス手順の連続性と干渉せず、H及びCフイールド
の突合せがメモリ・アクセス手順と独立してホツト・ス
ポツト走査手順が連続して行われるように制御方法が設
定される。しかしながら、機能的には走査手順は別個の
クロツクによつて駆動できるが、走査はメモリ・アクセ
ス手順が実効のない時に行わなければならない。しかし
ながらこの独立性はシステム設計者の設計の選択事項で
あり、本発明の原理に著しい影響を与えるものではな
い。
第4図(C)の説明を続ける。手順はブロック10で開始
している。最初の動作はブロック12で開始され、ここで
第4図(A)の比較装置26がフイールドH=1及びC=
0を有する最初の項目を求めて連想メモリを走査する。
している。最初の動作はブロック12で開始され、ここで
第4図(A)の比較装置26がフイールドH=1及びC=
0を有する最初の項目を求めて連想メモリを走査する。
ブロック12中で探索動作が完了し、最初の検出された
が、未通知のホツト・スポツトが見付かると、手順はブ
ロック14に続く。ブロック14で、通知機能が通知バス上
に開始され、新らしく検出されたホツト・スポツト・ア
ドレスが次の利用可能なバス・サイクルですべての転向
装置に転送される。この時点で、ホツト・スポツト走査
手順は待機状態に進み、特定の転向装置から返答が受取
られる迄この状態に留まる。この特定の転向装置は、ホ
ツト・スポツト索引バツフアから取除かれた特定のホツ
ト・スポツトについてすべての検出装置に通知するよう
に指定されたものである。この転向装置は通知バスを介
して新らしいホツト・スポツト・アドレスを送つた検出
装置に返答を送る。この返答はホツト・スポツト走査手
順のブロック16中で受取られ、新らしいホツト・スポツ
トのアドレスのCフイールドを1にセツトする。このこ
とは新らしいホツト・スポツトのための通知機能が完了
したことを意味する。通気機能の終了の結果、遂行され
なければならない他の機能は第4図(D)に示されてい
るが、この機能は検出装置のすべてに送られて影響を与
える。
が、未通知のホツト・スポツトが見付かると、手順はブ
ロック14に続く。ブロック14で、通知機能が通知バス上
に開始され、新らしく検出されたホツト・スポツト・ア
ドレスが次の利用可能なバス・サイクルですべての転向
装置に転送される。この時点で、ホツト・スポツト走査
手順は待機状態に進み、特定の転向装置から返答が受取
られる迄この状態に留まる。この特定の転向装置は、ホ
ツト・スポツト索引バツフアから取除かれた特定のホツ
ト・スポツトについてすべての検出装置に通知するよう
に指定されたものである。この転向装置は通知バスを介
して新らしいホツト・スポツト・アドレスを送つた検出
装置に返答を送る。この返答はホツト・スポツト走査手
順のブロック16中で受取られ、新らしいホツト・スポツ
トのアドレスのCフイールドを1にセツトする。このこ
とは新らしいホツト・スポツトのための通知機能が完了
したことを意味する。通気機能の終了の結果、遂行され
なければならない他の機能は第4図(D)に示されてい
るが、この機能は検出装置のすべてに送られて影響を与
える。
第4図(E)の“終了手順”は終了メツセージが通知機
能、具体的には通知用転向装置から受取られた時に呼出
される。このシーケーシスはブロック10で開始されるも
のとして示されている。再び第4図(A)を参照する
に、終了メツセージは図の通知バスの下の線を介して受
取られるものとして示されている。終了メツセージによ
つて、検出装置は終了メツセージを介して受取つたアド
レスをホツト・スポツト・アドレス・メモリのすべての
項目と一致を求めてチエツクする。一致が見出されない
と、手順はブロック12の終りで終了する。もし一致が見
出されると、手順はブロック14に進み、この特定のアド
レスのCフイールド及びHフイールドが0にセツトされ
る。この動作は現在ホツト・スポツトであつた特定のア
ドレスを効果的に除去する。もしアドレスがホツト・ス
ポツト・アドレス・メモリ中に見出されない時は、この
ことは新らしいアドレスがシステムに動作された時に検
出装置自身の置換アルゴリズムによつてこのアドレスが
除去されていたことを意味する。逆にアドレスが依然存
在する時は、システムはホツト・スポツトがより最新の
ホツト・スポツトによつて置換されたために、このアド
レスがもはやホツト・スポツトとして指定されていない
ことを知らなければならない。この状態がホツト・スポ
ツトとして再確立されるためには、予定のホツト・スポ
ツト閾値に達する迄に所定の回数のアクセスがなされな
くてはならない。
能、具体的には通知用転向装置から受取られた時に呼出
される。このシーケーシスはブロック10で開始されるも
のとして示されている。再び第4図(A)を参照する
に、終了メツセージは図の通知バスの下の線を介して受
取られるものとして示されている。終了メツセージによ
つて、検出装置は終了メツセージを介して受取つたアド
レスをホツト・スポツト・アドレス・メモリのすべての
項目と一致を求めてチエツクする。一致が見出されない
と、手順はブロック12の終りで終了する。もし一致が見
出されると、手順はブロック14に進み、この特定のアド
レスのCフイールド及びHフイールドが0にセツトされ
る。この動作は現在ホツト・スポツトであつた特定のア
ドレスを効果的に除去する。もしアドレスがホツト・ス
ポツト・アドレス・メモリ中に見出されない時は、この
ことは新らしいアドレスがシステムに動作された時に検
出装置自身の置換アルゴリズムによつてこのアドレスが
除去されていたことを意味する。逆にアドレスが依然存
在する時は、システムはホツト・スポツトがより最新の
ホツト・スポツトによつて置換されたために、このアド
レスがもはやホツト・スポツトとして指定されていない
ことを知らなければならない。この状態がホツト・スポ
ツトとして再確立されるためには、予定のホツト・スポ
ツト閾値に達する迄に所定の回数のアクセスがなされな
くてはならない。
第5図(A)を参照すると、通知バスの極めて高レベル
の組織図が示されている。バスはn+1個のプロセツサ
Pの各々に関連するn+1個の転向装置のすべてに、又
q+1個のメモリ・モジユールMの各々に関連するq+
1個の検出装置のすべてに接続されている。バスは検出
装置から転向装置へアドレス及び簡単な制御フイールド
を転送するだけでよい単なる両方向バスである。勿論、
アドレスはシステムによつて指定されつつある新らしい
ホツト・スポツトを指定し、逆に指定された転向装置か
らすべての検出装置に転送されるアドレスは、特定のホ
ツト・スポツト・アドレスがすべてのホツト・スポツト
索引バツフアから除去されたことを示す。メツセージ、
たとえば、アドレスはすべての検出装置に与えられる
が、このアドレスを含むメモリ・モジユールに関連する
特定の検出装置だけがこのメツセージに応答する(メツ
セージによつて影響がある)。上述のように、通知バス
のアーキテクチユアはトークン・リング・ラウンド・ロ
ビン等を含む多くの可能な様式をなすことができる。通
知バスの唯一つの条件は、検出装置がある規則正しい組
織化されたベースでバスにアクセスでき、長い期間にわ
たつてホツト・スポツトがマークされないようなことが
ないことである。バスのアーキテクチユアにとつては、
又、バス・サイクル全体にわたつて、新らしいホツト・
スポツト通知に応答しなければならない特定の転向装置
特定が新らしいホツト・スポツト・メツセージの転送に
直ちに続くサイクル中にバスにアクセスできることが必
要である。明らかに、この機構は転向装置のアーキテク
チユアに結合されなければならない。
の組織図が示されている。バスはn+1個のプロセツサ
Pの各々に関連するn+1個の転向装置のすべてに、又
q+1個のメモリ・モジユールMの各々に関連するq+
1個の検出装置のすべてに接続されている。バスは検出
装置から転向装置へアドレス及び簡単な制御フイールド
を転送するだけでよい単なる両方向バスである。勿論、
アドレスはシステムによつて指定されつつある新らしい
ホツト・スポツトを指定し、逆に指定された転向装置か
らすべての検出装置に転送されるアドレスは、特定のホ
ツト・スポツト・アドレスがすべてのホツト・スポツト
索引バツフアから除去されたことを示す。メツセージ、
たとえば、アドレスはすべての検出装置に与えられる
が、このアドレスを含むメモリ・モジユールに関連する
特定の検出装置だけがこのメツセージに応答する(メツ
セージによつて影響がある)。上述のように、通知バス
のアーキテクチユアはトークン・リング・ラウンド・ロ
ビン等を含む多くの可能な様式をなすことができる。通
知バスの唯一つの条件は、検出装置がある規則正しい組
織化されたベースでバスにアクセスでき、長い期間にわ
たつてホツト・スポツトがマークされないようなことが
ないことである。バスのアーキテクチユアにとつては、
又、バス・サイクル全体にわたつて、新らしいホツト・
スポツト通知に応答しなければならない特定の転向装置
特定が新らしいホツト・スポツト・メツセージの転送に
直ちに続くサイクル中にバスにアクセスできることが必
要である。明らかに、この機構は転向装置のアーキテク
チユアに結合されなければならない。
第5図(B)は上述のことを繰返した極めて簡単な流れ
図である。この流れ図は通知バス手順と記され、唯2つ
のブロック10及び12より成る。ブロック10中に示された
とおり、一度ホツト・スポツトが検出装置の1つの中に
見出されると、検出装置は予定のベースで通知バスの制
御を行い、新らしいホツト・スポツト・アドレスをすべ
ての転向装置に送らなければならない。
図である。この流れ図は通知バス手順と記され、唯2つ
のブロック10及び12より成る。ブロック10中に示された
とおり、一度ホツト・スポツトが検出装置の1つの中に
見出されると、検出装置は予定のベースで通知バスの制
御を行い、新らしいホツト・スポツト・アドレスをすべ
ての転向装置に送らなければならない。
この送信がなされると、直ぐ次のバス・サイクルで指定
された転向装置は、現在のホツト・スポツト・アドレス
がシステムから削除されつつある特定の検出装置に確認
のメツセージを戻さなければならない。検出装置の動作
のこれ迄の説明から明らかなように、ホツト・スポツト
はそのH及びCフイールドを0にリセツトすることによ
つて効果的に除去される(ブロック12)。勿論、この動
作はこのアドレスが特定の検出装置のホツト・スポツト
・アドレス・メモリ中に依然あることを仮定している。
もしこのアドレスが局所的な置換動作によつてすでに除
去されていると、さらに何も行う必要はない。これによ
つて通知バスの動作及び機能が完了する。
された転向装置は、現在のホツト・スポツト・アドレス
がシステムから削除されつつある特定の検出装置に確認
のメツセージを戻さなければならない。検出装置の動作
のこれ迄の説明から明らかなように、ホツト・スポツト
はそのH及びCフイールドを0にリセツトすることによ
つて効果的に除去される(ブロック12)。勿論、この動
作はこのアドレスが特定の検出装置のホツト・スポツト
・アドレス・メモリ中に依然あることを仮定している。
もしこのアドレスが局所的な置換動作によつてすでに除
去されていると、さらに何も行う必要はない。これによ
つて通知バスの動作及び機能が完了する。
次に第6図(A)乃至第6図(D)及び第2表を参照し
て個々の転向装置の動作について説明する。先ず第6図
(A)を参照すると、転向装置のための中間レベルの機
能ブロック図が示されている。第4図(A)の場合と同
じように、種々のアドレス及び種々のデータ項目を、た
とえばホツト・スポツト索引バツフア(HSLB)、ホツト
・スポツト・アドレス比較ブロック等及び種々のレジス
タからゲートする制御信号を転送するための制御回路の
詳細は示す必要はないであろう。このような詳細な部分
は第6図(A)のブロック図全体及び第6図(B)乃至
(D)の流れ図から容易に想倒されるであろう。
て個々の転向装置の動作について説明する。先ず第6図
(A)を参照すると、転向装置のための中間レベルの機
能ブロック図が示されている。第4図(A)の場合と同
じように、種々のアドレス及び種々のデータ項目を、た
とえばホツト・スポツト索引バツフア(HSLB)、ホツト
・スポツト・アドレス比較ブロック等及び種々のレジス
タからゲートする制御信号を転送するための制御回路の
詳細は示す必要はないであろう。このような詳細な部分
は第6図(A)のブロック図全体及び第6図(B)乃至
(D)の流れ図から容易に想倒されるであろう。
一般的に云つて、転向装置の機能はメモリ・システムに
提示されつつある新らしいアドレスが実際にホツト・ス
ポツトであるかどうかを判断し、もしホツト・スポツト
である時には、高競合性のたとえば組合せネツトワーク
上にメモリ・アクセス要求を転向させることである。さ
らにホツト・スポツトが見出された時に、これをホツト
・スポツト索引バツフアに記入し又現在のホツト・スポ
ツトがシステムから除去されたことを示す通知を検出装
置に送る機構が与えられなければならない。さらに一度
新らしいホツト・スポツトが転向装置に入力されると、
関連するプロセツサによるすべての現在のメモリ要求
が、新らしいメモリ要求が許容される前に、完了するこ
とを保証する機構が与えられなければならない。これに
よつて後のメツセージが先のメツセージよりも早くサー
ビスされて、システム・メモリ中で置換されるかプロセ
ツサに戻されるべきデータの順番を狂わせるようなデー
タの非一貫性の可能性が防止される。
提示されつつある新らしいアドレスが実際にホツト・ス
ポツトであるかどうかを判断し、もしホツト・スポツト
である時には、高競合性のたとえば組合せネツトワーク
上にメモリ・アクセス要求を転向させることである。さ
らにホツト・スポツトが見出された時に、これをホツト
・スポツト索引バツフアに記入し又現在のホツト・スポ
ツトがシステムから除去されたことを示す通知を検出装
置に送る機構が与えられなければならない。さらに一度
新らしいホツト・スポツトが転向装置に入力されると、
関連するプロセツサによるすべての現在のメモリ要求
が、新らしいメモリ要求が許容される前に、完了するこ
とを保証する機構が与えられなければならない。これに
よつて後のメツセージが先のメツセージよりも早くサー
ビスされて、システム・メモリ中で置換されるかプロセ
ツサに戻されるべきデータの順番を狂わせるようなデー
タの非一貫性の可能性が防止される。
第6図(A)を参照すると、メツセージ戻りバスが図面
の一番上に示され、メツセージ出力バスが転向装置10の
右側から出ている。明らかに、これ等のバスは両方とも
ネツトワーク1及びネツトワーク2に関連しているが、
両方向性であつてもなくてもよい。ホツト・スポツト・
アドレス比較動作はブロック30中で適切なレジスタによ
つてなられる。ここで現在のアドレスが、上述のように
連想メモリであるホツト・スポツト索引バツフア(HSL
B)32中の引数となり、一致が生じた時には、この一致
を示す信号がスイツチ34を制御して、現在のメモリ・ア
クセスを組合せネツトワーク(NET)2の方に転向させ
る。もし一致が生じなかつた場合には、このことはこの
特定のアドレスがホツト・スポツトとしてまだ決定され
ていないことを示し、スイツチ34はメツセージを低待ち
時間ネツトワーク1上に導く。
の一番上に示され、メツセージ出力バスが転向装置10の
右側から出ている。明らかに、これ等のバスは両方とも
ネツトワーク1及びネツトワーク2に関連しているが、
両方向性であつてもなくてもよい。ホツト・スポツト・
アドレス比較動作はブロック30中で適切なレジスタによ
つてなられる。ここで現在のアドレスが、上述のように
連想メモリであるホツト・スポツト索引バツフア(HSL
B)32中の引数となり、一致が生じた時には、この一致
を示す信号がスイツチ34を制御して、現在のメモリ・ア
クセスを組合せネツトワーク(NET)2の方に転向させ
る。もし一致が生じなかつた場合には、このことはこの
特定のアドレスがホツト・スポツトとしてまだ決定され
ていないことを示し、スイツチ34はメツセージを低待ち
時間ネツトワーク1上に導く。
保持ブロック26はフリツプ・フロツプであり、新らしい
ホツト・スポツトが見出されたことを示す通知が転向装
置によつて受取られると直ちに1にセツトされる。カウ
ンタF38は所与の時間に各特定の転向装置中でアクテイ
ブな未解決のメモリ要求を記録するためのものである。
新らしいメモリ・アドレスが受取られる時にはいつで
も、カウンタF38はインクレメントされ、メツセージが
メツセージ戻りバスを介して戻される時はカウンダF38
はデクレメントされる。このカウンタFは0にセツトさ
れるか、所与の時間にシステム中に累積が許されている
メモリ・アクセスの数に依存するある有限な数にセツト
されることは明らかである。「保持=1の時待機」と記
されているブロック40は、保持ブロック36が現在1にセ
ツトされていると判断された時にはいつでも、プロセツ
サPjにメモリ要求を保留せしめる単なるスイツチもしく
はインターロツクである。この機能はこの分野で良く知
られているものであり、プロセツサがメモリ要求を発生
できるようになる迄、プロセツサに待機を要求するもの
である。又保持ブロック36と関連するシステム制御装置
が与えられていて、保持ブロック36が1にセツトされる
や否や、カウンタFが直ちに質問され、もしカウンタF
が現在0であるならば、保持ブロック36を0にリセツト
し、カウンタFが0の設定値に戻ると直ちに保持ブロッ
ク36は0にリセツトされるようになつている。
ホツト・スポツトが見出されたことを示す通知が転向装
置によつて受取られると直ちに1にセツトされる。カウ
ンタF38は所与の時間に各特定の転向装置中でアクテイ
ブな未解決のメモリ要求を記録するためのものである。
新らしいメモリ・アドレスが受取られる時にはいつで
も、カウンタF38はインクレメントされ、メツセージが
メツセージ戻りバスを介して戻される時はカウンダF38
はデクレメントされる。このカウンタFは0にセツトさ
れるか、所与の時間にシステム中に累積が許されている
メモリ・アクセスの数に依存するある有限な数にセツト
されることは明らかである。「保持=1の時待機」と記
されているブロック40は、保持ブロック36が現在1にセ
ツトされていると判断された時にはいつでも、プロセツ
サPjにメモリ要求を保留せしめる単なるスイツチもしく
はインターロツクである。この機能はこの分野で良く知
られているものであり、プロセツサがメモリ要求を発生
できるようになる迄、プロセツサに待機を要求するもの
である。又保持ブロック36と関連するシステム制御装置
が与えられていて、保持ブロック36が1にセツトされる
や否や、カウンタFが直ちに質問され、もしカウンタF
が現在0であるならば、保持ブロック36を0にリセツト
し、カウンタFが0の設定値に戻ると直ちに保持ブロッ
ク36は0にリセツトされるようになつている。
ホツト・スポツト発見及びホツト・スポツト終了と記さ
れた転向装置10の下側への2入力を参照すると、これ等
の入力は通知バスを介して遂行される2つのメツセージ
機能を示している。転向装置のすべてはホツト・スポツ
ト発見メツセージに応答するが、唯一の指定された転向
装置だけがホツト・スポツト終了メツセージに応答する
だけでよいことは明らかである。
れた転向装置10の下側への2入力を参照すると、これ等
の入力は通知バスを介して遂行される2つのメツセージ
機能を示している。転向装置のすべてはホツト・スポツ
ト発見メツセージに応答するが、唯一の指定された転向
装置だけがホツト・スポツト終了メツセージに応答する
だけでよいことは明らかである。
従つて、要約すると、すべてのプロセツサのすべての転
送装置は基本的な機能ブロック及び所与の時間のホツト
・スポツト索引バツフアの内容に関して略同じである。
個々のカウンタFは異なる値を含んでいる。又通信を行
う転向装置はホツト・スポツト・アドレスがすべての転
向装置のホツト・スポツト索引バツフアから削除されつ
つあることを検出装置に通知する制御シーケンスを持つ
ていなければならない。
送装置は基本的な機能ブロック及び所与の時間のホツト
・スポツト索引バツフアの内容に関して略同じである。
個々のカウンタFは異なる値を含んでいる。又通信を行
う転向装置はホツト・スポツト・アドレスがすべての転
向装置のホツト・スポツト索引バツフアから削除されつ
つあることを検出装置に通知する制御シーケンスを持つ
ていなければならない。
同じく第6図(A)を参照すると、ホツト・スポツト発
見バスはホツト・バス索引バツフア(HSLB)32に接続さ
れていて、置換アルゴリズムによつて空きにされたバツ
フア32中に新らしいホツト・スポツトが記憶されるよう
になつている。同じく通知バスは保持ブロック36を1に
セツトする信号を転送する。
見バスはホツト・バス索引バツフア(HSLB)32に接続さ
れていて、置換アルゴリズムによつて空きにされたバツ
フア32中に新らしいホツト・スポツトが記憶されるよう
になつている。同じく通知バスは保持ブロック36を1に
セツトする信号を転送する。
次に第6図(B)、(C)及び(D)の流れ図を参照し
て、転向装置内の種々の動作に必要な、たとえば適切な
ROM、通常のデコーダ、マルチプレクサ及び他のシーケ
ンス回路によつて制御される動作のシーケンスを説明す
る。
て、転向装置内の種々の動作に必要な、たとえば適切な
ROM、通常のデコーダ、マルチプレクサ及び他のシーケ
ンス回路によつて制御される動作のシーケンスを説明す
る。
次の第2表は個々のホツト・スポツト索引バツフア32の
様式を示す。
様式を示す。
各転送装置の各バツフアは同一であり、又任意の時点で
同一のデータを含む。バツフア中の各項目は所与のホツ
ト・スポツト・アドレス及びホツト・スポツトがシステ
ムに導入された時を示す時間の刻印を含んでいる。時間
の刻印はバツフアの置換アルゴリズムに使用するための
ものであり、新らしいホツト・スポツトが発見された時
にどのホツト・スポツトが除去されるかを判断するのに
使用される。これは簡単な置換アルゴリズムであるが、
もし望まれるならば、他のより複雑なアルゴリズムを使
用できる。勿論どの置換アルゴリズムが使用されるかに
かかわらず、すべての索引バツフア及びすべての転向装
置は同じ置換アルゴリズムを使用して同じアドレスがす
べての素子から除去されることが保証さなければならな
い。
同一のデータを含む。バツフア中の各項目は所与のホツ
ト・スポツト・アドレス及びホツト・スポツトがシステ
ムに導入された時を示す時間の刻印を含んでいる。時間
の刻印はバツフアの置換アルゴリズムに使用するための
ものであり、新らしいホツト・スポツトが発見された時
にどのホツト・スポツトが除去されるかを判断するのに
使用される。これは簡単な置換アルゴリズムであるが、
もし望まれるならば、他のより複雑なアルゴリズムを使
用できる。勿論どの置換アルゴリズムが使用されるかに
かかわらず、すべての索引バツフア及びすべての転向装
置は同じ置換アルゴリズムを使用して同じアドレスがす
べての素子から除去されることが保証さなければならな
い。
第6図(B)の流れ図を参照すると、ホツト・スポツト
(HS)が検出装置の1つによつて発見されて、このこと
が適切なデータ、たとえばホツト・スポツトのアドレス
とともにすべての転向装置に通知される時に生じなけれ
ばならない事象のシーケンスが示されている。ブロック
10内で転向装置内の手順が開始し、ブロック12に進んで
保持ブロック36が1にセツトされる。手順は次にブロッ
ク14に続く。
(HS)が検出装置の1つによつて発見されて、このこと
が適切なデータ、たとえばホツト・スポツトのアドレス
とともにすべての転向装置に通知される時に生じなけれ
ばならない事象のシーケンスが示されている。ブロック
10内で転向装置内の手順が開始し、ブロック12に進んで
保持ブロック36が1にセツトされる。手順は次にブロッ
ク14に続く。
ブロック14中で、各転向装置内の置換アルゴリズムが呼
び出され、上述のようにホツト・スポツト索引バツフア
からどの「現在」のホツト・スポツトが除去されなけれ
ばならないかについての判断がなされる。新らしい項目
が挿入されるホツト・スポツト索引バツフア内の記憶位
置はポインタが指摘する。次に手順はブロック16に続
く。
び出され、上述のようにホツト・スポツト索引バツフア
からどの「現在」のホツト・スポツトが除去されなけれ
ばならないかについての判断がなされる。新らしい項目
が挿入されるホツト・スポツト索引バツフア内の記憶位
置はポインタが指摘する。次に手順はブロック16に続
く。
通知用機能のために選択された1つを除くすべての転向
装置は直接ブロック14からブロック20に進むという意味
で、ブロック16は実際の手順の段階ではない。しかしな
がら通知を行う転向装置はブロック18に導入しなければ
ならない。ここでホツト・スポツト索引バツフア中の除
去される項目のアドレスが通知バツフアを介して検出装
置を介して送られてホツト・スポツト・アドレス・メモ
リが適切に更新される。
装置は直接ブロック14からブロック20に進むという意味
で、ブロック16は実際の手順の段階ではない。しかしな
がら通知を行う転向装置はブロック18に導入しなければ
ならない。ここでホツト・スポツト索引バツフア中の除
去される項目のアドレスが通知バツフアを介して検出装
置を介して送られてホツト・スポツト・アドレス・メモ
リが適切に更新される。
ブロック20中で項目が除去され、ブロック22中で新らし
い項目が挿入される。上述のように実際には、新らしい
項目は単にホツト・スポツト索引バツフアの古い項目上
に重ね書きされるだけである。次にブロック24中で、新
らしい項目のための時間の刻印がセツトされる。再び、
時間の刻印はこれが置換アルゴリズムに使用される場合
にのみセツトれ、従つて時間の刻印フイールドが与えら
れる。
い項目が挿入される。上述のように実際には、新らしい
項目は単にホツト・スポツト索引バツフアの古い項目上
に重ね書きされるだけである。次にブロック24中で、新
らしい項目のための時間の刻印がセツトされる。再び、
時間の刻印はこれが置換アルゴリズムに使用される場合
にのみセツトれ、従つて時間の刻印フイールドが与えら
れる。
ブロック26中では、タイムアウト即ち待機動作が行わ
れ、カウンタFのセツト値が連続的にサンプルされて、
未解決の現在のメモリ要求が存在しないことを意味する
値0にセツトされているかどうかが判断される。カウン
タFが0にデクレメントされている(もしくは新らしい
ホツト・スポツト項目がHSLB中に置かれて0にセツトさ
れた)ことが判ると、手順はブロック28に続く。
れ、カウンタFのセツト値が連続的にサンプルされて、
未解決の現在のメモリ要求が存在しないことを意味する
値0にセツトされているかどうかが判断される。カウン
タFが0にデクレメントされている(もしくは新らしい
ホツト・スポツト項目がHSLB中に置かれて0にセツトさ
れた)ことが判ると、手順はブロック28に続く。
ブロック28で、保持フリツプ・フロツプが0にリセツト
され、特定の転向装置及びこれに関連するプロセツサの
メモリ動作の回復が可能になる。これによつてこの手順
が終了する。
され、特定の転向装置及びこれに関連するプロセツサの
メモリ動作の回復が可能になる。これによつてこの手順
が終了する。
第6図(C)を参照すると、プロセツサからの通常のメ
モリ・アクセスが転向装置によつて遂行されている。ブ
ロック10で保持フリツプ・フロツプ36の間合せが行われ
る。もしこれが1にセツトされている時には、システム
はこれが0にリセツトさる迄待機する。この動作はしば
しば「フエンス」動作と呼ばれる。このような特定の従
来技術の1つの説明は上述の論文「RP3プロセツサ/メ
モリ素子(“The RP3 Processoy/Memory Element")」
の第787頁の第7.3章に見られる。保持フリツプ・フロツ
プが0に等しいと制御装置が判断すると、手順はブロッ
ク12に続く。
モリ・アクセスが転向装置によつて遂行されている。ブ
ロック10で保持フリツプ・フロツプ36の間合せが行われ
る。もしこれが1にセツトされている時には、システム
はこれが0にリセツトさる迄待機する。この動作はしば
しば「フエンス」動作と呼ばれる。このような特定の従
来技術の1つの説明は上述の論文「RP3プロセツサ/メ
モリ素子(“The RP3 Processoy/Memory Element")」
の第787頁の第7.3章に見られる。保持フリツプ・フロツ
プが0に等しいと制御装置が判断すると、手順はブロッ
ク12に続く。
ブロック12で、プロセツサによつて転向装置に提示され
る現在のアドレスがHSLBに対する引数として使用され、
たとえば比較ブロック30内で現在のアドレスがホツト・
スポツトであるかどうかの判断がなされる。ついでなが
ら、HSLBが連想メモリであるアーキテクチユアでは、比
較はHSLB自体の中で行われ、第6図(A)の比較ブロッ
ク30は単なる保持レジスタであることに注意されたい。
もし一致が見出されない時は、手順はブロック16に続
き、メモリ・アクセス要求は低待ち時間ネツトワーク1
を介して送られる。もし一致した時は、手順はブロック
14に続き、スイツチ34はより複雑なネツトワーク2、た
とえば組合せネツトワークを介して要求を送る。ブロッ
ク14もしくは16の段階が完了すると、手順はブロック18
に続く。
る現在のアドレスがHSLBに対する引数として使用され、
たとえば比較ブロック30内で現在のアドレスがホツト・
スポツトであるかどうかの判断がなされる。ついでなが
ら、HSLBが連想メモリであるアーキテクチユアでは、比
較はHSLB自体の中で行われ、第6図(A)の比較ブロッ
ク30は単なる保持レジスタであることに注意されたい。
もし一致が見出されない時は、手順はブロック16に続
き、メモリ・アクセス要求は低待ち時間ネツトワーク1
を介して送られる。もし一致した時は、手順はブロック
14に続き、スイツチ34はより複雑なネツトワーク2、た
とえば組合せネツトワークを介して要求を送る。ブロッ
ク14もしくは16の段階が完了すると、手順はブロック18
に続く。
ブロック18中で、カウンタFが1だけインクレメントさ
れ、上述のようにプロセツサに関連する転向装置からの
現在の未解決の要求数が記録される。
れ、上述のようにプロセツサに関連する転向装置からの
現在の未解決の要求数が記録される。
第6図(D)は1段階の流れ図であり、メモリ・アクセ
ス動作が完了したことを示すメツセージがメモリ・シス
テムから戻される時に、転向装置内で行われる唯一の動
作を示している。たとえば要求がロード要求である時に
は、データに「動作完了」信号が伴い、そうでない時は
この信号だけが戻される。上述のように、カウンタFは
プロセツサからの未解決のメモリ要求のカウントを保持
している。上述の制御及びシーケンスのすべてから見
て、システムにとつて必要なことのすべては、必要なデ
ータの一貫性を保持することであるから、このカウント
は単に統計である。
ス動作が完了したことを示すメツセージがメモリ・シス
テムから戻される時に、転向装置内で行われる唯一の動
作を示している。たとえば要求がロード要求である時に
は、データに「動作完了」信号が伴い、そうでない時は
この信号だけが戻される。上述のように、カウンタFは
プロセツサからの未解決のメモリ要求のカウントを保持
している。上述の制御及びシーケンスのすべてから見
て、システムにとつて必要なことのすべては、必要なデ
ータの一貫性を保持することであるから、このカウント
は単に統計である。
以上で本発明の説明を終る。
F.発明の効果 本発明に従えば、大型共用メモリ・マルチプロセツサ・
システムのための相互接続ネツトワーク管理アーキテク
チユアが与えられる。
システムのための相互接続ネツトワーク管理アーキテク
チユアが与えられる。
第1図はマルチプロセツサ・システムの代表的なプロセ
ツサ及びメモリ・モジユールに関連する。本発明の主要
機能ユニツトを示した高レベルの機能ブロック図であ
る。 第2図は従来の大型マルチプロセツサ・システム、大型
共用主メモリ及び相互接続ネツトワークの組織図であ
る。 第3図は本発明とともに使用される適用した、異なる伝
送特性を有する2つの別個の相互接続ネツトワークを組
込んだマルチプロセツサ・メモリ相互接続システムの組
織図である。 第4図(A)は第1図の各メモリ・モジユールに関連す
る検出装置の1つの機能的概略図である。 第4図(B)は第4図(A)の検出装置で行われるメモ
リ・アクセス手順の流れ図である。 第4図(C)は各検出装置内のホツト・スポツト検出を
遂行するための独立した手順の流れ図である。 第4図(D)は各検出装置内で行われる終了手順の流れ
図である。 第5図(A)は本発明の通知バスの概略図である。 第5図(B)は通知バスのプロトコルを示した流れ図で
ある。 第6図(A)は第1図の転向装置の1つの機能的概略図
である。 第6図(B)は新らしいホツト・スポツトを見出した時
の転向装置中の手順の流れ図である。 第6図(C)はプロセツサから標準のメモリ・アクセス
を受取つた時の、転向装置中の手順の流れ図である。 第6図(D)はメモリ参照が完了した時に、転向装置内
で生ずる動作の、1段階の流れ図である。 10…転向装置、12…検出装置、14…通知装置、16…ネツ
トワーク1、18…ネツトワーク2。
ツサ及びメモリ・モジユールに関連する。本発明の主要
機能ユニツトを示した高レベルの機能ブロック図であ
る。 第2図は従来の大型マルチプロセツサ・システム、大型
共用主メモリ及び相互接続ネツトワークの組織図であ
る。 第3図は本発明とともに使用される適用した、異なる伝
送特性を有する2つの別個の相互接続ネツトワークを組
込んだマルチプロセツサ・メモリ相互接続システムの組
織図である。 第4図(A)は第1図の各メモリ・モジユールに関連す
る検出装置の1つの機能的概略図である。 第4図(B)は第4図(A)の検出装置で行われるメモ
リ・アクセス手順の流れ図である。 第4図(C)は各検出装置内のホツト・スポツト検出を
遂行するための独立した手順の流れ図である。 第4図(D)は各検出装置内で行われる終了手順の流れ
図である。 第5図(A)は本発明の通知バスの概略図である。 第5図(B)は通知バスのプロトコルを示した流れ図で
ある。 第6図(A)は第1図の転向装置の1つの機能的概略図
である。 第6図(B)は新らしいホツト・スポツトを見出した時
の転向装置中の手順の流れ図である。 第6図(C)はプロセツサから標準のメモリ・アクセス
を受取つた時の、転向装置中の手順の流れ図である。 第6図(D)はメモリ参照が完了した時に、転向装置内
で生ずる動作の、1段階の流れ図である。 10…転向装置、12…検出装置、14…通知装置、16…ネツ
トワーク1、18…ネツトワーク2。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 グレゴリイ・フランシス・フイスター アメリカ合衆国ニユーヨーク州ブライアー クリーフ・マナー、プレゼントヴイレ・ロ ード780番地 (72)発明者 バラツト・デイープ・ラチイ アメリカ合衆国ニユーヨーク州マホパツ ク、レイクビユー・ドライブ、シイー・ル ート8 167番地 (56)参考文献 IEEE TRANSACTIONS ON COMPUTERS.C−32〔2〕 (1983−2)P.175−189 IEEE TRANSACTIONS ON COMPUTERS.C−34〔10〕 (1985−10)P.943−948 IEEE TRANSACTIONS ON COMPUTERS.C−32〔12〕 (1983−12)P.1091−1098
Claims (1)
- 【請求項1】複数のプロセツサ、及びメモリ相互接続ネ
ツトワークを介して上記プロセツサの任意のものによつ
て夫々アクセスできる複数の個別にアドレス可能なメモ
リ・モジユールを有する共用メモリ・マルチプロセツサ
・システムにおいて、 (a)競合する可能性が低いメモリ要求が転送される第
1の低待ち時間ネツトワーク及び競合する可能性が高い
メモリ要求が転送される第2のネツトワークより成る、
少なくとも2つの並列な相互接続ネツトワークと、 (b)アクセス基準の予定の頻度に基づいて、特定のア
ドレスがホツト・スポツトとなつた時を検出するため
の、各メモリ・モジユールに接続されたホツト・スポツ
ト検出装置と、 (c)各プロセツサの出力と相互接続ネツトワーク間に
接続されていて、メモリ要求を選択的に上記第1もしく
は第2のネツトワークのいずれかに転送する転向装置
と、 (d)すべての上記転向装置とすべての上記ホツト・ス
ポツト検出装置との間に設けられ、ホツト・スポツトに
遭遇した時にこのことをすべての上記転向装置に通知
し、現在のメモリ要求が現在指示されているホツト・ス
ポツトになされている時には、上記メモリ要求を上記第
2のネツトワーク上に転送させるためのホツト・スポツ
ト通知装置とを有する、 共用メモリ・マルチプロセツサ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/186,327 US4969088A (en) | 1988-04-26 | 1988-04-26 | Hardware mechanism for automatically detecting hot-spot references and diverting same from memory traffic in a multiprocessor computer system |
US186327 | 1994-01-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01298459A JPH01298459A (ja) | 1989-12-01 |
JPH0786861B2 true JPH0786861B2 (ja) | 1995-09-20 |
Family
ID=22684500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1088185A Expired - Lifetime JPH0786861B2 (ja) | 1988-04-26 | 1989-04-10 | 共用メモリ・マルチプロセツサ・システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US4969088A (ja) |
EP (1) | EP0339270B1 (ja) |
JP (1) | JPH0786861B2 (ja) |
CA (1) | CA1311851C (ja) |
DE (1) | DE68921365T2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0625984B2 (ja) * | 1990-02-20 | 1994-04-06 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | マルチプロセツサ・システム |
JP2665813B2 (ja) * | 1990-02-23 | 1997-10-22 | 三菱電機株式会社 | 記憶制御装置 |
US5076364A (en) * | 1990-03-30 | 1991-12-31 | Shell Oil Company | Gas hydrate inhibition |
US5083265A (en) * | 1990-04-17 | 1992-01-21 | President And Fellows Of Harvard College | Bulk-synchronous parallel computer |
US5325510A (en) * | 1990-05-25 | 1994-06-28 | Texas Instruments Incorporated | Multiprocessor system and architecture with a computation system for minimizing duplicate read requests |
US5274782A (en) * | 1990-08-27 | 1993-12-28 | International Business Machines Corporation | Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks |
US5321844A (en) * | 1990-12-20 | 1994-06-14 | Siemens Aktiengesellschaft | Method for error correction of software errors in a communication system |
JP2777496B2 (ja) * | 1991-02-28 | 1998-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法 |
US5386540A (en) * | 1991-09-18 | 1995-01-31 | Ncr Corporation | Method and apparatus for transferring data within a computer using a burst sequence which includes modified bytes and a minimum number of unmodified bytes |
US5442797A (en) * | 1991-12-04 | 1995-08-15 | Casavant; Thomas L. | Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging |
JPH06175914A (ja) * | 1992-09-21 | 1994-06-24 | Eastman Kodak Co | メモリ管理装置 |
US5404464A (en) * | 1993-02-11 | 1995-04-04 | Ast Research, Inc. | Bus control system and method that selectively generate an early address strobe |
JPH08263226A (ja) * | 1995-03-23 | 1996-10-11 | Toshiba Corp | 情報記憶装置 |
US5727167A (en) * | 1995-04-14 | 1998-03-10 | International Business Machines Corporation | Thresholding support in performance monitoring |
US5706467A (en) * | 1995-09-05 | 1998-01-06 | Emc Corporation | Sequential cache management system utilizing the establishment of a microcache and managing the contents of such according to a threshold comparison |
US5761716A (en) * | 1996-05-01 | 1998-06-02 | International Business Machines Corporation | Rate based memory replacement mechanism for replacing cache entries when the cache is full |
JPH10255485A (ja) * | 1997-03-10 | 1998-09-25 | Kawasaki Steel Corp | 連想メモリおよびネットワークフレーム中継器 |
US6785784B1 (en) * | 1997-12-30 | 2004-08-31 | Intel Corporation | Method for protective cache replacement |
US6404752B1 (en) * | 1999-08-27 | 2002-06-11 | International Business Machines Corporation | Network switch using network processor and methods |
US6460120B1 (en) | 1999-08-27 | 2002-10-01 | International Business Machines Corporation | Network processor, memory organization and methods |
US6681387B1 (en) * | 1999-12-01 | 2004-01-20 | Board Of Trustees Of The University Of Illinois | Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit |
GB2374749B (en) * | 2001-04-20 | 2005-04-06 | Discreet Logic Inc | Image data processing |
KR100678926B1 (ko) * | 2006-01-05 | 2007-02-06 | 삼성전자주식회사 | 로그 정보 관리 시스템 및 방법 |
US20070233258A1 (en) * | 2006-02-28 | 2007-10-04 | Zimmer Spine, Inc. | Vertebroplasty- device and method |
US20170249257A1 (en) * | 2016-02-29 | 2017-08-31 | Itu Business Development A/S | Solid-state storage device flash translation layer |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4484262A (en) * | 1979-01-09 | 1984-11-20 | Sullivan Herbert W | Shared memory computer method and apparatus |
US4707781A (en) * | 1979-01-09 | 1987-11-17 | Chopp Computer Corp. | Shared memory computer method and apparatus |
US4400768A (en) * | 1980-06-04 | 1983-08-23 | Burroughs Corporation | Parallel access computer memory system employing a power-of-two memory modules |
US4412286A (en) * | 1980-09-25 | 1983-10-25 | Dowd Brendan O | Tightly coupled multiple instruction multiple data computer system |
US4466060A (en) * | 1982-02-11 | 1984-08-14 | At&T Bell Telephone Laboratories, Incorporated | Message routing in a computer network |
US4556972A (en) * | 1983-12-27 | 1985-12-03 | At&T Bell Laboratories | Arrangement for routing data packets through a circuit switch |
US4654778A (en) * | 1984-06-27 | 1987-03-31 | International Business Machines Corporation | Direct parallel path for storage accesses unloading common system path |
US4794521A (en) * | 1985-07-22 | 1988-12-27 | Alliant Computer Systems Corporation | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors |
US4696000A (en) * | 1985-12-12 | 1987-09-22 | American Telephone And Telegraph Company, At&T Bell Laboratories | Nonblocking self-routing packet and circuit switching network |
-
1988
- 1988-04-26 US US07/186,327 patent/US4969088A/en not_active Expired - Fee Related
-
1989
- 1989-01-25 CA CA000589107A patent/CA1311851C/en not_active Expired - Fee Related
- 1989-03-22 EP EP89105326A patent/EP0339270B1/en not_active Expired - Lifetime
- 1989-03-22 DE DE68921365T patent/DE68921365T2/de not_active Expired - Fee Related
- 1989-04-10 JP JP1088185A patent/JPH0786861B2/ja not_active Expired - Lifetime
Non-Patent Citations (3)
Title |
---|
IEEETRANSACTIONSONCOMPUTERS.C−32〔12〕(1983−12)P.1091−1098 |
IEEETRANSACTIONSONCOMPUTERS.C−32〔2〕(1983−2)P.175−189 |
IEEETRANSACTIONSONCOMPUTERS.C−34〔10〕(1985−10)P.943−948 |
Also Published As
Publication number | Publication date |
---|---|
EP0339270A3 (en) | 1990-11-28 |
EP0339270B1 (en) | 1995-03-01 |
CA1311851C (en) | 1992-12-22 |
EP0339270A2 (en) | 1989-11-02 |
DE68921365T2 (de) | 1995-10-05 |
US4969088A (en) | 1990-11-06 |
JPH01298459A (ja) | 1989-12-01 |
DE68921365D1 (de) | 1995-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0786861B2 (ja) | 共用メモリ・マルチプロセツサ・システム | |
JP2772343B2 (ja) | プロセッサ及びメモリの間のトラフィックの経路指定装置 | |
US6895482B1 (en) | Reordering and flushing commands in a computer memory subsystem | |
US6279084B1 (en) | Shadow commands to optimize sequencing of requests in a switch-based multi-processor system | |
US5754800A (en) | Multi processor system having dynamic priority based on row match of previously serviced address, number of times denied service and number of times serviced without interruption | |
US6249520B1 (en) | High-performance non-blocking switch with multiple channel ordering constraints | |
US4881163A (en) | Computer system architecture employing cache data line move-out queue buffer | |
EP1615138A2 (en) | Multiprocessor chip having bidirectional ring interconnect | |
US20070094450A1 (en) | Multi-level cache architecture having a selective victim cache | |
US20160275015A1 (en) | Computing architecture with peripherals | |
US6175942B1 (en) | Variable bit width cache memory architecture | |
US5860101A (en) | Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory | |
JPH10187534A (ja) | コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム | |
EP0437712B1 (en) | Tandem cache memory | |
US6587925B2 (en) | Elimination of vertical bus queueing within a hierarchical memory architecture | |
US6253286B1 (en) | Apparatus for adjusting a store instruction having memory hierarchy control bits | |
JPH04195576A (ja) | キャッシュメモリ方式 | |
JP2731743B2 (ja) | 通信レジスタ付並列計算機 | |
JPH01241642A (ja) | 共通メモリの動的配置方法 | |
JPH05210590A (ja) | 書き込みキャッシュメモリのための装置および方法 |