কোর 2 সিপিইউ পাওয়ার স্টেটস (" সি-স্টেটস ") নিয়ে গবেষণা করার সময়, আমি আসলে বেশিরভাগ উত্তরাধিকারের ইন্টেল কোর / কোর 2 প্রসেসরের সমর্থন বাস্তবায়িত করতে পেরেছি। সমস্ত ব্যাকগ্রাউন্ড তথ্য সহ সম্পূর্ণ বাস্তবায়ন (লিনাক্স প্যাচ) এখানে নথিভুক্ত করা হয়েছে।
এই প্রসেসরগুলি সম্পর্কে আমি আরও তথ্য সংগ্রহ করার সাথে সাথে এটি স্পষ্ট হওয়া শুরু হয়েছিল যে কোর 2 মডেল (গুলি) -এ সমর্থিত সি-রাজ্যগুলি পূর্বের এবং পরবর্তী প্রসেসরের উভয়ের চেয়ে অনেক জটিল। এগুলি এনহান্সড সি-স্টেটস (বা " CxE ") নামে পরিচিত , যা চিপসেটের প্যাকেজ, স্বতন্ত্র কোর এবং অন্যান্য উপাদানগুলিতে জড়িত (যেমন, মেমরি)। intel_idle
ড্রাইভারটি মুক্তি পাওয়ার সময় , কোডটি বিশেষভাবে পরিপক্ক ছিল না এবং বেশ কয়েকটি কোর 2 প্রসেসর প্রকাশিত হয়েছিল যা সি-স্টেট সমর্থন বিরোধী ছিল।
কোর 2 সলো / ডুও সি-রাজ্য সহায়তার উপর জোরালো কিছু তথ্য 2006 থেকে এই নিবন্ধে পাওয়া গেছে । এটি উইন্ডোজের সমর্থনের সাথে সম্পর্কিত, তবে এটি এই প্রসেসরের শক্তিশালী হার্ডওয়্যার সি-স্টেট সমর্থনটি নির্দেশ করে। কেন্টসফিল্ড সম্পর্কিত তথ্যগুলি প্রকৃত মডেল সংখ্যার সাথে দ্বন্দ্ব করে, তাই আমি বিশ্বাস করি যে তারা আসলে নীচে একটি ইয়র্কফিল্ডের উল্লেখ করছেন:
... কোয়াড-কোর ইন্টেল কোর 2 এক্সট্রিম (কেনটসফিল্ড) প্রসেসর পাঁচটি পারফরম্যান্স এবং পাওয়ার সাশ্রয়কারী প্রযুক্তিগুলিকে সমর্থন করে - এনহান্সড ইন্টেল স্পিডস্টেপ (ইআইএসটি), থার্মাল মনিটর 1 (টিএম 1) এবং থার্মাল মনিটর 2 (টিএম 2), পুরানো অন-ডিমান্ড ক্লক সংশোধন (ওডিসিএম) পাশাপাশি বর্ধিত সি স্টেটস (সিক্সেই)। ইন্টেল পেন্টিয়াম 4 এবং পেন্টিয়াম ডি 600, 800, এবং 900 প্রসেসরের তুলনায়, যা কেবল বর্ধিত হাল্ট (সি 1) স্টেট দ্বারা চিহ্নিত, এই ফাংশনটি ইন্টেল কোর 2 প্রসেসরের (পাশাপাশি ইন্টেল কোর সলো / ডুও প্রসেসরের) জন্য প্রসারিত করা হয়েছে স্টপ গ্রান্ট (সি 2), ডিপ স্লিপ (সি 3) এবং ডিপ স্লিপ (সি 4) সহ প্রসেসরের সমস্ত সম্ভাব্য নিষ্ক্রিয় অবস্থা।
২০০৮-এর এই নিবন্ধটি কোর 2 ডুও এবং কোর 2 কোয়াড সহ মাল্টি-কোর ইন্টেল প্রসেসরের প্রতি-কোর সি-স্টেটসের সমর্থনের রূপরেখা দিয়েছে ( ডেল থেকে এই সাদা কাগজে অতিরিক্ত সহায়ক পটভূমি পঠন পাওয়া গেছে ):
একটি কোর সি-স্টেট একটি হার্ডওয়্যার সি-স্টেট। বেশ কয়েকটি মূল নিষ্ক্রিয় রাজ্য রয়েছে, যেমন সিসি 1 এবং সিসি 3। যেমনটি আমরা জানি, একটি আধুনিক আর্ট প্রসেসরের একাধিক কোর রয়েছে, যেমন সম্প্রতি প্রকাশিত কোর ডুও টি 5000 / টি 7000 মোবাইল প্রসেসর, যা কিছু চেনাশোনাগুলিতে পেনেরিন নামে পরিচিত। আমরা সিপিইউ / প্রসেসর হিসাবে যা ভাবতাম, এর পাশে একাধিক সাধারণ উদ্দেশ্য সিপিইউ রয়েছে। প্রসেসরের চিপটিতে ইন্টেল কোর ডুওর 2 টি কোর রয়েছে। ইন্টেল কোর -২ কোয়াডে প্রসেসরের চিপ হিসাবে এই জাতীয় 4 টি কোর রয়েছে। এই কোরগুলির প্রত্যেকটির নিজস্ব অলস অবস্থা। এটি বোঝায় যে একটি কোর অলস হতে পারে এবং অন্য কোনও থ্রেডে কঠোরভাবে কাজ করতে পারে। সুতরাং একটি মূল সি-রাজ্য হ'ল সেই कोरগুলির মধ্যে একটির অলস রাজ্য।
আমি ইন্টেল থেকে একটি 2010 উপস্থাপনা পেয়েছি যা intel_idle
ড্রাইভার সম্পর্কে কিছু অতিরিক্ত পটভূমি সরবরাহ করে , তবে দুর্ভাগ্যক্রমে কোর 2 এর জন্য সমর্থনটির অভাব ব্যাখ্যা করে না:
এই এক্সপেরিমেন্টাল ড্রাইভারটি ইন্টেল অ্যাটম প্রসেসর, ইনটেল কোর i3 / i5 / i7 প্রসেসর এবং সম্পর্কিত ইন্টেল জিয়ন প্রসেসরের acpi_idle কে সুপারসিড করে। এটি ইন্টেল কোর 2 প্রসেসর বা তার আগের সমর্থন করে না।
উপরের উপস্থাপনাটি নির্দেশ করে যে intel_idle
ড্রাইভারটি "মেনু" সিপিইউ গভর্নরের একটি বাস্তবায়ন, যার লিনাক্স কার্নেল কনফিগারেশন (যেমন, CONFIG_CPU_IDLE_GOV_LADDER
বনাম CONFIG_CPU_IDLE_GOV_MENU
) -এর প্রভাব রয়েছে । মই এবং মেনু গভর্নরদের মধ্যে পার্থক্য succinctly বর্ণনা করা হয় এই উত্তরটি ।
ডেলের একটি সহায়ক নিবন্ধ রয়েছে যা সি-রাজ্য সি 0 কে সি 6 এর সামঞ্জস্যের তালিকাবদ্ধ করে:
মোডেস সি 1 থেকে সি 3 মূলত সিপিইউর অভ্যন্তরে ব্যবহৃত ক্লক সিগন্যাল কেটে কাজ করে, অন্যদিকে সি 4 থেকে সি 6 মোডগুলি সিপিইউ ভোল্টেজ হ্রাস করে কাজ করে। "বর্ধিত" মোডগুলি একই সাথে উভয়ই করতে পারে।
Mode Name CPUs
C0 Operating State All CPUs
C1 Halt 486DX4 and above
C1E Enhanced Halt All socket LGA775 CPUs
C1E — Turion 64, 65-nm Athlon X2 and Phenom CPUs
C2 Stop Grant 486DX4 and above
C2 Stop Clock Only 486DX4, Pentium, Pentium MMX, K5, K6, K6-2, K6-III
C2E Extended Stop Grant Core 2 Duo and above (Intel only)
C3 Sleep Pentium II, Athlon and above, but not on Core 2 Duo E4000 and E6000
C3 Deep Sleep Pentium II and above, but not on Core 2 Duo E4000 and E6000; Turion 64
C3 AltVID AMD Turion 64
C4 Deeper Sleep Pentium M and above, but not on Core 2 Duo E4000 and E6000 series; AMD Turion 64
C4E/C5 Enhanced Deeper Sleep Core Solo, Core Duo and 45-nm mobile Core 2 Duo only
C6 Deep Power Down 45-nm mobile Core 2 Duo only
এই টেবিলটি থেকে (যা আমি পরে কিছু ক্ষেত্রে ভুল বলে মনে করেছি), এটি প্রদর্শিত হবে যে কোর 2 প্রসেসরের সাথে সি-রাষ্ট্রীয় সমর্থনে বিভিন্ন পার্থক্য রয়েছে (নোট করুন যে প্রায় সমস্ত কোর 2 প্রসেসরই সকেট এলজিএ 77 are, কোর ব্যতীত 2 সলো SU3500, যা সকেট বিজিএ 956 এবং মেরম / পেনারিন প্রসেসর "" ইনটেল কোর "সলো / ডুও প্রসেসর সকেট পিবিজিএ 479 বা পিপিজিএ 478 এর মধ্যে একটি)।
এই নিবন্ধে সারণীতে অতিরিক্ত ব্যতিক্রম পাওয়া গেছে :
ইন্টেলের কোর 2 ডুও ই 8500 সি-স্টেটস সি 2 এবং সি 4 সমর্থন করে, অন্যদিকে কোর 2 এক্সট্রিম কিউএক্স 9650 দেয় না।
মজার বিষয় হল, কিউএক্স 96০ হ'ল ইয়র্কফিল্ড প্রসেসর (ইনটেল পরিবার 6, মডেল ২৩, পদক্ষেপ 6)। রেফারেন্সের জন্য, আমার কিউ 9550 এস হ'ল ইনটেল পরিবার 6, মডেল 23 (0x17), 10 ধাপে ধাপে ধাপে ধাপে ধাপে 10, যা সম্ভবত সি-রাজ্য সি 4 সমর্থন করে (পরীক্ষার মাধ্যমে নিশ্চিত করা হয়েছে)। তদ্ব্যতীত, কোর 2 সলো U3500 Q9550S তে একটি অভিন্ন সিপিইউডি (পরিবার, মডেল, পদক্ষেপ) রয়েছে তবে এটি একটি L-L7775 সকেটে পাওয়া যায়, যা উপরের সারণির ব্যাখ্যাকে বিভ্রান্ত করে।
স্পষ্টতই, প্রসেসরের এই মডেলটির সি-স্টেট সমর্থন সনাক্ত করার জন্য সিপিইউডকে অবশ্যই কমপক্ষে পদক্ষেপে ব্যবহার করতে হবে এবং কিছু ক্ষেত্রে অপ্রতুল হতে পারে (এই সময়ে নির্ধারিত)।
সিপিইউ অলস তথ্য নির্ধারণের জন্য পদ্ধতি স্বাক্ষরটি হ'ল:
#define ICPU(model, cpu) \
{ X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)&cpu }
যেখানে asm / इंटেল-ফ্যামিলি । H এmodel
গণিত হয় । এই শিরোলেখ ফাইলটি পরীক্ষা করে দেখছি যে, ইন্টেল সিপিইউগুলিকে 8-বিট সনাক্তকারী নির্ধারিত করা হয়েছে যা ইন্টেল পরিবারের 6 মডেল সংখ্যার সাথে মেলে বলে মনে হচ্ছে:
#define INTEL_FAM6_CORE2_PENRYN 0x17
উপরের দিক থেকে, আমরা ইন্টেল পরিবার 6, মডেল 23 (0x17) হিসাবে সংজ্ঞায়িত করেছি INTEL_FAM6_CORE2_PENRYN
। মডেল 23 প্রসেসরের বেশিরভাগের জন্য অলস রাজ্যগুলি সংজ্ঞায়িত করার জন্য এটি পর্যাপ্ত হওয়া উচিত তবে এটি উপরে বর্ণিত হিসাবে QX9650 এর সাথে সম্ভাব্য সমস্যা তৈরি করতে পারে।
সুতরাং, ন্যূনতমভাবে, প্রসেসরের প্রতিটি গ্রুপের একটি পৃথক সি-স্টেট সেট রয়েছে তাদের এই তালিকাতে সংজ্ঞায়িত করা দরকার।
জাগাকি এবং পোনালা, ইন্টেল প্রযুক্তি জার্নাল 12 (3): 219-227, 2008 ইঙ্গিত দেয় যে ইয়র্কফিল্ড প্রসেসর প্রকৃতপক্ষে সি 2 এবং সি 4 সমর্থন করে। তারা এও ইঙ্গিত করে বলে মনে হয় যে এসিপিআই 3.0a স্পেসিফিকেশন কেবল সি-স্টেটস সি 0, সি 1, সি 2 এবং সি 3 এর মধ্যে ট্রানজিশনকে সমর্থন করে, যা আমি অনুমান করি যে লিনাক্স acpi_idle
ড্রাইভারকে সি-স্টেটসের সীমিত সংস্থার মধ্যে ট্রানজিশনেও সীমাবদ্ধ রাখতে পারে। যাইহোক, এই নিবন্ধটি ইঙ্গিত দেয় যে সর্বদা ক্ষেত্রে নাও হতে পারে:
মনে রাখবেন যে এসিপিআই সি রাজ্য, প্রসেসরের নয়, সুতরাং এসিপিআই সি 3 হ'ল এইচডব্লু সি 6 ইত্যাদি হতে পারে etc.
উল্লেখ্য:
প্রসেসরের নিজেই ছাড়িয়ে, যেহেতু সি 4 প্ল্যাটফর্মের প্রধান সিলিকন উপাদানগুলির মধ্যে একটি সিঙ্ক্রোনাইজড প্রচেষ্টা, তাই ইন্টেল কিউ 45 এক্সপ্রেস চিপসেটটি 28 শতাংশ পাওয়ার উন্নতি অর্জন করে।
আমি যে চিপসেটটি ব্যবহার করছি তা আসলে একটি ইন্টেল কিউ 45 এক্সপ্রেস চিপসেট।
MWAIT রাজ্যের উপর ইন্টেল ডকুমেন্টেশন বাহুল্যবর্জিত কিন্তু তার সমর্থক বায়োস-নির্দিষ্ট ACPI সংক্রান্ত আচরণ:
এমডব্লিউএআইটি এক্সটেনশনে সংজ্ঞায়িত প্রসেসর-নির্দিষ্ট সি-রাজ্যগুলি এসিপিআই-এর সংজ্ঞায়িত সি-রাজ্য প্রকারগুলিতে (C0, C1, C2, C3) মানচিত্র করতে পারে। ম্যাপিং সম্পর্কটি প্রসেসরের প্রয়োগের মাধ্যমে সি-স্টেটের সংজ্ঞার উপর নির্ভর করে এবং এসিপিআই সংজ্ঞায়িত _সিএসটি টেবিলটি ব্যবহার করে বিআইওএস দ্বারা ওএসপিএমের কাছে উন্মুক্ত হয়।
উপরের সারণির আমার ব্যাখ্যা ( উইকিপিডিয়া , asm / intel-family.h এবং উপরের নিবন্ধগুলির একটি টেবিলের সাথে মিলিত ):
মডেল 9 0x09 ( পেন্টিয়াম এম এবং সেলেরন এম ):
- বানিয়াস: সি 0, সি 1, সি 2, সি 3, সি 4
মডেল 13 0x0D ( পেন্টিয়াম এম এবং সেলেরন এম ):
- দোথান, স্টিলি: সি 0, সি 1, সি 2, সি 3, সি 4
মডেল 14 0x0E INTEL_FAM6_CORE_YONAH ( বর্ধিত পেন্টিয়াম এম , বর্ধিত সেলেরন এম বা ইন্টেল কোর ):
- যোনাহ ( কোর সলো , কোর দ্বৈত ): C0, C1, C2, C3, C4, C4E / C5
মডেল 15 0x0F INTEL_FAM6_CORE2_MEROM (কিছু কোর 2 এবং পেন্টিয়াম দ্বৈত-কোর ):
- কেনটসফিল্ড, মেরম, কনরো, অ্যালেনডেল ( E2xxx / E4xxx এবং কোর 2 ডুও E6xxx, T7xxxx / T8xxxx , কোর 2 এক্সট্রিম কিউএক্সএক্সএক্সএক্সএক্স , কোর 2 কোয়াড কিউ 6XX ): সি 0, সি 1, সি 1 ই, সি 2 , সি 2 ই
মডেল 23 0x17 INTEL_FAM6_CORE2_PENRYN ( কোর 2 ):
- মেরম-এল / পেনারিন-এল:?
- পেনারিন ( কোর 2 ডুও 45-এনএম মোবাইল ): সি 0, সি 1, সি 1 ই, সি 2, সি 2 ই, সি 3, সি 4, সি 4 ই / সি 5, সি 6
- ইয়র্কফিল্ড ( কোর 2 এক্সট্রিম কিউএক্স 9650 ): সি 0, সি 1, সি 1 ই, সি 2 ই ?, সি 3
- ওল্ফডেল / ইয়র্কফিল্ড ( কোর 2 কোয়াড , সি 2 কিউ জিওন , কোর 2 ডুও ইওএক্সএক্সএক্সএক্স / ই 7 এক্সএক্সএক্সএক্স / ই 8 এমএক্সএক্সএক্স , পেন্টিয়াম ডুয়াল-কোর ই 6 এক্সএক্সএক্স , সেলেনের দ্বৈত-কোর ): সি 0, সি 1, সি 1 ই, সি 2, সি 2 ই, সি 3, সি 4
প্রসেসরের কেবলমাত্র কোর 2 লাইনের মধ্যে সি-স্টেট সমর্থনে যে পরিমাণ বৈচিত্র্য রয়েছে তা থেকে দেখা যাচ্ছে যে সি-রাজ্যগুলির জন্য ধারাবাহিক সহায়তার অভাব intel_idle
চালকের মাধ্যমে তাদের পুরোপুরি সমর্থন না করার কারণ হতে পারে । আমি পুরো কোর 2 লাইনের জন্য উপরের তালিকাটি সম্পূর্ণরূপে সম্পূর্ণ করতে চাই।
এটি সত্যিই সন্তোষজনক উত্তর নয়, কারণ এটি আমাকে বিস্মিত করে তোলে যে এই প্রসেসরের উপর শক্তিশালী শক্তি-সাশ্রয়ী মেগাওয়াট সি-স্টেটসকে পুরোপুরি ব্যবহার না করে কতটা অপ্রয়োজনীয় শক্তি ব্যবহার করা হয়েছে এবং অতিরিক্ত তাপ উত্পন্ন হয়েছে (এবং এখনও রয়েছে) ।
চট্টোপাধ্যায় ইত্যাদি। 2018, এনার্জি এফিশিয়েন্ট হাই পারফরম্যান্স প্রসেসর: গ্রিন হাই পারফরম্যান্স কম্পিউটিং ডিজাইনের সাম্প্রতিক পদ্ধতির আমি কিউ 45 এক্সপ্রেস চিপসেটে সুনির্দিষ্ট আচরণের জন্য লক্ষণীয়:
প্যাকেজ সি-স্টেট (PC0-PC10) - যখন গণনা ডোমেন, কোর এবং গ্রাফিকস (জিপিইউ) নিষ্ক্রিয় থাকে তখন প্রসেসরের আনকোর এবং প্ল্যাটফর্ম স্তরে অতিরিক্ত পাওয়ার সাশ্রয়ের সুযোগ থাকে, উদাহরণস্বরূপ, এলএলসি ফ্লাশ করা এবং পাওয়ার-গেটিং মেমরি কন্ট্রোলার এবং ডিআআরএএম আইও এবং কোনও স্থানে, পুরো রাষ্ট্রটি প্রসেসরটি বন্ধ করা যেতে পারে যখন তার রাজ্যটি সর্বদা অন পাওয়ার ডোমেনে সংরক্ষণ করা থাকে।
পরীক্ষা হিসাবে, আমি লিনাক্স / ড্রাইভার / নিষ্ক্রিয় / ইন্টেল_আইডিএল.সি লাইন 127 এ নিম্নলিখিতটি প্রবেশ করিয়েছি :
static struct cpuidle_state conroe_cstates[] = {
{
.name = "C1",
.desc = "MWAIT 0x00",
.flags = MWAIT2flg(0x00),
.exit_latency = 3,
.target_residency = 6,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
{
.name = "C1E",
.desc = "MWAIT 0x01",
.flags = MWAIT2flg(0x01),
.exit_latency = 10,
.target_residency = 20,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
// {
// .name = "C2",
// .desc = "MWAIT 0x10",
// .flags = MWAIT2flg(0x10),
// .exit_latency = 20,
// .target_residency = 40,
// .enter = &intel_idle,
// .enter_s2idle = intel_idle_s2idle, },
{
.name = "C2E",
.desc = "MWAIT 0x11",
.flags = MWAIT2flg(0x11),
.exit_latency = 40,
.target_residency = 100,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
{
.enter = NULL }
};
static struct cpuidle_state core2_cstates[] = {
{
.name = "C1",
.desc = "MWAIT 0x00",
.flags = MWAIT2flg(0x00),
.exit_latency = 3,
.target_residency = 6,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
{
.name = "C1E",
.desc = "MWAIT 0x01",
.flags = MWAIT2flg(0x01),
.exit_latency = 10,
.target_residency = 20,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
{
.name = "C2",
.desc = "MWAIT 0x10",
.flags = MWAIT2flg(0x10),
.exit_latency = 20,
.target_residency = 40,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
{
.name = "C2E",
.desc = "MWAIT 0x11",
.flags = MWAIT2flg(0x11),
.exit_latency = 40,
.target_residency = 100,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
{
.name = "C3",
.desc = "MWAIT 0x20",
.flags = MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 85,
.target_residency = 200,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
{
.name = "C4",
.desc = "MWAIT 0x30",
.flags = MWAIT2flg(0x30) | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 100,
.target_residency = 400,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
{
.name = "C4E",
.desc = "MWAIT 0x31",
.flags = MWAIT2flg(0x31) | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 100,
.target_residency = 400,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
{
.name = "C6",
.desc = "MWAIT 0x40",
.flags = MWAIT2flg(0x40) | CPUIDLE_FLAG_TLB_FLUSHED,
.exit_latency = 200,
.target_residency = 800,
.enter = &intel_idle,
.enter_s2idle = intel_idle_s2idle, },
{
.enter = NULL }
};
এ intel_idle.c
লাইন 983:
static const struct idle_cpu idle_cpu_conroe = {
.state_table = conroe_cstates,
.disable_promotion_to_c1e = false,
};
static const struct idle_cpu idle_cpu_core2 = {
.state_table = core2_cstates,
.disable_promotion_to_c1e = false,
};
এ intel_idle.c
লাইন 1073:
ICPU(INTEL_FAM6_CORE2_MEROM, idle_cpu_conroe),
ICPU(INTEL_FAM6_CORE2_PENRYN, idle_cpu_core2),
আমার পিএক্সই নোডগুলির দ্রুত সংকলন এবং পুনরায় বুট করার পরে, dmesg
এখন দেখায়:
[ 0.019845] cpuidle: using governor menu
[ 0.515785] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[ 0.543404] intel_idle: MWAIT substates: 0x22220
[ 0.543405] intel_idle: v0.4.1 model 0x17
[ 0.543413] tsc: Marking TSC unstable due to TSC halts in idle states deeper than C2
[ 0.543680] intel_idle: lapic_timer_reliable_states 0x2
এবং এখন পাওয়ার টপ প্রদর্শিত হচ্ছে:
Package | CPU 0
POLL 2.5% | POLL 0.0% 0.0 ms
C1E 2.9% | C1E 5.0% 22.4 ms
C2 0.4% | C2 0.2% 0.2 ms
C3 2.1% | C3 1.9% 0.5 ms
C4E 89.9% | C4E 92.6% 66.5 ms
| CPU 1
| POLL 10.0% 400.8 ms
| C1E 5.1% 6.4 ms
| C2 0.3% 0.1 ms
| C3 1.4% 0.6 ms
| C4E 76.8% 73.6 ms
| CPU 2
| POLL 0.0% 0.2 ms
| C1E 1.1% 3.7 ms
| C2 0.2% 0.2 ms
| C3 3.9% 1.3 ms
| C4E 93.1% 26.4 ms
| CPU 3
| POLL 0.0% 0.7 ms
| C1E 0.3% 0.3 ms
| C2 1.1% 0.4 ms
| C3 1.1% 0.5 ms
| C4E 97.0% 45.2 ms
অবশেষে আমি বর্ধিত কোর 2 সি-স্টেটগুলি অ্যাক্সেস করেছি এবং দেখে মনে হচ্ছে বিদ্যুৎ ব্যবহারের পরিমাপযোগ্য একটি ড্রপ রয়েছে - 8 টি নোডের আমার মিটারটি কমপক্ষে 5% নিম্নতর দেখা যাচ্ছে (একটি নোড এখনও পুরানো কার্নেল দিয়ে চলছে) , তবে আমি পরীক্ষা হিসাবে আবার কার্নেলগুলি অদলবদল করার চেষ্টা করব।
সি 4 ই সমর্থন সম্পর্কিত একটি আকর্ষণীয় নোট - আমার ইয়র্কটাউন কিউ 9550 এস প্রসেসর এটি সমর্থন করে বলে মনে হচ্ছে (বা সি -4 এর কিছু অন্যান্য উপ-রাষ্ট্র), উপরে প্রমাণ হিসাবে! এটি আমাকে বিভ্রান্ত করে, কারণ কোর 2 কিউ 9000 প্রসেসরের (বিভাগ 6.2) তে কেবল ইনটেল ডাটাশিটটি কেবল সি-স্টেটস নরমাল (সি 0), এইচএলটি (সি 1 = 0x00), এক্সটেন্ডেড এইচএলটি (সি 1 ই = 0x01), স্টপ গ্রান্ট (সি 2 = 0x10) উল্লেখ করেছে , এক্সটেন্ডেড স্টপ গ্রান্ট (সি 2 ই = 0x11), স্লিপ / ডিপ স্লিপ (সি 3 = 0x20) এবং ডিপ স্লিপ (সি 4 = 0x30)। এই অতিরিক্ত 0x31 রাষ্ট্রটি কী? যদি আমি রাজ্য সি 2 সক্ষম করি তবে সি 4 এর পরিবর্তে সি 4 ই ব্যবহার করা হবে। যদি আমি রাজ্য সি 2 (ফোর্স স্টেট সি 2 ই) অক্ষম করি তবে সি 4 এর পরিবর্তে সি 4 ব্যবহার করা হবে। আমার সন্দেহ হয় এমডব্লিউএআইটি ফ্ল্যাগগুলির সাথে এর কিছু থাকতে পারে তবে আমি এখনও এই আচরণের জন্য ডকুমেন্টেশন পাইনি।
এটি কী তৈরি করবেন তা আমি নিশ্চিত নই: সি 1 ই স্থিতি C1 এর পরিবর্তে ব্যবহৃত হয়, সি 2 এর পরিবর্তে সি 2 ব্যবহৃত হয় এবং সি 4 এর পরিবর্তে সি 4 ই ব্যবহৃত হয়। আমি অনিশ্চিত যদি C1 / C1E, C2 / C2E এবং C4 / C4E একসাথে ব্যবহার করা যায় intel_idle
বা তারা নিরর্থক হয়। আমি ইন্টেল ল্যাবস পিটসবার্গের 2010 এর উপস্থাপনায় একটি নোট পেয়েছি যা নির্দেশ করে যে রূপান্তরগুলি হ'ল সি 0 - সি 1 - সি 0 - সি 1 ই - সি 0 এবং আরও বলা হয়েছে:
C1E কেবল তখন ব্যবহৃত হয় যখন সমস্ত কোর C1E তে থাকে
আমি বিশ্বাস করি যে এটি ব্যাখ্যা করা উচিত কারণ C1E রাজ্যটি অন্যান্য উপাদানগুলিতে প্রবেশ করা হয়েছে (যেমন মেমরি) যখন সমস্ত কোর সি 1 ই অবস্থায় থাকে। আমি এটি সি 2 / সি 2 ই এবং সি 4 / সি 4 ই রাষ্ট্রের সমানভাবে প্রয়োগ করতেও গ্রহণ করি (যদিও সি 4 ই কে "সি 4 ই / সি 5" হিসাবে উল্লেখ করা হয় তাই আমি অনিশ্চিত নই যদি সি 4 ই সি -4 এর উপ-রাষ্ট্র হয় বা সি 5 একটি উপ- সি 4 ই অবস্থা Test টেস্টিং সি 4 / সি 4 ই সঠিক বলে মনে হচ্ছে)। আমি সি 2 স্টেটকে সি 2 স্টেটে মন্তব্য করে জোর করে ব্যবহার করতে পারি - তবে, এটি সি 4 ই এর পরিবর্তে সি 4 রাজ্যটি ব্যবহার করতে বাধ্য করে (এখানে আরও কাজ প্রয়োজন হতে পারে)। আশা করা যায় এমন কোনও মডেল 15 বা মডেল 23 প্রসেসর নেই যাগুলির স্টেট সি 2 ই নেই, কারণ এই প্রসেসরগুলি উপরের কোড সহ C1 / C1E এর মধ্যে সীমাবদ্ধ থাকবে।
এছাড়াও, পতাকাগুলি, বিলম্বিতা এবং আবাসনের মানগুলি সম্ভবত সূক্ষ্মভাবে সুরক্ষিত হতে পারে তবে কেবল নেহালেম নিষ্কলুষ মানগুলির উপর ভিত্তি করে শিক্ষিত অনুমান নেওয়া ভাল কাজ করবে বলে মনে হচ্ছে। আরও পড়ার জন্য কোনও উন্নতি করতে হবে।
আমি এই পরীক্ষিত কোর 2 মানিকজোড় E2220 ( Allendale, ), একটি ডুয়াল কোর পেন্টিয়াম E5300 ( Wolfdale ), কোর 2 মানিকজোড় E7400 , কোর 2 মানিকজোড় E8400 ( Wolfdale ), কোর 2 চতুর্মুখী Q9550S ( Yorkfield ) এবং কোর 2 চরম QX9650 , এবং আমি রাজ্য সি 2 / সি 2 ই এবং সি 4 / সি 4 ই এর পূর্ব বর্ণিত পছন্দের বাইরে কোনও সমস্যা খুঁজে পাওয়া যায় নি।
এই ড্রাইভার পরিবর্তন দ্বারা আচ্ছাদিত:
- আসল কোর সলো / কোর ডুও ( যোনাহ , নন কোর 2) হ'ল পরিবার 6, মডেল 14 This এটি ভাল কারণ তারা সি 4 ই / সি 5 (বর্ধিত গভীর ঘুম) সি-রাজ্যগুলিকে সমর্থন করেছে তবে সি 1 ই / সি 2 ই রাজ্যগুলিকে সমর্থন করবে না এবং তাদের প্রয়োজন হবে নিজের অলস সংজ্ঞা
আমি কেবলমাত্র যে বিষয়গুলি সম্পর্কে ভাবতে পারি তা হ'ল:
- কোর 2 একক SU3300 / SU3500 (Penryn-L) পরিবার 6, মডেল 23 এবং এই ড্রাইভার দ্বারা সনাক্ত করা হবে be তবে, তারা সকেট এলজিএ 775 নয় তাই তারা সি 1 ই বর্ধিত হাল্ট সি-রাজ্যটিকে সমর্থন না করতে পারে। তেমনিভাবে কোর 2 সলো ইউএলভি ইউ 2100 / ইউ 2200 (মেরম -এল ) এর জন্য। তবে
intel_idle
ড্রাইভারটি উপ-রাজ্যের হার্ডওয়্যার সমর্থনের উপর ভিত্তি করে উপযুক্ত সি 1 / সি 1 ই পছন্দ করে।
- কোর 2 এক্সট্রিম কিউ এক্স 9650 (ইয়র্কফিল্ড) কথিতভাবে সি-স্টেট সি 2 বা সি 4 সমর্থন করে না। আমি ইবেতে ব্যবহৃত অপটিপ্লেক্স 780 এবং কিউএক্স 9650 এক্সট্রিম প্রসেসর কিনে এটি নিশ্চিত করেছি। প্রসেসরটি সি-স্টেটস সি 1 এবং সি 1 ই সমর্থন করে। এই ড্রাইভারটি সংশোধন করে সিপিইউ সি 1 এর পরিবর্তে সি 1 ই স্টেটে থাকে, সুতরাং সম্ভবত কিছুটা পাওয়ার সাশ্রয় হয়। আমি সি-স্টেট সি 3 দেখতে প্রত্যাশা করেছিলাম, তবে এই ড্রাইভারটি ব্যবহার করার সময় এটি উপস্থিত নেই তাই আমাকে আরও এই বিষয়টি খতিয়ে দেখার দরকার হতে পারে।
আমি সি-রাজ্যগুলির মধ্যে রূপান্তর সম্পর্কিত (যেমন, ডিপ পাওয়ার) ডাউন ২০০৯-এর ইনটেল উপস্থাপনা থেকে একটি স্লাইড সন্ধান করতে পেরেছি:
উপসংহারে, দেখা যাচ্ছে যে intel_idle
ড্রাইভারে কোর 2 সাপোর্টের অভাবের কোনও আসল কারণ নেই । এটি এখন স্পষ্ট যে "কোর 2 ডুও" এর মূল স্টাব কোডটি কেবল সি-স্টেটস সি 1 এবং সি 2 পরিচালনা করেছিল, যা acpi_idle
সি-স্টেট সি 3 পরিচালনা করে এমন ফাংশনটির চেয়ে অনেক কম দক্ষ হত । একবার আমি জানতাম কোথায় নজর দেওয়া উচিত, সমর্থন বাস্তবায়ন করা সহজ ছিল। সহায়ক মন্তব্য এবং অন্যান্য উত্তরগুলি অনেক প্রশংসা পেয়েছিল এবং যদি অ্যামাজন শুনছে তবে আপনি চেকটি কোথায় প্রেরণ করবেন তা জানেন।
এই আপডেট গিথুব প্রতিশ্রুতিবদ্ধ হয়েছে । আমি শীঘ্রই এলকেএমএলে একটি প্যাচ ইমেল করব।
আপডেট : আমি একটি সকেট টি / LGA775 খনন পরিচালিত Allendale, ( Conroe ) কোর 2 মানিকজোড় E2220, যা পরিবার 6, মডেল 15, তাই আমি পাশাপাশি যে জন্য সমর্থন যোগ করা হয়েছে। এই মডেলটির সি-স্টেট সি 4 এর পক্ষে সমর্থন নেই, তবে সি 1 / সি 1 ই এবং সি 2 / সি 2 ই সমর্থন করে। এটি অন্যান্য কনরো-ভিত্তিক চিপস ( E4xxx / E6xxx ) এবং সম্ভবত সমস্ত কেন্টসফিল্ড এবং মেরম (নন মেরম-এল) প্রসেসরের জন্যও কাজ করা উচিত ।
আপডেট : অবশেষে আমি কিছু এমডব্লিউএআইটি টিউন করার সংস্থান পেয়েছি। এই পাওয়ার বনাম পারফরম্যান্স লিখনআপ এবং এই ডিপার সি জানিয়েছে এবং বর্ধিত লেটেন্সি ব্লগ পোস্ট উভয়ই সিপিইউ নিষ্ক্রিয় লেটেন্সি সনাক্তকরণের জন্য কিছু দরকারী তথ্য ধারণ করে। দুর্ভাগ্যক্রমে, এটি কেবলমাত্র সেই প্রস্থানগুলি স্থির করে যা কার্নেলের মধ্যে কোড করা হয়েছিল (তবে মজার বিষয় হল, কেবলমাত্র প্রসেসরের সমর্থিত সেই হার্ডওয়্যার স্টেটগুলি রয়েছে):
# cd /sys/devices/system/cpu/cpu0/cpuidle
# for state in `ls -d state*` ; do echo c-$state `cat $state/name` `cat $state/latency` ; done
c-state0/ POLL 0
c-state1/ C1 3
c-state2/ C1E 10
c-state3/ C2 20
c-state4/ C2E 40
c-state5/ C3 20
c-state6/ C4 60
c-state7/ C4E 100
acpi_idle
এবং বিভিন্ন কর্মক্ষমতা গভর্নরদের।powertop
আপনার সিস্টেমে কোন রাজ্যগুলি প্রদর্শন করে?