09.11.2014 Views

UFS UniPro and PHY Tutorial - Arasan

UFS UniPro and PHY Tutorial - Arasan

UFS UniPro and PHY Tutorial - Arasan

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>UFS</strong> <strong>PHY</strong> & <strong>UniPro</strong> ®<br />

Yuping Chung<br />

<strong>Arasan</strong> Chip Systems<br />

San Jose, CA<br />

Taiwan Mobile Memory Workshop<br />

Oct. 12, 2011


Agenda<br />

1. MIPI <strong>and</strong> <strong>UFS</strong> in Mobile Devices<br />

2. M-<strong>PHY</strong> - Physical Layer<br />

3. <strong>UniPro</strong> ® Link layer


mipi – A Mobile Device Interconnect<br />

Platform<br />

IEEE<br />

1149.7<br />

GBT<br />

Display<br />

WLAN, WigIG<br />

WirelessHD, etc<br />

Bluetooth, GPS<br />

FM Radio, NFC<br />

LLI/SSIC/UniPort<br />

Application<br />

Processor (host)<br />

DSI<br />

CSI<br />

Camera<br />

Speakers<br />

Microphones<br />

SLIMbus<br />

LLI UniPort<br />

LLI UniPort<br />

<strong>UFS</strong><br />

Companion<br />

or<br />

Bridge Chip<br />

Storage<br />

Baseb<strong>and</strong> /<br />

Modem<br />

SPMI<br />

Switch<br />

Power Amp<br />

DigRF<br />

Power<br />

Management<br />

UniPort = M-<strong>PHY</strong> + <strong>UniPro</strong><br />

Tuner<br />

RFFE<br />

RFIC<br />

UniPort = D-<strong>PHY</strong> + <strong>UniPro</strong><br />

Source: mipi Alliances


“One <strong>PHY</strong> to Bind Them All”<br />

Objectives<br />

1. Low pin count<br />

2. Long-distance (m) <strong>and</strong> short-distance (mm) applications<br />

3. Wide range of speed: ~3 Mbps to ~5 Gbps<br />

4. Power efficient w/ burst-mode<br />

5. Clocking: shared or non-shared reference clocks<br />

6. EMI friendly


Device Manager<br />

(QueryRequest)<br />

<strong>UFS</strong> Architecture<br />

Application Layer<br />

<strong>UFS</strong> Comm<strong>and</strong>Set Layer (UCS)<br />

<strong>UFS</strong> Native<br />

Comm<strong>and</strong> Set<br />

Simplified SCSI<br />

Comm<strong>and</strong> Set<br />

Future<br />

Extension..<br />

Task Manager<br />

UIO_<br />

SAP<br />

UDM_<br />

SAP<br />

UTP_CMD_SAP<br />

<strong>UFS</strong> Transport Protocol Layer (UTP)<br />

UIC_SAP<br />

<strong>UFS</strong> InterConnect Layer (UIC)<br />

MIPI <strong>UniPro</strong><br />

MIPI M-<strong>PHY</strong><br />

UTP_TM_SAP<br />

Source: JEDEC


<strong>UFS</strong> InterConnect Layer (UIC)<br />

<strong>UniPro</strong> ® & M-<strong>PHY</strong><br />

Device Manager<br />

(QueryRequest)<br />

UIO_<br />

SAP<br />

<strong>UFS</strong> InterConnect Layer (UIC)<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = <strong>PHY</strong> adapter<br />

L1 = M-<strong>PHY</strong><br />

MIPI <strong>UniPro</strong><br />

MIPI M-<strong>PHY</strong>


Universal Flash Storage – <strong>UFS</strong><br />

Interconnect Layer<br />

Application Processor<br />

(Host)<br />

Storage<br />

(device)<br />

<strong>UniPro</strong><br />

M-<strong>PHY</strong><br />

M-<strong>PHY</strong><br />

<strong>UniPro</strong><br />

Application<br />

Processor<br />

(host)<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = Phy adapt<br />

PLL<br />

HS-Tx<br />

LS -Tx<br />

R T<br />

-<br />

R<br />

T<br />

TX<br />

Dp<br />

Dn<br />

<strong>UFS</strong><br />

Clock Data<br />

Recovery Unit<br />

HS-RX-<br />

LS -Rx<br />

Squelch<br />

Detector<br />

R T<br />

PLL<br />

-<br />

