एएमडी Am29000

एएमडी एएम29000, जिसे सामान्यतः संक्षिप्त रूप से 29k कहा जाता है, एडवांस्ड माइक्रो डिवाइसेस (एएमडी) द्वारा विकसित और निर्मित 32-बिट आरआईएससी माइक्रोप्रोसेसरों और माइक्रोकंट्रोलर का एक भाग है। सेमिनल बर्कले आरआईएससी के आधार पर, 29k में कई महत्वपूर्ण संशोधन किए गए थे। वे कुछ समय के लिए, बाज़ार में सबसे लोकप्रिय आरआईएससी चिप्स थी, विभिन्न निर्माताओं के लेज़र प्रिंटर में इनका व्यापक रूप से उपयोग किया जाता था।

1984-1985 से विकसित, मार्च 1987 में घोषित किया गया और मई 1988 में निर्मुक्त किया गया, प्रारंभिक एएम29000 के बाद कई संस्करण आए, जिनमें से 1995 में एएम29040 सम्मिलित था। 29050 में एक फ्लोटिंग पॉइंट यूनिट की सुविधा प्रदान करने के लिए उल्लेखनीय था, जो प्रति साइकिल एक मल्टीप्लाई-एड ऑपरेशन को कार्यान्वित करने की क्षमता रखता था।

1995 के अंत तक, एएमडी एक सुपरस्केलर संस्करण डिज़ाइन कर रहा था, जब एएमडी ने 29k के विकास को बंद कर दिया क्योंकि डिज़ाइन टीम को व्यावसायिक पीसी (x86) की ओर समर्थन प्रदान करने के लिए स्थानांतरित कर दिया गया था। एएमडी के एम्बेडेड व्यवसाय का शेष भाग 80186 विशिष्टताओं के 186 भागों की ओर पुनर्गठन किया गया। उस समय तक, एएमडी के अधिकांश संसाधन डेस्कटॉप पीसी के लिए उनके उच्च-कार्यकरण x86 प्रोसेसर पर समर्पित थे, जहां 29k डिज़ाइन के कई विचार और व्यक्तिगत भागों का उपयोग करके एएमडी K5 का निर्माण किया गया।

डिजाइन
29000 उसी बर्कले आरआईएससी डिज़ाइन से विकसित हुआ जिससे सन स्पार्क, इंटेल i960, एआरएम और आरआईएससी-वी भी जन्म दिया।

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

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

29000 ने रजिस्टर विंडो स्टैक को एक इन-मेमोरी (और सिद्धांत में, कैश में) स्टैक के साथ विस्तारित भी किया। जब विंडो भर जाती थी, तो कॉल को रजिस्टर स्टैक के अंत से मेमोरी में पुश किया जाता, और जब रूटीन निर्वाचित होता है, अतः आवश्यकतानुसार पुनर्स्थापित किया जाता था। सामान्यतः 29000 का रजिस्टर उपयोग बर्कले अवधारणाओं पर आधारित प्रतिस्पर्धी डिज़ाइनों की तुलना में अधिक उन्नत था।

बर्कले डिज़ाइन के साथ एक और अंतर यह था कि 29000 में कोई विशेष-प्रयोजन स्थिति कोड रजिस्टर सम्मिलित नहीं था। इस प्रयोजन के लिए कोई भी रजिस्टर उपयोग किया जा सकता था, जिससे कुछ कोड को जटिल बनाने की लागत पर स्थितियों को सरलता से सुरक्षित किया जा सकता है। एक ब्रांच टारगेट कैश (29000 पर 512 बाइट और 29050 पर 1024 बाइट) ब्रांच टारगेट एड्रेस पर पाए जाने वाले 4 या 2 अनुक्रमिक इंस्ट्रक्शंस  के सेट को संग्रहीत करता था, जो ग्रहणी ब्रांचों के दौरान इंस्ट्रक्शन फेच की लटेंसी को कम करता था - 29000 में कोई ब्रांच पूर्वानुमान प्रणाली सामीलित नहीं थी, अतः यदि कोई ब्रांच लिया जाता था तो कुछ लेटेंसी होती थी। बफर इसे संशोधित करने में सहायता करता था, जो ब्रांच के टारगेट एड्रेस से चार या दो इंस्ट्रक्शंस को संग्रहीत करके स्थानांतरित कर सकता था, जिन्हें मेमोरी से नए इंस्ट्रक्शंस के लिए फेच बफर पूरित कर दिया जा सकता था। वर्चुअल एड्रेस ट्रांसलेशन के लिए समर्थन भी एमआईपीएस आर्किटेक्चर के समान दृष्टिकोण  अपनाया गया। एक 64-एंट्री ट्रांसलेशन लुक-असाइड बफ़र (टीएलबी) ने वर्चुअल से फिजिकल एड्रेस तक मैपिंग को मैपिंग को बनाए रखा, और अनट्रांसलेटेड एड्रेस के सामने आने पर, परिणामस्वरूप टीएलबी "मिस" से प्रोसेसर को सॉफ़्टवेयर रूटीन में ट्रैप कराने के लिए विकास से उत्तरदायी होने वाली किसी भी उपयुक्त मैपिंग को प्रदान करने के लिए उपयोग किया जाता था। एमआईपीएस दिशा के विपरीत, जो टीएलबी मिस इवेंट पर प्रतिस्थापित करने के लिए टीएलबी प्रविष्टि का चयन करने के लिए एक यादृच्छिक रजिस्टर को नियोजित किया, 29000 ने एक विशेष lru (लीस्ट रिसेंटली यूज़्ड) रजिस्टर प्रदान किया।[6] 29000 वर्ग में कुछ उत्पादों ने केवल 16 टीएलबी प्रविष्टियाँ प्रदान कीं ताकि सिलिकॉन का भाग संबंधित उपकरणों को समर्पित किया जा सके। इसके लिए, मैपिंग द्वारा उपयोग की जाने वाली अधिकतम पेज का साइज 8 KB से बढ़ाकर 16 MB कर दिया गया।

