একটি টুরিং সম্পূর্ণ প্রসেসর তৈরি করতে প্রয়োজনীয় ন্যূনতম নির্দেশনার সেট কী


19

প্রসেসর কীভাবে নির্দেশাবলী পরিচালনা করে সে সম্পর্কে আমার একটি সাধারণ ধারণা আছে তবে বেশিরভাগ উচ্চ স্তরের ভাষায় আমার সময় ব্যয় করে। হতে পারে যে কেউ লোহার কাছাকাছি কাজ করে কিছু মূল্যবান অন্তর্দৃষ্টি সরবরাহ করতে পারে।

ধরে নিই যে প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি মূলত একটি প্রসেসরের নির্দেশের সেটটির খুব উচ্চ স্তরের বিমূর্ততা হয়, একটি টুরিং সম্পূর্ণ মেশিন তৈরি করার জন্য প্রয়োজনীয় প্রাথমিক নির্দেশাবলীর কী?

দ্রষ্টব্য: হার্ডওয়্যার আর্কিটেকচারের বৈচিত্র সম্পর্কে আমি কিছু জানি না তবে - সরলতার জন্য - ধরে নিই এটি একটি সাধারণ প্রসেসর একটি ALU (প্রয়োজনে) এবং নির্দেশ স্ট্যাক সহ। *


