Anda di halaman 1dari 7

MULTICORE COMPUTER

Struktur dan Arsitektur


Rosihan Asamara dan Nuhfil Hanani Sosial Ekonomi Pertanian, Fakultas Pertanian, Universitas Brawijaya, Email : dl@ub.ac.id

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 L1 dan cache data. Selain berapa core, chip multicore kontemporer juga termasuk L2 cache dan, dalam beberapa kasus, L3 cache.

MODUL

18
SELF-PROPAGATING ENTREPRENEURIAL EDUCATION DEVELOPMENT (SPEED)

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.

Mata Kuliah / Materi Kuliah

Brawijaya University

2011

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
Pipelining : Instruksi individu dieksekusi melalui tahap pipelining sehingga sementara satu instruksi dalam satu panggung mengeksekusi dari pipelining, instruksi lain mengeksekusi di tahap pipelining lain.

Superscalar : Multiple Pipelines dibangun oleh sumber daya eksekusi replikasi. Hal ini memungkinkan eksekusi paralel instruksi dalam multiple pipelines, sehingga bahaya dapat dihindari. 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.

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
Page 2 of 7

Mata Kuliah / Materi Kuliah

Brawijaya University

2011

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.

Gambar berikut mengilustrasikan struktur thread untuk modul render.

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.

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
Page 3 of 7

Mata Kuliah / Materi Kuliah

Brawijaya University

2011

cache sendiri khusus nya. Hampir selalu, L1 cache dibagi menjadi instruksi dan data contoh caches. Organisasi ini adalah MPCore ARM11. Organisasi 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 Opteron. 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.

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: 1. 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. 2. APIC menerima interupsi I / O dan rute ini untuk inti yang sesuai. 3. Setiap APIC termasuk timer, yang dapat diatur oleh OS 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
Page 4 of 7

Mata Kuliah / Materi Kuliah

Brawijaya University

2011

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 192 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 16 bit per transfer, yang menambahkan sampai 12,8 GB / s, dan karena QPI link bidirectional melibatkan pasangan yang saling berdedikasi, total bandwidth adalah 25,6 GB / s.

ARM11 MPCore
ARM11 MPCore adalah produk multicore didasarkan pada keluarga prosesor ARM11. 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: - Distributed interrupt controller (DIC): Menangani deteksi interrupt dan prioritas interrupt. DIC mendistribusikan interrupts untuk prosesor individu. - Timer: CPU Masing-masing memiliki waktu pribadi yang dapat menghasilkan interupsi. - 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.

CPU interface: Menangani interupsi pengakuan, masking mengganggu, dan menyelesaikan interupsi. CPU: Sebuah prosesor ARM11 tunggal. CPU individu disebut sebagai MP11 CPU. Vector floating-point (VFP) unit: Sebuah Coprocessor yang mengimplementasikan floating point operasi di hardware. 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 MP11 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.
Page 5 of 7

Mata Kuliah / Materi Kuliah

Brawijaya University

2011

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 MP11, 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 MP11. Interupsi berasal dari sumber-sumber berikut: interprocessor interrupts (IPIs): Masing-masing memiliki CPU pribadi, ID0-ID15, 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.

Page 6 of 7

Mata Kuliah / Materi Kuliah

Brawijaya University

2011

Page 7 of 7

Anda mungkin juga menyukai