वर्चुअल एड्रेस ट्रांसलेशन के लिए समर्थन ने MIPS आर्किटेक्चर के समान दृष्टिकोण का पालन किया। एक 64-एंट्री ट्रांसलेशन लुक-असाइड बफर (टीएलबी) ने वर्चुअल से भौतिक पतों तक मैपिंग को बनाए रखा, और एक गैर-अनुवादित पते का सामना करने पर, परिणामी टीएलबी मिस प्रोसेसर को एक सॉफ्टवेयर रूटीन में फंसाने का कारण बनेगा, जो भौतिक को कोई उपयुक्त मैपिंग प्रदान करने के लिए जिम्मेदार है। याद। एमआईपीएस दृष्टिकोण के विपरीत, जिसने टीएलबी मिस इवेंट पर प्रतिस्थापित करने के लिए टीएलबी प्रविष्टि का चयन करने के लिए एक यादृच्छिक रजिस्टर नियोजित किया, 29000 ने एक समर्पित एलआरयू (कम से कम हाल ही में उपयोग किया गया) रजिस्टर प्रदान किया। 29000 परिवार के कुछ उत्पादों ने केवल 16 टीएलबी प्रविष्टियां प्रदान कीं ताकि सिलिकॉन के हिस्से को बाह्य उपकरणों के लिए समर्पित किया जा सके। क्षतिपूर्ति करने के लिए, मैपिंग द्वारा नियोजित अधिकतम पृष्ठ आकार 8 केबी से बढ़ाकर 16 एमबी कर दिया गया था।

संस्करण
प्रथम एएम29000, 1988 में निर्मुक्त किया गया था, जिसमें अंतर्निर्मित एमएमयू भी सम्मिलित था लेकिन फ्लोटिंग पॉइंट समर्थन को एएम29027 एफपीयु में लोड कर दिया गया। विफल एमएमयू या ब्रांच टारगेट कैश वाली इकाइयों को एएम29005 के रूप में बेचा गया।

1991 में, लाइन को एएम29030 और एएम29035 के साथ विस्तार किया गया, जिनमें संबंधित रूप में 8 KB या 4 KB क्रमशः इंस्ट्रक्शन कैश सम्मिलित है। तब तक एएम29050 भी उपलब्ध हो गया था, जिसमें ऑन-चिप कैश नहीं था, लेकिन पूर्ण पाइपलाइन मल्टिप्लाई-एड ऑपरेशन्स के साथ फ्लोटिंग-पॉइंट यूनिट, दावा किए गए 80% हिट दर के साथ एक बड़ा 1 KB ब्रांच टारगेट कैश, और 4-एंट्री टीएलबी-जैसे फिजिकल एड्रेस कैश द्वारा उन्नत पाइपलाइन्ड लोड ऑपरेशन्स सम्मिलित था। यह एक सुपरस्केलर प्रोसेसर नहीं है, लेकिन यह एक ही साइकिल में एक फ्लोटिंग पॉइंट ऑपरेशन और एक पूर्णांक ऑपरेशन को पूर्ण करने की अनुमति प्रदान करता है। पूर्णांक और फ़्लोटिंग-पॉइंट पक्षों में से प्रत्येक के पास रजिस्टरों के लिए अपना स्वयं का लेखन पोर्ट होता है। इसमें 428,000 ट्रांजिस्टर्स थे, जो 1-माइक्रॉन प्रक्रिया पर होते थे, जिसमें 0.8-माइक्रॉन का प्रभावी चैनल लंबाई थी और इसकी उपलब्धता 20, 25, 33 और 40 MHz पर होती थी। बाद में एएम29040 33, 40 और 50 MHz पर निर्मुक्त हुआ, जो एएम29030 की तुलना में होता था, केवल 4 KB डेटा कैश, गुणांकन यूनिट और कुछ अन्य एन्हैंसमेंट्स के लिए था। 119 mm² एएम29040 में 0.7-माइक्रॉन प्रक्रिया पर 1.2 मिलियन ट्रांजिस्टर थे।

