Kamis, 04 Mei 2017

Processor Multicore


                                                                Processor Multicore

Processor Multi-core untuk Mengikuti Hukum Moore
Para insinyur mencoba melakukan pendekatan yang berbeda untuk meningkatkan performa dari komputer dengan memanfaatkan ekstra processor. Proses ini berkembang dan populer digunakan pada server pada periode awal 1990an. Di saat yang sama, para pengembang processor mendapatkan tantangan serius untuk menciptakan processor dengan performa yang sejalan dengan hukum Moore. Processor multi-core merupakan solusi masalah ini dimana sebuah chip tunggal dapat terdiri lebih dari satu unit microprocessor. Setiap processor dapat bekerja secara simultan untuk menangani instruksi secara paralel. Cara ini secara efektif melipatgandakan performa processor berbanding lurus dengan jumlah core yang terdapat di dalamnya.


Pada 2005, AMD merilis processor dual-core pertama dengan nama Athlon X2. Dalam beberapa minggu, Intel meluncurkan Intel Pentium D yang menerapkan konsep multi-core pada processor. Selain dua pemain utama ini, Sun Microsystems juga meluncurkan Niagara dan Niagara 2 yang dirancang menggunakan delapan inti processor. Komputer desktop modern saat ini mendukung sistem yang menggunakan multi-core. Baik Intel maupun AMD menawarkan microprocessor yang terdiri dari 4 dan 6 inti processor. Saat ini, AMD sedikit lebih maju dengan meluncurkan jenis microprocessor dengan delapan inti lewat seri FX-8xxx.
Sejak kemunculan era multi-core processor, AMD dan Intel bergantian menawarkan lini processor terdepan untuk menawarkan pengalaman komputasi terbaik. Dalam pangsa pasar processor, Intel mengungguli AMD dengan seri Sandy Bridge dan Ivy Bridge. Sementara pada pasar server, AMD dikenal mampu mencapai performa superior dengan harga yang lebih baik.

A.      Multicore Processor
Multicore menyediakan 4-arah multitask pengolahan dengan Intel HT Technology dan dua core fisik berdedikasi membantu untuk memberikan performa tambahan di berbagai jenis aplikasi dan beban kerja. Di bawah ini akan dijelaskan beberapa jenis core, single core sampai multicore

1.      Single Core
Single core atau tradisional CPU eksekusi instruksi string harus dengan memesan, jalankan, lalu simpan dalam cache secara selektif dan pencarian cepat. Ketika data yang diperlukan di luar cache, maka akan diambil melalui sistem bus dari random access memory (RAM) atau dari perangkat penyimpanan.

2.      Dual Core
Pada prosesor dual core ini akan terjadi pengabungan dua prosesor beserta cache, namun dalam satu kemasan chip atau integrated circuit (IC). Keuntungan dual core terutama pada cache coherency. Dengan dual core, komunikasi antara kedua die dapat dilakukan pada clock rate yang lebih tinggi dibandingkan jika memanfaatkan bus di luar chip.
Dalam sebuah prosesor dual core masing-masing inti menangani string data masuk secara bersamaan untuk meningkatkan efisiensi. Seperti halnya dua kepala lebih baik dari satu. Sekarang ketika salah satu mengeksekusi, yang lain dapat mengakses sistem bus atau mengeksekusi kode sendiri. Menambahkan skenario ini sangat menguntungkan, baik AMD dan Intel sebagaimana terlihat pada dual-core adalah 64-bit.
Untuk menggunakan prosesor dual core, sistem operasi harus dapat mengenali multi-threading dan perangkat lunak harus memiliki simultaneous multi-threading technology (SMT) yang ditulis dalam kodenya. SMT memungkinkan paralel multi-threading dimana core melayani instruksi multi-threaded secara paralel. Tanpa SMT software hanya akan mengenali satu inti. Adobe ® Photoshop ® merupakan contoh perangkat lunak yang menanggapi SMT dengan sangat baik. TPS juga digunakan dengan sistem multi-prosesor seperti umumnya diterapkan pada server.
a.       Prosesor ”dual core” AMD
Untuk prosesor berbasis deskstop pada model dual core ini, AMD pertama kali meluncurkan prosesor dengan nama Athlon 64 X2. Dengan masing-masing core diperkuat 64K L1 intruction cache dan 64 K L1 data cache.
Untuk komunikasi kedua core AMD X2 tersebut akan berkomunikasi secara langsung melalui system request queue dan crossbar yang akan menghubungkannya dengan onchip memory controller dan Hyper-Transport I/O. Dengan desain arsitektur seperti ini, lebih memungkinkan kedua prosesor pada masing-masing core dapat secara optimal memanfaatkan resource yang tersedia. Tanpa terhambat oleh batasan, seperti katakanlah sistem bus. Ini juga akan memperkecil latency karena semua yang disebut tadi masih terletak dalam satu chip.
b.      Prosesor “dual core” Intel


