एक निर्देश सेट कंप्यूटर

From alpha
Jump to navigation Jump to search

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


मशीन वास्तुकला

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

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

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

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

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

फ्लिपजंप

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

BitBitJump

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

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

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

मल्टी-बिट कॉपी मशीन

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

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

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

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

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

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

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


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

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

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

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

यह आलेख उन निर्देशों के बीच केवल घटाव-आधारित निर्देश प्रस्तुत करता है जो ट्रांसपोर्ट ट्रिगर नहीं हैं। हालाँकि, अन्य अंकगणितीय परिचालनों, जैसे, जोड़, के आधार पर एक निर्देश का उपयोग करके ट्यूरिंग पूर्ण मशीनों का निर्माण करना संभव है। उदाहरण के लिए, एक भिन्नता जिसे डीएलएन (डिक्रीमेंट और जंप यदि शून्य नहीं है) के रूप में जाना जाता है, में केवल दो ऑपरेंड होते हैं और बेस ऑपरेशन के रूप में डिक्रीमेंट का उपयोग किया जाता है। अधिक जानकारी के लिए सुबलेक व्युत्पन्न भाषाएँ [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

मेम[ए] = मेम[ए] - ACCUM

    ACCUM = मेम[ए]
    अगर (मेम[ए] ≤ 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 सबलेक्यू2 निर्देशों की आवश्यकता होती है:

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


अनुकरण

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

 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-बिट सुबलेक कंप्यूटर का निर्माण योएल मतवेव द्वारा एक बड़े सेल्यूलर आटोमेटा पैटर्न के रूप में किया गया है।[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। Minuend और Subtrahend को उलटने से हार्डवेयर में कार्यान्वयन आसान हो जाता है। गैर-विनाशकारी परिणाम सिंथेटिक निर्देशों को सरल बनाता है।

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

(*घटाना, घटाना, परिणाम और जंप पते*)

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

अंकगणित मशीन

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

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

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

यदि (मेम[वाई] <मेम[एक्स])

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

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

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:

जहां मेमोरी लोकेशन P, p है, Q, q है, ONE 1 है, ANS प्रारंभ में 0 है और अंत में pq है, और S एक बड़ी संख्या है।

उन्होंने उल्लेख किया है कि पुनरावर्ती कार्यों के तत्वों का उपयोग करके यह आसानी से दिखाया जा सकता है कि अंकगणित मशीन पर गणना करने योग्य प्रत्येक संख्या गणना योग्य है। जिसका एक सबूत लाम्बेक ने दिया है[18] समतुल्य दो अनुदेश मशीन पर:

यदि उधार लिया हो तो उल्टा घटाएं और छोड़ें

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

अनुदेश rssb x ACCUM = मेम[x] - ACCUM

    मेम[x] = ACCUM
    यदि (वर्तमान <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] यदि अस्थायी पर संग्रहीत मूल्य प्रारंभ में एक नकारात्मक मूल्य है और इस रूटीन में पहले आरएसएसबी अस्थायी से ठीक पहले निष्पादित निर्देश उधार लिया गया है, तो दिनचर्या को काम करने के लिए चार आरएसएसबी अस्थायी निर्देशों की आवश्यकता होगी।
  • [नोट 2] यदि z पर संग्रहीत मान प्रारंभ में एक नकारात्मक मान है तो अंतिम RSSB x को छोड़ दिया जाएगा और इस प्रकार रूटीन काम नहीं करेगा।

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

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

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

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

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

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


क्रिप्टोलेक

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

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

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

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

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

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

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

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

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

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

यह भी देखें

संदर्भ

  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. "पी1ई". 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


बाहरी संबंध