SimpleScalar는 앞서 설명했듯, 컴퓨터 아키텍처 시뮬레이션 및 성능 모델링 도구로 프로세서와 메모리 계층을 모델링하고 다양한 프로그램을 시뮬레이션하여 성능을 분석할 수 있는 환경을 제공하는 프로젝트이다.
SimpleScalar에 있는 다양한 디렉토리와 파일이 포함되어 있으며, 각각의 역할을 알아보고자 한다.
아래는 전체 디렉토리와 파일이다.
<디렉토리>
[1] config : 시뮬레이션을 실행할 때 사용되는 매개변수들을 정의
- 디렉토리에 포함된 파일들 -
> alpha.cfg : alpha 아키텍처 시뮬레이션
> arm.cfg : arm 아키텍처 시뮬레이션
> x86.cfg : x86 아키텍처 시뮬레이션
> default.cfg : 시뮬레이션 기본 설정 파일 - 특정 아키텍처에 대한 설정 파일이 없는 경우
따라서, config 디렉토리의 구성 파일들을 편집함으로써 프로세서의 기능, 캐시 구성, 파이프라인 설정 등을 조절할 수 있다.
[2] libexo : Extended Objects를 지원하기 위한 라이브러리로, 프로그램의 동작을 추적하고 분석하는데 사용
→ 다양한 종류의 실행 추적 정보를 기록하고 이 정보를 분석하는 기능을 제공한다. 이 추적 정보는 프로그램의 실행시간 동안 발생하는 다양한 이벤트와 상태를 기록하여 프로그램 동작을 이해하고 성능을 분석하는데 사용된다.
- libexo의 목적-
> 실행 추적 : 명령어 실행, 메모리 액세스, 분기 등의 이벤트를 추적하고 기록
> 통계 수집 : 명령어 수행 횟수, 메모리 액세스 패턴, 분기 예측 결과 등의 통계 정보를 수집하고 분석
> 성능 분석 : 추적된 정보를 기반으로 프로그램의 성능을 평가하고 병목 현상을 식별
> 디버깅 : 추적된 정보를 분석하여 프로그램의 동작 중 발생하는 이슈나 오류 분석
[3] SimpleScalar 구성과 테스트 파일을 다루는 디렉토리
- "target-alpha"와 "target-pisa": 각각 Alpha 아키텍처와 MIPS 아키텍처를 위한 시뮬레이터의 설정 파일과 소스 코드
- "tests-alpha"와 "tests-pisa": 각각 Alpha 아키텍처와 MIPS 아키텍처를 위한 테스트 프로그램과 관련 파일
- "tests": 다양한 아키텍처에 대한 테스트 프로그램과 파일을 모아놓은 디렉토리
< 시뮬레이션 모델(도구) >
아래의 도구들은 SimpleScalar 프레임워크 내에서 특정한 시스템 컴포넌트를 모델링하거나 분석하는 역할을 한다. 이 도구들을 조합하여 다양한 시뮬레이션 실험을 수행하고 시스템의 성능과 동작을 평가할 수 있다.
- sim-bpred: 분기 예측기 모델을 시뮬레이션하는 도구입니다. 분기 예측기의 동작과 성능을 평가
- sim-cache: 캐시 메모리 시스템을 시뮬레이션하는 도구로, 다양한 캐시 구성과 정책을 실험하고 성능을 분석
- sim-eio: 외부 I/O 디바이스를 시뮬레이션하는 도구로, 입출력 작업을 시뮬레이션하며 디스크 또는 네트워크 동작의 영향 분석
- sim-fast: 단순화된 고속 시뮬레이션 모드를 제공하는 도구입니다. 세부적인 동작을 덜 고려하고 더 빠른 시뮬레이션 수행
- sim-outorder: 아웃오브오더 슈퍼스칼라 프로세서를 시뮬레이션하는 도구입니다. 프로세서의 파이프라인 구조와 명령어 수행 순서 등을 모델링하여 성능 분석
- sim-profile: 프로그램의 프로파일링을 수행하는 도구로, 명령어 실행 빈도와 분기 예측 정보 등을 수집
- sim-safe: 안전한 모드에서 프로그램을 시뮬레이션하는 도구로, 예외 상황이나 오류가 발생하는 경우에도 안전하게 진행
실습
심플스칼라(sim-outorder) 시뮬레이터가 <config_file>에 지정된 설정 파일을 사용하여 ./tests/bin/test-math 프로그램을 실행
이 명령어와 같은 경우 다음과 같은 구조이다.
./sim-outorder -config <config_file> ./tests/bin/test-math
- ./sim-outorder: SimpleScalar 시뮬레이션 엔진을 실행하는 실행 가능한 파일
- -config <config_file>: 시뮬레이션 환경을 설정하기 위한 옵션으로, <config_file>에 지정된 설정 파일을 사용하여 컴퓨터 시스템의 파라미터를 설정
- ./tests/bin/test-math: 시뮬레이션할 프로그램의 실행 파일 경로입니다. 이 경우 test-math라는 프로그램을 실행
config 파일을 통해 설정한 시뮬레이션 환경과 프로그램이 결합되어 시뮬레이션 실행이 이루어졌다. 출력 결과는 설정 파일에 따라 달라지므로 파일을 조정하여 원하는 결과를 얻을 수 있다.
'Hardware > 실습' 카테고리의 다른 글
simplescalar[3] - victim cache 구현[1] <sim-outorder 분석> (1) | 2023.08.25 |
---|---|
simplescalar[1] - simplescalar란? (0) | 2023.08.11 |