UMI
UMI is a transaction-based standard for accessing memory through request-response message exchange patterns.
Our design philosophy: make everything addressable and keep it simple.
The Universal Memory Interface (UMI) is a transaction-based standard for accessing memory through request-response message exchange patterns. UMI includes five distinct abstraction layers:
- Protocol: Protocol/application specific payload (Ethernet, PCIe)
- Transaction: Address based request-response messaging
- Signal: Latency insensitive signaling (packet, ready, valid)
- Link: Communication integrity (flow control, reliability)
- Physical: Electrical signaling (electrons, wires, etc.)
Key Features
- Independent request and response channels
- Word sizes up to 1024 bits
- Up to 256 word transfers per transaction
- Atomic transaction support
- Quality of service support
- Protection and security support
- Reserved opcodes for users and future expansion
Key Terms
- Transaction: Complete request-response memory operation.
- Message: Unidirectional request or response, consisting of a command header, address fields, and an optional data payload.
- Host: Initiator of memory requests.
- Device: Responder to memory requests.
To learn more about UMI, please visit the GitHub repo.