Translate

Sabtu, 22 Juni 2013

Arsitektur & Organisasi Komputer (Multiprocessor)

MULTIPROCESSOR

  1. Pengertian
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. Perhatikan Gambar dibawah ini :

Gambar 1.1 : Multiprogramming dengan Multiprocessor

Gambar tersebut mengilustrasikan perilaku dari multiprocessing yang digunakan untuk multiprogramming. Beberapa proses terpisah dialokasikan di dalam memory. Ruang alamat proses terdiri dari halaman – halaman sehingga hanya sebagian saja dari proses tersebut yang berada dalam memory pada satu waktu. Hal ini memungkinkan banyak prosesdapat aktif.
Sistem multiprosesor yakni :
ü  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
  1. Kelebihan Multiprocessor
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.
  1. Jenis – jenis Multiprocessor
Multiprocessing dapat dibagi ke dalam beberapa kelas, yakni:
a.         Berdasarkan simetrinya, multiprocessing dapat dibagi ke dalam
Pendekatan pertama untuk Multiprocessor Scheduling adalah asymmetric multiprocessingScheduling atau biasa disebut juga sebagai penjadwalan Master Slave MultiProcessor. Dimana pada metode ini satu prosesor bertindak sebagai master dan prosesor lainnya sebagai slave. Master Processor bertugas untuk menjadualkan dan mengalokasikan proses yang akan dijalankan oleh Slave Processors. Master Processor melakukan pekerjaan yang berhubungan dengan System, Slave Processor melayani user requests dalam pengeksekusian program. Pemrosesan yang banyak tidak menyebabkan penurunan performance.
Metode ini sederhana karena hanya satu prosesor yang mengakses struktur data sistem dan juga mengurangi data sharing. 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, 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. Master processor dapat mengeksekusi OS dan menangani I/O, sedangkan sisanya processor tidak punya kemampuan I/O dan disebut sebagai Attached Processor (Aps). APs mengeksekusi kodekode user dibawah pengawasan master processor.




Gambar 3.1  Master slave MultiProcessor
Pada Komputer stand alone dengan karakteristik berikut (William Stallings):
           Dua atau lebih processor yang sama dengan kapasitas yang sebanding
           Processor membagi I/O dan memory yang sama
           Processor terkoneksi oleh bus atau koneksi internal lainya
           Waktu akses moemory kira-kira sama pada setiap processor
           Seluruh processor membagi akses I/O baik pada chanel yang sama maupun berbeda dengan memberikan path ke device yang sama
           Seluruh Processor mengerjakan fungsi yang sama (hence symetric)
           Sistem dikontrol oleh OS yang terintegrasi menyediakan interaksi antara processor atau interaksi terjadi pada job, task, file, data pada level-level elemen.
           SMP merupakan Tightly Coupled System
           Mempunyai lebih dari satu prosesor
           Dapat berkomunikasi
           Membagi bus, clock, perangkat memory, dan peripheral.
           Setiap prosesor menjalankan sistem operasi yang identik dan komunikasi antar prosesor jika diperlukan

Gambar 3.2 Symmetric Multiprocessing (SMP)

Penjadwalan SMP adalah pendekatan kedua untuk Multiprocessor Scheduling. Pada metode ini setiap prosesor menjadwalkan dirinya sendiri (self scheduling). Penjadwalan terlaksana dengan menjadwalkan setiap prosesor untuk memeriksa antrian ready dan memilih suatu proses untuk dieksekusi. Jika suatu sistem Multiprocessor Scheduling mencoba untuk mengakses dan mengupdate 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, Windows Vista, Solaris, Linux, Mac OS X, OS/2 Warp Server 4.0 , OS/2 for SMP 2.11, Windows NT 4.0 , Novell NetWare 4.1 SMP, Novell UnixWare SMP 2.0 , SCO Open Server 5.0 with SCO MPX 3.0 , Banyan Vines , Symbian OS (Mobile Device)

