এমআইপিএস কেন শাম্ট এবং ফান্ট / অপকোডকে আলাদা করে?


15

এমআইপিএস ডিজাইনাররা কেন স্থানান্তরিত করার জন্য উত্সর্গীকৃত 5 বিট অন্তর্ভুক্ত করবেন এবং আলাদা আলাদা অপকোড এবং ফাংশন বিট রাখবেন তা নিয়ে আমি বিভ্রান্ত।

কেননা এমআইপিএস তাই আরআইএসসি, আমি ধরে নিই যে কয়েকটি নির্দেশাবলীতে কেবল স্থানান্তর করা হবে, সুতরাং এই 5 টি বিটগুলি মনে হয় যে তারা যখন তাত্ক্ষণিকভাবে স্থাপন করা যেতে পারে তখন তারা স্থান নষ্ট করছে। আমি ধরে নিলাম যে অপকডস এবং ফান্টগুলি আর- এবং আই-টাইপ নির্দেশাবলীর পার্থক্য করার জন্য পৃথক, তবে এটি অপকডটি 1 বিট দ্বারা প্রসারিত করে করা যেতে পারে। এই উভয় আর টাইপ নির্দেশাবলী 22 বিট দীর্ঘ হতে পারে। আই-টাইপ এবং জে-টাইপ নির্দেশাবলী তাদের তাত্ক্ষণিক এবং ঠিকানা রাখতে চাইলে এটি কার্যকর হবে না, তবে উভয়ই অপ্রয়োজনীয় বলে মনে হয়।

উত্তর:


10

এখানে কয়েকটি আলাদা বাণিজ্য বন্ধ রয়েছে।

প্রথমত, আমরা নির্দেশিকাগুলি নির্দিষ্ট প্রস্থ (32-বিট) হতে চাই। এটি গ্যারান্টি দেয় যে নির্দেশাবলী ক্যাশে-ব্লক এবং পৃষ্ঠা প্রান্তিককরণ যা ক্যাশে এবং পৃষ্ঠার উপস্থিতি এবং অনুমতি চেককে সহজতর করে।

দ্বিতীয়ত আমরা বিভিন্ন নির্দেশ ক্ষেত্র ( opcode/ source regs/ immediates) নির্দিষ্ট প্রস্থ এবং স্থির অবস্থানের জন্য চাই। এটি তাদের দ্রুত / কম যুক্তিযুক্ত করে ডিকোড করতে সক্ষম করে এবং পাইপলাইনের প্রাথমিক পর্যায়ে তাদের প্রয়োজন। ( destinationপাইপলাইন শেষ হওয়া পর্যন্ত নিবন্ধকের প্রয়োজন নেই, সুতরাং এটি বিভিন্ন জায়গায় Rএবং Iনির্দেশাবলীতে হতে পারে )) functionক্ষেত্রের অবস্থান এবং প্রস্থ কিছুটা কম গুরুত্বপূর্ণ কারণ এএলইউর কার্যকারিতা নিয়ন্ত্রণ করা দরকার, তবে এটি তৃতীয় পাইপলাইন পর্যায়ে, সুতরাং আপনার প্রয়োজন হলে এটি নিয়ে কাজ করার জন্য একটু সময় পান।

IJJ228228Iসংকলক / লিঙ্কার লেখকদের জন্য নির্দেশাবলীও দুর্দান্ত। (স্পার্কে, যেখানে তাত্ক্ষণিক ক্ষেত্রটি কেবলমাত্র 12 টি বিট ছিল তাদের load-high20 বিট তাত্ক্ষণিকভাবে একটি সম্পূর্ণ বিশেষ নির্দেশিকা ক্লাস যুক্ত করতে হয়েছিল))

26=64JRI

কিন্তু এটি Rনির্দেশের সাথে কিছু উইগল রুম ছেড়ে দেয় । --বিট অপকোড বাদে, এগুলিতে কেবল নিবন্ধকের নির্দিষ্টকরণের জন্য 15 টি অতিরিক্ত বিট প্রয়োজন, যা বর্ধিত অপকোড এবং / অথবা শিফ্ট-পরিমাণের জন্য 11 বিট ফেলে।

আপনার functionক্ষেত্রটি Rনির্দেশের জন্য বর্ধিত অপকোড হিসাবে ভাবা উচিত । এখানে কেবলমাত্র একটি Rনির্দেশিকা অপকড রয়েছে তবে 64৪ টি পৃথক রয়েছে functionsযা Rনির্দেশনাটি সম্পাদন করতে পারে।

ঠিক আছে. আমাদের কাছে different০ টি পৃথক Iনির্দেশনা এবং instructions৪ টি পৃথক Rনির্দেশনা রয়েছে, তাই শিফট-তাত্ক্ষণিক নির্দেশাবলী কোথায় রাখব?

