17
MODUL PEMBELAJARAN ARSITEKTUR DAN ORGANISASI KOMPUTER BAB 15 MULTI CORE COMPUTER OLEH ARRY AGUSTIANI (0910683022) RIA AGUSTINA (091068078) KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS BRAWIJAYA PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER MALANG 2012

Modul Pembelajaran Bab 15

Embed Size (px)

Citation preview

Page 1: Modul Pembelajaran Bab 15

MODUL PEMBELAJARAN

ARSITEKTUR DAN ORGANISASI KOMPUTER

BAB 15 MULTI CORE COMPUTER

OLEH

ARRY AGUSTIANI (0910683022)

RIA AGUSTINA (091068078)

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

PROGRAM STUDI TEKNIK INFORMATIKA

UNIVERSITAS BRAWIJAYA

PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER

MALANG

2012

Page 2: Modul Pembelajaran Bab 15

Pendahuluan

Sebuah komputer multicore, juga dikenal sebagai multiprosesor chip, menggabungkan dua

atau lebih prosesor (disebut core) pada sepotong silikon. Biasanya, masing-masing inti

terdiri dari semua komponen dari sebuah prosesor independen, seperti register, ALU, pipa

perangkat keras, dan unit kontrol, ditambah instruksi Li dan cache data. Selain berapa core,

chip multicore kontemporer juga termasuk L2 cache dan, dalam beberapa kasus, L3 cache.

Tujuan

Bab ini memberikan ikhtisar tentang multicore systems. Saat memulai dengan melihat

faktor-faktor kinerja perangkat keras yang menyebabkan perkembangan komputer

multicore dan perangkat lunak tantangan memanfaatkan kekuatan sistem multicore.

Selanjutnya, kita melihat multicore organisasi. Akhirnya, kami memeriksa dua contoh

produk multicore, dari Intel dan ARM.

Background

Sebuah multicore komputer, atau chip multiprosesor, menggabungkan dua atau

lebih prosesor pada sebuah chip komputer tunggal.

Lain keputusan desain organisasi dalam sistem multicore adalah apakah inti

individu akan superscalar atau akan menerapkan simultan multithreading (SMT).

Di sisi lain, arsitektur multicore menimbulkan tantangan untuk perangkat lunak

pengembang untuk mengeksploitasi kemampuan untuk multithreading di beberapa

core.

Page 3: Modul Pembelajaran Bab 15

A. Hardware Performance Issues

Peningkatan system mikroprosesor selama beberapa decade ini sangat stabil .

Gambar dibawah menunjukkan bahwa ini peningkatan ini disebabkan sebagian perbaikan

dalam organisasi prosesor pada chip, dan sebagian untuk peningkatan frekuensi clock.

Page 4: Modul Pembelajaran Bab 15

Increase In Paralelism

o Pipelining : Instruksi individu dieksekusi melalui tahap pipelining sehingga

sementara satu instruksi dalam satu panggung mengeksekusi dari pipelining,

instruksi lain mengeksekusi di tahap pipelining lain.

o Superscalar : Multiple Pipelines dibangun oleh sumber daya eksekusi replikasi.

Hal ini memungkinkan eksekusi paralel instruksi dalam multiple pipelines,

sehingga bahaya dapat dihindari.

o Simultaneous Multithreading : Register bank yang direplikasi sehingga

beberapa thread dapat berbagi penggunaan sumber daya pipeline.

Power Consumption

Salah satu cara untuk mengontrol densitas daya adalah dengan menggunakan lebih

dari area chip untuk cache memori. Transistor memori lebih kecil dan memiliki kepadatan

daya urutan besarnya lebih rendah dari logika. Seperti Gambar dibawah menunjukkan,

Page 5: Modul Pembelajaran Bab 15

persentase area chip yang ditujukan untuk memori telah tumbuh melebihi 50% sebagai

kepadatan transistor chip yang telah meningkat.

Gambar dibawah menunjukkan di mana tren konsumsi daya terkemuka. Pada tahun

2015, kita dapat mengharapkan untuk melihat chip mikroprosesor dengan sekitar 100

miliar transistor pada setip 300mm2. Dengan asumsi sekitar 50-60% dari area chip

dikhususkan untuk memori, chip akan mendukung memori cache sekitar 100 MB dan

meninggalkan tersedia lebih dari 1 milyar untuk logika transistor.

