2 điểm bởi GN⁺ 2023-10-10 | 1 bình luận | Chia sẻ qua WhatsApp
  • Hỗ trợ RAM ECC, vốn từng biến mất khỏi bảng thông số khi AM5 ra mắt, nay được xác nhận lại qua một trường hợp hoạt động với tổ hợp Ryzen 7000 “Raphael” và bo mạch chủ ASRock
  • Thử nghiệm được thực hiện với Ryzen 7950X, ASRock B650E PG Riptide, UEFI 1.28, AGESA 1.0.0.7b và 2 thanh v-color 32GB ECC UDIMM; hệ thống khởi động Linux thành công sau quá trình huấn luyện liên kết DDR5
  • Độ rộng bộ nhớ 72 bit và hiển thị Multi-bit ECC trong dmidecode là manh mối hữu ích, nhưng vì đây là thông tin SMBIOS từ UEFI nên riêng nó không chứng minh được ECC đã được kích hoạt
  • Khi truy vấn trực tiếp AMD UMC qua SMN, bit 30 của UmcCapHi cho biết trạng thái kích hoạt ECC; trên Linux, ryzen_smu cũng xác nhận giá trị có bit tương ứng được đặt ở cả hai kênh bộ nhớ
  • Dù chưa thực hiện bơm lỗi thực tế, log EDAC của nhân Linux được xuất ra theo đường dẫn kiểm tra bit kích hoạt ECC của UMC, nên đây là căn cứ mạnh để đánh giá ECC có hoạt động hay không

Sự thay đổi trong hỗ trợ ECC trên Ryzen desktop

  • CPU desktop AMD Ryzen từ trước đến nay có một điểm mạnh là hỗ trợ chính thức RAM ECC
    • Phần lớn dòng Ryzen 1000~5000 có thể dùng RAM ECC khi kết hợp với bo mạch chủ phù hợp, không cần CPU cấp workstation đắt tiền hơn
    • Trang thông số ASRock B550 Steel Legend là ví dụ hiển thị chi tiết thông tin tương thích RAM ECC theo từng thế hệ CPU
  • Tại thời điểm Ryzen 7000 “Raphael” và Socket AM5 ra mắt, các đề cập đến hỗ trợ ECC đã biến mất
    • Ngay cả trên trang thông số ASRock X670E Taichi, một bo mạch chủ AM5 cao cấp, tại thời điểm viết bài cũng không có đề cập đến hỗ trợ ECC
    • Sau khi nâng cấp lên Ryzen 7950X, hiệu năng rất đáng hài lòng, nhưng việc thiếu ECC tại thời điểm mua vẫn là một điểm tiếc nuối lớn

Thử nghiệm ECC trên AM5 bắt đầu từ diễn đàn ASRock

  • Trong chủ đề trên diễn đàn ASRock, một người dùng tên ApplesOfEpicness đã chia sẻ trải nghiệm làm RAM ECC hoạt động trong firmware AMD AGESA cùng với một kỹ sư AMD
    • Người này cho biết đã xác nhận lỗi được báo lên tận OS bằng cách nối tắt chân dữ liệu và chân ground trên bo mạch chủ ASRock có UEFI đã cập nhật
  • Các thử nghiệm sau đó sử dụng ASRock B650E PG Riptide2 thanh v-color 32GB ECC UDIMM
    • UEFI của bo mạch chủ được cập nhật lên 1.28, AGESA lên 1.0.0.7b
    • Sau khi thay RAM, quá trình huấn luyện liên kết DDR5 diễn ra khá lâu rồi hệ thống khởi động được
  • Trên hệ thống này, việc huấn luyện liên kết cho 64GB RAM mất gần 3 phút
    • Trên Ryzen 7000 desktop, việc này chỉ cần thực hiện một lần sau khi thay RAM hoặc đổi timing; UEFI sẽ cache kết quả và tái sử dụng ở các lần khởi động sau