R<br />

T<br />

RX<br />

Analog<br />

Dp<br />

Dn<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = Phy adapt


LINE: copper or optical<br />

MODULE<br />

+ +<br />

- LINE<br />

-<br />

MODULE


LANE: unidirectional<br />

M-TX<br />

LANE<br />

+ +<br />

- LINE<br />

-<br />

M-RX


SUB-LINK: Group of Lanes in same direction<br />

M-TX<br />

M-TX<br />

SUB-LINK<br />

LANE<br />

+ +<br />

- LINE<br />

-<br />

LANE<br />

+ +<br />

-<br />

-<br />

LINE<br />

M-RX<br />

M-RX<br />

M-RX<br />

M-RX<br />

SUB-LINK<br />

+ +<br />

- LINE<br />

-<br />

+ +<br />

- LINE<br />

-<br />

M-TX<br />

M-TX


M-Port: A set of M-TX + M-RX<br />

M-Port<br />

M-Port<br />

M-TX<br />

M-TX<br />

LANE<br />

+ +<br />

- LINE<br />

-<br />

LANE<br />

+ +<br />

-<br />

-<br />

LINE<br />

M-RX<br />

M-RX<br />

M-RX<br />

M-RX<br />

+ +<br />

- LINE<br />

-<br />

+ +<br />

- LINE<br />

-<br />

M-TX<br />

M-TX


LINK: 2 sub-links w/ opposite directions + Lane<br />

Management<br />

LINK<br />

HOST<br />

Lane Management<br />

M-Port<br />

M-TX<br />

M-TX<br />

M-RX<br />

M-RX<br />

SUB-LINK<br />

LANE<br />

+ +<br />

- LINE<br />

-<br />

LANE<br />

+ +<br />

-<br />

-<br />

LINE<br />

SUB-LINK<br />

+ +<br />

- LINE<br />

-<br />

+ +<br />

- LINE<br />

-<br />

M-Port<br />

M-RX<br />

M-RX<br />

M-TX<br />

M-TX<br />

DEVICE<br />

Lane Management


<strong>UFS</strong> M-<strong>PHY</strong> Interface Features<br />

1. Separate Power Supply for I/O & Core<br />

– VCCQ: 1.2V – logic, controller, I/O<br />

– VCCQ2: 1.8 – controller & I/O<br />

– Supply: 1.8V/3.3V; NVM<br />

2. Signaling Amplitude<br />

– 400mVp/240mVp (not terminated)<br />

– 200mVp/120mVp (terminated)<br />

3. Signaling schemes<br />

– PWM (Pulse Width Modulation)<br />

– NRZ (Not Return to Zero)


<strong>UFS</strong> M-<strong>PHY</strong> Interface Features (con’t)<br />

4. Multiple Gears<br />

– LS: PWM Gear 1-4 supported, Gear 5-7 optional, Gear<br />

0 not supported<br />

– HS: Gear 1 m<strong>and</strong>atory, Gear 2/3 optional<br />

5. Coding – 8b10b<br />

6. Power Management States<br />

– Stall (HS), Sleep (LS), Hibern8, Disabled, Unpowered<br />

7. Reliability – bit error rate (BER) less than 10 -10


Main properties of M-<strong>PHY</strong><br />

<strong>UFS</strong> M-<strong>PHY</strong> Features Mode Detail<br />

No. of Pins / Lane 2<br />

Lanes supported<br />

Direction<br />

Min. Configuration<br />

Medium<br />

Singaling Scheme<br />

Bit Rate<br />

Ref. Clock<br />

Ref. Clock Freq.<br />

Symbol Encoding<br />

type 1<br />

type 2<br />

HS<br />

LS<br />

LS<br />

Up to 4 Lanes<br />

Unidirectional<br />

Dual-simplex, 1 lane each, 4 wires<br />

0-30 cm PCB micro coax,<br />


M-<strong>PHY</strong> Line Signaling Properties<br />

Low-swing, DC-coupled Differential Signaling<br />

M-TX<br />

0.4V<br />

Z OUT=50<br />

Z OUT=50<br />

Small Amplitude<br />

240mVpk – not terminated<br />

120mVpk – resistor terminated<br />

M-RX<br />

Large Amplitude<br />

400mVpk – not terminated<br />

200mVpk – resistor terminated<br />

R T<br />

R T


Signaling Schemes<br />

1. PWM<br />

