Ini mungkin pertanyaan konyol, dan mungkin merupakan hasil dari kesalahpahaman. Saya sedang mempelajari CPU sekarang, dan khususnya memori. Saya baru saja membaca tentang seberapa cepat SRAM dibandingkan DRAM tetapi lebih mahal. SRAM sangat mahal: Saya berbelanja sebentar dan menemukan kartu SRAM bertenaga baterai dengan 16 MB untuk sekitar $ 400.
Baru-baru ini seorang teman menyebutkan bahwa dia telah menjalankan puppy linux di RAM, dan itu cepat. Saya perhatikan, meskipun, inti linux yang mungil itu bahkan bisa lebih kecil ... sekecil 8 MB! Ini membuat saya berpikir: bisakah kita menjalankan linux di SRAM? Apakah pertanyaan itu terbentuk dengan baik?
Googling pertanyaan ini terbukti tidak efektif, tetapi mengajukan lebih banyak pertanyaan. Bisakah seseorang menjalankan linux di L3 Cache? Intel Core i7 dapat memiliki L3 Cache yang cukup besar untuk memenuhi 8MB ... tetapi apakah saya membuat kesalahan kategoris? Apa perbedaan antara ini dan linux 'tertanam'?
Itu pertanyaannya: bisakah kita menjalankan linux di SRAM atau L3 Cache? Adakah yang lebih cepat? Seberapa cepat kita bisa linux !?
z.
sumber
Jawaban:
Linux, atau OS lainnya tidak tahu cara kerja RAM. Selama pengontrol memori dikonfigurasikan dengan benar (mis. Kecepatan refresh ditetapkan untuk non-SRAM) maka OS tidak peduli apakah itu berjalan pada memori dinamis polos (RAM polos), RAM mode halaman cepat (RAM RAM, dari C64-ish kali), mode data keluar Data (EDO), RAM sinkron (SDRAM), data SDRAM laju data ganda (DDR 1/2/3) apa pun.
Semua itu mendukung membaca dan menulis dari tempat-tempat acak. Semua akan bekerja.
Sekarang cache sedikit berbeda. Anda tidak harus menulis untuk itu agar kontennya berubah. Itu akan menghalangi. Namun, ini masih bisa digunakan. Saya tahu bahwa coreboot menggunakan cache sebagai semacam memori selama boot, sebelum pengontrol memori dikonfigurasi dengan benar. (Untuk perinciannya, lihat video dari perundingan coreboot selama FOSDEM 2011).
Jadi secara teori ya, Anda bisa menggunakannya.
TETAPI : Untuk tugas-tugas praktis, sistem dengan memori 'kecepatan sedang' 1 GB 'akan melakukan jauh lebih baik daripada dengan hanya beberapa MB memori super cepat. Yang berarti Anda memiliki tiga pilihan:
Kecuali dalam kasus yang sangat jarang, yang terakhir tidak masuk akal.
sumber
Ya, Anda bisa, dan ini sebenarnya sudah dilakukan, secara otomatis. Bagian RAM yang paling sering digunakan disalin dalam cache. Jika total penggunaan RAM Anda lebih kecil dari ukuran cache Anda (seperti yang Anda duga), mekanisme caching yang ada akan menyalin semua yang ada dalam RAM.
Satu-satunya waktu ketika cache kemudian akan disalin kembali ke RAM normal adalah ketika PC beralih ke mode tidur S3. Ini diperlukan karena cache dimatikan dalam mode S3.
sumber
Banyak CPU memungkinkan Cache untuk digunakan sebagai RAM. Sebagai contoh, sebagian besar CPU x86 yang lebih baru dapat mengonfigurasi wilayah tertentu sebagai writeback tanpa membaca isian melalui MTRR. Ini dapat digunakan untuk menunjuk wilayah ruang alamat sebagai - secara efektif - cache-as-ram.
Apakah ini akan bermanfaat adalah pertanyaan lain - itu akan mengunci kernel ke dalam RAM, tetapi pada saat yang sama akan mengurangi ukuran cache yang efektif. Mungkin juga ada efek samping (seperti harus menonaktifkan caching untuk seluruh sistem) yang akan membuat ini jauh lebih lambat.
sumber
"bisakah kita menjalankan linux di L3 Cache?"
Tidak , ini tidak mungkin karena memori cache tidak secara langsung / linear ditangani.
Karena cara memori cache dirancang, registri Penghitung Program CPU (IP) tidak dapat menunjuk ke lokasi di memori cache.
Cache CPU memiliki "associativity" sendiri dan asosiasi ini menentukan cara "normal" memori "dipetakan" ke memori cache. Fitur ini dari memori cache adalah salah satu alasan memori cache sangat cepat.
sumber
"bisakah kita menjalankan linux di L3 Cache?"
Tidak, Cache ada di sana untuk pekerjaan tertentu dengan menyimpan data program dan instruksi yang siap ketika prosesor akan membutuhkannya. Anda tetap akan menemukan sistem operasi dalam cache karena terus-menerus digunakan. Memuat semua OS ke dalam cache tidak efisien karena Anda tidak menggunakan setiap jalur kode di kernel sekaligus.
"bisakah kita menjalankan linux di SRAM?"
Tentu saja Anda dapat menggunakan SRAM yang didukung baterai sebagai partisi boot, Anda kemudian dapat menggunakan flag eksekusi yang tertanam di tempatnya. Itu mungkin menyebabkan waktu boot lebih cepat dan operasi sedikit lebih cepat. Namun faktor utama adalah bandwidth antara L3 Cache dan di mana kernel berada (drive boot atau RAM).
"Apakah ada yang lebih cepat? Seberapa cepat kita bisa linux !?"
Umumnya produsen perangkat keras dan pengembang sistem operasi bekerja untuk membuat pemrosesan secepat mungkin. Namun pertanyaan Anda sangat umum, apakah Anda ingin mempercepat waktu boot, mengoptimalkan akses sistem file, mempercepat perhitungan atau yang lainnya. Setelah Anda memiliki pertanyaan yang lebih spesifik, Anda tentu dapat mulai menemukan hambatan dan menghapusnya. Drive SRAM Anda tentu akan mempercepat proses booting Anda. Mendapatkan ke GUI dalam 3 detik akan sangat keren untuk dilihat.
sumber
Kembali pada zaman 486es dulu ada mesin di mana semua RAM adalah SRAM. Ini kembali ketika 8MB banyak, tetapi tampaknya cocok dengan kendala Anda. Saya yakin 8MB SRAM jauh lebih murah sekarang daripada saat itu.
Jadi, Anda bisa menjalankan Linux di SRAM jika mesin dibuat seperti itu. Itu bukan teori; sudah dilakukan.
Tapi, tidak di Cache. Cache dihubungkan secara berbeda, dan yang lebih penting dialamatkan secara berbeda. Anda tidak dapat mengatasinya sama. Potongan dipetakan secara berbeda, bukan sebagai potongan yang berkelanjutan. Dan isinya belum tentu apa yang Anda lihat pada disk - chip Intel yang lebih baru melakukan semacam "kompilasi" Tepat waktu (lebih dari CISC => RISC-micro-op re-encoding) di mana mikro-op adalah hal-hal yang berakhir di cache. Singkatnya, apa yang ada dalam cache bukan program Anda, tetapi tampilan yang diubah, sehingga Anda tidak dapat menggunakannya sebagai representasi memori dari program Anda lagi.
Pertanyaannya adalah mengapa. Selain "karena saya bisa" tidak ada banyak alasan untuk ini. Sistem Cache memberi Anda manfaat kecepatan paling banyak dengan biaya lebih sedikit. Dan ingat biaya bukan hanya dolar .... SRAM membutuhkan lebih banyak transistor, yang berarti lebih banyak listrik.
sumber