Prosesor dual core dari Intel untuk desktop diluncurkan dengan nama kode Smithfield yang memiliki kecepatan 3.2 GHz dengan masing-masing core dilengkapi dengan L2 cache sebesar 1 MB. Chip yang dinamai Pentium D tersebut memiliki kecepatan clock jauh lebih rendah dari CPU core tunggal 3.8 GHz, seperti seri 570 dan 670.
Untuk itu, pada Intel Pentium D juga dilakukan peningkatan branch prediction unit. Dengan memperbaiki kinerja branch prediction unit, akan membuat prosesor dapat bekerja secara optimal dan memperkecil kemungkinan kesalahan.

Fungsi hyper-threading tidak ditinggalkan begitu saja untuk prosesor Smithfield ini. Namun, ini hanya akan tersedia untuk prosesor desktop versi high end dari Intel dan tidak akan menemukannya pada setiap prosesor Smithfield, yakni Intel Pentium D 840 (3,2 GHz), Intel Pentium D 830 (3,0 GHz), dan 820 (2,8 GHz).

3.      Core 2 Dou
Secara garis besar kan Core 2 Duo itu secara fisik masih satu prosesor hanya saja, didalam prosesor tersebut terdapat 2 core(atau 2 otak), walau begitu proses kerja bukan berarti 2 kali lipat, tidak.. Tapi menggunakan sistem pembagian, misalnya kernel dan aplikasi background lainnya akan dikerjakan di core 1, tapi jika core 1 dirasa terlalu berat kerjanya maka sebagian pekerjaan akan dipindahkan atau dialokasikan ke core 2.

4.      Multi-Core
Multi-core menyediakan 4-arah multitask pengolahan dengan Intel HT Technology dan dua core fisik berdedikasi membantu untuk memberikan performa tambahan di berbagai jenis aplikasi dan beban kerja
Sebuah prosesor multi-core adalah sebuah sistem pengolahan yang terdiri dari dua atau lebih inti independen. Hal ini dapat digambarkan sebagai sebuah sirkuit terintegrasi ke dua atau lebih individu prosesor (disebut core dalam pengertian ini) telah terpasang. Inti biasanya terintegrasi ke dalam satu sirkuit terpadu (dikenal sebagai chip multiprosesor atau CMP), atau mereka mungkin diintegrasikan ke beberapa dalam satupaket chip. Prosesor dengan banyak-inti adalah salah satu di mana jumlah core yang cukup besar multi-prosesor tradisional teknik tidak lagi efisien – batas ini adalah suatu tempat dalam jangkauan puluhan core – dan mungkin memerlukan jaringan chip.
Sebuah prosesor dual-core berisi dua core, dan quad-core prosesor berisi empat core. Sebuah prosesor multi-core mengimplementasikan multiprocessing dalam satu paket fisik. Core dalam perangkat multi-core dapat digabungkan bersama-sama dengan erat. Sebagai contoh, core mungkin atau mungkin tidak berbagi cache, dan mereka dapat mengimplementasikan pesan lewat atau memori bersama antar-metode komunikasi inti. Umum topologi jaringan untuk menghubungkan core termasuk bus, cincin, 2-dimensi mesh, dan palang. Semua core adalah identik dalam homogen sistem multi-core dan mereka tidak identik dalam heterogen sistem multi-core. Seperti halnya dengan sistem prosesor tunggal, core dalam sistem multi-core dapat mengimplementasikan arsitektur seperti superscalar , VLIW , pengolahan vektor , SIMD, atau multithreading.
a.      Fungsi Multi Core-Processor
Untuk memproses data yang diterima dari masukkan (input), seterusnya akan menghasilkan keluaran (output). Semasa kerja memproses data tersebut, processor juga akan senantiasa berhubungan dengan komponen komputer yang lain, terutamanya hard disk dan RAM. Ia juga digambarkan sebagai “otak” kepada komputer dimana setiap data akan melalui processor bagi menghasilkan keluaran (output) yang sepautnya. Sesuai dengan fungsinya, ia juga dikenal sebagai CPU. Apabila processor tidak berfungsi, maka komponen – komponen komputer yang lain juga tidak dapat berfungsi.

