কোনও প্রসেসর কীভাবে তার ফ্রিকোয়েন্সি থেকে বেশি আইপিএস চালায়? [প্রতিলিপি]


14

এটি এমন কিছু ছিল যা আমি আমার মাথাটি প্রায় জড়িয়ে ধরতে পারি না। প্রায় প্রতিটি আধুনিক প্রসেসর তার ফ্রিকোয়েন্সি থেকে সেকেন্ডে আরও বেশি নির্দেশাবলী কার্যকর করতে সক্ষম।

আমি বুঝতে পারি যে নিম্ন শ্রেণীর প্রসেসরগুলি কেন তার ফ্রিকোয়েন্সি থেকে কম আইপিএস চালায়। উদাহরণস্বরূপ, এটিমেগ 328 16 মেগাহার্টজে প্রায় 16 এমআইপিএস চালায় (বা কমপক্ষে এটিই আমাকে বলা হয়েছিল), এবং জেড 80 4 মেগাহার্টজ এ 0.5 এমআইপিএস চালায়। কিন্তু তারপরে পেন্টিয়াম 4 এক্সট্রিমটি কেবলমাত্র 3.2 গিগাহার্টজ এ 9 টিরও বেশি জিআইপিএস এক্সিকিউট করতে পারে। এটি প্রতি ঘড়ির চক্রের প্রায় তিনটি নির্দেশ!

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

আমি আমার সমস্ত তথ্য পাওয়া গেছে, ATmega328 ছাড়া, এখানে


3
পাইপলাইনিং, সুপার স্কেলারার আর্কিটেকচার, অর্ডার এক্সিকিউশন অফ আউট, সিমালানটাস মাল্টিথ্রিডিং, মাল্টি কোর, ভেক্টর এক্সটেনশন (এসএসই, ..., এভিএক্স), ক্যাচিং ইত্যাদির মতো বাজে শব্দের জন্য উইকিপিডিয়ায় একবার দেখুন। সমস্ত সিপিআই মান 1.0 এর পরে কম হতে পারে।
পাইবেলস

7
আপনি পেন্টিয়াম 4 এর জন্য 9 টি জিআইপি বলতে চেয়েছিলেন, এমআইপিএস নয়, তাই না?
ক্যালিমো

5
স্ব-প্রচার: সিপিইউ কীভাবে প্রতি চক্রে একাধিক নির্দেশ প্রদান করতে পারে? বৈদ্যুতিক ইঞ্জিনিয়ারিং স্ট্যাক এক্সচেঞ্জে জিজ্ঞাসা করা হয়েছিল (আমার উত্তর গৃহীত হয়েছিল এবং সম্ভবত অত্যধিক উন্নতি হয়েছে)।
পল এ। ক্লেটন

আমি সবসময় ভাবছিলাম, আমার কি ভোট দেওয়া উচিত নয় যদি এটি ইতিমধ্যে যতটা উঁচু হওয়া উচিত বলে মনে হয় তবে তা করা উচিত? বা সর্বদা upvote আমি যদি মনে করি কোনও পোস্টের প্রচেষ্টা এবং গুণমান কোনও পুরষ্কারের যোগ্য?
পিটার কর্ডেস

@ পিটারকর্ডস বিভিন্ন ভোটদান দর্শন আছে। কিছু দাবি "দরকারী" একমাত্র মানদণ্ড, অন্যরা আপেক্ষিক যোগ্যতা বিবেচনা করে (উত্তরের জন্য)। আমি নিখুঁত ভোট গণনা ("দুর্দান্ত", "ভাল", "দুর্দান্ত" পোস্ট ব্যাজগুলি যেমন বিবেচনা করা উচিত) পাশাপাশি আপেক্ষিক ভোট গণনা (যা উত্তর র‌্যাঙ্কিংয়ে সহায়তা করে) বিবেচনা করে থাকে। আশ্চর্যজনক Meta.SE অনেক আছে বলে মনে হচ্ছে না এই বিষয়ে এবং " আমি কিভাবে ভোট দেওয়া উচিত? এমনকি একটি উত্তর নেই"!
পল এ। ক্লেটন

উত্তর:


23

এটি আধুনিক প্রসেসরের বৈশিষ্ট্যগুলির সংমিশ্রণের কারণে।

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

এখানে চিত্র বর্ণনা লিখুন

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

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

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

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

তারা বৃহত্তর প্রসেসরের মতো একটি ছোট প্রসেসর তৈরি করতে পারে এবং একইরকম পারফরম্যান্স অর্জন করতে পারে তবে তারপরে পাওয়ার ড্র এবং কুলিংয়ের প্রয়োজনীয়তাগুলি তাত্পর্যপূর্ণভাবে বাড়ানো হবে।


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

1
আপনি যদি সুপারসকলার প্রসেসর চান তবে একটি ব্যবহার করুন। তবে আরডুইনোস এমন লোকদের জন্য একটি কুলুঙ্গি রাখে যারা সুপারসালার প্রসেসরের শক্তি এবং শীতলকরণের প্রয়োজনীয়তাগুলি (এবং ব্যয় এবং জটিলতা) মনে করেন না mind
ডেভিড শোয়ার্টজ

4

এটি কল্পনা করা কঠিন নয়। এক হাজার হাজার ট্রানজিস্টর স্যুইচ করতে যা লাগে তা একটি চক্র। যতক্ষণ নির্দেশাবলী সমান্তরালভাবে রেখাযুক্ত থাকে, ততক্ষণ একটি চক্র এগুলি কার্যকর করতে যথেষ্ট হতে পারে।

