Senin, 23 Januari 2012

PERBEDAAN ANTARA MULTIPROCESSOR DAN MULTI CORE-PROCESSOR

A. MULTIPROCESSOR
Multiprocessor adalah sistem komputer dengan dua atau lebih CPU identik yang membagi akses secara penuh kepada common RAM (Shared Memory MultiProcessor).

Pengertian lainnya multiprocessing dalam teknologi informasi adalah :
1. Dukungan sebuah sistem untuk mendukung lebih dari satu processor dan mengalokasikan tugas kepada prosesor-prosesor tersebut.
2. Kemampuan esksekusi terhadap beberapa proses perangkat lunak dalam sebuah sistem secara serentak.

Shared memory model
3 model shared memory multiprocessors

• Terlihat bahwa memori dibagi secara merata ke semua prosesor
• Semua prosesor mempunyai waktu akses yang sama ke semua word memori
• Setiap prosesor menggunakan private cache
• Dan untuk peripheral juga dishare dengan cara yang sama
• UMA cocok untuk general purpose dan aplikasi time sharing oleh multiple
user.
• UMA dapat digunakan untuk meningkatkan kecepatan eksekusi dari program
tunggal yang besar pada aplikasi time-critical

 NONUNIFORM MEMORY ACCESS (NUMA)
NUMA multiprocessor adalah sebuah sistem shared memory dimana waktu aksesnya bervariasi ke lokasi memori word.


Hierarchical Cluster Model (Chedar System)