b.      Pengaruh Multi Core-Processor Terhadap Software
Keuntungan software dari arsitektur multicore adalah kode-kode dapat dieksekusi secara paralel. Dalam sistem operasi, kode-kode tersebut dieksekusi dalam thread-thread atau proses-proses yang terpisah. Setiap aplikasi pada sistem berjalan pada prosesnya sendiri sehingga aplikasi paralel akan mendapatkan keuntungan dari arsitektur multicore.
Banyak aplikasi software tidak dituliskan dengan menggunakan thread-thread yang concurrent karena kesulitan dalam pembuatannya. Concurrency memegang peranan utama dalam aplikasi paralel yang sebenarnya.
Langkah-langkah dalam mendesain aplikasi paralel adalah sebagai berikut:
1)      Partitioning. Tahap desain ini dimaksudkan untuk membuka peluang awal pengeksekusian secara paralel. Fokus dari tahap ini adalah mempartisi sejumlah besar tugas dalam ukuran kecil dengan tujuan menguraikan suatu masalah menjadi butiran-butiran kecil.
2)      Communication. Tugas-tugas yang telah terpartisi diharapkan dapat langsung dieksekusi secara paralel tapi tidak bisa, karena pada umumnya eksekusi berjalan secara independen. Pelaksanaan komputasi dalam satu tugas membutuhkan asosiasi data antara masing-masing tugas. Data kemudian harus berpindah-pindah antar tugas dalam melangsungkan komputasi. Aliran informasi inilah yang dispesifikasi dalam fase communication.
3)      Agglomeration . Pada tahap ini kita pindah dari sesuatu yang abstrak ke yang konkret. Kita tinjau kembali kedua tahap diatas dengan tujuan untuk mendapatkan algoritma pengeksekusian yang lebih efisien. Kita pertimbangkan juga apakah perlu untuk menggumpalkan ( agglomerate) tugas-tugas pada fase partition menjadi lebih sedikit, dengan masing-masing tugas berukuran lebih besar.
4)      Mapping . Dalam tahap yang keempat dan terakhir ini, kita menspesifikasi dimana setiap tugas akan dieksekusi. Masalah mapping ini tidak muncul padauniprocessor yang menyediakan penjadwalan tugas.

