3주차 - Chapter 06 - 08

bomeeyoon·2023년 7월 23일
0

혼공컴운

목록 보기
3/4

메모리와 캐시 메모리

RAM의 특징과 종류

  • RAM의 특징: 실행할 프로그램의 명령어와 데이터를 저장하며 휘발성 저장 장치다.
  • RAM의 종류:
    • DRAM(Dynamic RAM) : 저장된 데이터가 동적으로 변하는 RAM으로 일정 주기로 데이터를 재활성화(다시 저장)해야 한다. 주로 사용하는 RAM
    • SRAM(Static RAM) : 전원이 꺼지지 않는이상 저장된 데이터를 유지한다. DRAM 보다 일반적으로 속도가 빠르다. 주로 캐시 메모리에 사용한다.
    • SDRAM(Synchronous Dynamic RAM) : 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있다. 즉, 클럭 신호와 동기화된 발전된 형태의 DRAM 이다.
    • DDR SDRAM(Double Data Rate SDRAM) : 대역폭을 넓혀 속도를 빠르게 만든 SDRAM으로 최근 가장 흔하게 사용한다.

      대역폭이란?
      데이터를 주고받는 길의 너비

메모리의 주소 공간

  • 메모리 주소

    • 물리주소 : 정보가 실제로 저장된 하드웨어상의 주소로 메모리가 사용하는 주소
    • 논리주소 : CPU와 실행 중인 프로그램이 사용하는 주소. 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소
    • 논리주소 -> 물리주소 변환 방법: CPU주소 버스 사이에 위치한 메모리 관리 장치(Memory Management Unit)에서 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더해 변환한다.
    • 베이스 레지스터: 프로그램의 가장 작은 물리 주소
  • 메모리 보호 기법

    • 연관된 프로그램의 논리 주소 영역을 벗어나는 경우 명령어가 실행되지 않게 보호
    • 한계 레지스터(limit register): 논리 주소의 최대 크기를 저장
    • 베이스 레지스터 값 <= 프로그램의 물리 주소 < 베이스 레지스터 값 + 한계 레지스터 값
    • 인터럽트(트랩): CPU가 한계 레지스터보다 높은 논리 주소에 접근 시 발생해 명령 실행을 중단

캐시 메모리

  • CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 느리다.
  • 저장 장치 계층 구조(memory hierarchy): CPU에 얼마나 가까운가를 기준으로 계층적으로 나타낸다.
    • 캐시 메모리: CPU와 메모리 사이에 위치. 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반 저장 장치.CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위해 탄생.
    • 캐시 메모리도 계층 구조가 있다. CPU 와 가까운 순으로 L1, L2 그리고 L3 으로 나눈다. 여기서 L3CPU와 메모리 사이에 위치하고 멀티코어에서 공유한다.
    • 분리형 캐시: L1 캐시는 접근 속도를 빠르게 만들기 위해 명령어만 저장하는 L1l 캐시와 데이터만 저장하는 L1D 캐시로 분리한다.
  • 캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장한다.
    • 캐시 히트(cache hit): 예측한 데이터가 실제로 들어맞아 CPU에서 활용하는 경우
    • 캐시 미스(cache mass): 예측한 데이터를 사용하지 않는 경우
    • 캐시 적중률(cache hit ratio): 캐시가 히트되는 비율
      캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
  • 참조 지역성의 원리(locality of reference, principle of locality): CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
    • CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
      • 예) 변수의 재사용
    • CPU는 접근한 메모리 공간 근처에 접근하려는 경향이 있다.
      • 예) 서로 관련 있는 데이터끼리 모여 저장되기 때문에 현재 사용 중인 메모리 공간 근처를 접근
        • 공간 지역성: 접근한 메모리 공간 근처를 접근하려는 경향

보조기억장치