Gambar 3.3 Multiprogramming dengan Symmetric Multiprocessing

Setiap prosesor memiliki akses ke memori utama dan perangkat-perangkat I/O bagi-pakai melalui mekanisme interkoneksi tertentu
Dalam Klasifikasi Organisasi Symmetric Multiprocessor
Fig04_09.gif


Gambar 3.4 Organisasi Symmetric Multiprocessor
Ø  Time-shared atau Common Bus :
       Prosesor dapat berkomunikasi dengan prosesor lainnya melalui memori
       Time shared bus adalah mekanisme simpel untuk membangun sistem multi-processor, struktur dan inteface sama pada single processor yaitu penggunaan bus interconnection
Ø  Fitur:
       Pengalamatan (Addressing) = Membedakan module untuk mengalokasikan data dari sumber ke tujuan
       Artbitrasi (Artbitration) = Mekanisme penyediaan permintaan acak -lebih penting didahulukan- untuk kontrol bus dengan skema prioritas
       Time Sharing = Jika satu mudule berada di bus, yang lain harus menunggu dan bisa juga di tunda operasinya.
Ø  Keuntungannya Time-shared Bus :
       Simplicity = Fisik interface, addressing, arbitration, dan time –sharing logic tiap processor sama seperti sistem single processor
       Flexibility = mudah ekspansi sistem dengan menyisipkan beberapa processor ke dalam bus
       Reliability = kesalahan pada penyisipan device tidak mengakibatkan kegagalan pada seluruh sistem
Ø  Kerugian Time-shared Bus :
       Performa terbatas pada bus cycle time
       Setiap processor harus memiliki local chace
       Mengurangi beberapa akses bus
       Masalah Pada “chace coherence” (dijelaskan nanti)
Ø  Multiport Memory
·      Pengijinan akses langsung, dan independen pada modul memory oleh setiap processor
·      Kebutuhan logic untuk pemecahan conflict
·      Sedikit modifikasi (bahkan tidak ada) ke processor atau modul yang dibutuhkan








Gambar 3.5 Multiport Memory
Ø  Central Control Unit
·           Pembagian data stream antara independent modul seperti; processor, memory, I/O.
·            Dapat melakukan buffer pada permintaan
·            Melakukan arbitrasi dan penjadwalan
·            Melakukan status dan kontrol
·            Melakukan cache update alerting
·            Contoh. IBM S/390
Ø  Operating system untuk SMP:
            Simultaneous concurrent processes = Manajemen eksekusi IS code yang sama secara simultan pada OS routine  
             Scheduling = Melakukan Penjadwalan untuk menghindari conflict
            Synchronization = Sinkronisasi yang efektif pada shared address/ shared I/O
            Memory management = Pengaturan memory yang akurat pada multiport
             Reliability and fault tolerance = Pengenalan kesalahan pada processor
Ø 

Mainframe SMP pada IBM S/390

Gambar 3.6 Mainframe SMP pada IBM S/390
            Processor unit (PU) terdiri dari : CISC microprocessor, Frequently used instructions hard wired, 64k L1 unified cache with 1 cycle access time
             L2 cache : 384k
            Bus switching network adapter (BSN) : Includes 2M of L3 cache, Memory card, 8G per card
Ø 

Directory Protocol :
Gambar 3.7 Directory Protocol
             Mengumpukan dan merawat informasi tentang copian data pada cache
             Directory tersimpan pada memory
             Permintaan di cek oleh directory
             Pelaksanaan transfer yang lebih penting dahulu
             Pembuatan sentral bottleneck
            Efektif pada sistem skala besar dengan interkoneksi skema yang kompleks
