2 पॉइंट द्वारा GN⁺ 2023-10-10 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • AM5 लॉन्च के समय स्पेक शीट से गायब हुआ ECC RAM सपोर्ट Ryzen 7000 “Raphael” और ASRock मदरबोर्ड के संयोजन में काम करता हुआ फिर से पुष्टि हुआ
  • टेस्ट Ryzen 7950X, ASRock B650E PG Riptide, UEFI 1.28, AGESA 1.0.0.7b, और v-color 32GB ECC UDIMM के 2 मॉड्यूल के साथ किया गया, और DDR5 link training के बाद Linux सफलतापूर्वक बूट हुआ
  • dmidecode में दिखने वाला 72-bit memory width और Multi-bit ECC उपयोगी संकेत हैं, लेकिन क्योंकि यह UEFI की SMBIOS जानकारी है, यह अपने आप ECC के सक्रिय होने का अंतिम प्रमाण नहीं है
  • AMD UMC को SMN के जरिए सीधे क्वेरी करने पर UmcCapHi का bit 30 ECC enabled स्थिति दिखाता है, और Linux ryzen_smu में भी दोनों memory channels के लिए यह bit set मिला
  • वास्तविक error injection नहीं किया गया, लेकिन Linux kernel के EDAC logs UMC के ECC enabled bit की पुष्टि के बाद ही निकलते हैं, इसलिए यह ECC के काम करने का मजबूत संकेत है

Ryzen डेस्कटॉप ECC सपोर्ट में बदलाव

  • AMD Ryzen डेस्कटॉप CPU में पहले से ECC RAM का आधिकारिक सपोर्ट एक बड़ी ताकत रहा है
    • Ryzen 1000~5000 सीरीज़ के अधिकांश मॉडल, सही मदरबोर्ड के साथ, महंगे workstation-grade CPU के बिना भी ECC RAM इस्तेमाल कर सकते थे
    • ASRock B550 Steel Legend specification page CPU generation के हिसाब से ECC RAM compatibility विस्तार से दिखाने का एक उदाहरण है
  • Ryzen 7000 “Raphael” और Socket AM5 के लॉन्च के समय ECC सपोर्ट का उल्लेख गायब हो गया
    • महंगे AM5 मदरबोर्ड ASRock X670E Taichi specification page पर भी, लेखन के समय तक, ECC support का कोई उल्लेख नहीं है
    • Ryzen 7950X में अपग्रेड के बाद performance से संतुष्टि थी, लेकिन खरीदते समय ECC की अनुपस्थिति बड़ी कमी लगी

ASRock फ़ोरम से शुरू हुआ AM5 ECC टेस्ट

  • ASRock forum thread में ApplesOfEpicness नाम के एक यूज़र ने AMD engineer के साथ AMD AGESA firmware में ECC RAM चलाने का अनुभव साझा किया
    • उन्होंने बताया कि updated UEFI वाले ASRock मदरबोर्ड पर data pin और ground pin को short करके यह पुष्टि की गई कि error OS तक report हुआ
  • इसके बाद टेस्ट में ASRock B650E PG Riptide और v-color 32GB ECC UDIMM के 2 मॉड्यूल इस्तेमाल किए गए
    • मदरबोर्ड UEFI को 1.28 और AGESA को 1.0.0.7b तक अपडेट किया गया
    • RAM बदलने के बाद लंबी DDR5 link training चली और फिर सिस्टम बूट हुआ
  • इस सिस्टम में 64GB RAM की link training में लगभग 3 मिनट लगे
    • Ryzen 7000 डेस्कटॉप पर यह RAM बदलने या timings बदलने के बाद केवल एक बार चाहिए, और UEFI परिणाम को cache करके बाद के boots में फिर इस्तेमाल करता है

Linux में दिखने वाले ECC संकेत और उनकी सीमाएँ

  • Linux में sudo dmidecode -t memory ECC से जुड़े मान दिखाता है
    • Error Correction Type: Multi-bit ECC
    • Total Width: 72 bits
    • Data Width: 64 bits
  • Total Width 72 bits एक खास संकेत है
    • non-ECC RAM में यह 64 bits दिखता है
    • 64-bit ECC RAM में parity data के लिए अतिरिक्त 8 bits होते हैं
  • Linux kernel का EDAC भी enabled दिखा
    • EDAC MC: Ver: 3.0.0
    • EDAC MC0: Giving out device to module amd64_edac
    • EDAC amd64: F19h_M60h detected

