Wednesday, August 29, 2007

Apa itu cache?


Apa itu cache?

Anda tahu apa itu cache? Pernahkah anda terfikir, apabila anda lihat pada kotak bungkusan prosessor anda, ada dinyatakan di situ tentang L2 Cache. Biasanya, nilai-nilai cache yang boleh anda lihat adalah 128kb, 256kb, 512kb, 1 MB dan 2 MB. Adakah anda terfikir, apa sebenarnya cache ini? Mengapa penting sangat benda ini dan apa kaitannya kepada prosessor?
.
Cache berperanan penting semasa prosessor menjalankan memory read. Apa pula memory read ini? OK. Setiap aplikasi yang anda buka (launch/open) di dalam PC anda, melibatkan penggunaan ingatan (memory). Setiap kali program dilancarkan, maka memory akan digunakan (memory read). Itulah sebabnya, apabila anda melancarkan terlalu banyak program, PC anda akan menjadi perlahan dan lembab. Hal ini kerana penggunaan memory pada tahap maksimum untuk program yang banyak. Selain memory utama ([main memory]:RAM), cache adalah sejenis lagi memory yang berperanan penting dalam pelancaran program. Cache bukanlah memory yang anda dapat lihat begitu sahaja bila anda membuka casing PC anda, tetapi cache adalah memory yang dibina di dalam prosessor.

Pembinaan cache adalah sebagai usaha untuk mengurangkan kos penghasilan memory utama, iaitu RAM. Pada zaman sekarang, kelajuan prosessor meningkat dengan sangat mendadak. Sehingga artikel ini ditulis, kelajuan prosessor telah mencapai 4 GHz. Untuk satu sistem computer yang pantas, kelajuan (clock speed) prosessor mestilah sama dengan kelajuan RAM. Walaupun begitu, kelajuan RAM tidak dapat bergerak seiring dengan kelajuan prosessor. Juga semasa artikel ini ditulis, kelajuan maksimum RAM di pasaran adalah 1066 MHz, bersamaan dengan 1.06 GHz. Lihat betapa jauhnya perbezaan antara kelajuan prosessor dengan kelajuan RAM. Walau bagaimanapun, kelajuan RAM yang tidak sama dengan kelajuan prosessor akan menyebabkan ketidakstabilan sistem. Kalau pun kelajuan RAM mampu mencapai selaju kelajuan prosessor, sudah tentu pula

harganya akan meningkat. Hal ini akan membebankan pengguna. Maka cache dihasilkan, sebagai memory utama yang dipasang di dalam prosessor, kerana hanya cache adalah memory yang dapat bergerak sepantas prosessor.

Oleh sebab cache telah dipasang di dalam prosessor, sudah tentulah ia berperanan penting untuk mengoptimumkan prosessor itu sendiri. Fungsi cache adalah meningkatkan proses MIPS executing dalam prosessor, dengan serta merta menjadikan prosessor lebih efisyen. Dengan ini, prosessor tidak perlu menunggu semasa data diambil dari RAM. Proses akan menjadi lebih pantas, dan menggunakan prosessor pada kadar 100%!

Em... walaupun begitu, tidak semuanya baik tentang cache. Ada juga yang tidak baiknya. Untuk membina cache sahaja di dalam prosessor, pembinaan ini telah menggunakan 60% ruang daripada seluruh prosessor. Seperti yang kita tahu, lebih banyak transistor dalam sesebuah prosessor, maka prosessor akan menjadi lebih pantas, tetapi disebabkan hanya tinggal 40% sahaja ruang, maka penambahan transistor adalah terhad.

Disebabkan hal ini juga, seperti yang dikatakan tadi, penggunaan cache yang lebih besar akan meningkatkan kos prosessor. Di samping itu, cache latency (kependaman cache) akan meningkat secara terus dengan saiz cache. Lebih besar cache, lebih besar latency. Juga peningkatan saiz cache akan meningkatkan jumlah pipeline di dalam prosessor. Jumlah pipeline yang banyak bukanlah satu yang baik, kerana keadaan ini hanya akan melembabkan aliran data. Kos juga akan turut meningkat dengan jumlah pipeline yang tinggi. Berkaitan dengan kos juga, pembinaan cache juga akan menjadikan rekabentuk prosessor menjadi semakin kompleks! Semakin kompleks, semakin mahal!

Baiklah. Paling kurang, anda sudah sedikit sebanyak tahu tentang cache. Kami akan menerangkan tentang peranan cache serta kesan-kesannya pada prestasi prosessor. Untuk memudahkan pemahaman anda, kami mengambil prosessor paling popular daripada Intel, iaitu Pentium 4. Untuk model ini, kami mengambil dua jenis Pentium 4. Jenis pertama ialah core Northwood, yang dilengkapi dengan L1 cache bersaiz 8 kb serta L2 cache

bersaiz 512kb. Jenis yang kedua ialah core Prescott, dengan L1 cache bersaiz 16 kb dan L2 cahce bersaiz 1024 kb (1 MB). Bagi yang sentiasa mengikuti perkembangan teknologi prosessor, anda mungkin sudah tahu dengan masalah yang dihadapi oleh Intel dengan Pentium 4 core Prescott.

Prescott adalah core ketiga untuk Pentium 4, dilengkapi dengan saiz cache yang dua kali ganda lebih besar daripada Northwood untuk meningkatkan prestasinya. Prescott dibina dengan menggunakan teknologi fabrikasi 90 nm. Dengan teknologi yang sedemikian rupa, Prescott adalah core baru yang diberi harapan oleh Intel untuk beroperasi jauh lebih hebat daripada Northwood. Walau bagaimanapun, keputusan yang diperoleh adalah mengecewakan! Prescott bukan sahaja tidak dapat mencapai prestasi yang lebih baik daripada Northwood, malah lebih teruk! Prescott juga menghadapi masalah haba yang kritikal. Penurunan prestasi Prescott bergantung pada banyak faktor. Salah satu faktor yang terlibat adalah saiz cache Prescott, yang akan dibincangkan dan dibuat perbandingan selepas ini.

Sebab itulah, prestasi Prescott lebih teruk jika dibandingkan dengan Northwood, kerana lebih besar saiz cache, lebih besar latency. Hal ini adalah salah satu faktor yang memberikan implikasi kepada prestasi Prescott. Untuk membolehkan Prescott menyaingi Northwood kembali, clock speed Prescott mestilah dinaikkan sehingga 4.8 GHz hingga 5.0 GHz! Walau bagaimanapun, sehingga artikel ini ditulis, Intel masih gagal mencecah 4 GHz pada prosessor Pentium 4, tetapi dengan peningkatan teknologi yang lain, Prescott sudah menjadi sangat berkuasa, dan telah berjaya mengatasi prestasi Northwood.

No comments: