JP2007509439A - Method and apparatus for efficient sequence preservation in interconnected networks - Google Patents
Method and apparatus for efficient sequence preservation in interconnected networks Download PDFInfo
- Publication number
- JP2007509439A JP2007509439A JP2006536679A JP2006536679A JP2007509439A JP 2007509439 A JP2007509439 A JP 2007509439A JP 2006536679 A JP2006536679 A JP 2006536679A JP 2006536679 A JP2006536679 A JP 2006536679A JP 2007509439 A JP2007509439 A JP 2007509439A
- Authority
- JP
- Japan
- Prior art keywords
- cache memory
- order
- request
- sequence
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004321 preservation Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims description 34
- 230000015654 memory Effects 0.000 claims abstract description 329
- 230000004044 response Effects 0.000 claims abstract 4
- 230000003111 delayed effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 9
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0837—Cache consistency protocols with software control, e.g. non-cacheable data
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
物理分散キャッシュメモリシステムは、相互接続ネットワークと、第1レベルのキャッシュメモリ・スライスと、第2レベルのキャッシュメモリ・スライスとを有する。第1レベルのキャッシュメモリ・スライスは、相互接続ネットワークに結合され、タグ付き順序保存要求を生成する。各タグ付き順序保存要求は、要求側識別表示と保存シーケンス・トークンとを有するタグを有する。第2レベルのキャッシュメモリ・スライスは、相互接続ネットワークに結合され、タグ付き順序保存要求の各タグに応じて、物理キャッシュメモリシステムを通じて順番に順序保存要求を実行する。
The physical distributed cache memory system has an interconnect network, a first level cache memory slice, and a second level cache memory slice. The first level cache memory slice is coupled to the interconnect network and generates a tagged order preservation request. Each tagged sequence save request has a tag with a requester identification and a save sequence token. The second level cache memory slice is coupled to the interconnect network and executes the save order request sequentially through the physical cache memory system in response to each tag in the tagged save order request.
Description
本発明は、概してキャッシュメモリ管理に関し、特に無順序ネットワークで共有分散キャッシュメモリシステムに順序保存を提供することに関する。 The present invention relates generally to cache memory management, and more particularly to providing order storage for shared distributed cache memory systems in unordered networks.
低速メインメモリへの平均アクセス時間を改善するために、プロセッサと低速メインメモリとの間に高速キャッシュメモリを使用することは周知である。キャッシュメモリの使用は、プロセッサの実行性能を改善し得る。当初ではキャッシュメモリはプロセッサから離れていたが、後に技術の改善と共にプロセッサの一体部分になった。キャッシュメモリがプロセッサの一体部分になると、キャッシュメモリへのアクセス時間が更に低減され得る。 It is well known to use a high speed cache memory between the processor and the low speed main memory to improve the average access time to the low speed main memory. The use of cache memory can improve the execution performance of the processor. Initially, the cache memory was separate from the processor, but later became an integral part of the processor as technology improved. When the cache memory becomes an integral part of the processor, the access time to the cache memory can be further reduced.
複数レベルのキャッシュメモリがプロセッサとメインメモリとの間に取り入れられている。一般的に、キャッシュメモリの速度が増加すると、キャッシュメモリがプロセッサに近くなるが、そのサイズが減少する。異なるように解釈すると、キャッシュメモリのサイズが一般的に増加し、アクセス時間が増加すると、キャッシュメモリがプロセッサから離れる。しかし、特に命令が他の命令又はメモリへのアドレスに分岐又はジャンプしたときに、複数レベルのキャッシュメモリはキャッシュ管理を複雑化する。 Multiple levels of cache memory are incorporated between the processor and main memory. In general, as the speed of the cache memory increases, the cache memory becomes closer to the processor, but its size decreases. When interpreted differently, the size of the cache memory generally increases, and as the access time increases, the cache memory moves away from the processor. However, multiple levels of cache memory complicate cache management, especially when instructions branch or jump to addresses to other instructions or memory.
プロセッサの内部又は外部のメモリコントローラ又はキャッシュコントローラは、メインメモリとプロセッサとの間でキャッシュメモリのキャッシュ管理を提供するために使用されている。キャッシュメモリの使用を最大化し、プロセッサが低速メインメモリからデータ/命令を読み取るため又は低速メインメモリにデータ/命令を書き込むために必要なキャッシュへのミスの数を低減するために、様々なキャッシュメモリ管理アルゴリズムが取り入れられている。共有され得るデータブロックの状態をトラッキングすることにより、キャッシュメモリに保存されたデータの一貫性を維持するために、キャッシュ・コヒーレンス・プロトコル(cache coherence protocol)が取り入れられている。他のキャッシュメモリ管理アルゴリズムも取り入れられている。 A memory controller or cache controller internal or external to the processor is used to provide cache management of the cache memory between the main memory and the processor. Various cache memories to maximize the use of cache memory and reduce the number of cache misses required for the processor to read data / instructions from the slow main memory or write data / instructions to the slow main memory Management algorithms are incorporated. A cache coherence protocol has been introduced to maintain the consistency of data stored in cache memory by tracking the state of data blocks that can be shared. Other cache memory management algorithms are also incorporated.
本発明の以下の詳細な説明では、本発明の完全な理解を提供するために、複数の特定の詳細が示されている。しかし、本発明はこれらの特定の詳細がなくても実施され得ることが、当業者に明らかである。その他に、不要に本発明の態様をあいまいにしないように、周知の方法、手順、構成要素及び回路については説明しない。 In the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described so as not to obscure aspects of the present invention unnecessarily.
本発明の一実施例は、論理的に共有されているが物理的に分散されたキャッシュを共有する複数のプロセッサを備えたシステムを扱う。複数のプロセッサは、相互接続ネットワークで物理的に分散されたキャッシュと通信する。相互接続ネットワークは、1つのプロセッサ又はキャッシュ(“要求側”)から同じ又は異なるキャッシュへの要求の順序を保存しない無順序ネットワークである。更に、相互接続ネットワークで1つのキャッシュが他のキャッシュに送信し得るメッセージもまた、ネットワークにより順番に保持されない。しかし、メッセージは、要求側により送出された順番に実行することを必要とすることがある。これらのメッセージは、順序要求(ordered request)と呼ばれることがある。順番に実行されることを必要としないメッセージは、無順序要求(non-ordered request)と呼ばれることがある。要求側により発行された保存要求は、順序保存要求でもよく、無順序保存要求でもよい。 One embodiment of the present invention deals with systems with multiple processors that share a logically shared but physically distributed cache. The plurality of processors communicate with caches that are physically distributed over the interconnect network. An interconnect network is an unordered network that does not preserve the order of requests from one processor or cache ("requester") to the same or different caches. In addition, messages that can be sent from one cache to another in an interconnected network are also not kept in order by the network. However, the messages may need to be executed in the order in which they are sent by the requester. These messages are sometimes referred to as ordered requests. Messages that do not need to be executed in order may be referred to as non-ordered requests. The storage request issued by the requester may be an order storage request or an unordered storage request.
順序要求のサブセットが順序保存要求である。以下に更に説明する順序保存要求は、要求側により発行された他の順序保存要求に関して、順番に実行を必要とする要求側の保存要求である。前の順序保存要求は、現行の順序保存要求が処理される前に処理されなければならない。すなわち、現行の順序保存要求は、後の順序保存要求が処理される前に処理されなければならない。無順序保存要求は、要求側の他の順序要求に関して、ばらばらの順番で実行可能な要求側の保存要求である。 A subset of order requests are order preservation requests. The order saving request described further below is a requesting side saving request that needs to be executed in order with respect to other order saving requests issued by the requesting side. The previous save order request must be processed before the current save order request is processed. That is, the current save order request must be processed before a subsequent save order request is processed. An unordered save request is a save request on the request side that can be executed out of order with respect to other order requests on the request side.
論理的に共有されたキャッシュメモリは、キャッシュメモリの特定のアドレスブロックが物理的に分散されたキャッシュメモリの異なるチャンク(chunk)により管理されるように分割されてもよい。 A logically shared cache memory may be partitioned such that a particular address block of the cache memory is managed by different chunks of the physically distributed cache memory.
他の実施例では、論理的に共有されたキャッシのキャッシュ管理は、特定のメモリ一貫性モデルがプロセッサからメインメモリへの特定の保存の処理に設定されるという順序要件を扱う。特別の順番の処理を必要とする特定の保存は、ここでは“順序保存(ordered store)”又は“順序保存要求(ordered store request)”と呼ばれる。その他に、保存は特別の順番の処理を必要としなくてもよく、ここでは“無順序保存(unordered store)”、“無順序保存要求(unordered store request)”又は“無順序保存要求(non-ordered store request)”と呼ばれる。これらの無順序保存要求は、ばらばらの順番で実行又は処理可能である。順序保存要求の処理は、現行の順序保存要求の前に発行された前の順序保存要求が、現行の順序保存要求の実行の前に完全に処理されることを必要とする。 In other embodiments, cache management of logically shared caches addresses the ordering requirement that a specific memory consistency model is set for a specific save operation from the processor to main memory. A particular store that requires a special order of processing is referred to herein as an “ordered store” or “ordered store request”. In addition, the storage may not require a special ordering process, in this case “unordered store”, “unordered store request” or “non-ordered storage request (non- ordered store request) ”. These unordered storage requests can be executed or processed in a discrete order. Processing the save order request requires that the previous save order request issued prior to the current save order request be completely processed before execution of the current save order request.
1つのプロセッサからの順序保存要求を処理する簡単な低性能の方法は、プロセッサからの全ての前の順序保存要求がキャッシュメモリシステムにより処理されるまで、プロセッサが新しい順序保存要求を発行することを抑制することが挙げられる。しかし、複数のプロセッサからの順序保存要求を処理するマルチプロセッサシステムでは、それほど簡単ではない。マルチプロセッサシステムにおいて複数のプロセッサからの順序保存要求を処理する方法は、更に複雑になる。 A simple low performance method of processing a save order request from one processor is that the processor issues a new save order request until all previous save order requests from the processor are processed by the cache memory system. Suppression. However, it is not so simple in a multiprocessor system that processes order preservation requests from a plurality of processors. The method of processing order preservation requests from multiple processors in a multiprocessor system is further complicated.
本発明の実施例では、順序保存要求を処理する簡単な低性能の方法は、マルチプロセッサシステムをサポートするために、少量の更なる要求トラッキングハードウェアを使用することにより、共有メモリシステムを備えたプロセッサのネットワークで並列処理を利用するように、複数のプロセッサを追加することで改善される。本発明の他の実施例では、ネットワークプロセッサの並列処理は、同時に又は重複する時間間隔で、ネットワークの1つのプロセッサから複数の順序保存要求を処理可能である。1つのプロセッサは、無順序ネットワークでキャッシュシステムに新しい順序保存要求を送信する前に、前の順序保存が完全に完了することを待機する必要はない。 In an embodiment of the present invention, a simple low performance method of processing order preservation requests provided a shared memory system by using a small amount of additional request tracking hardware to support a multiprocessor system. This is improved by adding multiple processors to use parallel processing in a network of processors. In another embodiment of the present invention, parallel processing of network processors can process multiple order preservation requests from one processor of the network at the same time or overlapping time intervals. One processor does not have to wait for the previous order save to complete completely before sending a new order save request to the cache system over the unordered network.
図1を参照すると、本発明が使用され得る一般的なコンピュータシステム100のブロック図が図示されている。コンピュータシステム100は、中央処理ユニット(CPU)101と、入出力装置(I/O)102(キーボード、モデム、プリンタ、外部記憶装置等)と、モニタ装置(M)103(CRT又はグラフィックディスプレイ等)と、情報を保存するメモリ104とを有する。モニタ装置(M)103は、視覚又は聴覚フォーマットのような人間に理解できるフォーマットでコンピュータ情報を提供する。システム100は、メディアアクセスコントローラ(MAC:media access controller)のようなネットワーク処理システム又はコンピュータシステムを含む複数の異なるシステムでもよい。
Referring to FIG. 1, a block diagram of a
図2Aを参照すると、本発明の実施例が使用され得る中央処理装置101Aのブロック図が図示されている。中央処理装置101Aは、図示のように結合されたマイクロプロセッサ201と、プログラム命令を保存するメインメモリ202と、ディスク記憶装置203を有する。マイクロプロセッサ201は、1つ以上の実行ユニット210と、少なくとも1つのキャッシュメモリ212と、キャッシュコントローラ214とを有する。マイクロプロセッサ201は、メインメモリ202へのアクセスを制御するための別々のメモリコントローラ216を有してもよい。この場合、メモリコントローラは、マイクロプロセッサ201の他の要素とメインメモリ202とをインタフェース接続する。理想的には、実行ユニット210は、低速メインメモリ202に直接アクセスする必要なく、キャッシュメモリ212にデータを読み/書きする。すなわち、実行ユニットがキャッシュメモリ212へのミスを回避することが望ましい。キャッシュメモリ212のサイズに物理的な制限が存在する。しかし、マルチプロセッサシステムでは、システムは、各プロセッサの内部のキャッシュメモリ212が論理的に共有され得るように設計可能である。他の実施例では、プロセッサ内の1つ以上の内部キャッシュメモリに加えて、1つ以上の外部キャッシュメモリが備えられ、マルチプロセッサシステムの相互接続ネットワークで複数のプロセッサにより論理的に共有されてもよい。
Referring to FIG. 2A, a block diagram of a
ディスク記憶装置203は、フロッピー(登録商標)ディスク、ZIPディスク、DVDディスク、ハードディスク、再書込可能光ディスク、フラッシュメモリ又はその他の不揮発性記憶装置でもよい。マイクロプロセッサ201及びディスク記憶装置203は、メモリバスでメモリ202に情報を読み書きすることができる。このように、マイクロプロセッサ201及びディスク記憶装置203は、プログラム実行中にメモリ202内のメモリ位置を変更することができる。ディスク記憶装置203がこれを直接行うために、直接メモリアクセスを備えたディスクコントローラを有し、そのディスクコントローラはメモリへの保存を実行可能であり、それによってコードを変更可能である。コントローラはメモリに直接アクセスすることができるため、直接メモリアクセス(DMA:Direct Memory Access)エージェントの一例である。メモリに情報を保存するために直接アクセスを有する他の装置もDMAエージェントである。メモリ202は、一般的にはダイナミック・ランダムアクセスメモリ(DRAM:dynamic random access memory)であるが、その他の形式の再書込可能記憶装置でもよい。
The
ディスク記憶装置203又はその他のソース(I/O装置102)に保存されたプログラムの初期実行時に、マイクロプロセッサ201は、ディスク記憶装置203又は他のソースに保存されたプログラム命令及びデータを読み取り、それらをメモリ202に書き込む。メモリ202内に保存されたプログラム命令の1つ以上のページ又はその一部は、命令キャッシュ(図3に図示せず)に保存するために、マイクロプロセッサ201により読み取られる(すなわち“フェッチ”される)。命令キャッシュに保存されたプログラム命令のいくつかは、マイクロプロセッサ201による実行のために、命令パイプライン(図示せず)に読み取られてもよい。メモリ202内に保存されたデータの1つ以上のページ又はその一部は、データキャッシュに保存するために、マイクロプロセッサ201により読み取られてもよい(すなわち“フェッチ”される)。他の実施例では、命令とデータとの双方が同じキャッシュメモリに保存されてもよい。
Upon initial execution of a program stored in
図2Bを参照すると、本発明の実施例が使用され得るマルチプロセッサシステム101Bのブロック図が図示されている。マルチプロセッサシステム101Bは、マルチプロセッサ中央処理装置でもよい。マルチプロセッサシステム101Bは、複数のプロセッサ201A-201Jを有する。複数のプロセッサ201A-201Jのそれぞれは、1つ以上の実行ユニット210A-201Nを有する。実行ユニットは、コアと呼ばれることもある。複数のプロセッサ201A-201Jのそれぞれは、1つ以上の実行ユニット210A-210Jに結合する1つ以上のレベルの内部キャッシュメモリ・スライス(CMS:cache memory slice)212A-212Mを更に有してもよい。複数のプロセッサ210A-210Jのそれぞれは、I/O装置及び/又はモニタ装置に結合してもよい。
Referring to FIG. 2B, a block diagram of a
マルチプロセッサシステム101Bは、相互接続ネットワークを通じて相互に結合され、複数のプロセッサ201A-201Jに結合された1つ以上のレベルの外部キャッシュメモリ・スライス(CMS:cache memory slice)212A’-212L’を更に有する。マルチプロセッサシステム101Bは、相互接続ネットワーク250に結合された1つ以上のメインメモリ202A-202Kと、相互接続ネットワーク250に結合されたディスク記憶装置203とを更に有してもよい。
プロセッサ202A-201J、キャッシュメモリ・スライス212A’-212L’及びディスク記憶装置203は、メインメモリ202A-202Kに情報を直接読み書きしてもよい。すなわち、メインメモリ202A-202Kは、プロセッサ202A-201Jとキャッシュメモリ・スライス212A’-212L’とディスク記憶装置203とにより共有可能である。更に、相互接続ネットワーク250を通じて、プロセッサ202A-201Jとメインメモリ202A-202Kとキャッシュメモリ・スライス212A’-212L’とディスク記憶装置203との間で、メッセージが伝達されてもよい。相互接続ネットワーク250でメッセージングを使用することにより、マルチプロセッサシステム101Bで順序保存要求の順番の実行又は処理が提供されてもよい。
The
図3Aを参照すると、マルチプロセッサシステム101Cのブロック図が図示されている。マルチプロセッサシステム101Cは、プライマリ相互接続ネットワーク300Aと、内部キャッシュメモリ312Aをそれぞれ有する複数のプロセッサ301A-301Jと、複数のプロセッサ301A-301Jと相互接続ネットワーク300Aとの間に結合された1つ以上の上位レベルキャッシュメモリ312Bと、相互接続ネットワーク300Aに結合されたキャッシュメモリ・スライス312Cのレベルと、相互接続ネットワーク300Aに結合されたキャッシュメモリ・スライス312Dの他のレベルと、セカンダリ相互接続ネットワーク300Bを通じてプライマリ相互接続ネットワーク300Aに結合されたキャッシュメモリ・スライス312Eのその他のレベルとを有してもよい。
Referring to FIG. 3A, a block diagram of a
マルチプロセッサシステム101Cは、1つ以上のメインメモリ302A、302B及び/又は302Cを更に有してもよい。メインメモリ302Aは、プライマリ相互接続ネットワーク300Aに直接結合されてもよい。メインメモリ302Bは、セカンダリ相互接続ネットワーク300Bを通じてプライマリ相互接続ネットワーク300Aに結合されてもよい。メインメモリ302Cは、セカンダリ相互接続ネットワーク300Bを通じて低レベルキャッシュメモリ・スライス312Eとプライマリ相互接続ネットワーク300Aとに結合されてもよい。
The
内部キャッシュメモリ312A、1つ以上の上位レベルキャッシュメモリ312B、キャッシュメモリ・スライス312Cのレベル、キャッシュメモリ・スライス312Dのレベル及びキャッシュメモリ・スライス312Eのレベルは、物理的に分散されたマルチレベルキャッシュメモリシステムの実施例を形成してもよい。物理的に分散されたマルチレベルメモリシステムの実施例は、キャッシュメモリ・スライスに含まれるメインメモリ302A、302Bを備える。
プロセッサ、キャッシュメモリ・スライス及びメインメモリは、相互接続ネットワークのノードとして考えられてもよい。メッセージは、1つのノードから他のノードに相互接続ネットワークを通じて流れてもよく、1つのノードから他の全てのノードにブロードキャストされてもよい。マルチプロセッサシステム101C並びに相互接続ネットワーク300A及び300Bのトポロジは、バス型ネットワークトポロジ、ツリー型ネットワークトポロジ、リング型ネットワークトポロジ、グリッド若しくはメッシュ型ネットワークトポロジ、トーラス型ネットワークトポロジ、超立方体型ネットワークトポロジ、全接続型トポロジ、又はそれらの組み合わせでもよい。
The processor, cache memory slice and main memory may be considered as nodes of the interconnect network. Messages may flow from one node to other nodes through the interconnection network and may be broadcast from one node to all other nodes. The topology of the
相互接続ネットワーク300A及び300Bは、集積回路で経路設定されたワイヤートレース(wire trace)、同じ集積回路で経路設定されたバス、及び/又は同じ集積回路の機能ブロック間の1つ以上のスイッチでもよい。代替として、相互接続ネットワーク300A及び300Bは、集積回路の間に経路設定されたワイヤートレース、集積回路の間のバス、及び/又は集積回路の間の1つ以上のスイッチでもよい。プライマリ相互接続ネットワーク300Aとセカンダリ相互接続ネットワーク300Bとを相互接続するために、スイッチ、ブリッジ又はルータ(図示せず)が使用されてもよく、それにより、メッセージがそれに従ってあちこちに通過してもよい。
メッセージは相互接続ネットワークを通じて流れるため、ノードからノードに経路設定されるときに又はノードから全ノードに経路設定されるときに、異なる遅延を受けることがある。これらの異なる遅延は、メッセージ転送の無順序のシーケンスを引き起こすことがある。すなわち、相互接続ネットワークは、順番の保存要求を処理するときの無順序ネットワークである。 Because messages flow through the interconnect network, they may experience different delays when routed from node to node or when routed from node to all nodes. These different delays can cause an unordered sequence of message transfers. That is, the interconnection network is an unordered network when processing an order storage request.
図3Bを参照すると、マルチプロセッサシステム101C’のブロック図が図示されている。図3Bは、プライマリ相互接続ネットワーク300Aを含む図3Aのシステム101C’の大部分が単一のモノリシック集積回路(IC:integrated circuit)チップ350の一部でもよいことを示している。すなわち、メインメモリ302Cを除いて、システム101Cの要素は、システム101C’に示すように単一のシリコンチップ350に併せて一体化されてもよい。
Referring to FIG. 3B, a block diagram of a
図3Cを参照すると、マルチプロセッサシステム101C’’のブロック図が図示されている。図3Cは、複数の集積回路(IC:integrated circuit)チップ360A-360Bの一部であるプライマリ相互接続ネットワーク300Aで集積回路境界を通じてシステム101Cが分割されてもよいことを示している。システム101Cの要素は、複数のシリコンチップに併せて一体化されてもよい。代替として、マルチプロセッサシステム101C’’の要素は、共通バックプレーン又はマザーボードのプリント基板(PCB:print circuit board)のトレース等を通じて相互に電気結合された1つ以上のプリント基板でもよい。
Referring to FIG. 3C, a block diagram of a
図4を参照すると、物理分散キャッシュメモリシステム400のブロック図の論理図が図示されている。物理分散キャッシュメモリシステム400は、ハッシュ・アドレスを生成するアドレス・ハッシュ制御ロジック404と、プライマリ相互接続ネットワーク300A又はプライマリ相互接続ネットワーク300A及びセカンダリ相互接続ネットワーク300Bでハッシュ・アドレスでのメッセージを受信する1つ以上のキャッシュメモリ・スライス412A-412Kとを有する。1つ以上のキャッシュメモリ・スライス412A-412Kのそれぞれは、メモリセル414A-414Kの1つ以上のブロックを有する。
Referring to FIG. 4, a logical diagram of a block diagram of a physical distributed
物理分散キャッシュメモリシステム400は、プロセッサ又はキャッシュメモリのような要求側により共有される。メモリセルの1つのアドレスブロックが1つのキャッシュメモリ・スライスに関連付けられて、メモリセルの次のアドレスブロックが他のキャッシュメモリ・スライスに関連付けられるように、物理分散キャッシュメモリシステム400は複数の方法で分割されてもよい。要求側からのアドレス402は、キャッシュメモリ・スライスと、そのメモリセルの1つ以上のブロックとを選択するために、アドレス・ハッシュ・ロジック404によりハッシュされる。
The physical distributed
図3A及び4を参照すると、1つ以上のプロセッサ301A-301Jは、順序保存要求が物理分散キャッシュシステム400により実行されることを要求することができる。代替として、1つ以上のキャッシュメモリ312A、312B又は分散キャッシュメモリシステム400の階層の上位レベルのキャッシュメモリ・スライスは、順序保存要求が分散キャッシュメモリシステム400の他のレベルにより実行されることを要求することができる。このような要求を行うキャッシュメモリ・スライスは、一般的にプロセッサの近くである。このような要求を行うキャッシュメモリは、プロセッサの内部キャッシュメモリ312A又は上位レベルキャッシュメモリ312Bを有してもよい。順序保存を要求するプロセッサとキャッシュメモリとキャッシュメモリ・スライスとを併せて、要求側と呼ぶことがある。各要求側は、順序保存要求を生成する制御ロジック及び他のハードウェア要素を有する。以下の説明では、“Nc”は物理分散キャッシュを構成するキャッシュメモリ・スライスの数を表し、“Np”は分散キャッシュを共有する要求側の数を表す。
Referring to FIGS. 3A and 4, one or
一時的に図7を参照すると、メモリ階層の1つのレベルのプロセッサ/キャッシュ要求側701が、順序保存要求の順番の実行を行うことができるメモリ階層の異なるレベルのキャッシュメモリ・スライス702A及び702Bと通信するように図示されている。
Referring temporarily to FIG. 7, the
各プロセッサ/キャッシュ要求側701は、“j”の一定値を有する固有の要求側識別子(“RID:requestor identifier”)704と、“t”の変数値を有する単一のトークン・レジスタ(“TR:token register”)706とを有する。固有の要求側識別子は、固有の要求側識別表示とも呼ばれることがある。トークン・レジスタは、シーケンス・トークン・レジスタと呼ばれることがあり、トークン値“t”はまた、保存シーケンス・トークン又は保存シーケンス番号と呼ばれることがある。トークン・レジスタ(“TR:token register”)706は、“b”ビット幅であり、プロセッサ/要求側によりサポートされる未解決の順序保存要求の数に応じて、2bビット幅を有することができる。“S”は各プロセッサがサポートする未解決の順序保存要求を表すと仮定すると、トークン・レジスタのビット数は、“b”=ceiling[log2(S)]の式から決定され得る。トークン・レジスタにより保持される値はまた、要求側シーケンス・トークンとも呼ばれることがある。トークン・レジスタは、順序保存要求が生成される毎に増加し得る。トークン・レジスタは、その最大値を超えて増加したときに、その初期値(一般的に0)にラップアラウンド(すなわちロールオーバー)して戻ることができる。しかし、一実施例では、最大ネットワーク待ち時間(すなわち最大ネットワーク遅延)に比較して、Sは十分に大きく、“b”のビット数も十分に大きい。それにより、トークン・レジスタがロールオーバーするときまでに、プロセッサは全てを処理している。他の実施例では、ロールオーバーしようとしているTRレジスタを備えたプロセッサ/要求側は、各キャッシュメモリ・スライスをポーリングし、それぞれが全てのタグ付きメモリ要求を処理してS-1に到達したか否かを決定する。全てのキャッシュメモリ・スライスが終了したことをプロセッサに応答すると、プロセッサは、その所定のTRレジスタがロールオーバーすることを許可し得る。
Each processor /
要求側識別子(“RID:requestor identifier”)704の値“j”は固有である。すなわち、要求側識別子の2つの値は、分散キャッシュメモリシステムでの同じマルチプロセッサシステムで同じではない。各要求側識別子(“RID”)704の値“j”が固有であるため、各レジスタ701のトークン・レジスタの値“t”は、“j”と“t”とを一緒に付加することにより、固有になり得る。すなわち、相互接続ネットワークで分散キャッシュメモリシステムに通信される前に、トークンに要求側識別子を追加することにより、トークン・レジスタTRを“固有”にすることができる。
The value “j” of the requesting identifier (“RID: requestor identifier”) 704 is unique. That is, the two values of the requester identifier are not the same in the same multiprocessor system in a distributed cache memory system. Since the value “j” of each requesting identifier (“RID”) 704 is unique, the token register value “t” of each
順序保存要求の順番の実行を行うことができる分散キャッシュメモリのメモリ階層の各キャッシュメモリ・スライス(キャッシュメモリ・スライス702A及び702B等)は、キャッシュ・シーケンス・アレイ(CSA:cache sequence array)712を有する。キャッシュ・シーケンス・アレイ(CSA)712は、“b”ビット幅の“Np”のエントリを備えたテーブルである。キャッシュ・シーケンス・アレイ(CSA)712は、要求側識別子(“RID”)704毎に、分散キャッシュシステムの所定のキャッシュメモリ・スライスにより処理可能な次の順序保存の識別を決定する。Npの要求側が存在するため、キャッシュ・シーケンス・アレイ(CSA)にはNpのエントリが存在する。
Each cache memory slice (
図5A−5Bを参照する。図5Aは、タグ付き順序保存要求500の一般的なフィールドの図を示している。図5Bは、CSA更新510の一般的なフィールドの図を示している。順序保存要求をサポートするために、要求側識別子(RID)フィールド501(“j”の値)と、トークン・レジスタ値フィールド502(“t”の値)と、メッセージ識別子(MID:message identifier)フィールド504とのビットフィールドが、タグ付き順序保存要求500とCSA更新510との双方で使用される。要求側識別子(RID)フィールド501(“j”の値)と、トークン・レジスタ値フィールド502(“t”の値)とのビットフィールドは、併せてTRU503と呼ばれることがある。すなわち、TRU504は、要求側id“j”と要求側jのトークン・レジスタTRの値“t”との連結を表す。TRU504の値は“j.t”として表示されることもできる。ただし、jは要求側識別子であり、“t”は要求側jのトークン・レジスタTRの値である。
Reference is made to FIGS. 5A-5B. FIG. 5A shows a general field diagram of a tagged sequence preservation request 500. FIG. 5B shows a general field diagram of
メッセージ識別子(MID)フィールド504は、順序保存要求(OSR:ordered store request)504A又はCSA更新504Bを示すコードである。他のメッセージ形式を示すために、メッセージ識別子(MID)フィールド504の他のコードが使用されてもよい。
The message identifier (MID)
メッセージ識別子フィールド504がタグ付き保存要求500の順序保存要求(OSR)コード504Aを示す場合、アドレスフィールド505及びデータフィールド506がタグ付き順序保存要求500の一部として含まれる。換言すると、要求側識別子(RID)フィールド501(“j”の値)及びトークン・レジスタ値フィールド502(“t”の値)のビットフィールドは相互に連結され、保存されるアドレス505とデータ506とを含む順序保存要求コード504Aに追加される。このように、タグ付き順序保存要求500が形成される。
If the
メッセージ識別子フィールド504がCSA更新コード504Bを示し、順序保存要求(OSR)コード504Aを示さない場合、アドレスフィールド505及びデータフィールド506は、分散キャッシュメモリシステム400に送信されるメッセージに含まれない。この場合、要求側識別子(RID)フィールド501(“j”の値)及びトークン・レジスタ値フィールド502(“t”の値)のビットフィールドは、処理された順序保存要求に基づき、CSA更新コード504Bに付加される。
If the
一実施例では、タグ付き順序保存要求500及びCSA更新510のデータビットフィールドは、相互接続ネットワーク300A、300Bで、要求側からキャッシュメモリ・スライスに又は1つのキャッシュメモリ・スライスから他のキャッシュメモリ・スライスにパケットで流れてもよい。他の実施例では、タグ付き順序保存要求500及びCSA更新510のデータビットフィールドは、相互接続ネットワークの並列相互接続バスで並列に流れてもよい。他の実施例では、タグ付き順序保存要求510及びCSA更新510のデータビットフィールドは、相互接続ネットワークの直列相互接続で連続的に流れてもよい。更に他の実施例では、タグ付き順序保存要求500及びCSA更新510のデータビットフィールドは、相互接続ネットワークで並列又は直列の1つ以上のパケットの組み合わせにより流れてもよい。その他に、タグ付き順序保存要求500は要求側により生成されて相互接続ネットワークに送信され、CSA更新510は順序保存要求を実行したキャッシュメモリ・スライスにより生成されて相互接続ネットワークに送信される。
In one embodiment, the tagged bit order save request 500 and the data bit field of the
図6Aを参照すると、キャッシュメモリ・スライス602のブロック図が図示されている。キャッシュメモリ・スライス602は、キャッシュメモリ・スライスの単一のインスタンスを示している。キャッシュメモリ・スライス602は、キャッシュ・シーケンス・アレイ604と、順序保存要求の順番の実行をサポートするキャッシュ制御ロジック606とを有する。キャッシュ制御ロジック606はまた、キャッシュメモリに関連する一般的なキャッシュ制御機能を提供することができる。キャッシュメモリ・スライス602は、図6Aに図示するように相互に結合された要求バッファ608と、キャッシュ・タグ・ビット610と、キャッシュ・データ・アレイ612と、タグ照合ロジック614と、列選択616とを更に有する。
With reference to FIG. 6A, a block diagram of a
要求バッファ608は、キューでの処理のために、キャッシュ保存要求を一時的に保持する。一般的にキャッシュ・タグ・ビット610は、有効ビットと他の状態ビットと共にメモリセルのキャッシュラインの内容を特定するのに役立つ上位アドレスビットである。キャッシュ・データ・アレイ612は、データを保存するためのメモリセルの行及び列の配列である。タグ照合ロジック614は、所定のキャッシュメモリ・スライスにヒット又はミスが存在するか否かを決定する。ヒットは、所望のデータが所定のキャッシュメモリ・スライスのキャッシュ・データ・アレイ612内に保存されていることを示す。ミスは、所望のデータがキャッシュ・データ・アレイ612内に保存されておらず、要求が分散キャッシュメモリシステムの階層の次のレベルに渡される必要があることを示す。列選択616は、メモリセルの列がキャッシュ・データ・アレイ612から選択されるべきであるか否かについて、ヒット及びミスの指示に応じる。
The
キャッシュ・シーケンス・アレイ604により、キャッシュメモリ・スライス602が物理分散キャッシュメモリシステムを通じて順番に順序保存要求を実行することが可能になる。キャッシュ・シーケンス・アレイ604は、キャッシュ・シーケンスのエントリとして1つ以上の順序保存要求に関連する1つ以上の保存シーケンス・トークンを保存する。
The
図6Bを参照すると、キャッシュ・シーケンス・アレイ(CSA:cache sequence array)604のブロック図が図示されている。キャッシュ・シーケンス・アレイ(CSA)604は、キャッシュ・シーケンス・アレイ(CSA)テーブル632を有する。キャッシュ・シーケンス・アレイ(CSA)テーブル632は、要求側j毎に保存シーケンス・トークンtを保存する。要求側識別子jは、キャッシュ・シーケンス・アレイ(CSA)テーブル632へのアドレスとして機能し、それによってアドレス指定されたデータをキャッシュ制御ロジック606に送信する。
Referring to FIG. 6B, a block diagram of a cache sequence array (CSA) 604 is illustrated. The cache sequence array (CSA) 604 has a cache sequence array (CSA) table 632. A cache sequence array (CSA) table 632 stores a storage sequence token t for each requester j. The requester identifier j serves as an address to the cache sequence array (CSA) table 632, thereby sending the addressed data to the
キャッシュ・シーケンス・アレイ(CSA)テーブル632の各キャッシュ・シーケンスのエントリは、所定のキャッシュメモリ・スライスが所定の要求側jから順番に実行し得る現行の保存シーケンス・タグtを示す。順序保存要求がその要求側jのキャッシュ・シーケンス・エントリに一致する所定のキャッシュメモリ・スライス602にハッシュされている場合、キャッシュメモリ・スライスは順序保存要求を実行する。異なる順序保存要求がその要求側jのキャッシュ・シーケンス・エントリに一致しない所定のキャッシュメモリ・スライス602にハッシュされている場合、キャッシュメモリ・スライスは現時点で順序保存要求を実行しないが、その代わりに、後の処理のために要求バッファ608又は他のキューにそれを保持する。このように、順序保存要求は順番に実行可能である。
Each cache sequence entry in the cache sequence array (CSA) table 632 indicates a current save sequence tag t that a given cache memory slice can execute sequentially from a given requester j. If the save order request has been hashed to a given
キャッシュメモリ・スライス内のキャッシュ・シーケンス・アレイ(CSA)テーブル632は、要求側毎に1つの順序保存要求エントリを維持する。このように、各キャッシュメモリ・スライスは、要求側j毎に順序保存要求の実行順序を維持することができる。 A cache sequence array (CSA) table 632 in the cache memory slice maintains one order preservation request entry for each requester. As described above, each cache memory slice can maintain the execution order of the order saving request for each requesting side j.
図7を参照すると、順序保存要求の順番の実行の例示的なシーケンスを示すブロック図は、タグ付き順序保存要求を生成し、順序保存要求を実行し、キャッシュ・シーケンス更新メッセージを発行することを有する。 Referring to FIG. 7, a block diagram illustrating an exemplary sequence of order execution of a save order request generates a tagged save order request, executes the save order request, and issues a cache sequence update message. Have.
前述のように、各プロセッサ/キャッシュ要求側701は、“j”の値を有する固有の要求側識別子(“RID”)704と、“t”の値を有する単一のトークン・レジスタ(“TR”)706とを有する。各プロセッサ/キャッシュ要求側701は、順序保存要求(例えば、ST.REL A、ST.REL B)を保存するワークキュー707と、タグ付き順序保存要求500の生成を制御して、その中のメモリセル及び適切なキャッシュメモリ・スライスを選択するためにアドレスをハッシュ又は変換する制御ロジック708とを更に有する。
As described above, each processor /
前述のように、順序保存要求の順番の実行を行うことができる分散キャッシュメモリのメモリ階層の各キャッシュメモリ・スライスは、キャッシュ・シーケンス・アレイ(CSA)を有する。図7は、キャッシュ・シーケンス・アレイ(CSA)712を有するキャッシュメモリ・スライスk702A及びキャッシュメモリ・スライスm702Bを示している。 As described above, each cache memory slice in the memory hierarchy of the distributed cache memory capable of executing the order of the order preservation request has a cache sequence array (CSA). FIG. 7 shows a cache memory slice k702A and a cache memory slice m702B having a cache sequence array (CSA) 712.
動作中に、要求側j701は、要求側IDjと現行のトークン・レジスタ値tとを付加して、キュー707内にある順序保存要求の1つのアドレスを使用して、タグ付き順序保存要求500を生成する。要求側j701のコントローラ708は、タグ付き順序保存要求500を発行する。順序保存要求は値“j.t”でタグ付けされる。時間Xにおいて、矢印721で示すように、ST.REL Aのタグ付き順序保存要求はキャッシュ・スライスk702Aに送信される。要求側j701において、ST.REL Aのタグ付き順序保存要求がキャッシュ・スライスk702Aに送信された後に、トークン・レジスタ706が(t+1)の値に増加する。
In operation, requester j701 appends requestor IDj and the current token register value t, and uses one address of the save order request in
例えば、要求側j701が、物理分散キャッシュメモリシステムへのタグ付き順序保存要求として異なるアドレス“A”及び“B”にタグ付けして発行する準備ができている“ST.REL A”及び“ST.REL B”で示す2つの順序保存要求を有することを仮定する。順序保存要求“ST.REL A”は順序保存要求“ST.REL B”より古く、順番の実行を実現するために最初に処理されなければならない。しかし、異なるアドレス“A”及び“B”を用いて、2つの順序保存要求“ST.REL A”及び“ST.REL B”は異なる部分(物理分散キャッシュメモリシステムのキャッシュメモリ・スライスk702A及びキャッシュメモリ・スライスm702B)により処理される。 For example, “ST.REL A” and “ST” where the requesting side j701 is ready to tag and issue different addresses “A” and “B” as a tagged sequence storage request to the physical distributed cache memory system Suppose we have two order preservation requests denoted by .REL B ". The order preservation request “ST.REL A” is older than the order preservation request “ST.REL B” and must be processed first to realize the execution of the order. However, using different addresses “A” and “B”, the two order storage requests “ST.REL A” and “ST.REL B” are different parts (cache memory slice k702A and cache of physical distributed cache memory system). Processed by memory slice m702B).
矢印721で示すように、まず、要求側j701は、“j.t”でタグ付けされた順序保存要求“ST.REL A”でキャッシュメモリ・スライスk702Aにタグ付き順序保存要求を発行する。キャッシュメモリ・スライスk702Aがこのタグ付き順序保存要求を処理すると、保存を実行して更新を実行する。すなわち、矢印722で示すように、キャッシュメモリ・スライスk702Aは、他の全てのキャッシュメモリ・スライスに“j.x”を有するキャッシュ・シーケンス・アレイ(CSA)更新をブロードキャストする。値x=t+1である。キャッシュメモリ・スライスk702Aは、そのCSA更新を実行するために要求側jに対応するその自分のCSA[j]のエントリを増加する。
As indicated by an
ST.REL Aのタグ付き順序保存要求を受信すると、キャッシュメモリ・スライスk702Aは、順番にタグ付き順序保存要求を実行することができるか否かを決定する。これを行うために、キャッシュ・スライスk702Aは、そのキャッシュ・シーケンス・アレイ(CSA)712と、要求側j701のエントリとを調べる。キャッシュメモリ・スライスk702Aが順番にタグ付き順序保存要求を実行することができるか否かを決定する方法は、図9A及び9Bを参照して以下に更に説明する。キャッシュメモリ・スライスk702Aが順番にタグ付き順序保存要求を実行することができることを決定することを仮定すると、それはこれを行う。キャッシュメモリ・スライスk702AがST.REL Aのタグ付き順序保存要求を処理又は実行した後に、tの値は(t+1)に増加して要求側IDjを付与され、値j.t+1で他の全てのキャッシュメモリ・スライスに対するCSA更新510を生成及び発行する。矢印722は、CSA更新がキャッシュメモリ・スライスm702Bを含む他の全てのキャッシュメモリ・スライスに送信されることを示している。これは、CSA更新を受信したキャッシュが“j.t+1”の値を有するタグ付き順序保存要求を処理することができることを示している。
When the ST.REL A tagged order storage request is received, the cache memory slice k702A determines whether the tagged order storage request can be executed in order. To do this, cache slice k702A examines its cache sequence array (CSA) 712 and the requester j701 entry. The method for determining whether the cache memory slice k702A can execute the tagged order storage request in turn is described further below with reference to FIGS. 9A and 9B. Assuming that the cache memory slice k702A decides that it can execute the tagged sequence save request in turn, it does this. After the cache memory slice k702A processes or executes the ST.REL A tagged order storage request, the value of t increases to (t + 1) and is given the requester IDj, with the value j.t + 1 Generate and issue CSA updates 510 for all other cache memory slices.
タグ付き順序保存要求は、様々な理由で所定のキャッシュメモリ・スライスでバラバラの順番になる。例えば、CSA更新が所定のキャッシュメモリ・スライスで適時に受信されなかったため、タグ付き順序保存要求がバラバラの順番になる可能性がある。他の例として、前の順序保存要求が完全に処理されてCSA更新が発行される前に他のタグ付き順序保存要求が発行されたため、タグ付き順序保存要求がバラバラの順番になる可能性がある。更に他の例として、全てのCSA更新が所定の要求側jの他のキャッシュメモリ・スライスから受信される前に後のタグ付き順序保存要求が受信されたため、タグ付き順序保存要求がバラバラの順番になる可能性がある。 Tagged order storage requests are in a disjoint order in a given cache memory slice for various reasons. For example, because a CSA update has not been received in a given cache memory slice in a timely manner, tagged order storage requests can be out of order. As another example, a tagged sequence preservation request could be out of order because another tagged order preservation request was issued before the previous order preservation request was fully processed and the CSA update was issued. is there. As yet another example, since a later tagged sequence save request was received before all CSA updates were received from other cache memory slices of a given requester j, There is a possibility.
例を続けると、時間X+e(eは正数である)に、矢印723で示すように、要求側jは、“j.(t+1)”でタグ付けされた順序保存要求“ST.REL B”を含むタグ付き順序保存要求をキャッシュメモリ・スライスm702Bに発行する。要求側j701において、ST.REL Bのタグ付き順序保存要求がキャッシュ・スライスm702Bに送信された後に、トークン・レジスタ706が(t+2)の値に増加する。
Continuing with the example, at time X + e (e is a positive number), as indicated by the
ST.REL Bのタグ付き順序保存要求を受信すると、キャッシュメモリ・スライスm702Bは、順番にタグ付き順序保存要求を実行することができるか否かを決定する。これを行うために、キャッシュ・スライスm702Bは、そのキャッシュ・シーケンス・アレイ(CSA)712と、要求側j701のエントリとを調べる。 When the ST.REL B tagged order saving request is received, the cache memory slice m702B determines whether the tagged order saving request can be executed in order. To do this, the cache slice m702B examines its cache sequence array (CSA) 712 and the requester j701 entry.
キャッシュメモリ・スライスm702Bは、CSA712の要求側jのCSA[j]のそのエントリが(t+1)に等しいか否かを確認する。この場合に、キャッシュメモリ・スライスk702Aが順序保存要求“ST.REL A”を既に処理しており、キャッシュメモリ・スライス702Bmが対応のCSA更新を受信したことを仮定すると、キャッシュメモリ・スライス702Bm(300)は、要求側jのCSA[j]のそのエントリが(t+1)に等しいため、“ST.REL B”を処理することができる。
The cache memory slice m702B checks whether the entry of CSA [j] on the requesting side j of the
しかし、キャッシュメモリ・スライスk702AからのCSA更新がキャッシュメモリ・スライスm702Bに到達する前に、要求側jが順序保存要求“ST.REL B”を発行することを仮定すると、キャッシュメモリ・スライスm702Bは、トークン“j.x”を備えたCSA更新が到達するまで、“ST.REL B”を含むタグ付き順序保存要求をネットワーク又はローカルバッファに保持し続ける。この場合、CSA更新はバラバラの順番になり、キャッシュメモリ・スライスは、処理用に有する順序保存要求を適切に処理しなければならない。 However, assuming that the requester j issues an order preservation request “ST.REL B” before the CSA update from the cache memory slice k702A reaches the cache memory slice m702B, the cache memory slice m702B Until the CSA update with the token “jx” arrives, keep the tagged order storage request including “ST.REL B” in the network or local buffer. In this case, the CSA updates are out of order and the cache memory slice must properly process the order preservation requests it has for processing.
キャッシュメモリ・スライスm702Bが順番にタグ付き順序保存要求を実行することができることを決定することを仮定すると、それはこれを行う。キャッシュメモリ・スライスm702BがST.REL Bのタグ付き順序保存要求を処理又は実行した後に、(t+1)の値は(t+2)に増加して要求側IDjを付与され、値j.t+2で他の全てのキャッシュメモリ・スライスに対するCSA更新510を生成及び発行する。矢印724は、CSA更新がキャッシュメモリ・スライスm702Aを含む他の全てのキャッシュメモリ・スライスに送信されることを示している。これは、CSA更新を受信したキャッシュが“j.t+2”の値を有するタグ付き順序保存要求を処理することができることを示している。
Assuming that the cache memory slice m702B decides that it can execute the tagged sequence save request in turn, it does this. After the cache memory slice m702B processes or executes the ST.REL B tagged order storage request, the value of (t + 1) increases to (t + 2) and is given the requesting side IDj, and the value j. Generate and issue
キャッシュメモリ・スライスm702Bが“j.t+1”の値でのCSA更新を受信していないことを仮定すると、“j.t+1”の値を備えたタグ付き順序保存要求を順番に実行することができない。キャッシュメモリ・スライスm702Bは、“j.t+1”の値を備えたタグ付き順序保存要求を実行する前に、“j.t+1”の値を備えたCSA更新を受信するまで待機しなければならない。 Assuming that the cache memory slice m702B has not received a CSA update with a value of “j.t + 1”, it executes in sequence the tagged order save request with the value of “j.t + 1” Can not do it. Cache memory slice m702B waits until it receives a CSA update with a value of “j.t + 1” before executing a tagged sequence save request with a value of “j.t + 1”. There must be.
図8を参照すると、タグ付き順序保存要求をサポートするために要求側j701の制御ロジック708により実行される制御機能のフローチャートが図示されている。前述のように、この説明では、数字“Np”は分散キャッシュを共有するプロセッサの数を表す。
Referring to FIG. 8, a flowchart of control functions performed by the
800において、システムは初期化又はリセットされる。802において、全てのプロセッサ及びキャッシュ要求側j701は、そのトークン・レジスタTR706及びトークン値“t”を初期値(0等)に設定する。以下に更に説明するように、各キャッシュメモリ・スライスのキャッシュ・シーケンス・アレイ(キャッシュメモリ・スライス702A、702Bのキャッシュ・シーケンス・アレイ712等)の全てのエントリも同様に、“t”について同じ初期値(0等)に設定される
804において、制御ロジックは、要求側j701が順序保存要求を物理分散キャッシュメモリシステムに送信する準備ができているか否かを決定する。そうでない場合には、制御ロジックは804にループバックし、基本的に順序保存要求の発行を待機する。順序保存要求が処理のために物理分散キャッシュメモリシステムに送信された場合、制御ロジックは806に進む。
At 800, the system is initialized or reset. In 802, all the processors and the cache requesting side j701 set the token register TR706 and the token value “t” to an initial value (0 or the like). As described further below, all entries in each cache memory slice's cache sequence array (such as
At 804, the control logic determines whether the requesting j701 is ready to send an order storage request to the physical distributed cache memory system. Otherwise, the control logic loops back to 804 and basically waits for an order save request to be issued. If the save order request is sent to the physical distributed cache memory system for processing, the control logic proceeds to 806.
806において、順序保存要求は、図5Aに示すように、RID“j”501とトークン・レジスタ値“t”502とを含むTRUタグ503の現行の値でタグ付けされる。TRUタグ503の値は“j.t”として示される。次に制御ロジックは808に進む。
At 806, the save order request is tagged with the current value of the
808において、要求側j701の制御ロジック708はトークン・レジスタTR706を増加し、それにより、tの現行の値は、次の順序保存要求で後に使用するためにt+1の値を割り当てられる。次に制御ロジックは810に進む。
At 808,
810において、タグ付き順序保存要求500が物理分散キャッシュメモリシステムに発行される。タグ付き順序保存要求のアドレスはハッシュされ、タグ付き順序保存要求は適切なキャッシュメモリ・スライス(キャッシュメモリ・スライスk702A等)に送信される。 At 810, a tagged order storage request 500 is issued to the physical distributed cache memory system. The address of the tagged sequence save request is hashed and the tagged sequence save request is sent to the appropriate cache memory slice (such as cache memory slice k702A).
図9Aは、タグ付き順序保存要求をサポートするために各キャッシュメモリ・スライスの制御ロジック714により実行される制御機能の第1のフローチャートである。図9Bは、タグ付き順序保存要求をサポートするために各キャッシュメモリ・スライスの制御ロジック714により実行される制御機能の第2のフローチャートである。
FIG. 9A is a first flowchart of the control functions performed by the
図9Aを参照すると、順序保存要求が処理可能であるか否かを決定することについて、各キャッシュメモリ・スライスの制御ロジック714により実行される制御機能のフローチャートが図示されている。900において、800で前述したように、システムが初期化又はリセットされる。902において、各キャッシュメモリ・スライスのキャッシュ・シーケンス・アレイ712の全てのエントリは、“t”の初期値(0等)に設定される。これは、各要求側j701がそのトークン・レジスタTR706について有する初期トークン値“t”と一致する。次に制御ロジックは904に進む。
Referring to FIG. 9A, a flowchart of control functions performed by the
904において、各キャッシュメモリ・スライスの制御ロジックは、要求側からタグ付き順序保存要求501を受信しているか否かを決定する。そうでない場合、制御ロジックは904にループバックし、基本的にタグ付き順序保存要求の受信を待機する。タグ付き順序保存要求が処理のために受信された場合、制御ロジックは906に進む。
At 904, the control logic of each cache memory slice determines whether a tagged sequence save
906において、TRUタグj.tはタグ付き順序保存要求から抽出され、順序保存要求が所定のキャッシュメモリ・スライスにより処理可能であるか否かを決定する。受信した要求側識別子“j”の値について、キャッシュメモリ・スライスは順序保存要求の値(値CSA[j](0の初期値を仮定すると、jは0〜(S-1)の値をとる))を行ったプロセッサのキャッシュ・シーケンス・エントリを読み取る。“S”が、各プロセッサがサポートする未解決の順序保存の数を表すことを思い出されたい。 At 906, the TRU tag j.t is extracted from the tagged order save request and determines whether the order save request can be processed by a given cache memory slice. With respect to the value of the received request side identifier “j”, the cache memory slice takes the value of the order saving request (value CSA [j] (j assumes a value of 0 to (S-1) assuming an initial value of 0) Read the cache sequence entry of the processor that performed)). Recall that “S” represents the number of outstanding sequence saves supported by each processor.
908において、要求側jのCSA[j]エントリ、予想シーケンス番号は、順序保存要求のタグの“t”の部分と比較される。CSA[j]が順序保存要求のタグの“t”の部分と一致する場合、要求は処理可能である。CSA[j]がタグの“t”の部分と等しくない場合、タグは一致せず、制御ロジックは913に進む。CSA[j]がタグの“t”の部分と等しい場合、タグは一致し、制御ロジックは912に進む。 In 908, the CSA [j] entry of the requesting side j and the expected sequence number are compared with the “t” portion of the tag of the order storage request. If CSA [j] matches the “t” portion of the tag in the order preservation request, the request can be processed. If CSA [j] is not equal to the “t” portion of the tag, the tag does not match and control logic proceeds to 913. If CSA [j] is equal to the “t” portion of the tag, the tag matches and control logic proceeds to 912.
913において、対応するタグ付き順序保存要求(タグを含む)が、後の処理のためにキャッシュの通常のワークキューに保存される。 At 913, the corresponding tagged sequence save request (including tags) is saved in the normal work queue of the cache for later processing.
912において、タグが一致する場合(CSA[j]=t)、キャッシュは順序保存要求を処理して914に進む。 If the tags match at 912 (CSA [j] = t), the cache processes the save order request and proceeds to 914.
914において、CSA[j]エントリが所定の要求側について増加し、制御ロジックは916に進む。 At 914, the CSA [j] entry is incremented for a given requester and control logic proceeds to 916.
916において、CSA更新が他の全てのキャッシュメモリ・スライスに発行される。タグ付き順序保存要求を処理した所定のキャッシュメモリ・スライスは、システムの他の全てのキャッシュメモリ・スライスにトークンj.(t+1)を発行し、(処理するものがある場合に)トークン値t+1に対応する要求側jからのメッセージを処理することができることを示す。要求側はまた、その自分のトークンを増加させ、CSA更新の後に何らかの一致する要求についてワークキューを検査する。 At 916, a CSA update is issued to all other cache memory slices. A given cache memory slice that has processed a tagged order save request issues token j. (T + 1) to all other cache memory slices in the system and token value (if any). Indicates that the message from the requesting party j corresponding to t + 1 can be processed. The requester also increments its token and checks the work queue for any matching requests after the CSA update.
ばらばらのCSA更新の処理について説明する。前述のように、物理分散キャッシュメモリ・スライスのネットワークは、順番に処理可能なように、タグ付き順序保存要求を並び替えることができる。しかし、物理分散キャッシュメモリ・スライスのネットワークはまた、同様に各キャッシュメモリ・スライスにより受信されたCSA更新も並び替えることができる。 A process of updating CSA separately will be described. As described above, the network of physical distributed cache memory slices can reorder tagged order storage requests so that they can be processed in order. However, the network of physical distributed cache memory slices can also reorder CSA updates received by each cache memory slice as well.
一時的に図7を参照して、例えばキャッシュメモリ・スライス701Aが近くのキャッシュに連続してタグ更新j.(t+1)及びj.(t+2)を含む2つのCSA更新を送出し、キャッシュメモリ・スライス702Bにばらばらの順番で到達したことについて検討する。更に、キャッシュメモリ・スライス702Bがタグ更新j.(t+1)及びj.(t+2)を含むCSA更新を待機する必要があるタグ付き順序保存要求を有するが、キャッシュメモリ・スライス702Aからタグ更新j.t+2を示す唯一のCSA更新を受信したことを仮定する。このシナリオでは、CSA更新は順序が狂っている。
Temporarily referring to FIG. 7, for example, cache memory slice 701A sends two CSA updates including tag updates j. (T + 1) and j. (T + 2) sequentially to a nearby cache. Consider that the cache memory slices 702B have been reached in a discrete order. In addition, cache memory slice 702B has a tagged ordered save request that needs to wait for a CSA update including tag updates j. (T + 1) and j. (T + 2), but from
キャッシュメモリ・スライスが狂った順序でCSA更新メッセージのタグ更新を受信した場合(タグ更新j.t+1、j.t+2、j.t+3及びj.t+4を受信する前にタグ更新j.t+5を受信した場合)、何らかの他のキャッシュメモリ・スライスは、j.t+2、j.t+3等を順番に生成してタグ更新j.t+5の発行を起動するために順番にj.t+1を受信する必要がある。従って、キャッシュメモリ・スライスが前の更新を受信せずにタグ更新j.t+nを受信した場合、タグ更新j.t+nの受信時に、キャッシュがj.t+nを含むそれまでの全ての順序保存を処理することが安全である。 When CSA update message tag updates are received in the order in which the cache memory slices are out of order (before receiving tag update j.t + 1, j.t + 2, j.t + 3 and j.t + 4) When tag update j.t + 5 is received), any other cache memory slice generates j.t + 2, j.t + 3, etc. in order and issues tag update j.t + 5 It is necessary to receive j.t + 1 in order to start. Therefore, if the cache memory slice receives a tag update j.t + n without receiving the previous update, when the tag update j.t + n is received, the cache will contain j.t + n It is safe to handle all sequence preservation.
t+nの更なる動作は2bを法として実行される。ただし、bはタグのカウンタ部分のビット数である。カウンタが限られた数のbビットを有するため、更なる動作は、最大カウンタ値を超過して小さい値にロールオーバーしてもよい。ロールオーバー状態の否定的な影響を回避するように注意しなければならない。一実施例では、ビット“b”の数は、最大ネットワーク待ち時間(すなわち最大ネットワーク遅延)に比較して十分であり、それにより、トークン・レジスタがロールオーバーするときまでに、プロセッサは全ての前の順序保存要求を処理している。他の実施例では、ロールオーバーしてもよいTRレジスタを備えたプロセッサ/要求側は、各キャッシュメモリ・スライスにポーリングし、それぞれが全てのタグ付きメモリ要求を処理してS-1に到達しているか否かを決定する。全てのキャッシュメモリ・スライスが終了したとプロセッサに応答すると、プロセッサは、その所定のTRレジスタがロールオーバーすることを許可する。 Further operation of t + n is performed a 2 b modulo. Where b is the number of bits in the counter portion of the tag. Since the counter has a limited number of b bits, further operations may roll over to a smaller value beyond the maximum counter value. Care must be taken to avoid the negative effects of rollover conditions. In one embodiment, the number of bits “b” is sufficient compared to the maximum network latency (ie, the maximum network delay), so that by the time the token register rolls over, the processor Processing an order save request. In another embodiment, a processor / requestor with a TR register that may roll over polls each cache memory slice, each processing all tagged memory requests and reaching S-1. Determine whether or not. Upon responding to the processor that all cache memory slices have been completed, the processor allows that given TR register to roll over.
各要求側のTRカウンタは、限られた数のビット(“b”ビット)であり、従って、“b”ビットでタグを生成する。すなわち、最大カウンタ値及びタグの“t”は2b-1である。 Each requesting TR counter has a limited number of bits ("b" bits) and therefore generates a tag with "b" bits. That is, the maximum counter value and the tag “t” are 2 b −1.
キャッシュメモリ・スライスk702Aがj.2b-2のタグを備えたCSA更新を受信したが、j.0〜j.2b-3のタグ値を備えたものを含むその他のCSA更新を受信していないことを仮定する。更に、キャッシュメモリ・スライスk702Aがその順序保存要求の全てを処理し、j.2b-1のタグ値でCSA更新を送出することを仮定する。j.2b-1のタグ更新を備えたCSA更新の発行は、他のキャッシュメモリ・スライス(キャッシュメモリ・スライスm702B等)がその他のCSA更新を待機せずにj.2b-1を有するタグ付き順序保存要求を処理することを起動してもよい。その後、キャッシュメモリ・スライスm702Bは、タグj.0がj.2b-1の次のカウンタ値であるため、j.0の更新タグを備えたCSA更新メッセージを発行してもよい。 Cache memory slice k702A receives a CSA update with a tag of j.2 b -2, but receives other CSA updates, including those with a tag value of j.0 to j.2 b -3 Assume that it is not. Further assume that cache memory slice k702A processes all of its order preservation requests and sends a CSA update with a tag value of j.2 b -1. issuance of CSA update with a tag update of J.2 b -1, the other cache memory slices (cache memory slices m702B etc.) has a J.2 b -1 without waiting other CSA update Processing of the tagged order storage request may be activated. Thereafter, since the tag j.0 is the next counter value after j.2 b −1, the cache memory slice m702B may issue a CSA update message including the update tag of j.0.
図9Bを参照すると、キャッシュメモリ・スライスの制御ロジックにより実行される制御機能のフローチャートが、タグ更新の処理について図示されている。 Referring to FIG. 9B, a flowchart of the control functions performed by the cache memory slice control logic is illustrated for the tag update process.
950において、各キャッシュメモリ・スライスの制御ロジックにより実行されるCSA更新ルーチンは、電源投入時又はリセット時に初期化される。 At 950, the CSA update routine executed by the control logic of each cache memory slice is initialized at power up or reset.
952において、制御ロジックは、キャッシュメモリ・スライスがタグ更新j.tを備えたCSA更新メッセージを受信しているか否かを決定する。そうでない場合、制御ロジックは952にループバックし、基本的にタグ更新の受信を待機する。タグ更新j.tを備えたCSA更新メッセージが受信されると、制御ロジックは972に進む。 At 952, the control logic determines whether the cache memory slice has received a CSA update message with tag update j.t. Otherwise, the control logic loops back to 952 and basically waits to receive tag updates. When a CSA update message with tag update j.t is received, control logic proceeds to 972.
972において、制御ロジックは、CSA[j]をtに等しく設定することにより、キャッシュ・シーケンス・アレイ・テーブルへの現行のエントリを更新する。次に974において、制御ロジックは、“j.t”のタグを備えた何らかの保留の順序保存要求をキャッシュメモリ・スライスに処理させる。順序保存要求を処理した後に、980において、制御ロジックは952に戻り、次の更新を受信する。 At 972, the control logic updates the current entry into the cache sequence array table by setting CSA [j] equal to t. Next, at 974, the control logic causes the cache memory slice to process any pending order preservation request with the tag “j.t”. After processing the save order request, at 980, the control logic returns to 952 to receive the next update.
特定の実施例について説明し、添付図面に図示したが、このような実施例は広い説明の単なる例示であり、限定ではないことがわかる。また、様々な他の変更が当業者に思いつくため、本発明は図示及び記載の特定の構成及び配置に限定されないことがわかる。例えば、本発明又はその特徴の一部をハードウェア、ファームウェア、ソフトウェア又はその組み合わせで実施することが可能である。その場合、ソフトウェアはプロセッサ読取可能記憶媒体(磁気、光又は半導体記憶装置等)に提供される。 While specific embodiments have been described and illustrated in the accompanying drawings, it will be understood that such embodiments are merely illustrative of the broad description and not limiting. In addition, since various other modifications will occur to those skilled in the art, it will be understood that the invention is not limited to the specific configurations and arrangements shown and described. For example, the present invention or some of its features can be implemented in hardware, firmware, software, or a combination thereof. In that case, the software is provided on a processor readable storage medium (such as magnetic, optical or semiconductor storage).
Claims (40)
前記相互接続ネットワークに結合され、要求側識別表示と保存シーケンス・トークンとを有するタグ付き順序保存要求を生成する第1レベルのキャッシュメモリ・スライスと、
前記相互接続ネットワークに結合され、前記タグ付き順序保存要求の各タグに応じて、物理分散キャッシュメモリシステムを通じて順番に順序保存要求を実行する第2レベルのキャッシュメモリ・スライスと
を有する物理分散キャッシュメモリシステム。 An interconnection network;
A first level cache memory slice coupled to the interconnect network for generating a tagged sequence storage request having a requester identification and a storage sequence token;
A physical distributed cache memory coupled to the interconnect network and having a second level cache memory slice for sequentially executing the order preservation request through the physical distributed cache memory system in response to each tag of the tagged order preservation request system.
前記タグ付き順序保存要求のうち1つ以上は、前記第2レベルのキャッシュメモリ・スライスのうち少なくとも1つにより、ばらばらの順番で受信される物理分散キャッシュメモリシステム。 The physical distributed cache memory system according to claim 1,
A physical distributed cache memory system in which one or more of the tagged ordered storage requests are received in a disjoint order by at least one of the second level cache memory slices.
前記第1レベルのキャッシュメモリ・スライスのそれぞれは、前記タグ付き順序保存要求を生成する固有の要求側識別表示とシーケンス・トークン・レジスタとを有する物理分散キャッシュメモリシステム。 The physical distributed cache memory system according to claim 1,
Each of the first level cache memory slices comprises a physical distributed cache memory system having a unique requester identification and a sequence token register that generates the tagged order preservation request.
前記第2レベルのキャッシュメモリ・スライスのそれぞれは、前記物理分散キャッシュメモリシステムを通じて順番に前記順序保存要求を実行するキャッシュ・シーケンス・アレイを有する物理分散キャッシュメモリシステム。 The physical distributed cache memory system according to claim 1,
Each of the second level cache memory slices comprises a physical distributed cache memory system having a cache sequence array that sequentially executes the order preservation requests through the physical distributed cache memory system.
前記キャッシュ・シーケンス・アレイは、キャッシュ・シーケンス・エントリとして順序保存要求に関連する保存シーケンス・トークンを保存するキャッシュ・シーケンス・アレイ・テーブルを有し、
前記キャッシュ・シーケンス・エントリは、前記キャッシュメモリ・スライスが現在実行することができる1つ以上の順序保存要求を示す物理分散キャッシュメモリシステム。 The physical distributed cache memory system according to claim 4,
The cache sequence array has a cache sequence array table that stores a save sequence token associated with a save order request as a cache sequence entry;
The physical distributed cache memory system, wherein the cache sequence entry indicates one or more order preservation requests that the cache memory slice can currently execute.
前記第2レベルのキャッシュメモリ・スライスのそれぞれは、前記キャッシュ・シーケンス・アレイに結合された制御ロジックを更に有し、
前記制御ロジックは、前記順序保存要求の順番の実行を制御し、前記第2レベルのキャッシュメモリ・スライスを更新するキャッシュ・シーケンス・アレイを生成する物理分散キャッシュメモリシステム。 The physical distributed cache memory system according to claim 4,
Each of the second level cache memory slices further comprises control logic coupled to the cache sequence array;
The physical distributed cache memory system, wherein the control logic generates a cache sequence array that controls execution of the order of the order preservation request and updates the second level cache memory slice.
前記第1レベルのキャッシュメモリ・スライスは、それぞれプロセッサに結合され、前記タグ付き順序保存要求を生成する物理分散キャッシュメモリシステム。 The physical distributed cache memory system according to claim 1,
Each of the first level cache memory slices is coupled to a processor and generates a tagged order preservation request.
前記プロセッサは、前記タグ付き順序保存要求を生成する内部キャッシュメモリを有する物理分散キャッシュメモリシステム。 The physical distributed cache memory system according to claim 7,
The physical distributed cache memory system, wherein the processor includes an internal cache memory that generates the tagged order storage request.
1つ以上のプロセッサに結合された上位レベルのキャッシュメモリを更に有する物理分散キャッシュメモリシステム。 The physical distributed cache memory system according to claim 1,
A physical distributed cache memory system further comprising a higher level cache memory coupled to one or more processors.
前記1つ以上のプロセッサは、前記タグ付き順序保存要求を生成する内部キャッシュメモリを有する物理分散キャッシュメモリシステム。 The physical distributed cache memory system according to claim 9,
The physical distributed cache memory system, wherein the one or more processors include an internal cache memory that generates the tagged order storage request.
前記上位レベルのキャッシュメモリは、前記タグ付き順序保存要求を生成する物理分散キャッシュメモリシステム。 The physical distributed cache memory system according to claim 9,
The higher-level cache memory is a physically distributed cache memory system that generates the tagged order storage request.
要求側識別表示と保存シーケンス番号とを示す順序保存要求にタグを付与し、
タグ付き順序保存要求を前記物理分散キャッシュメモリシステムのキャッシュメモリ・スライスに送信し、
前記要求側識別表示に関連する予想シーケンス番号と、前記保存シーケンス番号とを比較し、
前記保存シーケンス番号が前記予想シーケンス番号に合致する場合、前記順序保存要求を実行することを有する方法。 A method for order preservation requests in a physical distributed cache memory system, comprising:
A tag is attached to the order storage request indicating the request side identification display and the storage sequence number,
Sending a tagged sequence save request to the cache memory slice of the physical distributed cache memory system;
Comparing the expected sequence number associated with the requester identification with the stored sequence number;
Executing the order preservation request if the preservation sequence number matches the expected sequence number;
前記保存シーケンス番号が前記予想シーケンス番号に合致しない場合、後の実行のために、前記タグ付き順序保存要求を保存することを更に有する方法。 The method of claim 12, comprising:
The method further comprising saving the tagged sequence save request for later execution if the saved sequence number does not match the expected sequence number.
前記順序保存要求を実行したことに応じて、前記要求側識別表示に関連する前記予想シーケンス番号を更新することを更に有する方法。 The method of claim 12, comprising:
The method further comprising updating the expected sequence number associated with the requester identification in response to performing the order storage request.
前記順序保存要求を実行する前に、要求側により行われた前の順序保存要求が実行されているか否かを決定し、そうである場合には、前記順序保存要求を実行することを更に有する方法。 The method of claim 12, comprising:
Before executing the order saving request, it is further determined whether a previous order saving request made by the requester is being executed, and if so, executing the order saving request. Method.
前記決定することは、前記順序保存要求を実行するために、前記前の順序保存要求に関連する保存シーケンス番号と、前記要求側識別表示とが、前記キャッシュメモリ・スライスにより受信されているか否かを決定する方法。 16. A method according to claim 15, comprising
The determining is whether a save sequence number associated with the previous order save request and the requester identification is received by the cache memory slice to execute the order save request. How to determine.
前記要求側により行われた全ての前の順序保存要求が実行されていないと決定されたときに、全ての前の順序保存要求が実行されるまで、現行の順序保存の実行が遅れる方法。 16. A method according to claim 15, comprising
A method in which execution of the current order save is delayed until all previous order save requests are executed when it is determined that all previous order save requests made by the requester have not been executed.
順序保存要求を開始した要求側を示す要求側識別子と、
前記順序保存要求のシーケンスを示すトークン値と、
前記要求側識別子及び前記トークン値が前記キャッシュメモリにより読み取られるように利用可能であることを示すメッセージ識別子と
を有するデータ信号フロー。 A data signal flow coupled to a cache memory for execution of an order of order preservation requests,
A requester identifier that indicates the requester that initiated the save order request; and
A token value indicating a sequence of the order storage request;
A data signal flow comprising: a request identifier and a message identifier indicating that the token value is available to be read by the cache memory.
前記メッセージ識別子は、前記要求側識別子及び前記トークン値が順序保存要求に付与されることを更に示すデータ信号フロー。 A data signal flow according to claim 18, comprising:
The data signal flow further indicating that the request identifier and the token value are added to the order storage request, the message identifier.
前記順序保存要求と、
データを保存するアドレスと、
保存される前記順序保存要求のデータと
を更に有するデータ信号フロー。 A data signal flow according to claim 19,
The order storage request;
An address to store the data,
A data signal flow further comprising: the order storage request data to be stored;
前記メッセージ識別子は、前記要求側識別子及び前記トークン値がキャッシュ・シーケンス・アレイを更新するためのものであることを更に示す方法。 A data signal flow according to claim 18, comprising:
The method of further indicating that the message identifier is for the requestor identifier and the token value to update a cache sequence array.
前記複数のプロセッサに結合され、複数のプライマリ相互接続ネットワークと、前記プライマリ相互接続ネットワークに結合された複数のキャッシュメモリ・スライスとを有する分散キャッシュメモリシステムと、
前記複数のプロセッサと前記分散キャッシュメモリシステムの前記プライマリ相互接続ネットワークとの間に結合された複数のキャッシュメモリと
を有する処理ユニットであって、
プロセッサ又はキャッシュメモリは、前記分散キャッシュメモリシステムの前記複数のキャッシュメモリ・スライスの順序保存要求に付与するタグを生成するための固有の要求側識別表示とシーケンス・トークン・レジスタとを有し、前記タグは、要求側識別表示と前記要求側識別表示に関連するシーケンス・トークンとを有し、
各キャッシュメモリ・スライスは、前記分散キャッシュメモリシステムを通じて順番に前記順序保存要求を実行するキャッシュ・シーケンス・アレイを有する処理ユニット。 A plurality of processors each having one or more levels of processor cache memory;
A distributed cache memory system coupled to the plurality of processors and having a plurality of primary interconnect networks and a plurality of cache memory slices coupled to the primary interconnect networks;
A processing unit comprising: a plurality of cache memories coupled between the plurality of processors and the primary interconnect network of the distributed cache memory system;
The processor or cache memory has a unique requester identification and a sequence token register for generating a tag to be attached to an order preservation request of the plurality of cache memory slices of the distributed cache memory system, The tag has a requester identification and a sequence token associated with the requester identification;
Each cache memory slice includes a processing unit having a cache sequence array that sequentially executes the order preservation requests through the distributed cache memory system.
前記複数のキャッシュメモリ・スライスの前記順序保存要求のうち1つ以上は、少なくとも1つのキャッシュメモリ・スライスによりばらばらの順番で受信される処理ユニット。 A processing unit according to claim 22,
A processing unit in which one or more of the order preservation requests of the plurality of cache memory slices are received in a disjoint order by at least one cache memory slice.
前記キャッシュ・シーケンス・アレイは、キャッシュ・シーケンス・エントリとして順序保存要求に関連する保存シーケンス・トークンを保存するキャッシュ・シーケンス・アレイ・テーブルを有し、
前記キャッシュ・シーケンス・エントリは、前記キャッシュメモリ・スライスが現在実行することができる順序保存要求を示す処理ユニット。 A processing unit according to claim 22,
The cache sequence array has a cache sequence array table that stores a save sequence token associated with a save order request as a cache sequence entry;
The cache sequence entry is a processing unit that indicates an order preservation request that the cache memory slice can currently execute.
前記複数のキャッシュメモリ・スライスのうち1つのキャッシュメモリ・スライスは、その順番を示す所定の要求側のキャッシュ・シーケンス・エントリに合致するシーケンス・トークンを有する順序保存要求を受信し、
前記1つのキャッシュメモリ・スライスは、現行の順序保存要求を実行する処理ユニット。 25. A processing unit according to claim 24, comprising:
One cache memory slice of the plurality of cache memory slices receives a store order request having a sequence token that matches a predetermined requesting cache sequence entry indicating the order;
The one cache memory slice is a processing unit that executes a current order preservation request.
前記1つのキャッシュメモリ・スライスは、前記複数のキャッシュメモリ・スライスの前記キャッシュ・シーケンス・エントリを更に更新する処理ユニット。 The processing unit according to claim 25, wherein
The one cache memory slice further updates the cache sequence entry of the plurality of cache memory slices.
前記複数のキャッシュメモリ・スライスのうち1つのキャッシュメモリ・スライスは、そのばらばらの順番を示す所定の要求側のキャッシュ・シーケンス・エントリに合致しないシーケンス・トークンを有する順序保存要求を受信し、
前記1つのキャッシュメモリ・スライスは、他の順序保存要求との後の順番の実行のために、現行の順序保存要求を保存する処理ユニット。 25. A processing unit according to claim 24, comprising:
One of the plurality of cache memory slices receives a store order request having a sequence token that does not match a predetermined requesting cache sequence entry indicating the disjoint order;
The one cache memory slice is a processing unit that stores a current save order request for subsequent order execution with other save order requests.
ダイナミック・ランダムアクセスメモリと、
前記ダイナミック・ランダムアクセスメモリ及び前記入出力装置に結合されたマルチプロセッサ・プロセッサと
を有するコンピュータシステムであって、
前記マルチプロセッサ・プロセッサは、
1つ以上のレベルのプロセッサ・キャッシュメモリをそれぞれ有する複数のプロセッサと、
前記複数のプロセッサに結合され、相互接続ネットワークと、前記相互接続ネットワークに結合された複数のキャッシュメモリ・スライスとを有する分散キャッシュメモリシステムと、
前記複数のプロセッサと前記相互接続ネットワークとの間に結合された複数のキャッシュメモリと
を有し、
プロセッサ又はキャッシュメモリは、前記分散キャッシュメモリシステムの前記複数のキャッシュメモリ・スライスの順序保存要求に付与するタグを生成するための固有の要求側識別表示とシーケンス・トークン・レジスタとを有し、前記タグは、要求側識別表示と前記要求側識別表示に関連するシーケンス・トークンとを有し、
各キャッシュメモリ・スライスは、前記分散キャッシュメモリシステムを通じて順番に前記順序保存要求を実行するキャッシュ・シーケンス・アレイを有するコンピュータシステム。 An input / output device;
Dynamic random access memory,
A computer system comprising: said dynamic random access memory; and a multiprocessor processor coupled to said input / output device,
The multiprocessor processor is:
A plurality of processors each having one or more levels of processor cache memory;
A distributed cache memory system coupled to the plurality of processors and having an interconnect network and a plurality of cache memory slices coupled to the interconnect network;
A plurality of cache memories coupled between the plurality of processors and the interconnect network;
The processor or cache memory has a unique requester identification and a sequence token register for generating a tag to be attached to an order preservation request of the plurality of cache memory slices of the distributed cache memory system, The tag has a requester identification and a sequence token associated with the requester identification;
A computer system wherein each cache memory slice has a cache sequence array that sequentially executes the order preservation requests through the distributed cache memory system.
前記複数のキャッシュメモリ・スライスのうち1つは、その順番を示す所定の要求側のキャッシュ・シーケンス・エントリに合致するシーケンス・トークンを有する順序保存要求を受信し、
前記1つのキャッシュメモリ・スライスは、現行の順序保存要求を実行するコンピュータシステム。 29. A computer system according to claim 28, comprising:
One of the plurality of cache memory slices receives a save order request having a sequence token that matches a predetermined requesting cache sequence entry indicating the order;
The one cache memory slice is a computer system that executes a current order preservation request.
前記1つのキャッシュメモリ・スライスは、前記複数のキャッシュメモリ・スライスの前記キャッシュ・シーケンス・エントリを更に更新する処理ユニット。 30. A computer system according to claim 29, comprising:
The one cache memory slice further updates the cache sequence entry of the plurality of cache memory slices.
順序保存要求は、要求側の他の順序要求に関して順番の実行を必要とする要求側の保存要求であるコンピュータシステム。 29. A computer system according to claim 28, comprising:
The order storage request is a computer system that is a request side storage request that requires execution of an order with respect to another order request on the request side.
前の順序保存要求は、現行の順序保存要求が処理可能になる前に処理を必要とするコンピュータシステム。 A computer system according to claim 31, wherein
A computer system that requires processing prior save order requests before the current save order request can be processed.
無順序保存要求は、要求側の他の順序要求に関してばらばらの順番で実行可能な要求側の保存要求であるコンピュータシステム。 A computer system according to claim 30, comprising
An unordered save request is a request side save request that can be executed out of order with respect to other order requests on the request side.
前記相互接続ネットワークに結合され、要求側識別表示と保存シーケンス・トークンとを含むタグをそれぞれ有するタグ付き順序保存要求を前記相互接続ネットワークに結合する複数のプロセッサと、
前記相互接続ネットワークに結合され、前記タグ付き順序保存要求の各タグに応じて、順番に前記複数のプロセッサから順序保存要求を実行する複数のキャッシュメモリ・スライスと
を有する集積回路を有するマルチプロセッサ。 An interconnection network;
A plurality of processors coupled to the interconnect network and coupled to the interconnect network for tagged sequence storage requests each having a tag including a requester identification and a storage sequence token;
A multiprocessor having an integrated circuit coupled to the interconnect network and having a plurality of cache memory slices that sequentially execute the order preservation requests from the plurality of processors in response to each tag of the tagged order preservation request.
順序保存要求は、要求側の他の順序要求に関して順番の実行を必要とする保存要求であるマルチプロセッサ。 A multiprocessor according to claim 34, comprising:
The order storage request is a multiprocessor that is a storage request that requires execution of an order with respect to another order request on the requesting side.
前の順序保存要求は、現行の順序保存要求が処理可能になる前に処理を必要とするマルチプロセッサ。 36. The multiprocessor of claim 35, wherein
Multi-processors that require processing before a previous save order request can be processed before the current save order request can be processed.
無順序保存要求は、他の順序要求に関してばらばらの順番で実行可能な保存要求であるマルチプロセッサ。 36. The multiprocessor of claim 35, wherein
An unordered save request is a multiprocessor that is a save request that can be executed out of order with respect to other order requests.
前記複数のキャッシュメモリ・スライスのそれぞれは、前記総合接続ネットワークを通じて順番に前記順序保存要求を実行するキャッシュ・シーケンス・アレイを有するマルチプロセッサ。 A multiprocessor according to claim 34, comprising:
Each of the plurality of cache memory slices includes a cache sequence array that sequentially executes the order preservation request through the general connection network.
前記キャッシュ・シーケンス・アレイは、キャッシュ・シーケンス・エントリとして順序保存要求に関連する保存シーケンス・トークンを保存するキャッシュ・シーケンス・アレイ・テーブルを有し、
前記キャッシュ・シーケンス・エントリは、前記キャッシュメモリ・スライスが現在実行することができる順序保存要求を示すマルチプロセッサ。 40. A multiprocessor according to claim 38, wherein
The cache sequence array has a cache sequence array table that stores a save sequence token associated with an order save request as a cache sequence entry;
The cache sequence entry is a multiprocessor indicating an order preservation request that the cache memory slice can currently execute.
前記複数のキャッシュメモリ・スライスは、前記複数のプロセッサにより共有される分散キャッシュメモリシステムから前記相互接続ネットワークに結合されるマルチプロセッサ。 A multiprocessor according to claim 34, comprising:
The plurality of cache memory slices are coupled to the interconnect network from a distributed cache memory system shared by the plurality of processors.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/691,716 US7338424B2 (en) | 2002-10-25 | 2003-10-22 | Packaging machine |
PCT/US2004/034147 WO2005041047A2 (en) | 2003-10-22 | 2004-10-15 | Method and apparatus for efficient ordered stores over an interconnection network |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007509439A true JP2007509439A (en) | 2007-04-12 |
JP4658064B2 JP4658064B2 (en) | 2011-03-23 |
Family
ID=34521922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006536679A Expired - Fee Related JP4658064B2 (en) | 2003-10-22 | 2004-10-15 | Method and apparatus for efficient sequence preservation in interconnected networks |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP4658064B2 (en) |
KR (1) | KR100841130B1 (en) |
DE (1) | DE112004001984T5 (en) |
WO (1) | WO2005041047A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010218320A (en) * | 2009-03-18 | 2010-09-30 | Fujitsu Ltd | Storage apparatus |
JP2010537265A (en) * | 2007-08-16 | 2010-12-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | System and method for allocating cache sectors (cache sector allocation) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190820B2 (en) | 2008-06-13 | 2012-05-29 | Intel Corporation | Optimizing concurrent accesses in a directory-based coherency protocol |
CN118488115B (en) * | 2024-07-10 | 2024-09-10 | 湖南省通信建设有限公司 | Diversified business scenario implementation platform and data calling method based on MEC network slicing |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05143373A (en) * | 1991-11-18 | 1993-06-11 | Nec Corp | Shared data control system |
JPH06214875A (en) * | 1993-01-13 | 1994-08-05 | Hitachi Ltd | Storage controller |
JPH07114515A (en) * | 1993-10-19 | 1995-05-02 | Hitachi Chem Co Ltd | Decentralized memory computer with network for synchronous communication |
JPH07160501A (en) * | 1993-01-08 | 1995-06-23 | Internatl Business Mach Corp <Ibm> | Data processing system |
JPH10187534A (en) * | 1996-09-27 | 1998-07-21 | Hewlett Packard Co <Hp> | Method and system for maintaining strong order in coherent memory system |
JPH113268A (en) * | 1996-07-01 | 1999-01-06 | Sun Microsyst Inc | System and device for parallel execution of memory transaction by using plural memory models |
US20020087815A1 (en) * | 2000-12-30 | 2002-07-04 | Arimilli Ravi Kumar | Microprocessor reservation mechanism for a hashed address system |
US6529999B1 (en) * | 1999-10-27 | 2003-03-04 | Advanced Micro Devices, Inc. | Computer system implementing system and method for ordering write operations and maintaining memory coherency |
-
2004
- 2004-10-15 DE DE112004001984T patent/DE112004001984T5/en not_active Withdrawn
- 2004-10-15 JP JP2006536679A patent/JP4658064B2/en not_active Expired - Fee Related
- 2004-10-15 WO PCT/US2004/034147 patent/WO2005041047A2/en active Application Filing
- 2004-10-15 KR KR1020067007706A patent/KR100841130B1/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05143373A (en) * | 1991-11-18 | 1993-06-11 | Nec Corp | Shared data control system |
JPH07160501A (en) * | 1993-01-08 | 1995-06-23 | Internatl Business Mach Corp <Ibm> | Data processing system |
JPH06214875A (en) * | 1993-01-13 | 1994-08-05 | Hitachi Ltd | Storage controller |
JPH07114515A (en) * | 1993-10-19 | 1995-05-02 | Hitachi Chem Co Ltd | Decentralized memory computer with network for synchronous communication |
JPH113268A (en) * | 1996-07-01 | 1999-01-06 | Sun Microsyst Inc | System and device for parallel execution of memory transaction by using plural memory models |
JPH10187534A (en) * | 1996-09-27 | 1998-07-21 | Hewlett Packard Co <Hp> | Method and system for maintaining strong order in coherent memory system |
US6529999B1 (en) * | 1999-10-27 | 2003-03-04 | Advanced Micro Devices, Inc. | Computer system implementing system and method for ordering write operations and maintaining memory coherency |
US20020087815A1 (en) * | 2000-12-30 | 2002-07-04 | Arimilli Ravi Kumar | Microprocessor reservation mechanism for a hashed address system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010537265A (en) * | 2007-08-16 | 2010-12-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | System and method for allocating cache sectors (cache sector allocation) |
US8433851B2 (en) | 2007-08-16 | 2013-04-30 | International Business Machines Corporation | Reducing wiring congestion in a cache subsystem utilizing sectored caches with discontiguous addressing |
JP2010218320A (en) * | 2009-03-18 | 2010-09-30 | Fujitsu Ltd | Storage apparatus |
Also Published As
Publication number | Publication date |
---|---|
DE112004001984T5 (en) | 2006-08-17 |
WO2005041047A3 (en) | 2005-08-18 |
KR100841130B1 (en) | 2008-06-24 |
JP4658064B2 (en) | 2011-03-23 |
KR20060063994A (en) | 2006-06-12 |
WO2005041047A2 (en) | 2005-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI391821B (en) | Processor unit, data processing system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state | |
JP4085389B2 (en) | Multiprocessor system, consistency control device and consistency control method in multiprocessor system | |
US8117392B2 (en) | Method and apparatus for efficient ordered stores over an interconnection network | |
CN104106061B (en) | Multi-processor data process system and method therein, cache memory and processing unit | |
JP4119380B2 (en) | Multiprocessor system | |
JP2002304328A (en) | Coherence controller for multi-processor system, module incorporating the same, and multi-module architecture multi-processor system | |
JP2004192622A (en) | Method and data processing system for microprocessor communication in cluster based multiprocessor radio network | |
JP2002373115A (en) | Replacement control method for shared cache memory and device therefor | |
JP2004192620A (en) | Method and data processing system for microprocessor communication using processor interconnected in multiprocessor system | |
JP2021507412A (en) | Low power management for multi-node systems | |
US12093177B2 (en) | Multi-level partitioned snoop filter | |
US7685373B2 (en) | Selective snooping by snoop masters to locate updated data | |
CN111143244A (en) | Memory access method of computer device and computer device | |
CN114036077B (en) | Data processing method and related device | |
CN115407839A (en) | Server structure and server cluster architecture | |
JP2003281079A (en) | Bus interface selection by page table attribute | |
JP2004192619A (en) | Method, processing unit and data processing system for microprocessor communication in multiprocessor system | |
JP2004199677A (en) | System for and method of operating cache | |
JP4658064B2 (en) | Method and apparatus for efficient sequence preservation in interconnected networks | |
CN104583974B (en) | Reduced expandable cache directory | |
JP2004192621A (en) | Method and data processing system for microprocessor communication in cluster based multiprocessor system | |
US20210397560A1 (en) | Cache stashing system | |
US11874783B2 (en) | Coherent block read fulfillment | |
JPH10240695A (en) | Operation using local storage device of plural unprocessed requests in sci system | |
US12346607B2 (en) | Computer system and method for data access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100112 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100409 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100416 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100512 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101124 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101222 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |