/ Proc / cpuinfo এর পতাকাগুলির অর্থ কী?


212

আমার প্রসেসরের একটি বিশেষ বৈশিষ্ট্য আছে কিনা তা আমি কীভাবে বলতে পারি? (-৪-বিট নির্দেশিকা সেট, হার্ডওয়্যার-সহায়ক ভার্চুয়ালাইজেশন, ক্রিপ্টোগ্রাফিক এক্সিলারস, ইত্যাদি) আমি জানি যে ফাইলটিতে /proc/cpuinfoএই তথ্য রয়েছে flagsলাইনটিতে, তবে এই সমস্ত গুপ্ত সংক্ষিপ্ত বিবরণটির অর্থ কী?

উদাহরণস্বরূপ, নিম্নলিখিত এক্সট্রাক্টটি দেওয়া থেকে /proc/cpuinfo, আমার কাছে কি একটি 64-বিট সিপিইউ রয়েছে? আমার কি হার্ডওয়্যার ভার্চুয়ালাইজেশন আছে?

model name      : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
…
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriority

উত্তর:


275

এক্স 86

(32-বিট ওরফে i386 – i686 এবং 64-বিট ওরফে amd64। অন্য কথায়, আপনার ওয়ার্কস্টেশন, ল্যাপটপ বা সার্ভার))

FAQ: আমার কি আছে…

  • 64-বিট (x86_64 / এএমডি 64 / ইন্টেল 64)? lm
  • হার্ডওয়্যার ভার্চুয়ালাইজেশন (ভিএমএক্স / এএমডি-ভি)? vmx(ইন্টেল), svm(এএমডি)
  • ত্বরিত এইএস (এইএস-এনআই)? aes
  • টিএক্সটি (টিপিএম)? smx
  • একটি হাইপারভাইজার (যেমন ঘোষণা করা)? hypervisor

অন্যান্য বৈশিষ্ট্যগুলির বেশিরভাগই কেবল সংকলক বা কার্নেল লেখকদের আগ্রহী।

সব পতাকা

সম্পূর্ণ তালিকাটি ফাইলটিতে কার্নেল উত্সে রয়েছে arch/x86/include/asm/cpufeatures.h

ইন্টেল-সংজ্ঞায়িত সিপিইউ বৈশিষ্ট্যগুলি, সিপিইউইডি স্তর 0x00000001 (edx)

ইন্টেল অ্যাডভান্সড ভেক্টর এক্সটেনশানস প্রোগ্রামিং রেফারেন্সে উইকিপিডিয়া এবং টেবিল 2-27ও দেখুন

এএমডি-সংজ্ঞায়িত সিপিইউ বৈশিষ্ট্যগুলি, সিপিইউইডি স্তর 0x80000001

ইন্টেল অ্যাডভান্সড ভেক্টর এক্সটেনশানস প্রোগ্রামিং রেফারেন্সে উইকিপিডিয়া এবং টেবিল 2-23ও দেখুন

ট্রান্সমিটা-সংজ্ঞায়িত সিপিইউ বৈশিষ্ট্যগুলি, সিপিইউইডি স্তর 0x80860001

  • recovery: পুনরুদ্ধার মোডে সিপিইউ
  • longrun: দীর্ঘতর শক্তি নিয়ন্ত্রণ
  • lrti: LongRun টেবিল ইন্টারফেস

