LAB/GEM5

GEM5 Tutorial 4 - 제공되는 Default Config

RyoTTa 2021. 3. 4. 15:34
반응형

Using the default configuration scripts

 

 gem5에는 기본적으로 제공해주는 Default Configration Scripts 들이 존재한다. 이러한 기본 스크립트를 사용하면 gem5의 사용 속도가 매우 빨리진다고 한다. 그러나 이런 기본스크립트에 의존해 시뮬레이터에 대해 이해하지 못한 상태에서 사용하면 좋지 않다. 따라서 중요한 옵션과 기본 구성 스크립트의 일부를 알아 본다.

 

 지난 Tutorial에서는 처음부터 개인만의 Config Scripts를 만들었다. 모든 단일 시스템 Parameter들을 지정 할 수 있으므로 매우 강력하다고 생각한다. 하지만 실제로 시뮬레이션할 시스템든 설정하기 매우 복잡 하다. 

 

 gem5의 모든 config 파일은 configs/. 디렉토리 내부에 존재한다.

configs 디렉토리 구성요소

boot/

 Full System Mode에서 사용되는 rcS파일이다. 이러한 파일들은 Linux 부팅후 시뮬레이터에 의해 로드되며 실행된다. 이들 중 대부분은 Full System Mode에서 실행할 때 Benchmark들을 제어하는데 사용된다. 이러한 파일은 Full System Simulation 장에서 더 자세히 다룬다.

 

common/

  이 디렉토리에는 시뮬레이션 된 시스템을 생성하기 위한 여러 Scripts 및 Fucntion이 포함되어 있다. 예를 들어 이전 에 생성한 cache.py와 유사한 스크립트들이다.

 Options.py : Command로 설정할 수 있는 다양한 옵션들이 포함되어 있다. CPU 수, System Clock등이 존재한다. 시뮬레이션할 시스템에 대해 병경할하려는 옵션에 대해 이미 Command를 통해 Parameter들을 수정할 수 있는지 확인 할 수 있다.

 CacheConfig.py : Classic Memory System에서의 Cache에 대한 설정을 바꿀수 있는 Option 및 functions이 포함되어 있다.

 MemConfig.py : Memory System에 대해 설정을 할 수 있다.

 FSConfig.py : Full System 시뮬레이션을 위해 필요한 Functions들이 포함되어있다.

 Simulation.py : gem5 실행과 Set Up에 대해 도움을 줄수있는 Functions들이 포함되어있다. 해당 파일에 포함된 코드들이 체크 포인트 저장 및 복원을 실시한다. 아래의 예제파일 examples/는 이 파일의 함수를 사용하여 gem5 시뮬레이션을 실행한다. 이파일은 매우 복잡하지만 실행에 대해 많은 유연함을 가진다.

 

dram/

 DRAM을 테스트하는 스크립트가 포함되어 있습니다.

 

example/

 gem5를 실행시키기 위한 여러 샘플 Config들이 포함되어있다. 특히 se.py, fs.py가 자주 사용되며. 이 파일에 대한 자세한 내용은 다음 섹션에서 찾을 수 있다. 이 디렉토리에는 다른 유틸리티 구성 스크립트도 포함된다.

 

ruby/

 Ruby 용 Config Scripts 및 캐시 일관성(Cache Coherence Protocols)이 포함되어 있다. 

 

splash2/

 시뮬레이션된 시스템을 구성하는 몇가지 옵션과 splash2 Benchmark를 실행하는 스크립트가 포함되어있다.

 

topologies/

 Ruby 캐시 계층을 정의할 때 사용할 수있는 토폴로지 구현에 대해 스크립트가 포함되어 있다. 

반응형