Claims
- 1. A method for masterless building block partitioning comprising:
communicating among a plurality of building blocks to determine a partition to which each of the plurality of building blocks is to be partitioned; for each unique partition to which one or more of the plurality of building blocks is to be partitioned, communicating among the one or more of the plurality of building blocks to determine building block uniqueness of the unique partition; and, joining the unique partition by each of the one or more of the plurality of building blocks.
- 2. The method of claim 1, wherein communicating among the plurality of building blocks comprises sending from each building block of the plurality to all other building blocks of the plurality a partition identifier identifying the partition to which the building block is to be partitioned.
- 3. The method of claim 2, wherein communicating among the plurality of building blocks comprises receiving by each building block of the plurality from all other building blocks of the plurality partition identifiers identifying the partitions to which all the other building blocks are to be partitioned.
- 4. The method of claim 1, wherein communicating among the plurality of building blocks comprises sending from each building block of the plurality to all other building blocks of the plurality a physical identifier identifying the building block.
- 5. The method of claim 4, wherein communicating among the plurality of building blocks further comprises receiving by each building block of the plurality from all other building blocks of the plurality physical identifiers identifying all the other building blocks.
- 6. The method of claim 4, wherein the physical identifier comprises a physical port identifier.
- 7. The method of claim 1, wherein communicating among the one or more of the plurality of building blocks comprises sending from each building block of the one or more of the plurality to all other building blocks of the one or more of the plurality a logical port identifier identifying the building block in the unique partition.
- 8. The method of claim 7, wherein communicating among the one or more of the plurality of building blocks further comprises receiving by each building block of the one or more of the plurality from all other building blocks of the one or more of the plurality logical port identifiers identifying all the other building blocks in the unique partition.
- 9. The method of claim 7, wherein the logical identifier comprises a logical port identifier.
- 10. The method of claim 1, wherein communicating among the one or more of the plurality of building blocks comprises determining by each building block of the one or more of the plurality whether the unique partition has been protected by any building block of the one or more of the plurality.
- 11. The method of claim 10, wherein determining whether the unique partition has been protected comprises examining partition protect indicators and commit indicators of the one or more of the plurality of building blocks.
- 12. The method of claim 1, wherein communicating among the one or more of the plurality of building blocks comprises committing by each building block of the one or more of the plurality to the unique partition.
- 13. The method of claim 12, wherein committing to the unique partition comprises setting a commit indicator.
- 14. The method of claim 1, wherein joining the unique partition by each of the one or more of the plurality of building blocks comprises protecting the unique partition.
- 15. The method of claim 14, wherein protecting the unique partition comprises setting a partition protect indicator and a commit indicator.
- 16. The method of claim 14, wherein joining the unique partition by each of the one or more of the plurality of building blocks further comprises each building block protecting itself.
- 17. The method of claim 16, wherein each building block protecting itself comprises setting a building block protect indicator.
- 18. The method of claim 1, further comprising removing a building block from a partition.
- 19. The method of claim 18, wherein removing a building block from a partition comprises turning off a commit indicator of the building block.
- 20. A system comprising:
a plurality of building blocks; a commit indicator for each of the plurality of building blocks to be partitioned, the commit indicator of a building block signifying that the building block has joined a partition; and, a partition protect indicator for each of the plurality of building blocks, the partition protect indicator of a building block signifying that a partition that the building block has joined is protected.
- 21. The system of claim 20, further comprising a building block protect indicator for each of the plurality of building blocks, the building block protect indicator of a building block signifying that the partition identifier of the building block can only be changed by the building block itself.
- 22. The system of claim 21, wherein the building block protect indicator further signifies that a logical identifier of the building block can only be changed by the building block itself.
- 23. The system of claim 21, wherein the building block protect indicator further signifies that a physical identifier of the building block can only be changed by the building block itself.
- 24. The system of claim 21, wherein the building block protect indicator comprises a hardware bit that can be set to zero or one.
- 25. The system of claim 20, wherein the commit indicator signifies that a logical identifier and a partition identifier of the building block cannot be changed.
- 26. The system of claim 25, wherein the logical identifier is a logical port identifier.
- 27. The system of claim 25, wherein the commit indicator comprises a hardware bit that can be set to zero or one.
- 28. The system of claim 20, wherein the partition protect indicator of a building block signifies that only other of the plurality of building blocks that have joined the partition of the building block may change the commit indicator of the building block.
- 29. The system of claim 20, wherein the partition protect indicator of the building block being set in addition to the commit indicator of the building block being set signifies that a partition that the building block has joined is protected.
- 30. The system of claim 20, wherein the partition protect indicator comprises a hardware bit that can be set to zero or one.
- 31. An article comprising:
a computer-readable medium; and, means in the medium for joining a partition in a masterless manner by a building block of a plurality of building blocks, by communicating with other building blocks of the plurality of building blocks and by examining a plurality of indicators of each of the other building blocks, including a partition protect indicator, a building block protect indicator, and a building-block-to-partition commit indicator.
- 32. The article of claim 31, wherein the medium is selected from the group consisting of: a modulated carrier signal; and a recordable data storage medium.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The following patent applications, all assigned to the assignee of this application, describe related aspects of the arrangement and operation of multiprocessor computer systems according to this invention or its preferred embodiment.
[0002] U.S. patent application Ser. No. __/___,___, by T. B. Berg et al. (BEA919990003US1) entitled “Method And Apparatus For Increasing Requestor Throughput By Using Data Available Withholding” was filed on Jan. ______, 2002.
[0003] U.S. patent application Ser. No. __/___,___, by T. B. Berg et al. (BEA920000017US1) entitled “Method And Apparatus For Using Global Snooping To Provide Cache Coherence To Distributed Computer Nodes In A Single Coherent System” was filed on Jan. ______, 2002.
[0004] U.S. patent application Ser. No. __/___,___ by T. B. Berg et al. (BEA920000018US1) entitled “Multi-level Classification Method For Transaction Address Conflicts For Ensuring Efficient Ordering In A Two-level Snoopy Cache Architecture” was filed on Jan. ______, 2002.
[0005] U.S. patent application Ser. No. __/___,___ by S. G. Lloyd et al. (BEA920000019US1) entitled “Transaction Redirection Mechanism For Handling Late Specification Changes And Design Errors” was filed on Jan. ______, 2002.
[0006] U.S. patent application Ser. No. __/___/___, T. B. Berg et al. (BEA920000020US 1) entitled “Method And Apparatus For Multi-path Data Storage And Retrieval” was filed on Jan. ______, 2002.
[0007] U.S. patent application Ser. No. __/___,___, by W. A. Downer et al. (BEA920000021US1) entitled “Hardware Support For Partitioning A Multiprocessor System To Allow Distinct Operating Systems” was filed on Jan. ______, 2002.
[0008] U.S. patent application Ser. No. __/___,___, by T. B. Berg et al. (BEA920000022US1) entitled “Distributed Allocation Of System Hardware Resources For Multiprocessor Systems” was filed on Jan. ______, 2002.
[0009] U.S. patent application Ser. No. __/___,___, by W. A. Downer et al. (BEA920010030US1) entitled “Masterless Building Block Binding To Partitions” was filed on Jan. ______, 2002.
[0010] U.S. patent application Ser. No. __/___,___, by W. A. Downer et al. (BEA920010031US1) entitled “Building Block Removal From Partitions” was filed on Jan. ______, 2002.