Cạnh tranh băng thông USB — Thiết bị cùng chậm
Niềm tin phổ biến rằng mỗi cổng USB độc lập là sai. Thiết bị chia sẻ cùng upstream link, hub, speed domain hoặc tài nguyên controller cạnh tranh băng thông, trong khi thiết bị trên đường riêng thì không. Khi thiết bị nặng băng thông như camera hay ổ cứng ngoài chạy cùng controller với thiết bị khác, tất cả đều chậm lại. Hướng dẫn này giải thích topology USB thực tế, nhận diện triệu chứng cạnh tranh, và đưa ra chiến lược kết nối lại mà hầu hết người dùng không bao giờ biết.
Hầu hết người dùng giả định mỗi cổng USB trên máy tính là lane độc lập với kết nối riêng tới hệ thống. Cắm ổ vào một cổng và camera vào cổng khác, kỳ vọng tự nhiên là không thiết bị nào ảnh hưởng thiết bị kia. Hỏi hàng chục người dùng tại sao thiết bị cùng chậm, đa số đổ lỗi cho thiết bị, cáp, hoặc hệ điều hành. Mô hình tinh thần đó sai, và đó là lý do nhiều phiên khắc phục USB kết thúc trong bực bội.
Cổng USB không độc lập. Chúng được nhóm dưới controller, và mỗi thiết bị gắn vào một controller chia sẻ một bus với tổng băng thông cố định. Khi thiết bị trên bus cần nhiều hơn những gì nó có thể cung cấp, chúng cạnh tranh, và tất cả trên bus chậm — kể cả thiết bị gần như không dùng băng thông. Cuộc cạnh tranh đó là bus contention.
Cạnh tranh giải thích một danh sách dài triệu chứng bí ẩn: webcam rớt khung hình khi ổ cứng ngoài bắt đầu copy, âm thanh crackling khi máy in bắt đầu job, MIDI controller ngắt kết nối giữa biểu diễn. Trong nhiều trường hợp thiết bị không hỏng — chúng bị starve, và starve do layout kết nối chứ không phải phần cứng. Chuyển cùng thiết bị sang port khác và vấn đề thường biến mất.

Topology USB thực tế hoạt động thế nào
Traffic USB tuân theo phân cấp nghiêm ngặt. Trên cùng là host controller, chip trên bo mạch chạy giao thức USB. Mỗi controller sở hữu một hoặc nhiều root hub, kết thúc ở cổng vật lý trên mặt sau. Cáp và downstream hub mở rộng bus sâu hơn, thiết bị gắn ở cuối. Việc thiết bị có cạnh tranh phụ thuộc việc chia cùng upstream link, hub, speed domain, và tài nguyên controller. Thiết bị trên speed domain riêng (USB 2.0 vs USB 3.x) hoặc nhánh root hub riêng cùng controller có thể không cạnh tranh — thấy cùng tên controller không chứng minh chúng chia một pool băng thông.
Mỗi controller có một upstream link tới hệ thống với băng thông cố định. Tổng throughput của tất cả thiết bị downstream không thể vượt quá dung lượng upstream link đó, bất kể cắm bao nhiêu thiết bị. Hub chia upstream link giữa các port downstream, nên thêm hub không tạo băng thông mới — nó chỉ chia nhỏ băng thông hiện có cho nhiều thiết bị hơn. Kiến trúc này giải thích tại sao sáu cổng trên mặt sau máy để bàn có thể chia cùng một upstream link: chúng đều là port downstream của cùng một root hub, tất cả nối tới cùng một controller.
Trong hệ thống hiện đại, controller nằm trong chipset thay vì chip riêng, đó là lý do layout port bo mạch có vẻ tùy tiện. Nhà sản xuất quyết định cổng vật lý nào kết nối controller nào, và nhóm đó không in trên vỏ. Bốn cổng sau có thể nằm trên một controller trong khi front-panel header route tới controller khác, không có gợi ý trực quan. Cách duy nhất để biết nhóm là kiểm tra trong software.
Windows Device Manager nhóm kết nối USB dưới Universal Serial Bus controllers. Mỗi entry USB Root Hub đại diện nhánh USB tree, nhưng một host controller có thể quản lý nhiều root hub. Công cụ như USB Device Tree Viewer hoặc USBView hiển thị hierarchy controller-to-hub-to-device chính xác hơn. macOS hiển thị trong System Report dưới USB, Linux qua lsusb -t.
Băng thông thực sự quan trọng
Băng thông là ngôn ngữ của cạnh tranh, và hai con số quan trọng hơn mọi con số khác. Bus USB 2.0 được đánh giá 480 Mbps (USB-IF: USB 2.0 Specification, Section 5.7.6). Sau overhead giao thức, trần thực tế thường 250-280 Mbps (~30-35 MB/s). Bus USB 3.0 đánh giá 5 Gbps, gấp khoảng mười lần, trần thực tế thường 300-400 MB/s tùy controller và cáp.
So sánh thiết bị tiêu thụ:
- Webcam 1080p 30 fps compressed stream 20-50 Mbps.
- SSD ngoài khi copy file lớn thường 100-400 MB/s.
- Máy in burst data trong xung ngắn khi in.
- Chuột, bàn phím, receiver dùng vài kilobit/giây, không đáng kể.
Đặt camera và ổ ngoài trên cùng bus USB 2.0: ổ một mình có thể tiêu thụ toàn bộ băng thông, để camera gần như không còn gì. Thêm thiết bị thứ ba, controller không thể đáp ứng tất cả, nên service theo lượt. Isochronous transfer — kiểu transfer camera và audio interface dùng — reserve băng thông cố định trên bus. Khi stream camera reserve phần của nó, phần còn lại cho thiết bị khác bị thu hẹp, và thiết bị best-effort như chuột và ổ ngoài phải cạnh tranh cho phần còn lại. Nếu tổng reserve vượt băng thông bus, controller bắt đầu drop frame camera hoặc delay transfer best-effort.
Con số quan trọng không phải tổng băng thông controller, mà là băng thông còn lại sau khi mỗi thiết bị claim phần của nó. Một camera 50 Mbps không chiếm 50 Mbps — nó chiếm 50 Mbps cộng với overhead và reserve isochronous có thể đẩy tổng tiêu thụ lên cao hơn. Trên bus 280 Mbps, hai stream camera 50 Mbps mỗi cái, cùng với overhead, có thể để lại rất ít cho thiết bị khác.

