Ask question

Ask Questions and Get Answers from Our Community

Answer

Answer Questions and Become an Expert on Your Topic

Contact Staff

Our Experts are Ready to Answer your Questions

root

Well-Known Member
Joined
Dec 31, 2012
Messages
1,153
Reaction score
71
Points
48

RAM ECC hoạt động như thế nào

II. Các cơ chế kiểm tra lỗi trên RAM

  • ECC (Error Checking and Correction) là chức năng tự kiểm tra và sửa lỗi trên máy tính. Thường bộ nhớ ECC được coi là thành phần căn bản và vô cùng quan trọng trong hệ thống Sever.
  • Các doanh nghiệp ngày nay càng phụ thuộc nhiều vào các máy chủ chuẩn công nghiệp để sử dụng bộ nhớ nhiều hơn và chạy các ứng dụng quan trọng. Hệ thống bộ nhớ đã trở nên đáng tin cậy hơn so với nhiều năm qua bởi vì quá trính sản xuất tốt hơn và những công nghệ bảo vệ bộ nhớ như kiểm tra lỗi và sửa lỗi (ECC). Tuy nhiên, vì mật độ các thành phần bộ nhớ và khả năng đáp ứng của bộ nhớ tăng lên nên xác xuất lỗi xảy ra trong bộ nhớ tăng lên. Lỗi bộ nhớ có thể dẫn đến gián đoạn dữ liệu và là lý do làm máy chủ bị Crash. Kết quả là làm mất dữ liệu kinh doanh và mất doanh thu vì thời gian chết của hệ thống.

2.1. Các lỗi trong của Memory

2.2.1. Hard errors and soft errors

- Lỗi bộ nhớ gồm 2 loại Hard erors hoặc soft errors.
  • Hard Error:
    • Lỗi này có thể do 1 phần nào đó của phần cứng bộ nhớ bị hỏng. Vì vậy thiết bị sẽ trả về kết quả không chính xác.
    • Ví dụ: một ô nhớ bị mắc kẹt luôn luôn trả về bit 0, thậm chí là khi bit 1 được ghi vào nó.
    • Hard error có thể do khuyến khuyết của Ram hay những mối hàn không tốt.
  • Soft-Error:
    • lỗi này phổ biến hơn.
    • Chúng xảy ra ngẫu nhiên khi có một rối loạn điện xảy ra gần một tế bào của bộ nhớ làm thay đổi điện tích trên tụ điện.

2.2.2. Single-bit and multi-bit errors

- Thông thường các lỗi của Memory là Soft-Error. Soft-Error thông thường gồm 2 loại lỗi: Single-bit error và Multi-bit error.
- Các bus bộ nhớ là một mạch gồm 2 phần: bus dữ liệu và bus địa chỉ.
  • Bus dữ liệu là một tập hợp các đường mang dữ liệu đến và đi từ SDRAM. Mỗi một đường mang một bit dữ liệu tại cùng một thời điểm.
  • Ngày nay với các máy tính đều hỗ trợ 64-bit bus dữ liệu, điều này có nghĩa là các bus có thể truyền 64 bit dữ liệu cùng lúc.
  • Một lỗi xảy ra trong một bit dữ liệu được gọi là Single-bit error. Một lỗi có nhiều hơn một bit của từ dữ liệu được gọi là Multi-bit error.
  • Lỗi 1-bit thường chiếm 98% các lỗi

2.2. RAM ECC là gì?

  • Một thanh RAM có khả năng ECC (Error Checking and Correction) là một thanh RAM có khả năng điều khiển được dòng dữ liệu ra và vào nó. Thường được sử dụng trong các máy chủ chuyên dụng.
  • Còn đối với một thanh RAM thường (Non-ECC) thì trong quá trình truyền tín hiệu ở tốc độ cao thì rất dễ bị đụng độ (crash), đặc biệt là đối với các máy chủ. Khi crash xảy ra thì RAM (Non-ECC) phải nạp lại toàn bộ dòng data vì không có khả năng quản lý được dòng dữ liệu.
  • Đối với RAM ECC thì khi crash xảy ra RAM ECC chỉ cần yêu cầu gửi lại đúng gói tin (packet) bị crash. RAM ECC có 9 chip (Non ECC 8 chip), nó có chế độ tự động sửa lỗi, vì thế RAM ECC có độ ổn định và hiệu suất cao hơn các RAM bình thường khác.

RAM ECC là gì (1)

RAM ECC có 9 chip còn RAM Non-ECC chỉ có 8 chip

2.3. RAM ECC hoạt động như thế nào?

- RAM ECC có 9 chip thay vì 8 chip so với RAM không có tính năng ECC.

- Khả năng tự kiểm tra và sửa lỗi cho từng bit riêng lẻ giúp nó phát hiện và sửa lỗi kịp thời ngay lúc xảy ra. Cơ chế hoạt động của ECC không giống như RAID 4 và 5 (sử dụng thuật toán XOR để tạo ra parity bit).
  • ECC sẽ không hy sinh một phần bộ nhớ để sử dụng cho việc sửa lỗi mà có xu hướng bổ sung thêm chip vào bộ nhớ ECC.
  • Nhược điểm của ECC là chỉ có cơ chế sửa lỗi trên từng bit riêng lẻ nên khi có nhiều bit lỗi xảy ra cùng 1 lúc thì bộ nhớ ECC tuy phát hiện ra lỗi nhưng không có khả năng sửa kịp.
  • Đối với máy tính bàn, laptop hay thiết bị di động thì chức năng sửa lỗi ECC ít được quan tâm hơn, khi bị sẽ gây ra lỗi chương trình hoặc buộc phải khởi động lại máy gây ra phiền phức.
  • Tuy nhiên đối với máy chủ, việc duy trì tính toàn vẹn của dữ liệu và khả năng hoạt động liên tục là 2 ưu tiên hàng đầu, do đó lựa chọn RAM ECC cho máy chủ gần như trở thành tiêu chuẩn, hết sức quan trọng.
