29
Teknologi Prosesor Intel 1. MMX (set instruksi) MMX adalah instruksi tunggal, multiple data ( SIMD ) set instruksi yang dirancang oleh Intel , diperkenalkan pada tahun 1997 dengan mereka P5 - berbasis Pentium garis mikroprosesor , ditunjuk sebagai "Pentium dengan Teknologi MMX". Ini dikembangkan dari unit serupa memperkenalkan pada Intel i860 , dan sebelumnya Intel i750 prosesor video pixel. MMX adalah kemampuan tambahan prosesor yang didukung pada akhir IA-32 prosesor dengan Intel dan vendor lainnya. MMX kemudian telah diperpanjang dengan beberapa program oleh Intel dan lain- lain: 3DNow! dan revisi berkelanjutan Streaming SIMD Extensions . 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 Prosesor Pentium II dengan teknologi MMX MMX didefinisikan delapan register , yang dikenal sebagai MM0 melalui MM7 (selanjutnya disebut sebagai MMN). Untuk menghindari masalah kompatibilitas dengan mekanisme saklar konteks sistem operasi yang ada, register ini adalah alias untuk ada x87 FPU tumpukan register (jadi tidak ada register baru perlu diselamatkan atau dikembalikan). Oleh karena itu, apa pun yang dilakukan untuk floating point tumpukan juga akan mempengaruhi register

Teknologi Prosesor Intel

Embed Size (px)

Citation preview

Teknologi Prosesor Intel

1. MMX (set instruksi)MMX adalah instruksi tunggal, multiple data ( SIMD ) set instruksi yang dirancang oleh Intel , diperkenalkan pada tahun 1997 dengan mereka P5 -berbasis Pentium garis mikroprosesor , ditunjuk sebagai "Pentium dengan Teknologi MMX". Ini dikembangkan dari unit serupa memperkenalkan pada Intel i860 , dan sebelumnya Intel i750 prosesor video pixel. MMX adalah kemampuan tambahan prosesor yang didukung pada akhir IA-32 prosesor dengan Intel dan vendor lainnya.MMX kemudian telah diperpanjang dengan beberapa program oleh Intel dan lain-lain: 3DNow! dan revisi berkelanjutan Streaming SIMD Extensions .

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 

Prosesor Pentium II dengan teknologi MMXMMX didefinisikan delapan register , yang dikenal sebagai MM0 melalui MM7 (selanjutnya disebut sebagai MMN). Untuk menghindari masalah kompatibilitas dengan mekanisme saklar konteks sistem operasi yang ada, register ini adalah alias untuk ada x87 FPU tumpukan register (jadi tidak ada register baru perlu diselamatkan atau dikembalikan). Oleh karena itu, apa pun yang dilakukan untuk floating point tumpukan juga akan mempengaruhi register

MMX dan sebaliknya. Namun, tidak seperti FP stack, register MMN secara langsung dialamatkan (random access).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 (xmm0-XMM7) 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.

MMX dalam aplikasi embeddedIntel 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 32-bit. 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.

2. Streaming SIMD Extensions

Dalam komputasi , Streaming SIMD Extensions (SSE) adalah SIMD set instruksi ekstensi untuk x86 arsitektur, dirancang oleh Intel dan diperkenalkan pada tahun 1999 di mereka Pentium IIIprosesor seri sebagai jawaban atas AMD 's 3DNow! . SSE berisi 70 instruksi baru, yang sebagian besar bekerja pada presisi tunggal floating point data. Instruksi SIMD dapat sangat meningkatkan kinerja kapan tepatnya operasi yang sama harus dilakukan pada beberapa objek data. Aplikasi yang umum adalah pemrosesan sinyal digital dan pengolahan grafis .

Pertama Intel IA-32 SIMD usaha adalah MMX set instruksi. MMX punya dua masalah utama: digunakan kembali ada floating point register membuat CPU tidak dapat bekerja pada kedua floating point dan data SIMD pada saat yang sama, dan hanya bekerja pada bilangan bulat . SSE instruksi floating point beroperasi pada independen mendaftar set baru (register XMM), dan menambahkan beberapa instruksi integer yang bekerja pada register MMX.

