Claims
- 1. A system, comprising:
a plurality of nodes, wherein each node comprises an active device and a memory subsystem coupled to the active device; wherein an active device included in one of the plurality of nodes includes a memory management unit configured to receive a virtual address generated within that active device and to responsively output a global address and information identifying a translation function; wherein the memory subsystem in the one of the plurality of nodes is configured to apply the translation function identified in the information to the global address to generate a local physical address.
- 2. The system of claim 1, wherein active devices included in different ones of the plurality of nodes are configured to generate information identifying different translation functions for a same global address.
- 3. The system of claim 1, wherein each active device in a same one of the plurality of nodes is configured to generate identical information identifying the translation function for a same global address.
- 4. The system of claim 1, wherein the active device included in the one of the plurality of nodes is configured to output the global address in an address packet on an address network coupling the active device to an additional active device within the one of the plurality of nodes in order to initiate a coherency transaction for a coherency unit identified by the global address.
- 5. The system of claim 4, wherein in response to receiving the address packet from the address network, the additional active device included in the one of the plurality of nodes is configured to use the global address to determine if the additional active device has a cached copy of the coherency unit.
- 6. The system of claim 5, wherein the additional active device is configured to not use any of the translation information to determine if the additional active device has the cached copy of the coherency unit.
- 7. The system of claim 4, wherein the one of the plurality of nodes includes an interface configured to couple that node to other ones of the plurality of nodes;
wherein the interface is configured to participate in the coherency transaction by conveying the global address included in the address packet to at least one of the other ones of the plurality of nodes.
- 8. The system of claim 7, wherein if the memory subsystem determines that the coherency transaction cannot be completed within the one of the plurality of nodes, the memory subsystem is configured to provide the global address to the interface for conveyance to the at least one of the other ones of the plurality of nodes.
- 9. The system of claim 7, wherein a memory subsystem included in the at least one of the other ones of the plurality of nodes is configured to apply a different translation function to the global address received via the interface to generate a local physical address of the coherency unit within the at least one of the other ones of the plurality of nodes.
- 10. The system of claim 1, wherein a memory controller included in the memory subsystem is integrated in a same integrated circuit as the active device.
- 11. The system of claim 1, wherein a value of the translation information indicates whether any memory subsystem included in the one of the plurality of nodes currently maps the global address.
- 12. The system of claim 1, wherein a value of the translation information indicates whether any memory subsystem included in the one of the plurality of nodes is a home memory subsystem for the global address;
wherein all coherency transactions for the coherency unit identified by the global address that involve multiple ones of the plurality of nodes involve the one of the nodes that includes the home memory subsystem for the global address.
- 13. The system of claim 12, wherein the value of the translation information indicates that the one of the plurality of nodes includes the home memory subsystem for the global address by identifying a translation function used to translate all global addresses having a home memory subsystem in the one of the plurality of nodes.
- 14. A method for use in a system comprising a plurality of nodes, wherein each of the plurality of nodes includes an active device and a memory subsystem, the method comprising:
in response to generating a virtual address, an active device in a node of the plurality of nodes retrieving a global address and information identifying a translation function, wherein the global address and the information are associated with the virtual address; the active device outputting the global address to a memory subsystem included in the node; and the memory subsystem obtaining a local physical address of the data by selectively performing one of a plurality of translation functions on the global address dependent on which translation function the information identifies.
- 15. The method of claim 14, wherein if the information identifies a first translation function, the memory subsystem said obtaining comprises generating the local physical address equal to the global address.
- 16. The method of claim 15, further comprising an operating system executing on the active device creating a translation lookaside buffer entry corresponding to the virtual address, wherein the translation lookaside buffer entry includes the global address and the information identifying the first translation function, wherein the operating system selects the first translation function in order to map the global address to the local physical address within the memory subsystem.
- 17. The method of claim 14, further comprising a device in one of the nodes sending the global address to a device in an additional one of the nodes.
- 18. The method of claim 17, further comprising an additional memory subsystem in the additional one of the nodes obtaining a different local physical address of the data within the additional memory subsystem by performing a different translation function on the global address.
- 19. The method of claim 14, further comprising an operating system executing on the active device in one of the nodes creating a translation lookaside buffer entry corresponding to the virtual address in response to deciding to replicate data to the one of the nodes from an other one of the nodes, wherein the translation lookaside buffer entry corresponding to the virtual address specifies the global address and the information identifying the translation function.
- 20. The method of claim 14, further comprising determining whether a copy of the data is currently cached by the active device by comparing at least a portion of the global address to a plurality of tags identifying data cached by the active device.
PRIORITY INFORMATION
[0001] This application claims priority to U.S. provisional application Ser. No. 60/460,569, entitled “PERFORMING VIRTUAL TO GLOBAL ADDRESS TRANSLATION IN PROCESSING SUBSYSTEM”, filed Apr. 4, 2003.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60460569 |
Apr 2003 |
US |