सिर्फ dmidecode क्यों पर्याप्त नहीं है

  • dmidecode एक ऐसा tool है जो कंप्यूटर की DMI या SMBIOS tables को इंसानों के पढ़ने लायक रूप में दिखाता है
    • इन tables में hardware components, serial numbers, BIOS revision जैसी जानकारी होती है
    • इससे hardware को सीधे probe किए बिना जानकारी मिल जाती है, लेकिन दिखाई गई जानकारी विश्वसनीय न भी हो सकती है
  • SMBIOS BIOS द्वारा बनाई गई management information को पढ़ने के लिए data structures और access methods को परिभाषित करता है
    • इससे operating system को devices को सीधे probe करने की ज़रूरत नहीं पड़ती
  • ECC से जुड़ी dmidecode जानकारी processor से नहीं, बल्कि UEFI से आती है
    • memory speed जैसी कुछ जानकारी memory controller से आ सकती है
    • लेकिन ECC जानकारी UEFI से आने के कारण यह दिखाती है कि memory ECC-capable है, पर यह गारंटी नहीं देती कि ECC वास्तव में enabled है
  • ECC enabled है या नहीं, इसका अंतिम निर्णय सिस्टम का memory controller करता है

AMD UMC को सीधे क्वेरी करने का तरीका

  • AMD processor एक bus expose करते हैं जिसे System Management Network या SMN कहा जाता है
    • इस bus का उपयोग AMD Unified Memory Controller यानी UMC को query और configure करने के लिए किया जा सकता है
  • illumos के AMD UMC documentation के अनुसार UmcCapHi register को query करके यह पता किया जा सकता है कि ECC enabled है या नहीं
    • संबंधित जानकारी public AMD Processor Programming Reference का हिस्सा नहीं है, लेकिन open source Linux और illumos kernel source से समझी जा सकती है
  • SMN तक सीधे पहुंचना जोखिम भरा है
    • खासकर write commands कंप्यूटर को गंभीर नुकसान पहुंचा सकते हैं
    • SMN पर write operations नहीं करनी चाहिए
  • illumos में Ryzen 7000 processor के दोनों memory channels को अलग-अलग query किया गया
    • channel 0 address: 0x50df4
    • channel 1 address: 0x150df4
    • दोनों channels पर return value 0x40000030 मिली
  • यहां मुख्य बिंदु bit 30 है
    • अगर यह bit set हो, तो memory controller में ECC enabled है

Linux में ryzen_smu से SMN क्वेरी

  • Linux में भी ryzen_smu driver के जरिए SMN bus तक पहुंचा जा सकता है
    • इस सिस्टम पर install करने के लिए patch की ज़रूरत पड़ी
  • driver /sys/kernel/ryzen_smu_drv/smn file उपलब्ध कराता है
    • query करने के लिए 4-byte address को little-endian format में लिखना होता है, और 4-byte result को little-endian format में पढ़ना होता है
  • Python script से दोनों channels को query करने पर परिणाम इस प्रकार मिले
    • 0x00050df4: 0x40000000
    • 0x00150df4: 0x40000000
  • return value में पहले nibble का 4 यह दिखाता है कि bit 30 set है, यानी memory controller ECC enabled होने की रिपोर्ट कर रहा है
  • Windows में भी SMUDebugTool जैसे tools से इसी तरह की query संभव हो सकती है, लेकिन उस tool के व्यवहार की गारंटी नहीं है