Các hiển thị ECC thấy được trên Linux và giới hạn của chúng

  • Trên Linux, sudo dmidecode -t memory hiển thị các giá trị liên quan đến ECC
    • Error Correction Type: Multi-bit ECC
    • Total Width: 72 bits
    • Data Width: 64 bits
  • Total Width 72 bits là tín hiệu đáng chú ý
    • Với RAM không ECC, giá trị này hiển thị là 64 bit
    • RAM ECC 64 bit có thêm 8 bit dành cho dữ liệu parity
  • EDAC của nhân Linux cũng có vẻ đã được kích hoạt
    • EDAC MC: Ver: 3.0.0
    • EDAC MC0: Giving out device to module amd64_edac
    • EDAC amd64: F19h_M60h detected

Vì sao chỉ dmidecode là chưa đủ

  • dmidecode là công cụ xuất bảng DMI hoặc SMBIOS của máy tính dưới dạng con người đọc được
    • Các bảng này chứa thông tin như thành phần phần cứng, số serial, phiên bản BIOS
    • Không cần thăm dò trực tiếp phần cứng thực tế, nhưng thông tin hiển thị có thể không đáng tin cậy
  • SMBIOS định nghĩa cấu trúc dữ liệu và phương thức truy cập để đọc thông tin quản lý do BIOS tạo ra
    • Nhờ đó hệ điều hành không cần thăm dò trực tiếp thiết bị
  • Thông tin dmidecode liên quan đến ECC đến từ UEFI, không phải bộ xử lý
    • Một số thông tin, như tốc độ bộ nhớ, có thể đến từ bộ điều khiển bộ nhớ
    • Thông tin ECC đến từ UEFI, nên dù nó cho thấy bộ nhớ có khả năng ECC, nó không bảo đảm ECC thực sự đã được kích hoạt
  • Việc ECC có được kích hoạt hay không cuối cùng do bộ điều khiển bộ nhớ của hệ thống quyết định

Cách truy vấn trực tiếp AMD UMC

  • Bộ xử lý AMD phơi bày một bus gọi là System Management Network, tức SMN
    • Bus này có thể được dùng để truy vấn và cấu hình AMD Unified Memory Controller, tức UMC
  • Dựa trên tài liệu AMD UMC của illumos, có thể kiểm tra ECC đã được kích hoạt hay chưa bằng cách truy vấn thanh ghi UmcCapHi
    • Thông tin liên quan không nằm trong AMD Processor Programming Reference công khai, mà có thể suy ra từ mã nguồn kernel Linux và illumos mã nguồn mở
  • Truy cập trực tiếp SMN rất nguy hiểm
    • Đặc biệt, lệnh ghi có thể làm hỏng nghiêm trọng máy tính
    • Không nên thực hiện thao tác ghi lên SMN
  • Trên illumos, hai kênh bộ nhớ của bộ xử lý Ryzen 7000 được truy vấn riêng
    • Địa chỉ kênh 0: 0x50df4
    • Địa chỉ kênh 1: 0x150df4
    • Giá trị trả về ở cả hai kênh đều là 0x40000030
  • Điểm cốt lõi là bit 30
    • Nếu bit này được đặt, ECC đang được kích hoạt trong bộ điều khiển bộ nhớ

Truy vấn SMN bằng ryzen_smu trên Linux

  • Trên Linux cũng có thể truy cập bus SMN bằng driver ryzen_smu
    • Trên hệ thống này, cần bản vá để cài đặt
  • Driver cung cấp file /sys/kernel/ryzen_smu_drv/smn
    • Để truy vấn, ghi địa chỉ 4 byte ở dạng little-endian, rồi đọc kết quả 4 byte ở dạng little-endian
  • Kết quả truy vấn hai kênh bằng script Python như sau
    • 0x00050df4: 0x40000000
    • 0x00150df4: 0x40000000
  • Chữ số 4 ở nibble đầu tiên trong giá trị trả về nghĩa là bit 30 đã được đặt, và bộ điều khiển bộ nhớ đang báo ECC đã được kích hoạt
  • Trên Windows, có thể truy vấn tương tự bằng các công cụ như SMUDebugTool, nhưng hoạt động của công cụ này không được bảo đảm