ঠিক আছে, কেবলমাত্র এখানে কম Iনির্দেশ নেই, তবে নির্দেশাবলীর সাথে আরও অনেক কিছু করার জন্য রয়েছে I । মনে রাখবেন যে সমস্ত শাখার নির্দেশাবলীর নির্দেশ হওয়া দরকার Iকারণ তাদের কোনও আপেক্ষিক (তাত্ক্ষণিক) অফসেট রয়েছে। এছাড়াও সমস্ত লোড এবং স্টোর নির্দেশাবলী Iএমআইপিএসে ফর্ম্যাট। এবং পরিশেষে একটি Iনির্দেশ হতে আমাদের লোড-উপরের-তাত্ক্ষণিক নির্দেশের প্রয়োজন । কেবল তা-ই নয়, তবে Rনির্দেশাবলীটিতে এখনও 5 টি অতিরিক্ত অব্যবহৃত বিট রয়েছে, (যা আমাদের এই আর্কিটেকচারে শিফট-তাত্ক্ষণিক তাত্ক্ষণিকতার জন্য প্রয়োজন), সুতরাং এটি শিফট-অনিয়মিতকে বিশেষ (অদ্ভুত) Rনির্দেশিকায় পরিণত করার জন্য আরও উত্সাহ দেয় this ।

এই সিদ্ধান্তগুলির মধ্যে অনেকগুলি বিজ্ঞানের চেয়ে বেশি শিল্প, তবে একটি অন্তর্নিহিত যুক্তি রয়েছে যা বোঝা যায়। কী লক্ষ্য না যতটা সম্ভব ছোট যেমন নির্দেশাবলীর সংখ্যা করতে, এটি একটি করা হয় উচ্চ ক্ষমতা সম্পন্নপাইপলাইন একক চিপে ফিট করে (যাতে এমআইপিএস এবং সানের মতো ক্ষুদ্র সংস্থাগুলি 1980 এর দশকে আইবিএম এবং ডিসির সাথে প্রতিযোগিতা করতে পারে)। (ডেভিড প্যাটারসনের উদ্ভাবিত আরআইএসসি নামটি কিছুটা দুর্ভাগ্যজনক It এটি আকর্ষণীয় বলেই ধরা পড়েছিল, কারণ "হ্রাস নির্দেশাবলী" এমআইপিএস এবং স্পার্ক আর্কিটেকচার সত্যিই কী করার চেষ্টা করেছিল তার সঠিক বিবরণ।) সুতরাং আপনি চান আনয়ন, পেজিং এবং ডিকোডকে সহজ এবং দ্রুততর করার জন্য নির্দেশাবলী নির্দিষ্ট প্রস্থের (এবং তুলনামূলকভাবে ছোট যাতে আপনি আরও ভাল আই-ক্যাশে আচরণ পেতে পারেন)। আপনি নির্দেশের যে অংশগুলি দ্রুত ডিকোড করা উচিত তা চান (দopcode, দুটি উত্স নিবন্ধভুক্ত করুন এবং সাইন-প্রসারিত তাত্ক্ষণিক) একটি নির্দিষ্ট প্রস্থ এবং একটি নির্দিষ্ট অবস্থানে থাকতে হবে। আপনি চান যে নকলগুলি যথাসম্ভব দীর্ঘতর হোক এবং আপনি অন্যান্য সমস্ত সীমাবদ্ধতার পরিপ্রেক্ষিতে যথাযথ বিভিন্ন ধরণের নির্দেশাবলী ফিট করতে চান।


আপনার তথ্যবহুল প্রতিক্রিয়ার জন্য ধন্যবাদ, বিশেষত আর্কিটেকচার ডিজাইনারদের লক্ষ্য সম্পর্কে অংশটি। এমআইপিএসকে এমওএস 6502 এর সাথে তুলনা করা আমার কাছে আকর্ষণীয় মনে হয়েছে, কারণ আমি যদি এটি সঠিকভাবে বুঝতে পারি তবে 6502 এর কখনও শাম্ট ছিল না (আমি এখনও নির্দেশের ফর্ম্যাটগুলি বোঝার চেষ্টা করছি)।
Qwr

1
6502 হ'ল প্রথম প্রজন্মের মাইক্রোপ্রসেসর ডিজাইন (প্রাক-সিআইএসসি), যদিও এটি পাইপলাইনের প্রাক্কলন করেছিল, এটি পরবর্তী নির্দেশটি লোড করার সাথে সাথে লিখনব্যাক করতে পারে register 6502 টিতে 8-বিট মাইক্রোয়ের মতো বাইট অপকডস ছিল। বিবেচনার জন্য আরেকটি আর্কিটেকচার হ'ল এআরএম, এটি বার্কলে আরআইএসসি সংক্রান্ত কাগজপত্র পড়া এবং এমওএস কারখানায় পরিদর্শন করে সিদ্ধান্ত নিয়েছে "আরে, আমরা এটি করতে পারি"।
ছদ্মনাম

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

5