SSE kemudian diperluas oleh Intel untuk SSE2 , SSE3 , SSSE3 , dan SSE4 . Karena mendukung floating point matematika, itu aplikasi yang lebih luas daripada MMX dan menjadi lebih populer.Penambahan dukungan integer dalam SSE2 MMX membuat sebagian besar berlebihan, meskipun peningkatan kinerja lebih lanjut dapat dicapai dalam beberapa situasi dengan menggunakan MMX secara paralel dengan operasi SSE.

SSE awalnya disebut Katmai New Instructions (KNI), Katmai menjadi nama kode untuk revisi inti Pentium III pertama. Selama Katmai proyek Intel berusaha untuk membedakannya dari lini produk mereka sebelumnya, terutama mereka andalannya Pentium II . Ia kemudian diganti Intel Streaming SIMD Extensions (ISSE), kemudian SSE. AMD akhirnya menambahkan dukungan untuk instruksi SSE, dimulai dengan yang Athlon XP dan Duron ( Morgan inti ) prosesor.

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.

SSE digunakan hanya tipe data tunggal untuk register XMM:

empat 32-bit presisi tunggal nomor floating point

SSE2 kemudian memperluas penggunaan XMM register meliputi:

dua 64-bit presisi ganda nomor floating point atau dua bilangan bulat 64-bit atau empat bilangan bulat 32-bit atau delapan bilangan bulat pendek 16-bit atau enam belas byte 8-bit atau karakter.

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 side-by-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 

SSE2 , diperkenalkan dengan Pentium 4 , adalah perangkat tambahan besar untuk SSE. SSE2 menambahkan instruksi matematika baru untuk presisi ganda titik (64-bit) mengambang dan juga memperluas instruksi integer MMX untuk beroperasi pada 128-bit register XMM. Sampai SSE2, SSE instruksi bilangan bulat diperkenalkan dengan ekstensi SSE kemudian masih bisa beroperasi pada 64-bit MMX register karena register XMM baru membutuhkan dukungan sistem operasi. SSE2 memungkinkan programmer untuk melakukan SIMD matematika pada setiap tipe data (dari 8-bit integer 64-bit float) seluruhnya dengan XMM file vektor-register, tanpa perlu menggunakan warisan MMX atau register FPU. Banyak programmer menganggap SSE2 menjadi "segalanya SSE seharusnya", sebagai SSE2 menawarkan himpunan ortogonal instruksi untuk menangani jenis data umum.

SSE3 , juga disebut Prescott New Instructions (PNI), merupakan incremental upgrade ke SSE2, menambahkan beberapa berorientasi DSP instruksi matematika dan beberapa proses (benang) instruksi manajemen.

SSSE3 adalah incremental upgrade ke SSE3, menambahkan 16 instruksi baru yang meliputi permuting byte dalam kata, mengalikan 16-bit fixed-point angka dengan pembulatan benar, dan dalam kata menumpuk instruksi. SSSE3 sering keliru untuk SSE4 sebagai istilah ini digunakan selama pengembangan dari Core microarchitecture .

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.

Perangkat lunak dan keras

Dengan semua ekstensi set instruksi x86, terserah ke BIOS , sistem operasi dan pemrogram aplikasi untuk menguji dan mendeteksi keberadaan mereka dan operasi yang tepat.

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. SSE2SSE2, 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.

Perbedaan antara x87 FPU dan SSE2 

FPU (x87) instruksi memberikan presisi lebih tinggi dengan menghitung hasil antara dengan 80 bit presisi, secara default, untuk meminimalkan kesalahan roundoff dalam algoritma numerik tidak stabil (lihat desain IEEE 754 pemikiran dan referensi di dalamnya). Namun, x87 FPU adalah unit skalar hanya sementara SSE2 dapat memproses vektor kecil dari operan secara paralel.

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.

Perbedaan antara MMX dan SSE2 

