Apa itu hyper-threading dan bagaimana cara kerjanya?

33

Saya pernah mendengar istilah hyper-threading yang dilemparkan sedikit baru-baru ini, apa sebenarnya hyper-threading dan mengapa itu penting?

Gordon Gustafson
sumber
vs multi inti: superuser.com/questions/133082/…
Ciro Santilli 新疆改造中心 六四事件 法轮功

Jawaban:

24

Hyper-threading adalah tempat prosesor Anda berpura-pura memiliki 2 inti prosesor fisik, namun hanya memiliki 1 dan beberapa sampah tambahan.

Inti dari hyphreading adalah berkali-kali ketika Anda mengeksekusi kode dalam prosesor, ada bagian prosesor yang idle. Dengan memasukkan set register CPU tambahan, prosesor dapat bertindak seperti memiliki dua inti dan dengan demikian menggunakan semua bagian prosesor secara paralel. Ketika 2 core keduanya perlu menggunakan satu komponen prosesor, maka satu inti tentu saja menunggu. Inilah sebabnya mengapa tidak dapat menggantikan prosesor dual-core dan semacamnya.

Earlz
sumber
5
+1 harus menambahkan bahwa hyper-threading khusus untuk penerapan SMT Intel, mis. prosesor SPARC memiliki bentuk yang berbeda dari SMT yang diimplementasikan tetapi dengan tujuan yang serupa.
sybreon
@ Earlz apakah Anda menyarankan agar prosesor menjalankan dua utas dengan membagi inti menjadi dua? atau sepertinya paralelisme yang dibuat pada kenyataannya hyperthreading menyebabkan prosesor beralih dari satu utas ke utas lainnya?
Doopy Doo
4
@DoopyDoo juga. Pada dasarnya prosesor memiliki dua "inti eksekusi", yang merupakan jalur untuk instruksi dan semacamnya dan juga memiliki dua set register dan hal-hal penting lainnya .. Perbedaan antara hyper-threading dan regular dual-core adalah bahwa ada beberapa hal yang TIDAK diduplikasi. Misalnya, mungkin hanya ada satu ALU. Jadi, ini akan berarti sementara prosesor dual-core dapat menambahkan dua set angka terpisah bersamaan pada saat yang sama, untuk prosesor hyper-threading harus membuat salah satu dari virtual-core menunggu sampai giliran dengan ALU. Dari Tentu saja, ini adalah contoh yang disederhanakan
Earlz
9

Hyper-Threading Di sinilah dua utas dapat berjalan pada satu inti ulir tunggal. Ketika sebuah utas pada inti yang dimaksud macet atau dalam kondisi berhenti, hyper-threading memungkinkan inti untuk bekerja pada utas kedua.

Hyper-threading membuat OS berpikir bahwa prosesor memiliki dua kali lipat jumlah core, dan sering menghasilkan peningkatan kinerja, tetapi hanya di wilayah 15-30% secara keseluruhan - meskipun dalam beberapa keadaan, sebenarnya mungkin ada hit kinerja (= & lt; 20%).

Saat ini, sebagian besar chip Atom dan semua i7 (dan chip yang setara dengan Xeon) memiliki hyper-threading, seperti halnya beberapa P4 sebelumnya. Dalam kasus Atom, ini merupakan upaya putus asa untuk meningkatkan kinerja tanpa meningkatkan konsumsi daya banyak; dalam kasus i7s, itu membedakan mereka dari berbagai chip i5.

Pekerjaan pemrosesan yang kompleks tidak akan mendapat banyak manfaat dari HT, tetapi tugas tertentu (sederhana, sangat banyak-utas), seperti pengkodean video, mendapat manfaat dari HT. Pada kenyataannya, tidak banyak di dalamnya ...

CJM
sumber
95% benar. Jika inti normal = A + B maka inti hyper-threading lebih seperti A + 2 x B. Mereka dapat mengeksekusi dua utas secara bersamaan selama kedua utas tidak membutuhkan A.
Vincent Vancalbergh
2

