2009-06-30 17 views
16

लिनस टोरवाल्ड्स ट्रांसमेटा नामक प्रोसेसर कंपनी के लिए काम करते थे। वे प्रोसेसर कोर में एक आरआईएससी आधारित वस्तु थी। अगर मुझे सही याद है, तो विचार यह था कि कोर एक मनमानी और अपग्रेड करने योग्य "प्रोसेसर इम्यूलेशन लेयर" चला सकता है (x86, powerpc आदि हो सकता है), जिसने आरआईएससी कोर निर्देश सेट में उच्च स्तरीय ऑपकोड का अनुवाद किया।कोड मॉर्फिंग कहां गया?

इस विचार का क्या हुआ, और आपकी राय में क्या पेशेवरों, विपक्ष और स्थितियों में, जहां इस तरह के दृष्टिकोण एक फायदा (प्रोग्रामिंग के संदर्भ में) था हो सकता था रहे थे?

+2

+1 बहुत ही रोचक सवाल। मैं किसी के लिए x86 फ़्लैश प्लेयर को एआरएम में अनुवाद करने का इंतजार कर रहा हूं। :-) – Zifre

+0

कोड मॉर्फिंग ने एनवीआईडीआईए * डेनवर * कोर में पहली बार एचटीसी Google नेक्सस 9 टैबलेट (जिसका टेग्रा के 1 एसओसी में दो * डेनवर * कोर हैं) में पुनरुत्थान देखा था। आंतरिक रूप से, यह 7-चौड़ा इन-ऑर्डर VLIW है। एनवीआईडीआईए कोड-मॉर्फिंग तकनीक "गतिशील कोड अनुकूलन" कहता है। यह मूल रूप से अंतर्निहित कोर के लिए रनटाइम पर ARMv8-A कोड का अनुवाद और अनुकूलन करता है और परिणामस्वरूप स्मृति के समर्पित ब्लॉक में कैश करता है। आदर्श स्थितियों के तहत (उदा।दोहराव, अनुमानित कोड), यह लगभग डेस्कटॉप * हैसवेल * की तरह करता है; कम से कम आदर्श स्थितियों में, यह कॉर्टेक्स-ए 53 से बहुत तेज नहीं हो सकता है। – bwDraco

+0

मेरे पास नेक्सस 9 है और इसे काफी व्यापक रूप से उपयोग करें; अधिकांश लाइटर सिंगल-थ्रेडेड कार्यों में, यह काफी अच्छा प्रदर्शन करता है, लेकिन जब कई चीजें एक साथ करने के लिए कहा जाता है तो यह खराब प्रदर्शन से पीड़ित होता है। केवल दो कोर होने और अप्रत्याशित कोड पसंद नहीं है (जहां अनुकूलित संस्करण अभी तक कैश नहीं किए गए हैं और पहले संकलित करने की आवश्यकता है या 128 एमबी कैश में पूरी तरह फिट नहीं है) ध्यान से जटिल वर्कलोड प्रदर्शन को नुकसान पहुंचाता है। प्रोसेसर में आंतरिक रूप से एआरएम डिकोडर कोड के फ़ॉलबैक के रूप में होता है जिसका अनुवाद और अनुकूलित नहीं किया जाता है लेकिन यह बहुत धीमा है। उच्च घड़ी की गति (2.3 गीगाहर्ट्ज) कुछ हद तक इसके लिए तैयार होती है। – bwDraco

उत्तर

7