অন্যান্য বৈশিষ্ট্য, লিনাক্স-সংজ্ঞায়িত ম্যাপিং

  • cxmmx: সেরিক্স এমএমএক্স এক্সটেনশন
  • k6_mtrr: এএমডি কে 6 নন স্ট্যান্ডার্ড এমটিআরআর
  • cyrix_arr: সেরিক্স এআরআর (= এমটিআরআর)
  • centaur_mcr: সেন্টার এমসিআর (= এমটিআরআর)
  • constant_tsc: টিএসসি স্থির হারে টিক দেয়
  • up: ইউপিতে এসএমপি কার্নেল চলছে
  • art: সর্বদা চলমান টাইমার
  • arch_perfmon: ইন্টেল আর্কিটেকচারাল পারফরমন
  • pebs: যথার্থ-ইভেন্ট ভিত্তিক নমুনা
  • bts: ব্রাঞ্চ ট্রেস স্টোর
  • rep_good: রেপ মাইক্রোকোড ভাল কাজ করে
  • acc_power: এএমডি জমে বিদ্যুৎ ব্যবস্থা
  • nopl: এনওপিএল (0 এফ 1 এফ) নির্দেশাবলী
  • xtopology: সিপিইউ টপোলজি এনাম এক্সটেনশন
  • tsc_reliable: টিএসসি নির্ভরযোগ্য হিসাবে পরিচিত
  • nonstop_tsc: সি রাজ্যে টিএসসি থামছে না
  • cpuid: সিপিইউতে সিপিইউডের নির্দেশনা রয়েছে
  • extd_apicid: এপিসিড বাড়িয়েছে (8 বিট)
  • amd_dcm: মাল্টি নোড প্রসেসর
  • aperfmperf: এপিআরএফএমপিএফ
  • eagerfpu: অলস এফপিইউ পুনরুদ্ধার করুন
  • nonstop_tsc_s3: টিএসসি এস 3 রাজ্যে থামছে না
  • tsc_known_freq: টিএসসির ফ্রিকোয়েন্সি জানা আছে
  • mce_recovery: সিপিইউতে পুনরুদ্ধারযোগ্য মেশিন চেক রয়েছে

ইন্টেল-সংজ্ঞায়িত সিপিইউ বৈশিষ্ট্যগুলি, সিপিইউইডি স্তর 0x00000001 (ই্যাকএক্স)

ইন্টেল অ্যাডভান্সড ভেক্টর এক্সটেনশানস প্রোগ্রামিং রেফারেন্সে উইকিপিডিয়া এবং টেবিল 2-26ও দেখুন

ভিআইএ / সিরিক্স / সেন্টার-সংজ্ঞায়িত সিপিইউ বৈশিষ্ট্যগুলি, সিপিইউইডি স্তর 0xC0000001

  • rng: এলোমেলো নম্বর জেনারেটর উপস্থিত (xstore)
  • rng_en: এলোমেলো নম্বর জেনারেটর সক্ষম
  • ace: অন সিপিইউ ক্রিপ্টো (এক্সক্রিপ্ট)
  • ace_en: অন সিপিইউ ক্রিপ্টো সক্ষম হয়েছে
  • ace2: উন্নত ক্রিপ্টোগ্রাফি ইঞ্জিন v2
  • ace2_en: ACE v2 সক্ষম হয়েছে
  • phe: প্যাডলক হ্যাশ ইঞ্জিন
  • phe_en: পিএইচই সক্ষম হয়েছে
  • pmm: প্যাডলক মন্টগোমেরি গুণক
  • pmm_en: পিএমএম সক্ষম হয়েছে

আরও বর্ধিত এএমডি পতাকা: সিপিইউইডি স্তর 0x80000001, ইক্সেক্স

