Langsung ke konten

Arsip

CPU

12 artikel
Teknologi 22 Sep 2026 6 min read

Penempatan First-Touch NUMA Mengaitkan Halaman Fisik dengan CPU Pemicu Fault

Pada mesin NUMA, reservasi ruang alamat virtual tidak selalu langsung menentukan node NUMA fisik yang akan menyediakan setiap halaman. Untuk memori anonim, alokasi fisik umumnya terjadi kemudian saat CPU pertama kali memicu page fault pada sebuah halaman. Di bawah kebijakan alokasi lokal default, fault tersebut dapat membuat urutan inisialisasi menjadi bagian dari keputusan penempatan memori. Perilaku ini sering disebut penempatan first-touch. Thread yang pertama kali menulis atau memicu fault pada sebuah halaman dapat membuat Linux mengalokasikan memori backing di dekat node NUMA tempat thread itu berjalan, dengan tetap tunduk pada memory policy aktif, batasan cpuset, ketersediaan memori, dan mekanisme fallback kernel.

Teknologi 19 Sep 2026 6 min read

TLB Shootdown Mengoordinasikan Perubahan Page Table Antar-CPU

Sebuah page-table entry dapat berubah di memori ketika CPU lain masih menyimpan translasi alamat lama di translation lookaside buffer (TLB). Karena itu, memperbarui page table saja tidak selalu membuat mapping baru langsung berlaku pada setiap prosesor yang pernah menjalankan address space tersebut. Sistem operasi menutup celah itu dengan invalidasi TLB. Ketika perubahan mapping dapat membuat translasi yang tersimpan menjadi tidak aman, prosesor yang mungkin masih menyimpan translasi tersebut harus menginvalidasinya sebelum kernel menganggap perubahan selesai secara global. Pada sistem multiprosesor, koordinasi invalidasi jarak jauh ini umum disebut TLB shootdown.

Teknologi 19 Sep 2026 6 min read

TLB Shootdown Memperluas Perubahan Page Table ke Banyak CPU

TLB Shootdown Memperluas Perubahan Page Table ke Banyak CPU Mengubah entry page table di memori tidak otomatis menghentikan setiap translasi yang berasal dari entry tersebut. CPU yang sebelumnya memakai mapping dapat menyimpannya di translation lookaside buffer, atau TLB. Pada sistem multiprosesor, CPU lain dapat memiliki salinan cache masing-masing, sehingga perubahan mapping dapat memerlukan koordinasi di luar CPU yang mengubah page table. Linux memperlihatkan pemisahan ini melalui interface TLB flush. Setelah state page table berubah, kode arsitektur harus membuat translasi yang terdampak tidak dapat digunakan pada setiap CPU yang relevan sebelum software bergantung pada mapping baru atau melepaskan memori yang masih dapat dijangkau mapping lama.

Teknologi 19 Sep 2026 6 min read

MSI-X Memungkinkan Queue Perangkat Menargetkan Jalur Interrupt CPU Terpisah

MSI-X Memungkinkan Queue Perangkat Menargetkan Jalur Interrupt CPU Terpisah Perangkat PCIe multiqueue dapat memindahkan data melalui banyak queue secara bersamaan, tetapi satu jalur interrupt akan mengumpulkan penanganan completion kembali ke satu sinyal. MSI-X menghilangkan pemusatan tersebut dari interface interrupt perangkat. Setiap entry MSI-X yang dialokasikan mewakili message-signaled interrupt yang dapat dikonfigurasi secara independen, sehingga driver dapat mengaitkan queue atau kelas event yang berbeda dengan Linux IRQ dan kebijakan CPU affinity yang berbeda.

Teknologi 19 Sep 2026 4 min read

Memori Perangkat Write-Combining Dapat Menggabungkan Store CPU Sebelum I/O

Memori Perangkat Write-Combining Dapat Menggabungkan Store CPU Sebelum I/O Serangkaian store CPU ke memori perangkat tidak selalu berubah menjadi rangkaian transaksi bus yang identik. Pada mapping write-combining, prosesor dapat menampung store yang berdekatan lalu mengirimkannya sebagai transfer yang lebih besar. Perilaku ini cocok untuk framebuffer dan region perangkat lain yang dirancang menerima penulisan blok, tetapi asumsi tentang ordering dan bentuk transaksi menjadi lebih terbatas. Linux menyediakan kelas mapping ini melalui antarmuka seperti ioremap_wc(). Semantiknya berbeda dari mapping ioremap() default yang digunakan untuk control register biasa.

Teknologi 19 Sep 2026 4 min read

False Sharing pada Cache Line Memindahkan Ownership Koherensi Antar-CPU

False Sharing pada Cache Line Memindahkan Ownership Koherensi Antar-CPU Dua thread dapat memperbarui variabel berbeda tanpa berbagi lock atau menyentuh byte yang sama, tetapi tetap saling mengganggu pada level hardware. Jika kedua variabel berada dalam cache line yang sama, sistem multiprosesor koheren memperlakukan penyimpanannya sebagai satu unit koherensi. Write berulang dari CPU berbeda karena itu dapat memindahkan ownership line tersebut antar-cache meskipun program menganggap variabelnya independen. Efek ini disebut false sharing. Dampaknya muncul dari kombinasi layout memori, pola akses, dan granularitas koherensi; kedekatan field dalam sebuah struktur saja belum membuktikan adanya masalah performa.

