Mengapa CPU kadang-kadang disebut sebagai BCM2708, kadang-kadang BCM2835?

49

Saya telah melihat Sistem pada Chip Raspberry Pi disebut biasanya sebagai "BCM2835" (misalnya di Wikipedia ), tetapi kadang-kadang sebagai "BCM2708" (misalnya sumber untuk driver SPI Linux di bcm2708.c , atau dalam komentar untuk pertanyaan saya yang lain ).

Mana yang benar, atau keduanya - mengapa? Khususnya, jika ada ketidakkonsistenan dalam lembar data untuk keduanya, yang akan dipahami sebagai "lebih penting"?

alias
sumber

Jawaban:

13

Sebenarnya perbedaan ini disebabkan oleh penunjukan silikon dan paket chip. Awalnya ada silikon mati yang dikenal sebagai BCM2708, semua pengembangan awal dilakukan sekitar ini.

Dalam paket 9x9 ditumpuk dengan DRAM 256MB itu kemudian dikenal sebagai BCM2763. (Stacked adalah ketika Anda benar-benar mengikat silikon DRAM di atas prosesor dan meletakkan kabel ikatan ke atas media)

Tetapi ketika memori POP'd (paket pada paket, paket DRAM terpasang ke bagian atas paket prosesor) maka itu dikenal sebagai BCM2835, ini adalah perangkat yang kemudian memiliki ARM diaktifkan.

Versi selanjutnya dari chip mengikuti skema yang sama, sekarang ada tiga potong silikon, BCM2708, BCM2709 dan BCM2710 dan tiga paket BCM2835, BCM2836 dan BCM2837.

GSH
sumber
20

Lebih jauh ke jawaban Steve, ada diskusi di sini pada log masalah git hub untuk driver linux membahas bagaimana driver harus diberi label. Pos terkait adalah:

popcornmix:

Secara teknis 2708 adalah keluarga, dan 2835 adalah implementasi spesifik. Kita sekarang tahu bahwa 2835 adalah satu-satunya implementasi dalam keluarga yang dapat menjalankan linux, (dan tidak akan ada model baru dari keluarga ini), jadi mungkin tidak masalah model mana yang digunakan, meskipun harus konsisten.

lp0:

Jadi akan masuk akal untuk memberi nama semua driver 2708 tetapi file pohon perangkat khusus 2835? (dengan asumsi bahwa jika ada model lain dari keluarga itu yang dapat menjalankan linux akan memerlukan daftar perangkat yang berbeda)

Jon Egerton
sumber
Komentar lain menunjukkan bahwa mungkin "BCM2708 adalah komponen CPU yang merupakan bagian dari BCM2835". Beberapa tautan ke bukti langsung akan lebih baik ... (juga, saya memposting pertanyaan ini karena saya ingin sesuatu yang lebih dari apa yang sudah saya temukan di hasil Google pertama)
aliasvel
1
Saya mencoba mencari beberapa. Lembar data broadcom ditautkan di sini: raspberrypi.org/wp-content/uploads/2012/02/… . Namun tidak ada referensi nomor BCM2708. Sejauh yang saya bisa lihat, satu-satunya tempat kedua angka itu muncul bersamaan adalah pada posting yang menanyakan pertanyaan semacam ini.
Jon Egerton
14

Secara teknis 2708 adalah nama untuk keluarga chip, dan 2835 adalah chip spesifik dalam Pi. Adapun datasheet menggantikan yang lain, saya akan memilih BCM2835 (spesifik) daripada BCM2708 (keluarga).