কম্পিউটার সায়েন্স এসই এ জাতীয় প্রশ্ন জিজ্ঞাসা করার জন্য আরও ভাল জায়গা হতে পারে (
ওসকার স্কোগ

কোনও আইএসএ যে নির্দেশাবলীর সংখ্যা হ্রাস পেয়েছে, তেমনি নির্দেশাবলীর সংখ্যাটির অর্থপূর্ণতাও। আইএসএগুলি "অনুকূল" আরআইএসসির চেয়ে কম নির্দেশনা পেলে অধীর হয়ে পড়ে। একটি মাত্র নির্দেশ সহ একটি আইএসএ অদ্ভুত হতে চলেছে। // সংখ্যা বৃদ্ধি হওয়ায় এবং তারা আইএসআই সিআইসিসিতে পরিণত হওয়ার সাথে সাথে তারা আরও উদ্ভট হয়। // "অদ্ভুত" অবশ্যই কমবেশি বিষয়গত।
ওসকার স্কোগ

উত্তর:


35

দেখা যাচ্ছে টুরিং-গুনে সক্ষম একটি মেশিন তৈরি করতে আপনার কেবলমাত্র একটি নির্দেশের প্রয়োজন । এই শ্রেণীর মেশিনগুলির কেবলমাত্র একটি নির্দেশ রয়েছে এবং টিউরিং-সম্পূর্ণ রয়েছে যাকে ওয়ান ইন্সট্রাকশন সেট কম্পিউটার বলা হয় বা কিছুটা রসিকতার সাথে আলটিমেট আরআইএসসিও বলা হয়


4
, সম্ভাব্য সর্বোত্তম উত্তর আঘাত যদি না একটি শূন্য নির্দেশ সমাধান পাওয়া যায় জন্য +1 (আসলে, এক নির্দেশ কম্পিউটারের মাঝে মাঝে শূন্য নির্দেশ কম্পিউটারের বলা হয়, সেখানে কোনো তথ্য নির্দেশ নিজেই পাওয়া কারণ)
পুনর্বহাল মনিকা - Cort অম্মোন

4
হ্যাঁ, তবে সেই এক নির্দেশনাটি মেশিনকে টুরিং সম্পূর্ণ করে তোলে না: যাদুটি সেই নির্দেশনাটি যে বিভিন্ন বিশেষায়িত নিবন্ধগুলিতে সম্বোধন করতে পারে তার মধ্যে রয়েছে। আমি মনে করি আপনার উত্তরটি নির্দেশ করে যে ওপি "কম্পিউটার" এর সাথে "ভন নিউম্যান আর্কিটেকচার" এর সাথে সমান, যখন আসলে, "কম্পিউটার" বিভাগটি তার চেয়ে অনেক বেশি বিস্তৃত।
সলোমন

2
@ জেমস্লারেজ জাদুটি বিশেষায়িত নিবন্ধগুলিতে অগত্যা নয়। বিটবিটজাম্প, এসবিএনজেড, সাবলেক, এবং সাবনেগের রেজিস্টারগুলি মোটেই প্রয়োজন নেই, কেবলমাত্র একটি করে নির্দেশ এবং বোবা মেমরি।
বিট্রি

2
@ 8 বিট্রি, হুন! আমার ধারণা আমি ভুলে গিয়েছিলাম যে অদ্ভুত-তবে-টুরিং-সম্পূর্ণ আর্কিটেকচার ডিজাইন করা একটি প্রতিযোগিতামূলক খেলা। আমি যখন জার্গের উত্তরটি পড়ি, আমি আমার আন্ডারগ্র্যাডের দিনগুলিতে ফিরে আসা একটি বন্ধুকে স্মরণ করি (১৯৮০-এর প্রায় কোনও কিছু) যিনি L৪ এলএস সিরিজের চিপগুলি থেকে "একটি নির্দেশিকা কম্পিউটার" তৈরি করার পরিকল্পনা করেছিলেন, এবং তারপরে এটি একটি ডিসসিস্টেম 10 অনুকরণ করার জন্য প্রোগ্রাম করেছিলেন I উইকিপিডিয়া পৃষ্ঠায়, এবং আমি এখন জানি যে তার নকশাকে আজ "ট্রান্সপোর্ট ট্রিজার্ড আর্কিটেকচার" বলা হবে। সে কখনই অনুধাবন করেছে কিনা জানি না।
সলোমন স্লো

2
@ জেমস্লারেজ: ইন্টেল এমএমইউও টুরিং-সম্পূর্ণ (বিশেষত, ফাঁদ প্রক্রিয়া)। এটি প্রকৃতপক্ষে খুব অদ্ভুত, তবে এটি নকশাকৃত হওয়ার বিপরীত, এটি খাঁটি দুর্ঘটনা।
জার্গ ডব্লু মিট্টাগ

15

এমন কিছু বাস্তবায়নের জন্য অনেকগুলি উপায় রয়েছে যার মাধ্যমে কেউ কোনও টিউরিং মেশিন প্রয়োগ করতে পারে।

আপনি যেমন প্রসেসরের দিকে নজর দিচ্ছেন, সম্ভবত এটি সবচেয়ে বেশি প্রযোজ্য তা হ'ল রেজিস্টার মেশিন মডেল । এর মধ্যে সবচেয়ে সহজ (প্রতীকগুলির নিরিখে) মুলিট টেপ দুটি প্রতীক ( markএবং blank)। আপনি গুপ্ত কিছু হিসাবে যান না, the inc(r), dec(r)এবং jz(r,z)(নিবন্ধকরণ যদি rনির্দেশের শূন্য হয় z) বা clr(r)(পরিষ্কার r) inc, je(i,j,z)(নিবন্ধকরণ যদি আমি এবং জে নির্দেশ z এর সমান হয়)।

আমি একটি রেজিস্টার মেশিনের উল্লেখ দেখেছি যে:

  • ইনক (আই, এম) - ইনক্রিমেন্ট রেজিস্টার i এবং লাইন এম এ যান
  • জজেডেক (i, এম 1, এম 2) - নিবন্ধিত হলে আমি 0 হয় লাইন এম, অন্য হ্রাস i, এবং লাইন এম 2 এ যান

যা সম্পূর্ণরূপে ট্যুরিওর হয় - এটি একটি মিনস্কি রেজিস্ট্রার মেশিন যদিও টেপে থাকা ডেটা সম্পর্কিত অন্যান্য বাধা রয়েছে (এটি পৃথক রেজিস্টারের পরিবর্তে রাজ্যকে স্টোর করে গুডেল নম্বর হতে হবে)

এটাই. বেশি না.


সুতরাং, কেন এই পরিবর্তে এই আল্ট্রা রিস্ক প্রসেসরগুলি ব্যবহার করা হচ্ছে না? তাদের জন্য একটি সংকলক লেখার জন্য এটি একটি সত্যিকারের ব্যথা এবং আপনি প্রসেসরটি করতে পারেন এমন আরও অনেক কিছুই ত্যাগ করেন। কিছুটা হলেও ভাল লাগছে and, এবং addরেজিস্ট্রার বৃদ্ধি এবং লুপিংয়ের সাহায্যে সবকিছু করার চেয়ে বরং। ব্রেনফাক শিরোনামে একটি প্রিয় প্রোগ্রামিং ভাষার ভিত্তিতে 8 টি নির্দেশ রয়েছে।

  • > ডেটা পয়েন্টার বৃদ্ধি
  • < হ্রাস তথ্য পয়েন্টার
  • + ডেটা পয়েন্টারে ডেটা বৃদ্ধি করুন
  • - ডেটা পয়েন্টারে ডেটা হ্রাস
  • . ডাটা পয়েন্টারে ডাটা আউটপুট দেয়
  • , ইনপুট পড়ুন, ডেটা পয়েন্টারে ডেটা সঞ্চয় করে
  • [যদি পয়েন্টার এ ডেটা শূন্য হয়, পরিবর্তে এগিয়ে এক নির্দেশ পয়েন্টার সরানোর, ম্যাচিং পর কমান্ড এটি ফরওয়ার্ড তিড়িং লাফ ]কমান্ড
  • ]যদি পয়েন্টারে থাকা ডেটা যদি ননজারো হয় তবে নির্দেশ পয়েন্টারটিকে এগিয়ে নিয়ে যাওয়ার পরিবর্তে ম্যাচিং ]কমান্ডের পরে কমান্ডটিতে ফিরে যান jump

