VHDL을 사용하여 32비트 MIPS 프로세서를 설계
- 최초 등록일
- 2007.01.19
- 최종 저작일
- 2006.12
- 64페이지/
한컴오피스
- 가격 2,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
VHDL을 이용하여 32비트 다중 사이클 MIPS 프로세서를 설계하였습니다.
총 64페이지의 분량을 가지고 있으며, Hennessy 저자의 마이크로프로세서 및 컴퓨터 구조 책을 기반으로 작성하였습니다. 추가로 하버드 아키텍쳐 및 각종 연산자 그리고 ALU에 CLA Adder와 Booth 알고리즘을 사용한 곱셈기를 구현하였습니다. 기본만 필요하신 분은 삭제가 가능합니다. MIPS 프로세서 설계에 대한 최종 완성본이라고 생각하시면 됩니다. 기초부터 자세히 설명한 레포트입니다. 각종 표와 차트 그리고 시뮬레이션에 고찰까지 완벽합니다. 참고로 A+ 맞은 레포트입니다. ( 각종 참고자료와 소스코드 그리고 시뮬레이션 결과가 자세한 설명과 함께 포함되어있습니다. )
목차
1. 목적 및 개선 사항
2. 구현된 명령어 집합
3. 컴포넌트 소스 및 분석
4. 어셈블리 언어 변환 문제
5. 고 찰
본문내용
마이크로프로세서 교재 한글판 374페이지에 나와 있는 유한 상태 다이어그램에서는 기본적인 MIPS 명령어들 밖에 지원하지 않고, 하버드 아키텍처를 만들기 위해서는 새로운 유한 상태 다이어그램이 필요하다고 느꼈습니다. 또한 addi나 subi 같은 명령어는 자주 사용되는 명령어임에도 불구하고, 구현되지 않았음을 볼 수 있었습니다. 그래서 위의 컨트롤 신호에 따른 동작 차트와 아래의 그림을 참고하여 ALUOp 부분과 ALUSrcB 부분을 최적화하여, 분기 명령어도 구동가능하게 하였으며, 메모리 관련 신호 부분에서 명령어와 관련된 것은“I_”로 시작하고 데이터와 관계된 메모리는“D_”로 시작하는 단어로 변경하였습니다.
R-format 은 Execution 단계인 ALU에서 많은 지연이 일어나기 때문에, ALU에 사용되는 컴포넌트를 통합하여 데이터 패스를 줄이고, Carry 지연을 일으키는 Ripple Carry Adder를 Carry Look-Ahead Adder로 바꾸고 새롭게 게이트 연산들과 Booth 알고리즘을 사용한 곱셈기를 추가하였습니다.
다음으로 생각한 개선 방향은 MIPS 프로세서 동작 과정에서의 지연을 최대한 줄이기 위해 블록간의 데이터 이동에 사용되는 데이터 패스를 최대한 짧게 하는 것이었습니다. 이를 위해 시뮬레이션을 위한 출력 포트에 사용되는 신호선(signal)들을 대부분 제거하였고, 불필요한 컴포넌트의 수를 최대한 줄이기 위해서 MUX와 레지스터 A, B 같은 보조적인 컴포넌트들은 메인 컴포넌트에 통합시켰습니다.
참고 자료
David A. Patterson and John L. Hennessy, Computer Organization & Design, 1999
컴퓨터 구조론 강의 노트 4장
마이크로프로세서 설계 강의 노트 5장