전공/컴퓨터구조

[컴퓨터구조] #7 단일 사이클 구현 2 - 추가 사설 문제

Campus Coder 2023. 4. 25. 18:29
728x90
반응형

문제

  1. 단일 사이클 데이터패스에서 별도의 명령어 메모리와 데이터메모리를 가지는 이유는 무엇인가요?
  2. ALU에서 Load/Store와 Branch의 연산은 각각 무엇인가요?
  3. ALU 제어신호를 위한 진리값은 어떻게 결정되나요?
  4. 각 제어신호의 의미는 무엇인가요?
  5. R-type Instruction(add $t1, $t2, $t3)의 실행 과정을 설명하세요.
  6. Load Instruction의 실행 과정을 설명하세요.
  7. Branch on equal instruction(beq $t1, $t2, offset)의 실행 과정을 설명하세요.
  8. Jump 명령어가 추가될 때 필요한 추가 제어 신호는 무엇인가요?
  9. 단일 사이클 구현에서 모든 명령어에서 클럭사이클이 같은 길이를 가져야 하는 이유는 무엇인가요?
  10. 멀티 사이클 구현의 장점은 무엇인가요?
  11. 멀티 사이클 구현에서 추가로 필요한 것은 무엇인가요?

 


정답

 

  1. 별도의 형식(명령어, 데이터)을 가지기 때문입니다. 메모리를 별도로 가지면 저렴합니다(듀얼포트 메모리에 비해). 한 사이클에 명령어메모리와 데이터메모리 동시 접근이 가능합니다.
  2. Load/Store는 add(메모리주소 계산)이고, Branch는 substract(같은지 비교를 위해)입니다.
  3. ALU 제어신호를 위한 진리값은 opcode와 funct 필드의 값에 따라 결정됩니다.
  4. RegDest: 0 -> 명령어 rd필드가 Write Register 번호가 됨, 1 -> 명령어 rt필드가 Write Register 번호가 됨. RegWrite: 1 -> Write data값을 Write Register 번호에 씀. ALUSrc: 0 -> Read Data 2가 ALU의 두 번째 오퍼랜드가 됨, 1 -> 부호확장된 명령어의 하위 16 비트값이 ALU의 두 번째 오퍼랜드로. PCSrc: 0 -> PC에 4를 더함, 1 -> 분기 목적지 주소값을 새로운 PC값으로. MemRead: 1 -> 데이터메모리의 Address 주소의 값의 Read Data의 출력으로 나옴. MemWrite: 1 -> Write Data의 값을 데이터메모리의 Address 값에 기록. MemtoReg: 0 -> ALU 출력이 레지스터 Write Data 입력값으로, 1 -> 데이터메모리 출력이 레지스터 Write Data 입력으로.
  5. R-type Instruction(add $t1, $t2, $t3)의 실행 과정은 다음과 같습니다: 명령어 인출 및 PC증가 -> $t2, $t3를 읽음 + 제어선 값 설정 -> ALU에서 연산, ALU제어값은 funct값(5:0)을 사용 -> ALU의 결과값을 레지스터에 저장(명령어의 15:11 값을 사용해서 $t1을 설정).
  6. Load Instruction의 실행 과정은 다음과 같습니다: 명령어 인출 및 PC증가 -> 레지스터 $t2의 값 읽음 -> ALU는 레지스터에서 읽은 값과 명령어의 하위 16비트(offset)에 부호확장된 값을 더함 -> 결괏값을 데이터메모리의 주소로 사용 -> 메모리에서 가지고 온 값을 $t1(대상은 명령어의 20:16)에 사용.
  7. Branch on equal instruction(beq $t1,
  8. Jump 명령어가 추가될 때 Opcode에서 추가 제어 신호(control signal)가 필요합니다.
  9. 단일 사이클 구현에서 모든 명령어에서 클럭사이클이 같은 길이를 가져야 하는 이유는 전체적인 성능 감소를 막기 위해서입니다. 크리티컬 패스는 적제(Load) 명령어 - 명령어메모리, 레지스터 파일, ALU, 데이터메모리, 레지스터 파일 사용 - 이므로 클럭사이클은 적재 명령어에 맞춰야 합니다.
  10. 멀티 사이클 구현의 장점으로는 각 단계를 한 사이클씩 사용하기 때문에 명령어마다 필요한 클럭 수가 달라질 수 있습니다. 한 명령어 안에서 기능유닛 여러 번 사용 가능하며, 한 명령어 실행 네에서 기능 유닛을 공유 가능합니다. 하드웨어 비용도 감소합니다.
  11. 멀티 사이클 구현에서 추가로 필요한 것으로는 추가 Mux/임시 레지스터/제어신호가 있습니다.

 

 

2023.04.23 - [컴퓨터구조] - [컴퓨터구조] #7 단일 사이클 구현 2

728x90
반응형