এক কম্পাইলার জানতে পারেন করতে , Brainfuck যদিও তার সত্যিই না মজা এমনকি সহজ কিছু করার। হতাশাকে উপভোগ না করা হলে ভাষাটির উদ্দেশ্য এটিই।

সম্পর্কিত পড়া:


5

আমি সন্দেহ করি যে পোস্ট মেশিনটি টুরিং-সম্পূর্ণ ডিভাইসের সহজতম ফর্ম সম্পর্কে। আপনার বিট-ঠিকানাযোগ্য মেমরির সরবরাহ প্রয়োজন, একটি ঠিকানা নিবন্ধ যা বর্তমান তথ্য অবস্থানের দিকে নির্দেশ করে এবং পাঁচটি নির্দেশনা:

  • বর্তমান অবস্থানে বিট সেট করুন;
  • বর্তমান অবস্থানে বিট পুনরায় সেট করুন;
  • পরবর্তী ঠিকানায় সরান (বর্ধিত তথ্য ঠিকানা নিবন্ধকার);
  • পূর্ববর্তী ঠিকানায় সরান (হ্রাস তথ্য ঠিকানা রেজিস্টার);
  • বর্তমান তথ্য অবস্থানের উপর বিট পরীক্ষা করুন।

আমি মনে করি না যে খুব সহজ হার্ডওয়্যার-ভিত্তিক কিছু আবিষ্কার করা সহজ, যদিও এর চেয়ে আরও কম কিছু সম্ভবত উপস্থিত রয়েছে।


5

বাস্তবায়নের

এই উত্তরটি একক নির্দেশের সেট সিপিইউ, সংকলক এবং সমাবেশকারীদের আকর্ষণীয় বাস্তবায়নের উপর ফোকাস করবে।

movfuscator

https://github.com/xoreaxeaxeax/movfuscator

কেবলমাত্র movx86 নির্দেশাবলী ব্যবহার করে সি কোডটি সংকলন করে , একটি একক নির্দেশকে যথেষ্ট পরিমাণে বোঝানো হয় ।

টুরিংয়ের সম্পূর্ণতা একটি কাগজে প্রমাণিত হয়েছে বলে মনে হয়: https://www.cl.cam.ac.uk/~sd601/papers/mov.pdf

subleq

https://esolangs.org/wiki/Subleq :

আরো দেখুন

/programming/3711443/minimal-instruction-set-to-solve-any-problem-with-a-computer-program/38523869#38523869


3

একটি টুরিং সম্পূর্ণ প্রসেসর তৈরি করতে প্রয়োজনীয় ন্যূনতম নির্দেশনার সেট কী?

জার্গ ডব্লু মিতাগ বলেছেন, "এক," তবে কেমন শূন্য?

আপনি কেন ধরে নিলেন যে কোনও "প্রসেসর" এর "নির্দেশিকা" থাকতে হবে?

একটি টুরিং মেশিন একটি টুরিং-সম্পূর্ণ প্রসেসর, এবং এটি "নির্দেশাবলীর" উপর যেমন পরিচালনা করে না। এটা আছে নিয়ম , কিন্তু নিয়ম নির্দেশাবলী একটি র্যান্ডম অ্যাক্সেস মেমোরি থেকে সংগ্রহ করা হয় না।

অ্যালান টুরিং যখন তার নামকরণকারী মেশিনটি চিন্তা করেছিলেন, তখন তিনি "গণনা" এর সহজতম সম্ভাব্য মডেলটি অনুসন্ধান করছিলেন যাতে তিনি গাণিতিক কৌশলগুলি এই প্রশ্নের উত্তর দেওয়ার জন্য করতে পারেন, "গণনাযোগ্য কী?"

আপনার কাছে টুরিং-সমতুল্য মেশিনটি ডিজাইন করতে কঠোর চাপ দেওয়া হবে যা প্রকৃত ট্যুরিং মেশিনের চেয়ে সহজ।

আপনি যে ধরণের প্রসেসরের কথা ভাবছেন FWIW --- একটি যা মেমরি থেকে নির্দেশনা নিয়ে আসে, সেগুলি ডিকোড করে এবং কার্যকর করে এবং যা একই মেমরি সিস্টেমে সঞ্চিত ডেটাতে কাজ করে --- এটি ভন নিউমান আর্কিটেকচার হিসাবে পরিচিত is

https://en.wikipedia.org/wiki/Von_Neumann_architecture

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.