개념
프로그램 카운터는 실행 중인 명령어의 주소(위치)를 저장하는 컴퓨터 프로세서의 레지스터입니다.
각 명령을 가져올 때마다 프로그램 카운터는 저장된 값을 1씩 증가시킵니다. 각 명령을 가져온 후 프로그램 카운터는 순서대로 다음 명령을 가리키며, 컴퓨터가 재시작되거나 재설정되면 프로그램 카운터는 일반적으로 0으로 돌아갑니다.
프로그램 카운터는 명령어를 올바른 순서로 불러오고 실행하기 때문에 프로그램의 질서 있는 실행을 위해 중요합니다. 프로그램 카운터의 동작에 대한 편차나 오류는 컴퓨터 시스템에서 잘못된 프로그램 실행과 의도하지 않은 동작을 야기할 수 있습니다.
프로그램 카운터의 작동 방식
1. Initialization
CPU의 전원이 켜지거나 프로그램이 로딩되면 가장 먼저 실행되는 명령어의 메모리 주소로 프로그램 카운터가 초기화됩니다.
2. 명령어 페치
명령어 페치 단계에서 프로그램 카운터를 사용하여 다음 명령어가 저장된 메모리 위치에 접근합니다.
3. Increment
명령을 가져온 후 프로그램 카운터는 일반적으로 명령의 크기만큼 증가되어 순서대로 다음 명령을 가리킵니다. 그러면 CPU가 메모리에서 다음 명령을 찾을 위치를 알 수 있습니다.
4. 브랜치
CPU에서 분기 명령(예: 조건부 점프 또는 서브루틴 호출)이 발생하면 프로그램 카운터가 다른 메모리 주소를 가리키도록 업데이트되며, 이는 일반적으로 분기 조건 또는 점프의 대상에 의해 결정됩니다. 이를 통해 CPU가 실행 흐름을 변경할 수 있습니다.
5. 실행
프로그램 카운터가 가리키는 메모리 주소의 명령어는 CPU에 의해 실행됩니다.
6. 반복
프로그램의 각 명령에 대해 2~5단계가 반복되어 프로그램 카운터가 다음 명령을 가리키도록 계속 업데이트됩니다.
'IT' 카테고리의 다른 글
[운영체제] 프로세스와 쓰레드 (0) | 2023.10.29 |
---|---|
[운영체제] DMA (Direct Memory Access) (0) | 2023.10.28 |
[운영체제] 인터럽트 (0) | 2023.10.28 |
[컴퓨터 구조] cpu 작동 원리 (기본편) (0) | 2023.10.26 |
web > popstate (0) | 2023.09.25 |