वास्तविक error injection और EDAC की विश्वसनीयता

  • ECC के काम करने की सबसे पक्की जांच वास्तविक error inject करना है
    • ApplesOfEpicness ने मदरबोर्ड के data pin और ground pin को short किया
    • एक और तरीका RAM overclock को अस्थिर बिंदु तक बढ़ाना है
  • इस टेस्ट में physical pin short या बार-बार RAM overclock नहीं किया गया
    • हर बार DDR5 link training में कई मिनट लगना भी overclock टेस्ट को बोझिल बनाता है
    • अब तक कोई प्राकृतिक error दर्ज नहीं हुआ
  • Linux kernel का EDAC message path AMD UMC के ECC enabled bit से जुड़ा है
    • Giving out device to module log edac_mc_add_mc_with_groups से आता है
    • यह function init_one_instance path में call होता है
    • init_one_instance केवल तब call होता है जब pvt->ops->ecc_enabled true हो
    • Ryzen 7000 यानी Zen 4 family 0x19 है, और इस स्थिति में umc_ops का umc_ecc_enabled इस्तेमाल होता है
  • umc_ecc_enabled, umc_cap_hi के UMC_ECC_ENABLED bit की जांच करता है
    • UMC_ECC_ENABLED है bit 30
    • AMD processors में EDAC MC0: Giving out device to module amd64_edac संदेश एक विश्वसनीय संकेत है कि UMC ने ECC enabled होने की रिपोर्ट की है

निष्कर्ष

  • Ryzen 7000 डेस्कटॉप CPU पर भी, कम से कम ASRock मदरबोर्ड के साथ, ECC RAM को अपेक्षाकृत आसानी से चलाया जा सकता है
  • सिर्फ dmidecode की SMBIOS-आधारित जानकारी पर्याप्त नहीं है, लेकिन UMC के bit 30 और Linux EDAC path को साथ देखकर ECC enabled स्थिति की अधिक प्रत्यक्ष पुष्टि की जा सकती है

