[혼공학습단 10기 혼공컴운] 3주차

Builter·2023년 7월 23일
0
post-thumbnail

혼공컴운 3주차 기본 미션

다음중 SRAM/DRAM에 대한 설명인지 고르시오

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

저장 장치 계층 구조 도식도를 채우시오

혼공컴운 3주차 선택 미션

RAID의 정의와 종류 → 하단 07장 07-2 참조


06장 메모리와 캐시 메모리

06-1 RAM의 특징과 종류

RAM(Random Access Memory)

  • 실행할 프로그램의 명령어와 데이터가 저장되는 컴퓨터 메모리
  • 저장된 데이터를 순차적이 아닌 임의의 순서로(Random) 접근할 수 있는 데이터 저장소
  • 전원을 끄면 RAM에 저장된 데이터가 사라진다 = 휘발성 메모리(volatile memory)
  • RAM 용량이 충분히 크다면 보조기억장치에서 많은 데이터를 미리 불러올 수 있다.

RAM의 종류

  • DRAM(Dynamic RAM)
    - 저장 데이터가 '동적'으로 변하는 RAM.
    - 데이터의 소멸을 막기위해 일정 주기로 재활성화(재저장) 필요한 단점
    - 소비 전력, 가격이 낮고 집적도가 높다는 장점
  • SRAM(Static RAM)
    - 저장된 데이터가 변하지 않는('정적인') RAM
    - DRAM보다 속도 빠르다는 장점
    - 소비 전력/가격이 높고, 집적도가 낮다는 단점
    - 대용량이 필요하지 않은 '캐시 메모리'에 사용
  • SDRAM(Synchronous Dynamic RAM)
    - 클럭 신호와 동기화된 DRAM
  • DDR SDRAM(Double Data Rate SDRAM)
    - 대역폭를 넓혀 속도를 높인 SDRAM
    - 대역폭(Data Rate): 데이터 통로의 너비

06-2 메모리 주소의 공간

  • 물리 주소: 메모리 하드웨어가 사용하는 주소
  • 논리 주소: CPU와 실행중인 프로그램이 사용하는 주소(메모리에 저장된 정보는 시시각각 변하기 때문에 사용)

메모리 관리 장치(Memory Management Unit)

논리주소를 물리주소로 변환(= 논리주소 + 베이스 레지스터 값)하는 장치

메모리 보호 기법

자신의 프로그램 논리 주소 영역을 넘어서는 명령어로 인한 피해를 막기 위해 보호하기 위한 방법
한계 레지스터(Limit Register)가 논리 주소의 최대 크기를 저장하여 '제한한다'.

  • 베이스('바닥') 레지스터 값(물리 주소 최소 크기 값) ≤ 프로그램 물리 주소 < (베이스 레지스터 값 + 한계 레지스터 값; '바닥으로 부터의 거리')

06-3 캐시 메모리(Cache Memory)

CPU와 메모리 사이에 위치한, SRAM 기반의 저장 장치

  • CPU의 연산 속도와 메모리 접근 속도차를 줄이기 위해 탄생
  • 코어와 가까운 순서대로 L(Level)1, L2, L3 계층으로 구성

참조 지역성 원리

(캐시 메모리에 저장할 내용) CPU가 메모리에 접근할 때 주된 경향을 바탕으로 만들어진 원리

  • 캐시 히트(Cache Hit): CPU가 사용할 것으로 예상되는 내용을 예측하여 캐시 메모리에 저장하고, 실제로 CPU가 그 내용을 사용하는 경우 ↔︎ 캐시 미스(Cache miss)
  • 캐시 적중률(Cache Hit Rate) = 캐시 히트 횟수 ÷ (캐시 히트 횟수 + 캐시 미스 횟수)
  • 원리(참조 지역성의 원리는 일종의 경향성이다)
    1. 시간 지역성(Temporal Locality): CPU는 '최근'에 접근한 메모리 공간에 다시 접근하려는 경향이 있다.
    2. 공간 지역성(Spatial Locality): CPU는 접근한 메모리 '공간 근처'를 접근하려는 경향이 있다.

07장 보조기억장치

07-1 다양한 보조기억장치

하드디스크(Hard Disk Drive, Magnetic Disk)

자기적인 방식으로 데이터를 저장하는 보조기억장치

하드디스크의 구조

  • 플래터(platter): 자기 물질로 덮힌 동그란 원판. N/S극이 각각 0과 1의 역할
  • 스핀들(spindle): 플래터 회전기
  • 헤드(head): 플래터 위에서 미세하게 떠서 데이터를 읽고 쓰는 요소
  • 디스크 암(disk arm): 헤드를 원하는 위치로 이동시키는 요소

하드디스크의 저장 방식

  • 트랙(track): 플래터 동심원 중 하나의 원
  • 섹터(sector): 트랙의 일부
  • 실린더(cylinder): 다중 플래터에서 같은 트랙이 위한 곳을 모아 연결한 논리적 단위 공간(연속된 정보 공간)

쓰기 → 앙페르의 법칙: 자기장을 이용해서 플래터에 입혀진 자성체를 정렬하여 데이터를 저장
읽기 → 패러데이의 법칙: 회전하는 정렬된 자성체의 유도전류 차이로 데이터를 인식
(출처: 두산백과 하드 디스크 드라이브)

하드디스크 접근 시간
  • 탐색 시간(seek time): 접근 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
  • 회전 지연(rotaional latency): 헤드가 있는 곳으로 플래터를 회전시키는 시간
  • 전송 시간(transfer time): 하드디스크와 컴퓨터 간에 데이터를 전송하는 시간

