Dari dulu udah keliatan ya, clockspeed CPU selalu di range 3,5 GHz, entah nambah atau ngurang 1,5 -2 GHz. Tapi kenapa ya kira-kira? padahal teknologi sekarang udah lebih canggih, DIE Fabs aja udah bukan main teknologinya, kenapa ampe sekarang belum ada CPU yang dari pabriknya 10 GHz?.
Clockspeed
Pertama, kita bahas dulu, clock speed itu apa sih? Singkatnya, CPU itu kerja dasarnya menjalankan instruksi, kita kasih dia instruksi, dia akan nangkep instruksi itu (Fetch) dia pahamin itu instruksinya (Decode) kemudian di eksekusi sesuai arahan (Execute) dan baca/tulis kembali datanya (Write back). Biasanya data di olah per siklus, dalam satu detik bisa terjadi ribuan, jutaan bahkan milyaran siklus. Jadi clockspeed itu satuan yang kita pake untuk ngitung seberapa banyak siklus yang bisa di lakuin dalam satu detik. Sudah jelas, clockspeed di hitung menggunakan satuan Hertz, dan biasanya di jaman ini, kita lebih sering nemu di GigaHertz untuk processor di karenakan semakin cepatnya prosessor sekarang ini.
Jadi semakin cepat semakin baik bukan? Harusnya seperti itu, tetapi, perlu di perhatikan efek sampingnya. Kenyataannya, artikel tahun 2000-an (artikel ini) udah membahas ada kemungkinan prosessor 10 GHz bakalan rilis di tahun 2005. Tapi kenyataannya, 10 GHz sampe hari ini belum bisa dicapai tanpa overclocking dengan liquid nitrogen, yang membawa kita kepada jawaban pertanyaan awal, kenapa clockspeed CPU “stuck” di situ-situ aja?.
Semakin tinggi clockspeed, akan membuat konsumsi daya serta mengeluarkan panas yang berlebih, itulah kenapa overclocker banyak yang menggunakan liquid nitrogen alias LN2 untuk mencapai clockspeed yang bukan main jauh dari base clockspeednya. Bayangkan kalau di rilis untuk konsumen, pendingin macam apa yang bisa di pakai untuk penggunaan sehari-hari?
Core dan Thread
Kalo gitu, gimana cara kita bisa mengembangkan komputer yang lebih kuat, lebih cepat, selain dari clockspeed? komputer modern sekarang ini, sudah tidak lagi mengandalkan clockspeed saja untuk membuat efisiensi dan performa lebih tinggi, ada banyak banget pengembangan yang terjadi di dalam CPU hingga sampai ke tahap sekarang. Salah satunya multi core dan thread.
Daripada membuat komputer lebih cepet, kita bisa bikin mereka ngerjain beberapa instruksi secara pararel. Intel yang pertama ngelakuin ini dengan Hyper Threading atau Simultaneous multithreading (SMT) di Pentium 4 mereka.
Sedangkan AMD, mereka adalah yang pertama yang membuat “the real” dual core CPU di seri X2 mereka. Permasalahan dari menambah core ini adalah, semakin besar ukuran die yang mana makin membuat panas dan konsumsi daya meningkat.
Dan permasalahan membagi kerja secara pararel begini, gak efektif buat beban kerja yang single-threaded, jadi berapa game dan program mungkin gak akan terlalu benefit sama jumlah core dan thread ini.
Tahukah kamu? Tombol turbo
Sebelum era komputer dengan clockspeed seperti sekarang. Di era awal komputer dengan clockspeed di atas 4,77 MHz, banyak game yang tidak dapat di mainkan sebagaimana mestinya karena komputer memproses instruksi terlalu cepat. Ibaratkanlah kita bermain tetris, namun bloknya turun dengan sangat cepat hingga tidak dapat di mainkan.
Dari sanalah tombol turbo di sediakan untuk “menyesuaikan” clockspeed CPU agar sesuai dengan program yang di gunakan. Sebelum akhirnya “clock” (jam/pewaktu) sungguhan di tambahkan kedalam komputer.
IPC
Lalu kalo kita gak bisa memperbanyak jumlah core sama thread, apa yang harus kita kembangkan untuk meningkatkan performa komputing? Masih ada banyak dan salah satunya Instruction Per Cycle (IPC) alias instruksi per siklus.
Alih-alih CPU di buat kerja lebih cepet, gimana kalo kita bikin CPU kerja lebih banyak per siklusnya? Analoginya begini, anggaplah CPU itu sebuah tambang, core itu si penambang, clockspeed itu adalah seberapa cepat penambang bisa bolak balik dari tambang dan bawa hasil tambangnya, nah daripada bikin dia bolak balik tiap dapet bongkahan kecil, gimana kalo dia tambang lebih banyak lagi sebelum balik bawa hasil tambangnya?
Di situlah IPC jadi andalan, kita ambil contoh Apple M1, 3,2 GHz? Oh ayolah, bahkan i3 generasi 4 yang keluar tahun 2015 pun udah menyentuh 3,7 GHz… Tapi, kenyataannya udah jelas kan? Mana yang punya performa lebih tinggi? Nah, itulah dimana IPC di jadikan faktor lain untuk meningkatkan performa. Prosessor ini gak mengandalkan clockspeed, tapi mengandalkan lebih banyak instruksi sekali siklus.
Tetapi… ada permasalahan lagi di IPC, mari kita balik ke analogi penambang kita, anggaplah untuk menambang lebih cepat kita butuh alat yang lebih baik, nah kita beri dia alat terbaru, terkuat, dan tercanggih, sehingga bisa menambang, sebutlah emas, lebih cepat dari sebelumnya. Yang jadi masalah adalah, setiap mineral yang di tambang perlu alat khusus, okelah nambang emas cepat, tapi ketika ketemu intan, alat kita gabisa apa-apa. Itulah permasalahannya di dunia nyata saat di gunakan untuk sehari-hari, program gak cuma itu-itu aja, ada banyak jenis data yang perlu di proses dengan cara berbeda, ini juga penyebab kenapa bisa ada prosessor baru rilis, wah kenceng banget karena bisa render lebih cepat dari sebelumnya, skor Cinebenchnya 2x lipat! Eh tapi kok pas di pake buat game… sama aja performanya?
Manufaktur juga sering ngakalin ini, mereka bisa tuning prosessor mereka agar bisa menjadi lebih cepat di beberapa software benchmark yang paling umum kayak Cinebench atau Geekbench. Dan, iya.. skornya lebih tinggi, tapi pas di pake sehari-hari? Kurang lebih gak jauh beda, karena emang yang di tuning bukan buat semua, melainkan hanya bagian tertentu.
IPC umumnya tidak di sertakan dalam spesifikasi, sehingga kita tidak dapat mengetahui atau membandingkannya.
Arsitektur, Desain CCX & CCD, Cache, Branch Predictor
Selain dari core dan thread, kemudian IPC, prosessor juga banyak di kembangkan di berbagai faktor, seperti Cache salah satunya. Cache ini kalo mau di analogikan lagi dengan penambang kita, ibaratkan si penambang ini daripada bawa hasil mineralnya keluar, dia bisa drop hasil tambangnya di kereta pengangkut yang ada di deket dia, dan biarin keretanya yang nganter hasil tambangnya keluar.
Tahukah kamu? Kecepatan Cache
Cache di komputer biasanya di cantumkan pada spesifikasi produk. Dan umumnya ukuran cache sangatlah kecil seperti 64KB 3MB 32 MB.
Namun ukuran yang kecil ini karena banyak faktor. Salah satunya adalah harga yang cukup mahal, meskipun berukuran kecil, umumnya kecepatan cache sangatlah cepat, bisa mencapai 100x lipat dari RAM!
Software seperti AIDA64 mampu menghitung kecepatan memori ini dengan satuan bytes, dan rata-rata kecepatan cache terendah sekalipun berada di atas 1TBps!
Pernah liat launching prosessor baru? Biasanya mereka juga masukin perkembangan arsitektur mereka sebagai salah satu keunggulan, salah satunya yang baru-baru ini menjadi primadona cukup lama, seri Ryzen dari AMD.
Zen, mikroarsitektur dari AMD ini terus-terusan mengecilkan ukuran manufaktur semikonduktor mereka sampe 5 nanometer! (Zen 4) Emangnya apa keunggulan mikroarsitektur yang semakin kecil? Cukup banyak, beberapa diantaranya semakin cepet transistornya bekerja, selain cepet, karena makin pendek jaraknya, konsumsi dayanya juga semakin rendah, yang artinya semakin adem dan gak perlu pendingin yang lebih galak.
Selain itu, desain mikroarsitektur mereka juga berpengaruh, ibarat kita mendesain gedung, pastinya ada tempat keluar masuk barang, orang, jalur staff, jalur barang, dan lain-lain, untuk efisiensi, pastinya jalur tersebut di pisah bukan? Bagaimana jalan yang lebih cepat dan sesuai keluar-masuknya mereka? Nah desain ini yang juga turut mempengaruhi efisiensi, latensi dan lain-lain. Di AMD ada sebutan untuk Core Chiplet Die (CCD) dan Core Complex (CCX) di desain sedemikian rupa agar menjadi lebih efisien.
Contohnya dalam Zen 2 dan Zen 3, yang sebelumnya CCX terbagi dalam dua CCD, pada Zen 3 mereka berbagi L3 Cache, dan klaim mereka membuktikan bahwa Zen 3 mampu menghasilkan IPC 19% lebih tinggi dari Zen 2.
Ada lagi Branch Predictor, inti kerjaannya persis dengan namanya, dia bakalan memprediksi apa sih yang kira-kira bakalan di kerjain selanjutnya? Nah dari pada bikin core idle gak ngapa-ngapain setelah selesai tugasnya, dia bakalan di arahin untuk fetch beberapa instruksi yang kemungkinan bakalan di pake setelahnya, kemudian di eksekusi secara spekulatif, sehingga pas kita minta, tinggal di lanjutin aja, kerjaan dia jadi lebih cepat karena udah di selesai sebelum kita suruh dia sesuatu.
Kesimpulan
Jadi apa jawaban pertanyaan orang yang “Kenapa gak ada prosessor 10GHz?”, ya… karena cpu gak kerja sendiri, butuh banyak komponen lain yang turut mendukung kecepatan CPU itu sendiri. Seperti yang kita tau, perkembangan semua komponen komputer gak sama, CPU berkembang pesat, tetapi perkembangan memori gak mengikuti, belum lagi karena sekarang konsumsi daya tinggi, bakalan panas, butuh pendingin yang kuat, makanya casing komputer sekarang banyak banget mounting hole buat fan mengikuti permintaan dari panasnya komputer sekarang, dan akhirnya fan sekarang lebih di perhatkan lagi kualitasnya, bearingnya, desain bladenya, konsumsi dayanya, dkk. Efek ini di sebut juga Moore’s Law effect.
CPU kencang, tapi gak ada instruksi yang bisa di kerjain, lalu sisanya ngapain? Idle menunggu instruksi terbaca dari memori. Cache membantu itu, tapi gak bisa terus-terusan di push, karena pasti komponen lain akan ikut kena efek sampingnya, meeka berdua lari sendiri, sedangkan yang lain di tinggal di belakang yang malah bikin mereka kena batunya sendiri.
Masalah, masalah dan banyak kompleksitas lainnya yang akhirnya membawa kita ke sekarang ini, dari pada terus-terusan mengembangkan di satu faktor, kita kembangkan bagaimana cara agar perkembangan yang sudah ada jadi lebih efisien dengan mengembangkan faktor lainnya.
Benefit yang di hasilin dari terus-terusan menaikan kecepatan clockspeed gak terlalu menguntungkan di bandingkan efek samping yang timbul dan penggunaannya di dunia nyata.
Semoga bermanfaat.