MPACT-সিমের পরিচিতি

MPACT-Sim হল একটি ফ্রেমওয়ার্ক এবং লাইব্রেরি যা নির্দেশনা সেট আর্কিটেকচারের বিস্তৃত পরিসরের জন্য উচ্চ কার্যকারিতা ISA সিমুলেটর তৈরি করা সহজ করার জন্য ডিজাইন করা হয়েছে। MPACT-Sim ব্যবহার করে নির্মিত সিমুলেটরগুলি তৈরি করা সহজ, যন্ত্রে সহজ এবং দ্রুত। MPACT-Sim-এর অনুপ্রেরণামূলক ব্যবহার-কেস হল (নির্দেশনা সেট) স্থাপত্য অন্বেষণের জন্য দ্রুত সিমুলেটর তৈরি করা এবং সহজে পরিবর্তন করা। যাইহোক, ফলস্বরূপ সিমুলেটরটি সিস্টেম মডেলিং, কম্পাইলার বৈধতা বা সফ্টওয়্যার বিকাশের জন্য ব্যবহার করা যেতে পারে আর্কিটেকচারের জন্য যেগুলির কোন (বা সীমিত) হার্ডওয়্যার প্রাপ্যতা নেই।

MPACT-Sim সহজ C++ ফাংশন/ক্যালেবল হিসাবে নির্দেশের শব্দার্থকে প্রকাশ করা এবং প্রয়োগ করা সহজ করে তোলে। MPACT-সিম নির্দেশনা প্রকাশের জন্য একটি ঘোষণামূলক পদ্ধতি প্রদান করে যাতে বেশিরভাগ নির্দেশনা ডিকোডারের স্বয়ংক্রিয় জেনারেশন সক্ষম করে, সহজতা এবং বেগ বৃদ্ধি করে যার মাধ্যমে নতুন সিমুলেটর তৈরি করা যায়। কাস্টম কনফিগারেশন এন্ট্রি সহজে যোগ করা যেতে পারে, এবং ফলস্বরূপ সিমুলেটরগুলি স্ট্যান্ডার্ড ক্লাসের একটি সেট ব্যবহার করে উপকরণ করা সহজ।

টিউটোরিয়াল

অনুসরণ করা টিউটোরিয়ালগুলি RV32I আর্কিটেকচারাল সাবসেটের জন্য সংকলিত একটি "হ্যালো ওয়ার্ল্ড" অ্যাপ্লিকেশন কার্যকর করার জন্য যথেষ্ট RiscV নির্দেশাবলীর একটি উপসেটের জন্য একটি ISA সিমুলেটর তৈরি করার নির্দেশিত ওয়াক-থ্রু প্রদান করে। তারা নিম্নলিখিত কার্যক্রম কভার করে:

  • RV32I এর জন্য একটি ISA ডিকোডারের বিবরণ লিখুন।

    এটি তাদের বাহ্যিক প্রতিনিধিত্ব (এনকোডিং) থেকে স্বাধীন পৃথক নির্দেশাবলী বর্ণনা করে। এই বিবরণটি C++ কোড তৈরি করতে ব্যবহৃত হয় যা সিমুলেটরের অভ্যন্তরীণ নির্দেশনা বর্ণনাকারীকে আরম্ভ করে।

  • RV32I এর জন্য একটি বাইনারি ডিকোডারের বিবরণ লিখুন।

    এটি নির্দেশাবলী, বিট-ক্ষেত্র এবং তাদের মানগুলির বাইনারি এনকোডিং বর্ণনা করে। এটি একটি অপকোডে একটি নির্দেশ শব্দ ম্যাপ করতে সক্ষম নির্দেশাবলীর জন্য একটি ডিকোডার তৈরি করতে এবং নির্দিষ্ট বিট-ক্ষেত্রের মান বের করতে ব্যবহৃত হয়।

  • একটি ইন্টিগ্রেটেড (সম্পূর্ণ) নির্দেশনা ডিকোডার লিখুন যা দুটি জেনারেটেড ডিকোডারকে একীভূত করে, উত্পন্ন কোডটি যা করে না তা কভার করার জন্য প্রয়োজনীয় কোড যোগ করে।

  • লক্ষ্য RV32I নির্দেশাবলী প্রতিটি বাস্তবায়ন প্রদান নির্দেশ শব্দার্থিক ফাংশন লিখুন.

সিমুলেটর সম্পূর্ণ করার জন্য প্রয়োজনীয় অবশিষ্ট কোড লেখা, কোড কন্ট্রোলিং ইন্সট্রাকশন ইস্যু সহ, বর্তমান টিউটোরিয়ালগুলির দ্বারা আচ্ছাদিত নয়, তবে ভবিষ্যতে যোগ করা যেতে পারে। যাইহোক, নমুনা কোড টিউটোরিয়াল সংগ্রহস্থলে, সেইসাথে সম্পূর্ণ [MPACT-RiscV সিমুলেটর]https://github.com/mpact-riscv) সংগ্রহস্থলে দেখা যেতে পারে।

সিমুলেটর অবকাঠামো C++ এ লেখা হয়েছে, তাই C++ এর একটি ভালো কাজের জ্ঞান অনুমান করা হয়।