संचायक (कंप्यूटिंग)

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

संचायक जैसे रजिस्टर के अतिरिक्त, प्रत्येक गणना (जोड़, गुणा, शिफ्ट, आदि) के परिणाम को मुख्य मेमोरी में लिखना आवश्यक होगा, संभवतः अग्रिम संचालन में केवल पुनः पढ़ने के लिए उपयोग किया जाता है।

एक्युमुलेटर के जैसे रजिस्टर की तुलना में मुख्य मेमोरी तक पहुंच मंद होती है क्योंकि बड़ी मुख्य मेमोरी के लिए उपयोग की जाने वाली प्रौद्योगिकी रजिस्टर की तुलना में मंद होती है। प्रारंभिक इलेक्ट्रॉनिक कंप्यूटर प्रणाली प्रायः दो समूहों एक्युमुलेटर और बिना एक्युमुलेटर में विभाजित होते थे।

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

मूल अवधारणा
गगणितीय संक्रियाएं प्रायः चरणबद्ध रूप में होती हैं, संक्रिया के परिणामों को दूसरे के इनपुट के रूप में उपयोग करते हैं। उदाहरण के लिए, किसी कर्मचारी के साप्ताहिक पेरोल की मैन्युअल गणना कुछ इस प्रकार दिख सकती है:


 * 1) कर्मचारी के टाइम कार्ड से कार्य किए गए घंटों की संख्या को देख सकते हैं |
 * 2) तालिका से उस कर्मचारी के वेतन की दर देख सकते हैं |
 * 3) अपना मूल साप्ताहिक वेतन प्राप्त करने के लिए वेतन दर से घंटे गुणा कर सकते हैं  |
 * 4) आयकर के खाते में उनके मूल वेतन को निश्चित प्रतिशत से गुणा किया जा सकता हैं |
 * 5) कर के पश्चात उनका साप्ताहिक वेतन प्राप्त करने के लिए उस संख्या को उनके मूल वेतन से घटाया जा सकता हैं |
 * 6) सेवानिवृत्ति योजनाओं के खाते में उस परिणाम को निश्चित प्रतिशत से गुणा कर सकते हैं |
 * 7) अल्पता के पश्चात अपना साप्ताहिक वेतन प्राप्त करने के लिए उस संख्या को उनके मूल वेतन से घटा सकते हैं |

समान कार्य करने वाला कंप्यूटर प्रोग्राम संचालन के समान मूल अनुक्रम का पालन कर सकता हैं, चूँकि जिन मूल्यों को देखा जा रहा है, वे सभी कंप्यूटर मेमोरी में संग्रहीत होंगे। प्रारंभिक कंप्यूटरों में, घंटों की संख्या संभवतः पंच कार्ड और भुगतान दर, संभवतः चुंबकीय ड्रम में होगी। गुणा पूर्ण होने के पश्चात, परिणाम को कहीं रखा जाना चाहिए। ड्रम मशीन पर यह संभवतः पुनः आ जाएगा, ऑपरेशन जिसमें अधिक समय लगता है। तत्पश्चात अग्रिम ही ऑपरेशन में उस मान को पुनः रीड करना होता है, जो अधिक विलंभता का परिचय देता है।

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

संचायक मशीनें
एक्युमुलेटर मशीन, जिसे 1-ऑपरेंड मशीन भी कहा जाता है, या 'संचायक-आधारित आर्किटेक्चर', प्रकार का सीपीयू है, चूँकि इसमें अनेक रजिस्टर हो सकते हैं, सीपीयू अत्यधिक विशेष रजिस्टर में गणना के परिणामों को संग्रहीत करता है, जिसे सामान्यतः संचायक कहा जाता है। लगभग प्रारम्भ में कंप्यूटर संचायक मशीन थी जिनमें केवल उच्च-प्रदर्शन वाले सुपर कंप्यूटर होते थे, जिनमें अनेक रजिस्टर होते थे। फिर जब मेनफ़्रेम कंप्यूटर प्रणाली ने माइक्रो कंप्यूटर को मार्ग दिया, संचायक आर्किटेक्चर एमओएस प्रौद्योगिकी 6502 के साथ उल्लेखनीय उदाहरण के रूप में पुनः लोकप्रिय हो गए। कई 8-बिट माइक्रोकंट्रोलर जो 2014 तक लोकप्रिय थे, जैसे कि पिकमिक्रो और इंटेल 8051, संचायक-आधारित मशीनें हैं।

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