Teknologi 17 Sep 2026 5 min read

Write Combining Menggabungkan Store Berdekatan Sebelum Trafik Memori

Beberapa area memori jauh lebih sering ditulis daripada dibaca. Frame buffer, aperture perangkat, dan area output streaming adalah contoh umum. Mengirim setiap store CPU kecil sebagai transaksi memori terpisah dapat membuang bandwidth bus dan menambah overhead transaksi. Write combining memberi prosesor tempat sementara untuk mengumpulkan store yang kompatibel. Beberapa penulisan ke alamat yang berdekatan dapat digabung menjadi transaksi yang lebih besar sebelum meninggalkan CPU. Teknik ini menguntungkan throughput tulis berkelanjutan, tetapi juga mengubah asumsi waktu dan ordering yang aman bagi software.

Teknologi 17 Sep 2026 6 min read

NUMA Membuat Lokasi Memori Menjadi Bagian dari Biaya Akses

NUMA Membuat Lokasi Memori Menjadi Bagian dari Biaya Akses Server multiprosesor berukuran besar dapat menyediakan satu ruang alamat fisik, tetapi setiap prosesor belum tentu memiliki jalur yang sama menuju memori tersebut. Akses ke halaman memori yang terhubung dekat dengan prosesor tempat sebuah thread berjalan dapat menempuh jalur yang lebih pendek dibanding akses ke memori yang terhubung ke paket prosesor atau node NUMA lain. Susunan ini disebut non-uniform memory access atau NUMA. Pendekatan tersebut memungkinkan kapasitas dan bandwidth memori bertambah melalui beberapa soket prosesor atau kelompok chiplet tanpa memaksa seluruh permintaan memori melewati satu pengendali terpusat.

Teknologi 17 Sep 2026 6 min read

Memory Fence Membatasi Urutan Memori Antar-Core

Memory Fence Membatasi Urutan Memori Antar-Core Prosesor dapat menjalankan operasi memori dengan kebebasan yang lebih besar daripada yang tampak dari urutan kode sumber. Load dapat dimulai lebih awal, store dapat menunggu di buffer, lalu lintas koherensi cache dapat selesai pada waktu berbeda, dan operasi yang saling independen dapat berlangsung tumpang tindih. Teknik-teknik ini meningkatkan throughput, tetapi perangkat lunak konkuren membutuhkan aturan yang presisi untuk memublikasikan dan mengamati state bersama. Memory fence menempatkan batas pengurutan di sekitar operasi memori tertentu. Instruksi ini biasanya tidak mengosongkan seluruh cache, tidak menserialkan seluruh prosesor, dan tidak membuat semua core menjalankan satu alur instruksi. Perannya lebih sempit: membatasi hasil pengurutan memori apa saja yang boleh terjadi melintasi sebuah batas yang ditentukan.

Teknologi 16 Sep 2026 7 min read

TLB Menyimpan Cache Translasi Alamat Virtual Terbaru

Prosesor modern umumnya menjalankan program di ruang alamat virtual. Operasi load atau store dapat dimulai dengan alamat virtual, sementara sistem memori pada akhirnya membutuhkan lokasi fisik dan izin akses. Page table menyimpan informasi pemetaan tersebut, tetapi menelusuri hierarkinya untuk setiap akses memori akan menambah pekerjaan yang besar. Translation lookaside buffer, atau TLB, menyimpan translasi alamat yang baru digunakan di dekat prosesor. TLB hit menyediakan informasi pemetaan yang sudah di-cache tanpa full page-table walk. TLB miss memicu pekerjaan translasi tambahan meskipun data aplikasi yang diminta sudah berada di CPU cache.

Teknologi 16 Sep 2026 5 min read

CPU Store Buffer Memisahkan Retirement dari Cache Write

Prosesor tidak harus menunggu setiap store instruction menyelesaikan cache update sebelum instruction berikutnya dapat maju. Core modern umumnya menempatkan completed store ke store buffer, sehingga instruction dapat retire sementara memory subsystem menangani write sesudahnya. Pemisahan ini meningkatkan throughput karena cache ownership, coherence traffic, dan aktivitas memori lain dapat memakan waktu lebih lama daripada yang mampu ditunggu execution pipeline. Buffer bertindak sebagai queue antara architectural execution dan cache hierarchy. Kecepatan ini datang dengan correctness requirement yang ketat. Pending store tetap harus terlihat sesuai memory-ordering rule arsitektur, dan load yang lebih muda mungkin membutuhkan data yang belum mencapai cache.

Teknologi 16 Sep 2026 6 min read

Asosiativitas Cache CPU Membatasi Tempat Cache Line Dapat Berada

Cache prosesor menjaga memory yang baru digunakan tetap dekat dengan execution core, tetapi kapasitas cache saja tidak menentukan data mana yang dapat tetap resident. Sebagian besar cache CPU general-purpose membagi storage menjadi sejumlah set dan memberi setiap set jumlah slot tetap yang biasa disebut way. Satu blok memory dipetakan ke set tertentu. Blok itu dapat menempati way mana pun di dalam set tersebut, tetapi tidak dapat berpindah ke set lain hanya karena set lain memiliki slot kosong. Aturan penempatan ini membuat lookup hardware praktis dan cepat, sekaligus menciptakan sumber miss tersendiri ketika terlalu banyak blok aktif bersaing pada set yang sama.