SSE2 meluas instruksi MMX untuk beroperasi pada register XMM. Oleh karena itu, adalah mungkin untuk mengubah semua kode MMX yang ada untuk setara SSE2. Sejak mendaftar XMM adalah dua kali lebih lama sebagai MMX register, counter lingkaran dan akses memori mungkin perlu diubah untuk mengakomodasi ini. Namun, beban 8 byte dan toko untuk XMM tersedia, jadi ini tidak diperlukan ketat.

Meskipun satu SSE2 instruksi dapat beroperasi pada dua kali lebih banyak data sebagai instruksi MMX, kinerja mungkin tidak meningkat secara signifikan. Dua alasan utama adalah: mengakses SSE2 data dalam memori tidak selaras dengan batas 16-byte dapat dikenakan hukuman yang signifikan, dan throughput yang dari SSE2 petunjuk di tua x86 implementasi adalah setengah bahwa untuk instruksi MMX. Intel membahas masalah pertama dengan menambahkan instruksi dalam SSE3 untuk mengurangi overhead mengakses data unaligned dan meningkatkan kinerja keseluruhan beban sejajar, dan masalah terakhir dengan memperluas mesin eksekusi mereka mikroarsitektur Inti di Core 2 Duo dan produk kemudian.

Sejak MMX dan x87 file mendaftar alias satu sama lain, menggunakan MMX akan mencegah x87 instruksi dari bekerja seperti yang diinginkan. Setelah MMX telah digunakan, programmer harus menggunakan instruksi Emms (C: _mm_empty ()) untuk mengembalikan operasi untuk register file x87. Pada beberapa sistem operasi, x87 tidak digunakan sangat banyak, tapi masih dapat digunakan dalam beberapa bidang penting seperti pow () dimana presisi ekstra yang dibutuhkan. Dalam kasus tersebut, para koruptor floating-point negara disebabkan oleh kegagalan untuk memancarkan Emms mungkin tidak terdeteksi selama 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.

CPU yang mendukung SSE2 

AMD K8 berbasis CPU ( Athlon 64 , Sempron 64 , Turion 64 , dll) AMD Phenom CPU Intel NetBurst berbasis CPU ( Pentium 4 , Xeon , Celeron , Celeron D , dll) Intel Pentium M dan Celeron M Intel Core keluarga (termasuk Intel Core 2 , Intel Core i5 , Intel Core i7 ) Intel Atom Transmeta Efficeon VIA C7 VIA Nano

Terkemuka IA-32 CPU tidak mendukung SSE2 

SSE2 merupakan perpanjangan dari IA-32 arsitektur. Oleh karena itu setiap arsitektur yang tidak mendukung IA-32 tidak mendukung SSE2. x86-64 CPU semua menerapkan IA-32 . Semua dikenal x86-64 CPU juga menerapkan SSE2. Karena IA-32 mendahului SSE2, awal IA-32 CPU tidak menerapkannya. SSE2 dan set instruksi SIMD lain dimaksudkan terutama untuk meningkatkan dukungan CPU untuk grafis realtime, terutama game. SSE2 juga merupakan persyaratan untuk menginstal Windows 8 atau Microsoft Office 2013 "untuk meningkatkan keandalan aplikasi dan driver berjalan di Windows 8 pihak ketiga".

Berikut CPU dilaksanakan IA-32 setelah SSE2 dikembangkan, tetapi tidak menerapkan SSE2:

AMD CPU sebelum Athlon 64 , termasuk semua Socket A CPU berbasis Intel CPU sebelum Pentium 4 VIA C3 Transmeta Crusoe

4. SSE3SSE3, 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.

CPU dengan SSE3 

AMD : Athlon 64 (Venice sejak Stepping E3 dan San Diego Stepping E4) Athlon 64 X2 Athlon 64 FX (sejak San Diego Stepping E4) Opteron (karena Stepping E4) Sempron (karena Stepping E3 Palermo.) 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 Celeron (dimulai dengan mikroarsitektur Core) Pentium 4 (sejak Prescott) Pentium D Pentium Extreme Edition (tapi BUKAN Pentium 4 Extreme Edition) Pentium Dual-Core Pentium (dimulai dengan mikroarsitektur Core) Inti Xeon (karena Nocona) Atom

VIA / Centaur : C7 Nano

Transmeta Efficeon TM88xx (TIDAK Model Nomor TM86xx).

