cpu의 external clock과 memory colck 관계
글쓴이: choboja / 작성시간: 월, 2010/08/09 - 1:55오후
음..
$ sudo dmidecode -v /dev/mem 하니 세부 정보가 나오는데,
1. cpu의 경우
External Clock : 333Mhz
2. memory의 경우
Speed : 800Mhz
이렇게 출력이 되는데,
그렇다면 ddr2의 경우 (external clock * 2) = 666Mhz의 속도로 memory에 접근하는 것으로 해석을 하면되나요?
즉, cpu의 clock이 2.8GHz라면
1 cycle에 걸리는 시간이 약 0.375ns이니까
메모리 접근 시간
1/666Mhz = 1.5ns
1.5/0.375 = 4cycles 걸리는것으로 생각하면 될까요??
음.. 원하는것은 core에서 memory access로 인한 stall time이 어느정도되는지 알고싶네요.
Forums:
RAS + CAS + data transfer
부분적으로 아는 만큼만 말씀드립니다.
(잘못된 부분은 수정바랍니다.)
순수한 데이터 전송 시간 만을 따지는 경우 말씀하신 것과 비슷한 방식으로 계산할 수 있을 것입니다.
하지만 메모리 접근을 위해서는 먼저 접근하려는 메모리의 주소를 설정하기 위해
RAS / CAS 신호가 전송되어야 하며 메모리 컨트롤러가 이를 처리하기 위한 시간이 필요합니다.
또한 DRAM은 주기적으로 refresh되어야 하므로 이 기간에 메모리 접근이 발생한다면
refresh가 완료될 때까지 대기해야 하며 따라서 이에 따른 latency를 고려해야 합니다.
SMP의 경우 다른 core에서 (memory) bus transaction을 수행 중이라면
transaction이 종료될 때까지 대기해야 하므로 추가적인 latency가 발생할 수 있습니다.
자세한 내용은 아래의 문서 2장을 보시면 될 것입니다.
(저는 본지가 좀 되서 정확히는 기억이 안나는군요..;;)
http://www.akkadia.org/drepper/cpumemory.pdf
답변 감사합니다.
네 전체적인 stall 시간을 구하기 위해서는 data 전송 + 메모리 접근이 더해져야하겠네요.
cas & ras access time에 관한 정보는 datasheet 를 보면 나와있는지 한번 확인해봐야겠네요.
문서를 한번 차근차근 읽어보겠습니다. 링크 감사합니다.
그럼 하나 더 궁금한게 있네요.
그럼 memory에 나와있는 clock 위의 예에서 800Mhz 는 data접근 시간이 아닌(ras/cas) 접근된 데이터를 메모리가 전송할 수 있는 speed인가요?
그리 external clock이 memory clock보다 느리기때문에 external clock에 동기되어 전송이 되는것인지 궁금하네요.
댓글 달기