İçeriğe atla

XSAVE

Mimari referansıFeex

XSAVE, vektör yazmaçları gibi işlemci durumunu kaydetmeye yönelik genişletilebilir x86 mekanizmasıdır. Donanım desteği, işletim sistemi etkinleştirmesi ve etkinleştirilmiş durum bileşenleri ayrı konulardır.

Bilmeniz gerekenler

XSAVE, vektör yazmaçları gibi işlemci durumunu kaydetmeye yönelik genişletilebilir x86 mekanizmasıdır. Donanım desteği, işletim sistemi etkinleştirmesi ve etkinleştirilmiş durum bileşenleri ayrı konulardır.

Nasıl çalışır

XSAVE mimarisi, hangi bileşenlerin etkinleştirildiğini ve kaydedildiğini açıklamak için numaralandırılmış bir durum düzeni ve maskeler kullanır. CPUID 0DH yaprağı, desteklenen bileşenleri ve boyutları açıklar. XCR0, uygun kullanıcı durumu bileşenlerini denetlerken OSXSAVE, yazılıma işletim sisteminin XSAVE ortamını etkinleştirdiğini bildirir.

Nerede yararlıdır

AVX'i kullanıp kullanamayacağına karar veren bir çalışma zamanı, hem işlemcinin AVX bitine hem de işletim sistemi tarafından etkinleştirilmiş XMM/YMM durumuna ihtiyaç duyar. Bir bağlam veya sinyal uygulaması, eski sabit boyutlu bir arabelleğin yeterli olduğunu varsaymak yerine alanı etkinleştirilmiş duruma göre ayırmalıdır.

Destek ve etkinleştirme durumu nasıl kontrol edilir

XSAVE için CPUID.01H:ECX 26. bitini ve OSXSAVE için 27. bitini kontrol edin. Ancak bundan sonra izin verildiği şekilde XGETBV kullanın ve gerekli XCR0 bitlerini inceleyin. Başka bir makineden bir boyutu sabit kodlamak yerine durum düzeni için 0DH yaprağını numaralandırın.

Durum yönetimi olanakları öncelikle işletim sisteminin ve çalışma zamanının sorumluluğundadır. Arabellekler, maskeler, bileşen boyutları, hizalama ve geri yükleme kuralları mimari ve yürütme moduyla uyumlu olmalıdır. Yalnızca bir alt kümeyi kaydetmek, ek etkinleştirilmiş durumu kullanan kodu bozabilir.

Özelliğin sağlamadığı durumlar

XSAVE desteği tek başına AVX, AVX-512 veya AMX'in kullanılabilir olduğu anlamına gelmez. Gerekli destek ve işletim sistemi etkinleştirmesi belirlenmeden önce XGETBV kullanılmamalıdır. Farklı XSAVE ailesi komutlarının ayrı numaralandırma ve düzen kuralları vardır.

Uygulamada uyumluluk ve performans

Uygulama düzeyinde özellik algılama, mümkün olduğunda güncel bir çalışma zamanı arabirimi kullanmalıdır. Donanım desteğini işletim sistemi etkinleştirmesinden ve dinamik özellikler için işlem izninden ayırt edin. Tek başına bir CPU etiketi, rastgele bir kaydetme/geri yükleme dizisinin doğru olduğunu kanıtlayamaz.

Pratik bir doğrulama kontrol listesi

  1. İlgili tam işlemci veya platform modelini ve uygulama, işletim sistemi ve çalışma zamanı sürümlerini kaydedin. Gerçek hatanın veya gereksinimin metnini koruyun.
  2. Bu tam model için üretici referansını kontrol edin, ardından programın çalıştığı ortamda geçerli yeteneği ve etkinleştirilmiş durumu inceleyin.
  3. Seçilen ikili dosyanın veya arka ucun her gereksinimini karşılaştırın. Benzer şekilde adlandırılmış bir özellik, diğer ad veya genel teknoloji etiketi yeterli değildir.
  4. Uygulamanın hedeflenen uygulamayı seçtiğini onaylayın. Gereksinimler karşılanmadığında belgelenmiş tanılamalarını ve desteklenen bir geri dönüşü kullanın.
  5. Her seferinde desteklenen bir değişiklik yapın ve aynı iş yükünü tekrarlayın. Orijinal yapılandırmayı ve kurtarma yolunu kullanılabilir durumda tutun.

Özellik listeleniyor ancak yazılım kullanamıyorsa

Hata veren tam bileşenle başlayın. Bir donanım veritabanı kayıtlı yeteneği açıklar; işletim sistemi veya hipervizör farklı bir geçerli ortam sunabilir. Geçersiz komut hatası, gerçek hatalı komutun ve ikili yapının da incelenmesini gerektirir, çünkü bozulma veya ilgisiz, desteklenmeyen bir komut benzer bir belirti üretebilir.

Tam platform için desteklenen uygulama, sürücü veya çalışma zamanı sürümünü yükleyin ve gerekirse satıcının belgelenmiş temel veya geri dönüş derlemesini kullanın. Bir yazılım güncellemesi, işlemcide eksik olan bir komutu oluşturamaz. Bellenim ve güvenlik politikası değişiklikleri, genel bir optimizasyon tarifi yerine sistem üreticisinin prosedürünü ve bir kurtarma planını izlemelidir.

Bu açıklamanın kaynakları ve kapsamı

Intel 64 ve IA-32 Mimarileri Yazılım Geliştirici Kılavuzu · Linux çekirdeği: kullanıcı alanında XSTATE özelliklerini kullanma

Bu referanslar mimari davranışı ve yazılım gereksinimlerini belirler. Bağlantılı bir donanım modeli sayfasındaki her özellik değerini bağımsız olarak doğrulamazlar. Model desteği için ilgili sayfanın üretici kanıtlarını kullanın ve geçerli sistem yapılandırmasını kontrol edin. Bu makale bir kıyaslama, sertifikasyon veya bağımsız inceleme tarihi sağlamaz.

Kaynaklar ve doğrulama

Editoryal mülkiyet: Feex. Bağımsız bir inceleme tarihi kaydedilmemiştir. Nasıl araştırıyoruz.

Bu makale yararlı oldu mu?

Evet veya hayır yeterlidir. İsterseniz bir neden seçin veya kısa bir not ekleyin.

Bu makale yararlı oldu mu?