# UniPro

UniPro (or Unified Protocol) is a high-speed interface technology for interconnecting integrated circuits in mobile and mobile-influenced electronics. The various versions of the UniPro protocol are created within the MIPI Alliance (Mobile Industry Processor Interface Alliance), an organization that defines specifications targeting mobile and mobile-influenced applications.
The UniPro technology and associated physical layers aim to provide high-speed data communication (gigabits/second), low-power operation (low swing signaling, standby modes), low pin count (serial signaling, multiplexing), small silicon area (small packet sizes), data reliability (differential signaling, error recovery) and robustness (proven networking concepts, including congestion management).
UniPro version 1.6 concentrates on enabling high-speed point to point communication between chips in mobile electronics. UniPro has provisions for supporting networks consisting of up to 128 UniPro devices (integrated circuit, modules, etc.). Network features are planned in future UniPro releases. In such a networked environment, pairs of UniPro devices are interconnected via so-called links while data packets are routed toward their destination by UniPro switches. These switches are analogous to the routers used in wired LAN based on gigabit Ethernet. But unlike a LAN, the UniPro technology was designed to connect chips within a mobile terminal, rather than to connect computers within a building.

## History and aims

The initiative to develop the UniPro protocol came forth out of a pair of research projects at respectively Nokia Research Center and Philips Research. Both teams independently arrived at the conclusion that the complexity of mobile systems could be reduced by splitting the system design into well-defined functional modules interconnected by a network. The key assumptions were thus that the networking paradigm gave modules well-structured, layered interfaces and that it was time to improve the system architecture of mobile systems to make their hardware- and software design more modular. In other words, the goals were to counteract the rising development costs, development risks and time-to-market impact of increasingly complex system integration.
In 2004, both companies jointly founded what is now MIPI's UniPro Working Group. Such multi-company collaboration was considered essential to achieve interoperability between components from different component vendors and to achieve the necessary scale to drive the new technology.
The name of both the working group and the standard, UniPro, reflects the need to support a wide range of modules and wide range of data traffic using a single protocol stack. Although other connectivity technologies (SPI, PCIe, USB) exist which also support a wide range of applications, the inter-chip interfaces used in mobile electronics are still diverse which differs significantly from the (in this respect more mature) computer industry.
In January 2011, UniPro Version 1.40 was completed. Its main purpose is full support for a new Physical Layer: M-PHY including support for power modes change and peer device configuration. In July 2012 UniPro v1.40 has been upgraded to UniPro v1.41 to support the newer higher speed M-PHY v2.0. The UniPro v1.4x specifications have been released together with a formal specification model (SDL).
The final draft of Version 1.6 of the UniPro specification was completed in August 2013. Its acknowledgements list 19 engineers from 12 companies and organizations: Agilent, Cadence, IEEE-ISTO, Intel, nVidia, Nokia, Qualcomm, Samsung, STMicroelectronics, Synopsys, Texas Instruments and Toshiba. The UniPro v1.6 Specification is an update to the UniPro v1.41.00 Specification, and consists solely of the UniPro specification document, SDL is no longer supported. The UniPro v1.6 Specification references the following documents:
* Specification for M-PHY, Version 3.0
* Specification for Device Descriptor Block (DDB), Version 1.0
To date, several vendors have announced the availability of UniPro IP blocks and various chip suppliers have created implementations that are at various phases of development. In the meantime, the MIPI UniPro Working Group is setting up a conformance test suite and is preparing future extensions of the technology (see UniPro Versions and Roadmap).
On January 30, 2018, JEDEC published the UFS 3.0 standard which uses MIPI M-PHY v4.1 (with HS-Gear4) and MIPI UniPro v1.8 for mobile memory with data rates up to 2900 MB/s (11,6 Gbit/s per lane, 2 lanes, 23,2 Gbit/s total).

## Main features

* gigabit/s - serial technology with a number of bandwidth scaling options
* generic - can be used for a wide range of applications and data traffic types
* scalable - from individual links to a network with up to 128 UniPro devices
* low-power - optimized for small battery-powered systems
* reliability - data errors detected and correctable via retransmission
* hardware friendly - can be implemented entirely in hardware where needed
* software friendly - similar concepts to familiar network technologies
* bandwidth utilization - provides features to manage congestion and control arbitration
* shareable - different traffic types and UniPro devices can share pins and wires
* testable - since version 1.1, UniPro mandates features to facilitate automated conformance testing

## Layered architecture

UniPro associated with its underlying PHY layer is a layered protocol stack that covers layers L1 to L4 of the OSI Reference Model for networking. UniPro introduces an extra layer L1.5 between L1 and L2 which can be regarded as a sub-layer of OSI's layer L1.

### Multiple applications

