마이크로 사이클 타임과 CPU클럭 주기의 관계에 따라 3가지로 구분 된다.
1. 동기 고정식(Synchronous Fixed)
CPU clock 주기를 Micro cycle time과 같도록 맞춘다. 실제 Micro operation의 수행 시간은 다르므로 CPU clock과 같도록 맞추려면 Micro operation 중 가장 수행시간이 긴 것과 맞춰야 한다.
예를 들어 여러 Micro operation의 수행시간이 1, 5, 2, 4, 6, 3 등으로 서로 다르다면 Cycle time은 6으로 맞추어야 한다. 최소값이 1이나 평균값인 3정도로 맞춘다면 수행시간이 6인 Micro operation은 수행될 수 없기 때문이다. 보다 시피 구현은 무척이나 간단하다. 그리고 Micro operation의 수행시간이 비슷비슷한 시스템에서는 좋은 효율을 보인다. 하지만 현실은 그렇지 않다 보니 CPU의 시간 낭비가 심한 편이다.
2. 동기 가변식(Synchronous Variable)
아까처럼 여러 Micro operation의 수행시간이 1, 5, 2, 4, 6, 3라면 CPU clock을 6으로 맞추는 것은 CPU의 시간낭비가 있다고 하였다. 이를 해결하기 위해 동기 가변식은 수행시간이 유사한 Micro operation끼리 그룹을 나눈다. 예를 들면 CPU clock을 6으로 하는게 아니라 3으로 하는 그룹고 6으로 하는 그룹으로 나누는 것이다. 그럼 수행시간이 1, 2, 3인 Micro operation은 CPU clock을 3으로 하고 4, 5, 6인 Micro operation은 6으로 함으로써 시간 낭비를 줄일 수 있다. 각 그룹간 사이클 타임의 동기를 맞추기 위해 각 그룹 간 Cycle time은 배수로 맞추어야 한다.
2, 4, 8 또는 3, 6, 12 등으로 맞추어야 한다는 것이다.
동기 가변식 보다 효율이 높지만 그 만큼 제어기의 구현은 좀 더 까다로워 진다.
3. 비동기식(Asynchronous)
모든 Micro operation에 대해 서로 다른 Cycle time을 정하는 것이다. 잘만 구현 된다면 최고의 효율을 가진 CPU가 구현 되겠지만 제어기가 매우매우 복잡해 질 수 밖에 없기 때문에 현실적으로 구현이 어렵고 실제로는 거의 사용되지 않는다.
문제 하나를 풀어보자
동기 고정식 마이크로오퍼레이션(MO) 제어의 특징을 설명한 것으로 틀린 것은?
1. 제어장치의 구현이 간단하다.
2. 중앙처리장치의 시간이 이용이 비효율적이다.
3 여러 종류의 MO 수행 시 CPU사이클 타임이 실제적인 오퍼레이션 시간보다 길다.
4. MO이 끝나고 다음 오퍼레이션이 수행될 될 때까지 시간지연이 있게 되어 CPU 처리 속도가 느려진다.
정답은 4번이다. 3번과 4번 사이 논란이 조금 있었던 문제이다. 3번의 표현이 모호하고 4번도 맞는 말 같아 보이기 때문이다.
3번부터 잘 뜯어 보자면 맞는 말이 맞다. 수행시간이 다른 여러 MO(Micro Operation)에 Cycle time을 맞추려면 가장 긴 수행시간으로 맞추어야 한다고 하였다. 당연히 Cycle time이 평균적인 MO의 수행시간보다는 길 것이다. '실제적인' 이라는 표현이 좀 모호하긴 했다.
4번은 언뜻 보기에 맞는 말 같지만 operation과 operation 사이의 시간지연에 대해 언급 했으므로 아까 우리가 언급한 CPU의 시간낭비와는 다르게 보아야 한다. 긴 Cycle time안에서 짧은 MO가 빨리 끝나버리면 분명히 남는 시간이 있고 이를 시간지연이라고 표현 한다면 틀린 말은 아니다. 하지만 깊게 알고 보면 이 시간지연은 cycle과 cycle 사이의 시간 지연으로 보아야 한다. 비동기식과 같은 복잡한 제어기를 가진 CPU에서 발생할 수 있는 문제이다.
'IT 이론 > 컴퓨터구조' 카테고리의 다른 글
인터럽트(Interrupt)의 개념과 종류 (4) | 2016.10.09 |
---|---|
명령어의 형식과 주소 지정방식 (0) | 2016.10.08 |
Instruction Set Architecture : RISC와 CISC (0) | 2015.10.20 |
BCD코드와 3초과(Excess-3) 코드 (4) | 2015.10.20 |
그레이 코드(Gray code)를 사용하는 이유? (0) | 2015.10.17 |
댓글