कंपनी के साथ-साथ वे उम्मीद नहीं किया, और अंत में इसके लिए Novafora ने अधिग्रहण कर लिया गया बिजली की बचत तकनीक है। (http://www.novafora.com/pr01-28-09.html)

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

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

सबसे अच्छा, यह पोर्टेबल दूरस्थ डेस्कटॉप के लिए अच्छा था।

IMHO, प्रौद्योगिकी सॉफ्टवेयर वी एम का नेट की तरह और JVM के रूप में ही लाभ हैं:

  • उल्टा है कि आप शायद कोड तेजी से एक हार्डवेयर समाधान के साथ (प्रेरित कर सकते हैं आईबीएम की तरह के साथ करता है यह जावा त्वरक प्रोसेसर है) शुद्ध सॉफ्टवेयर जेआईटी से।
  • नकारात्मक पक्ष यह है कि आप कभी कच्चे प्रदर्शन कि क्रियान्वित प्रोसेसर देशी कोड प्राप्त हो जाता है।

कुछ दृष्टिकोणों से आप आधुनिक x86 चिप्स को कोड मॉर्फिंग के रूप में सोच सकते हैं, हालांकि बहुत विशिष्ट हैं।वे x86 आर्किटेक्चर को अधिक कुशल आरआईएससी-जैसे सबइंस्ट्रक्शन सेट में अनुवाद करते हैं, और फिर उनको निष्पादित करते हैं।

इस प्रकार की तकनीक का एक और उदाहरण एफपीजीए हो सकता है जिसे सर्किट स्तर पर विभिन्न प्रकार के प्रोसेसर या कच्चे सर्किट पर अनुकरण करने के लिए प्रोग्राम किया जा सकता है। मेरा मानना ​​है कि कुछ क्रे सिस्टम इस तरह के "त्वरक नोड्स" के साथ आ सकते हैं।

3

स्पष्ट पेशेवरों: किसी भी ओएस चलाने के लिए

  • क्षमता
  • संभावना (बस क्या जरूरत है करने के लिए प्रोसेसर अनुकरण स्विच) एक ही प्रोसेसर पर विभिन्न आर्किटेक्चर के लिए बाइनरी चलाने का (बेशक गिरी समर्थन के साथ)/सॉफ्टवेयर समर्थन के बिना ओएस।

स्पष्ट चोर:

  • अतिरिक्त अनुकरण परत == अधिक भूमि के ऊपर == तेज़ प्रोसेसर सब कुछ के लिए बराबर प्रदर्शन प्राप्त करने की जरूरत है।
4

एक बात के लिए अधिकांश सीआईएससी प्रोसेसर आंतरिक रूप से अपने ओपोड्स को माइक्रो-ऑप्स में अनुवाद करते हैं जो आरआईएससी ओप के समान होते हैं। पाइपलाइनिंग और एकाधिक कोरों ने आरआईएससी प्रोसेसर पर उस बिंदु पर अंतर को बंद कर दिया है, जहां यह किसी के बीच बहुत छोटा अंतर है। यदि आपको सी स्रोत या किसी अन्य असेंबली फ्रंट एंड से क्रॉस संगतता की आवश्यकता है तो आप एलएलवीएम का उपयोग कर सकते हैं। http://llvm.org/

2

अधिकांश आधुनिक प्रोसेसर वास्तव में microcode का उपयोग करके अपने निर्देश सेट को लागू करते हैं। संगतता चिंताओं सहित इसके कई कारण हैं, लेकिन अन्य कारण भी हैं।

"हार्डवेयर" और "सॉफ़्टवेयर" के बीच का अंतर वास्तव में बनाना मुश्किल है। आधुनिक वर्चुअल मशीन जैसे कि जेवीएम या सीआईएल (.NET) हार्डवेयर में भी कार्यान्वित किया जा सकता है, लेकिन शायद यह माइक्रोकोड का उपयोग करके किया जाएगा।

एक प्रणाली में अमूर्त की कई परतों होने के कारणों में से एक यह है कि प्रोग्रामर/इंजीनियरों अप्रासंगिक विवरण के बारे में सोचने के लिए जब वे एक उच्च स्तर पर काम कर रहे हैं नहीं है।

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

3

मैं कहूंगा कि लागत में कटौती मात्रा के साथ आती है, इसलिए ट्रांसमेटा चिप की तरह कुछ मौजूदा वॉल्यूम x86 चिप्स के साथ कीमत पर प्रतिस्पर्धा करने से पहले बहुत मात्रा में बेचना पड़ता है।

यदि मुझे याद है, ट्रांसमेटा चिप का बिंदु यह था कि यह कम शक्ति थी। प्रत्येक घड़ी चक्र आगे और आगे फ्लिप करने के लिए कम सिलिकॉन द्वार होने से ऊर्जा बचाती है। कोड मॉर्फिंग था ताकि आप कम पावर आरआईएससी चिप पर एक जटिल निर्देश सेट (सीआईएससी) चला सकें।

ट्रांसमेटा का पहला प्रोसेसर, क्रूसो, बेंचमार्क सॉफ़्टवेयर चलाने की समस्याओं के कारण बहुत अच्छी तरह से नहीं किया। उनके दूसरे प्रोसेसर, दफीसन ने इंटेल एटम (उसी प्रदर्शन श्रेणी में) की तुलना में कम शक्ति का उपयोग करने का प्रबंधन किया, और उसी पावर लिफाफे में सेंट्रिनो से बेहतर प्रदर्शन किया।

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

तो ऐसा लगता है कि वर्चुअलाइजेशन के किसी भी रूप की तरह कोड मॉर्फिंग, संसाधनों के साथ अधिक कुशल होने के बारे में है।

3

हार्डवेयर-समर्थित x86 आईएसए वर्चुअलाइजेशन के लिए एक और दृष्टिकोण के लिए, आप Loongson 3 सीपीयू के बारे में पढ़ना चाह सकते हैं।

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