Mengenai Penulis

Adalah seorang penulis, pemaju sys. maklumat, konsultan dan programmer. Lulusan Dip. IT (eks), Universiti Malaya. Lebih 17 thn pengalaman dlm ICT. >>>

Get The Latest News

Sign up to receive latest news

Jumaat, Januari 29, 2010

Memahami mikro pemproses (CPU) dual, triple, ...

Mikro pemproses atau lebih dikenali sebagai CPU adalah enjin kepada sebuah komputer, sebagai mana enjin kereta yang menjadi penggerak kepada sebuah kereta. Pada hari ini membeli sebuah CPU atau pemilihan platform komputer PC tidak lagi semudah dahulu. Setiap pembuat cip mikro pemproses seperti AMD dan Intel, memasarkan beberapa model kelas CPU mereka dan setiap model pula ada beberapa model kelajuan. Ini memberi kesulitan kepada pembeli di mana adakah yang paling mahal, paling laju, pilihan terbaik dari sudut kepantasan, kecekapan dan ketahanan? dan yang paling murah, perlahan, lembab, tak bagus?

 
Contoh sebut harga bagi mikro pemproses di pasaran (contoh);

Salah satu sebab kenapa banyak sangat variati mikro prosesor adalah disebabkan fitur dua teras CPU dalam satu cip mikro pemproses (dikenali sebagai dual core CPU), atau tiga teras CPU dalam satu cip mikro pemproses (dikenali sebagai triple core CPU), atau empat teras CPU dalam satu cip mikro pemproses (dikenali sebagai quad core CPU) dan seterusnya. Selain itu saiz memori cache aras 3, L3 juga mewujudkan variati selain daripada seni bina dalaman mikro pemproses itu sendiri.

Adakah dual, tri, quad ... core menggandakan kelajuan komputer?
Adakah benar anggapan bahawa sesetengah pihak bahawa dual core, triple core, quad core, enam core dan sebagainya menggandakan kelajuan komputer pada kadar dua kali ganda, tiga kali ganda, empat kali ganda dan seterusnya. Iaitu jika CPU dual core berfrekuensi 3 GHz, maka kelajuannya adalah 2 x 3 GHz = 6 GHz dan CPU quad core berfrekuensi 2 GHz pula kelajuannya adalah pada 4 x 2 GHz = 8 GHz.

Sebenarnya tanggapan ini hanya memudahkan penjelasan bahawa prestasi CPU boleh meningkat dengan bilangan teras yang terdapat dalamnya. Namun peningkatan prestasi mikro pemproses berkadaran dengan bilangan teras CPU dalam cip adalah tidak tepat dan juga tidak benar.

Olahan daripada artikel daripada Wikipedia:
Sebuah prosesor berbilang teras (multi-core) adalah sebuah sistem pemprosesan yang terdiri daripada dua atau lebih teras yang independen. Ia boleh digambarkan sebagai litar bersepadu yang mengandungi dua atau lebih pemproses individu . Teras (core) biasanya diintegrasi ke dalam satu dai (die) litar bersepadu (dikenali sebagai cip multiprosesor atau CMP), atau mereka boleh diintegrasikan ke beberapa dai dalam sebuah pakej cip tunggal.


Multi-core digunakan secara meluas dalam banyak domain aplikasi domain termasuk: tujuan umum, terbenam (embedded), rangkaian, pemprosesan isyarat digital (DSP), dan grafik.

Jumlah prestasi yang diperolehi dengan menggunakan multi-core prosesor sangat bergantung pada algoritma perisian dan implementasi.