Page 6: Modul Pembelajaran Bab 15

B. Software Performance Issues

Pemeriksaan rinci tentang masalah perangkat lunak terkait dengan kinerja

organisasi multicore berada di luar lingkup kita. Pada bagian ini, kita pertama memberikan

gambaran dari masalah, dan kemudian melihat sebuah contoh dari sebuah aplikasi yang

dirancang untuk mengeksploitasi kemampuan multicore.

Software on Multicore

Kinerja manfaat potensial dari sebuah organisasi multicore tergantung pada

kemampuan untuk secara efektif memanfaatkan sumber daya paralel yang tersedia untuk

aplikasi. Marilah kita fokus pertama pada satu aplikasi yang berjalan pada sistem

multicore. ingat bahwa hukum Amdahl menyatakan bahwa:

“Selain tujuan umum perangkat lunak server, sejumlah kelas aplikasi manfaat langsung

dari kemampuan untuk skala throughput dengan jumlah core.”

Beberapa contoh sebagai berikut:

Multithreaded native applications : Aplikasi multithreaded dicirikan dengan

memiliki sejumlah kecil proses yang sangat threaded. Contoh aplikasi

threaded termasuk Lotus Domino atau Siebel CRM (Customer Relationship

Manajer).

Multiprocess applications : Aplikasi multiprocess dicirikan oleh kehadiran

banyak single-threaded proses. Contoh aplikasi multi-proses termasuk

database Oracle, SAP, dan PeopleSoft.

Java applications : Aplikasi Java merangkul threading secara mendasar.

Tidak hanya bahasa Java sangat memudahkan aplikasi multithreaded, tapi

Java Virtual Machine adalah proses multithreaded yang menyediakan

penjadwalan dan memori manajemen untuk aplikasi Java. Aplikasi Java

dapat manfaat langsung dari sumber multicore termasuk server aplikasi

seperti Sun Java Application Server, BEA Weblogic, IBM Websphere, dan

open source server aplikasi Tomcat. Semua aplikasi yang menggunakan

Page 7: Modul Pembelajaran Bab 15

Java 2 Platform, Enterprise Edition (J2EE platform) aplikasi server dapat

langsung manfaat dari teknologi multicore.

Multiinstance applications : Bahkan jika sebuah aplikasi individu tidak

skala mengambil keuntungan dari sejumlah threads, masih mungkin untuk

memperoleh keuntungan dari arsitektur multicore dengan menjalankan

beberapa contoh aplikasi secara paralel. Jika contoh beberapa aplikasi

membutuhkan beberapa derajat isolasi, virtualisasi teknologi (untuk

perangkat keras dari sistem operasi) dapat digunakan untuk memberikan

masing-masing dari mereka dengan lingkungan sendiri yang terpisah dan

aman.

Dari perspektif Valve, pilihan granularity threading didefinisikan sebagai berikut :

Coarse threading : modul individu, yang disebut sistem, yang ditugaskan untuk

individu prosesor. Dalam kasus mesin Sumber, ini berarti menempatkan render

pada satu prosesor, AI (kecerdasan buatan) dan lainnya. Ini sangat mudah. Pada

dasarnya, setiap modul utama adalah single threaded dan prinsip koordinasi

melibatkan sinkronisasi semua thread dengan timeline thread.

Fine-grained threading: Task yang serupa dan banyak tersebar di beberapa

prosesor. Sebagai contoh, sebuah loop yang iteritas melalui array data dapat dibagi

kedalam jumlah loop paralel yang lebih kecil di thread individu yang dapat

dijadwalkan secara paralel.

Hybrid threading: Ini melibatkan penggunaan selektif fine-grained threading untuk

beberapa sistem dan single threading untuk sistem lain.

Dalam hirarki struktur, tingkat thread yang lebih tinggi menelurkan tingkat rendah

thread yang diperlukan. Para modul render bergantung pada bagian penting dari mesin

Sumber, world lists, yang merupakan representasi database dari elemen-elemen visual di

dunia game. yang pertama. Task adalah untuk menentukan apa saja daerah di dunia yang

perlu diberikan. Task berikutnya adalah untuk menentukan apa objek dalam adegan yang

dilihat dari berbagai sudut. Kemudian datang kerja prosesor yang intensif.

Page 8: Modul Pembelajaran Bab 15

C. Multicore Organization

Pada tingkat atas deskripsi, variabel utama dalam sebuah organisasi multicore