Bốn lầm tưởng về USB
Lầm tưởng một: “USB 3.0 và 2.0 độc lập.” Điện riêng, đúng — nhưng chỉ trên bo mạch. Cắm thiết bị USB 2.0 vào hub USB 3.0: hub conforme có đường riêng, thiết bị chạy High-Speed 480 Mbps. Nhưng một số hub cũ negotiate xuống Full-Speed 12 Mbps — không cảnh báo, không lỗi, giảm throughput mười lần. Luôn kiểm tra tốc độ negotiated trong Device Manager.
Lầm tưởng hai: “Nhiều port, nhiều băng thông.” Thêm hub hoặc cắm thiết bị vào port còn lại không tạo throughput. Mặt sau sáu port trên một controller cung cấp cùng băng thông như một port trên controller đó. Nhiều port là tiện lợi, không bao giờ là băng thông.
Lầm tưởng ba: “Receiver không dây cần USB 3.0 cho tốc độ.” Receiver chuột truyền vài kilobit/giây — port USB 2.0 dư gấp nghìn lần. Kẻ thù thực là RF interference. Tín hiệu USB 3.0 tạo noise 2-2.8 GHz (Intel: USB 3.x Interference Whitepaper, 2015), trùng băng 2.4 GHz receiver dùng.
Lầm tưởng bốn: “Cạnh tranh băng thông hiếm.” Nó là một trong những nguyên nhân thường bị bỏ qua nhất, chính vì vô hình. Thiết bị hiếm khi báo bị starve. Chúng rớt khung, crackle, stutter, ngắt — mỗi triệu chứng bị đổ lỗi cho thiết bị.
Laptop hay Desktop? Vấn đề khác nhau
Laptop có một đến ba controller cho mọi thứ: tất cả port USB, webcam tích hợp, fingerprint reader, và thường Bluetooth nội bộ. Laptop ngày càng gộp Thunderbolt và USB vào một controller. Quản lý nguồn BIOS tích cực có thể idle hoặc disable controller để tiết kiệm pin. Trên laptop, việc kiểm soát topology còn khó hơn: một số nhà sản xuất route webcam nội bộ và Bluetooth qua cùng controller với port USB ngoài, nghĩa là webcam của bạn và ổ ngoài cắm vào port cạnh nhau chia sẻ cùng bus mà bạn không biết.
Desktop thường có nhiều controller hơn — hai đến bốn. Layout thường nhóm nhiều port sau dưới một controller, và một chuỗi hub có thể funnel hàng chục thiết bị vào một bus. Lỗi desktop điển hình không phải thiếu controller mà là gán port kém: thiết bị nặng kết thúc trên cùng bus với mọi thứ khác. Tuy nhiên, desktop cho phép sửa: thêm card PCIe USB mở rộng controller độc lập, cung cấp bus riêng cho thiết bị nặng băng thông.
Bảng chẩn đoán triệu chứng
- Camera rớt khung hình — bão hòa băng thông trên controller chia sẻ. Camera stream là canary kinh điển: tiêu thụ băng thông liên tục, nên là thiết bị đầu tiên lỗi khi thiết bị khác trên bus yêu cầu phần của nó. Đây cũng là lý do một kiểm tra luồng webcam thời gian thực có thể hiển thị bản xem trước cục bộ sạch trong khi luồng mã hóa bị suy giảm — bus có thể đang làm camera thiếu hụt trước cả khi encoder chạy.
- Âm thanh crackling — vấn đề băng thông hoặc nguồn trên hub chia sẻ. Audio interface nhạy latency. Khi bus bão hòa, transfer bị trễ, delay hiện thành click và crackle.
- MIDI controller ngắt kết nối — nhạy latency trên bus bão hòa. Khi transfer slot bị starve, host coi thiết bị không phản hồi và drop kết nối.
- Receiver không dây stutter — RF interference từ USB 3.0 hoặc cạnh tranh băng thông. Receiver cạnh USB 3.0: nghi RF trước. Hoạt động idle nhưng stutter under load: nghi bus.
- Ổ ngoài copy chậm — chia băng thông với thiết bị active khác. Throughput ổ sụp khi camera hoặc ổ thứ hai active trên cùng bus.
- Ngắt kết nối intermittent — ngưỡng nguồn hoặc băng thông vượt. Ngắt khi thiết bị khác bận: băng thông. Ngắt khi thêm thiết bị: nguồn.
Lập bản đồ. Tách biệt. Kiểm tra.
- Xác định controller. Mở Device Manager, expand Universal Serial Bus controllers. Dùng USB Device Tree Viewer cho mapping chính xác.
- Nhóm thiết bị nặng băng thông trên controller riêng. Camera trên một controller, ổ ngoài trên controller khác.
- Dùng port bo mạch trực tiếp cho thiết bị quan trọng. Chuột gaming, audio interface, MIDI controller: bỏ qua hub, cắm trực tiếp mặt sau.
- Dùng hub có điện cho thiết bị cần nguồn, không băng thông.
- Di chuyển receiver không dây xa USB 3.0. Dùng port USB 2.0 mặt sau hoặc cáp mở rộng.
- Retest under load sau mỗi thay đổi. Chạy camera stream và drive copy cùng lúc. Layout đúng khi không thiết bị nào degrade.

