কেন ইন্টেল তাদের প্রসেসরে অভ্যন্তরীণ আরআইএসসি কোরটি লুকায়?


90

পেন্টিয়াম প্রো (পি 6 মাইক্রোআরকিটেকচার) দিয়ে শুরু করে, ইন্টেল এটি মাইক্রোপ্রসেসরগুলি নতুনভাবে ডিজাইন করেছে এবং পুরানো সিআইএসসি নির্দেশাবলীতে অভ্যন্তরীণ আরআইএসসি কোর ব্যবহার করেছে। পেন্টিয়াম প্রো যেহেতু সমস্ত সিআইএসসি নির্দেশাবলী ছোট অংশগুলিতে (উফস) বিভক্ত হয় এবং তারপরে আরআইএসসি কোর দ্বারা চালিত হয়।

শুরুতে আমার পক্ষে এটি স্পষ্ট ছিল যে ইন্টেল নতুন অভ্যন্তরীণ আর্কিটেকচারটি গোপন করার সিদ্ধান্ত নিয়েছে এবং প্রোগ্রামারদের "সিআইএসসি শেল" ব্যবহার করতে বাধ্য করেছিল। এই সিদ্ধান্তের জন্য ধন্যবাদ ইন্টেল সামঞ্জস্যতা ভঙ্গ না করে মাইক্রোপ্রসেসরের আর্কিটেকচারকে পুরোপুরি নতুন করে ডিজাইন করতে পারে, এটি যুক্তিসঙ্গত।

তবে আমি একটি জিনিস বুঝতে পারি না, কেন এখনও ইন্টেল এত বছরের জন্য একটি অভ্যন্তরীণ RISC নির্দেশাবলী গোপন রাখে? তারা প্রোগ্রামারদের আরআইএসসি নির্দেশাবলী যেমন পুরানো x86 সিআইএসসি নির্দেশাবলী সেট ব্যবহার করতে দেয় না কেন?

যদি ইন্টেল এতক্ষণ পিছনে সামঞ্জস্য রাখে (এখনও আমাদের কাছে virtual৪ বিট মোডের পাশের ভার্চুয়াল ৮০86 mode মোড রয়েছে) তবে তারা কেন আমাদের প্রোগ্রাম সংকলন করতে দেয় না যাতে তারা সিআইএসসি নির্দেশাবলী বাইপাস করবে এবং সরাসরি আরআইএসসি কোর ব্যবহার করবে? এটি x86 নির্দেশাবলী সেটটিকে ধীরে ধীরে ছেড়ে দেওয়ার প্রাকৃতিক উপায়ে উন্মুক্ত করবে, যা আজকাল অবচয় করা হয়েছে (এটিই মূল কারণ যার কারণেই ইন্টেল আরআইএসসি কোর অভ্যন্তরে ব্যবহার করার সিদ্ধান্ত নিয়েছে, তাই না?)।

আমি দেখতে পেয়েছি নতুন ইনটেল 'কোর আই' সিরিজটি দেখে তারা কেবলমাত্র সিআইএসসি নির্দেশিকাগুলি এভিএক্স, এসএসই 4 এবং অন্যদের যুক্ত করে প্রসারিত করে।


4
নোট করুন যে কিছু x86 সিপিইউ রয়েছে যেখানে অভ্যন্তরীণ আরআইএসসি নির্দেশিকাটি উন্মুক্ত করা হয়েছে
ফুক্লভ

উত্তর:


93

না, x86 নির্দেশ সেটটি অবশ্যই অবহিত নয়। এটি বরাবরের মতো জনপ্রিয়। অভ্যন্তরীণভাবে অভ্যন্তরীণভাবে RISC- এর মতো মাইক্রো-নির্দেশাবলীর একটি সেট ব্যবহার করার কারণ হ'ল এগুলি আরও দক্ষতার সাথে প্রক্রিয়া করা যায়।

সুতরাং একটি x86 সিপিইউ সীমান্তে বেশ ভারী-ডিউটি ​​ডিকোডার রেখে কাজ করে, যা x86 নির্দেশাবলী গ্রহণ করে এবং তাদের একটি অনুকূলিত অভ্যন্তরীণ ফর্ম্যাটে রূপান্তর করে, যা ব্যাকএন্ড প্রক্রিয়া করতে পারে।

