NonStop S-Series Server Description Manual (G06.24+)

Principles of System Operation
HP NonStop S-Series Server Description Manual520331-003
2-8
Packet Transmission and Reception
Packet Transmission and Reception
ServerNet devices take different actions and use different logic based on whether the
request part of a transaction originated within the local ServerNet device or in some
other ServerNet device (called “remote ServerNet device” in Figure 2-4). The reason
for this difference is that the local device has all the necessary information about any
transaction that it originated, whereas an incoming request from a remote device is
basically unexpected and carries its own information. Figure 2-4 separately illustrates
the handling of both locally initiated and remotely initiated requests, for all four types of
packets.
In this figure, the previously shown “processor ServerNet interface” is broken down into
two major components, labeled BTE and AVT. (There are other components, but these
are the two of interest here.)
BTE is block transfer engine, and it is used for all locally initiated transaction
handling, whether read or write, request or response. In the read case, the BTE starts
the transaction by sending a read request to the remote device, including the address
for reading within that remote device. The remote device must respond with a read
response, including data of up to 64 bytes. Because the BTE tells the remote device
where to read the data and where to send it, the local processor’s BTE “pulls” the data
from the remote device.
In the write case, the BTE starts the transaction by sending a write request to the
remote device, including the address for writing within that remote device, as well as
up to 64 bytes of data to write. After the remote device has written the data, it sends
back a simple write response (header and CRC only). Because the BTE tells the
remote where to write the data and actually provides the data, the local processor’s
BTE “pushes” the data to the remote device.
AVT is access validation and translation, and it is used for all remotely initiated
transaction handling. The remote device could be another processor (in which case it
would have used its BTE to initiate the transaction) or it could be, for example, a
ServerNet addressable controller (SAC).
In the read case, the AVT receives a read request along with an address for reading
the requested data. Because this is an unexpected request, the AVT first must do an
“access validation” to determine whether the particular remote device is permitted to
access the portion of memory it wants to read. If the access is permitted, the AVT next
translates the supplied virtual address to a physical address, gets the requested data,
puts it into a read response packet, and sends the packet to the remote device. In this
case, the remote device is pulling the data.
In the write case, the AVT receives a write request along with an address and up to 64
bytes of data that the remote device wants written into the local memory. The AVT first
validates the supplied address, then proceeds if the access is permitted. The AVT
translates the virtual address to physical and stores the data in the processor memory.
Finally it sends a write response back to the remote device. In this case, the remote
device is pushing the data.