সহায়ক পতাকা: লিনাক্স সংজ্ঞায়িত - বিভিন্ন সিপিইউডি স্তরে ছড়িয়ে ছিটিয়ে থাকা বৈশিষ্ট্যগুলির জন্য

  • ring3mwait: রিং 3 মনিটর / মেগাওয়াট
  • cpuid_fault: ইন্টেল সিপিইউডি ত্রুটিযুক্ত
  • cpb: এএমডি কোর পারফরম্যান্স বুস্ট
  • epb: IA32_ENERGY_PERF_BIAS সমর্থন
  • cat_l3: ক্যাশে বরাদ্দ প্রযুক্তি এল 3
  • cat_l2: ক্যাশে বরাদ্দ প্রযুক্তি এল 2
  • cdp_l3: কোড এবং ডেটা অগ্রাধিকার এল 3
  • invpcid_single: কার্যকরভাবে invpcidএবংCR4.PCIDE=1
  • hw_pstate: এএমডি এইচডাব্লু-পিএসেটেট
  • proc_feedback: এএমডি প্রোফিডব্যাকআইন্টারফেস
  • sme: এএমডি সিকিওর মেমরি এনক্রিপশন
  • pti: কার্নেল পৃষ্ঠা সারণী বিচ্ছিন্নকরণ (কায়সার)
  • retpoline: Retpoline জন্য প্রশমন স্পেকটের বৈকল্পিক 2 (পরোক্ষ শাখা)
  • retpoline_amd: এএমডি রেটপোলিন প্রশমন
  • intel_ppin: ইনটেল প্রসেসর ইনভেন্টরি নম্বর
  • avx512_4vnniw: AVX-512 নিউরাল নেটওয়ার্ক নির্দেশাবলী
  • avx512_4fmaps: এভিএক্স -512 একক নির্ভুলতা একত্রীকরণ
  • mba: মেমরি ব্যান্ডউইথ বরাদ্দ
  • rsb_ctxsw: প্রসঙ্গে সুইচগুলিতে আরএসবি পূরণ করুন

ভার্চুয়ালাইজেশন পতাকা: লিনাক্স সংজ্ঞায়িত

  • tpr_shadow: ইন্টেল টিপিআর শ্যাডো
  • vnmi: ইন্টেল ভার্চুয়াল এনএমআই
  • flexpriority: ইন্টেল ফ্লেক্সপ্রিয়িটি
  • ept: ইন্টেল প্রসারিত পৃষ্ঠা সারণী
  • vpid: ইন্টেল ভার্চুয়াল প্রসেসর আইডি
  • vmmcall: পছন্দ করা VMMCALLথেকেVMCALL

ইন্টেল-সংজ্ঞায়িত সিপিইউ বৈশিষ্ট্যগুলি, সিপিইউইডি স্তর 0x00000007: 0 (ইবিএক্স)

প্রসারিত রাজ্য বৈশিষ্ট্য, সিপিইউইডি স্তর 0x0000000d: 1 (ইক্স)

  • xsaveopt: অনুকূলিত XSAVE
  • xsavec: XSAVEC
  • xgetbv1: XGETBVইসিএক্স = 1 সহ
  • xsaves: XSAVES/XRSTORS

ইন্টেল-সংজ্ঞায়িত সিপিইউ কিউএস উপ-পাতাগুলি, সিপিইউইডি স্তর 0x0000000F: 0 (edx)

  • cqm_llc: এলএলসি কিউএস

ইন্টেল-সংজ্ঞায়িত সিপিইউ কিউএস উপ-পাতাগুলি, সিপিইউইডি স্তর 0x0000000F: 1 (edx)

  • cqm_occup_llc: এলএলসি দখল নিরীক্ষণ
  • cqm_mbm_total: এলএলসি মোট এমবিএম পর্যবেক্ষণ
  • cqm_mbm_local: এলএলসি স্থানীয় এমবিএম পর্যবেক্ষণ

এএমডি-সংজ্ঞায়িত সিপিইউ বৈশিষ্ট্যগুলি, সিপিইউইডি স্তর 0x80000008 (ইবিএক্স)

  • clzero: CLZEROনির্দেশ
  • irperf: নির্দেশাবলী অবসর নিয়েছে পারফরম্যান্স কাউন্টার
  • xsaveerptr: সর্বদা এফপি ত্রুটি পয়েন্টার সংরক্ষণ / পুনরুদ্ধার করুন