Steve Robillard
sumber
1
Kutipan sulit diperlukan . Poster lain menunjukkan bahwa mungkin "BCM2708 adalah komponen CPU yang merupakan bagian dari BCM2835". Maaf, mengapa saya harus percaya padamu, bukan dia?
aliasvel
1
Sebagai "poster lain" - Saya ingin mengatakan bahwa ini adalah spekulasi berdasarkan sumber kernel. Saya tidak punya bukti kuat juga ... dan kami benar-benar harus memiliki semacam sumber jawaban kanonik (lebih disukai Broadcomm).
Maria Zverina
1
@MariaZverina Dalam kasus khusus ini, sumber kanonik semacam itu mungkin tidak tersedia dari siapa pun - karena bahkan mendapatkan perincian lengkap tentang chip tersebut memerlukan NDA. Sebagai hasilnya, pendekatan yang lebih pragmatis mungkin diperlukan. Izinkan saya mengajukan pertanyaan sebagai cara mendapatkan konteks untuk pertanyaan itu. Apa yang Anda coba lakukan yang tidak dapat Anda lakukan karena pertanyaan penamaan ini?
Steve Robillard
@MariaZverina dan aliasvel Saya baru saja menemukan video ini di YouTube youtube.com/watch?v=5jEVBK7P1GA dari Geert van Leuw berbicara tentang chip di Pi dan dia menyebutnya sebagai 2835. Sebagai sumber informasi tentang perangkat keras Pi Saya pikir Anda akan setuju bahwa itu tidak menjadi jauh lebih baik.
Steve Robillard
4

Perlu disadari bahwa inti ARM bukan bagian utama dari SoC, tetapi inti tambahan yang menempel di samping, di belakang sistem MMU. Prosesor (boot) utama adalah VideoCore, yang melakukan inisialisasi awal, mengatur MMU sistem dan menjalankan inti ARM.

Kemungkinan besar bcm2708 merujuk pada bagian utama SoC yang berisi prosesor dan peripheral VideoCore (lihat tabel wikipedia tentang VideoCore SoCs , perhatikan bagaimana tidak ada bagian bcm27xx yang memiliki inti ARM).

Berdasarkan rilis kode sumber driver broadcom, saya benar-benar mendapatkan kesan bahwa semua SoC VC4 didasarkan pada bcm2708, sedangkan VC3 adalah bcm2707. Setidaknya ada tiga revisi bcm2708 (a0, b0, c0), dan a0 cukup berbeda untuk memiliki #ifdefs di semua tempat dan beberapa header sendiri. Ada juga pengecualian untuk "pulau besar VC4" yang tajuk utamanya tidak termasuk, tetapi saya tidak dapat menemukan banyak tentang hal itu, meskipun komentar ini menarik.

Jadi masuk akal bagi pengemudi untuk merujuk ke 2708 (terutama jika mereka dikembangkan oleh broadcom).

Saya tidak yakin apa yang harus dilakukan dari rpi2 yang melaporkan bcm2709 ... ada banyak pernyataan bahwa bcm2835 dan bcm2836 SoCs hanya berbeda dalam subsistem ARM dan alamat basis periferal (yaitu konfigurasi MMU sistem yang sedikit berbeda), jadi sepertinya sangat kemungkinan itu sebenarnya juga berbasis bcm2708, tetapi info yang tersedia agak terbatas. Saya ingin tahu apakah seseorang baru saja menabrak nomor untuk berurusan dengan kode yang mengasumsikan bcm2708 menyiratkan inti ARM11 (padahal sebenarnya tidak menyiratkan inti ARM sama sekali).

Sunting: Dok bcm2836 quad-A7 yang baru dirilis menegaskan juga berdasarkan pada bcm2708.

Matthijs
sumber
Saya percaya BCM2709 adalah ARMv8. ARMv8 adalah AArch64 (ARM-64), dan itu berarti perangkat keras memiliki ekstensi seperti crc32, pmull, aes, sha1 dan sha2 .
jww
Ehm, sudahkah Anda membaca jawaban saya sama sekali? BCM2708 hanya mengacu pada bagian utama dari SoC (VideoCore 4 + peripheral), tanpa ARM. Lihat misalnya rilis tajuk broadcom untuk mendapatkan gagasan tentang apa yang tercakup. BCM2835 / 6/7 (dan banyak bagian lainnya) kemudian dibangun dengan menempelkan subsistem arm11 / quad-a7 / quad-a53 ARM (masing-masing) ke sisinya. Namun ini tidak ada hubungannya dengan sisa SoC.
Matthijs
0

Pencarian saya untuk pertanyaan ini diminta oleh halaman ini

Catat respons dari perintah cat / proc / cpuinfo

...

Perangkat keras: BCM2708

Revisi: 1000002

slomobile
sumber
Hm, menarik! Meskipun, sehubungan dengan jawaban lain, saya percaya itu masih tidak cukup menyelesaikan situasi - itu masih bisa nama keluarga, atau nama implementasi spesifik, atau sesuatu yang lain ...
alias