MikroSim
মাইক্রোসফ্ট উইন্ডোজ অপারেটিং সিস্টেমে চলমান একটি ভার্চুয়াল প্রসেসরের সাধারণ কার্যকারিতা এবং আচরণের হার্ডওয়্যার-অ-নির্দিষ্ট ব্যাখ্যার জন্য মিক্রোসিম একটি শিক্ষামূলক সফ্টওয়্যার কম্পিউটার প্রোগ্রাম। ক্ষুদ্রায়িত ক্যালকুলেটর, মাইক্রোকন্ট্রোলার, মাইক্রোপ্রসেসর এবং কম্পিউটারের মতো যন্ত্রগুলি মাইক্রো নির্দেশাবলীর (মাইক্রোকোড) ক্রম দ্বারা নিয়ন্ত্রিত একটি রেজিস্টার স্থানান্তর স্তরে কাস্টম-ডেভেলপ করা নির্দেশ কোডে ব্যাখ্যা করা যেতে পারে। এর উপর ভিত্তি করে উচ্চ স্তরের বিমূর্ততায় একটি ভার্চুয়াল অ্যাপ্লিকেশন বোর্ড নিয়ন্ত্রণ করার জন্য একটি নির্দেশ সেট তৈরি করা সম্ভব। সাধারণ প্রাথমিকভাবে মিক্রোসিম একটি প্রসেসর সিমুলেশন সফ্টওয়্যার হিসাবে তৈরি করা হয়েছিল যা শিক্ষামূলক ক্ষেত্রে ব্যাপকভাবে উপলব্ধ। যেহেতু মাইক্রোসিম কার্যকারিতা মাইক্রোকোড বিকাশের ভিত্তিতে শুরু হয়, যা একটি ভার্চুয়াল নিয়ন্ত্রণ ইউনিটের জন্য মাইক্রো নির্দেশাবলীর (মাইক্রোকোডিং) ক্রম হিসাবে সংজ্ঞায়িত করা হয়, তাই সফ্টওয়্যারটির উদ্দেশ্য হল প্রথমে সিপিইউ সিমুলেটর এবং নির্দেশ সেট এমুলেটরগুলির ক্ষমতা সহ বিভিন্ন স্তরের বিমূর্ততা সহ একটি মাইক্রোকোড সিমুলেটর ব্যবহার করা। বর্তমান সফ্টওয়্যার সংশোধনে একটি মাইক্রোকোড নিয়ন্ত্রিত ভার্চ্যুয়াল অ্যাপ্লিকেশনের পক্ষে নিজস্ব কোডেড নির্দেশ সেটগুলিতে কাজ করা সম্ভব। মাইক্রোসিমের সাথে কম্পিউটার ইঞ্জিনিয়ারিং ক্ষেত্রে সাধারণ এবং সুপরিচিত ধারণাগুলি যেমন কম্পিউটার আর্কিটেকচার এবং নির্দেশ সেট আর্কিটেকচারকে অ-নির্দিষ্টভাবে বিবেচনা করা হয়, যা তথ্য যুগের প্রথম দিনগুলি থেকে প্রতিষ্ঠিত হয়েছে এবং এখনও বৈধ। এই পদ্ধতিতে সিমুলেশন সফ্টওয়্যার অতীত এবং ভবিষ্যতের বিশেষ বিকাশের উপর সীমাবদ্ধ না হয়ে একটি কালজয়ী, বিনামূল্যে উপদেশমূলক সুবিধা অর্জন করে। বিশদ ডকুমেন্টেশন এবং জার্মান ও ইংরেজিতে দ্বিভাষিক অ্যাপ্লিকেশনের গ্রাফিকাল ইউজার ইন্টারফেস (জিইউআই), পাশাপাশি মাইক্রোসফ্টের অপারেটিং সিস্টেম উইন্ডোজ দ্বারা কিছু পরিমাণে প্রদত্ত সফ্টওয়্যারটির ঊর্ধ্বমুখী সামঞ্জস্য, 1992 সাল থেকে শিক্ষাগত ব্যবহারের জন্য কম্পিউটার ইঞ্জিনিয়ারিংয়ের ক্ষেত্রে একটি সুপ্রতিষ্ঠিত, মূল্যবান ই-লার্নিং টুল হওয়ার কারণ। উন্নয়নের ইতিহাস সফ্টওয়্যারটি এমএস-ডস অপারেটিং সিস্টেমের জন্য সংকলিত টার্বো পাস্কেলের অধীনে লিখিত একটি সংস্করণের উপর ভিত্তি করে তৈরি করা হয়েছে যা 1992 সাল পর্যন্ত ফিলিপস-ইউনিভার্সিটি মারবুর্গে (জার্মানি) কম্পিউটার ইঞ্জিনিয়ারিং এবং কম্পিউটার বিজ্ঞানের শিক্ষামূলক উদ্দেশ্যে ব্যবহৃত হয়েছে। 1992 সালের গ্রীষ্মে মার্টিন পার্নার তাঁর পদার্থবিজ্ঞান অধ্যয়নের সময় এই ধারণাটি গ্রহণ করেছিলেন, সংশোধন করেছিলেন এবং মাইক্রোসফ্ট ভিজ্যুয়াল বেসিকের সাথে সংকলিত এবং উইন্ডোজ 3.1x-এ চলমান একটি উইন্ডোজ অ্যাপ্লিকেশন রূপান্তরিত করেছিলেন। এটি করার মাধ্যমে, এই সময়ে মাইক্রোকোডের গঠন এবং এর নির্দেশমূলক প্রভাবের সনাক্তকরণকে সমর্থন করার জন্য এমএস উইন্ডোজের জিইউআই-এর অভিনব কার্যকারিতা এবং ব্যবহারকে কাজে লাগিয়ে বিশাল ধারণাগত উন্নতি সহ একটি সিমুলেটর তৈরি হয়েছিল। উইন্ডোজের অধীনে ই-লার্নিং টুলের বর্ধিতকরণগুলি 1995 সালের শেষ পর্যন্ত হাইঞ্জ-পিটার গাম দ্বারা মারবার্গ বিশ্ববিদ্যালয়ের ফ্যাচবেরিচ ম্যাথমেটিক/ইনফরম্যাটিক দ্বারা সমর্থিত এবং প্রচারিত হয়েছে। সিমুলেটরটি 1994 সালের নভেম্বরে হাইডেলবার্গে (জার্মানি) কম্পিউটার বিজ্ঞান বিভাগে "ইউরোপীয় একাডেমিক সফ্টওয়্যার অ্যাওয়ার্ড 1994"-এ ভূষিত হয়েছে। 1995 সালের মার্চ মাসে হ্যানোভারের কম্পিউটার প্রদর্শনী সি. ই. বি. আই. টি '95-এ "হেসিসচেন হোস্কুলেনের" প্রদর্শনীতে সিমুলেটরটি উপস্থাপন করা হয়। 1995 থেকে 2000 সালের মধ্যে সিমুলেটরটি কোনও উল্লেখযোগ্য উন্নতি ছাড়াই "মাইক্রোকোডেসিম্যুলেটর মাইক্রোসিম 1.2" হিসাবে প্রকাশিত হয়েছিল। এই সময়ে টুলটি "ইউরোপিয়ান ইয়ার অফ লাইভলং লার্নিং 1996"-এর সাথে ইউরোপীয় ইউনিয়ন থেকে 1000 ই. সি. ইউ পুরস্কার পেয়েছে। 1997 সালে, "লার্নটেক '97" প্রদর্শনীর সাথে সম্পর্কিত "মাল্টিমিডিয়া ট্রান্সফার' 97" প্রতিযোগিতায় সফ্টওয়্যারটি উপস্থাপন করা হয়েছিল। তার চূড়ান্ত সংশোধনে, সিমুলেটরটি "মাইক্রোকোডেসিম্যুলেটর মাইক্রোসিম 2000"-এর অধীনে প্রকাশিত হয়েছে, যা এমএস উইন্ডোজ 95-এর 32-বিট অপারেশনের জন্য অনুকূলিত। 2008 থেকে 2009 সালের মধ্যে, সিমুলেটর ধারণাটি সংশোধন করা হয়েছে, পুনর্নির্মাণ করা হয়েছে এবং চিন্তাশীলভাবে প্রসারিত করা হয়েছে। সুতরাং এটি মূল অংশে মাইক্রোকোড সিমুলেশন ক্ষমতার সফল ধারণাগত দিকগুলিকে স্পর্শ না করে বিস্তৃত উন্নতি এবং সম্প্রসারণ পেয়েছে। এই উদ্দেশ্যে, অপারেটিং সিস্টেম এবং অন্তর্নিহিত গণনামূলক শক্তি দ্বারা নির্ধারিত আজকের কম্পিউটিং সিস্টেমের পারফরম্যান্সের সুবিধা নেওয়া হয় যাতে মাইক্রোসিমের সিমুলেশন সম্ভাবনাগুলি একটি ভার্চুয়াল অ্যাপ্লিকেশন বোর্ডের পর্যায় পর্যন্ত প্রসারিত করা যায়। মাইক্রোসিম সীমাহীন সামঞ্জস্যের জন্য এবং 32-বিট সংস্করণ হিসাবে এমএস উইন্ডোজ এক্সপির জন্য সম্ভাব্য বিস্তৃত বিতরণের জন্য সংকলিত এবং অনুকূলিত করা হয়েছে। প্রোগ্রামটি এমএস উইন্ডোজ ভিস্তা এবং এমএস উইন্ডোজ 7-এর সমস্ত 32-এবং 64-বিট অপারেটিং সিস্টেমে চলে। এর ফলে, কোনও বিশেষ এক্সপি সামঞ্জস্যপূর্ণ মোডের প্রয়োজন হয় না। জানুয়ারী 2010 থেকে, সিমুলেটরটি 0/1-সিমওয়্যার দ্বারা "মিক্রোকোডসিম্যুলেটর মিক্রোসিম 2010" হিসাবে বিতরণ করা হয়। কার্যকারিতা উইন্ডোজ অ্যাপ্লিকেশন একটি ভার্চুয়াল অ্যাপ্লিকেশন ধীরে ধীরে প্রতিষ্ঠার অনুমতি দেয় যা পূর্বনির্ধারিত এবং এর কার্যকারিতায় অপরিবর্তনীয়। অন্বেষণ মোডে, একটি চক্রের মধ্যে একটি মাইক্রোকোড নির্দেশ দ্বারা প্রভাবিত নতুন যুক্ত উপাদানগুলির পরিচালন নীতি এবং নিয়ন্ত্রণ মূল্যায়ন করা যেতে পারে। মাইক্রোসিমের মাইক্রো নির্দেশাবলীর প্রস্থ 49 বিট। একটি একক ক্ষুদ্র নির্দেশ 3-পর্যায়ের ঘড়ির তিনটি পর্যায়ে কার্যকর করা হয়। আংশিক পর্যায়গুলিকে "জিইটি", "ক্যাল্কুলেট" এবং "পিইউটি" পর্যায় হিসাবে উল্লেখ করা হয়, যার ফলে কিছু রেজিস্টার মান পাওয়া যায়, একটি 32-বিট গণনা কার্যকর করা যায় এবং গণনার ফলাফলটি একটি সিপিইউর অভ্যন্তরীণ রেজিস্টারে সংরক্ষণ করা হয়। সিমুলেশন মোডে, নির্বিঘ্নে সম্পাদিত মাইক্রো নির্দেশাবলী পরবর্তী চক্রগুলিতে সিমুলেটরটির কেন্দ্রীয় প্রক্রিয়াকরণ ইউনিটকে নিয়ন্ত্রণ করে। অতএব, একটি মাইক্রো নির্দেশের অভ্যন্তরীণ ক্ষমতা কন্ট্রোল স্টোরে পরবর্তী মাইক্রো নির্দেশকে সম্বোধন করতে ব্যবহৃত হয়। মাইক্রো ইন্সট্রাকশন সেট (সাধারণত "মাইক্রোকোড" হিসাবে পরিচিত) ধারণকারী কন্ট্রোল স্টোরে প্রতিটি 49-বিট চওড়া 1024 মাইক্রো ইন্সট্রাকশন শব্দ রয়েছে। মাইক্রোকোডের অ্যাড্রেসেবল সময়সূচীর জন্য কন্ট্রোল স্টোরের কাঠামোর সুযোগগুলি ব্যবহার করা এবং একটি সাইক্লিক্যালি অপারেটিং মেশিন কোড ইন্টারপ্রেটারের বাস্তবায়ন, যা মাইক্রোকোডে প্রোগ্রাম করা হয় পাশাপাশি পৃথক মাইক্রো-অপারেশন সিকোয়েন্স বাস্তবায়নের অনুমতি দেয়, যা মেশিন নির্দেশাবলী হিসাবে পরিচিত। মাইক্রোকোডকে মাইক্রোসিমের জন্য ফার্মওয়্যার হিসাবে বিবেচনা করা যেতে পারে, যা পরিবর্তন করা যেতে পারে এবং একটি মাইক্রোকোড-রম-ফাইল থেকে সংরক্ষণ এবং পুনরায় লোড করা যেতে পারে। একটি মাইক্রো ইন্সট্রাকশন এক্সিকিউশন চক্রের মধ্যে, সিপিইউ পাশাপাশি একটি ইনপুট/আউটপুট নিয়ামক একটি বাহ্যিক 16 কেবাইট বিশাল র্যান্ডম অ্যাক্সেস মেমরি ডিভাইসের (র্যাম) সাথে সংযুক্ত থাকে। ইনপুট-আউটপুট নিয়ামক যন্ত্রের মাধ্যমে, ভার্চ্যুয়াল ইনপুট এবং আউটপুট যন্ত্রের সঙ্গে যোগাযোগ ডাইরেক্ট মেমোরি অ্যাক্সেস মোড (ডি. এম. এ), ইন্টার-ইন্টিগ্রেটেড সার্কিট কানেকশন (আই. টু. সি) এবং ইন্টারাপ্ট অনুরোধ কার্যকারিতা (আই. আর. কিউ) দ্বারা সমর্থিত হয়। একটি আউটপুট পোর্ট, একটি ডিসপ্লে, একটি টাইমার, একটি ইভেন্ট ট্রিগার, একটি ডিজিটাল-অ্যানালগ কনভার্টার, একটি কীবোর্ড এবং ডেটা ইনপুট/আউটপুট চ্যানেলকে ভার্চ্যুয়াল আইসি ডিভাইস হিসাবে সরবরাহ করা হয় যাতে বাহ্যিক ডিভাইসগুলির সাথে যোগাযোগকে কার্যকরীভাবে ব্যাখ্যা করা যায়। মাইক্রোকোড সিমুলেটরটি 32-বিট গাণিতিক লজিক ইউনিটের (এ. এল. ইউ) সাথে সংযুক্ত প্রতিটি 32-বিট প্রশস্ত আটটি অবাধে ব্যবহারযোগ্য রেজিস্টার ব্যবহার করে। রেজিস্টারের বিষয়বস্তুকে স্বাক্ষরিত বা স্বাক্ষরহীন পূর্ণসংখ্যার মান বা 32-বিট ভাসমান বিন্দু সংখ্যা হিসাবে বিবেচনা করা যেতে পারে। রেজিস্টারের বিষয়বস্তু সহজেই একটি সমন্বিত সিস্টেম নম্বর সম্পাদকের মাধ্যমে দেখা, ব্যাখ্যা করা এবং বিটওয়াইজ পরিবর্তন করা যেতে পারে। 32-বিট এ. এল. ইউ হল কেন্দ্রীয় প্রক্রিয়াকরণ ইউনিটের মূল একক। এটি পূর্ণসংখ্যা অপারেশন, বাধা নিয়ন্ত্রণ এবং ভাসমান বিন্দু গাণিতিকের জন্য 128টি বিভিন্ন মৌলিক গাণিতিক ক্রিয়াকলাপকে সমর্থন করে। ভাসমান বিন্দু গণনার উপদেশমূলক পদ্ধতি, যা ইতিমধ্যে 1940-এর দশকের গোড়ার দিকে কনরাড জুস দ্বারা তুলনীয় পদ্ধতিতে চালু করা হয়েছে, যোগ/বিয়োগ এবং গুণ/বিভাজনের মূল ক্রিয়াকলাপের সাথে জড়িত সূচক এবং মান্টিসার জন্য মৌলিক উপ-স্তরের ক্রিয়াকলাপ ব্যবহার করে চালু করা হয়েছে। মান্টিসাতে শক্তিশালী 32-বিট ভাসমান বিন্দু গাণিতিক কমান্ডের একটি সেট এবং মৌলিক ক্রিয়াকলাপ এবং প্রাথমিক বিশ্লেষণাত্মক ফাংশনের জন্য সূচক সরবরাহ করা হয়, যেমনটি আজকের গাণিতিক কোপ্রোসেসরগুলিতে উপলব্ধি করা হয়। এখানে, মিক্রোসিমের সাথে সিমুলেশনে এটি আদর্শভাবে ধরে নেওয়া হয় যে প্রতিটি সমর্থিত এএলইউ গাণিতিক ক্রিয়াকলাপ সম্পাদনের জন্য বাস্তবসম্মতভাবে অনুশীলনে প্রয়োজনীয় সার্কিট জটিলতা থেকে স্বাধীন একটি স্বতন্ত্র কম্পিউটিং সময়কাল প্রয়োজন। মাইক্রো নির্দেশাবলীর কার্যকরকরণ বিভিন্ন অস্থায়ী রেজোলিউশনের সাথে বিভিন্ন সিমুলেশন স্তরে পরিচালিত হতে পারেঃ সর্বনিম্ন সিমুলেশন স্তরে, সিমুলেটর জিইটি, ক্যাল্কুলেট এবং পিইউটি পর্যায়ের পর্যায়ক্রমে কার্যকরকরণকে সমর্থন করে। আরও ভালভাবে সনাক্তকরণের জন্য সামঞ্জস্যযোগ্য বিলম্বের মাধ্যমে আংশিক পর্যায়গুলির প্রক্রিয়াকরণ সম্ভব। পরবর্তী উচ্চ স্তরে, বর্তমান ক্ষুদ্র নির্দেশনা সময় বিলম্ব ছাড়াই একটি সম্পূর্ণ তিন-পর্যায়ের ঘড়িতে কার্যকর করা হয়। একটি তথাকথিত "লোড ইনক্রিমেন্ট এক্সিকিউট" (এল. আই. ই) চক্রের মধ্যে বেশ কয়েকটি 3-পর্যায়ের ঘড়ি চক্রের অবিচ্ছিন্ন সম্পাদন সমর্থিত। মাইক্রোকোডে লিখিত দোভাষী হিসাবে বিবেচিত এল. আই. ই চক্রের বাহ্যিক র্যাম থেকে বাইট মান হিসাবে কোডেড মেশিনের নির্দেশাবলী লোড করার এবং অপকোড দ্বারা প্রদত্ত সম্পাদনের জন্য রেফারেন্সড মাইক্রোকোড সাবরুটিনে মাইক্রো নির্দেশ ক্রমটি শাখা করতে এবং পরবর্তী মেশিন নির্দেশ পুনরুদ্ধারের জন্য এল. আই. ই-তে ফিরে আসার ফাংশন রয়েছে। একটি এক্সিকিউশন স্তর উচ্চতর, ব্যবহারকারী-সংজ্ঞায়িত ব্রেক পয়েন্টে না পৌঁছানো পর্যন্ত বেশ কয়েকটি মেশিন নির্দেশাবলীর একটি ক্রম এক্সিকিউটেবল হয়, যা মেশিন কোড সিকোয়েন্সে স্থাপন করা হয়। ব্রেক পয়েন্টের মধ্যে রান টাইম পরিমাপ করা সম্ভব। সুতরাং মেশিন এবং মাইক্রোকোড স্তরে এক্সিকিউশন পারফরম্যান্সকে বেঞ্চমার্ক করা সম্ভব। সর্বাধিক সিমুলেশন স্তরে মাইক্রোকোড সিমুলেটর ক্রমাগত কোনও বাধা ছাড়াই মাইক্রো নির্দেশাবলী কার্যকর করে। এই স্তরে, মেশিন নির্দেশ দ্বারা মেশিন নির্দেশ লোড করা হয়। সুতরাং, বাহ্যিক ডিভাইসগুলির সাথে সিপিইউ-এর মিথস্ক্রিয়ার দিকে মনোনিবেশ করা সম্ভব। বিভিন্ন অতিরিক্ত বিকল্পের সাহায্যে, মেশিন প্রোগ্রামিং দ্বারা অ্যাপ্লিকেশনটির নিয়ন্ত্রণ এগিয়ে দেওয়া হলে প্রক্রিয়াকরণের গতি বাড়ানোর সুবিধার জন্য ভিজ্যুয়াল সিপিইউ ক্রিয়াকলাপগুলিকে দমন করা যেতে পারে। সিমুলেটর সহ প্রদত্ত কর্মক্ষমতা সূচক মনিটর ব্যবহারকারীকে মিক্রোসিমের প্রক্রিয়াকরণ কর্মক্ষমতার মানদণ্ড নির্ধারণ করতে এবং সিমুলেটর হার্ডওয়্যারের কম্পিউটিং শক্তির সাথে সেট করতে সক্ষম করে, যা প্রতি সেকেন্ডে ভাসমান-পয়েন্ট অপারেশন (এফএলওপিএস) এবং প্রতি সেকেন্ডে নির্দেশাবলী (আইপিএস)-তে পরিমাপযোগ্য। তথাকথিত "বেসিক অ্যাসেম্বলার টুল ফর মিক্রোসিম"-এর সাহায্যে সাধারণ প্রোগ্রামগুলি অ্যাসেম্বলার প্রোগ্রামিং ভাষায় তৈরি করা যেতে পারে। এখানে, অ্যাসেম্বলার প্রোগ্রামিং ভাষার সমস্ত সমর্থিত স্মৃতিচিহ্নগুলি মাইক্রো নির্দেশ স্তরে ব্যবহারকারীর স্ব-নির্মিত মেশিনের নির্দেশ দ্বারা নির্ধারিত হয়। অ্যাড-অন টুলটি অ্যাসেম্বলি ল্যাঙ্গুয়েজ প্রোগ্রামটিকে মেশিন কোড এবং ডেটাতে অনুবাদ করতে এবং পরবর্তী সিমুলেশনের জন্য বাইনারি কোডটিকে বাহ্যিক র্যামের মধ্যে স্থানান্তর করতে সক্ষম। মাইক্রোব্যাটের সাথে মাইক্রোকড সিমুলেটর মিক্রোসিম একটি সুইচ-নিয়ন্ত্রিত গণনা মেশিন থেকে একটি অ্যাসেম্বলার প্রোগ্রামেবল অ্যাপ্লিকেশন পর্যন্ত প্রযুক্তিগত কম্পিউটার বিজ্ঞানের শিক্ষার দিকগুলির শিক্ষামূলক প্রবর্তনকে সমর্থন করে। আরও দেখুন কম্পিউটার স্থাপত্য সিমুলেটর চক্র নির্ভুল সিমুলেটর শিক্ষামূলক প্রোগ্রামিং ভাষা সম্পূর্ণ সিস্টেম সিমুলেটর নির্দেশ সেট সিমুলেটর যন্ত্রপাতি (কম্পিউটার প্রোগ্রামিং) ভন নিউম্যান স্থাপত্য সাহিত্য। তথ্যসূত্র বাইরের লিঙ্ক শিক্ষামূলক বিমূর্ত যন্ত্র সিমুলেশন সফ্টওয়্যার