공학/전공

CPU와 그 내부

둥둥잇 2014. 10. 8. 00:17

* CPU(Central Processing Unit) 중앙 처리 장치

- 기계어로 된 프로그램의 내용을 해석해 실행하는 부품


프로그램 실행 과정


프로그래머의 고급언어

고급언어를 컴파일 하여 기계어인 실행파일(.exe)로 변환

프로그램이 실행될 때, exe 파일의 복사본이 메모리로 이동

CPU가 메모리에 있는 exe 파일을 해석해 실행


* CPU는

 - 제어장치

 - 연산장치

 - 클록

 - 레지스터 ...

로 구성ㅋㅋ


=> 

프로그램이 작동 → 제어 장치가 클록 신호에 맞춰 메모리로부터 명령어나 데이터를 읽음

→ 제어 장치가 명령어를 해석하고 실행 할 때, 연산 장치에서는 데이터가 연산 / 제어 장치는 컴퓨터 전체를 제어



* 메모리

- 메인 메모리 (주기억 장치)

- CPU나 제어용 칩 등과 서로 연결

- 명령어나 데이터 보관

- CPU가 메모리의 어드레스를 지정해 메인 메모리에 보관된 명령어나 데이터 읽기 / 데이터를 기록



* 레지스터

- 프로그램이 레지스터를 이용해 데이터를 처리

- 처리하는 명령어와 데이터를 보관

- 일종의 메모리



* CPU = 역할이 다양한 레지스터의 집합체

 - 프로그램 카운터

 - 플래그 레지스터

 - 스택 레지스터

 - 베이스, 인덱스, 범용 레지스터 ...



* 프로그램 카운터 : 프로그램의 흐름을 결정

- 보통 CPU가 실행하는 명령어보다 프로그램 카운터의 값이 1 큼

   즉, 다음에 실행될 명령어의 주소를 갖고 있음!!!




* 플래그 레지스터

 - 실행된 연산의 결과값이 양수인지, 음수인지, 0인지 판단

 - (오버플로, 패리티 체크 등의 결과도 기록)



* 실제 어드레스 : 베이스 레지스터 값 + 인덱스 레지스터 값

  10000000 = 10000000 + 00000000

  10000001 =     고정     + 00000001


인덱스 레지스터 : 고급 언어로 작성된 프로그램에서 배열의 첨자(인덱스)에 해당





* 프로그램이 실행되면,

   OS는 하드디스크에 보존된 프로그램을 메모리에 복사한다!