"বাহ্যিক" প্রোগ্রামগুলিতে এই ফর্ম্যাটটি প্রকাশ করার জন্য, এখানে দুটি পয়েন্ট রয়েছে:

  • এটি স্থিতিশীল বিন্যাস নয়। নির্দিষ্ট আর্কিটেকচারকে সেরা ফিট করার জন্য ইন্টেল এটিকে সিপিইউ মডেলের মধ্যে পরিবর্তন করতে পারে। এটি তাদের দক্ষতা সর্বাধিক করে তোলার অনুমতি দেয় এবং যদি তাদের অভ্যন্তরীণ ব্যবহারের পাশাপাশি বাহ্যিক ব্যবহারের জন্য একটি স্থির, স্থিতিশীল নির্দেশ বিন্যাসে স্থির করতে হয় তবে এই সুবিধাটি হারাবে।
  • এটি করে লাভ করার মতো কিছুই নেই। আজকের বিশাল, জটিল সিপিইউ'র সাথে ডিকোডারটি সিপিইউর তুলনামূলকভাবে ছোট একটি অংশ। X86 নির্দেশকে ডিকোড করা আরও জটিল করে তোলে, তবে সিপিইউর বাকী অংশগুলি প্রভাবিত হয় না, সুতরাং সামগ্রিকভাবে, "লিগ্যাসি" কোডটি কার্যকর করার জন্য x86 সীমান্তটি এখনও সেখানে থাকতে হবে, কারণ । সুতরাং আপনি বর্তমানে x86 সম্মুখভাগে ব্যবহৃত ট্রানজিস্টর সংরক্ষণ করতে পারবেন না।

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


4
ভাল দিক. আরআইএসসি একটি ভাল মূল আর্কিটেকচার, যেখানে গুড মানে দ্রুত দ্রুত এবং সঠিকভাবে প্রয়োগ করা সম্ভব, এবং x86 আইএসএ যার সিআইএসসি আর্কিটেকচারাল ইতিহাস রয়েছে, কেবল এখন এটির জন্য একটি বিশাল সেট ইতিহাস রয়েছে এবং এটির জন্য বাইনারি সফ্টওয়্যারের প্রচলিত ধন রয়েছে with পাশাপাশি স্টোরেজ এবং প্রক্রিয়াজাতকরণের জন্য দক্ষ হওয়া। এটি কোনও সিআইএসসি শেল নয়, এটি শিল্পের ডিফাক্টো স্ট্যান্ডার্ড আইএসএ।
ওয়ারেন পি

4
@ ওয়ারেন: শেষ অংশে, আমি আসলে এটি মনে করি না। একটি সুন্দরভাবে-ডিজাইন করা CISC নির্দেশ সেট, স্টোরেজ পরিপ্রেক্ষিতে অধিক দক্ষ হয় হ্যাঁ, কিন্তু কয়েক পরীক্ষার আমি দেখেছি থেকে "গড়" এক্স 86 নির্দেশ যা 4.3 ভালো কিছু ওয়াইড বাইট, আরো তুলনায় এটি সাধারণত মধ্যে হতে চাই একটি আরআইএসসি আর্কিটেকচার। x86 প্রচুর স্টোরেজ দক্ষতা হারিয়ে ফেলে কারণ এটি বছরের পর বছর ধরে এতটাই স্পষ্টভাবে নকশাকৃত এবং প্রসারিত। তবে আপনি যেমনটি বলেছেন, এর প্রধান শক্তি হ'ল ইতিহাস এবং প্রচুর পরিমাণে বিদ্যমান বাইনারি কোড।
jalf

4
আমি এটি বলিনি যে এটি "ভাল ডিজাইনের সিআইএসসি" ছিল, কেবল "বিশাল ইতিহাস"। ভাল অংশগুলি হ'ল RISC চিপ ডিজাইনের অংশ।
ওয়ারেন পি