তাপীয় ও পাওয়ার ম্যানেজমেন্ট পাতা, সিপিইউডি স্তর 0x00000006 (ইক্স)

  • dtherm(পূর্বে dts): ডিজিটাল তাপ সেন্সর
  • ida: ইন্টেল গতিশীল ত্বরণ
  • arat: সর্বদা এপিক টাইমার চালানো
  • pln: ইন্টেল পাওয়ার সীমা বিজ্ঞপ্তি
  • pts: ইনটেল প্যাকেজ তাপীয় স্থিতি
  • hwp: ইন্টেল হার্ডওয়্যার পি রাজ্যসমূহ
  • hwp_notify: এইচডাব্লুপি বিজ্ঞপ্তি
  • hwp_act_window: এইচডব্লিউপি ক্রিয়াকলাপ উইন্ডো
  • hwp_epp: এইচডাব্লুপি শক্তি কর্মক্ষমতা পছন্দ
  • hwp_pkg_req: এইচডাব্লুপি প্যাকেজ-স্তরের অনুরোধ

এএমডি এসভিএম বৈশিষ্ট্য সনাক্তকরণ, সিপিইউইডি স্তর 0x8000000a (edx)

  • npt: এএমডি নেস্টেড পেজ টেবিল সমর্থন
  • lbrv: এএমডি এলবিআর ভার্চুয়ালাইজেশন সমর্থন
  • svm_lock: এএমডি এসভিএম লকিং এমএসআর
  • nrip_save: এএমডি এসভিএম পরবর্তী_রাইপ সংরক্ষণ করুন
  • tsc_scale: এএমডি টিএসসি স্কেলিং সমর্থন
  • vmcb_clean: এএমডি ভিএমসিবি ক্লিন বিট সমর্থন
  • flushbyasid: এএমডি ফ্লাশ-বাই-এএসআইডি সমর্থন
  • decodeassists: এএমডি ডিকোড সহায়তা সমর্থন
  • pausefilter: এএমডি ফিল্টার বিরতি বিরতি
  • pfthreshold: এএমডি বিরতি ফিল্টার থ্রেশহোল্ড
  • avic: ভার্চুয়াল বাধা নিয়ন্ত্রণকারী
  • vmsave_vmload: ভার্চুয়াল ভিএমএসএভ ভিএমএলএড
  • vgif: ভার্চুয়াল জিআইএফ

ইন্টেল-সংজ্ঞায়িত সিপিইউ বৈশিষ্ট্যগুলি, সিপিইউইডি স্তর 0x00000007: 0 (ইক্সেক্স)

  • avx512vbmi: AVX512 ভেক্টর বিট ম্যানিপুলেশন নির্দেশাবলী
  • umip: ব্যবহারকারী মোড নির্দেশ সুরক্ষা
  • pku: ইউজারস্পেসের সুরক্ষা কী ys
  • ospke: ওএস সুরক্ষা কী সক্ষম করুন
  • avx512_vbmi2: অতিরিক্ত AVX512 ভেক্টর বিট ম্যানিপুলেশন নির্দেশাবলী
  • gfni: গ্যালোইস ফিল্ড নতুন নির্দেশ
  • vaes: ভেক্টর এইএস
  • vpclmulqdq: ক্যারি-কম গুণিত ডাবল চতুর্ভুজ
  • avx512_vnni: ভেক্টর নিউরাল নেটওয়ার্ক নির্দেশাবলী
  • avx512_bitalg: ভিপিওপিসিএনটি [বি, ডাব্লু] এবং ভিপিএসএইচএফ-বিটকিউএমবি নির্দেশাবলী instructions
  • avx512_vpopcntdq: ডিডাব্লু / কিউডব্লিউয়ের ভেক্টরগুলির জন্য পিওপিসিএনটি
  • la57: 5-স্তরের পৃষ্ঠা সারণী
  • rdpid: আরডিপিআইডি নির্দেশ

এএমডি-সংজ্ঞায়িত সিপিইউ বৈশিষ্ট্যগুলি, সিপিইউইডি স্তর 0x80000007 (ইবিএক্স)

  • overflow_recov: এমসিএ ওভারফ্লো পুনরুদ্ধার সমর্থন
  • succor: ত্রুটিযুক্ত সংশোধন এবং পুনরুদ্ধার
  • smca: স্কেলেবল এমসিএ

