Next: Portal Addressing Prev: Overview Contents Up: Overview Contents

Data Movement

A Portal represents an opening in the address space of a process. Other processes can use a Portal to read (get), write (put), or atomically swap (getput) the memory associated with the portal. Every data movement operation involves two processes, the initiator and the target. The initiator is the process that initiates the data movement operation. The target is the process that responds to the operation by either accepting the data for a put operation, replying with the data for a get operation, or both for a swap operation.

In this discussion, activities attributed to a process may refer to activities that are actually performed by the process or on behalf of the process. The inclusiveness of our terminology is important in the context of application bypass. In particular, when we note that the target sends a reply in the case of a get operation, it is possible that reply will be generated by another component in the system, bypassing the application.

Figures 2.1, 2.2, 2.3 present graphical interpretations of the Portal data movement operations: put, get, and swap. In the case of a put operation, the initiator sends a put request message containing the data to the target. The target translates the Portal addressing information in the request using its local Portal structures. When the request has been processed, the target optionally sends an acknowledgement message.

Portal Put
Figure 2.1: Portal Put (Send)

In the case of a get operation, the initiator sends a get request to the target. As with the put operation, the target translates the Portal addressing information in the request using its local Portal structures. Once it has translated the Portal addressing information, the target sends a reply that includes the requested data.

Portal Get
Figure 2.2: Portal Get

We should note that Portal address translations are only performed on nodes that respond to operations initiated by other nodes. Acknowledgements and replies to get operations bypass the portals address translation structures.

In the case of a swap operation, the initiator sends a getput message containing data to the target. The target translates the Portal addressing information using its local Portal structures. The target then sends the current data in a reply message and deposits the new data from the initiator.

Portal Swap
Figure 2.3: Portal Swap (Getput)

Next: Portal Addressing Prev: Overview Contents Up: Overview Contents