- Pulse Width Modulation<br />

- Type 1 MODULE<br />

2. NRZ<br />

- Not Return to Zero<br />

- Type 2 MODULE<br />

DIF-P<br />

Logic 1<br />

DIF-N<br />

DIF-P<br />

Logic 0<br />

DIF-N<br />

0 0 1 0 1 1


Multiple Gears<br />

HIGH SPEED<br />

Gear Bit Rate Imlementaition<br />

1 1.25 Gbps M<strong>and</strong>atory<br />

LOW SPEED<br />

Gear Bit Rate Implementation<br />

0 below Gear 1 not supported<br />

2 2.5 Gbps Optional<br />

3 ~5 Gbps Future Revision<br />

1 3 to 9 Mbps<br />

2 6 to 18 Mbps<br />

3 12 to 36 Mbps<br />

4 24 to 72 Mbps<br />

5 48 to 144 Mbps<br />

6 96 to 288 Mbps<br />

7 192 to 576 Mbps<br />

M<strong>and</strong>atory<br />

Optional


8b10b Coding<br />

8-bit data<br />

3b4b<br />

Sub-block<br />

f<br />

H G F<br />

g h<br />

i<br />

E D C B A<br />

a<br />

b c d e<br />

i<br />

5b6b<br />

Sub-block<br />

1. Data Symbol<br />

– Each byte = 5b6b + 3b4b sub-block encoding<br />

– Differences of 1’ <strong>and</strong> 0’s is not more than one<br />

2. Control Symbol<br />

10-bit coding<br />

– Special symbols that do not occur in the data symbol set<br />

– eg. K28.1 001111 0101


Power Management States<br />

STALL<br />

SLEEP<br />

HIBERN8<br />

DISABLED<br />

UNPOWERED<br />

For HS-MODE; Power Saving without sever penalty<br />

on HS-BURST start-up time<br />

For LS-MODE; Lowest power consumption for all<br />

ACTIVED states<br />

Ultra-low power consumption while maintaining<br />

configuration settings<br />

Operation is disabled by RESET signal;<br />

configuration reset to default values<br />

Power supply to MODULE is withdrawn;<br />

configuration settings are lost


Shared Clocks: “With or Without You”<br />

SM<br />

PLL<br />

CODER<br />

SERI<br />

TXIO<br />

RXIO<br />

Ph&DR<br />

DECODE<br />

DECODE<br />

Ph&DR<br />

RXIO<br />

TXIO<br />

SERI<br />

CODER<br />

SM<br />

PLL<br />

SM<br />

PLL<br />

CODER<br />

SERI<br />

TXIO<br />

RXIO<br />

Clk&DR<br />

DECODE<br />

DECODE<br />

Clk&DR<br />

RXIO<br />

TXIO<br />

SERI<br />

CODER<br />

SM<br />

PLL<br />

With<br />

shared Clock reference signal<br />

Without<br />

shared Clock reference signal


Example of Implementation


M-<strong>PHY</strong> IP Features<br />

• Specification: M<strong>PHY</strong> Rev 1.0<br />

• Single Power Supply: I/O & Core<br />

• Differential Signaling: Small Amplitude <strong>and</strong><br />

Large Amplitude<br />

• 8b10b line coding, as defined by M<strong>PHY</strong><br />

• High reliability – BER of 10 -10<br />

• Two signaling schemes supported<br />

– Low-speed mode with PWM signaling scheme<br />

– High-Speed burst mode


M-<strong>PHY</strong> IP Features<br />

• Supports high speed data transfer G1A/B <strong>and</strong> G2A/B with data rates<br />

of up to 2915.2 Mb/s<br />

• Supports M<strong>PHY</strong> Type-I system<br />

• Support for reference clock frequencies of 19.2MHz / 26MHz /<br />

38.4MHz / 52MHz<br />

• Reference clock shared between Host <strong>and</strong> device<br />

• Supports low speed transfer G1-G6 with a bit rate of up to 288 Mb/s<br />

• PWM signaling for Low speed data


M-<strong>PHY</strong> IP Features (Con’t)<br />

• Supports error detection mechanism for sequence errors <strong>and</strong> contentions<br />

• Data lanes support transfer of data in high speed mode.<br />

• Supports LS burst, HS burst, STALL, SLEEP, HIBERN8 states.<br />

• Supports squelch detection<br />