• Shared memory yang secara phisik didistribusikan kesemua proc disebut lokal memori, dan kumpulan dari lokal memori membentuk ruang alamat global yang dapat diakses oleh semua proc.
• NUMA dapat mengakses lokal memori lebih cepat dengan local proc, sedangkan akses ke memori yang jauh diberikan ke proc lain yang kapasistasnya lebih besar untuk ditambah delay melalui interconeksi jaringan (BBN Butterfly).
• Disamping distribusi memori, secara umum shared memory dapat ditambahkan ke multiprocessor system, dalam hal ini ada tiga pola akses memory, dimana yang tercepat adalah akses ke lokal memori, akses ke global memori dan yang paling lambat adalah akses dari memory yang jauh (Hierarchical Cluster Model (Chedar System)



 CACHE ONLY MEMORY ARCHITECTURE (COMA)

• COMA adalah multiprocessor yang hanya menggunakan cache memory.
• COMA dapat ditemukan pada NUMA machines, dimana pendistribusian main memori dirubah ke cache. Disini tidak ada hirarki memori pada setiap node computer. Semua cache berasal dari ruang alamat global . akses ke cache yang jauh di bantu oleh direktori cache yang didistribusikan. Tergantung kepada interkoneksi jaringan yang digunakan, terkadang direktori digunakan untuk membantu penempatan copian dari blok-blok cache.
• Penempatan awal data tidak penting karena data akan menempati tempat dimana data tersebut akan digunakan.


Yang membedakan dari ketiga model diatas adalah bagaimana memori dan
peripheral device dishared atau didistribusikan
a. message passing multiprocessor
b. wide area distributed system


Jenis-jenis multiprosesor
Multiprocessing dapat dibagi ke dalam beberapa kelas, yakni:
Berdasarkan simetrinya, multiprocessing dapat dibagi ke dalam :
• Asymmetric Multiprocessing (ASMP)
• Symmetric Multiprocessing (SMP)
• Non-uniform memory access (NUMA) multiprocessing
• Clustering
Berdasarkan jumlah instruksi dan datanya, dapat dibagi ke dalam :
• SISD (Single Instruction on Single Data Stream)
• SIMD (Single Instruction on Multiple Data Stream)
• MISD (Multiple Instruction on Single Data Stream)
• MIMD (Multiple Instruction on Multiple Data Stream)
Berdasarkan kedekatan antar prosesor, dapat dibagi ke dalam :
• Loosely coupled
• Thightly coupled
Ada juga yag membedakan sistem multiprosesor menjadi : SMP, prosesor vektor, prosesor paralel, dan MMP.
• SMP (symetric multiprocessor) merupakan sistem multiprosesor dengan masing-masing prosesor bekerja secara-sendiri-sendiri (tidak saling bergantung). Pada sistem ini, sebuah CPU bisa jadi sedang menangani suatu proses misalkan sedang mengolah lembar kerja dan CPU lain sedang melakukan proses grafis.
• Prosesor vektor menyatakan suatu sistem multiprosesor dengan masing-masing prosesor dapat bekerja secara serentak dalam menangani proses perhitungan vektor.
• Prosesor paralel menyatakan sistem yang memiliki sejumlah prosesor yang memilki karakteristik sebagai berikut:
• Tidak ada prosesor yang bertindak sebagai prosesor utama.
• Sejumlah prosesor tidak selalu mengerjakan operasi yang sama dalam waktu yang sama.
Dengan menggunakan prosesor paralel, bagian-bagian sebuah program dapat dikerjakan oleh prosesor-prosesor yang berbeda. Penanganan aktifitas prosesor ini ditangani oleh program. Prosesor jenis ini biasa digunakan pada superkomputer.
• Prosesor paralel masif (Massively Parallel Processor atau MPP) adalah sistem yang mengandung ratusan atau bahkan ribuan prosesor yang dapat saling berinteraksi dengan pendekatan jaringan syaraf tiruan. Lihat gambar dibawah, prosesor seperti ini sudah diterapkan dalam bisnis salah satu penggunaannya adalah Wal-Mart.


Penjadwalan Master/Slave (asymetric multiprocesing)
Pendekatan pertama untuk penjadwalan prosesor jamak adalah penjadwalan asymmetric multiprocessing atau bisa disebut juga sebagai penjadwalanmaster/slave. Dimana pada metode ini hanya satu prosesor( master) yang menangani semua keputusan penjadwalan, pemrosesan M/K, dan aktivitas sistem lainnya dan prosesor lainnya ( slave) hanya mengeksekusi proses. Metode ini sederhana karena hanya satu prosesor yang mengakses struktur data sistem dan juga mengurangi data sharing.
Dalam teknik penjadwalan master/slave, satu prosesor menjaga status dari semua proses dalam sistem dan menjadwalkan kinerja untuk semua prosesor slave. Sebagai contoh, prosesor master memilih proses yang akan dieksekusi, kemudian mencari prosesor yang available, dan memberikan instruksi Start processor. Prosesor slave memulai eksekusi pada lokasi memori yang dituju. Saat slave mengalami sebuah kondisi tertentu seperti meminta M/K, prosesor slave memberi interupsi kepada prosesor master dan berhenti untuk menunggu perintah selanjutnya. Perlu diketahui bahwa prosesor slave yang berbeda dapat ditujukan untuk suatu proses yang sama pada waktu yang berbeda.



Penjadwalan SMP
Penjadwalan SMP ( Symmetric multiprocessing) adalah pendekatan kedua untuk penjadwalan prosesor jamak. Dimana setiap prosesor menjadwalkan dirinya sendiri ( self scheduling). Semua proses mungkin berada pada antrian ready yang biasa, atau mungkin setiap prosesor memiliki antrian ready tersendiri. Bagaimanapun juga, penjadwalan terlaksana dengan menjadwalkan setiap prosesor untuk memeriksa antrian ready dan memilih suatu proses untuk dieksekusi. Jika suatu sistem prosesor jamak mencoba untuk mengakses dan meng- update suatu struktur data, penjadwal dari prosesor-prosesor tersebut harus diprogram dengan hati-hati; kita harus yakin bahwa dua prosesor tidak memilih proses yang sama dan proses tersebut tidak hilang dari antrian. Secara virtual, semua sistem operasi modern mendukung SMP, termasuk Windows XP, Windows 2000, Solaris, Linux, dan Mac OS X.

Affinity
Data yang paling sering diakses oleh beberapa proses akan memadati cache pada prosesor,sehingga akses memori yang sukses biasanya terjadi di memori cache. Namun, jika suatu proses . berpindah dari satu prosesor ke prosesor lainnya akan mengakibatkan isi dari cache memori yang dituju menjadi tidak valid, sedangkancache memori dari prosesor asal harus disusun kembali populasi datanya. Karena mahalnya invalidating dan re-populating dari cache, kebanyakan sistem SMP mencoba untuk mencegah migrasi proses antar prosesor sehingga menjaga proses tersebut untuk berjalan di prosesor yang sama. Hal ini disebut afinitas prosesor (processor affinity).
Ada dua jenis afinitas prosesor, yakni:
• Soft affinity yang memungkinkan proses berpindah dari satu prosesor ke prosesor yang lain, dan
• Hard affinity yang menjamin bahwa suatu proses akan berjalan pada prosesor yang sama dan tidak berpindah. Contoh sistem yang menyediakan system calls yang mendukung hard affinity adalah Linux.
Load Balancing
Dalam sistem SMP, sangat penting untuk menjaga keseimbangan workload antara semua prosesor untuk memaksimalkan keuntungan memiliki multiprocessor. Jika tidak, mungkin satu atau lebih prosesor idle disaat prosesor lain harus bekerja keras dengan workload yang tinggi. Load balancing adalah usaha untuk menjagaworkload terdistribusi sama rata untuk semua prosesor dalam sistem SMP. Perlu diperhatikan bahwa load balancing hanya perlu dilakukan pada sistem dimana setiap prosesor memiliki antrian tersendiri( private queue) untuk proses-proses yang berstatus ready. Pada sistem dengan antrian yang biasa ( common queue),load balancing tidak diperlukan karena sekali prosesor menjadi idle, prosesor tersebut segera mengerjakan proses yang dapat dilaksanakan dari antrian biasa tersebut. Perlu juga diperhatikan bahwa pada sebagian besar sistem operasi kontemporer mendukung SMP, jadi setiap prosesor bisa memiliki private queue.

Ada dua jenis load balancing, yakni:
• Push migration, pada kondisi ini ada suatu task spesifik yang secara berkala memeriksa load dari tiap-tiap prosesor. Jika terdapat ketidakseimbangan, maka dilakukan perataan dengan memindahkan( pushing) proses dari yang kelebihan muatan ke prosesor yang idle atau yang memiliki muatan lebih sedikit.
• Pull migration, kondisi ini terjadi saat prosesor yang idle menarik( pulling) proses yang sedang menunggu dari prosesor yang sibuk.
Kedua pendekatan tersebut tidak harus mutually exclusive dan dalam kenyataannya sering diimplementasikan secara paralel pada sistem load-balancing.
Keuntungan dari affinity berlawanan dengan keuntungan dari load balancing, yaitu keuntungan menjaga suatu proses berjalan pada satu prosesor yang sama dimana proses dapat memanfaatkan data yang sudah ada pada memori cache prosesor tersebut berkebalikan dengan keuntungan menarik atau memindahkan proses dari satu prosesor ke prosesor lain. Dalam kasus system engineering, tidak ada aturan tetap keuntungan yang mana yang lebih baik. Walaupun pada beberapa sistem, prosesor idle selalu menarik proses dari prosesor non-idle sedangkan pada sistem yang lain, proses dipindahkan hanya jika terjadi ketidakseimbangan yang besar antara prosesor.

Symetric Multithreading
Sistem SMP mengizinkan beberapa thread untuk berjalan secara bersamaan dengan menyediakan banyak physical processor. Ada sebuah strategi alternatif yang lebih cenderung untuk menyediakan logical processor daripada physical processor. Strategi ini dikenal sebagai SMT ( Symetric Multithreading). SMT juga biasa disebut teknologi hyperthreading dalam prosesor intel.
Ide dari SMT adalah untuk menciptakan banyak logical processor dalam suatu physical processor yang sama dan mempresentasikan beberapa prosesor kepada sistem operasi. Setiap logical processor mempunyai state arsitekturnya sendiri yang mencangkup general purpose dan machine state register. Lebih jauh lagi, setiap logical prosesor bertanggung jawab pada penanganan interupsinya sendiri, yang berarti bahwa interupsi cenderung dikirimkan ke logical processor dan ditangani oleh logical processor bukan physical processor. Dengan kata lain, setiap logical processor men- share resource dari physical processor-nya, sepertichace dan bus.

Perlu diketahui bahwa SMT adalah fitur yang disediakan dalam hardware, bukan software, sehingga hardware harus menyediakan representasi state arsitektur dari setiap logical processor sebagaimana representasi dari penanganan interupsinya. Sistem operasi tidak perlu didesain khusus jika berjalan pada sistem SMT, akan tetapi performa yang diharapkan tidak selalu terjadi pada sistem operasi yang berjalan pada SMT. Misalnya, suatu sistem memiliki 2 physical processor, keduanyaidle, penjadwal pertama kali akan lebih memilih untuk membagi thread ke physical processor daripada membaginya ke logical processor dalam physical processor yang sama, sehingga logical processor pada satu physical processor bisa menjadi sibuk sedangkan physical processor yang lain menjadi idle.
Keunggulan multiprosesor
a. Peningkatan throughput, karena lebih banyak proses/thread yang berjalan dalam satu waktu sekaligus (jika proses yang antri di ready queue sedikit). Perlu diingat hal ini tidak berarti daya komputasinya menjadi meningkat sejumlah prosesornya. Yang meningkat adalah jumlah pekerjaan yang bisa dilakukannya dalam waktu tertentu.
b. Economy of sale (ekonomis), ekonomis dalam devices yang dibagi bersama-sama. Prosesor-prosesor terdapat dalam satu komputer dan dapat membagi peripheral (ekonomis) seperti disk dan catu daya listrik.
c. Peningkatan kehandalan (reliabilitas), jika satu prosesor mengalami suatu gangguan, maka proses yang terjadi masih dapat berjalan dengan baik karena tugas prosesor yang terganggu diambil alih oleh prosesor lain. Hal ini dikenal dengan istilah Graceful Degradation. Sistemnya sendiri dikenal bersifat fault tolerant atau failoft system.




B. MULTI CORE-PROCESSOR
Multicore microprocessor adalah kombinasi dua atau lebih prosesor independen kedalam sebuah integrated circuit(IC). Umumnya, multicore mengizinkan perangkat komputasi untuk memeragakan suatu bentuk thread level paralelism(TLP) tanpa mengikutsertakan banyak prosesor terpisah. TLP lebih dikenal sebagaichip-level multiprocessing. Kemudian ada juga pengertian lain dari multi core-prosesor adalah sebuah prosesor yang memiliki banyak inti. Inti adalah bagian dari prosesor yang melakukan read dan execute instruction.Contoh arsitektur core pada AMD
Gambar Chip CPU dual-core.


Pengaruh multicore 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. 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 paralel yang sebenarnya.
Langkah-langkah dalam mendesain aplikasi paralel adalah sebagai berikut:
• 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.
• 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.
• 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.
• 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.
Pada sisi server, prosesor multicore menjadi ideal karena server mengizinkan banyak user untuk melakukan koneksi ke server secara simultan. Oleh karena itu, Web server dan application server mempunyai throughput yang lebih baik.

Functional units
• Superscalar is known territory
• Diminishing returns for adding more functional blocks
• Alternatives like VLIW have been considered and rejected by the market
• Single-threaded architectural performance is pegged
Data paths
• Increasing bandwidth between functional units in a core makes a difference
• Such as comprehensive 64-bit design, but then where to?
Pipeline
• Deeper pipeline buys frequency at expense of increased cache miss penalty and lower instructions per clock
• Shallow pipeline gives better instructions per clock at the expense of frequency scaling
• Max frequency per core requires deeper pipelines
• Industry converging on middle ground…9 to 11 stages
• Successful RISC CPUs are in the same range
Cache
• Cache size buys performance at expense of die size, it’s a direct hit to manufacturing cost
• Deep pipeline cache miss penalties are reduced by larger caches
• Not always the best match for shallow pipeline cores, as cache misses penalties are not as steep
Keuntungan Multi core-prosesor
1. Meningkatkan performa dari operasi cache snoop (bus snooping). Bus snooping adalah suatu teknik yang digunakan dalam sistem pembagian memori terdistribusi dan multiprocessor yang ditujukan untuk mendapatkan koherensi pada cache. Hal ini dikarenakan sinyal antara CPU yang berbeda mengalir pada jarak yang lebih dekat, sehingga kekuatan sinyal hanya berkurang sedikit. Sinyal dengan kualitas baik ini memungkinkan lebih banyak data yang dikirimkan dalam satu periode waktu dan tidak perlu sering di- repeat.
2. Secara fisik, desain CPU multicore menggunakan ruang yang lebih kecil pada PCB ( Printed Circuit Board) dibanding dengan desain multichip SMP
3. Prosesor dual-core menggunakan sumber daya lebih kecil dibanding sepasang prosesor dual-core
4. Desain multicore memiliki resiko design error yang lebih rendah daripada desain single-core






Kerugian Multi core-prosesor
1. Dalam hal sistem operasi, butuh penyesuaian kepada software yang ada untuk memaksimalkan kegunaan dari sumberdaya komputasi yang disediakan oleh prosesor multicore. Kemampuan prosesor multicore untuk meningkatkan performa aplikasi juga bergantung pada penggunaan banyaknya thread dalam aplikasi tersebut.
2. Dari sudut pandang arsitektur, pemanfaatan daerah permukaan silikon dari desain single-core lebih baik daripada desain multicore.
3. Pengembangan chip multicore membuat produksinya menjadi menurun karena semakin sulitnya pengaturan suhu pada chip yang padat.




C. SUMMARY
Perbedaan yang paling mendasar antara multi prosesor dan multi core adalah :
Multiprocessor adalah sistem komputer dengan dua atau lebih CPU identik yang membagi akses secara penuh kepada common RAM (Shared Memory MultiProcessor).
Multi core-prosesor adalah sebuah prosesor yang memiliki banyak inti. Inti adalah bagian dari prosesor yang melakukan read dan execute instruction.
Penjadwalan asymmetric multiprocessing atau penjadwalan master/slave menangani semua keputusan penjadwalan, pemrosesan M/K, dan aktivitas sistem lainnya hanya dengan satu prosesor ( master). Dan prosesor lainnya ( slave) hanya mengeksekusi proses.
SMP ( Symmetric multiprocessing) adalah pendekatan kedua untuk penjadwalan prosesor jamak. Dimana setiap prosesor menjadwal dirinya sendiri (self scheduling).
Load balancing adalah usaha untuk menjaga workload terdistribusi sama rata untuk semua prosesor dalam sistem SMP. Load balancing hanya perlu untuk dilakukan pada sistem dimana setiap prosesor memiliki antrian tersendiri( private queue) untuk proses-proses yang akan dipilih untuk dieksekusi. Ada dua jenis load balancing: push migration dan pull migration. Pada push migration, ada suatu task spesifik yang secara berkala memeriksa load dari tiap-tiap prosesor, jika terdapat ketidakseimbangan, maka dilakukan perataan dengan memindahkan( pushing) proses dari yang kelebihan muatan ke prosesor yang idle atau yang memiliki muatan lebih sedikit. Pull migration terjadi saat prosesor yang idle menarik ( pulling) proses yang sedang menunggu dari prosesor yang sibuk. Kedua pendekatan tersebut tidak harus mutually exclusive dan dalam kenyataannya sering diimplementasikan secara paralel pada sistem load-balancing.
Afinitas prosesor ( processor affinity) adalah pencegahan migrasi proses antar prosesor sehingga menjaga proses tersebut tetap berjalan di prosesor yang sama. Ada dua jenis afinitas prosesor, yakni soft affinity dan hard affinity. Pada situasi soft affinity ada kemungkinan proses berpindah dari satu prosesor ke prosesor yang lain. Sedangkan hard affinity menjamin bahwa suatu proses akan berjalan pada prosesor yang sama dan tidak berpindah. Contoh sistem yang menyediakansystem calls yang mendukung hard affinity adalah Linux.
SMT ( Symetric Multithreading) adalah strategi alternatif untuk menjalankan beberapa thread secara bersamaan. SMT juga biasa disebut teknologihyperthreading dalam prosesor intel.



Daftar pustaka
http://www.google.co.id/url?sa=t&rct=j&q=%20multiprocessor&source=web&cd=4&ved=0CD0QFjAD&url=http%3A%2F%2Fsyahrie.files.wordpress.com%2F2009%2F01%2Fmultiprocessor.pdf&ei=mHXITp7aH8_HrQeyiPm3Dg&usg=AFQjCNHcA2Zp7T_aw89OW2vx9SHlpWrlDA (pdf)
nov 20 10:38:49 2011
http://princesspelangi.blogspot.com/2011/06/multiprocessor-and-multi-core-processor.html
http://bebas.ui.ac.id/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch15s06.html

Tidak ada komentar:

Poskan Komentar