Bơm lỗi thực tế và độ tin cậy của EDAC

  • Cách chắc chắn nhất để kiểm chứng ECC hoạt động là bơm lỗi thực tế
    • ApplesOfEpicness đã nối tắt chân dữ liệu và chân ground trên bo mạch chủ
    • Một cách khác là đẩy ép xung RAM lên mức không ổn định
  • Trong thử nghiệm này, không thực hiện nối tắt chân vật lý hay ép xung RAM lặp đi lặp lại
    • Việc huấn luyện liên kết DDR5 mất vài phút mỗi lần cũng làm thử nghiệm ép xung trở nên nặng nề hơn
    • Cho đến hiện tại chưa quan sát thấy lỗi phát sinh tự nhiên nào
  • Đường dẫn thông báo EDAC của nhân Linux được liên kết với bit kích hoạt ECC của AMD UMC
    • Log Giving out device to module xuất phát từ edac_mc_add_mc_with_groups
    • Hàm này được gọi trong đường dẫn init_one_instance
    • init_one_instance chỉ được gọi khi pvt->ops->ecc_enabled là true
    • Ryzen 7000, tức Zen 4, thuộc family 0x19; trong trường hợp này umc_ecc_enabled của umc_ops được dùng
  • umc_ecc_enabled kiểm tra bit UMC_ECC_ENABLED của umc_cap_hi
    • UMC_ECC_ENABLEDbit 30
    • Trên bộ xử lý AMD, thông báo EDAC MC0: Giving out device to module amd64_edac là một chỉ dấu đáng tin cậy rằng UMC đã báo ECC được kích hoạt

Kết luận

  • Ngay cả với CPU desktop Ryzen 7000, ít nhất khi kết hợp với bo mạch chủ ASRock, có thể làm RAM ECC hoạt động khá dễ dàng
  • Chỉ thông tin dựa trên SMBIOS của dmidecode là chưa đủ, nhưng khi xem cùng bit 30 của UMC và đường dẫn EDAC trên Linux, có thể xác nhận trực tiếp hơn trạng thái kích hoạt ECC

