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
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.
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.
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,
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.
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
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.
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
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.
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
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
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
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.
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.
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
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
Efek Performa dari Multiple Core