UniPro's strict layering enables it to be used for a wide range of applications:
* UFS: Universal Flash Storage. Next generation mass storage devices specified by JEDEC with a support for data throughput of up to 300 MB/sec, in the first generation, and support command queuing features to raise the random read/write speed.
* CSI-3: 3rd generation MIPI Camera Serial Interface features a scalable high bandwidth interface, a guaranteed data transmission and a command set for basic component initialization and configuration.
* GBT: MIPI Gigabit Trace. A network independent protocol for transporting trace data over high-speed interfaces such as UniPort-M or USB3.0.
* DSI-2: 2nd generation MIPI Display Serial Interface.
* PIE: Processor Emulation Interface. This application protocol conveys traditional memory-based read/write transactions as found on processor busses. Data streaming applications (e.g. multimedia traffic), command/response-type protocols (e.g. for control), and tunneling of popular protocols from other domains (e.g. TCP/IP) are also supported and specifically encouraged because they tend to increase system-level modularity and interoperability due to their higher abstraction level.
* UniPort-M (UniPro with M-PHY): Enables general purpose extension interface to connect peripheral devices such as graphic accelerators, modules such as Google's ARA Project
* UniPort-D (UniPro with D-PHY) : Enables general purpose extension with D-PHY, note that D-PHY is not a supported physical layer for UniPro beyond UniPro specification v1.41

### Alternative physical layers

UniPro's layered architecture also allows it to support multiple physical layer (L1, PHY) technologies even within a single network. This is analogous to TCP/IP which can run on a wide range of lower-layer technologies. In the case of UniPro, two PHY technologies are supported for off-chip use.

### UniPorts