• Activates <strong>and</strong> disconnects high speed terminators for reception <strong>and</strong><br />

transmission.<br />

• Supports st<strong>and</strong>ard <strong>PHY</strong> transceiver compliant to MIPI Specification<br />

• Supports st<strong>and</strong>ard PIF interface compliant to MIPI Specification<br />

• On-chip clock generation configurable for either transmitter or a receiver


Analog M-<strong>PHY</strong> Type I<br />

Analog<br />

<br />

<br />

<strong>PHY</strong> configurable<br />

• Up to 4 lanes<br />

• HS Rx/Tx<br />

•Universal (<strong>UniPro</strong>/<strong>UFS</strong>)<br />

Ref Clock<br />

<br />

•Rx Only or Tx Only (CSI3)<br />

19.2/26/38.4/52 (MHz)<br />

HS Gear 1 <strong>and</strong> 2<br />

PWM 1 thru 6<br />

PLL<br />

Squelch Detector<br />

Clock data recovery at HS<br />

Clock Data<br />

Recovery Unit<br />

HS-RX -<br />

LS -Rx<br />

Squelch<br />

Detector<br />

PLL<br />

HS-Tx<br />

R T<br />

PLL<br />

R<br />

-<br />

R T<br />

T<br />

RX<br />

Dp<br />

Dn<br />

Dp<br />

Dn<br />

LS -Tx<br />

-<br />

R T<br />

TX


Digital M-<strong>PHY</strong><br />

Local Reset<br />

RX- Data<br />

interface<br />

RX- control<br />

interface<br />

M-RX<br />

Registers<br />

Protocol<br />

Checker<br />

Error<br />

Detector<br />

local ref clock<br />

Data Recovery<br />

Unit [PWM]<br />

De-Serialzer<br />

&<br />

8b10b decoder<br />

NRZ Decoder<br />

State Monitor<br />

• Protocol Interface (PIF)<br />

• Supported on the application side<br />

• Clock divider generates clock for PIF<br />

• Mode Support<br />

• High speed Mode (HS)<br />

• Low speed Mode (LS)<br />

• Data Lanes<br />

• Unidirectional<br />

M-TX<br />

• 8b10b encoding<br />

PIF<br />

TX- Data<br />

interface<br />

ROM<br />

Registers<br />

PWM bit coding<br />

• PWM coding at LS mode (Type i)<br />

• Activates <strong>and</strong> disconnects<br />

• HS terminators for reception<br />

TX- control<br />

interface<br />

November 30, 2011<br />

Protocol<br />

generator<br />

Serialzer<br />

&<br />

8b10b encoder<br />

NRZ encoder<br />

State Driver<br />

• LS terminators for reception<br />

(Optional)<br />

• Error detection for running digital<br />

sum <strong>and</strong> symbol coding errors


Agenda<br />

1. MIPI <strong>and</strong> <strong>UFS</strong> in Mobile Devices<br />

2. M-<strong>PHY</strong> - Physical Layer<br />

3. <strong>UniPro</strong> ® Link layer


<strong>UFS</strong> <strong>UniPro</strong> 1.4 Overview<br />

(Unified Protocol)


mipi – A Mobile Device Interconnect<br />

IEEE<br />

1149.7<br />

GBT<br />

Display<br />

WLAN, WigIG<br />

WirelessHD, etc<br />

Bluetooth, GPS<br />

FM Radio, NFC<br />

LLI/SSIC/UniPort<br />

Application<br />

Processor (host)<br />

DSI<br />

CSI<br />

Camera<br />

Speakers<br />

Microphones<br />

SLIMbus<br />

LLI UniPort<br />

LLI UniPort<br />

<strong>UFS</strong><br />

Companion<br />

or<br />

Bridge Chip<br />

Storage<br />

Baseb<strong>and</strong> /<br />

Modem<br />

SPMI<br />

Switch<br />

Power Amp<br />

DigRF<br />

Power<br />

Management<br />

UniPort = M-<strong>PHY</strong> + <strong>UniPro</strong><br />

Tuner<br />

RFFE<br />

RFIC<br />

UniPort = D-<strong>PHY</strong> + <strong>UniPro</strong><br />

Source: mipi Alliances


Universal Flash Storage – <strong>UFS</strong><br />

Interconnect Layer<br />

Application Processor<br />

(Host)<br />

Storage<br />

(device)<br />

