학과공부/컴퓨터구조

Clock Cycle에 따른 PC 값 변화

tlsrhksdn1 2024. 11. 11. 23:11

CPU에서 Program Counter(PC)는 다음에 실행될 명령어의 메모리 주소를 가리킨다.

 

클록 사이클에 따라 PC의 값은 명령어를 실행하면서 순차적으로 변화하게 된다.

 

PC 값의 변화는 명령어 가져오기(Fetch), 명령어 디코드 및 실행(Decode and Execute), 조건 분기 처리 단계로 진행된다.

 

1. 초기 상태: 프로그램이 시작되면 PC는 프로그램의 첫 번째 명령어 주소로 설정된다.

 

2. 명령어 가져오기(Fetch): 클록 사이클이 시작되면, CPU는 PC가 가리키는 주소의 명령어를 가져온다.

이후 PC는 자동으로 증가하여 다음 명령어의 주소를 가리키게 된다.

 

각 명령어가 1바이트 또는 4바이트일 경우, PC는 다음 명령어를 가리키기 위해 1 또는 4씩 증가한다.

 

3. 명령어 실행:

CPU는 가져온 명령어를 디코딩하고 어떤 작업을 수행할지 결정한다.

순차적인 실행이 필요한 명령어라면 PC는 그대로 유지되며 다음 명령어를 가져오는 데 준비된다.

분기 또는 점프 명령어가 있다면 명령어의 조건이 성립하는지 검사한다. 조건이 성립하면 PC가 새로운 값으로 변경된다.

 

4. 분기 명령어 처리

jump, branch, call과 같은 분기 명령어가 실행되면, PC는 해당 명령어에 따라 다른 주소로 설정될 수 있다.

 

5. 루프와 함수 호출 

함수 호출 명령어의 경우 PC는 호출하는 함수의 시작 주소로 변경되며, 리턴 시에는 원래의 주소로 돌아온다.

루프에서는 조건에 따라 PC가 다시 루프 시작 주소로 돌아가거나, 조건이 맞지 않으면 다음 명령어로 진행된다.