2013-01-24 7 views
5
पर

किसी को भी पता है क्या एर्ग एप्पल ए 5, A5X, A6 और A6X प्रोसेसर पर है?अनन्य आरक्षण छोटा दाना (एर्ग) एप्पल के प्रोसेसर

हम एलडीआरईएक्स/स्ट्रेक्स निर्देशों के साथ एक अस्पष्ट बग में भाग गए और व्यवहार ए 5 और ए 6 के बीच अलग है। मेरे पास एकमात्र स्पष्टीकरण यह है कि उनके पास अलग ईआरजी है, लेकिन उस पर कुछ भी नहीं मिल रहा है। मुझे इस मूल्य को पुनः प्राप्त करने का कोई तरीका नहीं मिला, एमओसी निर्देश आईओएस पर उपयोगकर्ता मोड में निषिद्ध है।

धन्यवाद!

+0

जबकि एक सही सवाल है, मैं करने के लिए कारण है कि आप डिबगिंग के उद्देश्य के लिए पता करने की जरूरत के रूप में कुछ हद तक intrigued रहा हूँ? ईआरजी के आकार में प्रदर्शन प्रभाव के अलावा कुछ भी नहीं होना चाहिए। क्या आप समझा सकते हैं कि आप जो व्यवहार देख रहे हैं वह है, और आप इसके बजाय क्या देखने की उम्मीद कर रहे थे? – unixsmurf

+0

हमें एक बग का सामना करना पड़ा जब संकलक ने एक कोड उत्पन्न किया जो एक विशेष रूप से एक्सेस किए गए चर को पढ़ने के दौरान ईआरजी को मारा - इस प्रकार एक अंतहीन पाश में प्रवेश करना क्योंकि STREX हमेशा विफल रहा। यह विफलता केवल ए 6 एक्स उपकरणों पर हुई। –

+0

ठीक है। लेकिन प्रभावित कोड को देखे बिना, मैं इस बात पर टिप्पणी करने में असमर्थ हूं कि क्या आपके पास वास्तविक हार्डवेयर बग हो सकता है, या आपके पास क्या है (सूक्ष्म) सॉफ़्टवेयर बग है कि आप अपने ताले को सावधानी से संरेखित करके चारों ओर काम कर सकते हैं, लेकिन वापस पॉप कर सकते हैं अन्य प्रोसेसर पर फिर से। ईआरजी _does_not_ आर्किटेक्चररी सही हार्डवेयर पर प्रदर्शन से किसी भी अन्य तरीके से आर्किटेक्चररी सही सॉफ़्टवेयर को प्रभावित करता है। – unixsmurf

उत्तर

2

ओएमएपी 4460 (एआरएम कॉर्टेक्स-ए 9, ऐप्पल ए 5/ए 5 एक्स के समान) ईआरजी 32 बाइट्स (जो कैश लाइन आकार के समान है) पर है।

मुझे नहीं पता कि वे मान A6/A6X पर हैं (और आपके स्वयं के ड्राइवर को लोड किए बिना पता लगाने का कोई तरीका नहीं है, जिसे आप ऐप्पल डिवाइस पर नहीं कर सकते), लेकिन मेरा अतिथि यह है कि कैश लाइन आकार 64 बाइट तक बढ़ी, और इसी तरह ईआरजी भी हुआ।

वैकल्पिक रूप से, आप आर्किटेक्चरल अधिकतम 512 शब्दों (2 के बाइट्स) के लिए एल्गोरिदम अनुकूलित कर सकते हैं।

+0

हमारे परीक्षण से पता चलता है कि यह 64 बाइट भी है। अजीब बात यह है कि ए 5 के लिए परीक्षण हमेशा काम करता है जैसे कि यह ईआरजी के बिना काम करता है। –

-1

ईआरजी आकार महत्वपूर्ण विचार है ldrex/strex का उपयोग करते समय विचार।

जब कोई एलडीआरएक्स जारी किया गया है, तो अगर ईआरजी में स्मृति पहुंच होती है जिसमें एलडीआरएक्स पढ़ा जाता है, तो स्ट्रिक्स विफल हो जाएगा।

ऐसी संरचना नहीं है जिसमें एक एलडीआरएक्स/स्ट्रेक्स लक्ष्य और कुछ अतिरिक्त डेटा शामिल हो, जहां अतिरिक्त डेटा ldrex/strex pair (उदाहरण के लिए, ldex द्वारा लोड किए गए मान को संग्रहीत करने के लिए) के बीच एक्सेस किया जाता है।

यदि एलडीआरएक्स/स्ट्रेक्स लक्ष्य संरचना में अपर्याप्त पैडिंग है (यानी ईआरजी आकार चुना गया है तो बहुत छोटा है) इसलिए संरचना के अन्य सदस्यों तक पहुंच से स्ट्रक्स हमेशा विफल हो जाएगा।

खेल खत्म हो गया, बाहर रोशनी।

एलडीआरएक्स/स्ट्रेक्स के संबंध में, एआरएम एक "स्थानीय मॉनीटर" और "ग्लोबल मॉनिटर" लागू करता है। केवल एक स्थानीय निगरानी, ​​एक ही रास्ता एक ldrex/strex असफल हो सकता है के साथ सिस्टम पर है अगर दो ldrexs एक ही पते एक strex करने से पहले पर जारी किए जाते हैं जारी किए गए होने - केवल वैश्विक पर नज़र रखता है के साथ सिस्टम वास्तव में की एर्ग भीतर स्मृति बस यातायात नोटिस ldrex/strex लक्ष्य।

एआरएम सिस्टम बेहद अलग-अलग होते हैं और मुझे संदेह है कि ऐसे सिस्टम हैं जिनमें केवल स्थानीय मॉनीटर हैं और वास्तव में वास्तव में एलडीआरएक्स/स्ट्रेक्स का समर्थन नहीं करते हैं।

+1

यह वास्तव में प्रश्न का उत्तर नहीं देता है। –

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