BLOG ARTICLE 16bit cpu architecture | 1 ARTICLE FOUND

  1. 2009/02/02 컴퓨터구조 설계 및 실험 - 16bit CPU Architecture Design 최종 결과물 (3)



다운/퍼 가실 때 댓글 부탁드려요. 그리고 받으신 자료 유료 레포트 사이트에 올리지 말아주세요.


개발툴 : quatus II




16-bitCPUArchitectureDesign결과보고서.hwp : 과제 결과보고서

16bitsinglecpuarchitecture.zip : 소스코드



본문 내용 중 일부

3. 구 현

가. Block Diagram

1) 위 그림은 16bit architecture 형식의 single cpu의 블록다이어그램이다.

2) pc는 instruction memory에서 가져올 명령어의 주소를 가지고 있는데, 기본적으로 다음 pc는 1이 증가된 값을 가지고 있으며, branch 경우 pc에 pc + branch_address를 jump의 경우 해당 jump_address로 pc값이 변경된다.

3) pc에 해당하는 명령어를 instruction memory에서 꺼내면 instruction decoder를 통해서 해당 명령어에 따른 레지스터 주소와 immediate 값, 각종 control 신호를 세팅하게 된다.

4) 명령어를 분석하여 R-Type의 명령어가 판단이 되면 레지스터 rs와 rt에 해당하는 데이터가 빠져나와 ALU 연산을 수행하고 이 결과는 다시 레지스터 rd가 가리키는 곳에 저장된다.

5) I-Type의 명령어 중 ADDI 명령어라면 레지스터 rs에 해당하는 데이터와 immediate값이 ALU 연산되고 그 결과가 레지스터 rt가 가리키는 곳에 저장된다.

6) I-Type의 명령어 중 LD라면 레지스터 rs에 해당하는 데이터와 immediate 값이 ALU 연산(ADD)된 값을 주소로 하는 메모리의 데이터가 빠져나와 레지스터 rt가 가리키는 곳에 저장된다.

7) I-Type의 명령어 중 ST라면 레지스터 rs에 해당하는 데이터와 immediate 값이 ALU 연산(ADD)된 값을 주소로 하는 메모리에 레지스터 rt의 데이터가 저장된다.

8) R-Type의 명령어 중 BEQ라면 레지스터 rs와 rt에 해당하는 데이터 값을 ALU 연산 (compare)하여 그 결과가 0이라면 다음 pc값을 pc+branch_address로 변경한다.

9) J 명령어가 판단이 되면, 다음 pc 값을 jump_address로 변경하고, 이 때 레지스터와 메모리는 사용되지 않는다.


저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License