Trình duyệt không phải công cụ topology
API USB của trình duyệt là WebHID, nhận diện thiết bị HID kết nối sau khi có quyền người dùng. Nó không hiển thị topology controller đầy đủ, băng thông từng thiết bị, hoặc hierarchy controller-to-hub-to-device. Công cụ USB device info trên site này dùng WebHID để hiển thị thiết bị HID kết nối và vendor/product ID; nó là công cụ nhận diện thiết bị, không phải bộ phân tích topology.
Để mapping topology đầy đủ, dùng USB Device Tree Viewer (Windows), USBView, hoặc system_profiler SPUSBDataType (macOS).
Kết luận
USB chia sẻ, không dedicated. Mỗi port là cửa vào bus có băng thông cố định, và mỗi thiết bị chia dung lượng. Khi thiết bị cùng chậm, thường không hỏng — chúng đang cạnh tranh.
Sửa hiếm khi cần phần cứng mới — đôi khi, phản trực giác, nước đi tốt nhất là rút, không thêm. Lập bản đồ topology, tách thiết bị nặng băng thông sang controller khác, giữ thiết bị quan trọng trên port bo mạch trực tiếp, và cho receiver không dây kết nối USB 2.0 sạch. Sau đó test: chạy camera stream và drive copy cùng lúc và xem gì break. Layout sống sót test đó là layout đáng giữ.
Sửa hiếm khi cần phần cứng mới — đôi khi, phản trực giác, nước đi tốt nhất là rút, không thêm. Lập bản đồ topology, tách thiết bị nặng băng thông sang controller khác, giữ thiết bị quan trọng trên port bo mạch trực tiếp, và cho receiver không dây kết nối USB 2.0 sạch. Sau đó test: chạy camera stream và drive copy cùng lúc và xem gì break. Layout sống sót test đó là layout đáng giữ.