เหตุใด CPU บางครั้งเรียกว่า BCM2708 บางครั้ง BCM2835


49

ฉันเคยเห็นระบบบนชิปของราสเบอร์รี่ Pi ที่มักเรียกว่า "BCM2835" (เช่นใน Wikipedia ) แต่บางครั้งก็เป็น "BCM2708" (เช่นแหล่งที่มาสำหรับไดรเวอร์ Linux SPI อยู่ในbcm2708.cหรือแสดงความคิดเห็นต่อคำถามอื่น ๆ ของฉัน )

อะไรถูกหรือทั้งคู่ - ทำไม? หากมีความไม่สอดคล้องกันในเอกสารข้อมูลสำหรับทั้งสองสิ่งซึ่งจะต้องเข้าใจว่า "สำคัญกว่า"?

คำตอบ:


13

ที่จริงแล้วความแตกต่างนั้นเกิดจากการกำหนดของซิลิคอนและแพคเกจชิป เดิมทีมีแม่พิมพ์ซิลิคอนซึ่งรู้จักกันในชื่อ BCM2708 การพัฒนาเริ่มแรกได้ทำไปแล้ว

ในแพคเกจขนาด 9x9 ที่มี DRAM 256MB จะรู้จักกันในชื่อ BCM2763 (ซ้อนกันคือเมื่อคุณยึดซิลิกอน DRAM ไว้บนโปรเซสเซอร์และวางสายไฟลงบนวัสดุพิมพ์)

แต่เมื่อหน่วยความจำเป็น POP'd (แพ็คเกจบนแพ็คเกจแพคเกจ DRAM นั้นติดอยู่ด้านบนสุดของแพ็คเกจโปรเซสเซอร์) จากนั้นก็รู้จักกันในชื่อ BCM2835 นี่คืออุปกรณ์ที่เปิดใช้งาน ARM

ชิปรุ่นต่อมาเป็นไปตามรูปแบบเดียวกันขณะนี้มีซิลิคอนสามชิ้นคือ BCM2708, BCM2709 และ BCM2710 และสามแพ็คเกจ BCM2835, BCM2836 และ BCM2837


20

นอกเหนือจากคำตอบของสตีฟแล้วยังมีการพูดคุยกันที่นี่ในบันทึกปัญหาฮับ git สำหรับไดรเวอร์ลินุกซ์ที่พูดถึงว่าควรติดป้ายไดรเวอร์อย่างไร โพสต์ที่เกี่ยวข้องคือ:

popcornmix:

ในทางเทคนิค 2708 เป็นครอบครัวและ 2835 เป็นการนำไปใช้เฉพาะ ตอนนี้เรารู้แล้วว่า 2835 เป็นเพียงการนำไปใช้ในตระกูลที่สามารถใช้งาน linux ได้ (และจะไม่มีรุ่นใหม่ของตระกูลนี้) ดังนั้นจึงอาจไม่สำคัญว่าจะใช้รุ่นใดแม้ว่าจะสอดคล้องกันก็ตาม

lp0:

ดังนั้นจะสมเหตุสมผลที่จะตั้งชื่อไดรเวอร์ทั้งหมด 2708 แต่ไฟล์ทรีอุปกรณ์เฉพาะ 2835? (สมมติว่าหากมีรุ่นอื่นในตระกูลนั้นที่สามารถเรียกใช้ linux ได้ก็จะต้องใช้รายการอุปกรณ์อื่น)


ความคิดเห็นอื่นแสดงให้เห็นว่าอาจจะ "BCM2708 เป็นองค์ประกอบของ CPU ซึ่งเป็นส่วนหนึ่งของ BCM2835" การเชื่อมโยงบางอย่างกับมือหลักฐานจะดี ... (ยังเป็นที่ผมโพสต์คำถามนี้เพราะผมต้องการอะไรมากไปกว่าสิ่งที่ฉันได้พบแล้วในผลแรกของ Google)
akavel

1
ฉันพยายามหาบางอย่าง แผ่นข้อมูล Broadcom มีการเชื่อมโยงที่นี่: raspberrypi.org/wp-content/uploads/2012/02/... อย่างไรก็ตามไม่มีการอ้างอิงหมายเลข BCM2708 เท่าที่ฉันเห็นสถานที่เดียวที่ตัวเลขทั้งสองปรากฏอยู่ด้วยกันนั้นอยู่ในโพสต์ที่ถามคำถามแบบนี้
Jon Egerton

14

ในทางเทคนิค 2708 เป็นชื่อสำหรับตระกูลของชิปและ 2835 เป็นชิปเฉพาะใน Pi ในกรณีที่แผ่นข้อมูลอื่น ๆ แทนที่ฉันจะเลือก BCM2835 (เฉพาะ) มากกว่า BCM2708 (ครอบครัว)


1
อ้างอิงฮาร์ดจำเป็น โปสเตอร์อื่นแนะนำว่าบางที "BCM2708 เป็นองค์ประกอบของ CPU ซึ่งเป็นส่วนหนึ่งของ BCM2835" ขอโทษนะ แต่ทำไมฉันถึงเชื่อคุณไม่ใช่เขา?
akavel

1
ในฐานะที่เป็น "โปสเตอร์อื่น ๆ " - ผมอยากจะบอกว่ามันเป็นการเก็งกำไรบนพื้นฐานของแหล่งเคอร์เนล ฉันไม่มีหลักฐานที่ชัดเจนเช่นกัน ... และเราควรมีคำตอบจากแหล่งบัญญัติ (เด่นกว่า Broadcomm)
Maria Zverina

