May 17, 20001. 2 USB 2.0 Hub Details John Garney Hub Working Group Chair Intel Corporation John Garney Hub Working Group Chair Intel Corporation.

Slides:



Advertisements
Similar presentations
May 16, Edition2 USB Hub Designs John Garney Hub Working Group Chair, Intel Corporation Schumann Rafizadeh VP Engineering, Yi Shi Tong John.
Advertisements

May 9, High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair Intel.
Lecture 12 Reduce Miss Penalty and Hit Time
WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
May 16, USB 2.0 Compliance And Tools Kosta Koeman Software Engineer Intel Architecture Labs Intel.
Protocol Layer Bottom-up view of the USB protocol Bottom-up view of the USB protocol –Byte/Bit Ordering –SYNC Field –Packet Field Formats PID Field PID.
Universal Serial Bus Grant Heileman. The History of USB In 1994 a collaborative effort to design a standard for peripheral devices was made between Compaq,
October 10, USB 2.0 Host Controllers (EHCI Specification) John S. Howard Intel Corporation.
May 16, Data Transfer & Framework John Garney Hub Working Group Chair Intel Corporation John Garney Hub Working Group Chair Intel Corporation.
USB: Data Flow Sukesh Shenoy. USB implementation areas.
1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Dr. Mohamed Hefeeda.
1: Operating Systems Overview
1 USB 2.0 Specification  General Description  From where we could begin the work  What would be valid to do?  Main doubts  What is OTG (On the Go)
1 USB 2.0 Specification  General Description  What is OTG (On the Go)  From where we could begin the work  What would be valid to do?
Chapter 1 and 2 Computer System and Operating System Overview
USB – An Overview Group 3 Kaushik Nandha Bikram What is the Universal Serial bus (USB)? Is a cable bus that supports data exchange between a host computer.
Computer Organization and Architecture
Anush Rengarajan Feng Zheng Thomas Madaelil
USB 2.0 INTRODUCTION NTUT CSIE 學 生:許家豪 指導教授:柯開維教授.
© 2006 Pearson Education, Upper Saddle River, NJ All Rights Reserved.Brey: The Intel Microprocessors, 7e Chapter 15 PC Standard Bus Interfaces WK.
CPU Chips The logical pinout of a generic CPU. The arrows indicate input signals and output signals. The short diagonal lines indicate that multiple pins.
Serial Interfaces. Bit serial bus New generation of busses Uses bit-serial, differential drive technology Uses on-line device drivers (Hot-plug technology)
October 10, USB 2.0 Software Roadmap & Architecture Update Robert Ingman Lead Program Manager Windows Division Microsoft Corp.
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
May 17, Design Option Trade-Offs w Transceiver Design - Dr. Zong Liang Wu, Philips.
May 16, USB 2.0 Hub Additions John Garney Hub Working Group Chair Intel Corporation John Garney Hub Working Group Chair Intel Corporation.
May 17, USB 2.0 Transceiver Macrocell Steve McGowan - Intel Corporation Clarence Lewis - Texas Instruments Steve McGowan - Intel Corporation Clarence.
Peripheral Buses COMP Jamie Curtis. PC Buses ISA is the first generation bus 8 bit on IBM XT 16 bit on 286 or above (16MB/s) Extended through.
May 8, The EASY Way to Create I/O Devices John Hyde Intel Corporation intel.com.
October 10, Split Transaction Budgeting Algorithm John Garney Working Group Chair: Hub Intel Corporation John Garney Working Group Chair: Hub.
May 9, USB 2.0 High Bandwidth Peripheral Design Challenges Robert Shaw Cypress Semiconductor Robert Shaw Cypress Semiconductor
May 8, USB 2.0 Technical Overview Brad Hosler USB Engineering Manager Intel Corporation.
October 10, USB 2.0 Hub Testing Dan Froelich Intel.
May 17, USB2.0 Host Controller John S. Howard Staff Engineer Intel Architecture Labs Intel Corporation.
Peripheral Busses COMP Jamie Curtis. PC Busses ISA is the first generation bus 8 bit on IBM XT 16 bit on 286 or above (16MB/s) Extended through.
Introduction to USB © 2010 Renesas Electronics America Inc. All rights reserved.
USB host for web camera connection
USB Link Layer Protocol
October 10, USB 2.0 Hub Additions John Garney Chair Hub Working Group Intel Corporation John Garney Chair Hub Working Group Intel Corporation.
© 2008, Renesas Technology America, Inc. All Rights Reserved The RCAN-ET peripheral and the CAN API SH2 & SH2A MCUs V 1.2 Mar 2010.
USB 2.0 Spec. Chapter4 Architectural Overview Chapter5 USB Data Flow Model.
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
Chapter 1. Introduction What is an Operating System? Mainframe Systems
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
CHAPTER 2: COMPUTER-SYSTEM STRUCTURES Computer system operation Computer system operation I/O structure I/O structure Storage structure Storage structure.
Renesas Electronics America Inc. RX USB Peripheral The Renesas RX USB peripheral a.k.a. USBC_597IP_PP Ver
The Functions of Operating Systems Interrupts. Learning Objectives Explain how interrupts are used to obtain processor time. Explain how processing of.
BR 6/001 Universal Serial Bus Universal Serial Bus is a new synchronous serial protocol for low to medium speed data transmission Full speed signaling.
May 16, USB 2.0 Technical Overview Brad Hosler USB Engineering Manager Intel Corporation.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
October 10, USB 2.0 Technical Overview Brad Hosler USB Engineering Manager Intel Corporation.
1: Operating Systems Overview 1 Jerry Breecher Fall, 2004 CLARK UNIVERSITY CS215 OPERATING SYSTEMS OVERVIEW.
May 16, High Speed Protocol Additions John Garney USB2.0 Hub Working Group Chair Intel Corporation John Garney USB2.0 Hub Working Group Chair.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
PPI-8255.
Intel Open Source Technology Center Lu Baolu 2015/09
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
USB PHYISICAL LAYER PROTOCOL ENGINE LAYER APPLICATION LAYER
Operating Systems (CS 340 D)
CSC 4250 Computer Architectures
NS Training Hardware.
USB- Universal Serial Bus
Embedding USB technology Limitations, challenges and compliance
USB : Universal Serial Bus
Processor Fundamentals
Operating Systems.
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