Application<br />

Processor<br />

(host)<br />

<strong>UniPro</strong><br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = Phy adapt<br />

M-<strong>PHY</strong><br />

PLL<br />

HS-Tx<br />

LS -Tx<br />

R T<br />

-<br />

R<br />

T<br />

TX<br />

Dp<br />

Dn<br />

UniPort =<br />

M-<strong>PHY</strong> + <strong>UniPro</strong><br />

<strong>UFS</strong><br />

UniPort =<br />

M-<strong>PHY</strong> + <strong>UniPro</strong><br />

M-<strong>PHY</strong><br />

Clock Data<br />

Recovery Unit<br />

HS-RX-<br />

LS -Rx<br />

Squelch<br />

Detector<br />

R T<br />

PLL<br />

-<br />

R<br />

T<br />

RX<br />

Analog<br />

Dp<br />

Dn<br />

<strong>UniPro</strong><br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = Phy adapt<br />

Storage<br />

Device


Device Manager<br />

(QueryRequest)<br />

<strong>UFS</strong> Architecture<br />

Application Layer<br />

<strong>UFS</strong> Comm<strong>and</strong>Set Layer (UCS)<br />

<strong>UFS</strong> Native<br />

Comm<strong>and</strong> Set<br />

Simplified SCSI<br />

Comm<strong>and</strong> Set<br />

Future<br />

Extension..<br />

Task Manager<br />

UIO_<br />

SAP<br />

UDM_<br />

SAP<br />

UTP_CMD_SAP<br />

<strong>UFS</strong> Transport Protocol Layer (UTP)<br />

UIC_SAP<br />

<strong>UFS</strong> InterConnect Layer (UIC)<br />

MIPI <strong>UniPro</strong><br />

MIPI M-<strong>PHY</strong><br />

UTP_TM_SAP


<strong>UFS</strong> InterConnect Layer (UIC)<br />

<strong>UniPro</strong> ® & M-<strong>PHY</strong><br />

Device Manager<br />

(QueryRequest)<br />

UIO_<br />

SAP<br />

<strong>UFS</strong> InterConnect Layer (UIC)<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = <strong>PHY</strong> adapter<br />

L1 = M-<strong>PHY</strong><br />

MIPI <strong>UniPro</strong><br />

MIPI M-<strong>PHY</strong>


<strong>UniPro</strong> (“Unified Protocol”)<br />

A layered protocol stack for<br />

LA - Reuse-able<br />

device-independent<br />

Application-specific<br />

protocols<br />

(LA)<br />

L4 - Multiplex-able packets, connections<br />

L3 - Network-able<br />

L2 - Reliable<br />

L2 - Latency aware<br />

routing<br />

retries, flow control<br />

preemption<br />

L1.5 - Scalable multi-lane<br />

L1.5 - <strong>PHY</strong>-independent abstraction<br />

L1 - Low power<br />

low swing, CMOS modes<br />

Scope of <strong>UniPro</strong> St<strong>and</strong>ards<br />

Device Management Entity<br />

(DME)<br />

Transport (L4)<br />

Network (L3)<br />

Data Link (L2)<br />

<strong>PHY</strong> Adapter<br />

(L1.5)<br />

L1 - High speeddifferential, serial, strip line<br />

<strong>PHY</strong> (L1)<br />

…data exchange between<br />

components in a mobile device.<br />

Medium


<strong>UFS</strong> <strong>UniPro</strong> Function <strong>and</strong> Data Flow<br />

• Packet-based interconnect are tightly aligned<br />

Layer<br />

Data Unit<br />

[ LA = Application ]<br />

Message<br />

<br />

Network / Transport Layer<br />

<br />

Tx: Segmentation & packet composition<br />

L4 = Transport<br />

Segment<br />

<br />

Rx: Reassembly <strong>and</strong> decomposition<br />

L3 = Network<br />

Packet<br />

<br />

Data Link Layer<br />

<br />

Tx: Frame composition <strong>and</strong> CRC generation<br />

L2 = Data Link<br />

Frame<br />

<br />

Rx: Frame decomposition <strong>and</strong> CRC checker<br />

<br />

<strong>PHY</strong> Adapter<br />

<br />

<br />

Symbol generation/degeneration<br />

Power Management<br />

L1.5 = Phy adapt<br />

L1 = M-<strong>PHY</strong><br />

17-bit Symbol<br />