1
@MariaZverina ในกรณีนี้โดยทั่วไปแหล่งที่มาแบบมาตรฐานอาจไม่สามารถใช้งานได้กับทุกคน - เนื่องจากแม้แต่การรับรายละเอียดแบบเต็มบนชิปก็ต้องมี NDA ผลที่ตามมาก็คืออาจมีการเรียกใช้แนวทางปฏิบัติเพิ่มเติม ให้ฉันถามคำถามเป็นวิธีการรับบริบทสำหรับคำถาม คุณพยายามทำอะไรที่คุณไม่สามารถเป็นผลมาจากคำถามการตั้งชื่อนี้
Steve Robillard

@MariaZverina และ akavel ฉันเพิ่งเจอวิดีโอนี้บน YouTube youtube.com/watch?v=5jEVBK7P1GAจาก Geert van Leuw พูดถึงชิปใน Pi และเขาอ้างถึงมันเป็น 2835 เป็นแหล่งข้อมูลเกี่ยวกับฮาร์ดแวร์ Pi ฉันคิดว่าคุณจะต้องยอมรับว่ามันไม่ได้ดีขึ้นมาก
Steve Robillard

4

เป็นเรื่องที่ควรตระหนักว่า ARM ARM ไม่ใช่ส่วนหลักของ SoC แต่เป็นแกนเสริมที่ติดอยู่ด้านหลังระบบ MMU หน่วยประมวลผลหลัก (บูต) คือ VideoCore ซึ่งดำเนินการเริ่มต้นในช่วงต้นตั้งค่าระบบ MMU และบู๊ตแกน ARM

ส่วนใหญ่แล้ว bcm2708 หมายถึงส่วนหลักของ SoC ที่มีหน่วยประมวลผล VideoCore และอุปกรณ์ต่อพ่วง (ดูที่ตาราง VideoCore SoCของวิกิพีเดียสังเกตว่าไม่มีส่วนใดของ bcm27xx มีแกน ARM)

จากการเปิดตัวซอร์สโค้ดของไดรเวอร์ของ Broadcom ฉันได้รับความประทับใจจริง ๆ ว่า VC4 SoC ทั้งหมดนั้นใช้ bcm2708 ในขณะที่ VC3 คือ bcm2707 มีอย่างน้อยสาม bcm2708 การแก้ไข (a0, b0, c0) แม้ว่าและ a0 แตกต่างกันพอที่จะมี #ifdefs ทั่วสถานที่และส่วนหัวของตัวเองค่อนข้างน้อย นอกจากนี้ยังมีข้อยกเว้นสำหรับ "เกาะใหญ่ VC4" ซึ่งไม่มีส่วนหัวหลัก แต่ฉันไม่สามารถหาได้มากนักถึงแม้ว่าคำพูดนี้จะน่าสนใจ

ดังนั้นจึงเหมาะสมสำหรับผู้ขับขี่ที่อ้างถึง 2708 (โดยเฉพาะถ้าพวกเขาได้รับการพัฒนาโดย Broadcom)

ฉันไม่แน่ใจว่าจะทำอย่างไรกับการรายงาน rpi2 bcm2709 ... มีคำสั่งมากมายที่ bcm2835 และ bcm2836 SoCs แตกต่างกันเฉพาะในระบบย่อย ARM และที่อยู่ฐานอุปกรณ์ต่อพ่วง (เช่นระบบ MMU ที่แตกต่างกันเล็กน้อย) ดังนั้นจึงดูเหมือนสูง อาจเป็นจริงตาม bcm2708 ตาม แต่ข้อมูลที่มีอยู่ค่อนข้าง จำกัด ฉันสงสัยว่ามีใครบางคนเพียงแค่ชนเลขเพื่อจัดการกับรหัสที่สมมติว่า bcm2708 หมายถึง ARM11 หลัก (ในความเป็นจริงมันไม่ได้หมายความถึง ARM core ใด ๆ เลย)

แก้ไข:เอกสาร bcm2836 quad-A7 ที่เพิ่งเปิดตัวยืนยันว่าเป็นไปตาม bcm2708


ฉันเชื่อว่า BCM2709 คือ ARMv8 ARMv8 เป็น AArch64 (ARM-64) และมันหมายถึงฮาร์ดแวร์มีส่วนขยายเช่นCRC32, pmull, AES, sha1 และ sha2
jww

เอ๊ะคุณอ่านคำตอบของฉันบ้างไหม? BCM2708 เพียงอ้างอิงถึงส่วนหลักของ SoC (VideoCore 4 + อุปกรณ์ต่อพ่วง) ไม่มี ARM ดูตัวอย่างการเผยแพร่ส่วนหัวของ Broadcom เพื่อรับทราบว่ามีอะไรบ้าง BCM2835 / 6/7 (และส่วนอื่น ๆ อีกมากมาย) ถูกสร้างขึ้นโดยการติดตั้งระบบย่อย ARM 11 / quad-a7 / quad-a53 ARM (ตามลำดับ) ลงบนด้านข้างของมัน อย่างไรก็ตามเรื่องนี้ไม่มีอะไรเกี่ยวข้องกับส่วนที่เหลือของ SoC
Matthijs

0

การค้นหาของฉันสำหรับคำถามนี้ได้รับแจ้งจากหน้านี้

หมายเหตุการตอบสนองจากคำสั่ง cat / proc / cpuinfo

...

ฮาร์ดแวร์: BCM2708

รุ่น: 1000002


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