4
@ জাল্ফ - প্রকৃত বাইনারিগুলি পরিদর্শন করা থেকে, x86 এ নির্দেশের আকার গড়ে গড়ে প্রতিটি 3 বাইট হয় অবশ্যই দীর্ঘ দীর্ঘ নির্দেশাবলী রয়েছে, তবে ছোটগুলি প্রকৃত ব্যবহারে প্রাধান্য পায়।
শ্রদ্ধা করছেন

4
গড় নির্দেশের দৈর্ঘ্য কোড ঘনত্বের জন্য একটি ভাল পরিমাপ নয়: সাধারণ কোডে সর্বাধিক সাধারণ ধরণের x86 নির্দেশ হ'ল লোড এবং স্টোর (যেখানে এটি প্রসেস করা যায় সেখানে সঞ্চারিত ডেটা এবং মেমরিটিতে ফিরে আসে, আরআইএসসি প্রসেসর এবং প্রায় C সিআইএসসি রয়েছে) রেজিস্টার প্রচুর তাই এই অনেক কিছু করতে হবে না এছাড়াও কত করতে পারেন এক নির্দেশ না (বাহু নির্দেশাবলী বিকেল 3 জিনিস করতে
Ctrl-Alt-delor

20

আসল উত্তরটি সহজ।

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

আপনার সিপিইউ মেমরির মতো একই গতিতে চালিত হয় বা কমপক্ষে যদি তারা উভয় যুক্তিসঙ্গতভাবে গতিতে চালিত হয় তবে এই পার্শ্ব প্রতিক্রিয়াটির অর্থ খুব বেশি নয়।

বর্তমানে সিপিইউ গতির তুলনায় মেমরির গতি ঘড়ির মধ্যে একটি বড় পার্থক্য দেখায়। বর্তমানের সিপিইউগুলি কখনও কখনও মূল স্মৃতির চেয়ে পাঁচগুণ বা তার বেশি দ্রুত হয়।

প্রযুক্তির এই অবস্থা আরও ঘন কোডের পক্ষে, যা সিআইএসসি সরবরাহ করে।

আপনি তর্ক করতে পারেন যে ক্যাশেগুলি RISC সিপিইউগুলিকে গতি বাড়িয়ে তুলতে পারে। তবে একই কথা সিআইএসসি সিপাস সম্পর্কেও বলা যেতে পারে।

আপনি সিআইএসসি এবং আরআইএসসি এবং ক্যাশেগুলির তুলনায় ক্যাশেগুলি ব্যবহার করে আরও দ্রুত গতি অর্জন করতে পারেন কারণ একই আকারের ক্যাশে উচ্চ ঘনত্বের কোডে বেশি প্রভাব ফেলে যা সিআইএসসি সরবরাহ করে।

আর একটি পার্শ্ব প্রতিক্রিয়া হ'ল আরআইএসসি সংকলক বাস্তবায়নে কঠোর। সিআইএসসি সিপাসের জন্য সংকলকগুলির অনুকূলকরণ করা সহজ। ইত্যাদি

ইন্টেল জানে তারা কী করছে।

এটি এতটাই সত্য যে এআরএমের একটি থাম্ব নামে একটি উচ্চতর কোড ডেনসিটি মোড রয়েছে।


4
এছাড়াও একটি অভ্যন্তরীণ আরআইএসসি কোর একটি সিআইএসসি সিপিইউতে ট্রানজিস্টর গণনা হ্রাস করে। প্রতিটি সিআইএসসি নির্দেশকে শক্ত ওয়্যারিংয়ের পরিবর্তে আপনি এগুলি কার্যকর করতে মাইক্রোকোড ব্যবহার করতে পারেন। এটি কম ডাই এরিয়া ব্যবহার করে বিভিন্ন সিআইএসসি নির্দেশাবলীর জন্য আরআইএসসি মাইক্রোকোড নির্দেশাবলী পুনরায় ব্যবহারের দিকে নিয়ে যায়।
শিল

16

