SORU
16 AĞUSTOS 2011, Salı


Ne "rep; nop;" 86 mecliste?

  • rep; nop ne anlama geliyor?
  • pause Aynı talimat mı?
  • rep nop (noktalı virgül olmadan) aynı şey mi?
  • nop basit talimat ne fark var?
  • Farklı AMD ve Intel işlemcilerde davranıyor mu?
  • (bonus) bu resmi belgeler için talimatlar?

Bu soru için motivasyon

another question yorum süre konuştuktan sonra rep; nop; (x 86 veya x-64) 86 mecliste ne anlama geldiğini bilmediğimi fark ettim. Ve de web üzerinde iyi bir açıklama bulamadım.

rep anlamına gelen bir önek olduğunu biliyorum< . em ^"bir sonraki öğretim cx kez tekrarlayın"(ya da en azından, eski 16-bit x 86 assembly). Buna göre summary table at Wikipedia anlaşılan rep sadece kullanılan movs, stos, cmps, lods, scas (ama belki de bu sınırlama kaldırıldı hakkında yeni işlemciler). Böylece, rep nop (noktalı virgül olmadan) nop işlemi tekrar düşünürdüm cx kez.

Ancak, daha fazla arama sonra, daha da kafam karıştı. rep; nop * map to the exactly same opcode*17 pause nop biraz daha farklı bir davranış var gibi görünüyor. Bazı old mail from 2005 farklı şeyler " dedi

  • < . em ^"çok fazla güç yakmamaya çalış"
  • < . "'' sadece 2 bayt kodlama." nop eşdeğerdir ^em
  • "ıntel büyüsü. 'Nop ama diğer HT kardeş koşalım".' gibi
  • < . em ^"ıntel Core duraklatma ve hızlı doldurma

Bu farklı görüşler, doğru anlamını anlayamadım.

Linux çekirdeği (i386 x86_64 hem) kullanılıyor, bu açıklama ile birlikte: /* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */ de aynı yorumu ile being used in BeRTOS.

CEVAP
16 AĞUSTOS 2011, Salı


rep; nop aslında pause Yönerge (F390 işlem kodu) aynıdır. pause Yönerge henüz destek yok birleştiriciler için de kullanılıyor olabilir. Önceki işlemcilerde, bu sadece hiçbir şey yapmadı, ** 25 ama iki bayt olarak) gibi. Hiper iş parçacığı destekleyen yeni işlemci, performansı artırmak için bir döngüsel yürütme işlemci için bir ipucu olarak kullanılır. Intel's instruction reference:

Spin-bekle döngüler performansını iyileştirir. Bir” Pentium 4 ya da, Intel tabanlı bir işlemci bellek kartı sipariş ihlali tespit çünkü döngü çıkarken ciddi bir performans kaybına uğrar. “spin-bekle döngü çalıştırırken PAUSE talimat kodu sırası-bekle spin bir döngü bu işlemci için bir ipucu sağlar. İşlemci bu ipucu büyük işlemci performansı artırır, çoğu durumda, bellek düzeni ihlali önlemek için kullanır. Bu nedenle, DURAKLAMA bir talimat tüm-bekle spin döngüleri yerleştirilmesi önerilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AmazonWireless

    AmazonWirele

    8 EYLÜL 2010
  • Khan Academy

    Khan Academy

    17 Kasım 2006
  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008