반응형

전체 글 100

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

GEM5 Tutorial 4 - 제공되는 Default Config

Using the default configuration scripts gem5에는 기본적으로 제공해주는 Default Configration Scripts 들이 존재한다. 이러한 기본 스크립트를 사용하면 gem5의 사용 속도가 매우 빨리진다고 한다. 그러나 이런 기본스크립트에 의존해 시뮬레이터에 대해 이해하지 못한 상태에서 사용하면 좋지 않다. 따라서 중요한 옵션과 기본 구성 스크립트의 일부를 알아 본다. 지난 Tutorial에서는 처음부터 개인만의 Config Scripts를 만들었다. 모든 단일 시스템 Parameter들을 지정 할 수 있으므로 매우 강력하다고 생각한다. 하지만 실제로 시뮬레이션할 시스템든 설정하기 매우 복잡 하다. gem5의 모든 config 파일은 configs/. 디렉토리 내부..

LAB/GEM5 2021.03.04

GEM5 Tutorial 3 - gem5 결과 분석용 파일

Understanding gem5 statistics and output 시뮬레이션 스크립트가 완료되면 결과가 출력되며, 더욱 자세한 정보들은 m5out에 출력된다. config.ini : 시뮬레이션을 위해 생성된 모든 SimObject 목록이 출력되며, 설정된 Parameter도 포함되어있다. config.json : config.ini와 같지만 json format을 사용한다. stats.txt : 시뮬레이션에 등록된 모든 gem5의 통계 텍스트 파일이다. config.ini 시뮬레이션된 시스템에 대한 최종 Parameter, config script에서 지정되었거나 Default 값으로 지정되었어도 출력된다. 아래는 simple.py를 실행했을때의 config.ini를 보여준다. 각 SimObjec..

LAB/GEM5 2021.03.04

GEM5 Tutorial 2 - Cache를 추가하여 실행

Adding cache to the configuration script 이전 Simple.py 스크립트에 Cache를 추가하여 약간 더 복잡한 구성을 정의하겠습니다. 아래 그림과 같이 System에 Cache 계층 구조를 추가 합니다. 단일 CPU 시스템을 모델링하고 캐시 일관성 모델링을 신경 쓰지 않기 때문에 Ruby 대신 Classic 캐시를 사용합니다. Cache SimObject를 확장하고 시스템에 맞게 구성하겠습니다. Classic 캐시 : M5 시뮬레이터로부터 상속, Ruby에 비해 캐시 일관성을 자세하게 모델링 하지 않음, 단순하고 유연하지 않은 MOESI 프로토콜을 구현한다. Ruby 캐시 : GEMS 시뮬레이터로부터 상속, 캐시 일관성을 자세하게 모델링하도록 설계되어 있다. 일부는 캐시..

LAB/GEM5 2021.03.03

GEM5 Tutorial 1 - 가장 간단한 시스템 정의

Creating a simple configuration script gem5 architecture gem5는 "SimObjects"로 구성되어 있다. 대부분의 C++ 객체들은 SimObject로 부터 상속받는다. 각 클래스들은 물리적인 시스템 구성 요소를 나타낸다. gem5는 discrete event simulator(개별 이벤트 시뮬레이터) 1. Event at head dequeued 2. Event executed 3. More events queued 모든 SimObject는 Event들을 EventQueue에 삽입할 수 있다. gem5 configuration scripts gem5는 Python Scripts로 완전히 Control 되며 Model에서의 System을 정의한다. http:..

LAB/GEM5 2021.03.03

Adaptive Memory Fusion: Towards Transparent, Agile Integration of Persistent Memory

Abstract PM의 필요성 -PM(Persistent Memory)는 시스템 업그레이드를 위한 이상적인 후보 -현재의 Enterprise System에 PM을 사용하는 것은 호환성 및 대규모 수정 측면에 큰 장벽 -DRAM과 같은 방식으로 사용할 수 있도록 Transparent하게 설계 문제점 -Big Data Application이 In Memory Computing을 수행하려면 대용량 메모리 필요 -하지만, 현재 DRAM을 계속 확장하는 것은 비용, 공간, 소모 전력의 벽에 부딪힌다. -ReRAM, STT-RAM 및 3D Xpoint 와 같은 PM모듈의 등장으로 DRAM과 유사한 성능을 제공할 수 있다. (Table 1) -Persistent적 특징을 사용하려면 Memory management, ..

Hybrid2: Combining Caching and Migration in Hybrid Memory Systems

Abstract Hybrid2의 필요성 -3D-stacked Memory와 Off chip DRAM으로 구성된 시스템을 위함 -기존에는 DRAM Cache 혹은 Flat address space 방식으로 사용되었음 -메모리 용량 및 데이터 전송 Cost의 절충을 위한 Hybrid 방식을 구성 Intro 문제점 -컴퓨터 시스템의 성능은 대부분 Memory hierarchy 구조에 의해 좌우 -높은 대역폭:적은 용량을 가진 3D-stacked DRAM을 Near Memory, 낮은 대역폭:많은 용량을 가진 일반 DRAM을 Far Memory -NM이 DRAM cache로 사용될 때, 메모리 시스템에서 NM용량은 무시 -NM이 Flat address space로 사용될 때, Swap으로 인한 오버헤드 증가 -..

컴퓨터 구조 Ch02_"Language of the Computer-4"

2.11 병렬성과 명령어 : 동기화 Task들이 종속 관계 및 협력 관계에 있을때 데이터 경쟁관계(Race Condition)의 위험이 있다. 즉, 이벤트의 일어나는 순서에 따라 프로그램의 결과가 달라질 수 있는 상황이다. 동기화 메커니즘은 일반적으로 사용자 수준 소프트웨어 루틴에서 제공되는데 이 소프트웨어 루틴들은 하드웨어가 제공하는 동기화 명령을 사용한다. 여기서는 간단하게 lock, unlock 동기화를 사용한다. lock, unlock은 critical section이라 칭하는 하나의 공간을 생성하며 이 공간은 오직 하나의 프로세서만이 실행 가능하다.즉, Mutual Exclusion하게 실행된다는 의미이다. 이런 방법을 제공하기위해 원자적 교환(Atomic swap)을 사용하게된다. 이는 레지스..

반응형