Memahami multi pemproses dalam bahasa mudah
Perhatikan graf-graf benchmark berikut:
(c) Anandtech
Dalam benchmark ini kita membandingkan performa dua processor model yang sama iaitu Athlon II. Oleh itu tiada perbezaan dari segi seni bina dalaman mikro pemproses ini selain daripada frekuensi dan bilangan teras. Athlon II X2 255 adalah processor dual core pada frekuensi 3.1 GHz, manakala Athlon II X4 620 adalah processor quad core pada frekuensi 2.6Ghz. Perhatikan dari graf, dalam benchmark ke 2 dan ke 4, memunjukkan Athlon II X2 255 adalah lebih pantas sedikit daripada Athlon II X4. Ini adalah disebabkan oleh Athlon II X2 beroperasi pada frekuensi lebih tinggi (3.1Ghz) daripada Athlon II X4 (2.6Ghz). Manakalah pada rajah 1 dan 3, Athlon II X4 adalah lebih pantas sedikit daripada Athlon II X2.

(c) Anandtech.

Perhatikan benchmark kedua di mana benchmark ini benchmark bagi thread. Apa itu thread (bebenang)? Thread dalam sains komputer adalah beberapa siri tugasan (dua atau lebih) yang dilaksanakan secara serentak atau dalam masa yang sama. Walaupun mikro pemproses tunggal, multithreading (berbilang bebenang) boleh dilakukan dengan pembahagian masa yang pantas. Secara mudah dalam bahasa manusia, bebenang adalah sesuatu kerja atau tugasan, dan multi bebenang adalah berbilang tugasan.

Dengan mengunakan gerai nasi lemak sebagai contoh, cuba fahami bagaimana bebenang berfungsi. Katakan Pak Ali dan Mak Minah berniaga nasik lemak. Pak Ali ini orangnya slow rock, setiap nasi lemak yang diminta pelanggan akan diproses satu per satu. Pak Ali akan menyiapkan bungkusan pertama, bila selesai bungkusan pertama, barulah bungkusan kedua pula disiapkan dan begitulah seterusnya. Begitu juga walaupun jenis tempahan yang sama diminta beberapa pelanggan, Pak Ali akan menyelesaikan tempahan pertama dahulu, kemudian barulah kedua, kemudian ketiga dan seterusnya. Cara Pak Ali berkerja satu kerja dalam satu masa, dikatakan sebagai single thread (bebenang tunggal).

Mak Minah pula jenis heavy metal, kerja sangat pantas walaupun hanya seorang. Dalam satu masa dia boleh menyiapkan beberapa pesanan serentak. Pelanggan tidak perlu menunggu lama untuk membeli nasi lemak, walaupun beraneka lauk. Ketika menguruskan pelanggan yang memesan 10 nasi lemak berlauk, dia juga telah menjual beberapa nasi lemak biasa kepada beberapa pelanggan dalam masa agak sama. Mak Minah boleh dikatakan sebagai pemproses tunggal, tetapi ia berupaya mengendalikan multi bebenang tugasan (multi threaded). Mikro pemproses tunggal mengendalikan aplikasi multi threaded dengan pembahagian masa yang sangat pantas (nano saat).

Daripada rajah benchmark kedua, fitur multi thread hanya dapat dimanafaatkan oleh mikro pemproses multi CPU hanya jika aplikasi itu menyokongnya atau tahu bagaimana menggunakan kaedah multi thread (dioptimakan untuk multi thread). Oleh itu dalam benchmark aplikasi bebenang tunggal (Single Thread Benchmark), Athlon II X2 250 yang mempunyai frekuensi 3.1Ghz adalah lebih pantas. Dalam kes ini hanya satu teras CPU digunakan/bekerja, sudah tentu CPU 3.1GHz adalah lebih pantas daripada CPU 2.6GHz.

Bagaimana pula mikro pemproses berbilang teras CPU akan menjadi lebih pantas mengendalikan multi bebenang? Dalam cip CPU tunggal, pengendalian multi bebenang dikendalikan dengan pembahagian masa dan suiz konteks. CPU akan bertukar dari satu tugasan ke tugasan2 lain dengan pantas sehingga kita beranggapan CPU itu dapat melakukan beberapa tugasan serentak. (seperti cerita Mak Minah di atas). Manakala dalam cip multi teras CPU pula, tugasan2 atau bebenang2 sememangnya diagih-agihkan kepada CPU dan dilarikan pada masa yang sama (serentak).