Coded Symbol


<strong>UFS</strong> <strong>UniPro</strong> (Data) Payload<br />

• Maximum payload size per Packet is (slightly more than) 256 Bytes<br />

– Overhead per Packet is currently 8 Bytes<br />

– Application normally doesn’t bother about Packet boundaries (auto segmentation)<br />

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1<br />

ESC_DL<br />

CTRL_ID=SOF TC Reserved<br />

0<br />

L3s=1<br />

DestDeviceID<br />

L4s=1 DestCPortID<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

L4 Payload<br />

L4 Payload<br />

L4 Payload<br />

L4 Payload<br />

L4 Payload<br />

L4 Payload<br />

L4 Payload<br />

L4 Payload<br />

L4 Payload<br />

L4 Payload<br />

L4 Payload<br />

L4 Payload<br />

1<br />

0<br />

ESC_DL<br />

CTRL_ID=EOF<br />

CCITT CRC-16<br />

Frame Seq. Number<br />

FCT EOM<br />

[ LA = Application ]<br />

C-PORT<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = <strong>PHY</strong> adapter<br />

L1 = M-<strong>PHY</strong><br />

Note: Color coded matching each layer


L1.5 Features<br />

[ LA = Application ]<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = Phy adapt<br />

L1 = M-<strong>PHY</strong><br />

1. Supports up to 4 data lanes per direction;<br />

Detect data lanes connected, how they are<br />

connected, <strong>and</strong> assign numbering<br />

2. Transmission <strong>and</strong> reception of L2 control &<br />

data symbols, <strong>and</strong> L1 <strong>PHY</strong> symbols<br />

3. Symbol encoding for byte stream – 8b10b<br />

encoding scheme<br />

4. Initialization & Re-initialization of <strong>PHY</strong> Tx<br />

path


L1.5 Features (con’t)<br />

[ LA = Application ]<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = Phy adapt<br />

L1 = M-<strong>PHY</strong><br />

5. Abstracts M-<strong>PHY</strong> Power States<br />

L1.5 Power Management Mapping<br />

L1.5<br />

Power Mode<br />

L1<br />

Power State<br />

comment<br />

Fast_Mode = STALL_STATE When in FAST_STATE<br />

Slow_Mode = SLEEP_STATE (LS) When in SLOW_STATE<br />

Hibernate_Mode = HIBERN8_STATE Ultra-lower power<br />

DISABLED_STATE<br />

Off_Mode = UNPOWERED_STATE<br />

FastAuto_Mode<br />

SlowAuto_Mode<br />

As if in<br />

FAST/SLOW_STATE but<br />

with latency due to wake<br />

up from SLEEP_STATE to<br />

FAST_STATE


1. 17-bit logical symbols<br />

L1.5 Symbol, PACP Frame<br />

[ LA = Application ]<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = Phy adapt<br />

L1 = M-<strong>PHY</strong><br />

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1<br />

0<br />

L1.5 payload<br />

L1.5 payload<br />

1= Control Symbol<br />

0= Data Symbol<br />

2. PACP Frames used to communicate between L1.5 at one end to L1.5 at<br />

the other end of the link<br />

• Very specialized usage – low-level reset, remote Get/Set, <strong>PHY</strong> testing<br />

etc<br />

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1<br />

ESC_PA<br />

EscParam_PA = PACP_BEGIN<br />

0<br />

0<br />

0<br />

0<br />

PACP_FunctionID<br />

Parameters<br />

. . . . . .<br />

CRC-16


L2 Features<br />

[ LA = Application ]<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = Phy adapt<br />

L1 = M-<strong>PHY</strong><br />

Major responsibility is to provide RELIABLE links <strong>and</strong><br />

PRIORITIZE data traffic<br />

1.Frame composition / decomposition<br />

2.Flow Control – Credit based flow control to prevent overflow<br />

3.16-bit CRC generation, verification, <strong>and</strong> error detection<br />

– AFC – Acknowledgement <strong>and</strong> Flow Control, data<br />

– NAC - Negative Acknowledgement Control, i.e. CRC error<br />

4.2 Traffic Class (TC) by priority based arbitration<br />

– <strong>UFS</strong> requires on TC0 (best effort)<br />

5.Tx retry buffer <strong>and</strong> Rx buffer (Size Configurable)


L2 Data Frames<br />

• Cluster 17-bit symbols in to Data FRAME<br />

