Post

CS - 1. CPU와 메모리

CS - 1. CPU와 메모리

Sparta 내일배움캠프 학습으로, CS강의에 대한 공부를 위한 필기입니다.

01. 컴퓨터의 구성


  • 컴퓨터의 구조

  • 컴퓨터가 이해하는 정보 : 데이터, 명령어

  • 컴퓨터의 4가지 핵심 부품 : CPU, 메모리, 보조기억장치, 입출력장치


본 강의에서는 푸드트럭에 비유합니다.

02. 입출력 장치


  • 컴퓨터가 사용자와 의사소통하는 창구입니다.

푸드트럭으로 비유 : 주문 창구, 수령 창구

2-1. 입력 장치

  • 사용자가 컴퓨터에게 명령하는 창구 입니다.

푸드트럭으로 비유 : food를 주문하는 주문대

  • 입력 장치 종류

  • 키보드, 마우스, 터치스크린, 마이크, 스캐너, 카메라 등

  • 사용자는 입력 장치들을 통해 컴퓨터에게 명령을 요청하거나 데이터를 입력

  • ex ) 키보드를 통해 file에 문자를 입력하도록 명령, 연산을 작성한 뒤 엔터키를 통해 연산 수행 및 저장을 명령할 수 있음.

2-2. 출력장치

  • 컴퓨터가 사용자에게 데이터를 보여주거나 처리 결과를 보여주는 창구입니다.

푸드트럭으로 비유 : 메뉴판, 수령대

메뉴판 : 모니터, 수령대 : 스피커, 프린터

  • 출력 장치 종류

  • 모니터, 스피커, 프린터 등

  • 컴퓨터는 출력 장치들을 통해 사용자에게 명령이나 데이터를 입력할 수 있는 화면을 보여주거나 명령에 대한 처리 결과를 보여주거나 들려줌.

03. 중앙처리장치(CPU)


  • 컴퓨터가 사용자의 명령에 대한 작업을 수행하는 처리장치

푸드트럭으로 비유 : 요리사

1

  • 우뇌 : 레시피에 따라 재료와 요리시간을 연산하고 수행하는 역할

    • 산술 논리 연산장치(ALU) : 비교, 판단, 연산을 담당합니다.

    ALU : Arithmetic Logic Unit

  • 좌뇌 : 요리할 때 주문 순서, 레시피 순서대로 하도록 스케줄을 제어하는 역할

    • 제어부(CU)와 내부 버스 : 명령어의 해석과 올바른 실행을 위하여 CPU를 내부적으로 제어합니다.

    제어부(CU) : Control Unit, 내부버스(Internal Bus) 내부버스 : CPU 내부에서 데이터와 제어 신호를 전송하는데 사용되는 버스

  • 양손 : 요리에 사용할 요리도구를 잇는 역할


  • 메모리 유닛

    • 오른손 : 레지스터 : CPU에서 실행중인 명령어를 보관하는 역할, 명령어의 실행에 필요한 데이터와 정보를 저장 ( 칼 같이 지금 요리(연산)할 도구를 드는 손)

    • 왼손 : 캐시메모리(L1) : 처리 속도를 높여주는 역할


03-1. 레지스터

📌 레지스터 : 연산에 필요한 데이터를 저장하고 빠른 속도로 접근할 수 있는 저장 공간입니다.

푸드트럭의 요리사로 비유 : 요리사의 손

  • 프로세서 레지스터 : 프로세서에 위치한 고속 메모리로 극히 소량의 데이터나 처리 중인 중간 결과와도 같은 프로세서가 바로 사용할 수 있는 데이터를 담고 있는 영역

✅ 범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장함

✅ 특수목적 레지스터 : 특별한 용도로 사용하는 레지스터

  • 메모리 주소 레지스터(MAR) : 읽고 쓰기 위한 주기억장치의 주소를 저장
  • 프로그램 카운터(PC) : 다음에 실행할 명령어의 주소를 저장
  • 명령어 레지스터(IR) : 현재 실행 중인 명령어를 저장
  • 메모리 버퍼 레지스터(MBR) : 주기억장치에서 읽어온 데이터나 저장할 데이터를 임시로 저장
  • 누산기(AC, ACCUMULATOR) : 연산 결과를 임시로 저장