এটি নিজে ব্যাখ্যা করার চেষ্টা করার চেয়ে ভাল, এখানে একটি ভাল সূচনা পয়েন্ট


3

মকুবাইয়ের উত্তরের চেয়ে কিছুটা বেশি মৌলিক হওয়া:

সুপারসকলার সিপিইউ নির্দেশাবলী মধ্যে ডেটা (এবং অন্যান্য) নির্ভরতা জন্য নির্দেশ প্রবাহ বিশ্লেষণ। একে অপরের উপর নির্ভর করে না এমন নির্দেশাবলী সমান্তরালে চলতে পারে।

সাধারণ x86 ডেস্কটপ সিপিইউগুলি প্রতি ঘড়ির চক্রটিতে 16 বা 32 বি নির্দেশনা আনে। কোর 2 যেহেতু ইন্টেল ডিজাইনগুলি চক্র প্রতি 4 টি পর্যন্ত নির্দেশ প্রদান করতে পারে। (অথবা 5, যদি একটি তুলনা-এবং-শাখা থাকে যা ম্যাক্রো-ফিউজ করতে পারে)।

অনুশীলনে সিপিইউগুলি যেভাবে চালিত কোড থেকে তারা যতটা নির্দেশ-স্তরের সমান্তরালতা বের করে তা নিয়ে লিঙ্ক এবং বিশদ সম্পর্কে মোবুকাইয়ের চমৎকার উত্তর দেখুন।

হুডের নিচে কী রয়েছে তার গভীরতর ব্যাখ্যা জন্য http://www.realworldtech.com/sandy-bridge/ এবং অন্যান্য সিপিইউ আর্কিটেকচারের জন্য অনুরূপ নিবন্ধগুলি দেখুন ।


-2

পূর্ববর্তী উত্তরগুলি দেখায় যে কীভাবে একজন "নির্দেশ" প্রসেসরের সংজ্ঞা এবং একটি ধারণা যা প্রকৃতপক্ষে প্রশ্নকারীর অভিপ্রায় দ্বারা কার্যকর করা হয় আরও নির্দেশাবলী পায়।

তবে এর আরেকটি উত্স হতে পারে যে প্রতিটি "নির্দেশনা" প্রকৃতপক্ষে প্রসেসরের দ্বারা নির্দেশ ইনপুট হিসাবে গণ্য করা ডেটাগুলির একটি নির্দিষ্ট পরিমাণ। যদি তার উত্সের গণনা কেবল প্রসেসরকে নির্দেশনা হিসাবে কী বিবেচনা করে তা গণনা করে, নিম্নলিখিতটি কিছুই যোগ করে না। তবে যদি তার উত্সটি যদি সমস্ত লোককে "নির্দেশনা" বলে অভিহিত করে তার সবগুলি গণনা করে: তবে যুক্ত করুন যে প্রতিটি নির্দেশ শারীরিকভাবে প্রতিটি অন্যান্য নির্দেশের মতো দীর্ঘ হয় না (একটি হতে পারে 12 বাইট, অন্যটি হতে পারে 56 বাইট ইত্যাদি)। সুতরাং যদি এটি প্রতিটি চক্রকে "নির্দেশনা" (বা 64৪ বাইট হিট করার আগে যতগুলি পূর্ণ নির্দেশনা দেয়) হিসাবে লোড করে এবং সেই by৪ বাইটে ছয়টি নির্দেশনা থাকে তবে ছয়টি নির্দেশিকা (আপনি এবং আমি তাদের হিসাবে বিবেচনা করতে পারি) ) সেই চক্রে শেষ হবে।

যেহেতু অনেকগুলি প্রাথমিক নির্দেশাবলী (আমাদের "বোধগম্য" সংজ্ঞা) প্রাথমিক দিনগুলি থেকে 8 টি বাইট নির্দেশের দৈর্ঘ্য সহ অবশিষ্ট থাকে এবং সংজ্ঞা অনুসারে খুব বেসিক নির্দেশাবলী সম্ভবত অপ্রয়োজনীয়ভাবে ব্যবহৃত হয়, কেবল এটি আরও "নির্দেশাবলী" সম্পাদন করতে দীর্ঘ পথ যেতে পারে ফ্রিকোয়েন্সি অনুমতি মনে হবে চেয়ে।


এটি সিপিইউগুলি আসলে কীভাবে কাজ করে তার খানিকটা কাছাকাছি, তবে প্রতি চক্র অনুসারে একাধিক মেশিন ইনসান আনাই কোনও সুপারসালার সিপিইউ কীভাবে কাজ করে তার একমাত্র অংশ। (এবং গড় insns দৈর্ঘ্য x86 এর জন্য 4 বাইটের মতো বেশি)) গভীর পাইপলাইনগুলির অর্থ হ'ল নির্দেশগুলি এখন আনা হচ্ছে সম্ভবত 15 টি চক্রের জন্য নির্বাহ করা শেষ করতে পারে না (বা অনেক বেশি দীর্ঘ, যদি ক্যাশে মিস থেকে ধরে রাখা হয় তবে অ-নির্ভরশীল নির্দেশাবলী কার্যকর করা চালিয়ে যান।) আপনার ব্যাখ্যাটি পাইপলাইন নকশা মোটেই বর্ণনা করে না। এছাড়াও আপনি 8 বিট 8086 add al, blএবং 80386 এর মধ্যে পার্থক্যটি কী মনে করেন সে সম্পর্কেও পরিষ্কার নয় add eax, ebx
পিটার কর্ডেস

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