সনাক্ত করা সিপিইউ বাগ (লিনাক্স-সংজ্ঞায়িত)

  • f00f: ইন্টেল এফ00 এফ
  • fdiv: সিপিইউ এফডিএল
  • coma: সেরিক্স 6x86 কোমা
  • amd_tlb_mmatch: tlb_mmatchএএমডি এরটাম 383
  • amd_apic_c1e: apic_c1eএএমডি এরটাম 400
  • 11ap: স্থানীয় স্থানীয় এপিক ওরফে 11 এপি
  • fxsave_leak: এফএক্সএসএভিএফএপি / এফআইপি / এফওপি ফাঁস করে
  • clflush_monitor: এএআই 65, মনিটরের আগে সিএলএফএলএইচএইচ প্রয়োজনীয়
  • sysret_ss_attrs: SYSRET এসএস অ্যাটর্সগুলি ঠিক করে না
  • espfix: "" IRET থেকে 16-বিট এসএস ইএসপি / আরএসপি উচ্চ বিটকে দূষিত করে
  • null_seg: একটি নির্বাচক নালিং বেস সংরক্ষণ করে
  • swapgs_fence: জিএস এ ইনপুট ডিপ ছাড়াই সুইপজিএস
  • monitor: দূরবর্তী সিপিইউ জাগাতে আইপিআই প্রয়োজন I
  • amd_e400: সিপিইউ 400 এর দ্বারা ক্ষতিগ্রস্থদের মধ্যে রয়েছে
  • cpu_meltdown: সিপিইউ মেল্টডাউন আক্রমণে আক্রান্ত এবং কার্নেল পৃষ্ঠার টেবিল বিচ্ছিন্নতার প্রয়োজন
  • spectre_v1: সিপিইউ শর্তাধীন শাখাগুলি সহ স্পেকটার ভেরিয়েন্ট 1 আক্রমণ দ্বারা প্রভাবিত হয়
  • spectre_v2: সিপিইউ পরোক্ষ শাখাগুলির সাথে স্পেকটার ভেরিয়েন্ট 2 আক্রমণ দ্বারা প্রভাবিত হয়
  • spec_store_bypass: সিপিইউ স্পেকুলেটিভ স্টোর বাইপাস দুর্বলতার (স্পেকটার ভেরিয়েন্ট 4) দ্বারা প্রভাবিত হয় ।

পিএস এই তালিকাটি arch/x86/include/asm/cpufeatures.hকার্নেল উত্স থেকে প্রাপ্ত হয়েছিল । পতাকাগুলি সোর্স কোড হিসাবে একই ক্রমে তালিকাভুক্ত করা হয়েছে। বৈশিষ্ট্যগুলি অনুপস্থিত থাকাকালীন বর্ণনার সাথে লিঙ্কগুলি যুক্ত করে, একটি বৈশিষ্ট্যহীন নাম রয়েছে এমন বৈশিষ্ট্যগুলির একটি সংক্ষিপ্ত বিবরণ লিখে এবং নতুন কার্নেল সংস্করণগুলির জন্য তালিকা আপডেট করে সহায়তা করুন। বর্তমান তালিকাটি লিনাক্স 4.15 এবং কিছু পরে সংযোজনগুলি থেকে from


1
একটি তথ্যমূলক প্রশ্ন এবং এর সংক্ষিপ্ত বিবরণ এবং বিস্তারিত উত্তরের জন্য @ গিলিস এবং সম্পাদকদের ধন্যবাদ। এখন, চেক করতে যাই হোক না কেন CPU- র ক্ষমতা, আমি NixCraft থেকে নেওয়া অনুসরণ করে ইন্টেল CPU- র জন্য যেমন ব্যবহার করুন: $ egrep -wo ^flags|vmx|ept|vpid|npt|tpr_shadow|flexpriority|vnmi|lm|aes' /proc/cpuinfo --color | sort -u। এবং রয়েছে সিএলআই / জিইউআই চমৎকার আই-নেক্স
tuk0z

