CPU와 메모리

yoon__0_0·2024년 5월 14일
0

이어드림 수업

목록 보기
26/103

CPU

CPU란?

  • central processing unit : 중앙 처리 장치
  • 컴퓨터 시스템을 통제하고 프로그램 연산 실행, 처리
  • 가장 핵심적인 컴퓨터 제어장치 혹은 그 기능을 내장한 칩
  • 메모리에 저장된 명령어를 읽고, 해석하고 실행하는 칩

CPU의 구성

Registers

register

  • CPU 내부의 임시 저장장치
  • register는 각각 목적에 따라 종류가 달라짐

  • 대표적 레지스터 종류

    • PC(Program Counter) : 다음 인출 (Fetch)될 명령어의 주소를 가진 레지스터
    • AC(Accumulator) : 연산 결과 데이터를 일시적으로 저장하는 레지스터
    • IR(Instruction Register) : 가장 최근 인출 명령어(현재 실행중인 명령어) 가 저장됨
    • SR(Status Register) : 현재 CPU의 상태를 가진 레지스터
    • MAR(Memory Address Register) : PC에 저장된 명령어 주소가 사용되기 전에 일시적으로 저장되는 주소 레지스터
    • MBR(Memory Buffer Register) : 기억 장치에 저장될 데이터 혹은 읽혀진 데이터가 일시적으로 저장되는 버퍼 레지스터

ALU

ALU (Arithmetic Logic Unit)

  • 컴퓨터 내부에서 진행되는 계산을 수행하는 산술 논리 연산 장치
  • 산술연산, 논리연산 등 여러 연산을 수행함

Control Unit

control unit
명령어를 순서대로 호출 및 해독한 후 제어 신호를 발생시켜 컴퓨터의 각 장치를 동작하도록 하는 장치

  • 제어신호 : 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호
  • 제어장치가 하는일
    • 입력된 데이터를 기억장치에 저장
    • 기억장치에 있는 데이터를 연산 장치로 이동
    • 연산 왼료기 다시 기억장치로 이동
    • 기억장치에 저장된 데이터를 출력장치로 이동시켜서 출력

클럭(clock) 신호

클럭이란
컴퓨터의 부품을 움직일 수 있게 하는 시간 단위

  • 클럭 신호를 받아들여 컴퓨터의 모든 부품을 일치된 시간에 움직일 수 있도록 함
  • 일정한 주기로 신호를 발생시켜 컴퓨터 시스템을 동기화 시킴
  • 클럭의 주기에 따라 한클럭마다 일어나는 동작이 존재함.
  • 클럭 신호를 제어장치가 받아들이는 정보 중 하나는 해석할 명령어.
  • 클럭 주기에 따라 명령어의 실행이 여러 클럭에 걸쳐 진행 될 수 있음.
  • 이렇게 함으로 여러 단계로 이루어진 명령어를 효율적으로 처리 가능
  • 클럭 신호가 빠르게 반복되면 cpu는 그만큼 빠른 박자에 맞춰 움직임 (속도는 hz 단위로 측정됨)

MMU(Memory management unit)

MMU
논리주소와 물리주소간의 변환을 담당

  • 논리주소 : 실행중인 프로그램 각각에게 부여된 0번지 부터 시작되는 주소 (우리가 리눅스 상에서 보는 주소)
  • 물리주소 : 정보가 실제로 ram에 저장된 하드웨어상의 주소

멀티코어

  • cpu를 여러개 사용하는 것
  • 코어가 몇개냐에 따라 명칭이 달라짐

메모리

메모리 속도

RAM

RAM
프로그램이 실행되는 동안 필요한 정보를 저장하는 휘발성 컴퓨터 메모리

  • 읽고 쓰기가 가능하며 응용프로그램, 운영체제 kernel등을 불러와 cpu가 작업할 수 있도록 하는 기억장치
  • 휘발성 저장장치로 전원을 끄면 RAM의 저장된 명령어와 데이터는 날라감
  • 반대로 보조기억장치(SSD, HDD)는 비휘발성으로 저장버튼을 누른다는 건 ram -> SSD로 보낸다는 것을 말함

RAM의 종류

1) DRAM (Dynamic RAM)

  • 저장된 데이터가 동적으로 사라지는 RAM . 즉 시간이 지나면 사라짐
  • 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화 해야함.
  • 메모리로 사용

2) SRAM (Static Ram)

  • 전원만 꺼지지 않으면 데이터가 사라지지 않음
  • 일반적으로 DRAM보다 높은 성능을가짐
  • 대 용량으로 만들어질 필요는 없지만 속도가 빨라야하는 저장장치인 캐시 메모리에 사용됨
  • 집적도가 낮아서 대용량으로 설계하기 힘듦

3) SDRAM(Synchronous Dynamic RAM)

  • 클럭신호에 동기화된 발전된 형태의 DRAM
  • 클럭 타이밍에 맞춰 cpu와 정보를 주고받을 수 있음