विशेषता जो रजिस्टर को कंप्यूटर आर्किटेक्चर के संचायक के रूप में भिन्न करती है, वह यह है कि संचायक अंकगणितीय निर्देशों (कंप्यूटर विज्ञान) के लिए अंतर्निहित ओपेरंड के रूप में उपयोग किया जाएगा। उदाहरण के लिए, सीपीयू के निकट निर्देश हो सकता है जैसे:  जो मेमोरी लोकेशन मेमड्रेस से पढ़े गए मान को संचायक के मान में जोड़ता है, परिणाम को संचायक में पुनः रखता है। संचायक को रजिस्टर संख्या द्वारा निर्देश में प्रमाणित नहीं किया गया है; यह निर्देश में निहित है और निर्देश में कोई अन्य रजिस्टर निर्दिष्ट नहीं किया जा सकता है। कुछ आर्किटेक्चर निर्देशों में संचायक के रूप में विशेष रजिस्टर का उपयोग करते हैं, किंतु अन्य निर्देश स्पष्ट ऑपरेंड विनिर्देश के लिए रजिस्टर संख्या का उपयोग करते हैं।

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

ऐतिहासिक सम्मेलन "संचायक", "अंकगणितीय अंग" के लिए रजिस्टर समर्पित करता है जो अंकगणितीय संचालन के अनुक्रम के समय शाब्दिक रूप से अपनी संख्या एकत्र करता है:


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

कुछ निर्देश हैं, उदाहरण के लिए (कुछ आधुनिक व्याख्या के साथ):
 * संचायक को साफ़ करें और मेमोरी स्थान X से संख्या जोड़ सकते हैं |
 * संचायक को साफ़ करें और मेमोरी स्थान X से संख्या को घटा सकते हैं |
 * संचायक की सामग्री में मेमोरी स्थान X से कॉपी की गई संख्या को जोड़ सकते हैं |
 * संचायक की सामग्री से मेमोरी स्थान X से कॉपी की गई संख्या को घटा सकते हैं |
 * संचायक को साफ़ करें और रजिस्टर की सामग्री को संचायक में स्थानांतरित करना चाहिए |

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

उल्लेखनीय संचायक-आधारित कंप्यूटर
ENIAC के 1945 के विन्यास में 20 संचायक थे, जो समानांतर में कार्य कर सकते थे। प्रत्येक आठ दशमलव अंकों की संख्या को संग्रहीत कर सकता है और उसमें प्राप्त संख्या को जोड़ सकता है (या उसमें से घटा सकता है)।  1952 में वैक्यूम ट्यूब आईबीएम 701 के साथ प्रारंभिक करने वाले आईबीएम के अधिकांश प्रारंभिक बाइनरी वैज्ञानिक कंप्यूटर, लंबे परिणामों के साथ संचालन को संभालने के लिए भिन्न गुणक / भागफल रजिस्टर के साथ 36-बिट संचायक का उपयोग करते थे। आईबीएम 650, दशमलव मशीन, में 10 अंकों का वितरक और दो दस अंकों का संचायक था; आईबीएम 7070, पश्चात की, ट्रांजिस्टरीकृत दशमलव मशीन में तीन संचायक थे। आईबीएम सिस्टम/360 और डिजिटल उपकरण निगम के PDP-6 में 16 सामान्य उद्देश्य रजिस्टर थे, चूँकि PDP-6 और इसके उत्तराधिकारी, PDP-10, उन्हें संचायक कहते हैं।

12-बिट, PDP-8 संचायक का उपयोग करने वाले पूर्व मिनी कंप्यूटरों में से था, जिसने अनेक मशीनों को प्रेरित किया। PDP-8 में केवल संचायक था। एचपी 2100 और डेटा जनरल नोवा में 2 और 4 एक्युमुलेटर थे। नोवा तब बनाया गया था जब PDP-8 के इस फॉलो-ऑन को PDP-11 बनने के पक्ष में रद्द कर दिया गया था। नोवा ने चार संचायक, AC0-AC3 प्रदान किए, चूँकि AC2 और AC3 का उपयोग ऑफ़सेट एड्रेस प्रदान करने के लिए भी किया जा सकता है, जो रजिस्टरों के उपयोग की अधिक सामान्यता की ओर प्रवृत्त होता है। PDP-11 में सिस्टम/360 और PDP-10 की तर्ज पर 8 सामान्य प्रयोजन रजिस्टर थे; सबसे पश्चात में CISC और RISC मशीनों ने अनेक सामान्य प्रयोजन रजिस्टर प्रदान किए। प्रारंभिक 4-बिट और 8-बिट माइक्रोप्रोसेसर जैसे इंटेल 4004, इंटेल 8008 और अनेक अन्य, सामान्यतः एकल संचायक थे। Intel 8051 माइक्रोकंट्रोलर में प्राथमिक संचायक और द्वितीयक संचायक होता है, जहां दूसरे का उपयोग निर्देशों द्वारा केवल गुणा करने (MUL AB) या विभाजित करने (DIVAB) के समय किया जाता है; पूर्व दो 8-बिट संचायक के मध्य 16-बिट परिणाम को विभाजित करता है, जबकि पश्चात वाला भागफल को प्राथमिक संचायक A पर और शेष को द्वितीयक संचायक B में संग्रहीत करता है। 8008, Intel 8080, और के प्रत्यक्ष वंशज के रूप में इंटेल 80[[86]], आधुनिक सर्वव्यापी x86 प्रोसेसर अभी भी बड़ी संख्या के गुणन और विभाजन के लिए प्राथमिक संचायक EAX और द्वितीयक संचायक EDX का उपयोग करता है। उदाहरण के लिए, एमयूएल ईसीएक्स 32-बिट रजिस्टर ईसीएक्स और ईएक्स को गुणा करेगा और 64-बिट परिणाम को ईएक्स और ईडीएक्स के मध्य विभाजित करेगा। चूँकि, MUL और DIV विशेष स्तिथियाँ हैं; अन्य अंकगणितीय-तार्किक निर्देश (ADD, SUB, CMP, AND, OR, XOR, TEST) संचायक के रूप में आठ रजिस्टरों EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI में से किसी को भी निर्दिष्ट कर सकते हैं (अर्थात बाएं संकार्य और गंतव्य)। यह गुणा के लिए भी समर्थित है यदि परिणाम के ऊपरी आधे अंश की आवश्यकता नहीं है। इस प्रकार x86 संचायक मॉडल पर आधारित होने के अतिरिक्त अधिक सामान्य रजिस्टर आर्किटेक्चर है। x86, x86-64 के 64-बिट विस्तार को आगे 8 सामान्य रजिस्टरों के अतिरिक्त 16 तक सामान्यीकृत किया गया है।

संदर्भ

 * Goldstine, Herman H., and von Neumann, John, "Planning and Coding of the Problems for an Electronic Computing Instrument", Rep. 1947, Institute for Advanced Study, Princeton. Reprinted on pp. 92–119 in Bell, C. Gordon and Newell, Allen (1971), Computer Structures: Readings and Examples, McGraw-Hill Book Company, New York. ISBN 0-07-004357-4}. A veritable treasure-trove of detailed descriptions of ancient machines including photos.