Apa itu von Neumann bottleneck?

Von Neumann bottleneck adalah keterbatasan pada throughput yang disebabkan oleh arsitektur standar komputer personal. Istilah ini dinamai dari John von Neumann, yang mengembangkan teori di balik arsitektur komputer modern. Pada komputer generasi awal, program dan data diberikan secara langsung ke mesin saat sedang dijalankan.

Pada tahun 1945, von Neumann mengusulkan desain komputer berbasis konsep stored program computer, di mana instruksi program dan data disimpan di dalam memori. Desain ini dikenal sebagai von Neumann architecture — atau kadang disebut juga Princeton architecture — dan kemudian menjadi standar untuk banyak komputer yang dibangun setelahnya, bahkan masih digunakan secara luas hingga saat ini.

Dalam von Neumann architecture, komponen utama komputer meliputi central processing unit (CPU), unit memori, serta perangkat input dan output. CPU terdiri dari control unit, arithmetic logic unit, dan register. Prosesor dan memori adalah komponen terpisah, dengan data berpindah di antara keduanya melalui system bus. Unit memori, yang sering disebut main memory atau primary memory, menyimpan baik instruksi program maupun data.

von Neumann architecture
Diagram yang menggambarkan arsitektur komputer von Neumann.

System bus digunakan untuk mentransfer semua data antar komponen yang membentuk von Neumann architecture, yang lama-kelamaan menjadi bottleneck seiring workload semakin kompleks dan ukuran dataset semakin besar. Selama bertahun-tahun, komponen komputer terus berevolusi untuk menyesuaikan kebutuhan workload tersebut. Misalnya, kecepatan prosesor meningkat drastis, dan teknologi memori kini mendukung kepadatan data yang lebih tinggi sehingga memungkinkan penyimpanan lebih banyak data di ruang yang lebih kecil.

Namun, berbeda dengan peningkatan tersebut, kecepatan transfer antara CPU dan memori hanya meningkat secara terbatas. Akibatnya, prosesor lebih sering idle, menunggu data diambil dari memori. Secepat apa pun prosesor bekerja, kinerjanya tetap dibatasi oleh kecepatan transfer yang dimungkinkan oleh system bus. Bahkan, prosesor yang lebih cepat biasanya justru menghabiskan lebih banyak waktu dalam keadaan idle.

Mengatasi von Neumann bottleneck

Von Neumann bottleneck sering dianggap sebagai masalah yang hanya bisa diatasi melalui perubahan signifikan pada arsitektur komputer atau prosesor. Meski begitu, sudah ada banyak upaya untuk mengurangi keterbatasan dari struktur yang ada, di antaranya:

  • Caching. Cara umum untuk mengatasi bottleneck adalah dengan menambahkan cache pada CPU. Dalam konfigurasi cache tipikal, level cache L1, L2, dan L3 ditempatkan di antara core prosesor dan main memory untuk mempercepat operasi. L1 cache adalah yang paling kecil, paling cepat, dan paling mahal. L3 cache, yang digunakan bersama oleh banyak core prosesor, adalah yang paling besar, paling lambat, dan paling murah. L2 cache berada di antara keduanya.
cache memory
Diagram yang menunjukkan bagaimana cache memory bekerja sebagai blok memori terpisah dari main memory yang diakses lebih dulu. Caching adalah metode umum untuk mengatasi von Neumann bottleneck.
  • Prefetching. Instruksi dan data yang diperkirakan akan segera digunakan diambil terlebih dahulu ke dalam cache sehingga langsung tersedia saat dibutuhkan.
  • Speculative execution. Prosesor mengeksekusi instruksi tertentu sebelum benar-benar diminta, sehingga hasilnya sudah siap ketika dibutuhkan. Speculative execution menggunakan branch prediction untuk memperkirakan instruksi mana yang kemungkinan besar akan diperlukan lebih dulu.
  • Multithreading. Prosesor menangani banyak request secara bersamaan dengan cara bergantian mengeksekusi thread. Proses multithreading ini berlangsung begitu cepat sehingga thread terlihat berjalan secara paralel.
  • Jenis RAM baru. Perkembangan terbaru dalam teknologi RAM menjanjikan solusi untuk sebagian masalah bottleneck dengan mempercepat aliran data ke system bus. Beberapa jenis RAM baru yang sedang dikembangkan antara lain resistive RAM, magnetic RAM, ferroelectric RAM, dan spin-transfer torque RAM.
  • Near-data processing. Dalam NDP, memori dan storage dilengkapi kemampuan pemrosesan tambahan yang dapat meningkatkan performa sekaligus mengurangi ketergantungan pada system bus. Salah satu bentuk NDP adalah processing in memory, yaitu integrasi prosesor dan memori dalam satu chip mikro.
  • Hardware acceleration. Pemrosesan dialihkan ke perangkat keras lain untuk mengurangi beban CPU dan ketergantungan pada system bus. Contoh umum hardware acceleration adalah GPU, ASIC, dan FPGA.
  • System-on-a-chip. Sebuah chip tunggal yang berisi prosesor, memori, dan resource sistem lain, sehingga banyak transfer data pada system bus dapat dihilangkan. Perangkat mobile dan sistem embedded banyak menggunakan teknologi SoC. Kini teknologi ini juga masuk ke industri komputer, dengan Apple silicon sebagai salah satu pionirnya.

Lihat juga: instruction, input/output (I/O), read-only memory (ROM), neuromorphic chip, singularity (the), neuromorphic computing.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *