17

May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

Embed Size (px)

Citation preview

Page 1: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel
Page 2: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 2

High SpeedProtocol Additions

High SpeedProtocol Additions

John GarneyJohn GarneyUSB2.0 Hub Working Group ChairUSB2.0 Hub Working Group Chair

Intel Corporation Intel Corporation

John GarneyJohn GarneyUSB2.0 Hub Working Group ChairUSB2.0 Hub Working Group Chair

Intel Corporation Intel Corporation

Page 3: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 3

HS Protocol AdditionsHS Protocol Additions

High Speed Ping Flow ControlHigh Speed Ping Flow Control Split TransactionsSplit Transactions

Additions to Chapter 8Additions to Chapter 8

Page 4: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 4

HS PING Flow Control (HS OUT Endpoints only)HS PING Flow Control (HS OUT Endpoints only)– Required for all bulk/control HS OUT transactionsRequired for all bulk/control HS OUT transactions– No PING for control SETUP transactionsNo PING for control SETUP transactions

Issue: Devices That NAK OutsIssue: Devices That NAK Outs– NAK is provided for bus-level flow controlNAK is provided for bus-level flow control– USB1.0 idea was NAK would occur ‘hardly ever’USB1.0 idea was NAK would occur ‘hardly ever’

Reality is that many applications use/need frequentlyReality is that many applications use/need frequently

– Frequently NAKing OUTs decrease throughputFrequently NAKing OUTs decrease throughput Bulk (async) traffic is scheduled round-robin (more or less)Bulk (async) traffic is scheduled round-robin (more or less) NAKing Out can easily reduce throughput by more than 50%NAKing Out can easily reduce throughput by more than 50%

New PIDs for PINGNew PIDs for PING– PING token: “Are you ready?”PING token: “Are you ready?”– NYET handshake: Accept data, I’m now full (“Not Yet”)NYET handshake: Accept data, I’m now full (“Not Yet”)

High Speed PINGFlow ControlHigh Speed PINGFlow Control

Page 5: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 5

Host Pipe Initial ConditionHost Pipe Initial Conditionis “PING”is “PING”

PING (No data phase)PING (No data phase)– NAK response indicates noNAK response indicates no

room for dataroom for data– ACK response indicates roomACK response indicates room

for at least one MaxPacketfor at least one MaxPacket OUT with Data0/1OUT with Data0/1

– ACK allows next OUT transactionACK allows next OUT transaction– NAK says data not accepted, returnNAK says data not accepted, return

to PING stateto PING state Not normal caseNot normal case

– NYET says data accepted, no more room, go to PING stateNYET says data accepted, no more room, go to PING state Same scheduling for PING/OUT as normalSame scheduling for PING/OUT as normal

– ““Next opportunity”Next opportunity”

PING - Host State MachinePING - Host State Machine

PingPing PID PID

Data 0/1Data 0/1 PID PID

NAKNAK

ACKACK

ACK,ACK,Advance to NextAdvance to NextTransactionTransactionNAKNAK

NYETNYET

OUTOUT PID PID

Page 6: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 6

OUT/DATAxOUT/DATAx

NAKNAK

SpaceSpaceAvailableAvailable

AcceptAcceptDataData NYETNYET

ACKACK

PINGPING

SpaceSpaceAvailableAvailable

Space NotSpace NotAvailableAvailable

OUT/DATAxOUT/DATAxor PINGor PING

SpaceSpaceAvailableAvailable

SpaceSpaceNotNot

AvailableAvailable

PING - Device State MachinePING - Device State Machine

ACK if have spaceACK if have space NYET if had space, but now don’tNYET if had space, but now don’t NAK if no spaceNAK if no space

Page 7: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 7

Bulk Out Endpoint DescriptorBulk Out Endpoint Descriptor

bInterval value in HS endpoint descriptor declares OUT bInterval value in HS endpoint descriptor declares OUT NAK “rate”NAK “rate”– Allows compliance testing of bulk OUT endpoint PINGAllows compliance testing of bulk OUT endpoint PING

Device never NAKs OUT more than once per microframeDevice never NAKs OUT more than once per microframe Use correct bInterval value:Use correct bInterval value:

– 0 -> device NYETs OUTs, and never NAKs0 -> device NYETs OUTs, and never NAKs– 1..255 -> device NAKs OUTs and,…1..255 -> device NAKs OUTs and,…

Doesn’t NAK another OUT for bInterval microframesDoesn’t NAK another OUT for bInterval microframes Doesn’t need another OUT (after NAK) bInterval microframesDoesn’t need another OUT (after NAK) bInterval microframes

Host may issue more frequentlyHost may issue more frequently

Page 8: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 8

Split TransactionsSplit Transactions

Defined only for Host Controller & Hub @ HSDefined only for Host Controller & Hub @ HS– Enables isolation of full/low speed signalingEnables isolation of full/low speed signaling– Improves overall bus throughput and utilizationImproves overall bus throughput and utilization

Start-SplitStart-Split– Host tells Hub to initiate full/low speed transactionHost tells Hub to initiate full/low speed transaction

Complete-SplitComplete-Split– Host asks Hub for results of previous full/lowHost asks Hub for results of previous full/low