এমআইপিএস আমি নির্দেশের ফর্ম্যাটগুলি বুঝতে, আপনাকে এমআইপিএস পাইপলাইনটি বুঝতে হবে এবং সিপিইউ বাস্তবায়ন প্রযুক্তির প্রায় 1985 সম্পর্কেও ভাবতে হবে you আপনি যদি চিত্রটি দেখেন (আপনি এটি জানেন) তবে আপনি দেখতে পাবেন যে রেজিস্টার ফাইল রিডিংটি রয়েছে আইডি পর্যায়ে, ঠিক পরে যদি।

আর-টাইপ নির্দেশের উদ্দেশ্যে, আইডি পর্যায়ে নিম্নলিখিত কাজগুলি করা দরকার:

  1. নির্ধারণ এটা আসলে হয় একটি R- টাইপ নির্দেশ।
  2. যদি তা হয় তবে রেজিস্টার থেকে মানগুলি লোড করতে রেজিস্টার ফাইলটি বলুন।

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

এটি কিছুটা অদ্ভুত বলে মনে হচ্ছে যে আপনি পাঁচটি বিট সরিয়ে নেওয়ার জন্য উত্সর্গ করেছেন। আমি কয়েকটি সম্ভাব্য ব্যাখ্যার কথা ভাবতে পারি। একটি হ'ল এটি রাউটিংকে সরল করে দেয় (এই পাঁচটি বিটগুলি সরাসরি রেজিস্টার ফাইলটিতে সরাসরি খাওয়ানো হয়, এই পাঁচটি বিটগুলি ব্যারেল শিফ্টারে সর্বদা খাওয়ানো হয় those ছয়টি বিটগুলি কোন ফাংশনটি সম্পাদন করতে হবে তা নির্ধারণ করতে সর্বদা ALU তে প্রবেশ করে)।

তারা ভবিষ্যতে সম্মিলিত শিফট-বাম এবং অ্যাড নির্দেশিকাগুলি প্রবর্তনের কথা ভাবছিলেন। এটি সম্ভবত ফর্ম হতে হবে:

$d = $s + ($t << shamt)

2গুলি+ +1গুলি

আজ, আমরা সম্ভবত আরও জটিল ডিকোডিং পর্যায়ে থাকার বিষয়ে দু'বার চিন্তা করব না, বিশেষত যেহেতু একটি সাধারণ সুপারসকলার সিপিইউয়ের পাইপলাইনে পরে রেজিস্টার ফাইল অ্যাক্সেসগুলি ঘটে থাকে। অনেক আধুনিক সিপিইউ এমনকি এল 1 ক্যাশে কোনও নির্দেশিকা সন্নিবেশ করার সময়ে কিছু মোটা নির্দেশের ডিকোডিংও করে । "যথাযথ" নির্দেশিকাটির ডিকোডিংটিকে সহজ এবং দ্রুততর করার জন্য আপনি অতিরিক্ত তথ্য সংরক্ষণের জন্য আই-ক্যাশে লাইনগুলি কয়েকটি বিট বিস্তৃত করেছেন (মুরের আইকে ধন্যবাদ, আপনার কাছে প্রচুর ট্রানজিস্টর নষ্ট হওয়ার দরকার আছে) to

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

জে-টাইপ নির্দেশের ঠিকানা ক্ষেত্রটি 26 বিট। কারণ নির্দেশাবলী সর্বদা 4-বাইট সারিবদ্ধ থাকে, আপনার কমপক্ষে উল্লেখযোগ্য দুটি বিট সংরক্ষণ করার দরকার নেই, যার অর্থ আপনার কাছে কার্যকরভাবে 28 বিট ঠিকানা রয়েছে। যাইহোক, এমআইপিএস I এ ঠিকানা স্থান 32-বিট। সুতরাং জাম্পের অবস্থানের শীর্ষ চারটি বিট প্রোগ্রামের কাউন্টার থেকে নেওয়া হয়েছে।

এর অর্থ হ'ল আপনি সরাসরি এমন কোনও জায়গায় যেতে পারবেন না যেখানে পিসি অবস্থানের সর্বাধিক উল্লেখযোগ্য চার বিট আলাদা। পরিবর্তে আপনাকে স্ক্র্যাচ রেজিস্ট্রারের মাধ্যমে আরও ব্যয়বহুল তিন-নির্দেশাবলীর লাফাতে হবে:

lui $r,target >> 16
    ori $r,$r,target & 0xFFFF
    jr $r

আজকের দিনে এটি খুব খারাপ নয়, তবে 1985 সালে এটি অনেকগুলি ঘড়ির চক্র।

ঠিকানার ক্ষেত্র থেকে কিছুটা চুরি করা সরাসরি জंपের কার্যকর পরিসরটিকে আরও কমাবে। আপনি দেখতে পাচ্ছেন যে এটি কীভাবে মূল্য দিতে খুব বেশি দাম হতে পারে।


পরে এআরএম-এ দেখা قسمটির "সংযুক্ত শিফট-বাম-এবং যুক্ত নির্দেশাবলী"?
দামিয়ান ইয়ারিক 6'15
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.