03-2. 제어장치 (CU)

📌 제어 장치는 명령어를 실행하는 순서를 제어하고 스케줄링

푸드트럭의 요리사로 비유하면 요리사의 구성력을 담당하는 좌뇌

  • 제어부 : *주기억장치에 저장되어 있는 명령어를 순서대로 호출하여 해독하고 제어 신호를 발생시켜 컴퓨터의 각 장치를 동작하도록 하는 장치

    *주기억 장치 : 컴퓨터에서 프로그램 및 데이터를 일시적으로 저장하는 데 사용되는 기억장치(RAM, ROM)

  • 내부버스 : 기억, 연산, 제어 기능을 실현하기 위한 CPU와 주기억장치, 입출력 장치, 외부 기억 장치, 주변 장치, 통신 처리 장치 등의 제어부 사이를 연결하는 버스


03-3. 연산장치 (ALU)

  • 논리 연산(덧셈, 뺄셈, 비교 연산)을 수행합니다.

푸드트럭의 요리사로 비유 : 요리사의 연산력을 담당하는 우뇌

  • 산술 논리 장치라고 불리는 이 곳은 덧셈, 뺄셈 같은 산술 연산과 논리 연산을 계산하는 디지털 회로입니다.


03-4. CPU의 동작

  • 기계어를 모스부호처럼 HW적으로 CPU가 알아볼 수 있게 변환한게 어셈블리어이고 이를 사람이 알아볼 수 있게 SW적으로 변환한게 프로그래밍 언어

  • 기계어(저장공간) ▶ 어셈블리어(CPU) ▶ 프로그래밍 언어(사람)

  1. 명령어 인출

    • CPU가 수행할 명령어 정보를 가져옴
  2. 명령어 해독

    • 보통 opcode라는 명령어 코드를 인출하고 opcode 성격에 맞게 레지스터를 준비
  3. 실행

    • 해독된 명령어를 실행
  4. 반영


03-5. CPU의 성능

  • CPU 스펙

1

클럭

  • CPU 내부에서 일정한 주파수를 가지는 신호, 이 신호로 모든 명령어 동작

  • 클럭 주파수가 빠를수록 제한된 시간에 더 많은 명령어를 처리할 수 있기에 좋은 성능의 중앙처리장치(CPU)라고 할 수 있음

  • 4.5GHz는 초당 45억번의 명령어를 처리할 수 있다는 뜻

코어

  • 중앙처리장치 역할을 하는 블록

  • 멀티 코어들은 싱글 코어에 비해 마치 여러개의 CPU(요리사)가 작동하듯이 많은 연산을 빠르게 병렬 처리할 수 있음


04. 메모리


  • 명령에 대한 모든 연산은 결국 저장 공간을 통해서 처리하게 됩니다.

1

  • 레지스터 : CPU

    레지스터는 CPU 내부에 있는 작은 고속 기억장치, CPU핵심 부품

  • 캐시메모리(SRAM), 메인메모리(DRAM) : 주기억장치

  • 하드디스크(HDD) : 보조기억장치


04-1. 캐시 메모리(L2, L3)

  • 컴퓨터가 전원이 꺼지면 지워지지만 제일 빠르게 조회할 수 있는 저장 공간입니다.

푸드트럭으로 비유 : 선반에서 꺼낸 재료를 올려서 요리하는 조리대

  • 컴퓨터 시스템 향상을 위해 CPU와 주기억장치 사이에 있는 아주 작은 비싼 메모리

  • ❓ CPU 구성에서 배운 캐시메모리?

: CPU 구성에서 배운 캐시메모리는 L1(레이어) 캐시메모리이고, 메모리 그룹에 속한 CPU와 별개로 구성되어 있는 캐시메모리는 L2, L3 캐시메모리라고 부릅니다.

L2, L3 캐시메모리는 메인 메모리에 있는 데이터를 캐시 메모리에 불러와 놓고 CPU가 필요한 데이터를 캐시에서 먼저 찾도록 하여 시스템 성능을 향상 시켜줌.

