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.)

UMI

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.