29K का एक सुपरस्केलर संस्करण डिज़ाइन किया जा रहा था, लेकिन x86 के पक्ष में इसे रद्द कर दिया गया। इसका कोडनेम जगुआर रखा गया, और इसका वर्णन नवंबर 1994 और अगस्त 1995 में किया गया। यह एक उन्नत डिज़ाइन था, जो छह आरक्षण स्टेशनों में चार-तरफ़ा प्रेषण और निर्देशों के प्रत्याशित आउट-ऑफ़-ऑर्डर निष्पादन में सक्षम था, जिसमें चार-तरफा रिटायरमेंट भी शामिल था। रजिस्टर फ़ाइल में एक बार में चार पढ़ने और दो लिखने की अनुमति थी। निर्देशों और डेटा का कैश प्रत्येक 8 KB का था। कैश से लोड दुकानों को बायपास कर सकता है। लागत कारणों और लक्षित बाज़ार के कारण इसमें कोई ऑन-चिप एफपीयू नहीं था। इसकी 0.4-माइक्रोन प्रक्रिया पर 100 मेगाहर्ट्ज आवृत्ति प्राप्त करने की उम्मीद थी।

एएमडी ने x86-संगत प्रोसेसर की K5 श्रृंखला के आधार के रूप में असंबंधित 29K माइक्रोआर्किटेक्चर का उपयोग किया। एएलयु को आगे बढ़ाया गया, साथ ही कुछ संशोधन के साथ री-ऑर्डर बफ़र भी किया गया। एफपीयू को 29050 से लिया गया था, लेकिन इसे 80 बिट परिशुद्धता तक बढ़ाया गया। K5 ने डिकोडिंग पर x86 निर्देशों को "आरआईएससी-ओपी" में ट्रांसलेट किया, जो कैश्ड इंस्ट्रक्शन की पूर्व-डिकोड जानकारी द्वारा सहायता प्राप्त थी। एएमडी ने दावा किया कि सुपरस्केलर 29K का कार्यकरण K5 की तुलना में कुछ कम होगा, लेकिन आकार में अंतर के कारण इसकी लागत बहुत कम होगी।

हनीवेल 29केआईआई एएमडी 29050 पर आधारित एक सीपीयू है, और इसका वास्तविक समय एवियोनिक्स में बड़े पैमाने पर उपयोग किया गया था।

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

29000 का उपयोग, विशेष रूप से मैकिनटोश और आईबीएम पीसी-संगत प्लेटफ़ॉर्म पर, गणनात्मक त्वरक या कोप्रोसेसर के रूप में हुआ। उदाहरण के लिए, यार्क सिस्टम्स कारपोरेशन ने मैकिनटोश II और पीसी एटी सिस्टम के लिए 29000 आधारित "आरआईएससी कोप्रोसेसर" कार्ड उत्पन्न किए, जिनमें मोटोरोला 68020 और 68030 प्रोसेसर के साथ "सीआईएससी कोप्रोसेसर" कार्ड और टी800 ट्रांसप्यूटर प्रोसेसर के साथ "पैरलेल कोप्रोसेसर" कार्ड सम्मिलित थे। उसके नुसुपर (मूल रूप में मैक्रे के नाम से जाना जाता था ) और एटी-सुपर कार्ड, जो एम29000 सीपीयू और एम29027 फ्लोटिंग-पॉइंट त्वरक का उपयोग करते थे, के बाद मैकरेजियस आया, जिसमें सीपीयु को एएम29050 में अपग्रेड किया गया। ऐसे त्वरक कार्डों ने मैकिनटोश II से कई गुना अधिक प्रदर्शन प्रदान किया और डीईसीस्टेशन 3100 जैसे आरआईएससी वर्कस्टेशन के साथ बेंचमार्क की तरह प्रतिस्पर्धी थे। एक सिस्टम में एकाधिक कार्डों को भी स्थापित किया जा सकता था। हालांकि, एक मैकिनटोश II सिस्टम की लागत इस तरह के कार्ड के साथ मिलाकर यूनिक्स चलाने वाले प्रसिद्ध आरआईएससी वर्कस्टेशन की लागत के निकट पहुंचती थी।

एक महत्वपूर्ण प्रोडक्ट जिसमें 29000 का उपयोग किया गया, वह एप्पल का मैकिनटोश IIfx के लिए मैकिनटोश डिस्प्ले कार्ड 8·24 GC, जिसमें 30 MHz एएम29000 प्रोसेसर, 64 KB स्थिर रैम कैश, और 2 MB वीडियो रैम थी, जिसमें क्विकड्रा ग्राफिकल टूलकिट द्वारा उपयोग के लिए अतिरिक्त 2 MB डायनामिक रैम का विकल्प भी था। 29000 के समावेश से इस कार्ड के इस विशेष संस्करण को अन्य वर्जनों से अलग किया गया, और यह खासकर 24-बिट प्रति पिक्सेल छवियों को हैंडल करते समय प्रदर्शन को अधिक संशोधन किया।

यह भी देखें

 * एएमडी एएम2900 और एएम29000 वर्गों की सूची

बाहरी संबंध

 * AMD 29k (Streamlined Instruction Processor) ID Guide
 * pdf book about 29k family
 * chipdb.org Images of different Am29000 processors