사용자:苦笑/작업장5

메모리 스크러빙(En:Memory scrubbing)오류 검출 코드를 사용하여 메모리에서 발생한 비트 오류를 검출하고 정정하기 위한 절차이다.

스크러빙 기술 사용의 이유 편집

현재 널리 사용되는 메모리의 집적률이 높아짐에 따라, 각각의 메모리 셀 구조는 우주 방사선 또는 알파입자에 영향을 받을 만큼 작아졌으며 이로 인해 발생하는 오류를 소프트 오류라고 한다. 이 오류는 디램에스램기반의 메모리에서 문제가 될 수 있다.

각각의 메모리 비트에서 소프트 오류가 발생할 확률은 매우 작다. 하지만,

  • 다수의 메모리가 컴퓨터 -특히나 서버 - 에 장착되고,
  • 수 개월동안 중단되지 않고 동작하기 때문에,

컴퓨터에 설치된 전체 메모리의 관점에서 보았을 때. 소프트 오규가 발생할 확률은 매우 높다.

오류 정정 코드와의 관련성 편집

오류 정정 코드가 적용된 메모리에 저장되는 정보는 각각의 메모리 워드에서 발생하는 한 개의 비트 에러를 수정할 수 있도록 부가적인 정보가 추가되어 저장된다. 이런 이유로, 오류 정정 코드가 적용된 메모리는 메모리에 저장된 내용에 대한 스크러빙 기능이 지원된다. 다시말해, 만약 메모리 컨트롤러가 메모리 전체를 체계적으로 훑어 내리며 검사할 때, 한비트 오류가 감지되고, 어떠한 비트에서 오류가 발생하였는지 체크섬과 같은 오류 정정 코드에 근거하여 판단할 수 있고, 정정된 데이터가 다시 그 자리에 써진다.

세부 사항 편집

일반적인 에러 정정 코드 기술이 적용된 메모리 모듈의 경우, 하나의 메모리 워드에 여러개의 비트 에러가 발생하기 전에 주기적으로 메모리의 검사를 수행하는 것이 중요하다. 왜냐하면, 한개의 비트 에러는 검출과 함께 정정까지 가능하지만, 여러개의 비트 에러의 경우는 정정이 불가능 하기 때문이다.

스크러빙으로 인하여 컴퓨터의 성능이 떨어지는 것을 막기 위하여, 스크러빙은 일반적으로 중앙처리장치가 아무런 작업도 하지 않는 유휴시간에 진행이 된다. 스크러빙이라는 것이 읽기와 쓰기동작으로 구성되어 있끼 때문에, 스크러빙이 적용되지 않은 메모리와 비교할 때, 전력 소비를 증가 시킬수 있다. 이와 같은 이유로 스크러빙은 주기적으로 하는 것이지, 끊임없이 연속적으로 하는 것이 아니다. 많은 서버들은 바이오스에서 스크러빙 주기를 설정할 수 있는 옵션을 제공한다.

The normal memory reads issued by the CPU or DMA devices are checked for ECC errors, but due to data locality reasons they can be confined to a small range of addresses and keeping other memory locations untouched for a very long time. These locations can become vulnerable to more than one soft error, while scrubbing ensures the checking of the whole memory within a guaranteed time.

On some systems, not only the main memory (DRAM-based) is capable of scrubbing but also the CPU caches (SRAM-based). On most systems the scrubbing rates for both can be set independently. Because cache is much smaller than main memory, the scrubbing for caches does not need to happen as frequently.

Memory scrubbing increases reliability, therefore it can be classified as a RAS feature.

함께 보기 편집


범주:컴퓨터 메모리