– 1-symbol header, 2-symbol trailer (including CRC-16), & up to 144 17-bit<br />

symbols<br />

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

ESC_DL<br />

CTRL_ID=SOF<br />

L2 Payload<br />

L2 Payload<br />

L2 Payload<br />

L2 Payload<br />

L2 Payload<br />

. . . . . .<br />

L2 Payload<br />

TC Reserved<br />

1<br />

0<br />

ESC_DL<br />

CTRL_ID=EOF<br />

CCITT CRC-16<br />

Frame Seq. Number<br />

[ LA = Application ]<br />

C-PORT<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = <strong>PHY</strong> adapter<br />

L1 = M-<strong>PHY</strong>


L2 Control Frames<br />

[ LA = Application ]<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = Phy adapt<br />

L1 = M-<strong>PHY</strong><br />

1. Allow L2 to talk to peer L2 for flow control <strong>and</strong> error h<strong>and</strong>ling<br />

2. L2 Flow Controls – Credit-based flow control<br />

3. AFC & NAC Control Frames<br />

AFC – Acknowledgement <strong>and</strong> Flow Control – things are going well<br />

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1<br />

ESC_DL AFC TC CReq<br />

0<br />

0<br />

Frame Seq. Number Reserved<br />

CCITT CRC-16<br />

Credit value<br />

Reserved<br />

NAC – Negative Acknowledgement <strong>and</strong> Control – result of transmission errors<br />

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1<br />

ESC_DL<br />

NAC<br />

Reserved<br />

0 CCITT CRC-16<br />

CReq


L3 - Network Layer<br />

Allow data to be routed to proper destination<br />

• Packet composition / decomposition –<br />

– Information passed down to L2 – encapsulated between L2 header<br />

<strong>and</strong> trailer<br />

• Device ID –<br />

– 7-bit destination address<br />

– Up to 128 Devices supported<br />

[ LA = Application ]<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L1.5 = Phy adapt<br />

L1 = M-<strong>PHY</strong><br />

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1<br />

ESC_DL<br />

SOF TC Reserved<br />

0<br />

L3s=1<br />

DestDeviceID_Enc<br />

L3 Payload<br />

0<br />

0<br />

L3 Payload<br />

L3 Payload<br />

L3 Payload<br />

L3 Payload<br />

1<br />

0<br />

ESC_DL<br />

EOF_EVEN<br />

CCITT CRC-16<br />

Frame Seq. Number


[ LA = Application ]<br />

L4 = Transport<br />

L3 = Network<br />

L2 = Data Link<br />

L4 - Transport Layer<br />

L1.5 = Phy adapt<br />

L1 = M-<strong>PHY</strong><br />

Transport Layer supports multiple bidirectional<br />

connections between endpoint devices.<br />

– Cport – interface between L4 <strong>and</strong> ApplicatIon Layer (LA)<br />

– Responsible for “spliting” or segmenting Message to<br />

Segments<br />

– End-to-End flow control ensures transmitting CPort never<br />

sends more data than receiving CPort can absorb to<br />

prevent data loss


L4 Segment<br />

– When passed down to L3, L4 Segment is prefixed with L3 header<br />

to form a single L3 Packet<br />

– L3 Packet is then encapsulated by L3 between L2 header <strong>and</strong> an<br />

L2 trailer to form a single L2 Frame<br />

• Maximum payload size per Packet is 272 Bytes<br />

16 15<br />

–<br />

14<br />

Overhead<br />

13 12<br />

per<br />

11<br />

Packet<br />

10 9is currently<br />

8 7<br />

86 Bytes<br />

5 4 3 2 1 0<br />

1<br />

ESC_DL<br />

SOF TC Reserved<br />

0<br />

L3s=1<br />

DestDeviceID<br />

L4s=1 DestCPortID FCT EOM<br />

C-PORT<br />

0<br />

L4 Payload<br />

L4 Payload<br />

0<br />

L4 Payload<br />

L4 Payload<br />

L4 = Transport<br />

0<br />

L4 Payload<br />

L4 Payload<br />

L3 = Network<br />

. . . . . . .<br />

0<br />

L2 = Data Link<br />

0<br />

L4 Payload<br />

L4 Payload<br />

0<br />

L4 Payload<br />

L4 Payload<br />

L1 = M-<strong>PHY</strong><br />

1<br />

