@ জালফের উত্তর বেশিরভাগ কারণকে কভার করে, তবে এর মধ্যে একটি আকর্ষণীয় বিবরণ উল্লেখ করা হয়নি: অভ্যন্তরীণ আরআইএসসি-মত মূলটি এআরএম / পিপিসি / এমআইপিএসের মতো কোনও নির্দেশিকা চালানোর জন্য ডিজাইন করা হয়নি। X86- ট্যাক্স কেবলমাত্র ক্ষুধার্ত ক্ষুধার্ত ডিকোডারগুলিতেই প্রদান করা হয় না, তবে পুরো কোর জুড়ে কিছুটা ডিগ্রি দেওয়া হয়। উদাহরণস্বরূপ, এটি কেবল x86 নির্দেশের এনকোডিং নয়; এটি অদ্ভুত শব্দার্থবিজ্ঞান সহ প্রতিটি নির্দেশ।
আসুন আমরা ভান করি যে ইন্টেল একটি অপারেটিং মোড তৈরি করেছে যেখানে নির্দেশ প্রবাহটি x86 ব্যতীত অন্য কিছু ছিল, নির্দেশাবলী যা উফগুলিতে আরও সরাসরি ম্যাপ করে। আসুন আমরা ভেবে দেখি যে প্রতিটি সিপিইউ মডেলের এই মোডের জন্য নিজস্ব আইএসএ রয়েছে, তাই তারা পছন্দসই ইন্টার্নালগুলি পরিবর্তন করতে এবং এই বিকল্প বিন্যাসটির নির্দেশ-ডিকোডের জন্য ন্যূনতম পরিমাণ ট্রানজিস্টর সহ তাদের প্রকাশ করতে পারে।
সম্ভবত আপনি এখনও একই পরিমাণে রেজিস্টার রাখতে পারবেন, x86 আর্কিটেকচারাল স্টেটে ম্যাপযুক্ত, তাই x86 ওএস সিপিইউ-নির্দিষ্ট নির্দেশনা সেট ব্যবহার না করে প্রসঙ্গের সুইচে এটি সংরক্ষণ / পুনরুদ্ধার করতে পারে। তবে আমরা যদি ব্যবহারিক সীমাবদ্ধতাটি ফেলে দিই তবে হ্যাঁ আমাদের আরও কয়েকটি নিবন্ধ থাকতে পারে কারণ আমরা সাধারণত মাইক্রোকোড 1 এর জন্য সংরক্ষিত লুকানো টেম্প রেজিস্টারগুলি ব্যবহার করতে পারি ।
যদি আমাদের কেবলমাত্র পাইপলাইন পর্যায়ে (এক্সিকিউশন ইউনিট) কোনও পরিবর্তন না করে বিকল্প ডিকোডার থাকে তবে এই আইএসএটিতে এখনও অনেকগুলি এক্স ৮ ec86 উদ্দীপনা থাকবে। এটি খুব সুন্দর আরআইএসসি আর্কিটেকচার হবে না। কোনও একক নির্দেশনা খুব জটিল হবে না, তবে x86 এর অন্যান্য কিছু উন্মত্ততা এখনও সেখানে থাকবে।
উদাহরণস্বরূপ: বাম / ডান শিফটগুলি ওভারফ্লো পতাকাটিকে অপরিজ্ঞাত করে ছেড়ে দেয়, যদি না শিফ্টের গণনা এক হয়, তবে ক্ষেত্রে = স্বাভাবিক স্বাক্ষরিত-ওভারফ্লো সনাক্তকরণ। ঘোরার জন্য একই রকম উন্মাদনা। তবে উন্মুক্ত আরআইএসসি নির্দেশাবলী ফ্ল্যাগ-কম শিফট সরবরাহ করতে পারে এবং আরও অনেকগুলি (একাধিক উফ যা সাধারণত কিছু জটিল x86 নির্দেশিকায় যায় কেবলমাত্র এক বা দুটি ব্যবহারের অনুমতি দেয়)। সুতরাং এটি সত্যিই মূল পাল্টা যুক্তি হিসাবে ধরে না।
আপনি যদি কোনও আরআইএসসি আইএসএর জন্য সম্পূর্ণ নতুন ডিকোডার তৈরি করতে চলেছেন তবে আপনি এটি এক্সআইএসএল নির্দেশাবলীর কিছু অংশ বেছে নিতে এবং এটি টিআইএসসি নির্দেশাবলী হিসাবে প্রকাশ করতে পারবেন। এটি কোরটির x86- বিশেষায়নের কিছুটা হ্রাস করে।
নির্দেশিকাটির এনকোডিং সম্ভবত স্থির আকারের হবে না, কারণ একক উওসগুলি প্রচুর ডেটা ধরে রাখতে পারে। সমস্ত ইনসন একই আকারের হয় তার চেয়ে অনেক বেশি ডেটা বোধগম্য। একটি একক মাইক্রো-ফিউজড ইউওপ একটি 32 বিবিট তাত্ক্ষণিক এবং একটি মেমরি অপেনড যুক্ত করতে পারে যা 2 টি রেজিস্ট্রার এবং 32 বিট স্থানচ্যুতি সহ একটি ঠিকানা মোড ব্যবহার করে। (এসএনবিতে এবং পরবর্তীকালে, কেবলমাত্র একক-নিবন্ধীকৃত ঠিকানা মোডগুলি ALU অপের সাহায্যে মাইক্রো-ফিউজ করতে পারে)।
উফগুলি খুব বড় এবং স্থির-প্রস্থের এআরএম নির্দেশাবলীর সাথে খুব একই রকম নয়। একটি নির্দিষ্ট-প্রস্থ 32 বিট নির্দেশিকা সেটটি কেবল একবারে 16 বিট ইমিমেডিয়েট লোড করতে পারে, সুতরাং 32 বিট ঠিকানা লোড করার জন্য লোড-তাত্ক্ষণিক লো-হাফ / লোডহাই-তাত্ক্ষণিক জুড়ি প্রয়োজন। x86 এটি করার দরকার নেই, যা কেবল 15 জিপি রেজিস্টারে নিবন্ধগুলিতে রাখার ক্ষমতা সীমাবদ্ধ করে এটি ভয়ঙ্কর না হতে সহায়তা করে। (১৫ টি নিবন্ধের চেয়ে বড় সাহায্য, তবে ৩১ এ আবার দ্বিগুণ হওয়া অনেক কম সাহায্য করে, আমি মনে করি কিছু সিমুলেশন পাওয়া গেছে R আরএসপি সাধারণত সাধারণ উদ্দেশ্য নয়, তাই এটি আরও ১৫ টি জিপি রেজিস্ট্রার এবং স্ট্যাকের মতো))
টিএল; ডিআর সারাংশ:
যাইহোক, এই উত্তরটি "x86 নির্দেশিকা সেটটি সম্ভবত একটি সিপিইউ প্রোগ্রাম করার সেরা উপায় যা এক্স x86 নির্দেশগুলি দ্রুত চালাতে সক্ষম হতে পারে" এর মধ্যে উত্সাহিত হয়, তবে আশাবাদী কারণগুলি সম্পর্কে কিছু আলোকপাত করা হবে।
সম্মুখ-শেষ বনাম ব্যাক-এন্ডে অভ্যন্তরীণ ইউওপ ফর্ম্যাটগুলি
আরও দেখুন মাইক্রো লয় এবং অ্যাড্রেসিং মোড কি ফ্রন্ট-এন্ড বনাম ব্যাক এন্ড uop ফরম্যাটের ইন্টেল CPU- র উপর উপস্থাপন করতে পারেন পার্থক্য এক ক্ষেত্রে জন্য।
পাদটীকা 1 : মাইক্রোকোড দ্বারা অস্থায়ী হিসাবে ব্যবহারের জন্য কিছু "লুকানো" রেজিস্টার রয়েছে। এই রেজিস্টারগুলি x86 আর্কিটেকচারাল রেজিস্টারের মতোই নতুন নামকরণ করা হয়েছে, সুতরাং মাল্টি-উওপ নির্দেশাবলী আউট-অফ-অর্ডার কার্যকর করতে পারে।
যেমন xchg eax, ecx
ইনটেল সিপিইউগুলিতে 3 টি উওপ ( কেন? ) হিসাবে ডিকোড হয় এবং আমাদের সর্বোত্তম অনুমান যে এগুলি হ'ল এমওভি-এর মতো উফ tmp = eax; ecx=eax ; eax=tmp;
। এই ক্রমে, কারণ আমি dst-> src দিকের ten 1 চক্রের দিকের সূত্র ধরে, অন্যভাবে বনাম 2 measure এবং এই সরানো উফগুলি নিয়মিত mov
নির্দেশের মতো নয় ; তারা শূন্য-বিলম্বিত চলন-বিলোপের প্রার্থী বলে মনে হয় না।
আরও দেখুন http://blog.stuffedcow.net/2013/05/measuring-rob-capacity/ পরীক্ষামূলকভাবে প্রশিক্ষণ কর্মসূচীর উদ্বোধনী অধিবেশনে আকার পরিমাপ করার চেষ্টা, এবং লুকানো রেজিস্টার সহ স্থাপত্য রাষ্ট্র রাখা ব্যবহৃত শারীরিক রেজিস্টার, জন্য অ্যাকাউন্টে থাকার একটি উল্লেখ করার জন্য।
ডিকোডারগুলির পরে সম্মুখ-প্রান্তে, তবে ইস্যু / পুনরায় নামকরণের পর্বের আগে যা শারীরিক রেজিস্টার ফাইলটিতে নাম পরিবর্তন করে, অভ্যন্তরীণ ইউওপ ফর্ম্যাটটি রেজিস্টার নম্বরগুলি x86 রেগ সংখ্যার মতো ব্যবহার করে তবে এই লুকানো রেজিস্টারগুলিকে সম্বোধন করার জন্য ঘরটি রয়েছে।
উওপ ফর্ম্যাটটি আউট-অফ-অর্ডার কোর (আরওবি এবং আরএস) এর ভিতরে কিছুটা আলাদা, ওরফে ব্যাক-এন্ড (ইস্যু / নাম পরিবর্তনের পরে)। ইনস / এফপি ফিজিকাল রেজিস্টার ফাইলগুলির প্রত্যেকের হাসওলে 168 টি প্রবেশ রয়েছে , সুতরাং একটি উওপের প্রতিটি নিবন্ধ ক্ষেত্রের অনেকগুলি সম্বোধনের জন্য যথেষ্ট প্রশস্ত হওয়া দরকার।
যেহেতু পুনরায় নামকরণকটি এইচডাব্লুতে রয়েছে তাই আমরা সম্ভবত ব্যাক-এন্ডে স্থিতিশীলভাবে নির্ধারিত নির্দেশাবলী খাওয়ানোর পরিবর্তে এটি ব্যবহার করা ভাল। সুতরাং আমরা x86 আর্কিটেকচারাল রেজিস্টার + মাইক্রোকোড টেম্পোরারিগুলির চেয়ে বড় হিসাবে নিবন্ধগুলির একটি সেট নিয়ে কাজ করতে চাই।
ব্যাক-এন্ডটি ফ্রন্ট-এন্ড পুনর্নবীকরণকারীর সাথে কাজ করার জন্য ডিজাইন করা হয়েছে যা ডাব্লুএডাব্লু / ওয়ার ওয়ার্ডগুলি এড়ায়, তাই আমরা চাইলেও এটি কোনও অর্ডার সিপিইউয়ের মতো ব্যবহার করতে পারি না। এই নির্ভরতাগুলি সনাক্ত করার জন্য এটিতে ইন্টারলক নেই; এটি ইস্যু / পুনর্নামকরণ দ্বারা পরিচালিত।
ইস্যু / পুনর্নামকরণের পর্যায়ে বাধা ছাড়াই ব্যাক-এন্ডে উওসগুলি খাওয়াতে পারলে এটি ঝরঝরে হতে পারে (আধুনিক ইনটেল পাইপলাইনগুলির সংকীর্ণ বিন্দু, যেমন স্কাইলেকে বনাম 4 এএলইউ + 2 লোড + 1 স্টোর পোর্টগুলিতে 4-প্রশস্ত ব্যাক-এন্ড)। তবে যদি আপনি এটি করেন তবে আমি মনে করি না যে আপনি রেজিস্ট্রেশন পুনরায় ব্যবহার এবং পদক্ষেপের এড়ানোর জন্য কোডটি স্থিরভাবে নির্ধারণ করতে পারেন, যদি কোনও ক্যাশে-মিস দীর্ঘ সময় ধরে কোনও বোঝা থামিয়ে দেয় তবে এখনও প্রয়োজন।
সুতরাং আমাদের ইস্যু / পুনর্নামকরণের পর্যায়ে উফসকে খাওয়ানো দরকার, সম্ভবত কেবল ডিকোডকে বাইপাস করা উচিত, উওপ ক্যাশে বা আইডিকিউ নয়। তারপরে আমরা বুদ্ধিমান বিপদ সনাক্তকরণের সাথে সাধারণ ওও এক্সিকিউট পাই। রেজিস্টার বরাদ্দ সারণীটি 168-এন্ট্রি পূর্ণসংখ্যা পিআরএফ-তে কেবলমাত্র কয়েকটি সংখ্যার রেজিস্ট্রারের নাম পরিবর্তন করার জন্য তৈরি করা হয়েছে। আমরা আশা করতে পারি না যে এইচডাব্লু একই সংখ্যক শারীরিক নিবন্ধে লজিকাল রেজিস্টারগুলির একটি বৃহত্তর সেটটির নামকরণ করবে; এটি আরও বড় RAT লাগবে।