speed transactionspeed transaction SPLIT Tokens defined for Start/CompleteSPLIT Tokens defined for Start/Complete New PIDs and transaction state machines New PIDs and transaction state machines

Page 9: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 9

Still three (or less) phase transactionsStill three (or less) phase transactions– Token phase has 2 packets: SPLIT special token & regular tokenToken phase has 2 packets: SPLIT special token & regular token

– Start-OUT:Start-OUT: SPLIT(start)_token + token, data { ,handshake}SPLIT(start)_token + token, data { ,handshake}– Start-IN:Start-IN: SPLIT(start)_token + token { ,handshake}SPLIT(start)_token + token { ,handshake}

Start-SplitStart-Split

SPLITSPLITStartStart

ClassicClassicTokenToken DATAxDATAx HandshakeHandshake

Token PhaseToken Phase

Split TransactionExtended TokensSplit TransactionExtended Tokens

– Complete-OUT: SPLIT(complete)_token + token, handshake – Complete-IN: SPLIT(complete)_token + token, {data, } handshake

Complete-SplitComplete-Split

SPLITSPLITCompleteComplete

ClassicClassicTokenToken

Token PhaseToken Phase

DATAxDATAx HandshakeHandshake

Page 10: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 10

HostHostHostHost DeviceDeviceHubHubHubHub

ClassicClassicBusBusHigh SpeedHigh Speed

BusBus

Example SplitTransaction (IN)Example SplitTransaction (IN)

11StartStartSplitSplit

SPLIT-sSPLIT-sSPLIT-sSPLIT-s

IN TokenIN TokenIN TokenIN Token

33CompleteComplete

SplitSplit

SPLIT-cSPLIT-cSPLIT-cSPLIT-c

ACKACKACKACK

Data0Data0Data0Data0

IN TokenIN TokenIN TokenIN Token

22ClassicClassic

IN TokenIN TokenIN TokenIN Token

Data0Data0Data0Data0

ACKACKACKACK

Page 11: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 11

HostHostHostHost DeviceDeviceDeviceDeviceHubHubHubHub

ClassicClassicBusBusHigh SpeedHigh Speed

BusBus

Example SplitTransaction (OUT)Example SplitTransaction (OUT)

11StartStartSplitSplit

SPLIT-sSPLIT-sSPLIT-sSPLIT-s

OUT TokenOUT TokenOUT TokenOUT Token

Data0Data0Data0Data0

22ClassicClassic

OUT TokenOUT TokenOUT TokenOUT Token

Data0Data0Data0Data0

ACKACKACKACK33

CompleteCompleteSplitSplit OUT TokenOUT TokenOUT TokenOUT Token

SPLIT-cSPLIT-cSPLIT-cSPLIT-c

ACKACKACKACK

Page 12: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 12

Classic BULK OUTClassic BULK OUT

High Speed BusHigh Speed BusuSOFuSOF uSOFuSOF uSOFuSOF

SOFSOF

SS = Start SplitSS = Start Split

125us125usCSCSSSSS CSCSSSSS CSCSSSSS CSCSSSSS

CS = Complete SplitCS = Complete SplitFull Speed BusFull Speed Bus

Page 13: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 13

uSOFuSOF uSOFuSOF uSOFuSOF

SOFSOF

SS = Start SplitSS = Start Split

125us125us

CS = Complete Split

CSCSSSSS CSCSSSSS CSCSSSSS CSCSSSSS

Full Speed BusFull Speed Bus

High Speed BusHigh Speed Bus

Classic BULK INClassic BULK IN

Page 14: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 14

Classic ISOCH OUTClassic ISOCH OUT

Full Speed BusFull Speed Bus

uSOFuSOF

1ms1ms

uSOFuSOF uSOFuSOF uSOFuSOF uSOFuSOF uSOFuSOF uSOFuSOF uSOFuSOF uSOFuSOF

SOFSOF SOFSOF

SSSSSSSS SSSS SSSS

SS = Start SplitSS = Start Split

125us125us

High Speed BusHigh Speed Bus

Page 15: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 15

Classic ISOCH INClassic ISOCH IN

uSOFuSOF

1ms1ms

uSOFuSOF uSOFuSOF uSOFuSOF uSOFuSOF uSOFuSOF uSOFuSOF uSOFuSOF uSOFuSOF

SOFSOF SOFSOF

SSSS

SS = Start SplitSS = Start Split

CSCS CSCS CSCS CSCS

125us125us

CS = Complete SplitCS = Complete Split

High Speed BusHigh Speed Bus

Full Speed BusFull Speed Bus

Page 17: May 9, 20012 High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel

May 9, 2001 17

High Speed ProtocolAdditions SummaryHigh Speed ProtocolAdditions Summary

Required Bulk/Control PING Flow ControlRequired Bulk/Control PING Flow Control– Delivers better bus utilizationDelivers better bus utilization– Specify bInterval in endpoint descriptor correctlySpecify bInterval in endpoint descriptor correctly

Split-TransactionsSplit-Transactions– Only affect HC and Hub; not devicesOnly affect HC and Hub; not devices– Allows High Speed transactions to run independentlyAllows High Speed transactions to run independently

of Full/Low-Speed transactions in a systemof Full/Low-Speed transactions in a system