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?
sumber
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
sumber
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:
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/cpuinfo
menunjukkan 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
sumber