Single cycle - processor
1 clock cycle에 한 명령어가 진행된다. 그래서 CPI가 1이다.
원래 명령어마다 clock period가 다른데, 싱글 프로세서는 longest delay가
clock period를 결정하게 된다.(제일 시간이 많이 걸리는 명령어에 시간을 맞춘다.)
즉, 효율성이 없다. 로직과 클럭은 심플하다.
Multi cycle - processor
말 그대로 싱글 사이클을 쪼갠거다. - 그 대신 복잡하고, 레지스터가 더 필요하다.
CPI는 커지지만, Clock Time 자체는 줄고, longest delay 기준이 아니기 때문에
실질적인 excution time을 줄일 수 있다. 즉, 처리율이 극대화된다.
간단한 명령어는 빠르게, 복잡한 명령어는 느리게 - 명령어마다 다양한 사이클이 생긴다.
EX) 기본적으로 배울 때, IF -> RF -> EX -> MEM -> WB 사이클을 이 단위로 나눔.
하지만 현실에서는 13정도로 더 나누어져 있다. 30까지도 나누었었다는데,
너무 효율이 별로라 13정도가 제일 적당하다고 들었다.
- 기본적으로 파이프라이닝을 쓰는 프로세서 - 라고 생각하면 된다.
자, 구조에 대한 하이라이트!
멀티 프로세서에서 데이터 패스는 레지스터를 포함하여, 각 사이클 사이에 중간 값을 저장한다. = Control
컨트롤 유닛이 데이터 패스의 과정을 거친 변경된 값과 변경되지 않은 값들 다 쓰기 위한 것으로,
Branch문 같은 경우를 위해 중간 레지스터가 필요하다.
싱글 프로세서에서는 필요가 없다. 왜냐하면 한 사이클에 한 명령어니까, 브랜치문 끝나고 나서 쓰기 때문이다.
그래서 위에 멀티 프로세서가 복잡하고 레지스터가 더 많은 것이라고 하는 것이다.
'Study > CS' 카테고리의 다른 글
내가 보려고 만든 CS지식) 상속의 이유 (0) | 2020.10.23 |
---|---|
내가 보려고 만든 CS지식) 오버라이딩 vs 오버로딩 (0) | 2020.10.23 |
내가 보려고 만든 CS지식) 스레드 풀 (0) | 2020.10.23 |
내가 보려고 만든 CS지식) POST와 GET의 차이점 (0) | 2020.10.21 |
해저드(Hazard)란 무엇일까? (0) | 2019.12.20 |