เหตุใดพอร์ต USB และพอร์ต Ethernet จึงใช้คอนโทรลเลอร์ร่วมกัน


12

ฉันเข้าใจว่าพอร์ต USB บน Pi แบ่งปันคอนโทรลเลอร์เดียวกันกับพอร์ต Ethernet

ซึ่งหมายความว่าหากมีใครใช้ Pi เป็น NAS การถ่ายโอนข้อมูลผ่านเครือข่ายจะถูก จำกัด เนื่องจากทั้งพอร์ต USB และพอร์ต Ethernet จะใช้พร้อมกัน

คำถามของฉันคือการถ่ายโอนข้อมูลมีผลกระทบอย่างไรช้าและมีวิธีแก้ไขปัญหานี้หรือไม่?


2
ไม่ได้อีกต่อไป (บน Pi 3): raspberrypi.stackexchange.com/q/44433/24224
PNDA

คำตอบ:


13

คุณเข้าใจถูกต้องว่าบัส USB / ethernet ที่ใช้ร่วมกันเป็นคอขวด

ทางเลือกหนึ่งคือใช้ Pi 3 ผ่าน WiFi ชิป WiFi ไม่ได้แชร์บัสกับซ็อกเก็ต USB และควรรันด้วยความเร็วสูงสุด

การใช้ Pi อื่นนอกเหนือจาก Pi 3 ฉันเชื่อว่าการใช้อะแดปเตอร์อีเทอร์เน็ต USB 3 Gigabit ในซ็อกเก็ต USB สามารถทำงานได้อย่างมหัศจรรย์สำหรับความเร็วการเชื่อมต่อของคุณ jeffgeerling.com ชิ้นนี้แสดงให้เห็นว่าเขาสามารถปรับปรุงความเร็วของเครือข่ายได้อย่างมากในลักษณะนี้

ประสิทธิภาพเครือข่าย I / O - Raspberry Pi B + / 2


7

USB 2.0 มีอัตราการถ่ายโอนสูงสุด 480Mb / วินาที (เมกะบิต )
ตอนนี้อัตราการถ่ายโอนจริงในโลกจริงช้ากว่ามาก

My Pi 2 มีความเร็วสูงสุด 220Mb / วินาที (เมกะบิต ) ผ่าน USB

maxium the Pi สามารถผลักดันผ่านพอร์ตเครือข่าย 10/100 ประมาณ 90Mb / วินาที (เมกะบิต )


ดังนั้น:

  480 Mb/sec        (USB 2.0 maxium throughput)
- 260 Mb/sec        (For real-world speeds)
-  90 Mb/sec        (For the network port)
-----------
  130 Mb/sec        (Left over bandwidth)

ดังนั้นหลังจากโหลดพอร์ตเครือข่ายลงจนสุดคุณจะเหลือแบนด์วิดท์เหลือ130Mb / วินาที (เมกะบิต )
หากต้องการเล่นอย่างปลอดภัยให้เหลือ 100Mb / วินาที (เมกะบิต )


ดังนั้น (สมมติว่าคุณมี Pi 2):

ตราบใดที่แบนด์วิดท์ USB ของคุณไม่เกิน 100Mb / วินาที (เมกะบิต ) คุณก็สบายดี 90Mb / วินาที (เมกะบิต ) ที่จะถูกใช้เพื่อส่งต่อไปยังการ์ดเครือข่าย

ดังนั้นตราบใดที่สิ่งอื่นที่ไม่ใช่ HDD ที่เชื่อมต่อกับพอร์ต USB ใช้น้อยกว่า 10Mb / วินาที (เมกะบิต) คุณจะทำงานด้วยความเร็วสูงสุดที่ Pi 2 สามารถจัดการได้)


5

