반응형

LAB 20

GEM5 v21.2.1.1, L2 private cache, L3 shared cache

1. configs/common/Options.py 파일에 l3 cache option 추가 parser.add_argument("--l3cache", action="store_true") 2. configs/common/Caches.py 파일에 l3 cache class 추가 class L3Cache(Cache): assoc = 16 tag_latency = 32 data_latency = 32 response_latency = 32 mshrs = 32 tgts_per_mshr = 24 write_buffers = 16 3. src/mem/XBar.py 파일에 L3XBar class 추가 class L3XBar(CoherentXBar): width = 32 frontend_latency = 1 forw..

LAB/GEM5 2022.05.12

GEM5, NVMain V.20.0.3에 맞게 수정

NVMain은 GEM5의 오래된 버전에 맞게 정의되어있다. 이를 그나마 최신버전 GEM5에 맞도록 수정한다. NVmain/Simulators/gem5/nvmain_mem.cc void NVMainMemory::SetRequestData(NVMainRequest *request, PacketPtr pkt) { uint8_t *hostAddr; request->data.SetSize( pkt->getSize() ); request->oldData.SetSize( pkt->getSize() ); if (pkt->isRead()) { Request *dataReq = new Request(pkt->getAddr(), pkt->getSize(), 0, Request::funcMasterId); Packet *da..

LAB/GEM5 2021.08.27

GEM5, NVMain FRFCFS MemCon에 WR,RD buffer hit,miss 추가

NVMain에서 FRFCFS-WQF에는 Write, Read Request에 해당하는 Queue 가 두개로 나뉘어 처음부터 Write, Read row buffer hit, miss를 지원한다. 하지만 FRFCFS에서는 Queue가 하나라서 기본적인 Row buffer hit,miss만 지원한다. 이를 Write에 대한 hit,miss 와 Read에 대한 hit, miss 둘다 출력하게 수정한다. $ vim ./nvmain/MemControl/FRFCFS/FRFCFS.h private: NVMTransactionQueue *memQueue; /* Cached Configuration Variables*/ uint64_t queueSize; /* Stats */ uint64_t measuredLatenci..

LAB/GEM5 2021.06.11

GEM5, NVMain 설치 (2)

1. GEM5 다운로드 이전에 설치한 NVMain에서 제공한 GEM5는 매우 이전버전으로 SPEC2006을 실행하려 했을때, Static으로 컴파일된 App만 실행 가능하다고한다. 따라서 NVMain이랑 호환되며 그나마 최신버전인것을 설치해보려 한다. NVMain Github 에서 Issues에서 찾은 호환되는 버전을 찾았다. 아래에서 받을 수 있다. https://gem5.googlesource.com/public/gem5/+/525ce650e1a5bbe71c39d4b15598d6c003cc9f9e $ mv gem5-525ce650e1a5bbe71c39d4b15598d6c003cc9f9e gem5 해당파일을 받고 압축을 해제한 뒤, 디렉토리명을 gem5로 변경한다. 2. NVMain 다운로드 $ git..

LAB/GEM5 2021.03.17

GEM5, NVMain 설치

1. GEM5 설치 GEM5는 이전에 설치한 방법과 같이 설치하도록한다. 대신 NVMain에서 지원하는 GEM5를 설치하고자 한다. $ yum groups mark install "Development Tools" $ yum groups mark install "Development Tools" $ yum groups mark convert "Development Tools" $ yum group install "Development Tools" $ yum install mercurial zlib-devel $ git clone https://github.com/cyjseagull/gem5-nvmain-hybrid-simulator $ cd gem5-stable $ scons build/X86/gem5...

LAB/GEM5 2021.03.16

GEM5 Tutorial 6 - 간단한 SimObject 제작

gem5의 거의 모든 객체는 SimObject로 부터 상속된다. SimObject는 모든 객체에 대해 기본 인터페이스를 제공한다. SimObject는 Python에서 Access가능하도록한 Wrapped 된 C++ 객체들이다. SimObject는 Python Config를 통해 설정되는 많은 매개 변수들을 가질 수 있다. 이 글에서는 간단한 "HelloWorld" SimObject를 만드는 과정을 설명한다. 1. 새로운 SimObjec를 위한 Python Class 생성 각 SimObject에게는 연관된 Python Class가 존재한다. 이 Python Class는 Config에서 제어할 수 있는 SimObject의 Paramter를 설명한다. 해당 SimObject의 경우 Parameter 없이 시작..

LAB/GEM5 2021.03.09

GEM5 Tutorial 5 - se.py 및 fs.py 구성

Using se.py and fs.py se.py와 fs.py에 대해 공통적인 옵션에 대해서만 설명한다. Full System에 대해서는 또다른 섹션이 존재해 나중에 추가 하도록 한다. 이번에 소개할 대부분의 옵션은 Options.py에서 확인할 수 있고 addCommonOptions 함수에 등록되어 있다. build/X86/gem5.opt configs/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello 먼저 매개변수 없이 Hello World 프로그램을 실행한다. gem5 Simulator System. http://gem5.org gem5 is copyrighted software; use the --copyright option for ..

LAB/GEM5 2021.03.05
반응형