하드웨어 관련

메모리 타이밍을 조절해보자

lsal 2006. 10. 16. 19:39
최신 칩셋을 가진 메인보드의 경우에는 메모리 타이밍을 조절할 수 있는 프로그램이 많습니다. 하지만 오래된 칩셋의 메모리 타이밍까지 조절할 수 있는 프로그램을 찾기는 쉽지 않습니다.

RightMark Memory Analyzer를 이용해 최신 칩셋은 물론 오래된 칩셋의 메모리 타이밍까지 조절해 보겠습니다.

o CPU RightMark 홈페이지 : http://cpu.rightmark.org

o RightMark Memory Analyzer 다운로드 : http://cpu.rightmark.org/download.shtml

o CPU-Z 다운로드 : http://www.cpuid.com/cpuz.php

* 이 글을 올바로 이해하고 시스템에 적용하기 위해서는 메모리 타이밍에 관한 사전 지식이 반드시 필요합니다.
* 이 글에 나와있는 구체적인 타이밍 값들은 제가 사용하고 있는 시스템에 한정된 값입니다.
* 정확한 이해없이 그대로 적용하면 시스템이 불안정해지거나 그 밖에 다른 문제가 발생할 수 있습니다.
* 이에 대한 책임은 각자에게 있으니 반드시 정확한 이해 후 적용하세요. :)


1. 현재 메모리 타이밍 확인
우선 CPU-Z를 이용해 현재 메모리 타이밍을 살펴보겠습니다.

현재 tCL-tRCD-tRP-tRAS가 각각 2T-2T-2T-? 그리고 DRAM Idle Timer32T로 설정되어 있음을 확인할 수 있습니다.
저의 경우, tCL-tRCD-tRP 값은 바이오스 셋업에서 최적값(2T-2T-2T)으로 쉽게 조절할 수 있지만 DRAM Idle Timer 값은 바이오스 셋업에 해당 항목이 존재하지 않아 조절할 수 없었습니다.


2. 메모리 타이밍 변경
이제 32T로 설정되어 있는 DRAM Idle Timer를 최적값인 8T로 변경해 보겠습니다.
RightMark Memory Analyzer(이하 rmma)를 실행시키고 Memory 탭으로 이동합니다.


CPU-Z와 동일한 타이밍 값들을 확인할 수 있습니다.
이제 메모리 타이밍을 조절하기 위해 Adjust Memory Timings에 체크합니다.



그리고 CPU-Z에서 확인했던 DRAM Idle Timer 값을 변경하기 위해 Idle Cycle Limit (DRAM Idle Timer와 같은 항목입니다) 의 32 cycles를 클릭한 후 8 cycles를 선택합니다.



이제 Idle Timer 값이 8T로 변경되었습니다.



다시 CPU-Z로 확인해보니 기분좋게 8T로 변경되어 있습니다.



3. timings.exe 를 이용한 메모리 타이밍 적용
이것으로 끝이면 좋겠지만 아쉽게도 시스템을 리부팅하면 예전 타이밍 값으로 돌아가 버립니다.
언제나 내가 원하는 타이밍 값으로 동작하게 설정해 봅시다. 사실 여기서부터 본론입니다. ;)

RightMark Memory Analyzer(이하 rmma)가 설치되어 있는 폴더로 갑니다.
우리가 주목해야 할 파일은 timings.exetimings.dat 입니다.



timings.exe 를 실행시키면 뭔가 번쩍 나타났다 이내 사라집니다.
명령 프롬프트를 실행시키고(시작-실행-cmd 입력) rmma가 설치되어 있는 폴더로 이동 후 다시 timings.exe 를 실행시킵니다.



timings.exe 는 메모리 타이밍에 관한 정보를 출력해 줍니다. 타이밍 값은 조금 전에 변경한대로 잘 설정되어 있습니다.
이제 rmma가 설치된 폴더에 있는 timings.dat 를 메모장으로 엽니다. 즐거운 컴퓨터고난기록기
뭔가 복잡한 정보들이 가득한데 일단 바로 설정을 하기 위해 마지막 부분에 있는 예제를 살펴봅시다.



아하! 간단하군요. 일반적으로 많이 쓰이는 tCL-tRCD-tRP-tRAS 값을 변경하려면 timings 2.0 2 2 5 와 같이 한 줄만 추가해주면 되는군요. 또한 각 항목을 따로따로 설정할 수도 있습니다. 하지만 제 시스템의 경우 앞의 값은 바이오스 셋업에서 이미 조절 가능하므로, 조절 불가능한 값인 Idle Cycle Limit 값을 8T로 변경하기 위해 아래와 같이 한 줄 추가시킵니다.



그리고 다시 명령 프롬프트에서 timings.exe 를 실행시키면 ICL (Idle Cycles Limit) 값이 8T로 설정되었다는 메세지를 볼 수 있습니다.



4. timings.exe 시작프로그램에 등록
자, 이제 정말 마지막입니다. 시스템이 리부팅될 때마다 timings.exe 가 실행되도록 시작프로그램에 등록합니다.
레지스트리 편집기를 실행하고(시작-실행-regedit 입력) 다음 경로로 이동합니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