Lock digunakan untuk proses sinkronisasi, apabila ada 2 atau lebih proses yang ingin mengakses alamat memori yang sama dan mengubah shared memory. Dalam skema tersebut, salah satu penjadwalan akan digunakan. Salah satu cara menggunakan symmetric multiprocessing (SMP). Dimana setiap prosesor menjadwalkan diri sendiri. Setiap prosesor memeriksa ready queue dan memilih proses yang akan dieksekusi.
Dalam sistem multiprocessing, semua CPU mungkin sama, atau beberapa mungkin disediakan untuk tujuan khusus. Sebuah kombinasi antara perangkat lunak perangkat keras dan pertimbangan desain sistem operasi menentukan simetri (atau kekurangan daripadanya) dalam sistem tertentu. Sebagai contoh, perangkat keras atau perangkat lunak mungkin memerlukan pertimbangan
bahwa hanya satu CPU menanggapi semua hardware interrupts, sedangkan semua pekerjaan lain dalam sistem boleh didistribusikan merata antara CPU, atau eksekusi kode kernel-mode dapat dibatasi hanya satu prosesor (baik prosesor tertentu, atau hanya satu prosesor pada satu waktu), sedangkan kode pengguna-mode mungkin dijalankan dalam setiap kombinasi prosesor.
Gambar 3.8
Gambar 3.8

Jika suatu pekerjaan bisa diorganisasikan, maka porsi yang sama pada sebuah pekerjaan bisa dilakukan secara paralel, sehingga sistem dengan multiple processor akan menunjukan performa yang tingggi dibandingkan single processor (William Stallings)
Sistem Multiprocessing sering lebih mudah untuk merancang jika larangan tersebut diberlakukan, tetapi mereka cenderung kurang efisien dibandingkan dengan sistem di mana semua CPU yang digunakan.
Sistem yang memperlakukan semua CPU sama disebut multiprocessing simetris (SMP) sistem. Dalam sistem dimana semua CPU yang tidak sama, sumber daya sistem dapat dibagi dalam beberapa cara, termasuk asymmetric multiprocessing (AMP), non-seragam akses memori (NUMA) multiprocessing, dan berkelompok multiprocessing.
Gambar 3.9 UMA machine block diagram


Permasalahan pada Multiprocessor Scheduling
1)   Load sharing : dapat terjadi apabila proses yang jalan di satu prosesor overload sehingga sebagian proses berpindah ke prosesor yang lain
2)   Time Sharing : masing – masing proses akan dijalankan bila terdapat CPU yang telah menyelesaikan job nya
3)   Space Sharing: multiple threads dalam waktu yang sama masuk ke multiple CPUs
4)   Gang scheduling: semua thread berasal dari proses yang running pada suatu waktu
ü Non-uniform memory access (NUMA) multiprocessing
Non-Uniform Memory Access atau Non-Uniform Memory Arsitektur (NUMA) adalah memori komputer Rancangan yang digunakan dalam multiprocessors , dimana waktu akses memori tergantung pada lokasi memori relatif terhadap prosesor. Under NUMA, Dalam NUMA, prosesor atau NUMA multiprocessor adalah sebuah sistem shared memory dimana waktu aksesnya bervariasi ke lokasi memori word.












Gambar 3.10 NUMA
·      Shared memory yang secara phisik didistribusikan kesemua process disebut lokal memori, dan kumpulan dari lokal memori membentuk ruang alamat global yang dapat diakses oleh semua process.
·      NUMA dapat mengakses lokal memori lebih cepat dengan local process, sedangkan akses ke memori yang jauh diberikan ke process 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 )
b.         Berdasarkan jumlah instruksi dan datanya, dapat dibagi ke dalam (lihatTaksonomi Flynn)
ü SISD (Single Instruction on Single Data Stream)
 



Gambar 3.11 SISD Intel 80X
Yang merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
·       Satu prosesor
·       Satu instruksi stream
·       Data disimpan di satu memori
·       Disebut Uni-processor
 




Gambar 3.12 SISD (Single Instruction on Single Data Stream)
ü SIMD (Single Instruction on Multiple Data Stream)
 