1 टिप्पणियां

 
GN⁺ 2023-10-10
Hacker News की राय
  • मुझे प्रोसेसर अपग्रेड करना है और ECC RAM कॉन्फ़िगरेशन में काफी रुचि है
    /r/AMD पर मैंने एक पोस्ट देखी जिसमें दो लोग इस बात पर बहस कर रहे थे कि AMD प्रोसेसर या motherboard सच में ECC support करते हैं या नहीं, लेकिन समझ नहीं आया कि कौन सही है: https://www.reddit.com/r/Amd/comments/lzxqod/list_of_am4_mot...
    जानना चाहता हूं कि क्या इस लेख से यह पक्का हो जाता है कि AMD+ASRock कॉम्बिनेशन सच में ECC RAM है

    • motherboard खरीदते समय यह देखना चाहिए कि specs में ECC support साफ़ तौर पर लिखा है या नहीं
      आमतौर पर “Memory” सेक्शन में “ECC & Non-ECC, Unbuffered Memory” जैसी लाइन लिखी होती है
      “On-die ECC” शब्द से सावधान रहें, क्योंकि यह Non-ECC memory में भी मौजूद feature है और यहां जिस ECC की बात हो रही है उससे इसका संबंध नहीं है
      ECC DDR5 UDIMM खरीदना चाहिए, और गलती से ECC DDR5 RDIMM नहीं खरीदना चाहिए, जो AM5 motherboards के साथ compatible नहीं है
      ECC DDR5 UDIMM 80-bit या 72-bit चौड़ाई वाला हो सकता है; बस Non-ECC DDR5 UDIMM के 64-bit वाला न हो
      जब मैंने पहले चेक किया था, ASUS के पास ECC support वाले AM5 boards सबसे ज्यादा थे, और GPU slot के अलावा PCIe expansion अच्छा होने की वजह से PRIME X670E-PRO WIFI मुझे सबसे पसंद आया था
    • ECC में “support” के कई स्तर हो सकते हैं
      0 का मतलब बिल्कुल support नहीं—ECC RAM लगाने पर boot नहीं होगा; 1 का मतलब लगाया तो जा सकता है लेकिन ECC feature इस्तेमाल नहीं होता; 2 का मतलब circuitry मौजूद है लेकिन motherboard निर्माता ने error detection/correction verify नहीं किया; 3 का मतलब ECC feature मौजूद है और निर्माता ने verify किया है
      Supermicro जैसे server-grade board से level 3 की उम्मीद की जा सकती है
      AMD processor पर “ECC supported” दिखे तो यह जानना मुश्किल होता है कि कौन-सा level है, लेकिन Intel में अगर CPU/chipset ECC support कहता है तो माना जा सकता है कि यह सच में support करता है
    • ASRock के बारे में पता नहीं, लेकिन ASUS X570 board पर ECC पक्का काम करता है
      मैंने जानबूझकर खराब ECC DIMM इस्तेमाल करके कम समय में correctable errors और uncorrectable errors पैदा कर लिए थे
      जब बाकी components मौजूद हैं तो ASRock ने wiring नहीं की होगी, इसकी संभावना कम लगती है; अगर kernel कहता है कि ECC है, तो मैं उसे सही मानूंगा
      नहीं तो board को defective बताकर return कर दें और किसी दूसरे निर्माता का इस्तेमाल करें
    • मैं X570 और B550 ASRock boards पर ECC इस्तेमाल कर रहा हूं, और ASRock काफी समय से unbuffered ECC allow करता आया है
      हालांकि mini-ITX/mATX X670E board न होना अफसोस की बात है। वह सिर्फ ASUS के पास है
    • मैं ASRock X570 PG 4S + Ryzen 5 2600 + Kingston 32GB 2666 ECC कॉम्बिनेशन इस्तेमाल कर रहा हूं, और इस board की CPU/memory support list में भी लिखा है कि इस configuration में ECC काम करता है
      dmidecode 72-bit के बजाय 128-bit data width report करता है, लेकिन single-bit ही नहीं, multi-bit correction भी report करता है
      Intel boards के UDIMM, जैसे Supermicro+Xeon में मैं 72-bit देखने का आदी था, लेकिन यह जानकारी actual hardware support के बजाय memory controller और motherboard की reporting style से प्रभावित लगती है
      फिर भी EDAC काम करता है, सही driver register होता है, और EDAC/RAS से कभी-कभी यह warning मिलती है कि correctable error सच में correct किया गया, इसलिए मेरे हिसाब से यह मामला तय है
  • थोड़ा विषय से हटकर, लेकिन पुराने AM4 platform और Zen3 APU cores पर भी काम करने वाला ECC support इस तरह दिखता है और मेरे system में यह निश्चित रूप से मौजूद है
    कॉम्बिनेशन ASRock B550M-ITX/ac और AMD Ryzen 5 PRO 5650G है, और पहले Ryzen 5 3600 व dedicated GPU इस्तेमाल करते समय भी यह इसी तरह काम करता था
    आधुनिक GNU/Linux में ECC activity detect और log करने के लिए rasdaemon service enable करनी होती है
    यह service MCE और अन्य hardware-related errors को interpret करके database में store करती है, और ऊपर query किया गया output भी उसी का result है

    • इस स्तर की error frequency हो तो बिना ECC वाले computer से निकली जानकारी पर भरोसा करना मुश्किल लग सकता है
      हालांकि दोबारा सोचने पर frequency काफी ज्यादा है, इसलिए memory module खराब भी हो सकता है। खासकर इसलिए कि हर बार वही module और वही address है
    • APU में PRO SKU को छोड़कर ECC support से स्पष्ट रूप से बाहर रखा गया है
      https://www.asus.com/global/support/FAQ/1045186/
    • मैंने Gigabyte B550I system में ECC RAM लगाया है, dmidecode 72-bit width दिखाता है और dmesg | grep -i EDAC भी बहुत सारी ऐसी जानकारी दिखाता है जिससे लगता है कि ECC on है
      लेकिन उस command का output खाली है और सिर्फ “No Memory errors”, “No PCIe AER errors”, “No Extlog errors”, “No MCE errors” दिखता है
      क्या errors log होने के लिए कुछ enable करना पड़ेगा, या मैं dmidecode और dmesg से धोखा खा रहा हूं?
    • जानना चाहूंगा कि आप कौन-सा memory module इस्तेमाल कर रहे हैं
  • अच्छा लेख है। मैं अपने Threadripper बोर्ड पर भी ECC RAM इस्तेमाल कर रहा हूँ
    Blekko ऑपरेशंस टीम ने Intel बोर्डों में जो चीज़ें पाईं, उनमें से एक यह थी कि बोर्ड को स्पष्ट रूप से बताना पड़ता था कि वह सुधार योग्य errors को सच में report करे
    default यह था कि अगर unrecoverable error हो तो machine check दे, और बाकी मामलों को बस छोड़ दे
    मुझे याद है कि करीब 1600 192GB सिस्टमों में हम लगभग हफ्ते में एक बार सुधार योग्य error देखते थे
    6 साल में एक भी unrecoverable error याद नहीं है, इसलिए यह काफी अच्छा था

    • आपकी किस्मत और अच्छी रही। हमारे सिस्टम बिना अलग से request किए भी सुधार योग्य errors report करते थे
      हमारे पास मिलते-जुलते scale के उपकरण और औसतन करीब उतनी ही RAM capacity थी, और कभी-कभी unrecoverable errors भी होते थे। शायद साल में एक-दो बार, इसलिए एक policy बन गई थी
      देखते थे कि क्या यह सिर्फ एक बार हुआ है; अगर जल्द दोबारा fail नहीं हुआ तो ठीक मानते थे, और अगर जल्द दोबारा fail हुआ तो RAM बदल देते थे
      बेहतर server boards LED से यह भी बता देते हैं कि कौन-सा RAM module बदलना है
      सुधार योग्य errors के मामले में, जब तक count काफी बड़ा नहीं हो जाता था, हम replace नहीं करते थे; और दिन में एक-दो errors देने वाले सिस्टम भी लंबे समय तक ठीक चलते रहे
      इसके उलट, कुछ सिस्टम लंबे समय तक 0 पर रहते, फिर कुछ दिनों तक थोड़ी संख्या में errors आते और फिर अचानक बहुत बड़े आंकड़े तक पहुँच जाते
      एक सिस्टम तो प्रति घंटे हजारों तक पहुँच गया था, और machine check exception handling की लागत के कारण सिस्टम इस्तेमाल के लायक नहीं रहा; लेकिन reporting interval 1 घंटा था, इसलिए अगली report आने तक कारण पता नहीं था
  • अभी Ryzen 3700X और ASUS TUF Gaming X570 motherboard इस्तेमाल कर रहा हूँ, और मुझे single-core performance और NVMe/disk speed की ज़्यादा जरूरत है
    dual GPU, 2 M.2 NVMe और 6 SATA पहले से इस्तेमाल कर रहा हूँ
    साल के आखिर में upgrade पर विचार कर रहा हूँ; PCIe lanes की वजह से Threadripper के बारे में भी थोड़ा सोचा था, लेकिन Zen4 Threadripper अभी नहीं है और कीमत भी बहुत ज्यादा होने की संभावना है
    विकल्प यह हैं कि Ryzen 5900X पर जाऊँ और बाकी सब वैसा ही रखूँ, या ज्यादा पैसे खर्च करके AM5 Ryzen और नया motherboard लूँ
    Intel भी देखा, लेकिन PCIe lanes 20 पर खत्म होते देखकर उसे छोड़ने की तरफ झुक गया
    मैं 10Gb adapter जोड़कर कुछ spinning disks को बाहर निकालना चाहता हूँ, इसलिए ज्यादा PCIe lanes चाहिए
    3700X की multicore performance पर्याप्त है, और अगर नया motherboard खरीदूँ तो speed के लिए कम से कम 2 NVMe mirror और 6 या उससे अधिक SATA ports चाहिए

    • मैंने दो NVMe को mirror करके इस्तेमाल किया है, लेकिन maximum performance पाने में ध्यान रखने वाली कई बातें हैं
      AMD के बारे में नहीं जानता, लेकिन Intel boards में आम तौर पर सिर्फ एक M.2 slot सीधे CPU से जुड़ा होता है और बाकी तीन chipset से होकर जाते हैं, इसलिए वे 10Gb Ethernet card के साथ भी bottleneck share करते हैं
      आखिरकार PCIe 5.0 support वाला board और पर्याप्त बड़ा single SSD खरीदना कहीं ज्यादा तेज निकला, और total IOPS व throughput दोनों पुराने RAID 0 array से अधिक थे
    • उत्सुक हूँ कि किस workload में NVMe speed bottleneck बनती है
    • मैं 5900X इस्तेमाल कर रहा हूँ, और लगता है कि इंतज़ार करके 5800X3D खरीदना बेहतर होता
    • अगर और चाहिए, तो कीमत करीब 4/3 गुना लेकिन core count दोगुना देने वाले 5950X पर जाना बेहतर है, या Factorio UPS के लिए 3D cache CPU पर विचार करना चाहिए
      5900X उतना बड़ा upgrade नहीं है
  • संदर्भ के तौर पर, Hetzner कुछ महीनों से ECC RAM लगे Ryzen 7000 CPU servers दे रहा है
    https://www.hetzner.com/dedicated-rootserver/matrix-ax
    AX52 में ECC RAM optional upgrade के रूप में मिलता है, और AX102 में ECC default रूप से शामिल है
    ऐसा नहीं लगता कि उन्होंने ऐसा ECC दिया होगा जो वास्तव में काम ही न करता हो

    • मेरी जानकारी में Hetzner अपने motherboard खुद बनाता है या बनवाता है
      इसलिए वे शुरू से अंत तक ECC support पक्का सुनिश्चित कर सकते होंगे
  • काश lawmakers होश में आएँ और ECC को अनिवार्य कर दें
    यह असहज करने वाली बात है कि ज्यादातर computing कमजोर Non-ECC systems पर होती है
    यह artificial market segmentation का बहुत ही घटिया रूप है

    • शायद आपने वे hearings नहीं देखीं जिनमें सांसदों ने Zuck जैसे लोगों को बुलाकर पूछा था कि mobile phone कैसे इस्तेमाल करते हैं
      ऐसे लोगों से ECC पर कानून बनाने की उम्मीद कैसे कर सकते हैं
    • Non-ECC systems को कमजोर कहना मुश्किल है, जब वे 99.9999% समय पूरी तरह ठीक काम करते हैं
    • अक्सर सुनता हूँ कि Non-ECC machines पूरी तरह कमजोर हैं, और calculation के हिसाब से लगता है कि bit flips लगातार होते रहने चाहिए
      लेकिन मेरा Intel system 64GB Non-ECC RAM के साथ रोज आधा दिन चलता है और रात में hibernate होता है; 3D CAD, Photoshop, ढेर सारे extensions वाला VS Code, और WSL2 Docker containers चलाने पर भी मुझे errors लगभग नहीं दिखते
      crash या blue screen भी नहीं होती
      bit flip errors से ठीक-ठीक क्या उम्मीद करनी चाहिए, यह जानना चाहता हूँ। अगर 64GB RAM लगभग पूरी भरी होने पर single bit flips इतने बार हो रहे हों, तो वे किसी न किसी तरह सामने आने चाहिए, ऐसा लगता है
  • पिनों को फिजिकली शॉर्ट करने की हिम्मत नहीं है, और DDR5 link training का हर बार कई मिनट इंतजार करते हुए RAM को धीरे-धीरे overclock करने का धैर्य भी नहीं है
    इसलिए मैं इस बात से संतुष्ट हूं कि memory controller रिपोर्ट कर रहा है कि ECC चालू है
    इसके बजाय RAM पर hair dryer की गर्म हवा मारना कैसा रहेगा? पहले errors पैदा करने के लिए ऐसी technique इस्तेमाल होते देखी है

    • पास से propane barbecue lighter इस्तेमाल करें तो काम हो जाना चाहिए। ऐसी चीजें बेतुकी मात्रा में electromagnetic interference पैदा करती हैं
      https://hackaday.com/2022/01/29/blast-chips-with-this-bbq-li...
      https://hackaday.com/tag/emfi/
    • ज्यादा practical तरीके से, चलते हुए system में memory overclock को कुछ हद तक real time में adjust किया जा सकता है, और link training की जरूरत भी नहीं होती
      वास्तविक इस्तेमाल के लिए recommended नहीं है, लेकिन memory limits खोजने या errors पैदा करने में काम आ सकता है
    • क्या Rowhammer test से यह confirm किया जा सकता है कि system में ECC RAM है?
      मेरे I7-4770K non-overclocked system पर errors दिख जाते हैं, लेकिन पुराने Supermicro X10 generation boards पर Rowhammer test अनिश्चित समय तक चलाने पर भी errors detect होते नहीं लगते
      हालांकि अगर modern systems को Rowhammer attacks के प्रति vulnerable न रहने के लिए design किया गया है, तो यह तरीका काम नहीं कर सकता
      Raspberry Pi 4B और CM4 की RAM के बारे में कहा जाता है कि वे ECC RAM इस्तेमाल करते हैं, लेकिन यह यहां बताई जा रही ECC से अलग है
      यह on-die ECC है और chip yield सुधारने के उद्देश्य से है; ECC errors hardware के जरिए report नहीं होते और correct कर दिए जाते हैं
      uncorrectable ECC errors शायद बस गलत data के रूप में read होंगे
      सोच रहा हूं कि क्या modern RAM modules भी on-die ECC वाले chips इस्तेमाल करते हैं
    • क्या बस फोन को DIMM के पास ले जाकर errors trigger नहीं किए जा सकते? यह आसानी से आजमाया जा सकता है
    • 10 साल लगातार चलने वाले high-speed I/O PCBA में BGA को फिर से पिघलाकर जोड़ने की संभावना पैदा करना, diode-protected pins की एक pair को short करने से ज्यादा risky लगता है
      link training को BIOS में बंद किया जा सकता है, जिससे borderline bandwidth settings जल्दी खोजी जा सकती हैं
      results बहुत repeatable नहीं होंगे, लेकिन वह important नहीं है
  • कुछ, शायद सभी ASUS AM5 motherboards में official ECC support है
    जिस model को मैंने अभी check किया, उसके board manual और BIOS manual दोनों में यह लिखा है
    संबंधित BIOS settings में से एक का default Auto है, लेकिन intuition के उलट इस state में यह disabled रहता है, इसलिए इसे बदलना होगा
    इन processors के लिए ECC reporting Linux 6.5 में आई, इसलिए Debian Stable users को इसके Backports में आने का इंतजार करना होगा या standard path से हटना होगा
    https://www.phoronix.com/news/AMD-EDAC-Ryzen-7000-Series

    • BIOS की Auto setting से सच में चिढ़ है
      अगर actual applied value दिख जाए तो फिर भी ठीक है, लेकिन दस में से नौ बार यह clear नहीं होता
  • अफवाह है कि पुराने AGESA versions में एक bug था, जिसकी वजह से chipset ECC RAM को ठीक से पहचान और इस्तेमाल नहीं कर पाता था
    जबकि कहा जाता है कि उस chipset को support करना चाहिए था
    जिस motherboard पर विचार कर रहे हैं, उसके लिए check करना चाहिए कि कम-से-कम AGESA 1.0.0.5 patch C वाला firmware update उपलब्ध है या नहीं
    https://www.reddit.com/r/truenas/comments/10lqofy/
    AGESA AMD system firmware का हिस्सा है, जो core system components को initialize करता है: https://en.wikipedia.org/wiki/AGESA

    • ASRock forum thread को देखें तो बात सही लगती है
      ECC RAM install करने से पहले मैंने AGESA 1.0.0.7b पर update किया था
  • मुझे नहीं पता था कि Ryzen 7000 series ECC support को officially specify नहीं करती

    • यह post करने के बाद पता चला कि officially ECC support करने वाले AM5 motherboards मौजूद हैं
      उदाहरण के लिए ASRock Rack line support करती है: https://www.asrockrack.com/general/productdetail.asp?Model=1...
      यह ASUS motherboard भी ECC support का दावा करता है: https://www.asus.com/us/motherboards-components/motherboards...
      दोनों तब उपलब्ध नहीं थे जब मैंने पहली बार AM5 motherboard खरीदा था। launch के ठीक बाद था और performance numbers इतने अच्छे थे कि मैंने जल्दी खरीद लिया
    • आपने author की बात गलत समझी है
      currently बिक रहे सभी Ryzen 7000 series CPUs में official ECC support है, लेकिन motherboard support भी जरूरी है
      ऐसी conditional ECC support AMD के consumer CPUs में Athlon 64 तक पीछे से मौजूद रही है, लेकिन Ryzen 7000 series में AMD marketing material में इसे लिखे देखना शायद पहली बार है
      author का मतलब था कि ASRock motherboard documentation से ECC support का mention गायब हो गया था
      ASRock पहले के Ryzen motherboards में ECC support specify करता रहा है, इसलिए यह noticeable change था
      Ryzen 5 7600 specifications page example: https://www.amd.com/en/product/12756#:~:text=ECC%20Support,R...)
    • इस साल से पहले तक यह काफी ambiguous था और साफ तौर पर mention नहीं किया गया था
      ऊपर से यह सभी DDR5 द्वारा इस्तेमाल की जाने वाली on-chip ECC से भी confuse हो जाता है
      DDR5 को normal operation के दौरान होने वाली errors correct करने के लिए on-chip ECC की जरूरत होती है, लेकिन यह memory bus के जरिए CPU तक भेजे जाने वाले data की protection करने वाली ECC नहीं है