যদি ইন্টেল এতক্ষণ পিছনে সামঞ্জস্য রাখে (এখনও আমাদের কাছে virtual৪ বিট মোডের পাশের ভার্চুয়াল ৮০86 mode মোড রয়েছে) তবে তারা কেন আমাদের প্রোগ্রাম সংকলন করতে দেয় না যাতে তারা সিআইএসসি নির্দেশাবলী বাইপাস করবে এবং সরাসরি আরআইএসসি কোর ব্যবহার করবে? এটি x86 নির্দেশাবলী সেটটিকে ধীরে ধীরে ছেড়ে দেওয়ার প্রাকৃতিক উপায়ে উন্মুক্ত করবে, যা আজকাল অবচয় করা হয়েছে (এটিই মূল কারণ যার কারণেই ইন্টেল আরআইএসসি কোর অভ্যন্তরে ব্যবহার করার সিদ্ধান্ত নিয়েছে, তাই না?)।

আপনার এর ব্যবসায়ের কোণটি দেখতে হবে। ইন্টেল আসলে x86 থেকে দূরে সরে যাওয়ার চেষ্টা করেছে, তবে এটি হংস যা কোম্পানির জন্য সোনার ডিম দেয়। এক্সস্কেল এবং ইটানিয়াম তাদের মূল x86 ব্যবসায়ের সাফল্যের মাত্রার কাছে পৌঁছায়নি।

আপনি মূলত যা জিজ্ঞাসা করছেন তা হ'ল বিকাশকারীদের কাছ থেকে উষ্ণ ফাজির বদলে ইন্টেলের কব্জি কেটে ফেলা হয়। X86 অবমূল্যায়ন তাদের আগ্রহের নয় interests আরও কিছু বিকাশকারীকে যে কোনও কিছুতেই x86 কে আন্ডারনেইস করে x86 বেছে নিতে হবে না। এটি, ঘুরেফিরে, তাদের ক্ষুন্ন করে।


6
হ্যাঁ, যখন ইন্টেল এটি করার চেষ্টা করেছিল (ইটানিয়াম), মার্কেটপ্লেসটি কেবল একটি সঙ্কটের সাথে সাড়া দেয়।
ওয়ারেন পি

এটি লক্ষ্য করা উচিত যে Itanium ব্যর্থ হওয়ার সময় বিভিন্ন কারণ ছিল এবং এটি কেবল একটি নতুন স্থাপত্য হিসাবে নয়। উদাহরণস্বরূপ, অফ-লোডিং সিপিইউ শিডিউলিং এমন একটি সংকলক যা আসলে কখনই এর লক্ষ্য অর্জন করে না। যদি ইটানিয়ামটি x86 সিপিইউগুলির তুলনায় 10x বা 100x দ্রুত হয় তবে এটি হট কেকের মতো বিক্রি হত। তবে এটি দ্রুত ছিল না।
ক্যাটাস্টিক ভয়েজ

5

উত্তরটি সহজ। ইন্টেল বিকাশকারীদের জন্য সিপিইউ তৈরি করছে না ! তারা সেগুলি ক্রয়ের সিদ্ধান্ত গ্রহণকারী লোকদের জন্য বিকাশ করছে , যা বিটিডাব্লু, বিশ্বের প্রতিটি সংস্থাই তাই করে!

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

তদ্ব্যতীত, ইন্টেল জানে ঠিক কত গুরুত্বপূর্ণ যে প্রতিশ্রুতি, কারণ তারা একবার অন্যভাবে যাওয়ার চেষ্টা। ঠিক কতজন লোক আপনি একজন ইটানিয়াম সিপিইউ দিয়ে চেনেন?!?

আপনি এটি পছন্দ নাও করতে পারেন তবে x86 এর সাথে থাকার এক সিদ্ধান্তই ইন্টেলকে বিশ্বের সর্বাধিক স্বীকৃত ব্যবসায়ের নাম হিসাবে চিহ্নিত করেছে!