May 17, 20001

2 USB 2.0 Hub Details John Garney Hub Working Group Chair Intel Corporation John Garney Hub Working Group Chair Intel Corporation

May 17, Hub Details w Standard Hub Class – Port Indicators w Transaction Translator w Bulk/Control Transaction Handling w Isochronous/Interrupt Transaction Handling w Scheduling Split Transactions w Additions to Chapter 11 w New Appendices

May 17, Hub Requirements: w Isolate full/low-speed from high-speed – Avoid lower speed impact on HS, i.e., LS impact on FS w All USB2.0 Hub ports support HS/FS/LS

May 17, Standard Hub Class w Hub Descriptor – Added to wHubCharacteristics :  D6..D5: TT Think Time  D7: Port indicator support w Hub Class Requests – New Port Features: PORT_TEST, PORT_INDICATOR – Get_Status: PORT_HIGH_SPEED – New: ClearTTBuffer, ResetTT, GetTTState, StopTT

May 17, Hub Port Indicators w Optional standardized end user visible indicator w 2 color indicator for each downstream facing port – Defined colors: Off, Green, Amber, Blinking w Manual (Host SW) & Automatic Control – Manual: keeps HW simple while allowing SW control  Blinking done by software – Automatic: basic consistency in USB 1.x/2.0 systems  Overcurrent, enabled and “neither” – Full indicator support requires USB 2.0 software

