Multithreading secara bersamaan
Multithreading simultan, akronim SMT, adalah teknik untuk meningkatkan efisiensi keseluruhan CPU superskalar dengan Hardware multithreading. SMT mengizinkan beberapa thread eksekusi independen untuk memanfaatkan sumber daya yang disediakan oleh arsitektur komputer modern dengan lebih baik.
Multithreading mirip dengan konsep multitasking tetapi diimplementasikan pada tingkat eksekusi thread dalam prosesor superskalar modern.
Dalam desain prosesor, ada dua cara untuk meningkatkan paralelisme on-chip dengan kebutuhan sumber daya yang lebih sedikit:
- Teknik Superscalar: yang mencoba meningkatkan paralelisme tingkat Instruksi (ILP) dengan mengeksekusi beberapa instruksi pada saat yang sama (diistilahkan: secara bersamaan); dengan "secara bersamaan" mengirimkan instruksi (diistilahkan: instruction dispatching) ke beberapa unit eksekusi yang berlebihan yang dibangun di dalam prosesor.
- Teknik Chip-level multithreading (CMT): menggunakan Thread level parallelism (TLP) untuk mengeksekusi instruksi dari beberapa thread dalam satu chip prosesor pada saat yang bersamaan.
Ada banyak cara untuk mendukung lebih dari satu thread di dalam chip, yaitu:
- Multithreading yang disisipkan (IMT): Interleaved issue dari beberapa instruksi dari thread yang berbeda, juga disebut sebagai Temporal multithreading. Hal ini dapat dibagi lagi menjadi fine-grain multithreading atau coarse-grain multithreading tergantung pada frekuensi masalah interleaved. Fine-grain multithreading mengeluarkan instruksi untuk thread yang berbeda setelah setiap siklus, sementara coarse-grain multithreading hanya beralih untuk mengeluarkan instruksi dari thread lain ketika thread yang sedang dieksekusi saat ini menyebabkan beberapa peristiwa latensi yang panjang (seperti kesalahan halaman, dll.). Multithreading coarse-grain lebih umum untuk peralihan konteks yang lebih sedikit di antara thread. Untuk prosesor dengan satu pipeline per core, interleaved multithreading adalah satu-satunya cara yang memungkinkan, karena hanya dapat mengeluarkan hingga satu instruksi per siklus.
- Multithreading simultan (SMT): Mengeluarkan beberapa instruksi dari beberapa thread dalam satu siklus. Prosesor harus superskalar untuk melakukannya.
- Chip-level multiprocessing (CMP atau Multi-core processor): mengintegrasikan dua atau lebih prosesor superskalar ke dalam satu chip, masing-masing mengeksekusi thread secara independen.
- Kombinasi apa pun dari IMT/SMT/CMP
Faktor kunci untuk membedakannya adalah dengan melihat berapa banyak instruksi yang dapat dikeluarkan prosesor dalam satu siklus dan berapa banyak thread dari mana instruksi tersebut berasal.
Contoh CPU SMT modern
- Intel Pentium 4 adalah prosesor desktop modern pertama yang mengimplementasikan multithreading secara simultan, mulai dari model 3,06GHz yang dirilis pada tahun 2002, dan sejak diperkenalkan ke sejumlah prosesor mereka. Intel menyebut fungsionalitas tersebut sebagai Hyper-Threading Technology (HTT), dan menyediakan mesin SMT dua thread dasar. Intel mengklaim peningkatan kecepatan hingga 30% dibandingkan dengan Pentium 4 non-SMT yang identik.
- Desain arsitektur MIPS terbaru mencakup sistem SMT yang dikenal sebagai "MIPS MT".
- IBM POWER5, yang diumumkan pada bulan Mei 2004, hadir dalam bentuk DCM dual core, atau MCM quad-core atau 8-core, dengan masing-masing core termasuk mesin SMT dua thread. Implementasi IBM lebih canggih daripada yang sebelumnya, karena dapat menetapkan prioritas yang berbeda untuk berbagai thread, lebih berbutir halus, dan mesin SMT dapat dinyalakan dan dimatikan secara dinamis, untuk mengeksekusi beban kerja yang lebih baik di mana prosesor SMT tidak akan meningkatkan kinerja. Ini adalah implementasi kedua IBM dari multithreading perangkat keras yang tersedia secara umum.
- Intel Atom, dirilis pada tahun 2008, adalah produk Intel pertama yang memiliki fitur SMT (dipasarkan sebagai Hyper-threading) tanpa mendukung penyusunan ulang instruksi, eksekusi spekulatif, atau penggantian nama register.
Halaman terkait
- Thread (ilmu komputer)
- Komputasi paralel
- Paralelisme tingkat instruksi
- Prosesor multi-inti
Pertanyaan dan Jawaban
T: Apa yang dimaksud dengan multithreading simultan?
J: Multithreading simultan (SMT) adalah teknik untuk meningkatkan efisiensi keseluruhan CPU superskalar dengan multithreading perangkat keras. Teknik ini memungkinkan beberapa thread eksekusi independen untuk memanfaatkan sumber daya yang disediakan oleh arsitektur komputer modern dengan lebih baik.
T: Bagaimana SMT dibandingkan dengan multitasking?
J: Multithreading memiliki konsep yang mirip dengan multitasking, tetapi diimplementasikan pada tingkat eksekusi thread di prosesor superskalar modern, sedangkan multitasking diimplementasikan pada tingkat proses.
T: Apa saja dua cara untuk meningkatkan paralelisme dalam chip?
J: Dua cara untuk meningkatkan paralelisme dalam chip adalah teknik Superscalar dan Chip-level multithreading (CMT).
T: Apa saja jenis multithreading tingkat chip yang berbeda?
J: Berbagai jenis multithreading tingkat chip termasuk Interleaved Multithreading (IMT), Multithreading Butir Halus, Multithreadin Butir Kasar, dan Multithreadin Simultan (SMT).
T: Bagaimana Anda bisa membedakan antara IMT/SMT/CMP?
J: Faktor kunci untuk membedakan antara IMT/SMT/CMP adalah dengan melihat berapa banyak instruksi yang dapat dikeluarkan prosesor dalam satu siklus dan berapa banyak thread dari mana instruksi tersebut berasal.
T: Jenis prosesor apa yang harus digunakan untuk SMT?
J: Untuk SMT, prosesor superskalar harus digunakan.
T: Jenis prosesor apa yang digunakan oleh Chip Level MultiProcessing?
J: Chip Level MultiProcessing menggunakan prosesor multi-core yang mengintegrasikan dua atau lebih prosesor superskalar ke dalam satu chip, masing-masing menjalankan utas secara independen.