Instruksi baru 

Instruksi umum Hitung

ADDSUBPD - (Add-Kurangi-Dikemas-Double) Masukan: {A0, A1}, {B0, B1} Output: {A0 - B0, A1 + B1}

ADDSUBPS - (Add-Kurangi-Dikemas-Single) Masukan: {A0, A1, A2, A3}, {B0, B1, B2, B3} Output: {A0 - B0, A1 + B1, A2 - B2, A3 + B3}

AOS (Array Of Struktur)

HADDPD - (Horizontal-Add-Dikemas-Double) Masukan: {A0, A1}, {B0, B1} Output: {A0 + A1, B1 B0 +}

HADDPS (horizontal-Add-Dikemas-Single) Masukan: {A0, A1, A2, A3}, {B0, B1, B2, B3} Output: {A0 + A1, A2 + A3, B0 + B1, B2 + B3}

HSUBPD - (Horizontal-Kurangi-Dikemas-Double) Masukan: {A0, A1}, {B0, B1} Output: {A0 - A1, B0 - B1}

HSUBPS - (Horizontal-Kurangi-Dikemas-Single) Masukan: {A0, A1, A2, A3}, {B0, B1, B2, B3} Output: {A0 - A1, A2 - A3, B0 - B1, B2 - B3}

LDDQU - Sebagaimana dinyatakan di atas, ini adalah sejajar beban vektor bilangan bulat alternatif. Hal ini dapat membantu untuk tugas-tugas kompresi video.

MOVDDUP, MOVSHDUP, MOVSLDUP - ini juga digunakan untuk bilangan kompleks, dan dapat membantu untuk perhitungan gelombang seperti suara.

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

MONITOR, MWAIT - Ini mengoptimalkan aplikasi multi-threaded, memberikan prosesor dengan Hyper-Threading kinerja yang lebih baik.

5. SSSE3Tambahan 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 belas instruksi yang melakukan penambahan horisontal atau operasi pengurangan. Enam instruksi yang mengevaluasi nilai absolut. 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. Dua instruksi yang melakukan byte-bijaksana, di tempat mengocok sesuai dengan operan

kontrol mengocok kedua. 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.

CPU dengan SSSE3

AMD : Bobcat Buldoser Piledriver

Intel : Xeon 5100 Series Xeon 5300 Series Xeon 3000 Series Core 2 Duo Core 2 Extreme Core 2 Quad Core i7 Core i5 Core I3

Pentium Dual Core  Celeron 4xx Urutan Conroe-L Celeron Dual Core E1200 Celeron M 500 series Atom

VIA : Nano

