Pipelined MIPS Processor

거창하게 pipelined MIPS proessor라고 써놓았지만
만드는 방법에 대한 얘기는 아니다

이번 학기에 5-stage pipelined MIPS processor를 구성하고
주어지는 app에 대한 ASIP으로 optimization한 적이 있는데

그것에 대한 얘기
일단 현재 만들어진 것의 performance는 다음과 같다.


요건 compilation report
total logic elements가 5235개 인것을 확인할 수 있다.
자세한 내용은


일단은 ALU multiplier가 포함된 size이며
multiplier는 booth encoding을 하지 않은(...)
tree구조의 multiplier가 사용되었다.
그래서 먼저 booth encoding부터 시작해야겠고,

register file에 swap logic이 있기 때문에
그 부분에 사용된 로직이 크다.(딜레이도 크다... 굉장히)


그래서 clock rate는 28.67MHz(period는 35ns)인데,
swap logic이 추가되기 전에는 multiplication도
25ns까지 나왔지만 갑자기 부왘 하고


그래서 output port(이거 안뽑아주고 리셋하고 클락만 넣으면 
극강 synthesize해버려서 작동을 안한다-_-)
당연히 ALU와, register file에 접근할 때
두 경우를 일단 반으로 뚝 짤라주면 간단하게도 큰 성능향상이 얻어질 수 있을것 같다.



요건 35ns로 simulation한 결과

x = 12의 sum of factorial(∑(n!))이 3179ns에 얻어지며
10개의 수를 bubble sort한 결과(register를 8개만 사용했을 때)가
2907ns에 얻어지는 것을 확인할 수 있다.

일단은 계절*-_-*학기를 마쳐야하지만
요걸 심각하게 pipelining해보는 것이 주요 포스팅이 되겠따

아 참
여기서 사용한 adder는
RCA와 ladner-fischer prefix adder이다
쪼개면서 대부분 걍 full adder로 변환될것 같지만
일단은 그럿타

댓글

이 블로그의 인기 게시물

중국 컵라면 강사부 홍소우육면 康师傅 红烧牛肉面 캉시푸 홍샤오니우러우미엔

Hilton 등급 없이 Visa Infinite 카드로 룸 업그레이드 받고 Hilton Gold Fast Track 달성하기

토탈워:삼국 예약판매 스틸북 개봉기 Total war:Three kingdoms Steel book edition