May 17, 20007ColorDefinitionOff Not Operational Amber Error Condition Green Fully Operational Blinking Off/Green Software Attention Blinking Off/Amber Hardware Attention Blinking Amber/Green Reserved Indicator Color Meanings

May 17, Indicator Control w Controlled via SetPortFeature(PORT_INDICATOR, indicator_selector) Value Port Indicator Selector Port Indicator Mode Color set automatically, as defined in following Automatic 1AmberManual 2Green 3Off 4-FFHReservedReserved 0

May 17, Automatic Indicator Control SetPortFeature( PORT_POWER) Automatic Mode OffOff !(Enabled or Transmit or TransmitR) and PORT_OVER_CURRENT != 1 Enabled or Transmit or TransmitR GreenGreen SetPortFeature(PORT_INDICATOR, indicator_selector = 0) SetPortFeature(PORT_INDICATOR, indicator_selector != 0) ManualMode Amber PORT_OVER_CURRENT = 1

May 17, Host Controller / TT Interactions HostHost DeviceDevice TTTT X X2 TT buffers full/low speed transaction information (X) locally  TT buffers full/low speed transaction information (X) locally 1 – SPLIT-s, OUT, DATAx (Start-split)  Host Controller issues start-split transaction to TT TTTT R R ,ACK TT buffers full/low speed transaction results (R) locally  TT buffers full/low speed transaction results (R) locally 3 - OUT, DATAx,...  TT issues full/low speed transaction on downstream bus 6 - …,ACK 6 - …,ACK  TT responds with results InterruptOutExample 5 – SPLIT-c, OUT, … (Complete-split)  Host Controller issues complete-split transaction to TT

May 17, Transaction Translator Overview w Bulk/Control & Interrupt/Isochronous portions to TT – Bulk/Control uses USB flow control to make progress – Interrupt/Isochronous uses a scheduled full/low speed transaction “pipeline” – Separate buffers are used for each TT portion  2 or more transaction buffers for bulk/control  Start & complete “pipeline” buffers for interrupt/isochronous Transaction Translator Bulk & Control Bulk & Control Interrupt & Isochronous Interrupt & Isochronous

May 17, Example: Bulk OUT Single Split Trans. TTTT X2  TT buffers full/low speed transaction information (X) locally 3 - OUT, DATAx,...  TT issues full/low speed transaction on downstream bus R R ,ACK  TT buffers full/low speed transaction results (R) locally 6 - …,ACK 6 - …,ACK  TT responds with results 1 – SPLIT-s, OUT, DATAx, ACK  Host Controller issues start-split transaction to TT 5 – SPLIT-c, OUT,...  Host Controller issues complete-split transaction to TT

May 17, Example Bulk OUT Splits w Assume 2 classic bulk OUT endpoints w Assume 1 TT bulk/control buffer HS Bus: Classic Bus: S S SS2a O O D D N N S S SS1a O O D D A A Full SS2a O O D D N N S S CS1a O O Y Y C C Ready SS2a O O D D A A S S Full CS1a O O A A C C Empty Periodic Xacts Empty TT Bulk Buffer: CS2a O O Y Y C C TIME O O D D A A EP1 Transaction O O D … EP2 Transaction

May 17, Example: Bulk OUT Two Different Split Trans. TTTT X OUT, DATAx,...  R R ,ACK  TT buffers 1st full/low speed transaction results (R) locally 1 – SPLIT-s, OUT, DATAx, ACK  - Same as before  HC issues Start-split transaction for different endpoint to TT 4 – SPLIT-c, OUT, DATAx, ACK x2  TT buffers full/low speed transaction (x2) locally in 2nd buffer 5  TT issues 2nd full/low speed transaction on downstream bus 7 - OUT, DATAx,...