6. SSE4SSE4 (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

Skema Teknologi Hyper-Threading Intel.

Hyper-threading (resmi Teknologi Hyper-Threading atau HT Technology, disingkat HTT atau HT) adalah Intel milik simultan multithreading (SMT) implementasi digunakan untuk meningkatkan paralelisasi perhitungan (melakukan

beberapa tugas sekaligus) dilakukan pada mikroprosesor PC. Ini pertama kali muncul pada bulan Februari 2002 tentang Xeon Server prosesor dan pada bulan November 2002 tentang Pentium 4 desktop CPU.  Kemudian, Intel termasuk teknologi ini di Itanium , Atom , dan Core 'i' Seri CPU, antara lain.

Untuk setiap inti prosesor yang hadir secara fisik, dengan sistem operasi membahas dua core virtual atau logis, dan saham beban kerja antara mereka bila memungkinkan. Fungsi utama dari hyper-threading adalah untuk mengurangi jumlah instruksi tergantung pada pipa. Ia mengambil keuntungan dari superscalar arsitektur (beberapa instruksi beroperasi pada data yang terpisah secara paralel). Mereka muncul ke OS sebagai dua prosesor, sehingga OS dapat menjadwalkan dua proses sekaligus. Selain dua atau lebih proses dapat menggunakan sumber daya yang sama. Jika satu proses gagal maka sumber daya dapat segera kembali dialokasikan.

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 yang menggabungkan Teknologi Hyper-Threading Intel Pentium

Hyper-threading bekerja dengan menduplikasi bagian tertentu dari prosesor-orang yang menyimpan negara arsitektur - tetapi tidak menduplikasi sumber utama eksekusi. Hal ini memungkinkan prosesor hyper-threading untuk tampil sebagai prosesor biasa "fisik" dan tambahan "logis" prosesor ke sistem operasi host (sistem operasi HTT-sadar melihat dua "fisik" prosesor), yang memungkinkan sistem operasi untuk menjadwalkan dua benang atau proses secara bersamaan dan tepat. Ketika sumber daya eksekusi tidak akan digunakan oleh tugas saat ini di prosesor tanpa hyper-threading, dan terutama ketika prosesor terhenti, prosesor dilengkapi hyper-threading dapat menggunakan sumber daya eksekusi untuk

menjalankan tugas lain dijadwalkan.(Prosesor mungkin kios karena cache miss , cabang misprediction , atau data ketergantungan .)

Teknologi ini transparan untuk sistem operasi dan program. Minimum yang diperlukan untuk mengambil keuntungan dari hyper-threading adalahSymmetric Multiprocessing (SMP) dukungan dalam sistem operasi , seperti prosesor logis muncul sebagai prosesor yang terpisah standar.

Hal ini dimungkinkan untuk mengoptimalkan perilaku sistem operasi pada multi-prosesor sistem yang mampu hyper-threading. Sebagai contoh, perhatikan sistem SMP dengan dua 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.

Keuntungan dari hyper-threading terdaftar sebagai: meningkatkan dukungan untuk kode multi-threaded, memungkinkan beberapa thread untuk berjalan secara simultan, meningkatkan reaksi dan waktu respon.

Menurut Intel implementasi pertama hanya digunakan 5% lebih daerah mati daripada prosesor non-hyperthreaded sebanding, tapi kinerja adalah 15-30% lebih baik.

Intel mengklaim hingga peningkatan kinerja 30% dibandingkan dengan dinyatakan identik, non- simultan multithreading Pentium 4. Hardware Tom menyatakan "Dalam beberapa kasus P4 berjalan pada 3,0 GHz dengan HT di bahkan bisa mengalahkan P4 berjalan pada 3,6 GHz dengan HT diaktifkan off. " [10] Intel juga mengklaim peningkatan kinerja yang signifikan dengan 4 prosesor hyper-threading-enabled Pentium dalam beberapa algoritma kecerdasan buatan.

Secara keseluruhan sejarah kinerja hyper-threading adalah satu campuran di awal. Sebagai salah satu komentar pada komputasi kinerja tinggi dari November 2002 mencatat:

Hyper-Threading dapat meningkatkan kinerja beberapa MPI aplikasi, tetapi tidak semua. Tergantung pada konfigurasi cluster dan yang paling penting, sifat aplikasi yang berjalan pada cluster, keuntungan kinerja dapat bervariasi atau bahkan menjadi negatif. Langkah selanjutnya adalah dengan menggunakan alat kinerja untuk memahami apa daerah berkontribusi terhadap peningkatan kinerja dan apa daerah berkontribusi terhadap penurunan kinerja. 

Seperti disebutkan di atas peningkatan kinerja terlihat sangat aplikasi-tergantung,. Namun ketika menjalankan dua program yang memerlukan perhatian penuh dari prosesor itu benar-benar dapat tampak seperti salah satu atau kedua program melambat sedikit ketika Hyper-Threading Technology dihidupkan. Hal ini disebabkan oleh sistem ulangan dari 4 Pentium mengikat sumber daya berharga eksekusi, menyamakan sumber daya prosesor antara dua program yang menambahkan jumlah bervariasi dari waktu eksekusi. Pentium 4 dan Xeon "Prescott inti" memperoleh antrian replay, yang mengurangi waktu eksekusi yang dibutuhkan untuk sistem replay. Ini cukup untuk sepenuhnya mengatasi itu memukul kinerja.

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 hyper-threading 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. SpeedStepSpeedStep 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.

Masalah ketika menggunakan SpeedStep 

Microsoft telah melaporkan bahwa mungkin ada masalah pratinjau file video ketika SpeedStep (atau AMD setara PowerNow! ) diaktifkan di bawah Windows 2000 atau Windows XP. Hal ini juga dapat menurunkan keandalan ketika overclocking.

Dukungan sistem operasi 

BSD 

Kernel BSD memiliki integrasi dukungan SpeedStep penuh.

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 x86Dalam 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.

Virtualisasi berbasis software 

Dalam modus dilindungi Kernel berjalan pada privilege menjadi lebih tinggi seperti cincin 0, dan aplikasi pada hak istimewa yang lebih rendah seperti cincin 3. Demikian pula, OS tuan rumah harus mengontrol prosesor sedangkan OS tamu dicegah dari akses langsung ke perangkat keras. Salah satu pendekatan yang digunakan dalam virtualisasi berbasis software x86 disebutdeprivileging cincin, yang melibatkan menjalankan OS tamu di sebuah cincin yang lebih tinggi dari 0.

Tiga teknik membuat virtualisasi protected mode mungkin:

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 di-cache 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.

I / O perangkat emulasi: perangkat tidak didukung pada OS tamu harus ditiru oleh emulator perangkat yang berjalan di host OS.

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-dan-meniru 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 Phenom CPU

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 .

Intel virtualisasi (VT-x) 

"Intel VT-x" beralih ke halaman ini. Hal ini tidak menjadi bingung dengan Intel VT-i .

Intel Core i7 (Bloomfield) CPU

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 . 

VIA virtualisasi (VIA VT) 

VIA Nano 3000 Series Prosesor dan dukungan yang lebih tinggi yang disebut teknologi virtualisasi VIA VT kompatibel dengan Intel VT.

Software menggunakan AMD-V dan / atau Intel VT Chipset 

Memori dan I / O virtualisasi dilakukan oleh chipset .Biasanya fitur ini harus diaktifkan oleh BIOS, yang harus mampu mendukung mereka dan juga diatur untuk menggunakannya.

I / O MMU virtualisasi (AMD-Vi dan VT-d) 

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:

AMD I / O Virtualization Technology, "AMD-Vi", awalnya disebut "IOMMU". Intel "Virtualization Technology untuk Directed I / O" (VT-d). [33] Termasuk di sebagian

besar tapi tidak semua prosesor berbasis Nehalem.

Virtualisasi jaringan (VT-c) 

Intel "Teknologi Virtualisasi untuk Konektivitas" (VT-c).

PCI-SIG I / O virtualisasi (IOV) 

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.Multi-akar IOV (MR-IOV)ini mendukung IOV asli di topologi baru (misalnya, server blade) dengan membangun SR-IOV untuk menyediakan beberapa kompleks akar yang berbagi umum hirarki PCI-E.

Dalam SR-IOV, yang paling umum dari ini, VMM tuan mengkonfigurasi perangkat yang didukung untuk menciptakan dan mengalokasikan virtual "bayangan" dari ruang konfigurasi mereka sehingga tamu mesin virtual dapat langsung mengkonfigurasi dan mengakses seperti "bayangan" sumber daya perangkat.

Intel Turbo Boost

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 2.26 GHz 2000 + (2 × 133) = 2000 + 267 = 2267

2 8 3.06 GHz 2000 + (8 × 133) = 2000 + 1067 = 3067

1 9 3.20 GHz 2000 + (9 × 133) = 2000 + 1200 = 3200

Untuk Core i7-2920XM. Frekuensi operasi normal adalah 2,5 GHz. Turbo diindikasikan sebagai: 7/7/9/10 di mana nomor pertama adalah beberapa dari 100 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 suhu, konsumsi arus dan daya, prosesor dapat meningkatkan kecepatan clock (dari frekuensi dasar 2,5 GHz) dalam langkah 100 MHz ke:

# Core aktif

# Turbo LangkahMax

frekuensiPerhitungan

3 atau 4 7 3.20 GHz 2500 + (7 × 100) = 2500 + 700 = 3200

2 9 3.40 GHz 2500 + (9 × 100) = 2500 + 900 = 3400

1 10 3.50 GHz 2500 + (10 × 100) = 2500 + 1000 = 3500