레지스터가 오른손이라고 했는데 오른손의 사이즈가 작으니 아무리 많이 들어봐야 얼마 들지 못할 것, 오른손에 한 번에 들지 못하는 재료들을 조리대에 올려 놓고 쓸 수 있도록 도와주는 것이 캐시메모리. L2,L3는 L1보다는 저장 공간이 넓다고 볼 수 있음.

  • L2,L3 캐시메모리는 CPU와 별도의 공간, 메인 메모리와 CPU간의 속도 차이를 극복하기 위한 것, CPU 레지스터는 CPU 안에서 연산을 처리하기 위하여 데이터를 저장하는 공간


04-1. 주기억장치(RAM, ROM)

  • 컴퓨터가 전원이 꺼지면 지워지지만 조금 더 빠르게 조회할 수 있는 저장 공간입니다.

푸드트럭으로 비유 : 창고에서 가져온 재료를 넣어두는 선반 공간

  • 메인 메모리 = 주기억장치 = RAM

  • RAM은 DRAM과 SRAM이 있는 주기억장치는 주로 DRAM을 의미, SRAM은 캐시나 레지스터리

  • 컴퓨터의 CPU가 현재 처리중인 데이터나 명령만을 일시적으로 저장하는 휘발성 메모리

전원이 꺼지면 메인 메모리에 저장된 내용들은 모두 사리지기에 데이터를 유지하고 싶으면 하드디스크에 저장

  • 보조기억장치(하드디스크)보다 접근 속도가 빠름

  • 모든 프로그램은 컴퓨터에서 실행되기 위해 메모리의 일부를 사용함

  • HDD에 비해 월등히 빠른 속도


04-1. 보조기억장치(HDD)

  • 컴퓨터 전원이 꺼져도 지워지지 않는 저장공간

푸드트럭으로 비유 : 푸드트럭 하단 또는 외부에 위치한 창고 공간

  • 사용자가 사용하고자 하는 데이터와 프로그램을 반영구적으로 저장

  • 전원을 끄더라도 저장된 데이터나 정보가 날아가지 않는 비휘발성 메모리


05. CPU와 메모리


  • 푸드트럭 : 요리사(CPU) + 주문대(입력 장치) + 선반(RAM) + 조리대(캐시 메모리) + 창고(HDD) + 재료(데이터) + 레시피(프로그램) + 수령대(출력 장치)

  • 요리사(CPU) = 좌뇌(CU) + 우뇌(ALU) + 오른손(레지스터) + 왼손(캐시메모리)

  1. 주기억장치가(RAM) 입력 장치에서 입력 받은 데이터 또는 보조기억장치(HDD)에 저장된 프로그램을 읽어옵니다.

  2. CPU는 프로그램을 실행하기 위해 주기억장치(RAM)에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 주기억장치에 저장합니다.

  3. 주기억장치는 처리 결과를 보조기억장치(HDD)에 저장하거나 출력장치로 보내서 출력시킵니다.

  4. CPU 내의 제어장치(CU)가 1~3번의 과정에서 명령어가 순서대로 실행되도록 각 장치들을 제어합니다.


05-1. CPU와 메모리 구조

  • 하버드 구조

1

  • 명령어 메모리 : 프로그램에서 사용할 명령어를 모아둔 메모리

  • 데이터 메모리 : 명령어들로 사용될 메모리

  • 장점 : 메모리가 2개이기 때문에 역할이 나누어져 있어 속도가 빠름

  • 단점 : 구성이 많기 때문에 비싸며 복잡한 구성으로 고장날 확률 높음


  • 폰노이만 구조

1

  • 보조기억장치(HDD)에서 데이터들이 CPU에서 연산되기 위해 하나의 메모리에 올라감

  • 제어장치는 산술 논리 장치에 데이터가 메모리 어디에 위치하는지 알려주는 역할

  • 프로그램 메모리와 데이터 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있어 병목현상이 일어남


  • 개선된 구조

: 하버드 구조 + 폰노이만 구조

  • CPU 내부 – 하버드 : CPU 내부에 캐시를 둬서 RAM과 CPU 간의 속도 차이를 줄이려고 노력

  • CPU 외부 – 폰노이만 : 메모리 하나에 하나의 버스를 가지는 구조이기 때문에 병목현상이 아직까지 존재함

This post is licensed under CC BY 4.0 by the author.