ব্যাখ্যা এবং লিঙ্কগুলির অসামান্য সংগ্রহ; যারা অবদান রেখেছেন তাদের সবাইকে ধন্যবাদ
পল গিয়ার

বাগগুলি কোথা থেকে এসেছে? এটি cpufeatures.h ফাইলে তালিকাভুক্ত বলে মনে হয় না।
ড্রিজিসিল

@ ড্রাজিল যতদূর আমি মনে করি সমস্ত এন্ট্রিগুলি এর নির্দেশিত সংস্করণ থেকে প্রাপ্ত cpufeatures.h। বর্ণনাগুলি আরও বোধগম্য এবং আরও তথ্যবহুল তৈরি করার জন্য সম্পাদিত হয় যেখানে কেউ এটির জন্য প্রচেষ্টা গ্রহণ করেছিল।
গিলস

@ গিলসগুলি বাগগুলি ব্যতীত সকলের ক্ষেত্রে মনে হয়। এগুলি না রেখে সেট করা যে featuresআমি সেগুলি ফাইলে দেখছি না।
ড্রাগজিল

71

এআরএম

এআরএম প্রসেসরগুলিতে features:লাইনে কয়েকটি বৈশিষ্ট্য উল্লেখ করা হয় । কেবল এআরএম আর্কিটেকচারের সাথে সরাসরি সম্পর্কিত বৈশিষ্ট্যগুলি এখানে উল্লেখ করা হয়েছে, সিলিকন প্রস্তুতকারক বা সিস্টেম-অন-চিপের জন্য নির্দিষ্ট বৈশিষ্ট্যগুলি নয়।

বৈশিষ্ট্যগুলি পতাকা সংক্ষিপ্তকরণের মুখোশ হিসাবে বৈশিষ্ট্যগুলি প্রকাশ করা হয় এমন সংকলন সময়ে প্রসেসরের ধরণের সংজ্ঞায়িত সিপিইউ আইডিটি সন্ধান read_cpuid()এবং এটির সন্ধান থেকে প্রাপ্ত হয় । সংশ্লিষ্ট স্ট্রিংগুলি ইন ইন ইনHWCAP_xxxhwcap_strsetup.c

নীচের তালিকায়, এআরএমভি 6 সিমডি নির্দেশাবলী এবং ডেটাটাইপগুলি উপস্থাপন করেছে। এআরএমভি 7 উন্নত সিমডি নির্দেশাবলী এবং ডেটাটাইপ সরবরাহ করেছে। 32-বিট এআরএম মেশিনে, neonউন্নত সিমডি সংকেত দেয়; যখন asimd64-বিট আর্ম মেশিনগুলিতে উন্নত সিমডি সংকেত দেয়।

এর বাইরে Hardware:লাইনটি প্রসেসরের মডেলকে নির্দেশ করে। মডেলের উপর নির্ভর করে /procবা অন্যান্য ফাইলের /sysমধ্যে বা বুট-টাইম কার্নেল লগ বার্তাগুলিতে অন্যান্য তথ্য থাকতে পারে । দুর্ভাগ্যক্রমে প্রতিটি এআরএম সিপিইউ প্রস্তুতকারকের প্রসেসরের বৈশিষ্ট্যগুলি রিপোর্ট করার জন্য নিজস্ব পদ্ধতি রয়েছে, যদি থাকে।



11

এক্স 86

এটি 4.1.3 x86 এবং ইন্টেল ম্যানুয়ালটিতে নিজেকে আবিষ্কার করুন

arch/x86/include/asm/cpufeature.h সম্পূর্ণ তালিকা রয়েছে।

সংজ্ঞায়িত মানগুলি হ'ল:

X*32 + Y

উদাহরণ:

#define X86_FEATURE_FPU     ( 0*32+ 0) /* Onboard FPU */