플래시 메모리

전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장장치

플래시 메모리 저장 단위

  • 셀(cell): 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
  • 셀 < 페이지(page) < 블록(block) < 플레인(plane) < 다이(die)로 단위가 커짐
  • 읽기와 쓰기는 페이지 단위 / 삭제는 블록 단위로 이루어짐
구분SLC(Single Level Cell)MLC(Multiple ~)TLC(Triple ~)
셀당 bit123
수명길다보통짧다
읽기/쓰기 속도빠름보통느림
용량 대비 가격높음보통낮음

07-2 RAID의 정의와 종류

RAID(Redundant Array of Independent Disks; 복수 배열 독립 디스크)

데이터의 안전성/높은 성능을 위해 여러 개의 물리적인 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술

RAID Level

RAID 0

여러개의 보조기억장치에 단순하게 나누어 저장하는 방식 = 스트라이핑(Striping)

  • 장점: 데이터를 동시에 읽고 쓸 수 있기 때문에, 처리 속도가 빠르다.
  • 단점: 디스크 하나에 문제가 발생하면 읽기에 문제가 발생한다.

RAID 1

완전한 복사본 = 미러링(mirroring)

  • 장점: 데이터 복구가 매우 간단한다.
  • 단점: 완전 복사된 형태이기 때문에 RAID 0보다 속도가 느리고, 사용 가능한 용량이 적기 때문에, 많은 디스크(비용)가 필요해진다.

RAID 4

전용 패리티(Parity;오류 검출/복구 정보) 디스크가 제공되는 스트라이핑된 방식

  • 단점: 새로운 데이터 저장 시 패리티 디스크에도 접근해야 하므로 패리티 디스크의 병목 현상이 발생한다.

RAID 5

패리티 정보가 분산된 스프라이핑 방식

RAID 6

서로 다른 패리티 2개를 사용하는 RAID 5 방식

  • 장점: 패리티의 증가로 좀 더 안전한 복구가 가능하다.
  • 단점: 패리티 2개 내용을 저장해야 하므로 RAID 5보다 느리다.

08장 입출력장치

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

입출력장치가 다루기 어려운 이유

  1. 다양한 종류로 인한 문제점 → 규격화가 어려움
  2. CPU, 메모리에 비해 전송률이 낮음 → 입출력장치와의 소통 문제
    • 전송률(transfer rate): 데이터 교환 속도

장치 컨트롤러(Device Controller)

입출력장치가 컴퓨터와 직접 연결되지 않고, 컴퓨터 내부와 통신하는 장치(하드웨어적인 통로)

장치 컨트롤러의 기능

  • CPU와 입출력장치간의 통신 중개와 오류 검출
    장치 컨트롤러를 통해 정보 규격화를 이뤄내고, 그 과정에서 오류를 검출한다.
  • 데이터 버퍼링
    CPU와 입출력장치의 전숭률 차이를 버퍼(buffer)라는 임시 저장 공간을 통해 전송률을 비슷하게 맞춘다.

장치 컨트롤러의 구조

  • 데이터 레지스터(dara register): CPU-입출력장치 간 데이터 저장 → 버퍼
  • 상태 레지스터(status register): 입출력장치의 상태 정보 저장
  • 제어 레지스터(control register): 입출력장치가 수행할 명령, 제어정보 저장

장치 드라이버(Device Driver)

장치 컨트롤러를 제어하여 컴퓨터 내부와 통신할 수 있도록 하는 프로그램(소프트웨어적인 통로)

08-2 다양한 입출력 방법

CPU와 장치 컨트롤러간의 통신 방법

프로그램 입출력(Programmed I/O)

프로그램 속 명령어로 입출력장치 제어

CPU가 장치 컨트롤러의 레지스터에 접근하는 방법

  1. 메모리 맵 입출력(Memory-mapped I/O)
    메모리 접근 주소 공간과 입출력장치 접근 주소 공간을 하나의 공간으로 간주하는 방법
    메모리 주소공간이 축소
    메모리 명령어 = 입출력장치 명령어
  2. 고립형 입출력(Isolated I/O)
    메모리 주소 공간과 입출력장치 주소 공간을 분리
    메모리 주소 공간 축소되지 않음
    입출력 전용 명령어

인터럽트 기반 명령어(Interrupt-Driven I/O)

장치 컨트롤러가 작업을 끝나면 CPU에게 인터럽트 요청 신호를 보내 인터럽트 서비스 루틴을 실행하는 방법

여러 입출력장치에서 동시에 인터럽트가 발생한 경우

  • 순서대로 처리한다.
  • NMI(Non-Maskable Interrupt; 인터럽트를 무시할 수 없는 인터럽트)가 발생한 경우, 우선순위에 따라 처리한다.
    - PCI(Programmable Interrupt Controller)를 통해 우선순위를 판별한다.

DMA(Direct Memory Access) 입출력

입출력장치, 메모리가 CPU를 거치지않고 바로 상호작용하는 방식

입출력 버스

입출력장치와 컴퓨터 내부와 연결하는 통로

  • PCI(Peripheral Component Interconncet) 버스
  • PCI Express(PCIe) 버스
profile
Build Myself

2개의 댓글

comment-user-thumbnail
2023년 7월 23일

공감하며 읽었습니다. 좋은 글 감사드립니다.

1개의 답글