UFS UniPro and PHY Tutorial - Arasan
UFS UniPro and PHY Tutorial - Arasan
UFS UniPro and PHY Tutorial - Arasan
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