ตัวควบคุมคือMicrochip LAN9512และเหตุผลที่ใช้แทนเช่นกลุ่มของตัวควบคุมอิสระสันนิษฐานว่า:

  1. ราคา. นี่คือตัวอย่างของบางแห่งที่คุณสามารถซื้อได้ 100 รายการในราคา $ 5

  2. ปัจจัยรูปแบบ คุณอาจจำ Raspberry Pi ที่วางตลาดหรือเทคโนโลยี blogged เกี่ยวกับเป็น "คอมพิวเตอร์ขนาดบัตรเครดิต" หรือ "คอมพิวเตอร์ที่เหมาะกับฝ่ามือของคุณ" ไม่ "ยังระบบ mini-ITX อื่น" หรือ "คอมพิวเตอร์ที่ จะพอดีกับหมวกขนาดใหญ่ "ฯลฯ

  3. อำนาจ การมองที่หน้าแรกของแผ่นข้อมูล (เข้าถึงได้จากลิงค์ Microchip) "กล่าวถึงการใช้โหมดลดการใช้พลังงาน" เป็นหนึ่งใน "คุณสมบัติ" คุณต้องขุดลึกลงไปเพื่อค้นหาความหมายที่แท้จริงในแง่เปรียบเทียบ แต่อย่างน้อยบนพื้นผิวมันทำให้รู้สึกเป็นไปได้

โปรดจำไว้ว่าปี่มีค่าใช้จ่ายขายปลีก ~ $ 35 ไม่ใช่ $ 135 หรือ $ 350 นั่นคือคำตอบสำหรับคำถามที่แท้จริงในชื่อของคุณ"ทำไมพอร์ต USB และพอร์ต Ethernet จึงใช้คอนโทรลเลอร์ร่วมกัน?" .

โปรดทราบว่ามันไม่ใช่วิธีที่ผิดปกติสำหรับพอร์ต USB หลายแห่งที่จะแบ่งปันบัสเดียวกัน --- อาจเป็นเรื่องปกติ ฉันสังเกตเห็นแล็ปท็อปที่ฉันใช้อยู่ตอนนี้มีพอร์ต USB 3 พอร์ต แต่lsusbรายงานว่ามีฮับ "Full speed" เพียงสองพอร์ตเท่านั้น ดังนั้นอย่างน้อยสองพอร์ตเหล่านี้จึงใช้ฮับร่วมกันและทั้งคู่จะไม่ได้รับ "ความเร็วเต็ม" ในเวลาเดียวกัน ฉันแน่ใจว่าถ้าคุณตรวจสอบระบบปัจจุบันของคุณมันจะรวมตัวกันตามเส้นที่คล้ายกัน

การรวมอีเทอร์เน็ตเข้ากับที่ผิดปกติ แต่ควรสังเกตว่า USB 2.0 ควรมีขนาด 480 Mbps ในขณะที่การเชื่อมต่ออีเทอร์เน็ต 10/100 นั้นต้องการมากที่สุด 100 รายการ

Wikipedia ตั้งข้อสังเกตว่าการอ้างถึงแหล่งที่มาว่า "เนื่องจากข้อ จำกัด ในการเข้าถึงรถบัสปริมาณงานที่มีประสิทธิภาพของอัตราการส่งสัญญาณความเร็วสูงจะถูก จำกัด ที่ 280 Mbit / s หรือ 35 MB / s"; ไม่ว่าจะหมายความว่าต่อพอร์ตหรือสำหรับรถบัสโดยรวมนั้นไม่ชัดเจน

การถ่ายโอนข้อมูลช้าลง

เห็นได้ชัดว่าคุณจะไม่ได้รับมากกว่า 480 Mbps และคุณอาจจะไม่ได้รับมากกว่า 280 โดยส่วนตัวฉันไม่เคยเห็นหรือได้ยินรายงานของ pi ที่ทำได้ดีกว่าการถ่ายโอน 10 MB / s จากอีเธอร์เน็ตท้องถิ่นไปยัง USB ไดรฟ์ (เช่น 80 Mbps) อย่างสม่ำเสมอเพื่อวัตถุประสงค์ปกติ อย่างไรก็ตามหมายเลขนั้นอยู่หลังจากจัดการโปรโตคอลซึ่งจะเพิ่มตัวแปร แต่ฉันคิดว่าเปอร์เซ็นต์เล็กน้อย - ด้วยอีเธอร์เน็ตมันอาจแตกต่างกันมากขึ้นอยู่กับโทโพโลยีและกิจกรรมของเครือข่ายที่เชื่อมต่อ

