memory test
memory test 명령은 주 메모리를 테스트합니다. 이 명령은 명령 옵션에 의해 정의된 대로 테스트 알고리즘을 사용해서 시간 옵션으로 정의된 기간 동안 하나 이상의 프로세서에 대해 주 DRAM의 범위를 테스트합니다.
명령 구문
udiag memory test { ALGORITHM } [ RANGE ] [ TIME ] [ MP ]
옵션
|
|
ALGORITHM = addr0 | pat0 | pat1 | walk1 | walk0 | rand0 | rand1 | block0 | refresh0
|
|
addr0
|
각 주소 위치의 고유성을 테스트합니다.
|
pat0
|
메모리를 모두 0으로 채우고 결과를 확인합니다(stuck-at-1).
|
pat1
|
메모리를 모두 1로 채우고 결과를 확인합니다(stuck-at-0).
|
walk1
|
메모리를 왼쪽으로 8회 이동된 0x01로 채우고 데이터를 확인합니다.
|
walk0
|
메모리를 왼쪽으로 8회 이동된 0xFE로 채우고 데이터를 확인합니다.
|
rand0
|
메모리를 무작위 데이터로 채우고, 확인한 후, 역으로 돌리고 다시 데이터를 확인합니다.
|
rand1
|
무작위 위치에 무작위 데이터를 기록하고, 확인한 후, 역으로 돌리고 데이터를 다시 확인합니다.
|
block0
|
메모리 범위를 무작위 데이터가 포함된 2개의 블록으로 나눕니다. 블록 사이에 데이터가 교환됩니다(복사된 데이터가 위에서 아래로 또는 아래에서 위로 서로 반대가 됨). 데이터가 다시 교체되고 메모리 내용이 확인됩니다.
|
refresh0
|
메모리를 모두 0으로 채우고 5분간 기다린 후 확인합니다. 그런 후 메모리를 모두 1로 채우고 5분간 기다린 후 데이터를 확인합니다.
|
RANGE = -s <start_address> [-e <end_address_plus_one>]
|
|
-s
|
테스트할 메모리 블록의 시작 주소를 지정합니다. 주소는 16진수 형식으로 입력되며 4KB 경계에 맞아야 합니다.
|
-e
|
테스트할 메모리 블록의 끝 주소에 1바이트를 더한 값을 지정합니다. 플래그가 제공되지 않은 경우 테스트에서는 UEFI 메모리 할당 서비스로 지정된 연속 블록의 끝 부분이 사용됩니다. RANGE가 제공되지 않은 경우 테스트에서는 사용 가능한 메모리 블록 중 가장 큰 블록이 사용됩니다. <start_address>는 <end_address>보다 작아야 합니다.
|
TIME = -time <test_time_in_seconds>
|
|
-time
|
최대 시간을 16진수 초 단위로 지정합니다. 기본값은 시간 제한이 없음을 나타내는 0입니다.
|
|
리소스 요구 사항
ANY_PROC; MULTIPLE_INSTANCES
예제
특정 주소 범위 사이에 addr0 테스트를 실행하려면 다음을 입력합니다.
fs0:/> udiag memory test addr0 -s 100000000 -e 110000000
특정 주소 범위 사이에 walk1 테스트를 실행하려면 다음을 입력합니다.
fs0:/> udiag memory test walk1 -s 100000000 -e 110000000
모든 프로세서에서 rand0 테스트를 실행하려면 다음을 입력합니다.
fs0:/> udiag memory test rand0 -np all
지정된 시간(초) 동안 특정 프로세서에서 rand1 테스트를 실행하려면 다음을 입력합니다.
fs0:/> udiag memory test rand1 5f/5e/5d/1/2/3 -time 258