Hampir semua kemajuan dalam kecepatan komputer berasal dari salah satu bidang ini:
Transistor yang lebih kecil
Dua hal hasil dari membuat transistor lebih kecil:
- Mereka secara fisik lebih dekat bersama-sama, sehingga waktu yang dibutuhkan untuk sinyal listrik untuk melakukan perjalanan dari sumber ke tujuan lebih kecil. Jadi meskipun sinyal listrik tidak bergerak lebih cepat dari 50 tahun yang lalu, mereka sering melakukan perjalanan jarak pendek sekarang .
- Lebih banyak transistor dapat dimasukkan dalam sebuah chip, yang berarti lebih banyak "pekerjaan" dapat dilakukan pada saat yang sama. Semakin banyak transistor ditambahkan, semakin sulit untuk menemukan pekerjaan yang berguna untuk mereka lakukan, tetapi banyak trik pintar yang digunakan (lihat di bawah).
Lebih banyak "pekerjaan yang bermanfaat" per instruksi
Misalnya, beberapa prosesor tidak memiliki instruksi untuk melipatgandakan atau membagi bilangan bulat; alih-alih tugas ini harus dilakukan dengan rutinitas perangkat lunak yang lambat. Menambahkan multiply dan membagi instruksi mempercepat segalanya. Menambahkan instruksi floating-point dapat mempercepat perangkat lunak yang membutuhkan angka floating-point.
Cara penting untuk melakukan lebih banyak "pekerjaan bermanfaat" per instruksi adalah meningkatkan ukuran kata . CPU yang dapat melakukan operasi pada angka 32-bit sering membutuhkan instruksi yang jauh lebih sedikit untuk melakukan tugas yang sama seperti CPU 16-bit atau 8-bit.
Beberapa prosesor mendukung instruksi yang melakukan beberapa hal sekaligus, khususnya instruksi yang melakukan operasi yang sama pada beberapa item data ( SIMD ).
Lebih banyak instruksi per siklus
"Clock cycle" adalah bagaimana prosesor beralih dari kondisi saat ini ke status berikutnya. Dalam arti tertentu itu adalah unit kerja terkecil yang dapat dilakukan prosesor pada satu waktu. Namun, jumlah siklus jam yang diambil instruksi tertentu tergantung pada desain prosesor.
Dengan munculnya prosesor pipelined , menjadi mungkin untuk instruksi terpisah untuk "tumpang tindih", yaitu seseorang akan mulai sebelum yang sebelumnya selesai. Namun, instruksi tertentu dapat membatalkan instruksi berikutnya, yang tidak akan diketahui sampai instruksi berikutnya sebagian dieksekusi, sehingga hal-hal dapat menjadi rumit. (Prosesor pipelined menyertakan logika untuk memastikan semuanya berjalan dengan baik — tetapi karakteristik kinerja lebih kompleks.)
Prosesor Superscalar membawa ini ke tingkat berikutnya, secara harfiah memungkinkan dua instruksi untuk dieksekusi pada saat yang sama, dan eksekusi out-of-order membawanya selangkah lebih maju, memungkinkan instruksi dieksekusi keluar dari urutan. Fitur-fitur ini memerlukan analisis aliran instruksi, mengetahui instruksi mana yang tidak saling bertentangan.
Meskipun ada trik lain (mis. Prediksi cabang , eksekusi spekulatif ), yang lebih penting adalah gambaran keseluruhan:
- setiap instruksi membutuhkan sejumlah siklus clock untuk diselesaikan (tidak harus konstan)
- tetapi banyak instruksi dapat dilakukan sekaligus
- jadi ada " instruksi per siklus " yang terukur yaitu> 1 untuk prosesor kelas atas
- tetapi sangat tergantung pada beban kerja
Lebih banyak siklus per detik
Dengan kata lain, kecepatan clock lebih tinggi . Meningkatkan kecepatan clock tidak hanya meningkatkan panas yang dihasilkan, tetapi juga membutuhkan desain chip yang jauh lebih disiplin, karena ada batas waktu yang lebih kecil untuk menstabilkan sirkuit. Kami mendapat banyak jarak tempuh dari yang ini sampai tahun 2000 ketika kami mencapai beberapa batasan praktis.
Data di tempat yang tepat pada waktu yang tepat
Meskipun komponen-komponen dalam CPU telah semakin dekat karena penyusutan transistor, CPU dan RAM masih terpisah 5-10cm. Jika suatu instruksi membutuhkan sesuatu dari RAM, instruksi itu tidak akan membutuhkan 5 atau 6 siklus untuk menyelesaikannya, itu akan memakan waktu sekitar 200. Ini adalah masalah bottleneck von Neumann .
Senjata utama kami untuk melawan ini adalah cache . Data yang diakses baru-baru ini lebih mungkin diakses lagi, sehingga disimpan dalam memori khusus (disebut cache) yang ada dalam chip CPU, membuatnya jauh lebih cepat untuk diakses.
Namun, teknik lain (seperti pipelining dan prediksi cabang ) membantu dengan memungkinkan prosesor melakukan pekerjaan yang bermanfaat sambil menunggu data tiba, dan juga memprediksi data mana yang mungkin segera dibutuhkan.
Banyak dan / atau prosesor khusus
Jauh lebih mudah untuk menulis perangkat lunak untuk prosesor tunggal daripada untuk beberapa prosesor. Namun, terkadang manfaat kinerja / biaya / konsumsi daya membuatnya berharga.
Juga, prosesor tertentu sangat cocok untuk tugas-tugas tertentu. Misalnya, GPU dirancang khusus untuk perhitungan yang diperlukan untuk rendering grafik dan efek 2D dan 3D.
Prosesor multi-inti pada dasarnya adalah beberapa prosesor dalam satu chip.