มีวิธีแก้ไขปัญหานี้หรือไม่

ถ้าคุณหมายถึงฉันสามารถบีบน้ำผ่านท่อมากกว่าท่อที่ทำไว้แล้วไม่ได้หรือฉันจะปั๊มให้ทำงานเร็วขึ้น หากคุณต้องการปั๊มที่เร็วกว่าหรือท่อที่ใหญ่กว่าให้ซื้อปั๊มที่เร็วขึ้นและท่อที่ใหญ่กว่า


1

เหตุใดพอร์ต USB และพอร์ต Ethernet จึงใช้คอนโทรลเลอร์ร่วมกัน

เนื่องจาก SoC บน pi 1 ถึง 3 ไม่มีคอนโทรลเลอร์อีเธอร์เน็ตจึงมีคอนโทรลเลอร์ USB เพียงอันเดียวและไม่มีอินเตอร์เฟสอื่นใดที่สามารถใช้กับอีเธอร์เน็ตได้อย่างง่ายดาย ในขณะที่ Eben สามารถมีอิทธิพลต่อการออกแบบ BCM2835 ในที่สุดมันก็เป็นผลิตภัณฑ์ของ Broadcom และหัวหน้าของเขาที่ Broadcom จะเรียกการถ่ายภาพในที่สุดมีเพียงเขาเท่านั้นที่สามารถหนีไปได้

ยังจำได้ว่า Pi นั้นถูกออกแบบมาให้เป็นคอมพิวเตอร์ราคาถูกที่เด็ก ๆ สามารถเรียนรู้การเขียนโปรแกรมได้ ความจริงมันถูกหยิบขึ้นมาและใช้สำหรับสิ่งอื่น ๆ ทุกประเภทเช่นกันเป็นเพียงผลข้างเคียงที่โชคดี

LAN9512 (แทนที่ภายหลังด้วย LAN9514 เพื่อเพิ่มพอร์ตมากขึ้นและ LAN7515 เพื่อให้บริการอีเธอร์เน็ตที่เร็วขึ้น) มอบโซลูชันที่สะดวกในการเพิ่มพอร์ต USB พิเศษและพอร์ตอีเธอร์เน็ต

เมื่อพวกเขาอัพเกรดแขนแกน pi2 และ pi3 พวกเขาตัดสินใจที่จะออกจากส่วนที่เหลือของชิปเพียงอย่างเดียว (นอกเหนือจากการแก้ไขข้อผิดพลาดของตัวควบคุมหน่วยความจำเพื่อให้ RAM 1GB) ฉันเข้าใจว่าสิ่งนี้ได้รับแรงบันดาลใจจากการพยายามอัปเกรดให้มีราคาถูกและมีความเสี่ยงต่ำที่สุดเท่าที่จะทำได้

ในที่สุดพวกเขาก็มาถึงจุดที่พวกเขามีทางเลือกน้อย แต่ต้องทำการปรับปรุงครั้งใหญ่ของการออกแบบ SoC โชคดีที่พวกเขาได้สร้างฐานลูกค้าจนถึงจุดที่การยกเครื่องเช่นนั้นเป็นไปได้ทางการเงิน ด้วยราสเบอร์รี่ pi 4 ฮับ USB ที่มีชิปอีเธอร์เน็ตหายไปแทนที่ด้วยชิป Ethernet PHY ซึ่งขับเคลื่อนโดย MAC บน SoC ใหม่และคอนโทรลเลอร์ USB3 ที่ขับเคลื่อนโดย PCIe บน SoC ใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.