본문 바로가기
Hardware/실습

simplescalar[2] - 디렉토리와 파일 분석 및 실습

by je0nsye0n 2023. 8. 18.

SimpleScalar는 앞서 설명했듯, 컴퓨터 아키텍처 시뮬레이션 및 성능 모델링 도구로 프로세서와 메모리 계층을 모델링하고 다양한 프로그램을 시뮬레이션하여 성능을 분석할 수 있는 환경을 제공하는 프로젝트이다.

 

SimpleScalar에 있는 다양한 디렉토리와 파일이 포함되어 있으며, 각각의 역할을 알아보고자 한다.

아래는 전체 디렉토리와 파일이다.

 

<디렉토리>

 

[1] config : 시뮬레이션을 실행할 때 사용되는 매개변수들을 정의

- 디렉토리에 포함된 파일들 -

> alpha.cfg : alpha 아키텍처 시뮬레이션

> arm.cfg : arm 아키텍처 시뮬레이션

> x86.cfg : x86 아키텍처 시뮬레이션

> default.cfg : 시뮬레이션 기본 설정 파일 - 특정 아키텍처에 대한 설정 파일이 없는 경우

따라서, config 디렉토리의 구성 파일들을 편집함으로써 프로세서의 기능, 캐시 구성, 파이프라인 설정 등을 조절할 수 있다.

 

[2] libexo : Extended Objects를 지원하기 위한 라이브러리로, 프로그램의 동작을 추적하고 분석하는데 사용

→ 다양한 종류의 실행 추적 정보를 기록하고 이 정보를 분석하는 기능을 제공한다. 이 추적 정보는 프로그램의 실행시간 동안 발생하는 다양한 이벤트와 상태를 기록하여 프로그램 동작을 이해하고 성능을 분석하는데 사용된다.

- libexo의 목적-

> 실행 추적 : 명령어 실행, 메모리 액세스, 분기 등의 이벤트를 추적하고 기록

> 통계 수집 : 명령어 수행 횟수, 메모리 액세스 패턴, 분기 예측 결과 등의 통계 정보를 수집하고 분석

> 성능 분석 : 추적된 정보를 기반으로 프로그램의 성능을 평가하고 병목 현상을 식별

> 디버깅 : 추적된 정보를 분석하여 프로그램의 동작 중 발생하는 이슈나 오류 분석

 

[3] SimpleScalar  구성과 테스트 파일을 다루는 디렉토리

  1. "target-alpha"와 "target-pisa": 각각 Alpha 아키텍처와 MIPS 아키텍처를 위한 시뮬레이터의 설정 파일과 소스 코드
  2. "tests-alpha"와 "tests-pisa": 각각 Alpha 아키텍처와 MIPS 아키텍처를 위한 테스트 프로그램과 관련 파일
  3. "tests": 다양한 아키텍처에 대한 테스트 프로그램과 파일을 모아놓은 디렉토리

 

< 시뮬레이션 모델(도구) >

아래의 도구들은 SimpleScalar 프레임워크 내에서 특정한 시스템 컴포넌트를 모델링하거나 분석하는 역할을 한다. 이 도구들을 조합하여 다양한 시뮬레이션 실험을 수행하고 시스템의 성능과 동작을 평가할 수 있다.

  1. sim-bpred: 분기 예측기 모델을 시뮬레이션하는 도구입니다. 분기 예측기의 동작과 성능을 평가
  2. sim-cache: 캐시 메모리 시스템을 시뮬레이션하는 도구로, 다양한 캐시 구성과 정책을 실험하고 성능을 분석
  3. sim-eio: 외부 I/O 디바이스를 시뮬레이션하는 도구로, 입출력 작업을 시뮬레이션하며 디스크 또는 네트워크 동작의 영향 분석
  4. sim-fast: 단순화된 고속 시뮬레이션 모드를 제공하는 도구입니다. 세부적인 동작을 덜 고려하고 더 빠른 시뮬레이션 수행
  5. sim-outorder: 아웃오브오더 슈퍼스칼라 프로세서를 시뮬레이션하는 도구입니다. 프로세서의 파이프라인 구조와 명령어 수행 순서 등을 모델링하여 성능 분석
  6. sim-profile: 프로그램의 프로파일링을 수행하는 도구로, 명령어 실행 빈도와 분기 예측 정보 등을 수집
  7. sim-safe: 안전한 모드에서 프로그램을 시뮬레이션하는 도구로, 예외 상황이나 오류가 발생하는 경우에도 안전하게 진행

 

 

실습

심플스칼라(sim-outorder) 시뮬레이터가 <config_file>에 지정된 설정 파일을 사용하여 ./tests/bin/test-math 프로그램을 실행

이 명령어와 같은 경우 다음과 같은 구조이다.

./sim-outorder -config <config_file> ./tests/bin/test-math

  1. ./sim-outorder: SimpleScalar 시뮬레이션 엔진을 실행하는 실행 가능한 파일
  2. -config <config_file>: 시뮬레이션 환경을 설정하기 위한 옵션으로, <config_file>에 지정된 설정 파일을 사용하여 컴퓨터 시스템의 파라미터를 설정
  3. ./tests/bin/test-math: 시뮬레이션할 프로그램의 실행 파일 경로입니다. 이 경우 test-math라는 프로그램을 실행

실행 결과

 

config 파일을 통해 설정한 시뮬레이션 환경과 프로그램이 결합되어 시뮬레이션 실행이 이루어졌다. 출력 결과는 설정 파일에 따라 달라지므로 파일을 조정하여 원하는 결과를 얻을 수 있다.