Claims
- 1. A message passing computer system, comprising:an interconnection; a plurality of multi-processor nodes connected to said interconnection; and a credit-based message receive unit coupled to said interconnection for controlling passage of messages through said multi-processor nodes, the message receive unit including a message buffer coupled to a plurality of credit registers; wherein the size of said buffer satisfies the condition: Buffer Size≧Packet Size*Credit Per Node*Number of Nodes.
- 2. The computer system of claim 1 wherein said buffer is constituted by a FIFO having a set of pointers for read/write access.
- 3. The computer system of claim 1 wherein each of said credit registers in a receiving node corresponds to a sending node.
- 4. The computer system of claim 3 wherein a value in said credit registers controls writing into said buffer.
- 5. The computer system of claim 4 wherein said value constitutes a maximum number of messages that the receiving node can receive from the sending node.
- 6. The computer system of claim 4, wherein the value represents the number of packets that can be written to a portion from a send node corresponding to the credit register.
- 7. The computer system of claim 4 wherein accessing messages in said buffer controls said value in said credit registers.
- 8. The computer system of claim 7 wherein said value is preset.
- 9. The computer system of claim 8 wherein each of said processor nodes comprises at least one processor end a memory.
- 10. The computer system of claim 9 wherein said buffer and said credit registers are part of a mesh coherence unit in each of said processor nodes.
- 11. The computer system of claim 1, wherein credit values associated with the credit-based message receive unit are only positive or zero.
- 12. The computer system of claim 1, wherein a send node cannot write to portions of the buffer allocated to other send nodes.
- 13. The computer system of claim 1 wherein said message receive unit comprises a multiplexer coupled to a decoder and to the plurality of credit registers.
- 14. A computer communication method in a multi-processor node computer system, comprising the steps of:using a buffer for temporarily storing messages from at least one sending node to a receiving node; using credit values stored in credit registers, each credit value corresponding to a respective one of the at least one sending node and controlling writing incoming messages from the at least one sending node into said buffer; and determining the number of accesses of the at least one sending node to said buffer in order to adjust said credit value corresponding to the at least one sending node; wherein said credit value in each of said plurality of credit registers determines the maximum number of messages that a receiving node can receive from the corresponding sending node.
- 15. The method of claim 14 comprising the further step of using a sending node ID to select a credit register corresponding to the sending node.
- 16. The method of claim 14 comprising the further step of determining the arrival of a message by receiving an interrupt signal or by periodically polling pointer registers of said buffer.
- 17. The method of claim 14 comprising the further step of using the credit value of a sending node in determining whether to discard an incoming message from said sending node.
- 18. The method of claim 14, comprising the further step of, when a message is discarded because of a lack of credits, either generating an interrupt, or generating an overflow signal, or logging overflow information.
- 19. A system comprising:A) an interconnect; B) a plurality of multiprocessor nodes connected to the interconnect, including at least 1) a bus, 2) a plurality of processors having at least a cache connected to the bus, 3) an input/output unit connected to the bus, 4) a memory unit, and 5) a mesh coherence unit connected to the bus, having at least a) a memory controller for controlling the memory unit, and b) a credit based receive unit having at least i) an input for receiving a packet from the interconnect, ii) a buffer coupled to the input for receiving, iii) a decoder, coupled to the input for receiving, for decoding an identification of the packet, iv) a credit adjustment logic unit coupled to the decoder and contents of the buffer, which, based on the decoding and the contents of the buffer creates a signal to adjust credit, v) a bank of credit registers having a credit register whose credit is adjusted based on the signal to adjust credit, for returning signals to the credit adjustment logic unit so that the credit register whose credit is adjusted corresponds to a sending unit, vi) a multiplexer coupled to the decoder and to the bank of credit registers for determining, based on the decoding, and passing, the credit value associated with the credit register whose credit is adjusted, vii) a credit evaluator for evaluating the credit value that was passed by comparing the credit value to a value corresponding to no credits left to determine if credits remain, and viii) a read/write control unit that is coupled to the buffer and to the credit evaluator and that uses results of the evaluating to determine whether to allow the packet to be written to the buffer; c) the credit adjustment logic unit being coupled to the read/write control unit to recredit credit registers depending on whether a packet is read, not read, written, or not written to the buffer.
- 20. A system comprising:a multiprocessor computer; and a message passing system within the multiprocessor computer for passing messages between processors of the multiprocessor computer, the message passing system including at least an interconnection, a plurality of multi-processor nodes connected to said interconnection, each multi-processor node having a multiple processors, and a credit-based message receive unit coupled to said interconnection for controlling passage of messages through said multi-processor nodes, the message receive unit including a message buffer coupled to a plurality of credit registers; wherein the size of said buffer satisfies the condition: Buffer Size≧Packet Size*Credit Per Node*Number of Nodes.
CROSS-REFERENCE TO CO-PENDING APPLICATIONS
This application claims the benefit of U.S. Provisional Application No. 60/084,795, filed on May 8, 1998.
This application is related to co-pending U.S. patent application Ser. No. 09/041,568, entitled “Cache Coherence Unit for Interconnecting Multiprocessor Nodes Having Pipelined Snoopy Protocol,” filed on Mar. 12, 1998; co-pending U.S. patent application Ser. No. 09/003,771, entitled “Memory Protection Mechanism for a Distributed Shared Memory Multiprocessor with Integrated Message Passing Support,” filed on Jan. 7, 1998; co-pending U.S. patent application Ser. No. 09/003,721, entitled “Cache Coherence Unit with Integrated Message Passing and Memory Protection for a Distributed, Shared Memory Multiprocessor System,” filed on Jan. 7, 1998; co-pending U.S. patent application Ser. No. Unknown, entitled “Split Sparse Directory for a Distributed Shared Memory Multiprocessor System,” filed on Mar. 30, 1999; and co-pending U.S. patent application Ser. No. Unknown, entitled “Computer Architecture for Avoiding Deadlock in Network Communications,” filed on Apr. 2, 1999, which are hereby incorporated by reference.
US Referenced Citations (5)
Non-Patent Literature Citations (4)
Entry |
Wolf-Dietrich Weber, et al., “The Mercury Interconnect Architecture: A Cost-effective Infrastructure for High-performance Servers”, In proceedings of the 24th International Symposium on Computer Architecture (ISCA '97), pp 22-30, Jun. 1997. |
http://www.webopedia.com/TERM/o/octet.html, Octet (last visited Jan. 24, 2002). |
http://www.webopedia.com/TERM/cell.html, Cell (last visited Jan. 24, 2002). |
Douglas E. Comer, Internetworking With TCP/IP VOI I: Principles, Protocols, and Architecture, Third Edition, p. 36, 308, Prentice Hall, Upper Saddle River, New Jersey. |
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/084795 |
May 1998 |
US |