본문 바로가기

Study_C, C++/홍정모의 따라하며 배우는 C언어

[홍정모의 따라하며 배우는 C언어] 0.7 CPU의 기본 구조 ~ 0.8 CPU가 일하는 방법

728x90

0.7 CPU의 기본 구조

  • 보조 기억 장치에 있는 프로그램을 주 기억 장치(메모리) 로 복사시킨 후 (프로그램이 메모리에 올라감) 그 복사된 프로그램을 CPU가 실행시킴
    • 보통 빠른 속도를 위해 OS는 SSD에 저장
    • SSD가 가격대비 용량이 적어 자료는 HDD에 저장

- 프로그램 : 실행시켜야 할 명령들이 나열된 것

 

- CPU 명령어 집합(Instruction Set)

  • 니모닉 (Mnemonic. 기계어로 된 명령어들을 인간이 이해할 수 있는 단어로 대치한 것) 들이 모여있는 집합
  • ADD, STORE등 CPU가 수행하는 최소 단위의 작업들이 모여있음
  • 이러한 기본적인 작업들을 조합해 복잡한 기능을 수행함 (프로그래머가 하는 일)

 

CPU의 구성 요소들. 위의 요소들이 결합하여 컴퓨터의 두뇌 역할을 함

  • 제어 장치 : 일을 할 때 관리를 하는 부분
  • 산술 논리 장치(Arithmetic Logic Unit) : 실제로 연산/계산을 하는 부분
  • 레지스터 : CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 공간. 계산 할 때 작업 공간 역할을 함. 메모리와 가깝게 일을 함

* 레지스터와 메모리는 다름

 

0.8 CPU가 일하는 방법

CPU의 동작 과정의 예시

1. OS가 하드디스크로부터 프로그램을 읽어와서 CPU한테 프로그램의 시작점(100)이 어딘지 알려줌 

2. 프로그램 카운터에 그 시작점의 주소(100)를 저장 

3. 메모리 주소 레지스터에 그 주소값(100)을 저장 

4. 메모리 주소 레지스터에 있는 주소에 접근해서 그곳의 데이터(LOAD 10)를 메모리 데이터 레지스터에 넣음

5-1. 그 데이터가 명령어(instruction)이면 명령어 레지스터로 가고, 그 명령어가 제어 장치로 가서 제어 장치가 그 명령어를 Decode(해독-명령을 해석함) 하여 그 명령어를 실행함 - 위의 경우에는 LOAD 10을 실행

5-2. 메모리 데이터 레지스터의 데이터가 연산에 사용되는 데이터이면 어큐뮬레이터로 감 -> ALU에서 계산할 때 사용하고, 그곳에서의 계산 결과도 어큐뮬레이터로 감 

6. 위의 과정이 끝나면 프로그램 카운터의 주소가 하나 증가함 (프로그램 카운터는 다음에 읽어올 데이터의 주소를 가지고 있어야 하므로)

- 어큐뮬레이터는 ALU와 밀접하게 작동 함


강의 출처 : https://www.inflearn.com/course/following-c/dashboard

 

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원

www.inflearn.com