[컴퓨터구조] single cycle 의 단점, multi cycle
single cycle 구현의 단점
- 1 clock cycle 안에 일어나는 일이 너무 많이 주기가 길어진다.
-명령어 마다 긴 clock cycle을 다 활용하지 못한다. ( lw 제외) -> 시간을 낭비하게 된다.
- single cycle은 memory 가 2개(data, instruction) 로 분리되어 있다.
: 한 clock cyle 안에 매번 명령어 fetch를 해야하고 동시에 lw,sw 명령어는 memory로 부터 데이터를 읽어야 하기 때문 (하나의 메모리에 대해서 두 개의 읽기/쓰기가 이루어 질 수 없었음)
이러한 단점으로 multi cycle 이라는 대안이 있음
multi cycle 구현의 장점
- 명령어 마다 실행시간이 다른 것을 반영할 수 있다. (lw, sw, beq, R-type 은 각기 실행시간이 다르다.)
- hw 리소스를 공유할 수 있다.
ex) single cycle은 ALU 쓰는 동안에 PC 값을 계산하기 위해 덧셈기가 2개이다. 하지만 multi cycle에서는 하난의 연산기를 여러시간에 걸쳐 나눠쓸 수 있다.
- multi cycle은 하나의 메모리를 두고 시간에 따라 나누어 쓰면 된다. (data ,instruction)
☞ hw리소스, 하나의 메모리로 전체 hw 설계의 면적을 줄일 수 있다.
multi cycle 구현의 단점
- 제어가 복잡해진다.
ex) single cycle일 때는 각자의 제어신호가 어떤 것이여야하는지 한번에 알 수 있음 (진리표로 작성) multi cycle 은 어느 시간에 특정 값을 가져야하는지를 고려해야 한다.(시간 개념을 가진 회로 필요) ☞ 순차회로(finite state machine)필요
- 데이터를 임시로 저장할 장소가 필요하다. ☞ 임시 저장을 위해 내부의 레지스터 개수가 늘어난다.
- hw 공유 : 데이터를 받는 경로와 보내는 경로가 굉장히 다양해 지기 때문에 추가적인 Multiplexer가 필요하다.
왜 multi cycle을 배우는가?
- 시간, 면적, 설계 난이도면에서 single cycle, multi cycle 중에 어떤 것이 더 나은지 생각해 볼 수 있다.
- hw가 설계하는 다양한 방법이 있음을 알 수 있다.