adalah sebagai berikut:

• Jumlah core pada chip

• Jumlah tingkat memori cache

• Jumlah memori cache yang dibagi

Gambar diatas menunjukkan empat organisasi umum untuk multicore systems.

Gambar (a) adalah sebuah organisasi ditemukan di beberapa sebelumnya multicore

chip komputer dan masih terlihat dalam tertanam chip. Dalam organisasi ini, cache on-chip

hanya L1 cache, dengan masing-masing inti memiliki L1 cache sendiri khusus nya.

Hampir selalu, L1 cache dibagi menjadi instruksi dan data contoh caches. 0rganisasi ini

adalah MPCore ARM11. 0rganisasi Gambar (b) juga merupakan salah satu di mana tidak

ada cache on-chip berbagi. Dalam hal ini, ada cukup area yang tersedia pada chip untuk

memungkinkan L2 cache. Contoh organisasi ini adalah AMD 0pteron. Gambar (c)

menunjukkan alokasi yang sama ruang chip untuk memori, tetapi dengan menggunakan

cache L2 yang berbagi. Intel Core Duo memiliki organisasi ini. Akhirnya, sebagai jumlah

Page 9: Modul Pembelajaran Bab 15

memori cache yang tersedia pada chip terus tumbuh, pertimbangan kinerja mematikan

mendikte membelah, berbagi L3 cache, dengan L1 cache L2 yang berdedikasi dan untuk

setiap prosesor inti. Intel Core i7 adalah contoh dari organisasi ini.

Penggunaan cache L2 yang terbagi pada chip ini memiliki beberapa keunggulan

dibandingkan ketergantungan pada cache didedikasikan:

1. Interferensi konstruktif dapat mengurangi tingkat keseluruhan miss rates.

Artinya, jika thread pada satu inti mengakses lokasi memori utama, ini

membawa frame yang berisi lokasi direferensikan ke dalam cache bersama.

Jika sebuah thread pada inti lain segera setelah mengakses blok memori

yang sama, lokasi memori sudah akan tersedia dalam cache on-chip

bersama.

2. Sebuah keuntungan yang terkait adalah bahwa data yang dibagi oleh

beberapa core tidak direplikasi di berbagai cache level.

3. Dengan algoritma penggantian bingkai yang tepat, jumlah shared cache

yang dialokasikan untuk masing-masing inti adalah dinamis, sehingga

benang yang memiliki lokalitas yang kurang dapat menggunakan cache

lagi.

4. Komunikasi interprocessor mudah untuk menerapkannya, yaitu melalui

lokasi memori bersama.

5. Penggunaan batas L2 cache koherensi cache yang berbagi masalah

untuktingkat cache L1, yang dapat memberikan beberapa keunggulan

kinerja tambahan.

D. Intel x86 Multicore Organization

Intel telah memperkenalkan sejumlah produk multicore dalam beberapa tahun

terakhir. Pada bagian ini, kita melihat dua contoh: Intel Core Duo dan Intel Core i7.

Intel Core Duo

Struktur umum dari Intel Core Duo adalah ditunjukkan pada Gambar dibawah.

Marilah kita mempertimbangkan unsur-unsur kunci yang dimulai dari bagian atas gambar.

Page 10: Modul Pembelajaran Bab 15

Seperti biasa terjadi di multicore sistem, masing-masing inti memiliki L1 cache sendiri

khusus nya. Dalam hal ini, masing-masing inti memiliki 32-KB instruksi cache dan 32-KB

data cache.

Elemen kunci berikutnya dari organisasi Core Duo adalah Advanced

Programmable Interrupt Controller (APIC). APIC ini melakukan sejumlah fungsi,

termasuk yang berikut:

a) APIC dapat memberikan interrupt interprocessor, yang memungkinkan

setiap proses untuk mengganggu prosesor lain atau set processors. Dalam

kasus Core Duo, thread dalam satu inti dapat menghasilkan interupsi, yang

diterima oleh local APIC ini, diarahkan untuk APIC inti lainnya, dan

dikomunikasikan sebagai sebuah interupsi ke inti lainnya.

b) APIC menerima interupsi I / 0 dan rute ini untuk inti yang sesuai.

c) Setiap APIC termasuk timer, yang dapat diatur oleh 0S untuk menghasilkan

interupsi ke inti lokal.

