마이크로아키텍처 시뮬레이션

Microarchitecture simulation

마이크로아키텍처 시뮬레이션컴퓨터 건축 연구와 컴퓨터 과학 교육에서 중요한 기술이다. 그것은 ALU, 캐시 메모리, 제어 장치, 데이터 경로와 같은 마이크로프로세서와 그 구성요소의 설계와 동작을 모델링하는 도구다. 시뮬레이션을 통해 연구자들은 새로운 마이크로아키텍처 기능의 성능과 효율성을 평가할 뿐만 아니라 디자인 공간을 탐색할 수 있다. 를 들어, 분기 예측 변수, 재주문 버퍼, 추적 캐시와 같은 몇몇 마이크로아키텍처 구성요소는 오늘날의 현대 마이크로프로세서에서 공통 구성요소가 되기 전에 수많은 시뮬레이션 주기를 거쳤다. 게다가, 시뮬레이션은 또한 교육자들이 직접 경험을 가지고 컴퓨터 조직과 건축 과정을 가르칠 수 있게 한다.

컴퓨터 하드웨어의 시스템 레벨 시뮬레이션에 대해서는 전체 시스템 시뮬레이션을 참조하십시오.

분류

마이크로아키텍처 시뮬레이션은 입력 유형과 세부사항 수준에 따라 여러 범주로 분류할 수 있다. 구체적으로, 입력은 실제 마이크로프로세서의 프로그램 실행(추적 구동 시뮬레이션) 또는 프로그램 자체(즉, 실행 구동 시뮬레이션)에서 수집된 추적일 수 있다.

추적 구동 시뮬레이션은[1] 파일에서 추적 레코드의 고정된 시퀀스를 입력으로 읽는다. 이러한 추적 레코드는 일반적으로 메모리 참조, 분기 결과 또는 특정 기계 지침을 나타낸다. 추적구동 시뮬레이션은 비교적 속도가 빠르고 그 결과 재현성이 높은 것으로 알려져 있지만, 매우 큰 저장 공간도 필요하다. 반면에 실행 중심의 시뮬레이션은[2] 프로그램을 읽고 즉석에서 기계 명령의 실행을 시뮬레이션한다. 프로그램 파일은 일반적으로 추적 파일보다 작은 몇 개의 크기다. 그러나 실행 주도 시뮬레이션은 각 지시사항을 하나씩 처리하고 관련된 마이크로아키텍처 구성요소의 모든 상태를 업데이트해야 하기 때문에 추적 주도 시뮬레이션보다 훨씬 느리다. 따라서 시뮬레이션을 위한 입력 유형의 선택은 공간과 시간 사이의 절충이다. 특히, 매우 정확한 시뮬레이션을 위한 매우 상세한 추적은 매우 큰 저장 공간을 필요로 하는 반면, 매우 정확한 실행 중심의 시뮬레이션은 프로그램의 모든 지시를 실행하는 데 매우 오랜 시간이 걸린다.

입력 형식과 별도로 세부사항의 수준은 시뮬레이션 분류에도 사용될 수 있다. 특히, 명령 집합 시뮬레이터는 명령 실행의 거친 타이밍과 함께 명령 스케줄러의 눈을 통해 마이크로프로세서에서 프로그램을 실행하는 마이크로프로세서를 시뮬레이션하는 소프트웨어를 사이클-정확한 시뮬레이터라고 한다. 컴퓨터 구조에서 실습 경험이 있는 대부분의 컴퓨터 과학 수업은 교습 도구로서 명령 집합 시뮬레이터를 채택하고 있는 반면, 주기정확한 시뮬레이터는 복잡성과 자원 소비 둘 다로 인해 주로 연구 프로젝트에 배치된다.

우사게스

마이크로아키텍처 시뮬레이터는 다양한 용도로 배치된다. 그것은 연구자들이 비용이 많이 들 뿐만 아니라 시간 소모적인 실제 마이크로프로세서 칩을 조작할 필요 없이 그들의 아이디어를 평가할 수 있게 해준다. 예를 들어, 수천 개의 코어와 여러 단계의 캐시 메모리로 마이크로프로세서를 시뮬레이션하는 것은 프로토타이핑 칩의 제작과 비교할 때 비용이 거의 들지 않는다. 연구원들은 또한 무언가 다른 것을 테스트하고 싶을 때마다 새로운 칩을 제작해야 하는 대신에 시뮬레이터에서 서로 다른 캐시 모델을 사용하여 캐시 계층 구조의 여러 구성으로 게임을 할 수 있다.

마이크로아키텍처 시뮬레이터의 또 다른 용도는 교육에 있다.[3] 컴퓨터 아키텍처의 강좌가 학생들에게 많은 다른 마이크로프로세서의 특징과 그 구조를 가르친다는 점을 고려할 때, 마이크로 아키텍처 시뮬레이터는 한 학기 동안 다양한 특징과 아키텍처를 모델링하고 실험하는데 이상적이다. 예를 들어, 학생들은 한 학기 초에 간단한 마이크로프로세서 설계를 모델링하는 마이크로아키텍처 시뮬레이터로 시작할 수 있다. 학기가 진행됨에 따라 교실에서 소개되는 대로 지도 파이프라이닝, 레지스터 이름 변경, 예약 스테이션, 주문실행, 점수 보딩 등의 추가 기능을 모델링해 시뮬레이터에 추가할 수 있다. 마이크로아키텍처 시뮬레이터는 최소한의 비용으로 재구성 및 테스트의 유연성을 제공한다.

  • 음영[4](추적 기반, 명령 집합 시뮬레이터)
  • SimpleScalar[5](실행 기반 사이클-정확한 시뮬레이터)
  • SPIM[6](실행 기반 명령 집합 시뮬레이터)
  • SMTSIM[7](실행-구동 사이클-정확한 시뮬레이터)

참조

  1. ^ Uhlig, R. A., & Mudge, T. N. (2004) 추적 구동 메모리 시뮬레이션: 설문 조사. ACM 컴퓨팅 설문 조사, 29(2), 128-170.
  2. ^ 버거, D, & 오스틴, T. M. (1997) Simplescalar Tool Set 버전 2.0. 컴퓨터 건축 뉴스, 25(3), 13-25.
  3. ^ 스카드론, K. (1996년). 고급 컴퓨터 아키텍처 학습을 위한 마이크로프로세서 조사 과정 2002년 ACM SIGCSE 회의의 진행에서, 152-156.
  4. ^ Cmelik, R. F., & Keppel, D. (1994년) 음영: 실행 프로파일링을 위한 빠른 명령 집합 시뮬레이터. ACM SIGMETRANS 성능 평가 검토, 22(1), 128-137.
  5. ^ 오스틴, T, 라슨, E, & 에른스트, D. (2002) SimpleScalar: 컴퓨터 시스템 모델링을 위한 인프라. IEEE 컴퓨터 매거진, 35(2), 59-67.
  6. ^ 패터슨, D. A. & Hennessy, J. L.(2011). 컴퓨터 구성 및 설계: 하드웨어/소프트웨어 인터페이스, Morgan Kaufmann.
  7. ^ 툴센, D. M. (1996년) 동시 멀티스레딩 프로세서의 시뮬레이션 및 모델링. 제22회 연례 컴퓨터 측정 그룹 회의의 진행 중.

외부 링크