검색어 입력폼

서강대학교 컴퓨터아키텍쳐_설계_Instruction_Simulator

저작시기 2012.12 |등록일 2013.04.12 | 최종수정일 2014.01.03 파일확장자압축파일 (zip) | 20페이지 | 가격 2,500원

소개글

C언어를 이용한 32bit 프로세서 설계입니다. Load-Store Architecture를 적용하였습니다.
C 코드가 포함되어 있으며, 보고서에 코드의 동작 및 시뮬레이션 결과가 분석되어 있습니다.
공부에 많은 도움되길 바랍니다.

목차

1. 제목
2. 목적
3. 목표 및 기준설정
4. 합성 및 분석
5. 시험 및 평가
6. 논의사항
7. 참고문헌

본문내용

1. 제목 : 인스트럭션 수행을 위한 프로세서 설계와 시뮬레이션

2. 목적
인스트럭션 수행을 위한 32비트 프로세서 설계를 통해 32비트 프로세서의 데이터패스 구조와 인스트럭션 수행과정을 이해하고 파이프라인 프로세서의 동작 흐름을 숙지한다. 또한, C를 이용해 프로세서를 설계함으로써 C의 코딩 방법을 익히고 동작 확인 과정을 통해 Behavioral 시뮬레이션 방법을 익힌다.

3. 목표 및 기준 설정
(1) 목표
32bit Instruction Set Architecture/Load-Store Architecture의 5-stage pipeline processor를 설계한다.

(2) 인스트럭션의 구조
32bit instruction을 C언어로 구현하기에 앞서 instruction의 정의가 필요하다. 일반적으로 instruction은 R type(ALU 명령어), I type(Load & Store명령어) , J type (branch명령어)로 나눌 수 있다.

<중 략>

6. 논의 사항
(1) 다른 Architecture를 적용하여 설계할 때 고려할 사항 분석
우선 우리가 사용한 Architecture는 Load/Store Architecture로 위의 구현한 바에 따르면 register에 main memory의 data가 load되어 연산을 수행하고 그 연산의 결과를 다시 main memory에 store한다. store시키고 나면 이미main memory에 연산된 결과가 저장되어 register에 load 되었던 data는 쓸모가 없으므로 삭제가 가능하다. 그러므로 한 stage당 필요한 register의 수는 이론적으로 하나이며 이렇게 된다면 pipe line을 고려한 경우 register 5개만으로도 5stage의 연산이 가능하게 된다. 하지만 이와 다른 architecture로 ARM architecture가 있다.
ARM architecture에는 User, FIQ, IRQ, Supervisor, Abort, Undef, System mode가 있으며 각각의 mode마다 register가 있는데 총 37개의 register가 필요하다. 단순 load/store 보다 register가 많이 드는 이유는 interrupt가 발생하였을 때 현재 상태를 다른 register(SPSR)로 저장시키며 interrupt가 사라지고 나면 현재 프로그램 실행하는 register(CPSR)로 다시 불러온다. 즉 우리가 이 architecture로 설계하게 된다면 interrupt 발생시 사용되는 register(SPSR)의 구현과 CPSR이 SPSR로 data를 넘겨주는 동작을 만들어주어야 한다. 또 interrupt로 인해 동작이 delay되는 경우 그 기간동안 NOP instruction을 수행하는 동작도 설계해주어야 한다.

참고 자료

John L. Hennesy, "Computer Architecture : A Quantitative Approach", Elsevier Ltd, 2011. Ch. 2,4,5.
다운로드 맨위로