Apa perbedaan antara hyper-threading dan multiple core?

42

Dalam percakapan dengan administrator jaringan, saya menyebutkan bahwa mesin saya adalah dual-core. Dia bilang itu tidak. Saya membuka task manager, pergi ke tab kinerja, dan menunjukkan kepadanya bahwa ada dua grafik penggunaan CPU yang terpisah. Saya memiliki mesin quad-core di rumah dan memiliki empat grafik. Dia mengatakan ada dua grafik pada mesin ini karena hyper-threading. Saya dulu memiliki prosesor pentium 4 hyper-thread kembali pada hari itu, tetapi saya tidak pernah sepenuhnya mengerti apa artinya. Jadi apa perbedaan antara hyper threading dan dual-core? Dan bagaimana Anda tahu mana yang Anda miliki?

Josh Stodola
sumber

Jawaban:

20

Hyper-threading memaparkan beberapa inti logis untuk satu inti CPU fisik . Secara sederhana, hyper-threading membuat pengalihan konteks lebih efisien untuk setiap inti CPU.

Chip dual-core, di sisi lain, sebenarnya memiliki dua core CPU fisik yang dapat menjalankan berbagai proses secara bersamaan.

Ada juga chip multi-core lain yang memiliki lebih dari dua core, dan - seperti yang disebutkan Svish - penawaran multi-core terbaru Intel juga mendukung Hyper-threading pada semua core.

Anda dapat menggunakan utilitas identifikasi CPU seperti CPU-Z untuk menentukan berapa banyak inti yang Anda miliki. Seperti yang dapat Anda lihat di dekat bagian bawah tangkapan layar, CPU dalam kasus ini memiliki 2 inti fisik. Jika jumlah utas lebih tinggi dari jumlah inti, Hyper-threading diaktifkan. Untuk saat ini semua CPU yang berorientasi konsumen dengan Hyper-threading memiliki 2 utas per inti, jadi jika HT diaktifkan, jumlah utas akan 2x jumlah inti.

masukkan deskripsi gambar di sini

Jika Anda memiliki CPU Intel, Anda dapat mengunduh utilitas CPU ID Intel .

rampok
sumber
Dan chip multi-core yang mendukung hyper-threading sehingga Anda mendapatkan dua kali jumlah core logis.
Svish
Terima kasih! Bagaimana saya tahu (dari dalam OS) jenis CPU apa yang saya miliki?
Josh Stodola
3
UltraSparc T2 + memiliki 8 Cores, yang masing-masing mendukung 8 thread menjadikannya 64 CPU virtual pada satu chip: en.wikipedia.org/wiki/UltraSPARC_T2
jlliagre
Cara mengetahui CPU yang Anda miliki tergantung pada OS yang Anda jalankan.
jlliagre
@ jilliagre: bagus!
merampok
16

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

Maksud dari hyperthreading adalah berkali-kali ketika Anda mengeksekusi kode dalam prosesor, ada bagian prosesor yang idle. Dengan memasukkan satu 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.

Lihat juga: Pertanyaan ini

Earlz
sumber
6

Hyperthreading adalah alternatif yang lebih murah dan lebih lambat untuk memiliki dual-core

The Intel Pedoman Volume 3 Panduan Sistem Pemrograman - 325384-056US September 2015 8,7 "INTEL Teknologi Hyper-Threading ARSITEKTUR" menggambarkan HT singkat. Ini berisi diagram berikut:

masukkan deskripsi gambar di sini

TODO itu lebih lambat oleh berapa persen rata-rata dalam aplikasi nyata?

Hyperthreading dimungkinkan karena core CPU tunggal modern sudah menjalankan banyak instruksi sekaligus dengan pipa instruksi https://en.wikipedia.org/wiki/Instruction_pipelining

Pipa instruksi adalah pemisahan fungsi di dalam inti tunggal untuk memastikan bahwa setiap bagian dari sirkuit digunakan pada waktu tertentu: membaca memori, instruksi decoding, instruksi pelaksanaan, dll.

Hyperthreading memisahkan fungsi lebih lanjut dengan menggunakan:

  • backend tunggal, yang benar-benar menjalankan instruksi dengan pipanya.

    Dual core memiliki dua backend, yang menjelaskan biaya dan kinerja yang lebih besar.

  • dua ujung depan, yang mengambil dua aliran instruksi dan memesannya dengan cara untuk memaksimalkan penggunaan pipa backend tunggal dengan menghindari bahaya .

    Dual core juga akan memiliki 2 ujung depan, satu untuk setiap backend.

    Ada kasus-kasus tepi di mana penataan ulang instruksi tidak menghasilkan manfaat, sehingga membuat hipertensi tidak berguna. Tetapi menghasilkan peningkatan yang signifikan dalam rata-rata.

Dua hyperthread dalam satu inti berbagi tingkat cache lebih lanjut (TODO berapa banyak? L1?) Dari dua core yang berbeda, yang hanya berbagi L3, lihat:

Antarmuka yang diekspos oleh masing-masing hyperthread ke sistem operasi mirip dengan inti aktual, dan keduanya dapat dikontrol secara terpisah. Dengan demikian cat /proc/cpuinfomenunjukkan kepada saya 4 prosesor, meskipun saya hanya memiliki 2 core dengan masing-masing 2 hyperthreads.

Namun sistem operasi dapat mengambil keuntungan dari mengetahui hyperhread mana yang berada pada inti yang sama untuk menjalankan beberapa utas dari program yang diberikan pada satu inti, yang dapat meningkatkan penggunaan cache.

Video LinusTechTips ini berisi penjelasan non-teknis yang menyenangkan: https://www.youtube.com/watch?v=wnS50lJicXc

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
sumber
1
Apakah Anda akan menjawab pertanyaan "TODO" Anda?
pacoverflow
1
@pacoverflow jika suatu hari saya mempelajari jawabannya, atau jika seseorang akan mengedit jawaban untuk saya :-)
Ciro Santilli 新疆 改造 中心 法轮功 事件 事件