Gambar 3.13 SIMD Thread/Pipeline
Yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).
·      Instruksi mesin tunggal
·      Eksekusi dikendalikan secara simultan
·      Terdapat sejumlah elemen proses
·      Setiap instruksi dieksekusi dalam set data yang berbeda oleh proses yang berbeda

SIMD

Gambar 3.14 SIMD (Single Instruction on Multiple Data Stream)
ü MISD (Multiple Instruction on Single Data Stream)
Yang merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.
·      Satu Aliran Instruksi
·      Banyak Aliran Data
·      Belum dapat diimplementasikan dengan baik




NewMISD

Gambar 3.15 MISD (Multiple Instruction on Single Data Stream)
·         MIMD (Multiple Instruction on Multiple Data Stream)
 










Gambar 3.16 MIMD Arsitektur Core
Yang merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L


MIMD







Gambar 3.17 MIMD (Multiple Instruction on Multiple Data Stream)
·      Terdiri dari sejumlah set prosesor
·      Terdiri dari sejumlah set data yang berbeda
·      Secara simultan mengeksekusi urutan instruksi yang berbeda
Sifat komputer MIMD:
·      Mendistribusikan pemrosesan ke sejumlah prosesor independen.
·      Membagikan sumber termasuk memori utama ke prosesor independen.
·      Setiap prosesor menjalankan programnya sendiri.
·      Setiap prosesor berfungsi secara independen dan bersama-sama.
c.         Berdasarkan kedekatan antar prosesor, dapat dibagi ke dalam
·      Mendistribusikan komputasi diantara beberapa prosessor. Prosessor berkomunikasi dengan prosessor lain melalui saluran komunikasi, misalnya bus kecepatan tinggi atau saluran telepon. Sistem ini disebut loosely coupled system atau sistem terdistribusi (distributed system) dengan menggunakan memory local atau multi komputer.
·      Setiap site memiliki processor, memori lokal dan clock sendiri namun semua resource dapat diakses dari setiap site.
·      Proses yang dijalankan pada komputer yang berbeda modul saling berkomunikasi dengan bertukar pesan melalui Message Transfer System (MTS).
 






Gambar 3.18 Loosely coupled
·      Tight coupling di antara window adalah konsep antarmuka yang mendukung koordinasi secara global atau multi processor.
·      Prosesor berkomunikasi antara satu dengan yang lain dengan cara berbagi memori utama, sehingga kecepatan komunikasi dari satu prosesor ke yang lain tergantung pada bandwidth memori.
·      Sebuah memori lokal kecil atau buffer (cache) kemungkinan terdapat pada setiap prosesor untuk memperbaiki kinerja.
 







Gambar 3.19 Thightly coupled
  1. Kesimpulan
Multiprocessing adalah penggunaan dua atau lebih unit pengolahan pusat (CPU) dalam satu sistem komputer. Hal ini berarti kemampuan sistem untuk mendukung lebih dari satu prosesor dan/atau kemampuan untuk mengalokasikan tugas antara mereka.
Keuntungan multiprocessing antara lain :
a)         Dapat meningkatkan throughput, maksudnya adalah peningkatan jumlah pekerjaan yang dapat dilakukan dalam waktu tertentu;
b)        Lebih ekonomis, maksudnya adalah dibandingkan sebuah sistem dengan banyak prosesor tunggal, metode multiprocessing dapat mengoptimalkan alokasi hardware seperti memori, storage, dan power supply (hal ini dikarenakan dapat di shared);
c)         Dapat meningkatkan performa/kehandalan, hal ini dikarenakan jika pekerjaan (instruksi) terbagi secara merata, maka kegagalan salah satu prosesor bisa ditanggulangi oleh prosesor-prosesor yang lain. 

3 komentar:

  1. Mba kog gambarnya gag muncul yaa :)

    BalasHapus
  2. blognya bagus mbak :)
    tpi kok gambarnya ilang

    BalasHapus
  3. mbk kirim gambar blog nya doank ke ,muhamadansori158@gmail.com

    BalasHapus