다양한 보조기억장치

  • 하드 디스크: 자기적인 방식으로 데이터를 저장

  • 플래터(platter): 하드 디스크에서 실질적으로 데이터가 저장되는 곳으로 N극과 S극을 저장한다. N/S극은 0/1 역할을 수행한다.

  • 스핀들(spindle): 플래터를 회전시키는 구성 요소. 스핀들이 플래터를 돌리는 속도는 분당 회전수를 나타내는 RPM(Revolution Per Minute) 단위로 표현한다.

  • 헤드(head): 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소

  • 디스크 암(dist arm): 헤드를 원하는 위치로 이동

  • 플래터는 트랙 track섹터 sector라는 단위로 데이터를 저장

  • 실린더(cylinder): 한 플래터를 동심원으로 나눈 공간은 트랙, 같은 트랙끼리 연결한 원통 모양의 공간은 실린더

  • 하드디스크가 저장된 데이터에 접근하는 시간

    • 탐색 시간(seek time): 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
    • 회전 지연(rotational latency): 헤드가 있는 곳으로 플래터를 회전시키는 시간
    • 전송 시간(transfer time): 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
  • 플래시 메모리(flash memory): 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반 저장 장치

    • SLC 타입: 한 셀에 1비트를 저장. 수명이 길고 입출력이 빠름
    • MLC 타입: 한 셀에 2비트를 저장. 대용화 유리함.
    • TLC 타입: 한 셀에 3비트를 저장. 대용화 유리함. 수명이 짧고 입출력 속도가 떨어지지만 용량대비 가격이 저렴함.
  • 플래시 메모리의 가장 작은 단위인 셀보다 큰 단위

  • 플래시 메모리에서 읽기와 쓰기는 페이지 단위로! 삭제는 페이지보다 큰 블록 단위로 이루어짐.

  • 블록 단위로 수행되기 때문에 Invalid 페이지와 valid 페이지가 같이 저장됨. 그래서 최근 SSD를 비롯한 플래시 메모리는 이런 쓰레기 값을 정리하기 위해 가비지 컬렉션 기능을 제공

    • valid 페이지들만 새로운 블록으로 복사한 뒤, 기존 블록을 삭제!

RAID의 정의와 종류

  • RAID(Redundant Array of IndependentDisks): 하드 디스크와 SSD를 사용하는 기술로 데이터의 안전성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술을 의미한다.
  • RAID0: 여러 개의 보조기억장치에 데이터를 나누어 저장. 각 하드 디스크는 데이터를 번갈아 가며 저장. 데이터가 분산되어 저장되는걸 스트라이핑이라고 한다.
  • RAID1: 복사본을 만드는 방식(미러링). 복사본을 만들면 복구가 쉬운 장점이 있지만, 많은 양의 하드 디스크가 필요하게 되고, 비용이 증가하는 단점이 있다.
  • RAID4: RAID1 처럼 완전히 복사본을 만들지 않고 오류를 검출하고 복구하기 위한 정보(패리티 비트)를 저장한 장치를 둔다.
  • RAID5: RAID4 에서 새로운 데이터가 저장될 때 패리티를 저장하는 디스크에도 데이터를 쓰게 되므로 패리티를 저장하는 장치에 병목 현상문제를 패리티 정보를 분산하여 저장하는 방식으로 해소한다.
  • RAID6: 기본적으로 RAID5와 같다. RAID6 는 서로 다른 두 개의 패리티를 저장해 데이터 안정성을 높인다. 대신 데이터 저장 속도는 RAID5 보다 느리다.

입출력장치

장치 컨트롤러

  • 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.
  • 전송률(transfer rate): 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표
  • 장치 컨트롤러(device controller): 전송률의 격차를 줄이기 위해 입출력장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러 하드웨어를 통해 연결된다.
    • CPU와 입출력장치 간의 통신 중개
    • 오류 검출
    • 데이터 버퍼링: 버퍼링이란 전송률이 높은 장치와 낮은 장치 사이에 주고 받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 맞추는 방법
  • 장치 컨트롤러 내부
    • 데이터 레지스터: CPU와 입출력장치 사이에 주고 받을 데이터. 버퍼 역할을 한다.
    • 상태 레지스터: 입출력장치의 준비/완료/오류 있는지 여부 등의 상태 정보를 저장한다.
    • 제어 레지스터: 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장한다.

장치 드라이버

  • 장치 드라이버(device driver): 장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램이다.

기본 미션

Q) SRAM, DRAM 중 알맞은 RAM 의 종류를 쓰세요.

- 주로 캐시 메모리로 활용됩니다. (SRAM)
- 주로 주기억장치로 활용됩니다. (DRAM)
- 대용량화하기 유리합니다. (DRAM)
- 집적도가 상대적으로 낮습니다. (SRAM)

Q) 저장 장치 계층 구조 도식도 채우세요.

- 레지스터
- 캐시 메모리
- 메모리
- 보조기억장치

0개의 댓글