Untuk memperluas apa yang telah dikatakan, hyperthreading berarti bahwa satu inti CPU dapat mempertahankan dua konteks eksekusi yang terpisah dan dengan cepat beralih di antara mereka, secara efektif meniru dua core pada tingkat perangkat keras.

Anda mendapatkan manfaat kecepatan sedang untuk beban kerja multi-utas bila dibandingkan dengan inti tunggal normal. Namun, tidak ada bedanya dengan memiliki dua core independen. Dalam hal kinerja, Anda sebaiknya menganggapnya sebagai dorongan kecil dalam kinerja multi-utas pada satu inti daripada memiliki kinerja yang mendekati dua inti. Ukuran peningkatan kecepatan bervariasi sesuai dengan beban kerja - memang untuk beberapa beban kerja peningkatan kinerja cukup baik.

Inti hyperthreaded hanya memiliki satu unit eksekusi utama, tetapi bagian-bagian tertentu dari CPU yang terkait dengan instruksi siap untuk memproses dan mempertahankan keadaan eksekusi digandakan.

Core prosesor memiliki pipa instruksi - antrian instruksi di masa depan yang akan dieksekusi, yang terus diperbarui, siap untuk CPU untuk mengeksekusi instruksi di kepala antrian itu. CPU menggunakan ini untuk mengoptimalkan kecepatan eksekusi dengan melihat instruksi ini di masa depan dan melakukan beberapa pra-pemrosesan tingkat rendah yang sederhana jika memungkinkan (optimisasi tersebut termasuk "eksekusi tidak sesuai pesanan" dan "prediksi cabang").

Core Hyperthreaded memiliki pipa instruksi ganda, dan ini - bersama dengan set register kedua - adalah tempat Anda mendapatkan manfaat kecepatan untuk beban kerja multithreaded. Beralih antara konteks utas tidak membuang pipa atau register, dan pipa dan register untuk utas lainnya tetap siap dan "panas" sehingga mereka dapat dialihkan ke dan digunakan segera.

thomasrutter
sumber
2

Ketika Single Core dapat bertindak sebagai Dual Core

ini Hyperthreading

Secara terperinci

Implementasi Intel dari Multi-Threading Simultan dikenal sebagai Teknologi Hyper-Threading, atau Teknologi HT.

Teknologi HT membuat prosesor tunggal muncul, dari perangkat lunak
perspektif, sebagai beberapa prosesor logis. Ini memungkinkan sistem operasi dan aplikasi untuk menjadwalkan banyak   utas ke prosesor logis sebagai
mereka akan menggunakan sistem multiprosesor.


Hyperthreading memungkinkan Prosesor Tunggal untuk mengeksekusi dua utas secara bersamaan, tetapi tidak pada semua kondisi.

Hyperthreading tidak menggandakan kinerja suatu sistem, itu dapat meningkatkan kinerja dengan lebih baik memanfaatkan sumber daya idle yang mengarah ke throughput yang lebih besar untuk jenis beban kerja penting tertentu. Aplikasi yang berjalan pada satu prosesor logis dari core yang sibuk dapat mengharapkan sedikit lebih dari setengah dari throughput yang diperolehnya saat berjalan sendiri pada prosesor yang tidak mengalami hipertipik. Peningkatan kinerja Hyperthreading sangat tergantung pada aplikasi, dan beberapa aplikasi mungkin melihat penurunan kinerja dengan hyperthreading karena banyak sumber daya prosesor (seperti cache) dibagi antara prosesor logis.

Teknologi Intel Hyper-Threading membuat setiap inti dapat memiliki dua prosesor logis yang berbagi sebagian besar sumber daya inti, seperti cache memori dan unit fungsional

Fungsi utama

Hyperthreading adalah untuk meningkatkan jumlah instruksi independen dalam pipa; itu mengambil keuntungan dari arsitektur superscalar, di mana banyak instruksi beroperasi pada data terpisah secara paralel

Intel mengatakan bahwa hyper-threading sangat efisien karena menggunakan sumber daya yang jika tidak digunakan akan menganggur atau kurang dimanfaatkan.

Tautan:

Wikipedia
StackOverflow
Pemrograman Multi-Core Digital_Edition hal # 8

enter image description here

Intel Image

Johnny Blaze
sumber