TOPIC: Different models of using NICs
|
|
|
|
|
| MUX/DeMUX | Must DeMUX to the right user | Through queues - no user level upcall | By address straight into memory |
| Notification | Polling/interrupt, multithreaded | Relaxed since buffering is built-in | Optional |
| Buffering | Avoids packets | Implicit buffering | No |
| DMA ( vs VA ) | Local to receiver: Receiver picks VA; Page fault must be dealt with | Optional - mechanisms for big and small messages | Inherent, sender provides receiver VAs |
| Protocol Acceleration | Define common handler types and build in hardware or user-level accelerators | Queue insert ( direct support in T3D and T3E ) | Natural |
Remote Memory:
Operations supported
+-------------+
+-------------+
|
| Write
|
|
|
| -------------> |
|
|
|
|
|
|
| Read
|
|
| Sender | ------------->
| Receiver |
|
|<------------- |
|
|
| CAS
|
|
|
| -------------> |
|
|
| <------------- |
|
+-------------+
+-------------+
Since sender needs receiver's VM information
for all the operations, it uses RPC to get it started.
Advantages and Disadvantages
|
|
|
|
| Active Messages | Message - handler model - easy implementation | Overhead of running handler |
| Remote Queues | Eases implementation by adding buffering | Latency for small messages, Bandwidth for bigger ones |
| Remote Memory | All operations are fast | Assumes trust; Knowledge of receiver's VM needed; Perverse situations like locks, multiple queues need to be handled |
Cycle of Reincarnation
Current trend: Pn -> PN -> PNp -> PPn -> ... ?
P: Processor, N: Network interface.
NI "usage" - the big picture
AM
RQ
*
RM
|
<------------------------------------------------------->
Universal
Specialized
*: position of hybrid deposit that uses queue to share addresses
A sneak preview of "Separating Data and Ctrl Xfer in Distributed OS" ( Thekkath et al. )
NFS, server doesn't trust clients, but servers and clerks trust each
other, clerks being processes that run in the client side. Clerk is involved
in transferring data to client process.
+---------+ +--------+
| |
| |
| Client |
| Server |
| |
| |
| ^ |
| |
| | |
| |
|+--|----+| |
|
|| ||
| |
|| Clerk <----------|
|
|+-------+| |
|
+---------+ +--------+