4
অন্তর্নিহিত প্রসেসরগুলি বিকাশকারী-বান্ধব নয় এমন অন্তর্নিহিততার সাথে আমি একমত নই। পাওয়ারপিসি এবং x86 প্রোগ্রাম করেছেন বহু বছর ধরে, আমি বিশ্বাস করেছি যে সিআইএসসি অনেক বেশি প্রোগ্রামার বান্ধব। (আমি এখন ইন্টেলের পক্ষে কাজ করি, তবে আমার নিয়োগের আগে আমি এই বিষয়টিতে আমার মন স্থির করেছি।)
জেফ হ্যামন্ড

4
@ জেফ এটি আমার উদ্দেশ্য মোটেই ছিল না! প্রশ্নটি ছিল, কেন ইন্টেল আরআইএসসি নির্দেশিকাটি খুলেনি যাতে বিকাশকারীরা এটি ব্যবহার করতে পারেন। X86 নন-বিকাশকারী বান্ধব হওয়া সম্পর্কে আমি কিছু বলিনি । আমি যা বলেছিলাম তা হ'ল এই জাতীয় সিদ্ধান্তগুলি বিকাশকারীদের মনে রেখে সিদ্ধান্ত নেওয়া হয়নি, বরং এটি কঠোরভাবে ব্যবসায়িক সিদ্ধান্ত ছিল।
জিও

5

@ জালফের উত্তর বেশিরভাগ কারণকে কভার করে, তবে এর মধ্যে একটি আকর্ষণীয় বিবরণ উল্লেখ করা হয়নি: অভ্যন্তরীণ আরআইএসসি-মত মূলটি এআরএম / পিপিসি / এমআইপিএসের মতো কোনও নির্দেশিকা চালানোর জন্য ডিজাইন করা হয়নি। 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 লাগবে।


-3

তারা কেন আমাদের প্রোগ্রাম সংকলনের অনুমতি দেয় না যাতে তারা সিআইএসসি নির্দেশাবলী বাইপাস করবে এবং সরাসরি আরআইএসসি কোরটি ব্যবহার করবে?

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


4
আমি মনে করি না এটি বোঝা যায়। একটি আরআইএসসি মাইক্রোকোড ব্যবহার করতে পারে, বিশেষত যদি আমরা কেবল এক্স x86 ফ্রন্ট্যান্ডে আরআইএসসি ডিকোডার যুক্ত করার কথা বলছি।
পিটার কর্ডেস

4
এখনও ভুল। AES নতুন নির্দেশাবলী (এবং আসন্ন SHA নির্দেশাবলী), এবং PCLMULQDQ এর মতো অন্যান্য স্টাফগুলিতে ডেডিকেটেড হার্ডওয়্যার রয়েছে। হাসওলে, এএসইএনসি একটি একক opোপকে ( agner.org/optimize ) ডিকোড করে , তাই এটি অবশ্যই মাইক্রোকড নয় ed (ডিকোডারদের কেবলমাত্র মাইক্রোকোড রম সিকোয়েন্সারকে সক্রিয় করতে হবে নির্দেশাবলীর জন্য যা 4 টিরও বেশি উওফকে ডিকোড করে ))
পিটার কর্ডস

4
আপনি ঠিক বলেছেন যে কিছু নতুন নির্দেশাবলী কেবলমাত্র বিদ্যমান কার্যকারিতাটি এমনভাবে ব্যবহার করে যা x86 নির্দেশাবলীর সাথে উপলভ্য নয়। একটি ভাল উদাহরণ বিএমআই 2 এসএলএলএক্স হবে , যা আপনাকে সিএল এ গণনা না রেখে এবং পরিবর্তনশীল x86 পতাকা শব্দার্থবিজ্ঞান পরিচালনা করতে প্রয়োজনীয় অতিরিক্ত উফস ব্যয় না করে পরিবর্তনগুলি-গণনা শিফট করতে দেয় (শিফট গণনাটি শূন্য হলে পতাকাগুলি আনমোডাইফড হয়, তাই SHL r/m32, cl) এফএএলজিএসে একটি ইনপুট নির্ভরতা এবং স্কাইলেকে তিনটি উপনে ডিকোড হয় Ag এটি অ্যাগ্রার ফগের পরীক্ষার অনুসারে কোর 2 / নেহালিমের কাছে কেবল 1 টি উওপ ছিল))
পিটার

আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ।
KOLANICH
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.