Bagaimana CPU menulis informasi ke ram?

10

Pertanyaan saya adalah, bagaimana CPU menulis data ke ram?

Dari apa yang saya mengerti, CPU modern menggunakan berbagai level cache untuk mempercepat akses ram. RAM mendapatkan perintah untuk informasi dan kemudian mengirimkan semburan data ke CPU yang menyimpan data yang diperlukan (dan banyak data tambahan yang dekat dengan alamat yang diinginkan CPU) ke cache level tertinggi, CPU kemudian secara progresif bertanya cache yang berbeda untuk mengirim potongan data yang lebih kecil dan lebih kecil ke tingkat cache sampai berada di cache level 1 yang kemudian dibaca langsung ke register CPU.

Bagaimana proses ini bekerja ketika CPU menulis ke memori? Apakah komputer mundur tingkat cache (dalam urutan terbalik dibandingkan dengan membaca)? Jika demikian, bagaimana dengan menyinkronkan informasi dalam cache yang berbeda dengan memori utama? Juga, bagaimana kecepatan operasi penulisan dibandingkan dengan operasi baca? Apa yang terjadi jika saya terus menulis ke RAM, seperti dalam kasus semacam ember?

Terima kasih sebelumnya,

-Salah

Sunting: Saya masih belum benar-benar mendapatkan jawaban yang sepenuhnya dapat saya terima. Saya ingin tahu terutama tentang bagian sinkronisasi penulisan RAM. Saya tahu bahwa kami menulis ke cache L1 langsung dari CPU dan bahwa data akan didorong ke bawah level cache saat kami menyinkronkan berbagai tingkat cache dan akhirnya RAM utama disinkronkan dengan cache tingkat tertinggi. Namun, apa yang ingin saya ketahui adalah KAPAN cache melakukan sinkronisasi dan mensinkronkan dengan RAM utama dan seberapa cepat kecepatan mereka dalam kaitannya dengan membaca perintah.

Tamara Wijsman
sumber

Jawaban:

11

Ah, ini adalah salah satu pertanyaan sederhana yang memiliki jawaban yang sangat rumit. Jawaban sederhananya adalah, yah, itu tergantung pada bagaimana penulisan itu dilakukan dan caching seperti apa yang ada. Inilah primer yang bermanfaat tentang cara kerja cache .

CPU dapat menulis data dengan berbagai cara. Tanpa caching, data disimpan dalam memori secara langsung dan CPU menunggu proses penulisan selesai. Dengan caching, CPU biasanya menyimpan data dalam urutan program, yaitu jika program menulis ke alamat A lalu alamat B maka memori A akan ditulis sebelum memori B, terlepas dari caching. Caching hanya memengaruhi ketika memori fisik diperbarui, dan ini tergantung pada jenis caching yang digunakan (lihat tautan di atas). Beberapa CPU juga dapat menyimpan data non-temporal, yaitu, penulisan dapat dipesan ulang untuk memanfaatkan bandwidth memori secara maksimal. Jadi, menulis ke A, lalu B, lalu (A + 1) dapat disusun ulang menjadi A lalu A + 1 dalam satu ledakan, lalu B.

Komplikasi lain adalah ketika lebih dari satu CPU hadir. Bergantung pada cara sistem dirancang, menulis oleh satu CPU tidak akan terlihat oleh CPU lain karena data masih dalam cache CPU pertama (cache kotor). Dalam beberapa sistem CPU, membuat setiap cache CPU sesuai dengan apa yang ada dalam memori fisik disebut konsistensi cache. Ada berbagai cara untuk mencapai hal ini.

Tentu saja, di atas diarahkan untuk prosesor Pentium. Prosesor lain dapat melakukan hal-hal dengan cara lain. Ambil contoh, prosesor Sel PS3. Arsitektur dasar CPU Sel adalah satu inti PowerPC dengan beberapa inti Sel (pada PS3 ada delapan sel yang salah satunya selalu dinonaktifkan untuk meningkatkan hasil). Setiap sel memiliki memori lokal sendiri, semacam cache L1 yang tidak pernah ditulis ke RAM sistem. Data dapat ditransfer antara RAM lokal dan RAM sistem ini menggunakan transfer DMA (Direct Memory Access). Sel dapat mengakses RAM sistem dan RAM sel lain menggunakan apa yang tampak normal dibaca dan ditulis tetapi ini hanya memicu transfer DMA (jadi lambat dan benar-benar harus dihindari). Gagasan di balik sistem ini adalah bahwa gim ini bukan hanya satu program,

Singkatnya, menulis ke RAM dulu sangat sederhana di hari-hari ketika kecepatan CPU cocok dengan kecepatan RAM, tetapi ketika kecepatan CPU meningkat dan cache diperkenalkan, proses menjadi lebih kompleks dengan banyak metode yang berbeda.

Mendesis

Mendesis
sumber
2

ya itu mundur tingkat cache dan menyimpan ke memori tetapi catatan penting adalah dalam sistem Multi Processing cache dibagi antara 2 atau lebih prosesor (inti) dan data harus konsisten ini dilakukan dengan membuat cache bersama untuk semua multiprosesor atau cache berbeda tetapi simpan konsistensi dengan menggunakan bagian Kritis (jika data dalam satu cache mengubahnya memaksa untuk menulis di memori dan memperbarui cache lainnya)

Am1rr3zA
sumber