1 bình luận

 
GN⁺ 2023-10-10
Ý kiến trên Hacker News
  • Tôi cần nâng cấp bộ xử lý và rất quan tâm đến cấu hình RAM ECC
    Tôi đã thấy một bài trên /r/AMD nơi hai người tranh luận liệu bộ xử lý hoặc bo mạch chủ AMD có thực sự hỗ trợ ECC hay không, nhưng không biết ai đúng: https://www.reddit.com/r/Amd/comments/lzxqod/list_of_am4_mot...
    Tôi muốn biết liệu bài này có xác nhận rằng tổ hợp AMD+ASRock thật sự là RAM ECC hay không

    • Khi mua bo mạch chủ, cần kiểm tra xem thông số có ghi rõ hỗ trợ ECC hay không
      Thường trong mục “Memory” sẽ ghi kiểu như “ECC & Non-ECC, Unbuffered Memory”
      Cần lưu ý rằng cụm “On-die ECC” là tính năng cũng có trên bộ nhớ Non-ECC, nên không liên quan đến ECC đang nói ở đây
      Phải mua ECC DDR5 UDIMM, và đừng mua nhầm ECC DDR5 RDIMM vốn không tương thích với bo mạch chủ AM5
      ECC DDR5 UDIMM có thể có độ rộng 80 bit hoặc 72 bit, miễn là không phải 64 bit như Non-ECC DDR5 UDIMM
      Lần trước khi tôi kiểm tra, ASUS có nhiều bo AM5 hỗ trợ ECC nhất, và tôi thích PRIME X670E-PRO WIFI nhất vì khả năng mở rộng PCIe ngoài khe GPU cũng tốt
    • “Hỗ trợ” trong ECC có thể có nhiều cấp độ
      Cấp 0 là hoàn toàn không hỗ trợ, đến mức cắm RAM ECC vào thì không khởi động được; cấp 1 là có thể cắm nhưng không dùng chức năng ECC; cấp 2 là có mạch nhưng nhà sản xuất bo mạch chủ chưa xác minh việc phát hiện/sửa lỗi; cấp 3 là có chức năng ECC và đã được nhà sản xuất xác minh
      Với bo cấp máy chủ như Supermicro, có thể kỳ vọng cấp 3
      Khi thấy “ECC supported” trên bộ xử lý AMD thì khó biết đó là cấp nào, nhưng với Intel, nếu CPU/chipset nói hỗ trợ ECC thì có thể xem là thực sự hỗ trợ
    • Tôi không rõ ASRock thế nào, nhưng bo ASUS X570 chắc chắn chạy được ECC
      Tôi đã cố ý dùng ECC DIMM lỗi để tạo ra lỗi có thể sửa và lỗi không thể sửa trong thời gian ngắn
      Khi các thành phần khác đều đã đầy đủ thì khả năng ASRock không đi dây là thấp, nhưng nếu kernel nói có ECC thì tôi cho là đúng
      Nếu không thì cứ trả bo vì lỗi và dùng nhà sản xuất khác
    • Tôi đang dùng ECC trên các bo ASRock X570 và B550, và ASRock đã cho phép ECC unbuffered từ khá lâu rồi
      Chỉ tiếc là không có bo mini-ITX/mATX X670E. Loại đó chỉ ASUS có
    • Tôi đang dùng tổ hợp ASRock X570 PG 4S + Ryzen 5 2600 + Kingston 32GB 2666 ECC, và danh sách hỗ trợ CPU/bộ nhớ của bo này cũng nói ECC hoạt động với cấu hình này
      dmidecode báo độ rộng dữ liệu 128 bit chứ không phải 72 bit, nhưng cũng báo cả sửa lỗi đa bit chứ không chỉ một bit
      Trên bo Intel dùng UDIMM, chẳng hạn Supermicro+Xeon, tôi quen thấy 72 bit, nhưng thông tin này có vẻ chịu ảnh hưởng từ cách bộ điều khiển bộ nhớ và bo mạch chủ báo cáo hơn là hỗ trợ phần cứng thực tế
      Dù vậy, EDAC hoạt động, driver đúng được đăng ký, và thỉnh thoảng tôi nhận được cảnh báo từ EDAC/RAS rằng lỗi có thể sửa đã thực sự được sửa, nên tôi xem thế là đã đủ kết luận
  • Hơi lạc đề một chút, nhưng hỗ trợ ECC hoạt động cả trên nền tảng AM4 cũ và nhân APU Zen3 trông như thế này, và chắc chắn tồn tại trên hệ thống của tôi
    Tôi dùng ASRock B550M-ITX/ac với AMD Ryzen 5 PRO 5650G, và trước đây khi dùng Ryzen 5 3600 cùng GPU rời thì nó cũng hoạt động y hệt
    Trên GNU/Linux mới, để phát hiện và ghi lại hoạt động ECC, cần bật dịch vụ rasdaemon
    Dịch vụ này diễn giải MCE và các lỗi liên quan đến phần cứng khác rồi lưu vào cơ sở dữ liệu; đầu ra được truy vấn ở trên cũng là kết quả của việc đó

    • Với tần suất lỗi như vậy, cũng dễ cảm thấy khó tin tưởng thông tin từ máy tính không có ECC
      Tuy nhiên nghĩ lại thì tần suất khá cao, nên có thể mô-đun bộ nhớ đã hỏng. Đặc biệt là lần nào cũng cùng mô-đun và cùng địa chỉ
    • APU được loại trừ rõ ràng khỏi diện hỗ trợ ECC, ngoại trừ PRO SKU
      https://www.asus.com/global/support/FAQ/1045186/
    • Tôi đã lắp RAM ECC vào hệ thống Gigabyte B550I, dmidecode hiển thị độ rộng 72 bit và dmesg | grep -i EDAC cũng cho thấy khá nhiều thông tin như ECC đã bật
      Nhưng đầu ra của lệnh đó trống, và chỉ có “No Memory errors”, “No PCIe AER errors”, “No Extlog errors”, “No MCE errors”
      Tôi thắc mắc có cần bật thứ gì để lỗi được ghi lại không, hay là tôi đã bị dmidecodedmesg đánh lừa
    • Tôi tò mò bạn đang dùng mô-đun bộ nhớ nào
  • Bài hay. Trên bo mạch Threadripper của tôi cũng đang dùng ECC RAM
    Một trong những điều đội vận hành Blekko phát hiện trên bo mạch Intel là phải báo rõ cho bo mạch rằng hãy thực sự báo cáo các lỗi có thể sửa được
    Mặc định là nếu có lỗi không thể khôi phục thì phát machine check, còn những lỗi khác thì bỏ qua
    Tôi nhớ trên khoảng 1600 hệ thống 192GB, chúng tôi thấy lỗi có thể sửa được khoảng mỗi tuần 1 lần
    Trong 6 năm tôi không nhớ có lỗi không thể khôi phục nào, nên như vậy là khá tốt

    • Các bạn có phần may mắn hơn. Hệ thống của chúng tôi báo cáo lỗi có thể sửa được mà không cần yêu cầu riêng
      Chúng tôi có quy mô thiết bị tương tự và dung lượng RAM trung bình cũng gần như vậy, và thỉnh thoảng cũng có lỗi không thể khôi phục. Có lẽ mỗi năm một hai lần, nên đã có chính sách xử lý
      Theo dõi xem đó có phải chỉ xảy ra một lần hay không; nếu không sớm lỗi lại thì coi là ổn, còn nếu sớm lỗi lại thì thay RAM
      Các bo mạch máy chủ tốt hơn còn dùng LED để cho biết cần thay mô-đun RAM nào
      Với lỗi có thể sửa được thì chúng tôi không thay cho đến khi số lần khá lớn; có hệ thống lỗi một hai lần mỗi ngày nhưng vẫn chạy tốt trong thời gian dài
      Ngược lại cũng có hệ thống lâu nay 0 lỗi, rồi trong vài ngày xuất hiện một số ít lỗi trước khi nhảy vọt lên con số lớn
      Một hệ thống tăng tới hàng nghìn lỗi mỗi giờ, đến mức không dùng nổi vì chi phí xử lý ngoại lệ machine check, nhưng chu kỳ báo cáo là 1 giờ nên trước lần báo cáo tiếp theo chúng tôi không biết nguyên nhân
  • Hiện tôi dùng Ryzen 3700X và bo mạch chủ ASUS TUF Gaming X570, và cần thêm hiệu năng đơn nhân cũng như tốc độ NVMe/đĩa
    Tôi đã dùng GPU kép, 2 M.2 NVMe và 6 SATA
    Tôi đang cân nhắc nâng cấp cuối năm; vì số lane PCIe nên cũng từng nghĩ thoáng qua đến Threadripper, nhưng Zen4 Threadripper vẫn chưa có và giá có lẽ sẽ rất cao
    Các lựa chọn là nâng lên Ryzen 5900X và giữ nguyên phần còn lại, hoặc chi thêm tiền để chuyển sang AM5 Ryzen cùng bo mạch chủ mới
    Tôi cũng đã xem Intel, nhưng thấy số lane PCIe dừng ở 20 nên nghiêng về việc loại ra
    Tôi muốn thêm adapter 10Gb để đưa một phần đĩa quay ra ngoài, nên cần nhiều lane PCIe hơn
    Hiệu năng đa nhân của 3700X là đủ, và nếu mua bo mạch chủ mới thì vì tốc độ, tôi muốn tối thiểu mirror 2 NVMe và ít nhất 6 cổng SATA

    • Tôi đã thử dùng hai NVMe ở chế độ mirror, nhưng có nhiều điểm cần chú ý để đạt hiệu năng tối đa
      Tôi không rõ phía AMD thế nào, nhưng bo mạch Intel thường chỉ có một khe M.2 nối trực tiếp với CPU, ba khe còn lại đi qua chipset, nên cũng chia sẻ nút thắt cổ chai với card Ethernet 10Gb
      Cuối cùng, mua bo mạch hỗ trợ PCIe 5.0 và một SSD đơn đủ lớn lại nhanh hơn nhiều; cả tổng IOPS lẫn throughput đều cao hơn mảng RAID 0 trước đây
    • Tôi tò mò tốc độ NVMe trở thành nút thắt trong kiểu workload nào
    • Tôi đang dùng 5900X, và cảm thấy giá mà mình đã chờ để mua 5800X3D thì tốt hơn
    • Nếu cần hơn nữa thì nên lên 5950X, giá khoảng 4/3 nhưng số nhân gấp đôi, hoặc cân nhắc CPU có 3D cache vì UPS của Factorio
      5900X không phải là một nâng cấp lớn đến vậy
  • Để tham khảo, Hetzner đã cung cấp máy chủ CPU Ryzen 7000 kèm ECC RAM từ vài tháng trước
    https://www.hetzner.com/dedicated-rootserver/matrix-ax
    AX52 cung cấp ECC RAM dưới dạng nâng cấp tùy chọn, còn AX102 có ECC mặc định
    Tôi không nghĩ họ lại cung cấp ECC mà thực tế không hoạt động

    • Tôi được biết Hetzner tự làm bo mạch chủ hoặc đặt làm riêng
      Vì vậy có lẽ họ có thể đảm bảo chắc chắn hỗ trợ ECC từ đầu đến cuối
  • Mong các nhà lập pháp tỉnh táo và bắt buộc ECC
    Thật bất an khi phần lớn hoạt động điện toán diễn ra trên các hệ thống Non-ECC dễ tổn thương
    Đây là một dạng phân khúc thị trường nhân tạo cực kỳ tệ hại

    • Chắc bạn chưa xem các buổi điều trần mà nghị sĩ gọi những người như Zuck đến rồi hỏi cách dùng điện thoại
      Làm sao có thể kỳ vọng những người như vậy lập pháp về ECC được
    • Khó có thể nói hệ thống Non-ECC là dễ tổn thương khi trong 99,9999% thời gian chúng hoạt động hoàn toàn ổn
    • Tôi thường nghe nói máy Non-ECC hoàn toàn dễ tổn thương, và nếu tính toán thì có vẻ như bit flip phải liên tục xảy ra
      Nhưng hệ thống Intel của tôi dùng 64GB RAM Non-ECC, chạy nửa ngày mỗi ngày rồi ban đêm hibernate, chạy 3D CAD, Photoshop, VS Code cài đầy extension, các container WSL2 Docker, vậy mà hầu như không thấy lỗi
      Cũng không crash hay màn hình xanh
      Tôi tò mò chính xác thì nên kỳ vọng điều gì từ lỗi bit flip. Nếu single-bit flip xảy ra thường xuyên như vậy khi gần như dùng đầy 64GB RAM, thì có vẻ nó phải lộ ra bằng cách nào đó chứ
  • Tôi không đủ can đảm để chập chân về mặt vật lý, cũng không đủ kiên nhẫn để chờ DDR5 link training vài phút mỗi lần trong khi ép xung RAM từ từ
    Vì vậy tôi hài lòng với việc bộ điều khiển bộ nhớ báo rằng ECC đã được bật
    Thay vào đó, thử thổi luồng khí ấm từ máy sấy tóc vào RAM thì sao? Trước đây tôi từng thấy người ta dùng kỹ thuật như vậy để tạo lỗi

    • Dùng bật lửa BBQ propane ở khoảng cách gần chắc là được. Những thứ đó tạo ra nhiễu điện từ mạnh đến mức vô lý
      https://hackaday.com/2022/01/29/blast-chips-with-this-bbq-li...
      https://hackaday.com/tag/emfi/
    • Thực tế hơn, có thể điều chỉnh một phần ép xung bộ nhớ theo thời gian thực trên hệ thống đang chạy, và cũng không cần link training
      Không khuyến nghị cho sử dụng thực tế, nhưng có thể dùng khi tìm giới hạn bộ nhớ hoặc tạo lỗi
    • Có thể dùng kiểm thử Rowhammer để xác nhận hệ thống có RAM ECC không?
      Trên hệ thống I7-4770K không ép xung của tôi, lỗi xuất hiện, nhưng các bo mạch Supermicro X10 đời cũ dường như không phát hiện lỗi dù chạy kiểm thử Rowhammer vô thời hạn
      Tuy nhiên nếu các hệ thống mới được thiết kế để không dễ bị tấn công Rowhammer, cách này có thể không hiệu quả
      RAM của Raspberry Pi 4B và CM4 được biết là dùng RAM ECC, nhưng khác với ECC đang nói ở đây
      Đó là ECC on-die, nhằm cải thiện tỷ lệ chip đạt chuẩn, và lỗi ECC được sửa mà không được báo cáo qua phần cứng
      Lỗi ECC không thể sửa có lẽ chỉ được đọc thành dữ liệu sai
      Tôi thắc mắc liệu các mô-đun RAM hiện đại cũng dùng chip có ECC on-die hay không
    • Chẳng phải chỉ cần đưa điện thoại lại gần DIMM là có thể gây lỗi sao? Có vẻ dễ thử
    • Việc tạo khả năng phải reflow BGA trên một PCBA I/O tốc độ cao sẽ chạy liên tục 10 năm trông còn rủi ro hơn so với chập một cặp chân được diode bảo vệ
      Link training có thể tắt trong BIOS, nên có thể nhanh chóng tìm các thiết lập băng thông sát ngưỡng
      Kết quả có thể không lặp lại hoàn toàn, nhưng điều đó không quan trọng
  • Một số, có thể là tất cả bo mạch chủ ASUS AM5 có hỗ trợ ECC chính thức
    Cả sách hướng dẫn bo mạch và sách hướng dẫn BIOS của mẫu tôi vừa kiểm tra đều có nêu
    Một trong các thiết lập BIOS liên quan có giá trị mặc định là Auto, nhưng trái với trực giác, ở trạng thái này nó bị vô hiệu hóa nên cần đổi lại
    Việc báo cáo ECC của các bộ xử lý này đã được đưa vào Linux 6.5, nên người dùng Debian Stable phải chờ nó vào Backports hoặc đi lệch khỏi lộ trình chuẩn
    https://www.phoronix.com/news/AMD-EDAC-Ryzen-7000-Series

    • Tôi thật sự ghét thiết lập Auto trong BIOS
      Nếu có thể xem giá trị thực sự được áp dụng thì còn đỡ, nhưng chín trên mười lần là không rõ ràng
  • Có tin đồn rằng trong các phiên bản AGESA cũ có lỗi khiến chipset không nhận diện và sử dụng đúng RAM ECC
    Dù chipset đó lẽ ra phải hỗ trợ
    Với bo mạch chủ đang cân nhắc, cần kiểm tra xem có bản cập nhật firmware chứa ít nhất AGESA 1.0.0.5 patch C hay không
    https://www.reddit.com/r/truenas/comments/10lqofy/
    AGESA là một phần của firmware hệ thống AMD, dùng để khởi tạo các thành phần hệ thống cốt lõi: https://en.wikipedia.org/wiki/AGESA

    • Nhìn vào luồng thảo luận trên diễn đàn ASRock thì có vẻ đúng
      Tôi đã cập nhật lên AGESA 1.0.0.7b trước khi lắp RAM ECC
  • Tôi không biết rằng Ryzen 7000 series không nêu rõ hỗ trợ ECC một cách chính thức

    • Sau khi đăng bài này, tôi biết được rằng có bo mạch chủ AM5 hỗ trợ ECC chính thức
      Ví dụ dòng ASRock Rack có hỗ trợ: https://www.asrockrack.com/general/productdetail.asp?Model=1...
      Bo mạch chủ ASUS này cũng tuyên bố hỗ trợ ECC: https://www.asus.com/us/motherboards-components/motherboards...
      Cả hai đều chưa ra mắt vào thời điểm tôi mua bo mạch chủ AM5 đầu tiên. Lúc đó mới ngay sau khi ra mắt, và các con số hiệu năng quá tốt nên tôi đã xuống tiền sớm
    • Đây là hiểu sai nội dung của tác giả
      Tất cả CPU Ryzen 7000 series đang bán hiện nay đều có hỗ trợ ECC chính thức, nhưng cũng cần hỗ trợ từ bo mạch chủ
      Kiểu hỗ trợ ECC có điều kiện này vốn đã tồn tại trên CPU tiêu dùng AMD từ tận Athlon 64, nhưng có lẽ đây là lần đầu tôi thấy nó được nêu trong tài liệu marketing của AMD đối với Ryzen 7000 series
      Điều tác giả nói là việc tài liệu bo mạch chủ ASRock đã bỏ phần đề cập hỗ trợ ECC
      Vì ASRock từng nêu rõ hỗ trợ ECC trên các bo mạch chủ Ryzen trước đây, nên đây là một thay đổi đáng chú ý
      Ví dụ trang thông số Ryzen 5 7600: https://www.amd.com/en/product/12756#:~:text=ECC%20Support,R...)
    • Trước năm nay thì chuyện này khá mơ hồ và không được nói rõ
      Hơn nữa nó còn bị nhầm với ECC on-chip mà mọi DDR5 đều dùng
      DDR5 cần ECC on-chip để sửa lỗi phát sinh trong quá trình hoạt động bình thường, nhưng đó không phải là ECC bảo vệ cả dữ liệu được truyền qua bus bộ nhớ tới CPU