Penamaan
MMX adalah resmi berarti initialism merek dagang oleh Intel secara tidak resmi, inisial telah
berbagai dijelaskan sebagai berdiri untuk ekstensi MultiMedia, Multiple Math
ekstensi, atauMatrix Math ekstensi.
AMD , dalam salah satu pertempuran pengadilan banyak dengan Intel, menghasilkan materi
pemasaran dari Intel menunjukkan bahwa MMX berdiri untuk "Matrix Math
Extensions". Karena initialism tidak bisa merek dagang, ini merupakan upaya untuk
membatalkan merek dagang Intel. Pada tahun 1997, Intel mengajukan gugatan terhadap
AMD dan Cyrix Corp untuk penyalahgunaan MMX merek dagang. AMD dan Intel
diselesaikan, dengan AMD mengakui MMX sebagai merek dagang yang dimiliki oleh Intel,
dengan Intel dan AMD hibah hak untuk menggunakan merek dagang MMX sebagai nama
teknologi, tetapi bukan nama prosesor.
Rincian teknis
Setiap register MMN memegang 64 bit ( mantissa -bagian dari penuh 80-bit FPU
pendaftaran). Penggunaan utama dari set instruksi MMX didasarkan pada konsep dikemas
tipe data, yang berarti bahwa alih-alih menggunakan seluruh register integer 64-bit tunggal,
dua bilangan bulat 32-bit, empat bilangan bulat 16-bit, atau delapan 8 -bit bilangan bulat
dapat diproses secara bersamaan.
Pemetaan MMX register ke register FPU yang ada membuatnya agak sulit untuk bekerja
dengan floating point dan data SIMD dalam aplikasi yang sama. Untuk memaksimalkan
kinerja, programmer sering digunakan prosesor secara eksklusif dalam satu modus atau yang
lain, menunda saklar relatif lambat antara mereka selama mungkin.
Karena tumpukan register FPU adalah 80 bit lebar, bagian atas 16 bit dari register tumpukan
pergi tidak digunakan di MMX, dan bit-bit yang siap untuk orang, membuat
mereka NaN atau tak terbatas itu dalam representasi floating point. Hal ini dapat digunakan
untuk memutuskan apakah konten register tertentu dimaksudkan sebagai floating point atau
data SIMD.
MMX hanya menyediakan operasi integer. Ketika awalnya dikembangkan, untuk Intel i860 ,
penggunaan bilangan bulat matematika masuk akal (baik 2D dan 3D diperlukan perhitungan
itu), tetapi sebagai kartu grafis yang melakukan banyak hal ini menjadi
umum, bulat SIMD dalam CPU menjadi agak berlebihan untuk aplikasi grafis. Di sisi
lain, aritmatika saturasi beroperasi di MMX secara signifikan dapat mempercepat
beberapa pemrosesan sinyal digital aplikasi.
Penerus
AMD, vendor mikroprosesor x86 bersaing, MMX Intel ditingkatkan dengan mereka
sendiri 3DNow! set instruksi. 3DNow paling dikenal untuk menambahkan presisi tunggal
(32-bit) dukungan floating-point ke SIMD instruksi-set, antara lain bilangan bulat dan
perangkat yang lebih umum.
Setelah MMX, ekstensi x86 utama berikutnya Intel adalah SSE , diperkenalkan dengan
keluarga Pentium-III (kira-kira setahun setelah 3DNow AMD! diperkenalkan.)
SSE membahas kekurangan inti MMX (ketidakmampuan untuk mencampur integer SIMD
ops dengan floating-point ops) dengan menciptakan 128-bit lebar register file baru (xmm0XMM7) dan instruksi SIMD baru untuk itu.Seperti 3DNow, SSE berfokus pada presisi
tunggal operasi floating-point (32-bit), operasi integer SIMD masih dilakukan dengan
menggunakan register MMX dan set instruksi. Namun, XMM baru mendaftar-file yang
diizinkan SSE SIMD-operasi untuk digabungkan secara bebas dengan baik MMX atau x87
FPU ops.
SSE2 , diperkenalkan dengan Pentium 4, lebih lanjut memperluas SIMD instruksi x86 set
dengan bilangan bulat (8/16/32 bit) dan double-presisi data dukungan floating-point untuk
register file XMM. SSE2 juga memungkinkan opcodes MMX menggunakan XMM
mendaftar operan, tetapi berakhir dukungan ini dengan SSE4 (dan baru-baru dengan SSE4.2 ,
diperkenalkan padamikroarsitektur Inti) Namun, karena dukungan prosesor untuk setiap
revisi SSE juga menyiratkan dukungan untuk MMX, penghapusan tidak membatasi jenis data
yang dapat digunakan oleh x86 SIMD.
Intel dan Marvell 's XScale mikroprosesor inti dimulai dengan PXA270 termasuk SIMD set
instruksi ekstensi ke inti ARM disebut iwMMXt yang fungsinya mirip dengan orang-orang
dari IA-32ekstensi MMX. iwMMXt singkatan dari "Intel Wireless MMX Technology". Ini
menyediakan operasi aritmatika dan logika pada 64-bit bilangan bulat (perangkat lunak dapat
memilih untuk bukan melakukan dua 32-bit, empat 16-bit atau delapan operasi 8-bit dalam
instruksi tunggal). Ekstensi berisi 16 register data dari 64-bit dan delapan register kontrol 32bit. Semua register diakses melalui standar arsitektur ARM coprocessor mekanisme
pemetaan. iwMMXt menempati coprocessors 0 dan 1 ruang, dan beberapa
yang opcodes bentrokan dengan opcodes perpanjangan sebelumnya floating-point, FPA.
Kemudian versi Marvell prosesor ARM 's mendukung WMMX (Wireless MMX) dan
WMMX2 (Wireless MMX2) dukungan.
Register
SSE awalnya menambah delapan baru 128-bit register dikenal sebagai xmm0 melalui
XMM7. The AMD64 ekstensi dari AMD (awalnya disebut x86-64) menambahkan delapan
register lanjut XMM8 melalui XMM15, dan ekstensi ini diduplikasi dalam 64
Intel arsitektur. Ada juga kontrol / status mendaftar 32-bit yang baru, MXCSR. Register
XMM8 melalui XMM15 hanya dapat diakses dalam mode operasi 64-bit.
Karena register 128-bit adalah negara Program tambahan bahwa sistem operasi harus
menjaga seluruh switch tugas , mereka dinonaktifkan secara default sampai sistem operasi
eksplisit memungkinkan mereka. Ini berarti bahwa OS harus tahu bagaimana menggunakan
FXSAVE dan instruksi FXRSTOR, yang merupakan pasangan diperpanjang instruksi yang
dapat menyimpan semua x86 dan register SSE negara sekaligus. Dukungan ini dengan cepat
ditambahkan ke semua sistem operasi utama IA-32.
CPU pertama yang mendukung SSE, yang Pentium III , berbagi sumber daya eksekusi antara
SSE dan FPU . Sementara dikompilasi aplikasi dapat interleave FPU dan instruksi SSE sideby-side, Pentium III tidak akan mengeluarkan FPU dan instruksi SSE di sama siklus
clock . Keterbatasan ini mengurangi efektivitas pipelining , tetapi register XMM terpisah
mengizinkan SIMD dan operasi floating point skalar untuk dicampur tanpa kinerja hit dari
MMX eksplisit / modus floating point switching.
Versi
SSE3 , juga disebut Prescott New Instructions (PNI), merupakan incremental upgrade
ke SSE2, menambahkan beberapa berorientasi DSP instruksi matematika dan beberapa
proses (benang) instruksi manajemen.
SSE4 adalah peningkatan besar lainnya, menambahkan instruksi dot produk, instruksi
integer tambahan, instruksi popcnt, dan banyak lagi.
XOP , FMA4 dan CVT16 adalah iterasi baru diumumkan oleh AMD pada bulan
Agustus 2007 dan direvisi pada Mei 2009.
AVX (Advanced Vector Extensions) adalah versi lanjutan dari SSE diumumkan oleh
Intel menampilkan jalur data melebar dari 128 bit ke 256 bit dan instruksi 3-operan (naik
dari 2). Intel merilis prosesor pada awal tahun 2011 dengan dukungan AVX. AVX
memerlukan dukungan dari sistem operasi. AVX tidak dapat dimanfaatkan pada sistem
operasi lama seperti Windows XP atau Windows Vista, bahkan jika CPU mendukung
AVX.
Intel dan AMD menawarkan aplikasi untuk mendeteksi ekstensi mendukung CPU
Anda.
The CPUID opcode adalah penolong instruksi prosesor (namanya berasal dari CPU
Identification) untuk arsitektur x86. Saat itu diperkenalkan oleh Intel pada tahun 1993
ketika memperkenalkan Pentium dan prosesor 486 SL Enhanced.
Pengguna aplikasi penyerapan ekstensi x86 telah lambat bahkan dengan telanjang minimum
dasar MMX dan dukungan SSE (dalam beberapa kasus) tidak didukung oleh aplikasi sekitar
10 tahun setelah ekstensi ini menjadi umum tersedia. Komputasi terdistribusi telah
mempercepat penggunaan ekstensi ini di masyarakat-dan ilmiah banyak aplikasi ilmiah
menolak untuk berjalan kecuali CPU mendukung SSE2 atau SSE3 .
Penggunaan beberapa revisi dari aplikasi untuk mengatasi banyak set yang berbeda dari
ekstensi yang tersedia adalah cara paling sederhana sekitar masalah optimasi ekstensi
x86. Software perpustakaan dan beberapa aplikasi telah mulai mendukung beberapa jenis
ekstensi mengisyaratkan bahwa penuh penggunaan instruksi x86 yang tersedia mungkin
akhirnya menjadi umum sekitar 5 sampai 15 tahun setelah instruksi awalnya diperkenalkan.
3. SSE2
SSE2, Streaming SIMD Extensions 2, adalah salah satu dari Intel SIMD (Instruksi Single,
Multiple Data) prosesor instruksi tambahan set pertama diperkenalkan oleh Intel dengan versi
awalPentium 4 pada tahun 2001. Ini memperluas sebelumnya SSE set instruksi, dan
dimaksudkan untuk sepenuhnya menggantikan MMX . Intel diperpanjang SSE2 untuk
membuat SSE3 pada tahun 2004. SSE2 menambahkan 144 instruksi baru untuk SSE, yang
memiliki 70 instruksi. Bersaing pembuat chip AMD menambahkan dukungan untuk SSE2
dengan pengenalan mereka Opterondan Athlon 64 kisaran AMD64 64-bit CPU pada tahun
2003.
Perubahan
Sebagian besar instruksi SSE2 menerapkan vektor floating-point operasi juga ditemukan di
MMX. Mereka berbeda dari setara MMX mereka dalam bahwa mereka menggunakan XMM
register bukan x87 register. Yang pertama digunakan oleh instruksi SSE dan yang terakhir
dengan skalar floating-point (x87) instruksi. Karena menggunakan satu set register untuk set
instruksi yang berbeda membutuhkan modus switching, SSE2 memungkinkan pencampuran
skalar dan vektor operasi floating-point tanpa hukuman kinerja beralih modus. Selain itu,
sementara MMX yang menggunakan x87 register sebagai register 64bit, SSE2 dapat
menggunakan kapasitas penuh 128bit register XMM, yang memberikan potensi keuntungan
kinerja besar dalam aplikasi dioptimalkan.
Lainnya SSE2 ekstensi termasuk satu set Cache instruksi kontrol dimaksudkan terutama
untuk meminimalkan pencemaran tembolok saat memproses aliran tak terbatas informasi,
dan pelengkap canggih instruksi konversi format numerik.
Pelaksanaan AMD SSE2 pada (AMD64 x86-64 ) platform termasuk tambahan delapan
register, dua kali lipat jumlah total 16 (xmm0 melalui XMM15). Ini tambahan register hanya
terlihat ketika berjalan dalam modus 64-bit. Intel mengadopsi ini register tambahan sebagai
bagian dari dukungan mereka untuk arsitektur x86-64 (atau dalam bahasa Intel, "Intel 64")
pada tahun 2004.
Jika kode yang dirancang untuk x87 yang porting ke bawah presisi ganda presisi floating
point SSE2, kombinasi tertentu operasi matematika atau dataset input dapat mengakibatkan
penyimpangan numerik terukur, yang dapat menjadi masalah dalam perhitungan ilmiah
direproduksi, misalnya jika hasil perhitungan harus dibandingkan terhadap hasil yang
dihasilkan dari arsitektur mesin yang berbeda. Isu yang terkait adalah bahwa, secara historis,
standar bahasa dan compiler telah tidak konsisten dalam penanganan register x87 80-bit
menerapkan variabel presisi diperpanjang ganda, dibandingkan dengan format presisi ganda
dan tunggal diimplementasikan dalam SSE2: pembulatan diperpanjang nilai presisi
menengah untuk menggandakan variabel presisi tidak sepenuhnya ditentukan dan tergantung
pada rincian pelaksanaan seperti ketika register yang tumpah ke memori. Namun, standar
bahasa modern seperti C99 dan Fortran 2003 telah memasukkan dukungan IEEE 754 floating
point dan sekarang persis menentukan semantik diperpanjang ganda ("panjang ganda")
ekspresi presisi untuk menghindari masalah reproduktifitas tersebut.
jutaan instruksi sebelum akhirnya menyebabkan rutinitas floating-point untuk gagal, kembali
NaN. Karena masalahnya bukan lokal jelas dalam kode MMX, bug bisa sangat memakan
waktu untuk menemukan dan memperbaiki waktu. Sebagai SSE2 tidak memiliki masalah ini,
biasanya menyediakan throughput yang lebih baik dan menyediakan lebih banyak register
dalam kode 64-bit, itu harus lebih diutamakan untuk hampir semua pekerjaan vektorisasi.
Compiler penggunaan
Ketika pertama kali diperkenalkan pada tahun 2000, SSE2 tidak didukung oleh alat
pengembangan perangkat lunak. Misalnya, untuk menggunakan SSE2 dalam Microsoft
Developer Studioproyek, programmer harus secara manual menulis inline-perakitan atau
impor kode-obyek dari sumber eksternal. Kemudian Visual C + + Pack menambahkan
Processor SSE2 dukungan untukVisual C + + dan MASM .
The Intel C + + Compiler secara otomatis dapat menghasilkan SSE4/SSSE3/SSE3/SSE2
dan / atau SSE-kode tanpa menggunakan tangan-kode perakitan.
Sejak GCC 3, GCC secara otomatis dapat menghasilkan SSE/SSE2 kode skalar ketika target
mendukung instruksi tersebut. vektorisasi otomatis untuk SSE/SSE2 telah ditambahkan sejak
GCC 4.
The Sun Studio Compiler Suite juga dapat menghasilkan SSE2 instruksi ketika compiler
bendera xvector = SIMD digunakan.
Intel Core keluarga (termasuk Intel Core 2 , Intel Core i5 , Intel Core i7 )
Intel Atom
Transmeta Efficeon
VIA C7
VIA Nano
VIA C3
Transmeta Crusoe
4. SSE3
SSE3, Streaming SIMD Extensions 3, juga yang dikenal dengan Intel kode nama Prescott
New Instructions (PNI), merupakan iterasi ketiga dari SSE set instruksi untuk IA-32 (x86)
arsitektur.Intel memperkenalkan SSE3 pada awal tahun 2004 dengan revisi Prescott dari
mereka Pentium 4 CPU. Pada bulan April 2005, AMD memperkenalkan subset dari SSE3
dalam revisi E (Venice dan San Diego) mereka Athlon 64 CPU. Semakin awal SIMD set
instruksi pada x86 Platform, dari yang terlama ke terbaru,
adalah MMX , 3DNow! (dikembangkan oleh AMD), SSE dan SSE2 .
SSE3 berisi 13 instruksi baru selama SSE2 .
Perubahan
Perubahan yang paling penting adalah kemampuan untuk bekerja secara horizontal di
register, yang bertentangan dengan lebih atau kurang ketat vertikal operasi dari semua
instruksi SSE sebelumnya. Lebih khusus, instruksi untuk menambah dan mengurangi
beberapa nilai yang disimpan dalam register tunggal telah ditambahkan. Instruksi ini
menyederhanakan pelaksanaan sejumlah DSP dan 3D operasi. Ada juga instruksi baru untuk
mengkonversi nilai floating point ke integer tanpa harus mengubah modus pembulatan
global, sehingga menghindari mahal pipawarung. Akhirnya, ekstensi menambahkan LDDQU,
beban vektor bilangan bulat sejajar alternatif yang memiliki performa lebih baik
pada NetBurst platform berbasis untuk beban yang melintasi batas cacheline.
AMD :
Athlon 64 X2
Phenom
Phenom II
Athlon II
Turion 64
Turion 64 X2
Turion X2
Turion X2 Ultra
Turion II X2 Ponsel
Turion II X2 Ultra
APU
FX Series
Intel :
Celeron D
Pentium D
Pentium Dual-Core
Inti
Atom
VIA / Centaur :
C7
Nano
Transmeta Efficeon TM88xx (TIDAK Model Nomor TM86xx).
Instruksi baru
Instruksi umum
Hitung
ADDSUBPD - (Add-Kurangi-Dikemas-Double)
ADDSUBPS - (Add-Kurangi-Dikemas-Single)
HADDPD - (Horizontal-Add-Dikemas-Double)
HADDPS (horizontal-Add-Dikemas-Single)
HSUBPD - (Horizontal-Kurangi-Dikemas-Double)
HSUBPS - (Horizontal-Kurangi-Dikemas-Single)
LDDQU - Sebagaimana dinyatakan di atas, ini adalah sejajar beban vektor bilangan
bulat alternatif. Hal ini dapat membantu untuk tugas-tugas kompresi video.
FISTTP - Seperti tua x87 FISTP instruksi, tetapi mengabaikan pengaturan modus
pembulatan floating point kontrol mendaftar dan menggunakan "memotong" (truncate)
siaga sebagai pengganti. Memungkinkan kelalaian pemuatan mahal dan re-loading
register kontrol dalam bahasa seperti C di mana konversi apung ke-int memerlukan
perilaku truncate oleh standar.
Instruksi Intel
5. SSSE3
Tambahan Streaming SIMD Extensions 3 (SSSE3 atau SSE3S) adalah SIMD set instruksi
yang
Sejarah
SSSE3 pertama kali diperkenalkan dengan prosesor Intel berdasarkan mikroarsitektur
Inti tanggal 26 Juni 2006 dengan "Woodcrest" Xeon.
SSSE3 telah disebut oleh codenames Tejas Instruksi Baru (TNI) atau Merom New
Instructions (MNI) untuk desain prosesor pertama dimaksudkan untuk mendukungnya.
Fungsi
SSSE3 berisi 16 petunjuk diskrit baru.
Setiap instruksi dapat bertindak pada 64-bit MMX atau 128-bit register XMM. Oleh karena
itu, bahan Intel lihat 32 instruksi baru.
Menurut Intel:
SSSE3 memberikan 32 instruksi (diwakili oleh 14 mnemonik) untuk mempercepat
perhitungan pada bilangan bulat dikemas. Ini termasuk:
Dua instruksi yang melakukan biak dan menambahkan operasi dan mempercepat
evaluasi dot produk.
Dua instruksi yang mempercepat operasi multiply dikemas bilangan bulat dan
menghasilkan nilai integer dengan skala.
Enam instruksi yang meniadakan bilangan bulat dikemas dalam operan tujuan jika
tanda-tanda dari elemen yang sesuai dalam operan sumber kurang dari nol.
Dua instruksi yang menyelaraskan data dari komposit dari dua operan.
AMD :
Bobcat
Buldoser
Piledriver
Intel :
Core 2 Duo
Core 2 Extreme
Core 2 Quad
Core i7
Core i5
Core I3
Atom
VIA :
Nano
6. SSE4
SSE4 (Streaming SIMD Extensions 4) adalah CPU set instruksi yang digunakan
dalam Intel mikroarsitektur Core dan AMD K10 (K8L) . Ini diumumkan pada tanggal 27
September 2006 di musim gugur 2006 Intel Developer Forum , dengan rincian jelas
dalam kertas putih ,rincian lebih tepat dari 47 instruksi menjadi tersedia di musim semi
2007 Intel Developer Forum di Beijing , dalam presentasi. The SSE4 Pemrograman
Referensi tersedia dari Intel.
SSE4 subset
Intel SSE4 terdiri dari 54 instruksi. Sebuah subset yang terdiri dari 47 instruksi, disebut
sebagai SSE4.1 di beberapa dokumentasi Intel, tersedia dalam Penryn . Selain
itu, SSE4.2, subset kedua yang terdiri dari 7 instruksi yang tersisa, adalah pertama yang
tersedia di Nehalem berbasis core i7 . Intel credits umpan balik dari pengembang sebagai
memainkan peran penting dalam pengembangan set instruksi.
AMD mendukung 4 instruksi dari SSE4 set instruksi, tetapi juga telah menambahkan empat
instruksi SSE baru, penamaan kelompok SSE4a. Instruksi ini tidak ditemukan dalam prosesor
Intel mendukung SSE4.1 dan prosesor AMD baru mulai mendukung Intel SSE4.1 dan
SSE4.2 di Bulldozer FX prosesor berbasis. Dukungan telah ditambahkan untuk SSE4a untuk
unaligned SSE instruksi beban-operasi (yang sebelumnya diperlukan keselarasan 16-byte).
Penamaan
Apa yang sekarang dikenal sebagai SSSE3 (Supplemental Streaming SIMD Extensions 3),
diperkenalkan dalam Intel Core 2 garis prosesor, disebut sebagai SSE4 oleh beberapa media
hingga Intel datang dengan moniker SSSE3. Internal dijuluki Merom Petunjuk Baru, Intel
awalnya tidak berencana untuk menetapkan nama khusus bagi mereka, yang dikritik oleh
beberapa wartawan. Intel akhirnya dibersihkan kebingungan dan milik nama SSE4 untuk
mereka (pada waktu itu) mendatang set instruksi ekstensi.
Intel menggunakan istilah pemasaran HD Meningkatkan untuk merujuk SSE4.
Instruksi baru
Tidak seperti semua iterasi sebelumnya SSE, SSE4 berisi instruksi yang mengeksekusi
operasi yang tidak spesifik untuk aplikasi multimedia. Ini memiliki sejumlah instruksi yang
tindakan ditentukan oleh medan konstan dan satu set instruksi yang mengambil xmm0
sebagai operan ketiga implisit.
Beberapa petunjuk ini diaktifkan oleh satu siklus mesin shuffle dalam Penryn. (Operasi
Shuffle menyusun ulang byte dalam register.)
7. Hyper-threading
Hyper-threading tidak hanya menuntut bahwa sistem operasi mendukung TPS , tetapi juga
bahwa secara khusus dioptimalkan untuk HTT, dan Intel merekomendasikan menonaktifkan
HTT ketika menggunakan sistem operasi yang belum dioptimalkan untuk fitur chip ini.
Detail
prosesor fisik yang baik hiper-threaded (untuk total empat prosesor logis). Jika sistem operasi
benang schedulertidak menyadari hyper-threading akan memperlakukan semua empat
prosesor logis yang sama. Jika hanya dua benang berhak mencalonkan diri, mungkin memilih
untuk jadwal mereka benang pada dua prosesor logis yang kebetulan milik prosesor fisik
yang sama, prosesor yang akan menjadi sangat sibuk sementara yang lain akan menganggur,
menyebabkan kinerja yang lebih miskin daripada yang mungkin dengan penjadwalan yang
lebih baik. Masalah ini dapat dihindari dengan meningkatkan scheduler untuk mengobati
prosesor logis berbeda dari prosesor fisik, dalam arti, ini adalah bentuk terbatas dari
perubahan scheduler yang diperlukan untuk NUMA sistem.
Sejarah
Denelcor, Inc memperkenalkan multi-threading dengan HEP ( Processor Element heterogen )
pada tahun 1982. Pipa HEP tidak bisa menahan beberapa instruksi yang independen karena
mereka milik proses yang berbeda. Hanya satu instruksi dari suatu proses diizinkan untuk
hadir dalam pipa pada setiap titik waktu. Haruskah instruksi dari proses blok tertentu dalam
pipa, instruksi dari proses lainnya akan berlanjut setelah pipa dikeringkan.
Intel menerapkan hyper-threading pada prosesor arsitektur x86 pada tahun 2002 dengan Xeon
MP berbasis Foster. Itu juga termasuk pada 3,06 GHz Northwood berbasis Pentium 4 pada
tahun yang sama, dan kemudian tetap sebagai fitur di setiap Pentium 4 HT, Pentium 4
Extreme prosesor Pentium Extreme Edition sejak Edition dan. Sebelumnya generasi prosesor
Intel berdasarkanmikroarsitektur Inti tidak memiliki Hyper-Threading, karena mikroarsitektur
Core merupakan keturunan dari mikroarsitektur P6 yang digunakan dalam iterasi Pentium
sejak Pentium Pro melaluiPentium III dan Celeron (Covington, Mendocino, Coppermine dan
berbasis Tualatin) dan Pentium II Xeon dan Pentium III Xeon model.
Intel merilis Nehalem (Core i7) pada bulan November 2008 di mana hyper-threading dibuat
kembali. Nehalem generasi pertama berisi empat core dan efektif skala delapan benang. Sejak
itu, dua dan model enam-core telah dirilis, skala empat dan dua belas thread masing-masing.
Intel Atom adalah prosesor di-order dengan hyper-threading, untuk PC mobile daya rendah
dan PC desktop harga rendah.
Itanium 9300 diluncurkan dengan delapan benang per prosesor (dua thread per core) melalui
teknologi hyper-threading ditingkatkan. Poulson, Itanium generasi berikutnya, dijadwalkan
untuk memiliki tambahan tambahan hyper-threading.
Intel Xeon 5500 chip server juga memanfaatkan dua arah hyper-threading.
Kekurangan
Ketika pertama HT prosesor yang dirilis, banyak sistem operasi yang tidak dioptimalkan
untuk teknologi hyper-threading (misalnya Windows 2000 dan Linux lebih tua dari 2,4). [15]
Pada tahun 2006, hyper-threading dikritik karena energi inefisiensi. Misalnya, spesialis
rendah daya CPU perusahaan desain ARM menyatakan multithreading simultan (TPS) dapat
menggunakan daya hingga 46% lebih dari desain dual-core biasa. Selain itu, mereka
mengklaim SMT meningkat meronta-ronta Cache sebesar 42%, sedangkan dual
core menghasilkan penurunan 37%. [16]Intel membantah klaim ini, menyatakan hyperthreading ini sangat efisien karena menggunakan sumber daya yang idle.
Pada tahun 2010, ARM mengatakan mungkin mencakup multithreading simultan dalam chip
di masa depan . namun hal ini ditolak untuk 64 bit desain 2012 mereka.
Keamanan
Pada bulan Mei 2005 Colin Percival menunjukkan bahwa pada Pentium 4, benang berbahaya
dapat menggunakan serangan waktu untuk memonitor pola akses memori thread lain dengan
saham yang cache, memungkinkan pencurian informasi kriptografi. Potensi solusi untuk ini
termasuk prosesor mengubah strategi penggusuran cache, atau sistem operasi mencegah
eksekusi simultan, pada inti fisik yang sama, benang dengan hak yang berbeda.
8. SpeedStep
SpeedStep merupakan merek dagang untuk serangkaian skala frekuensi dinamis teknologi
(nama kode Geyserville dan termasuk SpeedStep, SpeedStep II, dan III SpeedStep) dibangun
ke beberapa Intel mikroprosesor yang memungkinkan kecepatan clock prosesor agar berubah
secara dinamis (untuk berbeda P -negara) oleh perangkat lunak. Hal ini memungkinkan
prosesor untuk memenuhi kebutuhan kinerja sesaat dari operasi yang dilakukan, saat
meminimalkan tarikan daya dan panas. Enhanced Intel SpeedStep sering disingkat
sebagai EIST.
Penjelasan
Menjalankan prosesor pada kecepatan clock tinggi memungkinkan untuk performa yang lebih
baik. Namun, ketika prosesor yang sama dijalankan pada frekuensi yang lebih rendah
(kecepatan), menghasilkan lebih sedikit panas dan mengkonsumsi daya yang lebih
kecil. Dalam banyak kasus, tegangan inti juga dapat dikurangi, lebih lanjut mengurangi
konsumsi daya dan panas. Hal ini dapat menghemat daya baterai di notebook, mengurangi
biaya operasional dan dampak lingkungan, memperpanjang umur prosesor, dan mengurangi
kebisingan yang dihasilkan oleh penggemar kecepatan variabel. Dengan menggunakan
SpeedStep, pengguna dapat memilih keseimbangan konservasi daya dan kinerja yang paling
sesuai dengan mereka, atau bahkan mengubah kecepatan clock secara dinamis sebagai
perubahan beban prosesor.
Daya yang dikonsumsi oleh CPU dengan kapasitansi C, berjalan pada frekuensi f dan
tegangan V adalah sekitar.
Untuk prosesor yang diberikan, C adalah nilai tetap. Namun, V dan f dapat
bervariasi. Misalnya, untuk 1,6 GHz Pentium M , frekuensi clock dapat mengundurkan diri
pada decrements 200 MHz selama rentang 1,6-0,6 GHz. Pada saat yang sama, kebutuhan
tegangan menurun dari 1,484 V 0,956 V. Hasilnya adalah bahwa konsumsi daya teoritis turun
dengan faktor 6,4. Dalam prakteknya, efeknya mungkin lebih kecil karena beberapa instruksi
CPU menggunakan lebih sedikit energi per centang dari jam CPU daripada yang
lain. Sebagai contoh, ketika sistem operasi tidak sibuk, ia cenderung untuk
mengeluarkan berhenti instruksi yang menangguhkan operasi bagian CPU untuk periode
waktu, sehingga menggunakan lebih sedikit energi per centang dari jam CPU daripada ketika
mengeksekusi instruksi produktif normal negara. Untuk tingkat tertentu kerja, CPU berjalan
pada clock rate yang lebih tinggi akan mengeksekusi proporsi yang lebih besar dari instruksi
HLT. Persamaan sederhana yang berhubungan daya, tegangan dan frekuensi di atas juga tidak
memperhitungkan konsumsi listrik statis dari CPU. Ini cenderung tidak berubah dengan
frekuensi, tetapi tidak berubah dengan suhu dan tegangan. Hot elektron, dan elektron terkena
medan listrik kuat lebih cenderung untuk bermigrasi melintasi gerbang sebagai "gerbang
kebocoran" saat ini, yang mengarah ke peningkatan konsumsi listrik statis.
Prosesor yang lebih tua, menggunakan versi teknologi SpeedStep, memiliki peningkatan
sedikit, seperti Pentium 4-M . Misalnya, GHz Pentium 4M 1.7 dapat berjalan pada 1,6 GHz,
1,2 GHz pada, dan pada 786 MHz.
Teknologi SpeedStep sebagian bertanggung jawab untuk mengurangi konsumsi daya prosesor
Pentium M Intel, bagian dari Centrino merek.
Linux
Sistem operasi dan / atau distribusi, menggunakan Linux kernel, memiliki dukungan
penuh SpeedStep terintegrasi sejak kernel versi 2.6.
Mac
Mac OS X juga memiliki SpeedStep dibangun dalam kernel, sejak rilis versi Intel Mac
OS X 10.4 dan sudah diaktifkan. Hal ini tidak dapat dikontrol dalam Sistem Preferensi
"Energy Saver." Untuk menonaktifkan fitur ini, dan mengatur kecepatan clock tertentu
(kecepatan penuh atau dikurangi) memerlukan aplikasi pihak ketiga, seperti coolbook .
Solaris
Solaris telah mendukung SpeedStep sejak OpenSolaris SXDE 7/9.
Windows
Versi Microsoft Windows, Windows 2000 dan sebelumnya, membutuhkan driver khusus
dan aplikasi dashboard untuk mengakses fitur SpeedStep. Website Intel secara khusus
menyatakan bahwa driver tersebut harus datang dari produsen komputer,. Tidak ada
driver generik dipasok oleh Intel yang akan memungkinkan SpeedStep untuk versi
Windows yang lebih tua jika seseorang tidak dapat memperoleh sopir produsen
Di bawah Microsoft Windows XP , dukungan SpeedStep dibangun ke dalam konsol
manajemen kekuasaan di bawah panel kontrol. Pada Windows XP pengguna dapat
mengatur kecepatan prosesor secara tidak langsung dengan mengubah skema
daya. "Home / Office Desk" pengaturan menonaktifkan SpeedStep, yang "Portabel /
Laptop" skema kekuasaan memungkinkan SpeedStep, dan "Max Battery" menggunakan
SpeedStep untuk memperlambat prosesor ke tingkat daya minimal sebagai baterai
melemah. Pengaturan SpeedStep untuk skema daya, baik built-in atau adat, tidak dapat
diubah dari GUI panel kontrol, tapi dapat diubah dengan menggunakan utilitas baris
perintah POWERCFG.EXE.
Sebaliknya, AMD terus memasok dan dukungan driver untuk
saing PowerNow! teknologi yang akan bekerja pada Windows 2000, ME, 98, dan NT.
Versi
V1.1 digunakan oleh prosesor generasi kedua Pentium III. Hal ini memungkinkan CPU
untuk beralih di antara dua mode: tinggi dan frekuensi rendah. Hal ini dilakukan dengan
memodifikasi multiplier CPU. A 1 GHz Pentium III memakan sekitar 20 watt bisa
dikurangi menjadi 600 MHz yang mengurangi konsumsi daya sekitar 6 watt.
V2.1 (Enhanced SpeedStep) digunakan dalam prosesor Pentium III-Mobile dan mirip
dengan versi sebelumnya, tapi dalam modus frekuensi rendah CPU juga menggunakan
tegangan yang berbeda dari modus frekuensi tinggi.
V2.2 diadaptasi untuk prosesor Pentium 4-Mobile. Dengan ini, GHz Pentium 4-M
mengkonsumsi 1,8 sekitar 30 watt dapat menurunkan frekuensi untuk 1,2 GHz, sehingga
mengurangi konsumsi daya sekitar 20 watt.
V3.1 (EIST) digunakan dengan generasi pertama dan kedua dari prosesor Pentium M
(Banias dan Dothan core, yang digunakan dalam platform Centrino). Dengan teknologi
ini, CPU bervariasi frekuensi (dan tegangan) antara sekitar 40% dan 100% dari frekuensi
dasar dalam penambahan sebesar 100 MHz (untuk Banias inti) atau 133 MHz (untuk core
Dothan). Dengan teknologi ini, Intel juga memperkenalkan Level 2 variasi kapasitas
cache realtime, lebih meningkatkan penghematan energi.
V3.2 (Enhanced EIST) yang diadaptasi untuk prosesor multi-core dengan unified cache
Level 2.
9. virtualisasi x86
Dalam komputasi , virtualisasi x86 adalah fasilitas yang memungkinkan beberapa sistem
operasi secara simultan berbagi x86 sumber daya prosesor dengan cara yang aman dan
efisien, fasilitas umum dikenal sebagai virtualisasi hardware . Pada akhir 1990-an x86
virtualisasi dicapai dengan teknik perangkat lunak kompleks yang mengatasi kekurangan
prosesor dukungan virtualisasi dan kinerja yang wajar dicapai. Pada tahun 2006,
baik Intel ( VT-x ) dan AMD ( AMD-V ) menambahkan dukungan hardware untuk prosesor
mereka membuat perangkat lunak virtualisasi sederhana, dan kemudian perubahan hardware
menyajikan peningkatan kecepatan substansial.
Terjemahan biner digunakan untuk menulis ulang dalam hal cincin 3 instruksi cincin
tertentu 0 instruksi, seperti POPF , yang lain akan gagal diam-diam atau berperilaku
berbeda ketika dijalankan di atas cincin 0, membuat klasik perangkap-dan- meniru
virtualisasi mustahil.Untuk meningkatkan kinerja, diterjemahkan blok dasar perlu dicache dengan cara yang koheren yang mendeteksi kode patch (digunakan
dalam VxDs misalnya), penggunaan kembali halaman oleh OS tamu, atau
bahkan memodifikasi diri kode .
Sejumlah struktur data utama yang digunakan oleh prosesor perlu dibayangi . Karena
sebagian besar sistem operasi menggunakan paged virtual memory , dan pemberian OS
guest akses langsung ke MMU akan berarti hilangnya kontrol oleh manajer virtualisasi ,
beberapa karya MMU x86 perlu digandakan dalam perangkat lunak untuk OS tamu
menggunakan teknik dikenal sebagai tabel halaman bayangan.ini melibatkan
menyangkal OS tamu setiap akses ke halaman entri tabel yang sebenarnya dengan
menjebak upaya akses dan meniru mereka bukan dalam perangkat lunak. Arsitektur x86
menggunakan negara tersembunyi untuk menyimpan segmen penjelas dalam prosesor,
jadi setelah deskriptor segmen telah dimuat ke dalam prosesor, memori dari mana mereka
telah dimuat mungkin ditimpa dan tidak ada cara untuk mendapatkan deskriptor kembali
dari prosesor tabel deskripsi Shadow. karena itu harus digunakan untuk melacak
perubahan yang dibuat ke meja deskriptor oleh OS tamu.
Teknik ini dikenakan beberapa overhead kinerja karena kurangnya dukungan virtualisasi
MMU, dibandingkan dengan VM berjalan pada arsitektur native virtualizable seperti
IBM System/370 .
Pada mainframe tradisional, klasik tipe 1 adalah hypervisor yang berdiri sendiri dan tidak
tergantung pada sistem operasi atau menjalankan aplikasi pengguna itu sendiri. Sebaliknya,
pertama x86 produk virtualisasi yang ditujukan untuk komputer workstation, dan berlari OS
tamu di dalam host OS dengan menanamkan hypervisor dalam modul kernel yang berlari di
bawah host OS (tipe 2 hypervisor).
Ada beberapa kontroversi apakah arsitektur x86 tanpa bantuan hardware virtualizable seperti
yang dijelaskan oleh Popek dan Goldberg . VMware peneliti menunjukkan di
2006 ASPLOS kertas yang teknik di atas membuat platform x86 virtualizable dalam arti
memenuhi tiga kriteria Popek dan Goldberg, meskipun tidak oleh klasik perangkap-danmeniru teknik.
Sebuah rute yang berbeda diambil oleh sistem lain seperti Denali , L4 , dan Xen , yang
dikenal sebagai paravirtualization , yang melibatkan porting sistem operasi untuk dijalankan
pada mesin virtual yang dihasilkan, yang tidak melaksanakan bagian aktual set instruksi x86
yang sulit untuk virtualisasi . The paravirtualized I / O memiliki manfaat kinerja yang
signifikan seperti yang ditunjukkan dalam bahasa aslinya SOSP '03 kertas Xen.
Versi awal x86-64 ( AMD64 ) tidak memungkinkan untuk perangkat lunak hanya virtualisasi
penuh karena kurangnya dukungan segmentasi modus lama , yang membuat perlindungan
memori hypervisor yang tidak mungkin, khususnya, perlindungan handler perangkap yang
berjalan di ruang alamat kernel tamu. Revisi D dan kemudian 64-bit AMD prosesor (sebagai
aturan praktis, yang diproduksi di 90 nm atau kurang) menambahkan dukungan dasar untuk
segmentasi lama modus, sehingga memungkinkan untuk menjalankan 64-bit tamu di 64-bit
host melalui terjemahan biner. Intel tidak menambahkan dukungan segmentasi pelaksanaan
x86-64 nya ( Intel 64 ), membuat 64-bit software-satunya virtualisasi mustahil pada CPU
Intel, namun Intel dukungan VT-x membuat hardware 64-bit dibantu virtualisasi mungkin
pada platform Intel.
Pada beberapa platform, adalah mungkin untuk menjalankan tamu 64-bit pada host OS 32-bit
jika prosesor yang mendasari adalah 64-bit dan mendukung ekstensi virtualisasi diperlukan.
Hardware membantu
Pada tahun 2005 dan 2006, Intel dan AMD (bekerja secara independen) dibuat baru ekstensi
prosesor dengan arsitektur x86. Generasi pertama dari dukungan hardware x86 untuk
virtualisasi membahas masalah instruksi istimewa, dengan dukungan untuk virtualisasi MMU
ditambahkan ke chipset nanti.
Prosesor
AMD virtualisasi (AMD-V)
AMD mengembangkan ekstensi virtualisasi generasi pertama di bawah nama kode "Pacifica",
dan pada awalnya diterbitkan sebagai AMD Secure Virtual Machine (SVM), tetapi kemudian
dipasarkan mereka di bawah merek dagang AMD Virtualization, disingkat AMD-V.
Pada tanggal 23 Mei 2006, AMD merilis Athlon 64 ( "Orleans" ), Athlon 64 X2 ( "Windsor" )
dan Athlon 64 FX ( "Windsor" ) sebagai yang pertama prosesor AMD untuk mendukung
teknologi ini.
Kemampuan AMD-V juga dilengkapi pada Athlon 64 dan Athlon 64 X2 keluarga prosesor
dengan revisi "F" atau "G" pada soket AM2 , Turion 64 X2 , dan Opteron generasi ke-2 dan
generasi ke-3, Phenom dan Phenom II prosesor. The APU Fusion mendukung prosesor
AMD-V. AMD-V tidak didukung oleh Socket 939 prosesor. Satu-satunya prosesor
Sempron yang mendukungnya adalah Huron dan Sargas .
AMD Opteron CPU dimulai dengan Keluarga 0x10 Barcelona line, dan Phenom II CPU,
mendukung teknologi virtualisasi hardware generasi kedua yang disebut cepat Virtualization
Indexing (sebelumnya dikenal sebagai Bersarang Tabel Halaman selama pengembangan),
kemudian diadopsi oleh Intel sebagai Extended Page Tabel (EPT) .
Bendera CPU AMD-V adalah "svm". Hal ini dapat diperiksa derivatif
BSD melalui dmesg atau sysctl dan Linux via /proc/cpuinfo .
Sebelumnya diberi kode "Vanderpool", VT-x merupakan teknologi Intel untuk virtualisasi
pada platform x86.
Pada tanggal 13 November 2005, Intel merilis dua model Pentium 4 (Model 662 dan 672)
sebagai yang pertama prosesor Intel untuk mendukung VT-x.
Seperti tahun 2009 tidak semua prosesor Intel didukung VT-x, yang Intel digunakan
untuk segmen pasarnya . Dukungan untuk VT-x mungkin bahkan berbeda antara versi yang
berbeda (seperti yang diidentifikasi dengan Nomor sSpec Intel) dari nomor model yang
sama . Untuk daftar lengkap dan up-to-date lihat website Intel. Bahkan pada bulan Mei,
2011, Intel CPU P6100 yang di laptop tidak mendukung virtualisasi hardware.
Dengan beberapa motherboard , VT-x fitur Intel harus diaktifkan di BIOS sebelum aplikasi
dapat memanfaatkannya.
Intel mulai memasukkan Extended Page Tabel (EPT), sebuah teknologi untuk virtualisasi
page-table, sejak Nehalem arsitektur.
Intel mulai memasukkan VMCS Bayangan, sebuah teknologi untuk mempercepat virtualisasi
bersarang dari VMMs, sejak Haswell arsitektur.
Bendera CPU untuk VT-x adalah "vmx". Ini dapat diperiksa di Linux melalui /proc/cpuinfo .
Sebuah input / output unit manajemen memori (IOMMU) memungkinkan tamu mesin
virtual untuk langsung menggunakan perangkat perangkat, seperti Ethernet, kartu grafis
dipercepat, dan pengendali hard-drive, melalui DMA dan mengganggu remapping. Ini
kadang-kadang disebut PCI passthrough. Baik AMD dan Intel telah merilis spesifikasi:
PCI-SIG I / O virtualisasi (IOV) adalah seperangkat umum (non-x86 spesifik) PCI Express
(PCI-E) hardware asli berbasis I / O metode virtualisasi standar oleh PCI-SIG:
Jasa terjemahan alamat (ATS)
ini mendukung asli IOV di PCI-E melalui terjemahan alamat. Hal ini membutuhkan
dukungan untuk transaksi baru untuk mengkonfigurasi terjemahan tersebut.
Single-akar IOV (SR-IOV)
ini mendukung IOV asli di akar tunggal yang ada kompleks topologi PCI-E. Hal ini
membutuhkan dukungan untuk kemampuan perangkat baru untuk mengkonfigurasi
beberapa ruang konfigurasi virtual.
Intel Turbo Boost adalah teknologi dilaksanakan oleh Intel dalam versi tertentu
mereka Nehalem -, Sandy Bridge- -, Ivy-Bridge , dan Haswell berbasis CPU , termasuk Core
i5 dan i7 yang memungkinkan prosesor untuk menjalankan di atas basis frekuensi
operasi melalui kontrol dinamis "CPU clock rate ".Hal ini diaktifkan bila sistem
operasi meminta tertinggi negara kinerjaprosesor. Prosesor menyatakan kinerja didefinisikan
oleh Advanced Configuration dan Power Interface (ACPI) spesifikasi, sebuah standar terbuka
yang didukung oleh semua sistem operasi utama,. tidak ada software tambahan atau driver
yang diperlukan untuk mendukung teknologi. Konsep desain belakang Turbo Boost
umumnya disebut sebagai "dinamis overclocking ".
Peningkatan clock rate dibatasi oleh prosesor listrik , saat ini dan termal batas, serta jumlah
core yang sedang digunakan dan frekuensi maksimum core yang aktif. Ketika beban kerja
pada prosesor panggilan untuk performa yang lebih cepat, dan prosesor berada di bawah
batas-batasnya, jam prosesor akan meningkatkan frekuensi operasi secara bertahap reguler
yang diperlukan untuk memenuhi permintaan. Frekuensi kenaikan terjadi pada penambahan
sebesar 133 MHz untuk mikroarsitektur Nehalem prosesor dan 100 MHz untuk Sandy / Ivy
Bridge mikroarsitekturprosesor. Ketika salah satu batas listrik atau termal tercapai, frekuensi
operasi secara otomatis berkurang dalam decrements dari 133 MHz sampai MHz/100
prosesor lagi beroperasi dalam batas-batas desain.
Sejarah
Intel kertas putih November 2008 membahas "Turbo Boost" teknologi sebagai fitur baru yang
dimasukkan ke dalam prosesor berbasis Nehalem dirilis pada bulan yang sama.
Sebuah fitur yang serupa disebut Intel Dynamic Acceleration (IDA) yang tersedia pada
banyak platform Centrino Core 2 berbasis. Fitur ini tidak menerima perlakuan pemasaran
yang diberikan kepada Turbo Boost. Intel Dynamic Percepatan dinamis mengubah frekuensi
inti sebagai fungsi dari jumlah core yang aktif. Ketika sistem operasi menginstruksikan salah
satu core yang aktif untuk memasuki keadaan tidur C3 menggunakan Konfigurasi Lanjut dan
Antarmuka Daya (ACPI), inti aktif lainnya (s) secara dinamis dipercepat ke frekuensi yang
lebih tinggi.
Contoh
(Frekuensi operasi normal adalah 2,0 GHz. Turbo diindikasikan sebagai: 2/2/8/9 di mana
nomor pertama adalah kelipatan 133 MHz didukung ketika empat core yang aktif, angka
kedua adalah ganda untuk tiga core, jumlah ketiga adalah untuk dua core, dan nomor keempat
adalah untuk satu inti aktif.
Dikenakan batas konsumsi suhu, arus dan daya, prosesor dapat meningkatkan kecepatan
clock (dari frekuensi dasar 2,0 GHz) dalam langkah 133 MHz ke:
# Core aktif
# Turbo Langkah
Max frekuensi
Perhitungan
3 atau 4
2.26 GHz
3.06 GHz
3.20 GHz
Dikenakan batas suhu, konsumsi arus dan daya, prosesor dapat meningkatkan kecepatan
clock (dari frekuensi dasar 2,5 GHz) dalam langkah 100 MHz ke:
# Core aktif
# Turbo Langkah
Max frekuensi
Perhitungan
3 atau 4
3.20 GHz
3.40 GHz
10
3.50 GHz