ESC_DL<br />

EOF_EVEN Frame Seq. Number<br />

0<br />

CCITT CRC-16<br />

[ LA = Application ]<br />

L1.5 = <strong>PHY</strong> adapter<br />

Note: Color coded matching each layer


DME – Device management Entity<br />

Controls all layers in <strong>UniPro</strong><br />

1. Provide access to control parameters in all layers<br />

2. Manages power mode transition<br />

3. H<strong>and</strong>les boot-up, hibernate, <strong>and</strong> reset of the<br />

entire <strong>UniPro</strong> stack<br />

Scope of <strong>UniPro</strong> St<strong>and</strong>ards<br />

Device Management Entity<br />

(DME)<br />

Application-specific<br />

protocols<br />

(LA)<br />

Transport (L4)<br />

Network (L3)<br />

Data Link (L2)<br />

<strong>PHY</strong> Adapter<br />

(L1.5)<br />

<strong>PHY</strong> (L1)<br />

Medium


<strong>UniPro</strong> Usage Model


Usage Models: Simple point-to-point<br />

<strong>UniPro</strong><br />

Display<br />

Application<br />

Processor<br />

Graphics<br />

Coprocessor<br />

I2C<br />

Camera


Usage Models: Switch model<br />

Camera2<br />

Display<br />

<strong>UniPro</strong><br />

<strong>UniPro</strong><br />

<strong>UniPro</strong><br />

Highspeed<br />

Modem<br />

switch<br />

Application<br />

Processor<br />

switch<br />

Graphics<br />

Coprocessor<br />

Camera1


Example of Implementation<br />

Unified Protocol


<strong>UFS</strong> <strong>UniPro</strong> SW Stack<br />

CustomDriver<br />

Interface Layer<br />

<strong>UniPro</strong> Stack Layer<br />

Hardware Interface Layer<br />

O S<br />

W<br />

R<br />

A<br />

P<br />

P<br />

E<br />

R<br />

O S<br />

C<br />

A<br />

L<br />

L<br />

S<br />

Modular<br />

Independent<br />

Portable<br />

Structured API<br />

OS Wrappers<br />

OS Independency


Hardware Interface Layer<br />

• System Bus Management<br />

• Host Controller Register<br />

• Interrupt H<strong>and</strong>ling<br />

• Direct Memory Access<br />

• Multiple Device Management<br />

CustomDriver<br />

Interface Layer<br />

<strong>UniPro</strong> Stack Layer<br />

Hardware Interface Layer<br />

O<br />

S<br />

W<br />

R<br />

A<br />

P<br />

P<br />

E<br />

R<br />

O<br />

S<br />

C<br />

A<br />

L<br />

L<br />

S<br />

• Debug Support


<strong>UniPro</strong> Stack Layer<br />

• Device <strong>and</strong> Client Management<br />

• Data Reception <strong>and</strong> Transmission<br />

• Data Buffer Management for each<br />

device<br />

• Port Configuration<br />

• Client Interface<br />

• Information Elements<br />

• Debug Support<br />

CustomDriver<br />

Interface Layer<br />

<strong>UniPro</strong> Stack Layer<br />

Hardware Interface Layer<br />

O<br />

S<br />

W<br />

R<br />

A<br />

P<br />

P<br />

E<br />

R<br />

O<br />

S<br />

C<br />

A<br />

L<br />

L<br />

S


<strong>UFS</strong> <strong>UniPro</strong> Development System<br />

<strong>UFS</strong> Host FPGA platform – Interfaces <strong>and</strong> connectivity<br />

Linux System<br />

<strong>UFS</strong> Host FPGA<br />

<strong>UFS</strong> Host<br />

Driver<br />

PCIe API<br />

Interface<br />

P<br />

C<br />

I<br />

e<br />

I<br />

/<br />

F<br />

U<br />

N<br />

I<br />

P<br />

R<br />

O<br />

U<br />

F<br />

S<br />

M-<br />

P<br />

H<br />

Y<br />

M-Phy<br />

<strong>UFS</strong> Device


<strong>UFS</strong> <strong>UniPro</strong> Certification Test


Questions?<br />

Yuping Chung<br />

<strong>Arasan</strong> Chip Systems<br />

San Jose, CA<br />

yuping.chung@arasan.com<br />

Cell +1 (408)691-6086<br />

Work +1 (408)282-1600 x133

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!