সিপিইউডি থেকে উত্তোলিত বৈশিষ্ট্যগুলি পতাকাগুলি এর মধ্যে সংরক্ষণ করা হয়:

  • __u32 x86_capability[NCAPINTS + NBUGINTS]; ক্ষেত্র
  • এর struct cpuinfo_x86 boot_cpu_data
  • সংজ্ঞায়িত x86/kernel/setup.c

যা __initফাংশনগুলির মাধ্যমে সূচনা করা হয় ।

যেখানে প্রতিটি x86_capabilityঅ্যারের উপাদান আসে:

| index | eax      | ecx | output | file        |
|-------|----------|-----|--------|-------------|
|     0 |        1 |   0 | edx    | common.c    |
|     1 | 80000001 |     | edx    | common.c    |
|     2 | 80860001 |     | edx    | transmeta.c |
|     3 |          |     |        |             |
|     4 |        1 |   0 | ecx    | common.c    |
|     5 | C0000001 |     | edx    | centaur.c   |
|     6 | 80000001 |     | ecx    | common.c    |
|     7 |          |     |        | scattered.c |
|     8 |          |     |        |             |
|     9 |        7 |   0 | ebx    | common.c    |
|    10 |        D |   1 | eax    | common.c    |
|    11 |        F |   0 | edx    | common.c    |
|    12 |        F |   1 | edx    | common.c    |

নোট:

  • খালি এন্ট্রিগুলির অর্থ: "বিভিন্ন জায়গা থেকে" বা "উপলভ্য নয়"
  • index: এর সূচক x86_capability, যেমনx86_capability[0]
  • eaxএবং exc: হেক্সে সিপিইউডির জন্য ইনপুট মান। যে ইনপুটগুলি ব্যবহার করা হয় exc, যা কম, তারা এটিকে সাবলাফ ( eaxমূলের সাথে 2 স্তরের গাছের ) বলে।
  • output: সিপিইউডি আউটপুট নেওয়া নিবন্ধক register
  • file: সেই ফাইলটি যেখানে সেই ক্ষেত্রগুলি সংজ্ঞায়িত করা হয়। পাথ সম্পর্কিত হয় arch/x86/kernel/cpu/
  • transmeta: একটি সিপিইউ বিক্রেতার নাম ছিল https://en.wikedia.org/wiki/Transmeta যা নোভাফোরা https://www.crunchbase.com/organization/novafora দ্বারা অর্জিত হয়েছিল
  • centaur: একটি সিপিইউ বিক্রেতার নাম ছিল https://en.wikedia.org/wiki/Centaur_T Technology যা ভিআইএ https://en.wikedia.org/wiki/VIA_T Technology দ্বারা অর্জিত হয়েছিল । সেরিক্স আরেকটি।

উপসংহার:

  • বেশিরভাগ এন্ট্রি সরাসরি সিপিইউডি আউটপুট রেজিস্টার থেকে আসে এবং এ জাতীয় common.cকিছু দ্বারা সেট করা থাকে :

    c->x86_capability[0] = edx;
    

    সিপিইউইডির জন্য ইন্টেল ম্যানুয়ালটিতে ব্যাচগুলি এগুলি পাওয়া সহজ।

  • অন্যরা উত্স জুড়ে ছড়িয়ে ছিটিয়ে থাকে এবং কিছুটা পরে সেট হয়ে যায় set_cpu_cap

    তাদের খুঁজে পেতে, git grep X86_FEATURE_XXXভিতরে ব্যবহার করুন arch/x86

    পার্শ্ববর্তী কোড থেকে তারা সাধারণত কোন সিপিইউডি বিটের সাথে সম্পর্কিত তা হ্রাস করতে পারেন।

