본문 바로가기
서평활동

혼공 컴운 - 3주차 정리

by 디지털노마더 2023. 1. 25.

6장. 메모리와 캐시메모리

6-1. RAM의 특징과 종류

주기억장치 구성

  • RAM
  • ROM

RAM의 특징

  • 실행할 프로그램의 명령어와 데이터가 저장되는 곳
  • 휘발성 저장 장치(volatile memory)전원이 꺼지면, 저장된 정보가 모두 삭제되는 휘발성. (RAM)
  • 비휘발성 저장 장치(non-volatile memory) : 전원이 꺼져도 내용이 저장되는 장치. (Hard Disk, SSD, CD-ROM, USB)

RAM의 용량과 성능

  • RAM의 용량이 작으면
    • 보조기억장치에서 ‘보관할 대상’을 가지고 오는 일이 잦아진다.

RAM의 종류

  • DRAM
    • 저장된 데이터가 동적으로 사라지는 RAM
    • 데이터의 소멸을 막기위해 일정 주기로 데이터를 다시 저장해야한다.
    • 일반적인 RAM이 DRAM으로 구성되어 있다.(소비전력 낮고, 비용도 저렴하고, 집적도가 높기 때문)
  • SRAM
    • 저장된 데이터가 변하지 않는 RAM
    • 시간이 지나도 저장된 데이터가 사라지지 않는다.
    • DRAM보다 속도도 빠르다.
  • SDRAM
    • 클럭 신호와 동기화된, 발전된 형태의 DRAM
    • 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있다.
  • DDR SDRAM
    • 최근 가장 흔히 사용되는 RAM
    • 대역 폭을 넓혀 속도를 빠르게 만든 SDRAM이다.
      • 대역폭 : 데이터를 주고받는 길의 너비
    • 대역폭이 SDRAM보다 두배 더 넓어 전송 속도가 빠르다.
    • 종류
      • SDR SDRAM : 한 클럭당 하나의 데이터 주고 받음
      • DDR SDRAM : 한 클럭당 두개의 데이터 주고 받음
      • DDR2 SDRAM : 한 클럭당 네개의 데이터 주고 받음
      • DDR3 SDRAM : 한 클럭단 여덟개의 데이터 주고 받음

6-2. 메모리의 주소공간

물리 주소와 논리 주소

  • 물리 주소(physical address) : 메모리 하드웨어가 사용하는 주소, 정보가 실제로 저장된 하드웨어상의 주소
  • 논리 주소(logical address) : CPU와 실행 중인 프로그램이 사용하는 주소, 실행 중인 프로그램 별로 부여된 0번지부터 시작되는 주소

논리 주소를 물리주소로 변환

  • 메모리 관리 장치(MMU : Memory Management Unit) : CPU와 주소 버스 사이에 위치한 하드웨어
    • MMU는 논리 주소에 베이스 레지스터의 값을 더하여 논리 주소를 물리 주소로 변환합니다.
    • 베이스 레지스터는 프로그램의 가장 작은 물리 주소, 프로그램의 첫 물리 주소를 저장합니다.
    • 논리 주소는 프로그램의 시작점(베이스 레지스터의 값)으로부터 떨어진 거리입니다.

6-3. 캐시메모리

저장 장치 계층 구조

  • 저장 장치의 일반적인 명제
    1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
    2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.
  • 저장 장치 계층 구조(memory hierarchy) : CPU에 얼마나 가까운가를 기준으로 계층적으로 저장 장치를 표시

 

참조 지역성 원리

  • 캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장합니다.
  • 캐시 히트와 캐시 미스
    • 캐시 히트(cache hit) : 자주 사용할 것으로 예측한 데이터가 실제로 캐시 메모리 내 데이터가 CPU에서 활용될 경우
    • 캐시 미스(cache miss) : 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우
  • 캐시 적중률(cache hit ratio) : 캐시가 히트되는 비율 
    • 캐시 적중률이 높을 수록 캐시 메모리의 이점을 제대로 활용할 수 있습니다.
    • 현대 컴퓨터의 캐시 적중률은 대략 85% ~ 95%
  • 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
  • 참조 지역성의 원리(locality of reference. principle of locality)
    • 캐시 메모리가 메모리로부터 가져올 데이터를 결정하는 원리.
    • CPU 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리 입니다.
  • CPU가 메모리에 접근할 때의 주된 경향
    1. 시간 지역성(temporal locality) : CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
      • CPU는 변수가 저장된 메모리 공간을 다시 참조할 수 있습니다.
      • 프로그램 내부의 변수들은 일반적으로 한 번만 사용되지 않고 프로그램 실행 동안 여러 번 사용됩니다.
    2. 공간 지역성(spatial locality) : CPU는 접근한 메모리 공간 근처에 접근하려는 경향이 있다.
      • 프로그램은 보통 관련 데이터들끼리 메모리에 모여 있습니다.
      • CPU는 프로그램이 모여 있는 공간 근처를 집중적으로 접근합니다.