May 17, Example: Bulk OUT Two Different Split Trans. TTTT  TT responds with results from 1st buffer 9 - …,ACK 9 - …,ACK  HC issues complete-split transaction for 2nd endpoint to TT 8 – SPLIT-s, OUT,... r2 10 TT buffers full/low speed transaction results (r2) locally TT buffers full/low speed transaction results (r2) locally ,ACK R R 12 TT responds with results TT responds with results 12 - …,ACK 12 - …,ACK 11 HC issues complete-split transaction for 2nd endpoint to TT HC issues complete-split transaction for 2nd endpoint to TT 11 – SPLIT-c, OUT, – SPLIT-c, OUT,...

May 17, Example Bulk OUT Splits w Assume 2 classic bulk OUT endpoints w Always at least 2 TT bulk/control buffers HS Bus: Classic Bus: S S SS1a O O D D A A 1 Full 1 Empty Periodic Xacts 1 Ready CS1a O O Y Y C C 1 Empty CS1a O O A A C C SS1b O O D D A A S S 1 Full TT Bulk Buffer: CS2a O O Y Y C C TIME O O D … O O D D A A EP1 Transaction O O D D A A EP2 Transaction S S SS2a O O D D A A 2 Full CS2a O O Y Y C C 2 Ready

May 17, TT Int. / Isoch. Pipeline w Host software budgets when full/low-speed transaction will run w Host schedules start-split before “earliest” start time w Host schedules complete-split at “latest” finish time(s) w Scheduling accounts for variation due to bit-stuffing and timeouts, etc. TTTT High Speed Start-Split High Speed Complete-Split Start-splitFIFOStart-splitFIFOComplete-splitFIFOComplete-splitFIFO StartHandlerStartHandlerCompleteHandlerCompleteHandler Full/LowHandlerFull/LowHandler

May 17, TTTT Start-split Start-splitFIFO FIFOComplete-splitFIFOComplete-splitFIFO Full/LowHandlerFull/LowHandler StartHandlerStartHandlerCompleteHandlerCompleteHandler X X2  TT buffers full/low speed transaction information locally 1 – SPLIT-s, OUT, DATAx  Host Controller issues start-split transaction to TT 3 - OUT, DATAx,...  TT issues full/low speed transaction on downstream bus 5 – SPLIT-c, OUT,... 5 – SPLIT-c, OUT,...  Host Controller issues complete-split transaction to TT 6 - …,ACK 6 - …,ACK  TT responds with results Example: Int. OUT Split Trans. R R ,ACK  TT buffers full/low speed transaction results locally Start-split Start-splitFIFO FIFO

May 17, Scheduling TT Pipeline w Best case budget & worst case operation w Scheduling split transactions for pipeline w Keeping the pipeline running

May 17, Best Full-Speed Budget w Max bytes per classic frame (12Mb/s) w Max bytes of periodic wire time (90% of frame) w Max allocatable bytes w/ max 6/7 (16.67%) bit stuff – Reduced further by other overhead w Max “wire” bytes per 125us microframe – Budget best case of 188 bytes w Best Case Budget assumes wire runs “as fast as possible” Y0Y0Y0Y0 Y1Y1Y1Y1 Y2Y2Y2Y2 Y3Y3Y3Y3 Y4Y4Y4Y4 Y5Y5Y5Y5 Y6Y6Y6Y6 Y7Y7Y7Y Microframes Best case wire budget,1157 bytes w/ no bitstuffing Max wire time

May 17, Worst Case Operation w Worst case when bus runs “as slow as possible” w 188 “data” bytes can take 220 bytes of time to move w Classic transaction runs in three possible microframes – Due to difference between best & worst case Y0Y0Y0Y0 Y1Y1Y1Y1 Y2Y2Y2Y2 Y3Y3Y3Y3 Y4Y4Y4Y4 Y5Y5Y5Y5 Y6Y6Y6Y6 Y7Y7Y7Y7 Best case wire budget, 1157 bytes w/ no bitstuffing Microframes Worst case, 1350 bytes w/ max bitstuffing Worst case with bulk reclaim bytes w Reclamation (LS control) makes it no worse

