CPU와 그 내부
* CPU(Central Processing Unit) 중앙 처리 장치
- 기계어로 된 프로그램의 내용을 해석해 실행하는 부품
프로그램 실행 과정
프로그래머의 고급언어
↓
고급언어를 컴파일 하여 기계어인 실행파일(.exe)로 변환
↓
프로그램이 실행될 때, exe 파일의 복사본이 메모리로 이동
↓
CPU가 메모리에 있는 exe 파일을 해석해 실행
* CPU는
- 제어장치
- 연산장치
- 클록
- 레지스터 ...
로 구성ㅋㅋ
=>
프로그램이 작동 → 제어 장치가 클록 신호에 맞춰 메모리로부터 명령어나 데이터를 읽음
→ 제어 장치가 명령어를 해석하고 실행 할 때, 연산 장치에서는 데이터가 연산 / 제어 장치는 컴퓨터 전체를 제어
* 메모리
- 메인 메모리 (주기억 장치)
- CPU나 제어용 칩 등과 서로 연결
- 명령어나 데이터 보관
- CPU가 메모리의 어드레스를 지정해 메인 메모리에 보관된 명령어나 데이터 읽기 / 데이터를 기록
* 레지스터
- 프로그램이 레지스터를 이용해 데이터를 처리
- 처리하는 명령어와 데이터를 보관
- 일종의 메모리
* CPU = 역할이 다양한 레지스터의 집합체
- 프로그램 카운터
- 플래그 레지스터
- 스택 레지스터
- 베이스, 인덱스, 범용 레지스터 ...
* 프로그램 카운터 : 프로그램의 흐름을 결정
- 보통 CPU가 실행하는 명령어보다 프로그램 카운터의 값이 1 큼
즉, 다음에 실행될 명령어의 주소를 갖고 있음!!!
* 플래그 레지스터
- 실행된 연산의 결과값이 양수인지, 음수인지, 0인지 판단
- (오버플로, 패리티 체크 등의 결과도 기록)
* 실제 어드레스 : 베이스 레지스터 값 + 인덱스 레지스터 값
10000000 = 10000000 + 00000000
10000001 = 고정 + 00000001
인덱스 레지스터 : 고급 언어로 작성된 프로그램에서 배열의 첨자(인덱스)에 해당
* 프로그램이 실행되면,
OS는 하드디스크에 보존된 프로그램을 메모리에 복사한다!