기본 미션

p.185 - 3번 문제

(답) 1 - SRAM / 2 - DRAM / 3 - DRAM / 4 - SRAM

p.205 - 1번 문제

(답) 1 - 레지스터 / 2 - 캐시 메모리 / 3 - 메모리 / 4 - 보조기억장치

 

선택 미션

RAID의 정의와 종류를 간단히 정리해보기.

 

RAID (Redundant Array of Independent Disks)란, 데이터의 안정성 혹은 높은 성능을 위해 여러 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술을 의미한다. (주로 Hard Disk, SSD에 사용되는 기술)

 

- RAID 종류

RAID를 구성하는 방법은 여러 가지이며, Raid 구성 방법(RAID 레벨)에 따라 RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6이 있습니다.

 

- RAID 0

  • 데이터를 단순히 나누어 저장하는 구성 방식
  • 각 보조기억장치는 번갈아 가며 데이터를 저장한다.
  • 저장되는 데이터가 보조기억장치의 갯수만큼 나뉘어 저장된다.

- RAID 1

  • 보조기억장치의 완전한 복사본을 만드는 방식

- RAID 4

  • 오류를 검출하기 위한 정보를 저장해두는 구현 방식

- RAID 5

  • 패리티 정보를 하나의 저장장치가 아닌, 분산하여 저장하는 방식

- RAID 6

  • RAID5와 구성은 동일하나, 서로 다른 2개의 패리티를 두는 방식

7장. 보조기억장치

하드 디스크

  • 자기적인 방식으로 데이터를 저장한느 보조 기억 장치
  • 자기 디스크의 일종으로 지칭하기도 함
  • 대용량 저장 장치가 필요한 작업이나 서버실에 자주 출입하는 작업을 할 시 많이 접하게 됨
  • CD나 LP와 비슷하게 생겨, 비슷하게 동작함
  • 하드 디스크의 구성
    • 플래터
      • 동그란 원판
      • 자기 물질로 덮여 있어 수많은 N극와 S극을 저장한다.(N과 S가 0과 1의 역할을 수행함)
    • 스핀들
      • 플래터를 회전시키는 구성 요소
      • 플래터를 돌리는 속도는 RPM단위로 표현됨
    • 헤드
      • 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
      • 프랠터 위에서 미세하게 떠 있는 채로 데이터를 읽고 쓰는 바늘같이 생긴 부품
    • 디스크 암
      • 헤드가 부착되어 있어, 헤드를 원하는 위치로 이동시키는 구성 요소
  • 하드 디스크 데이터 저장 방식
    • 트랙과 섹터라는 단위로 데이터를 저장
    • 트랙
      • 플래터를 여러 동심원으로 나누었으때 그중 하나의 원을 트랙이라고 부른다.
    • 섹터
      • 여러조각으로 나뉜 트랙의 한 조각
      • 하드 디스크의 가장 작은 전송 단위
      • 하나 이상의 섹터를 묶어 블록이라고 표현하기도 함
    • 실린더
      • 여러겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
      • 연속된 정보가 기록된다.
  • 하드디스크가 저장된 데이터에 접근하는 시간
    • 탐색 시간
      • 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
    • 회전 지연
      • 헤드가 있는 곳으로 플래터를 회전시키는 시간
    • 전송 시간
      • 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
    • 위 시간들은 성능에 큰 영향을 끼치는 시간들이다.

플래시 메모리

  • 플래시 메모리 기반의 보조기억장치
    • USB메모리, SD카드, SSD
    • 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치
    • 플래시메모리의 종류
      • NAND 플래시 메모리 : NAND 연산 수행
      • NOR 플래시 메모리 : NOR 연산 수행
    • 플래시 메모리의 단위
      • 플래시 메모리의 단위
      • 한셀에 1비트를 저장할 수 있는 플래시 메모리 : SLC
        • 한 셀로 두개의 정보를 표현할 수 있음
        • 수명도 다른 타입에 비해 상대적으로 긴 편이다.
        • 비트의 빠른 입출력이 가능
        • 데이터를 읽고 쓰기가 매우 많이 반복되며 고성능의 빠른 저장 장치가 필요한 경우 사용
      • 한셀에 2비트를 저장할 수 있는 플래시 메모리 : MLC
        • 한 셀로 네개의 정보를 표현
        • SLC보다 속도와 숨병은 떨어지지만 대용량화하기 유리하다
        • 용량 대비 가격이 저렴하여 시중에서 사용되는 플래시 메모리가 이에 속한다.
      • 한셀에 3비트를 저장할 수 있는 플래시 메모리 : TLC
        • 한 셀로 여덟개의 정보를 표현
        • 대용량화 하기 유리하다.
        • 앞 두 타입보다 수명과 속도를 떨어지지만 용량 대비 가격도 저렴하다.
    • 페이지
      • 셀들이 모인 단위
    • 블록
      • 페이지가 모인 단위
    • 플레인
      • 블록이 모인 단위
    • 다이
      • 플레인이 모인 단위

