2014-05-24 19 views
3

gem5 시뮬레이터에 익숙해 지려고합니다. 가 시작하려면, 내가gem5 캐시 통계 - 재설정 및 덤프

./build/X86/gem5.opt configs/example/se.py --caches -c ~/tmp/hello 

m5out/stats.txt 쇼 ... 내가 폴더의 유틸리티/M5/m5op_x86.S로 컴파일

int main() 
{ 
    m5_reset_stats(0, 0); 
    m5_dump_stats(0, 0); 
    return 0; 
} 

있는 간단한 프로그램을 작성하고 사용하여 실행 (다른 것들 중에서) ...

system.cpu.dcache.ReadReq_hits::total    881 
system.cpu.dcache.WriteReq_hits::total   917 
system.cpu.dcache.ReadReq_misses::total   54 
system.cpu.dcache.WriteReq_misses::total   42 

왜 빈 기능이 너무 많은 히트와 누락을 표시합니까? libc 때문에 안타와 실수가 있습니까? 그렇다면 m5_reset_stats() 및 m5_dump_stats()의 목적은 무엇입니까?

답변

3

---Begin--- 
---End----- 

두 덩어리가 당신이 그것을 설명한 바와 같이, 시뮬레이터가 dump_stats (0,0)에서 통계를 덤프하도록되어 있기 때문에이 있다면 나는 stats.txt 파일에서 확인 할 및 상기 실행의 끝. 그래서, 여러분 중 하나가 그러한 간격 중 하나를보고있는 것처럼 보입니다 (그리고 나는 다른 간격이 모든 통계에 대해 0을 가질 것으로 기대합니다). 또는 시뮬레이션에 버그가있어서 dump_stats() (또는 reset_stats())가 실제로 아무 것도하지 않았습니다. 실제로 저에게 많은 시간이 걸렸지 만,이 버그의 출처에 대해서는 확신 할 수 없습니다. 코드의 분해에

  1. 봐와 reset_stats.w을 찾아
  2. dump_stats.w gem5에서 추적을 덤프 및 참조 : 당신이 더 문제를 해결하려면

    는 다음을 수행 할 수 그것이 덤프 및 리셋 명령의 실행을 끝내고 어떤 명령 (및 얼마나 많은 명령)이 이전/이후에 실행되는지 확인합니다.

희망이 있습니다.