Ik zou wel willen maar dit is hoe USB sinds het begin werkt. Het protocol was ooit bedoeld om diverse input devices middels 1 soort connector aan te kunnen sluiten. Het had in den beginne ook welgeteld 1 soort connector (net zoals we dat nu met USB 3.2 en 4.0 ook hebben) maar al snel ontstond er een compleet oerwoud aan connectoren.
Ook de snelheid ging omhoog want met USB2.0 ontdekte men dat de snelheid ineens het gebruik van externe schuiven bruikbaar maakte. En toen moest het steeds sneller want we gingen van harde schijven naar solid state drives. Sneller gaan is niet simpelweg een kwestie van de snelheid maar opschroeven. Je loopt met data al snel tegen allerlei issues aan waar je wat mee moet doen. Gevolg is dan ook dat er enorm veel checks in gebouwd zijn om zeker te zijn dat data aankomt en ook zonder fouten.
Als je bij usb.org de specs van de verschillende USB versies download zul je zien dat er heel veel wiskundige formules in voorkomen en er enorm veel aandacht aan error checking en correcting wordt besteed. Met wat USB4.0 kan is dat alleen nog maar belangrijker geworden. Hier moet namelijk ook nog eens door een extra component (een router) worden bepaald waar wat naartoe moet (PCIe controller, GPU, USB controller). Zie het plaatje die bij dit artikel wordt vermeldt en tevens de spec vanaf pagina 94. Daarin staan alle fases genoemd die doorlopen moeten worden vooraleer er iets gebeurd.
Daarom was het tot USB3.0 simpeler: er waren lage snelheden die weinig tot geen problemen opleveren. Met de 5Gbps van USB3.0 kan dat niet en moesten ze allerlei controles in gaan bouwen. Dat zag je ook terug: USB3.0 kabels zijn aanzienlijk dikker dan die van voorgaande versies en er waren enorm veel problemen (met name bij de el cheapo implementaties) met de verbinding (instabiel en sloom).
Wat de beide USB organisaties (USB Promoter Group en USB Implementers Forum) en techsites als tweakers.net sinds USB2.0 verkeerd doen is alleen maar de nadruk leggen op de snelheid. En het dan ook vaak zo verwoorden dat een nieuwe USB versie alleen maar nieuwe snelheid betekent. Dat is pertinent onjuist zoals je in de specs van de USB versies kunt vinden. Er zijn meer wijzigingen zoals de gebruikte connectoren. Zo kan USB 3.1 alleen maar met USB-A en USB-C connectoren en USB 3.2 en 4.0 alleen maar met USB-C.
Ik had liever gezien dat ze het deden zoals de rest van de wereld dat ook doet en hoop dat ze de wijze van Intel's Thunderbolt groep overnemen: het hebben over de beschikbare linkspeeds. Uiteindelijk zijn de genoemde USB snelheden namelijk niet meer dan de maximum snelheid van je USB link en die is met USB-C 480 Mbps, 5 Gbps, 10 Gbps, 20 Gbps of 40 Gbps. Voor de gemiddelde consument is ook dit eigenlijk niet zo interessant om te weten. Het volstaat om te weten welke USB versie er nodig is.
USB4.0 is de allergrootste wijziging van USB sinds versie 1.0. Het hele protocol is, zoals je in de spec al kunt lezen, gebaseerd op Thunderbolt 3. Dat maakt het al radicaal anders dan voorgaande versies en helaas ook een stuk complexer om te implementeren. De spec voor USB4.0 kun je downloaden op
https://www.usb.org/document-library/usb4tm-specification Het is wel aardig wat lees en bladerwerk: het is een pdf document van 569 bladzijden. De schema's maken e.e.a. zeer duidelijk, eveneens als wat je op pagina 94 (en verder) terugvindt.
Het probleem met jouw verhaal zit hem in het niet begrijpen van semantic versioning en het niet verder kijken dan snelheid. Zoals je in de spec van USB4.0 (en ook alle eerdere versies) kunt zien bestaat USB uit heel veel meer dan alleen maar een opgave van een maximum linkspeed. De spec is niet voor niets 569 pagina's ipv 1 pagina groot. In dit geval hebben ze nagenoeg de hele aanpak van USB overboord gegooid en hebben ze nu Thunderbolt 3 als basis gepakt en dat verder verfijnd. Dat is een dermate grote wijziging dat je niet van 3.2 naar 3.3 kunt maar naar 4.0 gaat. Die manier van versienummering wordt al sinds de eerste versie van USB gehanteerd. We gingen namelijk van 1.0 naar 1.1, toen ineens naar 2.0, toen naar 3.0 en vervolgens waren er weer kleine wijzigingen in de vorm van 3.1 en 3.2. Als de spec wijzigt dan veranderd ook het versienummer.
Dit is dus pertinent onjuist omdat er geen enkele rekening wordt gehouden met de overige wijzigingen in het USB protocol zoals de ondersteunde connectoren:
Iedere nieuwe usb3 werd de vorige versie usb 3 hernoemd naar de opeenvolgende, 3.0=3.1 Gen1=3.2 1x2.
Door niet naar alle wijzigingen te kijken maak je het jezelf alleen maar moeilijk mee. Om je een voorbeeldje te geven: USB 3.2 ondersteund alleen maar USB-C connectoren, terwijl bij USB 3.0 die connectoren in de spec niet voorkomt (bij het tot stand komen van de spec bestond USB-C namelijk nog niet). Als je USB 3.2 1x2 ziet dan moet je dat lezen als: een USB-C kabel waarover USB gaat met een max linkspeed van 5 Gbps.
De logo's staan er om aan te geven welke USB versie er ondersteund wordt, daarnaast gebruiken ze additionele symbolen om specifieke features aan te geven (bijv. de max linkspeed). Dat maakt het giswerk al een stuk minder. Die complete rekensom waar je het over hebt geldt voor alles trouwens. Leuk dat het HDMI 1.4 is maar waar vind ik als consument of mijn 4k scherm volledig ondersteund wordt of niet? En hoe komt het dan toch dat de collega met hetzelfde scherm een veel responsiever scherm heeft dan ik?
Simpel: dat is het verschil tussen HDMI 1.4 en 2.0. Moet je ook maar net weten dat 1.4 niet verder gaat dan 4k @ 30Hz en de 2.0 juist 4k @ 60Hz. Als ik dat tegen onze mensen van administratie en marketing vertel dan zal geen van hen het snappen. Het is te technisch. Dat is dan ook geen tweakers.net publiek.
Btw, in de USB4.0 spec vindt je onder hoofdstuk 1.4 een stukje die ook duidelijk moet maken hoe je USB 3.1, 3.2 en 4.0 moet zien:
1.4 Design Goals
USB 3.1 and USB 3.2 were evolutionary steps to increase bandwidth. The goal for USB4 remains the same with the added goal of helping to converge the USB Type-C® connector ecosystem and minimize end-user confusion. Several key design areas to meet this goal are listed below:
- Offer display, data, and load/store functionality over a single USB Type-C connector.
- Retain compatibility with existing ecosystem of USB and ThunderboltTM products.
- Define Port Capabilities for predictable and consistent user experience.
- Provide increased host flexibility to configure bandwidth, power management, and other performance-related parameters for system needs.
Voor wie het nog niet doorheeft: Thunderbolt en nu USB moet een universeel protocol worden waarbij de apparaten aan beide kanten van de verbinding onderling moeten gaan bepalen hoeveel stroom, bandbreedte er nodig is en welke features er gebruikt kunnen/mogen worden. Voor de consument betekent dat minder gezoek naar zaken als verschillen tussen HDMI 1.4 en 2.0. Ik hoef hier denk ik niet uit te leggen wat hiervan het belang is.