2011-07-13 7 views
22

मैं इंटेल डेटापत्रक देख रहा हूँ: इंटेल 64 और IA-32 आर्किटेक्चर सॉफ्टवेयर डेवलपर की मैनुअल और मैं के बीच अंतर नहीं मिल सकता हैMOVDQA और MOVAPS x86 निर्देशों के बीच अंतर?

  • MOVDQA: ले जाएँ निरपेक्ष डबल Quadword
  • MOVAPS: ले जाएँ निरपेक्ष मैं दोनों के लिए निर्देश प्राप्त कर सकते हैं पैक्ड एकल प्रेसिजन

इंटेल डेटापत्रक में:

यह निर्देश एक 128-बिट स्मृति स्थान से एक XMM रजिस्टर लोड करने के लिए, एक 128 बिट स्मृति स्थान में एक XMM रजिस्टर की सामग्री को स्टोर करने के लिए, या दो XMM रजिस्टरों के बीच डेटा स्थानांतरित करने के लिए इस्तेमाल किया जा सकता ।

फर्क सिर्फ इतना है:

करने के लिए या असंरेखित स्मृति स्थानों से एक डबल quadword जाने के लिए, MOVDQU अनुदेश का उपयोग करें।

और

असंरेखित स्मृति स्थल के लिए या से भरे एकल परिशुद्धता फ्लोटिंग प्वाइंट मान ले जाते हैं, MOVUPS अनुदेश का उपयोग करें।

लेकिन मुझे दो अलग-अलग निर्देशों का कारण क्यों नहीं मिला?

तो क्या कोई अंतर बता सकता है?

+0

इसके अलावा MOVAPD उनके जैसा ही लगता है। – Calmarius

उत्तर

38

कार्यक्षमता में, वे समान हैं।

पर (लेकिन सभी नहीं) माइक्रो-आर्किटेक्चर, "डोमेन क्रॉसिंग दंड" के कारण समय अंतर हैं। इस कारण से, आम तौर पर movdqa का उपयोग करना चाहिए जब डेटा को पूर्णांक एसएसई निर्देशों के साथ उपयोग किया जा रहा है, और movaps जब डेटा फ़्लोटिंग-पॉइंट निर्देशों के साथ उपयोग किया जा रहा हो। इस विषय पर अधिक जानकारी के लिए, इंटेल ऑप्टिमाइज़ेशन मैनुअल, या एग्नेर फोग की उत्कृष्ट माइक्रोआर्किटेक्चर गाइड से परामर्श लें। ध्यान दें कि ये देरी अक्सर लोड या स्टोर की बजाय रजिस्टर-रजिस्टर चाल से जुड़ी होती है।

+1

क्या आप विशिष्ट मैन्युअल प्रविष्टियों से लिंक कर सकते हैं? मुझे इस पर विश्वास करने में कठिनाई हो रही है क्योंकि एसएसई रजिस्टरों के पास उनके साथ एक प्रकार नहीं है (प्रकार निर्देशों में एन्कोड किया गया है) क्योंकि मुझे नहीं लगता कि अलग-अलग फ्लोट और पूर्णांक पथ हैं। हालांकि, उनके पास अलग-अलग ऑप-कोड होते हैं और विभिन्न निर्देश-सेट में पेश किए जाते हैं। MOVAPS एसएसई 1 है जबकि MOVDQA एसएसई 2 है। Http://www.intel.com/Assets/PDF/manual/248966.pdf –

+2

के अनुसार उनके पास भी वही विलंबता और थ्रूपुट है, आपका उत्तर मेरी तुलना में अधिक सही है। मैंने इसे हटा दिया। –

+16

@ जैस्पर बेकर: आप इसे पसंद नहीं कर सकते हैं, लेकिन यह अभी भी सच है। डोमेन की सामान्य चर्चा और उनके बीच बाईपास देरी के लिए, इंटेल ऑप्टिमाइज़ेशन मैनुअल देखें (2.2.3 उदाहरण के लिए नेहलेम माइक्रो आर्किटेक्चर पर डोमेन पर चर्चा करता है)।खतरे के एक ठोस, विशिष्ट उदाहरण के लिए, एग्नेर फोग के उत्कृष्ट संदर्भ के पृष्ठ 86 और 87 देखें http://www.agner.org/optimize/microarchitecture.pdf –

संबंधित मुद्दे