2012-06-16 8 views
9

मैं जीसीसी के साथ संकलित एआरएम सी/सी ++ कोड के प्रदर्शन अनुकूलन पर काम कर रहा हूं। सीपीयू Tegra 3. जैसा कि मुझे झंडे पता है- mthumb मतलब पुराने 16-बिट अंगूठे निर्देश उत्पन्न करना है। विभिन्न परीक्षणों पर, मेरे पास 10-15% प्रदर्शन वृद्धि है -मर्म के खिलाफ -मर्म।जीसीसी-मिथम्ब विरुद्ध -मार्म

Is -mthumb केवल संगतता के लिए उपयोग किया जाता है और प्रदर्शन के लिए -र्म हमेशा बेहतर होता है? मैं पूछ रहा हूं, क्योंकि एंड्रॉइड-सेमेक का इस्तेमाल किया गया था- रिलीज मोड में मिथम्ब और डीबग में मार्म, जो मेरे लिए बहुत भ्रमित है।

उत्तर

21

अंगूठे पुराने निर्देश-सेट नहीं है, बल्कि वास्तव में नया है। वर्तमान संशोधन थंब -2 है, जो एक मिश्रित 16/32-बिट निर्देश सेट है। थंब 1 निर्देश सेट मूल एआरएम निर्देश सेट का संपीड़ित संस्करण था। सीपीयू निर्देश लाएगा, इसे एआरएम में डिकंप्रेस करेगा और फिर इसे संसाधित करेगा। इन दिनों (एआरएमवी 7 और ऊपर), थंब -2 को सब कुछ के लिए पसंद किया जाता है लेकिन प्रदर्शन महत्वपूर्ण या सिस्टम कोड। उदाहरण के लिए, जीसीसी डिफ़ॉल्ट रूप से एआरएमवी 7 (आपके टेग्रा 3 की तरह) के लिए थंब 2 उत्पन्न करेगा, क्योंकि 16/32-बिट आईएसए द्वारा प्रदान किया गया उच्च कोड घनत्व बेहतर आईशैच उपयोग के लिए अनुमति देता है। लेकिन यह ऐसा कुछ है जो सामान्य बेंचमार्क में मापना बहुत मुश्किल है, क्योंकि अधिकांश मानक एल 1 आईसीएच में फिट होंगे। http://en.wikipedia.org/wiki/ARM_architecture#Thumb

+1

उत्कृष्ट जवाब:

अधिक जानकारी के लिए विकिपीडिया साइट की जाँच करें। गेमबॉय एडवांस में ज्यादातर 16 बिट हैं, शून्य प्रतीक्षा राज्य नहीं, डेटा बसेस और अंगूठे का प्रदर्शन एआरएम से काफी बेहतर था। अंगूठे हाथ से अधिक निर्देश लेता है तो उस सम्मान में धीमा है। थंब 2 अंगूठे का विस्तार है, आपके पास अभी भी अंगूठे के निर्देश हैं, thumb2 पूर्व में अनिश्चितता का उपयोग करता है और कई 32 बिट निर्देश हैं। –

+0

अच्छा संक्षेप प्रश्नोत्तर – tniles09

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