Logika manajemen daya bertanggung jawab untuk mengurangi konsumsi daya bila

mungkin, sehingga meningkatkan masa pakai baterai untuk platform mobile, seperti

Page 11: Modul Pembelajaran Bab 15

laptop. Dalam Intinya, logika manajemen daya monitor kondisi termal dan aktivitas CPU

dan menyesuaikan level tegangan dan konsumsi daya tepat. Ini mencakup maju power-

gating kemampuan yang memungkinkan untuk kontrol ultra fine-grained logic yang

berubah pada subsistem logika prosesor individu hanya jika dan ketika mereka dibutuhkan.

Intel i7

Struktur umum dari Intel Core i7 ditunjukkan pada Gambar berikut. Setiap inti

memiliki cache L2 sendiri khusus nya dan empat core berbagi cache 8-MB L3. Satu Intel

menggunakan mekanisme untuk membuat cache yang lebih efektif yaitu prefetching.

Chip Core i7 mendukung dua bentuk komunikasi eksternal untuk chip lainnya.

Controller memori DDR3 membawa memory controller untuk memory DDR utama ke

interface chip. Interface mendukung tiga saluran yang adalah 8 byte lebar untuk lebar bus

i92 bit total, dengan tingkat data agregat hingga 32 GB / s. Dengan memory controller

pada chip, Front Side Bus dihilangkan.

QuickPath Interconnect (QPI) adalah cache-coherent, point-to-point link

berdasarkan spesifikasi interkoneksi listrik untuk prosesor Intel dan chipset. hal ini

memungkinkan komunikasi berkecepatan tinggi antara chip prosesor yang terhubung. QPI

Page 12: Modul Pembelajaran Bab 15

Link beroperasi pada 6,4 GT / s (transfer per detik). Pada i6 bit per transfer, yang

menambahkan sampai i2,8 GB / s, dan karena QPI link bidirectional melibatkan pasangan

yang saling berdedikasi, total bandwidth adalah 25,6 GB / s.

E. ARM11 MPCore

ARM11 MPCore adalah produk multicore didasarkan pada keluarga prosesor

ARMii. ARM11 MPCore dapat dikonfigurasi hingga empat prosesor, masing-masing

dengan instruksi L1 sendiri dan data cache per keping. Dibawah ini berisi opsi-opsi

konfigurasi untuk sistem, termasuk nilai-nilai default.

Elemen-elemen penting dari sistem adalah sebagai berikut:

o Distributed interrupt controller (DIC): Menangani deteksi interrupt dan prioritas

interrupt. DIC mendistribusikan interrupts untuk prosesor individu.

o Timer: CPU Masing-masing memiliki waktu pribadi yang dapat menghasilkan

interupsi.

o Watchdog: Isu tanda peringatan dalam hal kegagalan perangkat lunak. Jika

watchdog diaktifkan, sudah diatur ke nilai yang telah ditentukan dan menghitung

Page 13: Modul Pembelajaran Bab 15

mundur ke 0. Hal ini secara berulang. Jika nilai watchdog mencapai nol, peringatan

dikeluarkan.

o CPU interface: Menangani interupsi pengakuan, masking mengganggu, dan

menyelesaikan interupsi.

o CPU: Sebuah prosesor ARM11 tunggal. CPU individu disebut sebagai MP11 CPU.

o Vector floating-point (VFP) unit: Sebuah Coprocessor yang mengimplementasikan

floating point operasi di hardware.

o L1 cache:Setiap CPU mempunyai data cache L1 sendiri yang berdedikasi dan L1

cache instruksi.

Interrupt Handling

Distributed Interrupt Controller (DIC) interupsi dari sejumlah besar sumber. Ini

menyediakan:

Masking interrupt

Prioritas dari interupsi

Distribusi menyela dengan target CPu Mpii

Pelacakan status interupsi

Generasi interupsi oleh perangkat lunak

DIC ini dirancang untuk memenuhi dua persyaratan fungsional:

Menyediakan sarana routing permintaan interupsi ke CPu tunggal atau beberapa

CPU, seperti yang diperlukan.

Menyediakan sarana komunikasi interprocessor sehingga thread pada satu CPU

dapat menyebabkan aktivitas oleh thread pada CPU lain.

DIC dapat melakukan rute interupsi ke satu atau lebih CPU dalam tiga cara berikut:

Sebuah interupsi dapat diarahkan ke prosesor tertentu saja.