timings와 같은 적당한 이름으로 새로운 '문자열 값' 키를 만들고, timings.exe 파일이 있는 경로를 값으로 입력합니다.
예) C:\Program Files\rmma\timings.exe

리부팅 후, timings.exe가 정상적으로 실행되는지 확인하고 CPU-Z나 rmma로 메모리 타이밍 값이 원하는대로 설정되어 있는지 확인합니다.

수고하셨습니다. 드디어 메모리 타이밍 조절이 끝났습니다. :)

먼저 rmma 프로그램으로 적절한 타이밍 조절 후 시스템의 안정성을 테스트하고 timings.exe 와 timings.dat 를 이용해 타이밍 값을 시스템에 적용해 사용하면 되겠습니다. 보다 상세한 설정이 필요하거나 타이밍 조절에 문제가 발생한다면 timings.dat 의 주석을 찬찬히 읽어보시기 바랍니다. timings.exe 갈무리 화면에서 눈치채셨겠지만 제 시스템이 상당히 구형이므로 더 이상 다른 도움은 드리기 힘들 것 같습니다. 건투를 빕니다!

무료 바이러스 치료 프로그램을 찾고 계신가요? Google 패키지노턴 시큐리티 스캔(Norton Security Scan)과 스파이웨어 닥터(Spyware Doctor)를 사용해 보세요. 검사와 치료가 모두 무료입니다. - 지금

*. 몰라도 되는 것들
지금부터는 정말 몰라도 되는 것들입니다. :-(
오늘 아침에 아내와 싸우고 나왔다거나 새로 입은 흰 셔츠에 찌개 국물이 묻어 지워지지 않는다거나 워크래프트 우주 방어에 10연패 이상 당하신 분은 당장 [닫기]를 클릭해 주세요.
그리고 장미꽃 한 송이를 사서 집으로 곧장 들어가세요. 흰 셔츠를 벗어버리고 햇볕내 나는 깔끔한 남방으로 갈아입으세요. 슬롯에 컴퓨터 하수(고수는 절대 안 됩니다!)를 한 명 집어 넣고 마음껏 유린하세요.
이와 전혀 상관없는 분들이라면 계속 살펴봅시다. 컴퓨터 결벽증 환자라면 즐거운 시간이 될지도 모릅니다. :)

(1) conime.exe 프로세스 죽이기
timings.exe 는 Win32 콘솔 프로그램입니다. 잘 아시다시피 명령 프롬프트(cmd.exe) 상에서 동작합니다. 하지만 이것은 콘솔 상에서 한글 입력을 가능하게 해주는 conime.exe 의 실행을 동반합니다. timings.exe 가 종료되고 cmd.exe 가 종료되어도 conime.exe 는 메모리 상에 그대로 남습니다. 불과 2MB 조금 안 되게 메모리를 점유하지만 사실 별로 마음에 들지 않습니다. 사용하지도 않는 프로그램이 메모리를 차지하고 있도록 용납할 수 없습니다. :-i



여기에 두 가지 방법이 있습니다. 하나는 cmd.exe 가 실행되어도 conime.exe 가 자동으로 로드되지 않도록 아예 레지스트리 수정을 통해 막아버리는 법, 또 하나는 배치 파일을 만들어 시작프로그램에 등록하고 배치 파일 내에서 timings.exe 를 실행시키는 명령과 conime.exe 프로세스를 죽이는 명령을 집어넣는 법.
콘솔 자체를 거의 사용하지 않고 사용하더라도 한글을 입력할 필요가 없는 분들은 앞의 방법을 사용하시고, 콘솔도 더러 사용하고 한글 폴더로의 이동때문에 한글 입력이 필요하신 분은 뒤의 방법을 사용하세요. 자, 갑니다.

o 첫째 방법, 레지스트리 편집기를 엽니다. HKEY_CURRENT_USER\Console 로 이동한 뒤, LoadConIme 키 값을 '0'으로 수정합니다. 다음 로그온부터 적용됩니다.

o 둘째 방법, 배치 파일과 프로세스를 죽이는 kill 명령어를 사용합니다. 우선 kill 파일을 구해야 합니다. 윈도우2000의 kill.exe윈도우2000 CD의 SUPPORT\TOOLS\SUPPORT.CAB 안에 있습니다. kill.exe 파일만 압축을 풀어낸 뒤 C:\WINNT\system32 에 복사합니다. 윈도우XP는 taskkill.exe 파일을 사용합니다.
이제 메모장을 열어 배치 파일을 만들어 봅시다. 다음은 예제입니다. 경로 등을 적절히 수정하세요.

- 윈도우2000
@echo off
"C:\Program Files\rmma\timings.exe"
"C:\WINNT\system32\kill.exe" -f conime.exe

- 윈도우XP
@echo off
"C:\Program Files\rmma\timings.exe"
"C:\WINDOWS\system32\taskkill.exe" /f /im conime.exe

rmma가 설치된 폴더에 timings.bat 로 저장한 후 '4. timings.exe 시작프로그램에 등록' 부분에서 등록했던 레지스트리 키 값 C:\Program Files\rmma\timings.exe 를 C:\Program Files\rmma\timings.bat 로 수정합니다.

이제 리부팅 후 프로세스 목록을 살펴보면 conime.exe 가 보이지 않습니다. :-)

**. 마무리, 한 가지만 더!

_M#]