4) DDR-SDRAM (Double Data Rate SDRAM)

  • SDRAM의 대역폭을 넓혀 속도를 빠르게 만든 것
  • 대역폭 : 데이터를 주고받는 길의 너비를 ㅡ이미함
  • 전송 속도가 두배 가량 빠름
  • DDR에 숫자가 붙을수록 대역폭이 두배씩 증가

RAM 구조

  • Kernel Space
    • Kernel이 올라가 있는 공간
    • 여기에 접근하지 말기
  • 프로세스들이 메모리 주소를 할당받아서 공간을 차지함 ( kernel이 지정)

프로세스 구성

  • Code, data, heap, stack 으로 메모리 공간을 나눔

  • Stack

    • 지역변수, 매개변수 저장 공간
    • 함수 호출과 함께 할당되어 함수 호출 종료시 소멸
    • 높은 주소에서 낮은 주소로 할당됨
    • 재귀함수처럼 무한정 반복되는 함수 호출 시 스택 오버플로우 문제가 발생하게 됨
    • 스택 프레임 : python 시, 함수 호출시 생성되는 메모리 공간
  • Heap

    • 사용자가 직접 관리하는 영역
    • 사용자에 의해 메모리를 할당하거나 해제함
    • 낮은 주소에서 높은 주소로 할당됨
    • C언어 : malloc 명령어 수행시 메모리 할당 (동적 할당)
    • JAVA : 가비지 컬렉션 할때, 정리되는 영역
    • Python : 객체 저장
    • 장애대응 보고서를 쓸 때에 원인이 쿼리를 너무 큰 데이터를 원해서 그런거면 사실, heap이 부족해서 터진것. / 후속대응 : 힙이 차면 프로세스를 종료시킴
  • Data

    • 전역변수, 정적 변수를 저장하는 공간
    • 프로세스 시작과 함께 할당되고 종료와 함께 소멸됨
  • Code

    • 실행할 프로그램의 소스 코드가 저장되는 공간
    • 텍스트 영역
    • CPU는 여기 저장된 명령어를 하났기 가져다가 처리함
  • 코드 실행 과정

Cache 메모리

캐시메모리
빠른 응답 시간을 위해 자주 엑세스 하는 정보를 저장하는데 사용되는 데이터 저장소 유형

  • L1, L2, L3 종류가 있으며 이들은 없을수도 cpu안에, 밖에 있을 수도 있음
  • 이는 물리적 메모리 장치이다.
  • cpu와 메인 메모리 사이의 존재함

보조기억 장치

  • 보조기억 장치에는 하드디스크와 플레시 메모리로 나뉨
  • 하드디스크 : 핀이 돌아가면서 Data 에 접근하는 방식
  • 플레시 메모리
    • SSD, USB 등
    • 빛의 속도로 주소에 접근하며 전기적인 방식을 활용
    • 하드 디스크보다 빠름

RAID

  • Redundant Array of Independent Disks

    RAID
    여러개의 보조기억 장치를 하나의 장치처럼 사용하는 기술

1) RAID 0

  • 스트라이프 : 줄무늬처럼 분산되어 저장된 데이터
  • 스트라이핑 : 줄무니처럼 분산하여 데이터를 저장하는 것
  • 장점 : 데이터를 읽고 쓰는 속도가 빨라짐
  • 단점 : 저장된정보가 안전하지않음 / 드스크 하나만 문제가 생겨도 다른 디스크의 정보를 읽는것도 문제가 발생 가능

2) RAID 1

  • 0의 단점을 보완하기 위해 나온 방법으로 복사본을 만드는 방식을 사용해 미러링 이라고도 부름
  • 장점 : 복구가 간단
  • 단점 : 데이터를 쓸때 원본, 복사본 두군데에 사용하기 떄문에 0보다 느림
  • 사용가능한 용량이 적어짐

3) RAID 4

  • RAID 1처럼 복사본을 만드는 것이 아니라 오률를 검출하고 복구하기 위한 정보를 저장하는 장치를 두는 구성방식
  • 피리티 비트 : 오류를 검출하고 복구하기 위한 정보
  • 패리티를 저장한 장치를 이용해 다른 장치들의 오류를 검출하고 오류가 있다면 복구함.
  • 장점 : RAID 1보다 적은 하드디스크로도 데이터를 안전하게 보관 가능
  • 단점 : 데이터가 저장될 때마다 패리티를 저장하는 디스크에도 데이터를 쓰게 되서 패리티 저장 장치에 병목현상 발생

5) RAID 5

  • 4와 같이 패리티 정보를 저장하되, 분산하여 저장함
  • 장점 : 4에서의 병목현상 해결
  • 쓰기 속도가 떨어짐

6) RAID 6

  • 기본 구성은 5와 동일하나, 서로 다른 두개의 패리티를 두는 방식
  • 장점 : 4,5보다 안전함
  • 단점 : 5보다 느림
profile
신윤재입니다

0개의 댓글