Multi teras CPU boleh dianggap sebagai berbilang pekerja, lebih ramai pekerja maka kerja akan menjadi lebih ringan dan pantas. Seperti pepatah Melayu, "Berat sama dipikul; ringan sama dijinjing" atau dalam lirik lagu Wonder Pets "kami tak besar... dan kami tak kuat... bila bekerjasama semua jadi mudah... "

Kembali kepada kes gerai Mak Minah, oleh kerana kepantasannya bekerja, pelanggan bertambah ramai, kerja juga bertambah, akhirnya Mak Minah kepenatan. Apabila Mak Minah mengupah beberapa pekerja bagi membantunya, maka beban tugas Mak Minah dapat dikurangkan dan Mak Minah mempunyai lebih banyak masa untuk berehat tanpa menjejaskan perniagaannya.

Bagaimana prestasi suatu perisian boleh dipengaruhi oleh multi thread dan multi CPU? Kita tinggalkan cerita Mak Minah dan Pak Ali, kita ke Restoran Warisan pula. Restoran Warisan adalah sebuah perniagaan keluarga yang baru dibuka. Selain daripada ahli keluarga, mereka juga menggaji seorang pekerja luar. Pekerja itu rajin, berdisplin, cekap dan berpangalaman. Oleh kerana semua yang lain adalah ahli keluarga, maka tokeh kedai keberatan untuk menyuruh atau memaksa ahli keluarganya bekerja. Oleh itu semua beban kerja diletakkan hanya pada bahu seorang pekerja. Kesudahan tindakan taukeh itu, memberi impak besar kepada prestasi restorannya, lembab, pemalas, tak maju, tak reti layan pelanggan dan sebagainya. Perisian dalam kes ini adalah minda atau mentaliti seseorang. Walaupun mempunyai ramai pekerja (CPU), tapi mentaliti kekeluargaan (tidak dioptimakan untuk multi thread dan tidak tahu mengendalikan berbilang CPU) maka restoran itu tidak maju dan berdaya saing, hanya mengekalkan warisan keluarga.

Dalam komputer, untuk memanafaatkan mikro pemproses multi teras CPU, pertama sekali kita hendaklah menggunakan sistem operasian yang dioptimakan untuk multi bebenang dan multi pemproses. Kita perlukan sekurang-kurangnya Windows 2000 Pro, atau Windows XP, Windows Vista, atau Windows 7. Windows 9x, Windows ME dan DOS tidak menyokong multi CPU. Kedua, aplikasi itu hendaklah dioptimakan dengan multithread (bebilang bebenang) supaya berbilang bebenang itu dapat dikendalikan oleh OS. Dalam rajah benchmark berikut pula menunjukkan jika suatu aplikasi itu diprogramkan sokongan multithread dengan baik maka prestasi aplikasi itu akan lebih pantas dengan multi teras CPU.




Meskipun sekarang masih banyak aplikasi yang tidak atau sokongan multi thread yang lemah, Windows atau sistem-sistem operasian moden dan juga perisian2 yang dibangunkan oleh pemaju2 utama pada hari ini diprogramkan dengan intensif multi bebenang. Oleh itu perisian2 di masa hadapan akan cenderung ke arah ini. Tambahan pula aplikasi semakin komplek, begitu juga masalah sekuriti seperti penyulitan (encryption), grafik tinggi dan lain-lain, maka mikro pemproses moden berbilang teras adalah satu kemestian atau keperluan bagi sistem komputer sekarang dan di masa hadapan.

Perbincangan kita seterusnya adalah mengenai faktor yang perlu dipertimbangkan dalam membeli CPU baru.

terus baca >>
Related Posts with Thumbnails