কোনও প্রসেসর কীভাবে বিভিন্ন কমান্ডের অর্থ 'জানে'?
আমি এমভিভি, পুশ, কল ইত্যাদির মতো অ্যাসেম্বলি স্তরের কমান্ডগুলি নিয়ে ভাবছি ...
কোনও প্রসেসর কীভাবে বিভিন্ন কমান্ডের অর্থ 'জানে'?
আমি এমভিভি, পুশ, কল ইত্যাদির মতো অ্যাসেম্বলি স্তরের কমান্ডগুলি নিয়ে ভাবছি ...
উত্তর:
যখন কোনও কম্পিউটার সমাবেশ স্তরের নির্দেশাবলী ব্যাখ্যা করে , তখন এই নির্দেশাবলী সিপিইউ পড়ার জন্য তাদের বাইনারি সমতুল্য হয়ে যায়। সিপিইউ যখন নির্দেশাবলী কার্যকর করে, তখন এটি নির্দেশের অপকোড অংশটি পৃথক "মাইক্রোপ্রোগ্রাম" তে ব্যাখ্যা করে, তাদের মাইক্রোকোড সমতুল্য থাকে। ঠিক তাই আপনি জানেন, একটি সম্পূর্ণ সমাবেশ নির্দেশে একটি অপকোড এবং কোনও প্রযোজ্য ডেটা থাকে যা এটির সাথে যায়, যদি প্রয়োজন হয় (যেমন নাম, মেমরিের ঠিকানাগুলি নিবন্ধ করুন)।
মাইক্রোকোড নির্দেশাবলী অত্যন্ত নিম্ন-স্তরের (ততক্ষণে সমাবেশ), এবং প্রকৃত ডিজিটাল সংকেতগুলি নিয়ন্ত্রণ করে যা মাইক্রোপ্রসেসরে লজিকের প্রবাহকে নিয়ন্ত্রণ করে। উদাহরণস্বরূপ, একটি মাইক্রোকোড নির্দেশনা একটি নতুন মান সহ একটি শর্ত কোড রেজিস্টার পতাকা আপডেট করতে পারে বা ALU ইউনিটের মধ্যে একটিতে সিপিইউ রেজিস্টার সংযোগ করতে পারে । জটিল কাজগুলিও সম্ভব, কিন্তু এই তোমাদের সাধারণ ধারণা দেখায় কি মাইক্রো-জন্য ব্যবহৃত হয়।
সংকলন থেকে সম্পাদন পর্যন্ত সাধারণ প্রবাহ নিম্নরূপ। সমাবেশ নির্দেশাবলী একত্রিত হয় (তাদের বাইনারি সমতুল্য 0s এবং 1s, বা এখন থেকে লজিক সংকেতগুলিতে রূপান্তরিত)। এই যুক্তি সংকেতগুলি সিপিইউ দ্বারা পরিবর্তিতভাবে ব্যাখ্যা করা হয় এবং আরও নিম্ন-স্তরের যুক্তি সংকেতে রূপান্তরিত হয় যা নির্দিষ্ট নির্দেশ কার্যকর করতে সিপিইউর প্রবাহকে নির্দেশ করে। প্রসেসরের আর্কিটেকচার এবং ডিজাইনের উপর নির্ভর করে এটি এক বা একাধিক ক্লক চক্র নিতে পারে (বেশিরভাগ প্রসেসরের রেফারেন্স ম্যানুয়াল আপনাকে উদাহরণস্বরূপ যেমন একটি নির্দিষ্ট নির্দেশনা কার্যকর করতে কত ঘড়ি চক্র লাগে তা বলে দেয় )।
এগুলি সবই হার্ড-প্রোগ্রামযুক্ত মাইক্রোকোড (শারীরিকভাবে প্রসেসরের অভ্যন্তরে কোনও ধরণের রমের মধ্যে তৈরি করা হয়েছিল, উত্পাদনকালীন সেট করা), যা প্রকৃত নিম্ন-স্তরের লজিক গেটগুলির মাধ্যমে প্রবাহকে নির্দেশ করে । এটি বিমূর্ত সমাবেশ নির্দেশাবলী এবং প্রসেসরের শারীরিক বৈদ্যুতিক যুক্তির মধ্যে একটি ইন্টারফেস সরবরাহ করে।
সুতরাং, সংক্ষেপে, প্রসেসরের নির্দেশাবলী প্রসেসরের দ্বারা একত্রিত হয়ে লোড করা হয়। প্রসেসর তারপরে এই নির্দেশাবলীর সাথে মাইক্রোপ্রগ্রাম (মাইক্রোকোড আকারে) সন্ধানের জন্য এই নির্দেশাবলী ব্যবহার করবে, যা নির্দেশকে "প্রকৃতপক্ষে" নির্দেশনা কার্যকর করে। একবার নির্দিষ্ট নির্দেশের জন্য মাইক্রোকোডগুলি কার্যকর করা হয়ে যায় (যা এক বা একাধিক ক্লক চক্র নিতে পারে), প্রসেসরের পরবর্তী নির্দেশ আনতে মাইক্রোকোড কার্যকর করে এবং চক্রটি পুনরাবৃত্তি করে।
প্রসেসর কমান্ডগুলি আসলে 'জানে না'। কমান্ডগুলি কেবল বাইনারি প্যাটার্ন যা প্রসেসরকে কারণ হিসাবে আমরা আদেশগুলির অর্থ ব্যাখ্যা করি cause
উদাহরণস্বরূপ, একটি ADD-R1-in-R2 অপারেশন 1 এবং 2 এর মানগুলিকে ALU (পাটিগণিত এবং যুক্তিযুক্ত ইউনিট) পৌঁছানোর কারণী করবে, ALU অন্যান্য বিভিন্ন স্টাফের পরিবর্তে অ্যাডারের আউটপুট ব্যবহার করবে এবং এর কারণ ঘটবে ALU এর আউটপুট 2 টি রেজিস্টারে মান প্রতিস্থাপন করে these এই সমস্ত জিনিস ( মাল্টিপ্লেক্সার , অ্যাডারে , কাউন্টার , ...) অর্জন করার জন্য সহজ লজিক সার্কিট রয়েছে , যদিও প্রকৃত প্রসেসরগুলি খুব জটিল অপ্টিমাইজেশন ব্যবহার করে।
এটি আপনি যেমন ব্রেক জিজ্ঞাসা করছেন যখন একটি গাড়ি ধীর গতিতে জানেন কিভাবে জিজ্ঞাসা করা হয় এর মত ধরণের। গাড়িটি জানে না, ব্রেক প্যাডেল হ'ল চাকার বিরুদ্ধে শক্ত প্যাডগুলি কীভাবে চাপানো হয় তা পরোক্ষভাবে নিয়ন্ত্রণ করতে হয়।
উদাহরণস্বরূপ, সেই নির্দেশটি নিন যা কোনও x86 / IA-32 প্রসেসরকে তাত্ক্ষণিক 8-বিট মানটিকে একটি রেজিস্টারে স্থানান্তর করতে বলে। এই নির্দেশের বাইনারি কোডটি 10110 এর পরে একটি 3-বিট সনাক্তকারী যার জন্য ব্যবহারের জন্য নিবন্ধভুক্ত। AL রেজিস্টারের সনাক্তকারী 000, সুতরাং নিম্নলিখিত মেশিন কোড 01100001 ডেটা সহ AL রেজিস্টার লোড করে।
10110000 01100001
এই বাইনারি কম্পিউটার কোডটি নিম্নরূপে হেক্সাডেসিমালে প্রকাশ করে আরও মানব-পঠনযোগ্য করা যায়
B0 61
এখানে, বি 0 এর অর্থ 'নীচের মানের একটি অনুলিপি AL এ স্থানান্তরিত করুন' এবং 61 হ'ল 0x00001 মানের একটি হেক্সাডেসিমাল উপস্থাপনা, যা দশমিক 97৯। ইন্টেল অ্যাসেম্বলি ল্যাঙ্গুয়েজ যেমন নির্দেশাবলীর জন্য স্মৃতিভিত্তিক এমওভি (চলনটির একটি সংক্ষেপণ) সরবরাহ করে, তাই উপরের মেশিন কোডটি অ্যাসেম্বলি ভাষায় নিম্নলিখিতভাবে লেখা যেতে পারে, সেমিকোলনের পরে প্রয়োজনে একটি ব্যাখ্যামূলক মন্তব্য দিয়ে সম্পূর্ণ করুন। এটি পড়া এবং মনে রাখা অনেক সহজ।
http://en.wikipedia.org/wiki/Assembler_language
অন্য কথায়, আপনি যখন আপনার সমাবেশ প্রোগ্রামটি 'একত্রিত' করেন, তখন আপনার নির্দেশাবলী
MOV AL, 61h
সংখ্যায় রূপান্তরিত হয়, যা সিপিইউ একটি বিশেষ অর্থ যুক্ত করে এবং তারপরে সেই অনুযায়ী কাজ করে।
প্রস্তাবিত পড়া:
সিএস 152 এর পাঠ্যক্রমের নোটগুলিও দেখুন : কম্পিউটার আর্কিটেকচার অ্যান্ড ইঞ্জিনিয়ারিং ইউসি বার্কলে, একটি কোর্সে শিক্ষার্থীরা সিপিইউ প্রয়োগ করে।
আপনি যদি "হোম-বিল্ট সিপিইউ" এর জন্য গুগল করেন তবে আপনি অনেকগুলি গুডিজ পাবেন।
চূড়ান্ততম সর্বনিম্ন স্তরে, সমস্ত সিপিইউ যুক্ত করতে পারে। সংযোজন থেকে, এটি বিয়োগ করতে পারে, গুণ করতে এবং ভাগ করতে পারে (এগুলি দেখতে অন্যরকমভাবে যুক্ত হয়)। সিপিইউ মেমরির ঠিকানাগুলিতে সংযোজনগুলি প্রয়োগ করে মেমরির চারপাশে ডেটা সরাতে এটি ব্যবহার করে।
এটি সম্ভব সর্বনিম্ন পর্যায়ে থাকলেও মনে রাখবেন। সিপিইউ আসলে মাইক্রোকোড আকারে নির্দিষ্ট কমান্ডগুলি "বোঝে" করে। ব্রেকথ্রু এর উত্তর দেখুন, এটি খুব ভাল লেখা আছে।
আমি প্রোগ্রামার্স.স্ট্যাকেক্সেক্সঞ্জ.কম এ একটি সম্পর্কিত উত্তর দিয়েছি, দেখুন কম্পিউটারগুলি কীভাবে কাজ করে? কম্পিউটারগুলি কীভাবে চলমান ইলেক্ট্রনগুলিতে নির্দেশনা ব্যাখ্যা করতে চলেছে সে সম্পর্কে আমি গ্রাউন্ড থেকে সমস্ত কিছুতে সংক্ষেপে হেঁটেছি।