Sebuah interupsi dapat diarahkan kepada sekelompok didefinisikan prosesor.

MPCore yang views prosesor pertama untuk menerima interrupt, biasanya yang

paling tidak dimuat, sebagai prosesor yang menjadi posisi terbaik untuk

menangani interrupt.

Page 14: Modul Pembelajaran Bab 15

Sebuah interupsi dapat diarahkan untuk semua prosesor.

Dari sudut pandang CPu MPii, interrupt dapat:

Inactive: Sebuah interupsi tidak aktif adalah salah satu yang nonasserted, atau yang

dalam suatu multiprocessing lingkungan telah sepenuhnya diproses oleh CPu itu

tetapi dapat masih berupa Pending atau Active di beberapa CPu untuk yang

ditargetkan, sehingga tidak mungkin telah dibersihkan pada sumber interrupt.

Pending: Sebuah interupsi pending adalah salah satu yang telah menegaskan, dan

yang memproses belum dimulai pada CPu itu.

Active: Sebuah interupsi aktif adalah salah satu yang telah dimulai pada CPu itu,

tapi proses tidak selesai. Interupsi active dapat mendahului interupsi baru yang

prioritasnya lebih tinggi dan menyela interupsi pemrosesan CPu MPii.

Interupsi berasal dari sumber-sumber berikut:

interprocessor interrupts (IPIs): Masing-masing memiliki CPu pribadi, ID0-IDi5,

yang hanya dapat dipicu oleh perangkat lunak. Prioritas dari IPI tergantung pada

menerima CPu, bukan CPu pengiriman.

Private timer and/or watchdog interrupts: interrupt ini menggunakan ID 29 dan 30.

Legacy FIQ line: Dalam mode IRQ warisan, warisan FIQ pin, pada basis CPu per,

bypasses logika Distributor

Interrupt dan langsung drive permintaan interupsi ke CPu.

Hardware interrupt: interrupt Hardware dipicu oleh diprogram peristiwa pada baris

masukan interupsi terkait. CPu dapat mendukung sampai 224 interupsi masukan

baris. Interupsi perangkat keras mulai dari ID32.

Page 15: Modul Pembelajaran Bab 15

Cache Coherency

Direct data intervention (DDI) memungkinkan menyalin data yang bersih dari satu

CPu L1 data cache ke L1 cache CPu mengakses data tanpa memori eksternal. Ini

mengurangi aktivitas membaca setelah membaca dari cache 1 Tingkat ke Tingkat 2 cache.

Ini sebuah lokal L1 cache miss diselesaikan dalam cache L1 jauh bukan dari akses ke

berbagi L2 cache.

Ingat bahwa lokasi memori utama setiap baris dalam cache diidentifikasi oleh tag

untuk bahwa tag line. Tags dapat diimplementasikan sebagai sebuah blok yang terpisah

dari RAM yang sama panjang sebagai jumlah baris dalam cache. Dalam SCu, RAM tag

digandakan yang diduplikasi L1 RAM versi tag yang digunakan oleh SCU untuk

memeriksa ketersediaan data sebelum mengirim perintah ke CPU koherensi yang relevan.

Perintah koherensi yang dikirim hanya untuk CPU yang harus memperbarui data mereka

cache. Koheren ini mengurangi daya konsumsi dan dampak kinerja dari mengintip ke

dalam dan memanipulasi masing-masing prosesor cache pada setiap update memori.

Setelah tag data tersedia secara lokal memungkinkan SCU manipulasi Cache batas untuk

prosesor yang memiliki kesamaan baris cache.

Fitur jalur migrasi memungkinkan data kotor bergerak dari satu CPU yang lain tanpa

menulis ke L2 dan membaca data kembali dari operasi eksternal memory. Operasinya

Page 16: Modul Pembelajaran Bab 15

dapat digambarkan sebagai berikut. Dalam sebuah protokol khas MESI, satu prosesor

diubah line dan prosesor lain mencoba membaca baris itu, tindakan berikut terjadi:

1. Isi line ditransfer dari garis dimodifikasi untuk prosesor yang memulai membaca.

2. Isi line dibaca kembali ke memori utama.

3. Garis adalah dimasukkan ke dalam state yang sama di kedua cache.

Intel Core i dan Block Diagram

Intel Core Duo Block Diagram

Page 17: Modul Pembelajaran Bab 15

Efek Performa dari Multiple Core