RAID 정의와 종류

  • 하드 디스크와 SSD를 사용하는 기술로 데이터의 안정성 혹은 높은 성능을 위해 여러개의 물리적 보조 기억 장치를 마치 하나의 논리적 보조 기억장치처럼 사용하는 기술
  • RAID 레벨
    • RAID의 구성 방법
    • RAID0
      • 여러개의 보조 기억 장치에 데이터를 단순히 나누어 저장하는 구성 방식
      • 줄무늬처럼 분산되어 저장된 데이터 : 스트라입
      • 분산하여 저장하는 것 : 스트라이핑
      • 하지만, 저장된 정보가 안전하지 않다는 단점이 발생
    • RAID1
      • 미러링 : 복사본을 만드는 방식
      • RAID0보다는 속도가 드리다.
      • 복구가 간단함
      • 하지만, 한정된 디스크에서 사용가능한 용량이 적다는 단점이 존재
    • RAID4
      • 복사본을 만드는 대신 오류를 검출하고 복구하기 위한 정보르 저장한 장치를 두는 구성 방식
      • 패리티 비트 : 오류를 검출하고 복구하기 위한 정보
    • RAID5
      • RAID4에서 어떤 새로운 데이터가 저장될때마다 패리티를 저장하는 디스크에도 데이터를 쓰게 되어 패리티를 저장하는 장치에 병목 현상이 발생함을 개선한 방식
      • 패리티 정보를 분산하여 저장하는 구성 방식
    • RAID6
      • RAID5와 구성은 기본적으로 같으나, 서로 다른 두개의 패리티를 두는 방식
      • 오류를 검출하고 복구하는 방식이 2개가 됨
      • 속도가 느리지만, 데이터를 안전하게 보관 가능

8-1. 장치 컨트롤러와 장치 드라이버

장치 컨트롤러

  • 전송률(데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표)의 차이는 입출력 장치간의 통신을 어렵게 한다.
  • 위와 같은 이유로 입출력 장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러라는 하드웨어를 통해 연결된다.
  • 모든 입출력 자이는 각자의 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고 받고 장치 컨트롤러는 하나 이상의 입출력 장치와 연결되어 있다.
  • 장치 컨트롤러의 역할
    • CPU와 입출력 장치간의 통신 중개
    • 오류 검출
    • 데이터 버퍼링
      • 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 공간에 저장하여 전송률을 비슷하게 맞추는 방법
  • 장치 컨트롤러의 구조
    • 데이터 레지스터
      • CPU와 입출력 장치 사이에 주고 받을 데이터가 담기는 레지스터
    • 상태 레지스터
      • 입출력 장치가 입출력작업을 할 준비가 되었는지, 입출력 작업이 완료되었는지, 입출력 장치에 오류는 없는지 등의 상태 정보를 저장
    • 제어 레지스터
      • 입출력 장치가 수행할 내용에 대한 제어 정보와 명령을 저장

장치 드라이버

  • 장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로글매
  • 프로그램이므로 실행 과정에서 메모리에 저장됨

8-2. 다양한 입출력 방법

프로그램 입출력

  • 프로그램 속 명령어로 입출력 장치를 제어하는 방법
  • CPU가 프로그램 속 명령어를 실행하는 과정에서 입출력 명령어를 만나면 CPU는 입출력 장치에 연결된 장치 컨트롤러와 상호작용하며 입출력 작업을 수행
  • 입출력장치의 명령어 메모리 저장 방식
    • 메모리 맵 입출력
      • 메모리에 접근하기 위한 주소 공간과 입출력 장치에 접긓나기 위한 주소 공간을 하나의 주소 공간으로 간주하는 방법
      • 메모리 주소 공간이 축소됨
      • 메모리와 입출력 장치에 같은 명령어 사용 가능
    • 고립형 입출력
      • 메모리를 위한 주소 공간과 입출력 장치를 위한 주소 공간을 분리하는 방법
      • 메모리 공간이 축소되지 않음
      • 입출력 전용 명령어 사용

인터럽트 기반 입출력

  • 인터럽트 기반 입출력
    • 인터럽트를 기반으로 하는 입출력

 

 

'서평활동' 카테고리의 다른 글

혼공 컴운 - 6주차 정리  (0) 2023.02.19
혼공 컴운 - 5주차 정리  (0) 2023.02.11
혼공 컴운 - 4주차 정리  (0) 2023.02.06
혼공 컴운 - 2주차 정리  (0) 2023.01.15
혼공 컴운 - 1주차 정리  (0) 2023.01.08

댓글