EPIC উইকিপিডিয়ার নিবন্ধ ইতিমধ্যে VLIW এবং EPIC সাধারণ অনেক বিপদ রূপরেখা হয়েছে।
যদি কেউ এই নিবন্ধ থেকে প্রাণঘাতীতার ধারণাটি না ধরে থাকে তবে আমি এটি হাইলাইট করি:
মেমোরি হায়ারার্কি থেকে লোড প্রতিক্রিয়াগুলির মধ্যে সিপিইউ ক্যাশে এবং ডিআরএএম-এর কোনও প্রতিরোধমূলক বিলম্ব হয় না।
অন্য কথায়, যে কোনও হার্ডওয়্যার ডিজাইন (*) মেমরি অ্যাক্সেস থেকে অ-নিরঙ্কুশতা বিলম্বকে মোকাবেলা করতে ব্যর্থ হয় তা কেবল দর্শনীয় ব্যর্থতায় পরিণত হবে।
(*) "মোকাবেলা" করার মাধ্যমে যুক্তিসঙ্গতভাবে কার্যকর সম্পাদন সম্পাদন করা প্রয়োজন (অন্য কথায়, "ব্যয়-প্রতিযোগিতামূলক"), যা সিপিইউকে কয়েকশো চক্রের জন্য প্রায়শই প্রায় নিষ্ক্রিয় না করতে দেয়।
নোট করুন যে EPIC দ্বারা নিযুক্ত মোকাবেলা কৌশল (উপরে লিঙ্কিত উইকিপিডিয়া নিবন্ধে উল্লিখিত) আসলে সমস্যাটি সমাধান করে না। এটি কেবল বলেছে যে ডেটা নির্ভরতা ইঙ্গিত করার বোঝা এখন সংকলকের উপর পড়ে। সেটা ঠিক আছে; সংকলকটির ইতিমধ্যে সেই তথ্য রয়েছে, তাই সংকলকটি মেনে চলা সহজ। সমস্যাটি হ'ল সিপিইউ এখনও মেমোরি অ্যাক্সেসের জন্য দশ থেকে শত শত চক্রের জন্য অলস হয়ে চলেছে। অন্য কথায়, এটি একটি প্রাথমিক দায়িত্ব বহিরাগত করে, যদিও এখনও প্রাথমিক দায়িত্বটি মোকাবেলা করতে ব্যর্থ হয়।
এই প্রশ্নটি পুনরায় জবাব দেওয়া যেতে পারে: "একটি হার্ডওয়্যার প্ল্যাটফর্ম দেওয়া হয়েছে যা ব্যর্থ হওয়ার লক্ষ্যযুক্ত, কেন (1) (2) সংকলক লেখকরা এটি খালাস করার জন্য বীরত্বপূর্ণ প্রচেষ্টা করতে পারেন নি?"
আমি আশা করি আমার পুনরায় প্রকাশ করা এই প্রশ্নের উত্তর সুস্পষ্ট করে দেবে।
ব্যর্থতার দ্বিতীয় দিকটিও মারাত্মক।
মোকাবিলার কৌশলগুলি (একই নিবন্ধে উল্লিখিত) ধরে নিয়েছে যে সফ্টওয়্যার ভিত্তিক প্রিফেচিং মেমরি অ্যাক্সেস থেকে অ-নিরস্তকরণের কারণে ক্ষতির কমার পারফরম্যান্স হ্রাসের কমপক্ষে অংশটি পুনরুদ্ধারে ব্যবহার করা যেতে পারে।
বাস্তবে, আপনি যদি স্ট্রিমিং ক্রিয়াকলাপগুলি (ক্রমানুসারে মেমরি পড়তে বা উচ্চতর অনুমানযোগ্য পদ্ধতিতে) চালিয়ে যাচ্ছেন তবেই উপস্থাপনাটি লাভজনক।
(এটি বলেছে, যদি আপনার কোড কিছু স্থানীয় মেমরি অঞ্চলে ঘন ঘন অ্যাক্সেস করে তবে ক্যাশে সহায়তা করবে))
তবে, বেশিরভাগ সাধারণ-উদ্দেশ্যমূলক সফ্টওয়্যার অবশ্যই প্রচুর এলোমেলো মেমরি অ্যাক্সেস করতে পারে। আমরা যদি নিম্নলিখিত পদক্ষেপগুলি বিবেচনা করি:
- ঠিকানাটি গণনা করুন এবং তারপরে
- মান পড়ুন, এবং তারপর
- কিছু গণনায় এটি ব্যবহার করুন
বেশিরভাগ সাধারণ-উদ্দেশ্যে সফ্টওয়্যারগুলির জন্য, এই তিনটি দ্রুত উত্তরাধিকারে কার্যকর করা উচিত। অন্য কথায়, সবসময় সম্ভব নয় (সফ্টওয়্যার লজিকের সীমানার মধ্যে) ঠিকানার সম্মুখভাগ গণনা করা, বা এই তিনটি ধাপের মধ্যে স্টলগুলি পূরণ করার জন্য পর্যাপ্ত কাজ সন্ধান করা।
স্টলগুলি পূরণ করার জন্য পর্যাপ্ত কাজ খুঁজে পাওয়া কেন সবসময় সম্ভব না তা ব্যাখ্যা করার জন্য, এখানে কীভাবে কেউ এটি ভিজ্যুয়ালাইজ করতে পারে তা এখানে।
- বলি, স্টলগুলি কার্যকরভাবে আড়াল করার জন্য আমাদের 100 টি নির্দেশাবলী পূরণ করতে হবে যা মেমরির উপর নির্ভর করে না (তাই অতিরিক্ত বিলম্বিত হবে না)।
- এখন, প্রোগ্রামার হিসাবে, দয়া করে আপনার পছন্দসই যে কোনও সফ্টওয়্যার একটি ডিসেসেম্বলারের মধ্যে লোড করুন। বিশ্লেষণের জন্য একটি এলোমেলো ফাংশন চয়ন করুন।
- আপনি যে কোনও জায়গায় 100 নির্দেশাবলী (*) এর ক্রম সনাক্ত করতে পারেন যা মেমরি অ্যাক্সেস থেকে একচেটিয়াভাবে মুক্ত?
(*) যদি আমরা কখনও NOP
দরকারী কাজ করতে পারি ...
আধুনিক সিপিইউগুলি গতিশীল তথ্য ব্যবহার করে একই সাথে মোকাবিলা করার চেষ্টা করে - প্রতিটি নির্দেশের অগ্রগতি পাইপলাইনগুলির মধ্য দিয়ে সঞ্চালিত হওয়ার সাথে সাথে পর্যায়ক্রমে ট্র্যাক করে। আমি উপরে উল্লিখিত হিসাবে, গতিশীল তথ্যের একটি অংশ অ-নিষ্ক্রিয় মেমরি ল্যাটেন্সি কারণে, সুতরাং এটি সংযোজক দ্বারা কোনও পরিমাণ নির্ভুলতার পূর্বাভাস দেওয়া যায় না। সাধারণভাবে, সংকলন-সময় এমন সিদ্ধান্তগুলি গ্রহণের জন্য পর্যাপ্ত তথ্য পাওয়া যায় না যা সম্ভবত এই স্টলগুলি পূরণ করতে পারে।
জবাবের জবাব হিসাবে এপ্রোগ্রামার
এটি এমন নয় যে "সংকলক ... সমান্তরালতা আহরণ করা শক্ত"।
আধুনিক সংকলকগুলির দ্বারা মেমরি এবং পাটিগণিত নির্দেশাবলীর পুনঃক্রম করা প্রমাণ হ'ল স্বতন্ত্রভাবে এবং এভাবে একযোগে সম্পাদনযোগ্য অপারেশনগুলি সনাক্ত করতে কোনও সমস্যা নেই।
মূল সমস্যাটি হ'ল নন-ডিস্ট্রিমেন্টিক মেমরি ল্যাটেন্সি মানে যে ভিআইএলডাব্লু / ইপিক প্রসেসরের জন্য যে কোনও "নির্দেশিকা জুটি" এনকোড করেছে তা মেমরি অ্যাক্সেসের দ্বারা স্থবির হয়ে যাবে।
স্টল না করে এমন নির্দেশিকাগুলি অনুকূলকরণ (কেবলমাত্র নিবন্ধভুক্ত, পাটিগণিত) স্টল (মেমরি অ্যাক্সেস) হওয়ার খুব সম্ভবত সম্ভাব্য নির্দেশাবলী দ্বারা সম্পাদিত পারফরম্যান্স সমস্যাগুলিতে সহায়তা করবে না।
এটি অপটিমাইজেশনের ৮০-২০ নিয়ম প্রয়োগ করতে ব্যর্থতার একটি উদাহরণ: ইতিমধ্যে দ্রুততর জিনিসগুলির অপ্টিমাইজ করা অর্থপূর্ণভাবে সামগ্রিক কর্মক্ষমতা উন্নত করতে পারে না, যতক্ষণ না ধীর জিনিসগুলিও অনুকূলিত না হয় being
জবাবে বাসাইল স্টারিনকিভিচ
এটি "... (যাই হোক না কেন) শক্ত" নয়, এটি হ'ল ইপিআইসি কোনও প্ল্যাটফর্মের জন্য অনুপযুক্ত যা বিলম্বিতভাবে উচ্চ গতিশীলতার সাথে লড়াই করতে হয় able
উদাহরণস্বরূপ, যদি কোনও প্রসেসরের নিম্নলিখিত সমস্ত কিছু থাকে:
- সরাসরি মেমরি অ্যাক্সেস নেই;
- কোনও স্মৃতি অ্যাক্সেস (পড়ুন বা লিখুন) ডিএমএ স্থানান্তর দ্বারা নির্ধারিত হতে হবে;
- প্রতিটি নির্দেশের একই কার্যকরকরণের বিলম্ব হয়;
- ক্রম কার্যকর;
- প্রশস্ত / ভেক্টরাইজড এক্সিকিউশন ইউনিট;
তারপরে VLIW / EPIC ভাল ফিট হবে।
এমন প্রসেসর কোথায় পাওয়া যায়? ডিএসপি। এবং এখানেই ভিএলআইডাব্লু সমৃদ্ধ হয়েছে।
অন্ধকারে, ইটানিয়ামের ব্যর্থতা (এবং স্পষ্ট প্রমাণ থাকা সত্ত্বেও একটি অবিচ্ছিন্নতার মধ্যে গবেষণা ও উন্নয়ন প্রচেষ্টা অব্যাহত pourালাই) সাংগঠনিক ব্যর্থতার একটি উদাহরণ এবং গভীরভাবে অধ্যয়ন করার দাবিদার ves
মঞ্জুর, বিক্রেতার অন্যান্য উদ্যোগ যেমন হাইপারথ্রেডিং, সিমডি ইত্যাদি অত্যন্ত সফল বলে মনে হয়। এটা সম্ভব যে ইটানিয়ামে বিনিয়োগের ফলে তার প্রকৌশলীদের দক্ষতার উপর একটি সমৃদ্ধ প্রভাব থাকতে পারে, যা তাদের পরবর্তী প্রজন্মকে সফল প্রযুক্তির তৈরি করতে সক্ষম করেছে have