অবশ্যই শর্তটি প্রতি একক সময় পরীক্ষা করা হয়। তবে এটি যাচাই করা হওয়ার সাথে সাথে এটি সিপিইউ পাইপলাইনে অনেক দূরে। মাঝামাঝি সময়ে, অন্যান্য নির্দেশাবলীও পাইপলাইনে প্রবেশ করেছে এবং কার্যকর করার বিভিন্ন পর্যায়ে রয়েছে।
সাধারণত, একটি শর্ত অবিলম্বে শর্তসাপেক্ষ শাখার নির্দেশ অনুসরণ করা হয়, যা হয় শর্তটি সত্য হিসাবে মূল্যায়ন করে যদি শাখাগুলি হয় বা শর্তটি মিথ্যাতে মূল্যায়ন করে তবে তা পড়ে। এর অর্থ হ'ল নির্দেশের দুটি পৃথক স্ট্রিম রয়েছে যা শর্ত নির্দেশ এবং শাখা নির্দেশের পরে পাইপলাইনে লোড করা যেতে পারে, শর্তটি সত্য বা মিথ্যাতে নির্ধারণ করে কিনা তার উপর নির্ভর করে। দুর্ভাগ্যক্রমে, শর্ত নির্দেশ এবং শাখা নির্দেশ লোড করার অবিলম্বে, সিপিইউ এখনও শর্তটি কীভাবে মূল্যায়ন করবে তা জানে না, তবে এটি এখনও পাইপলাইনে স্টাডগুলি লোড করে রাখতে হবে। সুতরাং এটি শর্তটি কী মূল্যায়ন করবে তা অনুমানের ভিত্তিতে দুটি সেট নির্দেশাবলীর মধ্যে একটি বেছে নেয়।
পরবর্তীতে, শর্তের নির্দেশটি পাইপলাইনের উপরে ভ্রমণ করার সাথে সাথে এটি মূল্যায়নের সময়। সেই সময়, সিপিইউ আবিষ্কার করে যে তার অনুমানটি সঠিক ছিল কি ভুল।
যদি অনুমানটি সঠিক হিসাবে দেখা যায়, তবে শাখাটি সঠিক জায়গায় চলে গেছে, এবং সঠিক নির্দেশাবলী পাইপলাইনে লোড করা হয়েছিল। যদি এটি সক্রিয় হয় যে অনুমানটি ভুল ছিল, তবে শর্তসাপেক্ষ শাখার নির্দেশের পরে পাইপলাইনে যে সমস্ত নির্দেশাবলি বোঝানো হয়েছিল সেগুলি বাতিল করে দেওয়া দরকার, এবং নির্দেশগুলি আনতে হবে সঠিক জায়গা থেকে আবার শুরু করা।
সংশোধন
স্টার ওয়েভারের মন্তব্যের জবাবে, একক নির্দেশনা কার্যকর করতে সিপিইউকে কী করতে হবে তা সম্পর্কে ধারণা দিতে:
এমন কিছু সাধারণ বিষয় বিবেচনা করুন MOV AX,[SI+10]
যা আমরা মানুষ নির্লিপ্তভাবে "এসআই প্লাস 10 এ শব্দটি সহ এক্স লোড করি" বলে মনে করি। মোটামুটিভাবে, সিপিইউ করতে হবে:
- ঠিকানা বাসে পিসির সামগ্রী ("প্রোগ্রামের কাউন্টার রেজিস্টার") প্রেরণ করুন;
- তথ্য বাস থেকে নির্দেশ অপকোড পড়ুন;
- ইনক্রিমেন্ট পিসি;
- এটি দিয়ে কী করা যায় তা চিত্রিত করার জন্য অপকোডটি ডিকোড করুন;
- ঠিকানা বাসে পিসির সামগ্রীগুলি প্রেরণ করুন;
- তথ্য বাস থেকে নির্দেশ অপারেন্ড (এই ক্ষেত্রে 10) পড়ুন;
- ইনক্রিমেন্ট পিসি;
- সংযোজনকারীকে অপারেন্ড এবং এসআই খাওয়ান;
- অ্যাড্রেসের ফলাফল ঠিকানা বাসে প্রেরণ করুন;
- ডেটা বাস থেকে অ্যাক্স পড়ুন।
এটি সম্পূর্ণ 10 পদক্ষেপ। এই ধাপগুলির কয়েকটি অপ-পাইপেলিনযুক্ত সিপিইউতেও অপ্টিমাইজ করা হবে, উদাহরণস্বরূপ, সিপিইউ প্রায় সবসময় পরবর্তী ধাপের সাথে সমান্তরালে পিসি বৃদ্ধি করবে, যা করা সহজ কাজ কারণ পিসি একটি খুব, খুব বিশেষ রেজিস্ট্রার যা কখনও অন্য কোনও কাজের জন্য ব্যবহার করা হয়নি, সুতরাং এই বিশেষ রেজিস্টারটিতে প্রবেশের জন্য সিপিইউর বিভিন্ন অংশের মধ্যে বিতর্ক হওয়ার কোনও সম্ভাবনা নেই। কিন্তু তবুও, আমরা এই জাতীয় কোনও সহজ নির্দেশের জন্য 8 টি পদক্ষেপ রেখেছি এবং নোট করুন যে আমি ইতিমধ্যে সিপিইউর পক্ষে কিছুটা পরিশীলনের বিষয়টি ধরে নিচ্ছি, উদাহরণস্বরূপ আমি ধরে নিচ্ছি যে এর জন্য পুরো অতিরিক্ত পদক্ষেপের দরকার হবে না সংযোজক আসলে ফলাফলটি পড়ার আগে সংযোজনটি সম্পাদন করে,
এখন, বিবেচনা করুন যে আরও জটিল অ্যাড্রেসিং মোড রয়েছে, যেমন MOV AX, [DX+SI*4+10]
এবং আরও জটিল নির্দেশাবলীর উপস্থিতি, যেমন MUL AX, operand
সিপিইউর অভ্যন্তরে লুপগুলি কার্যকর করে তাদের ফলাফল গণনা করার জন্য।
সুতরাং, এখানে আমার বক্তব্যটি হ'ল "পারমাণবিক স্তর" রূপক সিপিইউ নির্দেশিকা স্তরের পক্ষে উপযুক্ত নয়। এটি পাইপলাইন ধাপ স্তরের জন্য উপযুক্ত হতে পারে, যদি আপনি প্রকৃত লজিক গেট স্তরে খুব বেশি নিচে যেতে না চান।