본문 바로가기
TIL/CS

CPU와 메모리

by J1-H00N 2023. 8. 21.

컴퓨터 구조

  1. 컴퓨터가 이해하는 정보
    • 데이터
    • 명령어
  2. 컴퓨터의 네 가지 핵심 부품
    • CPU
      • 수행자의 명령에 대한 작업을 수행하는 처리장치
      • 산술논리 연산장치(ALU) : 비교, 판단, 연산 담당
      • 제어부(CU)와 내부 버스 : 명령어의 해석과 올바른 실행을 위해 CPU를 내부적으로 제어 
      • 메모리 유닛 - 레지스터 : 처리할 명령어 저장, 범용 레지스터와 특수목적 레지스터로 나뉨
      • 범용 레지스터 - 연산에 필요한 데이터나 연산결과를 임시로 저장
      • 특수목적 레지스터
        • 메모리 주소 레지스터: (MAR) : 읽고 쓰기 위한 주기억장치의 주소를 저장한다.
        • 프로그램 카운터 (PC) : 다음에 수행할 명령어의 주소를 저장
        • 명령어 레지스터 (IR) : 현재 실행 중인 명령어를 저장
        • 메모리 버퍼 레지스터 (MBR) : 주기억장치에서 읽어온 데이터나 저장할 테이터를 임시로 저장
        • 누산기 (AC, ACCUMULATOR) : 연산 결과를 임시로 저장
      • 메모리 유닛 - 캐시 메모리 : 처리속도를 높여줌
      • 동작 순서
        1. 명령어 인출
        2. 명령어 해독
        3. 실행
        4. 반영
      • 성능 - 클럭과 코어
        • 클럭 - 1HZ = 1초에 한 번의 주기 > 1GHz = 1초에 1기가 만큼(대략 10억)
        • 코어 - 중앙처리 장치 역할을 하는 블록, 멀티코어는 여러개의 작업을 병렬로 처리해 더 빠르게 작업 가능
    • 메모리
      • 캐시 메모리(SRAM)
        • CPU의 캐시 메모리는 L(레이어)1, 여기서 말하는 캐시 메모리는 L2,L3이며 L1은 연산하기 위한 데이터를 저장하는 곳이고 L2, L3은 메인 메모리와 CPU의 속도차이를 극복하기 위한 곳
      • 메인 메모리(DRAM)
        • 메인 메모리 = 주기억장치 = RAM(DRAM)
        • CPU가 처리중인 데이터나 명령만을 일시적으로 저장하는 휘발성 메모리
        • 따라서 컴퓨터가 꺼지면 데이터도 사라지며, 컴퓨터가 꺼진 후에도 데이터를 유지하고 싶다면 하드디스크에 저장해야 한다.
        • 대신 하드 디스크보다 접근 속도가 빠름
    • 입출력장치
      • 입력장치의 종류는 키보드, 마우스, 터치스크린 등이 있다.
      • 출력장치는 모니터, 스피커, 프린터 등이 있다.
    • 보조기억장치
      • 사용자가 저장하고자 하는 데이터와 프로그램을 반영구적으로 저장
      • 비휘발성 메모리

 

CPU와 메모리 구조

  1. 하버드 구조
    • 메모리가 명령어 메모리와 데이터 메모리로 나뉜다.
    • 명령어 메모리 = 프로그램에서 사용할 명령어를 모아둔 메모리
    • 데이터 메모리 = 명령어들로 사용될 메모리
    • 장점 : 메모리가 두개이기 때문에 역할이 나누어져 있으며 속도가 빠르다.
    • 단점 : 구성이 많기 때문에 비싸며, 복잡한 구성으로 고장이 날 확률이 높다.
  2. 폰노이만 구조
    • 보조기억장치에서 데이터들이 CPU에서 연산되기 위해서 하나의 메모리에 올라갑니다.
    • 제어장치는 산술논리장치에 데이터가 메모리 어디에 위치한지 알려주는 역할을 합니다.
    • 프로그램 메모리와 데이터 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있습니다. 이로인해서 병목현상이 일어납니다.
  3. 그 외 개선된 구조
    • 하버드 + 폰노이만
    • CPU 내부 - 하버드 : CPU 내부에 캐시를 둬서 RAM과 CPU 간의 속도 차이를 줄이려고 노력
    • CPU 외부 - 폰노이만 : 메모리 하나에 하나의 버스를 가지는 구조이기 때문에 병목현상이 아직까지는 존재

'TIL > CS' 카테고리의 다른 글

디자인 패턴  (0) 2023.10.11
DBMS의 기능과 종류  (0) 2023.08.30
쓰레드와 쓰레드 풀  (0) 2023.08.24
프로그램과 프로세스  (0) 2023.08.22
CPU와 메모리 예상 문답  (0) 2023.08.22