Cơ chế hoạt động:
  • ECC mã hóa thông tin trong một khối 8 bits cho phép phục hội lại lỗi bit đơn.
  • Mỗi lần dữ liệu được ghi vào bộ nhớ, ECC sử dụng một thuật toán đặc biệt để tạo ra các giá trị được gọi là check bits. Các thuật toán thêm những check bít cùng với nhau để tính toán ra giá trị checksum, sau đó checksum sẽ được lưu trữ cùng với dữ liệu.
  • Khi dữ liệu đọc từ bộ nhớ, các thuật toán sẽ tính toán lại giá trị checksum và so sánh với checksum đã thêm vào dữ liệu lúc trước. Nếu giá trị checksum giống nhau thì đữ liệu đó hợp lệ và tiếp tục hoạt động.
  • Nếu giá trị checksum khác nhau, dữ liệu có lỗi và bộ nhớ ECC logic sẽ cô lập các lỗi và báo cáo với hệ thống. Trong trường hợp lỗi đơn bit, bộ nhớ ECC logic có thể sữa lỗi và xuất ra dữ liệu được sửa để hệ thống tiếp tục vận hành.
RAM ECC hoạt động như thế nào

  • Công nghệ ECC cung cấp bảo vệ đầy đủ cho nhiều ứng dụng. Tuy nhiên, hiệu quả của ECC bị giảm khi dung lượng bộ nhớ tăng. Thực tế những máy chủ công nghiệp ngày càng hỗ trợ dung lượng bộ nhớ lớn hơn bởi vì những nhân tố sau:
    • Hệ điều hành bây giờ hỗ trợ dung lớn bộ nhớ lớn hơn rất nhiều.
    • Chi phí thấp, bộ nhớ dung lớn sẵn sàng hơn
    • Hỗ trợ máy chủ ảo.

2.3.1 Sự khác nhau giữa RAM Registered ECC và RAM Unbuffered ECC?

  • Hiện nay, hầu hết loại bộ nhớ sử dụng trong máy tính để bàn, laptop, thiết bị di động là loại không sử dụng bộ nhớ đệm và không có khả năng tự kiểm tra và sửa lỗi Non-ECC (Non-Error Checking and Correction). Việc hỗ trợ loại bộ nhớ ECC UDIMM (ECC Unbuffered) hay ECC RDIMM (ECC Registered) là do loại CPU của Intel hoặc AMD quyết định.

  • Vậy thực chất sự khác biệt giữa 2 loại RAM Registered ECC và RAM Unbuffered ECC là gì? Trước hết giữa RDIMM và UDIMM đã có sự khác nhau.
    • RDIMM là bộ nhớ có chứa các thanh ghi (register)
    • UDIMM là bộ nhớ không có các bộ đệm hoặc thanh ghi (register) mà các thiết bị được thiết kế trên bo mạch chủ.
  • Chính vì sự khác biệt đó nên dẫn đến sự khác nhau căn bản giữa RAM Registered ECC và RAM Unbuffered ECC là ở lệnh truy xuất.
    • RAM Unbuffered ECC thì các lệnh truy xuất bộ nhớ được đưa trực tiếp đến module bộ nhớ.
RAM Unbuffered ECC (1)


  • RAM Registered ECC thì các lệnh truy xuất phải được gửi đến Registered chip trước sau đó mới truyền đến module bộ nhớ.

RAM Registered ECC (1)


2.3.2 Cơ chế hoạt động của RAM Registered ECC có cả ưu và nhược điểm

  • Ưu điểm:
    • RAM Registered ECC sẽ giúp giảm tải bớt khối lượng điều khiển bộ nhớ của CPU, một phần công việc truy xuất trực tiếp bộ nhớ đã có Register chip thực hiện.
    • Nhờ đó CPU sẽ bớt được khối lượng công việc, giúp máy chạy tốt và hiệu quả hơn.
    • Điều này trở nên đặc biệt quan trọng trong môi trường máy chủ.
  • Nhược điểm:
    • Do nguyên lý hoạt động của RAM Registered ECC nên các lệnh truy xuất phải gửi đến Register chip trước sau đó mới truyền đến module bộ nhớ. Điều này làm các lệnh chỉ thị sẽ mất xấp xỉ 1 chu kì CPU.
  • Đối với môi trường ảo hóa, nơi mà dung lượng bộ nhớ và băng thông bộ nhớ (Memory bandwidth) là các yếu tố then chốt để đạt được mật độ ảo hóa cao, RAM Registered ECC là lựa chọn tốt hơn.
  • Nếu bạn đã mua loại RAM Unbuffered ECC rồi sau đó muốn nâng cấp, rất có thể bạn sẽ phải thay thế toàn bộ RAM cũ bằng loại RAM mới và làm tăng chi phí khá nhiều.
 
Last edited:
Top