Sitemap

Advanced CPU Design: Architectural Considerations and Innovations

4 min readSep 25, 2023

Dividing

Jika kita mengembangkan program kecil untuk CPU kita yang memungkinkan pembagian dua angka dengan melakukan operasi pengurangan berulang kali. Contohnya, untuk membagi 16 dengan 4, kita melakukan pengurangan berulang seperti 16 dikurangi 4, 4, 4, hingga mencapai nol atau angka negatif sebagai penanda selesai.

Namun, pendekatan ini sangat tidak efisien dan memakan banyak siklus clock. Karena itu, kebanyakan prosesor komputer modern memiliki instruksi khusus untuk operasi pembagian yang dijalankan oleh Arithmetic Logic Unit (ALU) dalam hardware.

Meskipun menambahkan sirkuit tambahan ini membuat ALU lebih besar dan kompleks, hal ini meningkatkan performa secara signifikan.

Instruction Sets

Ekstensi pada set instruksi ini terus berkembang seiring waktu, Set instruksi cenderung terus bertambah besar. Prosesor modern memiliki ekstensi instruksi yang kompleks, yang memungkinkan untuk menjalankan berbagai jenis tugas.

Namun, semakin kompleksnya instruksi ini membuat set instruksi semakin besar. Masalah lain adalah masalah transfer data antara CPU dan RAM, di mana waktu yang dibutuhkan untuk mengakses RAM dapat menyebabkan keterlambatan dalam eksekusi instruksi.

Cache

Cache adalah sebagian kecil RAM yang terletak langsung di CPU untuk mempercepat akses data dengan menyimpan blok data secara efisien. Cache membantu dalam akses data yang sering digunakan, menghindari perjalanan ke RAM setiap saat, yang dapat menyebabkan peningkatan kecepatan.

Cache in CPU

Ketika data yang diminta di RAM sudah tersimpan di cache seperti ini, disebut sebagai “cache hit.” Jika data yang diminta tidak ada di cache sehingga harus pergi ke RAM, disebut sebagai “cache miss.”

Selain itu, cache juga dapat digunakan untuk menyimpan nilai perantaraan saat melakukan perhitungan lebih lanjut. Ini menghadirkan masalah sinkronisasi karena salinan data dalam cache bisa berbeda dengan data asli di RAM. Untuk mengatasi ini, cache memiliki bendera “kotor” yang menunjukkan perbedaan antara cache dan RAM. Sinkronisasi biasanya terjadi saat cache penuh dan blok memori baru diminta oleh prosesor, dimana data lama yang “kotor” ditulis kembali ke RAM sebelum memuat blok data yang baru.

Pipelining

Pipelining instruksi adalah metode untuk meningkatkan kinerja CPU dengan menjalankan beberapa tahapan eksekusi instruksi secara bersamaan. Ini mirip dengan mencuci sprei dengan dua mesin secara paralel untuk meningkatkan efisiensi.

Pipelined CPU

Dalam desain pipeline, instruksi dieksekusi setiap siklus clock, yang meningkatkan throughput CPU. Pipelining memerlukan manajemen ketergantungan data antar instruksi dan bisa rumit. Ini dapat menyebabkan masalah rumit, ketergantungan antar instruksi. Untuk mengatasi hal ini, prosesor berpipa harus melihat ke depan untuk mengidentifikasi ketergantungan data dan jika perlu menyimpan pipelinenya untuk menghindari masalah.

Prosesor modern bahkan dapat menerapkan eksekusi out-of-order untuk menjaga pipelinenya tetap bergerak, meskipun ini melibatkan sirkuit yang kompleks. Meskipun rumit, pipelining adalah teknik yang sangat efektif yang digunakan dalam hampir semua prosesor saat ini.

Conditional Jump Pipelines

Instruksi lompatan kondisional dapat menjadi tantangan dalam pipelining instruksi. Prosesor berpipa sederhana mengalami penundaan saat menunggu hasil lompatan, yang bisa signifikan. Prosesor kelas atas menggunakan “speculative execution” untuk menebak arah lompatan dan mengisi pipelinenya dengan instruksi berdasarkan tebakan. Jika tebakan benar, eksekusi berlanjut tanpa penundaan, tetapi jika salah, prosesor harus melakukan “pipeline flush.” Untuk mengurangi dampak flush, digunakan “branch prediction” dengan tingkat keakuratan tinggi.

Selanjutnya, ada konsep prosesor “superscalar” yang memungkinkan eksekusi beberapa instruksi dalam satu siklus clock selama fase eksekusi, meningkatkan efisiensi. Prosesor superscalar juga dapat memiliki sirkuit duplikat untuk instruksi populer seperti ALU, memungkinkan eksekusi paralel instruksi matematika. Dengan pipelining, speculative execution, dan superscalar processing, prosesor dapat mencapai eksekusi instruksi yang sangat efisien dan cepat.

Multi Core CPU’s

Salah satu cara untuk meningkatkan kinerja komputer adalah dengan menggunakan prosesor multi-core, yang memiliki beberapa unit pemrosesan independen dalam satu chip CPU. Ini memungkinkan kerja bersama untuk menjalankan perhitungan secara bersamaan dan berbagi sumber daya seperti cache.

Multi core CPU

Dalam beberapa situasi, komputer membutuhkan lebih banyak daya pemrosesan daripada yang bisa ditangani oleh beberapa CPU atau inti, sehingga superkomputer dengan jutaan inti CPU seperti Sunway TaihuLight diperlukan.

The Sunway Taihulight

Dengan demikian, komputer modern tidak hanya lebih cepat tetapi juga lebih canggih berkat berbagai teknik yang meningkatkan efisiensi pemrosesan dalam setiap siklus clock.

Simak tulisan lain, mengenai dasar-dasar komputer di link berikut :

  1. Understanding CPU in Computers: https://blog.its.ac.id/5026231121/2023/09/25/understanding-cpu-in-computers/
  2. Proses dan Program Instruksi CPU : https://blog.its.ac.id/5026231174/proses-dan-program-instruksi-cpu/
  3. Advanced CPU Design : https://blog.its.ac.id/5026231038/2023/09/24/advanced-cpu-designs/

--

--

Muhammad Razan
Muhammad Razan

Written by Muhammad Razan

A student by day, creative thinker, and moody writer by night. Sometimes do design, sometimes code, and sometimes write.

No responses yet