অন্যান্য মজাদার ঘটনা

  • পতাকাগুলি আসলে arch/x86/kernel/cpu/proc.cকোড সহ মুদ্রিত হয় :

    seq_puts(m, "flags\t\t:");
    for (i = 0; i < 32*NCAPINTS; i++)
        if (cpu_has(c, i) && x86_cap_flags[i] != NULL)
            seq_printf(m, " %s", x86_cap_flags[i]);
    

    কোথায়:

    • cpu_has বৈশিষ্ট্যটির জন্য প্রধান পরীক্ষা করে।
    • x86_cap_flags[i] স্ট্রিং রয়েছে যা প্রতিটি পতাকার সাথে মিলে যায়।

    এটি procসিস্টেম সেটআপে কলব্যাক হিসাবে পাস হয় । এন্ট্রি পয়েন্ট এ fs/proc/cpuinfo.c

  • x86_cap_flagsস্ট্রিংগুলি এর সাথে "পার্সিং" করে arch/x86/kernel/cpu/mkcapflags.hসরাসরি থেকে উত্পাদিত হয় ...arch/x86/include/asm/cpufeature.hsed

    আউটপুটটি arch/x86/kernel/cpu/capflags.cবিল্ড ডিরেক্টরিতে চলে যায় এবং ফলাফল অ্যারে দেখে মনে হয়:

    const char * const x86_cap_flags[NCAPINTS*32] = {
        [X86_FEATURE_FPU]        = "fpu",
        [X86_FEATURE_VME]        = "vme",
    

    সুতরাং উদাহরণস্বরূপ X86_FEATURE_FPUস্ট্রিং "fpu"এবং অনুরূপ ।

  • cpu_has কোড সহ দুটি ক্ষেত্রে বিভক্ত:

    #define cpu_has(c, bit)                         \
        (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 :  \
        test_cpu_cap(c, bit))
    

    তারা হ'ল:

    • __builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit): কার্নেলটি চালানোর জন্য পতাকাটির প্রয়োজন।

      এটি অভ্যন্তরীণ ডেটা দ্বারা নির্ধারিত হয় required-features.h, যা মন্তব্য করে:

      Define minimum CPUID feature set for kernel These bits are checked
      really early to actually display a visible error message before the
      kernel dies.  Make sure to assign features to the proper mask!
      

      যেহেতু এগুলি সংকলনের সময় (কার্নেলের প্রয়োজনীয়তা) এ জানা যায়, ইতিমধ্যে প্রারম্ভের সময় পরীক্ষা করা হয়েছিল, তাই সংকলনের সময় bitজানা থাকলে চেকটি সংকলন সময়ে সমাধান করা যেতে পারে ।

      সুতরাং __builtin_constant_p(bit)যা পরীক্ষা করে যদি bitএকটি সংকলন সময় ধ্রুবক হয়।

    • test_cpu_cap: CPUIDএটি struct cpuinfo_x86 boot_cpu_dataবিশ্বব্যাপী ডেটা ব্যবহার করে


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

@ গিলিস এটি বেশিরভাগই তাদের জন্য যারা টেবিলগুলি তৈরি করতে চান / আমার মতো টেবিলটিতে তাদের বৈশিষ্ট্যটি খুঁজে পেতে পারেন না :-) তবে এখনও বেশিরভাগ ক্ষেত্রেই আপনি উত্সটির ডান পয়েন্টটি একবার দেখলে সিপিইউডিতে মানচিত্রটি অবিলম্বে।
সিরো সান্তিলি 新疆 改造 中心 法轮功 六四 事件

10

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


cpuidসংক্ষিপ্তসার প্রসারিত। আমি সত্যই এর আউটপুট ব্যাখ্যা কল করব না । যার htঅর্থ "হাইপার থ্রেডিং" এর অর্থ এটি কিছুটা ব্যাখ্যা করে, তবে এটি mmxবোঝার অর্থ "এমএমএক্স নির্দেশিকা সেট", এতটা নয়, এবং এর mcaঅর্থ "মেশিন চেক আর্কিটেকচার", খুব কমই।
গিলস

6
@ গিলিস ... এবং তবুও, "মেশিন চেক আর্কিটেকচার" অবশ্যই "এমসিএ" এর চেয়ে আরও ভাল গুগল ক্যোয়ারী;)
অ্যালোস মাহডাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.