bab xiv memaksimalkan_prosesor
TRANSCRIPT
MEMAKSIMALKAN PROSESOR
Overview
• Prosesor dapat ditingkatkan kinerjanya dengan membuatnya bekerja secara paralel. Namun paralelisme pada prosesor bukanlah hal yang mudah untuk diimplementasikan apabila terdapat ketergantungan antar proses yang sedang dieksekusi.
• Melalui bab ini akan dipelajari bagaimana komputer dapat ditingkatkan kinerjanya dengan menbuat proses paralelisme pada prosesornya.
Tujuan
• Memahami cara mempercepat kinerja pada prosesor secara paralel.
• Mempelajari karakteristik pada teknik memaksimalkan kinerja prosesor.
Latar Belakang• Pada saat ini aplikasi komputer (commercial & scientific)
membutuhkan sistem komputasi dengan jumlah data yang semakin besar/kompleks dan harus diselesaikan dalam waktu tertentu serta dengan spesifikasi yang semakin tinggi, contoh: – Rendering film animasi, pemodelan cuaca, desain struktural,
computer aided design (CAD) dsb.• Beberapa pendekatan solusi permasalahan:
– Superkomputer– Mempercepat prosesor– memperbesar memori– Mempercepat bus– Sistem komputer paralel, dll
Proses Paralel• Salah satu solusi permasalahan adalah sistem komputer
paralel.• Dalam perancangan sistem komputer, penggunaan sistem
komputer paralel menjadi salah satu opsi yang harus dipertimbangkan agar memiliki kinerja yang lebih baik.
• Kinerja dari sistem komputer dinilai dari dua hal: – Seberapa cepat sistem komputer tersebut bisa menyelesaikan
suatu proses. – Seberapa kompleks permasalahan yang bisa diselesaikan
dengan ditambahkannya prosesor yang bekerja secara paralel.
Komponen Sistem Komputasi Paralel
• Hardware:– PC s.d. superkomputer
• Software– Parallel program
• Explicit parallelism: pembagian partisi paraleldilakukan oleh programmer
• Implicit parallelism: pembagian partisi paralel dilakukan oleh kompiler khusus (paralel)
• Operating system• Network:
– backplane, LAN
Bentuk Umum Paralelisme
• Ada dua bentuk umum paralelisme: – Paralelisme instruksilevel
• Paralelisme dimanfaatkan dalam instruksi - instruksi individu agar dapat mengeksekusikan lebih banyak instruksi/detik.
– Paralelisme prosessorlevel. • Berbagai macam CPU bersama -sama menangani
masalah.
Tingkat Paralelisme
• Berdasarkan tingkat paralelismenya prosesor paralel dapat dibagi menjadi beberapa tingkat sebagai berikut :
• Komputer Array : – Prosesor array : beberapa prosesor yang bekerja sama untuk
mengolah set instruksi yang sama dan data yang berbeda – beda atau biasa disebut SIMD (Single Instruction-stream Multiple Data)
– Prosesor vektor : beberapa prosesor yang disusun seperti pipeline.• Multiprosesor, yaitu sebuah sistem yang memiliki 2 prosesor
atau lebih yang saling berbagi memori.• Multikomputer, yaitu sebuah sistem yang memiliki 2 prosesor
atau lebih yang masing-masing prosesor memiliki memori sendiri.
Klasifikasi Struktur Paralel
Ada 3 klasifikasi struktur sistem komputer paralel :• 1. Klasifikasi Flynn
– Didasarkan pada penggandaan alur instruksi dan alur data dalam sistem komputer.
• 2. Klasifikasi Feng– Didasarkan pada pemrosesan paralel dan serial
• 3. Klasifikasi Händler– Didasarkan pada derajat keparalelan dan pipelining
dalam berbagai tingkat subsistem.
Klasifikasi Flynn• Klasifikasi sistem komputer yang didasarkan pada penggandaan alur
instruksi dan alur data.– Alur instruksi (instruction stream) adalah urutan instruksi yang dilaksanakan
oleh sistem komputer.– Alur data adalah urutan data yang dipanggil oleh alur instruksi.
• Baik instruksi maupun data diambil dari modul memori Instruksi didecode (diartikan) oleh Control Unit.
• Alur data mengalir dua arah antara prosesor dan memori.• Ada 4 kategori sistem komputer dalam klasifikasi Flynn:
– 1. Single Instruction stream – Single Data stream (SISD)– 2. Single Instruction stream – Multiple Data stream (SIMD)– 3. Multiple Instruction stream – Single Data stream (MISD)– 4. Multiple Instruction stream – Multiple Data stream (MIMD)
Klasifikasi Flynn dan modelpemrosesan paralel
SISD (Single Instruction Stream, Single Data Stream)
• Instruksi dilaksanakan secara berurut tetapi juga boleh overlap dalam tahapan eksekusi (pipeline)
• Sebuah instruksi tunggal berhubungan dengan paling banyak satu operasi data serta juga dapat di pipeline-kan ke beberapa saluran tambahan.
• Instruksi sekuensial• Data disimpan di satu memori• Di sebut Uni-processor
Sistem Komputer kategori SISD
SIMD (Single Instruction Stream, Multiple Data Stream)
• Merupakan suatu instruksi tunggal mungkin mengawali sejumlah besar operasi.• Dilaksanakan satu per satuan waktu namun bekerja pada beberapa aliran data
sekaligus.• Beberapa Processor Unit (Processing Element) disupervisi oleh Control Unit
yang sama.• Semua Processing Element menerima instruksi yang sama dari control unit
tetapi mengeksekusi data yang berbeda dari alur data yang berbeda pula.• Subsistem memori berisi modul-modul memori.• Yang termasuk SIMD adalah Array Processor dan Vector Processor• Sifat komputer SIMD adalah:
– 1. Mendistribusikan pemrosesan ke sejumlah hardware.– 2. Beroperasi secara bersama-sama pada beberapa elemen data yang berbeda.– 3. Menjalankan komputasi yang sama pada semua elemen data.
Sistem Komputer kategori SIMD
MISD (Multiple Instruction Stream, Single Data Stream)
• Sejumlah prosesor unit , masing-masing menerima instruksi yang berbeda dan mengoperasikan data yang sama.
• Output salah satu prosesor menjadi input bagi prosesor berikutnya, dimana data akan mengalir ke elemen pemroses serial
• Struktur komputer ini tidak praktis, sehingga Belum dapat diimplementasikan dengan baik
Sistem Komputer kategori MISD
MIMD (Multiple Instruction Stream, Multiple Data Stream)
• Sejumlah prosesor secara simultan mengeksekusi rangkaian instruksi yang berbeda pada kumpulan data yang berbeda pula.
• Sifat komputer MIMD :– 1. Mendistribusikan pemrosesan ke sejumlah prosesor independen.– 2. Membagikan sumber termasuk memori utama ke prosesor independen.– 3. Setiap prosesor menjalankan programnya sendiri.– 4. Setiap prosesor berfungsi secara independen dan bersama-sama.
• Yang termasuk MIMD – 1. Multikomputer– 2. Multiprosesor
Sistem Komputer kategori MIMD
Pipeline
• Teknologi pipeline yang digunakan pada komputer bertujuan untuk meningkatkan kinerja dari komputer.
• Secara sederhana, pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersamaan tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit pemrosesan.
• Dengan cara ini, maka unit pemroses selalu bekerja.
Penerapan Pipeline
Secara umum, prinsip pipeline dapat diterapkan pada beberbagai level, seperti:
• Level instruksi (unit pemrosesan instruksi)
– Berguna untuk komputer yang memiliki set instruksi lebih sederhana
• Level subsystem (unit aritmatika pipeline)
– Berguna untuk operasi vektor• Level system (level hardware/software)
Tahapan Pipeline
• Pada pipeline proses dapat dibagi menjadi beberapa tahap dan beberapa proses serta dapat dilaksanakan secara simultan.
• Operasi pipeline dilaksanakan secara siklus (cyclic pipeline) yang dibagi dalam 5 tahap: – Operasi baca (dari shared memories)– Operasi decode 1 (memori ke elemen pemroses)– Operasi pembacaan/decode 2 (di elemen pemroses)– Operasi eksekusi (di elemen pemroses ke memori)– Operasi transfer/simpan (elemen pemroses ke memori)
Siklus Pipeline 5 Tahap
Pipeline pada Micro-0486
Inst
ruct
ion F
etch
Deco
de 1
(mem
ory
acce
ss)
Deco
de 2
Exec
ution
Writ
e-ba
ck
ADD eax,mem32
Decode ADD,fetch mem32
Decode ADD(continued)
Write resultinto eax
Add eax andmem32
Cycle n
Cycle n+1
Cycle n+2
Cycle n+3
Cycle n+4
Beberapa Hal Yang Perlu Diperhatikan :
• Penggunaan sumber daya secara bersamaan– Karena beberapa instruksi diproses secara bersamaan ada kemungkinan
instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar
• Ketergantungan kepada data – Misalnya instruksi yang berurutan memerlukan data dari instruksi yang
sebelumnya. • Menyebabkan pengaturan Jump ke alamat memory.
– ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.
Superskalar• Superscalar adalah prosesor yang dilengkapi dengan banyak
unit pengolahan untuk menangani beberapa instruksi secara paralel pada tiap stage pengolahan.
• Prosesor tersebut mampu mencapai throughput eksekusi lebih dari satu instruksi per cycle.
• Di dalam superscalar terdapat lebih dari satu pipeline yang juga memiliki tugas tersendiri namun tetap fleksibel dengan tugas yang lain.
• Bahkan untuk pipeline Floating Point (pengolah bilangan berkoma) bisa meningkat secara tajam kecepatannya dalam kegunaan ilmiah yang tentunya juga banyak memerlukan bilangan berkoma.
Superskalar 5 Tahap Dengan Pipeline Ganda
Prosesor Superskalar Dengan 5 Satuan Fungsional
Arsitektur Paralel
• Dalam klasifikasi arsitektur paralel ada dua keluarga arsitektur paralel yang banyak diterapkan yaitu: SIMD dan MIMD
• Contoh arsitektur SIMD adalah prosesor array• Termasuk arsitektur MIMD :
– Multikomputer (Loosely Coupled/ local memory) dengan memori yang terdistribusi
– Multiprosesor (Tightly Coupled/ global memory) dengan memori yang dapat digunakan bersama (shared memory)
Prosesor Array
• Bentuk SIMD pengolahan paralel disebut juga pengolahan array (array processing)
• Sebuah prosesor array terdiri dari sejumlah besar prosesor yang sama, yang menjalankan rangkaian instruksi yang sama pada kumpulan data berbeda.
• Prosesor array pertama di dunia adalah komputer ILLIAC 1V di Universitas Illinois
Struktur Umum 16 Prosessor array Dan Unit Kontroltunggal
Multikomputer• Meskipun multiprosesor dengan sejumlah kecil prosesor
relatif mudah untuk dibuat, multiprosesor besar sangat sulit untuk dibuat.
• Kesulitan tersebut terutama dalam menghubungkan semua prosesor ke memori.
• Untuk mengatasi masalah ini, dibuat sistem yang terdiri dari banyak komputer yang saling terhubung, di mana masing - masing memiliki memorinya sendiri, tetapi tidak ada memori bersama. Sistem ini disebut sistem multikomputer.
• Dalam sebuah multikomputer CPU berkomunikasi dengan saling mengirim pesan, seperti email, tapi dengan kecepatan lebih tinggi.
Multikomputer Con’t
• Karena prosesor-prosesor multikomputer harus berkomunikasi, maka elemen penting perancangan multikomputer adalah jaringan interkoneksi yang harus dapat beroperasi seefisien mungkin.
• Ada beberapa topologi interkoneksi untuk memberikan kinerja yang efisien seperti:– Ring– Mesh– Tree– Hypercube
Multiprosesor
• Suatu sistem dengan lebih dari satu CPU yang memiliki sebuah memori bersama.
• Karena setiap CPU dapat membaca atau menulis bagian apa saja dari memori, mereka harus berkoordinasi (dalam software) agar tidak saling berebut jalurnya masing – masing.
Uniform Memory Access (UMA) MIMD
• Memungkinkan “n” prosesor mengakses “k” memori.
• Setiap prosesor dapat mengakses tiap memori.
• Jeda akses prosesor sama keseluruh memori.
Diagram UMA
Non-Uniform Memory Access (NUMA) MIMD
• Melekatkan modul memori langsung ke prosesor.
• Prosesor selain mengakses memori lokalnya dapat juga mengakses memori lainnya melalui jaringan.
• Terdapat perbedaan waktu antara akses ke momori lokal dengan memori lainnya karena akses jarak jauh melalui jaringan
Diagram NUMA
Sistem Memori Terdistribusi
• Modul memori bersifat privat untuk prosesor yang terhubung langsung.
• Remote memori dapat diakses melalui komunikasi pertukaran pesan dengan prosesor remote menggunakan protokol message – passing.
TERIMA KASIH