These PHY technologies are covered in separate MIPI specifications (which are referenced by the UniPro specification. Note that the term UniPort is used to represent the actual port on a chip which conforms to the UniPro specification for its upper layers (L1.5 to 4) and a MIPI PHY specification for L1. As there are two PHY technologies, these are respectively known as UniPort-D (UniPro with D-PHY) and UniPort-M (UniPro with M-PHY).

## Phased roadmap

The UniPro 1.0 specification was approved by the MIPI Board of Directors on January 14, 2008. UniPro 1.1, that was completed in July 2009, aims to improve readability, provides a reference model (in SDL) for two of the four UniPro protocol layers, and provides features to facilitate automated conformance testing.
The architects designing UniPro intended from the start to release the technology as a step-wise roadmap with backward compatibility. UniPro 1.1 is designed to be fully backwards compatible with UniPro 1.0. The main purpose of UniPro 1.40 and UniPro v1.41 (UniPro v1.4x) is to support an additional physical layer, the M-PHY. Furthermore, UniPort-M features local and remote control of a peer UniPro device that can be used for example to control various supported power modes of the link. Planned roadmap steps beyond UniPro v1.4x aim to provide specifications for network-capable endpoint and network switch devices.
The UniPro v1.6 Specification was designed to ensure interoperability with UniPro v1.41.00 when using the M-PHY physical layer. As D-PHY is no longer supported on v1.60, backwards compatibility for D-PHY operation cannot be maintained.

## Scope and applicability

UniPro and its underlying physical layer were designed to support low power operation needed for battery-operated systems. These features range from power-efficient high-speed operation to added low-power modes during idle or low bandwidth periods on the network. Actual power behavior is, however, highly dependent on system design choices and interface implementation.
The UniPro protocol can support a wide range of applications and associated traffic types. Example chip-to-chip interfaces encountered in mobile systems:
* Mass storage file transfer : 6 Gbit/s
* 24M pixel camera @30fps : 9 Gbit/s
* Chip-to-chip connectivity: 1 Gbit to 24 Gbit/s
Note that such applications require an application protocol layer on top of UniPro to define the structure and semantics of the byte streams transported by UniPro. These can be done by simply porting existing data formats (e.g. tracing, pixel streams, IP packets), introducing new proprietary formats (e.g. chip-specific software drivers) or defining new industry standards (e.g. UFS for memory-like transactions).
Applications which are currently believed to be less suitable for UniPro are:
* low-bandwidth control - unless multiplexed with other traffic (concern: UniPro complexity is much higher than e.g. I2C)
* high-quality audio samples (concerns: UniPro does not distribute a shared clock to all devices; UniPro complexity compared to e.g. SLIMbus or I2S)
* interfaces to dynamic memory (concern: latency for processor instruction/data fetch)

## Versions and roadmap

| Version | Text freeze | Formal release | Description |
| UniPro 0.80.00 | 6 September 2006 | 26 February 2007 | Technology preview of UniPro 1.0 |
| UniPro 1.00.00 | 25 August 2007 | 14 January 2008 | Limited changes compared to UniPro 1.0. All the basics for a chip-to-chip link via the D-PHY |
| UniPro 1.10.00 | 29 July 2009 | 22 January 2010 | "Hardened": formal reference models for 2 protocol layers; readability and testability improvements |
| UniPro 1.40.00 | 31 January 2011 | 28 April 2011 | "M-PHY": support for a new physical layer technology. M-PHY v1.0 with HS-G1. Formal reference model for the whole stack. Peer Configuration. Versioning. |
| UniPro 1.41.00 | 4 May 2012 | 30 July 2012 | Upgrade to support M-PHY v2.0 with HS-G2 |
| UniPro 1.60.00 | 6 August 2013 | 30 September 2013 | Upgrade to support M-PHY v3.0 with HS-Gear3, Power Reduction during M-PHY Sleep and Stall States, Scrambling for EMI MitiUpgrade to support M-PHY v3.0 with HS-Gear3gation, Removal of D-PHY and SDL Reference |
| UniPro 1.8 | | 8 February 2018 | Upgrade to support M-PHY v4.1 with HS-Gear4 |
| future releases | t.b.d. | t.b.d. | "Endpoint": fully networkable endpoint including inband configuration protocol. "Switches": network switches. Sharing of the link between several applications. Dynamic Connection Management. Hot Plugging. Security features. Real Time Traffic Class. |

## Protocol stack architecture

The UniPro protocol stack follows the classical OSI reference architecture (ref). For practical reasons, OSI's Physical Layer is split into two sub-layers: Layer 1 (the actual physical layer) and Layer 1.5 (the PHY Adapter layer) which abstracts from differences between alternative Layer 1 technologies.
UniPro protocol stack (this color-coding is a long-standing UniPro tradition) :
| Layer # | Layer # | Layer name | Functionality | Data unit name |
| LA | LA | Application | Payload and transaction semantics | Message |
| DME |
| DME | Layer 4 | Transport | Ports, multiplexing, flow control | Segment |
| DME | Layer 3 | Network | Addressing, routing | Packet |
| DME | Layer 2 | Data link | Single-hop reliability and priority-based arbitration | Frame |
| DME | Layer 1.5 | PHY adapter | Physical layer abstraction and multi-lane support | UniPro symbol |
| Layer 1 | Layer 1 | Physical layer (PHY) | Signaling, clocking, line encoding, power modes | PHY symbol |
The UniPro specification itself covers Layers 1.5, 2, 3, 4 and the DME (Device Management Entity). The Application Layer (LA) is out of scope because different uses of UniPro will require different LA protocols. The Physical Layer (L1) is covered in separate MIPI specifications in order to allow the PHY to be reused by other (less generic) protocols if needed(ref).
OSI Layers 5 (Session) and 6 (Presentation) are, where applicable, counted as part of the Application Layer.

## Discussion of value proposition
### UniPro and system integration

UniPro is specifically targeted by MIPI to simplify the creation of increasingly complex products. This implies a relatively long-term vision about future handset architectures composed of modular subsystems interconnected via stable, standardized, but flexible network interfaces. It also implies a relatively long-term vision about the expected or desired structure of the mobile handset industry, whereby components can readily interoperate and components from competing suppliers are to some degree plug compatible.
Similar architectures have emerged in other domains (e.g. automotive networks, largely standardized PC architectures, IT industry around the Internet protocols) for similar reasons of interoperability and economy of scale. It is nevertheless too early to predict how rapidly UniPro will be adopted by the mobile phone industry.

### High bandwidth and costs

High speed interconnects like UniPro, USB or PCI Express typically cost more than low speed interconnects (e.g. I2C, SPI or simple CMOS interfaces). This is for example because of the silicon area occupied by the required mixed-signal circuitry (Layer 1), as well as due to the complexity and buffer space required to automatically correct bit errors. UniPro's cost and complexity may thus be an issue for certain low bandwidth UniPro devices.

### Adoption rate

As Metcalfe postulated, the value of a network technology scales with the square of the number of devices which use that technology. This makes any new cross-vendor interconnect technology only as valuable as the commitment of its proponents and the resulting likelihood that the technology will become self-sustaining. Although UniPro is backed by a number of major companies and that the UniPro incubation time is more or less in line with comparable technologies (USB, Internet Protocol, Bluetooth, in-vehicle networks), adoption rate is presumed to be main concern about the technology. This is especially true because the mobile industry has virtually no track record on hardware standards which pertain to the internals of the product.
A key driver for UniPro adoption is JEDEC Universal Flash Storage (UFS) v2.0 which uses MIPI UniPro and M-PHY as the basis for the standard. There are several implementation of the standard which are expected to hit the market

### Availability of application protocols

Interoperability requires more than just alignment between the peer UniPro devices on protocol layer L1–L4: it also means aligning on more application-specific data formats, commands and their meaning, and other protocol elements. This is a known intrinsically unsolvable problem in all design methodologies: you can agree on standard and reusable "plumbing" (lower hardware/software/network layers), but that doesn't automatically get you alignment on the detailed semantics of even a trivial command like ChangeVolume(value) or the format of a media stream.
Practical approaches thus call for a mix of several approaches:
* If the previous generation interconnect worked, there was some kind of solution. Consider reusing/tunneling/porting it with minimal changes.
* There are many reusable application-specific industry standards (like commands to control a radio, audio formats, MPEG).
* Tunnel major technologies over UniPro. If you interact with the IP world, it is sensible to provide IP-over-UniPro.
* Use application-specific software drivers. This only works for limited data rates and pushes the interoperability problem into an internal software interoperability problem, but is a well understood approach.
* Turn existing software interfaces into protocols. In some cases the transformation can be simple or even automated if the original APIs have the right architecture.

### Licensing

The Membership Agreement of the MIPI Alliance specifies the licensing conditions for MIPI specifications for member companies. Royalty-free licensing conditions apply within the main target domain of the MIPI Alliance, mobile phones and their peripherals, whereas RAND licensing conditions apply in all other domains.