c.       Kelebihan
Kedekatan core CPU ganda yang sama memungkinkan koherensi cache sirkuit untuk beroperasi pada clock rate jauh lebih tinggi daripada yang jika harus melakukan perjalanan sinyal off-chip. Menggabungkan setara CPU secara signifikan meningkatkan performa cache snoop (alternatif: Bus mengintai) operasi. Secara sederhana, ini berarti bahwa sinyal antara CPU yang berbeda perjalanan jarak pendek, dan karena itu sinyal yang menurunkan kurang. Sinyal berkualitas lebih tinggi ini memungkinkan lebih banyak data yang akan dikirim dalam jangka waktu tertentu karena sinyal individu dapat menjadi lebih pendek dan tidak perlu sering diulang.
Terbesar dalam kinerja meningkatkan kemungkinan akan melihat dalam waktu respon ditingkatkan saat menjalankan proses CPU-intensif, seperti antivirus scan, merobek / pembakaran media (yang membutuhkan konversi file), atau mencari folder. Sebagai contoh, jika scan virus otomatis memulai sementara film sedang dimainkan, aplikasi yang berjalan di film jauh lebih cenderung tidak kekurangan daya prosesor, seperti program antivirus tersebut akan diarahkan ke core prosesor yang berbeda dari yang menjalankan film.
Asumsi bahwai bisa masuk ke dalam paket, secara fisik, multi-core CPU desain membutuhkan jauh lebih sedikit Printed Circuit Board (PCB) ruang dari multi-chip SMP desain. Juga, sebuah prosesor dual-core menggunakan lebih sedikit daya dari dua ditambah prosesor single-core, terutama karena penurunan daya yang diperlukan untuk mengarahkan sinyal luar chip. Selanjutnya, core berbagi beberapa sirkuit, seperti L2 cache dan antarmuka ke front side bus (FSB). Bersaing dalam hal teknologi yang tersedia silikon daerah mati, desain multi-core dapat memanfaatkan perpustakaan inti CPU terbukti desain dan menghasilkan produk dengan risiko rendah kesalahan desain daripada merancang sebuah desain inti baru yang lebih luas. Selain itu, penambahan cache menderita semakin berkurang.
Keuntungan software dari arsitektur multicore adalah kode-kode dapat dieksekusi secara parallel. Dalam system operasi kode-kode tersebut dieksekusi dalam thread-thread atau proses-proses yang terpisah. Setiap aplikasi system berjalan pada prosesnya sendiri sehingga aplikasi parallel akan mendapatkan keuntungan dari arsitektur multicore. Setiap aplikasi harus tertulis secara spesifik untuk memaksimalkan penggunaan dari banyak thread. Banyak aplikasi software tidak dituliskan dengan menggunakan thread-thread yang concurrent karena kesulitan dalam pembuatannya. Concurrency memegang peranan utama dalam aplikasi parallel yang sebenarnya.

d.      Kekurangan
Selain sistem operasi (OS) dukungan, penyesuaian perangkat lunak yang ada diwajibkan untuk memaksimalkan pemanfaatan sumber daya komputasi yang disediakan oleh prosesor multi-core. Selain itu, kemampuan multi-core untuk meningkatkan kinerja aplikasi tergantung pada penggunaan benang dalam beberapa aplikasi. Situasi membaik: misalnya Valve Corporation ‘s Sumber mesin, menawarkan dukungan multi-core, dan Crytek telah mengembangkan teknologi serupa untuk CryEngine 2, yang kekuatan permainan mereka, Crysis .Emergent Game Technologies’ Gamebryo mesin teknologi termasuk pintu air mereka yang menyederhanakan multicore permainan di platform pengembangan.
Integrasi multi-core chip drive hasil produksi turun dan mereka lebih sulit untuk mengelola termal dari kerapatan rendah desain chip tunggal. Intel telah sebagian balas Masalah pertama ini dengan menciptakan quad core dengan desain dengan menggabungkan dua dual-core pada satu die dengan cache yang bersatu, maka setiap dua dual-core yang bekerja mati dapat digunakan, berlawanan dengan memproduksi empat core pada satu mati dan mengharuskan semua empat untuk bekerja untuk menghasilkan sebuah quad-core. Dari sudut pandang arsitektur, pada akhirnya, desain CPU tunggal dapat membuat lebih baik menggunakan permukaan silikon dari core multiprocessing, sehingga komitmen pembangunan arsitektur ini dapat membawa risiko keusangan. Akhirnya, kekuatan pemrosesan mentah bukan satu-satunya kendala pada kinerja sistem. Dua core berbagi sama bus sistem dan bandwidth memory membatasi kinerja dunia nyata keuntungan. Jika satu inti adalah dekat untuk menjadi terbatas bandwidth memory, pergi ke dual-core mungkin hanya memberikan 30% sampai 70% perbaikan. Jika memori bandwidth bukan masalah, 90% peningkatan dapat diharapkan rujukan. Akan mungkin untuk suatu aplikasi yang menggunakan dua CPU berakhir berjalan lebih cepat pada satu dual-core jika komunikasi antara CPU adalah faktor pembatas, yang akan dihitung sebagai lebih dari 100% peningkatan.


2 komentar: