एक-निर्देश सेट कंप्यूटर: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Abstract machine that uses only one instruction}} {{Distinguish|1-bit computing}} एक-निर्देश सेट कंप्यूटर (OISC),...")
 
No edit summary
Line 5: Line 5:


== मशीन आर्किटेक्चर ==
== मशीन आर्किटेक्चर ==
[[ट्यूरिंग पूर्णता]] | ट्यूरिंग-पूर्ण मॉडल में, प्रत्येक मेमोरी स्थान एक मनमाना पूर्णांक संग्रहीत कर सकता है, और{{snd}} मॉडल पर निर्भर करता है{{clarify|date=December 2016}}{{snd}}मनमाने ढंग से कई स्थान हो सकते हैं. ऐसे पूर्णांकों के अनुक्रम के रूप में निर्देश स्वयं स्मृति में रहते हैं।
[[ट्यूरिंग पूर्णता]] | ट्यूरिंग-पूर्ण मॉडल में, प्रत्येक मेमोरी स्थान एक मनमाना पूर्णांक संग्रहीत कर सकता है, और{{snd}} मॉडल पर निर्भर करता है मनमाने ढंग से कई स्थान हो सकते हैं. ऐसे पूर्णांकों के अनुक्रम के रूप में निर्देश स्वयं स्मृति में रहते हैं।


सार्वभौम कंप्यूटरों का एक वर्ग मौजूद है, जिसमें बिट हेरफेर पर आधारित एकल निर्देश होता है, जैसे [[बिट नकल]] करना या बिट उलटना। चूँकि उनका मेमोरी मॉडल परिमित है, जैसा कि वास्तविक कंप्यूटरों में उपयोग की जाने वाली मेमोरी संरचना है, वे बिट मैनिपुलेशन मशीनें ट्यूरिंग मशीनों के बजाय वास्तविक कंप्यूटरों के बराबर हैं।<ref name="mazonka">Oleg Mazonka, [http://www.complex-systems.com/pdf/19-3-5.pdf "Bit Copying: The Ultimate Computational Simplicity"], Complex Systems Journal 2011, Vol 19, N3, pp. 263–285</ref>
सार्वभौम कंप्यूटरों का एक वर्ग मौजूद है, जिसमें बिट हेरफेर पर आधारित एकल निर्देश होता है, जैसे [[बिट नकल]] करना या बिट उलटना। चूँकि उनका मेमोरी मॉडल परिमित है, जैसा कि वास्तविक कंप्यूटरों में उपयोग की जाने वाली मेमोरी संरचना है, वे बिट मैनिपुलेशन मशीनें ट्यूरिंग मशीनों के बजाय वास्तविक कंप्यूटरों के बराबर हैं।<ref name="mazonka">Oleg Mazonka, [http://www.complex-systems.com/pdf/19-3-5.pdf "Bit Copying: The Ultimate Computational Simplicity"], Complex Systems Journal 2011, Vol 19, N3, pp. 263–285</ref>
Line 25: Line 25:
==== टोगा कंप्यूटर ====
==== टोगा कंप्यूटर ====
एक अन्य मशीन, जिसे [https://esolangs.org/wiki/TOGA_computer Toga Computer] कहा जाता है, थोड़ा इन्वर्ट करती है और व्युत्क्रम के परिणाम के आधार पर निष्पादन को सशर्त रूप से पास करती है। अद्वितीय निर्देश TOGA(a,b) है जो टॉगल ऑपरेशन के परिणाम के सही होने पर TOGgle ''a'' और शाखा से ''b'' के लिए है।
एक अन्य मशीन, जिसे [https://esolangs.org/wiki/TOGA_computer Toga Computer] कहा जाता है, थोड़ा इन्वर्ट करती है और व्युत्क्रम के परिणाम के आधार पर निष्पादन को सशर्त रूप से पास करती है। अद्वितीय निर्देश TOGA(a,b) है जो टॉगल ऑपरेशन के परिणाम के सही होने पर TOGgle ''a'' और शाखा से ''b'' के लिए है।
{{Expand section|date=December 2016}}


==== मल्टी-बिट कॉपी करने वाली मशीन ====
==== मल्टी-बिट कॉपी करने वाली मशीन ====
BitBitJump के समान, एक मल्टी-बिट कॉपी करने वाली मशीन एक ही समय में कई बिट्स को कॉपी करती है। इस मामले में मेमोरी में पूर्वनिर्धारित जंप टेबल रखने से ट्यूरिंग पूर्णता की समस्या हल हो जाती है।{{clarify|not apparent how this solves anything and what criterion is being used here?|date=December 2016}}
BitBitJump के समान, एक मल्टी-बिट कॉपी करने वाली मशीन एक ही समय में कई बिट्स को कॉपी करती है। इस मामले में मेमोरी में पूर्वनिर्धारित जंप टेबल रखने से ट्यूरिंग पूर्णता की समस्या हल हो जाती है।


=== [[परिवहन ट्रिगर वास्तुकला]] ===
=== [[परिवहन ट्रिगर वास्तुकला]] ===

Revision as of 17:26, 13 May 2023

एक-निर्देश सेट कंप्यूटर (OISC), जिसे कभी-कभी परम RISC (URISC) कहा जाता है, एक अमूर्त मशीन है जो केवल एक निर्देश का उपयोग करती है। – मशीन भाषा opcode की आवश्यकता को समाप्त करना।[1][2][3]एकल निर्देश के विवेकपूर्ण विकल्प और अनंत संसाधनों के साथ, एक OISC पारंपरिक कंप्यूटरों की तरह ही एक सार्वभौमिक कंप्यूटर होने में सक्षम है, जिसमें कई निर्देश हैं।[2]: 55  OISCs को कंप्यूटर आर्किटेक्चर सिखाने में सहायता के रूप में अनुशंसित किया गया है[1]: 327 [2]: 2  और संरचनात्मक कंप्यूटिंग अनुसंधान में कम्प्यूटेशनल मॉडल के रूप में उपयोग किया गया है।[3]पहला कार्बन नैनोट्यूब कंप्यूटर 1-बिट कंप्यूटिंग | 1-बिट वन-इंस्ट्रक्शन सेट कंप्यूटर है (और इसमें केवल 178 ट्रांजिस्टर हैं)।[4]


मशीन आर्किटेक्चर

ट्यूरिंग पूर्णता | ट्यूरिंग-पूर्ण मॉडल में, प्रत्येक मेमोरी स्थान एक मनमाना पूर्णांक संग्रहीत कर सकता है, और – मॉडल पर निर्भर करता है । मनमाने ढंग से कई स्थान हो सकते हैं. ऐसे पूर्णांकों के अनुक्रम के रूप में निर्देश स्वयं स्मृति में रहते हैं।

सार्वभौम कंप्यूटरों का एक वर्ग मौजूद है, जिसमें बिट हेरफेर पर आधारित एकल निर्देश होता है, जैसे बिट नकल करना या बिट उलटना। चूँकि उनका मेमोरी मॉडल परिमित है, जैसा कि वास्तविक कंप्यूटरों में उपयोग की जाने वाली मेमोरी संरचना है, वे बिट मैनिपुलेशन मशीनें ट्यूरिंग मशीनों के बजाय वास्तविक कंप्यूटरों के बराबर हैं।[5] वर्तमान में ज्ञात OISCs को मोटे तौर पर तीन व्यापक श्रेणियों में विभाजित किया जा सकता है:

  • बिट-मैनिपुलेटिंग मशीन
  • ट्रांसपोर्ट ट्रिगर आर्किटेक्चर मशीनें
  • अंकगणित-आधारित ट्यूरिंग-पूर्ण मशीनें

बिट-मैनिपुलेटिंग मशीन

बिट हेरफेर | बिट-मैनिपुलेटिंग मशीनें सबसे सरल वर्ग हैं।

फ्लिपजंप

FlipJump मशीन में 1 निर्देश है, a;b - बिट a को फ़्लिप करता है, फिर b पर जाता है। यह सबसे आदिम OISC है, लेकिन यह अभी भी उपयोगी है। यह अपने मानक पुस्तकालय की सहायता से गणित/तर्क गणना, ब्रांचिंग, पॉइंटर्स और कॉलिंग फ़ंक्शंस सफलतापूर्वक कर सकता है।

बिटबिटजंप

एक बिट कॉपी मशीन,[5]BitBitJump कहा जाता है, स्मृति में एक बिट की प्रतिलिपि बनाता है और निष्पादन को निर्देश के किसी एक ऑपरेंड द्वारा निर्दिष्ट पते पर बिना शर्त पास करता है। यह प्रक्रिया सार्वभौमिक अभिकलन (अर्थात किसी भी एल्गोरिथ्म को निष्पादित करने और किसी अन्य सार्वभौमिक मशीन की व्याख्या करने में सक्षम होने) में सक्षम होने के लिए निकली है क्योंकि बिट्स की नकल सशर्त रूप से उस कोड को संशोधित कर सकती है जिसे बाद में निष्पादित किया जाएगा।

टोगा कंप्यूटर

एक अन्य मशीन, जिसे Toga Computer कहा जाता है, थोड़ा इन्वर्ट करती है और व्युत्क्रम के परिणाम के आधार पर निष्पादन को सशर्त रूप से पास करती है। अद्वितीय निर्देश TOGA(a,b) है जो टॉगल ऑपरेशन के परिणाम के सही होने पर TOGgle a और शाखा से b के लिए है।

मल्टी-बिट कॉपी करने वाली मशीन

BitBitJump के समान, एक मल्टी-बिट कॉपी करने वाली मशीन एक ही समय में कई बिट्स को कॉपी करती है। इस मामले में मेमोरी में पूर्वनिर्धारित जंप टेबल रखने से ट्यूरिंग पूर्णता की समस्या हल हो जाती है।

परिवहन ट्रिगर वास्तुकला

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

अंकगणित-आधारित ट्यूरिंग-पूर्ण मशीनें

अंकगणित-आधारित ट्यूरिंग-पूर्ण मशीनें एक अंकगणितीय ऑपरेशन और एक सशर्त छलांग का उपयोग करती हैं। पिछले दो यूनिवर्सल कंप्यूटरों की तरह, यह वर्ग भी ट्यूरिंग-पूर्ण है। निर्देश पूर्णांकों पर संचालित होता है जो स्मृति में पते भी हो सकते हैं।

वर्तमान में विभिन्न अंकगणितीय परिचालनों के आधार पर इस वर्ग के कई ज्ञात ओआईएससी हैं:

  • जोड़ (Addleq, जोड़ें और शाखा अगर lसे या eqशून्य से)[6]
  • कमी (DJN, Dवृद्धि और शाखा (Jump) अगर Nonzero)[7]
  • वेतन वृद्धि (P1eq, Plus 1 और शाखा यदि equal से अन्य मान)[8]
  • घटाव (subleq, subट्रैक्ट और ब्रांच यदि lसे या eqशून्य से शून्य)[9][10]
  • सकारात्मक घटाव जब संभव हो, अन्यथा शाखा (अंकगणितीय मशीन)[11]


निर्देश प्रकार

एकल निर्देश के लिए सामान्य विकल्प हैं:

  • #घटाना और शाखा यदि शून्य से कम या उसके बराबर है
  • #नकारात्मक हो तो घटाएं और शाखा दें
    1. अंकगणित यंत्र
  • #उधार लें तो उल्टा घटाएं और छोड़ें
  • #Transport ट्रिगर आर्किटेक्चर (ट्रांसपोर्ट ट्रिगर आर्किटेक्चर के हिस्से के रूप में उपयोग किया जाता है)[12]
  • #घटाना और शाखा अगर गैर शून्य (एसबीएनजेड ए, बी, सी, गंतव्य)
  • #Cryptoleq (विषम एन्क्रिप्टेड और अनएन्क्रिप्टेड संगणना)

दिए गए कार्यान्वयन में इनमें से केवल एक निर्देश का उपयोग किया जाता है। इसलिए, किस निर्देश को निष्पादित करना है, इसकी पहचान करने के लिए ओपकोड की कोई आवश्यकता नहीं है; निर्देश का विकल्प मशीन के डिजाइन में निहित है, और एक OISC का नाम आमतौर पर उस निर्देश के नाम पर रखा जाता है जिसका वह उपयोग करता है (उदाहरण के लिए, एक SBN OISC,[2]: 41  SUBLEQ भाषा,[3]: 4  वगैरह।)। उपरोक्त प्रत्येक निर्देश का उपयोग ट्यूरिंग-पूर्ण OISC के निर्माण के लिए किया जा सकता है।

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

=== शून्य === के बराबर नहीं होने पर घटाएं और शाखा करें SBNZ a, b, c, d ई> निर्देश (घटाना और शाखा यदि शून्य के बराबर नहीं है) पते पर सामग्री को पते बी पर सामग्री से घटाता है, परिणाम को पते सी पर संग्रहीत करता है, और फिर, यदि परिणाम 0 नहीं है, तो पता डी पर नियंत्रण स्थानांतरित करता है (यदि परिणाम शून्य के बराबर है, निष्पादन क्रम में अगले निर्देश के लिए आगे बढ़ता है)।[3]


=== शून्य से कम या बराबर होने पर घटाएं और शाखा करें === subleq}eq निर्देश (घटाना और शाखा यदि शून्य से कम या उसके बराबर है) पते पर सामग्री घटाता है a पते पर सामग्री से b, परिणाम को पते पर संग्रहीत करता है b, और फिर, यदि परिणाम सकारात्मक नहीं है, तो नियंत्रण को पते पर स्थानांतरित कर देता है c (यदि परिणाम सकारात्मक है, तो निष्पादन क्रम में अगले निर्देश पर जाता है)।[3]: 4–7  स्यूडोकोड:

अनुदेश subleq a, b, c

मेम [बी] = मेम [बी] - मेम [ए]

    अगर (मेम [बी] ≤ 0)
        गोटो सी

क्रम में अगले निर्देश के पते के बराबर तीसरा ऑपरेंड सेट करके सशर्त ब्रांचिंग को दबाया जा सकता है। यदि तीसरा ऑपरेंड नहीं लिखा गया है, तो यह दमन निहित है।

दो ऑपरेंड और एक आंतरिक संचायक (कंप्यूटिंग) के साथ एक संस्करण भी संभव है, जहां संचायक को पहले ऑपरेंड द्वारा निर्दिष्ट मेमोरी स्थान से घटाया जाता है। परिणाम संचायक और स्मृति स्थान दोनों में संग्रहीत होता है, और दूसरा ऑपरेंड शाखा पता निर्दिष्ट करता है:

अनुदेश subleq2 a, b

मेम [ए] = मेम [ए] - एसीसीयूएम

    एसीसीयूएम = मेम [ए]
    अगर (मेम [ए] ≤ 0)
        गोटो बी

यद्यपि यह प्रति निर्देश केवल दो (तीन के बजाय) ऑपरेंड का उपयोग करता है, तदनुसार विभिन्न तार्किक संचालन को प्रभावित करने के लिए अधिक निर्देशों की आवश्यकता होती है।

संश्लेषित निर्देश

केवल का उपयोग करके कई प्रकार के उच्च-क्रम के निर्देशों को संश्लेषित करना संभव है subleq निर्देश।[3]: 9–10 

बिना शर्त शाखा:

JMP c
  subleq Z, Z, c

जोड़ बार-बार घटाव द्वारा किया जा सकता है, बिना किसी सशर्त शाखा के; उदाहरण के लिए, निम्नलिखित निर्देशों का परिणाम स्थान पर सामग्री में होता है a स्थान पर सामग्री में जोड़ा जा रहा है b:

ADD a, b
  subleq a, Z
  subleq Z, b
  subleq Z, Z

पहला निर्देश स्थान पर सामग्री घटाता है a स्थान पर सामग्री से Z (जो 0 है) और परिणाम को संग्रहीत करता है (जो कि सामग्री का ऋणात्मक है a) स्थान में Z. दूसरा निर्देश इस परिणाम को घटाता है b, में भंडारण b यह अंतर (जो अब मूल रूप से सामग्री का योग है a और b); तीसरा निर्देश मान 0 को पुनर्स्थापित करता है Z.

एक कॉपी निर्देश इसी तरह लागू किया जा सकता है; उदाहरण के लिए, निम्नलिखित निर्देशों का परिणाम स्थान पर सामग्री में होता है b स्थान पर सामग्री द्वारा प्रतिस्थापित किया जा रहा है a, फिर से सामग्री को स्थान पर मानते हुए Z को 0 के रूप में बनाए रखा जाता है:

MOV a, b
  subleq b, b
  subleq a, Z
  subleq Z, b
  subleq Z, Z

कोई वांछित अंकगणितीय परीक्षण बनाया जा सकता है। उदाहरण के लिए, निम्नलिखित निर्देशों से एक शाखा-यदि-शून्य स्थिति को इकट्ठा किया जा सकता है:

BEQ b, c
  subleq b, Z, L1
  subleq Z, Z, OUT
L1:
  subleq Z, Z
  subleq Z, b, c
OUT:
  ...

Subleq2 का उपयोग उच्च-क्रम के निर्देशों को संश्लेषित करने के लिए भी किया जा सकता है, हालाँकि इसे आमतौर पर किसी दिए गए कार्य के लिए अधिक संचालन की आवश्यकता होती है। उदाहरण के लिए, किसी दिए गए बाइट में सभी बिट्स को फ़्लिप करने के लिए कम से कम 10 subleq2 निर्देशों की आवश्यकता होती है:

NOT a
  subleq2 tmp          ; tmp = 0 (tmp = temporary register)
  subleq2 tmp
  subleq2 one          ; acc = -1
  subleq2 a            ; a' = a + 1
  subleq2 Z            ; Z = - a - 1
  subleq2 tmp          ; tmp = a + 1
  subleq2 a            ; a' = 0
  subleq2 tmp          ; load tmp into acc
  subleq2 a            ; a' = - a - 1 ( = ~a )
  subleq2 Z            ; set Z back to 0


अनुकरण

निम्नलिखित प्रोग्राम (स्यूडोकोड में लिखा गया) एक के निष्पादन का अनुकरण करता है subleq-आधारित OISC:

 int memory[], program_counter, a, b, c
 program_counter = 0
 while (program_counter >= 0):
     a = memory[program_counter]
     b = memory[program_counter+1]
     c = memory[program_counter+2]
     if (a < 0 or b < 0):
         program_counter = -1
     else:
         memory[b] = memory[b] - memory[a]
         if (memory[b] > 0):
             program_counter += 3
         else:
             program_counter = c

यह कार्यक्रम मानता है memory[] को गैर-ऋणात्मक पूर्णांकों द्वारा अनुक्रमित किया जाता है। नतीजतन, ए के लिए subleq निर्देश (a, b, c), कार्यक्रम व्याख्या करता है a < 0, b < 0, या निष्पादित शाखा c < 0 रुकने की स्थिति के रूप में। इसी तरह के दुभाषियों को ए में लिखा गया है subleq-आधारित भाषा (यानी, स्व-दुभाषिया, जो स्व-संशोधित कोड का उपयोग कर सकते हैं जैसा कि प्रकृति द्वारा अनुमत है subleq निर्देश) नीचे दिए गए बाहरी लिंक्स में पाया जा सकता है।

डॉन ओएस नामक एक सामान्य उद्देश्य सममित मल्टीप्रोसेसिंग-सक्षम 64-बिट ऑपरेटिंग सिस्टम को अनुकरणीय सुब्लेक मशीन में लागू किया गया है। OS में C भाषा जैसा कंपाइलर होता है। वर्चुअल मशीन में कुछ स्मृति क्षेत्र कीबोर्ड, माउस, हार्ड ड्राइव, नेटवर्क कार्ड इत्यादि जैसे सहायक उपकरणों के लिए उपयोग किए जाते हैं। इसके लिए लिखे गए मूल अनुप्रयोगों में मीडिया प्लेयर, पेंटिंग टूल, दस्तावेज़ रीडर और वैज्ञानिक कैलकुलेटर शामिल हैं।[13] एक ग्राफिक डिस्प्ले के साथ एक 32-बिट Subleq कंप्यूटर और Izhora नामक एक कीबोर्ड का निर्माण एक बड़े सेल्यूलर आटोमेटा पैटर्न के रूप में Yoel Matveyev द्वारा किया गया है।[14][15]


संकलन

ओलेग मज़ोनका द्वारा लिखित हायर सुब्लेक नामक एक संकलक है जो एक सरलीकृत सी प्रोग्राम को संकलित करता है subleq कोड।[16]


=== नकारात्मक होने पर घटाएं और शाखा करें === subneg}उदाहरण निर्देश (घटाना और नकारात्मक होने पर शाखा), जिसे भी कहा जाता है SBN, इसी तरह परिभाषित किया गया है subleq:[2]: 41, 51–52 

अनुदेश subneg a, b, c

मेम [बी] = मेम [बी] - मेम [ए]

    अगर (मेम [बी] <0)
        गोटो सी

क्रम में अगले निर्देश के पते के बराबर तीसरा ऑपरेंड सेट करके सशर्त ब्रांचिंग को दबाया जा सकता है। यदि तीसरा ऑपरेंड नहीं लिखा गया है, तो यह दमन निहित है।

संश्लेषित निर्देश

केवल का उपयोग करके कई प्रकार के उच्च-क्रम के निर्देशों को संश्लेषित करना संभव है subneg निर्देश। सादगी के लिए, केवल एक संश्लेषित निर्देश के बीच के अंतर को दर्शाने के लिए यहां दिखाया गया है subleq और subneg.

बिना शर्त शाखा:[2]: 88–89 

JMP c
  subneg POS, Z, c

कहाँ Z और POS क्रमशः 0 और एक धनात्मक पूर्णांक रखने के लिए पहले से सेट किए गए स्थान हैं;

बिना शर्त ब्रांचिंग का आश्वासन केवल तभी दिया जाता है Z में प्रारंभ में 0 (या संग्रहीत पूर्णांक से कम मान होता है POS). स्पष्ट करने के लिए एक अनुवर्ती निर्देश की आवश्यकता है Z ब्रांचिंग के बाद, यह मानते हुए कि की सामग्री Z को 0 के रूप में बनाए रखा जाना चाहिए।

सबनेग 4

चार ऑपरेंड - सबनेग 4 के साथ एक संस्करण भी संभव है। माइनुएंड और सबट्रेंड का उत्क्रमण हार्डवेयर में कार्यान्वयन को आसान बनाता है। गैर-विनाशकारी परिणाम सिंथेटिक निर्देशों को सरल करता है।

अनुदेश subneg s, m, r, j

(* घटाना, घटाना, परिणाम और कूद पते *)

    मेम [आर] = मेम [एम] - मेम [एस]
    'अगर' (मेम [आर] <0)
        'गोटो' जे

अंकगणितीय मशीन

ट्यूरिंग मशीन को और अधिक सहज बनाने के प्रयास में, Z. A. Melzak सकारात्मक संख्याओं के साथ कंप्यूटिंग के कार्य पर विचार करता है। मशीन में एक अनंत अबैकस होता है, शुरू में एक विशेष स्थान S पर अनंत संख्या में काउंटर (कंकड़, टैली स्टिक) होते हैं। मशीन एक ऑपरेशन करने में सक्षम है: <ब्लॉककोट> स्थान X से उतने ही काउंटर लें जितने स्थान Y में हैं और उन्हें स्थान Z पर स्थानांतरित करें और निर्देश y पर आगे बढ़ें।

यदि यह संक्रिया संभव नहीं है क्योंकि Y में पर्याप्त काउंटर नहीं हैं, तो अबेकस को वैसे ही छोड़ दें और निर्देश n पर आगे बढ़ें। [17]</ब्लॉककोट> सभी नंबरों को सकारात्मक रखने के लिए और वास्तविक दुनिया एबैकस पर कंप्यूटिंग करने वाले मानव ऑपरेटर की नकल करने के लिए, किसी भी घटाव से पहले परीक्षण किया जाता है। स्यूडोकोड:

अनुदेश melzak X, Y, Z, n, y

अगर (मेम [वाई] <मेम [एक्स])

        गोटो एन
    मेम [एक्स] - = मेम [वाई]
    मेम [जेड] + = मेम [वाई]
    गोटो वाई

कुछ कार्यक्रम देने के बाद: गुणन, gcd, n-th अभाज्य संख्या की गणना, एक मनमाना संख्या के आधार b में प्रतिनिधित्व, परिमाण के क्रम में छँटाई, Melzak स्पष्ट रूप से दिखाता है कि एक मनमाने ढंग से ट्यूरिंग का अनुकरण कैसे किया जाता है मशीन उसकी अंकगणितीय मशीन पर।

MUL p, q
multiply:
  melzak P, ONE, S, stop                ; Move 1 counter from P to S. If not possible, move to stop.
  melzak S, Q, ANS, multiply, multiply  ; Move q counters from S to ANS. Move to the first instruction.
stop:

जहां स्मृति स्थान पी पी है, क्यू क्यू है, वन 1 है, एएनएस प्रारंभ में 0 है और अंत में पीक्यू है, और एस एक बड़ी संख्या है।

उन्होंने उल्लेख किया है कि पुनरावर्ती कार्यों के तत्वों का उपयोग करके यह आसानी से दिखाया जा सकता है कि अंकगणितीय मशीन पर गणना योग्य प्रत्येक संख्या गणना योग्य है। जिसका प्रमाण लैम्बेक ने दिया था[18] समतुल्य दो अनुदेश मशीन पर: X+ (वृद्धि X) और X− अन्य T (यदि यह खाली नहीं है तो X को घटाएं, अन्यथा T पर जाएं)।

उल्टा घटाना और उधार लेना छोड़ दें

रिवर्स सब्ट्रैक्ट एंड स्किप इफ बॉरो (RSSB) निर्देश में, एक्युमुलेटर (कंप्यूटिंग) को मेमोरी लोकेशन से घटाया जाता है और अगर कोई बॉरो होता है तो अगला इंस्ट्रक्शन स्किप कर दिया जाता है (मेमोरी लोकेशन एक्युमुलेटर से छोटा था)। परिणाम संचायक और स्मृति स्थान दोनों में संग्रहीत होता है। कार्यक्रम गणक को मेमोरी लोकेशन 0 पर मैप किया जाता है। संचायक को मेमोरी लोकेशन 1 पर मैप किया जाता है।[2]

अनुदेश rssb x एसीसीयूएम = मेम [एक्स] - एसीसीयूएम

    मेम [एक्स] = एसीसीयूएम
    अगर (वर्तमान <0)
        गोटो पीसी + 2

उदाहरण

x को y माइनस z के मान पर सेट करने के लिए:

# First, move z to the destination location x.
  RSSB temp # Three instructions required to clear acc, temp [See Note 1]
  RSSB temp
  RSSB temp
  RSSB x    # Two instructions clear acc, x, since acc is already clear
  RSSB x
  RSSB y    # Load y into acc: no borrow
  RSSB temp # Store -y into acc, temp: always borrow and skip
  RSSB temp # Skipped
  RSSB x    # Store y into x, acc
# Second, perform the operation.
  RSSB temp # Three instructions required to clear acc, temp
  RSSB temp
  RSSB temp
  RSSB z    # Load z
  RSSB x    # x = y - z [See Note 2]
  • [नोट 1] यदि अस्थायी रूप से संग्रहीत मान प्रारंभ में एक नकारात्मक मान है और इस रूटीन में उधार लिए गए पहले RSSB अस्थायी से ठीक पहले निष्पादित किया गया निर्देश है, तो कार्य करने के लिए दिनचर्या के लिए चार RSSB अस्थायी निर्देशों की आवश्यकता होगी।
  • [नोट 2] यदि z पर संग्रहीत मान प्रारंभ में एक ऋणात्मक मान है तो अंतिम RSSB x को छोड़ दिया जाएगा और इस प्रकार दिनचर्या काम नहीं करेगी।

ट्रांसपोर्ट ट्रिगर आर्किटेक्चर

एक ट्रांसपोर्ट ट्रिगर आर्किटेक्चर केवल मूव इंस्ट्रक्शन का उपयोग करता है, इसलिए इसे मूल रूप से मूव मशीन कहा जाता था। यह निर्देश नए स्थान की वर्तमान सामग्री के साथ संयोजन करके एक स्मृति स्थान की सामग्री को दूसरे स्मृति स्थान पर ले जाता है:[2]: 42 [19]

अनुदेश movx a, b (यह भी लिखा है a -> b)

    ओपी = गेटऑपरेशन (मेम [बी])
    मेम [बी]: = ओपी (मेम [ए], मेम [बी])

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

MAXQ नामक एक वाणिज्यिक परिवहन ट्रिगर आर्किटेक्चर माइक्रोकंट्रोलर का उत्पादन किया गया है, जो स्थानांतरण निर्देशों के लिए सभी संभावित गंतव्यों का प्रतिनिधित्व करने वाले स्थानांतरण मानचित्र का उपयोग करके OISC की स्पष्ट असुविधा को छुपाता है।[20]


क्रिप्टोलिक

NYU अबू धाबी में बनाया गया क्रिप्टोलेक प्रोसेसर

क्रिप्टोलेक[21]एक नामांकित निर्देश वाली भाषा है, एन्क्रिप्टेड प्रोग्राम पर सामान्य-उद्देश्य गणना करने में सक्षम है और Subleq के करीबी रिश्तेदार है। क्रिप्टोलिक डायरेक्ट और इनडायरेक्ट एड्रेसिंग का उपयोग करते हुए मेमोरी की निरंतर कोशिकाओं पर काम करता है, और दो ऑपरेशन करता है O1 और O2 तीन मानों ए, बी और सी पर:

अनुदेश cryptoleq a, b, c

मेम [बी] = ओ1(मेम [ए], मेम [बी])

    मैं एफओ2(मेम [बी]) ≤ 0
        आईपी ​​​​= सी
    अन्य
        आईपी ​​\u003d आईपी + 3

जहां ए, बी और सी को निर्देश सूचक, आईपी द्वारा संबोधित किया जाता है, आईपी एड्रेसिंग ए, आईपी + 1 पॉइंट टू बी और आईपी + 2 टू सी के मूल्य के साथ।

क्रिप्टोलैक ऑपरेशंस में O1 और O2 को इस प्रकार परिभाषित किया गया है:

Subleq के साथ मुख्य अंतर यह है कि Subleq में, O1(x,y) बस घटा देता है y से x और O2(x) बराबर है x. क्रिप्टोलिक सुब्लेक के लिए भी होमोमोर्फिक है, मॉड्यूलर उलटा और गुणन घटाव और संचालन के लिए होमोमोर्फिक है O2 Subleq परीक्षण से मेल खाता है यदि मान अनएन्क्रिप्टेड थे। Subleq में लिखा गया एक प्रोग्राम Cryptoleq मशीन पर चल सकता है, जिसका अर्थ है पश्चगामी संगतता। क्रिप्टोलिक हालांकि, पूरी तरह से होमोमोर्फिक गणनाओं को लागू करता है और चूंकि मॉडल गुणन करने में सक्षम है। एक एन्क्रिप्टेड डोमेन पर गुणन को एक अद्वितीय फ़ंक्शन जी द्वारा सहायता प्रदान की जाती है जिसे रिवर्स इंजीनियर के लिए मुश्किल माना जाता है और इसके आधार पर मूल्य के पुन: एन्क्रिप्शन की अनुमति देता है। O2 कार्यवाही:

कहाँ का पुन: एन्क्रिप्टेड मान है y और एन्क्रिप्टेड शून्य है। x एक चर का एन्क्रिप्टेड मान है, रहने दो m, और के बराबर होती है .

गुणन एल्गोरिथ्म जोड़ और घटाव पर आधारित है, फ़ंक्शन G का उपयोग करता है और इसमें न तो सशर्त छलांग होती है और न ही शाखाएँ। क्रिप्टोलेक एन्क्रिप्शन पैलियर क्रिप्टोसिस्टम पर आधारित है।

यह भी देखें

संदर्भ

  1. 1.0 1.1 Mavaddat, F.; Parhami, B. (October 1988). "URISC: The Ultimate Reduced Instruction Set Computer" (PDF). International Journal of Electrical Engineering Education. Manchester University Press. 25 (4): 327–334. doi:10.1177/002072098802500408. S2CID 61797084. Retrieved 2010-10-04. This paper considers "a machine with a single 3-address instruction as the ultimate in RISC design (URISC)". Without giving a name to the instruction, it describes a SBN OISC and its associated assembly language, emphasising that this is a universal (i.e., Turing-complete) machine whose simplicity makes it ideal for classroom use.
  2. 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Gilreath, William F.; Laplante, Phillip A. (2003). Computer Architecture: A Minimalist Perspective. Springer Science+Business Media. ISBN 978-1-4020-7416-5. Archived from the original on 2009-06-13. Intended for researchers, computer system engineers, computational theorists and students, this book provides an in-depth examination of various OISCs, including SBN and MOVE. It attributes SBN to W. L. van der Poel (1956).
  3. 3.0 3.1 3.2 3.3 3.4 3.5 Nürnberg, Peter J.; Wiil, Uffe K.; Hicks, David L. (September 2003), "A Grand Unified Theory for Structural Computing", Metainformatics: International Symposium, MIS 2003, Graz, Austria: Springer Science+Business Media, pp. 1–16, ISBN 978-3-540-22010-7 This research paper focusses entirely on a SUBLEQ OISC and its associated assembly language, using the name SUBLEQ for "both the instruction and any language based upon it".
  4. "कार्बन नैनोट्यूब से बने पहले कंप्यूटर का अनावरण किया गया". BBC. 26 September 2013. Retrieved 26 September 2013.
  5. 5.0 5.1 Oleg Mazonka, "Bit Copying: The Ultimate Computational Simplicity", Complex Systems Journal 2011, Vol 19, N3, pp. 263–285
  6. "Addleq". Esolang Wiki. Retrieved 2017-09-16.
  7. "डीजेएन ओआईएससी". Esolang Wiki. Retrieved 2017-09-16.
  8. "P1e". Esolang Wiki. Retrieved 2017-09-16.
  9. Mazonka, Oleg (October 2009). "सुबेलिया". Archived from the original on 2017-06-29. Retrieved 2017-09-16.
  10. "सुबेलिया". Esolang Wiki. Retrieved 2017-09-16.
  11. Z. A. Melzak (1961). "An informal arithmetical approach to computability and computation". Canadian Mathematical Bulletin. 4 (3): 279–293. doi:10.4153/CMB-1961-031-9.
  12. xoreaxeaxeax. "movfuscator". GitHub. Retrieved 2022-11-12.
  13. "Dawn for SUBLEQ".
  14. https://www.gazetaeao.ru/zanimatelnaya-nauka-vchera-segodnya-zavtra/ A Russian article on popular science in Birobidzhaner Shtern with a brief discussion of Yoel Matveyev's Izhora computer
  15. https://habr.com/ru/post/584596/ A description of the virtual computer Izhora on Habr (in Russian)
  16. Oleg Mazonka A Simple Multi-Processor Computer Based on Subleq
  17. Z. A. Melzak (2018-11-20) [1961-09]. "कम्प्यूटेबिलिटी और कम्प्यूटेशन के लिए एक अनौपचारिक अंकगणितीय दृष्टिकोण". Canadian Mathematical Bulletin. 4 (3): 279–293. doi:10.4153/CMB-1961-032-6.
  18. J. Lambek (2018-11-20) [1961-09]. "कैसे एक अनंत अबेकस प्रोग्राम करने के लिए". Canadian Mathematical Bulletin. 4 (3): 295–302. doi:10.4153/CMB-1961-032-6.
  19. Jones, Douglas W. (June 1988). "The Ultimate RISC". ACM SIGARCH Computer Architecture News. New York: ACM. 16 (3): 48–55. doi:10.1145/48675.48683. S2CID 9481528. Retrieved 2010-10-04. "Reduced instruction set computer architectures have attracted considerable interest since 1980. The ultimate RISC architecture presented here is an extreme yet simple illustration of such an architecture. It has only one instruction, move memory to memory, yet it is useful."
  20. Catsoulis, John (2005), Designing embedded hardware (2 ed.), O'Reilly Media, pp. 327–333, ISBN 978-0-596-00755-3
  21. Mazonka, Oleg; Tsoutsos, Nektarios Georgios; Maniatakos, Michail (2016), "Cryptoleq: A Heterogeneous Abstract Machine for Encrypted and Unencrypted Computation", IEEE Transactions on Information Forensics and Security, 11 (9): 2123–2138, doi:10.1109/TIFS.2016.2569062, S2CID 261387


बाहरी संबंध