May 17, Transaction Scheduling w Classic transaction determines HS split-transactions w Allocate time on classic wire for a new transaction: – Calculate best case classic wire budget w Determine schedule for high speed start-split(s) – Based on Best case budget w Determine schedule for high speed complete-split(s) – Based on Best case budget and rules that deal with worst – Don’t compute worst case, use “3” microframes

May 17, Generic Scheduling of Split Transactions w Allocate time for a new transaction (Y-1) 7 Y0Y0Y0Y0 Y1Y1Y1Y1 Y2Y2Y2Y2 Y3Y3Y3Y3 Y4Y4Y4Y4 Y5Y5Y5Y5 Y6Y6Y6Y6 Y7Y7Y7Y7 Best case budget #1: A classic transaction budgeted to run here on the classic bus,... #2: …has a HS start-split scheduled in this microframe and... #2: …has a HS start-split scheduled in this microframe and... HSStart-splitHSStart-split w Start-splits scheduled in microframe “before” Best case classic w Additional scheduling rules for specific cases (see chap 11) w Complete-splits in (roughly) “next 3” microframes #3: …has HS complete-split transactions scheduled in the latest possible microframes for this transaction HS Complete-splits

May 17, Long Isochronous OUT w Isochronous OUT with >188 data payload has: – More start-splits  A start-split for each microframe with budgeted data present  Different PID based on which portion of classic data (begin,mid,end)  Each start-split is scheduled 188 data bytes (except last) – No complete-split(s) (Y-1) 7 Y0Y0Y0Y0 Y1Y1Y1Y1 Y2Y2Y2Y2 Y3Y3Y3Y3 Y4Y4Y4Y4 Y5Y5Y5Y5 Y6Y6Y6Y6 Y7Y7Y7Y7 BeginEndMidMid Best case budget Microframes with HS Start-Splits Long isoch. transaction Start-SplitTokens:

May 17, Keeping the Pipe Running w TT periodic pipeline must continue to sequence – Normally it does, but… – Errors can occur on high/full/low-speed buses w TT must not service full/low-speed transactions: – Too early – Too late w Microframe “clock” tracking is required

May 17, Periodic Pipeline Example w Example full speed transactions: – T1: 187 data byte isoch IN – T2: 376 data byte isoch OUT – T3: 188 data byte isoch IN – T4: 564 data byte isoch IN w Schedule start-splits SSx - Start-splits Tx - Classic transaction CSx - Complete-splits Best Budget: T3T1T2T4 SS3 SS1 SS4SS2aSS2c SS2b

May 17, Pipeline Example w Schedule Complete-splits SSx - Start-splits Tx - Classic transaction CSx - Complete-splits Best Budget: T1T2T4T3 CS3bCS3aCS3cCS1aCS1bCS1cCS4bCS4dCS4cCS4a – Isoch OUT T2 has no complete-splits – Isoch IN T4 only has one additional complete-split

May 17, SS2b SS2cSS3SS4aCS1bdata0CS3aerrCS4amdataCS1amdata TT Response: Actual: SSx - Start-splits Tx - Classic transaction CSx - Complete-splits CS4bmdataCS4cmdataCS4ddata0 Periodic Pipeline Example T1T2 Best Budget: Worst Budget: T3 T1T2T4T3 T4 CS1aCS3b CS4b CS4bCS4dCS1bCS3aCS4aCS4cSS1SS2aSS2cSS3SS4aSS2b SS1SS2a T1 T1 T2T2 T2Bulk T4 T4T4 T4 CS3c

May 17, Example Bus Traces w Split Bulk w Split Interrupt w Split Isochronous

May 17, USB2.0 Hub Additions Summary w Hub Class Descriptor & Requests w Optional Standardized Port Indicators w TT Internals – Bulk/Control buffering – Interrupt/Isochronous scheduled pipeline w Host OS Microframe Pipeline Scheduling